diff --git a/core/.gitignore b/core/.gitignore
index 74b6a4c..5657f6e 100644
--- a/core/.gitignore
+++ b/core/.gitignore
@@ -1,19 +1 @@
-# SimpleTest breaks with the following files, so avoid adding them.
-vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php
-vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php
-vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services11.php
-
-# The resources for the Validator component are not required.
-vendor/symfony/validator/Symfony/Component/Validator/Resources
-
-# Symfony Validator depends on Symfony Translation but only requires the
-# TranslatorInterface. Thus, we add only the required interface from Symfony
-# Translation by ignoring everything except the interface.
-vendor/symfony/translation/Symfony/Component/Translation/*
-!vendor/symfony/translation/Symfony/Component/Translation/TranslatorInterface.php
-
-# PHPUnit provides some binary dependencies that are already available.
-vendor/phpunit/phpunit/build/dependencies
-
-# The PHAR file below contains CRLF characters that cause a problem with PIFR.
-vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar
+vendor
\ No newline at end of file
diff --git a/core/vendor/.htaccess b/core/vendor/.htaccess
deleted file mode 100644
index 50d210b..0000000
--- a/core/vendor/.htaccess
+++ /dev/null
@@ -1,24 +0,0 @@
-# Deny all requests from Apache 2.4+.
-<IfModule mod_authz_core.c>
-  Require all denied
-</IfModule>
-
-# Deny all requests from Apache 2.0-2.2.
-<IfModule !mod_authz_core.c>
-  Deny from all
-</IfModule>
-# Turn off all options we don't need.
-Options None
-Options +FollowSymLinks
-
-# Set the catch-all handler to prevent scripts from being executed.
-SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
-<Files *>
-  # Override the handler again if we're run later in the evaluation list.
-  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
-</Files>
-
-# If we know how to do it safely, disable the PHP engine entirely.
-<IfModule mod_php5.c>
-  php_flag engine off
-</IfModule>
diff --git a/core/vendor/autoload.php b/core/vendor/autoload.php
deleted file mode 100644
index 5111b1b..0000000
--- a/core/vendor/autoload.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-// autoload.php @generated by Composer
-
-require_once __DIR__ . '/composer' . '/autoload_real.php';
-
-return ComposerAutoloaderInitDrupal8::getLoader();
diff --git a/core/vendor/behat/mink-browserkit-driver/.gitignore b/core/vendor/behat/mink-browserkit-driver/.gitignore
deleted file mode 100644
index 3ccd9ee..0000000
--- a/core/vendor/behat/mink-browserkit-driver/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor
-composer.lock
-/phpunit.xml
diff --git a/core/vendor/behat/mink-browserkit-driver/.travis.yml b/core/vendor/behat/mink-browserkit-driver/.travis.yml
deleted file mode 100644
index 838fc4e..0000000
--- a/core/vendor/behat/mink-browserkit-driver/.travis.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-language: php
-
-php: [5.3, 5.4, 5.5, 5.6, hhvm]
-
-matrix:
-  include:
-    - php: 5.5
-      env: SYMFONY_VERSION='2.3.*'
-    - php: 5.5
-      env: SYMFONY_VERSION='2.5.*@dev'
-
-before_script:
-  - sh -c 'if [ "$SYMFONY_VERSION" != "" ]; then composer require -n --no-update symfony/symfony=$SYMFONY_VERSION; fi;'
-  - composer install -n --prefer-source
-
-script: phpunit -v --coverage-clover=coverage.clover
-
-after_script:
-  - wget https://scrutinizer-ci.com/ocular.phar
-  - php ocular.phar code-coverage:upload --format=php-clover coverage.clover
diff --git a/core/vendor/behat/mink-browserkit-driver/CHANGELOG.md b/core/vendor/behat/mink-browserkit-driver/CHANGELOG.md
deleted file mode 100644
index 774663f..0000000
--- a/core/vendor/behat/mink-browserkit-driver/CHANGELOG.md
+++ /dev/null
@@ -1,33 +0,0 @@
-1.2.0 / 2014-09-26
-==================
-
-BC break:
-
-* Changed the behavior of `getValue` for checkboxes according to the BC break in Mink 1.6
-
-New features:
-
-* Implemented `getOuterHtml`
-* Added the support of manipulating forms without submit buttons
-* Added support of any request headers instead of supporting only a few hardcoded ones
-* Added support of any BrowserKit client using `filterResponse` when using BrowserKit 2.3+
-* Added the support of reset buttons
-* Implemented `submitForm`
-* Implemented `isSelected`
-
-Bug fixes:
-
-* Fixed the support of options without value attribute in `isSelected` and `getValue`
-* Added the support of radio buttons in `isChecked`
-* Fixed the submission of empty textarea fields
-* Refactored the handling of request headers to ensure they are reset when resetting the driver
-* Fixed the handling of buttons to submit only for submit buttons rather than all buttons
-* Fixed the code to throw exceptions rather than triggering a fatal error for invalid usages of the driver
-* Fixed the removal of cookies
-* Fixed the submission of form fields with same name and without id
-* Fixed `getAttribute` to return `null` for missing attributes rather than an empty string
-
-Testing:
-
-* Updated the testsuite to use the new Mink 1.6 driver testsuite
-* Added testing on HHVM
diff --git a/core/vendor/behat/mink-browserkit-driver/LICENSE b/core/vendor/behat/mink-browserkit-driver/LICENSE
deleted file mode 100644
index 3365ae6..0000000
--- a/core/vendor/behat/mink-browserkit-driver/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012-2013 Konstantin Kudryashov <ever.zet@gmail.com>
-
-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/core/vendor/behat/mink-browserkit-driver/README.md b/core/vendor/behat/mink-browserkit-driver/README.md
deleted file mode 100755
index fc36e41..0000000
--- a/core/vendor/behat/mink-browserkit-driver/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-Mink BrowserKit Driver
-======================
-
-[![Latest Stable Version](https://poser.pugx.org/behat/mink-browserkit-driver/v/stable.png)](https://packagist.org/packages/behat/mink-browserkit-driver)
-[![Latest Unstable Version](https://poser.pugx.org/behat/mink-browserkit-driver/v/unstable.svg)](https://packagist.org/packages/behat/mink-browserkit-driver)
-[![Total Downloads](https://poser.pugx.org/behat/mink-browserkit-driver/downloads.png)](https://packagist.org/packages/behat/mink-browserkit-driver)
-[![Build Status](https://travis-ci.org/Behat/MinkBrowserKitDriver.svg?branch=master)](https://travis-ci.org/Behat/MinkBrowserKitDriver)
-[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/Behat/MinkBrowserKitDriver/badges/quality-score.png?s=0443d284940e099ea560eb39b6b2fcdc5d4e7f29)](https://scrutinizer-ci.com/g/Behat/MinkBrowserKitDriver/)
-[![Code Coverage](https://scrutinizer-ci.com/g/Behat/MinkBrowserKitDriver/badges/coverage.png?s=48960c4495488ab0b7d310b62322f017497f5bfa)](https://scrutinizer-ci.com/g/Behat/MinkBrowserKitDriver/)
-[![License](https://poser.pugx.org/behat/mink-browserkit-driver/license.svg)](https://packagist.org/packages/behat/mink-browserkit-driver)
-
-Usage Example
--------------
-
-``` php
-<?php
-
-use Behat\Mink\Mink,
-    Behat\Mink\Session,
-    Behat\Mink\Driver\BrowserKitDriver;
-
-use Symfony\Component\HttpKernel\Client;
-
-$app  = require_once(__DIR__.'/app.php'); // Silex app
-
-$mink = new Mink(array(
-    'silex' => new Session(new BrowserKitDriver(new Client($app))),
-));
-
-$mink->getSession('silex')->getPage()->findLink('Chat')->click();
-```
-
-Installation
-------------
-
-``` json
-{
-    "require": {
-        "behat/mink":                   "~1.5",
-        "behat/mink-browserkit-driver": "~1.1"
-    }
-}
-```
-
-``` bash
-$> curl -sS https://getcomposer.org/installer | php
-$> php composer.phar install
-```
-
-Maintainers
------------
-
-* Konstantin Kudryashov [everzet](http://github.com/everzet)
-* Other [awesome developers](https://github.com/Behat/MinkBrowserKitDriver/graphs/contributors)
diff --git a/core/vendor/behat/mink-browserkit-driver/composer.json b/core/vendor/behat/mink-browserkit-driver/composer.json
deleted file mode 100644
index c0c5df9..0000000
--- a/core/vendor/behat/mink-browserkit-driver/composer.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-    "name":         "behat/mink-browserkit-driver",
-    "description":  "Symfony2 BrowserKit driver for Mink framework",
-    "keywords":     ["Symfony2", "Mink", "testing", "browser"],
-    "homepage":     "http://mink.behat.org/",
-    "type":         "mink-driver",
-    "license":      "MIT",
-
-    "authors": [
-        {
-            "name":      "Konstantin Kudryashov",
-            "email":     "ever.zet@gmail.com",
-            "homepage":  "http://everzet.com"
-        }
-    ],
-
-    "require": {
-        "php":                  ">=5.3.1",
-        "behat/mink":           "~1.6@dev",
-        "symfony/browser-kit":  "~2.0",
-        "symfony/dom-crawler":  "~2.0"
-    },
-
-    "require-dev": {
-        "silex/silex": "~1.2"
-    },
-
-    "autoload": {
-        "psr-0": {
-            "Behat\\Mink\\Driver": "src/"
-        }
-    },
-
-    "autoload-dev": {
-        "psr-4": {
-            "Behat\\Mink\\Tests\\Driver\\": "tests"
-        }
-    },
-
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.2.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/behat/mink-browserkit-driver/phpunit.xml.dist b/core/vendor/behat/mink-browserkit-driver/phpunit.xml.dist
deleted file mode 100644
index 4f9b932..0000000
--- a/core/vendor/behat/mink-browserkit-driver/phpunit.xml.dist
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit colors="true" bootstrap="vendor/behat/mink/driver-testsuite/bootstrap.php">
-    <php>
-        <var name="driver_config_factory" value="Behat\Mink\Tests\Driver\BrowserKitConfig::getInstance" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Driver test suite">
-            <directory>tests</directory>
-            <directory>vendor/behat/mink/driver-testsuite/tests/Basic</directory>
-            <directory>vendor/behat/mink/driver-testsuite/tests/Form</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./src/Behat/Mink/Driver</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/behat/mink-browserkit-driver/src/Behat/Mink/Driver/BrowserKitDriver.php b/core/vendor/behat/mink-browserkit-driver/src/Behat/Mink/Driver/BrowserKitDriver.php
deleted file mode 100644
index 28b99dc..0000000
--- a/core/vendor/behat/mink-browserkit-driver/src/Behat/Mink/Driver/BrowserKitDriver.php
+++ /dev/null
@@ -1,949 +0,0 @@
-<?php
-
-/*
- * This file is part of the Behat\Mink.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Driver;
-
-use Behat\Mink\Element\NodeElement;
-use Behat\Mink\Exception\DriverException;
-use Behat\Mink\Exception\UnsupportedDriverActionException;
-use Behat\Mink\Session;
-use Symfony\Component\BrowserKit\Client;
-use Symfony\Component\BrowserKit\Cookie;
-use Symfony\Component\BrowserKit\Request;
-use Symfony\Component\BrowserKit\Response;
-use Symfony\Component\DomCrawler\Crawler;
-use Symfony\Component\DomCrawler\Field\ChoiceFormField;
-use Symfony\Component\DomCrawler\Field\FileFormField;
-use Symfony\Component\DomCrawler\Field\FormField;
-use Symfony\Component\DomCrawler\Field\InputFormField;
-use Symfony\Component\DomCrawler\Field\TextareaFormField;
-use Symfony\Component\DomCrawler\Form;
-use Symfony\Component\HttpFoundation\Request as HttpFoundationRequest;
-use Symfony\Component\HttpFoundation\Response as HttpFoundationResponse;
-use Symfony\Component\HttpKernel\Client as HttpKernelClient;
-
-/**
- * Symfony2 BrowserKit driver.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class BrowserKitDriver extends CoreDriver
-{
-    private $session;
-    private $client;
-
-    /**
-     * @var Form[]
-     */
-    private $forms = array();
-    private $serverParameters = array();
-    private $started = false;
-    private $removeScriptFromUrl = false;
-    private $removeHostFromUrl = false;
-
-    /**
-     * Initializes BrowserKit driver.
-     *
-     * @param Client      $client  BrowserKit client instance
-     * @param string|null $baseUrl Base URL for HttpKernel clients
-     */
-    public function __construct(Client $client, $baseUrl = null)
-    {
-        $this->client = $client;
-        $this->client->followRedirects(true);
-
-        if ($baseUrl !== null && $client instanceof HttpKernelClient) {
-            $client->setServerParameter('SCRIPT_FILENAME', parse_url($baseUrl, PHP_URL_PATH));
-        }
-    }
-
-    /**
-     * Returns BrowserKit HTTP client instance.
-     *
-     * @return Client
-     */
-    public function getClient()
-    {
-        return $this->client;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setSession(Session $session)
-    {
-        $this->session = $session;
-    }
-
-    /**
-     * Tells driver to remove hostname from URL.
-     *
-     * @param Boolean $remove
-     *
-     * @deprecated Deprecated as of 1.2, to be removed in 2.0. Pass the base url in the constructor instead.
-     */
-    public function setRemoveHostFromUrl($remove = true)
-    {
-        trigger_error(
-            'setRemoveHostFromUrl() is deprecated as of 1.2 and will be removed in 2.0. Pass the base url in the constructor instead.',
-            E_USER_DEPRECATED
-        );
-        $this->removeHostFromUrl = (bool) $remove;
-    }
-
-    /**
-     * Tells driver to remove script name from URL.
-     *
-     * @param Boolean $remove
-     *
-     * @deprecated Deprecated as of 1.2, to be removed in 2.0. Pass the base url in the constructor instead.
-     */
-    public function setRemoveScriptFromUrl($remove = true)
-    {
-        trigger_error(
-            'setRemoveScriptFromUrl() is deprecated as of 1.2 and will be removed in 2.0. Pass the base url in the constructor instead.',
-            E_USER_DEPRECATED
-        );
-        $this->removeScriptFromUrl = (bool) $remove;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        $this->started = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isStarted()
-    {
-        return $this->started;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function stop()
-    {
-        $this->reset();
-        $this->started = false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function reset()
-    {
-        // Restarting the client resets the cookies and the history
-        $this->client->restart();
-        $this->forms = array();
-        $this->serverParameters = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function visit($url)
-    {
-        $this->client->request('GET', $this->prepareUrl($url), array(), array(), $this->serverParameters);
-        $this->forms = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCurrentUrl()
-    {
-        if (method_exists($this->client, 'getInternalRequest')) {
-            $request = $this->client->getInternalRequest();
-        } else {
-            // BC layer for BrowserKit 2.2.x and older
-            $request = $this->client->getRequest();
-
-            if (null !== $request && !$request instanceof Request && !$request instanceof HttpFoundationRequest) {
-                throw new DriverException(sprintf(
-                    'The BrowserKit client returned an unsupported request implementation: %s. Please upgrade your BrowserKit package to 2.3 or newer.',
-                    get_class($request)
-                ));
-            }
-        }
-
-        if ($request === null) {
-            throw new DriverException('Unable to access the request before visiting a page');
-        }
-
-        return $request->getUri();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function reload()
-    {
-        $this->client->reload();
-        $this->forms = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function forward()
-    {
-        $this->client->forward();
-        $this->forms = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function back()
-    {
-        $this->client->back();
-        $this->forms = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setBasicAuth($user, $password)
-    {
-        if (false === $user) {
-            unset($this->serverParameters['PHP_AUTH_USER'], $this->serverParameters['PHP_AUTH_PW']);
-
-            return;
-        }
-
-        $this->serverParameters['PHP_AUTH_USER'] = $user;
-        $this->serverParameters['PHP_AUTH_PW'] = $password;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setRequestHeader($name, $value)
-    {
-        $contentHeaders = array('CONTENT_LENGTH' => true, 'CONTENT_MD5' => true, 'CONTENT_TYPE' => true);
-        $name = str_replace('-', '_', strtoupper($name));
-
-        // CONTENT_* are not prefixed with HTTP_ in PHP when building $_SERVER
-        if (!isset($contentHeaders[$name])) {
-            $name = 'HTTP_' . $name;
-        }
-
-        $this->serverParameters[$name] = $value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getResponseHeaders()
-    {
-        return $this->getResponse()->getHeaders();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setCookie($name, $value = null)
-    {
-        if (null === $value) {
-            $this->deleteCookie($name);
-
-            return;
-        }
-
-        $jar = $this->client->getCookieJar();
-        $jar->set(new Cookie($name, $value));
-    }
-
-    /**
-     * Deletes a cookie by name.
-     *
-     * @param string $name Cookie name.
-     */
-    private function deleteCookie($name)
-    {
-        $path = $this->getCookiePath();
-        $jar = $this->client->getCookieJar();
-
-        do {
-            if (null !== $jar->get($name, $path)) {
-                $jar->expire($name, $path);
-            }
-
-            $path = preg_replace('/.$/', '', $path);
-        } while ($path);
-    }
-
-    /**
-     * Returns current cookie path.
-     *
-     * @return string
-     */
-    private function getCookiePath()
-    {
-        $path = dirname(parse_url($this->getCurrentUrl(), PHP_URL_PATH));
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $path = str_replace('\\', '/', $path);
-        }
-
-        return $path;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCookie($name)
-    {
-        // Note that the following doesn't work well because
-        // Symfony\Component\BrowserKit\CookieJar stores cookies by name,
-        // path, AND domain and if you don't fill them all in correctly then
-        // you won't get the value that you're expecting.
-        //
-        // $jar = $this->client->getCookieJar();
-        //
-        // if (null !== $cookie = $jar->get($name)) {
-        //     return $cookie->getValue();
-        // }
-
-        $allValues = $this->client->getCookieJar()->allValues($this->getCurrentUrl());
-
-        if (isset($allValues[$name])) {
-            return $allValues[$name];
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStatusCode()
-    {
-        return $this->getResponse()->getStatus();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        return $this->getResponse()->getContent();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($xpath)
-    {
-        $nodes = $this->getCrawler()->filterXPath($xpath);
-
-        $elements = array();
-        foreach ($nodes as $i => $node) {
-            $elements[] = new NodeElement(sprintf('(%s)[%d]', $xpath, $i + 1), $this->session);
-        }
-
-        return $elements;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTagName($xpath)
-    {
-        return $this->getCrawlerNode($this->getFilteredCrawler($xpath))->nodeName;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getText($xpath)
-    {
-        $text = $this->getFilteredCrawler($xpath)->text();
-        $text = str_replace("\n", ' ', $text);
-        $text = preg_replace('/ {2,}/', ' ', $text);
-
-        return trim($text);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getHtml($xpath)
-    {
-        // cut the tag itself (making innerHTML out of outerHTML)
-        return preg_replace('/^\<[^\>]+\>|\<[^\>]+\>$/', '', $this->getOuterHtml($xpath));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getOuterHtml($xpath)
-    {
-        $node = $this->getCrawlerNode($this->getFilteredCrawler($xpath));
-
-        return $node->ownerDocument->saveXML($node);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttribute($xpath, $name)
-    {
-        $node = $this->getFilteredCrawler($xpath);
-
-        if ($this->getCrawlerNode($node)->hasAttribute($name)) {
-            return $node->attr($name);
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValue($xpath)
-    {
-        if (in_array($this->getAttribute($xpath, 'type'), array('submit', 'image', 'button'))) {
-            return $this->getAttribute($xpath, 'value');
-        }
-
-        $node = $this->getCrawlerNode($this->getFilteredCrawler($xpath));
-
-        if ('option' === $node->tagName) {
-            return $this->getOptionValue($node);
-        }
-
-        try {
-            $field = $this->getFormField($xpath);
-        } catch (\InvalidArgumentException $e) {
-            return $this->getAttribute($xpath, 'value');
-        }
-
-        return $field->getValue();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setValue($xpath, $value)
-    {
-        $this->getFormField($xpath)->setValue($value);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function check($xpath)
-    {
-        $this->getCheckboxField($xpath)->tick();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function uncheck($xpath)
-    {
-        $this->getCheckboxField($xpath)->untick();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function selectOption($xpath, $value, $multiple = false)
-    {
-        $field = $this->getFormField($xpath);
-
-        if (!$field instanceof ChoiceFormField) {
-            throw new DriverException(sprintf('Impossible to select an option on the element with XPath "%s" as it is not a select or radio input', $xpath));
-        }
-
-        if ($multiple) {
-            $oldValue   = (array) $field->getValue();
-            $oldValue[] = $value;
-            $value      = $oldValue;
-        }
-
-        $field->select($value);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isSelected($xpath)
-    {
-        $optionValue = $this->getOptionValue($this->getCrawlerNode($this->getFilteredCrawler($xpath)));
-        $selectField = $this->getFormField('(' . $xpath . ')/ancestor-or-self::*[local-name()="select"]');
-        $selectValue = $selectField->getValue();
-
-        return is_array($selectValue) ? in_array($optionValue, $selectValue) : $optionValue == $selectValue;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function click($xpath)
-    {
-        $node = $this->getFilteredCrawler($xpath);
-        $crawlerNode = $this->getCrawlerNode($node);
-        $tagName = $crawlerNode->nodeName;
-
-        if ('a' === $tagName) {
-            $this->client->click($node->link());
-            $this->forms = array();
-        } elseif ($this->canSubmitForm($crawlerNode)) {
-            $this->submit($node->form());
-        } elseif ($this->canResetForm($crawlerNode)) {
-            $this->resetForm($crawlerNode);
-        } else {
-            $message = sprintf('%%s supports clicking on links and buttons only. But "%s" provided', $tagName);
-
-            throw new UnsupportedDriverActionException($message, $this);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isChecked($xpath)
-    {
-        $field = $this->getFormField($xpath);
-
-        if (!$field instanceof ChoiceFormField || 'select' === $field->getType()) {
-            throw new DriverException(sprintf('Impossible to get the checked state of the element with XPath "%s" as it is not a checkbox or radio input', $xpath));
-        }
-
-        if ('checkbox' === $field->getType()) {
-            return $field->hasValue();
-        }
-
-        $radio = $this->getCrawlerNode($this->getFilteredCrawler($xpath));
-
-        return $radio->getAttribute('value') === $field->getValue();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function attachFile($xpath, $path)
-    {
-        $field = $this->getFormField($xpath);
-
-        if (!$field instanceof FileFormField) {
-            throw new DriverException(sprintf('Impossible to attach a file on the element with XPath "%s" as it is not a file input', $xpath));
-        }
-
-        $field->upload($path);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function submitForm($xpath)
-    {
-        $crawler = $this->getFilteredCrawler($xpath);
-
-        $this->submit($crawler->form());
-    }
-
-    /**
-     * @return Response
-     *
-     * @throws DriverException If there is not response yet
-     */
-    protected function getResponse()
-    {
-        if (!method_exists($this->client, 'getInternalResponse')) {
-            $implementationResponse = $this->client->getResponse();
-
-            if (null === $implementationResponse) {
-                throw new DriverException('Unable to access the response before visiting a page');
-            }
-
-            return $this->convertImplementationResponse($implementationResponse);
-        }
-
-        $response = $this->client->getInternalResponse();
-
-        if (null === $response) {
-            throw new DriverException('Unable to access the response before visiting a page');
-        }
-
-        return $response;
-    }
-
-    /**
-     * Gets the BrowserKit Response for legacy BrowserKit versions.
-     *
-     * Before 2.3.0, there was no Client::getInternalResponse method, and the
-     * return value of Client::getResponse can be anything when the implementation
-     * uses Client::filterResponse because of a bad choice done in BrowserKit and
-     * kept for BC reasons (the Client::getInternalResponse method has been added
-     * to solve it).
-     *
-     * This implementation supports client which don't rely Client::filterResponse
-     * and clients which use an HttpFoundation Response (like the HttpKernel client).
-     *
-     * @param object $response the response specific to the BrowserKit implementation
-     *
-     * @return Response
-     *
-     * @throws DriverException If the response cannot be converted to a BrowserKit response
-     */
-    private function convertImplementationResponse($response)
-    {
-        if ($response instanceof Response) {
-            return $response;
-        }
-
-        // due to a bug, the HttpKernel client implementation returns the HttpFoundation response
-        // The conversion logic is copied from Symfony\Component\HttpKernel\Client::filterResponse
-        if ($response instanceof HttpFoundationResponse) {
-            $headers = $response->headers->all();
-            if ($response->headers->getCookies()) {
-                $cookies = array();
-                foreach ($response->headers->getCookies() as $cookie) {
-                    $cookies[] = new Cookie(
-                        $cookie->getName(),
-                        $cookie->getValue(),
-                        $cookie->getExpiresTime(),
-                        $cookie->getPath(),
-                        $cookie->getDomain(),
-                        $cookie->isSecure(),
-                        $cookie->isHttpOnly()
-                    );
-                }
-                $headers['Set-Cookie'] = $cookies;
-            }
-
-            // this is needed to support StreamedResponse
-            ob_start();
-            $response->sendContent();
-            $content = ob_get_clean();
-
-            return new Response($content, $response->getStatusCode(), $headers);
-        }
-
-        throw new DriverException(sprintf(
-            'The BrowserKit client returned an unsupported response implementation: %s. Please upgrade your BrowserKit package to 2.3 or newer.',
-            get_class($response)
-        ));
-    }
-
-    /**
-     * Prepares URL for visiting.
-     * Removes "*.php/" from urls and then passes it to BrowserKitDriver::visit().
-     *
-     * @param string $url
-     *
-     * @return string
-     */
-    protected function prepareUrl($url)
-    {
-        $replacement = ($this->removeHostFromUrl ? '' : '$1') . ($this->removeScriptFromUrl ? '' : '$2');
-
-        return preg_replace('#(https?\://[^/]+)(/[^/\.]+\.php)?#', $replacement, $url);
-    }
-
-    /**
-     * Returns form field from XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return FormField
-     *
-     * @throws DriverException
-     */
-    protected function getFormField($xpath)
-    {
-        $fieldNode = $this->getCrawlerNode($this->getFilteredCrawler($xpath));
-        $fieldName = str_replace('[]', '', $fieldNode->getAttribute('name'));
-
-        $formNode = $this->getFormNode($fieldNode);
-        $formId = $this->getFormNodeId($formNode);
-
-        if (!isset($this->forms[$formId])) {
-            $this->forms[$formId] = new Form($formNode, $this->getCurrentUrl());
-        }
-
-        if (is_array($this->forms[$formId][$fieldName])) {
-            return $this->forms[$formId][$fieldName][$this->getFieldPosition($fieldNode)];
-        }
-
-        return $this->forms[$formId][$fieldName];
-    }
-
-    /**
-     * Returns the checkbox field from xpath query, ensuring it is valid.
-     *
-     * @param string $xpath
-     *
-     * @return ChoiceFormField
-     *
-     * @throws DriverException when the field is not a checkbox
-     */
-    private function getCheckboxField($xpath)
-    {
-        $field = $this->getFormField($xpath);
-
-        if (!$field instanceof ChoiceFormField) {
-            throw new DriverException(sprintf('Impossible to check the element with XPath "%s" as it is not a checkbox', $xpath));
-        }
-
-        return $field;
-    }
-
-    /**
-     * @param \DOMElement $element
-     *
-     * @return \DOMElement
-     *
-     * @throws DriverException if the form node cannot be found
-     */
-    private function getFormNode(\DOMElement $element)
-    {
-        if ($element->hasAttribute('form')) {
-            $formId = $element->getAttribute('form');
-            $formNode = $element->ownerDocument->getElementById($formId);
-
-            if (null === $formNode || 'form' !== $formNode->nodeName) {
-                throw new DriverException(sprintf('The selected node has an invalid form attribute (%s).', $formId));
-            }
-
-            return $formNode;
-        }
-
-        $formNode = $element;
-
-        do {
-            // use the ancestor form element
-            if (null === $formNode = $formNode->parentNode) {
-                throw new DriverException('The selected node does not have a form ancestor.');
-            }
-        } while ('form' !== $formNode->nodeName);
-
-        return $formNode;
-    }
-
-    /**
-     * Gets the position of the field node among elements with the same name
-     *
-     * BrowserKit uses the field name as index to find the field in its Form object.
-     * When multiple fields have the same name (checkboxes for instance), it will return
-     * an array of elements in the order they appear in the DOM.
-     *
-     * @param \DOMElement $fieldNode
-     *
-     * @return integer
-     */
-    private function getFieldPosition(\DOMElement $fieldNode)
-    {
-        $elements = $this->getCrawler()->filterXPath('//*[@name=\''.$fieldNode->getAttribute('name').'\']');
-
-        if (count($elements) > 1) {
-            // more than one element contains this name !
-            // so we need to find the position of $fieldNode
-            foreach ($elements as $key => $element) {
-                /** @var \DOMElement $element */
-                if ($element->getNodePath() === $fieldNode->getNodePath()) {
-                    return $key;
-                }
-            }
-        }
-
-        return 0;
-    }
-
-    private function submit(Form $form)
-    {
-        $formId = $this->getFormNodeId($form->getFormNode());
-
-        if (isset($this->forms[$formId])) {
-            $this->mergeForms($form, $this->forms[$formId]);
-        }
-
-        // remove empty file fields from request
-        foreach ($form->getFiles() as $name => $field) {
-            if (empty($field['name']) && empty($field['tmp_name'])) {
-                $form->remove($name);
-            }
-        }
-
-        foreach ($form->all() as $field) {
-            // Add a fix for https://github.com/symfony/symfony/pull/10733 to support Symfony versions which are not fixed
-            if ($field instanceof TextareaFormField && null === $field->getValue()) {
-                $field->setValue('');
-            }
-        }
-
-        $this->client->submit($form);
-
-        $this->forms = array();
-    }
-
-    private function resetForm(\DOMElement $fieldNode)
-    {
-        $formNode = $this->getFormNode($fieldNode);
-        $formId = $this->getFormNodeId($formNode);
-        unset($this->forms[$formId]);
-    }
-
-    /**
-     * Determines if a node can submit a form.
-     *
-     * @param \DOMElement $node Node.
-     *
-     * @return boolean
-     */
-    private function canSubmitForm(\DOMElement $node)
-    {
-        $type = $node->hasAttribute('type') ? $node->getAttribute('type') : null;
-
-        if ('input' == $node->nodeName && in_array($type, array('submit', 'image'))) {
-            return true;
-        }
-
-        return 'button' == $node->nodeName && (null === $type || 'submit' == $type);
-    }
-
-    /**
-     * Determines if a node can reset a form.
-     *
-     * @param \DOMElement $node Node.
-     *
-     * @return boolean
-     */
-    private function canResetForm(\DOMElement $node)
-    {
-        $type = $node->hasAttribute('type') ? $node->getAttribute('type') : null;
-
-        return in_array($node->nodeName, array('input', 'button')) && 'reset' == $type;
-    }
-
-    /**
-     * Returns form node unique identifier.
-     *
-     * @param \DOMElement $form
-     *
-     * @return string
-     */
-    private function getFormNodeId(\DOMElement $form)
-    {
-        return md5($form->getLineNo() . $form->getNodePath() . $form->nodeValue);
-    }
-
-    /**
-     * Gets the value of an option element
-     *
-     * @param \DOMElement $option
-     *
-     * @return string
-     *
-     * @see \Symfony\Component\DomCrawler\Field\ChoiceFormField::buildOptionValue
-     */
-    private function getOptionValue(\DOMElement $option)
-    {
-        if ($option->hasAttribute('value')) {
-            return $option->getAttribute('value');
-        }
-
-        if (!empty($option->nodeValue)) {
-            return $option->nodeValue;
-        }
-
-        return '1'; // DomCrawler uses 1 by default if there is no text in the option
-    }
-
-    /**
-     * Merges second form values into first one.
-     *
-     * @param Form $to   merging target
-     * @param Form $from merging source
-     */
-    private function mergeForms(Form $to, Form $from)
-    {
-        foreach ($from->all() as $name => $field) {
-            $fieldReflection = new \ReflectionObject($field);
-            $nodeReflection  = $fieldReflection->getProperty('node');
-            $valueReflection = $fieldReflection->getProperty('value');
-
-            $nodeReflection->setAccessible(true);
-            $valueReflection->setAccessible(true);
-
-            if (!($field instanceof InputFormField && in_array(
-                $nodeReflection->getValue($field)->getAttribute('type'),
-                array('submit', 'button', 'image')
-            ))) {
-                $valueReflection->setValue($to[$name], $valueReflection->getValue($field));
-            }
-        }
-    }
-
-    /**
-     * Returns DOMElement from crawler instance.
-     *
-     * @param Crawler $crawler
-     *
-     * @return \DOMElement
-     *
-     * @throws DriverException when the node does not exist
-     */
-    private function getCrawlerNode(Crawler $crawler)
-    {
-        $crawler->rewind();
-        $node = $crawler->current();
-
-        if (null !== $node) {
-            return $node;
-        }
-
-        throw new DriverException('The element does not exist');
-    }
-
-    /**
-     * Returns a crawler filtered for the given XPath, requiring at least 1 result.
-     *
-     * @param string $xpath
-     *
-     * @return Crawler
-     *
-     * @throws DriverException when no matching elements are found
-     */
-    private function getFilteredCrawler($xpath)
-    {
-        if (!count($crawler = $this->getCrawler()->filterXPath($xpath))) {
-            throw new DriverException(sprintf('There is no element matching XPath "%s"', $xpath));
-        }
-
-        return $crawler;
-    }
-
-    /**
-     * Returns crawler instance (got from client).
-     *
-     * @return Crawler
-     *
-     * @throws DriverException
-     */
-    private function getCrawler()
-    {
-        $crawler = $this->client->getCrawler();
-
-        if (null === $crawler) {
-            throw new DriverException('Unable to access the response content before visiting a page');
-        }
-
-        return $crawler;
-    }
-}
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/BrowserKitConfig.php b/core/vendor/behat/mink-browserkit-driver/tests/BrowserKitConfig.php
deleted file mode 100644
index b80a2fb..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/BrowserKitConfig.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver;
-
-use Behat\Mink\Driver\BrowserKitDriver;
-use Symfony\Component\HttpKernel\Client;
-
-class BrowserKitConfig extends AbstractConfig
-{
-    public static function getInstance()
-    {
-        return new self();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createDriver()
-    {
-        $client = new Client(require(__DIR__.'/app.php'));
-
-        return new BrowserKitDriver($client);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getWebFixturesUrl()
-    {
-        return 'http://localhost';
-    }
-
-    protected function supportsJs()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/Custom/BaseUrlTest.php b/core/vendor/behat/mink-browserkit-driver/tests/Custom/BaseUrlTest.php
deleted file mode 100644
index 779426e..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/Custom/BaseUrlTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Custom;
-
-use Behat\Mink\Driver\BrowserKitDriver;
-use Behat\Mink\Session;
-use Symfony\Component\HttpKernel\Client;
-
-/**
- * @group functional
- */
-class BaseUrlTest extends \PHPUnit_Framework_TestCase
-{
-    public function testBaseUrl()
-    {
-        $client = new Client(require(__DIR__.'/../app.php'));
-        $driver = new BrowserKitDriver($client, 'http://localhost/foo/');
-        $session = new Session($driver);
-
-        $session->visit('http://localhost/foo/index.html');
-        $this->assertEquals(200, $session->getStatusCode());
-        $this->assertEquals('http://localhost/foo/index.html', $session->getCurrentUrl());
-    }
-}
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/Custom/ErrorHandlingTest.php b/core/vendor/behat/mink-browserkit-driver/tests/Custom/ErrorHandlingTest.php
deleted file mode 100644
index 32335c5..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/Custom/ErrorHandlingTest.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Custom;
-
-use Behat\Mink\Driver\BrowserKitDriver;
-use Symfony\Component\BrowserKit\Client;
-use Symfony\Component\BrowserKit\Response;
-
-class ErrorHandlingTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var TestClient
-     */
-    private $client;
-
-    protected function setUp()
-    {
-        $this->client = new TestClient();
-    }
-
-    public function testGetClient()
-    {
-        $this->assertSame($this->client, $this->getDriver()->getClient());
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage Unable to access the response before visiting a page
-     */
-    public function testGetResponseHeaderWithoutVisit()
-    {
-        $this->getDriver()->getResponseHeaders();
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage Unable to access the response content before visiting a page
-     */
-    public function testFindWithoutVisit()
-    {
-        $this->getDriver()->find('//html');
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage Unable to access the request before visiting a page
-     */
-    public function testGetCurrentUrlWithoutVisit()
-    {
-        $this->getDriver()->getCurrentUrl();
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage The selected node has an invalid form attribute (foo)
-     */
-    public function testNotMatchingHtml5FormId()
-    {
-        $html = <<<'HTML'
-<html>
-<body>
-    <form id="test">
-        <input name="test" value="foo" form="foo">
-        <input type="submit">
-    </form>
-</body>
-</html>
-HTML;
-
-        $this->client->setNextResponse(new Response($html));
-
-        $driver = $this->getDriver();
-        $driver->visit('/index.php');
-        $driver->setValue('//input[./@name="test"]', 'bar');
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage The selected node has an invalid form attribute (foo)
-     */
-    public function testInvalidHtml5FormId()
-    {
-        $html = <<<'HTML'
-<html>
-<body>
-    <form id="test">
-        <input name="test" value="foo" form="foo">
-        <input type="submit">
-    </form>
-    <div id="foo"></div>
-</body>
-</html>
-HTML;
-
-        $this->client->setNextResponse(new Response($html));
-
-        $driver = $this->getDriver();
-        $driver->visit('/index.php');
-        $driver->setValue('//input[./@name="test"]', 'bar');
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage The selected node does not have a form ancestor.
-     */
-    public function testManipulateInputWithoutForm()
-    {
-        $html = <<<'HTML'
-<html>
-<body>
-    <form id="test">
-        <input type="submit">
-    </form>
-    <div id="foo">
-        <input name="test" value="foo">
-    </div>
-</body>
-</html>
-HTML;
-
-        $this->client->setNextResponse(new Response($html));
-
-        $driver = $this->getDriver();
-        $driver->visit('/index.php');
-        $driver->setValue('//input[./@name="test"]', 'bar');
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\DriverException
-     * @expectedExceptionMessage Behat\Mink\Driver\BrowserKitDriver supports clicking on links and buttons only. But "div" provided
-     */
-    public function testClickOnUnsupportedElement()
-    {
-        $html = <<<'HTML'
-<html>
-<body>
-    <div></div>
-</body>
-</html>
-HTML;
-
-        $this->client->setNextResponse(new Response($html));
-
-        $driver = $this->getDriver();
-        $driver->visit('/index.php');
-        $driver->click('//div');
-    }
-
-    private function getDriver()
-    {
-        return new BrowserKitDriver($this->client);
-    }
-}
-
-class TestClient extends Client
-{
-    protected $nextResponse = null;
-    protected $nextScript = null;
-
-    public function setNextResponse(Response $response)
-    {
-        $this->nextResponse = $response;
-    }
-
-    public function setNextScript($script)
-    {
-        $this->nextScript = $script;
-    }
-
-    protected function doRequest($request)
-    {
-        if (null === $this->nextResponse) {
-            return new Response();
-        }
-
-        $response = $this->nextResponse;
-        $this->nextResponse = null;
-
-        return $response;
-    }
-}
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/app.php b/core/vendor/behat/mink-browserkit-driver/tests/app.php
deleted file mode 100644
index d3f1236..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/app.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace app;
-
-$app = new \Silex\Application();
-$app->register(new \Silex\Provider\SessionServiceProvider());
-
-$def = realpath(__DIR__.'/../vendor/behat/mink/driver-testsuite/web-fixtures');
-$ovr = realpath(__DIR__.'/web-fixtures');
-$cbk = function ($file) use ($app, $def, $ovr) {
-    $file = str_replace('.file', '.php', $file);
-    $path = file_exists($ovr.'/'.$file) ? $ovr.'/'.$file : $def.'/'.$file;
-    $resp = null;
-
-    ob_start();
-    include($path);
-    $content = ob_get_clean();
-
-    if ($resp) {
-        if ('' === $resp->getContent()) {
-            $resp->setContent($content);
-        }
-
-        return $resp;
-    }
-
-    return $content;
-};
-
-$app->get('/{file}', $cbk)->assert('file', '.*');
-$app->post('/{file}', $cbk)->assert('file', '.*');
-
-$app['debug'] = true;
-$app['exception_handler']->disable();
-$app['session.test'] = true;
-
-return $app;
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/404.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/404.php
deleted file mode 100644
index 2ae1ff9..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/404.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$resp = new Symfony\Component\HttpFoundation\Response('Sorry, page not found', 404);
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/500.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/500.php
deleted file mode 100644
index 8f1ebb3..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/500.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$resp = new Symfony\Component\HttpFoundation\Response('Sorry, a server error happened', 500);
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/advanced_form_post.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/advanced_form_post.php
deleted file mode 100644
index 71d1c8d..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/advanced_form_post.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Advanced form save</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-</head>
-<body>
-<?php
-error_reporting(0);
-
-$request = $app['request'];
-$POST = $request->request->all();
-$FILES = $request->files->all();
-
-if (isset($POST['select_multiple_numbers']) && false !== strpos($POST['select_multiple_numbers'][0], ',')) {
-    $POST['select_multiple_numbers'] = explode(',', $POST['select_multiple_numbers'][0]);
-}
-
-// checkbox can have any value and will be successful in case "on"
-// http://www.w3.org/TR/html401/interact/forms.html#checkbox
-$POST['agreement'] = isset($POST['agreement']) ? 'on' : 'off';
-ksort($POST);
-echo str_replace('>', '', var_export($POST, true)) . "\n";
-if (isset($FILES['about']) && file_exists($FILES['about']->getPathname())) {
-    echo $FILES['about']->getClientOriginalName() . "\n";
-    echo file_get_contents($FILES['about']->getPathname());
-} else {
-    echo "no file";
-}
-?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_auth.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_auth.php
deleted file mode 100644
index 48132b6..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_auth.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-$SERVER = $app['request']->server->all();
-
-$username = isset($SERVER['PHP_AUTH_USER']) ? $SERVER['PHP_AUTH_USER'] : false;
-$password = isset($SERVER['PHP_AUTH_PW']) ? $SERVER['PHP_AUTH_PW'] : false;
-
-if ($username == 'mink-user' && $password == 'mink-password') {
-    echo 'is authenticated';
-} else {
-    $resp = new \Symfony\Component\HttpFoundation\Response();
-    $resp->setStatusCode(401);
-    $resp->headers->set('WWW-Authenticate', 'Basic realm="Mink Testing Area"');
-
-    echo 'is not authenticated';
-}
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_form_post.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_form_post.php
deleted file mode 100644
index 1efe45e..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_form_post.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php  ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Basic Form Saving</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Anket for <?php echo $app['request']->request->get('first_name') ?></h1>
-
-    <span id="first">Firstname: <?php echo $app['request']->request->get('first_name') ?></span>
-    <span id="last">Lastname: <?php echo $app['request']->request->get('last_name') ?></span>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_get_form.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_get_form.php
deleted file mode 100644
index fd2817d..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/basic_get_form.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Basic Get Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Basic Get Form Page</h1>
-
-    <div id="serach">
-        <?php
-        $GET = $app['request']->query->all();
-        echo isset($GET['q']) && $GET['q'] ? $GET['q'] : 'No search query'
-        ?>
-    </div>
-
-    <form>
-        <input name="q" value="" type="text" />
-
-        <input type="submit" value="Find" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page1.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page1.php
deleted file mode 100644
index a928b2f..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page1.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-    $resp = new Symfony\Component\HttpFoundation\Response();
-    $cook = new Symfony\Component\HttpFoundation\Cookie('srvr_cookie', 'srv_var_is_set', 0, '/');
-    $resp->headers->setCookie($cook);
-?>
-<!doctype html public "-//w3c//dtd xhtml 1.1//en" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>basic form</title>
-    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
-    <script>
-    </script>
-</head>
-<body>
-    basic page with cookie set from server side
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page2.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page2.php
deleted file mode 100644
index ab54243..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page2.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Basic Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script>
-    </script>
-</head>
-<body>
-    Previous cookie: <?php
-        echo $app['request']->cookies->has('srvr_cookie') ? $app['request']->cookies->get('srvr_cookie') : 'NO';
-    ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page3.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page3.php
deleted file mode 100644
index f24d587..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/cookie_page3.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-$hasCookie = $app['request']->cookies->has('foo');
-$resp = new Symfony\Component\HttpFoundation\Response();
-$cook = new Symfony\Component\HttpFoundation\Cookie('foo', 'bar');
-$resp->headers->setCookie($cook);
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>HttpOnly Cookie Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script>
-    </script>
-</head>
-<body>
-    <div id="cookie-status">Has Cookie: <?php echo json_encode($hasCookie) ?></div>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/headers.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/headers.php
deleted file mode 100644
index b829425..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/headers.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Headers page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <?php print_r($app['request']->server->all()); ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/issue130.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/issue130.php
deleted file mode 100644
index 2079673..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/issue130.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<html>
-<body>
-    <?php
-    if ('1' === $app['request']->query->get('p')) {
-        echo '<a href="/issue130.php?p=2">Go to 2</a>';
-    } else {
-        echo '<strong>'.$app['request']->headers->get('referer').'</strong>';
-    }
-    ?>
-</body>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/issue140.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/issue140.php
deleted file mode 100644
index 42d8437..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/issue140.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<html>
-<body>
-<?php if ($app['request']->isMethod('POST')) {
-    $resp = new Symfony\Component\HttpFoundation\Response();
-    $cook = new Symfony\Component\HttpFoundation\Cookie('tc', $app['request']->request->get('cookie_value'));
-    $resp->headers->setCookie($cook);
-} elseif ($app['request']->query->has('show_value')) {
-    echo $app['request']->cookies->get('tc');
-    return;
-}
-?>
-    <form method="post">
-        <input name="cookie_value">
-        <input type="submit" value="Set cookie">
-    </form>
-</body>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/print_cookies.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/print_cookies.php
deleted file mode 100644
index ac6f078..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/print_cookies.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Cookies page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <?php
-    $cookies = $app['request']->cookies->all();
-    unset($cookies['MOCKSESSID']);
-
-    if (isset($cookies['srvr_cookie'])) {
-        $srvrCookie = $cookies['srvr_cookie'];
-        unset($cookies['srvr_cookie']);
-        $cookies['_SESS'] = '';
-        $cookies['srvr_cookie'] = $srvrCookie;
-    }
-
-    foreach ($cookies as $name => $val) {
-        $cookies[$name] = (string)$val;
-    }
-    echo str_replace(array('>'), '', var_export($cookies, true));
-    ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/redirector.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/redirector.php
deleted file mode 100644
index 39e8a53..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/redirector.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$resp = new Symfony\Component\HttpFoundation\RedirectResponse('/redirect_destination.html');
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/response_headers.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/response_headers.php
deleted file mode 100644
index a2f48f8..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/response_headers.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-    $resp = new Symfony\Component\HttpFoundation\Response();
-    $resp->headers->set('X-Mink-Test', 'response-headers');
-?>
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <title>Response headers</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-</head>
-<body>
-    <h1>Response headers</h1>
-</body>
-</html>
-
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/session_test.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/session_test.php
deleted file mode 100644
index 58576e3..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/session_test.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-$session = $app['request']->getSession();
-
-if ($app['request']->query->has('login')) {
-    $session->migrate();
-}
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Session Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script>
-    </script>
-</head>
-<body>
-    <div id="session-id"><?php echo $session->getId() ?></div>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page1.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page1.php
deleted file mode 100644
index 807c23e..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page1.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-    $requestUri = $app['request']->server->get('REQUEST_URI');
-    $resp = new Symfony\Component\HttpFoundation\Response();
-    $cook = new Symfony\Component\HttpFoundation\Cookie('srvr_cookie', 'srv_var_is_set_sub_folder', 0, dirname($requestUri));
-    $resp->headers->setCookie($cook);
-?>
-<!doctype html public "-//w3c//dtd xhtml 1.1//en" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>basic form</title>
-    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
-    <script>
-    </script>
-</head>
-<body>
-    basic page with cookie set from server side
-</body>
-</html>
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page2.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page2.php
deleted file mode 100644
index 22a7dab..0000000
--- a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page2.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-    <title>Basic Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script>
-    </script>
-</head>
-<body>
-    Previous cookie: <?php
-    if ($app['request']->cookies->has('srvr_cookie')) {
-        echo $app['request']->cookies->get('srvr_cookie');
-    } else {
-        echo 'NO';
-    }
-    ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink-goutte-driver/.gitignore b/core/vendor/behat/mink-goutte-driver/.gitignore
deleted file mode 100644
index 1d034f4..0000000
--- a/core/vendor/behat/mink-goutte-driver/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-vendor
-composer.phar
-composer.lock
-phpunit.xml
diff --git a/core/vendor/behat/mink-goutte-driver/.travis.yml b/core/vendor/behat/mink-goutte-driver/.travis.yml
deleted file mode 100644
index d21d960..0000000
--- a/core/vendor/behat/mink-goutte-driver/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-language: php
-
-php: [5.3, 5.4, 5.5, 5.6, hhvm]
-
-before_install:
-  # Force using Goutte 2 on HHVM for now because Guzzle 6 is broken there
-  - if [ "hhvm" = "$TRAVIS_PHP_VERSION" ]; then composer require fabpot/goutte '~2' --no-update; fi
-
-before_script:
-  - export WEB_FIXTURES_HOST=http://localhost
-
-  - composer install --dev --prefer-source
-
-  - sudo apt-get update
-  - sudo apt-get install -y --force-yes apache2 libapache2-mod-php5
-  - sudo sed -i -e "s,/var/www,$(pwd)/vendor/behat/mink/driver-testsuite/web-fixtures,g" /etc/apache2/sites-available/default
-  - sudo /etc/init.d/apache2 restart
-
-script: phpunit -v --coverage-clover=coverage.clover
-
-after_script:
-  - wget https://scrutinizer-ci.com/ocular.phar
-  - php ocular.phar code-coverage:upload --format=php-clover coverage.clover
diff --git a/core/vendor/behat/mink-goutte-driver/CHANGELOG.md b/core/vendor/behat/mink-goutte-driver/CHANGELOG.md
deleted file mode 100644
index fcaa7f0..0000000
--- a/core/vendor/behat/mink-goutte-driver/CHANGELOG.md
+++ /dev/null
@@ -1,20 +0,0 @@
-1.1.0 / 2014-10-09
-==================
-
-The driver now relies on BrowserKitDriver 1.2.x, so all changes of this driver are relevant.
-The changes below only describe the changes related to GoutteDriver specifically.
-
-New features:
-
-* Added the possibility to use a normal Goutte client instead of requiring to use an extended one
-* Added the support of Goutte 2.0 as well
-
-Bug fixes:
-
-* Fixed the support of disabling basic auth
-* Fixed the resetting of the driver to reset the basic auth
-
-Testing:
-
-* Updated the testsuite to use the new Mink 1.6 driver testsuite
-* Added testing on HHVM
diff --git a/core/vendor/behat/mink-goutte-driver/LICENSE b/core/vendor/behat/mink-goutte-driver/LICENSE
deleted file mode 100644
index 3365ae6..0000000
--- a/core/vendor/behat/mink-goutte-driver/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012-2013 Konstantin Kudryashov <ever.zet@gmail.com>
-
-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/core/vendor/behat/mink-goutte-driver/README.md b/core/vendor/behat/mink-goutte-driver/README.md
deleted file mode 100644
index cba60a0..0000000
--- a/core/vendor/behat/mink-goutte-driver/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-Mink Goutte Driver
-==================
-
-[![Latest Stable Version](https://poser.pugx.org/behat/mink-goutte-driver/v/stable.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
-[![Latest Unstable Version](https://poser.pugx.org/behat/mink-goutte-driver/v/unstable.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
-[![Total Downloads](https://poser.pugx.org/behat/mink-goutte-driver/downloads.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
-[![Build Status](https://travis-ci.org/minkphp/MinkGoutteDriver.svg?branch=master)](https://travis-ci.org/minkphp/MinkGoutteDriver)
-[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/minkphp/MinkGoutteDriver/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/minkphp/MinkGoutteDriver/)
-[![Code Coverage](https://scrutinizer-ci.com/g/minkphp/MinkGoutteDriver/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/minkphp/MinkGoutteDriver/)
-[![License](https://poser.pugx.org/behat/mink-goutte-driver/license.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
-
-Usage Example
--------------
-
-``` php
-<?php
-
-require "vendor/autoload.php";
-
-use Behat\Mink\Mink,
-    Behat\Mink\Session,
-    Behat\Mink\Driver\GoutteDriver,
-    Behat\Mink\Driver\Goutte\Client as GoutteClient;
-
-$mink = new Mink(array(
-    'goutte' => new Session(new GoutteDriver(new GoutteClient())),
-));
-
-$session = $mink->getSession('goutte');
-$session->visit("http://php.net/");
-$session->getPage()->clickLink('Downloads');
-echo $session->getCurrentUrl() . PHP_EOL;
-```
-
-Installation
-------------
-
-Add a file composer.json with content:
-
-``` json
-{
-    "require": {
-        "behat/mink":               "~1.5",
-        "behat/mink-goutte-driver": "~1.0"
-    }
-}
-```
-
-(or merge the above into your project's existing composer.json file)
-
-``` bash
-$> curl -sS https://getcomposer.org/installer | php
-$> php composer.phar install
-```
-
-Maintainers
------------
-
-* Christophe Coevoet [stof](https://github.com/stof)
-* Other [awesome developers](https://github.com/minkphp/MinkGoutteDriver/graphs/contributors)
diff --git a/core/vendor/behat/mink-goutte-driver/composer.json b/core/vendor/behat/mink-goutte-driver/composer.json
deleted file mode 100644
index f103906..0000000
--- a/core/vendor/behat/mink-goutte-driver/composer.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-    "name":         "behat/mink-goutte-driver",
-    "description":  "Goutte driver for Mink framework",
-    "keywords":     ["goutte", "headless", "testing", "browser"],
-    "homepage":     "http://mink.behat.org/",
-    "type":         "mink-driver",
-    "license":      "MIT",
-
-    "authors": [
-        {
-            "name":      "Konstantin Kudryashov",
-            "email":     "ever.zet@gmail.com",
-            "homepage":  "http://everzet.com"
-        }
-    ],
-
-    "require": {
-        "php":                           ">=5.3.1",
-        "behat/mink":                    "~1.6@dev",
-        "behat/mink-browserkit-driver":  "~1.2@dev",
-        "fabpot/goutte":                 "~1.0.4|~2.0|~3.1"
-    },
-
-    "autoload": {
-        "psr-4": {
-            "Behat\\Mink\\Driver\\": "src/"
-        }
-    },
-
-    "autoload-dev": {
-        "psr-4": {
-            "Behat\\Mink\\Tests\\Driver\\": "tests"
-        }
-    },
-
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.1.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/behat/mink-goutte-driver/phpunit.xml.dist b/core/vendor/behat/mink-goutte-driver/phpunit.xml.dist
deleted file mode 100644
index cbe57c4..0000000
--- a/core/vendor/behat/mink-goutte-driver/phpunit.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit colors="true" bootstrap="vendor/behat/mink/driver-testsuite/bootstrap.php">
-    <testsuites>
-        <testsuite name="Driver test suite">
-            <directory>tests</directory>
-            <directory>vendor/behat/mink/driver-testsuite/tests/Basic</directory>
-            <directory>vendor/behat/mink/driver-testsuite/tests/Form</directory>
-        </testsuite>
-    </testsuites>
-
-    <php>
-        <var name="driver_config_factory" value="Behat\Mink\Tests\Driver\GoutteConfig::getInstance" />
-
-        <!--server name="WEB_FIXTURES_HOST" value="http://test.mink.dev" /-->
-    </php>
-
-    <filter>
-        <whitelist>
-            <directory>./src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/behat/mink-goutte-driver/src/Goutte/Client.php b/core/vendor/behat/mink-goutte-driver/src/Goutte/Client.php
deleted file mode 100644
index 9d64be7..0000000
--- a/core/vendor/behat/mink-goutte-driver/src/Goutte/Client.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Behat\Mink.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Driver\Goutte;
-
-use Goutte\Client as BaseClient;
-use Symfony\Component\BrowserKit\Response;
-
-/**
- * Client overrides to support Mink functionality.
- */
-class Client extends BaseClient
-{
-    /**
-     * Reads response meta tags to guess content-type charset.
-     *
-     * @param Response $response
-     *
-     * @return Response
-     */
-    protected function filterResponse($response)
-    {
-        $contentType = $response->getHeader('Content-Type');
-
-        if (!$contentType || false === strpos($contentType, 'charset=')) {
-            if (preg_match('/\<meta[^\>]+charset *= *["\']?([a-zA-Z\-0-9]+)/i', $response->getContent(), $matches)) {
-                $headers = $response->getHeaders();
-                $headers['Content-Type'] = $contentType.';charset='.$matches[1];
-
-                $response = new Response($response->getContent(), $response->getStatus(), $headers);
-            }
-        }
-
-        return parent::filterResponse($response);
-    }
-}
diff --git a/core/vendor/behat/mink-goutte-driver/src/GoutteDriver.php b/core/vendor/behat/mink-goutte-driver/src/GoutteDriver.php
deleted file mode 100644
index a42d5a2..0000000
--- a/core/vendor/behat/mink-goutte-driver/src/GoutteDriver.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Behat\Mink.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Driver;
-
-use Behat\Mink\Driver\Goutte\Client as ExtendedClient;
-use Goutte\Client;
-
-/**
- * Goutte driver.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class GoutteDriver extends BrowserKitDriver
-{
-    /**
-     * Initializes Goutte driver.
-     *
-     * @param Client $client Goutte client instance
-     */
-    public function __construct(Client $client = null)
-    {
-        parent::__construct($client ?: new ExtendedClient());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setBasicAuth($user, $password)
-    {
-        if (false === $user) {
-            $this->getClient()->resetAuth();
-
-            return;
-        }
-
-        $this->getClient()->setAuth($user, $password);
-    }
-
-    /**
-     * Gets the Goutte client.
-     *
-     * The method is overwritten only to provide the appropriate return type hint.
-     *
-     * @return Client
-     */
-    public function getClient()
-    {
-        return parent::getClient();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function reset()
-    {
-        parent::reset();
-        $this->getClient()->resetAuth();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function prepareUrl($url)
-    {
-        return $url;
-    }
-}
diff --git a/core/vendor/behat/mink-goutte-driver/tests/Custom/InstantiationTest.php b/core/vendor/behat/mink-goutte-driver/tests/Custom/InstantiationTest.php
deleted file mode 100644
index db75a18..0000000
--- a/core/vendor/behat/mink-goutte-driver/tests/Custom/InstantiationTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Custom;
-
-use Behat\Mink\Driver\GoutteDriver;
-
-class InstantiationTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInstantiateWithClient()
-    {
-        $client = $this->getMockBuilder('Goutte\Client')->disableOriginalConstructor()->getMock();
-        $client->expects($this->once())
-            ->method('followRedirects')
-            ->with(true);
-
-        $driver = new GoutteDriver($client);
-
-        $this->assertSame($client, $driver->getClient());
-    }
-
-    public function testInstantiateWithoutClient()
-    {
-        $driver = new GoutteDriver();
-
-        $this->assertInstanceOf('Behat\Mink\Driver\Goutte\Client', $driver->getClient());
-    }
-}
diff --git a/core/vendor/behat/mink-goutte-driver/tests/GoutteConfig.php b/core/vendor/behat/mink-goutte-driver/tests/GoutteConfig.php
deleted file mode 100644
index bbe90f7..0000000
--- a/core/vendor/behat/mink-goutte-driver/tests/GoutteConfig.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver;
-
-use Behat\Mink\Driver\GoutteDriver;
-
-class GoutteConfig extends AbstractConfig
-{
-    public static function getInstance()
-    {
-        return new self();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createDriver()
-    {
-        return new GoutteDriver();
-    }
-
-    protected function supportsJs()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/behat/mink/.gitignore b/core/vendor/behat/mink/.gitignore
deleted file mode 100644
index 66de342..0000000
--- a/core/vendor/behat/mink/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-*.tgz
-*.phar
-phpunit.xml
-composer.lock
-vendor
diff --git a/core/vendor/behat/mink/.travis.yml b/core/vendor/behat/mink/.travis.yml
deleted file mode 100644
index 4c0c786..0000000
--- a/core/vendor/behat/mink/.travis.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-language: php
-
-sudo: false
-
-php: [5.3, 5.4, 5.5, 5.6, hhvm]
-
-cache:
-  directories:
-    - $HOME/.composer/cache
-
-install:
-  - composer install
-
-script: phpunit -v --coverage-clover=coverage.clover
-
-after_script:
-  - wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover coverage.clover
diff --git a/core/vendor/behat/mink/CHANGES.md b/core/vendor/behat/mink/CHANGES.md
deleted file mode 100644
index e21d5af..0000000
--- a/core/vendor/behat/mink/CHANGES.md
+++ /dev/null
@@ -1,255 +0,0 @@
-1.6.1 / 2015-02-04
-==================
-
-Bug fixes:
-
-* Added a check for empty path in `WebAssert::cleanUrl()`
-
-Driver testsuite:
-
-* Added an extra test to ensure the right behavior for traversal
-
-Misc:
-
-* Changed the description in the composer.json
-* Switched the repository structure to use PSR-4
-* Updated URLs for the move to the new Github organization
-
-1.6.0 / 2014-09-26
-==================
-
-  * [BC break] Changed the named selector to prefer exact matches over partial matches
-  * [BC break] Changed `NodeElement::getValue` for checkboxes to return the value rather than the checked state (use `isChecked` for that)
-  * Fixed the XPath prefixing when searching inside an existing element
-  * Refactored the driver testsuite entirely and expand it to cover drivers entirely (covering many more cases for consistency)
-  * Changed `NodeElement::setValue` to support any fields rather than only input elements
-  * Removed the wrapping of any driver-level exception in a MinkException on invalid usage as it was making the code too complex
-  * Fixed the matching of the input type in the named selector to be case insensitive according to the HTML spec
-  * Introduced `Behat\Mink\Selector\Xpath\Escaper` to allow reusing the XPath escaping
-  * Deprecated `Element::getSession`. Code needing the session should get it from outside rather than the element
-  * Changed ElementNotFoundException to extend from ExpectationException
-  * Added `Element::getOuterHtml` to get the HTML code of the element including itself
-  * Fixed the name selectors to match on the `placeholder` only for textual inputs
-  * Enforced consistent behavior for drivers on 4xx and 5xx response to return the response rather than throwing an exception
-  * Added `Element::waitFor` to allow retrying some code until it succeeds or the timeout is reached
-  * Added `Element::isValid` to check whether an element still exists in the page
-  * Made `Session::executeScript` compatible across drivers by ensuring they all support the same syntaxes for the JS expression
-  * Made `Session::evaluateScript` compatible across drivers by ensuring they all support the same syntaxes for the JS expression
-  * Removed `hasClass` from `DocumentElement` (instead of triggering a fatal error)
-  * Added testing on HHVM to ensure consistency
-  * Fixed `NodeElement::getTagName` to ensure that the tag name is lowercase for all drivers
-  * Fixed `Element::hasAttribute` to ensure it supports attributes with an empty value
-  * Fixed the `field` selector to avoid matching inputs with the type `submit` or `reset`
-  * Changed the button XPath selection to accept `reset` buttons as well
-  * Changed `Session::wait` to return the condition value rather than nothing
-  * Added `Session::getWindowName` and `Session::getWindowNames` to get the name of the current and of all windows
-  * Added `Session::maximizeWindow` to maximize the window
-  * Added `NodeElement::isSelected` to check whether an `<option>` is selected
-  * Added `NodeElement::submitForm` to allow submitting a form without using a button
-  * Added assertions about the value of an attribute
-  * Added the anchor in the assertion on the URL in `WebAssert`
-
-1.5.0 / 2013-04-14
-==================
-
-  * Add `CoreDriver` to simplify future drivers improvements
-  * Add `Mink::isSessionStarted()` method
-  * Fix multibite string `preg_replace` bugs
-  * Fix handling of whitespaces in `WebAssert::pageText...()` methods
-
-1.4.3 / 2013-03-02
-==================
-
-  * Bump dependencies constraints
-
-1.4.2 / 2013-02-13
-==================
-
-  * Fix wrong test case to ensure that core drivers work as expected
-
-1.4.1 / 2013-02-10
-==================
-
-  * Update dependencies
-  * Add ElementException to element actions
-  * Rel attribute support for named selectors
-  * Add hasClass() helper to traversable elements
-  * Add getScreenshot() method to session
-  * Name attr support in named selector for button
-  * Fix for bunch of bugs
-
-1.4.0 / 2012-05-40
-==================
-
-  * New `Session::selectWindow()` and `Session::selectIFrame()` methods
-  * New built-in `WebAssert` class
-  * Fixed DocBlocks (autocompletion in any IDE now should just work)
-  * Moved Behat-related code into `Behat\MinkExtension`
-  * Removed PHPUnit test case class
-  * Updated composer dependencies to not require custom repository anymore
-  * All drivers moved into separate packages
-
-1.3.3 / 2012-03-23
-==================
-
-  * Prevent exceptions in `__toString()`
-  * Added couple of useful step definitions for Behat
-  * Fixed issues #168, #211, #212, #208
-  * Lot of small bug fixes and improvements
-  * Fixed dependencies and composer installation routine
-
-1.3.2 / 2011-12-21
-==================
-
-  * Fixed webdriver registration in MinkContext
-
-1.3.1 / 2011-12-21
-==================
-
-  * Fixed Composer package
-
-1.3.0 / 2011-12-21
-==================
-
-  * Brand new Selenium2Driver (webdriver session)
-  * Multiselect bugfixes
-  * ZombieDriver back in the business
-  * Composer now manages dependencies
-  * Some MinkContext steps got fixes
-  * Lots of bug fixes and cleanup
-
-1.2.0 / 2011-11-04
-==================
-
-  * Brand new SeleniumDriver (thanks @alexandresalome)
-  * Multiselect support (multiple options selection), including new Behat steps
-  * Ability to select option by it's text (in addition to value)
-  * ZombieDriver updates
-  * Use SuiteHooks to populate parameters (no need to call parent __construct anymore)
-  * Updated Goutte and all vendors
-  * Lot of bugfixes and new tests
-
-1.1.1 / 2011-08-12
-==================
-
-  * Fixed Zombie.js server termination on Linux
-  * Fixed base_url usage for external URLs
-
-1.1.0 / 2011-08-08
-==================
-
-  * Added Zombie.js driver (thanks @b00giZm)
-  * Added pt translation (thanks Daniel Gomes)
-  * Refactored MinkContext and MinkTestCase
-
-1.0.3 / 2011-08-02
-==================
-
-  * File uploads for empty fields fixed (GoutteDriver)
-  * Lazy sessions restart
-  * `show_tmp_dir` option in MinkContext
-  * Updated to stable Symfony2 components
-  * SahiClient connection limit bumped to 60 seconds
-  * Dutch language support
-
-1.0.2 / 2011-07-22
-==================
-
-  * ElementHtmlException fixed (thanks @Stof)
-
-1.0.1 / 2011-07-21
-==================
-
-  * Fixed buggy assertions in MinkContext
-
-1.0.0 / 2011-07-20
-==================
-
-  * Added missing tests for almost everything
-  * Hude speedup for SahiDriver
-  * Support for Behat 2.0 contexts
-  * Bundled PHPUnit TestCase
-  * Deep element traversing
-  * Correct behavior of getText() method
-  * New getHtml() method
-  * Basic HTTP auth support
-  * Soft and hard session resetting
-  * Cookies management
-  * Browser history interactions (reload(), back(), forward())
-  * Weaverryan'd exception messages
-  * Huge amount of bugfixes and small additions
-
-0.3.2 / 2011-06-20
-==================
-
-  * Fixed file uploads in Goutte driver
-  * Fixed setting of long texts into fields
-  * Added getPlainText() (returns text without tags and whitespaces) method to the element's API
-  * Start_url is now optional parameter
-  * Default session (if needed) name now need to be always specified by hands with setDefaultSessionName()
-  * default_driver => default_session
-  * Updated Symfony Components
-
-0.3.1 / 2011-05-17
-==================
-
-  * Small SahiClient update (it generates SID now if no provided)
-  * setActiveSessionName => setDefaultSessionName method rename
-
-0.3.0 / 2011-05-17
-==================
-
-  * Rewritten from scratch Mink drivers handler. Now it's sessions handler. And Mink now
-    sessions-centric tool. See examples in readme. Much cleaner API now.
-
-0.2.4 / 2011-05-12
-==================
-
-  * Fixed wrong url locator function
-  * Fixed wrong regex in `should see` step
-  * Fixed delimiters use in `should see` step
-  * Added url-match step for checking urls against regex
-
-0.2.3 / 2011-05-01
-==================
-
-  * Updated SahiClient with new version, which is faster and cleaner with it's exceptions
-
-0.2.2 / 2011-05-01
-==================
-
-  * Ability to use already started browser as SahiDriver aim
-  * Added japanese translation for bundled steps (thanks @hidenorigoto)
-  * 10 seconds limit for browser connection in SahiDriver
-
-0.2.1 / 2011-04-21
-==================
-
-  * Fixed some bundled step definitions
-
-0.2.0 / 2011-04-21
-==================
-
-  * Additional step definitions
-  * Support for extended drivers configuration through behat.yml environment parameters
-  * Lots of new named selectors
-  * Bug fixes
-  * Small improvements
-
-0.1.2 / 2011-04-08
-==================
-
-  * Fixed Sahi url escaping
-
-0.1.1 / 2011-04-06
-==================
-
-  * Fixed should/should_not steps
-  * Added spanish translation
-  * Fixed forms to use <base> element
-  * Fixed small UnsupportedByDriverException issue
-
-0.1.0 / 2011-04-04
-==================
-
-  * Initial release
diff --git a/core/vendor/behat/mink/CONTRIBUTING.md b/core/vendor/behat/mink/CONTRIBUTING.md
deleted file mode 100644
index 5db4d85..0000000
--- a/core/vendor/behat/mink/CONTRIBUTING.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributing
-Mink is an open source, community-driven project. If you'd like to contribute, feel free to do this, but remember to follow these few simple rules:
-
-## Submitting an issues
-- __Driver-related__ issues must be reported in the corresponding driver repository
-- A reproducible example is required for every bug report, otherwise it will most probably be __closed without warning__
-- If you are going to make a big, substantial change, let's discuss it first
-
-## Working with Pull Requests
-1. Create your feature addition or a bug fix branch based on `master` branch in your repository's fork.
-2. Make necessary changes, but __don't mix__ code reformatting with code changes on topic.
-3. Add tests for those changes (please look into `tests/` folder for some examples). This is important so we don't break it in a future version unintentionally.
-4. Commit your code, but do not mess with `CHANGES.md`.
-5. Squash your commits by topic to preserve a clean and readable log.
-6. Create Pull Request.
-
-# Running tests
-Make sure that you don't break anything with your changes by running:
-
-```bash
-$> phpunit
-```
diff --git a/core/vendor/behat/mink/LICENSE b/core/vendor/behat/mink/LICENSE
deleted file mode 100644
index 14f15e8..0000000
--- a/core/vendor/behat/mink/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2011-2013 Konstantin Kudryashov <ever.zet@gmail.com>
-
-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/core/vendor/behat/mink/README.md b/core/vendor/behat/mink/README.md
deleted file mode 100644
index 2299506..0000000
--- a/core/vendor/behat/mink/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-Mink
-====
-[![Latest Stable Version](https://poser.pugx.org/behat/mink/v/stable.svg)](https://packagist.org/packages/behat/mink)
-[![Latest Unstable Version](https://poser.pugx.org/behat/mink/v/unstable.svg)](https://packagist.org/packages/behat/mink)
-[![Total Downloads](https://poser.pugx.org/behat/mink/downloads.svg)](https://packagist.org/packages/behat/mink)
-[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/minkphp/Mink/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/minkphp/Mink/?branch=master)
-[![Code Coverage](https://scrutinizer-ci.com/g/minkphp/Mink/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/minkphp/Mink/)
-[![Build Status](https://travis-ci.org/minkphp/Mink.svg?branch=master)](https://travis-ci.org/minkphp/Mink)
-[![SensioLabsInsight](https://insight.sensiolabs.com/projects/5bb8fab0-978f-428a-ae23-44ee4e129fbc/mini.png)](https://insight.sensiolabs.com/projects/5bb8fab0-978f-428a-ae23-44ee4e129fbc)
-[![License](https://poser.pugx.org/behat/mink/license.svg)](https://packagist.org/packages/behat/mink)
-
-
-Useful Links
-------------
-
-- The main website with documentation is at [http://mink.behat.org](http://mink.behat.org)
-- Official Google Group is at [http://groups.google.com/group/behat](http://groups.google.com/group/behat)
-- IRC channel on [#freenode](http://freenode.net/) is `#behat`
-- [Note on Patches/Pull Requests](CONTRIBUTING.md)
-
-Usage Example
--------------
-
-``` php
-<?php
-
-use Behat\Mink\Mink,
-    Behat\Mink\Session,
-    Behat\Mink\Driver\GoutteDriver,
-    Behat\Mink\Driver\Goutte\Client as GoutteClient;
-
-$startUrl = 'http://example.com';
-
-// init Mink and register sessions
-$mink = new Mink(array(
-    'goutte1' => new Session(new GoutteDriver(new GoutteClient())),
-    'goutte2' => new Session(new GoutteDriver(new GoutteClient())),
-    'custom'  => new Session(new MyCustomDriver($startUrl))
-));
-
-// set the default session name
-$mink->setDefaultSessionName('goutte2');
-
-// visit a page
-$mink->getSession()->visit($startUrl);
-
-// call to getSession() without argument will always return a default session if has one (goutte2 here)
-$mink->getSession()->getPage()->findLink('Downloads')->click();
-echo $mink->getSession()->getPage()->getContent();
-
-// call to getSession() with argument will return session by its name
-$mink->getSession('custom')->getPage()->findLink('Downloads')->click();
-echo $mink->getSession('custom')->getPage()->getContent();
-
-// this all is done to make possible mixing sessions
-$mink->getSession('goutte1')->getPage()->findLink('Chat')->click();
-$mink->getSession('goutte2')->getPage()->findLink('Chat')->click();
-```
-
-Install Dependencies
---------------------
-
-``` bash
-$> curl -sS https://getcomposer.org/installer | php
-$> php composer.phar install
-```
-
-Contributors
-------------
-
-* Konstantin Kudryashov [everzet](https://github.com/everzet) [lead developer]
-* Christophe Coevoet [stof](https://github.com/stof) [lead developer]
-* Alexander Obuhovich [aik099](https://github.com/aik099) [lead developer]
-* Other [awesome developers](https://github.com/minkphp/Mink/graphs/contributors)
diff --git a/core/vendor/behat/mink/composer.json b/core/vendor/behat/mink/composer.json
deleted file mode 100644
index 7a8723f..0000000
--- a/core/vendor/behat/mink/composer.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-    "name":         "behat/mink",
-    "description":  "Browser controller/emulator abstraction for PHP",
-    "keywords":     ["web", "testing", "browser"],
-    "homepage":     "http://mink.behat.org/",
-    "type":         "library",
-    "license":      "MIT",
-
-    "authors": [
-        {
-            "name":      "Konstantin Kudryashov",
-            "email":     "ever.zet@gmail.com",
-            "homepage":  "http://everzet.com"
-        }
-    ],
-
-    "require": {
-        "php":                   ">=5.3.1",
-        "symfony/css-selector":  "~2.0"
-    },
-
-    "suggest": {
-        "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
-        "behat/mink-goutte-driver":     "fast headless driver for any app without JS emulation",
-        "behat/mink-selenium2-driver":  "slow, but JS-enabled driver for any app (requires Selenium2)",
-        "behat/mink-zombie-driver":     "fast and JS-enabled headless driver for any app (requires node.js)"
-    },
-
-    "autoload": {
-        "psr-4": {
-            "Behat\\Mink\\": "src/"
-        }
-    },
-
-    "autoload-dev": {
-        "psr-4": {
-            "Behat\\Mink\\Tests\\": "tests"
-        }
-    },
-
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.6.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/README.md b/core/vendor/behat/mink/driver-testsuite/README.md
deleted file mode 100644
index f2af9a8..0000000
--- a/core/vendor/behat/mink/driver-testsuite/README.md
+++ /dev/null
@@ -1,96 +0,0 @@
-Mink Driver testsuite
-=====================
-
-This is the common testsuite for Mink drivers to ensure consistency among implementations.
-
-Usage
------
-
-The testsuite of a driver should be based as follow:
-
-```json
-{
-    "require": {
-        "behat/mink": "~1.6@dev"
-    },
-
-    "autoload-dev": {
-        "psr-4": {
-            "Acme\\MyDriver\\Tests\\": "tests"
-        }
-    }
-}
-```
-
-```xml
-<!-- phpunit.xml.dist -->
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit colors="true" bootstrap="vendor/behat/mink/driver-testsuite/bootstrap.php">
-    <php>
-        <var name="driver_config_factory" value="Acme\MyDriver\Tests\Config::getInstance" />
-
-        <server name="WEB_FIXTURES_HOST" value="http://test.mink.dev" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Functional tests">
-            <directory>vendor/behat/mink/driver-testsuite/tests</directory>
-        </testsuite>
-        <!-- if needed to add more tests -->
-        <testsuite name="Driver tests">
-            <directory>./tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
-```
-
-Then create the driver config for the testsuite:
-
-```php
-// tests/Config.php
-
-namespace Acme\MyDriver\Tests;
-
-use Behat\Mink\Tests\Driver\AbstractConfig;
-
-class Config extends AbstractConfig
-{
-    /**
-     * Creates an instance of the config.
-     *
-     * This is the callable registered as a php variable in the phpunit.xml config file.
-     * It could be outside the class but this is convenient.
-     */
-    public static function getInstance()
-    {
-        return new self();
-    }
-
-    /**
-     * Creates driver instance.
-     *
-     * @return \Behat\Mink\Driver\DriverInterface
-     */
-    public function createDriver()
-    {
-        return new \Acme\MyDriver\MyDriver();
-    }
-}
-```
-
-Some other methods are available in the AbstractConfig which can be overwritten to adapt the testsuite to
-the needs of the driver (skipping some tests for instance).
-
-Adding Driver-specific Tests
-----------------------------
-
-When adding extra test cases specific to the driver, either use your own namespace or put them in the
-``Behat\Mink\Tests\Driver\Custom`` subnamespace to ensure that you will not create conflicts with test cases
-added in the driver testsuite in the future.
diff --git a/core/vendor/behat/mink/driver-testsuite/bootstrap.php b/core/vendor/behat/mink/driver-testsuite/bootstrap.php
deleted file mode 100644
index f69a45b..0000000
--- a/core/vendor/behat/mink/driver-testsuite/bootstrap.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-$file = __DIR__.'/../../../autoload.php';
-
-if (!file_exists($file)) {
-    echo PHP_EOL.'The Mink driver testsuite expects Mink to be installed as a composer dependency of your project'.PHP_EOL;
-    exit(1);
-}
-
-/** @var \Composer\Autoload\ClassLoader $loader */
-$loader = require $file;
-
-$loader->addPsr4('Behat\Mink\Tests\Driver\\', __DIR__.'/tests');
-
-// Clean the global variables
-unset($file);
-unset($loader);
-
-// Check the definition of the driverLoaderFactory
-
-if (!isset($GLOBALS['driver_config_factory'])) {
-    echo PHP_EOL.'The "driver_config_factory" global variable must be set.'.PHP_EOL;
-    exit(1);
-}
-if (!is_callable($GLOBALS['driver_config_factory'])) {
-    echo PHP_EOL.'The "driver_config_factory" global variable must be a callable.'.PHP_EOL;
-    exit(1);
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/AbstractConfig.php b/core/vendor/behat/mink/driver-testsuite/tests/AbstractConfig.php
deleted file mode 100644
index f654297..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/AbstractConfig.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver;
-
-use Behat\Mink\Driver\DriverInterface;
-
-abstract class AbstractConfig
-{
-    /**
-     * Creates driver instance.
-     *
-     * @return DriverInterface
-     */
-    abstract public function createDriver();
-
-    /**
-     * Map remote file path.
-     *
-     * @param string $file File path.
-     *
-     * @return string
-     */
-    public function mapRemoteFilePath($file)
-    {
-        if (!isset($_SERVER['TEST_MACHINE_BASE_PATH']) || !isset($_SERVER['DRIVER_MACHINE_BASE_PATH'])) {
-            return $file;
-        }
-
-        $pattern = '/^'.preg_quote($_SERVER['TEST_MACHINE_BASE_PATH'], '/').'/';
-        $basePath = $_SERVER['DRIVER_MACHINE_BASE_PATH'];
-
-        return preg_replace($pattern, $basePath, $file, 1);
-    }
-
-    /**
-     * Gets the base url to the fixture folder
-     *
-     * @return string
-     */
-    public function getWebFixturesUrl()
-    {
-        return $_SERVER['WEB_FIXTURES_HOST'];
-    }
-
-    /**
-     * @param string $testCase The name of the TestCase class
-     * @param string $test     The name of the test method
-     *
-     * @return string|null A message explaining why the test should be skipped, or null to run the test.
-     */
-    public function skipMessage($testCase, $test)
-    {
-        if (!$this->supportsCss() && 0 === strpos($testCase, 'Behat\Mink\Tests\Driver\Css\\')) {
-            return 'This driver does not support CSS.';
-        }
-
-        if (!$this->supportsJs() && 0 === strpos($testCase, 'Behat\Mink\Tests\Driver\Js\\')) {
-            return 'This driver does not support JavaScript.';
-        }
-
-        return null;
-    }
-
-    /**
-     * Whether the JS tests should run or no.
-     *
-     * @return bool
-     */
-    protected function supportsJs()
-    {
-        return true;
-    }
-
-    /**
-     * Whether the CSS tests should run or no.
-     *
-     * @return bool
-     */
-    protected function supportsCss()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/BasicAuthTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/BasicAuthTest.php
deleted file mode 100644
index 40d932d..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/BasicAuthTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class BasicAuthTest extends TestCase
-{
-    /**
-     * @dataProvider setBasicAuthDataProvider
-     */
-    public function testSetBasicAuth($user, $pass, $pageText)
-    {
-        $session = $this->getSession();
-
-        $session->setBasicAuth($user, $pass);
-
-        $session->visit($this->pathTo('/basic_auth.php'));
-
-        $this->assertContains($pageText, $session->getPage()->getContent());
-    }
-
-    public function setBasicAuthDataProvider()
-    {
-        return array(
-            array('mink-user', 'mink-password', 'is authenticated'),
-            array('', '', 'is not authenticated'),
-        );
-    }
-
-    public function testResetBasicAuth()
-    {
-        $session = $this->getSession();
-
-        $session->setBasicAuth('mink-user', 'mink-password');
-
-        $session->visit($this->pathTo('/basic_auth.php'));
-
-        $this->assertContains('is authenticated', $session->getPage()->getContent());
-
-        $session->setBasicAuth(false);
-
-        $session->visit($this->pathTo('/headers.php'));
-
-        $this->assertNotContains('PHP_AUTH_USER', $session->getPage()->getContent());
-    }
-
-    public function testResetWithBasicAuth()
-    {
-        $session = $this->getSession();
-
-        $session->setBasicAuth('mink-user', 'mink-password');
-
-        $session->visit($this->pathTo('/basic_auth.php'));
-
-        $this->assertContains('is authenticated', $session->getPage()->getContent());
-
-        $session->reset();
-
-        $session->visit($this->pathTo('/headers.php'));
-
-        $this->assertNotContains('PHP_AUTH_USER', $session->getPage()->getContent());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ContentTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/ContentTest.php
deleted file mode 100644
index 6f516e8..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ContentTest.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class ContentTest extends TestCase
-{
-    public function testOuterHtml()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $element = $this->getAssertSession()->elementExists('css', '.travers');
-
-        $this->assertEquals(
-            "<div class=\"travers\">\n            <div class=\"sub\">el1</div>\n".
-            "            <div class=\"sub\">el2</div>\n            <div class=\"sub\">\n".
-            "                <a href=\"some_url\">some <strong>deep</strong> url</a>\n".
-            "            </div>\n        </div>",
-            $element->getOuterHtml()
-        );
-    }
-
-    /**
-     * @dataProvider getAttributeDataProvider
-     */
-    public function testGetAttribute($attributeName, $attributeValue)
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $element = $this->getSession()->getPage()->findById('attr-elem['.$attributeName.']');
-
-        $this->assertNotNull($element);
-        $this->assertSame($attributeValue, $element->getAttribute($attributeName));
-    }
-
-    public function getAttributeDataProvider()
-    {
-        return array(
-            array('with-value', 'some-value'),
-            array('without-value', ''),
-            array('with-empty-value', ''),
-            array('with-missing', null),
-        );
-    }
-
-    public function testJson()
-    {
-        $this->getSession()->visit($this->pathTo('/json.php'));
-        $this->assertContains(
-            '{"key1":"val1","key2":234,"key3":[1,2,3]}',
-            $this->getSession()->getPage()->getContent()
-        );
-    }
-
-    public function testHtmlDecodingNotPerformed()
-    {
-        $session = $this->getSession();
-        $webAssert = $this->getAssertSession();
-        $session->visit($this->pathTo('/html_decoding.html'));
-        $page = $session->getPage();
-
-        $span = $webAssert->elementExists('css', 'span');
-        $input = $webAssert->elementExists('css', 'input');
-
-        $expectedHtml = '<span custom-attr="&amp;">some text</span>';
-        $this->assertContains($expectedHtml, $page->getHtml(), '.innerHTML is returned as-is');
-        $this->assertContains($expectedHtml, $page->getContent(), '.outerHTML is returned as-is');
-
-        $this->assertEquals('&', $span->getAttribute('custom-attr'), '.getAttribute value is decoded');
-        $this->assertEquals('&', $input->getAttribute('value'), '.getAttribute value is decoded');
-        $this->assertEquals('&', $input->getValue(), 'node value is decoded');
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/CookieTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/CookieTest.php
deleted file mode 100644
index 355dd71..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/CookieTest.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class CookieTest extends TestCase
-{
-    /**
-     * test cookie decoding
-     * @group issue140
-     */
-    public function testIssue140()
-    {
-        $this->getSession()->visit($this->pathTo('/issue140.php'));
-
-        $this->getSession()->getPage()->fillField('cookie_value', 'some:value;');
-        $this->getSession()->getPage()->pressButton('Set cookie');
-
-        $this->getSession()->visit($this->pathTo('/issue140.php?show_value'));
-        $this->assertEquals('some:value;', $this->getSession()->getCookie('tc'));
-        $this->assertEquals('some:value;', $this->getSession()->getPage()->getText());
-    }
-
-    public function testCookie()
-    {
-        $this->getSession()->visit($this->pathTo('/cookie_page2.php'));
-        $this->assertContains('Previous cookie: NO', $this->getSession()->getPage()->getText());
-        $this->assertNull($this->getSession()->getCookie('srvr_cookie'));
-
-        $this->getSession()->setCookie('srvr_cookie', 'client cookie set');
-        $this->getSession()->reload();
-        $this->assertContains('Previous cookie: client cookie set', $this->getSession()->getPage()->getText());
-        $this->assertEquals('client cookie set', $this->getSession()->getCookie('srvr_cookie'));
-
-        $this->getSession()->setCookie('srvr_cookie', null);
-        $this->getSession()->reload();
-        $this->assertContains('Previous cookie: NO', $this->getSession()->getPage()->getText());
-
-        $this->getSession()->visit($this->pathTo('/cookie_page1.php'));
-        $this->getSession()->visit($this->pathTo('/cookie_page2.php'));
-
-        $this->assertContains('Previous cookie: srv_var_is_set', $this->getSession()->getPage()->getText());
-        $this->getSession()->setCookie('srvr_cookie', null);
-        $this->getSession()->reload();
-        $this->assertContains('Previous cookie: NO', $this->getSession()->getPage()->getText());
-    }
-
-    /**
-     * @dataProvider cookieWithPathsDataProvider
-     */
-    public function testCookieWithPaths($cookieRemovalMode)
-    {
-        // start clean
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/sub-folder/cookie_page2.php'));
-        $this->assertContains('Previous cookie: NO', $session->getPage()->getText());
-
-        // cookie from root path is accessible in sub-folder
-        $session->visit($this->pathTo('/cookie_page1.php'));
-        $session->visit($this->pathTo('/sub-folder/cookie_page2.php'));
-        $this->assertContains('Previous cookie: srv_var_is_set', $session->getPage()->getText());
-
-        // cookie from sub-folder overrides cookie from root path
-        $session->visit($this->pathTo('/sub-folder/cookie_page1.php'));
-        $session->visit($this->pathTo('/sub-folder/cookie_page2.php'));
-        $this->assertContains('Previous cookie: srv_var_is_set_sub_folder', $session->getPage()->getText());
-
-        if ($cookieRemovalMode == 'session_reset') {
-            $session->reset();
-        } elseif ($cookieRemovalMode == 'cookie_delete') {
-            $session->setCookie('srvr_cookie', null);
-        }
-
-        // cookie is removed from all paths
-        $session->visit($this->pathTo('/sub-folder/cookie_page2.php'));
-        $this->assertContains('Previous cookie: NO', $session->getPage()->getText());
-    }
-
-    public function cookieWithPathsDataProvider()
-    {
-        return array(
-            array('session_reset'),
-            array('cookie_delete'),
-        );
-    }
-
-    public function testReset()
-    {
-        $this->getSession()->visit($this->pathTo('/cookie_page1.php'));
-        $this->getSession()->visit($this->pathTo('/cookie_page2.php'));
-        $this->assertContains('Previous cookie: srv_var_is_set', $this->getSession()->getPage()->getText());
-
-        $this->getSession()->reset();
-        $this->getSession()->visit($this->pathTo('/cookie_page2.php'));
-
-        $this->assertContains('Previous cookie: NO', $this->getSession()->getPage()->getText());
-
-        $this->getSession()->setCookie('srvr_cookie', 'test_cookie');
-        $this->getSession()->visit($this->pathTo('/cookie_page2.php'));
-        $this->assertContains('Previous cookie: test_cookie', $this->getSession()->getPage()->getText());
-        $this->getSession()->reset();
-        $this->getSession()->visit($this->pathTo('/cookie_page2.php'));
-        $this->assertContains('Previous cookie: NO', $this->getSession()->getPage()->getText());
-
-        $this->getSession()->setCookie('client_cookie1', 'some_val');
-        $this->getSession()->setCookie('client_cookie2', 123);
-        $this->getSession()->visit($this->pathTo('/session_test.php'));
-        $this->getSession()->visit($this->pathTo('/cookie_page1.php'));
-
-        $this->getSession()->visit($this->pathTo('/print_cookies.php'));
-        $this->assertContains(
-            "'client_cookie1' = 'some_val'",
-            $this->getSession()->getPage()->getText()
-        );
-        $this->assertContains(
-            "'client_cookie2' = '123'",
-            $this->getSession()->getPage()->getText()
-        );
-        $this->assertContains(
-            "_SESS' = ",
-            $this->getSession()->getPage()->getText()
-        );
-        $this->assertContains(
-            " 'srvr_cookie' = 'srv_var_is_set'",
-            $this->getSession()->getPage()->getText()
-        );
-
-        $this->getSession()->reset();
-        $this->getSession()->visit($this->pathTo('/print_cookies.php'));
-        $this->assertContains('array ( )', $this->getSession()->getPage()->getText());
-    }
-
-    public function testHttpOnlyCookieIsDeleted()
-    {
-        $this->getSession()->restart();
-        $this->getSession()->visit($this->pathTo('/cookie_page3.php'));
-        $this->assertEquals('Has Cookie: false', $this->findById('cookie-status')->getText());
-
-        $this->getSession()->reload();
-        $this->assertEquals('Has Cookie: true', $this->findById('cookie-status')->getText());
-
-        $this->getSession()->restart();
-        $this->getSession()->visit($this->pathTo('/cookie_page3.php'));
-        $this->assertEquals('Has Cookie: false', $this->findById('cookie-status')->getText());
-    }
-
-    public function testSessionPersistsBetweenRequests()
-    {
-        $this->getSession()->visit($this->pathTo('/session_test.php'));
-        $webAssert = $this->getAssertSession();
-        $node = $webAssert->elementExists('css', '#session-id');
-        $sessionId = $node->getText();
-
-        $this->getSession()->visit($this->pathTo('/session_test.php'));
-        $node = $webAssert->elementExists('css', '#session-id');
-        $this->assertEquals($sessionId, $node->getText());
-
-        $this->getSession()->visit($this->pathTo('/session_test.php?login'));
-        $node = $webAssert->elementExists('css', '#session-id');
-        $this->assertNotEquals($sessionId, $newSessionId = $node->getText());
-
-        $this->getSession()->visit($this->pathTo('/session_test.php'));
-        $node = $webAssert->elementExists('css', '#session-id');
-        $this->assertEquals($newSessionId, $node->getText());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ErrorHandlingTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/ErrorHandlingTest.php
deleted file mode 100644
index 440585a..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ErrorHandlingTest.php
+++ /dev/null
@@ -1,262 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class ErrorHandlingTest extends TestCase
-{
-    const NOT_FOUND_XPATH = '//html/./invalid';
-
-    const NOT_FOUND_EXCEPTION = 'Exception';
-
-    const INVALID_EXCEPTION = 'Exception';
-
-    public function testVisitErrorPage()
-    {
-        $this->getSession()->visit($this->pathTo('/500.php'));
-
-        $this->assertContains(
-            'Sorry, a server error happened',
-            $this->getSession()->getPage()->getContent(),
-            'Drivers allow loading pages with a 500 status code'
-        );
-    }
-
-    public function testCheckInvalidElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $element = $this->findById('user-name');
-
-        $this->setExpectedException(self::INVALID_EXCEPTION);
-        $this->getSession()->getDriver()->check($element->getXpath());
-    }
-
-    public function testCheckNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->check(self::NOT_FOUND_XPATH);
-    }
-
-    public function testUncheckInvalidElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $element = $this->findById('user-name');
-
-        $this->setExpectedException(self::INVALID_EXCEPTION);
-        $this->getSession()->getDriver()->uncheck($element->getXpath());
-    }
-
-    public function testUncheckNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->uncheck(self::NOT_FOUND_XPATH);
-    }
-
-    public function testSelectOptionInvalidElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $element = $this->findById('user-name');
-
-        $this->setExpectedException(self::INVALID_EXCEPTION);
-        $this->getSession()->getDriver()->selectOption($element->getXpath(), 'test');
-    }
-
-    public function testSelectOptionNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->selectOption(self::NOT_FOUND_XPATH, 'test');
-    }
-
-    public function testAttachFileInvalidElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $element = $this->findById('user-name');
-
-        $this->setExpectedException(self::INVALID_EXCEPTION);
-        $this->getSession()->getDriver()->attachFile($element->getXpath(), __FILE__);
-    }
-
-    public function testAttachFileNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->attachFile(self::NOT_FOUND_XPATH, __FILE__);
-    }
-
-    public function testSubmitFormInvalidElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $element = $this->findById('core');
-
-        $this->setExpectedException(self::INVALID_EXCEPTION);
-        $this->getSession()->getDriver()->submitForm($element->getXpath());
-    }
-
-    public function testSubmitFormNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->submitForm(self::NOT_FOUND_XPATH);
-    }
-
-    public function testGetTagNameNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->getTagName(self::NOT_FOUND_XPATH);
-    }
-
-    public function testGetTextNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->getText(self::NOT_FOUND_XPATH);
-    }
-
-    public function testGetHtmlNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->getHtml(self::NOT_FOUND_XPATH);
-    }
-
-    public function testGetOuterHtmlNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->getOuterHtml(self::NOT_FOUND_XPATH);
-    }
-
-    public function testGetValueNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->getValue(self::NOT_FOUND_XPATH);
-    }
-
-    public function testSetValueNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->setValue(self::NOT_FOUND_XPATH, 'test');
-    }
-
-    public function testIsSelectedNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->isSelected(self::NOT_FOUND_XPATH);
-    }
-
-    public function testIsCheckedNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->isChecked(self::NOT_FOUND_XPATH);
-    }
-
-    public function testIsVisibleNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->isVisible(self::NOT_FOUND_XPATH);
-    }
-
-    public function testClickNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->click(self::NOT_FOUND_XPATH);
-    }
-
-    public function testDoubleClickNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->doubleClick(self::NOT_FOUND_XPATH);
-    }
-
-    public function testRightClickNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->rightClick(self::NOT_FOUND_XPATH);
-    }
-
-    public function testGetAttributeNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->getAttribute(self::NOT_FOUND_XPATH, 'id');
-    }
-
-    public function testMouseOverNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->mouseOver(self::NOT_FOUND_XPATH);
-    }
-
-    public function testFocusNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->focus(self::NOT_FOUND_XPATH);
-    }
-
-    public function testBlurNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->blur(self::NOT_FOUND_XPATH);
-    }
-
-    public function testKeyPressNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->keyPress(self::NOT_FOUND_XPATH, 'a');
-    }
-
-    public function testKeyDownNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->keyDown(self::NOT_FOUND_XPATH, 'a');
-    }
-
-    public function testKeyUpNotFoundElement()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->setExpectedException(self::NOT_FOUND_EXCEPTION);
-        $this->getSession()->getDriver()->keyUp(self::NOT_FOUND_XPATH, 'a');
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/HeaderTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/HeaderTest.php
deleted file mode 100644
index 0288ff1..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/HeaderTest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class HeaderTest extends TestCase
-{
-    /**
-     * test referrer
-     * @group issue130
-     */
-    public function testIssue130()
-    {
-        $this->getSession()->visit($this->pathTo('/issue130.php?p=1'));
-        $page = $this->getSession()->getPage();
-
-        $page->clickLink('Go to 2');
-        $this->assertEquals($this->pathTo('/issue130.php?p=1'), $page->getText());
-    }
-
-    public function testHeaders()
-    {
-        $this->getSession()->setRequestHeader('Accept-Language', 'fr');
-        $this->getSession()->visit($this->pathTo('/headers.php'));
-
-        $this->assertContains('[HTTP_ACCEPT_LANGUAGE] => fr', $this->getSession()->getPage()->getContent());
-    }
-
-    public function testSetUserAgent()
-    {
-        $session = $this->getSession();
-
-        $session->setRequestHeader('user-agent', 'foo bar');
-        $session->visit($this->pathTo('/headers.php'));
-        $this->assertContains('[HTTP_USER_AGENT] => foo bar', $session->getPage()->getContent());
-    }
-
-    public function testResetHeaders()
-    {
-        $session = $this->getSession();
-
-        $session->setRequestHeader('X-Mink-Test', 'test');
-        $session->visit($this->pathTo('/headers.php'));
-
-        $this->assertContains(
-            '[HTTP_X_MINK_TEST] => test',
-            $session->getPage()->getContent(),
-            'The custom header should be sent',
-            true
-        );
-
-        $session->reset();
-        $session->visit($this->pathTo('/headers.php'));
-
-        $this->assertNotContains(
-            '[HTTP_X_MINK_TEST] => test',
-            $session->getPage()->getContent(),
-            'The custom header should not be sent after resetting',
-            true
-        );
-    }
-
-    public function testResponseHeaders()
-    {
-        $this->getSession()->visit($this->pathTo('/response_headers.php'));
-
-        $headers = $this->getSession()->getResponseHeaders();
-
-        $lowercasedHeaders = array();
-        foreach ($headers as $name => $value) {
-            $lowercasedHeaders[str_replace('_', '-', strtolower($name))] = $value;
-        }
-
-        $this->assertArrayHasKey('x-mink-test', $lowercasedHeaders);
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/IFrameTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/IFrameTest.php
deleted file mode 100644
index 0ed0f9e..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/IFrameTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class IFrameTest extends TestCase
-{
-    public function testIFrame()
-    {
-        $this->getSession()->visit($this->pathTo('/iframe.html'));
-        $webAssert = $this->getAssertSession();
-
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('Main window div text', $el->getText());
-
-        $this->getSession()->switchToIFrame('subframe');
-
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('iFrame div text', $el->getText());
-
-        $this->getSession()->switchToIFrame();
-
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('Main window div text', $el->getText());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/NavigationTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/NavigationTest.php
deleted file mode 100644
index 8ecb139..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/NavigationTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class NavigationTest extends TestCase
-{
-    public function testRedirect()
-    {
-        $this->getSession()->visit($this->pathTo('/redirector.php'));
-        $this->assertEquals($this->pathTo('/redirect_destination.html'), $this->getSession()->getCurrentUrl());
-    }
-
-    public function testPageControlls()
-    {
-        $this->getSession()->visit($this->pathTo('/randomizer.php'));
-        $number1 = $this->getSession()->getPage()->find('css', '#number')->getText();
-
-        $this->getSession()->reload();
-        $number2 = $this->getSession()->getPage()->find('css', '#number')->getText();
-
-        $this->assertNotEquals($number1, $number2);
-
-        $this->getSession()->visit($this->pathTo('/links.html'));
-        $this->getSession()->getPage()->clickLink('Random number page');
-
-        $this->assertEquals($this->pathTo('/randomizer.php'), $this->getSession()->getCurrentUrl());
-
-        $this->getSession()->back();
-        $this->assertEquals($this->pathTo('/links.html'), $this->getSession()->getCurrentUrl());
-
-        $this->getSession()->forward();
-        $this->assertEquals($this->pathTo('/randomizer.php'), $this->getSession()->getCurrentUrl());
-    }
-
-    public function testLinks()
-    {
-        $this->getSession()->visit($this->pathTo('/links.html'));
-        $page = $this->getSession()->getPage();
-        $link = $page->findLink('Redirect me to');
-
-        $this->assertNotNull($link);
-        $this->assertRegExp('/redirector\.php$/', $link->getAttribute('href'));
-        $link->click();
-
-        $this->assertEquals($this->pathTo('/redirect_destination.html'), $this->getSession()->getCurrentUrl());
-
-        $this->getSession()->visit($this->pathTo('/links.html'));
-        $page = $this->getSession()->getPage();
-        $link = $page->findLink('basic form image');
-
-        $this->assertNotNull($link);
-        $this->assertRegExp('/basic_form\.html$/', $link->getAttribute('href'));
-        $link->click();
-
-        $this->assertEquals($this->pathTo('/basic_form.html'), $this->getSession()->getCurrentUrl());
-
-        $this->getSession()->visit($this->pathTo('/links.html'));
-        $page = $this->getSession()->getPage();
-        $link = $page->findLink("Link with a ");
-
-        $this->assertNotNull($link);
-        $this->assertRegExp('/links\.html\?quoted$/', $link->getAttribute('href'));
-        $link->click();
-
-        $this->assertEquals($this->pathTo('/links.html?quoted'), $this->getSession()->getCurrentUrl());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ScreenshotTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/ScreenshotTest.php
deleted file mode 100644
index 329f2d3..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ScreenshotTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class ScreenshotTest extends TestCase
-{
-    public function testScreenshot()
-    {
-        if (!extension_loaded('gd')) {
-            $this->markTestSkipped('Testing screenshots requires the GD extension');
-        }
-
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $screenShot = $this->getSession()->getScreenshot();
-
-        $this->assertInternalType('string', $screenShot);
-        $this->assertFalse(base64_decode($screenShot, true), 'The returned screenshot should not be base64-encoded');
-
-        $img = imagecreatefromstring($screenShot);
-
-        if (false === $img) {
-            $this->fail('The screenshot should be a valid image');
-        }
-
-        imagedestroy($img);
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/StatusCodeTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/StatusCodeTest.php
deleted file mode 100644
index 34ca7f0..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/StatusCodeTest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class StatusCodeTest extends TestCase
-{
-    public function testStatuses()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->assertEquals(200, $this->getSession()->getStatusCode());
-        $this->assertEquals($this->pathTo('/index.html'), $this->getSession()->getCurrentUrl());
-
-        $this->getSession()->visit($this->pathTo('/404.php'));
-
-        $this->assertEquals($this->pathTo('/404.php'), $this->getSession()->getCurrentUrl());
-        $this->assertEquals(404, $this->getSession()->getStatusCode());
-        $this->assertEquals('Sorry, page not found', $this->getSession()->getPage()->getContent());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/TraversingTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/TraversingTest.php
deleted file mode 100644
index 3bcb7ac..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/TraversingTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class TraversingTest extends TestCase
-{
-    /**
-     * find by label
-     * @group issue211
-     */
-    public function testIssue211()
-    {
-        $this->getSession()->visit($this->pathTo('/issue211.html'));
-        $field = $this->getSession()->getPage()->findField('Téléphone');
-
-        $this->assertNotNull($field);
-    }
-
-    public function testElementsTraversing()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $page = $this->getSession()->getPage();
-
-        $this->assertNotNull($page->find('css', 'h1'));
-        $this->assertEquals('Extremely useless page', $page->find('css', 'h1')->getText());
-        $this->assertEquals('h1', $page->find('css', 'h1')->getTagName());
-
-        $this->assertNotNull($page->find('xpath', '//div/strong[3]'));
-        $this->assertEquals('pariatur', $page->find('xpath', '//div/strong[3]')->getText());
-        $this->assertEquals('super-duper', $page->find('xpath', '//div/strong[3]')->getAttribute('class'));
-        $this->assertTrue($page->find('xpath', '//div/strong[3]')->hasAttribute('class'));
-
-        $this->assertNotNull($page->find('xpath', '//div/strong[2]'));
-        $this->assertEquals('veniam', $page->find('xpath', '//div/strong[2]')->getText());
-        $this->assertEquals('strong', $page->find('xpath', '//div/strong[2]')->getTagName());
-        $this->assertNull($page->find('xpath', '//div/strong[2]')->getAttribute('class'));
-        $this->assertFalse($page->find('xpath', '//div/strong[2]')->hasAttribute('class'));
-
-        $strongs = $page->findAll('css', 'div#core > strong');
-        $this->assertCount(3, $strongs);
-        $this->assertEquals('Lorem', $strongs[0]->getText());
-        $this->assertEquals('pariatur', $strongs[2]->getText());
-
-        $element = $page->find('css', '#some-element');
-
-        $this->assertEquals('some very interesting text', $element->getText());
-        $this->assertEquals(
-            "\n            some <div>very\n            </div>\n".
-            "<em>interesting</em>      text\n        ",
-            $element->getHtml()
-        );
-
-        $this->assertTrue($element->hasAttribute('data-href'));
-        $this->assertFalse($element->hasAttribute('data-url'));
-        $this->assertEquals('http://mink.behat.org', $element->getAttribute('data-href'));
-        $this->assertNull($element->getAttribute('data-url'));
-        $this->assertEquals('div', $element->getTagName());
-    }
-
-    public function testVeryDeepElementsTraversing()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $page = $this->getSession()->getPage();
-
-        $footer = $page->find('css', 'footer');
-        $this->assertNotNull($footer);
-
-        $searchForm = $footer->find('css', 'form#search-form');
-        $this->assertNotNull($searchForm);
-        $this->assertEquals('search-form', $searchForm->getAttribute('id'));
-
-        $searchInput = $searchForm->findField('Search site...');
-        $this->assertNotNull($searchInput);
-        $this->assertEquals('text', $searchInput->getAttribute('type'));
-
-        $searchInput = $searchForm->findField('Search site...');
-        $this->assertNotNull($searchInput);
-        $this->assertEquals('text', $searchInput->getAttribute('type'));
-
-        $profileForm = $footer->find('css', '#profile');
-        $this->assertNotNull($profileForm);
-
-        $profileFormDiv = $profileForm->find('css', 'div');
-        $this->assertNotNull($profileFormDiv);
-
-        $profileFormDivLabel = $profileFormDiv->find('css', 'label');
-        $this->assertNotNull($profileFormDivLabel);
-
-        $profileFormDivParent = $profileFormDivLabel->getParent();
-        $this->assertNotNull($profileFormDivParent);
-
-        $profileFormDivParent = $profileFormDivLabel->getParent();
-        $this->assertEquals('something', $profileFormDivParent->getAttribute('data-custom'));
-
-        $profileFormInput = $profileFormDivLabel->findField('user-name');
-        $this->assertNotNull($profileFormInput);
-        $this->assertEquals('username', $profileFormInput->getAttribute('name'));
-    }
-
-    public function testDeepTraversing()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $traversDiv = $this->getSession()->getPage()->findAll('css', 'div.travers');
-
-        $this->assertCount(1, $traversDiv);
-        $traversDiv = $traversDiv[0];
-
-        $subDivs = $traversDiv->findAll('css', 'div.sub');
-        $this->assertCount(3, $subDivs);
-
-        $this->assertTrue($subDivs[2]->hasLink('some deep url'));
-        $this->assertFalse($subDivs[2]->hasLink('come deep url'));
-        $subUrl = $subDivs[2]->findLink('some deep url');
-        $this->assertNotNull($subUrl);
-
-        $this->assertRegExp('/some_url$/', $subUrl->getAttribute('href'));
-        $this->assertEquals('some deep url', $subUrl->getText());
-        $this->assertEquals('some <strong>deep</strong> url', $subUrl->getHtml());
-
-        $this->assertTrue($subUrl->has('css', 'strong'));
-        $this->assertFalse($subUrl->has('css', 'em'));
-        $this->assertEquals('deep', $subUrl->find('css', 'strong')->getText());
-    }
-
-    public function testFindingChild()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $form = $this->getSession()->getPage()->find('css', 'footer form');
-        $this->assertNotNull($form);
-
-        $this->assertCount(1, $form->findAll('css', 'input'), 'Elements are searched only in the element, not in all previous matches');
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/VisibilityTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/VisibilityTest.php
deleted file mode 100644
index b3daf31..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Basic/VisibilityTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Basic;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class VisibilityTest extends TestCase
-{
-    public function testVisibility()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $webAssert = $this->getAssertSession();
-
-        $clicker   = $webAssert->elementExists('css', '.elements div#clicker');
-        $invisible = $webAssert->elementExists('css', '#invisible');
-
-        $this->assertFalse($invisible->isVisible());
-        $this->assertTrue($clicker->isVisible());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Css/HoverTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Css/HoverTest.php
deleted file mode 100644
index 87041d4..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Css/HoverTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Css;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class HoverTest extends TestCase
-{
-    /**
-     * @group mouse-events
-     */
-    public function testMouseOverHover()
-    {
-        $this->getSession()->visit($this->pathTo('/css_mouse_events.html'));
-
-        $this->findById('reset-square')->mouseOver();
-        $this->assertActionSquareHeight(100);
-
-        $this->findById('action-square')->mouseOver();
-        $this->assertActionSquareHeight(200);
-    }
-
-    /**
-     * @group mouse-events
-     * @depends testMouseOverHover
-     */
-    public function testClickHover()
-    {
-        $this->getSession()->visit($this->pathTo('/css_mouse_events.html'));
-
-        $this->findById('reset-square')->mouseOver();
-        $this->assertActionSquareHeight(100);
-
-        $this->findById('action-square')->click();
-        $this->assertActionSquareHeight(200);
-    }
-
-    /**
-     * @group mouse-events
-     * @depends testMouseOverHover
-     */
-    public function testDoubleClickHover()
-    {
-        $this->getSession()->visit($this->pathTo('/css_mouse_events.html'));
-
-        $this->findById('reset-square')->mouseOver();
-        $this->assertActionSquareHeight(100);
-
-        $this->findById('action-square')->doubleClick();
-        $this->assertActionSquareHeight(200);
-    }
-
-    /**
-     * @group mouse-events
-     * @depends testMouseOverHover
-     */
-    public function testRightClickHover()
-    {
-        $this->getSession()->visit($this->pathTo('/css_mouse_events.html'));
-
-        $this->findById('reset-square')->mouseOver();
-        $this->assertActionSquareHeight(100);
-
-        $this->findById('action-square')->rightClick();
-        $this->assertActionSquareHeight(200);
-    }
-
-    private function assertActionSquareHeight($expected)
-    {
-        $this->assertEquals(
-            $expected,
-            $this->getSession()->evaluateScript("return window.$('#action-square').height();"),
-            'Mouse is located over the object when mouse-related action is performed'
-        );
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Form/CheckboxTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Form/CheckboxTest.php
deleted file mode 100644
index e1ce4ab..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Form/CheckboxTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Form;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class CheckboxTest extends TestCase
-{
-    public function testManipulate()
-    {
-        $this->getSession()->visit($this->pathTo('advanced_form.html'));
-
-        $checkbox = $this->getAssertSession()->fieldExists('agreement');
-
-        $this->assertNull($checkbox->getValue());
-        $this->assertFalse($checkbox->isChecked());
-
-        $checkbox->check();
-
-        $this->assertEquals('yes', $checkbox->getValue());
-        $this->assertTrue($checkbox->isChecked());
-
-        $checkbox->uncheck();
-
-        $this->assertNull($checkbox->getValue());
-        $this->assertFalse($checkbox->isChecked());
-    }
-
-    public function testSetValue()
-    {
-        $this->getSession()->visit($this->pathTo('advanced_form.html'));
-
-        $checkbox = $this->getAssertSession()->fieldExists('agreement');
-
-        $this->assertNull($checkbox->getValue());
-        $this->assertFalse($checkbox->isChecked());
-
-        $checkbox->setValue(true);
-
-        $this->assertEquals('yes', $checkbox->getValue());
-        $this->assertTrue($checkbox->isChecked());
-
-        $checkbox->setValue(false);
-
-        $this->assertNull($checkbox->getValue());
-        $this->assertFalse($checkbox->isChecked());
-    }
-
-    public function testCheckboxMultiple()
-    {
-        $this->getSession()->visit($this->pathTo('/multicheckbox_form.html'));
-        $webAssert = $this->getAssertSession();
-
-        $this->assertEquals('Multicheckbox Test', $webAssert->elementExists('css', 'h1')->getText());
-
-        $updateMail  = $webAssert->elementExists('css', '[name="mail_types[]"][value="update"]');
-        $spamMail    = $webAssert->elementExists('css', '[name="mail_types[]"][value="spam"]');
-
-        $this->assertEquals('update', $updateMail->getValue());
-        $this->assertNull($spamMail->getValue());
-
-        $this->assertTrue($updateMail->isChecked());
-        $this->assertFalse($spamMail->isChecked());
-
-        $updateMail->uncheck();
-        $this->assertFalse($updateMail->isChecked());
-        $this->assertFalse($spamMail->isChecked());
-
-        $spamMail->check();
-        $this->assertFalse($updateMail->isChecked());
-        $this->assertTrue($spamMail->isChecked());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Form/GeneralTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Form/GeneralTest.php
deleted file mode 100644
index f15f266..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Form/GeneralTest.php
+++ /dev/null
@@ -1,312 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Form;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class GeneralTest extends TestCase
-{
-    // test multiple submit buttons
-    public function testIssue212()
-    {
-        $session = $this->getSession();
-
-        $session->visit($this->pathTo('/issue212.html'));
-
-        $field = $this->findById('poney-button');
-        $this->assertEquals('poney', $field->getValue());
-    }
-
-    public function testBasicForm()
-    {
-        $this->getSession()->visit($this->pathTo('/basic_form.html'));
-
-        $webAssert = $this->getAssertSession();
-        $page = $this->getSession()->getPage();
-        $this->assertEquals('Basic Form Page', $webAssert->elementExists('css', 'h1')->getText());
-
-        $firstname  = $webAssert->fieldExists('first_name');
-        $lastname   = $webAssert->fieldExists('lastn');
-
-        $this->assertEquals('Firstname', $firstname->getValue());
-        $this->assertEquals('Lastname', $lastname->getValue());
-
-        $firstname->setValue('Konstantin');
-        $page->fillField('last_name', 'Kudryashov');
-
-        $this->assertEquals('Konstantin', $firstname->getValue());
-        $this->assertEquals('Kudryashov', $lastname->getValue());
-
-        $page->findButton('Reset')->click();
-
-        $this->assertEquals('Firstname', $firstname->getValue());
-        $this->assertEquals('Lastname', $lastname->getValue());
-
-        $firstname->setValue('Konstantin');
-        $page->fillField('last_name', 'Kudryashov');
-
-        $page->findButton('Save')->click();
-
-        if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) {
-            $this->assertEquals('Anket for Konstantin', $webAssert->elementExists('css', 'h1')->getText());
-            $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText());
-            $this->assertEquals('Lastname: Kudryashov', $webAssert->elementExists('css', '#last')->getText());
-        }
-    }
-
-    /**
-     * @dataProvider formSubmitWaysDataProvider
-     */
-    public function testFormSubmitWays($submitVia)
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/basic_form.html'));
-        $page = $session->getPage();
-        $webAssert = $this->getAssertSession();
-
-        $firstname = $webAssert->fieldExists('first_name');
-        $firstname->setValue('Konstantin');
-
-        $page->findButton($submitVia)->click();
-
-        if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) {
-            $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText());
-        } else {
-            $this->fail('Form was never submitted');
-        }
-    }
-
-    public function formSubmitWaysDataProvider()
-    {
-        return array(
-            array('Save'),
-            array('input-type-image'),
-            array('button-without-type'),
-            array('button-type-submit'),
-        );
-    }
-
-    public function testFormSubmit()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/basic_form.html'));
-
-        $webAssert = $this->getAssertSession();
-        $webAssert->fieldExists('first_name')->setValue('Konstantin');
-
-        $webAssert->elementExists('xpath', 'descendant-or-self::form[1]')->submit();
-
-        if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) {
-            $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText());
-        };
-    }
-
-    public function testFormSubmitWithoutButton()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/form_without_button.html'));
-
-        $webAssert = $this->getAssertSession();
-        $webAssert->fieldExists('first_name')->setValue('Konstantin');
-
-        $webAssert->elementExists('xpath', 'descendant-or-self::form[1]')->submit();
-
-        if ($this->safePageWait(5000, 'document.getElementById("first") !== null')) {
-            $this->assertEquals('Firstname: Konstantin', $webAssert->elementExists('css', '#first')->getText());
-        };
-    }
-
-    public function testBasicGetForm()
-    {
-        $this->getSession()->visit($this->pathTo('/basic_get_form.php'));
-        $webAssert = $this->getAssertSession();
-
-        $page = $this->getSession()->getPage();
-        $this->assertEquals('Basic Get Form Page', $webAssert->elementExists('css', 'h1')->getText());
-
-        $search = $webAssert->fieldExists('q');
-        $search->setValue('some#query');
-        $page->pressButton('Find');
-
-        $div = $webAssert->elementExists('css', 'div');
-        $this->assertEquals('some#query', $div->getText());
-    }
-
-    public function testAdvancedForm()
-    {
-        $this->getSession()->visit($this->pathTo('/advanced_form.html'));
-        $page = $this->getSession()->getPage();
-
-        $page->fillField('first_name', 'ever');
-        $page->fillField('last_name', 'zet');
-
-        $page->pressButton('Register');
-
-        $this->assertContains('no file', $page->getContent());
-
-        $this->getSession()->visit($this->pathTo('/advanced_form.html'));
-
-        $webAssert = $this->getAssertSession();
-        $page = $this->getSession()->getPage();
-        $this->assertEquals('ADvanced Form Page', $webAssert->elementExists('css', 'h1')->getText());
-
-        $firstname   = $webAssert->fieldExists('first_name');
-        $lastname    = $webAssert->fieldExists('lastn');
-        $email       = $webAssert->fieldExists('Your email:');
-        $select      = $webAssert->fieldExists('select_number');
-        $sex         = $webAssert->fieldExists('sex');
-        $maillist    = $webAssert->fieldExists('mail_list');
-        $agreement   = $webAssert->fieldExists('agreement');
-        $notes       = $webAssert->fieldExists('notes');
-        $about       = $webAssert->fieldExists('about');
-
-        $this->assertEquals('Firstname', $firstname->getValue());
-        $this->assertEquals('Lastname', $lastname->getValue());
-        $this->assertEquals('your@email.com', $email->getValue());
-        $this->assertEquals('20', $select->getValue());
-        $this->assertEquals('w', $sex->getValue());
-        $this->assertEquals('original notes', $notes->getValue());
-
-        $this->assertEquals('on', $maillist->getValue());
-        $this->assertNull($agreement->getValue());
-
-        $this->assertTrue($maillist->isChecked());
-        $this->assertFalse($agreement->isChecked());
-
-        $agreement->check();
-        $this->assertTrue($agreement->isChecked());
-
-        $maillist->uncheck();
-        $this->assertFalse($maillist->isChecked());
-
-        $select->selectOption('thirty');
-        $this->assertEquals('30', $select->getValue());
-
-        $sex->selectOption('m');
-        $this->assertEquals('m', $sex->getValue());
-
-        $notes->setValue('new notes');
-        $this->assertEquals('new notes', $notes->getValue());
-
-        $about->attachFile($this->mapRemoteFilePath(__DIR__.'/../../web-fixtures/some_file.txt'));
-
-        $button = $page->findButton('Register');
-        $this->assertNotNull($button);
-
-        $page->fillField('first_name', 'Foo "item"');
-        $page->fillField('last_name', 'Bar');
-        $page->fillField('Your email:', 'ever.zet@gmail.com');
-
-        $this->assertEquals('Foo "item"', $firstname->getValue());
-        $this->assertEquals('Bar', $lastname->getValue());
-
-        $button->press();
-
-        if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
-            $out = <<<OUT
-array (
-  'agreement' = 'on',
-  'email' = 'ever.zet@gmail.com',
-  'first_name' = 'Foo "item"',
-  'last_name' = 'Bar',
-  'notes' = 'new notes',
-  'select_number' = '30',
-  'sex' = 'm',
-  'submit' = 'Register',
-)
-some_file.txt
-1 uploaded file
-OUT;
-            $this->assertContains($out, $page->getContent());
-        }
-    }
-
-    public function testMultiInput()
-    {
-        $this->getSession()->visit($this->pathTo('/multi_input_form.html'));
-        $page = $this->getSession()->getPage();
-        $webAssert = $this->getAssertSession();
-        $this->assertEquals('Multi input Test', $webAssert->elementExists('css', 'h1')->getText());
-
-        $first = $webAssert->fieldExists('First');
-        $second = $webAssert->fieldExists('Second');
-        $third = $webAssert->fieldExists('Third');
-
-        $this->assertEquals('tag1', $first->getValue());
-        $this->assertSame('tag2', $second->getValue());
-        $this->assertEquals('tag1', $third->getValue());
-
-        $first->setValue('tag2');
-        $this->assertEquals('tag2', $first->getValue());
-        $this->assertSame('tag2', $second->getValue());
-        $this->assertEquals('tag1', $third->getValue());
-
-        $second->setValue('one');
-
-        $this->assertEquals('tag2', $first->getValue());
-        $this->assertSame('one', $second->getValue());
-
-        $third->setValue('tag3');
-
-        $this->assertEquals('tag2', $first->getValue());
-        $this->assertSame('one', $second->getValue());
-        $this->assertEquals('tag3', $third->getValue());
-
-        $button = $page->findButton('Register');
-        $this->assertNotNull($button);
-        $button->press();
-
-        $space = ' ';
-        $out = <<<OUT
-  'tags' =$space
-  array (
-    0 = 'tag2',
-    1 = 'one',
-    2 = 'tag3',
-  ),
-OUT;
-        $this->assertContains($out, $page->getContent());
-    }
-
-    public function testAdvancedFormSecondSubmit()
-    {
-        $this->getSession()->visit($this->pathTo('/advanced_form.html'));
-        $page = $this->getSession()->getPage();
-
-        $button = $page->findButton('Login');
-        $this->assertNotNull($button);
-        $button->press();
-
-        $toSearch = array(
-            "'agreement' = 'off',",
-            "'submit' = 'Login',",
-            'no file',
-        );
-
-        $pageContent = $page->getContent();
-
-        foreach ($toSearch as $searchString) {
-            $this->assertContains($searchString, $pageContent);
-        }
-    }
-
-    public function testSubmitEmptyTextarea()
-    {
-        $this->getSession()->visit($this->pathTo('/empty_textarea.html'));
-        $page = $this->getSession()->getPage();
-
-        $page->pressButton('Save');
-
-        $toSearch = array(
-            "'textarea' = '',",
-            "'submit' = 'Save',",
-            'no file',
-        );
-
-        $pageContent = $page->getContent();
-
-        foreach ($toSearch as $searchString) {
-            $this->assertContains($searchString, $pageContent);
-        }
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Form/Html5Test.php b/core/vendor/behat/mink/driver-testsuite/tests/Form/Html5Test.php
deleted file mode 100644
index b7f4716..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Form/Html5Test.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Form;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class Html5Test extends TestCase
-{
-    public function testHtml5FormInputAttribute()
-    {
-        $this->getSession()->visit($this->pathTo('/html5_form.html'));
-        $page = $this->getSession()->getPage();
-        $webAssert = $this->getAssertSession();
-
-        $firstName = $webAssert->fieldExists('first_name');
-        $lastName = $webAssert->fieldExists('last_name');
-
-        $this->assertEquals('not set', $lastName->getValue());
-        $firstName->setValue('John');
-        $lastName->setValue('Doe');
-
-        $this->assertEquals('Doe', $lastName->getValue());
-
-        $page->pressButton('Submit in form');
-
-        if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
-            $out = <<<OUT
-  'first_name' = 'John',
-  'last_name' = 'Doe',
-OUT;
-            $this->assertContains($out, $page->getContent());
-            $this->assertNotContains('other_field', $page->getContent());
-        }
-    }
-
-    public function testHtml5FormRadioAttribute()
-    {
-        $this->getSession()->visit($this->pathTo('html5_radio.html'));
-        $page = $this->getSession()->getPage();
-
-        $radio = $this->findById('sex_f');
-        $otherRadio = $this->findById('sex_invalid');
-
-        $this->assertEquals('f', $radio->getValue());
-        $this->assertEquals('invalid', $otherRadio->getValue());
-
-        $radio->selectOption('m');
-
-        $this->assertEquals('m', $radio->getValue());
-        $this->assertEquals('invalid', $otherRadio->getValue());
-
-        $page->pressButton('Submit in form');
-
-        $out = <<<OUT
-  'sex' = 'm',
-OUT;
-        $this->assertContains($out, $page->getContent());
-    }
-
-    public function testHtml5FormButtonAttribute()
-    {
-        $this->getSession()->visit($this->pathTo('/html5_form.html'));
-        $page = $this->getSession()->getPage();
-        $webAssert = $this->getAssertSession();
-
-        $firstName = $webAssert->fieldExists('first_name');
-        $lastName = $webAssert->fieldExists('last_name');
-
-        $firstName->setValue('John');
-        $lastName->setValue('Doe');
-
-        $page->pressButton('Submit outside form');
-
-        if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
-            $out = <<<OUT
-  'first_name' = 'John',
-  'last_name' = 'Doe',
-  'submit_button' = 'test',
-OUT;
-            $this->assertContains($out, $page->getContent());
-        }
-    }
-
-    public function testHtml5FormOutside()
-    {
-        $this->getSession()->visit($this->pathTo('/html5_form.html'));
-        $page = $this->getSession()->getPage();
-
-        $page->fillField('other_field', 'hello');
-
-        $page->pressButton('Submit separate form');
-
-        if ($this->safePageWait(5000, 'document.getElementsByTagName("title") !== null')) {
-            $out = <<<OUT
-  'other_field' = 'hello',
-OUT;
-            $this->assertContains($out, $page->getContent());
-            $this->assertNotContains('first_name', $page->getContent());
-        }
-    }
-
-    public function testHtml5Types()
-    {
-        $this->getSession()->visit($this->pathTo('html5_types.html'));
-        $page = $this->getSession()->getPage();
-
-        $page->fillField('url', 'http://mink.behat.org/');
-        $page->fillField('email', 'mink@example.org');
-        $page->fillField('number', '6');
-        $page->fillField('search', 'mink');
-        $page->fillField('date', '2014-05-19');
-        $page->fillField('color', '#ff00aa');
-
-        $page->pressButton('Submit');
-
-        $out = <<<OUT
-  'color' = '#ff00aa',
-  'date' = '2014-05-19',
-  'email' = 'mink@example.org',
-  'number' = '6',
-  'search' = 'mink',
-  'submit_button' = 'Submit',
-  'url' = 'http://mink.behat.org/',
-OUT;
-
-        $this->assertContains($out, $page->getContent());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Form/RadioTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Form/RadioTest.php
deleted file mode 100644
index b21ab7d..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Form/RadioTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Form;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class RadioTest extends TestCase
-{
-    protected function setUp()
-    {
-        $this->getSession()->visit($this->pathTo('radio.html'));
-    }
-
-    public function testIsChecked()
-    {
-        $option = $this->findById('first');
-        $option2 = $this->findById('second');
-
-        $this->assertTrue($option->isChecked());
-        $this->assertFalse($option2->isChecked());
-
-        $option2->selectOption('updated');
-
-        $this->assertFalse($option->isChecked());
-        $this->assertTrue($option2->isChecked());
-    }
-
-    public function testSelectOption()
-    {
-        $option = $this->findById('first');
-
-        $this->assertEquals('set', $option->getValue());
-
-        $option->selectOption('updated');
-
-        $this->assertEquals('updated', $option->getValue());
-
-        $option->selectOption('set');
-
-        $this->assertEquals('set', $option->getValue());
-    }
-
-    public function testSetValue()
-    {
-        $option = $this->findById('first');
-
-        $this->assertEquals('set', $option->getValue());
-
-        $option->setValue('updated');
-
-        $this->assertEquals('updated', $option->getValue());
-        $this->assertFalse($option->isChecked());
-    }
-
-    public function testSameNameInMultipleForms()
-    {
-        $option1 = $this->findById('reused_form1');
-        $option2 = $this->findById('reused_form2');
-
-        $this->assertEquals('test2', $option1->getValue());
-        $this->assertEquals('test3', $option2->getValue());
-
-        $option1->selectOption('test');
-
-        $this->assertEquals('test', $option1->getValue());
-        $this->assertEquals('test3', $option2->getValue());
-    }
-
-    /**
-     * @see https://github.com/Behat/MinkSahiDriver/issues/32
-     */
-    public function testSetValueXPathEscaping()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/advanced_form.html'));
-        $page = $session->getPage();
-
-        $sex = $page->find('xpath', '//*[@name = "sex"]'."\n|\n".'//*[@id = "sex"]');
-        $this->assertNotNull($sex, 'xpath with line ending works');
-
-        $sex->setValue('m');
-        $this->assertEquals('m', $sex->getValue(), 'no double xpath escaping during radio button value change');
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Form/SelectTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Form/SelectTest.php
deleted file mode 100644
index 492625a..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Form/SelectTest.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Form;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class SelectTest extends TestCase
-{
-    public function testMultiselect()
-    {
-        $this->getSession()->visit($this->pathTo('/multiselect_form.html'));
-        $webAssert = $this->getAssertSession();
-        $page = $this->getSession()->getPage();
-        $this->assertEquals('Multiselect Test', $webAssert->elementExists('css', 'h1')->getText());
-
-        $select      = $webAssert->fieldExists('select_number');
-        $multiSelect = $webAssert->fieldExists('select_multiple_numbers[]');
-        $secondMultiSelect = $webAssert->fieldExists('select_multiple_values[]');
-
-        $this->assertEquals('20', $select->getValue());
-        $this->assertSame(array(), $multiSelect->getValue());
-        $this->assertSame(array('2', '3'), $secondMultiSelect->getValue());
-
-        $select->selectOption('thirty');
-        $this->assertEquals('30', $select->getValue());
-
-        $multiSelect->selectOption('one', true);
-
-        $this->assertSame(array('1'), $multiSelect->getValue());
-
-        $multiSelect->selectOption('three', true);
-
-        $this->assertEquals(array('1', '3'), $multiSelect->getValue());
-
-        $secondMultiSelect->selectOption('two');
-        $this->assertSame(array('2'), $secondMultiSelect->getValue());
-
-        $button = $page->findButton('Register');
-        $this->assertNotNull($button);
-        $button->press();
-
-        $space = ' ';
-        $out = <<<OUT
-  'agreement' = 'off',
-  'select_multiple_numbers' =$space
-  array (
-    0 = '1',
-    1 = '3',
-  ),
-  'select_multiple_values' =$space
-  array (
-    0 = '2',
-  ),
-  'select_number' = '30',
-OUT;
-        $this->assertContains($out, $page->getContent());
-    }
-
-    /**
-     * @dataProvider testElementSelectedStateCheckDataProvider
-     */
-    public function testElementSelectedStateCheck($selectName, $optionValue, $optionText)
-    {
-        $session = $this->getSession();
-        $webAssert = $this->getAssertSession();
-        $session->visit($this->pathTo('/multiselect_form.html'));
-        $select = $webAssert->fieldExists($selectName);
-
-        $optionValueEscaped = $session->getSelectorsHandler()->xpathLiteral($optionValue);
-        $option = $webAssert->elementExists('named', array('option', $optionValueEscaped));
-
-        $this->assertFalse($option->isSelected());
-        $select->selectOption($optionText);
-        $this->assertTrue($option->isSelected());
-    }
-
-    public function testElementSelectedStateCheckDataProvider()
-    {
-        return array(
-            array('select_number', '30', 'thirty'),
-            array('select_multiple_numbers[]', '2', 'two'),
-        );
-    }
-
-    public function testSetValueSingleSelect()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/multiselect_form.html'));
-        $select = $this->getAssertSession()->fieldExists('select_number');
-
-        $select->setValue('10');
-        $this->assertEquals('10', $select->getValue());
-    }
-
-    public function testSetValueMultiSelect()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/multiselect_form.html'));
-        $select = $this->getAssertSession()->fieldExists('select_multiple_values[]');
-
-        $select->setValue(array('1', '2'));
-        $this->assertEquals(array('1', '2'), $select->getValue());
-    }
-
-    /**
-     * @see https://github.com/Behat/Mink/issues/193
-     */
-    public function testOptionWithoutValue()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/issue193.html'));
-
-        $session->getPage()->selectFieldOption('options-without-values', 'Two');
-        $this->assertEquals('Two', $this->findById('options-without-values')->getValue());
-
-        $this->assertTrue($this->findById('two')->isSelected());
-        $this->assertFalse($this->findById('one')->isSelected());
-
-        $session->getPage()->selectFieldOption('options-with-values', 'two');
-        $this->assertEquals('two', $this->findById('options-with-values')->getValue());
-    }
-
-    /**
-     * @see https://github.com/Behat/Mink/issues/131
-     */
-    public function testAccentuatedOption()
-    {
-        $this->getSession()->visit($this->pathTo('/issue131.html'));
-        $page = $this->getSession()->getPage();
-
-        $page->selectFieldOption('foobar', 'Gimme some accentués characters');
-
-        $this->assertEquals('1', $page->findField('foobar')->getValue());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Js/ChangeEventTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Js/ChangeEventTest.php
deleted file mode 100644
index d1fd3f1..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Js/ChangeEventTest.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Js;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class ChangeEventTest extends TestCase
-{
-    /**
-     * 'change' event should be fired after selecting an <option> in a <select>
-     *
-     * TODO check whether this test is redundant with other change event tests.
-     */
-    public function testIssue255()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/issue255.html'));
-
-        $session->getPage()->selectFieldOption('foo_select', 'Option 3');
-
-        $session->wait(2000, '$("#output_foo_select").text() != ""');
-        $this->assertEquals('onChangeSelect', $session->getPage()->find('css', '#output_foo_select')->getText());
-    }
-
-    public function testIssue178()
-    {
-        $session = $this->getSession();
-        $session->visit($this->pathTo('/issue178.html'));
-
-        $this->findById('source')->setValue('foo');
-        $this->assertEquals('foo', $this->findById('target')->getText());
-    }
-
-    /**
-     * @dataProvider setValueChangeEventDataProvider
-     * @group change-event-detector
-     */
-    public function testSetValueChangeEvent($elementId, $valueForEmpty, $valueForFilled = '')
-    {
-        $this->getSession()->visit($this->pathTo('/element_change_detector.html'));
-        $page = $this->getSession()->getPage();
-
-        $input = $this->findById($elementId);
-        $this->assertNull($page->findById($elementId.'-result'));
-
-        // Verify setting value, when control is initially empty.
-        $input->setValue($valueForEmpty);
-        $this->assertElementChangeCount($elementId, 'initial value setting triggers change event');
-
-        if ($valueForFilled) {
-            // Verify setting value, when control already has a value.
-            $this->findById('results')->click();
-            $input->setValue($valueForFilled);
-            $this->assertElementChangeCount($elementId, 'value change triggers change event');
-        }
-    }
-
-    public function setValueChangeEventDataProvider()
-    {
-        return array(
-            'input default' => array('the-input-default', 'from empty', 'from existing'),
-            'input text' => array('the-input-text', 'from empty', 'from existing'),
-            'input email' => array('the-email', 'from empty', 'from existing'),
-            'textarea' => array('the-textarea', 'from empty', 'from existing'),
-            'file' => array('the-file', 'from empty', 'from existing'),
-            'select' => array('the-select', '30'),
-            'radio' => array('the-radio-m', 'm'),
-        );
-    }
-
-    /**
-     * @dataProvider selectOptionChangeEventDataProvider
-     * @group change-event-detector
-     */
-    public function testSelectOptionChangeEvent($elementId, $elementValue)
-    {
-        $this->getSession()->visit($this->pathTo('/element_change_detector.html'));
-        $page = $this->getSession()->getPage();
-
-        $input = $this->findById($elementId);
-        $this->assertNull($page->findById($elementId.'-result'));
-
-        $input->selectOption($elementValue);
-        $this->assertElementChangeCount($elementId);
-    }
-
-    public function selectOptionChangeEventDataProvider()
-    {
-        return array(
-            'select' => array('the-select', '30'),
-            'radio' => array('the-radio-m', 'm'),
-        );
-    }
-
-    /**
-     * @dataProvider checkboxTestWayDataProvider
-     * @group change-event-detector
-     */
-    public function testCheckChangeEvent($useSetValue)
-    {
-        $this->getSession()->visit($this->pathTo('/element_change_detector.html'));
-        $page = $this->getSession()->getPage();
-
-        $checkbox = $this->findById('the-unchecked-checkbox');
-        $this->assertNull($page->findById('the-unchecked-checkbox-result'));
-
-        if ($useSetValue) {
-            $checkbox->setValue(true);
-        } else {
-            $checkbox->check();
-        }
-
-        $this->assertElementChangeCount('the-unchecked-checkbox');
-    }
-
-    /**
-     * @dataProvider checkboxTestWayDataProvider
-     * @group change-event-detector
-     */
-    public function testUncheckChangeEvent($useSetValue)
-    {
-        $this->getSession()->visit($this->pathTo('/element_change_detector.html'));
-        $page = $this->getSession()->getPage();
-
-        $checkbox = $this->findById('the-checked-checkbox');
-        $this->assertNull($page->findById('the-checked-checkbox-result'));
-
-        if ($useSetValue) {
-            $checkbox->setValue(false);
-        } else {
-            $checkbox->uncheck();
-        }
-
-        $this->assertElementChangeCount('the-checked-checkbox');
-    }
-
-    public function checkboxTestWayDataProvider()
-    {
-        return array(
-            array(true),
-            array(false),
-        );
-    }
-
-    private function assertElementChangeCount($elementId, $message = '')
-    {
-        $counterElement = $this->getSession()->getPage()->findById($elementId.'-result');
-        $actualCount = null === $counterElement ? 0 : $counterElement->getText();
-
-        $this->assertEquals('1', $actualCount, $message);
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Js/EventsTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Js/EventsTest.php
deleted file mode 100644
index e49d837..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Js/EventsTest.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Js;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class EventsTest extends TestCase
-{
-    /**
-     * @group mouse-events
-     */
-    public function testClick()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $clicker = $this->getAssertSession()->elementExists('css', '.elements div#clicker');
-        $this->assertEquals('not clicked', $clicker->getText());
-
-        $clicker->click();
-        $this->assertEquals('single clicked', $clicker->getText());
-    }
-
-    /**
-     * @group mouse-events
-     */
-    public function testDoubleClick()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $clicker = $this->getAssertSession()->elementExists('css', '.elements div#clicker');
-        $this->assertEquals('not clicked', $clicker->getText());
-
-        $clicker->doubleClick();
-        $this->assertEquals('double clicked', $clicker->getText());
-    }
-
-    /**
-     * @group mouse-events
-     */
-    public function testRightClick()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $clicker = $this->getAssertSession()->elementExists('css', '.elements div#clicker');
-        $this->assertEquals('not clicked', $clicker->getText());
-
-        $clicker->rightClick();
-        $this->assertEquals('right clicked', $clicker->getText());
-    }
-
-    /**
-     * @group mouse-events
-     */
-    public function testFocus()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $focusBlurDetector = $this->getAssertSession()->elementExists('css', '.elements input#focus-blur-detector');
-        $this->assertEquals('no action detected', $focusBlurDetector->getValue());
-
-        $focusBlurDetector->focus();
-        $this->assertEquals('focused', $focusBlurDetector->getValue());
-    }
-
-    /**
-     * @group mouse-events
-     * @depends testFocus
-     */
-    public function testBlur()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $focusBlurDetector = $this->getAssertSession()->elementExists('css', '.elements input#focus-blur-detector');
-        $this->assertEquals('no action detected', $focusBlurDetector->getValue());
-
-        $focusBlurDetector->blur();
-        $this->assertEquals('blured', $focusBlurDetector->getValue());
-    }
-
-    /**
-     * @group mouse-events
-     */
-    public function testMouseOver()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $mouseOverDetector = $this->getAssertSession()->elementExists('css', '.elements div#mouseover-detector');
-        $this->assertEquals('no mouse action detected', $mouseOverDetector->getText());
-
-        $mouseOverDetector->mouseOver();
-        $this->assertEquals('mouse overed', $mouseOverDetector->getText());
-    }
-
-    /**
-     * @dataProvider provideKeyboardEventsModifiers
-     */
-    public function testKeyboardEvents($modifier, $eventProperties)
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $webAssert = $this->getAssertSession();
-
-        $input1 = $webAssert->elementExists('css', '.elements input.input.first');
-        $input2 = $webAssert->elementExists('css', '.elements input.input.second');
-        $input3 = $webAssert->elementExists('css', '.elements input.input.third');
-        $event  = $webAssert->elementExists('css', '.elements .text-event');
-
-        $input1->keyDown('u', $modifier);
-        $this->assertEquals('key downed:'.$eventProperties, $event->getText());
-
-        $input2->keyPress('r', $modifier);
-        $this->assertEquals('key pressed:114 / '.$eventProperties, $event->getText());
-
-        $input3->keyUp(78, $modifier);
-        $this->assertEquals('key upped:78 / '.$eventProperties, $event->getText());
-    }
-
-    public function provideKeyboardEventsModifiers()
-    {
-        return array(
-            'none' => array(null, '0 / 0 / 0 / 0'),
-            'alt' => array('alt', '1 / 0 / 0 / 0'),
-             // jQuery considers ctrl as being a metaKey in the normalized event
-            'ctrl' => array('ctrl', '0 / 1 / 0 / 1'),
-            'shift' => array('shift', '0 / 0 / 1 / 0'),
-            'meta' => array('meta', '0 / 0 / 0 / 1'),
-        );
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Js/JavascriptEvaluationTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Js/JavascriptEvaluationTest.php
deleted file mode 100644
index 00235d1..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Js/JavascriptEvaluationTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Js;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class JavascriptEvaluationTest extends TestCase
-{
-    /**
-     * Tests, that `wait` method returns check result after exit.
-     */
-    public function testWaitReturnValue()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-
-        $found = $this->getSession()->wait(5000, '$("#draggable").length == 1');
-        $this->assertTrue($found);
-    }
-
-    public function testWait()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-
-        $waitable = $this->findById('waitable');
-
-        $waitable->click();
-        $this->getSession()->wait(3000, '$("#waitable").has("div").length > 0');
-        $this->assertEquals('arrived', $this->getSession()->getPage()->find('css', '#waitable > div')->getText());
-
-        $waitable->click();
-        $this->getSession()->wait(3000, 'false');
-        $this->assertEquals('timeout', $this->getSession()->getPage()->find('css', '#waitable > div')->getText());
-    }
-
-    /**
-     * @dataProvider provideExecutedScript
-     */
-    public function testExecuteScript($script)
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->getSession()->executeScript($script);
-
-        sleep(1);
-
-        $heading = $this->getAssertSession()->elementExists('css', 'h1');
-        $this->assertEquals('Hello world', $heading->getText());
-    }
-
-    public function provideExecutedScript()
-    {
-        return array(
-            array('document.querySelector("h1").textContent = "Hello world"'),
-            array('document.querySelector("h1").textContent = "Hello world";'),
-            array('function () {document.querySelector("h1").textContent = "Hello world";}()'),
-            array('function () {document.querySelector("h1").textContent = "Hello world";}();'),
-            array('(function () {document.querySelector("h1").textContent = "Hello world";})()'),
-            array('(function () {document.querySelector("h1").textContent = "Hello world";})();'),
-        );
-    }
-
-    /**
-     * @dataProvider provideEvaluatedScript
-     */
-    public function testEvaluateJavascript($script)
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-
-        $this->assertSame(2, $this->getSession()->evaluateScript($script));
-    }
-
-    public function provideEvaluatedScript()
-    {
-        return array(
-            array('1 + 1'),
-            array('1 + 1;'),
-            array('return 1 + 1'),
-            array('return 1 + 1;'),
-            array('function () {return 1+1;}()'),
-            array('(function () {return 1+1;})()'),
-            array('return function () { return 1+1;}()'),
-            array('return (function () {return 1+1;})()'),
-        );
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Js/JavascriptTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Js/JavascriptTest.php
deleted file mode 100644
index 86cfa65..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Js/JavascriptTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Js;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class JavascriptTest extends TestCase
-{
-    public function testAriaRoles()
-    {
-        $this->getSession()->visit($this->pathTo('/aria_roles.html'));
-
-        $this->getSession()->wait(5000, '$("#hidden-element").is(":visible") === false');
-        $this->getSession()->getPage()->pressButton('Toggle');
-        $this->getSession()->wait(5000, '$("#hidden-element").is(":visible") === true');
-
-        $this->getSession()->getPage()->clickLink('Go to Index');
-        $this->assertEquals($this->pathTo('/index.html'), $this->getSession()->getCurrentUrl());
-    }
-
-    public function testDragDrop()
-    {
-        $this->getSession()->visit($this->pathTo('/js_test.html'));
-        $webAssert = $this->getAssertSession();
-
-        $draggable = $webAssert->elementExists('css', '#draggable');
-        $droppable = $webAssert->elementExists('css', '#droppable');
-
-        $draggable->dragTo($droppable);
-        $this->assertEquals('Dropped!', $droppable->find('css', 'p')->getText());
-    }
-
-    // test accentuated char in button
-    public function testIssue225()
-    {
-        $this->getSession()->visit($this->pathTo('/issue225.html'));
-        $this->getSession()->getPage()->pressButton('Créer un compte');
-        $this->getSession()->wait(5000, '$("#panel").text() != ""');
-
-        $this->assertContains('OH AIH!', $this->getSession()->getPage()->getText());
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Js/WindowTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Js/WindowTest.php
deleted file mode 100644
index 70b9ed9..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/Js/WindowTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver\Js;
-
-use Behat\Mink\Tests\Driver\TestCase;
-
-class WindowTest extends TestCase
-{
-    public function testWindow()
-    {
-        $this->getSession()->visit($this->pathTo('/window.html'));
-        $session = $this->getSession();
-        $page    = $session->getPage();
-        $webAssert = $this->getAssertSession();
-
-        $page->clickLink('Popup #1');
-        $session->switchToWindow(null);
-
-        $page->clickLink('Popup #2');
-        $session->switchToWindow(null);
-
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('Main window div text', $el->getText());
-
-        $session->switchToWindow('popup_1');
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('Popup#1 div text', $el->getText());
-
-        $session->switchToWindow('popup_2');
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('Popup#2 div text', $el->getText());
-
-        $session->switchToWindow(null);
-        $el = $webAssert->elementExists('css', '#text');
-        $this->assertSame('Main window div text', $el->getText());
-    }
-
-    public function testGetWindowNames()
-    {
-        $this->getSession()->visit($this->pathTo('/window.html'));
-        $session = $this->getSession();
-        $page    = $session->getPage();
-
-        $windowName = $this->getSession()->getWindowName();
-
-        $this->assertNotNull($windowName);
-
-        $page->clickLink('Popup #1');
-        $page->clickLink('Popup #2');
-
-        $windowNames = $this->getSession()->getWindowNames();
-
-        $this->assertNotNull($windowNames[0]);
-        $this->assertNotNull($windowNames[1]);
-        $this->assertNotNull($windowNames[2]);
-    }
-
-    public function testResizeWindow()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $session = $this->getSession();
-
-        $session->resizeWindow(400, 300);
-        $session->wait(1000, 'false');
-
-        $script = "return Math.abs(window.outerHeight - 300) <= 100 && Math.abs(window.outerWidth - 400) <= 100;";
-
-        $this->assertTrue($session->evaluateScript($script));
-    }
-
-    public function testWindowMaximize()
-    {
-        $this->getSession()->visit($this->pathTo('/index.html'));
-        $session = $this->getSession();
-
-        $session->maximizeWindow();
-        $session->wait(1000, 'false');
-
-        $script = "return Math.abs(screen.availHeight - window.outerHeight) <= 100;";
-
-        $this->assertTrue($session->evaluateScript($script));
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/TestCase.php b/core/vendor/behat/mink/driver-testsuite/tests/TestCase.php
deleted file mode 100644
index ea003ce..0000000
--- a/core/vendor/behat/mink/driver-testsuite/tests/TestCase.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver;
-
-use Behat\Mink\Exception\UnsupportedDriverActionException;
-use Behat\Mink\Mink;
-use Behat\Mink\Session;
-use Behat\Mink\WebAssert;
-
-abstract class TestCase extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Mink session manager.
-     *
-     * @var Mink
-     */
-    private static $mink;
-
-    /**
-     * @var AbstractConfig
-     */
-    private static $config;
-
-    /**
-     * Initializes the test case
-     */
-    public static function setUpBeforeClass()
-    {
-        if (null === self::$mink) {
-            $session = new Session(self::getConfig()->createDriver());
-            self::$mink = new Mink(array('sess' => $session));
-        }
-    }
-
-    /**
-     * @return AbstractConfig
-     *
-     * @throws \UnexpectedValueException if the global driver_config_factory returns an invalid object
-     */
-    private static function getConfig()
-    {
-        if (null === self::$config) {
-            self::$config = call_user_func($GLOBALS['driver_config_factory']);
-
-            if (!self::$config instanceof AbstractConfig) {
-                throw new \UnexpectedValueException('The "driver_config_factory" global variable must return a \Behat\Mink\Tests\Driver\AbstractConfig.');
-            }
-        }
-
-        return self::$config;
-    }
-
-    protected function checkRequirements()
-    {
-        if (null !== $message = self::getConfig()->skipMessage(get_class($this), $this->getName(false))) {
-            $this->markTestSkipped($message);
-        }
-
-        parent::checkRequirements();
-    }
-
-    protected function tearDown()
-    {
-        if (null !== self::$mink) {
-            self::$mink->resetSessions();
-        }
-    }
-
-    protected function onNotSuccessfulTest(\Exception $e)
-    {
-        if ($e instanceof UnsupportedDriverActionException) {
-            $this->markTestSkipped($e->getMessage());
-        }
-
-        parent::onNotSuccessfulTest($e);
-    }
-
-    /**
-     * Returns session.
-     *
-     * @return Session
-     */
-    protected function getSession()
-    {
-        return self::$mink->getSession('sess');
-    }
-
-    /**
-     * Returns assert session.
-     *
-     * @return WebAssert
-     */
-    protected function getAssertSession()
-    {
-        return self::$mink->assertSession('sess');
-    }
-
-    /**
-     * @param string $id
-     *
-     * @return \Behat\Mink\Element\NodeElement
-     */
-    protected function findById($id)
-    {
-        $id = $this->getSession()->getSelectorsHandler()->xpathLiteral($id);
-
-        return $this->getAssertSession()->elementExists('named', array('id', $id));
-    }
-
-    /**
-     * Map remote file path.
-     *
-     * @param string $file File path.
-     *
-     * @return string
-     */
-    protected function mapRemoteFilePath($file)
-    {
-        $realPath = realpath($file);
-
-        if (false !== $realPath) {
-            $file = $realPath;
-        }
-
-        return self::getConfig()->mapRemoteFilePath($file);
-    }
-
-    /**
-     * @param string $path
-     *
-     * @return string
-     */
-    protected function pathTo($path)
-    {
-        return rtrim(self::getConfig()->getWebFixturesUrl(), '/').'/'.ltrim($path, '/');
-    }
-
-    /**
-     * Waits for a condition to be true, considering than it is successful for drivers not supporting wait()
-     *
-     * @param int    $time
-     * @param string $condition A JS condition to evaluate
-     *
-     * @return bool
-     *
-     * @see \Behat\Mink\Session::wait()
-     */
-    protected function safePageWait($time, $condition)
-    {
-        try {
-            return $this->getSession()->wait($time, $condition);
-        } catch (UnsupportedDriverActionException $e) {
-            return true;
-        }
-    }
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/404.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/404.php
deleted file mode 100644
index d16db99..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/404.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php header("HTTP/1.0 404 Not Found") ?>
-Sorry, page not found
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/500.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/500.php
deleted file mode 100644
index c43efcb..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/500.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php header("HTTP/1.0 500 Server Error") ?>
-Sorry, a server error happened
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/advanced_form.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/advanced_form.html
deleted file mode 100644
index a2392c0..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/advanced_form.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>ADvanced Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>ADvanced Form Page</h1>
-
-    <form method="POST" enctype="multipart/form-data" action="advanced_form_post.php">
-        <input name="first_name" value="Firstname" type="text" />
-        <input id="lastn" name="last_name" value="Lastname" type="text" />
-        <label for="email">
-            Your email:
-            <input type="email" id="email" name="email" value="your@email.com" />
-        </label>
-
-        <select name="select_number">
-            <option value="10">ten</option>
-            <option selected="selected" value="20">twenty</option>
-            <option value="30">thirty</option>
-        </select>
-
-        <label>
-            <span><input type="radio" name="sex" value="m" /> m</span>
-            <span><input type="radio" name="sex" value="w" checked="checked" /> w</span>
-        </label>
-
-        <input type="checkbox" name="mail_list" checked="checked" value="on"/>
-        <input type="checkbox" name="agreement" value="yes"/>
-
-        <textarea name="notes">original notes</textarea>
-
-        <input type="file" name="about" />
-
-        <input type="submit" name="submit" value="Register" />
-        <input type="submit" name="submit" value="Login" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/advanced_form_post.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/advanced_form_post.php
deleted file mode 100644
index 755806d..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/advanced_form_post.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Advanced form save</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
-</head>
-<body>
-<?php
-error_reporting(0);
-
-if (isset($_POST['select_multiple_numbers']) && false !== strpos($_POST['select_multiple_numbers'][0], ',')) {
-    $_POST['select_multiple_numbers'] = explode(',', $_POST['select_multiple_numbers'][0]);
-}
-
-$_POST['agreement'] = isset($_POST['agreement']) ? 'on' : 'off';
-ksort($_POST);
-echo str_replace('>', '', var_export($_POST, true)) . "\n";
-if (isset($_FILES['about']) && file_exists($_FILES['about']['tmp_name'])) {
-    echo $_FILES['about']['name'] . "\n";
-    echo file_get_contents($_FILES['about']['tmp_name']);
-} else {
-    echo "no file";
-}
-?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/aria_roles.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/aria_roles.html
deleted file mode 100644
index 7074e85..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/aria_roles.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>ARIA roles test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-	This page tests selected ARIA roles<br />
-	(see <a href="http://www.w3.org/TR/wai-aria/">http://www.w3.org/TR/wai-aria/</a>)
-
-	<div id="hidden-element-toggle-button" role="button">Toggle</div>
-	<div id="hidden-element" style="display:none;">This content's visibility is changed by clicking the Toggle Button.</div>
-
-	<!-- This link is created programmatically -->
-	<div id="link-element"></div>
-
-    <script language="javascript" type="text/javascript" src="js/jquery-1.6.2-min.js"></script>
-	<script language="javascript" type="text/javascript">
-		$(document).ready(function() {
-			$('#hidden-element-toggle-button').click(function() {
-				$('#hidden-element').toggle();
-			});
-
-			$('#link-element').attr('role', 'link').text('Go to Index').click(function() {
-        window.location.href = 'index.html';
-			});
-		});
-	</script>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_auth.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_auth.php
deleted file mode 100644
index 9620a0e..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_auth.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-$username = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : false;
-$password = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : false;
-
-if ($username == 'mink-user' && $password == 'mink-password') {
-    echo 'is authenticated';
-} else {
-    header('WWW-Authenticate: Basic realm="Mink Testing Area"');
-    header('HTTP/1.0 401 Unauthorized');
-
-    echo 'is not authenticated';
-}
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_form.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_form.html
deleted file mode 100644
index 2d330cf..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_form.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Basic Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Basic Form Page</h1>
-
-    <form method="POST" action="basic_form_post.php">
-        <input name="first_name" value="Firstname" type="text" />
-        <input id="lastn" name="last_name" value="Lastname" type="text" />
-
-        <input type="reset" id="Reset" />
-
-        <input type="submit" id="Save" />
-        <input type="image" id="input-type-image"/>
-        <button>button-without-type</button>
-        <button type="submit">button-type-submit</button>
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_form_post.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_form_post.php
deleted file mode 100644
index 8a5e340..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_form_post.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Basic Form Saving</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Anket for <?php echo $_POST['first_name'] ?></h1>
-
-    <span id="first">Firstname: <?php echo $_POST['first_name'] ?></span>
-    <span id="last">Lastname: <?php echo $_POST['last_name'] ?></span>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_get_form.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_get_form.php
deleted file mode 100644
index a0b3516..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/basic_get_form.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Basic Get Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Basic Get Form Page</h1>
-
-    <div id="serach">
-        <?php echo isset($_GET['q']) && $_GET['q'] ? $_GET['q'] : 'No search query' ?>
-    </div>
-
-    <form>
-        <input name="q" value="" type="text" />
-
-        <input type="submit" value="Find" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page1.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page1.php
deleted file mode 100644
index 7f128ca..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page1.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-if (!isset($cookieAtRootPath)) {
-    $cookieAtRootPath = true;
-}
-
-if (!isset($cookieValue)) {
-    $cookieValue = 'srv_var_is_set';
-}
-
-setcookie('srvr_cookie', $cookieValue, null, $cookieAtRootPath ? '/' : null);
-?>
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Basic Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    Basic Page With Cookie Set from Server Side
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page2.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page2.php
deleted file mode 100644
index 22bcd1b..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page2.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Basic Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    Previous cookie: <?php echo isset($_COOKIE['srvr_cookie']) ? $_COOKIE['srvr_cookie'] : 'NO'; ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page3.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page3.php
deleted file mode 100644
index caa28bc..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/cookie_page3.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-$hasCookie = isset($_COOKIE['foo']);
-setcookie('foo', 'bar', 0, '/', null, false, true);
-
-?>
-<!DOCTYPE html>
-<html>
-<head>
-    <title>HttpOnly Cookie Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-	<div id="cookie-status">Has Cookie: <?php echo json_encode($hasCookie) ?></div>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/css_mouse_events.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/css_mouse_events.html
deleted file mode 100644
index 750ca54..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/css_mouse_events.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <title>CSS Mouse Events Testing</title>
-        <style type="text/css">
-            .squares div {
-                width: 100px;
-                height: 100px;
-                border: 1px solid black;
-                margin-right: 4px;
-                float: left;
-            }
-
-            .squares div:hover {
-                height: 200px;
-                background-color: red;
-            }
-        </style>
-
-        <script language="javascript" type="text/javascript" src="js/jquery-1.6.2-min.js"></script>
-    </head>
-
-    <body>
-        <div class="squares">
-            <div id="reset-square">reset</div>
-            <div id="action-square">mouse action</div>
-        </div>
-        <script>
-            $('#action-square').bind('contextmenu', function (e) {
-                // Prevent opening the context menu on right click as the browser might consider the
-                // mouse is in the context menu rather than hovering the element
-                e.preventDefault();
-            });
-        </script>
-    </body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/element_change_detector.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/element_change_detector.html
deleted file mode 100644
index af3032a..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/element_change_detector.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>ADvanced Form</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script src="js/jquery-1.6.2-min.js"></script>
-</head>
-<body>
-    <h1>ADvanced Form Page</h1>
-
-    <form method="POST" enctype="multipart/form-data" action="advanced_form_post.php">
-        <input id="the-input-default" value="" />
-        <input type="text" id="the-input-text" value="" />
-        <input type="email" id="the-email" value="" />
-
-        <select id="the-select">
-            <option value="10">ten</option>
-            <option value="20" selected="selected">twenty</option>
-            <option value="30">thirty</option>
-        </select>
-
-        <label>
-            <span><input type="radio" name="sex" id="the-radio-m" value="m" /> m</span>
-            <span><input type="radio" name="sex" id="the-radio-w" value="w" checked="checked" /> w</span>
-        </label>
-
-        <input type="checkbox" id="the-checked-checkbox" value="cb-val" checked/>
-        <input type="checkbox" id="the-unchecked-checkbox" value="cb-val"/>
-
-        <textarea id="the-textarea"></textarea>
-
-        <input type="file" id="the-file" />
-    </form>
-
-    <ul id="results" style="border: 1px solid red;">
-        <li>for easy element location</li>
-    </ul>
-
-    <script type="text/javascript">
-        $(document).ready(function () {
-            var $change_registry = {},
-                $results = $('#results');
-
-            $(':input').change(function ($e) {
-                var $result_id = this.id + '-result';
-
-                if (!$change_registry[this.id]) {
-                    $change_registry[this.id] = 1;
-                    $results.append('<li id="' + $result_id + '"></li>');
-                }
-                else {
-                    $change_registry[this.id]++;
-                }
-
-                $('#' + $result_id).text($change_registry[this.id]);
-            });
-
-            $results.click(function () {
-                $results.empty();
-                $change_registry = {};
-            });
-        });
-    </script>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/empty_textarea.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/empty_textarea.html
deleted file mode 100644
index f0779ee..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/empty_textarea.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <title>Empty textarea submission</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-</head>
-<body>
-    <h1>Empty textarea submission</h1>
-    <form method="POST" action="advanced_form_post.php">
-        <textarea name="textarea"></textarea>
-        <input type="submit" name="submit" value="Save" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/form_without_button.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/form_without_button.html
deleted file mode 100644
index 8063026..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/form_without_button.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>Form submission without button test</title>
-</head>
-<body>
-    <form action="basic_form_post.php" method="POST">
-        <input name="first_name" type="text" value="not set">
-        <input name="last_name" type="text" value="not set">
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/headers.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/headers.php
deleted file mode 100644
index 25d9b90..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/headers.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Headers page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <?php print_r($_SERVER); ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_form.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_form.html
deleted file mode 100644
index 9070353..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_form.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>HTML5 form attribute test</title>
-</head>
-<body>
-    <form action="advanced_form_post.php" method="POST" id="test-form">
-        <input name="first_name" type="text" value="not set">
-        <input name="other_field" type="text" value="not submitted" form="another">
-        <input type="submit" value="Submit separate form" form="another">
-        <input type="submit" value="Submit in form">
-    </form>
-    <input name="last_name" type="text" form="test-form" value="not set">
-    <button type="submit" form="test-form" name="submit_button" value="test">Submit outside form</button>
-    <form id="another" method="post" action="advanced_form_post.php"></form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_radio.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_radio.html
deleted file mode 100644
index fd54c2d..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_radio.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>HTML5 form attribute test</title>
-</head>
-<body>
-    <form action="advanced_form_post.php" method="POST" id="test-form">
-        <input name="sex" type="radio" value="m" id="sex_m">
-        <input name="sex" type="radio" value="invalid" form="another" id="sex_invalid" checked="checked">
-        <input type="submit" value="Submit in form">
-    </form>
-    <input name="sex" type="radio" form="test-form" value="f" id="sex_f" checked="checked">
-    <form id="another" method="post" action="advanced_form_post.php"></form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_types.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_types.html
deleted file mode 100644
index bd46cfa..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html5_types.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>HTML5 form attribute test</title>
-</head>
-<body>
-    <form action="advanced_form_post.php" method="POST">
-        <input name="url" type="url">
-        <input name="email" type="email">
-        <input name="number" type="number">
-        <input name="search" type="search">
-        <input name="color" type="color">
-        <input name="date" type="date">
-        <input type="submit" name="submit_button" value="Submit">
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html_decoding.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/html_decoding.html
deleted file mode 100644
index 341f226..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/html_decoding.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>HTML Decoding Test</title>
-</head>
-<body>
-    <div>
-        <span custom-attr="&amp;">some text</span>
-
-        <form method="post" action="index.html">
-            <input value="&amp;"/>
-
-            <input type="submit" value="Send"/>
-        </form>
-    </div>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/iframe.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/iframe.html
deleted file mode 100644
index c54797f..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/iframe.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-
-<iframe src="iframe_inner.html" name="subframe"></iframe>
-
-<div id="text">
-    Main window div text
-</div>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/iframe_inner.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/iframe_inner.html
deleted file mode 100644
index 512f058..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/iframe_inner.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-
-    <div id="text">
-        iFrame div text
-    </div>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/index.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/index.html
deleted file mode 100644
index 6bb379c..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/index.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Index page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Extremely useless page</h1>
-    <div id="core">
-        <strong>Lorem</strong> ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim <strong>veniam</strong>, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla <strong class="super-duper">pariatur</strong>. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-        <div id="some-element" data-href="http://mink.behat.org">
-            some <div>very
-            </div>
-<em>interesting</em>      text
-        </div>
-
-        <div class="attribute-testing">
-            <input type="text" id="attr-elem[with-value]" with-value="some-value"/>
-            <input type="text" id="attr-elem[without-value]" without-value/>
-            <input type="text" id="attr-elem[with-empty-value]" with-empty-value=""/>
-            <input type="text" id="attr-elem[with-missing]"/>
-        </div>
-
-        <div class="travers">
-            <div class="sub">el1</div>
-            <div class="sub">el2</div>
-            <div class="sub">
-                <a href="some_url">some <strong>deep</strong> url</a>
-            </div>
-        </div>
-
-        <div class="sub">el4</div>
-
-    </div>
-
-    <footer>
-        <form id="search-form">
-            <input type="text" placeholder="Search site..." />
-        </form>
-        <form id="profile">
-            <div data-custom="something">
-                <label>
-                    <input type="text" id="user-name" name="username" />
-                </label>
-            </div>
-            <input type="submit" />
-        </form>
-    </footer>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue130.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue130.php
deleted file mode 100644
index 201d982..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue130.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-    <?php
-    if ('1' === $_GET['p']) {
-        echo '<a href="issue130.php?p=2">Go to 2</a>';
-    } else {
-        echo '<strong>'.$_SERVER['HTTP_REFERER'].'</strong>';
-    }
-    ?>
-</body>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue131.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue131.html
deleted file mode 100644
index fa3427a..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue131.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <title>Issue 131</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-</head>
-<body>
-    <h1>There is a non breaking&#160;space</h1>
-    <pre id="foobar">Some accentués characters</pre>
-    <form>
-        <select name="foobar">
-          <option value="1">Gimme some accentués characters</option>
-        </select>
-        <input type="submit" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue140.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue140.php
deleted file mode 100644
index 04a4caf..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue140.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-if (!empty($_POST)) {
-    setcookie("tc", $_POST['cookie_value'], null, '/');
-} elseif (isset($_GET["show_value"])) {
-    echo $_COOKIE["tc"];
-    die();
-}
-?>
-<!DOCTYPE html>
-<html>
-<body>
-    <form method="post">
-        <input name="cookie_value">
-        <input type="submit" value="Set cookie">
-    </form>
-</body>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue178.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue178.html
deleted file mode 100644
index 3efc743..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue178.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>Index page</title>
-</head>
-<body>
-
-<form action="#">
-	<div>
-		<input type="text" name="source" id="source"
-			onkeyup="document.getElementById('target').innerHTML = this.value" value="bar">
-	</div>
-</form>
-
-<div id="target"></div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue193.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue193.html
deleted file mode 100644
index e722a43..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue193.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Index page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-
-<form action="#">
-    <select id="options-without-values" name="without">
-        <option>none selected</option>
-        <option id="one">One</option>
-        <option id="two">Two</option>
-        <option>Three</option>
-    </select>
-
-    <select id="options-with-values" name="with">
-        <option value="none">none selected</option>
-        <option value="one">One</option>
-        <option value="two">Two</option>
-        <option value="three">Three</option>
-    </select>
-</form>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue211.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue211.html
deleted file mode 100644
index bb977ec..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue211.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Index page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-
-<form action="#">
-    <p>
-        <label for="phone">Téléphone</label>
-        <input type="text" name="phone" id="phone" />
-    </p>
-    <p>
-        <label for="daphone">DaPhone</label>
-        <input type="text" name="daphone" id="daphone" />
-    </p>
-
-    <input type="submit" value="Send" />
-</form>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue212.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue212.html
deleted file mode 100644
index 24ae62f..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue212.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-  <form action="/" method="post" id="user-login-form">
-    <input type="submit" name="toto" id="jaguar-button" value="jaguar"/>
-    <input type="submit" name="toto" id="poney-button" value="poney"/>
-  </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue215.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue215.html
deleted file mode 100644
index adff3fb..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue215.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>Index page</title>
-</head>
-<body>
-
-<form action="#">
-<textarea rows="10" cols="10" id="textarea">
-foo
-bar
-</textarea>
-</form>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue225.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue225.html
deleted file mode 100644
index 2178bba..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue225.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
-<head>
-    <title>Index page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script src="js/jquery-1.6.2-min.js"></script>
-</head>
-<body>
-
-<button id="btn">Créer un compte</button>
-
-<div id="panel"></div>
-
-<script type="text/javascript">
-    $('#btn').click(function (event) {
-        $('#panel').text('OH ' + 'AIH!');
-    });
-</script>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue255.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue255.html
deleted file mode 100644
index d56a427..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/issue255.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <title>Issue 255</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-    <script src="js/jquery-1.6.2-min.js"></script>
-</head>
-<body>
-    <form>
-        <label for="foo_select">Foo</label>
-        <select name="foo_select" id="foo_select">
-            <option value="1" selected="selected">Option 1</option>
-            <option value="2">Option 2</option>
-            <option value="3">Option 3</option>
-        </select>
-        <input type="checkbox" id="foo_check" />
-        <input type="submit" />
-        <p id="output_foo_select"></p>
-        <p id="output_foo_check"></p>
-    </form>
-
-    <script type="text/javascript">
-        (function() {
-            $('#foo_select').change(function () {
-                $('#output_foo_select').text("onChangeSelect");
-            });
-            $('#foo_check').change(function () {
-                $('#output_foo_check').text("onChangeCheck");
-            });
-        })();
-    </script>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/js/jquery-1.6.2-min.js b/core/vendor/behat/mink/driver-testsuite/web-fixtures/js/jquery-1.6.2-min.js
deleted file mode 100644
index 8cdc80e..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/js/jquery-1.6.2-min.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.6.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Jun 30 14:16:56 2011 -0400
- */
-(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bC.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bR,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bX(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bX(a,c,d,e,"*",g));return l}function bW(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bN),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bA(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bv:bw;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bg(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(x,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(H)return H.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:|^on/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.
-shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,N(a.origType,a.selector),f.extend({},a,{handler:M,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,N(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?E:D):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=E;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=E;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=E,this.stopPropagation()},isDefaultPrevented:D,isPropagationStopped:D,isImmediatePropagationStopped:D};var F=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},G=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?G:F,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?G:F)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&K("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&K("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var H,I=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var L={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||D,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=x.exec(h),k="",j&&(k=j[0],h=h.replace(x,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,L[h]?(a.push(L[h]+k),h=h+k):h=(L[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+N(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+N(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=T.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/<tbody/i,ba=/<|&#?\w+;/,bb=/<(?:script|object|embed|option|style)/i,bc=/checked\s*(?:[^=]|=\s*.checked.)/i,bd=/\/(java|ecma)script/i,be=/^\s*<!(?:\[CDATA\[|\-\-)/,bf={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bc.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bg(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bm)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bb.test(a[0])&&(f.support.checkClone||!bc.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j
-)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1></$2>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bl(k[i]);else bl(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bd.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bn=/alpha\([^)]*\)/i,bo=/opacity=([^)]*)/,bp=/([A-Z]|^ms)/g,bq=/^-?\d+(?:px)?$/i,br=/^-?\d/,bs=/^[+\-]=/,bt=/[^+\-\.\de]+/g,bu={position:"absolute",visibility:"hidden",display:"block"},bv=["Left","Right"],bw=["Top","Bottom"],bx,by,bz;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bx(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bs.test(d)&&(d=+d.replace(bt,"")+parseFloat(f.css(a,c)),h="number"),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bx)return bx(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bA(a,b,d);f.swap(a,bu,function(){e=bA(a,b,d)});return e}},set:function(a,b){if(!bq.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cs(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cr("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cr("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cs(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cr("show",1),slideUp:cr("hide",1),slideToggle:cr("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cn||cp(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!cl&&(co?(cl=!0,g=function(){cl&&(co(g),e.tick())},co(g)):cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||cp(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var ct=/^t(?:able|d|h)$/i,cu=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cv(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!ct.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/js/jquery-ui-1.8.14.custom.min.js b/core/vendor/behat/mink/driver-testsuite/web-fixtures/js/jquery-ui-1.8.14.custom.min.js
deleted file mode 100644
index 1764e11..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/js/jquery-ui-1.8.14.custom.min.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/*!
- * jQuery UI 1.8.14
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.14",
-keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();
-b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,
-"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",
-function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,
-outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b);
-return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=
-0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.14
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
-a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
-e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
-this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
-widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
-enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.14
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(b){var d=false;b(document).mousedown(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
-this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==
-false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
-!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
-false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Draggable 1.8.14
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper=
-this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});
-this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true},
-_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=
-false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,
-10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||
-!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&
-a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),
-10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,
-(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!=
-"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),
-10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+
-this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&
-!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.left<g[0])e=g[0]+this.offset.click.left;
-if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/
-b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[2])?e:!(e-this.offset.click.left<g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<
-526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,
-c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.14"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert});
-h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=
-false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true);
-this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;
-c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&
-this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=
-a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!=
-"x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<
-c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
-width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&&
-o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t=
-p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&&
-(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
-10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 1.8.14
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.14"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},dragStart:function(a,b){a.element.parentsUntil("body").bind("scroll.droppable",function(){a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)})},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=
-!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})},dragStop:function(a,b){a.element.parentsUntil("body").unbind("scroll.droppable");
-a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)}}})(jQuery);
-;
\ No newline at end of file
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/js_test.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/js_test.html
deleted file mode 100644
index e965a40..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/js_test.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>JS elements test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-
-    <style>
-        #draggable {
-            width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0;
-            background:#ccc;
-            opacity:0.5;
-        }
-        #droppable {
-            width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px;
-            background:#eee;
-        }
-        #waitable {
-            width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px;
-            background:#eee;
-        }
-    </style>
-</head>
-<body>
-    <div class="elements">
-        <div id="clicker">not clicked</div>
-        <div id="mouseover-detector">no mouse action detected</div>
-        <div id="invisible" style="display: none">invisible man</div>
-        <input id="focus-blur-detector" type="text" value="no action detected"/>
-        <input class="input first" type="text" value="" />
-        <input class="input second" type="text" value="" />
-        <input class="input third" type="text" value="" />
-        <div class="text-event"></div>
-    </div>
-
-    <div id="draggable" class="ui-widget-content"></div>
-
-    <div id="droppable" class="ui-widget-header">
-        <p>Drop here</p>
-    </div>
-
-    <div id="waitable"></div>
-
-    <script src="js/jquery-1.6.2-min.js"></script>
-    <script src="js/jquery-ui-1.8.14.custom.min.js"></script>
-	<script>
-		$(document).ready(function() {
-            $('#clicker').click(function() {
-                $(this).text('single clicked');
-            });
-
-            $('#clicker').dblclick(function() {
-                $(this).text('double clicked');
-            });
-
-            $('#clicker').bind('contextmenu', function() {
-                $(this).text('right clicked');
-            });
-
-            $('#focus-blur-detector').focus(function() {
-                $(this).val('focused');
-            });
-
-            $('#focus-blur-detector').blur(function() {
-                $(this).val('blured');
-            });
-
-            $('#mouseover-detector').mouseover(function() {
-                $(this).text('mouse overed');
-            });
-
-            $('.elements input.input.first').keydown(function(ev) {
-                $('.text-event').text('key downed:' + ev.altKey * 1 + ' / ' + ev.ctrlKey * 1 + ' / ' + ev.shiftKey * 1 + ' / ' + ev.metaKey * 1);
-            });
-
-            $('.elements input.input.second').keypress(function(ev) {
-                $('.text-event').text('key pressed:' + ev.which + ' / ' + ev.altKey * 1 + ' / ' + ev.ctrlKey * 1 + ' / ' + ev.shiftKey * 1 + ' / ' + ev.metaKey * 1);
-            });
-
-            $('.elements input.input.third').keyup(function(ev) {
-                $('.text-event').text('key upped:' + ev.which + ' / ' + ev.altKey * 1 + ' / ' + ev.ctrlKey * 1 + ' / ' + ev.shiftKey * 1 + ' / ' + ev.metaKey * 1);
-            });
-
-            $( "#draggable" ).draggable();
-            $( "#droppable" ).droppable({
-                drop: function( event, ui ) {
-                    $( this ).find( "p" ).html( "Dropped!" );
-                }
-            });
-
-            var t1, t2;
-
-            $('#waitable').click(function() {
-                var el = $(this);
-
-                el.html('');
-                clearTimeout(t1);
-                clearTimeout(t2);
-
-                t1 = setTimeout(function() {
-                    el.html('<div>arrived</div>');
-                }, 1000);
-
-                t2 = setTimeout(function() {
-                    el.html('<div>timeout</div>');
-                }, 2000);
-            });
-		});
-	</script>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/json.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/json.php
deleted file mode 100644
index 173d358..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/json.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-echo json_encode(array(
-    'key1' => 'val1',
-    'key2' => 234,
-    'key3' => array(1, 2, 3)
-));
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/links.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/links.html
deleted file mode 100644
index ec626bf..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/links.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Links page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <a href="redirector.php">Redirect me to</a>
-    <a href="randomizer.php">Random number page</a>
-    <a href="links.html?quoted">Link with a '</a>
-    <a href="basic_form.html">
-        <img src="basic_form" alt="basic form image"/>
-    </a>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/multi_input_form.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/multi_input_form.html
deleted file mode 100644
index 600a500..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/multi_input_form.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Multi input Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Multi input Test</h1>
-
-    <form method="POST" action="advanced_form_post.php">
-        <label>
-            First
-            <input type="text" name="tags[]" value="tag1">
-        </label>
-        <label>
-            Second
-            <input type="text" name="tags[]" value="tag2">
-        </label>
-        <label>
-            Third
-            <input type="text" name="tags[]" value="tag1">
-        </label>
-
-        <input type="submit" name="submit" value="Register" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/multicheckbox_form.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/multicheckbox_form.html
deleted file mode 100644
index a2ae375..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/multicheckbox_form.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Multicheckbox Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Multicheckbox Test</h1>
-
-    <form method="POST" action="advanced_form_post.php">
-        <input type="checkbox" name="mail_types[]" checked="checked" value="update"/>
-        <input type="checkbox" name="mail_types[]" value="spam"/>
-
-        <input type="submit" name="submit" value="Register" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/multiselect_form.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/multiselect_form.html
deleted file mode 100644
index 0d28986..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/multiselect_form.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Multiselect Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <h1>Multiselect Test</h1>
-
-    <form method="POST" action="advanced_form_post.php">
-        <select name="select_number">
-            <option value="10">ten</option>
-            <option selected="selected" value="20">twenty</option>
-            <option value="30">thirty</option>
-        </select>
-
-        <select name="select_multiple_numbers[]" multiple="multiple">
-            <option value="1">one</option>
-            <option value="2">two</option>
-            <option value="3">three</option>
-        </select>
-
-        <select name="select_multiple_values[]" multiple="multiple">
-            <option value="1">one</option>
-            <option value="2" selected="selected">two</option>
-            <option value="3" selected="selected">three</option>
-        </select>
-
-        <input type="submit" name="submit" value="Register" />
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/popup1.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/popup1.html
deleted file mode 100644
index b8e3fe2..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/popup1.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>popup_1</title>
-</head>
-<body>
-
-    <div id="text">
-        Popup#1 div text
-    </div>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/popup2.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/popup2.html
deleted file mode 100644
index dae1932..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/popup2.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>popup_2</title>
-</head>
-<body>
-
-    <div id="text">
-        Popup#2 div text
-    </div>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/print_cookies.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/print_cookies.php
deleted file mode 100644
index eef496e..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/print_cookies.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Cookies page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <?php echo str_replace('>', '', var_export($_COOKIE, true)); ?>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/radio.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/radio.html
deleted file mode 100644
index 69a916a..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/radio.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>Radio group</title>
-</head>
-<body>
-    <form id="form1">
-        <input name="group1" type="radio" value="set" id="first" checked="checked">
-        <input name="group1" type="radio" value="updated" id="second">
-
-        <input name="reused" type="radio" value="test" id="reused_form1">
-        <input name="reused" type="radio" value="test2" id="reused2_form1" checked="checked">
-    </form>
-
-    <form id="form2">
-        <input name="reused" type="radio" value="test3" id="reused_form2" checked="checked">
-        <input name="reused" type="radio" value="test4" id="reused2_form2">
-    </form>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/randomizer.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/randomizer.php
deleted file mode 100644
index 07a73ec..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/randomizer.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Index page</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-
-    <h1 id="number"><?php echo rand() ?></h1>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/redirect_destination.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/redirect_destination.html
deleted file mode 100644
index 3de7481..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/redirect_destination.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Redirect destination</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    You were redirected!
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/redirector.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/redirector.php
deleted file mode 100644
index 44ac8f3..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/redirector.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-header('location: redirect_destination.html');
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/response_headers.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/response_headers.php
deleted file mode 100644
index a9166b7..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/response_headers.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-header('X-Mink-Test: response-headers');
-
-?>
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <title>Response headers</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-</head>
-<body>
-    <h1>Response headers</h1>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/session_test.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/session_test.php
deleted file mode 100644
index df1af6f..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/session_test.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-session_name('_SESS');
-session_start();
-
-if (isset($_GET['login'])) {
-    session_regenerate_id();
-}
-?>
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Session Test</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
-</head>
-<body>
-    <div id="session-id"><?php echo session_id() ?></div>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/some_file.txt b/core/vendor/behat/mink/driver-testsuite/web-fixtures/some_file.txt
deleted file mode 100644
index d515a02..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/some_file.txt
+++ /dev/null
@@ -1 +0,0 @@
-1 uploaded file
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/sub-folder/cookie_page1.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/sub-folder/cookie_page1.php
deleted file mode 100644
index 750249b..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/sub-folder/cookie_page1.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-$cookieAtRootPath = false;
-$cookieValue = 'srv_var_is_set_sub_folder';
-require_once __DIR__ . '/../' . basename(__FILE__);
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/sub-folder/cookie_page2.php b/core/vendor/behat/mink/driver-testsuite/web-fixtures/sub-folder/cookie_page2.php
deleted file mode 100644
index 9747fe8..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/sub-folder/cookie_page2.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-require_once __DIR__ . '/../' . basename(__FILE__);
diff --git a/core/vendor/behat/mink/driver-testsuite/web-fixtures/window.html b/core/vendor/behat/mink/driver-testsuite/web-fixtures/window.html
deleted file mode 100644
index d0a4594..0000000
--- a/core/vendor/behat/mink/driver-testsuite/web-fixtures/window.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-
-<script>
-function newPopup(url, title) {
-    popupWindow = window.open(
-        url, title,'height=100,width=200,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'
-    );
-}
-</script>
-
-<a href="popup1.html" onclick="newPopup(this.href, 'popup_1'); return false;">
-    Popup #1
-</a>
-
-<a href="popup2.html" onclick="newPopup(this.href, 'popup_2'); return false;">
-    Popup #2
-</a>
-
-<div id="text">
-    Main window div text
-</div>
-
-</body>
-</html>
diff --git a/core/vendor/behat/mink/phpdoc.ini.dist b/core/vendor/behat/mink/phpdoc.ini.dist
deleted file mode 100644
index 3fef75d..0000000
--- a/core/vendor/behat/mink/phpdoc.ini.dist
+++ /dev/null
@@ -1,125 +0,0 @@
-; Default configuration file for PHPDoctor
-
-; This config file will cause PHPDoctor to generate API documentation of
-; itself.
-
-
-; PHPDoctor settings
-; -----------------------------------------------------------------------------
-
-; Names of files to parse. This can be a single filename, or a comma separated
-; list of filenames. Wildcards are allowed.
-
-files = "*.php"
-
-; Names of files or directories to ignore. This can be a single filename, or a
-; comma separated list of filenames. Wildcards are NOT allowed.
-
-ignore = "CVS, .svn, .git, _compiled"
-
-; The directory to look for files in, if not used the PHPDoctor will look in
-; the current directory (the directory it is run from).
-
-source_path = "./src"
-
-; If you do not want PHPDoctor to look in each sub directory for files
-; uncomment this line.
-
-;subdirs = off
-
-; Set how loud PHPDoctor is as it runs. Quiet mode suppresses all output other
-; than warnings and errors. Verbose mode outputs additional messages during
-; execution.
-
-;quiet = on
-;verbose = on
-
-; Select the doclet to use for generating output.
-
-doclet = standard
-;doclet = debug
-
-; The directory to find the doclet in. Doclets are expected to be in a
-; directory named after themselves at the location given.
-
-;doclet_path = ./doclets
-
-; The directory to find taglets in. Taglets allow you to make PHPDoctor handle
-; new tags and to alter the behavour of existing tags and their output.
-
-;taglet_path = ./taglets
-
-; If the code you are parsing does not use package tags or not all elements
-; have package tags, use this setting to place unbound elements into a
-; particular package.
-
-default_package = "Behat\Mink"
-
-; Specifies the name of a HTML file containing text for the overview
-; documentation to be placed on the overview page. The path is relative to
-; "source_path" unless an absolute path is given.
-
-overview = readme.html
-
-; Package comments will be looked for in a file named package.html in the same
-; directory as the first source file parsed in that package or in the directory
-; given below. If package comments are placed in the directory given below then
-; they should be named "<packageName>.html".
-
-package_comment_dir = ./
-
-; Parse out global variables and/or global constants?
-
-;globals = off
-;constants = off
-
-; Generate documentation for all class members
-
-;private = on
-
-; Generate documentation for public and protected class members
-
-;protected = on
-
-; Generate documentation for only public class members
-
-public = on
-
-; Use the PEAR compatible handling of the docblock first sentence
-
-;pear_compat = on
-
-; Standard doclet settings
-; -----------------------------------------------------------------------------
-
-; The directory to place generated documentation in. If the given path is
-; relative to it will be relative to "source_path".
-
-d = "api"
-
-; Specifies the title to be placed in the HTML <title> tag.
-
-windowtitle = "Behat\Mink"
-
-; Specifies the title to be placed near the top of the overview summary file.
-
-doctitle = "Behat\Mink: browser emulators abstraction library for PHP"
-
-; Specifies the header text to be placed at the top of each output file. The
-; header will be placed to the right of the upper navigation bar. 
-
-header = "Behat\Mink"
-
-; Specifies the footer text to be placed at the bottom of each output file. The
-; footer will be placed to the right of the lower navigation bar.
-
-footer = "Behat\Mink"
-
-; Specifies the text to be placed at the bottom of each output file. The text
-; will be placed at the bottom of the page, below the lower navigation bar.
-
-;bottom = "This document was generated by <a href="http://phpdoctor.sourceforge.net/">PHPDoctor: The PHP Documentation Creator</a>"
-
-; Create a class tree?
-
-tree = on
diff --git a/core/vendor/behat/mink/phpunit.xml.dist b/core/vendor/behat/mink/phpunit.xml.dist
deleted file mode 100644
index 6695433..0000000
--- a/core/vendor/behat/mink/phpunit.xml.dist
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit colors="true" bootstrap="vendor/autoload.php">
-    <testsuites>
-        <testsuite name="Behat Mink test suite">
-            <directory>tests</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/behat/mink/src/Driver/CoreDriver.php b/core/vendor/behat/mink/src/Driver/CoreDriver.php
deleted file mode 100644
index 248f291..0000000
--- a/core/vendor/behat/mink/src/Driver/CoreDriver.php
+++ /dev/null
@@ -1,447 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Driver;
-
-use Behat\Mink\Exception\UnsupportedDriverActionException;
-use Behat\Mink\Session;
-
-/**
- * Core driver.
- * All other drivers should extend this class for future compatibility.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-abstract class CoreDriver implements DriverInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function setSession(Session $session)
-    {
-        throw new UnsupportedDriverActionException('Setting the session is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        throw new UnsupportedDriverActionException('Starting the driver is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isStarted()
-    {
-        throw new UnsupportedDriverActionException('Checking the driver state is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function stop()
-    {
-        throw new UnsupportedDriverActionException('Stopping the driver is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function reset()
-    {
-        throw new UnsupportedDriverActionException('Resetting the driver is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function visit($url)
-    {
-        throw new UnsupportedDriverActionException('Visiting an url is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCurrentUrl()
-    {
-        throw new UnsupportedDriverActionException('Getting the current url is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        throw new UnsupportedDriverActionException('Getting the page content is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($xpath)
-    {
-        throw new UnsupportedDriverActionException('Finding elements is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTagName($xpath)
-    {
-        throw new UnsupportedDriverActionException('Getting the tag name is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getText($xpath)
-    {
-        throw new UnsupportedDriverActionException('Getting the element text is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getHtml($xpath)
-    {
-        throw new UnsupportedDriverActionException('Getting the element inner HTML is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getOuterHtml($xpath)
-    {
-        throw new UnsupportedDriverActionException('Getting the element outer HTML is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttribute($xpath, $name)
-    {
-        throw new UnsupportedDriverActionException('Getting the element attribute is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValue($xpath)
-    {
-        throw new UnsupportedDriverActionException('Getting the field value is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setValue($xpath, $value)
-    {
-        throw new UnsupportedDriverActionException('Setting the field value is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function check($xpath)
-    {
-        throw new UnsupportedDriverActionException('Checking a checkbox is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function uncheck($xpath)
-    {
-        throw new UnsupportedDriverActionException('Unchecking a checkbox is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isChecked($xpath)
-    {
-        throw new UnsupportedDriverActionException('Getting the state of a checkbox is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function selectOption($xpath, $value, $multiple = false)
-    {
-        throw new UnsupportedDriverActionException('Selecting an option is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function click($xpath)
-    {
-        throw new UnsupportedDriverActionException('Clicking on an element is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function attachFile($xpath, $path)
-    {
-        throw new UnsupportedDriverActionException('Attaching a file in an input is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function reload()
-    {
-        throw new UnsupportedDriverActionException('Page reloading is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function forward()
-    {
-        throw new UnsupportedDriverActionException('Forward action is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function back()
-    {
-        throw new UnsupportedDriverActionException('Backward action is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setBasicAuth($user, $password)
-    {
-        throw new UnsupportedDriverActionException('Basic auth setup is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function switchToWindow($name = null)
-    {
-        throw new UnsupportedDriverActionException('Windows management is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function switchToIFrame($name = null)
-    {
-        throw new UnsupportedDriverActionException('iFrames management is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setRequestHeader($name, $value)
-    {
-        throw new UnsupportedDriverActionException('Request headers manipulation is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getResponseHeaders()
-    {
-        throw new UnsupportedDriverActionException('Response headers are not available from %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setCookie($name, $value = null)
-    {
-        throw new UnsupportedDriverActionException('Cookies manipulation is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCookie($name)
-    {
-        throw new UnsupportedDriverActionException('Cookies are not available from %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStatusCode()
-    {
-        throw new UnsupportedDriverActionException('Status code is not available from %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getScreenshot()
-    {
-        throw new UnsupportedDriverActionException('Screenshots are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getWindowNames()
-    {
-        throw new UnsupportedDriverActionException('Listing all window names is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getWindowName()
-    {
-        throw new UnsupportedDriverActionException('Listing this window name is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function doubleClick($xpath)
-    {
-        throw new UnsupportedDriverActionException('Double-clicking is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function rightClick($xpath)
-    {
-        throw new UnsupportedDriverActionException('Right-clicking is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isVisible($xpath)
-    {
-        throw new UnsupportedDriverActionException('Element visibility check is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isSelected($xpath)
-    {
-        throw new UnsupportedDriverActionException('Element selection check is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function mouseOver($xpath)
-    {
-        throw new UnsupportedDriverActionException('Mouse manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function focus($xpath)
-    {
-        throw new UnsupportedDriverActionException('Mouse manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function blur($xpath)
-    {
-        throw new UnsupportedDriverActionException('Mouse manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function keyPress($xpath, $char, $modifier = null)
-    {
-        throw new UnsupportedDriverActionException('Keyboard manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function keyDown($xpath, $char, $modifier = null)
-    {
-        throw new UnsupportedDriverActionException('Keyboard manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function keyUp($xpath, $char, $modifier = null)
-    {
-        throw new UnsupportedDriverActionException('Keyboard manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function dragTo($sourceXpath, $destinationXpath)
-    {
-        throw new UnsupportedDriverActionException('Mouse manipulations are not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function executeScript($script)
-    {
-        throw new UnsupportedDriverActionException('JS is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function evaluateScript($script)
-    {
-        throw new UnsupportedDriverActionException('JS is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function wait($timeout, $condition)
-    {
-        throw new UnsupportedDriverActionException('JS is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function resizeWindow($width, $height, $name = null)
-    {
-        throw new UnsupportedDriverActionException('Window resizing is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function maximizeWindow($name = null)
-    {
-        throw new UnsupportedDriverActionException('Window maximize is not supported by %s', $this);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function submitForm($xpath)
-    {
-        throw new UnsupportedDriverActionException('Form submission is not supported by %s', $this);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Driver/DriverInterface.php b/core/vendor/behat/mink/src/Driver/DriverInterface.php
deleted file mode 100644
index 8357caa..0000000
--- a/core/vendor/behat/mink/src/Driver/DriverInterface.php
+++ /dev/null
@@ -1,637 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Driver;
-
-use Behat\Mink\Element\NodeElement;
-use Behat\Mink\Exception\DriverException;
-use Behat\Mink\Exception\UnsupportedDriverActionException;
-use Behat\Mink\Session;
-
-/**
- * Driver interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface DriverInterface
-{
-    /**
-     * Sets driver's current session.
-     *
-     * @param Session $session
-     */
-    public function setSession(Session $session);
-
-    /**
-     * Starts driver.
-     *
-     * Once started, the driver should be ready to visit a page.
-     *
-     * Calling any action before visiting a page is an undefined behavior.
-     * The only supported method calls on a fresh driver are
-     * - visit()
-     * - setRequestHeader()
-     * - setBasicAuth()
-     * - reset()
-     * - stop()
-     *
-     * Calling start on a started driver is an undefined behavior. Driver
-     * implementations are free to handle it silently or to fail with an
-     * exception.
-     *
-     * @throws DriverException When the driver cannot be started
-     */
-    public function start();
-
-    /**
-     * Checks whether driver is started.
-     *
-     * @return Boolean
-     */
-    public function isStarted();
-
-    /**
-     * Stops driver.
-     *
-     * Once stopped, the driver should be started again before using it again.
-     *
-     * Calling any action on a stopped driver is an undefined behavior.
-     * The only supported method call after stopping a driver is starting it again.
-     *
-     * Calling stop on a stopped driver is an undefined behavior. Driver
-     * implementations are free to handle it silently or to fail with an
-     * exception.
-     *
-     * @throws DriverException When the driver cannot be closed
-     */
-    public function stop();
-
-    /**
-     * Resets driver state.
-     *
-     * This should reset cookies, request headers and basic authentication.
-     * When possible, the history should be reset as well, but this is not enforced
-     * as some implementations may not be able to reset it without restarting the
-     * driver entirely. Consumers requiring a clean history should restart the driver
-     * to enforce it.
-     *
-     * Once reset, the driver should be ready to visit a page.
-     * Calling any action before visiting a page is an undefined behavior.
-     * The only supported method calls on a fresh driver are
-     * - visit()
-     * - setRequestHeader()
-     * - setBasicAuth()
-     * - reset()
-     * - stop()
-     *
-     * Calling reset on a stopped driver is an undefined behavior.
-     */
-    public function reset();
-
-    /**
-     * Visit specified URL.
-     *
-     * @param string $url url of the page
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function visit($url);
-
-    /**
-     * Returns current URL address.
-     *
-     * @return string
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getCurrentUrl();
-
-    /**
-     * Reloads current page.
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function reload();
-
-    /**
-     * Moves browser forward 1 page.
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function forward();
-
-    /**
-     * Moves browser backward 1 page.
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function back();
-
-    /**
-     * Sets HTTP Basic authentication parameters
-     *
-     * @param string|Boolean $user     user name or false to disable authentication
-     * @param string         $password password
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function setBasicAuth($user, $password);
-
-    /**
-     * Switches to specific browser window.
-     *
-     * @param string $name window name (null for switching back to main window)
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function switchToWindow($name = null);
-
-    /**
-     * Switches to specific iFrame.
-     *
-     * @param string $name iframe name (null for switching back)
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function switchToIFrame($name = null);
-
-    /**
-     * Sets specific request header on client.
-     *
-     * @param string $name
-     * @param string $value
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function setRequestHeader($name, $value);
-
-    /**
-     * Returns last response headers.
-     *
-     * @return array
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getResponseHeaders();
-
-    /**
-     * Sets cookie.
-     *
-     * @param string $name
-     * @param string $value
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function setCookie($name, $value = null);
-
-    /**
-     * Returns cookie by name.
-     *
-     * @param string $name
-     *
-     * @return string|null
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getCookie($name);
-
-    /**
-     * Returns last response status code.
-     *
-     * @return integer
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getStatusCode();
-
-    /**
-     * Returns last response content.
-     *
-     * @return string
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getContent();
-
-    /**
-     * Capture a screenshot of the current window.
-     *
-     * @return string screenshot of MIME type image/* depending
-     *                on driver (e.g., image/png, image/jpeg)
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getScreenshot();
-
-    /**
-     * Return the names of all open windows.
-     *
-     * @return array array of all open windows
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getWindowNames();
-
-    /**
-     * Return the name of the currently active window.
-     *
-     * @return string the name of the current window
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getWindowName();
-
-    /**
-     * Finds elements with specified XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return NodeElement[]
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function find($xpath);
-
-    /**
-     * Returns element's tag name by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return string
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getTagName($xpath);
-
-    /**
-     * Returns element's text by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return string
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getText($xpath);
-
-    /**
-     * Returns element's inner html by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return string
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getHtml($xpath);
-
-    /**
-     * Returns element's outer html by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return string
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getOuterHtml($xpath);
-
-    /**
-     * Returns element's attribute by it's XPath query.
-     *
-     * @param string $xpath
-     * @param string $name
-     *
-     * @return string|null
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function getAttribute($xpath, $name);
-
-    /**
-     * Returns element's value by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return string|bool|array
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::getValue
-     */
-    public function getValue($xpath);
-
-    /**
-     * Sets element's value by it's XPath query.
-     *
-     * @param string            $xpath
-     * @param string|bool|array $value
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::setValue
-     */
-    public function setValue($xpath, $value);
-
-    /**
-     * Checks checkbox by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::check
-     */
-    public function check($xpath);
-
-    /**
-     * Unchecks checkbox by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::uncheck
-     */
-    public function uncheck($xpath);
-
-    /**
-     * Checks whether checkbox or radio button located by it's XPath query is checked.
-     *
-     * @param string $xpath
-     *
-     * @return Boolean
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::isChecked
-     */
-    public function isChecked($xpath);
-
-    /**
-     * Selects option from select field or value in radio group located by it's XPath query.
-     *
-     * @param string  $xpath
-     * @param string  $value
-     * @param Boolean $multiple
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::selectOption
-     */
-    public function selectOption($xpath, $value, $multiple = false);
-
-    /**
-     * Checks whether select option, located by it's XPath query, is selected.
-     *
-     * @param string $xpath
-     *
-     * @return Boolean
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::isSelected
-     */
-    public function isSelected($xpath);
-
-    /**
-     * Clicks button or link located by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function click($xpath);
-
-    /**
-     * Double-clicks button or link located by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function doubleClick($xpath);
-
-    /**
-     * Right-clicks button or link located by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function rightClick($xpath);
-
-    /**
-     * Attaches file path to file field located by it's XPath query.
-     *
-     * @param string $xpath
-     * @param string $path
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::attachFile
-     */
-    public function attachFile($xpath, $path);
-
-    /**
-     * Checks whether element visible located by it's XPath query.
-     *
-     * @param string $xpath
-     *
-     * @return Boolean
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function isVisible($xpath);
-
-    /**
-     * Simulates a mouse over on the element.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function mouseOver($xpath);
-
-    /**
-     * Brings focus to element.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function focus($xpath);
-
-    /**
-     * Removes focus from element.
-     *
-     * @param string $xpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function blur($xpath);
-
-    /**
-     * Presses specific keyboard key.
-     *
-     * @param string         $xpath
-     * @param string|integer $char     could be either char ('b') or char-code (98)
-     * @param string         $modifier keyboard modifier (could be 'ctrl', 'alt', 'shift' or 'meta')
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function keyPress($xpath, $char, $modifier = null);
-
-    /**
-     * Pressed down specific keyboard key.
-     *
-     * @param string         $xpath
-     * @param string|integer $char     could be either char ('b') or char-code (98)
-     * @param string         $modifier keyboard modifier (could be 'ctrl', 'alt', 'shift' or 'meta')
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function keyDown($xpath, $char, $modifier = null);
-
-    /**
-     * Pressed up specific keyboard key.
-     *
-     * @param string         $xpath
-     * @param string|integer $char     could be either char ('b') or char-code (98)
-     * @param string         $modifier keyboard modifier (could be 'ctrl', 'alt', 'shift' or 'meta')
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function keyUp($xpath, $char, $modifier = null);
-
-    /**
-     * Drag one element onto another.
-     *
-     * @param string $sourceXpath
-     * @param string $destinationXpath
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function dragTo($sourceXpath, $destinationXpath);
-
-    /**
-     * Executes JS script.
-     *
-     * @param string $script
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function executeScript($script);
-
-    /**
-     * Evaluates JS script.
-     *
-     * The "return" keyword is optional in the script passed as argument. Driver implementations
-     * must accept the expression both with and without the keyword.
-     *
-     * @param string $script
-     *
-     * @return mixed
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function evaluateScript($script);
-
-    /**
-     * Waits some time or until JS condition turns true.
-     *
-     * @param integer $timeout   timeout in milliseconds
-     * @param string  $condition JS condition
-     *
-     * @return boolean
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function wait($timeout, $condition);
-
-    /**
-     * Set the dimensions of the window.
-     *
-     * @param integer $width  set the window width, measured in pixels
-     * @param integer $height set the window height, measured in pixels
-     * @param string  $name   window name (null for the main window)
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function resizeWindow($width, $height, $name = null);
-
-    /**
-     * Maximize the window if it is not maximized already
-     *
-     * @param string $name window name (null for the main window)
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     */
-    public function maximizeWindow($name = null);
-
-    /**
-     * Submits the form.
-     *
-     * @param string $xpath Xpath.
-     *
-     * @throws UnsupportedDriverActionException When operation not supported by the driver
-     * @throws DriverException                  When the operation cannot be done
-     *
-     * @see \Behat\Mink\Element\NodeElement::submitForm
-     */
-    public function submitForm($xpath);
-}
diff --git a/core/vendor/behat/mink/src/Element/DocumentElement.php b/core/vendor/behat/mink/src/Element/DocumentElement.php
deleted file mode 100644
index edde3c3..0000000
--- a/core/vendor/behat/mink/src/Element/DocumentElement.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Element;
-
-/**
- * Document element.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class DocumentElement extends TraversableElement
-{
-    /**
-     * Returns XPath for handled element.
-     *
-     * @return string
-     */
-    public function getXpath()
-    {
-        return '//html';
-    }
-
-    /**
-     * Returns document content.
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        return trim($this->getDriver()->getContent());
-    }
-
-    /**
-     * Check whether document has specified content.
-     *
-     * @param string $content
-     *
-     * @return Boolean
-     */
-    public function hasContent($content)
-    {
-        return $this->has('named', array(
-            'content', $this->getSelectorsHandler()->xpathLiteral($content),
-        ));
-    }
-}
diff --git a/core/vendor/behat/mink/src/Element/Element.php b/core/vendor/behat/mink/src/Element/Element.php
deleted file mode 100644
index 07e1e11..0000000
--- a/core/vendor/behat/mink/src/Element/Element.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Element;
-
-use Behat\Mink\Driver\DriverInterface;
-use Behat\Mink\Exception\ElementNotFoundException;
-use Behat\Mink\Selector\SelectorsHandler;
-use Behat\Mink\Selector\Xpath\Manipulator;
-use Behat\Mink\Session;
-
-/**
- * Base element.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-abstract class Element implements ElementInterface
-{
-    /**
-     * @var Session
-     */
-    private $session;
-
-    /**
-     * Driver.
-     *
-     * @var DriverInterface
-     */
-    private $driver;
-
-    /**
-     * @var SelectorsHandler
-     */
-    private $selectorsHandler;
-
-    /**
-     * @var Manipulator
-     */
-    private $xpathManipulator;
-
-    /**
-     * Initialize element.
-     *
-     * @param Session $session
-     */
-    public function __construct(Session $session)
-    {
-        $this->xpathManipulator = new Manipulator();
-        $this->session = $session;
-
-        $this->driver = $session->getDriver();
-        $this->selectorsHandler = $session->getSelectorsHandler();
-    }
-
-    /**
-     * Returns element session.
-     *
-     * @return Session
-     *
-     * @deprecated Accessing the session from the element is deprecated as of 1.6 and will be impossible in 2.0.
-     */
-    public function getSession()
-    {
-        return $this->session;
-    }
-
-    /**
-     * Returns element's driver.
-     *
-     * @return DriverInterface
-     */
-    protected function getDriver()
-    {
-        return $this->driver;
-    }
-
-    /**
-     * Returns selectors handler.
-     *
-     * @return SelectorsHandler
-     */
-    protected function getSelectorsHandler()
-    {
-        return $this->selectorsHandler;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($selector, $locator)
-    {
-        return null !== $this->find($selector, $locator);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isValid()
-    {
-        return 1 === count($this->getDriver()->find($this->getXpath()));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function waitFor($timeout, $callback)
-    {
-        if (!is_callable($callback)) {
-            throw new \InvalidArgumentException('Given callback is not a valid callable');
-        }
-
-        $start = microtime(true);
-        $end = $start + $timeout;
-
-        do {
-            $result = call_user_func($callback, $this);
-
-            if ($result) {
-                break;
-            }
-
-            usleep(100000);
-        } while (microtime(true) < $end);
-
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($selector, $locator)
-    {
-        $items = $this->findAll($selector, $locator);
-
-        return count($items) ? current($items) : null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function findAll($selector, $locator)
-    {
-        if ('named' === $selector) {
-            $items = $this->findAll('named_exact', $locator);
-            if (empty($items)) {
-                $items = $this->findAll('named_partial', $locator);
-            }
-
-            return $items;
-        }
-
-        $xpath = $this->getSelectorsHandler()->selectorToXpath($selector, $locator);
-        $xpath = $this->xpathManipulator->prepend($xpath, $this->getXpath());
-
-        return $this->getDriver()->find($xpath);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getText()
-    {
-        return $this->getDriver()->getText($this->getXpath());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getHtml()
-    {
-        return $this->getDriver()->getHtml($this->getXpath());
-    }
-
-    /**
-     * Returns element outer html.
-     *
-     * @return string
-     */
-    public function getOuterHtml()
-    {
-        return $this->getDriver()->getOuterHtml($this->getXpath());
-    }
-
-    /**
-     * Builds an ElementNotFoundException
-     *
-     * This is an helper to build the ElementNotFoundException without
-     * needing to use the deprecated getSession accessor in child classes.
-     *
-     * @param string      $type
-     * @param string|null $selector
-     * @param string|null $locator
-     *
-     * @return ElementNotFoundException
-     */
-    protected function elementNotFound($type, $selector = null, $locator = null)
-    {
-        return new ElementNotFoundException($this->session, $type, $selector, $locator);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Element/ElementInterface.php b/core/vendor/behat/mink/src/Element/ElementInterface.php
deleted file mode 100644
index 8c134b9..0000000
--- a/core/vendor/behat/mink/src/Element/ElementInterface.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Element;
-
-use Behat\Mink\Session;
-
-/**
- * Element interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface ElementInterface
-{
-    /**
-     * Returns XPath for handled element.
-     *
-     * @return string
-     */
-    public function getXpath();
-
-    /**
-     * Returns element's session.
-     *
-     * @return Session
-     *
-     * @deprecated Accessing the session from the element is deprecated as of 1.6 and will be impossible in 2.0.
-     */
-    public function getSession();
-
-    /**
-     * Checks whether element with specified selector exists inside the current element.
-     *
-     * @param string       $selector selector engine name
-     * @param string|array $locator  selector locator
-     *
-     * @return Boolean
-     *
-     * @see ElementInterface::findAll for the supported selectors
-     */
-    public function has($selector, $locator);
-
-    /**
-     * Checks if an element still exists in the DOM.
-     *
-     * @return boolean
-     */
-    public function isValid();
-
-    /**
-     * Waits for an element(-s) to appear and returns it.
-     *
-     * @param int|float $timeout  Maximal allowed waiting time in seconds.
-     * @param callable  $callback Callback, which result is both used as waiting condition and returned.
-     *                            Will receive reference to `this element` as first argument.
-     *
-     * @return mixed
-     * @throws \InvalidArgumentException When invalid callback given.
-     */
-    public function waitFor($timeout, $callback);
-
-    /**
-     * Finds first element with specified selector inside the current element.
-     *
-     * @param string       $selector selector engine name
-     * @param string|array $locator  selector locator
-     *
-     * @return NodeElement|null
-     *
-     * @see ElementInterface::findAll for the supported selectors
-     */
-    public function find($selector, $locator);
-
-    /**
-     * Finds all elements with specified selector inside the current element.
-     *
-     * Valid selector engines are named, xpath, css, named_partial and named_exact.
-     *
-     * 'named' is a pseudo selector engine which prefers an exact match but
-     * will return a partial match if no exact match is found.
-     * 'xpath' is a pseudo selector engine supported by SelectorsHandler.
-     *
-     * More selector engines can be registered in the SelectorsHandler.
-     *
-     * @param string       $selector selector engine name
-     * @param string|array $locator  selector locator
-     *
-     * @return NodeElement[]
-     *
-     * @see NamedSelector for the locators supported by the named selectors
-     */
-    public function findAll($selector, $locator);
-
-    /**
-     * Returns element text (inside tag).
-     *
-     * @return string
-     */
-    public function getText();
-
-    /**
-     * Returns element inner html.
-     *
-     * @return string
-     */
-    public function getHtml();
-}
diff --git a/core/vendor/behat/mink/src/Element/NodeElement.php b/core/vendor/behat/mink/src/Element/NodeElement.php
deleted file mode 100644
index 8e43546..0000000
--- a/core/vendor/behat/mink/src/Element/NodeElement.php
+++ /dev/null
@@ -1,352 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Element;
-
-use Behat\Mink\Session;
-use Behat\Mink\Exception\ElementNotFoundException;
-
-/**
- * Page element node.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class NodeElement extends TraversableElement
-{
-    private $xpath;
-
-    /**
-     * Initializes node element.
-     *
-     * @param string  $xpath   element xpath
-     * @param Session $session session instance
-     */
-    public function __construct($xpath, Session $session)
-    {
-        $this->xpath = $xpath;
-
-        parent::__construct($session);
-    }
-
-    /**
-     * Returns XPath for handled element.
-     *
-     * @return string
-     */
-    public function getXpath()
-    {
-        return $this->xpath;
-    }
-
-    /**
-     * Returns parent element to the current one.
-     *
-     * @return NodeElement
-     */
-    public function getParent()
-    {
-        return $this->find('xpath', '..');
-    }
-
-    /**
-     * Returns current node tag name.
-     *
-     * The value is always returned in lowercase to allow an easy comparison.
-     *
-     * @return string
-     */
-    public function getTagName()
-    {
-        return strtolower($this->getDriver()->getTagName($this->getXpath()));
-    }
-
-    /**
-     * Returns the value of the form field or option element.
-     *
-     * For checkbox fields, the value is a boolean indicating whether the checkbox is checked.
-     * For radio buttons, the value is the value of the selected button in the radio group
-     *      or null if no button is selected.
-     * For single select boxes, the value is the value of the selected option.
-     * For multiple select boxes, the value is an array of selected option values.
-     * for file inputs, the return value is undefined given that browsers don't allow accessing
-     *      the value of file inputs for security reasons. Some drivers may allow accessing the
-     *      path of the file set in the field, but this is not required if it cannot be implemented.
-     * For textarea elements and all textual fields, the value is the content of the field.
-     * Form option elements, the value is the value of the option (the value attribute or the text
-     *      content if the attribute is not set).
-     *
-     * Calling this method on other elements than form fields or option elements is not allowed.
-     *
-     * @return string|bool|array
-     */
-    public function getValue()
-    {
-        return $this->getDriver()->getValue($this->getXpath());
-    }
-
-    /**
-     * Sets the value of the form field.
-     *
-     * Calling this method on other elements than form fields is not allowed.
-     *
-     * @param string|bool|array $value
-     *
-     * @see NodeElement::getValue for the format of the value for each type of field
-     */
-    public function setValue($value)
-    {
-        $this->getDriver()->setValue($this->getXpath(), $value);
-    }
-
-    /**
-     * Checks whether element has attribute with specified name.
-     *
-     * @param string $name
-     *
-     * @return Boolean
-     */
-    public function hasAttribute($name)
-    {
-        return null !== $this->getDriver()->getAttribute($this->getXpath(), $name);
-    }
-
-    /**
-     * Returns specified attribute value.
-     *
-     * @param string $name
-     *
-     * @return string|null
-     */
-    public function getAttribute($name)
-    {
-        return $this->getDriver()->getAttribute($this->getXpath(), $name);
-    }
-
-    /**
-     * Checks whether an element has a named CSS class
-     *
-     * @param string $className Name of the class
-     *
-     * @return boolean
-     */
-    public function hasClass($className)
-    {
-        if ($this->hasAttribute('class')) {
-            return in_array($className, explode(' ', $this->getAttribute('class')));
-        }
-
-        return false;
-    }
-
-    /**
-     * Clicks current node.
-     */
-    public function click()
-    {
-        $this->getDriver()->click($this->getXpath());
-    }
-
-    /**
-     * Presses current button.
-     */
-    public function press()
-    {
-        $this->click();
-    }
-
-    /**
-     * Double-clicks current node.
-     */
-    public function doubleClick()
-    {
-        $this->getDriver()->doubleClick($this->getXpath());
-    }
-
-    /**
-     * Right-clicks current node.
-     */
-    public function rightClick()
-    {
-        $this->getDriver()->rightClick($this->getXpath());
-    }
-
-    /**
-     * Checks current node if it's a checkbox field.
-     */
-    public function check()
-    {
-        $this->getDriver()->check($this->getXpath());
-    }
-
-    /**
-     * Unchecks current node if it's a checkbox field.
-     */
-    public function uncheck()
-    {
-        $this->getDriver()->uncheck($this->getXpath());
-    }
-
-    /**
-     * Checks whether current node is checked if it's a checkbox or radio field.
-     *
-     * Calling this method on any other elements is not allowed.
-     *
-     * @return Boolean
-     */
-    public function isChecked()
-    {
-        return (Boolean) $this->getDriver()->isChecked($this->getXpath());
-    }
-
-    /**
-     * Selects specified option for select field or specified radio button in the group
-     *
-     * If the current node is a select box, this selects the option found by its value or
-     * its text.
-     * If the current node is a radio button, this selects the radio button with the given
-     * value in the radio button group of the current node.
-     *
-     * Calling this method on any other elements is not allowed.
-     *
-     * @param string  $option
-     * @param Boolean $multiple whether the option should be added to the selection for multiple selects
-     *
-     * @throws ElementNotFoundException when the option is not found in the select box
-     */
-    public function selectOption($option, $multiple = false)
-    {
-        if ('select' !== $this->getTagName()) {
-            $this->getDriver()->selectOption($this->getXpath(), $option, $multiple);
-
-            return;
-        }
-
-        $opt = $this->find('named', array(
-            'option', $this->getSelectorsHandler()->xpathLiteral($option),
-        ));
-
-        if (null === $opt) {
-            throw $this->elementNotFound('select option', 'value|text', $option);
-        }
-
-        $this->getDriver()->selectOption($this->getXpath(), $opt->getValue(), $multiple);
-    }
-
-    /**
-     * Checks whether current node is selected if it's a option field.
-     *
-     * Calling this method on any other elements is not allowed.
-     *
-     * @return Boolean
-     */
-    public function isSelected()
-    {
-        return (Boolean) $this->getDriver()->isSelected($this->getXpath());
-    }
-
-    /**
-     * Attach file to current node if it's a file input.
-     *
-     * Calling this method on any other elements than file input is not allowed.
-     *
-     * @param string $path path to file (local)
-     */
-    public function attachFile($path)
-    {
-        $this->getDriver()->attachFile($this->getXpath(), $path);
-    }
-
-    /**
-     * Checks whether current node is visible on page.
-     *
-     * @return Boolean
-     */
-    public function isVisible()
-    {
-        return (Boolean) $this->getDriver()->isVisible($this->getXpath());
-    }
-
-    /**
-     * Simulates a mouse over on the element.
-     */
-    public function mouseOver()
-    {
-        $this->getDriver()->mouseOver($this->getXpath());
-    }
-
-    /**
-     * Drags current node onto other node.
-     *
-     * @param ElementInterface $destination other node
-     */
-    public function dragTo(ElementInterface $destination)
-    {
-        $this->getDriver()->dragTo($this->getXpath(), $destination->getXpath());
-    }
-
-    /**
-     * Brings focus to element.
-     */
-    public function focus()
-    {
-        $this->getDriver()->focus($this->getXpath());
-    }
-
-    /**
-     * Removes focus from element.
-     */
-    public function blur()
-    {
-        $this->getDriver()->blur($this->getXpath());
-    }
-
-    /**
-     * Presses specific keyboard key.
-     *
-     * @param string|integer $char     could be either char ('b') or char-code (98)
-     * @param string         $modifier keyboard modifier (could be 'ctrl', 'alt', 'shift' or 'meta')
-     */
-    public function keyPress($char, $modifier = null)
-    {
-        $this->getDriver()->keyPress($this->getXpath(), $char, $modifier);
-    }
-
-    /**
-     * Pressed down specific keyboard key.
-     *
-     * @param string|integer $char     could be either char ('b') or char-code (98)
-     * @param string         $modifier keyboard modifier (could be 'ctrl', 'alt', 'shift' or 'meta')
-     */
-    public function keyDown($char, $modifier = null)
-    {
-        $this->getDriver()->keyDown($this->getXpath(), $char, $modifier);
-    }
-
-    /**
-     * Pressed up specific keyboard key.
-     *
-     * @param string|integer $char     could be either char ('b') or char-code (98)
-     * @param string         $modifier keyboard modifier (could be 'ctrl', 'alt', 'shift' or 'meta')
-     */
-    public function keyUp($char, $modifier = null)
-    {
-        $this->getDriver()->keyUp($this->getXpath(), $char, $modifier);
-    }
-
-    /**
-     * Submits the form.
-     *
-     * Calling this method on anything else than form elements is not allowed.
-     */
-    public function submit()
-    {
-        $this->getDriver()->submitForm($this->getXpath());
-    }
-}
diff --git a/core/vendor/behat/mink/src/Element/TraversableElement.php b/core/vendor/behat/mink/src/Element/TraversableElement.php
deleted file mode 100644
index 0621af3..0000000
--- a/core/vendor/behat/mink/src/Element/TraversableElement.php
+++ /dev/null
@@ -1,309 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Element;
-
-use Behat\Mink\Exception\ElementNotFoundException;
-
-/**
- * Traversable element.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-abstract class TraversableElement extends Element
-{
-    /**
-     * Finds element by its id.
-     *
-     * @param string $id element id
-     *
-     * @return NodeElement|null
-     */
-    public function findById($id)
-    {
-        $id = $this->getSelectorsHandler()->xpathLiteral($id);
-
-        return $this->find('named', array('id', $id));
-    }
-
-    /**
-     * Checks whether element has a link with specified locator.
-     *
-     * @param string $locator link id, title, text or image alt
-     *
-     * @return Boolean
-     */
-    public function hasLink($locator)
-    {
-        return null !== $this->findLink($locator);
-    }
-
-    /**
-     * Finds link with specified locator.
-     *
-     * @param string $locator link id, title, text or image alt
-     *
-     * @return NodeElement|null
-     */
-    public function findLink($locator)
-    {
-        return $this->find('named', array(
-            'link', $this->getSelectorsHandler()->xpathLiteral($locator),
-        ));
-    }
-
-    /**
-     * Clicks link with specified locator.
-     *
-     * @param string $locator link id, title, text or image alt
-     *
-     * @throws ElementNotFoundException
-     */
-    public function clickLink($locator)
-    {
-        $link = $this->findLink($locator);
-
-        if (null === $link) {
-            throw $this->elementNotFound('link', 'id|title|alt|text', $locator);
-        }
-
-        $link->click();
-    }
-
-    /**
-     * Checks whether element has a button (input[type=submit|image|button|reset], button) with specified locator.
-     *
-     * @param string $locator button id, value or alt
-     *
-     * @return Boolean
-     */
-    public function hasButton($locator)
-    {
-        return null !== $this->findButton($locator);
-    }
-
-    /**
-     * Finds button (input[type=submit|image|button|reset], button) with specified locator.
-     *
-     * @param string $locator button id, value or alt
-     *
-     * @return NodeElement|null
-     */
-    public function findButton($locator)
-    {
-        return $this->find('named', array(
-            'button', $this->getSelectorsHandler()->xpathLiteral($locator),
-        ));
-    }
-
-    /**
-     * Presses button (input[type=submit|image|button|reset], button) with specified locator.
-     *
-     * @param string $locator button id, value or alt
-     *
-     * @throws ElementNotFoundException
-     */
-    public function pressButton($locator)
-    {
-        $button = $this->findButton($locator);
-
-        if (null === $button) {
-            throw $this->elementNotFound('button', 'id|name|title|alt|value', $locator);
-        }
-
-        $button->press();
-    }
-
-    /**
-     * Checks whether element has a field (input, textarea, select) with specified locator.
-     *
-     * @param string $locator input id, name or label
-     *
-     * @return Boolean
-     */
-    public function hasField($locator)
-    {
-        return null !== $this->findField($locator);
-    }
-
-    /**
-     * Finds field (input, textarea, select) with specified locator.
-     *
-     * @param string $locator input id, name or label
-     *
-     * @return NodeElement|null
-     */
-    public function findField($locator)
-    {
-        return $this->find('named', array(
-            'field', $this->getSelectorsHandler()->xpathLiteral($locator),
-        ));
-    }
-
-    /**
-     * Fills in field (input, textarea, select) with specified locator.
-     *
-     * @param string $locator input id, name or label
-     * @param string $value   value
-     *
-     * @throws ElementNotFoundException
-     *
-     * @see NodeElement::setValue
-     */
-    public function fillField($locator, $value)
-    {
-        $field = $this->findField($locator);
-
-        if (null === $field) {
-            throw $this->elementNotFound('form field', 'id|name|label|value', $locator);
-        }
-
-        $field->setValue($value);
-    }
-
-    /**
-     * Checks whether element has a checkbox with specified locator, which is checked.
-     *
-     * @param string $locator input id, name or label
-     *
-     * @return Boolean
-     *
-     * @see NodeElement::isChecked
-     */
-    public function hasCheckedField($locator)
-    {
-        $field = $this->findField($locator);
-
-        return null !== $field && $field->isChecked();
-    }
-
-    /**
-     * Checks whether element has a checkbox with specified locator, which is unchecked.
-     *
-     * @param string $locator input id, name or label
-     *
-     * @return Boolean
-     *
-     * @see NodeElement::isChecked
-     */
-    public function hasUncheckedField($locator)
-    {
-        $field = $this->findField($locator);
-
-        return null !== $field && !$field->isChecked();
-    }
-
-    /**
-     * Checks checkbox with specified locator.
-     *
-     * @param string $locator input id, name or label
-     *
-     * @throws ElementNotFoundException
-     */
-    public function checkField($locator)
-    {
-        $field = $this->findField($locator);
-
-        if (null === $field) {
-            throw $this->elementNotFound('form field', 'id|name|label|value', $locator);
-        }
-
-        $field->check();
-    }
-
-    /**
-     * Unchecks checkbox with specified locator.
-     *
-     * @param string $locator input id, name or label
-     *
-     * @throws ElementNotFoundException
-     */
-    public function uncheckField($locator)
-    {
-        $field = $this->findField($locator);
-
-        if (null === $field) {
-            throw $this->elementNotFound('form field', 'id|name|label|value', $locator);
-        }
-
-        $field->uncheck();
-    }
-
-    /**
-     * Checks whether element has a select field with specified locator.
-     *
-     * @param string $locator select id, name or label
-     *
-     * @return Boolean
-     */
-    public function hasSelect($locator)
-    {
-        return $this->has('named', array(
-            'select', $this->getSelectorsHandler()->xpathLiteral($locator),
-        ));
-    }
-
-    /**
-     * Selects option from select field with specified locator.
-     *
-     * @param string  $locator  input id, name or label
-     * @param string  $value    option value
-     * @param Boolean $multiple select multiple options
-     *
-     * @throws ElementNotFoundException
-     *
-     * @see NodeElement::selectOption
-     */
-    public function selectFieldOption($locator, $value, $multiple = false)
-    {
-        $field = $this->findField($locator);
-
-        if (null === $field) {
-            throw $this->elementNotFound('form field', 'id|name|label|value', $locator);
-        }
-
-        $field->selectOption($value, $multiple);
-    }
-
-    /**
-     * Checks whether element has a table with specified locator.
-     *
-     * @param string $locator table id or caption
-     *
-     * @return Boolean
-     */
-    public function hasTable($locator)
-    {
-        return $this->has('named', array(
-            'table', $this->getSelectorsHandler()->xpathLiteral($locator),
-        ));
-    }
-
-    /**
-     * Attach file to file field with specified locator.
-     *
-     * @param string $locator input id, name or label
-     * @param string $path    path to file
-     *
-     * @throws ElementNotFoundException
-     *
-     * @see NodeElement::attachFile
-     */
-    public function attachFileToField($locator, $path)
-    {
-        $field = $this->findField($locator);
-
-        if (null === $field) {
-            throw $this->elementNotFound('form field', 'id|name|label|value', $locator);
-        }
-
-        $field->attachFile($path);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/DriverException.php b/core/vendor/behat/mink/src/Exception/DriverException.php
deleted file mode 100644
index 840f8bd..0000000
--- a/core/vendor/behat/mink/src/Exception/DriverException.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-/**
- * Exception thrown by drivers when they fail to perform an action.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class DriverException extends Exception
-{
-    /**
-     * Initializes exception.
-     *
-     * @param string          $message
-     * @param int             $code
-     * @param \Exception|null $previous
-     */
-    public function __construct($message, $code = 0, \Exception $previous = null)
-    {
-        parent::__construct($message, $code, $previous);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/ElementException.php b/core/vendor/behat/mink/src/Exception/ElementException.php
deleted file mode 100644
index 49d5c6c..0000000
--- a/core/vendor/behat/mink/src/Exception/ElementException.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-use Behat\Mink\Element\Element;
-
-/**
- * A standard way for elements to re-throw exceptions
- *
- * @deprecated This exception class is not used anymore in Mink 1.6 and will be removed in 2.0
- *
- * @author Chris Worfolk <xmeltrut@gmail.com>
- */
-class ElementException extends Exception
-{
-    private $element;
-
-    /**
-     * Initialises exception.
-     *
-     * @param Element    $element   optional message
-     * @param \Exception $exception exception
-     */
-    public function __construct(Element $element, \Exception $exception)
-    {
-        $this->element = $element;
-
-        parent::__construct(sprintf("Exception thrown by %s\n%s", $element->getXpath(), $exception->getMessage()));
-    }
-
-    /**
-     * Override default toString so we don't send a full backtrace in verbose mode.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->getMessage();
-    }
-
-    /**
-     * Get the element that caused the exception
-     *
-     * @return Element
-     */
-    public function getElement()
-    {
-        return $this->element;
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/ElementHtmlException.php b/core/vendor/behat/mink/src/Exception/ElementHtmlException.php
deleted file mode 100644
index 99e2ea6..0000000
--- a/core/vendor/behat/mink/src/Exception/ElementHtmlException.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-use Behat\Mink\Session;
-use Behat\Mink\Element\Element;
-
-/**
- * Exception thrown when an expectation on the HTML of an element fails.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ElementHtmlException extends ExpectationException
-{
-    /**
-     * Element instance.
-     *
-     * @var Element
-     */
-    protected $element;
-
-    /**
-     * Initializes exception.
-     *
-     * @param string     $message   optional message
-     * @param Session    $session   session instance
-     * @param Element    $element   element
-     * @param \Exception $exception expectation exception
-     */
-    public function __construct($message, Session $session, Element $element, \Exception $exception = null)
-    {
-        $this->element = $element;
-
-        parent::__construct($message, $session, $exception);
-    }
-
-    protected function getContext()
-    {
-        return $this->element->getOuterHtml();
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/ElementNotFoundException.php b/core/vendor/behat/mink/src/Exception/ElementNotFoundException.php
deleted file mode 100644
index 95fd5f0..0000000
--- a/core/vendor/behat/mink/src/Exception/ElementNotFoundException.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-use Behat\Mink\Session;
-
-/**
- * Exception thrown when an expected element is not found.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ElementNotFoundException extends ExpectationException
-{
-    /**
-     * Initializes exception.
-     *
-     * @param Session $session  session instance
-     * @param string  $type     element type
-     * @param string  $selector element selector type
-     * @param string  $locator  element locator
-     */
-    public function __construct(Session $session, $type = null, $selector = null, $locator = null)
-    {
-        $message = '';
-
-        if (null !== $type) {
-            $message .= ucfirst($type);
-        } else {
-            $message .= 'Tag';
-        }
-
-        if (null !== $locator) {
-            if (null === $selector || in_array($selector, array('css', 'xpath'))) {
-                $selector = 'matching '.($selector ?: 'locator');
-            } else {
-                $selector = 'with '.$selector;
-            }
-            $message .= ' '.$selector.' "'.$locator.'"';
-        }
-
-        $message .= ' not found.';
-
-        parent::__construct($message, $session);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/ElementTextException.php b/core/vendor/behat/mink/src/Exception/ElementTextException.php
deleted file mode 100644
index 5efff0f..0000000
--- a/core/vendor/behat/mink/src/Exception/ElementTextException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-/**
- * Exception thrown when an expectation on the text of an element fails.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ElementTextException extends ElementHtmlException
-{
-    protected function getContext()
-    {
-        return $this->element->getText();
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/Exception.php b/core/vendor/behat/mink/src/Exception/Exception.php
deleted file mode 100644
index 4662a5b..0000000
--- a/core/vendor/behat/mink/src/Exception/Exception.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-/**
- * Mink base exception class.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-abstract class Exception extends \Exception
-{
-}
diff --git a/core/vendor/behat/mink/src/Exception/ExpectationException.php b/core/vendor/behat/mink/src/Exception/ExpectationException.php
deleted file mode 100644
index 25034d1..0000000
--- a/core/vendor/behat/mink/src/Exception/ExpectationException.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-use Behat\Mink\Session;
-
-/**
- * Exception thrown for failed expectations.
- *
- * Some specialized child classes are available to customize the error rendering.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ExpectationException extends Exception
-{
-    private $session;
-
-    /**
-     * Initializes exception.
-     *
-     * @param string     $message   optional message
-     * @param Session    $session   session instance
-     * @param \Exception $exception expectation exception
-     */
-    public function __construct($message, Session $session, \Exception $exception = null)
-    {
-        $this->session = $session;
-
-        if (!$message && null !== $exception) {
-            $message = $exception->getMessage();
-        }
-
-        parent::__construct($message, 0, $exception);
-    }
-
-    /**
-     * Returns exception message with additional context info.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        try {
-            $pageText = $this->pipeString($this->trimString($this->getContext())."\n");
-            $string   = sprintf("%s\n\n%s%s", $this->getMessage(), $this->getResponseInfo(), $pageText);
-        } catch (\Exception $e) {
-            return $this->getMessage();
-        }
-
-        return $string;
-    }
-
-    /**
-     * Gets the context rendered for this exception
-     *
-     * @return string
-     */
-    protected function getContext()
-    {
-        return $this->trimBody($this->getSession()->getPage()->getContent());
-    }
-
-    /**
-     * Returns exception session.
-     *
-     * @return Session
-     */
-    protected function getSession()
-    {
-        return $this->session;
-    }
-
-    /**
-     * Prepends every line in a string with pipe (|).
-     *
-     * @param string $string
-     *
-     * @return string
-     */
-    protected function pipeString($string)
-    {
-        return '|  '.strtr($string, array("\n" => "\n|  "));
-    }
-
-    /**
-     * Removes response header/footer, letting only <body /> content.
-     *
-     * @param string $string response content
-     *
-     * @return string
-     */
-    protected function trimBody($string)
-    {
-        $string = preg_replace(array('/^.*<body>/s', '/<\/body>.*$/s'), array('<body>', '</body>'), $string);
-
-        return $string;
-    }
-
-    /**
-     * Trims string to specified number of chars.
-     *
-     * @param string  $string response content
-     * @param integer $count  trim count
-     *
-     * @return string
-     */
-    protected function trimString($string, $count = 1000)
-    {
-        $string = trim($string);
-
-        if ($count < mb_strlen($string)) {
-            return mb_substr($string, 0, $count - 3).'...';
-        }
-
-        return $string;
-    }
-
-    /**
-     * Returns response information string.
-     *
-     * @return string
-     */
-    protected function getResponseInfo()
-    {
-        $driver = basename(str_replace('\\', '/', get_class($this->session->getDriver())));
-
-        $info = '+--[ ';
-        try {
-            $info .= 'HTTP/1.1 '.$this->session->getStatusCode().' | ';
-        } catch (UnsupportedDriverActionException $e) {
-            // Ignore the status code when not supported
-        }
-        $info .= $this->session->getCurrentUrl().' | '.$driver." ]\n|\n";
-
-        return $info;
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/ResponseTextException.php b/core/vendor/behat/mink/src/Exception/ResponseTextException.php
deleted file mode 100644
index 145ed6d..0000000
--- a/core/vendor/behat/mink/src/Exception/ResponseTextException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-/**
- * Exception thrown when an expectation on the response text fails.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ResponseTextException extends ExpectationException
-{
-    protected function getContext()
-    {
-        return $this->getSession()->getPage()->getText();
-    }
-}
diff --git a/core/vendor/behat/mink/src/Exception/UnsupportedDriverActionException.php b/core/vendor/behat/mink/src/Exception/UnsupportedDriverActionException.php
deleted file mode 100644
index d02969b..0000000
--- a/core/vendor/behat/mink/src/Exception/UnsupportedDriverActionException.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Exception;
-
-use Behat\Mink\Driver\DriverInterface;
-
-/**
- * Exception thrown by drivers when they don't support the requested action.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class UnsupportedDriverActionException extends DriverException
-{
-    /**
-     * Initializes exception.
-     *
-     * @param string          $template what is unsupported?
-     * @param DriverInterface $driver   driver instance
-     * @param \Exception      $previous previous exception
-     */
-    public function __construct($template, DriverInterface $driver, \Exception $previous = null)
-    {
-        $message = sprintf($template, get_class($driver));
-
-        parent::__construct($message, 0, $previous);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Mink.php b/core/vendor/behat/mink/src/Mink.php
deleted file mode 100644
index d1621b1..0000000
--- a/core/vendor/behat/mink/src/Mink.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink;
-
-/**
- * Mink sessions manager.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Mink
-{
-    private $defaultSessionName;
-
-    /**
-     * Sessions.
-     *
-     * @var Session[]
-     */
-    private $sessions = array();
-
-    /**
-     * Initializes manager.
-     *
-     * @param Session[] $sessions
-     */
-    public function __construct(array $sessions = array())
-    {
-        foreach ($sessions as $name => $session) {
-            $this->registerSession($name, $session);
-        }
-    }
-
-    /**
-     * Stops all started sessions.
-     */
-    public function __destruct()
-    {
-        $this->stopSessions();
-    }
-
-    /**
-     * Registers new session.
-     *
-     * @param string  $name
-     * @param Session $session
-     */
-    public function registerSession($name, Session $session)
-    {
-        $name = strtolower($name);
-
-        $this->sessions[$name] = $session;
-    }
-
-    /**
-     * Checks whether session with specified name is registered.
-     *
-     * @param string $name
-     *
-     * @return Boolean
-     */
-    public function hasSession($name)
-    {
-        return isset($this->sessions[strtolower($name)]);
-    }
-
-    /**
-     * Sets default session name to use.
-     *
-     * @param string $name name of the registered session
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setDefaultSessionName($name)
-    {
-        $name = strtolower($name);
-
-        if (!isset($this->sessions[$name])) {
-            throw new \InvalidArgumentException(sprintf('Session "%s" is not registered.', $name));
-        }
-
-        $this->defaultSessionName = $name;
-    }
-
-    /**
-     * Returns default session name or null if none.
-     *
-     * @return null|string
-     */
-    public function getDefaultSessionName()
-    {
-        return $this->defaultSessionName;
-    }
-
-    /**
-     * Returns registered session by it's name or active one and automatically starts it if required.
-     *
-     * @param string $name session name
-     *
-     * @return Session
-     *
-     * @throws \InvalidArgumentException If the named session is not registered
-     */
-    public function getSession($name = null)
-    {
-        $session = $this->locateSession($name);
-
-        // start session if needed
-        if (!$session->isStarted()) {
-            $session->start();
-        }
-
-        return $session;
-    }
-
-    /**
-     * Checks whether a named session (or the default session) has already been started
-     *
-     * @param string $name session name - if null then the default session will be checked
-     *
-     * @return bool whether the session has been started
-     *
-     * @throws \InvalidArgumentException If the named session is not registered
-     */
-    public function isSessionStarted($name = null)
-    {
-        $session = $this->locateSession($name);
-
-        return $session->isStarted();
-    }
-
-    /**
-     * Returns session asserter.
-     *
-     * @param Session|string $session session object or name
-     *
-     * @return WebAssert
-     */
-    public function assertSession($session = null)
-    {
-        if (!($session instanceof Session)) {
-            $session = $this->getSession($session);
-        }
-
-        return new WebAssert($session);
-    }
-
-    /**
-     * Resets all started sessions.
-     */
-    public function resetSessions()
-    {
-        foreach ($this->sessions as $session) {
-            if ($session->isStarted()) {
-                $session->reset();
-            }
-        }
-    }
-
-    /**
-     * Restarts all started sessions.
-     */
-    public function restartSessions()
-    {
-        foreach ($this->sessions as $session) {
-            if ($session->isStarted()) {
-                $session->restart();
-            }
-        }
-    }
-
-    /**
-     * Stops all started sessions.
-     */
-    public function stopSessions()
-    {
-        foreach ($this->sessions as $session) {
-            if ($session->isStarted()) {
-                $session->stop();
-            }
-        }
-    }
-
-    /**
-     * Returns the named or default session without starting it.
-     *
-     * @param string $name session name
-     *
-     * @return Session
-     *
-     * @throws \InvalidArgumentException If the named session is not registered
-     */
-    protected function locateSession($name = null)
-    {
-        $name = strtolower($name) ?: $this->defaultSessionName;
-
-        if (null === $name) {
-            throw new \InvalidArgumentException('Specify session name to get');
-        }
-
-        if (!isset($this->sessions[$name])) {
-            throw new \InvalidArgumentException(sprintf('Session "%s" is not registered.', $name));
-        }
-
-        $session = $this->sessions[$name];
-
-        return $session;
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/CssSelector.php b/core/vendor/behat/mink/src/Selector/CssSelector.php
deleted file mode 100644
index 3636586..0000000
--- a/core/vendor/behat/mink/src/Selector/CssSelector.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector;
-
-use Symfony\Component\CssSelector\CssSelector as CSS;
-
-/**
- * CSS selector engine. Transforms CSS to XPath.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CssSelector implements SelectorInterface
-{
-    /**
-     * Translates CSS into XPath.
-     *
-     * @param string|array $locator current selector locator
-     *
-     * @return string
-     */
-    public function translateToXPath($locator)
-    {
-        if (!is_string($locator)) {
-            throw new \InvalidArgumentException('The CssSelector expects to get a string as locator');
-        }
-
-        return CSS::toXPath($locator);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/ExactNamedSelector.php b/core/vendor/behat/mink/src/Selector/ExactNamedSelector.php
deleted file mode 100644
index 03315a9..0000000
--- a/core/vendor/behat/mink/src/Selector/ExactNamedSelector.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector;
-
-/**
- * Exact match selector engine. Like the Named selector engine but ignores partial matches.
- */
-class ExactNamedSelector extends NamedSelector
-{
-    public function __construct()
-    {
-        $this->registerReplacement('%tagTextMatch%', 'normalize-space(string(.)) = %locator%');
-        $this->registerReplacement('%valueMatch%', './@value = %locator%');
-        $this->registerReplacement('%titleMatch%', './@title = %locator%');
-        $this->registerReplacement('%altMatch%', './@alt = %locator%');
-        $this->registerReplacement('%relMatch%', './@rel = %locator%');
-        $this->registerReplacement('%labelAttributeMatch%', './@label = %locator%');
-
-        parent::__construct();
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/NamedSelector.php b/core/vendor/behat/mink/src/Selector/NamedSelector.php
deleted file mode 100644
index 4845f99..0000000
--- a/core/vendor/behat/mink/src/Selector/NamedSelector.php
+++ /dev/null
@@ -1,238 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector;
-
-/**
- * Named selectors engine. Uses registered XPath selectors to create new expressions.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class NamedSelector implements SelectorInterface
-{
-    private $replacements = array(
-        // simple replacements
-        '%lowercaseType%' => "translate(./@type, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')",
-        '%lowercaseRole%' => "translate(./@role, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')",
-        '%tagTextMatch%' => 'contains(normalize-space(string(.)), %locator%)',
-        '%labelTextMatch%' => './@id = //label[%tagTextMatch%]/@for',
-        '%idMatch%' => './@id = %locator%',
-        '%valueMatch%' => 'contains(./@value, %locator%)',
-        '%idOrValueMatch%' => '(%idMatch% or %valueMatch%)',
-        '%idOrNameMatch%' => '(%idMatch% or ./@name = %locator%)',
-        '%placeholderMatch%' => './@placeholder = %locator%',
-        '%titleMatch%' => 'contains(./@title, %locator%)',
-        '%altMatch%' => 'contains(./@alt, %locator%)',
-        '%relMatch%' => 'contains(./@rel, %locator%)',
-        '%labelAttributeMatch%' => 'contains(./@label, %locator%)',
-
-        // complex replacements
-        '%inputTypeWithoutPlaceholderFilter%' => "%lowercaseType% = 'radio' or %lowercaseType% = 'checkbox' or %lowercaseType% = 'file'",
-        '%fieldFilterWithPlaceholder%' => 'self::input[not(%inputTypeWithoutPlaceholderFilter%)] | self::textarea',
-        '%fieldMatchWithPlaceholder%' => '(%idOrNameMatch% or %labelTextMatch% or %placeholderMatch%)',
-        '%fieldMatchWithoutPlaceholder%' => '(%idOrNameMatch% or %labelTextMatch%)',
-        '%fieldFilterWithoutPlaceholder%' => 'self::input[%inputTypeWithoutPlaceholderFilter%] | self::select',
-        '%buttonTypeFilter%' => "%lowercaseType% = 'submit' or %lowercaseType% = 'image' or %lowercaseType% = 'button' or %lowercaseType% = 'reset'",
-        '%notFieldTypeFilter%' => "not(%buttonTypeFilter% or %lowercaseType% = 'hidden')",
-        '%buttonMatch%' => '%idOrNameMatch% or %valueMatch% or %titleMatch%',
-        '%linkMatch%' => '(%idMatch% or %tagTextMatch% or %titleMatch% or %relMatch%)',
-        '%imgAltMatch%' => './/img[%altMatch%]',
-    );
-
-    private $selectors = array(
-        'fieldset' => <<<XPATH
-.//fieldset
-[(%idMatch% or .//legend[%tagTextMatch%])]
-XPATH
-
-        ,'field' => <<<XPATH
-.//*
-[%fieldFilterWithPlaceholder%][%notFieldTypeFilter%][%fieldMatchWithPlaceholder%]
-|
-.//label[%tagTextMatch%]//.//*[%fieldFilterWithPlaceholder%][%notFieldTypeFilter%]
-|
-.//*
-[%fieldFilterWithoutPlaceholder%][%notFieldTypeFilter%][%fieldMatchWithoutPlaceholder%]
-|
-.//label[%tagTextMatch%]//.//*[%fieldFilterWithoutPlaceholder%][%notFieldTypeFilter%]
-XPATH
-
-        ,'link' => <<<XPATH
-.//a
-[./@href][(%linkMatch% or %imgAltMatch%)]
-|
-.//*
-[%lowercaseRole% = 'link'][(%idOrValueMatch% or %titleMatch% or %tagTextMatch%)]
-XPATH
-
-        ,'button' => <<<XPATH
-.//input
-[%buttonTypeFilter%][(%buttonMatch%)]
-|
-.//input
-[%lowercaseType% = 'image'][%altMatch%]
-|
-.//button
-[(%buttonMatch% or %tagTextMatch%)]
-|
-.//*
-[%lowercaseRole% = 'button'][(%buttonMatch% or %tagTextMatch%)]
-XPATH
-
-        ,'link_or_button' => <<<XPATH
-.//a
-[./@href][(%linkMatch% or %imgAltMatch%)]
-|
-.//input
-[%buttonTypeFilter%][(%idOrValueMatch% or %titleMatch%)]
-|
-.//input
-[%lowercaseType% = 'image'][%altMatch%]
-|
-.//button
-[(%idOrValueMatch% or %titleMatch% or %tagTextMatch%)]
-|
-.//*
-[(%lowercaseRole% = 'button' or %lowercaseRole% = 'link')][(%idOrValueMatch% or %titleMatch% or %tagTextMatch%)]
-XPATH
-
-        ,'content' => <<<XPATH
-./descendant-or-self::*
-[%tagTextMatch%]
-XPATH
-
-        ,'select' => <<<XPATH
-.//select
-[%fieldMatchWithoutPlaceholder%]
-|
-.//label[%tagTextMatch%]//.//select
-XPATH
-
-        ,'checkbox' => <<<XPATH
-.//input
-[%lowercaseType% = 'checkbox'][%fieldMatchWithoutPlaceholder%]
-|
-.//label[%tagTextMatch%]//.//input[%lowercaseType% = 'checkbox']
-XPATH
-
-        ,'radio' => <<<XPATH
-.//input
-[%lowercaseType% = 'radio'][%fieldMatchWithoutPlaceholder%]
-|
-.//label[%tagTextMatch%]//.//input[%lowercaseType% = 'radio']
-XPATH
-
-        ,'file' => <<<XPATH
-.//input
-[%lowercaseType% = 'file'][%fieldMatchWithoutPlaceholder%]
-|
-.//label[%tagTextMatch%]//.//input[%lowercaseType% = 'file']
-XPATH
-
-        ,'optgroup' => <<<XPATH
-.//optgroup
-[%labelAttributeMatch%]
-XPATH
-
-        ,'option' => <<<XPATH
-.//option
-[(./@value = %locator% or %tagTextMatch%)]
-XPATH
-
-        ,'table' => <<<XPATH
-.//table
-[(%idMatch% or .//caption[%tagTextMatch%])]
-XPATH
-        ,'id' => <<<XPATH
-.//*[%idMatch%]
-XPATH
-    ,'id_or_name' => <<<XPATH
-.//*[%idOrNameMatch%]
-XPATH
-    );
-
-    /**
-     * Creates selector instance.
-     */
-    public function __construct()
-    {
-        foreach ($this->replacements as $from => $to) {
-            $this->replacements[$from] = strtr($to, $this->replacements);
-        }
-
-        foreach ($this->selectors as $alias => $selector) {
-            $this->selectors[$alias] = strtr($selector, $this->replacements);
-        }
-    }
-
-    /**
-     * Registers new XPath selector with specified name.
-     *
-     * @param string $name  name for selector
-     * @param string $xpath xpath expression
-     */
-    public function registerNamedXpath($name, $xpath)
-    {
-        $this->selectors[$name] = $xpath;
-    }
-
-    /**
-     * Translates provided locator into XPath.
-     *
-     * @param string|array $locator selector name or array of (selector_name, locator)
-     *
-     * @return string
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function translateToXPath($locator)
-    {
-        if (2 < count($locator)) {
-            throw new \InvalidArgumentException('NamedSelector expects array(name, locator) as argument');
-        }
-
-        if (2 == count($locator)) {
-            $selector   = $locator[0];
-            $locator    = $locator[1];
-        } else {
-            $selector   = (string) $locator;
-            $locator    = null;
-        }
-
-        if (!isset($this->selectors[$selector])) {
-            throw new \InvalidArgumentException(sprintf(
-                'Unknown named selector provided: "%s". Expected one of (%s)',
-                $selector,
-                implode(', ', array_keys($this->selectors))
-            ));
-        }
-
-        $xpath = $this->selectors[$selector];
-
-        if (null !== $locator) {
-            $xpath = strtr($xpath, array('%locator%' => $locator));
-        }
-
-        return $xpath;
-    }
-
-    /**
-     * Registers a replacement in the list of replacements
-     *
-     * This method must be called in the constructor before calling the parent constructor.
-     *
-     * @param string $from
-     * @param string $to
-     */
-    protected function registerReplacement($from, $to)
-    {
-        $this->replacements[$from] = $to;
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/PartialNamedSelector.php b/core/vendor/behat/mink/src/Selector/PartialNamedSelector.php
deleted file mode 100644
index b864a22..0000000
--- a/core/vendor/behat/mink/src/Selector/PartialNamedSelector.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector;
-
-/**
- * Named selectors engine. Uses registered XPath selectors to create new expressions.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class PartialNamedSelector extends NamedSelector
-{
-    public function __construct()
-    {
-        $this->registerReplacement('%tagTextMatch%', 'contains(normalize-space(string(.)), %locator%)');
-        $this->registerReplacement('%valueMatch%', 'contains(./@value, %locator%)');
-        $this->registerReplacement('%titleMatch%', 'contains(./@title, %locator%)');
-        $this->registerReplacement('%altMatch%', 'contains(./@alt, %locator%)');
-        $this->registerReplacement('%relMatch%', 'contains(./@rel, %locator%)');
-        $this->registerReplacement('%labelAttributeMatch%', 'contains(./@label, %locator%)');
-
-        parent::__construct();
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/SelectorInterface.php b/core/vendor/behat/mink/src/Selector/SelectorInterface.php
deleted file mode 100644
index e4f5f17..0000000
--- a/core/vendor/behat/mink/src/Selector/SelectorInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector;
-
-/**
- * Mink selector engine interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface SelectorInterface
-{
-    /**
-     * Translates provided locator into XPath.
-     *
-     * @param string|array $locator current selector locator
-     *
-     * @return string
-     */
-    public function translateToXPath($locator);
-}
diff --git a/core/vendor/behat/mink/src/Selector/SelectorsHandler.php b/core/vendor/behat/mink/src/Selector/SelectorsHandler.php
deleted file mode 100644
index a19de67..0000000
--- a/core/vendor/behat/mink/src/Selector/SelectorsHandler.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector;
-
-use Behat\Mink\Selector\Xpath\Escaper;
-
-/**
- * Selectors handler.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class SelectorsHandler
-{
-    private $selectors;
-    private $escaper;
-
-    /**
-     * Initializes selectors handler.
-     *
-     * @param SelectorInterface[] $selectors default selectors to register
-     */
-    public function __construct(array $selectors = array())
-    {
-        $this->escaper = new Escaper();
-
-        $this->registerSelector('named_partial', new PartialNamedSelector());
-        $this->registerSelector('named_exact', new ExactNamedSelector());
-        $this->registerSelector('css', new CssSelector());
-
-        foreach ($selectors as $name => $selector) {
-            $this->registerSelector($name, $selector);
-        }
-    }
-
-    /**
-     * Registers new selector engine with specified name.
-     *
-     * @param string            $name     selector engine name
-     * @param SelectorInterface $selector selector engine instance
-     */
-    public function registerSelector($name, SelectorInterface $selector)
-    {
-        $this->selectors[$name] = $selector;
-    }
-
-    /**
-     * Checks whether selector with specified name is registered on handler.
-     *
-     * @param string $name selector engine name
-     *
-     * @return Boolean
-     */
-    public function isSelectorRegistered($name)
-    {
-        return isset($this->selectors[$name]);
-    }
-
-    /**
-     * Returns selector engine with specified name.
-     *
-     * @param string $name selector engine name
-     *
-     * @return SelectorInterface
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function getSelector($name)
-    {
-        if ('named' === $name) {
-            trigger_error(
-                'Using the "named" selector directly from the handler is deprecated as of 1.6 and will be removed in 2.0.'
-                .' Use the "named_partial" or use the "named" selector through the Element API instead.',
-                E_USER_DEPRECATED
-            );
-            $name = 'named_partial';
-        }
-
-        if (!$this->isSelectorRegistered($name)) {
-            throw new \InvalidArgumentException("Selector \"$name\" is not registered.");
-        }
-
-        return $this->selectors[$name];
-    }
-
-    /**
-     * Translates selector with specified name to XPath.
-     *
-     * @param string       $selector selector engine name (registered)
-     * @param string|array $locator  selector locator (an array or a string depending of the selector being used)
-     *
-     * @return string
-     */
-    public function selectorToXpath($selector, $locator)
-    {
-        if ('xpath' === $selector) {
-            if (!is_string($locator)) {
-                throw new \InvalidArgumentException('The xpath selector expects to get a string as locator');
-            }
-
-            return $locator;
-        }
-
-        return $this->getSelector($selector)->translateToXPath($locator);
-    }
-
-    /**
-     * Translates string to XPath literal.
-     *
-     * @param string $s
-     *
-     * @return string
-     */
-    public function xpathLiteral($s)
-    {
-        return $this->escaper->escapeLiteral($s);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/Xpath/Escaper.php b/core/vendor/behat/mink/src/Selector/Xpath/Escaper.php
deleted file mode 100644
index be35000..0000000
--- a/core/vendor/behat/mink/src/Selector/Xpath/Escaper.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector\Xpath;
-
-/**
- * XPath escaper.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Escaper
-{
-    /**
-     * Escapes the string as a XPath literal.
-     *
-     * @param string $s
-     *
-     * @return string
-     */
-    public function escapeLiteral($s)
-    {
-        if (false === strpos($s, "'")) {
-            return sprintf("'%s'", $s);
-        }
-
-        if (false === strpos($s, '"')) {
-            return sprintf('"%s"', $s);
-        }
-
-        $string = $s;
-        $parts = array();
-        while (true) {
-            if (false !== $pos = strpos($string, "'")) {
-                $parts[] = sprintf("'%s'", substr($string, 0, $pos));
-                $parts[] = "\"'\"";
-                $string = substr($string, $pos + 1);
-            } else {
-                $parts[] = "'$string'";
-                break;
-            }
-        }
-
-        return sprintf("concat(%s)", implode($parts, ','));
-    }
-}
diff --git a/core/vendor/behat/mink/src/Selector/Xpath/Manipulator.php b/core/vendor/behat/mink/src/Selector/Xpath/Manipulator.php
deleted file mode 100644
index 116650a..0000000
--- a/core/vendor/behat/mink/src/Selector/Xpath/Manipulator.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink\Selector\Xpath;
-
-/**
- * XPath manipulation utility.
- *
- * @author Graham Bates
- * @author Christophe Coevoet <stof@notk.org>
- */
-class Manipulator
-{
-    /**
-     * Regex to find union operators not inside brackets.
-     */
-    const UNION_PATTERN = '/\|(?![^\[]*\])/';
-
-    /**
-     * Prepends the XPath prefix to the given XPath.
-     *
-     * The returned XPath will match elements matching the XPath inside an element
-     * matching the prefix.
-     *
-     * @param string $xpath
-     * @param string $prefix
-     *
-     * @return string
-     */
-    public function prepend($xpath, $prefix)
-    {
-        $expressions = array();
-
-        // If the xpath prefix contains a union we need to wrap it in parentheses.
-        if (preg_match(self::UNION_PATTERN, $prefix)) {
-            $prefix = '('.$prefix.')';
-        }
-
-        // Split any unions into individual expressions.
-        foreach (preg_split(self::UNION_PATTERN, $xpath) as $expression) {
-            $expression = trim($expression);
-            $parenthesis = '';
-
-            // If the union is inside some braces, we need to preserve the opening braces and apply
-            // the prefix only inside it.
-            if (preg_match('/^[\(\s*]+/', $expression, $matches)) {
-                $parenthesis = $matches[0];
-                $expression = substr($expression, strlen($parenthesis));
-            }
-
-            // add prefix before element selector
-            if (0 === strpos($expression, '/')) {
-                $expression = $prefix.$expression;
-            } else {
-                $expression = $prefix.'/'.$expression;
-            }
-            $expressions[] = $parenthesis.$expression;
-        }
-
-        return implode(' | ', $expressions);
-    }
-}
diff --git a/core/vendor/behat/mink/src/Session.php b/core/vendor/behat/mink/src/Session.php
deleted file mode 100644
index c67f7f9..0000000
--- a/core/vendor/behat/mink/src/Session.php
+++ /dev/null
@@ -1,352 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink;
-
-use Behat\Mink\Driver\DriverInterface;
-use Behat\Mink\Selector\SelectorsHandler;
-use Behat\Mink\Element\DocumentElement;
-
-/**
- * Mink session.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Session
-{
-    private $driver;
-    private $page;
-    private $selectorsHandler;
-
-    /**
-     * Initializes session.
-     *
-     * @param DriverInterface  $driver
-     * @param SelectorsHandler $selectorsHandler
-     */
-    public function __construct(DriverInterface $driver, SelectorsHandler $selectorsHandler = null)
-    {
-        $driver->setSession($this);
-
-        if (null === $selectorsHandler) {
-            $selectorsHandler = new SelectorsHandler();
-        }
-
-        $this->driver           = $driver;
-        $this->selectorsHandler = $selectorsHandler;
-        $this->page             = new DocumentElement($this);
-    }
-
-    /**
-     * Checks whether session (driver) was started.
-     *
-     * @return Boolean
-     */
-    public function isStarted()
-    {
-        return $this->driver->isStarted();
-    }
-
-    /**
-     * Starts session driver.
-     *
-     * Calling any action before visiting a page is an undefined behavior.
-     * The only supported method calls on a fresh driver are
-     * - visit()
-     * - setRequestHeader()
-     * - setBasicAuth()
-     * - reset()
-     * - stop()
-     */
-    public function start()
-    {
-        $this->driver->start();
-    }
-
-    /**
-     * Stops session driver.
-     */
-    public function stop()
-    {
-        $this->driver->stop();
-    }
-
-    /**
-     * Restart session driver.
-     */
-    public function restart()
-    {
-        $this->driver->stop();
-        $this->driver->start();
-    }
-
-    /**
-     * Reset session driver state.
-     *
-     * Calling any action before visiting a page is an undefined behavior.
-     * The only supported method calls on a fresh driver are
-     * - visit()
-     * - setRequestHeader()
-     * - setBasicAuth()
-     * - reset()
-     * - stop()
-     */
-    public function reset()
-    {
-        $this->driver->reset();
-    }
-
-    /**
-     * Returns session driver.
-     *
-     * @return DriverInterface
-     */
-    public function getDriver()
-    {
-        return $this->driver;
-    }
-
-    /**
-     * Returns page element.
-     *
-     * @return DocumentElement
-     */
-    public function getPage()
-    {
-        return $this->page;
-    }
-
-    /**
-     * Returns selectors handler.
-     *
-     * @return SelectorsHandler
-     */
-    public function getSelectorsHandler()
-    {
-        return $this->selectorsHandler;
-    }
-
-    /**
-     * Visit specified URL.
-     *
-     * @param string $url url of the page
-     */
-    public function visit($url)
-    {
-        $this->driver->visit($url);
-    }
-
-    /**
-     * Sets HTTP Basic authentication parameters
-     *
-     * @param string|Boolean $user     user name or false to disable authentication
-     * @param string         $password password
-     */
-    public function setBasicAuth($user, $password = '')
-    {
-        $this->driver->setBasicAuth($user, $password);
-    }
-
-    /**
-     * Sets specific request header.
-     *
-     * @param string $name
-     * @param string $value
-     */
-    public function setRequestHeader($name, $value)
-    {
-        $this->driver->setRequestHeader($name, $value);
-    }
-
-    /**
-     * Returns all response headers.
-     *
-     * @return array
-     */
-    public function getResponseHeaders()
-    {
-        return $this->driver->getResponseHeaders();
-    }
-
-    /**
-     * Sets cookie.
-     *
-     * @param string $name
-     * @param string $value
-     */
-    public function setCookie($name, $value = null)
-    {
-        $this->driver->setCookie($name, $value);
-    }
-
-    /**
-     * Returns cookie by name.
-     *
-     * @param string $name
-     *
-     * @return string|null
-     */
-    public function getCookie($name)
-    {
-        return $this->driver->getCookie($name);
-    }
-
-    /**
-     * Returns response status code.
-     *
-     * @return integer
-     */
-    public function getStatusCode()
-    {
-        return $this->driver->getStatusCode();
-    }
-
-    /**
-     * Returns current URL address.
-     *
-     * @return string
-     */
-    public function getCurrentUrl()
-    {
-        return $this->driver->getCurrentUrl();
-    }
-
-    /**
-     * Capture a screenshot of the current window.
-     *
-     * @return string screenshot of MIME type image/* depending
-     *                on driver (e.g., image/png, image/jpeg)
-     */
-    public function getScreenshot()
-    {
-        return $this->driver->getScreenshot();
-    }
-
-    /**
-     * Return the names of all open windows
-     *
-     * @return array Array of all open window's names.
-     */
-    public function getWindowNames()
-    {
-        return $this->driver->getWindowNames();
-    }
-
-    /**
-     * Return the name of the currently active window
-     *
-     * @return string The name of the current window.
-     */
-    public function getWindowName()
-    {
-        return $this->driver->getWindowName();
-    }
-
-    /**
-     * Reloads current session page.
-     */
-    public function reload()
-    {
-        $this->driver->reload();
-    }
-
-    /**
-     * Moves backward 1 page in history.
-     */
-    public function back()
-    {
-        $this->driver->back();
-    }
-
-    /**
-     * Moves forward 1 page in history.
-     */
-    public function forward()
-    {
-        $this->driver->forward();
-    }
-
-    /**
-     * Switches to specific browser window.
-     *
-     * @param string $name window name (null for switching back to main window)
-     */
-    public function switchToWindow($name = null)
-    {
-        $this->driver->switchToWindow($name);
-    }
-
-    /**
-     * Switches to specific iFrame.
-     *
-     * @param string $name iframe name (null for switching back)
-     */
-    public function switchToIFrame($name = null)
-    {
-        $this->driver->switchToIFrame($name);
-    }
-
-    /**
-     * Execute JS in browser.
-     *
-     * @param string $script javascript
-     */
-    public function executeScript($script)
-    {
-        $this->driver->executeScript($script);
-    }
-
-    /**
-     * Execute JS in browser and return it's response.
-     *
-     * @param string $script javascript
-     *
-     * @return string
-     */
-    public function evaluateScript($script)
-    {
-        return $this->driver->evaluateScript($script);
-    }
-
-    /**
-     * Waits some time or until JS condition turns true.
-     *
-     * @param integer $time      time in milliseconds
-     * @param string  $condition JS condition
-     *
-     * @return boolean
-     */
-    public function wait($time, $condition = 'false')
-    {
-        return $this->driver->wait($time, $condition);
-    }
-
-    /**
-     * Set the dimensions of the window.
-     *
-     * @param integer $width  set the window width, measured in pixels
-     * @param integer $height set the window height, measured in pixels
-     * @param string  $name   window name (null for the main window)
-     */
-    public function resizeWindow($width, $height, $name = null)
-    {
-        $this->driver->resizeWindow($width, $height, $name);
-    }
-
-    /**
-     * Maximize the window if it is not maximized already
-     *
-     * @param string $name window name (null for the main window)
-     */
-    public function maximizeWindow($name = null)
-    {
-        $this->driver->maximizeWindow($name);
-    }
-}
diff --git a/core/vendor/behat/mink/src/WebAssert.php b/core/vendor/behat/mink/src/WebAssert.php
deleted file mode 100644
index 127c3c1..0000000
--- a/core/vendor/behat/mink/src/WebAssert.php
+++ /dev/null
@@ -1,749 +0,0 @@
-<?php
-
-/*
- * This file is part of the Mink package.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Mink;
-
-use Behat\Mink\Element\Element;
-use Behat\Mink\Element\ElementInterface;
-use Behat\Mink\Element\NodeElement;
-use Behat\Mink\Element\TraversableElement;
-use Behat\Mink\Exception\ElementNotFoundException;
-use Behat\Mink\Exception\ExpectationException;
-use Behat\Mink\Exception\ResponseTextException;
-use Behat\Mink\Exception\ElementHtmlException;
-use Behat\Mink\Exception\ElementTextException;
-
-/**
- * Mink web assertions tool.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class WebAssert
-{
-    protected $session;
-
-    /**
-     * Initializes assertion engine.
-     *
-     * @param Session $session
-     */
-    public function __construct(Session $session)
-    {
-        $this->session = $session;
-    }
-
-    /**
-     * Checks that current session address is equals to provided one.
-     *
-     * @param string $page
-     *
-     * @throws ExpectationException
-     */
-    public function addressEquals($page)
-    {
-        $expected = $this->cleanUrl($page);
-        $actual   = $this->getCurrentUrlPath();
-
-        $this->assert($actual === $expected, sprintf('Current page is "%s", but "%s" expected.', $actual, $expected));
-    }
-
-    /**
-     * Checks that current session address is not equals to provided one.
-     *
-     * @param string $page
-     *
-     * @throws ExpectationException
-     */
-    public function addressNotEquals($page)
-    {
-        $expected = $this->cleanUrl($page);
-        $actual   = $this->getCurrentUrlPath();
-
-        $this->assert($actual !== $expected, sprintf('Current page is "%s", but should not be.', $actual));
-    }
-
-    /**
-     * Checks that current session address matches regex.
-     *
-     * @param string $regex
-     *
-     * @throws ExpectationException
-     */
-    public function addressMatches($regex)
-    {
-        $actual = $this->getCurrentUrlPath();
-        $message = sprintf('Current page "%s" does not match the regex "%s".', $actual, $regex);
-
-        $this->assert((bool) preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that specified cookie exists and its value equals to a given one
-     *
-     * @param string $name  cookie name
-     * @param string $value cookie value
-     *
-     * @throws ExpectationException
-     */
-    public function cookieEquals($name, $value)
-    {
-        $this->cookieExists($name);
-
-        $actualValue = $this->session->getCookie($name);
-        $message = sprintf('Cookie "%s" value is "%s", but should be "%s".', $name, $actualValue, $value);
-
-        $this->assert($actualValue == $value, $message);
-    }
-
-    /**
-     * Checks that specified cookie exists
-     *
-     * @param string $name cookie name
-     *
-     * @throws ExpectationException
-     */
-    public function cookieExists($name)
-    {
-        $message = sprintf('Cookie "%s" is not set, but should be.', $name);
-        $this->assert($this->session->getCookie($name) !== null, $message);
-    }
-
-    /**
-     * Checks that current response code equals to provided one.
-     *
-     * @param integer $code
-     *
-     * @throws ExpectationException
-     */
-    public function statusCodeEquals($code)
-    {
-        $actual = $this->session->getStatusCode();
-        $message = sprintf('Current response status code is %d, but %d expected.', $actual, $code);
-
-        $this->assert(intval($code) === intval($actual), $message);
-    }
-
-    /**
-     * Checks that current response code not equals to provided one.
-     *
-     * @param integer $code
-     *
-     * @throws ExpectationException
-     */
-    public function statusCodeNotEquals($code)
-    {
-        $actual = $this->session->getStatusCode();
-        $message = sprintf('Current response status code is %d, but should not be.', $actual);
-
-        $this->assert(intval($code) !== intval($actual), $message);
-    }
-
-    /**
-     * Checks that current page contains text.
-     *
-     * @param string $text
-     *
-     * @throws ResponseTextException
-     */
-    public function pageTextContains($text)
-    {
-        $actual = $this->session->getPage()->getText();
-        $actual = preg_replace('/\s+/u', ' ', $actual);
-        $regex  = '/'.preg_quote($text, '/').'/ui';
-        $message = sprintf('The text "%s" was not found anywhere in the text of the current page.', $text);
-
-        $this->assertResponseText((bool) preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that current page does not contains text.
-     *
-     * @param string $text
-     *
-     * @throws ResponseTextException
-     */
-    public function pageTextNotContains($text)
-    {
-        $actual = $this->session->getPage()->getText();
-        $actual = preg_replace('/\s+/u', ' ', $actual);
-        $regex  = '/'.preg_quote($text, '/').'/ui';
-        $message = sprintf('The text "%s" appears in the text of this page, but it should not.', $text);
-
-        $this->assertResponseText(!preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that current page text matches regex.
-     *
-     * @param string $regex
-     *
-     * @throws ResponseTextException
-     */
-    public function pageTextMatches($regex)
-    {
-        $actual = $this->session->getPage()->getText();
-        $message = sprintf('The pattern %s was not found anywhere in the text of the current page.', $regex);
-
-        $this->assertResponseText((bool) preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that current page text does not matches regex.
-     *
-     * @param string $regex
-     *
-     * @throws ResponseTextException
-     */
-    public function pageTextNotMatches($regex)
-    {
-        $actual = $this->session->getPage()->getText();
-        $message = sprintf('The pattern %s was found in the text of the current page, but it should not.', $regex);
-
-        $this->assertResponseText(!preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that page HTML (response content) contains text.
-     *
-     * @param string $text
-     *
-     * @throws ExpectationException
-     */
-    public function responseContains($text)
-    {
-        $actual = $this->session->getPage()->getContent();
-        $regex  = '/'.preg_quote($text, '/').'/ui';
-        $message = sprintf('The string "%s" was not found anywhere in the HTML response of the current page.', $text);
-
-        $this->assert((bool) preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that page HTML (response content) does not contains text.
-     *
-     * @param string $text
-     *
-     * @throws ExpectationException
-     */
-    public function responseNotContains($text)
-    {
-        $actual = $this->session->getPage()->getContent();
-        $regex  = '/'.preg_quote($text, '/').'/ui';
-        $message = sprintf('The string "%s" appears in the HTML response of this page, but it should not.', $text);
-
-        $this->assert(!preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that page HTML (response content) matches regex.
-     *
-     * @param string $regex
-     *
-     * @throws ExpectationException
-     */
-    public function responseMatches($regex)
-    {
-        $actual = $this->session->getPage()->getContent();
-        $message = sprintf('The pattern %s was not found anywhere in the HTML response of the page.', $regex);
-
-        $this->assert((bool) preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that page HTML (response content) does not matches regex.
-     *
-     * @param $regex
-     *
-     * @throws ExpectationException
-     */
-    public function responseNotMatches($regex)
-    {
-        $actual = $this->session->getPage()->getContent();
-        $message = sprintf('The pattern %s was found in the HTML response of the page, but it should not.', $regex);
-
-        $this->assert(!preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that there is specified number of specific elements on the page.
-     *
-     * @param string           $selectorType element selector type (css, xpath)
-     * @param string|array     $selector     element selector
-     * @param integer          $count        expected count
-     * @param ElementInterface $container    document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function elementsCount($selectorType, $selector, $count, ElementInterface $container = null)
-    {
-        $container = $container ?: $this->session->getPage();
-        $nodes = $container->findAll($selectorType, $selector);
-
-        $message = sprintf(
-            '%d %s found on the page, but should be %d.',
-            count($nodes),
-            $this->getMatchingElementRepresentation($selectorType, $selector, count($nodes) !== 1),
-            $count
-        );
-
-        $this->assert(intval($count) === count($nodes), $message);
-    }
-
-    /**
-     * Checks that specific element exists on the current page.
-     *
-     * @param string           $selectorType element selector type (css, xpath)
-     * @param string|array     $selector     element selector
-     * @param ElementInterface $container    document to check against
-     *
-     * @return NodeElement
-     *
-     * @throws ElementNotFoundException
-     */
-    public function elementExists($selectorType, $selector, ElementInterface $container = null)
-    {
-        $container = $container ?: $this->session->getPage();
-        $node = $container->find($selectorType, $selector);
-
-        if (null === $node) {
-            if (is_array($selector)) {
-                $selector = implode(' ', $selector);
-            }
-
-            throw new ElementNotFoundException($this->session, 'element', $selectorType, $selector);
-        }
-
-        return $node;
-    }
-
-    /**
-     * Checks that specific element does not exists on the current page.
-     *
-     * @param string           $selectorType element selector type (css, xpath)
-     * @param string|array     $selector     element selector
-     * @param ElementInterface $container    document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function elementNotExists($selectorType, $selector, ElementInterface $container = null)
-    {
-        $container = $container ?: $this->session->getPage();
-        $node = $container->find($selectorType, $selector);
-
-        $message = sprintf(
-            'An %s appears on this page, but it should not.',
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assert(null === $node, $message);
-    }
-
-    /**
-     * Checks that specific element contains text.
-     *
-     * @param string       $selectorType element selector type (css, xpath)
-     * @param string|array $selector     element selector
-     * @param string       $text         expected text
-     *
-     * @throws ElementTextException
-     */
-    public function elementTextContains($selectorType, $selector, $text)
-    {
-        $element = $this->elementExists($selectorType, $selector);
-        $actual  = $element->getText();
-        $regex   = '/'.preg_quote($text, '/').'/ui';
-
-        $message = sprintf(
-            'The text "%s" was not found in the text of the %s.',
-            $text,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElementText((bool) preg_match($regex, $actual), $message, $element);
-    }
-
-    /**
-     * Checks that specific element does not contains text.
-     *
-     * @param string       $selectorType element selector type (css, xpath)
-     * @param string|array $selector     element selector
-     * @param string       $text         expected text
-     *
-     * @throws ElementTextException
-     */
-    public function elementTextNotContains($selectorType, $selector, $text)
-    {
-        $element = $this->elementExists($selectorType, $selector);
-        $actual  = $element->getText();
-        $regex   = '/'.preg_quote($text, '/').'/ui';
-
-        $message = sprintf(
-            'The text "%s" appears in the text of the %s, but it should not.',
-            $text,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElementText(!preg_match($regex, $actual), $message, $element);
-    }
-
-    /**
-     * Checks that specific element contains HTML.
-     *
-     * @param string       $selectorType element selector type (css, xpath)
-     * @param string|array $selector     element selector
-     * @param string       $html         expected text
-     *
-     * @throws ElementHtmlException
-     */
-    public function elementContains($selectorType, $selector, $html)
-    {
-        $element = $this->elementExists($selectorType, $selector);
-        $actual  = $element->getHtml();
-        $regex   = '/'.preg_quote($html, '/').'/ui';
-
-        $message = sprintf(
-            'The string "%s" was not found in the HTML of the %s.',
-            $html,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElement((bool) preg_match($regex, $actual), $message, $element);
-    }
-
-    /**
-     * Checks that specific element does not contains HTML.
-     *
-     * @param string       $selectorType element selector type (css, xpath)
-     * @param string|array $selector     element selector
-     * @param string       $html         expected text
-     *
-     * @throws ElementHtmlException
-     */
-    public function elementNotContains($selectorType, $selector, $html)
-    {
-        $element = $this->elementExists($selectorType, $selector);
-        $actual  = $element->getHtml();
-        $regex   = '/'.preg_quote($html, '/').'/ui';
-
-        $message = sprintf(
-            'The string "%s" appears in the HTML of the %s, but it should not.',
-            $html,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElement(!preg_match($regex, $actual), $message, $element);
-    }
-
-    /**
-     * Checks that an attribute exists in an element.
-     *
-     * @param string       $selectorType
-     * @param string|array $selector
-     * @param string       $attribute
-     *
-     * @return NodeElement
-     *
-     * @throws ElementHtmlException
-     */
-    public function elementAttributeExists($selectorType, $selector, $attribute)
-    {
-        $element = $this->elementExists($selectorType, $selector);
-
-        $message = sprintf(
-            'The attribute "%s" was not found in the %s.',
-            $attribute,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElement($element->hasAttribute($attribute), $message, $element);
-
-        return $element;
-    }
-
-    /**
-     * Checks that an attribute of a specific elements contains text.
-     *
-     * @param string       $selectorType
-     * @param string|array $selector
-     * @param string       $attribute
-     * @param string       $text
-     *
-     * @throws ElementHtmlException
-     */
-    public function elementAttributeContains($selectorType, $selector, $attribute, $text)
-    {
-        $element = $this->elementAttributeExists($selectorType, $selector, $attribute);
-        $actual  = $element->getAttribute($attribute);
-        $regex   = '/'.preg_quote($text, '/').'/ui';
-
-        $message = sprintf(
-            'The text "%s" was not found in the attribute "%s" of the %s.',
-            $text,
-            $attribute,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElement((bool) preg_match($regex, $actual), $message, $element);
-    }
-
-    /**
-     * Checks that an attribute of a specific elements does not contain text.
-     *
-     * @param string       $selectorType
-     * @param string|array $selector
-     * @param string       $attribute
-     * @param string       $text
-     *
-     * @throws ElementHtmlException
-     */
-    public function elementAttributeNotContains($selectorType, $selector, $attribute, $text)
-    {
-        $element = $this->elementAttributeExists($selectorType, $selector, $attribute);
-        $actual  = $element->getAttribute($attribute);
-        $regex   = '/'.preg_quote($text, '/').'/ui';
-
-        $message = sprintf(
-            'The text "%s" was found in the attribute "%s" of the %s.',
-            $text,
-            $attribute,
-            $this->getMatchingElementRepresentation($selectorType, $selector)
-        );
-
-        $this->assertElement(!preg_match($regex, $actual), $message, $element);
-    }
-
-    /**
-     * Checks that specific field exists on the current page.
-     *
-     * @param string             $field     field id|name|label|value
-     * @param TraversableElement $container document to check against
-     *
-     * @return NodeElement
-     *
-     * @throws ElementNotFoundException
-     */
-    public function fieldExists($field, TraversableElement $container = null)
-    {
-        $container = $container ?: $this->session->getPage();
-        $node = $container->findField($field);
-
-        if (null === $node) {
-            throw new ElementNotFoundException($this->session, 'form field', 'id|name|label|value', $field);
-        }
-
-        return $node;
-    }
-
-    /**
-     * Checks that specific field does not exists on the current page.
-     *
-     * @param string             $field     field id|name|label|value
-     * @param TraversableElement $container document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function fieldNotExists($field, TraversableElement $container = null)
-    {
-        $container = $container ?: $this->session->getPage();
-        $node = $container->findField($field);
-
-        $this->assert(null === $node, sprintf('A field "%s" appears on this page, but it should not.', $field));
-    }
-
-    /**
-     * Checks that specific field have provided value.
-     *
-     * @param string             $field     field id|name|label|value
-     * @param string             $value     field value
-     * @param TraversableElement $container document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function fieldValueEquals($field, $value, TraversableElement $container = null)
-    {
-        $node   = $this->fieldExists($field, $container);
-        $actual = $node->getValue();
-        $regex  = '/^'.preg_quote($value, '/').'$/ui';
-
-        $message = sprintf('The field "%s" value is "%s", but "%s" expected.', $field, $actual, $value);
-
-        $this->assert((bool) preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that specific field have provided value.
-     *
-     * @param string             $field     field id|name|label|value
-     * @param string             $value     field value
-     * @param TraversableElement $container document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function fieldValueNotEquals($field, $value, TraversableElement $container = null)
-    {
-        $node   = $this->fieldExists($field, $container);
-        $actual = $node->getValue();
-        $regex  = '/^'.preg_quote($value, '/').'$/ui';
-
-        $message = sprintf('The field "%s" value is "%s", but it should not be.', $field, $actual);
-
-        $this->assert(!preg_match($regex, $actual), $message);
-    }
-
-    /**
-     * Checks that specific checkbox is checked.
-     *
-     * @param string             $field     field id|name|label|value
-     * @param TraversableElement $container document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function checkboxChecked($field, TraversableElement $container = null)
-    {
-        $node = $this->fieldExists($field, $container);
-
-        $this->assert($node->isChecked(), sprintf('Checkbox "%s" is not checked, but it should be.', $field));
-    }
-
-    /**
-     * Checks that specific checkbox is unchecked.
-     *
-     * @param string             $field     field id|name|label|value
-     * @param TraversableElement $container document to check against
-     *
-     * @throws ExpectationException
-     */
-    public function checkboxNotChecked($field, TraversableElement $container = null)
-    {
-        $node = $this->fieldExists($field, $container);
-
-        $this->assert(!$node->isChecked(), sprintf('Checkbox "%s" is checked, but it should not be.', $field));
-    }
-
-    /**
-     * Gets current url of the page.
-     *
-     * @return string
-     */
-    protected function getCurrentUrlPath()
-    {
-        return $this->cleanUrl($this->session->getCurrentUrl());
-    }
-
-    /**
-     * Trims scriptname from the URL.
-     *
-     * @param string $url
-     *
-     * @return string
-     */
-    protected function cleanUrl($url)
-    {
-        $parts = parse_url($url);
-        $fragment = empty($parts['fragment']) ? '' : '#'.$parts['fragment'];
-        $path = empty($parts['path']) ? '/' : $parts['path'];
-
-        return preg_replace('/^\/[^\.\/]+\.php/', '', $path).$fragment;
-    }
-
-    /**
-     * Asserts a condition.
-     *
-     * @param bool   $condition
-     * @param string $message   Failure message
-     *
-     * @throws ExpectationException when the condition is not fulfilled
-     */
-    private function assert($condition, $message)
-    {
-        if ($condition) {
-            return;
-        }
-
-        throw new ExpectationException($message, $this->session);
-    }
-
-    /**
-     * Asserts a condition involving the response text.
-     *
-     * @param bool   $condition
-     * @param string $message   Failure message
-     *
-     * @throws ResponseTextException when the condition is not fulfilled
-     */
-    private function assertResponseText($condition, $message)
-    {
-        if ($condition) {
-            return;
-        }
-
-        throw new ResponseTextException($message, $this->session);
-    }
-
-    /**
-     * Asserts a condition on an element.
-     *
-     * @param bool    $condition
-     * @param string  $message   Failure message
-     * @param Element $element
-     *
-     * @throws ElementHtmlException when the condition is not fulfilled
-     */
-    private function assertElement($condition, $message, Element $element)
-    {
-        if ($condition) {
-            return;
-        }
-
-        throw new ElementHtmlException($message, $this->session, $element);
-    }
-
-    /**
-     * Asserts a condition involving the text of an element.
-     *
-     * @param bool    $condition
-     * @param string  $message   Failure message
-     * @param Element $element
-     *
-     * @throws ElementTextException when the condition is not fulfilled
-     */
-    private function assertElementText($condition, $message, Element $element)
-    {
-        if ($condition) {
-            return;
-        }
-
-        throw new ElementTextException($message, $this->session, $element);
-    }
-
-    /**
-     * @param string       $selectorType
-     * @param string|array $selector
-     * @param boolean      $plural
-     *
-     * @return string
-     */
-    private function getMatchingElementRepresentation($selectorType, $selector, $plural = false)
-    {
-        $pluralization = $plural ? 's' : '';
-
-        if (in_array($selectorType, array('named', 'named_exact', 'named_partial'))
-            && is_array($selector) && 2 === count($selector)
-        ) {
-            return sprintf('%s%s matching locator "%s"', $selector[0], $pluralization, $selector[1]);
-        }
-
-        if (is_array($selector)) {
-            $selector = implode(' ', $selector);
-        }
-
-        return sprintf('element%s matching %s "%s"', $pluralization, $selectorType, $selector);
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Driver/CoreDriverTest.php b/core/vendor/behat/mink/tests/Driver/CoreDriverTest.php
deleted file mode 100644
index d99b17f..0000000
--- a/core/vendor/behat/mink/tests/Driver/CoreDriverTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Driver;
-
-class CoreDriverTest extends \PHPUnit_Framework_TestCase
-{
-    public function testNoExtraMethods()
-    {
-        $interfaceRef = new \ReflectionClass('Behat\Mink\Driver\DriverInterface');
-        $coreDriverRef = new \ReflectionClass('Behat\Mink\Driver\CoreDriver');
-
-        foreach ($coreDriverRef->getMethods(\ReflectionMethod::IS_PUBLIC) as $method) {
-            $this->assertTrue(
-                $interfaceRef->hasMethod($method->getName()),
-                sprintf('CoreDriver should not implement methods which are not part of the DriverInterface but %s found', $method->getName())
-            );
-        }
-    }
-
-    /**
-     * @dataProvider getDriverInterfaceMethods
-     */
-    public function testInterfaceMethods(\ReflectionMethod $method)
-    {
-        $refl = new \ReflectionClass('Behat\Mink\Driver\CoreDriver');
-
-        $this->assertFalse(
-            $refl->getMethod($method->getName())->isAbstract(),
-            sprintf('CoreDriver should implement a dummy %s method', $method->getName())
-        );
-
-        $driver = $this->getMockForAbstractClass('Behat\Mink\Driver\CoreDriver');
-
-        $this->setExpectedException('Behat\Mink\Exception\UnsupportedDriverActionException');
-        call_user_func_array(array($driver, $method->getName()), $this->getArguments($method));
-    }
-
-    public function getDriverInterfaceMethods()
-    {
-        $ref = new \ReflectionClass('Behat\Mink\Driver\DriverInterface');
-
-        return array_map(function ($method) {
-            return array($method);
-        }, $ref->getMethods());
-    }
-
-    private function getArguments(\ReflectionMethod $method)
-    {
-        $arguments = array();
-
-        foreach ($method->getParameters() as $parameter) {
-            $arguments[] = $this->getArgument($parameter);
-        }
-
-        return $arguments;
-    }
-
-    private function getArgument(\ReflectionParameter $argument)
-    {
-        if ($argument->isOptional()) {
-            return $argument->getDefaultValue();
-        }
-
-        if ($argument->allowsNull()) {
-            return null;
-        }
-
-        if ($argument->getClass()) {
-            return $this->getMockBuilder($argument->getClass()->getName())
-                ->disableOriginalConstructor()
-                ->getMock();
-        }
-
-        return null;
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Element/DocumentElementTest.php b/core/vendor/behat/mink/tests/Element/DocumentElementTest.php
deleted file mode 100644
index bacd06d..0000000
--- a/core/vendor/behat/mink/tests/Element/DocumentElementTest.php
+++ /dev/null
@@ -1,446 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Element;
-
-use Behat\Mink\Element\DocumentElement;
-
-class DocumentElementTest extends ElementTest
-{
-    /**
-     * Page.
-     *
-     * @var DocumentElement
-     */
-    private $document;
-
-    protected function setUp()
-    {
-        parent::setUp();
-        $this->document = new DocumentElement($this->session);
-    }
-
-    public function testGetSession()
-    {
-        $this->assertEquals($this->session, $this->document->getSession());
-    }
-
-    public function testFindAll()
-    {
-        $xpath = 'h3[a]';
-        $css = 'h3 > a';
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->will($this->returnValueMap(array(
-                array('//html/'.$xpath, array(2, 3, 4)),
-                array('//html/'.$css, array(1, 2)),
-            )));
-
-        $this->selectors
-            ->expects($this->exactly(2))
-            ->method('selectorToXpath')
-            ->will($this->returnValueMap(array(
-                array('xpath', $xpath, $xpath),
-                array('css', $css, $css),
-            )));
-
-        $this->assertEquals(3, count($this->document->findAll('xpath', $xpath)));
-        $this->assertEquals(2, count($this->document->findAll('css', $css)));
-    }
-
-    public function testFind()
-    {
-        $this->driver
-            ->expects($this->exactly(3))
-            ->method('find')
-            ->with('//html/h3[a]')
-            ->will($this->onConsecutiveCalls(array(2, 3, 4), array(1, 2), array()));
-
-        $xpath = 'h3[a]';
-        $css = 'h3 > a';
-
-        $this->selectors
-            ->expects($this->exactly(3))
-            ->method('selectorToXpath')
-            ->will($this->returnValueMap(array(
-                array('xpath', $xpath, $xpath),
-                array('xpath', $xpath, $xpath),
-                array('css', $css, $xpath),
-            )));
-
-        $this->assertEquals(2, $this->document->find('xpath', $xpath));
-        $this->assertEquals(1, $this->document->find('css', $css));
-        $this->assertNull($this->document->find('xpath', $xpath));
-    }
-
-    public function testFindField()
-    {
-        $this->mockNamedFinder(
-            '//field',
-            array('field1', 'field2', 'field3'),
-            array('field', 'some field')
-        );
-
-        $this->assertEquals('field1', $this->document->findField('some field'));
-        $this->assertEquals(null, $this->document->findField('some field'));
-    }
-
-    public function testFindLink()
-    {
-        $this->mockNamedFinder(
-            '//link',
-            array('link1', 'link2', 'link3'),
-            array('link', 'some link')
-        );
-
-        $this->assertEquals('link1', $this->document->findLink('some link'));
-        $this->assertEquals(null, $this->document->findLink('some link'));
-    }
-
-    public function testFindButton()
-    {
-        $this->mockNamedFinder(
-            '//button',
-            array('button1', 'button2', 'button3'),
-            array('button', 'some button')
-        );
-
-        $this->assertEquals('button1', $this->document->findButton('some button'));
-        $this->assertEquals(null, $this->document->findButton('some button'));
-    }
-
-    public function testFindById()
-    {
-        $xpath = '//*[@id=some-item-2]';
-
-        $this->mockNamedFinder($xpath, array(array('id2', 'id3'), array()), array('id', 'some-item-2'));
-
-        $this->assertEquals('id2', $this->document->findById('some-item-2'));
-        $this->assertEquals(null, $this->document->findById('some-item-2'));
-    }
-
-    public function testHasSelector()
-    {
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('//html/some xpath')
-            ->will($this->onConsecutiveCalls(array('id2', 'id3'), array()));
-
-        $this->selectors
-            ->expects($this->exactly(2))
-            ->method('selectorToXpath')
-            ->with('xpath', 'some xpath')
-            ->will($this->returnValue('some xpath'));
-
-        $this->assertTrue($this->document->has('xpath', 'some xpath'));
-        $this->assertFalse($this->document->has('xpath', 'some xpath'));
-    }
-
-    public function testHasContent()
-    {
-        $this->mockNamedFinder(
-            '//some content',
-            array('item1', 'item2'),
-            array('content', 'some content')
-        );
-
-        $this->assertTrue($this->document->hasContent('some content'));
-        $this->assertFalse($this->document->hasContent('some content'));
-    }
-
-    public function testHasLink()
-    {
-        $this->mockNamedFinder(
-            '//link',
-            array('link1', 'link2', 'link3'),
-            array('link', 'some link')
-        );
-
-        $this->assertTrue($this->document->hasLink('some link'));
-        $this->assertFalse($this->document->hasLink('some link'));
-    }
-
-    public function testHasButton()
-    {
-        $this->mockNamedFinder(
-            '//button',
-            array('button1', 'button2', 'button3'),
-            array('button', 'some button')
-        );
-
-        $this->assertTrue($this->document->hasButton('some button'));
-        $this->assertFalse($this->document->hasButton('some button'));
-    }
-
-    public function testHasField()
-    {
-        $this->mockNamedFinder(
-            '//field',
-            array('field1', 'field2', 'field3'),
-            array('field', 'some field')
-        );
-
-        $this->assertTrue($this->document->hasField('some field'));
-        $this->assertFalse($this->document->hasField('some field'));
-    }
-
-    public function testHasCheckedField()
-    {
-        $checkbox = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $checkbox
-            ->expects($this->exactly(2))
-            ->method('isChecked')
-            ->will($this->onConsecutiveCalls(true, false));
-
-        $this->mockNamedFinder(
-            '//field',
-            array(array($checkbox), array(), array($checkbox)),
-            array('field', 'some checkbox'),
-            3
-        );
-
-        $this->assertTrue($this->document->hasCheckedField('some checkbox'));
-        $this->assertFalse($this->document->hasCheckedField('some checkbox'));
-        $this->assertFalse($this->document->hasCheckedField('some checkbox'));
-    }
-
-    public function testHasUncheckedField()
-    {
-        $checkbox = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $checkbox
-            ->expects($this->exactly(2))
-            ->method('isChecked')
-            ->will($this->onConsecutiveCalls(true, false));
-
-        $this->mockNamedFinder(
-            '//field',
-            array(array($checkbox), array(), array($checkbox)),
-            array('field', 'some checkbox'),
-            3
-        );
-
-        $this->assertFalse($this->document->hasUncheckedField('some checkbox'));
-        $this->assertFalse($this->document->hasUncheckedField('some checkbox'));
-        $this->assertTrue($this->document->hasUncheckedField('some checkbox'));
-    }
-
-    public function testHasSelect()
-    {
-        $this->mockNamedFinder(
-            '//select',
-            array('select'),
-            array('select', 'some select field')
-        );
-
-        $this->assertTrue($this->document->hasSelect('some select field'));
-        $this->assertFalse($this->document->hasSelect('some select field'));
-    }
-
-    public function testHasTable()
-    {
-        $this->mockNamedFinder(
-            '//table',
-            array('table'),
-            array('table', 'some table')
-        );
-
-        $this->assertTrue($this->document->hasTable('some table'));
-        $this->assertFalse($this->document->hasTable('some table'));
-    }
-
-    public function testClickLink()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('click');
-
-        $this->mockNamedFinder(
-            '//link',
-            array($node),
-            array('link', 'some link')
-        );
-
-        $this->document->clickLink('some link');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->clickLink('some link');
-    }
-
-    public function testClickButton()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('press');
-
-        $this->mockNamedFinder(
-            '//button',
-            array($node),
-            array('button', 'some button')
-        );
-
-        $this->document->pressButton('some button');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->pressButton('some button');
-    }
-
-    public function testFillField()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('setValue')
-            ->with('some val');
-
-        $this->mockNamedFinder(
-            '//field',
-            array($node),
-            array('field', 'some field')
-        );
-
-        $this->document->fillField('some field', 'some val');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->fillField('some field', 'some val');
-    }
-
-    public function testCheckField()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('check');
-
-        $this->mockNamedFinder(
-            '//field',
-            array($node),
-            array('field', 'some field')
-        );
-
-        $this->document->checkField('some field');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->checkField('some field');
-    }
-
-    public function testUncheckField()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('uncheck');
-
-        $this->mockNamedFinder(
-            '//field',
-            array($node),
-            array('field', 'some field')
-        );
-
-        $this->document->uncheckField('some field');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->uncheckField('some field');
-    }
-
-    public function testSelectField()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('selectOption')
-            ->with('option2');
-
-        $this->mockNamedFinder(
-            '//field',
-            array($node),
-            array('field', 'some field')
-        );
-
-        $this->document->selectFieldOption('some field', 'option2');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->selectFieldOption('some field', 'option2');
-    }
-
-    public function testAttachFileToField()
-    {
-        $node = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $node
-            ->expects($this->once())
-            ->method('attachFile')
-            ->with('/path/to/file');
-
-        $this->mockNamedFinder(
-            '//field',
-            array($node),
-            array('field', 'some field')
-        );
-
-        $this->document->attachFileToField('some field', '/path/to/file');
-        $this->setExpectedException('Behat\Mink\Exception\ElementNotFoundException');
-        $this->document->attachFileToField('some field', '/path/to/file');
-    }
-
-    public function testGetContent()
-    {
-        $expects = 'page content';
-        $this->driver
-            ->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue($expects));
-
-        $this->assertEquals($expects, $this->document->getContent());
-    }
-
-    public function testGetText()
-    {
-        $expects = 'val1';
-        $this->driver
-            ->expects($this->once())
-            ->method('getText')
-            ->with('//html')
-            ->will($this->returnValue($expects));
-
-        $this->assertEquals($expects, $this->document->getText());
-    }
-
-    public function testGetHtml()
-    {
-        $expects = 'val1';
-        $this->driver
-            ->expects($this->once())
-            ->method('getHtml')
-            ->with('//html')
-            ->will($this->returnValue($expects));
-
-        $this->assertEquals($expects, $this->document->getHtml());
-    }
-
-    public function testGetOuterHtml()
-    {
-        $expects = 'val1';
-        $this->driver
-            ->expects($this->once())
-            ->method('getOuterHtml')
-            ->with('//html')
-            ->will($this->returnValue($expects));
-
-        $this->assertEquals($expects, $this->document->getOuterHtml());
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Element/ElementTest.php b/core/vendor/behat/mink/tests/Element/ElementTest.php
deleted file mode 100644
index a8c8a8c..0000000
--- a/core/vendor/behat/mink/tests/Element/ElementTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Element;
-
-use Behat\Mink\Driver\DriverInterface;
-use Behat\Mink\Session;
-use Behat\Mink\Selector\SelectorsHandler;
-
-abstract class ElementTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Session.
-     *
-     * @var Session
-     */
-    protected $session;
-
-    /**
-     * @var DriverInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $driver;
-
-    /**
-     * Selectors.
-     *
-     * @var SelectorsHandler|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $selectors;
-
-    protected function setUp()
-    {
-        $this->driver = $this->getMockBuilder('Behat\Mink\Driver\DriverInterface')->getMock();
-        $this->driver
-            ->expects($this->once())
-            ->method('setSession');
-
-        $this->selectors = $this->getMockBuilder('Behat\Mink\Selector\SelectorsHandler')->getMock();
-        $this->session = new Session($this->driver, $this->selectors);
-
-        $this->selectors
-            ->expects($this->any())
-            ->method('xpathLiteral')
-            ->will($this->returnArgument(0));
-    }
-
-    protected function mockNamedFinder($xpath, array $results, $locator, $times = 2)
-    {
-        if (!is_array($results[0])) {
-            $results = array($results, array());
-        }
-
-        // In case of empty results, a second call will be done using the partial selector
-        $processedResults = array();
-        foreach ($results as $result) {
-            $processedResults[] = $result;
-            if (empty($result)) {
-                $processedResults[] = $result;
-                $times++;
-            }
-        }
-
-        $returnValue = call_user_func_array(array($this, 'onConsecutiveCalls'), $processedResults);
-
-        $this->driver
-            ->expects($this->exactly($times))
-            ->method('find')
-            ->with('//html'.$xpath)
-            ->will($returnValue);
-
-        $this->selectors
-            ->expects($this->exactly($times))
-            ->method('selectorToXpath')
-            ->with($this->logicalOr('named_exact', 'named_partial'), $locator)
-            ->will($this->returnValue($xpath));
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Element/NodeElementTest.php b/core/vendor/behat/mink/tests/Element/NodeElementTest.php
deleted file mode 100644
index b6a8bde..0000000
--- a/core/vendor/behat/mink/tests/Element/NodeElementTest.php
+++ /dev/null
@@ -1,593 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Element;
-
-use Behat\Mink\Element\NodeElement;
-
-class NodeElementTest extends ElementTest
-{
-    public function testGetXpath()
-    {
-        $node = new NodeElement('some custom xpath', $this->session);
-
-        $this->assertEquals('some custom xpath', $node->getXpath());
-        $this->assertNotEquals('not some custom xpath', $node->getXpath());
-    }
-
-    public function testGetText()
-    {
-        $expected = 'val1';
-        $node = new NodeElement('text_tag', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getText')
-            ->with('text_tag')
-            ->will($this->returnValue($expected));
-
-        $this->assertEquals($expected, $node->getText());
-    }
-
-    public function testGetOuterHtml()
-    {
-        $expected = 'val1';
-        $node = new NodeElement('text_tag', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getOuterHtml')
-            ->with('text_tag')
-            ->will($this->returnValue($expected));
-
-        $this->assertEquals($expected, $node->getOuterHtml());
-    }
-
-    public function testElementIsValid()
-    {
-        $elementXpath = 'some xpath';
-        $node = new NodeElement($elementXpath, $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('find')
-            ->with($elementXpath)
-            ->will($this->returnValue(array($elementXpath)));
-
-        $this->assertTrue($node->isValid());
-    }
-
-    public function testElementIsNotValid()
-    {
-        $node = new NodeElement('some xpath', $this->session);
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('some xpath')
-            ->will($this->onConsecutiveCalls(array(), array('xpath1', 'xpath2')));
-
-        $this->assertFalse($node->isValid(), 'no elements found is invalid element');
-        $this->assertFalse($node->isValid(), 'more then 1 element found is invalid element');
-    }
-
-    public function testWaitForSuccess()
-    {
-        $callCounter = 0;
-        $node = new NodeElement('some xpath', $this->session);
-
-        $result = $node->waitFor(5, function ($givenNode) use (&$callCounter) {
-            $callCounter++;
-
-            if (1 === $callCounter) {
-                return null;
-            } elseif (2 === $callCounter) {
-                return false;
-            } elseif (3 === $callCounter) {
-                return array();
-            }
-
-            return $givenNode;
-        });
-
-        $this->assertEquals(4, $callCounter, '->waitFor() tries to locate element several times before failing');
-        $this->assertSame($node, $result, '->waitFor() returns node found in callback');
-    }
-
-    public function testWaitForTimeout()
-    {
-        $node = new NodeElement('some xpath', $this->session);
-
-        $expectedTimeout = 2;
-        $startTime = microtime(true);
-        $result = $node->waitFor($expectedTimeout, function () {
-            return null;
-        });
-        $endTime = microtime(true);
-
-        $this->assertNull($result, '->waitFor() returns whatever callback gives');
-        $this->assertEquals($expectedTimeout, round($endTime - $startTime));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testWaitForFailure()
-    {
-        $node = new NodeElement('some xpath', $this->session);
-        $node->waitFor(5, 'not a callable');
-    }
-
-    public function testHasAttribute()
-    {
-        $node = new NodeElement('input_tag', $this->session);
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('getAttribute')
-            ->with('input_tag', 'href')
-            ->will($this->onConsecutiveCalls(null, 'http://...'));
-
-        $this->assertFalse($node->hasAttribute('href'));
-        $this->assertTrue($node->hasAttribute('href'));
-    }
-
-    public function testGetAttribute()
-    {
-        $expected = 'http://...';
-        $node = new NodeElement('input_tag', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getAttribute')
-            ->with('input_tag', 'href')
-            ->will($this->returnValue($expected));
-
-        $this->assertEquals($expected, $node->getAttribute('href'));
-    }
-
-    public function testHasClass()
-    {
-        $node = new NodeElement('input_tag', $this->session);
-
-        $this->driver
-            ->expects($this->exactly(6))
-            ->method('getAttribute')
-            ->with('input_tag', 'class')
-            ->will($this->returnValue('class1 class2'));
-
-        $this->assertTrue($node->hasClass('class1'));
-        $this->assertTrue($node->hasClass('class2'));
-        $this->assertFalse($node->hasClass('class3'));
-    }
-
-    public function testHasClassWithoutArgument()
-    {
-        $node = new NodeElement('input_tag', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getAttribute')
-            ->with('input_tag', 'class')
-            ->will($this->returnValue(null));
-
-        $this->assertFalse($node->hasClass('class3'));
-    }
-
-    public function testGetValue()
-    {
-        $expected = 'val1';
-        $node = new NodeElement('input_tag', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getValue')
-            ->with('input_tag')
-            ->will($this->returnValue($expected));
-
-        $this->assertEquals($expected, $node->getValue());
-    }
-
-    public function testSetValue()
-    {
-        $expected = 'new_val';
-        $node = new NodeElement('input_tag', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('setValue')
-            ->with('input_tag', $expected);
-
-        $node->setValue($expected);
-    }
-
-    public function testClick()
-    {
-        $node = new NodeElement('link_or_button', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('click')
-            ->with('link_or_button');
-
-        $node->click();
-    }
-
-    public function testPress()
-    {
-        $node = new NodeElement('link_or_button', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('click')
-            ->with('link_or_button');
-
-        $node->press();
-    }
-
-    public function testRightClick()
-    {
-        $node = new NodeElement('elem', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('rightClick')
-            ->with('elem');
-
-        $node->rightClick();
-    }
-
-    public function testDoubleClick()
-    {
-        $node = new NodeElement('elem', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('doubleClick')
-            ->with('elem');
-
-        $node->doubleClick();
-    }
-
-    public function testCheck()
-    {
-        $node = new NodeElement('checkbox_or_radio', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('check')
-            ->with('checkbox_or_radio');
-
-        $node->check();
-    }
-
-    public function testUncheck()
-    {
-        $node = new NodeElement('checkbox_or_radio', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('uncheck')
-            ->with('checkbox_or_radio');
-
-        $node->uncheck();
-    }
-
-    public function testSelectOption()
-    {
-        $node = new NodeElement('select', $this->session);
-        $option = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $option
-            ->expects($this->once())
-            ->method('getValue')
-            ->will($this->returnValue('item1'));
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getTagName')
-            ->with('select')
-            ->will($this->returnValue('select'));
-
-        $this->driver
-            ->expects($this->once())
-            ->method('find')
-            ->with('select/option')
-            ->will($this->returnValue(array($option)));
-
-        $this->selectors
-            ->expects($this->once())
-            ->method('selectorToXpath')
-            ->with('named_exact', array('option', 'item1'))
-            ->will($this->returnValue('option'));
-
-        $this->driver
-            ->expects($this->once())
-            ->method('selectOption')
-            ->with('select', 'item1', false);
-
-        $node->selectOption('item1');
-    }
-
-    /**
-     * @expectedException \Behat\Mink\Exception\ElementNotFoundException
-     */
-    public function testSelectOptionNotFound()
-    {
-        $node = new NodeElement('select', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getTagName')
-            ->with('select')
-            ->will($this->returnValue('select'));
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('select/option')
-            ->will($this->returnValue(array()));
-
-        $this->selectors
-            ->expects($this->exactly(2))
-            ->method('selectorToXpath')
-            ->with($this->logicalOr('named_exact', 'named_partial'), array('option', 'item1'))
-            ->will($this->returnValue('option'));
-
-        $node->selectOption('item1');
-    }
-
-    public function testSelectOptionOtherTag()
-    {
-        $node = new NodeElement('div', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getTagName')
-            ->with('div')
-            ->will($this->returnValue('div'));
-
-        $this->driver
-            ->expects($this->once())
-            ->method('selectOption')
-            ->with('div', 'item1', false);
-
-        $node->selectOption('item1');
-    }
-
-    public function testGetTagName()
-    {
-        $node = new NodeElement('html//h3', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('getTagName')
-            ->with('html//h3')
-            ->will($this->returnValue('h3'));
-
-        $this->assertEquals('h3', $node->getTagName());
-    }
-
-    public function testGetParent()
-    {
-        $node = new NodeElement('elem', $this->session);
-        $parent = $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->driver
-            ->expects($this->once())
-            ->method('find')
-            ->with('elem/..')
-            ->will($this->returnValue(array($parent)));
-
-        $this->selectors
-            ->expects($this->once())
-            ->method('selectorToXpath')
-            ->with('xpath', '..')
-            ->will($this->returnValue('..'));
-
-        $this->assertSame($parent, $node->getParent());
-    }
-
-    public function testAttachFile()
-    {
-        $node = new NodeElement('elem', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('attachFile')
-            ->with('elem', 'path');
-
-        $node->attachFile('path');
-    }
-
-    public function testIsVisible()
-    {
-        $node = new NodeElement('some_xpath', $this->session);
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('isVisible')
-            ->with('some_xpath')
-            ->will($this->onConsecutiveCalls(true, false));
-
-        $this->assertTrue($node->isVisible());
-        $this->assertFalse($node->isVisible());
-    }
-
-    public function testIsChecked()
-    {
-        $node = new NodeElement('some_xpath', $this->session);
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('isChecked')
-            ->with('some_xpath')
-            ->will($this->onConsecutiveCalls(true, false));
-
-        $this->assertTrue($node->isChecked());
-        $this->assertFalse($node->isChecked());
-    }
-
-    public function testIsSelected()
-    {
-        $node = new NodeElement('some_xpath', $this->session);
-
-        $this->driver
-            ->expects($this->exactly(2))
-            ->method('isSelected')
-            ->with('some_xpath')
-            ->will($this->onConsecutiveCalls(true, false));
-
-        $this->assertTrue($node->isSelected());
-        $this->assertFalse($node->isSelected());
-    }
-
-    public function testFocus()
-    {
-        $node = new NodeElement('some-element', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('focus')
-            ->with('some-element');
-
-        $node->focus();
-    }
-
-    public function testBlur()
-    {
-        $node = new NodeElement('some-element', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('blur')
-            ->with('some-element');
-
-        $node->blur();
-    }
-
-    public function testMouseOver()
-    {
-        $node = new NodeElement('some-element', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('mouseOver')
-            ->with('some-element');
-
-        $node->mouseOver();
-    }
-
-    public function testDragTo()
-    {
-        $node = new NodeElement('some_tag1', $this->session);
-
-        $target = $this->getMock('Behat\Mink\Element\ElementInterface');
-        $target->expects($this->any())
-            ->method('getXPath')
-            ->will($this->returnValue('some_tag2'));
-
-        $this->driver
-            ->expects($this->once())
-            ->method('dragTo')
-            ->with('some_tag1', 'some_tag2');
-
-        $node->dragTo($target);
-    }
-
-    public function testKeyPress()
-    {
-        $node = new NodeElement('elem', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('keyPress')
-            ->with('elem', 'key');
-
-        $node->keyPress('key');
-    }
-
-    public function testKeyDown()
-    {
-        $node = new NodeElement('elem', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('keyDown')
-            ->with('elem', 'key');
-
-        $node->keyDown('key');
-    }
-
-    public function testKeyUp()
-    {
-        $node = new NodeElement('elem', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('keyUp')
-            ->with('elem', 'key');
-
-        $node->keyUp('key');
-    }
-
-    public function testSubmitForm()
-    {
-        $node = new NodeElement('some_xpath', $this->session);
-
-        $this->driver
-            ->expects($this->once())
-            ->method('submitForm')
-            ->with('some_xpath');
-
-        $node->submit();
-    }
-
-    public function testFindAllUnion()
-    {
-        $node = new NodeElement('some_xpath', $this->session);
-        $xpath = "some_tag1 | some_tag2[@foo =\n 'bar|'']\n | some_tag3[foo | bar]";
-        $expected = "some_xpath/some_tag1 | some_xpath/some_tag2[@foo =\n 'bar|''] | some_xpath/some_tag3[foo | bar]";
-
-        $this->driver
-            ->expects($this->exactly(1))
-            ->method('find')
-            ->will($this->returnValueMap(array(
-                array($expected, array(2, 3, 4)),
-            )));
-
-        $this->selectors
-            ->expects($this->exactly(1))
-            ->method('selectorToXpath')
-            ->will($this->returnValueMap(array(
-                array('xpath', $xpath, $xpath),
-            )));
-
-        $this->assertEquals(3, count($node->findAll('xpath', $xpath)));
-    }
-
-    public function testFindAllParentUnion()
-    {
-        $node = new NodeElement('some_xpath | another_xpath', $this->session);
-        $xpath = "some_tag1 | some_tag2";
-        $expectedPrefixed = "(some_xpath | another_xpath)/some_tag1 | (some_xpath | another_xpath)/some_tag2";
-
-        $this->driver
-            ->expects($this->exactly(1))
-            ->method('find')
-            ->will($this->returnValueMap(array(
-                array($expectedPrefixed, array(2, 3, 4)),
-            )));
-
-        $this->selectors
-            ->expects($this->exactly(1))
-            ->method('selectorToXpath')
-            ->will($this->returnValueMap(array(
-                array('xpath', $xpath, $xpath),
-            )));
-
-        $this->assertEquals(3, count($node->findAll('xpath', $xpath)));
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Exception/ElementExceptionTest.php b/core/vendor/behat/mink/tests/Exception/ElementExceptionTest.php
deleted file mode 100644
index 021e8d5..0000000
--- a/core/vendor/behat/mink/tests/Exception/ElementExceptionTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Exception;
-
-use Behat\Mink\Exception\ElementException;
-
-class ElementExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testMessage()
-    {
-        $exception = new ElementException($this->getElementMock(), new \Exception('Something went wrong'));
-
-        $expectedMessage = "Exception thrown by element XPath\nSomething went wrong";
-        $this->assertEquals($expectedMessage, $exception->getMessage());
-        $this->assertEquals($expectedMessage, (string) $exception);
-    }
-
-    public function testElement()
-    {
-        $element = $this->getElementMock();
-
-        $exception = new ElementException($element, new \Exception('Something went wrong'));
-
-        $this->assertSame($element, $exception->getElement());
-    }
-
-    private function getElementMock()
-    {
-        $mock = $this->getMockBuilder('Behat\Mink\Element\Element')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $mock->expects($this->any())
-            ->method('getXPath')
-            ->will($this->returnValue('element XPath'));
-
-        return $mock;
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Exception/ElementHtmlExceptionTest.php b/core/vendor/behat/mink/tests/Exception/ElementHtmlExceptionTest.php
deleted file mode 100644
index 63d39dd..0000000
--- a/core/vendor/behat/mink/tests/Exception/ElementHtmlExceptionTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Exception;
-
-use Behat\Mink\Exception\ElementHtmlException;
-
-class ElementHtmlExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExceptionToString()
-    {
-        $driver = $this->getMock('Behat\Mink\Driver\DriverInterface');
-        $element = $this->getElementMock();
-
-        $session = $this->getSessionMock();
-        $session->expects($this->any())
-            ->method('getDriver')
-            ->will($this->returnValue($driver));
-        $session->expects($this->any())
-            ->method('getStatusCode')
-            ->will($this->returnValue(200));
-        $session->expects($this->any())
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://localhost/test'));
-
-        $element->expects($this->any())
-            ->method('getOuterHtml')
-            ->will($this->returnValue("<div>\n    <h1>Hello world</h1>\n    <p>Test</p>\n</div>"));
-
-        $expected = <<<'TXT'
-Html error
-
-+--[ HTTP/1.1 200 | http://localhost/test | %s ]
-|
-|  <div>
-|      <h1>Hello world</h1>
-|      <p>Test</p>
-|  </div>
-|
-TXT;
-
-        $expected = sprintf($expected.'  ', get_class($driver));
-
-        $exception = new ElementHtmlException('Html error', $session, $element);
-
-        $this->assertEquals($expected, $exception->__toString());
-    }
-
-    private function getSessionMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-
-    private function getElementMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Exception/ElementNotFoundExceptionTest.php b/core/vendor/behat/mink/tests/Exception/ElementNotFoundExceptionTest.php
deleted file mode 100644
index 8cb4e5d..0000000
--- a/core/vendor/behat/mink/tests/Exception/ElementNotFoundExceptionTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Exception;
-
-use Behat\Mink\Exception\ElementNotFoundException;
-
-class ElementNotFoundExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideExceptionMessage
-     */
-    public function testBuildMessage($message, $type, $selector = null, $locator = null)
-    {
-        $session = $this->getMockBuilder('Behat\Mink\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $exception = new ElementNotFoundException($session, $type, $selector, $locator);
-
-        $this->assertEquals($message, $exception->getMessage());
-    }
-
-    public function provideExceptionMessage()
-    {
-        return array(
-            array('Tag not found.', null),
-            array('Field not found.', 'field'),
-            array('Tag matching locator "foobar" not found.', null, null, 'foobar'),
-            array('Tag matching css "foobar" not found.', null, 'css', 'foobar'),
-            array('Field matching xpath "foobar" not found.', 'Field', 'xpath', 'foobar'),
-            array('Tag with name "foobar" not found.', null, 'name', 'foobar'),
-        );
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Exception/ElementTextExceptionTest.php b/core/vendor/behat/mink/tests/Exception/ElementTextExceptionTest.php
deleted file mode 100644
index 73cef5b..0000000
--- a/core/vendor/behat/mink/tests/Exception/ElementTextExceptionTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Exception;
-
-use Behat\Mink\Exception\ElementTextException;
-
-class ElementTextExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExceptionToString()
-    {
-        $driver = $this->getMock('Behat\Mink\Driver\DriverInterface');
-        $element = $this->getElementMock();
-
-        $session = $this->getSessionMock();
-        $session->expects($this->any())
-            ->method('getDriver')
-            ->will($this->returnValue($driver));
-        $session->expects($this->any())
-            ->method('getStatusCode')
-            ->will($this->returnValue(200));
-        $session->expects($this->any())
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://localhost/test'));
-
-        $element->expects($this->any())
-            ->method('getText')
-            ->will($this->returnValue("Hello world\nTest\n"));
-
-        $expected = <<<'TXT'
-Text error
-
-+--[ HTTP/1.1 200 | http://localhost/test | %s ]
-|
-|  Hello world
-|  Test
-|
-TXT;
-
-        $expected = sprintf($expected.'  ', get_class($driver));
-
-        $exception = new ElementTextException('Text error', $session, $element);
-
-        $this->assertEquals($expected, $exception->__toString());
-    }
-
-    private function getSessionMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-
-    private function getElementMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Element\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Exception/ExpectationExceptionTest.php b/core/vendor/behat/mink/tests/Exception/ExpectationExceptionTest.php
deleted file mode 100644
index 466bcca..0000000
--- a/core/vendor/behat/mink/tests/Exception/ExpectationExceptionTest.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Exception;
-
-use Behat\Mink\Exception\ExpectationException;
-
-class ExpectationExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testEmptyMessageAndPreviousException()
-    {
-        $exception = new ExpectationException('', $this->getSessionMock(), new \Exception('Something failed'));
-
-        $this->assertEquals('Something failed', $exception->getMessage());
-    }
-
-    public function testExceptionToString()
-    {
-        $driver = $this->getMock('Behat\Mink\Driver\DriverInterface');
-        $page = $this->getPageMock();
-
-        $session = $this->getSessionMock();
-        $session->expects($this->any())
-            ->method('getDriver')
-            ->will($this->returnValue($driver));
-        $session->expects($this->any())
-            ->method('getPage')
-            ->will($this->returnValue($page));
-        $session->expects($this->any())
-            ->method('getStatusCode')
-            ->will($this->returnValue(200));
-        $session->expects($this->any())
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://localhost/test'));
-
-        $html = "<html><head><title>Hello</title></head>\n<body>\n<h1>Hello world</h1>\n<p>Test</p>\n</body></html>";
-        $page->expects($this->any())
-            ->method('getContent')
-            ->will($this->returnValue($html));
-
-        $expected = <<<'TXT'
-Expectation failure
-
-+--[ HTTP/1.1 200 | http://localhost/test | %s ]
-|
-|  <body>
-|  <h1>Hello world</h1>
-|  <p>Test</p>
-|  </body>
-|
-TXT;
-
-        $expected = sprintf($expected.'  ', get_class($driver));
-
-        $exception = new ExpectationException('Expectation failure', $session);
-
-        $this->assertEquals($expected, $exception->__toString());
-    }
-
-    public function testBigContent()
-    {
-        $driver = $this->getMock('Behat\Mink\Driver\DriverInterface');
-        $page = $this->getPageMock();
-
-        $session = $this->getSessionMock();
-        $session->expects($this->any())
-            ->method('getDriver')
-            ->will($this->returnValue($driver));
-        $session->expects($this->any())
-            ->method('getPage')
-            ->will($this->returnValue($page));
-        $session->expects($this->any())
-            ->method('getStatusCode')
-            ->will($this->returnValue(200));
-        $session->expects($this->any())
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://localhost/test'));
-
-        $body = str_repeat('a', 1001 - strlen('<body></body>'));
-
-        $html = sprintf("<html><head><title>Hello</title></head>\n<body>%s</body></html>", $body);
-        $page->expects($this->any())
-            ->method('getContent')
-            ->will($this->returnValue($html));
-
-        $expected = <<<'TXT'
-Expectation failure
-
-+--[ HTTP/1.1 200 | http://localhost/test | %s ]
-|
-|  <body>%s</b...
-|
-TXT;
-
-        $expected = sprintf($expected.'  ', get_class($driver), $body);
-
-        $exception = new ExpectationException('Expectation failure', $session);
-
-        $this->assertEquals($expected, $exception->__toString());
-    }
-
-    public function testExceptionWhileRenderingString()
-    {
-        $session = $this->getSessionMock();
-        $session->expects($this->any())
-            ->method('getPage')
-            ->will($this->throwException(new \Exception('Broken page')));
-
-        $exception = new ExpectationException('Expectation failure', $session);
-
-        $this->assertEquals('Expectation failure', $exception->__toString());
-    }
-
-    private function getSessionMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-
-    private function getPageMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Element\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Exception/ResponseTextExceptionTest.php b/core/vendor/behat/mink/tests/Exception/ResponseTextExceptionTest.php
deleted file mode 100644
index 4651b7c..0000000
--- a/core/vendor/behat/mink/tests/Exception/ResponseTextExceptionTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Exception;
-
-use Behat\Mink\Exception\ResponseTextException;
-
-class ResponseTextExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExceptionToString()
-    {
-        $driver = $this->getMock('Behat\Mink\Driver\DriverInterface');
-        $page = $this->getPageMock();
-
-        $session = $this->getSessionMock();
-        $session->expects($this->any())
-            ->method('getDriver')
-            ->will($this->returnValue($driver));
-        $session->expects($this->any())
-            ->method('getPage')
-            ->will($this->returnValue($page));
-        $session->expects($this->any())
-            ->method('getStatusCode')
-            ->will($this->returnValue(200));
-        $session->expects($this->any())
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://localhost/test'));
-
-        $page->expects($this->any())
-            ->method('getText')
-            ->will($this->returnValue("Hello world\nTest\n"));
-
-        $expected = <<<'TXT'
-Text error
-
-+--[ HTTP/1.1 200 | http://localhost/test | %s ]
-|
-|  Hello world
-|  Test
-|
-TXT;
-
-        $expected = sprintf($expected.'  ', get_class($driver));
-
-        $exception = new ResponseTextException('Text error', $session);
-
-        $this->assertEquals($expected, $exception->__toString());
-    }
-
-    private function getSessionMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-
-    private function getPageMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Element\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-}
diff --git a/core/vendor/behat/mink/tests/MinkTest.php b/core/vendor/behat/mink/tests/MinkTest.php
deleted file mode 100644
index 11d6466..0000000
--- a/core/vendor/behat/mink/tests/MinkTest.php
+++ /dev/null
@@ -1,246 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests;
-
-use Behat\Mink\Mink;
-
-class MinkTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var Mink
-     */
-    private $mink;
-
-    protected function setUp()
-    {
-        $this->mink = new Mink();
-    }
-
-    public function testRegisterSession()
-    {
-        $session = $this->getSessionMock();
-
-        $this->assertFalse($this->mink->hasSession('not_registered'));
-        $this->assertFalse($this->mink->hasSession('js'));
-        $this->assertFalse($this->mink->hasSession('my'));
-
-        $this->mink->registerSession('my', $session);
-
-        $this->assertTrue($this->mink->hasSession('my'));
-        $this->assertFalse($this->mink->hasSession('not_registered'));
-        $this->assertFalse($this->mink->hasSession('js'));
-    }
-
-    public function testRegisterSessionThroughConstructor()
-    {
-        $mink = new Mink(array('my' => $this->getSessionMock()));
-
-        $this->assertTrue($mink->hasSession('my'));
-    }
-
-    public function testSessionAutostop()
-    {
-        $session1 = $this->getSessionMock();
-        $session2 = $this->getSessionMock();
-        $this->mink->registerSession('my1', $session1);
-        $this->mink->registerSession('my2', $session2);
-
-        $session1
-            ->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-        $session1
-            ->expects($this->once())
-            ->method('stop');
-        $session2
-            ->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-        $session2
-            ->expects($this->never())
-            ->method('stop');
-
-        unset($this->mink);
-    }
-
-    public function testNotStartedSession()
-    {
-        $session = $this->getSessionMock();
-
-        $session
-            ->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-        $session
-            ->expects($this->once())
-            ->method('start');
-
-        $this->mink->registerSession('mock_session', $session);
-        $this->assertSame($session, $this->mink->getSession('mock_session'));
-
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->mink->getSession('not_registered');
-    }
-
-    public function testGetAlreadyStartedSession()
-    {
-        $session = $this->getSessionMock();
-
-        $session
-            ->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-        $session
-            ->expects($this->never())
-            ->method('start');
-
-        $this->mink->registerSession('mock_session', $session);
-        $this->assertSame($session, $this->mink->getSession('mock_session'));
-    }
-
-    public function testSetDefaultSessionName()
-    {
-        $this->assertNull($this->mink->getDefaultSessionName());
-
-        $session = $this->getSessionMock();
-        $this->mink->registerSession('session_name', $session);
-        $this->mink->setDefaultSessionName('session_name');
-
-        $this->assertEquals('session_name', $this->mink->getDefaultSessionName());
-
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->mink->setDefaultSessionName('not_registered');
-    }
-
-    public function testGetDefaultSession()
-    {
-        $session1 = $this->getSessionMock();
-        $session2 = $this->getSessionMock();
-
-        $this->assertNotSame($session1, $session2);
-
-        $this->mink->registerSession('session_1', $session1);
-        $this->mink->registerSession('session_2', $session2);
-        $this->mink->setDefaultSessionName('session_2');
-
-        $this->assertSame($session1, $this->mink->getSession('session_1'));
-        $this->assertSame($session2, $this->mink->getSession('session_2'));
-        $this->assertSame($session2, $this->mink->getSession());
-
-        $this->mink->setDefaultSessionName('session_1');
-
-        $this->assertSame($session1, $this->mink->getSession());
-    }
-
-    public function testGetNoDefaultSession()
-    {
-        $session1 = $this->getSessionMock();
-
-        $this->mink->registerSession('session_1', $session1);
-
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->mink->getSession();
-    }
-
-    public function testIsSessionStarted()
-    {
-        $session_1 = $this->getSessionMock();
-        $session_2 = $this->getSessionMock();
-
-        $session_1
-            ->expects($this->any())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-        $session_1
-            ->expects($this->never())
-            ->method('start');
-
-        $session_2
-            ->expects($this->any())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-        $session_2
-            ->expects($this->never())
-            ->method('start');
-
-        $this->mink->registerSession('not_started', $session_1);
-        $this->assertFalse($this->mink->isSessionStarted('not_started'));
-
-        $this->mink->registerSession('started', $session_2);
-        $this->assertTrue($this->mink->isSessionStarted('started'));
-
-        $this->setExpectedException('InvalidArgumentException');
-
-        $this->mink->getSession('not_registered');
-    }
-
-    public function testAssertSession()
-    {
-        $session = $this->getSessionMock();
-
-        $this->mink->registerSession('my', $session);
-
-        $this->assertInstanceOf('Behat\Mink\WebAssert', $this->mink->assertSession('my'));
-    }
-
-    public function testAssertSessionNotRegistered()
-    {
-        $session = $this->getSessionMock();
-
-        $this->assertInstanceOf('Behat\Mink\WebAssert', $this->mink->assertSession($session));
-    }
-
-    public function testResetSessions()
-    {
-        $session1 = $this->getSessionMock();
-        $session1->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-        $session1->expects($this->never())
-            ->method('reset');
-
-        $session2 = $this->getSessionMock();
-        $session2->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-        $session2->expects($this->once())
-            ->method('reset');
-
-        $this->mink->registerSession('not started', $session1);
-        $this->mink->registerSession('started', $session2);
-
-        $this->mink->resetSessions();
-    }
-
-    public function testRestartSessions()
-    {
-        $session1 = $this->getSessionMock();
-        $session1->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-        $session1->expects($this->never())
-            ->method('restart');
-
-        $session2 = $this->getSessionMock();
-        $session2->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-        $session2->expects($this->once())
-            ->method('restart');
-
-        $this->mink->registerSession('not started', $session1);
-        $this->mink->registerSession('started', $session2);
-
-        $this->mink->restartSessions();
-    }
-
-    private function getSessionMock()
-    {
-        return $this->getMockBuilder('Behat\Mink\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/CssSelectorTest.php b/core/vendor/behat/mink/tests/Selector/CssSelectorTest.php
deleted file mode 100644
index ea80d93..0000000
--- a/core/vendor/behat/mink/tests/Selector/CssSelectorTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector;
-
-use Behat\Mink\Selector\CssSelector;
-
-class CssSelectorTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('Symfony\Component\CssSelector\CssSelector')) {
-            $this->markTestSkipped('Symfony2 CssSelector component not installed');
-        }
-    }
-
-    public function testSelector()
-    {
-        $selector = new CssSelector();
-
-        $this->assertEquals('descendant-or-self::h3', $selector->translateToXPath('h3'));
-        $this->assertEquals('descendant-or-self::h3/span', $selector->translateToXPath('h3 > span'));
-
-        if (interface_exists('Symfony\Component\CssSelector\XPath\TranslatorInterface')) {
-            // The rewritten component of Symfony 2.3 checks for attribute existence first for the class.
-            $expectation = "descendant-or-self::h3/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' my_div ')]";
-        } else {
-            $expectation = "descendant-or-self::h3/*[contains(concat(' ', normalize-space(@class), ' '), ' my_div ')]";
-        }
-        $this->assertEquals($expectation, $selector->translateToXPath('h3 > .my_div'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testThrowsForArrayLocator()
-    {
-        $selector = new CssSelector();
-
-        $selector->translateToXPath(array('h3'));
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/ExactNamedSelectorTest.php b/core/vendor/behat/mink/tests/Selector/ExactNamedSelectorTest.php
deleted file mode 100644
index df51f0f..0000000
--- a/core/vendor/behat/mink/tests/Selector/ExactNamedSelectorTest.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector;
-
-use Behat\Mink\Selector\ExactNamedSelector;
-
-class ExactNamedSelectorTest extends NamedSelectorTest
-{
-    protected function getSelector()
-    {
-        return new ExactNamedSelector();
-    }
-
-    protected function allowPartialMatch()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/NamedSelectorTest.php b/core/vendor/behat/mink/tests/Selector/NamedSelectorTest.php
deleted file mode 100644
index e0de1bc..0000000
--- a/core/vendor/behat/mink/tests/Selector/NamedSelectorTest.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector;
-
-use Behat\Mink\Selector\NamedSelector;
-use Behat\Mink\Selector\SelectorsHandler;
-
-abstract class NamedSelectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRegisterXpath()
-    {
-        $selector = $this->getSelector();
-
-        $selector->registerNamedXpath('some', 'my_xpath');
-        $this->assertEquals('my_xpath', $selector->translateToXPath('some'));
-
-        $this->setExpectedException('InvalidArgumentException');
-
-        $selector->translateToXPath('custom');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testInvalidLocator()
-    {
-        $namedSelector = $this->getSelector();
-
-        $namedSelector->translateToXPath(array('foo', 'bar', 'baz'));
-    }
-
-    /**
-     * @dataProvider getSelectorTests
-     */
-    public function testSelectors($fixtureFile, $selector, $locator, $expectedExactCount, $expectedPartialCount = null)
-    {
-        $expectedCount = $this->allowPartialMatch() && null !== $expectedPartialCount
-            ? $expectedPartialCount
-            : $expectedExactCount;
-
-        // Don't use "loadHTMLFile" due HHVM 3.3.0 issue.
-        $dom = new \DOMDocument('1.0', 'UTF-8');
-        $dom->loadHTML(file_get_contents(__DIR__.'/fixtures/'.$fixtureFile));
-
-        // Escape the locator as Mink 1.x expects the caller of the NamedSelector to handle it
-        $selectorsHandler = new SelectorsHandler();
-        $locator = $selectorsHandler->xpathLiteral($locator);
-
-        $namedSelector = $this->getSelector();
-
-        $xpath = $namedSelector->translateToXPath(array($selector, $locator));
-
-        $domXpath = new \DOMXPath($dom);
-        $nodeList = $domXpath->query($xpath);
-
-        $this->assertEquals($expectedCount, $nodeList->length);
-    }
-
-    public function getSelectorTests()
-    {
-        $fieldCount = 8; // fields without `type` attribute
-        $fieldCount += 4; // fields with `type=checkbox` attribute
-        $fieldCount += 4; // fields with `type=radio` attribute
-        $fieldCount += 4; // fields with `type=file` attribute
-
-        // Fixture file,  selector name,  locator,  expected number of exact matched elements, expected number of partial matched elements if different
-        return array(
-            'fieldset' => array('test.html', 'fieldset', 'fieldset-text', 2, 3),
-
-            'field (name/placeholder/label)' => array('test.html', 'field', 'the-field', $fieldCount),
-            'field (input, with-id)' => array('test.html', 'field', 'the-field-input', 1),
-            'field (textarea, with-id)' => array('test.html', 'field', 'the-field-textarea', 1),
-            'field (select, with-id)' => array('test.html', 'field', 'the-field-select', 1),
-            'field (input type=submit, with-id) ignored' => array('test.html', 'field', 'the-field-submit-button', 0),
-            'field (input type=image, with-id) ignored' => array('test.html', 'field', 'the-field-image-button', 0),
-            'field (input type=button, with-id) ignored' => array('test.html', 'field', 'the-field-button-button', 0),
-            'field (input type=reset, with-id) ignored' => array('test.html', 'field', 'the-field-reset-button', 0),
-            'field (input type=hidden, with-id) ignored' => array('test.html', 'field', 'the-field-hidden', 0),
-
-            'link (with-href)' => array('test.html', 'link', 'link-text', 5, 9),
-            'link (without-href) ignored' => array('test.html', 'link', 'bad-link-text', 0),
-            'link* (role=link)' => array('test.html', 'link', 'link-role-text', 4, 7),
-
-            'button (input, name/value/title)' => array('test.html', 'button', 'button-text', 25, 42),
-            'button (type=image, with-alt)' => array('test.html', 'button', 'button-alt-text', 1, 2),
-            'button (input type=submit, with-id)' => array('test.html', 'button', 'input-submit-button', 1),
-            'button (input type=image, with-id)' => array('test.html', 'button', 'input-image-button', 1),
-            'button (input type=button, with-id)' => array('test.html', 'button', 'input-button-button', 1),
-            'button (input type=reset, with-id)' => array('test.html', 'button', 'input-reset-button', 1),
-            'button (button type=submit, with-id)' => array('test.html', 'button', 'button-submit-button', 1),
-            'button (button type=image, with-id)' => array('test.html', 'button', 'button-image-button', 1),
-            'button (button type=button, with-id)' => array('test.html', 'button', 'button-button-button', 1),
-            'button (button type=reset, with-id)' => array('test.html', 'button', 'button-reset-button', 1),
-            'button* (role=button, name/value/title)' => array('test.html', 'button', 'button-role-text', 12, 20),
-            'button* (role=button type=submit, with-id)' => array('test.html', 'button', 'role-button-submit-button', 1),
-            'button* (role=button type=image, with-id)' => array('test.html', 'button', 'role-button-image-button', 1),
-            'button* (role=button type=button, with-id)' => array('test.html', 'button', 'role-button-button-button', 1),
-            'button* (role=button type=reset, with-id)' => array('test.html', 'button', 'role-button-reset-button', 1),
-
-            'link_or_button (with-href)' => array('test.html', 'link_or_button', 'link-text', 5, 9),
-            'link_or_button (without-href) ignored' => array('test.html', 'link_or_button', 'bad-link-text', 0),
-            'link_or_button* (role=link)' => array('test.html', 'link_or_button', 'link-role-text', 4, 7),
-
-            // bug in selector: 17 instead of 25 and 34 instead of 42, because 8 buttons with `name` attribute were not matched
-            'link_or_button (input, name/value/title)' => array('test.html', 'link_or_button', 'button-text', 17, 34),
-            'link_or_button (type=image, with-alt)' => array('test.html', 'link_or_button', 'button-alt-text', 1, 2),
-            'link_or_button (input type=submit, with-id)' => array('test.html', 'link_or_button', 'input-submit-button', 1),
-            'link_or_button (input type=image, with-id)' => array('test.html', 'link_or_button', 'input-image-button', 1),
-            'link_or_button (input type=button, with-id)' => array('test.html', 'link_or_button', 'input-button-button', 1),
-            'link_or_button (input type=reset, with-id)' => array('test.html', 'link_or_button', 'input-reset-button', 1),
-            'link_or_button (button type=submit, with-id)' => array('test.html', 'link_or_button', 'button-submit-button', 1),
-            'link_or_button (button type=image, with-id)' => array('test.html', 'link_or_button', 'button-image-button', 1),
-            'link_or_button (button type=button, with-id)' => array('test.html', 'link_or_button', 'button-button-button', 1),
-            'link_or_button (button type=reset, with-id)' => array('test.html', 'link_or_button', 'button-reset-button', 1),
-
-            // bug in selector: 8 instead of 12 and 16 instead of 20, because 4 buttons with `name` attribute were not matched
-            'link_or_button* (role=button, name/value/title)' => array('test.html', 'link_or_button', 'button-role-text', 8, 16),
-            'link_or_button* (role=button type=submit, with-id)' => array('test.html', 'link_or_button', 'role-button-submit-button', 1),
-            'link_or_button* (role=button type=image, with-id)' => array('test.html', 'link_or_button', 'role-button-image-button', 1),
-            'link_or_button* (role=button type=button, with-id)' => array('test.html', 'link_or_button', 'role-button-button-button', 1),
-            'link_or_button* (role=button type=reset, with-id)' => array('test.html', 'link_or_button', 'role-button-reset-button', 1),
-
-            // 3 matches, because matches every HTML node in path: html > body > div
-            'content' => array('test.html', 'content', 'content-text', 1, 4),
-
-            'select (name/label)' => array('test.html', 'select', 'the-field', 3),
-            'select (with-id)' => array('test.html', 'select', 'the-field-select', 1),
-
-            'checkbox (name/label)' => array('test.html', 'checkbox', 'the-field', 3),
-            'checkbox (with-id)' => array('test.html', 'checkbox', 'the-field-checkbox', 1),
-
-            'radio (name/label)' => array('test.html', 'radio', 'the-field', 3),
-            'radio (with-id)' => array('test.html', 'radio', 'the-field-radio', 1),
-
-            'file (name/label)' => array('test.html', 'file', 'the-field', 3),
-            'file (with-id)' => array('test.html', 'file', 'the-field-file', 1),
-
-            'optgroup' => array('test.html', 'optgroup', 'group-label', 1, 2),
-
-            'option' => array('test.html', 'option', 'option-value', 2, 3),
-
-            'table' => array('test.html', 'table', 'the-table', 2, 3),
-
-            'id' => array('test.html', 'id', 'bad-link-text', 1),
-            'id or name' => array('test.html', 'id_or_name', 'the-table', 2),
-        );
-    }
-
-    /**
-     * @return NamedSelector
-     */
-    abstract protected function getSelector();
-
-    /**
-     * @return boolean
-     */
-    abstract protected function allowPartialMatch();
-}
diff --git a/core/vendor/behat/mink/tests/Selector/PartialNamedSelectorTest.php b/core/vendor/behat/mink/tests/Selector/PartialNamedSelectorTest.php
deleted file mode 100644
index c3e631a..0000000
--- a/core/vendor/behat/mink/tests/Selector/PartialNamedSelectorTest.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector;
-
-use Behat\Mink\Selector\PartialNamedSelector;
-
-class PartialNamedSelectorTest extends NamedSelectorTest
-{
-    protected function getSelector()
-    {
-        return new PartialNamedSelector();
-    }
-
-    protected function allowPartialMatch()
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/SelectorsHandlerTest.php b/core/vendor/behat/mink/tests/Selector/SelectorsHandlerTest.php
deleted file mode 100644
index a20d3d9..0000000
--- a/core/vendor/behat/mink/tests/Selector/SelectorsHandlerTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector;
-
-use Behat\Mink\Selector\SelectorsHandler;
-
-class SelectorsHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRegisterSelector()
-    {
-        $selector = $this->getMockBuilder('Behat\Mink\Selector\SelectorInterface')->getMock();
-        $handler = new SelectorsHandler();
-
-        $this->assertFalse($handler->isSelectorRegistered('custom'));
-
-        $handler->registerSelector('custom', $selector);
-
-        $this->assertTrue($handler->isSelectorRegistered('custom'));
-        $this->assertSame($selector, $handler->getSelector('custom'));
-    }
-
-    public function testRegisterSelectorThroughConstructor()
-    {
-        $selector = $this->getMockBuilder('Behat\Mink\Selector\SelectorInterface')->getMock();
-        $handler = new SelectorsHandler(array('custom' => $selector));
-
-        $this->assertTrue($handler->isSelectorRegistered('custom'));
-        $this->assertSame($selector, $handler->getSelector('custom'));
-    }
-
-    public function testRegisterDefaultSelectors()
-    {
-        $handler = new SelectorsHandler();
-
-        $this->assertTrue($handler->isSelectorRegistered('css'));
-        $this->assertTrue($handler->isSelectorRegistered('named_exact'));
-        $this->assertTrue($handler->isSelectorRegistered('named_partial'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testXpathSelectorThrowsExceptionForArrayLocator()
-    {
-        $handler = new SelectorsHandler();
-        $handler->selectorToXpath('xpath', array('some_xpath'));
-    }
-
-    public function testXpathSelectorIsReturnedAsIs()
-    {
-        $handler = new SelectorsHandler();
-        $this->assertEquals('some_xpath', $handler->selectorToXpath('xpath', 'some_xpath'));
-    }
-
-    public function testSelectorToXpath()
-    {
-        $selector = $this->getMockBuilder('Behat\Mink\Selector\SelectorInterface')->getMock();
-        $handler = new SelectorsHandler();
-
-        $handler->registerSelector('custom_selector', $selector);
-
-        $selector
-            ->expects($this->once())
-            ->method('translateToXPath')
-            ->with($locator = 'some[locator]')
-            ->will($this->returnValue($ret = '[]some[]locator'));
-
-        $this->assertEquals($ret, $handler->selectorToXpath('custom_selector', $locator));
-
-        $this->setExpectedException('InvalidArgumentException');
-        $handler->selectorToXpath('undefined', 'asd');
-    }
-
-    public function testXpathLiteral()
-    {
-        $handler = new SelectorsHandler();
-
-        $this->assertEquals("'some simple string'", $handler->xpathLiteral('some simple string'));
-    }
-
-    public function testBcLayer()
-    {
-        $selector = $this->getMockBuilder('Behat\Mink\Selector\SelectorInterface')->getMock();
-        $handler = new SelectorsHandler();
-
-        $handler->registerSelector('named_partial', $selector);
-
-        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
-
-        $this->assertSame($selector, $handler->getSelector('named'));
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/Xpath/EscaperTest.php b/core/vendor/behat/mink/tests/Selector/Xpath/EscaperTest.php
deleted file mode 100644
index 535dac6..0000000
--- a/core/vendor/behat/mink/tests/Selector/Xpath/EscaperTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector\Xpath;
-
-use Behat\Mink\Selector\Xpath\Escaper;
-
-class EscaperTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getXpathLiterals
-     */
-    public function testXpathLiteral($string, $expected)
-    {
-        $escaper = new Escaper();
-
-        $this->assertEquals($expected, $escaper->escapeLiteral($string));
-    }
-
-    public function getXpathLiterals()
-    {
-        return array(
-            array('some simple string', "'some simple string'"),
-            array('some "d-brackets" string', "'some \"d-brackets\" string'"),
-            array('some \'s-brackets\' string', "\"some 's-brackets' string\""),
-            array(
-                'some \'s-brackets\' and "d-brackets" string',
-                'concat(\'some \',"\'",\'s-brackets\',"\'",\' and "d-brackets" string\')',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/Xpath/ManipulatorTest.php b/core/vendor/behat/mink/tests/Selector/Xpath/ManipulatorTest.php
deleted file mode 100644
index 7c20561..0000000
--- a/core/vendor/behat/mink/tests/Selector/Xpath/ManipulatorTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests\Selector\Xpath;
-
-use Behat\Mink\Selector\Xpath\Manipulator;
-
-class ManipulatorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getPrependedXpath
-     */
-    public function testPrepend($prefix, $xpath, $expectedXpath)
-    {
-        $manipulator = new Manipulator();
-
-        $this->assertEquals($expectedXpath, $manipulator->prepend($xpath, $prefix));
-    }
-
-    public function getPrependedXpath()
-    {
-        return array(
-            'simple' => array(
-                'some_xpath',
-                'some_tag1',
-                'some_xpath/some_tag1',
-            ),
-            'with slash' => array(
-                'some_xpath',
-                '/some_tag1',
-                'some_xpath/some_tag1',
-            ),
-            'union' => array(
-                'some_xpath',
-                'some_tag1 | some_tag2',
-                'some_xpath/some_tag1 | some_xpath/some_tag2',
-            ),
-            'wrapped union' => array(
-                'some_xpath',
-                '(some_tag1 | some_tag2)/some_child',
-                '(some_xpath/some_tag1 | some_xpath/some_tag2)/some_child',
-            ),
-            'multiple wrapped union' => array(
-                'some_xpath',
-                '( ( some_tag1 | some_tag2)/some_child | some_tag3)/leaf',
-                '( ( some_xpath/some_tag1 | some_xpath/some_tag2)/some_child | some_xpath/some_tag3)/leaf',
-            ),
-            'parent union' => array(
-                'some_xpath | another_xpath',
-                'some_tag1 | some_tag2',
-                '(some_xpath | another_xpath)/some_tag1 | (some_xpath | another_xpath)/some_tag2',
-            ),
-            'complex condition' => array(
-                'some_xpath',
-                'some_tag1 | some_tag2[@foo = "bar|"] | some_tag3[foo | bar]',
-                'some_xpath/some_tag1 | some_xpath/some_tag2[@foo = "bar|"] | some_xpath/some_tag3[foo | bar]',
-            ),
-            'multiline' => array(
-                'some_xpath',
-                "some_tag1 | some_tag2[@foo =\n 'bar|'']\n | some_tag3[foo | bar]",
-                "some_xpath/some_tag1 | some_xpath/some_tag2[@foo =\n 'bar|''] | some_xpath/some_tag3[foo | bar]",
-            ),
-        );
-    }
-}
diff --git a/core/vendor/behat/mink/tests/Selector/fixtures/test.html b/core/vendor/behat/mink/tests/Selector/fixtures/test.html
deleted file mode 100644
index c64ae10..0000000
--- a/core/vendor/behat/mink/tests/Selector/fixtures/test.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-</head>
-<body>
-    <div id="test-for-link-selector">
-        <!-- match links with `href` attribute -->
-        <a href="#" id="link-text"></a>
-        <a href="#">link-text</a>
-        <a href="#" title="link-text"></a>
-        <a href="#" rel="link-text"></a>
-        <a href="#">
-            <img src="#" alt="link-text"/>
-        </a>
-        <!-- partial match -->
-        <a href="#">some link-text</a>
-        <a href="#" title="some link-text"></a>
-        <a href="#" rel="some link-text"></a>
-        <a href="#">
-            <img src="#" alt="some link-text"/>
-        </a>
-
-        <!-- don't match links without `href` attribute -->
-        <a id="bad-link-text"></a>
-        <a>bad-link-text</a>
-        <a title="bad-link-text"></a>
-        <a rel="bad-link-text"></a>
-        <a>
-            <img src="#" alt="bad-link-text"/>
-        </a>
-
-        <!-- match links with `role=link` attribute -->
-        <span role="Link" id="link-role-text"></span>
-        <span role="lInk" value="link-role-text"></span>
-        <span role="liNk" title="link-role-text"></span>
-        <span role="linK">link-role-text</span>
-        <!-- partial match -->
-        <span role="link" value="some link-role-text"></span>
-        <span role="link" title="some link-role-text"></span>
-        <span role="link">some link-role-text</span>
-    </div>
-
-    <div id="test-for-fieldset-selector">
-        <!-- match fieldsets -->
-        <fieldset id="fieldset-text"></fieldset>
-
-        <fieldset>
-            <legend>fieldset-text</legend>
-        </fieldset>
-        <!-- partial match -->
-        <fieldset>
-            <legend>fieldset-text sample</legend>
-        </fieldset>
-
-        <!-- don't match fieldsets -->
-        <fieldset>fieldset-text</fieldset>
-        <fieldset></fieldset>
-    </div>
-
-    <div id="test-for-content-selector">
-        content-text
-    </div>
-    <!-- partial match -->
-    <div id="test-for-partial-content-selector">
-        some content-text
-    </div>
-
-    <form>
-        <div id="test-for-field-selector">
-            <!-- match fields by `id` attribute -->
-            <input id="the-field-input"/>
-            <textarea id="the-field-textarea"></textarea>
-            <select id="the-field-select"></select>
-
-            <!-- match fields by `name` attribute -->
-            <input name="the-field"/>
-            <textarea name="the-field"></textarea>
-            <select name="the-field"></select>
-
-            <!-- match fields by `placeholder` attribute -->
-            <input placeholder="the-field"/>
-            <textarea placeholder="the-field"></textarea>
-            <select placeholder="the-field"></select>
-
-            <!-- match fields by associated label -->
-            <label for="label-for-input">the-field</label><input id="label-for-input"/>
-            <label for="label-for-textarea">the-field</label><textarea id="label-for-textarea"></textarea>
-            <label for="label-for-select">the-field</label><select id="label-for-select"></select>
-
-            <!-- match fields, surrounded by matching label -->
-            <label>the-field<input/></label>
-            <label>the-field<textarea></textarea></label>
-            <label>the-field<select></select></label>
-
-            <!-- don't match fields by `id` attribute -->
-            <input type="Submit" id="the-field-submit-button"/>
-            <input type="iMage" id="the-field-image-button"/>
-            <input type="butTon" id="the-field-button-button"/>
-            <input type="resEt" id="the-field-reset-button"/>
-            <input type="hidDen" id="the-field-hidden"/>
-
-            <!-- don't match fields by `name` attribute -->
-            <input type="submit" name="the-field"/>
-            <input type="image" name="the-field"/>
-            <input type="button" name="the-field"/>
-            <input type="reset" name="the-field"/>
-            <input type="hidden" name="the-field"/>
-
-            <!-- don't match fields by `placeholder` attribute -->
-            <input type="submit" placeholder="the-field"/>
-            <input type="image" placeholder="the-field"/>
-            <input type="button" placeholder="the-field"/>
-            <input type="reset" placeholder="the-field"/>
-            <input type="hidden" placeholder="the-field"/>
-
-            <!-- don't match fields by associated label -->
-            <label for="label-for-the-field-submit-button">the-field</label><input type="submit" id="label-for-the-field-submit-button"/>
-            <label for="label-for-the-field-image-button">the-field</label><input type="image" id="label-for-the-field-image-button"/>
-            <label for="label-for-the-field-button-button">the-field</label><input type="button" id="label-for-the-field-button-button"/>
-            <label for="label-for-the-field-reset-button">the-field</label><input type="reset" id="label-for-the-field-reset-button"/>
-            <label for="label-for-the-field-hidden">the-field</label><input type="hidden" id="label-for-the-field-hidden"/>
-
-            <!-- don't match fields, surrounded by matching label -->
-            <label>the-field<input type="submit"/></label>
-            <label>the-field<input type="image"/></label>
-            <label>the-field<input type="button"/></label>
-            <label>the-field<input type="reset"/></label>
-            <label>the-field<input type="hidden"/></label>
-        </div>
-
-        <div id="test-for-button-selector">
-            <!-- match buttons by `id` attribute -->
-            <input type="Submit" id="input-submit-button"/>
-            <input type="iMage" id="input-image-button"/>
-            <input type="butTon" id="input-button-button"/>
-            <input type="resEt" id="input-reset-button"/>
-
-            <button type="submit" id="button-submit-button"></button>
-            <button type="image" id="button-image-button"></button>
-            <button type="button" id="button-button-button"></button>
-            <button type="reset" id="button-reset-button"></button>
-
-            <!-- match buttons by `name` attribute -->
-            <input type="submit" name="button-text"/>
-            <input type="image" name="button-text"/>
-            <input type="button" name="button-text"/>
-            <input type="reset" name="button-text"/>
-            <button type="submit" name="button-text"></button>
-            <button type="image" name="button-text"></button>
-            <button type="button" name="button-text"></button>
-            <button type="reset" name="button-text"></button>
-
-            <!-- match buttons by `value` attribute -->
-            <input type="submit" value="button-text"/>
-            <input type="image" value="button-text"/>
-            <input type="button" value="button-text"/>
-            <input type="reset" value="button-text"/>
-            <button type="submit" value="button-text"></button>
-            <button type="image" value="button-text"></button>
-            <button type="button" value="button-text"></button>
-            <button type="reset" value="button-text"></button>
-            <!-- Partial match -->
-            <input type="submit" value="some button-text"/>
-            <input type="image" value="some button-text"/>
-            <input type="button" value="some button-text"/>
-            <input type="reset" value="some button-text"/>
-            <button type="submit" value="some button-text"></button>
-            <button type="image" value="some button-text"></button>
-            <button type="button" value="some button-text"></button>
-            <button type="reset" value="some button-text"></button>
-
-            <!-- match buttons by `title` attribute -->
-            <input type="submit" title="button-text"/>
-            <input type="image" title="button-text"/>
-            <input type="button" title="button-text"/>
-            <input type="reset" title="button-text"/>
-            <button type="submit" title="button-text"></button>
-            <button type="image" title="button-text"></button>
-            <button type="button" title="button-text"></button>
-            <button type="reset" title="button-text"></button>
-            <!-- partial match -->
-            <input type="submit" title="some button-text"/>
-            <input type="image" title="some button-text"/>
-            <input type="button" title="some button-text"/>
-            <input type="reset" title="some button-text"/>
-            <button type="submit" title="some button-text"></button>
-            <button type="image" title="some button-text"></button>
-            <button type="button" title="some button-text"></button>
-            <button type="reset" title="some button-text"></button>
-
-            <!-- match some buttons by `alt` attribute -->
-            <input type="submit" alt="button-alt-text"/>
-            <input type="imaGe" alt="button-alt-text"/>
-            <input type="button" alt="button-alt-text"/>
-            <input type="reset" alt="button-alt-text"/>
-            <!-- partial match -->
-            <input type="submit" alt="some button-alt-text"/>
-            <input type="image" alt="some button-alt-text"/>
-            <input type="button" alt="some button-alt-text"/>
-            <input type="reset" alt="some button-alt-text"/>
-
-            <!-- match by `button` text -->
-            <button>button-text</button>
-            <!-- partial match -->
-            <button>some button-text</button>
-
-            <!-- match buttons with `role=button` & `id` attribute -->
-            <span role="Button" type="submit" id="role-button-submit-button"></span>
-            <span role="bUtton" type="image" id="role-button-image-button"></span>
-            <span role="buTton" type="button" id="role-button-button-button"></span>
-            <span role="butTon" type="reset" id="role-button-reset-button"></span>
-
-            <!-- match buttons with `role=button` & `name` attribute -->
-            <span role="buttOn" type="submit" name="button-role-text"></span>
-            <span role="buttoN" type="image" name="button-role-text"></span>
-            <span role="button" type="button" name="button-role-text"></span>
-            <span role="button" type="reset" name="button-role-text"></span>
-
-            <!-- match buttons with `role=button` & `value` attribute -->
-            <span role="button" type="submit" value="button-role-text"></span>
-            <span role="button" type="image" value="button-role-text"></span>
-            <span role="button" type="button" value="button-role-text"></span>
-            <span role="button" type="reset" value="button-role-text"></span>
-            <!-- partial match -->
-            <span role="button" type="submit" value="some button-role-text"></span>
-            <span role="button" type="image" value="some button-role-text"></span>
-            <span role="button" type="button" value="some button-role-text"></span>
-            <span role="button" type="reset" value="some button-role-text"></span>
-
-            <!-- match buttons with `role=button` & `title` attribute -->
-            <span role="button" type="submit" title="button-role-text"></span>
-            <span role="button" type="image" title="button-role-text"></span>
-            <span role="button" type="button" title="button-role-text"></span>
-            <span role="button" type="reset" title="button-role-text"></span>
-            <!-- partial match -->
-            <span role="button" type="submit" title="some button-role-text"></span>
-            <span role="button" type="image" title="some button-role-text"></span>
-            <span role="button" type="button" title="some button-role-text"></span>
-            <span role="button" type="reset" title="some button-role-text"></span>
-        </div>
-
-        <div id="test-for-checkbox-selector">
-            <input type="Checkbox" id="the-field-checkbox"/>
-            <input type="checkBox" name="the-field"/>
-            <input type="cheCkbox" placeholder="the-field"/>
-            <label for="label-for-checkbox">the-field</label><input type="checkboX" id="label-for-checkbox"/>
-            <label>the-field<input type="chEckbox"/></label>
-        </div>
-
-        <div id="test-for-radio-selector">
-            <input type="Radio" id="the-field-radio"/>
-            <input type="raDio" name="the-field"/>
-            <input type="radIo" placeholder="the-field"/>
-            <label for="label-for-radio">the-field</label><input type="radiO" id="label-for-radio"/>
-            <label>the-field<input type="radIo"/></label>
-        </div>
-
-        <div id="test-for-file-selector">
-            <input type="File" id="the-field-file"/>
-            <input type="fIle" name="the-field"/>
-            <input type="fiLe" placeholder="the-field"/>
-            <label for="label-for-file">the-field</label><input type="filE" id="label-for-file"/>
-            <label>the-field<input type="fiLe"/></label>
-        </div>
-
-        <div id="test-for-select-related-stuff">
-            <!-- match select stuff -->
-            <select name="the-select-stuff-test">
-                <optgroup label="group-label">
-                    <option value="option-value"></option>
-                </optgroup>
-                <option value="">option-value</option>
-                <!-- partial match -->
-                <optgroup label="some group-label">
-                    <option value="">some option-value</option>
-                </optgroup>
-            </select>
-
-            <!-- don't match select stuff -->
-            <select name="the-select-stuff-test">
-                <optgroup label="">some group-label</optgroup>
-                <option value="some option-value"></option>
-            </select>
-        </div>
-    </form>
-
-    <div id="test-for-table-selector">
-        <!-- match tables -->
-        <table id="the-table"></table>
-        <table>
-            <caption>the-table</caption>
-        </table>
-        <!-- partial match -->
-        <table>
-            <caption>some the-table</caption>
-        </table>
-
-        <!-- don't match tables -->
-        <table>
-            <tr>
-                <th>the-table</th>
-                <td>the-table</td>
-            </tr>
-        </table>
-    </div>
-
-    <input name="the-table"/>
-</body>
-</html>
diff --git a/core/vendor/behat/mink/tests/SessionTest.php b/core/vendor/behat/mink/tests/SessionTest.php
deleted file mode 100644
index 9e6796d..0000000
--- a/core/vendor/behat/mink/tests/SessionTest.php
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests;
-
-use Behat\Mink\Session;
-
-class SessionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    private $driver;
-    private $selectorsHandler;
-
-    /**
-     * Session.
-     *
-     * @var Session
-     */
-    private $session;
-
-    protected function setUp()
-    {
-        $this->driver = $this->getMockBuilder('Behat\Mink\Driver\DriverInterface')->getMock();
-        $this->selectorsHandler = $this->getMockBuilder('Behat\Mink\Selector\SelectorsHandler')->getMock();
-        $this->session = new Session($this->driver, $this->selectorsHandler);
-    }
-
-    public function testGetDriver()
-    {
-        $this->assertSame($this->driver, $this->session->getDriver());
-    }
-
-    public function testGetPage()
-    {
-        $this->assertInstanceOf('Behat\Mink\Element\DocumentElement', $this->session->getPage());
-    }
-
-    public function testGetSelectorsHandler()
-    {
-        $this->assertSame($this->selectorsHandler, $this->session->getSelectorsHandler());
-    }
-
-    public function testInstantiateWithoutOptionalDeps()
-    {
-        $session = new Session($this->driver);
-
-        $this->assertInstanceOf('Behat\Mink\Selector\SelectorsHandler', $session->getSelectorsHandler());
-    }
-
-    public function testIsStarted()
-    {
-        $this->driver->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-
-        $this->assertTrue($this->session->isStarted());
-    }
-
-    public function testStart()
-    {
-        $this->driver->expects($this->once())
-            ->method('start');
-
-        $this->session->start();
-    }
-
-    public function testStop()
-    {
-        $this->driver->expects($this->once())
-            ->method('stop');
-
-        $this->session->stop();
-    }
-
-    public function testRestart()
-    {
-        $this->driver->expects($this->at(0))
-            ->method('stop');
-        $this->driver->expects($this->at(1))
-            ->method('start');
-
-        $this->session->restart();
-    }
-
-    public function testVisit()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('visit')
-            ->with($url = 'some_url');
-
-        $this->session->visit($url);
-    }
-
-    public function testReset()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('reset');
-
-        $this->session->reset();
-    }
-
-    public function testSetBasicAuth()
-    {
-        $this->driver->expects($this->once())
-            ->method('setBasicAuth')
-            ->with('user', 'pass');
-
-        $this->session->setBasicAuth('user', 'pass');
-    }
-
-    public function testSetRequestHeader()
-    {
-        $this->driver->expects($this->once())
-            ->method('setRequestHeader')
-            ->with('name', 'value');
-
-        $this->session->setRequestHeader('name', 'value');
-    }
-
-    public function testGetResponseHeaders()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('getResponseHeaders')
-            ->will($this->returnValue($ret = array(2, 3, 4)));
-
-        $this->assertEquals($ret, $this->session->getResponseHeaders());
-    }
-
-    public function testSetCookie()
-    {
-        $this->driver->expects($this->once())
-            ->method('setCookie')
-            ->with('name', 'value');
-
-        $this->session->setCookie('name', 'value');
-    }
-
-    public function testGetCookie()
-    {
-        $this->driver->expects($this->once())
-            ->method('getCookie')
-            ->with('name')
-            ->will($this->returnValue('value'));
-
-        $this->assertEquals('value', $this->session->getCookie('name'));
-    }
-
-    public function testGetStatusCode()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('getStatusCode')
-            ->will($this->returnValue($ret = 404));
-
-        $this->assertEquals($ret, $this->session->getStatusCode());
-    }
-
-    public function testGetCurrentUrl()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('getCurrentUrl')
-            ->will($this->returnValue($ret = 'http://some.url'));
-
-        $this->assertEquals($ret, $this->session->getCurrentUrl());
-    }
-
-    public function testGetScreenshot()
-    {
-        $this->driver->expects($this->once())
-            ->method('getScreenshot')
-            ->will($this->returnValue('screenshot'));
-
-        $this->assertEquals('screenshot', $this->session->getScreenshot());
-    }
-
-    public function testGetWindowNames()
-    {
-        $this->driver->expects($this->once())
-            ->method('getWindowNames')
-            ->will($this->returnValue($names = array('window 1', 'window 2')));
-
-        $this->assertEquals($names, $this->session->getWindowNames());
-    }
-
-    public function testGetWindowName()
-    {
-        $this->driver->expects($this->once())
-            ->method('getWindowName')
-            ->will($this->returnValue('name'));
-
-        $this->assertEquals('name', $this->session->getWindowName());
-    }
-
-    public function testReload()
-    {
-        $this->driver->expects($this->once())
-            ->method('reload');
-
-        $this->session->reload();
-    }
-
-    public function testBack()
-    {
-        $this->driver->expects($this->once())
-            ->method('back');
-
-        $this->session->back();
-    }
-
-    public function testForward()
-    {
-        $this->driver->expects($this->once())
-            ->method('forward');
-
-        $this->session->forward();
-    }
-
-    public function testSwitchToWindow()
-    {
-        $this->driver->expects($this->once())
-            ->method('switchToWindow')
-            ->with('test');
-
-        $this->session->switchToWindow('test');
-    }
-
-    public function testSwitchToIFrame()
-    {
-        $this->driver->expects($this->once())
-            ->method('switchToIFrame')
-            ->with('test');
-
-        $this->session->switchToIFrame('test');
-    }
-
-    public function testExecuteScript()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('executeScript')
-            ->with($arg = 'JS');
-
-        $this->session->executeScript($arg);
-    }
-
-    public function testEvaluateScript()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('evaluateScript')
-            ->with($arg = 'JS func')
-            ->will($this->returnValue($ret = '23'));
-
-        $this->assertEquals($ret, $this->session->evaluateScript($arg));
-    }
-
-    public function testWait()
-    {
-        $this->driver
-            ->expects($this->once())
-            ->method('wait')
-            ->with(1000, 'function () {}');
-
-        $this->session->wait(1000, 'function () {}');
-    }
-
-    public function testResizeWindow()
-    {
-        $this->driver->expects($this->once())
-            ->method('resizeWindow')
-            ->with(800, 600, 'test');
-
-        $this->session->resizeWindow(800, 600, 'test');
-    }
-
-    public function testMaximizeWindow()
-    {
-        $this->driver->expects($this->once())
-            ->method('maximizeWindow')
-            ->with('test');
-
-        $this->session->maximizeWindow('test');
-    }
-}
diff --git a/core/vendor/behat/mink/tests/WebAssertTest.php b/core/vendor/behat/mink/tests/WebAssertTest.php
deleted file mode 100644
index c3bd3cf..0000000
--- a/core/vendor/behat/mink/tests/WebAssertTest.php
+++ /dev/null
@@ -1,1133 +0,0 @@
-<?php
-
-namespace Behat\Mink\Tests;
-
-use Behat\Mink\Exception\ExpectationException;
-use Behat\Mink\WebAssert;
-
-class WebAssertTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    private $session;
-    /**
-     * @var WebAssert
-     */
-    private $assert;
-
-    public function setUp()
-    {
-        $this->session = $this->getMockBuilder('Behat\\Mink\\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->assert = new WebAssert($this->session);
-    }
-
-    public function testAddressEquals()
-    {
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://example.com/script.php/sub/url?param=true#webapp/nav'))
-        ;
-
-        $this->assertCorrectAssertion('addressEquals', array('/sub/url#webapp/nav'));
-        $this->assertWrongAssertion(
-            'addressEquals',
-            array('sub_url'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Current page is "/sub/url#webapp/nav", but "sub_url" expected.'
-        );
-    }
-
-    public function testAddressEqualsEmptyPath()
-    {
-        $this->session
-            ->expects($this->once())
-            ->method('getCurrentUrl')
-            ->willReturn('http://example.com')
-        ;
-
-        $this->assertCorrectAssertion('addressEquals', array('/'));
-    }
-
-    public function testAddressNotEquals()
-    {
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://example.com/script.php/sub/url'))
-        ;
-
-        $this->assertCorrectAssertion('addressNotEquals', array('sub_url'));
-        $this->assertWrongAssertion(
-            'addressNotEquals',
-            array('/sub/url'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Current page is "/sub/url", but should not be.'
-        );
-    }
-
-    public function testAddressMatches()
-    {
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getCurrentUrl')
-            ->will($this->returnValue('http://example.com/script.php/sub/url'))
-        ;
-
-        $this->assertCorrectAssertion('addressMatches', array('/su.*rl/'));
-        $this->assertWrongAssertion(
-            'addressMatches',
-            array('/suburl/'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Current page "/sub/url" does not match the regex "/suburl/".'
-        );
-    }
-
-    public function testCookieEquals()
-    {
-        $this->session->
-            expects($this->any())->
-            method('getCookie')->
-            will($this->returnValueMap(
-                array(
-                    array('foo', 'bar'),
-                    array('bar', 'baz'),
-                )
-            ));
-
-        $this->assertCorrectAssertion('cookieEquals', array('foo', 'bar'));
-        $this->assertWrongAssertion(
-            'cookieEquals',
-            array('bar', 'foo'),
-            'Behat\Mink\Exception\ExpectationException',
-            'Cookie "bar" value is "baz", but should be "foo".'
-        );
-    }
-
-    public function testCookieExists()
-    {
-        $this->session->
-            expects($this->any())->
-            method('getCookie')->
-            will($this->returnValueMap(
-                array(
-                    array('foo', '1'),
-                    array('bar', null),
-                )
-            ));
-
-        $this->assertCorrectAssertion('cookieExists', array('foo'));
-        $this->assertWrongAssertion(
-            'cookieExists',
-            array('bar'),
-            'Behat\Mink\Exception\ExpectationException',
-            'Cookie "bar" is not set, but should be.'
-        );
-    }
-
-    public function testStatusCodeEquals()
-    {
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->will($this->returnValue(200))
-        ;
-
-        $this->assertCorrectAssertion('statusCodeEquals', array(200));
-        $this->assertWrongAssertion(
-            'statusCodeEquals',
-            array(404),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Current response status code is 200, but 404 expected.'
-        );
-    }
-
-    public function testStatusCodeNotEquals()
-    {
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getStatusCode')
-            ->will($this->returnValue(404))
-        ;
-
-        $this->assertCorrectAssertion('statusCodeNotEquals', array(200));
-        $this->assertWrongAssertion(
-            'statusCodeNotEquals',
-            array(404),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Current response status code is 404, but should not be.'
-        );
-    }
-
-    public function testPageTextContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getText')
-            ->will($this->returnValue("Some  page\n\ttext"))
-        ;
-
-        $this->assertCorrectAssertion('pageTextContains', array('PAGE text'));
-        $this->assertWrongAssertion(
-            'pageTextContains',
-            array('html text'),
-            'Behat\\Mink\\Exception\\ResponseTextException',
-            'The text "html text" was not found anywhere in the text of the current page.'
-        );
-    }
-
-    public function testPageTextNotContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getText')
-            ->will($this->returnValue("Some  html\n\ttext"))
-        ;
-
-        $this->assertCorrectAssertion('pageTextNotContains', array('PAGE text'));
-        $this->assertWrongAssertion(
-            'pageTextNotContains',
-            array('HTML text'),
-            'Behat\\Mink\\Exception\\ResponseTextException',
-            'The text "HTML text" appears in the text of this page, but it should not.'
-        );
-    }
-
-    public function testPageTextMatches()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getText')
-            ->will($this->returnValue('Some page text'))
-        ;
-
-        $this->assertCorrectAssertion('pageTextMatches', array('/PA.E/i'));
-        $this->assertWrongAssertion(
-            'pageTextMatches',
-            array('/html/'),
-            'Behat\\Mink\\Exception\\ResponseTextException',
-            'The pattern /html/ was not found anywhere in the text of the current page.'
-        );
-    }
-
-    public function testPageTextNotMatches()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getText')
-            ->will($this->returnValue('Some html text'))
-        ;
-
-        $this->assertCorrectAssertion('pageTextNotMatches', array('/PA.E/i'));
-        $this->assertWrongAssertion(
-            'pageTextNotMatches',
-            array('/HTML/i'),
-            'Behat\\Mink\\Exception\\ResponseTextException',
-            'The pattern /HTML/i was found in the text of the current page, but it should not.'
-        );
-    }
-
-    public function testResponseContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getContent')
-            ->will($this->returnValue('Some page text'))
-        ;
-
-        $this->assertCorrectAssertion('responseContains', array('PAGE text'));
-        $this->assertWrongAssertion(
-            'responseContains',
-            array('html text'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The string "html text" was not found anywhere in the HTML response of the current page.'
-        );
-    }
-
-    public function testResponseNotContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getContent')
-            ->will($this->returnValue('Some html text'))
-        ;
-
-        $this->assertCorrectAssertion('responseNotContains', array('PAGE text'));
-        $this->assertWrongAssertion(
-            'responseNotContains',
-            array('HTML text'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The string "HTML text" appears in the HTML response of this page, but it should not.'
-        );
-    }
-
-    public function testResponseMatches()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getContent')
-            ->will($this->returnValue('Some page text'))
-        ;
-
-        $this->assertCorrectAssertion('responseMatches', array('/PA.E/i'));
-        $this->assertWrongAssertion(
-            'responseMatches',
-            array('/html/'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The pattern /html/ was not found anywhere in the HTML response of the page.'
-        );
-    }
-
-    public function testResponseNotMatches()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('getContent')
-            ->will($this->returnValue('Some html text'))
-        ;
-
-        $this->assertCorrectAssertion('responseNotMatches', array('/PA.E/i'));
-        $this->assertWrongAssertion(
-            'responseNotMatches',
-            array('/HTML/i'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The pattern /HTML/i was found in the HTML response of the page, but it should not.'
-        );
-    }
-
-    public function testElementsCount()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('findAll')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue(array(1, 2)))
-        ;
-
-        $this->assertCorrectAssertion('elementsCount', array('css', 'h2 > span', 2));
-        $this->assertWrongAssertion(
-            'elementsCount',
-            array('css', 'h2 > span', 3),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            '2 elements matching css "h2 > span" found on the page, but should be 3.'
-        );
-    }
-
-    public function testElementExists()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(4))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->onConsecutiveCalls(1, null, 1, null))
-        ;
-
-        $this->assertCorrectAssertion('elementExists', array('css', 'h2 > span'));
-        $this->assertWrongAssertion(
-            'elementExists',
-            array('css', 'h2 > span'),
-            'Behat\\Mink\\Exception\\ElementNotFoundException',
-            'Element matching css "h2 > span" not found.'
-        );
-
-        $this->assertCorrectAssertion('elementExists', array('css', 'h2 > span', $page));
-        $this->assertWrongAssertion(
-            'elementExists',
-            array('css', 'h2 > span', $page),
-            'Behat\\Mink\\Exception\\ElementNotFoundException',
-            'Element matching css "h2 > span" not found.'
-        );
-    }
-
-    public function testElementExistsWithArrayLocator()
-    {
-        $container = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session->expects($this->never())
-            ->method('getPage')
-        ;
-
-        $container
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('named', array('element', 'Test'))
-            ->will($this->onConsecutiveCalls(1, null))
-        ;
-
-        $this->assertCorrectAssertion('elementExists', array('named', array('element', 'Test'), $container));
-        $this->assertWrongAssertion(
-            'elementExists',
-            array('named', array('element', 'Test'), $container),
-            'Behat\\Mink\\Exception\\ElementNotFoundException',
-            'Element with named "element Test" not found.'
-        );
-    }
-
-    public function testElementNotExists()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(4))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->onConsecutiveCalls(null, 1, null, 1))
-        ;
-
-        $this->assertCorrectAssertion('elementNotExists', array('css', 'h2 > span'));
-        $this->assertWrongAssertion(
-            'elementNotExists',
-            array('css', 'h2 > span'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'An element matching css "h2 > span" appears on this page, but it should not.'
-        );
-
-        $this->assertCorrectAssertion('elementNotExists', array('css', 'h2 > span', $page));
-        $this->assertWrongAssertion(
-            'elementNotExists',
-            array('css', 'h2 > span', $page),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'An element matching css "h2 > span" appears on this page, but it should not.'
-        );
-    }
-
-    /**
-     * @dataProvider getArrayLocatorFormats
-     */
-    public function testElementNotExistsArrayLocator($selector, $locator, $expectedMessage)
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->once())
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->once())
-            ->method('find')
-            ->with($selector, $locator)
-            ->will($this->returnValue(1))
-        ;
-
-        $this->assertWrongAssertion(
-            'elementNotExists',
-            array($selector, $locator),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            $expectedMessage
-        );
-    }
-
-    public function getArrayLocatorFormats()
-    {
-        return array(
-            'named' => array(
-                'named',
-                array('button', 'Test'),
-                'An button matching locator "Test" appears on this page, but it should not.',
-            ),
-            'custom' => array(
-                'custom',
-                array('test', 'foo'),
-                'An element matching custom "test foo" appears on this page, but it should not.',
-            ),
-        );
-    }
-
-    public function testElementTextContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('getText')
-            ->will($this->returnValue('element text'))
-        ;
-
-        $this->assertCorrectAssertion('elementTextContains', array('css', 'h2 > span', 'text'));
-        $this->assertWrongAssertion(
-            'elementTextContains',
-            array('css', 'h2 > span', 'html'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The text "html" was not found in the text of the element matching css "h2 > span".'
-        );
-    }
-
-    public function testElementTextNotContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('getText')
-            ->will($this->returnValue('element text'))
-        ;
-
-        $this->assertCorrectAssertion('elementTextNotContains', array('css', 'h2 > span', 'html'));
-        $this->assertWrongAssertion(
-            'elementTextNotContains',
-            array('css', 'h2 > span', 'text'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The text "text" appears in the text of the element matching css "h2 > span", but it should not.'
-        );
-    }
-
-    public function testElementContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('getHtml')
-            ->will($this->returnValue('element html'))
-        ;
-
-        $this->assertCorrectAssertion('elementContains', array('css', 'h2 > span', 'html'));
-        $this->assertWrongAssertion(
-            'elementContains',
-            array('css', 'h2 > span', 'text'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The string "text" was not found in the HTML of the element matching css "h2 > span".'
-        );
-    }
-
-    public function testElementNotContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('getHtml')
-            ->will($this->returnValue('element html'))
-        ;
-
-        $this->assertCorrectAssertion('elementNotContains', array('css', 'h2 > span', 'text'));
-        $this->assertWrongAssertion(
-            'elementNotContains',
-            array('css', 'h2 > span', 'html'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The string "html" appears in the HTML of the element matching css "h2 > span", but it should not.'
-        );
-    }
-
-    public function testElementAttributeContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('hasAttribute')
-            ->will($this->returnValue(true))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('getAttribute')
-            ->with('name')
-            ->will($this->returnValue('foo'))
-        ;
-
-        $this->assertCorrectAssertion('elementAttributeContains', array('css', 'h2 > span', 'name', 'foo'));
-        $this->assertWrongAssertion(
-            'elementAttributeContains',
-            array('css', 'h2 > span', 'name', 'bar'),
-            'Behat\\Mink\\Exception\\ElementHtmlException',
-            'The text "bar" was not found in the attribute "name" of the element matching css "h2 > span".'
-        );
-    }
-
-    public function testElementAttributeExists()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->at(0))
-            ->method('hasAttribute')
-            ->with('name')
-            ->will($this->returnValue(true))
-        ;
-
-        $element
-            ->expects($this->at(1))
-            ->method('hasAttribute')
-            ->with('name')
-            ->will($this->returnValue(false))
-        ;
-
-        $this->assertCorrectAssertion('elementAttributeExists', array('css', 'h2 > span', 'name'));
-        $this->assertWrongAssertion(
-            'elementAttributeExists',
-            array('css', 'h2 > span', 'name'),
-            'Behat\\Mink\\Exception\\ElementHtmlException',
-            'The attribute "name" was not found in the element matching css "h2 > span".'
-        );
-    }
-
-    public function testElementAttributeNotContains()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('find')
-            ->with('css', 'h2 > span')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('hasAttribute')
-            ->will($this->returnValue(true))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('getAttribute')
-            ->with('name')
-            ->will($this->returnValue('foo'))
-        ;
-
-        $this->assertCorrectAssertion('elementAttributeNotContains', array('css', 'h2 > span', 'name', 'bar'));
-        $this->assertWrongAssertion(
-            'elementAttributeNotContains',
-            array('css', 'h2 > span', 'name', 'foo'),
-            'Behat\\Mink\\Exception\\ElementHtmlException',
-            'The text "foo" was found in the attribute "name" of the element matching css "h2 > span".'
-        );
-    }
-
-    public function testFieldExists()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('findField')
-            ->with('username')
-            ->will($this->onConsecutiveCalls($element, null))
-        ;
-
-        $this->assertCorrectAssertion('fieldExists', array('username'));
-        $this->assertWrongAssertion(
-            'fieldExists',
-            array('username'),
-            'Behat\\Mink\\Exception\\ElementNotFoundException',
-            'Form field with id|name|label|value "username" not found.'
-        );
-    }
-
-    public function testFieldNotExists()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('findField')
-            ->with('username')
-            ->will($this->onConsecutiveCalls(null, $element))
-        ;
-
-        $this->assertCorrectAssertion('fieldNotExists', array('username'));
-        $this->assertWrongAssertion(
-            'fieldNotExists',
-            array('username'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'A field "username" appears on this page, but it should not.'
-        );
-    }
-
-    public function testFieldValueEquals()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(4))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(4))
-            ->method('findField')
-            ->with('username')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(4))
-            ->method('getValue')
-            ->will($this->returnValue(234))
-        ;
-
-        $this->assertCorrectAssertion('fieldValueEquals', array('username', 234));
-        $this->assertWrongAssertion(
-            'fieldValueEquals',
-            array('username', 235),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The field "username" value is "234", but "235" expected.'
-        );
-        $this->assertWrongAssertion(
-            'fieldValueEquals',
-            array('username', 23),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The field "username" value is "234", but "23" expected.'
-        );
-        $this->assertWrongAssertion(
-            'fieldValueEquals',
-            array('username', ''),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The field "username" value is "234", but "" expected.'
-        );
-    }
-
-    public function testFieldValueNotEquals()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(4))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(4))
-            ->method('findField')
-            ->with('username')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(4))
-            ->method('getValue')
-            ->will($this->returnValue(235))
-        ;
-
-        $this->assertCorrectAssertion('fieldValueNotEquals', array('username', 234));
-        $this->assertWrongAssertion(
-            'fieldValueNotEquals',
-            array('username', 235),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'The field "username" value is "235", but it should not be.'
-        );
-        $this->assertCorrectAssertion('fieldValueNotEquals', array('username', 23));
-        $this->assertCorrectAssertion('fieldValueNotEquals', array('username', ''));
-    }
-
-    public function testCheckboxChecked()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('findField')
-            ->with('remember_me')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('isChecked')
-            ->will($this->onConsecutiveCalls(true, false))
-        ;
-
-        $this->assertCorrectAssertion('checkboxChecked', array('remember_me'));
-        $this->assertWrongAssertion(
-            'checkboxChecked',
-            array('remember_me'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Checkbox "remember_me" is not checked, but it should be.'
-        );
-    }
-
-    public function testCheckboxNotChecked()
-    {
-        $page = $this->getMockBuilder('Behat\\Mink\\Element\\DocumentElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $element = $this->getMockBuilder('Behat\\Mink\\Element\\NodeElement')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $this->session
-            ->expects($this->exactly(2))
-            ->method('getPage')
-            ->will($this->returnValue($page))
-        ;
-
-        $page
-            ->expects($this->exactly(2))
-            ->method('findField')
-            ->with('remember_me')
-            ->will($this->returnValue($element))
-        ;
-
-        $element
-            ->expects($this->exactly(2))
-            ->method('isChecked')
-            ->will($this->onConsecutiveCalls(false, true))
-        ;
-
-        $this->assertCorrectAssertion('checkboxNotChecked', array('remember_me'));
-        $this->assertWrongAssertion(
-            'checkboxNotChecked',
-            array('remember_me'),
-            'Behat\\Mink\\Exception\\ExpectationException',
-            'Checkbox "remember_me" is checked, but it should not be.'
-        );
-    }
-
-    private function assertCorrectAssertion($assertion, $arguments)
-    {
-        try {
-            call_user_func_array(array($this->assert, $assertion), $arguments);
-        } catch (ExpectationException $e) {
-            $this->fail('Correct assertion should not throw an exception: '.$e->getMessage());
-        }
-    }
-
-    private function assertWrongAssertion($assertion, $arguments, $exceptionClass, $exceptionMessage)
-    {
-        if ('Behat\Mink\Exception\ExpectationException' !== $exceptionClass && !is_subclass_of($exceptionClass, 'Behat\Mink\Exception\ExpectationException')) {
-            throw new \LogicException('Wrong expected exception for the failed assertion. It should be a Behat\Mink\Exception\ExpectationException.');
-        }
-
-        try {
-            call_user_func_array(array($this->assert, $assertion), $arguments);
-            $this->fail('Wrong assertion should throw an exception');
-        } catch (ExpectationException $e) {
-            $this->assertInstanceOf($exceptionClass, $e);
-            $this->assertSame($exceptionMessage, $e->getMessage());
-        }
-    }
-}
diff --git a/core/vendor/bin/phpunit b/core/vendor/bin/phpunit
deleted file mode 120000
index 2c48930..0000000
--- a/core/vendor/bin/phpunit
+++ /dev/null
@@ -1 +0,0 @@
-../phpunit/phpunit/phpunit
\ No newline at end of file
diff --git a/core/vendor/composer/ClassLoader.php b/core/vendor/composer/ClassLoader.php
deleted file mode 100644
index 5e1469e..0000000
--- a/core/vendor/composer/ClassLoader.php
+++ /dev/null
@@ -1,413 +0,0 @@
-<?php
-
-/*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- *     Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer\Autoload;
-
-/**
- * ClassLoader implements a PSR-0 class loader
- *
- * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
- *
- *     $loader = new \Composer\Autoload\ClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- *     // to enable searching the include path (eg. for PEAR packages)
- *     $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * This class is loosely based on the Symfony UniversalClassLoader.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class ClassLoader
-{
-    // PSR-4
-    private $prefixLengthsPsr4 = array();
-    private $prefixDirsPsr4 = array();
-    private $fallbackDirsPsr4 = array();
-
-    // PSR-0
-    private $prefixesPsr0 = array();
-    private $fallbackDirsPsr0 = array();
-
-    private $useIncludePath = false;
-    private $classMap = array();
-
-    private $classMapAuthoritative = false;
-
-    public function getPrefixes()
-    {
-        if (!empty($this->prefixesPsr0)) {
-            return call_user_func_array('array_merge', $this->prefixesPsr0);
-        }
-
-        return array();
-    }
-
-    public function getPrefixesPsr4()
-    {
-        return $this->prefixDirsPsr4;
-    }
-
-    public function getFallbackDirs()
-    {
-        return $this->fallbackDirsPsr0;
-    }
-
-    public function getFallbackDirsPsr4()
-    {
-        return $this->fallbackDirsPsr4;
-    }
-
-    public function getClassMap()
-    {
-        return $this->classMap;
-    }
-
-    /**
-     * @param array $classMap Class to filename map
-     */
-    public function addClassMap(array $classMap)
-    {
-        if ($this->classMap) {
-            $this->classMap = array_merge($this->classMap, $classMap);
-        } else {
-            $this->classMap = $classMap;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix, either
-     * appending or prepending to the ones previously set for this prefix.
-     *
-     * @param string       $prefix  The prefix
-     * @param array|string $paths   The PSR-0 root directories
-     * @param bool         $prepend Whether to prepend the directories
-     */
-    public function add($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            if ($prepend) {
-                $this->fallbackDirsPsr0 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr0
-                );
-            } else {
-                $this->fallbackDirsPsr0 = array_merge(
-                    $this->fallbackDirsPsr0,
-                    (array) $paths
-                );
-            }
-
-            return;
-        }
-
-        $first = $prefix[0];
-        if (!isset($this->prefixesPsr0[$first][$prefix])) {
-            $this->prefixesPsr0[$first][$prefix] = (array) $paths;
-
-            return;
-        }
-        if ($prepend) {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixesPsr0[$first][$prefix]
-            );
-        } else {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                $this->prefixesPsr0[$first][$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace, either
-     * appending or prepending to the ones previously set for this namespace.
-     *
-     * @param string       $prefix  The prefix/namespace, with trailing '\\'
-     * @param array|string $paths   The PSR-0 base directories
-     * @param bool         $prepend Whether to prepend the directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function addPsr4($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            // Register directories for the root namespace.
-            if ($prepend) {
-                $this->fallbackDirsPsr4 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr4
-                );
-            } else {
-                $this->fallbackDirsPsr4 = array_merge(
-                    $this->fallbackDirsPsr4,
-                    (array) $paths
-                );
-            }
-        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
-            // Register directories for a new namespace.
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        } elseif ($prepend) {
-            // Prepend directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixDirsPsr4[$prefix]
-            );
-        } else {
-            // Append directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                $this->prefixDirsPsr4[$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix,
-     * replacing any others previously set for this prefix.
-     *
-     * @param string       $prefix The prefix
-     * @param array|string $paths  The PSR-0 base directories
-     */
-    public function set($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr0 = (array) $paths;
-        } else {
-            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace,
-     * replacing any others previously set for this namespace.
-     *
-     * @param string       $prefix The prefix/namespace, with trailing '\\'
-     * @param array|string $paths  The PSR-4 base directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setPsr4($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr4 = (array) $paths;
-        } else {
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Turns on searching the include path for class files.
-     *
-     * @param bool $useIncludePath
-     */
-    public function setUseIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Turns off searching the prefix and fallback directories for classes
-     * that have not been registered with the class map.
-     *
-     * @param bool $classMapAuthoritative
-     */
-    public function setClassMapAuthoritative($classMapAuthoritative)
-    {
-        $this->classMapAuthoritative = $classMapAuthoritative;
-    }
-
-    /**
-     * Should class lookup fail if not found in the current class map?
-     *
-     * @return bool
-     */
-    public function isClassMapAuthoritative()
-    {
-        return $this->classMapAuthoritative;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param  string    $class The name of the class
-     * @return bool|null True if loaded, null otherwise
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            includeFile($file);
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|false The path if found, false otherwise
-     */
-    public function findFile($class)
-    {
-        // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
-        if ('\\' == $class[0]) {
-            $class = substr($class, 1);
-        }
-
-        // class map lookup
-        if (isset($this->classMap[$class])) {
-            return $this->classMap[$class];
-        }
-        if ($this->classMapAuthoritative) {
-            return false;
-        }
-
-        $file = $this->findFileWithExtension($class, '.php');
-
-        // Search for Hack files if we are running on HHVM
-        if ($file === null && defined('HHVM_VERSION')) {
-            $file = $this->findFileWithExtension($class, '.hh');
-        }
-
-        if ($file === null) {
-            // Remember that this class does not exist.
-            return $this->classMap[$class] = false;
-        }
-
-        return $file;
-    }
-
-    private function findFileWithExtension($class, $ext)
-    {
-        // PSR-4 lookup
-        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
-
-        $first = $class[0];
-        if (isset($this->prefixLengthsPsr4[$first])) {
-            foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-4 fallback dirs
-        foreach ($this->fallbackDirsPsr4 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 lookup
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
-                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
-        } else {
-            // PEAR-like class name
-            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
-        }
-
-        if (isset($this->prefixesPsr0[$first])) {
-            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($dirs as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-0 fallback dirs
-        foreach ($this->fallbackDirsPsr0 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 include paths.
-        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
-            return $file;
-        }
-    }
-}
-
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
-    include $file;
-}
diff --git a/core/vendor/composer/LICENSE b/core/vendor/composer/LICENSE
deleted file mode 100644
index c8d57af..0000000
--- a/core/vendor/composer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Copyright (c) 2015 Nils Adermann, Jordi Boggiano
-
-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/core/vendor/composer/autoload_classmap.php b/core/vendor/composer/autoload_classmap.php
deleted file mode 100644
index e66d49b..0000000
--- a/core/vendor/composer/autoload_classmap.php
+++ /dev/null
@@ -1,438 +0,0 @@
-<?php
-
-// autoload_classmap.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'Drupal\\Component\\Utility\\Timer' => $baseDir . '/lib/Drupal/Component/Utility/Timer.php',
-    'Drupal\\Component\\Utility\\Unicode' => $baseDir . '/lib/Drupal/Component/Utility/Unicode.php',
-    'Drupal\\Core\\Database\\Database' => $baseDir . '/lib/Drupal/Core/Database/Database.php',
-    'Drupal\\Core\\DrupalKernel' => $baseDir . '/lib/Drupal/Core/DrupalKernel.php',
-    'Drupal\\Core\\DrupalKernelInterface' => $baseDir . '/lib/Drupal/Core/DrupalKernelInterface.php',
-    'Drupal\\Core\\Site\\Settings' => $baseDir . '/lib/Drupal/Core/Site/Settings.php',
-    'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
-    'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
-    'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
-    'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
-    'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
-    'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
-    'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
-    'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
-    'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
-    'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/src/Extensions/TicketListener.php',
-    'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
-    'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
-    'PHPUnit_Framework_BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
-    'PHPUnit_Framework_CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
-    'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint.php',
-    'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/And.php',
-    'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
-    'PHPUnit_Framework_Constraint_ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
-    'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
-    'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
-    'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
-    'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
-    'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
-    'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
-    'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
-    'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
-    'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
-    'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
-    'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
-    'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
-    'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
-    'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
-    'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
-    'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
-    'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
-    'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
-    'PHPUnit_Framework_Constraint_IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
-    'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
-    'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
-    'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
-    'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
-    'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
-    'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
-    'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
-    'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
-    'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
-    'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
-    'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
-    'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
-    'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
-    'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
-    'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
-    'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
-    'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
-    'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
-    'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error.php',
-    'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
-    'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
-    'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
-    'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',
-    'PHPUnit_Framework_ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
-    'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
-    'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
-    'PHPUnit_Framework_IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
-    'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
-    'PHPUnit_Framework_InvalidCoversTargetError' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php',
-    'PHPUnit_Framework_InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
-    'PHPUnit_Framework_MockObject_BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
-    'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
-    'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
-    'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
-    'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
-    'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
-    'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
-    'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
-    'PHPUnit_Framework_MockObject_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
-    'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
-    'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
-    'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
-    'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
-    'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
-    'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
-    'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
-    'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
-    'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
-    'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
-    'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
-    'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
-    'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
-    'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
-    'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
-    'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
-    'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
-    'PHPUnit_Framework_MockObject_RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
-    'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
-    'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
-    'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
-    'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
-    'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
-    'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
-    'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
-    'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',
-    'PHPUnit_Framework_RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',
-    'PHPUnit_Framework_RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
-    'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
-    'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
-    'PHPUnit_Framework_SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
-    'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
-    'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
-    'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',
-    'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
-    'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
-    'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
-    'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
-    'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
-    'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
-    'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
-    'PHPUnit_Framework_UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
-    'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',
-    'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
-    'PHPUnit_Runner_Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
-    'PHPUnit_Runner_Filter_Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
-    'PHPUnit_Runner_Filter_GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group.php',
-    'PHPUnit_Runner_Filter_Group_Exclude' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
-    'PHPUnit_Runner_Filter_Group_Include' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
-    'PHPUnit_Runner_Filter_Test' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Test.php',
-    'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
-    'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
-    'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
-    'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
-    'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
-    'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
-    'PHPUnit_Util_Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
-    'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',
-    'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
-    'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php',
-    'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
-    'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
-    'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',
-    'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
-    'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
-    'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JSON.php',
-    'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
-    'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TAP.php',
-    'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/src/Util/PHP.php',
-    'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Default.php',
-    'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Windows.php',
-    'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
-    'PHPUnit_Util_Regex' => $vendorDir . '/phpunit/phpunit/src/Util/Regex.php',
-    'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/src/Util/String.php',
-    'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
-    'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
-    'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
-    'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
-    'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
-    'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
-    'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
-    'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/src/Util/XML.php',
-    'PHP_CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
-    'PHP_CodeCoverage_Driver' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver.php',
-    'PHP_CodeCoverage_Driver_HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php',
-    'PHP_CodeCoverage_Driver_Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php',
-    'PHP_CodeCoverage_Exception' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Exception.php',
-    'PHP_CodeCoverage_Exception_UnintentionallyCoveredCode' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php',
-    'PHP_CodeCoverage_Filter' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Filter.php',
-    'PHP_CodeCoverage_Report_Clover' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php',
-    'PHP_CodeCoverage_Report_Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php',
-    'PHP_CodeCoverage_Report_Factory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php',
-    'PHP_CodeCoverage_Report_HTML' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php',
-    'PHP_CodeCoverage_Report_HTML_Renderer_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php',
-    'PHP_CodeCoverage_Report_Node' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php',
-    'PHP_CodeCoverage_Report_Node_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php',
-    'PHP_CodeCoverage_Report_Node_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php',
-    'PHP_CodeCoverage_Report_Node_Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php',
-    'PHP_CodeCoverage_Report_PHP' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php',
-    'PHP_CodeCoverage_Report_Text' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php',
-    'PHP_CodeCoverage_Report_XML' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php',
-    'PHP_CodeCoverage_Report_XML_Directory' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php',
-    'PHP_CodeCoverage_Report_XML_File' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php',
-    'PHP_CodeCoverage_Report_XML_File_Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php',
-    'PHP_CodeCoverage_Report_XML_File_Method' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php',
-    'PHP_CodeCoverage_Report_XML_File_Report' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php',
-    'PHP_CodeCoverage_Report_XML_File_Unit' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php',
-    'PHP_CodeCoverage_Report_XML_Node' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php',
-    'PHP_CodeCoverage_Report_XML_Project' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php',
-    'PHP_CodeCoverage_Report_XML_Tests' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php',
-    'PHP_CodeCoverage_Report_XML_Totals' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php',
-    'PHP_CodeCoverage_Util' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Util.php',
-    'PHP_CodeCoverage_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php',
-    'PHP_Timer' => $vendorDir . '/phpunit/php-timer/PHP/Timer.php',
-    'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',
-    'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
-    'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
-    'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
-    'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
-    'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
-    'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
-    'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
-    'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
-    'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
-    'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
-    'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
-    'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
-    'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
-    'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
-    'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
-    'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
-    'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
-    'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
-    'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
-    'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
-    'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => $vendorDir . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
-    'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
-    'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
-    'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
-    'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
-    'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
-    'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
-    'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
-    'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
-    'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/Exception.php',
-    'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
-    'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/RuntimeException.php',
-    'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
-    'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
-    'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
-    'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
-    'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
-    'SessionHandlerInterface' => $vendorDir . '/symfony/http-foundation/Resources/stubs/SessionHandlerInterface.php',
-    'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php',
-    'Symfony\\Component\\HttpFoundation\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php',
-    'Symfony\\Component\\HttpFoundation\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php',
-    'Symfony\\Component\\HttpFoundation\\Request' => $vendorDir . '/symfony/http-foundation/Request.php',
-    'Symfony\\Component\\HttpFoundation\\ServerBag' => $vendorDir . '/symfony/http-foundation/ServerBag.php',
-    'Symfony\\Component\\HttpKernel\\HttpKernel' => $vendorDir . '/symfony/http-kernel/HttpKernel.php',
-    'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => $vendorDir . '/symfony/http-kernel/HttpKernelInterface.php',
-    'Symfony\\Component\\HttpKernel\\TerminableInterface' => $vendorDir . '/symfony/http-kernel/TerminableInterface.php',
-    'Text_Template' => $vendorDir . '/phpunit/php-text-template/Text/Template.php',
-);
diff --git a/core/vendor/composer/autoload_files.php b/core/vendor/composer/autoload_files.php
deleted file mode 100644
index 693fec9..0000000
--- a/core/vendor/composer/autoload_files.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-// autoload_files.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
-    $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
-    $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
-    $baseDir . '/lib/Drupal.php',
-);
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
deleted file mode 100644
index 63f4b70..0000000
--- a/core/vendor/composer/autoload_namespaces.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-// autoload_namespaces.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'phpDocumentor' => array($vendorDir . '/phpdocumentor/reflection-docblock/src'),
-    'org\\bovigo\\vfs\\' => array($vendorDir . '/mikey179/vfsStream/src/main/php'),
-    'Twig_' => array($vendorDir . '/twig/twig/lib'),
-    'Stack' => array($vendorDir . '/stack/builder/src'),
-    'Psr\\Log\\' => array($vendorDir . '/psr/log'),
-    'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src'),
-    'Egulias\\' => array($vendorDir . '/egulias/email-validator/src'),
-    'EasyRdf_' => array($vendorDir . '/easyrdf/easyrdf/lib'),
-    'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src'),
-    'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'),
-    'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib'),
-    'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/lib'),
-    'Doctrine\\Common\\Cache\\' => array($vendorDir . '/doctrine/cache/lib'),
-    'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib'),
-    'Doctrine\\Common\\' => array($vendorDir . '/doctrine/common/lib'),
-    'Behat\\Mink\\Driver' => array($vendorDir . '/behat/mink-browserkit-driver/src'),
-);
diff --git a/core/vendor/composer/autoload_psr4.php b/core/vendor/composer/autoload_psr4.php
deleted file mode 100644
index aeaabc1..0000000
--- a/core/vendor/composer/autoload_psr4.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-// autoload_psr4.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'Zend\\Stdlib\\' => array($vendorDir . '/zendframework/zend-stdlib'),
-    'Zend\\Feed\\' => array($vendorDir . '/zendframework/zend-feed'),
-    'Zend\\Escaper\\' => array($vendorDir . '/zendframework/zend-escaper'),
-    'Zend\\Diactoros\\' => array($vendorDir . '/zendframework/zend-diactoros/src'),
-    'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
-    'Symfony\\Component\\Validator\\' => array($vendorDir . '/symfony/validator'),
-    'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
-    'Symfony\\Component\\Serializer\\' => array($vendorDir . '/symfony/serializer'),
-    'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'),
-    'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'),
-    'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'),
-    'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
-    'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
-    'Symfony\\Component\\DomCrawler\\' => array($vendorDir . '/symfony/dom-crawler'),
-    'Symfony\\Component\\DependencyInjection\\' => array($vendorDir . '/symfony/dependency-injection'),
-    'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'),
-    'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'),
-    'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
-    'Symfony\\Component\\ClassLoader\\' => array($vendorDir . '/symfony/class-loader'),
-    'Symfony\\Component\\BrowserKit\\' => array($vendorDir . '/symfony/browser-kit'),
-    'Symfony\\Cmf\\Component\\Routing\\' => array($vendorDir . '/symfony-cmf/routing'),
-    'Symfony\\Bridge\\PsrHttpMessage\\' => array($vendorDir . '/symfony/psr-http-message-bridge'),
-    'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
-    'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'),
-    'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
-    'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
-    'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
-    'Goutte\\' => array($vendorDir . '/fabpot/goutte/Goutte'),
-    'Drupal\\Driver\\' => array($baseDir . '/../drivers/lib/Drupal/Driver'),
-    'Drupal\\Core\\' => array($baseDir . '/lib/Drupal/Core'),
-    'Drupal\\Component\\' => array($baseDir . '/lib/Drupal/Component'),
-    'Behat\\Mink\\Driver\\' => array($vendorDir . '/behat/mink-goutte-driver/src'),
-    'Behat\\Mink\\' => array($vendorDir . '/behat/mink/src'),
-);
diff --git a/core/vendor/composer/autoload_real.php b/core/vendor/composer/autoload_real.php
deleted file mode 100644
index f41b172..0000000
--- a/core/vendor/composer/autoload_real.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-// autoload_real.php @generated by Composer
-
-class ComposerAutoloaderInitDrupal8
-{
-    private static $loader;
-
-    public static function loadClassLoader($class)
-    {
-        if ('Composer\Autoload\ClassLoader' === $class) {
-            require __DIR__ . '/ClassLoader.php';
-        }
-    }
-
-    public static function getLoader()
-    {
-        if (null !== self::$loader) {
-            return self::$loader;
-        }
-
-        spl_autoload_register(array('ComposerAutoloaderInitDrupal8', 'loadClassLoader'), true, true);
-        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInitDrupal8', 'loadClassLoader'));
-
-        $includePaths = require __DIR__ . '/include_paths.php';
-        array_push($includePaths, get_include_path());
-        set_include_path(join(PATH_SEPARATOR, $includePaths));
-
-        $map = require __DIR__ . '/autoload_namespaces.php';
-        foreach ($map as $namespace => $path) {
-            $loader->set($namespace, $path);
-        }
-
-        $map = require __DIR__ . '/autoload_psr4.php';
-        foreach ($map as $namespace => $path) {
-            $loader->setPsr4($namespace, $path);
-        }
-
-        $classMap = require __DIR__ . '/autoload_classmap.php';
-        if ($classMap) {
-            $loader->addClassMap($classMap);
-        }
-
-        $loader->register(true);
-
-        $includeFiles = require __DIR__ . '/autoload_files.php';
-        foreach ($includeFiles as $file) {
-            composerRequireDrupal8($file);
-        }
-
-        return $loader;
-    }
-}
-
-function composerRequireDrupal8($file)
-{
-    require $file;
-}
diff --git a/core/vendor/composer/include_paths.php b/core/vendor/composer/include_paths.php
deleted file mode 100644
index 9490138..0000000
--- a/core/vendor/composer/include_paths.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-// include_paths.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    $vendorDir . '/phpunit/php-text-template',
-    $vendorDir . '/phpunit/php-timer',
-);
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
deleted file mode 100644
index e406431..0000000
--- a/core/vendor/composer/installed.json
+++ /dev/null
@@ -1,3481 +0,0 @@
-[
-    {
-        "name": "doctrine/inflector",
-        "version": "v1.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/inflector.git",
-            "reference": "v1.0"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/inflector/zipball/54b8333d2a5682afdc690060c1cf384ba9f47f08",
-            "reference": "v1.0",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2"
-        },
-        "time": "2013-01-10 21:49:15",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\Inflector\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jonathan Wage",
-                "email": "jonwage@gmail.com",
-                "homepage": "http://www.jwage.com/"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com",
-                "homepage": "http://www.instaclick.com"
-            },
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Benjamin Eberlei",
-                "email": "kontakt@beberlei.de"
-            },
-            {
-                "name": "Johannes M. Schmitt",
-                "email": "schmittjoh@gmail.com",
-                "homepage": "https://github.com/schmittjoh",
-                "role": "Developer of wrapped JMSSerializerBundle"
-            }
-        ],
-        "description": "Common String Manipulations with regard to casing and singular/plural rules.",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "inflection",
-            "pluarlize",
-            "singuarlize",
-            "string"
-        ]
-    },
-    {
-        "name": "doctrine/collections",
-        "version": "v1.2",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/collections.git",
-            "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2",
-            "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2"
-        },
-        "time": "2014-02-03 23:07:43",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.2.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\Collections\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jonathan Wage",
-                "email": "jonwage@gmail.com",
-                "homepage": "http://www.jwage.com/",
-                "role": "Creator"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com",
-                "homepage": "http://www.instaclick.com"
-            },
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Benjamin Eberlei",
-                "email": "kontakt@beberlei.de"
-            },
-            {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com",
-                "homepage": "https://github.com/schmittjoh",
-                "role": "Developer of wrapped JMSSerializerBundle"
-            }
-        ],
-        "description": "Collections Abstraction library",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "array",
-            "collections",
-            "iterator"
-        ]
-    },
-    {
-        "name": "doctrine/cache",
-        "version": "v1.3.1",
-        "version_normalized": "1.3.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/cache.git",
-            "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/cache/zipball/cf483685798a72c93bf4206e3dd6358ea07d64e7",
-            "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2"
-        },
-        "conflict": {
-            "doctrine/common": ">2.2,<2.4"
-        },
-        "require-dev": {
-            "phpunit/phpunit": ">=3.7",
-            "satooshi/php-coveralls": "~0.6"
-        },
-        "time": "2014-09-17 14:24:04",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.4.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\Cache\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Benjamin Eberlei",
-                "email": "kontakt@beberlei.de"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com"
-            },
-            {
-                "name": "Jonathan Wage",
-                "email": "jonwage@gmail.com"
-            },
-            {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com"
-            }
-        ],
-        "description": "Caching library offering an object-oriented API for many cache backends",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "cache",
-            "caching"
-        ]
-    },
-    {
-        "name": "doctrine/annotations",
-        "version": "v1.2.1",
-        "version_normalized": "1.2.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/annotations.git",
-            "reference": "6a6bec0670bb6e71a263b08bc1b98ea242928633"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/annotations/zipball/6a6bec0670bb6e71a263b08bc1b98ea242928633",
-            "reference": "6a6bec0670bb6e71a263b08bc1b98ea242928633",
-            "shasum": ""
-        },
-        "require": {
-            "doctrine/lexer": "1.*",
-            "php": ">=5.3.2"
-        },
-        "require-dev": {
-            "doctrine/cache": "1.*",
-            "phpunit/phpunit": "4.*"
-        },
-        "time": "2014-09-25 16:45:30",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.3.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\Annotations\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Benjamin Eberlei",
-                "email": "kontakt@beberlei.de"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com"
-            },
-            {
-                "name": "Jonathan Wage",
-                "email": "jonwage@gmail.com"
-            },
-            {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com"
-            }
-        ],
-        "description": "Docblock Annotations Parser",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "annotations",
-            "docblock",
-            "parser"
-        ]
-    },
-    {
-        "name": "phpunit/php-text-template",
-        "version": "1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-text-template.git",
-            "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
-            "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2014-01-30 17:20:04",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "Text/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Simple template engine.",
-        "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-        "keywords": [
-            "template"
-        ]
-    },
-    {
-        "name": "doctrine/instantiator",
-        "version": "1.0.4",
-        "version_normalized": "1.0.4.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/instantiator.git",
-            "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119",
-            "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3,<8.0-DEV"
-        },
-        "require-dev": {
-            "athletic/athletic": "~0.1.8",
-            "ext-pdo": "*",
-            "ext-phar": "*",
-            "phpunit/phpunit": "~4.0",
-            "squizlabs/php_codesniffer": "2.0.*@ALPHA"
-        },
-        "time": "2014-10-13 12:58:55",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Instantiator\\": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Marco Pivetta",
-                "email": "ocramius@gmail.com",
-                "homepage": "http://ocramius.github.com/"
-            }
-        ],
-        "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-        "homepage": "https://github.com/doctrine/instantiator",
-        "keywords": [
-            "constructor",
-            "instantiate"
-        ]
-    },
-    {
-        "name": "phpunit/php-timer",
-        "version": "1.0.5",
-        "version_normalized": "1.0.5.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-timer.git",
-            "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
-            "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2013-08-02 07:42:54",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "PHP/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "include-path": [
-            ""
-        ],
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Utility class for timing",
-        "homepage": "https://github.com/sebastianbergmann/php-timer/",
-        "keywords": [
-            "timer"
-        ]
-    },
-    {
-        "name": "psr/log",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-fig/log.git",
-            "reference": "1.0.0"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
-            "reference": "1.0.0",
-            "shasum": ""
-        },
-        "time": "2012-12-21 11:40:51",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Psr\\Log\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "PHP-FIG",
-                "homepage": "http://www.php-fig.org/"
-            }
-        ],
-        "description": "Common interface for logging libraries",
-        "keywords": [
-            "log",
-            "psr",
-            "psr-3"
-        ]
-    },
-    {
-        "name": "stack/builder",
-        "version": "v1.0.2",
-        "version_normalized": "1.0.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/stackphp/builder.git",
-            "reference": "b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/stackphp/builder/zipball/b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7",
-            "reference": "b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0",
-            "symfony/http-foundation": "~2.1",
-            "symfony/http-kernel": "~2.1"
-        },
-        "require-dev": {
-            "silex/silex": "~1.0"
-        },
-        "time": "2014-01-28 19:42:24",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Stack": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Igor Wiedler",
-                "email": "igor@wiedler.ch",
-                "homepage": "http://wiedler.ch/igor/"
-            }
-        ],
-        "description": "Builder for stack middlewares based on HttpKernelInterface.",
-        "keywords": [
-            "stack"
-        ]
-    },
-    {
-        "name": "symfony-cmf/routing",
-        "version": "1.3.0",
-        "version_normalized": "1.3.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony-cmf/Routing.git",
-            "reference": "8e87981d72c6930a27585dcd3119f3199f6cb2a6"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/8e87981d72c6930a27585dcd3119f3199f6cb2a6",
-            "reference": "8e87981d72c6930a27585dcd3119f3199f6cb2a6",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "psr/log": "~1.0",
-            "symfony/http-kernel": "~2.2",
-            "symfony/routing": "~2.2"
-        },
-        "require-dev": {
-            "symfony/config": "~2.2",
-            "symfony/dependency-injection": "~2.0@stable",
-            "symfony/event-dispatcher": "~2.1"
-        },
-        "suggest": {
-            "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1"
-        },
-        "time": "2014-10-20 20:55:17",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.3-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Cmf\\Component\\Routing\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Symfony CMF Community",
-                "homepage": "https://github.com/symfony-cmf/Routing/contributors"
-            }
-        ],
-        "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers",
-        "homepage": "http://cmf.symfony.com",
-        "keywords": [
-            "database",
-            "routing"
-        ]
-    },
-    {
-        "name": "easyrdf/easyrdf",
-        "version": "0.9.0",
-        "version_normalized": "0.9.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/njh/easyrdf.git",
-            "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/njh/easyrdf/zipball/bb9fd99768d23af0c5b7b55cec5baddc201272b8",
-            "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8",
-            "shasum": ""
-        },
-        "require": {
-            "ext-mbstring": "*",
-            "ext-pcre": "*",
-            "php": ">=5.2.8"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~3.5",
-            "sami/sami": "~1.4",
-            "squizlabs/php_codesniffer": "~1.4.3"
-        },
-        "suggest": {
-            "ml/json-ld": "~1.0"
-        },
-        "time": "2014-11-07 18:02:16",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "EasyRdf_": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Nicholas Humfrey",
-                "email": "njh@aelius.com",
-                "homepage": "http://www.aelius.com/njh/",
-                "role": "Developer"
-            },
-            {
-                "name": "Alexey Zakhlestin",
-                "email": "indeyets@gmail.com",
-                "role": "Developer"
-            }
-        ],
-        "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
-        "homepage": "http://www.easyrdf.org/",
-        "keywords": [
-            "Linked Data",
-            "RDF",
-            "Semantic Web",
-            "Turtle",
-            "rdfa",
-            "sparql"
-        ]
-    },
-    {
-        "name": "sebastian/global-state",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/global-state.git",
-            "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
-            "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.2"
-        },
-        "suggest": {
-            "ext-uopz": "*"
-        },
-        "time": "2014-10-06 09:23:50",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Snapshotting of global state",
-        "homepage": "http://www.github.com/sebastianbergmann/global-state",
-        "keywords": [
-            "global state"
-        ]
-    },
-    {
-        "name": "doctrine/common",
-        "version": "v2.4.2",
-        "version_normalized": "2.4.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/common.git",
-            "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
-            "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
-            "shasum": ""
-        },
-        "require": {
-            "doctrine/annotations": "1.*",
-            "doctrine/cache": "1.*",
-            "doctrine/collections": "1.*",
-            "doctrine/inflector": "1.*",
-            "doctrine/lexer": "1.*",
-            "php": ">=5.3.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~3.7"
-        },
-        "time": "2014-05-21 19:28:51",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.4.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jonathan Wage",
-                "email": "jonwage@gmail.com",
-                "homepage": "http://www.jwage.com/",
-                "role": "Creator"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com",
-                "homepage": "http://www.instaclick.com"
-            },
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Benjamin Eberlei",
-                "email": "kontakt@beberlei.de"
-            },
-            {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com",
-                "homepage": "https://github.com/schmittjoh",
-                "role": "Developer of wrapped JMSSerializerBundle"
-            }
-        ],
-        "description": "Common Library for Doctrine projects",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "annotations",
-            "collections",
-            "eventmanager",
-            "persistence",
-            "spl"
-        ]
-    },
-    {
-        "name": "behat/mink",
-        "version": "v1.6.1",
-        "version_normalized": "1.6.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/minkphp/Mink.git",
-            "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/minkphp/Mink/zipball/8b68523a339ec991bcd638b39dc8f04f808da88a",
-            "reference": "8b68523a339ec991bcd638b39dc8f04f808da88a",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.1",
-            "symfony/css-selector": "~2.0"
-        },
-        "suggest": {
-            "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
-            "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation",
-            "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)",
-            "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)"
-        },
-        "time": "2015-02-04 17:02:06",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.6.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Behat\\Mink\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Konstantin Kudryashov",
-                "email": "ever.zet@gmail.com",
-                "homepage": "http://everzet.com"
-            }
-        ],
-        "description": "Browser controller/emulator abstraction for PHP",
-        "homepage": "http://mink.behat.org/",
-        "keywords": [
-            "browser",
-            "testing",
-            "web"
-        ]
-    },
-    {
-        "name": "behat/mink-browserkit-driver",
-        "version": "v1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/minkphp/MinkBrowserKitDriver.git",
-            "reference": "aed8f4a596b79014a75254c3e337511c33e38cbd"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/aed8f4a596b79014a75254c3e337511c33e38cbd",
-            "reference": "aed8f4a596b79014a75254c3e337511c33e38cbd",
-            "shasum": ""
-        },
-        "require": {
-            "behat/mink": "~1.6@dev",
-            "php": ">=5.3.1",
-            "symfony/browser-kit": "~2.0",
-            "symfony/dom-crawler": "~2.0"
-        },
-        "require-dev": {
-            "silex/silex": "~1.2"
-        },
-        "time": "2014-09-26 11:35:19",
-        "type": "mink-driver",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.2.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Behat\\Mink\\Driver": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Konstantin Kudryashov",
-                "email": "ever.zet@gmail.com",
-                "homepage": "http://everzet.com"
-            }
-        ],
-        "description": "Symfony2 BrowserKit driver for Mink framework",
-        "homepage": "http://mink.behat.org/",
-        "keywords": [
-            "Mink",
-            "Symfony2",
-            "browser",
-            "testing"
-        ]
-    },
-    {
-        "name": "masterminds/html5",
-        "version": "2.1.0",
-        "version_normalized": "2.1.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/Masterminds/html5-php.git",
-            "reference": "a10f8d392e1aad0b500f7b440c8f0d3bc9189704"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a10f8d392e1aad0b500f7b440c8f0d3bc9189704",
-            "reference": "a10f8d392e1aad0b500f7b440c8f0d3bc9189704",
-            "shasum": ""
-        },
-        "require": {
-            "ext-libxml": "*",
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "4.*",
-            "sami/sami": "~2.0",
-            "satooshi/php-coveralls": "0.6.*"
-        },
-        "time": "2015-02-09 16:26:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.1-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Masterminds\\": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Matt Butcher",
-                "email": "technosophos@gmail.com"
-            },
-            {
-                "name": "Asmir Mustafic",
-                "email": "goetas@gmail.com"
-            },
-            {
-                "name": "Matt Farina",
-                "email": "matt@mattfarina.com"
-            }
-        ],
-        "description": "An HTML5 parser and serializer.",
-        "homepage": "http://masterminds.github.io/html5-php",
-        "keywords": [
-            "HTML5",
-            "dom",
-            "html",
-            "parser",
-            "querypath",
-            "serializer",
-            "xml"
-        ]
-    },
-    {
-        "name": "zendframework/zend-stdlib",
-        "version": "2.4.0",
-        "version_normalized": "2.4.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zendframework/zend-stdlib.git",
-            "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cf05c5ba75606e47ffee91cedc72778da46f74c3",
-            "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.23"
-        },
-        "require-dev": {
-            "zendframework/zend-eventmanager": "self.version",
-            "zendframework/zend-filter": "self.version",
-            "zendframework/zend-serializer": "self.version",
-            "zendframework/zend-servicemanager": "self.version"
-        },
-        "suggest": {
-            "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
-            "zendframework/zend-filter": "To support naming strategy hydrator usage",
-            "zendframework/zend-serializer": "Zend\\Serializer component",
-            "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
-        },
-        "time": "2015-04-01 18:09:29",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Zend\\Stdlib\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "homepage": "https://github.com/zendframework/zf2",
-        "keywords": [
-            "stdlib",
-            "zf2"
-        ]
-    },
-    {
-        "name": "zendframework/zend-escaper",
-        "version": "2.4.0",
-        "version_normalized": "2.4.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zendframework/zend-escaper.git",
-            "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/15e5769e4fcdb4bf07ebd76500810e7070e23a97",
-            "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.23"
-        },
-        "time": "2015-04-01 18:02:07",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Zend\\Escaper\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "homepage": "https://github.com/zendframework/zf2",
-        "keywords": [
-            "escaper",
-            "zf2"
-        ]
-    },
-    {
-        "name": "zendframework/zend-feed",
-        "version": "2.4.0",
-        "version_normalized": "2.4.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zendframework/zend-feed.git",
-            "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/0f59e560364f1f1fcb09a96874328ae3ff690db2",
-            "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.23",
-            "zendframework/zend-escaper": "self.version",
-            "zendframework/zend-stdlib": "self.version"
-        },
-        "require-dev": {
-            "zendframework/zend-cache": "self.version",
-            "zendframework/zend-db": "self.version",
-            "zendframework/zend-http": "self.version",
-            "zendframework/zend-servicemanager": "self.version",
-            "zendframework/zend-validator": "self.version"
-        },
-        "suggest": {
-            "zendframework/zend-cache": "Zend\\Cache component",
-            "zendframework/zend-db": "Zend\\Db component",
-            "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader",
-            "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for default/recommended ExtensionManager implementations",
-            "zendframework/zend-validator": "Zend\\Validator component"
-        },
-        "time": "2015-04-01 18:09:25",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Zend\\Feed\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "description": "provides functionality for consuming RSS and Atom feeds",
-        "homepage": "https://github.com/zendframework/zf2",
-        "keywords": [
-            "feed",
-            "zf2"
-        ]
-    },
-    {
-        "name": "sebastian/version",
-        "version": "1.0.5",
-        "version_normalized": "1.0.5.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/version.git",
-            "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ab931d46cd0d3204a91e1b9a40c4bc13032b58e4",
-            "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4",
-            "shasum": ""
-        },
-        "time": "2015-02-24 06:35:25",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-        "homepage": "https://github.com/sebastianbergmann/version"
-    },
-    {
-        "name": "sebastian/recursion-context",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/recursion-context.git",
-            "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
-            "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.4"
-        },
-        "time": "2015-01-24 09:48:32",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Jeff Welch",
-                "email": "whatthejeff@gmail.com"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            },
-            {
-                "name": "Adam Harvey",
-                "email": "aharvey@php.net"
-            }
-        ],
-        "description": "Provides functionality to recursively process PHP variables",
-        "homepage": "http://www.github.com/sebastianbergmann/recursion-context"
-    },
-    {
-        "name": "sebastian/exporter",
-        "version": "1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/exporter.git",
-            "reference": "84839970d05254c73cde183a721c7af13aede943"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
-            "reference": "84839970d05254c73cde183a721c7af13aede943",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "sebastian/recursion-context": "~1.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.4"
-        },
-        "time": "2015-01-27 07:23:06",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.2.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Jeff Welch",
-                "email": "whatthejeff@gmail.com"
-            },
-            {
-                "name": "Volker Dusch",
-                "email": "github@wallbash.com"
-            },
-            {
-                "name": "Bernhard Schussek",
-                "email": "bschussek@2bepublished.at"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            },
-            {
-                "name": "Adam Harvey",
-                "email": "aharvey@php.net"
-            }
-        ],
-        "description": "Provides the functionality to export PHP variables for visualization",
-        "homepage": "http://www.github.com/sebastianbergmann/exporter",
-        "keywords": [
-            "export",
-            "exporter"
-        ]
-    },
-    {
-        "name": "sebastian/environment",
-        "version": "1.2.2",
-        "version_normalized": "1.2.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/environment.git",
-            "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
-            "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.4"
-        },
-        "time": "2015-01-01 10:01:08",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.3.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Provides functionality to handle HHVM/PHP environments",
-        "homepage": "http://www.github.com/sebastianbergmann/environment",
-        "keywords": [
-            "Xdebug",
-            "environment",
-            "hhvm"
-        ]
-    },
-    {
-        "name": "sebastian/diff",
-        "version": "1.3.0",
-        "version_normalized": "1.3.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/diff.git",
-            "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
-            "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.2"
-        },
-        "time": "2015-02-22 15:13:53",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.3-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Kore Nordmann",
-                "email": "mail@kore-nordmann.de"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Diff implementation",
-        "homepage": "http://www.github.com/sebastianbergmann/diff",
-        "keywords": [
-            "diff"
-        ]
-    },
-    {
-        "name": "sebastian/comparator",
-        "version": "1.1.1",
-        "version_normalized": "1.1.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/comparator.git",
-            "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
-            "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "sebastian/diff": "~1.2",
-            "sebastian/exporter": "~1.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.4"
-        },
-        "time": "2015-01-29 16:28:08",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.1.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Jeff Welch",
-                "email": "whatthejeff@gmail.com"
-            },
-            {
-                "name": "Volker Dusch",
-                "email": "github@wallbash.com"
-            },
-            {
-                "name": "Bernhard Schussek",
-                "email": "bschussek@2bepublished.at"
-            },
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Provides the functionality to compare PHP values for equality",
-        "homepage": "http://www.github.com/sebastianbergmann/comparator",
-        "keywords": [
-            "comparator",
-            "compare",
-            "equality"
-        ]
-    },
-    {
-        "name": "phpdocumentor/reflection-docblock",
-        "version": "2.0.4",
-        "version_normalized": "2.0.4.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-            "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
-            "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.0"
-        },
-        "suggest": {
-            "dflydev/markdown": "~1.0",
-            "erusev/parsedown": "~1.0"
-        },
-        "time": "2015-02-03 12:10:50",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "phpDocumentor": [
-                    "src/"
-                ]
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Mike van Riel",
-                "email": "mike.vanriel@naenius.com"
-            }
-        ]
-    },
-    {
-        "name": "phpspec/prophecy",
-        "version": "1.4.0",
-        "version_normalized": "1.4.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/phpspec/prophecy.git",
-            "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5",
-            "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5",
-            "shasum": ""
-        },
-        "require": {
-            "doctrine/instantiator": "^1.0.2",
-            "phpdocumentor/reflection-docblock": "~2.0",
-            "sebastian/comparator": "~1.1"
-        },
-        "require-dev": {
-            "phpspec/phpspec": "~2.0"
-        },
-        "time": "2015-03-27 19:31:25",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.4.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Prophecy\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Konstantin Kudryashov",
-                "email": "ever.zet@gmail.com",
-                "homepage": "http://everzet.com"
-            },
-            {
-                "name": "Marcello Duarte",
-                "email": "marcello.duarte@gmail.com"
-            }
-        ],
-        "description": "Highly opinionated mocking framework for PHP 5.3+",
-        "homepage": "https://github.com/phpspec/prophecy",
-        "keywords": [
-            "Double",
-            "Dummy",
-            "fake",
-            "mock",
-            "spy",
-            "stub"
-        ]
-    },
-    {
-        "name": "phpunit/phpunit-mock-objects",
-        "version": "2.3.1",
-        "version_normalized": "2.3.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-            "reference": "74ffb87f527f24616f72460e54b595f508dccb5c"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/74ffb87f527f24616f72460e54b595f508dccb5c",
-            "reference": "74ffb87f527f24616f72460e54b595f508dccb5c",
-            "shasum": ""
-        },
-        "require": {
-            "doctrine/instantiator": "~1.0,>=1.0.2",
-            "php": ">=5.3.3",
-            "phpunit/php-text-template": "~1.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.4"
-        },
-        "suggest": {
-            "ext-soap": "*"
-        },
-        "time": "2015-04-02 05:36:41",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.3.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Mock Object library for PHPUnit",
-        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-        "keywords": [
-            "mock",
-            "xunit"
-        ]
-    },
-    {
-        "name": "phpunit/php-token-stream",
-        "version": "1.4.1",
-        "version_normalized": "1.4.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-            "reference": "eab81d02569310739373308137284e0158424330"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330",
-            "reference": "eab81d02569310739373308137284e0158424330",
-            "shasum": ""
-        },
-        "require": {
-            "ext-tokenizer": "*",
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.2"
-        },
-        "time": "2015-04-08 04:46:07",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.4-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
-            }
-        ],
-        "description": "Wrapper around PHP's tokenizer extension.",
-        "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-        "keywords": [
-            "tokenizer"
-        ]
-    },
-    {
-        "name": "phpunit/php-file-iterator",
-        "version": "1.4.0",
-        "version_normalized": "1.4.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-            "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
-            "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2015-04-02 05:19:05",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.4.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-        "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-        "keywords": [
-            "filesystem",
-            "iterator"
-        ]
-    },
-    {
-        "name": "phpunit/php-code-coverage",
-        "version": "2.0.16",
-        "version_normalized": "2.0.16.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-            "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/934fd03eb6840508231a7f73eb8940cf32c3b66c",
-            "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "phpunit/php-file-iterator": "~1.3",
-            "phpunit/php-text-template": "~1.2",
-            "phpunit/php-token-stream": "~1.3",
-            "sebastian/environment": "~1.0",
-            "sebastian/version": "~1.0"
-        },
-        "require-dev": {
-            "ext-xdebug": ">=2.1.4",
-            "phpunit/phpunit": "~4"
-        },
-        "suggest": {
-            "ext-dom": "*",
-            "ext-xdebug": ">=2.2.1",
-            "ext-xmlwriter": "*"
-        },
-        "time": "2015-04-11 04:35:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
-            }
-        ],
-        "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-        "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-        "keywords": [
-            "coverage",
-            "testing",
-            "xunit"
-        ]
-    },
-    {
-        "name": "phpunit/phpunit",
-        "version": "4.6.4",
-        "version_normalized": "4.6.4.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit.git",
-            "reference": "163232991e652e6efed2f8470326fffa61e848e2"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/163232991e652e6efed2f8470326fffa61e848e2",
-            "reference": "163232991e652e6efed2f8470326fffa61e848e2",
-            "shasum": ""
-        },
-        "require": {
-            "ext-dom": "*",
-            "ext-json": "*",
-            "ext-pcre": "*",
-            "ext-reflection": "*",
-            "ext-spl": "*",
-            "php": ">=5.3.3",
-            "phpspec/prophecy": "~1.3,>=1.3.1",
-            "phpunit/php-code-coverage": "~2.0,>=2.0.11",
-            "phpunit/php-file-iterator": "~1.4",
-            "phpunit/php-text-template": "~1.2",
-            "phpunit/php-timer": "~1.0",
-            "phpunit/phpunit-mock-objects": "~2.3",
-            "sebastian/comparator": "~1.1",
-            "sebastian/diff": "~1.2",
-            "sebastian/environment": "~1.2",
-            "sebastian/exporter": "~1.2",
-            "sebastian/global-state": "~1.0",
-            "sebastian/version": "~1.0",
-            "symfony/yaml": "~2.1|~3.0"
-        },
-        "suggest": {
-            "phpunit/php-invoker": "~1.1"
-        },
-        "time": "2015-04-11 05:23:21",
-        "bin": [
-            "phpunit"
-        ],
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "4.6.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "src/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de",
-                "role": "lead"
-            }
-        ],
-        "description": "The PHP Unit Testing framework.",
-        "homepage": "https://phpunit.de/",
-        "keywords": [
-            "phpunit",
-            "testing",
-            "xunit"
-        ]
-    },
-    {
-        "name": "mikey179/vfsStream",
-        "version": "v1.5.0",
-        "version_normalized": "1.5.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/mikey179/vfsStream.git",
-            "reference": "4dc0d2f622412f561f5b242b19b98068bbbc883a"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/mikey179/vfsStream/zipball/4dc0d2f622412f561f5b242b19b98068bbbc883a",
-            "reference": "4dc0d2f622412f561f5b242b19b98068bbbc883a",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.5"
-        },
-        "time": "2015-03-29 11:19:49",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.5.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "org\\bovigo\\vfs\\": "src/main/php"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Frank Kleine",
-                "homepage": "http://frankkleine.de/",
-                "role": "Developer"
-            }
-        ],
-        "description": "Virtual file system to mock the real file system in unit tests.",
-        "homepage": "http://vfs.bovigo.org/"
-    },
-    {
-        "name": "doctrine/lexer",
-        "version": "v1.0.1",
-        "version_normalized": "1.0.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/doctrine/lexer.git",
-            "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
-            "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2"
-        },
-        "time": "2014-09-09 13:34:57",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Doctrine\\Common\\Lexer\\": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com"
-            },
-            {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com"
-            }
-        ],
-        "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "lexer",
-            "parser"
-        ]
-    },
-    {
-        "name": "psr/http-message",
-        "version": "1.0",
-        "version_normalized": "1.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-fig/http-message.git",
-            "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
-            "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "time": "2015-05-04 20:22: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",
-        "keywords": [
-            "http",
-            "http-message",
-            "psr",
-            "psr-7",
-            "request",
-            "response"
-        ]
-    },
-    {
-        "name": "symfony/psr-http-message-bridge",
-        "version": "v0.2",
-        "version_normalized": "0.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/psr-http-message-bridge.git",
-            "reference": "dc7e308e1dc2898a46776e2221a643cb08315453"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/dc7e308e1dc2898a46776e2221a643cb08315453",
-            "reference": "dc7e308e1dc2898a46776e2221a643cb08315453",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3",
-            "psr/http-message": "~1.0",
-            "symfony/http-foundation": "~2.3|~3.0"
-        },
-        "require-dev": {
-            "symfony/phpunit-bridge": "~2.7|~3.0"
-        },
-        "suggest": {
-            "zendframework/zend-diactoros": "To use the Zend Diactoros factory"
-        },
-        "time": "2015-05-29 17:57:12",
-        "type": "symfony-bridge",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Bridge\\PsrHttpMessage\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            }
-        ],
-        "description": "PSR HTTP message bridge",
-        "homepage": "http://symfony.com",
-        "keywords": [
-            "http",
-            "http-message",
-            "psr-7"
-        ]
-    },
-    {
-        "name": "zendframework/zend-diactoros",
-        "version": "1.1.0",
-        "version_normalized": "1.1.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/zendframework/zend-diactoros.git",
-            "reference": "df65f70fc36f24d51a90ad706a09cd9b74fc4dd8"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/df65f70fc36f24d51a90ad706a09cd9b74fc4dd8",
-            "reference": "df65f70fc36f24d51a90ad706a09cd9b74fc4dd8",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.4",
-            "psr/http-message": "~1.0"
-        },
-        "provide": {
-            "psr/http-message-implementation": "~1.0.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.6",
-            "squizlabs/php_codesniffer": "^2.3.1"
-        },
-        "time": "2015-06-24 20:42:54",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev",
-                "dev-develop": "1.1-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Zend\\Diactoros\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-2-Clause"
-        ],
-        "description": "PSR HTTP Message implementations",
-        "homepage": "https://github.com/zendframework/zend-diactoros",
-        "keywords": [
-            "http",
-            "psr",
-            "psr-7"
-        ]
-    },
-    {
-        "name": "guzzlehttp/guzzle",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/guzzle.git",
-            "reference": "1879fbe853b0c64d109e369c7aeff09849e62d1e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d687700d601f8b5f19b99ffc1c0f6af835a3c7b7",
-            "reference": "1879fbe853b0c64d109e369c7aeff09849e62d1e",
-            "shasum": ""
-        },
-        "require": {
-            "guzzlehttp/promises": "~1.0",
-            "guzzlehttp/psr7": "~1.1",
-            "php": ">=5.5.0"
-        },
-        "require-dev": {
-            "ext-curl": "*",
-            "phpunit/phpunit": "~4.0",
-            "psr/log": "~1.0"
-        },
-        "time": "2015-07-10 20:04:21",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "6.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "files": [
-                "src/functions_include.php"
-            ],
-            "psr-4": {
-                "GuzzleHttp\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Guzzle is a PHP HTTP client library",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "client",
-            "curl",
-            "framework",
-            "http",
-            "http client",
-            "rest",
-            "web service"
-        ]
-    },
-    {
-        "name": "fabpot/goutte",
-        "version": "v3.1.0",
-        "version_normalized": "3.1.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/FriendsOfPHP/Goutte.git",
-            "reference": "d9a5a28782d30e9f4e20176caea58a1d459f2c71"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/d9a5a28782d30e9f4e20176caea58a1d459f2c71",
-            "reference": "d9a5a28782d30e9f4e20176caea58a1d459f2c71",
-            "shasum": ""
-        },
-        "require": {
-            "guzzlehttp/guzzle": "^6.0",
-            "php": ">=5.5.0",
-            "symfony/browser-kit": "~2.1",
-            "symfony/css-selector": "~2.1",
-            "symfony/dom-crawler": "~2.1"
-        },
-        "time": "2015-06-24 16:11:31",
-        "type": "application",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "3.1-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Goutte\\": "Goutte"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            }
-        ],
-        "description": "A simple PHP Web Scraper",
-        "homepage": "https://github.com/FriendsOfPHP/Goutte",
-        "keywords": [
-            "scraper"
-        ]
-    },
-    {
-        "name": "behat/mink-goutte-driver",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/minkphp/MinkGoutteDriver.git",
-            "reference": "cc5ce119b5a8e06662f634b35967aff0b0c7dfdd"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/cc5ce119b5a8e06662f634b35967aff0b0c7dfdd",
-            "reference": "cc5ce119b5a8e06662f634b35967aff0b0c7dfdd",
-            "shasum": ""
-        },
-        "require": {
-            "behat/mink": "~1.6@dev",
-            "behat/mink-browserkit-driver": "~1.2@dev",
-            "fabpot/goutte": "~1.0.4|~2.0|~3.1",
-            "php": ">=5.3.1"
-        },
-        "time": "2015-06-27 00:15:11",
-        "type": "mink-driver",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.1.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Behat\\Mink\\Driver\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Konstantin Kudryashov",
-                "email": "ever.zet@gmail.com",
-                "homepage": "http://everzet.com"
-            }
-        ],
-        "description": "Goutte driver for Mink framework",
-        "homepage": "http://mink.behat.org/",
-        "keywords": [
-            "browser",
-            "goutte",
-            "headless",
-            "testing"
-        ]
-    },
-    {
-        "name": "egulias/email-validator",
-        "version": "1.2.9",
-        "version_normalized": "1.2.9.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/egulias/EmailValidator.git",
-            "reference": "af864423f50ea59f96c87bb1eae147a70bcf67a1"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/af864423f50ea59f96c87bb1eae147a70bcf67a1",
-            "reference": "af864423f50ea59f96c87bb1eae147a70bcf67a1",
-            "shasum": ""
-        },
-        "require": {
-            "doctrine/lexer": "~1.0,>=1.0.1",
-            "php": ">= 5.3.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.4",
-            "satooshi/php-coveralls": "dev-master"
-        },
-        "time": "2015-06-22 21:07:51",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Egulias\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Eduardo Gulias Davis"
-            }
-        ],
-        "description": "A library for validating emails",
-        "homepage": "https://github.com/egulias/EmailValidator",
-        "keywords": [
-            "email",
-            "emailvalidation",
-            "emailvalidator",
-            "validation",
-            "validator"
-        ]
-    },
-    {
-        "name": "twig/twig",
-        "version": "v1.20.0",
-        "version_normalized": "1.20.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/twigphp/Twig.git",
-            "reference": "1ea4e5f81c6d005fe84d0b38e1c4f1955eb86844"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/twigphp/Twig/zipball/1ea4e5f81c6d005fe84d0b38e1c4f1955eb86844",
-            "reference": "1ea4e5f81c6d005fe84d0b38e1c4f1955eb86844",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.7"
-        },
-        "time": "2015-08-12 15:56:39",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.20-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Twig_": "lib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com",
-                "homepage": "http://fabien.potencier.org",
-                "role": "Lead Developer"
-            },
-            {
-                "name": "Armin Ronacher",
-                "email": "armin.ronacher@active-4.com",
-                "role": "Project Founder"
-            },
-            {
-                "name": "Twig Team",
-                "homepage": "http://twig.sensiolabs.org/contributors",
-                "role": "Contributors"
-            }
-        ],
-        "description": "Twig, the flexible, fast, and secure template language for PHP",
-        "homepage": "http://twig.sensiolabs.org",
-        "keywords": [
-            "templating"
-        ]
-    },
-    {
-        "name": "symfony/class-loader",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/ClassLoader.git",
-            "reference": "2fccbc544997340808801a7410cdcb96dd12edc4"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/2fccbc544997340808801a7410cdcb96dd12edc4",
-            "reference": "2fccbc544997340808801a7410cdcb96dd12edc4",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "symfony/finder": "~2.0,>=2.0.5",
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "time": "2015-06-25 12:52:11",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\ClassLoader\\": ""
-            }
-        },
-        "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 ClassLoader Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/console",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Console.git",
-            "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Console/zipball/d6cf02fe73634c96677e428f840704bfbcaec29e",
-            "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "psr/log": "~1.0",
-            "symfony/event-dispatcher": "~2.1",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/process": "~2.1"
-        },
-        "suggest": {
-            "psr/log": "For using the console logger",
-            "symfony/event-dispatcher": "",
-            "symfony/process": ""
-        },
-        "time": "2015-07-28 15:18:12",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Console\\": ""
-            }
-        },
-        "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 Console Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/css-selector",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/CssSelector.git",
-            "reference": "0b5c07b516226b7dd32afbbc82fe547a469c5092"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/CssSelector/zipball/0b5c07b516226b7dd32afbbc82fe547a469c5092",
-            "reference": "0b5c07b516226b7dd32afbbc82fe547a469c5092",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "time": "2015-05-15 13:33:16",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\CssSelector\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jean-François Simon",
-                "email": "jeanfrancois.simon@sensiolabs.com"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "https://symfony.com/contributors"
-            }
-        ],
-        "description": "Symfony CssSelector Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/dependency-injection",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/DependencyInjection.git",
-            "reference": "851e3ffe8a366b1590bdaf3df2c1395f2d27d8a6"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/851e3ffe8a366b1590bdaf3df2c1395f2d27d8a6",
-            "reference": "851e3ffe8a366b1590bdaf3df2c1395f2d27d8a6",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "conflict": {
-            "symfony/expression-language": "<2.6"
-        },
-        "require-dev": {
-            "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.6",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/yaml": "~2.1"
-        },
-        "suggest": {
-            "symfony/config": "",
-            "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
-            "symfony/yaml": ""
-        },
-        "time": "2015-07-28 14:07:07",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\DependencyInjection\\": ""
-            }
-        },
-        "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 DependencyInjection Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/debug",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Debug.git",
-            "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Debug/zipball/9daa1bf9f7e615fa2fba30357e479a90141222e3",
-            "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9",
-            "psr/log": "~1.0"
-        },
-        "conflict": {
-            "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
-        },
-        "require-dev": {
-            "symfony/class-loader": "~2.2",
-            "symfony/http-foundation": "~2.1",
-            "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "suggest": {
-            "symfony/http-foundation": "",
-            "symfony/http-kernel": ""
-        },
-        "time": "2015-07-09 16:07:40",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Debug\\": ""
-            }
-        },
-        "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 Debug Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/http-foundation",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/HttpFoundation.git",
-            "reference": "863af6898081b34c65d42100c370b9f3c51b70ca"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/863af6898081b34c65d42100c370b9f3c51b70ca",
-            "reference": "863af6898081b34c65d42100c370b9f3c51b70ca",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "symfony/expression-language": "~2.4",
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "time": "2015-07-22 10:11:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\HttpFoundation\\": ""
-            },
-            "classmap": [
-                "Resources/stubs"
-            ]
-        },
-        "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 HttpFoundation Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/event-dispatcher",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/EventDispatcher.git",
-            "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
-            "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "psr/log": "~1.0",
-            "symfony/config": "~2.0,>=2.0.5",
-            "symfony/dependency-injection": "~2.6",
-            "symfony/expression-language": "~2.6",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/stopwatch": "~2.3"
-        },
-        "suggest": {
-            "symfony/dependency-injection": "",
-            "symfony/http-kernel": ""
-        },
-        "time": "2015-06-18 19:21:56",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\EventDispatcher\\": ""
-            }
-        },
-        "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 EventDispatcher Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/http-kernel",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/HttpKernel.git",
-            "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/405d3e7a59ff7a28ec469441326a0ac79065ea98",
-            "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9",
-            "psr/log": "~1.0",
-            "symfony/debug": "~2.6,>=2.6.2",
-            "symfony/event-dispatcher": "~2.6,>=2.6.7",
-            "symfony/http-foundation": "~2.5,>=2.5.4"
-        },
-        "conflict": {
-            "symfony/config": "<2.7"
-        },
-        "require-dev": {
-            "symfony/browser-kit": "~2.3",
-            "symfony/class-loader": "~2.1",
-            "symfony/config": "~2.7",
-            "symfony/console": "~2.3",
-            "symfony/css-selector": "~2.0,>=2.0.5",
-            "symfony/dependency-injection": "~2.2",
-            "symfony/dom-crawler": "~2.0,>=2.0.5",
-            "symfony/expression-language": "~2.4",
-            "symfony/finder": "~2.0,>=2.0.5",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/process": "~2.0,>=2.0.5",
-            "symfony/routing": "~2.2",
-            "symfony/stopwatch": "~2.3",
-            "symfony/templating": "~2.2",
-            "symfony/translation": "~2.0,>=2.0.5",
-            "symfony/var-dumper": "~2.6"
-        },
-        "suggest": {
-            "symfony/browser-kit": "",
-            "symfony/class-loader": "",
-            "symfony/config": "",
-            "symfony/console": "",
-            "symfony/dependency-injection": "",
-            "symfony/finder": "",
-            "symfony/var-dumper": ""
-        },
-        "time": "2015-07-31 13:24:45",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\HttpKernel\\": ""
-            }
-        },
-        "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 HttpKernel Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/routing",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Routing.git",
-            "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Routing/zipball/ea9134f277162b02e5f80ac058b75a77637b0d26",
-            "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "conflict": {
-            "symfony/config": "<2.7"
-        },
-        "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "doctrine/common": "~2.2",
-            "psr/log": "~1.0",
-            "symfony/config": "~2.7",
-            "symfony/expression-language": "~2.4",
-            "symfony/http-foundation": "~2.3",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/yaml": "~2.0,>=2.0.5"
-        },
-        "suggest": {
-            "doctrine/annotations": "For using the annotation loader",
-            "symfony/config": "For using the all-in-one router or any loader",
-            "symfony/expression-language": "For using expression matching",
-            "symfony/yaml": "For using the YAML loader"
-        },
-        "time": "2015-07-09 16:07:40",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Routing\\": ""
-            }
-        },
-        "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 Routing Component",
-        "homepage": "https://symfony.com",
-        "keywords": [
-            "router",
-            "routing",
-            "uri",
-            "url"
-        ]
-    },
-    {
-        "name": "symfony/serializer",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Serializer.git",
-            "reference": "143d318457ecc298a846506acc8e80dea30d2548"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Serializer/zipball/143d318457ecc298a846506acc8e80dea30d2548",
-            "reference": "143d318457ecc298a846506acc8e80dea30d2548",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "doctrine/cache": "~1.0",
-            "symfony/config": "~2.2",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/property-access": "~2.3",
-            "symfony/yaml": "~2.0"
-        },
-        "suggest": {
-            "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
-            "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
-            "symfony/config": "For using the XML mapping loader.",
-            "symfony/property-access": "For using the ObjectNormalizer.",
-            "symfony/yaml": "For using the default YAML mapping loader."
-        },
-        "time": "2015-07-22 19:42:44",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Serializer\\": ""
-            }
-        },
-        "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 Serializer Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/translation",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Translation.git",
-            "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Translation/zipball/c8dc34cc936152c609cdd722af317e4239d10dd6",
-            "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "conflict": {
-            "symfony/config": "<2.7"
-        },
-        "require-dev": {
-            "psr/log": "~1.0",
-            "symfony/config": "~2.7",
-            "symfony/intl": "~2.3",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/yaml": "~2.2"
-        },
-        "suggest": {
-            "psr/log": "To use logging capability in translator",
-            "symfony/config": "",
-            "symfony/yaml": ""
-        },
-        "time": "2015-07-09 16:07:40",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Translation\\": ""
-            }
-        },
-        "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 Translation Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/validator",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Validator.git",
-            "reference": "646df03e635a8a232804274401449ccdf5f03cad"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Validator/zipball/646df03e635a8a232804274401449ccdf5f03cad",
-            "reference": "646df03e635a8a232804274401449ccdf5f03cad",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9",
-            "symfony/translation": "~2.4"
-        },
-        "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "doctrine/cache": "~1.0",
-            "egulias/email-validator": "~1.2,>=1.2.1",
-            "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.4",
-            "symfony/http-foundation": "~2.1",
-            "symfony/intl": "~2.3",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/property-access": "~2.3",
-            "symfony/yaml": "~2.0,>=2.0.5"
-        },
-        "suggest": {
-            "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
-            "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
-            "egulias/email-validator": "Strict (RFC compliant) email validation",
-            "symfony/config": "",
-            "symfony/expression-language": "For using the 2.4 Expression validator",
-            "symfony/http-foundation": "",
-            "symfony/intl": "",
-            "symfony/property-access": "For using the 2.4 Validator API",
-            "symfony/yaml": ""
-        },
-        "time": "2015-07-31 06:49:15",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Validator\\": ""
-            }
-        },
-        "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 Validator Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/process",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Process.git",
-            "reference": "48aeb0e48600321c272955132d7606ab0a49adb3"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3",
-            "reference": "48aeb0e48600321c272955132d7606ab0a49adb3",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "time": "2015-07-01 11:25:50",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Process\\": ""
-            }
-        },
-        "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 Process Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/yaml",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Yaml.git",
-            "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/71340e996171474a53f3d29111d046be4ad8a0ff",
-            "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "time": "2015-07-28 14:07:07",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\Yaml\\": ""
-            }
-        },
-        "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 Yaml Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/dom-crawler",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/DomCrawler.git",
-            "reference": "9dabece63182e95c42b06967a0d929a5df78bc35"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/9dabece63182e95c42b06967a0d929a5df78bc35",
-            "reference": "9dabece63182e95c42b06967a0d929a5df78bc35",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9"
-        },
-        "require-dev": {
-            "symfony/css-selector": "~2.3",
-            "symfony/phpunit-bridge": "~2.7"
-        },
-        "suggest": {
-            "symfony/css-selector": ""
-        },
-        "time": "2015-07-09 16:07:40",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\DomCrawler\\": ""
-            }
-        },
-        "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 DomCrawler Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "symfony/browser-kit",
-        "version": "v2.7.3",
-        "version_normalized": "2.7.3.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/BrowserKit.git",
-            "reference": "176905d3d74c2f99e6ab70f4f5a89460532495ae"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/176905d3d74c2f99e6ab70f4f5a89460532495ae",
-            "reference": "176905d3d74c2f99e6ab70f4f5a89460532495ae",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.9",
-            "symfony/dom-crawler": "~2.0,>=2.0.5"
-        },
-        "require-dev": {
-            "symfony/css-selector": "~2.0,>=2.0.5",
-            "symfony/phpunit-bridge": "~2.7",
-            "symfony/process": "~2.0,>=2.0.5"
-        },
-        "suggest": {
-            "symfony/process": ""
-        },
-        "time": "2015-07-09 16:07:40",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.7-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Symfony\\Component\\BrowserKit\\": ""
-            }
-        },
-        "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 BrowserKit Component",
-        "homepage": "https://symfony.com"
-    },
-    {
-        "name": "guzzlehttp/promises",
-        "version": "1.0.2",
-        "version_normalized": "1.0.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/promises.git",
-            "reference": "97fe7210def29451ec74923b27e552238defd75a"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/promises/zipball/97fe7210def29451ec74923b27e552238defd75a",
-            "reference": "97fe7210def29451ec74923b27e552238defd75a",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.5.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.0"
-        },
-        "time": "2015-08-15 19:37:21",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "GuzzleHttp\\Promise\\": "src/"
-            },
-            "files": [
-                "src/functions_include.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Guzzle promises library",
-        "keywords": [
-            "promise"
-        ]
-    },
-    {
-        "name": "guzzlehttp/psr7",
-        "version": "1.2.0",
-        "version_normalized": "1.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/psr7.git",
-            "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/psr7/zipball/4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
-            "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.4.0",
-            "psr/http-message": "~1.0"
-        },
-        "provide": {
-            "psr/http-message-implementation": "1.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.0"
-        },
-        "time": "2015-08-15 19:32:36",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "GuzzleHttp\\Psr7\\": "src/"
-            },
-            "files": [
-                "src/functions_include.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "PSR-7 message implementation",
-        "keywords": [
-            "http",
-            "message",
-            "stream",
-            "uri"
-        ]
-    }
-]
diff --git a/core/vendor/doctrine/annotations/.gitignore b/core/vendor/doctrine/annotations/.gitignore
deleted file mode 100644
index 164c346..0000000
--- a/core/vendor/doctrine/annotations/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-composer.phar
diff --git a/core/vendor/doctrine/annotations/.travis.yml b/core/vendor/doctrine/annotations/.travis.yml
deleted file mode 100644
index 7f6c0ef..0000000
--- a/core/vendor/doctrine/annotations/.travis.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-language: php
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-before_script:
-    - composer --prefer-source --dev install
diff --git a/core/vendor/doctrine/annotations/LICENSE b/core/vendor/doctrine/annotations/LICENSE
deleted file mode 100644
index 5e781fc..0000000
--- a/core/vendor/doctrine/annotations/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2006-2013 Doctrine Project
-
-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/core/vendor/doctrine/annotations/README.md b/core/vendor/doctrine/annotations/README.md
deleted file mode 100644
index ebb30e0..0000000
--- a/core/vendor/doctrine/annotations/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Doctrine Annotations
-
-[![Build Status](https://travis-ci.org/doctrine/annotations.png?branch=master)](https://travis-ci.org/doctrine/annotations)
-
-Docblock Annotations Parser library (extracted from [Doctrine Common](https://github.com/doctrine/common)).
-
-## Changelog
-
-### v1.2.0
-
- * HHVM support
- * Allowing dangling comma in annotations
- * Excluded annotations are no longer autoloaded
- * Importing namespaces also in traits
- * Added support for `::class` 5.5-style constant, works also in 5.3 and 5.4
-
-### v1.1
-
- * Add Exception when ZendOptimizer+ or Opcache is configured to drop comments
diff --git a/core/vendor/doctrine/annotations/composer.json b/core/vendor/doctrine/annotations/composer.json
deleted file mode 100644
index 1c65f6c..0000000
--- a/core/vendor/doctrine/annotations/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "name": "doctrine/annotations",
-    "type": "library",
-    "description": "Docblock Annotations Parser",
-    "keywords": ["annotations", "docblock", "parser"],
-    "homepage": "http://www.doctrine-project.org",
-    "license": "MIT",
-    "authors": [
-        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
-        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
-        {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
-        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
-        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.3.2",
-        "doctrine/lexer": "1.*"
-    },
-    "require-dev": {
-        "doctrine/cache": "1.*",
-        "phpunit/phpunit": "4.*"
-    },
-    "autoload": {
-        "psr-0": { "Doctrine\\Common\\Annotations\\": "lib/" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.3.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
deleted file mode 100644
index a79a0f8..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * Annotations class.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class Annotation
-{
-    /**
-     * Value property. Common among all derived classes.
-     *
-     * @var string
-     */
-    public $value;
-
-    /**
-     * Constructor.
-     *
-     * @param array $data Key-value for properties to be defined in this class.
-     */
-    public final function __construct(array $data)
-    {
-        foreach ($data as $key => $value) {
-            $this->$key = $value;
-        }
-    }
-
-    /**
-     * Error handler for unknown property accessor in Annotation class.
-     *
-     * @param string $name Unknown property name.
-     *
-     * @throws \BadMethodCallException
-     */
-    public function __get($name)
-    {
-        throw new \BadMethodCallException(
-            sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this))
-        );
-    }
-
-    /**
-     * Error handler for unknown property mutator in Annotation class.
-     *
-     * @param string $name  Unknown property name.
-     * @param mixed  $value Property value.
-     *
-     * @throws \BadMethodCallException
-     */
-    public function __set($name, $value)
-    {
-        throw new \BadMethodCallException(
-            sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this))
-        );
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
deleted file mode 100644
index dbef6df..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations\Annotation;
-
-/**
- * Annotation that can be used to signal to the parser
- * to check the attribute type during the parsing process.
- *
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- *
- * @Annotation
- */
-final class Attribute
-{
-    /**
-     * @var string
-     */
-    public $name;
-
-    /**
-     * @var string
-     */
-    public $type;
-
-    /**
-     * @var boolean
-     */
-    public $required = false;
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
deleted file mode 100644
index 53134e3..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations\Annotation;
-
-/**
- * Annotation that can be used to signal to the parser
- * to check the types of all declared attributes during the parsing process.
- *
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- *
- * @Annotation
- */
-final class Attributes
-{
-    /**
-     * @var array<Doctrine\Common\Annotations\Annotation\Attribute>
-     */
-    public $value;
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
deleted file mode 100644
index e122a75..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations\Annotation;
-
-/**
- * Annotation that can be used to signal to the parser
- * to check the available values during the parsing process.
- *
- * @since  2.4
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- *
- * @Annotation
- * @Attributes({
- *    @Attribute("value",   required = true,  type = "array"),
- *    @Attribute("literal", required = false, type = "array")
- * })
- */
-final class Enum
-{
-    /**
-     * @var array
-     */
-    public $value;
-
-    /**
-     * Literal target declaration.
-     *
-     * @var array
-     */
-    public $literal;
-
-    /**
-     * Annotation constructor.
-     *
-     * @param array $values
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function __construct(array $values)
-    {
-        if ( ! isset($values['literal'])) {
-            $values['literal'] = array();
-        }
-
-        foreach ($values['value'] as $var) {
-            if( ! is_scalar($var)) {
-                throw new \InvalidArgumentException(sprintf(
-                    '@Enum supports only scalar values "%s" given.',
-                    is_object($var) ? get_class($var) : gettype($var)
-                ));
-            }
-        }
-
-        foreach ($values['literal'] as $key => $var) {
-            if( ! in_array($key, $values['value'])) {
-                throw new \InvalidArgumentException(sprintf(
-                    'Undefined enumerator value "%s" for literal "%s".',
-                    $key , $var
-                ));
-            }
-        }
-
-        $this->value    = $values['value'];
-        $this->literal  = $values['literal'];
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
deleted file mode 100644
index 175226a..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations\Annotation;
-
-/**
- * Annotation that can be used to signal to the parser to ignore specific
- * annotations during the parsing process.
- *
- * @Annotation
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-final class IgnoreAnnotation
-{
-    /**
-     * @var array
-     */
-    public $names;
-
-    /**
-     * Constructor.
-     *
-     * @param array $values
-     *
-     * @throws \RuntimeException
-     */
-    public function __construct(array $values)
-    {
-        if (is_string($values['value'])) {
-            $values['value'] = array($values['value']);
-        }
-        if (!is_array($values['value'])) {
-            throw new \RuntimeException(sprintf('@IgnoreAnnotation expects either a string name, or an array of strings, but got %s.', json_encode($values['value'])));
-        }
-
-        $this->names = $values['value'];
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
deleted file mode 100644
index d67f9606..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations\Annotation;
-
-/**
- * Annotation that can be used to signal to the parser
- * to check if that attribute is required during the parsing process.
- *
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- *
- * @Annotation
- */
-final class Required
-{
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
deleted file mode 100644
index f6c5445..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations\Annotation;
-
-/**
- * Annotation that can be used to signal to the parser
- * to check the annotation target during the parsing process.
- *
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- *
- * @Annotation
- */
-final class Target
-{
-    const TARGET_CLASS              = 1;
-    const TARGET_METHOD             = 2;
-    const TARGET_PROPERTY           = 4;
-    const TARGET_ANNOTATION         = 8;
-    const TARGET_ALL                = 15;
-
-    /**
-     * @var array
-     */
-    private static $map = array(
-        'ALL'        => self::TARGET_ALL,
-        'CLASS'      => self::TARGET_CLASS,
-        'METHOD'     => self::TARGET_METHOD,
-        'PROPERTY'   => self::TARGET_PROPERTY,
-        'ANNOTATION' => self::TARGET_ANNOTATION,
-    );
-
-    /**
-     * @var array
-     */
-    public $value;
-
-    /**
-     * Targets as bitmask.
-     *
-     * @var integer
-     */
-    public $targets;
-
-    /**
-     * Literal target declaration.
-     *
-     * @var integer
-     */
-    public $literal;
-
-    /**
-     * Annotation constructor.
-     *
-     * @param array $values
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function __construct(array $values)
-    {
-        if (!isset($values['value'])){
-            $values['value'] = null;
-        }
-        if (is_string($values['value'])){
-            $values['value'] = array($values['value']);
-        }
-        if (!is_array($values['value'])){
-            throw new \InvalidArgumentException(
-                sprintf('@Target expects either a string value, or an array of strings, "%s" given.',
-                    is_object($values['value']) ? get_class($values['value']) : gettype($values['value'])
-                )
-            );
-        }
-
-        $bitmask = 0;
-        foreach ($values['value'] as $literal) {
-            if(!isset(self::$map[$literal])){
-                throw new \InvalidArgumentException(
-                    sprintf('Invalid Target "%s". Available targets: [%s]',
-                            $literal,  implode(', ', array_keys(self::$map)))
-                );
-            }
-            $bitmask |= self::$map[$literal];
-        }
-
-        $this->targets  = $bitmask;
-        $this->value    = $values['value'];
-        $this->literal  = implode(', ', $this->value);
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
deleted file mode 100644
index d06fe66..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * Description of AnnotationException
- *
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class AnnotationException extends \Exception
-{
-    /**
-     * Creates a new AnnotationException describing a Syntax error.
-     *
-     * @param string $message Exception message
-     *
-     * @return AnnotationException
-     */
-    public static function syntaxError($message)
-    {
-        return new self('[Syntax Error] ' . $message);
-    }
-
-    /**
-     * Creates a new AnnotationException describing a Semantical error.
-     *
-     * @param string $message Exception message
-     *
-     * @return AnnotationException
-     */
-    public static function semanticalError($message)
-    {
-        return new self('[Semantical Error] ' . $message);
-    }
-
-    /**
-     * Creates a new AnnotationException describing an error which occurred during
-     * the creation of the annotation.
-     *
-     * @since 2.2
-     *
-     * @param string $message
-     *
-     * @return AnnotationException
-     */
-    public static function creationError($message)
-    {
-        return new self('[Creation Error] ' . $message);
-    }
-
-    /**
-     * Creates a new AnnotationException describing a type error.
-     *
-     * @since 1.1
-     *
-     * @param string $message
-     *
-     * @return AnnotationException
-     */
-    public static function typeError($message)
-    {
-        return new self('[Type Error] ' . $message);
-    }
-
-    /**
-     * Creates a new AnnotationException describing a constant semantical error.
-     *
-     * @since 2.3
-     *
-     * @param string $identifier
-     * @param string $context
-     *
-     * @return AnnotationException
-     */
-    public static function semanticalErrorConstants($identifier, $context = null)
-    {
-        return self::semanticalError(sprintf(
-            "Couldn't find constant %s%s.",
-            $identifier,
-            $context ? ', ' . $context : ''
-        ));
-    }
-
-    /**
-     * Creates a new AnnotationException describing an type error of an attribute.
-     *
-     * @since 2.2
-     *
-     * @param string $attributeName
-     * @param string $annotationName
-     * @param string $context
-     * @param string $expected
-     * @param mixed  $actual
-     *
-     * @return AnnotationException
-     */
-    public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual)
-    {
-        return self::typeError(sprintf(
-            'Attribute "%s" of @%s declared on %s expects %s, but got %s.',
-            $attributeName,
-            $annotationName,
-            $context,
-            $expected,
-            is_object($actual) ? 'an instance of ' . get_class($actual) : gettype($actual)
-        ));
-    }
-
-    /**
-     * Creates a new AnnotationException describing an required error of an attribute.
-     *
-     * @since 2.2
-     *
-     * @param string $attributeName
-     * @param string $annotationName
-     * @param string $context
-     * @param string $expected
-     *
-     * @return AnnotationException
-     */
-    public static function requiredError($attributeName, $annotationName, $context, $expected)
-    {
-        return self::typeError(sprintf(
-            'Attribute "%s" of @%s declared on %s expects %s. This value should not be null.',
-            $attributeName,
-            $annotationName,
-            $context,
-            $expected
-        ));
-    }
-
-    /**
-     * Creates a new AnnotationException describing a invalid enummerator.
-     *
-     * @since 2.4
-     *
-     * @param string $attributeName
-     * @param string $annotationName
-     * @param string $context
-     * @param array  $available
-     * @param mixed  $given
-     *
-     * @return AnnotationException
-     */
-    public static function enumeratorError($attributeName, $annotationName, $context, $available, $given)
-    {
-        return new self(sprintf(
-            '[Enum Error] Attribute "%s" of @%s declared on %s accept only [%s], but got %s.',
-            $attributeName, 
-            $annotationName,
-            $context,
-            implode(', ', $available),
-            is_object($given) ? get_class($given) : $given
-        ));
-    }
-
-    /**
-     * @return AnnotationException
-     */
-    public static function optimizerPlusSaveComments()
-    {
-        return new self(
-            "You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1."
-        );
-    }
-
-    /**
-     * @return AnnotationException
-     */
-    public static function optimizerPlusLoadComments()
-    {
-        return new self(
-            "You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1."
-        );
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
deleted file mode 100644
index d559960..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
+++ /dev/null
@@ -1,393 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-use Doctrine\Common\Annotations\Annotation\IgnoreAnnotation;
-use Doctrine\Common\Annotations\Annotation\Target;
-use ReflectionClass;
-use ReflectionMethod;
-use ReflectionProperty;
-
-/**
- * A reader for docblock annotations.
- *
- * @author  Benjamin Eberlei <kontakt@beberlei.de>
- * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author  Jonathan Wage <jonwage@gmail.com>
- * @author  Roman Borschel <roman@code-factory.org>
- * @author  Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class AnnotationReader implements Reader
-{
-    /**
-     * Global map for imports.
-     *
-     * @var array
-     */
-    private static $globalImports = array(
-        'ignoreannotation' => 'Doctrine\Common\Annotations\Annotation\IgnoreAnnotation',
-    );
-
-    /**
-     * A list with annotations that are not causing exceptions when not resolved to an annotation class.
-     *
-     * The names are case sensitive.
-     *
-     * @var array
-     */
-    private static $globalIgnoredNames = array(
-        // Annotation tags
-        'Annotation' => true, 'Attribute' => true, 'Attributes' => true,
-        /* Can we enable this? 'Enum' => true, */
-        'Required' => true,
-        'Target' => true,
-        // Widely used tags (but not existent in phpdoc)
-        'fix' => true , 'fixme' => true,
-        'override' => true,
-        // PHPDocumentor 1 tags
-        'abstract'=> true, 'access'=> true,
-        'code' => true,
-        'deprec'=> true,
-        'endcode' => true, 'exception'=> true,
-        'final'=> true,
-        'ingroup' => true, 'inheritdoc'=> true, 'inheritDoc'=> true,
-        'magic' => true,
-        'name'=> true,
-        'toc' => true, 'tutorial'=> true,
-        'private' => true,
-        'static'=> true, 'staticvar'=> true, 'staticVar'=> true,
-        'throw' => true,
-        // PHPDocumentor 2 tags.
-        'api' => true, 'author'=> true,
-        'category'=> true, 'copyright'=> true,
-        'deprecated'=> true,
-        'example'=> true,
-        'filesource'=> true,
-        'global'=> true,
-        'ignore'=> true, /* Can we enable this? 'index' => true, */ 'internal'=> true,
-        'license'=> true, 'link'=> true,
-        'method' => true,
-        'package'=> true, 'param'=> true, 'property' => true, 'property-read' => true, 'property-write' => true,
-        'return'=> true,
-        'see'=> true, 'since'=> true, 'source' => true, 'subpackage'=> true,
-        'throws'=> true, 'todo'=> true, 'TODO'=> true,
-        'usedby'=> true, 'uses' => true,
-        'var'=> true, 'version'=> true,
-        // PHPUnit tags
-        'codeCoverageIgnore' => true, 'codeCoverageIgnoreStart' => true, 'codeCoverageIgnoreEnd' => true,
-        // PHPCheckStyle
-        'SuppressWarnings' => true,
-        // PHPStorm
-        'noinspection' => true,
-        // PEAR
-        'package_version' => true,
-        // PlantUML
-        'startuml' => true, 'enduml' => true,
-    );
-
-    /**
-     * Add a new annotation to the globally ignored annotation names with regard to exception handling.
-     *
-     * @param string $name
-     */
-    static public function addGlobalIgnoredName($name)
-    {
-        self::$globalIgnoredNames[$name] = true;
-    }
-
-    /**
-     * Annotations parser.
-     *
-     * @var \Doctrine\Common\Annotations\DocParser
-     */
-    private $parser;
-
-    /**
-     * Annotations parser used to collect parsing metadata.
-     *
-     * @var \Doctrine\Common\Annotations\DocParser
-     */
-    private $preParser;
-
-    /**
-     * PHP parser used to collect imports.
-     *
-     * @var \Doctrine\Common\Annotations\PhpParser
-     */
-    private $phpParser;
-
-    /**
-     * In-memory cache mechanism to store imported annotations per class.
-     *
-     * @var array
-     */
-    private $imports = array();
-
-    /**
-     * In-memory cache mechanism to store ignored annotations per class.
-     *
-     * @var array
-     */
-    private $ignoredAnnotationNames = array();
-
-    /**
-     * Constructor.
-     *
-     * Initializes a new AnnotationReader.
-     */
-    public function __construct()
-    {
-        if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === "0" || ini_get('opcache.save_comments') === "0")) {
-            throw AnnotationException::optimizerPlusSaveComments();
-        }
-
-        if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') == 0) {
-            throw AnnotationException::optimizerPlusSaveComments();
-        }
-
-
-        if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.load_comments') === "0" || ini_get('opcache.load_comments') === "0")) {
-            throw AnnotationException::optimizerPlusLoadComments();
-        }
-
-        if (extension_loaded('Zend OPcache') && ini_get('opcache.load_comments') == 0) {
-            throw AnnotationException::optimizerPlusLoadComments();
-        }
-
-        AnnotationRegistry::registerFile(__DIR__ . '/Annotation/IgnoreAnnotation.php');
-
-        $this->parser    = new DocParser;
-        $this->preParser = new DocParser;
-
-        $this->preParser->setImports(self::$globalImports);
-        $this->preParser->setIgnoreNotImportedAnnotations(true);
-
-        $this->phpParser = new PhpParser;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotations(ReflectionClass $class)
-    {
-        $this->parser->setTarget(Target::TARGET_CLASS);
-        $this->parser->setImports($this->getClassImports($class));
-        $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
-
-        return $this->parser->parse($class->getDocComment(), 'class ' . $class->getName());
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotation(ReflectionClass $class, $annotationName)
-    {
-        $annotations = $this->getClassAnnotations($class);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof $annotationName) {
-                return $annotation;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotations(ReflectionProperty $property)
-    {
-        $class   = $property->getDeclaringClass();
-        $context = 'property ' . $class->getName() . "::\$" . $property->getName();
-
-        $this->parser->setTarget(Target::TARGET_PROPERTY);
-        $this->parser->setImports($this->getPropertyImports($property));
-        $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
-
-        return $this->parser->parse($property->getDocComment(), $context);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotation(ReflectionProperty $property, $annotationName)
-    {
-        $annotations = $this->getPropertyAnnotations($property);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof $annotationName) {
-                return $annotation;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotations(ReflectionMethod $method)
-    {
-        $class   = $method->getDeclaringClass();
-        $context = 'method ' . $class->getName() . '::' . $method->getName() . '()';
-
-        $this->parser->setTarget(Target::TARGET_METHOD);
-        $this->parser->setImports($this->getMethodImports($method));
-        $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class));
-
-        return $this->parser->parse($method->getDocComment(), $context);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotation(ReflectionMethod $method, $annotationName)
-    {
-        $annotations = $this->getMethodAnnotations($method);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof $annotationName) {
-                return $annotation;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns the ignored annotations for the given class.
-     *
-     * @param \ReflectionClass $class
-     *
-     * @return array
-     */
-    private function getIgnoredAnnotationNames(ReflectionClass $class)
-    {
-        if (isset($this->ignoredAnnotationNames[$name = $class->getName()])) {
-            return $this->ignoredAnnotationNames[$name];
-        }
-
-        $this->collectParsingMetadata($class);
-
-        return $this->ignoredAnnotationNames[$name];
-    }
-
-    /**
-     * Retrieves imports.
-     *
-     * @param \ReflectionClass $class
-     *
-     * @return array
-     */
-    private function getClassImports(ReflectionClass $class)
-    {
-        if (isset($this->imports[$name = $class->getName()])) {
-            return $this->imports[$name];
-        }
-
-        $this->collectParsingMetadata($class);
-
-        return $this->imports[$name];
-    }
-
-    /**
-     * Retrieves imports for methods.
-     *
-     * @param \ReflectionMethod $method
-     *
-     * @return array
-     */
-    private function getMethodImports(ReflectionMethod $method)
-    {
-        $class = $method->getDeclaringClass();
-        $classImports = $this->getClassImports($class);
-        if (!method_exists($class, 'getTraits')) {
-            return $classImports;
-        }
-
-        $traitImports = array();
-
-        foreach ($class->getTraits() as $trait) {
-            if ($trait->hasMethod($method->getName())
-                && $trait->getFileName() === $method->getFileName()
-            ) {
-                $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));
-            }
-        }
-
-        return array_merge($classImports, $traitImports);
-    }
-
-    /**
-     * Retrieves imports for properties.
-     *
-     * @param \ReflectionProperty $property
-     *
-     * @return array
-     */
-    private function getPropertyImports(ReflectionProperty $property)
-    {
-        $class = $property->getDeclaringClass();
-        $classImports = $this->getClassImports($class);
-        if (!method_exists($class, 'getTraits')) {
-            return $classImports;
-        }
-
-        $traitImports = array();
-
-        foreach ($class->getTraits() as $trait) {
-            if ($trait->hasProperty($property->getName())) {
-                $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));
-            }
-        }
-
-        return array_merge($classImports, $traitImports);
-    }
-
-    /**
-     * Collects parsing metadata for a given class.
-     *
-     * @param \ReflectionClass $class
-     */
-    private function collectParsingMetadata(ReflectionClass $class)
-    {
-        $ignoredAnnotationNames = self::$globalIgnoredNames;
-        $annotations            = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof IgnoreAnnotation) {
-                foreach ($annotation->names AS $annot) {
-                    $ignoredAnnotationNames[$annot] = true;
-                }
-            }
-        }
-
-        $name = $class->getName();
-
-        $this->imports[$name] = array_merge(
-            self::$globalImports,
-            $this->phpParser->parseClass($class),
-            array('__NAMESPACE__' => $class->getNamespaceName())
-        );
-
-        $this->ignoredAnnotationNames[$name] = $ignoredAnnotationNames;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
deleted file mode 100644
index 13ceb63..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * AnnotationRegistry.
- */
-final class AnnotationRegistry
-{
-    /**
-     * A map of namespaces to use for autoloading purposes based on a PSR-0 convention.
-     *
-     * Contains the namespace as key and an array of directories as value. If the value is NULL
-     * the include path is used for checking for the corresponding file.
-     *
-     * This autoloading mechanism does not utilize the PHP autoloading but implements autoloading on its own.
-     *
-     * @var array
-     */
-    static private $autoloadNamespaces = array();
-
-    /**
-     * A map of autoloader callables.
-     *
-     * @var array
-     */
-    static private $loaders = array();
-
-    /**
-     * @return void
-     */
-    static public function reset()
-    {
-        self::$autoloadNamespaces = array();
-        self::$loaders = array();
-    }
-
-    /**
-     * Registers file.
-     *
-     * @param string $file
-     *
-     * @return void
-     */
-    static public function registerFile($file)
-    {
-        require_once $file;
-    }
-
-    /**
-     * Adds a namespace with one or many directories to look for files or null for the include path.
-     *
-     * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
-     *
-     * @param string            $namespace
-     * @param string|array|null $dirs
-     *
-     * @return void
-     */
-    static public function registerAutoloadNamespace($namespace, $dirs = null)
-    {
-        self::$autoloadNamespaces[$namespace] = $dirs;
-    }
-
-    /**
-     * Registers multiple namespaces.
-     *
-     * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
-     *
-     * @param array $namespaces
-     *
-     * @return void
-     */
-    static public function registerAutoloadNamespaces(array $namespaces)
-    {
-        self::$autoloadNamespaces = array_merge(self::$autoloadNamespaces, $namespaces);
-    }
-
-    /**
-     * Registers an autoloading callable for annotations, much like spl_autoload_register().
-     *
-     * NOTE: These class loaders HAVE to be silent when a class was not found!
-     * IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class.
-     *
-     * @param callable $callable
-     *
-     * @return void
-     *
-     * @throws \InvalidArgumentException
-     */
-    static public function registerLoader($callable)
-    {
-        if (!is_callable($callable)) {
-            throw new \InvalidArgumentException("A callable is expected in AnnotationRegistry::registerLoader().");
-        }
-        self::$loaders[] = $callable;
-    }
-
-    /**
-     * Autoloads an annotation class silently.
-     *
-     * @param string $class
-     *
-     * @return boolean
-     */
-    static public function loadAnnotationClass($class)
-    {
-        foreach (self::$autoloadNamespaces AS $namespace => $dirs) {
-            if (strpos($class, $namespace) === 0) {
-                $file = str_replace("\\", DIRECTORY_SEPARATOR, $class) . ".php";
-                if ($dirs === null) {
-                    if ($path = stream_resolve_include_path($file)) {
-                        require $path;
-                        return true;
-                    }
-                } else {
-                    foreach((array)$dirs AS $dir) {
-                        if (is_file($dir . DIRECTORY_SEPARATOR . $file)) {
-                            require $dir . DIRECTORY_SEPARATOR . $file;
-                            return true;
-                        }
-                    }
-                }
-            }
-        }
-
-        foreach (self::$loaders AS $loader) {
-            if (call_user_func($loader, $class) === true) {
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
deleted file mode 100644
index e6dc593..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-use Doctrine\Common\Cache\Cache;
-
-/**
- * A cache aware annotation reader.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-final class CachedReader implements Reader
-{
-    /**
-     * @var string
-     */
-    private static $CACHE_SALT = '@[Annot]';
-
-    /**
-     * @var Reader
-     */
-    private $delegate;
-
-    /**
-     * @var Cache
-     */
-    private $cache;
-
-    /**
-     * @var boolean
-     */
-    private $debug;
-
-    /**
-     * @var array
-     */
-    private $loadedAnnotations = array();
-
-    /**
-     * Constructor.
-     *
-     * @param Reader $reader
-     * @param Cache  $cache
-     * @param bool   $debug
-     */
-    public function __construct(Reader $reader, Cache $cache, $debug = false)
-    {
-        $this->delegate = $reader;
-        $this->cache = $cache;
-        $this->debug = (boolean) $debug;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotations(\ReflectionClass $class)
-    {
-        $cacheKey = $class->getName();
-
-        if (isset($this->loadedAnnotations[$cacheKey])) {
-            return $this->loadedAnnotations[$cacheKey];
-        }
-
-        if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
-            $annots = $this->delegate->getClassAnnotations($class);
-            $this->saveToCache($cacheKey, $annots);
-        }
-
-        return $this->loadedAnnotations[$cacheKey] = $annots;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotation(\ReflectionClass $class, $annotationName)
-    {
-        foreach ($this->getClassAnnotations($class) as $annot) {
-            if ($annot instanceof $annotationName) {
-                return $annot;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotations(\ReflectionProperty $property)
-    {
-        $class = $property->getDeclaringClass();
-        $cacheKey = $class->getName().'$'.$property->getName();
-
-        if (isset($this->loadedAnnotations[$cacheKey])) {
-            return $this->loadedAnnotations[$cacheKey];
-        }
-
-        if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
-            $annots = $this->delegate->getPropertyAnnotations($property);
-            $this->saveToCache($cacheKey, $annots);
-        }
-
-        return $this->loadedAnnotations[$cacheKey] = $annots;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
-    {
-        foreach ($this->getPropertyAnnotations($property) as $annot) {
-            if ($annot instanceof $annotationName) {
-                return $annot;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotations(\ReflectionMethod $method)
-    {
-        $class = $method->getDeclaringClass();
-        $cacheKey = $class->getName().'#'.$method->getName();
-
-        if (isset($this->loadedAnnotations[$cacheKey])) {
-            return $this->loadedAnnotations[$cacheKey];
-        }
-
-        if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) {
-            $annots = $this->delegate->getMethodAnnotations($method);
-            $this->saveToCache($cacheKey, $annots);
-        }
-
-        return $this->loadedAnnotations[$cacheKey] = $annots;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
-    {
-        foreach ($this->getMethodAnnotations($method) as $annot) {
-            if ($annot instanceof $annotationName) {
-                return $annot;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Clears loaded annotations.
-     *
-     * @return void
-     */
-    public function clearLoadedAnnotations()
-    {
-        $this->loadedAnnotations = array();
-    }
-
-    /**
-     * Fetches a value from the cache.
-     *
-     * @param string           $rawCacheKey The cache key.
-     * @param \ReflectionClass $class       The related class.
-     *
-     * @return mixed The cached value or false when the value is not in cache.
-     */
-    private function fetchFromCache($rawCacheKey, \ReflectionClass $class)
-    {
-        $cacheKey = $rawCacheKey . self::$CACHE_SALT;
-        if (($data = $this->cache->fetch($cacheKey)) !== false) {
-            if (!$this->debug || $this->isCacheFresh($cacheKey, $class)) {
-                return $data;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Saves a value to the cache.
-     *
-     * @param string $rawCacheKey The cache key.
-     * @param mixed  $value       The value.
-     *
-     * @return void
-     */
-    private function saveToCache($rawCacheKey, $value)
-    {
-        $cacheKey = $rawCacheKey . self::$CACHE_SALT;
-        $this->cache->save($cacheKey, $value);
-        if ($this->debug) {
-            $this->cache->save('[C]'.$cacheKey, time());
-        }
-    }
-
-    /**
-     * Checks if the cache is fresh.
-     *
-     * @param string           $cacheKey
-     * @param \ReflectionClass $class
-     *
-     * @return boolean
-     */
-    private function isCacheFresh($cacheKey, \ReflectionClass $class)
-    {
-        if (false === $filename = $class->getFilename()) {
-            return true;
-        }
-
-        return $this->cache->fetch('[C]'.$cacheKey) >= filemtime($filename);
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
deleted file mode 100644
index 330afd3..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-use Doctrine\Common\Lexer\AbstractLexer;
-
-/**
- * Simple lexer for docblock annotations.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-final class DocLexer extends AbstractLexer
-{
-    const T_NONE                = 1;
-    const T_INTEGER             = 2;
-    const T_STRING              = 3;
-    const T_FLOAT               = 4;
-
-    // All tokens that are also identifiers should be >= 100
-    const T_IDENTIFIER          = 100;
-    const T_AT                  = 101;
-    const T_CLOSE_CURLY_BRACES  = 102;
-    const T_CLOSE_PARENTHESIS   = 103;
-    const T_COMMA               = 104;
-    const T_EQUALS              = 105;
-    const T_FALSE               = 106;
-    const T_NAMESPACE_SEPARATOR = 107;
-    const T_OPEN_CURLY_BRACES   = 108;
-    const T_OPEN_PARENTHESIS    = 109;
-    const T_TRUE                = 110;
-    const T_NULL                = 111;
-    const T_COLON               = 112;
-
-    /**
-     * @var array
-     */
-    protected $noCase = array(
-        '@'  => self::T_AT,
-        ','  => self::T_COMMA,
-        '('  => self::T_OPEN_PARENTHESIS,
-        ')'  => self::T_CLOSE_PARENTHESIS,
-        '{'  => self::T_OPEN_CURLY_BRACES,
-        '}'  => self::T_CLOSE_CURLY_BRACES,
-        '='  => self::T_EQUALS,
-        ':'  => self::T_COLON,
-        '\\' => self::T_NAMESPACE_SEPARATOR
-    );
-
-    /**
-     * @var array
-     */
-    protected $withCase = array(
-        'true'  => self::T_TRUE,
-        'false' => self::T_FALSE,
-        'null'  => self::T_NULL
-    );
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getCatchablePatterns()
-    {
-        return array(
-            '[a-z_\\\][a-z0-9_\:\\\]*[a-z_][a-z0-9_]*',
-            '(?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?',
-            '"(?:[^"]|"")*"',
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getNonCatchablePatterns()
-    {
-        return array('\s+', '\*+', '(.)');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getType(&$value)
-    {
-        $type = self::T_NONE;
-
-        if ($value[0] === '"') {
-            $value = str_replace('""', '"', substr($value, 1, strlen($value) - 2));
-
-            return self::T_STRING;
-        }
-
-        if (isset($this->noCase[$value])) {
-            return $this->noCase[$value];
-        }
-
-        if ($value[0] === '_' || $value[0] === '\\' || ctype_alpha($value[0])) {
-            return self::T_IDENTIFIER;
-        }
-
-        $lowerValue = strtolower($value);
-
-        if (isset($this->withCase[$lowerValue])) {
-            return $this->withCase[$lowerValue];
-        }
-
-        // Checking numeric value
-        if (is_numeric($value)) {
-            return (strpos($value, '.') !== false || stripos($value, 'e') !== false)
-                ? self::T_FLOAT : self::T_INTEGER;
-        }
-
-        return $type;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
deleted file mode 100644
index db66846..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
+++ /dev/null
@@ -1,1138 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-use Doctrine\Common\Annotations\Annotation\Attribute;
-use ReflectionClass;
-use Doctrine\Common\Annotations\Annotation\Enum;
-use Doctrine\Common\Annotations\Annotation\Target;
-use Doctrine\Common\Annotations\Annotation\Attributes;
-
-/**
- * A parser for docblock annotations.
- *
- * It is strongly discouraged to change the default annotation parsing process.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-final class DocParser
-{
-    /**
-     * An array of all valid tokens for a class name.
-     *
-     * @var array
-     */
-    private static $classIdentifiers = array(
-        DocLexer::T_IDENTIFIER,
-        DocLexer::T_TRUE,
-        DocLexer::T_FALSE,
-        DocLexer::T_NULL
-    );
-
-    /**
-     * The lexer.
-     *
-     * @var \Doctrine\Common\Annotations\DocLexer
-     */
-    private $lexer;
-
-    /**
-     * Current target context.
-     *
-     * @var string
-     */
-    private $target;
-
-    /**
-     * Doc parser used to collect annotation target.
-     *
-     * @var \Doctrine\Common\Annotations\DocParser
-     */
-    private static $metadataParser;
-
-    /**
-     * Flag to control if the current annotation is nested or not.
-     *
-     * @var boolean
-     */
-    private $isNestedAnnotation = false;
-
-    /**
-     * Hashmap containing all use-statements that are to be used when parsing
-     * the given doc block.
-     *
-     * @var array
-     */
-    private $imports = array();
-
-    /**
-     * This hashmap is used internally to cache results of class_exists()
-     * look-ups.
-     *
-     * @var array
-     */
-    private $classExists = array();
-
-    /**
-     * Whether annotations that have not been imported should be ignored.
-     *
-     * @var boolean
-     */
-    private $ignoreNotImportedAnnotations = false;
-
-    /**
-     * An array of default namespaces if operating in simple mode.
-     *
-     * @var array
-     */
-    private $namespaces = array();
-
-    /**
-     * A list with annotations that are not causing exceptions when not resolved to an annotation class.
-     *
-     * The names must be the raw names as used in the class, not the fully qualified
-     * class names.
-     *
-     * @var array
-     */
-    private $ignoredAnnotationNames = array();
-
-    /**
-     * @var string
-     */
-    private $context = '';
-
-    /**
-     * Hash-map for caching annotation metadata.
-     *
-     * @var array
-     */
-    private static $annotationMetadata = array(
-        'Doctrine\Common\Annotations\Annotation\Target' => array(
-            'is_annotation'    => true,
-            'has_constructor'  => true,
-            'properties'       => array(),
-            'targets_literal'  => 'ANNOTATION_CLASS',
-            'targets'          => Target::TARGET_CLASS,
-            'default_property' => 'value',
-            'attribute_types'  => array(
-                'value'  => array(
-                    'required'  => false,
-                    'type'      =>'array',
-                    'array_type'=>'string',
-                    'value'     =>'array<string>'
-                )
-             ),
-        ),
-        'Doctrine\Common\Annotations\Annotation\Attribute' => array(
-            'is_annotation'    => true,
-            'has_constructor'  => false,
-            'targets_literal'  => 'ANNOTATION_ANNOTATION',
-            'targets'          => Target::TARGET_ANNOTATION,
-            'default_property' => 'name',
-            'properties'       => array(
-                'name'      => 'name',
-                'type'      => 'type',
-                'required'  => 'required'
-            ),
-            'attribute_types'  => array(
-                'value'  => array(
-                    'required'  => true,
-                    'type'      =>'string',
-                    'value'     =>'string'
-                ),
-                'type'  => array(
-                    'required'  =>true,
-                    'type'      =>'string',
-                    'value'     =>'string'
-                ),
-                'required'  => array(
-                    'required'  =>false,
-                    'type'      =>'boolean',
-                    'value'     =>'boolean'
-                )
-             ),
-        ),
-        'Doctrine\Common\Annotations\Annotation\Attributes' => array(
-            'is_annotation'    => true,
-            'has_constructor'  => false,
-            'targets_literal'  => 'ANNOTATION_CLASS',
-            'targets'          => Target::TARGET_CLASS,
-            'default_property' => 'value',
-            'properties'       => array(
-                'value' => 'value'
-            ),
-            'attribute_types'  => array(
-                'value' => array(
-                    'type'      =>'array',
-                    'required'  =>true,
-                    'array_type'=>'Doctrine\Common\Annotations\Annotation\Attribute',
-                    'value'     =>'array<Doctrine\Common\Annotations\Annotation\Attribute>'
-                )
-             ),
-        ),
-        'Doctrine\Common\Annotations\Annotation\Enum' => array(
-            'is_annotation'    => true,
-            'has_constructor'  => true,
-            'targets_literal'  => 'ANNOTATION_PROPERTY',
-            'targets'          => Target::TARGET_PROPERTY,
-            'default_property' => 'value',
-            'properties'       => array(
-                'value' => 'value'
-            ),
-            'attribute_types'  => array(
-                'value' => array(
-                    'type'      => 'array',
-                    'required'  => true,
-                ),
-                'literal' => array(
-                    'type'      => 'array',
-                    'required'  => false,
-                ),
-             ),
-        ),
-    );
-
-    /**
-     * Hash-map for handle types declaration.
-     *
-     * @var array
-     */
-    private static $typeMap = array(
-        'float'     => 'double',
-        'bool'      => 'boolean',
-        // allow uppercase Boolean in honor of George Boole
-        'Boolean'   => 'boolean',
-        'int'       => 'integer',
-    );
-
-    /**
-     * Constructs a new DocParser.
-     */
-    public function __construct()
-    {
-        $this->lexer = new DocLexer;
-    }
-
-    /**
-     * Sets the annotation names that are ignored during the parsing process.
-     *
-     * The names are supposed to be the raw names as used in the class, not the
-     * fully qualified class names.
-     *
-     * @param array $names
-     *
-     * @return void
-     */
-    public function setIgnoredAnnotationNames(array $names)
-    {
-        $this->ignoredAnnotationNames = $names;
-    }
-
-    /**
-     * Sets ignore on not-imported annotations.
-     *
-     * @param boolean $bool
-     *
-     * @return void
-     */
-    public function setIgnoreNotImportedAnnotations($bool)
-    {
-        $this->ignoreNotImportedAnnotations = (boolean) $bool;
-    }
-
-    /**
-     * Sets the default namespaces.
-     *
-     * @param array $namespace
-     *
-     * @return void
-     *
-     * @throws \RuntimeException
-     */
-    public function addNamespace($namespace)
-    {
-        if ($this->imports) {
-            throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.');
-        }
-
-        $this->namespaces[] = $namespace;
-    }
-
-    /**
-     * Sets the imports.
-     *
-     * @param array $imports
-     *
-     * @return void
-     *
-     * @throws \RuntimeException
-     */
-    public function setImports(array $imports)
-    {
-        if ($this->namespaces) {
-            throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.');
-        }
-
-        $this->imports = $imports;
-    }
-
-    /**
-     * Sets current target context as bitmask.
-     *
-     * @param integer $target
-     *
-     * @return void
-     */
-    public function setTarget($target)
-    {
-        $this->target = $target;
-    }
-
-    /**
-     * Parses the given docblock string for annotations.
-     *
-     * @param string $input   The docblock string to parse.
-     * @param string $context The parsing context.
-     *
-     * @return array Array of annotations. If no annotations are found, an empty array is returned.
-     */
-    public function parse($input, $context = '')
-    {
-        $pos = $this->findInitialTokenPosition($input);
-        if ($pos === null) {
-            return array();
-        }
-
-        $this->context = $context;
-
-        $this->lexer->setInput(trim(substr($input, $pos), '* /'));
-        $this->lexer->moveNext();
-
-        return $this->Annotations();
-    }
-
-    /**
-     * Finds the first valid annotation
-     *
-     * @param string $input The docblock string to parse
-     *
-     * @return int|null
-     */
-    private function findInitialTokenPosition($input)
-    {
-        $pos = 0;
-
-        // search for first valid annotation
-        while (($pos = strpos($input, '@', $pos)) !== false) {
-            // if the @ is preceded by a space or * it is valid
-            if ($pos === 0 || $input[$pos - 1] === ' ' || $input[$pos - 1] === '*') {
-                return $pos;
-            }
-
-            $pos++;
-        }
-
-        return null;
-    }
-
-    /**
-     * Attempts to match the given token with the current lookahead token.
-     * If they match, updates the lookahead token; otherwise raises a syntax error.
-     *
-     * @param integer $token Type of token.
-     *
-     * @return boolean True if tokens match; false otherwise.
-     */
-    private function match($token)
-    {
-        if ( ! $this->lexer->isNextToken($token) ) {
-            $this->syntaxError($this->lexer->getLiteral($token));
-        }
-
-        return $this->lexer->moveNext();
-    }
-
-    /**
-     * Attempts to match the current lookahead token with any of the given tokens.
-     *
-     * If any of them matches, this method updates the lookahead token; otherwise
-     * a syntax error is raised.
-     *
-     * @param array $tokens
-     *
-     * @return boolean
-     */
-    private function matchAny(array $tokens)
-    {
-        if ( ! $this->lexer->isNextTokenAny($tokens)) {
-            $this->syntaxError(implode(' or ', array_map(array($this->lexer, 'getLiteral'), $tokens)));
-        }
-
-        return $this->lexer->moveNext();
-    }
-
-    /**
-     * Generates a new syntax error.
-     *
-     * @param string     $expected Expected string.
-     * @param array|null $token    Optional token.
-     *
-     * @return void
-     *
-     * @throws AnnotationException
-     */
-    private function syntaxError($expected, $token = null)
-    {
-        if ($token === null) {
-            $token = $this->lexer->lookahead;
-        }
-
-        $message  = sprintf('Expected %s, got ', $expected);
-        $message .= ($this->lexer->lookahead === null)
-            ? 'end of string'
-            : sprintf("'%s' at position %s", $token['value'], $token['position']);
-
-        if (strlen($this->context)) {
-            $message .= ' in ' . $this->context;
-        }
-
-        $message .= '.';
-
-        throw AnnotationException::syntaxError($message);
-    }
-
-    /**
-     * Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism
-     * but uses the {@link AnnotationRegistry} to load classes.
-     *
-     * @param string $fqcn
-     *
-     * @return boolean
-     */
-    private function classExists($fqcn)
-    {
-        if (isset($this->classExists[$fqcn])) {
-            return $this->classExists[$fqcn];
-        }
-
-        // first check if the class already exists, maybe loaded through another AnnotationReader
-        if (class_exists($fqcn, false)) {
-            return $this->classExists[$fqcn] = true;
-        }
-
-        // final check, does this class exist?
-        return $this->classExists[$fqcn] = AnnotationRegistry::loadAnnotationClass($fqcn);
-    }
-
-    /**
-     * Collects parsing metadata for a given annotation class
-     *
-     * @param string $name The annotation name
-     *
-     * @return void
-     */
-    private function collectAnnotationMetadata($name)
-    {
-        if (self::$metadataParser === null) {
-            self::$metadataParser = new self();
-
-            self::$metadataParser->setIgnoreNotImportedAnnotations(true);
-            self::$metadataParser->setIgnoredAnnotationNames($this->ignoredAnnotationNames);
-            self::$metadataParser->setImports(array(
-                'enum'          => 'Doctrine\Common\Annotations\Annotation\Enum',
-                'target'        => 'Doctrine\Common\Annotations\Annotation\Target',
-                'attribute'     => 'Doctrine\Common\Annotations\Annotation\Attribute',
-                'attributes'    => 'Doctrine\Common\Annotations\Annotation\Attributes'
-            ));
-
-            AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Enum.php');
-            AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Target.php');
-            AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attribute.php');
-            AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attributes.php');
-        }
-
-        $class      = new \ReflectionClass($name);
-        $docComment = $class->getDocComment();
-
-        // Sets default values for annotation metadata
-        $metadata = array(
-            'default_property' => null,
-            'has_constructor'  => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0,
-            'properties'       => array(),
-            'property_types'   => array(),
-            'attribute_types'  => array(),
-            'targets_literal'  => null,
-            'targets'          => Target::TARGET_ALL,
-            'is_annotation'    => false !== strpos($docComment, '@Annotation'),
-        );
-
-        // verify that the class is really meant to be an annotation
-        if ($metadata['is_annotation']) {
-            self::$metadataParser->setTarget(Target::TARGET_CLASS);
-
-            foreach (self::$metadataParser->parse($docComment, 'class @' . $name) as $annotation) {
-                if ($annotation instanceof Target) {
-                    $metadata['targets']         = $annotation->targets;
-                    $metadata['targets_literal'] = $annotation->literal;
-
-                    continue;
-                }
-
-                if ($annotation instanceof Attributes) {
-                    foreach ($annotation->value as $attribute) {
-                        $this->collectAttributeTypeMetadata($metadata, $attribute);
-                    }
-                }
-            }
-
-            // if not has a constructor will inject values into public properties
-            if (false === $metadata['has_constructor']) {
-                // collect all public properties
-                foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
-                    $metadata['properties'][$property->name] = $property->name;
-
-                    if (false === ($propertyComment = $property->getDocComment())) {
-                        continue;
-                    }
-
-                    $attribute = new Attribute();
-
-                    $attribute->required = (false !== strpos($propertyComment, '@Required'));
-                    $attribute->name     = $property->name;
-                    $attribute->type     = (false !== strpos($propertyComment, '@var') && preg_match('/@var\s+([^\s]+)/',$propertyComment, $matches))
-                        ? $matches[1]
-                        : 'mixed';
-
-                    $this->collectAttributeTypeMetadata($metadata, $attribute);
-
-                    // checks if the property has @Enum
-                    if (false !== strpos($propertyComment, '@Enum')) {
-                        $context = 'property ' . $class->name . "::\$" . $property->name;
-
-                        self::$metadataParser->setTarget(Target::TARGET_PROPERTY);
-
-                        foreach (self::$metadataParser->parse($propertyComment, $context) as $annotation) {
-                            if ( ! $annotation instanceof Enum) {
-                                continue;
-                            }
-
-                            $metadata['enum'][$property->name]['value']   = $annotation->value;
-                            $metadata['enum'][$property->name]['literal'] = ( ! empty($annotation->literal))
-                                ? $annotation->literal
-                                : $annotation->value;
-                        }
-                    }
-                }
-
-                // choose the first property as default property
-                $metadata['default_property'] = reset($metadata['properties']);
-            }
-        }
-
-        self::$annotationMetadata[$name] = $metadata;
-    }
-
-    /**
-     * Collects parsing metadata for a given attribute.
-     *
-     * @param array     $metadata
-     * @param Attribute $attribute
-     *
-     * @return void
-     */
-    private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute)
-    {
-        // handle internal type declaration
-        $type = isset(self::$typeMap[$attribute->type])
-            ? self::$typeMap[$attribute->type]
-            : $attribute->type;
-
-        // handle the case if the property type is mixed
-        if ('mixed' === $type) {
-            return;
-        }
-
-        // Evaluate type
-        switch (true) {
-            // Checks if the property has array<type>
-            case (false !== $pos = strpos($type, '<')):
-                $arrayType  = substr($type, $pos + 1, -1);
-                $type       = 'array';
-
-                if (isset(self::$typeMap[$arrayType])) {
-                    $arrayType = self::$typeMap[$arrayType];
-                }
-
-                $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType;
-                break;
-
-            // Checks if the property has type[]
-            case (false !== $pos = strrpos($type, '[')):
-                $arrayType  = substr($type, 0, $pos);
-                $type       = 'array';
-
-                if (isset(self::$typeMap[$arrayType])) {
-                    $arrayType = self::$typeMap[$arrayType];
-                }
-
-                $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType;
-                break;
-        }
-
-        $metadata['attribute_types'][$attribute->name]['type']     = $type;
-        $metadata['attribute_types'][$attribute->name]['value']    = $attribute->type;
-        $metadata['attribute_types'][$attribute->name]['required'] = $attribute->required;
-    }
-
-    /**
-     * Annotations ::= Annotation {[ "*" ]* [Annotation]}*
-     *
-     * @return array
-     */
-    private function Annotations()
-    {
-        $annotations = array();
-
-        while (null !== $this->lexer->lookahead) {
-            if (DocLexer::T_AT !== $this->lexer->lookahead['type']) {
-                $this->lexer->moveNext();
-                continue;
-            }
-
-            // make sure the @ is preceded by non-catchable pattern
-            if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) {
-                $this->lexer->moveNext();
-                continue;
-            }
-
-            // make sure the @ is followed by either a namespace separator, or
-            // an identifier token
-            if ((null === $peek = $this->lexer->glimpse())
-                || (DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true))
-                || $peek['position'] !== $this->lexer->lookahead['position'] + 1) {
-                $this->lexer->moveNext();
-                continue;
-            }
-
-            $this->isNestedAnnotation = false;
-            if (false !== $annot = $this->Annotation()) {
-                $annotations[] = $annot;
-            }
-        }
-
-        return $annotations;
-    }
-
-    /**
-     * Annotation     ::= "@" AnnotationName MethodCall
-     * AnnotationName ::= QualifiedName | SimpleName
-     * QualifiedName  ::= NameSpacePart "\" {NameSpacePart "\"}* SimpleName
-     * NameSpacePart  ::= identifier | null | false | true
-     * SimpleName     ::= identifier | null | false | true
-     *
-     * @return mixed False if it is not a valid annotation.
-     *
-     * @throws AnnotationException
-     */
-    private function Annotation()
-    {
-        $this->match(DocLexer::T_AT);
-
-        // check if we have an annotation
-        $name = $this->Identifier();
-
-        // only process names which are not fully qualified, yet
-        // fully qualified names must start with a \
-        $originalName = $name;
-
-        if ('\\' !== $name[0]) {
-            $alias = (false === $pos = strpos($name, '\\'))? $name : substr($name, 0, $pos);
-            $found = false;
-
-            if ($this->namespaces) {
-                foreach ($this->namespaces as $namespace) {
-                    if ($this->classExists($namespace.'\\'.$name)) {
-                        $name = $namespace.'\\'.$name;
-                        $found = true;
-                        break;
-                    }
-                }
-            } elseif (isset($this->imports[$loweredAlias = strtolower($alias)])) {
-                $found = true;
-                $name  = (false !== $pos)
-                    ? $this->imports[$loweredAlias] . substr($name, $pos)
-                    : $this->imports[$loweredAlias];
-            } elseif ( ! isset($this->ignoredAnnotationNames[$name])
-                && isset($this->imports['__NAMESPACE__'])
-                && $this->classExists($this->imports['__NAMESPACE__'] . '\\' . $name)
-            ) {
-                $name  = $this->imports['__NAMESPACE__'].'\\'.$name;
-                $found = true;
-            } elseif (! isset($this->ignoredAnnotationNames[$name]) && $this->classExists($name)) {
-                $found = true;
-            }
-
-            if ( ! $found) {
-                if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$name])) {
-                    return false;
-                }
-
-                throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s was never imported. Did you maybe forget to add a "use" statement for this annotation?', $name, $this->context));
-            }
-        }
-
-        if ( ! $this->classExists($name)) {
-            throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s does not exist, or could not be auto-loaded.', $name, $this->context));
-        }
-
-        // at this point, $name contains the fully qualified class name of the
-        // annotation, and it is also guaranteed that this class exists, and
-        // that it is loaded
-
-
-        // collects the metadata annotation only if there is not yet
-        if ( ! isset(self::$annotationMetadata[$name])) {
-            $this->collectAnnotationMetadata($name);
-        }
-
-        // verify that the class is really meant to be an annotation and not just any ordinary class
-        if (self::$annotationMetadata[$name]['is_annotation'] === false) {
-            if (isset($this->ignoredAnnotationNames[$originalName])) {
-                return false;
-            }
-
-            throw AnnotationException::semanticalError(sprintf('The class "%s" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "%s". If it is indeed no annotation, then you need to add @IgnoreAnnotation("%s") to the _class_ doc comment of %s.', $name, $name, $originalName, $this->context));
-        }
-
-        //if target is nested annotation
-        $target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target;
-
-        // Next will be nested
-        $this->isNestedAnnotation = true;
-
-        //if annotation does not support current target
-        if (0 === (self::$annotationMetadata[$name]['targets'] & $target) && $target) {
-            throw AnnotationException::semanticalError(
-                sprintf('Annotation @%s is not allowed to be declared on %s. You may only use this annotation on these code elements: %s.',
-                     $originalName, $this->context, self::$annotationMetadata[$name]['targets_literal'])
-            );
-        }
-
-        $values = $this->MethodCall();
-
-        if (isset(self::$annotationMetadata[$name]['enum'])) {
-            // checks all declared attributes
-            foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) {
-                // checks if the attribute is a valid enumerator
-                if (isset($values[$property]) && ! in_array($values[$property], $enum['value'])) {
-                    throw AnnotationException::enumeratorError($property, $name, $this->context, $enum['literal'], $values[$property]);
-                }
-            }
-        }
-
-        // checks all declared attributes
-        foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) {
-            if ($property === self::$annotationMetadata[$name]['default_property']
-                && !isset($values[$property]) && isset($values['value'])) {
-                $property = 'value';
-            }
-
-            // handle a not given attribute or null value
-            if (!isset($values[$property])) {
-                if ($type['required']) {
-                    throw AnnotationException::requiredError($property, $originalName, $this->context, 'a(n) '.$type['value']);
-                }
-
-                continue;
-            }
-
-            if ($type['type'] === 'array') {
-                // handle the case of a single value
-                if ( ! is_array($values[$property])) {
-                    $values[$property] = array($values[$property]);
-                }
-
-                // checks if the attribute has array type declaration, such as "array<string>"
-                if (isset($type['array_type'])) {
-                    foreach ($values[$property] as $item) {
-                        if (gettype($item) !== $type['array_type'] && !$item instanceof $type['array_type']) {
-                            throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'either a(n) '.$type['array_type'].', or an array of '.$type['array_type'].'s', $item);
-                        }
-                    }
-                }
-            } elseif (gettype($values[$property]) !== $type['type'] && !$values[$property] instanceof $type['type']) {
-                throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'a(n) '.$type['value'], $values[$property]);
-            }
-        }
-
-        // check if the annotation expects values via the constructor,
-        // or directly injected into public properties
-        if (self::$annotationMetadata[$name]['has_constructor'] === true) {
-            return new $name($values);
-        }
-
-        $instance = new $name();
-
-        foreach ($values as $property => $value) {
-            if (!isset(self::$annotationMetadata[$name]['properties'][$property])) {
-                if ('value' !== $property) {
-                    throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not have a property named "%s". Available properties: %s', $originalName, $this->context, $property, implode(', ', self::$annotationMetadata[$name]['properties'])));
-                }
-
-                // handle the case if the property has no annotations
-                if ( ! $property = self::$annotationMetadata[$name]['default_property']) {
-                    throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not accept any values, but got %s.', $originalName, $this->context, json_encode($values)));
-                }
-            }
-
-            $instance->{$property} = $value;
-        }
-
-        return $instance;
-    }
-
-    /**
-     * MethodCall ::= ["(" [Values] ")"]
-     *
-     * @return array
-     */
-    private function MethodCall()
-    {
-        $values = array();
-
-        if ( ! $this->lexer->isNextToken(DocLexer::T_OPEN_PARENTHESIS)) {
-            return $values;
-        }
-
-        $this->match(DocLexer::T_OPEN_PARENTHESIS);
-
-        if ( ! $this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) {
-            $values = $this->Values();
-        }
-
-        $this->match(DocLexer::T_CLOSE_PARENTHESIS);
-
-        return $values;
-    }
-
-    /**
-     * Values ::= Array | Value {"," Value}* [","]
-     *
-     * @return array
-     */
-    private function Values()
-    {
-        $values = array($this->Value());
-
-        while ($this->lexer->isNextToken(DocLexer::T_COMMA)) {
-            $this->match(DocLexer::T_COMMA);
-
-            if ($this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) {
-                break;
-            }
-
-            $token = $this->lexer->lookahead;
-            $value = $this->Value();
-
-            if ( ! is_object($value) && ! is_array($value)) {
-                $this->syntaxError('Value', $token);
-            }
-
-            $values[] = $value;
-        }
-
-        foreach ($values as $k => $value) {
-            if (is_object($value) && $value instanceof \stdClass) {
-                $values[$value->name] = $value->value;
-            } else if ( ! isset($values['value'])){
-                $values['value'] = $value;
-            } else {
-                if ( ! is_array($values['value'])) {
-                    $values['value'] = array($values['value']);
-                }
-
-                $values['value'][] = $value;
-            }
-
-            unset($values[$k]);
-        }
-
-        return $values;
-    }
-
-    /**
-     * Constant ::= integer | string | float | boolean
-     *
-     * @return mixed
-     *
-     * @throws AnnotationException
-     */
-    private function Constant()
-    {
-        $identifier = $this->Identifier();
-
-        if ( ! defined($identifier) && false !== strpos($identifier, '::') && '\\' !== $identifier[0]) {
-            list($className, $const) = explode('::', $identifier);
-
-            $alias = (false === $pos = strpos($className, '\\')) ? $className : substr($className, 0, $pos);
-            $found = false;
-
-            switch (true) {
-                case !empty ($this->namespaces):
-                    foreach ($this->namespaces as $ns) {
-                        if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) {
-                             $className = $ns.'\\'.$className;
-                             $found = true;
-                             break;
-                        }
-                    }
-                    break;
-
-                case isset($this->imports[$loweredAlias = strtolower($alias)]):
-                    $found     = true;
-                    $className = (false !== $pos)
-                        ? $this->imports[$loweredAlias] . substr($className, $pos)
-                        : $this->imports[$loweredAlias];
-                    break;
-
-                default:
-                    if(isset($this->imports['__NAMESPACE__'])) {
-                        $ns = $this->imports['__NAMESPACE__'];
-
-                        if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) {
-                            $className = $ns.'\\'.$className;
-                            $found = true;
-                        }
-                    }
-                    break;
-            }
-
-            if ($found) {
-                 $identifier = $className . '::' . $const;
-            }
-        }
-
-        // checks if identifier ends with ::class, \strlen('::class') === 7
-        $classPos = stripos($identifier, '::class');
-        if ($classPos === strlen($identifier) - 7) {
-            return substr($identifier, 0, $classPos);
-        }
-
-        if (!defined($identifier)) {
-            throw AnnotationException::semanticalErrorConstants($identifier, $this->context);
-        }
-
-        return constant($identifier);
-    }
-
-    /**
-     * Identifier ::= string
-     *
-     * @return string
-     */
-    private function Identifier()
-    {
-        // check if we have an annotation
-        if ( ! $this->lexer->isNextTokenAny(self::$classIdentifiers)) {
-            $this->syntaxError('namespace separator or identifier');
-        }
-
-        $this->lexer->moveNext();
-
-        $className = $this->lexer->token['value'];
-
-        while ($this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value']))
-                && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) {
-
-            $this->match(DocLexer::T_NAMESPACE_SEPARATOR);
-            $this->matchAny(self::$classIdentifiers);
-
-            $className .= '\\' . $this->lexer->token['value'];
-        }
-
-        return $className;
-    }
-
-    /**
-     * Value ::= PlainValue | FieldAssignment
-     *
-     * @return mixed
-     */
-    private function Value()
-    {
-        $peek = $this->lexer->glimpse();
-
-        if (DocLexer::T_EQUALS === $peek['type']) {
-            return $this->FieldAssignment();
-        }
-
-        return $this->PlainValue();
-    }
-
-    /**
-     * PlainValue ::= integer | string | float | boolean | Array | Annotation
-     *
-     * @return mixed
-     */
-    private function PlainValue()
-    {
-        if ($this->lexer->isNextToken(DocLexer::T_OPEN_CURLY_BRACES)) {
-            return $this->Arrayx();
-        }
-
-        if ($this->lexer->isNextToken(DocLexer::T_AT)) {
-            return $this->Annotation();
-        }
-
-        if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) {
-            return $this->Constant();
-        }
-
-        switch ($this->lexer->lookahead['type']) {
-            case DocLexer::T_STRING:
-                $this->match(DocLexer::T_STRING);
-                return $this->lexer->token['value'];
-
-            case DocLexer::T_INTEGER:
-                $this->match(DocLexer::T_INTEGER);
-                return (int)$this->lexer->token['value'];
-
-            case DocLexer::T_FLOAT:
-                $this->match(DocLexer::T_FLOAT);
-                return (float)$this->lexer->token['value'];
-
-            case DocLexer::T_TRUE:
-                $this->match(DocLexer::T_TRUE);
-                return true;
-
-            case DocLexer::T_FALSE:
-                $this->match(DocLexer::T_FALSE);
-                return false;
-
-            case DocLexer::T_NULL:
-                $this->match(DocLexer::T_NULL);
-                return null;
-
-            default:
-                $this->syntaxError('PlainValue');
-        }
-    }
-
-    /**
-     * FieldAssignment ::= FieldName "=" PlainValue
-     * FieldName ::= identifier
-     *
-     * @return array
-     */
-    private function FieldAssignment()
-    {
-        $this->match(DocLexer::T_IDENTIFIER);
-        $fieldName = $this->lexer->token['value'];
-
-        $this->match(DocLexer::T_EQUALS);
-
-        $item = new \stdClass();
-        $item->name  = $fieldName;
-        $item->value = $this->PlainValue();
-
-        return $item;
-    }
-
-    /**
-     * Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}"
-     *
-     * @return array
-     */
-    private function Arrayx()
-    {
-        $array = $values = array();
-
-        $this->match(DocLexer::T_OPEN_CURLY_BRACES);
-
-        // If the array is empty, stop parsing and return.
-        if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
-            $this->match(DocLexer::T_CLOSE_CURLY_BRACES);
-
-            return $array;
-        }
-
-        $values[] = $this->ArrayEntry();
-
-        while ($this->lexer->isNextToken(DocLexer::T_COMMA)) {
-            $this->match(DocLexer::T_COMMA);
-
-            // optional trailing comma
-            if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) {
-                break;
-            }
-
-            $values[] = $this->ArrayEntry();
-        }
-
-        $this->match(DocLexer::T_CLOSE_CURLY_BRACES);
-
-        foreach ($values as $value) {
-            list ($key, $val) = $value;
-
-            if ($key !== null) {
-                $array[$key] = $val;
-            } else {
-                $array[] = $val;
-            }
-        }
-
-        return $array;
-    }
-
-    /**
-     * ArrayEntry ::= Value | KeyValuePair
-     * KeyValuePair ::= Key ("=" | ":") PlainValue | Constant
-     * Key ::= string | integer | Constant
-     *
-     * @return array
-     */
-    private function ArrayEntry()
-    {
-        $peek = $this->lexer->glimpse();
-
-        if (DocLexer::T_EQUALS === $peek['type']
-                || DocLexer::T_COLON === $peek['type']) {
-
-            if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) {
-                $key = $this->Constant();
-            } else {
-                $this->matchAny(array(DocLexer::T_INTEGER, DocLexer::T_STRING));
-                $key = $this->lexer->token['value'];
-            }
-
-            $this->matchAny(array(DocLexer::T_EQUALS, DocLexer::T_COLON));
-
-            return array($key, $this->PlainValue());
-        }
-
-        return array(null, $this->Value());
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
deleted file mode 100644
index e9b29af..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * File cache reader for annotations.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class FileCacheReader implements Reader
-{
-    /**
-     * @var Reader
-     */
-    private $reader;
-
-    /**
-     * @var string
-     */
-    private $dir;
-
-    /**
-     * @var bool
-     */
-    private $debug;
-
-    /**
-     * @var array
-     */
-    private $loadedAnnotations = array();
-
-    /**
-     * @var array
-     */
-    private $classNameHashes = array();
-
-    /**
-     * Constructor.
-     *
-     * @param Reader  $reader
-     * @param string  $cacheDir
-     * @param boolean $debug
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function __construct(Reader $reader, $cacheDir, $debug = false)
-    {
-        $this->reader = $reader;
-        if (!is_dir($cacheDir) && !@mkdir($cacheDir, 0777, true)) {
-            throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist and could not be created.', $cacheDir));
-        }
-
-        $this->dir   = rtrim($cacheDir, '\\/');
-        $this->debug = $debug;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotations(\ReflectionClass $class)
-    {
-        if ( ! isset($this->classNameHashes[$class->name])) {
-            $this->classNameHashes[$class->name] = sha1($class->name);
-        }
-        $key = $this->classNameHashes[$class->name];
-
-        if (isset($this->loadedAnnotations[$key])) {
-            return $this->loadedAnnotations[$key];
-        }
-
-        $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
-        if (!is_file($path)) {
-            $annot = $this->reader->getClassAnnotations($class);
-            $this->saveCacheFile($path, $annot);
-            return $this->loadedAnnotations[$key] = $annot;
-        }
-
-        if ($this->debug
-            && (false !== $filename = $class->getFilename())
-            && filemtime($path) < filemtime($filename)) {
-            @unlink($path);
-
-            $annot = $this->reader->getClassAnnotations($class);
-            $this->saveCacheFile($path, $annot);
-            return $this->loadedAnnotations[$key] = $annot;
-        }
-
-        return $this->loadedAnnotations[$key] = include $path;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotations(\ReflectionProperty $property)
-    {
-        $class = $property->getDeclaringClass();
-        if ( ! isset($this->classNameHashes[$class->name])) {
-            $this->classNameHashes[$class->name] = sha1($class->name);
-        }
-        $key = $this->classNameHashes[$class->name].'$'.$property->getName();
-
-        if (isset($this->loadedAnnotations[$key])) {
-            return $this->loadedAnnotations[$key];
-        }
-
-        $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
-        if (!is_file($path)) {
-            $annot = $this->reader->getPropertyAnnotations($property);
-            $this->saveCacheFile($path, $annot);
-            return $this->loadedAnnotations[$key] = $annot;
-        }
-
-        if ($this->debug
-            && (false !== $filename = $class->getFilename())
-            && filemtime($path) < filemtime($filename)) {
-            @unlink($path);
-
-            $annot = $this->reader->getPropertyAnnotations($property);
-            $this->saveCacheFile($path, $annot);
-            return $this->loadedAnnotations[$key] = $annot;
-        }
-
-        return $this->loadedAnnotations[$key] = include $path;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotations(\ReflectionMethod $method)
-    {
-        $class = $method->getDeclaringClass();
-        if ( ! isset($this->classNameHashes[$class->name])) {
-            $this->classNameHashes[$class->name] = sha1($class->name);
-        }
-        $key = $this->classNameHashes[$class->name].'#'.$method->getName();
-
-        if (isset($this->loadedAnnotations[$key])) {
-            return $this->loadedAnnotations[$key];
-        }
-
-        $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php';
-        if (!is_file($path)) {
-            $annot = $this->reader->getMethodAnnotations($method);
-            $this->saveCacheFile($path, $annot);
-            return $this->loadedAnnotations[$key] = $annot;
-        }
-
-        if ($this->debug
-            && (false !== $filename = $class->getFilename())
-            && filemtime($path) < filemtime($filename)) {
-            @unlink($path);
-
-            $annot = $this->reader->getMethodAnnotations($method);
-            $this->saveCacheFile($path, $annot);
-            return $this->loadedAnnotations[$key] = $annot;
-        }
-
-        return $this->loadedAnnotations[$key] = include $path;
-    }
-
-    /**
-     * Saves the cache file.
-     *
-     * @param string $path
-     * @param mixed  $data
-     *
-     * @return void
-     */
-    private function saveCacheFile($path, $data)
-    {
-        if (!is_writable($this->dir)) {
-            throw new \InvalidArgumentException(sprintf('The directory "%s" is not writable. Both, the webserver and the console user need access. You can manage access rights for multiple users with "chmod +a". If your system does not support this, check out the acl package.', $this->dir));
-        }
-        file_put_contents($path, '<?php return unserialize('.var_export(serialize($data), true).');');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotation(\ReflectionClass $class, $annotationName)
-    {
-        $annotations = $this->getClassAnnotations($class);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof $annotationName) {
-                return $annotation;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
-    {
-        $annotations = $this->getMethodAnnotations($method);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof $annotationName) {
-                return $annotation;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
-    {
-        $annotations = $this->getPropertyAnnotations($property);
-
-        foreach ($annotations as $annotation) {
-            if ($annotation instanceof $annotationName) {
-                return $annotation;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Clears loaded annotations.
-     *
-     * @return void
-     */
-    public function clearLoadedAnnotations()
-    {
-        $this->loadedAnnotations = array();
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
deleted file mode 100644
index bf7fbdc..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * Allows the reader to be used in-place of Doctrine's reader.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class IndexedReader implements Reader
-{
-    /**
-     * @var Reader
-     */
-    private $delegate;
-
-    /**
-     * Constructor.
-     *
-     * @param Reader $reader
-     */
-    public function __construct(Reader $reader)
-    {
-        $this->delegate = $reader;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotations(\ReflectionClass $class)
-    {
-        $annotations = array();
-        foreach ($this->delegate->getClassAnnotations($class) as $annot) {
-            $annotations[get_class($annot)] = $annot;
-        }
-
-        return $annotations;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotation(\ReflectionClass $class, $annotation)
-    {
-        return $this->delegate->getClassAnnotation($class, $annotation);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotations(\ReflectionMethod $method)
-    {
-        $annotations = array();
-        foreach ($this->delegate->getMethodAnnotations($method) as $annot) {
-            $annotations[get_class($annot)] = $annot;
-        }
-
-        return $annotations;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotation(\ReflectionMethod $method, $annotation)
-    {
-        return $this->delegate->getMethodAnnotation($method, $annotation);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotations(\ReflectionProperty $property)
-    {
-        $annotations = array();
-        foreach ($this->delegate->getPropertyAnnotations($property) as $annot) {
-            $annotations[get_class($annot)] = $annot;
-        }
-
-        return $annotations;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotation(\ReflectionProperty $property, $annotation)
-    {
-        return $this->delegate->getPropertyAnnotation($property, $annotation);
-    }
-
-    /**
-     * Proxies all methods to the delegate.
-     *
-     * @param string $method
-     * @param array  $args
-     *
-     * @return mixed
-     */
-    public function __call($method, $args)
-    {
-        return call_user_func_array(array($this->delegate, $method), $args);
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
deleted file mode 100644
index 21ee7cc..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-use SplFileObject;
-
-/**
- * Parses a file for namespaces/use/class declarations.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Christian Kaps <christian.kaps@mohiva.com>
- */
-final class PhpParser
-{
-    /**
-     * Parses a class.
-     *
-     * @param \ReflectionClass $class A <code>ReflectionClass</code> object.
-     *
-     * @return array A list with use statements in the form (Alias => FQN).
-     */
-    public function parseClass(\ReflectionClass $class)
-    {
-        if (method_exists($class, 'getUseStatements')) {
-            return $class->getUseStatements();
-        }
-
-        if (false === $filename = $class->getFilename()) {
-            return array();
-        }
-
-        $content = $this->getFileContent($filename, $class->getStartLine());
-
-        if (null === $content) {
-            return array();
-        }
-
-        $namespace = preg_quote($class->getNamespaceName());
-        $content = preg_replace('/^.*?(\bnamespace\s+' . $namespace . '\s*[;{].*)$/s', '\\1', $content);
-        $tokenizer = new TokenParser('<?php ' . $content);
-
-        $statements = $tokenizer->parseUseStatements($class->getNamespaceName());
-
-        return $statements;
-    }
-
-    /**
-     * Gets the content of the file right up to the given line number.
-     *
-     * @param string  $filename   The name of the file to load.
-     * @param integer $lineNumber The number of lines to read from file.
-     *
-     * @return string The content of the file.
-     */
-    private function getFileContent($filename, $lineNumber)
-    {
-        if ( ! is_file($filename)) {
-            return null;
-        }
-
-        $content = '';
-        $lineCnt = 0;
-        $file = new SplFileObject($filename);
-        while (!$file->eof()) {
-            if ($lineCnt++ == $lineNumber) {
-                break;
-            }
-
-            $content .= $file->fgets();
-        }
-
-        return $content;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
deleted file mode 100644
index 4774f87..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * Interface for annotation readers.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface Reader
-{
-    /**
-     * Gets the annotations applied to a class.
-     *
-     * @param \ReflectionClass $class The ReflectionClass of the class from which
-     *                                the class annotations should be read.
-     *
-     * @return array An array of Annotations.
-     */
-    function getClassAnnotations(\ReflectionClass $class);
-
-    /**
-     * Gets a class annotation.
-     *
-     * @param \ReflectionClass $class          The ReflectionClass of the class from which
-     *                                         the class annotations should be read.
-     * @param string           $annotationName The name of the annotation.
-     *
-     * @return object|null The Annotation or NULL, if the requested annotation does not exist.
-     */
-    function getClassAnnotation(\ReflectionClass $class, $annotationName);
-
-    /**
-     * Gets the annotations applied to a method.
-     *
-     * @param \ReflectionMethod $method The ReflectionMethod of the method from which
-     *                                  the annotations should be read.
-     *
-     * @return array An array of Annotations.
-     */
-    function getMethodAnnotations(\ReflectionMethod $method);
-
-    /**
-     * Gets a method annotation.
-     *
-     * @param \ReflectionMethod $method         The ReflectionMethod to read the annotations from.
-     * @param string            $annotationName The name of the annotation.
-     *
-     * @return object|null The Annotation or NULL, if the requested annotation does not exist.
-     */
-    function getMethodAnnotation(\ReflectionMethod $method, $annotationName);
-
-    /**
-     * Gets the annotations applied to a property.
-     *
-     * @param \ReflectionProperty $property The ReflectionProperty of the property
-     *                                      from which the annotations should be read.
-     *
-     * @return array An array of Annotations.
-     */
-    function getPropertyAnnotations(\ReflectionProperty $property);
-
-    /**
-     * Gets a property annotation.
-     *
-     * @param \ReflectionProperty $property       The ReflectionProperty to read the annotations from.
-     * @param string              $annotationName The name of the annotation.
-     *
-     * @return object|null The Annotation or NULL, if the requested annotation does not exist.
-     */
-    function getPropertyAnnotation(\ReflectionProperty $property, $annotationName);
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
deleted file mode 100644
index d4757ee..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * Simple Annotation Reader.
- *
- * This annotation reader is intended to be used in projects where you have
- * full-control over all annotations that are available.
- *
- * @since  2.2
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-class SimpleAnnotationReader implements Reader
-{
-    /**
-     * @var DocParser
-     */
-    private $parser;
-
-    /**
-     * Constructor.
-     *
-     * Initializes a new SimpleAnnotationReader.
-     */
-    public function __construct()
-    {
-        $this->parser = new DocParser();
-        $this->parser->setIgnoreNotImportedAnnotations(true);
-    }
-
-    /**
-     * Adds a namespace in which we will look for annotations.
-     *
-     * @param string $namespace
-     *
-     * @return void
-     */
-    public function addNamespace($namespace)
-    {
-        $this->parser->addNamespace($namespace);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotations(\ReflectionClass $class)
-    {
-        return $this->parser->parse($class->getDocComment(), 'class '.$class->getName());
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotations(\ReflectionMethod $method)
-    {
-        return $this->parser->parse($method->getDocComment(), 'method '.$method->getDeclaringClass()->name.'::'.$method->getName().'()');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotations(\ReflectionProperty $property)
-    {
-        return $this->parser->parse($property->getDocComment(), 'property '.$property->getDeclaringClass()->name.'::$'.$property->getName());
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassAnnotation(\ReflectionClass $class, $annotationName)
-    {
-        foreach ($this->getClassAnnotations($class) as $annot) {
-            if ($annot instanceof $annotationName) {
-                return $annot;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethodAnnotation(\ReflectionMethod $method, $annotationName)
-    {
-        foreach ($this->getMethodAnnotations($method) as $annot) {
-            if ($annot instanceof $annotationName) {
-                return $annot;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName)
-    {
-        foreach ($this->getPropertyAnnotations($property) as $annot) {
-            if ($annot instanceof $annotationName) {
-                return $annot;
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php b/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
deleted file mode 100644
index 9bdccce..0000000
--- a/core/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Annotations;
-
-/**
- * Parses a file for namespaces/use/class declarations.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Christian Kaps <christian.kaps@mohiva.com>
- */
-class TokenParser
-{
-    /**
-     * The token list.
-     *
-     * @var array
-     */
-    private $tokens;
-
-    /**
-     * The number of tokens.
-     *
-     * @var int
-     */
-    private $numTokens;
-
-    /**
-     * The current array pointer.
-     *
-     * @var int
-     */
-    private $pointer = 0;
-
-    /**
-     * @param string $contents
-     */
-    public function __construct($contents)
-    {
-        $this->tokens = token_get_all($contents);
-
-        // The PHP parser sets internal compiler globals for certain things. Annoyingly, the last docblock comment it
-        // saw gets stored in doc_comment. When it comes to compile the next thing to be include()d this stored
-        // doc_comment becomes owned by the first thing the compiler sees in the file that it considers might have a
-        // docblock. If the first thing in the file is a class without a doc block this would cause calls to
-        // getDocBlock() on said class to return our long lost doc_comment. Argh.
-        // To workaround, cause the parser to parse an empty docblock. Sure getDocBlock() will return this, but at least
-        // it's harmless to us.
-        token_get_all("<?php\n/**\n *\n */");
-
-        $this->numTokens = count($this->tokens);
-    }
-
-    /**
-     * Gets the next non whitespace and non comment token.
-     *
-     * @param boolean $docCommentIsComment If TRUE then a doc comment is considered a comment and skipped.
-     *                                     If FALSE then only whitespace and normal comments are skipped.
-     *
-     * @return array|null The token if exists, null otherwise.
-     */
-    public function next($docCommentIsComment = TRUE)
-    {
-        for ($i = $this->pointer; $i < $this->numTokens; $i++) {
-            $this->pointer++;
-            if ($this->tokens[$i][0] === T_WHITESPACE ||
-                $this->tokens[$i][0] === T_COMMENT ||
-                ($docCommentIsComment && $this->tokens[$i][0] === T_DOC_COMMENT)) {
-
-                continue;
-            }
-
-            return $this->tokens[$i];
-        }
-
-        return null;
-    }
-
-    /**
-     * Parses a single use statement.
-     *
-     * @return array A list with all found class names for a use statement.
-     */
-    public function parseUseStatement()
-    {
-        $class = '';
-        $alias = '';
-        $statements = array();
-        $explicitAlias = false;
-        while (($token = $this->next())) {
-            $isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR;
-            if (!$explicitAlias && $isNameToken) {
-                $class .= $token[1];
-                $alias = $token[1];
-            } else if ($explicitAlias && $isNameToken) {
-                $alias .= $token[1];
-            } else if ($token[0] === T_AS) {
-                $explicitAlias = true;
-                $alias = '';
-            } else if ($token === ',') {
-                $statements[strtolower($alias)] = $class;
-                $class = '';
-                $alias = '';
-                $explicitAlias = false;
-            } else if ($token === ';') {
-                $statements[strtolower($alias)] = $class;
-                break;
-            } else {
-                break;
-            }
-        }
-
-        return $statements;
-    }
-
-    /**
-     * Gets all use statements.
-     *
-     * @param string $namespaceName The namespace name of the reflected class.
-     *
-     * @return array A list with all found use statements.
-     */
-    public function parseUseStatements($namespaceName)
-    {
-        $statements = array();
-        while (($token = $this->next())) {
-            if ($token[0] === T_USE) {
-                $statements = array_merge($statements, $this->parseUseStatement());
-                continue;
-            }
-            if ($token[0] !== T_NAMESPACE || $this->parseNamespace() != $namespaceName) {
-                continue;
-            }
-
-            // Get fresh array for new namespace. This is to prevent the parser to collect the use statements
-            // for a previous namespace with the same name. This is the case if a namespace is defined twice
-            // or if a namespace with the same name is commented out.
-            $statements = array();
-        }
-
-        return $statements;
-    }
-
-    /**
-     * Gets the namespace.
-     *
-     * @return string The found namespace.
-     */
-    public function parseNamespace()
-    {
-        $name = '';
-        while (($token = $this->next()) && ($token[0] === T_STRING || $token[0] === T_NS_SEPARATOR)) {
-            $name .= $token[1];
-        }
-
-        return $name;
-    }
-
-    /**
-     * Gets the class name.
-     *
-     * @return string The found class name.
-     */
-    public function parseClass()
-    {
-        // Namespaces and class names are tokenized the same: T_STRINGs
-        // separated by T_NS_SEPARATOR so we can use one function to provide
-        // both.
-        return $this->parseNamespace();
-    }
-}
diff --git a/core/vendor/doctrine/annotations/phpunit.xml.dist b/core/vendor/doctrine/annotations/phpunit.xml.dist
deleted file mode 100644
index 6ab0c8c..0000000
--- a/core/vendor/doctrine/annotations/phpunit.xml.dist
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="./tests/Doctrine/Tests/TestInit.php"
->
-    <testsuites>
-        <testsuite name="Doctrine Annotations Test Suite">
-            <directory>./tests/Doctrine/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./lib/Doctrine/</directory>
-        </whitelist>
-    </filter>
-    
-    <groups>
-        <exclude>
-            <group>performance</group>
-        </exclude>
-    </groups>
-</phpunit>
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AbstractReaderTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AbstractReaderTest.php
deleted file mode 100644
index dd324bd..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AbstractReaderTest.php
+++ /dev/null
@@ -1,645 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\Annotation\IgnoreAnnotation;
-use Doctrine\Common\Annotations\Annotation;
-use Doctrine\Common\Annotations\Reader;
-use ReflectionClass, Doctrine\Common\Annotations\AnnotationReader;
-
-require_once __DIR__ . '/TopLevelAnnotation.php';
-
-abstract class AbstractReaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function getReflectionClass()
-    {
-        $className = 'Doctrine\Tests\Common\Annotations\DummyClass';
-        return new ReflectionClass($className);
-    }
-
-    public function testAnnotations()
-    {
-        $class = $this->getReflectionClass();
-        $reader = $this->getReader();
-
-        $this->assertEquals(1, count($reader->getClassAnnotations($class)));
-        $this->assertInstanceOf($annotName = 'Doctrine\Tests\Common\Annotations\DummyAnnotation', $annot = $reader->getClassAnnotation($class, $annotName));
-        $this->assertEquals("hello", $annot->dummyValue);
-
-        $field1Prop = $class->getProperty('field1');
-        $propAnnots = $reader->getPropertyAnnotations($field1Prop);
-        $this->assertEquals(1, count($propAnnots));
-        $this->assertInstanceOf($annotName, $annot = $reader->getPropertyAnnotation($field1Prop, $annotName));
-        $this->assertEquals("fieldHello", $annot->dummyValue);
-
-        $getField1Method = $class->getMethod('getField1');
-        $methodAnnots = $reader->getMethodAnnotations($getField1Method);
-        $this->assertEquals(1, count($methodAnnots));
-        $this->assertInstanceOf($annotName, $annot = $reader->getMethodAnnotation($getField1Method, $annotName));
-        $this->assertEquals(array(1, 2, "three"), $annot->value);
-
-        $field2Prop = $class->getProperty('field2');
-        $propAnnots = $reader->getPropertyAnnotations($field2Prop);
-        $this->assertEquals(1, count($propAnnots));
-        $this->assertInstanceOf($annotName = 'Doctrine\Tests\Common\Annotations\DummyJoinTable', $joinTableAnnot = $reader->getPropertyAnnotation($field2Prop, $annotName));
-        $this->assertEquals(1, count($joinTableAnnot->joinColumns));
-        $this->assertEquals(1, count($joinTableAnnot->inverseJoinColumns));
-        $this->assertTrue($joinTableAnnot->joinColumns[0] instanceof DummyJoinColumn);
-        $this->assertTrue($joinTableAnnot->inverseJoinColumns[0] instanceof DummyJoinColumn);
-        $this->assertEquals('col1', $joinTableAnnot->joinColumns[0]->name);
-        $this->assertEquals('col2', $joinTableAnnot->joinColumns[0]->referencedColumnName);
-        $this->assertEquals('col3', $joinTableAnnot->inverseJoinColumns[0]->name);
-        $this->assertEquals('col4', $joinTableAnnot->inverseJoinColumns[0]->referencedColumnName);
-
-        $dummyAnnot = $reader->getMethodAnnotation($class->getMethod('getField1'), 'Doctrine\Tests\Common\Annotations\DummyAnnotation');
-        $this->assertEquals('', $dummyAnnot->dummyValue);
-        $this->assertEquals(array(1, 2, 'three'), $dummyAnnot->value);
-
-        $dummyAnnot = $reader->getPropertyAnnotation($class->getProperty('field1'), 'Doctrine\Tests\Common\Annotations\DummyAnnotation');
-        $this->assertEquals('fieldHello', $dummyAnnot->dummyValue);
-
-        $classAnnot = $reader->getClassAnnotation($class, 'Doctrine\Tests\Common\Annotations\DummyAnnotation');
-        $this->assertEquals('hello', $classAnnot->dummyValue);
-    }
-
-    public function testAnnotationsWithValidTargets()
-    {
-        $reader = $this->getReader();
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithValidAnnotationTarget');
-
-        $this->assertEquals(1,count($reader->getClassAnnotations($class)));
-        $this->assertEquals(1,count($reader->getPropertyAnnotations($class->getProperty('foo'))));
-        $this->assertEquals(1,count($reader->getMethodAnnotations($class->getMethod('someFunction'))));
-        $this->assertEquals(1,count($reader->getPropertyAnnotations($class->getProperty('nested'))));
-    }
-
-    public function testAnnotationsWithVarType()
-    {
-        $reader = $this->getReader();
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithVarType');
-
-        $this->assertEquals(1,count($fooAnnot = $reader->getPropertyAnnotations($class->getProperty('foo'))));
-        $this->assertEquals(1,count($barAnnot = $reader->getMethodAnnotations($class->getMethod('bar'))));
-
-        $this->assertInternalType('string',  $fooAnnot[0]->string);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', $barAnnot[0]->annotation);
-    }
-
-    public function testAtInDescription()
-    {
-        $reader = $this->getReader();
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAtInDescriptionAndAnnotation');
-
-        $this->assertEquals(1, count($fooAnnot = $reader->getPropertyAnnotations($class->getProperty('foo'))));
-        $this->assertEquals(1, count($barAnnot = $reader->getPropertyAnnotations($class->getProperty('bar'))));
-
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetPropertyMethod', $fooAnnot[0]);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetPropertyMethod', $barAnnot[0]);
-    }
-
-    public function testClassWithWithDanglingComma()
-    {
-        $reader = $this->getReader();
-        $annots = $reader->getClassAnnotations(new \ReflectionClass('Doctrine\Tests\Common\Annotations\DummyClassWithDanglingComma'));
-
-        $this->assertCount(1, $annots);
-    }
-
-     /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] Annotation @AnnotationTargetPropertyMethod is not allowed to be declared on class Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtClass. You may only use this annotation on these code elements: METHOD, PROPERTY
-     */
-    public function testClassWithInvalidAnnotationTargetAtClassDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getClassAnnotations(new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtClass'));
-    }
-
-    public function testClassWithWithInclude()
-    {
-        $reader = $this->getReader();
-        $annots = $reader->getClassAnnotations(new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithRequire'));
-        $this->assertCount(1, $annots);
-    }
-
-     /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] Annotation @AnnotationTargetClass is not allowed to be declared on property Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtProperty::$foo. You may only use this annotation on these code elements: CLASS
-     */
-    public function testClassWithInvalidAnnotationTargetAtPropertyDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtProperty', 'foo'));
-    }
-
-     /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] Annotation @AnnotationTargetAnnotation is not allowed to be declared on property Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtProperty::$bar. You may only use this annotation on these code elements: ANNOTATION
-     */
-    public function testClassWithInvalidNestedAnnotationTargetAtPropertyDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtProperty', 'bar'));
-    }
-
-     /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] Annotation @AnnotationTargetClass is not allowed to be declared on method Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtMethod::functionName(). You may only use this annotation on these code elements: CLASS
-     */
-    public function testClassWithInvalidAnnotationTargetAtMethodDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getMethodAnnotations(new \ReflectionMethod('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtMethod', 'functionName'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 24 in class @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithTargetSyntaxError.
-     */
-    public function testClassWithAnnotationWithTargetSyntaxErrorAtClassDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getClassAnnotations(new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithTargetSyntaxError'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 24 in class @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithTargetSyntaxError.
-     */
-    public function testClassWithAnnotationWithTargetSyntaxErrorAtPropertyDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithTargetSyntaxError','foo'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 24 in class @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithTargetSyntaxError.
-     */
-    public function testClassWithAnnotationWithTargetSyntaxErrorAtMethodDocBlock()
-    {
-        $reader  = $this->getReader();
-        $reader->getMethodAnnotations(new \ReflectionMethod('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithTargetSyntaxError','bar'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Type Error] Attribute "string" of @AnnotationWithVarType declared on property Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithVarType::$invalidProperty expects a(n) string, but got integer.
-     */
-    public function testClassWithPropertyInvalidVarTypeError()
-    {
-        $reader = $this->getReader();
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithVarType');
-
-        $reader->getPropertyAnnotations($class->getProperty('invalidProperty'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Type Error] Attribute "annotation" of @AnnotationWithVarType declared on method Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithVarType::invalidMethod() expects a(n) Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll, but got an instance of Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation.
-     */
-    public function testClassWithMethodInvalidVarTypeError()
-    {
-        $reader = $this->getReader();
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationWithVarType');
-
-        $reader->getMethodAnnotations($class->getMethod('invalidMethod'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 18 in class Doctrine\Tests\Common\Annotations\DummyClassSyntaxError.
-     */
-    public function testClassSyntaxErrorContext()
-    {
-        $reader = $this->getReader();
-        $reader->getClassAnnotations(new \ReflectionClass('Doctrine\Tests\Common\Annotations\DummyClassSyntaxError'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 18 in method Doctrine\Tests\Common\Annotations\DummyClassMethodSyntaxError::foo().
-     */
-    public function testMethodSyntaxErrorContext()
-    {
-        $reader = $this->getReader();
-        $reader->getMethodAnnotations(new \ReflectionMethod('Doctrine\Tests\Common\Annotations\DummyClassMethodSyntaxError', 'foo'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 18 in property Doctrine\Tests\Common\Annotations\DummyClassPropertySyntaxError::$foo.
-     */
-    public function testPropertySyntaxErrorContext()
-    {
-        $reader = $this->getReader();
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\DummyClassPropertySyntaxError', 'foo'));
-    }
-
-    /**
-     * @group regression
-     */
-    public function testMultipleAnnotationsOnSameLine()
-    {
-        $reader = $this->getReader();
-        $annots = $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\DummyClass2', 'id'));
-        $this->assertEquals(3, count($annots));
-    }
-
-    public function testNonAnnotationProblem()
-    {
-        $reader = $this->getReader();
-
-        $this->assertNotNull($annot = $reader->getPropertyAnnotation(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\DummyClassNonAnnotationProblem', 'foo'), $name = 'Doctrine\Tests\Common\Annotations\DummyAnnotation'));
-        $this->assertInstanceOf($name, $annot);
-    }
-
-    public function testIncludeIgnoreAnnotation()
-    {
-        $reader = $this->getReader();
-
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithIgnoreAnnotation', 'foo'));
-        $this->assertFalse(class_exists('Doctrine\Tests\Common\Annotations\Fixtures\IgnoreAnnotationClass', false));
-    }
-
-    public function testImportWithConcreteAnnotation()
-    {
-        $reader = $this->getReader();
-        $property = new \ReflectionProperty('Doctrine\Tests\Common\Annotations\TestImportWithConcreteAnnotation', 'field');
-        $annotations = $reader->getPropertyAnnotations($property);
-        $this->assertEquals(1, count($annotations));
-        $this->assertNotNull($reader->getPropertyAnnotation($property, 'Doctrine\Tests\Common\Annotations\DummyAnnotation'));
-    }
-
-    public function testImportWithInheritance()
-    {
-        $reader = $this->getReader();
-
-        $class = new TestParentClass();
-        $ref = new \ReflectionClass($class);
-
-        $childAnnotations = $reader->getPropertyAnnotations($ref->getProperty('child'));
-        $this->assertEquals(1, count($childAnnotations));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Foo\Name', reset($childAnnotations));
-
-        $parentAnnotations = $reader->getPropertyAnnotations($ref->getProperty('parent'));
-        $this->assertEquals(1, count($parentAnnotations));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Bar\Name', reset($parentAnnotations));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The annotation "@NameFoo" in property Doctrine\Tests\Common\Annotations\TestAnnotationNotImportedClass::$field was never imported.
-     */
-    public function testImportDetectsNotImportedAnnotation()
-    {
-        $reader = $this->getReader();
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\TestAnnotationNotImportedClass', 'field'));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The annotation "@Foo\Bar\Name" in property Doctrine\Tests\Common\Annotations\TestNonExistentAnnotationClass::$field was never imported.
-     */
-    public function testImportDetectsNonExistentAnnotation()
-    {
-        $reader = $this->getReader();
-        $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\TestNonExistentAnnotationClass', 'field'));
-    }
-
-    public function testTopLevelAnnotation()
-    {
-        $reader = $this->getReader();
-        $annotations = $reader->getPropertyAnnotations(new \ReflectionProperty('Doctrine\Tests\Common\Annotations\TestTopLevelAnnotationClass', 'field'));
-
-        $this->assertEquals(1, count($annotations));
-        $this->assertInstanceOf('\TopLevelAnnotation', reset($annotations));
-    }
-
-    public function testIgnoresAnnotationsNotPrefixedWithWhitespace()
-    {
-        $reader = $this->getReader();
-
-        $annotation = $reader->getClassAnnotation(new \ReflectionClass(new TestIgnoresNonAnnotationsClass()), 'Doctrine\Tests\Common\Annotations\Name');
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Name', $annotation);
-    }
-
-    private static $testResetsPhpParserAfterUseRun = false;
-
-    /**
-     * When getUseStatements isn't available on ReflectionClass the PhpParser has to use token_get_all(). If that
-     * happens various PHP compiler globals get set, and these can have seriously bad effects on the next file to be
-     * parsed.
-     * Notably the doc_comment compiler global can end up containing a docblock comment. The next file to be parsed
-     * on an include() will have this docblock comment attached to the first thing in the file that the compiler
-     * considers to own comments. If this is a class then any later calls to getDocComment() for that class will have
-     * undesirable effects. *sigh*
-     */
-    public function testResetsPhpParserAfterUse()
-    {
-        // If someone has already included our main test fixture this test is invalid. It's important that our require
-        // causes this file to be parsed and compiled at a certain point.
-        $this->assertFalse(!self::$testResetsPhpParserAfterUseRun && class_exists('Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment'), 'Test invalid if class has already been compiled');
-        self::$testResetsPhpParserAfterUseRun = true;
-
-        $reader = $this->getReader();
-
-        // First make sure the annotation cache knows about the annotations we want to use.
-        // If we don't do this then loading of annotations into the cache will cause the parser to get out of the bad
-        // state we want to test.
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithValidAnnotationTarget');
-        $reader->getClassAnnotations($class);
-
-        // Now import an incredibly dull class which makes use of the same class level annotation that the previous class does.
-        $class  = new ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithClassAnnotationOnly');
-        $annotations = $reader->getClassAnnotations($class);
-
-        // This include needs to be here since we need the PHP compiler to run over it as the next thing the PHP
-        // parser sees since PhpParser called token_get_all() on the intro to ClassWithClassAnnotationOnly.
-        // Our test class cannot be in a namespace (some versions of PHP reset the doc_comment compiler global when
-        // you hit a namespace declaration), so cannot be autoloaded.
-        require_once __DIR__ . '/Fixtures/ClassNoNamespaceNoComment.php';
-
-        // So, hopefully, if all has gone OK, our class with class annotations should actually have them.
-        // If this fails then something is quite badly wrong elsewhere.
-        // Note that if this happens before the require it can cause other PHP files to be included, resetting the
-        // compiler global state, and invalidating this test case.
-        $this->assertNotEmpty($annotations);
-
-        $annotations = $reader->getClassAnnotations(new \ReflectionClass(new \Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment()));
-        // And if our workaround for this bug is OK, our class with no doc comment should not have any class annotations.
-        $this->assertEmpty($annotations);
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The class "Doctrine\Tests\Common\Annotations\Fixtures\NoAnnotation" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "Doctrine\Tests\Common\Annotations\Fixtures\NoAnnotation". If it is indeed no annotation, then you need to add @IgnoreAnnotation("NoAnnotation") to the _class_ doc comment of class Doctrine\Tests\Common\Annotations\Fixtures\InvalidAnnotationUsageClass.
-     */
-    public function testErrorWhenInvalidAnnotationIsUsed()
-    {
-        $reader = $this->getReader();
-        $ref = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\InvalidAnnotationUsageClass');
-        $reader->getClassAnnotations($ref);
-    }
-
-    public function testInvalidAnnotationUsageButIgnoredClass()
-    {
-        $reader = $this->getReader();
-        $ref = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\InvalidAnnotationUsageButIgnoredClass');
-        $annots = $reader->getClassAnnotations($ref);
-
-        $this->assertEquals(2, count($annots));
-    }
-
-    /**
-     * @group DDC-1660
-     * @group regression
-     */
-    public function testInvalidAnnotationButIgnored()
-    {
-        $reader = $this->getReader();
-        $class  = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassDDC1660');
-
-        $this->assertTrue(class_exists('Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Version'));
-        $this->assertCount(0, $reader->getClassAnnotations($class));
-        $this->assertCount(0, $reader->getMethodAnnotations($class->getMethod('bar')));
-        $this->assertCount(0, $reader->getPropertyAnnotations($class->getProperty('foo')));
-    }
-
-    public function testAnnotationEnumeratorException()
-    {
-        $reader     = $this->getReader();
-        $class      = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationEnum');
-
-        $this->assertCount(1, $bar = $reader->getMethodAnnotations($class->getMethod('bar')));
-        $this->assertCount(1, $foo = $reader->getPropertyAnnotations($class->getProperty('foo')));
-
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum', $bar[0]);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum', $foo[0]);
-
-        try {
-            $reader->getPropertyAnnotations($class->getProperty('invalidProperty'));
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertEquals('[Enum Error] Attribute "value" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum declared on property Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationEnum::$invalidProperty accept only [ONE, TWO, THREE], but got FOUR.', $exc->getMessage());
-        }
-
-        try {
-            $reader->getMethodAnnotations($class->getMethod('invalidMethod'));
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertEquals('[Enum Error] Attribute "value" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum declared on method Doctrine\Tests\Common\Annotations\Fixtures\ClassWithAnnotationEnum::invalidMethod() accept only [ONE, TWO, THREE], but got 5.', $exc->getMessage());
-        }
-    }
-
-    /**
-     * @group DCOM-106
-     */
-    public function testIgnoreFixMeAndUpperCaseToDo()
-    {
-        $reader = $this->getReader();
-        $ref = new \ReflectionClass('Doctrine\Tests\Common\Annotations\DCOM106');
-        $reader->getClassAnnotations($ref);
-    }
-
-    /**
-     * @return AnnotationReader
-     */
-    abstract protected function getReader();
-}
-
-/**
- * @parseAnnotation("var")
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- */
-class TestParseAnnotationClass
-{
-    /**
-     * @var
-     */
-    private $field;
-}
-
-/**
- * @Name
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class TestIgnoresNonAnnotationsClass
-{
-}
-
-class TestTopLevelAnnotationClass
-{
-    /**
-     * @\TopLevelAnnotation
-     */
-    private $field;
-}
-
-class TestNonExistentAnnotationClass
-{
-    /**
-     * @Foo\Bar\Name
-     */
-    private $field;
-}
-
-class TestAnnotationNotImportedClass
-{
-    /**
-     * @NameFoo
-     */
-    private $field;
-}
-
-class TestChildClass
-{
-    /**
-     * @\Doctrine\Tests\Common\Annotations\Foo\Name(name = "foo")
-     */
-    protected $child;
-}
-
-class TestParentClass extends TestChildClass
-{
-    /**
-     * @\Doctrine\Tests\Common\Annotations\Bar\Name(name = "bar")
-     */
-    private $parent;
-}
-
-class TestImportWithConcreteAnnotation
-{
-    /**
-     * @DummyAnnotation(dummyValue = "bar")
-     */
-    private $field;
-}
-
-/**
- * @ignoreAnnotation("var")
- */
-class DummyClass2 {
-    /**
-     * @DummyId @DummyColumn(type="integer") @DummyGeneratedValue
-     * @var integer
-     */
-    private $id;
-}
-
-/** @Annotation */
-class DummyId extends Annotation {}
-/** @Annotation */
-class DummyColumn extends Annotation {
-    public $type;
-}
-/** @Annotation */
-class DummyGeneratedValue extends Annotation {}
-/** @Annotation */
-class DummyAnnotation extends Annotation {
-    public $dummyValue;
-}
-
-/**
- * @api
- * @Annotation
- */
-class DummyAnnotationWithIgnoredAnnotation extends Annotation {
-    public $dummyValue;
-}
-
-/** @Annotation */
-class DummyJoinColumn extends Annotation {
-    public $name;
-    public $referencedColumnName;
-}
-/** @Annotation */
-class DummyJoinTable extends Annotation {
-    public $name;
-    public $joinColumns;
-    public $inverseJoinColumns;
-}
-
-/**
- * @DummyAnnotation(dummyValue = "bar",)
- */
-class DummyClassWithDanglingComma
-{
-}
-
-/**
- * @DummyAnnotation(@)
- */
-class DummyClassSyntaxError
-{
-
-}
-
-class DummyClassMethodSyntaxError
-{
-    /**
-     * @DummyAnnotation(@)
-     */
-    public function foo()
-    {
-
-    }
-}
-
-class DummyClassPropertySyntaxError
-{
-    /**
-     * @DummyAnnotation(@)
-     */
-    public $foo;
-}
-
-/**
- * @ignoreAnnotation({"since", "var"})
- */
-class DummyClassNonAnnotationProblem
-{
-    /**
-     * @DummyAnnotation
-     *
-     * @var \Test
-     * @since 0.1
-     */
-    public $foo;
-}
-
-
-/**
-* @DummyAnnotation Foo bar <foobar@1domain.com>
-*/
-class DummyClassWithEmail
-{
-
-}
-
-
-/**
- * @fixme public
- * @TODO
- */
-class DCOM106
-{
-
-}
-
-namespace Doctrine\Tests\Common\Annotations\Foo;
-
-/** @Annotation */
-class Name extends \Doctrine\Common\Annotations\Annotation
-{
-    public $name;
-}
-
-namespace Doctrine\Tests\Common\Annotations\Bar;
-
-/** @Annotation */
-class Name extends \Doctrine\Common\Annotations\Annotation
-{
-    public $name;
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Annotation/TargetTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Annotation/TargetTest.php
deleted file mode 100644
index 7627f76..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Annotation/TargetTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Annotations\Annotation;
-
-use Doctrine\Common\Annotations\Annotation\Target;
-
-/**
- * Tests for {@see \Doctrine\Common\Annotations\Annotation\Target}
- *
- * @covers \Doctrine\Common\Annotations\Annotation\Target
- */
-class TargetTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @group DDC-3006
-     */
-    public function testValidMixedTargets()
-    {
-        $target = new Target(array("value" => array("ALL")));
-        $this->assertEquals(Target::TARGET_ALL, $target->targets);
-
-        $target = new Target(array("value" => array("METHOD", "METHOD")));
-        $this->assertEquals(Target::TARGET_METHOD, $target->targets);
-        $this->assertNotEquals(Target::TARGET_PROPERTY, $target->targets);
-
-        $target = new Target(array("value" => array("PROPERTY", "METHOD")));
-        $this->assertEquals(Target::TARGET_METHOD | Target::TARGET_PROPERTY, $target->targets);
-    }
-}
-
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AnnotationReaderTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AnnotationReaderTest.php
deleted file mode 100644
index d6dd056..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AnnotationReaderTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-
-class AnnotationReaderTest extends AbstractReaderTest
-{
-    protected function getReader()
-    {
-        return new AnnotationReader();
-    }
-
-    public function testMethodAnnotationFromTrait()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('This test requires PHP 5.4 or later.');
-        }
-
-        $reader = $this->getReader();
-        $ref = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassUsesTrait');
-
-        $annotations = $reader->getMethodAnnotations($ref->getMethod('someMethod'));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Bar\Autoload', $annotations[0]);
-
-        $annotations = $reader->getMethodAnnotations($ref->getMethod('traitMethod'));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Autoload', $annotations[0]);
-    }
-
-    public function testMethodAnnotationFromOverwrittenTrait()
-    {
-        if (PHP_VERSION_ID < 50400) {
-           $this->markTestSkipped('This test requires PHP 5.4 or later.');
-        }
-
-        $reader = $this->getReader();
-        $ref = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassOverwritesTrait');
-
-        $annotations = $reader->getMethodAnnotations($ref->getMethod('traitMethod'));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Bar2\Autoload', $annotations[0]);
-    }
-
-    public function testPropertyAnnotationFromTrait()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('This test requires PHP 5.4 or later.');
-        }
-
-        $reader = $this->getReader();
-        $ref = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassUsesTrait');
-
-        $annotations = $reader->getPropertyAnnotations($ref->getProperty('aProperty'));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Bar\Autoload', $annotations[0]);
-
-        $annotations = $reader->getPropertyAnnotations($ref->getProperty('traitProperty'));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Autoload', $annotations[0]);
-    }
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/CachedReaderTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/CachedReaderTest.php
deleted file mode 100644
index 5dd89f7..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/CachedReaderTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-use Doctrine\Common\Annotations\AnnotationReader;
-use Doctrine\Common\Annotations\CachedReader;
-use Doctrine\Common\Cache\ArrayCache;
-
-class CachedReaderTest extends AbstractReaderTest
-{
-    private $cache;
-
-    public function testIgnoresStaleCache()
-    {
-        $file = __DIR__.'/Fixtures/Controller.php';
-        touch($file);
-        $name = 'Doctrine\Tests\Common\Annotations\Fixtures\Controller';
-        $cacheKey = $name.'@[Annot]';
-
-        $cache = $this->getMock('Doctrine\Common\Cache\Cache');
-        $cache
-            ->expects($this->at(0))
-            ->method('fetch')
-            ->with($this->equalTo($cacheKey))
-            ->will($this->returnValue(array()))
-        ;
-        $cache
-            ->expects($this->at(1))
-            ->method('fetch')
-            ->with($this->equalTo('[C]'.$cacheKey))
-            ->will($this->returnValue(time() - 10))
-        ;
-        $cache
-            ->expects($this->at(2))
-            ->method('save')
-            ->with($this->equalTo($cacheKey))
-        ;
-        $cache
-            ->expects($this->at(3))
-            ->method('save')
-            ->with($this->equalTo('[C]'.$cacheKey))
-        ;
-
-        $reader = new CachedReader(new AnnotationReader(), $cache, true);
-        $route = new Route();
-        $route->pattern = '/someprefix';
-        $this->assertEquals(array($route), $reader->getClassAnnotations(new \ReflectionClass($name)));
-    }
-
-    protected function getReader()
-    {
-        $this->cache = new ArrayCache();
-        return new CachedReader(new AnnotationReader(), $this->cache);
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocLexerTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocLexerTest.php
deleted file mode 100644
index 844619d..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocLexerTest.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\DocLexer;
-
-class DocLexerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testMarkerAnnotation()
-    {
-        $lexer = new DocLexer;
-
-        $lexer->setInput("@Name");
-        $this->assertNull($lexer->token);
-        $this->assertNull($lexer->lookahead);
-
-        $this->assertTrue($lexer->moveNext());
-        $this->assertNull($lexer->token);
-        $this->assertEquals('@', $lexer->lookahead['value']);
-
-        $this->assertTrue($lexer->moveNext());
-        $this->assertEquals('@', $lexer->token['value']);
-        $this->assertEquals('Name', $lexer->lookahead['value']);
-
-        $this->assertFalse($lexer->moveNext());
-    }
-
-    public function testScannerTokenizesDocBlockWhitConstants()
-    {
-        $lexer      = new DocLexer();
-        $docblock   = '@AnnotationWithConstants(PHP_EOL, ClassWithConstants::SOME_VALUE, ClassWithConstants::CONSTANT_, ClassWithConstants::CONST_ANT3, \Doctrine\Tests\Common\Annotations\Fixtures\IntefaceWithConstants::SOME_VALUE)';
-
-        $tokens = array (
-            array(
-                'value'     => '@',
-                'position'  => 0,
-                'type'      => DocLexer::T_AT,
-            ),
-            array(
-                'value'     => 'AnnotationWithConstants',
-                'position'  => 1,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => '(',
-                'position'  => 24,
-                'type'      => DocLexer::T_OPEN_PARENTHESIS,
-            ),
-            array(
-                'value'     => 'PHP_EOL',
-                'position'  => 25,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => ',',
-                'position'  => 32,
-                'type'      => DocLexer::T_COMMA,
-            ),
-            array(
-                'value'     => 'ClassWithConstants::SOME_VALUE',
-                'position'  => 34,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => ',',
-                'position'  => 64,
-                'type'      => DocLexer::T_COMMA,
-            ),
-            array(
-                'value'     => 'ClassWithConstants::CONSTANT_',
-                'position'  => 66,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => ',',
-                'position'  => 95,
-                'type'      => DocLexer::T_COMMA,
-            ),
-            array(
-                'value'     => 'ClassWithConstants::CONST_ANT3',
-                'position'  => 97,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => ',',
-                'position'  => 127,
-                'type'      => DocLexer::T_COMMA,
-            ),
-            array(
-                'value'     => '\\Doctrine\\Tests\\Common\\Annotations\\Fixtures\\IntefaceWithConstants::SOME_VALUE',
-                'position'  => 129,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => ')',
-                'position'  => 206,
-                'type'      => DocLexer::T_CLOSE_PARENTHESIS,
-            )
-
-        );
-
-        $lexer->setInput($docblock);
-
-        foreach ($tokens as $expected) {
-            $lexer->moveNext();
-            $lookahead = $lexer->lookahead;
-            $this->assertEquals($expected['value'],     $lookahead['value']);
-            $this->assertEquals($expected['type'],      $lookahead['type']);
-            $this->assertEquals($expected['position'],  $lookahead['position']);
-        }
-
-        $this->assertFalse($lexer->moveNext());
-    }
-
-
-    public function testScannerTokenizesDocBlockWhitInvalidIdentifier()
-    {
-        $lexer      = new DocLexer();
-        $docblock   = '@Foo\3.42';
-
-        $tokens = array (
-            array(
-                'value'     => '@',
-                'position'  => 0,
-                'type'      => DocLexer::T_AT,
-            ),
-            array(
-                'value'     => 'Foo',
-                'position'  => 1,
-                'type'      => DocLexer::T_IDENTIFIER,
-            ),
-            array(
-                'value'     => '\\',
-                'position'  => 4,
-                'type'      => DocLexer::T_NAMESPACE_SEPARATOR,
-            ),
-            array(
-                'value'     => 3.42,
-                'position'  => 5,
-                'type'      => DocLexer::T_FLOAT,
-            )
-        );
-
-        $lexer->setInput($docblock);
-
-        foreach ($tokens as $expected) {
-            $lexer->moveNext();
-            $lookahead = $lexer->lookahead;
-            $this->assertEquals($expected['value'],     $lookahead['value']);
-            $this->assertEquals($expected['type'],      $lookahead['type']);
-            $this->assertEquals($expected['position'],  $lookahead['position']);
-        }
-
-        $this->assertFalse($lexer->moveNext());
-    }
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php
deleted file mode 100644
index 7d670a9..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php
+++ /dev/null
@@ -1,1359 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\DocParser;
-use Doctrine\Common\Annotations\AnnotationRegistry;
-use Doctrine\Common\Annotations\Annotation\Target;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants;
-use Doctrine\Tests\Common\Annotations\Fixtures\ClassWithConstants;
-use Doctrine\Tests\Common\Annotations\Fixtures\IntefaceWithConstants;
-
-class DocParserTest extends \PHPUnit_Framework_TestCase
-{
-    public function testNestedArraysWithNestedAnnotation()
-    {
-        $parser = $this->createTestParser();
-
-        // Nested arrays with nested annotations
-        $result = $parser->parse('@Name(foo={1,2, {"key"=@Name}})');
-        $annot = $result[0];
-
-        $this->assertTrue($annot instanceof Name);
-        $this->assertNull($annot->value);
-        $this->assertEquals(3, count($annot->foo));
-        $this->assertEquals(1, $annot->foo[0]);
-        $this->assertEquals(2, $annot->foo[1]);
-        $this->assertTrue(is_array($annot->foo[2]));
-
-        $nestedArray = $annot->foo[2];
-        $this->assertTrue(isset($nestedArray['key']));
-        $this->assertTrue($nestedArray['key'] instanceof Name);
-    }
-
-    public function testBasicAnnotations()
-    {
-        $parser = $this->createTestParser();
-
-        // Marker annotation
-        $result = $parser->parse("@Name");
-        $annot = $result[0];
-        $this->assertTrue($annot instanceof Name);
-        $this->assertNull($annot->value);
-        $this->assertNull($annot->foo);
-
-        // Associative arrays
-        $result = $parser->parse('@Name(foo={"key1" = "value1"})');
-        $annot = $result[0];
-        $this->assertNull($annot->value);
-        $this->assertTrue(is_array($annot->foo));
-        $this->assertTrue(isset($annot->foo['key1']));
-
-        // Numerical arrays
-        $result = $parser->parse('@Name({2="foo", 4="bar"})');
-        $annot = $result[0];
-        $this->assertTrue(is_array($annot->value));
-        $this->assertEquals('foo', $annot->value[2]);
-        $this->assertEquals('bar', $annot->value[4]);
-        $this->assertFalse(isset($annot->value[0]));
-        $this->assertFalse(isset($annot->value[1]));
-        $this->assertFalse(isset($annot->value[3]));
-
-        // Multiple values
-        $result = $parser->parse('@Name(@Name, @Name)');
-        $annot = $result[0];
-
-        $this->assertTrue($annot instanceof Name);
-        $this->assertTrue(is_array($annot->value));
-        $this->assertTrue($annot->value[0] instanceof Name);
-        $this->assertTrue($annot->value[1] instanceof Name);
-
-        // Multiple types as values
-        $result = $parser->parse('@Name(foo="Bar", @Name, {"key1"="value1", "key2"="value2"})');
-        $annot = $result[0];
-
-        $this->assertTrue($annot instanceof Name);
-        $this->assertTrue(is_array($annot->value));
-        $this->assertTrue($annot->value[0] instanceof Name);
-        $this->assertTrue(is_array($annot->value[1]));
-        $this->assertEquals('value1', $annot->value[1]['key1']);
-        $this->assertEquals('value2', $annot->value[1]['key2']);
-
-        // Complete docblock
-        $docblock = <<<DOCBLOCK
-/**
- * Some nifty class.
- *
- * @author Mr.X
- * @Name(foo="bar")
- */
-DOCBLOCK;
-
-        $result = $parser->parse($docblock);
-        $this->assertEquals(1, count($result));
-        $annot = $result[0];
-        $this->assertTrue($annot instanceof Name);
-        $this->assertEquals("bar", $annot->foo);
-        $this->assertNull($annot->value);
-   }
-
-    public function testDefaultValueAnnotations()
-    {
-        $parser = $this->createTestParser();
-
-        // Array as first value
-        $result = $parser->parse('@Name({"key1"="value1"})');
-        $annot = $result[0];
-
-        $this->assertTrue($annot instanceof Name);
-        $this->assertTrue(is_array($annot->value));
-        $this->assertEquals('value1', $annot->value['key1']);
-
-        // Array as first value and additional values
-        $result = $parser->parse('@Name({"key1"="value1"}, foo="bar")');
-        $annot = $result[0];
-
-        $this->assertTrue($annot instanceof Name);
-        $this->assertTrue(is_array($annot->value));
-        $this->assertEquals('value1', $annot->value['key1']);
-        $this->assertEquals('bar', $annot->foo);
-    }
-
-    public function testNamespacedAnnotations()
-    {
-        $parser = new DocParser;
-        $parser->setIgnoreNotImportedAnnotations(true);
-
-        $docblock = <<<DOCBLOCK
-/**
- * Some nifty class.
- *
- * @package foo
- * @subpackage bar
- * @author Mr.X <mr@x.com>
- * @Doctrine\Tests\Common\Annotations\Name(foo="bar")
- * @ignore
- */
-DOCBLOCK;
-
-        $result = $parser->parse($docblock);
-        $this->assertEquals(1, count($result));
-        $annot = $result[0];
-        $this->assertTrue($annot instanceof Name);
-        $this->assertEquals("bar", $annot->foo);
-    }
-
-    /**
-     * @group debug
-     */
-    public function testTypicalMethodDocBlock()
-    {
-        $parser = $this->createTestParser();
-
-        $docblock = <<<DOCBLOCK
-/**
- * Some nifty method.
- *
- * @since 2.0
- * @Doctrine\Tests\Common\Annotations\Name(foo="bar")
- * @param string \$foo This is foo.
- * @param mixed \$bar This is bar.
- * @return string Foo and bar.
- * @This is irrelevant
- * @Marker
- */
-DOCBLOCK;
-
-        $result = $parser->parse($docblock);
-        $this->assertEquals(2, count($result));
-        $this->assertTrue(isset($result[0]));
-        $this->assertTrue(isset($result[1]));
-        $annot = $result[0];
-        $this->assertTrue($annot instanceof Name);
-        $this->assertEquals("bar", $annot->foo);
-        $marker = $result[1];
-        $this->assertTrue($marker instanceof Marker);
-    }
-
-
-    public function testAnnotationWithoutConstructor()
-    {
-        $parser = $this->createTestParser();
-
-
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor("Some data")
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertNotNull($annot);
-        $this->assertTrue($annot instanceof SomeAnnotationClassNameWithoutConstructor);
-
-        $this->assertNull($annot->name);
-        $this->assertNotNull($annot->data);
-        $this->assertEquals($annot->data, "Some data");
-
-
-
-
-$docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor(name="Some Name", data = "Some data")
- */
-DOCBLOCK;
-
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertNotNull($annot);
-        $this->assertTrue($annot instanceof SomeAnnotationClassNameWithoutConstructor);
-
-        $this->assertEquals($annot->name, "Some Name");
-        $this->assertEquals($annot->data, "Some data");
-
-
-
-
-$docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor(data = "Some data")
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertEquals($annot->data, "Some data");
-        $this->assertNull($annot->name);
-
-
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor(name = "Some name")
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertEquals($annot->name, "Some name");
-        $this->assertNull($annot->data);
-
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor("Some data")
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertEquals($annot->data, "Some data");
-        $this->assertNull($annot->name);
-
-
-
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor("Some data",name = "Some name")
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertEquals($annot->name, "Some name");
-        $this->assertEquals($annot->data, "Some data");
-
-
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationWithConstructorWithoutParams(name = "Some name")
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $annot      = $result[0];
-
-        $this->assertEquals($annot->name, "Some name");
-        $this->assertEquals($annot->data, "Some data");
-
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructorAndProperties()
- */
-DOCBLOCK;
-
-        $result     = $parser->parse($docblock);
-        $this->assertEquals(count($result), 1);
-        $this->assertTrue($result[0] instanceof SomeAnnotationClassNameWithoutConstructorAndProperties);
-    }
-
-    public function testAnnotationTarget()
-    {
-
-        $parser = new DocParser;
-        $parser->setImports(array(
-            '__NAMESPACE__' => 'Doctrine\Tests\Common\Annotations\Fixtures',
-        ));
-        $class  = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithValidAnnotationTarget');
-
-
-        $context    = 'class ' . $class->getName();
-        $docComment = $class->getDocComment();
-
-        $parser->setTarget(Target::TARGET_CLASS);
-        $this->assertNotNull($parser->parse($docComment,$context));
-
-
-        $property   = $class->getProperty('foo');
-        $docComment = $property->getDocComment();
-        $context    = 'property ' . $class->getName() . "::\$" . $property->getName();
-
-        $parser->setTarget(Target::TARGET_PROPERTY);
-        $this->assertNotNull($parser->parse($docComment,$context));
-
-
-
-        $method     = $class->getMethod('someFunction');
-        $docComment = $property->getDocComment();
-        $context    = 'method ' . $class->getName() . '::' . $method->getName() . '()';
-
-        $parser->setTarget(Target::TARGET_METHOD);
-        $this->assertNotNull($parser->parse($docComment,$context));
-
-
-        try {
-            $class      = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtClass');
-            $context    = 'class ' . $class->getName();
-            $docComment = $class->getDocComment();
-
-            $parser->setTarget(Target::TARGET_CLASS);
-            $parser->parse($docComment, $context);
-
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertNotNull($exc->getMessage());
-        }
-
-
-        try {
-
-            $class      = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtMethod');
-            $method     = $class->getMethod('functionName');
-            $docComment = $method->getDocComment();
-            $context    = 'method ' . $class->getName() . '::' . $method->getName() . '()';
-
-            $parser->setTarget(Target::TARGET_METHOD);
-            $parser->parse($docComment, $context);
-
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertNotNull($exc->getMessage());
-        }
-
-
-        try {
-            $class      = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassWithInvalidAnnotationTargetAtProperty');
-            $property   = $class->getProperty('foo');
-            $docComment = $property->getDocComment();
-            $context    = 'property ' . $class->getName() . "::\$" . $property->getName();
-
-            $parser->setTarget(Target::TARGET_PROPERTY);
-            $parser->parse($docComment, $context);
-
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertNotNull($exc->getMessage());
-        }
-
-    }
-
-    public function getAnnotationVarTypeProviderValid()
-    {
-        //({attribute name}, {attribute value})
-         return array(
-            // mixed type
-            array('mixed', '"String Value"'),
-            array('mixed', 'true'),
-            array('mixed', 'false'),
-            array('mixed', '1'),
-            array('mixed', '1.2'),
-            array('mixed', '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll'),
-
-            // boolean type
-            array('boolean', 'true'),
-            array('boolean', 'false'),
-
-            // alias for internal type boolean
-            array('bool', 'true'),
-            array('bool', 'false'),
-
-            // integer type
-            array('integer', '0'),
-            array('integer', '1'),
-            array('integer', '123456789'),
-            array('integer', '9223372036854775807'),
-
-            // alias for internal type double
-            array('float', '0.1'),
-            array('float', '1.2'),
-            array('float', '123.456'),
-
-            // string type
-            array('string', '"String Value"'),
-            array('string', '"true"'),
-            array('string', '"123"'),
-
-              // array type
-            array('array', '{@AnnotationExtendsAnnotationTargetAll}'),
-            array('array', '{@AnnotationExtendsAnnotationTargetAll,@AnnotationExtendsAnnotationTargetAll}'),
-
-            array('arrayOfIntegers', '1'),
-            array('arrayOfIntegers', '{1}'),
-            array('arrayOfIntegers', '{1,2,3,4}'),
-            array('arrayOfAnnotations', '@AnnotationExtendsAnnotationTargetAll'),
-            array('arrayOfAnnotations', '{@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll}'),
-            array('arrayOfAnnotations', '{@AnnotationExtendsAnnotationTargetAll, @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll}'),
-
-            // annotation instance
-            array('annotation', '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll'),
-            array('annotation', '@AnnotationExtendsAnnotationTargetAll'),
-        );
-    }
-
-    public function getAnnotationVarTypeProviderInvalid()
-    {
-         //({attribute name}, {type declared type}, {attribute value} , {given type or class})
-         return array(
-            // boolean type
-            array('boolean','boolean','1','integer'),
-            array('boolean','boolean','1.2','double'),
-            array('boolean','boolean','"str"','string'),
-            array('boolean','boolean','{1,2,3}','array'),
-            array('boolean','boolean','@Name', 'an instance of Doctrine\Tests\Common\Annotations\Name'),
-
-            // alias for internal type boolean
-            array('bool','bool', '1','integer'),
-            array('bool','bool', '1.2','double'),
-            array('bool','bool', '"str"','string'),
-            array('bool','bool', '{"str"}','array'),
-
-            // integer type
-            array('integer','integer', 'true','boolean'),
-            array('integer','integer', 'false','boolean'),
-            array('integer','integer', '1.2','double'),
-            array('integer','integer', '"str"','string'),
-            array('integer','integer', '{"str"}','array'),
-            array('integer','integer', '{1,2,3,4}','array'),
-
-            // alias for internal type double
-            array('float','float', 'true','boolean'),
-            array('float','float', 'false','boolean'),
-            array('float','float', '123','integer'),
-            array('float','float', '"str"','string'),
-            array('float','float', '{"str"}','array'),
-            array('float','float', '{12.34}','array'),
-            array('float','float', '{1,2,3}','array'),
-
-            // string type
-            array('string','string', 'true','boolean'),
-            array('string','string', 'false','boolean'),
-            array('string','string', '12','integer'),
-            array('string','string', '1.2','double'),
-            array('string','string', '{"str"}','array'),
-            array('string','string', '{1,2,3,4}','array'),
-
-             // annotation instance
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', 'true','boolean'),
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', 'false','boolean'),
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '12','integer'),
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '1.2','double'),
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '{"str"}','array'),
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '{1,2,3,4}','array'),
-            array('annotation','Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '@Name','an instance of Doctrine\Tests\Common\Annotations\Name'),
-        );
-    }
-
-    public function getAnnotationVarTypeArrayProviderInvalid()
-    {
-         //({attribute name}, {type declared type}, {attribute value} , {given type or class})
-         return array(
-            array('arrayOfIntegers', 'integer', 'true', 'boolean'),
-            array('arrayOfIntegers', 'integer', 'false', 'boolean'),
-            array('arrayOfIntegers', 'integer', '{true,true}', 'boolean'),
-            array('arrayOfIntegers', 'integer', '{1,true}', 'boolean'),
-            array('arrayOfIntegers', 'integer', '{1,2,1.2}', 'double'),
-            array('arrayOfIntegers', 'integer', '{1,2,"str"}', 'string'),
-
-            array('arrayOfStrings', 'string', 'true', 'boolean'),
-            array('arrayOfStrings', 'string', 'false', 'boolean'),
-            array('arrayOfStrings', 'string', '{true,true}', 'boolean'),
-            array('arrayOfStrings', 'string', '{"foo",true}', 'boolean'),
-            array('arrayOfStrings', 'string', '{"foo","bar",1.2}', 'double'),
-            array('arrayOfStrings', 'string', '1', 'integer'),
-
-            array('arrayOfAnnotations', 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', 'true', 'boolean'),
-            array('arrayOfAnnotations', 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', 'false', 'boolean'),
-            array('arrayOfAnnotations', 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '{@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll,true}', 'boolean'),
-            array('arrayOfAnnotations', 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '{@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll,true}', 'boolean'),
-            array('arrayOfAnnotations', 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '{@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll,1.2}', 'double'),
-            array('arrayOfAnnotations', 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll', '{@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll,@AnnotationExtendsAnnotationTargetAll,"str"}', 'string'),
-        );
-    }
-
-    /**
-     * @dataProvider getAnnotationVarTypeProviderValid
-     */
-    public function testAnnotationWithVarType($attribute, $value)
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::$invalidProperty.';
-        $docblock   = sprintf('@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType(%s = %s)',$attribute, $value);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-        $result = $parser->parse($docblock, $context);
-
-        $this->assertTrue(sizeof($result) === 1);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType', $result[0]);
-        $this->assertNotNull($result[0]->$attribute);
-    }
-
-    /**
-     * @dataProvider getAnnotationVarTypeProviderInvalid
-     */
-    public function testAnnotationWithVarTypeError($attribute,$type,$value,$given)
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $docblock   = sprintf('@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType(%s = %s)',$attribute, $value);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-        try {
-            $parser->parse($docblock, $context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains("[Type Error] Attribute \"$attribute\" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType declared on property SomeClassName::invalidProperty. expects a(n) $type, but got $given.", $exc->getMessage());
-        }
-    }
-
-
-    /**
-     * @dataProvider getAnnotationVarTypeArrayProviderInvalid
-     */
-    public function testAnnotationWithVarTypeArrayError($attribute,$type,$value,$given)
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $docblock   = sprintf('@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType(%s = %s)',$attribute, $value);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-        try {
-            $parser->parse($docblock, $context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains("[Type Error] Attribute \"$attribute\" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType declared on property SomeClassName::invalidProperty. expects either a(n) $type, or an array of {$type}s, but got $given.", $exc->getMessage());
-        }
-    }
-
-    /**
-     * @dataProvider getAnnotationVarTypeProviderValid
-     */
-    public function testAnnotationWithAttributes($attribute, $value)
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::$invalidProperty.';
-        $docblock   = sprintf('@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithAttributes(%s = %s)',$attribute, $value);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-        $result = $parser->parse($docblock, $context);
-
-        $this->assertTrue(sizeof($result) === 1);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithAttributes', $result[0]);
-        $getter = "get".ucfirst($attribute);
-        $this->assertNotNull($result[0]->$getter());
-    }
-
-   /**
-     * @dataProvider getAnnotationVarTypeProviderInvalid
-     */
-    public function testAnnotationWithAttributesError($attribute,$type,$value,$given)
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $docblock   = sprintf('@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithAttributes(%s = %s)',$attribute, $value);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-        try {
-            $parser->parse($docblock, $context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains("[Type Error] Attribute \"$attribute\" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithAttributes declared on property SomeClassName::invalidProperty. expects a(n) $type, but got $given.", $exc->getMessage());
-        }
-    }
-
-
-   /**
-     * @dataProvider getAnnotationVarTypeArrayProviderInvalid
-     */
-    public function testAnnotationWithAttributesWithVarTypeArrayError($attribute,$type,$value,$given)
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $docblock   = sprintf('@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithAttributes(%s = %s)',$attribute, $value);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-        try {
-            $parser->parse($docblock, $context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains("[Type Error] Attribute \"$attribute\" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithAttributes declared on property SomeClassName::invalidProperty. expects either a(n) $type, or an array of {$type}s, but got $given.", $exc->getMessage());
-        }
-    }
-
-    public function testAnnotationWithRequiredAttributes()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributes("Some Value", annot = @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation)';
-        $result     = $parser->parse($docblock);
-
-        $this->assertTrue(sizeof($result) === 1);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributes', $result[0]);
-        $this->assertEquals("Some Value",$result[0]->getValue());
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation', $result[0]->getAnnot());
-
-
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributes("Some Value")';
-        try {
-            $result = $parser->parse($docblock,$context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains('Attribute "annot" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributes declared on property SomeClassName::invalidProperty. expects a(n) Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation. This value should not be null.', $exc->getMessage());
-        }
-
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributes(annot = @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation)';
-        try {
-            $result = $parser->parse($docblock,$context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains('Attribute "value" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributes declared on property SomeClassName::invalidProperty. expects a(n) string. This value should not be null.', $exc->getMessage());
-        }
-
-    }
-
-    public function testAnnotationWithRequiredAttributesWithoutContructor()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $parser->setTarget(Target::TARGET_PROPERTY);
-
-
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributesWithoutContructor("Some Value", annot = @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation)';
-        $result     = $parser->parse($docblock);
-
-        $this->assertTrue(sizeof($result) === 1);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributesWithoutContructor', $result[0]);
-        $this->assertEquals("Some Value", $result[0]->value);
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation', $result[0]->annot);
-
-
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributesWithoutContructor("Some Value")';
-        try {
-            $result = $parser->parse($docblock,$context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains('Attribute "annot" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributesWithoutContructor declared on property SomeClassName::invalidProperty. expects a(n) Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation. This value should not be null.', $exc->getMessage());
-        }
-
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributesWithoutContructor(annot = @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation)';
-        try {
-            $result = $parser->parse($docblock,$context);
-            $this->fail();
-        } catch (\Doctrine\Common\Annotations\AnnotationException $exc) {
-            $this->assertContains('Attribute "value" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithRequiredAttributesWithoutContructor declared on property SomeClassName::invalidProperty. expects a(n) string. This value should not be null.', $exc->getMessage());
-        }
-
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Attribute "value" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum declared on property SomeClassName::invalidProperty. accept only [ONE, TWO, THREE], but got FOUR.
-     */
-    public function testAnnotationEnumeratorException()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum("FOUR")';
-
-        $parser->setIgnoreNotImportedAnnotations(false);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-        $parser->parse($docblock, $context);
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Attribute "value" of @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnumLiteral declared on property SomeClassName::invalidProperty. accept only [AnnotationEnumLiteral::ONE, AnnotationEnumLiteral::TWO, AnnotationEnumLiteral::THREE], but got 4.
-     */
-    public function testAnnotationEnumeratorLiteralException()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'property SomeClassName::invalidProperty.';
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnumLiteral(4)';
-
-        $parser->setIgnoreNotImportedAnnotations(false);
-        $parser->setTarget(Target::TARGET_PROPERTY);
-        $parser->parse($docblock, $context);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage @Enum supports only scalar values "array" given.
-     */
-    public function testAnnotationEnumInvalidTypeDeclarationException()
-    {
-        $parser     = $this->createTestParser();
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnumInvalid("foo")';
-
-        $parser->setIgnoreNotImportedAnnotations(false);
-        $parser->parse($docblock);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Undefined enumerator value "3" for literal "AnnotationEnumLiteral::THREE".
-     */
-    public function testAnnotationEnumInvalidLiteralDeclarationException()
-    {
-        $parser     = $this->createTestParser();
-        $docblock   = '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnumLiteralInvalid("foo")';
-
-        $parser->setIgnoreNotImportedAnnotations(false);
-        $parser->parse($docblock);
-    }
-
-    public function getConstantsProvider()
-    {
-        $provider[] = array(
-            '@AnnotationWithConstants(PHP_EOL)',
-            PHP_EOL
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(AnnotationWithConstants::INTEGER)',
-            AnnotationWithConstants::INTEGER
-        );
-        $provider[] = array(
-            '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants(AnnotationWithConstants::STRING)',
-            AnnotationWithConstants::STRING
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants::FLOAT)',
-            AnnotationWithConstants::FLOAT
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(ClassWithConstants::SOME_VALUE)',
-            ClassWithConstants::SOME_VALUE
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(ClassWithConstants::OTHER_KEY_)',
-            ClassWithConstants::OTHER_KEY_
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(ClassWithConstants::OTHER_KEY_2)',
-            ClassWithConstants::OTHER_KEY_2
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(Doctrine\Tests\Common\Annotations\Fixtures\ClassWithConstants::SOME_VALUE)',
-            ClassWithConstants::SOME_VALUE
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(IntefaceWithConstants::SOME_VALUE)',
-            IntefaceWithConstants::SOME_VALUE
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(\Doctrine\Tests\Common\Annotations\Fixtures\IntefaceWithConstants::SOME_VALUE)',
-            IntefaceWithConstants::SOME_VALUE
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants({AnnotationWithConstants::STRING, AnnotationWithConstants::INTEGER, AnnotationWithConstants::FLOAT})',
-            array(AnnotationWithConstants::STRING, AnnotationWithConstants::INTEGER, AnnotationWithConstants::FLOAT)
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants({
-                AnnotationWithConstants::STRING = AnnotationWithConstants::INTEGER
-             })',
-            array(AnnotationWithConstants::STRING => AnnotationWithConstants::INTEGER)
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants({
-                Doctrine\Tests\Common\Annotations\Fixtures\IntefaceWithConstants::SOME_KEY = AnnotationWithConstants::INTEGER
-             })',
-            array(IntefaceWithConstants::SOME_KEY => AnnotationWithConstants::INTEGER)
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants({
-                \Doctrine\Tests\Common\Annotations\Fixtures\IntefaceWithConstants::SOME_KEY = AnnotationWithConstants::INTEGER
-             })',
-            array(IntefaceWithConstants::SOME_KEY => AnnotationWithConstants::INTEGER)
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants({
-                AnnotationWithConstants::STRING = AnnotationWithConstants::INTEGER,
-                ClassWithConstants::SOME_KEY = ClassWithConstants::SOME_VALUE,
-                Doctrine\Tests\Common\Annotations\Fixtures\ClassWithConstants::SOME_KEY = IntefaceWithConstants::SOME_VALUE
-             })',
-            array(
-                AnnotationWithConstants::STRING => AnnotationWithConstants::INTEGER,
-                ClassWithConstants::SOME_KEY    => ClassWithConstants::SOME_VALUE,
-                ClassWithConstants::SOME_KEY    => IntefaceWithConstants::SOME_VALUE
-            )
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(AnnotationWithConstants::class)',
-            'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants'
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants({AnnotationWithConstants::class = AnnotationWithConstants::class})',
-            array('Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants' => 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants')
-        );
-        $provider[] = array(
-            '@AnnotationWithConstants(Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants::class)',
-            'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants'
-        );
-        $provider[] = array(
-            '@Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants(Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants::class)',
-            'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants'
-        );
-        return $provider;
-    }
-
-    /**
-     * @dataProvider getConstantsProvider
-     */
-    public function testSupportClassConstants($docblock, $expected)
-    {
-        $parser = $this->createTestParser();
-        $parser->setImports(array(
-            'classwithconstants'        => 'Doctrine\Tests\Common\Annotations\Fixtures\ClassWithConstants',
-            'intefacewithconstants'     => 'Doctrine\Tests\Common\Annotations\Fixtures\IntefaceWithConstants',
-            'annotationwithconstants'   => 'Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants'
-        ));
-
-        $result = $parser->parse($docblock);
-        $this->assertInstanceOf('\Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithConstants', $annotation = $result[0]);
-        $this->assertEquals($expected, $annotation->value);
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The annotation @SomeAnnotationClassNameWithoutConstructorAndProperties declared on  does not accept any values, but got {"value":"Foo"}.
-     */
-    public function testWithoutConstructorWhenIsNotDefaultValue()
-    {
-        $parser     = $this->createTestParser();
-        $docblock   = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructorAndProperties("Foo")
- */
-DOCBLOCK;
-
-
-        $parser->setTarget(Target::TARGET_CLASS);
-        $parser->parse($docblock);
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage The annotation @SomeAnnotationClassNameWithoutConstructorAndProperties declared on  does not accept any values, but got {"value":"Foo"}.
-     */
-    public function testWithoutConstructorWhenHasNoProperties()
-    {
-        $parser     = $this->createTestParser();
-        $docblock   = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructorAndProperties(value = "Foo")
- */
-DOCBLOCK;
-
-        $parser->setTarget(Target::TARGET_CLASS);
-        $parser->parse($docblock);
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected namespace separator or identifier, got ')' at position 24 in class @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithTargetSyntaxError.
-     */
-    public function testAnnotationTargetSyntaxError()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'class ' . 'SomeClassName';
-        $docblock   = <<<DOCBLOCK
-/**
- * @Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithTargetSyntaxError()
- */
-DOCBLOCK;
-
-        $parser->setTarget(Target::TARGET_CLASS);
-        $parser->parse($docblock,$context);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Invalid Target "Foo". Available targets: [ALL, CLASS, METHOD, PROPERTY, ANNOTATION]
-     */
-    public function testAnnotationWithInvalidTargetDeclarationError()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'class ' . 'SomeClassName';
-        $docblock   = <<<DOCBLOCK
-/**
- * @AnnotationWithInvalidTargetDeclaration()
- */
-DOCBLOCK;
-
-        $parser->setTarget(Target::TARGET_CLASS);
-        $parser->parse($docblock,$context);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage @Target expects either a string value, or an array of strings, "NULL" given.
-     */
-    public function testAnnotationWithTargetEmptyError()
-    {
-        $parser     = $this->createTestParser();
-        $context    = 'class ' . 'SomeClassName';
-        $docblock   = <<<DOCBLOCK
-/**
- * @AnnotationWithTargetEmpty()
- */
-DOCBLOCK;
-
-        $parser->setTarget(Target::TARGET_CLASS);
-        $parser->parse($docblock,$context);
-    }
-
-    /**
-     * @group DDC-575
-     */
-    public function testRegressionDDC575()
-    {
-        $parser = $this->createTestParser();
-
-        $docblock = <<<DOCBLOCK
-/**
- * @Name
- *
- * Will trigger error.
- */
-DOCBLOCK;
-
-        $result = $parser->parse($docblock);
-
-        $this->assertInstanceOf("Doctrine\Tests\Common\Annotations\Name", $result[0]);
-
-        $docblock = <<<DOCBLOCK
-/**
- * @Name
- * @Marker
- *
- * Will trigger error.
- */
-DOCBLOCK;
-
-        $result = $parser->parse($docblock);
-
-        $this->assertInstanceOf("Doctrine\Tests\Common\Annotations\Name", $result[0]);
-    }
-
-    /**
-     * @group DDC-77
-     */
-    public function testAnnotationWithoutClassIsIgnoredWithoutWarning()
-    {
-        $parser = new DocParser();
-        $parser->setIgnoreNotImportedAnnotations(true);
-        $result = $parser->parse("@param");
-
-        $this->assertEquals(0, count($result));
-    }
-
-    /**
-     * @group DCOM-168
-     */
-    public function testNotAnAnnotationClassIsIgnoredWithoutWarning()
-    {
-        $parser = new DocParser();
-        $parser->setIgnoreNotImportedAnnotations(true);
-        $parser->setIgnoredAnnotationNames(array('PHPUnit_Framework_TestCase' => true));
-        $result = $parser->parse('@PHPUnit_Framework_TestCase');
-
-        $this->assertEquals(0, count($result));
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected PlainValue, got ''' at position 10.
-     */
-    public function testAnnotationDontAcceptSingleQuotes()
-    {
-        $parser = $this->createTestParser();
-        $parser->parse("@Name(foo='bar')");
-    }
-
-    /**
-     * @group DCOM-41
-     */
-    public function testAnnotationDoesntThrowExceptionWhenAtSignIsNotFollowedByIdentifier()
-    {
-        $parser = new DocParser();
-        $result = $parser->parse("'@'");
-
-        $this->assertEquals(0, count($result));
-    }
-
-    /**
-     * @group DCOM-41
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     */
-    public function testAnnotationThrowsExceptionWhenAtSignIsNotFollowedByIdentifierInNestedAnnotation()
-    {
-        $parser = new DocParser();
-        $parser->parse("@Doctrine\Tests\Common\Annotations\Name(@')");
-    }
-
-    /**
-     * @group DCOM-56
-     */
-    public function testAutoloadAnnotation()
-    {
-        $this->assertFalse(class_exists('Doctrine\Tests\Common\Annotations\Fixture\Annotation\Autoload', false), 'Pre-condition: Doctrine\Tests\Common\Annotations\Fixture\Annotation\Autoload not allowed to be loaded.');
-
-        $parser = new DocParser();
-
-        AnnotationRegistry::registerAutoloadNamespace('Doctrine\Tests\Common\Annotations\Fixtures\Annotation', __DIR__ . '/../../../../');
-
-        $parser->setImports(array(
-            'autoload' => 'Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Autoload',
-        ));
-        $annotations = $parser->parse('@Autoload');
-
-        $this->assertEquals(1, count($annotations));
-        $this->assertInstanceOf('Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Autoload', $annotations[0]);
-    }
-
-    public function createTestParser()
-    {
-        $parser = new DocParser();
-        $parser->setIgnoreNotImportedAnnotations(true);
-        $parser->setImports(array(
-            'name' => 'Doctrine\Tests\Common\Annotations\Name',
-            '__NAMESPACE__' => 'Doctrine\Tests\Common\Annotations',
-        ));
-
-        return $parser;
-    }
-
-    /**
-     * @group DDC-78
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage Expected PlainValue, got ''' at position 10 in class \Doctrine\Tests\Common\Annotations\Name
-     */
-    public function testSyntaxErrorWithContextDescription()
-    {
-        $parser = $this->createTestParser();
-        $parser->parse("@Name(foo='bar')", "class \Doctrine\Tests\Common\Annotations\Name");
-    }
-
-    /**
-     * @group DDC-183
-     */
-    public function testSyntaxErrorWithUnknownCharacters()
-    {
-        $docblock = <<<DOCBLOCK
-/**
- * @test at.
- */
-class A {
-}
-DOCBLOCK;
-
-        //$lexer = new \Doctrine\Common\Annotations\Lexer();
-        //$lexer->setInput(trim($docblock, '/ *'));
-        //var_dump($lexer);
-
-        try {
-            $parser = $this->createTestParser();
-            $parser->parse($docblock);
-        } catch (\Exception $e) {
-            $this->fail($e->getMessage());
-        }
-    }
-
-    /**
-     * @group DCOM-14
-     */
-    public function testIgnorePHPDocThrowTag()
-    {
-        $docblock = <<<DOCBLOCK
-/**
- * @throws \RuntimeException
- */
-class A {
-}
-DOCBLOCK;
-
-        try {
-            $parser = $this->createTestParser();
-            $parser->parse($docblock);
-        } catch (\Exception $e) {
-            $this->fail($e->getMessage());
-        }
-    }
-
-    /**
-     * @group DCOM-38
-     */
-    public function testCastInt()
-    {
-        $parser = $this->createTestParser();
-
-        $result = $parser->parse("@Name(foo=1234)");
-        $annot = $result[0];
-        $this->assertInternalType('int', $annot->foo);
-    }
-
-    /**
-     * @group DCOM-38
-     */
-    public function testCastNegativeInt()
-    {
-        $parser = $this->createTestParser();
-
-        $result = $parser->parse("@Name(foo=-1234)");
-        $annot = $result[0];
-        $this->assertInternalType('int', $annot->foo);
-    }
-
-    /**
-     * @group DCOM-38
-     */
-    public function testCastFloat()
-    {
-        $parser = $this->createTestParser();
-
-        $result = $parser->parse("@Name(foo=1234.345)");
-        $annot = $result[0];
-        $this->assertInternalType('float', $annot->foo);
-    }
-
-    /**
-     * @group DCOM-38
-     */
-    public function testCastNegativeFloat()
-    {
-        $parser = $this->createTestParser();
-
-        $result = $parser->parse("@Name(foo=-1234.345)");
-        $annot = $result[0];
-        $this->assertInternalType('float', $annot->foo);
-
-        $result = $parser->parse("@Marker(-1234.345)");
-        $annot = $result[0];
-        $this->assertInternalType('float', $annot->value);
-    }
-
-    public function testReservedKeywordsInAnnotations()
-    {
-        $parser = $this->createTestParser();
-
-        $result = $parser->parse('@Doctrine\Tests\Common\Annotations\True');
-        $this->assertTrue($result[0] instanceof True);
-        $result = $parser->parse('@Doctrine\Tests\Common\Annotations\False');
-        $this->assertTrue($result[0] instanceof False);
-        $result = $parser->parse('@Doctrine\Tests\Common\Annotations\Null');
-        $this->assertTrue($result[0] instanceof Null);
-
-        $result = $parser->parse('@True');
-        $this->assertTrue($result[0] instanceof True);
-        $result = $parser->parse('@False');
-        $this->assertTrue($result[0] instanceof False);
-        $result = $parser->parse('@Null');
-        $this->assertTrue($result[0] instanceof Null);
-    }
-
-     /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Creation Error] The annotation @SomeAnnotationClassNameWithoutConstructor declared on some class does not have a property named "invalidaProperty". Available properties: data, name
-     */
-    public function testSetValuesExeption()
-    {
-        $docblock = <<<DOCBLOCK
-/**
- * @SomeAnnotationClassNameWithoutConstructor(invalidaProperty = "Some val")
- */
-DOCBLOCK;
-
-        $this->createTestParser()->parse($docblock, 'some class');
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Syntax Error] Expected Doctrine\Common\Annotations\DocLexer::T_IDENTIFIER or Doctrine\Common\Annotations\DocLexer::T_TRUE or Doctrine\Common\Annotations\DocLexer::T_FALSE or Doctrine\Common\Annotations\DocLexer::T_NULL, got '3.42' at position 5.
-     */
-    public function testInvalidIdentifierInAnnotation()
-    {
-        $parser = $this->createTestParser();
-        $parser->parse('@Foo\3.42');
-    }
-
-    public function testTrailingCommaIsAllowed()
-    {
-        $parser = $this->createTestParser();
-
-        $annots = $parser->parse('@Name({
-            "Foo",
-            "Bar",
-        })');
-        $this->assertEquals(1, count($annots));
-        $this->assertEquals(array('Foo', 'Bar'), $annots[0]->value);
-    }
-
-    public function testDefaultAnnotationValueIsNotOverwritten()
-    {
-        $parser = $this->createTestParser();
-
-        $annots = $parser->parse('@Doctrine\Tests\Common\Annotations\Fixtures\Annotation\AnnotWithDefaultValue');
-        $this->assertEquals(1, count($annots));
-        $this->assertEquals('bar', $annots[0]->foo);
-    }
-
-    public function testArrayWithColon()
-    {
-        $parser = $this->createTestParser();
-
-        $annots = $parser->parse('@Name({"foo": "bar"})');
-        $this->assertEquals(1, count($annots));
-        $this->assertEquals(array('foo' => 'bar'), $annots[0]->value);
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] Couldn't find constant foo.
-     */
-    public function testInvalidContantName()
-    {
-        $parser = $this->createTestParser();
-        $parser->parse('@Name(foo: "bar")');
-    }
-
-    /**
-     * Tests parsing empty arrays.
-     */
-    public function testEmptyArray()
-    {
-        $parser = $this->createTestParser();
-
-        $annots = $parser->parse('@Name({"foo": {}})');
-        $this->assertEquals(1, count($annots));
-        $this->assertEquals(array('foo' => array()), $annots[0]->value);
-    }
-
-    public function testKeyHasNumber()
-    {
-        $parser = $this->createTestParser();
-        $annots = $parser->parse('@SettingsAnnotation(foo="test", bar2="test")');
-
-        $this->assertEquals(1, count($annots));
-        $this->assertEquals(array('foo' => 'test', 'bar2' => 'test'), $annots[0]->settings);
-    }
-}
-
-/** @Annotation */
-class SettingsAnnotation
-{
-    public $settings;
-
-    public function __construct($settings)
-    {
-        $this->settings = $settings;
-    }
-}
-
-/** @Annotation */
-class SomeAnnotationClassNameWithoutConstructor
-{
-    public $data;
-    public $name;
-}
-
-/** @Annotation */
-class SomeAnnotationWithConstructorWithoutParams
-{
-    function __construct()
-    {
-        $this->data = "Some data";
-    }
-    public $data;
-    public $name;
-}
-
-/** @Annotation */
-class SomeAnnotationClassNameWithoutConstructorAndProperties{}
-
-/**
- * @Annotation
- * @Target("Foo")
- */
-class AnnotationWithInvalidTargetDeclaration{}
-
-/**
- * @Annotation
- * @Target
- */
-class AnnotationWithTargetEmpty{}
-
-/** @Annotation */
-class AnnotationExtendsAnnotationTargetAll extends \Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll
-{
-}
-
-/** @Annotation */
-class Name extends \Doctrine\Common\Annotations\Annotation {
-    public $foo;
-}
-
-/** @Annotation */
-class Marker {
-    public $value;
-}
-
-/** @Annotation */
-class True {}
-
-/** @Annotation */
-class False {}
-
-/** @Annotation */
-class Null {}
-
-namespace Doctrine\Tests\Common\Annotations\FooBar;
-
-/** @Annotation */
-class Name extends \Doctrine\Common\Annotations\Annotation {
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DummyClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DummyClass.php
deleted file mode 100644
index 17223f6..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DummyClass.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Tests\Common\Annotations\DummyAnnotation;
-use Doctrine\Tests\Common\Annotations\Name;
-use Doctrine\Tests\Common\Annotations\DummyJoinTable;
-use Doctrine\Tests\Common\Annotations\DummyJoinColumn;
-
-/**
- * A description of this class.
- *
- * Let's see if the parser recognizes that this @ is not really referring to an
- * annotation. Also make sure that @var \ is not concated to "@var\is".
- *
- * @author robo
- * @since 2.0
- * @DummyAnnotation(dummyValue="hello")
- */
-class DummyClass
-{
-    /**
-     * A nice property.
-     *
-     * @var mixed
-     * @DummyAnnotation(dummyValue="fieldHello")
-     */
-    private $field1;
-
-    /**
-     * @DummyJoinTable(name="join_table",
-     *      joinColumns={@DummyJoinColumn(name="col1", referencedColumnName="col2")},
-     *      inverseJoinColumns={
-     *          @DummyJoinColumn(name="col3", referencedColumnName="col4")
-     *      })
-     */
-    private $field2;
-
-    /**
-     * Gets the value of field1.
-     *
-     * @return mixed
-     * @DummyAnnotation({1,2,"three"})
-     */
-    public function getField1()
-    {
-    }
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/FileCacheReaderTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/FileCacheReaderTest.php
deleted file mode 100644
index 325de88..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/FileCacheReaderTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Doctrine\Common\Annotations\FileCacheReader;
-
-class FileCacheReaderTest extends AbstractReaderTest
-{
-    private $cacheDir;
-
-    protected function getReader()
-    {
-        $this->cacheDir = sys_get_temp_dir() . "/annotations_". uniqid();
-        @mkdir($this->cacheDir);
-        return new FileCacheReader(new AnnotationReader(), $this->cacheDir);
-    }
-
-    public function tearDown()
-    {
-        foreach (glob($this->cacheDir.'/*.php') AS $file) {
-            unlink($file);
-        }
-        rmdir($this->cacheDir);
-    }
-
-    /**
-     * @group DCOM-81
-     */
-    public function testAttemptToCreateAnnotationCacheDir()
-    {
-        $this->cacheDir = sys_get_temp_dir() . "/not_existed_dir_". uniqid();
-
-        $this->assertFalse(is_dir($this->cacheDir));
-
-        new FileCacheReader(new AnnotationReader(), $this->cacheDir);
-
-        $this->assertTrue(is_dir($this->cacheDir));
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/AnnotWithDefaultValue.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/AnnotWithDefaultValue.php
deleted file mode 100644
index 44108e1..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/AnnotWithDefaultValue.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Annotation;
-
-/** @Annotation */
-class AnnotWithDefaultValue
-{
-    /** @var string */
-    public $foo = 'bar';
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Autoload.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Autoload.php
deleted file mode 100644
index e2a4cad..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Autoload.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Annotation;
-
-/**
- * @Annotation
- */
-class Autoload
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Route.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Route.php
deleted file mode 100644
index eb1bdee..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Route.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Annotation;
-
-/** @Annotation */
-class Route
-{
-    /** @var string @Required */
-    public $pattern;
-    public $name;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Secure.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Secure.php
deleted file mode 100644
index 332544f..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Secure.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Annotation;
-
-/** @Annotation */
-class Secure
-{
-    private $roles;
-
-    public function __construct(array $values)
-    {
-        if (is_string($values['value'])) {
-            $values['value'] = array($values['value']);
-        }
-
-        $this->roles = $values['value'];
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Template.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Template.php
deleted file mode 100644
index b507e60..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Template.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Annotation;
-
-/** @Annotation */
-class Template
-{
-    private $name;
-
-    public function __construct(array $values)
-    {
-        $this->name = isset($values['value']) ? $values['value'] : null;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Version.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Version.php
deleted file mode 100644
index 09ef031..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Version.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Annotation;
-
-/**
- * @Annotation
- * @Target("PROPERTY")
- */
-final class Version
-{
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnum.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnum.php
deleted file mode 100644
index cc9862a..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnum.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationEnum
-{
-    const ONE   = 'ONE';
-    const TWO   = 'TWO';
-    const THREE = 'THREE';
-
-    /**
-     * @var mixed
-     *
-     * @Enum({"ONE","TWO","THREE"})
-     */
-    public $value;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumInvalid.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumInvalid.php
deleted file mode 100644
index 77af8fb..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumInvalid.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationEnumInvalid
-{
-    /**
-     * @var mixed
-     *
-     * @Enum({1, 2, "foo", "bar", {"foo":"bar"}})
-     */
-    public $value;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteral.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteral.php
deleted file mode 100644
index 9a8f555..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteral.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnumLiteral as SelfEnum;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationEnumLiteral
-{
-    const ONE   = 1;
-    const TWO   = 2;
-    const THREE = 3;
-
-    /**
-     * @var mixed
-     *
-     * @Enum(
-     *      value = {
-     *          1,
-     *          2,
-     *          3,
-     *      },
-     *      literal = {
-     *          1 : "AnnotationEnumLiteral::ONE",
-     *          2 : "AnnotationEnumLiteral::TWO",
-     *          3 : "AnnotationEnumLiteral::THREE",
-     *      }
-     * )
-     */
-    public $value;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteralInvalid.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteralInvalid.php
deleted file mode 100644
index 1a07e4b..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteralInvalid.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationEnumLiteralInvalid
-{
-    const ONE   = 1;
-    const TWO   = 2;
-    const THREE = 3;
-
-    /**
-     * @var mixed
-     *
-     * @Enum(
-     *      value = {
-     *          1,
-     *          2
-     *      },
-     *      literal = {
-     *          1 : "AnnotationEnumLiteral::ONE",
-     *          2 : "AnnotationEnumLiteral::TWO",
-     *          3 : "AnnotationEnumLiteral::THREE"
-     *      }
-     * )
-     */
-    public $value;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAll.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAll.php
deleted file mode 100644
index f1c7746..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAll.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-class AnnotationTargetAll
-{
-    public $data;
-    public $name;
-    public $target;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAnnotation.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAnnotation.php
deleted file mode 100644
index 9ee1b40..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAnnotation.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target({ "ANNOTATION" })
- */
-final class AnnotationTargetAnnotation
-{
-    public $data;
-    public $name;
-    public $target;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetClass.php
deleted file mode 100644
index 5e5d19e..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetClass.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-
-/**
- * @Annotation
- * @Target("CLASS")
- */
-final class AnnotationTargetClass
-{
-    public $data;
-    public $name;
-    public $target;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetMethod.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetMethod.php
deleted file mode 100644
index 2ab066c..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetMethod.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-
-/**
- * @Annotation
- * @Target("METHOD")
- */
-final class AnnotationTargetMethod
-{
-    public $data;
-    public $name;
-    public $target;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetPropertyMethod.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetPropertyMethod.php
deleted file mode 100644
index f714561..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetPropertyMethod.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target({ "METHOD", "PROPERTY" })
- */
-final class AnnotationTargetPropertyMethod
-{
-    public $data;
-    public $name;
-    public $target;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithAttributes.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithAttributes.php
deleted file mode 100644
index e3b5be7..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithAttributes.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- * @Attributes({
-      @Attribute("mixed",                type = "mixed"),
-      @Attribute("boolean",              type = "boolean"),
-      @Attribute("bool",                 type = "bool"),
-      @Attribute("float",                type = "float"),
-      @Attribute("string",               type = "string"),
-      @Attribute("integer",              type = "integer"),
-      @Attribute("array",                type = "array"),
-      @Attribute("arrayOfIntegers",      type = "array<integer>"),
-      @Attribute("arrayOfStrings",       type = "string[]"),
-      @Attribute("annotation",           type = "Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll"),
-      @Attribute("arrayOfAnnotations",   type = "array<Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll>"),
-  })
- */
-final class AnnotationWithAttributes
-{
-
-    public final function __construct(array $data)
-    {
-        foreach ($data as $key => $value) {
-            $this->$key = $value;
-        }
-    }
-
-    private $mixed;
-    private $boolean;
-    private $bool;
-    private $float;
-    private $string;
-    private $integer;
-    private $array;
-    private $annotation;
-    private $arrayOfIntegers;
-    private $arrayOfStrings;
-    private $arrayOfAnnotations;
-
-    /**
-     * @return mixed
-     */
-    public function getMixed()
-    {
-        return $this->mixed;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function getBoolean()
-    {
-        return $this->boolean;
-    }
-
-    /**
-     * @return bool
-     */
-    public function getBool()
-    {
-        return $this->bool;
-    }
-
-    /**
-     * @return float
-     */
-    public function getFloat()
-    {
-        return $this->float;
-    }
-
-    /**
-     * @return string
-     */
-    public function getString()
-    {
-        return $this->string;
-    }
-
-    public function getInteger()
-    {
-        return $this->integer;
-    }
-
-    /**
-     * @return array
-     */
-    public function getArray()
-    {
-        return $this->array;
-    }
-
-    /**
-     * @return Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll
-     */
-    public function getAnnotation()
-    {
-        return $this->annotation;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getArrayOfStrings()
-    {
-        return $this->arrayOfIntegers;
-    }
-
-    /**
-     * @return array<integer>
-     */
-    public function getArrayOfIntegers()
-    {
-        return $this->arrayOfIntegers;
-    }
-
-    /**
-     * @return array<Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll>
-     */
-    public function getArrayOfAnnotations()
-    {
-        return $this->arrayOfAnnotations;
-    }
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithConstants.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithConstants.php
deleted file mode 100644
index 9c94558..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithConstants.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationWithConstants
-{
-
-    const INTEGER = 1;
-    const FLOAT   = 1.2;
-    const STRING  = '1.2.3';
-
-    /**
-     * @var mixed
-     */
-    public $value;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributes.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributes.php
deleted file mode 100644
index 6eb1bc5..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributes.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- * @Attributes({
-      @Attribute("value",   required = true ,   type = "string"),
-      @Attribute("annot",   required = true ,   type = "Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation"),
-   })
- */
-final class AnnotationWithRequiredAttributes
-{
-
-    public final function __construct(array $data)
-    {
-        foreach ($data as $key => $value) {
-            $this->$key = $value;
-        }
-    }
-
-    /**
-     * @var string
-     */
-    private $value;
-
-    /**
-     *
-     * @var Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation
-     */
-    private $annot;
-
-    /**
-     * @return string
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * @return Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation
-     */
-    public function getAnnot()
-    {
-        return $this->annot;
-    }
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributesWithoutContructor.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributesWithoutContructor.php
deleted file mode 100644
index bf458ee..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributesWithoutContructor.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationWithRequiredAttributesWithoutContructor
-{
-
-    /**
-     * @Required
-     * @var string
-     */
-    public $value;
-
-    /**
-     * @Required
-     * @var Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation
-     */
-    public $annot;
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithTargetSyntaxError.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithTargetSyntaxError.php
deleted file mode 100644
index 7638ce8..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithTargetSyntaxError.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target(@)
- */
-final class AnnotationWithTargetSyntaxError
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithVarType.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithVarType.php
deleted file mode 100644
index dc1d6dd..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithVarType.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @Annotation
- * @Target("ALL")
- */
-final class AnnotationWithVarType
-{
-
-    /**
-     * @var mixed
-     */
-    public $mixed;
-
-    /**
-     * @var boolean
-     */
-    public $boolean;
-
-    /**
-     * @var bool
-     */
-    public $bool;
-
-    /**
-     * @var float
-     */
-    public $float;
-
-    /**
-     * @var string
-     */
-    public $string;
-
-    /**
-     * @var integer
-     */
-    public $integer;
-
-    /**
-     * @var array
-     */
-    public $array;
-
-    /**
-     * @var Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll
-     */
-    public $annotation;
-
-    /**
-     * @var array<integer>
-     */
-    public $arrayOfIntegers;
-
-    /**
-     * @var string[]
-     */
-    public $arrayOfStrings;
-
-    /**
-     * @var array<Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll>
-     */
-    public $arrayOfAnnotations;
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Api.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Api.php
deleted file mode 100644
index 534ad14..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Api.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * This class is not an annotation
- * It's a class build to test ClassWithInclude
- */
-class Api
-{
-	
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassDDC1660.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassDDC1660.php
deleted file mode 100644
index 4e652e1..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassDDC1660.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @since 2.0
- * @version $Id: SomeEntityClass.php 509 2012-02-03 09:38:48Z mf $
- */
-class ClassDDC1660
-{
-
-    /**
-     * @var     string
-     * @since   2.0
-     * @version 1
-     */
-    public $foo;
-
-    /**
-     * @param   string
-     * @return  string
-     * @since   2.0
-     * @version 1
-     */
-    public function bar($param)
-    {
-        return null;
-    }
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassNoNamespaceNoComment.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassNoNamespaceNoComment.php
deleted file mode 100644
index ca64c12..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassNoNamespaceNoComment.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetClass;
-
-class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment {
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassOverwritesTrait.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassOverwritesTrait.php
deleted file mode 100644
index 8caa8ac..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassOverwritesTrait.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Bar2\Autoload;
-
-class ClassOverwritesTrait {
-    use TraitWithAnnotatedMethod;
-
-    /**
-     * @Autoload
-     */
-    public function traitMethod()
-    {
-
-    }
-}
-
-
-namespace Doctrine\Tests\Common\Annotations\Bar2;
-
-/** @Annotation */
-class Autoload
-{
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassUsesTrait.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassUsesTrait.php
deleted file mode 100644
index 8797ac2..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassUsesTrait.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Bar\Autoload;
-
-class ClassUsesTrait {
-    use TraitWithAnnotatedMethod;
-
-    /**
-     * @Autoload
-     */
-    public $aProperty;
-
-    /**
-     * @Autoload
-     */
-    public function someMethod()
-    {
-
-    }
-}
-
-
-namespace Doctrine\Tests\Common\Annotations\Bar;
-
-/** @Annotation */
-class Autoload
-{
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationEnum.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationEnum.php
deleted file mode 100644
index 8346f24..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationEnum.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationEnum;
-
-class ClassWithAnnotationEnum
-{
-    /**
-     * @AnnotationEnum(AnnotationEnum::ONE)
-     */
-    public $foo;
-
-    /**
-     * @AnnotationEnum("TWO")
-     */
-    public function bar(){}
-
-
-    /**
-     * @AnnotationEnum("FOUR")
-     */
-    public $invalidProperty;
-
-    /**
-     * @AnnotationEnum(5)
-     */
-    public function invalidMethod(){}
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithTargetSyntaxError.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithTargetSyntaxError.php
deleted file mode 100644
index 6fd3168..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithTargetSyntaxError.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithTargetSyntaxError;
-
-/**
- * @AnnotationWithTargetSyntaxError()
- */
-class ClassWithAnnotationWithTargetSyntaxError
-{
-    /**
-     * @AnnotationWithTargetSyntaxError()
-     */
-    public $foo;
-
-    /**
-     * @AnnotationWithTargetSyntaxError()
-     */
-    public function bar(){}
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithVarType.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithVarType.php
deleted file mode 100644
index ed467db..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithVarType.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationWithVarType;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation;
-
-class ClassWithAnnotationWithVarType
-{
-    /**
-     * @AnnotationWithVarType(string = "String Value")
-     */
-    public $foo;
-
-    /**
-     * @AnnotationWithVarType(annotation = @AnnotationTargetAll)
-     */
-    public function bar(){}
-
-
-    /**
-     * @AnnotationWithVarType(string = 123)
-     */
-    public $invalidProperty;
-
-    /**
-     * @AnnotationWithVarType(annotation = @AnnotationTargetAnnotation)
-     */
-    public function invalidMethod(){}
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAtInDescriptionAndAnnotation.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAtInDescriptionAndAnnotation.php
deleted file mode 100644
index 5acc1b9..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAtInDescriptionAndAnnotation.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetPropertyMethod;
-
-class ClassWithAtInDescriptionAndAnnotation
-{
-    /**
-     * Lala
-     *
-     * {
-     *     "email": "foo@example.com",
-     *     "email2": "123@example.com",
-     *     "email3": "@example.com"
-     * }
-     *
-     * @AnnotationTargetPropertyMethod("Bar")
-     */
-    public $foo;
-
-    /**
-     * Lala
-     *
-     * {
-     *     "email": "foo@example.com",
-     *     "email2": "123@example.com",
-     *     "email3": "@example.com"
-     * }
-     *
-     *@AnnotationTargetPropertyMethod("Bar")
-     */
-    public $bar;
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClassAnnotationOnly.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClassAnnotationOnly.php
deleted file mode 100644
index 5d08b1d..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClassAnnotationOnly.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetClass;
-
-/**
- * @AnnotationTargetClass("Some data")
- */
-class ClassWithClassAnnotationOnly
-{
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClosure.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClosure.php
deleted file mode 100644
index 4629507..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClosure.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation;
-
-/**
- * @AnnotationTargetAll("Foo")
- */
-final class ClassWithClosure
-{
-
-    /**
-     * @AnnotationTargetAll(@AnnotationTargetAnnotation)
-     * @var string
-     */
-    public $value;
-
-    /**
-     * @AnnotationTargetAll(@AnnotationTargetAnnotation)
-     *
-     * @param   \Closure $callback
-     * @return  \Closure
-     */
-    public function methodName(\Closure $callback)
-    {
-        $self = $this;
-        return function() use ($self, $callback) {
-            return $callback;
-        };
-    }
-
-    /**
-     * @param   integer $year
-     * @param   integer $month
-     * @param   integer $day
-     * @return  \Doctrine\Common\Collections\ArrayCollection
-     */
-    public function getEventsForDate($year, $month, $day){
-        $extractEvents  = null; // check if date of item is inside day given
-        $extractEvents  = $this->events->filter(function ($item) use ($year, $month, $day) {
-            $leftDate   = new \DateTime($year.'-'.$month.'-'.$day.' 00:00');
-            $rigthDate  = new \DateTime($year.'-'.$month.'-'.$day.' +1 day 00:00');
-            return ( ( $leftDate <= $item->getDateStart() ) && ( $item->getDateStart() < $rigthDate ) );
-
-            }
-        );
-        return $extractEvents;
-    }
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithConstants.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithConstants.php
deleted file mode 100644
index 719d68f..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithConstants.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-class ClassWithConstants
-{
-    const SOME_VALUE  = 'ClassWithConstants.SOME_VALUE';
-    const SOME_KEY    = 'ClassWithConstants.SOME_KEY';
-    const OTHER_KEY_  = 'ClassWithConstants.OTHER_KEY_';
-    const OTHER_KEY_2 = 'ClassWithConstants.OTHER_KEY_2';
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithFullyQualifiedUseStatements.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithFullyQualifiedUseStatements.php
deleted file mode 100644
index ddb207b..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithFullyQualifiedUseStatements.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use
-    \Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure,
-    \Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route
-;
-use \Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-
-class ClassWithFullyQualifiedUseStatements {}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithIgnoreAnnotation.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithIgnoreAnnotation.php
deleted file mode 100644
index a763d2e..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithIgnoreAnnotation.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @ignoreAnnotation("IgnoreAnnotationClass")
- */
-class ClassWithIgnoreAnnotation
-{
-    /**
-     * @IgnoreAnnotationClass
-     */
-    public $foo;
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtClass.php
deleted file mode 100644
index f8d961c..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtClass.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetPropertyMethod;
-
-/**
- * @AnnotationTargetPropertyMethod("Some data")
- */
-class ClassWithInvalidAnnotationTargetAtClass
-{
-
-    /**
-     * @AnnotationTargetPropertyMethod("Bar")
-     */
-    public $foo;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtMethod.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtMethod.php
deleted file mode 100644
index ea63480..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtMethod.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetClass;
-
-/**
- * @AnnotationTargetClass("Some data")
- */
-class ClassWithInvalidAnnotationTargetAtMethod
-{
-
-    /**
-     * @AnnotationTargetClass("functionName")
-     */
-    public function functionName($param)
-    {
-
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtProperty.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtProperty.php
deleted file mode 100644
index 80befcf..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtProperty.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetClass;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAnnotation;
-
-/**
- * @AnnotationTargetClass("Some data")
- */
-class ClassWithInvalidAnnotationTargetAtProperty
-{
-
-    /**
-     * @AnnotationTargetClass("Bar")
-     */
-    public $foo;
-
-
-    /**
-     * @AnnotationTargetAnnotation("Foo")
-     */
-    public $bar;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithRequire.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithRequire.php
deleted file mode 100644
index 2dcc726..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithRequire.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-// Include a class named Api
-require_once(__DIR__ . '/Api.php');
-
-use Doctrine\Tests\Common\Annotations\DummyAnnotationWithIgnoredAnnotation;
-
-/**
- * @DummyAnnotationWithIgnoredAnnotation(dummyValue="hello")
- */
-class ClassWithRequire
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithValidAnnotationTarget.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithValidAnnotationTarget.php
deleted file mode 100644
index 9011622..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithValidAnnotationTarget.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetClass;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetAll;
-use Doctrine\Tests\Common\Annotations\Fixtures\AnnotationTargetPropertyMethod;
-
-/**
- * @AnnotationTargetClass("Some data")
- */
-class ClassWithValidAnnotationTarget
-{
-
-    /**
-     * @AnnotationTargetPropertyMethod("Some data")
-     */
-    public $foo;
-
-
-    /**
-     * @AnnotationTargetAll("Some data",name="Some name")
-     */
-    public $name;
-
-    /**
-     * @AnnotationTargetPropertyMethod("Some data",name="Some name")
-     */
-    public function someFunction()
-    {
-
-    }
-
-
-    /**
-     * @AnnotationTargetAll(@AnnotationTargetAnnotation)
-     */
-    public $nested;
-
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Controller.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Controller.php
deleted file mode 100644
index 8532064..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Controller.php
+++ /dev/null
@@ -1,300 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-/**
- * @Route("/someprefix")
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class Controller
-{
-    /**
-     * @Route("/", name="_demo")
-     * @Template()
-     */
-    public function indexAction()
-    {
-        return array();
-    }
-
-    /**
-     * @Route("/hello/{name}", name="_demo_hello")
-     * @Template()
-     */
-    public function helloAction($name)
-    {
-        return array('name' => $name);
-    }
-
-    /**
-     * @Route("/contact", name="_demo_contact")
-     * @Template()
-     */
-    public function contactAction()
-    {
-        $form = ContactForm::create($this->get('form.context'), 'contact');
-
-        $form->bind($this->container->get('request'), $form);
-        if ($form->isValid()) {
-            $form->send($this->get('mailer'));
-
-            $this->get('session')->setFlash('notice', 'Message sent!');
-
-            return new RedirectResponse($this->generateUrl('_demo'));
-        }
-
-        return array('form' => $form);
-    }
-
-    /**
-     * Creates the ACL for the passed object identity
-     *
-     * @param ObjectIdentityInterface $oid
-     * @return void
-     */
-    private function createObjectIdentity(ObjectIdentityInterface $oid)
-    {
-        $classId = $this->createOrRetrieveClassId($oid->getType());
-
-        $this->connection->executeQuery($this->getInsertObjectIdentitySql($oid->getIdentifier(), $classId, true));
-    }
-
-    /**
-     * Returns the primary key for the passed class type.
-     *
-     * If the type does not yet exist in the database, it will be created.
-     *
-     * @param string $classType
-     * @return integer
-     */
-    private function createOrRetrieveClassId($classType)
-    {
-        if (false !== $id = $this->connection->executeQuery($this->getSelectClassIdSql($classType))->fetchColumn()) {
-            return $id;
-        }
-
-        $this->connection->executeQuery($this->getInsertClassSql($classType));
-
-        return $this->connection->executeQuery($this->getSelectClassIdSql($classType))->fetchColumn();
-    }
-
-    /**
-     * Returns the primary key for the passed security identity.
-     *
-     * If the security identity does not yet exist in the database, it will be
-     * created.
-     *
-     * @param SecurityIdentityInterface $sid
-     * @return integer
-     */
-    private function createOrRetrieveSecurityIdentityId(SecurityIdentityInterface $sid)
-    {
-        if (false !== $id = $this->connection->executeQuery($this->getSelectSecurityIdentityIdSql($sid))->fetchColumn()) {
-            return $id;
-        }
-
-        $this->connection->executeQuery($this->getInsertSecurityIdentitySql($sid));
-
-        return $this->connection->executeQuery($this->getSelectSecurityIdentityIdSql($sid))->fetchColumn();
-    }
-
-    /**
-     * Deletes all ACEs for the given object identity primary key.
-     *
-     * @param integer $oidPK
-     * @return void
-     */
-    private function deleteAccessControlEntries($oidPK)
-    {
-        $this->connection->executeQuery($this->getDeleteAccessControlEntriesSql($oidPK));
-    }
-
-    /**
-     * Deletes the object identity from the database.
-     *
-     * @param integer $pk
-     * @return void
-     */
-    private function deleteObjectIdentity($pk)
-    {
-        $this->connection->executeQuery($this->getDeleteObjectIdentitySql($pk));
-    }
-
-    /**
-     * Deletes all entries from the relations table from the database.
-     *
-     * @param integer $pk
-     * @return void
-     */
-    private function deleteObjectIdentityRelations($pk)
-    {
-        $this->connection->executeQuery($this->getDeleteObjectIdentityRelationsSql($pk));
-    }
-
-    /**
-     * This regenerates the ancestor table which is used for fast read access.
-     *
-     * @param AclInterface $acl
-     * @return void
-     */
-    private function regenerateAncestorRelations(AclInterface $acl)
-    {
-        $pk = $acl->getId();
-        $this->connection->executeQuery($this->getDeleteObjectIdentityRelationsSql($pk));
-        $this->connection->executeQuery($this->getInsertObjectIdentityRelationSql($pk, $pk));
-
-        $parentAcl = $acl->getParentAcl();
-        while (null !== $parentAcl) {
-            $this->connection->executeQuery($this->getInsertObjectIdentityRelationSql($pk, $parentAcl->getId()));
-
-            $parentAcl = $parentAcl->getParentAcl();
-        }
-    }
-
-    /**
-     * This processes changes on an ACE related property (classFieldAces, or objectFieldAces).
-     *
-     * @param string $name
-     * @param array $changes
-     * @return void
-     */
-    private function updateFieldAceProperty($name, array $changes)
-    {
-        $sids = new \SplObjectStorage();
-        $classIds = new \SplObjectStorage();
-        $currentIds = array();
-        foreach ($changes[1] as $field => $new) {
-            for ($i=0,$c=count($new); $i<$c; $i++) {
-                $ace = $new[$i];
-
-                if (null === $ace->getId()) {
-                    if ($sids->contains($ace->getSecurityIdentity())) {
-                        $sid = $sids->offsetGet($ace->getSecurityIdentity());
-                    } else {
-                        $sid = $this->createOrRetrieveSecurityIdentityId($ace->getSecurityIdentity());
-                    }
-
-                    $oid = $ace->getAcl()->getObjectIdentity();
-                    if ($classIds->contains($oid)) {
-                        $classId = $classIds->offsetGet($oid);
-                    } else {
-                        $classId = $this->createOrRetrieveClassId($oid->getType());
-                    }
-
-                    $objectIdentityId = $name === 'classFieldAces' ? null : $ace->getAcl()->getId();
-
-                    $this->connection->executeQuery($this->getInsertAccessControlEntrySql($classId, $objectIdentityId, $field, $i, $sid, $ace->getStrategy(), $ace->getMask(), $ace->isGranting(), $ace->isAuditSuccess(), $ace->isAuditFailure()));
-                    $aceId = $this->connection->executeQuery($this->getSelectAccessControlEntryIdSql($classId, $objectIdentityId, $field, $i))->fetchColumn();
-                    $this->loadedAces[$aceId] = $ace;
-
-                    $aceIdProperty = new \ReflectionProperty('Symfony\Component\Security\Acl\Domain\Entry', 'id');
-                    $aceIdProperty->setAccessible(true);
-                    $aceIdProperty->setValue($ace, intval($aceId));
-                } else {
-                    $currentIds[$ace->getId()] = true;
-                }
-            }
-        }
-
-        foreach ($changes[0] as $old) {
-            for ($i=0,$c=count($old); $i<$c; $i++) {
-                $ace = $old[$i];
-
-                if (!isset($currentIds[$ace->getId()])) {
-                    $this->connection->executeQuery($this->getDeleteAccessControlEntrySql($ace->getId()));
-                    unset($this->loadedAces[$ace->getId()]);
-                }
-            }
-        }
-    }
-
-    /**
-     * This processes changes on an ACE related property (classAces, or objectAces).
-     *
-     * @param string $name
-     * @param array $changes
-     * @return void
-     */
-    private function updateAceProperty($name, array $changes)
-    {
-        list($old, $new) = $changes;
-
-        $sids = new \SplObjectStorage();
-        $classIds = new \SplObjectStorage();
-        $currentIds = array();
-        for ($i=0,$c=count($new); $i<$c; $i++) {
-            $ace = $new[$i];
-
-            if (null === $ace->getId()) {
-                if ($sids->contains($ace->getSecurityIdentity())) {
-                    $sid = $sids->offsetGet($ace->getSecurityIdentity());
-                } else {
-                    $sid = $this->createOrRetrieveSecurityIdentityId($ace->getSecurityIdentity());
-                }
-
-                $oid = $ace->getAcl()->getObjectIdentity();
-                if ($classIds->contains($oid)) {
-                    $classId = $classIds->offsetGet($oid);
-                } else {
-                    $classId = $this->createOrRetrieveClassId($oid->getType());
-                }
-
-                $objectIdentityId = $name === 'classAces' ? null : $ace->getAcl()->getId();
-
-                $this->connection->executeQuery($this->getInsertAccessControlEntrySql($classId, $objectIdentityId, null, $i, $sid, $ace->getStrategy(), $ace->getMask(), $ace->isGranting(), $ace->isAuditSuccess(), $ace->isAuditFailure()));
-                $aceId = $this->connection->executeQuery($this->getSelectAccessControlEntryIdSql($classId, $objectIdentityId, null, $i))->fetchColumn();
-                $this->loadedAces[$aceId] = $ace;
-
-                $aceIdProperty = new \ReflectionProperty($ace, 'id');
-                $aceIdProperty->setAccessible(true);
-                $aceIdProperty->setValue($ace, intval($aceId));
-            } else {
-                $currentIds[$ace->getId()] = true;
-            }
-        }
-
-        for ($i=0,$c=count($old); $i<$c; $i++) {
-            $ace = $old[$i];
-
-            if (!isset($currentIds[$ace->getId()])) {
-                $this->connection->executeQuery($this->getDeleteAccessControlEntrySql($ace->getId()));
-                unset($this->loadedAces[$ace->getId()]);
-            }
-        }
-    }
-
-    /**
-     * Persists the changes which were made to ACEs to the database.
-     *
-     * @param \SplObjectStorage $aces
-     * @return void
-     */
-    private function updateAces(\SplObjectStorage $aces)
-    {
-        foreach ($aces as $ace) {
-            $propertyChanges = $aces->offsetGet($ace);
-            $sets = array();
-
-            if (isset($propertyChanges['mask'])) {
-                $sets[] = sprintf('mask = %d', $propertyChanges['mask'][1]);
-            }
-            if (isset($propertyChanges['strategy'])) {
-                $sets[] = sprintf('granting_strategy = %s', $this->connection->quote($propertyChanges['strategy']));
-            }
-            if (isset($propertyChanges['aceOrder'])) {
-                $sets[] = sprintf('ace_order = %d', $propertyChanges['aceOrder'][1]);
-            }
-            if (isset($propertyChanges['auditSuccess'])) {
-                $sets[] = sprintf('audit_success = %s', $this->connection->getDatabasePlatform()->convertBooleans($propertyChanges['auditSuccess'][1]));
-            }
-            if (isset($propertyChanges['auditFailure'])) {
-                $sets[] = sprintf('audit_failure = %s', $this->connection->getDatabasePlatform()->convertBooleans($propertyChanges['auditFailure'][1]));
-            }
-
-            $this->connection->executeQuery($this->getUpdateAccessControlEntrySql($ace->getId(), $sets));
-        }
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsFirst.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsFirst.php
deleted file mode 100644
index bda2cc2..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsFirst.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures {
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-
-    class DifferentNamespacesPerFileWithClassAsFirst {}
-}
-
-namespace {
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-}
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Foo {
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsLast.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsLast.php
deleted file mode 100644
index aff3146..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsLast.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Foo {
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-}
-
-namespace {
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-}
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures {
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-
-    class DifferentNamespacesPerFileWithClassAsLast {}
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsFirst.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsFirst.php
deleted file mode 100644
index 3484bf8..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsFirst.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-class EqualNamespacesPerFileWithClassAsFirst {}
-
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsLast.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsLast.php
deleted file mode 100644
index af6d897..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsLast.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-
-class EqualNamespacesPerFileWithClassAsLast {}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsFirst.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsFirst.php
deleted file mode 100644
index b2c5d5c..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsFirst.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace {
-	use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-	use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-	class GlobalNamespacesPerFileWithClassAsFirst {}
-}
-
-namespace {
-	use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsLast.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsLast.php
deleted file mode 100644
index 6b600ff..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsLast.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace {
-	use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-}
-
-namespace {
-	use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-	use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-
-	class GlobalNamespacesPerFileWithClassAsLast {}
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IgnoreAnnotationClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IgnoreAnnotationClass.php
deleted file mode 100644
index 578589d..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IgnoreAnnotationClass.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-class IgnoreAnnotationClass
-{
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IntefaceWithConstants.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IntefaceWithConstants.php
deleted file mode 100644
index d375b20..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IntefaceWithConstants.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-interface IntefaceWithConstants
-{
-
-    const SOME_VALUE = 'IntefaceWithConstants.SOME_VALUE';
-    const SOME_KEY   = 'IntefaceWithConstants.SOME_KEY';
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageButIgnoredClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageButIgnoredClass.php
deleted file mode 100644
index 6fa0d51..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageButIgnoredClass.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-/**
- * @NoAnnotation
- * @IgnoreAnnotation("NoAnnotation")
- * @Route("foo")
- */
-class InvalidAnnotationUsageButIgnoredClass
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageClass.php
deleted file mode 100644
index cf3fc02..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageClass.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-/**
- * @NoAnnotation
- */
-class InvalidAnnotationUsageClass
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleClassesInFile.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleClassesInFile.php
deleted file mode 100644
index 149f1bf..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleClassesInFile.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-class AnotherClass { }
-class MultipleClassesInFile { }
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleImportsInUseStatement.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleImportsInUseStatement.php
deleted file mode 100644
index 38c954a..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleImportsInUseStatement.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use
-    Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route,
-    Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure
-;
-
-class MultipleImportsInUseStatement {}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceAndClassCommentedOut.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceAndClassCommentedOut.php
deleted file mode 100644
index 9909e31..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceAndClassCommentedOut.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-// namespace Doctrine\Tests\Common\Annotations\Fixtures;
-namespace Doctrine\Tests\Common\Annotations\Fixtures\Foo {
-
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-
-    // class NamespaceAndClassCommentedOut {}
-}
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures {
-
-    // class NamespaceAndClassCommentedOut {}
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-    // namespace Doctrine\Tests\Common\Annotations\Fixtures;
-    use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-
-    class NamespaceAndClassCommentedOut {}
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceWithClosureDeclaration.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceWithClosureDeclaration.php
deleted file mode 100644
index 13a337a..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceWithClosureDeclaration.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-
-$var = 1;
-function () use ($var) {};
-
-class NamespaceWithClosureDeclaration {}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespacedSingleClassLOC1000.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespacedSingleClassLOC1000.php
deleted file mode 100644
index ff04122..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespacedSingleClassLOC1000.php
+++ /dev/null
@@ -1,1005 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-class NamespacedSingleClassLOC1000
-{
-    const TEST1 = 1234567890;
-    const TEST2 = 1234567890;
-    const TEST3 = 1234567890;
-    const TEST4 = 1234567890;
-    const TEST5 = 1234567890;
-    const TEST6 = 1234567890;
-    const TEST7 = 1234567890;
-    const TEST8 = 1234567890;
-    const TEST9 = 1234567890;
-
-    private $test1 = null;
-    private $test2 = null;
-    private $test3 = null;
-    private $test4 = null;
-    private $test5 = null;
-    private $test6 = null;
-    private $test7 = null;
-    private $test8 = null;
-    private $test9 = null;
-
-    public function test1()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test2()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test3()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test4()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test5()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test6()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test7()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test8()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test9()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test10()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test11()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test12()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test13()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test14()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test15()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test16()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test17()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test18()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test19()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test20()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test21()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test22()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test23()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test24()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test25()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test26()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test27()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test28()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test29()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test30()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test31()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test32()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test33()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test34()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test35()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test36()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test37()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test38()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test39()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NoAnnotation.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NoAnnotation.php
deleted file mode 100644
index 1dae104..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NoAnnotation.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-class NoAnnotation {}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NonNamespacedClass.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NonNamespacedClass.php
deleted file mode 100644
index c373843..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NonNamespacedClass.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template;
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
-
-/**
- * @Route("foo")
- * @Template
- */
-class AnnotationsTestsFixturesNonNamespacedClass { }
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php
deleted file mode 100644
index 5e163b4..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php
+++ /dev/null
@@ -1,1003 +0,0 @@
-<?php
-
-class SingleClassLOC1000
-{
-    const TEST1 = 1234567890;
-    const TEST2 = 1234567890;
-    const TEST3 = 1234567890;
-    const TEST4 = 1234567890;
-    const TEST5 = 1234567890;
-    const TEST6 = 1234567890;
-    const TEST7 = 1234567890;
-    const TEST8 = 1234567890;
-    const TEST9 = 1234567890;
-
-    private $test1 = null;
-    private $test2 = null;
-    private $test3 = null;
-    private $test4 = null;
-    private $test5 = null;
-    private $test6 = null;
-    private $test7 = null;
-    private $test8 = null;
-    private $test9 = null;
-
-    public function test1()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test2()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test3()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test4()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test5()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test6()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test7()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test8()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test9()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test10()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test11()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test12()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test13()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test14()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test15()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test16()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test17()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test18()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test19()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test20()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test21()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test22()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test23()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test24()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test25()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test26()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test27()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test28()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test29()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test30()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test31()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test32()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test33()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test34()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test35()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test36()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test37()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-
-    }
-
-    public function test38()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-
-    public function test39()
-    {
-        echo $this->test1;
-        echo $this->test2;
-        echo $this->test3;
-        $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
-        foreach ($array as $key => $value) {
-            echo $key . ' => ' . $value;
-        }
-
-        $val = (string)self::TEST1;
-        $val .= (string)self::TEST2;
-        $val .= (string)self::TEST3;
-        $val .= (string)self::TEST4;
-        $val .= (string)self::TEST5;
-        $val .= (string)self::TEST6;
-        $val .= (string)self::TEST7;
-        $val .= (string)self::TEST8;
-        $val .= (string)self::TEST9;
-
-        strtolower($val);
-
-        return $val;
-    }
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TestInterface.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TestInterface.php
deleted file mode 100644
index 58c5e6a..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TestInterface.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Secure;
-
-interface TestInterface
-{
-    /**
-     * @Secure
-     */
-    function foo();
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TraitWithAnnotatedMethod.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TraitWithAnnotatedMethod.php
deleted file mode 100644
index 0519579..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TraitWithAnnotatedMethod.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-namespace Doctrine\Tests\Common\Annotations\Fixtures;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Autoload;
-
-trait TraitWithAnnotatedMethod {
-
-    /**
-     * @Autoload
-     */
-    public $traitProperty;
-
-    /**
-     * @Autoload
-     */
-    public function traitMethod()
-    {
-    }
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PerformanceTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PerformanceTest.php
deleted file mode 100644
index c7778b2..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PerformanceTest.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\FileCacheReader;
-use Doctrine\Common\Cache\ArrayCache;
-use Doctrine\Common\Annotations\CachedReader;
-use Doctrine\Common\Annotations\DocLexer;
-use Doctrine\Common\Annotations\DocParser;
-use Doctrine\Common\Annotations\PhpParser;
-use Doctrine\Common\Annotations\AnnotationReader;
-
-require_once __DIR__ . '/Fixtures/Annotation/Route.php';
-require_once __DIR__ . '/Fixtures/Annotation/Template.php';
-require_once __DIR__ . '/Fixtures/Annotation/Secure.php';
-require_once __DIR__ . '/Fixtures/SingleClassLOC1000.php';
-
-class PerformanceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @group performance
-     */
-    public function testCachedReadPerformanceWithInMemory()
-    {
-        $reader = new CachedReader(new AnnotationReader(), new ArrayCache());
-        $method = $this->getMethod();
-
-        $time = microtime(true);
-        for ($i=0,$c=500; $i<$c; $i++) {
-            $reader->getMethodAnnotations($method);
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('cached reader (in-memory)', $time, $c);
-    }
-
-    /**
-     * @group performance
-     */
-    public function testCachedReadPerformanceWithFileCache()
-    {
-        $method = $this->getMethod();
-
-        // prime cache
-        $reader = new FileCacheReader(new AnnotationReader(), sys_get_temp_dir());
-        $reader->getMethodAnnotations($method);
-
-        $time = microtime(true);
-        for ($i=0,$c=500; $i<$c; $i++) {
-            $reader = new FileCacheReader(new AnnotationReader(), sys_get_temp_dir());
-            $reader->getMethodAnnotations($method);
-            clearstatcache();
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('cached reader (file)', $time, $c);
-    }
-
-    /**
-     * @group performance
-     */
-    public function testReadPerformance()
-    {
-        $method = $this->getMethod();
-
-        $time = microtime(true);
-        for ($i=0,$c=150; $i<$c; $i++) {
-            $reader = new AnnotationReader();
-            $reader->getMethodAnnotations($method);
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('reader', $time, $c);
-    }
-
-    /**
-     * @group performance
-     */
-    public function testDocParsePerformance()
-    {
-        $imports = array(
-            'ignorephpdoc'     => 'Annotations\Annotation\IgnorePhpDoc',
-            'ignoreannotation' => 'Annotations\Annotation\IgnoreAnnotation',
-            'route'            => 'Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route',
-            'template'         => 'Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Template',
-            '__NAMESPACE__'    => 'Doctrine\Tests\Common\Annotations\Fixtures',
-        );
-        $ignored = array(
-            'access', 'author', 'copyright', 'deprecated', 'example', 'ignore',
-            'internal', 'link', 'see', 'since', 'tutorial', 'version', 'package',
-            'subpackage', 'name', 'global', 'param', 'return', 'staticvar',
-            'static', 'var', 'throws', 'inheritdoc',
-        );
-
-        $method = $this->getMethod();
-        $methodComment = $method->getDocComment();
-        $classComment = $method->getDeclaringClass()->getDocComment();
-
-        $time = microtime(true);
-        for ($i=0,$c=200; $i<$c; $i++) {
-            $parser = new DocParser();
-            $parser->setImports($imports);
-            $parser->setIgnoredAnnotationNames($ignored);
-            $parser->setIgnoreNotImportedAnnotations(true);
-
-            $parser->parse($methodComment);
-            $parser->parse($classComment);
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('doc-parser', $time, $c);
-    }
-
-    /**
-     * @group performance
-     */
-    public function testDocLexerPerformance()
-    {
-        $method = $this->getMethod();
-        $methodComment = $method->getDocComment();
-        $classComment = $method->getDeclaringClass()->getDocComment();
-
-        $time = microtime(true);
-        for ($i=0,$c=500; $i<$c; $i++) {
-            $lexer = new DocLexer();
-            $lexer->setInput($methodComment);
-            $lexer->setInput($classComment);
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('doc-lexer', $time, $c);
-    }
-
-    /**
-     * @group performance
-     */
-    public function testPhpParserPerformanceWithShortCut()
-    {
-        $class = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\NamespacedSingleClassLOC1000');
-
-        $time = microtime(true);
-        for ($i=0,$c=500; $i<$c; $i++) {
-            $parser = new PhpParser();
-            $parser->parseClass($class);
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('doc-parser-with-short-cut', $time, $c);
-    }
-
-    /**
-     * @group performance
-     */
-    public function testPhpParserPerformanceWithoutShortCut()
-    {
-        $class = new \ReflectionClass('SingleClassLOC1000');
-
-        $time = microtime(true);
-        for ($i=0,$c=500; $i<$c; $i++) {
-            $parser = new PhpParser();
-            $parser->parseClass($class);
-        }
-        $time = microtime(true) - $time;
-
-        $this->printResults('doc-parser-without-short-cut', $time, $c);
-    }
-
-    private function getMethod()
-    {
-        return new \ReflectionMethod('Doctrine\Tests\Common\Annotations\Fixtures\Controller', 'helloAction');
-    }
-
-    private function printResults($test, $time, $iterations)
-    {
-        if (0 == $iterations) {
-            throw new \InvalidArgumentException('$iterations cannot be zero.');
-        }
-
-        $title = $test." results:\n";
-        $iterationsText = sprintf("Iterations:         %d\n", $iterations);
-        $totalTime      = sprintf("Total Time:         %.3f s\n", $time);
-        $iterationTime  = sprintf("Time per iteration: %.3f ms\n", $time/$iterations * 1000);
-
-        $max = max(strlen($title), strlen($iterationTime)) - 1;
-
-        echo "\n".str_repeat('-', $max)."\n";
-        echo $title;
-        echo str_repeat('=', $max)."\n";
-        echo $iterationsText;
-        echo $totalTime;
-        echo $iterationTime;
-        echo str_repeat('-', $max)."\n";
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php
deleted file mode 100644
index dc01f8b..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use ReflectionClass;
-use Doctrine\Common\Annotations\PhpParser;
-
-require_once __DIR__.'/Fixtures/NonNamespacedClass.php';
-require_once __DIR__.'/Fixtures/GlobalNamespacesPerFileWithClassAsFirst.php';
-require_once __DIR__.'/Fixtures/GlobalNamespacesPerFileWithClassAsLast.php';
-
-class PhpParserTest extends \PHPUnit_Framework_TestCase
-{
-    public function testParseClassWithMultipleClassesInFile()
-    {
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\MultipleClassesInFile');
-        $parser = new PhpParser();
-
-        $this->assertEquals(array(
-            'route'  => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-        ), $parser->parseClass($class));
-    }
-
-    public function testParseClassWithMultipleImportsInUseStatement()
-    {
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\MultipleImportsInUseStatement');
-        $parser = new PhpParser();
-
-        $this->assertEquals(array(
-            'route'  => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-        ), $parser->parseClass($class));
-    }
-
-    public function testParseClassWhenNotUserDefined()
-    {
-        $parser = new PhpParser();
-        $this->assertEquals(array(), $parser->parseClass(new \ReflectionClass('\stdClass')));
-    }
-
-    public function testClassFileDoesNotExist()
-    {
-        $class = $this->getMockBuilder('\ReflectionClass')
-                ->disableOriginalConstructor()
-                          ->getMock();
-        $class->expects($this->once())
-             ->method('getFilename')
-             ->will($this->returnValue('/valid/class/Fake.php(35) : eval()d code'));
-
-        $parser = new PhpParser();
-        $this->assertEquals(array(), $parser->parseClass($class));
-    }
-
-    public function testParseClassWhenClassIsNotNamespaced()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass('\AnnotationsTestsFixturesNonNamespacedClass');
-
-        $this->assertEquals(array(
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    public function testParseClassWhenClassIsInterface()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\TestInterface');
-
-        $this->assertEquals(array(
-            'secure' => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-        ), $parser->parseClass($class));
-    }
-
-    public function testClassWithFullyQualifiedUseStatements()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\ClassWithFullyQualifiedUseStatements');
-
-        $this->assertEquals(array(
-            'secure'   => '\\' . __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-            'route'    => '\\' . __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => '\\' . __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    public function testNamespaceAndClassCommentedOut()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\NamespaceAndClassCommentedOut');
-
-        $this->assertEquals(array(
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-	}
-
-    public function testEqualNamespacesPerFileWithClassAsFirst()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\EqualNamespacesPerFileWithClassAsFirst');
-
-        $this->assertEquals(array(
-            'secure'   => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-        ), $parser->parseClass($class));
-    }
-
-    public function testEqualNamespacesPerFileWithClassAsLast()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\EqualNamespacesPerFileWithClassAsLast');
-
-        $this->assertEquals(array(
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    public function testDifferentNamespacesPerFileWithClassAsFirst()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\DifferentNamespacesPerFileWithClassAsFirst');
-
-        $this->assertEquals(array(
-            'secure'   => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-        ), $parser->parseClass($class));
-    }
-
-    public function testDifferentNamespacesPerFileWithClassAsLast()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\DifferentNamespacesPerFileWithClassAsLast');
-
-        $this->assertEquals(array(
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    public function testGlobalNamespacesPerFileWithClassAsFirst()
-    {
-        $parser = new PhpParser();
-        $class = new \ReflectionClass('\GlobalNamespacesPerFileWithClassAsFirst');
-
-        $this->assertEquals(array(
-            'secure'   => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-        ), $parser->parseClass($class));
-    }
-
-    public function testGlobalNamespacesPerFileWithClassAsLast()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass('\GlobalNamespacesPerFileWithClassAsLast');
-
-        $this->assertEquals(array(
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    public function testNamespaceWithClosureDeclaration()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\NamespaceWithClosureDeclaration');
-
-        $this->assertEquals(array(
-            'secure'   => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    public function testIfPointerResetsOnMultipleParsingTries()
-    {
-        $parser = new PhpParser();
-        $class = new ReflectionClass(__NAMESPACE__ . '\Fixtures\NamespaceWithClosureDeclaration');
-
-        $this->assertEquals(array(
-            'secure'   => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-
-        $this->assertEquals(array(
-            'secure'   => __NAMESPACE__ . '\Fixtures\Annotation\Secure',
-            'route'    => __NAMESPACE__ . '\Fixtures\Annotation\Route',
-            'template' => __NAMESPACE__ . '\Fixtures\Annotation\Template',
-        ), $parser->parseClass($class));
-    }
-
-    /**
-     * @group DCOM-97
-     * @group regression
-     */
-    public function testClassWithClosure()
-    {
-        $parser = new PhpParser();
-        $class  = new ReflectionClass(__NAMESPACE__ . '\Fixtures\ClassWithClosure');
-
-        $this->assertEquals(array(
-          'annotationtargetall'         => __NAMESPACE__ . '\Fixtures\AnnotationTargetAll',
-          'annotationtargetannotation'  => __NAMESPACE__ . '\Fixtures\AnnotationTargetAnnotation',
-        ), $parser->parseClass($class));
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/SimpleAnnotationReaderTest.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/SimpleAnnotationReaderTest.php
deleted file mode 100644
index 51b932a..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/SimpleAnnotationReaderTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations;
-
-use Doctrine\Common\Annotations\SimpleAnnotationReader;
-
-class SimpleAnnotationReaderTest extends AbstractReaderTest
-{
-    /**
-     * Contrary to the behavior of the default annotation reader, we do just ignore
-     * these in the simple annotation reader (so, no expected exception here).
-     */
-    public function testImportDetectsNotImportedAnnotation()
-    {
-        parent::testImportDetectsNotImportedAnnotation();
-    }
-
-    /**
-     * Contrary to the behavior of the default annotation reader, we do just ignore
-     * these in the simple annotation reader (so, no expected exception here).
-     */
-    public function testImportDetectsNonExistentAnnotation()
-    {
-        parent::testImportDetectsNonExistentAnnotation();
-    }
-
-    /**
-     * Contrary to the behavior of the default annotation reader, we do just ignore
-     * these in the simple annotation reader (so, no expected exception here).
-     */
-    public function testClassWithInvalidAnnotationTargetAtClassDocBlock()
-    {
-        parent::testClassWithInvalidAnnotationTargetAtClassDocBlock();
-    }
-
-    /**
-     * Contrary to the behavior of the default annotation reader, we do just ignore
-     * these in the simple annotation reader (so, no expected exception here).
-     */
-    public function testClassWithInvalidAnnotationTargetAtPropertyDocBlock()
-    {
-        parent::testClassWithInvalidAnnotationTargetAtPropertyDocBlock();
-    }
-
-    /**
-     * Contrary to the behavior of the default annotation reader, we do just ignore
-     * these in the simple annotation reader (so, no expected exception here).
-     */
-    public function testClassWithInvalidNestedAnnotationTargetAtPropertyDocBlock()
-    {
-        parent::testClassWithInvalidNestedAnnotationTargetAtPropertyDocBlock();
-    }
-
-    /**
-     * Contrary to the behavior of the default annotation reader, we do just ignore
-     * these in the simple annotation reader (so, no expected exception here).
-     */
-    public function testClassWithInvalidAnnotationTargetAtMethodDocBlock()
-    {
-        parent::testClassWithInvalidAnnotationTargetAtMethodDocBlock();
-    }
-
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     */
-    public function testInvalidAnnotationUsageButIgnoredClass()
-    {
-        parent::testInvalidAnnotationUsageButIgnoredClass();
-    }
-
-    public function testIncludeIgnoreAnnotation()
-    {
-        $this->markTestSkipped('The simplified annotation reader would always autoload annotations');
-    }
-
-    /**
-     * @group DDC-1660
-     * @group regression
-     *
-     * Contrary to the behavior of the default annotation reader, @version is not ignored
-     */
-    public function testInvalidAnnotationButIgnored()
-    {
-        $reader = $this->getReader();
-        $class  = new \ReflectionClass('Doctrine\Tests\Common\Annotations\Fixtures\ClassDDC1660');
-
-        $this->assertTrue(class_exists('Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Version'));
-        $this->assertCount(1, $reader->getClassAnnotations($class));
-        $this->assertCount(1, $reader->getMethodAnnotations($class->getMethod('bar')));
-        $this->assertCount(1, $reader->getPropertyAnnotations($class->getProperty('foo')));
-    }
-
-    protected function getReader()
-    {
-        $reader = new SimpleAnnotationReader();
-        $reader->addNamespace(__NAMESPACE__);
-        $reader->addNamespace(__NAMESPACE__ . '\Fixtures');
-        $reader->addNamespace(__NAMESPACE__ . '\Fixtures\Annotation');
-
-        return $reader;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM55Test.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM55Test.php
deleted file mode 100644
index a6159d5..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM55Test.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Annotations\Ticket;
-
-use Doctrine\Tests\Common\Annotations\Fixtures\Controller;
-use Doctrine\Common\Annotations\AnnotationReader;
-
-/**
- * @group
- */
-class DCOM55Test extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Doctrine\Common\Annotations\AnnotationException
-     * @expectedExceptionMessage [Semantical Error] The class "Doctrine\Tests\Common\Annotations\Fixtures\Controller" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "Doctrine\Tests\Common\Annotations\Fixtures\Controller". If it is indeed no annotation, then you need to add @IgnoreAnnotation("Controller") to the _class_ doc comment of class Doctrine\Tests\Common\Annotations\Ticket\Dummy.
-     */
-    public function testIssue()
-    {
-        $class = new \ReflectionClass(__NAMESPACE__ . '\\Dummy');
-        $reader = new AnnotationReader();
-        $reader->getClassAnnotations($class);
-    }
-
-    public function testAnnotation()
-    {
-        $class = new \ReflectionClass(__NAMESPACE__ . '\\DCOM55Consumer');
-        $reader = new AnnotationReader();
-        $annots = $reader->getClassAnnotations($class);
-
-        $this->assertEquals(1, count($annots));
-        $this->assertInstanceOf(__NAMESPACE__.'\\DCOM55Annotation', $annots[0]);
-    }
-
-    public function testParseAnnotationDocblocks()
-    {
-        $class = new \ReflectionClass(__NAMESPACE__ . '\\DCOM55Annotation');
-        $reader = new AnnotationReader();
-        $annots = $reader->getClassAnnotations($class);
-
-        $this->assertEquals(0, count($annots));
-    }
-}
-
-/**
- * @Controller
- */
-class Dummy
-{
-
-}
-
-/**
- * @Annotation
- */
-class DCOM55Annotation
-{
-
-}
-
-/**
- * @DCOM55Annotation
- */
-class DCOM55Consumer
-{
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php
deleted file mode 100644
index 708bcc9..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-// Some class named Entity in the global namespace
-/**
- * @Annotation
- */
-class Entity
-{
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Test.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Test.php
deleted file mode 100644
index 769ab38..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Test.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-namespace Doctrine\Tests\Common\Annotations\Ticket;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Doctrine\Common\Annotations\DocParser;
-use Doctrine\Common\Annotations\SimpleAnnotationReader;
-
-//Some class named Entity in the global namespace
-include __DIR__ .'/DCOM58Entity.php';
-
-/**
- * @group DCOM58
- */
-class DCOM58Test extends \PHPUnit_Framework_TestCase
-{
-    public function testIssue()
-    {
-        $reader     = new AnnotationReader();
-        $result     = $reader->getClassAnnotations(new \ReflectionClass(__NAMESPACE__."\MappedClass"));
-
-        foreach ($result as $annot) {
-            $classAnnotations[get_class($annot)] = $annot;
-        }
-
-        $this->assertTrue(!isset($classAnnotations['']), 'Class "xxx" is not a valid entity or mapped super class.');
-    }
-
-    public function testIssueGlobalNamespace()
-    {
-        $docblock   = "@Entity";
-        $parser     = new DocParser();
-        $parser->setImports(array(
-            "__NAMESPACE__" =>"Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping"
-        ));
-
-        $annots     = $parser->parse($docblock);
-
-        $this->assertEquals(1, count($annots));
-        $this->assertInstanceOf("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping\Entity", $annots[0]);
-    }
-
-    public function testIssueNamespaces()
-    {
-        $docblock   = "@Entity";
-        $parser     = new DocParser();
-        $parser->addNamespace("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM");
-
-        $annots     = $parser->parse($docblock);
-
-        $this->assertEquals(1, count($annots));
-        $this->assertInstanceOf("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Entity", $annots[0]);
-    }
-
-    public function testIssueMultipleNamespaces()
-    {
-        $docblock   = "@Entity";
-        $parser     = new DocParser();
-        $parser->addNamespace("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping");
-        $parser->addNamespace("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM");
-
-        $annots     = $parser->parse($docblock);
-
-        $this->assertEquals(1, count($annots));
-        $this->assertInstanceOf("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping\Entity", $annots[0]);
-    }
-
-    public function testIssueWithNamespacesOrImports()
-    {
-        $docblock   = "@Entity";
-        $parser     = new DocParser();
-        $annots     = $parser->parse($docblock);
-
-        $this->assertEquals(1, count($annots));
-        $this->assertInstanceOf("Entity", $annots[0]);
-        $this->assertEquals(1, count($annots));
-    }
-
-
-    public function testIssueSimpleAnnotationReader()
-    {
-        $reader     = new SimpleAnnotationReader();
-        $reader->addNamespace('Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping');
-        $annots     = $reader->getClassAnnotations(new \ReflectionClass(__NAMESPACE__."\MappedClass"));
-
-        $this->assertEquals(1, count($annots));
-        $this->assertInstanceOf("Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping\Entity", $annots[0]);
-    }
-
-}
-
-/**
- * @Entity
- */
-class MappedClass
-{
-
-}
-
-
-namespace Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM\Mapping;
-/**
-* @Annotation
-*/
-class Entity
-{
-
-}
-
-namespace Doctrine\Tests\Common\Annotations\Ticket\Doctrine\ORM;
-/**
-* @Annotation
-*/
-class Entity
-{
-
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/TopLevelAnnotation.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/TopLevelAnnotation.php
deleted file mode 100644
index ff3ca37..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/TopLevelAnnotation.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-use Doctrine\Common\Annotations\Annotation;
-
-/** @Annotation */
-class TopLevelAnnotation extends Annotation
-{
-}
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/DoctrineTestCase.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/DoctrineTestCase.php
deleted file mode 100644
index e8323d2..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/DoctrineTestCase.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests;
-
-/**
- * Base testcase class for all Doctrine testcases.
- */
-abstract class DoctrineTestCase extends \PHPUnit_Framework_TestCase
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/TestInit.php b/core/vendor/doctrine/annotations/tests/Doctrine/Tests/TestInit.php
deleted file mode 100644
index e433ae1..0000000
--- a/core/vendor/doctrine/annotations/tests/Doctrine/Tests/TestInit.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/*
- * This file bootstraps the test environment.
- */
-error_reporting(E_ALL | E_STRICT);
-
-// register silently failing autoloader
-spl_autoload_register(function($class)
-{
-    if (0 === strpos($class, 'Doctrine\Tests\\')) {
-        $path = __DIR__.'/../../'.strtr($class, '\\', '/').'.php';
-        if (is_file($path) && is_readable($path)) {
-            require_once $path;
-
-            return true;
-        }
-    }
-});
-
-require_once __DIR__ . "/../../../vendor/autoload.php";
-
-\Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace(
-    'Doctrine\Tests\Common\Annotations\Fixtures', __DIR__ . '/../../'
-);
diff --git a/core/vendor/doctrine/cache/.coveralls.yml b/core/vendor/doctrine/cache/.coveralls.yml
deleted file mode 100644
index 0c08233..0000000
--- a/core/vendor/doctrine/cache/.coveralls.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# for php-coveralls
-service_name: travis-ci
-src_dir: lib
-coverage_clover: build/logs/clover.xml
diff --git a/core/vendor/doctrine/cache/.gitignore b/core/vendor/doctrine/cache/.gitignore
deleted file mode 100644
index ca23023..0000000
--- a/core/vendor/doctrine/cache/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-vendor/
-build/
-phpunit.xml
-composer.lock
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/.travis.yml b/core/vendor/doctrine/cache/.travis.yml
deleted file mode 100644
index 28ec9b9..0000000
--- a/core/vendor/doctrine/cache/.travis.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-language: php
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-services:
-    - riak
-    - mongodb
-    - memcached
-    - redis-server
-
-before_script:
-    - sh -c "if [ $TRAVIS_PHP_VERSION != 'hhvm' ]; then pecl install riak-beta; fi"
-    - sh -c "if [[ $TRAVIS_PHP_VERSION != 'hhvm' && `php-config --vernum` -ge 50500 ]] ; then pecl config-set preferred_state beta; printf "yes\n" | pecl install apcu ; else echo 'extension="apc.so"' >> ./tests/travis/php.ini ;fi"
-    - composer self-update
-    - composer --prefer-source --dev install
-    - sh -c "if [ $TRAVIS_PHP_VERSION != 'hhvm' ]; then phpenv config-add ./tests/travis/php.ini; fi"
-
-script:
-    - ./vendor/bin/phpunit -c ./tests/travis/phpunit.travis.xml -v
-
-after_script:
-    - php vendor/bin/coveralls -v
-
-matrix:
-  allow_failures:
-    - php: hhvm
diff --git a/core/vendor/doctrine/cache/LICENSE b/core/vendor/doctrine/cache/LICENSE
deleted file mode 100644
index 4a91f0b..0000000
--- a/core/vendor/doctrine/cache/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2006-2012 Doctrine Project
-
-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/core/vendor/doctrine/cache/README.md b/core/vendor/doctrine/cache/README.md
deleted file mode 100644
index 94f80a3..0000000
--- a/core/vendor/doctrine/cache/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Doctrine Cache
-
-Master: [![Build Status](https://secure.travis-ci.org/doctrine/cache.png?branch=master)](http://travis-ci.org/doctrine/cache) [![Coverage Status](https://coveralls.io/repos/doctrine/cache/badge.png?branch=master)](https://coveralls.io/r/doctrine/cache?branch=master)
-
-[![Latest Stable Version](https://poser.pugx.org/doctrine/cache/v/stable.png)](https://packagist.org/packages/doctrine/cache) [![Total Downloads](https://poser.pugx.org/doctrine/cache/downloads.png)](https://packagist.org/packages/doctrine/cache)
-
-Cache component extracted from the Doctrine Common project.
-
-## Changelog
-
-### v1.2
-
-* Added support for MongoDB as Cache Provider
-* Fix namespace version reset
diff --git a/core/vendor/doctrine/cache/build.properties b/core/vendor/doctrine/cache/build.properties
deleted file mode 100644
index 2d98c36..0000000
--- a/core/vendor/doctrine/cache/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-# Version class and file
-project.version_class = Doctrine\\Common\\Cache\\Version
-project.version_file = lib/Doctrine/Common/Cache/Version.php
diff --git a/core/vendor/doctrine/cache/build.xml b/core/vendor/doctrine/cache/build.xml
deleted file mode 100644
index a7c52e3..0000000
--- a/core/vendor/doctrine/cache/build.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-<project name="DoctrineCommonCache" default="build" basedir=".">
-    <property file="build.properties" />
-
-    <target name="php">
-        <exec executable="which" outputproperty="php_executable">
-            <arg value="php" />
-        </exec>
-    </target>
-
-    <target name="prepare">
-        <mkdir dir="build" />
-    </target>
-
-    <target name="build" depends="check-git-checkout-clean,prepare,php,composer">
-        <exec executable="${php_executable}">
-            <arg value="build/composer.phar" />
-            <arg value="archive" />
-            <arg value="--dir=build" />
-        </exec>
-    </target>
-
-    <target name="composer" depends="php,composer-check,composer-download">
-        <exec executable="${php_executable}">
-            <arg value="build/composer.phar" />
-            <arg value="install" />
-        </exec>
-    </target>
-
-    <target name="composer-check" depends="prepare">
-        <available file="build/composer.phar" property="composer.present"/>
-    </target>
-
-    <target name="composer-download" unless="composer.present">
-        <exec executable="wget">
-            <arg value="-Obuild/composer.phar" />
-            <arg value="http://getcomposer.org/composer.phar" />
-        </exec>
-    </target>
-
-    <target name="make-release" depends="check-git-checkout-clean,prepare,php">
-        <replace file="${project.version_file}" token="-DEV" value="" failOnNoReplacements="true" />
-        <exec executable="git" failonerror="true" outputproperty="current_git_branch">
-            <arg value="rev-parse" />
-            <arg value="--abbrev-ref" />
-            <arg value="HEAD" />
-        </exec>
-        <exec executable="${php_executable}" outputproperty="doctrine.current_version" failonerror="true">
-            <arg value="-r" />
-            <arg value="require_once '${project.version_file}';echo ${project.version_class}::VERSION;" />
-        </exec>
-        <exec executable="${php_executable}" outputproperty="doctrine.next_version" failonerror="true">
-            <arg value="-r" />
-            <arg value="$parts = explode('.', str_ireplace(array('-DEV', '-ALPHA', '-BETA'), '', '${doctrine.current_version}'));
-                if (count($parts) != 3) {
-                    throw new \InvalidArgumentException('Version is assumed in format x.y.z, ${doctrine.current_version} given');
-                }
-                if ('${current_git_branch}' === 'master') {
-                    $parts[1]++;
-                } else {
-                    $parts[2]++;
-                }
-                echo implode('.', $parts);
-            " />
-        </exec>
-
-        <git-commit file="${project.version_file}" message="Release ${doctrine.current_version}" />
-        <git-tag version="${doctrine.current_version}" />
-        <replace file="${project.version_file}" token="${doctrine.current_version}" value="${doctrine.next_version}-DEV" />
-        <git-commit file="${project.version_file}" message="Bump version to ${doctrine.next_version}" />
-    </target>
-
-    <target name="check-git-checkout-clean">
-        <exec executable="git" failonerror="true">
-            <arg value="diff-index" />
-            <arg value="--quiet" />
-            <arg value="HEAD" />
-        </exec>
-    </target>
-
-    <macrodef name="git-commit">
-        <attribute name="file" default="NOT SET"/>
-        <attribute name="message" default="NOT SET"/>
-
-        <sequential>
-            <exec executable="git">
-                <arg value="add" />
-                <arg value="@{file}" />
-            </exec>
-            <exec executable="git">
-                <arg value="commit" />
-                <arg value="-m" />
-                <arg value="@{message}" />
-            </exec>
-        </sequential>
-    </macrodef>
-
-    <macrodef name="git-tag">
-        <attribute name="version" default="NOT SET" />
-
-        <sequential>
-            <exec executable="git">
-                <arg value="tag" />
-                <arg value="-m" />
-                <arg value="v@{version}" />
-                <arg value="v@{version}" />
-            </exec>
-        </sequential>
-    </macrodef>
-</project>
diff --git a/core/vendor/doctrine/cache/composer.json b/core/vendor/doctrine/cache/composer.json
deleted file mode 100644
index 25b9de8..0000000
--- a/core/vendor/doctrine/cache/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "name": "doctrine/cache",
-    "type": "library",
-    "description": "Caching library offering an object-oriented API for many cache backends",
-    "keywords": ["cache", "caching"],
-    "homepage": "http://www.doctrine-project.org",
-    "license": "MIT",
-    "authors": [
-        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
-        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
-        {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
-        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
-        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.3.2"
-    },
-    "require-dev": {
-        "phpunit/phpunit":         ">=3.7",
-        "satooshi/php-coveralls":  "~0.6"
-    },
-    "conflict": {
-        "doctrine/common": ">2.2,<2.4"
-    },
-    "autoload": {
-        "psr-0": { "Doctrine\\Common\\Cache\\": "lib/" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.4.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
deleted file mode 100644
index 1f19db6..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * APC cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author David Abdemoulaie <dave@hobodave.com>
- */
-class ApcCache extends CacheProvider
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return apc_fetch($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return apc_exists($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        return (bool) apc_store($id, $data, (int) $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return apc_delete($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        return apc_clear_cache() && apc_clear_cache('user');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $info = apc_cache_info();
-        $sma  = apc_sma_info();
-
-        // @TODO - Temporary fix @see https://github.com/krakjoe/apcu/pull/42
-        if (PHP_VERSION_ID >= 50500) {
-            $info['num_hits']   = isset($info['num_hits'])   ? $info['num_hits']   : $info['nhits'];
-            $info['num_misses'] = isset($info['num_misses']) ? $info['num_misses'] : $info['nmisses'];
-            $info['start_time'] = isset($info['start_time']) ? $info['start_time'] : $info['stime'];
-        }
-
-        return array(
-            Cache::STATS_HITS             => $info['num_hits'],
-            Cache::STATS_MISSES           => $info['num_misses'],
-            Cache::STATS_UPTIME           => $info['start_time'],
-            Cache::STATS_MEMORY_USAGE     => $info['mem_size'],
-            Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
-        );
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
deleted file mode 100644
index e824377..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Array cache driver.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author David Abdemoulaie <dave@hobodave.com>
- */
-class ArrayCache extends CacheProvider
-{
-    /**
-     * @var array $data
-     */
-    private $data = array();
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return $this->doContains($id) ? $this->data[$id] : false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return isset($this->data[$id]) || array_key_exists($id, $this->data);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        $this->data[$id] = $data;
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        unset($this->data[$id]);
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        $this->data = array();
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        return null;
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
deleted file mode 100644
index 0785f26..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Interface for cache drivers.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-interface Cache
-{
-    const STATS_HITS             = 'hits';
-    const STATS_MISSES           = 'misses';
-    const STATS_UPTIME           = 'uptime';
-    const STATS_MEMORY_USAGE     = 'memory_usage';
-    const STATS_MEMORY_AVAILABLE = 'memory_available';
-    /**
-     * Only for backward compatibility (may be removed in next major release)
-     *
-     * @deprecated
-     */
-    const STATS_MEMORY_AVAILIABLE = 'memory_available';
-
-    /**
-     * Fetches an entry from the cache.
-     *
-     * @param string $id The id of the cache entry to fetch.
-     *
-     * @return mixed The cached data or FALSE, if no cache entry exists for the given id.
-     */
-    function fetch($id);
-
-    /**
-     * Tests if an entry exists in the cache.
-     *
-     * @param string $id The cache id of the entry to check for.
-     *
-     * @return boolean TRUE if a cache entry exists for the given cache id, FALSE otherwise.
-     */
-    function contains($id);
-
-    /**
-     * Puts data into the cache.
-     *
-     * @param string $id       The cache id.
-     * @param mixed  $data     The cache entry/data.
-     * @param int    $lifeTime The cache lifetime.
-     *                         If != 0, sets a specific lifetime for this cache entry (0 => infinite lifeTime).
-     *
-     * @return boolean TRUE if the entry was successfully stored in the cache, FALSE otherwise.
-     */
-    function save($id, $data, $lifeTime = 0);
-
-    /**
-     * Deletes a cache entry.
-     *
-     * @param string $id The cache id.
-     *
-     * @return boolean TRUE if the cache entry was successfully deleted, FALSE otherwise.
-     */
-    function delete($id);
-
-    /**
-     * Retrieves cached information from the data store.
-     *
-     * The server's statistics array has the following values:
-     *
-     * - <b>hits</b>
-     * Number of keys that have been requested and found present.
-     *
-     * - <b>misses</b>
-     * Number of items that have been requested and not found.
-     *
-     * - <b>uptime</b>
-     * Time that the server is running.
-     *
-     * - <b>memory_usage</b>
-     * Memory used by this server to store items.
-     *
-     * - <b>memory_available</b>
-     * Memory allowed to use for storage.
-     *
-     * @since 2.2
-     *
-     * @return array|null An associative array with server's statistics if available, NULL otherwise.
-     */
-    function getStats();
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
deleted file mode 100644
index f896bc7..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
+++ /dev/null
@@ -1,241 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Base class for cache provider implementations.
- *
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-abstract class CacheProvider implements Cache
-{
-    const DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]';
-
-    /**
-     * The namespace to prefix all cache ids with.
-     *
-     * @var string
-     */
-    private $namespace = '';
-
-    /**
-     * The namespace version.
-     *
-     * @var integer|null
-     */
-    private $namespaceVersion;
-
-    /**
-     * Sets the namespace to prefix all cache ids with.
-     *
-     * @param string $namespace
-     *
-     * @return void
-     */
-    public function setNamespace($namespace)
-    {
-        $this->namespace        = (string) $namespace;
-        $this->namespaceVersion = null;
-    }
-
-    /**
-     * Retrieves the namespace that prefixes all cache ids.
-     *
-     * @return string
-     */
-    public function getNamespace()
-    {
-        return $this->namespace;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function fetch($id)
-    {
-        return $this->doFetch($this->getNamespacedId($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function contains($id)
-    {
-        return $this->doContains($this->getNamespacedId($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function save($id, $data, $lifeTime = 0)
-    {
-        return $this->doSave($this->getNamespacedId($id), $data, $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function delete($id)
-    {
-        return $this->doDelete($this->getNamespacedId($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStats()
-    {
-        return $this->doGetStats();
-    }
-
-    /**
-     * Flushes all cache entries.
-     *
-     * @return boolean TRUE if the cache entries were successfully flushed, FALSE otherwise.
-     */
-    public function flushAll()
-    {
-        return $this->doFlush();
-    }
-
-    /**
-     * Deletes all cache entries.
-     *
-     * @return boolean TRUE if the cache entries were successfully deleted, FALSE otherwise.
-     */
-    public function deleteAll()
-    {
-        $namespaceCacheKey = $this->getNamespaceCacheKey();
-        $namespaceVersion  = $this->getNamespaceVersion() + 1;
-
-        $this->namespaceVersion = $namespaceVersion;
-
-        return $this->doSave($namespaceCacheKey, $namespaceVersion);
-    }
-
-    /**
-     * Prefixes the passed id with the configured namespace value.
-     *
-     * @param string $id The id to namespace.
-     *
-     * @return string The namespaced id.
-     */
-    private function getNamespacedId($id)
-    {
-        $namespaceVersion  = $this->getNamespaceVersion();
-
-        return sprintf('%s[%s][%s]', $this->namespace, $id, $namespaceVersion);
-    }
-
-    /**
-     * Returns the namespace cache key.
-     *
-     * @return string
-     */
-    private function getNamespaceCacheKey()
-    {
-        return sprintf(self::DOCTRINE_NAMESPACE_CACHEKEY, $this->namespace);
-    }
-
-    /**
-     * Returns the namespace version.
-     *
-     * @return integer
-     */
-    private function getNamespaceVersion()
-    {
-        if (null !== $this->namespaceVersion) {
-            return $this->namespaceVersion;
-        }
-
-        $namespaceCacheKey = $this->getNamespaceCacheKey();
-        $namespaceVersion = $this->doFetch($namespaceCacheKey);
-
-        if (false === $namespaceVersion) {
-            $namespaceVersion = 1;
-
-            $this->doSave($namespaceCacheKey, $namespaceVersion);
-        }
-
-        $this->namespaceVersion = $namespaceVersion;
-
-        return $this->namespaceVersion;
-    }
-
-    /**
-     * Fetches an entry from the cache.
-     *
-     * @param string $id The id of the cache entry to fetch.
-     *
-     * @return string|boolean The cached data or FALSE, if no cache entry exists for the given id.
-     */
-    abstract protected function doFetch($id);
-
-    /**
-     * Tests if an entry exists in the cache.
-     *
-     * @param string $id The cache id of the entry to check for.
-     *
-     * @return boolean TRUE if a cache entry exists for the given cache id, FALSE otherwise.
-     */
-    abstract protected function doContains($id);
-
-    /**
-     * Puts data into the cache.
-     *
-     * @param string $id       The cache id.
-     * @param string $data     The cache entry/data.
-     * @param int    $lifeTime The lifetime. If != 0, sets a specific lifetime for this
-     *                           cache entry (0 => infinite lifeTime).
-     *
-     * @return boolean TRUE if the entry was successfully stored in the cache, FALSE otherwise.
-     */
-    abstract protected function doSave($id, $data, $lifeTime = 0);
-
-    /**
-     * Deletes a cache entry.
-     *
-     * @param string $id The cache id.
-     *
-     * @return boolean TRUE if the cache entry was successfully deleted, FALSE otherwise.
-     */
-    abstract protected function doDelete($id);
-
-    /**
-     * Flushes all cache entries.
-     *
-     * @return boolean TRUE if the cache entry was successfully deleted, FALSE otherwise.
-     */
-    abstract protected function doFlush();
-
-    /**
-     * Retrieves cached information from the data store.
-     *
-     * @since 2.2
-     *
-     * @return array|null An associative array with server's statistics if available, NULL otherwise.
-     */
-    abstract protected function doGetStats();
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
deleted file mode 100644
index c21691d..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-use \Couchbase;
-
-/**
- * Couchbase cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  2.4
- * @author Michael Nitschinger <michael@nitschinger.at>
- */
-class CouchbaseCache extends CacheProvider
-{
-    /**
-     * @var Couchbase|null
-     */
-    private $couchbase;
-
-    /**
-     * Sets the Couchbase instance to use.
-     *
-     * @param Couchbase $couchbase
-     *
-     * @return void
-     */
-    public function setCouchbase(Couchbase $couchbase)
-    {
-        $this->couchbase = $couchbase;
-    }
-
-    /**
-     * Gets the Couchbase instance used by the cache.
-     *
-     * @return Couchbase|null
-     */
-    public function getCouchbase()
-    {
-        return $this->couchbase;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return $this->couchbase->get($id) ?: false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return (null !== $this->couchbase->get($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        if ($lifeTime > 30 * 24 * 3600) {
-            $lifeTime = time() + $lifeTime;
-        }
-        return $this->couchbase->set($id, $data, (int) $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return $this->couchbase->delete($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        return $this->couchbase->flush();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $stats   = $this->couchbase->getStats();
-        $servers = $this->couchbase->getServers();
-        $server  = explode(":", $servers[0]);
-        $key     = $server[0] . ":" . "11210";
-        $stats   = $stats[$key];
-        return array(
-            Cache::STATS_HITS   => $stats['get_hits'],
-            Cache::STATS_MISSES => $stats['get_misses'],
-            Cache::STATS_UPTIME => $stats['uptime'],
-            Cache::STATS_MEMORY_USAGE     => $stats['bytes'],
-            Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
-        );
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
deleted file mode 100644
index d91d0bc..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Base file cache driver.
- *
- * @since  2.3
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-abstract class FileCache extends CacheProvider
-{
-    /**
-     * The cache directory.
-     *
-     * @var string
-     */
-    protected $directory;
-
-    /**
-     * The cache file extension.
-     *
-     * @var string|null
-     */
-    protected $extension;
-
-    /**
-     * Constructor.
-     *
-     * @param string      $directory The cache directory.
-     * @param string|null $extension The cache file extension.
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function __construct($directory, $extension = null)
-    {
-        if ( ! is_dir($directory) && ! @mkdir($directory, 0777, true)) {
-            throw new \InvalidArgumentException(sprintf(
-                'The directory "%s" does not exist and could not be created.',
-                $directory
-            ));
-        }
-
-        if ( ! is_writable($directory)) {
-            throw new \InvalidArgumentException(sprintf(
-                'The directory "%s" is not writable.',
-                $directory
-            ));
-        }
-
-        $this->directory = realpath($directory);
-        $this->extension = $extension ?: $this->extension;
-    }
-
-    /**
-     * Gets the cache directory.
-     *
-     * @return string
-     */
-    public function getDirectory()
-    {
-        return $this->directory;
-    }
-
-    /**
-     * Gets the cache file extension.
-     *
-     * @return string|null
-     */
-    public function getExtension()
-    {
-        return $this->extension;
-    }
-
-    /**
-     * @param string $id
-     *
-     * @return string
-     */
-    protected function getFilename($id)
-    {
-        $hash = hash('sha256', $id);
-        $path = implode(str_split($hash, 16), DIRECTORY_SEPARATOR);
-        $path = $this->directory . DIRECTORY_SEPARATOR . $path;
-        $id   = preg_replace('@[\\\/:"*?<>|]+@', '', $id);
-
-        return $path . DIRECTORY_SEPARATOR . $id . $this->extension;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return @unlink($this->getFilename($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        foreach ($this->getIterator() as $name => $file) {
-            @unlink($name);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $usage = 0;
-        foreach ($this->getIterator() as $file) {
-            $usage += $file->getSize();
-        }
-
-        $free = disk_free_space($this->directory);
-
-        return array(
-            Cache::STATS_HITS               => null,
-            Cache::STATS_MISSES             => null,
-            Cache::STATS_UPTIME             => null,
-            Cache::STATS_MEMORY_USAGE       => $usage,
-            Cache::STATS_MEMORY_AVAILABLE   => $free,
-        );
-    }
-
-    /**
-     * @return \Iterator
-     */
-    private function getIterator()
-    {
-        $pattern = '/^.+\\' . $this->extension . '$/i';
-        $iterator = new \RecursiveDirectoryIterator($this->directory);
-        $iterator = new \RecursiveIteratorIterator($iterator);
-        return new \RegexIterator($iterator, $pattern);
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
deleted file mode 100644
index 07eda8e..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Filesystem cache driver.
- *
- * @since  2.3
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-class FilesystemCache extends FileCache
-{
-    const EXTENSION = '.doctrinecache.data';
-
-    /**
-     * {@inheritdoc}
-     */
-    protected $extension = self::EXTENSION;
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        $data     = '';
-        $lifetime = -1;
-        $filename = $this->getFilename($id);
-
-        if ( ! is_file($filename)) {
-            return false;
-        }
-
-        $resource = fopen($filename, "r");
-
-        if (false !== ($line = fgets($resource))) {
-            $lifetime = (integer) $line;
-        }
-
-        if ($lifetime !== 0 && $lifetime < time()) {
-            fclose($resource);
-
-            return false;
-        }
-
-        while (false !== ($line = fgets($resource))) {
-            $data .= $line;
-        }
-
-        fclose($resource);
-
-        return unserialize($data);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        $lifetime = -1;
-        $filename = $this->getFilename($id);
-
-        if ( ! is_file($filename)) {
-            return false;
-        }
-
-        $resource = fopen($filename, "r");
-
-        if (false !== ($line = fgets($resource))) {
-            $lifetime = (integer) $line;
-        }
-
-        fclose($resource);
-
-        return $lifetime === 0 || $lifetime > time();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        if ($lifeTime > 0) {
-            $lifeTime = time() + $lifeTime;
-        }
-
-        $data       = serialize($data);
-        $filename   = $this->getFilename($id);
-        $filepath   = pathinfo($filename, PATHINFO_DIRNAME);
-
-        if ( ! is_dir($filepath)) {
-            if (false === @mkdir($filepath, 0777, true) && !is_dir($filepath)) {
-                return false;
-            }
-        } elseif ( ! is_writable($filepath)) {
-            return false;
-        }
-
-        $tmpFile = tempnam($filepath, basename($filename));
-
-        if ((file_put_contents($tmpFile, $lifeTime . PHP_EOL . $data) !== false) && @rename($tmpFile, $filename)) {
-            @chmod($filename, 0666 & ~umask());
-
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
deleted file mode 100644
index f839a65..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-use \Memcache;
-
-/**
- * Memcache cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author David Abdemoulaie <dave@hobodave.com>
- */
-class MemcacheCache extends CacheProvider
-{
-    /**
-     * @var Memcache|null
-     */
-    private $memcache;
-
-    /**
-     * Sets the memcache instance to use.
-     *
-     * @param Memcache $memcache
-     *
-     * @return void
-     */
-    public function setMemcache(Memcache $memcache)
-    {
-        $this->memcache = $memcache;
-    }
-
-    /**
-     * Gets the memcache instance used by the cache.
-     *
-     * @return Memcache|null
-     */
-    public function getMemcache()
-    {
-        return $this->memcache;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return $this->memcache->get($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return (bool) $this->memcache->get($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        if ($lifeTime > 30 * 24 * 3600) {
-            $lifeTime = time() + $lifeTime;
-        }
-        return $this->memcache->set($id, $data, 0, (int) $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return $this->memcache->delete($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        return $this->memcache->flush();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $stats = $this->memcache->getStats();
-        return array(
-            Cache::STATS_HITS   => $stats['get_hits'],
-            Cache::STATS_MISSES => $stats['get_misses'],
-            Cache::STATS_UPTIME => $stats['uptime'],
-            Cache::STATS_MEMORY_USAGE     => $stats['bytes'],
-            Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
-        );
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
deleted file mode 100644
index f7e5500..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-use \Memcached;
-
-/**
- * Memcached cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author David Abdemoulaie <dave@hobodave.com>
- */
-class MemcachedCache extends CacheProvider
-{
-    /**
-     * @var Memcached|null
-     */
-    private $memcached;
-
-    /**
-     * Sets the memcache instance to use.
-     *
-     * @param Memcached $memcached
-     *
-     * @return void
-     */
-    public function setMemcached(Memcached $memcached)
-    {
-        $this->memcached = $memcached;
-    }
-
-    /**
-     * Gets the memcached instance used by the cache.
-     *
-     * @return Memcached|null
-     */
-    public function getMemcached()
-    {
-        return $this->memcached;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return $this->memcached->get($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return (false !== $this->memcached->get($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        if ($lifeTime > 30 * 24 * 3600) {
-            $lifeTime = time() + $lifeTime;
-        }
-        return $this->memcached->set($id, $data, (int) $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return $this->memcached->delete($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        return $this->memcached->flush();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $stats   = $this->memcached->getStats();
-        $servers = $this->memcached->getServerList();
-        $key     = $servers[0]['host'] . ':' . $servers[0]['port'];
-        $stats   = $stats[$key];
-        return array(
-            Cache::STATS_HITS   => $stats['get_hits'],
-            Cache::STATS_MISSES => $stats['get_misses'],
-            Cache::STATS_UPTIME => $stats['uptime'],
-            Cache::STATS_MEMORY_USAGE     => $stats['bytes'],
-            Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
-        );
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
deleted file mode 100644
index 0c7ac0a..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-use MongoBinData;
-use MongoCollection;
-use MongoDate;
-
-/**
- * MongoDB cache provider.
- *
- * @since  1.1
- * @author Jeremy Mikola <jmikola@gmail.com>
- */
-class MongoDBCache extends CacheProvider
-{
-    /**
-     * The data field will store the serialized PHP value.
-     */
-    const DATA_FIELD = 'd';
-
-    /**
-     * The expiration field will store a MongoDate value indicating when the
-     * cache entry should expire.
-     *
-     * With MongoDB 2.2+, entries can be automatically deleted by MongoDB by
-     * indexing this field wit the "expireAfterSeconds" option equal to zero.
-     * This will direct MongoDB to regularly query for and delete any entries
-     * whose date is older than the current time. Entries without a date value
-     * in this field will be ignored.
-     *
-     * The cache provider will also check dates on its own, in case expired
-     * entries are fetched before MongoDB's TTLMonitor pass can expire them.
-     *
-     * @see http://docs.mongodb.org/manual/tutorial/expire-data/
-     */
-    const EXPIRATION_FIELD = 'e';
-
-    /**
-     * @var MongoCollection
-     */
-    private $collection;
-
-    /**
-     * Constructor.
-     *
-     * This provider will default to the write concern and read preference
-     * options set on the MongoCollection instance (or inherited from MongoDB or
-     * MongoClient). Using an unacknowledged write concern (< 1) may make the
-     * return values of delete() and save() unreliable. Reading from secondaries
-     * may make contain() and fetch() unreliable.
-     *
-     * @see http://www.php.net/manual/en/mongo.readpreferences.php
-     * @see http://www.php.net/manual/en/mongo.writeconcerns.php
-     * @param MongoCollection $collection
-     */
-    public function __construct(MongoCollection $collection)
-    {
-        $this->collection = $collection;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        $document = $this->collection->findOne(array('_id' => $id), array(self::DATA_FIELD, self::EXPIRATION_FIELD));
-
-        if ($document === null) {
-            return false;
-        }
-
-        if ($this->isExpired($document)) {
-            $this->doDelete($id);
-            return false;
-        }
-
-        return unserialize($document[self::DATA_FIELD]->bin);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        $document = $this->collection->findOne(array('_id' => $id), array(self::EXPIRATION_FIELD));
-
-        if ($document === null) {
-            return false;
-        }
-
-        if ($this->isExpired($document)) {
-            $this->doDelete($id);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        $result = $this->collection->update(
-            array('_id' => $id),
-            array('$set' => array(
-                self::EXPIRATION_FIELD => ($lifeTime > 0 ? new MongoDate(time() + $lifeTime) : null),
-                self::DATA_FIELD => new MongoBinData(serialize($data), MongoBinData::BYTE_ARRAY),
-            )),
-            array('upsert' => true, 'multiple' => false)
-        );
-
-        return isset($result['ok']) ? $result['ok'] == 1 : true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        $result = $this->collection->remove(array('_id' => $id));
-
-        return isset($result['n']) ? $result['n'] == 1 : true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        // Use remove() in lieu of drop() to maintain any collection indexes
-        $result = $this->collection->remove();
-
-        return isset($result['ok']) ? $result['ok'] == 1 : true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $serverStatus = $this->collection->db->command(array(
-            'serverStatus' => 1,
-            'locks' => 0,
-            'metrics' => 0,
-            'recordStats' => 0,
-            'repl' => 0,
-        ));
-
-        $collStats = $this->collection->db->command(array('collStats' => 1));
-
-        return array(
-            Cache::STATS_HITS => null,
-            Cache::STATS_MISSES => null,
-            Cache::STATS_UPTIME => (isset($serverStatus['uptime']) ? (integer) $serverStatus['uptime'] : null),
-            Cache::STATS_MEMORY_USAGE => (isset($collStats['size']) ? (integer) $collStats['size'] : null),
-            Cache::STATS_MEMORY_AVAILABLE  => null,
-        );
-    }
-
-    /**
-     * Check if the document is expired.
-     *
-     * @param array $document
-     * @return boolean
-     */
-    private function isExpired(array $document)
-    {
-        return isset($document[self::EXPIRATION_FIELD]) &&
-            $document[self::EXPIRATION_FIELD] instanceof MongoDate &&
-            $document[self::EXPIRATION_FIELD]->sec < time();
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
deleted file mode 100644
index f017d83..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Php file cache driver.
- *
- * @since  2.3
- * @author Fabio B. Silva <fabio.bat.silva@gmail.com>
- */
-class PhpFileCache extends FileCache
-{
-    const EXTENSION = '.doctrinecache.php';
-
-     /**
-     * {@inheritdoc}
-     */
-    protected $extension = self::EXTENSION;
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        $filename = $this->getFilename($id);
-
-        if ( ! is_file($filename)) {
-            return false;
-        }
-
-        $value = include $filename;
-
-        if ($value['lifetime'] !== 0 && $value['lifetime'] < time()) {
-            return false;
-        }
-
-        return $value['data'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        $filename = $this->getFilename($id);
-
-        if ( ! is_file($filename)) {
-            return false;
-        }
-
-        $value = include $filename;
-
-        return $value['lifetime'] === 0 || $value['lifetime'] > time();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        if ($lifeTime > 0) {
-            $lifeTime = time() + $lifeTime;
-        }
-
-        if (is_object($data) && ! method_exists($data, '__set_state')) {
-            throw new \InvalidArgumentException(
-                "Invalid argument given, PhpFileCache only allows objects that implement __set_state() " .
-                "and fully support var_export(). You can use the FilesystemCache to save arbitrary object " .
-                "graphs using serialize()/deserialize()."
-            );
-        }
-
-        $filename   = $this->getFilename($id);
-        $filepath   = pathinfo($filename, PATHINFO_DIRNAME);
-
-        if ( ! is_dir($filepath)) {
-            mkdir($filepath, 0777, true);
-        }
-
-        $value = array(
-            'lifetime'  => $lifeTime,
-            'data'      => $data
-        );
-
-        $value  = var_export($value, true);
-        $code   = sprintf('<?php return %s;', $value);
-
-        return file_put_contents($filename, $code) !== false;
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
deleted file mode 100644
index 8d00a3b..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-use Redis;
-
-/**
- * Redis cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Osman Ungur <osmanungur@gmail.com>
- */
-class RedisCache extends CacheProvider
-{
-    /**
-     * @var Redis|null
-     */
-    private $redis;
-
-    /**
-     * Sets the redis instance to use.
-     *
-     * @param Redis $redis
-     *
-     * @return void
-     */
-    public function setRedis(Redis $redis)
-    {
-        $redis->setOption(Redis::OPT_SERIALIZER, $this->getSerializerValue());
-        $this->redis = $redis;
-    }
-
-    /**
-     * Gets the redis instance used by the cache.
-     *
-     * @return Redis|null
-     */
-    public function getRedis()
-    {
-        return $this->redis;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return $this->redis->get($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return $this->redis->exists($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        if ($lifeTime > 0) {
-            return $this->redis->setex($id, $lifeTime, $data);
-        }
-
-        return $this->redis->set($id, $data);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return $this->redis->delete($id) > 0;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        return $this->redis->flushDB();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $info = $this->redis->info();
-        return array(
-            Cache::STATS_HITS   => false,
-            Cache::STATS_MISSES => false,
-            Cache::STATS_UPTIME => $info['uptime_in_seconds'],
-            Cache::STATS_MEMORY_USAGE      => $info['used_memory'],
-            Cache::STATS_MEMORY_AVAILABLE  => false
-        );
-    }
-
-    /**
-     * Returns the serializer constant to use. If Redis is compiled with
-     * igbinary support, that is used. Otherwise the default PHP serializer is
-     * used.
-     *
-     * @return integer One of the Redis::SERIALIZER_* constants
-     */
-    protected function getSerializerValue()
-    {
-        return defined('Redis::SERIALIZER_IGBINARY') ? Redis::SERIALIZER_IGBINARY : Redis::SERIALIZER_PHP;
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php
deleted file mode 100644
index 8bb6b4b..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-use Riak\Bucket;
-use Riak\Connection;
-use Riak\Input;
-use Riak\Exception;
-use Riak\Object;
-
-/**
- * Riak cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  1.1
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- */
-class RiakCache extends CacheProvider
-{
-    const EXPIRES_HEADER = 'X-Riak-Meta-Expires';
-
-    /**
-     * @var \Riak\Bucket
-     */
-    private $bucket;
-
-    /**
-     * Sets the riak bucket instance to use.
-     *
-     * @param \Riak\Bucket $bucket
-     */
-    public function __construct(Bucket $bucket)
-    {
-        $this->bucket = $bucket;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        try {
-            $response = $this->bucket->get($id);
-
-            // No objects found
-            if ( ! $response->hasObject()) {
-                return false;
-            }
-
-            // Check for attempted siblings
-            $object = ($response->hasSiblings())
-                ? $this->resolveConflict($id, $response->getVClock(), $response->getObjectList())
-                : $response->getFirstObject();
-
-            // Check for expired object
-            if ($this->isExpired($object)) {
-                $this->bucket->delete($object);
-
-                return false;
-            }
-
-            return unserialize($object->getContent());
-        } catch (Exception\RiakException $e) {
-            // Covers:
-            // - Riak\ConnectionException
-            // - Riak\CommunicationException
-            // - Riak\UnexpectedResponseException
-            // - Riak\NotFoundException
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        try {
-            // We only need the HEAD, not the entire object
-            $input = new Input\GetInput();
-
-            $input->setReturnHead(true);
-
-            $response = $this->bucket->get($id, $input);
-
-            // No objects found
-            if ( ! $response->hasObject()) {
-                return false;
-            }
-
-            $object = $response->getFirstObject();
-
-            // Check for expired object
-            if ($this->isExpired($object)) {
-                $this->bucket->delete($object);
-
-                return false;
-            }
-
-            return true;
-        } catch (Exception\RiakException $e) {
-            // Do nothing
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        try {
-            $object = new Object($id);
-
-            $object->setContent(serialize($data));
-
-            if ($lifeTime > 0) {
-                $object->addMetadata(self::EXPIRES_HEADER, (string) (time() + $lifeTime));
-            }
-
-            $this->bucket->put($object);
-
-            return true;
-        } catch (Exception\RiakException $e) {
-            // Do nothing
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        try {
-            $this->bucket->delete($id);
-
-            return true;
-        } catch (Exception\BadArgumentsException $e) {
-            // Key did not exist on cluster already
-        } catch (Exception\RiakException $e) {
-            // Covers:
-            // - Riak\Exception\ConnectionException
-            // - Riak\Exception\CommunicationException
-            // - Riak\Exception\UnexpectedResponseException
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        try {
-            $keyList = $this->bucket->getKeyList();
-
-            foreach ($keyList as $key) {
-                $this->bucket->delete($key);
-            }
-
-            return true;
-        } catch (Exception\RiakException $e) {
-            // Do nothing
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        // Only exposed through HTTP stats API, not Protocol Buffers API
-        return null;
-    }
-
-    /**
-     * Check if a given Riak Object have expired.
-     *
-     * @param \Riak\Object $object
-     *
-     * @return boolean
-     */
-    private function isExpired(Object $object)
-    {
-        $metadataMap = $object->getMetadataMap();
-
-        return isset($metadataMap[self::EXPIRES_HEADER])
-            && $metadataMap[self::EXPIRES_HEADER] < time();
-    }
-
-    /**
-     * On-read conflict resolution. Applied approach here is last write wins.
-     * Specific needs may override this method to apply alternate conflict resolutions.
-     *
-     * {@internal Riak does not attempt to resolve a write conflict, and store
-     * it as sibling of conflicted one. By following this approach, it is up to
-     * the next read to resolve the conflict. When this happens, your fetched
-     * object will have a list of siblings (read as a list of objects).
-     * In our specific case, we do not care about the intermediate ones since
-     * they are all the same read from storage, and we do apply a last sibling
-     * (last write) wins logic.
-     * If by any means our resolution generates another conflict, it'll up to
-     * next read to properly solve it.}
-     *
-     * @param string $id
-     * @param string $vClock
-     * @param array  $objectList
-     *
-     * @return \Riak\Object
-     */
-    protected function resolveConflict($id, $vClock, array $objectList)
-    {
-        // Our approach here is last-write wins
-        $winner = $objectList[count($objectList)];
-
-        $putInput = new Input\PutInput();
-        $putInput->setVClock($vClock);
-
-        $mergedObject = new Object($id);
-        $mergedObject->setContent($winner->getContent());
-
-        $this->bucket->put($mergedObject, $putInput);
-
-        return $mergedObject;
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
deleted file mode 100644
index d742fa0..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-class Version
-{
-    const VERSION = '1.4.0-DEV';
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
deleted file mode 100644
index ae32772..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * WinCache cache provider.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author David Abdemoulaie <dave@hobodave.com>
- */
-class WinCacheCache extends CacheProvider
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return wincache_ucache_get($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return wincache_ucache_exists($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        return (bool) wincache_ucache_set($id, $data, (int) $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return wincache_ucache_delete($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        return wincache_ucache_clear();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $info    = wincache_ucache_info();
-        $meminfo = wincache_ucache_meminfo();
-
-        return array(
-            Cache::STATS_HITS             => $info['total_hit_count'],
-            Cache::STATS_MISSES           => $info['total_miss_count'],
-            Cache::STATS_UPTIME           => $info['total_cache_uptime'],
-            Cache::STATS_MEMORY_USAGE     => $meminfo['memory_total'],
-            Cache::STATS_MEMORY_AVAILABLE => $meminfo['memory_free'],
-        );
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
deleted file mode 100644
index 833b02a..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Xcache cache driver.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author David Abdemoulaie <dave@hobodave.com>
- */
-class XcacheCache extends CacheProvider
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return $this->doContains($id) ? unserialize(xcache_get($id)) : false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return xcache_isset($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        return xcache_set($id, serialize($data), (int) $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return xcache_unset($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        $this->checkAuthorization();
-
-        xcache_clear_cache(XC_TYPE_VAR, 0);
-
-        return true;
-    }
-
-    /**
-     * Checks that xcache.admin.enable_auth is Off.
-     *
-     * @return void
-     *
-     * @throws \BadMethodCallException When xcache.admin.enable_auth is On.
-     */
-    protected function checkAuthorization()
-    {
-        if (ini_get('xcache.admin.enable_auth')) {
-            throw new \BadMethodCallException('To use all features of \Doctrine\Common\Cache\XcacheCache, you must set "xcache.admin.enable_auth" to "Off" in your php.ini.');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        $this->checkAuthorization();
-
-        $info = xcache_info(XC_TYPE_VAR, 0);
-        return array(
-            Cache::STATS_HITS   => $info['hits'],
-            Cache::STATS_MISSES => $info['misses'],
-            Cache::STATS_UPTIME => null,
-            Cache::STATS_MEMORY_USAGE      => $info['size'],
-            Cache::STATS_MEMORY_AVAILABLE  => $info['avail'],
-        );
-    }
-}
diff --git a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php b/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
deleted file mode 100644
index 6e35ac8..0000000
--- a/core/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Cache;
-
-/**
- * Zend Data Cache cache driver.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Ralph Schindler <ralph.schindler@zend.com>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- */
-class ZendDataCache extends CacheProvider
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFetch($id)
-    {
-        return zend_shm_cache_fetch($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doContains($id)
-    {
-        return (false !== zend_shm_cache_fetch($id));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doSave($id, $data, $lifeTime = 0)
-    {
-        return zend_shm_cache_store($id, $data, $lifeTime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doDelete($id)
-    {
-        return zend_shm_cache_delete($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doFlush()
-    {
-        $namespace = $this->getNamespace();
-        if (empty($namespace)) {
-            return zend_shm_cache_clear();
-        }
-        return zend_shm_cache_clear($namespace);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doGetStats()
-    {
-        return null;
-    }
-}
diff --git a/core/vendor/doctrine/cache/phpunit.xml.dist b/core/vendor/doctrine/cache/phpunit.xml.dist
deleted file mode 100644
index 34d7f4c..0000000
--- a/core/vendor/doctrine/cache/phpunit.xml.dist
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="./tests/Doctrine/Tests/TestInit.php"
->
-    <testsuites>
-        <testsuite name="Doctrine Cache Test Suite">
-            <directory>./tests/Doctrine/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./lib/Doctrine/</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ApcCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ApcCacheTest.php
deleted file mode 100644
index df81262..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ApcCacheTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\ApcCache;
-
-class ApcCacheTest extends CacheTest
-{
-    public function setUp()
-    {
-        if ( ! extension_loaded('apc') || false === @apc_cache_info()) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of APC');
-        }
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new ApcCache();
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ArrayCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ArrayCacheTest.php
deleted file mode 100644
index a6c3097..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ArrayCacheTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\ArrayCache;
-
-class ArrayCacheTest extends CacheTest
-{
-    protected function _getCacheDriver()
-    {
-        return new ArrayCache();
-    }
-
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertNull($stats);
-    }
-
-    protected function isSharedStorage()
-    {
-        return false;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/BaseFileCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/BaseFileCacheTest.php
deleted file mode 100644
index eaedd99..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/BaseFileCacheTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use RecursiveDirectoryIterator;
-use RecursiveIteratorIterator;
-
-abstract class BaseFileCacheTest extends CacheTest
-{
-    protected $directory;
-
-    public function setUp()
-    {
-        do {
-            $this->directory = sys_get_temp_dir() . '/doctrine_cache_'. uniqid();
-        } while (file_exists($this->directory));
-    }
-
-    public function tearDown()
-    {
-        if ( ! is_dir($this->directory)) {
-            return;
-        }
-
-        $iterator = new RecursiveDirectoryIterator($this->directory);
-
-        foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) {
-            if ($file->isFile()) {
-                @unlink($file->getRealPath());
-            } elseif ($file->isDir()) {
-                @rmdir($file->getRealPath());
-            }
-        }
-    }
-
-    protected function isSharedStorage()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CacheTest.php
deleted file mode 100644
index 59ca4dc..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CacheTest.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\Cache;
-use ArrayObject;
-
-abstract class CacheTest extends \Doctrine\Tests\DoctrineTestCase
-{
-    /**
-     * @dataProvider provideCrudValues
-     */
-    public function testBasicCrudOperations($value)
-    {
-        $cache = $this->_getCacheDriver();
-
-        // Test saving a value, checking if it exists, and fetching it back
-        $this->assertTrue($cache->save('key', 'value'));
-        $this->assertTrue($cache->contains('key'));
-        $this->assertEquals('value', $cache->fetch('key'));
-
-        // Test updating the value of a cache entry
-        $this->assertTrue($cache->save('key', 'value-changed'));
-        $this->assertTrue($cache->contains('key'));
-        $this->assertEquals('value-changed', $cache->fetch('key'));
-
-        // Test deleting a value
-        $this->assertTrue($cache->delete('key'));
-        $this->assertFalse($cache->contains('key'));
-    }
-
-    public function provideCrudValues()
-    {
-        return array(
-            'array' => array(array('one', 2, 3.0)),
-            'string' => array('value'),
-            'integer' => array(1),
-            'float' => array(1.5),
-            'object' => array(new ArrayObject()),
-            'null' => array(null),
-        );
-    }
-
-    public function testDeleteAll()
-    {
-        $cache = $this->_getCacheDriver();
-
-        $this->assertTrue($cache->save('key1', 1));
-        $this->assertTrue($cache->save('key2', 2));
-        $this->assertTrue($cache->deleteAll());
-        $this->assertFalse($cache->contains('key1'));
-        $this->assertFalse($cache->contains('key2'));
-    }
-
-    public function testDeleteAllAndNamespaceVersioningBetweenCaches()
-    {
-        if ( ! $this->isSharedStorage()) {
-            $this->markTestSkipped('The ' . __CLASS__ .' does not use shared storage');
-        }
-
-        $cache1 = $this->_getCacheDriver();
-        $cache2 = $this->_getCacheDriver();
-
-        $this->assertTrue($cache1->save('key1', 1));
-        $this->assertTrue($cache2->save('key2', 2));
-
-        /* Both providers are initialized with the same namespace version, so
-         * they can see entries set by each other.
-         */
-        $this->assertTrue($cache1->contains('key1'));
-        $this->assertTrue($cache1->contains('key2'));
-        $this->assertTrue($cache2->contains('key1'));
-        $this->assertTrue($cache2->contains('key2'));
-
-        /* Deleting all entries through one provider will only increment the
-         * namespace version on that object (and in the cache itself, which new
-         * instances will use to initialize). The second provider will retain
-         * its original version and still see stale data.
-         */
-        $this->assertTrue($cache1->deleteAll());
-        $this->assertFalse($cache1->contains('key1'));
-        $this->assertFalse($cache1->contains('key2'));
-        $this->assertTrue($cache2->contains('key1'));
-        $this->assertTrue($cache2->contains('key2'));
-
-        /* A new cache provider should not see the deleted entries, since its
-         * namespace version will be initialized.
-         */
-        $cache3 = $this->_getCacheDriver();
-        $this->assertFalse($cache3->contains('key1'));
-        $this->assertFalse($cache3->contains('key2'));
-    }
-
-    public function testFlushAll()
-    {
-        $cache = $this->_getCacheDriver();
-
-        $this->assertTrue($cache->save('key1', 1));
-        $this->assertTrue($cache->save('key2', 2));
-        $this->assertTrue($cache->flushAll());
-        $this->assertFalse($cache->contains('key1'));
-        $this->assertFalse($cache->contains('key2'));
-    }
-
-    public function testFlushAllAndNamespaceVersioningBetweenCaches()
-    {
-        if ( ! $this->isSharedStorage()) {
-            $this->markTestSkipped('The ' . __CLASS__ .' does not use shared storage');
-        }
-
-        $cache1 = $this->_getCacheDriver();
-        $cache2 = $this->_getCacheDriver();
-
-        /* Deleting all elements from the first provider should increment its
-         * namespace version before saving the first entry.
-         */
-        $cache1->deleteAll();
-        $this->assertTrue($cache1->save('key1', 1));
-
-        /* The second provider will be initialized with the same namespace
-         * version upon its first save operation.
-         */
-        $this->assertTrue($cache2->save('key2', 2));
-
-        /* Both providers have the same namespace version and can see entires
-         * set by each other.
-         */
-        $this->assertTrue($cache1->contains('key1'));
-        $this->assertTrue($cache1->contains('key2'));
-        $this->assertTrue($cache2->contains('key1'));
-        $this->assertTrue($cache2->contains('key2'));
-
-        /* Flushing all entries through one cache will remove all entries from
-         * the cache but leave their namespace version as-is.
-         */
-        $this->assertTrue($cache1->flushAll());
-        $this->assertFalse($cache1->contains('key1'));
-        $this->assertFalse($cache1->contains('key2'));
-        $this->assertFalse($cache2->contains('key1'));
-        $this->assertFalse($cache2->contains('key2'));
-
-        /* Inserting a new entry will use the same, incremented namespace
-         * version, and it will be visible to both providers.
-         */
-        $this->assertTrue($cache1->save('key1', 1));
-        $this->assertTrue($cache1->contains('key1'));
-        $this->assertTrue($cache2->contains('key1'));
-
-        /* A new cache provider will be initialized with the original namespace
-         * version and not share any visibility with the first two providers.
-         */
-        $cache3 = $this->_getCacheDriver();
-        $this->assertFalse($cache3->contains('key1'));
-        $this->assertFalse($cache3->contains('key2'));
-        $this->assertTrue($cache3->save('key3', 3));
-        $this->assertTrue($cache3->contains('key3'));
-    }
-
-    public function testNamespace()
-    {
-        $cache = $this->_getCacheDriver();
-
-        $cache->setNamespace('ns1_');
-
-        $this->assertTrue($cache->save('key1', 1));
-        $this->assertTrue($cache->contains('key1'));
-
-        $cache->setNamespace('ns2_');
-
-        $this->assertFalse($cache->contains('key1'));
-    }
-
-    public function testDeleteAllNamespace()
-    {
-        $cache = $this->_getCacheDriver();
-
-        $cache->setNamespace('ns1');
-        $this->assertFalse($cache->contains('key1'));
-        $cache->save('key1', 'test');
-        $this->assertTrue($cache->contains('key1'));
-
-        $cache->setNamespace('ns2');
-        $this->assertFalse($cache->contains('key1'));
-        $cache->save('key1', 'test');
-        $this->assertTrue($cache->contains('key1'));
-
-        $cache->setNamespace('ns1');
-        $this->assertTrue($cache->contains('key1'));
-        $cache->deleteAll();
-        $this->assertFalse($cache->contains('key1'));
-
-        $cache->setNamespace('ns2');
-        $this->assertTrue($cache->contains('key1'));
-        $cache->deleteAll();
-        $this->assertFalse($cache->contains('key1'));
-    }
-
-    /**
-     * @group DCOM-43
-     */
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertArrayHasKey(Cache::STATS_HITS, $stats);
-        $this->assertArrayHasKey(Cache::STATS_MISSES, $stats);
-        $this->assertArrayHasKey(Cache::STATS_UPTIME, $stats);
-        $this->assertArrayHasKey(Cache::STATS_MEMORY_USAGE, $stats);
-        $this->assertArrayHasKey(Cache::STATS_MEMORY_AVAILABLE, $stats);
-    }
-
-    public function testFetchMissShouldReturnFalse()
-    {
-        $cache = $this->_getCacheDriver();
-
-        /* Ensure that caches return boolean false instead of null on a fetch
-         * miss to be compatible with ORM integration.
-         */
-        $result = $cache->fetch('nonexistent_key');
-
-        $this->assertFalse($result);
-        $this->assertNotNull($result);
-    }
-
-    /**
-     * Return whether multiple cache providers share the same storage.
-     *
-     * This is used for skipping certain tests for shared storage behavior.
-     *
-     * @return boolean
-     */
-    protected function isSharedStorage()
-    {
-        return true;
-    }
-
-    /**
-     * @return \Doctrine\Common\Cache\CacheProvider
-     */
-    abstract protected function _getCacheDriver();
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CouchbaseCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CouchbaseCacheTest.php
deleted file mode 100644
index 40d5a69..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CouchbaseCacheTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Couchbase;
-use Doctrine\Common\Cache\CouchbaseCache;
-
-class CouchbaseCacheTest extends CacheTest
-{
-    private $couchbase;
-
-    public function setUp()
-    {
-        if (extension_loaded('couchbase')) {
-            try {
-                $this->couchbase = new Couchbase('127.0.0.1', 'Administrator', 'password', 'default');
-            } catch(Exception $ex) {
-                 $this->markTestSkipped('Could not instantiate the Couchbase cache because of: ' . $ex);   
-            }
-        } else {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of the couchbase extension');
-        }
-    }
-
-    public function testNoExpire() 
-    {
-        $cache = $this->_getCacheDriver();
-        $cache->save('noexpire', 'value', 0);
-        sleep(1);
-        $this->assertTrue($cache->contains('noexpire'), 'Couchbase provider should support no-expire');
-    }
-
-    public function testLongLifetime()
-    {
-        $cache = $this->_getCacheDriver();
-        $cache->save('key', 'value', 30 * 24 * 3600 + 1);
-
-        $this->assertTrue($cache->contains('key'), 'Couchbase provider should support TTL > 30 days');
-    }
-
-    protected function _getCacheDriver()
-    {
-        $driver = new CouchbaseCache();
-        $driver->setCouchbase($this->couchbase);
-        return $driver;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FileCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FileCacheTest.php
deleted file mode 100644
index 6f9df81..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FileCacheTest.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-/**
- * @group DCOM-101
- */
-class FileCacheTest extends \Doctrine\Tests\DoctrineTestCase
-{
-    /**
-     * @var \Doctrine\Common\Cache\FileCache
-     */
-    private $driver;
-
-    protected function setUp()
-    {
-        $this->driver = $this->getMock(
-            'Doctrine\Common\Cache\FileCache',
-            array('doFetch', 'doContains', 'doSave'),
-            array(), '', false
-        );
-    }
-
-    public function getProviderFileName()
-    {
-         return array(
-            //The characters :\/<>"*?| are not valid in Windows filenames.
-            array('key:1', 'key1'),
-            array('key\2', 'key2'),
-            array('key/3', 'key3'),
-            array('key<4', 'key4'),
-            array('key>5', 'key5'),
-            array('key"6', 'key6'),
-            array('key*7', 'key7'),
-            array('key?8', 'key8'),
-            array('key|9', 'key9'),
-            array('key[0]','key[0]'),
-        );
-    }
-
-    /**
-     * @dataProvider getProviderFileName
-     */
-    public function testInvalidFilename($key, $expected)
-    {
-        $cache  = $this->driver;
-        $method = new \ReflectionMethod($cache, 'getFilename');
-
-        $method->setAccessible(true);
-
-        $value  = $method->invoke($cache, $key);
-        $actual = pathinfo($value, PATHINFO_FILENAME);
-
-        $this->assertEquals($expected, $actual);
-    }
-
-    public function testFilenameCollision()
-    {
-        $data['key:0']  = 'key0';
-        $data['key\0']  = 'key0';
-        $data['key/0']  = 'key0';
-        $data['key<0']  = 'key0';
-        $data['key>0']  = 'key0';
-        $data['key"0']  = 'key0';
-        $data['key*0']  = 'key0';
-        $data['key?0']  = 'key0';
-        $data['key|0']  = 'key0';
-
-        $paths  = array();
-        $cache  = $this->driver;
-        $method = new \ReflectionMethod($cache, 'getFilename');
-
-        $method->setAccessible(true);
-
-        foreach ($data as $key => $expected) {
-            $path   = $method->invoke($cache, $key);
-            $actual = pathinfo($path, PATHINFO_FILENAME);
-
-            $this->assertNotContains($path, $paths);
-            $this->assertEquals($expected, $actual);
-
-            $paths[] = $path;
-        }
-    }
-
-    public function testFilenameShouldCreateThePathWithFourSubDirectories()
-    {
-        $cache          = $this->driver;
-        $method         = new \ReflectionMethod($cache, 'getFilename');
-        $key            = 'item-key';
-        $expectedDir[]  = '84e0e2e893febb73';
-        $expectedDir[]  = '7a0fee0c89d53f4b';
-        $expectedDir[]  = 'b7fcb44c57cdf3d3';
-        $expectedDir[]  = '2ce7363f5d597760';
-        $expectedDir    = implode(DIRECTORY_SEPARATOR, $expectedDir);
-
-        $method->setAccessible(true);
-
-        $path       = $method->invoke($cache, $key);
-        $filename   = pathinfo($path, PATHINFO_FILENAME);
-        $dirname    = pathinfo($path, PATHINFO_DIRNAME);
-
-        $this->assertEquals('item-key', $filename);
-        $this->assertEquals(DIRECTORY_SEPARATOR . $expectedDir, $dirname);
-        $this->assertEquals(DIRECTORY_SEPARATOR . $expectedDir . DIRECTORY_SEPARATOR . $key, $path);
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php
deleted file mode 100644
index e3b74cd..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\Cache;
-use Doctrine\Common\Cache\FilesystemCache;
-
-/**
- * @group DCOM-101
- */
-class FilesystemCacheTest extends BaseFileCacheTest
-{
-    public function testLifetime()
-    {
-        $cache = $this->_getCacheDriver();
-
-        // Test save
-        $cache->save('test_key', 'testing this out', 10);
-
-        // Test contains to test that save() worked
-        $this->assertTrue($cache->contains('test_key'));
-
-        // Test fetch
-        $this->assertEquals('testing this out', $cache->fetch('test_key'));
-
-        // access private methods
-        $getFilename        = new \ReflectionMethod($cache, 'getFilename');
-        $getNamespacedId    = new \ReflectionMethod($cache, 'getNamespacedId');
-
-        $getFilename->setAccessible(true);
-        $getNamespacedId->setAccessible(true);
-
-        $id         = $getNamespacedId->invoke($cache, 'test_key');
-        $filename   = $getFilename->invoke($cache, $id);
-
-        $data       = '';
-        $lifetime   = 0;
-        $resource   = fopen($filename, "r");
-
-        if (false !== ($line = fgets($resource))) {
-            $lifetime = (integer) $line;
-        }
-
-        while (false !== ($line = fgets($resource))) {
-            $data .= $line;
-        }
-
-        $this->assertNotEquals(0, $lifetime, "previous lifetime could not be loaded");
-
-        // update lifetime
-        $lifetime = $lifetime - 20;
-        file_put_contents($filename, $lifetime . PHP_EOL . $data);
-
-        // test expired data
-        $this->assertFalse($cache->contains('test_key'));
-        $this->assertFalse($cache->fetch('test_key'));
-    }
-
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertNull($stats[Cache::STATS_HITS]);
-        $this->assertNull($stats[Cache::STATS_MISSES]);
-        $this->assertNull($stats[Cache::STATS_UPTIME]);
-        $this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
-        $this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_AVAILABLE]);
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new FilesystemCache($this->directory);
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcacheCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcacheCacheTest.php
deleted file mode 100644
index b0da1b9..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcacheCacheTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\MemcacheCache;
-use Memcache;
-
-class MemcacheCacheTest extends CacheTest
-{
-    private $memcache;
-
-    public function setUp()
-    {
-        if ( ! extension_loaded('memcache')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of memcache');
-        }
-
-        $this->memcache = new Memcache();
-
-        if (@$this->memcache->connect('localhost', 11211) === false) {
-            unset($this->memcache);
-            $this->markTestSkipped('The ' . __CLASS__ .' cannot connect to memcache');
-        }
-    }
-
-    public function tearDown()
-    {
-        if ($this->memcache instanceof Memcache) {
-            $this->memcache->flush();
-        }
-    }
-
-    public function testNoExpire()
-    {
-        $cache = $this->_getCacheDriver();
-        $cache->save('noexpire', 'value', 0);
-        sleep(1);
-        $this->assertTrue($cache->contains('noexpire'), 'Memcache provider should support no-expire');
-    }
-
-    public function testLongLifetime()
-    {
-        $cache = $this->_getCacheDriver();
-        $cache->save('key', 'value', 30 * 24 * 3600 + 1);
-        $this->assertTrue($cache->contains('key'), 'Memcache provider should support TTL > 30 days');
-    }
-
-    protected function _getCacheDriver()
-    {
-        $driver = new MemcacheCache();
-        $driver->setMemcache($this->memcache);
-        return $driver;
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcachedCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcachedCacheTest.php
deleted file mode 100644
index 071329f..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcachedCacheTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\MemcachedCache;
-use Memcached;
-
-class MemcachedCacheTest extends CacheTest
-{
-    private $memcached;
-
-    public function setUp()
-    {
-        if ( ! extension_loaded('memcached')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of memcached');
-        }
-
-        $this->memcached = new Memcached();
-        $this->memcached->setOption(Memcached::OPT_COMPRESSION, false);
-        $this->memcached->addServer('127.0.0.1', 11211);
-
-        if (@fsockopen('127.0.0.1', 11211) === false) {
-            unset($this->memcached);
-            $this->markTestSkipped('The ' . __CLASS__ .' cannot connect to memcache');
-        }
-    }
-
-    public function tearDown()
-    {
-        if ($this->memcached instanceof Memcached) {
-            $this->memcached->flush();
-        }
-    }
-
-    public function testNoExpire()
-    {
-        $cache = $this->_getCacheDriver();
-        $cache->save('noexpire', 'value', 0);
-        sleep(1);
-        $this->assertTrue($cache->contains('noexpire'), 'Memcache provider should support no-expire');
-    }
-
-    public function testLongLifetime()
-    {
-        $cache = $this->_getCacheDriver();
-        $cache->save('key', 'value', 30 * 24 * 3600 + 1);
-        $this->assertTrue($cache->contains('key'), 'Memcache provider should support TTL > 30 days');
-    }
-
-    protected function _getCacheDriver()
-    {
-        $driver = new MemcachedCache();
-        $driver->setMemcached($this->memcached);
-        return $driver;
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MongoDBCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MongoDBCacheTest.php
deleted file mode 100644
index 8c2f6e0..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MongoDBCacheTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\Cache;
-use Doctrine\Common\Cache\MongoDBCache;
-use MongoClient;
-use MongoCollection;
-
-class MongoDBCacheTest extends CacheTest
-{
-    /**
-     * @var MongoCollection
-     */
-    private $collection;
-
-    public function setUp()
-    {
-        if ( ! version_compare(phpversion('mongo'), '1.3.0', '>=')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of mongo >= 1.3.0');
-        }
-
-        $mongo = new MongoClient();
-        $this->collection = $mongo->selectCollection('doctrine_common_cache', 'test');
-    }
-
-    public function tearDown()
-    {
-        if ($this->collection instanceof MongoCollection) {
-            $this->collection->drop();
-        }
-    }
-
-    public function testSaveWithNonUtf8String()
-    {
-        // Invalid 2-octet sequence
-        $data = "\xc3\x28";
-
-        $cache = $this->_getCacheDriver();
-
-        $this->assertTrue($cache->save('key', $data));
-        $this->assertEquals($data, $cache->fetch('key'));
-    }
-
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertNull($stats[Cache::STATS_HITS]);
-        $this->assertNull($stats[Cache::STATS_MISSES]);
-        $this->assertGreaterThan(0, $stats[Cache::STATS_UPTIME]);
-        $this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
-        $this->assertNull($stats[Cache::STATS_MEMORY_AVAILABLE]);
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new MongoDBCache($this->collection);
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PhpFileCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PhpFileCacheTest.php
deleted file mode 100644
index f49ce25..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PhpFileCacheTest.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\Cache;
-use Doctrine\Common\Cache\PhpFileCache;
-
-/**
- * @group DCOM-101
- */
-class PhpFileCacheTest extends BaseFileCacheTest
-{
-    public function testLifetime()
-    {
-        $cache = $this->_getCacheDriver();
-
-        // Test save
-        $cache->save('test_key', 'testing this out', 10);
-
-        // Test contains to test that save() worked
-        $this->assertTrue($cache->contains('test_key'));
-
-        // Test fetch
-        $this->assertEquals('testing this out', $cache->fetch('test_key'));
-
-        // access private methods
-        $getFilename        = new \ReflectionMethod($cache, 'getFilename');
-        $getNamespacedId    = new \ReflectionMethod($cache, 'getNamespacedId');
-
-        $getFilename->setAccessible(true);
-        $getNamespacedId->setAccessible(true);
-
-        $id     = $getNamespacedId->invoke($cache, 'test_key');
-        $path   = $getFilename->invoke($cache, $id);
-        $value  = include $path;
-
-        // update lifetime
-        $value['lifetime'] = $value['lifetime'] - 20;
-        file_put_contents($path, '<?php return unserialize(' . var_export(serialize($value), true) . ');');
-
-        // test expired data
-        $this->assertFalse($cache->contains('test_key'));
-        $this->assertFalse($cache->fetch('test_key'));
-    }
-
-    public function testImplementsSetState()
-    {
-        $cache = $this->_getCacheDriver();
-
-        // Test save
-        $cache->save('test_set_state', new SetStateClass(array(1,2,3)));
-
-        //Test __set_state call
-        $this->assertCount(0, SetStateClass::$values);
-
-        // Test fetch
-        $value = $cache->fetch('test_set_state');
-        $this->assertInstanceOf('Doctrine\Tests\Common\Cache\SetStateClass', $value);
-        $this->assertEquals(array(1,2,3), $value->getValue());
-
-        //Test __set_state call
-        $this->assertCount(1, SetStateClass::$values);
-
-        // Test contains
-        $this->assertTrue($cache->contains('test_set_state'));
-    }
-
-    public function testNotImplementsSetState()
-    {
-        $cache = $this->_getCacheDriver();
-
-        $this->setExpectedException('InvalidArgumentException');
-        $cache->save('test_not_set_state', new NotSetStateClass(array(1,2,3)));
-    }
-
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertNull($stats[Cache::STATS_HITS]);
-        $this->assertNull($stats[Cache::STATS_MISSES]);
-        $this->assertNull($stats[Cache::STATS_UPTIME]);
-        $this->assertEquals(0, $stats[Cache::STATS_MEMORY_USAGE]);
-        $this->assertGreaterThan(0, $stats[Cache::STATS_MEMORY_AVAILABLE]);
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new PhpFileCache($this->directory);
-    }
-}
-
-class NotSetStateClass
-{
-    private $value;
-
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-
-    public function getValue()
-    {
-        return $this->value;
-    }
-}
-
-class SetStateClass extends NotSetStateClass
-{
-    public static $values = array();
-
-    public static function __set_state($data)
-    {
-        self::$values = $data;
-        return new self($data['value']);
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RedisCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RedisCacheTest.php
deleted file mode 100644
index 45bbc75..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RedisCacheTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\RedisCache;
-
-class RedisCacheTest extends CacheTest
-{
-    private $_redis;
-
-    public function setUp()
-    {
-        if (extension_loaded('redis')) {
-            $this->_redis = new \Redis();
-            $ok = @$this->_redis->connect('127.0.0.1');
-            if (!$ok) {
-                $this->markTestSkipped('The ' . __CLASS__ .' requires the use of redis');
-            }
-        } else {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of redis');
-        }
-    }
-
-    protected function _getCacheDriver()
-    {
-        $driver = new RedisCache();
-        $driver->setRedis($this->_redis);
-        return $driver;
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RiakCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RiakCacheTest.php
deleted file mode 100644
index dce8cc0..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RiakCacheTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Riak\Bucket;
-use Riak\Connection;
-use Riak\Exception;
-use Doctrine\Common\Cache\RiakCache;
-
-/**
- * RiakCache test
- *
- * @group Riak
- */
-class RiakCacheTest extends CacheTest
-{
-    /**
-     * @var \Riak\Connection
-     */
-    private $connection;
-
-    /**
-     * @var \Riak\Bucket
-     */
-    private $bucket;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setUp()
-    {
-        if ( ! extension_loaded('riak')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of Riak');
-        }
-
-        try {
-            $this->connection = new Connection('127.0.0.1', 8087);
-            $this->bucket     = new Bucket($this->connection, 'test');
-        } catch (Exception\RiakException $e) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of Riak');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertNull($stats);
-    }
-
-    /**
-     * Retrieve RiakCache instance.
-     *
-     * @return \Doctrine\Common\Cache\RiakCache
-     */
-    protected function _getCacheDriver()
-    {
-        return new RiakCache($this->bucket);
-    }
-}
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/WinCacheCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/WinCacheCacheTest.php
deleted file mode 100644
index cb363df..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/WinCacheCacheTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\WincacheCache;
-
-class WincacheCacheTest extends CacheTest
-{
-    public function setUp()
-    {
-        if ( ! extension_loaded('wincache') || ! function_exists('wincache_ucache_info')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of Wincache');
-        }
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new WincacheCache();
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/XcacheCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/XcacheCacheTest.php
deleted file mode 100644
index 6259848..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/XcacheCacheTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\XcacheCache;
-
-class XcacheCacheTest extends CacheTest
-{
-    public function setUp()
-    {
-        if ( ! extension_loaded('xcache')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of xcache');
-        }
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new XcacheCache();
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ZendDataCacheTest.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ZendDataCacheTest.php
deleted file mode 100644
index cd66e15..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ZendDataCacheTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Cache;
-
-use Doctrine\Common\Cache\ZendDataCache;
-
-class ZendDataCacheTest extends CacheTest
-{
-    public function setUp()
-    {
-        if (!function_exists('zend_shm_cache_fetch') || (php_sapi_name() != 'apache2handler')) {
-            $this->markTestSkipped('The ' . __CLASS__ .' requires the use of Zend Data Cache which only works in apache2handler SAPI');
-        }
-    }
-
-    public function testGetStats()
-    {
-        $cache = $this->_getCacheDriver();
-        $stats = $cache->getStats();
-
-        $this->assertNull($stats);
-    }
-
-    protected function _getCacheDriver()
-    {
-        return new ZendDataCache();
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/DoctrineTestCase.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/DoctrineTestCase.php
deleted file mode 100644
index e8323d2..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/DoctrineTestCase.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests;
-
-/**
- * Base testcase class for all Doctrine testcases.
- */
-abstract class DoctrineTestCase extends \PHPUnit_Framework_TestCase
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/cache/tests/Doctrine/Tests/TestInit.php b/core/vendor/doctrine/cache/tests/Doctrine/Tests/TestInit.php
deleted file mode 100644
index 1bbfa94..0000000
--- a/core/vendor/doctrine/cache/tests/Doctrine/Tests/TestInit.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/*
- * This file bootstraps the test environment.
- */
-error_reporting(E_ALL | E_STRICT);
-
-if (file_exists(__DIR__ . '/../../../vendor/autoload.php')) {
-    // dependencies were installed via composer - this is the main project
-    $classLoader = require __DIR__ . '/../../../vendor/autoload.php';
-} elseif (file_exists(__DIR__ . '/../../../../../autoload.php')) {
-    // installed as a dependency in `vendor`
-    $classLoader = require __DIR__ . '/../../../../../autoload.php';
-} else {
-    throw new Exception('Can\'t find autoload.php. Did you install dependencies via Composer?');
-}
-
-/* @var $classLoader \Composer\Autoload\ClassLoader */
-$classLoader->add('Doctrine\\Tests\\', __DIR__ . '/../../');
-unset($classLoader);
diff --git a/core/vendor/doctrine/cache/tests/travis/php.ini b/core/vendor/doctrine/cache/tests/travis/php.ini
deleted file mode 100644
index ef5d9a1..0000000
--- a/core/vendor/doctrine/cache/tests/travis/php.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-extension="mongo.so"
-extension="memcache.so"
-extension="memcached.so"
-
-apc.enabled=1
-apc.enable_cli=1
diff --git a/core/vendor/doctrine/cache/tests/travis/phpunit.travis.xml b/core/vendor/doctrine/cache/tests/travis/phpunit.travis.xml
deleted file mode 100644
index a01faa5..0000000
--- a/core/vendor/doctrine/cache/tests/travis/phpunit.travis.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit bootstrap="../Doctrine/Tests/TestInit.php"
-        convertWarningsToExceptions="true"
-        convertNoticesToExceptions="true"
-        convertErrorsToExceptions="true"
-        backupStaticAttributes="false"
-        processIsolation="false"
-        stopOnFailure="false"
-        backupGlobals="false"
-        syntaxCheck="false"
-        colors="true">
-
-    <logging>
-        <log type="coverage-clover" target="../../build/logs/clover.xml"/>
-    </logging>
-
-    <testsuites>
-        <testsuite name="Doctrine Cache Test Suite">
-            <directory>../Doctrine/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>../../lib/Doctrine/</directory>
-        </whitelist>
-    </filter>
-    
-    <groups>
-        <exclude>
-            <group>performance</group>
-        </exclude>
-    </groups>
-</phpunit>
diff --git a/core/vendor/doctrine/collections/.gitignore b/core/vendor/doctrine/collections/.gitignore
deleted file mode 100644
index 48b8bf9..0000000
--- a/core/vendor/doctrine/collections/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-vendor/
diff --git a/core/vendor/doctrine/collections/.travis.yml b/core/vendor/doctrine/collections/.travis.yml
deleted file mode 100644
index 470c987..0000000
--- a/core/vendor/doctrine/collections/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-language: php
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - hhvm
-
-before_script:
-    - composer --prefer-source --dev install
diff --git a/core/vendor/doctrine/collections/LICENSE b/core/vendor/doctrine/collections/LICENSE
deleted file mode 100644
index 5e781fc..0000000
--- a/core/vendor/doctrine/collections/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2006-2013 Doctrine Project
-
-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/core/vendor/doctrine/collections/README.md b/core/vendor/doctrine/collections/README.md
deleted file mode 100644
index 627d45b..0000000
--- a/core/vendor/doctrine/collections/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Doctrine Collections
-
-Collections Abstraction library
-
-## Changelog
-
-### v1.2
-
-* Add a new ``AbstractLazyCollection``
-
-### v1.1
-
-* Deprecated ``Comparison::IS``, because it's only there for SQL semantics.
-  These are fixed in the ORM instead.
-* Add ``Comparison::CONTAINS`` to perform partial string matches:
-
-        $criteria->andWhere($criteria->expr()->contains('property', 'Foo'));
diff --git a/core/vendor/doctrine/collections/composer.json b/core/vendor/doctrine/collections/composer.json
deleted file mode 100644
index dd30961..0000000
--- a/core/vendor/doctrine/collections/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "name": "doctrine/collections",
-    "type": "library",
-    "description": "Collections Abstraction library",
-    "keywords": ["collections", "array", "iterator"],
-    "homepage": "http://www.doctrine-project.org",
-    "license": "MIT",
-    "authors": [
-        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
-        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
-        {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
-        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
-        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.3.2"
-    },
-    "autoload": {
-        "psr-0": { "Doctrine\\Common\\Collections\\": "lib/" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.2.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php
deleted file mode 100644
index 0052a29..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php
+++ /dev/null
@@ -1,343 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections;
-
-use Closure;
-
-/**
- * Lazy collection that is backed by a concrete collection
- *
- * @author Michaël Gallego <mic.gallego@gmail.com>
- * @since  1.2
- */
-abstract class AbstractLazyCollection implements Collection
-{
-    /**
-     * The backed collection to use
-     *
-     * @var Collection
-     */
-    protected $collection;
-
-    /**
-     * @var bool
-     */
-    private $initialized = false;
-
-    /**
-     * {@inheritDoc}
-     */
-    public function count()
-    {
-        $this->initialize();
-        return $this->collection->count();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function add($element)
-    {
-        $this->initialize();
-        return $this->collection->add($element);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function clear()
-    {
-        $this->initialize();
-        $this->collection->clear();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function contains($element)
-    {
-        $this->initialize();
-        return $this->collection->contains($element);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isEmpty()
-    {
-        $this->initialize();
-        return $this->collection->isEmpty();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function remove($key)
-    {
-        $this->initialize();
-        return $this->collection->remove($key);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function removeElement($element)
-    {
-        $this->initialize();
-        return $this->collection->removeElement($element);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function containsKey($key)
-    {
-        $this->initialize();
-        return $this->collection->containsKey($key);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function get($key)
-    {
-        $this->initialize();
-        return $this->collection->get($key);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getKeys()
-    {
-        $this->initialize();
-        return $this->collection->getKeys();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getValues()
-    {
-        $this->initialize();
-        return $this->collection->getValues();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function set($key, $value)
-    {
-        $this->initialize();
-        $this->collection->set($key, $value);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function toArray()
-    {
-        $this->initialize();
-        return $this->collection->toArray();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function first()
-    {
-        $this->initialize();
-        return $this->collection->first();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function last()
-    {
-        $this->initialize();
-        return $this->collection->last();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function key()
-    {
-        $this->initialize();
-        return $this->collection->key();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function current()
-    {
-        $this->initialize();
-        return $this->collection->current();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function next()
-    {
-        $this->initialize();
-        return $this->collection->next();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function exists(Closure $p)
-    {
-        $this->initialize();
-        return $this->collection->exists($p);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function filter(Closure $p)
-    {
-        $this->initialize();
-        return $this->collection->filter($p);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function forAll(Closure $p)
-    {
-        $this->initialize();
-        return $this->collection->forAll($p);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function map(Closure $func)
-    {
-        $this->initialize();
-        return $this->collection->map($func);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function partition(Closure $p)
-    {
-        $this->initialize();
-        return $this->collection->partition($p);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function indexOf($element)
-    {
-        $this->initialize();
-        return $this->collection->indexOf($element);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function slice($offset, $length = null)
-    {
-        $this->initialize();
-        return $this->collection->slice($offset, $length);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getIterator()
-    {
-        $this->initialize();
-        return $this->collection->getIterator();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function offsetExists($offset)
-    {
-        $this->initialize();
-        return $this->collection->offsetExists($offset);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function offsetGet($offset)
-    {
-        $this->initialize();
-        return $this->collection->offsetGet($offset);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function offsetSet($offset, $value)
-    {
-        $this->initialize();
-        $this->collection->offsetSet($offset, $value);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function offsetUnset($offset)
-    {
-        $this->initialize();
-        $this->collection->offsetUnset($offset);
-    }
-
-    /**
-     * Is the lazy collection already initialized?
-     *
-     * @return bool
-     */
-    public function isInitialized()
-    {
-        return $this->initialized;
-    }
-
-    /**
-     * Initialize the collection
-     *
-     * @return void
-     */
-    protected function initialize()
-    {
-        if (!$this->initialized) {
-            $this->doInitialize();
-            $this->initialized = true;
-        }
-    }
-
-    /**
-     * Do the initialization logic
-     *
-     * @return void
-     */
-    abstract protected function doInitialize();
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php
deleted file mode 100644
index 9c2c8e1..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php
+++ /dev/null
@@ -1,385 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections;
-
-use Closure, ArrayIterator;
-use Doctrine\Common\Collections\Expr\ClosureExpressionVisitor;
-
-/**
- * An ArrayCollection is a Collection implementation that wraps a regular PHP array.
- *
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class ArrayCollection implements Collection, Selectable
-{
-    /**
-     * An array containing the entries of this collection.
-     *
-     * @var array
-     */
-    private $_elements;
-
-    /**
-     * Initializes a new ArrayCollection.
-     *
-     * @param array $elements
-     */
-    public function __construct(array $elements = array())
-    {
-        $this->_elements = $elements;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function toArray()
-    {
-        return $this->_elements;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function first()
-    {
-        return reset($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function last()
-    {
-        return end($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function key()
-    {
-        return key($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function next()
-    {
-        return next($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function current()
-    {
-        return current($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function remove($key)
-    {
-        if (isset($this->_elements[$key]) || array_key_exists($key, $this->_elements)) {
-            $removed = $this->_elements[$key];
-            unset($this->_elements[$key]);
-
-            return $removed;
-        }
-
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function removeElement($element)
-    {
-        $key = array_search($element, $this->_elements, true);
-
-        if ($key !== false) {
-            unset($this->_elements[$key]);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Required by interface ArrayAccess.
-     *
-     * {@inheritDoc}
-     */
-    public function offsetExists($offset)
-    {
-        return $this->containsKey($offset);
-    }
-
-    /**
-     * Required by interface ArrayAccess.
-     *
-     * {@inheritDoc}
-     */
-    public function offsetGet($offset)
-    {
-        return $this->get($offset);
-    }
-
-    /**
-     * Required by interface ArrayAccess.
-     *
-     * {@inheritDoc}
-     */
-    public function offsetSet($offset, $value)
-    {
-        if ( ! isset($offset)) {
-            return $this->add($value);
-        }
-        return $this->set($offset, $value);
-    }
-
-    /**
-     * Required by interface ArrayAccess.
-     *
-     * {@inheritDoc}
-     */
-    public function offsetUnset($offset)
-    {
-        return $this->remove($offset);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function containsKey($key)
-    {
-        return isset($this->_elements[$key]) || array_key_exists($key, $this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function contains($element)
-    {
-        return in_array($element, $this->_elements, true);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function exists(Closure $p)
-    {
-        foreach ($this->_elements as $key => $element) {
-            if ($p($key, $element)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function indexOf($element)
-    {
-        return array_search($element, $this->_elements, true);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function get($key)
-    {
-        if (isset($this->_elements[$key])) {
-            return $this->_elements[$key];
-        }
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getKeys()
-    {
-        return array_keys($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getValues()
-    {
-        return array_values($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function count()
-    {
-        return count($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function set($key, $value)
-    {
-        $this->_elements[$key] = $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function add($value)
-    {
-        $this->_elements[] = $value;
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isEmpty()
-    {
-        return ! $this->_elements;
-    }
-
-    /**
-     * Required by interface IteratorAggregate.
-     *
-     * {@inheritDoc}
-     */
-    public function getIterator()
-    {
-        return new ArrayIterator($this->_elements);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function map(Closure $func)
-    {
-        return new static(array_map($func, $this->_elements));
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function filter(Closure $p)
-    {
-        return new static(array_filter($this->_elements, $p));
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function forAll(Closure $p)
-    {
-        foreach ($this->_elements as $key => $element) {
-            if ( ! $p($key, $element)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function partition(Closure $p)
-    {
-        $coll1 = $coll2 = array();
-        foreach ($this->_elements as $key => $element) {
-            if ($p($key, $element)) {
-                $coll1[$key] = $element;
-            } else {
-                $coll2[$key] = $element;
-            }
-        }
-        return array(new static($coll1), new static($coll2));
-    }
-
-    /**
-     * Returns a string representation of this object.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return __CLASS__ . '@' . spl_object_hash($this);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function clear()
-    {
-        $this->_elements = array();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function slice($offset, $length = null)
-    {
-        return array_slice($this->_elements, $offset, $length, true);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function matching(Criteria $criteria)
-    {
-        $expr     = $criteria->getWhereExpression();
-        $filtered = $this->_elements;
-
-        if ($expr) {
-            $visitor  = new ClosureExpressionVisitor();
-            $filter   = $visitor->dispatch($expr);
-            $filtered = array_filter($filtered, $filter);
-        }
-
-        if ($orderings = $criteria->getOrderings()) {
-            $next = null;
-            foreach (array_reverse($orderings) as $field => $ordering) {
-                $next = ClosureExpressionVisitor::sortByField($field, $ordering == 'DESC' ? -1 : 1, $next);
-            }
-
-            usort($filtered, $next);
-        }
-
-        $offset = $criteria->getFirstResult();
-        $length = $criteria->getMaxResults();
-
-        if ($offset || $length) {
-            $filtered = array_slice($filtered, (int)$offset, $length);
-        }
-
-        return new static($filtered);
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php
deleted file mode 100644
index a0808b3..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php
+++ /dev/null
@@ -1,260 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections;
-
-use Closure, Countable, IteratorAggregate, ArrayAccess;
-
-/**
- * The missing (SPL) Collection/Array/OrderedMap interface.
- *
- * A Collection resembles the nature of a regular PHP array. That is,
- * it is essentially an <b>ordered map</b> that can also be used
- * like a list.
- *
- * A Collection has an internal iterator just like a PHP array. In addition,
- * a Collection can be iterated with external iterators, which is preferrable.
- * To use an external iterator simply use the foreach language construct to
- * iterate over the collection (which calls {@link getIterator()} internally) or
- * explicitly retrieve an iterator though {@link getIterator()} which can then be
- * used to iterate over the collection.
- * You can not rely on the internal iterator of the collection being at a certain
- * position unless you explicitly positioned it before. Prefer iteration with
- * external iterators.
- *
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-interface Collection extends Countable, IteratorAggregate, ArrayAccess
-{
-    /**
-     * Adds an element at the end of the collection.
-     *
-     * @param mixed $element The element to add.
-     *
-     * @return boolean Always TRUE.
-     */
-    function add($element);
-
-    /**
-     * Clears the collection, removing all elements.
-     *
-     * @return void
-     */
-    function clear();
-
-    /**
-     * Checks whether an element is contained in the collection.
-     * This is an O(n) operation, where n is the size of the collection.
-     *
-     * @param mixed $element The element to search for.
-     *
-     * @return boolean TRUE if the collection contains the element, FALSE otherwise.
-     */
-    function contains($element);
-
-    /**
-     * Checks whether the collection is empty (contains no elements).
-     *
-     * @return boolean TRUE if the collection is empty, FALSE otherwise.
-     */
-    function isEmpty();
-
-    /**
-     * Removes the element at the specified index from the collection.
-     *
-     * @param string|integer $key The kex/index of the element to remove.
-     *
-     * @return mixed The removed element or NULL, if the collection did not contain the element.
-     */
-    function remove($key);
-
-    /**
-     * Removes the specified element from the collection, if it is found.
-     *
-     * @param mixed $element The element to remove.
-     *
-     * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
-     */
-    function removeElement($element);
-
-    /**
-     * Checks whether the collection contains an element with the specified key/index.
-     *
-     * @param string|integer $key The key/index to check for.
-     *
-     * @return boolean TRUE if the collection contains an element with the specified key/index,
-     *                 FALSE otherwise.
-     */
-    function containsKey($key);
-
-    /**
-     * Gets the element at the specified key/index.
-     *
-     * @param string|integer $key The key/index of the element to retrieve.
-     *
-     * @return mixed
-     */
-    function get($key);
-
-    /**
-     * Gets all keys/indices of the collection.
-     *
-     * @return array The keys/indices of the collection, in the order of the corresponding
-     *               elements in the collection.
-     */
-    function getKeys();
-
-    /**
-     * Gets all values of the collection.
-     *
-     * @return array The values of all elements in the collection, in the order they
-     *               appear in the collection.
-     */
-    function getValues();
-
-    /**
-     * Sets an element in the collection at the specified key/index.
-     *
-     * @param string|integer $key   The key/index of the element to set.
-     * @param mixed          $value The element to set.
-     *
-     * @return void
-     */
-    function set($key, $value);
-
-    /**
-     * Gets a native PHP array representation of the collection.
-     *
-     * @return array
-     */
-    function toArray();
-
-    /**
-     * Sets the internal iterator to the first element in the collection and returns this element.
-     *
-     * @return mixed
-     */
-    function first();
-
-    /**
-     * Sets the internal iterator to the last element in the collection and returns this element.
-     *
-     * @return mixed
-     */
-    function last();
-
-    /**
-     * Gets the key/index of the element at the current iterator position.
-     *
-     * @return int|string
-     */
-    function key();
-
-    /**
-     * Gets the element of the collection at the current iterator position.
-     *
-     * @return mixed
-     */
-    function current();
-
-    /**
-     * Moves the internal iterator position to the next element and returns this element.
-     *
-     * @return mixed
-     */
-    function next();
-
-    /**
-     * Tests for the existence of an element that satisfies the given predicate.
-     *
-     * @param Closure $p The predicate.
-     *
-     * @return boolean TRUE if the predicate is TRUE for at least one element, FALSE otherwise.
-     */
-    function exists(Closure $p);
-
-    /**
-     * Returns all the elements of this collection that satisfy the predicate p.
-     * The order of the elements is preserved.
-     *
-     * @param Closure $p The predicate used for filtering.
-     *
-     * @return Collection A collection with the results of the filter operation.
-     */
-    function filter(Closure $p);
-
-    /**
-     * Tests whether the given predicate p holds for all elements of this collection.
-     * 
-     * @param Closure $p The predicate.
-     *
-     * @return boolean TRUE, if the predicate yields TRUE for all elements, FALSE otherwise.
-     */
-    function forAll(Closure $p);
-
-    /**
-     * Applies the given function to each element in the collection and returns
-     * a new collection with the elements returned by the function.
-     *
-     * @param Closure $func
-     *
-     * @return Collection
-     */
-    function map(Closure $func);
-
-    /**
-     * Partitions this collection in two collections according to a predicate.
-     * Keys are preserved in the resulting collections.
-     *
-     * @param Closure $p The predicate on which to partition.
-     *
-     * @return array An array with two elements. The first element contains the collection
-     *               of elements where the predicate returned TRUE, the second element
-     *               contains the collection of elements where the predicate returned FALSE.
-     */
-    function partition(Closure $p);
-
-    /**
-     * Gets the index/key of a given element. The comparison of two elements is strict,
-     * that means not only the value but also the type must match.
-     * For objects this means reference equality.
-     *
-     * @param mixed $element The element to search for.
-     *
-     * @return int|string|bool The key/index of the element or FALSE if the element was not found.
-     */
-    function indexOf($element);
-
-    /**
-     * Extracts a slice of $length elements starting at position $offset from the Collection.
-     *
-     * If $length is null it returns all elements from $offset to the end of the Collection.
-     * Keys have to be preserved by this method. Calling this method will only return the
-     * selected slice and NOT change the elements contained in the collection slice is called on.
-     *
-     * @param int      $offset The offset to start from.
-     * @param int|null $length The maximum number of elements to return, or null for no limit.
-     *
-     * @return array
-     */
-    function slice($offset, $length = null);
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php
deleted file mode 100644
index 42929bd..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections;
-
-use Doctrine\Common\Collections\Expr\Expression;
-use Doctrine\Common\Collections\Expr\CompositeExpression;
-
-/**
- * Criteria for filtering Selectable collections.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since 2.3
- */
-class Criteria
-{
-    /**
-     * @var string
-     */
-    const ASC  = 'ASC';
-
-    /**
-     * @var string
-     */
-    const DESC = 'DESC';
-
-    /**
-     * @var \Doctrine\Common\Collections\ExpressionBuilder|null
-     */
-    private static $expressionBuilder;
-
-    /**
-     * @var \Doctrine\Common\Collections\Expr\Expression|null
-     */
-    private $expression;
-
-    /**
-     * @var array|null
-     */
-    private $orderings;
-
-    /**
-     * @var int|null
-     */
-    private $firstResult;
-
-    /**
-     * @var int|null
-     */
-    private $maxResults;
-
-    /**
-     * Creates an instance of the class.
-     *
-     * @return Criteria
-     */
-    public static function create()
-    {
-        return new static();
-    }
-
-    /**
-     * Returns the expression builder.
-     *
-     * @return \Doctrine\Common\Collections\ExpressionBuilder
-     */
-    public static function expr()
-    {
-        if (self::$expressionBuilder === null) {
-            self::$expressionBuilder = new ExpressionBuilder();
-        }
-        return self::$expressionBuilder;
-    }
-
-    /**
-     * Construct a new Criteria.
-     *
-     * @param Expression $expression
-     * @param array|null $orderings
-     * @param int|null   $firstResult
-     * @param int|null   $maxResults
-     */
-    public function __construct(Expression $expression = null, array $orderings = null, $firstResult = null, $maxResults = null)
-    {
-        $this->expression  = $expression;
-        $this->orderings   = $orderings;
-        $this->firstResult = $firstResult;
-        $this->maxResults  = $maxResults;
-    }
-
-    /**
-     * Sets the where expression to evaluate when this Criteria is searched for.
-     *
-     * @param Expression $expression
-     *
-     * @return Criteria
-     */
-    public function where(Expression $expression)
-    {
-        $this->expression = $expression;
-        return $this;
-    }
-
-    /**
-     * Appends the where expression to evaluate when this Criteria is searched for
-     * using an AND with previous expression.
-     *
-     * @param Expression $expression
-     *
-     * @return Criteria
-     */
-    public function andWhere(Expression $expression)
-    {
-        if ($this->expression === null) {
-            return $this->where($expression);
-        }
-
-        $this->expression = new CompositeExpression(CompositeExpression::TYPE_AND, array(
-            $this->expression, $expression
-        ));
-
-        return $this;
-    }
-
-    /**
-     * Appends the where expression to evaluate when this Criteria is searched for
-     * using an OR with previous expression.
-     *
-     * @param Expression $expression
-     *
-     * @return Criteria
-     */
-    public function orWhere(Expression $expression)
-    {
-        if ($this->expression === null) {
-            return $this->where($expression);
-        }
-
-        $this->expression = new CompositeExpression(CompositeExpression::TYPE_OR, array(
-            $this->expression, $expression
-        ));
-
-        return $this;
-    }
-
-    /**
-     * Gets the expression attached to this Criteria.
-     *
-     * @return Expression|null
-     */
-    public function getWhereExpression()
-    {
-        return $this->expression;
-    }
-
-    /**
-     * Gets the current orderings of this Criteria.
-     *
-     * @return array
-     */
-    public function getOrderings()
-    {
-        return $this->orderings;
-    }
-
-    /**
-     * Sets the ordering of the result of this Criteria.
-     *
-     * Keys are field and values are the order, being either ASC or DESC.
-     *
-     * @see Criteria::ASC
-     * @see Criteria::DESC
-     *
-     * @param array $orderings
-     *
-     * @return Criteria
-     */
-    public function orderBy(array $orderings)
-    {
-        $this->orderings = $orderings;
-        return $this;
-    }
-
-    /**
-     * Gets the current first result option of this Criteria.
-     *
-     * @return int|null
-     */
-    public function getFirstResult()
-    {
-        return $this->firstResult;
-    }
-
-    /**
-     * Set the number of first result that this Criteria should return.
-     *
-     * @param int|null $firstResult The value to set.
-     *
-     * @return Criteria
-     */
-    public function setFirstResult($firstResult)
-    {
-        $this->firstResult = $firstResult;
-        return $this;
-    }
-
-    /**
-     * Gets maxResults.
-     *
-     * @return int|null
-     */
-    public function getMaxResults()
-    {
-        return $this->maxResults;
-    }
-
-    /**
-     * Sets maxResults.
-     *
-     * @param int|null $maxResults The value to set.
-     *
-     * @return Criteria
-     */
-    public function setMaxResults($maxResults)
-    {
-        $this->maxResults = $maxResults;
-        return $this;
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php
deleted file mode 100644
index 5099458..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections\Expr;
-
-/**
- * Walks an expression graph and turns it into a PHP closure.
- *
- * This closure can be used with {@Collection#filter()} and is used internally
- * by {@ArrayCollection#select()}.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since  2.3
- */
-class ClosureExpressionVisitor extends ExpressionVisitor
-{
-    /**
-     * Accesses the field of a given object. This field has to be public
-     * directly or indirectly (through an accessor get*, is*, or a magic
-     * method, __get, __call).
-     *
-     * @param object $object
-     * @param string $field
-     *
-     * @return mixed
-     */
-    public static function getObjectFieldValue($object, $field)
-    {
-        if (is_array($object)) {
-            return $object[$field];
-        }
-
-        $accessors = array('get', 'is');
-
-        foreach ($accessors as $accessor) {
-            $accessor .= $field;
-
-            if ( ! method_exists($object, $accessor)) {
-                continue;
-            }
-
-            return $object->$accessor();
-        }
-
-        // __call should be triggered for get.
-        $accessor = $accessors[0] . $field;
-
-        if (method_exists($object, '__call')) {
-            return $object->$accessor();
-        }
-
-        if ($object instanceof \ArrayAccess) {
-            return $object[$field];
-        }
-
-        return $object->$field;
-    }
-
-    /**
-     * Helper for sorting arrays of objects based on multiple fields + orientations.
-     *
-     * @param string   $name
-     * @param int      $orientation
-     * @param \Closure $next
-     *
-     * @return \Closure
-     */
-    public static function sortByField($name, $orientation = 1, \Closure $next = null)
-    {
-        if (!$next) {
-            $next = function() {
-                return 0;
-            };
-        }
-
-        return function ($a, $b) use ($name, $next, $orientation) {
-            $aValue = ClosureExpressionVisitor::getObjectFieldValue($a, $name);
-            $bValue = ClosureExpressionVisitor::getObjectFieldValue($b, $name);
-
-            if ($aValue === $bValue) {
-                return $next($a, $b);
-            }
-
-            return (($aValue > $bValue) ? 1 : -1) * $orientation;
-        };
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function walkComparison(Comparison $comparison)
-    {
-        $field = $comparison->getField();
-        $value = $comparison->getValue()->getValue(); // shortcut for walkValue()
-
-        switch ($comparison->getOperator()) {
-            case Comparison::EQ:
-                return function ($object) use ($field, $value) {
-                    return ClosureExpressionVisitor::getObjectFieldValue($object, $field) === $value;
-                };
-
-            case Comparison::NEQ:
-                return function ($object) use ($field, $value) {
-                    return ClosureExpressionVisitor::getObjectFieldValue($object, $field) !== $value;
-                };
-
-            case Comparison::LT:
-                return function ($object) use ($field, $value) {
-                    return ClosureExpressionVisitor::getObjectFieldValue($object, $field) < $value;
-                };
-
-            case Comparison::LTE:
-                return function ($object) use ($field, $value) {
-                    return ClosureExpressionVisitor::getObjectFieldValue($object, $field) <= $value;
-                };
-
-            case Comparison::GT:
-                return function ($object) use ($field, $value) {
-                    return ClosureExpressionVisitor::getObjectFieldValue($object, $field) > $value;
-                };
-
-            case Comparison::GTE:
-                return function ($object) use ($field, $value) {
-                    return ClosureExpressionVisitor::getObjectFieldValue($object, $field) >= $value;
-                };
-
-            case Comparison::IN:
-                return function ($object) use ($field, $value) {
-                    return in_array(ClosureExpressionVisitor::getObjectFieldValue($object, $field), $value);
-                };
-
-            case Comparison::NIN:
-                return function ($object) use ($field, $value) {
-                    return ! in_array(ClosureExpressionVisitor::getObjectFieldValue($object, $field), $value);
-                };
-
-            case Comparison::CONTAINS:
-                return function ($object) use ($field, $value) {
-                    return false !== strpos(ClosureExpressionVisitor::getObjectFieldValue($object, $field), $value);
-                };
-
-            default:
-                throw new \RuntimeException("Unknown comparison operator: " . $comparison->getOperator());
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function walkValue(Value $value)
-    {
-        return $value->getValue();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function walkCompositeExpression(CompositeExpression $expr)
-    {
-        $expressionList = array();
-
-        foreach ($expr->getExpressionList() as $child) {
-            $expressionList[] = $this->dispatch($child);
-        }
-
-        switch($expr->getType()) {
-            case CompositeExpression::TYPE_AND:
-                return $this->andExpressions($expressionList);
-
-            case CompositeExpression::TYPE_OR:
-                return $this->orExpressions($expressionList);
-
-            default:
-                throw new \RuntimeException("Unknown composite " . $expr->getType());
-        }
-    }
-
-    /**
-     * @param array $expressions
-     *
-     * @return callable
-     */
-    private function andExpressions($expressions)
-    {
-        return function ($object) use ($expressions) {
-            foreach ($expressions as $expression) {
-                if ( ! $expression($object)) {
-                    return false;
-                }
-            }
-            return true;
-        };
-    }
-
-    /**
-     * @param array $expressions
-     *
-     * @return callable
-     */
-    private function orExpressions($expressions)
-    {
-        return function ($object) use ($expressions) {
-            foreach ($expressions as $expression) {
-                if ($expression($object)) {
-                    return true;
-                }
-            }
-            return false;
-        };
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php
deleted file mode 100644
index d54ecf2..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections\Expr;
-
-/**
- * Comparison of a field with a value by the given operator.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since  2.3
- */
-class Comparison implements Expression
-{
-    const EQ        = '=';
-    const NEQ       = '<>';
-    const LT        = '<';
-    const LTE       = '<=';
-    const GT        = '>';
-    const GTE       = '>=';
-    const IS        = '='; // no difference with EQ
-    const IN        = 'IN';
-    const NIN       = 'NIN';
-    const CONTAINS  = 'CONTAINS';
-
-    /**
-     * @var string
-     */
-    private $field;
-
-    /**
-     * @var string
-     */
-    private $op;
-
-    /**
-     * @var Value
-     */
-    private $value;
-
-    /**
-     * @param string $field
-     * @param string $operator
-     * @param mixed  $value
-     */
-    public function __construct($field, $operator, $value)
-    {
-        if ( ! ($value instanceof Value)) {
-            $value = new Value($value);
-        }
-
-        $this->field = $field;
-        $this->op = $operator;
-        $this->value = $value;
-    }
-
-    /**
-     * @return string
-     */
-    public function getField()
-    {
-        return $this->field;
-    }
-
-    /**
-     * @return Value
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * @return string
-     */
-    public function getOperator()
-    {
-        return $this->op;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function visit(ExpressionVisitor $visitor)
-    {
-        return $visitor->walkComparison($this);
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php
deleted file mode 100644
index 3613c02..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections\Expr;
-
-/**
- * Expression of Expressions combined by AND or OR operation.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since  2.3
- */
-class CompositeExpression implements Expression
-{
-    const TYPE_AND = 'AND';
-    const TYPE_OR = 'OR';
-
-    /**
-     * @var string
-     */
-    private $type;
-
-    /**
-     * @var Expression[]
-     */
-    private $expressions = array();
-
-    /**
-     * @param string $type
-     * @param array  $expressions
-     *
-     * @throws \RuntimeException
-     */
-    public function __construct($type, array $expressions)
-    {
-        $this->type = $type;
-
-        foreach ($expressions as $expr) {
-            if ($expr instanceof Value) {
-                throw new \RuntimeException("Values are not supported expressions as children of and/or expressions.");
-            }
-            if ( ! ($expr instanceof Expression)) {
-                throw new \RuntimeException("No expression given to CompositeExpression.");
-            }
-
-            $this->expressions[] = $expr;
-        }
-    }
-
-    /**
-     * Returns the list of expressions nested in this composite.
-     *
-     * @return Expression[]
-     */
-    public function getExpressionList()
-    {
-        return $this->expressions;
-    }
-
-    /**
-     * @return string
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function visit(ExpressionVisitor $visitor)
-    {
-        return $visitor->walkCompositeExpression($this);
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php
deleted file mode 100644
index 68db767..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections\Expr;
-
-/**
- * Expression for the {@link Selectable} interface.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-interface Expression
-{
-    /**
-     * @param ExpressionVisitor $visitor
-     *
-     * @return mixed
-     */
-    public function visit(ExpressionVisitor $visitor);
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php
deleted file mode 100644
index 080afdc..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections\Expr;
-
-/**
- * An Expression visitor walks a graph of expressions and turns them into a
- * query for the underlying implementation.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-abstract class ExpressionVisitor
-{
-    /**
-     * Converts a comparison expression into the target query language output.
-     *
-     * @param Comparison $comparison
-     *
-     * @return mixed
-     */
-    abstract public function walkComparison(Comparison $comparison);
-
-    /**
-     * Converts a value expression into the target query language part.
-     *
-     * @param Value $value
-     *
-     * @return mixed
-     */
-    abstract public function walkValue(Value $value);
-
-    /**
-     * Converts a composite expression into the target query language output.
-     *
-     * @param CompositeExpression $expr
-     *
-     * @return mixed
-     */
-    abstract public function walkCompositeExpression(CompositeExpression $expr);
-
-    /**
-     * Dispatches walking an expression to the appropriate handler.
-     *
-     * @param Expression $expr
-     *
-     * @return mixed
-     *
-     * @throws \RuntimeException
-     */
-    public function dispatch(Expression $expr)
-    {
-        switch (true) {
-            case ($expr instanceof Comparison):
-                return $this->walkComparison($expr);
-
-            case ($expr instanceof Value):
-                return $this->walkValue($expr);
-
-            case ($expr instanceof CompositeExpression):
-                return $this->walkCompositeExpression($expr);
-
-            default:
-                throw new \RuntimeException("Unknown Expression " . get_class($expr));
-        }
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php
deleted file mode 100644
index 7f6e831..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections\Expr;
-
-class Value implements Expression
-{
-    /**
-     * @var mixed
-     */
-    private $value;
-
-    /**
-     * @param mixed $value
-     */
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function visit(ExpressionVisitor $visitor)
-    {
-        return $visitor->walkValue($this);
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php
deleted file mode 100644
index 6539e3c..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections;
-
-use Doctrine\Common\Collections\Expr\Comparison;
-use Doctrine\Common\Collections\Expr\CompositeExpression;
-use Doctrine\Common\Collections\Expr\Value;
-
-/**
- * Builder for Expressions in the {@link Selectable} interface.
- *
- * Important Notice for interoperable code: You have to use scalar
- * values only for comparisons, otherwise the behavior of the comparision
- * may be different between implementations (Array vs ORM vs ODM).
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since  2.3
- */
-class ExpressionBuilder
-{
-    /**
-     * @param mixed $x
-     *
-     * @return CompositeExpression
-     */
-    public function andX($x = null)
-    {
-        return new CompositeExpression(CompositeExpression::TYPE_AND, func_get_args());
-    }
-
-    /**
-     * @param mixed $x
-     *
-     * @return CompositeExpression
-     */
-    public function orX($x = null)
-    {
-        return new CompositeExpression(CompositeExpression::TYPE_OR, func_get_args());
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function eq($field, $value)
-    {
-        return new Comparison($field, Comparison::EQ, new Value($value));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function gt($field, $value)
-    {
-        return new Comparison($field, Comparison::GT, new Value($value));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function lt($field, $value)
-    {
-        return new Comparison($field, Comparison::LT, new Value($value));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function gte($field, $value)
-    {
-        return new Comparison($field, Comparison::GTE, new Value($value));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function lte($field, $value)
-    {
-        return new Comparison($field, Comparison::LTE, new Value($value));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function neq($field, $value)
-    {
-        return new Comparison($field, Comparison::NEQ, new Value($value));
-    }
-
-    /**
-     * @param string $field
-     *
-     * @return Comparison
-     */
-    public function isNull($field)
-    {
-        return new Comparison($field, Comparison::EQ, new Value(null));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $values
-     *
-     * @return Comparison
-     */
-    public function in($field, array $values)
-    {
-        return new Comparison($field, Comparison::IN, new Value($values));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $values
-     *
-     * @return Comparison
-     */
-    public function notIn($field, array $values)
-    {
-        return new Comparison($field, Comparison::NIN, new Value($values));
-    }
-
-    /**
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return Comparison
-     */
-    public function contains($field, $value)
-    {
-        return new Comparison($field, Comparison::CONTAINS, new Value($value));
-    }
-}
diff --git a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php b/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php
deleted file mode 100644
index 401d46e..0000000
--- a/core/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Collections;
-
-/**
- * Interface for collections that allow efficient filtering with an expression API.
- *
- * Goal of this interface is a backend independent method to fetch elements
- * from a collections. {@link Expression} is crafted in a way that you can
- * implement queries from both in-memory and database-backed collections.
- *
- * For database backed collections this allows very efficient access by
- * utilizing the query APIs, for example SQL in the ORM. Applications using
- * this API can implement efficient database access without having to ask the
- * EntityManager or Repositories.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since  2.3
- */
-interface Selectable
-{
-    /**
-     * Selects all elements from a selectable that match the expression and
-     * returns a new collection containing these elements.
-     *
-     * @param Criteria $criteria
-     *
-     * @return Collection
-     */
-    function matching(Criteria $criteria);
-}
diff --git a/core/vendor/doctrine/collections/phpunit.xml.dist b/core/vendor/doctrine/collections/phpunit.xml.dist
deleted file mode 100644
index 36968e9..0000000
--- a/core/vendor/doctrine/collections/phpunit.xml.dist
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="./tests/Doctrine/Tests/TestInit.php"
->
-    <testsuites>
-        <testsuite name="Doctrine Collections Test Suite">
-            <directory>./tests/Doctrine/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./lib/Doctrine/</directory>
-        </whitelist>
-    </filter>
-    
-    <groups>
-        <exclude>
-            <group>performance</group>
-        </exclude>
-    </groups>
-</phpunit>
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/AbstractLazyCollectionTest.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/AbstractLazyCollectionTest.php
deleted file mode 100644
index 4de82cc..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/AbstractLazyCollectionTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Collections;
-
-use Doctrine\Tests\LazyArrayCollection;
-
-class AbstractLazyCollectionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLazyCollection()
-    {
-        $collection = new LazyArrayCollection();
-
-        $this->assertFalse($collection->isInitialized());
-        $this->assertCount(3, $collection);
-
-        $collection->add('bar');
-        $this->assertTrue($collection->isInitialized());
-        $this->assertCount(4, $collection);
-    }
-}
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/ClosureExpressionVisitorTest.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/ClosureExpressionVisitorTest.php
deleted file mode 100644
index b640043..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/ClosureExpressionVisitorTest.php
+++ /dev/null
@@ -1,243 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Collections;
-
-use Doctrine\Common\Collections\Expr\ClosureExpressionVisitor;
-use Doctrine\Common\Collections\ExpressionBuilder;
-
-/**
- * @group DDC-1637
- */
-class ClosureExpressionVisitorTest extends \PHPUnit_Framework_TestCase
-{
-    private $visitor;
-    private $builder;
-
-    public function setUp()
-    {
-        $this->visitor = new ClosureExpressionVisitor();
-        $this->builder = new ExpressionBuilder();
-    }
-
-    public function testGetObjectFieldValueIsAccessor()
-    {
-        $object = new TestObject(1, 2, true);
-
-        $this->assertTrue($this->visitor->getObjectFieldValue($object, 'baz'));
-    }
-
-    public function testGetObjectFieldValueMagicCallMethod()
-    {
-        $object = new TestObject(1, 2, true, 3);
-
-        $this->assertEquals(3, $this->visitor->getObjectFieldValue($object, 'qux'));
-    }
-
-    public function testWalkEqualsComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->eq("foo", 1));
-
-        $this->assertTrue($closure(new TestObject(1)));
-        $this->assertFalse($closure(new TestObject(2)));
-    }
-
-    public function testWalkNotEqualsComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->neq("foo", 1));
-
-        $this->assertFalse($closure(new TestObject(1)));
-        $this->assertTrue($closure(new TestObject(2)));
-    }
-
-    public function testWalkLessThanComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->lt("foo", 1));
-
-        $this->assertFalse($closure(new TestObject(1)));
-        $this->assertTrue($closure(new TestObject(0)));
-    }
-
-    public function testWalkLessThanEqualsComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->lte("foo", 1));
-
-        $this->assertFalse($closure(new TestObject(2)));
-        $this->assertTrue($closure(new TestObject(1)));
-        $this->assertTrue($closure(new TestObject(0)));
-    }
-
-    public function testWalkGreaterThanEqualsComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->gte("foo", 1));
-
-        $this->assertTrue($closure(new TestObject(2)));
-        $this->assertTrue($closure(new TestObject(1)));
-        $this->assertFalse($closure(new TestObject(0)));
-    }
-
-    public function testWalkGreaterThanComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->gt("foo", 1));
-
-        $this->assertTrue($closure(new TestObject(2)));
-        $this->assertFalse($closure(new TestObject(1)));
-        $this->assertFalse($closure(new TestObject(0)));
-    }
-
-    public function testWalkInComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->in("foo", array(1, 2, 3)));
-
-        $this->assertTrue($closure(new TestObject(2)));
-        $this->assertTrue($closure(new TestObject(1)));
-        $this->assertFalse($closure(new TestObject(0)));
-    }
-
-    public function testWalkNotInComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->notIn("foo", array(1, 2, 3)));
-
-        $this->assertFalse($closure(new TestObject(1)));
-        $this->assertFalse($closure(new TestObject(2)));
-        $this->assertTrue($closure(new TestObject(0)));
-        $this->assertTrue($closure(new TestObject(4)));
-    }
-
-    public function testWalkContainsComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->contains('foo', 'hello'));
-
-        $this->assertTrue($closure(new TestObject('hello world')));
-        $this->assertFalse($closure(new TestObject('world')));
-    }
-
-    public function testWalkAndCompositeExpression()
-    {
-        $closure = $this->visitor->walkCompositeExpression(
-            $this->builder->andX(
-                $this->builder->eq("foo", 1),
-                $this->builder->eq("bar", 1)
-            )
-        );
-
-        $this->assertTrue($closure(new TestObject(1, 1)));
-        $this->assertFalse($closure(new TestObject(1, 0)));
-        $this->assertFalse($closure(new TestObject(0, 1)));
-        $this->assertFalse($closure(new TestObject(0, 0)));
-    }
-
-    public function testWalkOrCompositeExpression()
-    {
-        $closure = $this->visitor->walkCompositeExpression(
-            $this->builder->orX(
-                $this->builder->eq("foo", 1),
-                $this->builder->eq("bar", 1)
-            )
-        );
-
-        $this->assertTrue($closure(new TestObject(1, 1)));
-        $this->assertTrue($closure(new TestObject(1, 0)));
-        $this->assertTrue($closure(new TestObject(0, 1)));
-        $this->assertFalse($closure(new TestObject(0, 0)));
-    }
-
-    public function testSortByFieldAscending()
-    {
-        $objects = array(new TestObject("b"), new TestObject("a"), new TestObject("c"));
-        $sort = ClosureExpressionVisitor::sortByField("foo");
-
-        usort($objects, $sort);
-
-        $this->assertEquals("a", $objects[0]->getFoo());
-        $this->assertEquals("b", $objects[1]->getFoo());
-        $this->assertEquals("c", $objects[2]->getFoo());
-    }
-
-    public function testSortByFieldDescending()
-    {
-        $objects = array(new TestObject("b"), new TestObject("a"), new TestObject("c"));
-        $sort = ClosureExpressionVisitor::sortByField("foo", -1);
-
-        usort($objects, $sort);
-
-        $this->assertEquals("c", $objects[0]->getFoo());
-        $this->assertEquals("b", $objects[1]->getFoo());
-        $this->assertEquals("a", $objects[2]->getFoo());
-    }
-
-    public function testSortDelegate()
-    {
-        $objects = array(new TestObject("a", "c"), new TestObject("a", "b"), new TestObject("a", "a"));
-        $sort = ClosureExpressionVisitor::sortByField("bar", 1);
-        $sort = ClosureExpressionVisitor::sortByField("foo", 1, $sort);
-
-        usort($objects, $sort);
-
-        $this->assertEquals("a", $objects[0]->getBar());
-        $this->assertEquals("b", $objects[1]->getBar());
-        $this->assertEquals("c", $objects[2]->getBar());
-    }
-
-    public function testArrayComparison()
-    {
-        $closure = $this->visitor->walkComparison($this->builder->eq("foo", 42));
-
-        $this->assertTrue($closure(array('foo' => 42)));
-    }
-}
-
-class TestObject
-{
-    private $foo;
-    private $bar;
-    private $baz;
-    private $qux;
-
-    public function __construct($foo = null, $bar = null, $baz = null, $qux = null)
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-        $this->baz = $baz;
-        $this->qux = $qux;
-    }
-
-    public function __call($name, $arguments)
-    {
-        if ('getqux' === $name) {
-            return $this->qux;
-        }
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function isBaz()
-    {
-        return $this->baz;
-    }
-}
-
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/CollectionTest.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/CollectionTest.php
deleted file mode 100644
index d98246c..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/CollectionTest.php
+++ /dev/null
@@ -1,264 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Collections;
-
-use Doctrine\Tests;
-use Doctrine\Common\Collections\Criteria;
-
-class CollectionTest extends \Doctrine\Tests\DoctrineTestCase
-{
-    /**
-     * @var \Doctrine\Common\Collections\Collection
-     */
-    private $_coll;
-
-    protected function setUp()
-    {
-        $this->_coll = new \Doctrine\Common\Collections\ArrayCollection;
-    }
-
-    public function testIssetAndUnset()
-    {
-        $this->assertFalse(isset($this->_coll[0]));
-        $this->_coll->add('testing');
-        $this->assertTrue(isset($this->_coll[0]));
-        unset($this->_coll[0]);
-        $this->assertFalse(isset($this->_coll[0]));
-    }
-
-    public function testToString()
-    {
-        $this->_coll->add('testing');
-        $this->assertTrue(is_string((string) $this->_coll));
-    }
-
-    public function testRemovingNonExistentEntryReturnsNull()
-    {
-        $this->assertEquals(null, $this->_coll->remove('testing_does_not_exist'));
-    }
-
-    public function testExists()
-    {
-        $this->_coll->add("one");
-        $this->_coll->add("two");
-        $exists = $this->_coll->exists(function($k, $e) { return $e == "one"; });
-        $this->assertTrue($exists);
-        $exists = $this->_coll->exists(function($k, $e) { return $e == "other"; });
-        $this->assertFalse($exists);
-    }
-
-    public function testMap()
-    {
-        $this->_coll->add(1);
-        $this->_coll->add(2);
-        $res = $this->_coll->map(function($e) { return $e * 2; });
-        $this->assertEquals(array(2, 4), $res->toArray());
-    }
-
-    public function testFilter()
-    {
-        $this->_coll->add(1);
-        $this->_coll->add("foo");
-        $this->_coll->add(3);
-        $res = $this->_coll->filter(function($e) { return is_numeric($e); });
-        $this->assertEquals(array(0 => 1, 2 => 3), $res->toArray());
-    }
-
-    public function testFirstAndLast()
-    {
-        $this->_coll->add('one');
-        $this->_coll->add('two');
-
-        $this->assertEquals($this->_coll->first(), 'one');
-        $this->assertEquals($this->_coll->last(), 'two');
-    }
-
-    public function testArrayAccess()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-
-        $this->assertEquals($this->_coll[0], 'one');
-        $this->assertEquals($this->_coll[1], 'two');
-
-        unset($this->_coll[0]);
-        $this->assertEquals($this->_coll->count(), 1);
-    }
-
-    public function testContainsKey()
-    {
-        $this->_coll[5] = 'five';
-        $this->assertTrue($this->_coll->containsKey(5));
-    }
-
-    public function testContains()
-    {
-        $this->_coll[0] = 'test';
-        $this->assertTrue($this->_coll->contains('test'));
-    }
-
-    public function testSearch()
-    {
-        $this->_coll[0] = 'test';
-        $this->assertEquals(0, $this->_coll->indexOf('test'));
-    }
-
-    public function testGet()
-    {
-        $this->_coll[0] = 'test';
-        $this->assertEquals('test', $this->_coll->get(0));
-    }
-
-    public function testGetKeys()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $this->assertEquals(array(0, 1), $this->_coll->getKeys());
-    }
-
-    public function testGetValues()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $this->assertEquals(array('one', 'two'), $this->_coll->getValues());
-    }
-
-    public function testCount()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $this->assertEquals($this->_coll->count(), 2);
-        $this->assertEquals(count($this->_coll), 2);
-    }
-
-    public function testForAll()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $this->assertEquals($this->_coll->forAll(function($k, $e) { return is_string($e); }), true);
-        $this->assertEquals($this->_coll->forAll(function($k, $e) { return is_array($e); }), false);
-    }
-
-    public function testPartition()
-    {
-        $this->_coll[] = true;
-        $this->_coll[] = false;
-        $partition = $this->_coll->partition(function($k, $e) { return $e == true; });
-        $this->assertEquals($partition[0][0], true);
-        $this->assertEquals($partition[1][0], false);
-    }
-
-    public function testClear()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $this->_coll->clear();
-        $this->assertEquals($this->_coll->isEmpty(), true);
-    }
-
-    public function testRemove()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $el = $this->_coll->remove(0);
-
-        $this->assertEquals('one', $el);
-        $this->assertEquals($this->_coll->contains('one'), false);
-        $this->assertNull($this->_coll->remove(0));
-    }
-
-    public function testRemoveElement()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-
-        $this->assertTrue($this->_coll->removeElement('two'));
-        $this->assertFalse($this->_coll->contains('two'));
-        $this->assertFalse($this->_coll->removeElement('two'));
-    }
-
-    public function testSlice()
-    {
-        $this->_coll[] = 'one';
-        $this->_coll[] = 'two';
-        $this->_coll[] = 'three';
-
-        $slice = $this->_coll->slice(0, 1);
-        $this->assertInternalType('array', $slice);
-        $this->assertEquals(array('one'), $slice);
-
-        $slice = $this->_coll->slice(1);
-        $this->assertEquals(array(1 => 'two', 2 => 'three'), $slice);
-
-        $slice = $this->_coll->slice(1, 1);
-        $this->assertEquals(array(1 => 'two'), $slice);
-    }
-
-    public function fillMatchingFixture()
-    {
-        $std1 = new \stdClass();
-        $std1->foo = "bar";
-        $this->_coll[] = $std1;
-
-        $std2 = new \stdClass();
-        $std2->foo = "baz";
-        $this->_coll[] = $std2;
-    }
-
-    /**
-     * @group DDC-1637
-     */
-    public function testMatching()
-    {
-        $this->fillMatchingFixture();
-
-        $col = $this->_coll->matching(new Criteria(Criteria::expr()->eq("foo", "bar")));
-        $this->assertInstanceOf('Doctrine\Common\Collections\Collection', $col);
-        $this->assertNotSame($col, $this->_coll);
-        $this->assertEquals(1, count($col));
-    }
-
-    /**
-     * @group DDC-1637
-     */
-    public function testMatchingOrdering()
-    {
-        $this->fillMatchingFixture();
-
-        $col = $this->_coll->matching(new Criteria(null, array('foo' => 'DESC')));
-
-        $this->assertInstanceOf('Doctrine\Common\Collections\Collection', $col);
-        $this->assertNotSame($col, $this->_coll);
-        $this->assertEquals(2, count($col));
-        $this->assertEquals('baz', $col[0]->foo);
-        $this->assertEquals('bar', $col[1]->foo);
-    }
-
-    /**
-     * @group DDC-1637
-     */
-    public function testMatchingSlice()
-    {
-        $this->fillMatchingFixture();
-
-        $col = $this->_coll->matching(new Criteria(null, null, 1, 1));
-
-        $this->assertInstanceOf('Doctrine\Common\Collections\Collection', $col);
-        $this->assertNotSame($col, $this->_coll);
-        $this->assertEquals(1, count($col));
-        $this->assertEquals('baz', $col[0]->foo);
-    }
-
-    public function testCanRemoveNullValuesByKey()
-    {
-        $this->_coll->add(null);
-        $this->_coll->remove(0);
-        $this->assertTrue($this->_coll->isEmpty());
-    }
-
-    public function testCanVerifyExistingKeysWithNullValues()
-    {
-        $this->_coll->set('key', null);
-        $this->assertTrue($this->_coll->containsKey('key'));
-    }
-}
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php
deleted file mode 100644
index 03fb6ca..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-namespace Doctrine\Tests\Common\Collections;
-
-use Doctrine\Common\Collections\Criteria;
-use Doctrine\Common\Collections\Expr\Comparison;
-use Doctrine\Common\Collections\Expr\CompositeExpression;
-
-class CriteriaTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCreate()
-    {
-        $criteria = Criteria::create();
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Criteria", $criteria);
-    }
-
-    public function testConstructor()
-    {
-        $expr     = new Comparison("field", "=", "value");
-        $criteria = new Criteria($expr, array("foo" => "ASC"), 10, 20);
-
-        $this->assertSame($expr, $criteria->getWhereExpression());
-        $this->assertEquals(array("foo" => "ASC"), $criteria->getOrderings());
-        $this->assertEquals(10, $criteria->getFirstResult());
-        $this->assertEquals(20, $criteria->getMaxResults());
-    }
-
-    public function testWhere()
-    {
-        $expr     = new Comparison("field", "=", "value");
-        $criteria = new Criteria();
-
-        $criteria->where($expr);
-
-        $this->assertSame($expr, $criteria->getWhereExpression());
-    }
-
-    public function testAndWhere()
-    {
-        $expr     = new Comparison("field", "=", "value");
-        $criteria = new Criteria();
-
-        $criteria->where($expr);
-        $expr = $criteria->getWhereExpression();
-        $criteria->andWhere($expr);
-
-        $where = $criteria->getWhereExpression();
-        $this->assertInstanceOf('Doctrine\Common\Collections\Expr\CompositeExpression', $where);
-
-        $this->assertEquals(CompositeExpression::TYPE_AND, $where->getType());
-        $this->assertSame(array($expr, $expr), $where->getExpressionList());
-    }
-
-    public function testOrWhere()
-    {
-        $expr     = new Comparison("field", "=", "value");
-        $criteria = new Criteria();
-
-        $criteria->where($expr);
-        $expr = $criteria->getWhereExpression();
-        $criteria->orWhere($expr);
-
-        $where = $criteria->getWhereExpression();
-        $this->assertInstanceOf('Doctrine\Common\Collections\Expr\CompositeExpression', $where);
-
-        $this->assertEquals(CompositeExpression::TYPE_OR, $where->getType());
-        $this->assertSame(array($expr, $expr), $where->getExpressionList());
-    }
-
-    public function testOrderings()
-    {
-        $criteria = Criteria::create()
-            ->orderBy(array("foo" => "ASC"));
-
-        $this->assertEquals(array("foo" => "ASC"), $criteria->getOrderings());
-    }
-
-    public function testExpr()
-    {
-        $this->assertInstanceOf('Doctrine\Common\Collections\ExpressionBuilder', Criteria::expr());
-    }
-}
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/ExpressionBuilderTest.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/ExpressionBuilderTest.php
deleted file mode 100644
index 06d4155..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/Common/Collections/ExpressionBuilderTest.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-namespace Doctrine\Tests\Common\Collections;
-
-use Doctrine\Common\Collections\ExpressionBuilder;
-use Doctrine\Common\Collections\Expr\Comparison;
-use Doctrine\Common\Collections\Expr\CompositeExpression;
-
-/**
- * @group DDC-1637
- */
-class ExpressionBuilderTest extends \PHPUnit_Framework_TestCase
-{
-    private $builder;
-
-    public function setUp()
-    {
-        $this->builder = new ExpressionBuilder();
-    }
-
-    public function testAndX()
-    {
-        $expr = $this->builder->andX($this->builder->eq("a", "b"));
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\CompositeExpression", $expr);
-        $this->assertEquals(CompositeExpression::TYPE_AND, $expr->getType());
-    }
-
-    public function testOrX()
-    {
-        $expr = $this->builder->orX($this->builder->eq("a", "b"));
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\CompositeExpression", $expr);
-        $this->assertEquals(CompositeExpression::TYPE_OR, $expr->getType());
-    }
-
-    public function testInvalidAndXArgument()
-    {
-        $this->setExpectedException("RuntimeException");
-        $this->builder->andX("foo");
-    }
-
-    public function testEq()
-    {
-        $expr = $this->builder->eq("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::EQ, $expr->getOperator());
-    }
-
-    public function testNeq()
-    {
-        $expr = $this->builder->neq("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::NEQ, $expr->getOperator());
-    }
-
-    public function testLt()
-    {
-        $expr = $this->builder->lt("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::LT, $expr->getOperator());
-    }
-
-    public function testGt()
-    {
-        $expr = $this->builder->gt("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::GT, $expr->getOperator());
-    }
-
-    public function testGte()
-    {
-        $expr = $this->builder->gte("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::GTE, $expr->getOperator());
-    }
-
-    public function testLte()
-    {
-        $expr = $this->builder->lte("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::LTE, $expr->getOperator());
-    }
-
-    public function testIn()
-    {
-        $expr = $this->builder->in("a", array("b"));
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::IN, $expr->getOperator());
-    }
-
-    public function testNotIn()
-    {
-        $expr = $this->builder->notIn("a", array("b"));
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::NIN, $expr->getOperator());
-    }
-
-    public function testIsNull()
-    {
-        $expr = $this->builder->isNull("a");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::EQ, $expr->getOperator());
-    }
-
-    public function testContains()
-    {
-        $expr = $this->builder->contains("a", "b");
-
-        $this->assertInstanceOf("Doctrine\Common\Collections\Expr\Comparison", $expr);
-        $this->assertEquals(Comparison::CONTAINS, $expr->getOperator());
-    }
-}
-
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/DoctrineTestCase.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/DoctrineTestCase.php
deleted file mode 100644
index e8323d2..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/DoctrineTestCase.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests;
-
-/**
- * Base testcase class for all Doctrine testcases.
- */
-abstract class DoctrineTestCase extends \PHPUnit_Framework_TestCase
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/LazyArrayCollection.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/LazyArrayCollection.php
deleted file mode 100644
index 56736b8..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/LazyArrayCollection.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Doctrine\Tests;
-
-use Doctrine\Common\Collections\AbstractLazyCollection;
-use Doctrine\Common\Collections\ArrayCollection;
-
-/**
- * Simple lazy collection that used an ArrayCollection as backed collection
- */
-class LazyArrayCollection extends AbstractLazyCollection
-{
-    /**
-     * Do the initialization logic
-     *
-     * @return void
-     */
-    protected function doInitialize()
-    {
-        $this->collection = new ArrayCollection(array('a', 'b', 'c'));
-    }
-}
diff --git a/core/vendor/doctrine/collections/tests/Doctrine/Tests/TestInit.php b/core/vendor/doctrine/collections/tests/Doctrine/Tests/TestInit.php
deleted file mode 100644
index 973b5fe..0000000
--- a/core/vendor/doctrine/collections/tests/Doctrine/Tests/TestInit.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/*
- * This file bootstraps the test environment.
- */
-namespace Doctrine\Tests;
-
-error_reporting(E_ALL | E_STRICT);
-
-// register silently failing autoloader
-spl_autoload_register(function($class) {
-    if (0 === strpos($class, 'Doctrine\Tests\\')) {
-        $path = __DIR__.'/../../'.strtr($class, '\\', '/').'.php';
-        if (is_file($path) && is_readable($path)) {
-            require_once $path;
-
-            return true;
-        }
-    }
-});
-
-require_once __DIR__ . "/../../../vendor/autoload.php";
diff --git a/core/vendor/doctrine/common/.gitignore b/core/vendor/doctrine/common/.gitignore
deleted file mode 100644
index b15c686..0000000
--- a/core/vendor/doctrine/common/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-build/
-logs/
-reports/
-dist/
-tests/Doctrine/Tests/Common/Proxy/generated/
-vendor/
-.idea
-composer.lock
-doctrine-common-*.tar
-doctrine-common-*.tar.gz
diff --git a/core/vendor/doctrine/common/.gitmodules b/core/vendor/doctrine/common/.gitmodules
deleted file mode 100644
index 51f0843..0000000
--- a/core/vendor/doctrine/common/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "lib/vendor/doctrine-build-common"]
-	path = lib/vendor/doctrine-build-common
-	url = git://github.com/doctrine/doctrine-build-common.git
diff --git a/core/vendor/doctrine/common/.travis.yml b/core/vendor/doctrine/common/.travis.yml
deleted file mode 100644
index 3344d11..0000000
--- a/core/vendor/doctrine/common/.travis.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - hhvm
-
-before_script:
-  - composer --prefer-source install
-
-script:
-  - ./vendor/bin/phpunit
-
-matrix:
-  allow_failures:
-     - php: hhvm
diff --git a/core/vendor/doctrine/common/LICENSE b/core/vendor/doctrine/common/LICENSE
deleted file mode 100644
index 4a91f0b..0000000
--- a/core/vendor/doctrine/common/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2006-2012 Doctrine Project
-
-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/core/vendor/doctrine/common/README.md b/core/vendor/doctrine/common/README.md
deleted file mode 100644
index 30a080f..0000000
--- a/core/vendor/doctrine/common/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Doctrine Common
-
-[![Build Status](https://secure.travis-ci.org/doctrine/common.png)](http://travis-ci.org/doctrine/common)
-
-The Doctrine Common project is a library that provides extensions to core PHP functionality.
-
-## More resources:
-
-* [Website](http://www.doctrine-project.org)
-* [Documentation](http://docs.doctrine-project.org/projects/doctrine-common/en/latest/)
-* [Issue Tracker](http://www.doctrine-project.org/jira/browse/DCOM)
-* [Downloads](http://github.com/doctrine/common/downloads)
diff --git a/core/vendor/doctrine/common/UPGRADE_TO_2_1 b/core/vendor/doctrine/common/UPGRADE_TO_2_1
deleted file mode 100644
index 891a2e5..0000000
--- a/core/vendor/doctrine/common/UPGRADE_TO_2_1
+++ /dev/null
@@ -1,39 +0,0 @@
-This document details all the possible changes that you should investigate when updating
-your project from Doctrine Common 2.0.x to 2.1
-
-## AnnotationReader changes
-
-The annotation reader was heavily refactored between 2.0 and 2.1-RC1. In theory the operation of the new reader should be backwards compatible, but it has to be setup differently to work that way:
-
-    $reader = new \Doctrine\Common\Annotations\AnnotationReader();
-    $reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
-    // new code necessary starting here
-    $reader->setIgnoreNotImportedAnnotations(true);
-    $reader->setEnableParsePhpImports(false);
-    $reader = new \Doctrine\Common\Annotations\CachedReader(
-        new \Doctrine\Common\Annotations\IndexedReader($reader), new ArrayCache()
-    );
-
-## Annotation Base class or @Annotation
-
-Beginning after 2.1-RC2 you have to either extend ``Doctrine\Common\Annotations\Annotation`` or add @Annotation to your annotations class-level docblock, otherwise the class will simply be ignored.
-
-## Removed methods on AnnotationReader
-
-* AnnotationReader::setAutoloadAnnotations()
-* AnnotationReader::getAutoloadAnnotations()
-* AnnotationReader::isAutoloadAnnotations()
-
-## AnnotationRegistry
-
-Autoloading through the PHP autoloader is removed from the 2.1 AnnotationReader. Instead you have to use the global AnnotationRegistry for loading purposes:
-
-    \Doctrine\Common\Annotations\AnnotationRegistry::registerFile($fileWithAnnotations);
-    \Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace($namespace, $dirs = null);
-    \Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespaces($namespaces);
-    \Doctrine\Common\Annotations\AnnotationRegistry::registerLoader($callable);
-
-The $callable for registering a loader accepts a class as first and only parameter and must try to silently autoload it. On success true has to be returned.
-The registerAutoloadNamespace function registers a PSR-0 compatible silent autoloader for all classes with the given namespace in the given directories.
-If null is passed as directory the include path will be used.
-
diff --git a/core/vendor/doctrine/common/UPGRADE_TO_2_2 b/core/vendor/doctrine/common/UPGRADE_TO_2_2
deleted file mode 100644
index 1d93a13..0000000
--- a/core/vendor/doctrine/common/UPGRADE_TO_2_2
+++ /dev/null
@@ -1,61 +0,0 @@
-This document details all the possible changes that you should investigate when 
-updating your project from Doctrine Common 2.1 to 2.2:
-
-## Annotation Changes
-
-- AnnotationReader::setIgnoreNotImportedAnnotations has been removed, you need to 
-  add ignore annotation names which are supposed to be ignored via
-  AnnotationReader::addGlobalIgnoredName
-  
-- AnnotationReader::setAutoloadAnnotations was deprecated by the AnnotationRegistry
-  in 2.1 and has been removed in 2.2
-
-- AnnotationReader::setEnableParsePhpImports was added to ease transition to the new
-  annotation mechanism in 2.1 and is removed in 2.2
-
-- AnnotationReader::isParsePhpImportsEnabled is removed (see above)
-
-- AnnotationReader::setDefaultAnnotationNamespace was deprecated in favor of explicit
-  configuration in 2.1 and will be removed in 2.2 (for isolated projects where you
-  have full-control over _all_ available annotations, we offer a dedicated reader
-  class ``SimpleAnnotationReader``)
-
-- AnnotationReader::setAnnotationCreationFunction was deprecated in 2.1 and will be
-  removed in 2.2. We only offer two creation mechanisms which cannot be changed
-  anymore to allow the same reader instance to work with all annotations regardless
-  of which library they are coming from.
-  
-- AnnotationReader::setAnnotationNamespaceAlias was deprecated in 2.1 and will be
-  removed in 2.2 (see setDefaultAnnotationNamespace)
-
-- If you use a class as annotation which has not the @Annotation marker in it's 
-  class block, we will now throw an exception instead of silently ignoring it. You
-  can however still achieve the previous behavior using the @IgnoreAnnotation, or
-  AnnotationReader::addGlobalIgnoredName (the exception message will contain detailed
-  instructions when you run into this problem).
-
-## Cache Changes
-  
-- Renamed old AbstractCache to CacheProvider
-
-- Dropped the support to the following functions of all cache providers:
-
- - CacheProvider::deleteByWildcard
-
- - CacheProvider::deleteByRegEx
-
- - CacheProvider::deleteByPrefix
-
- - CacheProvider::deleteBySuffix
-
-- CacheProvider::deleteAll will not remove ALL entries, it will only mark them as invalid
-
-- CacheProvider::flushAll will remove ALL entries, namespaced or not
-
-- Added support to MemcachedCache
-
-- Added support to WincacheCache
-
-## ClassLoader Changes
-
-- ClassLoader::fileExistsInIncludePath() no longer exists. Use the native stream_resolve_include_path() PHP function
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/build.properties b/core/vendor/doctrine/common/build.properties
deleted file mode 100644
index ef51d20..0000000
--- a/core/vendor/doctrine/common/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-# Version class and file
-project.version_class = Doctrine\\Common\\Version
-project.version_file = lib/Doctrine/Common/Version.php
diff --git a/core/vendor/doctrine/common/build.xml b/core/vendor/doctrine/common/build.xml
deleted file mode 100644
index 429b768..0000000
--- a/core/vendor/doctrine/common/build.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0"?>
-<project name="DoctrineCommon" default="build" basedir=".">
-    <property file="build.properties" />
-
-    <target name="php">
-        <exec executable="which" outputproperty="php_executable">
-            <arg value="php" />
-        </exec>
-    </target>
-
-    <target name="prepare">
-        <mkdir dir="build" />
-    </target>
-
-    <target name="build" depends="check-git-checkout-clean,prepare,php,composer">
-        <exec executable="${php_executable}">
-            <arg value="build/composer.phar" />
-            <arg value="archive" />
-            <arg value="--dir=build" />
-        </exec>
-    </target>
-
-    <target name="composer" depends="php,composer-check,composer-download">
-        <exec executable="${php_executable}">
-            <arg value="build/composer.phar" />
-            <arg value="install" />
-        </exec>
-    </target>
-
-    <target name="composer-check" depends="prepare">
-        <available file="build/composer.phar" property="composer.present"/>
-    </target>
-
-    <target name="composer-download" unless="composer.present">
-        <exec executable="wget">
-            <arg value="-Obuild/composer.phar" />
-            <arg value="http://getcomposer.org/composer.phar" />
-        </exec>
-    </target>
-
-    <target name="make-release" depends="check-git-checkout-clean,prepare,php">
-        <replace file="${project.version_file}" token="-DEV" value="" failOnNoReplacements="true" />
-        <exec executable="${php_executable}" outputproperty="doctrine.current_version" failonerror="true">
-            <arg value="-r" />
-            <arg value="require_once '${project.version_file}';echo ${project.version_class}::VERSION;" />
-        </exec>
-        <exec executable="${php_executable}" outputproperty="doctrine.next_version" failonerror="true">
-            <arg value="-r" />
-            <arg value="$parts = explode('.', str_ireplace(array('-DEV', '-ALPHA', '-BETA'), '', '${doctrine.current_version}'));
-                if (count($parts) != 3) {
-                    throw new \InvalidArgumentException('Version is assumed in format x.y.z, ${doctrine.current_version} given');
-                }
-                $parts[2]++;
-                echo implode('.', $parts);
-            " />
-        </exec>
-
-        <git-commit file="${project.version_file}" message="Release ${doctrine.current_version}" />
-        <git-tag version="${doctrine.current_version}" />
-        <replace file="${project.version_file}" token="${doctrine.current_version}" value="${doctrine.next_version}-DEV" />
-        <git-commit file="${project.version_file}" message="Bump version to ${doctrine.next_version}" />
-    </target>
-
-    <target name="check-git-checkout-clean">
-        <exec executable="git" failonerror="true">
-            <arg value="diff-index" />
-            <arg value="--quiet" />
-            <arg value="HEAD" />
-        </exec>
-    </target>
-
-    <macrodef name="git-commit">
-        <attribute name="file" default="NOT SET"/>
-        <attribute name="message" default="NOT SET"/>
-
-        <sequential>
-            <exec executable="git">
-                <arg value="add" />
-                <arg value="@{file}" />
-            </exec>
-            <exec executable="git">
-                <arg value="commit" />
-                <arg value="-m" />
-                <arg value="@{message}" />
-            </exec>
-        </sequential>
-    </macrodef>
-
-    <macrodef name="git-tag">
-        <attribute name="version" default="NOT SET" />
-
-        <sequential>
-            <exec executable="git">
-                <arg value="tag" />
-                <arg value="-m" />
-                <arg value="v@{version}" />
-                <arg value="v@{version}" />
-            </exec>
-        </sequential>
-    </macrodef>
-</project>
diff --git a/core/vendor/doctrine/common/composer.json b/core/vendor/doctrine/common/composer.json
deleted file mode 100644
index 325c75c..0000000
--- a/core/vendor/doctrine/common/composer.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-    "name": "doctrine/common",
-    "type": "library",
-    "description": "Common Library for Doctrine projects",
-    "keywords": ["collections", "spl", "eventmanager", "annotations", "persistence"],
-    "homepage": "http://www.doctrine-project.org",
-    "license": "MIT",
-    "authors": [
-        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
-        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
-        {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
-        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
-        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.3.2",
-        "doctrine/inflector": "1.*",
-        "doctrine/cache": "1.*",
-        "doctrine/collections": "1.*",
-        "doctrine/lexer": "1.*",
-        "doctrine/annotations": "1.*"
-    },
-    "minimum-stability": "dev",
-    "require-dev": {
-        "phpunit/phpunit": "~3.7"
-    },
-    "autoload": {
-        "psr-0": { "Doctrine\\Common\\": "lib/" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.4.x-dev"
-        }
-    },
-    "archive": {
-        "exclude": ["!vendor", "tests", "*phpunit.xml", ".travis.yml", "build.xml", "build.properties", "composer.phar"]
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/ClassLoader.php b/core/vendor/doctrine/common/lib/Doctrine/Common/ClassLoader.php
deleted file mode 100644
index 632805e..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/ClassLoader.php
+++ /dev/null
@@ -1,288 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * A <tt>ClassLoader</tt> is an autoloader for class files that can be
- * installed on the SPL autoload stack. It is a class loader that either loads only classes
- * of a specific namespace or all namespaces and it is suitable for working together
- * with other autoloaders in the SPL autoload stack.
- *
- * If no include path is configured through the constructor or {@link setIncludePath}, a ClassLoader
- * relies on the PHP <code>include_path</code>.
- *
- * @author Roman Borschel <roman@code-factory.org>
- * @since 2.0
- */
-class ClassLoader
-{
-    /**
-     * PHP file extension.
-     *
-     * @var string
-     */
-    protected $fileExtension = '.php';
-
-    /**
-     * Current namespace.
-     *
-     * @var string|null
-     */
-    protected $namespace;
-
-    /**
-     * Current include path.
-     *
-     * @var string|null
-     */
-    protected $includePath;
-
-    /**
-     * PHP namespace separator.
-     *
-     * @var string
-     */
-    protected $namespaceSeparator = '\\';
-
-    /**
-     * Creates a new <tt>ClassLoader</tt> that loads classes of the
-     * specified namespace from the specified include path.
-     *
-     * If no include path is given, the ClassLoader relies on the PHP include_path.
-     * If neither a namespace nor an include path is given, the ClassLoader will
-     * be responsible for loading all classes, thereby relying on the PHP include_path.
-     *
-     * @param string|null $ns          The namespace of the classes to load.
-     * @param string|null $includePath The base include path to use.
-     */
-    public function __construct($ns = null, $includePath = null)
-    {
-        $this->namespace = $ns;
-        $this->includePath = $includePath;
-    }
-
-    /**
-     * Sets the namespace separator used by classes in the namespace of this ClassLoader.
-     *
-     * @param string $sep The separator to use.
-     *
-     * @return void
-     */
-    public function setNamespaceSeparator($sep)
-    {
-        $this->namespaceSeparator = $sep;
-    }
-
-    /**
-     * Gets the namespace separator used by classes in the namespace of this ClassLoader.
-     *
-     * @return string
-     */
-    public function getNamespaceSeparator()
-    {
-        return $this->namespaceSeparator;
-    }
-
-    /**
-     * Sets the base include path for all class files in the namespace of this ClassLoader.
-     *
-     * @param string|null $includePath
-     *
-     * @return void
-     */
-    public function setIncludePath($includePath)
-    {
-        $this->includePath = $includePath;
-    }
-
-    /**
-     * Gets the base include path for all class files in the namespace of this ClassLoader.
-     *
-     * @return string|null
-     */
-    public function getIncludePath()
-    {
-        return $this->includePath;
-    }
-
-    /**
-     * Sets the file extension of class files in the namespace of this ClassLoader.
-     *
-     * @param string $fileExtension
-     *
-     * @return void
-     */
-    public function setFileExtension($fileExtension)
-    {
-        $this->fileExtension = $fileExtension;
-    }
-
-    /**
-     * Gets the file extension of class files in the namespace of this ClassLoader.
-     *
-     * @return string
-     */
-    public function getFileExtension()
-    {
-        return $this->fileExtension;
-    }
-
-    /**
-     * Registers this ClassLoader on the SPL autoload stack.
-     *
-     * @return void
-     */
-    public function register()
-    {
-        spl_autoload_register(array($this, 'loadClass'));
-    }
-
-    /**
-     * Removes this ClassLoader from the SPL autoload stack.
-     *
-     * @return void
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $className The name of the class to load.
-     *
-     * @return boolean TRUE if the class has been successfully loaded, FALSE otherwise.
-     */
-    public function loadClass($className)
-    {
-        if ($this->namespace !== null && strpos($className, $this->namespace.$this->namespaceSeparator) !== 0) {
-            return false;
-        }
-
-        require ($this->includePath !== null ? $this->includePath . DIRECTORY_SEPARATOR : '')
-               . str_replace($this->namespaceSeparator, DIRECTORY_SEPARATOR, $className)
-               . $this->fileExtension;
-
-        return true;
-    }
-
-    /**
-     * Asks this ClassLoader whether it can potentially load the class (file) with
-     * the given name.
-     *
-     * @param string $className The fully-qualified name of the class.
-     *
-     * @return boolean TRUE if this ClassLoader can load the class, FALSE otherwise.
-     */
-    public function canLoadClass($className)
-    {
-        if ($this->namespace !== null && strpos($className, $this->namespace.$this->namespaceSeparator) !== 0) {
-            return false;
-        }
-
-        $file = str_replace($this->namespaceSeparator, DIRECTORY_SEPARATOR, $className) . $this->fileExtension;
-
-        if ($this->includePath !== null) {
-            return is_file($this->includePath . DIRECTORY_SEPARATOR . $file);
-        }
-
-        return (false !== stream_resolve_include_path($file));
-    }
-
-    /**
-     * Checks whether a class with a given name exists. A class "exists" if it is either
-     * already defined in the current request or if there is an autoloader on the SPL
-     * autoload stack that is a) responsible for the class in question and b) is able to
-     * load a class file in which the class definition resides.
-     *
-     * If the class is not already defined, each autoloader in the SPL autoload stack
-     * is asked whether it is able to tell if the class exists. If the autoloader is
-     * a <tt>ClassLoader</tt>, {@link canLoadClass} is used, otherwise the autoload
-     * function of the autoloader is invoked and expected to return a value that
-     * evaluates to TRUE if the class (file) exists. As soon as one autoloader reports
-     * that the class exists, TRUE is returned.
-     *
-     * Note that, depending on what kinds of autoloaders are installed on the SPL
-     * autoload stack, the class (file) might already be loaded as a result of checking
-     * for its existence. This is not the case with a <tt>ClassLoader</tt>, who separates
-     * these responsibilities.
-     *
-     * @param string $className The fully-qualified name of the class.
-     *
-     * @return boolean TRUE if the class exists as per the definition given above, FALSE otherwise.
-     */
-    public static function classExists($className)
-    {
-        if (class_exists($className, false) || interface_exists($className, false)) {
-            return true;
-        }
-
-        foreach (spl_autoload_functions() as $loader) {
-            if (is_array($loader)) { // array(???, ???)
-                if (is_object($loader[0])) {
-                    if ($loader[0] instanceof ClassLoader) { // array($obj, 'methodName')
-                        if ($loader[0]->canLoadClass($className)) {
-                            return true;
-                        }
-                    } else if ($loader[0]->{$loader[1]}($className)) {
-                        return true;
-                    }
-                } else if ($loader[0]::$loader[1]($className)) { // array('ClassName', 'methodName')
-                    return true;
-                }
-            } else if ($loader instanceof \Closure) { // function($className) {..}
-                if ($loader($className)) {
-                    return true;
-                }
-            } else if (is_string($loader) && $loader($className)) { // "MyClass::loadClass"
-                return true;
-            }
-
-            if (class_exists($className, false) || interface_exists($className, false)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Gets the <tt>ClassLoader</tt> from the SPL autoload stack that is responsible
-     * for (and is able to load) the class with the given name.
-     *
-     * @param string $className The name of the class.
-     *
-     * @return ClassLoader The <tt>ClassLoader</tt> for the class or NULL if no such <tt>ClassLoader</tt> exists.
-     */
-    public static function getClassLoader($className)
-    {
-         foreach (spl_autoload_functions() as $loader) {
-            if (is_array($loader)
-                && $loader[0] instanceof ClassLoader
-                && $loader[0]->canLoadClass($className)
-            ) {
-                return $loader[0];
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/CommonException.php b/core/vendor/doctrine/common/lib/Doctrine/Common/CommonException.php
deleted file mode 100644
index 2a1a08e..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/CommonException.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * Base exception class for package Doctrine\Common.
- *
- * @author heinrich
- */
-class CommonException extends \Exception
-{
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Comparable.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Comparable.php
deleted file mode 100644
index 8cd02c9..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Comparable.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * Comparable interface that allows to compare two value objects to each other for similarity.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- */
-interface Comparable
-{
-    /**
-     * Compares the current object to the passed $other.
-     *
-     * Returns 0 if they are semantically equal, 1 if the other object
-     * is less than the current one, or -1 if its more than the current one.
-     *
-     * This method should not check for identity using ===, only for semantical equality for example
-     * when two different DateTime instances point to the exact same Date + TZ.
-     *
-     * @param mixed $other
-     *
-     * @return int
-     */
-    public function compareTo($other);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/EventArgs.php b/core/vendor/doctrine/common/lib/Doctrine/Common/EventArgs.php
deleted file mode 100644
index 75506e6..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/EventArgs.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * EventArgs is the base class for classes containing event data.
- *
- * This class contains no event data. It is used by events that do not pass state
- * information to an event handler when an event is raised. The single empty EventArgs
- * instance can be obtained through {@link getEmptyInstance}.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class EventArgs
-{
-    /**
-     * Single instance of EventArgs.
-     *
-     * @var EventArgs
-     */
-    private static $_emptyEventArgsInstance;
-
-    /**
-     * Gets the single, empty and immutable EventArgs instance.
-     *
-     * This instance will be used when events are dispatched without any parameter,
-     * like this: EventManager::dispatchEvent('eventname');
-     *
-     * The benefit from this is that only one empty instance is instantiated and shared
-     * (otherwise there would be instances for every dispatched in the abovementioned form).
-     *
-     * @see EventManager::dispatchEvent
-     *
-     * @link http://msdn.microsoft.com/en-us/library/system.eventargs.aspx
-     *
-     * @return EventArgs
-     */
-    public static function getEmptyInstance()
-    {
-        if ( ! self::$_emptyEventArgsInstance) {
-            self::$_emptyEventArgsInstance = new EventArgs;
-        }
-
-        return self::$_emptyEventArgsInstance;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php b/core/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php
deleted file mode 100644
index 69eb17e..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * The EventManager is the central point of Doctrine's event listener system.
- * Listeners are registered on the manager and events are dispatched through the
- * manager.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class EventManager
-{
-    /**
-     * Map of registered listeners.
-     * <event> => <listeners>
-     *
-     * @var array
-     */
-    private $_listeners = array();
-
-    /**
-     * Dispatches an event to all registered listeners.
-     *
-     * @param string    $eventName      The name of the event to dispatch. The name of the event is
-     *                                  the name of the method that is invoked on listeners.
-     * @param EventArgs|null $eventArgs The event arguments to pass to the event handlers/listeners.
-     *                                  If not supplied, the single empty EventArgs instance is used.
-     *
-     * @return boolean
-     */
-    public function dispatchEvent($eventName, EventArgs $eventArgs = null)
-    {
-        if (isset($this->_listeners[$eventName])) {
-            $eventArgs = $eventArgs === null ? EventArgs::getEmptyInstance() : $eventArgs;
-
-            foreach ($this->_listeners[$eventName] as $listener) {
-                $listener->$eventName($eventArgs);
-            }
-        }
-    }
-
-    /**
-     * Gets the listeners of a specific event or all listeners.
-     *
-     * @param string|null $event The name of the event.
-     *
-     * @return array The event listeners for the specified event, or all event listeners.
-     */
-    public function getListeners($event = null)
-    {
-        return $event ? $this->_listeners[$event] : $this->_listeners;
-    }
-
-    /**
-     * Checks whether an event has any registered listeners.
-     *
-     * @param string $event
-     *
-     * @return boolean TRUE if the specified event has any listeners, FALSE otherwise.
-     */
-    public function hasListeners($event)
-    {
-        return isset($this->_listeners[$event]) && $this->_listeners[$event];
-    }
-
-    /**
-     * Adds an event listener that listens on the specified events.
-     *
-     * @param string|array $events   The event(s) to listen on.
-     * @param object       $listener The listener object.
-     *
-     * @return void
-     */
-    public function addEventListener($events, $listener)
-    {
-        // Picks the hash code related to that listener
-        $hash = spl_object_hash($listener);
-
-        foreach ((array) $events as $event) {
-            // Overrides listener if a previous one was associated already
-            // Prevents duplicate listeners on same event (same instance only)
-            $this->_listeners[$event][$hash] = $listener;
-        }
-    }
-
-    /**
-     * Removes an event listener from the specified events.
-     *
-     * @param string|array $events
-     * @param object       $listener
-     *
-     * @return void
-     */
-    public function removeEventListener($events, $listener)
-    {
-        // Picks the hash code related to that listener
-        $hash = spl_object_hash($listener);
-
-        foreach ((array) $events as $event) {
-            // Check if actually have this listener associated
-            if (isset($this->_listeners[$event][$hash])) {
-                unset($this->_listeners[$event][$hash]);
-            }
-        }
-    }
-
-    /**
-     * Adds an EventSubscriber. The subscriber is asked for all the events it is
-     * interested in and added as a listener for these events.
-     *
-     * @param \Doctrine\Common\EventSubscriber $subscriber The subscriber.
-     *
-     * @return void
-     */
-    public function addEventSubscriber(EventSubscriber $subscriber)
-    {
-        $this->addEventListener($subscriber->getSubscribedEvents(), $subscriber);
-    }
-
-    /**
-     * Removes an EventSubscriber. The subscriber is asked for all the events it is
-     * interested in and removed as a listener for these events.
-     *
-     * @param \Doctrine\Common\EventSubscriber $subscriber The subscriber.
-     *
-     * @return void
-     */
-    public function removeEventSubscriber(EventSubscriber $subscriber)
-    {
-        $this->removeEventListener($subscriber->getSubscribedEvents(), $subscriber);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/EventSubscriber.php b/core/vendor/doctrine/common/lib/Doctrine/Common/EventSubscriber.php
deleted file mode 100644
index 55d0f7d..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/EventSubscriber.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * An EventSubscriber knows himself what events he is interested in.
- * If an EventSubscriber is added to an EventManager, the manager invokes
- * {@link getSubscribedEvents} and registers the subscriber as a listener for all
- * returned events.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-interface EventSubscriber
-{
-    /**
-     * Returns an array of events this subscriber wants to listen to.
-     *
-     * @return array
-     */
-    public function getSubscribedEvents();
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Lexer.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Lexer.php
deleted file mode 100644
index 0aa07f8..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Lexer.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-use Doctrine\Common\Lexer\AbstractLexer;
-
-/**
- * Base class for writing simple lexers, i.e. for creating small DSLs.
- *
- * Lexer moved into its own Component Doctrine\Common\Lexer. This class
- * only stays for being BC.
- *
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-abstract class Lexer extends AbstractLexer
-{
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/NotifyPropertyChanged.php b/core/vendor/doctrine/common/lib/Doctrine/Common/NotifyPropertyChanged.php
deleted file mode 100644
index e25e999..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/NotifyPropertyChanged.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * Contract for classes that provide the service of notifying listeners of
- * changes to their properties.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-interface NotifyPropertyChanged
-{
-    /**
-     * Adds a listener that wants to be notified about property changes.
-     *
-     * @param PropertyChangedListener $listener
-     *
-     * @return void
-     */
-    public function addPropertyChangedListener(PropertyChangedListener $listener);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/AbstractManagerRegistry.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/AbstractManagerRegistry.php
deleted file mode 100644
index 15b5aa3..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/AbstractManagerRegistry.php
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-use Doctrine\Common\Persistence\ManagerRegistry;
-
-/**
- * Abstract implementation of the ManagerRegistry contract.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-abstract class AbstractManagerRegistry implements ManagerRegistry
-{
-    /**
-     * @var string
-     */
-    private $name;
-
-    /**
-     * @var array
-     */
-    private $connections;
-
-    /**
-     * @var array
-     */
-    private $managers;
-
-    /**
-     * @var string
-     */
-    private $defaultConnection;
-
-    /**
-     * @var string
-     */
-    private $defaultManager;
-
-    /**
-     * @var string
-     */
-    private $proxyInterfaceName;
-
-    /**
-     * Constructor.
-     *
-     * @param string $name
-     * @param array  $connections
-     * @param array  $managers
-     * @param string $defaultConnection
-     * @param string $defaultManager
-     * @param string $proxyInterfaceName
-     */
-    public function __construct($name, array $connections, array $managers, $defaultConnection, $defaultManager, $proxyInterfaceName)
-    {
-        $this->name = $name;
-        $this->connections = $connections;
-        $this->managers = $managers;
-        $this->defaultConnection = $defaultConnection;
-        $this->defaultManager = $defaultManager;
-        $this->proxyInterfaceName = $proxyInterfaceName;
-    }
-
-    /**
-     * Fetches/creates the given services.
-     *
-     * A service in this context is connection or a manager instance.
-     *
-     * @param string $name The name of the service.
-     *
-     * @return object The instance of the given service.
-     */
-    abstract protected function getService($name);
-
-    /**
-     * Resets the given services.
-     *
-     * A service in this context is connection or a manager instance.
-     *
-     * @param string $name The name of the service.
-     *
-     * @return void
-     */
-    abstract protected function resetService($name);
-
-    /**
-     * Gets the name of the registry.
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getConnection($name = null)
-    {
-        if (null === $name) {
-            $name = $this->defaultConnection;
-        }
-
-        if (!isset($this->connections[$name])) {
-            throw new \InvalidArgumentException(sprintf('Doctrine %s Connection named "%s" does not exist.', $this->name, $name));
-        }
-
-        return $this->getService($this->connections[$name]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getConnectionNames()
-    {
-        return $this->connections;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getConnections()
-    {
-        $connections = array();
-        foreach ($this->connections as $name => $id) {
-            $connections[$name] = $this->getService($id);
-        }
-
-        return $connections;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultConnectionName()
-    {
-        return $this->defaultConnection;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultManagerName()
-    {
-        return $this->defaultManager;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function getManager($name = null)
-    {
-        if (null === $name) {
-            $name = $this->defaultManager;
-        }
-
-        if (!isset($this->managers[$name])) {
-            throw new \InvalidArgumentException(sprintf('Doctrine %s Manager named "%s" does not exist.', $this->name, $name));
-        }
-
-        return $this->getService($this->managers[$name]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getManagerForClass($class)
-    {
-        // Check for namespace alias
-        if (strpos($class, ':') !== false) {
-            list($namespaceAlias, $simpleClassName) = explode(':', $class);
-            $class = $this->getAliasNamespace($namespaceAlias) . '\\' . $simpleClassName;
-        }
-
-        $proxyClass = new \ReflectionClass($class);
-        if ($proxyClass->implementsInterface($this->proxyInterfaceName)) {
-            $class = $proxyClass->getParentClass()->getName();
-        }
-
-        foreach ($this->managers as $id) {
-            $manager = $this->getService($id);
-
-            if (!$manager->getMetadataFactory()->isTransient($class)) {
-                return $manager;
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getManagerNames()
-    {
-        return $this->managers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getManagers()
-    {
-        $dms = array();
-        foreach ($this->managers as $name => $id) {
-            $dms[$name] = $this->getService($id);
-        }
-
-        return $dms;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRepository($persistentObjectName, $persistentManagerName = null)
-    {
-        return $this->getManager($persistentManagerName)->getRepository($persistentObjectName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function resetManager($name = null)
-    {
-        if (null === $name) {
-            $name = $this->defaultManager;
-        }
-
-        if (!isset($this->managers[$name])) {
-            throw new \InvalidArgumentException(sprintf('Doctrine %s Manager named "%s" does not exist.', $this->name, $name));
-        }
-
-        // force the creation of a new document manager
-        // if the current one is closed
-        $this->resetService($this->managers[$name]);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ConnectionRegistry.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ConnectionRegistry.php
deleted file mode 100644
index 7c25e98..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ConnectionRegistry.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-/**
- * Contract covering connection for a Doctrine persistence layer ManagerRegistry class to implement.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-interface ConnectionRegistry
-{
-    /**
-     * Gets the default connection name.
-     *
-     * @return string The default connection name.
-     */
-    public function getDefaultConnectionName();
-
-    /**
-     * Gets the named connection.
-     *
-     * @param string $name The connection name (null for the default one).
-     *
-     * @return object
-     */
-    public function getConnection($name = null);
-
-    /**
-     * Gets an array of all registered connections.
-     *
-     * @return array An array of Connection instances.
-     */
-    public function getConnections();
-
-    /**
-     * Gets all connection names.
-     *
-     * @return array An array of connection names.
-     */
-    public function getConnectionNames();
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LifecycleEventArgs.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LifecycleEventArgs.php
deleted file mode 100644
index 52f41c0..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LifecycleEventArgs.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Event;
-
-use Doctrine\Common\EventArgs;
-use Doctrine\Common\Persistence\ObjectManager;
-
-/**
- * Lifecycle Events are triggered by the UnitOfWork during lifecycle transitions
- * of entities.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Roman Borschel <roman@code-factory.de>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class LifecycleEventArgs extends EventArgs
-{
-    /**
-     * @var ObjectManager
-     */
-    private $objectManager;
-
-    /**
-     * @var object
-     */
-    private $object;
-
-    /**
-     * Constructor.
-     *
-     * @param object        $object
-     * @param ObjectManager $objectManager
-     */
-    public function __construct($object, ObjectManager $objectManager)
-    {
-        $this->object = $object;
-        $this->objectManager = $objectManager;
-    }
-
-    /**
-     * Retrieves the associated entity.
-     *
-     * @deprecated
-     *
-     * @return object
-     */
-    public function getEntity()
-    {
-        return $this->object;
-    }
-
-    /**
-     * Retrieves the associated object.
-     *
-     * @return object
-     */
-    public function getObject()
-    {
-        return $this->object;
-    }
-
-    /**
-     * Retrieves the associated ObjectManager.
-     *
-     * @return ObjectManager
-     */
-    public function getObjectManager()
-    {
-        return $this->objectManager;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LoadClassMetadataEventArgs.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LoadClassMetadataEventArgs.php
deleted file mode 100644
index 07770bb..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/LoadClassMetadataEventArgs.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Event;
-
-use Doctrine\Common\EventArgs;
-use Doctrine\Common\Persistence\ObjectManager;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-/**
- * Class that holds event arguments for a loadMetadata event.
- *
- * @author Jonathan H. Wage <jonwage@gmail.com>
- * @since  2.2
- */
-class LoadClassMetadataEventArgs extends EventArgs
-{
-    /**
-     * @var ClassMetadata
-     */
-    private $classMetadata;
-
-    /**
-     * @var ObjectManager
-     */
-    private $objectManager;
-
-    /**
-     * Constructor.
-     *
-     * @param ClassMetadata $classMetadata
-     * @param ObjectManager $objectManager
-     */
-    public function __construct(ClassMetadata $classMetadata, ObjectManager $objectManager)
-    {
-        $this->classMetadata = $classMetadata;
-        $this->objectManager = $objectManager;
-    }
-
-    /**
-     * Retrieves the associated ClassMetadata.
-     *
-     * @return ClassMetadata
-     */
-    public function getClassMetadata()
-    {
-        return $this->classMetadata;
-    }
-
-    /**
-     * Retrieves the associated ObjectManager.
-     *
-     * @return ObjectManager
-     */
-    public function getObjectManager()
-    {
-        return $this->objectManager;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/ManagerEventArgs.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/ManagerEventArgs.php
deleted file mode 100644
index 5527d4d..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/ManagerEventArgs.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Event;
-
-use Doctrine\Common\EventArgs;
-use Doctrine\Common\Persistence\ObjectManager;
-
-/**
- * Provides event arguments for the preFlush event.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Roman Borschel <roman@code-factory.de>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class ManagerEventArgs extends EventArgs
-{
-    /**
-     * @var ObjectManager
-     */
-    private $objectManager;
-
-    /**
-     * Constructor.
-     *
-     * @param ObjectManager $objectManager
-     */
-    public function __construct(ObjectManager $objectManager)
-    {
-        $this->objectManager = $objectManager;
-    }
-
-    /**
-     * Retrieves the associated ObjectManager.
-     *
-     * @return ObjectManager
-     */
-    public function getObjectManager()
-    {
-        return $this->objectManager;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/OnClearEventArgs.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/OnClearEventArgs.php
deleted file mode 100644
index b78bad9..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/OnClearEventArgs.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Event;
-
-use Doctrine\Common\EventArgs;
-use Doctrine\Common\Persistence\ObjectManager;
-
-/**
- * Provides event arguments for the onClear event.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Roman Borschel <roman@code-factory.de>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class OnClearEventArgs extends EventArgs
-{
-    /**
-     * @var \Doctrine\Common\Persistence\ObjectManager
-     */
-    private $objectManager;
-
-    /**
-     * @var string|null
-     */
-    private $entityClass;
-
-    /**
-     * Constructor.
-     *
-     * @param ObjectManager $objectManager The object manager.
-     * @param string|null   $entityClass   The optional entity class.
-     */
-    public function __construct($objectManager, $entityClass = null)
-    {
-        $this->objectManager = $objectManager;
-        $this->entityClass = $entityClass;
-    }
-
-    /**
-     * Retrieves the associated ObjectManager.
-     *
-     * @return \Doctrine\Common\Persistence\ObjectManager
-     */
-    public function getObjectManager()
-    {
-        return $this->objectManager;
-    }
-
-    /**
-     * Returns the name of the entity class that is cleared, or null if all are cleared.
-     *
-     * @return string|null
-     */
-    public function getEntityClass()
-    {
-        return $this->entityClass;
-    }
-
-    /**
-     * Returns whether this event clears all entities.
-     *
-     * @return bool
-     */
-    public function clearsAllEntities()
-    {
-        return ($this->entityClass === null);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/PreUpdateEventArgs.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/PreUpdateEventArgs.php
deleted file mode 100644
index d34de84..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Event/PreUpdateEventArgs.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Event;
-
-use Doctrine\Common\EventArgs;
-use Doctrine\Common\Persistence\ObjectManager;
-
-/**
- * Class that holds event arguments for a preUpdate event.
- *
- * @author Guilherme Blanco <guilehrmeblanco@hotmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @since  2.2
- */
-class PreUpdateEventArgs extends LifecycleEventArgs
-{
-    /**
-     * @var array
-     */
-    private $entityChangeSet;
-
-    /**
-     * Constructor.
-     *
-     * @param object        $entity
-     * @param ObjectManager $objectManager
-     * @param array         $changeSet
-     */
-    public function __construct($entity, ObjectManager $objectManager, array &$changeSet)
-    {
-        parent::__construct($entity, $objectManager);
-
-        $this->entityChangeSet = &$changeSet;
-    }
-
-    /**
-     * Retrieves the entity changeset.
-     *
-     * @return array
-     */
-    public function getEntityChangeSet()
-    {
-        return $this->entityChangeSet;
-    }
-
-    /**
-     * Checks if field has a changeset.
-     *
-     * @param string $field
-     *
-     * @return boolean
-     */
-    public function hasChangedField($field)
-    {
-        return isset($this->entityChangeSet[$field]);
-    }
-
-    /**
-     * Gets the old value of the changeset of the changed field.
-     *
-     * @param string $field
-     *
-     * @return mixed
-     */
-    public function getOldValue($field)
-    {
-        $this->assertValidField($field);
-
-        return $this->entityChangeSet[$field][0];
-    }
-
-    /**
-     * Gets the new value of the changeset of the changed field.
-     *
-     * @param string $field
-     *
-     * @return mixed
-     */
-    public function getNewValue($field)
-    {
-        $this->assertValidField($field);
-
-        return $this->entityChangeSet[$field][1];
-    }
-
-    /**
-     * Sets the new value of this field.
-     *
-     * @param string $field
-     * @param mixed  $value
-     *
-     * @return void
-     */
-    public function setNewValue($field, $value)
-    {
-        $this->assertValidField($field);
-
-        $this->entityChangeSet[$field][1] = $value;
-    }
-
-    /**
-     * Asserts the field exists in changeset.
-     *
-     * @param string $field
-     *
-     * @return void
-     *
-     * @throws \InvalidArgumentException
-     */
-    private function assertValidField($field)
-    {
-        if ( ! isset($this->entityChangeSet[$field])) {
-            throw new \InvalidArgumentException(sprintf(
-                'Field "%s" is not a valid field of the entity "%s" in PreUpdateEventArgs.',
-                $field,
-                get_class($this->getEntity())
-            ));
-        }
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ManagerRegistry.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ManagerRegistry.php
deleted file mode 100644
index fce854b..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ManagerRegistry.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-/**
- * Contract covering object managers for a Doctrine persistence layer ManagerRegistry class to implement.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-interface ManagerRegistry extends ConnectionRegistry
-{
-    /**
-     * Gets the default object manager name.
-     *
-     * @return string The default object manager name.
-     */
-    public function getDefaultManagerName();
-
-    /**
-     * Gets a named object manager.
-     *
-     * @param string $name The object manager name (null for the default one).
-     *
-     * @return \Doctrine\Common\Persistence\ObjectManager
-     */
-    public function getManager($name = null);
-
-    /**
-     * Gets an array of all registered object managers.
-     *
-     * @return \Doctrine\Common\Persistence\ObjectManager[] An array of ObjectManager instances
-     */
-    public function getManagers();
-
-    /**
-     * Resets a named object manager.
-     *
-     * This method is useful when an object manager has been closed
-     * because of a rollbacked transaction AND when you think that
-     * it makes sense to get a new one to replace the closed one.
-     *
-     * Be warned that you will get a brand new object manager as
-     * the existing one is not useable anymore. This means that any
-     * other object with a dependency on this object manager will
-     * hold an obsolete reference. You can inject the registry instead
-     * to avoid this problem.
-     *
-     * @param string|null $name The object manager name (null for the default one).
-     *
-     * @return \Doctrine\Common\Persistence\ObjectManager
-     */
-    public function resetManager($name = null);
-
-    /**
-     * Resolves a registered namespace alias to the full namespace.
-     *
-     * This method looks for the alias in all registered object managers.
-     *
-     * @param string $alias The alias.
-     *
-     * @return string The full namespace.
-     */
-    public function getAliasNamespace($alias);
-
-    /**
-     * Gets all connection names.
-     *
-     * @return array An array of connection names.
-     */
-    public function getManagerNames();
-
-    /**
-     * Gets the ObjectRepository for an persistent object.
-     *
-     * @param string $persistentObject      The name of the persistent object.
-     * @param string $persistentManagerName The object manager name (null for the default one).
-     *
-     * @return \Doctrine\Common\Persistence\ObjectRepository
-     */
-    public function getRepository($persistentObject, $persistentManagerName = null);
-
-    /**
-     * Gets the object manager associated with a given class.
-     *
-     * @param string $class A persistent object class name.
-     *
-     * @return \Doctrine\Common\Persistence\ObjectManager|null
-     */
-    public function getManagerForClass($class);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php
deleted file mode 100644
index 01ad58f..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php
+++ /dev/null
@@ -1,401 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-use Doctrine\Common\Cache\Cache;
-use Doctrine\Common\Util\ClassUtils;
-
-/**
- * The ClassMetadataFactory is used to create ClassMetadata objects that contain all the
- * metadata mapping informations of a class which describes how a class should be mapped
- * to a relational database.
- *
- * This class was abstracted from the ORM ClassMetadataFactory.
- *
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-abstract class AbstractClassMetadataFactory implements ClassMetadataFactory
-{
-    /**
-     * Salt used by specific Object Manager implementation.
-     *
-     * @var string
-     */
-    protected $cacheSalt = '$CLASSMETADATA';
-
-    /**
-     * @var \Doctrine\Common\Cache\Cache|null
-     */
-    private $cacheDriver;
-
-    /**
-     * @var array
-     */
-    private $loadedMetadata = array();
-
-    /**
-     * @var bool
-     */
-    protected $initialized = false;
-
-    /**
-     * @var ReflectionService|null
-     */
-    private $reflectionService = null;
-
-    /**
-     * Sets the cache driver used by the factory to cache ClassMetadata instances.
-     *
-     * @param \Doctrine\Common\Cache\Cache $cacheDriver
-     *
-     * @return void
-     */
-    public function setCacheDriver(Cache $cacheDriver = null)
-    {
-        $this->cacheDriver = $cacheDriver;
-    }
-
-    /**
-     * Gets the cache driver used by the factory to cache ClassMetadata instances.
-     *
-     * @return \Doctrine\Common\Cache\Cache|null
-     */
-    public function getCacheDriver()
-    {
-        return $this->cacheDriver;
-    }
-
-    /**
-     * Returns an array of all the loaded metadata currently in memory.
-     *
-     * @return array
-     */
-    public function getLoadedMetadata()
-    {
-        return $this->loadedMetadata;
-    }
-
-    /**
-     * Forces the factory to load the metadata of all classes known to the underlying
-     * mapping driver.
-     *
-     * @return array The ClassMetadata instances of all mapped classes.
-     */
-    public function getAllMetadata()
-    {
-        if ( ! $this->initialized) {
-            $this->initialize();
-        }
-
-        $driver = $this->getDriver();
-        $metadata = array();
-        foreach ($driver->getAllClassNames() as $className) {
-            $metadata[] = $this->getMetadataFor($className);
-        }
-
-        return $metadata;
-    }
-
-    /**
-     * Lazy initialization of this stuff, especially the metadata driver,
-     * since these are not needed at all when a metadata cache is active.
-     *
-     * @return void
-     */
-    abstract protected function initialize();
-
-    /**
-     * Gets the fully qualified class-name from the namespace alias.
-     *
-     * @param string $namespaceAlias
-     * @param string $simpleClassName
-     *
-     * @return string
-     */
-    abstract protected function getFqcnFromAlias($namespaceAlias, $simpleClassName);
-
-    /**
-     * Returns the mapping driver implementation.
-     *
-     * @return \Doctrine\Common\Persistence\Mapping\Driver\MappingDriver
-     */
-    abstract protected function getDriver();
-
-    /**
-     * Wakes up reflection after ClassMetadata gets unserialized from cache.
-     *
-     * @param ClassMetadata     $class
-     * @param ReflectionService $reflService
-     *
-     * @return void
-     */
-    abstract protected function wakeupReflection(ClassMetadata $class, ReflectionService $reflService);
-
-    /**
-     * Initializes Reflection after ClassMetadata was constructed.
-     *
-     * @param ClassMetadata     $class
-     * @param ReflectionService $reflService
-     *
-     * @return void
-     */
-    abstract protected function initializeReflection(ClassMetadata $class, ReflectionService $reflService);
-
-    /**
-     * Checks whether the class metadata is an entity.
-     *
-     * This method should return false for mapped superclasses or embedded classes.
-     *
-     * @param ClassMetadata $class
-     *
-     * @return boolean
-     */
-    abstract protected function isEntity(ClassMetadata $class);
-
-    /**
-     * Gets the class metadata descriptor for a class.
-     *
-     * @param string $className The name of the class.
-     *
-     * @return \Doctrine\Common\Persistence\Mapping\ClassMetadata
-     */
-    public function getMetadataFor($className)
-    {
-        if (isset($this->loadedMetadata[$className])) {
-            return $this->loadedMetadata[$className];
-        }
-
-        $realClassName = $className;
-
-        // Check for namespace alias
-        if (strpos($className, ':') !== false) {
-            list($namespaceAlias, $simpleClassName) = explode(':', $className);
-            $realClassName = $this->getFqcnFromAlias($namespaceAlias, $simpleClassName);
-        } else {
-            $realClassName = ClassUtils::getRealClass($realClassName);
-        }
-
-        if (isset($this->loadedMetadata[$realClassName])) {
-            // We do not have the alias name in the map, include it
-            $this->loadedMetadata[$className] = $this->loadedMetadata[$realClassName];
-
-            return $this->loadedMetadata[$realClassName];
-        }
-
-        if ($this->cacheDriver) {
-            if (($cached = $this->cacheDriver->fetch($realClassName . $this->cacheSalt)) !== false) {
-                $this->loadedMetadata[$realClassName] = $cached;
-                $this->wakeupReflection($cached, $this->getReflectionService());
-            } else {
-                foreach ($this->loadMetadata($realClassName) as $loadedClassName) {
-                    $this->cacheDriver->save(
-                        $loadedClassName . $this->cacheSalt, $this->loadedMetadata[$loadedClassName], null
-                    );
-                }
-            }
-        } else {
-            $this->loadMetadata($realClassName);
-        }
-
-        if ($className != $realClassName) {
-            // We do not have the alias name in the map, include it
-            $this->loadedMetadata[$className] = $this->loadedMetadata[$realClassName];
-        }
-
-        return $this->loadedMetadata[$className];
-    }
-
-    /**
-     * Checks whether the factory has the metadata for a class loaded already.
-     *
-     * @param string $className
-     *
-     * @return boolean TRUE if the metadata of the class in question is already loaded, FALSE otherwise.
-     */
-    public function hasMetadataFor($className)
-    {
-        return isset($this->loadedMetadata[$className]);
-    }
-
-    /**
-     * Sets the metadata descriptor for a specific class.
-     *
-     * NOTE: This is only useful in very special cases, like when generating proxy classes.
-     *
-     * @param string        $className
-     * @param ClassMetadata $class
-     *
-     * @return void
-     */
-    public function setMetadataFor($className, $class)
-    {
-        $this->loadedMetadata[$className] = $class;
-    }
-
-    /**
-     * Gets an array of parent classes for the given entity class.
-     *
-     * @param string $name
-     *
-     * @return array
-     */
-    protected function getParentClasses($name)
-    {
-        // Collect parent classes, ignoring transient (not-mapped) classes.
-        $parentClasses = array();
-        foreach (array_reverse($this->getReflectionService()->getParentClasses($name)) as $parentClass) {
-            if ( ! $this->getDriver()->isTransient($parentClass)) {
-                $parentClasses[] = $parentClass;
-            }
-        }
-        return $parentClasses;
-    }
-
-    /**
-     * Loads the metadata of the class in question and all it's ancestors whose metadata
-     * is still not loaded.
-     *
-     * Important: The class $name does not necesarily exist at this point here.
-     * Scenarios in a code-generation setup might have access to XML/YAML
-     * Mapping files without the actual PHP code existing here. That is why the
-     * {@see Doctrine\Common\Persistence\Mapping\ReflectionService} interface
-     * should be used for reflection.
-     *
-     * @param string $name The name of the class for which the metadata should get loaded.
-     *
-     * @return array
-     */
-    protected function loadMetadata($name)
-    {
-        if ( ! $this->initialized) {
-            $this->initialize();
-        }
-
-        $loaded = array();
-
-        $parentClasses = $this->getParentClasses($name);
-        $parentClasses[] = $name;
-
-        // Move down the hierarchy of parent classes, starting from the topmost class
-        $parent = null;
-        $rootEntityFound = false;
-        $visited = array();
-        $reflService = $this->getReflectionService();
-        foreach ($parentClasses as $className) {
-            if (isset($this->loadedMetadata[$className])) {
-                $parent = $this->loadedMetadata[$className];
-                if ($this->isEntity($parent)) {
-                    $rootEntityFound = true;
-                    array_unshift($visited, $className);
-                }
-                continue;
-            }
-
-            $class = $this->newClassMetadataInstance($className);
-            $this->initializeReflection($class, $reflService);
-
-            $this->doLoadMetadata($class, $parent, $rootEntityFound, $visited);
-
-            $this->loadedMetadata[$className] = $class;
-
-            $parent = $class;
-
-            if ($this->isEntity($class)) {
-                $rootEntityFound = true;
-                array_unshift($visited, $className);
-            }
-
-            $this->wakeupReflection($class, $reflService);
-
-            $loaded[] = $className;
-        }
-
-        return $loaded;
-    }
-
-    /**
-     * Actually loads the metadata from the underlying metadata.
-     *
-     * @param ClassMetadata      $class
-     * @param ClassMetadata|null $parent
-     * @param bool               $rootEntityFound
-     * @param array              $nonSuperclassParents All parent class names
-     *                                                 that are not marked as mapped superclasses.
-     *
-     * @return void
-     */
-    abstract protected function doLoadMetadata($class, $parent, $rootEntityFound, array $nonSuperclassParents);
-
-    /**
-     * Creates a new ClassMetadata instance for the given class name.
-     *
-     * @param string $className
-     *
-     * @return ClassMetadata
-     */
-    abstract protected function newClassMetadataInstance($className);
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isTransient($class)
-    {
-        if ( ! $this->initialized) {
-            $this->initialize();
-        }
-
-        // Check for namespace alias
-        if (strpos($class, ':') !== false) {
-            list($namespaceAlias, $simpleClassName) = explode(':', $class);
-            $class = $this->getFqcnFromAlias($namespaceAlias, $simpleClassName);
-        }
-
-        return $this->getDriver()->isTransient($class);
-    }
-
-    /**
-     * Sets the reflectionService.
-     *
-     * @param ReflectionService $reflectionService
-     *
-     * @return void
-     */
-    public function setReflectionService(ReflectionService $reflectionService)
-    {
-        $this->reflectionService = $reflectionService;
-    }
-
-    /**
-     * Gets the reflection service associated with this metadata factory.
-     *
-     * @return ReflectionService
-     */
-    public function getReflectionService()
-    {
-        if ($this->reflectionService === null) {
-            $this->reflectionService = new RuntimeReflectionService();
-        }
-        return $this->reflectionService;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ClassMetadata.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ClassMetadata.php
deleted file mode 100644
index b8445f1..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ClassMetadata.php
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-/**
- * Contract for a Doctrine persistence layer ClassMetadata class to implement.
- *
- * @link   www.doctrine-project.org
- * @since  2.1
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Jonathan Wage <jonwage@gmail.com>
- */
-interface ClassMetadata
-{
-    /**
-     * Gets the fully-qualified class name of this persistent class.
-     *
-     * @return string
-     */
-    public function getName();
-
-    /**
-     * Gets the mapped identifier field name.
-     *
-     * The returned structure is an array of the identifier field names.
-     *
-     * @return array
-     */
-    public function getIdentifier();
-
-    /**
-     * Gets the ReflectionClass instance for this mapped class.
-     *
-     * @return \ReflectionClass
-     */
-    public function getReflectionClass();
-
-    /**
-     * Checks if the given field name is a mapped identifier for this class.
-     *
-     * @param string $fieldName
-     *
-     * @return boolean
-     */
-    public function isIdentifier($fieldName);
-
-    /**
-     * Checks if the given field is a mapped property for this class.
-     *
-     * @param string $fieldName
-     *
-     * @return boolean
-     */
-    public function hasField($fieldName);
-
-    /**
-     * Checks if the given field is a mapped association for this class.
-     *
-     * @param string $fieldName
-     *
-     * @return boolean
-     */
-    public function hasAssociation($fieldName);
-
-    /**
-     * Checks if the given field is a mapped single valued association for this class.
-     *
-     * @param string $fieldName
-     *
-     * @return boolean
-     */
-    public function isSingleValuedAssociation($fieldName);
-
-    /**
-     * Checks if the given field is a mapped collection valued association for this class.
-     *
-     * @param string $fieldName
-     *
-     * @return boolean
-     */
-    public function isCollectionValuedAssociation($fieldName);
-
-    /**
-     * A numerically indexed list of field names of this persistent class.
-     *
-     * This array includes identifier fields if present on this class.
-     *
-     * @return array
-     */
-    public function getFieldNames();
-
-    /**
-     * Returns an array of identifier field names numerically indexed.
-     *
-     * @return array
-     */
-    public function getIdentifierFieldNames();
-
-    /**
-     * Returns a numerically indexed list of association names of this persistent class.
-     *
-     * This array includes identifier associations if present on this class.
-     *
-     * @return array
-     */
-    public function getAssociationNames();
-
-    /**
-     * Returns a type name of this field.
-     *
-     * This type names can be implementation specific but should at least include the php types:
-     * integer, string, boolean, float/double, datetime.
-     *
-     * @param string $fieldName
-     *
-     * @return string
-     */
-    public function getTypeOfField($fieldName);
-
-    /**
-     * Returns the target class name of the given association.
-     *
-     * @param string $assocName
-     *
-     * @return string
-     */
-    public function getAssociationTargetClass($assocName);
-
-    /**
-     * Checks if the association is the inverse side of a bidirectional association.
-     *
-     * @param string $assocName
-     *
-     * @return boolean
-     */
-    public function isAssociationInverseSide($assocName);
-
-    /**
-     * Returns the target field of the owning side of the association.
-     *
-     * @param string $assocName
-     *
-     * @return string
-     */
-    public function getAssociationMappedByTargetField($assocName);
-
-    /**
-     * Returns the identifier of this object as an array with field name as key.
-     *
-     * Has to return an empty array if no identifier isset.
-     *
-     * @param object $object
-     *
-     * @return array
-     */
-    public function getIdentifierValues($object);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ClassMetadataFactory.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ClassMetadataFactory.php
deleted file mode 100644
index 3d82881..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ClassMetadataFactory.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-/**
- * Contract for a Doctrine persistence layer ClassMetadata class to implement.
- *
- * @link   www.doctrine-project.org
- * @since  2.1
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Jonathan Wage <jonwage@gmail.com>
- */
-interface ClassMetadataFactory
-{
-    /**
-     * Forces the factory to load the metadata of all classes known to the underlying
-     * mapping driver.
-     *
-     * @return array The ClassMetadata instances of all mapped classes.
-     */
-    public function getAllMetadata();
-
-    /**
-     * Gets the class metadata descriptor for a class.
-     *
-     * @param string $className The name of the class.
-     *
-     * @return ClassMetadata
-     */
-    public function getMetadataFor($className);
-
-    /**
-     * Checks whether the factory has the metadata for a class loaded already.
-     *
-     * @param string $className
-     *
-     * @return boolean TRUE if the metadata of the class in question is already loaded, FALSE otherwise.
-     */
-    public function hasMetadataFor($className);
-
-    /**
-     * Sets the metadata descriptor for a specific class.
-     *
-     * @param string $className
-     *
-     * @param ClassMetadata $class
-     */
-    public function setMetadataFor($className, $class);
-
-    /**
-     * Returns whether the class with the specified name should have its metadata loaded.
-     * This is only the case if it is either mapped directly or as a MappedSuperclass.
-     *
-     * @param string $className
-     *
-     * @return boolean
-     */
-    public function isTransient($className);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php
deleted file mode 100644
index 6668e61..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php
+++ /dev/null
@@ -1,257 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Doctrine\Common\Annotations\AnnotationRegistry;
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * The AnnotationDriver reads the mapping metadata from docblock annotations.
- *
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan H. Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-abstract class AnnotationDriver implements MappingDriver
-{
-    /**
-     * The AnnotationReader.
-     *
-     * @var AnnotationReader
-     */
-    protected $reader;
-
-    /**
-     * The paths where to look for mapping files.
-     *
-     * @var array
-     */
-    protected $paths = array();
-
-    /**
-     * The paths excluded from path where to look for mapping files.
-     *
-     * @var array
-     */
-    protected $excludePaths = array();
-
-    /**
-     * The file extension of mapping documents.
-     *
-     * @var string
-     */
-    protected $fileExtension = '.php';
-
-    /**
-     * Cache for AnnotationDriver#getAllClassNames().
-     *
-     * @var array|null
-     */
-    protected $classNames;
-
-    /**
-     * Name of the entity annotations as keys.
-     *
-     * @var array
-     */
-    protected $entityAnnotationClasses = array();
-
-    /**
-     * Initializes a new AnnotationDriver that uses the given AnnotationReader for reading
-     * docblock annotations.
-     *
-     * @param AnnotationReader  $reader The AnnotationReader to use, duck-typed.
-     * @param string|array|null $paths  One or multiple paths where mapping classes can be found.
-     */
-    public function __construct($reader, $paths = null)
-    {
-        $this->reader = $reader;
-        if ($paths) {
-            $this->addPaths((array) $paths);
-        }
-    }
-
-    /**
-     * Appends lookup paths to metadata driver.
-     *
-     * @param array $paths
-     *
-     * @return void
-     */
-    public function addPaths(array $paths)
-    {
-        $this->paths = array_unique(array_merge($this->paths, $paths));
-    }
-
-    /**
-     * Retrieves the defined metadata lookup paths.
-     *
-     * @return array
-     */
-    public function getPaths()
-    {
-        return $this->paths;
-    }
-
-    /**
-     * Append exclude lookup paths to metadata driver.
-     *
-     * @param array $paths
-     */
-    public function addExcludePaths(array $paths)
-    {
-        $this->excludePaths = array_unique(array_merge($this->excludePaths, $paths));
-    }
-
-    /**
-     * Retrieve the defined metadata lookup exclude paths.
-     *
-     * @return array
-     */
-    public function getExcludePaths()
-    {
-        return $this->excludePaths;
-    }
-
-    /**
-     * Retrieve the current annotation reader
-     *
-     * @return AnnotationReader
-     */
-    public function getReader()
-    {
-        return $this->reader;
-    }
-
-    /**
-     * Gets the file extension used to look for mapping files under.
-     *
-     * @return string
-     */
-    public function getFileExtension()
-    {
-        return $this->fileExtension;
-    }
-
-    /**
-     * Sets the file extension used to look for mapping files under.
-     *
-     * @param string $fileExtension The file extension to set.
-     *
-     * @return void
-     */
-    public function setFileExtension($fileExtension)
-    {
-        $this->fileExtension = $fileExtension;
-    }
-
-    /**
-     * Returns whether the class with the specified name is transient. Only non-transient
-     * classes, that is entities and mapped superclasses, should have their metadata loaded.
-     *
-     * A class is non-transient if it is annotated with an annotation
-     * from the {@see AnnotationDriver::entityAnnotationClasses}.
-     *
-     * @param string $className
-     *
-     * @return boolean
-     */
-    public function isTransient($className)
-    {
-        $classAnnotations = $this->reader->getClassAnnotations(new \ReflectionClass($className));
-
-        foreach ($classAnnotations as $annot) {
-            if (isset($this->entityAnnotationClasses[get_class($annot)])) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAllClassNames()
-    {
-        if ($this->classNames !== null) {
-            return $this->classNames;
-        }
-
-        if (!$this->paths) {
-            throw MappingException::pathRequired();
-        }
-
-        $classes = array();
-        $includedFiles = array();
-
-        foreach ($this->paths as $path) {
-            if ( ! is_dir($path)) {
-                throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path);
-            }
-
-            $iterator = new \RegexIterator(
-                new \RecursiveIteratorIterator(
-                    new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS),
-                    \RecursiveIteratorIterator::LEAVES_ONLY
-                ),
-                '/^.+' . preg_quote($this->fileExtension) . '$/i',
-                \RecursiveRegexIterator::GET_MATCH
-            );
-
-            foreach ($iterator as $file) {
-                $sourceFile = $file[0];
-
-                if ( ! preg_match('(^phar:)i', $sourceFile)) {
-                    $sourceFile = realpath($sourceFile);
-                }
-
-                foreach ($this->excludePaths as $excludePath) {
-                    $exclude = str_replace('\\', '/', realpath($excludePath));
-                    $current = str_replace('\\', '/', $sourceFile);
-
-                    if (strpos($current, $exclude) !== false) {
-                        continue 2;
-                    }
-                }
-
-                require_once $sourceFile;
-
-                $includedFiles[] = $sourceFile;
-            }
-        }
-
-        $declared = get_declared_classes();
-
-        foreach ($declared as $className) {
-            $rc = new \ReflectionClass($className);
-            $sourceFile = $rc->getFileName();
-            if (in_array($sourceFile, $includedFiles) && ! $this->isTransient($className)) {
-                $classes[] = $className;
-            }
-        }
-
-        $this->classNames = $classes;
-
-        return $classes;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/DefaultFileLocator.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/DefaultFileLocator.php
deleted file mode 100644
index 6a9e276..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/DefaultFileLocator.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * Locates the file that contains the metadata information for a given class name.
- *
- * This behavior is independent of the actual content of the file. It just detects
- * the file which is responsible for the given class name.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class DefaultFileLocator implements FileLocator
-{
-    /**
-     * The paths where to look for mapping files.
-     *
-     * @var array
-     */
-    protected $paths = array();
-
-    /**
-     * The file extension of mapping documents.
-     *
-     * @var string|null
-     */
-    protected $fileExtension;
-
-    /**
-     * Initializes a new FileDriver that looks in the given path(s) for mapping
-     * documents and operates in the specified operating mode.
-     *
-     * @param string|array $paths         One or multiple paths where mapping documents can be found.
-     * @param string|null  $fileExtension The file extension of mapping documents.
-     */
-    public function __construct($paths, $fileExtension = null)
-    {
-        $this->addPaths((array) $paths);
-        $this->fileExtension = $fileExtension;
-    }
-
-    /**
-     * Appends lookup paths to metadata driver.
-     *
-     * @param array $paths
-     *
-     * @return void
-     */
-    public function addPaths(array $paths)
-    {
-        $this->paths = array_unique(array_merge($this->paths, $paths));
-    }
-
-    /**
-     * Retrieves the defined metadata lookup paths.
-     *
-     * @return array
-     */
-    public function getPaths()
-    {
-        return $this->paths;
-    }
-
-    /**
-     * Gets the file extension used to look for mapping files under.
-     *
-     * @return string|null
-     */
-    public function getFileExtension()
-    {
-        return $this->fileExtension;
-    }
-
-    /**
-     * Sets the file extension used to look for mapping files under.
-     *
-     * @param string|null $fileExtension The file extension to set.
-     *
-     * @return void
-     */
-    public function setFileExtension($fileExtension)
-    {
-        $this->fileExtension = $fileExtension;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function findMappingFile($className)
-    {
-        $fileName = str_replace('\\', '.', $className) . $this->fileExtension;
-
-        // Check whether file exists
-        foreach ($this->paths as $path) {
-            if (is_file($path . DIRECTORY_SEPARATOR . $fileName)) {
-                return $path . DIRECTORY_SEPARATOR . $fileName;
-            }
-        }
-
-        throw MappingException::mappingFileNotFound($className, $fileName);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAllClassNames($globalBasename)
-    {
-        $classes = array();
-
-        if ($this->paths) {
-            foreach ($this->paths as $path) {
-                if ( ! is_dir($path)) {
-                    throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path);
-                }
-
-                $iterator = new \RecursiveIteratorIterator(
-                    new \RecursiveDirectoryIterator($path),
-                    \RecursiveIteratorIterator::LEAVES_ONLY
-                );
-
-                foreach ($iterator as $file) {
-                    $fileName = $file->getBasename($this->fileExtension);
-
-                    if ($fileName == $file->getBasename() || $fileName == $globalBasename) {
-                        continue;
-                    }
-
-                    // NOTE: All files found here means classes are not transient!
-                    $classes[] = str_replace('.', '\\', $fileName);
-                }
-            }
-        }
-
-        return $classes;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function fileExists($className)
-    {
-        $fileName = str_replace('\\', '.', $className) . $this->fileExtension;
-
-        // Check whether file exists
-        foreach ((array) $this->paths as $path) {
-            if (is_file($path . DIRECTORY_SEPARATOR . $fileName)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileDriver.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileDriver.php
deleted file mode 100644
index ccc64fa..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileDriver.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * Base driver for file-based metadata drivers.
- *
- * A file driver operates in a mode where it loads the mapping files of individual
- * classes on demand. This requires the user to adhere to the convention of 1 mapping
- * file per class and the file names of the mapping files must correspond to the full
- * class name, including namespace, with the namespace delimiters '\', replaced by dots '.'.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan H. Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-abstract class FileDriver implements MappingDriver
-{
-    /**
-     * @var FileLocator
-     */
-    protected $locator;
-
-    /**
-     * @var array|null
-     */
-    protected $classCache;
-
-    /**
-     * @var string|null
-     */
-    protected $globalBasename;
-
-    /**
-     * Initializes a new FileDriver that looks in the given path(s) for mapping
-     * documents and operates in the specified operating mode.
-     *
-     * @param string|array|FileLocator $locator       A FileLocator or one/multiple paths
-     *                                                where mapping documents can be found.
-     * @param string|null              $fileExtension
-     */
-    public function __construct($locator, $fileExtension = null)
-    {
-        if ($locator instanceof FileLocator) {
-            $this->locator = $locator;
-        } else {
-            $this->locator = new DefaultFileLocator((array)$locator, $fileExtension);
-        }
-    }
-
-    /**
-     * Sets the global basename.
-     *
-     * @param string $file
-     *
-     * @return void
-     */
-    public function setGlobalBasename($file)
-    {
-        $this->globalBasename = $file;
-    }
-
-    /**
-     * Retrieves the global basename.
-     *
-     * @return string|null
-     */
-    public function getGlobalBasename()
-    {
-        return $this->globalBasename;
-    }
-
-    /**
-     * Gets the element of schema meta data for the class from the mapping file.
-     * This will lazily load the mapping file if it is not loaded yet.
-     *
-     * @param string $className
-     *
-     * @return array The element of schema meta data.
-     *
-     * @throws MappingException
-     */
-    public function getElement($className)
-    {
-        if ($this->classCache === null) {
-            $this->initialize();
-        }
-
-        if (isset($this->classCache[$className])) {
-            return $this->classCache[$className];
-        }
-
-        $result = $this->loadMappingFile($this->locator->findMappingFile($className));
-        if (!isset($result[$className])) {
-            throw MappingException::invalidMappingFile($className, str_replace('\\', '.', $className) . $this->locator->getFileExtension());
-        }
-
-        return $result[$className];
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isTransient($className)
-    {
-        if ($this->classCache === null) {
-            $this->initialize();
-        }
-
-        if (isset($this->classCache[$className])) {
-            return false;
-        }
-
-        return !$this->locator->fileExists($className);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAllClassNames()
-    {
-        if ($this->classCache === null) {
-            $this->initialize();
-        }
-
-        $classNames = (array)$this->locator->getAllClassNames($this->globalBasename);
-        if ($this->classCache) {
-            $classNames = array_merge(array_keys($this->classCache), $classNames);
-        }
-        return $classNames;
-    }
-
-    /**
-     * Loads a mapping file with the given name and returns a map
-     * from class/entity names to their corresponding file driver elements.
-     *
-     * @param string $file The mapping file to load.
-     *
-     * @return array
-     */
-    abstract protected function loadMappingFile($file);
-
-    /**
-     * Initializes the class cache from all the global files.
-     *
-     * Using this feature adds a substantial performance hit to file drivers as
-     * more metadata has to be loaded into memory than might actually be
-     * necessary. This may not be relevant to scenarios where caching of
-     * metadata is in place, however hits very hard in scenarios where no
-     * caching is used.
-     *
-     * @return void
-     */
-    protected function initialize()
-    {
-        $this->classCache = array();
-        if (null !== $this->globalBasename) {
-            foreach ($this->locator->getPaths() as $path) {
-                $file = $path.'/'.$this->globalBasename.$this->locator->getFileExtension();
-                if (is_file($file)) {
-                    $this->classCache = array_merge(
-                        $this->classCache,
-                        $this->loadMappingFile($file)
-                    );
-                }
-            }
-        }
-    }
-
-    /**
-     * Retrieves the locator used to discover mapping files by className.
-     *
-     * @return FileLocator
-     */
-    public function getLocator()
-    {
-        return $this->locator;
-    }
-
-    /**
-     * Sets the locator used to discover mapping files by className.
-     *
-     * @param FileLocator $locator
-     */
-    public function setLocator(FileLocator $locator)
-    {
-        $this->locator = $locator;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileLocator.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileLocator.php
deleted file mode 100644
index f622856..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileLocator.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-/**
- * Locates the file that contains the metadata information for a given class name.
- *
- * This behavior is independent of the actual content of the file. It just detects
- * the file which is responsible for the given class name.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface FileLocator
-{
-    /**
-     * Locates mapping file for the given class name.
-     *
-     * @param string $className
-     *
-     * @return string
-     */
-    public function findMappingFile($className);
-
-    /**
-     * Gets all class names that are found with this file locator.
-     *
-     * @param string $globalBasename Passed to allow excluding the basename.
-     *
-     * @return array
-     */
-    public function getAllClassNames($globalBasename);
-
-    /**
-     * Checks if a file can be found for this class name.
-     *
-     * @param string $className
-     *
-     * @return bool
-     */
-    public function fileExists($className);
-
-    /**
-     * Gets all the paths that this file locator looks for mapping files.
-     *
-     * @return array
-     */
-    public function getPaths();
-
-    /**
-     * Gets the file extension that mapping files are suffixed with.
-     *
-     * @return string
-     */
-    public function getFileExtension();
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriver.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriver.php
deleted file mode 100644
index b5d7ec0..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriver.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-/**
- * Contract for metadata drivers.
- *
- * @since  2.2
- * @author Jonathan H. Wage <jonwage@gmail.com>
- */
-interface MappingDriver
-{
-    /**
-     * Loads the metadata for the specified class into the provided container.
-     *
-     * @param string        $className
-     * @param ClassMetadata $metadata
-     *
-     * @return void
-     */
-    public function loadMetadataForClass($className, ClassMetadata $metadata);
-
-    /**
-     * Gets the names of all mapped classes known to this driver.
-     *
-     * @return array The names of all mapped classes known to this driver.
-     */
-    public function getAllClassNames();
-
-    /**
-     * Returns whether the class with the specified name should have its metadata loaded.
-     * This is only the case if it is either mapped as an Entity or a MappedSuperclass.
-     *
-     * @param string $className
-     *
-     * @return boolean
-     */
-    public function isTransient($className);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php
deleted file mode 100644
index 5fa9a7a..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\Driver\MappingDriver;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * The DriverChain allows you to add multiple other mapping drivers for
- * certain namespaces.
- *
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan H. Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class MappingDriverChain implements MappingDriver
-{
-    /**
-     * The default driver.
-     *
-     * @var MappingDriver|null
-     */
-    private $defaultDriver = null;
-
-    /**
-     * @var array
-     */
-    private $drivers = array();
-
-    /**
-     * Gets the default driver.
-     *
-     * @return MappingDriver|null
-     */
-    public function getDefaultDriver()
-    {
-        return $this->defaultDriver;
-    }
-
-    /**
-     * Set the default driver.
-     *
-     * @param MappingDriver $driver
-     *
-     * @return void
-     */
-    public function setDefaultDriver(MappingDriver $driver)
-    {
-        $this->defaultDriver = $driver;
-    }
-
-    /**
-     * Adds a nested driver.
-     *
-     * @param MappingDriver $nestedDriver
-     * @param string        $namespace
-     *
-     * @return void
-     */
-    public function addDriver(MappingDriver $nestedDriver, $namespace)
-    {
-        $this->drivers[$namespace] = $nestedDriver;
-    }
-
-    /**
-     * Gets the array of nested drivers.
-     *
-     * @return array $drivers
-     */
-    public function getDrivers()
-    {
-        return $this->drivers;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function loadMetadataForClass($className, ClassMetadata $metadata)
-    {
-        /* @var $driver MappingDriver */
-        foreach ($this->drivers as $namespace => $driver) {
-            if (strpos($className, $namespace) === 0) {
-                $driver->loadMetadataForClass($className, $metadata);
-                return;
-            }
-        }
-
-        if (null !== $this->defaultDriver) {
-            $this->defaultDriver->loadMetadataForClass($className, $metadata);
-            return;
-        }
-
-        throw MappingException::classNotFoundInNamespaces($className, array_keys($this->drivers));
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAllClassNames()
-    {
-        $classNames = array();
-        $driverClasses = array();
-
-        /* @var $driver MappingDriver */
-        foreach ($this->drivers AS $namespace => $driver) {
-            $oid = spl_object_hash($driver);
-
-            if (!isset($driverClasses[$oid])) {
-                $driverClasses[$oid] = $driver->getAllClassNames();
-            }
-
-            foreach ($driverClasses[$oid] AS $className) {
-                if (strpos($className, $namespace) === 0) {
-                    $classNames[$className] = true;
-                }
-            }
-        }
-
-        if (null !== $this->defaultDriver) {
-            foreach ($this->defaultDriver->getAllClassNames() as $className) {
-                $classNames[$className] = true;
-            }
-        }
-
-        return array_keys($classNames);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isTransient($className)
-    {
-        /* @var $driver MappingDriver */
-        foreach ($this->drivers AS $namespace => $driver) {
-            if (strpos($className, $namespace) === 0) {
-                return $driver->isTransient($className);
-            }
-        }
-
-        if ($this->defaultDriver !== null) {
-            return $this->defaultDriver->isTransient($className);
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/PHPDriver.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/PHPDriver.php
deleted file mode 100644
index 31651f3..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/PHPDriver.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-/**
- * The PHPDriver includes php files which just populate ClassMetadataInfo
- * instances with plain PHP code.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan H. Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class PHPDriver extends FileDriver
-{
-    /**
-     * {@inheritDoc}
-     */
-    protected $metadata;
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __construct($locator, $fileExtension = null)
-    {
-        $fileExtension = ".php";
-        parent::__construct($locator, $fileExtension);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function loadMetadataForClass($className, ClassMetadata $metadata)
-    {
-        $this->metadata = $metadata;
-        $this->loadMappingFile($this->locator->findMappingFile($className));
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function loadMappingFile($file)
-    {
-        $metadata = $this->metadata;
-        include $file;
-
-        return array($metadata->getName() => $metadata);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/StaticPHPDriver.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/StaticPHPDriver.php
deleted file mode 100644
index df8f477..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/StaticPHPDriver.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * The StaticPHPDriver calls a static loadMetadata() method on your entity
- * classes where you can manually populate the ClassMetadata instance.
- *
- * @link   www.doctrine-project.org
- * @since  2.2
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan H. Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class StaticPHPDriver implements MappingDriver
-{
-    /**
-     * Paths of entity directories.
-     *
-     * @var array
-     */
-    private $paths = array();
-
-    /**
-     * Map of all class names.
-     *
-     * @var array
-     */
-    private $classNames;
-
-    /**
-     * Constructor.
-     *
-     * @param array|string $paths
-     */
-    public function __construct($paths)
-    {
-        $this->addPaths((array) $paths);
-    }
-
-    /**
-     * Adds paths.
-     *
-     * @param array $paths
-     *
-     * @return void
-     */
-    public function addPaths(array $paths)
-    {
-        $this->paths = array_unique(array_merge($this->paths, $paths));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadMetadataForClass($className, ClassMetadata $metadata)
-    {
-        $className::loadMetadata($metadata);
-    }
-
-    /**
-     * {@inheritDoc}
-     * @todo Same code exists in AnnotationDriver, should we re-use it somehow or not worry about it?
-     */
-    public function getAllClassNames()
-    {
-        if ($this->classNames !== null) {
-            return $this->classNames;
-        }
-
-        if (!$this->paths) {
-            throw MappingException::pathRequired();
-        }
-
-        $classes = array();
-        $includedFiles = array();
-
-        foreach ($this->paths as $path) {
-            if (!is_dir($path)) {
-                throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path);
-            }
-
-            $iterator = new \RecursiveIteratorIterator(
-                new \RecursiveDirectoryIterator($path),
-                \RecursiveIteratorIterator::LEAVES_ONLY
-            );
-
-            foreach ($iterator as $file) {
-                if ($file->getBasename('.php') == $file->getBasename()) {
-                    continue;
-                }
-
-                $sourceFile = realpath($file->getPathName());
-                require_once $sourceFile;
-                $includedFiles[] = $sourceFile;
-            }
-        }
-
-        $declared = get_declared_classes();
-
-        foreach ($declared as $className) {
-            $rc = new \ReflectionClass($className);
-            $sourceFile = $rc->getFileName();
-            if (in_array($sourceFile, $includedFiles) && !$this->isTransient($className)) {
-                $classes[] = $className;
-            }
-        }
-
-        $this->classNames = $classes;
-
-        return $classes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isTransient($className)
-    {
-        return ! method_exists($className, 'loadMetadata');
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/SymfonyFileLocator.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/SymfonyFileLocator.php
deleted file mode 100644
index dd4d741..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/SymfonyFileLocator.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping\Driver;
-
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * The Symfony File Locator makes a simplifying assumptions compared
- * to the DefaultFileLocator. By assuming paths only contain entities of a certain
- * namespace the mapping files consists of the short classname only.
- *
- * @author  Fabien Potencier <fabien@symfony.com>
- * @author  Benjamin Eberlei <kontakt@beberlei.de>
- * @license MIT
- */
-class SymfonyFileLocator implements FileLocator
-{
-    /**
-     * The paths where to look for mapping files.
-     *
-     * @var array
-     */
-    protected $paths = array();
-
-    /**
-     * A map of mapping directory path to namespace prefix used to expand class shortnames.
-     *
-     * @var array
-     */
-    protected $prefixes = array();
-
-    /**
-     * File extension that is searched for.
-     *
-     * @var string|null
-     */
-    protected $fileExtension;
-
-    /**
-     * Constructor.
-     *
-     * @param array       $prefixes
-     * @param string|null $fileExtension
-     */
-    public function __construct(array $prefixes, $fileExtension = null)
-    {
-        $this->addNamespacePrefixes($prefixes);
-        $this->fileExtension = $fileExtension;
-    }
-
-    /**
-     * Adds Namespace Prefixes.
-     *
-     * @param array $prefixes
-     *
-     * @return void
-     */
-    public function addNamespacePrefixes(array $prefixes)
-    {
-        $this->prefixes = array_merge($this->prefixes, $prefixes);
-        $this->paths = array_merge($this->paths, array_keys($prefixes));
-    }
-
-    /**
-     * Gets Namespace Prefixes.
-     *
-     * @return array
-     */
-    public function getNamespacePrefixes()
-    {
-        return $this->prefixes;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPaths()
-    {
-        return $this->paths;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getFileExtension()
-    {
-        return $this->fileExtension;
-    }
-
-    /**
-     * Sets the file extension used to look for mapping files under.
-     *
-     * @param string $fileExtension The file extension to set.
-     *
-     * @return void
-     */
-    public function setFileExtension($fileExtension)
-    {
-        $this->fileExtension = $fileExtension;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function fileExists($className)
-    {
-        $defaultFileName = str_replace('\\', '.', $className).$this->fileExtension;
-        foreach ($this->paths as $path) {
-            if (!isset($this->prefixes[$path])) {
-                // global namespace class
-                if (is_file($path.DIRECTORY_SEPARATOR.$defaultFileName)) {
-                    return true;
-                }
-
-                continue;
-            }
-
-            $prefix = $this->prefixes[$path];
-
-            if (0 !== strpos($className, $prefix.'\\')) {
-                continue;
-            }
-
-            $filename = $path.'/'.strtr(substr($className, strlen($prefix)+1), '\\', '.').$this->fileExtension;
-            return is_file($filename);
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAllClassNames($globalBasename = null)
-    {
-        $classes = array();
-
-        if ($this->paths) {
-            foreach ((array) $this->paths as $path) {
-                if (!is_dir($path)) {
-                    throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path);
-                }
-
-                $iterator = new \RecursiveIteratorIterator(
-                    new \RecursiveDirectoryIterator($path),
-                    \RecursiveIteratorIterator::LEAVES_ONLY
-                );
-
-                foreach ($iterator as $file) {
-                    $fileName = $file->getBasename($this->fileExtension);
-
-                    if ($fileName == $file->getBasename() || $fileName == $globalBasename) {
-                        continue;
-                    }
-
-                    // NOTE: All files found here means classes are not transient!
-                    if (isset($this->prefixes[$path])) {
-                        $classes[] = $this->prefixes[$path].'\\'.str_replace('.', '\\', $fileName);
-                    } else {
-                        $classes[] = str_replace('.', '\\', $fileName);
-                    }
-                }
-            }
-        }
-
-        return $classes;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function findMappingFile($className)
-    {
-        $defaultFileName = str_replace('\\', '.', $className).$this->fileExtension;
-        foreach ($this->paths as $path) {
-            if (!isset($this->prefixes[$path])) {
-                if (is_file($path.DIRECTORY_SEPARATOR.$defaultFileName)) {
-                    return $path.DIRECTORY_SEPARATOR.$defaultFileName;
-                }
-
-                continue;
-            }
-
-            $prefix = $this->prefixes[$path];
-
-            if (0 !== strpos($className, $prefix.'\\')) {
-                continue;
-            }
-
-            $filename = $path.'/'.strtr(substr($className, strlen($prefix)+1), '\\', '.').$this->fileExtension;
-            if (is_file($filename)) {
-                return $filename;
-            }
-
-            throw MappingException::mappingFileNotFound($className, $filename);
-        }
-
-        throw MappingException::mappingFileNotFound($className, substr($className, strrpos($className, '\\') + 1).$this->fileExtension);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php
deleted file mode 100644
index c8c32b2..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-/**
- * A MappingException indicates that something is wrong with the mapping setup.
- *
- * @since 2.2
- */
-class MappingException extends \Exception
-{
-    /**
-     * @param string $className
-     * @param array  $namespaces
-     *
-     * @return MappingException
-     */
-    public static function classNotFoundInNamespaces($className, $namespaces)
-    {
-        return new self("The class '" . $className . "' was not found in the ".
-            "chain configured namespaces " . implode(", ", $namespaces));
-    }
-
-    /**
-     * @return MappingException
-     */
-    public static function pathRequired()
-    {
-        return new self("Specifying the paths to your entities is required ".
-            "in the AnnotationDriver to retrieve all class names.");
-    }
-
-    /**
-     * @param string|null $path
-     *
-     * @return MappingException
-     */
-    public static function fileMappingDriversRequireConfiguredDirectoryPath($path = null)
-    {
-        if ( ! empty($path)) {
-            $path = '[' . $path . ']';
-        }
-
-        return new self(
-            'File mapping drivers must have a valid directory path, ' .
-            'however the given path ' . $path . ' seems to be incorrect!'
-        );
-    }
-
-    /**
-     * @param string $entityName
-     * @param string $fileName
-     *
-     * @return MappingException
-     */
-    public static function mappingFileNotFound($entityName, $fileName)
-    {
-        return new self("No mapping file found named '$fileName' for class '$entityName'.");
-    }
-
-    /**
-     * @param string $entityName
-     * @param string $fileName
-     *
-     * @return MappingException
-     */
-    public static function invalidMappingFile($entityName, $fileName)
-    {
-        return new self("Invalid mapping file '$fileName' for class '$entityName'.");
-    }
-
-    /**
-     * @param string $className
-     *
-     * @return \Doctrine\Common\Persistence\Mapping\MappingException
-     */
-    public static function nonExistingClass($className)
-    {
-        return new self("Class '$className' does not exist");
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ReflectionService.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ReflectionService.php
deleted file mode 100644
index 0088ed5..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/ReflectionService.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-/**
- * Very simple reflection service abstraction.
- *
- * This is required inside metadata layers that may require either
- * static or runtime reflection.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-interface ReflectionService
-{
-    /**
-     * Returns an array of the parent classes (not interfaces) for the given class.
-     *
-     * @param string $class
-     *
-     * @throws \Doctrine\Common\Persistence\Mapping\MappingException
-     *
-     * @return array
-     */
-    public function getParentClasses($class);
-
-    /**
-     * Returns the shortname of a class.
-     *
-     * @param string $class
-     *
-     * @return string
-     */
-    public function getClassShortName($class);
-
-    /**
-     * @param string $class
-     *
-     * @return string
-     */
-    public function getClassNamespace($class);
-
-    /**
-     * Returns a reflection class instance or null.
-     *
-     * @param string $class
-     *
-     * @return \ReflectionClass|null
-     */
-    public function getClass($class);
-
-    /**
-     * Returns an accessible property (setAccessible(true)) or null.
-     *
-     * @param string $class
-     * @param string $property
-     *
-     * @return \ReflectionProperty|null
-     */
-    public function getAccessibleProperty($class, $property);
-
-    /**
-     * Checks if the class have a public method with the given name.
-     *
-     * @param mixed $class
-     * @param mixed $method
-     *
-     * @return bool
-     */
-    public function hasPublicMethod($class, $method);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php
deleted file mode 100644
index b9acf9c..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-use ReflectionClass;
-use ReflectionProperty;
-use ReflectionMethod;
-use ReflectionException;
-
-use Doctrine\Common\Reflection\RuntimePublicReflectionProperty;
-use Doctrine\Common\Persistence\Mapping\MappingException;
-
-/**
- * PHP Runtime Reflection Service.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class RuntimeReflectionService implements ReflectionService
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function getParentClasses($class)
-    {
-        if ( ! class_exists($class)) {
-            throw MappingException::nonExistingClass($class);
-        }
-
-        return class_parents($class);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassShortName($class)
-    {
-        $reflectionClass = new ReflectionClass($class);
-
-        return $reflectionClass->getShortName();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassNamespace($class)
-    {
-        $reflectionClass = new ReflectionClass($class);
-
-        return $reflectionClass->getNamespaceName();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClass($class)
-    {
-        return new ReflectionClass($class);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAccessibleProperty($class, $property)
-    {
-        $reflectionProperty = new ReflectionProperty($class, $property);
-
-        if ($reflectionProperty->isPublic()) {
-            $reflectionProperty = new RuntimePublicReflectionProperty($class, $property);
-        }
-
-        $reflectionProperty->setAccessible(true);
-
-        return $reflectionProperty;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasPublicMethod($class, $method)
-    {
-        try {
-            $reflectionMethod = new ReflectionMethod($class, $method);
-        } catch (ReflectionException $e) {
-            return false;
-        }
-
-        return $reflectionMethod->isPublic();
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php
deleted file mode 100644
index e5bcb06..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence\Mapping;
-
-/**
- * PHP Runtime Reflection Service.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class StaticReflectionService implements ReflectionService
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function getParentClasses($class)
-    {
-        return array();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassShortName($className)
-    {
-        if (strpos($className, '\\') !== false) {
-            $className = substr($className, strrpos($className, "\\")+1);
-        }
-        return $className;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClassNamespace($className)
-    {
-        $namespace = '';
-        if (strpos($className, '\\') !== false) {
-            $namespace = strrev(substr( strrev($className), strpos(strrev($className), '\\')+1 ));
-        }
-        return $namespace;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClass($class)
-    {
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAccessibleProperty($class, $property)
-    {
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasPublicMethod($class, $method)
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php
deleted file mode 100644
index 02208c9..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-/**
- * Contract for a Doctrine persistence layer ObjectManager class to implement.
- *
- * @link   www.doctrine-project.org
- * @since  2.1
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Jonathan Wage <jonwage@gmail.com>
- */
-interface ObjectManager
-{
-    /**
-     * Finds an object by its identifier.
-     *
-     * This is just a convenient shortcut for getRepository($className)->find($id).
-     *
-     * @param string $className The class name of the object to find.
-     * @param mixed  $id        The identity of the object to find.
-     *
-     * @return object The found object.
-     */
-    public function find($className, $id);
-
-    /**
-     * Tells the ObjectManager to make an instance managed and persistent.
-     *
-     * The object will be entered into the database as a result of the flush operation.
-     *
-     * NOTE: The persist operation always considers objects that are not yet known to
-     * this ObjectManager as NEW. Do not pass detached objects to the persist operation.
-     *
-     * @param object $object The instance to make managed and persistent.
-     *
-     * @return void
-     */
-    public function persist($object);
-
-    /**
-     * Removes an object instance.
-     *
-     * A removed object will be removed from the database as a result of the flush operation.
-     *
-     * @param object $object The object instance to remove.
-     *
-     * @return void
-     */
-    public function remove($object);
-
-    /**
-     * Merges the state of a detached object into the persistence context
-     * of this ObjectManager and returns the managed copy of the object.
-     * The object passed to merge will not become associated/managed with this ObjectManager.
-     *
-     * @param object $object
-     *
-     * @return object
-     */
-    public function merge($object);
-
-    /**
-     * Clears the ObjectManager. All objects that are currently managed
-     * by this ObjectManager become detached.
-     *
-     * @param string|null $objectName if given, only objects of this type will get detached.
-     *
-     * @return void
-     */
-    public function clear($objectName = null);
-
-    /**
-     * Detaches an object from the ObjectManager, causing a managed object to
-     * become detached. Unflushed changes made to the object if any
-     * (including removal of the object), will not be synchronized to the database.
-     * Objects which previously referenced the detached object will continue to
-     * reference it.
-     *
-     * @param object $object The object to detach.
-     *
-     * @return void
-     */
-    public function detach($object);
-
-    /**
-     * Refreshes the persistent state of an object from the database,
-     * overriding any local changes that have not yet been persisted.
-     *
-     * @param object $object The object to refresh.
-     *
-     * @return void
-     */
-    public function refresh($object);
-
-    /**
-     * Flushes all changes to objects that have been queued up to now to the database.
-     * This effectively synchronizes the in-memory state of managed objects with the
-     * database.
-     *
-     * @return void
-     */
-    public function flush();
-
-    /**
-     * Gets the repository for a class.
-     *
-     * @param string $className
-     *
-     * @return \Doctrine\Common\Persistence\ObjectRepository
-     */
-    public function getRepository($className);
-
-    /**
-     * Returns the ClassMetadata descriptor for a class.
-     *
-     * The class name must be the fully-qualified class name without a leading backslash
-     * (as it is returned by get_class($obj)).
-     *
-     * @param string $className
-     *
-     * @return \Doctrine\Common\Persistence\Mapping\ClassMetadata
-     */
-    public function getClassMetadata($className);
-
-    /**
-     * Gets the metadata factory used to gather the metadata of classes.
-     *
-     * @return \Doctrine\Common\Persistence\Mapping\ClassMetadataFactory
-     */
-    public function getMetadataFactory();
-
-    /**
-     * Helper method to initialize a lazy loading proxy or persistent collection.
-     *
-     * This method is a no-op for other objects.
-     *
-     * @param object $obj
-     *
-     * @return void
-     */
-    public function initializeObject($obj);
-
-    /**
-     * Checks if the object is part of the current UnitOfWork and therefore managed.
-     *
-     * @param object $object
-     *
-     * @return bool
-     */
-    public function contains($object);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManagerAware.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManagerAware.php
deleted file mode 100644
index 9bc248a..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManagerAware.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-/**
- * Makes a Persistent Objects aware of its own object-manager.
- *
- * Using this interface the managing object manager and class metadata instances
- * are injected into the persistent object after construction. This allows
- * you to implement ActiveRecord functionality on top of the persistence-ignorance
- * that Doctrine propagates.
- *
- * Word of Warning: This is a very powerful hook to change how you can work with your domain models.
- * Using this hook will break the Single Responsibility Principle inside your Domain Objects
- * and increase the coupling of database and objects.
- *
- * Every ObjectManager has to implement this functionality itself.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-interface ObjectManagerAware
-{
-    /**
-     * Injects responsible ObjectManager and the ClassMetadata into this persistent object.
-     *
-     * @param ObjectManager $objectManager
-     * @param ClassMetadata $classMetadata
-     *
-     * @return void
-     */
-    public function injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManagerDecorator.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManagerDecorator.php
deleted file mode 100644
index 8946475..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManagerDecorator.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-/**
- * Base class to simplify ObjectManager decorators
- *
- * @license http://opensource.org/licenses/MIT MIT
- * @link    www.doctrine-project.org
- * @since   2.4
- * @author  Lars Strojny <lars@strojny.net>
- */
-abstract class ObjectManagerDecorator implements ObjectManager
-{
-    /**
-     * @var ObjectManager
-     */
-    protected $wrapped;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($className, $id)
-    {
-        return $this->wrapped->find($className, $id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function persist($object)
-    {
-        return $this->wrapped->persist($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function remove($object)
-    {
-        return $this->wrapped->remove($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function merge($object)
-    {
-        return $this->wrapped->merge($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear($objectName = null)
-    {
-        return $this->wrapped->clear($objectName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function detach($object)
-    {
-        return $this->wrapped->detach($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function refresh($object)
-    {
-        return $this->wrapped->refresh($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function flush()
-    {
-        return $this->wrapped->flush();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRepository($className)
-    {
-        return $this->wrapped->getRepository($className);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getClassMetadata($className)
-    {
-        return $this->wrapped->getClassMetadata($className);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFactory()
-    {
-        return $this->wrapped->getMetadataFactory();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function initializeObject($obj)
-    {
-        return $this->wrapped->initializeObject($obj);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function contains($object)
-    {
-        return $this->wrapped->contains($object);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectRepository.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectRepository.php
deleted file mode 100644
index f607219..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectRepository.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-/**
- * Contract for a Doctrine persistence layer ObjectRepository class to implement.
- *
- * @link   www.doctrine-project.org
- * @since  2.1
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Jonathan Wage <jonwage@gmail.com>
- */
-interface ObjectRepository
-{
-    /**
-     * Finds an object by its primary key / identifier.
-     *
-     * @param mixed $id The identifier.
-     *
-     * @return object The object.
-     */
-    public function find($id);
-
-    /**
-     * Finds all objects in the repository.
-     *
-     * @return array The objects.
-     */
-    public function findAll();
-
-    /**
-     * Finds objects by a set of criteria.
-     *
-     * Optionally sorting and limiting details can be passed. An implementation may throw
-     * an UnexpectedValueException if certain values of the sorting or limiting details are
-     * not supported.
-     *
-     * @param array      $criteria
-     * @param array|null $orderBy
-     * @param int|null   $limit
-     * @param int|null   $offset
-     *
-     * @return array The objects.
-     *
-     * @throws \UnexpectedValueException
-     */
-    public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null);
-
-    /**
-     * Finds a single object by a set of criteria.
-     *
-     * @param array $criteria The criteria.
-     *
-     * @return object The object.
-     */
-    public function findOneBy(array $criteria);
-
-    /**
-     * Returns the class name of the object managed by the repository.
-     *
-     * @return string
-     */
-    public function getClassName();
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/PersistentObject.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/PersistentObject.php
deleted file mode 100644
index 08c6942..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/PersistentObject.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use Doctrine\Common\Collections\ArrayCollection;
-use Doctrine\Common\Collections\Collection;
-
-/**
- * PersistentObject base class that implements getter/setter methods for all mapped fields and associations
- * by overriding __call.
- *
- * This class is a forward compatible implementation of the PersistentObject trait.
- *
- * Limitations:
- *
- * 1. All persistent objects have to be associated with a single ObjectManager, multiple
- *    ObjectManagers are not supported. You can set the ObjectManager with `PersistentObject#setObjectManager()`.
- * 2. Setters and getters only work if a ClassMetadata instance was injected into the PersistentObject.
- *    This is either done on `postLoad` of an object or by accessing the global object manager.
- * 3. There are no hooks for setters/getters. Just implement the method yourself instead of relying on __call().
- * 4. Slower than handcoded implementations: An average of 7 method calls per access to a field and 11 for an association.
- * 5. Only the inverse side associations get autoset on the owning side as well. Setting objects on the owning side
- *    will not set the inverse side associations.
- *
- * @example
- *
- *  PersistentObject::setObjectManager($em);
- *
- *  class Foo extends PersistentObject
- *  {
- *      private $id;
- *  }
- *
- *  $foo = new Foo();
- *  $foo->getId(); // method exists through __call
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-abstract class PersistentObject implements ObjectManagerAware
-{
-    /**
-     * @var ObjectManager|null
-     */
-    private static $objectManager = null;
-
-    /**
-     * @var ClassMetadata|null
-     */
-    private $cm = null;
-
-    /**
-     * Sets the object manager responsible for all persistent object base classes.
-     *
-     * @param ObjectManager|null $objectManager
-     *
-     * @return void
-     */
-    static public function setObjectManager(ObjectManager $objectManager = null)
-    {
-        self::$objectManager = $objectManager;
-    }
-
-    /**
-     * @return ObjectManager|null
-     */
-    static public function getObjectManager()
-    {
-        return self::$objectManager;
-    }
-
-    /**
-     * Injects the Doctrine Object Manager.
-     *
-     * @param ObjectManager $objectManager
-     * @param ClassMetadata $classMetadata
-     *
-     * @return void
-     *
-     * @throws \RuntimeException
-     */
-    public function injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata)
-    {
-        if ($objectManager !== self::$objectManager) {
-            throw new \RuntimeException("Trying to use PersistentObject with different ObjectManager instances. " .
-                "Was PersistentObject::setObjectManager() called?");
-        }
-
-        $this->cm = $classMetadata;
-    }
-
-    /**
-     * Sets a persistent fields value.
-     *
-     * @param string $field
-     * @param array  $args
-     *
-     * @return void
-     *
-     * @throws \BadMethodCallException   When no persistent field exists by that name.
-     * @throws \InvalidArgumentException When the wrong target object type is passed to an association.
-     */
-    private function set($field, $args)
-    {
-        $this->initializeDoctrine();
-
-        if ($this->cm->hasField($field) && !$this->cm->isIdentifier($field)) {
-            $this->$field = $args[0];
-        } else if ($this->cm->hasAssociation($field) && $this->cm->isSingleValuedAssociation($field)) {
-            $targetClass = $this->cm->getAssociationTargetClass($field);
-            if (!($args[0] instanceof $targetClass) && $args[0] !== null) {
-                throw new \InvalidArgumentException("Expected persistent object of type '".$targetClass."'");
-            }
-            $this->$field = $args[0];
-            $this->completeOwningSide($field, $targetClass, $args[0]);
-        } else {
-            throw new \BadMethodCallException("no field with name '".$field."' exists on '".$this->cm->getName()."'");
-        }
-    }
-
-    /**
-     * Gets a persistent field value.
-     *
-     * @param string $field
-     *
-     * @return mixed
-     *
-     * @throws \BadMethodCallException When no persistent field exists by that name.
-     */
-    private function get($field)
-    {
-        $this->initializeDoctrine();
-
-        if ( $this->cm->hasField($field) || $this->cm->hasAssociation($field) ) {
-            return $this->$field;
-        } else {
-            throw new \BadMethodCallException("no field with name '".$field."' exists on '".$this->cm->getName()."'");
-        }
-    }
-
-    /**
-     * If this is an inverse side association, completes the owning side.
-     *
-     * @param string        $field
-     * @param ClassMetadata $targetClass
-     * @param object        $targetObject
-     *
-     * @return void
-     */
-    private function completeOwningSide($field, $targetClass, $targetObject)
-    {
-        // add this object on the owning side as well, for obvious infinite recursion
-        // reasons this is only done when called on the inverse side.
-        if ($this->cm->isAssociationInverseSide($field)) {
-            $mappedByField = $this->cm->getAssociationMappedByTargetField($field);
-            $targetMetadata = self::$objectManager->getClassMetadata($targetClass);
-
-            $setter = ($targetMetadata->isCollectionValuedAssociation($mappedByField) ? "add" : "set").$mappedByField;
-            $targetObject->$setter($this);
-        }
-    }
-
-    /**
-     * Adds an object to a collection.
-     *
-     * @param string $field
-     * @param array  $args
-     *
-     * @return void
-     *
-     * @throws \BadMethodCallException
-     * @throws \InvalidArgumentException
-     */
-    private function add($field, $args)
-    {
-        $this->initializeDoctrine();
-
-        if ($this->cm->hasAssociation($field) && $this->cm->isCollectionValuedAssociation($field)) {
-            $targetClass = $this->cm->getAssociationTargetClass($field);
-            if (!($args[0] instanceof $targetClass)) {
-                throw new \InvalidArgumentException("Expected persistent object of type '".$targetClass."'");
-            }
-            if (!($this->$field instanceof Collection)) {
-                $this->$field = new ArrayCollection($this->$field ?: array());
-            }
-            $this->$field->add($args[0]);
-            $this->completeOwningSide($field, $targetClass, $args[0]);
-        } else {
-            throw new \BadMethodCallException("There is no method add".$field."() on ".$this->cm->getName());
-        }
-    }
-
-    /**
-     * Initializes Doctrine Metadata for this class.
-     *
-     * @return void
-     *
-     * @throws \RuntimeException
-     */
-    private function initializeDoctrine()
-    {
-        if ($this->cm !== null) {
-            return;
-        }
-
-        if (!self::$objectManager) {
-            throw new \RuntimeException("No runtime object manager set. Call PersistentObject#setObjectManager().");
-        }
-
-        $this->cm = self::$objectManager->getClassMetadata(get_class($this));
-    }
-
-    /**
-     * Magic methods.
-     *
-     * @param string $method
-     * @param array  $args
-     *
-     * @return mixed
-     *
-     * @throws \BadMethodCallException
-     */
-    public function __call($method, $args)
-    {
-        $command = substr($method, 0, 3);
-        $field = lcfirst(substr($method, 3));
-        if ($command == "set") {
-            $this->set($field, $args);
-        } else if ($command == "get") {
-            return $this->get($field);
-        } else if ($command == "add") {
-            $this->add($field, $args);
-        } else {
-            throw new \BadMethodCallException("There is no method ".$method." on ".$this->cm->getName());
-        }
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Proxy.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Proxy.php
deleted file mode 100644
index 3369eb9..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Proxy.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Persistence;
-
-/**
- * Interface for proxy classes.
- *
- * @author Roman Borschel <roman@code-factory.org>
- * @since  2.2
- */
-interface Proxy
-{
-    /**
-     * Marker for Proxy class names.
-     *
-     * @var string
-     */
-    const MARKER = '__CG__';
-
-    /**
-     * Length of the proxy marker.
-     *
-     * @var integer
-     */
-    const MARKER_LENGTH = 6;
-
-    /**
-     * Initializes this proxy if its not yet initialized.
-     *
-     * Acts as a no-op if already initialized.
-     *
-     * @return void
-     */
-    public function __load();
-
-    /**
-     * Returns whether this proxy is initialized or not.
-     *
-     * @return bool
-     */
-    public function __isInitialized();
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/PropertyChangedListener.php b/core/vendor/doctrine/common/lib/Doctrine/Common/PropertyChangedListener.php
deleted file mode 100644
index 1a59cd4..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/PropertyChangedListener.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * Contract for classes that are potential listeners of a <tt>NotifyPropertyChanged</tt>
- * implementor.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-interface PropertyChangedListener
-{
-    /**
-     * Notifies the listener of a property change.
-     *
-     * @param object $sender       The object on which the property changed.
-     * @param string $propertyName The name of the property that changed.
-     * @param mixed  $oldValue     The old value of the property that changed.
-     * @param mixed  $newValue     The new value of the property that changed.
-     *
-     * @return void
-     */
-    function propertyChanged($sender, $propertyName, $oldValue, $newValue);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php
deleted file mode 100644
index dd1ae1b..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadataFactory;
-use Doctrine\Common\Proxy\Exception\InvalidArgumentException;
-use Doctrine\Common\Proxy\Exception\OutOfBoundsException;
-use Doctrine\Common\Util\ClassUtils;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-/**
- * Abstract factory for proxy objects.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-abstract class AbstractProxyFactory
-{
-    /**
-     * Never autogenerate a proxy and rely that it was generated by some
-     * process before deployment.
-     *
-     * @var integer
-     */
-    const AUTOGENERATE_NEVER = 0;
-
-    /**
-     * Always generates a new proxy in every request.
-     *
-     * This is only sane during development.
-     *
-     * @var integer
-     */
-    const AUTOGENERATE_ALWAYS = 1;
-
-    /**
-     * Autogenerate the proxy class when the proxy file does not exist.
-     *
-     * This strategy causes a file exists call whenever any proxy is used the
-     * first time in a request.
-     *
-     * @var integer
-     */
-    const AUTOGENERATE_FILE_NOT_EXISTS = 2;
-
-    /**
-     * Generate the proxy classes using eval().
-     *
-     * This strategy is only sane for development, and even then it gives me
-     * the creeps a little.
-     *
-     * @var integer
-     */
-    const AUTOGENERATE_EVAL = 3;
-
-    /**
-     * @var \Doctrine\Common\Persistence\Mapping\ClassMetadataFactory
-     */
-    private $metadataFactory;
-
-    /**
-     * @var \Doctrine\Common\Proxy\ProxyGenerator the proxy generator responsible for creating the proxy classes/files.
-     */
-    private $proxyGenerator;
-
-    /**
-     * @var bool Whether to automatically (re)generate proxy classes.
-     */
-    private $autoGenerate;
-
-    /**
-     * @var \Doctrine\Common\Proxy\ProxyDefinition[]
-     */
-    private $definitions = array();
-
-    /**
-     * @param \Doctrine\Common\Proxy\ProxyGenerator                     $proxyGenerator
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadataFactory $metadataFactory
-     * @param bool|int                                                  $autoGenerate
-     */
-    public function __construct(ProxyGenerator $proxyGenerator, ClassMetadataFactory $metadataFactory, $autoGenerate)
-    {
-        $this->proxyGenerator  = $proxyGenerator;
-        $this->metadataFactory = $metadataFactory;
-        $this->autoGenerate    = (int)$autoGenerate;
-    }
-
-    /**
-     * Gets a reference proxy instance for the entity of the given type and identified by
-     * the given identifier.
-     *
-     * @param  string $className
-     * @param  array  $identifier
-     *
-     * @return \Doctrine\Common\Proxy\Proxy
-     *
-     * @throws \Doctrine\Common\Proxy\Exception\OutOfBoundsException
-     */
-    public function getProxy($className, array $identifier)
-    {
-        $definition = isset($this->definitions[$className])
-            ? $this->definitions[$className]
-            : $this->getProxyDefinition($className);
-        $fqcn       = $definition->proxyClassName;
-        $proxy      = new $fqcn($definition->initializer, $definition->cloner);
-
-        foreach ($definition->identifierFields as $idField) {
-            if (! isset($identifier[$idField])) {
-                throw OutOfBoundsException::missingPrimaryKeyValue($className, $idField);
-            }
-
-            $definition->reflectionFields[$idField]->setValue($proxy, $identifier[$idField]);
-        }
-
-        return $proxy;
-    }
-
-    /**
-     * Generates proxy classes for all given classes.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata[] $classes The classes (ClassMetadata instances)
-     *                                                                      for which to generate proxies.
-     * @param string $proxyDir The target directory of the proxy classes. If not specified, the
-     *                         directory configured on the Configuration of the EntityManager used
-     *                         by this factory is used.
-     * @return int Number of generated proxies.
-     */
-    public function generateProxyClasses(array $classes, $proxyDir = null)
-    {
-        $generated = 0;
-
-        foreach ($classes as $class) {
-            if ($this->skipClass($class)) {
-                continue;
-            }
-
-            $proxyFileName = $this->proxyGenerator->getProxyFileName($class->getName(), $proxyDir);
-
-            $this->proxyGenerator->generateProxyClass($class, $proxyFileName);
-
-            $generated += 1;
-        }
-
-        return $generated;
-    }
-
-    /**
-     * Reset initialization/cloning logic for an un-initialized proxy
-     *
-     * @param \Doctrine\Common\Proxy\Proxy $proxy
-     *
-     * @return \Doctrine\Common\Proxy\Proxy
-     *
-     * @throws \Doctrine\Common\Proxy\Exception\InvalidArgumentException
-     */
-    public function resetUninitializedProxy(Proxy $proxy)
-    {
-        if ($proxy->__isInitialized()) {
-            throw InvalidArgumentException::unitializedProxyExpected($proxy);
-        }
-
-        $className  = ClassUtils::getClass($proxy);
-        $definition = isset($this->definitions[$className])
-            ? $this->definitions[$className]
-            : $this->getProxyDefinition($className);
-
-        $proxy->__setInitializer($definition->initializer);
-        $proxy->__setCloner($definition->cloner);
-
-        return $proxy;
-    }
-
-    /**
-     * Get a proxy definition for the given class name.
-     *
-     * @return ProxyDefinition
-     */
-    private function getProxyDefinition($className)
-    {
-        $classMetadata = $this->metadataFactory->getMetadataFor($className);
-        $className     = $classMetadata->getName(); // aliases and case sensitivity
-
-        $this->definitions[$className] = $this->createProxyDefinition($className);
-        $proxyClassName                = $this->definitions[$className]->proxyClassName;
-
-        if ( ! class_exists($proxyClassName, false)) {
-            $fileName  = $this->proxyGenerator->getProxyFileName($className);
-
-            switch ($this->autoGenerate) {
-                case self::AUTOGENERATE_NEVER:
-                    require $fileName;
-                    break;
-
-                case self::AUTOGENERATE_FILE_NOT_EXISTS:
-                    if ( ! file_exists($fileName)) {
-                        $this->proxyGenerator->generateProxyClass($classMetadata, $fileName);
-                    }
-                    require $fileName;
-                    break;
-
-                case self::AUTOGENERATE_ALWAYS:
-                    $this->proxyGenerator->generateProxyClass($classMetadata, $fileName);
-                    require $fileName;
-                    break;
-
-                case self::AUTOGENERATE_EVAL:
-                    $this->proxyGenerator->generateProxyClass($classMetadata, false);
-                    break;
-            }
-        }
-
-        return $this->definitions[$className];
-    }
-
-    /**
-     * Determine if this class should be skipped during proxy generation.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $metadata
-     * @return bool
-     */
-    abstract protected function skipClass(ClassMetadata $metadata);
-
-    /**
-     * @return ProxyDefinition
-     */
-    abstract protected function createProxyDefinition($className);
-}
-
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Autoloader.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Autoloader.php
deleted file mode 100644
index 0aa930b..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Autoloader.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy;
-
-use Doctrine\Common\Proxy\Exception\InvalidArgumentException;
-
-/**
- * Special Autoloader for Proxy classes, which are not PSR-0 compliant.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class Autoloader
-{
-    /**
-     * Resolves proxy class name to a filename based on the following pattern.
-     *
-     * 1. Remove Proxy namespace from class name.
-     * 2. Remove namespace separators from remaining class name.
-     * 3. Return PHP filename from proxy-dir with the result from 2.
-     *
-     * @param string $proxyDir
-     * @param string $proxyNamespace
-     * @param string $className
-     *
-     * @return string
-     *
-     * @throws InvalidArgumentException
-     */
-    public static function resolveFile($proxyDir, $proxyNamespace, $className)
-    {
-        if (0 !== strpos($className, $proxyNamespace)) {
-            throw InvalidArgumentException::notProxyClass($className, $proxyNamespace);
-        }
-
-        $className = str_replace('\\', '', substr($className, strlen($proxyNamespace) + 1));
-
-        return $proxyDir . DIRECTORY_SEPARATOR . $className . '.php';
-    }
-
-    /**
-     * Registers and returns autoloader callback for the given proxy dir and namespace.
-     *
-     * @param string        $proxyDir
-     * @param string        $proxyNamespace
-     * @param callable|null $notFoundCallback Invoked when the proxy file is not found.
-     *
-     * @return \Closure
-     *
-     * @throws InvalidArgumentException
-     */
-    public static function register($proxyDir, $proxyNamespace, $notFoundCallback = null)
-    {
-        $proxyNamespace = ltrim($proxyNamespace, '\\');
-
-        if ( ! (null === $notFoundCallback || is_callable($notFoundCallback))) {
-            throw InvalidArgumentException::invalidClassNotFoundCallback($notFoundCallback);
-        }
-
-        $autoloader = function ($className) use ($proxyDir, $proxyNamespace, $notFoundCallback) {
-            if (0 === strpos($className, $proxyNamespace)) {
-                $file = Autoloader::resolveFile($proxyDir, $proxyNamespace, $className);
-
-                if ($notFoundCallback && ! file_exists($file)) {
-                    call_user_func($notFoundCallback, $proxyDir, $proxyNamespace, $className);
-                }
-
-                require $file;
-            }
-        };
-
-        spl_autoload_register($autoloader);
-
-        return $autoloader;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/InvalidArgumentException.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/InvalidArgumentException.php
deleted file mode 100644
index 24a2194..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy\Exception;
-
-use Doctrine\Common\Persistence\Proxy;
-use InvalidArgumentException as BaseInvalidArgumentException;
-
-/**
- * Proxy Invalid Argument Exception.
- *
- * @link   www.doctrine-project.org
- * @since  2.4
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class InvalidArgumentException extends BaseInvalidArgumentException implements ProxyException
-{
-    /**
-     * @return self
-     */
-    public static function proxyDirectoryRequired()
-    {
-        return new self('You must configure a proxy directory. See docs for details');
-    }
-
-    /**
-     * @param string $className
-     * @param string $proxyNamespace
-     *
-     * @return self
-     */
-    public static function notProxyClass($className, $proxyNamespace)
-    {
-        return new self(sprintf('The class "%s" is not part of the proxy namespace "%s"', $className, $proxyNamespace));
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return self
-     */
-    public static function invalidPlaceholder($name)
-    {
-        return new self(sprintf('Provided placeholder for "%s" must be either a string or a valid callable', $name));
-    }
-
-    /**
-     * @return self
-     */
-    public static function proxyNamespaceRequired()
-    {
-        return new self('You must configure a proxy namespace');
-    }
-
-    /**
-     * @return self
-     */
-    public static function unitializedProxyExpected(Proxy $proxy)
-    {
-        return new self(sprintf('Provided proxy of type "%s" must not be initialized.', get_class($proxy)));
-    }
-
-    /**
-     * @param mixed $callback
-     *
-     * @return self
-     */
-    public static function invalidClassNotFoundCallback($callback)
-    {
-        $type = is_object($callback) ? get_class($callback) : gettype($callback);
-
-        return new self(sprintf('Invalid \$notFoundCallback given: must be a callable, "%s" given', $type));
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/OutOfBoundsException.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/OutOfBoundsException.php
deleted file mode 100644
index 348cfcb..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/OutOfBoundsException.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy\Exception;
-
-use Doctrine\Common\Persistence\Proxy;
-use OutOfBoundsException as BaseOutOfBoundsException;
-
-/**
- * Proxy Invalid Argument Exception.
- *
- * @link   www.doctrine-project.org
- * @author Fredrik Wendel <fredrik_w@users.sourceforge.net>
- */
-class OutOfBoundsException extends BaseOutOfBoundsException implements ProxyException
-{
-    /**
-     * @param string $className
-     * @param string $idField
-     *
-     * @return self
-     */
-    public static function missingPrimaryKeyValue($className, $idField)
-    {
-        return new self(sprintf("Missing value for primary key %s on %s", $idField, $className));
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/ProxyException.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/ProxyException.php
deleted file mode 100644
index 0d1ff14..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/ProxyException.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy\Exception;
-
-/**
- * Base exception interface for proxy exceptions.
- *
- * @link   www.doctrine-project.org
- * @since  2.4
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-interface ProxyException
-{
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php
deleted file mode 100644
index 2b8e638..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy\Exception;
-
-use UnexpectedValueException as BaseUnexpectedValueException;
-
-/**
- * Proxy Unexpected Value Exception.
- *
- * @link   www.doctrine-project.org
- * @since  2.4
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class UnexpectedValueException extends BaseUnexpectedValueException implements ProxyException
-{
-    /**
-     * @return self
-     */
-    public static function proxyDirectoryNotWritable($proxyDirectory)
-    {
-        return new self(sprintf('Your proxy directory "%s" must be writable', $proxyDirectory));
-    }
-
-    /**
-     * @param string     $className
-     * @param string     $methodName
-     * @param string     $parameterName
-     * @param \Exception $previous
-     *
-     * @return self
-     */
-    public static function invalidParameterTypeHint($className, $methodName, $parameterName, \Exception $previous)
-    {
-        return new self(
-            sprintf(
-                'The type hint of parameter "%s" in method "%s" in class "%s" is invalid.',
-                $parameterName,
-                $methodName,
-                $className
-            ),
-            0,
-            $previous
-        );
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Proxy.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Proxy.php
deleted file mode 100644
index 8368430..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Proxy.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy;
-
-use Doctrine\Common\Persistence\Proxy as BaseProxy;
-use Closure;
-
-/**
- * Interface for proxy classes.
- *
- * @author Roman Borschel <roman@code-factory.org>
- * @author Marco Pivetta  <ocramius@gmail.com>
- * @since  2.4
- */
-interface Proxy extends BaseProxy
-{
-    /**
-     * Marks the proxy as initialized or not.
-     *
-     * @param boolean $initialized
-     *
-     * @return void
-     */
-    public function __setInitialized($initialized);
-
-    /**
-     * Sets the initializer callback to be used when initializing the proxy. That
-     * initializer should accept 3 parameters: $proxy, $method and $params. Those
-     * are respectively the proxy object that is being initialized, the method name
-     * that triggered initialization and the parameters passed to that method.
-     *
-     * @param Closure|null $initializer
-     *
-     * @return void
-     */
-    public function __setInitializer(Closure $initializer = null);
-
-    /**
-     * Retrieves the initializer callback used to initialize the proxy.
-     *
-     * @see __setInitializer
-     *
-     * @return Closure|null
-     */
-    public function __getInitializer();
-
-    /**
-     * Sets the callback to be used when cloning the proxy. That initializer should accept
-     * a single parameter, which is the cloned proxy instance itself.
-     *
-     * @param Closure|null $cloner
-     *
-     * @return void
-     */
-    public function __setCloner(Closure $cloner = null);
-
-    /**
-     * Retrieves the callback to be used when cloning the proxy.
-     *
-     * @see __setCloner
-     *
-     * @return Closure|null
-     */
-    public function __getCloner();
-
-    /**
-     * Retrieves the list of lazy loaded properties for a given proxy
-     *
-     * @return array Keys are the property names, and values are the default values
-     *               for those properties.
-     */
-    public function __getLazyProperties();
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyDefinition.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyDefinition.php
deleted file mode 100644
index 48b149a..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyDefinition.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy;
-
-/**
- * Definition structure how to create a proxy.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class ProxyDefinition
-{
-    /**
-     * @var string
-     */
-    public $proxyClassName;
-
-    /**
-     * @var array
-     */
-    public $identifierFields;
-
-    /**
-     * @var \ReflectionProperty[]
-     */
-    public $reflectionFields;
-
-    /**
-     * @var callable
-     */
-    public $initializer;
-
-    /**
-     * @var callable
-     */
-    public $cloner;
-
-    /**
-     * @param string   $proxyClassName
-     * @param array    $identifierFields
-     * @param array    $reflectionFields
-     * @param callable $initializer
-     * @param callable $cloner
-     */
-    public function __construct($proxyClassName, array $identifierFields, array $reflectionFields, $initializer, $cloner)
-    {
-        $this->proxyClassName   = $proxyClassName;
-        $this->identifierFields = $identifierFields;
-        $this->reflectionFields = $reflectionFields;
-        $this->initializer      = $initializer;
-        $this->cloner           = $cloner;
-    }
-}
-
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php
deleted file mode 100644
index 4c5a239..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php
+++ /dev/null
@@ -1,932 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Proxy;
-
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use Doctrine\Common\Util\ClassUtils;
-use Doctrine\Common\Proxy\Exception\InvalidArgumentException;
-use Doctrine\Common\Proxy\Exception\UnexpectedValueException;
-
-/**
- * This factory is used to generate proxy classes.
- * It builds proxies from given parameters, a template and class metadata.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- * @since  2.4
- */
-class ProxyGenerator
-{
-    /**
-     * Used to match very simple id methods that don't need
-     * to be decorated since the identifier is known.
-     */
-    const PATTERN_MATCH_ID_METHOD = '((public\s)?(function\s{1,}%s\s?\(\)\s{1,})\s{0,}{\s{0,}return\s{0,}\$this->%s;\s{0,}})i';
-
-    /**
-     * The namespace that contains all proxy classes.
-     *
-     * @var string
-     */
-    private $proxyNamespace;
-
-    /**
-     * The directory that contains all proxy classes.
-     *
-     * @var string
-     */
-    private $proxyDirectory;
-
-    /**
-     * Map of callables used to fill in placeholders set in the template.
-     *
-     * @var string[]|callable[]
-     */
-    protected $placeholders = array(
-        'baseProxyInterface'   => 'Doctrine\Common\Proxy\Proxy',
-        'additionalProperties' => '',
-    );
-
-    /**
-     * Template used as a blueprint to generate proxies.
-     *
-     * @var string
-     */
-    protected $proxyClassTemplate = '<?php
-
-namespace <namespace>;
-
-/**
- * DO NOT EDIT THIS FILE - IT WAS CREATED BY DOCTRINE\'S PROXY GENERATOR
- */
-class <proxyShortClassName> extends \<className> implements \<baseProxyInterface>
-{
-    /**
-     * @var \Closure the callback responsible for loading properties in the proxy object. This callback is called with
-     *      three parameters, being respectively the proxy object to be initialized, the method that triggered the
-     *      initialization process and an array of ordered parameters that were passed to that method.
-     *
-     * @see \Doctrine\Common\Persistence\Proxy::__setInitializer
-     */
-    public $__initializer__;
-
-    /**
-     * @var \Closure the callback responsible of loading properties that need to be copied in the cloned object
-     *
-     * @see \Doctrine\Common\Persistence\Proxy::__setCloner
-     */
-    public $__cloner__;
-
-    /**
-     * @var boolean flag indicating if this object was already initialized
-     *
-     * @see \Doctrine\Common\Persistence\Proxy::__isInitialized
-     */
-    public $__isInitialized__ = false;
-
-    /**
-     * @var array properties to be lazy loaded, with keys being the property
-     *            names and values being their default values
-     *
-     * @see \Doctrine\Common\Persistence\Proxy::__getLazyProperties
-     */
-    public static $lazyPropertiesDefaults = array(<lazyPropertiesDefaults>);
-
-<additionalProperties>
-
-<constructorImpl>
-
-<magicGet>
-
-<magicSet>
-
-<magicIsset>
-
-<sleepImpl>
-
-<wakeupImpl>
-
-<cloneImpl>
-
-    /**
-     * Forces initialization of the proxy
-     */
-    public function __load()
-    {
-        $this->__initializer__ && $this->__initializer__->__invoke($this, \'__load\', array());
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific loading logic
-     */
-    public function __isInitialized()
-    {
-        return $this->__isInitialized__;
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific loading logic
-     */
-    public function __setInitialized($initialized)
-    {
-        $this->__isInitialized__ = $initialized;
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific loading logic
-     */
-    public function __setInitializer(\Closure $initializer = null)
-    {
-        $this->__initializer__ = $initializer;
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific loading logic
-     */
-    public function __getInitializer()
-    {
-        return $this->__initializer__;
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific loading logic
-     */
-    public function __setCloner(\Closure $cloner = null)
-    {
-        $this->__cloner__ = $cloner;
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific cloning logic
-     */
-    public function __getCloner()
-    {
-        return $this->__cloner__;
-    }
-
-    /**
-     * {@inheritDoc}
-     * @internal generated method: use only when explicitly handling proxy specific loading logic
-     * @static
-     */
-    public function __getLazyProperties()
-    {
-        return self::$lazyPropertiesDefaults;
-    }
-
-    <methods>
-}
-';
-
-    /**
-     * Initializes a new instance of the <tt>ProxyFactory</tt> class that is
-     * connected to the given <tt>EntityManager</tt>.
-     *
-     * @param string $proxyDirectory The directory to use for the proxy classes. It must exist.
-     * @param string $proxyNamespace The namespace to use for the proxy classes.
-     *
-     * @throws InvalidArgumentException
-     */
-    public function __construct($proxyDirectory, $proxyNamespace)
-    {
-        if ( ! $proxyDirectory) {
-            throw InvalidArgumentException::proxyDirectoryRequired();
-        }
-
-        if ( ! $proxyNamespace) {
-            throw InvalidArgumentException::proxyNamespaceRequired();
-        }
-
-        $this->proxyDirectory        = $proxyDirectory;
-        $this->proxyNamespace        = $proxyNamespace;
-    }
-
-    /**
-     * Sets a placeholder to be replaced in the template.
-     *
-     * @param string          $name
-     * @param string|callable $placeholder
-     *
-     * @throws InvalidArgumentException
-     */
-    public function setPlaceholder($name, $placeholder)
-    {
-        if ( ! is_string($placeholder) && ! is_callable($placeholder)) {
-            throw InvalidArgumentException::invalidPlaceholder($name);
-        }
-
-        $this->placeholders[$name] = $placeholder;
-    }
-
-    /**
-     * Sets the base template used to create proxy classes.
-     *
-     * @param string $proxyClassTemplate
-     */
-    public function setProxyClassTemplate($proxyClassTemplate)
-    {
-        $this->proxyClassTemplate = (string) $proxyClassTemplate;
-    }
-
-    /**
-     * Generates a proxy class file.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class    Metadata for the original class.
-     * @param string|bool                                        $fileName Filename (full path) for the generated class. If none is given, eval() is used.
-     *
-     * @throws UnexpectedValueException
-     */
-    public function generateProxyClass(ClassMetadata $class, $fileName = false)
-    {
-        preg_match_all('(<([a-zA-Z]+)>)', $this->proxyClassTemplate, $placeholderMatches);
-
-        $placeholderMatches = array_combine($placeholderMatches[0], $placeholderMatches[1]);
-        $placeholders       = array();
-
-        foreach ($placeholderMatches as $placeholder => $name) {
-            $placeholders[$placeholder] = isset($this->placeholders[$name])
-                ? $this->placeholders[$name]
-                : array($this, 'generate' . $name);
-        }
-
-        foreach ($placeholders as & $placeholder) {
-            if (is_callable($placeholder)) {
-                $placeholder = call_user_func($placeholder, $class);
-            }
-        }
-
-        $proxyCode = strtr($this->proxyClassTemplate, $placeholders);
-
-        if ( ! $fileName) {
-            $proxyClassName = $this->generateNamespace($class) . '\\' . $this->generateProxyShortClassName($class);
-
-            if ( ! class_exists($proxyClassName)) {
-                eval(substr($proxyCode, 5));
-            }
-
-            return;
-        }
-
-        $parentDirectory = dirname($fileName);
-
-        if ( ! is_dir($parentDirectory) && (false === @mkdir($parentDirectory, 0775, true))) {
-            throw UnexpectedValueException::proxyDirectoryNotWritable($this->proxyDirectory);
-        }
-
-        if ( ! is_writable($parentDirectory)) {
-            throw UnexpectedValueException::proxyDirectoryNotWritable($this->proxyDirectory);
-        }
-
-        $tmpFileName = $fileName . '.' . uniqid('', true);
-
-        file_put_contents($tmpFileName, $proxyCode);
-        rename($tmpFileName, $fileName);
-    }
-
-    /**
-     * Generates the proxy short class name to be used in the template.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateProxyShortClassName(ClassMetadata $class)
-    {
-        $proxyClassName = ClassUtils::generateProxyClassName($class->getName(), $this->proxyNamespace);
-        $parts          = explode('\\', strrev($proxyClassName), 2);
-
-        return strrev($parts[0]);
-    }
-
-    /**
-     * Generates the proxy namespace.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateNamespace(ClassMetadata $class)
-    {
-        $proxyClassName = ClassUtils::generateProxyClassName($class->getName(), $this->proxyNamespace);
-        $parts = explode('\\', strrev($proxyClassName), 2);
-
-        return strrev($parts[1]);
-    }
-
-    /**
-     * Generates the original class name.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateClassName(ClassMetadata $class)
-    {
-        return ltrim($class->getName(), '\\');
-    }
-
-    /**
-     * Generates the array representation of lazy loaded public properties and their default values.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateLazyPropertiesDefaults(ClassMetadata $class)
-    {
-        $lazyPublicProperties = $this->getLazyLoadedPublicProperties($class);
-        $values               = array();
-
-        foreach ($lazyPublicProperties as $key => $value) {
-            $values[] = var_export($key, true) . ' => ' . var_export($value, true);
-        }
-
-        return implode(', ', $values);
-    }
-
-    /**
-     * Generates the constructor code (un-setting public lazy loaded properties, setting identifier field values).
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateConstructorImpl(ClassMetadata $class)
-    {
-        $constructorImpl = <<<'EOT'
-    /**
-     * @param \Closure $initializer
-     * @param \Closure $cloner
-     */
-    public function __construct($initializer = null, $cloner = null)
-    {
-
-EOT;
-        $toUnset = array();
-
-        foreach ($this->getLazyLoadedPublicProperties($class) as $lazyPublicProperty => $unused) {
-            $toUnset[] = '$this->' . $lazyPublicProperty;
-        }
-
-        $constructorImpl .= (empty($toUnset) ? '' : '        unset(' . implode(', ', $toUnset) . ");\n")
-            . <<<'EOT'
-
-        $this->__initializer__ = $initializer;
-        $this->__cloner__      = $cloner;
-    }
-EOT;
-
-        return $constructorImpl;
-    }
-
-    /**
-     * Generates the magic getter invoked when lazy loaded public properties are requested.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateMagicGet(ClassMetadata $class)
-    {
-        $lazyPublicProperties = array_keys($this->getLazyLoadedPublicProperties($class));
-        $reflectionClass      = $class->getReflectionClass();
-        $hasParentGet         = false;
-        $returnReference      = '';
-        $inheritDoc           = '';
-
-        if ($reflectionClass->hasMethod('__get')) {
-            $hasParentGet = true;
-            $inheritDoc   = '{@inheritDoc}';
-
-            if ($reflectionClass->getMethod('__get')->returnsReference()) {
-                $returnReference = '& ';
-            }
-        }
-
-        if (empty($lazyPublicProperties) && ! $hasParentGet) {
-            return '';
-        }
-
-        $magicGet = <<<EOT
-    /**
-     * $inheritDoc
-     * @param string \$name
-     */
-    public function {$returnReference}__get(\$name)
-    {
-
-EOT;
-
-        if ( ! empty($lazyPublicProperties)) {
-            $magicGet .= <<<'EOT'
-        if (array_key_exists($name, $this->__getLazyProperties())) {
-            $this->__initializer__ && $this->__initializer__->__invoke($this, '__get', array($name));
-
-            return $this->$name;
-        }
-
-
-EOT;
-        }
-
-        if ($hasParentGet) {
-            $magicGet .= <<<'EOT'
-        $this->__initializer__ && $this->__initializer__->__invoke($this, '__get', array($name));
-
-        return parent::__get($name);
-
-EOT;
-        } else {
-            $magicGet .= <<<'EOT'
-        trigger_error(sprintf('Undefined property: %s::$%s', __CLASS__, $name), E_USER_NOTICE);
-
-EOT;
-        }
-
-        $magicGet .= "    }";
-
-        return $magicGet;
-    }
-
-    /**
-     * Generates the magic setter (currently unused).
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateMagicSet(ClassMetadata $class)
-    {
-        $lazyPublicProperties = $this->getLazyLoadedPublicProperties($class);
-        $hasParentSet         = $class->getReflectionClass()->hasMethod('__set');
-
-        if (empty($lazyPublicProperties) && ! $hasParentSet) {
-            return '';
-        }
-
-        $inheritDoc = $hasParentSet ? '{@inheritDoc}' : '';
-        $magicSet   = <<<EOT
-    /**
-     * $inheritDoc
-     * @param string \$name
-     * @param mixed  \$value
-     */
-    public function __set(\$name, \$value)
-    {
-
-EOT;
-
-        if ( ! empty($lazyPublicProperties)) {
-            $magicSet .= <<<'EOT'
-        if (array_key_exists($name, $this->__getLazyProperties())) {
-            $this->__initializer__ && $this->__initializer__->__invoke($this, '__set', array($name, $value));
-
-            $this->$name = $value;
-
-            return;
-        }
-
-
-EOT;
-        }
-
-        if ($hasParentSet) {
-            $magicSet .= <<<'EOT'
-        $this->__initializer__ && $this->__initializer__->__invoke($this, '__set', array($name, $value));
-
-        return parent::__set($name, $value);
-EOT;
-        } else {
-            $magicSet .= "        \$this->\$name = \$value;";
-        }
-
-        $magicSet .= "\n    }";
-
-        return $magicSet;
-    }
-
-    /**
-     * Generates the magic issetter invoked when lazy loaded public properties are checked against isset().
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateMagicIsset(ClassMetadata $class)
-    {
-        $lazyPublicProperties = array_keys($this->getLazyLoadedPublicProperties($class));
-        $hasParentIsset       = $class->getReflectionClass()->hasMethod('__isset');
-
-        if (empty($lazyPublicProperties) && ! $hasParentIsset) {
-            return '';
-        }
-
-        $inheritDoc = $hasParentIsset ? '{@inheritDoc}' : '';
-        $magicIsset = <<<EOT
-    /**
-     * $inheritDoc
-     * @param  string \$name
-     * @return boolean
-     */
-    public function __isset(\$name)
-    {
-
-EOT;
-
-        if ( ! empty($lazyPublicProperties)) {
-            $magicIsset .= <<<'EOT'
-        if (array_key_exists($name, $this->__getLazyProperties())) {
-            $this->__initializer__ && $this->__initializer__->__invoke($this, '__isset', array($name));
-
-            return isset($this->$name);
-        }
-
-
-EOT;
-        }
-
-        if ($hasParentIsset) {
-            $magicIsset .= <<<'EOT'
-        $this->__initializer__ && $this->__initializer__->__invoke($this, '__isset', array($name));
-
-        return parent::__isset($name);
-
-EOT;
-        } else {
-            $magicIsset .= "        return false;";
-        }
-
-        return $magicIsset . "\n    }";
-    }
-
-    /**
-     * Generates implementation for the `__sleep` method of proxies.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateSleepImpl(ClassMetadata $class)
-    {
-        $hasParentSleep = $class->getReflectionClass()->hasMethod('__sleep');
-        $inheritDoc     = $hasParentSleep ? '{@inheritDoc}' : '';
-        $sleepImpl      = <<<EOT
-    /**
-     * $inheritDoc
-     * @return array
-     */
-    public function __sleep()
-    {
-
-EOT;
-
-        if ($hasParentSleep) {
-            return $sleepImpl . <<<'EOT'
-        $properties = array_merge(array('__isInitialized__'), parent::__sleep());
-
-        if ($this->__isInitialized__) {
-            $properties = array_diff($properties, array_keys($this->__getLazyProperties()));
-        }
-
-        return $properties;
-    }
-EOT;
-        }
-
-        $allProperties = array('__isInitialized__');
-
-        /* @var $prop \ReflectionProperty */
-        foreach ($class->getReflectionClass()->getProperties() as $prop) {
-            if ($prop->isStatic()) {
-                continue;
-            }
-
-            $allProperties[] = $prop->isPrivate()
-                ? "\0" . $prop->getDeclaringClass()->getName() . "\0" . $prop->getName()
-                : $prop->getName();
-        }
-
-        $lazyPublicProperties = array_keys($this->getLazyLoadedPublicProperties($class));
-        $protectedProperties  = array_diff($allProperties, $lazyPublicProperties);
-
-        foreach ($allProperties as &$property) {
-            $property = var_export($property, true);
-        }
-
-        foreach ($protectedProperties as &$property) {
-            $property = var_export($property, true);
-        }
-
-        $allProperties       = implode(', ', $allProperties);
-        $protectedProperties = implode(', ', $protectedProperties);
-
-        return $sleepImpl . <<<EOT
-        if (\$this->__isInitialized__) {
-            return array($allProperties);
-        }
-
-        return array($protectedProperties);
-    }
-EOT;
-    }
-
-    /**
-     * Generates implementation for the `__wakeup` method of proxies.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateWakeupImpl(ClassMetadata $class)
-    {
-        $unsetPublicProperties = array();
-        $hasWakeup             = $class->getReflectionClass()->hasMethod('__wakeup');
-
-        foreach (array_keys($this->getLazyLoadedPublicProperties($class)) as $lazyPublicProperty) {
-            $unsetPublicProperties[] = '$this->' . $lazyPublicProperty;
-        }
-
-        $shortName  = $this->generateProxyShortClassName($class);
-        $inheritDoc = $hasWakeup ? '{@inheritDoc}' : '';
-        $wakeupImpl = <<<EOT
-    /**
-     * $inheritDoc
-     */
-    public function __wakeup()
-    {
-        if ( ! \$this->__isInitialized__) {
-            \$this->__initializer__ = function ($shortName \$proxy) {
-                \$proxy->__setInitializer(null);
-                \$proxy->__setCloner(null);
-
-                \$existingProperties = get_object_vars(\$proxy);
-
-                foreach (\$proxy->__getLazyProperties() as \$property => \$defaultValue) {
-                    if ( ! array_key_exists(\$property, \$existingProperties)) {
-                        \$proxy->\$property = \$defaultValue;
-                    }
-                }
-            };
-
-EOT;
-
-        if ( ! empty($unsetPublicProperties)) {
-            $wakeupImpl .= "\n            unset(" . implode(', ', $unsetPublicProperties) . ");";
-        }
-
-        $wakeupImpl .= "\n        }";
-
-        if ($hasWakeup) {
-            $wakeupImpl .= "\n        parent::__wakeup();";
-        }
-
-        $wakeupImpl .= "\n    }";
-
-        return $wakeupImpl;
-    }
-
-    /**
-     * Generates implementation for the `__clone` method of proxies.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateCloneImpl(ClassMetadata $class)
-    {
-        $hasParentClone  = $class->getReflectionClass()->hasMethod('__clone');
-        $inheritDoc      = $hasParentClone ? '{@inheritDoc}' : '';
-        $callParentClone = $hasParentClone ? "\n        parent::__clone();\n" : '';
-
-        return <<<EOT
-    /**
-     * $inheritDoc
-     */
-    public function __clone()
-    {
-        \$this->__cloner__ && \$this->__cloner__->__invoke(\$this, '__clone', array());
-$callParentClone    }
-EOT;
-    }
-
-    /**
-     * Generates decorated methods by picking those available in the parent class.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return string
-     */
-    private function generateMethods(ClassMetadata $class)
-    {
-        $methods           = '';
-        $methodNames       = array();
-        $reflectionMethods = $class->getReflectionClass()->getMethods(\ReflectionMethod::IS_PUBLIC);
-        $skippedMethods    = array(
-            '__sleep'   => true,
-            '__clone'   => true,
-            '__wakeup'  => true,
-            '__get'     => true,
-            '__set'     => true,
-            '__isset'   => true,
-        );
-
-        foreach ($reflectionMethods as $method) {
-            $name = $method->getName();
-
-            if (
-                $method->isConstructor() ||
-                isset($skippedMethods[strtolower($name)]) ||
-                isset($methodNames[$name]) ||
-                $method->isFinal() ||
-                $method->isStatic() ||
-                ( ! $method->isPublic())
-            ) {
-                continue;
-            }
-
-            $methodNames[$name] = true;
-            $methods .= "\n    /**\n"
-                . "     * {@inheritDoc}\n"
-                . "     */\n"
-                . '    public function ';
-
-            if ($method->returnsReference()) {
-                $methods .= '&';
-            }
-
-            $methods .= $name . '(';
-
-            $firstParam      = true;
-            $parameterString = '';
-            $argumentString  = '';
-            $parameters      = array();
-
-            foreach ($method->getParameters() as $param) {
-                if ($firstParam) {
-                    $firstParam = false;
-                } else {
-                    $parameterString .= ', ';
-                    $argumentString  .= ', ';
-                }
-
-                try {
-                    $paramClass = $param->getClass();
-                } catch (\ReflectionException $previous) {
-                    throw UnexpectedValueException::invalidParameterTypeHint(
-                        $class->getName(),
-                        $method->getName(),
-                        $param->getName(),
-                        $previous
-                    );
-                }
-
-                // We need to pick the type hint class too
-                if (null !== $paramClass) {
-                    $parameterString .= '\\' . $paramClass->getName() . ' ';
-                } elseif ($param->isArray()) {
-                    $parameterString .= 'array ';
-                } elseif (method_exists($param, 'isCallable') && $param->isCallable()) {
-                    $parameterString .= 'callable ';
-                }
-
-                if ($param->isPassedByReference()) {
-                    $parameterString .= '&';
-                }
-
-                $parameters[] = '$' . $param->getName();
-                $parameterString .= '$' . $param->getName();
-                $argumentString  .= '$' . $param->getName();
-
-                if ($param->isDefaultValueAvailable()) {
-                    $parameterString .= ' = ' . var_export($param->getDefaultValue(), true);
-                }
-            }
-
-            $methods .= $parameterString . ')';
-            $methods .= "\n" . '    {' . "\n";
-
-            if ($this->isShortIdentifierGetter($method, $class)) {
-                $identifier = lcfirst(substr($name, 3));
-                $fieldType  = $class->getTypeOfField($identifier);
-                $cast       = in_array($fieldType, array('integer', 'smallint')) ? '(int) ' : '';
-
-                $methods .= '        if ($this->__isInitialized__ === false) {' . "\n";
-                $methods .= '            return ' . $cast . ' parent::' . $method->getName() . "();\n";
-                $methods .= '        }' . "\n\n";
-            }
-
-            $methods .= "\n        \$this->__initializer__ "
-                . "&& \$this->__initializer__->__invoke(\$this, " . var_export($name, true)
-                . ", array(" . implode(', ', $parameters) . "));"
-                . "\n\n        return parent::" . $name . '(' . $argumentString . ');'
-                . "\n" . '    }' . "\n";
-        }
-
-        return $methods;
-    }
-
-    /**
-     * Generates the Proxy file name.
-     *
-     * @param string $className
-     * @param string $baseDirectory Optional base directory for proxy file name generation.
-     *                              If not specified, the directory configured on the Configuration of the
-     *                              EntityManager will be used by this factory.
-     *
-     * @return string
-     */
-    public function getProxyFileName($className, $baseDirectory = null)
-    {
-        $baseDirectory = $baseDirectory ?: $this->proxyDirectory;
-
-        return rtrim($baseDirectory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . Proxy::MARKER
-            . str_replace('\\', '', $className) . '.php';
-    }
-
-    /**
-     * Checks if the method is a short identifier getter.
-     *
-     * What does this mean? For proxy objects the identifier is already known,
-     * however accessing the getter for this identifier usually triggers the
-     * lazy loading, leading to a query that may not be necessary if only the
-     * ID is interesting for the userland code (for example in views that
-     * generate links to the entity, but do not display anything else).
-     *
-     * @param \ReflectionMethod                                  $method
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return boolean
-     */
-    private function isShortIdentifierGetter($method, ClassMetadata $class)
-    {
-        $identifier = lcfirst(substr($method->getName(), 3));
-        $startLine = $method->getStartLine();
-        $endLine = $method->getEndLine();
-        $cheapCheck = (
-            $method->getNumberOfParameters() == 0
-            && substr($method->getName(), 0, 3) == 'get'
-            && in_array($identifier, $class->getIdentifier(), true)
-            && $class->hasField($identifier)
-            && (($endLine - $startLine) <= 4)
-        );
-
-        if ($cheapCheck) {
-            $code = file($method->getDeclaringClass()->getFileName());
-            $code = trim(implode(' ', array_slice($code, $startLine - 1, $endLine - $startLine + 1)));
-
-            $pattern = sprintf(self::PATTERN_MATCH_ID_METHOD, $method->getName(), $identifier);
-
-            if (preg_match($pattern, $code)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Generates the list of public properties to be lazy loaded, with their default values.
-     *
-     * @param \Doctrine\Common\Persistence\Mapping\ClassMetadata $class
-     *
-     * @return mixed[]
-     */
-    private function getLazyLoadedPublicProperties(ClassMetadata $class)
-    {
-        $defaultProperties = $class->getReflectionClass()->getDefaultProperties();
-        $properties = array();
-
-        foreach ($class->getReflectionClass()->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
-            $name = $property->getName();
-
-            if (($class->hasField($name) || $class->hasAssociation($name)) && ! $class->isIdentifier($name)) {
-                $properties[$name] = $defaultProperties[$name];
-            }
-        }
-
-        return $properties;
-    }
-}
-
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/ClassFinderInterface.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/ClassFinderInterface.php
deleted file mode 100644
index 639fd69..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/ClassFinderInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-/**
- * Finds a class in a PSR-0 structure.
- *
- * @author Karoly Negyesi <karoly@negyesi.net>
- */
-interface ClassFinderInterface
-{
-    /**
-     * Finds a class.
-     *
-     * @param string $class The name of the class.
-     *
-     * @return string|null The name of the class or NULL if not found.
-     */
-    public function findFile($class);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/Psr0FindFile.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/Psr0FindFile.php
deleted file mode 100644
index 418bb0f..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/Psr0FindFile.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-/**
- * Finds a class in a PSR-0 structure.
- *
- * @author Karoly Negyesi <karoly@negyesi.net>
- */
-class Psr0FindFile implements ClassFinderInterface
-{
-    /**
-     * The PSR-0 prefixes.
-     *
-     * @var array
-     */
-    protected $prefixes;
-
-    /**
-     * @param array $prefixes An array of prefixes. Each key is a PHP namespace and each value is
-     *                        a list of directories.
-     */
-    public function __construct($prefixes)
-    {
-        $this->prefixes = $prefixes;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function findFile($class)
-    {
-        $lastNsPos = strrpos($class, '\\');
-        if ('\\' == $class[0]) {
-            $class = substr($class, 1);
-        }
-
-        if (false !== $lastNsPos) {
-            // namespaced class name
-            $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $lastNsPos)) . DIRECTORY_SEPARATOR;
-            $className = substr($class, $lastNsPos + 1);
-        } else {
-            // PEAR-like class name
-            $classPath = null;
-            $className = $class;
-        }
-
-        $classPath .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
-
-        foreach ($this->prefixes as $prefix => $dirs) {
-            if (0 === strpos($class, $prefix)) {
-                foreach ($dirs as $dir) {
-                    if (is_file($dir . DIRECTORY_SEPARATOR . $classPath)) {
-                        return $dir . DIRECTORY_SEPARATOR . $classPath;
-                    }
-                }
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/ReflectionProviderInterface.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/ReflectionProviderInterface.php
deleted file mode 100644
index 3d970ee..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/ReflectionProviderInterface.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-interface ReflectionProviderInterface
-{
-    /**
-     * Gets the ReflectionClass equivalent for this class.
-     *
-     * @return \ReflectionClass
-     */
-    public function getReflectionClass();
-
-    /**
-     * Gets the ReflectionMethod equivalent for this class.
-     *
-     * @param string $name
-     *
-     * @return \ReflectionMethod
-     */
-    public function getReflectionMethod($name);
-
-    /**
-     * Gets the ReflectionProperty equivalent for this class.
-     *
-     * @param string $name
-     *
-     * @return \ReflectionProperty
-     */
-    public function getReflectionProperty($name);
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/RuntimePublicReflectionProperty.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/RuntimePublicReflectionProperty.php
deleted file mode 100644
index f155c45..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/RuntimePublicReflectionProperty.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-use ReflectionProperty;
-use Doctrine\Common\Proxy\Proxy;
-
-/**
- * PHP Runtime Reflection Public Property - special overrides for public properties.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- * @since  2.4
- */
-class RuntimePublicReflectionProperty extends ReflectionProperty
-{
-    /**
-     * {@inheritDoc}
-     *
-     * Checks is the value actually exist before fetching it.
-     * This is to avoid calling `__get` on the provided $object if it
-     * is a {@see \Doctrine\Common\Proxy\Proxy}.
-     */
-    public function getValue($object = null)
-    {
-        $name = $this->getName();
-
-        if ($object instanceof Proxy && ! $object->__isInitialized()) {
-            $originalInitializer = $object->__getInitializer();
-            $object->__setInitializer(null);
-            $val = isset($object->$name) ? $object->$name : null;
-            $object->__setInitializer($originalInitializer);
-
-            return $val;
-        }
-
-        return isset($object->$name) ? parent::getValue($object) : null;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Avoids triggering lazy loading via `__set` if the provided object
-     * is a {@see \Doctrine\Common\Proxy\Proxy}.
-     * @link https://bugs.php.net/bug.php?id=63463
-     */
-    public function setValue($object, $value = null)
-    {
-        if ( ! ($object instanceof Proxy && ! $object->__isInitialized())) {
-            parent::setValue($object, $value);
-
-            return;
-        }
-
-        $originalInitializer = $object->__getInitializer();
-        $object->__setInitializer(null);
-        parent::setValue($object, $value);
-        $object->__setInitializer($originalInitializer);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionClass.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionClass.php
deleted file mode 100644
index b65979a..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionClass.php
+++ /dev/null
@@ -1,433 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-use ReflectionClass;
-use ReflectionException;
-
-class StaticReflectionClass extends ReflectionClass
-{
-    /**
-     * The static reflection parser object.
-     *
-     * @var StaticReflectionParser
-     */
-    private $staticReflectionParser;
-
-    /**
-     * @param StaticReflectionParser $staticReflectionParser
-     */
-    public function __construct(StaticReflectionParser $staticReflectionParser)
-    {
-        $this->staticReflectionParser = $staticReflectionParser;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return $this->staticReflectionParser->getClassName();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDocComment()
-    {
-        return $this->staticReflectionParser->getDocComment();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getNamespaceName()
-    {
-        return $this->staticReflectionParser->getNamespaceName();
-    }
-
-    /**
-     * @return array
-     */
-    public function getUseStatements()
-    {
-        return $this->staticReflectionParser->getUseStatements();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethod($name)
-    {
-        return $this->staticReflectionParser->getReflectionMethod($name);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getProperty($name)
-    {
-        return $this->staticReflectionParser->getReflectionProperty($name);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public static function export($argument, $return = false)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getConstant($name)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getConstants()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getConstructor()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDefaultProperties()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getEndLine()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getExtension()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getExtensionName()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getFileName()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getInterfaceNames()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getInterfaces()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getMethods($filter = null)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getModifiers()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getParentClass()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getProperties($filter = null)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getShortName()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getStartLine()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getStaticProperties()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getStaticPropertyValue($name, $default = '')
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getTraitAliases()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getTraitNames()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getTraits()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasConstant($name)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasMethod($name)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasProperty($name)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function implementsInterface($interface)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function inNamespace()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isAbstract()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isCloneable()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isFinal()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isInstance($object)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isInstantiable()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isInterface()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isInternal()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isIterateable()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isSubclassOf($class)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isTrait()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isUserDefined()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function newInstance($args)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function newInstanceArgs(array $args = array())
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function newInstanceWithoutConstructor()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setStaticPropertyValue($name, $value)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __toString()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionMethod.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionMethod.php
deleted file mode 100644
index 311e1304..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionMethod.php
+++ /dev/null
@@ -1,362 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-use ReflectionMethod;
-use ReflectionException;
-
-class StaticReflectionMethod extends ReflectionMethod
-{
-    /**
-     * The PSR-0 parser object.
-     *
-     * @var StaticReflectionParser
-     */
-    protected $staticReflectionParser;
-
-    /**
-     * The name of the method.
-     *
-     * @var string
-     */
-    protected $methodName;
-
-    /**
-     * @param StaticReflectionParser $staticReflectionParser
-     * @param string                 $methodName
-     */
-    public function __construct(StaticReflectionParser $staticReflectionParser, $methodName)
-    {
-        $this->staticReflectionParser = $staticReflectionParser;
-        $this->methodName = $methodName;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return $this->methodName;
-    }
-
-    /**
-     * @return StaticReflectionParser
-     */
-    protected function getStaticReflectionParser()
-    {
-        return $this->staticReflectionParser->getStaticReflectionParserForDeclaringClass('method', $this->methodName);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDeclaringClass()
-    {
-        return $this->getStaticReflectionParser()->getReflectionClass();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getNamespaceName()
-    {
-        return $this->getStaticReflectionParser()->getNamespaceName();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDocComment()
-    {
-        return $this->getStaticReflectionParser()->getDocComment('method', $this->methodName);
-    }
-
-    /**
-     * @return array
-     */
-    public function getUseStatements()
-    {
-        return $this->getStaticReflectionParser()->getUseStatements();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public static function export($class, $name, $return = false)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClosure($object)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getModifiers()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getPrototype()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function invoke($object, $parameter = null)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function invokeArgs($object, array $args)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isAbstract()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isConstructor()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isDestructor()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isFinal()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isPrivate()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isProtected()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isPublic()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isStatic()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setAccessible($accessible)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __toString()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getClosureThis()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getEndLine()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getExtension()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getExtensionName()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getFileName()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getNumberOfParameters()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getNumberOfRequiredParameters()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getParameters()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getShortName()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getStartLine()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getStaticVariables()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function inNamespace()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isClosure()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isDeprecated()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isInternal()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isUserDefined()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function returnsReference()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php
deleted file mode 100644
index aac1f90..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php
+++ /dev/null
@@ -1,307 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-use ReflectionException;
-use Doctrine\Common\Annotations\TokenParser;
-
-/**
- * Parses a file for namespaces/use/class declarations.
- *
- * @author Karoly Negyesi <karoly@negyesi.net>
- */
-class StaticReflectionParser implements ReflectionProviderInterface
-{
-    /**
-     * The fully qualified class name.
-     *
-     * @var string
-     */
-    protected $className;
-
-    /**
-     * The short class name.
-     *
-     * @var string
-     */
-    protected $shortClassName;
-
-    /**
-     * Whether the caller only wants class annotations.
-     *
-     * @var boolean.
-     */
-    protected $classAnnotationOptimize;
-
-    /**
-     * Whether the parser has run.
-     *
-     * @var boolean
-     */
-    protected $parsed = false;
-
-    /**
-     * The namespace of the class.
-     *
-     * @var string
-     */
-    protected $namespace = '';
-
-    /**
-     * The use statements of the class.
-     *
-     * @var array
-     */
-    protected $useStatements = array();
-
-    /**
-     * The docComment of the class.
-     *
-     * @var string
-     */
-    protected $docComment = array(
-        'class' => '',
-        'property' => array(),
-        'method' => array()
-    );
-
-    /**
-     * The name of the class this class extends, if any.
-     *
-     * @var string
-     */
-    protected $parentClassName = '';
-
-    /**
-     * The parent PSR-0 Parser.
-     *
-     * @var \Doctrine\Common\Reflection\StaticReflectionParser
-     */
-    protected $parentStaticReflectionParser;
-
-    /**
-     * Parses a class residing in a PSR-0 hierarchy.
-     *
-     * @param string               $className               The full, namespaced class name.
-     * @param ClassFinderInterface $finder                  A ClassFinder object which finds the class.
-     * @param boolean              $classAnnotationOptimize Only retrieve the class docComment.
-     *                                                      Presumes there is only one statement per line.
-     */
-    public function __construct($className, $finder, $classAnnotationOptimize = false)
-    {
-        $this->className = ltrim($className, '\\');
-        $lastNsPos = strrpos($this->className, '\\');
-
-        if ($lastNsPos !== false) {
-            $this->namespace = substr($this->className, 0, $lastNsPos);
-            $this->shortClassName = substr($this->className, $lastNsPos + 1);
-        } else {
-            $this->shortClassName = $this->className;
-        }
-
-        $this->finder = $finder;
-        $this->classAnnotationOptimize = $classAnnotationOptimize;
-    }
-
-    /**
-     * @return void
-     */
-    protected function parse()
-    {
-        if ($this->parsed || !$fileName = $this->finder->findFile($this->className)) {
-            return;
-        }
-        $this->parsed = true;
-        $contents = file_get_contents($fileName);
-        if ($this->classAnnotationOptimize) {
-            if (preg_match("/\A.*^\s*((abstract|final)\s+)?class\s+{$this->shortClassName}\s+/sm", $contents, $matches)) {
-                $contents = $matches[0];
-            }
-        }
-        $tokenParser = new TokenParser($contents);
-        $docComment = '';
-        while ($token = $tokenParser->next(false)) {
-            if (is_array($token)) {
-                switch ($token[0]) {
-                    case T_USE:
-                        $this->useStatements = array_merge($this->useStatements, $tokenParser->parseUseStatement());
-                        break;
-                    case T_DOC_COMMENT:
-                        $docComment = $token[1];
-                        break;
-                    case T_CLASS:
-                        $this->docComment['class'] = $docComment;
-                        $docComment = '';
-                        break;
-                    case T_VAR:
-                    case T_PRIVATE:
-                    case T_PROTECTED:
-                    case T_PUBLIC:
-                        $token = $tokenParser->next();
-                        if ($token[0] === T_VARIABLE) {
-                            $propertyName = substr($token[1], 1);
-                            $this->docComment['property'][$propertyName] = $docComment;
-                            continue 2;
-                        }
-                        if ($token[0] !== T_FUNCTION) {
-                            // For example, it can be T_FINAL.
-                            continue 2;
-                        }
-                        // No break.
-                    case T_FUNCTION:
-                        // The next string after function is the name, but
-                        // there can be & before the function name so find the
-                        // string.
-                        while (($token = $tokenParser->next()) && $token[0] !== T_STRING);
-                        $methodName = $token[1];
-                        $this->docComment['method'][$methodName] = $docComment;
-                        $docComment = '';
-                        break;
-                    case T_EXTENDS:
-                        $this->parentClassName = $tokenParser->parseClass();
-                        $nsPos = strpos($this->parentClassName, '\\');
-                        $fullySpecified = false;
-                        if ($nsPos === 0) {
-                            $fullySpecified = true;
-                        } else {
-                            if ($nsPos) {
-                                $prefix = strtolower(substr($this->parentClassName, 0, $nsPos));
-                                $postfix = substr($this->parentClassName, $nsPos);
-                            } else {
-                                $prefix = strtolower($this->parentClassName);
-                                $postfix = '';
-                            }
-                            foreach ($this->useStatements as $alias => $use) {
-                                if ($alias == $prefix) {
-                                    $this->parentClassName = '\\' . $use . $postfix;
-                                    $fullySpecified = true;
-                              }
-                            }
-                        }
-                        if (!$fullySpecified) {
-                            $this->parentClassName = '\\' . $this->namespace . '\\' . $this->parentClassName;
-                        }
-                        break;
-                }
-            }
-        }
-    }
-
-    /**
-     * @return StaticReflectionParser
-     */
-    protected function getParentStaticReflectionParser()
-    {
-        if (empty($this->parentStaticReflectionParser)) {
-            $this->parentStaticReflectionParser = new static($this->parentClassName, $this->finder);
-        }
-
-        return $this->parentStaticReflectionParser;
-    }
-
-    /**
-     * @return string
-     */
-    public function getClassName()
-    {
-        return $this->className;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNamespaceName()
-    {
-        return $this->namespace;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getReflectionClass()
-    {
-        return new StaticReflectionClass($this);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getReflectionMethod($methodName)
-    {
-        return new StaticReflectionMethod($this, $methodName);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getReflectionProperty($propertyName)
-    {
-        return new StaticReflectionProperty($this, $propertyName);
-    }
-
-    /**
-     * Gets the use statements from this file.
-     *
-     * @return array
-     */
-    public function getUseStatements()
-    {
-        $this->parse();
-
-        return $this->useStatements;
-    }
-
-    /**
-     * Gets the doc comment.
-     *
-     * @param string $type The type: 'class', 'property' or 'method'.
-     * @param string $name The name of the property or method, not needed for 'class'.
-     *
-     * @return string The doc comment, empty string if none.
-     */
-    public function getDocComment($type = 'class', $name = '')
-    {
-        $this->parse();
-
-        return $name ? $this->docComment[$type][$name] : $this->docComment[$type];
-    }
-
-    /**
-     * Gets the PSR-0 parser for the declaring class.
-     *
-     * @param string $type The type: 'property' or 'method'.
-     * @param string $name The name of the property or method.
-     *
-     * @return StaticReflectionParser A static reflection parser for the declaring class.
-     *
-     * @throws ReflectionException
-     */
-    public function getStaticReflectionParserForDeclaringClass($type, $name)
-    {
-        $this->parse();
-        if (isset($this->docComment[$type][$name])) {
-            return $this;
-        }
-        if (!empty($this->parentClassName)) {
-            return $this->getParentStaticReflectionParser()->getStaticReflectionParserForDeclaringClass($type, $name);
-        }
-        throw new ReflectionException('Invalid ' . $type . ' "' . $name . '"');
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionProperty.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionProperty.php
deleted file mode 100644
index 1664822..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionProperty.php
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Reflection;
-
-use ReflectionProperty;
-use ReflectionException;
-
-class StaticReflectionProperty extends ReflectionProperty
-{
-    /**
-     * The PSR-0 parser object.
-     *
-     * @var StaticReflectionParser
-     */
-    protected $staticReflectionParser;
-
-    /**
-     * The name of the property.
-     *
-     * @var string|null
-     */
-    protected $propertyName;
-
-    /**
-     * @param StaticReflectionParser $staticReflectionParser
-     * @param string|null            $propertyName
-     */
-    public function __construct(StaticReflectionParser $staticReflectionParser, $propertyName)
-    {
-        $this->staticReflectionParser = $staticReflectionParser;
-        $this->propertyName = $propertyName;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return $this->propertyName;
-    }
-
-    /**
-     * @return StaticReflectionParser
-     */
-    protected function getStaticReflectionParser()
-    {
-        return $this->staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', $this->propertyName);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDeclaringClass()
-    {
-        return $this->getStaticReflectionParser()->getReflectionClass();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDocComment()
-    {
-        return $this->getStaticReflectionParser()->getDocComment('property', $this->propertyName);
-    }
-
-    /**
-     * @return array
-     */
-    public function getUseStatements()
-    {
-        return $this->getStaticReflectionParser()->getUseStatements();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public static function export ($class, $name, $return = false)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getModifiers()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getValue($object = null)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isDefault()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isPrivate()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isProtected()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isPublic()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isStatic()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setAccessible ($accessible)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setValue ($object, $value = null)
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __toString()
-    {
-        throw new ReflectionException('Method not implemented');
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Util/ClassUtils.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Util/ClassUtils.php
deleted file mode 100644
index 49dc7bb..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Util/ClassUtils.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Util;
-
-use Doctrine\Common\Persistence\Proxy;
-
-/**
- * Class and reflection related functionality for objects that
- * might or not be proxy objects at the moment.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Johannes Schmitt <schmittjoh@gmail.com>
- */
-class ClassUtils
-{
-    /**
-     * Gets the real class name of a class name that could be a proxy.
-     *
-     * @param string $class
-     *
-     * @return string
-     */
-    public static function getRealClass($class)
-    {
-        if (false === $pos = strrpos($class, '\\'.Proxy::MARKER.'\\')) {
-            return $class;
-        }
-
-        return substr($class, $pos + Proxy::MARKER_LENGTH + 2);
-    }
-
-    /**
-     * Gets the real class name of an object (even if its a proxy).
-     *
-     * @param object $object
-     *
-     * @return string
-     */
-    public static function getClass($object)
-    {
-        return self::getRealClass(get_class($object));
-    }
-
-    /**
-     * Gets the real parent class name of a class or object.
-     *
-     * @param string $className
-     *
-     * @return string
-     */
-    public static function getParentClass($className)
-    {
-        return get_parent_class( self::getRealClass( $className ) );
-    }
-
-    /**
-     * Creates a new reflection class.
-     *
-     * @param string $class
-     *
-     * @return \ReflectionClass
-     */
-    public static function newReflectionClass($class)
-    {
-        return new \ReflectionClass( self::getRealClass( $class ) );
-    }
-
-    /**
-     * Creates a new reflection object.
-     *
-     * @param object $object
-     *
-     * @return \ReflectionObject
-     */
-    public static function newReflectionObject($object)
-    {
-        return self::newReflectionClass( self::getClass( $object ) );
-    }
-
-    /**
-     * Given a class name and a proxy namespace returns the proxy name.
-     *
-     * @param string $className
-     * @param string $proxyNamespace
-     *
-     * @return string
-     */
-    public static function generateProxyClassName($className, $proxyNamespace)
-    {
-        return rtrim($proxyNamespace, '\\') . '\\'.Proxy::MARKER.'\\' . ltrim($className, '\\');
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Util/Debug.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Util/Debug.php
deleted file mode 100644
index 8f25c9a..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Util/Debug.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Util;
-
-use Doctrine\Common\Persistence\Proxy;
-
-/**
- * Static class containing most used debug methods.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
- */
-final class Debug
-{
-    /**
-     * Private constructor (prevents instantiation).
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Prints a dump of the public, protected and private properties of $var.
-     *
-     * @link http://xdebug.org/
-     *
-     * @param mixed   $var       The variable to dump.
-     * @param integer $maxDepth  The maximum nesting level for object properties.
-     * @param boolean $stripTags Whether output should strip HTML tags.
-     */
-    public static function dump($var, $maxDepth = 2, $stripTags = true)
-    {
-        ini_set('html_errors', 'On');
-
-        if (extension_loaded('xdebug')) {
-            ini_set('xdebug.var_display_max_depth', $maxDepth);
-        }
-
-        $var = self::export($var, $maxDepth++);
-
-        ob_start();
-        var_dump($var);
-        $dump = ob_get_contents();
-        ob_end_clean();
-
-        echo ($stripTags ? strip_tags(html_entity_decode($dump)) : $dump);
-
-        ini_set('html_errors', 'Off');
-    }
-
-    /**
-     * @param mixed $var
-     * @param int   $maxDepth
-     *
-     * @return mixed
-     */
-    public static function export($var, $maxDepth)
-    {
-        $return = null;
-        $isObj = is_object($var);
-
-        if ($isObj && in_array('Doctrine\Common\Collections\Collection', class_implements($var))) {
-            $var = $var->toArray();
-        }
-
-        if ($maxDepth) {
-            if (is_array($var)) {
-                $return = array();
-
-                foreach ($var as $k => $v) {
-                    $return[$k] = self::export($v, $maxDepth - 1);
-                }
-            } else if ($isObj) {
-                $return = new \stdclass();
-                if ($var instanceof \DateTime) {
-                    $return->__CLASS__ = "DateTime";
-                    $return->date = $var->format('c');
-                    $return->timezone = $var->getTimeZone()->getName();
-                } else {
-                    $reflClass = ClassUtils::newReflectionObject($var);
-                    $return->__CLASS__ = ClassUtils::getClass($var);
-
-                    if ($var instanceof Proxy) {
-                        $return->__IS_PROXY__ = true;
-                        $return->__PROXY_INITIALIZED__ = $var->__isInitialized();
-                    }
-
-                    if ($var instanceof \ArrayObject || $var instanceof \ArrayIterator) {
-                        $return->__STORAGE__ = self::export($var->getArrayCopy(), $maxDepth - 1);
-                    }
-
-                    foreach ($reflClass->getProperties() as $reflProperty) {
-                        $name  = $reflProperty->getName();
-
-                        $reflProperty->setAccessible(true);
-                        $return->$name = self::export($reflProperty->getValue($var), $maxDepth - 1);
-                    }
-                }
-            } else {
-                $return = $var;
-            }
-        } else {
-            $return = is_object($var) ? get_class($var)
-                : (is_array($var) ? 'Array(' . count($var) . ')' : $var);
-        }
-
-        return $return;
-    }
-
-    /**
-     * Returns a string representation of an object.
-     *
-     * @param object $obj
-     *
-     * @return string
-     */
-    public static function toString($obj)
-    {
-        return method_exists($obj, '__toString') ? (string) $obj : get_class($obj) . '@' . spl_object_hash($obj);
-    }
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Util/Inflector.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Util/Inflector.php
deleted file mode 100644
index 082dc78..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Util/Inflector.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Util;
-
-use Doctrine\Common\Inflector\Inflector as BaseInflector;
-
-/**
- * Doctrine inflector has static methods for inflecting text.
- *
- * Kept for backwards compatibility reasons, was moved to its own component.
- */
-class Inflector extends BaseInflector
-{
-}
diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php
deleted file mode 100644
index ea1760a..0000000
--- a/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common;
-
-/**
- * Class to store and retrieve the version of Doctrine.
- *
- * @link   www.doctrine-project.org
- * @since  2.0
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-class Version
-{
-    /**
-     * Current Doctrine Version.
-     */
-    const VERSION = '2.4.2';
-
-    /**
-     * Compares a Doctrine version with the current one.
-     *
-     * @param string $version Doctrine version to compare.
-     *
-     * @return int -1 if older, 0 if it is the same, 1 if version passed as argument is newer.
-     */
-    public static function compare($version)
-    {
-        $currentVersion = str_replace(' ', '', strtolower(self::VERSION));
-        $version = str_replace(' ', '', $version);
-
-        return version_compare($version, $currentVersion);
-    }
-}
diff --git a/core/vendor/doctrine/common/phpunit.xml.dist b/core/vendor/doctrine/common/phpunit.xml.dist
deleted file mode 100644
index b9d3b34..0000000
--- a/core/vendor/doctrine/common/phpunit.xml.dist
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="./tests/Doctrine/Tests/TestInit.php"
->
-    <testsuites>
-        <testsuite name="Doctrine Common Test Suite">
-            <directory>./tests/Doctrine/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./lib/Doctrine/</directory>
-        </whitelist>
-    </filter>
-    
-    <groups>
-        <exclude>
-            <group>performance</group>
-        </exclude>
-    </groups>
-</phpunit>
diff --git a/core/vendor/doctrine/common/tests/.gitignore b/core/vendor/doctrine/common/tests/.gitignore
deleted file mode 100644
index 7210405..0000000
--- a/core/vendor/doctrine/common/tests/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Doctrine/Tests/Proxies/
-Doctrine/Tests/ORM/Proxy/generated/
-Doctrine/Tests/ORM/Tools/Export/export
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest.php
deleted file mode 100644
index 1eb2216..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common;
-
-use Doctrine\Common\ClassLoader;
-
-class ClassLoaderTest extends \Doctrine\Tests\DoctrineTestCase
-{
-    public function testClassLoader()
-    {
-        $classLoader = new ClassLoader('ClassLoaderTest');
-        $classLoader->setIncludePath(__DIR__);
-        $classLoader->setFileExtension('.class.php');
-        $classLoader->setNamespaceSeparator('_');
-
-        $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassA'));
-        $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassB'));
-        $this->assertTrue($classLoader->canLoadClass('ClassLoaderTest_ClassC'));
-        $this->assertFalse($classLoader->canLoadClass('OtherClass'));
-        $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassA'), true);
-        $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassB'), true);
-        $this->assertEquals($classLoader->loadClass('ClassLoaderTest_ClassC'), true);
-    }
-
-    public function testClassExists()
-    {
-        $this->assertFalse(ClassLoader::classExists('ClassLoaderTest\ClassD'));
-        $badLoader = function($className) {
-            require __DIR__ . '/ClassLoaderTest/ClassD.php';
-            return true;
-        };
-        spl_autoload_register($badLoader);
-        $this->assertTrue(ClassLoader::classExists('ClassLoaderTest\ClassD'));
-        spl_autoload_unregister($badLoader);
-    }
-
-    public function testGetClassLoader()
-    {
-        $cl = new ClassLoader('ClassLoaderTest', __DIR__);
-        $cl->register();
-        $this->assertTrue(ClassLoader::getClassLoader('ClassLoaderTest\ClassD') instanceof \Doctrine\Common\ClassLoader);
-        $this->assertNull(ClassLoader::getClassLoader('This\Class\Does\Not\Exist'));
-        $cl->unregister();
-    }
-
-    public function testClassExistsWithSilentAutoloader()
-    {
-        $test = $this;
-        $silentLoader = function ($className) use ($test) {
-            $test->assertSame('ClassLoaderTest\ClassE', $className);
-            require __DIR__ . '/ClassLoaderTest/ClassE.php';
-        };
-        $additionalLoader = function () use ($test) {
-            $test->fail('Should not call this loader, class was already loaded');
-        };
-
-        $this->assertFalse(ClassLoader::classExists('ClassLoaderTest\ClassE'));
-        spl_autoload_register($silentLoader);
-        spl_autoload_register($additionalLoader);
-        $this->assertTrue(ClassLoader::classExists('ClassLoaderTest\ClassE'));
-        spl_autoload_unregister($additionalLoader);
-        spl_autoload_unregister($silentLoader);
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassA.class.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassA.class.php
deleted file mode 100644
index 8554654..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassA.class.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ClassLoaderTest_ClassA
-{
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassB.class.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassB.class.php
deleted file mode 100644
index 5afcbeb..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassB.class.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ClassLoaderTest_ClassB
-{
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassC.class.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassC.class.php
deleted file mode 100644
index 0548118..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassC.class.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ClassLoaderTest_ClassC
-{
-
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassD.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassD.php
deleted file mode 100644
index 06e4e84..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassD.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace ClassLoaderTest;
-
-class ClassD {}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassE.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassE.php
deleted file mode 100644
index f7a0811..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/ClassLoaderTest/ClassE.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-namespace ClassLoaderTest;
-
-class ClassE {}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/DoctrineExceptionTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/DoctrineExceptionTest.php
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/EventManagerTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/EventManagerTest.php
deleted file mode 100644
index 2b11b20..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/EventManagerTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common;
-
-use Doctrine\Common\EventManager;
-use Doctrine\Common\EventArgs;
-
-class EventManagerTest extends \Doctrine\Tests\DoctrineTestCase
-{
-    /* Some pseudo events */
-    const preFoo = 'preFoo';
-    const postFoo = 'postFoo';
-    const preBar = 'preBar';
-    const postBar = 'postBar';
-
-    private $_preFooInvoked = false;
-    private $_postFooInvoked = false;
-
-    private $_eventManager;
-
-    protected function setUp()
-    {
-        $this->_eventManager = new EventManager;
-        $this->_preFooInvoked = false;
-        $this->_postFooInvoked = false;
-    }
-
-    public function testInitialState()
-    {
-        $this->assertEquals(array(), $this->_eventManager->getListeners());
-        $this->assertFalse($this->_eventManager->hasListeners(self::preFoo));
-        $this->assertFalse($this->_eventManager->hasListeners(self::postFoo));
-    }
-
-    public function testAddEventListener()
-    {
-        $this->_eventManager->addEventListener(array('preFoo', 'postFoo'), $this);
-        $this->assertTrue($this->_eventManager->hasListeners(self::preFoo));
-        $this->assertTrue($this->_eventManager->hasListeners(self::postFoo));
-        $this->assertEquals(1, count($this->_eventManager->getListeners(self::preFoo)));
-        $this->assertEquals(1, count($this->_eventManager->getListeners(self::postFoo)));
-        $this->assertEquals(2, count($this->_eventManager->getListeners()));
-    }
-
-    public function testDispatchEvent()
-    {
-        $this->_eventManager->addEventListener(array('preFoo', 'postFoo'), $this);
-        $this->_eventManager->dispatchEvent(self::preFoo);
-        $this->assertTrue($this->_preFooInvoked);
-        $this->assertFalse($this->_postFooInvoked);
-    }
-
-    public function testRemoveEventListener()
-    {
-        $this->_eventManager->addEventListener(array('preBar'), $this);
-        $this->assertTrue($this->_eventManager->hasListeners(self::preBar));
-        $this->_eventManager->removeEventListener(array('preBar'), $this);
-        $this->assertFalse($this->_eventManager->hasListeners(self::preBar));
-    }
-
-    public function testAddEventSubscriber()
-    {
-        $eventSubscriber = new TestEventSubscriber();
-        $this->_eventManager->addEventSubscriber($eventSubscriber);
-        $this->assertTrue($this->_eventManager->hasListeners(self::preFoo));
-        $this->assertTrue($this->_eventManager->hasListeners(self::postFoo));
-    }
-
-    /* Listener methods */
-
-    public function preFoo(EventArgs $e)
-    {
-        $this->_preFooInvoked = true;
-    }
-
-    public function postFoo(EventArgs $e)
-    {
-        $this->_postFooInvoked = true;
-    }
-}
-
-class TestEventSubscriber implements \Doctrine\Common\EventSubscriber
-{
-    public function getSubscribedEvents()
-    {
-        return array('preFoo', 'postFoo');
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/AnnotationDriverTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/AnnotationDriverTest.php
deleted file mode 100644
index ab6cc5c..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/AnnotationDriverTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Doctrine\Common\Persistence\Mapping\Driver\AnnotationDriver;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-class AnnotationDriverTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetAllClassNames()
-    {
-        $reader = new AnnotationReader();
-        $driver = new SimpleAnnotationDriver($reader, array(__DIR__ . '/_files/annotation'));
-
-        $classes = $driver->getAllClassNames();
-
-        $this->assertEquals(array('Doctrine\TestClass'), $classes);
-    }
-}
-
-class SimpleAnnotationDriver extends AnnotationDriver
-{
-    protected $entityAnnotationClasses = array('Doctrine\Entity' => true);
-
-    public function loadMetadataForClass($className, ClassMetadata $metadata)
-    {
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/ChainDriverTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/ChainDriverTest.php
deleted file mode 100644
index f9edd10..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/ChainDriverTest.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain;
-use Doctrine\Tests\DoctrineTestCase;
-
-class DriverChainTest extends DoctrineTestCase
-{
-    public function testDelegateToMatchingNamespaceDriver()
-    {
-        $className = 'Doctrine\Tests\Common\Persistence\Mapping\DriverChainEntity';
-        $classMetadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-
-        $chain = new MappingDriverChain();
-
-        $driver1 = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $driver1->expects($this->never())
-                ->method('loadMetadataForClass');
-        $driver1->expectS($this->never())
-                ->method('isTransient');
-
-        $driver2 = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $driver2->expects($this->at(0))
-                ->method('loadMetadataForClass')
-                ->with($this->equalTo($className), $this->equalTo($classMetadata));
-        $driver2->expects($this->at(1))
-                ->method('isTransient')
-                ->with($this->equalTo($className))
-                ->will($this->returnValue( true ));
-
-        $chain->addDriver($driver1, 'Doctrine\Tests\Models\Company');
-        $chain->addDriver($driver2, 'Doctrine\Tests\Common\Persistence\Mapping');
-
-        $chain->loadMetadataForClass($className, $classMetadata);
-
-        $this->assertTrue( $chain->isTransient($className) );
-    }
-
-    public function testLoadMetadata_NoDelegatorFound_ThrowsMappingException()
-    {
-        $className = 'Doctrine\Tests\Common\Persistence\Mapping\DriverChainEntity';
-        $classMetadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-
-        $chain = new MappingDriverChain();
-
-        $this->setExpectedException('Doctrine\Common\Persistence\Mapping\MappingException');
-        $chain->loadMetadataForClass($className, $classMetadata);
-    }
-
-    public function testGatherAllClassNames()
-    {
-        $className = 'Doctrine\Tests\Common\Persistence\Mapping\DriverChainEntity';
-        $classMetadata = $this->getMock('Doctrine\Common\Persistence\ClassMetadata');
-
-        $chain = new MappingDriverChain();
-
-        $driver1 = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $driver1->expects($this->once())
-                ->method('getAllClassNames')
-                ->will($this->returnValue(array('Doctrine\Tests\Models\Company\Foo')));
-
-        $driver2 = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $driver2->expects($this->once())
-                ->method('getAllClassNames')
-                ->will($this->returnValue(array('Doctrine\Tests\ORM\Mapping\Bar', 'Doctrine\Tests\ORM\Mapping\Baz', 'FooBarBaz')));
-
-        $chain->addDriver($driver1, 'Doctrine\Tests\Models\Company');
-        $chain->addDriver($driver2, 'Doctrine\Tests\ORM\Mapping');
-
-        $this->assertEquals(array(
-            'Doctrine\Tests\Models\Company\Foo',
-            'Doctrine\Tests\ORM\Mapping\Bar',
-            'Doctrine\Tests\ORM\Mapping\Baz'
-        ), $chain->getAllClassNames());
-    }
-
-    /**
-     * @group DDC-706
-     */
-    public function testIsTransient()
-    {
-        $driver1 = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $chain = new MappingDriverChain();
-        $chain->addDriver($driver1, 'Doctrine\Tests\Models\CMS');
-
-        $this->assertTrue($chain->isTransient('stdClass'), "stdClass isTransient");
-    }
-
-    /**
-     * @group DDC-1412
-     */
-    public function testDefaultDriver()
-    {
-        $companyDriver      = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $defaultDriver      = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $entityClassName    = 'Doctrine\Tests\ORM\Mapping\DriverChainEntity';
-        $managerClassName   = 'Doctrine\Tests\Models\Company\CompanyManager';
-        $chain              = new MappingDriverChain();
-
-        $companyDriver->expects($this->never())
-            ->method('loadMetadataForClass');
-        $companyDriver->expects($this->once())
-            ->method('isTransient')
-            ->with($this->equalTo($managerClassName))
-            ->will($this->returnValue(false));
-
-        $defaultDriver->expects($this->never())
-            ->method('loadMetadataForClass');
-        $defaultDriver->expects($this->once())
-            ->method('isTransient')
-            ->with($this->equalTo($entityClassName))
-            ->will($this->returnValue(true));
-
-        $this->assertNull($chain->getDefaultDriver());
-
-        $chain->setDefaultDriver($defaultDriver);
-        $chain->addDriver($companyDriver, 'Doctrine\Tests\Models\Company');
-
-        $this->assertSame($defaultDriver, $chain->getDefaultDriver());
-
-        $this->assertTrue($chain->isTransient($entityClassName));
-        $this->assertFalse($chain->isTransient($managerClassName));
-    }
-
-    public function testDefaultDriverGetAllClassNames()
-    {
-        $companyDriver = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $defaultDriver = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $chain         = new MappingDriverChain();
-
-        $companyDriver->expects($this->once())
-            ->method('getAllClassNames')
-            ->will($this->returnValue(array('Doctrine\Tests\Models\Company\Foo')));
-
-        $defaultDriver->expects($this->once())
-            ->method('getAllClassNames')
-            ->will($this->returnValue(array('Other\Class')));
-
-        $chain->setDefaultDriver($defaultDriver);
-        $chain->addDriver($companyDriver, 'Doctrine\Tests\Models\Company');
-
-        $classNames = $chain->getAllClassNames();
-
-        $this->assertEquals(array('Doctrine\Tests\Models\Company\Foo', 'Other\Class'), $classNames);
-    }
-}
-
-class DriverChainEntity
-{
-
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/ClassMetadataFactoryTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/ClassMetadataFactoryTest.php
deleted file mode 100644
index c5a457f..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/ClassMetadataFactoryTest.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Persistence\Mapping\Driver\DefaultFileLocator;
-use Doctrine\Common\Persistence\Mapping\ReflectionService;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory;
-use Doctrine\Common\Cache\ArrayCache;
-
-class ClassMetadataFactoryTest extends DoctrineTestCase
-{
-    /**
-     * @var TestClassMetadataFactory
-     */
-    private $cmf;
-
-    public function setUp()
-    {
-        $driver = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\MappingDriver');
-        $metadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $this->cmf = new TestClassMetadataFactory($driver, $metadata);
-    }
-
-    public function testGetCacheDriver()
-    {
-        $this->assertNull($this->cmf->getCacheDriver());
-        $cache = new ArrayCache();
-        $this->cmf->setCacheDriver($cache);
-        $this->assertSame($cache, $this->cmf->getCacheDriver());
-    }
-
-    public function testGetMetadataFor()
-    {
-        $metadata = $this->cmf->getMetadataFor('stdClass');
-
-        $this->assertInstanceOf('Doctrine\Common\Persistence\Mapping\ClassMetadata', $metadata);
-        $this->assertTrue($this->cmf->hasMetadataFor('stdClass'));
-    }
-
-    public function testGetMetadataForAbsentClass()
-    {
-        $this->setExpectedException('Doctrine\Common\Persistence\Mapping\MappingException');
-        $this->cmf->getMetadataFor(__NAMESPACE__ . '\AbsentClass');
-    }
-
-    public function testGetParentMetadata()
-    {
-        $metadata = $this->cmf->getMetadataFor(__NAMESPACE__ . '\ChildEntity');
-
-        $this->assertInstanceOf('Doctrine\Common\Persistence\Mapping\ClassMetadata', $metadata);
-        $this->assertTrue($this->cmf->hasMetadataFor(__NAMESPACE__ . '\ChildEntity'));
-        $this->assertTrue($this->cmf->hasMetadataFor(__NAMESPACE__ . '\RootEntity'));
-    }
-
-    public function testGetCachedMetadata()
-    {
-        $metadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $cache = new ArrayCache();
-        $cache->save(__NAMESPACE__. '\ChildEntity$CLASSMETADATA', $metadata);
-
-        $this->cmf->setCacheDriver($cache);
-
-        $loadedMetadata = $this->cmf->getMetadataFor(__NAMESPACE__ . '\ChildEntity');
-        $this->assertSame($loadedMetadata, $metadata);
-    }
-
-    public function testCacheGetMetadataFor()
-    {
-        $cache = new ArrayCache();
-        $this->cmf->setCacheDriver($cache);
-
-        $loadedMetadata = $this->cmf->getMetadataFor(__NAMESPACE__ . '\ChildEntity');
-
-        $this->assertSame($loadedMetadata, $cache->fetch(__NAMESPACE__. '\ChildEntity$CLASSMETADATA'));
-    }
-
-    public function testGetAliasedMetadata()
-    {
-        $loadedMetadata = $this->cmf->getMetadataFor('prefix:ChildEntity');
-
-        $this->assertTrue($this->cmf->hasMetadataFor(__NAMESPACE__ . '\ChildEntity'));
-        $this->assertTrue($this->cmf->hasMetadataFor('prefix:ChildEntity'));
-    }
-}
-
-class TestClassMetadataFactory extends AbstractClassMetadataFactory
-{
-    public $driver;
-    public $metadata;
-
-    public function __construct($driver, $metadata)
-    {
-        $this->driver = $driver;
-        $this->metadata = $metadata;
-    }
-
-    protected function doLoadMetadata($class, $parent, $rootEntityFound, array $nonSuperclassParents)
-    {
-
-    }
-
-    protected function getFqcnFromAlias($namespaceAlias, $simpleClassName)
-    {
-        return __NAMESPACE__ . '\\' . $simpleClassName;
-    }
-
-    protected function initialize()
-    {
-
-    }
-
-    protected function newClassMetadataInstance($className)
-    {
-        return $this->metadata;
-    }
-
-    protected function getDriver()
-    {
-        return $this->driver;
-    }
-    protected function wakeupReflection(ClassMetadata $class, ReflectionService $reflService)
-    {
-    }
-
-    protected function initializeReflection(ClassMetadata $class, ReflectionService $reflService)
-    {
-    }
-
-    protected function isEntity(ClassMetadata $class)
-    {
-        return true;
-    }
-}
-
-class RootEntity
-{
-
-}
-
-class ChildEntity extends RootEntity
-{
-
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/DefaultFileLocatorTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/DefaultFileLocatorTest.php
deleted file mode 100644
index 37072de..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/DefaultFileLocatorTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Persistence\Mapping\Driver\DefaultFileLocator;
-
-class DefaultFileLocatorTest extends DoctrineTestCase
-{
-    public function testGetPaths()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path));
-        $this->assertEquals(array($path), $locator->getPaths());
-
-        $locator = new DefaultFileLocator($path);
-        $this->assertEquals(array($path), $locator->getPaths());
-    }
-
-    public function testGetFileExtension()
-    {
-        $locator = new DefaultFileLocator(array(), ".yml");
-        $this->assertEquals(".yml", $locator->getFileExtension());
-        $locator->setFileExtension(".xml");
-        $this->assertEquals(".xml", $locator->getFileExtension());
-    }
-
-    public function testUniquePaths()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path, $path));
-        $this->assertEquals(array($path), $locator->getPaths());
-    }
-
-    public function testFindMappingFile()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path), ".yml");
-
-        $this->assertEquals(__DIR__ . '/_files' . DIRECTORY_SEPARATOR . 'stdClass.yml', $locator->findMappingFile('stdClass'));
-    }
-
-    public function testFindMappingFileNotFound()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path), ".yml");
-
-        $this->setExpectedException(
-            'Doctrine\Common\Persistence\Mapping\MappingException',
-            "No mapping file found named 'stdClass2.yml' for class 'stdClass2'"
-        );
-        $locator->findMappingFile('stdClass2');
-    }
-
-    public function testGetAllClassNames()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path), ".yml");
-        $classes = $locator->getAllClassNames(null);
-        sort($classes);
-
-        $this->assertEquals(array('global', 'stdClass'), $classes);
-        $this->assertEquals(array('stdClass'), $locator->getAllClassNames("global"));
-    }
-
-    public function testGetAllClassNamesNonMatchingFileExtension()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path), ".xml");
-        $this->assertEquals(array(), $locator->getAllClassNames("global"));
-    }
-
-    public function testFileExists()
-    {
-        $path = __DIR__ . "/_files";
-
-        $locator = new DefaultFileLocator(array($path), ".yml");
-
-        $this->assertTrue($locator->fileExists("stdClass"));
-        $this->assertFalse($locator->fileExists("stdClass2"));
-        $this->assertTrue($locator->fileExists("global"));
-        $this->assertFalse($locator->fileExists("global2"));
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/FileDriverTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/FileDriverTest.php
deleted file mode 100644
index 020c242..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/FileDriverTest.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Persistence\Mapping\Driver\FileDriver;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-class FileDriverTest extends DoctrineTestCase
-{
-    public function testGlobalBasename()
-    {
-        $driver = new TestFileDriver(array());
-
-        $this->assertNull($driver->getGlobalBasename());
-
-        $driver->setGlobalBasename("global");
-        $this->assertEquals("global", $driver->getGlobalBasename());
-    }
-
-    public function testGetElementFromGlobalFile()
-    {
-        $driver = new TestFileDriver($this->newLocator());
-        $driver->setGlobalBasename("global");
-
-        $element = $driver->getElement('stdGlobal');
-
-        $this->assertEquals('stdGlobal', $element);
-    }
-
-    public function testGetElementFromFile()
-    {
-        $locator = $this->newLocator();
-        $locator->expects($this->once())
-                ->method('findMappingFile')
-                ->with($this->equalTo('stdClass'))
-                ->will($this->returnValue(__DIR__ . '/_files/stdClass.yml'));
-
-        $driver = new TestFileDriver($locator);
-
-        $this->assertEquals('stdClass', $driver->getElement('stdClass'));
-    }
-
-    public function testGetAllClassNamesGlobalBasename()
-    {
-        $driver = new TestFileDriver($this->newLocator());
-        $driver->setGlobalBasename("global");
-
-        $classNames = $driver->getAllClassNames();
-
-        $this->assertEquals(array('stdGlobal', 'stdGlobal2'), $classNames);
-    }
-
-    public function testGetAllClassNamesFromMappingFile()
-    {
-        $locator = $this->newLocator();
-        $locator->expects($this->any())
-                ->method('getAllClassNames')
-                ->with($this->equalTo(null))
-                ->will($this->returnValue(array('stdClass')));
-        $driver = new TestFileDriver($locator);
-
-        $classNames = $driver->getAllClassNames();
-
-        $this->assertEquals(array('stdClass'), $classNames);
-    }
-
-    public function testGetAllClassNamesBothSources()
-    {
-        $locator = $this->newLocator();
-        $locator->expects($this->any())
-                ->method('getAllClassNames')
-                ->with($this->equalTo('global'))
-                ->will($this->returnValue(array('stdClass')));
-        $driver = new TestFileDriver($locator);
-        $driver->setGlobalBasename("global");
-
-        $classNames = $driver->getAllClassNames();
-
-        $this->assertEquals(array('stdGlobal', 'stdGlobal2', 'stdClass'), $classNames);
-    }
-
-    public function testIsNotTransient()
-    {
-        $locator = $this->newLocator();
-        $locator->expects($this->once())
-                ->method('fileExists')
-                ->with($this->equalTo('stdClass'))
-                ->will($this->returnValue( true ));
-
-        $driver = new TestFileDriver($locator);
-        $driver->setGlobalBasename("global");
-
-        $this->assertFalse($driver->isTransient('stdClass'));
-        $this->assertFalse($driver->isTransient('stdGlobal'));
-        $this->assertFalse($driver->isTransient('stdGlobal2'));
-    }
-
-    public function testIsTransient()
-    {
-        $locator = $this->newLocator();
-        $locator->expects($this->once())
-                ->method('fileExists')
-                ->with($this->equalTo('stdClass2'))
-                ->will($this->returnValue( false ));
-
-        $driver = new TestFileDriver($locator);
-
-        $this->assertTrue($driver->isTransient('stdClass2'));
-    }
-
-    public function testNonLocatorFallback()
-    {
-        $driver = new TestFileDriver(__DIR__ . '/_files', '.yml');
-        $this->assertTrue($driver->isTransient('stdClass2'));
-        $this->assertFalse($driver->isTransient('stdClass'));
-    }
-
-    private function newLocator()
-    {
-        $locator = $this->getMock('Doctrine\Common\Persistence\Mapping\Driver\FileLocator');
-        $locator->expects($this->any())->method('getFileExtension')->will($this->returnValue('.yml'));
-        $locator->expects($this->any())->method('getPaths')->will($this->returnValue(array(__DIR__ . "/_files")));
-        return $locator;
-    }
-}
-
-class TestFileDriver extends FileDriver
-{
-    protected function loadMappingFile($file)
-    {
-        if (strpos($file, "global.yml") !== false) {
-            return array('stdGlobal' => 'stdGlobal', 'stdGlobal2' => 'stdGlobal2');
-        }
-        return array('stdClass' => 'stdClass');
-    }
-
-    public function loadMetadataForClass($className, ClassMetadata $metadata)
-    {
-
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/PHPDriverTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/PHPDriverTest.php
deleted file mode 100644
index 8fc4d80..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/PHPDriverTest.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Persistence\Mapping\Driver\PHPDriver;
-
-class PHPDriverTest extends DoctrineTestCase
-{
-    public function testLoadMetadata()
-    {
-        $metadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $metadata->expects($this->once())->method('getFieldNames');
-
-        $driver = new PHPDriver(array(__DIR__ . "/_files"));
-        $driver->loadMetadataForClass('TestEntity', $metadata);
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/RuntimeReflectionServiceTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/RuntimeReflectionServiceTest.php
deleted file mode 100644
index 767ccd6..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/RuntimeReflectionServiceTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Common\Persistence\Mapping\RuntimeReflectionService;
-
-/**
- * @group DCOM-93
- */
-class RuntimeReflectionServiceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var RuntimeReflectionService
-     */
-    private $reflectionService;
-
-    public $unusedPublicProperty;
-
-    public function setUp()
-    {
-        $this->reflectionService = new RuntimeReflectionService();
-    }
-
-    public function testShortname()
-    {
-        $this->assertEquals("RuntimeReflectionServiceTest", $this->reflectionService->getClassShortName(__CLASS__));
-    }
-
-    public function testClassNamespaceName()
-    {
-        $this->assertEquals("Doctrine\Tests\Common\Persistence\Mapping", $this->reflectionService->getClassNamespace(__CLASS__));
-    }
-
-    public function testGetParentClasses()
-    {
-        $classes = $this->reflectionService->getParentClasses(__CLASS__);
-        $this->assertTrue(count($classes) >= 1, "The test class ".__CLASS__." should have at least one parent.");
-    }
-
-    public function testGetParentClassesForAbsentClass()
-    {
-        $this->setExpectedException('Doctrine\Common\Persistence\Mapping\MappingException');
-        $this->reflectionService->getParentClasses(__NAMESPACE__ . '\AbsentClass');
-    }
-
-    public function testGetReflectionClass()
-    {
-        $class = $this->reflectionService->getClass(__CLASS__);
-        $this->assertInstanceOf("ReflectionClass", $class);
-    }
-
-    public function testGetMethods()
-    {
-        $this->assertTrue($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods"));
-        $this->assertFalse($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods2"));
-    }
-
-    public function testGetAccessibleProperty()
-    {
-        $reflProp = $this->reflectionService->getAccessibleProperty(__CLASS__, "reflectionService");
-        $this->assertInstanceOf("ReflectionProperty", $reflProp);
-
-        $reflProp = $this->reflectionService->getAccessibleProperty(__CLASS__, "unusedPublicProperty");
-        $this->assertInstanceOf("Doctrine\Common\Reflection\RuntimePublicReflectionProperty", $reflProp);
-    }
-}
-
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticPHPDriverTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticPHPDriverTest.php
deleted file mode 100644
index 9f1c568..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticPHPDriverTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Persistence\Mapping\Driver\StaticPHPDriver;
-
-class StaticPHPDriverTest extends DoctrineTestCase
-{
-    public function testLoadMetadata()
-    {
-        $metadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $metadata->expects($this->once())->method('getFieldNames');
-
-        $driver = new StaticPHPDriver(array(__DIR__));
-        $driver->loadMetadataForClass(__NAMESPACE__ . '\\TestEntity', $metadata);
-    }
-
-    public function testGetAllClassNames()
-    {
-        $driver = new StaticPHPDriver(array(__DIR__));
-        $classNames = $driver->getAllClassNames();
-
-        $this->assertContains(
-            'Doctrine\Tests\Common\Persistence\Mapping\TestEntity', $classNames);
-    }
-}
-
-class TestEntity
-{
-    static public function loadMetadata($metadata)
-    {
-        $metadata->getFieldNames();
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php
deleted file mode 100644
index 9054b6c..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Common\Persistence\Mapping\StaticReflectionService;
-
-/**
- * @group DCOM-93
- */
-class StaticReflectionServiceTest extends \PHPUnit_Framework_TestCase
-{
-    private $reflectionService;
-
-    public function setUp()
-    {
-        $this->reflectionService = new StaticReflectionService();
-    }
-
-    public function testShortname()
-    {
-        $this->assertEquals("StaticReflectionServiceTest", $this->reflectionService->getClassShortName(__CLASS__));
-    }
-
-    public function testClassNamespaceName()
-    {
-        $this->assertEquals("Doctrine\Tests\Common\Persistence\Mapping", $this->reflectionService->getClassNamespace(__CLASS__));
-    }
-
-    public function testGetParentClasses()
-    {
-        $classes = $this->reflectionService->getParentClasses(__CLASS__);
-        $this->assertTrue(count($classes) == 0, "The test class ".__CLASS__." should have no parents according to static reflection.");
-    }
-
-    public function testGetReflectionClass()
-    {
-        $class = $this->reflectionService->getClass(__CLASS__);
-        $this->assertNull($class);
-    }
-
-    public function testGetMethods()
-    {
-        $this->assertTrue($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods"));
-        $this->assertTrue($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods2"));
-    }
-
-    public function testGetAccessibleProperty()
-    {
-        $reflProp = $this->reflectionService->getAccessibleProperty(__CLASS__, "reflectionService");
-        $this->assertNull($reflProp);
-    }
-}
-
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/SymfonyFileLocatorTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/SymfonyFileLocatorTest.php
deleted file mode 100644
index b51162e..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/SymfonyFileLocatorTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence\Mapping;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Persistence\Mapping\Driver\SymfonyFileLocator;
-
-class SymfonyFileLocatorTest extends DoctrineTestCase
-{
-    public function testGetPaths()
-    {
-        $path = __DIR__ . "/_files";
-        $prefix = "Foo";
-
-        $locator = new SymfonyFileLocator(array($path => $prefix));
-        $this->assertEquals(array($path), $locator->getPaths());
-
-        $locator = new SymfonyFileLocator(array($path => $prefix));
-        $this->assertEquals(array($path), $locator->getPaths());
-    }
-
-    public function testGetPrefixes()
-    {
-        $path = __DIR__ . "/_files";
-        $prefix = "Foo";
-
-        $locator = new SymfonyFileLocator(array($path => $prefix));
-        $this->assertEquals(array($path => $prefix), $locator->getNamespacePrefixes());
-    }
-
-    public function testGetFileExtension()
-    {
-        $locator = new SymfonyFileLocator(array(), ".yml");
-        $this->assertEquals(".yml", $locator->getFileExtension());
-        $locator->setFileExtension(".xml");
-        $this->assertEquals(".xml", $locator->getFileExtension());
-    }
-
-    public function testFileExists()
-    {
-        $path = __DIR__ . "/_files";
-        $prefix = "Foo";
-
-        $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
-
-        $this->assertTrue($locator->fileExists("Foo\stdClass"));
-        $this->assertTrue($locator->fileExists("Foo\global"));
-        $this->assertFalse($locator->fileExists("Foo\stdClass2"));
-        $this->assertFalse($locator->fileExists("Foo\global2"));
-    }
-
-    public function testGetAllClassNames()
-    {
-        $path = __DIR__ . "/_files";
-        $prefix = "Foo";
-
-        $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
-        $classes = $locator->getAllClassNames(null);
-        sort($classes);
-
-        $this->assertEquals(array("Foo\\global", "Foo\\stdClass"), $classes);
-        $this->assertEquals(array("Foo\\stdClass"), $locator->getAllClassNames("global"));
-    }
-
-    public function testFindMappingFile()
-    {
-        $path = __DIR__ . "/_files";
-        $prefix = "Foo";
-
-        $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
-
-        $this->assertEquals(__DIR__ . "/_files/stdClass.yml", $locator->findMappingFile("Foo\\stdClass"));
-    }
-
-    public function testFindMappingFileNotFound()
-    {
-        $path = __DIR__ . "/_files";
-        $prefix = "Foo";
-
-        $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
-
-        $this->setExpectedException(
-            "Doctrine\Common\Persistence\Mapping\MappingException",
-            "No mapping file found named '".__DIR__."/_files/stdClass2.yml' for class 'Foo\stdClass2'."
-        );
-        $locator->findMappingFile("Foo\\stdClass2");
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/TestEntity.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/TestEntity.php
deleted file mode 100644
index d0e9976..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/TestEntity.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$metadata->getFieldNames();
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/annotation/TestClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/annotation/TestClass.php
deleted file mode 100644
index ff03568..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/annotation/TestClass.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Doctrine;
-
-/**
- * @Doctrine\Entity
- */
-class TestClass
-{
-}
-
-/**
- * @Annotation
- */
-class Entity
-{
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/global.yml b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/global.yml
deleted file mode 100644
index 30d74d2..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/global.yml
+++ /dev/null
@@ -1 +0,0 @@
-test
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/stdClass.yml b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/stdClass.yml
deleted file mode 100644
index 30d74d2..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/stdClass.yml
+++ /dev/null
@@ -1 +0,0 @@
-test
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/ObjectManagerDecoratorTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/ObjectManagerDecoratorTest.php
deleted file mode 100644
index 768b4d3..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/ObjectManagerDecoratorTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence;
-
-use Doctrine\Common\Persistence\ObjectManagerDecorator;
-use Doctrine\Common\Persistence\ObjectManager;
-
-class NullObjectManagerDecorator extends ObjectManagerDecorator
-{
-    public function __construct(ObjectManager $wrapped)
-    {
-        $this->wrapped = $wrapped;
-    }
-}
-
-class ObjectManagerDecoratorTest extends \PHPUnit_Framework_TestCase
-{
-    private $wrapped;
-    private $decorated;
-
-    public function setUp()
-    {
-        $this->wrapped = $this->getMock('Doctrine\Common\Persistence\ObjectManager');
-        $this->decorated = new NullObjectManagerDecorator($this->wrapped);
-    }
-
-    public function getMethodParameters()
-    {
-        $class = new \ReflectionClass('Doctrine\Common\Persistence\ObjectManager');
-
-        $methods = array();
-        foreach ($class->getMethods() as $method) {
-            if ($method->getNumberOfRequiredParameters() === 0) {
-               $methods[] = array($method->getName(), array());
-            } elseif ($method->getNumberOfRequiredParameters() > 0) {
-                $methods[] = array($method->getName(), array_fill(0, $method->getNumberOfRequiredParameters(), 'req') ?: array());
-            }
-            if ($method->getNumberOfParameters() != $method->getNumberOfRequiredParameters()) {
-                $methods[] = array($method->getName(), array_fill(0, $method->getNumberOfParameters(), 'all') ?: array());
-            }
-        }
-
-        return $methods;
-    }
-
-    /**
-     * @dataProvider getMethodParameters
-     */
-    public function testAllMethodCallsAreDelegatedToTheWrappedInstance($method, array $parameters)
-    {
-        $stub = $this->wrapped
-            ->expects($this->once())
-            ->method($method)
-            ->will($this->returnValue('INNER VALUE FROM ' . $method));
-
-        call_user_func_array(array($stub, 'with'), $parameters);
-
-        $this->assertSame('INNER VALUE FROM ' . $method, call_user_func_array(array($this->decorated, $method), $parameters));
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/PersistentObjectTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/PersistentObjectTest.php
deleted file mode 100644
index 180d0f0..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/PersistentObjectTest.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Persistence;
-
-use Doctrine\Common\Persistence\PersistentObject;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use Doctrine\Common\Persistence\Mapping\ReflectionService;
-
-/**
- * @group DDC-1448
- */
-class PersistentObjectTest extends \Doctrine\Tests\DoctrineTestCase
-{
-    private $cm;
-    private $om;
-    private $object;
-
-    public function setUp()
-    {
-        $this->cm = new TestObjectMetadata;
-        $this->om = $this->getMock('Doctrine\Common\Persistence\ObjectManager');
-        $this->om->expects($this->any())->method('getClassMetadata')
-                 ->will($this->returnValue($this->cm));
-        $this->object = new TestObject;
-        PersistentObject::setObjectManager($this->om);
-        $this->object->injectObjectManager($this->om, $this->cm);
-    }
-
-    public function testGetObjectManager()
-    {
-        $this->assertSame($this->om, PersistentObject::getObjectManager());
-    }
-
-    public function testNonMatchingObjectManager()
-    {
-        $this->setExpectedException('RuntimeException');
-        $om = $this->getMock('Doctrine\Common\Persistence\ObjectManager');
-        $this->object->injectObjectManager($om, $this->cm);
-    }
-
-    public function testGetField()
-    {
-        $this->assertEquals('beberlei', $this->object->getName());
-    }
-
-    public function testSetField()
-    {
-        $this->object->setName("test");
-        $this->assertEquals("test", $this->object->getName());
-    }
-
-    public function testGetIdentifier()
-    {
-        $this->assertEquals(1, $this->object->getId());
-    }
-
-    public function testSetIdentifier()
-    {
-        $this->setExpectedException('BadMethodCallException');
-        $this->object->setId(2);
-    }
-
-    public function testSetUnknownField()
-    {
-        $this->setExpectedException('BadMethodCallException');
-        $this->object->setUnknown("test");
-    }
-
-    public function testGetUnknownField()
-    {
-        $this->setExpectedException('BadMethodCallException');
-        $this->object->getUnknown();
-    }
-
-    public function testGetToOneAssociation()
-    {
-        $this->assertNull($this->object->getParent());
-    }
-
-    public function testSetToOneAssociation()
-    {
-        $parent = new TestObject();
-        $this->object->setParent($parent);
-        $this->assertSame($parent, $this->object->getParent($parent));
-    }
-
-    public function testSetInvalidToOneAssociation()
-    {
-        $parent = new \stdClass();
-
-        $this->setExpectedException('InvalidArgumentException');
-        $this->object->setParent($parent);
-    }
-
-    public function testSetToOneAssociationNull()
-    {
-        $parent = new TestObject();
-        $this->object->setParent($parent);
-        $this->object->setParent(null);
-        $this->assertNull($this->object->getParent());
-    }
-
-    public function testAddToManyAssociation()
-    {
-        $child = new TestObject();
-        $this->object->addChildren($child);
-
-        $this->assertSame($this->object, $child->getParent());
-        $this->assertEquals(1, count($this->object->getChildren()));
-
-        $child = new TestObject();
-        $this->object->addChildren($child);
-
-        $this->assertEquals(2, count($this->object->getChildren()));
-    }
-
-    public function testAddInvalidToManyAssociation()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->object->addChildren(new \stdClass());
-    }
-
-    public function testNoObjectManagerSet()
-    {
-        PersistentObject::setObjectManager(null);
-        $child = new TestObject();
-
-        $this->setExpectedException('RuntimeException');
-        $child->setName("test");
-    }
-
-    public function testInvalidMethod()
-    {
-        $this->setExpectedException('BadMethodCallException');
-        $this->object->asdf();
-    }
-
-    public function testAddInvalidCollection()
-    {
-        $this->setExpectedException('BadMethodCallException');
-        $this->object->addAsdf(new \stdClass());
-    }
-}
-
-class TestObject extends PersistentObject
-{
-    protected $id = 1;
-    protected $name = 'beberlei';
-    protected $parent;
-    protected $children;
-}
-
-class TestObjectMetadata implements ClassMetadata
-{
-
-    public function getAssociationMappedByTargetField($assocName)
-    {
-        $assoc = array('children' => 'parent');
-        return $assoc[$assocName];
-    }
-
-    public function getAssociationNames()
-    {
-        return array('parent', 'children');
-    }
-
-    public function getAssociationTargetClass($assocName)
-    {
-        return __NAMESPACE__ . '\TestObject';
-    }
-
-    public function getFieldNames()
-    {
-        return array('id', 'name');
-    }
-
-    public function getIdentifier()
-    {
-        return array('id');
-    }
-
-    public function getName()
-    {
-        return __NAMESPACE__ . '\TestObject';
-    }
-
-    public function getReflectionClass()
-    {
-        return new \ReflectionClass($this->getName());
-    }
-
-    public function getTypeOfField($fieldName)
-    {
-        $types = array('id' => 'integer', 'name' => 'string');
-        return $types[$fieldName];
-    }
-
-    public function hasAssociation($fieldName)
-    {
-        return in_array($fieldName, array('parent', 'children'));
-    }
-
-    public function hasField($fieldName)
-    {
-        return in_array($fieldName, array('id', 'name'));
-    }
-
-    public function isAssociationInverseSide($assocName)
-    {
-        return ($assocName === 'children');
-    }
-
-    public function isCollectionValuedAssociation($fieldName)
-    {
-        return ($fieldName === 'children');
-    }
-
-    public function isIdentifier($fieldName)
-    {
-        return $fieldName === 'id';
-    }
-
-    public function isSingleValuedAssociation($fieldName)
-    {
-        return $fieldName === 'parent';
-    }
-
-    public function getIdentifierValues($entity)
-    {
-
-    }
-
-    public function getIdentifierFieldNames()
-    {
-
-    }
-
-    public function initializeReflection(ReflectionService $reflService)
-    {
-
-    }
-
-    public function wakeupReflection(ReflectionService $reflService)
-    {
-
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php
deleted file mode 100644
index 6ae9316..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Proxy\ProxyDefinition;
-
-class AbstractProxyFactoryTest extends DoctrineTestCase
-{
-    public function testGenerateProxyClasses()
-    {
-        $metadata       = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $proxyGenerator = $this->getMock('Doctrine\Common\Proxy\ProxyGenerator', array(), array(), '', false);
-
-        $proxyGenerator
-            ->expects($this->once())
-            ->method('getProxyFileName');
-        $proxyGenerator
-            ->expects($this->once())
-            ->method('generateProxyClass');
-
-        $metadataFactory = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadataFactory');
-        $proxyFactory    = $this->getMockForAbstractClass(
-            'Doctrine\Common\Proxy\AbstractProxyFactory',
-            array($proxyGenerator, $metadataFactory, true)
-        );
-
-        $proxyFactory
-            ->expects($this->any())
-            ->method('skipClass')
-            ->will($this->returnValue(false));
-
-        $generated = $proxyFactory->generateProxyClasses(array($metadata), sys_get_temp_dir());
-
-        $this->assertEquals(1, $generated, 'One proxy was generated');
-    }
-
-    public function testGetProxy()
-    {
-        $metadata        = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $proxy           = $this->getMock('Doctrine\Common\Proxy\Proxy');
-        $definition      = new ProxyDefinition(get_class($proxy), array(), array(), null, null);
-        $proxyGenerator  = $this->getMock('Doctrine\Common\Proxy\ProxyGenerator', array(), array(), '', false);
-        $metadataFactory = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadataFactory');
-
-        $metadataFactory
-            ->expects($this->once())
-            ->method('getMetadataFor')
-            ->will($this->returnValue($metadata));
-
-        $proxyFactory = $this->getMockForAbstractClass(
-            'Doctrine\Common\Proxy\AbstractProxyFactory',
-            array($proxyGenerator, $metadataFactory, true)
-        );
-
-        $proxyFactory
-            ->expects($this->any())
-            ->method('createProxyDefinition')
-            ->will($this->returnValue($definition));
-
-        $generatedProxy = $proxyFactory->getProxy('Class', array('id' => 1));
-
-        $this->assertInstanceOf(get_class($proxy), $generatedProxy);
-    }
-
-    public function testResetUnitializedProxy()
-    {
-        $metadata        = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $proxy           = $this->getMock('Doctrine\Common\Proxy\Proxy');
-        $definition      = new ProxyDefinition(get_class($proxy), array(), array(), null, null);
-        $proxyGenerator  = $this->getMock('Doctrine\Common\Proxy\ProxyGenerator', array(), array(), '', false);
-        $metadataFactory = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadataFactory');
-
-        $metadataFactory
-            ->expects($this->once())
-            ->method('getMetadataFor')
-            ->will($this->returnValue($metadata));
-
-        $proxyFactory = $this->getMockForAbstractClass(
-            'Doctrine\Common\Proxy\AbstractProxyFactory',
-            array($proxyGenerator, $metadataFactory, true)
-        );
-
-        $proxyFactory
-            ->expects($this->any())
-            ->method('createProxyDefinition')
-            ->will($this->returnValue($definition));
-
-        $proxy
-            ->expects($this->once())
-            ->method('__isInitialized')
-            ->will($this->returnValue(false));
-        $proxy
-            ->expects($this->once())
-            ->method('__setInitializer');
-        $proxy
-            ->expects($this->once())
-            ->method('__setCloner');
-
-        $proxyFactory->resetUninitializedProxy($proxy);
-    }
-
-    public function testDisallowsResettingInitializedProxy()
-    {
-        $proxyFactory = $this->getMockForAbstractClass('Doctrine\Common\Proxy\AbstractProxyFactory',  array(), '', false);
-        $proxy        = $this->getMock('Doctrine\Common\Proxy\Proxy');
-
-        $proxy
-            ->expects($this->any())
-            ->method('__isInitialized')
-            ->will($this->returnValue(true));
-
-        $this->setExpectedException('Doctrine\Common\Proxy\Exception\InvalidArgumentException');
-
-        $proxyFactory->resetUninitializedProxy($proxy);
-    }
-
-    public function testMissingPrimaryKeyValue()
-    {
-        $metadata        = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $proxy           = $this->getMock('Doctrine\Common\Proxy\Proxy');
-        $definition      = new ProxyDefinition(get_class($proxy), array('missingKey'), array(), null, null);
-        $proxyGenerator  = $this->getMock('Doctrine\Common\Proxy\ProxyGenerator', array(), array(), '', false);
-        $metadataFactory = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadataFactory');
-
-        $metadataFactory
-            ->expects($this->once())
-            ->method('getMetadataFor')
-            ->will($this->returnValue($metadata));
-
-        $proxyFactory = $this->getMockForAbstractClass(
-            'Doctrine\Common\Proxy\AbstractProxyFactory',
-            array($proxyGenerator, $metadataFactory, true)
-        );
-
-        $proxyFactory
-            ->expects($this->any())
-            ->method('createProxyDefinition')
-            ->will($this->returnValue($definition));
-
-        $this->setExpectedException('\OutOfBoundsException');
-
-        $generatedProxy = $proxyFactory->getProxy('Class', array());
-    }
-}
-
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AutoloaderTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AutoloaderTest.php
deleted file mode 100644
index be713fc..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AutoloaderTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use PHPUnit_Framework_TestCase;
-use Doctrine\Common\Proxy\Autoloader;
-
-/**
- * @group DDC-1698
- */
-class AutoloaderTest extends PHPUnit_Framework_TestCase
-{
-    public static function dataResolveFile()
-    {
-        return array(
-            array('/tmp', 'MyProxy', 'MyProxy\__CG__\RealClass', '/tmp' . DIRECTORY_SEPARATOR . '__CG__RealClass.php'),
-            array('/tmp', 'MyProxy\Subdir', 'MyProxy\Subdir\__CG__\RealClass', '/tmp' . DIRECTORY_SEPARATOR . '__CG__RealClass.php'),
-            array('/tmp', 'MyProxy', 'MyProxy\__CG__\Other\RealClass', '/tmp' . DIRECTORY_SEPARATOR . '__CG__OtherRealClass.php'),
-        );
-    }
-
-    /**
-     * @dataProvider dataResolveFile
-     */
-    public function testResolveFile($proxyDir, $proxyNamespace, $className, $expectedProxyFile)
-    {
-        $actualProxyFile = Autoloader::resolveFile($proxyDir, $proxyNamespace, $className);
-        $this->assertEquals($expectedProxyFile, $actualProxyFile);
-    }
-
-    public function testAutoload()
-    {
-        if (file_exists(sys_get_temp_dir() ."/AutoloaderTestClass.php")) {
-            unlink(sys_get_temp_dir() ."/AutoloaderTestClass.php");
-        }
-
-        $autoloader = Autoloader::register(sys_get_temp_dir(), 'ProxyAutoloaderTest', function($proxyDir, $proxyNamespace, $className) {
-            file_put_contents(sys_get_temp_dir() . "/AutoloaderTestClass.php", "<?php namespace ProxyAutoloaderTest; class AutoloaderTestClass {} ");
-        });
-
-        $this->assertTrue(class_exists('ProxyAutoloaderTest\AutoloaderTestClass', true));
-        unlink(sys_get_temp_dir() ."/AutoloaderTestClass.php");
-    }
-
-    public function testRegisterWithInvalidCallback()
-    {
-        $this->setExpectedException(
-            'Doctrine\Common\Proxy\Exception\InvalidArgumentException',
-            'Invalid \$notFoundCallback given: must be a callable, "stdClass" given'
-        );
-
-        Autoloader::register('', '', new \stdClass());
-    }
-}
-
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/CallableTypeHintClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/CallableTypeHintClass.php
deleted file mode 100644
index f5fccb0..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/CallableTypeHintClass.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class CallableTypeHintClass
-{
-    /**
-     * @param callable $foo
-     */
-    public function call(callable $foo)
-    {
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/InvalidTypeHintClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/InvalidTypeHintClass.php
deleted file mode 100644
index bed55d2..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/InvalidTypeHintClass.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class InvalidTypeHintClass
-{
-    /**
-     * @param InvalidHint (non existing class type hint)
-     */
-    public function invalidTypeHintMethod(InvalidHint $foo)
-    {
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/LazyLoadableObject.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/LazyLoadableObject.php
deleted file mode 100644
index 6a4f2d5..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/LazyLoadableObject.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset representing a lazy loadable object
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- * @since  2.4
- */
-class LazyLoadableObject
-{
-    /**
-     * @var string
-     */
-    public $publicIdentifierField;
-
-    /**
-     * @var string
-     */
-    protected $protectedIdentifierField;
-
-    /**
-     * @var string
-     */
-    public $publicTransientField            = 'publicTransientFieldValue';
-
-    /**
-     * @var string
-     */
-    protected $protectedTransientField      = 'protectedTransientFieldValue';
-
-    /**
-     * @var string
-     */
-    public $publicPersistentField           = 'publicPersistentFieldValue';
-
-    /**
-     * @var string
-     */
-    protected $protectedPersistentField     = 'protectedPersistentFieldValue';
-
-    /**
-     * @var string
-     */
-    public $publicAssociation               = 'publicAssociationValue';
-
-    /**
-     * @var string
-     */
-    protected $protectedAssociation         = 'protectedAssociationValue';
-
-    /**
-     * @return string
-     */
-    public function getProtectedIdentifierField()
-    {
-        return $this->protectedIdentifierField;
-    }
-
-    /**
-     * @return string
-     */
-    public function testInitializationTriggeringMethod()
-    {
-        return 'testInitializationTriggeringMethod';
-    }
-
-    /**
-     * @return string
-     */
-    public function getProtectedAssociation()
-    {
-        return $this->protectedAssociation;
-    }
-
-    /**
-     * @param \stdClass $param
-     */
-    public function publicTypeHintedMethod(\stdClass $param)
-    {
-    }
-
-    /**
-     *
-     */
-    public function &byRefMethod()
-    {
-    }
-
-    /**
-     * @param mixed $thisIsNotByRef
-     * @param &mixed $thisIsByRef
-     */
-    public function byRefParamMethod($thisIsNotByRef, &$thisIsByRef)
-    {
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/LazyLoadableObjectClassMetadata.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/LazyLoadableObjectClassMetadata.php
deleted file mode 100644
index 167386e..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/LazyLoadableObjectClassMetadata.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use ReflectionClass;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-
-/**
- * Class metadata test asset for @see LazyLoadableObject
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- * @since  2.4
- */
-class LazyLoadableObjectClassMetadata implements ClassMetadata
-{
-    /**
-     * @var ReflectionClass
-     */
-    protected $reflectionClass;
-
-    /**
-     * @var array
-     */
-    protected $identifier = array(
-        'publicIdentifierField'    => true,
-        'protectedIdentifierField' => true,
-    );
-
-    /**
-     * @var array
-     */
-    protected $fields = array(
-        'publicIdentifierField'    => true,
-        'protectedIdentifierField' => true,
-        'publicPersistentField'    => true,
-        'protectedPersistentField' => true,
-    );
-
-    /**
-     * @var array
-     */
-    protected $associations = array(
-        'publicAssociation'        => true,
-        'protectedAssociation'     => true,
-    );
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return $this->getReflectionClass()->getName();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getIdentifier()
-    {
-        return array_keys($this->identifier);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getReflectionClass()
-    {
-        if (null === $this->reflectionClass) {
-            $this->reflectionClass = new \ReflectionClass(__NAMESPACE__ . '\LazyLoadableObject');
-        }
-
-        return $this->reflectionClass;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isIdentifier($fieldName)
-    {
-        return isset($this->identifier[$fieldName]);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasField($fieldName)
-    {
-        return isset($this->fields[$fieldName]);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasAssociation($fieldName)
-    {
-        return isset($this->associations[$fieldName]);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isSingleValuedAssociation($fieldName)
-    {
-        throw new \BadMethodCallException('not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isCollectionValuedAssociation($fieldName)
-    {
-        throw new \BadMethodCallException('not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getFieldNames()
-    {
-        return array_keys($this->fields);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getIdentifierFieldNames()
-    {
-        return $this->getIdentifier();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAssociationNames()
-    {
-        return array_keys($this->associations);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getTypeOfField($fieldName)
-    {
-        return 'string';
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAssociationTargetClass($assocName)
-    {
-        throw new \BadMethodCallException('not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function isAssociationInverseSide($assocName)
-    {
-        throw new \BadMethodCallException('not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getAssociationMappedByTargetField($assocName)
-    {
-        throw new \BadMethodCallException('not implemented');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getIdentifierValues($object)
-    {
-        throw new \BadMethodCallException('not implemented');
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicCloneClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicCloneClass.php
deleted file mode 100644
index 33b983d..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicCloneClass.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class MagicCloneClass
-{
-    /**
-     * @var string
-     */
-    public $id = 'id';
-
-    /**
-     * @var string
-     */
-    public $publicField = 'publicField';
-
-    /**
-     * @var boolean
-     */
-    public $cloned = false;
-
-    /**
-     * @var string
-     */
-    public $clonedValue = 'defaultValue';
-
-    /**
-     * @return void
-     */
-    public function __clone()
-    {
-        $this->clonedValue = 'newClonedValue';
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicGetByRefClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicGetByRefClass.php
deleted file mode 100644
index 6adf1f5..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicGetByRefClass.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use InvalidArgumentException;
-
-/**
- * Test asset class
- *
- * @since 2.4
- */
-class MagicGetByRefClass
-{
-    /**
-     * @var mixed
-     */
-    public $valueField;
-
-    /**
-     * @param string $name
-     *
-     * @return mixed
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function & __get($name)
-    {
-        if ($name === 'value') {
-            return $this->valueField;
-        }
-
-        throw new InvalidArgumentException();
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicGetClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicGetClass.php
deleted file mode 100644
index 0cab36a..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicGetClass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class MagicGetClass
-{
-    /**
-     * @var string
-     */
-    public $id = 'id';
-
-    /**
-     * @var string
-     */
-    public $publicField = 'publicField';
-
-    /**
-     * @param $name
-     *
-     * @return string
-     * @throws \BadMethodCallException
-     */
-    public function __get($name)
-    {
-        if ($name === 'test') {
-            return 'test';
-        }
-
-        if ($name === 'publicField' || $name === 'id') {
-            throw new \BadMethodCallException('Should never be called for "publicField" or "id"');
-        }
-
-        return 'not defined';
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicIssetClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicIssetClass.php
deleted file mode 100644
index cda8e21..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicIssetClass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class MagicIssetClass
-{
-    /**
-     * @var string
-     */
-    public $id = 'id';
-
-    /**
-     * @var string
-     */
-    public $publicField = 'publicField';
-
-    /**
-     * @param string $name
-     *
-     * @return bool
-     * @throws \BadMethodCallException
-     */
-    public function __isset($name)
-    {
-        if ('test' === $name) {
-            return true;
-        }
-
-        if ('publicField' === $name || 'id' === $name) {
-            throw new \BadMethodCallException('Should never be called for "publicField" or "id"');
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicSetClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicSetClass.php
deleted file mode 100644
index fe73bc2..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicSetClass.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class MagicSetClass
-{
-    /**
-     * @var string
-     */
-    public $id = 'id';
-
-    /**
-     * @var string
-     */
-    public $publicField = 'publicField';
-
-    /**
-     * @var string|null
-     */
-    public $testAttribute;
-
-    /**
-     * @param string $name
-     * @param mixed  $value
-     *
-     * @throws \BadMethodCallException
-     */
-    public function __set($name, $value)
-    {
-        if ($name === 'test') {
-            $this->testAttribute = $value;
-        }
-
-        if ($name === 'publicField' || $name === 'id') {
-            throw new \BadMethodCallException('Should never be called for "publicField" or "id"');
-        }
-
-        $this->testAttribute = $value;
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicSleepClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicSleepClass.php
deleted file mode 100644
index 3934a05..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicSleepClass.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class MagicSleepClass
-{
-    /**
-     * @var string
-     */
-    public $id = 'id';
-
-    /**
-     * @var string
-     */
-    public $publicField = 'publicField';
-
-    /**
-     * @var string
-     */
-    public $serializedField = 'defaultValue';
-
-    /**
-     * @var string
-     */
-    public $nonSerializedField = 'defaultValue';
-
-    /**
-     * @return array
-     */
-    public function __sleep()
-    {
-        return array('serializedField');
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicWakeupClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicWakeupClass.php
deleted file mode 100644
index 3f4d1ac..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/MagicWakeupClass.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class MagicWakeupClass
-{
-    /**
-     * @var string
-     */
-    public $id = 'id';
-
-    /**
-     * @var string
-     */
-    public $publicField = 'publicField';
-
-    /**
-     * @var string
-     */
-    public $wakeupValue = 'defaultValue';
-
-    /**
-     * @return void
-     */
-    public function __wakeup()
-    {
-        $this->wakeupValue = 'newWakeupValue';
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php
deleted file mode 100644
index 45d45e5..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use Doctrine\Common\Proxy\ProxyGenerator;
-use ReflectionClass;
-use ReflectionMethod;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Test the proxy generator. Its work is generating on-the-fly subclasses of a given model, which implement the Proxy
- * pattern.
- *
- * @author Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class ProxyClassGeneratorTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var string
-     */
-    protected $proxyClass = 'Doctrine\Tests\Common\ProxyProxy\__CG__\Doctrine\Tests\Common\Proxy\LazyLoadableObject';
-
-    /**
-     * @var LazyLoadableObjectClassMetadata
-     */
-    protected $metadata;
-
-    /**
-     * @var ProxyGenerator
-     */
-    protected $proxyGenerator;
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function setUp()
-    {
-        $this->metadata       = new LazyLoadableObjectClassMetadata();
-        $this->proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-
-        if (class_exists($this->proxyClass, false)) {
-            return;
-        }
-
-        $this->generateAndRequire($this->proxyGenerator, $this->metadata);
-    }
-
-    public function testReferenceProxyRespectsMethodsParametersTypeHinting()
-    {
-        $method = new ReflectionMethod($this->proxyClass, 'publicTypeHintedMethod');
-        $params = $method->getParameters();
-
-        $this->assertEquals(1, count($params));
-        $this->assertEquals('stdClass', $params[0]->getClass()->getName());
-    }
-
-    public function testProxyRespectsMethodsWhichReturnValuesByReference()
-    {
-        $method = new ReflectionMethod($this->proxyClass, 'byRefMethod');
-
-        $this->assertTrue($method->returnsReference());
-    }
-
-    public function testProxyRespectsByRefMethodParameters()
-    {
-        $method = new ReflectionMethod($this->proxyClass, 'byRefParamMethod');
-        $parameters = $method->getParameters();
-        $this->assertSame('thisIsNotByRef', $parameters[0]->getName());
-        $this->assertFalse($parameters[0]->isPassedByReference());
-        $this->assertSame('thisIsByRef', $parameters[1]->getName());
-        $this->assertTrue($parameters[1]->isPassedByReference());
-    }
-
-    public function testCreatesAssociationProxyAsSubclassOfTheOriginalOne()
-    {
-        $this->assertTrue(is_subclass_of($this->proxyClass, $this->metadata->getName()));
-    }
-
-    public function testNonNamespacedProxyGeneration()
-    {
-        $classCode = file_get_contents($this->proxyGenerator->getProxyFileName($this->metadata->getName()));
-
-        $this->assertNotContains("class LazyLoadableObject extends \\\\" . $this->metadata->getName(), $classCode);
-        $this->assertContains("class LazyLoadableObject extends \\" . $this->metadata->getName(), $classCode);
-    }
-
-    public function testClassWithSleepProxyGeneration()
-    {
-        if (!class_exists('Doctrine\Tests\Common\ProxyProxy\__CG__\SleepClass', false)) {
-            $className = 'Doctrine\Tests\Common\Proxy\SleepClass';
-            $metadata = $this->createClassMetadata($className, array('id'));
-            $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-
-            $this->generateAndRequire($proxyGenerator, $metadata);
-        }
-
-        $classCode = file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxySleepClass.php');
-        $this->assertEquals(1, substr_count($classCode, 'function __sleep'));
-        $this->assertEquals(1, substr_count($classCode, 'parent::__sleep()'));
-    }
-
-    /**
-     * Check that the proxy doesn't serialize static properties (in __sleep() method)
-     * @group DCOM-212
-     */
-    public function testClassWithStaticPropertyProxyGeneration()
-    {
-        if (!class_exists('Doctrine\Tests\Common\ProxyProxy\__CG__\StaticPropertyClass', false)) {
-            $className = 'Doctrine\Tests\Common\Proxy\StaticPropertyClass';
-            $metadata = $this->createClassMetadata($className, array());
-            $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-
-            $this->generateAndRequire($proxyGenerator, $metadata);
-        }
-
-        $classCode = file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyStaticPropertyClass.php');
-        $this->assertEquals(1, substr_count($classCode, 'function __sleep'));
-        $this->assertNotContains('protectedStaticProperty', $classCode);
-    }
-
-    private function generateAndRequire($proxyGenerator, $metadata)
-    {
-        $proxyGenerator->generateProxyClass($metadata, $proxyGenerator->getProxyFileName($metadata->getName()));
-
-        require_once $proxyGenerator->getProxyFileName($metadata->getName());
-    }
-
-    public function testClassWithCallableTypeHintOnProxiedMethod()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('`callable` is only supported in PHP >=5.4.0');
-        }
-
-        if (!class_exists('Doctrine\Tests\Common\ProxyProxy\__CG__\CallableTypeHintClass', false)) {
-            $className = 'Doctrine\Tests\Common\Proxy\CallableTypeHintClass';
-            $metadata = $this->createClassMetadata($className, array('id'));
-
-            $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-            $this->generateAndRequire($proxyGenerator, $metadata);
-        }
-
-        $classCode = file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyCallableTypeHintClass.php');
-
-        $this->assertEquals(1, substr_count($classCode, 'call(callable $foo)'));
-    }
-
-    public function testClassWithInvalidTypeHintOnProxiedMethod()
-    {
-        $className = 'Doctrine\Tests\Common\Proxy\InvalidTypeHintClass';
-        $metadata = $this->createClassMetadata($className, array('id'));
-        $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-
-        $this->setExpectedException(
-            'Doctrine\Common\Proxy\Exception\UnexpectedValueException',
-            'The type hint of parameter "foo" in method "invalidTypeHintMethod"'
-                .' in class "' . $className . '" is invalid.'
-        );
-        $proxyGenerator->generateProxyClass($metadata);
-    }
-
-    public function testNoConfigDirThrowsException()
-    {
-        $this->setExpectedException('Doctrine\Common\Proxy\Exception\InvalidArgumentException');
-        new ProxyGenerator(null, null);
-    }
-
-    public function testNoNamespaceThrowsException()
-    {
-        $this->setExpectedException('Doctrine\Common\Proxy\Exception\InvalidArgumentException');
-        new ProxyGenerator(__DIR__ . '/generated', null);
-    }
-
-    public function testInvalidPlaceholderThrowsException()
-    {
-        $this->setExpectedException('Doctrine\Common\Proxy\Exception\InvalidArgumentException');
-        $generator = new ProxyGenerator(__DIR__ . '/generated', 'SomeNamespace');
-        $generator->setPlaceholder('<somePlaceholder>', array());
-    }
-
-    public function testUseEvalIfNoFilenameIsGiven()
-    {
-        $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-
-        $className = __NAMESPACE__ . '\\EvalBase';
-
-        $metadata = $this->createClassMetadata($className, array('id'));
-
-        $proxyGenerator->generateProxyClass($metadata);
-
-        $reflClass = new ReflectionClass('Doctrine\Tests\Common\ProxyProxy\__CG__\Doctrine\Tests\Common\Proxy\EvalBase');
-
-        $this->assertContains("eval()'d code", $reflClass->getFileName());
-    }
-
-    private function createClassMetadata($className, array $ids)
-    {
-        $metadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata');
-        $reflClass = new ReflectionClass($className);
-        $metadata->expects($this->any())->method('getReflectionClass')->will($this->returnValue($reflClass));
-        $metadata->expects($this->any())->method('getIdentifierFieldNames')->will($this->returnValue($ids));
-        $metadata->expects($this->any())->method('getName')->will($this->returnValue($className));
-
-        return $metadata;
-    }
-}
-
-class EvalBase
-{
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyLogicTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyLogicTest.php
deleted file mode 100644
index 9a5173c..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyLogicTest.php
+++ /dev/null
@@ -1,696 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use Doctrine\Common\Proxy\ProxyGenerator;
-use Doctrine\Common\Proxy\Proxy;
-use Doctrine\Common\Proxy\Exception\UnexpectedValueException;
-use Doctrine\Common\Persistence\Mapping\ClassMetadata;
-use PHPUnit_Framework_TestCase;
-
-/**
- * Test the generated proxies behavior. These tests make assumptions about the structure of LazyLoadableObject
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class ProxyLogicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $proxyLoader;
-
-    /**
-     * @var ClassMetadata
-     */
-    protected $lazyLoadableObjectMetadata;
-
-    /**
-     * @var LazyLoadableObject|Proxy
-     */
-    protected $lazyObject;
-
-    protected $identifier = array(
-        'publicIdentifierField' => 'publicIdentifierFieldValue',
-        'protectedIdentifierField' => 'protectedIdentifierFieldValue',
-    );
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|Callable
-     */
-    protected $initializerCallbackMock;
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setUp()
-    {
-        $this->proxyLoader = $loader      = $this->getMock('stdClass', array('load'), array(), '', false);
-        $this->initializerCallbackMock    = $this->getMock('stdClass', array('__invoke'));
-        $identifier                       = $this->identifier;
-        $this->lazyLoadableObjectMetadata = $metadata = new LazyLoadableObjectClassMetadata();
-
-        // emulating what should happen in a proxy factory
-        $cloner = function (LazyLoadableObject $proxy) use ($loader, $identifier, $metadata) {
-            /* @var $proxy LazyLoadableObject|Proxy */
-            if ($proxy->__isInitialized()) {
-                return;
-            }
-
-            $proxy->__setInitialized(true);
-            $proxy->__setInitializer(null);
-            $original = $loader->load($identifier);
-
-            if (null === $original) {
-                throw new UnexpectedValueException();
-            }
-
-            foreach ($metadata->getReflectionClass()->getProperties() as $reflProperty) {
-                $propertyName = $reflProperty->getName();
-
-                if ($metadata->hasField($propertyName) || $metadata->hasAssociation($propertyName)) {
-                    $reflProperty->setAccessible(true);
-                    $reflProperty->setValue($proxy, $reflProperty->getValue($original));
-                }
-            }
-        };
-
-        $proxyClassName = 'Doctrine\Tests\Common\ProxyProxy\__CG__\Doctrine\Tests\Common\Proxy\LazyLoadableObject';
-
-        // creating the proxy class
-        if (!class_exists($proxyClassName, false)) {
-            $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true);
-            $proxyGenerator->generateProxyClass($metadata);
-            require_once $proxyGenerator->getProxyFileName($metadata->getName());
-        }
-
-        $this->lazyObject = new $proxyClassName($this->getClosure($this->initializerCallbackMock), $cloner);
-
-        // setting identifiers in the proxy via reflection
-        foreach ($metadata->getIdentifierFieldNames() as $idField) {
-            $prop = $metadata->getReflectionClass()->getProperty($idField);
-            $prop->setAccessible(true);
-            $prop->setValue($this->lazyObject, $identifier[$idField]);
-        }
-
-        $this->assertFalse($this->lazyObject->__isInitialized());
-    }
-
-    public function testFetchingPublicIdentifierDoesNotCauseLazyLoading()
-    {
-        $this->configureInitializerMock(0);
-
-        $this->assertSame('publicIdentifierFieldValue', $this->lazyObject->publicIdentifierField);
-    }
-
-    public function testFetchingIdentifiersViaPublicGetterDoesNotCauseLazyLoading()
-    {
-        $this->configureInitializerMock(0);
-
-        $this->assertSame('protectedIdentifierFieldValue', $this->lazyObject->getProtectedIdentifierField());
-    }
-
-    public function testCallingMethodCausesLazyLoading()
-    {
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, 'testInitializationTriggeringMethod', array()),
-            function (Proxy $proxy) {
-                $proxy->__setInitializer(null);
-            }
-        );
-
-        $this->lazyObject->testInitializationTriggeringMethod();
-        $this->lazyObject->testInitializationTriggeringMethod();
-    }
-
-    public function testFetchingPublicFieldsCausesLazyLoading()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__get', array('publicPersistentField')),
-            function () use ($test) {
-                $test->setProxyValue('publicPersistentField', 'loadedValue');
-            }
-        );
-
-        $this->assertSame('loadedValue', $this->lazyObject->publicPersistentField);
-        $this->assertSame('loadedValue', $this->lazyObject->publicPersistentField);
-    }
-
-    public function testFetchingPublicAssociationCausesLazyLoading()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__get', array('publicAssociation')),
-            function () use ($test) {
-                $test->setProxyValue('publicAssociation', 'loadedAssociation');
-            }
-        );
-
-        $this->assertSame('loadedAssociation', $this->lazyObject->publicAssociation);
-        $this->assertSame('loadedAssociation', $this->lazyObject->publicAssociation);
-    }
-
-    public function testFetchingProtectedAssociationViaPublicGetterCausesLazyLoading()
-    {
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, 'getProtectedAssociation', array()),
-            function (Proxy $proxy) {
-                $proxy->__setInitializer(null);
-            }
-        );
-
-        $this->assertSame('protectedAssociationValue', $this->lazyObject->getProtectedAssociation());
-        $this->assertSame('protectedAssociationValue', $this->lazyObject->getProtectedAssociation());
-    }
-
-    public function testLazyLoadingTriggeredOnlyAtFirstPublicPropertyRead()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__get', array('publicPersistentField')),
-            function () use ($test) {
-                $test->setProxyValue('publicPersistentField', 'loadedValue');
-                $test->setProxyValue('publicAssociation', 'publicAssociationValue');
-            }
-        );
-
-        $this->assertSame('loadedValue', $this->lazyObject->publicPersistentField);
-        $this->assertSame('publicAssociationValue', $this->lazyObject->publicAssociation);
-    }
-
-    public function testNoticeWhenReadingNonExistentPublicProperties()
-    {
-        $this->configureInitializerMock(0);
-
-        $class = get_class($this->lazyObject);
-        $this->setExpectedException(
-            'PHPUnit_Framework_Error_Notice',
-            'Undefined property: ' . $class . '::$non_existing_property'
-        );
-
-        $this->lazyObject->non_existing_property;
-    }
-
-    public function testFalseWhenCheckingNonExistentProperty()
-    {
-        $this->configureInitializerMock(0);
-
-        $this->assertFalse(isset($this->lazyObject->non_existing_property));
-    }
-
-    public function testNoErrorWhenSettingNonExistentProperty()
-    {
-        $this->configureInitializerMock(0);
-
-        $this->lazyObject->non_existing_property = 'now has a value';
-        $this->assertSame('now has a value', $this->lazyObject->non_existing_property);
-    }
-
-    public function testCloningCallsClonerWithClonedObject()
-    {
-        $lazyObject = $this->lazyObject;
-        $test = $this;
-        $cb = $this->getMock('stdClass', array('cb'));
-        $cb
-            ->expects($this->once())
-            ->method('cb')
-            ->will($this->returnCallback(function (LazyLoadableObject $proxy) use ($lazyObject, $test) {
-                /* @var $proxy LazyLoadableObject|Proxy */
-                $test->assertNotSame($proxy, $lazyObject);
-                $proxy->__setInitializer(null);
-                $proxy->publicAssociation = 'clonedAssociation';
-            }));
-
-        $this->lazyObject->__setCloner($this->getClosure(array($cb, 'cb')));
-
-        $cloned = clone $this->lazyObject;
-        $this->assertSame('clonedAssociation', $cloned->publicAssociation);
-        $this->assertNotSame($cloned, $lazyObject, 'a clone of the lazy object is retrieved');
-    }
-
-    public function testFetchingTransientPropertiesWillNotTriggerLazyLoading()
-    {
-        $this->configureInitializerMock(0);
-
-        $this->assertSame(
-            'publicTransientFieldValue',
-            $this->lazyObject->publicTransientField,
-            'fetching public transient field won\'t trigger lazy loading'
-        );
-        $property = $this
-            ->lazyLoadableObjectMetadata
-            ->getReflectionClass()
-            ->getProperty('protectedTransientField');
-        $property->setAccessible(true);
-        $this->assertSame(
-            'protectedTransientFieldValue',
-            $property->getValue($this->lazyObject),
-            'fetching protected transient field via reflection won\'t trigger lazy loading'
-        );
-    }
-
-    /**
-     * Provided to guarantee backwards compatibility
-     */
-    public function testLoadProxyMethod()
-    {
-        $this->configureInitializerMock(2, array($this->lazyObject, '__load', array()));
-
-        $this->lazyObject->__load();
-        $this->lazyObject->__load();
-    }
-
-    public function testLoadingWithPersisterWillBeTriggeredOnlyOnce()
-    {
-        $this
-            ->proxyLoader
-            ->expects($this->once())
-            ->method('load')
-            ->with(
-                array(
-                    'publicIdentifierField' => 'publicIdentifierFieldValue',
-                    'protectedIdentifierField' => 'protectedIdentifierFieldValue',
-                ),
-                $this->lazyObject
-            )
-            ->will($this->returnCallback(function ($id, LazyLoadableObject $lazyObject) {
-                // setting a value to verify that the persister can actually set something in the object
-                $lazyObject->publicAssociation = $id['publicIdentifierField'] . '-test';
-                return true;
-            }));
-        $this->lazyObject->__setInitializer($this->getSuggestedInitializerImplementation());
-
-        $this->lazyObject->__load();
-        $this->lazyObject->__load();
-        $this->assertSame('publicIdentifierFieldValue-test', $this->lazyObject->publicAssociation);
-    }
-
-    public function testFailedLoadingWillThrowException()
-    {
-        $this->proxyLoader->expects($this->any())->method('load')->will($this->returnValue(null));
-        $this->setExpectedException('UnexpectedValueException');
-        $this->lazyObject->__setInitializer($this->getSuggestedInitializerImplementation());
-
-        $this->lazyObject->__load();
-    }
-
-    public function testCloningWithPersister()
-    {
-        $this->lazyObject->publicTransientField = 'should-not-change';
-        $this
-            ->proxyLoader
-            ->expects($this->exactly(2))
-            ->method('load')
-            ->with(array(
-                'publicIdentifierField'    => 'publicIdentifierFieldValue',
-                'protectedIdentifierField' => 'protectedIdentifierFieldValue',
-            ))
-            ->will($this->returnCallback(function () {
-                $blueprint = new LazyLoadableObject();
-                $blueprint->publicPersistentField = 'checked-persistent-field';
-                $blueprint->publicAssociation     = 'checked-association-field';
-                $blueprint->publicTransientField  = 'checked-transient-field';
-
-                return $blueprint;
-            }));
-
-        $firstClone = clone $this->lazyObject;
-        $this->assertSame(
-            'checked-persistent-field',
-            $firstClone->publicPersistentField,
-            'Persistent fields are cloned correctly'
-        );
-        $this->assertSame(
-            'checked-association-field',
-            $firstClone->publicAssociation,
-            'Associations are cloned correctly'
-        );
-        $this->assertSame(
-            'should-not-change',
-            $firstClone->publicTransientField,
-            'Transient fields are not overwritten'
-        );
-
-        $secondClone = clone $this->lazyObject;
-        $this->assertSame(
-            'checked-persistent-field',
-            $secondClone->publicPersistentField,
-            'Persistent fields are cloned correctly'
-        );
-        $this->assertSame(
-            'checked-association-field',
-            $secondClone->publicAssociation,
-            'Associations are cloned correctly'
-        );
-        $this->assertSame(
-            'should-not-change',
-            $secondClone->publicTransientField,
-            'Transient fields are not overwritten'
-        );
-
-        // those should not trigger lazy loading
-        $firstClone->__load();
-        $secondClone->__load();
-    }
-
-    public function testNotInitializedProxyUnserialization()
-    {
-        $this->configureInitializerMock();
-
-        $serialized = serialize($this->lazyObject);
-        /* @var $unserialized LazyLoadableObject|Proxy */
-        $unserialized = unserialize($serialized);
-        $reflClass = $this->lazyLoadableObjectMetadata->getReflectionClass();
-
-        $this->assertFalse($unserialized->__isInitialized(), 'serialization didn\'t cause intialization');
-
-        // Checking identifiers
-        $this->assertSame('publicIdentifierFieldValue', $unserialized->publicIdentifierField, 'identifiers are kept');
-        $protectedIdentifierField = $reflClass->getProperty('protectedIdentifierField');
-        $protectedIdentifierField->setAccessible(true);
-        $this->assertSame(
-            'protectedIdentifierFieldValue',
-            $protectedIdentifierField->getValue($unserialized),
-            'identifiers are kept'
-        );
-
-        // Checking transient fields
-        $this->assertSame(
-            'publicTransientFieldValue',
-            $unserialized->publicTransientField,
-            'transient fields are kept'
-        );
-        $protectedTransientField = $reflClass->getProperty('protectedTransientField');
-        $protectedTransientField->setAccessible(true);
-        $this->assertSame(
-            'protectedTransientFieldValue',
-            $protectedTransientField->getValue($unserialized),
-            'transient fields are kept'
-        );
-
-        // Checking persistent fields
-        $this->assertSame(
-            'publicPersistentFieldValue',
-            $unserialized->publicPersistentField,
-            'persistent fields are kept'
-        );
-        $protectedPersistentField = $reflClass->getProperty('protectedPersistentField');
-        $protectedPersistentField->setAccessible(true);
-        $this->assertSame(
-            'protectedPersistentFieldValue',
-            $protectedPersistentField->getValue($unserialized),
-            'persistent fields are kept'
-        );
-
-        // Checking associations
-        $this->assertSame('publicAssociationValue', $unserialized->publicAssociation, 'associations are kept');
-        $protectedAssociationField = $reflClass->getProperty('protectedAssociation');
-        $protectedAssociationField->setAccessible(true);
-        $this->assertSame(
-            'protectedAssociationValue',
-            $protectedAssociationField->getValue($unserialized),
-            'associations are kept'
-        );
-    }
-
-    public function testInitializedProxyUnserialization()
-    {
-        // persister will retrieve the lazy object itself, so that we don't have to re-define all field values
-        $this->proxyLoader->expects($this->once())->method('load')->will($this->returnValue($this->lazyObject));
-        $this->lazyObject->__setInitializer($this->getSuggestedInitializerImplementation());
-        $this->lazyObject->__load();
-
-        $serialized   = serialize($this->lazyObject);
-        $reflClass    = $this->lazyLoadableObjectMetadata->getReflectionClass();
-        /* @var $unserialized LazyLoadableObject|Proxy */
-        $unserialized = unserialize($serialized);
-
-        $this->assertTrue($unserialized->__isInitialized(), 'serialization didn\'t cause intialization');
-
-        // Checking transient fields
-        $this->assertSame(
-            'publicTransientFieldValue',
-            $unserialized->publicTransientField,
-            'transient fields are kept'
-        );
-        $protectedTransientField = $reflClass->getProperty('protectedTransientField');
-        $protectedTransientField->setAccessible(true);
-        $this->assertSame(
-            'protectedTransientFieldValue',
-            $protectedTransientField->getValue($unserialized),
-            'transient fields are kept'
-        );
-
-        // Checking persistent fields
-        $this->assertSame(
-            'publicPersistentFieldValue',
-            $unserialized->publicPersistentField,
-            'persistent fields are kept'
-        );
-        $protectedPersistentField = $reflClass->getProperty('protectedPersistentField');
-        $protectedPersistentField->setAccessible(true);
-        $this->assertSame(
-            'protectedPersistentFieldValue',
-            $protectedPersistentField->getValue($unserialized),
-            'persistent fields are kept'
-        );
-
-        // Checking identifiers
-        $this->assertSame(
-            'publicIdentifierFieldValue',
-            $unserialized->publicIdentifierField,
-            'identifiers are kept'
-        );
-        $protectedIdentifierField = $reflClass->getProperty('protectedIdentifierField');
-        $protectedIdentifierField->setAccessible(true);
-        $this->assertSame(
-            'protectedIdentifierFieldValue',
-            $protectedIdentifierField->getValue($unserialized),
-            'identifiers are kept'
-        );
-
-        // Checking associations
-        $this->assertSame('publicAssociationValue', $unserialized->publicAssociation, 'associations are kept');
-        $protectedAssociationField = $reflClass->getProperty('protectedAssociation');
-        $protectedAssociationField->setAccessible(true);
-        $this->assertSame(
-            'protectedAssociationValue',
-            $protectedAssociationField->getValue($unserialized),
-            'associations are kept'
-        );
-    }
-
-    public function testInitializationRestoresDefaultPublicLazyLoadedFieldValues()
-    {
-        // setting noop persister
-        $this->proxyLoader->expects($this->once())->method('load')->will($this->returnValue($this->lazyObject));
-        $this->lazyObject->__setInitializer($this->getSuggestedInitializerImplementation());
-
-        $this->assertSame(
-            'publicPersistentFieldValue',
-            $this->lazyObject->publicPersistentField,
-            'Persistent field is restored to default value'
-        );
-        $this->assertSame(
-            'publicAssociationValue',
-            $this->lazyObject->publicAssociation,
-            'Association is restored to default value'
-        );
-    }
-
-    public function testSettingPublicFieldsCausesLazyLoading()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__set', array('publicPersistentField', 'newPublicPersistentFieldValue')),
-            function () use ($test) {
-                $test->setProxyValue('publicPersistentField', 'overrideValue');
-                $test->setProxyValue('publicAssociation', 'newAssociationValue');
-            }
-        );
-
-        $this->lazyObject->publicPersistentField = 'newPublicPersistentFieldValue';
-        $this->assertSame('newPublicPersistentFieldValue', $this->lazyObject->publicPersistentField);
-        $this->assertSame('newAssociationValue', $this->lazyObject->publicAssociation);
-    }
-
-    public function testSettingPublicAssociationCausesLazyLoading()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__set', array('publicAssociation', 'newPublicAssociationValue')),
-            function () use ($test) {
-                $test->setProxyValue('publicPersistentField', 'newPublicPersistentFieldValue');
-                $test->setProxyValue('publicAssociation', 'overrideValue');
-            }
-        );
-
-        $this->lazyObject->publicAssociation = 'newPublicAssociationValue';
-        $this->assertSame('newPublicAssociationValue', $this->lazyObject->publicAssociation);
-        $this->assertSame('newPublicPersistentFieldValue', $this->lazyObject->publicPersistentField);
-    }
-
-    public function testCheckingPublicFieldsCausesLazyLoading()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__isset', array('publicPersistentField')),
-            function () use ($test) {
-                $test->setProxyValue('publicPersistentField', null);
-                $test->setProxyValue('publicAssociation', 'setPublicAssociation');
-            }
-        );
-
-        $this->assertFalse(isset($this->lazyObject->publicPersistentField));
-        $this->assertNull($this->lazyObject->publicPersistentField);
-        $this->assertTrue(isset($this->lazyObject->publicAssociation));
-        $this->assertSame('setPublicAssociation', $this->lazyObject->publicAssociation);
-    }
-
-    public function testCheckingPublicAssociationCausesLazyLoading()
-    {
-        $test = $this;
-        $this->configureInitializerMock(
-            1,
-            array($this->lazyObject, '__isset', array('publicAssociation')),
-            function () use ($test) {
-                $test->setProxyValue('publicPersistentField', 'newPersistentFieldValue');
-                $test->setProxyValue('publicAssociation', 'setPublicAssociation');
-            }
-        );
-
-        $this->assertTrue(isset($this->lazyObject->publicAssociation));
-        $this->assertSame('setPublicAssociation', $this->lazyObject->publicAssociation);
-        $this->assertTrue(isset($this->lazyObject->publicPersistentField));
-        $this->assertSame('newPersistentFieldValue', $this->lazyObject->publicPersistentField);
-    }
-
-    /**
-     * Converts a given callable into a closure
-     *
-     * @param  callable $callable
-     * @return \Closure
-     */
-    public function getClosure($callable) {
-        return function () use ($callable) {
-            call_user_func_array($callable, func_get_args());
-        };
-    }
-
-    /**
-     * Configures the current initializer callback mock with provided matcher params
-     *
-     * @param int $expectedCallCount the number of invocations to be expected. If a value< 0 is provided, `any` is used
-     * @param array $callParamsMatch an ordered array of parameters to be expected
-     * @param callable $callbackClosure a return callback closure
-     *
-     * @return \PHPUnit_Framework_MockObject_MockObject|
-     */
-    protected function configureInitializerMock(
-        $expectedCallCount = 0,
-        array $callParamsMatch = null,
-        \Closure $callbackClosure = null
-    ) {
-        if (!$expectedCallCount) {
-            $invocationCountMatcher = $this->exactly((int) $expectedCallCount);
-        } else {
-            $invocationCountMatcher = $expectedCallCount < 0 ? $this->any() : $this->exactly($expectedCallCount);
-        }
-
-        $invocationMocker = $this->initializerCallbackMock->expects($invocationCountMatcher)->method('__invoke');
-
-        if (null !== $callParamsMatch) {
-            call_user_func_array(array($invocationMocker, 'with'), $callParamsMatch);
-        }
-
-        if ($callbackClosure) {
-            $invocationMocker->will($this->returnCallback($callbackClosure));
-        }
-    }
-
-    /**
-     * Sets a value in the current proxy object without triggering lazy loading through `__set`
-     *
-     * @link https://bugs.php.net/bug.php?id=63463
-     *
-     * @param string $property
-     * @param mixed $value
-     */
-    public function setProxyValue($property, $value)
-    {
-        $reflectionProperty = new \ReflectionProperty($this->lazyObject, $property);
-        $initializer        = $this->lazyObject->__getInitializer();
-
-        // disabling initializer since setting `publicPersistentField` triggers `__set`/`__get`
-        $this->lazyObject->__setInitializer(null);
-        $reflectionProperty->setValue($this->lazyObject, $value);
-        $this->lazyObject->__setInitializer($initializer);
-    }
-
-    /**
-     * Retrieves the suggested implementation of an initializer that proxy factories in O*M
-     * are currently following, and that should be used to initialize the current proxy object
-     *
-     * @return \Closure
-     */
-    protected function getSuggestedInitializerImplementation()
-    {
-        $loader     = $this->proxyLoader;
-        $identifier = $this->identifier;
-
-        return function (LazyLoadableObject $proxy) use ($loader, $identifier) {
-            /* @var $proxy LazyLoadableObject|Proxy */
-            $proxy->__setInitializer(null);
-            $proxy->__setCloner(null);
-
-
-            if ($proxy->__isInitialized()) {
-                return;
-            }
-
-            $properties = $proxy->__getLazyProperties();
-
-            foreach ($properties as $propertyName => $property) {
-                if (!isset($proxy->$propertyName)) {
-                    $proxy->$propertyName = $properties[$propertyName];
-                }
-            }
-
-            $proxy->__setInitialized(true);
-
-            if (method_exists($proxy, '__wakeup')) {
-                $proxy->__wakeup();
-            }
-
-            if (null === $loader->load($identifier, $proxy)) {
-                throw new \UnexpectedValueException('Couldn\'t load');
-            }
-        };
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php
deleted file mode 100644
index 1ed9d92..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Tests\Common\Proxy;
-
-use Doctrine\Common\Proxy\ProxyGenerator;
-use Doctrine\Common\Proxy\Proxy;
-use Doctrine\Common\Proxy\Exception\UnexpectedValueException;
-use PHPUnit_Framework_TestCase;
-use ReflectionClass;
-
-/**
- * Test for behavior of proxies with inherited magic methods
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class ProxyMagicMethodsTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Doctrine\Common\Proxy\ProxyGenerator
-     */
-    protected $proxyGenerator;
-
-    /**
-     * @var LazyLoadableObject|Proxy
-     */
-    protected $lazyObject;
-
-    protected $identifier = array(
-        'publicIdentifierField' => 'publicIdentifierFieldValue',
-        'protectedIdentifierField' => 'protectedIdentifierFieldValue',
-    );
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|Callable
-     */
-    protected $initializerCallbackMock;
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setUp()
-    {
-        $this->proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . '\\MagicMethodProxy');
-    }
-
-    public static function tearDownAfterClass()
-    {
-
-    }
-
-    public function testInheritedMagicGet()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\MagicGetClass');
-        $proxy          = new $proxyClassName(
-            function (Proxy $proxy, $method, $params) use (&$counter) {
-                if ( ! in_array($params[0], array('publicField', 'test', 'notDefined'))) {
-                    throw new \InvalidArgumentException('Unexpected access to field "' . $params[0] . '"');
-                }
-
-                $initializer = $proxy->__getInitializer();
-
-                $proxy->__setInitializer(null);
-
-                $proxy->publicField = 'modifiedPublicField';
-                $counter            += 1;
-
-                $proxy->__setInitializer($initializer);
-
-            }
-        );
-
-        $this->assertSame('id', $proxy->id);
-        $this->assertSame('modifiedPublicField', $proxy->publicField);
-        $this->assertSame('test', $proxy->test);
-        $this->assertSame('not defined', $proxy->notDefined);
-
-        $this->assertSame(3, $counter);
-    }
-
-    /**
-     * @group DCOM-194
-     */
-    public function testInheritedMagicGetByRef()
-    {
-        $proxyClassName    = $this->generateProxyClass(__NAMESPACE__ . '\\MagicGetByRefClass');
-        /* @var $proxy \Doctrine\Tests\Common\Proxy\MagicGetByRefClass */
-        $proxy             = new $proxyClassName();
-        $proxy->valueField = 123;
-        $value             = & $proxy->__get('value');
-
-        $this->assertSame(123, $value);
-
-        $value = 456;
-
-        $this->assertSame(456, $proxy->__get('value'), 'Value was fetched by reference');
-
-        $this->setExpectedException('InvalidArgumentException');
-
-        $undefined = $proxy->nonExisting;
-    }
-
-    public function testInheritedMagicSet()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\MagicSetClass');
-        $proxy          = new $proxyClassName(
-            function (Proxy  $proxy, $method, $params) use (&$counter) {
-                if ( ! in_array($params[0], array('publicField', 'test', 'notDefined'))) {
-                    throw new \InvalidArgumentException('Unexpected access to field "' . $params[0] . '"');
-                }
-
-                $counter += 1;
-            }
-        );
-
-        $this->assertSame('id', $proxy->id);
-
-        $proxy->publicField = 'publicFieldValue';
-
-        $this->assertSame('publicFieldValue', $proxy->publicField);
-
-        $proxy->test = 'testValue';
-
-        $this->assertSame('testValue', $proxy->testAttribute);
-
-        $proxy->notDefined = 'not defined';
-
-        $this->assertSame('not defined', $proxy->testAttribute);
-        $this->assertSame(3, $counter);
-    }
-
-    public function testInheritedMagicSleep()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\MagicSleepClass');
-        $proxy          = new $proxyClassName();
-
-        $this->assertSame('defaultValue', $proxy->serializedField);
-        $this->assertSame('defaultValue', $proxy->nonSerializedField);
-
-        $proxy->serializedField    = 'changedValue';
-        $proxy->nonSerializedField = 'changedValue';
-
-        $unserialized = unserialize(serialize($proxy));
-
-        $this->assertSame('changedValue', $unserialized->serializedField);
-        $this->assertSame('defaultValue', $unserialized->nonSerializedField, 'Field was not returned by "__sleep"');
-    }
-
-    public function testInheritedMagicWakeup()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\MagicWakeupClass');
-        $proxy          = new $proxyClassName();
-
-        $this->assertSame('defaultValue', $proxy->wakeupValue);
-
-        $proxy->wakeupValue = 'changedValue';
-        $unserialized       = unserialize(serialize($proxy));
-
-        $this->assertSame('newWakeupValue', $unserialized->wakeupValue, '"__wakeup" was called');
-
-        $unserialized->__setInitializer(function (Proxy $proxy) {
-            $proxy->__setInitializer(null);
-
-            $proxy->publicField = 'newPublicFieldValue';
-        });
-
-        $this->assertSame('newPublicFieldValue', $unserialized->publicField, 'Proxy can still be initialized');
-    }
-
-    public function testInheritedMagicIsset()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\MagicIssetClass');
-        $proxy          = new $proxyClassName(function (Proxy $proxy, $method, $params) use (&$counter) {
-            if (in_array($params[0], array('publicField', 'test', 'nonExisting'))) {
-                $initializer = $proxy->__getInitializer();
-
-                $proxy->__setInitializer(null);
-
-                $proxy->publicField = 'modifiedPublicField';
-                $counter            += 1;
-
-                $proxy->__setInitializer($initializer);
-
-                return;
-            }
-
-            throw new \InvalidArgumentException(
-                sprintf('Should not be initialized when checking isset("%s")', $params[0])
-            );
-        });
-
-        $this->assertTrue(isset($proxy->id));
-        $this->assertTrue(isset($proxy->publicField));
-        $this->assertTrue(isset($proxy->test));
-        $this->assertFalse(isset($proxy->nonExisting));
-
-        $this->assertSame(3, $counter);
-    }
-
-    public function testInheritedMagicClone()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\MagicCloneClass');
-        $proxy          = new $proxyClassName(
-            null,
-            function ($proxy) {
-                $proxy->cloned = true;
-            }
-        );
-
-        $cloned = clone $proxy;
-
-        $this->assertSame('newClonedValue', $cloned->clonedValue);
-        $this->assertFalse($proxy->cloned);
-        $this->assertTrue($cloned->cloned);
-    }
-
-    /**
-     * @group DCOM-175
-     */
-    public function testClonesPrivateProperties()
-    {
-        $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\SerializedClass');
-        /* @var $proxy SerializedClass */
-        $proxy          = new $proxyClassName();
-
-        $proxy->setFoo(1);
-        $proxy->setBar(2);
-        $proxy->setBaz(3);
-
-        $unserialized = unserialize(serialize($proxy));
-
-        $this->assertSame(1, $unserialized->getFoo());
-        $this->assertSame(2, $unserialized->getBar());
-        $this->assertSame(3, $unserialized->getBaz());
-    }
-
-    /**
-     * @param $className
-     *
-     * @return string
-     */
-    private function generateProxyClass($className)
-    {
-        $proxyClassName = 'Doctrine\\Tests\\Common\\Proxy\\MagicMethodProxy\\__CG__\\' . $className;
-
-        if (class_exists($proxyClassName, false)) {
-            return $proxyClassName;
-        }
-
-        $metadata = $this->getMock('Doctrine\\Common\\Persistence\\Mapping\\ClassMetadata');
-
-        $metadata
-            ->expects($this->any())
-            ->method('getName')
-            ->will($this->returnValue($className));
-
-        $metadata
-            ->expects($this->any())
-            ->method('getIdentifier')
-            ->will($this->returnValue(array('id')));
-
-        $metadata
-            ->expects($this->any())
-            ->method('getReflectionClass')
-            ->will($this->returnValue(new ReflectionClass($className)));
-
-        $metadata
-            ->expects($this->any())
-            ->method('isIdentifier')
-            ->will($this->returnCallback(function ($fieldName) {
-                return 'id' === $fieldName;
-            }));
-
-        $metadata
-            ->expects($this->any())
-            ->method('hasField')
-            ->will($this->returnCallback(function ($fieldName) {
-                return in_array($fieldName, array('id', 'publicField'));
-            }));
-
-        $metadata
-            ->expects($this->any())
-            ->method('hasAssociation')
-            ->will($this->returnValue(false));
-
-        $metadata
-            ->expects($this->any())
-            ->method('getFieldNames')
-            ->will($this->returnValue(array('id', 'publicField')));
-
-        $metadata
-            ->expects($this->any())
-            ->method('getIdentifierFieldNames')
-            ->will($this->returnValue(array('id')));
-
-        $metadata
-            ->expects($this->any())
-            ->method('getAssociationNames')
-            ->will($this->returnValue(array()));
-
-        $metadata
-            ->expects($this->any())
-            ->method('getTypeOfField')
-            ->will($this->returnValue('string'));
-
-        $this->proxyGenerator->generateProxyClass($metadata, $this->proxyGenerator->getProxyFileName($className));
-        require_once $this->proxyGenerator->getProxyFileName($className);
-
-        return $proxyClassName;
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/SerializedClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/SerializedClass.php
deleted file mode 100644
index a36c3bb..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/SerializedClass.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class SerializedClass
-{
-    /**
-     * @var mixed
-     */
-    private $foo = 'foo';
-
-    /**
-     * @var mixed
-     */
-    protected $bar = 'bar';
-
-    /**
-     * @var mixed
-     */
-    public $baz = 'baz';
-
-    /**
-     * @param mixed $foo
-     */
-    public function setFoo($foo)
-    {
-        $this->foo = $foo;
-    }
-
-    /**
-     * @return mixed|string
-     */
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    /**
-     * @param $bar
-     */
-    public function setBar($bar)
-    {
-        $this->bar = $bar;
-    }
-
-    /**
-     * @return mixed|string
-     */
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    /**
-     * @param $baz
-     */
-    public function setBaz($baz)
-    {
-        $this->baz = $baz;
-    }
-
-    /**
-     * @return mixed|string
-     */
-    public function getBaz()
-    {
-        return $this->baz;
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/SleepClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/SleepClass.php
deleted file mode 100644
index 3c6ffcd..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/SleepClass.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class SleepClass
-{
-    public $id;
-
-    /**
-     * @return array
-     */
-    public function __sleep()
-    {
-        return array('id');
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/StaticPropertyClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/StaticPropertyClass.php
deleted file mode 100644
index ed4511b..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/StaticPropertyClass.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Proxy;
-
-/**
- * Test asset class
- */
-class StaticPropertyClass
-{
-    protected static $protectedStaticProperty;
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php
deleted file mode 100644
index 11b3fc8..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-class DeeperNamespaceParent extends Dummies\NoParent
-{
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/Dummies/NoParent.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/Dummies/NoParent.php
deleted file mode 100644
index f0e8dc9..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/Dummies/NoParent.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection\Dummies;
-
-class NoParent
-{
-    public $test;
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/ExampleAnnotationClass.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/ExampleAnnotationClass.php
deleted file mode 100644
index 45aee1c..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/ExampleAnnotationClass.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-use Doctrine\Common\Annotations\Annotation;
-
-/**
- * @Annotation(
- *   key = "value"
- * )
- */
-class ExampleAnnotationClass {
-
-} 
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/FullyClassifiedParent.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/FullyClassifiedParent.php
deleted file mode 100644
index 09a2641..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/FullyClassifiedParent.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-class FullyClassifiedParent extends \Doctrine\Tests\Common\Reflection\NoParent
-{
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/NoParent.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/NoParent.php
deleted file mode 100644
index f6a98cb..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/NoParent.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-class NoParent
-{
-    public $test;
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/RuntimePublicReflectionPropertyTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/RuntimePublicReflectionPropertyTest.php
deleted file mode 100644
index 779892f..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/RuntimePublicReflectionPropertyTest.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-use PHPUnit_Framework_TestCase;
-use Doctrine\Common\Reflection\RuntimePublicReflectionProperty;
-use Doctrine\Common\Proxy\Proxy;
-
-class RuntimePublicReflectionPropertyTest extends PHPUnit_Framework_TestCase
-{
-    public function testGetValueOnProxyPublicProperty()
-    {
-        $getCheckMock = $this->getMock('stdClass', array('callGet'));
-        $getCheckMock->expects($this->never())->method('callGet');
-        $initializer = function () use ($getCheckMock) {
-            call_user_func($getCheckMock);
-        };
-
-        $mockProxy = new RuntimePublicReflectionPropertyTestProxyMock();
-        $mockProxy->__setInitializer($initializer);
-
-        $reflProperty = new RuntimePublicReflectionProperty(
-            __NAMESPACE__ . '\RuntimePublicReflectionPropertyTestProxyMock',
-            'checkedProperty'
-        );
-
-        $this->assertSame('testValue', $reflProperty->getValue($mockProxy));
-        unset($mockProxy->checkedProperty);
-        $this->assertNull($reflProperty->getValue($mockProxy));
-    }
-
-    public function testSetValueOnProxyPublicProperty()
-    {
-        $setCheckMock = $this->getMock('stdClass', array('neverCallSet'));
-        $setCheckMock->expects($this->never())->method('neverCallSet');
-        $initializer = function () use ($setCheckMock) {
-            call_user_func(array($setCheckMock, 'neverCallSet'));
-        };
-
-        $mockProxy = new RuntimePublicReflectionPropertyTestProxyMock();
-        $mockProxy->__setInitializer($initializer);
-
-        $reflProperty = new RuntimePublicReflectionProperty(
-            __NAMESPACE__ . '\RuntimePublicReflectionPropertyTestProxyMock',
-            'checkedProperty'
-        );
-
-        $reflProperty->setValue($mockProxy, 'newValue');
-        $this->assertSame('newValue', $mockProxy->checkedProperty);
-
-        unset($mockProxy->checkedProperty);
-        $reflProperty->setValue($mockProxy, 'otherNewValue');
-        $this->assertSame('otherNewValue', $mockProxy->checkedProperty);
-
-        $setCheckMock = $this->getMock('stdClass', array('callSet'));
-        $setCheckMock->expects($this->once())->method('callSet');
-        $initializer = function () use ($setCheckMock) {
-            call_user_func(array($setCheckMock, 'callSet'));
-        };
-
-        $mockProxy->__setInitializer($initializer);
-        $mockProxy->__setInitialized(true);
-
-        unset($mockProxy->checkedProperty);
-        $reflProperty->setValue($mockProxy, 'againNewValue');
-        $this->assertSame('againNewValue', $mockProxy->checkedProperty);
-    }
-}
-
-/**
- * Mock that simulates proxy public property lazy loading
- */
-class RuntimePublicReflectionPropertyTestProxyMock implements Proxy
-{
-    /**
-     * @var \Closure|null
-     */
-    private $initializer     = null;
-
-    /**
-     * @var \Closure|null
-     */
-    private $initialized     = false;
-
-    /**
-     * @var string
-     */
-    public  $checkedProperty = 'testValue';
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __getInitializer()
-    {
-        return $this->initializer;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __setInitializer(\Closure $initializer = null)
-    {
-        $this->initializer = $initializer;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __getLazyProperties()
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __load()
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __isInitialized()
-    {
-        return $this->initialized;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __setInitialized($initialized)
-    {
-        $this->initialized = (bool) $initialized;
-    }
-
-    /**
-     * @param string $name
-     */
-    public function __get($name)
-    {
-        if ($this->initializer) {
-            $cb = $this->initializer;
-            $cb();
-        }
-
-        return $this->checkedProperty;
-    }
-
-    /**
-     * @param string $name
-     * @param mixed  $value
-     */
-    public function __set($name, $value)
-    {
-        if ($this->initializer) {
-            $cb = $this->initializer;
-            $cb();
-        }
-
-        // triggers notices if `$name` is used: see https://bugs.php.net/bug.php?id=63463
-        $this->checkedProperty = $value;
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return integer
-     */
-    public function __isset($name)
-    {
-        if ($this->initializer) {
-            $cb = $this->initializer;
-            $cb();
-        }
-
-        return isset($this->checkedProperty);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __setCloner(\Closure $cloner = null)
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function __getCloner()
-    {
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/SameNamespaceParent.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/SameNamespaceParent.php
deleted file mode 100644
index 844d4a5..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/SameNamespaceParent.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-class SameNamespaceParent extends NoParent
-{
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php
deleted file mode 100644
index fa0cbc3..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Reflection\StaticReflectionParser;
-use Doctrine\Common\Reflection\Psr0FindFile;
-
-class StaticReflectionParserTest extends DoctrineTestCase
-{
-    /**
-     * @dataProvider parentClassData
-     *
-     * @param bool $classAnnotationOptimize
-     * @param string $parsedClassName
-     * @param string $expectedClassName
-     *
-     * @return void
-     */
-    public function testParentClass($classAnnotationOptimize, $parsedClassName, $expectedClassName)
-    {
-        // If classed annotation optimization is enabled the properties tested
-        // below cannot be found.
-        if ($classAnnotationOptimize) {
-            $this->setExpectedException('ReflectionException');
-        }
-
-        $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1);
-        $paths = array(
-            'Doctrine\\Tests' => array($testsRoot),
-        );
-        $staticReflectionParser = new StaticReflectionParser($parsedClassName, new Psr0FindFile($paths), $classAnnotationOptimize);
-        $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName();
-        $this->assertEquals($expectedClassName, $declaringClassName);
-
-    }
-
-    /**
-     * @return array
-     */
-    public function parentClassData()
-    {
-        $data = array();
-        $noParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\NoParent';
-        $dummyParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\Dummies\\NoParent';
-        foreach (array(false, true) as $classAnnotationOptimize) {
-            $data[] = array(
-              $classAnnotationOptimize, $noParentClassName, $noParentClassName,
-            );
-            $data[] = array(
-              $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\FullyClassifiedParent', $noParentClassName,
-            );
-            $data[] = array(
-              $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\SameNamespaceParent', $noParentClassName,
-            );
-            $data[] = array(
-              $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\DeeperNamespaceParent', $dummyParentClassName,
-            );
-            $data[] = array(
-              $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\UseParent', $dummyParentClassName,
-            );
-        }
-        return $data;
-    }
-
-    /**
-     * @dataProvider classAnnotationOptimize
-     */
-    public function testClassAnnotationOptimizedParsing($classAnnotationOptimize) {
-        $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1);
-        $paths = array(
-          'Doctrine\\Tests' => array($testsRoot),
-        );
-        $staticReflectionParser = new StaticReflectionParser('Doctrine\\Tests\\Common\\Reflection\\ExampleAnnotationClass', new Psr0FindFile($paths), $classAnnotationOptimize);
-        $expectedDocComment = '/**
- * @Annotation(
- *   key = "value"
- * )
- */';
-        $this->assertEquals($expectedDocComment, $staticReflectionParser->getDocComment('class'));
-    }
-
-    /**
-     * @return array
-     */
-    public function classAnnotationOptimize()
-    {
-        return array(
-            array(false),
-            array(true)
-        );
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/UseParent.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/UseParent.php
deleted file mode 100644
index dd512d4..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/UseParent.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Reflection;
-
-use Doctrine\Tests\Common\Reflection\Dummies\NoParent as Test;
-
-class UseParent extends Test
-{
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/ClassUtilsTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/ClassUtilsTest.php
deleted file mode 100644
index a281450..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/ClassUtilsTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Util
-{
-    use Doctrine\Tests\DoctrineTestCase;
-    use Doctrine\Common\Util\ClassUtils;
-
-    class ClassUtilsTest extends DoctrineTestCase
-    {
-        static public function dataGetClass()
-        {
-            return array(
-                array('stdClass', 'stdClass'),
-                array('Doctrine\Common\Util\ClassUtils', 'Doctrine\Common\Util\ClassUtils'),
-                array( 'MyProject\Proxies\__CG__\stdClass', 'stdClass' ),
-                array( 'MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\stdClass', 'stdClass' ),
-                array( 'MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject','Doctrine\Tests\Common\Util\ChildObject' )
-            );
-        }
-
-        /**
-         * @dataProvider dataGetClass
-         */
-        public function testGetRealClass($className, $expectedClassName)
-        {
-            $this->assertEquals($expectedClassName, ClassUtils::getRealClass($className));
-        }
-
-        /**
-         * @dataProvider dataGetClass
-         */
-        public function testGetClass( $className, $expectedClassName )
-        {
-            $object = new $className();
-            $this->assertEquals($expectedClassName, ClassUtils::getClass($object));
-        }
-
-        public function testGetParentClass()
-        {
-            $parentClass = ClassUtils::getParentClass( 'MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject' );
-            $this->assertEquals('stdClass', $parentClass);
-        }
-
-        public function testGenerateProxyClassName()
-        {
-            $this->assertEquals( 'Proxies\__CG__\stdClass', ClassUtils::generateProxyClassName( 'stdClass', 'Proxies' ) );
-        }
-
-        /**
-         * @dataProvider dataGetClass
-         */
-        public function testNewReflectionClass( $className, $expectedClassName )
-        {
-            $reflClass = ClassUtils::newReflectionClass( $className );
-            $this->assertEquals( $expectedClassName, $reflClass->getName() );
-        }
-
-        /**
-         * @dataProvider dataGetClass
-         */
-        public function testNewReflectionObject( $className, $expectedClassName )
-        {
-            $object = new $className;
-            $reflClass = ClassUtils::newReflectionObject( $object );
-            $this->assertEquals( $expectedClassName, $reflClass->getName() );
-        }
-    }
-
-    class ChildObject extends \stdClass
-    {
-    }
-}
-
-namespace MyProject\Proxies\__CG__
-{
-    class stdClass extends \stdClass
-    {
-    }
-}
-
-namespace MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util
-{
-    class ChildObject extends \Doctrine\Tests\Common\Util\ChildObject
-    {
-    }
-}
-
-namespace MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__
-{
-    class stdClass extends \MyProject\Proxies\__CG__\stdClass
-    {
-    }
-}
-
-namespace MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\Util
-{
-    class ChildObject extends \MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject
-    {
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/DebugTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/DebugTest.php
deleted file mode 100644
index f6fc069..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/DebugTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Util;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Util\Debug;
-
-class DebugTest extends DoctrineTestCase
-{
-    public function testExportObject( )
-    {
-        $obj = new \stdClass;
-        $obj->foo = "bar";
-        $obj->bar = 1234;
-
-        $var = Debug::export($obj, 2);
-        $this->assertEquals( "stdClass", $var->__CLASS__ );
-    }
-
-    public function testExportDateTime()
-    {
-        $obj = new \DateTime( "2010-10-10 10:10:10" );
-
-        $var = Debug::export( $obj, 2 );
-        $this->assertEquals( "DateTime", $var->__CLASS__ );
-    }
-
-    public function testExportArrayTraversable()
-    {
-        $obj = new \ArrayObject(array('foobar'));
-
-        $var = Debug::export($obj, 2);
-        $this->assertContains('foobar', $var->__STORAGE__);
-
-        $it = new \ArrayIterator(array('foobar'));
-
-        $var = Debug::export($it, 5);
-        $this->assertContains('foobar', $var->__STORAGE__);
-    }
-}
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/DoctrineTestCase.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/DoctrineTestCase.php
deleted file mode 100644
index e8323d2..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/DoctrineTestCase.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests;
-
-/**
- * Base testcase class for all Doctrine testcases.
- */
-abstract class DoctrineTestCase extends \PHPUnit_Framework_TestCase
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/TestInit.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/TestInit.php
deleted file mode 100644
index 07d74e6..0000000
--- a/core/vendor/doctrine/common/tests/Doctrine/Tests/TestInit.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/*
- * This file bootstraps the test environment.
- */
-namespace Doctrine\Tests;
-
-error_reporting(E_ALL | E_STRICT);
-
-// register silently failing autoloader
-spl_autoload_register(function($class)
-{
-    if (0 === strpos($class, 'Doctrine\Tests\\')) {
-        $path = __DIR__.'/../../'.strtr($class, '\\', '/').'.php';
-        if (is_file($path) && is_readable($path)) {
-            require_once $path;
-
-            return true;
-        }
-    }
-});
-
-require_once __DIR__ . "/../../../vendor/autoload.php";
-
-\Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace(
-    'Doctrine\Tests\Common\Annotations\Fixtures', __DIR__ . '/../../'
-);
diff --git a/core/vendor/doctrine/common/tests/README.markdown b/core/vendor/doctrine/common/tests/README.markdown
deleted file mode 100644
index e6f1703..0000000
--- a/core/vendor/doctrine/common/tests/README.markdown
+++ /dev/null
@@ -1,27 +0,0 @@
-# Running the Doctrine 2 Testsuite
-
-## Running tests
-
-Execute PHPUnit in the root folder of your doctrine-common clone.
-
-    phpunit
-
-## Testing Lock-Support
-
-The Lock support in Doctrine 2 is tested using Gearman, which allows to run concurrent tasks in parallel.
-Install Gearman with PHP as follows:
-
-1. Go to http://www.gearman.org and download the latest Gearman Server
-2. Compile it and then call ldconfig
-3. Start it up "gearmand -vvvv"
-4. Install pecl/gearman by calling "gearman-beta"
-
-You can then go into tests/ and start up two workers:
-
-    php Doctrine/Tests/ORM/Functional/Locking/LockAgentWorker.php
-
-Then run the locking test-suite:
-
-    phpunit --configuration <myconfig.xml> Doctrine/Tests/ORM/Functional/Locking/GearmanLockTest.php
-
-This can run considerable time, because it is using sleep() to test for the timing ranges of locks.
\ No newline at end of file
diff --git a/core/vendor/doctrine/inflector/README.md b/core/vendor/doctrine/inflector/README.md
deleted file mode 100644
index f2d18d0..0000000
--- a/core/vendor/doctrine/inflector/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Doctrine Inflector
-
-Doctrine Inflector is a small library that can perform string manipulations
-with regard to upper-/lowercase and singular/plural forms of words.
diff --git a/core/vendor/doctrine/inflector/composer.json b/core/vendor/doctrine/inflector/composer.json
deleted file mode 100644
index 3d3c3f9..0000000
--- a/core/vendor/doctrine/inflector/composer.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "name": "doctrine/inflector",
-    "type": "library",
-    "description": "Common String Manipulations with regard to casing and singular/plural rules.",
-    "keywords": ["string", "inflection", "singuarlize", "pluarlize"],
-    "homepage": "http://www.doctrine-project.org",
-    "license": "MIT",
-    "authors": [
-        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
-        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
-        {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
-        {"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
-        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.3.2"
-    },
-    "autoload": {
-        "psr-0": { "Doctrine\\Common\\Inflector\\": "lib/" }
-    }
-}
diff --git a/core/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php b/core/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php
deleted file mode 100644
index f4e38e7..0000000
--- a/core/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php
+++ /dev/null
@@ -1,385 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Inflector;
-
-/**
- * Doctrine inflector has static methods for inflecting text
- *
- * The methods in these classes are from several different sources collected
- * across several different php projects and several different authors. The
- * original author names and emails are not known.
- *
- * Plurialize & Singularize implementation are borrowed from CakePHP with some modifications.
- *
- * @link        www.doctrine-project.org
- * @since       1.0
- * @author      Konsta Vesterinen <kvesteri@cc.hut.fi>
- * @author      Jonathan H. Wage <jonwage@gmail.com>
- */
-class Inflector
-{
-    /**
-     * Plural inflector rules
-     *
-     * @var array
-     */
-    private static $plural = array(
-        'rules' => array(
-            '/(s)tatus$/i' => '\1\2tatuses',
-            '/(quiz)$/i' => '\1zes',
-            '/^(ox)$/i' => '\1\2en',
-            '/([m|l])ouse$/i' => '\1ice',
-            '/(matr|vert|ind)(ix|ex)$/i' => '\1ices',
-            '/(x|ch|ss|sh)$/i' => '\1es',
-            '/([^aeiouy]|qu)y$/i' => '\1ies',
-            '/(hive)$/i' => '\1s',
-            '/(?:([^f])fe|([lr])f)$/i' => '\1\2ves',
-            '/sis$/i' => 'ses',
-            '/([ti])um$/i' => '\1a',
-            '/(p)erson$/i' => '\1eople',
-            '/(m)an$/i' => '\1en',
-            '/(c)hild$/i' => '\1hildren',
-            '/(buffal|tomat)o$/i' => '\1\2oes',
-            '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\1i',
-            '/us$/i' => 'uses',
-            '/(alias)$/i' => '\1es',
-            '/(ax|cris|test)is$/i' => '\1es',
-            '/s$/' => 's',
-            '/^$/' => '',
-            '/$/' => 's',
-        ),
-        'uninflected' => array(
-            '.*[nrlm]ese', '.*deer', '.*fish', '.*measles', '.*ois', '.*pox', '.*sheep', 'people', 'cookie'
-        ),
-        'irregular' => array(
-            'atlas' => 'atlases',
-            'beef' => 'beefs',
-            'brother' => 'brothers',
-            'cafe' => 'cafes',
-            'child' => 'children',
-            'cookie' => 'cookies',
-            'corpus' => 'corpuses',
-            'cow' => 'cows',
-            'ganglion' => 'ganglions',
-            'genie' => 'genies',
-            'genus' => 'genera',
-            'graffito' => 'graffiti',
-            'hoof' => 'hoofs',
-            'loaf' => 'loaves',
-            'man' => 'men',
-            'money' => 'monies',
-            'mongoose' => 'mongooses',
-            'move' => 'moves',
-            'mythos' => 'mythoi',
-            'niche' => 'niches',
-            'numen' => 'numina',
-            'occiput' => 'occiputs',
-            'octopus' => 'octopuses',
-            'opus' => 'opuses',
-            'ox' => 'oxen',
-            'penis' => 'penises',
-            'person' => 'people',
-            'sex' => 'sexes',
-            'soliloquy' => 'soliloquies',
-            'testis' => 'testes',
-            'trilby' => 'trilbys',
-            'turf' => 'turfs'
-        )
-    );
-
-    /**
-     * Singular inflector rules
-     *
-     * @var array
-     */
-    private static $singular = array(
-        'rules' => array(
-            '/(s)tatuses$/i' => '\1\2tatus',
-            '/^(.*)(menu)s$/i' => '\1\2',
-            '/(quiz)zes$/i' => '\\1',
-            '/(matr)ices$/i' => '\1ix',
-            '/(vert|ind)ices$/i' => '\1ex',
-            '/^(ox)en/i' => '\1',
-            '/(alias)(es)*$/i' => '\1',
-            '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\1us',
-            '/([ftw]ax)es/i' => '\1',
-            '/(cris|ax|test)es$/i' => '\1is',
-            '/(shoe|slave)s$/i' => '\1',
-            '/(o)es$/i' => '\1',
-            '/ouses$/' => 'ouse',
-            '/([^a])uses$/' => '\1us',
-            '/([m|l])ice$/i' => '\1ouse',
-            '/(x|ch|ss|sh)es$/i' => '\1',
-            '/(m)ovies$/i' => '\1\2ovie',
-            '/(s)eries$/i' => '\1\2eries',
-            '/([^aeiouy]|qu)ies$/i' => '\1y',
-            '/([lr])ves$/i' => '\1f',
-            '/(tive)s$/i' => '\1',
-            '/(hive)s$/i' => '\1',
-            '/(drive)s$/i' => '\1',
-            '/([^fo])ves$/i' => '\1fe',
-            '/(^analy)ses$/i' => '\1sis',
-            '/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\1\2sis',
-            '/([ti])a$/i' => '\1um',
-            '/(p)eople$/i' => '\1\2erson',
-            '/(m)en$/i' => '\1an',
-            '/(c)hildren$/i' => '\1\2hild',
-            '/(n)ews$/i' => '\1\2ews',
-            '/eaus$/' => 'eau',
-            '/^(.*us)$/' => '\\1',
-            '/s$/i' => ''
-        ),
-        'uninflected' => array(
-            '.*[nrlm]ese', '.*deer', '.*fish', '.*measles', '.*ois', '.*pox', '.*sheep', '.*ss'
-        ),
-        'irregular' => array(
-            'foes' => 'foe',
-            'waves' => 'wave',
-            'curves' => 'curve'
-        )
-    );
-
-    /**
-     * Words that should not be inflected
-     *
-     * @var array
-     */
-    private static $uninflected = array(
-        'Amoyese', 'bison', 'Borghese', 'bream', 'breeches', 'britches', 'buffalo', 'cantus',
-        'carp', 'chassis', 'clippers', 'cod', 'coitus', 'Congoese', 'contretemps', 'corps',
-        'debris', 'diabetes', 'djinn', 'eland', 'elk', 'equipment', 'Faroese', 'flounder',
-        'Foochowese', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'graffiti',
-        'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings',
-        'jackanapes', 'Kiplingese', 'Kongoese', 'Lucchese', 'mackerel', 'Maltese', '.*?media',
-        'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese',
-        'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'pliers', 'Portuguese',
-        'proceedings', 'rabies', 'rice', 'rhinoceros', 'salmon', 'Sarawakese', 'scissors',
-        'sea[- ]bass', 'series', 'Shavese', 'shears', 'siemens', 'species', 'swine', 'testes',
-        'trousers', 'trout', 'tuna', 'Vermontese', 'Wenchowese', 'whiting', 'wildebeest',
-        'Yengeese'
-    );
-
-    /**
-     * Method cache array.
-     *
-     * @var array
-     */
-    private static $cache = array();
-
-    /**
-     * The initial state of Inflector so reset() works.
-     *
-     * @var array
-     */
-    private static $initialState = array();
-
-    /**
-     * Convert word in to the format for a Doctrine table name. Converts 'ModelName' to 'model_name'
-     *
-     * @param  string $word  Word to tableize
-     * @return string $word  Tableized word
-     */
-    public static function tableize($word)
-    {
-        return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word));
-    }
-
-    /**
-     * Convert a word in to the format for a Doctrine class name. Converts 'table_name' to 'TableName'
-     *
-     * @param string  $word  Word to classify
-     * @return string $word  Classified word
-     */
-    public static function classify($word)
-    {
-        return str_replace(" ", "", ucwords(strtr($word, "_-", "  ")));
-    }
-
-    /**
-     * Camelize a word. This uses the classify() method and turns the first character to lowercase
-     *
-     * @param string $word
-     * @return string $word
-     */
-    public static function camelize($word)
-    {
-        return lcfirst(self::classify($word));
-    }
-
-    /**
-     * Clears Inflectors inflected value caches. And resets the inflection
-     * rules to the initial values.
-     *
-     * @return void
-     */
-    public static function reset()
-    {
-        if (empty(self::$initialState)) {
-            self::$initialState = get_class_vars('Inflector');
-            return;
-        }
-        foreach (self::$initialState as $key => $val) {
-            if ($key != 'initialState') {
-                self::${$key} = $val;
-            }
-        }
-    }
-
-    /**
-     * Adds custom inflection $rules, of either 'plural' or 'singular' $type.
-     *
-     * ### Usage:
-     *
-     * {{{
-     * Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables'));
-     * Inflector::rules('plural', array(
-     *     'rules' => array('/^(inflect)ors$/i' => '\1ables'),
-     *     'uninflected' => array('dontinflectme'),
-     *     'irregular' => array('red' => 'redlings')
-     * ));
-     * }}}
-     *
-     * @param string $type The type of inflection, either 'plural' or 'singular'
-     * @param array $rules Array of rules to be added.
-     * @param boolean $reset If true, will unset default inflections for all
-     *        new rules that are being defined in $rules.
-     * @return void
-     */
-    public static function rules($type, $rules, $reset = false)
-    {
-        foreach ($rules as $rule => $pattern) {
-            if (is_array($pattern)) {
-                if ($reset) {
-                    self::${$type}[$rule] = $pattern;
-                } else {
-                    if ($rule === 'uninflected') {
-                        self::${$type}[$rule] = array_merge($pattern, self::${$type}[$rule]);
-                    } else {
-                        self::${$type}[$rule] = $pattern + self::${$type}[$rule];
-                    }
-                }
-                unset($rules[$rule], self::${$type}['cache' . ucfirst($rule)]);
-                if (isset(self::${$type}['merged'][$rule])) {
-                    unset(self::${$type}['merged'][$rule]);
-                }
-                if ($type === 'plural') {
-                    self::$cache['pluralize'] = self::$cache['tableize'] = array();
-                } elseif ($type === 'singular') {
-                    self::$cache['singularize'] = array();
-                }
-            }
-        }
-        self::${$type}['rules'] = $rules + self::${$type}['rules'];
-    }
-
-    /**
-     * Return $word in plural form.
-     *
-     * @param string $word Word in singular
-     * @return string Word in plural
-     */
-    public static function pluralize($word)
-    {
-        if (isset(self::$cache['pluralize'][$word])) {
-            return self::$cache['pluralize'][$word];
-        }
-
-        if (!isset(self::$plural['merged']['irregular'])) {
-            self::$plural['merged']['irregular'] = self::$plural['irregular'];
-        }
-
-        if (!isset(self::$plural['merged']['uninflected'])) {
-            self::$plural['merged']['uninflected'] = array_merge(self::$plural['uninflected'], self::$uninflected);
-        }
-
-        if (!isset(self::$plural['cacheUninflected']) || !isset(self::$plural['cacheIrregular'])) {
-            self::$plural['cacheUninflected'] = '(?:' . implode('|', self::$plural['merged']['uninflected']) . ')';
-            self::$plural['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$plural['merged']['irregular'])) . ')';
-        }
-
-        if (preg_match('/(.*)\\b(' . self::$plural['cacheIrregular'] . ')$/i', $word, $regs)) {
-            self::$cache['pluralize'][$word] = $regs[1] . substr($word, 0, 1) . substr(self::$plural['merged']['irregular'][strtolower($regs[2])], 1);
-            return self::$cache['pluralize'][$word];
-        }
-
-        if (preg_match('/^(' . self::$plural['cacheUninflected'] . ')$/i', $word, $regs)) {
-            self::$cache['pluralize'][$word] = $word;
-            return $word;
-        }
-
-        foreach (self::$plural['rules'] as $rule => $replacement) {
-            if (preg_match($rule, $word)) {
-                self::$cache['pluralize'][$word] = preg_replace($rule, $replacement, $word);
-                return self::$cache['pluralize'][$word];
-            }
-        }
-    }
-
-    /**
-     * Return $word in singular form.
-     *
-     * @param string $word Word in plural
-     * @return string Word in singular
-     */
-    public static function singularize($word)
-    {
-        if (isset(self::$cache['singularize'][$word])) {
-            return self::$cache['singularize'][$word];
-        }
-
-        if (!isset(self::$singular['merged']['uninflected'])) {
-            self::$singular['merged']['uninflected'] = array_merge(
-                self::$singular['uninflected'],
-                self::$uninflected
-            );
-        }
-
-        if (!isset(self::$singular['merged']['irregular'])) {
-            self::$singular['merged']['irregular'] = array_merge(
-                self::$singular['irregular'],
-                array_flip(self::$plural['irregular'])
-            );
-        }
-
-        if (!isset(self::$singular['cacheUninflected']) || !isset(self::$singular['cacheIrregular'])) {
-            self::$singular['cacheUninflected'] = '(?:' . join('|', self::$singular['merged']['uninflected']) . ')';
-            self::$singular['cacheIrregular'] = '(?:' . join('|', array_keys(self::$singular['merged']['irregular'])) . ')';
-        }
-
-        if (preg_match('/(.*)\\b(' . self::$singular['cacheIrregular'] . ')$/i', $word, $regs)) {
-            self::$cache['singularize'][$word] = $regs[1] . substr($word, 0, 1) . substr(self::$singular['merged']['irregular'][strtolower($regs[2])], 1);
-            return self::$cache['singularize'][$word];
-        }
-
-        if (preg_match('/^(' . self::$singular['cacheUninflected'] . ')$/i', $word, $regs)) {
-            self::$cache['singularize'][$word] = $word;
-            return $word;
-        }
-
-        foreach (self::$singular['rules'] as $rule => $replacement) {
-            if (preg_match($rule, $word)) {
-                self::$cache['singularize'][$word] = preg_replace($rule, $replacement, $word);
-                return self::$cache['singularize'][$word];
-            }
-        }
-        self::$cache['singularize'][$word] = $word;
-        return $word;
-    }
-}
diff --git a/core/vendor/doctrine/inflector/phpunit.xml.dist b/core/vendor/doctrine/inflector/phpunit.xml.dist
deleted file mode 100644
index ef07faa..0000000
--- a/core/vendor/doctrine/inflector/phpunit.xml.dist
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="./tests/Doctrine/Tests/TestInit.php"
->
-    <testsuites>
-        <testsuite name="Doctrine Inflector Test Suite">
-            <directory>./tests/Doctrine/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./lib/Doctrine/</directory>
-        </whitelist>
-    </filter>
-    
-    <groups>
-        <exclude>
-            <group>performance</group>
-        </exclude>
-    </groups>
-</phpunit>
diff --git a/core/vendor/doctrine/inflector/tests/Doctrine/Tests/Common/Inflector/InflectorTest.php b/core/vendor/doctrine/inflector/tests/Doctrine/Tests/Common/Inflector/InflectorTest.php
deleted file mode 100644
index 487c2cd..0000000
--- a/core/vendor/doctrine/inflector/tests/Doctrine/Tests/Common/Inflector/InflectorTest.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-namespace Doctrine\Tests\Common\Inflector;
-
-use Doctrine\Tests\DoctrineTestCase;
-use Doctrine\Common\Inflector\Inflector;
-
-class InflectorTest extends DoctrineTestCase
-{
-
-    /**
-     * Singular & Plural test data. Returns an array of sample words.
-     *
-     * @return array
-     */ 
-    public function dataSampleWords() {
-        Inflector::reset();
-        // in the format array('singular', 'plural') 
-        return array(
-            array('categoria', 'categorias'),
-            array('house', 'houses'),
-            array('powerhouse', 'powerhouses'),
-            array('Bus', 'Buses'),
-            array('bus', 'buses'),
-            array('menu', 'menus'),
-            array('news', 'news'),
-            array('food_menu', 'food_menus'),
-            array('Menu', 'Menus'),
-            array('FoodMenu', 'FoodMenus'),
-            array('quiz', 'quizzes'),
-            array('matrix_row', 'matrix_rows'),
-            array('matrix', 'matrices'),
-            array('vertex', 'vertices'),
-            array('index', 'indices'),
-            array('Alias', 'Aliases'),
-            array('Media', 'Media'),
-            array('NodeMedia', 'NodeMedia'),
-            array('alumnus', 'alumni'),
-            array('bacillus', 'bacilli'),
-            array('cactus', 'cacti'),
-            array('focus', 'foci'),
-            array('fungus', 'fungi'),
-            array('nucleus', 'nuclei'),
-            array('octopus', 'octopuses'),
-            array('radius', 'radii'),
-            array('stimulus', 'stimuli'),
-            array('syllabus', 'syllabi'),
-            array('terminus', 'termini'),
-            array('virus', 'viri'),
-            array('person', 'people'),
-            array('glove', 'gloves'),
-            array('crisis', 'crises'),
-            array('tax', 'taxes'),
-            array('wave', 'waves'),
-            array('bureau', 'bureaus'),
-            array('cafe', 'cafes'),
-            array('roof', 'roofs'),
-            array('foe', 'foes'),
-            array('cookie', 'cookies'),
-            array('', ''),
-        );
-    }
-
-    /**
-     * testInflectingSingulars method
-     *
-     * @dataProvider dataSampleWords
-     * @return void
-     */
-    public function testInflectingSingulars($singular, $plural) {
-        $this->assertEquals($singular, Inflector::singularize($plural), "'$plural' should be singularized to '$singular'");
-    }
-
-    /**
-     * testInflectingPlurals method
-     *
-     * @dataProvider dataSampleWords
-     * @return void
-     */
-    public function testInflectingPlurals($singular, $plural) {
-        $this->assertEquals($plural, Inflector::pluralize($singular), "'$singular' should be pluralized to '$plural'");
-    }
-
-    /**
-     * testCustomPluralRule method
-     *
-     * @return void
-     */
-    public function testCustomPluralRule() {
-        Inflector::reset();
-        Inflector::rules('plural', array('/^(custom)$/i' => '\1izables'));
-        $this->assertEquals(Inflector::pluralize('custom'), 'customizables');
-
-        Inflector::rules('plural', array('uninflected' => array('uninflectable')));
-        $this->assertEquals(Inflector::pluralize('uninflectable'), 'uninflectable');
-
-        Inflector::rules('plural', array(
-            'rules' => array('/^(alert)$/i' => '\1ables'),
-            'uninflected' => array('noflect', 'abtuse'),
-            'irregular' => array('amaze' => 'amazable', 'phone' => 'phonezes')
-        ));
-        $this->assertEquals(Inflector::pluralize('noflect'), 'noflect');
-        $this->assertEquals(Inflector::pluralize('abtuse'), 'abtuse');
-        $this->assertEquals(Inflector::pluralize('alert'), 'alertables');
-        $this->assertEquals(Inflector::pluralize('amaze'), 'amazable');
-        $this->assertEquals(Inflector::pluralize('phone'), 'phonezes');
-    }
-
-    /**
-     * testCustomSingularRule method
-     *
-     * @return void
-     */
-    public function testCustomSingularRule() {
-        Inflector::reset();
-        Inflector::rules('singular', array('/(eple)r$/i' => '\1', '/(jente)r$/i' => '\1'));
-
-        $this->assertEquals(Inflector::singularize('epler'), 'eple');
-        $this->assertEquals(Inflector::singularize('jenter'), 'jente');
-
-        Inflector::rules('singular', array(
-            'rules' => array('/^(bil)er$/i' => '\1', '/^(inflec|contribu)tors$/i' => '\1ta'),
-            'uninflected' => array('singulars'),
-            'irregular' => array('spins' => 'spinor')
-        ));
-
-        $this->assertEquals(Inflector::singularize('inflectors'), 'inflecta');
-        $this->assertEquals(Inflector::singularize('contributors'), 'contributa');
-        $this->assertEquals(Inflector::singularize('spins'), 'spinor');
-        $this->assertEquals(Inflector::singularize('singulars'), 'singulars');
-    }
-
-    /**
-     * test that setting new rules clears the inflector caches.
-     *
-     * @return void
-     */
-    public function testRulesClearsCaches() {
-        Inflector::reset();
-        $this->assertEquals(Inflector::singularize('Bananas'), 'Banana');
-        $this->assertEquals(Inflector::pluralize('Banana'), 'Bananas');
-
-        Inflector::rules('singular', array(
-            'rules' => array('/(.*)nas$/i' => '\1zzz')
-        ));
-        $this->assertEquals('Banazzz', Inflector::singularize('Bananas'), 'Was inflected with old rules.');
-
-        Inflector::rules('plural', array(
-            'rules' => array('/(.*)na$/i' => '\1zzz'),
-            'irregular' => array('corpus' => 'corpora')
-        ));
-        $this->assertEquals(Inflector::pluralize('Banana'), 'Banazzz', 'Was inflected with old rules.');
-        $this->assertEquals(Inflector::pluralize('corpus'), 'corpora', 'Was inflected with old irregular form.');
-    }
-
-    /**
-     * Test resetting inflection rules.
-     *
-     * @return void
-     */
-    public function testCustomRuleWithReset() {
-        Inflector::reset();
-        $uninflected = array('atlas', 'lapis', 'onibus', 'pires', 'virus', '.*x');
-        $pluralIrregular = array('as' => 'ases');
-
-        Inflector::rules('singular', array(
-            'rules' => array('/^(.*)(a|e|o|u)is$/i' => '\1\2l'),
-            'uninflected' => $uninflected,
-        ), true);
-
-        Inflector::rules('plural', array(
-            'rules' => array(
-                '/^(.*)(a|e|o|u)l$/i' => '\1\2is',
-            ),
-            'uninflected' => $uninflected,
-            'irregular' => $pluralIrregular
-        ), true);
-
-        $this->assertEquals(Inflector::pluralize('Alcool'), 'Alcoois');
-        $this->assertEquals(Inflector::pluralize('Atlas'), 'Atlas');
-        $this->assertEquals(Inflector::singularize('Alcoois'), 'Alcool');
-        $this->assertEquals(Inflector::singularize('Atlas'), 'Atlas');
-    }
-}
-
diff --git a/core/vendor/doctrine/inflector/tests/Doctrine/Tests/DoctrineTestCase.php b/core/vendor/doctrine/inflector/tests/Doctrine/Tests/DoctrineTestCase.php
deleted file mode 100644
index e8323d2..0000000
--- a/core/vendor/doctrine/inflector/tests/Doctrine/Tests/DoctrineTestCase.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Doctrine\Tests;
-
-/**
- * Base testcase class for all Doctrine testcases.
- */
-abstract class DoctrineTestCase extends \PHPUnit_Framework_TestCase
-{
-}
\ No newline at end of file
diff --git a/core/vendor/doctrine/inflector/tests/Doctrine/Tests/TestInit.php b/core/vendor/doctrine/inflector/tests/Doctrine/Tests/TestInit.php
deleted file mode 100644
index ead2e30..0000000
--- a/core/vendor/doctrine/inflector/tests/Doctrine/Tests/TestInit.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/*
- * This file bootstraps the test environment.
- */
-namespace Doctrine\Tests;
-
-error_reporting(E_ALL | E_STRICT);
-
-// register silently failing autoloader
-spl_autoload_register(function($class)
-{
-    if (0 === strpos($class, 'Doctrine\Tests\\')) {
-        $path = __DIR__.'/../../'.strtr($class, '\\', '/').'.php';
-        if (is_file($path) && is_readable($path)) {
-            require_once $path;
-
-            return true;
-        }
-    } else if (0 === strpos($class, 'Doctrine\Common\\')) {
-        $path = __DIR__.'/../../../lib/'.($class = strtr($class, '\\', '/')).'.php';
-        if (is_file($path) && is_readable($path)) {
-            require_once $path;
-
-            return true;
-        }
-    }
-});
diff --git a/core/vendor/doctrine/instantiator/.gitignore b/core/vendor/doctrine/instantiator/.gitignore
deleted file mode 100644
index 9a63932..0000000
--- a/core/vendor/doctrine/instantiator/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-phpunit.xml
-composer.lock
-build
-vendor
-coverage.clover
\ No newline at end of file
diff --git a/core/vendor/doctrine/instantiator/.scrutinizer.yml b/core/vendor/doctrine/instantiator/.scrutinizer.yml
deleted file mode 100644
index aad5e40..0000000
--- a/core/vendor/doctrine/instantiator/.scrutinizer.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-before_commands:
-    - "composer install --prefer-source"
-
-tools:
-    external_code_coverage:
-        timeout: 600
-    php_code_coverage:
-        enabled: true
-        test_command: ./vendor/bin/phpunit
-    php_code_sniffer:
-        enabled: true
-        config:
-            standard: PSR2
-        filter:
-            paths: ["src/*", "tests/*"]
-    php_cpd:
-        enabled: true
-        excluded_dirs: ["build/*", "tests", "vendor"]
-    php_cs_fixer:
-        enabled: true
-        config:
-            level: all
-        filter:
-            paths: ["src/*", "tests/*"]
-    php_loc:
-        enabled: true
-        excluded_dirs: ["build", "tests", "vendor"]
-    php_mess_detector:
-        enabled: true
-        config:
-            ruleset: phpmd.xml.dist
-            design_rules: { eval_expression: false }
-        filter:
-            paths: ["src/*"]
-    php_pdepend:
-        enabled: true
-        excluded_dirs: ["build", "tests", "vendor"]
-    php_analyzer:
-        enabled: true
-        filter:
-            paths: ["src/*", "tests/*"]
-    php_hhvm:
-        enabled: true
-        filter:
-            paths: ["src/*", "tests/*"]
-    sensiolabs_security_checker: true
diff --git a/core/vendor/doctrine/instantiator/.travis.install.sh b/core/vendor/doctrine/instantiator/.travis.install.sh
deleted file mode 100755
index e4f1cb2..0000000
--- a/core/vendor/doctrine/instantiator/.travis.install.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-set -x
-if [ "$TRAVIS_PHP_VERSION" = 'hhvm' ] || [ "$TRAVIS_PHP_VERSION" = 'hhvm-nightly' ] ; then
-    curl -sS https://getcomposer.org/installer > composer-installer.php
-    hhvm composer-installer.php
-    hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 composer.phar update --prefer-source
-elif [ "$TRAVIS_PHP_VERSION" = '5.3.3' ] ; then
-    composer self-update
-    composer update --prefer-source --no-dev
-    composer dump-autoload
-else
-    composer self-update
-    composer update --prefer-source
-fi
diff --git a/core/vendor/doctrine/instantiator/.travis.yml b/core/vendor/doctrine/instantiator/.travis.yml
deleted file mode 100644
index 0f686a9..0000000
--- a/core/vendor/doctrine/instantiator/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-  - hhvm-nightly
-
-before_script:
-  - ./.travis.install.sh
-
-script:
-  - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' ]; then phpunit; fi"
-  - sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.3.3' ]; then ./vendor/bin/phpunit; fi"
-  - sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.3.3' ]; then ./vendor/bin/phpcs --standard=PSR2 ./src/ ./tests/; fi"
-  - sh -c "if [[ '$TRAVIS_PHP_VERSION' != '5.3.3' && '$TRAVIS_PHP_VERSION' != '5.4.29'  && '$TRAVIS_PHP_VERSION' != '5.5.13' ]]; then php -n ./vendor/bin/athletic -p ./tests/DoctrineTest/InstantiatorPerformance/ -f GroupedFormatter; fi"
-
-after_script:
-  - sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.3.3' ]; then wget https://scrutinizer-ci.com/ocular.phar; php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi"
-
-matrix:
-  allow_failures:
-    - php: hhvm-nightly
diff --git a/core/vendor/doctrine/instantiator/CONTRIBUTING.md b/core/vendor/doctrine/instantiator/CONTRIBUTING.md
deleted file mode 100644
index 75b84b2..0000000
--- a/core/vendor/doctrine/instantiator/CONTRIBUTING.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributing
-
- * Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
- * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
- * Any contribution must provide tests for additional introduced conditions
- * Any un-confirmed issue needs a failing test case before being accepted
- * Pull requests must be sent from a new hotfix/feature branch, not from `master`.
-
-## Installation
-
-To install the project and run the tests, you need to clone it first:
-
-```sh
-$ git clone git://github.com/doctrine/instantiator.git
-```
-
-You will then need to run a composer installation:
-
-```sh
-$ cd Instantiator
-$ curl -s https://getcomposer.org/installer | php
-$ php composer.phar update
-```
-
-## Testing
-
-The PHPUnit version to be used is the one installed as a dev- dependency via composer:
-
-```sh
-$ ./vendor/bin/phpunit
-```
-
-Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement 
-won't be merged.
-
diff --git a/core/vendor/doctrine/instantiator/LICENSE b/core/vendor/doctrine/instantiator/LICENSE
deleted file mode 100644
index 4d983d1..0000000
--- a/core/vendor/doctrine/instantiator/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Doctrine Project
-
-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/core/vendor/doctrine/instantiator/README.md b/core/vendor/doctrine/instantiator/README.md
deleted file mode 100644
index 393ec7c..0000000
--- a/core/vendor/doctrine/instantiator/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Instantiator
-
-This library provides a way of avoiding usage of constructors when instantiating PHP classes.
-
-[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator)
-[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master)
-[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master)
-[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator)
-[![HHVM Status](http://hhvm.h4cc.de/badge/doctrine/instantiator.png)](http://hhvm.h4cc.de/package/doctrine/instantiator)
-
-[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator)
-[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](https://packagist.org/packages/doctrine/instantiator)
-
-## Installation
-
-The suggested installation method is via [composer](https://getcomposer.org/):
-
-```sh
-php composer.phar require "doctrine/instantiator:~1.0.3"
-```
-
-## Usage
-
-The instantiator is able to create new instances of any class without using the constructor or any API of the class
-itself:
-
-```php
-$instantiator = new \Doctrine\Instantiator\Instantiator();
-
-$instance = $instantiator->instantiate('My\\ClassName\\Here');
-```
-
-## Contributing
-
-Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out!
-
-## Credits
-
-This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which
-has been donated to the doctrine organization, and which is now deprecated in favour of this package.
diff --git a/core/vendor/doctrine/instantiator/composer.json b/core/vendor/doctrine/instantiator/composer.json
deleted file mode 100644
index 89d59f6..0000000
--- a/core/vendor/doctrine/instantiator/composer.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-    "name":              "doctrine/instantiator",
-    "description":       "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-    "type":              "library",
-    "license":           "MIT",
-    "homepage":          "https://github.com/doctrine/instantiator",
-    "keywords":          [
-        "instantiate",
-        "constructor"
-    ],
-    "authors": [
-        {
-            "name":     "Marco Pivetta",
-            "email":    "ocramius@gmail.com",
-            "homepage": "http://ocramius.github.com/"
-        }
-    ],
-    "require": {
-        "php": ">=5.3,<8.0-DEV"
-    },
-    "require-dev": {
-        "ext-phar":                  "*",
-        "ext-pdo":                   "*",
-        "phpunit/phpunit":           "~4.0",
-        "squizlabs/php_codesniffer": "2.0.*@ALPHA",
-        "athletic/athletic":         "~0.1.8"
-    },
-    "autoload": {
-        "psr-0": {
-            "Doctrine\\Instantiator\\": "src"
-        }
-    },
-    "autoload-dev": {
-        "psr-0": {
-            "DoctrineTest\\InstantiatorPerformance\\": "tests",
-            "DoctrineTest\\InstantiatorTest\\": "tests",
-            "DoctrineTest\\InstantiatorTestAsset\\": "tests"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/phpmd.xml.dist b/core/vendor/doctrine/instantiator/phpmd.xml.dist
deleted file mode 100644
index 8254105..0000000
--- a/core/vendor/doctrine/instantiator/phpmd.xml.dist
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<ruleset
-    name="Instantiator rules"
-    xmlns="http://pmd.sf.net/ruleset/1.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
->
-    <rule ref="rulesets/cleancode.xml">
-        <!-- static access is used for caching purposes -->
-        <exclude name="StaticAccess"/>
-    </rule>
-    <rule ref="rulesets/codesize.xml"/>
-    <rule ref="rulesets/controversial.xml"/>
-    <rule ref="rulesets/design.xml"/>
-    <rule ref="rulesets/naming.xml"/>
-    <rule ref="rulesets/unusedcode.xml"/>
-    <rule
-        name="NPathComplexity"
-        message="The {0} {1}() has an NPath complexity of {2}. The configured NPath complexity threshold is {3}."
-        class="PHP_PMD_Rule_Design_NpathComplexity"
-    >
-        <properties>
-            <property name="minimum" description="The npath reporting threshold" value="10"/>
-        </properties>
-    </rule>
-</ruleset>
diff --git a/core/vendor/doctrine/instantiator/phpunit.xml.dist b/core/vendor/doctrine/instantiator/phpunit.xml.dist
deleted file mode 100644
index 178ba17..0000000
--- a/core/vendor/doctrine/instantiator/phpunit.xml.dist
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<phpunit
-    bootstrap="./vendor/autoload.php"
-    colors="true"
-    convertErrorsToExceptions="true"
-    convertNoticesToExceptions="true"
-    convertWarningsToExceptions="true"
-    verbose="true"
-    stopOnFailure="false"
-    processIsolation="false"
-    backupGlobals="false"
-    syntaxCheck="true"
->
-    <testsuite name="Doctrine\Instantiator tests">
-        <directory>./tests/DoctrineTest/InstantiatorTest</directory>
-    </testsuite>
-    <filter>
-        <whitelist addUncoveredFilesFromWhitelist="true">
-            <directory suffix=".php">./src</directory>
-        </whitelist>
-    </filter>
-    <logging>
-        <log type="coverage-clover" target="./coverage.clover"/>
-    </logging>
-</phpunit>
diff --git a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php
deleted file mode 100644
index 3065375..0000000
--- a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Instantiator\Exception;
-
-/**
- * Base exception marker interface for the instantiator component
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php b/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php
deleted file mode 100644
index ea8d28c..0000000
--- a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Instantiator\Exception;
-
-use InvalidArgumentException as BaseInvalidArgumentException;
-use ReflectionClass;
-
-/**
- * Exception for invalid arguments provided to the instantiator
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface
-{
-    /**
-     * @param string $className
-     *
-     * @return self
-     */
-    public static function fromNonExistingClass($className)
-    {
-        if (interface_exists($className)) {
-            return new self(sprintf('The provided type "%s" is an interface, and can not be instantiated', $className));
-        }
-
-        if (PHP_VERSION_ID >= 50400 && trait_exists($className)) {
-            return new self(sprintf('The provided type "%s" is a trait, and can not be instantiated', $className));
-        }
-
-        return new self(sprintf('The provided class "%s" does not exist', $className));
-    }
-
-    /**
-     * @param ReflectionClass $reflectionClass
-     *
-     * @return self
-     */
-    public static function fromAbstractClass(ReflectionClass $reflectionClass)
-    {
-        return new self(sprintf(
-            'The provided class "%s" is abstract, and can not be instantiated',
-            $reflectionClass->getName()
-        ));
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
deleted file mode 100644
index 1681e56..0000000
--- a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Instantiator\Exception;
-
-use Exception;
-use ReflectionClass;
-use UnexpectedValueException as BaseUnexpectedValueException;
-
-/**
- * Exception for given parameters causing invalid/unexpected state on instantiation
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface
-{
-    /**
-     * @param ReflectionClass $reflectionClass
-     * @param Exception       $exception
-     *
-     * @return self
-     */
-    public static function fromSerializationTriggeredException(ReflectionClass $reflectionClass, Exception $exception)
-    {
-        return new self(
-            sprintf(
-                'An exception was raised while trying to instantiate an instance of "%s" via un-serialization',
-                $reflectionClass->getName()
-            ),
-            0,
-            $exception
-        );
-    }
-
-    /**
-     * @param ReflectionClass $reflectionClass
-     * @param string          $errorString
-     * @param int             $errorCode
-     * @param string          $errorFile
-     * @param int             $errorLine
-     *
-     * @return UnexpectedValueException
-     */
-    public static function fromUncleanUnSerialization(
-        ReflectionClass $reflectionClass,
-        $errorString,
-        $errorCode,
-        $errorFile,
-        $errorLine
-    ) {
-        return new self(
-            sprintf(
-                'Could not produce an instance of "%s" via un-serialization, since an error was triggered '
-                . 'in file "%s" at line "%d"',
-                $reflectionClass->getName(),
-                $errorFile,
-                $errorLine
-            ),
-            0,
-            new Exception($errorString, $errorCode)
-        );
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
deleted file mode 100644
index 98868cf..0000000
--- a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Instantiator;
-
-use Closure;
-use Doctrine\Instantiator\Exception\InvalidArgumentException;
-use Doctrine\Instantiator\Exception\UnexpectedValueException;
-use Exception;
-use ReflectionClass;
-
-/**
- * {@inheritDoc}
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-final class Instantiator implements InstantiatorInterface
-{
-    /**
-     * Markers used internally by PHP to define whether {@see \unserialize} should invoke
-     * the method {@see \Serializable::unserialize()} when dealing with classes implementing
-     * the {@see \Serializable} interface.
-     */
-    const SERIALIZATION_FORMAT_USE_UNSERIALIZER   = 'C';
-    const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O';
-
-    /**
-     * @var \Closure[] of {@see \Closure} instances used to instantiate specific classes
-     */
-    private static $cachedInstantiators = array();
-
-    /**
-     * @var object[] of objects that can directly be cloned
-     */
-    private static $cachedCloneables = array();
-
-    /**
-     * {@inheritDoc}
-     */
-    public function instantiate($className)
-    {
-        if (isset(self::$cachedCloneables[$className])) {
-            return clone self::$cachedCloneables[$className];
-        }
-
-        if (isset(self::$cachedInstantiators[$className])) {
-            $factory = self::$cachedInstantiators[$className];
-
-            return $factory();
-        }
-
-        $factory    = self::$cachedInstantiators[$className] = $this->buildFactory($className);
-        $instance   = $factory();
-        $reflection = new ReflectionClass($instance);
-
-        if ($this->isSafeToClone($reflection)) {
-            self::$cachedCloneables[$className] = clone $instance;
-        }
-
-        return $instance;
-    }
-
-    /**
-     * @internal
-     * @private
-     *
-     * Builds a {@see \Closure} capable of instantiating the given $className without
-     * invoking its constructor.
-     * This method is only exposed as public because of PHP 5.3 compatibility. Do not
-     * use this method in your own code
-     *
-     * @param string $className
-     *
-     * @return Closure
-     */
-    public function buildFactory($className)
-    {
-        $reflectionClass = $this->getReflectionClass($className);
-
-        if ($this->isInstantiableViaReflection($reflectionClass)) {
-            return function () use ($reflectionClass) {
-                return $reflectionClass->newInstanceWithoutConstructor();
-            };
-        }
-
-        $serializedString = sprintf(
-            '%s:%d:"%s":0:{}',
-            $this->getSerializationFormat($reflectionClass),
-            strlen($className),
-            $className
-        );
-
-        $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);
-
-        return function () use ($serializedString) {
-            return unserialize($serializedString);
-        };
-    }
-
-    /**
-     * @param string $className
-     *
-     * @return ReflectionClass
-     *
-     * @throws InvalidArgumentException
-     */
-    private function getReflectionClass($className)
-    {
-        if (! class_exists($className)) {
-            throw InvalidArgumentException::fromNonExistingClass($className);
-        }
-
-        $reflection = new ReflectionClass($className);
-
-        if ($reflection->isAbstract()) {
-            throw InvalidArgumentException::fromAbstractClass($reflection);
-        }
-
-        return $reflection;
-    }
-
-    /**
-     * @param ReflectionClass $reflectionClass
-     * @param string          $serializedString
-     *
-     * @throws UnexpectedValueException
-     *
-     * @return void
-     */
-    private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, $serializedString)
-    {
-        set_error_handler(function ($code, $message, $file, $line) use ($reflectionClass, & $error) {
-            $error = UnexpectedValueException::fromUncleanUnSerialization(
-                $reflectionClass,
-                $message,
-                $code,
-                $file,
-                $line
-            );
-        });
-
-        try {
-            unserialize($serializedString);
-        } catch (Exception $exception) {
-            restore_error_handler();
-
-            throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception);
-        }
-
-        restore_error_handler();
-
-        if ($error) {
-            throw $error;
-        }
-    }
-
-    /**
-     * @param ReflectionClass $reflectionClass
-     *
-     * @return bool
-     */
-    private function isInstantiableViaReflection(ReflectionClass $reflectionClass)
-    {
-        if (\PHP_VERSION_ID >= 50600) {
-            return ! ($reflectionClass->isInternal() && $reflectionClass->isFinal());
-        }
-
-        return \PHP_VERSION_ID >= 50400 && ! $this->hasInternalAncestors($reflectionClass);
-    }
-
-    /**
-     * Verifies whether the given class is to be considered internal
-     *
-     * @param ReflectionClass $reflectionClass
-     *
-     * @return bool
-     */
-    private function hasInternalAncestors(ReflectionClass $reflectionClass)
-    {
-        do {
-            if ($reflectionClass->isInternal()) {
-                return true;
-            }
-        } while ($reflectionClass = $reflectionClass->getParentClass());
-
-        return false;
-    }
-
-    /**
-     * Verifies if the given PHP version implements the `Serializable` interface serialization
-     * with an incompatible serialization format. If that's the case, use serialization marker
-     * "C" instead of "O".
-     *
-     * @link http://news.php.net/php.internals/74654
-     *
-     * @param ReflectionClass $reflectionClass
-     *
-     * @return string the serialization format marker, either self::SERIALIZATION_FORMAT_USE_UNSERIALIZER
-     *                or self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER
-     */
-    private function getSerializationFormat(ReflectionClass $reflectionClass)
-    {
-        if ($this->isPhpVersionWithBrokenSerializationFormat()
-            && $reflectionClass->implementsInterface('Serializable')
-        ) {
-            return self::SERIALIZATION_FORMAT_USE_UNSERIALIZER;
-        }
-
-        return self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER;
-    }
-
-    /**
-     * Checks whether the current PHP runtime uses an incompatible serialization format
-     *
-     * @return bool
-     */
-    private function isPhpVersionWithBrokenSerializationFormat()
-    {
-        return PHP_VERSION_ID === 50429 || PHP_VERSION_ID === 50513;
-    }
-
-    /**
-     * Checks if a class is cloneable
-     *
-     * @param ReflectionClass $reflection
-     *
-     * @return bool
-     */
-    private function isSafeToClone(ReflectionClass $reflection)
-    {
-        if (method_exists($reflection, 'isCloneable') && ! $reflection->isCloneable()) {
-            return false;
-        }
-
-        // not cloneable if it implements `__clone`, as we want to avoid calling it
-        return ! $reflection->hasMethod('__clone');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
deleted file mode 100644
index b665bea..0000000
--- a/core/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Instantiator;
-
-/**
- * Instantiator provides utility methods to build objects without invoking their constructors
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-interface InstantiatorInterface
-{
-    /**
-     * @param string $className
-     *
-     * @return object
-     *
-     * @throws \Doctrine\Instantiator\Exception\ExceptionInterface
-     */
-    public function instantiate($className);
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php
deleted file mode 100644
index 3e8fc6f..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorPerformance/InstantiatorPerformanceEvent.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorPerformance;
-
-use Athletic\AthleticEvent;
-use Doctrine\Instantiator\Instantiator;
-
-/**
- * Performance tests for {@see \Doctrine\Instantiator\Instantiator}
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class InstantiatorPerformanceEvent extends AthleticEvent
-{
-    /**
-     * @var \Doctrine\Instantiator\Instantiator
-     */
-    private $instantiator;
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function setUp()
-    {
-        $this->instantiator = new Instantiator();
-
-        $this->instantiator->instantiate(__CLASS__);
-        $this->instantiator->instantiate('ArrayObject');
-        $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SimpleSerializableAsset');
-        $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset');
-        $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\UnCloneableAsset');
-    }
-
-    /**
-     * @iterations 20000
-     * @baseline
-     * @group instantiation
-     */
-    public function testInstantiateSelf()
-    {
-        $this->instantiator->instantiate(__CLASS__);
-    }
-
-    /**
-     * @iterations 20000
-     * @group instantiation
-     */
-    public function testInstantiateInternalClass()
-    {
-        $this->instantiator->instantiate('ArrayObject');
-    }
-
-    /**
-     * @iterations 20000
-     * @group instantiation
-     */
-    public function testInstantiateSimpleSerializableAssetClass()
-    {
-        $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SimpleSerializableAsset');
-    }
-
-    /**
-     * @iterations 20000
-     * @group instantiation
-     */
-    public function testInstantiateSerializableArrayObjectAsset()
-    {
-        $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset');
-    }
-
-    /**
-     * @iterations 20000
-     * @group instantiation
-     */
-    public function testInstantiateUnCloneableAsset()
-    {
-        $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\UnCloneableAsset');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php
deleted file mode 100644
index 39d9b94..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/InvalidArgumentExceptionTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTest\Exception;
-
-use Doctrine\Instantiator\Exception\InvalidArgumentException;
-use PHPUnit_Framework_TestCase;
-use ReflectionClass;
-
-/**
- * Tests for {@see \Doctrine\Instantiator\Exception\InvalidArgumentException}
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- *
- * @covers \Doctrine\Instantiator\Exception\InvalidArgumentException
- */
-class InvalidArgumentExceptionTest extends PHPUnit_Framework_TestCase
-{
-    public function testFromNonExistingTypeWithNonExistingClass()
-    {
-        $className = __CLASS__ . uniqid();
-        $exception = InvalidArgumentException::fromNonExistingClass($className);
-
-        $this->assertInstanceOf('Doctrine\\Instantiator\\Exception\\InvalidArgumentException', $exception);
-        $this->assertSame('The provided class "' . $className . '" does not exist', $exception->getMessage());
-    }
-
-    public function testFromNonExistingTypeWithTrait()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Need at least PHP 5.4.0, as this test requires traits support to run');
-        }
-
-        $exception = InvalidArgumentException::fromNonExistingClass(
-            'DoctrineTest\\InstantiatorTestAsset\\SimpleTraitAsset'
-        );
-
-        $this->assertSame(
-            'The provided type "DoctrineTest\\InstantiatorTestAsset\\SimpleTraitAsset" is a trait, '
-            . 'and can not be instantiated',
-            $exception->getMessage()
-        );
-    }
-
-    public function testFromNonExistingTypeWithInterface()
-    {
-        $exception = InvalidArgumentException::fromNonExistingClass('Doctrine\\Instantiator\\InstantiatorInterface');
-
-        $this->assertSame(
-            'The provided type "Doctrine\\Instantiator\\InstantiatorInterface" is an interface, '
-            . 'and can not be instantiated',
-            $exception->getMessage()
-        );
-    }
-
-    public function testFromAbstractClass()
-    {
-        $reflection = new ReflectionClass('DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset');
-        $exception  = InvalidArgumentException::fromAbstractClass($reflection);
-
-        $this->assertSame(
-            'The provided class "DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset" is abstract, '
-            . 'and can not be instantiated',
-            $exception->getMessage()
-        );
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php
deleted file mode 100644
index 84154e7..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/Exception/UnexpectedValueExceptionTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTest\Exception;
-
-use Doctrine\Instantiator\Exception\UnexpectedValueException;
-use Exception;
-use PHPUnit_Framework_TestCase;
-use ReflectionClass;
-
-/**
- * Tests for {@see \Doctrine\Instantiator\Exception\UnexpectedValueException}
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- *
- * @covers \Doctrine\Instantiator\Exception\UnexpectedValueException
- */
-class UnexpectedValueExceptionTest extends PHPUnit_Framework_TestCase
-{
-    public function testFromSerializationTriggeredException()
-    {
-        $reflectionClass = new ReflectionClass($this);
-        $previous        = new Exception();
-        $exception       = UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $previous);
-
-        $this->assertInstanceOf('Doctrine\\Instantiator\\Exception\\UnexpectedValueException', $exception);
-        $this->assertSame($previous, $exception->getPrevious());
-        $this->assertSame(
-            'An exception was raised while trying to instantiate an instance of "'
-            . __CLASS__  . '" via un-serialization',
-            $exception->getMessage()
-        );
-    }
-
-    public function testFromUncleanUnSerialization()
-    {
-        $reflection = new ReflectionClass('DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset');
-        $exception  = UnexpectedValueException::fromUncleanUnSerialization($reflection, 'foo', 123, 'bar', 456);
-
-        $this->assertInstanceOf('Doctrine\\Instantiator\\Exception\\UnexpectedValueException', $exception);
-        $this->assertSame(
-            'Could not produce an instance of "DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset" '
-            . 'via un-serialization, since an error was triggered in file "bar" at line "456"',
-            $exception->getMessage()
-        );
-
-        $previous = $exception->getPrevious();
-
-        $this->assertInstanceOf('Exception', $previous);
-        $this->assertSame('foo', $previous->getMessage());
-        $this->assertSame(123, $previous->getCode());
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php
deleted file mode 100644
index e7f6e94..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTest;
-
-use Doctrine\Instantiator\Exception\UnexpectedValueException;
-use Doctrine\Instantiator\Instantiator;
-use PHPUnit_Framework_TestCase;
-use ReflectionClass;
-
-/**
- * Tests for {@see \Doctrine\Instantiator\Instantiator}
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- *
- * @covers \Doctrine\Instantiator\Instantiator
- */
-class InstantiatorTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var Instantiator
-     */
-    private $instantiator;
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function setUp()
-    {
-        $this->instantiator = new Instantiator();
-    }
-
-    /**
-     * @param string $className
-     *
-     * @dataProvider getInstantiableClasses
-     */
-    public function testCanInstantiate($className)
-    {
-        $this->assertInstanceOf($className, $this->instantiator->instantiate($className));
-    }
-
-    /**
-     * @param string $className
-     *
-     * @dataProvider getInstantiableClasses
-     */
-    public function testInstantiatesSeparateInstances($className)
-    {
-        $instance1 = $this->instantiator->instantiate($className);
-        $instance2 = $this->instantiator->instantiate($className);
-
-        $this->assertEquals($instance1, $instance2);
-        $this->assertNotSame($instance1, $instance2);
-    }
-
-    public function testExceptionOnUnSerializationException()
-    {
-        if (defined('HHVM_VERSION')) {
-            $this->markTestSkipped(
-                'As of facebook/hhvm#3432, HHVM has no PDORow, and therefore '
-                . ' no internal final classes that cannot be instantiated'
-            );
-        }
-
-        $className = 'DoctrineTest\\InstantiatorTestAsset\\UnserializeExceptionArrayObjectAsset';
-
-        if (\PHP_VERSION_ID >= 50600) {
-            $className = 'PDORow';
-        }
-
-        if (\PHP_VERSION_ID === 50429 || \PHP_VERSION_ID === 50513) {
-            $className = 'DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset';
-        }
-
-        $this->setExpectedException('Doctrine\\Instantiator\\Exception\\UnexpectedValueException');
-
-        $this->instantiator->instantiate($className);
-    }
-
-    public function testNoticeOnUnSerializationException()
-    {
-        if (\PHP_VERSION_ID >= 50600) {
-            $this->markTestSkipped(
-                'PHP 5.6 supports `ReflectionClass#newInstanceWithoutConstructor()` for some internal classes'
-            );
-        }
-
-        try {
-            $this->instantiator->instantiate('DoctrineTest\\InstantiatorTestAsset\\WakeUpNoticesAsset');
-
-            $this->fail('No exception was raised');
-        } catch (UnexpectedValueException $exception) {
-            $wakeUpNoticesReflection = new ReflectionClass('DoctrineTest\\InstantiatorTestAsset\\WakeUpNoticesAsset');
-            $previous                = $exception->getPrevious();
-
-            $this->assertInstanceOf('Exception', $previous);
-
-            // in PHP 5.4.29 and PHP 5.5.13, this case is not a notice, but an exception being thrown
-            if (! (\PHP_VERSION_ID === 50429 || \PHP_VERSION_ID === 50513)) {
-                $this->assertSame(
-                    'Could not produce an instance of "DoctrineTest\\InstantiatorTestAsset\WakeUpNoticesAsset" '
-                    . 'via un-serialization, since an error was triggered in file "'
-                    . $wakeUpNoticesReflection->getFileName() . '" at line "36"',
-                    $exception->getMessage()
-                );
-
-                $this->assertSame('Something went bananas while un-serializing this instance', $previous->getMessage());
-                $this->assertSame(\E_USER_NOTICE, $previous->getCode());
-            }
-        }
-    }
-
-    /**
-     * @param string $invalidClassName
-     *
-     * @dataProvider getInvalidClassNames
-     */
-    public function testInstantiationFromNonExistingClass($invalidClassName)
-    {
-        $this->setExpectedException('Doctrine\\Instantiator\\Exception\\InvalidArgumentException');
-
-        $this->instantiator->instantiate($invalidClassName);
-    }
-
-    public function testInstancesAreNotCloned()
-    {
-        $className = 'TemporaryClass' . uniqid();
-
-        eval('namespace ' . __NAMESPACE__ . '; class ' . $className . '{}');
-
-        $instance = $this->instantiator->instantiate(__NAMESPACE__ . '\\' . $className);
-
-        $instance->foo = 'bar';
-
-        $instance2 = $this->instantiator->instantiate(__NAMESPACE__ . '\\' . $className);
-
-        $this->assertObjectNotHasAttribute('foo', $instance2);
-    }
-
-    /**
-     * Provides a list of instantiable classes (existing)
-     *
-     * @return string[][]
-     */
-    public function getInstantiableClasses()
-    {
-        $classes = array(
-            array('stdClass'),
-            array(__CLASS__),
-            array('Doctrine\\Instantiator\\Instantiator'),
-            array('PharException'),
-            array('DoctrineTest\\InstantiatorTestAsset\\SimpleSerializableAsset'),
-            array('DoctrineTest\\InstantiatorTestAsset\\PharExceptionAsset'),
-            array('DoctrineTest\\InstantiatorTestAsset\\UnCloneableAsset'),
-            array('DoctrineTest\\InstantiatorTestAsset\\XMLReaderAsset'),
-        );
-
-        if (\PHP_VERSION_ID === 50429 || \PHP_VERSION_ID === 50513) {
-            return $classes;
-        }
-
-        $classes = array_merge(
-            $classes,
-            array(
-                array('PharException'),
-                array('ArrayObject'),
-                array('DoctrineTest\\InstantiatorTestAsset\\ArrayObjectAsset'),
-                array('DoctrineTest\\InstantiatorTestAsset\\SerializableArrayObjectAsset'),
-            )
-        );
-
-        if (\PHP_VERSION_ID >= 50600) {
-            $classes[] = array('DoctrineTest\\InstantiatorTestAsset\\WakeUpNoticesAsset');
-            $classes[] = array('DoctrineTest\\InstantiatorTestAsset\\UnserializeExceptionArrayObjectAsset');
-        }
-
-        return $classes;
-    }
-
-    /**
-     * Provides a list of instantiable classes (existing)
-     *
-     * @return string[][]
-     */
-    public function getInvalidClassNames()
-    {
-        $classNames = array(
-            array(__CLASS__ . uniqid()),
-            array('Doctrine\\Instantiator\\InstantiatorInterface'),
-            array('DoctrineTest\\InstantiatorTestAsset\\AbstractClassAsset'),
-        );
-
-        if (\PHP_VERSION_ID >= 50400) {
-            $classNames[] = array('DoctrineTest\\InstantiatorTestAsset\\SimpleTraitAsset');
-        }
-
-        return $classNames;
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php
deleted file mode 100644
index fbe28dd..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-/**
- * A simple asset for an abstract class
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-abstract class AbstractClassAsset
-{
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php
deleted file mode 100644
index 56146d7..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/ArrayObjectAsset.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use ArrayObject;
-use BadMethodCallException;
-
-/**
- * Test asset that extends an internal PHP class
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class ArrayObjectAsset extends ArrayObject
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php
deleted file mode 100644
index 553fd56..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharAsset.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use BadMethodCallException;
-use Phar;
-
-/**
- * Test asset that extends an internal PHP class
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class PharAsset extends Phar
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php
deleted file mode 100644
index 42bf73e..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/PharExceptionAsset.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use BadMethodCallException;
-use PharException;
-
-/**
- * Test asset that extends an internal PHP class
- * This class should be serializable without problems
- * and without getting the "Erroneous data format for unserializing"
- * error
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class PharExceptionAsset extends PharException
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php
deleted file mode 100644
index ba19aaf..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SerializableArrayObjectAsset.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use ArrayObject;
-use BadMethodCallException;
-use Serializable;
-
-/**
- * Serializable test asset that also extends an internal class
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class SerializableArrayObjectAsset extends ArrayObject implements Serializable
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function serialize()
-    {
-        return '';
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function unserialize($serialized)
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php
deleted file mode 100644
index 39f84a6..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleSerializableAsset.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use BadMethodCallException;
-use Serializable;
-
-/**
- * Base serializable test asset
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class SimpleSerializableAsset implements Serializable
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function serialize()
-    {
-        return '';
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function unserialize($serialized)
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php
deleted file mode 100644
index 04e7806..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/SimpleTraitAsset.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-/**
- * A simple trait with no attached logic
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-trait SimpleTraitAsset
-{
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php
deleted file mode 100644
index 7d03bda..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnCloneableAsset.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use BadMethodCallException;
-
-/**
- * Base un-cloneable asset
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class UnCloneableAsset
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-
-    /**
-     * Magic `__clone` - should not be invoked
-     *
-     * @throws BadMethodCallException
-     */
-    public function __clone()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php
deleted file mode 100644
index b348a40..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/UnserializeExceptionArrayObjectAsset.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use ArrayObject;
-use BadMethodCallException;
-
-/**
- * A simple asset for an abstract class
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class UnserializeExceptionArrayObjectAsset extends ArrayObject
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function __wakeup()
-    {
-        throw new BadMethodCallException();
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php
deleted file mode 100644
index 18dc671..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/WakeUpNoticesAsset.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use ArrayObject;
-
-/**
- * A simple asset for an abstract class
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class WakeUpNoticesAsset extends ArrayObject
-{
-    /**
-     * Wakeup method called after un-serialization
-     */
-    public function __wakeup()
-    {
-        trigger_error('Something went bananas while un-serializing this instance');
-    }
-}
diff --git a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php b/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php
deleted file mode 100644
index 39ee699..0000000
--- a/core/vendor/doctrine/instantiator/tests/DoctrineTest/InstantiatorTestAsset/XMLReaderAsset.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace DoctrineTest\InstantiatorTestAsset;
-
-use BadMethodCallException;
-use XMLReader;
-
-/**
- * Test asset that extends an internal PHP class
- *
- * @author Dave Marshall <dave@atst.io>
- */
-class XMLReaderAsset extends XMLReader
-{
-    /**
-     * Constructor - should not be called
-     *
-     * @throws BadMethodCallException
-     */
-    public function __construct()
-    {
-        throw new BadMethodCallException('Not supposed to be called!');
-    }
-}
diff --git a/core/vendor/doctrine/lexer/LICENSE b/core/vendor/doctrine/lexer/LICENSE
deleted file mode 100644
index 5e781fc..0000000
--- a/core/vendor/doctrine/lexer/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2006-2013 Doctrine Project
-
-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/core/vendor/doctrine/lexer/README.md b/core/vendor/doctrine/lexer/README.md
deleted file mode 100644
index 66f4430..0000000
--- a/core/vendor/doctrine/lexer/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Doctrine Lexer
-
-Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.
-
-This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL).
diff --git a/core/vendor/doctrine/lexer/composer.json b/core/vendor/doctrine/lexer/composer.json
deleted file mode 100644
index 8cd694c..0000000
--- a/core/vendor/doctrine/lexer/composer.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "name": "doctrine/lexer",
-    "type": "library",
-    "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
-    "keywords": ["lexer", "parser"],
-    "homepage": "http://www.doctrine-project.org",
-    "license": "MIT",
-    "authors": [
-        {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
-        {"name": "Roman Borschel", "email": "roman@code-factory.org"},
-        {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.3.2"
-    },
-    "autoload": {
-        "psr-0": { "Doctrine\\Common\\Lexer\\": "lib/" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
deleted file mode 100644
index 399a552..0000000
--- a/core/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-/*
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many individuals
- * and is licensed under the MIT license. For more information, see
- * <http://www.doctrine-project.org>.
- */
-
-namespace Doctrine\Common\Lexer;
-
-/**
- * Base class for writing simple lexers, i.e. for creating small DSLs.
- *
- * @since  2.0
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- */
-abstract class AbstractLexer
-{
-    /**
-     * Lexer original input string.
-     *
-     * @var string
-     */
-    private $input;
-
-    /**
-     * Array of scanned tokens.
-     *
-     * Each token is an associative array containing three items:
-     *  - 'value'    : the string value of the token in the input string
-     *  - 'type'     : the type of the token (identifier, numeric, string, input
-     *                 parameter, none)
-     *  - 'position' : the position of the token in the input string
-     *
-     * @var array
-     */
-    private $tokens = array();
-
-    /**
-     * Current lexer position in input string.
-     *
-     * @var integer
-     */
-    private $position = 0;
-
-    /**
-     * Current peek of current lexer position.
-     *
-     * @var integer
-     */
-    private $peek = 0;
-
-    /**
-     * The next token in the input.
-     *
-     * @var array
-     */
-    public $lookahead;
-
-    /**
-     * The last matched/seen token.
-     *
-     * @var array
-     */
-    public $token;
-
-    /**
-     * Sets the input data to be tokenized.
-     *
-     * The Lexer is immediately reset and the new input tokenized.
-     * Any unprocessed tokens from any previous input are lost.
-     *
-     * @param string $input The input to be tokenized.
-     *
-     * @return void
-     */
-    public function setInput($input)
-    {
-        $this->input  = $input;
-        $this->tokens = array();
-
-        $this->reset();
-        $this->scan($input);
-    }
-
-    /**
-     * Resets the lexer.
-     *
-     * @return void
-     */
-    public function reset()
-    {
-        $this->lookahead = null;
-        $this->token = null;
-        $this->peek = 0;
-        $this->position = 0;
-    }
-
-    /**
-     * Resets the peek pointer to 0.
-     *
-     * @return void
-     */
-    public function resetPeek()
-    {
-        $this->peek = 0;
-    }
-
-    /**
-     * Resets the lexer position on the input to the given position.
-     *
-     * @param integer $position Position to place the lexical scanner.
-     *
-     * @return void
-     */
-    public function resetPosition($position = 0)
-    {
-        $this->position = $position;
-    }
-
-    /**
-     * Retrieve the original lexer's input until a given position. 
-     *
-     * @param integer $position
-     *
-     * @return string
-     */
-    public function getInputUntilPosition($position)
-    {
-        return substr($this->input, 0, $position);
-    }
-
-    /**
-     * Checks whether a given token matches the current lookahead.
-     *
-     * @param integer|string $token
-     *
-     * @return boolean
-     */
-    public function isNextToken($token)
-    {
-        return null !== $this->lookahead && $this->lookahead['type'] === $token;
-    }
-
-    /**
-     * Checks whether any of the given tokens matches the current lookahead.
-     *
-     * @param array $tokens
-     *
-     * @return boolean
-     */
-    public function isNextTokenAny(array $tokens)
-    {
-        return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true);
-    }
-
-    /**
-     * Moves to the next token in the input string.
-     *
-     * @return boolean
-     */
-    public function moveNext()
-    {
-        $this->peek = 0;
-        $this->token = $this->lookahead;
-        $this->lookahead = (isset($this->tokens[$this->position]))
-            ? $this->tokens[$this->position++] : null;
-
-        return $this->lookahead !== null;
-    }
-
-    /**
-     * Tells the lexer to skip input tokens until it sees a token with the given value.
-     *
-     * @param string $type The token type to skip until.
-     *
-     * @return void
-     */
-    public function skipUntil($type)
-    {
-        while ($this->lookahead !== null && $this->lookahead['type'] !== $type) {
-            $this->moveNext();
-        }
-    }
-
-    /**
-     * Checks if given value is identical to the given token.
-     *
-     * @param mixed   $value
-     * @param integer $token
-     *
-     * @return boolean
-     */
-    public function isA($value, $token)
-    {
-        return $this->getType($value) === $token;
-    }
-
-    /**
-     * Moves the lookahead token forward.
-     *
-     * @return array|null The next token or NULL if there are no more tokens ahead.
-     */
-    public function peek()
-    {
-        if (isset($this->tokens[$this->position + $this->peek])) {
-            return $this->tokens[$this->position + $this->peek++];
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Peeks at the next token, returns it and immediately resets the peek.
-     *
-     * @return array|null The next token or NULL if there are no more tokens ahead.
-     */
-    public function glimpse()
-    {
-        $peek = $this->peek();
-        $this->peek = 0;
-        return $peek;
-    }
-
-    /**
-     * Scans the input string for tokens.
-     *
-     * @param string $input A query string.
-     *
-     * @return void
-     */
-    protected function scan($input)
-    {
-        static $regex;
-
-        if ( ! isset($regex)) {
-            $regex = sprintf(
-                '/(%s)|%s/%s',
-                implode(')|(', $this->getCatchablePatterns()),
-                implode('|', $this->getNonCatchablePatterns()),
-                $this->getModifiers()
-            );
-        }
-
-        $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;
-        $matches = preg_split($regex, $input, -1, $flags);
-
-        foreach ($matches as $match) {
-            // Must remain before 'value' assignment since it can change content
-            $type = $this->getType($match[0]);
-
-            $this->tokens[] = array(
-                'value' => $match[0],
-                'type'  => $type,
-                'position' => $match[1],
-            );
-        }
-    }
-
-    /**
-     * Gets the literal for a given token.
-     *
-     * @param integer $token
-     *
-     * @return string
-     */
-    public function getLiteral($token)
-    {
-        $className = get_class($this);
-        $reflClass = new \ReflectionClass($className);
-        $constants = $reflClass->getConstants();
-
-        foreach ($constants as $name => $value) {
-            if ($value === $token) {
-                return $className . '::' . $name;
-            }
-        }
-
-        return $token;
-    }
-
-    /**
-     * Regex modifiers
-     *
-     * @return string
-     */
-    protected function getModifiers()
-    {
-        return 'i';
-    }
-
-    /**
-     * Lexical catchable patterns.
-     *
-     * @return array
-     */
-    abstract protected function getCatchablePatterns();
-
-    /**
-     * Lexical non-catchable patterns.
-     *
-     * @return array
-     */
-    abstract protected function getNonCatchablePatterns();
-
-    /**
-     * Retrieve token type. Also processes the token value if necessary.
-     *
-     * @param string $value
-     *
-     * @return integer
-     */
-    abstract protected function getType(&$value);
-}
diff --git a/core/vendor/easyrdf/easyrdf/CHANGELOG.md b/core/vendor/easyrdf/easyrdf/CHANGELOG.md
deleted file mode 100644
index 6ac65fb..0000000
--- a/core/vendor/easyrdf/easyrdf/CHANGELOG.md
+++ /dev/null
@@ -1,340 +0,0 @@
-EasyRdf 0.9.0
-=============
-
-* code-style fix
-
-EasyRdf 0.9.0-rc.4
-==================
-
-* fixed compatibility with php < 5.4.8 (see issue #212)
-* tweaked unit-tests
-
-EasyRdf 0.9.0-rc.3
-==================
-
-* fixed documentation generation
-
-EasyRdf 0.9.0-rc.2
-==================
-
-* tweaked unit-tests
-
-EasyRdf 0.9.0-rc.1
-==================
-
-Major new features
-------------------
-* Framing support in `EasyRdf_Serialiser_JsonLd`
-* JSON-LD Parser
-
-API changes
------------
-* `EasyRdf_Literal_Decimal` returns strings, instead of floats to avoid losing precision (see issue #178)
-* `EasyRdf_Literal_Decimal` requires input-strings which conform to `xs:decimal` format
-* `EasyRdf_GraphStore` supports operations over default graph now
-* `EasyRdf_Literal` typed as `xs:double` is used for PHP-floats instead of `EasyRdf_Literal_Decimal`
-* Exceptions thrown from `EasyRdf_Graph::resource()` use different message-texts now (see issue #159)
-
-Enhancements
-------------
-* Synced list of default namespaces against [RDFa Core Initial Context](http://www.w3.org/2011/rdfa-context/rdfa-1.1) rev.2014-01-17
-* Added support for empty prefixes (see issue #183)
-* `EasyRdf_Graph::newAndLoad` throws `EasyRdf_Http_Exception` in case of failure, which gives access to status and response-body. (see issue #149)
-* `EasyRdf_Graph` and `EasyRdf_Resource` have 'typesAsResources()' methods now
-
-Bug Fixes
----------
-* Fix for Turtle serialisation of FALSE (see issue #179)
-* Fix for edge-case in RDF/XML serialisation (see issue #186)
-* SPARQL-queries against endpoints which have query-params in their URL (see issue #184)
-* Float values are properly handled if locale with "other" separator is active
-* Fixed parsing of Turtle-documents with higher utf-8 characters (see issue #195)
-* Namespace-prefixes are compliant with RDFXML QName spec (see issue #185)
-* `EasyRdf_Namespace` won't generate "short" names with "/" in them anymore (see issue #115)
-* `EasyRdf_Parser_RdfXml` respects "base" specified for the document (see issue #157)
-* HTML documents are correctly detected now, not as "n-triples" (see issue #206)
-* Accept-headers are formatted in locale-independent fashion now (see issue #208)
-
-
-EasyRdf 0.8.0
-=============
-
-Major new features
-------------------
-* Now PSR-2 compliant
-* Added RDFa parser
-* Added SPARQL Update support to `EasyRdf_Sparql_Client`
-
-API changes
------------
-* `is_a()` has been renamed to `isA()`
-* `isBnode()` has been renamed to `isBNode()`
-* `getNodeId()` has been renamed to `getBNodeId()`
-* Added a `$value` property to `hasProperty()`
-* Renamed `toArray()` to `toRdfPhp()`
-* Renamed `count()` to `countValues()` in `EasyRdf_Graph` and `EasyRdf_Resource`
-* Made passing a URI to `delete()` behave more like `all()` and `get()` - you must enclose in `<>`
-* `dump(true)` has changed to `dump('html')`
-* `getUri()` in `EasyRdf_Sparql_Client` has been renamed to `getQueryUri()`
-
-Enhancements
-------------
-* Added `EasyRdf_Container` class to help iterate through `rdf:Alt`, `rdf:Bag` and `rdf:Seq`
-* Added `EasyRdf_Collection` class to help iterate through `rdf:List`
-* Added `EasyRdf_Literal_HTML` and `EasyRdf_Literal_XML`
-* Changed formatting of `xsd:dateTime` from `DateTime::ISO8601` to `DateTime::ATOM`
-* Added `rss:title` to the list of properties that `label()` will check for
-* Added support for serialising containers to the RDF/XML serialiser
-* Added getGraph method to `EasyRdf_Resource`
-* Turtle parser improvements
-* Added the `application/n-triples` MIME type for the N-Triples format
-* Added support to `EasyRdf_Namespace` for expanding `a` to `rdf:type`
-* Added `listNamedGraphs()` function to `EasyRdf_Sparql_Client`
-* Added line and column number to exceptions in the built-in parsers
-
-Bug Fixes
----------
-* Fixed bug in `EasyRdf_Namespace::expand()` (see issue #114)
-* Fix for dumping SPARQL SELECT query with unbound result (see issue #112)
-* Sesame compatibility : avoid duplicate Content-Length header
-* Fix for for passing objects of type DateTime to $graph->add() (see issue #119)
-* Fix for SPARQL queries longer than 2KB (see issue #85)
-* Fix for dumping literal with unshortenable datatype uri (see issue #120)
-* Fix for getting default mime type or extension when there isn't one
-* Fix for missing trailing slash the HTTP client
-
-
-EasyRdf 0.7.2
-=============
-
-Enhancements
-------------
-* Removed automatic registration of ARC2 and librdf parsers and serialisers
-** You must now specifically choose the parser or serialiser
-* Refactored `EasyRdf_Literal` with datatypes so that it preserves exact value
-* Changed Turtle serialiser to not escape Unicode characters unnecessarily
-* Fix for escaping literals objects in Turtle serialiser
-* Added a new static function `newAndLoad()` to `EasyRdf_Graph`
-* Added setters for each of the components of the URI to the class `EasyRdf_ParsedUri`
-* Added option to the converter example, to allow raw output, without any HTML
-
-Bug Fixes
----------
-* Fixed broken Redland parser (thanks to Jon Phipps)
-* Fix for serialising two bnodes that reference each other in Turtle
-* Added support for parsing literals with single quotes in Turtle
-* Removed require for EasyRdf/Exception.php
-* Fix for serialising `EasyRdf_Literal_DateTime` to Turtle
-* Fix for serialising Turtle literals with a shorthand syntax
-* Several typo fixes and minor corrections
-
-
-EasyRdf 0.7.1
-=============
-
-Enhancements
-------------
-* Changed minimum version of PHPUnit to 3.5.15
-* Added RDFa namespace
-* Added Open Graph Protocol namespace
-* Made improvements to formatting of the Turtle serialiser
-* Added new splitUri() function to EasyRdf_Namespace
-* Made improvements to format guessing
-
-Bug Fixes
----------
-* Fix for RDF/XML parser not returning the number of triples
-* Added re-mapping of b-nodes to N-Triples and Redland parsers
-
-
-EasyRdf 0.7.0
-=============
-
-API Changes
------------
-* You must now wrap full property URIs in angle brackets
-
-Major new features
-------------------
-* Added a new pure-PHP Turtle parser
-* Added basic property-path support for traversing graphs
-* Added support for serialising to the GraphViz dot format (and generating images)
-* Added a new class `EasyRdf_ParsedUri` - a RFC3986 compliant URI parser
-
-Enhancements
-------------
-* The load() function in `EasyRdf_Graph` no-longer takes a $data argument
-* The parse() and load() methods, now return the number of triples parsed
-* Added count() method to `EasyRdf_Resource` and `EasyRdf_Graph`
-* Added localName() method to `EasyRdf_Resource`
-* Added htmlLink() method to `EasyRdf_Resource`
-* Added methods deleteResource() and deleteLiteral() to `EasyRdf_Graph`
-* Added support for guessing the file format based on the file extension
-* Performance improvements to built-in serialisers
-
-Environment changes
--------------------
-* Added PHP Composer description to the project
-* Now properly PSR-0 autoloader compatible
-* New minimum version of PHP is 5.2.8
-* Changed test suite to require PHPUnit 3.6
-* Changed from Phing to GNU Make based build system
-* Added automated testing of the examples
-
-Bug Fixes
----------
-* Fix for loading https:// URLs
-* Fix for storing the value 0 in a `EasyRdf_Graph`
-* Fix for HTTP servers that return relative URIs in the Location header
-* Fix for Literals with languages in the SPARQL Query Results XML Format
-* Fix for SPARQL servers that put extra whitespace into the XML result
-* Fix for the httpget.php example in PHP 5.4+
-
-
-EasyRdf 0.6.3
-=============
-* Added $graph->parseFile() method.
-* Added support for SSL (https) to the built-in HTTP client
-* Fixes for HTTP responses with a charset parameter in the Content Type.
-* Improved error handling and empty documents in JSON and rapper parsers.
-* Added connivence class for xsd:hexBinary literals:
-  - `EasyRdf_Literal_HexBinary`
-* Made EasyRdf more tolerant of 'badly serialised bnodes'
-* Fix for SPARQL servers that return charset in the MIME Type.
-* Fix for using xml:lang in SPARQL 1.1 Query Results JSON Format
-* Changed datetime ISO formatting to use 'Z' instead of +0000 for UTC dateTimes
-* Added the namespace for 'The Cert Ontology' to EasyRdf.
-
-
-EasyRdf 0.6.2
-=============
-* Bug fix for missing triples in the RDF/XML serialiser.
-* Added countTriples() method to `EasyRdf_Graph`.
-* Re-factored the mechanism for mapping RDF datatypes to PHP classes.
-* Added subclasses of `EasyRdf_Literal` for various XSD datatypes:
-  - `EasyRdf_Literal_Boolean`
-  - `EasyRdf_Literal_Date`
-  - `EasyRdf_Literal_DateTime`
-  - `EasyRdf_Literal_Decimal`
-  - `EasyRdf_Literal_Integer`
-* Made the Redland based parser write triples directly to `EasyRdf_Graph`
-* Added support for datatypes and languages in the `EasyRdf_Parser_Ntriples` parser.
-* Fix for parsing XML Literals in RDF/XML
-
-
-EasyRdf 0.6.1
-=============
-* Updated API documentation for new classes and methods added in 0.6.0
-* Added a description to the top of the source code for each example.
-* Changed the generated bnode identifier names from eidXXX to genidXXX.
-* Implemented inlining of resources in the RDF/XML serialiser.
-* Added new reversePropertyUris() method to `EasyRdf_Graph` and `EasyRdf_Resource`.
-* Added addType() and setType() to `EasyRdf_Resource`.
-* Added a textarea to the converter example.
-* Added support for parsing the json-triples format.
-* Renamed `EasyRdf_SparqlClient` to `EasyRdf_Sparql_Client`
-* Renamed `EasyRdf_SparqlResult` to `EasyRdf_Sparql_Result`
-* Fix for $graph->isEmpty() failing after adding and deleting some triples
-* Added new `EasyRdf_DatatypeMapper` class that allows you to map RDF datatypes to PHP classes.
-* Renamed guessDatatype() to getDatatypeForValue() in `EasyRdf_Literal`.
-* Added getResource() and allResources() to `EasyRdf_Graph` and `EasyRdf_Resource`
-* Implemented value casting in literals based on the datatype.
-
-
-EasyRdf 0.6.0
-=============
-* Major re-factor of the way data is stored internally in `EasyRdf_Graph`.
-* Parsing and serialising is now much faster and will enable further optimisations.
-* API is mostly backwards-compatible apart from:
-  - Changed inverse property operator from - to ^ to match Sparql 1.1 property paths.
-  - New `EasyRdf_Graphs` will not automatically be loaded on creation
-    You must now call $graph->load();
-  - Setting the default HTTP client is now part of a new `EasyRdf_Http` class
-  - It is no-longer possible to add multiple properties at once using an associative array.
-* Added methods to `EasyRdf_Graph` for direct manipulation of triples.
-* Added new `EasyRdf_GraphStore` - class for fetching, saving and deleting graphs to a Graph Store over HTTP.
-* Added new `EasyRdf_SparqlClient` and `EasyRdf_SparqlResult` - class for querying a SPARQL endpoint over HTTP.
-* Added q values for each Mime-Type associated with an `EasyRdf_Format`.
-* New example demonstrating integration with the Zend Framework.
-* New `EasyRdf_HTTP_MockClient` class makes testing easier.
-
-
-EasyRdf 0.5.2
-=============
-* Added a built-in RDF/XML parser
-* Made the RDF/XML serialiser use the rdf:type to open tags
-* Added support for comments in the N-Triples parser
-* Added new resolveUriReference() function to `EasyRdf_Utils`
-* Added the application/rdf+json and text/rdf+n3 mime types
-
-
-EasyRdf 0.5.1
-=============
-* Bug fixes for PHP 5.2
-
-
-EasyRdf 0.5.0
-=============
-* Added support for inverse properties.
-* Updated RDF/XML and Turtle serialisers to create new namespaces if possible.
-* Added new is_a($type) method to `EasyRdf_Resource`.
-* Added support for passing an array of properties to the get() method.
-* Added primaryTopic() method to `EasyRdf_Resource`.
-* The function label() in `EasyRdf_Resource` will no longer attempted to shorten the URI,
-  if there is no label available.
-* Resource types are now stored as resources, instead of shortened URIs.
-* Added support for deleting a specific value for property to `EasyRdf_Resource`.
-* Properties and datatypes are now stored as full URIs and not
-  converted to qnames during import.
-* Change the TypeMapper to store full URIs internally.
-* Added bibo and geo to the set of default namespaces.
-* Improved bnode links in dump format
-* Fix for converting non-string `EasyRdf_Literal` to string.
-* Created an example that resolves UK postcodes using uk-postcodes.com.
-
-
-EasyRdf 0.4.0
-=============
-* Moved source code to Github
-* Added an `EasyRdf_Literal` class
-* Added proper support for Datatypes and Languages
-* Added built-in RDF/XML serialiser
-* Added built-in Turtle serialiser
-* Added a new `EasyRdf_Format` class to deal with mime types etc.
-* finished a major refactoring of the Parser/Serialiser registration
-* removed all parsing related code from `EasyRdf_Graph`
-* Added a basic serialisation example
-* Added additional common namespaces
-* Test fixes
-
-
-EasyRdf 0.3.0
-=============
-* Generated Wiki pages from phpdoc
-* Filtering of literals by language
-* Moved parsers into `EasyRdf_Parser_XXX` namespace
-* Added support for serialisation
-* Wrote RDF generation example (foafmaker.php)
-* Added built-in ntriples parser/generator
-* Added built-in RDF/PHP serialiser
-* Added built-in RDF/JSON serialiser
-* Added SKOS and RSS to the set of default namespaces.
-
-
-EasyRdf 0.2.0
-=============
-* Added support for Redland PHP bindings
-* Added support for n-triples document type.
-* Improved blank node handing and added newBNode() method to `EasyRdf_Graph`.
-* Add option to `EasyRdf_RapperParser` to choose location of rapper command
-* Added Rails style HTML tag helpers to examples to make them simpler
-
-
-EasyRdf 0.1.0
-=============
-* First public release
-* Support for ARC2 and Rapper
-* Built-in HTTP Client
-* API Documentation
-* PHP Unit tests for every class.
-* Several usage examples
diff --git a/core/vendor/easyrdf/easyrdf/DEVELOPER.md b/core/vendor/easyrdf/easyrdf/DEVELOPER.md
deleted file mode 100644
index f9c6dac..0000000
--- a/core/vendor/easyrdf/easyrdf/DEVELOPER.md
+++ /dev/null
@@ -1,31 +0,0 @@
-Contributing to EasyRdf
-=======================
-
-Contributions to the EasyRdf codebase are welcome using the usual Github pull request workflow.
-
-To run the code style checker:
-
-```
-make cs
-```
-
-You can run the PHP unit test suite with:
-
-```
-make test-lib
-```
-
-Unit tests are automatically run after being received by Github:
-http://ci.aelius.com/job/easyrdf/
-
-The tests for the examples are run separately:
-http://ci.aelius.com/job/easyrdf-examples/
-
-
-Notes
------
-
-* Please ask on the [mailing list] before starting work on any significant changes
-* Please write tests for any new features or bug fixes. The tests should be checked in the same commit as the code.
-
-[mailing list]:http://groups.google.com/group/easyrdf
diff --git a/core/vendor/easyrdf/easyrdf/LICENSE.md b/core/vendor/easyrdf/easyrdf/LICENSE.md
deleted file mode 100644
index c5e2f5d..0000000
--- a/core/vendor/easyrdf/easyrdf/LICENSE.md
+++ /dev/null
@@ -1,420 +0,0 @@
-LICENSE
-=======
-
-Copyright (c) 2009-2011 Nicholas J Humfrey.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * The name of the author 'Nicholas J Humfrey" may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-
-OTHER LICENSES
-==============
-
-Parts of this program or documentation is available under different
-licensing terms. These are as following.
-
-The appendix in the documentation about RDF formats (APPENDIX A) is a
-derivative work under CC-BY-SA-3.0. It consists of two documents:
-
-1. The RDF/PHP Specification was written/edited 2008 by Ian Davis and Keith
-   Alexander
-2. The RDF/JSON Specification was written/edited 2007, 2008 by Keith
-   Alexander, Danny Ayers, Sam Tunnicliffe, Fellahst, Ian Davis and Robman
-
-These two documents have been translated 2014 into markdown by hakre.
-
-
-Creative Commons Attribution-ShareAlike 3.0 Unported
-====================================================
-
-CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
-LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
-ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
-ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE
-INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
-ITS USE.
-
-License
-
-THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
-COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
-COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
-AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
-
-BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
-TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
-BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
-CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
-CONDITIONS.
-
-1. Definitions
-
-a. "Adaptation" means a work based upon the Work, or upon the Work and
-other pre-existing works, such as a translation, adaptation, derivative
-work, arrangement of music or other alterations of a literary or
-artistic work, or phonogram or performance and includes cinematographic
-adaptations or any other form in which the Work may be recast,
-transformed, or adapted including in any form recognizably derived from
-the original, except that a work that constitutes a Collection will not
-be considered an Adaptation for the purpose of this License. For the
-avoidance of doubt, where the Work is a musical work, performance or
-phonogram, the synchronization of the Work in timed-relation with a
-moving image ("synching") will be considered an Adaptation for the
-purpose of this License.
-
-b. "Collection" means a collection of literary or artistic works, such
-as encyclopedias and anthologies, or performances, phonograms or
-broadcasts, or other works or subject matter other than works listed in
-Section 1(f) below, which, by reason of the selection and arrangement of
-their contents, constitute intellectual creations, in which the Work is
-included in its entirety in unmodified form along with one or more other
-contributions, each constituting separate and independent works in
-themselves, which together are assembled into a collective whole. A work
-that constitutes a Collection will not be considered an Adaptation (as
-defined below) for the purposes of this License.
-
-c. "Creative Commons Compatible License" means a license that is listed
-at http://creativecommons.org/compatiblelicenses that has been approved
-by Creative Commons as being essentially equivalent to this License,
-including, at a minimum, because that license: (i) contains terms that
-have the same purpose, meaning and effect as the License Elements of
-this License; and, (ii) explicitly permits the relicensing of
-adaptations of works made available under that license under this
-License or a Creative Commons jurisdiction license with the same License
-Elements as this License.
-
-d. "Distribute" means to make available to the public the original and
-copies of the Work or Adaptation, as appropriate, through sale or other
-transfer of ownership.
-
-e. "License Elements" means the following high-level license attributes
-as selected by Licensor and indicated in the title of this License:
-Attribution, ShareAlike.
-
-f. "Licensor" means the individual, individuals, entity or entities that
-offer(s) the Work under the terms of this License.
-
-g. "Original Author" means, in the case of a literary or artistic work,
-the individual, individuals, entity or entities who created the Work or
-if no individual or entity can be identified, the publisher; and in
-addition (i) in the case of a performance the actors, singers,
-musicians, dancers, and other persons who act, sing, deliver, declaim,
-play in, interpret or otherwise perform literary or artistic works or
-expressions of folklore; (ii) in the case of a phonogram the producer
-being the person or legal entity who first fixes the sounds of a
-performance or other sounds; and, (iii) in the case of broadcasts, the
-organization that transmits the broadcast.
-
-h. "Work" means the literary and/or artistic work offered under the
-terms of this License including without limitation any production in the
-literary, scientific and artistic domain, whatever may be the mode or
-form of its expression including digital form, such as a book, pamphlet
-and other writing; a lecture, address, sermon or other work of the same
-nature; a dramatic or dramatico-musical work; a choreographic work or
-entertainment in dumb show; a musical composition with or without words;
-a cinematographic work to which are assimilated works expressed by a
-process analogous to cinematography; a work of drawing, painting,
-architecture, sculpture, engraving or lithography; a photographic work
-to which are assimilated works expressed by a process analogous to
-photography; a work of applied art; an illustration, map, plan, sketch
-or three-dimensional work relative to geography, topography,
-architecture or science; a performance; a broadcast; a phonogram; a
-compilation of data to the extent it is protected as a copyrightable
-work; or a work performed by a variety or circus performer to the extent
-it is not otherwise considered a literary or artistic work.
-
-i. "You" means an individual or entity exercising rights under this
-License who has not previously violated the terms of this License with
-respect to the Work, or who has received express permission from the
-Licensor to exercise rights under this License despite a previous
-violation.
-
-j. "Publicly Perform" means to perform public recitations of the Work
-and to communicate to the public those public recitations, by any means
-or process, including by wire or wireless means or public digital
-performances; to make available to the public Works in such a way that
-members of the public may access these Works from a place and at a place
-individually chosen by them; to perform the Work to the public by any
-means or process and the communication to the public of the performances
-of the Work, including by public digital performance; to broadcast and
-rebroadcast the Work by any means including signs, sounds or images.
-
-k. "Reproduce" means to make copies of the Work by any means including
-without limitation by sound or visual recordings and the right of
-fixation and reproducing fixations of the Work, including storage of a
-protected performance or phonogram in digital form or other electronic
-medium.
-
-2. Fair Dealing Rights. Nothing in this License is intended to reduce,
-limit, or restrict any uses free from copyright or rights arising from
-limitations or exceptions that are provided for in connection with the
-copyright protection under copyright law or other applicable laws.
-
-3. License Grant. Subject to the terms and conditions of this License,
-Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
-perpetual (for the duration of the applicable copyright) license to
-exercise the rights in the Work as stated below:
-
-a. to Reproduce the Work, to incorporate the Work into one or more
-Collections, and to Reproduce the Work as incorporated in the
-Collections;
-
-b. to create and Reproduce Adaptations provided that any such
-Adaptation, including any translation in any medium, takes reasonable
-steps to clearly label, demarcate or otherwise identify that changes
-were made to the original Work. For example, a translation could be
-marked "The original work was translated from English to Spanish," or a
-modification could indicate "The original work has been modified.";
-
-c. to Distribute and Publicly Perform the Work including as incorporated
-in Collections; and,
-
-d. to Distribute and Publicly Perform Adaptations.
-
-e. For the avoidance of doubt:
-
-i. Non-waivable Compulsory License Schemes. In those jurisdictions in
-which the right to collect royalties through any statutory or compulsory
-licensing scheme cannot be waived, the Licensor reserves the exclusive
-right to collect such royalties for any exercise by You of the rights
-granted under this License;
-
-ii. Waivable Compulsory License Schemes. In those jurisdictions in which
-the right to collect royalties through any statutory or compulsory
-licensing scheme can be waived, the Licensor waives the exclusive right
-to collect such royalties for any exercise by You of the rights granted
-under this License; and,
-
-iii. Voluntary License Schemes. The Licensor waives the right to collect
-royalties, whether individually or, in the event that the Licensor is a
-member of a collecting society that administers voluntary licensing
-schemes, via that society, from any exercise by You of the rights
-granted under this License.
-
-The above rights may be exercised in all media and formats whether now
-known or hereafter devised. The above rights include the right to make
-such modifications as are technically necessary to exercise the rights
-in other media and formats. Subject to Section 8(f), all rights not
-expressly granted by Licensor are hereby reserved.
-
-4. Restrictions. The license granted in Section 3 above is expressly
-made subject to and limited by the following restrictions:
-
-a. You may Distribute or Publicly Perform the Work only under the terms
-of this License. You must include a copy of, or the Uniform Resource
-Identifier (URI) for, this License with every copy of the Work You
-Distribute or Publicly Perform. You may not offer or impose any terms on
-the Work that restrict the terms of this License or the ability of the
-recipient of the Work to exercise the rights granted to that recipient
-under the terms of the License. You may not sublicense the Work. You
-must keep intact all notices that refer to this License and to the
-disclaimer of warranties with every copy of the Work You Distribute or
-Publicly Perform. When You Distribute or Publicly Perform the Work, You
-may not impose any effective technological measures on the Work that
-restrict the ability of a recipient of the Work from You to exercise the
-rights granted to that recipient under the terms of the License. This
-Section 4(a) applies to the Work as incorporated in a Collection, but
-this does not require the Collection apart from the Work itself to be
-made subject to the terms of this License. If You create a Collection,
-upon notice from any Licensor You must, to the extent practicable,
-remove from the Collection any credit as required by Section 4(c), as
-requested. If You create an Adaptation, upon notice from any Licensor
-You must, to the extent practicable, remove from the Adaptation any
-credit as required by Section 4(c), as requested.
-
-b. You may Distribute or Publicly Perform an Adaptation only under the
-terms of: (i) this License; (ii) a later version of this License with
-the same License Elements as this License; (iii) a Creative Commons
-jurisdiction license (either this or a later license version) that
-contains the same License Elements as this License (e.g.,
-Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible
-License. If you license the Adaptation under one of the licenses
-mentioned in (iv), you must comply with the terms of that license. If
-you license the Adaptation under the terms of any of the licenses
-mentioned in (i), (ii) or (iii) (the "Applicable License"), you must
-comply with the terms of the Applicable License generally and the
-following provisions: (I) You must include a copy of, or the URI for,
-the Applicable License with every copy of each Adaptation You Distribute
-or Publicly Perform; (II) You may not offer or impose any terms on the
-Adaptation that restrict the terms of the Applicable License or the
-ability of the recipient of the Adaptation to exercise the rights
-granted to that recipient under the terms of the Applicable License;
-(III) You must keep intact all notices that refer to the Applicable
-License and to the disclaimer of warranties with every copy of the Work
-as included in the Adaptation You Distribute or Publicly Perform; (IV)
-when You Distribute or Publicly Perform the Adaptation, You may not
-impose any effective technological measures on the Adaptation that
-restrict the ability of a recipient of the Adaptation from You to
-exercise the rights granted to that recipient under the terms of the
-Applicable License. This Section 4(b) applies to the Adaptation as
-incorporated in a Collection, but this does not require the Collection
-apart from the Adaptation itself to be made subject to the terms of the
-Applicable License.
-
-c. If You Distribute, or Publicly Perform the Work or any Adaptations or
-Collections, You must, unless a request has been made pursuant to
-Section 4(a), keep intact all copyright notices for the Work and
-provide, reasonable to the medium or means You are utilizing: (i) the
-name of the Original Author (or pseudonym, if applicable) if supplied,
-and/or if the Original Author and/or Licensor designate another party or
-parties (e.g., a sponsor institute, publishing entity, journal) for
-attribution ("Attribution Parties") in Licensor's copyright notice,
-terms of service or by other reasonable means, the name of such party or
-parties; (ii) the title of the Work if supplied; (iii) to the extent
-reasonably practicable, the URI, if any, that Licensor specifies to be
-associated with the Work, unless such URI does not refer to the
-copyright notice or licensing information for the Work; and (iv) ,
-consistent with Ssection 3(b), in the case of an Adaptation, a credit
-identifying the use of the Work in the Adaptation (e.g., "French
-translation of the Work by Original Author," or "Screenplay based on
-original Work by Original Author"). The credit required by this Section
-4(c) may be implemented in any reasonable manner; provided, however,
-that in the case of a Adaptation or Collection, at a minimum such credit
-will appear, if a credit for all contributing authors of the Adaptation
-or Collection appears, then as part of these credits and in a manner at
-least as prominent as the credits for the other contributing authors.
-For the avoidance of doubt, You may only use the credit required by this
-Section for the purpose of attribution in the manner set out above and,
-by exercising Your rights under this License, You may not implicitly or
-explicitly assert or imply any connection with, sponsorship or
-endorsement by the Original Author, Licensor and/or Attribution Parties,
-as appropriate, of You or Your use of the Work, without the separate,
-express prior written permission of the Original Author, Licensor and/or
-Attribution Parties.
-
-d. Except as otherwise agreed in writing by the Licensor or as may be
-otherwise permitted by applicable law, if You Reproduce, Distribute or
-Publicly Perform the Work either by itself or as part of any Adaptations
-or Collections, You must not distort, mutilate, modify or take other
-derogatory action in relation to the Work which would be prejudicial to
-the Original Author's honor or reputation. Licensor agrees that in those
-jurisdictions (e.g. Japan), in which any exercise of the right granted
-in Section 3(b) of this License (the right to make Adaptations) would be
-deemed to be a distortion, mutilation, modification or other derogatory
-action prejudicial to the Original Author's honor and reputation, the
-Licensor will waive or not assert, as appropriate, this Section, to the
-fullest extent permitted by the applicable national law, to enable You
-to reasonably exercise Your right under Section 3(b) of this License
-(right to make Adaptations) but not otherwise.
-
-5. Representations, Warranties and Disclaimer
-
-UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
-OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
-KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
-FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
-LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
-WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE
-EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
-
-6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
-LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
-ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
-ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
-BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. Termination
-
-a. This License and the rights granted hereunder will terminate
-automatically upon any breach by You of the terms of this License.
-Individuals or entities who have received Adaptations or Collections
-from You under this License, however, will not have their licenses
-terminated provided such individuals or entities remain in full
-compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
-survive any termination of this License.
-
-b. Subject to the above terms and conditions, the license granted here
-is perpetual (for the duration of the applicable copyright in the Work).
-Notwithstanding the above, Licensor reserves the right to release the
-Work under different license terms or to stop distributing the Work at
-any time; provided, however that any such election will not serve to
-withdraw this License (or any other license that has been, or is
-required to be, granted under the terms of this License), and this
-License will continue in full force and effect unless terminated as
-stated above.
-
-8. Miscellaneous
-
-a. Each time You Distribute or Publicly Perform the Work or a
-Collection, the Licensor offers to the recipient a license to the Work
-on the same terms and conditions as the license granted to You under
-this License.
-
-b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
-offers to the recipient a license to the original Work on the same terms
-and conditions as the license granted to You under this License.
-
-c. If any provision of this License is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this License, and without further action
-by the parties to this agreement, such provision shall be reformed to
-the minimum extent necessary to make such provision valid and
-enforceable.
-
-d.  No term or provision of this License shall be deemed waived and no
-breach consented to unless such waiver or consent shall be in writing
-and signed by the party to be charged with such waiver or consent.
-
-e. This License constitutes the entire agreement between the parties
-with respect to the Work licensed here. There are no understandings,
-agreements or representations with respect to the Work not specified
-here. Licensor shall not be bound by any additional provisions that may
-appear in any communication from You. This License may not be modified
-without the mutual written agreement of the Licensor and You.
-
-f. The rights granted under, and the subject matter referenced, in this
-License were drafted utilizing the terminology of the Berne Convention
-for the Protection of Literary and Artistic Works (as amended on
-September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
-Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and
-the Universal Copyright Convention (as revised on July 24, 1971). These
-rights and subject matter take effect in the relevant jurisdiction in
-which the License terms are sought to be enforced according to the
-corresponding provisions of the implementation of those treaty
-provisions in the applicable national law. If the standard suite of
-rights granted under applicable copyright law includes additional rights
-not granted under this License, such additional rights are deemed to be
-included in the License; this License is not intended to restrict the
-license of any rights under applicable law.
-
-
-
-Creative Commons Notice
-
-Creative Commons is not a party to this License, and makes no warranty
-whatsoever in connection with the Work. Creative Commons will not be
-liable to You or any party on any legal theory for any damages
-whatsoever, including without limitation any general, special,
-incidental or consequential damages arising in connection to this
-license. Notwithstanding the foregoing two (2) sentences, if Creative
-Commons has expressly identified itself as the Licensor hereunder, it
-shall have all rights and obligations of Licensor.
-
-Except for the limited purpose of indicating to the public that the Work
-is licensed under the CCPL, Creative Commons does not authorize the use
-by either party of the trademark "Creative Commons" or any related
-trademark or logo of Creative Commons without the prior written consent
-of Creative Commons. Any permitted use will be in compliance with
-Creative Commons' then-current trademark usage guidelines, as may be
-published on its website or otherwise made available upon request from
-time to time. For the avoidance of doubt, this trademark restriction
-does not form part of the License.
-
-Creative Commons may be contacted at http://creativecommons.org/.
diff --git a/core/vendor/easyrdf/easyrdf/README.md b/core/vendor/easyrdf/easyrdf/README.md
deleted file mode 100644
index d5b9956..0000000
--- a/core/vendor/easyrdf/easyrdf/README.md
+++ /dev/null
@@ -1,112 +0,0 @@
-EasyRdf
-=======
-EasyRdf is a PHP library designed to make it easy to consume and produce [RDF].
-It was designed for use in mixed teams of experienced and inexperienced RDF
-developers. It is written in Object Oriented PHP and has been tested
-extensively using PHPUnit.
-
-After parsing EasyRdf builds up a graph of PHP objects that can then be walked
-around to get the data to be placed on the page. Dump methods are available to
-inspect what data is available during development.
-
-Data is typically loaded into a [EasyRdf_Graph] object from source RDF
-documents, loaded from the web via HTTP. The [EasyRdf_GraphStore] class
-simplifies loading and saving data to a SPARQL 1.1 Graph Store.
-
-SPARQL queries can be made over HTTP to a Triplestore using the
-[EasyRdf_Sparql_Client] class. SELECT and ASK queries will return an
-[EasyRdf_Sparql_Result] object and CONSTRUCT and DESCRIBE queries will return
-an [EasyRdf_Graph] object.
-
-### Example ###
-
-    $foaf = new EasyRdf_Graph("http://njh.me/foaf.rdf");
-    $foaf->load();
-    $me = $foaf->primaryTopic();
-    echo "My name is: ".$me->get('foaf:name')."\n";
-
-
-Downloads
----------
-
-The latest _stable_ version of EasyRdf can be [downloaded from the EasyRdf website].
-
-
-Links
------
-
-* [EasyRdf Homepage](http://www.easyrdf.org/)
-* [API documentation](http://www.easyrdf.org/docs/api)
-* [Change Log](http://github.com/njh/easyrdf/blob/master/CHANGELOG.md)
-* Source Code: <http://github.com/njh/easyrdf>
-* Issue Tracker: <http://github.com/njh/easyrdf/issues>
-
-
-Requirements
-------------
-
-* PHP 5.2.8 or higher
-
-
-Features
---------
-
-* API documentation written in phpdoc
-* Extensive unit tests written using phpunit
-  * Automated testing against PHP 5.2, 5.3 and 5.4
-* Built-in parsers and serialisers: RDF/JSON, N-Triples, RDF/XML, Turtle
-* Optional parsing support for: [ARC2], [Redland Bindings], [rapper]
-* Optional support for [Zend_Http_Client]
-* No required external dependancies upon other libraries (PEAR, Zend, etc...)
-* Complies with Zend Framework coding style.
-* Type mapper - resources of type foaf:Person can be mapped into PHP object of class Foaf_Person
-* Support for visualisation of graphs using [GraphViz]
-* Comes with a number of examples
-
-
-More Examples
--------------
-
-* [artistinfo.php](https://github.com/njh/easyrdf/blob/master/examples/artistinfo.php#slider) - Example of mapping an RDF class type to a PHP Class
-* [basic.php](https://github.com/njh/easyrdf/blob/master/examples/basic.php#slider) - Basic "Hello World" type example
-* [basic_sparql.php](https://github.com/njh/easyrdf/blob/master/examples/basic_sparql.php#slider) - Example of making a SPARQL SELECT query
-* [converter.php](https://github.com/njh/easyrdf/blob/master/examples/converter.php#slider) - Convert RDF from one format to another
-* [dump.php](https://github.com/njh/easyrdf/blob/master/examples/dump.php#slider) - Display the contents of a graph
-* [foafinfo.php](https://github.com/njh/easyrdf/blob/master/examples/foafinfo.php#slider) - Display the basic information in a FOAF document
-* [foafmaker.php](https://github.com/njh/easyrdf/blob/master/examples/foafmaker.php#slider) - Construct a FOAF document with a choice of serialisations
-* [graph_direct.php](https://github.com/njh/easyrdf/blob/master/examples/graph_direct.php#slider) - Example of using EasyRdf_Graph directly without EasyRdf_Resource
-* [graphstore.php](https://github.com/njh/easyrdf/blob/master/examples/graphstore.php#slider) - Store and retrieve data from a SPARQL 1.1 Graph Store
-* [graphviz.php](https://github.com/njh/easyrdf/blob/master/examples/graphviz.php#slider) - GraphViz rendering example
-* [html_tag_helpers.php](https://github.com/njh/easyrdf/blob/master/examples/html_tag_helpers.php#slider) - Rails Style html tag helpers to make the EasyRdf examples simplier
-* [httpget.php](https://github.com/njh/easyrdf/blob/master/examples/httpget.php#slider) - No RDF, just test EasyRdf_Http_Client
-* [serialise.php](https://github.com/njh/easyrdf/blob/master/examples/serialise.php#slider) - Basic serialisation example
-* [sparql_queryform.php](https://github.com/njh/easyrdf/blob/master/examples/sparql_queryform.php#slider) - Form to submit SPARQL queries and display the result
-* [uk_postcode.php](https://github.com/njh/easyrdf/blob/master/examples/uk_postcode.php#slider) - Example of resolving UK postcodes using uk-postcodes.com
-* [villages.php](https://github.com/njh/easyrdf/blob/master/examples/villages.php#slider) - Fetch and information about villages in Fife from dbpedialite.org
-* [zend_framework.php](https://github.com/njh/easyrdf/blob/master/examples/zend_framework.php#slider) - Example of using Zend_Http_Client and Zend_Loader_Autoloader with EasyRdf
-
-
-
-Licensing
----------
-
-The EasyRdf library and tests are licensed under the [BSD-3-Clause] license.
-The examples are in the public domain, for more information see [UNLICENSE].
-
-
-
-[EasyRdf_Graph]:http://www.easyrdf.org/docs/api/EasyRdf_Graph.html
-[EasyRdf_GraphStore]:http://www.easyrdf.org/docs/api/EasyRdf_GraphStore.html
-[EasyRdf_Sparql_Client]:http://www.easyrdf.org/docs/api/EasyRdf_Sparql_Client.html
-[EasyRdf_Sparql_Result]:http://www.easyrdf.org/docs/api/EasyRdf_Sparql_Result.html
-
-[ARC2]:http://github.com/semsol/arc2/
-[BSD-3-Clause]:http://www.opensource.org/licenses/BSD-3-Clause
-[downloaded from the EasyRdf website]:http://www.easyrdf.org/downloads
-[GraphViz]:http://www.graphviz.org/
-[rapper]:http://librdf.org/raptor/rapper.html
-[RDF]:http://en.wikipedia.org/wiki/Resource_Description_Framework
-[Redland Bindings]:http://librdf.org/bindings/
-[SPARQL 1.1 query language]:http://www.w3.org/TR/sparql11-query/
-[UNLICENSE]:http://unlicense.org/
-[Zend_Http_Client]:http://framework.zend.com/manual/en/zend.http.client.html
diff --git a/core/vendor/easyrdf/easyrdf/composer.json b/core/vendor/easyrdf/easyrdf/composer.json
deleted file mode 100644
index 030e087..0000000
--- a/core/vendor/easyrdf/easyrdf/composer.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-    "name": "easyrdf/easyrdf",
-    "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
-    "version": "0.9.0",
-    "type": "library",
-    "keywords": ["RDF", "Semantic Web", "Linked Data", "Turtle", "RDFa", "SPARQL"],
-    "homepage": "http://www.easyrdf.org/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Nicholas Humfrey",
-            "email": "njh@aelius.com",
-            "homepage": "http://www.aelius.com/njh/",
-            "role": "Developer"
-        },
-        {
-            "name": "Alexey Zakhlestin",
-            "email": "indeyets@gmail.com",
-            "role": "Developer"
-        }
-    ],
-    "support": {
-        "forum": "http://groups.google.com/group/easyrdf/",
-        "issues": "http://github.com/njh/easyrdf/issues",
-        "irc": "irc://chat.freenode.net/easyrdf"
-    },
-    "require": {
-        "php": ">=5.2.8",
-        "ext-mbstring": "*",
-        "ext-pcre": "*"
-    },
-    "suggest": {
-        "ml/json-ld": "~1.0"
-    },
-    "require-dev": {
-        "phpunit/PHPUnit": "~3.5",
-        "squizlabs/php_codesniffer": "~1.4.3",
-        "sami/sami": "~1.4"
-    },
-    "autoload": {
-        "psr-0": { "EasyRdf_": "lib/" }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/doap.php b/core/vendor/easyrdf/easyrdf/doap.php
deleted file mode 100644
index 4393fe0..0000000
--- a/core/vendor/easyrdf/easyrdf/doap.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-    require_once "vendor/autoload.php";
-
-    // Load some properties from the composer file
-    $composer = json_decode(file_get_contents(__DIR__."/composer.json"));
-
-    // Start building up a RDF graph
-    $doap = new EasyRdf_Graph($composer->homepage.'doap.rdf');
-    $easyrdf = $doap->resource('#easyrdf', 'doap:Project', 'foaf:Project');
-    $easyrdf->addLiteral('doap:name',  'EasyRDF');
-    $easyrdf->addLiteral('doap:shortname', 'easyrdf');
-    $easyrdf->addLiteral('doap:revision', $composer->version);
-    $easyrdf->addLiteral('doap:shortdesc', $composer->description, 'en');
-    $easyrdf->addResource('doap:homepage', $composer->homepage);
-
-    $easyrdf->addLiteral('doap:programming-language', 'PHP');
-    $easyrdf->addLiteral(
-        'doap:description', 'EasyRdf is a PHP library designed to make it easy to consume and produce RDF. '.
-        'It was designed for use in mixed teams of experienced and inexperienced RDF developers. '.
-        'It is written in Object Oriented PHP and has been tested extensively using PHPUnit.', 'en'
-    );
-    $easyrdf->addResource('doap:license', 'http://usefulinc.com/doap/licenses/bsd');
-    $easyrdf->addResource('doap:download-page', 'http://github.com/njh/easyrdf/downloads');
-    $easyrdf->addResource('doap:download-page', 'http://github.com/njh/easyrdf/downloads');
-    $easyrdf->addResource('doap:bug-database', 'http://github.com/njh/easyrdf/issues');
-    $easyrdf->addResource('doap:mailing-list', 'http://groups.google.com/group/easyrdf');
-
-    $easyrdf->addResource('doap:category', 'http://dbpedia.org/resource/Resource_Description_Framework');
-    $easyrdf->addResource('doap:category', 'http://dbpedia.org/resource/PHP');
-    $easyrdf->addResource('doap:category', 'http://www.dbpedialite.org/things/24131#id');
-    $easyrdf->addResource('doap:category', 'http://www.dbpedialite.org/things/53847#id');
-
-    $repository = $doap->newBNode('doap:GitRepository');
-    $repository->addResource('doap:browse', 'http://github.com/njh/easyrdf');
-    $repository->addResource('doap:location', 'git://github.com/njh/easyrdf.git');
-    $easyrdf->addResource('doap:repository', $repository);
-
-    $njh = $doap->resource('http://njh.me/', 'foaf:Person');
-    $njh->addLiteral('foaf:name', 'Nicholas J Humfrey');
-    $njh->addResource('foaf:homepage', 'http://www.aelius.com/njh/');
-    $easyrdf->add('doap:maintainer', $njh);
-    $easyrdf->add('doap:developer', $njh);
-    $easyrdf->add('foaf:maker', $njh);
-
-    print $doap->serialise('rdfxml');
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf.php
deleted file mode 100644
index 8c7248b..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf.php
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * Use this file to load the core of EasyRdf, if you don't have an autoloader.
- *
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2011-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * @see EasyRdf_Exception
- */
-require_once "EasyRdf/Exception.php";
-
-/**
- * @see EasyRdf_Format
- */
-require_once "EasyRdf/Format.php";
-
-/**
- * @see EasyRdf_Graph
- */
-require_once "EasyRdf/Graph.php";
-
-/**
- * @see EasyRdf_GraphStore
- */
-require_once "EasyRdf/GraphStore.php";
-
-/**
- * @see EasyRdf_Http
- */
-require_once "EasyRdf/Http.php";
-
-/**
- * @see EasyRdf_Http_Client
- */
-require_once "EasyRdf/Http/Client.php";
-
-/**
- * @see EasyRdf_Http_Response
- */
-require_once "EasyRdf/Http/Response.php";
-
-/**
- * @see EasyRdf_Isomorphic
- */
-require_once "EasyRdf/Isomorphic.php";
-
-/**
- * @see EasyRdf_Namespace
- */
-require_once "EasyRdf/Namespace.php";
-
-/**
- * @see EasyRdf_Literal
- */
-require_once "EasyRdf/Literal.php";
-
-/**
- * @see EasyRdf_Literal_Boolean
- */
-require_once "EasyRdf/Literal/Boolean.php";
-
-/**
- * @see EasyRdf_Literal_Date
- */
-require_once "EasyRdf/Literal/Date.php";
-
-/**
- * @see EasyRdf_Literal_DateTime
- */
-require_once "EasyRdf/Literal/DateTime.php";
-
-/**
- * @see EasyRdf_Literal_Decimal
- */
-require_once "EasyRdf/Literal/Decimal.php";
-
-/**
- * @see EasyRdf_Literal_HexBinary
- */
-require_once "EasyRdf/Literal/HexBinary.php";
-
-/**
- * @see EasyRdf_Literal_HTML
- */
-require_once "EasyRdf/Literal/HTML.php";
-
-/**
- * @see EasyRdf_Literal_Integer
- */
-require_once "EasyRdf/Literal/Integer.php";
-
-/**
- * @see EasyRdf_Literal_XML
- */
-require_once "EasyRdf/Literal/XML.php";
-
-/**
- * @see EasyRdf_ParsedUri
- */
-require_once "EasyRdf/ParsedUri.php";
-
-/**
- * @see EasyRdf_Parser
- */
-require_once "EasyRdf/Parser.php";
-
-/**
- * @see EasyRdf_Parser_Exception
- */
-require_once "EasyRdf/Parser/Exception.php";
-
-/**
- * @see EasyRdf_Parser_RdfPhp
- */
-require_once "EasyRdf/Parser/RdfPhp.php";
-
-/**
- * @see EasyRdf_Parser_Ntriples
- */
-require_once "EasyRdf/Parser/Ntriples.php";
-
-/**
- * @see EasyRdf_Parser_Json
- */
-require_once "EasyRdf/Parser/Json.php";
-
-/**
- * @see EasyRdf_Parser_Rdfa
- */
-require_once "EasyRdf/Parser/Rdfa.php";
-
-/**
- * @see EasyRdf_Parser_RdfXml
- */
-require_once "EasyRdf/Parser/RdfXml.php";
-
-/**
- * @see EasyRdf_Parser_Turtle
- */
-require_once "EasyRdf/Parser/Turtle.php";
-
-/**
- * @see EasyRdf_Resource
- */
-require_once "EasyRdf/Resource.php";
-
-/**
- * @see EasyRdf_Collection
- */
-require_once "EasyRdf/Collection.php";
-
-/**
- * @see EasyRdf_Container
- */
-require_once "EasyRdf/Container.php";
-
-/**
- * @see EasyRdf_Serialiser
- */
-require_once "EasyRdf/Serialiser.php";
-
-/**
- * @see EasyRdf_Serialiser_GraphViz
- */
-require_once "EasyRdf/Serialiser/GraphViz.php";
-
-/**
- * @see EasyRdf_Serialiser_RdfPhp
- */
-require_once "EasyRdf/Serialiser/RdfPhp.php";
-
-/**
- * @see EasyRdf_Serialiser_Ntriples
- */
-require_once "EasyRdf/Serialiser/Ntriples.php";
-
-/**
- * @see EasyRdf_Serialiser_Json
- */
-require_once "EasyRdf/Serialiser/Json.php";
-
-/**
- * @see EasyRdf_Serialiser_RdfXml
- */
-require_once "EasyRdf/Serialiser/RdfXml.php";
-
-/**
- * @see EasyRdf_Serialiser_Turtle
- */
-require_once "EasyRdf/Serialiser/Turtle.php";
-
-/**
- * @see EasyRdf_Sparql_Client
- */
-require_once "EasyRdf/Sparql/Client.php";
-
-/**
- * @see EasyRdf_Sparql_Result
- */
-require_once "EasyRdf/Sparql/Result.php";
-
-/**
- * @see EasyRdf_TypeMapper
- */
-require_once "EasyRdf/TypeMapper.php";
-
-/**
- * @see EasyRdf_Utils
- */
-require_once "EasyRdf/Utils.php";
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Collection.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Collection.php
deleted file mode 100644
index b66646c..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Collection.php
+++ /dev/null
@@ -1,333 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Sub-class of EasyRdf_Resource that represents an RDF collection (rdf:List)
- *
- * This class can be used to iterate through a collection of items.
- *
- * Note that items are numbered from 1 (not 0) for consistency with RDF Containers.
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#date
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Collection extends EasyRdf_Resource implements ArrayAccess, Countable, SeekableIterator
-{
-    private $position;
-    private $current;
-
-    /** Create a new collection - do not use this directly
-     *
-     * @ignore
-     */
-    public function __construct($uri, $graph)
-    {
-        $this->position = 1;
-        $this->current = null;
-        parent::__construct($uri, $graph);
-    }
-
-    /** Seek to a specific position in the container
-     *
-     * The first item is postion 1
-     *
-     * @param  integer  $position     The position in the container to seek to
-     * @throws OutOfBoundsException
-     */
-    public function seek($position)
-    {
-        if (is_int($position) and $position > 0) {
-            list($node, $actual) = $this->getCollectionNode($position);
-            if ($actual === $position) {
-                $this->position = $actual;
-                $this->current = $node;
-            } else {
-                throw new OutOfBoundsException(
-                    "Unable to seek to position $position in the collection"
-                );
-            }
-        } else {
-            throw new InvalidArgumentException(
-                "Collection position must be a positive integer"
-            );
-        }
-    }
-
-    /** Rewind the iterator back to the start of the collection
-     *
-     */
-    public function rewind()
-    {
-        $this->position = 1;
-        $this->current = null;
-    }
-
-    /** Return the current item in the collection
-     *
-     * @return mixed The current item
-     */
-    public function current()
-    {
-        if ($this->position === 1) {
-            return $this->get('rdf:first');
-        } elseif ($this->current) {
-            return $this->current->get('rdf:first');
-        }
-    }
-
-    /** Return the key / current position in the collection
-     *
-     * Note: the first item is number 1
-     *
-     * @return int The current position
-     */
-    public function key()
-    {
-        return $this->position;
-    }
-
-    /** Move forward to next item in the collection
-     *
-     */
-    public function next()
-    {
-        if ($this->position === 1) {
-            $this->current = $this->get('rdf:rest');
-        } elseif ($this->current) {
-            $this->current = $this->current->get('rdf:rest');
-        }
-        $this->position++;
-    }
-
-    /** Checks if current position is valid
-     *
-     * @return bool True if the current position is valid
-     */
-    public function valid()
-    {
-        if ($this->position === 1 and $this->hasProperty('rdf:first')) {
-            return true;
-        } elseif ($this->current !== null and $this->current->hasProperty('rdf:first')) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /** Get a node for a particular offset into the collection
-     *
-     * This function may not return the item you requested, if
-     * it does not exist. Please check the $postion parameter
-     * returned.
-     *
-     * If the offset is null, then the last node in the
-     * collection (before rdf:nil) will be returned.
-     *
-     * @param  integer $offset          The offset into the collection (or null)
-     * @return array   $node, $postion  The node object and postion of the node
-     */
-    public function getCollectionNode($offset)
-    {
-        $position = 1;
-        $node = $this;
-        $nil = $this->graph->resource('rdf:nil');
-        while (($rest = $node->get('rdf:rest')) and $rest !== $nil and (is_null($offset) or ($position < $offset))) {
-            $node = $rest;
-            $position++;
-        }
-        return array($node, $position);
-    }
-
-    /** Counts the number of items in the collection
-     *
-     * Note that this is an slow method - it is more efficient to use
-     * the iterator interface, if you can.
-     *
-     * @return integer The number of items in the collection
-     */
-    public function count()
-    {
-        // Find the end of the collection
-        list($node, $position) = $this->getCollectionNode(null);
-        if (!$node->hasProperty('rdf:first')) {
-            return 0;
-        } else {
-            return $position;
-        }
-    }
-
-    /** Append an item to the end of the collection
-     *
-     * @param  mixed $value      The value to append
-     * @return integer           The number of values appended (1 or 0)
-     */
-    public function append($value)
-    {
-        // Find the end of the collection
-        list($node, $position) = $this->getCollectionNode(null);
-        $rest = $node->get('rdf:rest');
-
-        if ($node === $this and is_null($rest)) {
-            $node->set('rdf:first', $value);
-            $node->addResource('rdf:rest', 'rdf:nil');
-        } else {
-            $new = $this->graph->newBnode();
-            $node->set('rdf:rest', $new);
-            $new->add('rdf:first', $value);
-            $new->addResource('rdf:rest', 'rdf:nil');
-        }
-
-        return 1;
-    }
-
-    /** Array Access: check if a position exists in collection using array syntax
-     *
-     * Example: isset($list[2])
-     */
-    public function offsetExists($offset)
-    {
-        if (is_int($offset) and $offset > 0) {
-            list($node, $position) = $this->getCollectionNode($offset);
-            return ($node and $position === $offset and $node->hasProperty('rdf:first'));
-        } else {
-            throw new InvalidArgumentException(
-                "Collection offset must be a positive integer"
-            );
-        }
-    }
-
-    /** Array Access: get an item at a specified position in collection using array syntax
-     *
-     * Example: $item = $list[2];
-     */
-    public function offsetGet($offset)
-    {
-        if (is_int($offset) and $offset > 0) {
-            list($node, $position) = $this->getCollectionNode($offset);
-            if ($node and $position === $offset) {
-                return $node->get('rdf:first');
-            }
-        } else {
-            throw new InvalidArgumentException(
-                "Collection offset must be a positive integer"
-            );
-        }
-    }
-
-    /**
-     * Array Access: set an item at a positon in collection using array syntax
-     *
-     * Example: $list[2] = $item;
-     */
-    public function offsetSet($offset, $value)
-    {
-        if (is_null($offset)) {
-            // No offset - append to end of collection
-            $this->append($value);
-        } elseif (is_int($offset) and $offset > 0) {
-            list($node, $position) = $this->getCollectionNode($offset);
-
-            // Create nodes, if they are missing
-            while ($position < $offset) {
-                $new = $this->graph->newBnode();
-                $node->set('rdf:rest', $new);
-                $new->addResource('rdf:rest', 'rdf:nil');
-                $node = $new;
-                $position++;
-            }
-
-            // Terminate the list
-            if (!$node->hasProperty('rdf:rest')) {
-                $node->addResource('rdf:rest', 'rdf:nil');
-            }
-
-            return $node->set('rdf:first', $value);
-        } else {
-            throw new InvalidArgumentException(
-                "Collection offset must be a positive integer"
-            );
-        }
-    }
-
-    /**
-     * Array Access: delete an item at a specific postion using array syntax
-     *
-     * Example: unset($seq[2]);
-     */
-    public function offsetUnset($offset)
-    {
-        if (is_int($offset) and $offset > 0) {
-            list($node, $position) = $this->getCollectionNode($offset);
-        } else {
-            throw new InvalidArgumentException(
-                "Collection offset must be a positive integer"
-            );
-        }
-
-        // Does the item exist?
-        if ($node and $position === $offset) {
-            $nil = $this->graph->resource('rdf:nil');
-            if ($position === 1) {
-                $rest = $node->get('rdf:rest');
-                if ($rest and $rest !== $nil) {
-                    // Move second value, so we can keep the head of list
-                    $node->set('rdf:first', $rest->get('rdf:first'));
-                    $node->set('rdf:rest', $rest->get('rdf:rest'));
-                    $rest->delete('rdf:first');
-                    $rest->delete('rdf:rest');
-                } else {
-                    // Just remove the value
-                    $node->delete('rdf:first');
-                    $node->delete('rdf:rest');
-                }
-            } else {
-                // Remove the value and re-link the list
-                $node->delete('rdf:first');
-                $rest = $node->get('rdf:rest');
-                $previous = $node->get('^rdf:rest');
-                if (is_null($rest)) {
-                    $rest = $nil;
-                }
-                if ($previous) {
-                    $previous->set('rdf:rest', $rest);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Container.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Container.php
deleted file mode 100644
index 2207956..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Container.php
+++ /dev/null
@@ -1,230 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Sub-class of EasyRdf_Resource that represents an RDF container
- * (rdf:Alt, rdf:Bag and rdf:Seq)
- *
- * This class can be used to iterate through a list of items.
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#date
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Container extends EasyRdf_Resource implements ArrayAccess, Countable, SeekableIterator
-{
-    private $position;
-
-    /** Create a new container - do not use this directly
-     *
-     * @ignore
-     */
-    public function __construct($uri, $graph)
-    {
-        $this->position = 1;
-        parent::__construct($uri, $graph);
-    }
-
-    /** Seek to a specific position in the container
-     *
-     * The first item is postion 1
-     *
-     * @param  integer  $position     The position in the container to seek to
-     * @throws OutOfBoundsException
-     */
-    public function seek($position)
-    {
-        if (is_int($position) and $position > 0) {
-            if ($this->hasProperty('rdf:_'.$position)) {
-                $this->position = $position;
-            } else {
-                throw new OutOfBoundsException(
-                    "Unable to seek to position $position in the container"
-                );
-            }
-        } else {
-            throw new InvalidArgumentException(
-                "Container position must be a positive integer"
-            );
-        }
-    }
-
-    /** Rewind the iterator back to the start of the container (item 1)
-     *
-     */
-    public function rewind()
-    {
-        $this->position = 1;
-    }
-
-    /** Return the current item in the container
-     *
-     * @return mixed The current item
-     */
-    public function current()
-    {
-        return $this->get('rdf:_'.$this->position);
-    }
-
-    /** Return the key / current position in the container
-     *
-     * @return int The current position
-     */
-    public function key()
-    {
-        return $this->position;
-    }
-
-    /** Move forward to next item in the container
-     *
-     */
-    public function next()
-    {
-        $this->position++;
-    }
-
-    /** Checks if current position is valid
-     *
-     * @return bool True if the current position is valid
-     */
-    public function valid()
-    {
-        return $this->hasProperty('rdf:_'.$this->position);
-    }
-
-    /** Counts the number of items in the container
-     *
-     * Note that this is an slow method - it is more efficient to use
-     * the iterator interface, if you can.
-     *
-     * @return integer The number of items in the container
-     */
-    public function count()
-    {
-        $pos = 1;
-        while ($this->hasProperty('rdf:_'.$pos)) {
-            $pos++;
-        }
-        return $pos - 1;
-    }
-
-    /** Append an item to the end of the container
-     *
-     * @param  mixed $value      The value to append
-     * @return integer           The number of values appended (1 or 0)
-     */
-    public function append($value)
-    {
-        // Find the end of the list
-        $pos = 1;
-        while ($this->hasProperty('rdf:_'.$pos)) {
-            $pos++;
-        }
-
-        // Add the item
-        return $this->add('rdf:_'.$pos, $value);
-    }
-
-    /** Array Access: check if a position exists in container using array syntax
-     *
-     * Example: isset($seq[2])
-     */
-    public function offsetExists($offset)
-    {
-        if (is_int($offset) and $offset > 0) {
-            return $this->hasProperty('rdf:_'.$offset);
-        } else {
-            throw new InvalidArgumentException(
-                "Container position must be a positive integer"
-            );
-        }
-    }
-
-    /** Array Access: get an item at a specified position in container using array syntax
-     *
-     * Example: $item = $seq[2];
-     */
-    public function offsetGet($offset)
-    {
-        if (is_int($offset) and $offset > 0) {
-            return $this->get('rdf:_'.$offset);
-        } else {
-            throw new InvalidArgumentException(
-                "Container position must be a positive integer"
-            );
-        }
-    }
-
-    /**
-     * Array Access: set an item at a positon in container using array syntax
-     *
-     * Example: $seq[2] = $item;
-     *
-     * Warning: creating gaps in the sequence will result in unexpected behavior
-     */
-    public function offsetSet($offset, $value)
-    {
-        if (is_int($offset) and $offset > 0) {
-            return $this->set('rdf:_'.$offset, $value);
-        } elseif (is_null($offset)) {
-            return $this->append($value);
-        } else {
-            throw new InvalidArgumentException(
-                "Container position must be a positive integer"
-            );
-        }
-    }
-
-    /**
-     * Array Access: delete an item at a specific postion using array syntax
-     *
-     * Example: unset($seq[2]);
-     *
-     * Warning: creating gaps in the sequence will result in unexpected behavior
-     */
-    public function offsetUnset($offset)
-    {
-        if (is_int($offset) and $offset > 0) {
-            return $this->delete('rdf:_'.$offset);
-        } else {
-            throw new InvalidArgumentException(
-                "Container position must be a positive integer"
-            );
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Exception.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Exception.php
deleted file mode 100644
index 25090a5..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Exception.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * EasyRdf Exception class
- *
- * All exceptions thrown by EasyRdf are an instance of this class.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Exception extends Exception
-{
-    // Comment to make PHP CodeSniffer happy
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Format.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Format.php
deleted file mode 100644
index d6eb670..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Format.php
+++ /dev/null
@@ -1,699 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class the represents an RDF file format.
- *
- * For each format, the name, label, URIs and associated MIME Types are
- * stored. A single parser and serialiser can also be registered to each
- * format.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Format
-{
-    private static $formats = array();
-
-    private $name = array();
-    private $label = null;
-    private $uri = null;
-    private $mimeTypes = array();
-    private $extensions = array();
-    private $parserClass = null;
-    private $serialiserClass = null;
-
-    /** Get a list of format names
-     *
-     * @return array          An array of formats name
-     */
-    public static function getNames()
-    {
-        return array_keys(self::$formats);
-    }
-
-    /** Get a list of all the registered formats
-     *
-     * @return array          An array of format objects
-     */
-    public static function getFormats()
-    {
-        return self::$formats;
-    }
-
-    /** Generates an HTTP Accept header string
-     *
-     * The string will contain all of the MIME Types that we
-     * are able to parse.
-     *
-     * It is also possible to specify additional MIME types
-     * in the form array('text/plain' => 0.5) where 0.5 is the
-     * q value for that type. The types are sorted by q value
-     * before constructing the string.
-     *
-     * @param array $extraTypes    extra MIME types to add
-     * @return string              list of supported MIME types
-     */
-    public static function getHttpAcceptHeader($extraTypes = array())
-    {
-        $accept = $extraTypes;
-        foreach (self::$formats as $format) {
-            if ($format->parserClass and count($format->mimeTypes) > 0) {
-                $accept = array_merge($accept, $format->mimeTypes);
-            }
-        }
-        arsort($accept, SORT_NUMERIC);
-
-        $acceptStr='';
-        foreach ($accept as $type => $q) {
-            if ($acceptStr) {
-                $acceptStr .= ',';
-            }
-            if ($q == 1.0) {
-                $acceptStr .= $type;
-            } else {
-                $acceptStr .= sprintf("%s;q=%1.1F", $type, $q);
-            }
-        }
-        return $acceptStr;
-    }
-
-    /** Check if a named graph exists
-     *
-     * @param string $name    the name of the format
-     * @return boolean        true if the format exists
-     */
-    public static function formatExists($name)
-    {
-        return array_key_exists($name, self::$formats);
-    }
-
-    /** Get a EasyRdf_Format from a name, uri or mime type
-     *
-     * @param string $query   a query string to search for
-     * @return object         the first EasyRdf_Format that matches the query
-     * @throws EasyRdf_Exception  if no format is found
-     */
-    public static function getFormat($query)
-    {
-        if (!is_string($query) or $query == null or $query == '') {
-            throw new InvalidArgumentException(
-                "\$query should be a string and cannot be null or empty"
-            );
-        }
-
-        foreach (self::$formats as $format) {
-            if ($query == $format->name or
-                $query == $format->uri or
-                array_key_exists($query, $format->mimeTypes) or
-                in_array($query, $format->extensions)) {
-                return $format;
-            }
-        }
-
-        # No match
-        throw new EasyRdf_Exception(
-            "Format is not recognised: $query"
-        );
-    }
-
-    /** Register a new format
-     *
-     * @param  string  $name       The name of the format (e.g. ntriples)
-     * @param  string  $label      The label for the format (e.g. N-Triples)
-     * @param  string  $uri        The URI for the format
-     * @param  string  $mimeTypes  One or more mime types for the format
-     * @param  string  $extensions One or more extensions (file suffix)
-     * @return object              The new EasyRdf_Format object
-     */
-    public static function register(
-        $name,
-        $label = null,
-        $uri = null,
-        $mimeTypes = array(),
-        $extensions = array()
-    ) {
-        if (!is_string($name) or $name == null or $name == '') {
-            throw new InvalidArgumentException(
-                "\$name should be a string and cannot be null or empty"
-            );
-        }
-
-        if (!array_key_exists($name, self::$formats)) {
-            self::$formats[$name] = new EasyRdf_Format($name);
-        }
-
-        self::$formats[$name]->setLabel($label);
-        self::$formats[$name]->setUri($uri);
-        self::$formats[$name]->setMimeTypes($mimeTypes);
-        self::$formats[$name]->setExtensions($extensions);
-        return self::$formats[$name];
-    }
-
-    /** Remove a format from the registry
-     *
-     * @param  string  $name      The name of the format (e.g. ntriples)
-     */
-    public static function unregister($name)
-    {
-        unset(self::$formats[$name]);
-    }
-
-    /** Class method to register a parser class to a format name
-     *
-     * @param  string  $name   The name of the format (e.g. ntriples)
-     * @param  string  $class  The name of the class (e.g. EasyRdf_Parser_Ntriples)
-     */
-    public static function registerParser($name, $class)
-    {
-        if (!self::formatExists($name)) {
-            self::register($name);
-        }
-        self::getFormat($name)->setParserClass($class);
-    }
-
-    /** Class method to register a serialiser class to a format name
-     *
-     * @param  string  $name   The name of the format (e.g. ntriples)
-     * @param  string  $class  The name of the class (e.g. EasyRdf_Serialiser_Ntriples)
-     */
-    public static function registerSerialiser($name, $class)
-    {
-        if (!self::formatExists($name)) {
-            self::register($name);
-        }
-        self::getFormat($name)->setSerialiserClass($class);
-    }
-
-    /** Attempt to guess the document format from some content.
-     *
-     * If $filename is given, then the suffix is first used to guess the format.
-     *
-     * If the document format is not recognised, null is returned.
-     *
-     * @param  string $data     The document data
-     * @param  string $filename Optional filename
-     * @return object EasyRdf_Format The format object
-     */
-    public static function guessFormat($data, $filename = null)
-    {
-        if (is_array($data)) {
-            # Data has already been parsed into RDF/PHP
-            return self::getFormat('php');
-        }
-
-        // First try and identify by the filename
-        if ($filename and preg_match('/\.(\w+)$/', $filename, $matches)) {
-            foreach (self::$formats as $format) {
-                if (in_array($matches[1], $format->extensions)) {
-                    return $format;
-                }
-            }
-        }
-
-        // Then try and guess by the first 1024 bytes of content
-        $short = substr($data, 0, 1024);
-        if (preg_match('/^\s*\{/', $short)) {
-            return self::getFormat('json');
-        } elseif (preg_match('/<rdf:/i', $short)) {
-            return self::getFormat('rdfxml');
-        } elseif (preg_match('|http://www.w3.org/2005/sparql-results|', $short)) {
-            return self::getFormat('sparql-xml');
-        } elseif (preg_match('/\WRDFa\W/i', $short)) {
-            return self::getFormat('rdfa');
-        } elseif (preg_match('/<!DOCTYPE html|<html/i', $short)) {
-            # We don't support any other microformats embedded in HTML
-            return self::getFormat('rdfa');
-        } elseif (preg_match('/@prefix\s|@base\s/', $short)) {
-            return self::getFormat('turtle');
-        } elseif (preg_match('/^\s*<.+> <.+>/m', $short)) {
-            return self::getFormat('ntriples');
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * This constructor is for internal use only.
-     * To create a new format, use the register method.
-     *
-     * @param  string  $name    The name of the format
-     * @see    EasyRdf_Format::register()
-     * @ignore
-     */
-    public function __construct($name)
-    {
-        $this->name = $name;
-        $this->label = $name;  # Only a default
-    }
-
-    /** Get the name of a format object
-     *
-     * @return string The name of the format (e.g. rdfxml)
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /** Get the label for a format object
-     *
-     * @return string The format label (e.g. RDF/XML)
-     */
-    public function getLabel()
-    {
-        return $this->label;
-    }
-
-    /** Set the label for a format object
-     *
-     * @param  string $label  The new label for the format
-     */
-    public function setLabel($label)
-    {
-        if ($label) {
-            if (!is_string($label)) {
-                throw new InvalidArgumentException(
-                    "\$label should be a string"
-                );
-            }
-            return $this->label = $label;
-        } else {
-            return $this->label = null;
-        }
-    }
-
-    /** Get the URI for a format object
-     *
-     * @return string The format URI
-     */
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    /** Set the URI for a format object
-     *
-     * @param string $uri  The new URI for the format
-     */
-    public function setUri($uri)
-    {
-        if ($uri) {
-            if (!is_string($uri)) {
-                throw new InvalidArgumentException(
-                    "\$uri should be a string"
-                );
-            }
-            return $this->uri = $uri;
-        } else {
-            return $this->uri = null;
-        }
-    }
-
-    /** Get the default registered mime type for a format object
-     *
-     * @return string The default mime type as a string.
-     */
-    public function getDefaultMimeType()
-    {
-        $types = array_keys($this->mimeTypes);
-        if (isset($types[0])) {
-            return $types[0];
-        }
-    }
-
-    /** Get all the registered mime types for a format object
-     *
-     * @return array One or more MIME types in an array with
-     *               the mime type as the key and q value as the value
-     */
-    public function getMimeTypes()
-    {
-        return $this->mimeTypes;
-    }
-
-    /** Set the MIME Types for a format object
-     *
-     * @param array $mimeTypes  One or more mime types
-     */
-    public function setMimeTypes($mimeTypes)
-    {
-        if ($mimeTypes) {
-            if (!is_array($mimeTypes)) {
-                $mimeTypes = array($mimeTypes);
-            }
-            $this->mimeTypes = $mimeTypes;
-        } else {
-            $this->mimeTypes = array();
-        }
-    }
-
-    /** Get the default registered file extension (filename suffix) for a format object
-     *
-     * @return string The default extension as a string.
-     */
-    public function getDefaultExtension()
-    {
-        if (isset($this->extensions[0])) {
-            return $this->extensions[0];
-        }
-    }
-
-    /** Get all the registered file extensions (filename suffix) for a format object
-     *
-     * @return array One or more extensions as an array
-     */
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    /** Set the file format extensions (filename suffix) for a format object
-     *
-     * @param mixed $extensions  One or more file extensions
-     */
-    public function setExtensions($extensions)
-    {
-        if ($extensions) {
-            if (!is_array($extensions)) {
-                $extensions = array($extensions);
-            }
-            $this->extensions = $extensions;
-        } else {
-            $this->extensions = array();
-        }
-    }
-
-    /** Set the parser to use for a format
-     *
-     * @param string $class  The name of the class
-     */
-    public function setParserClass($class)
-    {
-        if ($class) {
-            if (!is_string($class)) {
-                throw new InvalidArgumentException(
-                    "\$class should be a string"
-                );
-            }
-            $this->parserClass = $class;
-        } else {
-            $this->parserClass = null;
-        }
-    }
-
-    /** Get the name of the class to use to parse the format
-     *
-     * @return string The name of the class
-     */
-    public function getParserClass()
-    {
-        return $this->parserClass;
-    }
-
-    /** Create a new parser to parse this format
-     *
-     * @return object The new parser object
-     */
-    public function newParser()
-    {
-        $parserClass = $this->parserClass;
-        if (!$parserClass) {
-            throw new EasyRdf_Exception(
-                "No parser class available for format: ".$this->getName()
-            );
-        }
-        return (new $parserClass());
-    }
-
-    /** Set the serialiser to use for a format
-     *
-     * @param string $class  The name of the class
-     */
-    public function setSerialiserClass($class)
-    {
-        if ($class) {
-            if (!is_string($class)) {
-                throw new InvalidArgumentException(
-                    "\$class should be a string"
-                );
-            }
-            $this->serialiserClass = $class;
-        } else {
-            $this->serialiserClass = null;
-        }
-    }
-
-    /** Get the name of the class to use to serialise the format
-     *
-     * @return string The name of the class
-     */
-    public function getSerialiserClass()
-    {
-        return $this->serialiserClass;
-    }
-
-    /** Create a new serialiser to parse this format
-     *
-     * @return object The new serialiser object
-     */
-    public function newSerialiser()
-    {
-        $serialiserClass = $this->serialiserClass;
-        if (!$serialiserClass) {
-            throw new EasyRdf_Exception(
-                "No serialiser class available for format: ".$this->getName()
-            );
-        }
-        return (new $serialiserClass());
-    }
-
-    /** Magic method to return the name of the format when casted to string
-     *
-     * @return string The name of the format
-     */
-    public function __toString()
-    {
-        return $this->name;
-    }
-}
-
-
-/*
-   Register default set of supported formats
-   NOTE: they are ordered by preference
-*/
-
-EasyRdf_Format::register(
-    'php',
-    'RDF/PHP',
-    'http://n2.talis.com/wiki/RDF_PHP_Specification',
-    array(
-        'application/x-httpd-php-source' => 1.0
-    ),
-    array('phps')
-);
-
-EasyRdf_Format::register(
-    'json',
-    'RDF/JSON Resource-Centric',
-    'http://n2.talis.com/wiki/RDF_JSON_Specification',
-    array(
-        'application/json' => 1.0,
-        'text/json' => 0.9,
-        'application/rdf+json' => 0.9
-    ),
-    array('json')
-);
-
-EasyRdf_Format::register(
-    'jsonld',
-    'JSON-LD',
-    'http://www.w3.org/TR/json-ld/',
-    array(
-        'application/ld+json' => 1.0
-    ),
-    array('jsonld')
-);
-
-EasyRdf_Format::register(
-    'ntriples',
-    'N-Triples',
-    'http://www.w3.org/TR/n-triples/',
-    array(
-        'application/n-triples' => 1.0,
-        'text/plain' => 0.9,
-        'text/ntriples' => 0.9,
-        'application/ntriples' => 0.9,
-        'application/x-ntriples' => 0.9
-    ),
-    array('nt')
-);
-
-EasyRdf_Format::register(
-    'turtle',
-    'Turtle Terse RDF Triple Language',
-    'http://www.dajobe.org/2004/01/turtle',
-    array(
-        'text/turtle' => 0.8,
-        'application/turtle' => 0.7,
-        'application/x-turtle' => 0.7
-    ),
-    array('ttl')
-);
-
-EasyRdf_Format::register(
-    'rdfxml',
-    'RDF/XML',
-    'http://www.w3.org/TR/rdf-syntax-grammar',
-    array(
-        'application/rdf+xml' => 0.8
-    ),
-    array('rdf', 'xrdf')
-);
-
-EasyRdf_Format::register(
-    'dot',
-    'Graphviz',
-    'http://www.graphviz.org/doc/info/lang.html',
-    array(
-        'text/vnd.graphviz' => 0.8
-    ),
-    array('gv', 'dot')
-);
-
-EasyRdf_Format::register(
-    'json-triples',
-    'RDF/JSON Triples'
-);
-
-EasyRdf_Format::register(
-    'n3',
-    'Notation3',
-    'http://www.w3.org/2000/10/swap/grammar/n3#',
-    array(
-        'text/n3' => 0.5,
-        'text/rdf+n3' => 0.5
-    ),
-    array('n3')
-);
-
-EasyRdf_Format::register(
-    'rdfa',
-    'RDFa',
-    'http://www.w3.org/TR/rdfa-core/',
-    array(
-        'text/html' => 0.4,
-        'application/xhtml+xml' => 0.4
-    ),
-    array('html')
-);
-
-EasyRdf_Format::register(
-    'sparql-xml',
-    'SPARQL XML Query Results',
-    'http://www.w3.org/TR/rdf-sparql-XMLres/',
-    array(
-        'application/sparql-results+xml' => 1.0
-    )
-);
-
-EasyRdf_Format::register(
-    'sparql-json',
-    'SPARQL JSON Query Results',
-    'http://www.w3.org/TR/rdf-sparql-json-res/',
-    array(
-        'application/sparql-results+json' => 1.0
-    )
-);
-
-EasyRdf_Format::register(
-    'png',
-    'Portable Network Graphics (PNG)',
-    'http://www.w3.org/TR/PNG/',
-    array(
-        'image/png' => 0.3
-    ),
-    array('png')
-);
-
-EasyRdf_Format::register(
-    'gif',
-    'Graphics Interchange Format (GIF)',
-    'http://www.w3.org/Graphics/GIF/spec-gif89a.txt',
-    array(
-        'image/gif' => 0.2
-    ),
-    array('gif')
-);
-
-EasyRdf_Format::register(
-    'svg',
-    'Scalable Vector Graphics (SVG)',
-    'http://www.w3.org/TR/SVG/',
-    array(
-        'image/svg+xml' => 0.3
-    ),
-    array('svg')
-);
-
-
-/*
-   Register default set of parsers and serialisers
-*/
-
-EasyRdf_Format::registerParser('json', 'EasyRdf_Parser_Json');
-EasyRdf_Format::registerParser('jsonld', 'EasyRdf_Parser_JsonLd');
-EasyRdf_Format::registerParser('ntriples', 'EasyRdf_Parser_Ntriples');
-EasyRdf_Format::registerParser('php', 'EasyRdf_Parser_RdfPhp');
-EasyRdf_Format::registerParser('rdfxml', 'EasyRdf_Parser_RdfXml');
-EasyRdf_Format::registerParser('turtle', 'EasyRdf_Parser_Turtle');
-EasyRdf_Format::registerParser('rdfa', 'EasyRdf_Parser_Rdfa');
-
-EasyRdf_Format::registerSerialiser('json', 'EasyRdf_Serialiser_Json');
-EasyRdf_Format::registerSerialiser('jsonld', 'EasyRdf_Serialiser_JsonLd');
-EasyRdf_Format::registerSerialiser('n3', 'EasyRdf_Serialiser_Turtle');
-EasyRdf_Format::registerSerialiser('ntriples', 'EasyRdf_Serialiser_Ntriples');
-EasyRdf_Format::registerSerialiser('php', 'EasyRdf_Serialiser_RdfPhp');
-EasyRdf_Format::registerSerialiser('rdfxml', 'EasyRdf_Serialiser_RdfXml');
-EasyRdf_Format::registerSerialiser('turtle', 'EasyRdf_Serialiser_Turtle');
-
-EasyRdf_Format::registerSerialiser('dot', 'EasyRdf_Serialiser_GraphViz');
-EasyRdf_Format::registerSerialiser('gif', 'EasyRdf_Serialiser_GraphViz');
-EasyRdf_Format::registerSerialiser('png', 'EasyRdf_Serialiser_GraphViz');
-EasyRdf_Format::registerSerialiser('svg', 'EasyRdf_Serialiser_GraphViz');
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Graph.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Graph.php
deleted file mode 100644
index 46ccc17..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Graph.php
+++ /dev/null
@@ -1,1663 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Container for collection of EasyRdf_Resources.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Graph
-{
-    /** The URI of the graph */
-    private $uri = null;
-    private $parsedUri = null;
-
-    /** Array of resources contained in the graph */
-    private $resources = array();
-
-    private $index = array();
-    private $revIndex = array();
-
-    /** Counter for the number of bnodes */
-    private $bNodeCount = 0;
-
-    /** Array of URLs that have been loaded into the graph */
-    private $loaded = array();
-
-    private $maxRedirects = 10;
-
-
-    /**
-     * Constructor
-     *
-     * If no URI is given then an unnamed graph is created.
-     *
-     * The $data parameter is optional and will be parsed into
-     * the graph if given.
-     *
-     * The data format is optional and should be specified if it
-     * can't be guessed by EasyRdf.
-     *
-     * @param  string  $uri     The URI of the graph
-     * @param  string  $data    Data for the graph
-     * @param  string  $format  The document type of the data (e.g. rdfxml)
-     * @return object EasyRdf_Graph
-     */
-    public function __construct($uri = null, $data = null, $format = null)
-    {
-        $this->checkResourceParam($uri, true);
-
-        if ($uri) {
-            $this->uri = $uri;
-            $this->parsedUri = new EasyRdf_ParsedUri($uri);
-            if ($data) {
-                $this->parse($data, $format, $this->uri);
-            }
-        }
-    }
-
-    /**
-     * Create a new graph and load RDF data from a URI into it
-     *
-     * This static function is shorthand for:
-     *     $graph = new EasyRdf_Graph($uri);
-     *     $graph->load($uri, $format);
-     *
-     * The document type is optional but should be specified if it
-     * can't be guessed or got from the HTTP headers.
-     *
-     * @param  string  $uri     The URI of the data to load
-     * @param  string  $format  Optional format of the data (eg. rdfxml)
-     * @return object EasyRdf_Graph    The new the graph object
-     */
-    public static function newAndLoad($uri, $format = null)
-    {
-        $graph = new self($uri);
-        $graph->load($uri, $format);
-        return $graph;
-    }
-
-    /** Get or create a resource stored in a graph
-     *
-     * If the resource did not previously exist, then a new resource will
-     * be created. If you provide an RDF type and that type is registered
-     * with the EasyRdf_TypeMapper, then the resource will be an instance
-     * of the class registered.
-     *
-     * If URI is null, then the URI of the graph is used.
-     *
-     * @param  string  $uri    The URI of the resource
-     * @param  mixed   $types  RDF type of a new resource (e.g. foaf:Person)
-     * @return object EasyRdf_Resource
-     */
-    public function resource($uri = null, $types = array())
-    {
-        $this->checkResourceParam($uri, true);
-        if (!$uri) {
-            throw new InvalidArgumentException(
-                '$uri is null and EasyRdf_Graph object has no URI either.'
-            );
-        }
-
-        // Resolve relative URIs
-        if ($this->parsedUri) {
-            $uri = $this->parsedUri->resolve($uri)->toString();
-        }
-
-        // Add the types
-        $this->addType($uri, $types);
-
-        // Create resource object if it doesn't already exist
-        if (!isset($this->resources[$uri])) {
-            $resClass = $this->classForResource($uri);
-            $this->resources[$uri] = new $resClass($uri, $this);
-        }
-
-        return $this->resources[$uri];
-    }
-
-    /** Work out the class to instantiate a resource as
-     *  @ignore
-     */
-    protected function classForResource($uri)
-    {
-        $rdfType = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type';
-        if (isset($this->index[$uri][$rdfType])) {
-            foreach ($this->index[$uri][$rdfType] as $type) {
-                if ($type['type'] == 'uri' or $type['type'] == 'bnode') {
-                    $class = EasyRdf_TypeMapper::get($type['value']);
-                    if ($class != null) {
-                        return $class;
-                    }
-                }
-            }
-        }
-
-        // Parsers don't typically add a rdf:type to rdf:List, so we have to
-        // do a bit of 'inference' here using properties.
-        if ($uri == 'http://www.w3.org/1999/02/22-rdf-syntax-ns#nil' or
-            isset($this->index[$uri]['http://www.w3.org/1999/02/22-rdf-syntax-ns#first']) or
-            isset($this->index[$uri]['http://www.w3.org/1999/02/22-rdf-syntax-ns#rest'])
-        ) {
-            return 'EasyRdf_Collection';
-        }
-        return 'EasyRdf_Resource';
-    }
-
-    /**
-     * Create a new blank node in the graph and return it.
-     *
-     * If you provide an RDF type and that type is registered
-     * with the EasyRdf_TypeMapper, then the resource will be an instance
-     * of the class registered.
-     *
-     * @param  mixed  $types  RDF type of a new blank node (e.g. foaf:Person)
-     * @return object EasyRdf_Resource The new blank node
-     */
-    public function newBNode($types = array())
-    {
-        return $this->resource($this->newBNodeId(), $types);
-    }
-
-    /**
-     * Create a new unique blank node identifier and return it.
-     *
-     * @return string The new blank node identifier (e.g. _:genid1)
-     */
-    public function newBNodeId()
-    {
-        return "_:genid".(++$this->bNodeCount);
-    }
-
-    /**
-     * Parse some RDF data into the graph object.
-     *
-     * @param  string  $data    Data to parse for the graph
-     * @param  string  $format  Optional format of the data
-     * @param  string  $uri     The URI of the data to load
-     * @return integer          The number of triples added to the graph
-     */
-    public function parse($data, $format = null, $uri = null)
-    {
-        $this->checkResourceParam($uri, true);
-
-        if (empty($format) or $format == 'guess') {
-            // Guess the format if it is Unknown
-            $format = EasyRdf_Format::guessFormat($data, $uri);
-        } else {
-            $format = EasyRdf_Format::getFormat($format);
-        }
-
-        if (!$format) {
-            throw new EasyRdf_Exception(
-                "Unable to parse data of an unknown format."
-            );
-        }
-
-        $parser = $format->newParser();
-        return $parser->parse($this, $data, $format, $uri);
-    }
-
-    /**
-     * Parse a file containing RDF data into the graph object.
-     *
-     * @param  string  $filename The path of the file to load
-     * @param  string  $format   Optional format of the file
-     * @param  string  $uri      The URI of the file to load
-     * @return integer           The number of triples added to the graph
-     */
-    public function parseFile($filename, $format = null, $uri = null)
-    {
-        if ($uri === null) {
-            $uri = "file://$filename";
-        }
-
-        return $this->parse(
-            file_get_contents($filename),
-            $format,
-            $uri
-        );
-    }
-
-    /**
-     * Load RDF data into the graph from a URI.
-     *
-     * If no URI is given, then the URI of the graph will be used.
-     *
-     * The document type is optional but should be specified if it
-     * can't be guessed or got from the HTTP headers.
-     *
-     * @param  string  $uri     The URI of the data to load
-     * @param  string  $format  Optional format of the data (eg. rdfxml)
-     * @return integer          The number of triples added to the graph
-     */
-    public function load($uri = null, $format = null)
-    {
-        $this->checkResourceParam($uri, true);
-
-        if (!$uri) {
-            throw new EasyRdf_Exception(
-                "No URI given to load() and the graph does not have a URI."
-            );
-        }
-
-        // Setup the HTTP client
-        $client = EasyRdf_Http::getDefaultHttpClient();
-        $client->resetParameters(true);
-        $client->setConfig(array('maxredirects' => 0));
-        $client->setMethod('GET');
-        $client->setHeaders('Accept', EasyRdf_Format::getHttpAcceptHeader());
-
-        $requestUrl = $uri;
-        $response = null;
-        $redirectCounter = 0;
-        do {
-            // Have we already loaded it into the graph?
-            $requestUrl = EasyRdf_Utils::removeFragmentFromUri($requestUrl);
-            if (in_array($requestUrl, $this->loaded)) {
-                return 0;
-            }
-
-            // Make the HTTP request
-            $client->setHeaders('host', null);
-            $client->setUri($requestUrl);
-            $response = $client->request();
-
-            // Add the URL to the list of URLs loaded
-            $this->loaded[] = $requestUrl;
-
-            if ($response->isRedirect() and $location = $response->getHeader('location')) {
-                // Avoid problems with buggy servers that add whitespace
-                $location = trim($location);
-
-                // Some servers return relative URLs in the location header
-                // resolve it in relation to previous request
-                $baseUri = new EasyRdf_ParsedUri($requestUrl);
-                $requestUrl = $baseUri->resolve($location)->toString();
-                $requestUrl = EasyRdf_Utils::removeFragmentFromUri($requestUrl);
-
-                // If it is a 303 then drop the parameters
-                if ($response->getStatus() == 303) {
-                    $client->resetParameters();
-                }
-
-                ++$redirectCounter;
-            } elseif ($response->isSuccessful()) {
-                // If we didn't get any location, stop redirecting
-                break;
-            } else {
-                throw new EasyRdf_Http_Exception(
-                    "HTTP request for {$requestUrl} failed: ".$response->getMessage(),
-                    $response->getStatus(),
-                    null,
-                    $response->getBody()
-                );
-            }
-        } while ($redirectCounter < $this->maxRedirects);
-
-        if (!$format or $format == 'guess') {
-            list($format, $params) = EasyRdf_Utils::parseMimeType(
-                $response->getHeader('Content-Type')
-            );
-        }
-
-        // Parse the data
-        return $this->parse($response->getBody(), $format, $uri);
-    }
-
-    /** Get an associative array of all the resources stored in the graph.
-     *  The keys of the array is the URI of the EasyRdf_Resource.
-     *
-     * @return array Array of EasyRdf_Resource
-     */
-    public function resources()
-    {
-        foreach ($this->index as $subject => $properties) {
-            if (!isset($this->resources[$subject])) {
-                $this->resource($subject);
-            }
-        }
-
-        foreach ($this->revIndex as $object => $properties) {
-            if (!isset($this->resources[$object])) {
-                $this->resource($object);
-            }
-        }
-
-        return $this->resources;
-    }
-
-    /** Get an arry of resources matching a certain property and optional value.
-     *
-     * For example this routine could be used as a way of getting
-     * everyone who has name:
-     * $people = $graph->resourcesMatching('foaf:name')
-     *
-     * Or everyone who is male:
-     * $people = $graph->resourcesMatching('foaf:gender', 'male');
-     *
-     * Or all homepages:
-     * $people = $graph->resourcesMatching('^foaf:homepage');
-     *
-     * @param  string  $property   The property to check.
-     * @param  mixed   $value      Optional, the value of the propery to check for.
-     * @return array   Array of EasyRdf_Resource
-     */
-    public function resourcesMatching($property, $value = null)
-    {
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkValueParam($value);
-
-        // Use the reverse index if it is an inverse property
-        if ($inverse) {
-            $index = &$this->revIndex;
-        } else {
-            $index = &$this->index;
-        }
-
-        $matched = array();
-        foreach ($index as $subject => $props) {
-            if (isset($index[$subject][$property])) {
-                if (isset($value)) {
-                    foreach ($this->index[$subject][$property] as $v) {
-                        if ($v['type'] == $value['type'] and
-                            $v['value'] == $value['value']) {
-                            $matched[] = $this->resource($subject);
-                            break;
-                        }
-                    }
-                } else {
-                    $matched[] = $this->resource($subject);
-                }
-            }
-        }
-        return $matched;
-    }
-
-    /** Get the URI of the graph
-     *
-     * @return string The URI of the graph
-     */
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    /** Check that a URI/resource parameter is valid, and convert it to a string
-     *  @ignore
-     */
-    protected function checkResourceParam(&$resource, $allowNull = false)
-    {
-        if ($allowNull == true) {
-            if ($resource === null) {
-                if ($this->uri) {
-                    $resource = $this->uri;
-                } else {
-                    return;
-                }
-            }
-        } elseif ($resource === null) {
-            throw new InvalidArgumentException(
-                "\$resource should be either IRI, blank-node identifier or EasyRdf_Resource. got null"
-            );
-        }
-
-        if (is_object($resource) and $resource instanceof EasyRdf_Resource) {
-            $resource = $resource->getUri();
-        } elseif (is_object($resource) and $resource instanceof EasyRdf_ParsedUri) {
-            $resource = strval($resource);
-        } elseif (is_string($resource)) {
-            if ($resource == '') {
-                throw new InvalidArgumentException(
-                    "\$resource should be either IRI, blank-node identifier or EasyRdf_Resource. got empty string"
-                );
-            } elseif (preg_match("|^<(.+)>$|", $resource, $matches)) {
-                $resource = $matches[1];
-            } else {
-                $resource = EasyRdf_Namespace::expand($resource);
-            }
-        } else {
-            throw new InvalidArgumentException(
-                "\$resource should be either IRI, blank-node identifier or EasyRdf_Resource"
-            );
-        }
-    }
-
-    /** Check that a single URI/property parameter (not a property path)
-     *  is valid, and expand it if required
-     *  @ignore
-     */
-    protected function checkSinglePropertyParam(&$property, &$inverse)
-    {
-        if (is_object($property) and $property instanceof EasyRdf_Resource) {
-            $property = $property->getUri();
-        } elseif (is_object($property) and $property instanceof EasyRdf_ParsedUri) {
-            $property = strval($property);
-        } elseif (is_string($property)) {
-            if ($property == '') {
-                throw new InvalidArgumentException(
-                    "\$property cannot be an empty string"
-                );
-            } elseif (substr($property, 0, 1) == '^') {
-                $inverse = true;
-                $property = EasyRdf_Namespace::expand(substr($property, 1));
-            } elseif (substr($property, 0, 2) == '_:') {
-                throw new InvalidArgumentException(
-                    "\$property cannot be a blank node"
-                );
-            } else {
-                $inverse = false;
-                $property = EasyRdf_Namespace::expand($property);
-            }
-        }
-
-        if ($property === null or !is_string($property)) {
-            throw new InvalidArgumentException(
-                "\$property should be a string or EasyRdf_Resource and cannot be null"
-            );
-        }
-    }
-
-    /** Check that a value parameter is valid, and convert it to an associative array if needed
-     *  @ignore
-     */
-    protected function checkValueParam(&$value)
-    {
-        if (isset($value)) {
-            if (is_object($value)) {
-                if (!method_exists($value, 'toRdfPhp')) {
-                    // Convert to a literal object
-                    $value = EasyRdf_Literal::create($value);
-                }
-                $value = $value->toRdfPhp();
-            } elseif (is_array($value)) {
-                if (!isset($value['type'])) {
-                    throw new InvalidArgumentException(
-                        "\$value is missing a 'type' key"
-                    );
-                }
-
-                if (!isset($value['value'])) {
-                    throw new InvalidArgumentException(
-                        "\$value is missing a 'value' key"
-                    );
-                }
-
-                // Fix ordering and remove unknown keys
-                $value = array(
-                    'type' => strval($value['type']),
-                    'value' => strval($value['value']),
-                    'lang' => isset($value['lang']) ? strval($value['lang']) : null,
-                    'datatype' => isset($value['datatype']) ? strval($value['datatype']) : null
-                );
-            } else {
-                $value = array(
-                    'type' => 'literal',
-                    'value' => strval($value),
-                    'datatype' => EasyRdf_Literal::getDatatypeForValue($value)
-                );
-            }
-            if (!in_array($value['type'], array('uri', 'bnode', 'literal'), true)) {
-                throw new InvalidArgumentException(
-                    "\$value does not have a valid type (".$value['type'].")"
-                );
-            }
-            if (empty($value['datatype'])) {
-                unset($value['datatype']);
-            }
-            if (empty($value['lang'])) {
-                unset($value['lang']);
-            }
-            if (isset($value['lang']) and isset($value['datatype'])) {
-                throw new InvalidArgumentException(
-                    "\$value cannot have both and language and a datatype"
-                );
-            }
-        }
-    }
-
-    /** Get a single value for a property of a resource
-     *
-     * If multiple values are set for a property then the value returned
-     * may be arbitrary.
-     *
-     * If $property is an array, then the first item in the array that matches
-     * a property that exists is returned.
-     *
-     * This method will return null if the property does not exist.
-     *
-     * @param  string    $resource       The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string    $propertyPath   A valid property path
-     * @param  string    $type           The type of value to filter by (e.g. literal or resource)
-     * @param  string    $lang           The language to filter by (e.g. en)
-     * @return mixed                     A value associated with the property
-     */
-    public function get($resource, $propertyPath, $type = null, $lang = null)
-    {
-        $this->checkResourceParam($resource);
-
-        if (is_object($propertyPath) and $propertyPath instanceof EasyRdf_Resource) {
-            return $this->getSingleProperty($resource, $propertyPath->getUri(), $type, $lang);
-        } elseif (is_string($propertyPath) and preg_match('|^(\^?)<(.+)>|', $propertyPath, $matches)) {
-            return $this->getSingleProperty($resource, "$matches[1]$matches[2]", $type, $lang);
-        } elseif ($propertyPath === null or !is_string($propertyPath)) {
-            throw new InvalidArgumentException(
-                "\$propertyPath should be a string or EasyRdf_Resource and cannot be null"
-            );
-        } elseif ($propertyPath === '') {
-            throw new InvalidArgumentException(
-                "\$propertyPath cannot be an empty string"
-            );
-        }
-
-        // Loop through each component in the path
-        foreach (explode('/', $propertyPath) as $part) {
-            // Stop if we come to a literal
-            if ($resource instanceof EasyRdf_Literal) {
-                return null;
-            }
-
-            // Try each of the alternative paths
-            foreach (explode('|', $part) as $p) {
-                $res = $this->getSingleProperty($resource, $p, $type, $lang);
-                if ($res) {
-                    break;
-                }
-            }
-
-            // Stop if nothing was found
-            $resource = $res;
-            if (!$resource) {
-                break;
-            }
-        }
-
-        return $resource;
-    }
-
-    /** Get a single value for a property of a resource
-     *
-     * @param  string    $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string    $property The name of the property (e.g. foaf:name)
-     * @param  string    $type     The type of value to filter by (e.g. literal or resource)
-     * @param  string    $lang     The language to filter by (e.g. en)
-     * @return mixed               A value associated with the property
-     *
-     * @ignore
-     */
-    protected function getSingleProperty($resource, $property, $type = null, $lang = null)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-
-        // Get an array of values for the property
-        $values = $this->propertyValuesArray($resource, $property, $inverse);
-        if (!isset($values)) {
-            return null;
-        }
-
-        // Filter the results
-        $result = null;
-        if ($type) {
-            foreach ($values as $value) {
-                if ($type == 'literal' and $value['type'] == 'literal') {
-                    if ($lang == null or (isset($value['lang']) and $value['lang'] == $lang)) {
-                        $result = $value;
-                        break;
-                    }
-                } elseif ($type == 'resource') {
-                    if ($value['type'] == 'uri' or $value['type'] == 'bnode') {
-                        $result = $value;
-                        break;
-                    }
-                }
-            }
-        } else {
-            $result = $values[0];
-        }
-
-        // Convert the internal data structure into a PHP object
-        return $this->arrayToObject($result);
-    }
-
-    /** Get a single literal value for a property of a resource
-     *
-     * If multiple values are set for a property then the value returned
-     * may be arbitrary.
-     *
-     * This method will return null if there is not literal value for the
-     * property.
-     *
-     * @param  string       $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string|array $property The name of the property (e.g. foaf:name)
-     * @param  string       $lang     The language to filter by (e.g. en)
-     * @return object EasyRdf_Literal Literal value associated with the property
-     */
-    public function getLiteral($resource, $property, $lang = null)
-    {
-        return $this->get($resource, $property, 'literal', $lang);
-    }
-
-    /** Get a single resource value for a property of a resource
-     *
-     * If multiple values are set for a property then the value returned
-     * may be arbitrary.
-     *
-     * This method will return null if there is not resource for the
-     * property.
-     *
-     * @param  string       $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string|array $property The name of the property (e.g. foaf:name)
-     * @return object EasyRdf_Resource Resource associated with the property
-     */
-    public function getResource($resource, $property)
-    {
-        return $this->get($resource, $property, 'resource');
-    }
-
-    /** Return all the values for a particular property of a resource
-     *  @ignore
-     */
-    protected function propertyValuesArray($resource, $property, $inverse = false)
-    {
-        // Is an inverse property being requested?
-        if ($inverse) {
-            if (isset($this->revIndex[$resource])) {
-                $properties = &$this->revIndex[$resource];
-            }
-        } else {
-            if (isset($this->index[$resource])) {
-                $properties = &$this->index[$resource];
-            }
-        }
-
-        if (isset($properties[$property])) {
-            return $properties[$property];
-        } else {
-            return null;
-        }
-    }
-
-    /** Get an EasyRdf_Resource or EasyRdf_Literal object from an associative array.
-     *  @ignore
-     */
-    protected function arrayToObject($data)
-    {
-        if ($data) {
-            if ($data['type'] == 'uri' or $data['type'] == 'bnode') {
-                return $this->resource($data['value']);
-            } else {
-                return EasyRdf_Literal::create($data);
-            }
-        } else {
-            return null;
-        }
-    }
-
-    /** Get all values for a property path
-     *
-     * This method will return an empty array if the property does not exist.
-     *
-     * @param  string  $resource      The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string  $propertyPath  A valid property path
-     * @param  string  $type          The type of value to filter by (e.g. literal)
-     * @param  string  $lang          The language to filter by (e.g. en)
-     * @return array                  An array of values associated with the property
-     */
-    public function all($resource, $propertyPath, $type = null, $lang = null)
-    {
-        $this->checkResourceParam($resource);
-
-        if (is_object($propertyPath) and $propertyPath instanceof EasyRdf_Resource) {
-            return $this->allForSingleProperty($resource, $propertyPath->getUri(), $type, $lang);
-        } elseif (is_string($propertyPath) and preg_match('|^(\^?)<(.+)>|', $propertyPath, $matches)) {
-            return $this->allForSingleProperty($resource, "$matches[1]$matches[2]", $type, $lang);
-        } elseif ($propertyPath === null or !is_string($propertyPath)) {
-            throw new InvalidArgumentException(
-                "\$propertyPath should be a string or EasyRdf_Resource and cannot be null"
-            );
-        } elseif ($propertyPath === '') {
-            throw new InvalidArgumentException(
-                "\$propertyPath cannot be an empty string"
-            );
-        }
-
-        $objects = array($resource);
-
-        // Loop through each component in the path
-        foreach (explode('/', $propertyPath) as $part) {
-
-            $results = array();
-            foreach (explode('|', $part) as $p) {
-                foreach ($objects as $o) {
-                    // Ignore literals found earlier in path
-                    if ($o instanceof EasyRdf_Literal) {
-                        continue;
-                    }
-
-                    $results = array_merge(
-                        $results,
-                        $this->allForSingleProperty($o, $p, $type, $lang)
-                    );
-                }
-            }
-
-            // Stop if we don't have anything
-            if (empty($objects)) {
-                break;
-            }
-
-            // Use the results as the input to the next iteration
-            $objects = $results;
-        }
-
-        return $results;
-    }
-
-    /** Get all values for a single property of a resource
-     *
-     * @param  string  $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $type     The type of value to filter by (e.g. literal)
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return array             An array of values associated with the property
-     *
-     * @ignore
-     */
-    protected function allForSingleProperty($resource, $property, $type = null, $lang = null)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-
-        // Get an array of values for the property
-        $values = $this->propertyValuesArray($resource, $property, $inverse);
-        if (!isset($values)) {
-            return array();
-        }
-
-        $objects = array();
-        if ($type) {
-            foreach ($values as $value) {
-                if ($type == 'literal' and $value['type'] == 'literal') {
-                    if ($lang == null or (isset($value['lang']) and $value['lang'] == $lang)) {
-                        $objects[] = $this->arrayToObject($value);
-                    }
-                } elseif ($type == 'resource') {
-                    if ($value['type'] == 'uri' or $value['type'] == 'bnode') {
-                        $objects[] = $this->arrayToObject($value);
-                    }
-                }
-            }
-        } else {
-            foreach ($values as $value) {
-                $objects[] = $this->arrayToObject($value);
-            }
-        }
-        return $objects;
-    }
-
-    /** Get all literal values for a property of a resource
-     *
-     * This method will return an empty array if the resource does not
-     * has any literal values for that property.
-     *
-     * @param  string  $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return array             An array of values associated with the property
-     */
-    public function allLiterals($resource, $property, $lang = null)
-    {
-        return $this->all($resource, $property, 'literal', $lang);
-    }
-
-    /** Get all resources for a property of a resource
-     *
-     * This method will return an empty array if the resource does not
-     * has any resources for that property.
-     *
-     * @param  string  $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @return array             An array of values associated with the property
-     */
-    public function allResources($resource, $property)
-    {
-        return $this->all($resource, $property, 'resource');
-    }
-
-    /** Get all the resources in the graph of a certain type
-     *
-     * If no resources of the type are available and empty
-     * array is returned.
-     *
-     * @param  string  $type   The type of the resource (e.g. foaf:Person)
-     * @return array The array of resources
-     */
-    public function allOfType($type)
-    {
-        return $this->all($type, '^rdf:type');
-    }
-
-    /** Count the number of values for a property of a resource
-     *
-     * @param  string  $resource The URI of the resource (e.g. http://example.com/joe#me)
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $type     The type of value to filter by (e.g. literal)
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return integer           The number of values for this property
-     */
-    public function countValues($resource, $property, $type = null, $lang = null)
-    {
-        return count($this->all($resource, $property, $type, $lang));
-    }
-
-    /** Concatenate all values for a property of a resource into a string.
-     *
-     * The default is to join the values together with a space character.
-     * This method will return an empty string if the property does not exist.
-     *
-     * @param  mixed   $resource The resource to get the property on
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $glue     The string to glue the values together with.
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return string            Concatenation of all the values.
-     */
-    public function join($resource, $property, $glue = ' ', $lang = null)
-    {
-        return join($glue, $this->all($resource, $property, 'literal', $lang));
-    }
-
-    /** Add data to the graph
-     *
-     * The resource can either be a resource or the URI of a resource.
-     *
-     * Example:
-     *   $graph->add("http://www.example.com", 'dc:title', 'Title of Page');
-     *
-     * @param  mixed $resource   The resource to add data to
-     * @param  mixed $property   The property name
-     * @param  mixed $value      The new value for the property
-     * @return integer           The number of values added (1 or 0)
-     */
-    public function add($resource, $property, $value)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkValueParam($value);
-
-        // No value given?
-        if ($value === null) {
-            return 0;
-        }
-
-        // Check that the value doesn't already exist
-        if (isset($this->index[$resource][$property])) {
-            foreach ($this->index[$resource][$property] as $v) {
-                if ($v == $value) {
-                    return 0;
-                }
-            }
-        }
-        $this->index[$resource][$property][] = $value;
-
-        // Add to the reverse index if it is a resource
-        if ($value['type'] == 'uri' or $value['type'] == 'bnode') {
-            $uri = $value['value'];
-            $this->revIndex[$uri][$property][] = array(
-                'type' => substr($resource, 0, 2) == '_:' ? 'bnode' : 'uri',
-                'value' => $resource
-            );
-        }
-
-        // Success
-        return 1;
-    }
-
-    /** Add a literal value as a property of a resource
-     *
-     * The resource can either be a resource or the URI of a resource.
-     * The value can either be a single value or an array of values.
-     *
-     * Example:
-     *   $graph->add("http://www.example.com", 'dc:title', 'Title of Page');
-     *
-     * @param  mixed  $resource  The resource to add data to
-     * @param  mixed  $property  The property name
-     * @param  mixed  $value     The value or values for the property
-     * @param  string $lang      The language of the literal
-     * @return integer           The number of values added
-     */
-    public function addLiteral($resource, $property, $value, $lang = null)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-
-        if (is_array($value)) {
-            $added = 0;
-            foreach ($value as $v) {
-                $added += $this->addLiteral($resource, $property, $v, $lang);
-            }
-            return $added;
-        } elseif (!is_object($value) or !$value instanceof EasyRdf_Literal) {
-            $value = EasyRdf_Literal::create($value, $lang);
-        }
-        return $this->add($resource, $property, $value);
-    }
-
-    /** Add a resource as a property of another resource
-     *
-     * The resource can either be a resource or the URI of a resource.
-     *
-     * Example:
-     *   $graph->add("http://example.com/bob", 'foaf:knows', 'http://example.com/alice');
-     *
-     * @param  mixed $resource   The resource to add data to
-     * @param  mixed $property   The property name
-     * @param  mixed $resource2  The resource to be value of the property
-     * @return integer           The number of values added
-     */
-    public function addResource($resource, $property, $resource2)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkResourceParam($resource2);
-
-        return $this->add(
-            $resource,
-            $property,
-            array(
-                'type' => substr($resource2, 0, 2) == '_:' ? 'bnode' : 'uri',
-                'value' => $resource2
-            )
-        );
-    }
-
-    /** Set a value for a property
-     *
-     * The new value will replace the existing values for the property.
-     *
-     * @param  string  $resource The resource to set the property on
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  mixed   $value    The value for the property
-     * @return integer           The number of values added (1 or 0)
-     */
-    public function set($resource, $property, $value)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkValueParam($value);
-
-        // Delete the old values
-        $this->delete($resource, $property);
-
-        // Add the new values
-        return $this->add($resource, $property, $value);
-    }
-
-    /** Delete a property (or optionally just a specific value)
-     *
-     * @param  mixed   $resource The resource to delete the property from
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  mixed   $value The value to delete (null to delete all values)
-     * @return integer The number of values deleted
-     */
-    public function delete($resource, $property, $value = null)
-    {
-        $this->checkResourceParam($resource);
-
-        if (is_object($property) and $property instanceof EasyRdf_Resource) {
-            return $this->deleteSingleProperty($resource, $property->getUri(), $value);
-        } elseif (is_string($property) and preg_match('|^(\^?)<(.+)>|', $property, $matches)) {
-            return $this->deleteSingleProperty($resource, "$matches[1]$matches[2]", $value);
-        } elseif ($property === null or !is_string($property)) {
-            throw new InvalidArgumentException(
-                "\$property should be a string or EasyRdf_Resource and cannot be null"
-            );
-        } elseif ($property === '') {
-            throw new InvalidArgumentException(
-                "\$property cannot be an empty string"
-            );
-        }
-
-        // FIXME: finish implementing property paths for delete
-        return $this->deleteSingleProperty($resource, $property, $value);
-    }
-
-
-    /** Delete a property (or optionally just a specific value)
-     *
-     * @param  mixed   $resource The resource to delete the property from
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  mixed   $value The value to delete (null to delete all values)
-     * @return integer The number of values deleted
-     *
-     * @ignore
-     */
-    public function deleteSingleProperty($resource, $property, $value = null)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkValueParam($value);
-
-        $count = 0;
-        if (isset($this->index[$resource][$property])) {
-            foreach ($this->index[$resource][$property] as $k => $v) {
-                if (!$value or $v == $value) {
-                    unset($this->index[$resource][$property][$k]);
-                    $count++;
-                    if ($v['type'] == 'uri' or $v['type'] == 'bnode') {
-                        $this->deleteInverse($v['value'], $property, $resource);
-                    }
-                }
-            }
-
-            // Clean up the indexes - remove empty properties and resources
-            if ($count) {
-                if (count($this->index[$resource][$property]) == 0) {
-                    unset($this->index[$resource][$property]);
-                }
-                if (count($this->index[$resource]) == 0) {
-                    unset($this->index[$resource]);
-                }
-            }
-        }
-
-        return $count;
-    }
-
-    /** Delete a resource from a property of another resource
-     *
-     * The resource can either be a resource or the URI of a resource.
-     *
-     * Example:
-     *   $graph->delete("http://example.com/bob", 'foaf:knows', 'http://example.com/alice');
-     *
-     * @param  mixed $resource   The resource to delete data from
-     * @param  mixed $property   The property name
-     * @param  mixed $resource2  The resource value of the property to be deleted
-     */
-    public function deleteResource($resource, $property, $resource2)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkResourceParam($resource2);
-
-        return $this->delete(
-            $resource,
-            $property,
-            array(
-                'type' => substr($resource2, 0, 2) == '_:' ? 'bnode' : 'uri',
-                'value' => $resource2
-            )
-        );
-    }
-
-    /** Delete a literal value from a property of a resource
-     *
-     * Example:
-     *   $graph->delete("http://www.example.com", 'dc:title', 'Title of Page');
-     *
-     * @param  mixed  $resource  The resource to add data to
-     * @param  mixed  $property  The property name
-     * @param  mixed  $value     The value of the property
-     * @param  string $lang      The language of the literal
-     */
-    public function deleteLiteral($resource, $property, $value, $lang = null)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkValueParam($value);
-
-        if ($lang) {
-            $value['lang'] = $lang;
-        }
-
-        return $this->delete($resource, $property, $value);
-    }
-
-    /** This function is for internal use only.
-     *
-     * Deletes an inverse property from a resource.
-     *
-     * @ignore
-     */
-    protected function deleteInverse($resource, $property, $value)
-    {
-        if (isset($this->revIndex[$resource])) {
-            foreach ($this->revIndex[$resource][$property] as $k => $v) {
-                if ($v['value'] === $value) {
-                    unset($this->revIndex[$resource][$property][$k]);
-                }
-            }
-            if (count($this->revIndex[$resource][$property]) == 0) {
-                unset($this->revIndex[$resource][$property]);
-            }
-            if (count($this->revIndex[$resource]) == 0) {
-                unset($this->revIndex[$resource]);
-            }
-        }
-    }
-
-    /** Check if the graph contains any statements
-     *
-     * @return boolean True if the graph contains no statements
-     */
-    public function isEmpty()
-    {
-        return count($this->index) == 0;
-    }
-
-    /** Get a list of all the shortened property names (qnames) for a resource.
-     *
-     * This method will return an empty array if the resource has no properties.
-     *
-     * @return array            Array of shortened URIs
-     */
-    public function properties($resource)
-    {
-        $this->checkResourceParam($resource);
-
-        $properties = array();
-        if (isset($this->index[$resource])) {
-            foreach ($this->index[$resource] as $property => $value) {
-                $short = EasyRdf_Namespace::shorten($property);
-                if ($short) {
-                    $properties[] = $short;
-                }
-            }
-        }
-        return $properties;
-    }
-
-    /** Get a list of the full URIs for the properties of a resource.
-     *
-     * This method will return an empty array if the resource has no properties.
-     *
-     * @return array            Array of full URIs
-     */
-    public function propertyUris($resource)
-    {
-        $this->checkResourceParam($resource);
-
-        if (isset($this->index[$resource])) {
-            return array_keys($this->index[$resource]);
-        } else {
-            return array();
-        }
-    }
-
-    /** Get a list of the full URIs for the properties that point to a resource.
-     *
-     * @return array   Array of full property URIs
-     */
-    public function reversePropertyUris($resource)
-    {
-        $this->checkResourceParam($resource);
-
-        if (isset($this->revIndex[$resource])) {
-            return array_keys($this->revIndex[$resource]);
-        } else {
-            return array();
-        }
-    }
-
-    /** Check to see if a property exists for a resource.
-     *
-     * This method will return true if the property exists.
-     * If the value parameter is given, then it will only return true
-     * if the value also exists for that property.
-     *
-     * By providing a value parameter you can use this function to check
-     * to see if a triple exists in the graph.
-     *
-     * @param  mixed   $resource The resource to check
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  mixed   $value    An optional value of the property
-     * @return boolean           True if value the property exists.
-     */
-    public function hasProperty($resource, $property, $value = null)
-    {
-        $this->checkResourceParam($resource);
-        $this->checkSinglePropertyParam($property, $inverse);
-        $this->checkValueParam($value);
-
-        // Use the reverse index if it is an inverse property
-        if ($inverse) {
-            $index = &$this->revIndex;
-        } else {
-            $index = &$this->index;
-        }
-
-        if (isset($index[$resource][$property])) {
-            if (is_null($value)) {
-                return true;
-            } else {
-                foreach ($index[$resource][$property] as $v) {
-                    if ($v == $value) {
-                        return true;
-                    }
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /** Serialise the graph into RDF
-     *
-     * The $format parameter can be an EasyRdf_Format object, a
-     * format name, a mime type or a file extension.
-     *
-     * Example:
-     *   $turtle = $graph->serialise('turtle');
-     *
-     * @param  mixed $format  The format to serialise to
-     * @param  array $options Serialiser-specific options, for fine-tuning the output
-     * @return mixed  The serialised graph
-     */
-    public function serialise($format, array $options = array())
-    {
-        if (!$format instanceof EasyRdf_Format) {
-            $format = EasyRdf_Format::getFormat($format);
-        }
-        $serialiser = $format->newSerialiser();
-        return $serialiser->serialise($this, $format->getName(), $options);
-    }
-
-    /** Return a human readable view of all the resources in the graph
-     *
-     * This method is intended to be a debugging aid and will
-     * return a pretty-print view of all the resources and their
-     * properties.
-     *
-     * @param  string  $format  Either 'html' or 'text'
-     * @return string
-     */
-    public function dump($format = 'html')
-    {
-        $result = '';
-        if ($format == 'html') {
-            $result .= "<div style='font-family:arial; font-weight: bold; padding:0.5em; ".
-                   "color: black; background-color:lightgrey;border:dashed 1px grey;'>".
-                   "Graph: ". $this->uri . "</div>\n";
-        } else {
-            $result .= "Graph: ". $this->uri . "\n";
-        }
-
-        foreach ($this->index as $resource => $properties) {
-            $result .= $this->dumpResource($resource, $format);
-        }
-        return $result;
-    }
-
-    /** Return a human readable view of a resource and its properties
-     *
-     * This method is intended to be a debugging aid and will
-     * print a resource and its properties.
-     *
-     * @param  mixed    $resource  The resource to dump
-     * @param  string   $format    Either 'html' or 'text'
-     * @return string
-     */
-    public function dumpResource($resource, $format = 'html')
-    {
-        $this->checkResourceParam($resource, true);
-
-        if (isset($this->index[$resource])) {
-            $properties = $this->index[$resource];
-        } else {
-            return '';
-        }
-
-        $plist = array();
-        foreach ($properties as $property => $values) {
-            $olist = array();
-            foreach ($values as $value) {
-                if ($value['type'] == 'literal') {
-                    $olist []= EasyRdf_Utils::dumpLiteralValue($value, $format, 'black');
-                } else {
-                    $olist []= EasyRdf_Utils::dumpResourceValue($value['value'], $format, 'blue');
-                }
-            }
-
-            $pstr = EasyRdf_Namespace::shorten($property);
-            if ($pstr == null) {
-                $pstr = $property;
-            }
-            if ($format == 'html') {
-                $plist []= "<span style='font-size:130%'>&rarr;</span> ".
-                           "<span style='text-decoration:none;color:green'>".
-                           htmlentities($pstr) . "</span> ".
-                           "<span style='font-size:130%'>&rarr;</span> ".
-                           join(", ", $olist);
-            } else {
-                $plist []= "  -> $pstr -> " . join(", ", $olist);
-            }
-        }
-
-        if ($format == 'html') {
-            return "<div id='".htmlentities($resource, ENT_QUOTES)."' " .
-                   "style='font-family:arial; padding:0.5em; ".
-                   "background-color:lightgrey;border:dashed 1px grey;'>\n".
-                   "<div>".EasyRdf_Utils::dumpResourceValue($resource, $format, 'blue')." ".
-                   "<span style='font-size: 0.8em'>(".
-                   $this->classForResource($resource).")</span></div>\n".
-                   "<div style='padding-left: 3em'>\n".
-                   "<div>".join("</div>\n<div>", $plist)."</div>".
-                   "</div></div>\n";
-        } else {
-            return $resource." (".$this->classForResource($resource).")\n" .
-                   join("\n", $plist) . "\n\n";
-        }
-    }
-
-    /** Get the resource type of the graph
-     *
-     * The type will be a shortened URI as a string.
-     * If the graph has multiple types then the type returned
-     * may be arbitrary.
-     * This method will return null if the resource has no type.
-     *
-     * @return string A type assocated with the resource (e.g. foaf:Document)
-     */
-    public function type($resource = null)
-    {
-        $type = $this->typeAsResource($resource);
-
-        if ($type) {
-            return EasyRdf_Namespace::shorten($type);
-        }
-
-        return null;
-    }
-
-    /** Get the resource type of the graph as a EasyRdf_Resource
-     *
-     * If the graph has multiple types then the type returned
-     * may be arbitrary.
-     * This method will return null if the resource has no type.
-     *
-     * @return object EasyRdf_Resource  A type assocated with the resource
-     */
-    public function typeAsResource($resource = null)
-    {
-        $this->checkResourceParam($resource, true);
-
-        if ($resource) {
-            return $this->get($resource, 'rdf:type', 'resource');
-        }
-
-        return null;
-    }
-
-    /** Get a list of types for a resource
-     *
-     * The types will each be a shortened URI as a string.
-     * This method will return an empty array if the resource has no types.
-     *
-     * If $resource is null, then it will get the types for the URI of the graph.
-     *
-     * @return array All types assocated with the resource (e.g. foaf:Person)
-     */
-    public function types($resource = null)
-    {
-        $resources = $this->typesAsResources($resource);
-
-        $types = array();
-        foreach ($resources as $type) {
-            $types[] = EasyRdf_Namespace::shorten($type);
-        }
-
-        return $types;
-    }
-
-    /**
-     * Get the resource types of the graph as a EasyRdf_Resource
-     *
-     * @return EasyRdf_Resource[]
-     */
-    public function typesAsResources($resource = null)
-    {
-        $this->checkResourceParam($resource, true);
-
-        if ($resource) {
-            return $this->all($resource, 'rdf:type', 'resource');
-        }
-
-        return array();
-    }
-
-    /** Check if a resource is of the specified type
-     *
-     * @param  string  $resource The resource to check the type of
-     * @param  string  $type     The type to check (e.g. foaf:Person)
-     * @return boolean           True if resource is of specified type
-     */
-    public function isA($resource, $type)
-    {
-        $this->checkResourceParam($resource, true);
-
-        $type = EasyRdf_Namespace::expand($type);
-        foreach ($this->all($resource, 'rdf:type', 'resource') as $t) {
-            if ($t->getUri() == $type) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /** Add one or more rdf:type properties to a resource
-     *
-     * @param  string  $resource The resource to add the type to
-     * @param  string  $types    One or more types to add (e.g. foaf:Person)
-     * @return integer           The number of types added
-     */
-    public function addType($resource, $types)
-    {
-        $this->checkResourceParam($resource, true);
-
-        if (!is_array($types)) {
-            $types = array($types);
-        }
-
-        $count = 0;
-        foreach ($types as $type) {
-            $type = EasyRdf_Namespace::expand($type);
-            $count += $this->add($resource, 'rdf:type', array('type' => 'uri', 'value' => $type));
-        }
-
-        return $count;
-    }
-
-    /** Change the rdf:type property for a resource
-     *
-     * Note that if the resource object has already previously
-     * been created, then the PHP class of the resource will not change.
-     *
-     * @param  string  $resource The resource to change the type of
-     * @param  string  $type     The new type (e.g. foaf:Person)
-     * @return integer           The number of types added
-     */
-    public function setType($resource, $type)
-    {
-        $this->checkResourceParam($resource, true);
-
-        $this->delete($resource, 'rdf:type');
-        return $this->addType($resource, $type);
-    }
-
-    /** Get a human readable label for a resource
-     *
-     * This method will check a number of properties for a resource
-     * (in the order: skos:prefLabel, rdfs:label, foaf:name, dc:title)
-     * and return an approriate first that is available. If no label
-     * is available then it will return null.
-     *
-     * @return string A label for the resource.
-     */
-    public function label($resource = null, $lang = null)
-    {
-        $this->checkResourceParam($resource, true);
-
-        if ($resource) {
-            return $this->get(
-                $resource,
-                'skos:prefLabel|rdfs:label|foaf:name|rss:title|dc:title|dc11:title',
-                'literal',
-                $lang
-            );
-        } else {
-            return null;
-        }
-    }
-
-    /** Get the primary topic of the graph
-     *
-     * @return EasyRdf_Resource The primary topic of the document.
-     */
-    public function primaryTopic($resource = null)
-    {
-        $this->checkResourceParam($resource, true);
-
-        if ($resource) {
-            return $this->get(
-                $resource,
-                'foaf:primaryTopic|^foaf:isPrimaryTopicOf',
-                'resource'
-            );
-        } else {
-            return null;
-        }
-    }
-
-    /** Returns the graph as a RDF/PHP associative array
-     *
-     * @return array The contents of the graph as an array.
-     */
-    public function toRdfPhp()
-    {
-        return $this->index;
-    }
-
-    /** Calculates the number of triples in the graph
-     *
-     * @return integer The number of triples in the graph.
-     */
-    public function countTriples()
-    {
-        $count = 0;
-        foreach ($this->index as $resource) {
-            foreach ($resource as $property => $values) {
-                $count += count($values);
-            }
-        }
-        return $count;
-    }
-
-    /** Magic method to return URI of resource when casted to string
-     *
-     * @return string The URI of the resource
-     */
-    public function __toString()
-    {
-        return $this->uri == null ? '' : $this->uri;
-    }
-
-    /** Magic method to get a property of the graph
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   $value = $graph->title;
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param  string $name The name of the property
-     * @return string       A single value for the named property
-     */
-    public function __get($name)
-    {
-        return $this->get($this->uri, $name);
-    }
-
-    /** Magic method to set the value for a property of the graph
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   $graph->title = 'Title';
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param  string $name The name of the property
-     * @param  string $value The value for the property
-     */
-    public function __set($name, $value)
-    {
-        return $this->set($this->uri, $name, $value);
-    }
-
-    /** Magic method to check if a property exists
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   if (isset($graph->title)) { blah(); }
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param string $name The name of the property
-     */
-    public function __isset($name)
-    {
-        return $this->hasProperty($this->uri, $name);
-    }
-
-    /** Magic method to delete a property of the graph
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   unset($graph->title);
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param string $name The name of the property
-     */
-    public function __unset($name)
-    {
-        return $this->delete($this->uri, $name);
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/GraphStore.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/GraphStore.php
deleted file mode 100644
index 40cbf63..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/GraphStore.php
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * A class for fetching, saving and deleting graphs to a Graph Store.
- * Implementation of the SPARQL 1.1 Graph Store HTTP Protocol.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_GraphStore
-{
-    /**
-     * Use to reference default graph of triplestore
-     */
-    const DEFAULT_GRAPH = 'urn:easyrdf:default-graph';
-
-    /** The address of the GraphStore endpoint */
-    private $uri = null;
-    private $parsedUri = null;
-
-
-    /** Create a new SPARQL Graph Store client
-     *
-     * @param string $uri The address of the graph store endpoint
-     */
-    public function __construct($uri)
-    {
-        $this->uri = $uri;
-        $this->parsedUri = new EasyRdf_ParsedUri($uri);
-    }
-
-    /** Get the URI of the graph store
-     *
-     * @return string The URI of the graph store
-     */
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    /** Fetch a named graph from the graph store
-     *
-     * The URI can either be a full absolute URI or
-     * a URI relative to the URI of the graph store.
-     *
-     * @param string $uriRef The URI of graph desired
-     * @return EasyRdf_Graph The graph requested
-     */
-    public function get($uriRef)
-    {
-        if ($uriRef === self::DEFAULT_GRAPH) {
-            $dataUrl = $this->urlForGraph(self::DEFAULT_GRAPH);
-            $graph = new EasyRdf_Graph();
-        } else {
-            $graphUri = $this->parsedUri->resolve($uriRef)->toString();
-            $dataUrl = $this->urlForGraph($graphUri);
-
-            $graph = new EasyRdf_Graph($graphUri);
-        }
-
-        $graph->load($dataUrl);
-
-        return $graph;
-    }
-
-    /**
-     * Fetch default graph from the graph store
-     * @return EasyRdf_Graph
-     */
-    public function getDefault()
-    {
-        return $this->get(self::DEFAULT_GRAPH);
-    }
-
-    /** Send some graph data to the graph store
-     *
-     * This method is used by insert() and replace()
-     *
-     * @ignore
-     */
-    protected function sendGraph($method, $graph, $uriRef, $format)
-    {
-        if (is_object($graph) and $graph instanceof EasyRdf_Graph) {
-            if ($uriRef === null) {
-                $uriRef = $graph->getUri();
-            }
-            $data = $graph->serialise($format);
-        } else {
-            $data = $graph;
-        }
-
-        if ($uriRef === null) {
-            throw new InvalidArgumentException('Graph IRI is not specified');
-        }
-
-        $formatObj = EasyRdf_Format::getFormat($format);
-        $mimeType = $formatObj->getDefaultMimeType();
-
-        if ($uriRef === self::DEFAULT_GRAPH) {
-            $dataUrl = $this->urlForGraph(self::DEFAULT_GRAPH);
-        } else {
-            $graphUri = $this->parsedUri->resolve($uriRef)->toString();
-            $dataUrl = $this->urlForGraph($graphUri);
-        }
-
-        $client = EasyRdf_Http::getDefaultHttpClient();
-        $client->resetParameters(true);
-        $client->setUri($dataUrl);
-        $client->setMethod($method);
-        $client->setRawData($data);
-        $client->setHeaders('Content-Type', $mimeType);
-
-        $response = $client->request();
-
-        if (!$response->isSuccessful()) {
-            throw new EasyRdf_Exception(
-                "HTTP request for {$dataUrl} failed: ".$response->getMessage()
-            );
-        }
-
-        return $response;
-    }
-
-    /** Replace the contents of a graph in the graph store with new data
-     *
-     * The $graph parameter is the EasyRdf_Graph object to be sent to the
-     * graph store. Alternatively it can be a string, already serialised.
-     *
-     * The URI can either be a full absolute URI or
-     * a URI relative to the URI of the graph store.
-     *
-     * The $format parameter can be given to specify the serialisation
-     * used to send the graph data to the graph store.
-     *
-     * @param EasyRdf_Graph|string $graph  Data
-     * @param string               $uriRef The URI of graph to be replaced
-     * @param string               $format The format of the data to send to the graph store
-     * @return EasyRdf_Http_Response The response from the graph store
-     */
-    public function replace($graph, $uriRef = null, $format = 'ntriples')
-    {
-        return $this->sendGraph('PUT', $graph, $uriRef, $format);
-    }
-
-    /**
-     * Replace the contents of default graph in the graph store with new data
-     *
-     * The $graph parameter is the EasyRdf_Graph object to be sent to the
-     * graph store. Alternatively it can be a string, already serialised.
-     *
-     * The $format parameter can be given to specify the serialisation
-     * used to send the graph data to the graph store.
-     *
-     * @param EasyRdf_Graph|string $graph  Data
-     * @param string               $format The format of the data to send to the graph store
-     * @return EasyRdf_Http_Response The response from the graph store
-     */
-    public function replaceDefault($graph, $format = 'ntriples')
-    {
-        return self::replace($graph, self::DEFAULT_GRAPH, $format);
-    }
-
-    /** Add data to a graph in the graph store
-     *
-     * The $graph parameter is the EasyRdf_Graph object to be sent to the
-     * graph store. Alternatively it can be a string, already serialised.
-     *
-     * The URI can either be a full absolute URI or
-     * a URI relative to the URI of the graph store.
-     *
-     * The $format parameter can be given to specify the serialisation
-     * used to send the graph data to the graph store.
-     *
-     * @param EasyRdf_Graph|string $graph  Data
-     * @param string               $uriRef The URI of graph to be added to
-     * @param string               $format The format of the data to send to the graph store
-     * @return object EasyRdf_Http_Response The response from the graph store
-     */
-    public function insert($graph, $uriRef = null, $format = 'ntriples')
-    {
-        return $this->sendGraph('POST', $graph, $uriRef, $format);
-    }
-
-    /**
-     * Add data to default graph of the graph store
-     *
-     * The $graph parameter is the EasyRdf_Graph object to be sent to the
-     * graph store. Alternatively it can be a string, already serialised.
-     *
-     * The $format parameter can be given to specify the serialisation
-     * used to send the graph data to the graph store.
-     *
-     * @param EasyRdf_Graph|string $graph  Data
-     * @param string               $format The format of the data to send to the graph store
-     * @return object EasyRdf_Http_Response The response from the graph store
-     */
-    public function insertIntoDefault($graph, $format = 'ntriples')
-    {
-        return $this->insert($graph, self::DEFAULT_GRAPH, $format);
-    }
-
-    /** Delete named graph content from the graph store
-     *
-     * The URI can either be a full absolute URI or
-     * a URI relative to the URI of the graph store.
-     *
-     * @param string $uriRef The URI of graph to be added to
-     *
-     * @throws EasyRdf_Exception
-     * @return EasyRdf_Http_Response The response from the graph store
-     */
-    public function delete($uriRef)
-    {
-        if ($uriRef === self::DEFAULT_GRAPH) {
-            $dataUrl = $this->urlForGraph(self::DEFAULT_GRAPH);
-        } else {
-            $graphUri = $this->parsedUri->resolve($uriRef)->toString();
-            $dataUrl = $this->urlForGraph($graphUri);
-        }
-
-        $client = EasyRdf_Http::getDefaultHttpClient();
-        $client->resetParameters(true);
-        $client->setUri($dataUrl);
-        $client->setMethod('DELETE');
-        $response = $client->request();
-
-        if (!$response->isSuccessful()) {
-            throw new EasyRdf_Exception(
-                "HTTP request to delete {$dataUrl} failed: ".$response->getMessage()
-            );
-        }
-
-        return $response;
-    }
-
-    /**
-     * Delete default graph content from the graph store
-     *
-     * @return EasyRdf_Http_Response
-     * @throws EasyRdf_Exception
-     */
-    public function deleteDefault()
-    {
-        return $this->delete(self::DEFAULT_GRAPH);
-    }
-
-    /** Work out the full URL for a graph store request.
-     *  by checking if if it is a direct or indirect request.
-     *  @ignore
-     */
-    protected function urlForGraph($url)
-    {
-        if ($url === self::DEFAULT_GRAPH) {
-            $url = $this->uri.'?default';
-        } elseif (strpos($url, $this->uri) === false) {
-            $url = $this->uri."?graph=".urlencode($url);
-        }
-
-        return $url;
-    }
-
-    /** Magic method to return URI of the graph store when casted to string
-     *
-     * @return string The URI of the graph store
-     */
-    public function __toString()
-    {
-        return empty($this->uri) ? '' : $this->uri;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http.php
deleted file mode 100644
index c978463..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-
-/**
- * Static class to set the HTTP client used by EasyRdf
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Http
-{
-    /** The default HTTP Client object */
-    private static $defaultHttpClient = null;
-
-    /** Set the HTTP Client object used to fetch RDF data
-     *
-     * @param  EasyRdf_Http_Client|Zend_Http_Client $httpClient The new HTTP client object
-     * @return EasyRdf_Http_Client|Zend_Http_Client The new HTTP client object
-     */
-    public static function setDefaultHttpClient($httpClient)
-    {
-        if (!is_object($httpClient) or
-            !($httpClient instanceof Zend_Http_Client or
-              $httpClient instanceof EasyRdf_Http_Client)) {
-            throw new InvalidArgumentException(
-                "\$httpClient should be an object of class Zend_Http_Client or EasyRdf_Http_Client"
-            );
-        }
-        return self::$defaultHttpClient = $httpClient;
-    }
-
-    /** Get the HTTP Client object used to fetch RDF data
-     *
-     * If no HTTP Client has previously been set, then a new
-     * default (EasyRdf_Http_Client) client will be created.
-     *
-     * @return EasyRdf_Http_Client|Zend_Http_Client The HTTP client object
-     */
-    public static function getDefaultHttpClient()
-    {
-        if (!isset(self::$defaultHttpClient)) {
-            self::$defaultHttpClient = new EasyRdf_Http_Client();
-        }
-        return self::$defaultHttpClient;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Client.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Client.php
deleted file mode 100644
index f6b4be8..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Client.php
+++ /dev/null
@@ -1,551 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- * Copyright (c) 2005-2009 Zend Technologies USA Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- *             Copyright (c) 2005-2009 Zend Technologies USA Inc.
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * This class is an implemetation of an HTTP client in PHP.
- * It supports basic HTTP 1.0 and 1.1 requests. For a more complete
- * implementation try Zend_Http_Client.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Http_Client
-{
-    /**
-     * Configuration array, set using the constructor or using ::setConfig()
-     *
-     * @var array
-     */
-    private $config = array(
-        'maxredirects'    => 5,
-        'useragent'       => 'EasyRdf_Http_Client',
-        'timeout'         => 10
-    );
-
-    /**
-     * Request URI
-     *
-     * @var string
-     */
-    private $uri = null;
-
-    /**
-     * Associative array of request headers
-     *
-     * @var array
-     */
-    private $headers = array();
-
-    /**
-     * HTTP request method
-     *
-     * @var string
-     */
-    private $method = 'GET';
-
-    /**
-     * Associative array of GET parameters
-     *
-     * @var array
-     */
-    private $paramsGet = array();
-
-    /**
-     * The raw post data to send. Could be set by setRawData($data).
-     *
-     * @var string
-     */
-    private $rawPostData = null;
-
-    /**
-     * Redirection counter
-     *
-     * @var int
-     */
-    private $redirectCounter = 0;
-
-    /**
-     * Constructor method. Will create a new HTTP client. Accepts the target
-     * URL and optionally configuration array.
-     *
-     * @param string $uri
-     * @param array $config Configuration key-value pairs.
-     */
-    public function __construct($uri = null, $config = null)
-    {
-        if ($uri !== null) {
-            $this->setUri($uri);
-        }
-        if ($config !== null) {
-            $this->setConfig($config);
-        }
-    }
-
-    /**
-     * Set the URI for the next request
-     *
-     * @param  string $uri
-     * @return EasyRdf_Http_Client
-     */
-    public function setUri($uri)
-    {
-        if (!is_string($uri)) {
-            $uri = strval($uri);
-        }
-
-        if (!preg_match('/^http(s?):/', $uri)) {
-            throw new InvalidArgumentException(
-                "EasyRdf_Http_Client only supports the 'http' and 'https' schemes."
-            );
-        }
-
-        $this->uri = $uri;
-
-        return $this;
-    }
-
-    /**
-     * Get the URI for the next request
-     *
-     * @return string
-     */
-    public function getUri($asString = true)
-    {
-        return $this->uri;
-    }
-
-    /**
-     * Set configuration parameters for this HTTP client
-     *
-     * @param  array $config
-     * @return EasyRdf_Http_Client
-     * @throws InvalidArgumentException
-     */
-    public function setConfig($config = array())
-    {
-        if ($config == null or !is_array($config)) {
-            throw new InvalidArgumentException(
-                "\$config should be an array and cannot be null"
-            );
-        }
-
-        foreach ($config as $k => $v) {
-            $this->config[strtolower($k)] = $v;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set a request header
-     *
-     * @param string $name Header name (e.g. 'Accept')
-     * @param string $value Header value or null
-     * @return EasyRdf_Http_Client
-     */
-    public function setHeaders($name, $value = null)
-    {
-        $normalizedName = strtolower($name);
-
-        // If $value is null or false, unset the header
-        if ($value === null || $value === false) {
-            unset($this->headers[$normalizedName]);
-        } else {
-            // Else, set the header
-            $this->headers[$normalizedName] = array($name, $value);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set the next request's method
-     *
-     * Validated the passed method and sets it.
-     *
-     * @param string $method
-     * @return EasyRdf_Http_Client
-     * @throws InvalidArgumentException
-     */
-    public function setMethod($method)
-    {
-        if (!is_string($method) or !preg_match('/^[A-Z]+$/', $method)) {
-            throw new InvalidArgumentException("Invalid HTTP request method.");
-        }
-
-        $this->method = $method;
-
-        return $this;
-    }
-
-    /**
-     * Get the method for the next request
-     *
-     * @return string
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * Get the value of a specific header
-     *
-     * Note that if the header has more than one value, an array
-     * will be returned.
-     *
-     * @param string $key
-     * @return string|array|null The header value or null if it is not set
-     */
-    public function getHeader($key)
-    {
-        $key = strtolower($key);
-        if (isset($this->headers[$key])) {
-            return $this->headers[$key][1];
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Set a GET parameter for the request.
-     *
-     * @param string $name
-     * @param string $value
-     * @return EasyRdf_Http_Client
-     */
-    public function setParameterGet($name, $value = null)
-    {
-        if ($value === null) {
-            if (isset($this->paramsGet[$name])) {
-                unset($this->paramsGet[$name]);
-            }
-        } else {
-            $this->paramsGet[$name] = $value;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Get a GET parameter for the request.
-     *
-     * @param string $name
-     * @return string value
-     */
-    public function getParameterGet($name)
-    {
-        if (isset($this->paramsGet[$name])) {
-            return $this->paramsGet[$name];
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Get all the GET parameters
-     *
-     * @return array
-     */
-    public function getParametersGet()
-    {
-        return $this->paramsGet;
-    }
-
-    /**
-     * Get the number of redirections done on the last request
-     *
-     * @return int
-     */
-    public function getRedirectionsCount()
-    {
-        return $this->redirectCounter;
-    }
-
-    /**
-     * Set the raw (already encoded) POST data.
-     *
-     * This function is here for two reasons:
-     * 1. For advanced user who would like to set their own data, already encoded
-     * 2. For backwards compatibilty: If someone uses the old post($data) method.
-     *    this method will be used to set the encoded data.
-     *
-     * $data can also be stream (such as file) from which the data will be read.
-     *
-     * @param string|resource $data
-     * @return Zend_Http_Client
-     */
-    public function setRawData($data)
-    {
-        $this->rawPostData = $data;
-        return $this;
-    }
-
-    /**
-     * Get the raw (already encoded) POST data.
-     *
-     * @return string
-     */
-    public function getRawData()
-    {
-        return $this->rawPostData;
-    }
-
-    /**
-     * Clear all GET and POST parameters
-     *
-     * Should be used to reset the request parameters if the client is
-     * used for several concurrent requests.
-     *
-     * clearAll parameter controls if we clean just parameters or also
-     * headers
-     *
-     * @param bool $clearAll Should all data be cleared?
-     * @return EasyRdf_Http_Client
-     */
-    public function resetParameters($clearAll = false)
-    {
-        // Reset parameter data
-        $this->paramsGet   = array();
-        $this->rawPostData = null;
-        $this->method      = 'GET';
-
-        if ($clearAll) {
-            $this->headers = array();
-        } else {
-            // Clear outdated headers
-            if (isset($this->headers['content-type'])) {
-                unset($this->headers['content-type']);
-            }
-            if (isset($this->headers['content-length'])) {
-                unset($this->headers['content-length']);
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Send the HTTP request and return an HTTP response object
-     *
-     * @return EasyRdf_Http_Response
-     * @throws EasyRdf_Exception
-     */
-    public function request($method = null)
-    {
-        if (!$this->uri) {
-            throw new EasyRdf_Exception(
-                "Set URI before calling EasyRdf_Http_Client->request()"
-            );
-        }
-
-        if ($method) {
-            $this->setMethod($method);
-        }
-        $this->redirectCounter = 0;
-        $response = null;
-
-        // Send the first request. If redirected, continue.
-        do {
-            // Clone the URI and add the additional GET parameters to it
-            $uri = parse_url($this->uri);
-            if ($uri['scheme'] === 'http') {
-                $host = $uri['host'];
-            } elseif ($uri['scheme'] === 'https') {
-                $host = 'ssl://'.$uri['host'];
-            } else {
-                throw new EasyRdf_Exception(
-                    "Unsupported URI scheme: ".$uri['scheme']
-                );
-            }
-
-            if (isset($uri['port'])) {
-                $port = $uri['port'];
-            } else {
-                if ($uri['scheme'] === 'https') {
-                    $port = 443;
-                } else {
-                    $port = 80;
-                }
-            }
-
-            if (!empty($this->paramsGet)) {
-                if (!empty($uri['query'])) {
-                    $uri['query'] .= '&';
-                } else {
-                    $uri['query'] = '';
-                }
-                $uri['query'] .= http_build_query($this->paramsGet, null, '&');
-            }
-
-            $headers = $this->prepareHeaders($uri['host'], $port);
-
-            // Open socket to remote server
-            $socket = @fsockopen($host, $port, $errno, $errstr, $this->config['timeout']);
-            if (!$socket) {
-                throw new EasyRdf_Exception("Unable to connect to $host:$port ($errstr)");
-            }
-
-            // Write the request
-            $path = $uri['path'];
-            if (empty($path)) {
-                $path = '/';
-            }
-            if (isset($uri['query'])) {
-                $path .= '?' . $uri['query'];
-            }
-            fwrite($socket, "{$this->method} {$path} HTTP/1.1\r\n");
-            foreach ($headers as $k => $v) {
-                if (is_string($k)) {
-                    $v = ucfirst($k) . ": $v";
-                }
-                fwrite($socket, "$v\r\n");
-            }
-            fwrite($socket, "\r\n");
-
-            // Send the request body, if there is one set
-            if (isset($this->rawPostData)) {
-                fwrite($socket, $this->rawPostData);
-            }
-
-            // Read in the response
-            $content = '';
-            while (!feof($socket)) {
-                $content .= fgets($socket);
-            }
-
-            // FIXME: support HTTP/1.1 100 Continue
-
-            // Close the socket
-            @fclose($socket);
-
-            // Parse the response string
-            $response = EasyRdf_Http_Response::fromString($content);
-
-            // If we got redirected, look for the Location header
-            if ($response->isRedirect() &&
-                   ($location = $response->getHeader('location'))
-               ) {
-
-                // Avoid problems with buggy servers that add whitespace at the
-                // end of some headers (See ZF-11283)
-                $location = trim($location);
-
-                // Some servers return relative URLs in the location header
-                // resolve it in relation to previous request
-                $baseUri = new EasyRdf_ParsedUri($this->uri);
-                $location = $baseUri->resolve($location)->toString();
-
-                // If it is a 303 then drop the parameters and send a GET request
-                if ($response->getStatus() == 303) {
-                    $this->resetParameters();
-                    $this->setMethod('GET');
-                }
-
-                // If we got a well formed absolute URI
-                if (parse_url($location)) {
-                    $this->setHeaders('host', null);
-                    $this->setUri($location);
-                } else {
-                    throw new EasyRdf_Exception(
-                        "Failed to parse Location header returned by ".
-                        $this->uri
-                    );
-                }
-                ++$this->redirectCounter;
-
-            } else {
-                // If we didn't get any location, stop redirecting
-                break;
-            }
-
-
-        } while ($this->redirectCounter < $this->config['maxredirects']);
-
-        return $response;
-    }
-
-    /**
-     * Prepare the request headers
-     *
-     * @ignore
-     * @return array
-     */
-    protected function prepareHeaders($host, $port)
-    {
-        $headers = array();
-
-        // Set the host header
-        if (! isset($this->headers['host'])) {
-            // If the port is not default, add it
-            if ($port !== 80 and $port !== 443) {
-                $host .= ':' . $port;
-            }
-            $headers[] = "Host: {$host}";
-        }
-
-        // Set the connection header
-        if (! isset($this->headers['connection'])) {
-            $headers[] = "Connection: close";
-        }
-
-        // Set the user agent header
-        if (! isset($this->headers['user-agent'])) {
-            $headers[] = "User-Agent: {$this->config['useragent']}";
-        }
-
-        // If we have rawPostData set, set the content-length header
-        if (isset($this->rawPostData)) {
-            $headers[] = "Content-Length: ".strlen($this->rawPostData);
-        }
-
-        // Add all other user defined headers
-        foreach ($this->headers as $header) {
-            list($name, $value) = $header;
-            if (is_array($value)) {
-                $value = implode(', ', $value);
-            }
-
-            $headers[] = "$name: $value";
-        }
-
-        return $headers;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Exception.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Exception.php
deleted file mode 100644
index 4e4c073..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Exception.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-
-class EasyRdf_Http_Exception extends EasyRdf_Exception
-{
-    private $body;
-
-    public function __construct($message = "", $code = 0, Exception $previous = null, $body = '')
-    {
-        parent::__construct($message, $code, $previous);
-        $this->body = $body;
-    }
-
-    public function getBody()
-    {
-        return $this->body;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Response.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Response.php
deleted file mode 100644
index 21f986a..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Response.php
+++ /dev/null
@@ -1,360 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.
- * Copyright (c) 2005-2009 Zend Technologies USA Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc.
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an HTTP 1.0 / 1.1 response message.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- *             Copyright (c) 2005-2009 Zend Technologies USA Inc.
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Http_Response
-{
-
-    /**
-     * The HTTP response status code
-     *
-     * @var int
-     */
-    private $status;
-
-    /**
-     * The HTTP response code as string
-     * (e.g. 'Not Found' for 404 or 'Internal Server Error' for 500)
-     *
-     * @var string
-     */
-    private $message;
-
-    /**
-     * The HTTP response headers array
-     *
-     * @var array
-     */
-    private $headers = array();
-
-    /**
-     * The HTTP response body
-     *
-     * @var string
-     */
-    private $body;
-
-    /**
-     * Constructor.
-     *
-     * @param  int     $status HTTP Status code
-     * @param  array   $headers The HTTP response headers
-     * @param  string  $body The content of the response
-     * @param  string  $version The HTTP Version (1.0 or 1.1)
-     * @param  string  $message The HTTP response Message
-     * @return object  EasyRdf_Http_Response
-     */
-    public function __construct(
-        $status,
-        $headers,
-        $body = null,
-        $version = '1.1',
-        $message = null
-    ) {
-        $this->status = intval($status);
-        $this->body = $body;
-        $this->version = $version;
-        $this->message = $message;
-
-        foreach ($headers as $k => $v) {
-            $k = ucwords(strtolower($k));
-            $this->headers[$k] = $v;
-        }
-    }
-
-    /**
-     * Check whether the response in successful
-     *
-     * @return boolean
-     */
-    public function isSuccessful()
-    {
-        return ($this->status >= 200 && $this->status < 300);
-    }
-
-    /**
-     * Check whether the response is an error
-     *
-     * @return boolean
-     */
-    public function isError()
-    {
-        return ($this->status >= 400 && $this->status < 600);
-    }
-
-    /**
-     * Check whether the response is a redirection
-     *
-     * @return boolean
-     */
-    public function isRedirect()
-    {
-        return ($this->status >= 300 && $this->status < 400);
-    }
-
-    /**
-     * Get the HTTP response status code
-     *
-     * @return int
-     */
-    public function getStatus()
-    {
-        return $this->status;
-    }
-
-    /**
-     * Return a message describing the HTTP response code
-     * (Eg. "OK", "Not Found", "Moved Permanently")
-     *
-     * @return string
-     */
-    public function getMessage()
-    {
-        return $this->message;
-    }
-
-    /**
-     * Get the response body as string
-     *
-     * @return string
-     */
-    public function getBody()
-    {
-        // Decode the body if it was transfer-encoded
-        switch (strtolower($this->getHeader('transfer-encoding'))) {
-            // Handle chunked body
-            case 'chunked':
-                return self::decodeChunkedBody($this->body);
-                break;
-
-            // No transfer encoding, or unknown encoding extension:
-            // return body as is
-            default:
-                return $this->body;
-                break;
-        }
-    }
-
-    /**
-     * Get the raw response body (as transfered "on wire") as string
-     *
-     * If the body is encoded (with Transfer-Encoding, not content-encoding -
-     * IE "chunked" body), gzip compressed, etc. it will not be decoded.
-     *
-     * @return string
-     */
-    public function getRawBody()
-    {
-        return $this->body;
-    }
-
-    /**
-     * Get the HTTP version of the response
-     *
-     * @return string
-     */
-    public function getVersion()
-    {
-        return $this->version;
-    }
-
-    /**
-     * Get the response headers
-     *
-     * @return array
-     */
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    /**
-     * Get a specific header as string, or null if it is not set
-     *
-     * @param string$header
-     * @return string|array|null
-     */
-    public function getHeader($header)
-    {
-        $header = ucwords(strtolower($header));
-        if (array_key_exists($header, $this->headers)) {
-            return $this->headers[$header];
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Get all headers as string
-     *
-     * @param boolean $statusLine Whether to return the first status line (ie "HTTP 200 OK")
-     * @param string  $br         Line breaks (eg. "\n", "\r\n", "<br />")
-     * @return string
-     */
-    public function getHeadersAsString($statusLine = true, $br = "\n")
-    {
-        $str = '';
-
-        if ($statusLine) {
-            $str = "HTTP/{$this->version} {$this->status} {$this->message}{$br}";
-        }
-
-        // Iterate over the headers and stringify them
-        foreach ($this->headers as $name => $value) {
-            if (is_string($value)) {
-                $str .= "{$name}: {$value}{$br}";
-            } elseif (is_array($value)) {
-                foreach ($value as $subval) {
-                    $str .= "{$name}: {$subval}{$br}";
-                }
-            }
-        }
-
-        return $str;
-    }
-
-    /**
-     * Create an EasyRdf_Http_Response object from a HTTP response string
-     *
-     * @param string $responseStr
-     * @return EasyRdf_Http_Response
-     */
-    public static function fromString($responseStr)
-    {
-        // First, split body and headers
-        $matches = preg_split('|(?:\r?\n){2}|m', $responseStr, 2);
-        if ($matches and sizeof($matches) == 2) {
-            list ($headerLines, $body) = $matches;
-        } else {
-            throw new EasyRdf_Exception(
-                "Failed to parse HTTP response."
-            );
-        }
-
-        // Split headers part to lines
-        $headerLines = preg_split('|[\r\n]+|m', $headerLines);
-        $status = array_shift($headerLines);
-        if (preg_match("|^HTTP/([\d\.x]+) (\d+) ([^\r\n]+)|", $status, $m)) {
-            $version = $m[1];
-            $status = $m[2];
-            $message = $m[3];
-        } else {
-            throw new EasyRdf_Exception(
-                "Failed to parse HTTP response status line."
-            );
-        }
-
-        // Process the rest of the header lines
-        $headers = array();
-        foreach ($headerLines as $line) {
-            if (preg_match("|^([\w-]+):\s+(.+)$|", $line, $m)) {
-                $hName = ucwords(strtolower($m[1]));
-                $hValue = $m[2];
-
-                if (isset($headers[$hName])) {
-                    if (! is_array($headers[$hName])) {
-                        $headers[$hName] = array($headers[$hName]);
-                    }
-                    $headers[$hName][] = $hValue;
-                } else {
-                    $headers[$hName] = $hValue;
-                }
-            }
-        }
-
-        return new EasyRdf_Http_Response($status, $headers, $body, $version, $message);
-    }
-
-
-    /**
-     * Decode a "chunked" transfer-encoded body and return the decoded text
-     *
-     * @param string $body
-     * @return string
-     */
-    public static function decodeChunkedBody($body)
-    {
-        $decBody = '';
-
-        while (trim($body)) {
-            if (preg_match('/^([\da-fA-F]+)[^\r\n]*\r\n/sm', $body, $m)) {
-                $length = hexdec(trim($m[1]));
-                $cut = strlen($m[0]);
-                $decBody .= substr($body, $cut, $length);
-                $body = substr($body, $cut + $length + 2);
-            } else {
-                throw new EasyRdf_Exception(
-                    "Failed to decode chunked body in HTTP response."
-                );
-            }
-        }
-
-        return $decBody;
-    }
-
-
-    /**
-     * Get the entire response as string
-     *
-     * @param string $br Line breaks (eg. "\n", "\r\n", "<br />")
-     * @return string
-     */
-    public function asString($br = "\n")
-    {
-        return $this->getHeadersAsString(true, $br) . $br . $this->getRawBody();
-    }
-
-    /**
-     * Implements magic __toString()
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->asString();
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Isomorphic.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Isomorphic.php
deleted file mode 100644
index 5b46125..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Isomorphic.php
+++ /dev/null
@@ -1,436 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Functions for comparing two graphs with each other
- *
- * Based on rdf-isomorphic.rb by Ben Lavender:
- * https://github.com/ruby-rdf/rdf-isomorphic
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Isomorphic
-{
-    /**
-     * Check if one graph is isomorphic (equal) to another graph
-     *
-     * For example:
-     *    $graphA = EasyRdf_Graph::newAndLoad('http://example.com/a.ttl');
-     *    $graphB = EasyRdf_Graph::newAndLoad('http://example.com/b.ttl');
-     *    if (EasyRdf_Isomorphic::isomorphic($graphA, $graphB)) print "Equal!";
-     *
-     * @param  object EasyRdf_Graph  $graphA  The first graph to be compared
-     * @param  object EasyRdf_Graph  $graphB  The second graph to be compared
-     * @return boolean True if the two graphs are isomorphic
-     */
-    public static function isomorphic($graphA, $graphB)
-    {
-        return is_array(self::bijectionBetween($graphA, $graphB));
-    }
-
-    /**
-     * Returns an associative array of bnode identifiers representing an isomorphic
-     * bijection of one EasyRdf_Graph to another EasyRdf_Graph's blank nodes or
-     * null if a bijection cannot be found.
-     *
-     * @param  object EasyRdf_Graph  $graphA  The first graph to be compared
-     * @param  object EasyRdf_Graph  $graphB  The second graph to be compared
-     * @return array bnode mapping from $graphA to $graphB
-     */
-    public static function bijectionBetween($graphA, $graphB)
-    {
-        $bnodesA = array();
-        $bnodesB = array();
-        $statementsA = array();
-        $statementsB = array();
-
-        // Quick initial check: are there differing numbers of subjects?
-        if (self::countSubjects($graphA) != self::countSubjects($graphB)) {
-            return null;
-        }
-
-        // Check if all the statements in Graph A exist in Graph B
-        $groundedStatementsMatch = self::groundedStatementsMatch($graphA, $graphB, $bnodesA, $statementsA);
-
-        if ($groundedStatementsMatch) {
-            // Check if all the statements in Graph B exist in Graph A
-            $groundedStatementsMatch = self::groundedStatementsMatch($graphB, $graphA, $bnodesB, $statementsB);
-        }
-
-        if ($groundedStatementsMatch === false) {
-            // The grounded statements do not match
-            return null;
-        } elseif (count($bnodesA) > 0 or count($bnodesB > 0)) {
-            // There are blank nodes - build a bi-jection
-            return self::buildBijectionTo($statementsA, $bnodesA, $statementsB, $bnodesB);
-        } else {
-            // No bnodes and the grounded statements match
-            return array();
-        }
-    }
-
-    /**
-     * Count the number of subjects in a graph
-     * @ignore
-     */
-    private static function countSubjects($graph)
-    {
-        return count($graph->toRdfPhp());
-    }
-
-    /**
-     * Check if all the statements in $graphA also appear in $graphB
-     * @ignore
-     */
-    private static function groundedStatementsMatch($graphA, $graphB, &$bnodes, &$anonStatements)
-    {
-        $groundedStatementsMatch = true;
-
-        foreach ($graphA->toRdfPhp() as $subject => $properties) {
-            if (substr($subject, 0, 2) == '_:') {
-                array_push($bnodes, $subject);
-                $subjectIsBnode = true;
-            } else {
-                $subjectIsBnode = false;
-            }
-
-            foreach ($properties as $property => $values) {
-                foreach ($values as $value) {
-                    if ($value['type'] == 'uri' and substr($value['value'], 0, 2) == '_:') {
-                        array_push($bnodes, $value['value']);
-                        $objectIsBnode = true;
-                    } else {
-                        $objectIsBnode = false;
-                    }
-
-                    if ($groundedStatementsMatch and
-                        $subjectIsBnode === false and
-                        $objectIsBnode === false and
-                        $graphB->hasProperty($subject, $property, $value) === false
-                    ) {
-                        $groundedStatementsMatch = false;
-                    }
-
-                    if ($subjectIsBnode or $objectIsBnode) {
-                        array_push(
-                            $anonStatements,
-                            array(
-                                array('type' => $subjectIsBnode ? 'bnode' : 'uri', 'value' => $subject),
-                                array('type' => 'uri', 'value' => $property),
-                                $value
-                            )
-                        );
-                    }
-                }
-            }
-        }
-
-        return $groundedStatementsMatch;
-    }
-
-    /**
-     * The main recursive bijection algorithm.
-     *
-     * This algorithm is very similar to the one explained by Jeremy Carroll in
-     * http://www.hpl.hp.com/techreports/2001/HPL-2001-293.pdf. Page 12 has the
-     * relevant pseudocode.
-     *
-     * @ignore
-     */
-    private static function buildBijectionTo
-    (
-        $statementsA,
-        $nodesA,
-        $statementsB,
-        $nodesB,
-        $groundedHashesA = array(),
-        $groundedHashesB = array()
-    ) {
-
-        // Create a hash signature of every node, based on the signature of
-        // statements it exists in.
-        // We also save hashes of nodes that cannot be reliably known; we will use
-        // that information to eliminate possible recursion combinations.
-        //
-        // Any mappings given in the method parameters are considered grounded.
-        list($hashesA, $ungroundedHashesA) = self::hashNodes($statementsA, $nodesA, $groundedHashesA);
-        list($hashesB, $ungroundedHashesB) = self::hashNodes($statementsB, $nodesB, $groundedHashesB);
-
-        // Grounded hashes are built at the same rate between the two graphs (if
-        // they are isomorphic).  If there exists a grounded node in one that is
-        // not in the other, we can just return.  Ungrounded nodes might still
-        // conflict, so we don't check them.  This is a little bit messy in the
-        // middle of the method, and probably slows down isomorphic checks,  but
-        // prevents almost-isomorphic cases from getting nutty.
-        foreach ($hashesA as $nodeA => $hashA) {
-            if (!in_array($hashA, $hashesB)) {
-                return null;
-            }
-        }
-        foreach ($hashesB as $nodeB => $hashB) {
-            if (!in_array($hashB, $hashesA)) {
-                return null;
-            }
-        }
-
-        // Using the created hashes, map nodes to other_nodes
-        // Ungrounded hashes will also be equal, but we keep the distinction
-        // around for when we recurse later (we only recurse on ungrounded nodes)
-        $bijection = array();
-        foreach ($nodesA as $nodeA) {
-            $foundNode = null;
-            foreach ($ungroundedHashesB as $nodeB => $hashB) {
-                if ($ungroundedHashesA[$nodeA] == $hashB) {
-                    $foundNode = $nodeB;
-                }
-            }
-
-            if ($foundNode) {
-                $bijection[$nodeA] = $foundNode;
-
-                // Deletion is required to keep counts even; two nodes with identical
-                // signatures can biject to each other at random.
-                unset($ungroundedHashesB[$foundNode]);
-            }
-        }
-
-        // bijection is now a mapping of nodes to other_nodes.  If all are
-        // accounted for on both sides, we have a bijection.
-        //
-        // If not, we will speculatively mark pairs with matching ungrounded
-        // hashes as bijected and recurse.
-        $bijectionA = array_keys($bijection);
-        $bijectionB = array_values($bijection);
-        sort($bijectionA);
-        sort($nodesA);
-        sort($bijectionB);
-        sort($nodesB);
-        if ($bijectionA != $nodesA or $bijectionB != $nodesB) {
-            $bijection = null;
-
-            foreach ($nodesA as $nodeA) {
-
-                // We don't replace grounded nodes' hashes
-                if (isset($hashesA[$nodeA])) {
-                    continue;
-                }
-
-                foreach ($nodesB as $nodeB) {
-                    // We don't replace grounded nodesB's hashes
-                    if (isset($hashesB[$nodeB])) {
-                        continue;
-                    }
-
-                    // The ungrounded signature must match for this to potentially work
-                    if ($ungroundedHashesA[$nodeA] != $ungroundedHashesB[$nodeB]) {
-                        continue;
-                    }
-
-                    $hash = sha1($nodeA);
-                    $hashesA[$nodeA] = $hash;
-                    $hashesB[$nodeB] = $hash;
-                    $bijection = self::buildBijectionTo(
-                        $statementsA,
-                        $nodesA,
-                        $statementsB,
-                        $nodesA,
-                        $hashesA,
-                        $hashesB
-                    );
-                }
-            }
-        }
-
-        return $bijection;
-    }
-
-    /**
-     * Given a set of statements, create a mapping of node => SHA1 for a given
-     * set of blank nodes.  grounded_hashes is a mapping of node => SHA1 pairs
-     * that we will take as a given, and use those to make more specific
-     * signatures of other nodes.
-     *
-     * Returns a tuple of associative arrats: one of grounded hashes, and one of all
-     * hashes.  grounded hashes are based on non-blank nodes and grounded blank
-     * nodes, and can be used to determine if a node's signature matches
-     * another.
-     *
-     * @ignore
-     */
-    private static function hashNodes($statements, $nodes, $groundedHahes)
-    {
-        $hashes = $groundedHahes;
-        $ungroundedHashes = array();
-        $hashNeeded = true;
-
-        // We may have to go over the list multiple times.  If a node is marked as
-        // grounded, other nodes can then use it to decide their own state of
-        // grounded.
-        while ($hashNeeded) {
-            $startingGroundedNodes = count($hashes);
-            foreach ($nodes as $node) {
-                if (!isset($hashes[$node])) {
-                    $hash = self::nodeHashFor($node, $statements, $hashes);
-                    if (self::nodeIsGrounded($node, $statements, $hashes)) {
-                        $hashes[$node] = $hash;
-                    }
-                }
-                $ungroundedHashes[$node] = $hash;
-            }
-
-            // after going over the list, any nodes with a unique hash can be marked
-            // as grounded, even if we have not tied them back to a root yet.
-            $uniques = array();
-            foreach ($ungroundedHashes as $node => $hash) {
-                $uniques[$hash] = isset($uniques[$hash]) ? false : $node;
-            }
-            foreach ($uniques as $hash => $node) {
-                if ($node) {
-                    $hashes[$node] = $hash;
-                }
-            }
-            $hashNeeded = ($startingGroundedNodes != count($hashes));
-        }
-
-        return array($hashes, $ungroundedHashes);
-    }
-
-    /**
-     * Generate a hash for a node based on the signature of the statements it
-     * appears in.  Signatures consist of grounded elements in statements
-     * associated with a node, that is, anything but an ungrounded anonymous
-     * node.  Creating the hash is simply hashing a sorted list of each
-     * statement's signature, which is itself a concatenation of the string form
-     * of all grounded elements.
-     *
-     * Nodes other than the given node are considered grounded if they are a
-     * member in the given hash.
-     *
-     * Returns a tuple consisting of grounded being true or false and the string
-     * for the hash
-     *
-     * @ignore
-     */
-    private static function nodeHashFor($node, $statements, $hashes)
-    {
-        $statement_signatures = array();
-        foreach ($statements as $statement) {
-            foreach ($statement as $n) {
-                if ($n['type'] != 'literal' and $n['value'] == $node) {
-                    array_push(
-                        $statement_signatures,
-                        self::hashStringFor($statement, $hashes, $node)
-                    );
-                }
-            }
-        }
-
-        // Note that we sort the signatures--without a canonical ordering,
-        // we might get different hashes for equivalent nodes
-        sort($statement_signatures);
-
-        // Convert statements into one long string and hash it
-        return sha1(implode('', $statement_signatures));
-    }
-
-    /**
-     * Returns true if a given node is grounded
-     * A node is groundd if it is not a blank node or it is included
-     * in the given mapping of grounded nodes.
-     *
-     * @ignore
-     */
-    private static function nodeIsGrounded($node, $statements, $hashes)
-    {
-        $grounded = true;
-        foreach ($statements as $statement) {
-            if (in_array($node, $statement)) {
-                foreach ($statement as $resource) {
-                    if ($node['type'] != 'bnode' or
-                        isset($hashes[$node['value']]) or
-                        $resource == $node
-                    ) {
-                        $grounded = false;
-                    }
-                }
-            }
-        }
-        return $grounded;
-    }
-
-    /**
-     * Provide a string signature for the given statement, collecting
-     * string signatures for grounded node elements.
-     *
-     * @ignore
-     */
-    private static function hashStringFor($statement, $hashes, $node)
-    {
-        $str = "";
-        foreach ($statement as $r) {
-            $str .= self::stringForNode($r, $hashes, $node);
-        }
-        return $str;
-    }
-
-    /**
-     * Provides a string for the given node for use in a string signature
-     * Non-anonymous nodes will return their string form.  Grounded anonymous
-     * nodes will return their hashed form.
-     *
-     * @ignore
-     */
-    private static function stringForNode($node, $hashes, $target)
-    {
-        if (is_null($node)) {
-            return "";
-        } elseif ($node['type'] == 'bnode') {
-            if ($node['value'] == $target) {
-                return "itself";
-            } elseif (isset($hashes[$node['value']])) {
-                return $hashes[$node['value']];
-            } else {
-                return "a blank node";
-            }
-        } else {
-            $s = new EasyRdf_Serialiser_Ntriples();
-            return $s->serialiseValue($node);
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal.php
deleted file mode 100644
index b6e5a71..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal.php
+++ /dev/null
@@ -1,332 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal
-{
-    /** @ignore a mapping from datatype uri to class name */
-    private static $datatypeMap = array();
-
-    /** @ignore A mapping from class name to datatype URI */
-    private static $classMap = array();
-
-    /** @ignore The string value for this literal */
-    protected $value = null;
-
-    /** @ignore The language of the literal (e.g. 'en') */
-    protected $lang = null;
-
-    /** @ignore The datatype URI of the literal */
-    protected $datatype = null;
-
-
-    /** Create a new literal object
-     *
-     * PHP values of type bool, int or float, will automatically be converted
-     * to the corresponding datatype and PHP sub-class.
-     *
-     * If a registered datatype is given, then the registered subclass of EasyRdf_Literal
-     * will instantiated.
-     *
-     * Note that literals are not required to have a language or datatype.
-     * Literals cannot have both a language and a datatype.
-     *
-     * @param  mixed  $value     The value of the literal or an associative array
-     * @param  string $lang      The natural language of the literal or null (e.g. 'en')
-     * @param  string $datatype  The datatype of the literal or null (e.g. 'xsd:integer')
-     * @return object EasyRdf_Literal (or subclass of EasyRdf_Literal)
-     */
-    public static function create($value, $lang = null, $datatype = null)
-    {
-        if (EasyRdf_Utils::isAssociativeArray($value)) {
-            if (isset($value['xml:lang'])) {
-                $lang = $value['xml:lang'];
-            } elseif (isset($value['lang'])) {
-                $lang = $value['lang'];
-            }
-            if (isset($value['datatype'])) {
-                $datatype = $value['datatype'];
-            }
-            $value = isset($value['value']) ? $value['value'] : null;
-        }
-
-        if (is_null($datatype) or $datatype === '') {
-            if (is_null($lang) or $lang === '') {
-                // Automatic datatype selection
-                $datatype = self::getDatatypeForValue($value);
-            }
-        } elseif (is_object($datatype)) {
-            $datatype = strval($datatype);
-        } else {
-            // Expand shortened URIs (qnames)
-            $datatype = EasyRdf_Namespace::expand($datatype);
-        }
-
-        // Work out what class to use for this datatype
-        if (isset(self::$datatypeMap[$datatype])) {
-            $class = self::$datatypeMap[$datatype];
-        } else {
-            $class = 'EasyRdf_Literal';
-        }
-        return new $class($value, $lang, $datatype);
-    }
-
-    /** Register an RDF datatype with a PHP class name
-     *
-     * When parsing registered class will be used whenever the datatype
-     * is seen.
-     *
-     * When serialising a registered class, the mapping will be used to
-     * set the datatype in the RDF.
-     *
-     * Example:
-     * EasyRdf_Literal::registerDatatype('xsd:dateTime', 'My_DateTime_Class');
-     *
-     * @param  string  $datatype   The RDF datatype (e.g. xsd:dateTime)
-     * @param  string  $class      The PHP class name (e.g. My_DateTime_Class)
-     */
-    public static function setDatatypeMapping($datatype, $class)
-    {
-        if (!is_string($datatype) or $datatype == null or $datatype == '') {
-            throw new InvalidArgumentException(
-                "\$datatype should be a string and cannot be null or empty"
-            );
-        }
-
-        if (!is_string($class) or $class == null or $class == '') {
-            throw new InvalidArgumentException(
-                "\$class should be a string and cannot be null or empty"
-            );
-        }
-
-        $datatype = EasyRdf_Namespace::expand($datatype);
-        self::$datatypeMap[$datatype] = $class;
-        self::$classMap[$class] = $datatype;
-    }
-
-    /** Remove the mapping between an RDF datatype and a PHP class name
-     *
-     * @param  string  $datatype   The RDF datatype (e.g. xsd:dateTime)
-     */
-    public static function deleteDatatypeMapping($datatype)
-    {
-        if (!is_string($datatype) or $datatype == null or $datatype == '') {
-            throw new InvalidArgumentException(
-                "\$datatype should be a string and cannot be null or empty"
-            );
-        }
-
-        $datatype = EasyRdf_Namespace::expand($datatype);
-        if (isset(self::$datatypeMap[$datatype])) {
-            $class = self::$datatypeMap[$datatype];
-            unset(self::$datatypeMap[$datatype]);
-            unset(self::$classMap[$class]);
-        }
-    }
-
-    /** Get datatype URI for a PHP value.
-     *
-     * This static function is intended for internal use.
-     * Given a PHP value, it will return an XSD datatype
-     * URI for that value, for example:
-     * http://www.w3.org/2001/XMLSchema#integer
-     *
-     * @return string  A URI for the datatype of $value.
-     */
-    public static function getDatatypeForValue($value)
-    {
-        if (is_float($value)) {
-            return 'http://www.w3.org/2001/XMLSchema#double';
-        } elseif (is_int($value)) {
-            return 'http://www.w3.org/2001/XMLSchema#integer';
-        } elseif (is_bool($value)) {
-            return 'http://www.w3.org/2001/XMLSchema#boolean';
-        } elseif (is_object($value) and $value instanceof DateTime) {
-            return 'http://www.w3.org/2001/XMLSchema#dateTime';
-        } else {
-            return null;
-        }
-    }
-
-
-
-    /** Constructor for creating a new literal
-     *
-     * @param  string $value     The value of the literal
-     * @param  string $lang      The natural language of the literal or null (e.g. 'en')
-     * @param  string $datatype  The datatype of the literal or null (e.g. 'xsd:string')
-     * @return object EasyRdf_Literal
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        $this->value = $value;
-        $this->lang = $lang ? $lang : null;
-        $this->datatype = $datatype ? $datatype : null;
-
-        if ($this->datatype) {
-            if (is_object($this->datatype)) {
-                // Convert objects to strings
-                $this->datatype = strval($this->datatype);
-            } else {
-                // Expand shortened URIs (CURIEs)
-                $this->datatype = EasyRdf_Namespace::expand($this->datatype);
-            }
-
-            // Literals can not have both a language and a datatype
-            $this->lang = null;
-        } else {
-            // Set the datatype based on the subclass
-            $class = get_class($this);
-            if (isset(self::$classMap[$class])) {
-                $this->datatype = self::$classMap[$class];
-                $this->lang = null;
-            }
-        }
-
-        if (is_float($this->value)) {
-            // special handling of floats, as they suffer from locale [mis]configuration
-            $this->value = rtrim(sprintf('%F', $this->value), '0');
-        } else {
-            // Cast value to string
-            settype($this->value, 'string');
-        }
-    }
-
-    /** Returns the value of the literal.
-     *
-     * @return string  Value of this literal.
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /** Returns the full datatype URI of the literal.
-     *
-     * @return string  Datatype URI of this literal.
-     */
-    public function getDatatypeUri()
-    {
-        return $this->datatype;
-    }
-
-    /** Returns the shortened datatype URI of the literal.
-     *
-     * @return string  Datatype of this literal (e.g. xsd:integer).
-     */
-    public function getDatatype()
-    {
-        if ($this->datatype) {
-            return EasyRdf_Namespace::shorten($this->datatype);
-        } else {
-            return null;
-        }
-    }
-
-    /** Returns the language of the literal.
-     *
-     * @return string  Language of this literal.
-     */
-    public function getLang()
-    {
-        return $this->lang;
-    }
-
-    /** Returns the properties of the literal as an associative array
-     *
-     * For example:
-     * array('type' => 'literal', 'value' => 'string value')
-     *
-     * @return array  The properties of the literal
-     */
-    public function toRdfPhp()
-    {
-        $array = array(
-            'type' => 'literal',
-            'value' => $this->value
-        );
-
-        if ($this->datatype) {
-            $array['datatype'] = $this->datatype;
-        }
-
-        if ($this->lang) {
-            $array['lang'] = $this->lang;
-        }
-
-        return $array;
-    }
-
-    /** Magic method to return the value of a literal as a string
-     *
-     * @return string The value of the literal
-     */
-    public function __toString()
-    {
-        return isset($this->value) ? $this->value : '';
-    }
-
-    /** Return pretty-print view of the literal
-     *
-     * @param  string $format Either 'html' or 'text'
-     * @param  string $color  The colour of the text
-     * @return string
-     */
-    public function dumpValue($format = 'html', $color = 'black')
-    {
-        return EasyRdf_Utils::dumpLiteralValue($this, $format, $color);
-    }
-}
-
-/*
-   Register default set of datatype classes
-*/
-
-EasyRdf_Literal::setDatatypeMapping('xsd:boolean', 'EasyRdf_Literal_Boolean');
-EasyRdf_Literal::setDatatypeMapping('xsd:date', 'EasyRdf_Literal_Date');
-EasyRdf_Literal::setDatatypeMapping('xsd:dateTime', 'EasyRdf_Literal_DateTime');
-EasyRdf_Literal::setDatatypeMapping('xsd:decimal', 'EasyRdf_Literal_Decimal');
-EasyRdf_Literal::setDatatypeMapping('xsd:hexBinary', 'EasyRdf_Literal_HexBinary');
-EasyRdf_Literal::setDatatypeMapping('rdf:HTML', 'EasyRdf_Literal_HTML');
-EasyRdf_Literal::setDatatypeMapping('xsd:integer', 'EasyRdf_Literal_Integer');
-EasyRdf_Literal::setDatatypeMapping('rdf:XMLLiteral', 'EasyRdf_Literal_XML');
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Boolean.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Boolean.php
deleted file mode 100644
index d8ca2ed..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Boolean.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype xsd:boolean
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#boolean
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_Boolean extends EasyRdf_Literal
-{
-    /** Constructor for creating a new boolean literal
-     *
-     * If the value is not a string, then it will be converted to 'true' or 'false'.
-     *
-     * @param  mixed  $value     The value of the literal
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'xsd:boolean')
-     * @return object EasyRdf_Literal_Boolean
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        if (!is_string($value)) {
-            $value = $value ? 'true' : 'false';
-        }
-        parent::__construct($value, null, $datatype);
-    }
-
-    /** Return the value of the literal cast to a PHP bool
-     *
-     * If the value is 'true' or '1' return true, otherwise returns false.
-     *
-     * @return bool
-     */
-    public function getValue()
-    {
-        return strtolower($this->value) === 'true' or $this->value === '1';
-    }
-
-    /** Return true if the value of the literal is 'true' or '1'
-     *
-     * @return bool
-     */
-    public function isTrue()
-    {
-        return strtolower($this->value) === 'true' or $this->value === '1';
-    }
-
-    /** Return true if the value of the literal is 'false' or '0'
-     *
-     * @return bool
-     */
-    public function isFalse()
-    {
-        return strtolower($this->value) === 'false' or $this->value === '0';
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Date.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Date.php
deleted file mode 100644
index 0e05acf..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Date.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype xsd:date
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#date
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_Date extends EasyRdf_Literal
-{
-    /** Constructor for creating a new date literal
-     *
-     * If the value is a DateTime object, then it will be converted to the xsd:date format.
-     * If no value is given or is is null, then the current date is used.
-     *
-     * @see DateTime
-     *
-     * @param  mixed  $value     The value of the literal
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'xsd:date')
-     * @return object EasyRdf_Literal_Date
-     */
-    public function __construct($value = null, $lang = null, $datatype = null)
-    {
-        // If $value is null, use today's date
-        if (is_null($value)) {
-            $value = new DateTime('today');
-        }
-
-        // Convert DateTime object into string
-        if ($value instanceof DateTime) {
-            $value = $value->format('Y-m-d');
-        }
-
-        parent::__construct($value, null, $datatype);
-    }
-
-    /** Parses a string using DateTime and creates a new literal
-     *
-     * Example:
-     *   $date = EasyRdf_Literal_Date::parse('1 January 2011');
-     *
-     * @see DateTime
-     * @param string $value The date to parse
-     * @return object EasyRdf_Literal_Date
-     */
-    public static function parse($value)
-    {
-        $value = new DateTime($value);
-        return new EasyRdf_Literal_Date($value);
-    }
-
-    /** Returns the date as a PHP DateTime object
-     *
-     * @see DateTime::format
-     * @return string
-     */
-    public function getValue()
-    {
-        return new DateTime($this->value);
-    }
-
-    /** Returns date formatted according to given format
-     *
-     * @see DateTime::format
-     * @param string $format
-     * @return string
-     */
-    public function format($format)
-    {
-        return $this->getValue()->format($format);
-    }
-
-    /** A full integer representation of the year, 4 digits
-     *
-     * @return integer
-     */
-    public function year()
-    {
-        return (int)$this->format('Y');
-    }
-
-    /** Integer representation of the month
-     *
-     * @return integer
-     */
-    public function month()
-    {
-        return (int)$this->format('m');
-    }
-
-    /** Integer representation of the day of the month
-     *
-     * @return integer
-     */
-    public function day()
-    {
-        return (int)$this->format('d');
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/DateTime.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/DateTime.php
deleted file mode 100644
index c1c602d..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/DateTime.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype xsd:dateTime
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#date
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_DateTime extends EasyRdf_Literal_Date
-{
-    /** Constructor for creating a new date and time literal
-     *
-     * If the value is a DateTime object, then it will be converted to the xsd:dateTime format.
-     * If no value is given or is is null, then the current time is used.
-     *
-     * @see DateTime
-     *
-     * @param  mixed  $value     The value of the literal
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'xsd:dateTime')
-     * @return object EasyRdf_Literal_DateTime
-     */
-    public function __construct($value = null, $lang = null, $datatype = null)
-    {
-        // If $value is null, use 'now'
-        if (is_null($value)) {
-            $value = new DateTime('now');
-        }
-
-        // Convert DateTime objects into string
-        if ($value instanceof DateTime) {
-            $atom = $value->format(DateTime::ATOM);
-            $value = preg_replace('/[\+\-]00(\:?)00$/', 'Z', $atom);
-        }
-
-        EasyRdf_Literal::__construct($value, null, $datatype);
-    }
-
-    /** Parses a string using DateTime and creates a new literal
-     *
-     * Example:
-     *   $dt = EasyRdf_Literal_DateTime::parse('Mon 18 Jul 2011 18:45:43 BST');
-     *
-     * @see DateTime
-     * @param string $value The date and time to parse
-     * @return object EasyRdf_Literal_DateTime
-     */
-    public static function parse($value)
-    {
-        $value = new DateTime($value);
-        return new EasyRdf_Literal_DateTime($value);
-    }
-
-    /** 24-hour format of the hour as an integer
-     *
-     * @return integer
-     */
-    public function hour()
-    {
-        return (int)$this->format('H');
-    }
-
-    /** The minutes pasts the hour as an integer
-     *
-     * @return integer
-     */
-    public function min()
-    {
-        return (int)$this->format('i');
-    }
-
-    /** The seconds pasts the minute as an integer
-     *
-     * @return integer
-     */
-    public function sec()
-    {
-        return (int)$this->format('s');
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Decimal.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Decimal.php
deleted file mode 100644
index 51c59c8..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Decimal.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype xsd:decimal
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#decimal
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_Decimal extends EasyRdf_Literal
-{
-    /**
-     * written according to http://www.w3.org/TR/xmlschema-2/#decimal
-     */
-    const DECIMAL_REGEX = '^([+\-]?)(((\d+)?\.(\d+))|((\d+)\.?))$';
-
-    /** Constructor for creating a new decimal literal
-     *
-     * @param  double|int|string $value    The value of the literal
-     * @param  string            $lang     Should be null (literals with a datatype can't have a language)
-     * @param  string            $datatype Optional datatype (default 'xsd:decimal')
-     *
-     * @throws UnexpectedValueException
-     * @return EasyRdf_Literal_Decimal
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        if (is_string($value)) {
-            self::validate($value);
-        } elseif (is_double($value) or is_int($value)) {
-            $locale_data = localeconv();
-            $value = str_replace($locale_data['decimal_point'], '.', strval($value));
-        } else {
-            throw new UnexpectedValueException('EasyRdf_Literal_Decimal expects int/float/string as value');
-        }
-
-        $value = self::canonicalise($value);
-
-        parent::__construct($value, null, $datatype);
-    }
-
-    /** Return the value of the literal cast to a PHP string
-     *
-     * @return string
-     */
-    public function getValue()
-    {
-        return strval($this->value);
-    }
-
-    /**
-     * @param string $value
-     *
-     * @throws UnexpectedValueException
-     */
-    public static function validate($value)
-    {
-        if (!mb_ereg_match(self::DECIMAL_REGEX, $value)) {
-            throw new UnexpectedValueException("'{$value}' doesn't look like a valid decimal");
-        }
-    }
-
-    /**
-     * Converts valid xsd:decimal literal to Canonical representation
-     * see http://www.w3.org/TR/xmlschema-2/#decimal
-     *
-     * @param string $value Valid xsd:decimal literal
-     *
-     * @return string
-     */
-    public static function canonicalise($value)
-    {
-        $pieces = array();
-        mb_ereg(self::DECIMAL_REGEX, $value, $pieces);
-
-        $sign       = $pieces[1] === '-' ? '-' : '';  // '+' is not allowed
-        $integer    = ltrim(($pieces[4] !== false) ? $pieces[4] : $pieces[7], '0');
-        $fractional = rtrim($pieces[5], '0');
-
-        if (empty($integer)) {
-            $integer = '0';
-        }
-
-        if (empty($fractional)) {
-            $fractional = '0';
-        }
-
-        return "{$sign}{$integer}.{$fractional}";
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HTML.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HTML.php
deleted file mode 100644
index a4915b7..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HTML.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype rdf:HTML
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/rdf11-concepts/#section-html
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_HTML extends EasyRdf_Literal
-{
-    /** Constructor for creating a new rdf:HTML literal
-     *
-     * @param  mixed  $value     The HTML fragment
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'rdf:HTML')
-     * @return object EasyRdf_Literal_HTML
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        parent::__construct($value, null, $datatype);
-    }
-
-    /** Strip the HTML tags from the literal
-     *
-     * @link   http://php.net/manual/en/function.strip-tags.php
-     * @param  string $allowableTags  Optional allowed tag, not be be removed
-     * @return string The literal as plain text
-     */
-    public function stripTags($allowableTags = null)
-    {
-        return strip_tags($this->value, $allowableTags);
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HexBinary.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HexBinary.php
deleted file mode 100644
index 7301a10..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HexBinary.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype xsd:hexBinary
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#hexBinary
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_HexBinary extends EasyRdf_Literal
-{
-    /** Constructor for creating a new xsd:hexBinary literal
-     *
-     * @param  mixed  $value     The value of the literal (already encoded as hexadecimal)
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'xsd:hexBinary')
-     * @return object EasyRdf_Literal_HexBinary
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        // Normalise the canonical representation, as specified here:
-        // http://www.w3.org/TR/xmlschema-2/#hexBinary-canonical-repr
-        $value = strtoupper($value);
-
-        // Validate the data
-        if (preg_match('/[^A-F0-9]/', $value)) {
-            throw new InvalidArgumentException(
-                "Literal of type xsd:hexBinary contains non-hexadecimal characters"
-            );
-        }
-
-        parent::__construct(strtoupper($value), null, 'xsd:hexBinary');
-    }
-
-    /** Constructor for creating a new literal object from a binary blob
-     *
-     * @param  string $binary  The binary data
-     * @return object EasyRdf_Literal_HexBinary
-     */
-    public static function fromBinary($binary)
-    {
-        return new self( bin2hex($binary) );
-    }
-
-    /** Decode the hexadecimal string into a binary blob
-     *
-     * @return string The binary blob
-     */
-    public function toBinary()
-    {
-        return pack("H*", $this->value);
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Integer.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Integer.php
deleted file mode 100644
index 47de413..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Integer.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype xsd:integer
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/xmlschema-2/#integer
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_Integer extends EasyRdf_Literal
-{
-    /** Constructor for creating a new integer literal
-     *
-     * @param  mixed  $value     The value of the literal
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'xsd:integer')
-     * @return object EasyRdf_Literal_Integer
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        parent::__construct($value, null, $datatype);
-    }
-
-    /** Return the value of the literal cast to a PHP int
-     *
-     * @return double
-     */
-    public function getValue()
-    {
-        return (int)$this->value;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/XML.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/XML.php
deleted file mode 100644
index 3f8dd79..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/XML.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF Literal of datatype rdf:XMLLiteral
- *
- * @package    EasyRdf
- * @link       http://www.w3.org/TR/REC-rdf-syntax/#section-Syntax-XML-literals
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Literal_XML extends EasyRdf_Literal
-{
-    /** Constructor for creating a new rdf:XMLLiteral literal
-     *
-     * @param  mixed  $value     The XML fragment
-     * @param  string $lang      Should be null (literals with a datatype can't have a language)
-     * @param  string $datatype  Optional datatype (default 'rdf:XMLLiteral')
-     * @return object EasyRdf_Literal_XML
-     */
-    public function __construct($value, $lang = null, $datatype = null)
-    {
-        parent::__construct($value, null, $datatype);
-    }
-
-    /** Parse the XML literal into a DOMDocument
-     *
-     * @link   http://php.net/manual/en/domdocument.loadxml.php
-     * @return object DOMDocument
-     */
-    public function domParse()
-    {
-        $dom = new DOMDocument();
-        $dom->loadXML($this->value);
-        return $dom;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Namespace.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Namespace.php
deleted file mode 100644
index 8990e82..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Namespace.php
+++ /dev/null
@@ -1,416 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2014 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2014 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * A namespace registry and manipulation class.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2014 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Namespace
-{
-    /** Namespace registry
-     *
-     * List of default namespaces come from:
-     *  - http://www.w3.org/2011/rdfa-context/rdfa-1.1
-     *
-     * With a few extras added.
-     *
-     */
-    private static $initial_namespaces = array(
-        'bibo'    => 'http://purl.org/ontology/bibo/',
-        'cc'      => 'http://creativecommons.org/ns#',
-        'cert'    => 'http://www.w3.org/ns/auth/cert#',
-        'ctag'    => 'http://commontag.org/ns#',
-        'dc'      => 'http://purl.org/dc/terms/',
-        'dc11'    => 'http://purl.org/dc/elements/1.1/',
-        'dcat'    => 'http://www.w3.org/ns/dcat#',
-        'dcterms' => 'http://purl.org/dc/terms/',
-        'doap'    => 'http://usefulinc.com/ns/doap#',
-        'exif'    => 'http://www.w3.org/2003/12/exif/ns#',
-        'foaf'    => 'http://xmlns.com/foaf/0.1/',
-        'geo'     => 'http://www.w3.org/2003/01/geo/wgs84_pos#',
-        'gr'      => 'http://purl.org/goodrelations/v1#',
-        'grddl'   => 'http://www.w3.org/2003/g/data-view#',
-        'ical'    => 'http://www.w3.org/2002/12/cal/icaltzd#',
-        'ma'      => 'http://www.w3.org/ns/ma-ont#',
-        'og'      => 'http://ogp.me/ns#',
-        'org'     => 'http://www.w3.org/ns/org#',
-        'owl'     => 'http://www.w3.org/2002/07/owl#',
-        'prov'    => 'http://www.w3.org/ns/prov#',
-        'qb'      => 'http://purl.org/linked-data/cube#',
-        'rdf'     => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
-        'rdfa'    => 'http://www.w3.org/ns/rdfa#',
-        'rdfs'    => 'http://www.w3.org/2000/01/rdf-schema#',
-        'rev'     => 'http://purl.org/stuff/rev#',
-        'rif'     => 'http://www.w3.org/2007/rif#',
-        'rr'      => 'http://www.w3.org/ns/r2rml#',
-        'rss'     => 'http://purl.org/rss/1.0/',
-        'schema'  => 'http://schema.org/',
-        'sd'      => 'http://www.w3.org/ns/sparql-service-description#',
-        'sioc'    => 'http://rdfs.org/sioc/ns#',
-        'skos'    => 'http://www.w3.org/2004/02/skos/core#',
-        'skosxl'  => 'http://www.w3.org/2008/05/skos-xl#',
-        'synd'    => 'http://purl.org/rss/1.0/modules/syndication/',
-        'v'       => 'http://rdf.data-vocabulary.org/#',
-        'vcard'   => 'http://www.w3.org/2006/vcard/ns#',
-        'void'    => 'http://rdfs.org/ns/void#',
-        'wdr'     => 'http://www.w3.org/2007/05/powder#',
-        'wdrs'    => 'http://www.w3.org/2007/05/powder-s#',
-        'wot'     => 'http://xmlns.com/wot/0.1/',
-        'xhv'     => 'http://www.w3.org/1999/xhtml/vocab#',
-        'xml'     => 'http://www.w3.org/XML/1998/namespace',
-        'xsd'     => 'http://www.w3.org/2001/XMLSchema#',
-    );
-
-    private static $namespaces = null;
-
-    private static $default = null;
-
-    /** Counter for numbering anonymous namespaces */
-    private static $anonymousNamespaceCount = 0;
-
-    /**
-      * Return all the namespaces registered
-      *
-      * @return array Associative array of all the namespaces.
-      */
-    public static function namespaces()
-    {
-        if (self::$namespaces === null) {
-            self::resetNamespaces();
-        }
-
-        return self::$namespaces;
-    }
-
-    /**
-     * Resets list of namespaces to the one, which is provided by EasyRDF
-     * useful for tests, among other things
-     */
-    public static function resetNamespaces()
-    {
-        self::$namespaces = self::$initial_namespaces;
-    }
-
-    /**
-      * Return a namespace given its prefix.
-      *
-      * @param string $prefix The namespace prefix (eg 'foaf')
-      * @return string The namespace URI (eg 'http://xmlns.com/foaf/0.1/')
-      */
-    public static function get($prefix)
-    {
-        if (!is_string($prefix) or $prefix === null) {
-            throw new InvalidArgumentException(
-                "\$prefix should be a string and cannot be null or empty"
-            );
-        }
-
-        if (preg_match('/\W/', $prefix)) {
-            throw new InvalidArgumentException(
-                "\$prefix should only contain alpha-numeric characters"
-            );
-        }
-
-        $prefix = strtolower($prefix);
-        $namespaces = self::namespaces();
-
-        if (array_key_exists($prefix, $namespaces)) {
-            return $namespaces[$prefix];
-        } else {
-            return null;
-        }
-    }
-
-    /**
-      * Register a new namespace.
-      *
-      * @param string $prefix The namespace prefix (eg 'foaf')
-      * @param string $long The namespace URI (eg 'http://xmlns.com/foaf/0.1/')
-      */
-    public static function set($prefix, $long)
-    {
-        if (!is_string($prefix) or $prefix === null) {
-            throw new InvalidArgumentException(
-                "\$prefix should be a string and cannot be null or empty"
-            );
-        }
-
-        if ($prefix !== '') {
-            // prefix        ::= Name minus ":"                   // see: http://www.w3.org/TR/REC-xml-names/#NT-NCName
-            // Name          ::= NameStartChar (NameChar)*        // see: http://www.w3.org/TR/REC-xml/#NT-Name
-            // NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] |
-            //                   [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] |
-            //                   [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
-            // NameChar      ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
-
-            $_name_start_char =
-                'A-Z_a-z\xc0-\xD6\xd8-\xf6\xf8-\xff\x{0100}-\x{02ff}\x{0370}-\x{037d}' .
-                '\x{037F}-\x{1FFF}\x{200C}-\x{200D}\x{2070}-\x{218F}\x{2C00}-\x{2FEF}\x{3001}-\x{D7FF}' .
-                '\x{F900}-\x{FDCF}\x{FDF0}-\x{FFFD}\x{10000}-\x{EFFFF}';
-
-            $_name_char =
-                $_name_start_char .
-                '\-.0-9\xb7\x{0300}-\x{036f}\x{203f}-\x{2040}';
-
-            $regex = "#^[{$_name_start_char}]{1}[{$_name_char}]{0,}$#u";
-
-            $match_result = preg_match($regex, $prefix);
-
-            if ($match_result === false) {
-                throw new LogicException('regexp error');
-            }
-
-            if ($match_result === 0) {
-                throw new InvalidArgumentException(
-                    "\$prefix should match RDFXML-QName specification. got: {$prefix}"
-                );
-            }
-        }
-
-        if (!is_string($long) or $long === null or $long === '') {
-            throw new InvalidArgumentException(
-                "\$long should be a string and cannot be null or empty"
-            );
-        }
-
-        $prefix = strtolower($prefix);
-
-        $namespaces = self::namespaces();
-        $namespaces[$prefix] = $long;
-
-        self::$namespaces = $namespaces;
-    }
-
-    /**
-      * Get the default namespace
-      *
-      * Returns the URI of the default namespace or null
-      * if no default namespace is defined.
-      *
-      * @return string The URI of the default namespace
-      */
-    public static function getDefault()
-    {
-        return self::$default;
-    }
-
-    /**
-      * Set the default namespace
-      *
-      * Set the default namespace to either a URI or the prefix of
-      * an already defined namespace.
-      *
-      * Example:
-      *   EasyRdf_Namespace::setDefault('http://schema.org/');
-      *
-      * @param string $namespace The URI or prefix of a namespace (eg 'og')
-      */
-    public static function setDefault($namespace)
-    {
-        if (is_null($namespace) or $namespace === '') {
-            self::$default = null;
-        } elseif (preg_match('/^\w+$/', $namespace)) {
-            $namespaces = self::namespaces();
-
-            if (!isset($namespaces[$namespace])) {
-                throw new InvalidArgumentException(
-                    "Unable to set default namespace to unknown prefix: $namespace"
-                );
-            }
-
-            self::$default = $namespaces[$namespace];
-        } else {
-            self::$default = $namespace;
-        }
-    }
-
-    /**
-      * Delete an existing namespace.
-      *
-      * @param string $prefix The namespace prefix (eg 'foaf')
-      */
-    public static function delete($prefix)
-    {
-        if (!is_string($prefix) or $prefix === null or $prefix === '') {
-            throw new InvalidArgumentException(
-                "\$prefix should be a string and cannot be null or empty"
-            );
-        }
-
-        $prefix = strtolower($prefix);
-        self::namespaces();  // make sure, that self::$namespaces is initialized
-        if (isset(self::$namespaces[$prefix])) {
-            unset(self::$namespaces[$prefix]);
-        }
-    }
-
-    /**
-      * Delete the anonymous namespaces and reset the counter to 0
-      */
-    public static function reset()
-    {
-        while (self::$anonymousNamespaceCount > 0) {
-            self::delete('ns'.(self::$anonymousNamespaceCount-1));
-            self::$anonymousNamespaceCount--;
-        }
-    }
-
-    /**
-      * Try and breakup a URI into a prefix and local part
-      *
-      * If $createNamespace is true, and the URI isn't part of an existing
-      * namespace, then EasyRdf will attempt to create a new namespace and
-      * return the name of the new prefix (for example 'ns0', 'term').
-      *
-      * If it isn't possible to split the URI, then null will be returned.
-      *
-      * @param string  $uri The full URI (eg 'http://xmlns.com/foaf/0.1/name')
-      * @param bool    $createNamespace If true, a new namespace will be created
-      * @return array  The split URI (eg 'foaf', 'name') or null
-      */
-    public static function splitUri($uri, $createNamespace = false)
-    {
-        if ($uri === null or $uri === '') {
-            throw new InvalidArgumentException(
-                "\$uri cannot be null or empty"
-            );
-        }
-
-        if (is_object($uri) and ($uri instanceof EasyRdf_Resource)) {
-            $uri = $uri->getUri();
-        } elseif (!is_string($uri)) {
-            throw new InvalidArgumentException(
-                "\$uri should be a string or EasyRdf_Resource"
-            );
-        }
-
-        foreach (self::namespaces() as $prefix => $long) {
-            if (substr($uri, 0, strlen($long)) !== $long) {
-                continue;
-            }
-
-            $local_part = substr($uri, strlen($long));
-
-            if (strpos($local_part, '/') !== false) {
-                // we can't have '/' in local part
-                continue;
-            }
-
-            return array($prefix, $local_part);
-        }
-
-        if ($createNamespace) {
-            // Try and create a new namespace
-            # FIXME: check the valid characters for an XML element name
-            if (preg_match('/^(.+?)([\w\-]+)$/', $uri, $matches)) {
-                $prefix = "ns".(self::$anonymousNamespaceCount++);
-                self::set($prefix, $matches[1]);
-                return array($prefix, $matches[2]);
-            }
-        }
-
-        return null;
-    }
-
-    /**
-      * Return the prefix namespace that a URI belongs to.
-      *
-      * @param string $uri A full URI (eg 'http://xmlns.com/foaf/0.1/name')
-      * @return string The prefix namespace that it is a part of(eg 'foaf')
-      */
-    public static function prefixOfUri($uri)
-    {
-        if ($parts = self::splitUri($uri)) {
-            return $parts[0];
-        }
-    }
-
-    /**
-      * Shorten a URI by substituting in the namespace prefix.
-      *
-      * If $createNamespace is true, and the URI isn't part of an existing
-      * namespace, then EasyRdf will attempt to create a new namespace and
-      * use that namespace to shorten the URI (for example ns0:term).
-      *
-      * If it isn't possible to shorten the URI, then null will be returned.
-      *
-      * @param string  $uri The full URI (eg 'http://xmlns.com/foaf/0.1/name')
-      * @param bool    $createNamespace If true, a new namespace will be created
-      * @return string The shortened URI (eg 'foaf:name') or null
-      */
-    public static function shorten($uri, $createNamespace = false)
-    {
-        if ($parts = self::splitUri($uri, $createNamespace)) {
-            return implode(':', $parts);
-        }
-    }
-
-    /**
-      * Expand a shortened URI (qname) back into a full URI.
-      *
-      * If it isn't possible to expand the qname, for example if the namespace
-      * isn't registered, then the original string will be returned.
-      *
-      * @param string $shortUri The short URI (eg 'foaf:name')
-      * @return string The full URI (eg 'http://xmlns.com/foaf/0.1/name')
-      */
-    public static function expand($shortUri)
-    {
-        if (!is_string($shortUri) or $shortUri === '') {
-            throw new InvalidArgumentException(
-                "\$shortUri should be a string and cannot be null or empty"
-            );
-        }
-
-        if ($shortUri === 'a') {
-            $namespaces = self::namespaces();
-            return $namespaces['rdf'] . 'type';
-        } elseif (preg_match('/^(\w+?):([\w\-]+)$/', $shortUri, $matches)) {
-            $long = self::get($matches[1]);
-            if ($long) {
-                return $long . $matches[2];
-            }
-        } elseif (preg_match('/^(\w+)$/', $shortUri) and isset(self::$default)) {
-            return self::$default . $shortUri;
-        }
-
-        return $shortUri;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/ParsedUri.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/ParsedUri.php
deleted file mode 100644
index 0b8dd47..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/ParsedUri.php
+++ /dev/null
@@ -1,340 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-
-/**
- * A RFC3986 compliant URI parser
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- * @link       http://www.ietf.org/rfc/rfc3986.txt
- */
-class EasyRdf_ParsedUri
-{
-    // For all URIs:
-    private $scheme = null;
-    private $fragment = null;
-
-    // For hierarchical URIs:
-    private $authority = null;
-    private $path = null;
-    private $query = null;
-
-    const URI_REGEX = "|^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?|";
-
-    /** Constructor for creating a new parsed URI
-     *
-     * The $uri parameter can either be a string or an
-     * associative array with the following keys:
-     * scheme, authority, path, query, fragment
-     *
-     * @param  mixed $uri  The URI as a string or an array
-     * @return object EasyRdf_ParsedUri
-     */
-    public function __construct($uri = null)
-    {
-        if (is_string($uri)) {
-            if (preg_match(self::URI_REGEX, $uri, $matches)) {
-                if (!empty($matches[1])) {
-                    $this->scheme = isset($matches[2]) ? $matches[2] : '';
-                }
-                if (!empty($matches[3])) {
-                    $this->authority = isset($matches[4]) ? $matches[4] : '';
-                }
-                $this->path = isset($matches[5]) ? $matches[5] : '';
-                if (!empty($matches[6])) {
-                    $this->query = isset($matches[7]) ? $matches[7] : '';
-                }
-                if (!empty($matches[8])) {
-                    $this->fragment = isset($matches[9]) ? $matches[9] : '';
-                }
-            }
-        } elseif (is_array($uri)) {
-            $this->scheme = isset($uri['scheme']) ? $uri['scheme'] : null;
-            $this->authority = isset($uri['authority']) ? $uri['authority'] : null;
-            $this->path = isset($uri['path']) ? $uri['path'] : null;
-            $this->query = isset($uri['query']) ? $uri['query'] : null;
-            $this->fragment = isset($uri['fragment']) ? $uri['fragment'] : null;
-        }
-    }
-
-
-    /** Returns true if this is an absolute (complete) URI
-     * @return boolean
-     */
-    public function isAbsolute()
-    {
-        return $this->scheme !== null;
-    }
-
-    /** Returns true if this is an relative (partial) URI
-     * @return boolean
-     */
-    public function isRelative()
-    {
-        return $this->scheme === null;
-    }
-
-    /** Returns the scheme of the URI (e.g. http)
-     * @return string
-     */
-    public function getScheme()
-    {
-        return $this->scheme;
-    }
-
-    /** Sets the scheme of the URI (e.g. http)
-     * @param string $scheme The new value for the scheme of the URI
-     */
-    public function setScheme($scheme)
-    {
-        $this->scheme = $scheme;
-    }
-
-    /** Returns the authority of the URI (e.g. www.example.com:8080)
-     * @return string
-     */
-    public function getAuthority()
-    {
-        return $this->authority;
-    }
-
-    /** Sets the authority of the URI (e.g. www.example.com:8080)
-     * @param string $authority The new value for the authority component of the URI
-     */
-    public function setAuthority($authority)
-    {
-        $this->authority = $authority;
-    }
-
-    /** Returns the path of the URI (e.g. /foo/bar)
-     * @return string
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /** Set the path of the URI (e.g. /foo/bar)
-     * @param string $path The new value for the path component of the URI
-     */
-    public function setPath($path)
-    {
-        $this->path = $path;
-    }
-
-    /** Returns the query string part of the URI (e.g. foo=bar)
-     * @return string
-     */
-    public function getQuery()
-    {
-        return $this->query;
-    }
-
-    /** Set the query string of the URI (e.g. foo=bar)
-     * @param string $query The new value for the query string component of the URI
-     */
-    public function setQuery($query)
-    {
-        $this->query = $query;
-    }
-
-    /** Returns the fragment part of the URI (i.e. after the #)
-     * @return string
-     */
-    public function getFragment()
-    {
-        return $this->fragment;
-    }
-
-    /** Set the fragment of the URI (i.e. after the #)
-     * @param string $fragment The new value for the fragment component of the URI
-     */
-    public function setFragment($fragment)
-    {
-        $this->fragment = $fragment;
-    }
-
-
-    /**
-     * Normalises the path of this URI if it has one. Normalising a path means
-     * that any unnecessary '.' and '..' segments are removed. For example, the
-     * URI http://example.com/a/b/../c/./d would be normalised to
-     * http://example.com/a/c/d
-     *
-     * @return object EasyRdf_ParsedUri
-     */
-    public function normalise()
-    {
-        if (empty($this->path)) {
-            return $this;
-        }
-
-        // Remove ./ from the start
-        if (substr($this->path, 0, 2) == './') {
-            // Remove both characters
-            $this->path = substr($this->path, 2);
-        }
-
-        // Remove /. from the end
-        if (substr($this->path, -2) == '/.') {
-            // Remove only the last dot, not the slash!
-            $this->path = substr($this->path, 0, -1);
-        }
-
-        if (substr($this->path, -3) == '/..') {
-            $this->path .= '/';
-        }
-
-        // Split the path into its segments
-        $segments = explode('/', $this->path);
-        $newSegments = array();
-
-        // Remove all unnecessary '.' and '..' segments
-        foreach ($segments as $segment) {
-            if ($segment == '..') {
-                // Remove the previous part of the path
-                $count = count($newSegments);
-                if ($count > 0 && $newSegments[$count-1]) {
-                    array_pop($newSegments);
-                }
-            } elseif ($segment == '.') {
-                // Ignore
-                continue;
-            } else {
-                array_push($newSegments, $segment);
-            }
-        }
-
-        // Construct the new normalised path
-        $this->path = implode($newSegments, '/');
-
-        // Allow easy chaining of methods
-        return $this;
-    }
-
-    /**
-     * Resolves a relative URI using this URI as the base URI.
-     */
-    public function resolve($relUri)
-    {
-        // If it is a string, then convert it to a parsed object
-        if (is_string($relUri)) {
-            $relUri = new EasyRdf_ParsedUri($relUri);
-        }
-
-        // This code is based on the pseudocode in section 5.2.2 of RFC3986
-        $target = new EasyRdf_ParsedUri();
-        if ($relUri->scheme) {
-            $target->scheme = $relUri->scheme;
-            $target->authority = $relUri->authority;
-            $target->path = $relUri->path;
-            $target->query = $relUri->query;
-        } else {
-            if ($relUri->authority) {
-                $target->authority = $relUri->authority;
-                $target->path = $relUri->path;
-                $target->query = $relUri->query;
-            } else {
-                if (empty($relUri->path)) {
-                    $target->path = $this->path;
-                    if ($relUri->query) {
-                        $target->query = $relUri->query;
-                    } else {
-                        $target->query = $this->query;
-                    }
-                } else {
-                    if (substr($relUri->path, 0, 1) == '/') {
-                        $target->path = $relUri->path;
-                    } else {
-                        $path = $this->path;
-                        $lastSlash = strrpos($path, '/');
-                        if ($lastSlash !== false) {
-                            $path = substr($path, 0, $lastSlash + 1);
-                        } else {
-                            $path = '/';
-                        }
-
-                        $target->path .= $path . $relUri->path;
-                    }
-                    $target->query = $relUri->query;
-                }
-                $target->authority = $this->authority;
-            }
-            $target->scheme = $this->scheme;
-        }
-
-        $target->fragment = $relUri->fragment;
-
-        $target->normalise();
-
-        return $target;
-    }
-
-    /** Convert the parsed URI back into a string
-     *
-     * @return string The URI as a string
-     */
-    public function toString()
-    {
-        $str = '';
-        if ($this->scheme !== null) {
-            $str .= $this->scheme . ':';
-        }
-        if ($this->authority !== null) {
-            $str .= '//' . $this->authority;
-        }
-        $str .= $this->path;
-        if ($this->query !== null) {
-            $str .= '?' . $this->query;
-        }
-        if ($this->fragment !== null) {
-            $str .= '#' . $this->fragment;
-        }
-        return $str;
-    }
-
-    /** Magic method to convert the URI, when casted, back to a string
-     *
-     * @return string The URI as a string
-     */
-    public function __toString()
-    {
-        return $this->toString();
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser.php
deleted file mode 100644
index 196388d..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Parent class for the EasyRdf parsers
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser
-{
-    /** Mapping from source to graph bnode identifiers */
-    private $bnodeMap = array();
-
-    /** The current graph to insert triples into */
-    protected $graph = null;
-
-    /** The format of the document currently being parsed */
-    protected $format = null;
-
-    /** The base URI for the document currently being parsed */
-    protected $baseUri = null;
-
-
-    protected $tripleCount = 0;
-
-    /**
-     * Create a new, unique bnode identifier from a source identifier.
-     * If the source identifier has previously been seen, the
-     * same new bnode identifier is returned.
-     * @ignore
-     */
-    protected function remapBnode($name)
-    {
-        if (!isset($this->bnodeMap[$name])) {
-            $this->bnodeMap[$name] = $this->graph->newBNodeId();
-        }
-        return $this->bnodeMap[$name];
-    }
-
-    /**
-     * Delete the bnode mapping - to be called at the start of a new parse
-     * @ignore
-     */
-    protected function resetBnodeMap()
-    {
-        $this->bnodeMap = array();
-    }
-
-    /**
-     * Check, cleanup parameters and prepare for parsing
-     * @ignore
-     */
-    protected function checkParseParams($graph, $data, $format, $baseUri)
-    {
-        if ($graph == null or !is_object($graph) or
-            !($graph instanceof EasyRdf_Graph)) {
-            throw new InvalidArgumentException(
-                "\$graph should be an EasyRdf_Graph object and cannot be null"
-            );
-        } else {
-            $this->graph = $graph;
-        }
-
-        if ($format == null or $format == '') {
-            throw new InvalidArgumentException(
-                "\$format cannot be null or empty"
-            );
-        } elseif (is_object($format) and $format instanceof EasyRdf_Format) {
-            $this->format = $format = $format->getName();
-        } elseif (!is_string($format)) {
-            throw new InvalidArgumentException(
-                "\$format should be a string or an EasyRdf_Format object"
-            );
-        } else {
-            $this->format = $format;
-        }
-
-        if ($baseUri) {
-            if (!is_string($baseUri)) {
-                throw new InvalidArgumentException(
-                    "\$baseUri should be a string"
-                );
-            } else {
-                $this->baseUri = new EasyRdf_ParsedUri($baseUri);
-            }
-        } else {
-            $this->baseUri = null;
-        }
-
-        // Prepare for parsing
-        $this->resetBnodeMap();
-        $this->tripleCount = 0;
-    }
-
-    /**
-     * Sub-classes must follow this protocol
-     * @ignore
-     */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        throw new EasyRdf_Exception(
-            "This method should be overridden by sub-classes."
-        );
-    }
-
-    /**
-     * Add a triple to the current graph, and keep count of the number of triples
-     * @ignore
-     */
-    protected function addTriple($resource, $property, $value)
-    {
-        $count = $this->graph->add($resource, $property, $value);
-        $this->tripleCount += $count;
-        return $count;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Arc.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Arc.php
deleted file mode 100644
index b4e5e1e..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Arc.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse RDF using the ARC2 library.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Arc extends EasyRdf_Parser_RdfPhp
-{
-    private static $supportedTypes = array(
-        'rdfxml' => 'RDFXML',
-        'turtle' => 'Turtle',
-        'ntriples' => 'Turtle',
-        'rdfa' => 'SemHTML',
-    );
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_Arc
-     */
-    public function __construct()
-    {
-        require_once 'arc/ARC2.php';
-    }
-
-    /**
-      * Parse an RDF document into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        if (array_key_exists($format, self::$supportedTypes)) {
-            $className = self::$supportedTypes[$format];
-        } else {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_Arc does not support: $format"
-            );
-        }
-
-        $parser = ARC2::getParser($className);
-        if ($parser) {
-            $parser->parse($baseUri, $data);
-            $rdfphp = $parser->getSimpleIndex(false);
-            return parent::parse($graph, $rdfphp, 'php', $baseUri);
-        } else {
-            throw new EasyRdf_Exception(
-                "ARC2 failed to get a $className parser."
-            );
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Exception.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Exception.php
deleted file mode 100644
index d03b5bd..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Exception.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * EasyRdf Exception class
- *
- * All exceptions thrown by EasyRdf are an instance of this class.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Exception extends EasyRdf_Exception
-{
-    protected $parserLine;
-    protected $parserColumn;
-    
-    public function __construct($message, $line = null, $column = null)
-    {
-        $this->parserLine = $line;
-        $this->parserColumn = $column;
-
-        if (!is_null($line)) {
-            $message .= " on line $line";
-            if (!is_null($column)) {
-                $message .= ", column $column";
-            }
-        }
-
-        parent::__construct($message);
-    }
-    
-    public function getParserLine()
-    {
-        return $this->parserLine;
-    }
-    
-    public function getParserColumn()
-    {
-        return $this->parserColumn;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Json.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Json.php
deleted file mode 100644
index 924abdc..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Json.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * A pure-php class to parse RDF/JSON with no dependancies.
- *
- * http://n2.talis.com/wiki/RDF_JSON_Specification
- * docs/appendix-a-rdf-formats-json.md
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Json extends EasyRdf_Parser_RdfPhp
-{
-    private $jsonLastErrorExists = false;
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_Json
-     */
-    public function __construct()
-    {
-        $this->jsonLastErrorExists = function_exists('json_last_error');
-    }
-
-    /** Return the last JSON parser error as a string
-     *
-     * If json_last_error() is not available a generic message will be returned.
-     *
-     * @ignore
-     */
-    protected function jsonLastErrorString()
-    {
-        if ($this->jsonLastErrorExists) {
-            switch (json_last_error()) {
-                case JSON_ERROR_NONE:
-                    return null;
-                case JSON_ERROR_DEPTH:
-                    return "JSON Parse error: the maximum stack depth has been exceeded";
-                case JSON_ERROR_STATE_MISMATCH:
-                    return "JSON Parse error: invalid or malformed JSON";
-                case JSON_ERROR_CTRL_CHAR:
-                    return "JSON Parse error: control character error, possibly incorrectly encoded";
-                case JSON_ERROR_SYNTAX:
-                    return "JSON Parse syntax error";
-                case JSON_ERROR_UTF8:
-                    return "JSON Parse error: malformed UTF-8 characters, possibly incorrectly encoded";
-                default:
-                    return "JSON Parse error: unknown";
-            }
-        } else {
-            return "JSON Parse error";
-        }
-    }
-
-    /** Parse the triple-centric JSON format, as output by libraptor
-     *
-     * http://librdf.org/raptor/api/serializer-json.html
-     *
-     * @ignore
-     */
-    protected function parseJsonTriples($data, $baseUri)
-    {
-        foreach ($data['triples'] as $triple) {
-            if ($triple['subject']['type'] == 'bnode') {
-                $subject = $this->remapBnode($triple['subject']['value']);
-            } else {
-                $subject = $triple['subject']['value'];
-            }
-
-            $predicate = $triple['predicate']['value'];
-
-            if ($triple['object']['type'] == 'bnode') {
-                $object = array(
-                    'type' => 'bnode',
-                    'value' => $this->remapBnode($triple['object']['value'])
-                );
-            } else {
-                $object = $triple['object'];
-            }
-
-            $this->addTriple($subject, $predicate, $object);
-        }
-
-        return $this->tripleCount;
-    }
-
-    /**
-      * Parse RDF/JSON into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        $this->checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'json') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_Json does not support: $format"
-            );
-        }
-
-        $decoded = @json_decode(strval($data), true);
-        if ($decoded === null) {
-            throw new EasyRdf_Parser_Exception(
-                $this->jsonLastErrorString()
-            );
-        }
-
-        if (array_key_exists('triples', $decoded)) {
-            return $this->parseJsonTriples($decoded, $baseUri);
-        } else {
-            return parent::parse($graph, $decoded, 'php', $baseUri);
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/JsonLd.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/JsonLd.php
deleted file mode 100644
index d0efc12..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/JsonLd.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-if (PHP_MAJOR_VERSION > 5 or (PHP_MAJOR_VERSION == 5 and PHP_MINOR_VERSION >= 3)) {
-    require dirname(__FILE__).'/JsonLdImplementation.php';
-} else {
-    throw new LogicException("JSON-LD support requires PHP 5.3+");
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/JsonLdImplementation.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/JsonLdImplementation.php
deleted file mode 100644
index d2e22c4..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/JsonLdImplementation.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse JSON-LD to an EasyRdf_Graph
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2014 Markus Lanthaler
- * @author     Markus Lanthaler <mail@markus-lanthaler.com>
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_JsonLd extends EasyRdf_Parser
-{
-    /**
-      * Parse a JSON-LD document into an EasyRdf_Graph
-      *
-      * Attention: Since JSON-LD supports datasets, a document may contain
-      * multiple graphs and not just one. This parser returns only the
-      * default graph. An alternative would be to merge all graphs.
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'jsonld') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_JsonLd does not support $format"
-            );
-        }
-
-        try {
-            $quads = \ML\JsonLD\JsonLD::toRdf($data, array('base' => $baseUri));
-        } catch (\ML\JsonLD\Exception\JsonLdException $e) {
-            throw new EasyRdf_Parser_Exception($e->getMessage());
-        }
-
-        foreach ($quads as $quad) {
-            // Ignore named graphs
-            if (null !== $quad->getGraph()) {
-                continue;
-            }
-
-            $subject = (string) $quad->getSubject();
-            if ('_:' === substr($subject, 0, 2)) {
-                $subject = $this->remapBnode($subject);
-            }
-
-            $predicate = (string) $quad->getProperty();
-
-            if ($quad->getObject() instanceof \ML\IRI\IRI) {
-                $object = array(
-                    'type' => 'uri',
-                    'value' => (string) $quad->getObject()
-                );
-
-                if ('_:' === substr($object['value'], 0, 2)) {
-                    $object = array(
-                        'type' => 'bnode',
-                        'value' => $this->remapBnode($object['value'])
-                    );
-                }
-            } else {
-                $object = array(
-                    'type' => 'literal',
-                    'value' => $quad->getObject()->getValue()
-                );
-
-                if ($quad->getObject() instanceof \ML\JsonLD\LanguageTaggedString) {
-                    $object['lang'] = $quad->getObject()->getLanguage();
-                } else {
-                    $object['datatype'] = $quad->getObject()->getType();
-                }
-            }
-
-            $this->addTriple($subject, $predicate, $object);
-        }
-
-        return $this->tripleCount;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Ntriples.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Ntriples.php
deleted file mode 100644
index 01ebf9d..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Ntriples.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * A pure-php class to parse N-Triples with no dependancies.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Ntriples extends EasyRdf_Parser
-{
-    /**
-     * Decodes an encoded N-Triples string. Any \-escape sequences are substituted
-     * with their decoded value.
-     *
-     * @param  string $str An encoded N-Triples string.
-     * @return The unencoded string.
-     **/
-    protected function unescapeString($str)
-    {
-        if (strpos($str, '\\') === false) {
-            return $str;
-        }
-
-        $mappings = array(
-            't' => chr(0x09),
-            'b' => chr(0x08),
-            'n' => chr(0x0A),
-            'r' => chr(0x0D),
-            'f' => chr(0x0C),
-            '\"' => chr(0x22),
-            '\'' => chr(0x27)
-        );
-        foreach ($mappings as $in => $out) {
-            $str = preg_replace('/\x5c([' . $in . '])/', $out, $str);
-        }
-
-        if (stripos($str, '\u') === false) {
-            return $str;
-        }
-
-        while (preg_match('/\\\(U)([0-9A-F]{8})/', $str, $matches) ||
-               preg_match('/\\\(u)([0-9A-F]{4})/', $str, $matches)) {
-            $no = hexdec($matches[2]);
-            if ($no < 128) {                // 0x80
-                $char = chr($no);
-            } elseif ($no < 2048) {         // 0x800
-                $char = chr(($no >> 6) + 192) .
-                        chr(($no & 63) + 128);
-            } elseif ($no < 65536) {        // 0x10000
-                $char = chr(($no >> 12) + 224) .
-                        chr((($no >> 6) & 63) + 128) .
-                        chr(($no & 63) + 128);
-            } elseif ($no < 2097152) {      // 0x200000
-                $char = chr(($no >> 18) + 240) .
-                        chr((($no >> 12) & 63) + 128) .
-                        chr((($no >> 6) & 63) + 128) .
-                        chr(($no & 63) + 128);
-            } else {
-                # FIXME: throw an exception instead?
-                $char = '';
-            }
-            $str = str_replace('\\' . $matches[1] . $matches[2], $char, $str);
-        }
-        return $str;
-    }
-
-    /**
-     * @ignore
-     */
-    protected function parseNtriplesSubject($sub, $lineNum)
-    {
-        if (preg_match('/<([^<>]+)>/', $sub, $matches)) {
-            return $this->unescapeString($matches[1]);
-        } elseif (preg_match('/_:([A-Za-z0-9]*)/', $sub, $matches)) {
-            if (empty($matches[1])) {
-                return $this->graph->newBNodeId();
-            } else {
-                $nodeid = $this->unescapeString($matches[1]);
-                return $this->remapBnode($nodeid);
-            }
-        } else {
-            throw new EasyRdf_Parser_Exception(
-                "Failed to parse subject: $sub",
-                $lineNum
-            );
-        }
-    }
-
-    /**
-     * @ignore
-     */
-    protected function parseNtriplesObject($obj, $lineNum)
-    {
-        if (preg_match('/"(.+)"\^\^<([^<>]+)>/', $obj, $matches)) {
-            return array(
-                'type' => 'literal',
-                'value' => $this->unescapeString($matches[1]),
-                'datatype' => $this->unescapeString($matches[2])
-            );
-        } elseif (preg_match('/"(.+)"@([\w\-]+)/', $obj, $matches)) {
-            return array(
-                'type' => 'literal',
-                'value' => $this->unescapeString($matches[1]),
-                'lang' => $this->unescapeString($matches[2])
-            );
-        } elseif (preg_match('/"(.*)"/', $obj, $matches)) {
-            return array('type' => 'literal', 'value' => $this->unescapeString($matches[1]));
-        } elseif (preg_match('/<([^<>]+)>/', $obj, $matches)) {
-            return array('type' => 'uri', 'value' => $matches[1]);
-        } elseif (preg_match('/_:([A-Za-z0-9]*)/', $obj, $matches)) {
-            if (empty($matches[1])) {
-                return array(
-                    'type' => 'bnode',
-                    'value' => $this->graph->newBNodeId()
-                );
-            } else {
-                $nodeid = $this->unescapeString($matches[1]);
-                return array(
-                    'type' => 'bnode',
-                    'value' => $this->remapBnode($nodeid)
-                );
-            }
-        } else {
-            throw new EasyRdf_Parser_Exception(
-                "Failed to parse object: $obj",
-                $lineNum
-            );
-        }
-    }
-
-    /**
-      * Parse an N-Triples document into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'ntriples') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_Ntriples does not support: $format"
-            );
-        }
-
-        $lines = preg_split('/\x0D?\x0A/', strval($data));
-        foreach ($lines as $index => $line) {
-            $lineNum = $index + 1;
-            if (preg_match('/^\s*#/', $line)) {
-                # Comment
-                continue;
-            } elseif (preg_match('/^\s*(.+?)\s+<([^<>]+?)>\s+(.+?)\s*\.\s*$/', $line, $matches)) {
-                $this->addTriple(
-                    $this->parseNtriplesSubject($matches[1], $lineNum),
-                    $this->unescapeString($matches[2]),
-                    $this->parseNtriplesObject($matches[3], $lineNum)
-                );
-            } elseif (preg_match('/^\s*$/', $line)) {
-                # Blank line
-                continue;
-            } else {
-                throw new EasyRdf_Parser_Exception(
-                    "Failed to parse statement",
-                    $lineNum
-                );
-            }
-        }
-
-        return $this->tripleCount;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rapper.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rapper.php
deleted file mode 100644
index ed12198..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rapper.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse RDF using the 'rapper' command line tool.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Rapper extends EasyRdf_Parser_Json
-{
-    private $rapperCmd = null;
-
-    const MINIMUM_RAPPER_VERSION = '1.4.17';
-
-    /**
-     * Constructor
-     *
-     * @param string $rapperCmd Optional path to the rapper command to use.
-     * @return object EasyRdf_Parser_Rapper
-     */
-    public function __construct($rapperCmd = 'rapper')
-    {
-        $result = exec("$rapperCmd --version 2>/dev/null", $output, $status);
-        if ($status != 0) {
-            throw new EasyRdf_Exception(
-                "Failed to execute the command '$rapperCmd': $result"
-            );
-        } elseif (version_compare($result, self::MINIMUM_RAPPER_VERSION) < 0) {
-            throw new EasyRdf_Exception(
-                "Version ".self::MINIMUM_RAPPER_VERSION." or higher of rapper is required."
-            );
-        } else {
-            $this->rapperCmd = $rapperCmd;
-        }
-    }
-
-    /**
-      * Parse an RDF document into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        $json = EasyRdf_Utils::execCommandPipe(
-            $this->rapperCmd,
-            array(
-                '--quiet',
-                '--input', $format,
-                '--output', 'json',
-                '--ignore-errors',
-                '--input-uri', $baseUri,
-                '--output-uri', '-', '-'
-            ),
-            $data
-        );
-
-        // Parse in the JSON
-        return parent::parse($graph, $json, 'json', $baseUri);
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfPhp.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfPhp.php
deleted file mode 100644
index cd0ec82..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfPhp.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse RDF with no external dependancies.
- *
- * http://n2.talis.com/wiki/RDF_PHP_Specification
- * docs/appendix-a-rdf-formats-php.md
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_RdfPhp extends EasyRdf_Parser
-{
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_RdfPhp
-     */
-    public function __construct()
-    {
-    }
-
-    /**
-      * Parse RDF/PHP into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        $this->checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'php') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_RdfPhp does not support: $format"
-            );
-        }
-
-        foreach ($data as $subject => $properties) {
-            if (substr($subject, 0, 2) === '_:') {
-                $subject = $this->remapBnode($subject);
-            } elseif (preg_match('/^\w+$/', $subject)) {
-                # Cope with invalid RDF/JSON serialisations that
-                # put the node name in, without the _: prefix
-                # (such as net.fortytwo.sesametools.rdfjson)
-                $subject = $this->remapBnode($subject);
-            }
-
-            foreach ($properties as $property => $objects) {
-                foreach ($objects as $object) {
-                    if ($object['type'] === 'bnode') {
-                        $object['value'] = $this->remapBnode($object['value']);
-                    }
-                    $this->addTriple($subject, $property, $object);
-                }
-            }
-        }
-
-        return $this->tripleCount;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfXml.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfXml.php
deleted file mode 100644
index bfbbd30..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfXml.php
+++ /dev/null
@@ -1,812 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2010-2013 Nicholas J Humfrey
- * Copyright (c) 2004-2010 Benjamin Nowack (based on ARC2_RDFXMLParser.php)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2010-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-
-/**
- * A pure-php class to parse RDF/XML.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- *             Copyright (c) 2004-2010 Benjamin Nowack (based on ARC2_RDFXMLParser.php)
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_RdfXml extends EasyRdf_Parser
-{
-    private $state;
-    private $xLang;
-    private $xBase;
-    private $xml;
-    private $rdf;
-    private $nsp;
-    private $sStack;
-    private $sCount;
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_RdfXml
-     */
-    public function __construct()
-    {
-    }
-
-    /** @ignore */
-    protected function init($graph, $base)
-    {
-        $this->graph = $graph;
-        $this->state = 0;
-        $this->xLang = null;
-        $this->xBase = new EasyRdf_ParsedUri($base);
-        $this->xml = 'http://www.w3.org/XML/1998/namespace';
-        $this->rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
-        $this->nsp = array($this->xml => 'xml', $this->rdf => 'rdf');
-        $this->sStack = array();
-        $this->sCount = 0;
-    }
-
-    /** @ignore */
-    protected function initXMLParser()
-    {
-        if (!isset($this->xmlParser)) {
-            $parser = xml_parser_create_ns('UTF-8', '');
-            xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 0);
-            xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
-            xml_set_element_handler($parser, 'startElementHandler', 'endElementHandler');
-            xml_set_character_data_handler($parser, 'cdataHandler');
-            xml_set_start_namespace_decl_handler($parser, 'newNamespaceHandler');
-            xml_set_object($parser, $this);
-            $this->xmlParser = $parser;
-        }
-    }
-
-    /** @ignore */
-    protected function pushS(&$s)
-    {
-        $s['pos'] = $this->sCount;
-        $this->sStack[$this->sCount] = $s;
-        $this->sCount++;
-    }
-
-    /** @ignore */
-    protected function popS()
-    {
-        $r = array();
-        $this->sCount--;
-        for ($i = 0, $iMax = $this->sCount; $i < $iMax; $i++) {
-            $r[$i] = $this->sStack[$i];
-        }
-        $this->sStack = $r;
-    }
-
-    /** @ignore */
-    protected function updateS($s)
-    {
-        $this->sStack[$s['pos']] = $s;
-    }
-
-    /** @ignore */
-    protected function getParentS()
-    {
-        if ($this->sCount && isset($this->sStack[$this->sCount - 1])) {
-            return $this->sStack[$this->sCount - 1];
-        } else {
-            return false;
-        }
-    }
-
-    /** @ignore */
-    protected function getParentXBase()
-    {
-        if ($p = $this->getParentS()) {
-            if (isset($p['p_x_base']) && $p['p_x_base']) {
-                return $p['p_x_base'];
-            } elseif (isset($p['x_base'])) {
-                return $p['x_base'];
-            } else {
-                return '';
-            }
-        } else {
-            return $this->xBase;
-        }
-    }
-
-    /** @ignore */
-    protected function getParentXLang()
-    {
-        if ($p = $this->getParentS()) {
-            if (isset($p['p_x_lang']) && $p['p_x_lang']) {
-                return $p['p_x_lang'];
-            } elseif (isset($p['x_lang'])) {
-                return $p['x_lang'];
-            } else {
-                return null;
-            }
-        } else {
-            return $this->xLang;
-        }
-    }
-
-    /** @ignore */
-    protected function splitURI($v)
-    {
-        /* auto-splitting on / or # */
-        if (preg_match('/^(.*[\/\#])([^\/\#]+)$/', $v, $m)) {
-            return array($m[1], $m[2]);
-        }
-        /* auto-splitting on last special char, e.g. urn:foo:bar */
-        if (preg_match('/^(.*[\:\/])([^\:\/]+)$/', $v, $m)) {
-            return array($m[1], $m[2]);
-        }
-        return array($v, '');
-    }
-
-    /** @ignore */
-    protected function add($s, $p, $o, $sType, $oType, $oDatatype = null, $oLang = null)
-    {
-        $this->addTriple(
-            $s,
-            $p,
-            array(
-                'type' => $oType,
-                'value' => $o,
-                'lang' => $oLang,
-                'datatype' => $oDatatype
-            )
-        );
-    }
-
-    /** @ignore */
-    protected function reify($t, $s, $p, $o, $sType, $oType, $oDatatype = null, $oLang = null)
-    {
-        $this->add($t, $this->rdf.'type', $this->rdf.'Statement', 'uri', 'uri');
-        $this->add($t, $this->rdf.'subject', $s, 'uri', $sType);
-        $this->add($t, $this->rdf.'predicate', $p, 'uri', 'uri');
-        $this->add($t, $this->rdf.'object', $o, 'uri', $oType, $oDatatype, $oLang);
-    }
-
-    /** @ignore */
-    protected function startElementHandler($p, $t, $a)
-    {
-        switch($this->state) {
-            case 0:
-                return $this->startState0($t, $a);
-            case 1:
-                return $this->startState1($t, $a);
-            case 2:
-                return $this->startState2($t, $a);
-            case 4:
-                return $this->startState4($t, $a);
-            case 5:
-                return $this->startState5($t, $a);
-            case 6:
-                return $this->startState6($t, $a);
-            default:
-                throw new EasyRdf_Parser_Exception(
-                    'startElementHandler() called at state ' . $this->state . ' in '.$t
-                );
-        }
-    }
-
-    /** @ignore */
-    protected function endElementHandler($p, $t)
-    {
-        switch($this->state){
-            case 1:
-                return $this->endState1($t);
-            case 2:
-                return $this->endState2($t);
-            case 3:
-                return $this->endState3($t);
-            case 4:
-                return $this->endState4($t);
-            case 5:
-                return $this->endState5($t);
-            case 6:
-                return $this->endState6($t);
-            default:
-                throw new EasyRdf_Parser_Exception(
-                    'endElementHandler() called at state ' . $this->state . ' in '.$t
-                );
-        }
-    }
-
-    /** @ignore */
-    protected function cdataHandler($p, $d)
-    {
-        switch($this->state){
-            case 4:
-                return $this->cdataState4($d);
-            case 6:
-                return $this->cdataState6($d);
-            default:
-                return false;
-        }
-    }
-
-    /** @ignore */
-    protected function newNamespaceHandler($p, $prf, $uri)
-    {
-        $this->nsp[$uri] = isset($this->nsp[$uri]) ? $this->nsp[$uri] : $prf;
-    }
-
-    /** @ignore */
-    protected function startState0($t, $a)
-    {
-        $this->state = 1;
-        if ($t !== $this->rdf.'RDF') {
-            $this->startState1($t, $a);
-        } else {
-            if (isset($a[$this->xml.'base'])) {
-                $this->xBase = $this->xBase->resolve($a[$this->xml.'base']);
-            }
-        }
-    }
-
-    /** @ignore */
-    protected function startState1($t, $a)
-    {
-        $s = array(
-            'x_base' => $this->getParentXBase(),
-            'x_lang' => $this->getParentXLang(),
-            'li_count' => 0,
-        );
-
-        if (isset($a[$this->xml.'base'])) {
-            $s['x_base'] = $this->xBase->resolve($a[$this->xml.'base']);
-        }
-
-        if (isset($a[$this->xml.'lang'])) {
-            $s['x_lang'] = $a[$this->xml.'lang'];
-        }
-
-        /* ID */
-        if (isset($a[$this->rdf.'ID'])) {
-            $s['type'] = 'uri';
-            $s['value'] = $s['x_base']->resolve('#'.$a[$this->rdf.'ID']);
-            /* about */
-        } elseif (isset($a[$this->rdf.'about'])) {
-            $s['type'] = 'uri';
-            $s['value'] = $s['x_base']->resolve($a[$this->rdf.'about']);
-            /* bnode */
-        } else {
-            $s['type'] = 'bnode';
-            if (isset($a[$this->rdf.'nodeID'])) {
-                $s['value'] = $this->remapBnode($a[$this->rdf.'nodeID']);
-            } else {
-                $s['value'] = $this->graph->newBNodeId();
-            }
-        }
-
-        /* sub-node */
-        if ($this->state === 4) {
-            $supS = $this->getParentS();
-            /* new collection */
-            if (isset($supS['o_is_coll']) && $supS['o_is_coll']) {
-                $coll = array(
-                    'type' => 'bnode',
-                    'value' => $this->graph->newBNodeId(),
-                    'is_coll' => true,
-                    'x_base' => $s['x_base'],
-                    'x_lang' => $s['x_lang']
-                );
-                $this->add($supS['value'], $supS['p'], $coll['value'], $supS['type'], $coll['type']);
-                $this->add($coll['value'], $this->rdf.'first', $s['value'], $coll['type'], $s['type']);
-                $this->pushS($coll);
-
-            } elseif (isset($supS['is_coll']) && $supS['is_coll']) {
-                /* new entry in existing coll */
-                $coll = array(
-                'type' => 'bnode',
-                'value' => $this->graph->newBNodeId(),
-                'is_coll' => true,
-                'x_base' => $s['x_base'],
-                'x_lang' => $s['x_lang']
-                );
-                $this->add($supS['value'], $this->rdf.'rest', $coll['value'], $supS['type'], $coll['type']);
-                $this->add($coll['value'], $this->rdf.'first', $s['value'], $coll['type'], $s['type']);
-                $this->pushS($coll);
-                /* normal sub-node */
-            } elseif (isset($supS['p']) && $supS['p']) {
-                $this->add($supS['value'], $supS['p'], $s['value'], $supS['type'], $s['type']);
-            }
-        }
-        /* typed node */
-        if ($t !== $this->rdf.'Description') {
-            $this->add($s['value'], $this->rdf.'type', $t, $s['type'], 'uri');
-        }
-        /* (additional) typing attr */
-        if (isset($a[$this->rdf.'type'])) {
-            $this->add($s['value'], $this->rdf.'type', $a[$this->rdf.'type'], $s['type'], 'uri');
-        }
-
-        /* Seq|Bag|Alt */
-        // if (in_array($t, array($this->rdf.'Seq', $this->rdf.'Bag', $this->rdf.'Alt'))) {
-        //     # FIXME: what is this?
-        //     $s['is_con'] = true;
-        // }
-
-        /* any other attrs (skip rdf and xml, except rdf:_, rdf:value, rdf:Seq) */
-        foreach ($a as $k => $v) {
-            if (((strpos($k, $this->xml) === false) && (strpos($k, $this->rdf) === false)) ||
-                preg_match('/(\_[0-9]+|value|Seq|Bag|Alt|Statement|Property|List)$/', $k)) {
-                if (strpos($k, ':')) {
-                    $this->add($s['value'], $k, $v, $s['type'], 'literal', null, $s['x_lang']);
-                }
-            }
-        }
-        $this->pushS($s);
-        $this->state = 2;
-    }
-
-    /** @ignore */
-    protected function startState2($t, $a)
-    {
-        $s = $this->getParentS();
-        foreach (array('p_x_base', 'p_x_lang', 'p_id', 'o_is_coll') as $k) {
-            unset($s[$k]);
-        }
-        /* base */
-        if (isset($a[$this->xml.'base'])) {
-            $s['p_x_base'] = $s['x_base']->resolve($a[$this->xml.'base']);
-        }
-        $b = isset($s['p_x_base']) && $s['p_x_base'] ? $s['p_x_base'] : $s['x_base'];
-        /* lang */
-        if (isset($a[$this->xml.'lang'])) {
-            $s['p_x_lang'] = $a[$this->xml.'lang'];
-        }
-        $l = isset($s['p_x_lang']) && $s['p_x_lang'] ? $s['p_x_lang'] : $s['x_lang'];
-        /* adjust li */
-        if ($t === $this->rdf.'li') {
-            $s['li_count']++;
-            $t = $this->rdf.'_'.$s['li_count'];
-        }
-        /* set p */
-        $s['p'] = $t;
-        /* reification */
-        if (isset($a[$this->rdf.'ID'])) {
-            $s['p_id'] = $a[$this->rdf.'ID'];
-        }
-        $o = array('value' => null, 'type' => null, 'x_base' => $b, 'x_lang' => $l);
-        /* resource/rdf:resource */
-        if (isset($a['resource'])) {
-            $a[$this->rdf.'resource'] = $a['resource'];
-            unset($a['resource']);
-        }
-        if (isset($a[$this->rdf.'resource'])) {
-            $o['type'] = 'uri';
-            $o['value'] = $b->resolve($a[$this->rdf.'resource']);
-            $this->add($s['value'], $s['p'], $o['value'], $s['type'], $o['type']);
-            /* type */
-            if (isset($a[$this->rdf.'type'])) {
-                $this->add(
-                    $o['value'],
-                    $this->rdf.'type',
-                    $a[$this->rdf.'type'],
-                    'uri',
-                    'uri'
-                );
-            }
-            /* reification */
-            if (isset($s['p_id'])) {
-                $this->reify(
-                    $b->resolve('#'.$s['p_id']),
-                    $s['value'],
-                    $s['p'],
-                    $o['value'],
-                    $s['type'],
-                    $o['type']
-                );
-                unset($s['p_id']);
-            }
-            $this->state = 3;
-        } elseif (isset($a[$this->rdf.'nodeID'])) {
-            /* named bnode */
-            $o['value'] = $this->remapBnode($a[$this->rdf.'nodeID']);
-            $o['type'] = 'bnode';
-            $this->add($s['value'], $s['p'], $o['value'], $s['type'], $o['type']);
-            $this->state = 3;
-            /* reification */
-            if (isset($s['p_id'])) {
-                $this->reify(
-                    $b->resolve('#'.$s['p_id']),
-                    $s['value'],
-                    $s['p'],
-                    $o['value'],
-                    $s['type'],
-                    $o['type']
-                );
-            }
-            /* parseType */
-        } elseif (isset($a[$this->rdf.'parseType'])) {
-            if ($a[$this->rdf.'parseType'] === 'Literal') {
-                $s['o_xml_level'] = 0;
-                $s['o_xml_data'] = '';
-                $s['p_xml_literal_level'] = 0;
-                $s['ns'] = array();
-                $this->state = 6;
-            } elseif ($a[$this->rdf.'parseType'] === 'Resource') {
-                $o['value'] = $this->graph->newBNodeId();
-                $o['type'] = 'bnode';
-                $o['hasClosingTag'] = 0;
-                $this->add($s['value'], $s['p'], $o['value'], $s['type'], $o['type']);
-                $this->pushS($o);
-                /* reification */
-                if (isset($s['p_id'])) {
-                    $this->reify(
-                        $b->resolve('#'.$s['p_id']),
-                        $s['value'],
-                        $s['p'],
-                        $o['value'],
-                        $s['type'],
-                        $o['type']
-                    );
-                    unset($s['p_id']);
-                }
-                $this->state = 2;
-            } elseif ($a[$this->rdf.'parseType'] === 'Collection') {
-                $s['o_is_coll'] = true;
-                $this->state = 4;
-            }
-        } else {
-            /* sub-node or literal */
-            $s['o_cdata'] = '';
-            if (isset($a[$this->rdf.'datatype'])) {
-                $s['o_datatype'] = $a[$this->rdf.'datatype'];
-            }
-            $this->state = 4;
-        }
-        /* any other attrs (skip rdf and xml) */
-        foreach ($a as $k => $v) {
-            if (((strpos($k, $this->xml) === false) &&
-             (strpos($k, $this->rdf) === false)) ||
-             preg_match('/(\_[0-9]+|value)$/', $k)) {
-                if (strpos($k, ':')) {
-                    if (!$o['value']) {
-                        $o['value'] = $this->graph->newBNodeId();
-                        $o['type'] = 'bnode';
-                        $this->add($s['value'], $s['p'], $o['value'], $s['type'], $o['type']);
-                    }
-                    /* reification */
-                    if (isset($s['p_id'])) {
-                        $this->reify(
-                            $b->resolve('#'.$s['p_id']),
-                            $s['value'],
-                            $s['p'],
-                            $o['value'],
-                            $s['type'],
-                            $o['type']
-                        );
-                        unset($s['p_id']);
-                    }
-                    $this->add($o['value'], $k, $v, $o['type'], 'literal');
-                    $this->state = 3;
-                }
-            }
-        }
-        $this->updateS($s);
-    }
-
-    /** @ignore */
-    protected function startState4($t, $a)
-    {
-        return $this->startState1($t, $a);
-    }
-
-    /** @ignore */
-    protected function startState5($t, $a)
-    {
-        $this->state = 4;
-        return $this->startState4($t, $a);
-    }
-
-    /** @ignore */
-    protected function startState6($t, $a)
-    {
-        $s = $this->getParentS();
-        $data = isset($s['o_xml_data']) ? $s['o_xml_data'] : '';
-        $ns = isset($s['ns']) ? $s['ns'] : array();
-        $parts = $this->splitURI($t);
-        if (count($parts) === 1) {
-            $data .= '<'.$t;
-        } else {
-            $nsUri = $parts[0];
-            $name = $parts[1];
-            if (!isset($this->nsp[$nsUri])) {
-                foreach ($this->nsp as $tmp1 => $tmp2) {
-                    if (strpos($t, $tmp1) === 0) {
-                        $nsUri = $tmp1;
-                        $name = substr($t, strlen($tmp1));
-                        break;
-                    }
-                }
-            }
-
-            $nsp = isset($this->nsp[$nsUri]) ? $this->nsp[$nsUri] : '';
-            $data .= $nsp ? '<' . $nsp . ':' . $name : '<' . $name;
-            /* ns */
-            if (!isset($ns[$nsp.'='.$nsUri]) || !$ns[$nsp.'='.$nsUri]) {
-                $data .= $nsp ? ' xmlns:'.$nsp.'="'.$nsUri.'"' : ' xmlns="'.$nsUri.'"';
-                $ns[$nsp.'='.$nsUri] = true;
-                $s['ns'] = $ns;
-            }
-        }
-        foreach ($a as $k => $v) {
-            $parts = $this->splitURI($k);
-            if (count($parts) === 1) {
-                $data .= ' '.$k.'="'.$v.'"';
-            } else {
-                $nsUri = $parts[0];
-                $name = $parts[1];
-                $nsp = isset($this->nsp[$nsUri]) ? $this->nsp[$nsUri] : '';
-                $data .= $nsp ? ' '.$nsp.':'.$name.'="'.$v.'"' : ' '.$name.'="'.$v.'"' ;
-            }
-        }
-        $data .= '>';
-        $s['o_xml_data'] = $data;
-        $s['o_xml_level'] = isset($s['o_xml_level']) ? $s['o_xml_level'] + 1 : 1;
-        if ($t == $s['p']) {/* xml container prop */
-            $s['p_xml_literal_level'] = isset($s['p_xml_literal_level']) ? $s['p_xml_literal_level'] + 1 : 1;
-        }
-        $this->updateS($s);
-    }
-
-    /** @ignore */
-    protected function endState1($t)
-    {
-        /* end of doc */
-        $this->state = 0;
-    }
-
-    /** @ignore */
-    protected function endState2($t)
-    {
-        /* expecting a prop, getting a close */
-        if ($s = $this->getParentS()) {
-            $hasClosingTag = (isset($s['hasClosingTag']) && !$s['hasClosingTag']) ? 0 : 1;
-            $this->popS();
-            $this->state = 5;
-            if ($s = $this->getParentS()) {
-                /* new s */
-                if (!isset($s['p']) || !$s['p']) {
-                    /* p close after collection|parseType=Resource|node close after p close */
-                    $this->state = $this->sCount ? 4 : 1;
-                    if (!$hasClosingTag) {
-                        $this->state = 2;
-                    }
-                } elseif (!$hasClosingTag) {
-                    $this->state = 2;
-                }
-            }
-        }
-    }
-
-    /** @ignore */
-    protected function endState3($t)
-    {
-        /* p close */
-        $this->state = 2;
-    }
-
-    /** @ignore */
-    protected function endState4($t)
-    {
-        /* empty p | pClose after cdata | pClose after collection */
-        if ($s = $this->getParentS()) {
-            $b = isset($s['p_x_base']) && $s['p_x_base'] ?
-                $s['p_x_base'] : (isset($s['x_base']) ? $s['x_base'] : '');
-            if (isset($s['is_coll']) && $s['is_coll']) {
-                $this->add($s['value'], $this->rdf.'rest', $this->rdf.'nil', $s['type'], 'uri');
-                /* back to collection start */
-                while ((!isset($s['p']) || ($s['p'] != $t))) {
-                    $subS = $s;
-                    $this->popS();
-                    $s = $this->getParentS();
-                }
-                /* reification */
-                if (isset($s['p_id']) && $s['p_id']) {
-                    $this->reify(
-                        $b->resolve('#'.$s['p_id']),
-                        $s['value'],
-                        $s['p'],
-                        $subS['value'],
-                        $s['type'],
-                        $subS['type']
-                    );
-                }
-                unset($s['p']);
-                $this->updateS($s);
-            } else {
-                $dt = isset($s['o_datatype']) ? $s['o_datatype'] : null;
-                $l = isset($s['p_x_lang']) && $s['p_x_lang'] ?
-                     $s['p_x_lang'] : (isset($s['x_lang']) ? $s['x_lang'] : null);
-                $o = array('type' => 'literal', 'value' => $s['o_cdata']);
-                $this->add(
-                    $s['value'],
-                    $s['p'],
-                    $o['value'],
-                    $s['type'],
-                    $o['type'],
-                    $dt,
-                    $l
-                );
-                /* reification */
-                if (isset($s['p_id']) && $s['p_id']) {
-                    $this->reify(
-                        $b->resolve('#'.$s['p_id']),
-                        $s['value'],
-                        $s['p'],
-                        $o['value'],
-                        $s['type'],
-                        $o['type'],
-                        $dt,
-                        $l
-                    );
-                }
-                unset($s['o_cdata']);
-                unset($s['o_datatype']);
-                unset($s['p']);
-                $this->updateS($s);
-            }
-            $this->state = 2;
-        }
-    }
-
-    /** @ignore */
-    protected function endState5($t)
-    {
-        /* p close */
-        if ($s = $this->getParentS()) {
-            unset($s['p']);
-            $this->updateS($s);
-            $this->state = 2;
-        }
-    }
-
-    /** @ignore */
-    protected function endState6($t)
-    {
-        if ($s = $this->getParentS()) {
-            $l = isset($s['p_x_lang']) && $s['p_x_lang'] ?
-                $s['p_x_lang'] :
-                (isset($s['x_lang']) ? $s['x_lang'] : null);
-            $data = $s['o_xml_data'];
-            $level = $s['o_xml_level'];
-            if ($level === 0) {
-                /* pClose */
-                $this->add(
-                    $s['value'],
-                    $s['p'],
-                    trim($data, ' '),
-                    $s['type'],
-                    'literal',
-                    $this->rdf.'XMLLiteral',
-                    $l
-                );
-                unset($s['o_xml_data']);
-                $this->state = 2;
-            } else {
-                $parts = $this->splitURI($t);
-                if (count($parts) == 1) {
-                    $data .= '</'.$t.'>';
-                } else {
-                    $nsUri = $parts[0];
-                    $name = $parts[1];
-                    if (!isset($this->nsp[$nsUri])) {
-                        foreach ($this->nsp as $tmp1 => $tmp2) {
-                            if (strpos($t, $tmp1) === 0) {
-                                $nsUri = $tmp1;
-                                $name = substr($t, strlen($tmp1));
-                                break;
-                            }
-                        }
-                    }
-                    $nsp = isset($this->nsp[$nsUri]) ? $this->nsp[$nsUri] : '';
-                    $data .= $nsp ? '</'.$nsp.':'.$name.'>' : '</'.$name.'>';
-                }
-                $s['o_xml_data'] = $data;
-                $s['o_xml_level'] = $level - 1;
-                if ($t == $s['p']) {
-                    /* xml container prop */
-                    $s['p_xml_literal_level']--;
-                }
-            }
-            $this->updateS($s);
-        }
-    }
-
-    /** @ignore */
-    protected function cdataState4($d)
-    {
-        if ($s = $this->getParentS()) {
-            $s['o_cdata'] = isset($s['o_cdata']) ? $s['o_cdata'] . $d : $d;
-            $this->updateS($s);
-        }
-    }
-
-    /** @ignore */
-    protected function cdataState6($d)
-    {
-        if ($s = $this->getParentS()) {
-            if (isset($s['o_xml_data']) || preg_match('/[\n\r]/', $d) || trim($d)) {
-                $d = htmlspecialchars($d, ENT_NOQUOTES);
-                $s['o_xml_data'] = isset($s['o_xml_data']) ? $s['o_xml_data'] . $d : $d;
-            }
-            $this->updateS($s);
-        }
-    }
-
-    /**
-      * Parse an RDF/XML document into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'rdfxml') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_RdfXml does not support: $format"
-            );
-        }
-
-        $this->init($graph, $baseUri);
-        $this->resetBnodeMap();
-
-        /* xml parser */
-        $this->initXMLParser();
-
-        /* parse */
-        if (!xml_parse($this->xmlParser, $data, false)) {
-            $message = xml_error_string(xml_get_error_code($this->xmlParser));
-            throw new EasyRdf_Parser_Exception(
-                'XML error: "' . $message . '"',
-                xml_get_current_line_number($this->xmlParser),
-                xml_get_current_column_number($this->xmlParser)
-            );
-        }
-
-        xml_parser_free($this->xmlParser);
-
-        return $this->tripleCount;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rdfa.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rdfa.php
deleted file mode 100644
index 58eebe6..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rdfa.php
+++ /dev/null
@@ -1,727 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2012-2013 Nicholas J Humfrey.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- *             Copyright (c) 1997-2006 Aduna (http://www.aduna-software.com/)
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse RDFa 1.1 with no external dependancies.
- *
- * http://www.w3.org/TR/rdfa-core/
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2012-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Rdfa extends EasyRdf_Parser
-{
-    const XML_NS = 'http://www.w3.org/XML/1998/namespace';
-    const RDF_XML_LITERAL = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral';
-    const TERM_REGEXP = '/^([a-zA-Z_])([0-9a-zA-Z_\.-]*)$/';
-
-    public $debug = false;
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_Rdfa
-     */
-    public function __construct()
-    {
-    }
-
-    protected function addTriple($resource, $property, $value)
-    {
-        if ($this->debug) {
-            print "Adding triple: $resource -> $property -> ".$value['type'].':'.$value['value']."\n";
-        }
-        $count = $this->graph->add($resource, $property, $value);
-        $this->tripleCount += $count;
-        return $count;
-    }
-
-    protected function generateList($subject, $property, $list)
-    {
-        $current = $subject;
-        $prop = $property;
-
-        // Output a blank node for each item in the list
-        foreach ($list as $item) {
-            $newNode = $this->graph->newBNodeId();
-            $this->addTriple($current, $prop, array('type' => 'bnode', 'value' => $newNode));
-            $this->addTriple($newNode, 'rdf:first', $item);
-
-            $current = $newNode;
-            $prop = 'rdf:rest';
-        }
-
-        // Finally, terminate the list
-        $this->addTriple(
-            $current,
-            $prop,
-            array('type' => 'uri', 'value' => EasyRdf_Namespace::expand('rdf:nil'))
-        );
-    }
-
-    protected function addToList($listMapping, $property, $value)
-    {
-        if ($this->debug) {
-            print "Adding to list: $property -> ".$value['type'].':'.$value['value']."\n";
-        }
-
-        // Create property in the list mapping if it doesn't already exist
-        if (!isset($listMapping->$property)) {
-            $listMapping->$property = array();
-        }
-        array_push($listMapping->$property, $value);
-    }
-
-    protected function printNode($node, $depth)
-    {
-        $indent = str_repeat('  ', $depth);
-        print $indent;
-        switch($node->nodeType) {
-            case XML_ELEMENT_NODE:
-                print 'node';
-                break;
-            case XML_ATTRIBUTE_NODE:
-                print 'attr';
-                break;
-            case XML_TEXT_NODE:
-                print 'text';
-                break;
-            case XML_CDATA_SECTION_NODE:
-                print 'cdata';
-                break;
-            case XML_ENTITY_REF_NODE:
-                print 'entref';
-                break;
-            case XML_ENTITY_NODE:
-                print 'entity';
-                break;
-            case XML_PI_NODE:
-                print 'pi';
-                break;
-            case XML_COMMENT_NODE:
-                print 'comment';
-                break;
-            case XML_DOCUMENT_NODE:
-                print 'doc';
-                break;
-            case XML_DOCUMENT_TYPE_NODE:
-                print 'doctype';
-                break;
-            case XML_HTML_DOCUMENT_NODE:
-                print 'html';
-                break;
-            default:
-                throw new EasyRdf_Exception("unknown node type: ".$node->nodeType);
-                break;
-        }
-        print ' '.$node->nodeName."\n";
-
-        if ($node->hasAttributes()) {
-            foreach ($node->attributes as $attr) {
-                print $indent.' '.$attr->nodeName." => ".$attr->nodeValue."\n";
-            }
-        }
-    }
-
-    protected function guessTimeDatatype($value)
-    {
-        if (preg_match('/^-?\d{4}-\d{2}-\d{2}(Z|[\-\+]\d{2}:\d{2})?$/', $value)) {
-            return 'http://www.w3.org/2001/XMLSchema#date';
-        } elseif (preg_match('/^\d{2}:\d{2}:\d{2}(Z|[\-\+]\d{2}:\d{2})?$/', $value)) {
-            return 'http://www.w3.org/2001/XMLSchema#time';
-        } elseif (preg_match('/^-?\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|[\-\+]\d{2}:\d{2})?$/', $value)) {
-            return 'http://www.w3.org/2001/XMLSchema#dateTime';
-        } elseif (preg_match('/^P(\d+Y)?(\d+M)?(\d+D)?T?(\d+H)?(\d+M)?(\d+S)?$/', $value)) {
-            return 'http://www.w3.org/2001/XMLSchema#duration';
-        } elseif (preg_match('/^\d{4}$/', $value)) {
-            return 'http://www.w3.org/2001/XMLSchema#gYear';
-        } elseif (preg_match('/^\d{4}-\d{2}$/', $value)) {
-            return 'http://www.w3.org/2001/XMLSchema#gYearMonth';
-        } else {
-            return null;
-        }
-    }
-
-    protected function initialContext()
-    {
-        $context = array(
-            'prefixes' => array(),
-            'vocab' => null,
-            'subject' => $this->baseUri,
-            'property' => null,
-            'object' => null,
-            'terms' => array(),
-            'incompleteRels' => array(),
-            'incompleteRevs' => array(),
-            'listMapping' => null,
-            'lang' => null,
-            'path' => '',
-            'xmlns' => array(),
-        );
-
-        // Set the default prefix
-        $context['prefixes'][''] = 'http://www.w3.org/1999/xhtml/vocab#';
-
-        // RDFa 1.1 default term mapping
-        $context['terms']['describedby'] = 'http://www.w3.org/2007/05/powder-s#describedby';
-        $context['terms']['license'] = 'http://www.w3.org/1999/xhtml/vocab#license';
-        $context['terms']['role'] = 'http://www.w3.org/1999/xhtml/vocab#role';
-
-        return $context;
-    }
-
-    protected function expandCurie($node, &$context, $value)
-    {
-        if (preg_match('/^(\w*?):(.*)$/', $value, $matches)) {
-            list (, $prefix, $local) = $matches;
-            $prefix = strtolower($prefix);
-            if ($prefix === '_') {
-                // It is a bnode
-                return $this->remapBnode(substr($value, 2));
-            } elseif (empty($prefix) and $context['vocab']) {
-                // Empty prefix
-                return $context['vocab'] . $local;
-            } elseif (isset($context['prefixes'][$prefix])) {
-                return $context['prefixes'][$prefix] . $local;
-            } elseif ($uri = $node->lookupNamespaceURI($prefix)) {
-                return $uri . $local;
-            } elseif (!empty($prefix) and $uri = EasyRdf_Namespace::get($prefix)) {
-                // Expand using well-known prefixes
-                return $uri . $local;
-            }
-        }
-    }
-
-    protected function processUri($node, &$context, $value, $isProp = false)
-    {
-        if (preg_match('/^\[(.*)\]$/', $value, $matches)) {
-            // Safe CURIE
-            return $this->expandCurie($node, $context, $matches[1]);
-        } elseif (preg_match(self::TERM_REGEXP, $value) and $isProp) {
-            $term = strtolower($value);
-            if ($context['vocab']) {
-                return $context['vocab'] . $value;
-            } elseif (isset($context['terms'][$term])) {
-                return $context['terms'][$term];
-            }
-        } elseif (substr($value, 0, 2) === '_:' and $isProp) {
-            return null;
-        } else {
-            $uri = $this->expandCurie($node, $context, $value);
-            if ($uri) {
-                return $uri;
-            } else {
-                $parsed = new EasyRdf_ParsedUri($value);
-                if ($parsed->isAbsolute()) {
-                    return $value;
-                } elseif ($isProp) {
-                    // Properties can't be relative URIs
-                    return null;
-                } elseif ($this->baseUri) {
-                    return $this->baseUri->resolve($parsed);
-                }
-            }
-        }
-    }
-
-    protected function processUriList($node, $context, $values)
-    {
-        if (!$values) {
-            return array();
-        }
-
-        $uris = array();
-        foreach (preg_split('/\s+/', $values) as $value) {
-            $uri = $this->processUri($node, $context, $value, true);
-            if ($uri) {
-                array_push($uris, $uri);
-            }
-        }
-        return $uris;
-    }
-
-    protected function getUriAttribute($node, &$context, $attributes)
-    {
-        if (!is_array($attributes)) {
-            $attributes = array($attributes);
-        }
-
-        // Find the first attribute that returns a valid URI
-        foreach ($attributes as $attribute) {
-            if ($node->hasAttribute($attribute)) {
-                $value = $node->getAttribute($attribute);
-                $uri = $this->processUri($node, $context, $value);
-                if ($uri) {
-                    return $uri;
-                }
-            }
-        }
-    }
-
-    protected function processNode($node, &$context, $depth = 1)
-    {
-        if ($this->debug) {
-            $this->printNode($node, $depth);
-        }
-
-        // Step 1: establish local variables
-        $skip = false;
-        $subject = null;
-        $typedResource = null;
-        $object = null;
-        $rels = array();
-        $revs = array();
-        $lang = $context['lang'];
-        $incompleteRels = array();
-        $incompleteRevs = array();
-
-        if ($node->nodeType === XML_ELEMENT_NODE) {
-            $context['path'] .= '/' . $node->nodeName;
-
-            $content = $node->hasAttribute('content') ? $node->getAttribute('content') : null;
-            $datatype = $node->hasAttribute('datatype') ? $node->getAttribute('datatype') : null;
-            $property = $node->getAttribute('property') ? $node->getAttribute('property') : null;
-            $typeof = $node->getAttribute('typeof') ? $node->getAttribute('typeof') : null;
-
-            // Step 2: Default vocabulary
-            if ($node->hasAttribute('vocab')) {
-                $context['vocab'] = $node->getAttribute('vocab');
-                if ($context['vocab']) {
-                    $this->addTriple(
-                        $this->baseUri,
-                        'rdfa:usesVocabulary',
-                        array('type' => 'uri', 'value' => $context['vocab'])
-                    );
-                }
-            }
-
-            // Step 3: Set prefix mappings
-            // Support for deprecated xmlns if present in document
-            foreach ($context['xmlns'] as $prefix => $uri) {
-                if ($node->hasAttribute('xmlns:' . $prefix)) {
-                    $context['prefixes'][$prefix] = $node->getAttribute('xmlns:' . $prefix);
-                    if ($this->debug) {
-                        print "Prefix (xmlns): $prefix => $uri\n";
-                    }
-                }
-            }
-            if ($node->hasAttribute('prefix')) {
-                $mappings = preg_split('/\s+/', $node->getAttribute('prefix'));
-                while (count($mappings)) {
-                    $prefix = strtolower(array_shift($mappings));
-                    $uri = array_shift($mappings);
-
-                    if (substr($prefix, -1) === ':') {
-                        $prefix = substr($prefix, 0, -1);
-                    } else {
-                        continue;
-                    }
-
-                    if ($prefix === '_') {
-                        continue;
-                    } elseif (!empty($prefix)) {
-                        $context['prefixes'][$prefix] = $uri;
-                        if ($this->debug) {
-                            print "Prefix: $prefix => $uri\n";
-                        }
-                    }
-                }
-            }
-
-            // Step 4
-            if ($node->hasAttributeNS(self::XML_NS, 'lang')) {
-                $lang = $node->getAttributeNS(self::XML_NS, 'lang');
-            } elseif ($node->hasAttribute('lang')) {
-                $lang = $node->getAttribute('lang');
-            }
-
-            // HTML+RDFa 1.1: ignore rel and rev unless they contain CURIEs.
-            foreach (array('rel', 'rev') as $attr) {
-                if ($node->hasAttribute('property') and $node->hasAttribute($attr)) {
-                    // Quick check in case there are no CURIEs to deal with.
-                    if (strpos($node->getAttribute($attr), ':') === false) {
-                        $node->removeAttribute($attr);
-                    } else {
-                        // Only keep CURIEs.
-                        $curies = array();
-                        foreach (preg_split('/\s+/', $node->getAttribute($attr)) as $token) {
-                            if (strpos($token, ':')) {
-                                $curies[] = $token;
-                            }
-                        }
-                        $node->setAttribute($attr, implode(' ', $curies));
-                    }
-                }
-            }
-
-            $rels = $this->processUriList($node, $context, $node->getAttribute('rel'));
-            $revs = $this->processUriList($node, $context, $node->getAttribute('rev'));
-
-            if (!$node->hasAttribute('rel') and !$node->hasAttribute('rev')) {
-                // Step 5: Establish a new subject if no rel/rev
-                if ($property and is_null($content) and is_null($datatype)) {
-                    $subject = $this->getUriAttribute($node, $context, 'about');
-                    if ($typeof and !$subject) {
-                        $typedResource = $this->getUriAttribute(
-                            $node,
-                            $context,
-                            array('resource', 'href', 'src')
-                        );
-                        if (!$typedResource) {
-                            $typedResource = $this->graph->newBNodeId();
-                        }
-                        $object = $typedResource;
-                    }
-                } else {
-                    $subject = $this->getUriAttribute(
-                        $node,
-                        $context,
-                        array('about', 'resource', 'href', 'src')
-                    );
-                }
-
-                // Establish a subject if there isn't one
-                # FIXME: refactor this
-                if (is_null($subject)) {
-                    if ($context['path'] === '/html/head') {
-                        $subject = $context['object'];
-                    } elseif ($depth <= 2) {
-                        $subject = $this->baseUri;
-                    } elseif ($typeof and !$property) {
-                        $subject = $this->graph->newBNodeId();
-                    } else {
-                        if (!$property) {
-                            $skip = true;
-                        }
-                        $subject = $context['object'];
-                    }
-                }
-
-            } else {
-                // Step 6
-                // If the current element does contain a @rel or @rev attribute, then the next step is to
-                // establish both a value for new subject and a value for current object resource:
-
-                $subject = $this->getUriAttribute($node, $context, 'about');
-
-                $object = $this->getUriAttribute(
-                    $node,
-                    $context,
-                    array('resource', 'href', 'src')
-                );
-
-                if ($typeof) {
-                    if (!$object and !$subject) {
-                        $object = $this->graph->newBNodeId();
-                    }
-                    $typedResource = $subject ? $subject : $object;
-                }
-
-                # FIXME: if the element is the root element of the document
-                # then act as if there is an empty @about present
-                if (!$subject) {
-                    $subject = $context['object'];
-                }
-
-            }
-
-            # FIXME: better place for this?
-            if ($typeof and $subject and !$typedResource) {
-                $typedResource = $subject;
-            }
-
-            // Step 7: Process @typeof if there is a subject
-            if ($typedResource) {
-                foreach ($this->processUriList($node, $context, $typeof) as $type) {
-                    $this->addTriple(
-                        $typedResource,
-                        'rdf:type',
-                        array('type' => 'uri', 'value' => $type)
-                    );
-                }
-            }
-
-            // Step 8: Create new List mapping if the subject has changed
-            if ($subject and $subject !== $context['subject']) {
-                $listMapping = new StdClass();
-            } else {
-                $listMapping = $context['listMapping'];
-            }
-
-            // Step 9: Generate triples with given object
-            if ($subject and $object) {
-                foreach ($rels as $prop) {
-                    $obj = array('type' => 'uri', 'value' => $object);
-                    if ($node->hasAttribute('inlist')) {
-                        $this->addToList($listMapping, $prop, $obj);
-                    } else {
-                        $this->addTriple($subject, $prop, $obj);
-                    }
-                }
-
-                foreach ($revs as $prop) {
-                    $this->addTriple(
-                        $object,
-                        $prop,
-                        array('type' => 'uri', 'value' => $subject)
-                    );
-                }
-            } elseif ($rels or $revs) {
-                // Step 10: Incomplete triples and bnode creation
-                $object = $this->graph->newBNodeId();
-                if ($rels) {
-                    if ($node->hasAttribute('inlist')) {
-                        foreach ($rels as $prop) {
-                            # FIXME: add support for incomplete lists
-                            if (!isset($listMapping->$prop)) {
-                                $listMapping->$prop = array();
-                            }
-                        }
-                    } else {
-                        $incompleteRels = $rels;
-                        if ($this->debug) {
-                            print "Incomplete rels: ".implode(',', $rels)."\n";
-                        }
-                    }
-                }
-
-                if ($revs) {
-                    $incompleteRevs = $revs;
-                    if ($this->debug) {
-                        print "Incomplete revs: ".implode(',', $revs)."\n";
-                    }
-                }
-            }
-
-            // Step 11: establish current property value
-            if ($subject and $property) {
-                $value = array();
-
-                if ($datatype) {
-                    $datatype = $this->processUri($node, $context, $datatype, true);
-                }
-
-                if ($content !== null) {
-                    $value['value'] = $content;
-                } elseif ($node->hasAttribute('datetime')) {
-                    $value['value'] = $node->getAttribute('datetime');
-                    $datetime = true;
-                } elseif ($datatype === '') {
-                    $value['value'] = $node->textContent;
-                } elseif ($datatype === self::RDF_XML_LITERAL) {
-                    $value['value'] = '';
-                    foreach ($node->childNodes as $child) {
-                        $value['value'] .= $child->C14N();
-                    }
-                } elseif (is_null($datatype) and empty($rels) and empty($revs)) {
-                    $value['value'] = $this->getUriAttribute(
-                        $node,
-                        $context,
-                        array('resource', 'href', 'src')
-                    );
-
-                    if ($value['value']) {
-                        $value['type'] = 'uri';
-                    }
-                }
-
-                if (empty($value['value']) and $typedResource and !$node->hasAttribute('about')) {
-                    $value['type'] = 'uri';
-                    $value['value'] = $typedResource;
-                }
-
-                if (empty($value['value'])) {
-                    $value['value'] = $node->textContent;
-                }
-
-                if (empty($value['type'])) {
-                    $value['type'] = 'literal';
-                    if ($datatype) {
-                        $value['datatype'] = $datatype;
-                    } elseif (isset($datetime) or $node->nodeName === 'time') {
-                        $value['datatype'] = $this->guessTimeDatatype($value['value']);
-                    }
-
-                    if (empty($value['datatype']) and $lang) {
-                        $value['lang'] = $lang;
-                    }
-                }
-
-                // Add each of the properties
-                foreach ($this->processUriList($node, $context, $property) as $prop) {
-                    if ($node->hasAttribute('inlist')) {
-                        $this->addToList($listMapping, $prop, $value);
-                    } elseif ($subject) {
-                        $this->addTriple($subject, $prop, $value);
-                    }
-                }
-            }
-
-            // Step 12: Complete the incomplete triples from the evaluation context
-            if (!$skip and $subject and ($context['incompleteRels'] or $context['incompleteRevs'])) {
-                foreach ($context['incompleteRels'] as $prop) {
-                    $this->addTriple(
-                        $context['subject'],
-                        $prop,
-                        array('type' => 'uri', 'value' => $subject)
-                    );
-                }
-
-                foreach ($context['incompleteRevs'] as $prop) {
-                    $this->addTriple(
-                        $subject,
-                        $prop,
-                        array('type' => 'uri', 'value' => $context['subject'])
-                    );
-                }
-            }
-        }
-
-        // Step 13: create a new evaluation context and proceed recursively
-        if ($node->hasChildNodes()) {
-            if ($skip) {
-                $newContext = $context;
-            } else {
-                // Prepare a new evaluation context
-                $newContext = $context;
-                if ($object) {
-                    $newContext['object'] = $object;
-                } elseif ($subject) {
-                    $newContext['object'] = $subject;
-                } else {
-                    $newContext['object'] = $context['subject'];
-                }
-                if ($subject) {
-                    $newContext['subject'] = $subject;
-                }
-                $newContext['incompleteRels'] = $incompleteRels;
-                $newContext['incompleteRevs'] = $incompleteRevs;
-                if (isset($listMapping)) {
-                    $newContext['listMapping'] = $listMapping;
-                }
-            }
-
-            // The language is always updated, even if skip is set
-            $newContext['lang'] = $lang;
-
-            foreach ($node->childNodes as $child) {
-                if ($child->nodeType === XML_ELEMENT_NODE) {
-                    $this->processNode($child, $newContext, $depth+1);
-                }
-            }
-        }
-
-        // Step 14: create triples for lists
-        if (!empty($listMapping)) {
-            foreach ($listMapping as $prop => $list) {
-                if ($context['listMapping'] !== $listMapping) {
-                    if ($this->debug) {
-                        print "Need to create triples for $prop => ".count($list)." items\n";
-                    }
-                    $this->generateList($subject, $prop, $list);
-                }
-            }
-        }
-    }
-
-    /**
-     * Parse RDFa 1.1 into an EasyRdf_Graph
-     *
-     * @param object EasyRdf_Graph $graph   the graph to load the data into
-     * @param string               $data    the RDF document data
-     * @param string               $format  the format of the input data
-     * @param string               $baseUri the base URI of the data being parsed
-     * @return integer             The number of triples added to the graph
-     */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'rdfa') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_Rdfa does not support: $format"
-            );
-        }
-
-        // Initialise evaluation context.
-        $context = $this->initialContext();
-
-        libxml_use_internal_errors(true);
-
-        // Parse the document into DOM
-        $doc = new DOMDocument();
-        // Attempt to parse the document as strict XML, and fall back to HTML
-        // if XML parsing fails.
-        if ($doc->loadXML($data, LIBXML_NONET)) {
-            if ($this->debug) {
-                print "Document was parsed as XML.";
-            }
-            // Collect all xmlns namespaces defined throughout the document.
-            $sxe = simplexml_import_dom($doc);
-            $context['xmlns'] = $sxe->getDocNamespaces(true);
-            unset($context['xmlns']['']);
-        } else {
-            $doc->loadHTML($data);
-            if ($this->debug) {
-                print "Document was parsed as HTML.";
-            }
-        }
-
-        // Establish the base for both XHTML and HTML documents.
-        $xpath = new DOMXPath($doc);
-        $xpath->registerNamespace('xh', "http://www.w3.org/1999/xhtml");
-        $nodeList = $xpath->query('/xh:html/xh:head/xh:base');
-        if ($node = $nodeList->item(0) and $href = $node->getAttribute('href')) {
-            $this->baseUri = new EasyRdf_ParsedUri($href);
-        }
-        $nodeList = $xpath->query('/html/head/base');
-        if ($node = $nodeList->item(0) and $href = $node->getAttribute('href')) {
-            $this->baseUri = new EasyRdf_ParsedUri($href);
-        }
-
-        // Remove the fragment from the base URI
-        $this->baseUri->setFragment(null);
-
-        // Recursively process XML nodes
-        $this->processNode($doc, $context);
-
-        return $this->tripleCount;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Redland.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Redland.php
deleted file mode 100644
index bdeb5a2..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Redland.php
+++ /dev/null
@@ -1,246 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse RDF using Redland (librdf) C library.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Redland extends EasyRdf_Parser
-{
-    /** Variable set to the librdf world */
-    private $world = null;
-
-    /** Parser feature URI string for getting the error count of last parse. */
-    const LIBRDF_PARSER_FEATURE_ERROR_COUNT =
-        'http://feature.librdf.org/parser-error-count';
-
-    /*
-     *  Types supported by Redland:
-     *
-     *  ntriples: N-Triples
-     *  turtle: Turtle Terse RDF Triple Language
-     *  trig: TriG - Turtle with Named Graphs
-     *  rss-tag-soup: RSS Tag Soup
-     *  grddl: Gleaning Resource Descriptions from Dialects of Languages
-     *  guess: Pick the parser to use using content type and URI
-     *  rdfa: RDF/A via librdfa
-     *  raptor: (null)
-     *  rdfxml: RDF/XML
-     */
-
-
-    /**
-     * Convert a librdf node type into a string
-     * @ignore
-     */
-    protected function nodeTypeString($node)
-    {
-        switch(librdf_node_get_type($node)) {
-            case 1:
-                return 'uri';
-                break;
-            case 2:
-                return 'literal';
-                break;
-            case 4:
-                return 'bnode';
-                break;
-            default:
-                return 'unknown';
-                break;
-        }
-    }
-
-    /**
-     * Convert the URI for a node into a string
-     * @ignore
-     */
-    protected function nodeUriString($node)
-    {
-        $type = EasyRdf_Parser_Redland::nodeTypeString($node);
-        if ($type == 'uri') {
-            $uri = librdf_node_get_uri($node);
-            if (!$uri) {
-                throw new EasyRdf_Exception("Failed to get URI of node");
-            }
-            $str = librdf_uri_to_string($uri);
-            if (!$str) {
-                throw new EasyRdf_Exception(
-                    "Failed to convert librdf_uri to string"
-                );
-            }
-            return $str;
-        } elseif ($type == 'bnode') {
-            return $this->remapBnode(
-                librdf_node_get_blank_identifier($node)
-            );
-        } else {
-            throw new EasyRdf_Exception("Unsupported type: ".$type);
-        }
-    }
-
-    /**
-     * Convert a node into an associate array
-     * @ignore
-     */
-    protected function nodeToRdfPhp($node)
-    {
-        $object = array();
-        $object['type'] = EasyRdf_Parser_Redland::nodeTypeString($node);
-        if ($object['type'] == 'uri') {
-            $object['value'] = EasyRdf_Parser_Redland::nodeUriString($node);
-        } elseif ($object['type'] == 'bnode') {
-            $object['value'] = '_:'.librdf_node_get_blank_identifier($node);
-        } elseif ($object['type'] == 'literal') {
-            $object['value'] = librdf_node_get_literal_value($node);
-            $lang = librdf_node_get_literal_value_language($node);
-            if ($lang) {
-                $object['lang'] = $lang;
-            }
-            $datatype = librdf_node_get_literal_value_datatype_uri($node);
-            if ($datatype) {
-                $object['datatype'] = librdf_uri_to_string($datatype);
-            }
-        } else {
-            throw new EasyRdf_Exception("Unsupported type: ".$object['type']);
-        }
-        return $object;
-    }
-
-    /**
-     * Return the number of errors during parsing
-     * @ignore
-     */
-    protected function parserErrorCount($parser)
-    {
-        $errorUri = librdf_new_uri(
-            $this->world,
-            self::LIBRDF_PARSER_FEATURE_ERROR_COUNT
-        );
-        $errorNode = librdf_parser_get_feature($parser, $errorUri);
-        $errorCount = librdf_node_get_literal_value($errorNode);
-        librdf_free_uri($errorUri);
-        return $errorCount;
-    }
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_Redland
-     */
-    public function __construct()
-    {
-        if (extension_loaded('redland')) {
-            $this->world = librdf_php_get_world();
-            if (!$this->world) {
-                throw new EasyRdf_Exception(
-                    "Failed to initialise librdf world."
-                );
-            }
-        } else {
-            throw new EasyRdf_Exception(
-                "Redland PHP extension is not available."
-            );
-        }
-    }
-
-    /**
-      * Parse an RDF document into an EasyRdf_Graph
-      *
-      * @param object EasyRdf_Graph $graph   the graph to load the data into
-      * @param string               $data    the RDF document data
-      * @param string               $format  the format of the input data
-      * @param string               $baseUri the base URI of the data being parsed
-      * @return integer             The number of triples added to the graph
-      */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        $parser = librdf_new_parser($this->world, $format, null, null);
-        if (!$parser) {
-            throw new EasyRdf_Exception(
-                "Failed to create librdf_parser of type: $format"
-            );
-        }
-
-        $rdfUri = librdf_new_uri($this->world, $baseUri);
-        if (!$rdfUri) {
-            throw new EasyRdf_Exception(
-                "Failed to create librdf_uri from: $baseUri"
-            );
-        }
-
-        $stream = librdf_parser_parse_string_as_stream($parser, $data, $rdfUri);
-        if (!$stream) {
-            throw new EasyRdf_Parser_Exception(
-                "Failed to parse RDF stream"
-            );
-        }
-
-        do {
-            $statement = librdf_stream_get_object($stream);
-            if ($statement) {
-                $subject = EasyRdf_Parser_Redland::nodeUriString(
-                    librdf_statement_get_subject($statement)
-                );
-                $predicate = EasyRdf_Parser_Redland::nodeUriString(
-                    librdf_statement_get_predicate($statement)
-                );
-                $object = EasyRdf_Parser_Redland::nodeToRdfPhp(
-                    librdf_statement_get_object($statement)
-                );
-
-                $this->addTriple($subject, $predicate, $object);
-            }
-        } while (!librdf_stream_next($stream));
-
-        $errorCount = $this->parserErrorCount($parser);
-        if ($errorCount) {
-            throw new EasyRdf_Parser_Exception("$errorCount errors while parsing.");
-        }
-
-        librdf_free_uri($rdfUri);
-        librdf_free_stream($stream);
-        librdf_free_parser($parser);
-
-        return $this->tripleCount;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Turtle.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Turtle.php
deleted file mode 100644
index 760cf7b..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Turtle.php
+++ /dev/null
@@ -1,1317 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.
- * Copyright (c) 1997-2013 Aduna (http://www.aduna-software.com/)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- *             Copyright (c) 1997-2006 Aduna (http://www.aduna-software.com/)
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to parse Turtle with no external dependancies.
- *
- * It is a translation from Java to PHP of the Sesame Turtle Parser:
- * http://bit.ly/TurtleParser
- * 
- * Lasted updated against version: 
- * ecda6a15a200a2fc6a062e2e43081257c3ccd4e6   (Mon Jul 29 12:05:58 2013)
- * 
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- *             Copyright (c) 1997-2013 Aduna (http://www.aduna-software.com/)
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Parser_Turtle extends EasyRdf_Parser_Ntriples
-{
-    protected $data;
-    protected $namespaces;
-    protected $subject;
-    protected $predicate;
-    protected $object;
-    
-    protected $line;
-    protected $column;
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Parser_Turtle
-     */
-    public function __construct()
-    {
-    }
-
-    /**
-     * Parse Turtle into an EasyRdf_Graph
-     *
-     * @param object EasyRdf_Graph $graph   the graph to load the data into
-     * @param string               $data    the RDF document data
-     * @param string               $format  the format of the input data
-     * @param string               $baseUri the base URI of the data being parsed
-     * @return integer             The number of triples added to the graph
-     */
-    public function parse($graph, $data, $format, $baseUri)
-    {
-        parent::checkParseParams($graph, $data, $format, $baseUri);
-
-        if ($format != 'turtle') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Parser_Turtle does not support: $format"
-            );
-        }
-
-        $this->data = $data;
-        $this->namespaces = array();
-        $this->subject = null;
-        $this->predicate = null;
-        $this->object = null;
-        
-        $this->line = 1;
-        $this->column = 1;
-
-        $this->resetBnodeMap();
-
-        $c = $this->skipWSC();
-        while ($c != -1) {
-            $this->parseStatement();
-            $c = $this->skipWSC();
-        }
-
-        return $this->tripleCount;
-    }
-
-
-    /**
-     * Parse a statement [2]
-     * @ignore
-     */
-    protected function parseStatement()
-    {
-        $directive = '';
-        while (true) {
-            $c = $this->read();
-            if ($c == -1 || self::isWhitespace($c)) {
-                $this->unread($c);
-                break;
-            } else {
-                $directive .= $c;
-            }
-        }
-
-        if (preg_match('/^(@|prefix$|base$)/i', $directive)) {
-            $this->parseDirective($directive);
-            $this->skipWSC();
-            // SPARQL BASE and PREFIX lines do not end in .
-            if ($directive[0] == "@") {
-                $this->verifyCharacterOrFail($this->read(), ".");
-            }
-        } else {
-            $this->unread($directive);
-            $this->parseTriples();
-            $this->skipWSC();
-            $this->verifyCharacterOrFail($this->read(), ".");
-        }
-    }
-
-    /**
-     * Parse a directive [3]
-     * @ignore
-     */
-    protected function parseDirective($directive)
-    {
-        $directive = strtolower($directive);
-        if ($directive == "prefix" || $directive == '@prefix') {
-            $this->parsePrefixID();
-        } elseif ($directive == "base" || $directive == '@base') {
-            $this->parseBase();
-        } elseif (mb_strlen($directive, "UTF-8") == 0) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: directive name is missing, expected @prefix or @base",
-                $this->line,
-                $this->column
-            );
-        } else {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: unknown directive \"$directive\"",
-                $this->line,
-                $this->column
-            );
-        }
-    }
-
-    /**
-     * Parse a prefixID [4]
-     * @ignore
-     */
-    protected function parsePrefixID()
-    {
-        $this->skipWSC();
-
-        // Read prefix ID (e.g. "rdf:" or ":")
-        $prefixID = '';
-
-        while (true) {
-            $c = $this->read();
-            if ($c == ':') {
-                $this->unread($c);
-                break;
-            } elseif (self::isWhitespace($c)) {
-                break;
-            } elseif ($c == -1) {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: unexpected end of file while reading prefix id",
-                    $this->line,
-                    $this->column
-                );
-            }
-
-            $prefixID .= $c;
-        }
-
-        $this->skipWSC();
-        $this->verifyCharacterOrFail($this->read(), ":");
-        $this->skipWSC();
-
-        // Read the namespace URI
-        $namespace = $this->parseURI();
-
-        // Store local namespace mapping
-        $this->namespaces[$prefixID] = $namespace['value'];
-    }
-
-    /**
-     * Parse base [5]
-     * @ignore
-     */
-    protected function parseBase()
-    {
-        $this->skipWSC();
-
-        $baseUri = $this->parseURI();
-        $this->baseUri = new EasyRdf_ParsedUri($baseUri['value']);
-    }
-
-    /**
-     * Parse triples [6]
-     * @ignore
-     */
-    protected function parseTriples()
-    {
-        $c = $this->peek();
-
-        // If the first character is an open bracket we need to decide which of
-        // the two parsing methods for blank nodes to use
-        if ($c == '[') {
-            $c = $this->read();
-            $this->skipWSC();
-            $c = $this->peek();
-            if ($c == ']') {
-                $c = $this->read();
-                $this->subject = $this->createBNode();
-                $this->skipWSC();
-                $this->parsePredicateObjectList();
-            } else {
-                $this->unread('[');
-                $this->subject = $this->parseImplicitBlank();
-            }
-            $this->skipWSC();
-            $c = $this->peek();
-
-            // if this is not the end of the statement, recurse into the list of
-            // predicate and objects, using the subject parsed above as the subject
-            // of the statement.
-            if ($c != '.') {
-                $this->parsePredicateObjectList();
-            }
-        } else {
-            $this->parseSubject();
-            $this->skipWSC();
-            $this->parsePredicateObjectList();
-        }
-
-        $this->subject = null;
-        $this->predicate = null;
-        $this->object = null;
-    }
-
-    /**
-     * Parse a predicateObjectList [7]
-     * @ignore
-     */
-    protected function parsePredicateObjectList()
-    {
-        $this->predicate = $this->parsePredicate();
-
-        $this->skipWSC();
-        $this->parseObjectList();
-
-        while ($this->skipWSC() == ';') {
-            $this->read();
-
-            $c = $this->skipWSC();
-
-            if ($c == '.' || $c == ']') {
-                break;
-            } elseif ($c == ';') {
-                // empty predicateObjectList, skip to next
-                continue;
-            }
-
-            $this->predicate = $this->parsePredicate();
-
-            $this->skipWSC();
-
-            $this->parseObjectList();
-        }
-    }
-
-    /**
-     * Parse a objectList [8]
-     * @ignore
-     */
-    protected function parseObjectList()
-    {
-        $this->parseObject();
-
-        while ($this->skipWSC() == ',') {
-            $this->read();
-            $this->skipWSC();
-            $this->parseObject();
-        }
-    }
-
-    /**
-     * Parse a subject [10]
-     * @ignore
-     */
-    protected function parseSubject()
-    {
-        $c = $this->peek();
-        if ($c == '(') {
-            $this->subject = $this->parseCollection();
-        } elseif ($c == '[') {
-            $this->subject = $this->parseImplicitBlank();
-        } else {
-            $value = $this->parseValue();
-
-            if ($value['type'] == 'uri' or $value['type'] == 'bnode') {
-                $this->subject = $value;
-            } else {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: illegal subject type: ".$value['type'],
-                    $this->line,
-                    $this->column
-                );
-            }
-        }
-    }
-
-    /**
-     * Parse a predicate [11]
-     * @ignore
-     */
-    protected function parsePredicate()
-    {
-        // Check if the short-cut 'a' is used
-        $c1 = $this->read();
-
-        if ($c1 == 'a') {
-            $c2 = $this->read();
-
-            if (self::isWhitespace($c2)) {
-                // Short-cut is used, return the rdf:type URI
-                return array(
-                    'type' => 'uri',
-                    'value' => EasyRdf_Namespace::get('rdf') . 'type'
-                );
-            }
-
-            // Short-cut is not used, unread all characters
-            $this->unread($c2);
-        }
-        $this->unread($c1);
-
-        // Predicate is a normal resource
-        $predicate = $this->parseValue();
-        if ($predicate['type'] == 'uri') {
-            return $predicate;
-        } else {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: Illegal predicate type: " . $predicate['type'],
-                $this->line,
-                $this->column
-            );
-        }
-    }
-
-    /**
-     * Parse a object [12]
-     * @ignore
-     */
-    protected function parseObject()
-    {
-        $c = $this->peek();
-
-        if ($c == '(') {
-            $this->object = $this->parseCollection();
-        } elseif ($c == '[') {
-            $this->object = $this->parseImplicitBlank();
-        } else {
-            $this->object = $this->parseValue();
-        }
-
-        $this->addTriple(
-            $this->subject['value'],
-            $this->predicate['value'],
-            $this->object
-        );
-    }
-
-    /**
-     * Parses a blankNodePropertyList [15]
-     *
-     * This method parses the token []
-     * and predicateObjectLists that are surrounded by square brackets.
-     *
-     * @ignore
-     */
-    protected function parseImplicitBlank()
-    {
-        $this->verifyCharacterOrFail($this->read(), "[");
-
-        $bnode = $this->createBNode();
-
-        $c = $this->read();
-        if ($c != ']') {
-            $this->unread($c);
-
-            // Remember current subject and predicate
-            $oldSubject = $this->subject;
-            $oldPredicate = $this->predicate;
-
-            // generated bNode becomes subject
-            $this->subject = $bnode;
-
-            // Enter recursion with nested predicate-object list
-            $this->skipWSC();
-
-            $this->parsePredicateObjectList();
-
-            $this->skipWSC();
-
-            // Read closing bracket
-            $this->verifyCharacterOrFail($this->read(), "]");
-
-            // Restore previous subject and predicate
-            $this->subject = $oldSubject;
-            $this->predicate = $oldPredicate;
-        }
-
-        return $bnode;
-    }
-
-    /**
-     * Parses a collection [16], e.g: ( item1 item2 item3 )
-     * @ignore
-     */
-    protected function parseCollection()
-    {
-        $this->verifyCharacterOrFail($this->read(), "(");
-
-        $c = $this->skipWSC();
-        if ($c == ')') {
-            // Empty list
-            $this->read();
-            return array(
-                'type' => 'uri',
-                'value' => EasyRdf_Namespace::get('rdf') . 'nil'
-            );
-        } else {
-            $listRoot = $this->createBNode();
-
-            // Remember current subject and predicate
-            $oldSubject = $this->subject;
-            $oldPredicate = $this->predicate;
-
-            // generated bNode becomes subject, predicate becomes rdf:first
-            $this->subject = $listRoot;
-            $this->predicate = array(
-                'type' => 'uri',
-                'value' => EasyRdf_Namespace::get('rdf') . 'first'
-            );
-
-            $this->parseObject();
-            $bNode = $listRoot;
-
-            while ($this->skipWSC() != ')') {
-                // Create another list node and link it to the previous
-                $newNode = $this->createBNode();
-
-                $this->addTriple(
-                    $bNode['value'],
-                    EasyRdf_Namespace::get('rdf') . 'rest',
-                    $newNode
-                );
-
-                // New node becomes the current
-                $this->subject = $bNode = $newNode;
-
-                $this->parseObject();
-            }
-
-            // Skip ')'
-            $this->read();
-
-            // Close the list
-            $this->addTriple(
-                $bNode['value'],
-                EasyRdf_Namespace::get('rdf') . 'rest',
-                array(
-                    'type' => 'uri',
-                    'value' => EasyRdf_Namespace::get('rdf') . 'nil'
-                )
-            );
-
-            // Restore previous subject and predicate
-            $this->subject = $oldSubject;
-            $this->predicate = $oldPredicate;
-
-            return $listRoot;
-        }
-    }
-
-    /**
-     * Parses an RDF value. This method parses uriref, qname, node ID, quoted
-     * literal, integer, double and boolean.
-     * @ignore
-     */
-    protected function parseValue()
-    {
-        $c = $this->peek();
-
-        if ($c == '<') {
-            // uriref, e.g. <foo://bar>
-            return $this->parseURI();
-        } elseif ($c == ':' || self::isPrefixStartChar($c)) {
-            // qname or boolean
-            return $this->parseQNameOrBoolean();
-        } elseif ($c == '_') {
-            // node ID, e.g. _:n1
-            return $this->parseNodeID();
-        } elseif ($c == '"' || $c == "'") {
-            // quoted literal, e.g. "foo" or """foo""" or 'foo' or '''foo'''
-            return $this->parseQuotedLiteral();
-        } elseif (ctype_digit($c) || $c == '.' || $c == '+' || $c == '-') {
-            // integer or double, e.g. 123 or 1.2e3
-            return $this->parseNumber();
-        } elseif ($c == -1) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: unexpected end of file while reading value",
-                $this->line,
-                $this->column
-            );
-        } else {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: expected an RDF value here, found '$c'",
-                $this->line,
-                $this->column
-            );
-        }
-    }
-
-    /**
-     * Parses a quoted string, optionally followed by a language tag or datatype.
-     * @ignore
-     */
-    protected function parseQuotedLiteral()
-    {
-        $label = $this->parseQuotedString();
-
-        // Check for presence of a language tag or datatype
-        $c = $this->peek();
-
-        if ($c == '@') {
-            $this->read();
-
-            // Read language
-            $lang = '';
-            $c = $this->read();
-            if ($c == -1) {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: unexpected end of file while reading language",
-                    $this->line,
-                    $this->column
-                );
-            } elseif (!self::isLanguageStartChar($c)) {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: expected a letter, found '$c'",
-                    $this->line,
-                    $this->column
-                );
-            }
-
-            $lang .= $c;
-
-            $c = $this->read();
-            while (!self::isWhitespace($c)) {
-                if ($c == '.' || $c == ';' || $c == ',' || $c == ')' || $c == ']' || $c == -1) {
-                    break;
-                }
-                if (self::isLanguageChar($c)) {
-                    $lang .= $c;
-                } else {
-                    throw new EasyRdf_Parser_Exception(
-                        "Turtle Parse Error: illegal language tag char: '$c'",
-                        $this->line,
-                        $this->column
-                    );
-                }
-                $c = $this->read();
-            }
-
-            $this->unread($c);
-
-            return array(
-                'type' => 'literal',
-                'value' => $label,
-                'lang' => $lang
-            );
-        } elseif ($c == '^') {
-            $this->read();
-
-            // next character should be another '^'
-            $this->verifyCharacterOrFail($this->read(), "^");
-
-            // Read datatype
-            $datatype = $this->parseValue();
-            if ($datatype['type'] == 'uri') {
-                return array(
-                    'type' => 'literal',
-                    'value' => $label,
-                    'datatype' => $datatype['value']
-                );
-            } else {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: illegal datatype type: " . $datatype['type'],
-                    $this->line,
-                    $this->column
-                );
-            }
-        } else {
-            return array(
-                'type' => 'literal',
-                'value' => $label
-            );
-        }
-    }
-
-    /**
-     * Parses a quoted string, which is either a "normal string" or a """long string""".
-     * @ignore
-     */
-    protected function parseQuotedString()
-    {
-        $result = null;
-
-        $c1 = $this->read();
-
-        // First character should be ' or "
-        $this->verifyCharacterOrFail($c1, "\"\'");
-
-        // Check for long-string, which starts and ends with three double quotes
-        $c2 = $this->read();
-        $c3 = $this->read();
-
-        if ($c2 == $c1 && $c3 == $c1) {
-            // Long string
-            $result = $this->parseLongString($c2);
-        } else {
-            // Normal string
-            $this->unread($c3);
-            $this->unread($c2);
-
-            $result = $this->parseString($c1);
-        }
-
-        // Unescape any escape sequences
-        return $this->unescapeString($result);
-    }
-
-    /**
-     * Parses a "normal string". This method requires that the opening character
-     * has already been parsed.
-     * @param string  $closingCharacter  The type of quote to use (either ' or ")
-     * @ignore
-     */
-    protected function parseString($closingCharacter)
-    {
-        $str = '';
-
-        while (true) {
-            $c = $this->read();
-
-            if ($c == $closingCharacter) {
-                break;
-            } elseif ($c == -1) {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: unexpected end of file while reading string",
-                    $this->line,
-                    $this->column
-                );
-            }
-
-            $str .= $c;
-
-            if ($c == '\\') {
-                // This escapes the next character, which might be a ' or a "
-                $c = $this->read();
-                if ($c == -1) {
-                    throw new EasyRdf_Parser_Exception(
-                        "Turtle Parse Error: unexpected end of file while reading string",
-                        $this->line,
-                        $this->column
-                    );
-                }
-                $str .= $c;
-            }
-        }
-
-        return $str;
-    }
-
-    /**
-     * Parses a """long string""". This method requires that the first three
-     * characters have already been parsed.
-     * @param string  $closingCharacter  The type of quote to use (either ' or ")
-     * @ignore
-     */
-    protected function parseLongString($closingCharacter)
-    {
-        $str = '';
-        $doubleQuoteCount = 0;
-
-        while ($doubleQuoteCount < 3) {
-            $c = $this->read();
-
-            if ($c == -1) {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: unexpected end of file while reading long string",
-                    $this->line,
-                    $this->column
-                );
-            } elseif ($c == $closingCharacter) {
-                $doubleQuoteCount++;
-            } else {
-                $doubleQuoteCount = 0;
-            }
-
-            $str .= $c;
-
-            if ($c == '\\') {
-                // This escapes the next character, which might be a ' or "
-                $c = $this->read();
-                if ($c == -1) {
-                    throw new EasyRdf_Parser_Exception(
-                        "Turtle Parse Error: unexpected end of file while reading long string",
-                        $this->line,
-                        $this->column
-                    );
-                }
-                $str .= $c;
-            }
-        }
-
-        return mb_substr($str, 0, -3, "UTF-8");
-    }
-
-    /**
-     * Parses a numeric value, either of type integer, decimal or double
-     * @ignore
-     */
-    protected function parseNumber()
-    {
-        $value = '';
-        $datatype = EasyRdf_Namespace::get('xsd').'integer';
-
-        $c = $this->read();
-
-        // read optional sign character
-        if ($c == '+' || $c == '-') {
-            $value .= $c;
-            $c = $this->read();
-        }
-
-        while (ctype_digit($c)) {
-            $value .= $c;
-            $c = $this->read();
-        }
-
-        if ($c == '.' || $c == 'e' || $c == 'E') {
-            // read optional fractional digits
-            if ($c == '.') {
-
-                if (self::isWhitespace($this->peek())) {
-                    // We're parsing an integer that did not have a space before the
-                    // period to end the statement
-                } else {
-                    $value .= $c;
-                    $c = $this->read();
-                    while (ctype_digit($c)) {
-                        $value .= $c;
-                        $c = $this->read();
-                    }
-
-                    if (mb_strlen($value, "UTF-8") == 1) {
-                        // We've only parsed a '.'
-                        throw new EasyRdf_Parser_Exception(
-                            "Turtle Parse Error: object for statement missing",
-                            $this->line,
-                            $this->column
-                        );
-                    }
-
-                    // We're parsing a decimal or a double
-                    $datatype = EasyRdf_Namespace::get('xsd').'decimal';
-                }
-            } else {
-                if (mb_strlen($value, "UTF-8") == 0) {
-                    // We've only parsed an 'e' or 'E'
-                    throw new EasyRdf_Parser_Exception(
-                        "Turtle Parse Error: object for statement missing",
-                        $this->line,
-                        $this->column
-                    );
-                }
-            }
-
-            // read optional exponent
-            if ($c == 'e' || $c == 'E') {
-                $datatype = EasyRdf_Namespace::get('xsd').'double';
-                $value .= $c;
-
-                $c = $this->read();
-                if ($c == '+' || $c == '-') {
-                    $value .= $c;
-                    $c = $this->read();
-                }
-
-                if (!ctype_digit($c)) {
-                    throw new EasyRdf_Parser_Exception(
-                        "Turtle Parse Error: exponent value missing",
-                        $this->line,
-                        $this->column
-                    );
-                }
-
-                $value .= $c;
-
-                $c = $this->read();
-                while (ctype_digit($c)) {
-                    $value .= $c;
-                    $c = $this->read();
-                }
-            }
-        }
-
-        // Unread last character, it isn't part of the number
-        $this->unread($c);
-
-        // Return result as a typed literal
-        return array(
-            'type' => 'literal',
-            'value' => $value,
-            'datatype' => $datatype
-        );
-    }
-
-    /**
-     * Parses a URI / IRI
-     * @ignore
-     */
-    protected function parseURI()
-    {
-        $uri = '';
-
-        // First character should be '<'
-        $this->verifyCharacterOrFail($this->read(), "<");
-
-        // Read up to the next '>' character
-        while (true) {
-            $c = $this->read();
-
-            if ($c == '>') {
-                break;
-            } elseif ($c == -1) {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: unexpected end of file while reading URI",
-                    $this->line,
-                    $this->column
-                );
-            }
-
-            $uri .= $c;
-
-            if ($c == '\\') {
-                // This escapes the next character, which might be a '>'
-                $c = $this->read();
-                if ($c == -1) {
-                    throw new EasyRdf_Parser_Exception(
-                        "Turtle Parse Error: unexpected end of file while reading URI",
-                        $this->line,
-                        $this->column
-                    );
-                }
-                $uri .= $c;
-            }
-        }
-
-        // Unescape any escape sequences
-        $uri = $this->unescapeString($uri);
-
-        return array(
-            'type' => 'uri',
-            'value' => $this->resolve($uri)
-        );
-    }
-
-    /**
-     * Parses qnames and boolean values, which have equivalent starting
-     * characters.
-     * @ignore
-     */
-    protected function parseQNameOrBoolean()
-    {
-        // First character should be a ':' or a letter
-        $c = $this->read();
-        if ($c == -1) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: unexpected end of file while readying value",
-                $this->line,
-                $this->column
-            );
-        }
-        if ($c != ':' && !self::isPrefixStartChar($c)) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: expected a ':' or a letter, found '$c'",
-                $this->line,
-                $this->column
-            );
-        }
-
-        $namespace = null;
-
-        if ($c == ':') {
-            // qname using default namespace
-            if (isset($this->namespaces[''])) {
-                $namespace = $this->namespaces[''];
-            } else {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: default namespace used but not defined",
-                    $this->line,
-                    $this->column
-                );
-            }
-        } else {
-            // $c is the first letter of the prefix
-            $prefix = $c;
-
-            $c = $this->read();
-            while (self::isPrefixChar($c)) {
-                $prefix .= $c;
-                $c = $this->read();
-            }
-
-            if ($c != ':') {
-                // prefix may actually be a boolean value
-                $value = $prefix;
-
-                if ($value == "true" || $value == "false") {
-                    return array(
-                        'type' => 'literal',
-                        'value' => $value,
-                        'datatype' => EasyRdf_Namespace::get('xsd') . 'boolean'
-                    );
-                }
-            }
-
-            $this->verifyCharacterOrFail($c, ":");
-
-            if (isset($this->namespaces[$prefix])) {
-                $namespace = $this->namespaces[$prefix];
-            } else {
-                throw new EasyRdf_Parser_Exception(
-                    "Turtle Parse Error: namespace prefix '$prefix' used but not defined",
-                    $this->line,
-                    $this->column
-                );
-            }
-        }
-
-        // $c == ':', read optional local name
-        $localName = '';
-        $c = $this->read();
-        if (self::isNameStartChar($c)) {
-            if ($c == '\\') {
-                $localName .= $this->readLocalEscapedChar();
-            } else {
-                $localName .= $c;
-            }
-
-            $c = $this->read();
-            while (self::isNameChar($c)) {
-                if ($c == '\\') {
-                    $localName .= $this->readLocalEscapedChar();
-                } else {
-                    $localName .= $c;
-                }
-                $c = $this->read();
-            }
-        }
-
-        // Unread last character
-        $this->unread($c);
-
-        // Note: namespace has already been resolved
-        return array(
-            'type' => 'uri',
-            'value' => $namespace . $localName
-        );
-    }
-
-    protected function readLocalEscapedChar()
-    {
-        $c = $this->read();
-
-        if (self::isLocalEscapedChar($c)) {
-            return $c;
-        } else {
-            throw new EasyRdf_Parser_Exception(
-                "found '" . $c . "', expected one of: " . implode(', ', self::$localEscapedChars),
-                $this->line,
-                $this->column
-            );
-        }
-    }
-
-    /**
-     * Parses a blank node ID, e.g: _:node1
-     * @ignore
-     */
-    protected function parseNodeID()
-    {
-        // Node ID should start with "_:"
-        $this->verifyCharacterOrFail($this->read(), "_");
-        $this->verifyCharacterOrFail($this->read(), ":");
-
-        // Read the node ID
-        $c = $this->read();
-        if ($c == -1) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: unexpected end of file while reading node id",
-                $this->line,
-                $this->column
-            );
-        } elseif (!self::isNameStartChar($c)) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: expected a letter, found '$c'",
-                $this->line,
-                $this->column
-            );
-        }
-
-        // Read all following letter and numbers, they are part of the name
-        $name = $c;
-        $c = $this->read();
-        while (self::isNameChar($c)) {
-            $name .= $c;
-            $c = $this->read();
-        }
-
-        $this->unread($c);
-
-        return array(
-            'type' => 'bnode',
-            'value' => $this->remapBnode($name)
-        );
-    }
-
-    protected function resolve($uri)
-    {
-        if ($this->baseUri) {
-            return $this->baseUri->resolve($uri)->toString();
-        } else {
-            return $uri;
-        }
-    }
-
-    /**
-     * Verifies that the supplied character $c is one of the expected
-     * characters specified in $expected. This method will throw a
-     * exception if this is not the case.
-     * @ignore
-     */
-    protected function verifyCharacterOrFail($c, $expected)
-    {
-        if ($c == -1) {
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: unexpected end of file",
-                $this->line,
-                $this->column
-            );
-        } elseif (strpbrk($c, $expected) === false) {
-            $msg = 'expected ';
-            for ($i = 0; $i < strlen($expected); $i++) {
-                if ($i > 0) {
-                    $msg .= " or ";
-                }
-                $msg .= '\''.$expected[$i].'\'';
-            }
-            $msg .= ", found '$c'";
-
-            throw new EasyRdf_Parser_Exception(
-                "Turtle Parse Error: $msg",
-                $this->line,
-                $this->column
-            );
-        }
-    }
-
-    /**
-     * Skip through whitespace and comments
-     * @ignore
-     */
-    protected function skipWSC()
-    {
-        $c = $this->read();
-        while (self::isWhitespace($c) || $c == '#') {
-            if ($c == '#') {
-                $this->processComment();
-            }
-
-            $c = $this->read();
-        }
-
-        $this->unread($c);
-        return $c;
-    }
-
-    /**
-     * Consumes characters from reader until the first EOL has been read.
-     * @ignore
-     */
-    protected function processComment()
-    {
-        $comment = '';
-        $c = $this->read();
-        while ($c != -1 && $c != "\r" && $c != "\n") {
-            $comment .= $c;
-            $c = $this->read();
-        }
-
-        // c is equal to -1, \r or \n.
-        // In case c is equal to \r, we should also read a following \n.
-        if ($c == "\r") {
-            $c = $this->read();
-            if ($c != "\n") {
-                $this->unread($c);
-            }
-        }
-    }
-
-    /**
-     * Read a single character from the input buffer.
-     * Returns -1 when the end of the file is reached.
-     * @ignore
-     */
-    protected function read()
-    {
-        if (!empty($this->data)) {
-            $c = mb_substr($this->data, 0, 1, "UTF-8");
-            // Keep tracks of which line we are on (0A = Line Feed)
-            if ($c == "\x0A") {
-                $this->line += 1;
-                $this->column = 1;
-            } else {
-                $this->column += 1;
-            }
-
-            if (version_compare(PHP_VERSION, '5.4.8', '<')) {
-                // versions of PHP prior to 5.4.8 treat "NULL" length parameter as 0
-                $this->data = mb_substr($this->data, 1, mb_strlen($this->data), "UTF-8");
-            } else {
-                $this->data = mb_substr($this->data, 1, null, "UTF-8");
-            }
-            return $c;
-        } else {
-            return -1;
-        }
-    }
-
-    /**
-     * Gets the next character to be returned by read()
-     * without removing it from the input buffer.
-     * @ignore
-     */
-    protected function peek()
-    {
-        if (!empty($this->data)) {
-            return mb_substr($this->data, 0, 1, "UTF-8");
-        } else {
-            return -1;
-        }
-    }
-
-
-    /**
-     * Steps back, restoring the previous character read() to the input buffer
-     * @ignore
-     */
-    protected function unread($c)
-    {
-        # FIXME: deal with unreading new lines
-        $this->column -= mb_strlen($c, "UTF-8");
-        $this->data = $c . $this->data;
-    }
-
-    /** @ignore */
-    protected function createBNode()
-    {
-        return array(
-            'type' => 'bnode',
-            'value' => $this->graph->newBNodeId()
-        );
-    }
-
-    /**
-     * Returns true if $c is a whitespace character
-     * @ignore
-     */
-    public static function isWhitespace($c)
-    {
-        // Whitespace character are space, tab, newline and carriage return:
-        return $c == "\x20" || $c == "\x09" || $c == "\x0A" || $c == "\x0D";
-    }
-
-    /** @ignore */
-    public static function isPrefixStartChar($c)
-    {
-        $o = ord($c);
-        return
-            $o >= 0x41   && $o <= 0x5a ||     # A-Z
-            $o >= 0x61   && $o <= 0x7a ||     # a-z
-            $o >= 0x00C0 && $o <= 0x00D6 ||
-            $o >= 0x00D8 && $o <= 0x00F6 ||
-            $o >= 0x00F8 && $o <= 0x02FF ||
-            $o >= 0x0370 && $o <= 0x037D ||
-            $o >= 0x037F && $o <= 0x1FFF ||
-            $o >= 0x200C && $o <= 0x200D ||
-            $o >= 0x2070 && $o <= 0x218F ||
-            $o >= 0x2C00 && $o <= 0x2FEF ||
-            $o >= 0x3001 && $o <= 0xD7FF ||
-            $o >= 0xF900 && $o <= 0xFDCF ||
-            $o >= 0xFDF0 && $o <= 0xFFFD ||
-            $o >= 0x10000 && $o <= 0xEFFFF;
-    }
-
-    /** @ignore */
-    public static function isNameStartChar($c)
-    {
-        return
-            $c == '\\' ||
-            $c == '_' ||
-            $c == ':' ||
-            $c == '%' ||
-            ctype_digit($c) ||
-            self::isPrefixStartChar($c);
-    }
-
-    /** @ignore */
-    public static function isNameChar($c)
-    {
-        $o = ord($c);
-        return
-            self::isNameStartChar($c) ||
-            $o >= 0x30 && $o <= 0x39 ||     # 0-9
-            $c == '-' ||
-            $o == 0x00B7 ||
-            $o >= 0x0300 && $o <= 0x036F ||
-            $o >= 0x203F && $o <= 0x2040;
-    }
-
-    /** @ignore */
-    private static $localEscapedChars = array(
-        '_', '~', '.', '-', '!', '$', '&', '\'', '(', ')',
-        '*', '+', ',', ';', '=', '/', '?', '#', '@', '%'
-    );
-
-    /** @ignore */
-    public static function isLocalEscapedChar($c)
-    {
-        return in_array($c, self::$localEscapedChars);
-    }
-
-    /** @ignore */
-    public static function isPrefixChar($c)
-    {
-        $o = ord($c);
-        return
-            $c == '_' ||
-            $o >= 0x30 && $o <= 0x39 ||     # 0-9
-            self::isPrefixStartChar($c) ||
-            $c == '-' ||
-            $o == 0x00B7 ||
-            $c >= 0x0300 && $c <= 0x036F ||
-            $c >= 0x203F && $c <= 0x2040;
-    }
-
-    /** @ignore */
-    public static function isLanguageStartChar($c)
-    {
-        $o = ord($c);
-        return
-            $o >= 0x41 && $o <= 0x5a ||   # A-Z
-            $o >= 0x61 && $o <= 0x7a;     # a-z
-    }
-
-    /** @ignore */
-    public static function isLanguageChar($c)
-    {
-        $o = ord($c);
-        return
-            $o >= 0x41 && $o <= 0x5a ||   # A-Z
-            $o >= 0x61 && $o <= 0x7a ||   # a-z
-            $o >= 0x30 && $o <= 0x39 ||   # 0-9
-            $c == '-';
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Resource.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Resource.php
deleted file mode 100644
index 3cb2805..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Resource.php
+++ /dev/null
@@ -1,720 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class that represents an RDF resource
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Resource
-{
-    /** The URI for this resource */
-    protected $uri = null;
-
-    /** The Graph that this resource belongs to */
-    protected $graph = null;
-
-
-    /** Constructor
-     *
-     * * Please do not call new EasyRdf_Resource() directly *
-     *
-     * To create a new resource use the get method in a graph:
-     * $resource = $graph->resource('http://www.example.com/');
-     *
-     */
-    public function __construct($uri, $graph = null)
-    {
-        if (!is_string($uri) or $uri == null or $uri == '') {
-            throw new InvalidArgumentException(
-                "\$uri should be a string and cannot be null or empty"
-            );
-        }
-
-        $this->uri = $uri;
-
-        # Check that $graph is an EasyRdf_Graph object
-        if (is_object($graph) and $graph instanceof EasyRdf_Graph) {
-            $this->graph = $graph;
-        } elseif (!is_null($graph)) {
-            throw new InvalidArgumentException(
-                "\$graph should be an EasyRdf_Graph object"
-            );
-        }
-    }
-
-    /**
-     * Return the graph that this resource belongs to
-     *
-     * @return EasyRdf_Graph
-     */
-    public function getGraph()
-    {
-        return $this->graph;
-    }
-
-    /** Returns the URI for the resource.
-     *
-     * @return string  URI of this resource.
-     */
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    /** Check to see if a resource is a blank node.
-     *
-     * @return bool True if this resource is a blank node.
-     */
-    public function isBNode()
-    {
-        if (substr($this->uri, 0, 2) == '_:') {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /** Get the identifier for a blank node
-     *
-     * Returns null if the resource is not a blank node.
-     *
-     * @return string The identifer for the bnode
-     */
-    public function getBNodeId()
-    {
-        if (substr($this->uri, 0, 2) == '_:') {
-            return substr($this->uri, 2);
-        } else {
-            return null;
-        }
-    }
-
-    /** Get a the prefix of the namespace that this resource is part of
-     *
-     * This method will return null the resource isn't part of any
-     * registered namespace.
-     *
-     * @return string The namespace prefix of the resource (e.g. foaf)
-     */
-    public function prefix()
-    {
-        return EasyRdf_Namespace::prefixOfUri($this->uri);
-    }
-
-    /** Get a shortened version of the resources URI.
-     *
-     * This method will return the full URI if the resource isn't part of any
-     * registered namespace.
-     *
-     * @return string The shortened URI of this resource (e.g. foaf:name)
-     */
-    public function shorten()
-    {
-        return EasyRdf_Namespace::shorten($this->uri);
-    }
-
-    /** Gets the local name of the URI of this resource
-     *
-     * The local name is defined as the part of the URI string
-     * after the last occurrence of the '#', ':' or '/' character.
-     *
-     * @return string The local name
-     */
-    public function localName()
-    {
-        if (preg_match("|([^#:/]+)$|", $this->uri, $matches)) {
-            return $matches[1];
-        }
-    }
-
-    /** Parse the URI of the resource and return as a ParsedUri object
-     *
-     * @return EasyRdf_ParsedUri
-     */
-    public function parseUri()
-    {
-        return new EasyRdf_ParsedUri($this->uri);
-    }
-
-    /** Generates an HTML anchor tag, linking to this resource.
-     *
-     * If no text is given, then the URI also uses as the link text.
-     *
-     * @param  string  $text    Text for the link.
-     * @param  array   $options Associative array of attributes for the anchor tag
-     * @return string  The HTML link string
-     */
-    public function htmlLink($text = null, $options = array())
-    {
-        $options = array_merge(array('href' => $this->uri), $options);
-        if ($text === null) {
-            $text = $this->uri;
-        }
-
-        $html = "<a";
-        foreach ($options as $key => $value) {
-            if (!preg_match('/^[-\w]+$/', $key)) {
-                throw new InvalidArgumentException(
-                    "\$options should use valid attribute names as keys"
-                );
-            }
-
-            $html .= " ".htmlspecialchars($key)."=\"".
-                         htmlspecialchars($value)."\"";
-        }
-        $html .= ">".htmlspecialchars($text)."</a>";
-
-        return $html;
-    }
-
-    /** Returns the properties of the resource as an RDF/PHP associative array
-     *
-     * For example:
-     * array('type' => 'uri', 'value' => 'http://www.example.com/')
-     *
-     * @return array  The properties of the resource
-     */
-    public function toRdfPhp()
-    {
-        if ($this->isBNode()) {
-            return array('type' => 'bnode', 'value' => $this->uri);
-        } else {
-            return array('type' => 'uri', 'value' => $this->uri);
-        }
-    }
-
-    /** Return pretty-print view of the resource
-     *
-     * @param  string $format Either 'html' or 'text'
-     * @param  string $color The colour of the text
-     * @return string
-     */
-    public function dumpValue($format = 'html', $color = 'blue')
-    {
-        return EasyRdf_Utils::dumpResourceValue($this, $format, $color);
-    }
-
-    /** Magic method to return URI of resource when casted to string
-     *
-     * @return string The URI of the resource
-     */
-    public function __toString()
-    {
-        return $this->uri;
-    }
-
-
-
-    /** Throw can exception if the resource does not belong to a graph
-     *  @ignore
-     */
-    protected function checkHasGraph()
-    {
-        if (!$this->graph) {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Resource is not part of a graph."
-            );
-        }
-    }
-
-    /** Perform a load (download of remote URI) of the resource into the graph
-     *
-     * The document type is optional but should be specified if it
-     * can't be guessed or got from the HTTP headers.
-     *
-     * @param  string  $format  Optional format of the data (eg. rdfxml)
-     */
-    public function load($format = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->load($this->uri, $format);
-    }
-
-    /** Delete a property (or optionally just a specific value)
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  object  $value The value to delete (null to delete all values)
-     * @return null
-     */
-    public function delete($property, $value = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->delete($this->uri, $property, $value);
-    }
-
-    /** Add values to for a property of the resource
-     *
-     * Example:
-     *   $resource->add('prefix:property', 'value');
-     *
-     * @param  mixed $property   The property name
-     * @param  mixed $value      The value for the property
-     * @return integer           The number of values added (1 or 0)
-     */
-    public function add($property, $value)
-    {
-        $this->checkHasGraph();
-        return $this->graph->add($this->uri, $property, $value);
-    }
-
-    /** Add a literal value as a property of the resource
-     *
-     * The value can either be a single value or an array of values.
-     *
-     * Example:
-     *   $resource->add('dc:title', 'Title of Page');
-     *
-     * @param  mixed  $property  The property name
-     * @param  mixed  $values    The value or values for the property
-     * @param  string $lang      The language of the literal
-     * @return integer           The number of values added
-     */
-    public function addLiteral($property, $values, $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->addLiteral($this->uri, $property, $values, $lang);
-    }
-
-    /** Add a resource as a property of the resource
-     *
-     * Example:
-     *   $bob->add('foaf:knows', 'http://example.com/alice');
-     *
-     * @param  mixed $property   The property name
-     * @param  mixed $resource2  The resource to be the value of the property
-     * @return integer           The number of values added (1 or 0)
-     */
-    public function addResource($property, $resource2)
-    {
-        $this->checkHasGraph();
-        return $this->graph->addResource($this->uri, $property, $resource2);
-    }
-
-    /** Set value for a property
-     *
-     * The new value(s) will replace the existing values for the property.
-     * The name of the property should be a string.
-     * If you set a property to null or an empty array, then the property
-     * will be deleted.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  mixed   $value    The value for the property.
-     * @return integer           The number of values added (1 or 0)
-     */
-    public function set($property, $value)
-    {
-        $this->checkHasGraph();
-        return $this->graph->set($this->uri, $property, $value);
-    }
-
-    /** Get a single value for a property
-     *
-     * If multiple values are set for a property then the value returned
-     * may be arbitrary.
-     *
-     * If $property is an array, then the first item in the array that matches
-     * a property that exists is returned.
-     *
-     * This method will return null if the property does not exist.
-     *
-     * @param  string|array $property The name of the property (e.g. foaf:name)
-     * @param  string       $type     The type of value to filter by (e.g. literal or resource)
-     * @param  string       $lang     The language to filter by (e.g. en)
-     * @return mixed                  A value associated with the property
-     */
-    public function get($property, $type = null, $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->get($this->uri, $property, $type, $lang);
-    }
-
-    /** Get a single literal value for a property of the resource
-     *
-     * If multiple values are set for a property then the value returned
-     * may be arbitrary.
-     *
-     * This method will return null if there is not literal value for the
-     * property.
-     *
-     * @param  string|array $property The name of the property (e.g. foaf:name)
-     * @param  string       $lang     The language to filter by (e.g. en)
-     * @return object EasyRdf_Literal Literal value associated with the property
-     */
-    public function getLiteral($property, $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->get($this->uri, $property, 'literal', $lang);
-    }
-
-    /** Get a single resource value for a property of the resource
-     *
-     * If multiple values are set for a property then the value returned
-     * may be arbitrary.
-     *
-     * This method will return null if there is not resource for the
-     * property.
-     *
-     * @param  string|array $property The name of the property (e.g. foaf:name)
-     * @return object EasyRdf_Resource Resource associated with the property
-     */
-    public function getResource($property)
-    {
-        $this->checkHasGraph();
-        return $this->graph->get($this->uri, $property, 'resource');
-    }
-
-    /** Get all values for a property
-     *
-     * This method will return an empty array if the property does not exist.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $type     The type of value to filter by (e.g. literal)
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return array             An array of values associated with the property
-     */
-    public function all($property, $type = null, $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->all($this->uri, $property, $type, $lang);
-    }
-
-    /** Get all literal values for a property of the resource
-     *
-     * This method will return an empty array if the resource does not
-     * has any literal values for that property.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return array             An array of values associated with the property
-     */
-    public function allLiterals($property, $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->all($this->uri, $property, 'literal', $lang);
-    }
-
-    /** Get all resources for a property of the resource
-     *
-     * This method will return an empty array if the resource does not
-     * has any resources for that property.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @return array             An array of values associated with the property
-     */
-    public function allResources($property)
-    {
-        $this->checkHasGraph();
-        return $this->graph->all($this->uri, $property, 'resource');
-    }
-
-    /** Count the number of values for a property of a resource
-     *
-     * This method will return 0 if the property does not exist.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $type     The type of value to filter by (e.g. literal)
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return integer           The number of values associated with the property
-     */
-    public function countValues($property, $type = null, $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->countValues($this->uri, $property, $type, $lang);
-    }
-
-    /** Concatenate all values for a property into a string.
-     *
-     * The default is to join the values together with a space character.
-     * This method will return an empty string if the property does not exist.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  string  $glue     The string to glue the values together with.
-     * @param  string  $lang     The language to filter by (e.g. en)
-     * @return string            Concatenation of all the values.
-     */
-    public function join($property, $glue = ' ', $lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->join($this->uri, $property, $glue, $lang);
-    }
-
-    /** Get a list of the full URIs for the properties of this resource.
-     *
-     * This method will return an empty array if the resource has no properties.
-     *
-     * @return array            Array of full URIs
-     */
-    public function propertyUris()
-    {
-        $this->checkHasGraph();
-        return $this->graph->propertyUris($this->uri);
-    }
-
-    /** Get a list of all the shortened property names (qnames) for a resource.
-     *
-     * This method will return an empty array if the resource has no properties.
-     *
-     * @return array            Array of shortened URIs
-     */
-    public function properties()
-    {
-        $this->checkHasGraph();
-        return $this->graph->properties($this->uri);
-    }
-
-    /** Get a list of the full URIs for the properties that point to this resource.
-     *
-     * @return array   Array of full property URIs
-     */
-    public function reversePropertyUris()
-    {
-        $this->checkHasGraph();
-        return $this->graph->reversePropertyUris($this->uri);
-    }
-
-    /** Check to see if a property exists for this resource.
-     *
-     * This method will return true if the property exists.
-     * If the value parameter is given, then it will only return true
-     * if the value also exists for that property.
-     *
-     * @param  string  $property The name of the property (e.g. foaf:name)
-     * @param  mixed   $value    An optional value of the property
-     * @return bool              True if value the property exists.
-     */
-    public function hasProperty($property, $value = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->hasProperty($this->uri, $property, $value);
-    }
-
-    /** Get a list of types for a resource.
-     *
-     * The types will each be a shortened URI as a string.
-     * This method will return an empty array if the resource has no types.
-     *
-     * @return array All types assocated with the resource (e.g. foaf:Person)
-     */
-    public function types()
-    {
-        $this->checkHasGraph();
-        return $this->graph->types($this->uri);
-    }
-
-    /** Get a single type for a resource.
-     *
-     * The type will be a shortened URI as a string.
-     * If the resource has multiple types then the type returned
-     * may be arbitrary.
-     * This method will return null if the resource has no type.
-     *
-     * @return string A type assocated with the resource (e.g. foaf:Person)
-     */
-    public function type()
-    {
-        $this->checkHasGraph();
-        return $this->graph->type($this->uri);
-    }
-
-    /** Get a single type for a resource, as a resource.
-     *
-     * The type will be returned as an EasyRdf_Resource.
-     * If the resource has multiple types then the type returned
-     * may be arbitrary.
-     * This method will return null if the resource has no type.
-     *
-     * @return EasyRdf_Resource A type assocated with the resource.
-     */
-    public function typeAsResource()
-    {
-        $this->checkHasGraph();
-        return $this->graph->typeAsResource($this->uri);
-    }
-
-    /**
-     * Get a list of types for a resource, as Resources.
-     *
-     * @return EasyRdf_Resource[]
-     * @throws EasyRdf_Exception
-     */
-    public function typesAsResources()
-    {
-        $this->checkHasGraph();
-        return $this->graph->typesAsResources($this->uri);
-    }
-
-    /** Check if a resource is of the specified type
-     *
-     * @param  string  $type The type to check (e.g. foaf:Person)
-     * @return boolean       True if resource is of specified type.
-     */
-    public function isA($type)
-    {
-        $this->checkHasGraph();
-        return $this->graph->isA($this->uri, $type);
-    }
-
-    /** Add one or more rdf:type properties to the resource
-     *
-     * @param  string  $types    One or more types to add (e.g. foaf:Person)
-     * @return integer           The number of types added
-     */
-    public function addType($types)
-    {
-        $this->checkHasGraph();
-        return $this->graph->addType($this->uri, $types);
-    }
-
-    /** Change the rdf:type property for the resource
-     *
-     * Note that the PHP class of the resource will not change.
-     *
-     * @param  string  $type     The new type (e.g. foaf:Person)
-     * @return integer           The number of types added
-     */
-    public function setType($type)
-    {
-        $this->checkHasGraph();
-        return $this->graph->setType($this->uri, $type);
-    }
-
-    /** Get the primary topic of this resource.
-     *
-     * Returns null if no primary topic is available.
-     *
-     * @return EasyRdf_Resource The primary topic of this resource.
-     */
-    public function primaryTopic()
-    {
-        $this->checkHasGraph();
-        return $this->graph->primaryTopic($this->uri);
-    }
-
-    /** Get a human readable label for this resource
-     *
-     * This method will check a number of properties for the resource
-     * (in the order: skos:prefLabel, rdfs:label, foaf:name, dc:title)
-     * and return an approriate first that is available. If no label
-     * is available then it will return null.
-     *
-     * @return string A label for the resource.
-     */
-    public function label($lang = null)
-    {
-        $this->checkHasGraph();
-        return $this->graph->label($this->uri, $lang);
-    }
-
-    /** Return a human readable view of the resource and its properties
-     *
-     * This method is intended to be a debugging aid and will
-     * print a resource and its properties.
-     *
-     * @param  string $format   Either 'html' or 'text'
-     * @return string
-     */
-    public function dump($format = 'html')
-    {
-        $this->checkHasGraph();
-        return $this->graph->dumpResource($this->uri, $format);
-    }
-
-    /** Magic method to get a property of a resource
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   $value = $resource->title;
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param  string $name The name of the property
-     * @return string       A single value for the named property
-     */
-    public function __get($name)
-    {
-        return $this->graph->get($this->uri, $name);
-    }
-
-    /** Magic method to set the value for a property of a resource
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   $resource->title = 'Title';
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param  string $name The name of the property
-     * @param  string $value The value for the property
-     */
-    public function __set($name, $value)
-    {
-        return $this->graph->set($this->uri, $name, $value);
-    }
-
-    /** Magic method to check if a property exists
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   if (isset($resource->title)) { blah(); }
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param string $name The name of the property
-     */
-    public function __isset($name)
-    {
-        return $this->graph->hasProperty($this->uri, $name);
-    }
-
-    /** Magic method to delete a property of the resource
-     *
-     * Note that only properties in the default namespace can be accessed in this way.
-     *
-     * Example:
-     *   unset($resource->title);
-     *
-     * @see EasyRdf_Namespace::setDefault()
-     * @param string $name The name of the property
-     */
-    public function __unset($name)
-    {
-        return $this->graph->delete($this->uri, $name);
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser.php
deleted file mode 100644
index 1c0acb8..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Parent class for the EasyRdf serialiser
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser
-{
-    protected $prefixes = array();
-
-    public function __construct()
-    {
-    }
-
-    /**
-     * Keep track of the prefixes used while serialising
-     * @ignore
-     */
-    protected function addPrefix($qname)
-    {
-        list ($prefix) = explode(':', $qname);
-        $this->prefixes[$prefix] = true;
-    }
-
-    /**
-     * Check and cleanup parameters passed to serialise() method
-     * @ignore
-     */
-    protected function checkSerialiseParams(&$graph, &$format)
-    {
-        if (is_null($graph) or !is_object($graph) or !($graph instanceof EasyRdf_Graph)) {
-            throw new InvalidArgumentException(
-                "\$graph should be an EasyRdf_Graph object and cannot be null"
-            );
-        }
-
-        if (is_null($format) or $format == '') {
-            throw new InvalidArgumentException(
-                "\$format cannot be null or empty"
-            );
-        } elseif (is_object($format) and ($format instanceof EasyRdf_Format)) {
-            $format = $format->getName();
-        } elseif (!is_string($format)) {
-            throw new InvalidArgumentException(
-                "\$format should be a string or an EasyRdf_Format object"
-            );
-        }
-    }
-
-    /**
-     * Protected method to get the number of reverse properties for a resource
-     * If a resource only has a single property, the number of values for that
-     * property is returned instead.
-     * @ignore
-     */
-    protected function reversePropertyCount($resource)
-    {
-        $properties = $resource->reversePropertyUris();
-        $count = count($properties);
-        if ($count == 1) {
-            $property = $properties[0];
-            return $resource->countValues("^<$property>");
-        } else {
-            return $count;
-        }
-    }
-
-    /**
-     * Sub-classes must follow this protocol
-     * @ignore
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        throw new EasyRdf_Exception(
-            "This method should be overridden by sub-classes."
-        );
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Arc.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Arc.php
deleted file mode 100644
index 31bd8b7..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Arc.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise RDF using the ARC2 library.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_Arc extends EasyRdf_Serialiser_RdfPhp
-{
-    private static $supportedTypes = array(
-        'rdfxml' => 'RDFXML',
-        'turtle' => 'Turtle',
-        'ntriples' => 'NTriples',
-        'posh' => 'POSHRDF'
-    );
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Serialiser_Arc
-     */
-    public function __construct()
-    {
-        require_once 'arc/ARC2.php';
-    }
-
-    /**
-     * Serialise an EasyRdf_Graph into RDF format of choice.
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string              The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if (array_key_exists($format, self::$supportedTypes)) {
-            $className = self::$supportedTypes[$format];
-        } else {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Serialiser_Arc does not support: $format"
-            );
-        }
-
-        $serialiser = ARC2::getSer($className);
-        if ($serialiser) {
-            return $serialiser->getSerializedIndex(
-                parent::serialise($graph, 'php')
-            );
-        } else {
-            throw new EasyRdf_Exception(
-                "ARC2 failed to get a $className serialiser."
-            );
-        }
-    }
-}
-
-EasyRdf_Format::register('posh', 'poshRDF');
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php
deleted file mode 100644
index 2fd22da..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php
+++ /dev/null
@@ -1,392 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2012-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to GraphViz
- *
- * Depends upon the GraphViz 'dot' command line tools to render images.
- *
- * See http://www.graphviz.org/ for more information.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2012-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_GraphViz extends EasyRdf_Serialiser
-{
-    private $dotCommand = 'dot';
-    private $useLabels = false;
-    private $onlyLabelled = false;
-    private $attributes = array('charset' => 'utf-8');
-
-    /**
-     * Constructor
-     *
-     * @return object EasyRdf_Serialiser_GraphViz
-     */
-    public function __construct()
-    {
-    }
-
-    /**
-     * Set the path to the GraphViz 'dot' command
-     *
-     * Default is to search PATH for the command 'dot'.
-     *
-     * @param string $cmd   The path to the 'dot' command.
-     * @return object EasyRdf_Serialiser_GraphViz
-     */
-    public function setDotCommand($cmd)
-    {
-        $this->dotCommand = $cmd;
-        return $this;
-    }
-
-    /**
-     * Get the path to the GraphViz 'dot' command
-     *
-     * The default value is simply 'dot'
-     *
-     * @return string The path to the 'dot' command.
-     */
-    public function getDotCommand()
-    {
-        return $this->dotCommand;
-    }
-
-    /**
-     * Turn on/off the option to display labels instead of URIs.
-     *
-     * When this option is turned on, then labels for resources will
-     * be displayed instead of the full URI of a resource. This makes
-     * it simpler to create friendly diagrams that non-technical people
-     * can understand.
-     *
-     * This option is turned off by default.
-     *
-     * @param bool $useLabels   A boolean value to turn labels on and off
-     * @return object EasyRdf_Serialiser_GraphViz
-     */
-    public function setUseLabels($useLabels)
-    {
-        $this->useLabels = $useLabels;
-        return $this;
-    }
-
-    /**
-     * Get the state of the use labels option
-     *
-     * @return bool The current state of the use labels option
-     */
-    public function getUseLabels()
-    {
-        return $this->useLabels;
-    }
-
-    /**
-     * Turn on/off the option to only display nodes and edges with labels
-     *
-     * When this option is turned on, then only nodes (resources and literals)
-     * and edges (properties) will only be displayed if they have a label. You
-     * can use this option, to create concise, diagrams of your data, rather than
-     * the RDF.
-     *
-     * This option is turned off by default.
-     *
-     * @param bool $onlyLabelled   A boolean value to enable/display only labelled items
-     * @return object EasyRdf_Serialiser_GraphViz
-     */
-    public function setOnlyLabelled($onlyLabelled)
-    {
-        $this->onlyLabelled = $onlyLabelled;
-        return $this;
-    }
-
-    /**
-     * Get the state of the only Only Labelled option
-     *
-     * @return bool The current state of the Only Labelled option
-     */
-    public function getOnlyLabelled()
-    {
-        return $this->onlyLabelled;
-    }
-
-    /**
-     * Set an attribute on the GraphViz graph
-     *
-     * Example:
-     *     $serialiser->setAttribute('rotate', 90);
-     *
-     * See the GraphViz tool documentation for information about the
-     * available attributes.
-     *
-     * @param string $name    The name of the attribute
-     * @param string $value   The value for the attribute
-     * @return object EasyRdf_Serialiser_GraphViz
-     */
-    public function setAttribute($name, $value)
-    {
-        $this->attributes[$name] = $value;
-        return $this;
-    }
-
-    /**
-     * Get an attribute of the GraphViz graph
-     *
-     * @param string $name    Attribute name
-     * @return string The value of the graph attribute
-     */
-    public function getAttribute($name)
-    {
-        return $this->attributes[$name];
-    }
-
-    /**
-     * Convert an EasyRdf object into a GraphViz node identifier
-     *
-     * @ignore
-     */
-    protected function nodeName($entity)
-    {
-        if ($entity instanceof EasyRdf_Resource) {
-            if ($entity->isBNode()) {
-                return "B".$entity->getUri();
-            } else {
-                return "R".$entity->getUri();
-            }
-        } else {
-            return "L".$entity;
-        }
-    }
-
-    /**
-     * Internal function to escape a string into DOT safe syntax
-     *
-     * @ignore
-     */
-    protected function escape($input)
-    {
-        if (preg_match('/^([a-z_][a-z_0-9]*|-?(\.[0-9]+|[0-9]+(\.[0-9]*)?))$/i', $input)) {
-            return $input;
-        } else {
-            return '"'.str_replace(
-                array("\r\n", "\n", "\r", '"'),
-                array('\n',   '\n', '\n', '\"'),
-                $input
-            ).'"';
-        }
-    }
-
-    /**
-     * Internal function to escape an associate array of attributes and
-     * turns it into a DOT notation string
-     *
-     * @ignore
-     */
-    protected function escapeAttributes($array)
-    {
-        $items = '';
-        foreach ($array as $k => $v) {
-            $items[] = $this->escape($k).'='.$this->escape($v);
-        }
-        return '['.implode(',', $items).']';
-    }
-
-    /**
-     * Internal function to create dot syntax line for either a node or an edge
-     *
-     * @ignore
-     */
-    protected function serialiseRow($node1, $node2 = null, $attributes = array())
-    {
-        $result = '  '.$this->escape($node1);
-        if ($node2) {
-            $result .= ' -> '.$this->escape($node2);
-        }
-        if (count($attributes)) {
-            $result .= ' '.$this->escapeAttributes($attributes);
-        }
-        return $result.";\n";
-    }
-
-    /**
-     * Internal function to serialise an EasyRdf_Graph into a DOT formatted string
-     *
-     * @ignore
-     */
-    protected function serialiseDot($graph)
-    {
-        $result = "digraph {\n";
-
-        // Write the graph attributes
-        foreach ($this->attributes as $k => $v) {
-            $result .= '  '.$this->escape($k).'='.$this->escape($v).";\n";
-        }
-
-        // Go through each of the properties and write the edges
-        $nodes = array();
-        $result .= "\n  // Edges\n";
-        foreach ($graph->resources() as $resource) {
-            $name1 = $this->nodeName($resource);
-            foreach ($resource->propertyUris() as $property) {
-                $label = null;
-                if ($this->useLabels) {
-                    $label = $graph->resource($property)->label();
-                }
-                if ($label === null) {
-                    if ($this->onlyLabelled == true) {
-                        continue;
-                    } else {
-                        $label = EasyRdf_Namespace::shorten($property);
-                    }
-                }
-                foreach ($resource->all("<$property>") as $value) {
-                    $name2 = $this->nodeName($value);
-                    $nodes[$name1] = $resource;
-                    $nodes[$name2] = $value;
-                    $result .= $this->serialiseRow(
-                        $name1,
-                        $name2,
-                        array('label' => $label)
-                    );
-                }
-            }
-        }
-
-        ksort($nodes);
-
-        $result .= "\n  // Nodes\n";
-        foreach ($nodes as $name => $node) {
-            $type = substr($name, 0, 1);
-            $label = '';
-            if ($type == 'R') {
-                if ($this->useLabels) {
-                    $label = $node->label();
-                }
-                if (!$label) {
-                    $label = $node->shorten();
-                }
-                if (!$label) {
-                    $label = $node->getURI();
-                }
-                $result .= $this->serialiseRow(
-                    $name,
-                    null,
-                    array(
-                        'URL'   => $node->getURI(),
-                        'label' => $label,
-                        'shape' => 'ellipse',
-                        'color' => 'blue'
-                    )
-                );
-            } elseif ($type == 'B') {
-                if ($this->useLabels) {
-                    $label = $node->label();
-                }
-                $result .= $this->serialiseRow(
-                    $name,
-                    null,
-                    array(
-                        'label' => $label,
-                        'shape' => 'circle',
-                        'color' => 'green'
-                    )
-                );
-            } else {
-                $result .= $this->serialiseRow(
-                    $name,
-                    null,
-                    array(
-                        'label' => strval($node),
-                        'shape' => 'record',
-                    )
-                );
-            }
-
-        }
-
-        $result .= "}\n";
-
-        return $result;
-    }
-
-    /**
-     * Internal function to render a graph into an image
-     *
-     * @ignore
-     */
-    public function renderImage($graph, $format = 'png')
-    {
-        $dot = $this->serialiseDot($graph);
-
-        return EasyRdf_Utils::execCommandPipe(
-            $this->dotCommand,
-            array("-T$format"),
-            $dot
-        );
-    }
-
-    /**
-     * Serialise an EasyRdf_Graph into a GraphViz dot document.
-     *
-     * Supported output format names: dot, gif, png, svg
-     *
-     * @param EasyRdf_Graph $graph  An EasyRdf_Graph object.
-     * @param string        $format The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        switch($format) {
-            case 'dot':
-                return $this->serialiseDot($graph);
-            case 'png':
-            case 'gif':
-            case 'svg':
-                return $this->renderImage($graph, $format);
-            default:
-                throw new EasyRdf_Exception(
-                    "EasyRdf_Serialiser_GraphViz does not support: $format"
-                );
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Json.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Json.php
deleted file mode 100644
index 2ff3f59..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Json.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to RDF/JSON
- * with no external dependancies.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_Json extends EasyRdf_Serialiser_RdfPhp
-{
-    /**
-     * Method to serialise an EasyRdf_Graph to RDF/JSON
-     *
-     * http://n2.talis.com/wiki/RDF_JSON_Specification
-     * docs/appendix-a-rdf-formats-json.md
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if ($format != 'json') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Serialiser_Json does not support: $format"
-            );
-        }
-
-        return json_encode(parent::serialise($graph, 'php'));
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/JsonLd.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/JsonLd.php
deleted file mode 100644
index 4265773..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/JsonLd.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-if (PHP_MAJOR_VERSION > 5 or (PHP_MAJOR_VERSION == 5 and PHP_MINOR_VERSION >= 3)) {
-    require dirname(__FILE__).'/JsonLd_real.php';
-} else {
-    throw new LogicException("JSON-LD support requires PHP 5.3+");
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/JsonLd_real.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/JsonLd_real.php
deleted file mode 100644
index 4fb6c49..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/JsonLd_real.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to JSON-LD
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2013 Alexey Zakhlestin
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_JsonLd extends EasyRdf_Serialiser
-{
-    public function __construct()
-    {
-        if (!class_exists('\ML\JsonLD\JsonLD')) {
-            throw new LogicException('Please install "ml/json-ld" dependency to use JSON-LD serialisation');
-        }
-
-        parent::__construct();
-    }
-
-    /**
-     * @param EasyRdf_Graph $graph
-     * @param string        $format
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if ($format != 'jsonld') {
-            throw new EasyRdf_Exception(__CLASS__.' does not support: '.$format);
-        }
-
-
-        $ld_graph = new \ML\JsonLD\Graph();
-        $nodes = array(); // cache for id-to-node association
-
-        foreach ($graph->toRdfPhp() as $resource => $properties) {
-            if (array_key_exists($resource, $nodes)) {
-                $node = $nodes[$resource];
-            } else {
-                $node = $ld_graph->createNode($resource);
-                $nodes[$resource] = $node;
-            }
-
-            foreach ($properties as $property => $values) {
-                foreach ($values as $value) {
-                    if ($value['type'] == 'bnode' or $value['type'] == 'uri') {
-                        if (array_key_exists($value['value'], $nodes)) {
-                            $_value = $nodes[$value['value']];
-                        } else {
-                            $_value = $ld_graph->createNode($value['value']);
-                            $nodes[$value['value']] = $_value;
-                        }
-                    } elseif ($value['type'] == 'literal') {
-                        if (isset($value['lang'])) {
-                            $_value = new \ML\JsonLD\LanguageTaggedString($value['value'], $value['lang']);
-                        } elseif (isset($value['datatype'])) {
-                            $_value = new \ML\JsonLD\TypedValue($value['value'], $value['datatype']);
-                        } else {
-                            $_value = $value['value'];
-                        }
-                    } else {
-                        throw new EasyRdf_Exception(
-                            "Unable to serialise object to JSON-LD: ".$value['type']
-                        );
-                    }
-
-                    if ($property == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") {
-                        $node->addType($_value);
-                    } else {
-                        $node->addPropertyValue($property, $_value);
-                    }
-                }
-            }
-        }
-
-        // OPTIONS
-        $use_native_types = !(isset($options['expand_native_types']) and $options['expand_native_types'] == true);
-        $should_compact = (isset($options['compact']) and $options['compact'] == true);
-        $should_frame = isset($options['frame']);
-
-        // expanded form
-        $data = $ld_graph->toJsonLd($use_native_types);
-
-        if ($should_frame) {
-            $data = \ML\JsonLD\JsonLD::frame($data, $options['frame'], $options);
-
-        }
-
-        if ($should_compact) {
-            // compact form
-            $compact_context = isset($options['context']) ? $options['context'] : null;
-            $compact_options = array(
-                'useNativeTypes' => $use_native_types,
-                'base' => $graph->getUri()
-            );
-
-            $data = \ML\JsonLD\JsonLD::compact($data, $compact_context, $compact_options);
-        }
-
-        return \ML\JsonLD\JsonLD::toString($data);
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php
deleted file mode 100644
index d77a638..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to N-Triples
- * with no external dependancies.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_Ntriples extends EasyRdf_Serialiser
-{
-    private $escChars = array();   // Character encoding cache
-
-    /**
-     * @ignore
-     */
-    protected function escapeString($str)
-    {
-        if (strpos(utf8_decode(str_replace('?', '', $str)), '?') === false) {
-            $str = utf8_decode($str);
-        }
-
-        $result = '';
-        $strLen = strlen($str);
-        for ($i = 0; $i < $strLen; $i++) {
-            $c = $str[$i];
-            if (!isset($this->escChars[$c])) {
-                $this->escChars[$c] = $this->escapedChar($c);
-            }
-            $result .= $this->escChars[$c];
-        }
-        return $result;
-    }
-
-    /**
-     * @ignore
-     */
-    protected function unicodeCharNo($c)
-    {
-        $cUtf = utf8_encode($c);
-        $bl = strlen($cUtf); /* binary length */
-        $r = 0;
-        switch ($bl) {
-            case 1: /* 0####### (0-127) */
-                $r = ord($cUtf);
-                break;
-            case 2: /* 110##### 10###### = 192+x 128+x */
-                $r = ((ord($cUtf[0]) - 192) * 64) +
-                     (ord($cUtf[1]) - 128);
-                break;
-            case 3: /* 1110#### 10###### 10###### = 224+x 128+x 128+x */
-                $r = ((ord($cUtf[0]) - 224) * 4096) +
-                     ((ord($cUtf[1]) - 128) * 64) +
-                     (ord($cUtf[2]) - 128);
-                break;
-            case 4: /* 1111#### 10###### 10###### 10###### = 240+x 128+x 128+x 128+x */
-                $r = ((ord($cUtf[0]) - 240) * 262144) +
-                     ((ord($cUtf[1]) - 128) * 4096) +
-                     ((ord($cUtf[2]) - 128) * 64) +
-                     (ord($cUtf[3]) - 128);
-                break;
-        }
-        return $r;
-    }
-
-    /**
-     * @ignore
-     */
-    protected function escapedChar($c)
-    {
-        $no = $this->unicodeCharNo($c);
-
-        /* see http://www.w3.org/TR/rdf-testcases/#ntrip_strings */
-        if ($no < 9) {
-            return "\\u" . sprintf('%04X', $no);  /* #x0-#x8 (0-8) */
-        } elseif ($no == 9) {
-            return '\t';                          /* #x9 (9) */
-        } elseif ($no == 10) {
-            return '\n';                          /* #xA (10) */
-        } elseif ($no < 13) {
-            return "\\u" . sprintf('%04X', $no);  /* #xB-#xC (11-12) */
-        } elseif ($no == 13) {
-            return '\r';                          /* #xD (13) */
-        } elseif ($no < 32) {
-            return "\\u" . sprintf('%04X', $no);  /* #xE-#x1F (14-31) */
-        } elseif ($no < 34) {
-            return $c;                            /* #x20-#x21 (32-33) */
-        } elseif ($no == 34) {
-            return '\"';                          /* #x22 (34) */
-        } elseif ($no < 92) {
-            return $c;                            /* #x23-#x5B (35-91) */
-        } elseif ($no == 92) {
-            return '\\';                          /* #x5C (92) */
-        } elseif ($no < 127) {
-            return $c;                            /* #x5D-#x7E (93-126) */
-        } elseif ($no < 65536) {
-            return "\\u" . sprintf('%04X', $no);  /* #x7F-#xFFFF (128-65535) */
-        } elseif ($no < 1114112) {
-            return "\\U" . sprintf('%08X', $no);  /* #x10000-#x10FFFF (65536-1114111) */
-        } else {
-            return '';                            /* not defined => ignore */
-        }
-    }
-
-    /**
-     * @ignore
-     */
-    protected function serialiseResource($res)
-    {
-        $escaped = $this->escapeString($res);
-        if (substr($res, 0, 2) == '_:') {
-            return $escaped;
-        } else {
-            return "<$escaped>";
-        }
-    }
-
-    /**
-     * Serialise an RDF value into N-Triples
-     *
-     * The value can either be an array in RDF/PHP form, or
-     * an EasyRdf_Literal or EasyRdf_Resource object.
-     *
-     * @param array|object  $value   An associative array or an object
-     * @throws EasyRdf_Exception
-     * @return string The RDF value serialised to N-Triples
-     */
-    public function serialiseValue($value)
-    {
-        if (is_object($value)) {
-            $value = $value->toRdfPhp();
-        }
-
-        if ($value['type'] == 'uri' or $value['type'] == 'bnode') {
-            return $this->serialiseResource($value['value']);
-        } elseif ($value['type'] == 'literal') {
-            $escaped = $this->escapeString($value['value']);
-            if (isset($value['lang'])) {
-                $lang = $this->escapeString($value['lang']);
-                return '"' . $escaped . '"' . '@' . $lang;
-            } elseif (isset($value['datatype'])) {
-                $datatype = $this->escapeString($value['datatype']);
-                return '"' . $escaped . '"' . "^^<$datatype>";
-            } else {
-                return '"' . $escaped . '"';
-            }
-        } else {
-            throw new EasyRdf_Exception(
-                "Unable to serialise object of type '".$value['type']."' to ntriples: "
-            );
-        }
-    }
-
-    /**
-     * Serialise an EasyRdf_Graph into N-Triples
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if ($format == 'ntriples') {
-            $nt = '';
-            foreach ($graph->toRdfPhp() as $resource => $properties) {
-                foreach ($properties as $property => $values) {
-                    foreach ($values as $value) {
-                        $nt .= $this->serialiseResource($resource)." ";
-                        $nt .= "<" . $this->escapeString($property) . "> ";
-                        $nt .= $this->serialiseValue($value)." .\n";
-                    }
-                }
-            }
-            return $nt;
-        } else {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Serialiser_Ntriples does not support: $format"
-            );
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Rapper.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Rapper.php
deleted file mode 100644
index ba42bc5..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Rapper.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to RDF
- * using the 'rapper' command line tool.
- *
- * Note: the built-in N-Triples serialiser is used to pass data to Rapper.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_Rapper extends EasyRdf_Serialiser_Ntriples
-{
-    private $rapperCmd = null;
-
-    /**
-     * Constructor
-     *
-     * @param string $rapperCmd Optional path to the rapper command to use.
-     * @return object EasyRdf_Serialiser_Rapper
-     */
-    public function __construct($rapperCmd = 'rapper')
-    {
-        $result = exec("$rapperCmd --version 2>/dev/null", $output, $status);
-        if ($status != 0) {
-            throw new EasyRdf_Exception(
-                "Failed to execute the command '$rapperCmd': $result"
-            );
-        } else {
-            $this->rapperCmd = $rapperCmd;
-        }
-    }
-
-    /**
-     * Serialise an EasyRdf_Graph to the RDF format of choice.
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        $ntriples = parent::serialise($graph, 'ntriples');
-
-        // Hack to produce more concise RDF/XML
-        if ($format == 'rdfxml') {
-            $format = 'rdfxml-abbrev';
-        }
-
-        return EasyRdf_Utils::execCommandPipe(
-            $this->rapperCmd,
-            array(
-                '--quiet',
-                '--input', 'ntriples',
-                '--output', $format,
-                '-', 'unknown://'
-            ),
-            $ntriples
-        );
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php
deleted file mode 100644
index ed851af..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to RDF/PHP
- * with no external dependancies.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_RdfPhp extends EasyRdf_Serialiser
-{
-    /**
-     * Method to serialise an EasyRdf_Graph to RDF/PHP
-     *
-     * http://n2.talis.com/wiki/RDF_PHP_Specification
-     * docs/appendix-a-rdf-formats-php.md
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if ($format != 'php') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Serialiser_RdfPhp does not support: $format"
-            );
-        }
-
-        // Graph is already stored as RDF/PHP resource-centric array internally within the EasyRdf_Graph object
-        return $graph->toRdfPhp();
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php
deleted file mode 100644
index 289d7dc..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to RDF/XML
- * with no external dependancies.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_RdfXml extends EasyRdf_Serialiser
-{
-    private $outputtedResources = array();
-
-    /** A constant for the RDF Type property URI */
-    const RDF_XML_LITERAL = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral';
-
-    /**
-     * Protected method to serialise an object node into an XML object
-     * @ignore
-     */
-    protected function rdfxmlObject($property, $obj, $depth)
-    {
-        $indent = str_repeat('  ', $depth);
-
-        if ($property[0] === ':') {
-            $property = substr($property, 1);
-        }
-
-        if (is_object($obj) and $obj instanceof EasyRdf_Resource) {
-            $pcount = count($obj->propertyUris());
-            $rpcount = $this->reversePropertyCount($obj);
-            $alreadyOutput = isset($this->outputtedResources[$obj->getUri()]);
-
-            $tag = "{$indent}<{$property}";
-            if ($obj->isBNode()) {
-                if ($alreadyOutput or $rpcount > 1 or $pcount == 0) {
-                    $tag .= " rdf:nodeID=\"".htmlspecialchars($obj->getBNodeId()).'"';
-                }
-            } else {
-                if ($alreadyOutput or $rpcount != 1 or $pcount == 0) {
-                    $tag .= " rdf:resource=\"".htmlspecialchars($obj->getURI()).'"';
-                }
-            }
-
-            if ($alreadyOutput == false and $rpcount == 1 and $pcount > 0) {
-                $xml = $this->rdfxmlResource($obj, false, $depth+1);
-                if ($xml) {
-                    return "$tag>$xml$indent</$property>\n\n";
-                } else {
-                    return '';
-                }
-            } else {
-                return $tag."/>\n";
-            }
-
-        } elseif (is_object($obj) and $obj instanceof EasyRdf_Literal) {
-            $atrributes = "";
-            $datatype = $obj->getDatatypeUri();
-            if ($datatype) {
-                if ($datatype == self::RDF_XML_LITERAL) {
-                    $atrributes .= " rdf:parseType=\"Literal\"";
-                    $value = strval($obj);
-                } else {
-                    $datatype = htmlspecialchars($datatype);
-                    $atrributes .= " rdf:datatype=\"$datatype\"";
-                }
-            } elseif ($obj->getLang()) {
-                $atrributes .= ' xml:lang="'.
-                               htmlspecialchars($obj->getLang()).'"';
-            }
-
-            // Escape the value
-            if (!isset($value)) {
-                $value = htmlspecialchars(strval($obj));
-            }
-
-            return "{$indent}<{$property}{$atrributes}>{$value}</{$property}>\n";
-        } else {
-            throw new EasyRdf_Exception(
-                "Unable to serialise object to xml: ".getType($obj)
-            );
-        }
-    }
-
-    /**
-     * Protected method to serialise a whole resource and its properties
-     * @ignore
-     */
-    protected function rdfxmlResource($res, $showNodeId, $depth = 1)
-    {
-        // Keep track of the resources we have already serialised
-        if (isset($this->outputtedResources[$res->getUri()])) {
-            return '';
-        } else {
-            $this->outputtedResources[$res->getUri()] = true;
-        }
-
-        // If the resource has no properties - don't serialise it
-        $properties = $res->propertyUris();
-        if (count($properties) == 0) {
-            return '';
-        }
-
-        $type = $res->type();
-        if ($type) {
-            $this->addPrefix($type);
-        } else {
-            $type = 'rdf:Description';
-        }
-
-        $indent = str_repeat('  ', $depth);
-        $xml = "\n$indent<$type";
-        if ($res->isBNode()) {
-            if ($showNodeId) {
-                $xml .= ' rdf:nodeID="'.htmlspecialchars($res->getBNodeId()).'"';
-            }
-        } else {
-            $xml .= ' rdf:about="'.htmlspecialchars($res->getUri()).'"';
-        }
-        $xml .= ">\n";
-
-        if ($res instanceof EasyRdf_Container) {
-            foreach ($res as $item) {
-                $xml .= $this->rdfxmlObject('rdf:li', $item, $depth+1);
-            }
-        } else {
-            foreach ($properties as $property) {
-                $short = EasyRdf_Namespace::shorten($property, true);
-                if ($short) {
-                    $this->addPrefix($short);
-                    $objects = $res->all("<$property>");
-                    if ($short == 'rdf:type' && $type != 'rdf:Description') {
-                        array_shift($objects);
-                    }
-                    foreach ($objects as $object) {
-                        $xml .= $this->rdfxmlObject($short, $object, $depth+1);
-                    }
-                } else {
-                    throw new EasyRdf_Exception(
-                        "It is not possible to serialse the property ".
-                        "'$property' to RDF/XML."
-                    );
-                }
-            }
-        }
-        $xml .= "$indent</$type>\n";
-
-        return $xml;
-    }
-
-
-    /**
-     * Method to serialise an EasyRdf_Graph to RDF/XML
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if ($format != 'rdfxml') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Serialiser_RdfXml does not support: $format"
-            );
-        }
-
-        // store of namespaces to be appended to the rdf:RDF tag
-        $this->prefixes = array('rdf' => true);
-
-        // store of the resource URIs we have serialised
-        $this->outputtedResources = array();
-
-        $xml = '';
-
-        // Serialise URIs first
-        foreach ($graph->resources() as $resource) {
-            if (!$resource->isBnode()) {
-                $xml .= $this->rdfxmlResource($resource, true);
-            }
-        }
-
-        // Serialise bnodes afterwards
-        foreach ($graph->resources() as $resource) {
-            if ($resource->isBnode()) {
-                $xml .= $this->rdfxmlResource($resource, true);
-            }
-        }
-
-        // iterate through namepsaces array prefix and output a string.
-        $namespaceStr = '';
-        foreach ($this->prefixes as $prefix => $count) {
-            $url = EasyRdf_Namespace::get($prefix);
-
-            if (strlen($namespaceStr)) {
-                $namespaceStr .= "\n        ";
-            }
-
-            if (strlen($prefix) === 0) {
-                $namespaceStr .= ' xmlns="'.htmlspecialchars($url).'"';
-            } else {
-                $namespaceStr .= ' xmlns:'.$prefix.'="'.htmlspecialchars($url).'"';
-            }
-        }
-
-        return "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n".
-               "<rdf:RDF". $namespaceStr . ">\n" . $xml . "\n</rdf:RDF>\n";
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Turtle.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Turtle.php
deleted file mode 100644
index b268201..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Turtle.php
+++ /dev/null
@@ -1,363 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to serialise an EasyRdf_Graph to Turtle
- * with no external dependancies.
- *
- * http://www.w3.org/TR/turtle/
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Serialiser_Turtle extends EasyRdf_Serialiser
-{
-    private $outputtedBnodes = array();
-
-    /**
-     * Given a IRI string, escape and enclose in angle brackets.
-     *
-     * @param  string $resourceIri
-     * @return string
-     */
-    public static function escapeIri($resourceIri)
-    {
-        $escapedIri = str_replace('>', '\\>', $resourceIri);
-        return "<$escapedIri>";
-    }
-
-    /**
-     * Given a string, enclose in quotes and escape any quotes in the string.
-     * Strings containing tabs, linefeeds or carriage returns will be
-     * enclosed in three double quotes (""").
-     *
-     * @param  string $value
-     * @return string
-     */
-    public static function quotedString($value)
-    {
-        if (preg_match('/[\t\n\r]/', $value)) {
-            $escaped = str_replace(array('\\', '"""'), array('\\\\', '\\"""'), $value);
-            return '"""'.$escaped.'"""';
-        } else {
-            $escaped = str_replace(array('\\', '"'), array('\\\\', '\\"'), $value);
-            return '"'.$escaped.'"';
-        }
-    }
-
-    /**
-     * Given a an EasyRdf_Resource or URI, convert it into a string, suitable to
-     * be written to a Turtle document. URIs will be shortened into CURIES
-     * where possible.
-     *
-     * @param  EasyRdf_Resource $resource   The resource to convert to a Turtle string
-     * @param  boolean $createNamespace     If true, a new namespace may be created
-     * @return string
-     */
-    public function serialiseResource($resource, $createNamespace = false)
-    {
-        if (is_object($resource)) {
-            if ($resource->isBNode()) {
-                return $resource->getUri();
-            }
-
-            $resource = $resource->getUri();
-        }
-
-        $short = EasyRdf_Namespace::shorten($resource, $createNamespace);
-
-        if ($short) {
-            $this->addPrefix($short);
-            return $short;
-        }
-
-        return self::escapeIri($resource);
-    }
-
-    /**
-     * Given an EasyRdf_Literal object, convert it into a string, suitable to
-     * be written to a Turtle document. Supports multiline literals and literals with
-     * datatypes or languages.
-     *
-     * @param  EasyRdf_Literal $literal
-     * @return string
-     */
-    public function serialiseLiteral($literal)
-    {
-        $value = strval($literal);
-        $quoted = self::quotedString($value);
-
-        if ($datatype = $literal->getDatatypeUri()) {
-            if ($datatype == 'http://www.w3.org/2001/XMLSchema#integer') {
-                return sprintf('%d', $value);
-            } elseif ($datatype == 'http://www.w3.org/2001/XMLSchema#decimal') {
-                return sprintf('%s', $value);
-            } elseif ($datatype == 'http://www.w3.org/2001/XMLSchema#double') {
-                return sprintf('%e', $value);
-            } elseif ($datatype == 'http://www.w3.org/2001/XMLSchema#boolean') {
-                return sprintf('%s', $value);
-            } else {
-                $escaped = $this->serialiseResource($datatype, true);
-                return sprintf('%s^^%s', $quoted, $escaped);
-            }
-        } elseif ($lang = $literal->getLang()) {
-            return $quoted . '@' . $lang;
-        } else {
-            return $quoted;
-        }
-    }
-
-    /**
-     * Convert an EasyRdf object into a string suitable to
-     * be written to a Turtle document.
-     *
-     * @param  EasyRdf_Resource|EasyRdf_Literal $object
-     * @return string
-     */
-    public function serialiseObject($object)
-    {
-        if ($object instanceof EasyRdf_Resource) {
-            return $this->serialiseResource($object);
-        } elseif ($object instanceof EasyRdf_Literal) {
-            return $this->serialiseLiteral($object);
-        } else {
-            throw new InvalidArgumentException(
-                "serialiseObject() requires \$object to be ".
-                "of type EasyRdf_Resource or EasyRdf_Literal"
-            );
-        }
-    }
-
-
-    /**
-     * Protected method to serialise a RDF collection
-     * @ignore
-     */
-    protected function serialiseCollection($node, $indent)
-    {
-        $turtle = '(';
-        $count = 0;
-        while ($node) {
-            if ($id = $node->getBNodeId()) {
-                $this->outputtedBnodes[$id] = true;
-            }
-
-            $value = $node->get('rdf:first');
-            $node = $node->get('rdf:rest');
-            if ($node and $node->hasProperty('rdf:first')) {
-                $count++;
-            }
-
-            if ($value !== null) {
-                $serialised = $this->serialiseObject($value);
-                if ($count) {
-                    $turtle .= "\n$indent  $serialised";
-                } else {
-                    $turtle .= " ".$serialised;
-                }
-            }
-        }
-        if ($count) {
-            $turtle .= "\n$indent)";
-        } else {
-            $turtle .= " )";
-        }
-        return $turtle;
-    }
-
-    /**
-     * Protected method to serialise the properties of a resource
-     * @ignore
-     */
-    protected function serialiseProperties($res, $depth = 1)
-    {
-        $properties = $res->propertyUris();
-        $indent = str_repeat(' ', ($depth*2)-1);
-
-        $turtle = '';
-        if (count($properties) > 1) {
-            $turtle .= "\n$indent";
-        }
-
-        $pCount = 0;
-        foreach ($properties as $property) {
-            if ($property === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type') {
-                $pStr = 'a';
-            } else {
-                $pStr = $this->serialiseResource($property, true);
-            }
-
-            if ($pCount) {
-                $turtle .= " ;\n$indent";
-            }
-
-            $turtle .= ' ' . $pStr;
-
-            $oCount = 0;
-            foreach ($res->all("<$property>") as $object) {
-                if ($oCount) {
-                    $turtle .= ',';
-                }
-
-                if ($object instanceof EasyRdf_Collection) {
-                    $turtle .= ' ' . $this->serialiseCollection($object, $indent);
-                } elseif ($object instanceof EasyRdf_Resource and $object->isBNode()) {
-                    $id = $object->getBNodeId();
-                    $rpcount = $this->reversePropertyCount($object);
-                    if ($rpcount <= 1 and !isset($this->outputtedBnodes[$id])) {
-                        // Nested unlabelled Blank Node
-                        $this->outputtedBnodes[$id] = true;
-                        $turtle .= ' [';
-                        $turtle .= $this->serialiseProperties($object, $depth+1);
-                        $turtle .= ' ]';
-                    } else {
-                        // Multiple properties pointing to this blank node
-                        $turtle .= ' ' . $this->serialiseObject($object);
-                    }
-                } else {
-                    $turtle .= ' ' . $this->serialiseObject($object);
-                }
-                $oCount++;
-            }
-            $pCount++;
-        }
-
-        if ($depth == 1) {
-            $turtle .= " .";
-            if ($pCount > 1) {
-                $turtle .= "\n";
-            }
-        } elseif ($pCount > 1) {
-            $turtle .= "\n" . str_repeat(' ', (($depth-1)*2)-1);
-        }
-
-        return $turtle;
-    }
-
-    /**
-     * @ignore
-     */
-    protected function serialisePrefixes()
-    {
-        $turtle = '';
-        foreach ($this->prefixes as $prefix => $count) {
-            $url = EasyRdf_Namespace::get($prefix);
-            $turtle .= "@prefix $prefix: <$url> .\n";
-        }
-        return $turtle;
-    }
-
-    /**
-     * @ignore
-     */
-    protected function serialiseSubjects(EasyRdf_Graph $graph, $filterType)
-    {
-        $turtle = '';
-        foreach ($graph->resources() as $resource) {
-            /** @var $resource EasyRdf_Resource */
-            // If the resource has no properties - don't serialise it
-            $properties = $resource->propertyUris();
-            if (count($properties) == 0) {
-                continue;
-            }
-
-            // Is this node of the right type?
-            $thisType = $resource->isBNode() ? 'bnode' : 'uri';
-            if ($thisType != $filterType) {
-                continue;
-            }
-
-            if ($thisType == 'bnode') {
-                $id = $resource->getBNodeId();
-
-                if (isset($this->outputtedBnodes[$id])) {
-                    // Already been serialised
-                    continue;
-                }
-
-                $this->outputtedBnodes[$id] = true;
-                $rpcount = $this->reversePropertyCount($resource);
-
-                if ($rpcount == 0) {
-                    $turtle .= '[]';
-                } else {
-                    $turtle .= $this->serialiseResource($resource);
-                }
-            } else {
-                $turtle .= $this->serialiseResource($resource);
-            }
-
-            $turtle .= $this->serialiseProperties($resource);
-            $turtle .= "\n";
-        }
-        return $turtle;
-    }
-
-    /**
-     * Serialise an EasyRdf_Graph to Turtle.
-     *
-     * @param EasyRdf_Graph $graph   An EasyRdf_Graph object.
-     * @param string        $format  The name of the format to convert to.
-     * @param array         $options
-     * @throws EasyRdf_Exception
-     * @return string The RDF in the new desired format.
-     */
-    public function serialise($graph, $format, array $options = array())
-    {
-        parent::checkSerialiseParams($graph, $format);
-
-        if ($format != 'turtle' and $format != 'n3') {
-            throw new EasyRdf_Exception(
-                "EasyRdf_Serialiser_Turtle does not support: $format"
-            );
-        }
-
-        $this->prefixes = array();
-        $this->outputtedBnodes = array();
-
-        $turtle = '';
-        $turtle .= $this->serialiseSubjects($graph, 'uri');
-        $turtle .= $this->serialiseSubjects($graph, 'bnode');
-
-        if (count($this->prefixes)) {
-            return $this->serialisePrefixes() . "\n" . $turtle;
-        } else {
-            return $turtle;
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php
deleted file mode 100644
index 5f97138..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php
+++ /dev/null
@@ -1,309 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class for making SPARQL queries using the SPARQL 1.1 Protocol
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Sparql_Client
-{
-    /** The query/read address of the SPARQL Endpoint */
-    private $queryUri = null;
-
-    private $queryUri_has_params = false;
-
-    /** The update/write address of the SPARQL Endpoint */
-    private $updateUri = null;
-
-    /** Create a new SPARQL endpoint client
-     *
-     * If the query and update endpoints are the same, then you
-     * only need to give a single URI.
-     *
-     * @param string $queryUri The address of the SPARQL Query Endpoint
-     * @param string $updateUri Optional address of the SPARQL Update Endpoint
-     */
-    public function __construct($queryUri, $updateUri = null)
-    {
-        $this->queryUri = $queryUri;
-
-        if (strlen(parse_url($queryUri, PHP_URL_QUERY)) > 0) {
-            $this->queryUri_has_params = true;
-        } else {
-            $this->queryUri_has_params = false;
-        }
-
-        if ($updateUri) {
-            $this->updateUri = $updateUri;
-        } else {
-            $this->updateUri = $queryUri;
-        }
-    }
-
-    /** Get the URI of the SPARQL query endpoint
-     *
-     * @return string The query URI of the SPARQL endpoint
-     */
-    public function getQueryUri()
-    {
-        return $this->queryUri;
-    }
-
-    /** Get the URI of the SPARQL update endpoint
-     *
-     * @return string The query URI of the SPARQL endpoint
-     */
-    public function getUpdateUri()
-    {
-        return $this->updateUri;
-    }
-
-    /**
-     * @depredated
-     * @ignore
-     */
-    public function getUri()
-    {
-        return $this->queryUri;
-    }
-
-    /** Make a query to the SPARQL endpoint
-     *
-     * SELECT and ASK queries will return an object of type
-     * EasyRdf_Sparql_Result.
-     *
-     * CONSTRUCT and DESCRIBE queries will return an object
-     * of type EasyRdf_Graph.
-     *
-     * @param string $query The query string to be executed
-     * @return object EasyRdf_Sparql_Result|EasyRdf_Graph Result of the query.
-     */
-    public function query($query)
-    {
-        return $this->request('query', $query);
-    }
-
-    /** Count the number of triples in a SPARQL 1.1 endpoint
-     *
-     * Performs a SELECT query to estriblish the total number of triples.
-     *
-     * Counts total number of triples by default but a conditional triple pattern
-     * can be given to count of a subset of all triples.
-     *
-     * @param string $condition Triple-pattern condition for the count query
-     * @return integer The number of triples
-     */
-    public function countTriples($condition = '?s ?p ?o')
-    {
-        // SELECT (COUNT(*) AS ?count)
-        // WHERE {
-        //   {?s ?p ?o}
-        //   UNION
-        //   {GRAPH ?g {?s ?p ?o}}
-        // }
-        $result = $this->query('SELECT (COUNT(*) AS ?count) {'.$condition.'}');
-        return $result[0]->count->getValue();
-    }
-
-    /** Get a list of named graphs from a SPARQL 1.1 endpoint
-     *
-     * Performs a SELECT query to get a list of the named graphs
-     *
-     * @param string $limit Optional limit to the number of results
-     * @return array Array of EasyRdf_Resource objects for each named graph
-     */
-    public function listNamedGraphs($limit = null)
-    {
-        $query = "SELECT DISTINCT ?g WHERE {GRAPH ?g {?s ?p ?o}}";
-        if (!is_null($limit)) {
-            $query .= " LIMIT ".(int)$limit;
-        }
-        $result = $this->query($query);
-
-        // Convert the result object into an array of resources
-        $graphs = array();
-        foreach ($result as $row) {
-            array_push($graphs, $row->g);
-        }
-        return $graphs;
-    }
-
-    /** Make an update request to the SPARQL endpoint
-     *
-     * Successful responses will return the HTTP response object
-     *
-     * Unsuccessful responses will throw an exception
-     *
-     * @param string $query The update query string to be executed
-     * @return object EasyRdf_Http_Response HTTP response
-     */
-    public function update($query)
-    {
-        return $this->request('update', $query);
-    }
-
-    public function insert($data, $graphUri = null)
-    {
-        #$this->updateData('INSET',
-        $query = 'INSERT DATA {';
-        if ($graphUri) {
-            $query .= "GRAPH <$graphUri> {";
-        }
-        $query .= $this->convertToTriples($data);
-        if ($graphUri) {
-            $query .= "}";
-        }
-        $query .= '}';
-        return $this->update($query);
-    }
-
-    protected function updateData($operation, $data, $graphUri = null)
-    {
-        $query = "$operation DATA {";
-        if ($graphUri) {
-            $query .= "GRAPH <$graphUri> {";
-        }
-        $query .= $this->convertToTriples($data);
-        if ($graphUri) {
-            $query .= "}";
-        }
-        $query .= '}';
-        return $this->update($query);
-    }
-
-    public function clear($graphUri, $silent = false)
-    {
-        $query = "CLEAR";
-        if ($silent) {
-            $query .= " SILENT";
-        }
-        if (preg_match('/^all|named|default$/i', $graphUri)) {
-            $query .= " $graphUri";
-        } else {
-            $query .= " GRAPH <$graphUri>";
-        }
-        return $this->update($query);
-    }
-
-    /*
-     * Internal function to make an HTTP request to SPARQL endpoint
-     *
-     * @ignore
-     */
-    protected function request($type, $query)
-    {
-        // Check for undefined prefixes
-        $prefixes = '';
-        foreach (EasyRdf_Namespace::namespaces() as $prefix => $uri) {
-            if (strpos($query, "$prefix:") !== false and
-                strpos($query, "PREFIX $prefix:") === false) {
-                $prefixes .=  "PREFIX $prefix: <$uri>\n";
-            }
-        }
-
-        $client = EasyRdf_Http::getDefaultHttpClient();
-        $client->resetParameters();
-
-        // Tell the server which response formats we can parse
-        $accept = EasyRdf_Format::getHttpAcceptHeader(
-            array(
-              'application/sparql-results+json' => 1.0,
-              'application/sparql-results+xml' => 0.8
-            )
-        );
-        $client->setHeaders('Accept', $accept);
-
-        if ($type == 'update') {
-            $client->setMethod('POST');
-            $client->setUri($this->updateUri);
-            $client->setRawData($prefixes . $query);
-            $client->setHeaders('Content-Type', 'application/sparql-update');
-        } elseif ($type == 'query') {
-            // Use GET if the query is less than 2kB
-            // 2046 = 2kB minus 1 for '?' and 1 for NULL-terminated string on server
-            $encodedQuery = 'query='.urlencode($prefixes . $query);
-            if (strlen($encodedQuery) + strlen($this->queryUri) <= 2046) {
-                $delimiter = $this->queryUri_has_params ? '&' : '?';
-
-                $client->setMethod('GET');
-                $client->setUri($this->queryUri.$delimiter.$encodedQuery);
-            } else {
-                // Fall back to POST instead (which is un-cacheable)
-                $client->setMethod('POST');
-                $client->setUri($this->queryUri);
-                $client->setRawData($encodedQuery);
-                $client->setHeaders('Content-Type', 'application/x-www-form-urlencoded');
-            }
-        }
-
-        $response = $client->request();
-        if ($response->getStatus() == 204) {
-            // No content
-            return $response;
-        } elseif ($response->isSuccessful()) {
-            list($type, $params) = EasyRdf_Utils::parseMimeType(
-                $response->getHeader('Content-Type')
-            );
-            if (strpos($type, 'application/sparql-results') === 0) {
-                return new EasyRdf_Sparql_Result($response->getBody(), $type);
-            } else {
-                return new EasyRdf_Graph($this->queryUri, $response->getBody(), $type);
-            }
-        } else {
-            throw new EasyRdf_Exception(
-                "HTTP request for SPARQL query failed: ".$response->getBody()
-            );
-        }
-    }
-
-    protected function convertToTriples($data)
-    {
-        if (is_string($data)) {
-            return $data;
-        } elseif (is_object($data) and $data instanceof EasyRdf_Graph) {
-            # FIXME: insert Turtle when there is a way of seperateing out the prefixes
-            return $data->serialise('ntriples');
-        } else {
-            throw new EasyRdf_Exception(
-                "Don't know how to convert to triples for SPARQL query: ".$response->getBody()
-            );
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Result.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Result.php
deleted file mode 100644
index 22001e9..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Result.php
+++ /dev/null
@@ -1,384 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class for returned for SPARQL SELECT and ASK query responses.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Sparql_Result extends ArrayIterator
-{
-    private $type = null;
-    private $boolean = null;
-
-    private $ordered = null;
-    private $distinct = null;
-    private $fields = array();
-
-    /** A constant for the SPARQL Query Results XML Format namespace */
-    const SPARQL_XML_RESULTS_NS = 'http://www.w3.org/2005/sparql-results#';
-
-    /** Create a new SPARQL Result object
-     *
-     * You should not normally need to create a SPARQL result
-     * object directly - it will be constructed automatically
-     * for you by EasyRdf_Sparql_Client.
-     *
-     * @param string $data      The SPARQL result body
-     * @param string $mimeType  The MIME type of the result
-     */
-    public function __construct($data, $mimeType)
-    {
-        if ($mimeType == 'application/sparql-results+xml') {
-            return $this->parseXml($data);
-        } elseif ($mimeType == 'application/sparql-results+json') {
-            return $this->parseJson($data);
-        } else {
-            throw new EasyRdf_Exception(
-                "Unsupported SPARQL Query Results format: $mimeType"
-            );
-        }
-    }
-
-    /** Get the query result type (boolean/bindings)
-     *
-     * ASK queries return a result of type 'boolean'.
-     * SELECT query return a result of type 'bindings'.
-     *
-     * @return string The query result type.
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /** Return the boolean value of the query result
-     *
-     * If the query was of type boolean then this method will
-     * return either true or false. If the query was of some other
-     * type then this method will return null.
-     *
-     * @return boolean The result of the query.
-     */
-    public function getBoolean()
-    {
-        return $this->boolean;
-    }
-
-    /** Return true if the result of the query was true.
-     *
-     * @return boolean True if the query result was true.
-     */
-    public function isTrue()
-    {
-        return $this->boolean == true;
-    }
-
-    /** Return false if the result of the query was false.
-     *
-     * @return boolean True if the query result was false.
-     */
-    public function isFalse()
-    {
-        return $this->boolean == false;
-    }
-
-    /** Return the number of fields in a query result of type bindings.
-     *
-     * @return integer The number of fields.
-     */
-    public function numFields()
-    {
-        return count($this->fields);
-    }
-
-    /** Return the number of rows in a query result of type bindings.
-     *
-     * @return integer The number of rows.
-     */
-    public function numRows()
-    {
-        return count($this);
-    }
-
-    /** Get the field names in a query result of type bindings.
-     *
-     * @return array The names of the fields in the result.
-     */
-    public function getFields()
-    {
-        return $this->fields;
-    }
-
-    /** Return a human readable view of the query result.
-     *
-     * This method is intended to be a debugging aid and will
-     * return a pretty-print view of the query result.
-     *
-     * @param  string  $format  Either 'text' or 'html'
-     */
-    public function dump($format = 'html')
-    {
-        if ($this->type == 'bindings') {
-            $result = '';
-            if ($format == 'html') {
-                $result .= "<table class='sparql-results' style='border-collapse:collapse'>";
-                $result .= "<tr>";
-                foreach ($this->fields as $field) {
-                    $result .= "<th style='border:solid 1px #000;padding:4px;".
-                               "vertical-align:top;background-color:#eee;'>".
-                               "?$field</th>";
-                }
-                $result .= "</tr>";
-                foreach ($this as $row) {
-                    $result .= "<tr>";
-                    foreach ($this->fields as $field) {
-                        if (isset($row->$field)) {
-                            $result .= "<td style='border:solid 1px #000;padding:4px;".
-                                       "vertical-align:top'>".
-                                       $row->$field->dumpValue($format)."</td>";
-                        } else {
-                            $result .= "<td>&nbsp;</td>";
-                        }
-                    }
-                    $result .= "</tr>";
-                }
-                $result .= "</table>";
-            } else {
-                // First calculate the width of each comment
-                $colWidths = array();
-                foreach ($this->fields as $field) {
-                    $colWidths[$field] = strlen($field);
-                }
-
-                $textData = array();
-                foreach ($this as $row) {
-                    $textRow = array();
-                    foreach ($row as $k => $v) {
-                        $textRow[$k] = $v->dumpValue('text');
-                        $width = strlen($textRow[$k]);
-                        if ($colWidths[$k] < $width) {
-                            $colWidths[$k] = $width;
-                        }
-                    }
-                    $textData[] = $textRow;
-                }
-
-                // Create a horizontal rule
-                $hr = "+";
-                foreach ($colWidths as $k => $v) {
-                    $hr .= "-".str_repeat('-', $v).'-+';
-                }
-
-                // Output the field names
-                $result .= "$hr\n|";
-                foreach ($this->fields as $field) {
-                    $result .= ' '.str_pad("?$field", $colWidths[$field]).' |';
-                }
-
-                // Output each of the rows
-                $result .= "\n$hr\n";
-                foreach ($textData as $textRow) {
-                    $result .= '|';
-                    foreach ($textRow as $k => $v) {
-                        $result .= ' '.str_pad($v, $colWidths[$k]).' |';
-                    }
-                    $result .= "\n";
-                }
-                $result .= "$hr\n";
-
-            }
-            return $result;
-        } elseif ($this->type == 'boolean') {
-            $str = ($this->boolean ? 'true' : 'false');
-            if ($format == 'html') {
-                return "<p>Result: <span style='font-weight:bold'>$str</span></p>";
-            } else {
-                return "Result: $str";
-            }
-        } else {
-            throw new EasyRdf_Exception(
-                "Failed to dump SPARQL Query Results format, unknown type: ". $this->type
-            );
-        }
-    }
-
-    /** Create a new EasyRdf_Resource or EasyRdf_Literal depending
-     *  on the type of data passed in.
-     *
-     * @ignore
-     */
-    protected function newTerm($data)
-    {
-        switch($data['type']) {
-            case 'bnode':
-                return new EasyRdf_Resource('_:'.$data['value']);
-            case 'uri':
-                return new EasyRdf_Resource($data['value']);
-            case 'literal':
-            case 'typed-literal':
-                return EasyRdf_Literal::create($data);
-            default:
-                throw new EasyRdf_Exception(
-                    "Failed to parse SPARQL Query Results format, unknown term type: ".
-                    $data['type']
-                );
-        }
-    }
-
-    /** Parse a SPARQL result in the XML format into the object.
-     *
-     * @ignore
-     */
-    protected function parseXml($data)
-    {
-        $doc = new DOMDocument();
-        $doc->loadXML($data);
-
-        # Check for valid root node.
-        if ($doc->hasChildNodes() == false or
-            $doc->childNodes->length != 1 or
-            $doc->firstChild->nodeName != 'sparql' or
-            $doc->firstChild->namespaceURI != self::SPARQL_XML_RESULTS_NS) {
-            throw new EasyRdf_Exception(
-                "Incorrect root node in SPARQL XML Query Results format"
-            );
-        }
-
-        # Is it the result of an ASK query?
-        $boolean = $doc->getElementsByTagName('boolean');
-        if ($boolean->length) {
-            $this->type = 'boolean';
-            $value = $boolean->item(0)->nodeValue;
-            $this->boolean = $value == 'true' ? true : false;
-            return;
-        }
-
-        # Get a list of variables from the header
-        $head = $doc->getElementsByTagName('head');
-        if ($head->length) {
-            $variables = $head->item(0)->getElementsByTagName('variable');
-            foreach ($variables as $variable) {
-                $this->fields[] = $variable->getAttribute('name');
-            }
-        }
-
-        # Is it the result of a SELECT query?
-        $resultstag = $doc->getElementsByTagName('results');
-        if ($resultstag->length) {
-            $this->type = 'bindings';
-            $results = $resultstag->item(0)->getElementsByTagName('result');
-            foreach ($results as $result) {
-                $bindings = $result->getElementsByTagName('binding');
-                $t = new stdClass();
-                foreach ($bindings as $binding) {
-                    $key = $binding->getAttribute('name');
-                    foreach ($binding->childNodes as $node) {
-                        if ($node->nodeType != XML_ELEMENT_NODE) {
-                            continue;
-                        }
-                        $t->$key = $this->newTerm(
-                            array(
-                                'type' => $node->nodeName,
-                                'value' => $node->nodeValue,
-                                'lang' => $node->getAttribute('xml:lang'),
-                                'datatype' => $node->getAttribute('datatype')
-                            )
-                        );
-                        break;
-                    }
-                }
-                $this[] = $t;
-            }
-            return $this;
-        }
-
-        throw new EasyRdf_Exception(
-            "Failed to parse SPARQL XML Query Results format"
-        );
-    }
-
-    /** Parse a SPARQL result in the JSON format into the object.
-     *
-     * @ignore
-     */
-    protected function parseJson($data)
-    {
-        // Decode JSON to an array
-        $data = json_decode($data, true);
-
-        if (isset($data['boolean'])) {
-            $this->type = 'boolean';
-            $this->boolean = $data['boolean'];
-        } elseif (isset($data['results'])) {
-            $this->type = 'bindings';
-            if (isset($data['head']['vars'])) {
-                $this->fields = $data['head']['vars'];
-            }
-
-            foreach ($data['results']['bindings'] as $row) {
-                $t = new stdClass();
-                foreach ($row as $key => $value) {
-                    $t->$key = $this->newTerm($value);
-                }
-                $this[] = $t;
-            }
-        } else {
-            throw new EasyRdf_Exception(
-                "Failed to parse SPARQL JSON Query Results format"
-            );
-        }
-    }
-
-    /** Magic method to return value of the result to string
-     *
-     * If this is a boolean result then it will return 'true' or 'false'.
-     * If it is a bindings type, then it will dump as a text based table.
-     *
-     * @return string A string representation of the result.
-     */
-    public function __toString()
-    {
-        if ($this->type == 'boolean') {
-            return $this->boolean ? 'true' : 'false';
-        } else {
-            return $this->dump('text');
-        }
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/TypeMapper.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/TypeMapper.php
deleted file mode 100644
index 81404d2..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/TypeMapper.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-/**
- * Class to map between RDF Types and PHP Classes
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_TypeMapper
-{
-    /** The type map registry */
-    private static $map = array();
-
-    /** Get the registered class for an RDF type
-     *
-     * If a type is not registered, then this method will return null.
-     *
-     * @param  string  $type   The RDF type (e.g. foaf:Person)
-     * @return string          The class name (e.g. Model_Foaf_Name)
-     */
-    public static function get($type)
-    {
-        if (!is_string($type) or $type == null or $type == '') {
-            throw new InvalidArgumentException(
-                "\$type should be a string and cannot be null or empty"
-            );
-        }
-
-        $type = EasyRdf_Namespace::expand($type);
-        if (array_key_exists($type, self::$map)) {
-            return self::$map[$type];
-        } else {
-            return null;
-        }
-    }
-
-    /** Register an RDF type with a PHP Class name
-     *
-     * @param  string  $type   The RDF type (e.g. foaf:Person)
-     * @param  string  $class  The PHP class name (e.g. Model_Foaf_Name)
-     * @return string          The PHP class name
-     */
-    public static function set($type, $class)
-    {
-        if (!is_string($type) or $type == null or $type == '') {
-            throw new InvalidArgumentException(
-                "\$type should be a string and cannot be null or empty"
-            );
-        }
-
-        if (!is_string($class) or $class == null or $class == '') {
-            throw new InvalidArgumentException(
-                "\$class should be a string and cannot be null or empty"
-            );
-        }
-
-        $type = EasyRdf_Namespace::expand($type);
-        return self::$map[$type] = $class;
-    }
-
-    /**
-      * Delete an existing RDF type mapping.
-      *
-      * @param  string  $type   The RDF type (e.g. foaf:Person)
-      */
-    public static function delete($type)
-    {
-        if (!is_string($type) or $type == null or $type == '') {
-            throw new InvalidArgumentException(
-                "\$type should be a string and cannot be null or empty"
-            );
-        }
-
-        $type = EasyRdf_Namespace::expand($type);
-        if (isset(self::$map[$type])) {
-            unset(self::$map[$type]);
-        }
-    }
-}
-
-
-/*
-   Register default set of mapped types
-*/
-
-EasyRdf_TypeMapper::set('rdf:Alt', 'EasyRdf_Container');
-EasyRdf_TypeMapper::set('rdf:Bag', 'EasyRdf_Container');
-EasyRdf_TypeMapper::set('rdf:List', 'EasyRdf_Collection');
-EasyRdf_TypeMapper::set('rdf:Seq', 'EasyRdf_Container');
diff --git a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Utils.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Utils.php
deleted file mode 100644
index d854252..0000000
--- a/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Utils.php
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-
-/**
- * EasyRdf
- *
- * LICENSE
- *
- * Copyright (c) 2009-2013 Nicholas J Humfrey.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author 'Nicholas J Humfrey" may be used to endorse or
- *    promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-
-
-/**
- * Class containing static utility functions
- *
- * @package    EasyRdf
- * @copyright  Copyright (c) 2009-2013 Nicholas J Humfrey
- * @license    http://www.opensource.org/licenses/bsd-license.php
- */
-class EasyRdf_Utils
-{
-
-    /**
-     * Convert a string into CamelCase
-     *
-     * A capital letter is inserted for any non-letter (including userscore).
-     * For example:
-     * 'hello world' becomes HelloWorld
-     * 'rss-tag-soup' becomes RssTagSoup
-     * 'FOO//BAR' becomes FooBar
-     *
-     * @param string The input string
-     * @return string The input string converted to CamelCase
-     */
-    public static function camelise($str)
-    {
-        $cc = '';
-        foreach (preg_split('/[\W_]+/', $str) as $part) {
-            $cc .= ucfirst(strtolower($part));
-        }
-        return $cc;
-    }
-
-    /**
-     * Check if something is an associative array
-     *
-     * Note: this method only checks the key of the first value in the array.
-     *
-     * @param mixed $param The variable to check
-     * @return bool true if the variable is an associative array
-     */
-    public static function isAssociativeArray($param)
-    {
-        if (is_array($param)) {
-            $keys = array_keys($param);
-            if ($keys[0] === 0) {
-                return false;
-            } else {
-                return true;
-            }
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Remove the fragment from a URI (if it has one)
-     *
-     * @param mixed $uri A URI
-     * @return string The same URI with the fragment removed
-     */
-    public static function removeFragmentFromUri($uri)
-    {
-        $pos = strpos($uri, '#');
-        if ($pos === false) {
-            return $uri;
-        } else {
-            return substr($uri, 0, $pos);
-        }
-    }
-
-    /** Return pretty-print view of a resource URI
-     *
-     * This method is mainly intended for internal use and is used by
-     * EasyRdf_Graph and EasyRdf_Sparql_Result to format a resource
-     * for display.
-     *
-     * @param  mixed  $resource An EasyRdf_Resource object or an associative array
-     * @param  string $format   Either 'html' or 'text'
-     * @param  string $color    The colour of the text
-     * @return string
-     */
-    public static function dumpResourceValue($resource, $format = 'html', $color = 'blue')
-    {
-        if (!preg_match('/^#?[-\w]+$/', $color)) {
-            throw new InvalidArgumentException(
-                "\$color must be a legal color code or name"
-            );
-        }
-
-        if (is_object($resource)) {
-            $resource = strval($resource);
-        } elseif (is_array($resource)) {
-            $resource = $resource['value'];
-        }
-
-        $short = EasyRdf_Namespace::shorten($resource);
-        if ($format == 'html') {
-            $escaped = htmlentities($resource, ENT_QUOTES);
-            if (substr($resource, 0, 2) == '_:') {
-                $href = '#' . $escaped;
-            } else {
-                $href = $escaped;
-            }
-            if ($short) {
-                return "<a href='$href' style='text-decoration:none;color:$color'>$short</a>";
-            } else {
-                return "<a href='$href' style='text-decoration:none;color:$color'>$escaped</a>";
-            }
-        } else {
-            if ($short) {
-                return $short;
-            } else {
-                return $resource;
-            }
-        }
-    }
-
-    /** Return pretty-print view of a literal
-     *
-     * This method is mainly intended for internal use and is used by
-     * EasyRdf_Graph and EasyRdf_Sparql_Result to format a literal
-     * for display.
-     *
-     * @param  mixed  $literal  An EasyRdf_Literal object or an associative array
-     * @param  string $format   Either 'html' or 'text'
-     * @param  string $color    The colour of the text
-     * @return string
-     */
-    public static function dumpLiteralValue($literal, $format = 'html', $color = 'black')
-    {
-        if (!preg_match('/^#?[-\w]+$/', $color)) {
-            throw new InvalidArgumentException(
-                "\$color must be a legal color code or name"
-            );
-        }
-
-        if (is_object($literal)) {
-            $literal = $literal->toRdfPhp();
-        } elseif (!is_array($literal)) {
-            $literal = array('value' => $literal);
-        }
-
-        $text = '"'.$literal['value'].'"';
-        if (isset($literal['lang'])) {
-            $text .= '@' . $literal['lang'];
-        }
-        if (isset($literal['datatype'])) {
-            $short = EasyRdf_Namespace::shorten($literal['datatype']);
-            if ($short) {
-                $text .= "^^$short";
-            } else {
-                $text .= "^^<".$literal['datatype'].">";
-            }
-        }
-
-        if ($format == 'html') {
-            return "<span style='color:$color'>".
-                   htmlentities($text, ENT_COMPAT, "UTF-8").
-                   "</span>";
-        } else {
-            return $text;
-        }
-    }
-
-    /** Clean up and split a mime-type up into its parts
-     *
-     * @param  string $mimeType   A MIME Type, optionally with parameters
-     * @return array  $type, $parameters
-     */
-    public static function parseMimeType($mimeType)
-    {
-        $parts = explode(';', strtolower($mimeType));
-        $type = trim(array_shift($parts));
-        $params = array();
-        foreach ($parts as $part) {
-            if (preg_match('/^\s*(\w+)\s*=\s*(.+?)\s*$/', $part, $matches)) {
-                $params[$matches[1]] = $matches[2];
-            }
-        }
-        return array($type, $params);
-    }
-
-    /** Execute a command as a pipe
-     *
-     * The proc_open() function is used to open a pipe to a
-     * a command line process, writing $input to STDIN, returning STDOUT
-     * and throwing an exception if anything is written to STDERR or the
-     * process returns non-zero.
-     *
-     * @param  string $command   The command to execute
-     * @param  array  $args      Optional list of arguments to pass to the command
-     * @param  string $input     Optional buffer to send to the command
-     * @param  string $dir       Path to directory to run command in (defaults to /tmp)
-     * @return string The result of the command, printed to STDOUT
-     */
-    public static function execCommandPipe($command, $args = null, $input = null, $dir = null)
-    {
-        $descriptorspec = array(
-            0 => array('pipe', 'r'),
-            1 => array('pipe', 'w'),
-            2 => array('pipe', 'w')
-        );
-
-        // Use the system tmp directory by default
-        if (!$dir) {
-            $dir = sys_get_temp_dir();
-        }
-
-        if (is_array($args)) {
-            $fullCommand = implode(
-                ' ',
-                array_map('escapeshellcmd', array_merge(array($command), $args))
-            );
-        } else {
-            $fullCommand = escapeshellcmd($command);
-            if ($args) {
-                $fullCommand .= ' '.escapeshellcmd($args);
-            }
-        }
-
-        $process = proc_open($fullCommand, $descriptorspec, $pipes, $dir);
-        if (is_resource($process)) {
-            // $pipes now looks like this:
-            // 0 => writeable handle connected to child stdin
-            // 1 => readable handle connected to child stdout
-            // 2 => readable handle connected to child stderr
-
-            if ($input) {
-                fwrite($pipes[0], $input);
-            }
-            fclose($pipes[0]);
-
-            $output = stream_get_contents($pipes[1]);
-            fclose($pipes[1]);
-            $error = stream_get_contents($pipes[2]);
-            fclose($pipes[2]);
-
-            // It is important that you close any pipes before calling
-            // proc_close in order to avoid a deadlock
-            $returnValue = proc_close($process);
-            if ($returnValue) {
-                throw new EasyRdf_Exception(
-                    "Error while executing command $command: ".$error
-                );
-            }
-        } else {
-            throw new EasyRdf_Exception(
-                "Failed to execute command $command"
-            );
-        }
-
-        return $output;
-    }
-}
diff --git a/core/vendor/easyrdf/easyrdf/scripts/copyright_updater.php b/core/vendor/easyrdf/easyrdf/scripts/copyright_updater.php
deleted file mode 100644
index 557356b..0000000
--- a/core/vendor/easyrdf/easyrdf/scripts/copyright_updater.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-$ROOT = realpath(__DIR__ . '/..');
-
-function process_file($path) {
-    $year = date('Y', filemtime($path));
-    $contents = file_get_contents($path);
-
-    $copy_statements = 0;
-    $output = '';
-    foreach (preg_split("/[\r\n]/", $contents) as $line) {
-        if (preg_match("/^(.+)Copyright\s+\(c\)\s+(\d+)-?(\d*) (Nicholas.+)$/", $line, $m)) {
-            $copy_statements++;
-            
-            if ($m[2] != $year and $m[3] != $year) {
-                // Change the line
-                $line = "$m[1]Copyright (c) $m[2]-$year $m[4]";
-            }
-        }
-        
-        // Remove trailing whitespace
-        $line = rtrim($line);
-        $output .= "$line\n";
-    }
-    
-    // Remove surplus line endings
-    while (substr($output, -2) == "\n\n") {
-        $output = substr($output, 0, -1);
-    }
-
-    if ($copy_statements == 0) {
-        print "Warning: $path does not contain any copyright statements\n";
-    } else {
-        file_put_contents($path, $output);
-    }
-}
-
-
-function process_directory($path) {
-    $dir = opendir($path);
-    
-    while ($file = readdir($dir)) {
-        if (substr($file, 0, 1) == '.') {
-            continue;
-        }
-
-        $filepath = $path . '/' . $file;
-        if (is_dir($filepath)) {
-            process_directory($filepath);
-        } elseif (is_file($filepath)) {
-            if (substr($file, -4) == '.php') {
-                process_file($filepath);
-            }
-        } else {
-            print "Unknown type: $filepath\n";
-        }
-    }
-    
-    closedir($dir);   
-}
-
-process_directory($ROOT . '/examples');
-process_directory($ROOT . '/lib');
-process_directory($ROOT . '/test');
diff --git a/core/vendor/egulias/email-validator/.coveralls.yml b/core/vendor/egulias/email-validator/.coveralls.yml
deleted file mode 100644
index 143c197..0000000
--- a/core/vendor/egulias/email-validator/.coveralls.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-service_name: travis-ci
-src_dir:  .
-coverage_clover: build/logs/clover*.xml
diff --git a/core/vendor/egulias/email-validator/.gitignore b/core/vendor/egulias/email-validator/.gitignore
deleted file mode 100644
index 1630814..0000000
--- a/core/vendor/egulias/email-validator/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-report/
-vendor/
diff --git a/core/vendor/egulias/email-validator/.travis.yml b/core/vendor/egulias/email-validator/.travis.yml
deleted file mode 100644
index f25de0f..0000000
--- a/core/vendor/egulias/email-validator/.travis.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-sudo: false
-
-language: php
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-env:
-  global:
-    - deps=no
-
-matrix:
-  fast_finish: true
-  include:
-    - php: 5.3
-      env: deps=low
-    - php: 5.6
-      env: deps=high
-
-install:
-  - if [ "$deps" = "no" ]; then composer install; fi
-  - if [ "$deps" = "low" ]; then composer update --prefer-lowest; fi
-  - if [ "$deps" = "high" ]; then composer update; fi
-
-script:
- - mkdir -p build/logs
- - phpunit --coverage-clover build/logs/clover.xml
-
-after_script:
- - php vendor/bin/coveralls
-
diff --git a/core/vendor/egulias/email-validator/LICENSE b/core/vendor/egulias/email-validator/LICENSE
deleted file mode 100644
index de4a25b..0000000
--- a/core/vendor/egulias/email-validator/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2013 Eduardo Gulias Davis
-
-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/core/vendor/egulias/email-validator/README.md b/core/vendor/egulias/email-validator/README.md
deleted file mode 100644
index 262693b..0000000
--- a/core/vendor/egulias/email-validator/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-#EmailValidator
-[![Build Status](https://travis-ci.org/egulias/EmailValidator.png?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.png?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6)
-=============================
-With the help of
-
-![Powered by PhpStorm](https://www.jetbrains.com/phpstorm/documentation/docs/logo_phpstorm.png)
-##Installation##
-
-Run the command below to install via Composer
-
-```shell
-composer require egulias/email-validator
-```
-
-##Usage##
-
-Simple example:
-
-```php
-<?php
-
-use Egulias\EmailValidator\EmailValidator;
-
-$validator = new EmailValidator;
-if ($validator->isValid($email)) {
-	echo $email . ' is a valid email address';
-}
-```
-
-More advanced example (returns detailed diagnostic error codes):
-
-```php
-<?php
-
-use Egulias\EmailValidator\EmailValidator;
-
-$validator = new EmailValidator;
-$email = 'dominic@sayers.cc';
-$result = $validator->isValid($email);
-
-if ($result) {
-	echo $email . ' is a valid email address';
-} else if ($validator->hasWarnings()) {
-	echo 'Warning! ' . $email . ' has unusual/deprecated features (result code ' . var_export($validator->getWarnings(), true) . ')';
-} else {
-	echo $email . ' is not a valid email address (result code ' . $validator->getError() . ')';
-}
-```
-
-##Contributors##
-As this is a port from another library and work, here are other people related to the previous:
-
-* Ricard Clau [@ricardclau](http://github.com/ricardclau):      	Performance against PHP built-in filter_var
-* Josepf Bielawski [@stloyd](http://github.com/stloyd):      		For its first re-work of Dominic's lib
-* Dominic Sayers [@dominicsayers](http://github.com/dominicsayers):  	The original isemail function
-
-##License##
-Released under the MIT License attached with this code.
-
diff --git a/core/vendor/egulias/email-validator/composer.json b/core/vendor/egulias/email-validator/composer.json
deleted file mode 100644
index 1ccb77a..0000000
--- a/core/vendor/egulias/email-validator/composer.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "name":         "egulias/email-validator",
-  "description":  "A library for validating emails",
-  "homepage":     "https://github.com/egulias/EmailValidator",
-  "type":         "Library",
-  "keywords":     ["email", "validation", "validator", "emailvalidation", "emailvalidator"],
-  "license":      "MIT",
-  "authors": [
-    {"name": "Eduardo Gulias Davis"}
-  ],
-  "extra": {
-    "branch-alias": {
-      "dev-master": "2.0.x-dev"
-    }
-  },
-  "require":      {
-    "php": ">= 5.3.3",
-    "doctrine/lexer": "~1.0,>=1.0.1"
-  },
-  "require-dev" :   {
-    "satooshi/php-coveralls": "dev-master",
-    "phpunit/phpunit": "~4.4"
-  },
-  "autoload": {
-    "psr-0": {
-      "Egulias\\": "src/"
-    }
-  }
-}
diff --git a/core/vendor/egulias/email-validator/composer.lock b/core/vendor/egulias/email-validator/composer.lock
deleted file mode 100644
index 49f7df8..0000000
--- a/core/vendor/egulias/email-validator/composer.lock
+++ /dev/null
@@ -1,1498 +0,0 @@
-{
-    "_readme": [
-        "This file locks the dependencies of your project to a known state",
-        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
-        "This file is @generated automatically"
-    ],
-    "hash": "9426f5a00cf0f71d83c287a7c0ff392b",
-    "packages": [
-        {
-            "name": "doctrine/lexer",
-            "version": "v1.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/lexer.git",
-                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
-                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Doctrine\\Common\\Lexer\\": "lib/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Roman Borschel",
-                    "email": "roman@code-factory.org"
-                },
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com"
-                },
-                {
-                    "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com"
-                }
-            ],
-            "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
-            "homepage": "http://www.doctrine-project.org",
-            "keywords": [
-                "lexer",
-                "parser"
-            ],
-            "time": "2014-09-09 13:34:57"
-        }
-    ],
-    "packages-dev": [
-        {
-            "name": "doctrine/instantiator",
-            "version": "1.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/instantiator.git",
-                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
-                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3,<8.0-DEV"
-            },
-            "require-dev": {
-                "athletic/athletic": "~0.1.8",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "phpunit/phpunit": "~4.0",
-                "squizlabs/php_codesniffer": "~2.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "http://ocramius.github.com/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://github.com/doctrine/instantiator",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "time": "2015-06-14 21:17:01"
-        },
-        {
-            "name": "guzzle/guzzle",
-            "version": "v3.9.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/guzzle/guzzle3.git",
-                "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
-                "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
-                "shasum": ""
-            },
-            "require": {
-                "ext-curl": "*",
-                "php": ">=5.3.3",
-                "symfony/event-dispatcher": "~2.1"
-            },
-            "replace": {
-                "guzzle/batch": "self.version",
-                "guzzle/cache": "self.version",
-                "guzzle/common": "self.version",
-                "guzzle/http": "self.version",
-                "guzzle/inflection": "self.version",
-                "guzzle/iterator": "self.version",
-                "guzzle/log": "self.version",
-                "guzzle/parser": "self.version",
-                "guzzle/plugin": "self.version",
-                "guzzle/plugin-async": "self.version",
-                "guzzle/plugin-backoff": "self.version",
-                "guzzle/plugin-cache": "self.version",
-                "guzzle/plugin-cookie": "self.version",
-                "guzzle/plugin-curlauth": "self.version",
-                "guzzle/plugin-error-response": "self.version",
-                "guzzle/plugin-history": "self.version",
-                "guzzle/plugin-log": "self.version",
-                "guzzle/plugin-md5": "self.version",
-                "guzzle/plugin-mock": "self.version",
-                "guzzle/plugin-oauth": "self.version",
-                "guzzle/service": "self.version",
-                "guzzle/stream": "self.version"
-            },
-            "require-dev": {
-                "doctrine/cache": "~1.3",
-                "monolog/monolog": "~1.0",
-                "phpunit/phpunit": "3.7.*",
-                "psr/log": "~1.0",
-                "symfony/class-loader": "~2.1",
-                "zendframework/zend-cache": "2.*,<2.3",
-                "zendframework/zend-log": "2.*,<2.3"
-            },
-            "suggest": {
-                "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.9-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Guzzle": "src/",
-                    "Guzzle\\Tests": "tests/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                },
-                {
-                    "name": "Guzzle Community",
-                    "homepage": "https://github.com/guzzle/guzzle/contributors"
-                }
-            ],
-            "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
-            "homepage": "http://guzzlephp.org/",
-            "keywords": [
-                "client",
-                "curl",
-                "framework",
-                "http",
-                "http client",
-                "rest",
-                "web service"
-            ],
-            "time": "2015-03-18 18:23:50"
-        },
-        {
-            "name": "phpdocumentor/reflection-docblock",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.0"
-            },
-            "suggest": {
-                "dflydev/markdown": "~1.0",
-                "erusev/parsedown": "~1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "phpDocumentor": [
-                        "src/"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "mike.vanriel@naenius.com"
-                }
-            ],
-            "time": "2015-02-03 12:10:50"
-        },
-        {
-            "name": "phpspec/prophecy",
-            "version": "v1.4.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
-                "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.0.2",
-                "phpdocumentor/reflection-docblock": "~2.0",
-                "sebastian/comparator": "~1.1"
-            },
-            "require-dev": {
-                "phpspec/phpspec": "~2.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Prophecy\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Konstantin Kudryashov",
-                    "email": "ever.zet@gmail.com",
-                    "homepage": "http://everzet.com"
-                },
-                {
-                    "name": "Marcello Duarte",
-                    "email": "marcello.duarte@gmail.com"
-                }
-            ],
-            "description": "Highly opinionated mocking framework for PHP 5.3+",
-            "homepage": "https://github.com/phpspec/prophecy",
-            "keywords": [
-                "Double",
-                "Dummy",
-                "fake",
-                "mock",
-                "spy",
-                "stub"
-            ],
-            "time": "2015-04-27 22:15:08"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "2.1.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "631e365cf26bb2c078683e8d9bcf8bc631ac4d44"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/631e365cf26bb2c078683e8d9bcf8bc631ac4d44",
-                "reference": "631e365cf26bb2c078683e8d9bcf8bc631ac4d44",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "phpunit/php-file-iterator": "~1.3",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-token-stream": "~1.3",
-                "sebastian/environment": "~1.0",
-                "sebastian/version": "~1.0"
-            },
-            "require-dev": {
-                "ext-xdebug": ">=2.1.4",
-                "phpunit/phpunit": "~4"
-            },
-            "suggest": {
-                "ext-dom": "*",
-                "ext-xdebug": ">=2.2.1",
-                "ext-xmlwriter": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.1.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "time": "2015-06-19 07:11:55"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "1.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
-                "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "time": "2015-04-02 05:19:05"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "1.2.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
-                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "time": "2015-06-21 13:50:34"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "1.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d",
-                "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "time": "2015-06-13 07:35:30"
-        },
-        {
-            "name": "phpunit/php-token-stream",
-            "version": "1.4.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
-                "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Wrapper around PHP's tokenizer extension.",
-            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-            "keywords": [
-                "tokenizer"
-            ],
-            "time": "2015-06-19 03:43:16"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "4.7.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "f6701ef3faea759acd1910a7751d8d102a7fd5bc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f6701ef3faea759acd1910a7751d8d102a7fd5bc",
-                "reference": "f6701ef3faea759acd1910a7751d8d102a7fd5bc",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-pcre": "*",
-                "ext-reflection": "*",
-                "ext-spl": "*",
-                "php": ">=5.3.3",
-                "phpspec/prophecy": "~1.3,>=1.3.1",
-                "phpunit/php-code-coverage": "~2.1",
-                "phpunit/php-file-iterator": "~1.4",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-timer": ">=1.0.6",
-                "phpunit/phpunit-mock-objects": "~2.3",
-                "sebastian/comparator": "~1.1",
-                "sebastian/diff": "~1.2",
-                "sebastian/environment": "~1.2",
-                "sebastian/exporter": "~1.2",
-                "sebastian/global-state": "~1.0",
-                "sebastian/version": "~1.0",
-                "symfony/yaml": "~2.1|~3.0"
-            },
-            "suggest": {
-                "phpunit/php-invoker": "~1.1"
-            },
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.7.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "https://phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "time": "2015-06-21 07:23:36"
-        },
-        {
-            "name": "phpunit/phpunit-mock-objects",
-            "version": "2.3.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "92408bb1968a81b3217a6fdf6c1a198da83caa35"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/92408bb1968a81b3217a6fdf6c1a198da83caa35",
-                "reference": "92408bb1968a81b3217a6fdf6c1a198da83caa35",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "~1.0,>=1.0.2",
-                "php": ">=5.3.3",
-                "phpunit/php-text-template": "~1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "suggest": {
-                "ext-soap": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.3.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Mock Object library for PHPUnit",
-            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-            "keywords": [
-                "mock",
-                "xunit"
-            ],
-            "time": "2015-06-11 15:55:48"
-        },
-        {
-            "name": "psr/log",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/log.git",
-                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
-                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
-                "shasum": ""
-            },
-            "type": "library",
-            "autoload": {
-                "psr-0": {
-                    "Psr\\Log\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "http://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for logging libraries",
-            "keywords": [
-                "log",
-                "psr",
-                "psr-3"
-            ],
-            "time": "2012-12-21 11:40:51"
-        },
-        {
-            "name": "satooshi/php-coveralls",
-            "version": "dev-master",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/satooshi/php-coveralls.git",
-                "reference": "2fbf803803d179ab1082807308a67bbd5a760c70"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/2fbf803803d179ab1082807308a67bbd5a760c70",
-                "reference": "2fbf803803d179ab1082807308a67bbd5a760c70",
-                "shasum": ""
-            },
-            "require": {
-                "ext-json": "*",
-                "ext-simplexml": "*",
-                "guzzle/guzzle": ">=2.7",
-                "php": ">=5.3",
-                "psr/log": "1.0.0",
-                "symfony/config": ">=2.0",
-                "symfony/console": ">=2.0",
-                "symfony/stopwatch": ">=2.2",
-                "symfony/yaml": ">=2.0"
-            },
-            "require-dev": {
-                "apigen/apigen": "2.8.*@stable",
-                "pdepend/pdepend": "dev-master as 2.0.0",
-                "phpmd/phpmd": "dev-master",
-                "phpunit/php-invoker": ">=1.1.0,<1.2.0",
-                "phpunit/phpunit": "3.7.*@stable",
-                "sebastian/finder-facade": "dev-master",
-                "sebastian/phpcpd": "1.4.*@stable",
-                "squizlabs/php_codesniffer": "1.4.*@stable",
-                "theseer/fdomdocument": "dev-master"
-            },
-            "suggest": {
-                "symfony/http-kernel": "Allows Symfony integration"
-            },
-            "bin": [
-                "composer/bin/coveralls"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "0.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Satooshi\\Component": "src/",
-                    "Satooshi\\Bundle": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Kitamura Satoshi",
-                    "email": "with.no.parachute@gmail.com",
-                    "homepage": "https://www.facebook.com/satooshi.jp"
-                }
-            ],
-            "description": "PHP client library for Coveralls API",
-            "homepage": "https://github.com/satooshi/php-coveralls",
-            "keywords": [
-                "ci",
-                "coverage",
-                "github",
-                "test"
-            ],
-            "time": "2014-11-11 15:35:34"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "1.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
-                "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/diff": "~1.2",
-                "sebastian/exporter": "~1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "http://www.github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "time": "2015-01-29 16:28:08"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "1.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
-                "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.3-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "http://www.github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff"
-            ],
-            "time": "2015-02-22 15:13:53"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "1.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
-                "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.3.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "http://www.github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "time": "2015-01-01 10:01:08"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "84839970d05254c73cde183a721c7af13aede943"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
-                "reference": "84839970d05254c73cde183a721c7af13aede943",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/recursion-context": "~1.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "http://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "time": "2015-01-27 07:23:06"
-        },
-        {
-            "name": "sebastian/global-state",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
-                "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "suggest": {
-                "ext-uopz": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Snapshotting of global state",
-            "homepage": "http://www.github.com/sebastianbergmann/global-state",
-            "keywords": [
-                "global state"
-            ],
-            "time": "2014-10-06 09:23:50"
-        },
-        {
-            "name": "sebastian/recursion-context",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
-                "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
-            "time": "2015-01-24 09:48:32"
-        },
-        {
-            "name": "sebastian/version",
-            "version": "1.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
-                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
-                "shasum": ""
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
-            "time": "2015-06-21 13:59:46"
-        },
-        {
-            "name": "symfony/config",
-            "version": "v2.7.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Config.git",
-                "reference": "58ded81f1f582a87c528ef3dae9a859f78b5f374"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Config/zipball/58ded81f1f582a87c528ef3dae9a859f78b5f374",
-                "reference": "58ded81f1f582a87c528ef3dae9a859f78b5f374",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9",
-                "symfony/filesystem": "~2.3"
-            },
-            "require-dev": {
-                "symfony/phpunit-bridge": "~2.7"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Config\\": ""
-                }
-            },
-            "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 Config Component",
-            "homepage": "https://symfony.com",
-            "time": "2015-06-11 14:06:56"
-        },
-        {
-            "name": "symfony/console",
-            "version": "v2.7.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Console.git",
-                "reference": "564398bc1f33faf92fc2ec86859983d30eb81806"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Console/zipball/564398bc1f33faf92fc2ec86859983d30eb81806",
-                "reference": "564398bc1f33faf92fc2ec86859983d30eb81806",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "require-dev": {
-                "psr/log": "~1.0",
-                "symfony/event-dispatcher": "~2.1",
-                "symfony/phpunit-bridge": "~2.7",
-                "symfony/process": "~2.1"
-            },
-            "suggest": {
-                "psr/log": "For using the console logger",
-                "symfony/event-dispatcher": "",
-                "symfony/process": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Console\\": ""
-                }
-            },
-            "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 Console Component",
-            "homepage": "https://symfony.com",
-            "time": "2015-06-10 15:30:22"
-        },
-        {
-            "name": "symfony/event-dispatcher",
-            "version": "v2.7.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/EventDispatcher.git",
-                "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
-                "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "require-dev": {
-                "psr/log": "~1.0",
-                "symfony/config": "~2.0,>=2.0.5",
-                "symfony/dependency-injection": "~2.6",
-                "symfony/expression-language": "~2.6",
-                "symfony/phpunit-bridge": "~2.7",
-                "symfony/stopwatch": "~2.3"
-            },
-            "suggest": {
-                "symfony/dependency-injection": "",
-                "symfony/http-kernel": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\EventDispatcher\\": ""
-                }
-            },
-            "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 EventDispatcher Component",
-            "homepage": "https://symfony.com",
-            "time": "2015-06-08 09:37:21"
-        },
-        {
-            "name": "symfony/filesystem",
-            "version": "v2.7.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Filesystem.git",
-                "reference": "a0d43eb3e17d4f4c6990289805a488a0482a07f3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a0d43eb3e17d4f4c6990289805a488a0482a07f3",
-                "reference": "a0d43eb3e17d4f4c6990289805a488a0482a07f3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "require-dev": {
-                "symfony/phpunit-bridge": "~2.7"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Filesystem\\": ""
-                }
-            },
-            "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 Filesystem Component",
-            "homepage": "https://symfony.com",
-            "time": "2015-06-08 09:37:21"
-        },
-        {
-            "name": "symfony/stopwatch",
-            "version": "v2.7.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Stopwatch.git",
-                "reference": "c653f1985f6c2b7dbffd04d48b9c0a96aaef814b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/c653f1985f6c2b7dbffd04d48b9c0a96aaef814b",
-                "reference": "c653f1985f6c2b7dbffd04d48b9c0a96aaef814b",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "require-dev": {
-                "symfony/phpunit-bridge": "~2.7"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Stopwatch\\": ""
-                }
-            },
-            "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 Stopwatch Component",
-            "homepage": "https://symfony.com",
-            "time": "2015-06-04 20:11:48"
-        },
-        {
-            "name": "symfony/yaml",
-            "version": "v2.7.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Yaml.git",
-                "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/9808e75c609a14f6db02f70fccf4ca4aab53c160",
-                "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "require-dev": {
-                "symfony/phpunit-bridge": "~2.7"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.7-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Yaml\\": ""
-                }
-            },
-            "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 Yaml Component",
-            "homepage": "https://symfony.com",
-            "time": "2015-06-10 15:30:22"
-        }
-    ],
-    "aliases": [],
-    "minimum-stability": "stable",
-    "stability-flags": {
-        "satooshi/php-coveralls": 20
-    },
-    "prefer-stable": false,
-    "prefer-lowest": false,
-    "platform": {
-        "php": ">= 5.3.3"
-    },
-    "platform-dev": []
-}
diff --git a/core/vendor/egulias/email-validator/documentation/Other.md b/core/vendor/egulias/email-validator/documentation/Other.md
deleted file mode 100644
index 9ec4bd9..0000000
--- a/core/vendor/egulias/email-validator/documentation/Other.md
+++ /dev/null
@@ -1,69 +0,0 @@
-Email length
-------------
-http://tools.ietf.org/html/rfc5321#section-4.1.2
-  Forward-path   = Path
-
-  Path           = "<" [ A-d-l ":" ] Mailbox ">"
-
-http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3
-http://tools.ietf.org/html/rfc1035#section-2.3.4
-
-DNS
----
-
-http://tools.ietf.org/html/rfc5321#section-2.3.5
-  Names that can
-  be resolved to MX RRs or address (i.e., A or AAAA) RRs (as discussed
-  in Section 5) are permitted, as are CNAME RRs whose targets can be
-  resolved, in turn, to MX or address RRs.
-
-http://tools.ietf.org/html/rfc5321#section-5.1
-  The lookup first attempts to locate an MX record associated with the
-  name.  If a CNAME record is found, the resulting name is processed as
-  if it were the initial name. ... If an empty list of MXs is returned,
-  the address is treated as if it was associated with an implicit MX
-  RR, with a preference of 0, pointing to that host.
-
-is_email() author's note: We will regard the existence of a CNAME to be
-sufficient evidence of the domain's existence. For performance reasons
-we will not repeat the DNS lookup for the CNAME's target, but we will
-raise a warning because we didn't immediately find an MX record.
-
-Check for TLD addresses
------------------------
-TLD addresses are specifically allowed in RFC 5321 but they are
-unusual to say the least. We will allocate a separate
-status to these addresses on the basis that they are more likely
-to be typos than genuine addresses (unless we've already
-established that the domain does have an MX record)
-
-http://tools.ietf.org/html/rfc5321#section-2.3.5
-  In the case
-  of a top-level domain used by itself in an email address, a single
-  string is used without any dots.  This makes the requirement,
-  described in more detail below, that only fully-qualified domain
-  names appear in SMTP transactions on the public Internet,
-  particularly important where top-level domains are involved.
-
-TLD format
-----------
-The format of TLDs has changed a number of times. The standards
-used by IANA have been largely ignored by ICANN, leading to
-confusion over the standards being followed. These are not defined
-anywhere, except as a general component of a DNS host name (a label).
-However, this could potentially lead to 123.123.123.123 being a
-valid DNS name (rather than an IP address) and thereby creating
-an ambiguity. The most authoritative statement on TLD formats that
-the author can find is in a (rejected!) erratum to RFC 1123
-submitted by John Klensin, the author of RFC 5321:
-
-http://www.rfc-editor.org/errata_search.php?rfc=1123&eid=1353
-  However, a valid host name can never have the dotted-decimal
-  form #.#.#.#, since this change does not permit the highest-level
-  component label to start with a digit even if it is not all-numeric.
-
-Comments
---------
-Comments at the start of the domain are deprecated in the text
-Comments at the start of a subdomain are obs-domain
-(http://tools.ietf.org/html/rfc5322#section-3.4.1)
diff --git a/core/vendor/egulias/email-validator/documentation/RFC5321BNF.html b/core/vendor/egulias/email-validator/documentation/RFC5321BNF.html
deleted file mode 100644
index 2313f01..0000000
--- a/core/vendor/egulias/email-validator/documentation/RFC5321BNF.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-<title>The BNF from RFC 5321 defining parts of a valid SMTP address</title>
-</head>
-
-<body>
-<pre style="font-size:11px;">
-   Mailbox        = Local-part "@" ( Domain / address-literal )
-
-   Local-part     = Dot-string / Quoted-string
-                  ; MAY be case-sensitive
-
-
-   Dot-string     = Atom *("."  Atom)
-
-   Atom           = 1*atext
-
-   Quoted-string  = DQUOTE *QcontentSMTP DQUOTE
-
-   QcontentSMTP   = qtextSMTP / quoted-pairSMTP
-
-   quoted-pairSMTP  = %d92 %d32-126
-                    ; i.e., backslash followed by any ASCII
-                    ; graphic (including itself) or SPace
-
-   qtextSMTP      = %d32-33 / %d35-91 / %d93-126
-                  ; i.e., within a quoted string, any
-                  ; ASCII graphic or space is permitted
-                  ; without blackslash-quoting except
-                  ; double-quote and the backslash itself.
-
-   Domain         = sub-domain *("." sub-domain)
-
-   sub-domain     = Let-dig [Ldh-str]
-
-   Let-dig        = ALPHA / DIGIT
-
-   Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig
-
-   address-literal  = "[" ( IPv4-address-literal /
-                    IPv6-address-literal /
-                    General-address-literal ) "]"
-                    ; See Section 4.1.3
-
-   IPv4-address-literal  = Snum 3("."  Snum)
-
-   IPv6-address-literal  = "IPv6:" IPv6-addr
-
-   General-address-literal  = Standardized-tag ":" 1*dcontent
-
-   Standardized-tag  = Ldh-str
-                     ; Standardized-tag MUST be specified in a
-                     ; Standards-Track RFC and registered with IANA
-
-   dcontent       = %d33-90 / ; Printable US-ASCII
-                  %d94-126 ; excl. "[", "\", "]"
-
-   Snum           = 1*3DIGIT
-                  ; representing a decimal integer
-                  ; value in the range 0 through 255
-
-   IPv6-addr      = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp
-
-   IPv6-hex       = 1*4HEXDIG
-
-   IPv6-full      = IPv6-hex 7(":" IPv6-hex)
-
-   IPv6-comp      = [IPv6-hex *5(":" IPv6-hex)] "::"
-                  [IPv6-hex *5(":" IPv6-hex)]
-                  ; The "::" represents at least 2 16-bit groups of
-                  ; zeros.  No more than 6 groups in addition to the
-                  ; "::" may be present.
-
-   IPv6v4-full    = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal
-
-   IPv6v4-comp    = [IPv6-hex *3(":" IPv6-hex)] "::"
-                  [IPv6-hex *3(":" IPv6-hex) ":"]
-                  IPv4-address-literal
-                  ; The "::" represents at least 2 16-bit groups of
-                  ; zeros.  No more than 4 groups in addition to the
-                  ; "::" and IPv4-address-literal may be present.
-
-</pre>
-</body>
-
-</html>
diff --git a/core/vendor/egulias/email-validator/documentation/RFC5322BNF.html b/core/vendor/egulias/email-validator/documentation/RFC5322BNF.html
deleted file mode 100644
index e2f8fd7..0000000
--- a/core/vendor/egulias/email-validator/documentation/RFC5322BNF.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-<title>The BNF from RFC 5322 defining parts of a valid internet message address</title>
-</head>
-
-<body>
-<pre style="font-size:11px;">
-   addr-spec       =   local-part "@" domain
-
-   local-part      =   dot-atom / quoted-string / obs-local-part
-
-   dot-atom        =   [CFWS] dot-atom-text [CFWS]
-
-   CFWS            =   (1*([FWS] comment) [FWS]) / FWS
-
-   FWS             =   ([*WSP CRLF] 1*WSP) /  obs-FWS
-                                          ; Folding white space
-
-   WSP             =   SP / HTAB          ; white space
-
-   obs-FWS         =   1*([CRLF] WSP)     ; As amended in erratum #1908
-
-   ctext           =   %d33-39 /          ; Printable US-ASCII
-                       %d42-91 /          ;  characters not including
-                       %d93-126 /         ;  "(", ")", or "\"
-                       obs-ctext
-
-   obs-ctext       =   obs-NO-WS-CTL
-   ccontent        =   ctext / quoted-pair / comment
-
-   comment         =   "(" *([FWS] ccontent) [FWS] ")"
-
-   dot-atom-text   =   1*atext *("." 1*atext)
-
-   atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
-                       "!" / "#" /        ;  characters not including
-                       "$" / "%" /        ;  specials.  Used for atoms.
-                       "&amp;" / "'" /
-                       "*" / "+" /
-                       "-" / "/" /
-                       "=" / "?" /
-                       "^" / "_" /
-                       "`" / "{" /
-                       "|" / "}" /
-                       "~"
-
-   specials        =   "(" / ")" /        ; Special characters that do
-                       "&lt;" / "&gt;" /        ;  not appear in atext
-                       "[" / "]" /
-                       ":" / ";" /
-                       "@" / "\" /
-                       "," / "." /
-                       DQUOTE
-
-   quoted-string   =   [CFWS]
-                       DQUOTE *([FWS] qcontent) [FWS] DQUOTE
-                       [CFWS]
-
-   qcontent        =   qtext / quoted-pair
-
-   qtext           =   %d33 /             ; Printable US-ASCII
-                       %d35-91 /          ;  characters not including
-                       %d93-126 /         ;  "\" or the quote character
-                       obs-qtext
-
-   obs-qtext       =   obs-NO-WS-CTL
-
-   obs-NO-WS-CTL   =   %d1-8 /            ; US-ASCII control
-                       %d11 /             ;  characters that do not
-                       %d12 /             ;  include the carriage
-                       %d14-31 /          ;  return, line feed, and
-                       %d127              ;  white space characters
-
-   quoted-pair     =   ("\" (VCHAR / WSP)) / obs-qp
-
-   VCHAR           =   %x21-7E            ; visible (printing) characters
-
-   obs-qp          =   "\" (%d0 / obs-NO-WS-CTL / LF / CR)
-
-   obs-local-part  =   word *("." word)
-
-   word            =   atom / quoted-string
-
-   atom            =   [CFWS] 1*atext [CFWS]
-
-   domain          =   dot-atom / domain-literal / obs-domain
-
-   domain-literal  =   [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]
-
-   dtext           =   %d33-90 /          ; Printable US-ASCII
-                       %d94-126 /         ;  characters not including
-                       obs-dtext          ;  "[", "]", or "\"
-
-   obs-dtext       =   obs-NO-WS-CTL / quoted-pair
-
-   obs-domain      =   atom *("." atom)
-
-NB For SMTP mail, the domain-literal is restricted by RFC5321 as follows:
-
-   Mailbox        = Local-part "@" ( Domain / address-literal )
-
-   address-literal  = "[" ( IPv4-address-literal /
-                    IPv6-address-literal /
-                    General-address-literal ) "]"
-
-   IPv4-address-literal  = Snum 3("."  Snum)
-
-   IPv6-address-literal  = "IPv6:" IPv6-addr
-
-   Snum           = 1*3DIGIT
-                  ; representing a decimal integer
-                  ; value in the range 0 through 255
-
-   IPv6-addr      = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp
-
-   IPv6-hex       = 1*4HEXDIG
-
-   IPv6-full      = IPv6-hex 7(":" IPv6-hex)
-
-   IPv6-comp      = [IPv6-hex *5(":" IPv6-hex)] "::"
-                  [IPv6-hex *5(":" IPv6-hex)]
-                  ; The "::" represents at least 2 16-bit groups of
-                  ; zeros.  No more than 6 groups in addition to the
-                  ; "::" may be present.
-
-   IPv6v4-full    = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal
-
-   IPv6v4-comp    = [IPv6-hex *3(":" IPv6-hex)] "::"
-                  [IPv6-hex *3(":" IPv6-hex) ":"]
-                  IPv4-address-literal
-                  ; The "::" represents at least 2 16-bit groups of
-                  ; zeros.  No more than 4 groups in addition to the
-                  ; "::" and IPv4-address-literal may be present.
-
-</pre>
-</body>
-
-</html>
diff --git a/core/vendor/egulias/email-validator/phpunit.xml.dist b/core/vendor/egulias/email-validator/phpunit.xml.dist
deleted file mode 100644
index f335ec1..0000000
--- a/core/vendor/egulias/email-validator/phpunit.xml.dist
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="tests/bootstrap.php"
->
-<testsuites>
-  <testsuite name="EmailValidator Test Suite">
-    <directory>./tests/egulias/Tests/</directory>
-    <exclude>./vendor/</exclude>
-  </testsuite>
-</testsuites>
-
-<filter>
-  <blacklist>
-    <directory>./vendor</directory>
-  </blacklist>
-</filter>
-</phpunit>
diff --git a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailLexer.php b/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailLexer.php
deleted file mode 100644
index d8522ff..0000000
--- a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailLexer.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-
-namespace Egulias\EmailValidator;
-
-use Doctrine\Common\Lexer\AbstractLexer;
-
-class EmailLexer extends AbstractLexer
-{
-    //ASCII values
-    const C_DEL              = 127;
-    const C_NUL              = 0;
-    const S_AT               = 64;
-    const S_BACKSLASH        = 92;
-    const S_DOT              = 46;
-    const S_DQUOTE           = 34;
-    const S_OPENPARENTHESIS  = 49;
-    const S_CLOSEPARENTHESIS = 261;
-    const S_OPENBRACKET      = 262;
-    const S_CLOSEBRACKET     = 263;
-    const S_HYPHEN           = 264;
-    const S_COLON            = 265;
-    const S_DOUBLECOLON      = 266;
-    const S_SP               = 267;
-    const S_HTAB             = 268;
-    const S_CR               = 269;
-    const S_LF               = 270;
-    const S_IPV6TAG          = 271;
-    const S_LOWERTHAN        = 272;
-    const S_GREATERTHAN      = 273;
-    const S_COMMA            = 274;
-    const S_SEMICOLON        = 275;
-    const S_OPENQBRACKET     = 276;
-    const S_CLOSEQBRACKET    = 277;
-    const S_SLASH            = 278;
-    const S_EMPTY            = null;
-    const GENERIC            = 300;
-    const CRLF               = 301;
-    const INVALID            = 302;
-    const ASCII_INVALID_FROM = 127;
-    const ASCII_INVALID_TO   = 199;
-
-    /**
-     * US-ASCII visible characters not valid for atext (@link http://tools.ietf.org/html/rfc5322#section-3.2.3)
-     *
-     * @var array
-     */
-    protected $charValue = array(
-        '('    => self::S_OPENPARENTHESIS,
-        ')'    => self::S_CLOSEPARENTHESIS,
-        '<'    => self::S_LOWERTHAN,
-        '>'    => self::S_GREATERTHAN,
-        '['    => self::S_OPENBRACKET,
-        ']'    => self::S_CLOSEBRACKET,
-        ':'    => self::S_COLON,
-        ';'    => self::S_SEMICOLON,
-        '@'    => self::S_AT,
-        '\\'   => self::S_BACKSLASH,
-        '/'    => self::S_SLASH,
-        ','    => self::S_COMMA,
-        '.'    => self::S_DOT,
-        '"'    => self::S_DQUOTE,
-        '-'    => self::S_HYPHEN,
-        '::'   => self::S_DOUBLECOLON,
-        ' '    => self::S_SP,
-        "\t"   => self::S_HTAB,
-        "\r"   => self::S_CR,
-        "\n"   => self::S_LF,
-        "\r\n" => self::CRLF,
-        'IPv6' => self::S_IPV6TAG,
-        '<'    => self::S_LOWERTHAN,
-        '>'    => self::S_GREATERTHAN,
-        '{'    => self::S_OPENQBRACKET,
-        '}'    => self::S_CLOSEQBRACKET,
-        ''     => self::S_EMPTY,
-        '\0'   => self::C_NUL,
-    );
-
-    protected $hasInvalidTokens = false;
-
-    protected $previous;
-
-    public function reset()
-    {
-        $this->hasInvalidTokens = false;
-        parent::reset();
-    }
-
-    public function hasInvalidTokens()
-    {
-        return $this->hasInvalidTokens;
-    }
-
-    /**
-     * @param $type
-     * @throws \UnexpectedValueException
-     * @return boolean
-     */
-    public function find($type)
-    {
-        $search = clone $this;
-        $search->skipUntil($type);
-
-        if (!$search->lookahead) {
-            throw new \UnexpectedValueException($type . ' not found');
-        }
-        return true;
-    }
-
-    /**
-     * getPrevious
-     *
-     * @return array token
-     */
-    public function getPrevious()
-    {
-        return $this->previous;
-    }
-
-    /**
-     * moveNext
-     *
-     * @return boolean
-     */
-    public function moveNext()
-    {
-        $this->previous = $this->token;
-
-        return parent::moveNext();
-    }
-
-    /**
-     * Lexical catchable patterns.
-     *
-     * @return string[]
-     */
-    protected function getCatchablePatterns()
-    {
-        return array(
-            '[a-zA-Z_]+[46]?', //ASCII and domain literal
-            '[^\x00-\x7F]',  //UTF-8
-            '[0-9]+',
-            '\r\n',
-            '::',
-            '\s+?',
-            '.',
-            );
-    }
-
-    /**
-     * Lexical non-catchable patterns.
-     *
-     * @return string[]
-     */
-    protected function getNonCatchablePatterns()
-    {
-        return array('[\xA0-\xff]+');
-    }
-
-    /**
-     * Retrieve token type. Also processes the token value if necessary.
-     *
-     * @param string $value
-     * @throws \InvalidArgumentException
-     * @return integer
-     */
-    protected function getType(&$value)
-    {
-        if ($this->isNullType($value)) {
-            return self::C_NUL;
-        }
-
-        if ($this->isValid($value)) {
-            return $this->charValue[$value];
-        }
-
-        if ($this->isUTF8Invalid($value)) {
-            $this->hasInvalidTokens = true;
-            return self::INVALID;
-        }
-
-        return  self::GENERIC;
-    }
-
-    protected function isValid($value)
-    {
-        if (isset($this->charValue[$value])) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * @param $value
-     * @return bool
-     */
-    protected function isNullType($value)
-    {
-        if ($value === "\0") {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * @param $value
-     * @return bool
-     */
-    protected function isUTF8Invalid($value)
-    {
-        if (preg_match('/\p{Cc}+/u', $value)) {
-            return true;
-        }
-
-        return false;
-    }
-
-    protected function getModifiers()
-    {
-        return 'iu';
-    }
-}
diff --git a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailParser.php b/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailParser.php
deleted file mode 100644
index 5f4c4aa..0000000
--- a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailParser.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-namespace Egulias\EmailValidator;
-
-use Egulias\EmailValidator\Parser\DomainPart;
-use Egulias\EmailValidator\Parser\LocalPart;
-
-/**
- * EmailParser
- *
- * @author Eduardo Gulias Davis <me@egulias.com>
- */
-class EmailParser
-{
-    const EMAIL_MAX_LENGTH = 254;
-
-    protected $warnings = array();
-    protected $domainPart = '';
-    protected $localPart = '';
-    protected $lexer;
-    protected $localPartParser;
-    protected $domainPartParser;
-
-    public function __construct(EmailLexer $lexer)
-    {
-        $this->lexer = $lexer;
-        $this->localPartParser = new LocalPart($this->lexer);
-        $this->domainPartParser = new DomainPart($this->lexer);
-    }
-
-    /**
-     * @param $str
-     * @return array
-     */
-    public function parse($str)
-    {
-        $this->lexer->setInput($str);
-
-        if (!$this->hasAtToken()) {
-            throw new \InvalidArgumentException('ERR_NOLOCALPART');
-        }
-
-
-        $this->localPartParser->parse($str);
-        $this->domainPartParser->parse($str);
-
-        $this->setParts($str);
-
-        if ($this->lexer->hasInvalidTokens()) {
-            throw new \InvalidArgumentException('ERR_INVALID_ATEXT');
-        }
-
-        return array('local' => $this->localPart, 'domain' => $this->domainPart);
-    }
-
-    public function getWarnings()
-    {
-        $localPartWarnings = $this->localPartParser->getWarnings();
-        $domainPartWarnings = $this->domainPartParser->getWarnings();
-
-        $this->warnings = array_merge($localPartWarnings, $domainPartWarnings);
-        $this->addLongEmailWarning($this->localPart, $this->domainPart);
-
-        return $this->warnings;
-    }
-
-    public function getParsedDomainPart()
-    {
-        return $this->domainPart;
-    }
-
-    protected function setParts($email)
-    {
-        $parts = explode('@', $email);
-        $this->domainPart = $this->domainPartParser->getDomainPart();
-        $this->localPart = $parts[0];
-    }
-
-    protected function hasAtToken()
-    {
-        $this->lexer->moveNext();
-        $this->lexer->moveNext();
-        if ($this->lexer->token['type'] === EmailLexer::S_AT) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * @param string $localPart
-     * @param string $parsedDomainPart
-     */
-    protected function addLongEmailWarning($localPart, $parsedDomainPart)
-    {
-        if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAIL_MAX_LENGTH) {
-            $this->warnings[] = EmailValidator::RFC5322_TOOLONG;
-        }
-    }
-}
diff --git a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailValidator.php b/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailValidator.php
deleted file mode 100644
index d047dec..0000000
--- a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/EmailValidator.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-
-namespace Egulias\EmailValidator;
-
-/**
- * EmailValidator
- *
- * @author Eduardo Gulias Davis <me@egulias.com>
- */
-class EmailValidator
-{
-    const ERR_CONSECUTIVEATS     = 128;
-    const ERR_EXPECTING_DTEXT    = 129;
-    const ERR_NOLOCALPART        = 130;
-    const ERR_NODOMAIN           = 131;
-    const ERR_CONSECUTIVEDOTS    = 132;
-    const ERR_ATEXT_AFTER_CFWS   = 133;
-    const ERR_ATEXT_AFTER_QS     = 134;
-    const ERR_ATEXT_AFTER_DOMLIT = 135;
-    const ERR_EXPECTING_QPAIR    = 136;
-    const ERR_EXPECTING_ATEXT    = 137;
-    const ERR_EXPECTING_QTEXT    = 138;
-    const ERR_EXPECTING_CTEXT    = 139;
-    const ERR_BACKSLASHEND       = 140;
-    const ERR_DOT_START          = 141;
-    const ERR_DOT_END            = 142;
-    const ERR_DOMAINHYPHENSTART  = 143;
-    const ERR_DOMAINHYPHENEND    = 144;
-    const ERR_UNCLOSEDQUOTEDSTR  = 145;
-    const ERR_UNCLOSEDCOMMENT    = 146;
-    const ERR_UNCLOSEDDOMLIT     = 147;
-    const ERR_FWS_CRLF_X2        = 148;
-    const ERR_FWS_CRLF_END       = 149;
-    const ERR_CR_NO_LF           = 150;
-    const ERR_DEPREC_REACHED     = 151;
-    const RFC5321_TLD             = 9;
-    const RFC5321_TLDNUMERIC      = 10;
-    const RFC5321_QUOTEDSTRING    = 11;
-    const RFC5321_ADDRESSLITERAL  = 12;
-    const RFC5321_IPV6DEPRECATED  = 13;
-    const CFWS_COMMENT            = 17;
-    const CFWS_FWS                = 18;
-    const DEPREC_LOCALPART        = 33;
-    const DEPREC_FWS              = 34;
-    const DEPREC_QTEXT            = 35;
-    const DEPREC_QP               = 36;
-    const DEPREC_COMMENT          = 37;
-    const DEPREC_CTEXT            = 38;
-    const DEPREC_CFWS_NEAR_AT     = 49;
-    const RFC5322_LOCAL_TOOLONG   = 64;
-    const RFC5322_LABEL_TOOLONG   = 63;
-    const RFC5322_DOMAIN          = 65;
-    const RFC5322_TOOLONG         = 66;
-    const RFC5322_DOMAIN_TOOLONG  = 255;
-    const RFC5322_DOMAINLITERAL   = 70;
-    const RFC5322_DOMLIT_OBSDTEXT = 71;
-    const RFC5322_IPV6_GRPCOUNT   = 72;
-    const RFC5322_IPV6_2X2XCOLON  = 73;
-    const RFC5322_IPV6_BADCHAR    = 74;
-    const RFC5322_IPV6_MAXGRPS    = 75;
-    const RFC5322_IPV6_COLONSTRT  = 76;
-    const RFC5322_IPV6_COLONEND   = 77;
-    const DNSWARN_NO_MX_RECORD    = 5;
-    const DNSWARN_NO_RECORD       = 6;
-
-    protected $parser;
-    protected $warnings = array();
-    protected $error;
-    protected $threshold = 255;
-
-    public function __construct()
-    {
-        $this->parser = new EmailParser(new EmailLexer());
-    }
-
-    public function isValid($email, $checkDNS = false, $strict = false)
-    {
-        try {
-            $this->parser->parse((string)$email);
-            $this->warnings = $this->parser->getWarnings();
-        } catch (\Exception $e) {
-            $rClass = new \ReflectionClass($this);
-            $this->error = $rClass->getConstant($e->getMessage());
-            return false;
-        }
-
-        $dns = true;
-        if ($checkDNS) {
-            $dns = $this->checkDNS();
-        }
-
-        if ($this->hasWarnings() && ((int) max($this->warnings) > $this->threshold)) {
-            $this->error = self::ERR_DEPREC_REACHED;
-
-            return false;
-        }
-
-        return !$strict || (!$this->hasWarnings() && $dns);
-    }
-
-    /**
-     * @return boolean
-     */
-    public function hasWarnings()
-    {
-        return !empty($this->warnings);
-    }
-
-    /**
-     * @return array
-     */
-    public function getWarnings()
-    {
-        return $this->warnings;
-    }
-
-    /**
-     * @return string
-     */
-    public function getError()
-    {
-        return $this->error;
-    }
-
-    /**
-     * @param int $threshold
-     *
-     * @return EmailValidator
-     */
-    public function setThreshold($threshold)
-    {
-        $this->threshold = (int) $threshold;
-
-        return $this;
-    }
-
-    /**
-     * @return int
-     */
-    public function getThreshold()
-    {
-        return $this->threshold;
-    }
-
-    protected function checkDNS()
-    {
-        $checked = true;
-
-        $result = checkdnsrr(trim($this->parser->getParsedDomainPart()), 'MX');
-
-        if (!$result) {
-            $this->warnings[] = self::DNSWARN_NO_RECORD;
-            $checked = false;
-            $this->addTLDWarnings();
-        }
-
-        return $checked;
-    }
-
-    protected function addTLDWarnings()
-    {
-        if (!in_array(self::DNSWARN_NO_RECORD, $this->warnings) &&
-            !in_array(self::DNSWARN_NO_MX_RECORD, $this->warnings) &&
-            in_array(self::RFC5322_DOMAINLITERAL, $this->warnings)
-        ) {
-            $this->warnings[] = self::RFC5321_TLD;
-        }
-    }
-}
diff --git a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/DomainPart.php b/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/DomainPart.php
deleted file mode 100644
index c4d0cf6..0000000
--- a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/DomainPart.php
+++ /dev/null
@@ -1,317 +0,0 @@
-<?php
-
-
-namespace Egulias\EmailValidator\Parser;
-
-use Egulias\EmailValidator\EmailLexer;
-use Egulias\EmailValidator\Parser\Parser;
-use Egulias\EmailValidator\EmailValidator;
-
-class DomainPart extends Parser
-{
-    const DOMAIN_MAX_LENGTH = 254;
-    protected $domainPart = '';
-
-    public function parse($domainPart)
-    {
-        $this->lexer->moveNext();
-
-        if ($this->lexer->token['type'] === EmailLexer::S_DOT) {
-            throw new \InvalidArgumentException('ERR_DOT_START');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_EMPTY) {
-            throw new \InvalidArgumentException('ERR_NODOMAIN');
-        }
-        if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) {
-            throw new \InvalidArgumentException('ERR_DOMAINHYPHENEND');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) {
-            $this->warnings[] = EmailValidator::DEPREC_COMMENT;
-            $this->parseDomainComments();
-        }
-
-        $domain = $this->doParseDomainPart();
-
-        $prev = $this->lexer->getPrevious();
-        $length = strlen($domain);
-
-        if ($prev['type'] === EmailLexer::S_DOT) {
-            throw new \InvalidArgumentException('ERR_DOT_END');
-        }
-        if ($prev['type'] === EmailLexer::S_HYPHEN) {
-            throw new \InvalidArgumentException('ERR_DOMAINHYPHENEND');
-        }
-        if ($length > self::DOMAIN_MAX_LENGTH) {
-            $this->warnings[] = EmailValidator::RFC5322_DOMAIN_TOOLONG;
-        }
-        if ($prev['type'] === EmailLexer::S_CR) {
-            throw new \InvalidArgumentException('ERR_FWS_CRLF_END');
-        }
-        $this->domainPart = $domain;
-    }
-
-    public function getDomainPart()
-    {
-        return $this->domainPart;
-    }
-
-    public function checkIPV6Tag($addressLiteral, $maxGroups = 8)
-    {
-        $prev = $this->lexer->getPrevious();
-        if ($prev['type'] === EmailLexer::S_COLON) {
-            $this->warnings[] = EmailValidator::RFC5322_IPV6_COLONEND;
-        }
-
-        $IPv6       = substr($addressLiteral, 5);
-        //Daniel Marschall's new IPv6 testing strategy
-        $matchesIP  = explode(':', $IPv6);
-        $groupCount = count($matchesIP);
-        $colons     = strpos($IPv6, '::');
-
-        if (count(preg_grep('/^[0-9A-Fa-f]{0,4}$/', $matchesIP, PREG_GREP_INVERT)) !== 0) {
-            $this->warnings[] = EmailValidator::RFC5322_IPV6_BADCHAR;
-        }
-
-        if ($colons === false) {
-            // We need exactly the right number of groups
-            if ($groupCount !== $maxGroups) {
-                $this->warnings[] = EmailValidator::RFC5322_IPV6_GRPCOUNT;
-            }
-            return;
-        }
-
-        if ($colons !== strrpos($IPv6, '::')) {
-            $this->warnings[] = EmailValidator::RFC5322_IPV6_2X2XCOLON;
-            return;
-        }
-
-        if ($colons === 0 || $colons === (strlen($IPv6) - 2)) {
-            // RFC 4291 allows :: at the start or end of an address
-            //with 7 other groups in addition
-            ++$maxGroups;
-        }
-
-        if ($groupCount > $maxGroups) {
-            $this->warnings[] = EmailValidator::RFC5322_IPV6_MAXGRPS;
-        } elseif ($groupCount === $maxGroups) {
-            $this->warnings[] = EmailValidator::RFC5321_IPV6DEPRECATED;
-        }
-    }
-
-    protected function doParseDomainPart()
-    {
-        $domain = '';
-        do {
-
-            $prev = $this->lexer->getPrevious();
-
-            if ($this->lexer->token['type'] === EmailLexer::S_SLASH) {
-                throw new \InvalidArgumentException('ERR_DOMAIN_CHAR_NOT_ALLOWED');
-            }
-
-            if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) {
-                $this->parseComments();
-                $this->lexer->moveNext();
-            }
-
-            $this->checkConsecutiveDots();
-            $this->checkDomainPartExceptions($prev);
-
-            if ($this->hasBrackets()) {
-                $this->parseDomainLiteral();
-            }
-
-            $this->checkLabelLength($prev);
-
-            if ($this->isFWS()) {
-                $this->parseFWS();
-            }
-
-            $domain .= $this->lexer->token['value'];
-            $this->lexer->moveNext();
-        } while ($this->lexer->token);
-
-        return $domain;
-    }
-
-    protected function parseDomainLiteral()
-    {
-        if ($this->lexer->isNextToken(EmailLexer::S_COLON)) {
-            $this->warnings[] = EmailValidator::RFC5322_IPV6_COLONSTRT;
-        }
-        if ($this->lexer->isNextToken(EmailLexer::S_IPV6TAG)) {
-            $lexer = clone $this->lexer;
-            $lexer->moveNext();
-            if ($lexer->isNextToken(EmailLexer::S_DOUBLECOLON)) {
-                $this->warnings[] = EmailValidator::RFC5322_IPV6_COLONSTRT;
-            }
-        }
-
-        return $this->doParseDomainLiteral();
-    }
-
-    protected function doParseDomainLiteral()
-    {
-        $IPv6TAG = false;
-        $addressLiteral = '';
-        do {
-            if ($this->lexer->token['type'] === EmailLexer::C_NUL) {
-                throw new \InvalidArgumentException('ERR_EXPECTING_DTEXT');
-            }
-
-            if ($this->lexer->token['type'] === EmailLexer::INVALID ||
-                $this->lexer->token['type'] === EmailLexer::C_DEL   ||
-                $this->lexer->token['type'] === EmailLexer::S_LF
-            ) {
-                $this->warnings[] = EmailValidator::RFC5322_DOMLIT_OBSDTEXT;
-            }
-
-            if ($this->lexer->isNextTokenAny(array(EmailLexer::S_OPENQBRACKET, EmailLexer::S_OPENBRACKET))) {
-                throw new \InvalidArgumentException('ERR_EXPECTING_DTEXT');
-            }
-
-            if ($this->lexer->isNextTokenAny(
-                array(EmailLexer::S_HTAB, EmailLexer::S_SP, $this->lexer->token['type'] === EmailLexer::CRLF)
-            )) {
-                $this->warnings[] = EmailValidator::CFWS_FWS;
-                $this->parseFWS();
-            }
-
-            if ($this->lexer->isNextToken(EmailLexer::S_CR)) {
-                throw new \InvalidArgumentException("ERR_CR_NO_LF");
-            }
-            if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) {
-                $this->warnings[] = EmailValidator::RFC5322_DOMLIT_OBSDTEXT;
-                $addressLiteral .= $this->lexer->token['value'];
-                $this->lexer->moveNext();
-                $this->validateQuotedPair();
-            }
-            if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) {
-                $IPv6TAG = true;
-            }
-            if ($this->lexer->token['type'] === EmailLexer::S_CLOSEQBRACKET) {
-                break;
-            }
-
-            $addressLiteral .= $this->lexer->token['value'];
-
-        } while ($this->lexer->moveNext());
-
-        $addressLiteral = str_replace('[', '', $addressLiteral);
-        $addressLiteral = $this->checkIPV4Tag($addressLiteral);
-
-        if (false === $addressLiteral) {
-            return $addressLiteral;
-        }
-
-        if (!$IPv6TAG) {
-            $this->warnings[] = EmailValidator::RFC5322_DOMAINLITERAL;
-            return $addressLiteral;
-        }
-
-        $this->warnings[] = EmailValidator::RFC5321_ADDRESSLITERAL;
-
-        $this->checkIPV6Tag($addressLiteral);
-
-        return $addressLiteral;
-    }
-
-    protected function checkIPV4Tag($addressLiteral)
-    {
-        $matchesIP  = array();
-
-        // Extract IPv4 part from the end of the address-literal (if there is one)
-        if (preg_match(
-                '/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/',
-                $addressLiteral,
-                $matchesIP
-            ) > 0
-        ) {
-            $index = strrpos($addressLiteral, $matchesIP[0]);
-            if ($index === 0) {
-                $this->warnings[] = EmailValidator::RFC5321_ADDRESSLITERAL;
-                return false;
-            }
-            // Convert IPv4 part to IPv6 format for further testing
-            $addressLiteral = substr($addressLiteral, 0, $index) . '0:0';
-        }
-
-        return $addressLiteral;
-    }
-
-    protected function checkDomainPartExceptions($prev)
-    {
-        $invalidDomainTokens = array(
-            EmailLexer::S_DQUOTE => true,
-            EmailLexer::S_SEMICOLON => true,
-            EmailLexer::S_GREATERTHAN => true,
-            EmailLexer::S_LOWERTHAN => true,
-        );
-
-        if (isset($invalidDomainTokens[$this->lexer->token['type']])) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_COMMA) {
-            throw new \InvalidArgumentException('ERR_COMMA_IN_DOMAIN');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_AT) {
-            throw new \InvalidArgumentException('ERR_CONSECUTIVEATS');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) {
-            throw new \InvalidArgumentException('ERR_DOMAINHYPHENEND');
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH
-            && $this->lexer->isNextToken(EmailLexer::GENERIC)) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-    }
-
-    protected function hasBrackets()
-    {
-        if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) {
-            return false;
-        }
-
-        try {
-            $this->lexer->find(EmailLexer::S_CLOSEBRACKET);
-        } catch (\RuntimeException $e) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_DOMLIT_CLOSE');
-        }
-
-        return true;
-    }
-
-    protected function checkLabelLength($prev)
-    {
-        if ($this->lexer->token['type'] === EmailLexer::S_DOT &&
-            $prev['type'] === EmailLexer::GENERIC &&
-            strlen($prev['value']) > 63
-        ) {
-            $this->warnings[] = EmailValidator::RFC5322_LABEL_TOOLONG;
-        }
-    }
-
-    protected function parseDomainComments()
-    {
-        $this->isUnclosedComment();
-        while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) {
-            $this->warnEscaping();
-            $this->lexer->moveNext();
-        }
-
-        $this->lexer->moveNext();
-        if ($this->lexer->isNextToken(EmailLexer::S_DOT)) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-    }
-}
diff --git a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/LocalPart.php b/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/LocalPart.php
deleted file mode 100644
index 2f77164..0000000
--- a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/LocalPart.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-namespace Egulias\EmailValidator\Parser;
-
-use Egulias\EmailValidator\EmailLexer;
-use Egulias\EmailValidator\EmailValidator;
-use \InvalidArgumentException;
-
-class LocalPart extends Parser
-{
-    public function parse($localPart)
-    {
-        $parseDQuote = true;
-        $closingQuote = false;
-
-        while ($this->lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) {
-
-            if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) {
-                throw new \InvalidArgumentException('ERR_DOT_START');
-            }
-
-            $closingQuote = $this->checkDQUOTE($closingQuote);
-            if ($closingQuote && $parseDQuote) {
-                $parseDQuote = $this->parseDoubleQuote();
-            }
-
-            if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) {
-                $this->parseComments();
-            }
-
-            $this->checkConsecutiveDots();
-
-            if (
-                $this->lexer->token['type'] === EmailLexer::S_DOT &&
-                $this->lexer->isNextToken(EmailLexer::S_AT)
-            ) {
-                throw new \InvalidArgumentException('ERR_DOT_END');
-            }
-
-            $this->warnEscaping();
-            $this->isInvalidToken($this->lexer->token, $closingQuote);
-
-            if ($this->isFWS()) {
-                $this->parseFWS();
-            }
-
-            $this->lexer->moveNext();
-        }
-
-        $prev = $this->lexer->getPrevious();
-        if (strlen($prev['value']) > EmailValidator::RFC5322_LOCAL_TOOLONG) {
-            $this->warnings[] = EmailValidator::RFC5322_LOCAL_TOOLONG;
-        }
-    }
-
-    protected function parseDoubleQuote()
-    {
-        $parseAgain = true;
-        $special = array(
-            EmailLexer::S_CR => true,
-            EmailLexer::S_HTAB => true,
-            EmailLexer::S_LF => true
-        );
-
-        $invalid = array(
-            EmailLexer::C_NUL => true,
-            EmailLexer::S_HTAB => true,
-            EmailLexer::S_CR => true,
-            EmailLexer::S_LF => true
-        );
-        $setSpecialsWarning = true;
-
-        $this->lexer->moveNext();
-
-        while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && $this->lexer->token) {
-            $parseAgain = false;
-            if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) {
-                $this->warnings[] = EmailValidator::CFWS_FWS;
-                $setSpecialsWarning = false;
-            }
-
-            $this->lexer->moveNext();
-
-            if (!$this->escaped() && isset($invalid[$this->lexer->token['type']])) {
-                throw new InvalidArgumentException("ERR_EXPECTED_ATEXT");
-            }
-        }
-
-        $prev = $this->lexer->getPrevious();
-
-        if ($prev['type'] === EmailLexer::S_BACKSLASH) {
-            if (!$this->checkDQUOTE(false)) {
-                throw new \InvalidArgumentException("ERR_UNCLOSED_DQUOTE");
-            }
-        }
-
-        if (!$this->lexer->isNextToken(EmailLexer::S_AT) && $prev['type'] !== EmailLexer::S_BACKSLASH) {
-            throw new \InvalidArgumentException("ERR_EXPECED_AT");
-        }
-
-        return $parseAgain;
-    }
-
-    protected function isInvalidToken($token, $closingQuote)
-    {
-        $forbidden = array(
-            EmailLexer::S_COMMA,
-            EmailLexer::S_CLOSEBRACKET,
-            EmailLexer::S_OPENBRACKET,
-            EmailLexer::S_GREATERTHAN,
-            EmailLexer::S_LOWERTHAN,
-            EmailLexer::S_COLON,
-            EmailLexer::S_SEMICOLON,
-            EmailLexer::INVALID
-        );
-
-        if (in_array($token['type'], $forbidden) && !$closingQuote) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-    }
-}
diff --git a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/Parser.php b/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/Parser.php
deleted file mode 100644
index b66279e..0000000
--- a/core/vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/Parser.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-
-namespace Egulias\EmailValidator\Parser;
-
-use Egulias\EmailValidator\EmailLexer;
-use Egulias\EmailValidator\EmailValidator;
-
-abstract class Parser
-{
-    protected $warnings = array();
-    protected $lexer;
-
-    public function __construct(EmailLexer $lexer)
-    {
-        $this->lexer = $lexer;
-    }
-
-    public function getWarnings()
-    {
-        return $this->warnings;
-    }
-
-    abstract function parse($str);
-
-    /**
-     * validateQuotedPair
-     */
-    protected function validateQuotedPair()
-    {
-        if (!($this->lexer->token['type'] === EmailLexer::INVALID
-            || $this->lexer->token['type'] === EmailLexer::C_DEL)) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_QPAIR');
-        }
-
-        $this->warnings[] = EmailValidator::DEPREC_QP;
-    }
-
-    /**
-     * @return string the the comment
-     * @throws \InvalidArgumentException
-     */
-    protected function parseComments()
-    {
-        $this->isUnclosedComment();
-        $this->warnings[] = EmailValidator::CFWS_COMMENT;
-        while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) {
-            $this->warnEscaping();
-            $this->lexer->moveNext();
-        }
-
-        $this->lexer->moveNext();
-        if ($this->lexer->isNextTokenAny(array(EmailLexer::GENERIC, EmailLexer::S_EMPTY))) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-
-        if ($this->lexer->isNextToken(EmailLexer::S_AT)) {
-            $this->warnings[] = EmailValidator::DEPREC_CFWS_NEAR_AT;
-        }
-    }
-
-    protected function isUnclosedComment()
-    {
-        try {
-            $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS);
-            return true;
-        } catch (\RuntimeException $e) {
-            throw new \InvalidArgumentException('ERR_UNCLOSEDCOMMENT');
-        }
-    }
-
-    protected function parseFWS()
-    {
-        $previous = $this->lexer->getPrevious();
-
-        $this->checkCRLFInFWS();
-
-        if ($this->lexer->token['type'] === EmailLexer::S_CR) {
-            throw new \InvalidArgumentException("ERR_CR_NO_LF");
-        }
-
-        if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type']  !== EmailLexer::S_AT) {
-            throw new \InvalidArgumentException("ERR_ATEXT_AFTER_CFWS");
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_CTEXT');
-        }
-
-        if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type']  === EmailLexer::S_AT) {
-            $this->warnings[] = EmailValidator::DEPREC_CFWS_NEAR_AT;
-        } else {
-            $this->warnings[] = EmailValidator::CFWS_FWS;
-        }
-    }
-
-    protected function checkConsecutiveDots()
-    {
-        if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) {
-            throw new \InvalidArgumentException('ERR_CONSECUTIVEDOTS');
-        }
-    }
-
-    protected function isFWS()
-    {
-        if ($this->escaped()) {
-            return false;
-        }
-
-        if ($this->lexer->token['type'] === EmailLexer::S_SP ||
-            $this->lexer->token['type'] === EmailLexer::S_HTAB ||
-            $this->lexer->token['type'] === EmailLexer::S_CR ||
-            $this->lexer->token['type'] === EmailLexer::S_LF ||
-            $this->lexer->token['type'] === EmailLexer::CRLF
-        ) {
-            return true;
-        }
-
-        return false;
-    }
-
-    protected function escaped()
-    {
-        $previous = $this->lexer->getPrevious();
-
-        if ($previous['type'] === EmailLexer::S_BACKSLASH
-            &&
-            $this->lexer->token['type'] !== EmailLexer::GENERIC
-        ) {
-            return true;
-        }
-
-        return false;
-    }
-
-    protected function warnEscaping()
-    {
-        if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) {
-            return false;
-        }
-
-        if ($this->lexer->isNextToken(EmailLexer::GENERIC)) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-
-        if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) {
-            return false;
-        }
-
-        $this->warnings[] = EmailValidator::DEPREC_QP;
-        return true;
-
-    }
-
-    protected function checkDQUOTE($hasClosingQuote)
-    {
-        if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) {
-            return $hasClosingQuote;
-        }
-        if ($hasClosingQuote) {
-            return $hasClosingQuote;
-        }
-        $previous = $this->lexer->getPrevious();
-        if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] === EmailLexer::GENERIC) {
-            throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
-        }
-
-        $this->warnings[] = EmailValidator::RFC5321_QUOTEDSTRING;
-        try {
-            $this->lexer->find(EmailLexer::S_DQUOTE);
-            $hasClosingQuote = true;
-        } catch (\Exception $e) {
-            throw new \InvalidArgumentException('ERR_UNCLOSEDQUOTEDSTR');
-        }
-
-        return $hasClosingQuote;
-    }
-
-    protected function checkCRLFInFWS()
-    {
-        if ($this->lexer->token['type'] !== EmailLexer::CRLF) {
-            return;
-        }
-        if ($this->lexer->isNextToken(EmailLexer::CRLF)) {
-            throw new \InvalidArgumentException("ERR_FWS_CRLF_X2");
-        }
-        if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) {
-            throw new \InvalidArgumentException("ERR_FWS_CRLF_END");
-        }
-    }
-}
diff --git a/core/vendor/egulias/email-validator/tests/bootstrap.php b/core/vendor/egulias/email-validator/tests/bootstrap.php
deleted file mode 100644
index 676c4b1..0000000
--- a/core/vendor/egulias/email-validator/tests/bootstrap.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-if ( ! is_file($autoloadFile = __DIR__.'/../vendor/autoload.php')) {
-    echo 'Could not find "vendor/autoload.php". Did you forget to run "composer install --dev"?'.PHP_EOL;
-    exit(1);
-}
-
-require_once $autoloadFile;
diff --git a/core/vendor/egulias/email-validator/tests/egulias/Performance/AgainstFilterVar.php b/core/vendor/egulias/email-validator/tests/egulias/Performance/AgainstFilterVar.php
deleted file mode 100644
index 3905473..0000000
--- a/core/vendor/egulias/email-validator/tests/egulias/Performance/AgainstFilterVar.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-use Egulias\EmailValidator\EmailValidator;
-
-require __DIR__ . '/../../bootstrap.php';
-
-$iterations = 10000;
-
-$testingMail = 'fabien@symfony.com';
-echo 'Testing ' . $iterations . ' iterations with ' . $testingMail . PHP_EOL;
-
-$a = microtime(true);
-for ($i = 0; $i < $iterations; $i++) {
-    $isValid = filter_var($testingMail, FILTER_VALIDATE_EMAIL);
-}
-$b = microtime(true);
-echo ($b - $a) . ' seconds with filter_var' . PHP_EOL;
-
-$a = microtime(true);
-for ($i = 0; $i < $iterations; $i++) {
-    $validator = new EmailValidator();
-    $isValid = $validator->isValid($testingMail);
-}
-$b = microtime(true);
-echo ($b - $a) . ' seconds with EmailValidator + instantiation' . PHP_EOL;
-
-$a = microtime(true);
-$validator = new EmailValidator();
-for ($i = 0; $i < $iterations; $i++) {
-    $isValid = $validator->isValid($testingMail);
-}
-$b = microtime(true);
-echo ($b - $a) . ' seconds with EmailValidator once instanced' . PHP_EOL;
diff --git a/core/vendor/egulias/email-validator/tests/egulias/Performance/AgainstOldIsemail.php b/core/vendor/egulias/email-validator/tests/egulias/Performance/AgainstOldIsemail.php
deleted file mode 100644
index 99476c1..0000000
--- a/core/vendor/egulias/email-validator/tests/egulias/Performance/AgainstOldIsemail.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-use Egulias\EmailValidator\EmailValidator;
-
-require __DIR__ . '/../../bootstrap.php';
-require __DIR__ . '/../../../../isemail/is_email.php';
-
-$iterations = 10000;
-
-$testingMail = 'fabien@symfony.com';
-echo 'Testing ' . $iterations . ' iterations with ' . $testingMail . PHP_EOL;
-
-$a = microtime(true);
-for ($i = 0; $i < $iterations; $i++) {
-    $isValid = is_email($testingMail);
-}
-$b = microtime(true);
-echo ($b - $a) . ' seconds with is_email' . PHP_EOL;
-
-$a = microtime(true);
-for ($i = 0; $i < $iterations; $i++) {
-    $validator = new EmailValidator();
-    $isValid = $validator->isValid($testingMail);
-}
-$b = microtime(true);
-echo ($b - $a) . ' seconds with EmailValidator + instantiation' . PHP_EOL;
-
-$a = microtime(true);
-$validator = new EmailValidator();
-for ($i = 0; $i < $iterations; $i++) {
-    $isValid = $validator->isValid($testingMail);
-}
-$b = microtime(true);
-echo ($b - $a) . ' seconds with EmailValidator once instanced' . PHP_EOL;
diff --git a/core/vendor/egulias/email-validator/tests/egulias/Tests/EmailValidator/EmailLexerTest.php b/core/vendor/egulias/email-validator/tests/egulias/Tests/EmailValidator/EmailLexerTest.php
deleted file mode 100644
index d5389ef..0000000
--- a/core/vendor/egulias/email-validator/tests/egulias/Tests/EmailValidator/EmailLexerTest.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-
-namespace Egulias\EmailValidator\Tests;
-
-use Egulias\EmailValidator\EmailLexer;
-
-class EmailLexerTests extends \PHPUnit_Framework_TestCase
-{
-
-    public function testLexerExtendsLib()
-    {
-        $lexer = new EmailLexer();
-        $this->assertInstanceOf('Doctrine\Common\Lexer\AbstractLexer', $lexer);
-    }
-
-    /**
-     *  @dataProvider getTokens
-     *
-     */
-    public function testLexerTokens($str, $token)
-    {
-        $lexer = new EmailLexer();
-        $lexer->setInput($str);
-        $lexer->moveNext();
-        $lexer->moveNext();
-        $this->assertEquals($token, $lexer->token['type']);
-    }
-
-    public function testLexerParsesMultipleSpaces()
-    {
-        $lexer = new EmailLexer();
-        $lexer->setInput('  ');
-        $lexer->moveNext();
-        $lexer->moveNext();
-        $this->assertEquals(EmailLexer::S_SP, $lexer->token['type']);
-        $lexer->moveNext();
-        $this->assertEquals(EmailLexer::S_SP, $lexer->token['type']);
-    }
-
-    /**
-     * @dataProvider invalidUTF8CharsProvider
-     */
-    public function testLexerParsesInvalidUTF8($char)
-    {
-        $lexer = new EmailLexer();
-        $lexer->setInput($char);
-        $lexer->moveNext();
-        $lexer->moveNext();
-
-        $this->assertEquals(EmailLexer::INVALID, $lexer->token['type']);
-    }
-
-    public function invalidUTF8CharsProvider()
-    {
-        $chars = array();
-        for ($i = 0; $i < 0x100; ++$i) {
-            $c = $this->utf8Chr($i);
-            if (preg_match('/(?=\p{Cc})(?=[^\t\n\n\r])/u', $c) && !preg_match('/\x{0000}/u', $c)) {
-                $chars[] = array($c);
-            }
-        }
-
-        return $chars;
-    }
-
-    protected function utf8Chr($code_point)
-    {
-
-        if ($code_point < 0 || 0x10FFFF < $code_point || (0xD800 <= $code_point && $code_point <= 0xDFFF)) {
-            return '';
-        }
-
-        if ($code_point < 0x80) {
-            $hex[0] = $code_point;
-            $ret = chr($hex[0]);
-        } elseif ($code_point < 0x800) {
-            $hex[0] = 0x1C0 | $code_point >> 6;
-            $hex[1] = 0x80  | $code_point & 0x3F;
-            $ret = chr($hex[0]).chr($hex[1]);
-        } elseif ($code_point < 0x10000) {
-            $hex[0] = 0xE0 | $code_point >> 12;
-            $hex[1] = 0x80 | $code_point >> 6 & 0x3F;
-            $hex[2] = 0x80 | $code_point & 0x3F;
-            $ret = chr($hex[0]).chr($hex[1]).chr($hex[2]);
-        } else {
-            $hex[0] = 0xF0 | $code_point >> 18;
-            $hex[1] = 0x80 | $code_point >> 12 & 0x3F;
-            $hex[2] = 0x80 | $code_point >> 6 & 0x3F;
-            $hex[3] = 0x80 | $code_point  & 0x3F;
-            $ret = chr($hex[0]).chr($hex[1]).chr($hex[2]).chr($hex[3]);
-        }
-
-        return $ret;
-    }
-
-    public function testLexerForTab()
-    {
-        $lexer = new EmailLexer();
-        $lexer->setInput("foo\tbar");
-        $lexer->moveNext();
-        $lexer->skipUntil(EmailLexer::S_HTAB);
-        $lexer->moveNext();
-        $this->assertEquals(EmailLexer::S_HTAB, $lexer->token['type']);
-    }
-
-    public function testLexerForUTF8()
-    {
-        $lexer = new EmailLexer();
-        $lexer->setInput("áÇ@bar.com");
-        $lexer->moveNext();
-        $lexer->moveNext();
-        $this->assertEquals(EmailLexer::GENERIC, $lexer->token['type']);
-        $lexer->moveNext();
-        $this->assertEquals(EmailLexer::GENERIC, $lexer->token['type']);
-    }
-
-    public function testLexerSearchToken()
-    {
-        $lexer = new EmailLexer();
-        $lexer->setInput("foo\tbar");
-        $lexer->moveNext();
-        $this->assertTrue($lexer->find(EmailLexer::S_HTAB));
-    }
-
-    public function getTokens()
-    {
-        return array(
-            array("foo", EmailLexer::GENERIC),
-            array("\r", EmailLexer::S_CR),
-            array("\t", EmailLexer::S_HTAB),
-            array("\r\n", EmailLexer::CRLF),
-            array("\n", EmailLexer::S_LF),
-            array(" ", EmailLexer::S_SP),
-            array("@", EmailLexer::S_AT),
-            array("IPv6", EmailLexer::S_IPV6TAG),
-            array("::", EmailLexer::S_DOUBLECOLON),
-            array(":", EmailLexer::S_COLON),
-            array(".", EmailLexer::S_DOT),
-            array("\"", EmailLexer::S_DQUOTE),
-            array("-", EmailLexer::S_HYPHEN),
-            array("\\", EmailLexer::S_BACKSLASH),
-            array("/", EmailLexer::S_SLASH),
-            array("(", EmailLexer::S_OPENPARENTHESIS),
-            array(")", EmailLexer::S_CLOSEPARENTHESIS),
-            array('<', EmailLexer::S_LOWERTHAN),
-            array('>', EmailLexer::S_GREATERTHAN),
-            array('[', EmailLexer::S_OPENBRACKET),
-            array(']', EmailLexer::S_CLOSEBRACKET),
-            array(';', EmailLexer::S_SEMICOLON),
-            array(',', EmailLexer::S_COMMA),
-            array('<', EmailLexer::S_LOWERTHAN),
-            array('>', EmailLexer::S_GREATERTHAN),
-            array('{', EmailLexer::S_OPENQBRACKET),
-            array('}', EmailLexer::S_CLOSEQBRACKET),
-            array('',  EmailLexer::S_EMPTY),
-            array(chr(31),  EmailLexer::INVALID),
-            array(chr(226),  EmailLexer::GENERIC),
-            array(chr(0),  EmailLexer::C_NUL)
-        );
-    }
-}
diff --git a/core/vendor/egulias/email-validator/tests/egulias/Tests/EmailValidator/EmailValidatorTest.php b/core/vendor/egulias/email-validator/tests/egulias/Tests/EmailValidator/EmailValidatorTest.php
deleted file mode 100644
index 1491df7..0000000
--- a/core/vendor/egulias/email-validator/tests/egulias/Tests/EmailValidator/EmailValidatorTest.php
+++ /dev/null
@@ -1,375 +0,0 @@
-<?php
-
-namespace Egulias\Tests\EmailValidator;
-
-use Egulias\EmailValidator\EmailValidator;
-
-class EmailValidatorTest extends \PHPUnit_Framework_TestCase
-{
-    protected $validator;
-
-    protected function setUp()
-    {
-        $this->validator = new EmailValidator();
-    }
-
-    protected function tearDown()
-    {
-        $this->validator = null;
-    }
-
-    /**
-     * @dataProvider getValidEmails
-     */
-    public function testValidEmails($email)
-    {
-        $this->assertTrue($this->validator->isValid($email));
-    }
-
-    public function testInvalidUTF8Email()
-    {
-        $validator = new EmailValidator;
-        $email     = "\x80\x81\x82@\x83\x84\x85.\x86\x87\x88";
-
-        $this->assertFalse($validator->isValid($email));
-    }
-
-    public function getValidEmails()
-    {
-        return array(
-            array('â@iana.org'),
-            array('fabien@symfony.com'),
-            array('example@example.co.uk'),
-            array('fabien_potencier@example.fr'),
-            array('example@localhost'),
-            array('fab\'ien@symfony.com'),
-            array('fab\ ien@symfony.com'),
-            array('example((example))@fakedfake.co.uk'),
-            array('example@faked(fake).co.uk'),
-            array('fabien+@symfony.com'),
-            array('инфо@письмо.рф'),
-            array('"username"@example.com'),
-            array('"user,name"@example.com'),
-            array('"user name"@example.com'),
-            array('"user@name"@example.com'),
-            array('"\a"@iana.org'),
-            array('"test\ test"@iana.org'),
-            array('""@iana.org'),
-            array('"\""@iana.org'),
-            array('müller@möller.de'),
-            array('test@email*'),
-            array('test@email!'),
-            array('test@email&'),
-            array('test@email^'),
-            array('test@email%'),
-            array('test@email$'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidEmails
-     */
-    public function testInvalidEmails($email)
-    {
-        $this->assertFalse($this->validator->isValid($email));
-    }
-
-    public function getInvalidEmails()
-    {
-        return array(
-            array('test@example.com test'),
-            array('user  name@example.com'),
-            array('user   name@example.com'),
-            array('example.@example.co.uk'),
-            array('example@example@example.co.uk'),
-            array('(test_exampel@example.fr)'),
-            array('example(example)example@example.co.uk'),
-            array('.example@localhost'),
-            array('ex\ample@localhost'),
-            array('example@local\host'),
-            array('example@localhost.'),
-            array('user name@example.com'),
-            array('username@ example . com'),
-            array('example@(fake).com'),
-            array('example@(fake.com'),
-            array('username@example,com'),
-            array('usern,ame@example.com'),
-            array('user[na]me@example.com'),
-            array('"""@iana.org'),
-            array('"\"@iana.org'),
-            array('"test"test@iana.org'),
-            array('"test""test"@iana.org'),
-            array('"test"."test"@iana.org'),
-            array('"test".test@iana.org'),
-            array('"test"' . chr(0) . '@iana.org'),
-            array('"test\"@iana.org'),
-            array(chr(226) . '@iana.org'),
-            array('test@' . chr(226) . '.org'),
-            array('\r\ntest@iana.org'),
-            array('\r\n test@iana.org'),
-            array('\r\n \r\ntest@iana.org'),
-            array('\r\n \r\ntest@iana.org'),
-            array('\r\n \r\n test@iana.org'),
-            array('test@iana.org \r\n'),
-            array('test@iana.org \r\n '),
-            array('test@iana.org \r\n \r\n'),
-            array('test@iana.org \r\n\r\n'),
-            array('test@iana.org  \r\n\r\n '),
-            array('test@iana/icann.org'),
-            array('test@foo;bar.com'),
-            array('test;123@foobar.com'),
-            array('test@example..com'),
-            array('email.email@email."'),
-            array('test@email>'),
-            array('test@email<'),
-            array('test@email{'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidEmailsWithErrors
-     */
-    public function testInvalidEmailsWithErrorsCheck($errors, $email)
-    {
-        $this->assertFalse($this->validator->isValid($email));
-
-        $this->assertEquals($errors, $this->validator->getError());
-    }
-
-    public function getInvalidEmailsWithErrors()
-    {
-        return array(
-            array(EmailValidator::ERR_NOLOCALPART, '@example.co.uk'),
-            array(EmailValidator::ERR_NODOMAIN, 'example@'),
-            array(EmailValidator::ERR_DOMAINHYPHENEND, 'example@example-.co.uk'),
-            array(EmailValidator::ERR_DOMAINHYPHENEND, 'example@example-'),
-            array(EmailValidator::ERR_CONSECUTIVEATS, 'example@@example.co.uk'),
-            array(EmailValidator::ERR_CONSECUTIVEDOTS, 'example..example@example.co.uk'),
-            array(EmailValidator::ERR_CONSECUTIVEDOTS, 'example@example..co.uk'),
-            array(EmailValidator::ERR_EXPECTING_ATEXT, '<fabien_potencier>@example.fr'),
-            array(EmailValidator::ERR_DOT_START, '.example@localhost'),
-            array(EmailValidator::ERR_DOT_START, 'example@.localhost'),
-            array(EmailValidator::ERR_DOT_END, 'example@localhost.'),
-            array(EmailValidator::ERR_DOT_END, 'example.@example.co.uk'),
-            array(EmailValidator::ERR_UNCLOSEDCOMMENT, '(example@localhost'),
-            array(EmailValidator::ERR_UNCLOSEDQUOTEDSTR, '"example@localhost'),
-            array(EmailValidator::ERR_EXPECTING_ATEXT, 'exa"mple@localhost'),
-            //This was the original. But atext is not allowed after \n
-            //array(EmailValidator::ERR_EXPECTING_ATEXT, "exampl\ne@example.co.uk"),
-            array(EmailValidator::ERR_ATEXT_AFTER_CFWS, "exampl\ne@example.co.uk"),
-            array(EmailValidator::ERR_EXPECTING_DTEXT, "example@[[]"),
-            array(EmailValidator::ERR_ATEXT_AFTER_CFWS, "exampl\te@example.co.uk"),
-            array(EmailValidator::ERR_CR_NO_LF, "example@exa\rmple.co.uk"),
-            array(EmailValidator::ERR_CR_NO_LF, "example@[\r]"),
-            array(EmailValidator::ERR_CR_NO_LF, "exam\rple@example.co.uk"),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidEmailsWithWarnings
-     */
-    public function testValidEmailsWithWarningsCheck($warnings, $email)
-    {
-        $this->assertTrue($this->validator->isValid($email, true));
-
-        $this->assertEquals($warnings, $this->validator->getWarnings());
-    }
-
-    /**
-     * @dataProvider getInvalidEmailsWithWarnings
-     */
-    public function testInvalidEmailsWithDnsCheckAndStrictMode($warnings, $email)
-    {
-        $this->assertFalse($this->validator->isValid($email, true, true));
-
-        $this->assertEquals($warnings, $this->validator->getWarnings());
-    }
-
-    public function getInvalidEmailsWithWarnings()
-    {
-        return array(
-            array(
-                array(
-                    EmailValidator::DEPREC_CFWS_NEAR_AT,
-                    EmailValidator::DNSWARN_NO_RECORD
-                ),
-                'example @example.co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::DEPREC_CFWS_NEAR_AT,
-                    EmailValidator::DNSWARN_NO_RECORD
-                ),
-                'example@ example.co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::CFWS_COMMENT,
-                    EmailValidator::DNSWARN_NO_RECORD
-                ),
-                'example@example(examplecomment).co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::CFWS_COMMENT,
-                    EmailValidator::DEPREC_CFWS_NEAR_AT,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example(examplecomment)@example.co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_QUOTEDSTRING,
-                    EmailValidator::CFWS_FWS,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                "\"\t\"@example.co.uk"
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_QUOTEDSTRING,
-                    EmailValidator::CFWS_FWS,
-                    EmailValidator::DNSWARN_NO_RECORD
-                ),
-                "\"\r\"@example.co.uk"
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[127.0.0.1]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::RFC5321_IPV6DEPRECATED,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370::]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::RFC5322_IPV6_MAXGRPS,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334::]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::RFC5322_IPV6_2X2XCOLON,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6:1::1::1]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_DOMLIT_OBSDTEXT,
-                    EmailValidator::RFC5322_DOMAINLITERAL,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                "example@[\n]"
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_DOMAINLITERAL,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[::1]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_DOMAINLITERAL,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[::123.45.67.178]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_IPV6_COLONSTRT,
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::RFC5322_IPV6_GRPCOUNT,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6::2001:0db8:85a3:0000:0000:8a2e:0370:7334]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::RFC5322_IPV6_BADCHAR,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6:z001:0db8:85a3:0000:0000:8a2e:0370:7334]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_ADDRESSLITERAL,
-                    EmailValidator::RFC5322_IPV6_COLONEND,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:]'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5321_QUOTEDSTRING,
-                    EmailValidator::DNSWARN_NO_RECORD
-                ),
-                '"example"@example.co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_LOCAL_TOOLONG,
-                    EmailValidator::DNSWARN_NO_RECORD
-                ),
-                'too_long_localpart_too_long_localpart_too_long_localpart_too_long_localpart@example.co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_LABEL_TOOLONG,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@toolonglocalparttoolonglocalparttoolonglocalparttoolonglocalpart.co.uk'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_DOMAIN_TOOLONG,
-                    EmailValidator::RFC5322_TOOLONG,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@toolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocal'.
-                'parttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalpart'.
-                'toolonglocalparttoolonglocalparttoolonglocalparttoolonglocalpart'
-            ),
-            array(
-                array(
-                    EmailValidator::RFC5322_DOMAIN_TOOLONG,
-                    EmailValidator::RFC5322_TOOLONG,
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'example@toolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocal'.
-                'parttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalparttoolonglocalpart'.
-                'toolonglocalparttoolonglocalparttoolonglocalparttoolonglocalpar'
-            ),
-            array(
-                array(
-                    EmailValidator::DNSWARN_NO_RECORD,
-                ),
-                'test@test'
-            ),
-        );
-    }
-
-    public function testInvalidEmailsWithStrict()
-    {
-        $this->assertFalse($this->validator->isValid('"test"@test', false, true));
-    }
-}
diff --git a/core/vendor/fabpot/goutte/.gitignore b/core/vendor/fabpot/goutte/.gitignore
deleted file mode 100644
index 81b9258..0000000
--- a/core/vendor/fabpot/goutte/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-composer.lock
-phpunit.xml
-vendor
diff --git a/core/vendor/fabpot/goutte/.travis.yml b/core/vendor/fabpot/goutte/.travis.yml
deleted file mode 100644
index 26a4ed1..0000000
--- a/core/vendor/fabpot/goutte/.travis.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-language: php
-
-php:
-    - 7.0
-    - 5.6
-    - 5.5
-    - hhvm
-
-install:
-    - travis_retry composer install --no-interaction --prefer-source
-
-script:
-    - phpunit
-
-matrix:
-    allow_failures:
-        - php: hhvm
-        - php: 7.0
diff --git a/core/vendor/fabpot/goutte/Goutte/Client.php b/core/vendor/fabpot/goutte/Goutte/Client.php
deleted file mode 100644
index 609595d..0000000
--- a/core/vendor/fabpot/goutte/Goutte/Client.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-
-/*
- * This file is part of the Goutte package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Goutte;
-
-use GuzzleHttp\Client as GuzzleClient;
-use GuzzleHttp\ClientInterface as GuzzleClientInterface;
-use GuzzleHttp\Cookie\CookieJar;
-use GuzzleHttp\Exception\RequestException;
-use Psr\Http\Message\ResponseInterface;
-use Symfony\Component\BrowserKit\Client as BaseClient;
-use Symfony\Component\BrowserKit\Response;
-
-/**
- * Client.
- *
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- * @author Michael Dowling <michael@guzzlephp.org>
- * @author Charles Sarrazin <charles@sarraz.in>
- */
-class Client extends BaseClient
-{
-    protected $client;
-
-    private $headers = array();
-    private $auth = null;
-
-    public function setClient(GuzzleClientInterface $client)
-    {
-        $this->client = $client;
-
-        return $this;
-    }
-
-    public function getClient()
-    {
-        if (!$this->client) {
-            $this->client = new GuzzleClient(array('defaults' => array('allow_redirects' => false, 'cookies' => true)));
-        }
-
-        return $this->client;
-    }
-
-    public function setHeader($name, $value)
-    {
-        $this->headers[$name] = $value;
-
-        return $this;
-    }
-
-    public function removeHeader($name)
-    {
-        unset($this->headers[$name]);
-    }
-
-    public function setAuth($user, $password = '', $type = 'basic')
-    {
-        $this->auth = array($user, $password, $type);
-
-        return $this;
-    }
-
-    public function resetAuth()
-    {
-        $this->auth = null;
-
-        return $this;
-    }
-
-    protected function doRequest($request)
-    {
-        $headers = array();
-        foreach ($request->getServer() as $key => $val) {
-            $key = strtolower(str_replace('_', '-', $key));
-            $contentHeaders = array('content-length' => true, 'content-md5' => true, 'content-type' => true);
-            if (0 === strpos($key, 'http-')) {
-                $headers[substr($key, 5)] = $val;
-            }
-            // CONTENT_* are not prefixed with HTTP_
-            elseif (isset($contentHeaders[$key])) {
-                $headers[$key] = $val;
-            }
-        }
-
-        $cookies = CookieJar::fromArray(
-            $this->getCookieJar()->allRawValues($request->getUri()),
-            $request->getServer()['HTTP_HOST']
-        );
-
-        $requestOptions = array(
-            'cookies' => $cookies,
-            'allow_redirects' => false,
-            'auth' => $this->auth,
-        );
-
-        if (!in_array($request->getMethod(), array('GET', 'HEAD'))) {
-            if (null !== $content = $request->getContent()) {
-                $requestOptions['body'] = $content;
-            } else {
-                if ($files = $request->getFiles()) {
-                    $requestOptions['multipart'] = [];
-
-                    $this->addPostFields($request->getParameters(), $requestOptions['multipart']);
-                    $this->addPostFiles($files, $requestOptions['multipart']);
-                } else {
-                    $requestOptions['form_params'] = $request->getParameters();
-                }
-            }
-        }
-
-        if (!empty($headers)) {
-            $requestOptions['headers'] = $headers;
-        }
-
-        $method = $request->getMethod();
-        $uri = $request->getUri();
-
-        foreach ($this->headers as $name => $value) {
-            $requestOptions['headers'][$name] = $value;
-        }
-
-        // Let BrowserKit handle redirects
-        try {
-            $response = $this->getClient()->request($method, $uri, $requestOptions);
-        } catch (RequestException $e) {
-            $response = $e->getResponse();
-            if (null === $response) {
-                throw $e;
-            }
-        }
-
-        return $this->createResponse($response);
-    }
-
-    protected function addPostFiles(array $files, array &$multipart, $arrayName = '')
-    {
-        if (empty($files)) {
-            return;
-        }
-
-        foreach ($files as $name => $info) {
-            if (!empty($arrayName)) {
-                $name = $arrayName.'['.$name.']';
-            }
-
-            $file = [
-                'name' => $name,
-            ];
-
-            if (is_array($info)) {
-                if (isset($info['tmp_name'])) {
-                    if ('' !== $info['tmp_name']) {
-                        $file['contents'] = fopen($info['tmp_name'], 'r');
-                        if (isset($info['name'])) {
-                            $file['filename'] = $info['name'];
-                        }
-                    } else {
-                        continue;
-                    }
-                } else {
-                    $this->addPostFiles($info, $multipart, $name);
-                    continue;
-                }
-            } else {
-                $file['contents'] = fopen($info, 'r');
-            }
-
-            $multipart[] = $file;
-        }
-    }
-
-    public function addPostFields(array $formParams, array &$multipart, $arrayName = '')
-    {
-        foreach ($formParams as $name => $value) {
-            if (!empty($arrayName)) {
-                $name = $arrayName.'['.$name.']';
-            }
-
-            if (is_array($value)) {
-                $this->addPostFields($value, $multipart, $name);
-            } else {
-                $multipart[] = [
-                    'name' => $name,
-                    'contents' => $value,
-                ];
-            }
-        }
-    }
-
-    protected function createResponse(ResponseInterface $response)
-    {
-        return new Response((string) $response->getBody(), $response->getStatusCode(), $response->getHeaders());
-    }
-}
diff --git a/core/vendor/fabpot/goutte/Goutte/Resources/phar-stub.php b/core/vendor/fabpot/goutte/Goutte/Resources/phar-stub.php
deleted file mode 100644
index b9c3b44..0000000
--- a/core/vendor/fabpot/goutte/Goutte/Resources/phar-stub.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/*
- * This file is part of the Goutte utility.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
-
-require_once 'phar://'.__FILE__.'/vendor/autoload.php';
-
-__HALT_COMPILER();
diff --git a/core/vendor/fabpot/goutte/Goutte/Tests/ClientTest.php b/core/vendor/fabpot/goutte/Goutte/Tests/ClientTest.php
deleted file mode 100644
index f10d8fb..0000000
--- a/core/vendor/fabpot/goutte/Goutte/Tests/ClientTest.php
+++ /dev/null
@@ -1,364 +0,0 @@
-<?php
-
-/*
- * This file is part of the Goutte package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Goutte\Tests;
-
-use Goutte\Client;
-use GuzzleHttp\Client as GuzzleClient;
-use GuzzleHttp\Exception\RequestException;
-use GuzzleHttp\Handler\MockHandler;
-use GuzzleHttp\HandlerStack;
-use GuzzleHttp\Psr7\Response as GuzzleResponse;
-use GuzzleHttp\Middleware;
-use Symfony\Component\BrowserKit\Cookie;
-
-/**
- * Goutte Client Test.
- *
- * @author Michael Dowling <michael@guzzlephp.org>
- * @author Charles Sarrazin <charles@sarraz.in>
- */
-class ClientTest extends \PHPUnit_Framework_TestCase
-{
-    protected $history;
-    /** @var MockHandler */
-    protected $mock;
-
-    protected function getGuzzle(array $responses = [])
-    {
-        if (empty($responses)) {
-            $responses = [new GuzzleResponse(200, [], '<html><body><p>Hi</p></body></html>')];
-        }
-        $this->mock = new MockHandler($responses);
-        $handlerStack = HandlerStack::create($this->mock);
-        $this->history = [];
-        $handlerStack->push(Middleware::history($this->history));
-        $guzzle = new GuzzleClient(array('redirect.disable' => true, 'base_uri' => '', 'handler' => $handlerStack));
-
-        return $guzzle;
-    }
-
-    public function testCreatesDefaultClient()
-    {
-        $client = new Client();
-        $this->assertInstanceOf('GuzzleHttp\\ClientInterface', $client->getClient());
-    }
-
-    public function testUsesCustomClient()
-    {
-        $guzzle = new GuzzleClient();
-        $client = new Client();
-        $this->assertSame($client, $client->setClient($guzzle));
-        $this->assertSame($guzzle, $client->getClient());
-    }
-
-    public function testUsesCustomHeaders()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->setHeader('X-Test', 'test');
-        $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals('test', end($this->history)['request']->getHeaderLine('X-Test'));
-    }
-
-    public function testCustomUserAgent()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->setHeader('User-Agent', 'foo');
-        $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals('Symfony2 BrowserKit, foo', end($this->history)['request']->getHeaderLine('User-Agent'));
-    }
-
-    public function testUsesAuth()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->setAuth('me', '**');
-        $client->request('GET', 'http://www.example.com/');
-        $request = end($this->history)['request'];
-        $this->assertEquals('Basic bWU6Kio=', $request->getHeaderLine('Authorization'));
-    }
-
-    public function testResetsAuth()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->setAuth('me', '**');
-        $client->resetAuth();
-        $client->request('GET', 'http://www.example.com/');
-        $request = end($this->history)['request'];
-        $this->assertEquals('', $request->getHeaderLine('authorization'));
-    }
-
-    public function testUsesCookies()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->getCookieJar()->set(new Cookie('test', '123'));
-        $client->request('GET', 'http://www.example.com/');
-        $request = end($this->history)['request'];
-        $this->assertEquals('test=123', $request->getHeaderLine('Cookie'));
-    }
-
-    public function testUsesPostFiles()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'test' => array(
-                'name' => 'test.txt',
-                'tmp_name' => __DIR__.'/fixtures.txt',
-            ),
-        );
-
-        $client->request('POST', 'http://www.example.com/', array(), $files);
-        $request = end($this->history)['request'];
-
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-        $this->assertEquals(
-            "--$boundary\r\nContent-Disposition: form-data; name=\"test\"; filename=\"test.txt\"\r\nContent-Length: 4\r\n"
-            ."Content-Type: text/plain\r\n\r\nfoo\n\r\n--$boundary--\r\n",
-            $stream->getContents()
-        );
-    }
-
-    public function testUsesPostNamedFiles()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'test' => __DIR__.'/fixtures.txt',
-        );
-
-        $client->request('POST', 'http://www.example.com/', array(), $files);
-        $request = end($this->history)['request'];
-
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-        $this->assertEquals(
-            "--$boundary\r\nContent-Disposition: form-data; name=\"test\"; filename=\"fixtures.txt\"\r\nContent-Length: 4\r\n"
-            ."Content-Type: text/plain\r\n\r\nfoo\n\r\n--$boundary--\r\n",
-            $stream->getContents()
-        );
-    }
-
-    public function testUsesPostFilesNestedFields()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'form' => array(
-                'test' => array(
-                    'name' => 'test.txt',
-                    'tmp_name' => __DIR__.'/fixtures.txt',
-                ),
-            ),
-        );
-
-        $client->request('POST', 'http://www.example.com/', array(), $files);
-        $request = end($this->history)['request'];
-
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-        $this->assertEquals(
-            "--$boundary\r\nContent-Disposition: form-data; name=\"form[test]\"; filename=\"test.txt\"\r\nContent-Length: 4\r\n"
-            ."Content-Type: text/plain\r\n\r\nfoo\n\r\n--$boundary--\r\n",
-            $stream->getContents()
-        );
-    }
-
-    public function testPostFormWithFiles()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'test' => __DIR__.'/fixtures.txt',
-        );
-        $params = array(
-            'foo' => 'bar',
-        );
-
-        $client->request('POST', 'http://www.example.com/', $params, $files);
-        $request = end($this->history)['request'];
-
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-        $this->assertEquals(
-            "--$boundary\r\nContent-Disposition: form-data; name=\"foo\"\r\nContent-Length: 3\r\n"
-            ."\r\nbar\r\n"
-            ."--$boundary\r\nContent-Disposition: form-data; name=\"test\"; filename=\"fixtures.txt\"\r\nContent-Length: 4\r\n"
-            ."Content-Type: text/plain\r\n\r\nfoo\n\r\n--$boundary--\r\n",
-        $stream->getContents());
-    }
-
-    public function testPostEmbeddedFormWithFiles()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'test' => __DIR__.'/fixtures.txt',
-        );
-        $params = array(
-            'foo' => array(
-                'bar' => 'baz',
-            ),
-        );
-
-        $client->request('POST', 'http://www.example.com/', $params, $files);
-        $request = end($this->history)['request'];
-
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-        $this->assertEquals(
-            "--$boundary\r\nContent-Disposition: form-data; name=\"foo[bar]\"\r\nContent-Length: 3\r\n"
-            ."\r\nbaz\r\n"
-            ."--$boundary\r\nContent-Disposition: form-data; name=\"test\"; filename=\"fixtures.txt\"\r\nContent-Length: 4\r\n"
-            ."Content-Type: text/plain\r\n\r\nfoo\n\r\n--$boundary--\r\n",
-        $stream->getContents());
-    }
-
-    public function testUsesPostFilesOnClientSide()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'test' => __DIR__.'/fixtures.txt',
-        );
-
-        $client->request('POST', 'http://www.example.com/', array(), $files);
-        $request = end($this->history)['request'];
-
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-        $this->assertEquals(
-            "--$boundary\r\nContent-Disposition: form-data; name=\"test\"; filename=\"fixtures.txt\"\r\nContent-Length: 4\r\n"
-            ."Content-Type: text/plain\r\n\r\nfoo\n\r\n--$boundary--\r\n",
-            $stream->getContents()
-        );
-    }
-
-    public function testUsesPostFilesUploadError()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $files = array(
-            'test' => array(
-                'name' => '',
-                'type' => '',
-                'tmp_name' => '',
-                'error' => 4,
-                'size' => 0,
-            ),
-        );
-
-        $client->request('POST', 'http://www.example.com/', array(), $files);
-        $request = end($this->history)['request'];
-        $stream = $request->getBody();
-        $boundary = $stream->getBoundary();
-
-        $this->assertEquals("--$boundary--\r\n", $stream->getContents());
-    }
-
-    public function testCreatesResponse()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client();
-        $client->setClient($guzzle);
-        $crawler = $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals('Hi', $crawler->filter('p')->text());
-    }
-
-    public function testHandlesRedirectsCorrectly()
-    {
-        $guzzle = $this->getGuzzle([
-            new GuzzleResponse(301, array(
-                'Location' => 'http://www.example.com/',
-            )),
-            new GuzzleResponse(200, [], '<html><body><p>Test</p></body></html>'),
-        ]);
-
-        $client = new Client();
-        $client->setClient($guzzle);
-
-        $crawler = $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals('Test', $crawler->filter('p')->text());
-
-        // Ensure that two requests were sent
-        $this->assertEquals(2, count($this->history));
-    }
-
-    public function testConvertsGuzzleHeadersToArrays()
-    {
-        $guzzle = $this->getGuzzle([
-            new GuzzleResponse(200, array(
-                'Date' => 'Tue, 04 Jun 2013 13:22:41 GMT',
-            )),
-        ]);
-
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->request('GET', 'http://www.example.com/');
-        $response = $client->getResponse();
-        $headers = $response->getHeaders();
-
-        $this->assertInternalType('array', array_shift($headers), 'Header not converted from Guzzle\Http\Message\Header to array');
-    }
-
-    public function testNullResponseException()
-    {
-        $this->setExpectedException('GuzzleHttp\Exception\RequestException');
-        $guzzle = $this->getGuzzle([
-            new RequestException('', $this->getMock('Psr\Http\Message\RequestInterface')),
-        ]);
-        $client = new Client();
-        $client->setClient($guzzle);
-        $client->request('GET', 'http://www.example.com/');
-        $client->getResponse();
-    }
-
-    public function testHttps()
-    {
-        $guzzle = $this->getGuzzle([
-            new GuzzleResponse(200, [], '<html><body><p>Test</p></body></html>'),
-        ]);
-
-        $client = new Client();
-        $client->setClient($guzzle);
-        $crawler = $client->request('GET', 'https://www.example.com/');
-        $this->assertEquals('Test', $crawler->filter('p')->text());
-    }
-
-    public function testCustomUserAgentConstructor()
-    {
-        $guzzle = $this->getGuzzle();
-        $client = new Client([
-          'HTTP_HOST' => '1.2.3.4',
-          'HTTP_USER_AGENT' => 'SomeHost',
-        ]);
-        $client->setClient($guzzle);
-        $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals('SomeHost', end($this->history)['request']->getHeaderLine('User-Agent'));
-    }
-}
diff --git a/core/vendor/fabpot/goutte/Goutte/Tests/fixtures.txt b/core/vendor/fabpot/goutte/Goutte/Tests/fixtures.txt
deleted file mode 100644
index 257cc56..0000000
--- a/core/vendor/fabpot/goutte/Goutte/Tests/fixtures.txt
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/core/vendor/fabpot/goutte/LICENSE b/core/vendor/fabpot/goutte/LICENSE
deleted file mode 100644
index ff727f4..0000000
--- a/core/vendor/fabpot/goutte/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2010-2013 Fabien Potencier
-
-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/core/vendor/fabpot/goutte/README.rst b/core/vendor/fabpot/goutte/README.rst
deleted file mode 100644
index c1ade39..0000000
--- a/core/vendor/fabpot/goutte/README.rst
+++ /dev/null
@@ -1,124 +0,0 @@
-Goutte, a simple PHP Web Scraper
-================================
-
-Goutte is a screen scraping and web crawling library for PHP.
-
-Goutte provides a nice API to crawl websites and extract data from the HTML/XML
-responses.
-
-Requirements
-------------
-
-Goutte depends on PHP 5.5+ and Guzzle 6+.
-
-.. tip::
-
-    If you need support for PHP 5.4 or Guzzle 4-5, use Goutte 2.x.
-    If you need support for PHP 5.3 or Guzzle 3, use Goutte 1.x.
-
-Installation
-------------
-
-Add ``fabpot/goutte`` as a require dependency in your ``composer.json`` file:
-
-.. code-block:: bash
-
-    composer require fabpot/goutte
-
-.. tip::
-
-    You can also download the `Goutte.phar`_ file:
-
-    .. code-block:: php
-
-        require_once '/path/to/goutte.phar';
-
-    The phars for Goutte 1.x are also available for `download
-    <http://get.sensiolabs.org/goutte-v1.0.7.phar>`.
-
-Usage
------
-
-Create a Goutte Client instance (which extends
-``Symfony\Component\BrowserKit\Client``):
-
-.. code-block:: php
-
-    use Goutte\Client;
-
-    $client = new Client();
-
-Make requests with the ``request()`` method:
-
-.. code-block:: php
-
-    // Go to the symfony.com website
-    $crawler = $client->request('GET', 'http://www.symfony.com/blog/');
-
-The method returns a ``Crawler`` object
-(``Symfony\Component\DomCrawler\Crawler``).
-
-Fine-tune cURL options:
-
-.. code-block:: php
-
-    $client->getClient()->setDefaultOption('config/curl/'.CURLOPT_TIMEOUT, 60);
-
-Click on links:
-
-.. code-block:: php
-
-    // Click on the "Security Advisories" link
-    $link = $crawler->selectLink('Security Advisories')->link();
-    $crawler = $client->click($link);
-
-Extract data:
-
-.. code-block:: php
-
-    // Get the latest post in this category and display the titles
-    $crawler->filter('h2 > a')->each(function ($node) {
-        print $node->text()."\n";
-    });
-
-Submit forms:
-
-.. code-block:: php
-
-    $crawler = $client->request('GET', 'http://github.com/');
-    $crawler = $client->click($crawler->selectLink('Sign in')->link());
-    $form = $crawler->selectButton('Sign in')->form();
-    $crawler = $client->submit($form, array('login' => 'fabpot', 'password' => 'xxxxxx'));
-    $crawler->filter('.flash-error')->each(function ($node) {
-        print $node->text()."\n";
-    });
-
-More Information
-----------------
-
-Read the documentation of the BrowserKit and `DomCrawler
-<http://symfony.com/doc/any/components/dom_crawler.html>`_ Symfony Components
-for more information about what you can do with Goutte.
-
-Pronunciation
--------------
-
-Goutte is pronounced ``goot`` i.e. it rhymes with ``boot`` and not ``out``.
-
-Technical Information
----------------------
-
-Goutte is a thin wrapper around the following fine PHP libraries:
-
-* Symfony Components: BrowserKit, CssSelector and DomCrawler;
-
-*  `Guzzle`_ HTTP Component.
-
-License
--------
-
-Goutte is licensed under the MIT license.
-
-.. _`Composer`:    http://getcomposer.org
-.. _`Goutte.phar`: http://get.sensiolabs.org/goutte.phar
-.. _`Guzzle`:      http://docs.guzzlephp.org
diff --git a/core/vendor/fabpot/goutte/box.json b/core/vendor/fabpot/goutte/box.json
deleted file mode 100644
index 943c61e..0000000
--- a/core/vendor/fabpot/goutte/box.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "output": "goutte.phar",
-    "chmod": "0755",
-    "compactors": [
-        "Herrera\\Box\\Compactor\\Php"
-    ],
-    "extract": false,
-    "files": [
-        "LICENSE",
-        "Goutte/Client.php"
-    ],
-    "finder": [
-        {
-            "name": ["*.php", "*.pem*"],
-            "exclude": ["Tests", "tests"],
-            "in": "vendor"
-        }
-    ],
-    "stub": "Goutte/Resources/phar-stub.php",
-    "web": false
-}
diff --git a/core/vendor/fabpot/goutte/composer.json b/core/vendor/fabpot/goutte/composer.json
deleted file mode 100644
index 1a0ed82..0000000
--- a/core/vendor/fabpot/goutte/composer.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-    "name": "fabpot/goutte",
-    "type": "application",
-    "description": "A simple PHP Web Scraper",
-    "keywords": ["scraper"],
-    "homepage": "https://github.com/FriendsOfPHP/Goutte",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        }
-    ],
-    "require": {
-        "php": ">=5.5.0",
-        "symfony/browser-kit": "~2.1",
-        "symfony/css-selector": "~2.1",
-        "symfony/dom-crawler": "~2.1",
-        "guzzlehttp/guzzle": "^6.0"
-    },
-    "autoload": {
-        "psr-4": { "Goutte\\": "Goutte" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "3.1-dev"
-        }
-    }
-}
diff --git a/core/vendor/fabpot/goutte/phpunit.xml.dist b/core/vendor/fabpot/goutte/phpunit.xml.dist
deleted file mode 100644
index 9e7ff98..0000000
--- a/core/vendor/fabpot/goutte/phpunit.xml.dist
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="./vendor/autoload.php">
-    <testsuites>
-        <testsuite name="Goutte Test Suite">
-            <directory>./Goutte/Tests</directory>
-        </testsuite>
-    </testsuites>
-</phpunit>
diff --git a/core/vendor/guzzlehttp/guzzle/.travis.yml b/core/vendor/guzzlehttp/guzzle/.travis.yml
deleted file mode 100644
index c0689d1..0000000
--- a/core/vendor/guzzlehttp/guzzle/.travis.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-language: php
-
-php:
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-before_script:
-  - curl --version
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-  - ~/.nvm/nvm.sh install v0.6.14
-  - ~/.nvm/nvm.sh run v0.6.14
-
-script: make test
-
-matrix:
-  allow_failures:
-    - php: hhvm
-    - php: 7.0
-  fast_finish: true
-
-before_deploy:
-  - make package
-
-deploy:
-  provider: releases
-  api_key:
-    secure: UpypqlYgsU68QT/x40YzhHXvzWjFwCNo9d+G8KAdm7U9+blFfcWhV1aMdzugvPMl6woXgvJj7qHq5tAL4v6oswCORhpSBfLgOQVFaica5LiHsvWlAedOhxGmnJqMTwuepjBCxXhs3+I8Kof1n4oUL9gKytXjOVCX/f7XU1HiinU=
-  file:
-    - build/artifacts/guzzle.phar
-    - build/artifacts/guzzle.zip
-  on:
-    repo: guzzle/guzzle
-    tags: true
-    all_branches: true
-    php: 5.5
diff --git a/core/vendor/guzzlehttp/guzzle/CHANGELOG.md b/core/vendor/guzzlehttp/guzzle/CHANGELOG.md
deleted file mode 100644
index d639f4e..0000000
--- a/core/vendor/guzzlehttp/guzzle/CHANGELOG.md
+++ /dev/null
@@ -1,1154 +0,0 @@
-# CHANGELOG
-
-## 6.0.2 - 2015-07-04
-
-* Fixed a memory leak in the curl handlers in which references to callbacks
-  were not being removed by `curl_reset`.
-* Cookies are now extracted properly before redirects.
-* Cookies now allow more character ranges.
-* Decoded Content-Encoding responses are now modified to correctly reflect
-  their state if the encoding was automatically removed by a handler. This
-  means that the `Content-Encoding` header may be removed an the
-  `Content-Length` modified to reflect the message size after removing the
-  encoding.
-* Added a more explicit error message when trying to use `form_params` and
-  `multipart` in the same request.
-* Several fixes for HHVM support.
-* Functions are now conditionally required using an additional level of
-  indirection to help with global Composer installations.
-
-## 6.0.1 - 2015-05-27
-
-* Fixed a bug with serializing the `query` request option where the `&`
-  separator was missing.
-* Added a better error message for when `body` is provided as an array. Please
-  use `form_params` or `multipart` instead.
-* Various doc fixes.
-
-## 6.0.0 - 2015-05-26
-
-* See the UPGRADING.md document for more information.
-* Added `multipart` and `form_params` request options.
-* Added `synchronous` request option.
-* Added the `on_headers` request option.
-* Fixed `expect` handling.
-* No longer adding default middlewares in the client ctor. These need to be
-  present on the provided handler in order to work.
-* Requests are no longer initiated when sending async requests with the
-  CurlMultiHandler. This prevents unexpected recursion from requests completing
-  while ticking the cURL loop.
-* Removed the semantics of setting `default` to `true`. This is no longer
-  required now that the cURL loop is not ticked for async requests.
-* Added request and response logging middleware.
-* No longer allowing self signed certificates when using the StreamHandler.
-* Ensuring that `sink` is valid if saving to a file.
-* Request exceptions now include a "handler context" which provides handler
-  specific contextual information.
-* Added `GuzzleHttp\RequestOptions` to allow request options to be applied
-  using constants.
-* `$maxHandles` has been removed from CurlMultiHandler.
-* `MultipartPostBody` is now part of the `guzzlehttp/psr7` package.
-
-## 5.3.0 - 2015-05-19
-
-* Mock now supports `save_to`
-* Marked `AbstractRequestEvent::getTransaction()` as public.
-* Fixed a bug in which multiple headers using different casing would overwrite
-  previous headers in the associative array.
-* Added `Utils::getDefaultHandler()`
-* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated.
-* URL scheme is now always lowercased.
-
-## 6.0.0-beta.1
-
-* Requires PHP >= 5.5
-* Updated to use PSR-7
-  * Requires immutable messages, which basically means an event based system
-    owned by a request instance is no longer possible.
-  * Utilizing the [Guzzle PSR-7 package](https://github.com/guzzle/psr7).
-  * Removed the dependency on `guzzlehttp/streams`. These stream abstractions
-    are available in the `guzzlehttp/psr7` package under the `GuzzleHttp\Psr7`
-    namespace.
-* Added middleware and handler system
-  * Replaced the Guzzle event and subscriber system with a middleware system.
-  * No longer depends on RingPHP, but rather places the HTTP handlers directly
-    in Guzzle, operating on PSR-7 messages.
-  * Retry logic is now encapsulated in `GuzzleHttp\Middleware::retry`, which
-    means the `guzzlehttp/retry-subscriber` is now obsolete.
-  * Mocking responses is now handled using `GuzzleHttp\Handler\MockHandler`.
-* Asynchronous responses
-  * No longer supports the `future` request option to send an async request.
-    Instead, use one of the `*Async` methods of a client (e.g., `requestAsync`,
-    `getAsync`, etc.).
-  * Utilizing `GuzzleHttp\Promise` instead of React's promise library to avoid
-    recursion required by chaining and forwarding react promises. See
-    https://github.com/guzzle/promises
-  * Added `requestAsync` and `sendAsync` to send request asynchronously.
-  * Added magic methods for `getAsync()`, `postAsync()`, etc. to send requests
-    asynchronously.
-* Request options
-  * POST and form updates
-    * Added the `form_fields` and `form_files` request options.
-    * Removed the `GuzzleHttp\Post` namespace.
-    * The `body` request option no longer accepts an array for POST requests.
-  * The `exceptions` request option has been deprecated in favor of the
-    `http_errors` request options.
-  * The `save_to` request option has been deprecated in favor of `sink` request
-    option.
-* Clients no longer accept an array of URI template string and variables for
-  URI variables. You will need to expand URI templates before passing them
-  into a client constructor or request method.
-* Client methods `get()`, `post()`, `put()`, `patch()`, `options()`, etc. are
-  now magic methods that will send synchronous requests.
-* Replaced `Utils.php` with plain functions in `functions.php`.
-* Removed `GuzzleHttp\Collection`.
-* Removed `GuzzleHttp\BatchResults`. Batched pool results are now returned as
-  an array.
-* Removed `GuzzleHttp\Query`. Query string handling is now handled using an
-  associative array passed into the `query` request option. The query string
-  is serialized using PHP's `http_build_query`. If you need more control, you
-  can pass the query string in as a string.
-* `GuzzleHttp\QueryParser` has been replaced with the
-  `GuzzleHttp\Psr7\parse_query`.
-
-## 5.2.0 - 2015-01-27
-
-* Added `AppliesHeadersInterface` to make applying headers to a request based
-  on the body more generic and not specific to `PostBodyInterface`.
-* Reduced the number of stack frames needed to send requests.
-* Nested futures are now resolved in the client rather than the RequestFsm
-* Finishing state transitions is now handled in the RequestFsm rather than the
-  RingBridge.
-* Added a guard in the Pool class to not use recursion for request retries.
-
-## 5.1.0 - 2014-12-19
-
-* Pool class no longer uses recursion when a request is intercepted.
-* The size of a Pool can now be dynamically adjusted using a callback.
-  See https://github.com/guzzle/guzzle/pull/943.
-* Setting a request option to `null` when creating a request with a client will
-  ensure that the option is not set. This allows you to overwrite default
-  request options on a per-request basis.
-  See https://github.com/guzzle/guzzle/pull/937.
-* Added the ability to limit which protocols are allowed for redirects by
-  specifying a `protocols` array in the `allow_redirects` request option.
-* Nested futures due to retries are now resolved when waiting for synchronous
-  responses. See https://github.com/guzzle/guzzle/pull/947.
-* `"0"` is now an allowed URI path. See
-  https://github.com/guzzle/guzzle/pull/935.
-* `Query` no longer typehints on the `$query` argument in the constructor,
-  allowing for strings and arrays.
-* Exceptions thrown in the `end` event are now correctly wrapped with Guzzle
-  specific exceptions if necessary.
-
-## 5.0.3 - 2014-11-03
-
-This change updates query strings so that they are treated as un-encoded values
-by default where the value represents an un-encoded value to send over the
-wire. A Query object then encodes the value before sending over the wire. This
-means that even value query string values (e.g., ":") are url encoded. This
-makes the Query class match PHP's http_build_query function. However, if you
-want to send requests over the wire using valid query string characters that do
-not need to be encoded, then you can provide a string to Url::setQuery() and
-pass true as the second argument to specify that the query string is a raw
-string that should not be parsed or encoded (unless a call to getQuery() is
-subsequently made, forcing the query-string to be converted into a Query
-object).
-
-## 5.0.2 - 2014-10-30
-
-* Added a trailing `\r\n` to multipart/form-data payloads. See
-  https://github.com/guzzle/guzzle/pull/871
-* Added a `GuzzleHttp\Pool::send()` convenience method to match the docs.
-* Status codes are now returned as integers. See
-  https://github.com/guzzle/guzzle/issues/881
-* No longer overwriting an existing `application/x-www-form-urlencoded` header
-  when sending POST requests, allowing for customized headers. See
-  https://github.com/guzzle/guzzle/issues/877
-* Improved path URL serialization.
-
-  * No longer double percent-encoding characters in the path or query string if
-    they are already encoded.
-  * Now properly encoding the supplied path to a URL object, instead of only
-    encoding ' ' and '?'.
-  * Note: This has been changed in 5.0.3 to now encode query string values by
-    default unless the `rawString` argument is provided when setting the query
-    string on a URL: Now allowing many more characters to be present in the
-    query string without being percent encoded. See http://tools.ietf.org/html/rfc3986#appendix-A
-
-## 5.0.1 - 2014-10-16
-
-Bugfix release.
-
-* Fixed an issue where connection errors still returned response object in
-  error and end events event though the response is unusable. This has been
-  corrected so that a response is not returned in the `getResponse` method of
-  these events if the response did not complete. https://github.com/guzzle/guzzle/issues/867
-* Fixed an issue where transfer statistics were not being populated in the
-  RingBridge. https://github.com/guzzle/guzzle/issues/866
-
-## 5.0.0 - 2014-10-12
-
-Adding support for non-blocking responses and some minor API cleanup.
-
-### New Features
-
-* Added support for non-blocking responses based on `guzzlehttp/guzzle-ring`.
-* Added a public API for creating a default HTTP adapter.
-* Updated the redirect plugin to be non-blocking so that redirects are sent
-  concurrently. Other plugins like this can now be updated to be non-blocking.
-* Added a "progress" event so that you can get upload and download progress
-  events.
-* Added `GuzzleHttp\Pool` which implements FutureInterface and transfers
-  requests concurrently using a capped pool size as efficiently as possible.
-* Added `hasListeners()` to EmitterInterface.
-* Removed `GuzzleHttp\ClientInterface::sendAll` and marked
-  `GuzzleHttp\Client::sendAll` as deprecated (it's still there, just not the
-  recommended way).
-
-### Breaking changes
-
-The breaking changes in this release are relatively minor. The biggest thing to
-look out for is that request and response objects no longer implement fluent
-interfaces.
-
-* Removed the fluent interfaces (i.e., `return $this`) from requests,
-  responses, `GuzzleHttp\Collection`, `GuzzleHttp\Url`,
-  `GuzzleHttp\Query`, `GuzzleHttp\Post\PostBody`, and
-  `GuzzleHttp\Cookie\SetCookie`. This blog post provides a good outline of
-  why I did this: http://ocramius.github.io/blog/fluent-interfaces-are-evil/.
-  This also makes the Guzzle message interfaces compatible with the current
-  PSR-7 message proposal.
-* Removed "functions.php", so that Guzzle is truly PSR-4 compliant. Except
-  for the HTTP request functions from function.php, these functions are now
-  implemented in `GuzzleHttp\Utils` using camelCase. `GuzzleHttp\json_decode`
-  moved to `GuzzleHttp\Utils::jsonDecode`. `GuzzleHttp\get_path` moved to
-  `GuzzleHttp\Utils::getPath`. `GuzzleHttp\set_path` moved to
-  `GuzzleHttp\Utils::setPath`. `GuzzleHttp\batch` should now be
-  `GuzzleHttp\Pool::batch`, which returns an `objectStorage`. Using functions.php
-  caused problems for many users: they aren't PSR-4 compliant, require an
-  explicit include, and needed an if-guard to ensure that the functions are not
-  declared multiple times.
-* Rewrote adapter layer.
-    * Removing all classes from `GuzzleHttp\Adapter`, these are now
-      implemented as callables that are stored in `GuzzleHttp\Ring\Client`.
-    * Removed the concept of "parallel adapters". Sending requests serially or
-      concurrently is now handled using a single adapter.
-    * Moved `GuzzleHttp\Adapter\Transaction` to `GuzzleHttp\Transaction`. The
-      Transaction object now exposes the request, response, and client as public
-      properties. The getters and setters have been removed.
-* Removed the "headers" event. This event was only useful for changing the
-  body a response once the headers of the response were known. You can implement
-  a similar behavior in a number of ways. One example might be to use a
-  FnStream that has access to the transaction being sent. For example, when the
-  first byte is written, you could check if the response headers match your
-  expectations, and if so, change the actual stream body that is being
-  written to.
-* Removed the `asArray` parameter from
-  `GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
-  value as an array, then use the newly added `getHeaderAsArray()` method of
-  `MessageInterface`. This change makes the Guzzle interfaces compatible with
-  the PSR-7 interfaces.
-* `GuzzleHttp\Message\MessageFactory` no longer allows subclasses to add
-  custom request options using double-dispatch (this was an implementation
-  detail). Instead, you should now provide an associative array to the
-  constructor which is a mapping of the request option name mapping to a
-  function that applies the option value to a request.
-* Removed the concept of "throwImmediately" from exceptions and error events.
-  This control mechanism was used to stop a transfer of concurrent requests
-  from completing. This can now be handled by throwing the exception or by
-  cancelling a pool of requests or each outstanding future request individually.
-* Updated to "GuzzleHttp\Streams" 3.0.
-    * `GuzzleHttp\Stream\StreamInterface::getContents()` no longer accepts a
-      `maxLen` parameter. This update makes the Guzzle streams project
-      compatible with the current PSR-7 proposal.
-    * `GuzzleHttp\Stream\Stream::__construct`,
-      `GuzzleHttp\Stream\Stream::factory`, and
-      `GuzzleHttp\Stream\Utils::create` no longer accept a size in the second
-      argument. They now accept an associative array of options, including the
-      "size" key and "metadata" key which can be used to provide custom metadata.
-
-## 4.2.2 - 2014-09-08
-
-* Fixed a memory leak in the CurlAdapter when reusing cURL handles.
-* No longer using `request_fulluri` in stream adapter proxies.
-* Relative redirects are now based on the last response, not the first response.
-
-## 4.2.1 - 2014-08-19
-
-* Ensuring that the StreamAdapter does not always add a Content-Type header
-* Adding automated github releases with a phar and zip
-
-## 4.2.0 - 2014-08-17
-
-* Now merging in default options using a case-insensitive comparison.
-  Closes https://github.com/guzzle/guzzle/issues/767
-* Added the ability to automatically decode `Content-Encoding` response bodies
-  using the `decode_content` request option. This is set to `true` by default
-  to decode the response body if it comes over the wire with a
-  `Content-Encoding`. Set this value to `false` to disable decoding the
-  response content, and pass a string to provide a request `Accept-Encoding`
-  header and turn on automatic response decoding. This feature now allows you
-  to pass an `Accept-Encoding` header in the headers of a request but still
-  disable automatic response decoding.
-  Closes https://github.com/guzzle/guzzle/issues/764
-* Added the ability to throw an exception immediately when transferring
-  requests in parallel. Closes https://github.com/guzzle/guzzle/issues/760
-* Updating guzzlehttp/streams dependency to ~2.1
-* No longer utilizing the now deprecated namespaced methods from the stream
-  package.
-
-## 4.1.8 - 2014-08-14
-
-* Fixed an issue in the CurlFactory that caused setting the `stream=false`
-  request option to throw an exception.
-  See: https://github.com/guzzle/guzzle/issues/769
-* TransactionIterator now calls rewind on the inner iterator.
-  See: https://github.com/guzzle/guzzle/pull/765
-* You can now set the `Content-Type` header to `multipart/form-data`
-  when creating POST requests to force multipart bodies.
-  See https://github.com/guzzle/guzzle/issues/768
-
-## 4.1.7 - 2014-08-07
-
-* Fixed an error in the HistoryPlugin that caused the same request and response
-  to be logged multiple times when an HTTP protocol error occurs.
-* Ensuring that cURL does not add a default Content-Type when no Content-Type
-  has been supplied by the user. This prevents the adapter layer from modifying
-  the request that is sent over the wire after any listeners may have already
-  put the request in a desired state (e.g., signed the request).
-* Throwing an exception when you attempt to send requests that have the
-  "stream" set to true in parallel using the MultiAdapter.
-* Only calling curl_multi_select when there are active cURL handles. This was
-  previously changed and caused performance problems on some systems due to PHP
-  always selecting until the maximum select timeout.
-* Fixed a bug where multipart/form-data POST fields were not correctly
-  aggregated (e.g., values with "&").
-
-## 4.1.6 - 2014-08-03
-
-* Added helper methods to make it easier to represent messages as strings,
-  including getting the start line and getting headers as a string.
-
-## 4.1.5 - 2014-08-02
-
-* Automatically retrying cURL "Connection died, retrying a fresh connect"
-  errors when possible.
-* cURL implementation cleanup
-* Allowing multiple event subscriber listeners to be registered per event by
-  passing an array of arrays of listener configuration.
-
-## 4.1.4 - 2014-07-22
-
-* Fixed a bug that caused multi-part POST requests with more than one field to
-  serialize incorrectly.
-* Paths can now be set to "0"
-* `ResponseInterface::xml` now accepts a `libxml_options` option and added a
-  missing default argument that was required when parsing XML response bodies.
-* A `save_to` stream is now created lazily, which means that files are not
-  created on disk unless a request succeeds.
-
-## 4.1.3 - 2014-07-15
-
-* Various fixes to multipart/form-data POST uploads
-* Wrapping function.php in an if-statement to ensure Guzzle can be used
-  globally and in a Composer install
-* Fixed an issue with generating and merging in events to an event array
-* POST headers are only applied before sending a request to allow you to change
-  the query aggregator used before uploading
-* Added much more robust query string parsing
-* Fixed various parsing and normalization issues with URLs
-* Fixing an issue where multi-valued headers were not being utilized correctly
-  in the StreamAdapter
-
-## 4.1.2 - 2014-06-18
-
-* Added support for sending payloads with GET requests
-
-## 4.1.1 - 2014-06-08
-
-* Fixed an issue related to using custom message factory options in subclasses
-* Fixed an issue with nested form fields in a multi-part POST
-* Fixed an issue with using the `json` request option for POST requests
-* Added `ToArrayInterface` to `GuzzleHttp\Cookie\CookieJar`
-
-## 4.1.0 - 2014-05-27
-
-* Added a `json` request option to easily serialize JSON payloads.
-* Added a `GuzzleHttp\json_decode()` wrapper to safely parse JSON.
-* Added `setPort()` and `getPort()` to `GuzzleHttp\Message\RequestInterface`.
-* Added the ability to provide an emitter to a client in the client constructor.
-* Added the ability to persist a cookie session using $_SESSION.
-* Added a trait that can be used to add event listeners to an iterator.
-* Removed request method constants from RequestInterface.
-* Fixed warning when invalid request start-lines are received.
-* Updated MessageFactory to work with custom request option methods.
-* Updated cacert bundle to latest build.
-
-4.0.2 (2014-04-16)
-------------------
-
-* Proxy requests using the StreamAdapter now properly use request_fulluri (#632)
-* Added the ability to set scalars as POST fields (#628)
-
-## 4.0.1 - 2014-04-04
-
-* The HTTP status code of a response is now set as the exception code of
-  RequestException objects.
-* 303 redirects will now correctly switch from POST to GET requests.
-* The default parallel adapter of a client now correctly uses the MultiAdapter.
-* HasDataTrait now initializes the internal data array as an empty array so
-  that the toArray() method always returns an array.
-
-## 4.0.0 - 2014-03-29
-
-* For more information on the 4.0 transition, see:
-  http://mtdowling.com/blog/2014/03/15/guzzle-4-rc/
-* For information on changes and upgrading, see:
-  https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
-* Added `GuzzleHttp\batch()` as a convenience function for sending requests in
-  parallel without needing to write asynchronous code.
-* Restructured how events are added to `GuzzleHttp\ClientInterface::sendAll()`.
-  You can now pass a callable or an array of associative arrays where each
-  associative array contains the "fn", "priority", and "once" keys.
-
-## 4.0.0.rc-2 - 2014-03-25
-
-* Removed `getConfig()` and `setConfig()` from clients to avoid confusion
-  around whether things like base_url, message_factory, etc. should be able to
-  be retrieved or modified.
-* Added `getDefaultOption()` and `setDefaultOption()` to ClientInterface
-* functions.php functions were renamed using snake_case to match PHP idioms
-* Added support for `HTTP_PROXY`, `HTTPS_PROXY`, and
-  `GUZZLE_CURL_SELECT_TIMEOUT` environment variables
-* Added the ability to specify custom `sendAll()` event priorities
-* Added the ability to specify custom stream context options to the stream
-  adapter.
-* Added a functions.php function for `get_path()` and `set_path()`
-* CurlAdapter and MultiAdapter now use a callable to generate curl resources
-* MockAdapter now properly reads a body and emits a `headers` event
-* Updated Url class to check if a scheme and host are set before adding ":"
-  and "//". This allows empty Url (e.g., "") to be serialized as "".
-* Parsing invalid XML no longer emits warnings
-* Curl classes now properly throw AdapterExceptions
-* Various performance optimizations
-* Streams are created with the faster `Stream\create()` function
-* Marked deprecation_proxy() as internal
-* Test server is now a collection of static methods on a class
-
-## 4.0.0-rc.1 - 2014-03-15
-
-* See https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#3x-to-40
-
-## 3.8.1 - 2014-01-28
-
-* Bug: Always using GET requests when redirecting from a 303 response
-* Bug: CURLOPT_SSL_VERIFYHOST is now correctly set to false when setting `$certificateAuthority` to false in
-  `Guzzle\Http\ClientInterface::setSslVerification()`
-* Bug: RedirectPlugin now uses strict RFC 3986 compliance when combining a base URL with a relative URL
-* Bug: The body of a request can now be set to `"0"`
-* Sending PHP stream requests no longer forces `HTTP/1.0`
-* Adding more information to ExceptionCollection exceptions so that users have more context, including a stack trace of
-  each sub-exception
-* Updated the `$ref` attribute in service descriptions to merge over any existing parameters of a schema (rather than
-  clobbering everything).
-* Merging URLs will now use the query string object from the relative URL (thus allowing custom query aggregators)
-* Query strings are now parsed in a way that they do no convert empty keys with no value to have a dangling `=`.
-  For example `foo&bar=baz` is now correctly parsed and recognized as `foo&bar=baz` rather than `foo=&bar=baz`.
-* Now properly escaping the regular expression delimiter when matching Cookie domains.
-* Network access is now disabled when loading XML documents
-
-## 3.8.0 - 2013-12-05
-
-* Added the ability to define a POST name for a file
-* JSON response parsing now properly walks additionalProperties
-* cURL error code 18 is now retried automatically in the BackoffPlugin
-* Fixed a cURL error when URLs contain fragments
-* Fixed an issue in the BackoffPlugin retry event where it was trying to access all exceptions as if they were
-  CurlExceptions
-* CURLOPT_PROGRESS function fix for PHP 5.5 (69fcc1e)
-* Added the ability for Guzzle to work with older versions of cURL that do not support `CURLOPT_TIMEOUT_MS`
-* Fixed a bug that was encountered when parsing empty header parameters
-* UriTemplate now has a `setRegex()` method to match the docs
-* The `debug` request parameter now checks if it is truthy rather than if it exists
-* Setting the `debug` request parameter to true shows verbose cURL output instead of using the LogPlugin
-* Added the ability to combine URLs using strict RFC 3986 compliance
-* Command objects can now return the validation errors encountered by the command
-* Various fixes to cache revalidation (#437 and 29797e5)
-* Various fixes to the AsyncPlugin
-* Cleaned up build scripts
-
-## 3.7.4 - 2013-10-02
-
-* Bug fix: 0 is now an allowed value in a description parameter that has a default value (#430)
-* Bug fix: SchemaFormatter now returns an integer when formatting to a Unix timestamp
-  (see https://github.com/aws/aws-sdk-php/issues/147)
-* Bug fix: Cleaned up and fixed URL dot segment removal to properly resolve internal dots
-* Minimum PHP version is now properly specified as 5.3.3 (up from 5.3.2) (#420)
-* Updated the bundled cacert.pem (#419)
-* OauthPlugin now supports adding authentication to headers or query string (#425)
-
-## 3.7.3 - 2013-09-08
-
-* Added the ability to get the exception associated with a request/command when using `MultiTransferException` and
-  `CommandTransferException`.
-* Setting `additionalParameters` of a response to false is now honored when parsing responses with a service description
-* Schemas are only injected into response models when explicitly configured.
-* No longer guessing Content-Type based on the path of a request. Content-Type is now only guessed based on the path of
-  an EntityBody.
-* Bug fix: ChunkedIterator can now properly chunk a \Traversable as well as an \Iterator.
-* Bug fix: FilterIterator now relies on `\Iterator` instead of `\Traversable`.
-* Bug fix: Gracefully handling malformed responses in RequestMediator::writeResponseBody()
-* Bug fix: Replaced call to canCache with canCacheRequest in the CallbackCanCacheStrategy of the CachePlugin
-* Bug fix: Visiting XML attributes first before visiting XML children when serializing requests
-* Bug fix: Properly parsing headers that contain commas contained in quotes
-* Bug fix: mimetype guessing based on a filename is now case-insensitive
-
-## 3.7.2 - 2013-08-02
-
-* Bug fix: Properly URL encoding paths when using the PHP-only version of the UriTemplate expander
-  See https://github.com/guzzle/guzzle/issues/371
-* Bug fix: Cookie domains are now matched correctly according to RFC 6265
-  See https://github.com/guzzle/guzzle/issues/377
-* Bug fix: GET parameters are now used when calculating an OAuth signature
-* Bug fix: Fixed an issue with cache revalidation where the If-None-Match header was being double quoted
-* `Guzzle\Common\AbstractHasDispatcher::dispatch()` now returns the event that was dispatched
-* `Guzzle\Http\QueryString::factory()` now guesses the most appropriate query aggregator to used based on the input.
-  See https://github.com/guzzle/guzzle/issues/379
-* Added a way to add custom domain objects to service description parsing using the `operation.parse_class` event. See
-  https://github.com/guzzle/guzzle/pull/380
-* cURL multi cleanup and optimizations
-
-## 3.7.1 - 2013-07-05
-
-* Bug fix: Setting default options on a client now works
-* Bug fix: Setting options on HEAD requests now works. See #352
-* Bug fix: Moving stream factory before send event to before building the stream. See #353
-* Bug fix: Cookies no longer match on IP addresses per RFC 6265
-* Bug fix: Correctly parsing header parameters that are in `<>` and quotes
-* Added `cert` and `ssl_key` as request options
-* `Host` header can now diverge from the host part of a URL if the header is set manually
-* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter
-* OAuth parameters are only added via the plugin if they aren't already set
-* Exceptions are now thrown when a URL cannot be parsed
-* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails
-* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin
-
-## 3.7.0 - 2013-06-10
-
-* See UPGRADING.md for more information on how to upgrade.
-* Requests now support the ability to specify an array of $options when creating a request to more easily modify a
-  request. You can pass a 'request.options' configuration setting to a client to apply default request options to
-  every request created by a client (e.g. default query string variables, headers, curl options, etc.).
-* Added a static facade class that allows you to use Guzzle with static methods and mount the class to `\Guzzle`.
-  See `Guzzle\Http\StaticClient::mount`.
-* Added `command.request_options` to `Guzzle\Service\Command\AbstractCommand` to pass request options to requests
-      created by a command (e.g. custom headers, query string variables, timeout settings, etc.).
-* Stream size in `Guzzle\Stream\PhpStreamRequestFactory` will now be set if Content-Length is returned in the
-  headers of a response
-* Added `Guzzle\Common\Collection::setPath($path, $value)` to set a value into an array using a nested key
-  (e.g. `$collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];`)
-* ServiceBuilders now support storing and retrieving arbitrary data
-* CachePlugin can now purge all resources for a given URI
-* CachePlugin can automatically purge matching cached items when a non-idempotent request is sent to a resource
-* CachePlugin now uses the Vary header to determine if a resource is a cache hit
-* `Guzzle\Http\Message\Response` now implements `\Serializable`
-* Added `Guzzle\Cache\CacheAdapterFactory::fromCache()` to more easily create cache adapters
-* `Guzzle\Service\ClientInterface::execute()` now accepts an array, single command, or Traversable
-* Fixed a bug in `Guzzle\Http\Message\Header\Link::addLink()`
-* Better handling of calculating the size of a stream in `Guzzle\Stream\Stream` using fstat() and caching the size
-* `Guzzle\Common\Exception\ExceptionCollection` now creates a more readable exception message
-* Fixing BC break: Added back the MonologLogAdapter implementation rather than extending from PsrLog so that older
-  Symfony users can still use the old version of Monolog.
-* Fixing BC break: Added the implementation back in for `Guzzle\Http\Message\AbstractMessage::getTokenizedHeader()`.
-  Now triggering an E_USER_DEPRECATED warning when used. Use `$message->getHeader()->parseParams()`.
-* Several performance improvements to `Guzzle\Common\Collection`
-* Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`:
-  createRequest, head, delete, put, patch, post, options, prepareRequest
-* Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()`
-* Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface`
-* Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to
-  `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a
-  resource, string, or EntityBody into the $options parameter to specify the download location of the response.
-* Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a
-  default `array()`
-* Added `Guzzle\Stream\StreamInterface::isRepeatable`
-* Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use
-  $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
-  $client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.
-* Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers')`.
-* Removed `Guzzle\Http\ClientInterface::expandTemplate()`
-* Removed `Guzzle\Http\ClientInterface::setRequestFactory()`
-* Removed `Guzzle\Http\ClientInterface::getCurlMulti()`
-* Removed `Guzzle\Http\Message\RequestInterface::canCache`
-* Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`
-* Removed `Guzzle\Http\Message\RequestInterface::isRedirect`
-* Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods.
-* You can now enable E_USER_DEPRECATED warnings to see if you are using a deprecated method by setting
-  `Guzzle\Common\Version::$emitWarnings` to true.
-* Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use
-      `$request->getResponseBody()->isRepeatable()` instead.
-* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use
-  `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-* Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use
-  `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-* Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead.
-* Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead.
-* Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
-* Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand.
-  These will work through Guzzle 4.0
-* Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params].
-* Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
-* Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
-* Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.
-* Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8.
-* Marked `Guzzle\Common\Collection::inject()` as deprecated.
-* Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');`
-* CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a
-  CacheStorageInterface. These two objects and interface will be removed in a future version.
-* Always setting X-cache headers on cached responses
-* Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin
-* `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface
-  $request, Response $response);`
-* `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);`
-* `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);`
-* Added `CacheStorageInterface::purge($url)`
-* `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
-  $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache,
-  CanCacheStrategyInterface $canCache = null)`
-* Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
-
-## 3.6.0 - 2013-05-29
-
-* ServiceDescription now implements ToArrayInterface
-* Added command.hidden_params to blacklist certain headers from being treated as additionalParameters
-* Guzzle can now correctly parse incomplete URLs
-* Mixed casing of headers are now forced to be a single consistent casing across all values for that header.
-* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution
-* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader().
-* Specific header implementations can be created for complex headers. When a message creates a header, it uses a
-  HeaderFactory which can map specific headers to specific header classes. There is now a Link header and
-  CacheControl header implementation.
-* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate
-* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti()
-* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in
-  Guzzle\Http\Curl\RequestMediator
-* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string.
-* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface
-* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders()
-* Removed Guzzle\Parser\ParserRegister::get(). Use getParser()
-* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser().
-* All response header helper functions return a string rather than mixing Header objects and strings inconsistently
-* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle
-  directly via interfaces
-* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
-  but are a no-op until removed.
-* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
-  `Guzzle\Service\Command\ArrayCommandInterface`.
-* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
-  on a request while the request is still being transferred
-* The ability to case-insensitively search for header values
-* Guzzle\Http\Message\Header::hasExactHeader
-* Guzzle\Http\Message\Header::raw. Use getAll()
-* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object
-  instead.
-* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
-* Added the ability to cast Model objects to a string to view debug information.
-
-## 3.5.0 - 2013-05-13
-
-* Bug: Fixed a regression so that request responses are parsed only once per oncomplete event rather than multiple times
-* Bug: Better cleanup of one-time events across the board (when an event is meant to fire once, it will now remove
-  itself from the EventDispatcher)
-* Bug: `Guzzle\Log\MessageFormatter` now properly writes "total_time" and "connect_time" values
-* Bug: Cloning an EntityEnclosingRequest now clones the EntityBody too
-* Bug: Fixed an undefined index error when parsing nested JSON responses with a sentAs parameter that reference a
-  non-existent key
-* Bug: All __call() method arguments are now required (helps with mocking frameworks)
-* Deprecating Response::getRequest() and now using a shallow clone of a request object to remove a circular reference
-  to help with refcount based garbage collection of resources created by sending a request
-* Deprecating ZF1 cache and log adapters. These will be removed in the next major version.
-* Deprecating `Response::getPreviousResponse()` (method signature still exists, but it'sdeprecated). Use the
-  HistoryPlugin for a history.
-* Added a `responseBody` alias for the `response_body` location
-* Refactored internals to no longer rely on Response::getRequest()
-* HistoryPlugin can now be cast to a string
-* HistoryPlugin now logs transactions rather than requests and responses to more accurately keep track of the requests
-  and responses that are sent over the wire
-* Added `getEffectiveUrl()` and `getRedirectCount()` to Response objects
-
-## 3.4.3 - 2013-04-30
-
-* Bug fix: Fixing bug introduced in 3.4.2 where redirect responses are duplicated on the final redirected response
-* Added a check to re-extract the temp cacert bundle from the phar before sending each request
-
-## 3.4.2 - 2013-04-29
-
-* Bug fix: Stream objects now work correctly with "a" and "a+" modes
-* Bug fix: Removing `Transfer-Encoding: chunked` header when a Content-Length is present
-* Bug fix: AsyncPlugin no longer forces HEAD requests
-* Bug fix: DateTime timezones are now properly handled when using the service description schema formatter
-* Bug fix: CachePlugin now properly handles stale-if-error directives when a request to the origin server fails
-* Setting a response on a request will write to the custom request body from the response body if one is specified
-* LogPlugin now writes to php://output when STDERR is undefined
-* Added the ability to set multiple POST files for the same key in a single call
-* application/x-www-form-urlencoded POSTs now use the utf-8 charset by default
-* Added the ability to queue CurlExceptions to the MockPlugin
-* Cleaned up how manual responses are queued on requests (removed "queued_response" and now using request.before_send)
-* Configuration loading now allows remote files
-
-## 3.4.1 - 2013-04-16
-
-* Large refactoring to how CurlMulti handles work. There is now a proxy that sits in front of a pool of CurlMulti
-  handles. This greatly simplifies the implementation, fixes a couple bugs, and provides a small performance boost.
-* Exceptions are now properly grouped when sending requests in parallel
-* Redirects are now properly aggregated when a multi transaction fails
-* Redirects now set the response on the original object even in the event of a failure
-* Bug fix: Model names are now properly set even when using $refs
-* Added support for PHP 5.5's CurlFile to prevent warnings with the deprecated @ syntax
-* Added support for oauth_callback in OAuth signatures
-* Added support for oauth_verifier in OAuth signatures
-* Added support to attempt to retrieve a command first literally, then ucfirst, the with inflection
-
-## 3.4.0 - 2013-04-11
-
-* Bug fix: URLs are now resolved correctly based on http://tools.ietf.org/html/rfc3986#section-5.2. #289
-* Bug fix: Absolute URLs with a path in a service description will now properly override the base URL. #289
-* Bug fix: Parsing a query string with a single PHP array value will now result in an array. #263
-* Bug fix: Better normalization of the User-Agent header to prevent duplicate headers. #264.
-* Bug fix: Added `number` type to service descriptions.
-* Bug fix: empty parameters are removed from an OAuth signature
-* Bug fix: Revalidating a cache entry prefers the Last-Modified over the Date header
-* Bug fix: Fixed "array to string" error when validating a union of types in a service description
-* Bug fix: Removed code that attempted to determine the size of a stream when data is written to the stream
-* Bug fix: Not including an `oauth_token` if the value is null in the OauthPlugin.
-* Bug fix: Now correctly aggregating successful requests and failed requests in CurlMulti when a redirect occurs.
-* The new default CURLOPT_TIMEOUT setting has been increased to 150 seconds so that Guzzle works on poor connections.
-* Added a feature to EntityEnclosingRequest::setBody() that will automatically set the Content-Type of the request if
-  the Content-Type can be determined based on the entity body or the path of the request.
-* Added the ability to overwrite configuration settings in a client when grabbing a throwaway client from a builder.
-* Added support for a PSR-3 LogAdapter.
-* Added a `command.after_prepare` event
-* Added `oauth_callback` parameter to the OauthPlugin
-* Added the ability to create a custom stream class when using a stream factory
-* Added a CachingEntityBody decorator
-* Added support for `additionalParameters` in service descriptions to define how custom parameters are serialized.
-* The bundled SSL certificate is now provided in the phar file and extracted when running Guzzle from a phar.
-* You can now send any EntityEnclosingRequest with POST fields or POST files and cURL will handle creating bodies
-* POST requests using a custom entity body are now treated exactly like PUT requests but with a custom cURL method. This
-  means that the redirect behavior of POST requests with custom bodies will not be the same as POST requests that use
-  POST fields or files (the latter is only used when emulating a form POST in the browser).
-* Lots of cleanup to CurlHandle::factory and RequestFactory::createRequest
-
-## 3.3.1 - 2013-03-10
-
-* Added the ability to create PHP streaming responses from HTTP requests
-* Bug fix: Running any filters when parsing response headers with service descriptions
-* Bug fix: OauthPlugin fixes to allow for multi-dimensional array signing, and sorting parameters before signing
-* Bug fix: Removed the adding of default empty arrays and false Booleans to responses in order to be consistent across
-  response location visitors.
-* Bug fix: Removed the possibility of creating configuration files with circular dependencies
-* RequestFactory::create() now uses the key of a POST file when setting the POST file name
-* Added xmlAllowEmpty to serialize an XML body even if no XML specific parameters are set
-
-## 3.3.0 - 2013-03-03
-
-* A large number of performance optimizations have been made
-* Bug fix: Added 'wb' as a valid write mode for streams
-* Bug fix: `Guzzle\Http\Message\Response::json()` now allows scalar values to be returned
-* Bug fix: Fixed bug in `Guzzle\Http\Message\Response` where wrapping quotes were stripped from `getEtag()`
-* BC: Removed `Guzzle\Http\Utils` class
-* BC: Setting a service description on a client will no longer modify the client's command factories.
-* BC: Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using
-  the 'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io'
-* BC: `Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getSteamType()` are no longer converted to
-  lowercase
-* Operation parameter objects are now lazy loaded internally
-* Added ErrorResponsePlugin that can throw errors for responses defined in service description operations' errorResponses
-* Added support for instantiating responseType=class responseClass classes. Classes must implement
-  `Guzzle\Service\Command\ResponseClassInterface`
-* Added support for additionalProperties for top-level parameters in responseType=model responseClasses. These
-  additional properties also support locations and can be used to parse JSON responses where the outermost part of the
-  JSON is an array
-* Added support for nested renaming of JSON models (rename sentAs to name)
-* CachePlugin
-    * Added support for stale-if-error so that the CachePlugin can now serve stale content from the cache on error
-    * Debug headers can now added to cached response in the CachePlugin
-
-## 3.2.0 - 2013-02-14
-
-* CurlMulti is no longer reused globally. A new multi object is created per-client. This helps to isolate clients.
-* URLs with no path no longer contain a "/" by default
-* Guzzle\Http\QueryString does no longer manages the leading "?". This is now handled in Guzzle\Http\Url.
-* BadResponseException no longer includes the full request and response message
-* Adding setData() to Guzzle\Service\Description\ServiceDescriptionInterface
-* Adding getResponseBody() to Guzzle\Http\Message\RequestInterface
-* Various updates to classes to use ServiceDescriptionInterface type hints rather than ServiceDescription
-* Header values can now be normalized into distinct values when multiple headers are combined with a comma separated list
-* xmlEncoding can now be customized for the XML declaration of a XML service description operation
-* Guzzle\Http\QueryString now uses Guzzle\Http\QueryAggregator\QueryAggregatorInterface objects to add custom value
-  aggregation and no longer uses callbacks
-* The URL encoding implementation of Guzzle\Http\QueryString can now be customized
-* Bug fix: Filters were not always invoked for array service description parameters
-* Bug fix: Redirects now use a target response body rather than a temporary response body
-* Bug fix: The default exponential backoff BackoffPlugin was not giving when the request threshold was exceeded
-* Bug fix: Guzzle now takes the first found value when grabbing Cache-Control directives
-
-## 3.1.2 - 2013-01-27
-
-* Refactored how operation responses are parsed. Visitors now include a before() method responsible for parsing the
-  response body. For example, the XmlVisitor now parses the XML response into an array in the before() method.
-* Fixed an issue where cURL would not automatically decompress responses when the Accept-Encoding header was sent
-* CURLOPT_SSL_VERIFYHOST is never set to 1 because it is deprecated (see 5e0ff2ef20f839e19d1eeb298f90ba3598784444)
-* Fixed a bug where redirect responses were not chained correctly using getPreviousResponse()
-* Setting default headers on a client after setting the user-agent will not erase the user-agent setting
-
-## 3.1.1 - 2013-01-20
-
-* Adding wildcard support to Guzzle\Common\Collection::getPath()
-* Adding alias support to ServiceBuilder configs
-* Adding Guzzle\Service\Resource\CompositeResourceIteratorFactory and cleaning up factory interface
-
-## 3.1.0 - 2013-01-12
-
-* BC: CurlException now extends from RequestException rather than BadResponseException
-* BC: Renamed Guzzle\Plugin\Cache\CanCacheStrategyInterface::canCache() to canCacheRequest() and added CanCacheResponse()
-* Added getData to ServiceDescriptionInterface
-* Added context array to RequestInterface::setState()
-* Bug: Removing hard dependency on the BackoffPlugin from Guzzle\Http
-* Bug: Adding required content-type when JSON request visitor adds JSON to a command
-* Bug: Fixing the serialization of a service description with custom data
-* Made it easier to deal with exceptions thrown when transferring commands or requests in parallel by providing
-  an array of successful and failed responses
-* Moved getPath from Guzzle\Service\Resource\Model to Guzzle\Common\Collection
-* Added Guzzle\Http\IoEmittingEntityBody
-* Moved command filtration from validators to location visitors
-* Added `extends` attributes to service description parameters
-* Added getModels to ServiceDescriptionInterface
-
-## 3.0.7 - 2012-12-19
-
-* Fixing phar detection when forcing a cacert to system if null or true
-* Allowing filename to be passed to `Guzzle\Http\Message\Request::setResponseBody()`
-* Cleaning up `Guzzle\Common\Collection::inject` method
-* Adding a response_body location to service descriptions
-
-## 3.0.6 - 2012-12-09
-
-* CurlMulti performance improvements
-* Adding setErrorResponses() to Operation
-* composer.json tweaks
-
-## 3.0.5 - 2012-11-18
-
-* Bug: Fixing an infinite recursion bug caused from revalidating with the CachePlugin
-* Bug: Response body can now be a string containing "0"
-* Bug: Using Guzzle inside of a phar uses system by default but now allows for a custom cacert
-* Bug: QueryString::fromString now properly parses query string parameters that contain equal signs
-* Added support for XML attributes in service description responses
-* DefaultRequestSerializer now supports array URI parameter values for URI template expansion
-* Added better mimetype guessing to requests and post files
-
-## 3.0.4 - 2012-11-11
-
-* Bug: Fixed a bug when adding multiple cookies to a request to use the correct glue value
-* Bug: Cookies can now be added that have a name, domain, or value set to "0"
-* Bug: Using the system cacert bundle when using the Phar
-* Added json and xml methods to Response to make it easier to parse JSON and XML response data into data structures
-* Enhanced cookie jar de-duplication
-* Added the ability to enable strict cookie jars that throw exceptions when invalid cookies are added
-* Added setStream to StreamInterface to actually make it possible to implement custom rewind behavior for entity bodies
-* Added the ability to create any sort of hash for a stream rather than just an MD5 hash
-
-## 3.0.3 - 2012-11-04
-
-* Implementing redirects in PHP rather than cURL
-* Added PECL URI template extension and using as default parser if available
-* Bug: Fixed Content-Length parsing of Response factory
-* Adding rewind() method to entity bodies and streams. Allows for custom rewinding of non-repeatable streams.
-* Adding ToArrayInterface throughout library
-* Fixing OauthPlugin to create unique nonce values per request
-
-## 3.0.2 - 2012-10-25
-
-* Magic methods are enabled by default on clients
-* Magic methods return the result of a command
-* Service clients no longer require a base_url option in the factory
-* Bug: Fixed an issue with URI templates where null template variables were being expanded
-
-## 3.0.1 - 2012-10-22
-
-* Models can now be used like regular collection objects by calling filter, map, etc.
-* Models no longer require a Parameter structure or initial data in the constructor
-* Added a custom AppendIterator to get around a PHP bug with the `\AppendIterator`
-
-## 3.0.0 - 2012-10-15
-
-* Rewrote service description format to be based on Swagger
-    * Now based on JSON schema
-    * Added nested input structures and nested response models
-    * Support for JSON and XML input and output models
-    * Renamed `commands` to `operations`
-    * Removed dot class notation
-    * Removed custom types
-* Broke the project into smaller top-level namespaces to be more component friendly
-* Removed support for XML configs and descriptions. Use arrays or JSON files.
-* Removed the Validation component and Inspector
-* Moved all cookie code to Guzzle\Plugin\Cookie
-* Magic methods on a Guzzle\Service\Client now return the command un-executed.
-* Calling getResult() or getResponse() on a command will lazily execute the command if needed.
-* Now shipping with cURL's CA certs and using it by default
-* Added previousResponse() method to response objects
-* No longer sending Accept and Accept-Encoding headers on every request
-* Only sending an Expect header by default when a payload is greater than 1MB
-* Added/moved client options:
-    * curl.blacklist to curl.option.blacklist
-    * Added ssl.certificate_authority
-* Added a Guzzle\Iterator component
-* Moved plugins from Guzzle\Http\Plugin to Guzzle\Plugin
-* Added a more robust backoff retry strategy (replaced the ExponentialBackoffPlugin)
-* Added a more robust caching plugin
-* Added setBody to response objects
-* Updating LogPlugin to use a more flexible MessageFormatter
-* Added a completely revamped build process
-* Cleaning up Collection class and removing default values from the get method
-* Fixed ZF2 cache adapters
-
-## 2.8.8 - 2012-10-15
-
-* Bug: Fixed a cookie issue that caused dot prefixed domains to not match where popular browsers did
-
-## 2.8.7 - 2012-09-30
-
-* Bug: Fixed config file aliases for JSON includes
-* Bug: Fixed cookie bug on a request object by using CookieParser to parse cookies on requests
-* Bug: Removing the path to a file when sending a Content-Disposition header on a POST upload
-* Bug: Hardening request and response parsing to account for missing parts
-* Bug: Fixed PEAR packaging
-* Bug: Fixed Request::getInfo
-* Bug: Fixed cases where CURLM_CALL_MULTI_PERFORM return codes were causing curl transactions to fail
-* Adding the ability for the namespace Iterator factory to look in multiple directories
-* Added more getters/setters/removers from service descriptions
-* Added the ability to remove POST fields from OAuth signatures
-* OAuth plugin now supports 2-legged OAuth
-
-## 2.8.6 - 2012-09-05
-
-* Added the ability to modify and build service descriptions
-* Added the use of visitors to apply parameters to locations in service descriptions using the dynamic command
-* Added a `json` parameter location
-* Now allowing dot notation for classes in the CacheAdapterFactory
-* Using the union of two arrays rather than an array_merge when extending service builder services and service params
-* Ensuring that a service is a string before doing strpos() checks on it when substituting services for references
-  in service builder config files.
-* Services defined in two different config files that include one another will by default replace the previously
-  defined service, but you can now create services that extend themselves and merge their settings over the previous
-* The JsonLoader now supports aliasing filenames with different filenames. This allows you to alias something like
-  '_default' with a default JSON configuration file.
-
-## 2.8.5 - 2012-08-29
-
-* Bug: Suppressed empty arrays from URI templates
-* Bug: Added the missing $options argument from ServiceDescription::factory to enable caching
-* Added support for HTTP responses that do not contain a reason phrase in the start-line
-* AbstractCommand commands are now invokable
-* Added a way to get the data used when signing an Oauth request before a request is sent
-
-## 2.8.4 - 2012-08-15
-
-* Bug: Custom delay time calculations are no longer ignored in the ExponentialBackoffPlugin
-* Added the ability to transfer entity bodies as a string rather than streamed. This gets around curl error 65. Set `body_as_string` in a request's curl options to enable.
-* Added a StreamInterface, EntityBodyInterface, and added ftell() to Guzzle\Common\Stream
-* Added an AbstractEntityBodyDecorator and a ReadLimitEntityBody decorator to transfer only a subset of a decorated stream
-* Stream and EntityBody objects will now return the file position to the previous position after a read required operation (e.g. getContentMd5())
-* Added additional response status codes
-* Removed SSL information from the default User-Agent header
-* DELETE requests can now send an entity body
-* Added an EventDispatcher to the ExponentialBackoffPlugin and added an ExponentialBackoffLogger to log backoff retries
-* Added the ability of the MockPlugin to consume mocked request bodies
-* LogPlugin now exposes request and response objects in the extras array
-
-## 2.8.3 - 2012-07-30
-
-* Bug: Fixed a case where empty POST requests were sent as GET requests
-* Bug: Fixed a bug in ExponentialBackoffPlugin that caused fatal errors when retrying an EntityEnclosingRequest that does not have a body
-* Bug: Setting the response body of a request to null after completing a request, not when setting the state of a request to new
-* Added multiple inheritance to service description commands
-* Added an ApiCommandInterface and added `getParamNames()` and `hasParam()`
-* Removed the default 2mb size cutoff from the Md5ValidatorPlugin so that it now defaults to validating everything
-* Changed CurlMulti::perform to pass a smaller timeout to CurlMulti::executeHandles
-
-## 2.8.2 - 2012-07-24
-
-* Bug: Query string values set to 0 are no longer dropped from the query string
-* Bug: A Collection object is no longer created each time a call is made to `Guzzle\Service\Command\AbstractCommand::getRequestHeaders()`
-* Bug: `+` is now treated as an encoded space when parsing query strings
-* QueryString and Collection performance improvements
-* Allowing dot notation for class paths in filters attribute of a service descriptions
-
-## 2.8.1 - 2012-07-16
-
-* Loosening Event Dispatcher dependency
-* POST redirects can now be customized using CURLOPT_POSTREDIR
-
-## 2.8.0 - 2012-07-15
-
-* BC: Guzzle\Http\Query
-    * Query strings with empty variables will always show an equal sign unless the variable is set to QueryString::BLANK (e.g. ?acl= vs ?acl)
-    * Changed isEncodingValues() and isEncodingFields() to isUrlEncoding()
-    * Changed setEncodeValues(bool) and setEncodeFields(bool) to useUrlEncoding(bool)
-    * Changed the aggregation functions of QueryString to be static methods
-    * Can now use fromString() with querystrings that have a leading ?
-* cURL configuration values can be specified in service descriptions using `curl.` prefixed parameters
-* Content-Length is set to 0 before emitting the request.before_send event when sending an empty request body
-* Cookies are no longer URL decoded by default
-* Bug: URI template variables set to null are no longer expanded
-
-## 2.7.2 - 2012-07-02
-
-* BC: Moving things to get ready for subtree splits. Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser.
-* BC: Removing Guzzle\Common\Batch\Batch::count() and replacing it with isEmpty()
-* CachePlugin now allows for a custom request parameter function to check if a request can be cached
-* Bug fix: CachePlugin now only caches GET and HEAD requests by default
-* Bug fix: Using header glue when transferring headers over the wire
-* Allowing deeply nested arrays for composite variables in URI templates
-* Batch divisors can now return iterators or arrays
-
-## 2.7.1 - 2012-06-26
-
-* Minor patch to update version number in UA string
-* Updating build process
-
-## 2.7.0 - 2012-06-25
-
-* BC: Inflection classes moved to Guzzle\Inflection. No longer static methods. Can now inject custom inflectors into classes.
-* BC: Removed magic setX methods from commands
-* BC: Magic methods mapped to service description commands are now inflected in the command factory rather than the client __call() method
-* Verbose cURL options are no longer enabled by default. Set curl.debug to true on a client to enable.
-* Bug: Now allowing colons in a response start-line (e.g. HTTP/1.1 503 Service Unavailable: Back-end server is at capacity)
-* Guzzle\Service\Resource\ResourceIteratorApplyBatched now internally uses the Guzzle\Common\Batch namespace
-* Added Guzzle\Service\Plugin namespace and a PluginCollectionPlugin
-* Added the ability to set POST fields and files in a service description
-* Guzzle\Http\EntityBody::factory() now accepts objects with a __toString() method
-* Adding a command.before_prepare event to clients
-* Added BatchClosureTransfer and BatchClosureDivisor
-* BatchTransferException now includes references to the batch divisor and transfer strategies
-* Fixed some tests so that they pass more reliably
-* Added Guzzle\Common\Log\ArrayLogAdapter
-
-## 2.6.6 - 2012-06-10
-
-* BC: Removing Guzzle\Http\Plugin\BatchQueuePlugin
-* BC: Removing Guzzle\Service\Command\CommandSet
-* Adding generic batching system (replaces the batch queue plugin and command set)
-* Updating ZF cache and log adapters and now using ZF's composer repository
-* Bug: Setting the name of each ApiParam when creating through an ApiCommand
-* Adding result_type, result_doc, deprecated, and doc_url to service descriptions
-* Bug: Changed the default cookie header casing back to 'Cookie'
-
-## 2.6.5 - 2012-06-03
-
-* BC: Renaming Guzzle\Http\Message\RequestInterface::getResourceUri() to getResource()
-* BC: Removing unused AUTH_BASIC and AUTH_DIGEST constants from
-* BC: Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie data
-* BC: Renaming methods in the CookieJarInterface
-* Moving almost all cookie logic out of the CookiePlugin and into the Cookie or CookieJar implementations
-* Making the default glue for HTTP headers ';' instead of ','
-* Adding a removeValue to Guzzle\Http\Message\Header
-* Adding getCookies() to request interface.
-* Making it easier to add event subscribers to HasDispatcherInterface classes. Can now directly call addSubscriber()
-
-## 2.6.4 - 2012-05-30
-
-* BC: Cleaning up how POST files are stored in EntityEnclosingRequest objects. Adding PostFile class.
-* BC: Moving ApiCommand specific functionality from the Inspector and on to the ApiCommand
-* Bug: Fixing magic method command calls on clients
-* Bug: Email constraint only validates strings
-* Bug: Aggregate POST fields when POST files are present in curl handle
-* Bug: Fixing default User-Agent header
-* Bug: Only appending or prepending parameters in commands if they are specified
-* Bug: Not requiring response reason phrases or status codes to match a predefined list of codes
-* Allowing the use of dot notation for class namespaces when using instance_of constraint
-* Added any_match validation constraint
-* Added an AsyncPlugin
-* Passing request object to the calculateWait method of the ExponentialBackoffPlugin
-* Allowing the result of a command object to be changed
-* Parsing location and type sub values when instantiating a service description rather than over and over at runtime
-
-## 2.6.3 - 2012-05-23
-
-* [BC] Guzzle\Common\FromConfigInterface no longer requires any config options.
-* [BC] Refactoring how POST files are stored on an EntityEnclosingRequest. They are now separate from POST fields.
-* You can now use an array of data when creating PUT request bodies in the request factory.
-* Removing the requirement that HTTPS requests needed a Cache-Control: public directive to be cacheable.
-* [Http] Adding support for Content-Type in multipart POST uploads per upload
-* [Http] Added support for uploading multiple files using the same name (foo[0], foo[1])
-* Adding more POST data operations for easier manipulation of POST data.
-* You can now set empty POST fields.
-* The body of a request is only shown on EntityEnclosingRequest objects that do not use POST files.
-* Split the Guzzle\Service\Inspector::validateConfig method into two methods. One to initialize when a command is created, and one to validate.
-* CS updates
-
-## 2.6.2 - 2012-05-19
-
-* [Http] Better handling of nested scope requests in CurlMulti.  Requests are now always prepares in the send() method rather than the addRequest() method.
-
-## 2.6.1 - 2012-05-19
-
-* [BC] Removing 'path' support in service descriptions.  Use 'uri'.
-* [BC] Guzzle\Service\Inspector::parseDocBlock is now protected. Adding getApiParamsForClass() with cache.
-* [BC] Removing Guzzle\Common\NullObject.  Use https://github.com/mtdowling/NullObject if you need it.
-* [BC] Removing Guzzle\Common\XmlElement.
-* All commands, both dynamic and concrete, have ApiCommand objects.
-* Adding a fix for CurlMulti so that if all of the connections encounter some sort of curl error, then the loop exits.
-* Adding checks to EntityEnclosingRequest so that empty POST files and fields are ignored.
-* Making the method signature of Guzzle\Service\Builder\ServiceBuilder::factory more flexible.
-
-## 2.6.0 - 2012-05-15
-
-* [BC] Moving Guzzle\Service\Builder to Guzzle\Service\Builder\ServiceBuilder
-* [BC] Executing a Command returns the result of the command rather than the command
-* [BC] Moving all HTTP parsing logic to Guzzle\Http\Parsers. Allows for faster C implementations if needed.
-* [BC] Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args.
-* [BC] Moving ResourceIterator* to Guzzle\Service\Resource
-* [BC] Completely refactored ResourceIterators to iterate over a cloned command object
-* [BC] Moved Guzzle\Http\UriTemplate to Guzzle\Http\Parser\UriTemplate\UriTemplate
-* [BC] Guzzle\Guzzle is now deprecated
-* Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject
-* Adding Guzzle\Version class to give version information about Guzzle
-* Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and getHttpDate()
-* Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data
-* ServiceDescription and ServiceBuilder are now cacheable using similar configs
-* Changing the format of XML and JSON service builder configs.  Backwards compatible.
-* Cleaned up Cookie parsing
-* Trimming the default Guzzle User-Agent header
-* Adding a setOnComplete() method to Commands that is called when a command completes
-* Keeping track of requests that were mocked in the MockPlugin
-* Fixed a caching bug in the CacheAdapterFactory
-* Inspector objects can be injected into a Command object
-* Refactoring a lot of code and tests to be case insensitive when dealing with headers
-* Adding Guzzle\Http\Message\HeaderComparison for easy comparison of HTTP headers using a DSL
-* Adding the ability to set global option overrides to service builder configs
-* Adding the ability to include other service builder config files from within XML and JSON files
-* Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method.
-
-## 2.5.0 - 2012-05-08
-
-* Major performance improvements
-* [BC] Simplifying Guzzle\Common\Collection.  Please check to see if you are using features that are now deprecated.
-* [BC] Using a custom validation system that allows a flyweight implementation for much faster validation. No longer using Symfony2 Validation component.
-* [BC] No longer supporting "{{ }}" for injecting into command or UriTemplates.  Use "{}"
-* Added the ability to passed parameters to all requests created by a client
-* Added callback functionality to the ExponentialBackoffPlugin
-* Using microtime in ExponentialBackoffPlugin to allow more granular backoff strategies.
-* Rewinding request stream bodies when retrying requests
-* Exception is thrown when JSON response body cannot be decoded
-* Added configurable magic method calls to clients and commands.  This is off by default.
-* Fixed a defect that added a hash to every parsed URL part
-* Fixed duplicate none generation for OauthPlugin.
-* Emitting an event each time a client is generated by a ServiceBuilder
-* Using an ApiParams object instead of a Collection for parameters of an ApiCommand
-* cache.* request parameters should be renamed to params.cache.*
-* Added the ability to set arbitrary curl options on requests (disable_wire, progress, etc.). See CurlHandle.
-* Added the ability to disable type validation of service descriptions
-* ServiceDescriptions and ServiceBuilders are now Serializable
diff --git a/core/vendor/guzzlehttp/guzzle/LICENSE b/core/vendor/guzzlehttp/guzzle/LICENSE
deleted file mode 100644
index 9af9fba..0000000
--- a/core/vendor/guzzlehttp/guzzle/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011-2015 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
-
-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/core/vendor/guzzlehttp/guzzle/README.md b/core/vendor/guzzlehttp/guzzle/README.md
deleted file mode 100644
index c18c10b..0000000
--- a/core/vendor/guzzlehttp/guzzle/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-Guzzle, PHP HTTP client
-=======================
-
-[![Build Status](https://secure.travis-ci.org/guzzle/guzzle.svg?branch=master)](http://travis-ci.org/guzzle/guzzle)
-
-Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
-trivial to integrate with web services.
-
-- Simple interface for building query strings, POST requests, streaming large
-  uploads, streaming large downloads, using HTTP cookies, uploading JSON data,
-  etc...
-- Can send both synchronous and asynchronous requests using the same interface.
-- Uses PSR-7 interfaces for requests, responses, and streams. This allows you
-  to utilize other PSR-7 compatible libraries with Guzzle.
-- Abstracts away the underlying HTTP transport, allowing you to write
-  environment and transport agnostic code; i.e., no hard dependency on cURL,
-  PHP streams, sockets, or non-blocking event loops.
-- Middleware system allows you to augment and compose client behavior.
-
-```php
-$client = new GuzzleHttp\Client();
-$res = $client->get('https://api.github.com/user', ['auth' =>  ['user', 'pass']]);
-echo $res->getStatusCode();
-// "200"
-echo $res->getHeader('content-type');
-// 'application/json; charset=utf8'
-echo $res->getBody();
-// {"type":"User"...'
-
-// Send an asynchronous request.
-$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
-$promise = $client->sendAsync($request)->then(function ($response) {
-    echo 'I completed! ' . $response->getBody();
-});
-$promise->wait();
-```
-
-## Help and docs
-
-- [Documentation](http://guzzlephp.org/)
-- [stackoverflow](http://stackoverflow.com/questions/tagged/guzzle)
-- [Gitter](https://gitter.im/guzzle/guzzle)
-
-
-## Installing Guzzle
-
-The recommended way to install Guzzle is through
-[Composer](http://getcomposer.org).
-
-```bash
-# Install Composer
-curl -sS https://getcomposer.org/installer | php
-```
-
-Next, run the Composer command to install the latest stable version of Guzzle:
-
-```bash
-composer.phar require guzzlehttp/guzzle
-```
-
-After installing, you need to require Composer's autoloader:
-
-```php
-require 'vendor/autoload.php';
-```
-
-You can then later update Guzzle using composer:
-
- ```bash
-composer.phar update
- ```
-
-
-## Version Guidance
-
-| Version | Status      | Packagist           | Namespace    | Repo                | Docs                | PSR-7 |
-|---------|-------------|---------------------|--------------|---------------------|---------------------|-------|
-| 3.x     | EOL         | `guzzle/guzzle`     | `Guzzle`     | [v3][guzzle-3-repo] | [v3][guzzle-3-docs] | No    |
-| 4.x     | EOL         | `guzzlehttp/guzzle` | `GuzzleHttp` | N/A                 | N/A                 | No    |
-| 5.x     | Maintained  | `guzzlehttp/guzzle` | `GuzzleHttp` | [v5][guzzle-5-repo] | [v5][guzzle-5-docs] | No    |
-| 6.x     | Latest      | `guzzlehttp/guzzle` | `GuzzleHttp` | [v6][guzzle-6-repo] | [v6][guzzle-6-docs] | Yes   |
-
-[guzzle-3-repo]: https://github.com/guzzle/guzzle3
-[guzzle-5-repo]: https://github.com/guzzle/guzzle/tree/5.3
-[guzzle-6-repo]: https://github.com/guzzle/guzzle
-[guzzle-3-docs]: http://guzzle3.readthedocs.org/en/latest/
-[guzzle-5-docs]: http://guzzle.readthedocs.org/en/5.3/
-[guzzle-6-docs]: http://guzzle.readthedocs.org/en/latest/
diff --git a/core/vendor/guzzlehttp/guzzle/UPGRADING.md b/core/vendor/guzzlehttp/guzzle/UPGRADING.md
deleted file mode 100644
index 0e86214..0000000
--- a/core/vendor/guzzlehttp/guzzle/UPGRADING.md
+++ /dev/null
@@ -1,1199 +0,0 @@
-Guzzle Upgrade Guide
-====================
-
-5.0 to 6.0
-----------
-
-Guzzle now uses [PSR-7](http://www.php-fig.org/psr/psr-7/) for HTTP messages.
-Due to the fact that these messages are immutable, this prompted a refactoring
-of Guzzle to use a middleware based system rather than an event system. Any
-HTTP message interaction (e.g., `GuzzleHttp\Message\Request`) need to be
-updated to work with the new immutable PSR-7 request and response objects. Any
-event listeners or subscribers need to be updated to become middleware
-functions that wrap handlers (or are injected into a
-`GuzzleHttp\HandlerStack`).
-
-- Removed `GuzzleHttp\BatchResults`
-- Removed `GuzzleHttp\Collection`
-- Removed `GuzzleHttp\HasDataTrait`
-- Removed `GuzzleHttp\ToArrayInterface`
-- The `guzzlehttp/streams` dependency has been removed. Stream functionality
-  is now present in the `GuzzleHttp\Psr7` namespace provided by the
-  `guzzlehttp/psr7` package.
-- Guzzle no longer uses ReactPHP promises and now uses the
-  `guzzlehttp/promises` library. We use a custom promise library for three
-  significant reasons:
-  1. React promises (at the time of writing this) are recursive. Promise
-     chaining and promise resolution will eventually blow the stack. Guzzle
-     promises are not recursive as they use a sort of trampolining technique.
-     Note: there has been movement in the React project to modify promises to
-     no longer utilize recursion.
-  2. Guzzle needs to have the ability to synchronously block on a promise to
-     wait for a result. Guzzle promises allows this functionality (and does
-     not require the use of recursion).
-  3. Because we need to be able to wait on a result, doing so using React
-     promises requires wrapping react promises with RingPHP futures. This
-     overhead is no longer needed, reducing stack sizes, reducing complexity,
-     and improving performance.
-- `GuzzleHttp\Mimetypes` has been moved to a function in
-  `GuzzleHttp\Psr7\mimetype_from_extension` and
-  `GuzzleHttp\Psr7\mimetype_from_filename`.
-- `GuzzleHttp\Query` and `GuzzleHttp\QueryParser` have been removed. Query
-  strings must now be passed into request objects as strings, or provided to
-  the `query` request option when creating requests with clients. The `query`
-  option uses PHP's `http_build_query` to convert an array to a string. If you
-  need a different serialization technique, you will need to pass the query
-  string in as a string. There are a couple helper functions that will make
-  working with query strings easier: `GuzzleHttp\Psr7\parse_query` and
-  `GuzzleHttp\Psr7\build_query`.
-- Guzzle no longer has a dependency on RingPHP. Due to the use of a middleware
-  system based on PSR-7, using RingPHP and it's middleware system as well adds
-  more complexity than the benefits it provides. All HTTP handlers that were
-  present in RingPHP have been modified to work directly with PSR-7 messages
-  and placed in the `GuzzleHttp\Handler` namespace. This significantly reduces
-  complexity in Guzzle, removes a dependency, and improves performance. RingPHP
-  will be maintained for Guzzle 5 support, but will no longer be a part of
-  Guzzle 6.
-- As Guzzle now uses a middleware based systems the event system and RingPHP
-  integration has been removed. Note: while the event system has been removed,
-  it is possible to add your own type of event system that is powered by the
-  middleware system.
-  - Removed the `Event` namespace.
-  - Removed the `Subscriber` namespace.
-  - Removed `Transaction` class
-  - Removed `RequestFsm`
-  - Removed `RingBridge`
-  - `GuzzleHttp\Subscriber\Cookie` is now provided by
-    `GuzzleHttp\Middleware::cookies`
-  - `GuzzleHttp\Subscriber\HttpError` is now provided by
-    `GuzzleHttp\Middleware::httpError`
-  - `GuzzleHttp\Subscriber\History` is now provided by
-    `GuzzleHttp\Middleware::history`
-  - `GuzzleHttp\Subscriber\Mock` is now provided by
-    `GuzzleHttp\Handler\MockHandler`
-  - `GuzzleHttp\Subscriber\Prepare` is now provided by
-    `GuzzleHttp\PrepareBodyMiddleware`
-  - `GuzzleHttp\Subscriber\Redirect` is now provided by
-    `GuzzleHttp\RedirectMiddleware`
-- Guzzle now uses `Psr\Http\Message\UriInterface` (implements in
-  `GuzzleHttp\Psr7\Uri`) for URI support. `GuzzleHttp\Url` is now gone.
-- Static functions in `GuzzleHttp\Utils` have been moved to namespaced
-  functions under the `GuzzleHttp` namespace. This requires either a Composer
-  based autoloader or you to include functions.php.
-- `GuzzleHttp\ClientInterface::getDefaultOption` has been renamed to
-  `GuzzleHttp\ClientInterface::getConfig`.
-- `GuzzleHttp\ClientInterface::setDefaultOption` has been removed.
-
-## Migrating to middleware
-
-The change to PSR-7 unfortunately required significant refactoring to Guzzle
-due to the fact that PSR-7 messages are immutable. Guzzle 5 relied on an event
-system from plugins. The event system relied on mutability of HTTP messages and
-side effects in order to work. With immutable messages, you have to change your
-workflow to become more about either returning a value (e.g., functional
-middlewares) or setting a value on an object. Guzzle v6 has chosen the
-functional middleware approach.
-
-Instead of using the event system to listen for things like the `before` event,
-you now create a stack based middleware function that intercepts a request on
-the way in and the promise of the response on the way out. This is a much
-simpler and more predictable approach than the event system and works nicely
-with PSR-7 middleware. Due to the use of promises, the middleware system is
-also asynchronous.
-
-v5:
-
-```php
-use GuzzleHttp\Event\BeforeEvent;
-$client = new GuzzleHttp\Client();
-// Get the emitter and listen to the before event.
-$client->getEmitter()->on('before', function (BeforeEvent $e) {
-    // Guzzle v5 events relied on mutation
-    $e->getRequest()->setHeader('X-Foo', 'Bar');
-});
-```
-
-v6:
-
-In v6, you can modify the request before it is sent using the `mapRequest`
-middleware. The idiomatic way in v6 to modify the request/response lifecycle is
-to setup a handler middleware stack up front and inject the handler into a
-client.
-
-```php
-use GuzzleHttp\Middleware;
-// Create a handler stack that has all of the default middlewares attached
-$handler = GuzzleHttp\HandlerStack::create();
-// Push the handler onto the handler stack
-$handler->push(Middleware::mapRequest(function (RequestInterface $request) {
-    // Notice that we have to return a request object
-    return $request->withHeader('X-Foo', 'Bar');
-});
-// Inject the handler into the client
-$client = new GuzzleHttp\Client(['handler' => $handler]);
-```
-
-## POST Requests
-
-This version added the [`form_params`](http://guzzle.readthedocs.org/en/latest/request-options.html#form_params)
-and `multipart` request options. `form_params` is an associative array of
-strings or array of strings and is used to serialize an
-`application/x-www-form-urlencoded` POST request. The
-[`multipart`](http://guzzle.readthedocs.org/en/latest/request-options.html#multipart)
-option is now used to send a multipart/form-data POST request.
-
-`GuzzleHttp\Post\PostFile` has been removed. Use the `multipart` option to add
-POST files to a multipart/form-data request.
-
-The `body` option no longer accepts an array to send POST requests. Please use
-`multipart` or `form_params` instead.
-
-The `base_url` option has been renamed to `base_uri`.
-
-4.x to 5.0
-----------
-
-## Rewritten Adapter Layer
-
-Guzzle now uses [RingPHP](http://ringphp.readthedocs.org/en/latest) to send
-HTTP requests. The `adapter` option in a `GuzzleHttp\Client` constructor
-is still supported, but it has now been renamed to `handler`. Instead of
-passing a `GuzzleHttp\Adapter\AdapterInterface`, you must now pass a PHP
-`callable` that follows the RingPHP specification.
-
-## Removed Fluent Interfaces
-
-[Fluent interfaces were removed](http://ocramius.github.io/blog/fluent-interfaces-are-evil)
-from the following classes:
-
-- `GuzzleHttp\Collection`
-- `GuzzleHttp\Url`
-- `GuzzleHttp\Query`
-- `GuzzleHttp\Post\PostBody`
-- `GuzzleHttp\Cookie\SetCookie`
-
-## Removed functions.php
-
-Removed "functions.php", so that Guzzle is truly PSR-4 compliant. The following
-functions can be used as replacements.
-
-- `GuzzleHttp\json_decode` -> `GuzzleHttp\Utils::jsonDecode`
-- `GuzzleHttp\get_path` -> `GuzzleHttp\Utils::getPath`
-- `GuzzleHttp\Utils::setPath` -> `GuzzleHttp\set_path`
-- `GuzzleHttp\Pool::batch` -> `GuzzleHttp\batch`. This function is, however,
-  deprecated in favor of using `GuzzleHttp\Pool::batch()`.
-
-The "procedural" global client has been removed with no replacement (e.g.,
-`GuzzleHttp\get()`, `GuzzleHttp\post()`, etc.). Use a `GuzzleHttp\Client`
-object as a replacement.
-
-## `throwImmediately` has been removed
-
-The concept of "throwImmediately" has been removed from exceptions and error
-events. This control mechanism was used to stop a transfer of concurrent
-requests from completing. This can now be handled by throwing the exception or
-by cancelling a pool of requests or each outstanding future request
-individually.
-
-## headers event has been removed
-
-Removed the "headers" event. This event was only useful for changing the
-body a response once the headers of the response were known. You can implement
-a similar behavior in a number of ways. One example might be to use a
-FnStream that has access to the transaction being sent. For example, when the
-first byte is written, you could check if the response headers match your
-expectations, and if so, change the actual stream body that is being
-written to.
-
-## Updates to HTTP Messages
-
-Removed the `asArray` parameter from
-`GuzzleHttp\Message\MessageInterface::getHeader`. If you want to get a header
-value as an array, then use the newly added `getHeaderAsArray()` method of
-`MessageInterface`. This change makes the Guzzle interfaces compatible with
-the PSR-7 interfaces.
-
-3.x to 4.0
-----------
-
-## Overarching changes:
-
-- Now requires PHP 5.4 or greater.
-- No longer requires cURL to send requests.
-- Guzzle no longer wraps every exception it throws. Only exceptions that are
-  recoverable are now wrapped by Guzzle.
-- Various namespaces have been removed or renamed.
-- No longer requiring the Symfony EventDispatcher. A custom event dispatcher
-  based on the Symfony EventDispatcher is
-  now utilized in `GuzzleHttp\Event\EmitterInterface` (resulting in significant
-  speed and functionality improvements).
-
-Changes per Guzzle 3.x namespace are described below.
-
-## Batch
-
-The `Guzzle\Batch` namespace has been removed. This is best left to
-third-parties to implement on top of Guzzle's core HTTP library.
-
-## Cache
-
-The `Guzzle\Cache` namespace has been removed. (Todo: No suitable replacement
-has been implemented yet, but hoping to utilize a PSR cache interface).
-
-## Common
-
-- Removed all of the wrapped exceptions. It's better to use the standard PHP
-  library for unrecoverable exceptions.
-- `FromConfigInterface` has been removed.
-- `Guzzle\Common\Version` has been removed. The VERSION constant can be found
-  at `GuzzleHttp\ClientInterface::VERSION`.
-
-### Collection
-
-- `getAll` has been removed. Use `toArray` to convert a collection to an array.
-- `inject` has been removed.
-- `keySearch` has been removed.
-- `getPath` no longer supports wildcard expressions. Use something better like
-  JMESPath for this.
-- `setPath` now supports appending to an existing array via the `[]` notation.
-
-### Events
-
-Guzzle no longer requires Symfony's EventDispatcher component. Guzzle now uses
-`GuzzleHttp\Event\Emitter`.
-
-- `Symfony\Component\EventDispatcher\EventDispatcherInterface` is replaced by
-  `GuzzleHttp\Event\EmitterInterface`.
-- `Symfony\Component\EventDispatcher\EventDispatcher` is replaced by
-  `GuzzleHttp\Event\Emitter`.
-- `Symfony\Component\EventDispatcher\Event` is replaced by
-  `GuzzleHttp\Event\Event`, and Guzzle now has an EventInterface in
-  `GuzzleHttp\Event\EventInterface`.
-- `AbstractHasDispatcher` has moved to a trait, `HasEmitterTrait`, and
-  `HasDispatcherInterface` has moved to `HasEmitterInterface`. Retrieving the
-  event emitter of a request, client, etc. now uses the `getEmitter` method
-  rather than the `getDispatcher` method.
-
-#### Emitter
-
-- Use the `once()` method to add a listener that automatically removes itself
-  the first time it is invoked.
-- Use the `listeners()` method to retrieve a list of event listeners rather than
-  the `getListeners()` method.
-- Use `emit()` instead of `dispatch()` to emit an event from an emitter.
-- Use `attach()` instead of `addSubscriber()` and `detach()` instead of
-  `removeSubscriber()`.
-
-```php
-$mock = new Mock();
-// 3.x
-$request->getEventDispatcher()->addSubscriber($mock);
-$request->getEventDispatcher()->removeSubscriber($mock);
-// 4.x
-$request->getEmitter()->attach($mock);
-$request->getEmitter()->detach($mock);
-```
-
-Use the `on()` method to add a listener rather than the `addListener()` method.
-
-```php
-// 3.x
-$request->getEventDispatcher()->addListener('foo', function (Event $event) { /* ... */ } );
-// 4.x
-$request->getEmitter()->on('foo', function (Event $event, $name) { /* ... */ } );
-```
-
-## Http
-
-### General changes
-
-- The cacert.pem certificate has been moved to `src/cacert.pem`.
-- Added the concept of adapters that are used to transfer requests over the
-  wire.
-- Simplified the event system.
-- Sending requests in parallel is still possible, but batching is no longer a
-  concept of the HTTP layer. Instead, you must use the `complete` and `error`
-  events to asynchronously manage parallel request transfers.
-- `Guzzle\Http\Url` has moved to `GuzzleHttp\Url`.
-- `Guzzle\Http\QueryString` has moved to `GuzzleHttp\Query`.
-- QueryAggregators have been rewritten so that they are simply callable
-  functions.
-- `GuzzleHttp\StaticClient` has been removed. Use the functions provided in
-  `functions.php` for an easy to use static client instance.
-- Exceptions in `GuzzleHttp\Exception` have been updated to all extend from
-  `GuzzleHttp\Exception\TransferException`.
-
-### Client
-
-Calling methods like `get()`, `post()`, `head()`, etc. no longer create and
-return a request, but rather creates a request, sends the request, and returns
-the response.
-
-```php
-// 3.0
-$request = $client->get('/');
-$response = $request->send();
-
-// 4.0
-$response = $client->get('/');
-
-// or, to mirror the previous behavior
-$request = $client->createRequest('GET', '/');
-$response = $client->send($request);
-```
-
-`GuzzleHttp\ClientInterface` has changed.
-
-- The `send` method no longer accepts more than one request. Use `sendAll` to
-  send multiple requests in parallel.
-- `setUserAgent()` has been removed. Use a default request option instead. You
-  could, for example, do something like:
-  `$client->setConfig('defaults/headers/User-Agent', 'Foo/Bar ' . $client::getDefaultUserAgent())`.
-- `setSslVerification()` has been removed. Use default request options instead,
-  like `$client->setConfig('defaults/verify', true)`.
-
-`GuzzleHttp\Client` has changed.
-
-- The constructor now accepts only an associative array. You can include a
-  `base_url` string or array to use a URI template as the base URL of a client.
-  You can also specify a `defaults` key that is an associative array of default
-  request options. You can pass an `adapter` to use a custom adapter,
-  `batch_adapter` to use a custom adapter for sending requests in parallel, or
-  a `message_factory` to change the factory used to create HTTP requests and
-  responses.
-- The client no longer emits a `client.create_request` event.
-- Creating requests with a client no longer automatically utilize a URI
-  template. You must pass an array into a creational method (e.g.,
-  `createRequest`, `get`, `put`, etc.) in order to expand a URI template.
-
-### Messages
-
-Messages no longer have references to their counterparts (i.e., a request no
-longer has a reference to it's response, and a response no loger has a
-reference to its request). This association is now managed through a
-`GuzzleHttp\Adapter\TransactionInterface` object. You can get references to
-these transaction objects using request events that are emitted over the
-lifecycle of a request.
-
-#### Requests with a body
-
-- `GuzzleHttp\Message\EntityEnclosingRequest` and
-  `GuzzleHttp\Message\EntityEnclosingRequestInterface` have been removed. The
-  separation between requests that contain a body and requests that do not
-  contain a body has been removed, and now `GuzzleHttp\Message\RequestInterface`
-  handles both use cases.
-- Any method that previously accepts a `GuzzleHttp\Response` object now accept a
-  `GuzzleHttp\Message\ResponseInterface`.
-- `GuzzleHttp\Message\RequestFactoryInterface` has been renamed to
-  `GuzzleHttp\Message\MessageFactoryInterface`. This interface is used to create
-  both requests and responses and is implemented in
-  `GuzzleHttp\Message\MessageFactory`.
-- POST field and file methods have been removed from the request object. You
-  must now use the methods made available to `GuzzleHttp\Post\PostBodyInterface`
-  to control the format of a POST body. Requests that are created using a
-  standard `GuzzleHttp\Message\MessageFactoryInterface` will automatically use
-  a `GuzzleHttp\Post\PostBody` body if the body was passed as an array or if
-  the method is POST and no body is provided.
-
-```php
-$request = $client->createRequest('POST', '/');
-$request->getBody()->setField('foo', 'bar');
-$request->getBody()->addFile(new PostFile('file_key', fopen('/path/to/content', 'r')));
-```
-
-#### Headers
-
-- `GuzzleHttp\Message\Header` has been removed. Header values are now simply
-  represented by an array of values or as a string. Header values are returned
-  as a string by default when retrieving a header value from a message. You can
-  pass an optional argument of `true` to retrieve a header value as an array
-  of strings instead of a single concatenated string.
-- `GuzzleHttp\PostFile` and `GuzzleHttp\PostFileInterface` have been moved to
-  `GuzzleHttp\Post`. This interface has been simplified and now allows the
-  addition of arbitrary headers.
-- Custom headers like `GuzzleHttp\Message\Header\Link` have been removed. Most
-  of the custom headers are now handled separately in specific
-  subscribers/plugins, and `GuzzleHttp\Message\HeaderValues::parseParams()` has
-  been updated to properly handle headers that contain parameters (like the
-  `Link` header).
-
-#### Responses
-
-- `GuzzleHttp\Message\Response::getInfo()` and
-  `GuzzleHttp\Message\Response::setInfo()` have been removed. Use the event
-  system to retrieve this type of information.
-- `GuzzleHttp\Message\Response::getRawHeaders()` has been removed.
-- `GuzzleHttp\Message\Response::getMessage()` has been removed.
-- `GuzzleHttp\Message\Response::calculateAge()` and other cache specific
-  methods have moved to the CacheSubscriber.
-- Header specific helper functions like `getContentMd5()` have been removed.
-  Just use `getHeader('Content-MD5')` instead.
-- `GuzzleHttp\Message\Response::setRequest()` and
-  `GuzzleHttp\Message\Response::getRequest()` have been removed. Use the event
-  system to work with request and response objects as a transaction.
-- `GuzzleHttp\Message\Response::getRedirectCount()` has been removed. Use the
-  Redirect subscriber instead.
-- `GuzzleHttp\Message\Response::isSuccessful()` and other related methods have
-  been removed. Use `getStatusCode()` instead.
-
-#### Streaming responses
-
-Streaming requests can now be created by a client directly, returning a
-`GuzzleHttp\Message\ResponseInterface` object that contains a body stream
-referencing an open PHP HTTP stream.
-
-```php
-// 3.0
-use Guzzle\Stream\PhpStreamRequestFactory;
-$request = $client->get('/');
-$factory = new PhpStreamRequestFactory();
-$stream = $factory->fromRequest($request);
-$data = $stream->read(1024);
-
-// 4.0
-$response = $client->get('/', ['stream' => true]);
-// Read some data off of the stream in the response body
-$data = $response->getBody()->read(1024);
-```
-
-#### Redirects
-
-The `configureRedirects()` method has been removed in favor of a
-`allow_redirects` request option.
-
-```php
-// Standard redirects with a default of a max of 5 redirects
-$request = $client->createRequest('GET', '/', ['allow_redirects' => true]);
-
-// Strict redirects with a custom number of redirects
-$request = $client->createRequest('GET', '/', [
-    'allow_redirects' => ['max' => 5, 'strict' => true]
-]);
-```
-
-#### EntityBody
-
-EntityBody interfaces and classes have been removed or moved to
-`GuzzleHttp\Stream`. All classes and interfaces that once required
-`GuzzleHttp\EntityBodyInterface` now require
-`GuzzleHttp\Stream\StreamInterface`. Creating a new body for a request no
-longer uses `GuzzleHttp\EntityBody::factory` but now uses
-`GuzzleHttp\Stream\Stream::factory` or even better:
-`GuzzleHttp\Stream\create()`.
-
-- `Guzzle\Http\EntityBodyInterface` is now `GuzzleHttp\Stream\StreamInterface`
-- `Guzzle\Http\EntityBody` is now `GuzzleHttp\Stream\Stream`
-- `Guzzle\Http\CachingEntityBody` is now `GuzzleHttp\Stream\CachingStream`
-- `Guzzle\Http\ReadLimitEntityBody` is now `GuzzleHttp\Stream\LimitStream`
-- `Guzzle\Http\IoEmittyinEntityBody` has been removed.
-
-#### Request lifecycle events
-
-Requests previously submitted a large number of requests. The number of events
-emitted over the lifecycle of a request has been significantly reduced to make
-it easier to understand how to extend the behavior of a request. All events
-emitted during the lifecycle of a request now emit a custom
-`GuzzleHttp\Event\EventInterface` object that contains context providing
-methods and a way in which to modify the transaction at that specific point in
-time (e.g., intercept the request and set a response on the transaction).
-
-- `request.before_send` has been renamed to `before` and now emits a
-  `GuzzleHttp\Event\BeforeEvent`
-- `request.complete` has been renamed to `complete` and now emits a
-  `GuzzleHttp\Event\CompleteEvent`.
-- `request.sent` has been removed. Use `complete`.
-- `request.success` has been removed. Use `complete`.
-- `error` is now an event that emits a `GuzzleHttp\Event\ErrorEvent`.
-- `request.exception` has been removed. Use `error`.
-- `request.receive.status_line` has been removed.
-- `curl.callback.progress` has been removed. Use a custom `StreamInterface` to
-  maintain a status update.
-- `curl.callback.write` has been removed. Use a custom `StreamInterface` to
-  intercept writes.
-- `curl.callback.read` has been removed. Use a custom `StreamInterface` to
-  intercept reads.
-
-`headers` is a new event that is emitted after the response headers of a
-request have been received before the body of the response is downloaded. This
-event emits a `GuzzleHttp\Event\HeadersEvent`.
-
-You can intercept a request and inject a response using the `intercept()` event
-of a `GuzzleHttp\Event\BeforeEvent`, `GuzzleHttp\Event\CompleteEvent`, and
-`GuzzleHttp\Event\ErrorEvent` event.
-
-See: http://docs.guzzlephp.org/en/latest/events.html
-
-## Inflection
-
-The `Guzzle\Inflection` namespace has been removed. This is not a core concern
-of Guzzle.
-
-## Iterator
-
-The `Guzzle\Iterator` namespace has been removed.
-
-- `Guzzle\Iterator\AppendIterator`, `Guzzle\Iterator\ChunkedIterator`, and
-  `Guzzle\Iterator\MethodProxyIterator` are nice, but not a core requirement of
-  Guzzle itself.
-- `Guzzle\Iterator\FilterIterator` is no longer needed because an equivalent
-  class is shipped with PHP 5.4.
-- `Guzzle\Iterator\MapIterator` is not really needed when using PHP 5.5 because
-  it's easier to just wrap an iterator in a generator that maps values.
-
-For a replacement of these iterators, see https://github.com/nikic/iter
-
-## Log
-
-The LogPlugin has moved to https://github.com/guzzle/log-subscriber. The
-`Guzzle\Log` namespace has been removed. Guzzle now relies on
-`Psr\Log\LoggerInterface` for all logging. The MessageFormatter class has been
-moved to `GuzzleHttp\Subscriber\Log\Formatter`.
-
-## Parser
-
-The `Guzzle\Parser` namespace has been removed. This was previously used to
-make it possible to plug in custom parsers for cookies, messages, URI
-templates, and URLs; however, this level of complexity is not needed in Guzzle
-so it has been removed.
-
-- Cookie: Cookie parsing logic has been moved to
-  `GuzzleHttp\Cookie\SetCookie::fromString`.
-- Message: Message parsing logic for both requests and responses has been moved
-  to `GuzzleHttp\Message\MessageFactory::fromMessage`. Message parsing is only
-  used in debugging or deserializing messages, so it doesn't make sense for
-  Guzzle as a library to add this level of complexity to parsing messages.
-- UriTemplate: URI template parsing has been moved to
-  `GuzzleHttp\UriTemplate`. The Guzzle library will automatically use the PECL
-  URI template library if it is installed.
-- Url: URL parsing is now performed in `GuzzleHttp\Url::fromString` (previously
-  it was `Guzzle\Http\Url::factory()`). If custom URL parsing is necessary,
-  then developers are free to subclass `GuzzleHttp\Url`.
-
-## Plugin
-
-The `Guzzle\Plugin` namespace has been renamed to `GuzzleHttp\Subscriber`.
-Several plugins are shipping with the core Guzzle library under this namespace.
-
-- `GuzzleHttp\Subscriber\Cookie`: Replaces the old CookiePlugin. Cookie jar
-  code has moved to `GuzzleHttp\Cookie`.
-- `GuzzleHttp\Subscriber\History`: Replaces the old HistoryPlugin.
-- `GuzzleHttp\Subscriber\HttpError`: Throws errors when a bad HTTP response is
-  received.
-- `GuzzleHttp\Subscriber\Mock`: Replaces the old MockPlugin.
-- `GuzzleHttp\Subscriber\Prepare`: Prepares the body of a request just before
-  sending. This subscriber is attached to all requests by default.
-- `GuzzleHttp\Subscriber\Redirect`: Replaces the RedirectPlugin.
-
-The following plugins have been removed (third-parties are free to re-implement
-these if needed):
-
-- `GuzzleHttp\Plugin\Async` has been removed.
-- `GuzzleHttp\Plugin\CurlAuth` has been removed.
-- `GuzzleHttp\Plugin\ErrorResponse\ErrorResponsePlugin` has been removed. This
-  functionality should instead be implemented with event listeners that occur
-  after normal response parsing occurs in the guzzle/command package.
-
-The following plugins are not part of the core Guzzle package, but are provided
-in separate repositories:
-
-- `Guzzle\Http\Plugin\BackoffPlugin` has been rewritten to be muchs simpler
-  to build custom retry policies using simple functions rather than various
-  chained classes. See: https://github.com/guzzle/retry-subscriber
-- `Guzzle\Http\Plugin\Cache\CachePlugin` has moved to
-  https://github.com/guzzle/cache-subscriber
-- `Guzzle\Http\Plugin\Log\LogPlugin` has moved to
-  https://github.com/guzzle/log-subscriber
-- `Guzzle\Http\Plugin\Md5\Md5Plugin` has moved to
-  https://github.com/guzzle/message-integrity-subscriber
-- `Guzzle\Http\Plugin\Mock\MockPlugin` has moved to
-  `GuzzleHttp\Subscriber\MockSubscriber`.
-- `Guzzle\Http\Plugin\Oauth\OauthPlugin` has moved to
-  https://github.com/guzzle/oauth-subscriber
-
-## Service
-
-The service description layer of Guzzle has moved into two separate packages:
-
-- http://github.com/guzzle/command Provides a high level abstraction over web
-  services by representing web service operations using commands.
-- http://github.com/guzzle/guzzle-services Provides an implementation of
-  guzzle/command that provides request serialization and response parsing using
-  Guzzle service descriptions.
-
-## Stream
-
-Stream have moved to a separate package available at
-https://github.com/guzzle/streams.
-
-`Guzzle\Stream\StreamInterface` has been given a large update to cleanly take
-on the responsibilities of `Guzzle\Http\EntityBody` and
-`Guzzle\Http\EntityBodyInterface` now that they have been removed. The number
-of methods implemented by the `StreamInterface` has been drastically reduced to
-allow developers to more easily extend and decorate stream behavior.
-
-## Removed methods from StreamInterface
-
-- `getStream` and `setStream` have been removed to better encapsulate streams.
-- `getMetadata` and `setMetadata` have been removed in favor of
-  `GuzzleHttp\Stream\MetadataStreamInterface`.
-- `getWrapper`, `getWrapperData`, `getStreamType`, and `getUri` have all been
-  removed. This data is accessible when
-  using streams that implement `GuzzleHttp\Stream\MetadataStreamInterface`.
-- `rewind` has been removed. Use `seek(0)` for a similar behavior.
-
-## Renamed methods
-
-- `detachStream` has been renamed to `detach`.
-- `feof` has been renamed to `eof`.
-- `ftell` has been renamed to `tell`.
-- `readLine` has moved from an instance method to a static class method of
-  `GuzzleHttp\Stream\Stream`.
-
-## Metadata streams
-
-`GuzzleHttp\Stream\MetadataStreamInterface` has been added to denote streams
-that contain additional metadata accessible via `getMetadata()`.
-`GuzzleHttp\Stream\StreamInterface::getMetadata` and
-`GuzzleHttp\Stream\StreamInterface::setMetadata` have been removed.
-
-## StreamRequestFactory
-
-The entire concept of the StreamRequestFactory has been removed. The way this
-was used in Guzzle 3 broke the actual interface of sending streaming requests
-(instead of getting back a Response, you got a StreamInterface). Streeaming
-PHP requests are now implemented throught the `GuzzleHttp\Adapter\StreamAdapter`.
-
-3.6 to 3.7
-----------
-
-### Deprecations
-
-- You can now enable E_USER_DEPRECATED warnings to see if you are using any deprecated methods.:
-
-```php
-\Guzzle\Common\Version::$emitWarnings = true;
-```
-
-The following APIs and options have been marked as deprecated:
-
-- Marked `Guzzle\Http\Message\Request::isResponseBodyRepeatable()` as deprecated. Use `$request->getResponseBody()->isRepeatable()` instead.
-- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-- Marked `Guzzle\Http\Message\Request::canCache()` as deprecated. Use `Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest()` instead.
-- Marked `Guzzle\Http\Message\Request::setIsRedirect()` as deprecated. Use the HistoryPlugin instead.
-- Marked `Guzzle\Http\Message\Request::isRedirect()` as deprecated. Use the HistoryPlugin instead.
-- Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
-- Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
-- Marked `Guzzle\Parser\Url\UrlParser` as deprecated. Just use PHP's `parse_url()` and percent encode your UTF-8.
-- Marked `Guzzle\Common\Collection::inject()` as deprecated.
-- Marked `Guzzle\Plugin\CurlAuth\CurlAuthPlugin` as deprecated. Use
-  `$client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));` or
-  `$client->setDefaultOption('auth', array('user', 'pass', 'Basic|Digest|NTLM|Any'));`
-
-3.7 introduces `request.options` as a parameter for a client configuration and as an optional argument to all creational
-request methods. When paired with a client's configuration settings, these options allow you to specify default settings
-for various aspects of a request. Because these options make other previous configuration options redundant, several
-configuration options and methods of a client and AbstractCommand have been deprecated.
-
-- Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use `$client->getDefaultOption('headers')`.
-- Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use `$client->setDefaultOption('headers/{header_name}', 'value')`.
-- Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use `$client->setDefaultOption('params/{param_name}', 'value')`
-- Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand. These will work through Guzzle 4.0
-
-        $command = $client->getCommand('foo', array(
-            'command.headers' => array('Test' => '123'),
-            'command.response_body' => '/path/to/file'
-        ));
-
-        // Should be changed to:
-
-        $command = $client->getCommand('foo', array(
-            'command.request_options' => array(
-                'headers' => array('Test' => '123'),
-                'save_as' => '/path/to/file'
-            )
-        ));
-
-### Interface changes
-
-Additions and changes (you will need to update any implementations or subclasses you may have created):
-
-- Added an `$options` argument to the end of the following methods of `Guzzle\Http\ClientInterface`:
-  createRequest, head, delete, put, patch, post, options, prepareRequest
-- Added an `$options` argument to the end of `Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()`
-- Added an `applyOptions()` method to `Guzzle\Http\Message\Request\RequestFactoryInterface`
-- Changed `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null)` to
-  `Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array())`. You can still pass in a
-  resource, string, or EntityBody into the $options parameter to specify the download location of the response.
-- Changed `Guzzle\Common\Collection::__construct($data)` to no longer accepts a null value for `$data` but a
-  default `array()`
-- Added `Guzzle\Stream\StreamInterface::isRepeatable`
-- Made `Guzzle\Http\Client::expandTemplate` and `getUriTemplate` protected methods.
-
-The following methods were removed from interfaces. All of these methods are still available in the concrete classes
-that implement them, but you should update your code to use alternative methods:
-
-- Removed `Guzzle\Http\ClientInterface::setDefaultHeaders(). Use
-  `$client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`. or
-  `$client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))` or
-  `$client->setDefaultOption('headers/{header_name}', 'value')`. or
-  `$client->setDefaultOption('headers', array('header_name' => 'value'))`.
-- Removed `Guzzle\Http\ClientInterface::getDefaultHeaders(). Use `$client->getConfig()->getPath('request.options/headers')`.
-- Removed `Guzzle\Http\ClientInterface::expandTemplate()`. This is an implementation detail.
-- Removed `Guzzle\Http\ClientInterface::setRequestFactory()`. This is an implementation detail.
-- Removed `Guzzle\Http\ClientInterface::getCurlMulti()`. This is a very specific implementation detail.
-- Removed `Guzzle\Http\Message\RequestInterface::canCache`. Use the CachePlugin.
-- Removed `Guzzle\Http\Message\RequestInterface::setIsRedirect`. Use the HistoryPlugin.
-- Removed `Guzzle\Http\Message\RequestInterface::isRedirect`. Use the HistoryPlugin.
-
-### Cache plugin breaking changes
-
-- CacheKeyProviderInterface and DefaultCacheKeyProvider are no longer used. All of this logic is handled in a
-  CacheStorageInterface. These two objects and interface will be removed in a future version.
-- Always setting X-cache headers on cached responses
-- Default cache TTLs are now handled by the CacheStorageInterface of a CachePlugin
-- `CacheStorageInterface::cache($key, Response $response, $ttl = null)` has changed to `cache(RequestInterface
-  $request, Response $response);`
-- `CacheStorageInterface::fetch($key)` has changed to `fetch(RequestInterface $request);`
-- `CacheStorageInterface::delete($key)` has changed to `delete(RequestInterface $request);`
-- Added `CacheStorageInterface::purge($url)`
-- `DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
-  $plugin)` has changed to `DefaultRevalidation::__construct(CacheStorageInterface $cache,
-  CanCacheStrategyInterface $canCache = null)`
-- Added `RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)`
-
-3.5 to 3.6
-----------
-
-* Mixed casing of headers are now forced to be a single consistent casing across all values for that header.
-* Messages internally use a HeaderCollection object to delegate handling case-insensitive header resolution
-* Removed the whole changedHeader() function system of messages because all header changes now go through addHeader().
-  For example, setHeader() first removes the header using unset on a HeaderCollection and then calls addHeader().
-  Keeping the Host header and URL host in sync is now handled by overriding the addHeader method in Request.
-* Specific header implementations can be created for complex headers. When a message creates a header, it uses a
-  HeaderFactory which can map specific headers to specific header classes. There is now a Link header and
-  CacheControl header implementation.
-* Moved getLinks() from Response to just be used on a Link header object.
-
-If you previously relied on Guzzle\Http\Message\Header::raw(), then you will need to update your code to use the
-HeaderInterface (e.g. toArray(), getAll(), etc.).
-
-### Interface changes
-
-* Removed from interface: Guzzle\Http\ClientInterface::setUriTemplate
-* Removed from interface: Guzzle\Http\ClientInterface::setCurlMulti()
-* Removed Guzzle\Http\Message\Request::receivedRequestHeader() and implemented this functionality in
-  Guzzle\Http\Curl\RequestMediator
-* Removed the optional $asString parameter from MessageInterface::getHeader(). Just cast the header to a string.
-* Removed the optional $tryChunkedTransfer option from Guzzle\Http\Message\EntityEnclosingRequestInterface
-* Removed the $asObjects argument from Guzzle\Http\Message\MessageInterface::getHeaders()
-
-### Removed deprecated functions
-
-* Removed Guzzle\Parser\ParserRegister::get(). Use getParser()
-* Removed Guzzle\Parser\ParserRegister::set(). Use registerParser().
-
-### Deprecations
-
-* The ability to case-insensitively search for header values
-* Guzzle\Http\Message\Header::hasExactHeader
-* Guzzle\Http\Message\Header::raw. Use getAll()
-* Deprecated cache control specific methods on Guzzle\Http\Message\AbstractMessage. Use the CacheControl header object
-  instead.
-
-### Other changes
-
-* All response header helper functions return a string rather than mixing Header objects and strings inconsistently
-* Removed cURL blacklist support. This is no longer necessary now that Expect, Accept, etc. are managed by Guzzle
-  directly via interfaces
-* Removed the injecting of a request object onto a response object. The methods to get and set a request still exist
-  but are a no-op until removed.
-* Most classes that used to require a `Guzzle\Service\Command\CommandInterface` typehint now request a
-  `Guzzle\Service\Command\ArrayCommandInterface`.
-* Added `Guzzle\Http\Message\RequestInterface::startResponse()` to the RequestInterface to handle injecting a response
-  on a request while the request is still being transferred
-* `Guzzle\Service\Command\CommandInterface` now extends from ToArrayInterface and ArrayAccess
-
-3.3 to 3.4
-----------
-
-Base URLs of a client now follow the rules of http://tools.ietf.org/html/rfc3986#section-5.2.2 when merging URLs.
-
-3.2 to 3.3
-----------
-
-### Response::getEtag() quote stripping removed
-
-`Guzzle\Http\Message\Response::getEtag()` no longer strips quotes around the ETag response header
-
-### Removed `Guzzle\Http\Utils`
-
-The `Guzzle\Http\Utils` class was removed. This class was only used for testing.
-
-### Stream wrapper and type
-
-`Guzzle\Stream\Stream::getWrapper()` and `Guzzle\Stream\Stream::getStreamType()` are no longer converted to lowercase.
-
-### curl.emit_io became emit_io
-
-Emitting IO events from a RequestMediator is now a parameter that must be set in a request's curl options using the
-'emit_io' key. This was previously set under a request's parameters using 'curl.emit_io'
-
-3.1 to 3.2
-----------
-
-### CurlMulti is no longer reused globally
-
-Before 3.2, the same CurlMulti object was reused globally for each client. This can cause issue where plugins added
-to a single client can pollute requests dispatched from other clients.
-
-If you still wish to reuse the same CurlMulti object with each client, then you can add a listener to the
-ServiceBuilder's `service_builder.create_client` event to inject a custom CurlMulti object into each client as it is
-created.
-
-```php
-$multi = new Guzzle\Http\Curl\CurlMulti();
-$builder = Guzzle\Service\Builder\ServiceBuilder::factory('/path/to/config.json');
-$builder->addListener('service_builder.create_client', function ($event) use ($multi) {
-    $event['client']->setCurlMulti($multi);
-}
-});
-```
-
-### No default path
-
-URLs no longer have a default path value of '/' if no path was specified.
-
-Before:
-
-```php
-$request = $client->get('http://www.foo.com');
-echo $request->getUrl();
-// >> http://www.foo.com/
-```
-
-After:
-
-```php
-$request = $client->get('http://www.foo.com');
-echo $request->getUrl();
-// >> http://www.foo.com
-```
-
-### Less verbose BadResponseException
-
-The exception message for `Guzzle\Http\Exception\BadResponseException` no longer contains the full HTTP request and
-response information. You can, however, get access to the request and response object by calling `getRequest()` or
-`getResponse()` on the exception object.
-
-### Query parameter aggregation
-
-Multi-valued query parameters are no longer aggregated using a callback function. `Guzzle\Http\Query` now has a
-setAggregator() method that accepts a `Guzzle\Http\QueryAggregator\QueryAggregatorInterface` object. This object is
-responsible for handling the aggregation of multi-valued query string variables into a flattened hash.
-
-2.8 to 3.x
-----------
-
-### Guzzle\Service\Inspector
-
-Change `\Guzzle\Service\Inspector::fromConfig` to `\Guzzle\Common\Collection::fromConfig`
-
-**Before**
-
-```php
-use Guzzle\Service\Inspector;
-
-class YourClient extends \Guzzle\Service\Client
-{
-    public static function factory($config = array())
-    {
-        $default = array();
-        $required = array('base_url', 'username', 'api_key');
-        $config = Inspector::fromConfig($config, $default, $required);
-
-        $client = new self(
-            $config->get('base_url'),
-            $config->get('username'),
-            $config->get('api_key')
-        );
-        $client->setConfig($config);
-
-        $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json'));
-
-        return $client;
-    }
-```
-
-**After**
-
-```php
-use Guzzle\Common\Collection;
-
-class YourClient extends \Guzzle\Service\Client
-{
-    public static function factory($config = array())
-    {
-        $default = array();
-        $required = array('base_url', 'username', 'api_key');
-        $config = Collection::fromConfig($config, $default, $required);
-
-        $client = new self(
-            $config->get('base_url'),
-            $config->get('username'),
-            $config->get('api_key')
-        );
-        $client->setConfig($config);
-
-        $client->setDescription(ServiceDescription::factory(__DIR__ . DIRECTORY_SEPARATOR . 'client.json'));
-
-        return $client;
-    }
-```
-
-### Convert XML Service Descriptions to JSON
-
-**Before**
-
-```xml
-<?xml version="1.0" encoding="UTF-8"?>
-<client>
-    <commands>
-        <!-- Groups -->
-        <command name="list_groups" method="GET" uri="groups.json">
-            <doc>Get a list of groups</doc>
-        </command>
-        <command name="search_groups" method="GET" uri='search.json?query="{{query}} type:group"'>
-            <doc>Uses a search query to get a list of groups</doc>
-            <param name="query" type="string" required="true" />
-        </command>
-        <command name="create_group" method="POST" uri="groups.json">
-            <doc>Create a group</doc>
-            <param name="data" type="array" location="body" filters="json_encode" doc="Group JSON"/>
-            <param name="Content-Type" location="header" static="application/json"/>
-        </command>
-        <command name="delete_group" method="DELETE" uri="groups/{{id}}.json">
-            <doc>Delete a group by ID</doc>
-            <param name="id" type="integer" required="true"/>
-        </command>
-        <command name="get_group" method="GET" uri="groups/{{id}}.json">
-            <param name="id" type="integer" required="true"/>
-        </command>
-        <command name="update_group" method="PUT" uri="groups/{{id}}.json">
-            <doc>Update a group</doc>
-            <param name="id" type="integer" required="true"/>
-            <param name="data" type="array" location="body" filters="json_encode" doc="Group JSON"/>
-            <param name="Content-Type" location="header" static="application/json"/>
-        </command>
-    </commands>
-</client>
-```
-
-**After**
-
-```json
-{
-    "name":       "Zendesk REST API v2",
-    "apiVersion": "2012-12-31",
-    "description":"Provides access to Zendesk views, groups, tickets, ticket fields, and users",
-    "operations": {
-        "list_groups":  {
-            "httpMethod":"GET",
-            "uri":       "groups.json",
-            "summary":   "Get a list of groups"
-        },
-        "search_groups":{
-            "httpMethod":"GET",
-            "uri":       "search.json?query=\"{query} type:group\"",
-            "summary":   "Uses a search query to get a list of groups",
-            "parameters":{
-                "query":{
-                    "location":   "uri",
-                    "description":"Zendesk Search Query",
-                    "type":       "string",
-                    "required":   true
-                }
-            }
-        },
-        "create_group": {
-            "httpMethod":"POST",
-            "uri":       "groups.json",
-            "summary":   "Create a group",
-            "parameters":{
-                "data":        {
-                    "type":       "array",
-                    "location":   "body",
-                    "description":"Group JSON",
-                    "filters":    "json_encode",
-                    "required":   true
-                },
-                "Content-Type":{
-                    "type":    "string",
-                    "location":"header",
-                    "static":  "application/json"
-                }
-            }
-        },
-        "delete_group": {
-            "httpMethod":"DELETE",
-            "uri":       "groups/{id}.json",
-            "summary":   "Delete a group",
-            "parameters":{
-                "id":{
-                    "location":   "uri",
-                    "description":"Group to delete by ID",
-                    "type":       "integer",
-                    "required":   true
-                }
-            }
-        },
-        "get_group":    {
-            "httpMethod":"GET",
-            "uri":       "groups/{id}.json",
-            "summary":   "Get a ticket",
-            "parameters":{
-                "id":{
-                    "location":   "uri",
-                    "description":"Group to get by ID",
-                    "type":       "integer",
-                    "required":   true
-                }
-            }
-        },
-        "update_group": {
-            "httpMethod":"PUT",
-            "uri":       "groups/{id}.json",
-            "summary":   "Update a group",
-            "parameters":{
-                "id":          {
-                    "location":   "uri",
-                    "description":"Group to update by ID",
-                    "type":       "integer",
-                    "required":   true
-                },
-                "data":        {
-                    "type":       "array",
-                    "location":   "body",
-                    "description":"Group JSON",
-                    "filters":    "json_encode",
-                    "required":   true
-                },
-                "Content-Type":{
-                    "type":    "string",
-                    "location":"header",
-                    "static":  "application/json"
-                }
-            }
-        }
-}
-```
-
-### Guzzle\Service\Description\ServiceDescription
-
-Commands are now called Operations
-
-**Before**
-
-```php
-use Guzzle\Service\Description\ServiceDescription;
-
-$sd = new ServiceDescription();
-$sd->getCommands();     // @returns ApiCommandInterface[]
-$sd->hasCommand($name);
-$sd->getCommand($name); // @returns ApiCommandInterface|null
-$sd->addCommand($command); // @param ApiCommandInterface $command
-```
-
-**After**
-
-```php
-use Guzzle\Service\Description\ServiceDescription;
-
-$sd = new ServiceDescription();
-$sd->getOperations();           // @returns OperationInterface[]
-$sd->hasOperation($name);
-$sd->getOperation($name);       // @returns OperationInterface|null
-$sd->addOperation($operation);  // @param OperationInterface $operation
-```
-
-### Guzzle\Common\Inflection\Inflector
-
-Namespace is now `Guzzle\Inflection\Inflector`
-
-### Guzzle\Http\Plugin
-
-Namespace is now `Guzzle\Plugin`. Many other changes occur within this namespace and are detailed in their own sections below.
-
-### Guzzle\Http\Plugin\LogPlugin and Guzzle\Common\Log
-
-Now `Guzzle\Plugin\Log\LogPlugin` and `Guzzle\Log` respectively.
-
-**Before**
-
-```php
-use Guzzle\Common\Log\ClosureLogAdapter;
-use Guzzle\Http\Plugin\LogPlugin;
-
-/** @var \Guzzle\Http\Client */
-$client;
-
-// $verbosity is an integer indicating desired message verbosity level
-$client->addSubscriber(new LogPlugin(new ClosureLogAdapter(function($m) { echo $m; }, $verbosity = LogPlugin::LOG_VERBOSE);
-```
-
-**After**
-
-```php
-use Guzzle\Log\ClosureLogAdapter;
-use Guzzle\Log\MessageFormatter;
-use Guzzle\Plugin\Log\LogPlugin;
-
-/** @var \Guzzle\Http\Client */
-$client;
-
-// $format is a string indicating desired message format -- @see MessageFormatter
-$client->addSubscriber(new LogPlugin(new ClosureLogAdapter(function($m) { echo $m; }, $format = MessageFormatter::DEBUG_FORMAT);
-```
-
-### Guzzle\Http\Plugin\CurlAuthPlugin
-
-Now `Guzzle\Plugin\CurlAuth\CurlAuthPlugin`.
-
-### Guzzle\Http\Plugin\ExponentialBackoffPlugin
-
-Now `Guzzle\Plugin\Backoff\BackoffPlugin`, and other changes.
-
-**Before**
-
-```php
-use Guzzle\Http\Plugin\ExponentialBackoffPlugin;
-
-$backoffPlugin = new ExponentialBackoffPlugin($maxRetries, array_merge(
-        ExponentialBackoffPlugin::getDefaultFailureCodes(), array(429)
-    ));
-
-$client->addSubscriber($backoffPlugin);
-```
-
-**After**
-
-```php
-use Guzzle\Plugin\Backoff\BackoffPlugin;
-use Guzzle\Plugin\Backoff\HttpBackoffStrategy;
-
-// Use convenient factory method instead -- see implementation for ideas of what
-// you can do with chaining backoff strategies
-$backoffPlugin = BackoffPlugin::getExponentialBackoff($maxRetries, array_merge(
-        HttpBackoffStrategy::getDefaultFailureCodes(), array(429)
-    ));
-$client->addSubscriber($backoffPlugin);
-```
-
-### Known Issues
-
-#### [BUG] Accept-Encoding header behavior changed unintentionally.
-
-(See #217) (Fixed in 09daeb8c666fb44499a0646d655a8ae36456575e)
-
-In version 2.8 setting the `Accept-Encoding` header would set the CURLOPT_ENCODING option, which permitted cURL to
-properly handle gzip/deflate compressed responses from the server. In versions affected by this bug this does not happen.
-See issue #217 for a workaround, or use a version containing the fix.
diff --git a/core/vendor/guzzlehttp/guzzle/composer.json b/core/vendor/guzzlehttp/guzzle/composer.json
deleted file mode 100644
index 35ccb8a..0000000
--- a/core/vendor/guzzlehttp/guzzle/composer.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-    "name": "guzzlehttp/guzzle",
-    "type": "library",
-    "description": "Guzzle is a PHP HTTP client library",
-    "keywords": ["framework", "http", "rest", "web service", "curl", "client", "HTTP client"],
-    "homepage": "http://guzzlephp.org/",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Michael Dowling",
-            "email": "mtdowling@gmail.com",
-            "homepage": "https://github.com/mtdowling"
-        }
-    ],
-    "require": {
-        "php": ">=5.5.0",
-        "guzzlehttp/psr7": "~1.1",
-        "guzzlehttp/promises": "~1.0"
-    },
-    "require-dev": {
-        "ext-curl": "*",
-        "phpunit/phpunit": "~4.0",
-        "psr/log": "~1.0"
-    },
-    "autoload": {
-        "files": ["src/functions_include.php"],
-        "psr-4": {
-            "GuzzleHttp\\": "src/"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "GuzzleHttp\\Tests\\": "tests/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "6.0-dev"
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Client.php b/core/vendor/guzzlehttp/guzzle/src/Client.php
deleted file mode 100644
index 74f5cfe..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Client.php
+++ /dev/null
@@ -1,393 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Cookie\CookieJar;
-use GuzzleHttp\Promise;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\UriInterface;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use \InvalidArgumentException as Iae;
-
-/**
- * @method ResponseInterface get($uri, array $options = [])
- * @method ResponseInterface head($uri, array $options = [])
- * @method ResponseInterface put($uri, array $options = [])
- * @method ResponseInterface post($uri, array $options = [])
- * @method ResponseInterface patch($uri, array $options = [])
- * @method ResponseInterface delete($uri, array $options = [])
- * @method Promise\PromiseInterface getAsync($uri, array $options = [])
- * @method Promise\PromiseInterface headAsync($uri, array $options = [])
- * @method Promise\PromiseInterface putAsync($uri, array $options = [])
- * @method Promise\PromiseInterface postAsync($uri, array $options = [])
- * @method Promise\PromiseInterface patchAsync($uri, array $options = [])
- * @method Promise\PromiseInterface deleteAsync($uri, array $options = [])
- */
-class Client implements ClientInterface
-{
-    /** @var array Default request options */
-    private $config;
-
-    /**
-     * Clients accept an array of constructor parameters.
-     *
-     * Here's an example of creating a client using a base_uri and an array of
-     * default request options to apply to each request:
-     *
-     *     $client = new Client([
-     *         'base_uri'        => 'http://www.foo.com/1.0/',
-     *         'timeout'         => 0,
-     *         'allow_redirects' => false,
-     *         'proxy'           => '192.168.16.1:10'
-     *     ]);
-     *
-     * Client configuration settings include the following options:
-     *
-     * - handler: (callable) Function that transfers HTTP requests over the
-     *   wire. The function is called with a Psr7\Http\Message\RequestInterface
-     *   and array of transfer options, and must return a
-     *   GuzzleHttp\Promise\PromiseInterface that is fulfilled with a
-     *   Psr7\Http\Message\ResponseInterface on success. "handler" is a
-     *   constructor only option that cannot be overridden in per/request
-     *   options. If no handler is provided, a default handler will be created
-     *   that enables all of the request options below by attaching all of the
-     *   default middleware to the handler.
-     * - base_uri: (string|UriInterface) Base URI of the client that is merged
-     *   into relative URIs. Can be a string or instance of UriInterface.
-     * - **: any request option
-     *
-     * @param array $config Client configuration settings.
-     *
-     * @see \GuzzleHttp\RequestOptions for a list of available request options.
-     */
-    public function __construct(array $config = [])
-    {
-        if (!isset($config['handler'])) {
-            $config['handler'] = HandlerStack::create();
-        }
-
-        // Convert the base_uri to a UriInterface
-        if (isset($config['base_uri'])) {
-            $config['base_uri'] = Psr7\uri_for($config['base_uri']);
-        }
-
-        $this->configureDefaults($config);
-    }
-
-    public function __call($method, $args)
-    {
-        if (count($args) < 1) {
-            throw new \InvalidArgumentException('Magic request methods require a URI and optional options array');
-        }
-
-        $uri = $args[0];
-        $opts = isset($args[1]) ? $args[1] : [];
-
-        return substr($method, -5) === 'Async'
-            ? $this->requestAsync(substr($method, 0, -5), $uri, $opts)
-            : $this->request($method, $uri, $opts);
-    }
-
-    public function sendAsync(RequestInterface $request, array $options = [])
-    {
-        // Merge the base URI into the request URI if needed.
-        $options = $this->prepareDefaults($options);
-
-        return $this->transfer(
-            $request->withUri($this->buildUri($request->getUri(), $options)),
-            $options
-        );
-    }
-
-    public function send(RequestInterface $request, array $options = [])
-    {
-        $options[RequestOptions::SYNCHRONOUS] = true;
-        return $this->sendAsync($request, $options)->wait();
-    }
-
-    public function requestAsync($method, $uri = null, array $options = [])
-    {
-        $options = $this->prepareDefaults($options);
-        // Remove request modifying parameter because it can be done up-front.
-        $headers = isset($options['headers']) ? $options['headers'] : [];
-        $body = isset($options['body']) ? $options['body'] : null;
-        $version = isset($options['version']) ? $options['version'] : '1.1';
-        // Merge the URI into the base URI.
-        $uri = $this->buildUri($uri, $options);
-        if (is_array($body)) {
-            $this->invalidBody();
-        }
-        $request = new Psr7\Request($method, $uri, $headers, $body, $version);
-        // Remove the option so that they are not doubly-applied.
-        unset($options['headers'], $options['body'], $options['version']);
-
-        return $this->transfer($request, $options);
-    }
-
-    public function request($method, $uri = null, array $options = [])
-    {
-        $options[RequestOptions::SYNCHRONOUS] = true;
-        return $this->requestAsync($method, $uri, $options)->wait();
-    }
-
-    public function getConfig($option = null)
-    {
-        return $option === null
-            ? $this->config
-            : (isset($this->config[$option]) ? $this->config[$option] : null);
-    }
-
-    private function buildUri($uri, array $config)
-    {
-        if (!isset($config['base_uri'])) {
-            return $uri instanceof UriInterface ? $uri : new Psr7\Uri($uri);
-        }
-
-        return Psr7\Uri::resolve(Psr7\uri_for($config['base_uri']), $uri);
-    }
-
-    /**
-     * Configures the default options for a client.
-     *
-     * @param array $config
-     *
-     * @return array
-     */
-    private function configureDefaults(array $config)
-    {
-        $defaults = [
-            'allow_redirects' => RedirectMiddleware::$defaultSettings,
-            'http_errors'     => true,
-            'decode_content'  => true,
-            'verify'          => true,
-            'cookies'         => false
-        ];
-
-        // Use the standard Linux HTTP_PROXY and HTTPS_PROXY if set
-        if ($proxy = getenv('HTTP_PROXY')) {
-            $defaults['proxy']['http'] = $proxy;
-        }
-
-        if ($proxy = getenv('HTTPS_PROXY')) {
-            $defaults['proxy']['https'] = $proxy;
-        }
-
-        $this->config = $config + $defaults;
-
-        if (!empty($config['cookies']) && $config['cookies'] === true) {
-            $this->config['cookies'] = new CookieJar();
-        }
-
-        // Add the default user-agent header.
-        if (!isset($this->config['headers'])) {
-            $this->config['headers'] = ['User-Agent' => default_user_agent()];
-        } else {
-            // Add the User-Agent header if one was not already set.
-            foreach (array_keys($this->config['headers']) as $name) {
-                if (strtolower($name) === 'user-agent') {
-                    return;
-                }
-            }
-            $this->config['headers']['User-Agent'] = default_user_agent();
-        }
-    }
-
-    /**
-     * Merges default options into the array.
-     *
-     * @param array $options Options to modify by reference
-     *
-     * @return array
-     */
-    private function prepareDefaults($options)
-    {
-        $defaults = $this->config;
-
-        if (!empty($defaults['headers'])) {
-            // Default headers are only added if they are not present.
-            $defaults['_conditional'] = $defaults['headers'];
-            unset($defaults['headers']);
-        }
-
-        // Special handling for headers is required as they are added as
-        // conditional headers and as headers passed to a request ctor.
-        if (array_key_exists('headers', $options)) {
-            // Allows default headers to be unset.
-            if ($options['headers'] === null) {
-                $defaults['_conditional'] = null;
-                unset($options['headers']);
-            } elseif (!is_array($options['headers'])) {
-                throw new \InvalidArgumentException('headers must be an array');
-            }
-        }
-
-        // Shallow merge defaults underneath options.
-        $result = $options + $defaults;
-
-        // Remove null values.
-        foreach ($result as $k => $v) {
-            if ($v === null) {
-                unset($result[$k]);
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Transfers the given request and applies request options.
-     *
-     * The URI of the request is not modified and the request options are used
-     * as-is without merging in default options.
-     *
-     * @param RequestInterface $request
-     * @param array            $options
-     *
-     * @return Promise\PromiseInterface
-     */
-    private function transfer(RequestInterface $request, array $options)
-    {
-        // save_to -> sink
-        if (isset($options['save_to'])) {
-            $options['sink'] = $options['save_to'];
-            unset($options['save_to']);
-        }
-
-        // exceptions -> http_error
-        if (isset($options['exceptions'])) {
-            $options['http_errors'] = $options['exceptions'];
-            unset($options['exceptions']);
-        }
-
-        $request = $this->applyOptions($request, $options);
-        $handler = $options['handler'];
-
-        try {
-            return Promise\promise_for($handler($request, $options));
-        } catch (\Exception $e) {
-            return Promise\rejection_for($e);
-        }
-    }
-
-    /**
-     * Applies the array of request options to a request.
-     *
-     * @param RequestInterface $request
-     * @param array            $options
-     *
-     * @return RequestInterface
-     */
-    private function applyOptions(RequestInterface $request, array &$options)
-    {
-        $modify = [];
-
-        if (isset($options['form_params'])) {
-            if (isset($options['multipart'])) {
-                throw new \InvalidArgumentException('You cannot use '
-                    . 'form_params and multipart at the same time. Use the '
-                    . 'form_params option if you want to send application/'
-                    . 'x-www-form-urlencoded requests, and the multipart '
-                    . 'option to send multipart/form-data requests.');
-            }
-            $options['body'] = http_build_query($options['form_params'], null, '&');
-            unset($options['form_params']);
-            $options['_conditional']['Content-Type'] = 'application/x-www-form-urlencoded';
-        }
-
-        if (isset($options['multipart'])) {
-            $elements = $options['multipart'];
-            unset($options['multipart']);
-            $options['body'] = new Psr7\MultipartStream($elements);
-            // Use a multipart/form-data POST if a Content-Type is not set.
-            $options['_conditional']['Content-Type'] = 'multipart/form-data; boundary='
-                . $options['body']->getBoundary();
-        }
-
-        if (!empty($options['decode_content'])
-            && $options['decode_content'] !== true
-        ) {
-            $modify['set_headers']['Accept-Encoding'] = $options['decode_content'];
-        }
-
-        if (isset($options['headers'])) {
-            if (isset($modify['set_headers'])) {
-                $modify['set_headers'] = $options['headers'] + $modify['set_headers'];
-            } else {
-                $modify['set_headers'] = $options['headers'];
-            }
-            unset($options['headers']);
-        }
-
-        if (isset($options['body'])) {
-            if (is_array($options['body'])) {
-                $this->invalidBody();
-            }
-            $modify['body'] = Psr7\stream_for($options['body']);
-            unset($options['body']);
-        }
-
-        if (!empty($options['auth'])) {
-            $value = $options['auth'];
-            $type = is_array($value)
-                ? (isset($value[2]) ? strtolower($value[2]) : 'basic')
-                : $value;
-            $config['auth'] = $value;
-            switch (strtolower($type)) {
-                case 'basic':
-                    $modify['set_headers']['Authorization'] = 'Basic '
-                        . base64_encode("$value[0]:$value[1]");
-                    break;
-                case 'digest':
-                    // @todo: Do not rely on curl
-                    $options['curl'][CURLOPT_HTTPAUTH] = CURLAUTH_DIGEST;
-                    $options['curl'][CURLOPT_USERPWD] = "$value[0]:$value[1]";
-                    break;
-            }
-        }
-
-        if (isset($options['query'])) {
-            $value = $options['query'];
-            if (is_array($value)) {
-                $value = http_build_query($value, null, '&', PHP_QUERY_RFC3986);
-            }
-            if (!is_string($value)) {
-                throw new Iae('query must be a string or array');
-            }
-            $modify['query'] = $value;
-            unset($options['query']);
-        }
-
-        if (isset($options['json'])) {
-            $modify['body'] = Psr7\stream_for(json_encode($options['json']));
-            $options['_conditional']['Content-Type'] = 'application/json';
-            unset($options['json']);
-        }
-
-        $request = Psr7\modify_request($request, $modify);
-
-        // Merge in conditional headers if they are not present.
-        if (isset($options['_conditional'])) {
-            // Build up the changes so it's in a single clone of the message.
-            $modify = [];
-            foreach ($options['_conditional'] as $k => $v) {
-                if (!$request->hasHeader($k)) {
-                    $modify['set_headers'][$k] = $v;
-                }
-            }
-            $request = Psr7\modify_request($request, $modify);
-            // Don't pass this internal value along to middleware/handlers.
-            unset($options['_conditional']);
-        }
-
-        return $request;
-    }
-
-    private function invalidBody()
-    {
-        throw new \InvalidArgumentException('Passing in the "body" request '
-            . 'option as an array to send a POST request has been deprecated. '
-            . 'Please use the "form_params" request option to send a '
-            . 'application/x-www-form-urlencoded request, or a the "multipart" '
-            . 'request option to send a multipart/form-data request.');
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php b/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php
deleted file mode 100644
index 7d155e5..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Exception\GuzzleException;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * Client interface for sending HTTP requests.
- */
-interface ClientInterface
-{
-    const VERSION = '6.0.2';
-
-    /**
-     * Send an HTTP request.
-     *
-     * @param RequestInterface $request Request to send
-     * @param array            $options Request options to apply to the given
-     *                                  request and to the transfer.
-     *
-     * @return ResponseInterface
-     * @throws GuzzleException
-     */
-    public function send(RequestInterface $request, array $options = []);
-
-    /**
-     * Asynchronously send an HTTP request.
-     *
-     * @param RequestInterface $request Request to send
-     * @param array            $options Request options to apply to the given
-     *                                  request and to the transfer.
-     *
-     * @return PromiseInterface
-     */
-    public function sendAsync(RequestInterface $request, array $options = []);
-
-    /**
-     * Create and send an HTTP request.
-     *
-     * Use an absolute path to override the base path of the client, or a
-     * relative path to append to the base path of the client. The URL can
-     * contain the query string as well.
-     *
-     * @param string              $method  HTTP method
-     * @param string|UriInterface $uri     URI object or string.
-     * @param array               $options Request options to apply.
-     *
-     * @return ResponseInterface
-     * @throws GuzzleException
-     */
-    public function request($method, $uri, array $options = []);
-
-    /**
-     * Create and send an asynchronous HTTP request.
-     *
-     * Use an absolute path to override the base path of the client, or a
-     * relative path to append to the base path of the client. The URL can
-     * contain the query string as well. Use an array to provide a URL
-     * template and additional variables to use in the URL template expansion.
-     *
-     * @param string              $method  HTTP method
-     * @param string|UriInterface $uri     URI object or string.
-     * @param array               $options Request options to apply.
-     *
-     * @return PromiseInterface
-     */
-    public function requestAsync($method, $uri, array $options = []);
-
-    /**
-     * Get a client configuration option.
-     *
-     * These options include default request options of the client, a "handler"
-     * (if utilized by the concrete client), and a "base_uri" if utilized by
-     * the concrete client.
-     *
-     * @param string|null $option The config option to retrieve.
-     *
-     * @return mixed
-     */
-    public function getConfig($option = null);
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php b/core/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php
deleted file mode 100644
index 4270469..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-namespace GuzzleHttp\Cookie;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * Cookie jar that stores cookies an an array
- */
-class CookieJar implements CookieJarInterface
-{
-    /** @var SetCookie[] Loaded cookie data */
-    private $cookies = [];
-
-    /** @var bool */
-    private $strictMode;
-
-    /**
-     * @param bool $strictMode   Set to true to throw exceptions when invalid
-     *                           cookies are added to the cookie jar.
-     * @param array $cookieArray Array of SetCookie objects or a hash of arrays
-     *                           that can be used with the SetCookie constructor
-     */
-    public function __construct($strictMode = false, $cookieArray = [])
-    {
-        $this->strictMode = $strictMode;
-
-        foreach ($cookieArray as $cookie) {
-            if (!($cookie instanceof SetCookie)) {
-                $cookie = new SetCookie($cookie);
-            }
-            $this->setCookie($cookie);
-        }
-    }
-
-    /**
-     * Create a new Cookie jar from an associative array and domain.
-     *
-     * @param array  $cookies Cookies to create the jar from
-     * @param string $domain  Domain to set the cookies to
-     *
-     * @return self
-     */
-    public static function fromArray(array $cookies, $domain)
-    {
-        $cookieJar = new self();
-        foreach ($cookies as $name => $value) {
-            $cookieJar->setCookie(new SetCookie([
-                'Domain'  => $domain,
-                'Name'    => $name,
-                'Value'   => $value,
-                'Discard' => true
-            ]));
-        }
-
-        return $cookieJar;
-    }
-
-    /**
-     * Quote the cookie value if it is not already quoted and it contains
-     * problematic characters.
-     *
-     * @param string $value Value that may or may not need to be quoted
-     *
-     * @return string
-     */
-    public static function getCookieValue($value)
-    {
-        if (substr($value, 0, 1) !== '"' &&
-            substr($value, -1, 1) !== '"' &&
-            strpbrk($value, ';,')
-        ) {
-            $value = '"' . $value . '"';
-        }
-
-        return $value;
-    }
-
-    public function toArray()
-    {
-        return array_map(function (SetCookie $cookie) {
-            return $cookie->toArray();
-        }, $this->getIterator()->getArrayCopy());
-    }
-
-    public function clear($domain = null, $path = null, $name = null)
-    {
-        if (!$domain) {
-            $this->cookies = [];
-            return;
-        } elseif (!$path) {
-            $this->cookies = array_filter(
-                $this->cookies,
-                function (SetCookie $cookie) use ($path, $domain) {
-                    return !$cookie->matchesDomain($domain);
-                }
-            );
-        } elseif (!$name) {
-            $this->cookies = array_filter(
-                $this->cookies,
-                function (SetCookie $cookie) use ($path, $domain) {
-                    return !($cookie->matchesPath($path) &&
-                        $cookie->matchesDomain($domain));
-                }
-            );
-        } else {
-            $this->cookies = array_filter(
-                $this->cookies,
-                function (SetCookie $cookie) use ($path, $domain, $name) {
-                    return !($cookie->getName() == $name &&
-                        $cookie->matchesPath($path) &&
-                        $cookie->matchesDomain($domain));
-                }
-            );
-        }
-    }
-
-    public function clearSessionCookies()
-    {
-        $this->cookies = array_filter(
-            $this->cookies,
-            function (SetCookie $cookie) {
-                return !$cookie->getDiscard() && $cookie->getExpires();
-            }
-        );
-    }
-
-    public function setCookie(SetCookie $cookie)
-    {
-        // Only allow cookies with set and valid domain, name, value
-        $result = $cookie->validate();
-        if ($result !== true) {
-            if ($this->strictMode) {
-                throw new \RuntimeException('Invalid cookie: ' . $result);
-            } else {
-                $this->removeCookieIfEmpty($cookie);
-                return false;
-            }
-        }
-
-        // Resolve conflicts with previously set cookies
-        foreach ($this->cookies as $i => $c) {
-
-            // Two cookies are identical, when their path, and domain are
-            // identical.
-            if ($c->getPath() != $cookie->getPath() ||
-                $c->getDomain() != $cookie->getDomain() ||
-                $c->getName() != $cookie->getName()
-            ) {
-                continue;
-            }
-
-            // The previously set cookie is a discard cookie and this one is
-            // not so allow the new cookie to be set
-            if (!$cookie->getDiscard() && $c->getDiscard()) {
-                unset($this->cookies[$i]);
-                continue;
-            }
-
-            // If the new cookie's expiration is further into the future, then
-            // replace the old cookie
-            if ($cookie->getExpires() > $c->getExpires()) {
-                unset($this->cookies[$i]);
-                continue;
-            }
-
-            // If the value has changed, we better change it
-            if ($cookie->getValue() !== $c->getValue()) {
-                unset($this->cookies[$i]);
-                continue;
-            }
-
-            // The cookie exists, so no need to continue
-            return false;
-        }
-
-        $this->cookies[] = $cookie;
-
-        return true;
-    }
-
-    public function count()
-    {
-        return count($this->cookies);
-    }
-
-    public function getIterator()
-    {
-        return new \ArrayIterator(array_values($this->cookies));
-    }
-
-    public function extractCookies(
-        RequestInterface $request,
-        ResponseInterface $response
-    ) {
-        if ($cookieHeader = $response->getHeader('Set-Cookie')) {
-            foreach ($cookieHeader as $cookie) {
-                $sc = SetCookie::fromString($cookie);
-                if (!$sc->getDomain()) {
-                    $sc->setDomain($request->getUri()->getHost());
-                }
-                $this->setCookie($sc);
-            }
-        }
-    }
-
-    public function withCookieHeader(RequestInterface $request)
-    {
-        $values = [];
-        $uri = $request->getUri();
-        $scheme = $uri->getScheme();
-        $host = $uri->getHost();
-        $path = $uri->getPath() ?: '/';
-
-        foreach ($this->cookies as $cookie) {
-            if ($cookie->matchesPath($path) &&
-                $cookie->matchesDomain($host) &&
-                !$cookie->isExpired() &&
-                (!$cookie->getSecure() || $scheme == 'https')
-            ) {
-                $values[] = $cookie->getName() . '='
-                    . self::getCookieValue($cookie->getValue());
-            }
-        }
-
-        return $values
-            ? $request->withHeader('Cookie', implode('; ', $values))
-            : $request;
-    }
-
-    /**
-     * If a cookie already exists and the server asks to set it again with a
-     * null value, the cookie must be deleted.
-     *
-     * @param SetCookie $cookie
-     */
-    private function removeCookieIfEmpty(SetCookie $cookie)
-    {
-        $cookieValue = $cookie->getValue();
-        if ($cookieValue === null || $cookieValue === '') {
-            $this->clear(
-                $cookie->getDomain(),
-                $cookie->getPath(),
-                $cookie->getName()
-            );
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php b/core/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php
deleted file mode 100644
index 2cf298a..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-namespace GuzzleHttp\Cookie;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * Stores HTTP cookies.
- *
- * It extracts cookies from HTTP requests, and returns them in HTTP responses.
- * CookieJarInterface instances automatically expire contained cookies when
- * necessary. Subclasses are also responsible for storing and retrieving
- * cookies from a file, database, etc.
- *
- * @link http://docs.python.org/2/library/cookielib.html Inspiration
- */
-interface CookieJarInterface extends \Countable, \IteratorAggregate
-{
-    /**
-     * Create a request with added cookie headers.
-     *
-     * If no matching cookies are found in the cookie jar, then no Cookie
-     * header is added to the request and the same request is returned.
-     *
-     * @param RequestInterface $request Request object to modify.
-     *
-     * @return RequestInterface returns the modified request.
-     */
-    public function withCookieHeader(RequestInterface $request);
-
-    /**
-     * Extract cookies from an HTTP response and store them in the CookieJar.
-     *
-     * @param RequestInterface  $request  Request that was sent
-     * @param ResponseInterface $response Response that was received
-     */
-    public function extractCookies(
-        RequestInterface $request,
-        ResponseInterface $response
-    );
-
-    /**
-     * Sets a cookie in the cookie jar.
-     *
-     * @param SetCookie $cookie Cookie to set.
-     *
-     * @return bool Returns true on success or false on failure
-     */
-    public function setCookie(SetCookie $cookie);
-
-    /**
-     * Remove cookies currently held in the cookie jar.
-     *
-     * Invoking this method without arguments will empty the whole cookie jar.
-     * If given a $domain argument only cookies belonging to that domain will
-     * be removed. If given a $domain and $path argument, cookies belonging to
-     * the specified path within that domain are removed. If given all three
-     * arguments, then the cookie with the specified name, path and domain is
-     * removed.
-     *
-     * @param string $domain Clears cookies matching a domain
-     * @param string $path   Clears cookies matching a domain and path
-     * @param string $name   Clears cookies matching a domain, path, and name
-     *
-     * @return CookieJarInterface
-     */
-    public function clear($domain = null, $path = null, $name = null);
-
-    /**
-     * Discard all sessions cookies.
-     *
-     * Removes cookies that don't have an expire field or a have a discard
-     * field set to true. To be called when the user agent shuts down according
-     * to RFC 2965.
-     */
-    public function clearSessionCookies();
-
-    /**
-     * Converts the cookie jar to an array.
-     *
-     * @return array
-     */
-    public function toArray();
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php b/core/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php
deleted file mode 100644
index 28cfad5..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-namespace GuzzleHttp\Cookie;
-
-/**
- * Persists non-session cookies using a JSON formatted file
- */
-class FileCookieJar extends CookieJar
-{
-    /** @var string filename */
-    private $filename;
-
-    /**
-     * Create a new FileCookieJar object
-     *
-     * @param string $cookieFile File to store the cookie data
-     *
-     * @throws \RuntimeException if the file cannot be found or created
-     */
-    public function __construct($cookieFile)
-    {
-        $this->filename = $cookieFile;
-
-        if (file_exists($cookieFile)) {
-            $this->load($cookieFile);
-        }
-    }
-
-    /**
-     * Saves the file when shutting down
-     */
-    public function __destruct()
-    {
-        $this->save($this->filename);
-    }
-
-    /**
-     * Saves the cookies to a file.
-     *
-     * @param string $filename File to save
-     * @throws \RuntimeException if the file cannot be found or created
-     */
-    public function save($filename)
-    {
-        $json = [];
-        foreach ($this as $cookie) {
-            /** @var SetCookie $cookie */
-            if ($cookie->getExpires() && !$cookie->getDiscard()) {
-                $json[] = $cookie->toArray();
-            }
-        }
-
-        if (false === file_put_contents($filename, json_encode($json))) {
-            throw new \RuntimeException("Unable to save file {$filename}");
-        }
-    }
-
-    /**
-     * Load cookies from a JSON formatted file.
-     *
-     * Old cookies are kept unless overwritten by newly loaded ones.
-     *
-     * @param string $filename Cookie file to load.
-     * @throws \RuntimeException if the file cannot be loaded.
-     */
-    public function load($filename)
-    {
-        $json = file_get_contents($filename);
-        if (false === $json) {
-            throw new \RuntimeException("Unable to load file {$filename}");
-        }
-
-        $data = json_decode($json, true);
-        if (is_array($data)) {
-            foreach (json_decode($json, true) as $cookie) {
-                $this->setCookie(new SetCookie($cookie));
-            }
-        } elseif (strlen($data)) {
-            throw new \RuntimeException("Invalid cookie file: {$filename}");
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php b/core/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php
deleted file mode 100644
index 1688eb6..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-namespace GuzzleHttp\Cookie;
-
-/**
- * Persists cookies in the client session
- */
-class SessionCookieJar extends CookieJar
-{
-    /** @var string session key */
-    private $sessionKey;
-
-    /**
-     * Create a new SessionCookieJar object
-     *
-     * @param string $sessionKey Session key name to store the cookie data in session
-     */
-    public function __construct($sessionKey)
-    {
-        $this->sessionKey = $sessionKey;
-        $this->load();
-    }
-
-    /**
-     * Saves cookies to session when shutting down
-     */
-    public function __destruct()
-    {
-        $this->save();
-    }
-
-    /**
-     * Save cookies to the client session
-     */
-    public function save()
-    {
-        $json = [];
-        foreach ($this as $cookie) {
-            /** @var SetCookie $cookie */
-            if ($cookie->getExpires() && !$cookie->getDiscard()) {
-                $json[] = $cookie->toArray();
-            }
-        }
-
-        $_SESSION[$this->sessionKey] = json_encode($json);
-    }
-
-    /**
-     * Load the contents of the client session into the data array
-     */
-    protected function load()
-    {
-        $cookieJar = isset($_SESSION[$this->sessionKey])
-            ? $_SESSION[$this->sessionKey]
-            : null;
-
-        $data = json_decode($cookieJar, true);
-        if (is_array($data)) {
-            foreach ($data as $cookie) {
-                $this->setCookie(new SetCookie($cookie));
-            }
-        } elseif (strlen($data)) {
-            throw new \RuntimeException("Invalid cookie data");
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php b/core/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php
deleted file mode 100644
index 8613e25..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php
+++ /dev/null
@@ -1,371 +0,0 @@
-<?php
-namespace GuzzleHttp\Cookie;
-
-/**
- * Set-Cookie object
- */
-class SetCookie
-{
-    /** @var array */
-    private static $defaults = [
-        'Name'     => null,
-        'Value'    => null,
-        'Domain'   => null,
-        'Path'     => '/',
-        'Max-Age'  => null,
-        'Expires'  => null,
-        'Secure'   => false,
-        'Discard'  => false,
-        'HttpOnly' => false
-    ];
-
-    /** @var array Cookie data */
-    private $data;
-
-    /**
-     * Create a new SetCookie object from a string
-     *
-     * @param string $cookie Set-Cookie header string
-     *
-     * @return self
-     */
-    public static function fromString($cookie)
-    {
-        // Create the default return array
-        $data = self::$defaults;
-        // Explode the cookie string using a series of semicolons
-        $pieces = array_filter(array_map('trim', explode(';', $cookie)));
-        // The name of the cookie (first kvp) must include an equal sign.
-        if (empty($pieces) || !strpos($pieces[0], '=')) {
-            return new self($data);
-        }
-
-        // Add the cookie pieces into the parsed data array
-        foreach ($pieces as $part) {
-
-            $cookieParts = explode('=', $part, 2);
-            $key = trim($cookieParts[0]);
-            $value = isset($cookieParts[1])
-                ? trim($cookieParts[1], " \n\r\t\0\x0B\"")
-                : true;
-
-            // Only check for non-cookies when cookies have been found
-            if (empty($data['Name'])) {
-                $data['Name'] = $key;
-                $data['Value'] = $value;
-            } else {
-                foreach (array_keys(self::$defaults) as $search) {
-                    if (!strcasecmp($search, $key)) {
-                        $data[$search] = $value;
-                        continue 2;
-                    }
-                }
-                $data[$key] = $value;
-            }
-        }
-
-        return new self($data);
-    }
-
-    /**
-     * @param array $data Array of cookie data provided by a Cookie parser
-     */
-    public function __construct(array $data = [])
-    {
-        $this->data = array_replace(self::$defaults, $data);
-        // Extract the Expires value and turn it into a UNIX timestamp if needed
-        if (!$this->getExpires() && $this->getMaxAge()) {
-            // Calculate the Expires date
-            $this->setExpires(time() + $this->getMaxAge());
-        } elseif ($this->getExpires() && !is_numeric($this->getExpires())) {
-            $this->setExpires($this->getExpires());
-        }
-    }
-
-    public function __toString()
-    {
-        $str = $this->data['Name'] . '=' . $this->data['Value'] . '; ';
-        foreach ($this->data as $k => $v) {
-            if ($k != 'Name' && $k != 'Value' && $v !== null && $v !== false) {
-                if ($k == 'Expires') {
-                    $str .= 'Expires=' . gmdate('D, d M Y H:i:s \G\M\T', $v) . '; ';
-                } else {
-                    $str .= ($v === true ? $k : "{$k}={$v}") . '; ';
-                }
-            }
-        }
-
-        return rtrim($str, '; ');
-    }
-
-    public function toArray()
-    {
-        return $this->data;
-    }
-
-    /**
-     * Get the cookie name
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->data['Name'];
-    }
-
-    /**
-     * Set the cookie name
-     *
-     * @param string $name Cookie name
-     */
-    public function setName($name)
-    {
-        $this->data['Name'] = $name;
-    }
-
-    /**
-     * Get the cookie value
-     *
-     * @return string
-     */
-    public function getValue()
-    {
-        return $this->data['Value'];
-    }
-
-    /**
-     * Set the cookie value
-     *
-     * @param string $value Cookie value
-     */
-    public function setValue($value)
-    {
-        $this->data['Value'] = $value;
-    }
-
-    /**
-     * Get the domain
-     *
-     * @return string|null
-     */
-    public function getDomain()
-    {
-        return $this->data['Domain'];
-    }
-
-    /**
-     * Set the domain of the cookie
-     *
-     * @param string $domain
-     */
-    public function setDomain($domain)
-    {
-        $this->data['Domain'] = $domain;
-    }
-
-    /**
-     * Get the path
-     *
-     * @return string
-     */
-    public function getPath()
-    {
-        return $this->data['Path'];
-    }
-
-    /**
-     * Set the path of the cookie
-     *
-     * @param string $path Path of the cookie
-     */
-    public function setPath($path)
-    {
-        $this->data['Path'] = $path;
-    }
-
-    /**
-     * Maximum lifetime of the cookie in seconds
-     *
-     * @return int|null
-     */
-    public function getMaxAge()
-    {
-        return $this->data['Max-Age'];
-    }
-
-    /**
-     * Set the max-age of the cookie
-     *
-     * @param int $maxAge Max age of the cookie in seconds
-     */
-    public function setMaxAge($maxAge)
-    {
-        $this->data['Max-Age'] = $maxAge;
-    }
-
-    /**
-     * The UNIX timestamp when the cookie Expires
-     *
-     * @return mixed
-     */
-    public function getExpires()
-    {
-        return $this->data['Expires'];
-    }
-
-    /**
-     * Set the unix timestamp for which the cookie will expire
-     *
-     * @param int $timestamp Unix timestamp
-     */
-    public function setExpires($timestamp)
-    {
-        $this->data['Expires'] = is_numeric($timestamp)
-            ? (int) $timestamp
-            : strtotime($timestamp);
-    }
-
-    /**
-     * Get whether or not this is a secure cookie
-     *
-     * @return null|bool
-     */
-    public function getSecure()
-    {
-        return $this->data['Secure'];
-    }
-
-    /**
-     * Set whether or not the cookie is secure
-     *
-     * @param bool $secure Set to true or false if secure
-     */
-    public function setSecure($secure)
-    {
-        $this->data['Secure'] = $secure;
-    }
-
-    /**
-     * Get whether or not this is a session cookie
-     *
-     * @return null|bool
-     */
-    public function getDiscard()
-    {
-        return $this->data['Discard'];
-    }
-
-    /**
-     * Set whether or not this is a session cookie
-     *
-     * @param bool $discard Set to true or false if this is a session cookie
-     */
-    public function setDiscard($discard)
-    {
-        $this->data['Discard'] = $discard;
-    }
-
-    /**
-     * Get whether or not this is an HTTP only cookie
-     *
-     * @return bool
-     */
-    public function getHttpOnly()
-    {
-        return $this->data['HttpOnly'];
-    }
-
-    /**
-     * Set whether or not this is an HTTP only cookie
-     *
-     * @param bool $httpOnly Set to true or false if this is HTTP only
-     */
-    public function setHttpOnly($httpOnly)
-    {
-        $this->data['HttpOnly'] = $httpOnly;
-    }
-
-    /**
-     * Check if the cookie matches a path value
-     *
-     * @param string $path Path to check against
-     *
-     * @return bool
-     */
-    public function matchesPath($path)
-    {
-        return !$this->getPath() || 0 === stripos($path, $this->getPath());
-    }
-
-    /**
-     * Check if the cookie matches a domain value
-     *
-     * @param string $domain Domain to check against
-     *
-     * @return bool
-     */
-    public function matchesDomain($domain)
-    {
-        // Remove the leading '.' as per spec in RFC 6265.
-        // http://tools.ietf.org/html/rfc6265#section-5.2.3
-        $cookieDomain = ltrim($this->getDomain(), '.');
-
-        // Domain not set or exact match.
-        if (!$cookieDomain || !strcasecmp($domain, $cookieDomain)) {
-            return true;
-        }
-
-        // Matching the subdomain according to RFC 6265.
-        // http://tools.ietf.org/html/rfc6265#section-5.1.3
-        if (filter_var($domain, FILTER_VALIDATE_IP)) {
-            return false;
-        }
-
-        return (bool) preg_match('/\.' . preg_quote($cookieDomain) . '$/i', $domain);
-    }
-
-    /**
-     * Check if the cookie is expired
-     *
-     * @return bool
-     */
-    public function isExpired()
-    {
-        return $this->getExpires() && time() > $this->getExpires();
-    }
-
-    /**
-     * Check if the cookie is valid according to RFC 6265
-     *
-     * @return bool|string Returns true if valid or an error message if invalid
-     */
-    public function validate()
-    {
-        // Names must not be empty, but can be 0
-        $name = $this->getName();
-        if (empty($name) && !is_numeric($name)) {
-            return 'The cookie name must not be empty';
-        }
-
-        // Check if any of the invalid characters are present in the cookie name
-        if (preg_match('/[\x00-\x20\x22\x28-\x29\x2c\x2f\x3a-\x40\x5b-\x5d\x7b\x7d\x7f]/', $name)) {
-            return 'Cookie name must not contain invalid characters: ASCII Control characters (0-31;127), space, tab and the following characters: ()<>@,;:\"/[]?={}';
-        }
-
-        // Value must not be empty, but can be 0
-        $value = $this->getValue();
-        if (empty($value) && !is_numeric($value)) {
-            return 'The cookie value must not be empty';
-        }
-
-        // Domains must not be empty, but can be 0
-        // A "0" is not a valid internet domain, but may be used as server name
-        // in a private network.
-        $domain = $this->getDomain();
-        if (empty($domain) && !is_numeric($domain)) {
-            return 'The cookie domain must not be empty';
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php
deleted file mode 100644
index fd78431..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-/**
- * Exception when an HTTP error occurs (4xx or 5xx error)
- */
-class BadResponseException extends RequestException {}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php
deleted file mode 100644
index f95c09f..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-/**
- * Exception when a client error is encountered (4xx codes)
- */
-class ClientException extends BadResponseException {}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php
deleted file mode 100644
index d33b0cc..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Exception thrown when a connection cannot be established.
- *
- * Note that no response is present for a ConnectException
- */
-class ConnectException extends RequestException
-{
-    public function __construct(
-        $message,
-        RequestInterface $request,
-        \Exception $previous = null,
-        array $handlerContext = []
-    ) {
-        parent::__construct($message, $request, null, $previous, $handlerContext);
-    }
-
-    /**
-     * @return null
-     */
-    public function getResponse()
-    {
-        return null;
-    }
-
-    /**
-     * @return bool
-     */
-    public function hasResponse()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php
deleted file mode 100644
index c82998e..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-interface GuzzleException {}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
deleted file mode 100644
index 23dd02c..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use GuzzleHttp\Promise\PromiseInterface;
-
-/**
- * HTTP Request exception
- */
-class RequestException extends TransferException
-{
-    /** @var RequestInterface */
-    private $request;
-
-    /** @var ResponseInterface */
-    private $response;
-
-    /** @var array */
-    private $handlerContext;
-
-    public function __construct(
-        $message,
-        RequestInterface $request,
-        ResponseInterface $response = null,
-        \Exception $previous = null,
-        array $handlerContext = []
-    ) {
-        // Set the code of the exception if the response is set and not future.
-        $code = $response && !($response instanceof PromiseInterface)
-            ? $response->getStatusCode()
-            : 0;
-        parent::__construct($message, $code, $previous);
-        $this->request = $request;
-        $this->response = $response;
-        $this->handlerContext = $handlerContext;
-    }
-
-    /**
-     * Wrap non-RequestExceptions with a RequestException
-     *
-     * @param RequestInterface $request
-     * @param \Exception       $e
-     *
-     * @return RequestException
-     */
-    public static function wrapException(RequestInterface $request, \Exception $e)
-    {
-        return $e instanceof RequestException
-            ? $e
-            : new RequestException($e->getMessage(), $request, null, $e);
-    }
-
-    /**
-     * Factory method to create a new exception with a normalized error message
-     *
-     * @param RequestInterface  $request  Request
-     * @param ResponseInterface $response Response received
-     * @param \Exception        $previous Previous exception
-     * @param array             $ctx      Optional handler context.
-     *
-     * @return self
-     */
-    public static function create(
-        RequestInterface $request,
-        ResponseInterface $response = null,
-        \Exception $previous = null,
-        array $ctx = []
-    ) {
-        if (!$response) {
-            return new self(
-                'Error completing request',
-                $request,
-                null,
-                $previous,
-                $ctx
-            );
-        }
-
-        $level = floor($response->getStatusCode() / 100);
-        if ($level == '4') {
-            $label = 'Client error response';
-            $className = __NAMESPACE__ . '\\ClientException';
-        } elseif ($level == '5') {
-            $label = 'Server error response';
-            $className = __NAMESPACE__ . '\\ServerException';
-        } else {
-            $label = 'Unsuccessful response';
-            $className = __CLASS__;
-        }
-
-        $message = $label . ' [url] ' . $request->getUri()
-            . ' [http method] ' . $request->getMethod()
-            . ' [status code] ' . $response->getStatusCode()
-            . ' [reason phrase] ' . $response->getReasonPhrase();
-
-        return new $className($message, $request, $response, $previous, $ctx);
-    }
-
-    /**
-     * Get the request that caused the exception
-     *
-     * @return RequestInterface
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    /**
-     * Get the associated response
-     *
-     * @return ResponseInterface|null
-     */
-    public function getResponse()
-    {
-        return $this->response;
-    }
-
-    /**
-     * Check if a response was received
-     *
-     * @return bool
-     */
-    public function hasResponse()
-    {
-        return $this->response !== null;
-    }
-
-    /**
-     * Get contextual information about the error from the underlying handler.
-     *
-     * The contents of this array will vary depending on which handler you are
-     * using. It may also be just an empty array. Relying on this data will
-     * couple you to a specific handler, but can give more debug information
-     * when needed.
-     *
-     * @return array
-     */
-    public function getHandlerContext()
-    {
-        return $this->handlerContext;
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php
deleted file mode 100644
index a77c289..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Exception thrown when a seek fails on a stream.
- */
-class SeekException extends \RuntimeException implements GuzzleException
-{
-    private $stream;
-
-    public function __construct(StreamInterface $stream, $pos = 0, $msg = '')
-    {
-        $this->stream = $stream;
-        $msg = $msg ?: 'Could not seek the stream to position ' . $pos;
-        parent::__construct($msg);
-    }
-
-    /**
-     * @return StreamInterface
-     */
-    public function getStream()
-    {
-        return $this->stream;
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php
deleted file mode 100644
index 7cdd340..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-/**
- * Exception when a server error is encountered (5xx codes)
- */
-class ServerException extends BadResponseException {}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php
deleted file mode 100644
index b60a967..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-class TooManyRedirectsException extends RequestException {}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php
deleted file mode 100644
index b92071c..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-namespace GuzzleHttp\Exception;
-
-class TransferException extends \RuntimeException implements GuzzleException {}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php b/core/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php
deleted file mode 100644
index dcf374d..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php
+++ /dev/null
@@ -1,507 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use GuzzleHttp\Exception\RequestException;
-use GuzzleHttp\Exception\ConnectException;
-use GuzzleHttp\Promise\FulfilledPromise;
-use GuzzleHttp\Promise\RejectedPromise;
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\LazyOpenStream;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Creates curl resources from a request
- */
-class CurlFactory implements CurlFactoryInterface
-{
-    /** @var array */
-    private $handles;
-
-    /** @var int Total number of idle handles to keep in cache */
-    private $maxHandles;
-
-    /**
-     * @param int $maxHandles Maximum number of idle handles.
-     */
-    public function __construct($maxHandles)
-    {
-        $this->maxHandles = $maxHandles;
-    }
-
-    public function create(RequestInterface $request, array $options)
-    {
-        $easy = new EasyHandle;
-        $easy->request = $request;
-        $easy->options = $options;
-        $conf = $this->getDefaultConf($easy);
-        $this->applyMethod($easy, $conf);
-        $this->applyHandlerOptions($easy, $conf);
-        $this->applyHeaders($easy, $conf);
-        unset($conf['_headers']);
-
-        if (isset($options['curl']['body_as_string'])) {
-            $options['_body_as_string'] = $options['curl']['body_as_string'];
-            unset($options['curl']['body_as_string']);
-        }
-
-        // Add handler options from the request configuration options
-        if (isset($options['curl'])) {
-            $conf += $options['curl'];
-        }
-
-        $conf[CURLOPT_HEADERFUNCTION] = $this->createHeaderFn($easy);
-        $easy->handle = $this->handles
-            ? array_pop($this->handles)
-            : curl_init();
-        curl_setopt_array($easy->handle, $conf);
-
-        return $easy;
-    }
-
-    public function release(EasyHandle $easy)
-    {
-        $resource = $easy->handle;
-        unset($easy->handle);
-
-        if (count($this->handles) >= $this->maxHandles) {
-            curl_close($resource);
-        } 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($resource, CURLOPT_HEADERFUNCTION, null);
-            curl_setopt($resource, CURLOPT_READFUNCTION, null);
-            curl_setopt($resource, CURLOPT_WRITEFUNCTION, null);
-            curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, null);
-            curl_reset($resource);
-            $this->handles[] = $resource;
-        }
-    }
-
-    /**
-     * Completes a cURL transaction, either returning a response promise or a
-     * rejected promise.
-     *
-     * @param callable             $handler
-     * @param EasyHandle           $easy
-     * @param CurlFactoryInterface $factory Dictates how the handle is released
-     *
-     * @return \GuzzleHttp\Promise\PromiseInterface
-     */
-    public static function finish(
-        callable $handler,
-        EasyHandle $easy,
-        CurlFactoryInterface $factory
-    ) {
-        if (!$easy->response || $easy->errno) {
-            return self::finishError($handler, $easy, $factory);
-        }
-
-        // Return the response if it is present and there is no error.
-        $factory->release($easy);
-
-        // Rewind the body of the response if possible.
-        $body = $easy->response->getBody();
-        if ($body->isSeekable()) {
-            $body->rewind();
-        }
-
-        return new FulfilledPromise($easy->response);
-    }
-
-    private static function finishError(
-        callable $handler,
-        EasyHandle $easy,
-        CurlFactoryInterface $factory
-    ) {
-        // Get error information and release the handle to the factory.
-        $ctx = [
-            'errno' => $easy->errno,
-            'error' => curl_error($easy->handle),
-        ] + curl_getinfo($easy->handle);
-        $factory->release($easy);
-
-        // Retry when nothing is present or when curl failed to rewind.
-        if (empty($easy->options['_err_message'])
-            && (!$easy->errno || $easy->errno == 65)
-        ) {
-            return self::retryFailedRewind($handler, $easy, $ctx);
-        }
-
-        return self::createRejection($easy, $ctx);
-    }
-
-    private static function createRejection(EasyHandle $easy, array $ctx)
-    {
-        static $connectionErrors = [
-            CURLE_OPERATION_TIMEOUTED  => true,
-            CURLE_COULDNT_RESOLVE_HOST => true,
-            CURLE_COULDNT_CONNECT      => true,
-            CURLE_SSL_CONNECT_ERROR    => true,
-            CURLE_GOT_NOTHING          => true,
-        ];
-
-        // If an exception was encountered during the onHeaders event, then
-        // return a rejected promise that wraps that exception.
-        if ($easy->onHeadersException) {
-            return new RejectedPromise(
-                new RequestException(
-                    'An error was encountered during the on_headers event',
-                    $easy->request,
-                    $easy->response,
-                    $easy->onHeadersException,
-                    $ctx
-                )
-            );
-        }
-
-        $message = sprintf(
-            'cURL error %s: %s (%s)',
-            $ctx['errno'],
-            $ctx['error'],
-            'see http://curl.haxx.se/libcurl/c/libcurl-errors.html'
-        );
-
-        // Create a connection exception if it was a specific error code.
-        $error = isset($connectionErrors[$easy->errno])
-            ? new ConnectException($message, $easy->request, null, $ctx)
-            : new RequestException($message, $easy->request, $easy->response, null, $ctx);
-
-        return new RejectedPromise($error);
-    }
-
-    private function getDefaultConf(EasyHandle $easy)
-    {
-        $conf = [
-            '_headers'             => $easy->request->getHeaders(),
-            CURLOPT_CUSTOMREQUEST  => $easy->request->getMethod(),
-            CURLOPT_URL            => (string) $easy->request->getUri(),
-            CURLOPT_RETURNTRANSFER => false,
-            CURLOPT_HEADER         => false,
-            CURLOPT_CONNECTTIMEOUT => 150,
-        ];
-
-        if (defined('CURLOPT_PROTOCOLS')) {
-            $conf[CURLOPT_PROTOCOLS] = CURLPROTO_HTTP | CURLPROTO_HTTPS;
-        }
-
-        $version = $easy->request->getProtocolVersion();
-        if ($version == 1.1) {
-            $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1;
-        } elseif ($version == 2.0) {
-            $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0;
-        } else {
-            $conf[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0;
-        }
-
-        return $conf;
-    }
-
-    private function applyMethod(EasyHandle $easy, array &$conf)
-    {
-        $body = $easy->request->getBody();
-        $size = $body->getSize();
-
-        if ($size === null || $size > 0) {
-            $this->applyBody($easy->request, $easy->options, $conf);
-            return;
-        }
-
-        $method = $easy->request->getMethod();
-        if ($method === 'PUT' || $method === 'POST') {
-            // See http://tools.ietf.org/html/rfc7230#section-3.3.2
-            if (!$easy->request->hasHeader('Content-Length')) {
-                $conf[CURLOPT_HTTPHEADER][] = 'Content-Length: 0';
-            }
-        } elseif ($method === 'HEAD') {
-            $conf[CURLOPT_NOBODY] = true;
-            unset(
-                $conf[CURLOPT_WRITEFUNCTION],
-                $conf[CURLOPT_READFUNCTION],
-                $conf[CURLOPT_FILE],
-                $conf[CURLOPT_INFILE]
-            );
-        }
-    }
-
-    private function applyBody(RequestInterface $request, array $options, array &$conf)
-    {
-        $size = $request->hasHeader('Content-Length')
-            ? (int) $request->getHeaderLine('Content-Length')
-            : null;
-
-        // Send the body as a string if the size is less than 1MB OR if the
-        // [curl][body_as_string] request value is set.
-        if (($size !== null && $size < 1000000) ||
-            !empty($options['_body_as_string'])
-        ) {
-            $conf[CURLOPT_POSTFIELDS] = (string) $request->getBody();
-            // Don't duplicate the Content-Length header
-            $this->removeHeader('Content-Length', $conf);
-            $this->removeHeader('Transfer-Encoding', $conf);
-        } else {
-            $conf[CURLOPT_UPLOAD] = true;
-            if ($size !== null) {
-                $conf[CURLOPT_INFILESIZE] = $size;
-                $this->removeHeader('Content-Length', $conf);
-            }
-            $body = $request->getBody();
-            $conf[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) {
-                return $body->read($length);
-            };
-        }
-
-        // If the Expect header is not present, prevent curl from adding it
-        if (!$request->hasHeader('Expect')) {
-            $conf[CURLOPT_HTTPHEADER][] = 'Expect:';
-        }
-
-        // cURL sometimes adds a content-type by default. Prevent this.
-        if (!$request->hasHeader('Content-Type')) {
-            $conf[CURLOPT_HTTPHEADER][] = 'Content-Type:';
-        }
-    }
-
-    private function applyHeaders(EasyHandle $easy, array &$conf)
-    {
-        foreach ($conf['_headers'] as $name => $values) {
-            foreach ($values as $value) {
-                $conf[CURLOPT_HTTPHEADER][] = "$name: $value";
-            }
-        }
-
-        // Remove the Accept header if one was not set
-        if (!$easy->request->hasHeader('Accept')) {
-            $conf[CURLOPT_HTTPHEADER][] = 'Accept:';
-        }
-    }
-
-    /**
-     * Remove a header from the options array.
-     *
-     * @param string $name    Case-insensitive header to remove
-     * @param array  $options Array of options to modify
-     */
-    private function removeHeader($name, array &$options)
-    {
-        foreach (array_keys($options['_headers']) as $key) {
-            if (!strcasecmp($key, $name)) {
-                unset($options['_headers'][$key]);
-                return;
-            }
-        }
-    }
-
-    private function applyHandlerOptions(EasyHandle $easy, array &$conf)
-    {
-        $options = $easy->options;
-        if (isset($options['verify'])) {
-            if ($options['verify'] === false) {
-                unset($conf[CURLOPT_CAINFO]);
-                $conf[CURLOPT_SSL_VERIFYHOST] = 0;
-                $conf[CURLOPT_SSL_VERIFYPEER] = false;
-            } else {
-                $conf[CURLOPT_SSL_VERIFYHOST] = 2;
-                $conf[CURLOPT_SSL_VERIFYPEER] = true;
-                if (is_string($options['verify'])) {
-                    $conf[CURLOPT_CAINFO] = $options['verify'];
-                    if (!file_exists($options['verify'])) {
-                        throw new \InvalidArgumentException(
-                            "SSL CA bundle not found: {$options['verify']}"
-                        );
-                    }
-                }
-            }
-        }
-
-        if (!empty($options['decode_content'])) {
-            $accept = $easy->request->getHeaderLine('Accept-Encoding');
-            if ($accept) {
-                $conf[CURLOPT_ENCODING] = $accept;
-            } else {
-                $conf[CURLOPT_ENCODING] = '';
-                // Don't let curl send the header over the wire
-                $conf[CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
-            }
-        }
-
-        if (isset($options['sink'])) {
-            $sink = $options['sink'];
-            if (!is_string($sink)) {
-                $sink = \GuzzleHttp\Psr7\stream_for($sink);
-            } elseif (!is_dir(dirname($sink))) {
-                // Ensure that the directory exists before failing in curl.
-                throw new \RuntimeException(sprintf(
-                    'Directory %s does not exist for sink value of %s',
-                    dirname($sink),
-                    $sink
-                ));
-            } else {
-                $sink = new LazyOpenStream($sink, 'w+');
-            }
-            $easy->sink = $sink;
-            $conf[CURLOPT_WRITEFUNCTION] = function ($ch, $write) use ($sink) {
-                return $sink->write($write);
-            };
-        } else {
-            // Use a default temp stream if no sink was set.
-            $conf[CURLOPT_FILE] = fopen('php://temp', 'w+');
-            $easy->sink = Psr7\stream_for($conf[CURLOPT_FILE]);
-        }
-
-        if (isset($options['timeout'])) {
-            $conf[CURLOPT_TIMEOUT_MS] = $options['timeout'] * 1000;
-        }
-
-        if (isset($options['connect_timeout'])) {
-            $conf[CURLOPT_CONNECTTIMEOUT_MS] = $options['connect_timeout'] * 1000;
-        }
-
-        if (isset($options['proxy'])) {
-            if (!is_array($options['proxy'])) {
-                $conf[CURLOPT_PROXY] = $options['proxy'];
-            } elseif ($scheme = $easy->request->getUri()->getScheme()) {
-                if (isset($options['proxy'][$scheme])) {
-                    $conf[CURLOPT_PROXY] = $options['proxy'][$scheme];
-                }
-            }
-        }
-
-        if (isset($options['cert'])) {
-            $cert = $options['cert'];
-            if (is_array($cert)) {
-                $conf[CURLOPT_SSLCERTPASSWD] = $cert[1];
-                $cert = $cert[0];
-            }
-            if (!file_exists($cert)) {
-                throw new \InvalidArgumentException(
-                    "SSL certificate not found: {$cert}"
-                );
-            }
-            $conf[CURLOPT_SSLCERT] = $cert;
-        }
-
-        if (isset($options['ssl_key'])) {
-            $sslKey = $options['ssl_key'];
-            if (is_array($sslKey)) {
-                $conf[CURLOPT_SSLKEYPASSWD] = $sslKey[1];
-                $sslKey = $sslKey[0];
-            }
-            if (!file_exists($sslKey)) {
-                throw new \InvalidArgumentException(
-                    "SSL private key not found: {$sslKey}"
-                );
-            }
-            $conf[CURLOPT_SSLKEY] = $sslKey;
-        }
-
-        if (isset($options['progress'])) {
-            $progress = $options['progress'];
-            if (!is_callable($progress)) {
-                throw new \InvalidArgumentException(
-                    'progress client option must be callable'
-                );
-            }
-            $conf[CURLOPT_NOPROGRESS] = false;
-            $conf[CURLOPT_PROGRESSFUNCTION] = function () use ($progress) {
-                $args = func_get_args();
-                // PHP 5.5 pushed the handle onto the start of the args
-                if (is_resource($args[0])) {
-                    array_shift($args);
-                }
-                call_user_func_array($progress, $args);
-            };
-        }
-
-        if (!empty($options['debug'])) {
-            $conf[CURLOPT_STDERR] = \GuzzleHttp\debug_resource($options['debug']);
-            $conf[CURLOPT_VERBOSE] = true;
-        }
-    }
-
-    /**
-     * This function ensures that a response was set on a transaction. If one
-     * was not set, then the request is retried if possible. This error
-     * typically means you are sending a payload, curl encountered a
-     * "Connection died, retrying a fresh connect" error, tried to rewind the
-     * stream, and then encountered a "necessary data rewind wasn't possible"
-     * error, causing the request to be sent through curl_multi_info_read()
-     * without an error status.
-     */
-    private static function retryFailedRewind(
-        callable $handler,
-        EasyHandle $easy,
-        array $ctx
-    ) {
-        try {
-            // Only rewind if the body has been read from.
-            $body = $easy->request->getBody();
-            if ($body->tell() > 0) {
-                $body->rewind();
-            }
-        } catch (\RuntimeException $e) {
-            $ctx['error'] = 'The connection unexpectedly failed without '
-                . 'providing an error. The request would have been retried, '
-                . 'but attempting to rewind the request body failed. '
-                . 'Exception: ' . $e;
-            return self::createRejection($easy, $ctx);
-        }
-
-        // Retry no more than 3 times before giving up.
-        if (!isset($easy->options['_curl_retries'])) {
-            $easy->options['_curl_retries'] = 1;
-        } elseif ($easy->options['_curl_retries'] == 2) {
-            $ctx['error'] = 'The cURL request was retried 3 times '
-                . 'and did not succeed. The most likely reason for the failure '
-                . 'is that cURL was unable to rewind the body of the request '
-                . 'and subsequent retries resulted in the same error. Turn on '
-                . 'the debug option to see what went wrong. See '
-                . 'https://bugs.php.net/bug.php?id=47204 for more information.';
-            return self::createRejection($easy, $ctx);
-        } else {
-            $easy->options['_curl_retries']++;
-        }
-
-        return $handler($easy->request, $easy->options);
-    }
-
-    private function createHeaderFn(EasyHandle $easy)
-    {
-        if (!isset($easy->options['on_headers'])) {
-            $onHeaders = null;
-        } elseif (!is_callable($easy->options['on_headers'])) {
-            throw new \InvalidArgumentException('on_headers must be callable');
-        } else {
-            $onHeaders = $easy->options['on_headers'];
-        }
-
-        return function ($ch, $h) use (
-            $onHeaders,
-            $easy,
-            &$startingResponse
-        ) {
-            $value = trim($h);
-            if ($value === '') {
-                $startingResponse = true;
-                $easy->createResponse();
-                if ($onHeaders) {
-                    try {
-                        $onHeaders($easy->response);
-                    } catch (\Exception $e) {
-                        // Associate the exception with the handle and trigger
-                        // a curl header write error by returning 0.
-                        $easy->onHeadersException = $e;
-                        return -1;
-                    }
-                }
-            } elseif ($startingResponse) {
-                $startingResponse = false;
-                $easy->headers = [$value];
-            } else {
-                $easy->headers[] = $value;
-            }
-            return strlen($h);
-        };
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php b/core/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php
deleted file mode 100644
index b0fc236..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use Psr\Http\Message\RequestInterface;
-
-interface CurlFactoryInterface
-{
-    /**
-     * Creates a cURL handle resource.
-     *
-     * @param RequestInterface $request Request
-     * @param array            $options Transfer options
-     *
-     * @return EasyHandle
-     * @throws \RuntimeException when an option cannot be applied
-     */
-    public function create(RequestInterface $request, array $options);
-
-    /**
-     * Release an easy handle, allowing it to be reused or closed.
-     *
-     * This function must call unset on the easy handle's "handle" property.
-     *
-     * @param EasyHandle $easy
-     */
-    public function release(EasyHandle $easy);
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php b/core/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
deleted file mode 100644
index 43577da..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * HTTP handler that uses cURL easy handles as a transport layer.
- *
- * When using the CurlHandler, custom curl options can be specified as an
- * associative array of curl option constants mapping to values in the
- * **curl** key of the "client" key of the request.
- */
-class CurlHandler
-{
-    /** @var CurlFactoryInterface */
-    private $factory;
-
-    /**
-     * Accepts an associative array of options:
-     *
-     * - factory: Optional curl factory used to create cURL handles.
-     *
-     * @param array $options Array of options to use with the handler
-     */
-    public function __construct(array $options = [])
-    {
-        $this->factory = isset($options['handle_factory'])
-            ? $options['handle_factory']
-            : new CurlFactory(3);
-    }
-
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        if (isset($options['delay'])) {
-            usleep($options['delay'] * 1000);
-        }
-
-        $easy = $this->factory->create($request, $options);
-        curl_exec($easy->handle);
-        $easy->errno = curl_errno($easy->handle);
-
-        return CurlFactory::finish($this, $easy, $this->factory);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php b/core/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php
deleted file mode 100644
index 417850b..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use GuzzleHttp\Promise as P;
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Returns an asynchronous response using curl_multi_* functions.
- *
- * When using the CurlMultiHandler, custom curl options can be specified as an
- * associative array of curl option constants mapping to values in the
- * **curl** key of the provided request options.
- *
- * @property resource $_mh Internal use only. Lazy loaded multi-handle.
- */
-class CurlMultiHandler
-{
-    /** @var CurlFactoryInterface */
-    private $factory;
-    private $selectTimeout;
-    private $active;
-    private $handles = [];
-    private $delays = [];
-
-    /**
-     * This handler accepts the following options:
-     *
-     * - handle_factory: An optional factory  used to create curl handles
-     * - select_timeout: Optional timeout (in seconds) to block before timing
-     *   out while selecting curl handles. Defaults to 1 second.
-     *
-     * @param array $options
-     */
-    public function __construct(array $options = [])
-    {
-        $this->factory = isset($options['handle_factory'])
-            ? $options['handle_factory'] : new CurlFactory(50);
-        $this->selectTimeout = isset($options['select_timeout'])
-            ? $options['select_timeout'] : 1;
-    }
-
-    public function __get($name)
-    {
-        if ($name === '_mh') {
-            return $this->_mh = curl_multi_init();
-        }
-
-        throw new \BadMethodCallException();
-    }
-
-    public function __destruct()
-    {
-        if (isset($this->_mh)) {
-            curl_multi_close($this->_mh);
-            unset($this->_mh);
-        }
-    }
-
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        $easy = $this->factory->create($request, $options);
-        $id = (int) $easy->handle;
-
-        $promise = new Promise(
-            [$this, 'execute'],
-            function () use ($id) { return $this->cancel($id); }
-        );
-
-        $this->addRequest(['easy' => $easy, 'deferred' => $promise]);
-
-        return $promise;
-    }
-
-    /**
-     * Ticks the curl event loop.
-     */
-    public function tick()
-    {
-        // Add any delayed handles if needed.
-        if ($this->delays) {
-            $currentTime = microtime(true);
-            foreach ($this->delays as $id => $delay) {
-                if ($currentTime >= $delay) {
-                    unset($this->delays[$id]);
-                    curl_multi_add_handle(
-                        $this->_mh,
-                        $this->handles[$id]['easy']->handle
-                    );
-                }
-            }
-        }
-
-        // Step through the task queue which may add additional requests.
-        P\queue()->run();
-
-        if ($this->active &&
-            curl_multi_select($this->_mh, $this->selectTimeout) === -1
-        ) {
-            // Perform a usleep if a select returns -1.
-            // See: https://bugs.php.net/bug.php?id=61141
-            usleep(250);
-        }
-
-        while (curl_multi_exec($this->_mh, $this->active) === CURLM_CALL_MULTI_PERFORM);
-
-        $this->processMessages();
-    }
-
-    /**
-     * Runs until all outstanding connections have completed.
-     */
-    public function execute()
-    {
-        $queue = P\queue();
-
-        while ($this->handles || !$queue->isEmpty()) {
-            // If there are no transfers, then sleep for the next delay
-            if (!$this->active && $this->delays) {
-                usleep($this->timeToNext());
-            }
-            $this->tick();
-        }
-    }
-
-    private function addRequest(array $entry)
-    {
-        $easy = $entry['easy'];
-        $id = (int) $easy->handle;
-        $this->handles[$id] = $entry;
-        if (empty($easy->options['delay'])) {
-            curl_multi_add_handle($this->_mh, $easy->handle);
-        } else {
-            $this->delays[$id] = microtime(true) + ($easy->options['delay'] / 1000);
-        }
-    }
-
-    /**
-     * Cancels a handle from sending and removes references to it.
-     *
-     * @param int $id Handle ID to cancel and remove.
-     *
-     * @return bool True on success, false on failure.
-     */
-    private function cancel($id)
-    {
-        // Cannot cancel if it has been processed.
-        if (!isset($this->handles[$id])) {
-            return false;
-        }
-
-        $handle = $this->handles[$id]['easy']->handle;
-        unset($this->delays[$id], $this->handles[$id]);
-        curl_multi_remove_handle($this->_mh, $handle);
-        curl_close($handle);
-
-        return true;
-    }
-
-    private function processMessages()
-    {
-        while ($done = curl_multi_info_read($this->_mh)) {
-            $id = (int) $done['handle'];
-            curl_multi_remove_handle($this->_mh, $done['handle']);
-
-            if (!isset($this->handles[$id])) {
-                // Probably was cancelled.
-                continue;
-            }
-
-            $entry = $this->handles[$id];
-            unset($this->handles[$id], $this->delays[$id]);
-            $entry['easy']->errno = $done['result'];
-            $entry['deferred']->resolve(
-                CurlFactory::finish(
-                    $this,
-                    $entry['easy'],
-                    $this->factory
-                )
-            );
-        }
-    }
-
-    private function timeToNext()
-    {
-        $currentTime = microtime(true);
-        $nextTime = PHP_INT_MAX;
-        foreach ($this->delays as $time) {
-            if ($time < $nextTime) {
-                $nextTime = $time;
-            }
-        }
-
-        return max(0, $currentTime - $nextTime);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php b/core/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php
deleted file mode 100644
index 35228f0..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use GuzzleHttp\Psr7\Response;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Represents a cURL easy handle and the data it populates.
- *
- * @internal
- */
-final class EasyHandle
-{
-    /** @var resource cURL resource */
-    public $handle;
-
-    /** @var StreamInterface Where data is being written */
-    public $sink;
-
-    /** @var array Received HTTP headers so far */
-    public $headers = [];
-
-    /** @var ResponseInterface Received response (if any) */
-    public $response;
-
-    /** @var RequestInterface Request being sent */
-    public $request;
-
-    /** @var array Request options */
-    public $options = [];
-
-    /** @var int cURL error number (if any) */
-    public $errno = 0;
-
-    /** @var \Exception Exception during on_headers (if any) */
-    public $onHeadersException;
-
-    /**
-     * Attach a response to the easy handle based on the received headers.
-     *
-     * @throws \RuntimeException if no headers have been received.
-     */
-    public function createResponse()
-    {
-        if (empty($this->headers)) {
-            throw new \RuntimeException('No headers have been received');
-        }
-
-        // HTTP-version SP status-code SP reason-phrase
-        $startLine = explode(' ', array_shift($this->headers), 3);
-        $headers = \GuzzleHttp\headers_from_lines($this->headers);
-        $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers);
-
-        if (!empty($this->options['decode_content'])
-            && isset($normalizedKeys['content-encoding'])
-        ) {
-            unset($headers[$normalizedKeys['content-encoding']]);
-            if (isset($normalizedKeys['content-length'])) {
-                $bodyLength = (int) $this->sink->getSize();
-                if ($bodyLength) {
-                    $headers[$normalizedKeys['content-length']] = $bodyLength;
-                } else {
-                    unset($headers[$normalizedKeys['content-length']]);
-                }
-            }
-        }
-
-        // Attach a response to the easy handle with the parsed headers.
-        $this->response = new Response(
-            $startLine[1],
-            $headers,
-            $this->sink,
-            substr($startLine[0], 5),
-            isset($startLine[2]) ? (int) $startLine[2] : null
-        );
-    }
-
-    public function __get($name)
-    {
-        $msg = $name === 'handle'
-            ? 'The EasyHandle has been released'
-            : 'Invalid property: ' . $name;
-        throw new \BadMethodCallException($msg);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php b/core/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php
deleted file mode 100644
index 9854546..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use GuzzleHttp\HandlerStack;
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Promise\RejectedPromise;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * Handler that returns responses or throw exceptions from a queue.
- */
-class MockHandler implements \Countable
-{
-    private $queue;
-    private $lastRequest;
-    private $lastOptions;
-    private $onFulfilled;
-    private $onRejected;
-
-    /**
-     * Creates a new MockHandler that uses the default handler stack list of
-     * middlewares.
-     *
-     * @param array $queue Array of responses, callables, or exceptions.
-     * @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
-     * @param callable $onRejected  Callback to invoke when the return value is rejected.
-     *
-     * @return MockHandler
-     */
-    public static function createWithMiddleware(
-        array $queue = null,
-        callable $onFulfilled = null,
-        callable $onRejected = null
-    ) {
-        return HandlerStack::create(new self($queue, $onFulfilled, $onRejected));
-    }
-
-    /**
-     * The passed in value must be an array of
-     * {@see Psr7\Http\Message\ResponseInterface} objects, Exceptions,
-     * callables, or Promises.
-     *
-     * @param array $queue
-     * @param callable $onFulfilled Callback to invoke when the return value is fulfilled.
-     * @param callable $onRejected  Callback to invoke when the return value is rejected.
-     */
-    public function __construct(
-        array $queue = null,
-        callable $onFulfilled = null,
-        callable $onRejected = null
-    ) {
-        $this->onFulfilled = $onFulfilled;
-        $this->onRejected = $onRejected;
-
-        if ($queue) {
-            call_user_func_array([$this, 'append'], $queue);
-        }
-    }
-
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        if (!$this->queue) {
-            throw new \OutOfBoundsException('Mock queue is empty');
-        }
-
-        if (isset($options['delay'])) {
-            usleep($options['delay'] * 1000);
-        }
-
-        $this->lastRequest = $request;
-        $this->lastOptions = $options;
-        $response = array_shift($this->queue);
-
-        if (is_callable($response)) {
-            $response = $response($request, $options);
-        }
-
-        $response = $response instanceof \Exception
-            ? new RejectedPromise($response)
-            : \GuzzleHttp\Promise\promise_for($response);
-
-        if (!$this->onFulfilled && !$this->onRejected) {
-            return $response;
-        }
-
-        return $response->then(
-            function ($value) {
-                if ($this->onFulfilled) {
-                    call_user_func($this->onFulfilled, $value);
-                }
-                return $value;
-            },
-            function ($reason) {
-                if ($this->onRejected) {
-                    call_user_func($this->onRejected, $reason);
-                }
-                return new RejectedPromise($reason);
-            }
-        );
-    }
-
-    /**
-     * Adds one or more variadic requests, exceptions, callables, or promises
-     * to the queue.
-     */
-    public function append()
-    {
-        foreach (func_get_args() as $value) {
-            if ($value instanceof ResponseInterface
-                || $value instanceof \Exception
-                || $value instanceof PromiseInterface
-                || is_callable($value)
-            ) {
-                $this->queue[] = $value;
-            } else {
-                throw new \InvalidArgumentException('Expected a response or '
-                    . 'exception. Found ' . \GuzzleHttp\describe_type($value));
-            }
-        }
-    }
-
-    /**
-     * Get the last received request.
-     *
-     * @return RequestInterface
-     */
-    public function getLastRequest()
-    {
-        return $this->lastRequest;
-    }
-
-    /**
-     * Get the last received request options.
-     *
-     * @return RequestInterface
-     */
-    public function getLastOptions()
-    {
-        return $this->lastOptions;
-    }
-
-    /**
-     * Returns the number of remaining items in the queue.
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->queue);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php b/core/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php
deleted file mode 100644
index 9bd76d2..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Provides basic proxies for handlers.
- */
-class Proxy
-{
-    /**
-     * Sends synchronous requests to a specific handler while sending all other
-     * requests to another handler.
-     *
-     * @param callable $default Handler used for normal responses
-     * @param callable $sync    Handler used for synchronous responses.
-     *
-     * @return callable Returns the composed handler.
-     */
-    public static function wrapSync(
-        callable $default,
-        callable $sync
-    ) {
-        return function (RequestInterface $request, array $options) use ($default, $sync) {
-            return empty($options['sync'])
-                ? $default($request, $options)
-                : $sync($request, $options);
-        };
-    }
-
-    /**
-     * Sends streaming requests to a streaming compatible handler while sending
-     * all other requests to a default handler.
-     *
-     * This, for example, could be useful for taking advantage of the
-     * performance benefits of curl while still supporting true streaming
-     * through the StreamHandler.
-     *
-     * @param callable $default   Handler used for non-streaming responses
-     * @param callable $streaming Handler used for streaming responses
-     *
-     * @return callable Returns the composed handler.
-     */
-    public static function wrapStreaming(
-        callable $default,
-        callable $streaming
-    ) {
-        return function (RequestInterface $request, array $options) use ($default, $streaming) {
-            return empty($options['stream'])
-                ? $default($request, $options)
-                : $streaming($request, $options);
-        };
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php b/core/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
deleted file mode 100644
index b94d1b7..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
+++ /dev/null
@@ -1,411 +0,0 @@
-<?php
-namespace GuzzleHttp\Handler;
-
-use GuzzleHttp\Exception\RequestException;
-use GuzzleHttp\Exception\ConnectException;
-use GuzzleHttp\Promise\FulfilledPromise;
-use GuzzleHttp\Promise\RejectedPromise;
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * HTTP handler that uses PHP's HTTP stream wrapper.
- */
-class StreamHandler
-{
-    private $lastHeaders = [];
-
-    /**
-     * Sends an HTTP request.
-     *
-     * @param RequestInterface $request Request to send.
-     * @param array            $options Request transfer options.
-     *
-     * @return PromiseInterface
-     */
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        // Sleep if there is a delay specified.
-        if (isset($options['delay'])) {
-            usleep($options['delay'] * 1000);
-        }
-
-        try {
-            // Does not support the expect header.
-            $request = $request->withoutHeader('Expect');
-            $stream = $this->createStream($request, $options);
-            return $this->createResponse($request, $options, $stream);
-        } catch (\InvalidArgumentException $e) {
-            throw $e;
-        } catch (\Exception $e) {
-            // Determine if the error was a networking error.
-            $message = $e->getMessage();
-            // This list can probably get more comprehensive.
-            if (strpos($message, 'getaddrinfo') // DNS lookup failed
-                || strpos($message, 'Connection refused')
-                || strpos($message, "couldn't connect to host") // error on HHVM
-            ) {
-                $e = new ConnectException($e->getMessage(), $request, $e);
-            }
-            return new RejectedPromise(
-                RequestException::wrapException($request, $e)
-            );
-        }
-    }
-
-    private function createResponse(
-        RequestInterface $request,
-        array $options,
-        $stream
-    ) {
-        $hdrs = $this->lastHeaders;
-        $this->lastHeaders = [];
-        $parts = explode(' ', array_shift($hdrs), 3);
-        $ver = explode('/', $parts[0])[1];
-        $status = $parts[1];
-        $reason = isset($parts[2]) ? $parts[2] : null;
-        $headers = \GuzzleHttp\headers_from_lines($hdrs);
-        list ($stream, $headers) = $this->checkDecode($options, $headers, $stream);
-        $stream = Psr7\stream_for($stream);
-        $sink = $this->createSink($stream, $options);
-        $response = new Psr7\Response($status, $headers, $sink, $ver, $reason);
-
-        if (isset($options['on_headers'])) {
-            try {
-                $options['on_headers']($response);
-            } catch (\Exception $e) {
-                $msg = 'An error was encountered during the on_headers event';
-                $ex = new RequestException($msg, $request, $response, $e);
-                return new RejectedPromise($ex);
-            }
-        }
-
-        if ($sink !== $stream) {
-            $this->drain($stream, $sink);
-        }
-
-        return new FulfilledPromise($response);
-    }
-
-    private function createSink(StreamInterface $stream, array $options)
-    {
-        if (!empty($options['stream'])) {
-            return $stream;
-        }
-
-        $sink = isset($options['sink'])
-            ? $options['sink']
-            : fopen('php://temp', 'r+');
-
-        return is_string($sink)
-            ? new Psr7\Stream(Psr7\try_fopen($sink, 'r+'))
-            : Psr7\stream_for($sink);
-    }
-
-    private function checkDecode(array $options, array $headers, $stream)
-    {
-        // Automatically decode responses when instructed.
-        if (!empty($options['decode_content'])) {
-            $normalizedKeys = \GuzzleHttp\normalize_header_keys($headers);
-            if (isset($normalizedKeys['content-encoding'])) {
-                $encoding = $headers[$normalizedKeys['content-encoding']];
-                if ($encoding[0] == 'gzip' || $encoding[0] == 'deflate') {
-                    $stream = new Psr7\InflateStream(
-                        Psr7\stream_for($stream)
-                    );
-                    // Remove content-encoding header
-                    unset($headers[$normalizedKeys['content-encoding']]);
-                    // Fix content-length header
-                    if (isset($normalizedKeys['content-length'])) {
-                        $length = (int) $stream->getSize();
-                        if ($length == 0) {
-                            unset($headers[$normalizedKeys['content-length']]);
-                        } else {
-                            $headers[$normalizedKeys['content-length']] = [$length];
-                        }
-                    }
-                }
-            }
-        }
-
-        return [$stream, $headers];
-    }
-
-    /**
-     * Drains the source stream into the "sink" client option.
-     *
-     * @param StreamInterface $source
-     * @param StreamInterface $sink
-     *
-     * @return StreamInterface
-     * @throws \RuntimeException when the sink option is invalid.
-     */
-    private function drain(StreamInterface $source, StreamInterface $sink)
-    {
-        Psr7\copy_to_stream($source, $sink);
-        $sink->seek(0);
-        $source->close();
-
-        return $sink;
-    }
-
-    /**
-     * Create a resource and check to ensure it was created successfully
-     *
-     * @param callable $callback Callable that returns stream resource
-     *
-     * @return resource
-     * @throws \RuntimeException on error
-     */
-    private function createResource(callable $callback)
-    {
-        $errors = null;
-        set_error_handler(function ($_, $msg, $file, $line) use (&$errors) {
-            $errors[] = [
-                'message' => $msg,
-                'file'    => $file,
-                'line'    => $line
-            ];
-            return true;
-        });
-
-        $resource = $callback();
-        restore_error_handler();
-
-        if (!$resource) {
-            $message = 'Error creating resource: ';
-            foreach ($errors as $err) {
-                foreach ($err as $key => $value) {
-                    $message .= "[$key] $value" . PHP_EOL;
-                }
-            }
-            throw new \RuntimeException(trim($message));
-        }
-
-        return $resource;
-    }
-
-    private function createStream(RequestInterface $request, array $options)
-    {
-        static $methods;
-        if (!$methods) {
-            $methods = array_flip(get_class_methods(__CLASS__));
-        }
-
-        // HTTP/1.1 streams using the PHP stream wrapper require a
-        // Connection: close header
-        if ($request->getProtocolVersion() == '1.1'
-            && !$request->hasHeader('Connection')
-        ) {
-            $request = $request->withHeader('Connection', 'close');
-        }
-
-        // Ensure SSL is verified by default
-        if (!isset($options['verify'])) {
-            $options['verify'] = true;
-        }
-
-        $params = [];
-        $context = $this->getDefaultContext($request, $options);
-
-        if (isset($options['on_headers']) && !is_callable($options['on_headers'])) {
-            throw new \InvalidArgumentException('on_headers must be callable');
-        }
-
-        if (!empty($options)) {
-            foreach ($options as $key => $value) {
-                $method = "add_{$key}";
-                if (isset($methods[$method])) {
-                    $this->{$method}($request, $context, $value, $params);
-                }
-            }
-        }
-
-        if (isset($options['stream_context'])) {
-            if (!is_array($options['stream_context'])) {
-                throw new \InvalidArgumentException('stream_context must be an array');
-            }
-            $context = array_replace_recursive(
-                $context,
-                $options['stream_context']
-            );
-        }
-
-        $context = $this->createResource(
-            function () use ($context, $params) {
-                return stream_context_create($context, $params);
-            }
-        );
-
-        return $this->createResource(
-            function () use ($request, &$http_response_header, $context) {
-                $resource = fopen($request->getUri(), 'r', null, $context);
-                $this->lastHeaders = $http_response_header;
-                return $resource;
-            }
-        );
-    }
-
-    private function getDefaultContext(RequestInterface $request)
-    {
-        $headers = '';
-        foreach ($request->getHeaders() as $name => $value) {
-            foreach ($value as $val) {
-                $headers .= "$name: $val\r\n";
-            }
-        }
-
-        $context = [
-            'http' => [
-                'method'           => $request->getMethod(),
-                'header'           => $headers,
-                'protocol_version' => $request->getProtocolVersion(),
-                'ignore_errors'    => true,
-                'follow_location'  => 0,
-            ],
-        ];
-
-        $body = (string) $request->getBody();
-
-        if (!empty($body)) {
-            $context['http']['content'] = $body;
-            // Prevent the HTTP handler from adding a Content-Type header.
-            if (!$request->hasHeader('Content-Type')) {
-                $context['http']['header'] .= "Content-Type:\r\n";
-            }
-        }
-
-        $context['http']['header'] = rtrim($context['http']['header']);
-
-        return $context;
-    }
-
-    private function add_proxy(RequestInterface $request, &$options, $value, &$params)
-    {
-        if (!is_array($value)) {
-            $options['http']['proxy'] = $value;
-        } else {
-            $scheme = $request->getUri()->getScheme();
-            if (isset($value[$scheme])) {
-                $options['http']['proxy'] = $value[$scheme];
-            }
-        }
-    }
-
-    private function add_timeout(RequestInterface $request, &$options, $value, &$params)
-    {
-        $options['http']['timeout'] = $value;
-    }
-
-    private function add_verify(RequestInterface $request, &$options, $value, &$params)
-    {
-        if ($value === true) {
-            // PHP 5.6 or greater will find the system cert by default. When
-            // < 5.6, use the Guzzle bundled cacert.
-            if (PHP_VERSION_ID < 50600) {
-                $options['ssl']['cafile'] = \GuzzleHttp\default_ca_bundle();
-            }
-        } elseif (is_string($value)) {
-            $options['ssl']['cafile'] = $value;
-            if (!file_exists($value)) {
-                throw new \RuntimeException("SSL CA bundle not found: $value");
-            }
-        } elseif ($value === false) {
-            $options['ssl']['verify_peer'] = false;
-            return;
-        } else {
-            throw new \InvalidArgumentException('Invalid verify request option');
-        }
-
-        $options['ssl']['verify_peer'] = true;
-        $options['ssl']['allow_self_signed'] = false;
-    }
-
-    private function add_cert(RequestInterface $request, &$options, $value, &$params)
-    {
-        if (is_array($value)) {
-            $options['ssl']['passphrase'] = $value[1];
-            $value = $value[0];
-        }
-
-        if (!file_exists($value)) {
-            throw new \RuntimeException("SSL certificate not found: {$value}");
-        }
-
-        $options['ssl']['local_cert'] = $value;
-    }
-
-    private function add_progress(RequestInterface $request, &$options, $value, &$params)
-    {
-        $this->addNotification(
-            $params,
-            function ($code, $a, $b, $c, $transferred, $total) use ($value) {
-                if ($code == STREAM_NOTIFY_PROGRESS) {
-                    $value($total, $transferred, null, null);
-                }
-            }
-        );
-    }
-
-    private function add_debug(RequestInterface $request, &$options, $value, &$params)
-    {
-        if ($value === false) {
-            return;
-        }
-
-        static $map = [
-            STREAM_NOTIFY_CONNECT       => 'CONNECT',
-            STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED',
-            STREAM_NOTIFY_AUTH_RESULT   => 'AUTH_RESULT',
-            STREAM_NOTIFY_MIME_TYPE_IS  => 'MIME_TYPE_IS',
-            STREAM_NOTIFY_FILE_SIZE_IS  => 'FILE_SIZE_IS',
-            STREAM_NOTIFY_REDIRECTED    => 'REDIRECTED',
-            STREAM_NOTIFY_PROGRESS      => 'PROGRESS',
-            STREAM_NOTIFY_FAILURE       => 'FAILURE',
-            STREAM_NOTIFY_COMPLETED     => 'COMPLETED',
-            STREAM_NOTIFY_RESOLVE       => 'RESOLVE',
-        ];
-        static $args = ['severity', 'message', 'message_code',
-            'bytes_transferred', 'bytes_max'];
-
-        $value = \GuzzleHttp\debug_resource($value);
-        $ident = $request->getMethod() . ' ' . $request->getUri();
-        $this->addNotification(
-            $params,
-            function () use ($ident, $value, $map, $args) {
-                $passed = func_get_args();
-                $code = array_shift($passed);
-                fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
-                foreach (array_filter($passed) as $i => $v) {
-                    fwrite($value, $args[$i] . ': "' . $v . '" ');
-                }
-                fwrite($value, "\n");
-            }
-        );
-    }
-
-    private function addNotification(array &$params, callable $notify)
-    {
-        // Wrap the existing function if needed.
-        if (!isset($params['notification'])) {
-            $params['notification'] = $notify;
-        } else {
-            $params['notification'] = $this->callArray([
-                $params['notification'],
-                $notify
-            ]);
-        }
-    }
-
-    private function callArray(array $functions)
-    {
-        return function () use ($functions) {
-            $args = func_get_args();
-            foreach ($functions as $fn) {
-                call_user_func_array($fn, $args);
-            }
-        };
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/HandlerStack.php b/core/vendor/guzzlehttp/guzzle/src/HandlerStack.php
deleted file mode 100644
index f851849..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/HandlerStack.php
+++ /dev/null
@@ -1,272 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Creates a composed Guzzle handler function by stacking middlewares on top of
- * an HTTP handler function.
- */
-class HandlerStack
-{
-    /** @var callable */
-    private $handler;
-
-    /** @var array */
-    private $stack = [];
-
-    /** @var callable|null */
-    private $cached;
-
-    /**
-     * Creates a default handler stack that can be used by clients.
-     *
-     * The returned handler will wrap the provided handler or use the most
-     * appropriate default handler for you system. The returned HandlerStack has
-     * support for cookies, redirects, HTTP error exceptions, and preparing a body
-     * before sending.
-     *
-     * The returned handler stack can be passed to a client in the "handler"
-     * option.
-     *
-     * @param callable $handler HTTP handler function to use with the stack. If no
-     *                          handler is provided, the best handler for your
-     *                          system will be utilized.
-     *
-     * @return HandlerStack
-     */
-    public static function create(callable $handler = null)
-    {
-        $stack = new self($handler ?: choose_handler());
-        $stack->push(Middleware::httpErrors(), 'http_errors');
-        $stack->push(Middleware::redirect(), 'allow_redirects');
-        $stack->push(Middleware::cookies(), 'cookies');
-        $stack->push(Middleware::prepareBody(), 'prepare_body');
-
-        return $stack;
-    }
-
-    /**
-     * @param callable $handler Underlying HTTP handler.
-     */
-    public function __construct(callable $handler = null)
-    {
-        $this->handler = $handler;
-    }
-
-    /**
-     * Invokes the handler stack as a composed handler
-     *
-     * @param RequestInterface $request
-     * @param array            $options
-     */
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        if (!$this->cached) {
-            $this->cached = $this->resolve();
-        }
-
-        $handler = $this->cached;
-        return $handler($request, $options);
-    }
-
-    /**
-     * Dumps a string representation of the stack.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        $depth = 0;
-        $stack = [];
-        if ($this->handler) {
-            $stack[] = "0) Handler: " . $this->debugCallable($this->handler);
-        }
-
-        $result = '';
-        foreach (array_reverse($this->stack) as $tuple) {
-            $depth++;
-            $str = "{$depth}) Name: '{$tuple[1]}', ";
-            $str .= "Function: " . $this->debugCallable($tuple[0]);
-            $result = "> {$str}\n{$result}";
-            $stack[] = $str;
-        }
-
-        foreach (array_keys($stack) as $k) {
-            $result .= "< {$stack[$k]}\n";
-        }
-
-        return $result;
-    }
-
-    /**
-     * Set the HTTP handler that actually returns a promise.
-     *
-     * @param callable $handler Accepts a request and array of options and
-     *                          returns a Promise.
-     */
-    public function setHandler(callable $handler)
-    {
-        $this->handler = $handler;
-        $this->cached = null;
-    }
-
-    /**
-     * Returns true if the builder has a handler.
-     *
-     * @return bool
-     */
-    public function hasHandler()
-    {
-        return (bool) $this->handler;
-    }
-
-    /**
-     * Unshift a middleware to the bottom of the stack.
-     *
-     * @param callable $middleware Middleware function
-     * @param string   $name       Name to register for this middleware.
-     */
-    public function unshift(callable $middleware, $name = null)
-    {
-        array_unshift($this->stack, [$middleware, $name]);
-        $this->cached = null;
-    }
-
-    /**
-     * Push a middleware to the top of the stack.
-     *
-     * @param callable $middleware Middleware function
-     * @param string   $name       Name to register for this middleware.
-     */
-    public function push(callable $middleware, $name = '')
-    {
-        $this->stack[] = [$middleware, $name];
-        $this->cached = null;
-    }
-
-    /**
-     * Add a middleware before another middleware by name.
-     *
-     * @param string   $findName   Middleware to find
-     * @param callable $middleware Middleware function
-     * @param string   $withName   Name to register for this middleware.
-     */
-    public function before($findName, callable $middleware, $withName = '')
-    {
-        $this->splice($findName, $withName, $middleware, true);
-    }
-
-    /**
-     * Add a middleware after another middleware by name.
-     *
-     * @param string   $findName   Middleware to find
-     * @param callable $middleware Middleware function
-     * @param string   $withName   Name to register for this middleware.
-     */
-    public function after($findName, callable $middleware, $withName = '')
-    {
-        $this->splice($findName, $withName, $middleware, false);
-    }
-
-    /**
-     * Remove a middleware by instance or name from the stack.
-     *
-     * @param callable|string $remove Middleware to remove by instance or name.
-     */
-    public function remove($remove)
-    {
-        $this->cached = null;
-        $idx = is_callable($remove) ? 0 : 1;
-        $this->stack = array_values(array_filter(
-            $this->stack,
-            function ($tuple) use ($idx, $remove) {
-                return $tuple[$idx] !== $remove;
-            }
-        ));
-    }
-
-    /**
-     * Compose the middleware and handler into a single callable function.
-     *
-     * @return callable
-     */
-    public function resolve()
-    {
-        if (!($prev = $this->handler)) {
-            throw new \LogicException('No handler has been specified');
-        }
-
-        foreach (array_reverse($this->stack) as $fn) {
-            $prev = $fn[0]($prev);
-        }
-
-        return $prev;
-    }
-
-    /**
-     * @param $name
-     * @return int
-     */
-    private function findByName($name)
-    {
-        foreach ($this->stack as $k => $v) {
-            if ($v[1] === $name) {
-                return $k;
-            }
-        }
-
-        throw new \InvalidArgumentException("Middleware not found: $name");
-    }
-
-    /**
-     * Splices a function into the middleware list at a specific position.
-     *
-     * @param          $findName
-     * @param          $withName
-     * @param callable $middleware
-     * @param          $before
-     */
-    private function splice($findName, $withName, callable $middleware, $before)
-    {
-        $this->cached = null;
-        $idx = $this->findByName($findName);
-        $tuple = [$middleware, $withName];
-
-        if ($before) {
-            if ($idx === 0) {
-                array_unshift($this->stack, $tuple);
-            } else {
-                $replacement = [$tuple, $this->stack[$idx]];
-                array_splice($this->stack, $idx, 1, $replacement);
-            }
-        } elseif ($idx === count($this->stack) - 1) {
-            $this->stack[] = $tuple;
-        } else {
-            $replacement = [$this->stack[$idx], $tuple];
-            array_splice($this->stack, $idx, 1, $replacement);
-        }
-    }
-
-    /**
-     * Provides a debug string for a given callable.
-     *
-     * @param array|callable $fn Function to write as a string.
-     *
-     * @return string
-     */
-    private function debugCallable($fn)
-    {
-        if (is_string($fn)) {
-            return "callable({$fn})";
-        }
-
-        if (is_array($fn)) {
-            return is_string($fn[0])
-                ? "callable({$fn[0]}::{$fn[1]})"
-                : "callable(['" . get_class($fn[0]) . "', '{$fn[1]}'])";
-        }
-
-        return 'callable(' . spl_object_hash($fn) . ')';
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/MessageFormatter.php b/core/vendor/guzzlehttp/guzzle/src/MessageFormatter.php
deleted file mode 100644
index 6b090a9..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/MessageFormatter.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use Psr\Http\Message\MessageInterface;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * Formats log messages using variable substitutions for requests, responses,
- * and other transactional data.
- *
- * The following variable substitutions are supported:
- *
- * - {request}:        Full HTTP request message
- * - {response}:       Full HTTP response message
- * - {ts}:             ISO 8601 date in GMT
- * - {date_iso_8601}   ISO 8601 date in GMT
- * - {date_common_log} Apache common log date using the configured timezone.
- * - {host}:           Host of the request
- * - {method}:         Method of the request
- * - {uri}:            URI of the request
- * - {host}:           Host of the request
- * - {version}:        Protocol version
- * - {target}:         Request target of the request (path + query + fragment)
- * - {hostname}:       Hostname of the machine that sent the request
- * - {code}:           Status code of the response (if available)
- * - {phrase}:         Reason phrase of the response  (if available)
- * - {error}:          Any error messages (if available)
- * - {req_header_*}:   Replace `*` with the lowercased name of a request header to add to the message
- * - {res_header_*}:   Replace `*` with the lowercased name of a response header to add to the message
- * - {req_headers}:    Request headers
- * - {res_headers}:    Response headers
- * - {req_body}:       Request body
- * - {res_body}:       Response body
- */
-class MessageFormatter
-{
-    /**
-     * Apache Common Log Format.
-     * @link http://httpd.apache.org/docs/2.4/logs.html#common
-     * @var string
-     */
-    const CLF = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length}";
-    const DEBUG = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{error}";
-    const SHORT = '[{ts}] "{method} {target} HTTP/{version}" {code}';
-
-    /** @var string Template used to format log messages */
-    private $template;
-
-    /**
-     * @param string $template Log message template
-     */
-    public function __construct($template = self::CLF)
-    {
-        $this->template = $template ?: self::CLF;
-    }
-
-    /**
-     * Returns a formatted message string.
-     *
-     * @param RequestInterface  $request  Request that was sent
-     * @param ResponseInterface $response Response that was received
-     * @param \Exception        $error    Exception that was received
-     *
-     * @return string
-     */
-    public function format(
-        RequestInterface $request,
-        ResponseInterface $response = null,
-        \Exception $error = null
-    ) {
-        $cache = [];
-
-        return preg_replace_callback(
-            '/{\s*([A-Za-z_\-\.0-9]+)\s*}/',
-            function (array $matches) use ($request, $response, $error, &$cache) {
-
-                if (isset($cache[$matches[1]])) {
-                    return $cache[$matches[1]];
-                }
-
-                $result = '';
-                switch ($matches[1]) {
-                    case 'request':
-                        $result = Psr7\str($request);
-                        break;
-                    case 'response':
-                        $result = $response ? Psr7\str($response) : '';
-                        break;
-                    case 'req_headers':
-                        $result = trim($request->getMethod()
-                                . ' ' . $request->getRequestTarget())
-                            . ' HTTP/' . $request->getProtocolVersion() . "\r\n"
-                            . $this->headers($request);
-                        break;
-                    case 'res_headers':
-                        $result = $response ?
-                            sprintf(
-                                'HTTP/%s %d %s',
-                                $response->getProtocolVersion(),
-                                $response->getStatusCode(),
-                                $response->getReasonPhrase()
-                            ) . "\r\n" . $this->headers($response)
-                            : 'NULL';
-                        break;
-                    case 'req_body':
-                        $result = $request->getBody();
-                        break;
-                    case 'res_body':
-                        $result = $response ? $response->getBody() : 'NULL';
-                        break;
-                    case 'ts':
-                    case 'date_iso_8601':
-                        $result = gmdate('c');
-                        break;
-                    case 'date_common_log':
-                        $result = date('d/M/Y:H:i:s O');
-                        break;
-                    case 'method':
-                        $result = $request->getMethod();
-                        break;
-                    case 'version':
-                        $result = $request->getProtocolVersion();
-                        break;
-                    case 'uri':
-                    case 'url':
-                        $result = $request->getUri();
-                        break;
-                    case 'target':
-                        $result = $request->getRequestTarget();
-                        break;
-                    case 'req_version':
-                        $result = $request->getProtocolVersion();
-                        break;
-                    case 'res_version':
-                        $result = $response
-                            ? $response->getProtocolVersion()
-                            : 'NULL';
-                        break;
-                    case 'host':
-                        $result = $request->getHeaderLine('Host');
-                        break;
-                    case 'hostname':
-                        $result = gethostname();
-                        break;
-                    case 'code':
-                        $result = $response ? $response->getStatusCode() : 'NULL';
-                        break;
-                    case 'phrase':
-                        $result = $response ? $response->getReasonPhrase() : 'NULL';
-                        break;
-                    case 'error':
-                        $result = $error ? $error->getMessage() : 'NULL';
-                        break;
-                    default:
-                        // handle prefixed dynamic headers
-                        if (strpos($matches[1], 'req_header_') === 0) {
-                            $result = $request->getHeaderLine(substr($matches[1], 11));
-                        } elseif (strpos($matches[1], 'res_header_') === 0) {
-                            $result = $response
-                                ? $response->getHeaderLine(substr($matches[1], 11))
-                                : 'NULL';
-                        }
-                }
-
-                $cache[$matches[1]] = $result;
-                return $result;
-            },
-            $this->template
-        );
-    }
-
-    private function headers(MessageInterface $message)
-    {
-        $result = '';
-        foreach ($message->getHeaders() as $name => $values) {
-            $result .= $name . ': ' . implode(', ', $values) . "\r\n";
-        }
-
-        return trim($result);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Middleware.php b/core/vendor/guzzlehttp/guzzle/src/Middleware.php
deleted file mode 100644
index 2f165f3..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Middleware.php
+++ /dev/null
@@ -1,253 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Cookie\CookieJarInterface;
-use GuzzleHttp\Exception\ClientException;
-use GuzzleHttp\Exception\RequestException;
-use GuzzleHttp\Exception\ServerException;
-use GuzzleHttp\Promise\RejectedPromise;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Log\LoggerInterface;
-use Psr\Log\LogLevel;
-
-/**
- * Functions used to create and wrap handlers with handler middleware.
- */
-final class Middleware
-{
-    /**
-     * Middleware that adds cookies to requests.
-     *
-     * The options array must be set to a CookieJarInterface in order to use
-     * cookies. This is typically handled for you by a client.
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function cookies()
-    {
-        return function (callable $handler) {
-            return function ($request, array $options) use ($handler) {
-                if (empty($options['cookies'])) {
-                    return $handler($request, $options);
-                } elseif (!($options['cookies'] instanceof CookieJarInterface)) {
-                    throw new \InvalidArgumentException('cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface');
-                }
-                $cookieJar = $options['cookies'];
-                $request = $cookieJar->withCookieHeader($request);
-                return $handler($request, $options)
-                    ->then(function ($response) use ($cookieJar, $request) {
-                        $cookieJar->extractCookies($request, $response);
-                        return $response;
-                    }
-                );
-            };
-        };
-    }
-
-    /**
-     * Middleware that throws exceptions for 4xx or 5xx responses when the
-     * "http_error" request option is set to true.
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function httpErrors()
-    {
-        return function (callable $handler) {
-            return function ($request, array $options) use ($handler) {
-                if (empty($options['http_errors'])) {
-                    return $handler($request, $options);
-                }
-                return $handler($request, $options)->then(
-                    function (ResponseInterface $response) use ($request, $handler) {
-                        $code = $response->getStatusCode();
-                        if ($code < 400) {
-                            return $response;
-                        }
-                        throw $code > 499
-                            ? new ServerException("Server error: $code", $request, $response)
-                            : new ClientException("Client error: $code", $request, $response);
-                    }
-                );
-            };
-        };
-    }
-
-    /**
-     * Middleware that pushes history data to an ArrayAccess container.
-     *
-     * @param array $container Container to hold the history (by reference).
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function history(array &$container)
-    {
-        return function (callable $handler) use (&$container) {
-            return function ($request, array $options) use ($handler, &$container) {
-                return $handler($request, $options)->then(
-                    function ($value) use ($request, &$container, $options) {
-                        $container[] = [
-                            'request'  => $request,
-                            'response' => $value,
-                            'error'    => null,
-                            'options'  => $options
-                        ];
-                        return $value;
-                    },
-                    function ($reason) use ($request, &$container, $options) {
-                        $container[] = [
-                            'request'  => $request,
-                            'response' => null,
-                            'error'    => $reason,
-                            'options'  => $options
-                        ];
-                        return new RejectedPromise($reason);
-                    }
-                );
-            };
-        };
-    }
-
-    /**
-     * Middleware that invokes a callback before and after sending a request.
-     *
-     * The provided listener cannot modify or alter the response. It simply
-     * "taps" into the chain to be notified before returning the promise. The
-     * before listener accepts a request and options array, and the after
-     * listener accepts a request, options array, and response promise.
-     *
-     * @param callable $before Function to invoke before forwarding the request.
-     * @param callable $after  Function invoked after forwarding.
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function tap(callable $before = null, callable $after = null)
-    {
-        return function (callable $handler) use ($before, $after) {
-            return function ($request, array $options) use ($handler, $before, $after) {
-                if ($before) {
-                    $before($request, $options);
-                }
-                $response = $handler($request, $options);
-                if ($after) {
-                    $after($request, $options, $response);
-                }
-                return $response;
-            };
-        };
-    }
-
-    /**
-     * Middleware that handles request redirects.
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function redirect()
-    {
-        return function (callable $handler) {
-            return new RedirectMiddleware($handler);
-        };
-    }
-
-    /**
-     * Middleware that retries requests based on the boolean result of
-     * invoking the provided "decider" function.
-     *
-     * If no delay function is provided, a simple implementation of exponential
-     * backoff will be utilized.
-     *
-     * @param callable $decider Function that accepts the number of retries,
-     *                          a request, [response], and [exception] and
-     *                          returns true if the request is to be retried.
-     * @param callable $delay   Function that accepts the number of retries and
-     *                          returns the number of milliseconds to delay.
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function retry(callable $decider, callable $delay = null)
-    {
-        return function (callable $handler) use ($decider, $delay) {
-            return new RetryMiddleware($decider, $handler, $delay);
-        };
-    }
-
-    /**
-     * Middleware that logs requests, responses, and errors using a message
-     * formatter.
-     *
-     * @param LoggerInterface  $logger Logs messages.
-     * @param MessageFormatter $formatter Formatter used to create message strings.
-     * @param string           $logLevel Level at which to log requests.
-     *
-     * @return callable Returns a function that accepts the next handler.
-     */
-    public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = LogLevel::INFO)
-    {
-        return function (callable $handler) use ($logger, $formatter, $logLevel) {
-            return function ($request, array $options) use ($handler, $logger, $formatter, $logLevel) {
-                return $handler($request, $options)->then(
-                    function ($response) use ($logger, $request, $formatter, $logLevel) {
-                        $message = $formatter->format($request, $response);
-                        $logger->log($logLevel, $message);
-                        return $response;
-                    },
-                    function ($reason) use ($logger, $request, $formatter) {
-                        $response = $reason instanceof RequestException
-                            ? $reason->getResponse()
-                            : null;
-                        $message = $formatter->format($request, $response, $reason);
-                        $logger->notice($message);
-                        return \GuzzleHttp\Promise\rejection_for($reason);
-                    }
-                );
-            };
-        };
-    }
-
-    /**
-     * This middleware adds a default content-type if possible, a default
-     * content-length or transfer-encoding header, and the expect header.
-     *
-     * @return callable
-     */
-    public static function prepareBody()
-    {
-        return function (callable $handler) {
-            return new PrepareBodyMiddleware($handler);
-        };
-    }
-
-    /**
-     * Middleware that applies a map function to the request before passing to
-     * the next handler.
-     *
-     * @param callable $fn Function that accepts a RequestInterface and returns
-     *                     a RequestInterface.
-     * @return callable
-     */
-    public static function mapRequest(callable $fn)
-    {
-        return function (callable $handler) use ($fn) {
-            return function ($request, array $options) use ($handler, $fn) {
-                return $handler($fn($request), $options);
-            };
-        };
-    }
-
-    /**
-     * Middleware that applies a map function to the resolved promise's
-     * response.
-     *
-     * @param callable $fn Function that accepts a ResponseInterface and
-     *                     returns a ResponseInterface.
-     * @return callable
-     */
-    public static function mapResponse(callable $fn)
-    {
-        return function (callable $handler) use ($fn) {
-            return function ($request, array $options) use ($handler, $fn) {
-                return $handler($request, $options)->then($fn);
-            };
-        };
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/Pool.php b/core/vendor/guzzlehttp/guzzle/src/Pool.php
deleted file mode 100644
index bc41d6e..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/Pool.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Promise\PromisorInterface;
-use Psr\Http\Message\RequestInterface;
-use GuzzleHttp\Promise\EachPromise;
-
-/**
- * Sends and iterator of requests concurrently using a capped pool size.
- *
- * The pool will read from an iterator until it is cancelled or until the
- * iterator is consumed. When a request is yielded, the request is sent after
- * applying the "request_options" request options (if provided in the ctor).
- *
- * When a function is yielded by the iterator, the function is provided the
- * "request_options" array that should be merged on top of any existing
- * options, and the function MUST then return a wait-able promise.
- */
-class Pool implements PromisorInterface
-{
-    /** @var EachPromise */
-    private $each;
-
-    /**
-     * @param ClientInterface $client   Client used to send the requests.
-     * @param array|\Iterator $requests Requests or functions that return
-     *                                  requests to send concurrently.
-     * @param array           $config   Associative array of options
-     *     - concurrency: (int) Maximum number of requests to send concurrently
-     *     - options: Array of request options to apply to each request.
-     *     - fulfilled: (callable) Function to invoke when a request completes.
-     *     - rejected: (callable) Function to invoke when a request is rejected.
-     */
-    public function __construct(
-        ClientInterface $client,
-        $requests,
-        array $config = []
-    ) {
-        // Backwards compatibility.
-        if (isset($config['pool_size'])) {
-            $config['concurrency'] = $config['pool_size'];
-        } elseif (!isset($config['concurrency'])) {
-            $config['concurrency'] = 25;
-        }
-
-        if (isset($config['options'])) {
-            $opts = $config['options'];
-            unset($config['options']);
-        } else {
-            $opts = [];
-        }
-
-        $iterable = \GuzzleHttp\Promise\iter_for($requests);
-        $requests = function () use ($iterable, $client, $opts) {
-            foreach ($iterable as $rfn) {
-                if ($rfn instanceof RequestInterface) {
-                    yield $client->sendAsync($rfn, $opts);
-                } elseif (is_callable($rfn)) {
-                    yield $rfn($opts);
-                } else {
-                    throw new \InvalidArgumentException('Each value yielded by '
-                        . 'the iterator must be a Psr7\Http\Message\RequestInterface '
-                        . 'or a callable that returns a promise that fulfills '
-                        . 'with a Psr7\Message\Http\ResponseInterface object.');
-                }
-            }
-        };
-
-        $this->each = new EachPromise($requests(), $config);
-    }
-
-    public function promise()
-    {
-        return $this->each->promise();
-    }
-
-    /**
-     * Sends multiple requests concurrently and returns an array of responses
-     * and exceptions that uses the same ordering as the provided requests.
-     *
-     * IMPORTANT: This method keeps every request and response in memory, and
-     * as such, is NOT recommended when sending a large number or an
-     * indeterminate number of requests concurrently.
-     *
-     * @param ClientInterface $client   Client used to send the requests
-     * @param array|\Iterator $requests Requests to send concurrently.
-     * @param array           $options  Passes through the options available in
-     *                                  {@see GuzzleHttp\Pool::__construct}
-     *
-     * @return array Returns an array containing the response or an exception
-     *               in the same order that the requests were sent.
-     * @throws \InvalidArgumentException if the event format is incorrect.
-     */
-    public static function batch(
-        ClientInterface $client,
-        $requests,
-        array $options = []
-    ) {
-        $res = [];
-        self::cmpCallback($options, 'fulfilled', $res);
-        self::cmpCallback($options, 'rejected', $res);
-        $pool = new static($client, $requests, $options);
-        $pool->promise()->wait();
-        ksort($res);
-
-        return $res;
-    }
-
-    private static function cmpCallback(array &$options, $name, array &$results)
-    {
-        if (!isset($options[$name])) {
-            $options[$name] = function ($v, $k) use (&$results) {
-                $results[$k] = $v;
-            };
-        } else {
-            $currentFn = $options[$name];
-            $options[$name] = function ($v, $k) use (&$results, $currentFn) {
-                $currentFn($v, $k);
-                $results[$k] = $v;
-            };
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php b/core/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php
deleted file mode 100644
index e6d176b..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Prepares requests that contain a body, adding the Content-Length,
- * Content-Type, and Expect headers.
- */
-class PrepareBodyMiddleware
-{
-    /** @var callable  */
-    private $nextHandler;
-
-    /** @var array */
-    private static $skipMethods = ['GET' => true, 'HEAD' => true];
-
-    /**
-     * @param callable $nextHandler Next handler to invoke.
-     */
-    public function __construct(callable $nextHandler)
-    {
-        $this->nextHandler = $nextHandler;
-    }
-
-    /**
-     * @param RequestInterface $request
-     * @param array            $options
-     *
-     * @return PromiseInterface
-     */
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        $fn = $this->nextHandler;
-
-        // Don't do anything if the request has no body.
-        if (isset(self::$skipMethods[$request->getMethod()])
-            || $request->getBody()->getSize() === 0
-        ) {
-            return $fn($request, $options);
-        }
-
-        $modify = [];
-
-        // Add a default content-type if possible.
-        if (!$request->hasHeader('Content-Type')) {
-            if ($uri = $request->getBody()->getMetadata('uri')) {
-                if ($type = Psr7\mimetype_from_filename($uri)) {
-                    $modify['set_headers']['Content-Type'] = $type;
-                }
-            }
-        }
-
-        // Add a default content-length or transfer-encoding header.
-        if (!isset(self::$skipMethods[$request->getMethod()])
-            && !$request->hasHeader('Content-Length')
-            && !$request->hasHeader('Transfer-Encoding')
-        ) {
-            $size = $request->getBody()->getSize();
-            if ($size !== null) {
-                $modify['set_headers']['Content-Length'] = $size;
-            } else {
-                $modify['set_headers']['Transfer-Encoding'] = 'chunked';
-            }
-        }
-
-        // Add the expect header if needed.
-        $this->addExpectHeader($request, $options, $modify);
-
-        return $fn(Psr7\modify_request($request, $modify), $options);
-    }
-
-    private function addExpectHeader(
-        RequestInterface $request,
-        array $options,
-        array &$modify
-    ) {
-        // Determine if the Expect header should be used
-        if ($request->hasHeader('Expect')) {
-            return;
-        }
-
-        $expect = isset($options['expect']) ? $options['expect'] : null;
-
-        // Return if disabled or if you're not using HTTP/1.1 or HTTP/2.0
-        if ($expect === false || $request->getProtocolVersion() < 1.1) {
-            return;
-        }
-
-        // The expect header is unconditionally enabled
-        if ($expect === true) {
-            $modify['set_headers']['Expect'] = '100-Continue';
-            return;
-        }
-
-        // By default, send the expect header when the payload is > 1mb
-        if ($expect === null) {
-            $expect = 1048576;
-        }
-
-        // Always add if the body cannot be rewound, the size cannot be
-        // determined, or the size is greater than the cutoff threshold
-        $body = $request->getBody();
-        $size = $body->getSize();
-
-        if ($size === null || $size >= (int) $expect || !$body->isSeekable()) {
-            $modify['set_headers']['Expect'] = '100-Continue';
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php b/core/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php
deleted file mode 100644
index 374931d..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Exception\BadResponseException;
-use GuzzleHttp\Exception\TooManyRedirectsException;
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * Request redirect middleware.
- *
- * Apply this middleware like other middleware using
- * {@see GuzzleHttp\Middleware::redirect()}.
- */
-class RedirectMiddleware
-{
-    public static $defaultSettings = [
-        'max'       => 5,
-        'protocols' => ['http', 'https'],
-        'strict'    => false,
-        'referer'   => false
-    ];
-
-    /** @var callable  */
-    private $nextHandler;
-
-    /**
-     * @param callable $nextHandler Next handler to invoke.
-     */
-    public function __construct(callable $nextHandler)
-    {
-        $this->nextHandler = $nextHandler;
-    }
-
-    /**
-     * @param RequestInterface $request
-     * @param array            $options
-     *
-     * @return PromiseInterface
-     */
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        $fn = $this->nextHandler;
-
-        if (empty($options['allow_redirects'])) {
-            return $fn($request, $options);
-        }
-
-        if ($options['allow_redirects'] === true) {
-            $options['allow_redirects'] = self::$defaultSettings;
-        } elseif (!is_array($options['allow_redirects'])) {
-            throw new \InvalidArgumentException('allow_redirects must be true, false, or array');
-        } else {
-            // Merge the default settings with the provided settings
-            $options['allow_redirects'] += self::$defaultSettings;
-        }
-
-        if (empty($options['allow_redirects']['max'])) {
-            return $fn($request, $options);
-        }
-
-        return $fn($request, $options)
-            ->then(function (ResponseInterface $response) use ($request, $options) {
-                return $this->checkRedirect($request, $options, $response);
-            });
-    }
-
-    /**
-     * @param RequestInterface  $request
-     * @param array             $options
-     * @param ResponseInterface|PromiseInterface $response
-     *
-     * @return ResponseInterface|PromiseInterface
-     */
-    public function checkRedirect(
-        RequestInterface $request,
-        array $options,
-        ResponseInterface $response
-    ) {
-        if (substr($response->getStatusCode(), 0, 1) != '3'
-            || !$response->hasHeader('Location')
-        ) {
-            return $response;
-        }
-
-        $this->guardMax($request, $options);
-        $nextRequest = $this->modifyRequest($request, $options, $response);
-
-        if (isset($options['allow_redirects']['on_redirect'])) {
-            call_user_func(
-                $options['allow_redirects']['on_redirect'],
-                $request,
-                $response,
-                $nextRequest->getUri()
-            );
-        }
-
-        return $this($nextRequest, $options);
-    }
-
-    private function guardMax(RequestInterface $request, array &$options)
-    {
-        $current = isset($options['__redirect_count'])
-            ? $options['__redirect_count']
-            : 0;
-        $options['__redirect_count'] = $current + 1;
-        $max = $options['allow_redirects']['max'];
-
-        if ($options['__redirect_count'] > $max) {
-            throw new TooManyRedirectsException(
-                "Will not follow more than {$max} redirects",
-                $request
-            );
-        }
-    }
-
-    /**
-     * @param RequestInterface  $request
-     * @param array             $options
-     * @param ResponseInterface $response
-     *
-     * @return RequestInterface
-     */
-    public function modifyRequest(
-        RequestInterface $request,
-        array $options,
-        ResponseInterface $response
-    ) {
-        // Request modifications to apply.
-        $modify = [];
-        $protocols = $options['allow_redirects']['protocols'];
-
-        // Use a GET request if this is an entity enclosing request and we are
-        // not forcing RFC compliance, but rather emulating what all browsers
-        // would do.
-        $statusCode = $response->getStatusCode();
-        if ($statusCode == 303 ||
-            ($statusCode <= 302 && $request->getBody() && !$options['allow_redirects']['strict'])
-        ) {
-            $modify['method'] = 'GET';
-            $modify['body'] = '';
-        }
-
-        $modify['uri'] = $this->redirectUri($request, $response, $protocols);
-        Psr7\rewind_body($request);
-
-        // Add the Referer header if it is told to do so and only
-        // add the header if we are not redirecting from https to http.
-        if ($options['allow_redirects']['referer']
-            && $modify['uri']->getScheme() === $request->getUri()->getScheme()
-        ) {
-            $uri = $request->getUri()->withUserInfo('', '');
-            $modify['set_headers']['Referer'] = (string) $uri;
-        } else {
-            $modify['remove_headers'][] = 'Referer';
-        }
-
-        return Psr7\modify_request($request, $modify);
-    }
-
-    /**
-     * Set the appropriate URL on the request based on the location header
-     *
-     * @param RequestInterface  $request
-     * @param ResponseInterface $response
-     * @param array             $protocols
-     *
-     * @return UriInterface
-     */
-    private function redirectUri(
-        RequestInterface $request,
-        ResponseInterface $response,
-        array $protocols
-    ) {
-        $location = Psr7\Uri::resolve(
-            $request->getUri(),
-            $response->getHeaderLine('Location')
-        );
-
-        // Ensure that the redirect URI is allowed based on the protocols.
-        if (!in_array($location->getScheme(), $protocols)) {
-            throw new BadResponseException(
-                sprintf(
-                    'Redirect URI, %s, does not use one of the allowed redirect protocols: %s',
-                    $location,
-                    implode(', ', $protocols)
-                ),
-                $request,
-                $response
-            );
-        }
-
-        return $location;
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/RequestOptions.php b/core/vendor/guzzlehttp/guzzle/src/RequestOptions.php
deleted file mode 100644
index e142b3f..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/RequestOptions.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-/**
- * This class contains a list of built-in Guzzle request options.
- *
- * More documentation for each option can be found at http://guzzlephp.org/.
- *
- * @link http://docs.guzzlephp.org/en/v6/request-options.html
- */
-final class RequestOptions
-{
-    /**
-     * allow_redirects: (bool|array) Controls redirect behavior. Pass false
-     * to disable redirects, pass true to enable redirects, pass an
-     * associative to provide custom redirect settings. Defaults to "false".
-     * This option only works if your handler has the RedirectMiddleware. When
-     * passing an associative array, you can provide the following key value
-     * pairs:
-     *
-     * - max: (int, default=5) maximum number of allowed redirects.
-     * - strict: (bool, default=false) Set to true to use strict redirects
-     *   meaning redirect POST requests with POST requests vs. doing what most
-     *   browsers do which is redirect POST requests with GET requests
-     * - referer: (bool, default=true) Set to false to disable the Referer
-     *   header.
-     * - protocols: (array, default=['http', 'https']) Allowed redirect
-     *   protocols.
-     * - on_redirect: (callable) PHP callable that is invoked when a redirect
-     *   is encountered. The callable is invoked with the request, the redirect
-     *   response that was received, and the effective URI. Any return value
-     *   from the on_redirect function is ignored.
-     */
-    const ALLOW_REDIRECTS = 'allow_redirects';
-
-    /**
-     * auth: (array) Pass an array of HTTP authentication parameters to use
-     * with the request. The array must contain the username in index [0],
-     * the password in index [1], and you can optionally provide a built-in
-     * authentication type in index [2]. Pass null to disable authentication
-     * for a request.
-     */
-    const AUTH = 'auth';
-
-    /**
-     * body: (string|null|callable|iterator|object) Body to send in the
-     * request.
-     */
-    const BODY = 'body';
-
-    /**
-     * cert: (string|array) Set to a string to specify the path to a file
-     * containing a PEM formatted SSL client side certificate. If a password
-     * is required, then set cert to an array containing the path to the PEM
-     * file in the first array element followed by the certificate password
-     * in the second array element.
-     */
-    const CERT = 'cert';
-
-    /**
-     * cookies: (bool|GuzzleHttp\Cookie\CookieJarInterface, default=false)
-     * Specifies whether or not cookies are used in a request or what cookie
-     * jar to use or what cookies to send. This option only works if your
-     * handler has the `cookie` middleware. Valid values are `false` and
-     * an instance of {@see GuzzleHttp\Cookie\CookieJarInterface}.
-     */
-    const COOKIES = 'cookies';
-
-    /**
-     * connect_timeout: (float, default=0) Float describing the number of
-     * seconds to wait while trying to connect to a server. Use 0 to wait
-     * indefinitely (the default behavior).
-     */
-    const CONNECT_TIMEOUT = 'connect_timeout';
-
-    /**
-     * debug: (bool|resource) Set to true or set to a PHP stream returned by
-     * fopen()  enable debug output with the HTTP handler used to send a
-     * request.
-     */
-    const DEBUG = 'debug';
-
-    /**
-     * decode_content: (bool, default=true) Specify whether or not
-     * Content-Encoding responses (gzip, deflate, etc.) are automatically
-     * decoded.
-     */
-    const DECODE_CONTENT = 'decode_content';
-
-    /**
-     * delay: (int) The amount of time to delay before sending in milliseconds.
-     */
-    const DELAY = 'delay';
-
-    /**
-     * expect: (bool|integer) Controls the behavior of the
-     * "Expect: 100-Continue" header.
-     *
-     * Set to `true` to enable the "Expect: 100-Continue" header for all
-     * requests that sends a body. Set to `false` to disable the
-     * "Expect: 100-Continue" header for all requests. Set to a number so that
-     * the size of the payload must be greater than the number in order to send
-     * the Expect header. Setting to a number will send the Expect header for
-     * all requests in which the size of the payload cannot be determined or
-     * where the body is not rewindable.
-     *
-     * By default, Guzzle will add the "Expect: 100-Continue" header when the
-     * size of the body of a request is greater than 1 MB and a request is
-     * using HTTP/1.1.
-     */
-    const EXPECT = 'expect';
-
-    /**
-     * form_params: (array) Associative array of form field names to values
-     * where each value is a string or array of strings. Sets the Content-Type
-     * header to application/x-www-form-urlencoded when no Content-Type header
-     * is already present.
-     */
-    const FORM_PARAMS = 'form_params';
-
-    /**
-     * headers: (array) Associative array of HTTP headers. Each value MUST be
-     * a string or array of strings.
-     */
-    const HEADERS = 'headers';
-
-    /**
-     * http_errors: (bool, default=true) Set to false to disable exceptions
-     * when a non- successful HTTP response is received. By default,
-     * exceptions will be thrown for 4xx and 5xx responses. This option only
-     * works if your handler has the `httpErrors` middleware.
-     */
-    const HTTP_ERRORS = 'http_errors';
-
-    /**
-     * json: (mixed) Adds JSON data to a request. The provided value is JSON
-     * encoded and a Content-Type header of application/json will be added to
-     * the request if no Content-Type header is already present.
-     */
-    const JSON = 'json';
-
-    /**
-     * multipart: (array) Array of associative arrays, each containing a
-     * required "name" key mapping to the form field, name, a required
-     * "contents" key mapping to a StreamInterface|resource|string, an
-     * optional "headers" associative array of custom headers, and an
-     * optional "filename" key mapping to a string to send as the filename in
-     * the part. If no "filename" key is present, then no "filename" attribute
-     * will be added to the part.
-     */
-    const MULTIPART = 'multipart';
-
-    /**
-     * progress: (callable) Defines a function to invoke when transfer
-     * progress is made. The function accepts the following positional
-     * arguments: the total number of bytes expected to be downloaded, the
-     * number of bytes downloaded so far, the number of bytes expected to be
-     * uploaded, the number of bytes uploaded so far.
-     */
-    const PROGRESS = 'progress';
-
-    /**
-     * proxy: (string|array) Pass a string to specify an HTTP proxy, or an
-     * array to specify different proxies for different protocols (where the
-     * key is the protocol and the value is a proxy string).
-     */
-    const PROXY = 'proxy';
-
-    /**
-     * query: (array|string) Associative array of query string values to add
-     * to the request. This option uses PHP's http_build_query() to create
-     * the string representation. Pass a string value if you need more
-     * control than what this method provides
-     */
-    const QUERY = 'query';
-
-    /**
-     * sink: (resource|string|StreamInterface) Where the data of the
-     * response is written to. Defaults to a PHP temp stream. Providing a
-     * string will write data to a file by the given name.
-     */
-    const SINK = 'sink';
-
-    /**
-     * synchronous: (bool) Set to true to inform HTTP handlers that you intend
-     * on waiting on the response. This can be useful for optimizations. Note
-     * that a promise is still returned if you are using one of the async
-     * client methods.
-     */
-    const SYNCHRONOUS = 'synchronous';
-
-    /**
-     * ssl_key: (array|string) Specify the path to a file containing a private
-     * SSL key in PEM format. If a password is required, then set to an array
-     * containing the path to the SSL key in the first array element followed
-     * by the password required for the certificate in the second element.
-     */
-    const SSL_KEY = 'ssl_key';
-
-    /**
-     * stream: Set to true to attempt to stream a response rather than
-     * download it all up-front.
-     */
-    const STREAM = 'stream';
-
-    /**
-     * verify: (bool|string, default=true) Describes the SSL certificate
-     * verification behavior of a request. Set to true to enable SSL
-     * certificate verification using the system CA bundle when available
-     * (the default). Set to false to disable certificate verification (this
-     * is insecure!). Set to a string to provide the path to a CA bundle on
-     * disk to enable verification using a custom certificate.
-     */
-    const VERIFY = 'verify';
-
-    /**
-     * timeout: (float, default=0) Float describing the timeout of the
-     * request in seconds. Use 0 to wait indefinitely (the default behavior).
-     */
-    const TIMEOUT = 'timeout';
-
-    /**
-     * version: (float) Specifies the HTTP protocol version to attempt to use.
-     */
-    const VERSION = 'version';
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php b/core/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php
deleted file mode 100644
index 4b95a14..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Promise\RejectedPromise;
-use GuzzleHttp\Psr7;
-use Psr\Http\Message\RequestInterface;
-
-/**
- * Middleware that retries requests based on the boolean result of
- * invoking the provided "decider" function.
- */
-class RetryMiddleware
-{
-    /** @var callable  */
-    private $nextHandler;
-
-    /** @var callable */
-    private $decider;
-
-    /**
-     * @param callable $decider     Function that accepts the number of retries,
-     *                              a request, [response], and [exception] and
-     *                              returns true if the request is to be
-     *                              retried.
-     * @param callable $nextHandler Next handler to invoke.
-     * @param callable $delay       Function that accepts the number of retries
-     *                              and returns the number of milliseconds to
-     *                              delay.
-     */
-    public function __construct(
-        callable $decider,
-        callable $nextHandler,
-        callable $delay = null
-    ) {
-        $this->decider = $decider;
-        $this->nextHandler = $nextHandler;
-        $this->delay = $delay ?: __CLASS__ . '::exponentialDelay';
-    }
-
-    /**
-     * Default exponential backoff delay function.
-     *
-     * @param $retries
-     *
-     * @return int
-     */
-    public static function exponentialDelay($retries)
-    {
-        return (int) pow(2, $retries - 1);
-    }
-
-    /**
-     * @param RequestInterface $request
-     * @param array            $options
-     *
-     * @return PromiseInterface
-     */
-    public function __invoke(RequestInterface $request, array $options)
-    {
-        if (!isset($options['retries'])) {
-            $options['retries'] = 0;
-        }
-
-        $fn = $this->nextHandler;
-        return $fn($request, $options)
-            ->then(
-                $this->onFulfilled($request, $options),
-                $this->onRejected($request, $options)
-            );
-    }
-
-    private function onFulfilled(RequestInterface $req, array $options)
-    {
-        return function ($value) use ($req, $options) {
-            if (!call_user_func(
-                $this->decider,
-                $options['retries'],
-                $req,
-                $value,
-                null
-            )) {
-                return $value;
-            }
-            return $this->doRetry($req, $options);
-        };
-    }
-
-    private function onRejected(RequestInterface $req, array $options)
-    {
-        return function ($reason) use ($req, $options) {
-            if (!call_user_func(
-                $this->decider,
-                $options['retries'],
-                $req,
-                null,
-                $reason
-            )) {
-                return new RejectedPromise($reason);
-            }
-            return $this->doRetry($req, $options);
-        };
-    }
-
-    private function doRetry(RequestInterface $request, array $options)
-    {
-        $options['delay'] = call_user_func($this->delay, ++$options['retries']);
-
-        return $this($request, $options);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/UriTemplate.php b/core/vendor/guzzlehttp/guzzle/src/UriTemplate.php
deleted file mode 100644
index 55dfeb5..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/UriTemplate.php
+++ /dev/null
@@ -1,241 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-/**
- * Expands URI templates. Userland implementation of PECL uri_template.
- *
- * @link http://tools.ietf.org/html/rfc6570
- */
-class UriTemplate
-{
-    /** @var string URI template */
-    private $template;
-
-    /** @var array Variables to use in the template expansion */
-    private $variables;
-
-    /** @var array Hash for quick operator lookups */
-    private static $operatorHash = array(
-        ''  => array('prefix' => '',  'joiner' => ',', 'query' => false),
-        '+' => array('prefix' => '',  'joiner' => ',', 'query' => false),
-        '#' => array('prefix' => '#', 'joiner' => ',', 'query' => false),
-        '.' => array('prefix' => '.', 'joiner' => '.', 'query' => false),
-        '/' => array('prefix' => '/', 'joiner' => '/', 'query' => false),
-        ';' => array('prefix' => ';', 'joiner' => ';', 'query' => true),
-        '?' => array('prefix' => '?', 'joiner' => '&', 'query' => true),
-        '&' => array('prefix' => '&', 'joiner' => '&', 'query' => true)
-    );
-
-    /** @var array Delimiters */
-    private static $delims = array(':', '/', '?', '#', '[', ']', '@', '!', '$',
-        '&', '\'', '(', ')', '*', '+', ',', ';', '=');
-
-    /** @var array Percent encoded delimiters */
-    private static $delimsPct = array('%3A', '%2F', '%3F', '%23', '%5B', '%5D',
-        '%40', '%21', '%24', '%26', '%27', '%28', '%29', '%2A', '%2B', '%2C',
-        '%3B', '%3D');
-
-    public function expand($template, array $variables)
-    {
-        if (false === strpos($template, '{')) {
-            return $template;
-        }
-
-        $this->template = $template;
-        $this->variables = $variables;
-
-        return preg_replace_callback(
-            '/\{([^\}]+)\}/',
-            [$this, 'expandMatch'],
-            $this->template
-        );
-    }
-
-    /**
-     * Parse an expression into parts
-     *
-     * @param string $expression Expression to parse
-     *
-     * @return array Returns an associative array of parts
-     */
-    private function parseExpression($expression)
-    {
-        $result = array();
-
-        if (isset(self::$operatorHash[$expression[0]])) {
-            $result['operator'] = $expression[0];
-            $expression = substr($expression, 1);
-        } else {
-            $result['operator'] = '';
-        }
-
-        foreach (explode(',', $expression) as $value) {
-            $value = trim($value);
-            $varspec = array();
-            if ($colonPos = strpos($value, ':')) {
-                $varspec['value'] = substr($value, 0, $colonPos);
-                $varspec['modifier'] = ':';
-                $varspec['position'] = (int) substr($value, $colonPos + 1);
-            } elseif (substr($value, -1) == '*') {
-                $varspec['modifier'] = '*';
-                $varspec['value'] = substr($value, 0, -1);
-            } else {
-                $varspec['value'] = (string) $value;
-                $varspec['modifier'] = '';
-            }
-            $result['values'][] = $varspec;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Process an expansion
-     *
-     * @param array $matches Matches met in the preg_replace_callback
-     *
-     * @return string Returns the replacement string
-     */
-    private function expandMatch(array $matches)
-    {
-        static $rfc1738to3986 = array('+' => '%20', '%7e' => '~');
-
-        $replacements = array();
-        $parsed = self::parseExpression($matches[1]);
-        $prefix = self::$operatorHash[$parsed['operator']]['prefix'];
-        $joiner = self::$operatorHash[$parsed['operator']]['joiner'];
-        $useQuery = self::$operatorHash[$parsed['operator']]['query'];
-
-        foreach ($parsed['values'] as $value) {
-
-            if (!isset($this->variables[$value['value']])) {
-                continue;
-            }
-
-            $variable = $this->variables[$value['value']];
-            $actuallyUseQuery = $useQuery;
-            $expanded = '';
-
-            if (is_array($variable)) {
-
-                $isAssoc = $this->isAssoc($variable);
-                $kvp = array();
-                foreach ($variable as $key => $var) {
-
-                    if ($isAssoc) {
-                        $key = rawurlencode($key);
-                        $isNestedArray = is_array($var);
-                    } else {
-                        $isNestedArray = false;
-                    }
-
-                    if (!$isNestedArray) {
-                        $var = rawurlencode($var);
-                        if ($parsed['operator'] == '+' ||
-                            $parsed['operator'] == '#'
-                        ) {
-                            $var = $this->decodeReserved($var);
-                        }
-                    }
-
-                    if ($value['modifier'] == '*') {
-                        if ($isAssoc) {
-                            if ($isNestedArray) {
-                                // Nested arrays must allow for deeply nested
-                                // structures.
-                                $var = strtr(
-                                    http_build_query([$key => $var]),
-                                    $rfc1738to3986
-                                );
-                            } else {
-                                $var = $key . '=' . $var;
-                            }
-                        } elseif ($key > 0 && $actuallyUseQuery) {
-                            $var = $value['value'] . '=' . $var;
-                        }
-                    }
-
-                    $kvp[$key] = $var;
-                }
-
-                if (empty($variable)) {
-                    $actuallyUseQuery = false;
-                } elseif ($value['modifier'] == '*') {
-                    $expanded = implode($joiner, $kvp);
-                    if ($isAssoc) {
-                        // Don't prepend the value name when using the explode
-                        // modifier with an associative array.
-                        $actuallyUseQuery = false;
-                    }
-                } else {
-                    if ($isAssoc) {
-                        // When an associative array is encountered and the
-                        // explode modifier is not set, then the result must be
-                        // a comma separated list of keys followed by their
-                        // respective values.
-                        foreach ($kvp as $k => &$v) {
-                            $v = $k . ',' . $v;
-                        }
-                    }
-                    $expanded = implode(',', $kvp);
-                }
-
-            } else {
-                if ($value['modifier'] == ':') {
-                    $variable = substr($variable, 0, $value['position']);
-                }
-                $expanded = rawurlencode($variable);
-                if ($parsed['operator'] == '+' || $parsed['operator'] == '#') {
-                    $expanded = $this->decodeReserved($expanded);
-                }
-            }
-
-            if ($actuallyUseQuery) {
-                if (!$expanded && $joiner != '&') {
-                    $expanded = $value['value'];
-                } else {
-                    $expanded = $value['value'] . '=' . $expanded;
-                }
-            }
-
-            $replacements[] = $expanded;
-        }
-
-        $ret = implode($joiner, $replacements);
-        if ($ret && $prefix) {
-            return $prefix . $ret;
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Determines if an array is associative.
-     *
-     * This makes the assumption that input arrays are sequences or hashes.
-     * This assumption is a tradeoff for accuracy in favor of speed, but it
-     * should work in almost every case where input is supplied for a URI
-     * template.
-     *
-     * @param array $array Array to check
-     *
-     * @return bool
-     */
-    private function isAssoc(array $array)
-    {
-        return $array && array_keys($array)[0] !== 0;
-    }
-
-    /**
-     * Removes percent encoding on reserved characters (used with + and #
-     * modifiers).
-     *
-     * @param string $string String to fix
-     *
-     * @return string
-     */
-    private function decodeReserved($string)
-    {
-        return str_replace(self::$delimsPct, self::$delims, $string);
-    }
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/functions.php b/core/vendor/guzzlehttp/guzzle/src/functions.php
deleted file mode 100644
index f5ff1fc..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/functions.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-namespace GuzzleHttp;
-
-use GuzzleHttp\Handler\CurlHandler;
-use GuzzleHttp\Handler\CurlMultiHandler;
-use GuzzleHttp\Handler\Proxy;
-use GuzzleHttp\Handler\StreamHandler;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Expands a URI template
- *
- * @param string $template  URI template
- * @param array  $variables Template variables
- *
- * @return string
- */
-function uri_template($template, array $variables)
-{
-    if (extension_loaded('uri_template')) {
-        // @codeCoverageIgnoreStart
-        return \uri_template($template, $variables);
-        // @codeCoverageIgnoreEnd
-    }
-
-    static $uriTemplate;
-    if (!$uriTemplate) {
-        $uriTemplate = new UriTemplate();
-    }
-
-    return $uriTemplate->expand($template, $variables);
-}
-
-/**
- * Debug function used to describe the provided value type and class.
- *
- * @param mixed $input
- *
- * @return string Returns a string containing the type of the variable and
- *                if a class is provided, the class name.
- */
-function describe_type($input)
-{
-    switch (gettype($input)) {
-        case 'object':
-            return 'object(' . get_class($input) . ')';
-        case 'array':
-            return 'array(' . count($input) . ')';
-        default:
-            ob_start();
-            var_dump($input);
-            // normalize float vs double
-            return str_replace('double(', 'float(', rtrim(ob_get_clean()));
-    }
-}
-
-/**
- * Parses an array of header lines into an associative array of headers.
- *
- * @param array $lines Header lines array of strings in the following
- *                     format: "Name: Value"
- * @return array
- */
-function headers_from_lines($lines)
-{
-    $headers = [];
-
-    foreach ($lines as $line) {
-        $parts = explode(':', $line, 2);
-        $headers[trim($parts[0])][] = isset($parts[1])
-            ? trim($parts[1])
-            : null;
-    }
-
-    return $headers;
-}
-
-/**
- * Returns a debug stream based on the provided variable.
- *
- * @param mixed $value Optional value
- *
- * @return resource
- */
-function debug_resource($value = null)
-{
-    if (is_resource($value)) {
-        return $value;
-    } elseif (defined('STDOUT')) {
-        return STDOUT;
-    }
-
-    return fopen('php://output', 'w');
-}
-
-/**
- * Chooses and creates a default handler to use based on the environment.
- *
- * The returned handler is not wrapped by any default middlewares.
- *
- * @throws \RuntimeException if no viable Handler is available.
- * @return callable Returns the best handler for the given system.
- */
-function choose_handler()
-{
-    $handler = null;
-    if (extension_loaded('curl')) {
-        $handler = Proxy::wrapSync(new CurlMultiHandler(), new CurlHandler());
-    }
-
-    if (ini_get('allow_url_fopen')) {
-        $handler = $handler
-            ? Proxy::wrapStreaming($handler, new StreamHandler())
-            : new StreamHandler();
-    } elseif (!$handler) {
-        throw new \RuntimeException('GuzzleHttp requires cURL, the '
-            . 'allow_url_fopen ini setting, or a custom HTTP handler.');
-    }
-
-    return $handler;
-}
-
-/**
- * Get the default User-Agent string to use with Guzzle
- *
- * @return string
- */
-function default_user_agent()
-{
-    static $defaultAgent = '';
-
-    if (!$defaultAgent) {
-        $defaultAgent = 'GuzzleHttp/' . Client::VERSION;
-        if (extension_loaded('curl')) {
-            $defaultAgent .= ' curl/' . \curl_version()['version'];
-        }
-        $defaultAgent .= ' PHP/' . PHP_VERSION;
-    }
-
-    return $defaultAgent;
-}
-
-/**
- * Returns the default cacert bundle for the current system.
- *
- * First, the openssl.cafile and curl.cainfo php.ini settings are checked.
- * If those settings are not configured, then the common locations for
- * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X
- * and Windows are checked. If any of these file locations are found on
- * disk, they will be utilized.
- *
- * Note: the result of this function is cached for subsequent calls.
- *
- * @return string
- * @throws \RuntimeException if no bundle can be found.
- */
-function default_ca_bundle()
-{
-    static $cached = null;
-    static $cafiles = [
-        // Red Hat, CentOS, Fedora (provided by the ca-certificates package)
-        '/etc/pki/tls/certs/ca-bundle.crt',
-        // Ubuntu, Debian (provided by the ca-certificates package)
-        '/etc/ssl/certs/ca-certificates.crt',
-        // FreeBSD (provided by the ca_root_nss package)
-        '/usr/local/share/certs/ca-root-nss.crt',
-        // OS X provided by homebrew (using the default path)
-        '/usr/local/etc/openssl/cert.pem',
-        // Windows?
-        'C:\\windows\\system32\\curl-ca-bundle.crt',
-        'C:\\windows\\curl-ca-bundle.crt',
-    ];
-
-    if ($cached) {
-        return $cached;
-    }
-
-    if ($ca = ini_get('openssl.cafile')) {
-        return $cached = $ca;
-    }
-
-    if ($ca = ini_get('curl.cainfo')) {
-        return $cached = $ca;
-    }
-
-    foreach ($cafiles as $filename) {
-        if (file_exists($filename)) {
-            return $cached = $filename;
-        }
-    }
-
-    throw new \RuntimeException(<<< EOT
-No system CA bundle could be found in any of the the common system locations.
-PHP versions earlier than 5.6 are not properly configured to use the system's
-CA bundle by default. In order to verify peer certificates, you will need to
-supply the path on disk to a certificate bundle to the 'verify' request
-option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
-need a specific certificate bundle, then Mozilla provides a commonly used CA
-bundle which can be downloaded here (provided by the maintainer of cURL):
-https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once
-you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
-ini setting to point to the path to the file, allowing you to omit the 'verify'
-request option. See http://curl.haxx.se/docs/sslcerts.html for more
-information.
-EOT
-    );
-}
-
-/**
- * Creates an associative array of lowercase header names to the actual
- * header casing.
- *
- * @param array $headers
- *
- * @return array
- */
-function normalize_header_keys(array $headers)
-{
-    $result = [];
-    foreach (array_keys($headers) as $key) {
-        $result[strtolower($key)] = $key;
-    }
-
-    return $result;
-}
diff --git a/core/vendor/guzzlehttp/guzzle/src/functions_include.php b/core/vendor/guzzlehttp/guzzle/src/functions_include.php
deleted file mode 100644
index a93393a..0000000
--- a/core/vendor/guzzlehttp/guzzle/src/functions_include.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-// Don't redefine the functions if included multiple times.
-if (!function_exists('GuzzleHttp\uri_template')) {
-    require __DIR__ . '/functions.php';
-}
diff --git a/core/vendor/guzzlehttp/promises/.gitignore b/core/vendor/guzzlehttp/promises/.gitignore
deleted file mode 100644
index 83ec41e..0000000
--- a/core/vendor/guzzlehttp/promises/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-phpunit.xml
-composer.phar
-composer.lock
-composer-test.lock
-vendor/
-build/artifacts/
-artifacts/
-docs/_build
-docs/*.pyc
-.idea
-.DS_STORE
diff --git a/core/vendor/guzzlehttp/promises/.travis.yml b/core/vendor/guzzlehttp/promises/.travis.yml
deleted file mode 100644
index 4f4d2b8..0000000
--- a/core/vendor/guzzlehttp/promises/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: php
-
-php:
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-sudo: false
-
-install:
-  - travis_retry composer install --no-interaction --prefer-source
-
-script: make test
-
-matrix:
-  allow_failures:
-    - php: hhvm
-  fast_finish: true
diff --git a/core/vendor/guzzlehttp/promises/CHANGELOG.md b/core/vendor/guzzlehttp/promises/CHANGELOG.md
deleted file mode 100644
index daad986..0000000
--- a/core/vendor/guzzlehttp/promises/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# CHANGELOG
-
-## 1.0.2 - 2015-05-15
-
-* Conditionally require functions.php.
-
-## 1.0.1 - 2015-06-24
-
-* Updating EachPromise to call next on the underlying promise iterator as late
-  as possible to ensure that generators that generate new requests based on
-  callbacks are not iterated until after callbacks are invoked.
-
-## 1.0.0 - 2015-05-12
-
-* Initial release
diff --git a/core/vendor/guzzlehttp/promises/LICENSE b/core/vendor/guzzlehttp/promises/LICENSE
deleted file mode 100644
index 581d95f..0000000
--- a/core/vendor/guzzlehttp/promises/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2015 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
-
-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/core/vendor/guzzlehttp/promises/Makefile b/core/vendor/guzzlehttp/promises/Makefile
deleted file mode 100644
index 8d5b3ef..0000000
--- a/core/vendor/guzzlehttp/promises/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-all: clean test
-
-test:
-	vendor/bin/phpunit
-
-coverage:
-	vendor/bin/phpunit --coverage-html=artifacts/coverage
-
-view-coverage:
-	open artifacts/coverage/index.html
-
-clean:
-	rm -rf artifacts/*
diff --git a/core/vendor/guzzlehttp/promises/README.md b/core/vendor/guzzlehttp/promises/README.md
deleted file mode 100644
index c6780ab..0000000
--- a/core/vendor/guzzlehttp/promises/README.md
+++ /dev/null
@@ -1,501 +0,0 @@
-# Guzzle Promises
-
-[Promises/A+](https://promisesaplus.com/) implementation that handles promise
-chaining and resolution iteratively, allowing for "infinite" promise chaining
-while keeping the stack size constant. Read [this blog post](https://blog.domenic.me/youre-missing-the-point-of-promises/)
-for a general introduction to promises.
-
-- [Features](#features)
-- [Quick start](#quick-start)
-- [Synchronous wait](#synchronous-wait)
-- [Cancellation](#cancellation)
-- [API](#api)
-  - [Promise](#promise)
-  - [FulfilledPromise](#fulfilledpromise)
-  - [RejectedPromise](#rejectedpromise)
-- [Promise interop](#promise-interop)
-- [Implementation notes](#implementation-notes)
-
-
-# Features
-
-- [Promises/A+](https://promisesaplus.com/) implementation.
-- Promise resolution and chaining is handled iteratively, allowing for
-  "infinite" promise chaining.
-- Promises have a synchronous `wait` method.
-- Promises can be cancelled.
-- Works with any object that has a `then` function.
-- C# style async/await coroutine promises using
-  `GuzzleHttp\Promise\coroutine()`.
-
-
-# Quick start
-
-A *promise* represents the eventual result of an asynchronous operation. The
-primary way of interacting with a promise is through its `then` method, which
-registers callbacks to receive either a promise's eventual value or the reason
-why the promise cannot be fulfilled.
-
-
-## Callbacks
-
-Callbacks are registered with the `then` method by providing an optional 
-`$onFulfilled` followed by an optional `$onRejected` function.
-
-
-```php
-use GuzzleHttp\Promise\Promise;
-
-$promise = new Promise();
-$promise->then(
-    // $onFulfilled
-    function ($value) {
-        echo 'The promise was fulfilled.';
-    },
-    // $onRejected
-    function ($reason) {
-        echo 'The promise was rejected.';
-    }
-);
-```
-
-*Resolving* a promise means that you either fulfill a promise with a *value* or
-reject a promise with a *reason*. Resolving a promises triggers callbacks
-registered with the promises's `then` method. These callbacks are triggered
-only once and in the order in which they were added.
-
-
-## Resolving a promise
-
-Promises are fulfilled using the `resolve($value)` method. Resolving a promise
-with any value other than a `GuzzleHttp\Promise\RejectedPromise` will trigger
-all of the onFulfilled callbacks (resolving a promise with a rejected promise
-will reject the promise and trigger the `$onRejected` callbacks).
-
-```php
-use GuzzleHttp\Promise\Promise;
-
-$promise = new Promise();
-$promise
-    ->then(function ($value) {
-        // Return a value and don't break the chain
-        return "Hello, " . $value;
-    })
-    // This then is executed after the first then and receives the value
-    // returned from the first then.
-    ->then(function ($value) {
-        echo $value;
-    });
-
-// Resolving the promise triggers the $onFulfilled callbacks and outputs
-// "Hello, reader".
-$promise->resolve('reader.');
-```
-
-
-## Promise forwarding
-
-Promises can be chained one after the other. Each then in the chain is a new
-promise. The return value of of a promise is what's forwarded to the next
-promise in the chain. Returning a promise in a `then` callback will cause the
-subsequent promises in the chain to only be fulfilled when the returned promise
-has been fulfilled. The next promise in the chain will be invoked with the
-resolved value of the promise.
-
-```php
-use GuzzleHttp\Promise\Promise;
-
-$promise = new Promise();
-$nextPromise = new Promise();
-
-$promise
-    ->then(function ($value) use ($nextPromise) {
-        echo $value;
-        return $nextPromise;
-    })
-    ->then(function ($value) {
-        echo $value;
-    });
-
-// Triggers the first callback and outputs "A"
-$promise->resolve('A');
-// Triggers the second callback and outputs "B"
-$nextPromise->resolve('B');
-```
-
-## Promise rejection
-
-When a promise is rejected, the `$onRejected` callbacks are invoked with the
-rejection reason.
-
-```php
-use GuzzleHttp\Promise\Promise;
-
-$promise = new Promise();
-$promise->then(null, function ($reason) {
-    echo $reason;
-});
-
-$promise->reject('Error!');
-// Outputs "Error!"
-```
-
-## Rejection forwarding
-
-If an exception is thrown in an `$onRejected` callback, subsequent
-`$onRejected` callbacks are invoked with the thrown exception as the reason.
-
-```php
-use GuzzleHttp\Promise\Promise;
-
-$promise = new Promise();
-$promise->then(null, function ($reason) {
-    throw new \Exception($reason);
-})->then(null, function ($reason) {
-    assert($reason->getMessage() === 'Error!');
-});
-
-$promise->reject('Error!');
-```
-
-You can also forward a rejection down the promise chain by returning a
-`GuzzleHttp\Promise\RejectedPromise` in either an `$onFulfilled` or
-`$onRejected` callback.
-
-```php
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\RejectedPromise;
-
-$promise = new Promise();
-$promise->then(null, function ($reason) {
-    return new RejectedPromise($reason);
-})->then(null, function ($reason) {
-    assert($reason === 'Error!');
-});
-
-$promise->reject('Error!');
-```
-
-If an exception is not thrown in a `$onRejected` callback and the callback
-does not return a rejected promise, downstream `$onFulfilled` callbacks are
-invoked using the value returned from the `$onRejected` callback.
-
-```php
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\RejectedPromise;
-
-$promise = new Promise();
-$promise
-    ->then(null, function ($reason) {
-        return "It's ok";
-    })
-    ->then(function ($value) {
-        assert($value === "It's ok");
-    });
-
-$promise->reject('Error!');
-```
-
-# Synchronous wait
-
-You can synchronously force promises to complete using a promise's `wait`
-method. When creating a promise, you can provide a wait function that is used
-to synchronously force a promise to complete. When a wait function is invoked
-it is expected to deliver a value to the promise or reject the promise. If the
-wait function does not deliver a value, then an exception is thrown. The wait
-function provided to a promise constructor is invoked when the `wait` function
-of the promise is called.
-
-```php
-$promise = new Promise(function () use (&$promise) {
-    $promise->deliver('foo');
-});
-
-// Calling wait will return the value of the promise.
-echo $promise->wait(); // outputs "foo"
-```
-
-If an exception is encountered while invoking the wait function of a promise,
-the promise is rejected with the exception and the exception is thrown.
-
-```php
-$promise = new Promise(function () use (&$promise) {
-    throw new \Exception('foo');
-});
-
-$promise->wait(); // throws the exception.
-```
-
-Calling `wait` on a promise that has been fulfilled will not trigger the wait
-function. It will simply return the previously delivered value.
-
-```php
-$promise = new Promise(function () { die('this is not called!'); });
-$promise->deliver('foo');
-echo $promise->wait(); // outputs "foo"
-```
-
-Calling `wait` on a promise that has been rejected will throw an exception. If
-the rejection reason is an instance of `\Exception` the reason is thrown.
-Otherwise, a `GuzzleHttp\Promise\RejectionException` is thrown and the reason
-can be obtained by calling the `getReason` method of the exception.
-
-```php
-$promise = new Promise();
-$promise->reject('foo');
-$promise->wait();
-```
-
-> PHP Fatal error:  Uncaught exception 'GuzzleHttp\Promise\RejectionException' with message 'The promise was rejected with value: foo'
-
-
-## Unwrapping a promise
-
-When synchronously waiting on a promise, you are joining the state of the
-promise into the current state of execution (i.e., return the value of the
-promise if it was fulfilled or throw an exception if it was rejected). This is
-called "unwrapping" the promise. Waiting on a promise will by default unwrap
-the promise state.
-
-You can force a promise to resolve and *not* unwrap the state of the promise
-by passing `false` to the first argument of the `wait` function:
-
-```php
-$promise = new Promise();
-$promise->reject('foo');
-// This will not throw an exception. It simply ensures the promise has
-// been resolved.
-$promise->wait(false);
-```
-
-When unwrapping a promise, the delivered value of the promise will be waited
-upon until the unwrapped value is not a promise. This means that if you resolve
-promise A with a promise B and unwrap promise A, the value returned by the
-wait function will be the value delivered to promise B.
-
-**Note**: when you do not unwrap the promise, no value is returned.
-
-
-# Cancellation
-
-You can cancel a promise that has not yet been fulfilled using the `cancel()`
-method of a promise. When creating a promise you can provide an optional
-cancel function that when invoked cancels the action of computing a resolution
-of the promise.
-
-
-# API
-
-
-## Promise
-
-When creating a promise object, you can provide an optional `$waitFn` and
-`$cancelFn`. `$waitFn` is a function that is invoked with no arguments and is
-expected to resolve the promise. `$cancelFn` is a function with no arguments
-that is expected to cancel the computation of a promise. It is invoked when the
-`cancel()` method of a promise is called.
-
-```php
-use GuzzleHttp\Promise\Promise;
-
-$promise = new Promise(
-    function () use (&$promise) {
-        $promise->resolve('waited');
-    },
-    function () {
-        // do something that will cancel the promise computation (e.g., close
-        // a socket, cancel a database query, etc...)
-    }
-);
-
-assert('waited' === $promise->wait());
-```
-
-A promise has the following methods:
-
-- `then(callable $onFulfilled, callable $onRejected) : PromiseInterface`
-  
-  Creates a new promise that is fulfilled or rejected when the promise is
-  resolved.
-
-- `wait($unwrap = true) : mixed`
-
-  Synchronously waits on the promise to complete.
-  
-  `$unwrap` controls whether or not the value of the promise is returned for a
-  fulfilled promise or if an exception is thrown if the promise is rejected.
-  This is set to `true` by default.
-
-- `cancel()`
-
-  Attempts to cancel the promise if possible. The promise being cancelled and
-  the parent most ancestor that has not yet been resolved will also be
-  cancelled. Any promises waiting on the cancelled promise to resolve will also
-  be cancelled.
-
-- `getState() : string`
-
-  Returns the state of the promise. One of `pending`, `fulfilled`, or
-  `rejected`.
-
-- `resolve($value)`
-
-  Fulfills the promise with the given `$value`.
-
-- `reject($reason)`
-
-  Rejects the promise with the given `$reason`.
-
-
-## FulfilledPromise
-
-A fulfilled promise can be created to represent a promise that has been
-fulfilled.
-
-```php
-use GuzzleHttp\Promise\FulfilledPromise;
-
-$promise = new FulfilledPromise('value');
-
-// Fulfilled callbacks are immediately invoked.
-$promise->then(function ($value) {
-    echo $value;
-});
-```
-
-
-## RejectedPromise
-
-A rejected promise can be created to represent a promise that has been
-rejected.
-
-```php
-use GuzzleHttp\Promise\RejectedPromise;
-
-$promise = new RejectedPromise('Error');
-
-// Rejected callbacks are immediately invoked.
-$promise->then(null, function ($reason) {
-    echo $reason;
-});
-```
-
-
-# Promise interop
-
-This library works with foreign promises that have a `then` method. This means
-you can use Guzzle promises with [React promises](https://github.com/reactphp/promise)
-for example. When a foreign promise is returned inside of a then method
-callback, promise resolution will occur recursively.
-
-```php
-// Create a React promise
-$deferred = new React\Promise\Deferred();
-$reactPromise = $deferred->promise();
-
-// Create a Guzzle promise that is fulfilled with a React promise.
-$guzzlePromise = new \GuzzleHttp\Promise\Promise();
-$guzzlePromise->then(function ($value) use ($reactPromise) {
-    // Do something something with the value...
-    // Return the React promise
-    return $reactPromise;
-});
-```
-
-Please note that wait and cancel chaining is no longer possible when forwarding
-a foreign promise. You will need to wrap a third-party promise with a Guzzle
-promise in order to utilize wait and cancel functions with foreign promises.
-
-
-## Event Loop Integration
-
-In order to keep the stack size constant, Guzzle promises are resolved
-asynchronously using a task queue. When waiting on promises synchronously, the
-task queue will be automatically run to ensure that the blocking promise and
-any forwarded promises are resolved. When using promises asynchronously in an
-event loop, you will need to run the task queue on each tick of the loop. If
-you do not run the task queue, then promises will not be resolved.
-
-You can run the task queue using the `run()` method of the global task queue
-instance.
-
-```php
-// Get the global task queue
-$queue = \GuzzleHttp\Promise\queue();
-$queue->run();
-```
-
-For example, you could use Guzzle promises with React using a periodic timer:
-
-```php
-$loop = React\EventLoop\Factory::create();
-$loop->addPeriodicTimer(0, [$queue, 'run']);
-```
-
-*TODO*: Perhaps adding a `futureTick()` on each tick would be faster?
-
-
-# Implementation notes
-
-
-## Promise resolution and chaining is handled iteratively
-
-By shuffling pending handlers from one owner to another, promises are
-resolved iteratively, allowing for "infinite" then chaining.
-
-```php
-<?php
-require 'vendor/autoload.php';
-
-use GuzzleHttp\Promise\Promise;
-
-$parent = new Promise();
-$p = $parent;
-
-for ($i = 0; $i < 1000; $i++) {
-    $p = $p->then(function ($v) {
-        // The stack size remains constant (a good thing)
-        echo xdebug_get_stack_depth() . ', ';
-        return $v + 1;
-    });
-}
-
-$parent->resolve(0);
-var_dump($p->wait()); // int(1000)
-
-```
-
-When a promise is fulfilled or rejected with a non-promise value, the promise
-then takes ownership of the handlers of each child promise and delivers values
-down the chain without using recursion.
-
-When a promise is resolved with another promise, the original promise transfers
-all of its pending handlers to the new promise. When the new promise is
-eventually resolved, all of the pending handlers are delivered the forwarded
-value.
-
-
-## A promise is the deferred.
-
-Some promise libraries implement promises using a deferred object to represent
-a computation and a promise object to represent the delivery of the result of
-the computation. This is a nice separation of computation and delivery because
-consumers of the promise cannot modify the value that will be eventually
-delivered.
-
-One side effect of being able to implement promise resolution and chaining
-iteratively is that you need to be able for one promise to reach into the state
-of another promise to shuffle around ownership of handlers. In order to achieve
-this without making the handlers of a promise publicly mutable, a promise is
-also the deferred value, allowing promises of the same parent class to reach
-into and modify the private properties of promises of the same type. While this
-does allow consumers of the value to modify the resolution or rejection of the
-deferred, it is a small price to pay for keeping the stack size constant.
-
-```php
-$promise = new Promise();
-$promise->then(function ($value) { echo $value; });
-// The promise is the deferred value, so you can deliver a value to it.
-$promise->deliver('foo');
-// prints "foo"
-```
diff --git a/core/vendor/guzzlehttp/promises/composer.json b/core/vendor/guzzlehttp/promises/composer.json
deleted file mode 100644
index f13844b..0000000
--- a/core/vendor/guzzlehttp/promises/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "name": "guzzlehttp/promises",
-    "type": "library",
-    "description": "Guzzle promises library",
-    "keywords": ["promise"],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Michael Dowling",
-            "email": "mtdowling@gmail.com",
-            "homepage": "https://github.com/mtdowling"
-        }
-    ],
-    "require": {
-        "php": ">=5.5.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "GuzzleHttp\\Promise\\": "src/"
-        },
-        "files": ["src/functions_include.php"]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0-dev"
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/phpunit.xml.dist b/core/vendor/guzzlehttp/promises/phpunit.xml.dist
deleted file mode 100644
index 500cd53..0000000
--- a/core/vendor/guzzlehttp/promises/phpunit.xml.dist
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit bootstrap="./tests/bootstrap.php"
-         colors="true">
-  <testsuites>
-    <testsuite>
-      <directory>tests</directory>
-    </testsuite>
-  </testsuites>
-  <filter>
-    <whitelist>
-      <directory suffix=".php">src</directory>
-      <exclude>
-        <directory suffix="Interface.php">src/</directory>
-      </exclude>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/guzzlehttp/promises/src/AggregateException.php b/core/vendor/guzzlehttp/promises/src/AggregateException.php
deleted file mode 100644
index 6a5690c..0000000
--- a/core/vendor/guzzlehttp/promises/src/AggregateException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * Exception thrown when too many errors occur in the some() or any() methods.
- */
-class AggregateException extends RejectionException
-{
-    public function __construct($msg, array $reasons)
-    {
-        parent::__construct(
-            $reasons,
-            sprintf('%s; %d rejected promises', $msg, count($reasons))
-        );
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/CancellationException.php b/core/vendor/guzzlehttp/promises/src/CancellationException.php
deleted file mode 100644
index cb360b8..0000000
--- a/core/vendor/guzzlehttp/promises/src/CancellationException.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * Exception that is set as the reason for a promise that has been cancelled.
- */
-class CancellationException extends RejectionException
-{
-}
diff --git a/core/vendor/guzzlehttp/promises/src/EachPromise.php b/core/vendor/guzzlehttp/promises/src/EachPromise.php
deleted file mode 100644
index 855d833..0000000
--- a/core/vendor/guzzlehttp/promises/src/EachPromise.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * Represents a promise that iterates over many promises and invokes
- * side-effect functions in the process.
- */
-class EachPromise implements PromisorInterface
-{
-    private $pending = [];
-
-    /** @var \Iterator */
-    private $iterable;
-
-    /** @var callable|int */
-    private $concurrency;
-
-    /** @var callable */
-    private $onFulfilled;
-
-    /** @var callable */
-    private $onRejected;
-
-    /** @var Promise */
-    private $aggregate;
-
-    /**
-     * Configuration hash can include the following key value pairs:
-     *
-     * - fulfilled: (callable) Invoked when a promise fulfills. The function
-     *   is invoked with three arguments: the fulfillment value, the index
-     *   position from the iterable list of the promise, and the aggregate
-     *   promise that manages all of the promises. The aggregate promise may
-     *   be resolved from within the callback to short-circuit the promise.
-     * - rejected: (callable) Invoked when a promise is rejected. The
-     *   function is invoked with three arguments: the rejection reason, the
-     *   index position from the iterable list of the promise, and the
-     *   aggregate promise that manages all of the promises. The aggregate
-     *   promise may be resolved from within the callback to short-circuit
-     *   the promise.
-     * - concurrency: (integer) Pass this configuration option to limit the
-     *   allowed number of outstanding concurrently executing promises,
-     *   creating a capped pool of promises. There is no limit by default.
-     *
-     * @param mixed    $iterable Promises or values to iterate.
-     * @param array    $config   Configuration options
-     */
-    public function __construct($iterable, array $config = [])
-    {
-        $this->iterable = iter_for($iterable);
-
-        if (isset($config['concurrency'])) {
-            $this->concurrency = $config['concurrency'];
-        }
-
-        if (isset($config['fulfilled'])) {
-            $this->onFulfilled = $config['fulfilled'];
-        }
-
-        if (isset($config['rejected'])) {
-            $this->onRejected = $config['rejected'];
-        }
-    }
-
-    public function promise()
-    {
-        if ($this->aggregate) {
-            return $this->aggregate;
-        }
-
-        try {
-            $this->createPromise();
-            $this->iterable->rewind();
-            $this->refillPending();
-        } catch (\Exception $e) {
-            $this->aggregate->reject($e);
-        }
-
-        return $this->aggregate;
-    }
-
-    private function createPromise()
-    {
-        $this->aggregate = new Promise(function () {
-            reset($this->pending);
-            // Consume a potentially fluctuating list of promises while
-            // ensuring that indexes are maintained (precluding array_shift).
-            while ($promise = current($this->pending)) {
-                next($this->pending);
-                $promise->wait();
-                if ($this->aggregate->getState() !== PromiseInterface::PENDING) {
-                    return;
-                }
-            }
-        });
-
-        // Clear the references when the promise is resolved.
-        $clearFn = function () {
-            $this->iterable = $this->concurrency = $this->pending = null;
-            $this->onFulfilled = $this->onRejected = null;
-        };
-
-        $this->aggregate->then($clearFn, $clearFn);
-    }
-
-    private function refillPending()
-    {
-        if (!$this->concurrency) {
-            // Add all pending promises.
-            while ($this->addPending() && $this->advanceIterator());
-            return;
-        }
-
-        // Add only up to N pending promises.
-        $concurrency = is_callable($this->concurrency)
-            ? call_user_func($this->concurrency, count($this->pending))
-            : $this->concurrency;
-        $concurrency = max($concurrency - count($this->pending), 0);
-        // Concurrency may be set to 0 to disallow new promises.
-        if (!$concurrency) {
-            return;
-        }
-        // Add the first pending promise.
-        $this->addPending();
-        // Note this is special handling for concurrency=1 so that we do
-        // not advance the iterator after adding the first promise. This
-        // helps work around issues with generators that might not have the
-        // next value to yield until promise callbacks are called.
-        while (--$concurrency
-            && $this->advanceIterator()
-            && $this->addPending());
-    }
-
-    private function addPending()
-    {
-        if (!$this->iterable || !$this->iterable->valid()) {
-            return false;
-        }
-
-        $promise = promise_for($this->iterable->current());
-        $idx = $this->iterable->key();
-
-        $this->pending[$idx] = $promise->then(
-            function ($value) use ($idx) {
-                if ($this->onFulfilled) {
-                    call_user_func(
-                        $this->onFulfilled, $value, $idx, $this->aggregate
-                    );
-                }
-                $this->step($idx);
-            },
-            function ($reason) use ($idx) {
-                if ($this->onRejected) {
-                    call_user_func(
-                        $this->onRejected, $reason, $idx, $this->aggregate
-                    );
-                }
-                $this->step($idx);
-            }
-        );
-
-        return true;
-    }
-
-    private function advanceIterator()
-    {
-        try {
-            $this->iterable->next();
-            return true;
-        } catch (\Exception $e) {
-            $this->aggregate->reject($e);
-            return false;
-        }
-    }
-
-    private function step($idx)
-    {
-        // If the promise was already resolved, then ignore this step.
-        if ($this->aggregate->getState() !== PromiseInterface::PENDING) {
-            return;
-        }
-
-        unset($this->pending[$idx]);
-        $this->advanceIterator();
-
-        if (!$this->checkIfFinished()) {
-            // Add more pending promises if possible.
-            $this->refillPending();
-        }
-    }
-
-    private function checkIfFinished()
-    {
-        if (!$this->pending && !$this->iterable->valid()) {
-            // Resolve the promise if there's nothing left to do.
-            $this->aggregate->resolve(null);
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/FulfilledPromise.php b/core/vendor/guzzlehttp/promises/src/FulfilledPromise.php
deleted file mode 100644
index 5596296..0000000
--- a/core/vendor/guzzlehttp/promises/src/FulfilledPromise.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * A promise that has been fulfilled.
- *
- * Thenning off of this promise will invoke the onFulfilled callback
- * immediately and ignore other callbacks.
- */
-class FulfilledPromise implements PromiseInterface
-{
-    private $value;
-
-    public function __construct($value)
-    {
-        if (method_exists($value, 'then')) {
-            throw new \InvalidArgumentException(
-                'You cannot create a FulfilledPromise with a promise.');
-        }
-
-        $this->value = $value;
-    }
-
-    public function then(
-        callable $onFulfilled = null,
-        callable $onRejected = null
-    ) {
-        // Return itself if there is no onFulfilled function.
-        if (!$onFulfilled) {
-            return $this;
-        }
-
-        $queue = queue();
-        $p = new Promise([$queue, 'run']);
-        $value = $this->value;
-        $queue->add(static function () use ($p, $value, $onFulfilled) {
-            if ($p->getState() === self::PENDING) {
-                try {
-                    $p->resolve($onFulfilled($value));
-                } catch (\Exception $e) {
-                    $p->reject($e);
-                }
-            }
-        });
-
-        return $p;
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this->then(null, $onRejected);
-    }
-
-    public function wait($unwrap = true, $defaultDelivery = null)
-    {
-        return $unwrap ? $this->value : null;
-    }
-
-    public function getState()
-    {
-        return self::FULFILLED;
-    }
-
-    public function resolve($value)
-    {
-        if ($value !== $this->value) {
-            throw new \LogicException("Cannot resolve a fulfilled promise");
-        }
-    }
-
-    public function reject($reason)
-    {
-        throw new \LogicException("Cannot reject a fulfilled promise");
-    }
-
-    public function cancel()
-    {
-        // pass
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/Promise.php b/core/vendor/guzzlehttp/promises/src/Promise.php
deleted file mode 100644
index c2cf969..0000000
--- a/core/vendor/guzzlehttp/promises/src/Promise.php
+++ /dev/null
@@ -1,268 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * Promises/A+ implementation that avoids recursion when possible.
- *
- * @link https://promisesaplus.com/
- */
-class Promise implements PromiseInterface
-{
-    private $state = self::PENDING;
-    private $result;
-    private $cancelFn;
-    private $waitFn;
-    private $waitList;
-    private $handlers = [];
-
-    /**
-     * @param callable $waitFn   Fn that when invoked resolves the promise.
-     * @param callable $cancelFn Fn that when invoked cancels the promise.
-     */
-    public function __construct(
-        callable $waitFn = null,
-        callable $cancelFn = null
-    ) {
-        $this->waitFn = $waitFn;
-        $this->cancelFn = $cancelFn;
-    }
-
-    public function then(
-        callable $onFulfilled = null,
-        callable $onRejected = null
-    ) {
-        if ($this->state === self::PENDING) {
-            $p = new Promise(null, [$this, 'cancel']);
-            $this->handlers[] = [$p, $onFulfilled, $onRejected];
-            $p->waitList = $this->waitList;
-            $p->waitList[] = $this;
-            return $p;
-        }
-
-        // Return a fulfilled promise and immediately invoke any callbacks.
-        if ($this->state === self::FULFILLED) {
-            return $onFulfilled
-                ? promise_for($this->result)->then($onFulfilled)
-                : promise_for($this->result);
-        }
-
-        // It's either cancelled or rejected, so return a rejected promise
-        // and immediately invoke any callbacks.
-        $rejection = rejection_for($this->result);
-        return $onRejected ? $rejection->then(null, $onRejected) : $rejection;
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this->then(null, $onRejected);
-    }
-
-    public function wait($unwrap = true)
-    {
-        $this->waitIfPending();
-
-        if (!$unwrap) {
-            return null;
-        }
-
-        if ($this->result instanceof PromiseInterface) {
-            return $this->result->wait($unwrap);
-        } elseif ($this->state === self::FULFILLED) {
-            return $this->result;
-        } else {
-            // It's rejected so "unwrap" and throw an exception.
-            throw exception_for($this->result);
-        }
-    }
-
-    public function getState()
-    {
-        return $this->state;
-    }
-
-    public function cancel()
-    {
-        if ($this->state !== self::PENDING) {
-            return;
-        }
-
-        $this->waitFn = $this->waitList = null;
-
-        if ($this->cancelFn) {
-            $fn = $this->cancelFn;
-            $this->cancelFn = null;
-            try {
-                $fn();
-            } catch (\Exception $e) {
-                $this->reject($e);
-            }
-        }
-
-        // Reject the promise only if it wasn't rejected in a then callback.
-        if ($this->state === self::PENDING) {
-            $this->reject(new CancellationException('Promise has been cancelled'));
-        }
-    }
-
-    public function resolve($value)
-    {
-        $this->settle(self::FULFILLED, $value);
-    }
-
-    public function reject($reason)
-    {
-        $this->settle(self::REJECTED, $reason);
-    }
-
-    private function settle($state, $value)
-    {
-        if ($this->state !== self::PENDING) {
-            // Ignore calls with the same resolution.
-            if ($state === $this->state && $value === $this->result) {
-                return;
-            }
-            throw $this->state === $state
-                ? new \LogicException("The promise is already {$state}.")
-                : new \LogicException("Cannot change a {$this->state} promise to {$state}");
-        }
-
-        if ($value === $this) {
-            throw new \LogicException('Cannot fulfill or reject a promise with itself');
-        }
-
-        // Clear out the state of the promise but stash the handlers.
-        $this->state = $state;
-        $this->result = $value;
-        $handlers = $this->handlers;
-        $this->handlers = null;
-        $this->waitList = $this->waitFn = null;
-        $this->cancelFn = null;
-
-        if (!$handlers) {
-            return;
-        }
-
-        // If the value was not a settled promise or a thenable, then resolve
-        // it in the task queue using the correct ID.
-        if (!method_exists($value, 'then')) {
-            $id = $state === self::FULFILLED ? 1 : 2;
-            // It's a success, so resolve the handlers in the queue.
-            queue()->add(static function () use ($id, $value, $handlers) {
-                foreach ($handlers as $handler) {
-                    self::callHandler($id, $value, $handler);
-                }
-            });
-        } elseif ($value instanceof Promise
-            && $value->getState() === self::PENDING
-        ) {
-            // We can just merge our handlers onto the next promise.
-            $value->handlers = array_merge($value->handlers, $handlers);
-        } else {
-            // Resolve the handlers when the forwarded promise is resolved.
-            $value->then(
-                static function ($value) use ($handlers) {
-                    foreach ($handlers as $handler) {
-                        self::callHandler(1, $value, $handler);
-                    }
-                },
-                static function ($reason) use ($handlers) {
-                    foreach ($handlers as $handler) {
-                        self::callHandler(2, $reason, $handler);
-                    }
-                }
-            );
-        }
-    }
-
-    /**
-     * Call a stack of handlers using a specific callback index and value.
-     *
-     * @param int   $index   1 (resolve) or 2 (reject).
-     * @param mixed $value   Value to pass to the callback.
-     * @param array $handler Array of handler data (promise and callbacks).
-     *
-     * @return array Returns the next group to resolve.
-     */
-    private static function callHandler($index, $value, array $handler)
-    {
-        /** @var PromiseInterface $promise */
-        $promise = $handler[0];
-
-        // The promise may have been cancelled or resolved before placing
-        // this thunk in the queue.
-        if ($promise->getState() !== self::PENDING) {
-            return;
-        }
-
-        try {
-            if (isset($handler[$index])) {
-                $promise->resolve($handler[$index]($value));
-            } elseif ($index === 1) {
-                // Forward resolution values as-is.
-                $promise->resolve($value);
-            } else {
-                // Forward rejections down the chain.
-                $promise->reject($value);
-            }
-        } catch (\Exception $reason) {
-            $promise->reject($reason);
-        }
-    }
-
-    private function waitIfPending()
-    {
-        if ($this->state !== self::PENDING) {
-            return;
-        } elseif ($this->waitFn) {
-            $this->invokeWaitFn();
-        } elseif ($this->waitList) {
-            $this->invokeWaitList();
-        } else {
-            // If there's not wait function, then reject the promise.
-            $this->reject('Cannot wait on a promise that has '
-                . 'no internal wait function. You must provide a wait '
-                . 'function when constructing the promise to be able to '
-                . 'wait on a promise.');
-        }
-
-        queue()->run();
-
-        if ($this->state === self::PENDING) {
-            $this->reject('Invoking the wait callback did not resolve the promise');
-        }
-    }
-
-    private function invokeWaitFn()
-    {
-        try {
-            $wfn = $this->waitFn;
-            $this->waitFn = null;
-            $wfn(true);
-        } catch (\Exception $reason) {
-            if ($this->state === self::PENDING) {
-                // The promise has not been resolved yet, so reject the promise
-                // with the exception.
-                $this->reject($reason);
-            } else {
-                // The promise was already resolved, so there's a problem in
-                // the application.
-                throw $reason;
-            }
-        }
-    }
-
-    private function invokeWaitList()
-    {
-        $waitList = $this->waitList;
-        $this->waitList = null;
-
-        foreach ($waitList as $result) {
-            descend:
-            $result->waitIfPending();
-            if ($result->result instanceof Promise) {
-                $result = $result->result;
-                goto descend;
-            }
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/PromiseInterface.php b/core/vendor/guzzlehttp/promises/src/PromiseInterface.php
deleted file mode 100644
index 8f5f4b9..0000000
--- a/core/vendor/guzzlehttp/promises/src/PromiseInterface.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * A promise represents the eventual result of an asynchronous operation.
- *
- * The primary way of interacting with a promise is through its then method,
- * which registers callbacks to receive either a promise’s eventual value or
- * the reason why the promise cannot be fulfilled.
- *
- * @link https://promisesaplus.com/
- */
-interface PromiseInterface
-{
-    const PENDING = 'pending';
-    const FULFILLED = 'fulfilled';
-    const REJECTED = 'rejected';
-
-    /**
-     * Appends fulfillment and rejection handlers to the promise, and returns
-     * a new promise resolving to the return value of the called handler.
-     *
-     * @param callable $onFulfilled Invoked when the promise fulfills.
-     * @param callable $onRejected  Invoked when the promise is rejected.
-     *
-     * @return PromiseInterface
-     */
-    public function then(
-        callable $onFulfilled = null,
-        callable $onRejected = null
-    );
-
-    /**
-     * Appends a rejection handler callback to the promise, and returns a new
-     * promise resolving to the return value of the callback if it is called,
-     * or to its original fulfillment value if the promise is instead
-     * fulfilled.
-     *
-     * @param callable $onRejected Invoked when the promise is rejected.
-     *
-     * @return PromiseInterface
-     */
-    public function otherwise(callable $onRejected);
-
-    /**
-     * Get the state of the promise ("pending", "rejected", or "fulfilled").
-     *
-     * The three states can be checked against the constants defined on
-     * PromiseInterface: PENDING, FULFILLED, and REJECTED.
-     *
-     * @return string
-     */
-    public function getState();
-
-    /**
-     * Resolve the promise with the given value.
-     *
-     * @param mixed $value
-     * @throws \RuntimeException if the promise is already resolved.
-     */
-    public function resolve($value);
-
-    /**
-     * Reject the promise with the given reason.
-     *
-     * @param mixed $reason
-     * @throws \RuntimeException if the promise is already resolved.
-     */
-    public function reject($reason);
-
-    /**
-     * Cancels the promise if possible.
-     *
-     * @link https://github.com/promises-aplus/cancellation-spec/issues/7
-     */
-    public function cancel();
-
-    /**
-     * Waits until the promise completes if possible.
-     *
-     * Pass $unwrap as true to unwrap the result of the promise, either
-     * returning the resolved value or throwing the rejected exception.
-     *
-     * If the promise cannot be waited on, then the promise will be rejected.
-     *
-     * @param bool $unwrap
-     *
-     * @return mixed
-     * @throws \LogicException if the promise has no wait function or if the
-     *                         promise does not settle after waiting.
-     */
-    public function wait($unwrap = true);
-}
diff --git a/core/vendor/guzzlehttp/promises/src/PromisorInterface.php b/core/vendor/guzzlehttp/promises/src/PromisorInterface.php
deleted file mode 100644
index b07fe32..0000000
--- a/core/vendor/guzzlehttp/promises/src/PromisorInterface.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * Interface used with classes that return a promise.
- */
-interface PromisorInterface
-{
-    /**
-     * Returns a promise.
-     *
-     * @return PromiseInterface
-     */
-    public function promise();
-}
diff --git a/core/vendor/guzzlehttp/promises/src/RejectedPromise.php b/core/vendor/guzzlehttp/promises/src/RejectedPromise.php
deleted file mode 100644
index bd499e6..0000000
--- a/core/vendor/guzzlehttp/promises/src/RejectedPromise.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * A promise that has been rejected.
- *
- * Thenning off of this promise will invoke the onRejected callback
- * immediately and ignore other callbacks.
- */
-class RejectedPromise implements PromiseInterface
-{
-    private $reason;
-
-    public function __construct($reason)
-    {
-        if (method_exists($reason, 'then')) {
-            throw new \InvalidArgumentException(
-                'You cannot create a RejectedPromise with a promise.');
-        }
-
-        $this->reason = $reason;
-    }
-
-    public function then(
-        callable $onFulfilled = null,
-        callable $onRejected = null
-    ) {
-        // If there's no onRejected callback then just return self.
-        if (!$onRejected) {
-            return $this;
-        }
-
-        $queue = queue();
-        $reason = $this->reason;
-        $p = new Promise([$queue, 'run']);
-        $queue->add(static function () use ($p, $reason, $onRejected) {
-            if ($p->getState() === self::PENDING) {
-                try {
-                    // Return a resolved promise if onRejected does not throw.
-                    $p->resolve($onRejected($reason));
-                } catch (\Exception $e) {
-                    // onRejected threw, so return a rejected promise.
-                    $p->reject($e);
-                }
-            }
-        });
-
-        return $p;
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this->then(null, $onRejected);
-    }
-
-    public function wait($unwrap = true, $defaultDelivery = null)
-    {
-        if ($unwrap) {
-            throw exception_for($this->reason);
-        }
-    }
-
-    public function getState()
-    {
-        return self::REJECTED;
-    }
-
-    public function resolve($value)
-    {
-        throw new \LogicException("Cannot resolve a rejected promise");
-    }
-
-    public function reject($reason)
-    {
-        if ($reason !== $this->reason) {
-            throw new \LogicException("Cannot reject a rejected promise");
-        }
-    }
-
-    public function cancel()
-    {
-        // pass
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/RejectionException.php b/core/vendor/guzzlehttp/promises/src/RejectionException.php
deleted file mode 100644
index 07c1136..0000000
--- a/core/vendor/guzzlehttp/promises/src/RejectionException.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * A special exception that is thrown when waiting on a rejected promise.
- *
- * The reason value is available via the getReason() method.
- */
-class RejectionException extends \RuntimeException
-{
-    /** @var mixed Rejection reason. */
-    private $reason;
-
-    /**
-     * @param mixed $reason       Rejection reason.
-     * @param string $description Optional description
-     */
-    public function __construct($reason, $description = null)
-    {
-        $this->reason = $reason;
-
-        $message = 'The promise was rejected';
-
-        if ($description) {
-            $message .= ' with reason: ' . $description;
-        } elseif (is_string($reason)
-            || (is_object($reason) && method_exists($reason, '__toString'))
-        ) {
-            $message .= ' with reason: ' . $this->reason;
-        } elseif ($reason instanceof \JsonSerializable) {
-            $message .= ' with reason: '
-                . json_encode($this->reason, JSON_PRETTY_PRINT);
-        }
-
-        parent::__construct($message);
-    }
-
-    /**
-     * Returns the rejection reason.
-     *
-     * @return mixed
-     */
-    public function getReason()
-    {
-        return $this->reason;
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/TaskQueue.php b/core/vendor/guzzlehttp/promises/src/TaskQueue.php
deleted file mode 100644
index 5026363..0000000
--- a/core/vendor/guzzlehttp/promises/src/TaskQueue.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * A task queue that executes tasks in a FIFO order.
- *
- * This task queue class is used to settle promises asynchronously and
- * maintains a constant stack size. You can use the task queue asynchronously
- * by calling the `run()` function of the global task queue in an event loop.
- *
- *     GuzzleHttp\Promise\queue()->run();
- */
-class TaskQueue
-{
-    private $enableShutdown = true;
-    private $queue = [];
-
-    public function __construct($withShutdown = true)
-    {
-        if ($withShutdown) {
-            register_shutdown_function(function () {
-                if ($this->enableShutdown) {
-                    // Only run the tasks if an E_ERROR didn't occur.
-                    $err = error_get_last();
-                    if (!$err || ($err['type'] ^ E_ERROR)) {
-                        $this->run();
-                    }
-                }
-            });
-        }
-    }
-
-    /**
-     * Returns true if the queue is empty.
-     *
-     * @return bool
-     */
-    public function isEmpty()
-    {
-        return !$this->queue;
-    }
-
-    /**
-     * Adds a task to the queue that will be executed the next time run is
-     * called.
-     *
-     * @param callable $task
-     */
-    public function add(callable $task)
-    {
-        $this->queue[] = $task;
-    }
-
-    /**
-     * Execute all of the pending task in the queue.
-     */
-    public function run()
-    {
-        while ($task = array_shift($this->queue)) {
-            $task();
-        }
-    }
-
-    /**
-     * The task queue will be run and exhausted by default when the process
-     * exits IFF the exit is not the result of a PHP E_ERROR error.
-     *
-     * You can disable running the automatic shutdown of the queue by calling
-     * this function. If you disable the task queue shutdown process, then you
-     * MUST either run the task queue (as a result of running your event loop
-     * or manually using the run() method) or wait on each outstanding promise.
-     *
-     * Note: This shutdown will occur before any destructors are triggered.
-     */
-    public function disableShutdown()
-    {
-        $this->enableShutdown = false;
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/src/functions.php b/core/vendor/guzzlehttp/promises/src/functions.php
deleted file mode 100644
index 89c6569..0000000
--- a/core/vendor/guzzlehttp/promises/src/functions.php
+++ /dev/null
@@ -1,495 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise;
-
-/**
- * Get the global task queue used for promise resolution.
- *
- * This task queue MUST be run in an event loop in order for promises to be
- * settled asynchronously. It will be automatically run when synchronously
- * waiting on a promise.
- *
- * <code>
- * while ($eventLoop->isRunning()) {
- *     GuzzleHttp\Promise\queue()->run();
- * }
- * </code>
- *
- * @return TaskQueue
- */
-function queue()
-{
-    static $queue;
-
-    if (!$queue) {
-        $queue = new TaskQueue();
-    }
-
-    return $queue;
-}
-
-/**
- * Adds a function to run in the task queue when it is next `run()` and returns
- * a promise that is fulfilled or rejected with the result.
- *
- * @param callable $task Task function to run.
- *
- * @return PromiseInterface
- */
-function task(callable $task)
-{
-    $queue = queue();
-    $promise = new Promise([$queue, 'run']);
-    $queue->add(function () use ($task, $promise) {
-        try {
-            $promise->resolve($task());
-        } catch (\Exception $e) {
-            $promise->reject($e);
-        }
-    });
-
-    return $promise;
-}
-
-/**
- * Creates a promise for a value if the value is not a promise.
- *
- * @param mixed $value Promise or value.
- *
- * @return PromiseInterface
- */
-function promise_for($value)
-{
-    if ($value instanceof PromiseInterface) {
-        return $value;
-    }
-
-    // Return a Guzzle promise that shadows the given promise.
-    if (method_exists($value, 'then')) {
-        $wfn = method_exists($value, 'wait') ? [$value, 'wait'] : null;
-        $cfn = method_exists($value, 'cancel') ? [$value, 'cancel'] : null;
-        $promise = new Promise($wfn, $cfn);
-        $value->then([$promise, 'resolve'], [$promise, 'reject']);
-        return $promise;
-    }
-
-    return new FulfilledPromise($value);
-}
-
-/**
- * Creates a rejected promise for a reason if the reason is not a promise. If
- * the provided reason is a promise, then it is returned as-is.
- *
- * @param mixed $reason Promise or reason.
- *
- * @return PromiseInterface
- */
-function rejection_for($reason)
-{
-    if ($reason instanceof PromiseInterface) {
-        return $reason;
-    }
-
-    return new RejectedPromise($reason);
-}
-
-/**
- * Create an exception for a rejected promise value.
- *
- * @param mixed $reason
- *
- * @return \Exception
- */
-function exception_for($reason)
-{
-    return $reason instanceof \Exception
-        ? $reason
-        : new RejectionException($reason);
-}
-
-/**
- * Returns an iterator for the given value.
- *
- * @param mixed $value
- *
- * @return \Iterator
- */
-function iter_for($value)
-{
-    if ($value instanceof \Iterator) {
-        return $value;
-    } elseif (is_array($value)) {
-        return new \ArrayIterator($value);
-    } else {
-        return new \ArrayIterator([$value]);
-    }
-}
-
-/**
- * Synchronously waits on a promise to resolve and returns an inspection state
- * array.
- *
- * Returns a state associative array containing a "state" key mapping to a
- * valid promise state. If the state of the promise is "fulfilled", the array
- * will contain a "value" key mapping to the fulfilled value of the promise. If
- * the promise is rejected, the array will contain a "reason" key mapping to
- * the rejection reason of the promise.
- *
- * @param PromiseInterface $promise Promise or value.
- *
- * @return array
- */
-function inspect(PromiseInterface $promise)
-{
-    try {
-        return [
-            'state' => PromiseInterface::FULFILLED,
-            'value' => $promise->wait()
-        ];
-    } catch (RejectionException $e) {
-        return ['state' => 'rejected', 'reason' => $e->getReason()];
-    } catch (\Exception $e) {
-        return ['state' => 'rejected', 'reason' => $e];
-    }
-}
-
-/**
- * Waits on all of the provided promises, but does not unwrap rejected promises
- * as thrown exception.
- *
- * Returns an array of inspection state arrays.
- *
- * @param PromiseInterface[] $promises Traversable of promises to wait upon.
- *
- * @return array
- * @see GuzzleHttp\Promise\inspect for the inspection state array format.
- */
-function inspect_all($promises)
-{
-    $results = [];
-    foreach ($promises as $key => $promise) {
-        $results[$key] = inspect($promise);
-    }
-
-    return $results;
-}
-
-/**
- * Waits on all of the provided promises and returns the fulfilled values.
- *
- * Returns an array that contains the value of each promise (in the same order
- * the promises were provided). An exception is thrown if any of the promises
- * are rejected.
- *
- * @param mixed $promises Iterable of PromiseInterface objects to wait on.
- *
- * @return array
- * @throws \Exception on error
- */
-function unwrap($promises)
-{
-    $results = [];
-    foreach ($promises as $key => $promise) {
-        $results[$key] = $promise->wait();
-    }
-
-    return $results;
-}
-
-/**
- * Given an array of promises, return a promise that is fulfilled when all the
- * items in the array are fulfilled.
- *
- * The promise's fulfillment value is an array with fulfillment values at
- * respective positions to the original array. If any promise in the array
- * rejects, the returned promise is rejected with the rejection reason.
- *
- * @param mixed $promises Promises or values.
- *
- * @return Promise
- */
-function all($promises)
-{
-    $results = [];
-    return each(
-        $promises,
-        function ($value, $idx) use (&$results) {
-            $results[$idx] = $value;
-        },
-        function ($reason, $idx, Promise $aggregate) {
-            $aggregate->reject($reason);
-        }
-    )->then(function () use (&$results) {
-        ksort($results);
-        return $results;
-    });
-}
-
-/**
- * Initiate a competitive race between multiple promises or values (values will
- * become immediately fulfilled promises).
- *
- * When count amount of promises have been fulfilled, the returned promise is
- * fulfilled with an array that contains the fulfillment values of the winners
- * in order of resolution.
- *
- * This prommise is rejected with a {@see GuzzleHttp\Promise\AggregateException}
- * if the number of fulfilled promises is less than the desired $count.
- *
- * @param int   $count    Total number of promises.
- * @param mixed $promises Promises or values.
- *
- * @return Promise
- */
-function some($count, $promises)
-{
-    $results = [];
-    $rejections = [];
-
-    return each(
-        $promises,
-        function ($value, $idx, PromiseInterface $p) use (&$results, $count) {
-            if ($p->getState() !== PromiseInterface::PENDING) {
-                return;
-            }
-            $results[$idx] = $value;
-            if (count($results) >= $count) {
-                $p->resolve(null);
-            }
-        },
-        function ($reason) use (&$rejections) {
-            $rejections[] = $reason;
-        }
-    )->then(
-        function () use (&$results, &$rejections, $count) {
-            if (count($results) !== $count) {
-                throw new AggregateException(
-                    'Not enough promises to fulfill count',
-                    $rejections
-                );
-            }
-            ksort($results);
-            return array_values($results);
-        }
-    );
-}
-
-/**
- * Like some(), with 1 as count. However, if the promise fulfills, the
- * fulfillment value is not an array of 1 but the value directly.
- *
- * @param mixed $promises Promises or values.
- *
- * @return PromiseInterface
- */
-function any($promises)
-{
-    return some(1, $promises)->then(function ($values) { return $values[0]; });
-}
-
-/**
- * Returns a promise that is fulfilled when all of the provided promises have
- * been fulfilled or rejected.
- *
- * The returned promise is fulfilled with an array of inspection state arrays.
- *
- * @param mixed $promises Promises or values.
- *
- * @return Promise
- * @see GuzzleHttp\Promise\inspect for the inspection state array format.
- */
-function settle($promises)
-{
-    $results = [];
-
-    return each(
-        $promises,
-        function ($value, $idx) use (&$results) {
-            $results[$idx] = ['state' => 'fulfilled', 'value' => $value];
-        },
-        function ($reason, $idx) use (&$results) {
-            $results[$idx] = ['state' => 'rejected', 'reason' => $reason];
-        }
-    )->then(function () use (&$results) {
-        ksort($results);
-        return $results;
-    });
-}
-
-/**
- * Given an iterator that yields promises or values, returns a promise that is
- * fulfilled with a null value when the iterator has been consumed or the
- * aggregate promise has been fulfilled or rejected.
- *
- * $onFulfilled is a function that accepts the fulfilled value, iterator
- * index, and the aggregate promise. The callback can invoke any necessary side
- * effects and choose to resolve or reject the aggregate promise if needed.
- *
- * $onRejected is a function that accepts the rejection reason, iterator
- * index, and the aggregate promise. The callback can invoke any necessary side
- * effects and choose to resolve or reject the aggregate promise if needed.
- *
- * @param mixed    $iterable    Iterator or array to iterate over.
- * @param callable $onFulfilled
- * @param callable $onRejected
- *
- * @return Promise
- */
-function each(
-    $iterable,
-    callable $onFulfilled = null,
-    callable $onRejected = null
-) {
-    return (new EachPromise($iterable, [
-        'fulfilled' => $onFulfilled,
-        'rejected'  => $onRejected
-    ]))->promise();
-}
-
-/**
- * Like each, but only allows a certain number of outstanding promises at any
- * given time.
- *
- * $concurrency may be an integer or a function that accepts the number of
- * pending promises and returns a numeric concurrency limit value to allow for
- * dynamic a concurrency size.
- *
- * @param mixed        $iterable
- * @param int|callable $concurrency
- * @param callable     $onFulfilled
- * @param callable     $onRejected
- *
- * @return mixed
- */
-function each_limit(
-    $iterable,
-    $concurrency,
-    callable $onFulfilled = null,
-    callable $onRejected = null
-) {
-    return (new EachPromise($iterable, [
-        'fulfilled'   => $onFulfilled,
-        'rejected'    => $onRejected,
-        'concurrency' => $concurrency
-    ]))->promise();
-}
-
-/**
- * Like each_limit, but ensures that no promise in the given $iterable argument
- * is rejected. If any promise is rejected, then the aggregate promise is
- * rejected with the encountered rejection.
- *
- * @param mixed        $iterable
- * @param int|callable $concurrency
- * @param callable     $onFulfilled
- *
- * @return mixed
- */
-function each_limit_all(
-    $iterable,
-    $concurrency,
-    callable $onFulfilled = null
-) {
-    return each_limit(
-        $iterable,
-        $concurrency,
-        $onFulfilled,
-        function ($reason, $idx, PromiseInterface $aggregate) {
-            $aggregate->reject($reason);
-        }
-    );
-}
-
-/**
- * Returns true if a promise is fulfilled.
- *
- * @param PromiseInterface $promise
- *
- * @return bool
- */
-function is_fulfilled(PromiseInterface $promise)
-{
-    return $promise->getState() === PromiseInterface::FULFILLED;
-}
-
-/**
- * Returns true if a promise is rejected.
- *
- * @param PromiseInterface $promise
- *
- * @return bool
- */
-function is_rejected(PromiseInterface $promise)
-{
-    return $promise->getState() === PromiseInterface::REJECTED;
-}
-
-/**
- * Returns true if a promise is fulfilled or rejected.
- *
- * @param PromiseInterface $promise
- *
- * @return bool
- */
-function is_settled(PromiseInterface $promise)
-{
-    return $promise->getState() !== PromiseInterface::PENDING;
-}
-
-/**
- * Creates a promise that is resolved using a generator that yields values or
- * promises (somewhat similar to C#'s async keyword).
- *
- * When called, the coroutine function will start an instance of the generator
- * and returns a promise that is fulfilled with its final yielded value.
- *
- * Control is returned back to the generator when the yielded promise settles.
- * This can lead to less verbose code when doing lots of sequential async calls
- * with minimal processing in between.
- *
- *     use GuzzleHttp\Promise;
- *
- *     function createPromise($value) {
- *         return new Promise\FulfilledPromise($value);
- *     }
- *
- *     $promise = Promise\coroutine(function () {
- *         $value = (yield createPromise('a'));
- *         try {
- *             $value = (yield createPromise($value . 'b'));
- *         } catch (\Exception $e) {
- *             // The promise was rejected.
- *         }
- *         yield $value . 'c';
- *     });
- *
- *     // Outputs "abc"
- *     $promise->then(function ($v) { echo $v; });
- *
- * @param callable $generatorFn Generator function to wrap into a promise.
- *
- * @return Promise
- * @link https://github.com/petkaantonov/bluebird/blob/master/API.md#generators inspiration
- */
-function coroutine(callable $generatorFn)
-{
-    $generator = $generatorFn();
-    return __next_coroutine($generator->current(), $generator)->then();
-}
-
-/** @internal */
-function __next_coroutine($yielded, \Generator $generator)
-{
-    return promise_for($yielded)->then(
-        function ($value) use ($generator) {
-            $nextYield = $generator->send($value);
-            return $generator->valid()
-                ? __next_coroutine($nextYield, $generator)
-                : $value;
-        },
-        function ($reason) use ($generator) {
-            $nextYield = $generator->throw(exception_for($reason));
-            // The throw was caught, so keep iterating on the coroutine
-            return __next_coroutine($nextYield, $generator);
-        }
-    );
-}
diff --git a/core/vendor/guzzlehttp/promises/src/functions_include.php b/core/vendor/guzzlehttp/promises/src/functions_include.php
deleted file mode 100644
index 34cd171..0000000
--- a/core/vendor/guzzlehttp/promises/src/functions_include.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-// Don't redefine the functions if included multiple times.
-if (!function_exists('GuzzleHttp\Promise\promise_for')) {
-    require __DIR__ . '/functions.php';
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/AggregateExceptionTest.php b/core/vendor/guzzlehttp/promises/tests/AggregateExceptionTest.php
deleted file mode 100644
index eaa7703..0000000
--- a/core/vendor/guzzlehttp/promises/tests/AggregateExceptionTest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\AggregateException;
-
-class AggregateExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasReason()
-    {
-        $e = new AggregateException('foo', ['baz', 'bar']);
-        $this->assertContains('foo', $e->getMessage());
-        $this->assertEquals(['baz', 'bar'], $e->getReason());
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/EachPromiseTest.php b/core/vendor/guzzlehttp/promises/tests/EachPromiseTest.php
deleted file mode 100644
index b913b3a..0000000
--- a/core/vendor/guzzlehttp/promises/tests/EachPromiseTest.php
+++ /dev/null
@@ -1,288 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\RejectedPromise;
-use GuzzleHttp\Promise\FulfilledPromise;
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\PromiseInterface;
-use GuzzleHttp\Promise\EachPromise;
-use GuzzleHttp\Promise as P;
-
-/**
- * @covers GuzzleHttp\Promise\EachPromise
- */
-class EachPromiseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsSameInstance()
-    {
-        $each = new EachPromise([], ['concurrency' => 100]);
-        $this->assertSame($each->promise(), $each->promise());
-    }
-
-    public function testInvokesAllPromises()
-    {
-        $promises = [new Promise(), new Promise(), new Promise()];
-        $called = [];
-        $each = new EachPromise($promises, [
-            'fulfilled' => function ($value) use (&$called) {
-                $called[] = $value;
-            }
-        ]);
-        $p = $each->promise();
-        $promises[0]->resolve('a');
-        $promises[1]->resolve('c');
-        $promises[2]->resolve('b');
-        P\queue()->run();
-        $this->assertEquals(['a', 'c', 'b'], $called);
-        $this->assertEquals(PromiseInterface::FULFILLED, $p->getState());
-    }
-
-    public function testIsWaitable()
-    {
-        $a = new Promise(function () use (&$a) { $a->resolve('a'); });
-        $b = new Promise(function () use (&$b) { $b->resolve('b'); });
-        $called = [];
-        $each = new EachPromise([$a, $b], [
-            'fulfilled' => function ($value) use (&$called) { $called[] = $value; }
-        ]);
-        $p = $each->promise();
-        $this->assertNull($p->wait());
-        $this->assertEquals(PromiseInterface::FULFILLED, $p->getState());
-        $this->assertEquals(['a', 'b'], $called);
-    }
-
-    public function testCanResolveBeforeConsumingAll()
-    {
-        $called = 0;
-        $a = new Promise(function () use (&$a) { $a->resolve('a'); });
-        $b = new Promise(function () { $this->fail(); });
-        $each = new EachPromise([$a, $b], [
-            'fulfilled' => function ($value, $idx, Promise $aggregate) use (&$called) {
-                $this->assertSame($idx, 0);
-                $this->assertEquals('a', $value);
-                $aggregate->resolve(null);
-                $called++;
-            },
-            'rejected' => function (\Exception $reason) {
-                $this->fail($reason->getMessage());
-            }
-        ]);
-        $p = $each->promise();
-        $p->wait();
-        $this->assertNull($p->wait());
-        $this->assertEquals(1, $called);
-        $this->assertEquals(PromiseInterface::FULFILLED, $a->getState());
-        $this->assertEquals(PromiseInterface::PENDING, $b->getState());
-        // Resolving $b has no effect on the aggregate promise.
-        $b->resolve('foo');
-        $this->assertEquals(1, $called);
-    }
-
-    public function testLimitsPendingPromises()
-    {
-        $pending = [new Promise(), new Promise(), new Promise(), new Promise()];
-        $promises = new \ArrayIterator($pending);
-        $each = new EachPromise($promises, ['concurrency' => 2]);
-        $p = $each->promise();
-        $this->assertCount(2, $this->readAttribute($each, 'pending'));
-        $pending[0]->resolve('a');
-        $this->assertCount(2, $this->readAttribute($each, 'pending'));
-        $this->assertTrue($promises->valid());
-        $pending[1]->resolve('b');
-        P\queue()->run();
-        $this->assertCount(2, $this->readAttribute($each, 'pending'));
-        $this->assertTrue($promises->valid());
-        $promises[2]->resolve('c');
-        P\queue()->run();
-        $this->assertCount(1, $this->readAttribute($each, 'pending'));
-        $this->assertEquals(PromiseInterface::PENDING, $p->getState());
-        $promises[3]->resolve('d');
-        P\queue()->run();
-        $this->assertNull($this->readAttribute($each, 'pending'));
-        $this->assertEquals(PromiseInterface::FULFILLED, $p->getState());
-        $this->assertFalse($promises->valid());
-    }
-
-    public function testDynamicallyLimitsPendingPromises()
-    {
-        $calls = [];
-        $pendingFn = function ($count) use (&$calls) {
-            $calls[] = $count;
-            return 2;
-        };
-        $pending = [new Promise(), new Promise(), new Promise(), new Promise()];
-        $promises = new \ArrayIterator($pending);
-        $each = new EachPromise($promises, ['concurrency' => $pendingFn]);
-        $p = $each->promise();
-        $this->assertCount(2, $this->readAttribute($each, 'pending'));
-        $pending[0]->resolve('a');
-        $this->assertCount(2, $this->readAttribute($each, 'pending'));
-        $this->assertTrue($promises->valid());
-        $pending[1]->resolve('b');
-        $this->assertCount(2, $this->readAttribute($each, 'pending'));
-        P\queue()->run();
-        $this->assertTrue($promises->valid());
-        $promises[2]->resolve('c');
-        P\queue()->run();
-        $this->assertCount(1, $this->readAttribute($each, 'pending'));
-        $this->assertEquals(PromiseInterface::PENDING, $p->getState());
-        $promises[3]->resolve('d');
-        P\queue()->run();
-        $this->assertNull($this->readAttribute($each, 'pending'));
-        $this->assertEquals(PromiseInterface::FULFILLED, $p->getState());
-        $this->assertEquals([0, 1, 1, 1], $calls);
-        $this->assertFalse($promises->valid());
-    }
-
-    public function testClearsReferencesWhenResolved()
-    {
-        $called = false;
-        $a = new Promise(function () use (&$a, &$called) {
-            $a->resolve('a');
-            $called = true;
-        });
-        $each = new EachPromise([$a], [
-            'concurrency'       => function () { return 1; },
-            'fulfilled' => function () {},
-            'rejected'  => function () {}
-        ]);
-        $each->promise()->wait();
-        $this->assertNull($this->readAttribute($each, 'onFulfilled'));
-        $this->assertNull($this->readAttribute($each, 'onRejected'));
-        $this->assertNull($this->readAttribute($each, 'iterable'));
-        $this->assertNull($this->readAttribute($each, 'pending'));
-        $this->assertNull($this->readAttribute($each, 'concurrency'));
-        $this->assertTrue($called);
-    }
-
-    public function testCanBeCancelled()
-    {
-        $this->markTestIncomplete();
-    }
-
-    public function testDoesNotBlowStackWithFulfilledPromises()
-    {
-        $pending = [];
-        for ($i = 0; $i < 100; $i++) {
-            $pending[] = new FulfilledPromise($i);
-        }
-        $values = [];
-        $each = new EachPromise($pending, [
-            'fulfilled' => function ($value) use (&$values) {
-                $values[] = $value;
-            }
-        ]);
-        $called = false;
-        $each->promise()->then(function () use (&$called) {
-            $called = true;
-        });
-        $this->assertFalse($called);
-        P\queue()->run();
-        $this->assertTrue($called);
-        $this->assertEquals(range(0, 99), $values);
-    }
-
-    public function testDoesNotBlowStackWithRejectedPromises()
-    {
-        $pending = [];
-        for ($i = 0; $i < 100; $i++) {
-            $pending[] = new RejectedPromise($i);
-        }
-        $values = [];
-        $each = new EachPromise($pending, [
-            'rejected' => function ($value) use (&$values) {
-                $values[] = $value;
-            }
-        ]);
-        $called = false;
-        $each->promise()->then(
-            function () use (&$called) { $called = true; },
-            function () { $this->fail('Should not have rejected.'); }
-        );
-        $this->assertFalse($called);
-        P\queue()->run();
-        $this->assertTrue($called);
-        $this->assertEquals(range(0, 99), $values);
-    }
-
-    public function testReturnsPromiseForWhatever()
-    {
-        $called = [];
-        $arr = ['a', 'b'];
-        $each = new EachPromise($arr, [
-            'fulfilled' => function ($v) use (&$called) { $called[] = $v; }
-        ]);
-        $p = $each->promise();
-        $this->assertNull($p->wait());
-        $this->assertEquals(['a', 'b'], $called);
-    }
-
-    public function testRejectsAggregateWhenNextThrows()
-    {
-        $iter = function () {
-            yield 'a';
-            throw new \Exception('Failure');
-        };
-        $each = new EachPromise($iter());
-        $p = $each->promise();
-        $e = null;
-        $received = null;
-        $p->then(null, function ($reason) use (&$e) { $e = $reason; });
-        P\queue()->run();
-        $this->assertInstanceOf('Exception', $e);
-        $this->assertEquals('Failure', $e->getMessage());
-    }
-
-    public function testDoesNotCallNextOnIteratorUntilNeededWhenWaiting()
-    {
-        $results = [];
-        $values = [10];
-        $remaining = 9;
-        $iter = function () use (&$values) {
-            while ($value = array_pop($values)) {
-                yield $value;
-            }
-        };
-        $each = new EachPromise($iter(), [
-            'concurrency' => 1,
-            'fulfilled' => function ($r) use (&$results, &$values, &$remaining) {
-                $results[] = $r;
-                if ($remaining > 0) {
-                    $values[] = $remaining--;
-                }
-            }
-        ]);
-        $each->promise()->wait();
-        $this->assertEquals(range(10, 1), $results);
-    }
-
-    public function testDoesNotCallNextOnIteratorUntilNeededWhenAsync()
-    {
-        $firstPromise = new Promise();
-        $pending = [$firstPromise];
-        $values = [$firstPromise];
-        $results = [];
-        $remaining = 9;
-        $iter = function () use (&$values) {
-            while ($value = array_pop($values)) {
-                yield $value;
-            }
-        };
-        $each = new EachPromise($iter(), [
-            'concurrency' => 1,
-            'fulfilled' => function ($r) use (&$results, &$values, &$remaining, &$pending) {
-                $results[] = $r;
-                if ($remaining-- > 0) {
-                    $pending[] = $values[] = new Promise();
-                }
-            }
-        ]);
-        $i = 0;
-        $each->promise();
-        while ($promise = array_pop($pending)) {
-            $promise->resolve($i++);
-            P\queue()->run();
-        }
-        $this->assertEquals(range(0, 9), $results);
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/FulfilledPromiseTest.php b/core/vendor/guzzlehttp/promises/tests/FulfilledPromiseTest.php
deleted file mode 100644
index 554c150..0000000
--- a/core/vendor/guzzlehttp/promises/tests/FulfilledPromiseTest.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Promise;
-
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\FulfilledPromise;
-
-/**
- * @covers GuzzleHttp\Promise\FulfilledPromise
- */
-class FulfilledPromiseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsValueWhenWaitedUpon()
-    {
-        $p = new FulfilledPromise('foo');
-        $this->assertEquals('fulfilled', $p->getState());
-        $this->assertEquals('foo', $p->wait(true));
-    }
-
-    public function testCannotCancel()
-    {
-        $p = new FulfilledPromise('foo');
-        $this->assertEquals('fulfilled', $p->getState());
-        $p->cancel();
-        $this->assertEquals('foo', $p->wait());
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @exepctedExceptionMessage Cannot resolve a fulfilled promise
-     */
-    public function testCannotResolve()
-    {
-        $p = new FulfilledPromise('foo');
-        $p->resolve('bar');
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @exepctedExceptionMessage Cannot reject a fulfilled promise
-     */
-    public function testCannotReject()
-    {
-        $p = new FulfilledPromise('foo');
-        $p->reject('bar');
-    }
-
-    public function testCanResolveWithSameValue()
-    {
-        $p = new FulfilledPromise('foo');
-        $p->resolve('foo');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testCannotResolveWithPromise()
-    {
-        new FulfilledPromise(new Promise());
-    }
-
-    public function testReturnsSelfWhenNoOnFulfilled()
-    {
-        $p = new FulfilledPromise('a');
-        $this->assertSame($p, $p->then());
-    }
-
-    public function testAsynchronouslyInvokesOnFulfilled()
-    {
-        $p = new FulfilledPromise('a');
-        $r = null;
-        $f = function ($d) use (&$r) { $r = $d; };
-        $p2 = $p->then($f);
-        $this->assertNotSame($p, $p2);
-        $this->assertNull($r);
-        \GuzzleHttp\Promise\queue()->run();
-        $this->assertEquals('a', $r);
-    }
-
-    public function testReturnsNewRejectedWhenOnFulfilledFails()
-    {
-        $p = new FulfilledPromise('a');
-        $f = function () { throw new \Exception('b'); };
-        $p2 = $p->then($f);
-        $this->assertNotSame($p, $p2);
-        try {
-            $p2->wait();
-            $this->fail();
-        } catch (\Exception $e) {
-            $this->assertEquals('b', $e->getMessage());
-        }
-    }
-
-    public function testOtherwiseIsSugarForRejections()
-    {
-        $c = null;
-        $p = new FulfilledPromise('foo');
-        $p->otherwise(function ($v) use (&$c) { $c = $v; });
-        $this->assertNull($c);
-    }
-
-    public function testDoesNotTryToFulfillTwiceDuringTrampoline()
-    {
-        $fp = new FulfilledPromise('a');
-        $t1 = $fp->then(function ($v) { return $v . ' b'; });
-        $t1->resolve('why!');
-        $this->assertEquals('why!', $t1->wait());
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/NotPromiseInstance.php b/core/vendor/guzzlehttp/promises/tests/NotPromiseInstance.php
deleted file mode 100644
index 6288aa8..0000000
--- a/core/vendor/guzzlehttp/promises/tests/NotPromiseInstance.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\PromiseInterface;
-
-class NotPromiseInstance extends Thennable implements PromiseInterface
-{
-    private $nextPromise = null;
-
-    public function __construct()
-    {
-        $this->nextPromise = new Promise();
-    }
-
-    public function then(callable $res = null, callable $rej = null)
-    {
-        return $this->nextPromise->then($res, $rej);
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this->then($onRejected);
-    }
-
-    public function resolve($value)
-    {
-        $this->nextPromise->resolve($value);
-    }
-
-    public function reject($reason)
-    {
-        $this->nextPromise->reject($reason);
-    }
-
-    public function wait($unwrap = true, $defaultResolution = null)
-    {
-
-    }
-
-    public function cancel()
-    {
-
-    }
-
-    public function getState()
-    {
-        return $this->nextPromise->getState();
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/PromiseTest.php b/core/vendor/guzzlehttp/promises/tests/PromiseTest.php
deleted file mode 100644
index 946c627..0000000
--- a/core/vendor/guzzlehttp/promises/tests/PromiseTest.php
+++ /dev/null
@@ -1,579 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\CancellationException;
-use GuzzleHttp\Promise as P;
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\RejectedPromise;
-use GuzzleHttp\Promise\RejectionException;
-
-/**
- * @covers GuzzleHttp\Promise\Promise
- */
-class PromiseTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage The promise is already fulfilled
-     */
-    public function testCannotResolveNonPendingPromise()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $p->resolve('bar');
-        $this->assertEquals('foo', $p->wait());
-    }
-
-    public function testCanResolveWithSameValue()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $p->resolve('foo');
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Cannot change a fulfilled promise to rejected
-     */
-    public function testCannotRejectNonPendingPromise()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $p->reject('bar');
-        $this->assertEquals('foo', $p->wait());
-    }
-
-    public function testCanRejectWithSameValue()
-    {
-        $p = new Promise();
-        $p->reject('foo');
-        $p->reject('foo');
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Cannot change a fulfilled promise to rejected
-     */
-    public function testCannotRejectResolveWithSameValue()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $p->reject('foo');
-    }
-
-    public function testInvokesWaitFunction()
-    {
-        $p = new Promise(function () use (&$p) { $p->resolve('10'); });
-        $this->assertEquals('10', $p->wait());
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\RejectionException
-     */
-    public function testRejectsAndThrowsWhenWaitFailsToResolve()
-    {
-        $p = new Promise(function () {});
-        $p->wait();
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\RejectionException
-     * @expectedExceptionMessage The promise was rejected with reason: foo
-     */
-    public function testThrowsWhenUnwrapIsRejectedWithNonException()
-    {
-        $p = new Promise(function () use (&$p) { $p->reject('foo'); });
-        $p->wait();
-    }
-
-    /**
-     * @expectedException \UnexpectedValueException
-     * @expectedExceptionMessage foo
-     */
-    public function testThrowsWhenUnwrapIsRejectedWithException()
-    {
-        $e = new \UnexpectedValueException('foo');
-        $p = new Promise(function () use (&$p, $e) { $p->reject($e); });
-        $p->wait();
-    }
-
-    public function testDoesNotUnwrapExceptionsWhenDisabled()
-    {
-        $p = new Promise(function () use (&$p) { $p->reject('foo'); });
-        $this->assertEquals('pending', $p->getState());
-        $p->wait(false);
-        $this->assertEquals('rejected', $p->getState());
-    }
-
-    public function testRejectsSelfWhenWaitThrows()
-    {
-        $e = new \UnexpectedValueException('foo');
-        $p = new Promise(function () use ($e) { throw $e; });
-        try {
-            $p->wait();
-            $this->fail();
-        } catch (\UnexpectedValueException $e) {
-            $this->assertEquals('rejected', $p->getState());
-        }
-    }
-
-    public function testWaitsOnNestedPromises()
-    {
-        $p = new Promise(function () use (&$p) { $p->resolve('_'); });
-        $p2 = new Promise(function () use (&$p2) { $p2->resolve('foo'); });
-        $p3 = $p->then(function () use ($p2) { return $p2; });
-        $this->assertSame('foo', $p3->wait());
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\RejectionException
-     */
-    public function testThrowsWhenWaitingOnPromiseWithNoWaitFunction()
-    {
-        $p = new Promise();
-        $p->wait();
-    }
-
-    public function testThrowsWaitExceptionAfterPromiseIsResolved()
-    {
-        $p = new Promise(function () use (&$p) {
-            $p->reject('Foo!');
-            throw new \Exception('Bar?');
-        });
-
-        try {
-            $p->wait();
-            $this->fail();
-        } catch (\Exception $e) {
-            $this->assertEquals('Bar?', $e->getMessage());
-        }
-    }
-
-    public function testGetsActualWaitValueFromThen()
-    {
-        $p = new Promise(function () use (&$p) { $p->reject('Foo!'); });
-        $p2 = $p->then(null, function ($reason) {
-            return new RejectedPromise([$reason]);
-        });
-
-        try {
-            $p2->wait();
-            $this->fail('Should have thrown');
-        } catch (RejectionException $e) {
-            $this->assertEquals(['Foo!'], $e->getReason());
-        }
-    }
-
-    public function testWaitBehaviorIsBasedOnLastPromiseInChain()
-    {
-        $p3 = new Promise(function () use (&$p3) { $p3->resolve('Whoop'); });
-        $p2 = new Promise(function () use (&$p2, $p3) { $p2->reject($p3); });
-        $p = new Promise(function () use (&$p, $p2) { $p->reject($p2); });
-        $this->assertEquals('Whoop', $p->wait());
-    }
-
-    public function testCannotCancelNonPending()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $p->cancel();
-        $this->assertEquals('fulfilled', $p->getState());
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\CancellationException
-     */
-    public function testCancelsPromiseWhenNoCancelFunction()
-    {
-        $p = new Promise();
-        $p->cancel();
-        $this->assertEquals('rejected', $p->getState());
-        $p->wait();
-    }
-
-    public function testCancelsPromiseWithCancelFunction()
-    {
-        $called = false;
-        $p = new Promise(null, function () use (&$called) { $called = true; });
-        $p->cancel();
-        $this->assertEquals('rejected', $p->getState());
-        $this->assertTrue($called);
-    }
-
-    public function testCancelsUppermostPendingPromise()
-    {
-        $called = false;
-        $p1 = new Promise(null, function () use (&$called) { $called = true; });
-        $p2 = $p1->then(function () {});
-        $p3 = $p2->then(function () {});
-        $p4 = $p3->then(function () {});
-        $p3->cancel();
-        $this->assertEquals('rejected', $p1->getState());
-        $this->assertEquals('rejected', $p2->getState());
-        $this->assertEquals('rejected', $p3->getState());
-        $this->assertEquals('pending', $p4->getState());
-        $this->assertTrue($called);
-
-        try {
-            $p3->wait();
-            $this->fail();
-        } catch (CancellationException $e) {
-            $this->assertContains('cancelled', $e->getMessage());
-        }
-
-        try {
-            $p4->wait();
-            $this->fail();
-        } catch (CancellationException $e) {
-            $this->assertContains('cancelled', $e->getMessage());
-        }
-
-        $this->assertEquals('rejected', $p4->getState());
-    }
-
-    public function testCancelsChildPromises()
-    {
-        $called1 = $called2 = $called3 = false;
-        $p1 = new Promise(null, function () use (&$called1) { $called1 = true; });
-        $p2 = new Promise(null, function () use (&$called2) { $called2 = true; });
-        $p3 = new Promise(null, function () use (&$called3) { $called3 = true; });
-        $p4 = $p2->then(function () use ($p3) { return $p3; });
-        $p5 = $p4->then(function () { $this->fail(); });
-        $p4->cancel();
-        $this->assertEquals('pending', $p1->getState());
-        $this->assertEquals('rejected', $p2->getState());
-        $this->assertEquals('rejected', $p4->getState());
-        $this->assertEquals('pending', $p5->getState());
-        $this->assertFalse($called1);
-        $this->assertTrue($called2);
-        $this->assertFalse($called3);
-    }
-
-    public function testRejectsPromiseWhenCancelFails()
-    {
-        $called = false;
-        $p = new Promise(null, function () use (&$called) {
-            $called = true;
-            throw new \Exception('e');
-        });
-        $p->cancel();
-        $this->assertEquals('rejected', $p->getState());
-        $this->assertTrue($called);
-        try {
-            $p->wait();
-            $this->fail();
-        } catch (\Exception $e) {
-            $this->assertEquals('e', $e->getMessage());
-        }
-    }
-
-    public function testCreatesPromiseWhenFulfilledAfterThen()
-    {
-        $p = new Promise();
-        $carry = null;
-        $p2 = $p->then(function ($v) use (&$carry) { $carry = $v; });
-        $this->assertNotSame($p, $p2);
-        $p->resolve('foo');
-        P\queue()->run();
-
-        $this->assertEquals('foo', $carry);
-    }
-
-    public function testCreatesPromiseWhenFulfilledBeforeThen()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $carry = null;
-        $p2 = $p->then(function ($v) use (&$carry) { $carry = $v; });
-        $this->assertNotSame($p, $p2);
-        $this->assertNull($carry);
-        \GuzzleHttp\Promise\queue()->run();
-        $this->assertEquals('foo', $carry);
-    }
-
-    public function testCreatesPromiseWhenFulfilledWithNoCallback()
-    {
-        $p = new Promise();
-        $p->resolve('foo');
-        $p2 = $p->then();
-        $this->assertNotSame($p, $p2);
-        $this->assertInstanceOf('GuzzleHttp\Promise\FulfilledPromise', $p2);
-    }
-
-    public function testCreatesPromiseWhenRejectedAfterThen()
-    {
-        $p = new Promise();
-        $carry = null;
-        $p2 = $p->then(null, function ($v) use (&$carry) { $carry = $v; });
-        $this->assertNotSame($p, $p2);
-        $p->reject('foo');
-        P\queue()->run();
-        $this->assertEquals('foo', $carry);
-    }
-
-    public function testCreatesPromiseWhenRejectedBeforeThen()
-    {
-        $p = new Promise();
-        $p->reject('foo');
-        $carry = null;
-        $p2 = $p->then(null, function ($v) use (&$carry) { $carry = $v; });
-        $this->assertNotSame($p, $p2);
-        $this->assertNull($carry);
-        P\queue()->run();
-        $this->assertEquals('foo', $carry);
-    }
-
-    public function testCreatesPromiseWhenRejectedWithNoCallback()
-    {
-        $p = new Promise();
-        $p->reject('foo');
-        $p2 = $p->then();
-        $this->assertNotSame($p, $p2);
-        $this->assertInstanceOf('GuzzleHttp\Promise\RejectedPromise', $p2);
-    }
-
-    public function testInvokesWaitFnsForThens()
-    {
-        $p = new Promise(function () use (&$p) { $p->resolve('a'); });
-        $p2 = $p
-            ->then(function ($v) { return $v . '-1-'; })
-            ->then(function ($v) { return $v . '2'; });
-        $this->assertEquals('a-1-2', $p2->wait());
-    }
-
-    public function testStacksThenWaitFunctions()
-    {
-        $p1 = new Promise(function () use (&$p1) { $p1->resolve('a'); });
-        $p2 = new Promise(function () use (&$p2) { $p2->resolve('b'); });
-        $p3 = new Promise(function () use (&$p3) { $p3->resolve('c'); });
-        $p4 = $p1
-            ->then(function () use ($p2) { return $p2; })
-            ->then(function () use ($p3) { return $p3; });
-        $this->assertEquals('c', $p4->wait());
-    }
-
-    public function testForwardsFulfilledDownChainBetweenGaps()
-    {
-        $p = new Promise();
-        $r = $r2 = null;
-        $p->then(null, null)
-            ->then(function ($v) use (&$r) { $r = $v; return $v . '2'; })
-            ->then(function ($v) use (&$r2) { $r2 = $v; });
-        $p->resolve('foo');
-        P\queue()->run();
-        $this->assertEquals('foo', $r);
-        $this->assertEquals('foo2', $r2);
-    }
-
-    public function testForwardsRejectedPromisesDownChainBetweenGaps()
-    {
-        $p = new Promise();
-        $r = $r2 = null;
-        $p->then(null, null)
-            ->then(null, function ($v) use (&$r) { $r = $v; return $v . '2'; })
-            ->then(function ($v) use (&$r2) { $r2 = $v; });
-        $p->reject('foo');
-        P\queue()->run();
-        $this->assertEquals('foo', $r);
-        $this->assertEquals('foo2', $r2);
-    }
-
-    public function testForwardsThrownPromisesDownChainBetweenGaps()
-    {
-        $e = new \Exception();
-        $p = new Promise();
-        $r = $r2 = null;
-        $p->then(null, null)
-            ->then(null, function ($v) use (&$r, $e) {
-                $r = $v;
-                throw $e;
-            })
-            ->then(
-                null,
-                function ($v) use (&$r2) { $r2 = $v; }
-            );
-        $p->reject('foo');
-        P\queue()->run();
-        $this->assertEquals('foo', $r);
-        $this->assertSame($e, $r2);
-    }
-
-    public function testForwardsReturnedRejectedPromisesDownChainBetweenGaps()
-    {
-        $p = new Promise();
-        $rejected = new RejectedPromise('bar');
-        $r = $r2 = null;
-        $p->then(null, null)
-            ->then(null, function ($v) use (&$r, $rejected) {
-                $r = $v;
-                return $rejected;
-            })
-            ->then(
-                null,
-                function ($v) use (&$r2) { $r2 = $v; }
-            );
-        $p->reject('foo');
-        P\queue()->run();
-        $this->assertEquals('foo', $r);
-        $this->assertEquals('bar', $r2);
-        try {
-            $p->wait();
-        } catch (RejectionException $e) {
-            $this->assertEquals('foo', $e->getReason());
-        }
-    }
-
-    public function testForwardsHandlersToNextPromise()
-    {
-        $p = new Promise();
-        $p2 = new Promise();
-        $resolved = null;
-        $p
-            ->then(function ($v) use ($p2) { return $p2; })
-            ->then(function ($value) use (&$resolved) { $resolved = $value; });
-        $p->resolve('a');
-        $p2->resolve('b');
-        P\queue()->run();
-        $this->assertEquals('b', $resolved);
-    }
-
-    public function testRemovesReferenceFromChildWhenParentWaitedUpon()
-    {
-        $r = null;
-        $p = new Promise(function () use (&$p) { $p->resolve('a'); });
-        $p2 = new Promise(function () use (&$p2) { $p2->resolve('b'); });
-        $pb = $p->then(
-            function ($v) use ($p2, &$r) {
-                $r = $v;
-                return $p2;
-            })
-            ->then(function ($v) { return $v . '.'; });
-        $this->assertEquals('a', $p->wait());
-        $this->assertEquals('b', $p2->wait());
-        $this->assertEquals('b.', $pb->wait());
-        $this->assertEquals('a', $r);
-    }
-
-    public function testForwardsHandlersWhenFulfilledPromiseIsReturned()
-    {
-        $res = [];
-        $p = new Promise();
-        $p2 = new Promise();
-        $p2->resolve('foo');
-        $p2->then(function ($v) use (&$res) { $res[] = 'A:' . $v; });
-        // $res is A:foo
-        $p
-            ->then(function () use ($p2, &$res) { $res[] = 'B'; return $p2; })
-            ->then(function ($v) use (&$res) { $res[] = 'C:' . $v; });
-        $p->resolve('a');
-        $p->then(function ($v) use (&$res) { $res[] = 'D:' . $v; });
-        P\queue()->run();
-        $this->assertEquals(['A:foo', 'B', 'D:a', 'C:foo'], $res);
-    }
-
-    public function testForwardsHandlersWhenRejectedPromiseIsReturned()
-    {
-        $res = [];
-        $p = new Promise();
-        $p2 = new Promise();
-        $p2->reject('foo');
-        $p2->then(null, function ($v) use (&$res) { $res[] = 'A:' . $v; });
-        $p->then(null, function () use ($p2, &$res) { $res[] = 'B'; return $p2; })
-            ->then(null, function ($v) use (&$res) { $res[] = 'C:' . $v; });
-        $p->reject('a');
-        $p->then(null, function ($v) use (&$res) { $res[] = 'D:' . $v; });
-        P\queue()->run();
-        $this->assertEquals(['A:foo', 'B', 'D:a', 'C:foo'], $res);
-    }
-
-    public function testDoesNotForwardRejectedPromise()
-    {
-        $res = [];
-        $p = new Promise();
-        $p2 = new Promise();
-        $p2->cancel();
-        $p2->then(function ($v) use (&$res) { $res[] = "B:$v"; return $v; });
-        $p->then(function ($v) use ($p2, &$res) { $res[] = "B:$v"; return $p2; })
-            ->then(function ($v) use (&$res) { $res[] = 'C:' . $v; });
-        $p->resolve('a');
-        $p->then(function ($v) use (&$res) { $res[] = 'D:' . $v; });
-        P\queue()->run();
-        $this->assertEquals(['B:a', 'D:a'], $res);
-    }
-
-    public function testRecursivelyForwardsWhenOnlyThennable()
-    {
-        $res = [];
-        $p = new Promise();
-        $p2 = new Thennable();
-        $p2->resolve('foo');
-        $p2->then(function ($v) use (&$res) { $res[] = 'A:' . $v; });
-        $p->then(function () use ($p2, &$res) { $res[] = 'B'; return $p2; })
-            ->then(function ($v) use (&$res) { $res[] = 'C:' . $v; });
-        $p->resolve('a');
-        $p->then(function ($v) use (&$res) { $res[] = 'D:' . $v; });
-        P\queue()->run();
-        $this->assertEquals(['A:foo', 'B', 'D:a', 'C:foo'], $res);
-    }
-
-    public function testRecursivelyForwardsWhenNotInstanceOfPromise()
-    {
-        $res = [];
-        $p = new Promise();
-        $p2 = new NotPromiseInstance();
-        $p2->then(function ($v) use (&$res) { $res[] = 'A:' . $v; });
-        $p->then(function () use ($p2, &$res) { $res[] = 'B'; return $p2; })
-            ->then(function ($v) use (&$res) { $res[] = 'C:' . $v; });
-        $p->resolve('a');
-        $p->then(function ($v) use (&$res) { $res[] = 'D:' . $v; });
-        P\queue()->run();
-        $this->assertEquals(['B', 'D:a'], $res);
-        $p2->resolve('foo');
-        P\queue()->run();
-        $this->assertEquals(['B', 'D:a', 'A:foo', 'C:foo'], $res);
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Cannot fulfill or reject a promise with itself
-     */
-    public function testCannotResolveWithSelf()
-    {
-        $p = new Promise();
-        $p->resolve($p);
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Cannot fulfill or reject a promise with itself
-     */
-    public function testCannotRejectWithSelf()
-    {
-        $p = new Promise();
-        $p->reject($p);
-    }
-
-    public function testDoesNotBlowStackWhenWaitingOnNestedThens()
-    {
-        $inner = new Promise(function () use (&$inner) { $inner->resolve(0); });
-        $prev = $inner;
-        for ($i = 1; $i < 100; $i++) {
-            $prev = $prev->then(function ($i) { return $i + 1; });
-        }
-
-        $parent = new Promise(function () use (&$parent, $prev) {
-            $parent->resolve($prev);
-        });
-
-        $this->assertEquals(99, $parent->wait());
-    }
-
-    public function testOtherwiseIsSugarForRejections()
-    {
-        $p = new Promise();
-        $p->reject('foo');
-        $p->otherwise(function ($v) use (&$c) { $c = $v; });
-        P\queue()->run();
-        $this->assertEquals($c, 'foo');
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php b/core/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php
deleted file mode 100644
index 60f926e..0000000
--- a/core/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\RejectedPromise;
-
-/**
- * @covers GuzzleHttp\Promise\RejectedPromise
- */
-class RejectedPromiseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testThrowsReasonWhenWaitedUpon()
-    {
-        $p = new RejectedPromise('foo');
-        $this->assertEquals('rejected', $p->getState());
-        try {
-            $p->wait(true);
-            $this->fail();
-        } catch (\Exception $e) {
-            $this->assertEquals('rejected', $p->getState());
-            $this->assertContains('foo', $e->getMessage());
-        }
-    }
-
-    public function testCannotCancel()
-    {
-        $p = new RejectedPromise('foo');
-        $p->cancel();
-        $this->assertEquals('rejected', $p->getState());
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @exepctedExceptionMessage Cannot resolve a rejected promise
-     */
-    public function testCannotResolve()
-    {
-        $p = new RejectedPromise('foo');
-        $p->resolve('bar');
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @exepctedExceptionMessage Cannot reject a rejected promise
-     */
-    public function testCannotReject()
-    {
-        $p = new RejectedPromise('foo');
-        $p->reject('bar');
-    }
-
-    public function testCanRejectWithSameValue()
-    {
-        $p = new RejectedPromise('foo');
-        $p->reject('foo');
-    }
-
-    public function testThrowsSpecificException()
-    {
-        $e = new \Exception();
-        $p = new RejectedPromise($e);
-        try {
-            $p->wait(true);
-            $this->fail();
-        } catch (\Exception $e2) {
-            $this->assertSame($e, $e2);
-        }
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testCannotResolveWithPromise()
-    {
-        new RejectedPromise(new Promise());
-    }
-
-    public function testReturnsSelfWhenNoOnReject()
-    {
-        $p = new RejectedPromise('a');
-        $this->assertSame($p, $p->then());
-    }
-
-    public function testInvokesOnRejectedAsynchronously()
-    {
-        $p = new RejectedPromise('a');
-        $r = null;
-        $f = function ($reason) use (&$r) { $r = $reason; };
-        $p->then(null, $f);
-        $this->assertNull($r);
-        \GuzzleHttp\Promise\queue()->run();
-        $this->assertEquals('a', $r);
-    }
-
-    public function testReturnsNewRejectedWhenOnRejectedFails()
-    {
-        $p = new RejectedPromise('a');
-        $f = function () { throw new \Exception('b'); };
-        $p2 = $p->then(null, $f);
-        $this->assertNotSame($p, $p2);
-        try {
-            $p2->wait();
-            $this->fail();
-        } catch (\Exception $e) {
-            $this->assertEquals('b', $e->getMessage());
-        }
-    }
-
-    public function testWaitingIsNoOp()
-    {
-        $p = new RejectedPromise('a');
-        $p->wait(false);
-    }
-
-    public function testOtherwiseIsSugarForRejections()
-    {
-        $p = new RejectedPromise('foo');
-        $p->otherwise(function ($v) use (&$c) { $c = $v; });
-        \GuzzleHttp\Promise\queue()->run();
-        $this->assertSame('foo', $c);
-    }
-
-    public function testCanResolveThenWithSuccess()
-    {
-        $actual = null;
-        $p = new RejectedPromise('foo');
-        $p->otherwise(function ($v) {
-            return $v . ' bar';
-        })->then(function ($v) use (&$actual) {
-            $actual = $v;
-        });
-        \GuzzleHttp\Promise\queue()->run();
-        $this->assertEquals('foo bar', $actual);
-    }
-
-    public function testDoesNotTryToRejectTwiceDuringTrampoline()
-    {
-        $fp = new RejectedPromise('a');
-        $t1 = $fp->then(null, function ($v) { return $v . ' b'; });
-        $t1->resolve('why!');
-        $this->assertEquals('why!', $t1->wait());
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/RejectionExceptionTest.php b/core/vendor/guzzlehttp/promises/tests/RejectionExceptionTest.php
deleted file mode 100644
index 36c6a88..0000000
--- a/core/vendor/guzzlehttp/promises/tests/RejectionExceptionTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\RejectionException;
-
-class Thing1
-{
-    public function __construct($message)
-    {
-        $this->message = $message;
-    }
-
-    public function __toString()
-    {
-        return $this->message;
-    }
-}
-
-class Thing2 implements \JsonSerializable
-{
-    public function jsonSerialize()
-    {
-        return '{}';
-    }
-}
-
-/**
- * @covers GuzzleHttp\Promise\RejectionException
- */
-class RejectionExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCanGetReasonFromException()
-    {
-        $thing = new Thing1('foo');
-        $e = new RejectionException($thing);
-
-        $this->assertSame($thing, $e->getReason());
-        $this->assertEquals('The promise was rejected with reason: foo', $e->getMessage());
-    }
-
-    public function testCanGetReasonMessageFromJson()
-    {
-        $reason = new Thing2();
-        $e = new RejectionException($reason);
-        $this->assertContains("{}", $e->getMessage());
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/TaskQueueTest.php b/core/vendor/guzzlehttp/promises/tests/TaskQueueTest.php
deleted file mode 100644
index 845b263..0000000
--- a/core/vendor/guzzlehttp/promises/tests/TaskQueueTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Test;
-
-use GuzzleHttp\Promise\TaskQueue;
-
-class TaskQueueTest extends \PHPUnit_Framework_TestCase
-{
-    public function testKnowsIfEmpty()
-    {
-        $tq = new TaskQueue(false);
-        $this->assertTrue($tq->isEmpty());
-    }
-
-    public function testKnowsIfFull()
-    {
-        $tq = new TaskQueue(false);
-        $tq->add(function () {});
-        $this->assertFalse($tq->isEmpty());
-    }
-
-    public function testExecutesTasksInOrder()
-    {
-        $tq = new TaskQueue(false);
-        $called = [];
-        $tq->add(function () use (&$called) { $called[] = 'a'; });
-        $tq->add(function () use (&$called) { $called[] = 'b'; });
-        $tq->add(function () use (&$called) { $called[] = 'c'; });
-        $tq->run();
-        $this->assertEquals(['a', 'b', 'c'], $called);
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/Thennable.php b/core/vendor/guzzlehttp/promises/tests/Thennable.php
deleted file mode 100644
index 398954d..0000000
--- a/core/vendor/guzzlehttp/promises/tests/Thennable.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise\Promise;
-
-class Thennable
-{
-    private $nextPromise = null;
-
-    public function __construct()
-    {
-        $this->nextPromise = new Promise();
-    }
-
-    public function then(callable $res = null, callable $rej = null)
-    {
-        return $this->nextPromise->then($res, $rej);
-    }
-
-    public function resolve($value)
-    {
-        $this->nextPromise->resolve($value);
-    }
-}
diff --git a/core/vendor/guzzlehttp/promises/tests/bootstrap.php b/core/vendor/guzzlehttp/promises/tests/bootstrap.php
deleted file mode 100644
index a63d264..0000000
--- a/core/vendor/guzzlehttp/promises/tests/bootstrap.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-require __DIR__ . '/../vendor/autoload.php';
-require __DIR__ . '/Thennable.php';
-require __DIR__ . '/NotPromiseInstance.php';
diff --git a/core/vendor/guzzlehttp/promises/tests/functionsTest.php b/core/vendor/guzzlehttp/promises/tests/functionsTest.php
deleted file mode 100644
index 8e6fcf4..0000000
--- a/core/vendor/guzzlehttp/promises/tests/functionsTest.php
+++ /dev/null
@@ -1,694 +0,0 @@
-<?php
-namespace GuzzleHttp\Promise\Tests;
-
-use GuzzleHttp\Promise as P;
-use GuzzleHttp\Promise\FulfilledPromise;
-use GuzzleHttp\Promise\Promise;
-use GuzzleHttp\Promise\RejectedPromise;
-
-class FunctionsTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCreatesPromiseForValue()
-    {
-        $p = \GuzzleHttp\Promise\promise_for('foo');
-        $this->assertInstanceOf('GuzzleHttp\Promise\FulfilledPromise', $p);
-    }
-
-    public function testReturnsPromiseForPromise()
-    {
-        $p = new Promise();
-        $this->assertSame($p, \GuzzleHttp\Promise\promise_for($p));
-    }
-
-    public function testReturnsPromiseForThennable()
-    {
-        $p = new Thennable();
-        $wrapped = \GuzzleHttp\Promise\promise_for($p);
-        $this->assertNotSame($p, $wrapped);
-        $this->assertInstanceOf('GuzzleHttp\Promise\PromiseInterface', $wrapped);
-        $p->resolve('foo');
-        P\queue()->run();
-        $this->assertEquals('foo', $wrapped->wait());
-    }
-
-    public function testReturnsRejection()
-    {
-        $p = \GuzzleHttp\Promise\rejection_for('fail');
-        $this->assertInstanceOf('GuzzleHttp\Promise\RejectedPromise', $p);
-        $this->assertEquals('fail', $this->readAttribute($p, 'reason'));
-    }
-
-    public function testReturnsPromisesAsIsInRejectionFor()
-    {
-        $a = new Promise();
-        $b = \GuzzleHttp\Promise\rejection_for($a);
-        $this->assertSame($a, $b);
-    }
-
-    public function testWaitsOnAllPromisesIntoArray()
-    {
-        $e = new \Exception();
-        $a = new Promise(function () use (&$a) { $a->resolve('a'); });
-        $b = new Promise(function () use (&$b) { $b->reject('b'); });
-        $c = new Promise(function () use (&$c, $e) { $c->reject($e); });
-        $results = \GuzzleHttp\Promise\inspect_all([$a, $b, $c]);
-        $this->assertEquals([
-            ['state' => 'fulfilled', 'value' => 'a'],
-            ['state' => 'rejected', 'reason' => 'b'],
-            ['state' => 'rejected', 'reason' => $e]
-        ], $results);
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\RejectionException
-     */
-    public function testUnwrapsPromisesWithNoDefaultAndFailure()
-    {
-        $promises = [new FulfilledPromise('a'), new Promise()];
-        \GuzzleHttp\Promise\unwrap($promises);
-    }
-
-    public function testUnwrapsPromisesWithNoDefault()
-    {
-        $promises = [new FulfilledPromise('a')];
-        $this->assertEquals(['a'], \GuzzleHttp\Promise\unwrap($promises));
-    }
-
-    public function testUnwrapsPromisesWithKeys()
-    {
-        $promises = [
-            'foo' => new FulfilledPromise('a'),
-            'bar' => new FulfilledPromise('b'),
-        ];
-        $this->assertEquals([
-            'foo' => 'a',
-            'bar' => 'b'
-        ], \GuzzleHttp\Promise\unwrap($promises));
-    }
-
-    public function testAllAggregatesSortedArray()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $c = new Promise();
-        $d = \GuzzleHttp\Promise\all([$a, $b, $c]);
-        $b->resolve('b');
-        $a->resolve('a');
-        $c->resolve('c');
-        $d->then(
-            function ($value) use (&$result) { $result = $value; },
-            function ($reason) use (&$result) { $result = $reason; }
-        );
-        P\queue()->run();
-        $this->assertEquals(['a', 'b', 'c'], $result);
-    }
-
-    public function testAllThrowsWhenAnyRejected()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $c = new Promise();
-        $d = \GuzzleHttp\Promise\all([$a, $b, $c]);
-        $b->resolve('b');
-        $a->reject('fail');
-        $c->resolve('c');
-        $d->then(
-            function ($value) use (&$result) { $result = $value; },
-            function ($reason) use (&$result) { $result = $reason; }
-        );
-        P\queue()->run();
-        $this->assertEquals('fail', $result);
-    }
-
-    public function testSomeAggregatesSortedArrayWithMax()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $c = new Promise();
-        $d = \GuzzleHttp\Promise\some(2, [$a, $b, $c]);
-        $b->resolve('b');
-        $c->resolve('c');
-        $a->resolve('a');
-        $d->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals(['b', 'c'], $result);
-    }
-
-    public function testSomeRejectsWhenTooManyRejections()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $d = \GuzzleHttp\Promise\some(2, [$a, $b]);
-        $a->reject('bad');
-        $b->resolve('good');
-        P\queue()->run();
-        $this->assertEquals($a::REJECTED, $d->getState());
-        $d->then(null, function ($reason) use (&$called) {
-            $called = $reason;
-        });
-        P\queue()->run();
-        $this->assertInstanceOf('GuzzleHttp\Promise\AggregateException', $called);
-        $this->assertContains('bad', $called->getReason());
-    }
-
-    public function testCanWaitUntilSomeCountIsSatisfied()
-    {
-        $a = new Promise(function () use (&$a) { $a->resolve('a'); });
-        $b = new Promise(function () use (&$b) { $b->resolve('b'); });
-        $c = new Promise(function () use (&$c) { $c->resolve('c'); });
-        $d = \GuzzleHttp\Promise\some(2, [$a, $b, $c]);
-        $this->assertEquals(['a', 'b'], $d->wait());
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\AggregateException
-     * @expectedExceptionMessage Not enough promises to fulfill count
-     */
-    public function testThrowsIfImpossibleToWaitForSomeCount()
-    {
-        $a = new Promise(function () use (&$a) { $a->resolve('a'); });
-        $d = \GuzzleHttp\Promise\some(2, [$a]);
-        $d->wait();
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Promise\AggregateException
-     * @expectedExceptionMessage Not enough promises to fulfill count
-     */
-    public function testThrowsIfResolvedWithoutCountTotalResults()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $d = \GuzzleHttp\Promise\some(3, [$a, $b]);
-        $a->resolve('a');
-        $b->resolve('b');
-        $d->wait();
-    }
-
-    public function testAnyReturnsFirstMatch()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $c = \GuzzleHttp\Promise\any([$a, $b]);
-        $b->resolve('b');
-        $a->resolve('a');
-        //P\queue()->run();
-        //$this->assertEquals('fulfilled', $c->getState());
-        $c->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals('b', $result);
-    }
-
-    public function testSettleFulfillsWithFulfilledAndRejected()
-    {
-        $a = new Promise();
-        $b = new Promise();
-        $c = new Promise();
-        $d = \GuzzleHttp\Promise\settle([$a, $b, $c]);
-        $b->resolve('b');
-        $c->resolve('c');
-        $a->reject('a');
-        P\queue()->run();
-        $this->assertEquals('fulfilled', $d->getState());
-        $d->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals([
-            ['state' => 'rejected', 'reason' => 'a'],
-            ['state' => 'fulfilled', 'value' => 'b'],
-            ['state' => 'fulfilled', 'value' => 'c']
-        ], $result);
-    }
-
-    public function testCanInspectFulfilledPromise()
-    {
-        $p = new FulfilledPromise('foo');
-        $this->assertEquals([
-            'state' => 'fulfilled',
-            'value' => 'foo'
-        ], \GuzzleHttp\Promise\inspect($p));
-    }
-
-    public function testCanInspectRejectedPromise()
-    {
-        $p = new RejectedPromise('foo');
-        $this->assertEquals([
-            'state'  => 'rejected',
-            'reason' => 'foo'
-        ], \GuzzleHttp\Promise\inspect($p));
-    }
-
-    public function testCanInspectRejectedPromiseWithNormalException()
-    {
-        $e = new \Exception('foo');
-        $p = new RejectedPromise($e);
-        $this->assertEquals([
-            'state'  => 'rejected',
-            'reason' => $e
-        ], \GuzzleHttp\Promise\inspect($p));
-    }
-
-    public function testCallsEachLimit()
-    {
-        $p = new Promise();
-        $aggregate = \GuzzleHttp\Promise\each_limit($p, 2);
-        $p->resolve('a');
-        P\queue()->run();
-        $this->assertEquals($p::FULFILLED, $aggregate->getState());
-    }
-
-    public function testEachLimitAllRejectsOnFailure()
-    {
-        $p = [new FulfilledPromise('a'), new RejectedPromise('b')];
-        $aggregate = \GuzzleHttp\Promise\each_limit_all($p, 2);
-        P\queue()->run();
-        $this->assertEquals(P\PromiseInterface::REJECTED, $aggregate->getState());
-        $result = \GuzzleHttp\Promise\inspect($aggregate);
-        $this->assertEquals('b', $result['reason']);
-    }
-
-    public function testIterForReturnsIterator()
-    {
-        $iter = new \ArrayIterator();
-        $this->assertSame($iter, \GuzzleHttp\Promise\iter_for($iter));
-    }
-
-    public function testKnowsIfFulfilled()
-    {
-        $p = new FulfilledPromise(null);
-        $this->assertTrue(P\is_fulfilled($p));
-        $this->assertFalse(P\is_rejected($p));
-    }
-
-    public function testKnowsIfRejected()
-    {
-        $p = new RejectedPromise(null);
-        $this->assertTrue(P\is_rejected($p));
-        $this->assertFalse(P\is_fulfilled($p));
-    }
-
-    public function testKnowsIfSettled()
-    {
-        $p = new RejectedPromise(null);
-        $this->assertTrue(P\is_settled($p));
-        $p = new Promise();
-        $this->assertFalse(P\is_settled($p));
-    }
-
-    public function testReturnsTrampoline()
-    {
-        $this->assertInstanceOf('GuzzleHttp\Promise\TaskQueue', P\queue());
-        $this->assertSame(P\queue(), P\queue());
-    }
-
-    public function testCanScheduleThunk()
-    {
-        $tramp = P\queue();
-        $promise = P\task(function () { return 'Hi!'; });
-        $c = null;
-        $promise->then(function ($v) use (&$c) { $c = $v; });
-        $this->assertNull($c);
-        $tramp->run();
-        $this->assertEquals('Hi!', $c);
-    }
-
-    public function testCanScheduleThunkWithRejection()
-    {
-        $tramp = P\queue();
-        $promise = P\task(function () { throw new \Exception('Hi!'); });
-        $c = null;
-        $promise->otherwise(function ($v) use (&$c) { $c = $v; });
-        $this->assertNull($c);
-        $tramp->run();
-        $this->assertEquals('Hi!', $c->getMessage());
-    }
-
-    public function testCanScheduleThunkWithWait()
-    {
-        $tramp = P\queue();
-        $promise = P\task(function () { return 'a'; });
-        $this->assertEquals('a', $promise->wait());
-        $tramp->run();
-    }
-
-    public function testYieldsFromCoroutine()
-    {
-        $promise = P\coroutine(function () {
-            $value = (yield new P\FulfilledPromise('a'));
-            yield  $value . 'b';
-        });
-        $promise->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals('ab', $result);
-    }
-
-    public function testCanCatchExceptionsInCoroutine()
-    {
-        $promise = P\coroutine(function () {
-            try {
-                yield new P\RejectedPromise('a');
-                $this->fail('Should have thrown into the coroutine!');
-            } catch (P\RejectionException $e) {
-                $value = (yield new P\FulfilledPromise($e->getReason()));
-                yield  $value . 'b';
-            }
-        });
-        $promise->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals(P\PromiseInterface::FULFILLED, $promise->getState());
-        $this->assertEquals('ab', $result);
-    }
-
-    public function testRejectsParentExceptionWhenException()
-    {
-        $promise = P\coroutine(function () {
-            yield new P\FulfilledPromise(0);
-            throw new \Exception('a');
-        });
-        $promise->then(
-            function () { $this->fail(); },
-            function ($reason) use (&$result) { $result = $reason; }
-        );
-        P\queue()->run();
-        $this->assertInstanceOf('Exception', $result);
-        $this->assertEquals('a', $result->getMessage());
-    }
-
-    public function testCanRejectFromRejectionCallback()
-    {
-        $promise = P\coroutine(function () {
-            yield new P\FulfilledPromise(0);
-            yield new P\RejectedPromise('no!');
-        });
-        $promise->then(
-            function () { $this->fail(); },
-            function ($reason) use (&$result) { $result = $reason; }
-        );
-        P\queue()->run();
-        $this->assertInstanceOf('GuzzleHttp\Promise\RejectionException', $result);
-        $this->assertEquals('no!', $result->getReason());
-    }
-
-    public function testCanAsyncReject()
-    {
-        $rej = new P\Promise();
-        $promise = P\coroutine(function () use ($rej) {
-            yield new P\FulfilledPromise(0);
-            yield $rej;
-        });
-        $promise->then(
-            function () { $this->fail(); },
-            function ($reason) use (&$result) { $result = $reason; }
-        );
-        $rej->reject('no!');
-        P\queue()->run();
-        $this->assertInstanceOf('GuzzleHttp\Promise\RejectionException', $result);
-        $this->assertEquals('no!', $result->getReason());
-    }
-
-    public function testCanCatchAndThrowOtherException()
-    {
-        $promise = P\coroutine(function () {
-            try {
-                yield new P\RejectedPromise('a');
-                $this->fail('Should have thrown into the coroutine!');
-            } catch (P\RejectionException $e) {
-                throw new \Exception('foo');
-            }
-        });
-        $promise->otherwise(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals(P\PromiseInterface::REJECTED, $promise->getState());
-        $this->assertContains('foo', $result->getMessage());
-    }
-
-    public function testCanCatchAndYieldOtherException()
-    {
-        $promise = P\coroutine(function () {
-            try {
-                yield new P\RejectedPromise('a');
-                $this->fail('Should have thrown into the coroutine!');
-            } catch (P\RejectionException $e) {
-                yield new P\RejectedPromise('foo');
-            }
-        });
-        $promise->otherwise(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals(P\PromiseInterface::REJECTED, $promise->getState());
-        $this->assertContains('foo', $result->getMessage());
-    }
-
-    public function createLotsOfSynchronousPromise()
-    {
-        return P\coroutine(function () {
-            $value = 0;
-            for ($i = 0; $i < 1000; $i++) {
-                $value = (yield new P\FulfilledPromise($i));
-            }
-            yield $value;
-        });
-    }
-
-    public function testLotsOfSynchronousDoesNotBlowStack()
-    {
-        $promise = $this->createLotsOfSynchronousPromise();
-        $promise->then(function ($v) use (&$r) { $r = $v; });
-        P\queue()->run();
-        $this->assertEquals(999, $r);
-    }
-
-    public function testLotsOfSynchronousWaitDoesNotBlowStack()
-    {
-        $promise = $this->createLotsOfSynchronousPromise();
-        $promise->then(function ($v) use (&$r) { $r = $v; });
-        $this->assertEquals(999, $promise->wait());
-        $this->assertEquals(999, $r);
-    }
-
-    private function createLotsOfFlappingPromise()
-    {
-        return P\coroutine(function () {
-            $value = 0;
-            for ($i = 0; $i < 1000; $i++) {
-                try {
-                    if ($i % 2) {
-                        $value = (yield new P\FulfilledPromise($i));
-                    } else {
-                        $value = (yield new P\RejectedPromise($i));
-                    }
-                } catch (\Exception $e) {
-                    $value = (yield new P\FulfilledPromise($i));
-                }
-            }
-            yield $value;
-        });
-    }
-
-    public function testLotsOfTryCatchingDoesNotBlowStack()
-    {
-        $promise = $this->createLotsOfFlappingPromise();
-        $promise->then(function ($v) use (&$r) { $r = $v; });
-        P\queue()->run();
-        $this->assertEquals(999, $r);
-    }
-
-    public function testLotsOfTryCatchingWaitingDoesNotBlowStack()
-    {
-        $promise = $this->createLotsOfFlappingPromise();
-        $promise->then(function ($v) use (&$r) { $r = $v; });
-        $this->assertEquals(999, $promise->wait());
-        $this->assertEquals(999, $r);
-    }
-
-    public function testAsyncPromisesWithCorrectlyYieldedValues()
-    {
-        $promises = [
-            new P\Promise(),
-            new P\Promise(),
-            new P\Promise()
-        ];
-
-        $promise = P\coroutine(function () use ($promises) {
-            $value = null;
-            $this->assertEquals('skip', (yield new P\FulfilledPromise('skip')));
-            foreach ($promises as $idx => $p) {
-                $value = (yield $p);
-                $this->assertEquals($value, $idx);
-                $this->assertEquals('skip', (yield new P\FulfilledPromise('skip')));
-            }
-            $this->assertEquals('skip', (yield new P\FulfilledPromise('skip')));
-            yield $value;
-        });
-
-        $promises[0]->resolve(0);
-        $promises[1]->resolve(1);
-        $promises[2]->resolve(2);
-
-        $promise->then(function ($v) use (&$r) { $r = $v; });
-        P\queue()->run();
-        $this->assertEquals(2, $r);
-    }
-
-    public function testYieldFinalWaitablePromise()
-    {
-        $p1 = new P\Promise(function () use (&$p1) {
-            $p1->resolve('skip me');
-        });
-        $p2 = new P\Promise(function () use (&$p2) {
-            $p2->resolve('hello!');
-        });
-        $co = P\coroutine(function() use ($p1, $p2) {
-            yield $p1;
-            yield $p2;
-        });
-        P\queue()->run();
-        $this->assertEquals('hello!', $co->wait());
-    }
-
-    public function testCanYieldFinalPendingPromise()
-    {
-        $p1 = new P\Promise();
-        $p2 = new P\Promise();
-        $co = P\coroutine(function() use ($p1, $p2) {
-            yield $p1;
-            yield $p2;
-        });
-        $p1->resolve('a');
-        $p2->resolve('b');
-        $co->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals('b', $result);
-    }
-
-    public function testCanNestYieldsAndFailures()
-    {
-        $p1 = new P\Promise();
-        $p2 = new P\Promise();
-        $p3 = new P\Promise();
-        $p4 = new P\Promise();
-        $p5 = new P\Promise();
-        $co = P\coroutine(function() use ($p1, $p2, $p3, $p4, $p5) {
-            try {
-                yield $p1;
-            } catch (\Exception $e) {
-                yield $p2;
-                try {
-                    yield $p3;
-                    yield $p4;
-                } catch (\Exception $e) {
-                    yield $p5;
-                }
-            }
-        });
-        $p1->reject('a');
-        $p2->resolve('b');
-        $p3->resolve('c');
-        $p4->reject('d');
-        $p5->resolve('e');
-        $co->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals('e', $result);
-    }
-
-    public function testCanYieldErrorsAndSuccessesWithoutRecursion()
-    {
-        $promises = [];
-        for ($i = 0; $i < 20; $i++) {
-            $promises[] = new P\Promise();
-        }
-
-        $co = P\coroutine(function() use ($promises) {
-            for ($i = 0; $i < 20; $i += 4) {
-                try {
-                    yield $promises[$i];
-                    yield $promises[$i + 1];
-                } catch (\Exception $e) {
-                    yield $promises[$i + 2];
-                    yield $promises[$i + 3];
-                }
-            }
-        });
-
-        for ($i = 0; $i < 20; $i += 4) {
-            $promises[$i]->resolve($i);
-            $promises[$i + 1]->reject($i + 1);
-            $promises[$i + 2]->resolve($i + 2);
-            $promises[$i + 3]->resolve($i + 3);
-        }
-
-        $co->then(function ($value) use (&$result) { $result = $value; });
-        P\queue()->run();
-        $this->assertEquals('19', $result);
-    }
-
-    public function testCanWaitOnPromiseAfterFulfilled()
-    {
-        $f = function () {
-            static $i = 0;
-            $i++;
-            return $p = new P\Promise(function () use (&$p, $i) {
-                $p->resolve($i . '-bar');
-            });
-        };
-
-        $promises = [];
-        for ($i = 0; $i < 20; $i++) {
-            $promises[] = $f();
-        }
-
-        $p = P\coroutine(function () use ($promises) {
-            yield new P\FulfilledPromise('foo!');
-            foreach ($promises as $promise) {
-                yield $promise;
-            }
-        });
-
-        $this->assertEquals('20-bar', $p->wait());
-    }
-
-    public function testCanWaitOnErroredPromises()
-    {
-        $p1 = new P\Promise(function () use (&$p1) { $p1->reject('a'); });
-        $p2 = new P\Promise(function () use (&$p2) { $p2->resolve('b'); });
-        $p3 = new P\Promise(function () use (&$p3) { $p3->resolve('c'); });
-        $p4 = new P\Promise(function () use (&$p4) { $p4->reject('d'); });
-        $p5 = new P\Promise(function () use (&$p5) { $p5->resolve('e'); });
-        $p6 = new P\Promise(function () use (&$p6) { $p6->reject('f'); });
-
-        $co = P\coroutine(function() use ($p1, $p2, $p3, $p4, $p5, $p6) {
-            try {
-                yield $p1;
-            } catch (\Exception $e) {
-                yield $p2;
-                try {
-                    yield $p3;
-                    yield $p4;
-                } catch (\Exception $e) {
-                    yield $p5;
-                    yield $p6;
-                }
-            }
-        });
-
-        $res = P\inspect($co);
-        $this->assertEquals('f', $res['reason']);
-    }
-
-    public function testCoroutineOtherwiseIntegrationTest()
-    {
-        $a = new P\Promise();
-        $b = new P\Promise();
-        $promise = P\coroutine(function () use ($a, $b) {
-            // Execute the pool of commands concurrently, and process errors.
-            yield $a;
-            yield $b;
-        })->otherwise(function (\Exception $e) {
-            // Throw errors from the operations as a specific Multipart error.
-            throw new \OutOfBoundsException('a', 0, $e);
-        });
-        $a->resolve('a');
-        $b->reject('b');
-        $reason = P\inspect($promise)['reason'];
-        $this->assertInstanceOf('OutOfBoundsException', $reason);
-        $this->assertInstanceOf('GuzzleHttp\Promise\RejectionException', $reason->getPrevious());
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/.gitignore b/core/vendor/guzzlehttp/psr7/.gitignore
deleted file mode 100644
index 83ec41e..0000000
--- a/core/vendor/guzzlehttp/psr7/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-phpunit.xml
-composer.phar
-composer.lock
-composer-test.lock
-vendor/
-build/artifacts/
-artifacts/
-docs/_build
-docs/*.pyc
-.idea
-.DS_STORE
diff --git a/core/vendor/guzzlehttp/psr7/.travis.yml b/core/vendor/guzzlehttp/psr7/.travis.yml
deleted file mode 100644
index b88f8da..0000000
--- a/core/vendor/guzzlehttp/psr7/.travis.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-language: php
-
-php:
-  - 5.4
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-sudo: false
-
-install:
-  - travis_retry composer install --no-interaction --prefer-source
-
-script: make test
-
-matrix:
-  allow_failures:
-    - php: hhvm
-  fast_finish: true
diff --git a/core/vendor/guzzlehttp/psr7/CHANGELOG.md b/core/vendor/guzzlehttp/psr7/CHANGELOG.md
deleted file mode 100644
index 642dc9a..0000000
--- a/core/vendor/guzzlehttp/psr7/CHANGELOG.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# CHANGELOG
-
-## 1.2.0 - 2015-08-15
-
-* Body as `"0"` is now properly added to a response.
-* Now allowing forward seeking in CachingStream.
-* Now properly parsing HTTP requests that contain proxy targets in
-  `parse_request`.
-* functions.php is now conditionally required.
-* user-info is no longer dropped when resolving URIs.
-
-## 1.1.0 - 2015-06-24
-
-* URIs can now be relative.
-* `multipart/form-data` headers are now overridden case-insensitively.
-* URI paths no longer encode the following characters because they are allowed
-  in URIs: "(", ")", "*", "!", "'"
-* A port is no longer added to a URI when the scheme is missing and no port is
-  present.
-
-## 1.0.0 - 2015-05-19
-
-Initial release.
-
-Currently unsupported:
-
-- `Psr\Http\Message\ServerRequestInterface`
-- `Psr\Http\Message\UploadedFileInterface`
diff --git a/core/vendor/guzzlehttp/psr7/LICENSE b/core/vendor/guzzlehttp/psr7/LICENSE
deleted file mode 100644
index 581d95f..0000000
--- a/core/vendor/guzzlehttp/psr7/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2015 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
-
-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/core/vendor/guzzlehttp/psr7/Makefile b/core/vendor/guzzlehttp/psr7/Makefile
deleted file mode 100644
index 9c21096..0000000
--- a/core/vendor/guzzlehttp/psr7/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-all: clean test
-
-test:
-	vendor/bin/phpunit $(TEST)
-
-coverage:
-	vendor/bin/phpunit --coverage-html=artifacts/coverage $(TEST)
-
-view-coverage:
-	open artifacts/coverage/index.html
-
-clean:
-	rm -rf artifacts/*
diff --git a/core/vendor/guzzlehttp/psr7/README.md b/core/vendor/guzzlehttp/psr7/README.md
deleted file mode 100644
index 0b30d5a..0000000
--- a/core/vendor/guzzlehttp/psr7/README.md
+++ /dev/null
@@ -1,580 +0,0 @@
-# PSR-7 Message Implementation
-
-This repository contains a partial [PSR-7](http://www.php-fig.org/psr/psr-7/)
-message implementation, several stream decorators, and some helpful
-functionality like query string parsing.  Currently missing
-ServerRequestInterface and UploadedFileInterface; a pull request for these features is welcome.
-
-
-# Stream implementation
-
-This package comes with a number of stream implementations and stream
-decorators.
-
-
-## AppendStream
-
-`GuzzleHttp\Psr7\AppendStream`
-
-Reads from multiple streams, one after the other.
-
-```php
-use GuzzleHttp\Psr7;
-
-$a = Psr7\stream_for('abc, ');
-$b = Psr7\stream_for('123.');
-$composed = new Psr7\AppendStream([$a, $b]);
-
-$composed->addStream(Psr7\stream_for(' Above all listen to me').
-
-echo $composed(); // abc, 123. Above all listen to me.
-```
-
-
-## BufferStream
-
-`GuzzleHttp\Psr7\BufferStream`
-
-Provides a buffer stream that can be written to to fill a buffer, and read
-from to remove bytes from the buffer.
-
-This stream returns a "hwm" metadata value that tells upstream consumers
-what the configured high water mark of the stream is, or the maximum
-preferred size of the buffer.
-
-```php
-use GuzzleHttp\Psr7;
-
-// When more than 1024 bytes are in the buffer, it will begin returning
-// false to writes. This is an indication that writers should slow down.
-$buffer = new Psr7\BufferStream(1024);
-```
-
-
-## CachingStream
-
-The CachingStream is used to allow seeking over previously read bytes on
-non-seekable streams. This can be useful when transferring a non-seekable
-entity body fails due to needing to rewind the stream (for example, resulting
-from a redirect). Data that is read from the remote stream will be buffered in
-a PHP temp stream so that previously read bytes are cached first in memory,
-then on disk.
-
-```php
-use GuzzleHttp\Psr7;
-
-$original = Psr7\stream_for(fopen('http://www.google.com', 'r'));
-$stream = new Psr7\CachingStream($original);
-
-$stream->read(1024);
-echo $stream->tell();
-// 1024
-
-$stream->seek(0);
-echo $stream->tell();
-// 0
-```
-
-
-## DroppingStream
-
-`GuzzleHttp\Psr7\DroppingStream`
-
-Stream decorator that begins dropping data once the size of the underlying
-stream becomes too full.
-
-```php
-use GuzzleHttp\Psr7;
-
-// Create an empty stream
-$stream = Psr7\stream_for();
-
-// Start dropping data when the stream has more than 10 bytes
-$dropping = new Psr7\DroppingStream($stream, 10);
-
-$stream->write('01234567890123456789');
-echo $stream; // 0123456789
-```
-
-
-## FnStream
-
-`GuzzleHttp\Psr7\FnStream`
-
-Compose stream implementations based on a hash of functions.
-
-Allows for easy testing and extension of a provided stream without needing to
-to create a concrete class for a simple extension point.
-
-```php
-
-use GuzzleHttp\Psr7;
-
-$stream = Psr7\stream_for('hi');
-$fnStream = Psr7\FnStream::decorate($stream, [
-    'rewind' => function () use ($stream) {
-        echo 'About to rewind - ';
-        $stream->rewind();
-        echo 'rewound!';
-    }
-]);
-
-$fnStream->rewind();
-// Outputs: About to rewind - rewound!
-```
-
-
-## InflateStream
-
-`GuzzleHttp\Psr7\InflateStream`
-
-Uses PHP's zlib.inflate filter to inflate deflate or gzipped content.
-
-This stream decorator skips the first 10 bytes of the given stream to remove
-the gzip header, converts the provided stream to a PHP stream resource,
-then appends the zlib.inflate filter. The stream is then converted back
-to a Guzzle stream resource to be used as a Guzzle stream.
-
-
-## LazyOpenStream
-
-`GuzzleHttp\Psr7\LazyOpenStream`
-
-Lazily reads or writes to a file that is opened only after an IO operation
-take place on the stream.
-
-```php
-use GuzzleHttp\Psr7;
-
-$stream = new Psr7\LazyOpenStream('/path/to/file', 'r');
-// The file has not yet been opened...
-
-echo $stream->read(10);
-// The file is opened and read from only when needed.
-```
-
-
-## LimitStream
-
-`GuzzleHttp\Psr7\LimitStream`
-
-LimitStream can be used to read a subset or slice of an existing stream object.
-This can be useful for breaking a large file into smaller pieces to be sent in
-chunks (e.g. Amazon S3's multipart upload API).
-
-```php
-use GuzzleHttp\Psr7;
-
-$original = Psr7\stream_for(fopen('/tmp/test.txt', 'r+'));
-echo $original->getSize();
-// >>> 1048576
-
-// Limit the size of the body to 1024 bytes and start reading from byte 2048
-$stream = new Psr7\LimitStream($original, 1024, 2048);
-echo $stream->getSize();
-// >>> 1024
-echo $stream->tell();
-// >>> 0
-```
-
-
-## MultipartStream
-
-`GuzzleHttp\Psr7\MultipartStream`
-
-Stream that when read returns bytes for a streaming multipart or
-multipart/form-data stream.
-
-
-## NoSeekStream
-
-`GuzzleHttp\Psr7\NoSeekStream`
-
-NoSeekStream wraps a stream and does not allow seeking.
-
-```php
-use GuzzleHttp\Psr7;
-
-$original = Psr7\stream_for('foo');
-$noSeek = new Psr7\NoSeekStream($original);
-
-echo $noSeek->read(3);
-// foo
-var_export($noSeek->isSeekable());
-// false
-$noSeek->seek(0);
-var_export($noSeek->read(3));
-// NULL
-```
-
-
-## PumpStream
-
-`GuzzleHttp\Psr7\PumpStream`
-
-Provides a read only stream that pumps data from a PHP callable.
-
-When invoking the provided callable, the PumpStream will pass the amount of
-data requested to read to the callable. The callable can choose to ignore
-this value and return fewer or more bytes than requested. Any extra data
-returned by the provided callable is buffered internally until drained using
-the read() function of the PumpStream. The provided callable MUST return
-false when there is no more data to read.
-
-
-## Implementing stream decorators
-
-Creating a stream decorator is very easy thanks to the
-`GuzzleHttp\Psr7\StreamDecoratorTrait`. This trait provides methods that
-implement `Psr\Http\Message\StreamInterface` by proxying to an underlying
-stream. Just `use` the `StreamDecoratorTrait` and implement your custom
-methods.
-
-For example, let's say we wanted to call a specific function each time the last
-byte is read from a stream. This could be implemented by overriding the
-`read()` method.
-
-```php
-use Psr\Http\Message\StreamInterface;
-use GuzzleHttp\Psr7\StreamDecoratorTrait;
-
-class EofCallbackStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    private $callback;
-
-    public function __construct(StreamInterface $stream, callable $cb)
-    {
-        $this->stream = $stream;
-        $this->callback = $cb;
-    }
-
-    public function read($length)
-    {
-        $result = $this->stream->read($length);
-
-        // Invoke the callback when EOF is hit.
-        if ($this->eof()) {
-            call_user_func($this->callback);
-        }
-
-        return $result;
-    }
-}
-```
-
-This decorator could be added to any existing stream and used like so:
-
-```php
-use GuzzleHttp\Psr7;
-
-$original = Psr7\stream_for('foo');
-
-$eofStream = new EofCallbackStream($original, function () {
-    echo 'EOF!';
-});
-
-$eofStream->read(2);
-$eofStream->read(1);
-// echoes "EOF!"
-$eofStream->seek(0);
-$eofStream->read(3);
-// echoes "EOF!"
-```
-
-
-## PHP StreamWrapper
-
-You can use the `GuzzleHttp\Psr7\StreamWrapper` class if you need to use a
-PSR-7 stream as a PHP stream resource.
-
-Use the `GuzzleHttp\Psr7\StreamWrapper::getResource()` method to create a PHP
-stream from a PSR-7 stream.
-
-```php
-use GuzzleHttp\Psr7\StreamWrapper;
-
-$stream = GuzzleHttp\Psr7\stream_for('hello!');
-$resource = StreamWrapper::getResource($stream);
-echo fread($resource, 6); // outputs hello!
-```
-
-
-# Function API
-
-There are various functions available under the `GuzzleHttp\Psr7` namespace.
-
-
-## `function str`
-
-`function str(MessageInterface $message)`
-
-Returns the string representation of an HTTP message.
-
-```php
-$request = new GuzzleHttp\Psr7\Request('GET', 'http://example.com');
-echo GuzzleHttp\Psr7\str($request);
-```
-
-
-## `function uri_for`
-
-`function uri_for($uri)`
-
-This function accepts a string or `Psr\Http\Message\UriInterface` and returns a
-UriInterface for the given value. If the value is already a `UriInterface`, it
-is returned as-is.
-
-```php
-$uri = GuzzleHttp\Psr7\uri_for('http://example.com');
-assert($uri === GuzzleHttp\Psr7\uri_for($uri));
-```
-
-
-## `function stream_for`
-
-`function stream_for($resource = '', array $options = [])`
-
-Create a new stream based on the input type.
-
-Options is an associative array that can contain the following keys:
-
-* - metadata: Array of custom metadata.
-* - size: Size of the stream.
-
-This method accepts the following `$resource` types:
-
-- `Psr\Http\Message\StreamInterface`: Returns the value as-is.
-- `string`: Creates a stream object that uses the given string as the contents.
-- `resource`: Creates a stream object that wraps the given PHP stream resource.
-- `Iterator`: If the provided value implements `Iterator`, then a read-only
-  stream object will be created that wraps the given iterable. Each time the
-  stream is read from, data from the iterator will fill a buffer and will be
-  continuously called until the buffer is equal to the requested read size.
-  Subsequent read calls will first read from the buffer and then call `next`
-  on the underlying iterator until it is exhausted.
-- `object` with `__toString()`: If the object has the `__toString()` method,
-  the object will be cast to a string and then a stream will be returned that
-  uses the string value.
-- `NULL`: When `null` is passed, an empty stream object is returned.
-- `callable` When a callable is passed, a read-only stream object will be
-  created that invokes the given callable. The callable is invoked with the
-  number of suggested bytes to read. The callable can return any number of
-  bytes, but MUST return `false` when there is no more data to return. The
-  stream object that wraps the callable will invoke the callable until the
-  number of requested bytes are available. Any additional bytes will be
-  buffered and used in subsequent reads.
-
-```php
-$stream = GuzzleHttp\Psr7\stream_for('foo');
-$stream = GuzzleHttp\Psr7\stream_for(fopen('/path/to/file', 'r'));
-
-$generator function ($bytes) {
-    for ($i = 0; $i < $bytes; $i++) {
-        yield ' ';
-    }
-}
-
-$stream = GuzzleHttp\Psr7\stream_for($generator(100));
-```
-
-
-## `function parse_header`
-
-`function parse_header($header)`
-
-Parse an array of header values containing ";" separated data into an array of
-associative arrays representing the header key value pair data of the header.
-When a parameter does not contain a value, but just contains a key, this
-function will inject a key with a '' string value.
-
-
-## `function normalize_header`
-
-`function normalize_header($header)`
-
-Converts an array of header values that may contain comma separated headers
-into an array of headers with no comma separated values.
-
-
-## `function modify_request`
-
-`function modify_request(RequestInterface $request, array $changes)`
-
-Clone and modify a request with the given changes. This method is useful for
-reducing the number of clones needed to mutate a message.
-
-The changes can be one of:
-
-- method: (string) Changes the HTTP method.
-- set_headers: (array) Sets the given headers.
-- remove_headers: (array) Remove the given headers.
-- body: (mixed) Sets the given body.
-- uri: (UriInterface) Set the URI.
-- query: (string) Set the query string value of the URI.
-- version: (string) Set the protocol version.
-
-
-## `function rewind_body`
-
-`function rewind_body(MessageInterface $message)`
-
-Attempts to rewind a message body and throws an exception on failure. The body
-of the message will only be rewound if a call to `tell()` returns a value other
-than `0`.
-
-
-## `function try_fopen`
-
-`function try_fopen($filename, $mode)`
-
-Safely opens a PHP stream resource using a filename.
-
-When fopen fails, PHP normally raises a warning. This function adds an error
-handler that checks for errors and throws an exception instead.
-
-
-## `function copy_to_string`
-
-`function copy_to_string(StreamInterface $stream, $maxLen = -1)`
-
-Copy the contents of a stream into a string until the given number of bytes
-have been read.
-
-
-## `function copy_to_stream`
-
-`function copy_to_stream(StreamInterface $source, StreamInterface $dest, $maxLen = -1)`
-
-Copy the contents of a stream into another stream until the given number of
-bytes have been read.
-
-
-## `function hash`
-
-`function hash(StreamInterface $stream, $algo, $rawOutput = false)`
-
-Calculate a hash of a Stream. This method reads the entire stream to calculate
-a rolling hash (based on PHP's hash_init functions).
-
-
-## `function readline`
-
-`function readline(StreamInterface $stream, $maxLength = null)`
-
-Read a line from the stream up to the maximum allowed buffer length.
-
-
-## `function parse_request`
-
-`function parse_request($message)`
-
-Parses a request message string into a request object.
-
-
-## `function parse_response`
-
-`function parse_response($message)`
-
-Parses a response message string into a response object.
-
-
-## `function parse_query`
-
-`function parse_query($str, $urlEncoding = true)`
-
-Parse a query string into an associative array.
-
-If multiple values are found for the same key, the value of that key value pair
-will become an array. This function does not parse nested PHP style arrays into
-an associative array (e.g., `foo[a]=1&foo[b]=2` will be parsed into
-`['foo[a]' => '1', 'foo[b]' => '2']`).
-
-
-## `function build_query`
-
-`function build_query(array $params, $encoding = PHP_QUERY_RFC3986)`
-
-Build a query string from an array of key value pairs.
-
-This function can use the return value of parseQuery() to build a query string.
-This function does not modify the provided keys when an array is encountered
-(like http_build_query would).
-
-
-## `function mimetype_from_filename`
-
-`function mimetype_from_filename($filename)`
-
-Determines the mimetype of a file by looking at its extension.
-
-
-## `function mimetype_from_extension`
-
-`function mimetype_from_extension($extension)`
-
-Maps a file extensions to a mimetype.
-
-
-# Static URI methods
-
-The `GuzzleHttp\Psr7\Uri` class has several static methods to manipulate URIs.
-
-
-## `GuzzleHttp\Psr7\Uri::removeDotSegments`
-
-`public static function removeDotSegments($path) -> UriInterface`
-
-Removes dot segments from a path and returns the new path.
-
-See http://tools.ietf.org/html/rfc3986#section-5.2.4
-
-
-## `GuzzleHttp\Psr7\Uri::resolve`
-
-`public static function resolve(UriInterface $base, $rel) -> UriInterface`
-
-Resolve a base URI with a relative URI and return a new URI.
-
-See http://tools.ietf.org/html/rfc3986#section-5
-
-
-## `GuzzleHttp\Psr7\Uri::withQueryValue`
-
-`public static function withQueryValue(UriInterface $uri, $key, $value) -> UriInterface`
-
-Create a new URI with a specific query string value.
-
-Any existing query string values that exactly match the provided key are
-removed and replaced with the given key value pair.
-
-Note: this function will convert "=" to "%3D" and "&" to "%26".
-
-
-## `GuzzleHttp\Psr7\Uri::withoutQueryValue`
-
-`public static function withoutQueryValue(UriInterface $uri, $key, $value) -> UriInterface`
-
-Create a new URI with a specific query string value removed.
-
-Any existing query string values that exactly match the provided key are
-removed.
-
-Note: this function will convert "=" to "%3D" and "&" to "%26".
-
-
-## `GuzzleHttp\Psr7\Uri::fromParts`
-
-`public static function fromParts(array $parts) -> UriInterface`
-
-Create a `GuzzleHttp\Psr7\Uri` object from a hash of `parse_url` parts.
-
-
-# Not Implemented
-
-A few aspects of PSR-7 are not implemented in this project. A pull request for
-any of these features is welcome:
-
-- `Psr\Http\Message\ServerRequestInterface`
-- `Psr\Http\Message\UploadedFileInterface`
diff --git a/core/vendor/guzzlehttp/psr7/composer.json b/core/vendor/guzzlehttp/psr7/composer.json
deleted file mode 100644
index f2e9d4c..0000000
--- a/core/vendor/guzzlehttp/psr7/composer.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "name": "guzzlehttp/psr7",
-    "type": "library",
-    "description": "PSR-7 message implementation",
-    "keywords": ["message", "stream", "http", "uri"],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Michael Dowling",
-            "email": "mtdowling@gmail.com",
-            "homepage": "https://github.com/mtdowling"
-        }
-    ],
-    "require": {
-        "php": ">=5.4.0",
-        "psr/http-message": "~1.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.0"
-    },
-    "provide": {
-        "psr/http-message-implementation": "1.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "GuzzleHttp\\Psr7\\": "src/"
-        },
-        "files": ["src/functions_include.php"]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0-dev"
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/phpunit.xml.dist b/core/vendor/guzzlehttp/psr7/phpunit.xml.dist
deleted file mode 100644
index 500cd53..0000000
--- a/core/vendor/guzzlehttp/psr7/phpunit.xml.dist
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit bootstrap="./tests/bootstrap.php"
-         colors="true">
-  <testsuites>
-    <testsuite>
-      <directory>tests</directory>
-    </testsuite>
-  </testsuites>
-  <filter>
-    <whitelist>
-      <directory suffix=".php">src</directory>
-      <exclude>
-        <directory suffix="Interface.php">src/</directory>
-      </exclude>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/guzzlehttp/psr7/src/AppendStream.php b/core/vendor/guzzlehttp/psr7/src/AppendStream.php
deleted file mode 100644
index 23039fd..0000000
--- a/core/vendor/guzzlehttp/psr7/src/AppendStream.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Reads from multiple streams, one after the other.
- *
- * This is a read-only stream decorator.
- */
-class AppendStream implements StreamInterface
-{
-    /** @var StreamInterface[] Streams being decorated */
-    private $streams = [];
-
-    private $seekable = true;
-    private $current = 0;
-    private $pos = 0;
-    private $detached = false;
-
-    /**
-     * @param StreamInterface[] $streams Streams to decorate. Each stream must
-     *                                   be readable.
-     */
-    public function __construct(array $streams = [])
-    {
-        foreach ($streams as $stream) {
-            $this->addStream($stream);
-        }
-    }
-
-    public function __toString()
-    {
-        try {
-            $this->rewind();
-            return $this->getContents();
-        } catch (\Exception $e) {
-            return '';
-        }
-    }
-
-    /**
-     * Add a stream to the AppendStream
-     *
-     * @param StreamInterface $stream Stream to append. Must be readable.
-     *
-     * @throws \InvalidArgumentException if the stream is not readable
-     */
-    public function addStream(StreamInterface $stream)
-    {
-        if (!$stream->isReadable()) {
-            throw new \InvalidArgumentException('Each stream must be readable');
-        }
-
-        // The stream is only seekable if all streams are seekable
-        if (!$stream->isSeekable()) {
-            $this->seekable = false;
-        }
-
-        $this->streams[] = $stream;
-    }
-
-    public function getContents()
-    {
-        return copy_to_string($this);
-    }
-
-    /**
-     * Closes each attached stream.
-     *
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        $this->pos = $this->current = 0;
-
-        foreach ($this->streams as $stream) {
-            $stream->close();
-        }
-
-        $this->streams = [];
-    }
-
-    /**
-     * Detaches each attached stream
-     *
-     * {@inheritdoc}
-     */
-    public function detach()
-    {
-        $this->close();
-        $this->detached = true;
-    }
-
-    public function tell()
-    {
-        return $this->pos;
-    }
-
-    /**
-     * Tries to calculate the size by adding the size of each stream.
-     *
-     * If any of the streams do not return a valid number, then the size of the
-     * append stream cannot be determined and null is returned.
-     *
-     * {@inheritdoc}
-     */
-    public function getSize()
-    {
-        $size = 0;
-
-        foreach ($this->streams as $stream) {
-            $s = $stream->getSize();
-            if ($s === null) {
-                return null;
-            }
-            $size += $s;
-        }
-
-        return $size;
-    }
-
-    public function eof()
-    {
-        return !$this->streams ||
-            ($this->current >= count($this->streams) - 1 &&
-             $this->streams[$this->current]->eof());
-    }
-
-    public function rewind()
-    {
-        $this->seek(0);
-    }
-
-    /**
-     * Attempts to seek to the given position. Only supports SEEK_SET.
-     *
-     * {@inheritdoc}
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if (!$this->seekable) {
-            throw new \RuntimeException('This AppendStream is not seekable');
-        } elseif ($whence !== SEEK_SET) {
-            throw new \RuntimeException('The AppendStream can only seek with SEEK_SET');
-        }
-
-        $this->pos = $this->current = 0;
-
-        // Rewind each stream
-        foreach ($this->streams as $i => $stream) {
-            try {
-                $stream->rewind();
-            } catch (\Exception $e) {
-                throw new \RuntimeException('Unable to seek stream '
-                    . $i . ' of the AppendStream', 0, $e);
-            }
-        }
-
-        // Seek to the actual position by reading from each stream
-        while ($this->pos < $offset && !$this->eof()) {
-            $result = $this->read(min(8096, $offset - $this->pos));
-            if ($result === '') {
-                break;
-            }
-        }
-    }
-
-    /**
-     * Reads from all of the appended streams until the length is met or EOF.
-     *
-     * {@inheritdoc}
-     */
-    public function read($length)
-    {
-        $buffer = '';
-        $total = count($this->streams) - 1;
-        $remaining = $length;
-        $progressToNext = false;
-
-        while ($remaining > 0) {
-
-            // Progress to the next stream if needed.
-            if ($progressToNext || $this->streams[$this->current]->eof()) {
-                $progressToNext = false;
-                if ($this->current === $total) {
-                    break;
-                }
-                $this->current++;
-            }
-
-            $result = $this->streams[$this->current]->read($remaining);
-
-            // Using a loose comparison here to match on '', false, and null
-            if ($result == null) {
-                $progressToNext = true;
-                continue;
-            }
-
-            $buffer .= $result;
-            $remaining = $length - strlen($buffer);
-        }
-
-        $this->pos += strlen($buffer);
-
-        return $buffer;
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    public function isSeekable()
-    {
-        return $this->seekable;
-    }
-
-    public function write($string)
-    {
-        throw new \RuntimeException('Cannot write to an AppendStream');
-    }
-
-    public function getMetadata($key = null)
-    {
-        return $key ? null : [];
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/BufferStream.php b/core/vendor/guzzlehttp/psr7/src/BufferStream.php
deleted file mode 100644
index af4d4c2..0000000
--- a/core/vendor/guzzlehttp/psr7/src/BufferStream.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Provides a buffer stream that can be written to to fill a buffer, and read
- * from to remove bytes from the buffer.
- *
- * This stream returns a "hwm" metadata value that tells upstream consumers
- * what the configured high water mark of the stream is, or the maximum
- * preferred size of the buffer.
- */
-class BufferStream implements StreamInterface
-{
-    private $hwm;
-    private $buffer = '';
-
-    /**
-     * @param int $hwm High water mark, representing the preferred maximum
-     *                 buffer size. If the size of the buffer exceeds the high
-     *                 water mark, then calls to write will continue to succeed
-     *                 but will return false to inform writers to slow down
-     *                 until the buffer has been drained by reading from it.
-     */
-    public function __construct($hwm = 16384)
-    {
-        $this->hwm = $hwm;
-    }
-
-    public function __toString()
-    {
-        return $this->getContents();
-    }
-
-    public function getContents()
-    {
-        $buffer = $this->buffer;
-        $this->buffer = '';
-
-        return $buffer;
-    }
-
-    public function close()
-    {
-        $this->buffer = '';
-    }
-
-    public function detach()
-    {
-        $this->close();
-    }
-
-    public function getSize()
-    {
-        return strlen($this->buffer);
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function isWritable()
-    {
-        return true;
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-
-    public function rewind()
-    {
-        $this->seek(0);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        throw new \RuntimeException('Cannot seek a BufferStream');
-    }
-
-    public function eof()
-    {
-        return strlen($this->buffer) === 0;
-    }
-
-    public function tell()
-    {
-        throw new \RuntimeException('Cannot determine the position of a BufferStream');
-    }
-
-    /**
-     * Reads data from the buffer.
-     */
-    public function read($length)
-    {
-        $currentLength = strlen($this->buffer);
-
-        if ($length >= $currentLength) {
-            // No need to slice the buffer because we don't have enough data.
-            $result = $this->buffer;
-            $this->buffer = '';
-        } else {
-            // Slice up the result to provide a subset of the buffer.
-            $result = substr($this->buffer, 0, $length);
-            $this->buffer = substr($this->buffer, $length);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Writes data to the buffer.
-     */
-    public function write($string)
-    {
-        $this->buffer .= $string;
-
-        // TODO: What should happen here?
-        if (strlen($this->buffer) >= $this->hwm) {
-            return false;
-        }
-
-        return strlen($string);
-    }
-
-    public function getMetadata($key = null)
-    {
-        if ($key == 'hwm') {
-            return $this->hwm;
-        }
-
-        return $key ? null : [];
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/CachingStream.php b/core/vendor/guzzlehttp/psr7/src/CachingStream.php
deleted file mode 100644
index 796d581..0000000
--- a/core/vendor/guzzlehttp/psr7/src/CachingStream.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Stream decorator that can cache previously read bytes from a sequentially
- * read stream.
- */
-class CachingStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var StreamInterface Stream being wrapped */
-    private $remoteStream;
-
-    /** @var int Number of bytes to skip reading due to a write on the buffer */
-    private $skipReadBytes = 0;
-
-    /**
-     * We will treat the buffer object as the body of the stream
-     *
-     * @param StreamInterface $stream Stream to cache
-     * @param StreamInterface $target Optionally specify where data is cached
-     */
-    public function __construct(
-        StreamInterface $stream,
-        StreamInterface $target = null
-    ) {
-        $this->remoteStream = $stream;
-        $this->stream = $target ?: new Stream(fopen('php://temp', 'r+'));
-    }
-
-    public function getSize()
-    {
-        return max($this->stream->getSize(), $this->remoteStream->getSize());
-    }
-
-    public function rewind()
-    {
-        $this->seek(0);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if ($whence == SEEK_SET) {
-            $byte = $offset;
-        } elseif ($whence == SEEK_CUR) {
-            $byte = $offset + $this->tell();
-        } elseif ($whence == SEEK_END) {
-            $size = $this->remoteStream->getSize();
-            if ($size === null) {
-                $size = $this->cacheEntireStream();
-            }
-            // Because 0 is the first byte, we seek to size - 1.
-            $byte = $size - 1 - $offset;
-        } else {
-            throw new \InvalidArgumentException('Invalid whence');
-        }
-
-        $diff = $byte - $this->stream->getSize();
-
-        if ($diff > 0) {
-            // If the seek byte is greater the number of read bytes, then read
-            // the difference of bytes to cache the bytes and inherently seek.
-            $this->read($diff);
-        } else {
-            // We can just do a normal seek since we've already seen this byte.
-            $this->stream->seek($byte);
-        }
-    }
-
-    public function read($length)
-    {
-        // Perform a regular read on any previously read data from the buffer
-        $data = $this->stream->read($length);
-        $remaining = $length - strlen($data);
-
-        // More data was requested so read from the remote stream
-        if ($remaining) {
-            // If data was written to the buffer in a position that would have
-            // been filled from the remote stream, then we must skip bytes on
-            // the remote stream to emulate overwriting bytes from that
-            // position. This mimics the behavior of other PHP stream wrappers.
-            $remoteData = $this->remoteStream->read(
-                $remaining + $this->skipReadBytes
-            );
-
-            if ($this->skipReadBytes) {
-                $len = strlen($remoteData);
-                $remoteData = substr($remoteData, $this->skipReadBytes);
-                $this->skipReadBytes = max(0, $this->skipReadBytes - $len);
-            }
-
-            $data .= $remoteData;
-            $this->stream->write($remoteData);
-        }
-
-        return $data;
-    }
-
-    public function write($string)
-    {
-        // When appending to the end of the currently read stream, you'll want
-        // to skip bytes from being read from the remote stream to emulate
-        // other stream wrappers. Basically replacing bytes of data of a fixed
-        // length.
-        $overflow = (strlen($string) + $this->tell()) - $this->remoteStream->tell();
-        if ($overflow > 0) {
-            $this->skipReadBytes += $overflow;
-        }
-
-        return $this->stream->write($string);
-    }
-
-    public function eof()
-    {
-        return $this->stream->eof() && $this->remoteStream->eof();
-    }
-
-    /**
-     * Close both the remote stream and buffer stream
-     */
-    public function close()
-    {
-        $this->remoteStream->close() && $this->stream->close();
-    }
-
-    private function cacheEntireStream()
-    {
-        $target = new FnStream(['write' => 'strlen']);
-        copy_to_stream($this, $target);
-
-        return $this->tell();
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/DroppingStream.php b/core/vendor/guzzlehttp/psr7/src/DroppingStream.php
deleted file mode 100644
index 8935c80..0000000
--- a/core/vendor/guzzlehttp/psr7/src/DroppingStream.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Stream decorator that begins dropping data once the size of the underlying
- * stream becomes too full.
- */
-class DroppingStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    private $maxLength;
-
-    /**
-     * @param StreamInterface $stream    Underlying stream to decorate.
-     * @param int             $maxLength Maximum size before dropping data.
-     */
-    public function __construct(StreamInterface $stream, $maxLength)
-    {
-        $this->stream = $stream;
-        $this->maxLength = $maxLength;
-    }
-
-    public function write($string)
-    {
-        $diff = $this->maxLength - $this->stream->getSize();
-
-        // Begin returning 0 when the underlying stream is too large.
-        if ($diff <= 0) {
-            return 0;
-        }
-
-        // Write the stream or a subset of the stream if needed.
-        if (strlen($string) < $diff) {
-            return $this->stream->write($string);
-        }
-
-        return $this->stream->write(substr($string, 0, $diff));
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/FnStream.php b/core/vendor/guzzlehttp/psr7/src/FnStream.php
deleted file mode 100644
index cc9b445..0000000
--- a/core/vendor/guzzlehttp/psr7/src/FnStream.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Compose stream implementations based on a hash of functions.
- *
- * Allows for easy testing and extension of a provided stream without needing
- * to create a concrete class for a simple extension point.
- */
-class FnStream implements StreamInterface
-{
-    /** @var array */
-    private $methods;
-
-    /** @var array Methods that must be implemented in the given array */
-    private static $slots = ['__toString', 'close', 'detach', 'rewind',
-        'getSize', 'tell', 'eof', 'isSeekable', 'seek', 'isWritable', 'write',
-        'isReadable', 'read', 'getContents', 'getMetadata'];
-
-    /**
-     * @param array $methods Hash of method name to a callable.
-     */
-    public function __construct(array $methods)
-    {
-        $this->methods = $methods;
-
-        // Create the functions on the class
-        foreach ($methods as $name => $fn) {
-            $this->{'_fn_' . $name} = $fn;
-        }
-    }
-
-    /**
-     * Lazily determine which methods are not implemented.
-     * @throws \BadMethodCallException
-     */
-    public function __get($name)
-    {
-        throw new \BadMethodCallException(str_replace('_fn_', '', $name)
-            . '() is not implemented in the FnStream');
-    }
-
-    /**
-     * The close method is called on the underlying stream only if possible.
-     */
-    public function __destruct()
-    {
-        if (isset($this->_fn_close)) {
-            call_user_func($this->_fn_close);
-        }
-    }
-
-    /**
-     * Adds custom functionality to an underlying stream by intercepting
-     * specific method calls.
-     *
-     * @param StreamInterface $stream  Stream to decorate
-     * @param array           $methods Hash of method name to a closure
-     *
-     * @return FnStream
-     */
-    public static function decorate(StreamInterface $stream, array $methods)
-    {
-        // If any of the required methods were not provided, then simply
-        // proxy to the decorated stream.
-        foreach (array_diff(self::$slots, array_keys($methods)) as $diff) {
-            $methods[$diff] = [$stream, $diff];
-        }
-
-        return new self($methods);
-    }
-
-    public function __toString()
-    {
-        return call_user_func($this->_fn___toString);
-    }
-
-    public function close()
-    {
-        return call_user_func($this->_fn_close);
-    }
-
-    public function detach()
-    {
-        return call_user_func($this->_fn_detach);
-    }
-
-    public function getSize()
-    {
-        return call_user_func($this->_fn_getSize);
-    }
-
-    public function tell()
-    {
-        return call_user_func($this->_fn_tell);
-    }
-
-    public function eof()
-    {
-        return call_user_func($this->_fn_eof);
-    }
-
-    public function isSeekable()
-    {
-        return call_user_func($this->_fn_isSeekable);
-    }
-
-    public function rewind()
-    {
-        call_user_func($this->_fn_rewind);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        call_user_func($this->_fn_seek, $offset, $whence);
-    }
-
-    public function isWritable()
-    {
-        return call_user_func($this->_fn_isWritable);
-    }
-
-    public function write($string)
-    {
-        return call_user_func($this->_fn_write, $string);
-    }
-
-    public function isReadable()
-    {
-        return call_user_func($this->_fn_isReadable);
-    }
-
-    public function read($length)
-    {
-        return call_user_func($this->_fn_read, $length);
-    }
-
-    public function getContents()
-    {
-        return call_user_func($this->_fn_getContents);
-    }
-
-    public function getMetadata($key = null)
-    {
-        return call_user_func($this->_fn_getMetadata, $key);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/InflateStream.php b/core/vendor/guzzlehttp/psr7/src/InflateStream.php
deleted file mode 100644
index 2c8628b..0000000
--- a/core/vendor/guzzlehttp/psr7/src/InflateStream.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Uses PHP's zlib.inflate filter to inflate deflate or gzipped content.
- *
- * This stream decorator skips the first 10 bytes of the given stream to remove
- * the gzip header, converts the provided stream to a PHP stream resource,
- * then appends the zlib.inflate filter. The stream is then converted back
- * to a Guzzle stream resource to be used as a Guzzle stream.
- *
- * @link http://tools.ietf.org/html/rfc1952
- * @link http://php.net/manual/en/filters.compression.php
- */
-class InflateStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    public function __construct(StreamInterface $stream)
-    {
-        // Skip the first 10 bytes
-        $stream = new LimitStream($stream, -1, 10);
-        $resource = StreamWrapper::getResource($stream);
-        stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ);
-        $this->stream = new Stream($resource);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/LazyOpenStream.php b/core/vendor/guzzlehttp/psr7/src/LazyOpenStream.php
deleted file mode 100644
index 02cec3a..0000000
--- a/core/vendor/guzzlehttp/psr7/src/LazyOpenStream.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Lazily reads or writes to a file that is opened only after an IO operation
- * take place on the stream.
- */
-class LazyOpenStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var string File to open */
-    private $filename;
-
-    /** @var string $mode */
-    private $mode;
-
-    /**
-     * @param string $filename File to lazily open
-     * @param string $mode     fopen mode to use when opening the stream
-     */
-    public function __construct($filename, $mode)
-    {
-        $this->filename = $filename;
-        $this->mode = $mode;
-    }
-
-    /**
-     * Creates the underlying stream lazily when required.
-     *
-     * @return StreamInterface
-     */
-    protected function createStream()
-    {
-        return stream_for(try_fopen($this->filename, $this->mode));
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/LimitStream.php b/core/vendor/guzzlehttp/psr7/src/LimitStream.php
deleted file mode 100644
index 7f2298b..0000000
--- a/core/vendor/guzzlehttp/psr7/src/LimitStream.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-
-/**
- * Decorator used to return only a subset of a stream
- */
-class LimitStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var int Offset to start reading from */
-    private $offset;
-
-    /** @var int Limit the number of bytes that can be read */
-    private $limit;
-
-    /**
-     * @param StreamInterface $stream Stream to wrap
-     * @param int             $limit  Total number of bytes to allow to be read
-     *                                from the stream. Pass -1 for no limit.
-     * @param int|null        $offset Position to seek to before reading (only
-     *                                works on seekable streams).
-     */
-    public function __construct(
-        StreamInterface $stream,
-        $limit = -1,
-        $offset = 0
-    ) {
-        $this->stream = $stream;
-        $this->setLimit($limit);
-        $this->setOffset($offset);
-    }
-
-    public function eof()
-    {
-        // Always return true if the underlying stream is EOF
-        if ($this->stream->eof()) {
-            return true;
-        }
-
-        // No limit and the underlying stream is not at EOF
-        if ($this->limit == -1) {
-            return false;
-        }
-
-        return $this->stream->tell() >= $this->offset + $this->limit;
-    }
-
-    /**
-     * Returns the size of the limited subset of data
-     * {@inheritdoc}
-     */
-    public function getSize()
-    {
-        if (null === ($length = $this->stream->getSize())) {
-            return null;
-        } elseif ($this->limit == -1) {
-            return $length - $this->offset;
-        } else {
-            return min($this->limit, $length - $this->offset);
-        }
-    }
-
-    /**
-     * Allow for a bounded seek on the read limited stream
-     * {@inheritdoc}
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if ($whence !== SEEK_SET || $offset < 0) {
-            throw new \RuntimeException(sprintf(
-                'Cannot seek to offset % with whence %s',
-                $offset,
-                $whence
-            ));
-        }
-
-        $offset += $this->offset;
-
-        if ($this->limit !== -1) {
-            if ($offset > $this->offset + $this->limit) {
-                $offset = $this->offset + $this->limit;
-            }
-        }
-
-        $this->stream->seek($offset);
-    }
-
-    /**
-     * Give a relative tell()
-     * {@inheritdoc}
-     */
-    public function tell()
-    {
-        return $this->stream->tell() - $this->offset;
-    }
-
-    /**
-     * Set the offset to start limiting from
-     *
-     * @param int $offset Offset to seek to and begin byte limiting from
-     *
-     * @throws \RuntimeException if the stream cannot be seeked.
-     */
-    public function setOffset($offset)
-    {
-        $current = $this->stream->tell();
-
-        if ($current !== $offset) {
-            // If the stream cannot seek to the offset position, then read to it
-            if ($this->stream->isSeekable()) {
-                $this->stream->seek($offset);
-            } elseif ($current > $offset) {
-                throw new \RuntimeException("Could not seek to stream offset $offset");
-            } else {
-                $this->stream->read($offset - $current);
-            }
-        }
-
-        $this->offset = $offset;
-    }
-
-    /**
-     * Set the limit of bytes that the decorator allows to be read from the
-     * stream.
-     *
-     * @param int $limit Number of bytes to allow to be read from the stream.
-     *                   Use -1 for no limit.
-     */
-    public function setLimit($limit)
-    {
-        $this->limit = $limit;
-    }
-
-    public function read($length)
-    {
-        if ($this->limit == -1) {
-            return $this->stream->read($length);
-        }
-
-        // Check if the current position is less than the total allowed
-        // bytes + original offset
-        $remaining = ($this->offset + $this->limit) - $this->stream->tell();
-        if ($remaining > 0) {
-            // Only return the amount of requested data, ensuring that the byte
-            // limit is not exceeded
-            return $this->stream->read(min($remaining, $length));
-        }
-
-        return '';
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/MessageTrait.php b/core/vendor/guzzlehttp/psr7/src/MessageTrait.php
deleted file mode 100644
index 123205c..0000000
--- a/core/vendor/guzzlehttp/psr7/src/MessageTrait.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Trait implementing functionality common to requests and responses.
- */
-trait MessageTrait
-{
-    /** @var array Cached HTTP header collection with lowercase key to values */
-    private $headers = [];
-
-    /** @var array Actual key to list of values per header. */
-    private $headerLines = [];
-
-    /** @var string */
-    private $protocol = '1.1';
-
-    /** @var StreamInterface */
-    private $stream;
-
-    public function getProtocolVersion()
-    {
-        return $this->protocol;
-    }
-
-    public function withProtocolVersion($version)
-    {
-        if ($this->protocol === $version) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->protocol = $version;
-        return $new;
-    }
-
-    public function getHeaders()
-    {
-        return $this->headerLines;
-    }
-
-    public function hasHeader($header)
-    {
-        return isset($this->headers[strtolower($header)]);
-    }
-
-    public function getHeader($header)
-    {
-        $name = strtolower($header);
-        return isset($this->headers[$name]) ? $this->headers[$name] : [];
-    }
-
-    public function getHeaderLine($header)
-    {
-        return implode(', ', $this->getHeader($header));
-    }
-
-    public function withHeader($header, $value)
-    {
-        $new = clone $this;
-        $header = trim($header);
-        $name = strtolower($header);
-
-        if (!is_array($value)) {
-            $new->headers[$name] = [trim($value)];
-        } else {
-            $new->headers[$name] = $value;
-            foreach ($new->headers[$name] as &$v) {
-                $v = trim($v);
-            }
-        }
-
-        // Remove the header lines.
-        foreach (array_keys($new->headerLines) as $key) {
-            if (strtolower($key) === $name) {
-                unset($new->headerLines[$key]);
-            }
-        }
-
-        // Add the header line.
-        $new->headerLines[$header] = $new->headers[$name];
-
-        return $new;
-    }
-
-    public function withAddedHeader($header, $value)
-    {
-        if (!$this->hasHeader($header)) {
-            return $this->withHeader($header, $value);
-        }
-
-        $new = clone $this;
-        $new->headers[strtolower($header)][] = $value;
-        $new->headerLines[$header][] = $value;
-        return $new;
-    }
-
-    public function withoutHeader($header)
-    {
-        if (!$this->hasHeader($header)) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $name = strtolower($header);
-        unset($new->headers[$name]);
-
-        foreach (array_keys($new->headerLines) as $key) {
-            if (strtolower($key) === $name) {
-                unset($new->headerLines[$key]);
-            }
-        }
-
-        return $new;
-    }
-
-    public function getBody()
-    {
-        if (!$this->stream) {
-            $this->stream = stream_for('');
-        }
-
-        return $this->stream;
-    }
-
-    public function withBody(StreamInterface $body)
-    {
-        if ($body === $this->stream) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->stream = $body;
-        return $new;
-    }
-
-    private function setHeaders(array $headers)
-    {
-        $this->headerLines = $this->headers = [];
-        foreach ($headers as $header => $value) {
-            $header = trim($header);
-            $name = strtolower($header);
-            if (!is_array($value)) {
-                $value = trim($value);
-                $this->headers[$name][] = $value;
-                $this->headerLines[$header][] = $value;
-            } else {
-                foreach ($value as $v) {
-                    $v = trim($v);
-                    $this->headers[$name][] = $v;
-                    $this->headerLines[$header][] = $v;
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/MultipartStream.php b/core/vendor/guzzlehttp/psr7/src/MultipartStream.php
deleted file mode 100644
index fd006ec..0000000
--- a/core/vendor/guzzlehttp/psr7/src/MultipartStream.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Stream that when read returns bytes for a streaming multipart or
- * multipart/form-data stream.
- */
-class MultipartStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    private $boundary;
-
-    /**
-     * @param array  $elements Array of associative arrays, each containing a
-     *                         required "name" key mapping to the form field,
-     *                         name, a required "contents" key mapping to a
-     *                         StreamInterface/resource/string, an optional
-     *                         "headers" associative array of custom headers,
-     *                         and an optional "filename" key mapping to a
-     *                         string to send as the filename in the part.
-     * @param string $boundary You can optionally provide a specific boundary
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function __construct(array $elements = [], $boundary = null)
-    {
-        $this->boundary = $boundary ?: uniqid();
-        $this->stream = $this->createStream($elements);
-    }
-
-    /**
-     * Get the boundary
-     *
-     * @return string
-     */
-    public function getBoundary()
-    {
-        return $this->boundary;
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    /**
-     * Get the headers needed before transferring the content of a POST file
-     */
-    private function getHeaders(array $headers)
-    {
-        $str = '';
-        foreach ($headers as $key => $value) {
-            $str .= "{$key}: {$value}\r\n";
-        }
-
-        return "--{$this->boundary}\r\n" . trim($str) . "\r\n\r\n";
-    }
-
-    /**
-     * Create the aggregate stream that will be used to upload the POST data
-     */
-    protected function createStream(array $elements)
-    {
-        $stream = new AppendStream();
-
-        foreach ($elements as $element) {
-            $this->addElement($stream, $element);
-        }
-
-        // Add the trailing boundary with CRLF
-        $stream->addStream(stream_for("--{$this->boundary}--\r\n"));
-
-        return $stream;
-    }
-
-    private function addElement(AppendStream $stream, array $element)
-    {
-        foreach (['contents', 'name'] as $key) {
-            if (!array_key_exists($key, $element)) {
-                throw new \InvalidArgumentException("A '{$key}' key is required");
-            }
-        }
-
-        $element['contents'] = stream_for($element['contents']);
-
-        if (empty($element['filename'])) {
-            $uri = $element['contents']->getMetadata('uri');
-            if (substr($uri, 0, 6) !== 'php://') {
-                $element['filename'] = $uri;
-            }
-        }
-
-        list($body, $headers) = $this->createElement(
-            $element['name'],
-            $element['contents'],
-            isset($element['filename']) ? $element['filename'] : null,
-            isset($element['headers']) ? $element['headers'] : []
-        );
-
-        $stream->addStream(stream_for($this->getHeaders($headers)));
-        $stream->addStream($body);
-        $stream->addStream(stream_for("\r\n"));
-    }
-
-    /**
-     * @return array
-     */
-    private function createElement($name, $stream, $filename, array $headers)
-    {
-        // Set a default content-disposition header if one was no provided
-        $disposition = $this->getHeader($headers, 'content-disposition');
-        if (!$disposition) {
-            $headers['Content-Disposition'] = $filename
-                ? sprintf('form-data; name="%s"; filename="%s"',
-                    $name,
-                    basename($filename))
-                : "form-data; name=\"{$name}\"";
-        }
-
-        // Set a default content-length header if one was no provided
-        $length = $this->getHeader($headers, 'content-length');
-        if (!$length) {
-            if ($length = $stream->getSize()) {
-                $headers['Content-Length'] = (string) $length;
-            }
-        }
-
-        // Set a default Content-Type if one was not supplied
-        $type = $this->getHeader($headers, 'content-type');
-        if (!$type && $filename) {
-            if ($type = mimetype_from_filename($filename)) {
-                $headers['Content-Type'] = $type;
-            }
-        }
-
-        return [$stream, $headers];
-    }
-
-    private function getHeader(array $headers, $key)
-    {
-        $lowercaseHeader = strtolower($key);
-        foreach ($headers as $k => $v) {
-            if (strtolower($k) === $lowercaseHeader) {
-                return $v;
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/NoSeekStream.php b/core/vendor/guzzlehttp/psr7/src/NoSeekStream.php
deleted file mode 100644
index 2332218..0000000
--- a/core/vendor/guzzlehttp/psr7/src/NoSeekStream.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Stream decorator that prevents a stream from being seeked
- */
-class NoSeekStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        throw new \RuntimeException('Cannot seek a NoSeekStream');
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/PumpStream.php b/core/vendor/guzzlehttp/psr7/src/PumpStream.php
deleted file mode 100644
index ffb5440..0000000
--- a/core/vendor/guzzlehttp/psr7/src/PumpStream.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Provides a read only stream that pumps data from a PHP callable.
- *
- * When invoking the provided callable, the PumpStream will pass the amount of
- * data requested to read to the callable. The callable can choose to ignore
- * this value and return fewer or more bytes than requested. Any extra data
- * returned by the provided callable is buffered internally until drained using
- * the read() function of the PumpStream. The provided callable MUST return
- * false when there is no more data to read.
- */
-class PumpStream implements StreamInterface
-{
-    /** @var callable */
-    private $source;
-
-    /** @var int */
-    private $size;
-
-    /** @var int */
-    private $tellPos = 0;
-
-    /** @var array */
-    private $metadata;
-
-    /** @var BufferStream */
-    private $buffer;
-
-    /**
-     * @param callable $source Source of the stream data. The callable MAY
-     *                         accept an integer argument used to control the
-     *                         amount of data to return. The callable MUST
-     *                         return a string when called, or false on error
-     *                         or EOF.
-     * @param array $options   Stream options:
-     *                         - metadata: Hash of metadata to use with stream.
-     *                         - size: Size of the stream, if known.
-     */
-    public function __construct(callable $source, array $options = [])
-    {
-        $this->source = $source;
-        $this->size = isset($options['size']) ? $options['size'] : null;
-        $this->metadata = isset($options['metadata']) ? $options['metadata'] : [];
-        $this->buffer = new BufferStream();
-    }
-
-    public function __toString()
-    {
-        try {
-            return copy_to_string($this);
-        } catch (\Exception $e) {
-            return '';
-        }
-    }
-
-    public function close()
-    {
-        $this->detach();
-    }
-
-    public function detach()
-    {
-        $this->tellPos = false;
-        $this->source = null;
-    }
-
-    public function getSize()
-    {
-        return $this->size;
-    }
-
-    public function tell()
-    {
-        return $this->tellPos;
-    }
-
-    public function eof()
-    {
-        return !$this->source;
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-
-    public function rewind()
-    {
-        $this->seek(0);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        throw new \RuntimeException('Cannot seek a PumpStream');
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    public function write($string)
-    {
-        throw new \RuntimeException('Cannot write to a PumpStream');
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function read($length)
-    {
-        $data = $this->buffer->read($length);
-        $readLen = strlen($data);
-        $this->tellPos += $readLen;
-        $remaining = $length - $readLen;
-
-        if ($remaining) {
-            $this->pump($remaining);
-            $data .= $this->buffer->read($remaining);
-            $this->tellPos += strlen($data) - $readLen;
-        }
-
-        return $data;
-    }
-
-    public function getContents()
-    {
-        $result = '';
-        while (!$this->eof()) {
-            $result .= $this->read(1000000);
-        }
-
-        return $result;
-    }
-
-    public function getMetadata($key = null)
-    {
-        if (!$key) {
-            return $this->metadata;
-        }
-
-        return isset($this->metadata[$key]) ? $this->metadata[$key] : null;
-    }
-
-    private function pump($length)
-    {
-        if ($this->source) {
-            do {
-                $data = call_user_func($this->source, $length);
-                if ($data === false || $data === null) {
-                    $this->source = null;
-                    return;
-                }
-                $this->buffer->write($data);
-                $length -= strlen($data);
-            } while ($length > 0);
-        }
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/Request.php b/core/vendor/guzzlehttp/psr7/src/Request.php
deleted file mode 100644
index 0189b14..0000000
--- a/core/vendor/guzzlehttp/psr7/src/Request.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use InvalidArgumentException;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * PSR-7 request implementation.
- */
-class Request implements RequestInterface
-{
-    use MessageTrait {
-        withHeader as protected withParentHeader;
-    }
-
-    /** @var string */
-    private $method;
-
-    /** @var null|string */
-    private $requestTarget;
-
-    /** @var null|UriInterface */
-    private $uri;
-
-    /**
-     * @param null|string $method HTTP method for the request.
-     * @param null|string $uri URI for the request.
-     * @param array  $headers Headers for the message.
-     * @param string|resource|StreamInterface $body Message body.
-     * @param string $protocolVersion HTTP protocol version.
-     *
-     * @throws InvalidArgumentException for an invalid URI
-     */
-    public function __construct(
-        $method,
-        $uri,
-        array $headers = [],
-        $body = null,
-        $protocolVersion = '1.1'
-    ) {
-        if (is_string($uri)) {
-            $uri = new Uri($uri);
-        } elseif (!($uri instanceof UriInterface)) {
-            throw new \InvalidArgumentException(
-                'URI must be a string or Psr\Http\Message\UriInterface'
-            );
-        }
-
-        $this->method = strtoupper($method);
-        $this->uri = $uri;
-        $this->setHeaders($headers);
-        $this->protocol = $protocolVersion;
-
-        $host = $uri->getHost();
-        if ($host && !$this->hasHeader('Host')) {
-            $this->updateHostFromUri($host);
-        }
-
-        if ($body) {
-            $this->stream = stream_for($body);
-        }
-    }
-
-    public function getRequestTarget()
-    {
-        if ($this->requestTarget !== null) {
-            return $this->requestTarget;
-        }
-
-        $target = $this->uri->getPath();
-        if ($target == null) {
-            $target = '/';
-        }
-        if ($this->uri->getQuery()) {
-            $target .= '?' . $this->uri->getQuery();
-        }
-
-        return $target;
-    }
-
-    public function withRequestTarget($requestTarget)
-    {
-        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()
-    {
-        return $this->method;
-    }
-
-    public function withMethod($method)
-    {
-        $new = clone $this;
-        $new->method = strtoupper($method);
-        return $new;
-    }
-
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    public function withUri(UriInterface $uri, $preserveHost = false)
-    {
-        if ($uri === $this->uri) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->uri = $uri;
-
-        if (!$preserveHost) {
-            if ($host = $uri->getHost()) {
-                $new->updateHostFromUri($host);
-            }
-        }
-
-        return $new;
-    }
-
-    public function withHeader($header, $value)
-    {
-        /** @var Request $newInstance */
-        $newInstance = $this->withParentHeader($header, $value);
-        return $newInstance;
-    }
-
-    private function updateHostFromUri($host)
-    {
-        // Ensure Host is the first header.
-        // See: http://tools.ietf.org/html/rfc7230#section-5.4
-        if ($port = $this->uri->getPort()) {
-            $host .= ':' . $port;
-        }
-
-        $this->headerLines = ['Host' => [$host]] + $this->headerLines;
-        $this->headers = ['host' => [$host]] + $this->headers;
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/Response.php b/core/vendor/guzzlehttp/psr7/src/Response.php
deleted file mode 100644
index c94bf8f..0000000
--- a/core/vendor/guzzlehttp/psr7/src/Response.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * PSR-7 response implementation.
- */
-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',
-        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 null|string */
-    private $reasonPhrase = '';
-
-    /** @var int */
-    private $statusCode = 200;
-
-    /**
-     * @param int    $status  Status code for the response, if any.
-     * @param array  $headers Headers for the response, if any.
-     * @param mixed  $body    Stream body.
-     * @param string $version Protocol version.
-     * @param string $reason  Reason phrase (a default will be used if possible).
-     */
-    public function __construct(
-        $status = 200,
-        array $headers = [],
-        $body = null,
-        $version = '1.1',
-        $reason = null
-    ) {
-        $this->statusCode = (int) $status;
-
-        if ($body !== null) {
-            $this->stream = stream_for($body);
-        }
-
-        $this->setHeaders($headers);
-        if (!$reason && isset(self::$phrases[$this->statusCode])) {
-            $this->reasonPhrase = self::$phrases[$status];
-        } else {
-            $this->reasonPhrase = (string) $reason;
-        }
-
-        $this->protocol = $version;
-    }
-
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    public function getReasonPhrase()
-    {
-        return $this->reasonPhrase;
-    }
-
-    public function withStatus($code, $reasonPhrase = '')
-    {
-        $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/core/vendor/guzzlehttp/psr7/src/Stream.php b/core/vendor/guzzlehttp/psr7/src/Stream.php
deleted file mode 100644
index 0b0db01..0000000
--- a/core/vendor/guzzlehttp/psr7/src/Stream.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * PHP stream implementation.
- *
- * @var $stream
- */
-class Stream implements StreamInterface
-{
-    private $stream;
-    private $size;
-    private $seekable;
-    private $readable;
-    private $writable;
-    private $uri;
-    private $customMetadata;
-
-    /** @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
-        ]
-    ];
-
-    /**
-     * This constructor accepts an associative array of options.
-     *
-     * - size: (int) If a read stream would otherwise have an indeterminate
-     *   size, but the size is known due to foreknownledge, then you can
-     *   provide that size, in bytes.
-     * - metadata: (array) Any additional metadata to return when the metadata
-     *   of the stream is accessed.
-     *
-     * @param resource $stream  Stream resource to wrap.
-     * @param array    $options Associative array of options.
-     *
-     * @throws \InvalidArgumentException if the stream is not a stream resource
-     */
-    public function __construct($stream, $options = [])
-    {
-        if (!is_resource($stream)) {
-            throw new \InvalidArgumentException('Stream must be a resource');
-        }
-
-        if (isset($options['size'])) {
-            $this->size = $options['size'];
-        }
-
-        $this->customMetadata = isset($options['metadata'])
-            ? $options['metadata']
-            : [];
-
-        $this->stream = $stream;
-        $meta = stream_get_meta_data($this->stream);
-        $this->seekable = $meta['seekable'];
-        $this->readable = isset(self::$readWriteHash['read'][$meta['mode']]);
-        $this->writable = isset(self::$readWriteHash['write'][$meta['mode']]);
-        $this->uri = $this->getMetadata('uri');
-    }
-
-    public function __get($name)
-    {
-        if ($name == 'stream') {
-            throw new \RuntimeException('The stream is detached');
-        }
-
-        throw new \BadMethodCallException('No value for ' . $name);
-    }
-
-    /**
-     * Closes the stream when the destructed
-     */
-    public function __destruct()
-    {
-        $this->close();
-    }
-
-    public function __toString()
-    {
-        try {
-            $this->seek(0);
-            return (string) stream_get_contents($this->stream);
-        } catch (\Exception $e) {
-            return '';
-        }
-    }
-
-    public function getContents()
-    {
-        $contents = stream_get_contents($this->stream);
-
-        if ($contents === false) {
-            throw new \RuntimeException('Unable to read stream contents');
-        }
-
-        return $contents;
-    }
-
-    public function close()
-    {
-        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()
-    {
-        if ($this->size !== null) {
-            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 isReadable()
-    {
-        return $this->readable;
-    }
-
-    public function isWritable()
-    {
-        return $this->writable;
-    }
-
-    public function isSeekable()
-    {
-        return $this->seekable;
-    }
-
-    public function eof()
-    {
-        return !$this->stream || feof($this->stream);
-    }
-
-    public function tell()
-    {
-        $result = ftell($this->stream);
-
-        if ($result === false) {
-            throw new \RuntimeException('Unable to determine stream position');
-        }
-
-        return $result;
-    }
-
-    public function rewind()
-    {
-        $this->seek(0);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        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 read($length)
-    {
-        if (!$this->readable) {
-            throw new \RuntimeException('Cannot read from non-readable stream');
-        }
-
-        return fread($this->stream, $length);
-    }
-
-    public function write($string)
-    {
-        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 ($result === false) {
-            throw new \RuntimeException('Unable to write to stream');
-        }
-
-        return $result;
-    }
-
-    public function getMetadata($key = null)
-    {
-        if (!isset($this->stream)) {
-            return $key ? null : [];
-        } elseif (!$key) {
-            return $this->customMetadata + stream_get_meta_data($this->stream);
-        } elseif (isset($this->customMetadata[$key])) {
-            return $this->customMetadata[$key];
-        }
-
-        $meta = stream_get_meta_data($this->stream);
-
-        return isset($meta[$key]) ? $meta[$key] : null;
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/core/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php
deleted file mode 100644
index daec6f5..0000000
--- a/core/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Stream decorator trait
- * @property StreamInterface stream
- */
-trait StreamDecoratorTrait
-{
-    /**
-     * @param StreamInterface $stream Stream to decorate
-     */
-    public function __construct(StreamInterface $stream)
-    {
-        $this->stream = $stream;
-    }
-
-    /**
-     * Magic method used to create a new stream if streams are not added in
-     * the constructor of a decorator (e.g., LazyOpenStream).
-     *
-     * @param string $name Name of the property (allows "stream" only).
-     *
-     * @return StreamInterface
-     */
-    public function __get($name)
-    {
-        if ($name == 'stream') {
-            $this->stream = $this->createStream();
-            return $this->stream;
-        }
-
-        throw new \UnexpectedValueException("$name not found on class");
-    }
-
-    public function __toString()
-    {
-        try {
-            if ($this->isSeekable()) {
-                $this->seek(0);
-            }
-            return $this->getContents();
-        } catch (\Exception $e) {
-            // Really, PHP? https://bugs.php.net/bug.php?id=53648
-            trigger_error('StreamDecorator::__toString exception: '
-                . (string) $e, E_USER_ERROR);
-            return '';
-        }
-    }
-
-    public function getContents()
-    {
-        return copy_to_string($this);
-    }
-
-    /**
-     * Allow decorators to implement custom methods
-     *
-     * @param string $method Missing method name
-     * @param array  $args   Method arguments
-     *
-     * @return mixed
-     */
-    public function __call($method, array $args)
-    {
-        $result = call_user_func_array([$this->stream, $method], $args);
-
-        // Always return the wrapped object if the result is a return $this
-        return $result === $this->stream ? $this : $result;
-    }
-
-    public function close()
-    {
-        $this->stream->close();
-    }
-
-    public function getMetadata($key = null)
-    {
-        return $this->stream->getMetadata($key);
-    }
-
-    public function detach()
-    {
-        return $this->stream->detach();
-    }
-
-    public function getSize()
-    {
-        return $this->stream->getSize();
-    }
-
-    public function eof()
-    {
-        return $this->stream->eof();
-    }
-
-    public function tell()
-    {
-        return $this->stream->tell();
-    }
-
-    public function isReadable()
-    {
-        return $this->stream->isReadable();
-    }
-
-    public function isWritable()
-    {
-        return $this->stream->isWritable();
-    }
-
-    public function isSeekable()
-    {
-        return $this->stream->isSeekable();
-    }
-
-    public function rewind()
-    {
-        $this->seek(0);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        $this->stream->seek($offset, $whence);
-    }
-
-    public function read($length)
-    {
-        return $this->stream->read($length);
-    }
-
-    public function write($string)
-    {
-        return $this->stream->write($string);
-    }
-
-    /**
-     * Implement in subclasses to dynamically create streams when requested.
-     *
-     * @return StreamInterface
-     * @throws \BadMethodCallException
-     */
-    protected function createStream()
-    {
-        throw new \BadMethodCallException('Not implemented');
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/StreamWrapper.php b/core/vendor/guzzlehttp/psr7/src/StreamWrapper.php
deleted file mode 100644
index cf7b223..0000000
--- a/core/vendor/guzzlehttp/psr7/src/StreamWrapper.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Converts Guzzle streams into PHP stream resources.
- */
-class StreamWrapper
-{
-    /** @var resource */
-    public $context;
-
-    /** @var StreamInterface */
-    private $stream;
-
-    /** @var string r, r+, or w */
-    private $mode;
-
-    /**
-     * Returns a resource representing the stream.
-     *
-     * @param StreamInterface $stream The stream to get a resource for
-     *
-     * @return resource
-     * @throws \InvalidArgumentException if stream is not readable or writable
-     */
-    public static function getResource(StreamInterface $stream)
-    {
-        self::register();
-
-        if ($stream->isReadable()) {
-            $mode = $stream->isWritable() ? 'r+' : 'r';
-        } elseif ($stream->isWritable()) {
-            $mode = 'w';
-        } else {
-            throw new \InvalidArgumentException('The stream must be readable, '
-                . 'writable, or both.');
-        }
-
-        return fopen('guzzle://stream', $mode, null, stream_context_create([
-            'guzzle' => ['stream' => $stream]
-        ]));
-    }
-
-    /**
-     * Registers the stream wrapper if needed
-     */
-    public static function register()
-    {
-        if (!in_array('guzzle', stream_get_wrappers())) {
-            stream_wrapper_register('guzzle', __CLASS__);
-        }
-    }
-
-    public function stream_open($path, $mode, $options, &$opened_path)
-    {
-        $options = stream_context_get_options($this->context);
-
-        if (!isset($options['guzzle']['stream'])) {
-            return false;
-        }
-
-        $this->mode = $mode;
-        $this->stream = $options['guzzle']['stream'];
-
-        return true;
-    }
-
-    public function stream_read($count)
-    {
-        return $this->stream->read($count);
-    }
-
-    public function stream_write($data)
-    {
-        return (int) $this->stream->write($data);
-    }
-
-    public function stream_tell()
-    {
-        return $this->stream->tell();
-    }
-
-    public function stream_eof()
-    {
-        return $this->stream->eof();
-    }
-
-    public function stream_seek($offset, $whence)
-    {
-        $this->stream->seek($offset, $whence);
-
-        return true;
-    }
-
-    public function stream_stat()
-    {
-        static $modeMap = [
-            'r'  => 33060,
-            'r+' => 33206,
-            'w'  => 33188
-        ];
-
-        return [
-            'dev'     => 0,
-            'ino'     => 0,
-            'mode'    => $modeMap[$this->mode],
-            'nlink'   => 0,
-            'uid'     => 0,
-            'gid'     => 0,
-            'rdev'    => 0,
-            'size'    => $this->stream->getSize() ?: 0,
-            'atime'   => 0,
-            'mtime'   => 0,
-            'ctime'   => 0,
-            'blksize' => 0,
-            'blocks'  => 0
-        ];
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/Uri.php b/core/vendor/guzzlehttp/psr7/src/Uri.php
deleted file mode 100644
index d428f2e..0000000
--- a/core/vendor/guzzlehttp/psr7/src/Uri.php
+++ /dev/null
@@ -1,599 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\UriInterface;
-
-/**
- * Basic PSR-7 URI implementation.
- *
- * @link https://github.com/phly/http This class is based upon
- *     Matthew Weier O'Phinney's URI implementation in phly/http.
- */
-class Uri implements UriInterface
-{
-    private static $schemes = [
-        'http'  => 80,
-        'https' => 443,
-    ];
-
-    private static $charUnreserved = 'a-zA-Z0-9_\-\.~';
-    private static $charSubDelims = '!\$&\'\(\)\*\+,;=';
-    private static $replaceQuery = ['=' => '%3D', '&' => '%26'];
-
-    /** @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 URI to parse and wrap.
-     */
-    public function __construct($uri = '')
-    {
-        if ($uri != null) {
-            $parts = parse_url($uri);
-            if ($parts === false) {
-                throw new \InvalidArgumentException("Unable to parse URI: $uri");
-            }
-            $this->applyParts($parts);
-        }
-    }
-
-    public function __toString()
-    {
-        return self::createUriString(
-            $this->scheme,
-            $this->getAuthority(),
-            $this->getPath(),
-            $this->query,
-            $this->fragment
-        );
-    }
-
-    /**
-     * Removes dot segments from a path and returns the new path.
-     *
-     * @param string $path
-     *
-     * @return string
-     * @link http://tools.ietf.org/html/rfc3986#section-5.2.4
-     */
-    public static function removeDotSegments($path)
-    {
-        static $noopPaths = ['' => true, '/' => true, '*' => true];
-        static $ignoreSegments = ['.' => true, '..' => true];
-
-        if (isset($noopPaths[$path])) {
-            return $path;
-        }
-
-        $results = [];
-        $segments = explode('/', $path);
-        foreach ($segments as $segment) {
-            if ($segment == '..') {
-                array_pop($results);
-            } elseif (!isset($ignoreSegments[$segment])) {
-                $results[] = $segment;
-            }
-        }
-
-        $newPath = implode('/', $results);
-        // Add the leading slash if necessary
-        if (substr($path, 0, 1) === '/' &&
-            substr($newPath, 0, 1) !== '/'
-        ) {
-            $newPath = '/' . $newPath;
-        }
-
-        // Add the trailing slash if necessary
-        if ($newPath != '/' && isset($ignoreSegments[end($segments)])) {
-            $newPath .= '/';
-        }
-
-        return $newPath;
-    }
-
-    /**
-     * Resolve a base URI with a relative URI and return a new URI.
-     *
-     * @param UriInterface $base Base URI
-     * @param string       $rel  Relative URI
-     *
-     * @return UriInterface
-     */
-    public static function resolve(UriInterface $base, $rel)
-    {
-        if ($rel === null || $rel === '') {
-            return $base;
-        }
-
-        if (!($rel instanceof UriInterface)) {
-            $rel = new self($rel);
-        }
-
-        // Return the relative uri as-is if it has a scheme.
-        if ($rel->getScheme()) {
-            return $rel->withPath(static::removeDotSegments($rel->getPath()));
-        }
-
-        $relParts = [
-            'scheme'    => $rel->getScheme(),
-            'authority' => $rel->getAuthority(),
-            'path'      => $rel->getPath(),
-            'query'     => $rel->getQuery(),
-            'fragment'  => $rel->getFragment()
-        ];
-
-        $parts = [
-            'scheme'    => $base->getScheme(),
-            'authority' => $base->getAuthority(),
-            'path'      => $base->getPath(),
-            'query'     => $base->getQuery(),
-            'fragment'  => $base->getFragment()
-        ];
-
-        if (!empty($relParts['authority'])) {
-            $parts['authority'] = $relParts['authority'];
-            $parts['path'] = self::removeDotSegments($relParts['path']);
-            $parts['query'] = $relParts['query'];
-            $parts['fragment'] = $relParts['fragment'];
-        } elseif (!empty($relParts['path'])) {
-            if (substr($relParts['path'], 0, 1) == '/') {
-                $parts['path'] = self::removeDotSegments($relParts['path']);
-                $parts['query'] = $relParts['query'];
-                $parts['fragment'] = $relParts['fragment'];
-            } else {
-                if (!empty($parts['authority']) && empty($parts['path'])) {
-                    $mergedPath = '/';
-                } else {
-                    $mergedPath = substr($parts['path'], 0, strrpos($parts['path'], '/') + 1);
-                }
-                $parts['path'] = self::removeDotSegments($mergedPath . $relParts['path']);
-                $parts['query'] = $relParts['query'];
-                $parts['fragment'] = $relParts['fragment'];
-            }
-        } elseif (!empty($relParts['query'])) {
-            $parts['query'] = $relParts['query'];
-        } elseif ($relParts['fragment'] != null) {
-            $parts['fragment'] = $relParts['fragment'];
-        }
-
-        return new self(static::createUriString(
-            $parts['scheme'],
-            $parts['authority'],
-            $parts['path'],
-            $parts['query'],
-            $parts['fragment']
-        ));
-    }
-
-    /**
-     * Create a new URI with a specific query string value removed.
-     *
-     * Any existing query string values that exactly match the provided key are
-     * removed.
-     *
-     * Note: this function will convert "=" to "%3D" and "&" to "%26".
-     *
-     * @param UriInterface $uri URI to use as a base.
-     * @param string       $key Query string key value pair to remove.
-     *
-     * @return UriInterface
-     */
-    public static function withoutQueryValue(UriInterface $uri, $key)
-    {
-        $current = $uri->getQuery();
-        if (!$current) {
-            return $uri;
-        }
-
-        $result = [];
-        foreach (explode('&', $current) as $part) {
-            if (explode('=', $part)[0] !== $key) {
-                $result[] = $part;
-            };
-        }
-
-        return $uri->withQuery(implode('&', $result));
-    }
-
-    /**
-     * Create a new URI with a specific query string value.
-     *
-     * Any existing query string values that exactly match the provided key are
-     * removed and replaced with the given key value pair.
-     *
-     * Note: this function will convert "=" to "%3D" and "&" to "%26".
-     *
-     * @param UriInterface $uri URI to use as a base.
-     * @param string $key   Key to set.
-     * @param string $value Value to set.
-     *
-     * @return UriInterface
-     */
-    public static function withQueryValue(UriInterface $uri, $key, $value)
-    {
-        $current = $uri->getQuery();
-        $key = strtr($key, self::$replaceQuery);
-
-        if (!$current) {
-            $result = [];
-        } else {
-            $result = [];
-            foreach (explode('&', $current) as $part) {
-                if (explode('=', $part)[0] !== $key) {
-                    $result[] = $part;
-                };
-            }
-        }
-
-        if ($value !== null) {
-            $result[] = $key . '=' . strtr($value, self::$replaceQuery);
-        } else {
-            $result[] = $key;
-        }
-
-        return $uri->withQuery(implode('&', $result));
-    }
-
-    /**
-     * Create a URI from a hash of parse_url parts.
-     *
-     * @param array $parts
-     *
-     * @return self
-     */
-    public static function fromParts(array $parts)
-    {
-        $uri = new self();
-        $uri->applyParts($parts);
-        return $uri;
-    }
-
-    public function getScheme()
-    {
-        return $this->scheme;
-    }
-
-    public function getAuthority()
-    {
-        if (empty($this->host)) {
-            return '';
-        }
-
-        $authority = $this->host;
-        if (!empty($this->userInfo)) {
-            $authority = $this->userInfo . '@' . $authority;
-        }
-
-        if ($this->isNonStandardPort($this->scheme, $this->host, $this->port)) {
-            $authority .= ':' . $this->port;
-        }
-
-        return $authority;
-    }
-
-    public function getUserInfo()
-    {
-        return $this->userInfo;
-    }
-
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    public function getPort()
-    {
-        return $this->port;
-    }
-
-    public function getPath()
-    {
-        return $this->path == null ? '' : $this->path;
-    }
-
-    public function getQuery()
-    {
-        return $this->query;
-    }
-
-    public function getFragment()
-    {
-        return $this->fragment;
-    }
-
-    public function withScheme($scheme)
-    {
-        $scheme = $this->filterScheme($scheme);
-
-        if ($this->scheme === $scheme) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->scheme = $scheme;
-        $new->port = $new->filterPort($new->scheme, $new->host, $new->port);
-        return $new;
-    }
-
-    public function withUserInfo($user, $password = null)
-    {
-        $info = $user;
-        if ($password) {
-            $info .= ':' . $password;
-        }
-
-        if ($this->userInfo === $info) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->userInfo = $info;
-        return $new;
-    }
-
-    public function withHost($host)
-    {
-        if ($this->host === $host) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->host = $host;
-        return $new;
-    }
-
-    public function withPort($port)
-    {
-        $port = $this->filterPort($this->scheme, $this->host, $port);
-
-        if ($this->port === $port) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->port = $port;
-        return $new;
-    }
-
-    public function withPath($path)
-    {
-        if (!is_string($path)) {
-            throw new \InvalidArgumentException(
-                'Invalid path provided; must be a string'
-            );
-        }
-
-        $path = $this->filterPath($path);
-
-        if ($this->path === $path) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->path = $path;
-        return $new;
-    }
-
-    public function withQuery($query)
-    {
-        if (!is_string($query) && !method_exists($query, '__toString')) {
-            throw new \InvalidArgumentException(
-                'Query string must be a string'
-            );
-        }
-
-        $query = (string) $query;
-        if (substr($query, 0, 1) === '?') {
-            $query = substr($query, 1);
-        }
-
-        $query = $this->filterQueryAndFragment($query);
-
-        if ($this->query === $query) {
-            return $this;
-        }
-
-        $new = clone $this;
-        $new->query = $query;
-        return $new;
-    }
-
-    public function withFragment($fragment)
-    {
-        if (substr($fragment, 0, 1) === '#') {
-            $fragment = substr($fragment, 1);
-        }
-
-        $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 $parts Array of parse_url parts to apply.
-     */
-    private function applyParts(array $parts)
-    {
-        $this->scheme = isset($parts['scheme'])
-            ? $this->filterScheme($parts['scheme'])
-            : '';
-        $this->userInfo = isset($parts['user']) ? $parts['user'] : '';
-        $this->host = isset($parts['host']) ? $parts['host'] : '';
-        $this->port = !empty($parts['port'])
-            ? $this->filterPort($this->scheme, $this->host, $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($scheme, $authority, $path, $query, $fragment)
-    {
-        $uri = '';
-
-        if (!empty($scheme)) {
-            $uri .= $scheme . '://';
-        }
-
-        if (!empty($authority)) {
-            $uri .= $authority;
-        }
-
-        if ($path != null) {
-            // Add a leading slash if necessary.
-            if ($uri && substr($path, 0, 1) !== '/') {
-                $uri .= '/';
-            }
-            $uri .= $path;
-        }
-
-        if ($query != null) {
-            $uri .= '?' . $query;
-        }
-
-        if ($fragment != null) {
-            $uri .= '#' . $fragment;
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Is a given port non-standard for the current scheme?
-     *
-     * @param string $scheme
-     * @param string $host
-     * @param int $port
-     * @return bool
-     */
-    private static function isNonStandardPort($scheme, $host, $port)
-    {
-        if (!$scheme && $port) {
-            return true;
-        }
-
-        if (!$host || !$port) {
-            return false;
-        }
-
-        return !isset(static::$schemes[$scheme]) || $port !== static::$schemes[$scheme];
-    }
-
-    /**
-     * @param string $scheme
-     *
-     * @return string
-     */
-    private function filterScheme($scheme)
-    {
-        $scheme = strtolower($scheme);
-        $scheme = rtrim($scheme, ':/');
-
-        return $scheme;
-    }
-
-    /**
-     * @param string $scheme
-     * @param string $host
-     * @param int $port
-     *
-     * @return int|null
-     *
-     * @throws \InvalidArgumentException If the port is invalid.
-     */
-    private function filterPort($scheme, $host, $port)
-    {
-        if (null !== $port) {
-            $port = (int) $port;
-            if (1 > $port || 0xffff < $port) {
-                throw new \InvalidArgumentException(
-                    sprintf('Invalid port: %d. Must be between 1 and 65535', $port)
-                );
-            }
-        }
-
-        return $this->isNonStandardPort($scheme, $host, $port) ? $port : null;
-    }
-
-    /**
-     * Filters the path of a URI
-     *
-     * @param $path
-     *
-     * @return string
-     */
-    private function filterPath($path)
-    {
-        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 $str
-     *
-     * @return string
-     */
-    private function filterQueryAndFragment($str)
-    {
-        return preg_replace_callback(
-            '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/',
-            [$this, 'rawurlencodeMatchZero'],
-            $str
-        );
-    }
-
-    private function rawurlencodeMatchZero(array $match)
-    {
-        return rawurlencode($match[0]);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/functions.php b/core/vendor/guzzlehttp/psr7/src/functions.php
deleted file mode 100644
index fd3e7f5..0000000
--- a/core/vendor/guzzlehttp/psr7/src/functions.php
+++ /dev/null
@@ -1,802 +0,0 @@
-<?php
-namespace GuzzleHttp\Psr7;
-
-use Psr\Http\Message\MessageInterface;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * Returns the string representation of an HTTP message.
- *
- * @param MessageInterface $message Message to convert to a string.
- *
- * @return string
- */
-function str(MessageInterface $message)
-{
-    if ($message instanceof RequestInterface) {
-        $msg = trim($message->getMethod() . ' '
-                . $message->getRequestTarget())
-            . ' HTTP/' . $message->getProtocolVersion();
-        if (!$message->hasHeader('host')) {
-            $msg .= "\r\nHost: " . $message->getUri()->getHost();
-        }
-    } elseif ($message instanceof ResponseInterface) {
-        $msg = 'HTTP/' . $message->getProtocolVersion() . ' '
-            . $message->getStatusCode() . ' '
-            . $message->getReasonPhrase();
-    } else {
-        throw new \InvalidArgumentException('Unknown message type');
-    }
-
-    foreach ($message->getHeaders() as $name => $values) {
-        $msg .= "\r\n{$name}: " . implode(', ', $values);
-    }
-
-    return "{$msg}\r\n\r\n" . $message->getBody();
-}
-
-/**
- * Returns a UriInterface for the given value.
- *
- * This function accepts a string or {@see Psr\Http\Message\UriInterface} and
- * returns a UriInterface for the given value. If the value is already a
- * `UriInterface`, it is returned as-is.
- *
- * @param string|UriInterface $uri
- *
- * @return UriInterface
- * @throws \InvalidArgumentException
- */
-function uri_for($uri)
-{
-    if ($uri instanceof UriInterface) {
-        return $uri;
-    } elseif (is_string($uri)) {
-        return new Uri($uri);
-    }
-
-    throw new \InvalidArgumentException('URI must be a string or UriInterface');
-}
-
-/**
- * Create a new stream based on the input type.
- *
- * Options is an associative array that can contain the following keys:
- * - metadata: Array of custom metadata.
- * - size: Size of the stream.
- *
- * @param resource|string|StreamInterface $resource Entity body data
- * @param array                           $options  Additional options
- *
- * @return Stream
- * @throws \InvalidArgumentException if the $resource arg is not valid.
- */
-function stream_for($resource = '', array $options = [])
-{
-    switch (gettype($resource)) {
-        case 'string':
-            $stream = fopen('php://temp', 'r+');
-            if ($resource !== '') {
-                fwrite($stream, $resource);
-                fseek($stream, 0);
-            }
-            return new Stream($stream, $options);
-        case 'resource':
-            return new Stream($resource, $options);
-        case 'object':
-            if ($resource instanceof StreamInterface) {
-                return $resource;
-            } elseif ($resource instanceof \Iterator) {
-                return new PumpStream(function () use ($resource) {
-                    if (!$resource->valid()) {
-                        return false;
-                    }
-                    $result = $resource->current();
-                    $resource->next();
-                    return $result;
-                }, $options);
-            } elseif (method_exists($resource, '__toString')) {
-                return stream_for((string) $resource, $options);
-            }
-            break;
-        case 'NULL':
-            return new Stream(fopen('php://temp', 'r+'), $options);
-    }
-
-    if (is_callable($resource)) {
-        return new PumpStream($resource, $options);
-    }
-
-    throw new \InvalidArgumentException('Invalid resource type: ' . gettype($resource));
-}
-
-/**
- * Parse an array of header values containing ";" separated data into an
- * array of associative arrays representing the header key value pair
- * data of the header. When a parameter does not contain a value, but just
- * contains a key, this function will inject a key with a '' string value.
- *
- * @param string|array $header Header to parse into components.
- *
- * @return array Returns the parsed header values.
- */
-function parse_header($header)
-{
-    static $trimmed = "\"'  \n\t\r";
-    $params = $matches = [];
-
-    foreach (normalize_header($header) as $val) {
-        $part = [];
-        foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) {
-            if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) {
-                $m = $matches[0];
-                if (isset($m[1])) {
-                    $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed);
-                } else {
-                    $part[] = trim($m[0], $trimmed);
-                }
-            }
-        }
-        if ($part) {
-            $params[] = $part;
-        }
-    }
-
-    return $params;
-}
-
-/**
- * Converts an array of header values that may contain comma separated
- * headers into an array of headers with no comma separated values.
- *
- * @param string|array $header Header to normalize.
- *
- * @return array Returns the normalized header field values.
- */
-function normalize_header($header)
-{
-    if (!is_array($header)) {
-        return array_map('trim', explode(',', $header));
-    }
-
-    $result = [];
-    foreach ($header as $value) {
-        foreach ((array) $value as $v) {
-            if (strpos($v, ',') === false) {
-                $result[] = $v;
-                continue;
-            }
-            foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) {
-                $result[] = trim($vv);
-            }
-        }
-    }
-
-    return $result;
-}
-
-/**
- * Clone and modify a request with the given changes.
- *
- * The changes can be one of:
- * - method: (string) Changes the HTTP method.
- * - set_headers: (array) Sets the given headers.
- * - remove_headers: (array) Remove the given headers.
- * - body: (mixed) Sets the given body.
- * - uri: (UriInterface) Set the URI.
- * - query: (string) Set the query string value of the URI.
- * - version: (string) Set the protocol version.
- *
- * @param RequestInterface $request Request to clone and modify.
- * @param array            $changes Changes to apply.
- *
- * @return RequestInterface
- */
-function modify_request(RequestInterface $request, array $changes)
-{
-    if (!$changes) {
-        return $request;
-    }
-
-    $headers = $request->getHeaders();
-
-    if (!isset($changes['uri'])) {
-        $uri = $request->getUri();
-    } else {
-        // Remove the host header if one is on the URI
-        if ($host = $changes['uri']->getHost()) {
-            $changes['set_headers']['Host'] = $host;
-        }
-        $uri = $changes['uri'];
-    }
-
-    if (!empty($changes['remove_headers'])) {
-        $headers = _caseless_remove($changes['remove_headers'], $headers);
-    }
-
-    if (!empty($changes['set_headers'])) {
-        $headers = _caseless_remove(array_keys($changes['set_headers']), $headers);
-        $headers = $changes['set_headers'] + $headers;
-    }
-
-    if (isset($changes['query'])) {
-        $uri = $uri->withQuery($changes['query']);
-    }
-
-    return new Request(
-        isset($changes['method']) ? $changes['method'] : $request->getMethod(),
-        $uri,
-        $headers,
-        isset($changes['body']) ? $changes['body'] : $request->getBody(),
-        isset($changes['version'])
-            ? $changes['version']
-            : $request->getProtocolVersion()
-    );
-}
-
-/**
- * Attempts to rewind a message body and throws an exception on failure.
- *
- * The body of the message will only be rewound if a call to `tell()` returns a
- * value other than `0`.
- *
- * @param MessageInterface $message Message to rewind
- *
- * @throws \RuntimeException
- */
-function rewind_body(MessageInterface $message)
-{
-    $body = $message->getBody();
-
-    if ($body->tell()) {
-        $body->rewind();
-    }
-}
-
-/**
- * Safely opens a PHP stream resource using a filename.
- *
- * When fopen fails, PHP normally raises a warning. This function adds an
- * error handler that checks for errors and throws an exception instead.
- *
- * @param string $filename File to open
- * @param string $mode     Mode used to open the file
- *
- * @return resource
- * @throws \RuntimeException if the file cannot be opened
- */
-function try_fopen($filename, $mode)
-{
-    $ex = null;
-    set_error_handler(function () use ($filename, $mode, &$ex) {
-        $ex = new \RuntimeException(sprintf(
-            'Unable to open %s using mode %s: %s',
-            $filename,
-            $mode,
-            func_get_args()[1]
-        ));
-    });
-
-    $handle = fopen($filename, $mode);
-    restore_error_handler();
-
-    if ($ex) {
-        /** @var $ex \RuntimeException */
-        throw $ex;
-    }
-
-    return $handle;
-}
-
-/**
- * Copy the contents of a stream into a string until the given number of
- * bytes have been read.
- *
- * @param StreamInterface $stream Stream to read
- * @param int             $maxLen Maximum number of bytes to read. Pass -1
- *                                to read the entire stream.
- * @return string
- * @throws \RuntimeException on error.
- */
-function copy_to_string(StreamInterface $stream, $maxLen = -1)
-{
-    $buffer = '';
-
-    if ($maxLen === -1) {
-        while (!$stream->eof()) {
-            $buf = $stream->read(1048576);
-            // Using a loose equality here to match on '' and false.
-            if ($buf == null) {
-                break;
-            }
-            $buffer .= $buf;
-        }
-        return $buffer;
-    }
-
-    $len = 0;
-    while (!$stream->eof() && $len < $maxLen) {
-        $buf = $stream->read($maxLen - $len);
-        // Using a loose equality here to match on '' and false.
-        if ($buf == null) {
-            break;
-        }
-        $buffer .= $buf;
-        $len = strlen($buffer);
-    }
-
-    return $buffer;
-}
-
-/**
- * Copy the contents of a stream into another stream until the given number
- * of bytes have been read.
- *
- * @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.
- */
-function copy_to_stream(
-    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;
-        }
-    }
-}
-
-/**
- * Calculate a hash of a Stream
- *
- * @param StreamInterface $stream    Stream to calculate the hash for
- * @param string          $algo      Hash algorithm (e.g. md5, crc32, etc)
- * @param bool            $rawOutput Whether or not to use raw output
- *
- * @return string Returns the hash of the stream
- * @throws \RuntimeException on error.
- */
-function hash(
-    StreamInterface $stream,
-    $algo,
-    $rawOutput = false
-) {
-    $pos = $stream->tell();
-
-    if ($pos > 0) {
-        $stream->rewind();
-    }
-
-    $ctx = hash_init($algo);
-    while (!$stream->eof()) {
-        hash_update($ctx, $stream->read(1048576));
-    }
-
-    $out = hash_final($ctx, (bool) $rawOutput);
-    $stream->seek($pos);
-
-    return $out;
-}
-
-/**
- * Read a line from the stream up to the maximum allowed buffer length
- *
- * @param StreamInterface $stream    Stream to read from
- * @param int             $maxLength Maximum buffer length
- *
- * @return string|bool
- */
-function readline(StreamInterface $stream, $maxLength = null)
-{
-    $buffer = '';
-    $size = 0;
-
-    while (!$stream->eof()) {
-        // Using a loose equality here to match on '' and false.
-        if (null == ($byte = $stream->read(1))) {
-            return $buffer;
-        }
-        $buffer .= $byte;
-        // Break when a new line is found or the max length - 1 is reached
-        if ($byte == PHP_EOL || ++$size == $maxLength - 1) {
-            break;
-        }
-    }
-
-    return $buffer;
-}
-
-/**
- * Parses a request message string into a request object.
- *
- * @param string $message Request message string.
- *
- * @return Request
- */
-function parse_request($message)
-{
-    $data = _parse_message($message);
-    $matches = [];
-    if (!preg_match('/^[a-zA-Z]+\s+([a-zA-Z]+:\/\/|\/).*/', $data['start-line'], $matches)) {
-        throw new \InvalidArgumentException('Invalid request string');
-    }
-    $parts = explode(' ', $data['start-line'], 3);
-    $version = isset($parts[2]) ? explode('/', $parts[2])[1] : '1.1';
-
-    $request = new Request(
-        $parts[0],
-        $matches[1] === '/' ? _parse_request_uri($parts[1], $data['headers']) : $parts[1],
-        $data['headers'],
-        $data['body'],
-        $version
-    );
-
-    return $matches[1] === '/' ? $request : $request->withRequestTarget($parts[1]);
-}
-
-/**
- * Parses a response message string into a response object.
- *
- * @param string $message Response message string.
- *
- * @return Response
- */
-function parse_response($message)
-{
-    $data = _parse_message($message);
-    if (!preg_match('/^HTTP\/.* [0-9]{3} .*/', $data['start-line'])) {
-        throw new \InvalidArgumentException('Invalid response string');
-    }
-    $parts = explode(' ', $data['start-line'], 3);
-
-    return new Response(
-        $parts[1],
-        $data['headers'],
-        $data['body'],
-        explode('/', $parts[0])[1],
-        isset($parts[2]) ? $parts[2] : null
-    );
-}
-
-/**
- * Parse a query string into an associative array.
- *
- * If multiple values are found for the same key, the value of that key
- * value pair will become an array. This function does not parse nested
- * PHP style arrays into an associative array (e.g., foo[a]=1&foo[b]=2 will
- * be parsed into ['foo[a]' => '1', 'foo[b]' => '2']).
- *
- * @param string      $str         Query string to parse
- * @param bool|string $urlEncoding How the query string is encoded
- *
- * @return array
- */
-function parse_query($str, $urlEncoding = true)
-{
-    $result = [];
-
-    if ($str === '') {
-        return $result;
-    }
-
-    if ($urlEncoding === true) {
-        $decoder = function ($value) {
-            return rawurldecode(str_replace('+', ' ', $value));
-        };
-    } elseif ($urlEncoding == PHP_QUERY_RFC3986) {
-        $decoder = 'rawurldecode';
-    } elseif ($urlEncoding == PHP_QUERY_RFC1738) {
-        $decoder = 'urldecode';
-    } else {
-        $decoder = function ($str) { return $str; };
-    }
-
-    foreach (explode('&', $str) as $kvp) {
-        $parts = explode('=', $kvp, 2);
-        $key = $decoder($parts[0]);
-        $value = isset($parts[1]) ? $decoder($parts[1]) : null;
-        if (!isset($result[$key])) {
-            $result[$key] = $value;
-        } else {
-            if (!is_array($result[$key])) {
-                $result[$key] = [$result[$key]];
-            }
-            $result[$key][] = $value;
-        }
-    }
-
-    return $result;
-}
-
-/**
- * Build a query string from an array of key value pairs.
- *
- * This function can use the return value of parseQuery() to build a query
- * string. This function does not modify the provided keys when an array is
- * encountered (like http_build_query would).
- *
- * @param array     $params   Query string parameters.
- * @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986
- *                            to encode using RFC3986, or PHP_QUERY_RFC1738
- *                            to encode using RFC1738.
- * @return string
- */
-function build_query(array $params, $encoding = PHP_QUERY_RFC3986)
-{
-    if (!$params) {
-        return '';
-    }
-
-    if ($encoding === false) {
-        $encoder = function ($str) { return $str; };
-    } elseif ($encoding == PHP_QUERY_RFC3986) {
-        $encoder = 'rawurlencode';
-    } elseif ($encoding == PHP_QUERY_RFC1738) {
-        $encoder = 'urlencode';
-    } else {
-        throw new \InvalidArgumentException('Invalid type');
-    }
-
-    $qs = '';
-    foreach ($params as $k => $v) {
-        $k = $encoder($k);
-        if (!is_array($v)) {
-            $qs .= $k;
-            if ($v !== null) {
-                $qs .= '=' . $encoder($v);
-            }
-            $qs .= '&';
-        } else {
-            foreach ($v as $vv) {
-                $qs .= $k;
-                if ($vv !== null) {
-                    $qs .= '=' . $encoder($vv);
-                }
-                $qs .= '&';
-            }
-        }
-    }
-
-    return $qs ? (string) substr($qs, 0, -1) : '';
-}
-
-/**
- * Determines the mimetype of a file by looking at its extension.
- *
- * @param $filename
- *
- * @return null|string
- */
-function mimetype_from_filename($filename)
-{
-    return mimetype_from_extension(pathinfo($filename, PATHINFO_EXTENSION));
-}
-
-/**
- * Maps a file extensions to a mimetype.
- *
- * @param $extension string The file extension.
- *
- * @return string|null
- * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types
- */
-function mimetype_from_extension($extension)
-{
-    static $mimetypes = [
-        '7z' => 'application/x-7z-compressed',
-        'aac' => 'audio/x-aac',
-        'ai' => 'application/postscript',
-        'aif' => 'audio/x-aiff',
-        'asc' => 'text/plain',
-        'asf' => 'video/x-ms-asf',
-        'atom' => 'application/atom+xml',
-        'avi' => 'video/x-msvideo',
-        'bmp' => 'image/bmp',
-        'bz2' => 'application/x-bzip2',
-        'cer' => 'application/pkix-cert',
-        'crl' => 'application/pkix-crl',
-        'crt' => 'application/x-x509-ca-cert',
-        'css' => 'text/css',
-        'csv' => 'text/csv',
-        'cu' => 'application/cu-seeme',
-        'deb' => 'application/x-debian-package',
-        'doc' => 'application/msword',
-        'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-        'dvi' => 'application/x-dvi',
-        'eot' => 'application/vnd.ms-fontobject',
-        'eps' => 'application/postscript',
-        'epub' => 'application/epub+zip',
-        'etx' => 'text/x-setext',
-        'flac' => 'audio/flac',
-        'flv' => 'video/x-flv',
-        'gif' => 'image/gif',
-        'gz' => 'application/gzip',
-        'htm' => 'text/html',
-        'html' => 'text/html',
-        'ico' => 'image/x-icon',
-        'ics' => 'text/calendar',
-        'ini' => 'text/plain',
-        'iso' => 'application/x-iso9660-image',
-        'jar' => 'application/java-archive',
-        'jpe' => 'image/jpeg',
-        'jpeg' => 'image/jpeg',
-        'jpg' => 'image/jpeg',
-        'js' => 'text/javascript',
-        'json' => 'application/json',
-        'latex' => 'application/x-latex',
-        'log' => 'text/plain',
-        'm4a' => 'audio/mp4',
-        'm4v' => 'video/mp4',
-        'mid' => 'audio/midi',
-        'midi' => 'audio/midi',
-        'mov' => 'video/quicktime',
-        'mp3' => 'audio/mpeg',
-        'mp4' => 'video/mp4',
-        'mp4a' => 'audio/mp4',
-        'mp4v' => 'video/mp4',
-        'mpe' => 'video/mpeg',
-        'mpeg' => 'video/mpeg',
-        'mpg' => 'video/mpeg',
-        'mpg4' => 'video/mp4',
-        'oga' => 'audio/ogg',
-        'ogg' => 'audio/ogg',
-        'ogv' => 'video/ogg',
-        'ogx' => 'application/ogg',
-        'pbm' => 'image/x-portable-bitmap',
-        'pdf' => 'application/pdf',
-        'pgm' => 'image/x-portable-graymap',
-        'png' => 'image/png',
-        'pnm' => 'image/x-portable-anymap',
-        'ppm' => 'image/x-portable-pixmap',
-        'ppt' => 'application/vnd.ms-powerpoint',
-        'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
-        'ps' => 'application/postscript',
-        'qt' => 'video/quicktime',
-        'rar' => 'application/x-rar-compressed',
-        'ras' => 'image/x-cmu-raster',
-        'rss' => 'application/rss+xml',
-        'rtf' => 'application/rtf',
-        'sgm' => 'text/sgml',
-        'sgml' => 'text/sgml',
-        'svg' => 'image/svg+xml',
-        'swf' => 'application/x-shockwave-flash',
-        'tar' => 'application/x-tar',
-        'tif' => 'image/tiff',
-        'tiff' => 'image/tiff',
-        'torrent' => 'application/x-bittorrent',
-        'ttf' => 'application/x-font-ttf',
-        'txt' => 'text/plain',
-        'wav' => 'audio/x-wav',
-        'webm' => 'video/webm',
-        'wma' => 'audio/x-ms-wma',
-        'wmv' => 'video/x-ms-wmv',
-        'woff' => 'application/x-font-woff',
-        'wsdl' => 'application/wsdl+xml',
-        'xbm' => 'image/x-xbitmap',
-        'xls' => 'application/vnd.ms-excel',
-        'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
-        'xml' => 'application/xml',
-        'xpm' => 'image/x-xpixmap',
-        'xwd' => 'image/x-xwindowdump',
-        'yaml' => 'text/yaml',
-        'yml' => 'text/yaml',
-        'zip' => 'application/zip',
-    ];
-
-    $extension = strtolower($extension);
-
-    return isset($mimetypes[$extension])
-        ? $mimetypes[$extension]
-        : null;
-}
-
-/**
- * Parses an HTTP message into an associative array.
- *
- * The array contains the "start-line" key containing the start line of
- * the message, "headers" key containing an associative array of header
- * array values, and a "body" key containing the body of the message.
- *
- * @param string $message HTTP request or response to parse.
- *
- * @return array
- * @internal
- */
-function _parse_message($message)
-{
-    if (!$message) {
-        throw new \InvalidArgumentException('Invalid message');
-    }
-
-    // Iterate over each line in the message, accounting for line endings
-    $lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE);
-    $result = ['start-line' => array_shift($lines), 'headers' => [], 'body' => ''];
-    array_shift($lines);
-
-    for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) {
-        $line = $lines[$i];
-        // If two line breaks were encountered, then this is the end of body
-        if (empty($line)) {
-            if ($i < $totalLines - 1) {
-                $result['body'] = implode('', array_slice($lines, $i + 2));
-            }
-            break;
-        }
-        if (strpos($line, ':')) {
-            $parts = explode(':', $line, 2);
-            $key = trim($parts[0]);
-            $value = isset($parts[1]) ? trim($parts[1]) : '';
-            $result['headers'][$key][] = $value;
-        }
-    }
-
-    return $result;
-}
-
-/**
- * Constructs a URI for an HTTP request message.
- *
- * @param string $path    Path from the start-line
- * @param array  $headers Array of headers (each value an array).
- *
- * @return string
- * @internal
- */
-function _parse_request_uri($path, array $headers)
-{
-    $hostKey = array_filter(array_keys($headers), function ($k) {
-        return strtolower($k) === 'host';
-    });
-
-    // If no host is found, then a full URI cannot be constructed.
-    if (!$hostKey) {
-        return $path;
-    }
-
-    $host = $headers[reset($hostKey)][0];
-    $scheme = substr($host, -4) === ':443' ? 'https' : 'http';
-
-    return $scheme . '://' . $host . '/' . ltrim($path, '/');
-}
-
-/** @internal */
-function _caseless_remove($keys, array $data)
-{
-    $result = [];
-
-    foreach ($keys as &$key) {
-        $key = strtolower($key);
-    }
-
-    foreach ($data as $k => $v) {
-        if (!in_array(strtolower($k), $keys)) {
-            $result[$k] = $v;
-        }
-    }
-
-    return $result;
-}
diff --git a/core/vendor/guzzlehttp/psr7/src/functions_include.php b/core/vendor/guzzlehttp/psr7/src/functions_include.php
deleted file mode 100644
index 96a4a83..0000000
--- a/core/vendor/guzzlehttp/psr7/src/functions_include.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-// Don't redefine the functions if included multiple times.
-if (!function_exists('GuzzleHttp\Psr7\str')) {
-    require __DIR__ . '/functions.php';
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/AppendStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/AppendStreamTest.php
deleted file mode 100644
index 3c197dc..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/AppendStreamTest.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\AppendStream;
-use GuzzleHttp\Psr7;
-
-class AppendStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Each stream must be readable
-     */
-    public function testValidatesStreamsAreReadable()
-    {
-        $a = new AppendStream();
-        $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isReadable'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(false));
-        $a->addStream($s);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage The AppendStream can only seek with SEEK_SET
-     */
-    public function testValidatesSeekType()
-    {
-        $a = new AppendStream();
-        $a->seek(100, SEEK_CUR);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Unable to seek stream 0 of the AppendStream
-     */
-    public function testTriesToRewindOnSeek()
-    {
-        $a = new AppendStream();
-        $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isReadable', 'rewind', 'isSeekable'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(true));
-        $s->expects($this->once())
-            ->method('isSeekable')
-            ->will($this->returnValue(true));
-        $s->expects($this->once())
-            ->method('rewind')
-            ->will($this->throwException(new \RuntimeException()));
-        $a->addStream($s);
-        $a->seek(10);
-    }
-
-    public function testSeeksToPositionByReading()
-    {
-        $a = new AppendStream([
-            Psr7\stream_for('foo'),
-            Psr7\stream_for('bar'),
-            Psr7\stream_for('baz'),
-        ]);
-
-        $a->seek(3);
-        $this->assertEquals(3, $a->tell());
-        $this->assertEquals('bar', $a->read(3));
-
-        $a->seek(6);
-        $this->assertEquals(6, $a->tell());
-        $this->assertEquals('baz', $a->read(3));
-    }
-
-    public function testDetachesEachStream()
-    {
-        $s1 = Psr7\stream_for('foo');
-        $s2 = Psr7\stream_for('bar');
-        $a = new AppendStream([$s1, $s2]);
-        $this->assertSame('foobar', (string) $a);
-        $a->detach();
-        $this->assertSame('', (string) $a);
-        $this->assertSame(0, $a->getSize());
-    }
-
-    public function testClosesEachStream()
-    {
-        $s1 = Psr7\stream_for('foo');
-        $a = new AppendStream([$s1]);
-        $a->close();
-        $this->assertSame('', (string) $a);
-    }
-
-    /**
-     * @expectedExceptionMessage Cannot write to an AppendStream
-     * @expectedException \RuntimeException
-     */
-    public function testIsNotWritable()
-    {
-        $a = new AppendStream([Psr7\stream_for('foo')]);
-        $this->assertFalse($a->isWritable());
-        $this->assertTrue($a->isSeekable());
-        $this->assertTrue($a->isReadable());
-        $a->write('foo');
-    }
-
-    public function testDoesNotNeedStreams()
-    {
-        $a = new AppendStream();
-        $this->assertEquals('', (string) $a);
-    }
-
-    public function testCanReadFromMultipleStreams()
-    {
-        $a = new AppendStream([
-            Psr7\stream_for('foo'),
-            Psr7\stream_for('bar'),
-            Psr7\stream_for('baz'),
-        ]);
-        $this->assertFalse($a->eof());
-        $this->assertSame(0, $a->tell());
-        $this->assertEquals('foo', $a->read(3));
-        $this->assertEquals('bar', $a->read(3));
-        $this->assertEquals('baz', $a->read(3));
-        $this->assertSame('', $a->read(1));
-        $this->assertTrue($a->eof());
-        $this->assertSame(9, $a->tell());
-        $this->assertEquals('foobarbaz', (string) $a);
-    }
-
-    public function testCanDetermineSizeFromMultipleStreams()
-    {
-        $a = new AppendStream([
-            Psr7\stream_for('foo'),
-            Psr7\stream_for('bar')
-        ]);
-        $this->assertEquals(6, $a->getSize());
-
-        $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isSeekable', 'isReadable'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isSeekable')
-            ->will($this->returnValue(null));
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(true));
-        $a->addStream($s);
-        $this->assertNull($a->getSize());
-    }
-
-    public function testCatchesExceptionsWhenCastingToString()
-    {
-        $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isSeekable', 'read', 'isReadable', 'eof'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isSeekable')
-            ->will($this->returnValue(true));
-        $s->expects($this->once())
-            ->method('read')
-            ->will($this->throwException(new \RuntimeException('foo')));
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(true));
-        $s->expects($this->any())
-            ->method('eof')
-            ->will($this->returnValue(false));
-        $a = new AppendStream([$s]);
-        $this->assertFalse($a->eof());
-        $this->assertSame('', (string) $a);
-    }
-
-    public function testCanDetach()
-    {
-        $s = new AppendStream();
-        $s->detach();
-    }
-
-    public function testReturnsEmptyMetadata()
-    {
-        $s = new AppendStream();
-        $this->assertEquals([], $s->getMetadata());
-        $this->assertNull($s->getMetadata('foo'));
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/BufferStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/BufferStreamTest.php
deleted file mode 100644
index 0a635d4..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/BufferStreamTest.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\BufferStream;
-
-class BufferStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasMetadata()
-    {
-        $b = new BufferStream(10);
-        $this->assertTrue($b->isReadable());
-        $this->assertTrue($b->isWritable());
-        $this->assertFalse($b->isSeekable());
-        $this->assertEquals(null, $b->getMetadata('foo'));
-        $this->assertEquals(10, $b->getMetadata('hwm'));
-        $this->assertEquals([], $b->getMetadata());
-    }
-
-    public function testRemovesReadDataFromBuffer()
-    {
-        $b = new BufferStream();
-        $this->assertEquals(3, $b->write('foo'));
-        $this->assertEquals(3, $b->getSize());
-        $this->assertFalse($b->eof());
-        $this->assertEquals('foo', $b->read(10));
-        $this->assertTrue($b->eof());
-        $this->assertEquals('', $b->read(10));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Cannot determine the position of a BufferStream
-     */
-    public function testCanCastToStringOrGetContents()
-    {
-        $b = new BufferStream();
-        $b->write('foo');
-        $b->write('baz');
-        $this->assertEquals('foo', $b->read(3));
-        $b->write('bar');
-        $this->assertEquals('bazbar', (string) $b);
-        $b->tell();
-    }
-
-    public function testDetachClearsBuffer()
-    {
-        $b = new BufferStream();
-        $b->write('foo');
-        $b->detach();
-        $this->assertTrue($b->eof());
-        $this->assertEquals(3, $b->write('abc'));
-        $this->assertEquals('abc', $b->read(10));
-    }
-
-    public function testExceedingHighwaterMarkReturnsFalseButStillBuffers()
-    {
-        $b = new BufferStream(5);
-        $this->assertEquals(3, $b->write('hi '));
-        $this->assertFalse($b->write('hello'));
-        $this->assertEquals('hi hello', (string) $b);
-        $this->assertEquals(4, $b->write('test'));
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/CachingStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/CachingStreamTest.php
deleted file mode 100644
index f82c3a5..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/CachingStreamTest.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\CachingStream;
-
-/**
- * @covers GuzzleHttp\Psr7\CachingStream
- */
-class CachingStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var CachingStream */
-    protected $body;
-    protected $decorated;
-
-    public function setUp()
-    {
-        $this->decorated = Psr7\stream_for('testing');
-        $this->body = new CachingStream($this->decorated);
-    }
-
-    public function tearDown()
-    {
-        $this->decorated->close();
-        $this->body->close();
-    }
-
-    public function testUsesRemoteSizeIfPossible()
-    {
-        $body = Psr7\stream_for('test');
-        $caching = new CachingStream($body);
-        $this->assertEquals(4, $caching->getSize());
-    }
-
-    public function testReadsUntilCachedToByte()
-    {
-        $this->body->seek(5);
-        $this->assertEquals('n', $this->body->read(1));
-        $this->body->seek(0);
-        $this->assertEquals('t', $this->body->read(1));
-    }
-
-    public function testCanSeekNearEndWithSeekEnd()
-    {
-        $baseStream = Psr7\stream_for(implode('', range('a', 'z')));
-        $cached = new CachingStream($baseStream);
-        $cached->seek(1, SEEK_END);
-        $this->assertEquals(24, $baseStream->tell());
-        $this->assertEquals('y', $cached->read(1));
-        $this->assertEquals(26, $cached->getSize());
-    }
-
-    public function testCanSeekToEndWithSeekEnd()
-    {
-        $baseStream = Psr7\stream_for(implode('', range('a', 'z')));
-        $cached = new CachingStream($baseStream);
-        $cached->seek(0, SEEK_END);
-        $this->assertEquals(25, $baseStream->tell());
-        $this->assertEquals('z', $cached->read(1));
-        $this->assertEquals(26, $cached->getSize());
-    }
-
-    public function testCanUseSeekEndWithUnknownSize()
-    {
-        $baseStream = Psr7\stream_for('testing');
-        $decorated = Psr7\FnStream::decorate($baseStream, [
-            'getSize' => function () { return null; }
-        ]);
-        $cached = new CachingStream($decorated);
-        $cached->seek(1, SEEK_END);
-        $this->assertEquals('ng', $cached->read(2));
-    }
-
-    public function testRewindUsesSeek()
-    {
-        $a = Psr7\stream_for('foo');
-        $d = $this->getMockBuilder('GuzzleHttp\Psr7\CachingStream')
-            ->setMethods(array('seek'))
-            ->setConstructorArgs(array($a))
-            ->getMock();
-        $d->expects($this->once())
-            ->method('seek')
-            ->with(0)
-            ->will($this->returnValue(true));
-        $d->seek(0);
-    }
-
-    public function testCanSeekToReadBytes()
-    {
-        $this->assertEquals('te', $this->body->read(2));
-        $this->body->seek(0);
-        $this->assertEquals('test', $this->body->read(4));
-        $this->assertEquals(4, $this->body->tell());
-        $this->body->seek(2);
-        $this->assertEquals(2, $this->body->tell());
-        $this->body->seek(2, SEEK_CUR);
-        $this->assertEquals(4, $this->body->tell());
-        $this->assertEquals('ing', $this->body->read(3));
-    }
-
-    public function testWritesToBufferStream()
-    {
-        $this->body->read(2);
-        $this->body->write('hi');
-        $this->body->seek(0);
-        $this->assertEquals('tehiing', (string) $this->body);
-    }
-
-    public function testSkipsOverwrittenBytes()
-    {
-        $decorated = Psr7\stream_for(
-            implode("\n", array_map(function ($n) {
-                return str_pad($n, 4, '0', STR_PAD_LEFT);
-            }, range(0, 25)))
-        );
-
-        $body = new CachingStream($decorated);
-
-        $this->assertEquals("0000\n", Psr7\readline($body));
-        $this->assertEquals("0001\n", Psr7\readline($body));
-        // Write over part of the body yet to be read, so skip some bytes
-        $this->assertEquals(5, $body->write("TEST\n"));
-        $this->assertEquals(5, $this->readAttribute($body, 'skipReadBytes'));
-        // Read, which skips bytes, then reads
-        $this->assertEquals("0003\n", Psr7\readline($body));
-        $this->assertEquals(0, $this->readAttribute($body, 'skipReadBytes'));
-        $this->assertEquals("0004\n", Psr7\readline($body));
-        $this->assertEquals("0005\n", Psr7\readline($body));
-
-        // Overwrite part of the cached body (so don't skip any bytes)
-        $body->seek(5);
-        $this->assertEquals(5, $body->write("ABCD\n"));
-        $this->assertEquals(0, $this->readAttribute($body, 'skipReadBytes'));
-        $this->assertEquals("TEST\n", Psr7\readline($body));
-        $this->assertEquals("0003\n", Psr7\readline($body));
-        $this->assertEquals("0004\n", Psr7\readline($body));
-        $this->assertEquals("0005\n", Psr7\readline($body));
-        $this->assertEquals("0006\n", Psr7\readline($body));
-        $this->assertEquals(5, $body->write("1234\n"));
-        $this->assertEquals(5, $this->readAttribute($body, 'skipReadBytes'));
-
-        // Seek to 0 and ensure the overwritten bit is replaced
-        $body->seek(0);
-        $this->assertEquals("0000\nABCD\nTEST\n0003\n0004\n0005\n0006\n1234\n0008\n0009\n", $body->read(50));
-
-        // Ensure that casting it to a string does not include the bit that was overwritten
-        $this->assertContains("0000\nABCD\nTEST\n0003\n0004\n0005\n0006\n1234\n0008\n0009\n", (string) $body);
-    }
-
-    public function testClosesBothStreams()
-    {
-        $s = fopen('php://temp', 'r');
-        $a = Psr7\stream_for($s);
-        $d = new CachingStream($a);
-        $d->close();
-        $this->assertFalse(is_resource($s));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testEnsuresValidWhence()
-    {
-        $this->body->seek(10, -123456);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/DroppingStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/DroppingStreamTest.php
deleted file mode 100644
index 915b215..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/DroppingStreamTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\BufferStream;
-use GuzzleHttp\Psr7\DroppingStream;
-
-class DroppingStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testBeginsDroppingWhenSizeExceeded()
-    {
-        $stream = new BufferStream();
-        $drop = new DroppingStream($stream, 5);
-        $this->assertEquals(3, $drop->write('hel'));
-        $this->assertEquals(2, $drop->write('lo'));
-        $this->assertEquals(5, $drop->getSize());
-        $this->assertEquals('hello', $drop->read(5));
-        $this->assertEquals(0, $drop->getSize());
-        $drop->write('12345678910');
-        $this->assertEquals(5, $stream->getSize());
-        $this->assertEquals(5, $drop->getSize());
-        $this->assertEquals('12345', (string) $drop);
-        $this->assertEquals(0, $drop->getSize());
-        $drop->write('hello');
-        $this->assertSame(0, $drop->write('test'));
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/FnStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/FnStreamTest.php
deleted file mode 100644
index 66ae90a..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/FnStreamTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\FnStream;
-
-/**
- * @covers GuzzleHttp\Psr7\FnStream
- */
-class FnStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \BadMethodCallException
-     * @expectedExceptionMessage seek() is not implemented in the FnStream
-     */
-    public function testThrowsWhenNotImplemented()
-    {
-        (new FnStream([]))->seek(1);
-    }
-
-    public function testProxiesToFunction()
-    {
-        $s = new FnStream([
-            'read' => function ($len) {
-                $this->assertEquals(3, $len);
-                return 'foo';
-            }
-        ]);
-
-        $this->assertEquals('foo', $s->read(3));
-    }
-
-    public function testCanCloseOnDestruct()
-    {
-        $called = false;
-        $s = new FnStream([
-            'close' => function () use (&$called) {
-                $called = true;
-            }
-        ]);
-        unset($s);
-        $this->assertTrue($called);
-    }
-
-    public function testDoesNotRequireClose()
-    {
-        $s = new FnStream([]);
-        unset($s);
-    }
-
-    public function testDecoratesStream()
-    {
-        $a = Psr7\stream_for('foo');
-        $b = FnStream::decorate($a, []);
-        $this->assertEquals(3, $b->getSize());
-        $this->assertEquals($b->isWritable(), true);
-        $this->assertEquals($b->isReadable(), true);
-        $this->assertEquals($b->isSeekable(), true);
-        $this->assertEquals($b->read(3), 'foo');
-        $this->assertEquals($b->tell(), 3);
-        $this->assertEquals($a->tell(), 3);
-        $this->assertSame('', $a->read(1));
-        $this->assertEquals($b->eof(), true);
-        $this->assertEquals($a->eof(), true);
-        $b->seek(0);
-        $this->assertEquals('foo', (string) $b);
-        $b->seek(0);
-        $this->assertEquals('foo', $b->getContents());
-        $this->assertEquals($a->getMetadata(), $b->getMetadata());
-        $b->seek(0, SEEK_END);
-        $b->write('bar');
-        $this->assertEquals('foobar', (string) $b);
-        $this->assertInternalType('resource', $b->detach());
-        $b->close();
-    }
-
-    public function testDecoratesWithCustomizations()
-    {
-        $called = false;
-        $a = Psr7\stream_for('foo');
-        $b = FnStream::decorate($a, [
-            'read' => function ($len) use (&$called, $a) {
-                $called = true;
-                return $a->read($len);
-            }
-        ]);
-        $this->assertEquals('foo', $b->read(3));
-        $this->assertTrue($called);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/FunctionsTest.php b/core/vendor/guzzlehttp/psr7/tests/FunctionsTest.php
deleted file mode 100644
index de5b5cb..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/FunctionsTest.php
+++ /dev/null
@@ -1,586 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\FnStream;
-use GuzzleHttp\Psr7\NoSeekStream;
-
-class FunctionsTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCopiesToString()
-    {
-        $s = Psr7\stream_for('foobaz');
-        $this->assertEquals('foobaz', Psr7\copy_to_string($s));
-        $s->seek(0);
-        $this->assertEquals('foo', Psr7\copy_to_string($s, 3));
-        $this->assertEquals('baz', Psr7\copy_to_string($s, 3));
-        $this->assertEquals('', Psr7\copy_to_string($s));
-    }
-
-    public function testCopiesToStringStopsWhenReadFails()
-    {
-        $s1 = Psr7\stream_for('foobaz');
-        $s1 = FnStream::decorate($s1, [
-            'read' => function () { return ''; }
-        ]);
-        $result = Psr7\copy_to_string($s1);
-        $this->assertEquals('', $result);
-    }
-
-    public function testCopiesToStream()
-    {
-        $s1 = Psr7\stream_for('foobaz');
-        $s2 = Psr7\stream_for('');
-        Psr7\copy_to_stream($s1, $s2);
-        $this->assertEquals('foobaz', (string) $s2);
-        $s2 = Psr7\stream_for('');
-        $s1->seek(0);
-        Psr7\copy_to_stream($s1, $s2, 3);
-        $this->assertEquals('foo', (string) $s2);
-        Psr7\copy_to_stream($s1, $s2, 3);
-        $this->assertEquals('foobaz', (string) $s2);
-    }
-
-    public function testStopsCopyToStreamWhenWriteFails()
-    {
-        $s1 = Psr7\stream_for('foobaz');
-        $s2 = Psr7\stream_for('');
-        $s2 = FnStream::decorate($s2, ['write' => function () { return 0; }]);
-        Psr7\copy_to_stream($s1, $s2);
-        $this->assertEquals('', (string) $s2);
-    }
-
-    public function testStopsCopyToSteamWhenWriteFailsWithMaxLen()
-    {
-        $s1 = Psr7\stream_for('foobaz');
-        $s2 = Psr7\stream_for('');
-        $s2 = FnStream::decorate($s2, ['write' => function () { return 0; }]);
-        Psr7\copy_to_stream($s1, $s2, 10);
-        $this->assertEquals('', (string) $s2);
-    }
-
-    public function testStopsCopyToSteamWhenReadFailsWithMaxLen()
-    {
-        $s1 = Psr7\stream_for('foobaz');
-        $s1 = FnStream::decorate($s1, ['read' => function () { return ''; }]);
-        $s2 = Psr7\stream_for('');
-        Psr7\copy_to_stream($s1, $s2, 10);
-        $this->assertEquals('', (string) $s2);
-    }
-
-    public function testReadsLines()
-    {
-        $s = Psr7\stream_for("foo\nbaz\nbar");
-        $this->assertEquals("foo\n", Psr7\readline($s));
-        $this->assertEquals("baz\n", Psr7\readline($s));
-        $this->assertEquals("bar", Psr7\readline($s));
-    }
-
-    public function testReadsLinesUpToMaxLength()
-    {
-        $s = Psr7\stream_for("12345\n");
-        $this->assertEquals("123", Psr7\readline($s, 4));
-        $this->assertEquals("45\n", Psr7\readline($s));
-    }
-
-    public function testReadsLineUntilFalseReturnedFromRead()
-    {
-        $s = $this->getMockBuilder('GuzzleHttp\Psr7\Stream')
-            ->setMethods(['read', 'eof'])
-            ->disableOriginalConstructor()
-            ->getMock();
-        $s->expects($this->exactly(2))
-            ->method('read')
-            ->will($this->returnCallback(function () {
-                static $c = false;
-                if ($c) {
-                    return false;
-                }
-                $c = true;
-                return 'h';
-            }));
-        $s->expects($this->exactly(2))
-            ->method('eof')
-            ->will($this->returnValue(false));
-        $this->assertEquals("h", Psr7\readline($s));
-    }
-
-    public function testCalculatesHash()
-    {
-        $s = Psr7\stream_for('foobazbar');
-        $this->assertEquals(md5('foobazbar'), Psr7\hash($s, 'md5'));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testCalculatesHashThrowsWhenSeekFails()
-    {
-        $s = new NoSeekStream(Psr7\stream_for('foobazbar'));
-        $s->read(2);
-        Psr7\hash($s, 'md5');
-    }
-
-    public function testCalculatesHashSeeksToOriginalPosition()
-    {
-        $s = Psr7\stream_for('foobazbar');
-        $s->seek(4);
-        $this->assertEquals(md5('foobazbar'), Psr7\hash($s, 'md5'));
-        $this->assertEquals(4, $s->tell());
-    }
-
-    public function testOpensFilesSuccessfully()
-    {
-        $r = Psr7\try_fopen(__FILE__, 'r');
-        $this->assertInternalType('resource', $r);
-        fclose($r);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Unable to open /path/to/does/not/exist using mode r
-     */
-    public function testThrowsExceptionNotWarning()
-    {
-        Psr7\try_fopen('/path/to/does/not/exist', 'r');
-    }
-
-    public function parseQueryProvider()
-    {
-        return [
-            // Does not need to parse when the string is empty
-            ['', []],
-            // Can parse mult-values items
-            ['q=a&q=b', ['q' => ['a', 'b']]],
-            // Can parse multi-valued items that use numeric indices
-            ['q[0]=a&q[1]=b', ['q[0]' => 'a', 'q[1]' => 'b']],
-            // Can parse duplicates and does not include numeric indices
-            ['q[]=a&q[]=b', ['q[]' => ['a', 'b']]],
-            // Ensures that the value of "q" is an array even though one value
-            ['q[]=a', ['q[]' => 'a']],
-            // Does not modify "." to "_" like PHP's parse_str()
-            ['q.a=a&q.b=b', ['q.a' => 'a', 'q.b' => 'b']],
-            // Can decode %20 to " "
-            ['q%20a=a%20b', ['q a' => 'a b']],
-            // Can parse funky strings with no values by assigning each to null
-            ['q&a', ['q' => null, 'a' => null]],
-            // Does not strip trailing equal signs
-            ['data=abc=', ['data' => 'abc=']],
-            // Can store duplicates without affecting other values
-            ['foo=a&foo=b&?µ=c', ['foo' => ['a', 'b'], '?µ' => 'c']],
-            // Sets value to null when no "=" is present
-            ['foo', ['foo' => null]],
-            // Preserves "0" keys.
-            ['0', ['0' => null]],
-            // Sets the value to an empty string when "=" is present
-            ['0=', ['0' => '']],
-            // Preserves falsey keys
-            ['var=0', ['var' => '0']],
-            ['a[b][c]=1&a[b][c]=2', ['a[b][c]' => ['1', '2']]],
-            ['a[b]=c&a[d]=e', ['a[b]' => 'c', 'a[d]' => 'e']],
-            // Ensure it doesn't leave things behind with repeated values
-            // Can parse mult-values items
-            ['q=a&q=b&q=c', ['q' => ['a', 'b', 'c']]],
-        ];
-    }
-
-    /**
-     * @dataProvider parseQueryProvider
-     */
-    public function testParsesQueries($input, $output)
-    {
-        $result = Psr7\parse_query($input);
-        $this->assertSame($output, $result);
-    }
-
-    public function testDoesNotDecode()
-    {
-        $str = 'foo%20=bar';
-        $data = Psr7\parse_query($str, false);
-        $this->assertEquals(['foo%20' => 'bar'], $data);
-    }
-
-    /**
-     * @dataProvider parseQueryProvider
-     */
-    public function testParsesAndBuildsQueries($input, $output)
-    {
-        $result = Psr7\parse_query($input, false);
-        $this->assertSame($input, Psr7\build_query($result, false));
-    }
-
-    public function testEncodesWithRfc1738()
-    {
-        $str = Psr7\build_query(['foo bar' => 'baz+'], PHP_QUERY_RFC1738);
-        $this->assertEquals('foo+bar=baz%2B', $str);
-    }
-
-    public function testEncodesWithRfc3986()
-    {
-        $str = Psr7\build_query(['foo bar' => 'baz+'], PHP_QUERY_RFC3986);
-        $this->assertEquals('foo%20bar=baz%2B', $str);
-    }
-
-    public function testDoesNotEncode()
-    {
-        $str = Psr7\build_query(['foo bar' => 'baz+'], false);
-        $this->assertEquals('foo bar=baz+', $str);
-    }
-
-    public function testCanControlDecodingType()
-    {
-        $result = Psr7\parse_query('var=foo+bar', PHP_QUERY_RFC3986);
-        $this->assertEquals('foo+bar', $result['var']);
-        $result = Psr7\parse_query('var=foo+bar', PHP_QUERY_RFC1738);
-        $this->assertEquals('foo bar', $result['var']);
-    }
-
-    public function testParsesRequestMessages()
-    {
-        $req = "GET /abc HTTP/1.0\r\nHost: foo.com\r\nFoo: Bar\r\nBaz: Bam\r\nBaz: Qux\r\n\r\nTest";
-        $request = Psr7\parse_request($req);
-        $this->assertEquals('GET', $request->getMethod());
-        $this->assertEquals('/abc', $request->getRequestTarget());
-        $this->assertEquals('1.0', $request->getProtocolVersion());
-        $this->assertEquals('foo.com', $request->getHeaderLine('Host'));
-        $this->assertEquals('Bar', $request->getHeaderLine('Foo'));
-        $this->assertEquals('Bam, Qux', $request->getHeaderLine('Baz'));
-        $this->assertEquals('Test', (string) $request->getBody());
-        $this->assertEquals('http://foo.com/abc', (string) $request->getUri());
-    }
-
-    public function testParsesRequestMessagesWithHttpsScheme()
-    {
-        $req = "PUT /abc?baz=bar HTTP/1.1\r\nHost: foo.com:443\r\n\r\n";
-        $request = Psr7\parse_request($req);
-        $this->assertEquals('PUT', $request->getMethod());
-        $this->assertEquals('/abc?baz=bar', $request->getRequestTarget());
-        $this->assertEquals('1.1', $request->getProtocolVersion());
-        $this->assertEquals('foo.com:443', $request->getHeaderLine('Host'));
-        $this->assertEquals('', (string) $request->getBody());
-        $this->assertEquals('https://foo.com/abc?baz=bar', (string) $request->getUri());
-    }
-
-    public function testParsesRequestMessagesWithUriWhenHostIsNotFirst()
-    {
-        $req = "PUT / HTTP/1.1\r\nFoo: Bar\r\nHost: foo.com\r\n\r\n";
-        $request = Psr7\parse_request($req);
-        $this->assertEquals('PUT', $request->getMethod());
-        $this->assertEquals('/', $request->getRequestTarget());
-        $this->assertEquals('http://foo.com/', (string) $request->getUri());
-    }
-
-    public function testParsesRequestMessagesWithFullUri()
-    {
-        $req = "GET https://www.google.com:443/search?q=foobar HTTP/1.1\r\nHost: www.google.com\r\n\r\n";
-        $request = Psr7\parse_request($req);
-        $this->assertEquals('GET', $request->getMethod());
-        $this->assertEquals('https://www.google.com:443/search?q=foobar', $request->getRequestTarget());
-        $this->assertEquals('1.1', $request->getProtocolVersion());
-        $this->assertEquals('www.google.com', $request->getHeaderLine('Host'));
-        $this->assertEquals('', (string) $request->getBody());
-        $this->assertEquals('https://www.google.com/search?q=foobar', (string) $request->getUri());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesRequestMessages()
-    {
-        Psr7\parse_request("HTTP/1.1 200 OK\r\n\r\n");
-    }
-
-    public function testParsesResponseMessages()
-    {
-        $res = "HTTP/1.0 200 OK\r\nFoo: Bar\r\nBaz: Bam\r\nBaz: Qux\r\n\r\nTest";
-        $response = Psr7\parse_response($res);
-        $this->assertEquals(200, $response->getStatusCode());
-        $this->assertEquals('OK', $response->getReasonPhrase());
-        $this->assertEquals('1.0', $response->getProtocolVersion());
-        $this->assertEquals('Bar', $response->getHeaderLine('Foo'));
-        $this->assertEquals('Bam, Qux', $response->getHeaderLine('Baz'));
-        $this->assertEquals('Test', (string) $response->getBody());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesResponseMessages()
-    {
-        Psr7\parse_response("GET / HTTP/1.1\r\n\r\n");
-    }
-
-    public function testDetermineMimetype()
-    {
-        $this->assertNull(Psr7\mimetype_from_extension('not-a-real-extension'));
-        $this->assertEquals(
-            'application/json',
-            Psr7\mimetype_from_extension('json')
-        );
-        $this->assertEquals(
-            'image/jpeg',
-            Psr7\mimetype_from_filename('/tmp/images/IMG034821.JPEG')
-        );
-    }
-
-    public function testCreatesUriForValue()
-    {
-        $this->assertInstanceOf('GuzzleHttp\Psr7\Uri', Psr7\uri_for('/foo'));
-        $this->assertInstanceOf(
-            'GuzzleHttp\Psr7\Uri',
-            Psr7\uri_for(new Psr7\Uri('/foo'))
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesUri()
-    {
-        Psr7\uri_for([]);
-    }
-
-    public function testKeepsPositionOfResource()
-    {
-        $h = fopen(__FILE__, 'r');
-        fseek($h, 10);
-        $stream = Psr7\stream_for($h);
-        $this->assertEquals(10, $stream->tell());
-        $stream->close();
-    }
-
-    public function testCreatesWithFactory()
-    {
-        $stream = Psr7\stream_for('foo');
-        $this->assertInstanceOf('GuzzleHttp\Psr7\Stream', $stream);
-        $this->assertEquals('foo', $stream->getContents());
-        $stream->close();
-    }
-
-    public function testFactoryCreatesFromEmptyString()
-    {
-        $s = Psr7\stream_for();
-        $this->assertInstanceOf('GuzzleHttp\Psr7\Stream', $s);
-    }
-
-    public function testFactoryCreatesFromNull()
-    {
-        $s = Psr7\stream_for(null);
-        $this->assertInstanceOf('GuzzleHttp\Psr7\Stream', $s);
-    }
-
-    public function testFactoryCreatesFromResource()
-    {
-        $r = fopen(__FILE__, 'r');
-        $s = Psr7\stream_for($r);
-        $this->assertInstanceOf('GuzzleHttp\Psr7\Stream', $s);
-        $this->assertSame(file_get_contents(__FILE__), (string) $s);
-    }
-
-    public function testFactoryCreatesFromObjectWithToString()
-    {
-        $r = new HasToString();
-        $s = Psr7\stream_for($r);
-        $this->assertInstanceOf('GuzzleHttp\Psr7\Stream', $s);
-        $this->assertEquals('foo', (string) $s);
-    }
-
-    public function testCreatePassesThrough()
-    {
-        $s = Psr7\stream_for('foo');
-        $this->assertSame($s, Psr7\stream_for($s));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testThrowsExceptionForUnknown()
-    {
-        Psr7\stream_for(new \stdClass());
-    }
-
-    public function testReturnsCustomMetadata()
-    {
-        $s = Psr7\stream_for('foo', ['metadata' => ['hwm' => 3]]);
-        $this->assertEquals(3, $s->getMetadata('hwm'));
-        $this->assertArrayHasKey('hwm', $s->getMetadata());
-    }
-
-    public function testCanSetSize()
-    {
-        $s = Psr7\stream_for('', ['size' => 10]);
-        $this->assertEquals(10, $s->getSize());
-    }
-
-    public function testCanCreateIteratorBasedStream()
-    {
-        $a = new \ArrayIterator(['foo', 'bar', '123']);
-        $p = Psr7\stream_for($a);
-        $this->assertInstanceOf('GuzzleHttp\Psr7\PumpStream', $p);
-        $this->assertEquals('foo', $p->read(3));
-        $this->assertFalse($p->eof());
-        $this->assertEquals('b', $p->read(1));
-        $this->assertEquals('a', $p->read(1));
-        $this->assertEquals('r12', $p->read(3));
-        $this->assertFalse($p->eof());
-        $this->assertEquals('3', $p->getContents());
-        $this->assertTrue($p->eof());
-        $this->assertEquals(9, $p->tell());
-    }
-
-    public function testConvertsRequestsToStrings()
-    {
-        $request = new Psr7\Request('PUT', 'http://foo.com/hi?123', [
-            'Baz' => 'bar',
-            'Qux' => ' ipsum'
-        ], 'hello', '1.0');
-        $this->assertEquals(
-            "PUT /hi?123 HTTP/1.0\r\nHost: foo.com\r\nBaz: bar\r\nQux: ipsum\r\n\r\nhello",
-            Psr7\str($request)
-        );
-    }
-
-    public function testConvertsResponsesToStrings()
-    {
-        $response = new Psr7\Response(200, [
-            'Baz' => 'bar',
-            'Qux' => ' ipsum'
-        ], 'hello', '1.0', 'FOO');
-        $this->assertEquals(
-            "HTTP/1.0 200 FOO\r\nBaz: bar\r\nQux: ipsum\r\n\r\nhello",
-            Psr7\str($response)
-        );
-    }
-
-    public function parseParamsProvider()
-    {
-        $res1 = array(
-            array(
-                '<http:/.../front.jpeg>',
-                'rel' => 'front',
-                'type' => 'image/jpeg',
-            ),
-            array(
-                '<http://.../back.jpeg>',
-                'rel' => 'back',
-                'type' => 'image/jpeg',
-            ),
-        );
-        return array(
-            array(
-                '<http:/.../front.jpeg>; rel="front"; type="image/jpeg", <http://.../back.jpeg>; rel=back; type="image/jpeg"',
-                $res1
-            ),
-            array(
-                '<http:/.../front.jpeg>; rel="front"; type="image/jpeg",<http://.../back.jpeg>; rel=back; type="image/jpeg"',
-                $res1
-            ),
-            array(
-                'foo="baz"; bar=123, boo, test="123", foobar="foo;bar"',
-                array(
-                    array('foo' => 'baz', 'bar' => '123'),
-                    array('boo'),
-                    array('test' => '123'),
-                    array('foobar' => 'foo;bar')
-                )
-            ),
-            array(
-                '<http://.../side.jpeg?test=1>; rel="side"; type="image/jpeg",<http://.../side.jpeg?test=2>; rel=side; type="image/jpeg"',
-                array(
-                    array('<http://.../side.jpeg?test=1>', 'rel' => 'side', 'type' => 'image/jpeg'),
-                    array('<http://.../side.jpeg?test=2>', 'rel' => 'side', 'type' => 'image/jpeg')
-                )
-            ),
-            array(
-                '',
-                array()
-            )
-        );
-    }
-    /**
-     * @dataProvider parseParamsProvider
-     */
-    public function testParseParams($header, $result)
-    {
-        $this->assertEquals($result, Psr7\parse_header($header));
-    }
-
-    public function testParsesArrayHeaders()
-    {
-        $header = ['a, b', 'c', 'd, e'];
-        $this->assertEquals(['a', 'b', 'c', 'd', 'e'], Psr7\normalize_header($header));
-    }
-
-    public function testRewindsBody()
-    {
-        $body = Psr7\stream_for('abc');
-        $res = new Psr7\Response(200, [], $body);
-        Psr7\rewind_body($res);
-        $this->assertEquals(0, $body->tell());
-        $body->rewind(1);
-        Psr7\rewind_body($res);
-        $this->assertEquals(0, $body->tell());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testThrowsWhenBodyCannotBeRewound()
-    {
-        $body = Psr7\stream_for('abc');
-        $body->read(1);
-        $body = FnStream::decorate($body, [
-            'rewind' => function () { throw new \RuntimeException('a'); }
-        ]);
-        $res = new Psr7\Response(200, [], $body);
-        Psr7\rewind_body($res);
-    }
-
-    public function testCanModifyRequestWithUri()
-    {
-        $r1 = new Psr7\Request('GET', 'http://foo.com');
-        $r2 = Psr7\modify_request($r1, [
-            'uri' => new Psr7\Uri('http://www.foo.com')
-        ]);
-        $this->assertEquals('http://www.foo.com', (string) $r2->getUri());
-        $this->assertEquals('www.foo.com', (string) $r2->getHeaderLine('host'));
-    }
-
-    public function testCanModifyRequestWithCaseInsensitiveHeader()
-    {
-        $r1 = new Psr7\Request('GET', 'http://foo.com', ['User-Agent' => 'foo']);
-        $r2 = Psr7\modify_request($r1, ['set_headers' => ['User-agent' => 'bar']]);
-        $this->assertEquals('bar', $r2->getHeaderLine('User-Agent'));
-        $this->assertEquals('bar', $r2->getHeaderLine('User-agent'));
-    }
-
-    public function testReturnsAsIsWhenNoChanges()
-    {
-        $request = new Psr7\Request('GET', 'http://foo.com');
-        $this->assertSame($request, Psr7\modify_request($request, []));
-    }
-
-    public function testReturnsUriAsIsWhenNoChanges()
-    {
-        $r1 = new Psr7\Request('GET', 'http://foo.com');
-        $r2 = Psr7\modify_request($r1, ['set_headers' => ['foo' => 'bar']]);
-        $this->assertNotSame($r1, $r2);
-        $this->assertEquals('bar', $r2->getHeaderLine('foo'));
-    }
-
-    public function testRemovesHeadersFromMessage()
-    {
-        $r1 = new Psr7\Request('GET', 'http://foo.com', ['foo' => 'bar']);
-        $r2 = Psr7\modify_request($r1, ['remove_headers' => ['foo']]);
-        $this->assertNotSame($r1, $r2);
-        $this->assertFalse($r2->hasHeader('foo'));
-    }
-
-    public function testAddsQueryToUri()
-    {
-        $r1 = new Psr7\Request('GET', 'http://foo.com');
-        $r2 = Psr7\modify_request($r1, ['query' => 'foo=bar']);
-        $this->assertNotSame($r1, $r2);
-        $this->assertEquals('foo=bar', $r2->getUri()->getQuery());
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/InflateStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/InflateStreamTest.php
deleted file mode 100644
index 927fc0b..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/InflateStreamTest.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\InflateStream;
-
-class InflateStreamtest extends \PHPUnit_Framework_TestCase
-{
-    public function testInflatesStreams()
-    {
-        $content = gzencode('test');
-        $a = Psr7\stream_for($content);
-        $b = new InflateStream($a);
-        $this->assertEquals('test', (string) $b);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/LazyOpenStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/LazyOpenStreamTest.php
deleted file mode 100644
index fdef142..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/LazyOpenStreamTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\LazyOpenStream;
-
-class LazyOpenStreamTest extends \PHPUnit_Framework_TestCase
-{
-    private $fname;
-
-    public function setup()
-    {
-        $this->fname = tempnam('/tmp', 'tfile');
-
-        if (file_exists($this->fname)) {
-            unlink($this->fname);
-        }
-    }
-
-    public function tearDown()
-    {
-        if (file_exists($this->fname)) {
-            unlink($this->fname);
-        }
-    }
-
-    public function testOpensLazily()
-    {
-        $l = new LazyOpenStream($this->fname, 'w+');
-        $l->write('foo');
-        $this->assertInternalType('array', $l->getMetadata());
-        $this->assertFileExists($this->fname);
-        $this->assertEquals('foo', file_get_contents($this->fname));
-        $this->assertEquals('foo', (string) $l);
-    }
-
-    public function testProxiesToFile()
-    {
-        file_put_contents($this->fname, 'foo');
-        $l = new LazyOpenStream($this->fname, 'r');
-        $this->assertEquals('foo', $l->read(4));
-        $this->assertTrue($l->eof());
-        $this->assertEquals(3, $l->tell());
-        $this->assertTrue($l->isReadable());
-        $this->assertTrue($l->isSeekable());
-        $this->assertFalse($l->isWritable());
-        $l->seek(1);
-        $this->assertEquals('oo', $l->getContents());
-        $this->assertEquals('foo', (string) $l);
-        $this->assertEquals(3, $l->getSize());
-        $this->assertInternalType('array', $l->getMetadata());
-        $l->close();
-    }
-
-    public function testDetachesUnderlyingStream()
-    {
-        file_put_contents($this->fname, 'foo');
-        $l = new LazyOpenStream($this->fname, 'r');
-        $r = $l->detach();
-        $this->assertInternalType('resource', $r);
-        fseek($r, 0);
-        $this->assertEquals('foo', stream_get_contents($r));
-        fclose($r);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/LimitStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/LimitStreamTest.php
deleted file mode 100644
index 2198b7a..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/LimitStreamTest.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\FnStream;
-use GuzzleHttp\Psr7\Stream;
-use GuzzleHttp\Psr7\LimitStream;
-use GuzzleHttp\Psr7\NoSeekStream;
-
-/**
- * @covers GuzzleHttp\Psr7\LimitStream
- */
-class LimitStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var LimitStream */
-    protected $body;
-
-    /** @var Stream */
-    protected $decorated;
-
-    public function setUp()
-    {
-        $this->decorated = Psr7\stream_for(fopen(__FILE__, 'r'));
-        $this->body = new LimitStream($this->decorated, 10, 3);
-    }
-
-    public function testReturnsSubset()
-    {
-        $body = new LimitStream(Psr7\stream_for('foo'), -1, 1);
-        $this->assertEquals('oo', (string) $body);
-        $this->assertTrue($body->eof());
-        $body->seek(0);
-        $this->assertFalse($body->eof());
-        $this->assertEquals('oo', $body->read(100));
-        $this->assertSame('', $body->read(1));
-        $this->assertTrue($body->eof());
-    }
-
-    public function testReturnsSubsetWhenCastToString()
-    {
-        $body = Psr7\stream_for('foo_baz_bar');
-        $limited = new LimitStream($body, 3, 4);
-        $this->assertEquals('baz', (string) $limited);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Unable to seek to stream position 10 with whence 0
-     */
-    public function testEnsuresPositionCanBeekSeekedTo()
-    {
-        new LimitStream(Psr7\stream_for(''), 0, 10);
-    }
-
-    public function testReturnsSubsetOfEmptyBodyWhenCastToString()
-    {
-        $body = Psr7\stream_for('01234567891234');
-        $limited = new LimitStream($body, 0, 10);
-        $this->assertEquals('', (string) $limited);
-    }
-
-    public function testReturnsSpecificSubsetOBodyWhenCastToString()
-    {
-        $body = Psr7\stream_for('0123456789abcdef');
-        $limited = new LimitStream($body, 3, 10);
-        $this->assertEquals('abc', (string) $limited);
-    }
-
-    public function testSeeksWhenConstructed()
-    {
-        $this->assertEquals(0, $this->body->tell());
-        $this->assertEquals(3, $this->decorated->tell());
-    }
-
-    public function testAllowsBoundedSeek()
-    {
-        $this->body->seek(100);
-        $this->assertEquals(10, $this->body->tell());
-        $this->assertEquals(13, $this->decorated->tell());
-        $this->body->seek(0);
-        $this->assertEquals(0, $this->body->tell());
-        $this->assertEquals(3, $this->decorated->tell());
-        try {
-            $this->body->seek(-10);
-            $this->fail();
-        } catch (\RuntimeException $e) {}
-        $this->assertEquals(0, $this->body->tell());
-        $this->assertEquals(3, $this->decorated->tell());
-        $this->body->seek(5);
-        $this->assertEquals(5, $this->body->tell());
-        $this->assertEquals(8, $this->decorated->tell());
-        // Fail
-        try {
-            $this->body->seek(1000, SEEK_END);
-            $this->fail();
-        } catch (\RuntimeException $e) {}
-    }
-
-    public function testReadsOnlySubsetOfData()
-    {
-        $data = $this->body->read(100);
-        $this->assertEquals(10, strlen($data));
-        $this->assertSame('', $this->body->read(1000));
-
-        $this->body->setOffset(10);
-        $newData = $this->body->read(100);
-        $this->assertEquals(10, strlen($newData));
-        $this->assertNotSame($data, $newData);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Could not seek to stream offset 2
-     */
-    public function testThrowsWhenCurrentGreaterThanOffsetSeek()
-    {
-        $a = Psr7\stream_for('foo_bar');
-        $b = new NoSeekStream($a);
-        $c = new LimitStream($b);
-        $a->getContents();
-        $c->setOffset(2);
-    }
-
-    public function testCanGetContentsWithoutSeeking()
-    {
-        $a = Psr7\stream_for('foo_bar');
-        $b = new NoSeekStream($a);
-        $c = new LimitStream($b);
-        $this->assertEquals('foo_bar', $c->getContents());
-    }
-
-    public function testClaimsConsumedWhenReadLimitIsReached()
-    {
-        $this->assertFalse($this->body->eof());
-        $this->body->read(1000);
-        $this->assertTrue($this->body->eof());
-    }
-
-    public function testContentLengthIsBounded()
-    {
-        $this->assertEquals(10, $this->body->getSize());
-    }
-
-    public function testGetContentsIsBasedOnSubset()
-    {
-        $body = new LimitStream(Psr7\stream_for('foobazbar'), 3, 3);
-        $this->assertEquals('baz', $body->getContents());
-    }
-
-    public function testReturnsNullIfSizeCannotBeDetermined()
-    {
-        $a = new FnStream([
-            'getSize' => function () { return null; },
-            'tell'    => function () { return 0; },
-        ]);
-        $b = new LimitStream($a);
-        $this->assertNull($b->getSize());
-    }
-
-    public function testLengthLessOffsetWhenNoLimitSize()
-    {
-        $a = Psr7\stream_for('foo_bar');
-        $b = new LimitStream($a, -1, 4);
-        $this->assertEquals(3, $b->getSize());
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/MultipartStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/MultipartStreamTest.php
deleted file mode 100644
index 61edb06..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/MultipartStreamTest.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\MultipartStream;
-
-class MultipartStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCreatesDefaultBoundary()
-    {
-        $b = new MultipartStream();
-        $this->assertNotEmpty($b->getBoundary());
-    }
-
-    public function testCanProvideBoundary()
-    {
-        $b = new MultipartStream([], 'foo');
-        $this->assertEquals('foo', $b->getBoundary());
-    }
-
-    public function testIsNotWritable()
-    {
-        $b = new MultipartStream();
-        $this->assertFalse($b->isWritable());
-    }
-
-    public function testCanCreateEmptyStream()
-    {
-        $b = new MultipartStream();
-        $boundary = $b->getBoundary();
-        $this->assertSame("--{$boundary}--\r\n", $b->getContents());
-        $this->assertSame(strlen($boundary) + 6, $b->getSize());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesFilesArrayElement()
-    {
-        new MultipartStream([['foo' => 'bar']]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testEnsuresFileHasName()
-    {
-        new MultipartStream([['contents' => 'bar']]);
-    }
-
-    public function testSerializesFields()
-    {
-        $b = new MultipartStream([
-            [
-                'name'     => 'foo',
-                'contents' => 'bar'
-            ],
-            [
-                'name' => 'baz',
-                'contents' => 'bam'
-            ]
-        ], 'boundary');
-        $this->assertEquals(
-            "--boundary\r\nContent-Disposition: form-data; name=\"foo\"\r\nContent-Length: 3\r\n\r\n"
-            . "bar\r\n--boundary\r\nContent-Disposition: form-data; name=\"baz\"\r\nContent-Length: 3"
-            . "\r\n\r\nbam\r\n--boundary--\r\n", (string) $b);
-    }
-
-    public function testSerializesFiles()
-    {
-        $f1 = Psr7\FnStream::decorate(Psr7\stream_for('foo'), [
-            'getMetadata' => function () {
-                return '/foo/bar.txt';
-            }
-        ]);
-
-        $f2 = Psr7\FnStream::decorate(Psr7\stream_for('baz'), [
-            'getMetadata' => function () {
-                return '/foo/baz.jpg';
-            }
-        ]);
-
-        $f3 = Psr7\FnStream::decorate(Psr7\stream_for('bar'), [
-            'getMetadata' => function () {
-                return '/foo/bar.gif';
-            }
-        ]);
-
-        $b = new MultipartStream([
-            [
-                'name'     => 'foo',
-                'contents' => $f1
-            ],
-            [
-                'name' => 'qux',
-                'contents' => $f2
-            ],
-            [
-                'name'     => 'qux',
-                'contents' => $f3
-            ],
-        ], 'boundary');
-
-        $expected = <<<EOT
---boundary
-Content-Disposition: form-data; name="foo"; filename="bar.txt"
-Content-Length: 3
-Content-Type: text/plain
-
-foo
---boundary
-Content-Disposition: form-data; name="qux"; filename="baz.jpg"
-Content-Length: 3
-Content-Type: image/jpeg
-
-baz
---boundary
-Content-Disposition: form-data; name="qux"; filename="bar.gif"
-Content-Length: 3
-Content-Type: image/gif
-
-bar
---boundary--
-
-EOT;
-
-        $this->assertEquals($expected, str_replace("\r", '', $b));
-    }
-
-    public function testSerializesFilesWithCustomHeaders()
-    {
-        $f1 = Psr7\FnStream::decorate(Psr7\stream_for('foo'), [
-            'getMetadata' => function () {
-                return '/foo/bar.txt';
-            }
-        ]);
-
-        $b = new MultipartStream([
-            [
-                'name' => 'foo',
-                'contents' => $f1,
-                'headers'  => [
-                    'x-foo' => 'bar',
-                    'content-disposition' => 'custom'
-                ]
-            ]
-        ], 'boundary');
-
-        $expected = <<<EOT
---boundary
-x-foo: bar
-content-disposition: custom
-Content-Length: 3
-Content-Type: text/plain
-
-foo
---boundary--
-
-EOT;
-
-        $this->assertEquals($expected, str_replace("\r", '', $b));
-    }
-
-    public function testSerializesFilesWithCustomHeadersAndMultipleValues()
-    {
-        $f1 = Psr7\FnStream::decorate(Psr7\stream_for('foo'), [
-            'getMetadata' => function () {
-                return '/foo/bar.txt';
-            }
-        ]);
-
-        $f2 = Psr7\FnStream::decorate(Psr7\stream_for('baz'), [
-            'getMetadata' => function () {
-                return '/foo/baz.jpg';
-            }
-        ]);
-
-        $b = new MultipartStream([
-            [
-                'name'     => 'foo',
-                'contents' => $f1,
-                'headers'  => [
-                    'x-foo' => 'bar',
-                    'content-disposition' => 'custom'
-                ]
-            ],
-            [
-                'name'     => 'foo',
-                'contents' => $f2,
-                'headers'  => ['cOntenT-Type' => 'custom'],
-            ]
-        ], 'boundary');
-
-        $expected = <<<EOT
---boundary
-x-foo: bar
-content-disposition: custom
-Content-Length: 3
-Content-Type: text/plain
-
-foo
---boundary
-cOntenT-Type: custom
-Content-Disposition: form-data; name="foo"; filename="baz.jpg"
-Content-Length: 3
-
-baz
---boundary--
-
-EOT;
-
-        $this->assertEquals($expected, str_replace("\r", '', $b));
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/NoSeekStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/NoSeekStreamTest.php
deleted file mode 100644
index a309317..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/NoSeekStreamTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\NoSeekStream;
-
-/**
- * @covers GuzzleHttp\Psr7\NoSeekStream
- * @covers GuzzleHttp\Psr7\StreamDecoratorTrait
- */
-class NoSeekStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Cannot seek a NoSeekStream
-     */
-    public function testCannotSeek()
-    {
-        $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isSeekable', 'seek'])
-            ->getMockForAbstractClass();
-        $s->expects($this->never())->method('seek');
-        $s->expects($this->never())->method('isSeekable');
-        $wrapped = new NoSeekStream($s);
-        $this->assertFalse($wrapped->isSeekable());
-        $wrapped->seek(2);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Cannot write to a non-writable stream
-     */
-    public function testHandlesClose()
-    {
-        $s = Psr7\stream_for('foo');
-        $wrapped = new NoSeekStream($s);
-        $wrapped->close();
-        $wrapped->write('foo');
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/PumpStreamTest.php b/core/vendor/guzzlehttp/psr7/tests/PumpStreamTest.php
deleted file mode 100644
index 7358bb6..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/PumpStreamTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\LimitStream;
-use GuzzleHttp\Psr7\PumpStream;
-use GuzzleHttp\Psr7;
-
-class PumpStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasMetadataAndSize()
-    {
-        $p = new PumpStream(function () {}, [
-            'metadata' => ['foo' => 'bar'],
-            'size'     => 100
-        ]);
-
-        $this->assertEquals('bar', $p->getMetadata('foo'));
-        $this->assertEquals(['foo' => 'bar'], $p->getMetadata());
-        $this->assertEquals(100, $p->getSize());
-    }
-
-    public function testCanReadFromCallable()
-    {
-        $p = Psr7\stream_for(function ($size) {
-            return 'a';
-        });
-        $this->assertEquals('a', $p->read(1));
-        $this->assertEquals(1, $p->tell());
-        $this->assertEquals('aaaaa', $p->read(5));
-        $this->assertEquals(6, $p->tell());
-    }
-
-    public function testStoresExcessDataInBuffer()
-    {
-        $called = [];
-        $p = Psr7\stream_for(function ($size) use (&$called) {
-            $called[] = $size;
-            return 'abcdef';
-        });
-        $this->assertEquals('a', $p->read(1));
-        $this->assertEquals('b', $p->read(1));
-        $this->assertEquals('cdef', $p->read(4));
-        $this->assertEquals('abcdefabc', $p->read(9));
-        $this->assertEquals([1, 9, 3], $called);
-    }
-
-    public function testInifiniteStreamWrappedInLimitStream()
-    {
-        $p = Psr7\stream_for(function () { return 'a'; });
-        $s = new LimitStream($p, 5);
-        $this->assertEquals('aaaaa', (string) $s);
-    }
-
-    public function testDescribesCapabilities()
-    {
-        $p = Psr7\stream_for(function () {});
-        $this->assertTrue($p->isReadable());
-        $this->assertFalse($p->isSeekable());
-        $this->assertFalse($p->isWritable());
-        $this->assertNull($p->getSize());
-        $this->assertEquals('', $p->getContents());
-        $this->assertEquals('', (string) $p);
-        $p->close();
-        $this->assertEquals('', $p->read(10));
-        $this->assertTrue($p->eof());
-
-        try {
-            $this->assertFalse($p->write('aa'));
-            $this->fail();
-        } catch (\RuntimeException $e) {}
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/RequestTest.php b/core/vendor/guzzlehttp/psr7/tests/RequestTest.php
deleted file mode 100644
index 9defe68..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/RequestTest.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\Request;
-use GuzzleHttp\Psr7\Uri;
-
-/**
- * @covers GuzzleHttp\Psr7\Request
- */
-class RequestTest extends \PHPUnit_Framework_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', true);
-    }
-
-    public function testCanConstructWithBody()
-    {
-        $r = new Request('GET', '/', [], 'baz');
-        $this->assertEquals('baz', (string) $r->getBody());
-    }
-
-    public function testCapitalizesMethod()
-    {
-        $r = new Request('get', '/');
-        $this->assertEquals('GET', $r->getMethod());
-    }
-
-    public function testCapitalizesWithMethod()
-    {
-        $r = new Request('GET', '/');
-        $this->assertEquals('PUT', $r->withMethod('put')->getMethod());
-    }
-
-    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 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', 'http://foo.com', [
-            'ZOO' => 'zoobar',
-            'zoo' => ['foobar', 'zoobar']
-        ]);
-        $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/core/vendor/guzzlehttp/psr7/tests/ResponseTest.php b/core/vendor/guzzlehttp/psr7/tests/ResponseTest.php
deleted file mode 100644
index 0ce3e21..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/ResponseTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\Response;
-use GuzzleHttp\Psr7;
-
-/**
- * @covers GuzzleHttp\Psr7\MessageTrait
- * @covers GuzzleHttp\Psr7\Response
- */
-class ResponseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAddsDefaultReason()
-    {
-        $r = new Response('200');
-        $this->assertSame(200, $r->getStatusCode());
-        $this->assertEquals('OK', $r->getReasonPhrase());
-    }
-
-    public function testCanGiveCustomReason()
-    {
-        $r = new Response(200, [], null, '1.1', 'bar');
-        $this->assertEquals('bar', $r->getReasonPhrase());
-    }
-
-    public function testCanGiveCustomProtocolVersion()
-    {
-        $r = new Response(200, [], null, '1000');
-        $this->assertEquals('1000', $r->getProtocolVersion());
-    }
-
-    public function testCanCreateNewResponseWithStatusAndNoReason()
-    {
-        $r = new Response(200);
-        $r2 = $r->withStatus(201);
-        $this->assertEquals(200, $r->getStatusCode());
-        $this->assertEquals('OK', $r->getReasonPhrase());
-        $this->assertEquals(201, $r2->getStatusCode());
-        $this->assertEquals('Created', $r2->getReasonPhrase());
-    }
-
-    public function testCanCreateNewResponseWithStatusAndReason()
-    {
-        $r = new Response(200);
-        $r2 = $r->withStatus(201, 'Foo');
-        $this->assertEquals(200, $r->getStatusCode());
-        $this->assertEquals('OK', $r->getReasonPhrase());
-        $this->assertEquals(201, $r2->getStatusCode());
-        $this->assertEquals('Foo', $r2->getReasonPhrase());
-    }
-
-    public function testCreatesResponseWithAddedHeaderArray()
-    {
-        $r = new Response();
-        $r2 = $r->withAddedHeader('foo', ['baz', 'bar']);
-        $this->assertFalse($r->hasHeader('foo'));
-        $this->assertEquals('baz, bar', $r2->getHeaderLine('foo'));
-    }
-
-    public function testReturnsIdentityWhenRemovingMissingHeader()
-    {
-        $r = new Response();
-        $this->assertSame($r, $r->withoutHeader('foo'));
-    }
-
-    public function testAlwaysReturnsBody()
-    {
-        $r = new Response();
-        $this->assertInstanceOf('Psr\Http\Message\StreamInterface', $r->getBody());
-    }
-
-    public function testCanSetHeaderAsArray()
-    {
-        $r = new Response(200, [
-            'foo' => ['baz ', ' bar ']
-        ]);
-        $this->assertEquals('baz, bar', $r->getHeaderLine('foo'));
-        $this->assertEquals(['baz', 'bar'], $r->getHeader('foo'));
-    }
-
-    public function testSameInstanceWhenSameBody()
-    {
-        $r = new Response(200, [], 'foo');
-        $b = $r->getBody();
-        $this->assertSame($r, $r->withBody($b));
-    }
-
-    public function testNewInstanceWhenNewBody()
-    {
-        $r = new Response(200, [], 'foo');
-        $b2 = Psr7\stream_for('abc');
-        $this->assertNotSame($r, $r->withBody($b2));
-    }
-
-    public function testSameInstanceWhenSameProtocol()
-    {
-        $r = new Response(200);
-        $this->assertSame($r, $r->withProtocolVersion('1.1'));
-    }
-
-    public function testNewInstanceWhenNewProtocol()
-    {
-        $r = new Response(200);
-        $this->assertNotSame($r, $r->withProtocolVersion('1.0'));
-    }
-
-    public function testNewInstanceWhenRemovingHeader()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withoutHeader('Foo');
-        $this->assertNotSame($r, $r2);
-        $this->assertFalse($r2->hasHeader('foo'));
-    }
-
-    public function testNewInstanceWhenAddingHeader()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withAddedHeader('Foo', 'Baz');
-        $this->assertNotSame($r, $r2);
-        $this->assertEquals('Bar, Baz', $r2->getHeaderLine('foo'));
-    }
-
-    public function testNewInstanceWhenAddingHeaderThatWasNotThereBefore()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withAddedHeader('Baz', 'Bam');
-        $this->assertNotSame($r, $r2);
-        $this->assertEquals('Bam', $r2->getHeaderLine('Baz'));
-        $this->assertEquals('Bar', $r2->getHeaderLine('Foo'));
-    }
-
-    public function testRemovesPreviouslyAddedHeaderOfDifferentCase()
-    {
-        $r = new Response(200, ['Foo' => 'Bar']);
-        $r2 = $r->withHeader('foo', 'Bam');
-        $this->assertNotSame($r, $r2);
-        $this->assertEquals('Bam', $r2->getHeaderLine('Foo'));
-    }
-
-    public function testBodyConsistent()
-    {
-        $r = new Response(200, [], '0');
-        $this->assertEquals('0', (string)$r->getBody());
-    }
-    
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/StreamDecoratorTraitTest.php b/core/vendor/guzzlehttp/psr7/tests/StreamDecoratorTraitTest.php
deleted file mode 100644
index 682079e..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/StreamDecoratorTraitTest.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use Psr\Http\Message\StreamInterface;
-use GuzzleHttp\Psr7;
-use GuzzleHttp\Psr7\StreamDecoratorTrait;
-
-class Str implements StreamInterface
-{
-    use StreamDecoratorTrait;
-}
-
-/**
- * @covers GuzzleHttp\Psr7\StreamDecoratorTrait
- */
-class StreamDecoratorTraitTest extends \PHPUnit_Framework_TestCase
-{
-    private $a;
-    private $b;
-    private $c;
-
-    public function setUp()
-    {
-        $this->c = fopen('php://temp', 'r+');
-        fwrite($this->c, 'foo');
-        fseek($this->c, 0);
-        $this->a = Psr7\stream_for($this->c);
-        $this->b = new Str($this->a);
-    }
-
-    public function testCatchesExceptionsWhenCastingToString()
-    {
-        $s = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['read'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('read')
-            ->will($this->throwException(new \Exception('foo')));
-        $msg = '';
-        set_error_handler(function ($errNo, $str) use (&$msg) { $msg = $str; });
-        echo new Str($s);
-        restore_error_handler();
-        $this->assertContains('foo', $msg);
-    }
-
-    public function testToString()
-    {
-        $this->assertEquals('foo', (string) $this->b);
-    }
-
-    public function testHasSize()
-    {
-        $this->assertEquals(3, $this->b->getSize());
-    }
-
-    public function testReads()
-    {
-        $this->assertEquals('foo', $this->b->read(10));
-    }
-
-    public function testCheckMethods()
-    {
-        $this->assertEquals($this->a->isReadable(), $this->b->isReadable());
-        $this->assertEquals($this->a->isWritable(), $this->b->isWritable());
-        $this->assertEquals($this->a->isSeekable(), $this->b->isSeekable());
-    }
-
-    public function testSeeksAndTells()
-    {
-        $this->b->seek(1);
-        $this->assertEquals(1, $this->a->tell());
-        $this->assertEquals(1, $this->b->tell());
-        $this->b->seek(0);
-        $this->assertEquals(0, $this->a->tell());
-        $this->assertEquals(0, $this->b->tell());
-        $this->b->seek(0, SEEK_END);
-        $this->assertEquals(3, $this->a->tell());
-        $this->assertEquals(3, $this->b->tell());
-    }
-
-    public function testGetsContents()
-    {
-        $this->assertEquals('foo', $this->b->getContents());
-        $this->assertEquals('', $this->b->getContents());
-        $this->b->seek(1);
-        $this->assertEquals('oo', $this->b->getContents(1));
-    }
-
-    public function testCloses()
-    {
-        $this->b->close();
-        $this->assertFalse(is_resource($this->c));
-    }
-
-    public function testDetaches()
-    {
-        $this->b->detach();
-        $this->assertFalse($this->b->isReadable());
-    }
-
-    public function testWrapsMetadata()
-    {
-        $this->assertSame($this->b->getMetadata(), $this->a->getMetadata());
-        $this->assertSame($this->b->getMetadata('uri'), $this->a->getMetadata('uri'));
-    }
-
-    public function testWrapsWrites()
-    {
-        $this->b->seek(0, SEEK_END);
-        $this->b->write('foo');
-        $this->assertEquals('foofoo', (string) $this->a);
-    }
-
-    /**
-     * @expectedException \UnexpectedValueException
-     */
-    public function testThrowsWithInvalidGetter()
-    {
-        $this->b->foo;
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testThrowsWhenGetterNotImplemented()
-    {
-        $s = new BadStream();
-        $s->stream;
-    }
-}
-
-class BadStream
-{
-    use StreamDecoratorTrait;
-
-    public function __construct() {}
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/StreamTest.php b/core/vendor/guzzlehttp/psr7/tests/StreamTest.php
deleted file mode 100644
index 4fe92cc..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/StreamTest.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\NoSeekStream;
-use GuzzleHttp\Psr7\Stream;
-
-/**
- * @covers GuzzleHttp\Psr7\Stream
- */
-class StreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructorThrowsExceptionOnInvalidArgument()
-    {
-        new Stream(true);
-    }
-
-    public function testConstructorInitializesProperties()
-    {
-        $handle = fopen('php://temp', 'r+');
-        fwrite($handle, 'data');
-        $stream = new Stream($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 = new Stream($handle);
-        unset($stream);
-        $this->assertFalse(is_resource($handle));
-    }
-
-    public function testConvertsToString()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = new Stream($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 = new Stream($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 = new Stream($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 = new Stream($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 = new Stream($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 = new Stream($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 = new Stream($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 = new Stream($handle);
-        $stream->close();
-
-        $this->assertFalse($stream->isSeekable());
-        $this->assertFalse($stream->isReadable());
-        $this->assertFalse($stream->isWritable());
-        $this->assertNull($stream->getSize());
-        $this->assertEmpty($stream->getMetadata());
-    }
-
-    public function testDoesNotThrowInToString()
-    {
-        $s = \GuzzleHttp\Psr7\stream_for('foo');
-        $s = new NoSeekStream($s);
-        $this->assertEquals('foo', (string) $s);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/StreamWrapperTest.php b/core/vendor/guzzlehttp/psr7/tests/StreamWrapperTest.php
deleted file mode 100644
index 0156e59..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/StreamWrapperTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\StreamWrapper;
-use GuzzleHttp\Psr7;
-
-/**
- * @covers GuzzleHttp\Psr7\StreamWrapper
- */
-class StreamWrapperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testResource()
-    {
-        $stream = Psr7\stream_for('foo');
-        $handle = StreamWrapper::getResource($stream);
-        $this->assertSame('foo', fread($handle, 3));
-        $this->assertSame(3, ftell($handle));
-        $this->assertSame(3, fwrite($handle, 'bar'));
-        $this->assertSame(0, fseek($handle, 0));
-        $this->assertSame('foobar', fread($handle, 6));
-        $this->assertSame('', fread($handle, 1));
-        $this->assertTrue(feof($handle));
-
-        // This fails on HHVM for some reason
-        if (!defined('HHVM_VERSION')) {
-            $this->assertEquals([
-                'dev'     => 0,
-                'ino'     => 0,
-                'mode'    => 33206,
-                'nlink'   => 0,
-                'uid'     => 0,
-                'gid'     => 0,
-                'rdev'    => 0,
-                'size'    => 6,
-                'atime'   => 0,
-                'mtime'   => 0,
-                'ctime'   => 0,
-                'blksize' => 0,
-                'blocks'  => 0,
-                0         => 0,
-                1         => 0,
-                2         => 33206,
-                3         => 0,
-                4         => 0,
-                5         => 0,
-                6         => 0,
-                7         => 6,
-                8         => 0,
-                9         => 0,
-                10        => 0,
-                11        => 0,
-                12        => 0,
-            ], fstat($handle));
-        }
-
-        $this->assertTrue(fclose($handle));
-        $this->assertSame('foobar', (string) $stream);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesStream()
-    {
-        $stream = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isReadable', 'isWritable'])
-            ->getMockForAbstractClass();
-        $stream->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(false));
-        $stream->expects($this->once())
-            ->method('isWritable')
-            ->will($this->returnValue(false));
-        StreamWrapper::getResource($stream);
-    }
-
-    /**
-     * @expectedException \PHPUnit_Framework_Error_Warning
-     */
-    public function testReturnsFalseWhenStreamDoesNotExist()
-    {
-        fopen('guzzle://foo', 'r');
-    }
-
-    public function testCanOpenReadonlyStream()
-    {
-        $stream = $this->getMockBuilder('Psr\Http\Message\StreamInterface')
-            ->setMethods(['isReadable', 'isWritable'])
-            ->getMockForAbstractClass();
-        $stream->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(false));
-        $stream->expects($this->once())
-            ->method('isWritable')
-            ->will($this->returnValue(true));
-        $r = StreamWrapper::getResource($stream);
-        $this->assertInternalType('resource', $r);
-        fclose($r);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/UriTest.php b/core/vendor/guzzlehttp/psr7/tests/UriTest.php
deleted file mode 100644
index 2776920..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/UriTest.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-use GuzzleHttp\Psr7\Uri;
-
-/**
- * @covers GuzzleHttp\Psr7\Uri
- */
-class UriTest extends \PHPUnit_Framework_TestCase
-{
-    const RFC3986_BASE = "http://a/b/c/d;p?q";
-
-    public function testParsesProvidedUrl()
-    {
-        $uri = new Uri('https://michael:test@test.com:443/path/123?q=abc#test');
-
-        // Standard port 443 for https gets ignored.
-        $this->assertEquals(
-            'https://michael:test@test.com/path/123?q=abc#test',
-            (string) $uri
-        );
-
-        $this->assertEquals('test', $uri->getFragment());
-        $this->assertEquals('test.com', $uri->getHost());
-        $this->assertEquals('/path/123', $uri->getPath());
-        $this->assertEquals(null, $uri->getPort());
-        $this->assertEquals('q=abc', $uri->getQuery());
-        $this->assertEquals('https', $uri->getScheme());
-        $this->assertEquals('michael:test', $uri->getUserInfo());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Unable to parse URI
-     */
-    public function testValidatesUriCanBeParsed()
-    {
-        new Uri('///');
-    }
-
-    public function testCanTransformAndRetrievePartsIndividually()
-    {
-        $uri = (new Uri(''))
-            ->withFragment('#test')
-            ->withHost('example.com')
-            ->withPath('path/123')
-            ->withPort(8080)
-            ->withQuery('?q=abc')
-            ->withScheme('http')
-            ->withUserInfo('user', 'pass');
-
-        // Test getters.
-        $this->assertEquals('user:pass@example.com:8080', $uri->getAuthority());
-        $this->assertEquals('test', $uri->getFragment());
-        $this->assertEquals('example.com', $uri->getHost());
-        $this->assertEquals('path/123', $uri->getPath());
-        $this->assertEquals(8080, $uri->getPort());
-        $this->assertEquals('q=abc', $uri->getQuery());
-        $this->assertEquals('http', $uri->getScheme());
-        $this->assertEquals('user:pass', $uri->getUserInfo());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testPortMustBeValid()
-    {
-        (new Uri(''))->withPort(100000);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testPathMustBeValid()
-    {
-        (new Uri(''))->withPath([]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testQueryMustBeValid()
-    {
-        (new Uri(''))->withQuery(new \stdClass);
-    }
-
-    public function testAllowsFalseyUrlParts()
-    {
-        $url = new Uri('http://a:1/0?0#0');
-        $this->assertSame('a', $url->getHost());
-        $this->assertEquals(1, $url->getPort());
-        $this->assertSame('/0', $url->getPath());
-        $this->assertEquals('0', (string) $url->getQuery());
-        $this->assertSame('0', $url->getFragment());
-        $this->assertEquals('http://a:1/0?0#0', (string) $url);
-        $url = new Uri('');
-        $this->assertSame('', (string) $url);
-        $url = new Uri('0');
-        $this->assertSame('0', (string) $url);
-        $url = new Uri('/');
-        $this->assertSame('/', (string) $url);
-    }
-
-    /**
-     * @dataProvider getResolveTestCases
-     */
-    public function testResolvesUris($base, $rel, $expected)
-    {
-        $uri = new Uri($base);
-        $actual = Uri::resolve($uri, $rel);
-        $this->assertEquals($expected, (string) $actual);
-    }
-
-    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'],
-            ['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/'],
-            //[self::RFC3986_BASE, 'http:g',        'http:g'],
-        ];
-    }
-
-    public function testAddAndRemoveQueryValues()
-    {
-        $uri = new Uri('http://foo.com/bar');
-        $uri = Uri::withQueryValue($uri, 'a', 'b');
-        $uri = Uri::withQueryValue($uri, 'c', 'd');
-        $uri = Uri::withQueryValue($uri, 'e', null);
-        $this->assertEquals('a=b&c=d&e', $uri->getQuery());
-
-        $uri = Uri::withoutQueryValue($uri, 'c');
-        $uri = Uri::withoutQueryValue($uri, 'e');
-        $this->assertEquals('a=b', $uri->getQuery());
-        $uri = Uri::withoutQueryValue($uri, 'a');
-        $uri = Uri::withoutQueryValue($uri, 'a');
-        $this->assertEquals('', $uri->getQuery());
-    }
-
-    public function testGetAuthorityReturnsCorrectPort()
-    {
-        // HTTPS non-standard port
-        $uri = new Uri('https://foo.co:99');
-        $this->assertEquals('foo.co:99', $uri->getAuthority());
-
-        // HTTP non-standard port
-        $uri = new Uri('http://foo.co:99');
-        $this->assertEquals('foo.co:99', $uri->getAuthority());
-
-        // No scheme
-        $uri = new Uri('foo.co:99');
-        $this->assertEquals('foo.co:99', $uri->getAuthority());
-
-        // No host or port
-        $uri = new Uri('http:');
-        $this->assertEquals('', $uri->getAuthority());
-
-        // No host or port
-        $uri = new Uri('http://foo.co');
-        $this->assertEquals('foo.co', $uri->getAuthority());
-    }
-
-    public function pathTestProvider()
-    {
-        return [
-            // Percent encode spaces.
-            ['http://foo.com/baz bar', 'http://foo.com/baz%20bar'],
-            // Don't encoding something that's already encoded.
-            ['http://foo.com/baz%20bar', 'http://foo.com/baz%20bar'],
-            // Percent encode invalid percent encodings
-            ['http://foo.com/baz%2-bar', 'http://foo.com/baz%252-bar'],
-            // Don't encode path segments
-            ['http://foo.com/baz/bar/bam?a', 'http://foo.com/baz/bar/bam?a'],
-            ['http://foo.com/baz+bar', 'http://foo.com/baz+bar'],
-            ['http://foo.com/baz:bar', 'http://foo.com/baz:bar'],
-            ['http://foo.com/baz@bar', 'http://foo.com/baz@bar'],
-            ['http://foo.com/baz(bar);bam/', 'http://foo.com/baz(bar);bam/'],
-            ['http://foo.com/a-zA-Z0-9.-_~!$&\'()*+,;=:@', 'http://foo.com/a-zA-Z0-9.-_~!$&\'()*+,;=:@'],
-        ];
-    }
-
-    /**
-     * @dataProvider pathTestProvider
-     */
-    public function testUriEncodesPathProperly($input, $output)
-    {
-        $uri = new Uri($input);
-        $this->assertEquals((string) $uri, $output);
-    }
-
-    public function testDoesNotAddPortWhenNoPort()
-    {
-        $this->assertEquals('bar', new Uri('//bar'));
-        $this->assertEquals('bar', (new Uri('//bar'))->getHost());
-    }
-
-    public function testAllowsForRelativeUri()
-    {
-        $uri = (new Uri)->withPath('foo');
-        $this->assertEquals('foo', $uri->getPath());
-        $this->assertEquals('foo', (string) $uri);
-    }
-
-    public function testAddsSlashForRelativeUriStringWithHost()
-    {
-        $uri = (new Uri)->withPath('foo')->withHost('bar.com');
-        $this->assertEquals('foo', $uri->getPath());
-        $this->assertEquals('bar.com/foo', (string) $uri);
-    }
-}
diff --git a/core/vendor/guzzlehttp/psr7/tests/bootstrap.php b/core/vendor/guzzlehttp/psr7/tests/bootstrap.php
deleted file mode 100644
index 8601dd3..0000000
--- a/core/vendor/guzzlehttp/psr7/tests/bootstrap.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Psr7;
-
-require __DIR__ . '/../vendor/autoload.php';
-
-class HasToString
-{
-    public function __toString() {
-        return 'foo';
-    }
-}
diff --git a/core/vendor/masterminds/html5/.gitignore b/core/vendor/masterminds/html5/.gitignore
deleted file mode 100644
index f9ead4a..0000000
--- a/core/vendor/masterminds/html5/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-vendor/
-scratch.php
-composer.lock
-build/
\ No newline at end of file
diff --git a/core/vendor/masterminds/html5/.travis.yml b/core/vendor/masterminds/html5/.travis.yml
deleted file mode 100644
index 5b31d71..0000000
--- a/core/vendor/masterminds/html5/.travis.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-language: php
-
-# Setting sudo access to false will let Travis CI use containers rather than
-# VMs to run the tests. For more details see:
-# - http://docs.travis-ci.com/user/workers/container-based-infrastructure/
-# - http://docs.travis-ci.com/user/workers/standard-infrastructure/
-sudo: false
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-notifications:
-  irc: "irc.freenode.net#masterminds"
-
-before_script:
-  - composer self-update
-  - composer install --dev
-
-script:
-  - mkdir -p build/logs
-  - ./vendor/bin/phpunit -c phpunit.xml.dist
-
-after_script:
-  - php vendor/bin/coveralls -v
diff --git a/core/vendor/masterminds/html5/CREDITS b/core/vendor/masterminds/html5/CREDITS
deleted file mode 100644
index 59c87a2..0000000
--- a/core/vendor/masterminds/html5/CREDITS
+++ /dev/null
@@ -1,11 +0,0 @@
-Matt Butcher [technosophos] <technosophos@gmail.com> (lead)
-Matt Farina  [mattfarina] <matt@mattfarina.com> (lead)
-Asmir Mustafic [goetas] <goetas@lignano.it> (contributor)
-Edward Z. Yang [ezyang] <ezyang@mit.edu> (contributor)
-Geoffrey Sneddon [gsnedders] <geoffers@gmail.com> (contributor)
-Kukhar Vasily [ngreduce] <ngreduce@gmail.com> (contributor)
-Rune Christensen [MrElectronic] <mrelectronic@example.com> (contributor)
-Mišo Belica [miso-belica] <miso-belica@example.com> (contributor)
-Asmir Mustafic [goetas] <goetas@example.com> (contributor)
-KITAITI Makoto [KitaitiMakoto] <KitaitiMakoto@example.com> (contributor)
-Jacob Floyd [cognifloyd] <cognifloyd@gmail.com> (contributor)
diff --git a/core/vendor/masterminds/html5/LICENSE.txt b/core/vendor/masterminds/html5/LICENSE.txt
deleted file mode 100644
index 93d60ed..0000000
--- a/core/vendor/masterminds/html5/LICENSE.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-## HTML5-PHP License
-
-Copyright (c) 2013 The Authors of HTML5-PHP
-
-Matt Butcher - mattbutcher@google.com
-Matt Farina - matt@mattfarina.com
-Asmir Mustafic - goetas@gmail.com
-
-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.
-
-## HTML5Lib License
-
-Portions of this are based on html5lib's PHP version, which was a
-sub-project of html5lib. The following is the list of contributors from
-html5lib:
-
-html5lib:
-
-Copyright (c) 2006-2009 The Authors
-
-Contributors:
-James Graham - jg307@cam.ac.uk
-Anne van Kesteren - annevankesteren@gmail.com
-Lachlan Hunt - lachlan.hunt@lachy.id.au
-Matt McDonald - kanashii@kanashii.ca
-Sam Ruby - rubys@intertwingly.net
-Ian Hickson (Google) - ian@hixie.ch
-Thomas Broyer - t.broyer@ltgt.net
-Jacques Distler - distler@golem.ph.utexas.edu
-Henri Sivonen - hsivonen@iki.fi
-Adam Barth - abarth@webkit.org
-Eric Seidel - eric@webkit.org
-The Mozilla Foundation (contributions from Henri Sivonen since 2008)
-David Flanagan (Mozilla) - dflanagan@mozilla.com
-
-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/core/vendor/masterminds/html5/README.md b/core/vendor/masterminds/html5/README.md
deleted file mode 100644
index db2abb7..0000000
--- a/core/vendor/masterminds/html5/README.md
+++ /dev/null
@@ -1,253 +0,0 @@
-# HTML5-PHP
-
-The need for an HTML5 parser in PHP is clear. This project initially
-began with the seemingly abandoned `html5lib` project [original source](https://code.google.com/p/html5lib/source/checkout).
-But after some initial refactoring work, we began a new parser.
-
-- An HTML5 serializer
-- Support for PHP namespaces
-- Composer support
-- Event-based (SAX-like) parser
-- DOM tree builder
-- Interoperability with QueryPath [[in progress](https://github.com/technosophos/querypath/issues/114)]
-- Runs on **PHP** 5.3.0 or newer and **HHVM** 3.2 or newer
-
-[![Build Status](https://travis-ci.org/Masterminds/html5-php.png?branch=master)](https://travis-ci.org/Masterminds/html5-php) [![Latest Stable Version](https://poser.pugx.org/masterminds/html5/v/stable.png)](https://packagist.org/packages/masterminds/html5) [![Coverage Status](https://coveralls.io/repos/Masterminds/html5-php/badge.png?branch=master)](https://coveralls.io/r/Masterminds/html5-php?branch=master)
-
-## Installation
-
-Install HTML5-PHP using [composer](http://getcomposer.org/).
-
-To install, add `masterminds/html5` to your `composer.json` file:
-
-```
-{
-  "require" : {
-    "masterminds/html5": "2.*"
-  },
-}
-```
-
-(You may substitute `2.*` for a more specific release tag, of
-course.)
-
-From there, use the `composer install` or `composer update` commands to
-install.
-
-## Basic Usage
-
-HTML5-PHP has a high-level API and a low-level API.
-
-Here is how you use the high-level `HTML5` library API:
-
-```php
-<?php
-// Assuming you installed from Composer:
-require "vendor/autoload.php";
-use Masterminds\HTML5;
-
-
-// An example HTML document:
-$html = <<< 'HERE'
-  <html>
-  <head>
-    <title>TEST</title>
-  </head>
-  <body id='foo'>
-    <h1>Hello World</h1>
-    <p>This is a test of the HTML5 parser.</p>
-  </body>
-  </html>
-HERE;
-
-// Parse the document. $dom is a DOMDocument.
-$html5 = new HTML5();
-$dom = $html5->loadHTML($html);
-
-// Render it as HTML5:
-print $html5->saveHTML($dom);
-
-// Or save it to a file:
-$html5->save($dom, 'out.html');
-
-?>
-```
-
-The `$dom` created by the parser is a full `DOMDocument` object. And the
-`save()` and `saveHTML()` methods will take any DOMDocument.
-
-### Options
-
-It is possible to pass in an array of configuration options when loading
-an HTML5 document.
-
-```php
-// An associative array of options
-$options = array(
-  'option_name' => 'option_value',
-);
-
-// Provide the options to the constructor
-$html5 = new HTML5($options);
-
-$dom = $html5->loadHTML($html);
-```
-
-The following options are supported:
-
-* `encode_entities` (boolean): Indicates that the serializer should aggressively
-  encode characters as entities. Without this, it only encodes the bare
-  minimum.
-* `disable_html_ns` (boolean): Prevents the parser from automatically
-  assigning the HTML5 namespace to the DOM document. This is for
-  non-namespace aware DOM tools.
-* `target_doc` (\DOMDocument): A DOM document that will be used as the
-  destination for the parsed nodes.
-* `implicit_namespaces` (array): An assoc array of namespaces that should be
-  used by the parser. Name is tag prefix, value is NS URI.
-
-## The Low-Level API
-
-This library provides the following low-level APIs that you can use to
-create more customized HTML5 tools:
-
-- An `InputStream` abstraction that can work with different kinds of
-input source (not just files and strings).
-- A SAX-like event-based parser that you can hook into for special kinds
-of parsing.
-- A flexible error-reporting mechanism that can be tuned to document
-syntax checking.
-- A DOM implementation that uses PHP's built-in DOM library.
-
-The unit tests exercise each piece of the API, and every public function
-is well-documented.
-
-### Parser Design
-
-The parser is designed as follows:
-
-- The `InputStream` portion handles direct I/O.
-- The `Scanner` handles scanning on behalf of the parser.
-- The `Tokenizer` requests data off of the scanner, parses it, clasifies
-it, and sends it to an `EventHandler`. It is a *recursive descent parser.*
-- The `EventHandler` receives notifications and data for each specific
-semantic event that occurs during tokenization.
-- The `DOMBuilder` is an `EventHandler` that listens for tokenizing
-events and builds a document tree (`DOMDocument`) based on the events.
-
-### Serializer Design
-
-The serializer takes a data structure (the `DOMDocument`) and transforms
-it into a character representation -- an HTML5 document.
-
-The serializer is broken into three parts:
-
-- The `OutputRules` contain the rules to turn DOM elements into strings. The
-rules are an implementation of the interface `RulesInterface` allowing for
-different rule sets to be used.
-- The `Traverser`, which is a special-purpose tree walker. It visits
-each node node in the tree and uses the `OutputRules` to transform the node
-into a string.
-- `HTML5` manages the `Traverser` and stores the resultant data
-in the correct place.
-
-The serializer (`save()`, `saveHTML()`) follows the
-[section 8.9 of the HTML 5.0 spec](http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#serializing-html-fragments).
-So tags are serialized according to these rules:
-
-- A tag with children: &lt;foo&gt;CHILDREN&lt;/foo&gt;
-- A tag that cannot have content: &lt;foo&gt; (no closing tag)
-- A tag that could have content, but doesn't: &lt;foo&gt;&lt;/foo&gt;
-
-## Known Issues (Or, Things We Designed Against the Spec)
-
-Please check the issue queue for a full list, but the following are
-issues known issues that are not presently on the roadmap:
-
-- Namespaces: HTML5 only [supports a selected list of namespaces](http://www.w3.org/TR/html5/infrastructure.html#namespaces)
-  and they do not operate in the same way as XML namespaces. A `:` has no special
-  meaning.
-  By default the parser does not support XML style namespaces via `:`;
-  to enable the XML namespaces see the  [XML Namespaces section](#xml-namespaces)
-- Scripts: This parser does not contain a JavaScript or a CSS
-  interpreter. While one may be supplied, not all features will be
-  supported.
-- Rentrance: The current parser is not re-entrant. (Thus you can't pause
-  the parser to modify the HTML string mid-parse.)
-- Validation: The current tree builder is **not** a validating parser.
-  While it will correct some HTML, it does not check that the HTML
-  conforms to the standard. (Should you wish, you can build a validating
-  parser by extending DOMTree or building your own EventHandler
-  implementation.)
-  * There is limited support for insertion modes.
-  * Some autocorrection is done automatically.
-  * Per the spec, many legacy tags are admitted and correctly handled,
-    even though they are technically not part of HTML5.
-- Attribute names and values: Due to the implementation details of the
-  PHP implementation of DOM, attribute names that do not follow the
-  XML 1.0 standard are not inserted into the DOM. (Effectively, they
-  are ignored.) If you've got a clever fix for this, jump in!
-- Processor Instructions: The HTML5 spec does not allow processor
-  instructions. We do. Since this is a server-side library, we think
-  this is useful. And that means, dear reader, that in some cases you
-  can parse the HTML from a mixed PHP/HTML document. This, however,
-  is an incidental feature, not a core feature.
-- HTML manifests: Unsupported.
-- PLAINTEXT: Unsupported.
-- Adoption Agency Algorithm: Not yet implemented. (8.2.5.4.7)
-
-##XML Namespaces
-
-To use XML style namespaces you have to configure well the main `HTML5` instance.
-
-```php
-use Masterminds\HTML5;
-$html = new HTML5(array(
-    "xmlNamespaces" => true
-));
-
-$dom = $html->loadHTML('<t:tag xmlns:t="http://www.example.com"/>');
-
-$dom->documentElement->namespaceURI; // http://www.example.com
-
-```
-
-You can also add some default prefixes that will not require the namespace declaration,
-but it's elements will be namespaced.
-
-```php
-use Masterminds\HTML5;
-$html = new HTML5(array(
-    "implicitNamespaces"=>array(
-        "t"=>"http://www.example.com"
-    )
-));
-
-$dom = $html->loadHTML('<t:tag/>');
-
-$dom->documentElement->namespaceURI; // http://www.example.com
-
-```
-
-## Thanks to...
-
-The dedicated (and patient) contributors of patches small and large,
-who have already made this library better.See the CREDITS file for
-a list of contributors.
-
-We owe a huge debt of gratitude to the original authors of html5lib.
-
-While not much of the orignal parser remains, we learned a lot from
-reading the html5lib library. And some pieces remain here. In
-particular, much of the UTF-8 and Unicode handling is derived from the
-html5lib project.
-
-## License
-
-This software is released under the MIT license. The original html5lib
-library was also released under the MIT license.
-
-See LICENSE.txt
-
-Certain files contain copyright assertions by specific individuals
-involved with html5lib. Those have been retained where appropriate.
diff --git a/core/vendor/masterminds/html5/RELEASE.md b/core/vendor/masterminds/html5/RELEASE.md
deleted file mode 100644
index 36d1630..0000000
--- a/core/vendor/masterminds/html5/RELEASE.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Release Notes
-
-2.1.0 (2015-02-01)
-- #74: Added `disable_html_ns` and `target_doc` dom parsing options
-- Unified option names
-- #73: Fixed alphabet, &szlig; now can be detected
-- #75 and #76: Allow whitespace in RCDATA tags
-- #77: Fixed parsing blunder for json embeds
-- #72: Add options to HTML methods
-
-2.0.2 (2014-12-17)
-- #50: empty document handling
-- #63: tags with strange capitalization
-- #65: dashes and underscores as allowed characters in tag names
-- #68: Fixed issue with non-inline elements inside inline containers
-
-2.0.1 (2014-09-23)
-- #59: Fixed issue parsing some fragments.
-- #56: Incorrectly saw 0 as empty string
-- Sami as new documentation generator
-
-2.0.0 (2014-07-28)
-- #53: Improved boolean attributes handling
-- #52: Facebook HHVM compatibility
-- #48: Adopted PSR-2 as coding standard
-- #47: Moved everything to Masterminds namespace
-- #45: Added custom namespaces
-- #44: Added support to XML-style namespaces
-- #37: Refactored HTML5 class removing static methods
-
-1.0.5 (2014-06-10)
-- #38: Set the dev-master branch as the 1.0.x branch for composer (goetas)
-- #34: Tests use PSR-4 for autoloading. (goetas)
-- #40, #41: Fix entity handling in RCDATA sections. (KitaitiMakoto)
-- #32: Fixed issue where wharacter references were being incorrectly encoded in style tags.
-
-1.0.4 (2014-04-29)
-- #30/#31 Don't throw an exception for invalid tag names.
-
-1.0.3 (2014-02-28)
-- #23 and #29: Ignore attributes with illegal chars in name for the PHP DOM.
-
-1.0.2 (2014-02-12)
-- #23: Handle missing tag close in attribute list.
-- #25: Fixed text escaping in the serializer (HTML% 8.3).
-- #27: Fixed tests on Windows: changed "\n" -> PHP_EOL.
-- #28: Fixed infinite loop for char "&" in unquoted attribute in parser.
-- #26: Updated tag name case handling to deal with uppercase usage.
-- #24: Newlines and tabs are allowed inside quoted attributes (HTML5 8.2.4).
-- Fixed Travis CI testing.
-
-1.0.1 (2013-11-07)
-- CDATA encoding is improved. (Non-standard; Issue #19)
-- Some parser rules were not returning the new current element. (Issue #20)
-- Added, to the README, details on code test coverage and to packagist version.
-- Fixed processor instructions.
-- Improved test coverage and documentation coverage.
-
-1.0.0 (2013-10-02)
-- Initial release.
diff --git a/core/vendor/masterminds/html5/UPGRADING.md b/core/vendor/masterminds/html5/UPGRADING.md
deleted file mode 100644
index e3e562d..0000000
--- a/core/vendor/masterminds/html5/UPGRADING.md
+++ /dev/null
@@ -1,21 +0,0 @@
-From 1.x to 2.x
-=================
-
-- All classes uses `Masterminds` namespace.
-- All public static methods has been removed from `HTML5` class and the general API to access the HTML5 functionalities has changed.
-
-    Before:
-
-        $dom = \HTML5::loadHTML('<html>....');
-        \HTML5::saveHTML($dom);
-
-    After:
-
-        use Masterminds\HTML5;
-
-        $html5 = new HTML5();
-
-        $dom = $html5->loadHTML('<html>....');
-        echo $html5->saveHTML($dom);
-
-
diff --git a/core/vendor/masterminds/html5/bin/entities.php b/core/vendor/masterminds/html5/bin/entities.php
deleted file mode 100644
index 0fbd6ec..0000000
--- a/core/vendor/masterminds/html5/bin/entities.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * Fetch the entities.json file and convert to PHP datastructure.
- */
-
-// The URL to the official entities JSON file.
-$ENTITIES_URL = 'http://www.w3.org/TR/2012/CR-html5-20121217/entities.json';
-
-$payload = file_get_contents($ENTITIES_URL);
-$json = json_decode($payload);
-
-$table = array();
-foreach ($json as $name => $obj) {
-  $sname = substr($name, 1, -1);
-  $table[$sname] = $obj->characters;
-}
-
-print '<?php
-namespace Masterminds\\HTML5;
-/** Entity lookup tables. This class is automatically generated. */
-class Entities {
-  public static $byName = ';
-var_export($table);
-print ';
-}' . PHP_EOL;
-//print serialize($table);
diff --git a/core/vendor/masterminds/html5/composer.json b/core/vendor/masterminds/html5/composer.json
deleted file mode 100644
index 9101239..0000000
--- a/core/vendor/masterminds/html5/composer.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-    "name": "masterminds/html5",
-    "description": "An HTML5 parser and serializer.",
-    "type": "library",
-    "homepage": "http://masterminds.github.io/html5-php",
-    "license": "MIT",
-    "keywords": ["xml", "html", "html5", "dom", "parser", "serializer", "querypath"],
-    "authors": [
-        {
-            "name": "Matt Butcher",
-            "email": "technosophos@gmail.com"
-        },
-        {
-            "name": "Matt Farina",
-            "email": "matt@mattfarina.com"
-        },
-        {
-            "name": "Asmir Mustafic",
-            "email": "goetas@gmail.com"
-        }
-    ],
-    "require" : {
-        "ext-libxml" : "*",
-        "php" : ">=5.3.0"
-    },
-    "require-dev": {
-        "satooshi/php-coveralls": "0.6.*",
-        "phpunit/phpunit" : "4.*",
-        "sami/sami": "~2.0"
-    },
-    "autoload": {
-        "psr-4": {"Masterminds\\": "src"}
-    },
-    "autoload-dev": {
-        "psr-4": {"Masterminds\\HTML5\\Tests\\": "test/HTML5"}
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.1-dev"
-        }
-    }
-}
diff --git a/core/vendor/masterminds/html5/example.php b/core/vendor/masterminds/html5/example.php
deleted file mode 100644
index 5e3b25f..0000000
--- a/core/vendor/masterminds/html5/example.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-require "vendor/autoload.php";
-use Masterminds\HTML5;
-
-
-$html = <<< 'HERE'
-  <html>
-  <head>
-  <title>TEST</title>
-  <script language="javascript">
-  if (2 > 1) { alert("Math wins."); }
-  </script>
-  </head>
-  <body id='foo'>
-  <!-- This space intentionally left blank. -->
-  <section class="section-a pretty" id="bar1">
-  <h1>Hello World</h1><p>This is a test of the HTML5 parser.</p>
-  <hr>
-  &amp; Nobody nowhere.
-  </section>
-  <test xmlns:foo="http://example.com/foo">TEST</test>
-  <![CDATA[Because we can.]]>
-  &copy;
-  </body></html>
-HERE;
-
-$html5 = new HTML5();
-$dom = $html5->loadHTML($html);
-
-print "Converting to HTML 5\n";
-
-$html5->save($dom, fopen("php://stdin", 'w'));
diff --git a/core/vendor/masterminds/html5/phpunit.xml.dist b/core/vendor/masterminds/html5/phpunit.xml.dist
deleted file mode 100644
index b42903a..0000000
--- a/core/vendor/masterminds/html5/phpunit.xml.dist
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit colors="true" bootstrap="vendor/autoload.php">
-    <testsuites>
-        <testsuite name="PHPUnit">
-          <directory>test/HTML5/</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <blacklist>
-            <file>systemlib.phpreflection_hni</file>
-            <file>src/HTML5/Parser/InputStream.php</file>
-            <file>src/HTML5/Serializer/RulesInterface.php</file>
-            <file>src/HTML5/Entities.php</file>
-            <file>src/HTML5/Serializer/HTML5Entities.php</file>
-        </blacklist>
-    </filter>
-    <logging>
-        <log
-            type="coverage-html"
-            target="build/coverage"
-            charset="UTF-8"
-            yui="true"
-            highlight="true"
-            lowUpperBound="35"
-            highLowerBound="70"
-            showUncoveredFiles="true"
-            />
-          <log type="coverage-clover" target="build/logs/clover.xml"/>
-    </logging>
-</phpunit>
diff --git a/core/vendor/masterminds/html5/sami.php b/core/vendor/masterminds/html5/sami.php
deleted file mode 100644
index d0dd80b..0000000
--- a/core/vendor/masterminds/html5/sami.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-use Sami\Sami;
-
-return new Sami(__DIR__ . '/src' , array(
-    'title'                => 'HTML5-PHP API',
-    'build_dir'            => __DIR__.'/build/apidoc',
-    'cache_dir'            => __DIR__.'/build/sami-cache',
-    'default_opened_level' => 1,
-));
\ No newline at end of file
diff --git a/core/vendor/masterminds/html5/src/HTML5.php b/core/vendor/masterminds/html5/src/HTML5.php
deleted file mode 100644
index 1c46c2b..0000000
--- a/core/vendor/masterminds/html5/src/HTML5.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-namespace Masterminds;
-
-use Masterminds\HTML5\Parser\FileInputStream;
-use Masterminds\HTML5\Parser\StringInputStream;
-use Masterminds\HTML5\Parser\DOMTreeBuilder;
-use Masterminds\HTML5\Parser\Scanner;
-use Masterminds\HTML5\Parser\Tokenizer;
-use Masterminds\HTML5\Serializer\OutputRules;
-use Masterminds\HTML5\Serializer\Traverser;
-
-/**
- * This class offers convenience methods for parsing and serializing HTML5.
- * It is roughly designed to mirror the \DOMDocument class that is
- * provided with most versions of PHP.
- *
- * EXPERIMENTAL. This may change or be completely replaced.
- */
-class HTML5
-{
-
-    /**
-     * Global options for the parser and serializer.
-     *
-     * @var array
-     */
-    protected $options = array(
-        // If the serializer should encode all entities.
-        'encode_entities' => false
-    );
-
-    protected $errors = array();
-
-    public function __construct(array $options = array())
-    {
-        $this->options = array_merge($this->options, $options);
-    }
-
-    /**
-     * Get the default options.
-     *
-     * @return array The default options.
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    /**
-     * Load and parse an HTML file.
-     *
-     * This will apply the HTML5 parser, which is tolerant of many
-     * varieties of HTML, including XHTML 1, HTML 4, and well-formed HTML
-     * 3. Note that in these cases, not all of the old data will be
-     * preserved. For example, XHTML's XML declaration will be removed.
-     *
-     * The rules governing parsing are set out in the HTML 5 spec.
-     *
-     * @param string $file
-     *            The path to the file to parse. If this is a resource, it is
-     *            assumed to be an open stream whose pointer is set to the first
-     *            byte of input.
-     * @param array $options
-     *            Configuration options when parsing the HTML
-     * @return \DOMDocument A DOM document. These object type is defined by the libxml
-     *         library, and should have been included with your version of PHP.
-     */
-    public function load($file, array $options = array())
-    {
-        // Handle the case where file is a resource.
-        if (is_resource($file)) {
-            // FIXME: We need a StreamInputStream class.
-            return $this->loadHTML(stream_get_contents($file), $options);
-        }
-
-        $input = new FileInputStream($file);
-
-        return $this->parse($input, $options);
-    }
-
-    /**
-     * Parse a HTML Document from a string.
-     *
-     * Take a string of HTML 5 (or earlier) and parse it into a
-     * DOMDocument.
-     *
-     * @param string $string
-     *            A html5 document as a string.
-     * @param array $options
-     *            Configuration options when parsing the HTML
-     * @return \DOMDocument A DOM document. DOM is part of libxml, which is included with
-     *         almost all distribtions of PHP.
-     */
-    public function loadHTML($string, array $options = array())
-    {
-        $input = new StringInputStream($string);
-
-        return $this->parse($input, $options);
-    }
-
-    /**
-     * Convenience function to load an HTML file.
-     *
-     * This is here to provide backwards compatibility with the
-     * PHP DOM implementation. It simply calls load().
-     *
-     * @param string $file
-     *            The path to the file to parse. If this is a resource, it is
-     *            assumed to be an open stream whose pointer is set to the first
-     *            byte of input.
-     * @param array $options
-     *            Configuration options when parsing the HTML
-     *
-     * @return \DOMDocument A DOM document. These object type is defined by the libxml
-     *         library, and should have been included with your version of PHP.
-     */
-    public function loadHTMLFile($file, array $options = array())
-    {
-        return $this->load($file, $options);
-    }
-
-    /**
-     * Parse a HTML fragment from a string.
-     *
-     * @param string $string
-     *            The html5 fragment as a string.
-     * @param array $options
-     *            Configuration options when parsing the HTML
-     *
-     * @return \DOMDocumentFragment A DOM fragment. The DOM is part of libxml, which is included with
-     *         almost all distributions of PHP.
-     */
-    public function loadHTMLFragment($string, array $options = array())
-    {
-        $input = new StringInputStream($string);
-
-        return $this->parseFragment($input, $options);
-    }
-
-    /**
-     * Return all errors encountered into parsing phase
-     *
-     * @return array
-     */
-    public function getErrors()
-    {
-        return $this->errors;
-    }
-
-    /**
-     * Return true it some errors were encountered into parsing phase
-     *
-     * @return bool
-     */
-    public function hasErrors()
-    {
-        return count($this->errors) > 0;
-    }
-
-    /**
-     * Parse an input stream.
-     *
-     * Lower-level loading function. This requires an input stream instead
-     * of a string, file, or resource.
-     */
-    public function parse(\Masterminds\HTML5\Parser\InputStream $input, array $options = array())
-    {
-        $this->errors = array();
-        $events = new DOMTreeBuilder(false, array_merge($this->getOptions(), $options));
-        $scanner = new Scanner($input);
-        $parser = new Tokenizer($scanner, $events);
-
-        $parser->parse();
-        $this->errors = $events->getErrors();
-
-        return $events->document();
-    }
-
-    /**
-     * Parse an input stream where the stream is a fragment.
-     *
-     * Lower-level loading function. This requires an input stream instead
-     * of a string, file, or resource.
-     */
-    public function parseFragment(\Masterminds\HTML5\Parser\InputStream $input, array $options = array())
-    {
-        $events = new DOMTreeBuilder(true, array_merge($this->getOptions(), $options));
-        $scanner = new Scanner($input);
-        $parser = new Tokenizer($scanner, $events);
-
-        $parser->parse();
-        $this->errors = $events->getErrors();
-
-        return $events->fragment();
-    }
-
-    /**
-     * Save a DOM into a given file as HTML5.
-     *
-     * @param mixed $dom
-     *            The DOM to be serialized.
-     * @param string $file
-     *            The filename to be written.
-     * @param array $options
-     *            Configuration options when serializing the DOM. These include:
-     *            - encode_entities: Text written to the output is escaped by default and not all
-     *            entities are encoded. If this is set to true all entities will be encoded.
-     *            Defaults to false.
-     */
-    public function save($dom, $file, $options = array())
-    {
-        $close = true;
-        if (is_resource($file)) {
-            $stream = $file;
-            $close = false;
-        } else {
-            $stream = fopen($file, 'w');
-        }
-        $options = array_merge($this->getOptions(), $options);
-        $rules = new OutputRules($stream, $options);
-        $trav = new Traverser($dom, $stream, $rules, $options);
-
-        $trav->walk();
-
-        if ($close) {
-            fclose($stream);
-        }
-    }
-
-    /**
-     * Convert a DOM into an HTML5 string.
-     *
-     * @param mixed $dom
-     *            The DOM to be serialized.
-     * @param array $options
-     *            Configuration options when serializing the DOM. These include:
-     *            - encode_entities: Text written to the output is escaped by default and not all
-     *            entities are encoded. If this is set to true all entities will be encoded.
-     *            Defaults to false.
-     *
-     * @return string A HTML5 documented generated from the DOM.
-     */
-    public function saveHTML($dom, $options = array())
-    {
-        $stream = fopen('php://temp', 'w');
-        $this->save($dom, $stream, array_merge($this->getOptions(), $options));
-
-        return stream_get_contents($stream, - 1, 0);
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Elements.php b/core/vendor/masterminds/html5/src/HTML5/Elements.php
deleted file mode 100644
index 6cf72aa..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Elements.php
+++ /dev/null
@@ -1,634 +0,0 @@
-<?php
-/**
- * Provide general element functions.
- */
-namespace Masterminds\HTML5;
-
-/**
- * This class provides general information about HTML5 elements,
- * including syntactic and semantic issues.
- * Parsers and serializers can
- * use this class as a reference point for information about the rules
- * of various HTML5 elements.
- *
- * @todo consider using a bitmask table lookup. There is enough overlap in
- *       naming that this could significantly shrink the size and maybe make it
- *       faster. See the Go teams implementation at https://code.google.com/p/go/source/browse/html/atom.
- */
-class Elements
-{
-
-    /**
-     * Indicates an element is described in the specification.
-     */
-    const KNOWN_ELEMENT = 1;
-
-    // From section 8.1.2: "script", "style"
-    // From 8.2.5.4.7 ("in body" insertion mode): "noembed", "noscript"
-    // From 8.4 "style", "xmp", "iframe", "noembed", "noframes"
-    /**
-     * Indicates the contained text should be processed as raw text.
-     */
-    const TEXT_RAW = 2;
-
-    // From section 8.1.2: "textarea", "title"
-    /**
-     * Indicates the contained text should be processed as RCDATA.
-     */
-    const TEXT_RCDATA = 4;
-
-    /**
-     * Indicates the tag cannot have content.
-     */
-    const VOID_TAG = 8;
-
-    // "address", "article", "aside", "blockquote", "center", "details", "dialog", "dir", "div", "dl",
-    // "fieldset", "figcaption", "figure", "footer", "header", "hgroup", "menu",
-    // "nav", "ol", "p", "section", "summary", "ul"
-    // "h1", "h2", "h3", "h4", "h5", "h6"
-    // "pre", "listing"
-    // "form"
-    // "plaintext"
-    /**
-     * Indicates that if a previous event is for a P tag, that element
-     * should be considered closed.
-     */
-    const AUTOCLOSE_P = 16;
-
-    /**
-     * Indicates that the text inside is plaintext (pre).
-     */
-    const TEXT_PLAINTEXT = 32;
-
-    // See https://developer.mozilla.org/en-US/docs/HTML/Block-level_elements
-    /**
-     * Indicates that the tag is a block.
-     */
-    const BLOCK_TAG = 64;
-
-    /**
-     * Indicates that the tag allows only inline elements as child nodes.
-     */
-    const BLOCK_ONLY_INLINE = 128;
-
-    /**
-     * The HTML5 elements as defined in http://dev.w3.org/html5/markup/elements.html.
-     *
-     * @var array
-     */
-    public static $html5 = array(
-        "a" => 1,
-        "abbr" => 1,
-        "address" => 89, // NORMAL | VOID_TAG | AUTOCLOSE_P | BLOCK_TAG
-        "area" => 9, // NORMAL | VOID_TAG
-        "article" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "aside" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "audio" => 65, // NORMAL | BLOCK_TAG
-        "b" => 1,
-        "base" => 9, // NORMAL | VOID_TAG
-        "bdi" => 1,
-        "bdo" => 1,
-        "blockquote" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "body" => 1,
-        "br" => 9, // NORMAL | VOID_TAG
-        "button" => 1,
-        "canvas" => 65, // NORMAL | BLOCK_TAG
-        "caption" => 1,
-        "cite" => 1,
-        "code" => 1,
-        "col" => 9, // NORMAL | VOID_TAG
-        "colgroup" => 1,
-        "command" => 9, // NORMAL | VOID_TAG
-                        // "data" => 1, // This is highly experimental and only part of the whatwg spec (not w3c). See https://developer.mozilla.org/en-US/docs/HTML/Element/data
-        "datalist" => 1,
-        "dd" => 65, // NORMAL | BLOCK_TAG
-        "del" => 1,
-        "details" => 17, // NORMAL | AUTOCLOSE_P,
-        "dfn" => 1,
-        "dialog" => 17, // NORMAL | AUTOCLOSE_P,
-        "div" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "dl" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "dt" => 1,
-        "em" => 1,
-        "embed" => 9, // NORMAL | VOID_TAG
-        "fieldset" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "figcaption" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "figure" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "footer" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "form" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "h1" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "h2" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "h3" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "h4" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "h5" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "h6" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "head" => 1,
-        "header" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "hgroup" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "hr" => 73, // NORMAL | VOID_TAG
-        "html" => 1,
-        "i" => 1,
-        "iframe" => 3, // NORMAL | TEXT_RAW
-        "img" => 9, // NORMAL | VOID_TAG
-        "input" => 9, // NORMAL | VOID_TAG
-        "kbd" => 1,
-        "ins" => 1,
-        "keygen" => 9, // NORMAL | VOID_TAG
-        "label" => 1,
-        "legend" => 1,
-        "li" => 1,
-        "link" => 9, // NORMAL | VOID_TAG
-        "map" => 1,
-        "mark" => 1,
-        "menu" => 17, // NORMAL | AUTOCLOSE_P,
-        "meta" => 9, // NORMAL | VOID_TAG
-        "meter" => 1,
-        "nav" => 17, // NORMAL | AUTOCLOSE_P,
-        "noscript" => 67, // NORMAL | TEXT_RAW | BLOCK_TAG
-        "object" => 1,
-        "ol" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "optgroup" => 1,
-        "option" => 1,
-        "output" => 65, // NORMAL | BLOCK_TAG
-        "p" => 209, // NORMAL | AUTOCLOSE_P | BLOCK_TAG | BLOCK_ONLY_INLINE
-        "param" => 9, // NORMAL | VOID_TAG
-        "pre" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "progress" => 1,
-        "q" => 1,
-        "rp" => 1,
-        "rt" => 1,
-        "ruby" => 1,
-        "s" => 1,
-        "samp" => 1,
-        "script" => 3, // NORMAL | TEXT_RAW
-        "section" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "select" => 1,
-        "small" => 1,
-        "source" => 9, // NORMAL | VOID_TAG
-        "span" => 1,
-        "strong" => 1,
-        "style" => 3, // NORMAL | TEXT_RAW
-        "sub" => 1,
-        "summary" => 17, // NORMAL | AUTOCLOSE_P,
-        "sup" => 1,
-        "table" => 65, // NORMAL | BLOCK_TAG
-        "tbody" => 1,
-        "td" => 1,
-        "textarea" => 5, // NORMAL | TEXT_RCDATA
-        "tfoot" => 65, // NORMAL | BLOCK_TAG
-        "th" => 1,
-        "thead" => 1,
-        "time" => 1,
-        "title" => 5, // NORMAL | TEXT_RCDATA
-        "tr" => 1,
-        "track" => 9, // NORMAL | VOID_TAG
-        "u" => 1,
-        "ul" => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG
-        "var" => 1,
-        "video" => 65, // NORMAL | BLOCK_TAG
-        "wbr" => 9, // NORMAL | VOID_TAG
-
-        // Legacy?
-        'basefont' => 8, // VOID_TAG
-        'bgsound' => 8, // VOID_TAG
-        'noframes' => 2, // RAW_TEXT
-        'frame' => 9, // NORMAL | VOID_TAG
-        'frameset' => 1,
-        'center' => 16,
-        'dir' => 16,
-        'listing' => 16, // AUTOCLOSE_P
-        'plaintext' => 48, // AUTOCLOSE_P | TEXT_PLAINTEXT
-        'applet' => 0,
-        'marquee' => 0,
-        'isindex' => 8, // VOID_TAG
-        'xmp' => 20, // AUTOCLOSE_P | VOID_TAG | RAW_TEXT
-        'noembed' => 2 // RAW_TEXT
-        );
-
-    /**
-     * The MathML elements.
-     * See http://www.w3.org/wiki/MathML/Elements.
-     *
-     * In our case we are only concerned with presentation MathML and not content
-     * MathML. There is a nice list of this subset at https://developer.mozilla.org/en-US/docs/MathML/Element.
-     *
-     * @var array
-     */
-    public static $mathml = array(
-        "maction" => 1,
-        "maligngroup" => 1,
-        "malignmark" => 1,
-        "math" => 1,
-        "menclose" => 1,
-        "merror" => 1,
-        "mfenced" => 1,
-        "mfrac" => 1,
-        "mglyph" => 1,
-        "mi" => 1,
-        "mlabeledtr" => 1,
-        "mlongdiv" => 1,
-        "mmultiscripts" => 1,
-        "mn" => 1,
-        "mo" => 1,
-        "mover" => 1,
-        "mpadded" => 1,
-        "mphantom" => 1,
-        "mroot" => 1,
-        "mrow" => 1,
-        "ms" => 1,
-        "mscarries" => 1,
-        "mscarry" => 1,
-        "msgroup" => 1,
-        "msline" => 1,
-        "mspace" => 1,
-        "msqrt" => 1,
-        "msrow" => 1,
-        "mstack" => 1,
-        "mstyle" => 1,
-        "msub" => 1,
-        "msup" => 1,
-        "msubsup" => 1,
-        "mtable" => 1,
-        "mtd" => 1,
-        "mtext" => 1,
-        "mtr" => 1,
-        "munder" => 1,
-        "munderover" => 1
-    );
-
-    /**
-     * The svg elements.
-     *
-     * The Mozilla documentation has a good list at https://developer.mozilla.org/en-US/docs/SVG/Element.
-     * The w3c list appears to be lacking in some areas like filter effect elements.
-     * That list can be found at http://www.w3.org/wiki/SVG/Elements.
-     *
-     * Note, FireFox appears to do a better job rendering filter effects than chrome.
-     * While they are in the spec I'm not sure how widely implemented they are.
-     *
-     * @var array
-     */
-    public static $svg = array(
-        "a" => 1,
-        "altGlyph" => 1,
-        "altGlyphDef" => 1,
-        "altGlyphItem" => 1,
-        "animate" => 1,
-        "animateColor" => 1,
-        "animateMotion" => 1,
-        "animateTransform" => 1,
-        "circle" => 1,
-        "clipPath" => 1,
-        "color-profile" => 1,
-        "cursor" => 1,
-        "defs" => 1,
-        "desc" => 1,
-        "ellipse" => 1,
-        "feBlend" => 1,
-        "feColorMatrix" => 1,
-        "feComponentTransfer" => 1,
-        "feComposite" => 1,
-        "feConvolveMatrix" => 1,
-        "feDiffuseLighting" => 1,
-        "feDisplacementMap" => 1,
-        "feDistantLight" => 1,
-        "feFlood" => 1,
-        "feFuncA" => 1,
-        "feFuncB" => 1,
-        "feFuncG" => 1,
-        "feFuncR" => 1,
-        "feGaussianBlur" => 1,
-        "feImage" => 1,
-        "feMerge" => 1,
-        "feMergeNode" => 1,
-        "feMorphology" => 1,
-        "feOffset" => 1,
-        "fePointLight" => 1,
-        "feSpecularLighting" => 1,
-        "feSpotLight" => 1,
-        "feTile" => 1,
-        "feTurbulence" => 1,
-        "filter" => 1,
-        "font" => 1,
-        "font-face" => 1,
-        "font-face-format" => 1,
-        "font-face-name" => 1,
-        "font-face-src" => 1,
-        "font-face-uri" => 1,
-        "foreignObject" => 1,
-        "g" => 1,
-        "glyph" => 1,
-        "glyphRef" => 1,
-        "hkern" => 1,
-        "image" => 1,
-        "line" => 1,
-        "linearGradient" => 1,
-        "marker" => 1,
-        "mask" => 1,
-        "metadata" => 1,
-        "missing-glyph" => 1,
-        "mpath" => 1,
-        "path" => 1,
-        "pattern" => 1,
-        "polygon" => 1,
-        "polyline" => 1,
-        "radialGradient" => 1,
-        "rect" => 1,
-        "script" => 3, // NORMAL | RAW_TEXT
-        "set" => 1,
-        "stop" => 1,
-        "style" => 3, // NORMAL | RAW_TEXT
-        "svg" => 1,
-        "switch" => 1,
-        "symbol" => 1,
-        "text" => 1,
-        "textPath" => 1,
-        "title" => 1,
-        "tref" => 1,
-        "tspan" => 1,
-        "use" => 1,
-        "view" => 1,
-        "vkern" => 1
-    );
-
-    /**
-     * Some attributes in SVG are case sensetitive.
-     *
-     * This map contains key/value pairs with the key as the lowercase attribute
-     * name and the value with the correct casing.
-     */
-    public static $svgCaseSensitiveAttributeMap = array(
-        'attributename' => 'attributeName',
-        'attributetype' => 'attributeType',
-        'basefrequency' => 'baseFrequency',
-        'baseprofile' => 'baseProfile',
-        'calcmode' => 'calcMode',
-        'clippathunits' => 'clipPathUnits',
-        'contentscripttype' => 'contentScriptType',
-        'contentstyletype' => 'contentStyleType',
-        'diffuseconstant' => 'diffuseConstant',
-        'edgemode' => 'edgeMode',
-        'externalresourcesrequired' => 'externalResourcesRequired',
-        'filterres' => 'filterRes',
-        'filterunits' => 'filterUnits',
-        'glyphref' => 'glyphRef',
-        'gradienttransform' => 'gradientTransform',
-        'gradientunits' => 'gradientUnits',
-        'kernelmatrix' => 'kernelMatrix',
-        'kernelunitlength' => 'kernelUnitLength',
-        'keypoints' => 'keyPoints',
-        'keysplines' => 'keySplines',
-        'keytimes' => 'keyTimes',
-        'lengthadjust' => 'lengthAdjust',
-        'limitingconeangle' => 'limitingConeAngle',
-        'markerheight' => 'markerHeight',
-        'markerunits' => 'markerUnits',
-        'markerwidth' => 'markerWidth',
-        'maskcontentunits' => 'maskContentUnits',
-        'maskunits' => 'maskUnits',
-        'numoctaves' => 'numOctaves',
-        'pathlength' => 'pathLength',
-        'patterncontentunits' => 'patternContentUnits',
-        'patterntransform' => 'patternTransform',
-        'patternunits' => 'patternUnits',
-        'pointsatx' => 'pointsAtX',
-        'pointsaty' => 'pointsAtY',
-        'pointsatz' => 'pointsAtZ',
-        'preservealpha' => 'preserveAlpha',
-        'preserveaspectratio' => 'preserveAspectRatio',
-        'primitiveunits' => 'primitiveUnits',
-        'refx' => 'refX',
-        'refy' => 'refY',
-        'repeatcount' => 'repeatCount',
-        'repeatdur' => 'repeatDur',
-        'requiredextensions' => 'requiredExtensions',
-        'requiredfeatures' => 'requiredFeatures',
-        'specularconstant' => 'specularConstant',
-        'specularexponent' => 'specularExponent',
-        'spreadmethod' => 'spreadMethod',
-        'startoffset' => 'startOffset',
-        'stddeviation' => 'stdDeviation',
-        'stitchtiles' => 'stitchTiles',
-        'surfacescale' => 'surfaceScale',
-        'systemlanguage' => 'systemLanguage',
-        'tablevalues' => 'tableValues',
-        'targetx' => 'targetX',
-        'targety' => 'targetY',
-        'textlength' => 'textLength',
-        'viewbox' => 'viewBox',
-        'viewtarget' => 'viewTarget',
-        'xchannelselector' => 'xChannelSelector',
-        'ychannelselector' => 'yChannelSelector',
-        'zoomandpan' => 'zoomAndPan'
-    );
-
-    /**
-     * Some SVG elements are case sensetitive.
-     * This map contains these.
-     *
-     * The map contains key/value store of the name is lowercase as the keys and
-     * the correct casing as the value.
-     */
-    public static $svgCaseSensitiveElementMap = array(
-        'altglyph' => 'altGlyph',
-        'altglyphdef' => 'altGlyphDef',
-        'altglyphitem' => 'altGlyphItem',
-        'animatecolor' => 'animateColor',
-        'animatemotion' => 'animateMotion',
-        'animatetransform' => 'animateTransform',
-        'clippath' => 'clipPath',
-        'feblend' => 'feBlend',
-        'fecolormatrix' => 'feColorMatrix',
-        'fecomponenttransfer' => 'feComponentTransfer',
-        'fecomposite' => 'feComposite',
-        'feconvolvematrix' => 'feConvolveMatrix',
-        'fediffuselighting' => 'feDiffuseLighting',
-        'fedisplacementmap' => 'feDisplacementMap',
-        'fedistantlight' => 'feDistantLight',
-        'feflood' => 'feFlood',
-        'fefunca' => 'feFuncA',
-        'fefuncb' => 'feFuncB',
-        'fefuncg' => 'feFuncG',
-        'fefuncr' => 'feFuncR',
-        'fegaussianblur' => 'feGaussianBlur',
-        'feimage' => 'feImage',
-        'femerge' => 'feMerge',
-        'femergenode' => 'feMergeNode',
-        'femorphology' => 'feMorphology',
-        'feoffset' => 'feOffset',
-        'fepointlight' => 'fePointLight',
-        'fespecularlighting' => 'feSpecularLighting',
-        'fespotlight' => 'feSpotLight',
-        'fetile' => 'feTile',
-        'feturbulence' => 'feTurbulence',
-        'foreignobject' => 'foreignObject',
-        'glyphref' => 'glyphRef',
-        'lineargradient' => 'linearGradient',
-        'radialgradient' => 'radialGradient',
-        'textpath' => 'textPath'
-    );
-
-    /**
-     * Check whether the given element meets the given criterion.
-     *
-     * Example:
-     *
-     * Elements::isA('script', Elements::TEXT_RAW); // Returns true.
-     *
-     * Elements::isA('script', Elements::TEXT_RCDATA); // Returns false.
-     *
-     * @param string $name
-     *            The element name.
-     * @param int $mask
-     *            One of the constants on this class.
-     * @return boolean true if the element matches the mask, false otherwise.
-     */
-    public static function isA($name, $mask)
-    {
-        if (! static::isElement($name)) {
-            return false;
-        }
-
-        return (static::element($name) & $mask) == $mask;
-    }
-
-    /**
-     * Test if an element is a valid html5 element.
-     *
-     * @param string $name
-     *            The name of the element.
-     *
-     * @return bool True if a html5 element and false otherwise.
-     */
-    public static function isHtml5Element($name)
-    {
-        // html5 element names are case insensetitive. Forcing lowercase for the check.
-        // Do we need this check or will all data passed here already be lowercase?
-        return isset(static::$html5[strtolower($name)]);
-    }
-
-    /**
-     * Test if an element name is a valid MathML presentation element.
-     *
-     * @param string $name
-     *            The name of the element.
-     *
-     * @return bool True if a MathML name and false otherwise.
-     */
-    public static function isMathMLElement($name)
-    {
-        // MathML is case-sensetitive unlike html5 elements.
-        return isset(static::$mathml[$name]);
-    }
-
-    /**
-     * Test if an element is a valid SVG element.
-     *
-     * @param string $name
-     *            The name of the element.
-     *
-     * @return boolean True if a SVG element and false otherise.
-     */
-    public static function isSvgElement($name)
-    {
-        // SVG is case-sensetitive unlike html5 elements.
-        return isset(static::$svg[$name]);
-    }
-
-    /**
-     * Is an element name valid in an html5 document.
-     *
-     * This includes html5 elements along with other allowed embedded content
-     * such as svg and mathml.
-     *
-     * @param string $name
-     *            The name of the element.
-     *
-     * @return bool True if valid and false otherwise.
-     */
-    public static function isElement($name)
-    {
-        return static::isHtml5Element($name) || static::isMathMLElement($name) || static::isSvgElement($name);
-    }
-
-    /**
-     * Get the element mask for the given element name.
-     *
-     * @param string $name
-     *            The name of the element.
-     *
-     * @return int The element mask.
-     */
-    public static function element($name)
-    {
-        if (isset(static::$html5[$name])) {
-            return static::$html5[$name];
-        }
-        if (isset(static::$svg[$name])) {
-            return static::$svg[$name];
-        }
-        if (isset(static::$mathml[$name])) {
-            return static::$mathml[$name];
-        }
-
-        return false;
-    }
-
-    /**
-     * Normalize a SVG element name to its proper case and form.
-     *
-     * @param string $name
-     *            The name of the element.
-     *
-     * @return string The normalized form of the element name.
-     */
-    public static function normalizeSvgElement($name)
-    {
-        $name = strtolower($name);
-        if (isset(static::$svgCaseSensitiveElementMap[$name])) {
-            $name = static::$svgCaseSensitiveElementMap[$name];
-        }
-
-        return $name;
-    }
-
-    /**
-     * Normalize a SVG attribute name to its proper case and form.
-     *
-     * @param string $name
-     *            The name of the attribute.
-     *
-     * @return string The normalized form of the attribute name.
-     */
-    public static function normalizeSvgAttribute($name)
-    {
-        $name = strtolower($name);
-        if (isset(static::$svgCaseSensitiveAttributeMap[$name])) {
-            $name = static::$svgCaseSensitiveAttributeMap[$name];
-        }
-
-        return $name;
-    }
-
-    /**
-     * Normalize a MathML attribute name to its proper case and form.
-     *
-     * Note, all MathML element names are lowercase.
-     *
-     * @param string $name
-     *            The name of the attribute.
-     *
-     * @return string The normalized form of the attribute name.
-     */
-    public static function normalizeMathMlAttribute($name)
-    {
-        $name = strtolower($name);
-
-        // Only one attribute has a mixed case form for MathML.
-        if ($name == 'definitionurl') {
-            $name = 'definitionURL';
-        }
-
-        return $name;
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Entities.php b/core/vendor/masterminds/html5/src/HTML5/Entities.php
deleted file mode 100644
index 2e605d6..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Entities.php
+++ /dev/null
@@ -1,2236 +0,0 @@
-<?php
-namespace Masterminds\HTML5;
-
-/**
- * Entity lookup tables.
- * This class is automatically generated.
- */
-class Entities
-{
-
-    public static $byName = array(
-        'Aacute' => 'Á',
-        'Aacut' => 'Á',
-        'aacute' => 'á',
-        'aacut' => 'á',
-        'Abreve' => 'Ă',
-        'abreve' => 'ă',
-        'ac' => '∾',
-        'acd' => '∿',
-        'acE' => '∾̳',
-        'Acirc' => 'Â',
-        'Acir' => 'Â',
-        'acirc' => 'â',
-        'acir' => 'â',
-        'acute' => '´',
-        'acut' => '´',
-        'Acy' => 'А',
-        'acy' => 'а',
-        'AElig' => 'Æ',
-        'AEli' => 'Æ',
-        'aelig' => 'æ',
-        'aeli' => 'æ',
-        'af' => '⁡',
-        'Afr' => '𝔄',
-        'afr' => '𝔞',
-        'Agrave' => 'À',
-        'Agrav' => 'À',
-        'agrave' => 'à',
-        'agrav' => 'à',
-        'alefsym' => 'ℵ',
-        'aleph' => 'ℵ',
-        'Alpha' => 'Α',
-        'alpha' => 'α',
-        'Amacr' => 'Ā',
-        'amacr' => 'ā',
-        'amalg' => '⨿',
-        'AMP' => '&',
-        'AM' => '&',
-        'amp' => '&',
-        'am' => '&',
-        'And' => '⩓',
-        'and' => '∧',
-        'andand' => '⩕',
-        'andd' => '⩜',
-        'andslope' => '⩘',
-        'andv' => '⩚',
-        'ang' => '∠',
-        'ange' => '⦤',
-        'angle' => '∠',
-        'angmsd' => '∡',
-        'angmsdaa' => '⦨',
-        'angmsdab' => '⦩',
-        'angmsdac' => '⦪',
-        'angmsdad' => '⦫',
-        'angmsdae' => '⦬',
-        'angmsdaf' => '⦭',
-        'angmsdag' => '⦮',
-        'angmsdah' => '⦯',
-        'angrt' => '∟',
-        'angrtvb' => '⊾',
-        'angrtvbd' => '⦝',
-        'angsph' => '∢',
-        'angst' => 'Å',
-        'angzarr' => '⍼',
-        'Aogon' => 'Ą',
-        'aogon' => 'ą',
-        'Aopf' => '𝔸',
-        'aopf' => '𝕒',
-        'ap' => '≈',
-        'apacir' => '⩯',
-        'apE' => '⩰',
-        'ape' => '≊',
-        'apid' => '≋',
-        'apos' => '\'',
-        'ApplyFunction' => '⁡',
-        'approx' => '≈',
-        'approxeq' => '≊',
-        'Aring' => 'Å',
-        'Arin' => 'Å',
-        'aring' => 'å',
-        'arin' => 'å',
-        'Ascr' => '𝒜',
-        'ascr' => '𝒶',
-        'Assign' => '≔',
-        'ast' => '*',
-        'asymp' => '≈',
-        'asympeq' => '≍',
-        'Atilde' => 'Ã',
-        'Atild' => 'Ã',
-        'atilde' => 'ã',
-        'atild' => 'ã',
-        'Auml' => 'Ä',
-        'Aum' => 'Ä',
-        'auml' => 'ä',
-        'aum' => 'ä',
-        'awconint' => '∳',
-        'awint' => '⨑',
-        'backcong' => '≌',
-        'backepsilon' => '϶',
-        'backprime' => '‵',
-        'backsim' => '∽',
-        'backsimeq' => '⋍',
-        'Backslash' => '∖',
-        'Barv' => '⫧',
-        'barvee' => '⊽',
-        'Barwed' => '⌆',
-        'barwed' => '⌅',
-        'barwedge' => '⌅',
-        'bbrk' => '⎵',
-        'bbrktbrk' => '⎶',
-        'bcong' => '≌',
-        'Bcy' => 'Б',
-        'bcy' => 'б',
-        'bdquo' => '„',
-        'becaus' => '∵',
-        'Because' => '∵',
-        'because' => '∵',
-        'bemptyv' => '⦰',
-        'bepsi' => '϶',
-        'bernou' => 'ℬ',
-        'Bernoullis' => 'ℬ',
-        'Beta' => 'Β',
-        'beta' => 'β',
-        'beth' => 'ℶ',
-        'between' => '≬',
-        'Bfr' => '𝔅',
-        'bfr' => '𝔟',
-        'bigcap' => '⋂',
-        'bigcirc' => '◯',
-        'bigcup' => '⋃',
-        'bigodot' => '⨀',
-        'bigoplus' => '⨁',
-        'bigotimes' => '⨂',
-        'bigsqcup' => '⨆',
-        'bigstar' => '★',
-        'bigtriangledown' => '▽',
-        'bigtriangleup' => '△',
-        'biguplus' => '⨄',
-        'bigvee' => '⋁',
-        'bigwedge' => '⋀',
-        'bkarow' => '⤍',
-        'blacklozenge' => '⧫',
-        'blacksquare' => '▪',
-        'blacktriangle' => '▴',
-        'blacktriangledown' => '▾',
-        'blacktriangleleft' => '◂',
-        'blacktriangleright' => '▸',
-        'blank' => '␣',
-        'blk12' => '▒',
-        'blk14' => '░',
-        'blk34' => '▓',
-        'block' => '█',
-        'bne' => '=⃥',
-        'bnequiv' => '≡⃥',
-        'bNot' => '⫭',
-        'bnot' => '⌐',
-        'Bopf' => '𝔹',
-        'bopf' => '𝕓',
-        'bot' => '⊥',
-        'bottom' => '⊥',
-        'bowtie' => '⋈',
-        'boxbox' => '⧉',
-        'boxDL' => '╗',
-        'boxDl' => '╖',
-        'boxdL' => '╕',
-        'boxdl' => '┐',
-        'boxDR' => '╔',
-        'boxDr' => '╓',
-        'boxdR' => '╒',
-        'boxdr' => '┌',
-        'boxH' => '═',
-        'boxh' => '─',
-        'boxHD' => '╦',
-        'boxHd' => '╤',
-        'boxhD' => '╥',
-        'boxhd' => '┬',
-        'boxHU' => '╩',
-        'boxHu' => '╧',
-        'boxhU' => '╨',
-        'boxhu' => '┴',
-        'boxminus' => '⊟',
-        'boxplus' => '⊞',
-        'boxtimes' => '⊠',
-        'boxUL' => '╝',
-        'boxUl' => '╜',
-        'boxuL' => '╛',
-        'boxul' => '┘',
-        'boxUR' => '╚',
-        'boxUr' => '╙',
-        'boxuR' => '╘',
-        'boxur' => '└',
-        'boxV' => '║',
-        'boxv' => '│',
-        'boxVH' => '╬',
-        'boxVh' => '╫',
-        'boxvH' => '╪',
-        'boxvh' => '┼',
-        'boxVL' => '╣',
-        'boxVl' => '╢',
-        'boxvL' => '╡',
-        'boxvl' => '┤',
-        'boxVR' => '╠',
-        'boxVr' => '╟',
-        'boxvR' => '╞',
-        'boxvr' => '├',
-        'bprime' => '‵',
-        'Breve' => '˘',
-        'breve' => '˘',
-        'brvbar' => '¦',
-        'brvba' => '¦',
-        'Bscr' => 'ℬ',
-        'bscr' => '𝒷',
-        'bsemi' => '⁏',
-        'bsim' => '∽',
-        'bsime' => '⋍',
-        'bsol' => '\\',
-        'bsolb' => '⧅',
-        'bsolhsub' => '⟈',
-        'bull' => '•',
-        'bullet' => '•',
-        'bump' => '≎',
-        'bumpE' => '⪮',
-        'bumpe' => '≏',
-        'Bumpeq' => '≎',
-        'bumpeq' => '≏',
-        'Cacute' => 'Ć',
-        'cacute' => 'ć',
-        'Cap' => '⋒',
-        'cap' => '∩',
-        'capand' => '⩄',
-        'capbrcup' => '⩉',
-        'capcap' => '⩋',
-        'capcup' => '⩇',
-        'capdot' => '⩀',
-        'CapitalDifferentialD' => 'ⅅ',
-        'caps' => '∩︀',
-        'caret' => '⁁',
-        'caron' => 'ˇ',
-        'Cayleys' => 'ℭ',
-        'ccaps' => '⩍',
-        'Ccaron' => 'Č',
-        'ccaron' => 'č',
-        'Ccedil' => 'Ç',
-        'Ccedi' => 'Ç',
-        'ccedil' => 'ç',
-        'ccedi' => 'ç',
-        'Ccirc' => 'Ĉ',
-        'ccirc' => 'ĉ',
-        'Cconint' => '∰',
-        'ccups' => '⩌',
-        'ccupssm' => '⩐',
-        'Cdot' => 'Ċ',
-        'cdot' => 'ċ',
-        'cedil' => '¸',
-        'cedi' => '¸',
-        'Cedilla' => '¸',
-        'cemptyv' => '⦲',
-        'cent' => '¢',
-        'cen' => '¢',
-        'CenterDot' => '·',
-        'centerdot' => '·',
-        'Cfr' => 'ℭ',
-        'cfr' => '𝔠',
-        'CHcy' => 'Ч',
-        'chcy' => 'ч',
-        'check' => '✓',
-        'checkmark' => '✓',
-        'Chi' => 'Χ',
-        'chi' => 'χ',
-        'cir' => '○',
-        'circ' => 'ˆ',
-        'circeq' => '≗',
-        'circlearrowleft' => '↺',
-        'circlearrowright' => '↻',
-        'circledast' => '⊛',
-        'circledcirc' => '⊚',
-        'circleddash' => '⊝',
-        'CircleDot' => '⊙',
-        'circledR' => '®',
-        'circledS' => 'Ⓢ',
-        'CircleMinus' => '⊖',
-        'CirclePlus' => '⊕',
-        'CircleTimes' => '⊗',
-        'cirE' => '⧃',
-        'cire' => '≗',
-        'cirfnint' => '⨐',
-        'cirmid' => '⫯',
-        'cirscir' => '⧂',
-        'ClockwiseContourIntegral' => '∲',
-        'CloseCurlyDoubleQuote' => '”',
-        'CloseCurlyQuote' => '’',
-        'clubs' => '♣',
-        'clubsuit' => '♣',
-        'Colon' => '∷',
-        'colon' => ':',
-        'Colone' => '⩴',
-        'colone' => '≔',
-        'coloneq' => '≔',
-        'comma' => ',',
-        'commat' => '@',
-        'comp' => '∁',
-        'compfn' => '∘',
-        'complement' => '∁',
-        'complexes' => 'ℂ',
-        'cong' => '≅',
-        'congdot' => '⩭',
-        'Congruent' => '≡',
-        'Conint' => '∯',
-        'conint' => '∮',
-        'ContourIntegral' => '∮',
-        'Copf' => 'ℂ',
-        'copf' => '𝕔',
-        'coprod' => '∐',
-        'Coproduct' => '∐',
-        'COPY' => '©',
-        'COP' => '©',
-        'copy' => '©',
-        'cop' => '©',
-        'copysr' => '℗',
-        'CounterClockwiseContourIntegral' => '∳',
-        'crarr' => '↵',
-        'Cross' => '⨯',
-        'cross' => '✗',
-        'Cscr' => '𝒞',
-        'cscr' => '𝒸',
-        'csub' => '⫏',
-        'csube' => '⫑',
-        'csup' => '⫐',
-        'csupe' => '⫒',
-        'ctdot' => '⋯',
-        'cudarrl' => '⤸',
-        'cudarrr' => '⤵',
-        'cuepr' => '⋞',
-        'cuesc' => '⋟',
-        'cularr' => '↶',
-        'cularrp' => '⤽',
-        'Cup' => '⋓',
-        'cup' => '∪',
-        'cupbrcap' => '⩈',
-        'CupCap' => '≍',
-        'cupcap' => '⩆',
-        'cupcup' => '⩊',
-        'cupdot' => '⊍',
-        'cupor' => '⩅',
-        'cups' => '∪︀',
-        'curarr' => '↷',
-        'curarrm' => '⤼',
-        'curlyeqprec' => '⋞',
-        'curlyeqsucc' => '⋟',
-        'curlyvee' => '⋎',
-        'curlywedge' => '⋏',
-        'curren' => '¤',
-        'curre' => '¤',
-        'curvearrowleft' => '↶',
-        'curvearrowright' => '↷',
-        'cuvee' => '⋎',
-        'cuwed' => '⋏',
-        'cwconint' => '∲',
-        'cwint' => '∱',
-        'cylcty' => '⌭',
-        'Dagger' => '‡',
-        'dagger' => '†',
-        'daleth' => 'ℸ',
-        'Darr' => '↡',
-        'dArr' => '⇓',
-        'darr' => '↓',
-        'dash' => '‐',
-        'Dashv' => '⫤',
-        'dashv' => '⊣',
-        'dbkarow' => '⤏',
-        'dblac' => '˝',
-        'Dcaron' => 'Ď',
-        'dcaron' => 'ď',
-        'Dcy' => 'Д',
-        'dcy' => 'д',
-        'DD' => 'ⅅ',
-        'dd' => 'ⅆ',
-        'ddagger' => '‡',
-        'ddarr' => '⇊',
-        'DDotrahd' => '⤑',
-        'ddotseq' => '⩷',
-        'deg' => '°',
-        'de' => '°',
-        'Del' => '∇',
-        'Delta' => 'Δ',
-        'delta' => 'δ',
-        'demptyv' => '⦱',
-        'dfisht' => '⥿',
-        'Dfr' => '𝔇',
-        'dfr' => '𝔡',
-        'dHar' => '⥥',
-        'dharl' => '⇃',
-        'dharr' => '⇂',
-        'DiacriticalAcute' => '´',
-        'DiacriticalDot' => '˙',
-        'DiacriticalDoubleAcute' => '˝',
-        'DiacriticalGrave' => '`',
-        'DiacriticalTilde' => '˜',
-        'diam' => '⋄',
-        'Diamond' => '⋄',
-        'diamond' => '⋄',
-        'diamondsuit' => '♦',
-        'diams' => '♦',
-        'die' => '¨',
-        'DifferentialD' => 'ⅆ',
-        'digamma' => 'ϝ',
-        'disin' => '⋲',
-        'div' => '÷',
-        'divide' => '÷',
-        'divid' => '÷',
-        'divideontimes' => '⋇',
-        'divonx' => '⋇',
-        'DJcy' => 'Ђ',
-        'djcy' => 'ђ',
-        'dlcorn' => '⌞',
-        'dlcrop' => '⌍',
-        'dollar' => '$',
-        'Dopf' => '𝔻',
-        'dopf' => '𝕕',
-        'Dot' => '¨',
-        'dot' => '˙',
-        'DotDot' => '⃜',
-        'doteq' => '≐',
-        'doteqdot' => '≑',
-        'DotEqual' => '≐',
-        'dotminus' => '∸',
-        'dotplus' => '∔',
-        'dotsquare' => '⊡',
-        'doublebarwedge' => '⌆',
-        'DoubleContourIntegral' => '∯',
-        'DoubleDot' => '¨',
-        'DoubleDownArrow' => '⇓',
-        'DoubleLeftArrow' => '⇐',
-        'DoubleLeftRightArrow' => '⇔',
-        'DoubleLeftTee' => '⫤',
-        'DoubleLongLeftArrow' => '⟸',
-        'DoubleLongLeftRightArrow' => '⟺',
-        'DoubleLongRightArrow' => '⟹',
-        'DoubleRightArrow' => '⇒',
-        'DoubleRightTee' => '⊨',
-        'DoubleUpArrow' => '⇑',
-        'DoubleUpDownArrow' => '⇕',
-        'DoubleVerticalBar' => '∥',
-        'DownArrow' => '↓',
-        'Downarrow' => '⇓',
-        'downarrow' => '↓',
-        'DownArrowBar' => '⤓',
-        'DownArrowUpArrow' => '⇵',
-        'DownBreve' => '̑',
-        'downdownarrows' => '⇊',
-        'downharpoonleft' => '⇃',
-        'downharpoonright' => '⇂',
-        'DownLeftRightVector' => '⥐',
-        'DownLeftTeeVector' => '⥞',
-        'DownLeftVector' => '↽',
-        'DownLeftVectorBar' => '⥖',
-        'DownRightTeeVector' => '⥟',
-        'DownRightVector' => '⇁',
-        'DownRightVectorBar' => '⥗',
-        'DownTee' => '⊤',
-        'DownTeeArrow' => '↧',
-        'drbkarow' => '⤐',
-        'drcorn' => '⌟',
-        'drcrop' => '⌌',
-        'Dscr' => '𝒟',
-        'dscr' => '𝒹',
-        'DScy' => 'Ѕ',
-        'dscy' => 'ѕ',
-        'dsol' => '⧶',
-        'Dstrok' => 'Đ',
-        'dstrok' => 'đ',
-        'dtdot' => '⋱',
-        'dtri' => '▿',
-        'dtrif' => '▾',
-        'duarr' => '⇵',
-        'duhar' => '⥯',
-        'dwangle' => '⦦',
-        'DZcy' => 'Џ',
-        'dzcy' => 'џ',
-        'dzigrarr' => '⟿',
-        'Eacute' => 'É',
-        'Eacut' => 'É',
-        'eacute' => 'é',
-        'eacut' => 'é',
-        'easter' => '⩮',
-        'Ecaron' => 'Ě',
-        'ecaron' => 'ě',
-        'ecir' => 'ê',
-        'Ecirc' => 'Ê',
-        'Ecir' => 'Ê',
-        'ecirc' => 'ê',
-        'ecolon' => '≕',
-        'Ecy' => 'Э',
-        'ecy' => 'э',
-        'eDDot' => '⩷',
-        'Edot' => 'Ė',
-        'eDot' => '≑',
-        'edot' => 'ė',
-        'ee' => 'ⅇ',
-        'efDot' => '≒',
-        'Efr' => '𝔈',
-        'efr' => '𝔢',
-        'eg' => '⪚',
-        'Egrave' => 'È',
-        'Egrav' => 'È',
-        'egrave' => 'è',
-        'egrav' => 'è',
-        'egs' => '⪖',
-        'egsdot' => '⪘',
-        'el' => '⪙',
-        'Element' => '∈',
-        'elinters' => '⏧',
-        'ell' => 'ℓ',
-        'els' => '⪕',
-        'elsdot' => '⪗',
-        'Emacr' => 'Ē',
-        'emacr' => 'ē',
-        'empty' => '∅',
-        'emptyset' => '∅',
-        'EmptySmallSquare' => '◻',
-        'emptyv' => '∅',
-        'EmptyVerySmallSquare' => '▫',
-        'emsp' => ' ',
-        'emsp13' => ' ',
-        'emsp14' => ' ',
-        'ENG' => 'Ŋ',
-        'eng' => 'ŋ',
-        'ensp' => ' ',
-        'Eogon' => 'Ę',
-        'eogon' => 'ę',
-        'Eopf' => '𝔼',
-        'eopf' => '𝕖',
-        'epar' => '⋕',
-        'eparsl' => '⧣',
-        'eplus' => '⩱',
-        'epsi' => 'ε',
-        'Epsilon' => 'Ε',
-        'epsilon' => 'ε',
-        'epsiv' => 'ϵ',
-        'eqcirc' => '≖',
-        'eqcolon' => '≕',
-        'eqsim' => '≂',
-        'eqslantgtr' => '⪖',
-        'eqslantless' => '⪕',
-        'Equal' => '⩵',
-        'equals' => '=',
-        'EqualTilde' => '≂',
-        'equest' => '≟',
-        'Equilibrium' => '⇌',
-        'equiv' => '≡',
-        'equivDD' => '⩸',
-        'eqvparsl' => '⧥',
-        'erarr' => '⥱',
-        'erDot' => '≓',
-        'Escr' => 'ℰ',
-        'escr' => 'ℯ',
-        'esdot' => '≐',
-        'Esim' => '⩳',
-        'esim' => '≂',
-        'Eta' => 'Η',
-        'eta' => 'η',
-        'ETH' => 'Ð',
-        'ET' => 'Ð',
-        'eth' => 'ð',
-        'et' => 'ð',
-        'Euml' => 'Ë',
-        'Eum' => 'Ë',
-        'euml' => 'ë',
-        'eum' => 'ë',
-        'euro' => '€',
-        'excl' => '!',
-        'exist' => '∃',
-        'Exists' => '∃',
-        'expectation' => 'ℰ',
-        'ExponentialE' => 'ⅇ',
-        'exponentiale' => 'ⅇ',
-        'fallingdotseq' => '≒',
-        'Fcy' => 'Ф',
-        'fcy' => 'ф',
-        'female' => '♀',
-        'ffilig' => 'ﬃ',
-        'fflig' => 'ﬀ',
-        'ffllig' => 'ﬄ',
-        'Ffr' => '𝔉',
-        'ffr' => '𝔣',
-        'filig' => 'ﬁ',
-        'FilledSmallSquare' => '◼',
-        'FilledVerySmallSquare' => '▪',
-        'fjlig' => 'fj',
-        'flat' => '♭',
-        'fllig' => 'ﬂ',
-        'fltns' => '▱',
-        'fnof' => 'ƒ',
-        'Fopf' => '𝔽',
-        'fopf' => '𝕗',
-        'ForAll' => '∀',
-        'forall' => '∀',
-        'fork' => '⋔',
-        'forkv' => '⫙',
-        'Fouriertrf' => 'ℱ',
-        'fpartint' => '⨍',
-        'frac12' => '½',
-        'frac1' => '¼',
-        'frac13' => '⅓',
-        'frac14' => '¼',
-        'frac15' => '⅕',
-        'frac16' => '⅙',
-        'frac18' => '⅛',
-        'frac23' => '⅔',
-        'frac25' => '⅖',
-        'frac34' => '¾',
-        'frac3' => '¾',
-        'frac35' => '⅗',
-        'frac38' => '⅜',
-        'frac45' => '⅘',
-        'frac56' => '⅚',
-        'frac58' => '⅝',
-        'frac78' => '⅞',
-        'frasl' => '⁄',
-        'frown' => '⌢',
-        'Fscr' => 'ℱ',
-        'fscr' => '𝒻',
-        'gacute' => 'ǵ',
-        'Gamma' => 'Γ',
-        'gamma' => 'γ',
-        'Gammad' => 'Ϝ',
-        'gammad' => 'ϝ',
-        'gap' => '⪆',
-        'Gbreve' => 'Ğ',
-        'gbreve' => 'ğ',
-        'Gcedil' => 'Ģ',
-        'Gcirc' => 'Ĝ',
-        'gcirc' => 'ĝ',
-        'Gcy' => 'Г',
-        'gcy' => 'г',
-        'Gdot' => 'Ġ',
-        'gdot' => 'ġ',
-        'gE' => '≧',
-        'ge' => '≥',
-        'gEl' => '⪌',
-        'gel' => '⋛',
-        'geq' => '≥',
-        'geqq' => '≧',
-        'geqslant' => '⩾',
-        'ges' => '⩾',
-        'gescc' => '⪩',
-        'gesdot' => '⪀',
-        'gesdoto' => '⪂',
-        'gesdotol' => '⪄',
-        'gesl' => '⋛︀',
-        'gesles' => '⪔',
-        'Gfr' => '𝔊',
-        'gfr' => '𝔤',
-        'Gg' => '⋙',
-        'gg' => '≫',
-        'ggg' => '⋙',
-        'gimel' => 'ℷ',
-        'GJcy' => 'Ѓ',
-        'gjcy' => 'ѓ',
-        'gl' => '≷',
-        'gla' => '⪥',
-        'glE' => '⪒',
-        'glj' => '⪤',
-        'gnap' => '⪊',
-        'gnapprox' => '⪊',
-        'gnE' => '≩',
-        'gne' => '⪈',
-        'gneq' => '⪈',
-        'gneqq' => '≩',
-        'gnsim' => '⋧',
-        'Gopf' => '𝔾',
-        'gopf' => '𝕘',
-        'grave' => '`',
-        'GreaterEqual' => '≥',
-        'GreaterEqualLess' => '⋛',
-        'GreaterFullEqual' => '≧',
-        'GreaterGreater' => '⪢',
-        'GreaterLess' => '≷',
-        'GreaterSlantEqual' => '⩾',
-        'GreaterTilde' => '≳',
-        'Gscr' => '𝒢',
-        'gscr' => 'ℊ',
-        'gsim' => '≳',
-        'gsime' => '⪎',
-        'gsiml' => '⪐',
-        'GT' => '>',
-        'G' => '>',
-        'Gt' => '≫',
-        'gt' => '>',
-        'g' => '>',
-        'gtcc' => '⪧',
-        'gtcir' => '⩺',
-        'gtdot' => '⋗',
-        'gtlPar' => '⦕',
-        'gtquest' => '⩼',
-        'gtrapprox' => '⪆',
-        'gtrarr' => '⥸',
-        'gtrdot' => '⋗',
-        'gtreqless' => '⋛',
-        'gtreqqless' => '⪌',
-        'gtrless' => '≷',
-        'gtrsim' => '≳',
-        'gvertneqq' => '≩︀',
-        'gvnE' => '≩︀',
-        'Hacek' => 'ˇ',
-        'hairsp' => ' ',
-        'half' => '½',
-        'hamilt' => 'ℋ',
-        'HARDcy' => 'Ъ',
-        'hardcy' => 'ъ',
-        'hArr' => '⇔',
-        'harr' => '↔',
-        'harrcir' => '⥈',
-        'harrw' => '↭',
-        'Hat' => '^',
-        'hbar' => 'ℏ',
-        'Hcirc' => 'Ĥ',
-        'hcirc' => 'ĥ',
-        'hearts' => '♥',
-        'heartsuit' => '♥',
-        'hellip' => '…',
-        'hercon' => '⊹',
-        'Hfr' => 'ℌ',
-        'hfr' => '𝔥',
-        'HilbertSpace' => 'ℋ',
-        'hksearow' => '⤥',
-        'hkswarow' => '⤦',
-        'hoarr' => '⇿',
-        'homtht' => '∻',
-        'hookleftarrow' => '↩',
-        'hookrightarrow' => '↪',
-        'Hopf' => 'ℍ',
-        'hopf' => '𝕙',
-        'horbar' => '―',
-        'HorizontalLine' => '─',
-        'Hscr' => 'ℋ',
-        'hscr' => '𝒽',
-        'hslash' => 'ℏ',
-        'Hstrok' => 'Ħ',
-        'hstrok' => 'ħ',
-        'HumpDownHump' => '≎',
-        'HumpEqual' => '≏',
-        'hybull' => '⁃',
-        'hyphen' => '‐',
-        'Iacute' => 'Í',
-        'Iacut' => 'Í',
-        'iacute' => 'í',
-        'iacut' => 'í',
-        'ic' => '⁣',
-        'Icirc' => 'Î',
-        'Icir' => 'Î',
-        'icirc' => 'î',
-        'icir' => 'î',
-        'Icy' => 'И',
-        'icy' => 'и',
-        'Idot' => 'İ',
-        'IEcy' => 'Е',
-        'iecy' => 'е',
-        'iexcl' => '¡',
-        'iexc' => '¡',
-        'iff' => '⇔',
-        'Ifr' => 'ℑ',
-        'ifr' => '𝔦',
-        'Igrave' => 'Ì',
-        'Igrav' => 'Ì',
-        'igrave' => 'ì',
-        'igrav' => 'ì',
-        'ii' => 'ⅈ',
-        'iiiint' => '⨌',
-        'iiint' => '∭',
-        'iinfin' => '⧜',
-        'iiota' => '℩',
-        'IJlig' => 'Ĳ',
-        'ijlig' => 'ĳ',
-        'Im' => 'ℑ',
-        'Imacr' => 'Ī',
-        'imacr' => 'ī',
-        'image' => 'ℑ',
-        'ImaginaryI' => 'ⅈ',
-        'imagline' => 'ℐ',
-        'imagpart' => 'ℑ',
-        'imath' => 'ı',
-        'imof' => '⊷',
-        'imped' => 'Ƶ',
-        'Implies' => '⇒',
-        'in' => '∈',
-        'incare' => '℅',
-        'infin' => '∞',
-        'infintie' => '⧝',
-        'inodot' => 'ı',
-        'Int' => '∬',
-        'int' => '∫',
-        'intcal' => '⊺',
-        'integers' => 'ℤ',
-        'Integral' => '∫',
-        'intercal' => '⊺',
-        'Intersection' => '⋂',
-        'intlarhk' => '⨗',
-        'intprod' => '⨼',
-        'InvisibleComma' => '⁣',
-        'InvisibleTimes' => '⁢',
-        'IOcy' => 'Ё',
-        'iocy' => 'ё',
-        'Iogon' => 'Į',
-        'iogon' => 'į',
-        'Iopf' => '𝕀',
-        'iopf' => '𝕚',
-        'Iota' => 'Ι',
-        'iota' => 'ι',
-        'iprod' => '⨼',
-        'iquest' => '¿',
-        'iques' => '¿',
-        'Iscr' => 'ℐ',
-        'iscr' => '𝒾',
-        'isin' => '∈',
-        'isindot' => '⋵',
-        'isinE' => '⋹',
-        'isins' => '⋴',
-        'isinsv' => '⋳',
-        'isinv' => '∈',
-        'it' => '⁢',
-        'Itilde' => 'Ĩ',
-        'itilde' => 'ĩ',
-        'Iukcy' => 'І',
-        'iukcy' => 'і',
-        'Iuml' => 'Ï',
-        'Ium' => 'Ï',
-        'iuml' => 'ï',
-        'ium' => 'ï',
-        'Jcirc' => 'Ĵ',
-        'jcirc' => 'ĵ',
-        'Jcy' => 'Й',
-        'jcy' => 'й',
-        'Jfr' => '𝔍',
-        'jfr' => '𝔧',
-        'jmath' => 'ȷ',
-        'Jopf' => '𝕁',
-        'jopf' => '𝕛',
-        'Jscr' => '𝒥',
-        'jscr' => '𝒿',
-        'Jsercy' => 'Ј',
-        'jsercy' => 'ј',
-        'Jukcy' => 'Є',
-        'jukcy' => 'є',
-        'Kappa' => 'Κ',
-        'kappa' => 'κ',
-        'kappav' => 'ϰ',
-        'Kcedil' => 'Ķ',
-        'kcedil' => 'ķ',
-        'Kcy' => 'К',
-        'kcy' => 'к',
-        'Kfr' => '𝔎',
-        'kfr' => '𝔨',
-        'kgreen' => 'ĸ',
-        'KHcy' => 'Х',
-        'khcy' => 'х',
-        'KJcy' => 'Ќ',
-        'kjcy' => 'ќ',
-        'Kopf' => '𝕂',
-        'kopf' => '𝕜',
-        'Kscr' => '𝒦',
-        'kscr' => '𝓀',
-        'lAarr' => '⇚',
-        'Lacute' => 'Ĺ',
-        'lacute' => 'ĺ',
-        'laemptyv' => '⦴',
-        'lagran' => 'ℒ',
-        'Lambda' => 'Λ',
-        'lambda' => 'λ',
-        'Lang' => '⟪',
-        'lang' => '⟨',
-        'langd' => '⦑',
-        'langle' => '⟨',
-        'lap' => '⪅',
-        'Laplacetrf' => 'ℒ',
-        'laquo' => '«',
-        'laqu' => '«',
-        'Larr' => '↞',
-        'lArr' => '⇐',
-        'larr' => '←',
-        'larrb' => '⇤',
-        'larrbfs' => '⤟',
-        'larrfs' => '⤝',
-        'larrhk' => '↩',
-        'larrlp' => '↫',
-        'larrpl' => '⤹',
-        'larrsim' => '⥳',
-        'larrtl' => '↢',
-        'lat' => '⪫',
-        'lAtail' => '⤛',
-        'latail' => '⤙',
-        'late' => '⪭',
-        'lates' => '⪭︀',
-        'lBarr' => '⤎',
-        'lbarr' => '⤌',
-        'lbbrk' => '❲',
-        'lbrace' => '{',
-        'lbrack' => '[',
-        'lbrke' => '⦋',
-        'lbrksld' => '⦏',
-        'lbrkslu' => '⦍',
-        'Lcaron' => 'Ľ',
-        'lcaron' => 'ľ',
-        'Lcedil' => 'Ļ',
-        'lcedil' => 'ļ',
-        'lceil' => '⌈',
-        'lcub' => '{',
-        'Lcy' => 'Л',
-        'lcy' => 'л',
-        'ldca' => '⤶',
-        'ldquo' => '“',
-        'ldquor' => '„',
-        'ldrdhar' => '⥧',
-        'ldrushar' => '⥋',
-        'ldsh' => '↲',
-        'lE' => '≦',
-        'le' => '≤',
-        'LeftAngleBracket' => '⟨',
-        'LeftArrow' => '←',
-        'Leftarrow' => '⇐',
-        'leftarrow' => '←',
-        'LeftArrowBar' => '⇤',
-        'LeftArrowRightArrow' => '⇆',
-        'leftarrowtail' => '↢',
-        'LeftCeiling' => '⌈',
-        'LeftDoubleBracket' => '⟦',
-        'LeftDownTeeVector' => '⥡',
-        'LeftDownVector' => '⇃',
-        'LeftDownVectorBar' => '⥙',
-        'LeftFloor' => '⌊',
-        'leftharpoondown' => '↽',
-        'leftharpoonup' => '↼',
-        'leftleftarrows' => '⇇',
-        'LeftRightArrow' => '↔',
-        'Leftrightarrow' => '⇔',
-        'leftrightarrow' => '↔',
-        'leftrightarrows' => '⇆',
-        'leftrightharpoons' => '⇋',
-        'leftrightsquigarrow' => '↭',
-        'LeftRightVector' => '⥎',
-        'LeftTee' => '⊣',
-        'LeftTeeArrow' => '↤',
-        'LeftTeeVector' => '⥚',
-        'leftthreetimes' => '⋋',
-        'LeftTriangle' => '⊲',
-        'LeftTriangleBar' => '⧏',
-        'LeftTriangleEqual' => '⊴',
-        'LeftUpDownVector' => '⥑',
-        'LeftUpTeeVector' => '⥠',
-        'LeftUpVector' => '↿',
-        'LeftUpVectorBar' => '⥘',
-        'LeftVector' => '↼',
-        'LeftVectorBar' => '⥒',
-        'lEg' => '⪋',
-        'leg' => '⋚',
-        'leq' => '≤',
-        'leqq' => '≦',
-        'leqslant' => '⩽',
-        'les' => '⩽',
-        'lescc' => '⪨',
-        'lesdot' => '⩿',
-        'lesdoto' => '⪁',
-        'lesdotor' => '⪃',
-        'lesg' => '⋚︀',
-        'lesges' => '⪓',
-        'lessapprox' => '⪅',
-        'lessdot' => '⋖',
-        'lesseqgtr' => '⋚',
-        'lesseqqgtr' => '⪋',
-        'LessEqualGreater' => '⋚',
-        'LessFullEqual' => '≦',
-        'LessGreater' => '≶',
-        'lessgtr' => '≶',
-        'LessLess' => '⪡',
-        'lesssim' => '≲',
-        'LessSlantEqual' => '⩽',
-        'LessTilde' => '≲',
-        'lfisht' => '⥼',
-        'lfloor' => '⌊',
-        'Lfr' => '𝔏',
-        'lfr' => '𝔩',
-        'lg' => '≶',
-        'lgE' => '⪑',
-        'lHar' => '⥢',
-        'lhard' => '↽',
-        'lharu' => '↼',
-        'lharul' => '⥪',
-        'lhblk' => '▄',
-        'LJcy' => 'Љ',
-        'ljcy' => 'љ',
-        'Ll' => '⋘',
-        'll' => '≪',
-        'llarr' => '⇇',
-        'llcorner' => '⌞',
-        'Lleftarrow' => '⇚',
-        'llhard' => '⥫',
-        'lltri' => '◺',
-        'Lmidot' => 'Ŀ',
-        'lmidot' => 'ŀ',
-        'lmoust' => '⎰',
-        'lmoustache' => '⎰',
-        'lnap' => '⪉',
-        'lnapprox' => '⪉',
-        'lnE' => '≨',
-        'lne' => '⪇',
-        'lneq' => '⪇',
-        'lneqq' => '≨',
-        'lnsim' => '⋦',
-        'loang' => '⟬',
-        'loarr' => '⇽',
-        'lobrk' => '⟦',
-        'LongLeftArrow' => '⟵',
-        'Longleftarrow' => '⟸',
-        'longleftarrow' => '⟵',
-        'LongLeftRightArrow' => '⟷',
-        'Longleftrightarrow' => '⟺',
-        'longleftrightarrow' => '⟷',
-        'longmapsto' => '⟼',
-        'LongRightArrow' => '⟶',
-        'Longrightarrow' => '⟹',
-        'longrightarrow' => '⟶',
-        'looparrowleft' => '↫',
-        'looparrowright' => '↬',
-        'lopar' => '⦅',
-        'Lopf' => '𝕃',
-        'lopf' => '𝕝',
-        'loplus' => '⨭',
-        'lotimes' => '⨴',
-        'lowast' => '∗',
-        'lowbar' => '_',
-        'LowerLeftArrow' => '↙',
-        'LowerRightArrow' => '↘',
-        'loz' => '◊',
-        'lozenge' => '◊',
-        'lozf' => '⧫',
-        'lpar' => '(',
-        'lparlt' => '⦓',
-        'lrarr' => '⇆',
-        'lrcorner' => '⌟',
-        'lrhar' => '⇋',
-        'lrhard' => '⥭',
-        'lrm' => '‎',
-        'lrtri' => '⊿',
-        'lsaquo' => '‹',
-        'Lscr' => 'ℒ',
-        'lscr' => '𝓁',
-        'Lsh' => '↰',
-        'lsh' => '↰',
-        'lsim' => '≲',
-        'lsime' => '⪍',
-        'lsimg' => '⪏',
-        'lsqb' => '[',
-        'lsquo' => '‘',
-        'lsquor' => '‚',
-        'Lstrok' => 'Ł',
-        'lstrok' => 'ł',
-        'LT' => '<',
-        'L' => '<',
-        'Lt' => '≪',
-        'lt' => '<',
-        'l' => '<',
-        'ltcc' => '⪦',
-        'ltcir' => '⩹',
-        'ltdot' => '⋖',
-        'lthree' => '⋋',
-        'ltimes' => '⋉',
-        'ltlarr' => '⥶',
-        'ltquest' => '⩻',
-        'ltri' => '◃',
-        'ltrie' => '⊴',
-        'ltrif' => '◂',
-        'ltrPar' => '⦖',
-        'lurdshar' => '⥊',
-        'luruhar' => '⥦',
-        'lvertneqq' => '≨︀',
-        'lvnE' => '≨︀',
-        'macr' => '¯',
-        'mac' => '¯',
-        'male' => '♂',
-        'malt' => '✠',
-        'maltese' => '✠',
-        'Map' => '⤅',
-        'map' => '↦',
-        'mapsto' => '↦',
-        'mapstodown' => '↧',
-        'mapstoleft' => '↤',
-        'mapstoup' => '↥',
-        'marker' => '▮',
-        'mcomma' => '⨩',
-        'Mcy' => 'М',
-        'mcy' => 'м',
-        'mdash' => '—',
-        'mDDot' => '∺',
-        'measuredangle' => '∡',
-        'MediumSpace' => ' ',
-        'Mellintrf' => 'ℳ',
-        'Mfr' => '𝔐',
-        'mfr' => '𝔪',
-        'mho' => '℧',
-        'micro' => 'µ',
-        'micr' => 'µ',
-        'mid' => '∣',
-        'midast' => '*',
-        'midcir' => '⫰',
-        'middot' => '·',
-        'middo' => '·',
-        'minus' => '−',
-        'minusb' => '⊟',
-        'minusd' => '∸',
-        'minusdu' => '⨪',
-        'MinusPlus' => '∓',
-        'mlcp' => '⫛',
-        'mldr' => '…',
-        'mnplus' => '∓',
-        'models' => '⊧',
-        'Mopf' => '𝕄',
-        'mopf' => '𝕞',
-        'mp' => '∓',
-        'Mscr' => 'ℳ',
-        'mscr' => '𝓂',
-        'mstpos' => '∾',
-        'Mu' => 'Μ',
-        'mu' => 'μ',
-        'multimap' => '⊸',
-        'mumap' => '⊸',
-        'nabla' => '∇',
-        'Nacute' => 'Ń',
-        'nacute' => 'ń',
-        'nang' => '∠⃒',
-        'nap' => '≉',
-        'napE' => '⩰̸',
-        'napid' => '≋̸',
-        'napos' => 'ŉ',
-        'napprox' => '≉',
-        'natur' => '♮',
-        'natural' => '♮',
-        'naturals' => 'ℕ',
-        'nbsp' => ' ',
-        'nbs' => ' ',
-        'nbump' => '≎̸',
-        'nbumpe' => '≏̸',
-        'ncap' => '⩃',
-        'Ncaron' => 'Ň',
-        'ncaron' => 'ň',
-        'Ncedil' => 'Ņ',
-        'ncedil' => 'ņ',
-        'ncong' => '≇',
-        'ncongdot' => '⩭̸',
-        'ncup' => '⩂',
-        'Ncy' => 'Н',
-        'ncy' => 'н',
-        'ndash' => '–',
-        'ne' => '≠',
-        'nearhk' => '⤤',
-        'neArr' => '⇗',
-        'nearr' => '↗',
-        'nearrow' => '↗',
-        'nedot' => '≐̸',
-        'NegativeMediumSpace' => '​',
-        'NegativeThickSpace' => '​',
-        'NegativeThinSpace' => '​',
-        'NegativeVeryThinSpace' => '​',
-        'nequiv' => '≢',
-        'nesear' => '⤨',
-        'nesim' => '≂̸',
-        'NestedGreaterGreater' => '≫',
-        'NestedLessLess' => '≪',
-        'NewLine' => '
-',
-        'nexist' => '∄',
-        'nexists' => '∄',
-        'Nfr' => '𝔑',
-        'nfr' => '𝔫',
-        'ngE' => '≧̸',
-        'nge' => '≱',
-        'ngeq' => '≱',
-        'ngeqq' => '≧̸',
-        'ngeqslant' => '⩾̸',
-        'nges' => '⩾̸',
-        'nGg' => '⋙̸',
-        'ngsim' => '≵',
-        'nGt' => '≫⃒',
-        'ngt' => '≯',
-        'ngtr' => '≯',
-        'nGtv' => '≫̸',
-        'nhArr' => '⇎',
-        'nharr' => '↮',
-        'nhpar' => '⫲',
-        'ni' => '∋',
-        'nis' => '⋼',
-        'nisd' => '⋺',
-        'niv' => '∋',
-        'NJcy' => 'Њ',
-        'njcy' => 'њ',
-        'nlArr' => '⇍',
-        'nlarr' => '↚',
-        'nldr' => '‥',
-        'nlE' => '≦̸',
-        'nle' => '≰',
-        'nLeftarrow' => '⇍',
-        'nleftarrow' => '↚',
-        'nLeftrightarrow' => '⇎',
-        'nleftrightarrow' => '↮',
-        'nleq' => '≰',
-        'nleqq' => '≦̸',
-        'nleqslant' => '⩽̸',
-        'nles' => '⩽̸',
-        'nless' => '≮',
-        'nLl' => '⋘̸',
-        'nlsim' => '≴',
-        'nLt' => '≪⃒',
-        'nlt' => '≮',
-        'nltri' => '⋪',
-        'nltrie' => '⋬',
-        'nLtv' => '≪̸',
-        'nmid' => '∤',
-        'NoBreak' => '⁠',
-        'NonBreakingSpace' => ' ',
-        'Nopf' => 'ℕ',
-        'nopf' => '𝕟',
-        'Not' => '⫬',
-        'not' => '¬',
-        'no' => '¬',
-        'NotCongruent' => '≢',
-        'NotCupCap' => '≭',
-        'NotDoubleVerticalBar' => '∦',
-        'NotElement' => '∉',
-        'NotEqual' => '≠',
-        'NotEqualTilde' => '≂̸',
-        'NotExists' => '∄',
-        'NotGreater' => '≯',
-        'NotGreaterEqual' => '≱',
-        'NotGreaterFullEqual' => '≧̸',
-        'NotGreaterGreater' => '≫̸',
-        'NotGreaterLess' => '≹',
-        'NotGreaterSlantEqual' => '⩾̸',
-        'NotGreaterTilde' => '≵',
-        'NotHumpDownHump' => '≎̸',
-        'NotHumpEqual' => '≏̸',
-        'notin' => '∉',
-        'notindot' => '⋵̸',
-        'notinE' => '⋹̸',
-        'notinva' => '∉',
-        'notinvb' => '⋷',
-        'notinvc' => '⋶',
-        'NotLeftTriangle' => '⋪',
-        'NotLeftTriangleBar' => '⧏̸',
-        'NotLeftTriangleEqual' => '⋬',
-        'NotLess' => '≮',
-        'NotLessEqual' => '≰',
-        'NotLessGreater' => '≸',
-        'NotLessLess' => '≪̸',
-        'NotLessSlantEqual' => '⩽̸',
-        'NotLessTilde' => '≴',
-        'NotNestedGreaterGreater' => '⪢̸',
-        'NotNestedLessLess' => '⪡̸',
-        'notni' => '∌',
-        'notniva' => '∌',
-        'notnivb' => '⋾',
-        'notnivc' => '⋽',
-        'NotPrecedes' => '⊀',
-        'NotPrecedesEqual' => '⪯̸',
-        'NotPrecedesSlantEqual' => '⋠',
-        'NotReverseElement' => '∌',
-        'NotRightTriangle' => '⋫',
-        'NotRightTriangleBar' => '⧐̸',
-        'NotRightTriangleEqual' => '⋭',
-        'NotSquareSubset' => '⊏̸',
-        'NotSquareSubsetEqual' => '⋢',
-        'NotSquareSuperset' => '⊐̸',
-        'NotSquareSupersetEqual' => '⋣',
-        'NotSubset' => '⊂⃒',
-        'NotSubsetEqual' => '⊈',
-        'NotSucceeds' => '⊁',
-        'NotSucceedsEqual' => '⪰̸',
-        'NotSucceedsSlantEqual' => '⋡',
-        'NotSucceedsTilde' => '≿̸',
-        'NotSuperset' => '⊃⃒',
-        'NotSupersetEqual' => '⊉',
-        'NotTilde' => '≁',
-        'NotTildeEqual' => '≄',
-        'NotTildeFullEqual' => '≇',
-        'NotTildeTilde' => '≉',
-        'NotVerticalBar' => '∤',
-        'npar' => '∦',
-        'nparallel' => '∦',
-        'nparsl' => '⫽⃥',
-        'npart' => '∂̸',
-        'npolint' => '⨔',
-        'npr' => '⊀',
-        'nprcue' => '⋠',
-        'npre' => '⪯̸',
-        'nprec' => '⊀',
-        'npreceq' => '⪯̸',
-        'nrArr' => '⇏',
-        'nrarr' => '↛',
-        'nrarrc' => '⤳̸',
-        'nrarrw' => '↝̸',
-        'nRightarrow' => '⇏',
-        'nrightarrow' => '↛',
-        'nrtri' => '⋫',
-        'nrtrie' => '⋭',
-        'nsc' => '⊁',
-        'nsccue' => '⋡',
-        'nsce' => '⪰̸',
-        'Nscr' => '𝒩',
-        'nscr' => '𝓃',
-        'nshortmid' => '∤',
-        'nshortparallel' => '∦',
-        'nsim' => '≁',
-        'nsime' => '≄',
-        'nsimeq' => '≄',
-        'nsmid' => '∤',
-        'nspar' => '∦',
-        'nsqsube' => '⋢',
-        'nsqsupe' => '⋣',
-        'nsub' => '⊄',
-        'nsubE' => '⫅̸',
-        'nsube' => '⊈',
-        'nsubset' => '⊂⃒',
-        'nsubseteq' => '⊈',
-        'nsubseteqq' => '⫅̸',
-        'nsucc' => '⊁',
-        'nsucceq' => '⪰̸',
-        'nsup' => '⊅',
-        'nsupE' => '⫆̸',
-        'nsupe' => '⊉',
-        'nsupset' => '⊃⃒',
-        'nsupseteq' => '⊉',
-        'nsupseteqq' => '⫆̸',
-        'ntgl' => '≹',
-        'Ntilde' => 'Ñ',
-        'Ntild' => 'Ñ',
-        'ntilde' => 'ñ',
-        'ntild' => 'ñ',
-        'ntlg' => '≸',
-        'ntriangleleft' => '⋪',
-        'ntrianglelefteq' => '⋬',
-        'ntriangleright' => '⋫',
-        'ntrianglerighteq' => '⋭',
-        'Nu' => 'Ν',
-        'nu' => 'ν',
-        'num' => '#',
-        'numero' => '№',
-        'numsp' => ' ',
-        'nvap' => '≍⃒',
-        'nVDash' => '⊯',
-        'nVdash' => '⊮',
-        'nvDash' => '⊭',
-        'nvdash' => '⊬',
-        'nvge' => '≥⃒',
-        'nvgt' => '>⃒',
-        'nvHarr' => '⤄',
-        'nvinfin' => '⧞',
-        'nvlArr' => '⤂',
-        'nvle' => '≤⃒',
-        'nvlt' => '<⃒',
-        'nvltrie' => '⊴⃒',
-        'nvrArr' => '⤃',
-        'nvrtrie' => '⊵⃒',
-        'nvsim' => '∼⃒',
-        'nwarhk' => '⤣',
-        'nwArr' => '⇖',
-        'nwarr' => '↖',
-        'nwarrow' => '↖',
-        'nwnear' => '⤧',
-        'Oacute' => 'Ó',
-        'Oacut' => 'Ó',
-        'oacute' => 'ó',
-        'oacut' => 'ó',
-        'oast' => '⊛',
-        'ocir' => 'ô',
-        'Ocirc' => 'Ô',
-        'Ocir' => 'Ô',
-        'ocirc' => 'ô',
-        'Ocy' => 'О',
-        'ocy' => 'о',
-        'odash' => '⊝',
-        'Odblac' => 'Ő',
-        'odblac' => 'ő',
-        'odiv' => '⨸',
-        'odot' => '⊙',
-        'odsold' => '⦼',
-        'OElig' => 'Œ',
-        'oelig' => 'œ',
-        'ofcir' => '⦿',
-        'Ofr' => '𝔒',
-        'ofr' => '𝔬',
-        'ogon' => '˛',
-        'Ograve' => 'Ò',
-        'Ograv' => 'Ò',
-        'ograve' => 'ò',
-        'ograv' => 'ò',
-        'ogt' => '⧁',
-        'ohbar' => '⦵',
-        'ohm' => 'Ω',
-        'oint' => '∮',
-        'olarr' => '↺',
-        'olcir' => '⦾',
-        'olcross' => '⦻',
-        'oline' => '‾',
-        'olt' => '⧀',
-        'Omacr' => 'Ō',
-        'omacr' => 'ō',
-        'Omega' => 'Ω',
-        'omega' => 'ω',
-        'Omicron' => 'Ο',
-        'omicron' => 'ο',
-        'omid' => '⦶',
-        'ominus' => '⊖',
-        'Oopf' => '𝕆',
-        'oopf' => '𝕠',
-        'opar' => '⦷',
-        'OpenCurlyDoubleQuote' => '“',
-        'OpenCurlyQuote' => '‘',
-        'operp' => '⦹',
-        'oplus' => '⊕',
-        'Or' => '⩔',
-        'or' => '∨',
-        'orarr' => '↻',
-        'ord' => 'º',
-        'order' => 'ℴ',
-        'orderof' => 'ℴ',
-        'ordf' => 'ª',
-        'ordm' => 'º',
-        'origof' => '⊶',
-        'oror' => '⩖',
-        'orslope' => '⩗',
-        'orv' => '⩛',
-        'oS' => 'Ⓢ',
-        'Oscr' => '𝒪',
-        'oscr' => 'ℴ',
-        'Oslash' => 'Ø',
-        'Oslas' => 'Ø',
-        'oslash' => 'ø',
-        'oslas' => 'ø',
-        'osol' => '⊘',
-        'Otilde' => 'Õ',
-        'Otild' => 'Õ',
-        'otilde' => 'õ',
-        'otild' => 'õ',
-        'Otimes' => '⨷',
-        'otimes' => '⊗',
-        'otimesas' => '⨶',
-        'Ouml' => 'Ö',
-        'Oum' => 'Ö',
-        'ouml' => 'ö',
-        'oum' => 'ö',
-        'ovbar' => '⌽',
-        'OverBar' => '‾',
-        'OverBrace' => '⏞',
-        'OverBracket' => '⎴',
-        'OverParenthesis' => '⏜',
-        'par' => '¶',
-        'para' => '¶',
-        'parallel' => '∥',
-        'parsim' => '⫳',
-        'parsl' => '⫽',
-        'part' => '∂',
-        'PartialD' => '∂',
-        'Pcy' => 'П',
-        'pcy' => 'п',
-        'percnt' => '%',
-        'period' => '.',
-        'permil' => '‰',
-        'perp' => '⊥',
-        'pertenk' => '‱',
-        'Pfr' => '𝔓',
-        'pfr' => '𝔭',
-        'Phi' => 'Φ',
-        'phi' => 'φ',
-        'phiv' => 'ϕ',
-        'phmmat' => 'ℳ',
-        'phone' => '☎',
-        'Pi' => 'Π',
-        'pi' => 'π',
-        'pitchfork' => '⋔',
-        'piv' => 'ϖ',
-        'planck' => 'ℏ',
-        'planckh' => 'ℎ',
-        'plankv' => 'ℏ',
-        'plus' => '+',
-        'plusacir' => '⨣',
-        'plusb' => '⊞',
-        'pluscir' => '⨢',
-        'plusdo' => '∔',
-        'plusdu' => '⨥',
-        'pluse' => '⩲',
-        'PlusMinus' => '±',
-        'plusmn' => '±',
-        'plusm' => '±',
-        'plussim' => '⨦',
-        'plustwo' => '⨧',
-        'pm' => '±',
-        'Poincareplane' => 'ℌ',
-        'pointint' => '⨕',
-        'Popf' => 'ℙ',
-        'popf' => '𝕡',
-        'pound' => '£',
-        'poun' => '£',
-        'Pr' => '⪻',
-        'pr' => '≺',
-        'prap' => '⪷',
-        'prcue' => '≼',
-        'prE' => '⪳',
-        'pre' => '⪯',
-        'prec' => '≺',
-        'precapprox' => '⪷',
-        'preccurlyeq' => '≼',
-        'Precedes' => '≺',
-        'PrecedesEqual' => '⪯',
-        'PrecedesSlantEqual' => '≼',
-        'PrecedesTilde' => '≾',
-        'preceq' => '⪯',
-        'precnapprox' => '⪹',
-        'precneqq' => '⪵',
-        'precnsim' => '⋨',
-        'precsim' => '≾',
-        'Prime' => '″',
-        'prime' => '′',
-        'primes' => 'ℙ',
-        'prnap' => '⪹',
-        'prnE' => '⪵',
-        'prnsim' => '⋨',
-        'prod' => '∏',
-        'Product' => '∏',
-        'profalar' => '⌮',
-        'profline' => '⌒',
-        'profsurf' => '⌓',
-        'prop' => '∝',
-        'Proportion' => '∷',
-        'Proportional' => '∝',
-        'propto' => '∝',
-        'prsim' => '≾',
-        'prurel' => '⊰',
-        'Pscr' => '𝒫',
-        'pscr' => '𝓅',
-        'Psi' => 'Ψ',
-        'psi' => 'ψ',
-        'puncsp' => ' ',
-        'Qfr' => '𝔔',
-        'qfr' => '𝔮',
-        'qint' => '⨌',
-        'Qopf' => 'ℚ',
-        'qopf' => '𝕢',
-        'qprime' => '⁗',
-        'Qscr' => '𝒬',
-        'qscr' => '𝓆',
-        'quaternions' => 'ℍ',
-        'quatint' => '⨖',
-        'quest' => '?',
-        'questeq' => '≟',
-        'QUOT' => '"',
-        'QUO' => '"',
-        'quot' => '"',
-        'quo' => '"',
-        'rAarr' => '⇛',
-        'race' => '∽̱',
-        'Racute' => 'Ŕ',
-        'racute' => 'ŕ',
-        'radic' => '√',
-        'raemptyv' => '⦳',
-        'Rang' => '⟫',
-        'rang' => '⟩',
-        'rangd' => '⦒',
-        'range' => '⦥',
-        'rangle' => '⟩',
-        'raquo' => '»',
-        'raqu' => '»',
-        'Rarr' => '↠',
-        'rArr' => '⇒',
-        'rarr' => '→',
-        'rarrap' => '⥵',
-        'rarrb' => '⇥',
-        'rarrbfs' => '⤠',
-        'rarrc' => '⤳',
-        'rarrfs' => '⤞',
-        'rarrhk' => '↪',
-        'rarrlp' => '↬',
-        'rarrpl' => '⥅',
-        'rarrsim' => '⥴',
-        'Rarrtl' => '⤖',
-        'rarrtl' => '↣',
-        'rarrw' => '↝',
-        'rAtail' => '⤜',
-        'ratail' => '⤚',
-        'ratio' => '∶',
-        'rationals' => 'ℚ',
-        'RBarr' => '⤐',
-        'rBarr' => '⤏',
-        'rbarr' => '⤍',
-        'rbbrk' => '❳',
-        'rbrace' => '}',
-        'rbrack' => ']',
-        'rbrke' => '⦌',
-        'rbrksld' => '⦎',
-        'rbrkslu' => '⦐',
-        'Rcaron' => 'Ř',
-        'rcaron' => 'ř',
-        'Rcedil' => 'Ŗ',
-        'rcedil' => 'ŗ',
-        'rceil' => '⌉',
-        'rcub' => '}',
-        'Rcy' => 'Р',
-        'rcy' => 'р',
-        'rdca' => '⤷',
-        'rdldhar' => '⥩',
-        'rdquo' => '”',
-        'rdquor' => '”',
-        'rdsh' => '↳',
-        'Re' => 'ℜ',
-        'real' => 'ℜ',
-        'realine' => 'ℛ',
-        'realpart' => 'ℜ',
-        'reals' => 'ℝ',
-        'rect' => '▭',
-        'REG' => '®',
-        'RE' => '®',
-        'reg' => '®',
-        're' => '®',
-        'ReverseElement' => '∋',
-        'ReverseEquilibrium' => '⇋',
-        'ReverseUpEquilibrium' => '⥯',
-        'rfisht' => '⥽',
-        'rfloor' => '⌋',
-        'Rfr' => 'ℜ',
-        'rfr' => '𝔯',
-        'rHar' => '⥤',
-        'rhard' => '⇁',
-        'rharu' => '⇀',
-        'rharul' => '⥬',
-        'Rho' => 'Ρ',
-        'rho' => 'ρ',
-        'rhov' => 'ϱ',
-        'RightAngleBracket' => '⟩',
-        'RightArrow' => '→',
-        'Rightarrow' => '⇒',
-        'rightarrow' => '→',
-        'RightArrowBar' => '⇥',
-        'RightArrowLeftArrow' => '⇄',
-        'rightarrowtail' => '↣',
-        'RightCeiling' => '⌉',
-        'RightDoubleBracket' => '⟧',
-        'RightDownTeeVector' => '⥝',
-        'RightDownVector' => '⇂',
-        'RightDownVectorBar' => '⥕',
-        'RightFloor' => '⌋',
-        'rightharpoondown' => '⇁',
-        'rightharpoonup' => '⇀',
-        'rightleftarrows' => '⇄',
-        'rightleftharpoons' => '⇌',
-        'rightrightarrows' => '⇉',
-        'rightsquigarrow' => '↝',
-        'RightTee' => '⊢',
-        'RightTeeArrow' => '↦',
-        'RightTeeVector' => '⥛',
-        'rightthreetimes' => '⋌',
-        'RightTriangle' => '⊳',
-        'RightTriangleBar' => '⧐',
-        'RightTriangleEqual' => '⊵',
-        'RightUpDownVector' => '⥏',
-        'RightUpTeeVector' => '⥜',
-        'RightUpVector' => '↾',
-        'RightUpVectorBar' => '⥔',
-        'RightVector' => '⇀',
-        'RightVectorBar' => '⥓',
-        'ring' => '˚',
-        'risingdotseq' => '≓',
-        'rlarr' => '⇄',
-        'rlhar' => '⇌',
-        'rlm' => '‏',
-        'rmoust' => '⎱',
-        'rmoustache' => '⎱',
-        'rnmid' => '⫮',
-        'roang' => '⟭',
-        'roarr' => '⇾',
-        'robrk' => '⟧',
-        'ropar' => '⦆',
-        'Ropf' => 'ℝ',
-        'ropf' => '𝕣',
-        'roplus' => '⨮',
-        'rotimes' => '⨵',
-        'RoundImplies' => '⥰',
-        'rpar' => ')',
-        'rpargt' => '⦔',
-        'rppolint' => '⨒',
-        'rrarr' => '⇉',
-        'Rrightarrow' => '⇛',
-        'rsaquo' => '›',
-        'Rscr' => 'ℛ',
-        'rscr' => '𝓇',
-        'Rsh' => '↱',
-        'rsh' => '↱',
-        'rsqb' => ']',
-        'rsquo' => '’',
-        'rsquor' => '’',
-        'rthree' => '⋌',
-        'rtimes' => '⋊',
-        'rtri' => '▹',
-        'rtrie' => '⊵',
-        'rtrif' => '▸',
-        'rtriltri' => '⧎',
-        'RuleDelayed' => '⧴',
-        'ruluhar' => '⥨',
-        'rx' => '℞',
-        'Sacute' => 'Ś',
-        'sacute' => 'ś',
-        'sbquo' => '‚',
-        'Sc' => '⪼',
-        'sc' => '≻',
-        'scap' => '⪸',
-        'Scaron' => 'Š',
-        'scaron' => 'š',
-        'sccue' => '≽',
-        'scE' => '⪴',
-        'sce' => '⪰',
-        'Scedil' => 'Ş',
-        'scedil' => 'ş',
-        'Scirc' => 'Ŝ',
-        'scirc' => 'ŝ',
-        'scnap' => '⪺',
-        'scnE' => '⪶',
-        'scnsim' => '⋩',
-        'scpolint' => '⨓',
-        'scsim' => '≿',
-        'Scy' => 'С',
-        'scy' => 'с',
-        'sdot' => '⋅',
-        'sdotb' => '⊡',
-        'sdote' => '⩦',
-        'searhk' => '⤥',
-        'seArr' => '⇘',
-        'searr' => '↘',
-        'searrow' => '↘',
-        'sect' => '§',
-        'sec' => '§',
-        'semi' => ';',
-        'seswar' => '⤩',
-        'setminus' => '∖',
-        'setmn' => '∖',
-        'sext' => '✶',
-        'Sfr' => '𝔖',
-        'sfr' => '𝔰',
-        'sfrown' => '⌢',
-        'sharp' => '♯',
-        'SHCHcy' => 'Щ',
-        'shchcy' => 'щ',
-        'SHcy' => 'Ш',
-        'shcy' => 'ш',
-        'ShortDownArrow' => '↓',
-        'ShortLeftArrow' => '←',
-        'shortmid' => '∣',
-        'shortparallel' => '∥',
-        'ShortRightArrow' => '→',
-        'ShortUpArrow' => '↑',
-        'shy' => '­',
-        'sh' => '­',
-        'Sigma' => 'Σ',
-        'sigma' => 'σ',
-        'sigmaf' => 'ς',
-        'sigmav' => 'ς',
-        'sim' => '∼',
-        'simdot' => '⩪',
-        'sime' => '≃',
-        'simeq' => '≃',
-        'simg' => '⪞',
-        'simgE' => '⪠',
-        'siml' => '⪝',
-        'simlE' => '⪟',
-        'simne' => '≆',
-        'simplus' => '⨤',
-        'simrarr' => '⥲',
-        'slarr' => '←',
-        'SmallCircle' => '∘',
-        'smallsetminus' => '∖',
-        'smashp' => '⨳',
-        'smeparsl' => '⧤',
-        'smid' => '∣',
-        'smile' => '⌣',
-        'smt' => '⪪',
-        'smte' => '⪬',
-        'smtes' => '⪬︀',
-        'SOFTcy' => 'Ь',
-        'softcy' => 'ь',
-        'sol' => '/',
-        'solb' => '⧄',
-        'solbar' => '⌿',
-        'Sopf' => '𝕊',
-        'sopf' => '𝕤',
-        'spades' => '♠',
-        'spadesuit' => '♠',
-        'spar' => '∥',
-        'sqcap' => '⊓',
-        'sqcaps' => '⊓︀',
-        'sqcup' => '⊔',
-        'sqcups' => '⊔︀',
-        'Sqrt' => '√',
-        'sqsub' => '⊏',
-        'sqsube' => '⊑',
-        'sqsubset' => '⊏',
-        'sqsubseteq' => '⊑',
-        'sqsup' => '⊐',
-        'sqsupe' => '⊒',
-        'sqsupset' => '⊐',
-        'sqsupseteq' => '⊒',
-        'squ' => '□',
-        'Square' => '□',
-        'square' => '□',
-        'SquareIntersection' => '⊓',
-        'SquareSubset' => '⊏',
-        'SquareSubsetEqual' => '⊑',
-        'SquareSuperset' => '⊐',
-        'SquareSupersetEqual' => '⊒',
-        'SquareUnion' => '⊔',
-        'squarf' => '▪',
-        'squf' => '▪',
-        'srarr' => '→',
-        'Sscr' => '𝒮',
-        'sscr' => '𝓈',
-        'ssetmn' => '∖',
-        'ssmile' => '⌣',
-        'sstarf' => '⋆',
-        'Star' => '⋆',
-        'star' => '☆',
-        'starf' => '★',
-        'straightepsilon' => 'ϵ',
-        'straightphi' => 'ϕ',
-        'strns' => '¯',
-        'Sub' => '⋐',
-        'sub' => '⊂',
-        'subdot' => '⪽',
-        'subE' => '⫅',
-        'sube' => '⊆',
-        'subedot' => '⫃',
-        'submult' => '⫁',
-        'subnE' => '⫋',
-        'subne' => '⊊',
-        'subplus' => '⪿',
-        'subrarr' => '⥹',
-        'Subset' => '⋐',
-        'subset' => '⊂',
-        'subseteq' => '⊆',
-        'subseteqq' => '⫅',
-        'SubsetEqual' => '⊆',
-        'subsetneq' => '⊊',
-        'subsetneqq' => '⫋',
-        'subsim' => '⫇',
-        'subsub' => '⫕',
-        'subsup' => '⫓',
-        'succ' => '≻',
-        'succapprox' => '⪸',
-        'succcurlyeq' => '≽',
-        'Succeeds' => '≻',
-        'SucceedsEqual' => '⪰',
-        'SucceedsSlantEqual' => '≽',
-        'SucceedsTilde' => '≿',
-        'succeq' => '⪰',
-        'succnapprox' => '⪺',
-        'succneqq' => '⪶',
-        'succnsim' => '⋩',
-        'succsim' => '≿',
-        'SuchThat' => '∋',
-        'Sum' => '∑',
-        'sum' => '∑',
-        'sung' => '♪',
-        'Sup' => '⋑',
-        'sup' => '³',
-        'sup1' => '¹',
-        'sup2' => '²',
-        'sup3' => '³',
-        'supdot' => '⪾',
-        'supdsub' => '⫘',
-        'supE' => '⫆',
-        'supe' => '⊇',
-        'supedot' => '⫄',
-        'Superset' => '⊃',
-        'SupersetEqual' => '⊇',
-        'suphsol' => '⟉',
-        'suphsub' => '⫗',
-        'suplarr' => '⥻',
-        'supmult' => '⫂',
-        'supnE' => '⫌',
-        'supne' => '⊋',
-        'supplus' => '⫀',
-        'Supset' => '⋑',
-        'supset' => '⊃',
-        'supseteq' => '⊇',
-        'supseteqq' => '⫆',
-        'supsetneq' => '⊋',
-        'supsetneqq' => '⫌',
-        'supsim' => '⫈',
-        'supsub' => '⫔',
-        'supsup' => '⫖',
-        'swarhk' => '⤦',
-        'swArr' => '⇙',
-        'swarr' => '↙',
-        'swarrow' => '↙',
-        'swnwar' => '⤪',
-        'szlig' => 'ß',
-        'szli' => 'ß',
-        'Tab' => '	',
-        'target' => '⌖',
-        'Tau' => 'Τ',
-        'tau' => 'τ',
-        'tbrk' => '⎴',
-        'Tcaron' => 'Ť',
-        'tcaron' => 'ť',
-        'Tcedil' => 'Ţ',
-        'tcedil' => 'ţ',
-        'Tcy' => 'Т',
-        'tcy' => 'т',
-        'tdot' => '⃛',
-        'telrec' => '⌕',
-        'Tfr' => '𝔗',
-        'tfr' => '𝔱',
-        'there4' => '∴',
-        'Therefore' => '∴',
-        'therefore' => '∴',
-        'Theta' => 'Θ',
-        'theta' => 'θ',
-        'thetasym' => 'ϑ',
-        'thetav' => 'ϑ',
-        'thickapprox' => '≈',
-        'thicksim' => '∼',
-        'ThickSpace' => '  ',
-        'thinsp' => ' ',
-        'ThinSpace' => ' ',
-        'thkap' => '≈',
-        'thksim' => '∼',
-        'THORN' => 'Þ',
-        'THOR' => 'Þ',
-        'thorn' => 'þ',
-        'thor' => 'þ',
-        'Tilde' => '∼',
-        'tilde' => '˜',
-        'TildeEqual' => '≃',
-        'TildeFullEqual' => '≅',
-        'TildeTilde' => '≈',
-        'times' => '×',
-        'time' => '×',
-        'timesb' => '⊠',
-        'timesbar' => '⨱',
-        'timesd' => '⨰',
-        'tint' => '∭',
-        'toea' => '⤨',
-        'top' => '⊤',
-        'topbot' => '⌶',
-        'topcir' => '⫱',
-        'Topf' => '𝕋',
-        'topf' => '𝕥',
-        'topfork' => '⫚',
-        'tosa' => '⤩',
-        'tprime' => '‴',
-        'TRADE' => '™',
-        'trade' => '™',
-        'triangle' => '▵',
-        'triangledown' => '▿',
-        'triangleleft' => '◃',
-        'trianglelefteq' => '⊴',
-        'triangleq' => '≜',
-        'triangleright' => '▹',
-        'trianglerighteq' => '⊵',
-        'tridot' => '◬',
-        'trie' => '≜',
-        'triminus' => '⨺',
-        'TripleDot' => '⃛',
-        'triplus' => '⨹',
-        'trisb' => '⧍',
-        'tritime' => '⨻',
-        'trpezium' => '⏢',
-        'Tscr' => '𝒯',
-        'tscr' => '𝓉',
-        'TScy' => 'Ц',
-        'tscy' => 'ц',
-        'TSHcy' => 'Ћ',
-        'tshcy' => 'ћ',
-        'Tstrok' => 'Ŧ',
-        'tstrok' => 'ŧ',
-        'twixt' => '≬',
-        'twoheadleftarrow' => '↞',
-        'twoheadrightarrow' => '↠',
-        'Uacute' => 'Ú',
-        'Uacut' => 'Ú',
-        'uacute' => 'ú',
-        'uacut' => 'ú',
-        'Uarr' => '↟',
-        'uArr' => '⇑',
-        'uarr' => '↑',
-        'Uarrocir' => '⥉',
-        'Ubrcy' => 'Ў',
-        'ubrcy' => 'ў',
-        'Ubreve' => 'Ŭ',
-        'ubreve' => 'ŭ',
-        'Ucirc' => 'Û',
-        'Ucir' => 'Û',
-        'ucirc' => 'û',
-        'ucir' => 'û',
-        'Ucy' => 'У',
-        'ucy' => 'у',
-        'udarr' => '⇅',
-        'Udblac' => 'Ű',
-        'udblac' => 'ű',
-        'udhar' => '⥮',
-        'ufisht' => '⥾',
-        'Ufr' => '𝔘',
-        'ufr' => '𝔲',
-        'Ugrave' => 'Ù',
-        'Ugrav' => 'Ù',
-        'ugrave' => 'ù',
-        'ugrav' => 'ù',
-        'uHar' => '⥣',
-        'uharl' => '↿',
-        'uharr' => '↾',
-        'uhblk' => '▀',
-        'ulcorn' => '⌜',
-        'ulcorner' => '⌜',
-        'ulcrop' => '⌏',
-        'ultri' => '◸',
-        'Umacr' => 'Ū',
-        'umacr' => 'ū',
-        'uml' => '¨',
-        'um' => '¨',
-        'UnderBar' => '_',
-        'UnderBrace' => '⏟',
-        'UnderBracket' => '⎵',
-        'UnderParenthesis' => '⏝',
-        'Union' => '⋃',
-        'UnionPlus' => '⊎',
-        'Uogon' => 'Ų',
-        'uogon' => 'ų',
-        'Uopf' => '𝕌',
-        'uopf' => '𝕦',
-        'UpArrow' => '↑',
-        'Uparrow' => '⇑',
-        'uparrow' => '↑',
-        'UpArrowBar' => '⤒',
-        'UpArrowDownArrow' => '⇅',
-        'UpDownArrow' => '↕',
-        'Updownarrow' => '⇕',
-        'updownarrow' => '↕',
-        'UpEquilibrium' => '⥮',
-        'upharpoonleft' => '↿',
-        'upharpoonright' => '↾',
-        'uplus' => '⊎',
-        'UpperLeftArrow' => '↖',
-        'UpperRightArrow' => '↗',
-        'Upsi' => 'ϒ',
-        'upsi' => 'υ',
-        'upsih' => 'ϒ',
-        'Upsilon' => 'Υ',
-        'upsilon' => 'υ',
-        'UpTee' => '⊥',
-        'UpTeeArrow' => '↥',
-        'upuparrows' => '⇈',
-        'urcorn' => '⌝',
-        'urcorner' => '⌝',
-        'urcrop' => '⌎',
-        'Uring' => 'Ů',
-        'uring' => 'ů',
-        'urtri' => '◹',
-        'Uscr' => '𝒰',
-        'uscr' => '𝓊',
-        'utdot' => '⋰',
-        'Utilde' => 'Ũ',
-        'utilde' => 'ũ',
-        'utri' => '▵',
-        'utrif' => '▴',
-        'uuarr' => '⇈',
-        'Uuml' => 'Ü',
-        'Uum' => 'Ü',
-        'uuml' => 'ü',
-        'uum' => 'ü',
-        'uwangle' => '⦧',
-        'vangrt' => '⦜',
-        'varepsilon' => 'ϵ',
-        'varkappa' => 'ϰ',
-        'varnothing' => '∅',
-        'varphi' => 'ϕ',
-        'varpi' => 'ϖ',
-        'varpropto' => '∝',
-        'vArr' => '⇕',
-        'varr' => '↕',
-        'varrho' => 'ϱ',
-        'varsigma' => 'ς',
-        'varsubsetneq' => '⊊︀',
-        'varsubsetneqq' => '⫋︀',
-        'varsupsetneq' => '⊋︀',
-        'varsupsetneqq' => '⫌︀',
-        'vartheta' => 'ϑ',
-        'vartriangleleft' => '⊲',
-        'vartriangleright' => '⊳',
-        'Vbar' => '⫫',
-        'vBar' => '⫨',
-        'vBarv' => '⫩',
-        'Vcy' => 'В',
-        'vcy' => 'в',
-        'VDash' => '⊫',
-        'Vdash' => '⊩',
-        'vDash' => '⊨',
-        'vdash' => '⊢',
-        'Vdashl' => '⫦',
-        'Vee' => '⋁',
-        'vee' => '∨',
-        'veebar' => '⊻',
-        'veeeq' => '≚',
-        'vellip' => '⋮',
-        'Verbar' => '‖',
-        'verbar' => '|',
-        'Vert' => '‖',
-        'vert' => '|',
-        'VerticalBar' => '∣',
-        'VerticalLine' => '|',
-        'VerticalSeparator' => '❘',
-        'VerticalTilde' => '≀',
-        'VeryThinSpace' => ' ',
-        'Vfr' => '𝔙',
-        'vfr' => '𝔳',
-        'vltri' => '⊲',
-        'vnsub' => '⊂⃒',
-        'vnsup' => '⊃⃒',
-        'Vopf' => '𝕍',
-        'vopf' => '𝕧',
-        'vprop' => '∝',
-        'vrtri' => '⊳',
-        'Vscr' => '𝒱',
-        'vscr' => '𝓋',
-        'vsubnE' => '⫋︀',
-        'vsubne' => '⊊︀',
-        'vsupnE' => '⫌︀',
-        'vsupne' => '⊋︀',
-        'Vvdash' => '⊪',
-        'vzigzag' => '⦚',
-        'Wcirc' => 'Ŵ',
-        'wcirc' => 'ŵ',
-        'wedbar' => '⩟',
-        'Wedge' => '⋀',
-        'wedge' => '∧',
-        'wedgeq' => '≙',
-        'weierp' => '℘',
-        'Wfr' => '𝔚',
-        'wfr' => '𝔴',
-        'Wopf' => '𝕎',
-        'wopf' => '𝕨',
-        'wp' => '℘',
-        'wr' => '≀',
-        'wreath' => '≀',
-        'Wscr' => '𝒲',
-        'wscr' => '𝓌',
-        'xcap' => '⋂',
-        'xcirc' => '◯',
-        'xcup' => '⋃',
-        'xdtri' => '▽',
-        'Xfr' => '𝔛',
-        'xfr' => '𝔵',
-        'xhArr' => '⟺',
-        'xharr' => '⟷',
-        'Xi' => 'Ξ',
-        'xi' => 'ξ',
-        'xlArr' => '⟸',
-        'xlarr' => '⟵',
-        'xmap' => '⟼',
-        'xnis' => '⋻',
-        'xodot' => '⨀',
-        'Xopf' => '𝕏',
-        'xopf' => '𝕩',
-        'xoplus' => '⨁',
-        'xotime' => '⨂',
-        'xrArr' => '⟹',
-        'xrarr' => '⟶',
-        'Xscr' => '𝒳',
-        'xscr' => '𝓍',
-        'xsqcup' => '⨆',
-        'xuplus' => '⨄',
-        'xutri' => '△',
-        'xvee' => '⋁',
-        'xwedge' => '⋀',
-        'Yacute' => 'Ý',
-        'Yacut' => 'Ý',
-        'yacute' => 'ý',
-        'yacut' => 'ý',
-        'YAcy' => 'Я',
-        'yacy' => 'я',
-        'Ycirc' => 'Ŷ',
-        'ycirc' => 'ŷ',
-        'Ycy' => 'Ы',
-        'ycy' => 'ы',
-        'yen' => '¥',
-        'ye' => '¥',
-        'Yfr' => '𝔜',
-        'yfr' => '𝔶',
-        'YIcy' => 'Ї',
-        'yicy' => 'ї',
-        'Yopf' => '𝕐',
-        'yopf' => '𝕪',
-        'Yscr' => '𝒴',
-        'yscr' => '𝓎',
-        'YUcy' => 'Ю',
-        'yucy' => 'ю',
-        'Yuml' => 'Ÿ',
-        'yuml' => 'ÿ',
-        'yum' => 'ÿ',
-        'Zacute' => 'Ź',
-        'zacute' => 'ź',
-        'Zcaron' => 'Ž',
-        'zcaron' => 'ž',
-        'Zcy' => 'З',
-        'zcy' => 'з',
-        'Zdot' => 'Ż',
-        'zdot' => 'ż',
-        'zeetrf' => 'ℨ',
-        'ZeroWidthSpace' => '​',
-        'Zeta' => 'Ζ',
-        'zeta' => 'ζ',
-        'Zfr' => 'ℨ',
-        'zfr' => '𝔷',
-        'ZHcy' => 'Ж',
-        'zhcy' => 'ж',
-        'zigrarr' => '⇝',
-        'Zopf' => 'ℤ',
-        'zopf' => '𝕫',
-        'Zscr' => '𝒵',
-        'zscr' => '𝓏',
-        'zwj' => '‍',
-        'zwnj' => '‌'
-    );
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Exception.php b/core/vendor/masterminds/html5/src/HTML5/Exception.php
deleted file mode 100644
index 8f33126..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Exception.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-namespace Masterminds\HTML5;
-
-/**
- * The base exception for the HTML5 project.
- */
-class Exception extends \Exception
-{
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php b/core/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php
deleted file mode 100644
index ac6a23c..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/**
- * A handler for processor instructions.
- */
-namespace Masterminds\HTML5;
-
-/**
- * Provide an processor to handle embedded instructions.
- *
- * XML defines a mechanism for inserting instructions (like PHP) into a
- * document. These are called "Processor Instructions." The HTML5 parser
- * provides an opportunity to handle these processor instructions during
- * the tree-building phase (before the DOM is constructed), which makes
- * it possible to alter the document as it is being created.
- *
- * One could, for example, use this mechanism to execute well-formed PHP
- * code embedded inside of an HTML5 document.
- */
-interface InstructionProcessor
-{
-
-    /**
-     * Process an individual processing instruction.
-     *
-     * The process() function is responsible for doing the following:
-     * - Determining whether $name is an instruction type it can handle.
-     * - Determining what to do with the data passed in.
-     * - Making any subsequent modifications to the DOM by modifying the
-     * DOMElement or its attached DOM tree.
-     *
-     * @param DOMElement $element
-     *            The parent element for the current processing instruction.
-     * @param string $name
-     *            The instruction's name. E.g. `&lt;?php` has the name `php`.
-     * @param string $data
-     *            All of the data between the opening and closing PI marks.
-     * @return DOMElement The element that should be considered "Current". This may just be
-     *         the element passed in, but if the processor added more elements,
-     *         it may choose to reset the current element to one of the elements
-     *         it created. (When in doubt, return the element passed in.)
-     */
-    public function process(\DOMElement $element, $name, $data);
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php b/core/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php
deleted file mode 100644
index c1617e7..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-use Masterminds\HTML5\Entities;
-
-/**
- * Manage entity references.
- *
- * This is a simple resolver for HTML5 character reference entitites.
- * See \Masterminds\HTML5\Entities for the list of supported entities.
- */
-class CharacterReference
-{
-
-    protected static $numeric_mask = array(
-        0x0,
-        0x2FFFF,
-        0,
-        0xFFFF
-    );
-
-    /**
-     * Given a name (e.g.
-     * 'amp'), lookup the UTF-8 character ('&')
-     *
-     * @param string $name
-     *            The name to look up.
-     * @return string The character sequence. In UTF-8 this may be more than one byte.
-     */
-    public static function lookupName($name)
-    {
-        // Do we really want to return NULL here? or FFFD
-        return isset(Entities::$byName[$name]) ? Entities::$byName[$name] : null;
-    }
-
-    /**
-     * Given a Unicode codepoint, return the UTF-8 character.
-     *
-     * (NOT USED ANYWHERE)
-     */
-    /*
-     * public static function lookupCode($codePoint) { return 'POINT'; }
-     */
-
-    /**
-     * Given a decimal number, return the UTF-8 character.
-     */
-    public static function lookupDecimal($int)
-    {
-        $entity = '&#' . $int . ';';
-        // UNTESTED: This may fail on some planes. Couldn't find full documentation
-        // on the value of the mask array.
-        return mb_decode_numericentity($entity, static::$numeric_mask, 'utf-8');
-    }
-
-    /**
-     * Given a hexidecimal number, return the UTF-8 character.
-     */
-    public static function lookupHex($hexdec)
-    {
-        return static::lookupDecimal(hexdec($hexdec));
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php b/core/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php
deleted file mode 100644
index ccad229..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php
+++ /dev/null
@@ -1,684 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-use Masterminds\HTML5\Elements;
-
-/**
- * Create an HTML5 DOM tree from events.
- *
- * This attempts to create a DOM from events emitted by a parser. This
- * attempts (but does not guarantee) to up-convert older HTML documents
- * to HTML5. It does this by applying HTML5's rules, but it will not
- * change the architecture of the document itself.
- *
- * Many of the error correction and quirks features suggested in the specification
- * are implemented herein; however, not all of them are. Since we do not
- * assume a graphical user agent, no presentation-specific logic is conducted
- * during tree building.
- *
- * FIXME: The present tree builder does not exactly follow the state machine rules
- * for insert modes as outlined in the HTML5 spec. The processor needs to be
- * re-written to accomodate this. See, for example, the Go language HTML5
- * parser.
- */
-class DOMTreeBuilder implements EventHandler
-{
-    /**
-     * Defined in http://www.w3.org/TR/html51/infrastructure.html#html-namespace-0
-     */
-    const NAMESPACE_HTML = 'http://www.w3.org/1999/xhtml';
-
-    const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';
-
-    const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';
-
-    const NAMESPACE_XLINK = 'http://www.w3.org/1999/xlink';
-
-    const NAMESPACE_XML = 'http://www.w3.org/XML/1998/namespace';
-
-    const NAMESPACE_XMLNS = 'http://www.w3.org/2000/xmlns/';
-
-    const OPT_DISABLE_HTML_NS = 'disable_html_ns';
-
-    const OPT_TARGET_DOC = 'target_document';
-
-    const OPT_IMPLICIT_NS = 'implicit_namespaces';
-
-    /**
-     * Holds the HTML5 element names that causes a namespace switch
-     *
-     * @var array
-     */
-    protected $nsRoots = array(
-        'html' => self::NAMESPACE_HTML,
-        'svg' => self::NAMESPACE_SVG,
-        'math' => self::NAMESPACE_MATHML
-    );
-
-    /**
-     * Holds the always available namespaces (which does not require the XMLNS declaration).
-     *
-     * @var array
-     */
-    protected $implicitNamespaces = array(
-        'xml' => self::NAMESPACE_XML,
-        'xmlns' => self::NAMESPACE_XMLNS,
-        'xlink' => self::NAMESPACE_XLINK
-    );
-
-    /**
-     * Holds a stack of currently active namespaces.
-     *
-     * @var array
-     */
-    protected $nsStack = array();
-
-    /**
-     * Holds the number of namespaces declared by a node.
-     *
-     * @var array
-     */
-    protected $pushes = array();
-
-    /**
-     * Defined in 8.2.5.
-     */
-    const IM_INITIAL = 0;
-
-    const IM_BEFORE_HTML = 1;
-
-    const IM_BEFORE_HEAD = 2;
-
-    const IM_IN_HEAD = 3;
-
-    const IM_IN_HEAD_NOSCRIPT = 4;
-
-    const IM_AFTER_HEAD = 5;
-
-    const IM_IN_BODY = 6;
-
-    const IM_TEXT = 7;
-
-    const IM_IN_TABLE = 8;
-
-    const IM_IN_TABLE_TEXT = 9;
-
-    const IM_IN_CAPTION = 10;
-
-    const IM_IN_COLUMN_GROUP = 11;
-
-    const IM_IN_TABLE_BODY = 12;
-
-    const IM_IN_ROW = 13;
-
-    const IM_IN_CELL = 14;
-
-    const IM_IN_SELECT = 15;
-
-    const IM_IN_SELECT_IN_TABLE = 16;
-
-    const IM_AFTER_BODY = 17;
-
-    const IM_IN_FRAMESET = 18;
-
-    const IM_AFTER_FRAMESET = 19;
-
-    const IM_AFTER_AFTER_BODY = 20;
-
-    const IM_AFTER_AFTER_FRAMESET = 21;
-
-    const IM_IN_SVG = 22;
-
-    const IM_IN_MATHML = 23;
-
-    protected $options = array();
-
-    protected $stack = array();
-
-    protected $current; // Pointer in the tag hierarchy.
-    protected $doc;
-
-    protected $frag;
-
-    protected $processor;
-
-    protected $insertMode = 0;
-
-    /**
-     * Track if we are in an element that allows only inline child nodes
-     * @var string|null
-     */
-    protected $onlyInline;
-
-    /**
-     * Quirks mode is enabled by default.
-     * Any document that is missing the
-     * DT will be considered to be in quirks mode.
-     */
-    protected $quirks = true;
-
-    protected $errors = array();
-
-    public function __construct($isFragment = false, array $options = array())
-    {
-        $this->options = $options;
-
-        if (isset($options[self::OPT_TARGET_DOC])) {
-            $this->doc = $options[self::OPT_TARGET_DOC];
-        } else {
-            $impl = new \DOMImplementation();
-            // XXX:
-            // Create the doctype. For now, we are always creating HTML5
-            // documents, and attempting to up-convert any older DTDs to HTML5.
-            $dt = $impl->createDocumentType('html');
-            // $this->doc = \DOMImplementation::createDocument(NULL, 'html', $dt);
-            $this->doc = $impl->createDocument(null, null, $dt);
-        }
-        $this->errors = array();
-
-        $this->current = $this->doc; // ->documentElement;
-
-        // Create a rules engine for tags.
-        $this->rules = new TreeBuildingRules($this->doc);
-
-        $implicitNS = array();
-        if (isset($this->options[self::OPT_IMPLICIT_NS])) {
-            $implicitNS = $this->options[self::OPT_IMPLICIT_NS];
-        } elseif (isset($this->options["implicitNamespaces"])) {
-            $implicitNS = $this->options["implicitNamespaces"];
-        }
-
-        // Fill $nsStack with the defalut HTML5 namespaces, plus the "implicitNamespaces" array taken form $options
-        array_unshift($this->nsStack, $implicitNS + array(
-            '' => self::NAMESPACE_HTML
-        ) + $this->implicitNamespaces);
-
-        if ($isFragment) {
-            $this->insertMode = static::IM_IN_BODY;
-            $this->frag = $this->doc->createDocumentFragment();
-            $this->current = $this->frag;
-        }
-    }
-
-    /**
-     * Get the document.
-     */
-    public function document()
-    {
-        return $this->doc;
-    }
-
-    /**
-     * Get the DOM fragment for the body.
-     *
-     * This returns a DOMNodeList because a fragment may have zero or more
-     * DOMNodes at its root.
-     *
-     * @see http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#concept-frag-parse-context
-     *
-     * @return \DOMFragmentDocumentFragment
-     */
-    public function fragment()
-    {
-        return $this->frag;
-    }
-
-    /**
-     * Provide an instruction processor.
-     *
-     * This is used for handling Processor Instructions as they are
-     * inserted. If omitted, PI's are inserted directly into the DOM tree.
-     */
-    public function setInstructionProcessor(\Masterminds\HTML5\InstructionProcessor $proc)
-    {
-        $this->processor = $proc;
-    }
-
-    public function doctype($name, $idType = 0, $id = null, $quirks = false)
-    {
-        // This is used solely for setting quirks mode. Currently we don't
-        // try to preserve the inbound DT. We convert it to HTML5.
-        $this->quirks = $quirks;
-
-        if ($this->insertMode > static::IM_INITIAL) {
-            $this->parseError("Illegal placement of DOCTYPE tag. Ignoring: " . $name);
-
-            return;
-        }
-
-        $this->insertMode = static::IM_BEFORE_HTML;
-    }
-
-    /**
-     * Process the start tag.
-     *
-     * @todo - XMLNS namespace handling (we need to parse, even if it's not valid)
-     *       - XLink, MathML and SVG namespace handling
-     *       - Omission rules: 8.1.2.4 Optional tags
-     */
-    public function startTag($name, $attributes = array(), $selfClosing = false)
-    {
-        // fprintf(STDOUT, $name);
-        $lname = $this->normalizeTagName($name);
-
-        // Make sure we have an html element.
-        if (! $this->doc->documentElement && $name !== 'html' && ! $this->frag) {
-            $this->startTag('html');
-        }
-
-        // Set quirks mode if we're at IM_INITIAL with no doctype.
-        if ($this->insertMode == static::IM_INITIAL) {
-            $this->quirks = true;
-            $this->parseError("No DOCTYPE specified.");
-        }
-
-        // SPECIAL TAG HANDLING:
-        // Spec says do this, and "don't ask."
-        if ($name == 'image') {
-            $name = 'img';
-        }
-
-        // Autoclose p tags where appropriate.
-        if ($this->insertMode >= static::IM_IN_BODY && Elements::isA($name, Elements::AUTOCLOSE_P)) {
-            $this->autoclose('p');
-        }
-
-        // Set insert mode:
-        switch ($name) {
-            case 'html':
-                $this->insertMode = static::IM_BEFORE_HEAD;
-                break;
-            case 'head':
-                if ($this->insertMode > static::IM_BEFORE_HEAD) {
-                    $this->parseError("Unexpected head tag outside of head context.");
-                } else {
-                    $this->insertMode = static::IM_IN_HEAD;
-                }
-                break;
-            case 'body':
-                $this->insertMode = static::IM_IN_BODY;
-                break;
-            case 'svg':
-                $this->insertMode = static::IM_IN_SVG;
-                break;
-            case 'math':
-                $this->insertMode = static::IM_IN_MATHML;
-                break;
-            case 'noscript':
-                if ($this->insertMode == static::IM_IN_HEAD) {
-                    $this->insertMode = static::IM_IN_HEAD_NOSCRIPT;
-                }
-                break;
-        }
-
-        // Special case handling for SVG.
-        if ($this->insertMode == static::IM_IN_SVG) {
-            $lname = Elements::normalizeSvgElement($lname);
-        }
-
-        $pushes = 0;
-        // when we found a tag thats appears inside $nsRoots, we have to switch the defalut namespace
-        if (isset($this->nsRoots[$lname]) && $this->nsStack[0][''] !== $this->nsRoots[$lname]) {
-            array_unshift($this->nsStack, array(
-                '' => $this->nsRoots[$lname]
-            ) + $this->nsStack[0]);
-            $pushes ++;
-        }
-        $needsWorkaround = false;
-        if (isset($this->options["xmlNamespaces"]) && $this->options["xmlNamespaces"]) {
-            // when xmlNamespaces is true a and we found a 'xmlns' or 'xmlns:*' attribute, we should add a new item to the $nsStack
-            foreach ($attributes as $aName => $aVal) {
-                if ($aName === 'xmlns') {
-                    $needsWorkaround = $aVal;
-                    array_unshift($this->nsStack, array(
-                        '' => $aVal
-                    ) + $this->nsStack[0]);
-                    $pushes ++;
-                } elseif ((($pos = strpos($aName, ':')) ? substr($aName, 0, $pos) : '') === 'xmlns') {
-                    array_unshift($this->nsStack, array(
-                        substr($aName, $pos + 1) => $aVal
-                    ) + $this->nsStack[0]);
-                    $pushes ++;
-                }
-            }
-        }
-
-        if ($this->onlyInline && Elements::isA($lname, Elements::BLOCK_TAG)) {
-        	$this->autoclose($this->onlyInline);
-        	$this->onlyInline = null;
-        }
-
-        try {
-            $prefix = ($pos = strpos($lname, ':')) ? substr($lname, 0, $pos) : '';
-
-
-            if ($needsWorkaround!==false) {
-
-                $xml = "<$lname xmlns=\"$needsWorkaround\" ".(strlen($prefix) && isset($this->nsStack[0][$prefix])?("xmlns:$prefix=\"".$this->nsStack[0][$prefix]."\""):"")."/>";
-
-                $frag = new \DOMDocument('1.0', 'UTF-8');
-                $frag->loadXML($xml);
-
-                $ele = $this->doc->importNode($frag->documentElement, true);
-
-            } else {
-                if (!isset($this->nsStack[0][$prefix]) || ($prefix === "" && isset($this->options[self::OPT_DISABLE_HTML_NS]) && $this->options[self::OPT_DISABLE_HTML_NS])) {
-                    $ele = $this->doc->createElement($lname);
-                } else {
-                    $ele = $this->doc->createElementNS($this->nsStack[0][$prefix], $lname);
-                }
-            }
-
-        } catch (\DOMException $e) {
-            $this->parseError("Illegal tag name: <$lname>. Replaced with <invalid>.");
-            $ele = $this->doc->createElement('invalid');
-        }
-
-        if (Elements::isA($lname, Elements::BLOCK_ONLY_INLINE)) {
-        	$this->onlyInline = $lname;
-        }
-
-        // When we add some namespacess, we have to track them. Later, when "endElement" is invoked, we have to remove them.
-        // When we are on a void tag, we do not need to care about namesapce nesting.
-        if ($pushes > 0 && !Elements::isA($name, Elements::VOID_TAG)) {
-            // PHP tends to free the memory used by DOM,
-            // to avoid spl_object_hash collisions whe have to avoid garbage collection of $ele storing it into $pushes
-            // see https://bugs.php.net/bug.php?id=67459
-            $this->pushes[spl_object_hash($ele)] = array($pushes, $ele);
-
-            // SEE https://github.com/facebook/hhvm/issues/2962
-            if (defined('HHVM_VERSION')) {
-                $ele->setAttribute('html5-php-fake-id-attribute', spl_object_hash($ele));
-            }
-        }
-
-        foreach ($attributes as $aName => $aVal) {
-            // xmlns attributes can't be set
-            if ($aName === 'xmlns') {
-                continue;
-            }
-
-            if ($this->insertMode == static::IM_IN_SVG) {
-                $aName = Elements::normalizeSvgAttribute($aName);
-            } elseif ($this->insertMode == static::IM_IN_MATHML) {
-                $aName = Elements::normalizeMathMlAttribute($aName);
-            }
-
-            try {
-                $prefix = ($pos = strpos($aName, ':')) ? substr($aName, 0, $pos) : false;
-
-                if ($prefix==='xmlns') {
-                    $ele->setAttributeNs(self::NAMESPACE_XMLNS, $aName, $aVal);
-                } elseif ($prefix!==false && isset($this->nsStack[0][$prefix])) {
-                    $ele->setAttributeNs($this->nsStack[0][$prefix], $aName, $aVal);
-                } else {
-                    $ele->setAttribute($aName, $aVal);
-                }
-            } catch (\DOMException $e) {
-                $this->parseError("Illegal attribute name for tag $name. Ignoring: $aName");
-                continue;
-            }
-
-            // This is necessary on a non-DTD schema, like HTML5.
-            if ($aName == 'id') {
-                $ele->setIdAttribute('id', true);
-            }
-        }
-
-        // Some elements have special processing rules. Handle those separately.
-        if ($this->rules->hasRules($name) && $this->frag !== $this->current) {
-            $this->current = $this->rules->evaluate($ele, $this->current);
-        }         // Otherwise, it's a standard element.
-        else {
-            $this->current->appendChild($ele);
-
-            // XXX: Need to handle self-closing tags and unary tags.
-            if (! Elements::isA($name, Elements::VOID_TAG)) {
-                $this->current = $ele;
-            }
-        }
-
-        // This is sort of a last-ditch attempt to correct for cases where no head/body
-        // elements are provided.
-        if ($this->insertMode <= static::IM_BEFORE_HEAD && $name != 'head' && $name != 'html') {
-            $this->insertMode = static::IM_IN_BODY;
-        }
-
-        // When we are on a void tag, we do not need to care about namesapce nesting,
-        // but we have to remove the namespaces pushed to $nsStack.
-        if ($pushes > 0 && Elements::isA($name, Elements::VOID_TAG)) {
-            // remove the namespaced definded by current node
-            for ($i = 0; $i < $pushes; $i ++) {
-                array_shift($this->nsStack);
-            }
-        }
-        // Return the element mask, which the tokenizer can then use to set
-        // various processing rules.
-        return Elements::element($name);
-    }
-
-    public function endTag($name)
-    {
-        $lname = $this->normalizeTagName($name);
-
-        // Ignore closing tags for unary elements.
-        if (Elements::isA($name, Elements::VOID_TAG)) {
-            return;
-        }
-
-        if ($this->insertMode <= static::IM_BEFORE_HTML) {
-            // 8.2.5.4.2
-            if (in_array($name, array(
-                'html',
-                'br',
-                'head',
-                'title'
-            ))) {
-                $this->startTag('html');
-                $this->endTag($name);
-                $this->insertMode = static::IM_BEFORE_HEAD;
-
-                return;
-            }
-
-            // Ignore the tag.
-            $this->parseError("Illegal closing tag at global scope.");
-
-            return;
-        }
-
-        // Special case handling for SVG.
-        if ($this->insertMode == static::IM_IN_SVG) {
-            $lname = Elements::normalizeSvgElement($lname);
-        }
-
-        // See https://github.com/facebook/hhvm/issues/2962
-        if (defined('HHVM_VERSION') && ($cid = $this->current->getAttribute('html5-php-fake-id-attribute'))) {
-            $this->current->removeAttribute('html5-php-fake-id-attribute');
-        } else {
-            $cid = spl_object_hash($this->current);
-        }
-
-        // XXX: Not sure whether we need this anymore.
-        // if ($name != $lname) {
-        // return $this->quirksTreeResolver($lname);
-        // }
-
-        // XXX: HTML has no parent. What do we do, though,
-        // if this element appears in the wrong place?
-        if ($lname == 'html') {
-            return;
-        }
-
-        // remove the namespaced definded by current node
-        if (isset($this->pushes[$cid])) {
-            for ($i = 0; $i < $this->pushes[$cid][0]; $i ++) {
-                array_shift($this->nsStack);
-            }
-            unset($this->pushes[$cid]);
-        }
-
-        if (! $this->autoclose($lname)) {
-            $this->parseError('Could not find closing tag for ' . $lname);
-        }
-
-        // switch ($this->insertMode) {
-        switch ($lname) {
-            case "head":
-                $this->insertMode = static::IM_AFTER_HEAD;
-                break;
-            case "body":
-                $this->insertMode = static::IM_AFTER_BODY;
-                break;
-            case "svg":
-            case "mathml":
-                $this->insertMode = static::IM_IN_BODY;
-                break;
-        }
-    }
-
-    public function comment($cdata)
-    {
-        // TODO: Need to handle case where comment appears outside of the HTML tag.
-        $node = $this->doc->createComment($cdata);
-        $this->current->appendChild($node);
-    }
-
-    public function text($data)
-    {
-        // XXX: Hmmm.... should we really be this strict?
-        if ($this->insertMode < static::IM_IN_HEAD) {
-            // Per '8.2.5.4.3 The "before head" insertion mode' the characters
-            // " \t\n\r\f" should be ignored but no mention of a parse error. This is
-            // practical as most documents contain these characters. Other text is not
-            // expected here so recording a parse error is necessary.
-            $dataTmp = trim($data, " \t\n\r\f");
-            if (! empty($dataTmp)) {
-                // fprintf(STDOUT, "Unexpected insert mode: %d", $this->insertMode);
-                $this->parseError("Unexpected text. Ignoring: " . $dataTmp);
-            }
-
-            return;
-        }
-        // fprintf(STDOUT, "Appending text %s.", $data);
-        $node = $this->doc->createTextNode($data);
-        $this->current->appendChild($node);
-    }
-
-    public function eof()
-    {
-        // If the $current isn't the $root, do we need to do anything?
-    }
-
-    public function parseError($msg, $line = 0, $col = 0)
-    {
-        $this->errors[] = sprintf("Line %d, Col %d: %s", $line, $col, $msg);
-    }
-
-    public function getErrors()
-    {
-        return $this->errors;
-    }
-
-    public function cdata($data)
-    {
-        $node = $this->doc->createCDATASection($data);
-        $this->current->appendChild($node);
-    }
-
-    public function processingInstruction($name, $data = null)
-    {
-        // XXX: Ignore initial XML declaration, per the spec.
-        if ($this->insertMode == static::IM_INITIAL && 'xml' == strtolower($name)) {
-            return;
-        }
-
-        // Important: The processor may modify the current DOM tree however
-        // it sees fit.
-        if (isset($this->processor)) {
-            $res = $this->processor->process($this->current, $name, $data);
-            if (! empty($res)) {
-                $this->current = $res;
-            }
-
-            return;
-        }
-
-        // Otherwise, this is just a dumb PI element.
-        $node = $this->doc->createProcessingInstruction($name, $data);
-
-        $this->current->appendChild($node);
-    }
-
-    // ==========================================================================
-    // UTILITIES
-    // ==========================================================================
-
-    /**
-     * Apply normalization rules to a tag name.
-     *
-     * See sections 2.9 and 8.1.2.
-     *
-     * @param string $name
-     *            The tag name.
-     * @return string The normalized tag name.
-     */
-    protected function normalizeTagName($name)
-    {
-        /*
-         * Section 2.9 suggests that we should not do this. if (strpos($name, ':') !== false) { // We know from the grammar that there must be at least one other // char besides :, since : is not a legal tag start. $parts = explode(':', $name); return array_pop($parts); }
-         */
-        return $name;
-    }
-
-    protected function quirksTreeResolver($name)
-    {
-        throw new \Exception("Not implemented.");
-    }
-
-    /**
-     * Automatically climb the tree and close the closest node with the matching $tag.
-     */
-    protected function autoclose($tag)
-    {
-        $working = $this->current;
-        do {
-            if ($working->nodeType != XML_ELEMENT_NODE) {
-                return false;
-            }
-            if ($working->tagName == $tag) {
-                $this->current = $working->parentNode;
-
-                return true;
-            }
-        } while ($working = $working->parentNode);
-        return false;
-    }
-
-    /**
-     * Checks if the given tagname is an ancestor of the present candidate.
-     *
-     * If $this->current or anything above $this->current matches the given tag
-     * name, this returns true.
-     */
-    protected function isAncestor($tagname)
-    {
-        $candidate = $this->current;
-        while ($candidate->nodeType === XML_ELEMENT_NODE) {
-            if ($candidate->tagName == $tagname) {
-                return true;
-            }
-            $candidate = $candidate->parentNode;
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns true if the immediate parent element is of the given tagname.
-     */
-    protected function isParent($tagname)
-    {
-        return $this->current->tagName == $tagname;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php b/core/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php
deleted file mode 100644
index 2d55347..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-/**
- * Standard events for HTML5.
- *
- * This is roughly analogous to a SAX2 or expat-style interface.
- * However, it is tuned specifically for HTML5, according to section 8
- * of the HTML5 specification.
- *
- * An event handler receives parser events. For a concrete
- * implementation, see DOMTreeBuilder.
- *
- * Quirks support in the parser is limited to close-in syntax (malformed
- * tags or attributes). Higher order syntax and semantic issues with a
- * document (e.g. mismatched tags, illegal nesting, etc.) are the
- * responsibility of the event handler implementation.
- *
- * See HTML5 spec section 8.2.4
- */
-interface EventHandler
-{
-
-    const DOCTYPE_NONE = 0;
-
-    const DOCTYPE_PUBLIC = 1;
-
-    const DOCTYPE_SYSTEM = 2;
-
-    /**
-     * A doctype declaration.
-     *
-     * @param string $name
-     *            The name of the root element.
-     * @param int $idType
-     *            One of DOCTYPE_NONE, DOCTYPE_PUBLIC, or DOCTYPE_SYSTEM.
-     * @param string $id
-     *            The identifier. For DOCTYPE_PUBLIC, this is the public ID. If DOCTYPE_SYSTEM,
-     *            then this is a system ID.
-     * @param boolean $quirks
-     *            Indicates whether the builder should enter quirks mode.
-     */
-    public function doctype($name, $idType = 0, $id = null, $quirks = false);
-
-    /**
-     * A start tag.
-     *
-     * IMPORTANT: The parser watches the return value of this event. If this returns
-     * an integer, the parser will switch TEXTMODE patters according to the int.
-     *
-     * This is how the Tree Builder can tell the Tokenizer when a certain tag should
-     * cause the parser to go into RAW text mode.
-     *
-     * The HTML5 standard requires that the builder is the one that initiates this
-     * step, and this is the only way short of a circular reference that we can
-     * do that.
-     *
-     * Example: if a startTag even for a `script` name is fired, and the startTag()
-     * implementation returns Tokenizer::TEXTMODE_RAW, then the tokenizer will
-     * switch into RAW text mode and consume data until it reaches a closing
-     * `script` tag.
-     *
-     * The textmode is automatically reset to Tokenizer::TEXTMODE_NORMAL when the
-     * closing tag is encounter. **This behavior may change.**
-     *
-     * @param string $name
-     *            The tag name.
-     * @param array $attributes
-     *            An array with all of the tag's attributes.
-     * @param boolean $selfClosing
-     *            An indicator of whether or not this tag is self-closing (<foo/>)
-     * @return numeric One of the Tokenizer::TEXTMODE_* constants.
-     */
-    public function startTag($name, $attributes = array(), $selfClosing = false);
-
-    /**
-     * An end-tag.
-     */
-    public function endTag($name);
-
-    /**
-     * A comment section (unparsed character data).
-     */
-    public function comment($cdata);
-
-    /**
-     * A unit of parsed character data.
-     *
-     * Entities in this text are *already decoded*.
-     */
-    public function text($cdata);
-
-    /**
-     * Indicates that the document has been entirely processed.
-     */
-    public function eof();
-
-    /**
-     * Emitted when the parser encounters an error condition.
-     */
-    public function parseError($msg, $line, $col);
-
-    /**
-     * A CDATA section.
-     *
-     * @param string $data
-     *            The unparsed character data.
-     */
-    public function cdata($data);
-
-    /**
-     * This is a holdover from the XML spec.
-     *
-     * While user agents don't get PIs, server-side does.
-     *
-     * @param string $name
-     *            The name of the processor (e.g. 'php').
-     * @param string $data
-     *            The unparsed data.
-     */
-    public function processingInstruction($name, $data = null);
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php b/core/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php
deleted file mode 100644
index e58006a..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-/**
- * The FileInputStream loads a file to be parsed.
- *
- * So right now we read files into strings and then process the
- * string. We chose to do this largely for the sake of expediency of
- * development, and also because we could optimize toward processing
- * arbitrarily large chunks of the input. But in the future, we'd
- * really like to rewrite this class to efficiently handle lower level
- * stream reads (and thus efficiently handle large documents).
- *
- * @todo A buffered input stream would be useful.
- */
-class FileInputStream extends StringInputStream implements InputStream
-{
-
-    /**
-     * Load a file input stream.
-     *
-     * @param string $data
-     *            The file or url path to load.
-     */
-    public function __construct($data, $encoding = 'UTF-8', $debug = '')
-    {
-        // Get the contents of the file.
-        $content = file_get_contents($data);
-
-        parent::__construct($content, $encoding, $debug);
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php b/core/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php
deleted file mode 100644
index 0bdc803..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-/**
- * Interface for stream readers.
- *
- * The parser only reads from streams. Various input sources can write
- * an adapater to this InputStream.
- *
- * Currently provided InputStream implementations include
- * FileInputStream and StringInputStream.
- */
-interface InputStream extends \Iterator
-{
-
-    /**
-     * Returns the current line that is being consumed.
-     *
-     * TODO: Move this to the scanner.
-     */
-    public function currentLine();
-
-    /**
-     * Returns the current column of the current line that the tokenizer is at.
-     *
-     * Newlines are column 0. The first char after a newline is column 1.
-     *
-     * @TODO Move this to the scanner.
-     *
-     * @return int The column number.
-     */
-    public function columnOffset();
-
-    /**
-     * Get all characters until EOF.
-     *
-     * This consumes characters until the EOF.
-     */
-    public function remainingChars();
-
-    /**
-     * Read to a particular match (or until $max bytes are consumed).
-     *
-     * This operates on byte sequences, not characters.
-     *
-     * Matches as far as possible until we reach a certain set of bytes
-     * and returns the matched substring.
-     *
-     * @see strcspn
-     * @param string $bytes
-     *            Bytes to match.
-     * @param int $max
-     *            Maximum number of bytes to scan.
-     * @return mixed Index or false if no match is found. You should use strong
-     *         equality when checking the result, since index could be 0.
-     */
-    public function charsUntil($bytes, $max = null);
-
-    /**
-     * Returns the string so long as $bytes matches.
-     *
-     * Matches as far as possible with a certain set of bytes
-     * and returns the matched substring.
-     *
-     * @see strspn
-     * @param string $bytes
-     *            A mask of bytes to match. If ANY byte in this mask matches the
-     *            current char, the pointer advances and the char is part of the
-     *            substring.
-     * @param int $max
-     *            The max number of chars to read.
-     */
-    public function charsWhile($bytes, $max = null);
-
-    /**
-     * Unconsume one character.
-     *
-     * @param int $howMany
-     *            The number of characters to move the pointer back.
-     */
-    public function unconsume($howMany = 1);
-
-    /**
-     * Retrieve the next character without advancing the pointer.
-     */
-    public function peek();
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php b/core/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php
deleted file mode 100644
index 86498a1..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-/**
- * Emit when the parser has an error.
- */
-class ParseError extends \Exception
-{
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/README.md b/core/vendor/masterminds/html5/src/HTML5/Parser/README.md
deleted file mode 100644
index 9f92957..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# The Parser Model
-
-The parser model here follows the model in section
-[8.2.1](http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#parsing)
-of the HTML5 specification, though we do not assume a networking layer.
-
-     [ InputStream ]    // Generic support for reading input.
-           ||
-      [ Scanner ]       // Breaks down the stream into characters.
-           ||
-     [ Tokenizer ]      // Groups characters into syntactic
-           ||
-    [ Tree Builder ]    // Organizes units into a tree of objects
-           ||
-     [ DOM Document ]     // The final state of the parsed document.
-
-
-## InputStream
-
-This is an interface with at least two concrete implementations:
-
-- StringInputStream: Reads an HTML5 string.
-- FileInputStream: Reads an HTML5 file.
-
-## Scanner
-
-This is a mechanical piece of the parser.
-
-## Tokenizer
-
-This follows section 8.4 of the HTML5 spec. It is (roughly) a recursive
-descent parser. (Though there are plenty of optimizations that are less
-than purely functional.
-
-## EventHandler and DOMTree
-
-EventHandler is the interface for tree builders. Since not all
-implementations will necessarily build trees, we've chosen a more
-generic name.
-
-The event handler emits tokens during tokenization.
-
-The DOMTree is an event handler that builds a DOM tree. The output of
-the DOMTree builder is a DOMDocument.
-
-## DOMDocument
-
-PHP has a DOMDocument class built-in (technically, it's part of libxml.)
-We use that, thus rendering the output of this process compatible with
-SimpleXML, QueryPath, and many other XML/HTML processing tools.
-
-For cases where the HTML5 is a fragment of a HTML5 document a
-DOMDocumentFragment is returned instead. This is another built-in class.
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php b/core/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php
deleted file mode 100644
index f605c69..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-/**
- * The scanner.
- *
- * This scans over an input stream.
- */
-class Scanner
-{
-
-    const CHARS_HEX = 'abcdefABCDEF01234567890';
-
-    const CHARS_ALNUM = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890';
-
-    const CHARS_ALPHA = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
-
-    protected $is;
-
-    // Flipping this to true will give minisculely more debugging info.
-    public $debug = false;
-
-    /**
-     * Create a new Scanner.
-     *
-     * @param \Masterminds\HTML5\Parser\InputStream $input
-     *            An InputStream to be scanned.
-     */
-    public function __construct($input)
-    {
-        $this->is = $input;
-    }
-
-    /**
-     * Get the current position.
-     *
-     * @return int The current intiger byte position.
-     */
-    public function position()
-    {
-        return $this->is->key();
-    }
-
-    /**
-     * Take a peek at the next character in the data.
-     *
-     * @return string The next character.
-     */
-    public function peek()
-    {
-        return $this->is->peek();
-    }
-
-    /**
-     * Get the next character.
-     *
-     * Note: This advances the pointer.
-     *
-     * @return string The next character.
-     */
-    public function next()
-    {
-        $this->is->next();
-        if ($this->is->valid()) {
-            if ($this->debug)
-                fprintf(STDOUT, "> %s\n", $this->is->current());
-            return $this->is->current();
-        }
-
-        return false;
-    }
-
-    /**
-     * Get the current character.
-     *
-     * Note, this does not advance the pointer.
-     *
-     * @return string The current character.
-     */
-    public function current()
-    {
-        if ($this->is->valid()) {
-            return $this->is->current();
-        }
-
-        return false;
-    }
-
-    /**
-     * Silently consume N chars.
-     */
-    public function consume($count = 1)
-    {
-        for ($i = 0; $i < $count; ++ $i) {
-            $this->next();
-        }
-    }
-
-    /**
-     * Unconsume some of the data.
-     * This moves the data pointer backwards.
-     *
-     * @param int $howMany
-     *            The number of characters to move the pointer back.
-     */
-    public function unconsume($howMany = 1)
-    {
-        $this->is->unconsume($howMany);
-    }
-
-    /**
-     * Get the next group of that contains hex characters.
-     *
-     * Note, along with getting the characters the pointer in the data will be
-     * moved as well.
-     *
-     * @return string The next group that is hex characters.
-     */
-    public function getHex()
-    {
-        return $this->is->charsWhile(static::CHARS_HEX);
-    }
-
-    /**
-     * Get the next group of characters that are ASCII Alpha characters.
-     *
-     * Note, along with getting the characters the pointer in the data will be
-     * moved as well.
-     *
-     * @return string The next group of ASCII alpha characters.
-     */
-    public function getAsciiAlpha()
-    {
-        return $this->is->charsWhile(static::CHARS_ALPHA);
-    }
-
-    /**
-     * Get the next group of characters that are ASCII Alpha characters and numbers.
-     *
-     * Note, along with getting the characters the pointer in the data will be
-     * moved as well.
-     *
-     * @return string The next group of ASCII alpha characters and numbers.
-     */
-    public function getAsciiAlphaNum()
-    {
-        return $this->is->charsWhile(static::CHARS_ALNUM);
-    }
-
-    /**
-     * Get the next group of numbers.
-     *
-     * Note, along with getting the characters the pointer in the data will be
-     * moved as well.
-     *
-     * @return string The next group of numbers.
-     */
-    public function getNumeric()
-    {
-        return $this->is->charsWhile('0123456789');
-    }
-
-    /**
-     * Consume whitespace.
-     *
-     * Whitespace in HTML5 is: formfeed, tab, newline, space.
-     */
-    public function whitespace()
-    {
-        return $this->is->charsWhile("\n\t\f ");
-    }
-
-    /**
-     * Returns the current line that is being consumed.
-     *
-     * @return int The current line number.
-     */
-    public function currentLine()
-    {
-        return $this->is->currentLine();
-    }
-
-    /**
-     * Read chars until something in the mask is encountered.
-     */
-    public function charsUntil($mask)
-    {
-        return $this->is->charsUntil($mask);
-    }
-
-    /**
-     * Read chars as long as the mask matches.
-     */
-    public function charsWhile($mask)
-    {
-        return $this->is->charsWhile($mask);
-    }
-
-    /**
-     * Returns the current column of the current line that the tokenizer is at.
-     *
-     * Newlines are column 0. The first char after a newline is column 1.
-     *
-     * @return int The column number.
-     */
-    public function columnOffset()
-    {
-        return $this->is->columnOffset();
-    }
-
-    /**
-     * Get all characters until EOF.
-     *
-     * This consumes characters until the EOF.
-     *
-     * @return int The number of characters remaining.
-     */
-    public function remainingChars()
-    {
-        return $this->is->remainingChars();
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php b/core/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php
deleted file mode 100644
index 4cac3c2..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php
+++ /dev/null
@@ -1,331 +0,0 @@
-<?php
-/**
- * Loads a string to be parsed.
- */
-namespace Masterminds\HTML5\Parser;
-
-/*
- *
-* Based on code from html5lib:
-
-Copyright 2009 Geoffrey Sneddon <http://gsnedders.com/>
-
-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.
-
-*/
-
-// Some conventions:
-// - /* */ indicates verbatim text from the HTML 5 specification
-//   MPB: Not sure which version of the spec. Moving from HTML5lib to
-//   HTML5-PHP, I have been using this version:
-//   http://www.w3.org/TR/2012/CR-html5-20121217/Overview.html#contents
-//
-// - // indicates regular comments
-
-class StringInputStream implements InputStream
-{
-
-    /**
-     * The string data we're parsing.
-     */
-    private $data;
-
-    /**
-     * The current integer byte position we are in $data
-     */
-    private $char;
-
-    /**
-     * Length of $data; when $char === $data, we are at the end-of-file.
-     */
-    private $EOF;
-
-    /**
-     * Parse errors.
-     */
-    public $errors = array();
-
-    /**
-     * Create a new InputStream wrapper.
-     *
-     * @param $data Data
-     *            to parse
-     */
-    public function __construct($data, $encoding = 'UTF-8', $debug = '')
-    {
-        $data = UTF8Utils::convertToUTF8($data, $encoding);
-        if ($debug)
-            fprintf(STDOUT, $debug, $data, strlen($data));
-
-            // There is good reason to question whether it makes sense to
-            // do this here, since most of these checks are done during
-            // parsing, and since this check doesn't actually *do* anything.
-        $this->errors = UTF8Utils::checkForIllegalCodepoints($data);
-        // if (!empty($e)) {
-        // throw new ParseError("UTF-8 encoding issues: " . implode(', ', $e));
-        // }
-
-        $data = $this->replaceLinefeeds($data);
-
-        $this->data = $data;
-        $this->char = 0;
-        $this->EOF = strlen($data);
-    }
-
-    /**
-     * Replace linefeed characters according to the spec.
-     */
-    protected function replaceLinefeeds($data)
-    {
-        /*
-         * U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) characters are treated specially. Any CR characters that are followed by LF characters must be removed, and any CR characters not followed by LF characters must be converted to LF characters. Thus, newlines in HTML DOMs are represented by LF characters, and there are never any CR characters in the input to the tokenization stage.
-         */
-        $crlfTable = array(
-            "\0" => "\xEF\xBF\xBD",
-            "\r\n" => "\n",
-            "\r" => "\n"
-        );
-
-        return strtr($data, $crlfTable);
-    }
-
-    /**
-     * Returns the current line that the tokenizer is at.
-     */
-    public function currentLine()
-    {
-        if (empty($this->EOF) || $this->char == 0) {
-            return 1;
-        }
-        // Add one to $this->char because we want the number for the next
-        // byte to be processed.
-        return substr_count($this->data, "\n", 0, min($this->char, $this->EOF)) + 1;
-    }
-
-    /**
-     *
-     * @deprecated
-     *
-     */
-    public function getCurrentLine()
-    {
-        return currentLine();
-    }
-
-    /**
-     * Returns the current column of the current line that the tokenizer is at.
-     *
-     * Newlines are column 0. The first char after a newline is column 1.
-     *
-     * @return int The column number.
-     */
-    public function columnOffset()
-    {
-        // Short circuit for the first char.
-        if ($this->char == 0) {
-            return 0;
-        }
-        // strrpos is weird, and the offset needs to be negative for what we
-        // want (i.e., the last \n before $this->char). This needs to not have
-        // one (to make it point to the next character, the one we want the
-        // position of) added to it because strrpos's behaviour includes the
-        // final offset byte.
-        $backwardFrom = $this->char - 1 - strlen($this->data);
-        $lastLine = strrpos($this->data, "\n", $backwardFrom);
-
-        // However, for here we want the length up until the next byte to be
-        // processed, so add one to the current byte ($this->char).
-        if ($lastLine !== false) {
-            $findLengthOf = substr($this->data, $lastLine + 1, $this->char - 1 - $lastLine);
-        } else {
-            // After a newline.
-            $findLengthOf = substr($this->data, 0, $this->char);
-        }
-
-        return UTF8Utils::countChars($findLengthOf);
-    }
-
-    /**
-     *
-     * @deprecated
-     *
-     */
-    public function getColumnOffset()
-    {
-        return $this->columnOffset();
-    }
-
-    /**
-     * Get the current character.
-     *
-     * @return string The current character.
-     */
-    public function current()
-    {
-        return $this->data[$this->char];
-    }
-
-    /**
-     * Advance the pointer.
-     * This is part of the Iterator interface.
-     */
-    public function next()
-    {
-        $this->char ++;
-    }
-
-    /**
-     * Rewind to the start of the string.
-     */
-    public function rewind()
-    {
-        $this->char = 0;
-    }
-
-    /**
-     * Is the current pointer location valid.
-     *
-     * @return bool Is the current pointer location valid.
-     */
-    public function valid()
-    {
-        if ($this->char < $this->EOF) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Get all characters until EOF.
-     *
-     * This reads to the end of the file, and sets the read marker at the
-     * end of the file.
-     *
-     * @note This performs bounds checking
-     *
-     * @return string Returns the remaining text. If called when the InputStream is
-     *         already exhausted, it returns an empty string.
-     */
-    public function remainingChars()
-    {
-        if ($this->char < $this->EOF) {
-            $data = substr($this->data, $this->char);
-            $this->char = $this->EOF;
-
-            return $data;
-        }
-
-        return ''; // false;
-    }
-
-    /**
-     * Read to a particular match (or until $max bytes are consumed).
-     *
-     * This operates on byte sequences, not characters.
-     *
-     * Matches as far as possible until we reach a certain set of bytes
-     * and returns the matched substring.
-     *
-     * @param string $bytes
-     *            Bytes to match.
-     * @param int $max
-     *            Maximum number of bytes to scan.
-     * @return mixed Index or false if no match is found. You should use strong
-     *         equality when checking the result, since index could be 0.
-     */
-    public function charsUntil($bytes, $max = null)
-    {
-        if ($this->char >= $this->EOF) {
-            return false;
-        }
-
-        if ($max === 0 || $max) {
-            $len = strcspn($this->data, $bytes, $this->char, $max);
-        } else {
-            $len = strcspn($this->data, $bytes, $this->char);
-        }
-
-        $string = (string) substr($this->data, $this->char, $len);
-        $this->char += $len;
-
-        return $string;
-    }
-
-    /**
-     * Returns the string so long as $bytes matches.
-     *
-     * Matches as far as possible with a certain set of bytes
-     * and returns the matched substring.
-     *
-     * @param string $bytes
-     *            A mask of bytes to match. If ANY byte in this mask matches the
-     *            current char, the pointer advances and the char is part of the
-     *            substring.
-     * @param int $max
-     *            The max number of chars to read.
-     */
-    public function charsWhile($bytes, $max = null)
-    {
-        if ($this->char >= $this->EOF) {
-            return false;
-        }
-
-        if ($max === 0 || $max) {
-            $len = strspn($this->data, $bytes, $this->char, $max);
-        } else {
-            $len = strspn($this->data, $bytes, $this->char);
-        }
-        $string = (string) substr($this->data, $this->char, $len);
-        $this->char += $len;
-
-        return $string;
-    }
-
-    /**
-     * Unconsume characters.
-     *
-     * @param int $howMany
-     *            The number of characters to unconsume.
-     */
-    public function unconsume($howMany = 1)
-    {
-        if (($this->char - $howMany) >= 0) {
-            $this->char = $this->char - $howMany;
-        }
-    }
-
-    /**
-     * Look ahead without moving cursor.
-     */
-    public function peek()
-    {
-        if (($this->char + 1) <= $this->EOF) {
-            return $this->data[$this->char + 1];
-        }
-
-        return false;
-    }
-
-    public function key()
-    {
-        return $this->char;
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php b/core/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php
deleted file mode 100644
index e00b9a2..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php
+++ /dev/null
@@ -1,1092 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-use Masterminds\HTML5\Elements;
-
-/**
- * The HTML5 tokenizer.
- *
- * The tokenizer's role is reading data from the scanner and gathering it into
- * semantic units. From the tokenizer, data is emitted to an event handler,
- * which may (for example) create a DOM tree.
- *
- * The HTML5 specification has a detailed explanation of tokenizing HTML5. We
- * follow that specification to the maximum extent that we can. If you find
- * a discrepancy that is not documented, please file a bug and/or submit a
- * patch.
- *
- * This tokenizer is implemented as a recursive descent parser.
- *
- * Within the API documentation, you may see references to the specific section
- * of the HTML5 spec that the code attempts to reproduce. Example: 8.2.4.1.
- * This refers to section 8.2.4.1 of the HTML5 CR specification.
- *
- * @see http://www.w3.org/TR/2012/CR-html5-20121217/
- */
-class Tokenizer
-{
-
-    protected $scanner;
-
-    protected $events;
-
-    protected $tok;
-
-    /**
-     * Buffer for text.
-     */
-    protected $text = '';
-
-    // When this goes to false, the parser stops.
-    protected $carryOn = true;
-
-    protected $textMode = 0; // TEXTMODE_NORMAL;
-    protected $untilTag = null;
-
-    const WHITE = "\t\n\f ";
-
-    /**
-     * Create a new tokenizer.
-     *
-     * Typically, parsing a document involves creating a new tokenizer, giving
-     * it a scanner (input) and an event handler (output), and then calling
-     * the Tokenizer::parse() method.`
-     *
-     * @param \Masterminds\HTML5\Parser\Scanner $scanner
-     *            A scanner initialized with an input stream.
-     * @param \Masterminds\HTML5\Parser\EventHandler $eventHandler
-     *            An event handler, initialized and ready to receive
-     *            events.
-     */
-    public function __construct($scanner, $eventHandler)
-    {
-        $this->scanner = $scanner;
-        $this->events = $eventHandler;
-    }
-
-    /**
-     * Begin parsing.
-     *
-     * This will begin scanning the document, tokenizing as it goes.
-     * Tokens are emitted into the event handler.
-     *
-     * Tokenizing will continue until the document is completely
-     * read. Errors are emitted into the event handler, but
-     * the parser will attempt to continue parsing until the
-     * entire input stream is read.
-     */
-    public function parse()
-    {
-        $p = 0;
-        do {
-            $p = $this->scanner->position();
-            $this->consumeData();
-
-            // FIXME: Add infinite loop protection.
-        } while ($this->carryOn);
-    }
-
-    /**
-     * Set the text mode for the character data reader.
-     *
-     * HTML5 defines three different modes for reading text:
-     * - Normal: Read until a tag is encountered.
-     * - RCDATA: Read until a tag is encountered, but skip a few otherwise-
-     * special characters.
-     * - Raw: Read until a special closing tag is encountered (viz. pre, script)
-     *
-     * This allows those modes to be set.
-     *
-     * Normally, setting is done by the event handler via a special return code on
-     * startTag(), but it can also be set manually using this function.
-     *
-     * @param integer $textmode
-     *            One of Elements::TEXT_*
-     * @param string $untilTag
-     *            The tag that should stop RAW or RCDATA mode. Normal mode does not
-     *            use this indicator.
-     */
-    public function setTextMode($textmode, $untilTag = null)
-    {
-        $this->textMode = $textmode & (Elements::TEXT_RAW | Elements::TEXT_RCDATA);
-        $this->untilTag = $untilTag;
-    }
-
-    /**
-     * Consume a character and make a move.
-     * HTML5 8.2.4.1
-     */
-    protected function consumeData()
-    {
-        // Character Ref
-        /*
-         * $this->characterReference() || $this->tagOpen() || $this->eof() || $this->characterData();
-         */
-        $this->characterReference();
-        $this->tagOpen();
-        $this->eof();
-        $this->characterData();
-
-        return $this->carryOn;
-    }
-
-    /**
-     * Parse anything that looks like character data.
-     *
-     * Different rules apply based on the current text mode.
-     *
-     * @see Elements::TEXT_RAW Elements::TEXT_RCDATA.
-     */
-    protected function characterData()
-    {
-        if ($this->scanner->current() === false) {
-            return false;
-        }
-        switch ($this->textMode) {
-            case Elements::TEXT_RAW:
-                return $this->rawText();
-            case Elements::TEXT_RCDATA:
-                return $this->rcdata();
-            default:
-                $tok = $this->scanner->current();
-                if (strspn($tok, "<&")) {
-                    return false;
-                }
-                return $this->text();
-        }
-    }
-
-    /**
-     * This buffers the current token as character data.
-     */
-    protected function text()
-    {
-        $tok = $this->scanner->current();
-
-        // This should never happen...
-        if ($tok === false) {
-            return false;
-        }
-        // Null
-        if ($tok === "\00") {
-            $this->parseError("Received null character.");
-        }
-        // fprintf(STDOUT, "Writing '%s'", $tok);
-        $this->buffer($tok);
-        $this->scanner->next();
-        return true;
-    }
-
-    /**
-     * Read text in RAW mode.
-     */
-    protected function rawText()
-    {
-        if (is_null($this->untilTag)) {
-            return $this->text();
-        }
-        $sequence = '</' . $this->untilTag . '>';
-        $txt = $this->readUntilSequence($sequence);
-        $this->events->text($txt);
-        $this->setTextMode(0);
-        return $this->endTag();
-    }
-
-    /**
-     * Read text in RCDATA mode.
-     */
-    protected function rcdata()
-    {
-        if (is_null($this->untilTag)) {
-            return $this->text();
-        }
-        $sequence = '</' . $this->untilTag;
-        $txt = '';
-        $tok = $this->scanner->current();
-
-        $caseSensitive = !Elements::isHtml5Element($this->untilTag);
-        while ($tok !== false && ! ($tok == '<' && ($this->sequenceMatches($sequence, $caseSensitive)))) {
-            if ($tok == '&') {
-                $txt .= $this->decodeCharacterReference();
-                $tok = $this->scanner->current();
-            } else {
-                $txt .= $tok;
-                $tok = $this->scanner->next();
-            }
-        }
-        $len = strlen($sequence);
-        $this->scanner->consume($len);
-        $len += strlen($this->scanner->whitespace());
-        if ($this->scanner->current() !== '>') {
-            $this->parseError("Unclosed RCDATA end tag");
-        }
-        $this->scanner->unconsume($len);
-        $this->events->text($txt);
-        $this->setTextMode(0);
-        return $this->endTag();
-    }
-
-    /**
-     * If the document is read, emit an EOF event.
-     */
-    protected function eof()
-    {
-        if ($this->scanner->current() === false) {
-            // fprintf(STDOUT, "EOF");
-            $this->flushBuffer();
-            $this->events->eof();
-            $this->carryOn = false;
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Handle character references (aka entities).
-     *
-     * This version is specific to PCDATA, as it buffers data into the
-     * text buffer. For a generic version, see decodeCharacterReference().
-     *
-     * HTML5 8.2.4.2
-     */
-    protected function characterReference()
-    {
-        $ref = $this->decodeCharacterReference();
-        if ($ref !== false) {
-            $this->buffer($ref);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Emit a tagStart event on encountering a tag.
-     *
-     * 8.2.4.8
-     */
-    protected function tagOpen()
-    {
-        if ($this->scanner->current() != '<') {
-            return false;
-        }
-
-        // Any buffered text data can go out now.
-        $this->flushBuffer();
-
-        $this->scanner->next();
-
-        return $this->markupDeclaration() || $this->endTag() || $this->processingInstruction() || $this->tagName() ||
-          /*  This always returns false. */
-          $this->parseError("Illegal tag opening") || $this->characterData();
-    }
-
-    /**
-     * Look for markup.
-     */
-    protected function markupDeclaration()
-    {
-        if ($this->scanner->current() != '!') {
-            return false;
-        }
-
-        $tok = $this->scanner->next();
-
-        // Comment:
-        if ($tok == '-' && $this->scanner->peek() == '-') {
-            $this->scanner->next(); // Consume the other '-'
-            $this->scanner->next(); // Next char.
-            return $this->comment();
-        }
-
-        elseif ($tok == 'D' || $tok == 'd') { // Doctype
-            return $this->doctype('');
-        }
-
-        elseif ($tok == '[') { // CDATA section
-            return $this->cdataSection();
-        }
-
-        // FINISH
-        $this->parseError("Expected <!--, <![CDATA[, or <!DOCTYPE. Got <!%s", $tok);
-        $this->bogusComment('<!');
-        return true;
-    }
-
-    /**
-     * Consume an end tag.
-     * 8.2.4.9
-     */
-    protected function endTag()
-    {
-        if ($this->scanner->current() != '/') {
-            return false;
-        }
-        $tok = $this->scanner->next();
-
-        // a-zA-Z -> tagname
-        // > -> parse error
-        // EOF -> parse error
-        // -> parse error
-        if (! ctype_alpha($tok)) {
-            $this->parseError("Expected tag name, got '%s'", $tok);
-            if ($tok == "\0" || $tok === false) {
-                return false;
-            }
-            return $this->bogusComment('</');
-        }
-
-        $name = strtolower($this->scanner->charsUntil("\n\f \t>"));
-        // Trash whitespace.
-        $this->scanner->whitespace();
-
-        if ($this->scanner->current() != '>') {
-            $this->parseError("Expected >, got '%s'", $this->scanner->current());
-            // We just trash stuff until we get to the next tag close.
-            $this->scanner->charsUntil('>');
-        }
-
-        $this->events->endTag($name);
-        $this->scanner->next();
-        return true;
-    }
-
-    /**
-     * Consume a tag name and body.
-     * 8.2.4.10
-     */
-    protected function tagName()
-    {
-        $tok = $this->scanner->current();
-        if (! ctype_alpha($tok)) {
-            return false;
-        }
-
-        // We know this is at least one char.
-        $name = strtolower($this->scanner->charsWhile(":_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-        $attributes = array();
-        $selfClose = false;
-
-        // Handle attribute parse exceptions here so that we can
-        // react by trying to build a sensible parse tree.
-        try {
-            do {
-                $this->scanner->whitespace();
-                $this->attribute($attributes);
-            } while (! $this->isTagEnd($selfClose));
-        } catch (ParseError $e) {
-            $selfClose = false;
-        }
-
-        $mode = $this->events->startTag($name, $attributes, $selfClose);
-        // Should we do this? What does this buy that selfClose doesn't?
-        if ($selfClose) {
-            $this->events->endTag($name);
-        } elseif (is_int($mode)) {
-            // fprintf(STDOUT, "Event response says move into mode %d for tag %s", $mode, $name);
-            $this->setTextMode($mode, $name);
-        }
-
-        $this->scanner->next();
-
-        return true;
-    }
-
-    /**
-     * Check if the scanner has reached the end of a tag.
-     */
-    protected function isTagEnd(&$selfClose)
-    {
-        $tok = $this->scanner->current();
-        if ($tok == '/') {
-            $this->scanner->next();
-            $this->scanner->whitespace();
-            if ($this->scanner->current() == '>') {
-                $selfClose = true;
-                return true;
-            }
-            if ($this->scanner->current() === false) {
-                $this->parseError("Unexpected EOF inside of tag.");
-                return true;
-            }
-            // Basically, we skip the / token and go on.
-            // See 8.2.4.43.
-            $this->parseError("Unexpected '%s' inside of a tag.", $this->scanner->current());
-            return false;
-        }
-
-        if ($this->scanner->current() == '>') {
-            return true;
-        }
-        if ($this->scanner->current() === false) {
-            $this->parseError("Unexpected EOF inside of tag.");
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Parse attributes from inside of a tag.
-     */
-    protected function attribute(&$attributes)
-    {
-        $tok = $this->scanner->current();
-        if ($tok == '/' || $tok == '>' || $tok === false) {
-            return false;
-        }
-
-        if ($tok == '<') {
-            $this->parseError("Unexepcted '<' inside of attributes list.");
-            // Push the < back onto the stack.
-            $this->scanner->unconsume();
-            // Let the caller figure out how to handle this.
-            throw new ParseError("Start tag inside of attribute.");
-        }
-
-        $name = strtolower($this->scanner->charsUntil("/>=\n\f\t "));
-
-        if (strlen($name) == 0) {
-            $this->parseError("Expected an attribute name, got %s.", $this->scanner->current());
-            // Really, only '=' can be the char here. Everything else gets absorbed
-            // under one rule or another.
-            $name = $this->scanner->current();
-            $this->scanner->next();
-        }
-
-        $isValidAttribute = true;
-        // Attribute names can contain most Unicode characters for HTML5.
-        // But method "DOMElement::setAttribute" is throwing exception
-        // because of it's own internal restriction so these have to be filtered.
-        // see issue #23: https://github.com/Masterminds/html5-php/issues/23
-        // and http://www.w3.org/TR/2011/WD-html5-20110525/syntax.html#syntax-attribute-name
-        if (preg_match("/[\x1-\x2C\\/\x3B-\x40\x5B-\x5E\x60\x7B-\x7F]/u", $name)) {
-            $this->parseError("Unexpected characters in attribute name: %s", $name);
-            $isValidAttribute = false;
-        }         // There is no limitation for 1st character in HTML5.
-        // But method "DOMElement::setAttribute" is throwing exception for the
-        // characters below so they have to be filtered.
-        // see issue #23: https://github.com/Masterminds/html5-php/issues/23
-        // and http://www.w3.org/TR/2011/WD-html5-20110525/syntax.html#syntax-attribute-name
-        else
-            if (preg_match("/^[0-9.-]/u", $name)) {
-                $this->parseError("Unexpected character at the begining of attribute name: %s", $name);
-                $isValidAttribute = false;
-            }
-        // 8.1.2.3
-        $this->scanner->whitespace();
-
-        $val = $this->attributeValue();
-        if ($isValidAttribute) {
-            $attributes[$name] = $val;
-        }
-        return true;
-    }
-
-    /**
-     * Consume an attribute value.
-     * 8.2.4.37 and after.
-     */
-    protected function attributeValue()
-    {
-        if ($this->scanner->current() != '=') {
-            return null;
-        }
-        $this->scanner->next();
-        // 8.1.2.3
-        $this->scanner->whitespace();
-
-        $tok = $this->scanner->current();
-        switch ($tok) {
-            case "\n":
-            case "\f":
-            case " ":
-            case "\t":
-                // Whitespace here indicates an empty value.
-                return null;
-            case '"':
-            case "'":
-                $this->scanner->next();
-                return $this->quotedAttributeValue($tok);
-            case '>':
-                // case '/': // 8.2.4.37 seems to allow foo=/ as a valid attr.
-                $this->parseError("Expected attribute value, got tag end.");
-                return null;
-            case '=':
-            case '`':
-                $this->parseError("Expecting quotes, got %s.", $tok);
-                return $this->unquotedAttributeValue();
-            default:
-                return $this->unquotedAttributeValue();
-        }
-    }
-
-    /**
-     * Get an attribute value string.
-     *
-     * @param string $quote
-     *            IMPORTANT: This is a series of chars! Any one of which will be considered
-     *            termination of an attribute's value. E.g. "\"'" will stop at either
-     *            ' or ".
-     * @return string The attribute value.
-     */
-    protected function quotedAttributeValue($quote)
-    {
-        $stoplist = "\f" . $quote;
-        $val = '';
-        $tok = $this->scanner->current();
-        while (strspn($tok, $stoplist) == 0 && $tok !== false) {
-            if ($tok == '&') {
-                $val .= $this->decodeCharacterReference(true);
-                $tok = $this->scanner->current();
-            } else {
-                $val .= $tok;
-                $tok = $this->scanner->next();
-            }
-        }
-        $this->scanner->next();
-        return $val;
-    }
-
-    protected function unquotedAttributeValue()
-    {
-        $stoplist = "\t\n\f >";
-        $val = '';
-        $tok = $this->scanner->current();
-        while (strspn($tok, $stoplist) == 0 && $tok !== false) {
-            if ($tok == '&') {
-                $val .= $this->decodeCharacterReference(true);
-                $tok = $this->scanner->current();
-            } else {
-                if (strspn($tok, "\"'<=`") > 0) {
-                    $this->parseError("Unexpected chars in unquoted attribute value %s", $tok);
-                }
-                $val .= $tok;
-                $tok = $this->scanner->next();
-            }
-        }
-        return $val;
-    }
-
-    /**
-     * Consume malformed markup as if it were a comment.
-     * 8.2.4.44
-     *
-     * The spec requires that the ENTIRE tag-like thing be enclosed inside of
-     * the comment. So this will generate comments like:
-     *
-     * &lt;!--&lt/+foo&gt;--&gt;
-     *
-     * @param string $leading
-     *            Prepend any leading characters. This essentially
-     *            negates the need to backtrack, but it's sort of
-     *            a hack.
-     */
-    protected function bogusComment($leading = '')
-    {
-
-        // TODO: This can be done more efficiently when the
-        // scanner exposes a readUntil() method.
-        $comment = $leading;
-        $tok = $this->scanner->current();
-        do {
-            $comment .= $tok;
-            $tok = $this->scanner->next();
-        } while ($tok !== false && $tok != '>');
-
-        $this->flushBuffer();
-        $this->events->comment($comment . $tok);
-        $this->scanner->next();
-
-        return true;
-    }
-
-    /**
-     * Read a comment.
-     *
-     * Expects the first tok to be inside of the comment.
-     */
-    protected function comment()
-    {
-        $tok = $this->scanner->current();
-        $comment = '';
-
-        // <!-->. Emit an empty comment because 8.2.4.46 says to.
-        if ($tok == '>') {
-            // Parse error. Emit the comment token.
-            $this->parseError("Expected comment data, got '>'");
-            $this->events->comment('');
-            $this->scanner->next();
-            return true;
-        }
-
-        // Replace NULL with the replacement char.
-        if ($tok == "\0") {
-            $tok = UTF8Utils::FFFD;
-        }
-        while (! $this->isCommentEnd()) {
-            $comment .= $tok;
-            $tok = $this->scanner->next();
-        }
-
-        $this->events->comment($comment);
-        $this->scanner->next();
-        return true;
-    }
-
-    /**
-     * Check if the scanner has reached the end of a comment.
-     */
-    protected function isCommentEnd()
-    {
-        // EOF
-        if ($this->scanner->current() === false) {
-            // Hit the end.
-            $this->parseError("Unexpected EOF in a comment.");
-            return true;
-        }
-
-        // If it doesn't start with -, not the end.
-        if ($this->scanner->current() != '-') {
-            return false;
-        }
-
-        // Advance one, and test for '->'
-        if ($this->scanner->next() == '-' && $this->scanner->peek() == '>') {
-            $this->scanner->next(); // Consume the last '>'
-            return true;
-        }
-        // Unread '-';
-        $this->scanner->unconsume(1);
-        return false;
-    }
-
-    /**
-     * Parse a DOCTYPE.
-     *
-     * Parse a DOCTYPE declaration. This method has strong bearing on whether or
-     * not Quirksmode is enabled on the event handler.
-     *
-     * @todo This method is a little long. Should probably refactor.
-     */
-    protected function doctype()
-    {
-        if (strcasecmp($this->scanner->current(), 'D')) {
-            return false;
-        }
-        // Check that string is DOCTYPE.
-        $chars = $this->scanner->charsWhile("DOCTYPEdoctype");
-        if (strcasecmp($chars, 'DOCTYPE')) {
-            $this->parseError('Expected DOCTYPE, got %s', $chars);
-            return $this->bogusComment('<!' . $chars);
-        }
-
-        $this->scanner->whitespace();
-        $tok = $this->scanner->current();
-
-        // EOF: die.
-        if ($tok === false) {
-            $this->events->doctype('html5', EventHandler::DOCTYPE_NONE, '', true);
-            return $this->eof();
-        }
-
-        $doctypeName = '';
-
-        // NULL char: convert.
-        if ($tok === "\0") {
-            $this->parseError("Unexpected null character in DOCTYPE.");
-            $doctypeName .= UTF8::FFFD;
-            $tok = $this->scanner->next();
-        }
-
-        $stop = " \n\f>";
-        $doctypeName = $this->scanner->charsUntil($stop);
-        // Lowercase ASCII, replace \0 with FFFD
-        $doctypeName = strtolower(strtr($doctypeName, "\0", UTF8Utils::FFFD));
-
-        $tok = $this->scanner->current();
-
-        // If false, emit a parse error, DOCTYPE, and return.
-        if ($tok === false) {
-            $this->parseError('Unexpected EOF in DOCTYPE declaration.');
-            $this->events->doctype($doctypeName, EventHandler::DOCTYPE_NONE, null, true);
-            return true;
-        }
-
-        // Short DOCTYPE, like <!DOCTYPE html>
-        if ($tok == '>') {
-            // DOCTYPE without a name.
-            if (strlen($doctypeName) == 0) {
-                $this->parseError("Expected a DOCTYPE name. Got nothing.");
-                $this->events->doctype($doctypeName, 0, null, true);
-                $this->scanner->next();
-                return true;
-            }
-            $this->events->doctype($doctypeName);
-            $this->scanner->next();
-            return true;
-        }
-        $this->scanner->whitespace();
-
-        $pub = strtoupper($this->scanner->getAsciiAlpha());
-        $white = strlen($this->scanner->whitespace());
-        $tok = $this->scanner->current();
-
-        // Get ID, and flag it as pub or system.
-        if (($pub == 'PUBLIC' || $pub == 'SYSTEM') && $white > 0) {
-            // Get the sys ID.
-            $type = $pub == 'PUBLIC' ? EventHandler::DOCTYPE_PUBLIC : EventHandler::DOCTYPE_SYSTEM;
-            $id = $this->quotedString("\0>");
-            if ($id === false) {
-                $this->events->doctype($doctypeName, $type, $pub, false);
-                return false;
-            }
-
-            // Premature EOF.
-            if ($this->scanner->current() === false) {
-                $this->parseError("Unexpected EOF in DOCTYPE");
-                $this->events->doctype($doctypeName, $type, $id, true);
-                return true;
-            }
-
-            // Well-formed complete DOCTYPE.
-            $this->scanner->whitespace();
-            if ($this->scanner->current() == '>') {
-                $this->events->doctype($doctypeName, $type, $id, false);
-                $this->scanner->next();
-                return true;
-            }
-
-            // If we get here, we have <!DOCTYPE foo PUBLIC "bar" SOME_JUNK
-            // Throw away the junk, parse error, quirks mode, return true.
-            $this->scanner->charsUntil(">");
-            $this->parseError("Malformed DOCTYPE.");
-            $this->events->doctype($doctypeName, $type, $id, true);
-            $this->scanner->next();
-            return true;
-        }
-
-        // Else it's a bogus DOCTYPE.
-        // Consume to > and trash.
-        $this->scanner->charsUntil('>');
-
-        $this->parseError("Expected PUBLIC or SYSTEM. Got %s.", $pub);
-        $this->events->doctype($doctypeName, 0, null, true);
-        $this->scanner->next();
-        return true;
-    }
-
-    /**
-     * Utility for reading a quoted string.
-     *
-     * @param string $stopchars
-     *            Characters (in addition to a close-quote) that should stop the string.
-     *            E.g. sometimes '>' is higher precedence than '"' or "'".
-     * @return mixed String if one is found (quotations omitted)
-     */
-    protected function quotedString($stopchars)
-    {
-        $tok = $this->scanner->current();
-        if ($tok == '"' || $tok == "'") {
-            $this->scanner->next();
-            $ret = $this->scanner->charsUntil($tok . $stopchars);
-            if ($this->scanner->current() == $tok) {
-                $this->scanner->next();
-            } else {
-                // Parse error because no close quote.
-                $this->parseError("Expected %s, got %s", $tok, $this->scanner->current());
-            }
-            return $ret;
-        }
-        return false;
-    }
-
-    /**
-     * Handle a CDATA section.
-     */
-    protected function cdataSection()
-    {
-        if ($this->scanner->current() != '[') {
-            return false;
-        }
-        $cdata = '';
-        $this->scanner->next();
-
-        $chars = $this->scanner->charsWhile('CDAT');
-        if ($chars != 'CDATA' || $this->scanner->current() != '[') {
-            $this->parseError('Expected [CDATA[, got %s', $chars);
-            return $this->bogusComment('<![' . $chars);
-        }
-
-        $tok = $this->scanner->next();
-        do {
-            if ($tok === false) {
-                $this->parseError('Unexpected EOF inside CDATA.');
-                $this->bogusComment('<![CDATA[' . $cdata);
-                return true;
-            }
-            $cdata .= $tok;
-            $tok = $this->scanner->next();
-        } while (! $this->sequenceMatches(']]>'));
-
-        // Consume ]]>
-        $this->scanner->consume(3);
-
-        $this->events->cdata($cdata);
-        return true;
-    }
-
-    // ================================================================
-    // Non-HTML5
-    // ================================================================
-    /**
-     * Handle a processing instruction.
-     *
-     * XML processing instructions are supposed to be ignored in HTML5,
-     * treated as "bogus comments". However, since we're not a user
-     * agent, we allow them. We consume until ?> and then issue a
-     * EventListener::processingInstruction() event.
-     */
-    protected function processingInstruction()
-    {
-        if ($this->scanner->current() != '?') {
-            return false;
-        }
-
-        $tok = $this->scanner->next();
-        $procName = $this->scanner->getAsciiAlpha();
-        $white = strlen($this->scanner->whitespace());
-
-        // If not a PI, send to bogusComment.
-        if (strlen($procName) == 0 || $white == 0 || $this->scanner->current() == false) {
-            $this->parseError("Expected processing instruction name, got $tok");
-            $this->bogusComment('<?' . $tok . $procName);
-            return true;
-        }
-
-        $data = '';
-        // As long as it's not the case that the next two chars are ? and >.
-        while (! ($this->scanner->current() == '?' && $this->scanner->peek() == '>')) {
-            $data .= $this->scanner->current();
-
-            $tok = $this->scanner->next();
-            if ($tok === false) {
-                $this->parseError("Unexpected EOF in processing instruction.");
-                $this->events->processingInstruction($procName, $data);
-                return true;
-            }
-        }
-
-        $this->scanner->next(); // >
-        $this->scanner->next(); // Next token.
-        $this->events->processingInstruction($procName, $data);
-        return true;
-    }
-
-    // ================================================================
-    // UTILITY FUNCTIONS
-    // ================================================================
-
-    /**
-     * Read from the input stream until we get to the desired sequene
-     * or hit the end of the input stream.
-     */
-    protected function readUntilSequence($sequence)
-    {
-        $buffer = '';
-
-        // Optimization for reading larger blocks faster.
-        $first = substr($sequence, 0, 1);
-        while ($this->scanner->current() !== false) {
-            $buffer .= $this->scanner->charsUntil($first);
-
-            // Stop as soon as we hit the stopping condition.
-            if ($this->sequenceMatches($sequence, false)) {
-                return $buffer;
-            }
-            $buffer .= $this->scanner->current();
-            $this->scanner->next();
-        }
-
-        // If we get here, we hit the EOF.
-        $this->parseError("Unexpected EOF during text read.");
-        return $buffer;
-    }
-
-    /**
-     * Check if upcomming chars match the given sequence.
-     *
-     * This will read the stream for the $sequence. If it's
-     * found, this will return true. If not, return false.
-     * Since this unconsumes any chars it reads, the caller
-     * will still need to read the next sequence, even if
-     * this returns true.
-     *
-     * Example: $this->sequenceMatches('</script>') will
-     * see if the input stream is at the start of a
-     * '</script>' string.
-     */
-    protected function sequenceMatches($sequence, $caseSensitive = true)
-    {
-        $len = strlen($sequence);
-        $buffer = '';
-        for ($i = 0; $i < $len; ++ $i) {
-            $buffer .= $this->scanner->current();
-
-            // EOF. Rewind and let the caller handle it.
-            if ($this->scanner->current() === false) {
-                $this->scanner->unconsume($i);
-                return false;
-            }
-            $this->scanner->next();
-        }
-
-        $this->scanner->unconsume($len);
-        return $caseSensitive ? $buffer == $sequence : strcasecmp($buffer, $sequence) === 0;
-    }
-
-    /**
-     * Send a TEXT event with the contents of the text buffer.
-     *
-     * This emits an EventHandler::text() event with the current contents of the
-     * temporary text buffer. (The buffer is used to group as much PCDATA
-     * as we can instead of emitting lots and lots of TEXT events.)
-     */
-    protected function flushBuffer()
-    {
-        if ($this->text === '') {
-            return;
-        }
-        $this->events->text($this->text);
-        $this->text = '';
-    }
-
-    /**
-     * Add text to the temporary buffer.
-     *
-     * @see flushBuffer()
-     */
-    protected function buffer($str)
-    {
-        $this->text .= $str;
-    }
-
-    /**
-     * Emit a parse error.
-     *
-     * A parse error always returns false because it never consumes any
-     * characters.
-     */
-    protected function parseError($msg)
-    {
-        $args = func_get_args();
-
-        if (count($args) > 1) {
-            array_shift($args);
-            $msg = vsprintf($msg, $args);
-        }
-
-        $line = $this->scanner->currentLine();
-        $col = $this->scanner->columnOffset();
-        $this->events->parseError($msg, $line, $col);
-        return false;
-    }
-
-    /**
-     * Decode a character reference and return the string.
-     *
-     * Returns false if the entity could not be found. If $inAttribute is set
-     * to true, a bare & will be returned as-is.
-     *
-     * @param boolean $inAttribute
-     *            Set to true if the text is inside of an attribute value.
-     *            false otherwise.
-     */
-    protected function decodeCharacterReference($inAttribute = false)
-    {
-
-        // If it fails this, it's definitely not an entity.
-        if ($this->scanner->current() != '&') {
-            return false;
-        }
-
-        // Next char after &.
-        $tok = $this->scanner->next();
-        $entity = '';
-        $start = $this->scanner->position();
-
-        if ($tok == false) {
-            return '&';
-        }
-
-        // These indicate not an entity. We return just
-        // the &.
-        if (strspn($tok, static::WHITE . "&<") == 1) {
-            // $this->scanner->next();
-            return '&';
-        }
-
-        // Numeric entity
-        if ($tok == '#') {
-            $tok = $this->scanner->next();
-
-            // Hexidecimal encoding.
-            // X[0-9a-fA-F]+;
-            // x[0-9a-fA-F]+;
-            if ($tok == 'x' || $tok == 'X') {
-                $tok = $this->scanner->next(); // Consume x
-
-                // Convert from hex code to char.
-                $hex = $this->scanner->getHex();
-                if (empty($hex)) {
-                    $this->parseError("Expected &#xHEX;, got &#x%s", $tok);
-                    // We unconsume because we don't know what parser rules might
-                    // be in effect for the remaining chars. For example. '&#>'
-                    // might result in a specific parsing rule inside of tag
-                    // contexts, while not inside of pcdata context.
-                    $this->scanner->unconsume(2);
-                    return '&';
-                }
-                $entity = CharacterReference::lookupHex($hex);
-            }             // Decimal encoding.
-            // [0-9]+;
-            else {
-                // Convert from decimal to char.
-                $numeric = $this->scanner->getNumeric();
-                if ($numeric === false) {
-                    $this->parseError("Expected &#DIGITS;, got &#%s", $tok);
-                    $this->scanner->unconsume(2);
-                    return '&';
-                }
-                $entity = CharacterReference::lookupDecimal($numeric);
-            }
-        }         // String entity.
-        else {
-            // Attempt to consume a string up to a ';'.
-            // [a-zA-Z0-9]+;
-            $cname = $this->scanner->getAsciiAlpha();
-            $entity = CharacterReference::lookupName($cname);
-            if ($entity == null) {
-                $this->parseError("No match in entity table for '%s'", $entity);
-            }
-        }
-
-        // The scanner has advanced the cursor for us.
-        $tok = $this->scanner->current();
-
-        // We have an entity. We're done here.
-        if ($tok == ';') {
-            $this->scanner->next();
-            return $entity;
-        }
-
-        // If in an attribute, then failing to match ; means unconsume the
-        // entire string. Otherwise, failure to match is an error.
-        if ($inAttribute) {
-            $this->scanner->unconsume($this->scanner->position() - $start);
-            return '&';
-        }
-
-        $this->parseError("Expected &ENTITY;, got &ENTITY%s (no trailing ;) ", $tok);
-        return '&' . $entity;
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php b/core/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php
deleted file mode 100644
index 2af3c66..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-
-/**
- * Handles special-case rules for the DOM tree builder.
- *
- * Many tags have special rules that need to be accomodated on an
- * individual basis. This class handles those rules.
- *
- * See section 8.1.2.4 of the spec.
- *
- * @todo - colgroup and col special behaviors
- *       - body and head special behaviors
- */
-class TreeBuildingRules
-{
-
-    protected static $tags = array(
-        'li' => 1,
-        'dd' => 1,
-        'dt' => 1,
-        'rt' => 1,
-        'rp' => 1,
-        'tr' => 1,
-        'th' => 1,
-        'td' => 1,
-        'thead' => 1,
-        'tfoot' => 1,
-        'tbody' => 1,
-        'table' => 1,
-        'optgroup' => 1,
-        'option' => 1
-    );
-
-    /**
-     * Build a new rules engine.
-     *
-     * @param \DOMDocument $doc
-     *            The DOM document to use for evaluation and modification.
-     */
-    public function __construct($doc)
-    {
-        $this->doc = $doc;
-    }
-
-    /**
-     * Returns true if the given tagname has special processing rules.
-     */
-    public function hasRules($tagname)
-    {
-        return isset(static::$tags[$tagname]);
-    }
-
-    /**
-     * Evaluate the rule for the current tag name.
-     *
-     * This may modify the existing DOM.
-     *
-     * @return \DOMElement The new Current DOM element.
-     */
-    public function evaluate($new, $current)
-    {
-        switch ($new->tagName) {
-            case 'li':
-                return $this->handleLI($new, $current);
-            case 'dt':
-            case 'dd':
-                return $this->handleDT($new, $current);
-            case 'rt':
-            case 'rp':
-                return $this->handleRT($new, $current);
-            case 'optgroup':
-                return $this->closeIfCurrentMatches($new, $current, array(
-                    'optgroup'
-                ));
-            case 'option':
-                return $this->closeIfCurrentMatches($new, $current, array(
-                    'option',
-                    'optgroup'
-                ));
-            case 'tr':
-                return $this->closeIfCurrentMatches($new, $current, array(
-                    'tr'
-                ));
-            case 'td':
-            case 'th':
-                return $this->closeIfCurrentMatches($new, $current, array(
-                    'th',
-                    'td'
-                ));
-            case 'tbody':
-            case 'thead':
-            case 'tfoot':
-            case 'table': // Spec isn't explicit about this, but it's necessary.
-
-                return $this->closeIfCurrentMatches($new, $current, array(
-                    'thead',
-                    'tfoot',
-                    'tbody'
-                ));
-        }
-
-        return $current;
-    }
-
-    protected function handleLI($ele, $current)
-    {
-        return $this->closeIfCurrentMatches($ele, $current, array(
-            'li'
-        ));
-    }
-
-    protected function handleDT($ele, $current)
-    {
-        return $this->closeIfCurrentMatches($ele, $current, array(
-            'dt',
-            'dd'
-        ));
-    }
-
-    protected function handleRT($ele, $current)
-    {
-        return $this->closeIfCurrentMatches($ele, $current, array(
-            'rt',
-            'rp'
-        ));
-    }
-
-    protected function closeIfCurrentMatches($ele, $current, $match)
-    {
-        $tname = $current->tagName;
-        if (in_array($current->tagName, $match)) {
-            $current->parentNode->appendChild($ele);
-        } else {
-            $current->appendChild($ele);
-        }
-
-        return $ele;
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php b/core/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php
deleted file mode 100644
index d319252..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Parser;
-/*
- *
-* Portions based on code from html5lib files with the following copyright:
-
-Copyright 2009 Geoffrey Sneddon <http://gsnedders.com/>
-
-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.
-
-*/
-/**
- * UTF-8 Utilities
- */
-class UTF8Utils
-{
-
-    /**
-     * The Unicode replacement character..
-     */
-    const FFFD = "\xEF\xBF\xBD";
-
-    /**
-     * Count the number of characters in a string.
-     *
-     * UTF-8 aware. This will try (in order) iconv,
-     * MB, libxml, and finally a custom counter.
-     *
-     * @todo Move this to a general utility class.
-     */
-    public static function countChars($string)
-    {
-        // Get the length for the string we need.
-        if (function_exists('iconv_strlen')) {
-            return iconv_strlen($string, 'utf-8');
-        } elseif (function_exists('mb_strlen')) {
-            return mb_strlen($string, 'utf-8');
-        } elseif (function_exists('utf8_decode')) {
-            // MPB: Will this work? Won't certain decodes lead to two chars
-            // extrapolated out of 2-byte chars?
-            return strlen(utf8_decode($string));
-        }
-        $count = count_chars($string);
-        // 0x80 = 0x7F - 0 + 1 (one added to get inclusive range)
-        // 0x33 = 0xF4 - 0x2C + 1 (one added to get inclusive range)
-        return array_sum(array_slice($count, 0, 0x80)) + array_sum(array_slice($count, 0xC2, 0x33));
-    }
-
-    /**
-     * Convert data from the given encoding to UTF-8.
-     *
-     * This has not yet been tested with charactersets other than UTF-8.
-     * It should work with ISO-8859-1/-13 and standard Latin Win charsets.
-     *
-     * @param string $data
-     *            The data to convert.
-     * @param string $encoding
-     *            A valid encoding. Examples: http://www.php.net/manual/en/mbstring.supported-encodings.php
-     */
-    public static function convertToUTF8($data, $encoding = 'UTF-8')
-    {
-        /*
-         * From the HTML5 spec: Given an encoding, the bytes in the input stream must be converted to Unicode characters for the tokeniser, as described by the rules for that encoding, except that the leading U+FEFF BYTE ORDER MARK character, if any, must not be stripped by the encoding layer (it is stripped by the rule below). Bytes or sequences of bytes in the original byte stream that could not be converted to Unicode characters must be converted to U+FFFD REPLACEMENT CHARACTER code points.
-         */
-
-        // mb_convert_encoding is chosen over iconv because of a bug. The best
-        // details for the bug are on http://us1.php.net/manual/en/function.iconv.php#108643
-        // which contains links to the actual but reports as well as work around
-        // details.
-        if (function_exists('mb_convert_encoding')) {
-            // mb library has the following behaviors:
-            // - UTF-16 surrogates result in false.
-            // - Overlongs and outside Plane 16 result in empty strings.
-
-            // Before we run mb_convert_encoding we need to tell it what to do with
-            // characters it does not know. This could be different than the parent
-            // application executing this library so we store the value, change it
-            // to our needs, and then change it back when we are done. This feels
-            // a little excessive and it would be great if there was a better way.
-            $save = ini_get('mbstring.substitute_character');
-            ini_set('mbstring.substitute_character', "none");
-            $data = mb_convert_encoding($data, 'UTF-8', $encoding);
-            ini_set('mbstring.substitute_character', $save);
-        }        // @todo Get iconv running in at least some environments if that is possible.
-        elseif (function_exists('iconv') && $encoding != 'auto') {
-            // fprintf(STDOUT, "iconv found\n");
-            // iconv has the following behaviors:
-            // - Overlong representations are ignored.
-            // - Beyond Plane 16 is replaced with a lower char.
-            // - Incomplete sequences generate a warning.
-            $data = @iconv($encoding, 'UTF-8//IGNORE', $data);
-        } else {
-            // we can make a conforming native implementation
-            throw new Exception('Not implemented, please install mbstring or iconv');
-        }
-
-        /*
-         * One leading U+FEFF BYTE ORDER MARK character must be ignored if any are present.
-         */
-        if (substr($data, 0, 3) === "\xEF\xBB\xBF") {
-            $data = substr($data, 3);
-        }
-
-        return $data;
-    }
-
-    /**
-     * Checks for Unicode code points that are not valid in a document.
-     *
-     * @param string $data
-     *            A string to analyze.
-     * @return array An array of (string) error messages produced by the scanning.
-     */
-    public static function checkForIllegalCodepoints($data)
-    {
-        if (! function_exists('preg_match_all')) {
-            throw\Exception('The PCRE library is not loaded or is not available.');
-        }
-
-        // Vestigal error handling.
-        $errors = array();
-
-        /*
-         * All U+0000 null characters in the input must be replaced by U+FFFD REPLACEMENT CHARACTERs. Any occurrences of such characters is a parse error.
-         */
-        for ($i = 0, $count = substr_count($data, "\0"); $i < $count; $i ++) {
-            $errors[] = 'null-character';
-        }
-
-        /*
-         * Any occurrences of any characters in the ranges U+0001 to U+0008, U+000B, U+000E to U+001F, U+007F to U+009F, U+D800 to U+DFFF , U+FDD0 to U+FDEF, and characters U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, U+2FFFF, U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE, U+5FFFF, U+6FFFE, U+6FFFF, U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF, U+CFFFE, U+CFFFF, U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF, U+10FFFE, and U+10FFFF are parse errors. (These are all control characters or permanently undefined Unicode characters.)
-         */
-        // Check PCRE is loaded.
-        $count = preg_match_all(
-            '/(?:
-        [\x01-\x08\x0B\x0E-\x1F\x7F] # U+0001 to U+0008, U+000B,  U+000E to U+001F and U+007F
-      |
-        \xC2[\x80-\x9F] # U+0080 to U+009F
-      |
-        \xED(?:\xA0[\x80-\xFF]|[\xA1-\xBE][\x00-\xFF]|\xBF[\x00-\xBF]) # U+D800 to U+DFFFF
-      |
-        \xEF\xB7[\x90-\xAF] # U+FDD0 to U+FDEF
-      |
-        \xEF\xBF[\xBE\xBF] # U+FFFE and U+FFFF
-      |
-        [\xF0-\xF4][\x8F-\xBF]\xBF[\xBE\xBF] # U+nFFFE and U+nFFFF (1 <= n <= 10_{16})
-      )/x', $data, $matches);
-        for ($i = 0; $i < $count; $i ++) {
-            $errors[] = 'invalid-codepoint';
-        }
-
-        return $errors;
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php b/core/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php
deleted file mode 100644
index 4f90f84..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php
+++ /dev/null
@@ -1,1533 +0,0 @@
-<?php
-/**
- * @file
- * This contains HTML5 entities to use with serializing.
- *
- * The list here is mildly different from the list at \Masterminds\HTML5\Entities because
- * that list was generated from the w3c. It contains some entities that are
- * not entirely proper such as &am; which maps to &. This list is meant to be
- * a fallback for PHP versions prior to PHP 5.4 when dealing with encoding.
- */
-namespace Masterminds\HTML5\Serializer;
-
-/**
- * A mapping of entities to their html5 representation.
- * Used for older PHP
- * versions that don't have the mapping.
- */
-class HTML5Entities
-{
-
-    public static $map = array(
-        '	' => '&Tab;',
-        "\n" => '&NewLine;',
-        '!' => '&excl;',
-        '"' => '&quot;',
-        '#' => '&num;',
-        '$' => '&dollar;',
-        '%' => '&percnt;',
-        '&' => '&amp;',
-        '\'' => '&apos;',
-        '(' => '&lpar;',
-        ')' => '&rpar;',
-        '*' => '&ast;',
-        '+' => '&plus;',
-        ',' => '&comma;',
-        '.' => '&period;',
-        '/' => '&sol;',
-        ':' => '&colon;',
-        ';' => '&semi;',
-        '<' => '&lt;',
-        '<⃒' => '&nvlt',
-        '=' => '&equals;',
-        '=⃥' => '&bne',
-        '>' => '&gt;',
-        '>⃒' => '&nvgt',
-        '?' => '&quest;',
-        '@' => '&commat;',
-        '[' => '&lbrack;',
-        '\\' => '&bsol;',
-        ']' => '&rsqb;',
-        '^' => '&Hat;',
-        '_' => '&lowbar;',
-        '`' => '&grave;',
-        'fj' => '&fjlig',
-        '{' => '&lbrace;',
-        '|' => '&vert;',
-        '}' => '&rcub;',
-        ' ' => '&nbsp;',
-        '¡' => '&iexcl;',
-        '¢' => '&cent;',
-        '£' => '&pound;',
-        '¤' => '&curren;',
-        '¥' => '&yen;',
-        '¦' => '&brvbar;',
-        '§' => '&sect;',
-        '¨' => '&DoubleDot;',
-        '©' => '&copy;',
-        'ª' => '&ordf;',
-        '«' => '&laquo;',
-        '¬' => '&not;',
-        '­' => '&shy;',
-        '®' => '&reg;',
-        '¯' => '&macr;',
-        '°' => '&deg;',
-        '±' => '&plusmn;',
-        '²' => '&sup2;',
-        '³' => '&sup3;',
-        '´' => '&DiacriticalAcute;',
-        'µ' => '&micro;',
-        '¶' => '&para;',
-        '·' => '&CenterDot;',
-        '¸' => '&Cedilla;',
-        '¹' => '&sup1;',
-        'º' => '&ordm;',
-        '»' => '&raquo;',
-        '¼' => '&frac14;',
-        '½' => '&half;',
-        '¾' => '&frac34;',
-        '¿' => '&iquest;',
-        'À' => '&Agrave;',
-        'Á' => '&Aacute;',
-        'Â' => '&Acirc;',
-        'Ã' => '&Atilde;',
-        'Ä' => '&Auml;',
-        'Å' => '&Aring;',
-        'Æ' => '&AElig;',
-        'Ç' => '&Ccedil;',
-        'È' => '&Egrave;',
-        'É' => '&Eacute;',
-        'Ê' => '&Ecirc;',
-        'Ë' => '&Euml;',
-        'Ì' => '&Igrave;',
-        'Í' => '&Iacute;',
-        'Î' => '&Icirc;',
-        'Ï' => '&Iuml;',
-        'Ð' => '&ETH;',
-        'Ñ' => '&Ntilde;',
-        'Ò' => '&Ograve;',
-        'Ó' => '&Oacute;',
-        'Ô' => '&Ocirc;',
-        'Õ' => '&Otilde;',
-        'Ö' => '&Ouml;',
-        '×' => '&times;',
-        'Ø' => '&Oslash;',
-        'Ù' => '&Ugrave;',
-        'Ú' => '&Uacute;',
-        'Û' => '&Ucirc;',
-        'Ü' => '&Uuml;',
-        'Ý' => '&Yacute;',
-        'Þ' => '&THORN;',
-        'ß' => '&szlig;',
-        'à' => '&agrave;',
-        'á' => '&aacute;',
-        'â' => '&acirc;',
-        'ã' => '&atilde;',
-        'ä' => '&auml;',
-        'å' => '&aring;',
-        'æ' => '&aelig;',
-        'ç' => '&ccedil;',
-        'è' => '&egrave;',
-        'é' => '&eacute;',
-        'ê' => '&ecirc;',
-        'ë' => '&euml;',
-        'ì' => '&igrave;',
-        'í' => '&iacute;',
-        'î' => '&icirc;',
-        'ï' => '&iuml;',
-        'ð' => '&eth;',
-        'ñ' => '&ntilde;',
-        'ò' => '&ograve;',
-        'ó' => '&oacute;',
-        'ô' => '&ocirc;',
-        'õ' => '&otilde;',
-        'ö' => '&ouml;',
-        '÷' => '&divide;',
-        'ø' => '&oslash;',
-        'ù' => '&ugrave;',
-        'ú' => '&uacute;',
-        'û' => '&ucirc;',
-        'ü' => '&uuml;',
-        'ý' => '&yacute;',
-        'þ' => '&thorn;',
-        'ÿ' => '&yuml;',
-        'Ā' => '&Amacr;',
-        'ā' => '&amacr;',
-        'Ă' => '&Abreve;',
-        'ă' => '&abreve;',
-        'Ą' => '&Aogon;',
-        'ą' => '&aogon;',
-        'Ć' => '&Cacute;',
-        'ć' => '&cacute;',
-        'Ĉ' => '&Ccirc;',
-        'ĉ' => '&ccirc;',
-        'Ċ' => '&Cdot;',
-        'ċ' => '&cdot;',
-        'Č' => '&Ccaron;',
-        'č' => '&ccaron;',
-        'Ď' => '&Dcaron;',
-        'ď' => '&dcaron;',
-        'Đ' => '&Dstrok;',
-        'đ' => '&dstrok;',
-        'Ē' => '&Emacr;',
-        'ē' => '&emacr;',
-        'Ė' => '&Edot;',
-        'ė' => '&edot;',
-        'Ę' => '&Eogon;',
-        'ę' => '&eogon;',
-        'Ě' => '&Ecaron;',
-        'ě' => '&ecaron;',
-        'Ĝ' => '&Gcirc;',
-        'ĝ' => '&gcirc;',
-        'Ğ' => '&Gbreve;',
-        'ğ' => '&gbreve;',
-        'Ġ' => '&Gdot;',
-        'ġ' => '&gdot;',
-        'Ģ' => '&Gcedil;',
-        'Ĥ' => '&Hcirc;',
-        'ĥ' => '&hcirc;',
-        'Ħ' => '&Hstrok;',
-        'ħ' => '&hstrok;',
-        'Ĩ' => '&Itilde;',
-        'ĩ' => '&itilde;',
-        'Ī' => '&Imacr;',
-        'ī' => '&imacr;',
-        'Į' => '&Iogon;',
-        'į' => '&iogon;',
-        'İ' => '&Idot;',
-        'ı' => '&inodot;',
-        'Ĳ' => '&IJlig;',
-        'ĳ' => '&ijlig;',
-        'Ĵ' => '&Jcirc;',
-        'ĵ' => '&jcirc;',
-        'Ķ' => '&Kcedil;',
-        'ķ' => '&kcedil;',
-        'ĸ' => '&kgreen;',
-        'Ĺ' => '&Lacute;',
-        'ĺ' => '&lacute;',
-        'Ļ' => '&Lcedil;',
-        'ļ' => '&lcedil;',
-        'Ľ' => '&Lcaron;',
-        'ľ' => '&lcaron;',
-        'Ŀ' => '&Lmidot;',
-        'ŀ' => '&lmidot;',
-        'Ł' => '&Lstrok;',
-        'ł' => '&lstrok;',
-        'Ń' => '&Nacute;',
-        'ń' => '&nacute;',
-        'Ņ' => '&Ncedil;',
-        'ņ' => '&ncedil;',
-        'Ň' => '&Ncaron;',
-        'ň' => '&ncaron;',
-        'ŉ' => '&napos;',
-        'Ŋ' => '&ENG;',
-        'ŋ' => '&eng;',
-        'Ō' => '&Omacr;',
-        'ō' => '&omacr;',
-        'Ő' => '&Odblac;',
-        'ő' => '&odblac;',
-        'Œ' => '&OElig;',
-        'œ' => '&oelig;',
-        'Ŕ' => '&Racute;',
-        'ŕ' => '&racute;',
-        'Ŗ' => '&Rcedil;',
-        'ŗ' => '&rcedil;',
-        'Ř' => '&Rcaron;',
-        'ř' => '&rcaron;',
-        'Ś' => '&Sacute;',
-        'ś' => '&sacute;',
-        'Ŝ' => '&Scirc;',
-        'ŝ' => '&scirc;',
-        'Ş' => '&Scedil;',
-        'ş' => '&scedil;',
-        'Š' => '&Scaron;',
-        'š' => '&scaron;',
-        'Ţ' => '&Tcedil;',
-        'ţ' => '&tcedil;',
-        'Ť' => '&Tcaron;',
-        'ť' => '&tcaron;',
-        'Ŧ' => '&Tstrok;',
-        'ŧ' => '&tstrok;',
-        'Ũ' => '&Utilde;',
-        'ũ' => '&utilde;',
-        'Ū' => '&Umacr;',
-        'ū' => '&umacr;',
-        'Ŭ' => '&Ubreve;',
-        'ŭ' => '&ubreve;',
-        'Ů' => '&Uring;',
-        'ů' => '&uring;',
-        'Ű' => '&Udblac;',
-        'ű' => '&udblac;',
-        'Ų' => '&Uogon;',
-        'ų' => '&uogon;',
-        'Ŵ' => '&Wcirc;',
-        'ŵ' => '&wcirc;',
-        'Ŷ' => '&Ycirc;',
-        'ŷ' => '&ycirc;',
-        'Ÿ' => '&Yuml;',
-        'Ź' => '&Zacute;',
-        'ź' => '&zacute;',
-        'Ż' => '&Zdot;',
-        'ż' => '&zdot;',
-        'Ž' => '&Zcaron;',
-        'ž' => '&zcaron;',
-        'ƒ' => '&fnof;',
-        'Ƶ' => '&imped;',
-        'ǵ' => '&gacute;',
-        'ȷ' => '&jmath;',
-        'ˆ' => '&circ;',
-        'ˇ' => '&Hacek;',
-        '˘' => '&Breve;',
-        '˙' => '&dot;',
-        '˚' => '&ring;',
-        '˛' => '&ogon;',
-        '˜' => '&DiacriticalTilde;',
-        '˝' => '&DiacriticalDoubleAcute;',
-        '̑' => '&DownBreve;',
-        'Α' => '&Alpha;',
-        'Β' => '&Beta;',
-        'Γ' => '&Gamma;',
-        'Δ' => '&Delta;',
-        'Ε' => '&Epsilon;',
-        'Ζ' => '&Zeta;',
-        'Η' => '&Eta;',
-        'Θ' => '&Theta;',
-        'Ι' => '&Iota;',
-        'Κ' => '&Kappa;',
-        'Λ' => '&Lambda;',
-        'Μ' => '&Mu;',
-        'Ν' => '&Nu;',
-        'Ξ' => '&Xi;',
-        'Ο' => '&Omicron;',
-        'Π' => '&Pi;',
-        'Ρ' => '&Rho;',
-        'Σ' => '&Sigma;',
-        'Τ' => '&Tau;',
-        'Υ' => '&Upsilon;',
-        'Φ' => '&Phi;',
-        'Χ' => '&Chi;',
-        'Ψ' => '&Psi;',
-        'Ω' => '&Omega;',
-        'α' => '&alpha;',
-        'β' => '&beta;',
-        'γ' => '&gamma;',
-        'δ' => '&delta;',
-        'ε' => '&epsi;',
-        'ζ' => '&zeta;',
-        'η' => '&eta;',
-        'θ' => '&theta;',
-        'ι' => '&iota;',
-        'κ' => '&kappa;',
-        'λ' => '&lambda;',
-        'μ' => '&mu;',
-        'ν' => '&nu;',
-        'ξ' => '&xi;',
-        'ο' => '&omicron;',
-        'π' => '&pi;',
-        'ρ' => '&rho;',
-        'ς' => '&sigmav;',
-        'σ' => '&sigma;',
-        'τ' => '&tau;',
-        'υ' => '&upsi;',
-        'φ' => '&phi;',
-        'χ' => '&chi;',
-        'ψ' => '&psi;',
-        'ω' => '&omega;',
-        'ϑ' => '&thetasym;',
-        'ϒ' => '&upsih;',
-        'ϕ' => '&straightphi;',
-        'ϖ' => '&piv;',
-        'Ϝ' => '&Gammad;',
-        'ϝ' => '&gammad;',
-        'ϰ' => '&varkappa;',
-        'ϱ' => '&rhov;',
-        'ϵ' => '&straightepsilon;',
-        '϶' => '&backepsilon;',
-        'Ё' => '&IOcy;',
-        'Ђ' => '&DJcy;',
-        'Ѓ' => '&GJcy;',
-        'Є' => '&Jukcy;',
-        'Ѕ' => '&DScy;',
-        'І' => '&Iukcy;',
-        'Ї' => '&YIcy;',
-        'Ј' => '&Jsercy;',
-        'Љ' => '&LJcy;',
-        'Њ' => '&NJcy;',
-        'Ћ' => '&TSHcy;',
-        'Ќ' => '&KJcy;',
-        'Ў' => '&Ubrcy;',
-        'Џ' => '&DZcy;',
-        'А' => '&Acy;',
-        'Б' => '&Bcy;',
-        'В' => '&Vcy;',
-        'Г' => '&Gcy;',
-        'Д' => '&Dcy;',
-        'Е' => '&IEcy;',
-        'Ж' => '&ZHcy;',
-        'З' => '&Zcy;',
-        'И' => '&Icy;',
-        'Й' => '&Jcy;',
-        'К' => '&Kcy;',
-        'Л' => '&Lcy;',
-        'М' => '&Mcy;',
-        'Н' => '&Ncy;',
-        'О' => '&Ocy;',
-        'П' => '&Pcy;',
-        'Р' => '&Rcy;',
-        'С' => '&Scy;',
-        'Т' => '&Tcy;',
-        'У' => '&Ucy;',
-        'Ф' => '&Fcy;',
-        'Х' => '&KHcy;',
-        'Ц' => '&TScy;',
-        'Ч' => '&CHcy;',
-        'Ш' => '&SHcy;',
-        'Щ' => '&SHCHcy;',
-        'Ъ' => '&HARDcy;',
-        'Ы' => '&Ycy;',
-        'Ь' => '&SOFTcy;',
-        'Э' => '&Ecy;',
-        'Ю' => '&YUcy;',
-        'Я' => '&YAcy;',
-        'а' => '&acy;',
-        'б' => '&bcy;',
-        'в' => '&vcy;',
-        'г' => '&gcy;',
-        'д' => '&dcy;',
-        'е' => '&iecy;',
-        'ж' => '&zhcy;',
-        'з' => '&zcy;',
-        'и' => '&icy;',
-        'й' => '&jcy;',
-        'к' => '&kcy;',
-        'л' => '&lcy;',
-        'м' => '&mcy;',
-        'н' => '&ncy;',
-        'о' => '&ocy;',
-        'п' => '&pcy;',
-        'р' => '&rcy;',
-        'с' => '&scy;',
-        'т' => '&tcy;',
-        'у' => '&ucy;',
-        'ф' => '&fcy;',
-        'х' => '&khcy;',
-        'ц' => '&tscy;',
-        'ч' => '&chcy;',
-        'ш' => '&shcy;',
-        'щ' => '&shchcy;',
-        'ъ' => '&hardcy;',
-        'ы' => '&ycy;',
-        'ь' => '&softcy;',
-        'э' => '&ecy;',
-        'ю' => '&yucy;',
-        'я' => '&yacy;',
-        'ё' => '&iocy;',
-        'ђ' => '&djcy;',
-        'ѓ' => '&gjcy;',
-        'є' => '&jukcy;',
-        'ѕ' => '&dscy;',
-        'і' => '&iukcy;',
-        'ї' => '&yicy;',
-        'ј' => '&jsercy;',
-        'љ' => '&ljcy;',
-        'њ' => '&njcy;',
-        'ћ' => '&tshcy;',
-        'ќ' => '&kjcy;',
-        'ў' => '&ubrcy;',
-        'џ' => '&dzcy;',
-        ' ' => '&ensp;',
-        ' ' => '&emsp;',
-        ' ' => '&emsp13;',
-        ' ' => '&emsp14;',
-        ' ' => '&numsp;',
-        ' ' => '&puncsp;',
-        ' ' => '&ThinSpace;',
-        ' ' => '&hairsp;',
-        '​' => '&ZeroWidthSpace;',
-        '‌' => '&zwnj;',
-        '‍' => '&zwj;',
-        '‎' => '&lrm;',
-        '‏' => '&rlm;',
-        '‐' => '&hyphen;',
-        '–' => '&ndash;',
-        '—' => '&mdash;',
-        '―' => '&horbar;',
-        '‖' => '&Verbar;',
-        '‘' => '&OpenCurlyQuote;',
-        '’' => '&rsquo;',
-        '‚' => '&sbquo;',
-        '“' => '&OpenCurlyDoubleQuote;',
-        '”' => '&rdquo;',
-        '„' => '&bdquo;',
-        '†' => '&dagger;',
-        '‡' => '&Dagger;',
-        '•' => '&bull;',
-        '‥' => '&nldr;',
-        '…' => '&hellip;',
-        '‰' => '&permil;',
-        '‱' => '&pertenk;',
-        '′' => '&prime;',
-        '″' => '&Prime;',
-        '‴' => '&tprime;',
-        '‵' => '&backprime;',
-        '‹' => '&lsaquo;',
-        '›' => '&rsaquo;',
-        '‾' => '&oline;',
-        '⁁' => '&caret;',
-        '⁃' => '&hybull;',
-        '⁄' => '&frasl;',
-        '⁏' => '&bsemi;',
-        '⁗' => '&qprime;',
-        ' ' => '&MediumSpace;',
-        '  ' => '&ThickSpace',
-        '⁠' => '&NoBreak;',
-        '⁡' => '&af;',
-        '⁢' => '&InvisibleTimes;',
-        '⁣' => '&ic;',
-        '€' => '&euro;',
-        '⃛' => '&TripleDot;',
-        '⃜' => '&DotDot;',
-        'ℂ' => '&complexes;',
-        '℅' => '&incare;',
-        'ℊ' => '&gscr;',
-        'ℋ' => '&HilbertSpace;',
-        'ℌ' => '&Hfr;',
-        'ℍ' => '&Hopf;',
-        'ℎ' => '&planckh;',
-        'ℏ' => '&planck;',
-        'ℐ' => '&imagline;',
-        'ℑ' => '&Ifr;',
-        'ℒ' => '&lagran;',
-        'ℓ' => '&ell;',
-        'ℕ' => '&naturals;',
-        '№' => '&numero;',
-        '℗' => '&copysr;',
-        '℘' => '&wp;',
-        'ℙ' => '&primes;',
-        'ℚ' => '&rationals;',
-        'ℛ' => '&realine;',
-        'ℜ' => '&Rfr;',
-        'ℝ' => '&Ropf;',
-        '℞' => '&rx;',
-        '™' => '&trade;',
-        'ℤ' => '&Zopf;',
-        '℧' => '&mho;',
-        'ℨ' => '&Zfr;',
-        '℩' => '&iiota;',
-        'ℬ' => '&Bscr;',
-        'ℭ' => '&Cfr;',
-        'ℯ' => '&escr;',
-        'ℰ' => '&expectation;',
-        'ℱ' => '&Fouriertrf;',
-        'ℳ' => '&Mellintrf;',
-        'ℴ' => '&orderof;',
-        'ℵ' => '&aleph;',
-        'ℶ' => '&beth;',
-        'ℷ' => '&gimel;',
-        'ℸ' => '&daleth;',
-        'ⅅ' => '&CapitalDifferentialD;',
-        'ⅆ' => '&DifferentialD;',
-        'ⅇ' => '&exponentiale;',
-        'ⅈ' => '&ImaginaryI;',
-        '⅓' => '&frac13;',
-        '⅔' => '&frac23;',
-        '⅕' => '&frac15;',
-        '⅖' => '&frac25;',
-        '⅗' => '&frac35;',
-        '⅘' => '&frac45;',
-        '⅙' => '&frac16;',
-        '⅚' => '&frac56;',
-        '⅛' => '&frac18;',
-        '⅜' => '&frac38;',
-        '⅝' => '&frac58;',
-        '⅞' => '&frac78;',
-        '←' => '&larr;',
-        '↑' => '&uarr;',
-        '→' => '&srarr;',
-        '↓' => '&darr;',
-        '↔' => '&harr;',
-        '↕' => '&UpDownArrow;',
-        '↖' => '&nwarrow;',
-        '↗' => '&UpperRightArrow;',
-        '↘' => '&LowerRightArrow;',
-        '↙' => '&swarr;',
-        '↚' => '&nleftarrow;',
-        '↛' => '&nrarr;',
-        '↝' => '&rarrw;',
-        '↝̸' => '&nrarrw',
-        '↞' => '&Larr;',
-        '↟' => '&Uarr;',
-        '↠' => '&twoheadrightarrow;',
-        '↡' => '&Darr;',
-        '↢' => '&larrtl;',
-        '↣' => '&rarrtl;',
-        '↤' => '&LeftTeeArrow;',
-        '↥' => '&UpTeeArrow;',
-        '↦' => '&map;',
-        '↧' => '&DownTeeArrow;',
-        '↩' => '&larrhk;',
-        '↪' => '&rarrhk;',
-        '↫' => '&larrlp;',
-        '↬' => '&looparrowright;',
-        '↭' => '&harrw;',
-        '↮' => '&nleftrightarrow;',
-        '↰' => '&Lsh;',
-        '↱' => '&rsh;',
-        '↲' => '&ldsh;',
-        '↳' => '&rdsh;',
-        '↵' => '&crarr;',
-        '↶' => '&curvearrowleft;',
-        '↷' => '&curarr;',
-        '↺' => '&olarr;',
-        '↻' => '&orarr;',
-        '↼' => '&leftharpoonup;',
-        '↽' => '&leftharpoondown;',
-        '↾' => '&RightUpVector;',
-        '↿' => '&uharl;',
-        '⇀' => '&rharu;',
-        '⇁' => '&rhard;',
-        '⇂' => '&RightDownVector;',
-        '⇃' => '&dharl;',
-        '⇄' => '&rightleftarrows;',
-        '⇅' => '&udarr;',
-        '⇆' => '&lrarr;',
-        '⇇' => '&llarr;',
-        '⇈' => '&upuparrows;',
-        '⇉' => '&rrarr;',
-        '⇊' => '&downdownarrows;',
-        '⇋' => '&leftrightharpoons;',
-        '⇌' => '&rightleftharpoons;',
-        '⇍' => '&nLeftarrow;',
-        '⇎' => '&nhArr;',
-        '⇏' => '&nrArr;',
-        '⇐' => '&DoubleLeftArrow;',
-        '⇑' => '&DoubleUpArrow;',
-        '⇒' => '&Implies;',
-        '⇓' => '&Downarrow;',
-        '⇔' => '&hArr;',
-        '⇕' => '&Updownarrow;',
-        '⇖' => '&nwArr;',
-        '⇗' => '&neArr;',
-        '⇘' => '&seArr;',
-        '⇙' => '&swArr;',
-        '⇚' => '&lAarr;',
-        '⇛' => '&rAarr;',
-        '⇝' => '&zigrarr;',
-        '⇤' => '&LeftArrowBar;',
-        '⇥' => '&RightArrowBar;',
-        '⇵' => '&DownArrowUpArrow;',
-        '⇽' => '&loarr;',
-        '⇾' => '&roarr;',
-        '⇿' => '&hoarr;',
-        '∀' => '&forall;',
-        '∁' => '&comp;',
-        '∂' => '&part;',
-        '∂̸' => '&npart',
-        '∃' => '&Exists;',
-        '∄' => '&nexist;',
-        '∅' => '&empty;',
-        '∇' => '&nabla;',
-        '∈' => '&isinv;',
-        '∉' => '&notin;',
-        '∋' => '&ReverseElement;',
-        '∌' => '&notniva;',
-        '∏' => '&prod;',
-        '∐' => '&Coproduct;',
-        '∑' => '&sum;',
-        '−' => '&minus;',
-        '∓' => '&MinusPlus;',
-        '∔' => '&plusdo;',
-        '∖' => '&ssetmn;',
-        '∗' => '&lowast;',
-        '∘' => '&compfn;',
-        '√' => '&Sqrt;',
-        '∝' => '&prop;',
-        '∞' => '&infin;',
-        '∟' => '&angrt;',
-        '∠' => '&angle;',
-        '∠⃒' => '&nang',
-        '∡' => '&angmsd;',
-        '∢' => '&angsph;',
-        '∣' => '&mid;',
-        '∤' => '&nshortmid;',
-        '∥' => '&shortparallel;',
-        '∦' => '&nparallel;',
-        '∧' => '&and;',
-        '∨' => '&or;',
-        '∩' => '&cap;',
-        '∩︀' => '&caps',
-        '∪' => '&cup;',
-        '∪︀' => '&cups',
-        '∫' => '&Integral;',
-        '∬' => '&Int;',
-        '∭' => '&tint;',
-        '∮' => '&ContourIntegral;',
-        '∯' => '&DoubleContourIntegral;',
-        '∰' => '&Cconint;',
-        '∱' => '&cwint;',
-        '∲' => '&cwconint;',
-        '∳' => '&awconint;',
-        '∴' => '&there4;',
-        '∵' => '&Because;',
-        '∶' => '&ratio;',
-        '∷' => '&Colon;',
-        '∸' => '&minusd;',
-        '∺' => '&mDDot;',
-        '∻' => '&homtht;',
-        '∼' => '&sim;',
-        '∼⃒' => '&nvsim',
-        '∽' => '&bsim;',
-        '∽̱' => '&race',
-        '∾' => '&ac;',
-        '∾̳' => '&acE',
-        '∿' => '&acd;',
-        '≀' => '&wr;',
-        '≁' => '&NotTilde;',
-        '≂' => '&esim;',
-        '≂̸' => '&nesim',
-        '≃' => '&simeq;',
-        '≄' => '&nsime;',
-        '≅' => '&TildeFullEqual;',
-        '≆' => '&simne;',
-        '≇' => '&ncong;',
-        '≈' => '&approx;',
-        '≉' => '&napprox;',
-        '≊' => '&ape;',
-        '≋' => '&apid;',
-        '≋̸' => '&napid',
-        '≌' => '&bcong;',
-        '≍' => '&CupCap;',
-        '≍⃒' => '&nvap',
-        '≎' => '&bump;',
-        '≎̸' => '&nbump',
-        '≏' => '&HumpEqual;',
-        '≏̸' => '&nbumpe',
-        '≐' => '&esdot;',
-        '≐̸' => '&nedot',
-        '≑' => '&doteqdot;',
-        '≒' => '&fallingdotseq;',
-        '≓' => '&risingdotseq;',
-        '≔' => '&coloneq;',
-        '≕' => '&eqcolon;',
-        '≖' => '&ecir;',
-        '≗' => '&circeq;',
-        '≙' => '&wedgeq;',
-        '≚' => '&veeeq;',
-        '≜' => '&triangleq;',
-        '≟' => '&equest;',
-        '≠' => '&NotEqual;',
-        '≡' => '&Congruent;',
-        '≡⃥' => '&bnequiv',
-        '≢' => '&NotCongruent;',
-        '≤' => '&leq;',
-        '≤⃒' => '&nvle',
-        '≥' => '&ge;',
-        '≥⃒' => '&nvge',
-        '≦' => '&lE;',
-        '≦̸' => '&nlE',
-        '≧' => '&geqq;',
-        '≧̸' => '&NotGreaterFullEqual',
-        '≨' => '&lneqq;',
-        '≨︀' => '&lvertneqq',
-        '≩' => '&gneqq;',
-        '≩︀' => '&gvertneqq',
-        '≪' => '&ll;',
-        '≪̸' => '&nLtv',
-        '≪⃒' => '&nLt',
-        '≫' => '&gg;',
-        '≫̸' => '&NotGreaterGreater',
-        '≫⃒' => '&nGt',
-        '≬' => '&between;',
-        '≭' => '&NotCupCap;',
-        '≮' => '&NotLess;',
-        '≯' => '&ngtr;',
-        '≰' => '&NotLessEqual;',
-        '≱' => '&ngeq;',
-        '≲' => '&LessTilde;',
-        '≳' => '&GreaterTilde;',
-        '≴' => '&nlsim;',
-        '≵' => '&ngsim;',
-        '≶' => '&lessgtr;',
-        '≷' => '&gl;',
-        '≸' => '&ntlg;',
-        '≹' => '&NotGreaterLess;',
-        '≺' => '&prec;',
-        '≻' => '&succ;',
-        '≼' => '&PrecedesSlantEqual;',
-        '≽' => '&succcurlyeq;',
-        '≾' => '&precsim;',
-        '≿' => '&SucceedsTilde;',
-        '≿̸' => '&NotSucceedsTilde',
-        '⊀' => '&npr;',
-        '⊁' => '&NotSucceeds;',
-        '⊂' => '&sub;',
-        '⊂⃒' => '&vnsub',
-        '⊃' => '&sup;',
-        '⊃⃒' => '&nsupset',
-        '⊄' => '&nsub;',
-        '⊅' => '&nsup;',
-        '⊆' => '&SubsetEqual;',
-        '⊇' => '&supe;',
-        '⊈' => '&NotSubsetEqual;',
-        '⊉' => '&NotSupersetEqual;',
-        '⊊' => '&subsetneq;',
-        '⊊︀' => '&vsubne',
-        '⊋' => '&supsetneq;',
-        '⊋︀' => '&vsupne',
-        '⊍' => '&cupdot;',
-        '⊎' => '&UnionPlus;',
-        '⊏' => '&sqsub;',
-        '⊏̸' => '&NotSquareSubset',
-        '⊐' => '&sqsupset;',
-        '⊐̸' => '&NotSquareSuperset',
-        '⊑' => '&SquareSubsetEqual;',
-        '⊒' => '&SquareSupersetEqual;',
-        '⊓' => '&sqcap;',
-        '⊓︀' => '&sqcaps',
-        '⊔' => '&sqcup;',
-        '⊔︀' => '&sqcups',
-        '⊕' => '&CirclePlus;',
-        '⊖' => '&ominus;',
-        '⊗' => '&CircleTimes;',
-        '⊘' => '&osol;',
-        '⊙' => '&CircleDot;',
-        '⊚' => '&ocir;',
-        '⊛' => '&oast;',
-        '⊝' => '&odash;',
-        '⊞' => '&boxplus;',
-        '⊟' => '&boxminus;',
-        '⊠' => '&timesb;',
-        '⊡' => '&sdotb;',
-        '⊢' => '&vdash;',
-        '⊣' => '&dashv;',
-        '⊤' => '&DownTee;',
-        '⊥' => '&perp;',
-        '⊧' => '&models;',
-        '⊨' => '&DoubleRightTee;',
-        '⊩' => '&Vdash;',
-        '⊪' => '&Vvdash;',
-        '⊫' => '&VDash;',
-        '⊬' => '&nvdash;',
-        '⊭' => '&nvDash;',
-        '⊮' => '&nVdash;',
-        '⊯' => '&nVDash;',
-        '⊰' => '&prurel;',
-        '⊲' => '&vartriangleleft;',
-        '⊳' => '&vrtri;',
-        '⊴' => '&LeftTriangleEqual;',
-        '⊴⃒' => '&nvltrie',
-        '⊵' => '&RightTriangleEqual;',
-        '⊵⃒' => '&nvrtrie',
-        '⊶' => '&origof;',
-        '⊷' => '&imof;',
-        '⊸' => '&mumap;',
-        '⊹' => '&hercon;',
-        '⊺' => '&intcal;',
-        '⊻' => '&veebar;',
-        '⊽' => '&barvee;',
-        '⊾' => '&angrtvb;',
-        '⊿' => '&lrtri;',
-        '⋀' => '&xwedge;',
-        '⋁' => '&xvee;',
-        '⋂' => '&bigcap;',
-        '⋃' => '&bigcup;',
-        '⋄' => '&diamond;',
-        '⋅' => '&sdot;',
-        '⋆' => '&Star;',
-        '⋇' => '&divonx;',
-        '⋈' => '&bowtie;',
-        '⋉' => '&ltimes;',
-        '⋊' => '&rtimes;',
-        '⋋' => '&lthree;',
-        '⋌' => '&rthree;',
-        '⋍' => '&backsimeq;',
-        '⋎' => '&curlyvee;',
-        '⋏' => '&curlywedge;',
-        '⋐' => '&Sub;',
-        '⋑' => '&Supset;',
-        '⋒' => '&Cap;',
-        '⋓' => '&Cup;',
-        '⋔' => '&pitchfork;',
-        '⋕' => '&epar;',
-        '⋖' => '&lessdot;',
-        '⋗' => '&gtrdot;',
-        '⋘' => '&Ll;',
-        '⋘̸' => '&nLl',
-        '⋙' => '&Gg;',
-        '⋙̸' => '&nGg',
-        '⋚' => '&lesseqgtr;',
-        '⋚︀' => '&lesg',
-        '⋛' => '&gtreqless;',
-        '⋛︀' => '&gesl',
-        '⋞' => '&curlyeqprec;',
-        '⋟' => '&cuesc;',
-        '⋠' => '&NotPrecedesSlantEqual;',
-        '⋡' => '&NotSucceedsSlantEqual;',
-        '⋢' => '&NotSquareSubsetEqual;',
-        '⋣' => '&NotSquareSupersetEqual;',
-        '⋦' => '&lnsim;',
-        '⋧' => '&gnsim;',
-        '⋨' => '&precnsim;',
-        '⋩' => '&scnsim;',
-        '⋪' => '&nltri;',
-        '⋫' => '&ntriangleright;',
-        '⋬' => '&nltrie;',
-        '⋭' => '&NotRightTriangleEqual;',
-        '⋮' => '&vellip;',
-        '⋯' => '&ctdot;',
-        '⋰' => '&utdot;',
-        '⋱' => '&dtdot;',
-        '⋲' => '&disin;',
-        '⋳' => '&isinsv;',
-        '⋴' => '&isins;',
-        '⋵' => '&isindot;',
-        '⋵̸' => '&notindot',
-        '⋶' => '&notinvc;',
-        '⋷' => '&notinvb;',
-        '⋹' => '&isinE;',
-        '⋹̸' => '&notinE',
-        '⋺' => '&nisd;',
-        '⋻' => '&xnis;',
-        '⋼' => '&nis;',
-        '⋽' => '&notnivc;',
-        '⋾' => '&notnivb;',
-        '⌅' => '&barwed;',
-        '⌆' => '&doublebarwedge;',
-        '⌈' => '&lceil;',
-        '⌉' => '&RightCeiling;',
-        '⌊' => '&LeftFloor;',
-        '⌋' => '&RightFloor;',
-        '⌌' => '&drcrop;',
-        '⌍' => '&dlcrop;',
-        '⌎' => '&urcrop;',
-        '⌏' => '&ulcrop;',
-        '⌐' => '&bnot;',
-        '⌒' => '&profline;',
-        '⌓' => '&profsurf;',
-        '⌕' => '&telrec;',
-        '⌖' => '&target;',
-        '⌜' => '&ulcorner;',
-        '⌝' => '&urcorner;',
-        '⌞' => '&llcorner;',
-        '⌟' => '&drcorn;',
-        '⌢' => '&frown;',
-        '⌣' => '&smile;',
-        '⌭' => '&cylcty;',
-        '⌮' => '&profalar;',
-        '⌶' => '&topbot;',
-        '⌽' => '&ovbar;',
-        '⌿' => '&solbar;',
-        '⍼' => '&angzarr;',
-        '⎰' => '&lmoust;',
-        '⎱' => '&rmoust;',
-        '⎴' => '&OverBracket;',
-        '⎵' => '&bbrk;',
-        '⎶' => '&bbrktbrk;',
-        '⏜' => '&OverParenthesis;',
-        '⏝' => '&UnderParenthesis;',
-        '⏞' => '&OverBrace;',
-        '⏟' => '&UnderBrace;',
-        '⏢' => '&trpezium;',
-        '⏧' => '&elinters;',
-        '␣' => '&blank;',
-        'Ⓢ' => '&oS;',
-        '─' => '&HorizontalLine;',
-        '│' => '&boxv;',
-        '┌' => '&boxdr;',
-        '┐' => '&boxdl;',
-        '└' => '&boxur;',
-        '┘' => '&boxul;',
-        '├' => '&boxvr;',
-        '┤' => '&boxvl;',
-        '┬' => '&boxhd;',
-        '┴' => '&boxhu;',
-        '┼' => '&boxvh;',
-        '═' => '&boxH;',
-        '║' => '&boxV;',
-        '╒' => '&boxdR;',
-        '╓' => '&boxDr;',
-        '╔' => '&boxDR;',
-        '╕' => '&boxdL;',
-        '╖' => '&boxDl;',
-        '╗' => '&boxDL;',
-        '╘' => '&boxuR;',
-        '╙' => '&boxUr;',
-        '╚' => '&boxUR;',
-        '╛' => '&boxuL;',
-        '╜' => '&boxUl;',
-        '╝' => '&boxUL;',
-        '╞' => '&boxvR;',
-        '╟' => '&boxVr;',
-        '╠' => '&boxVR;',
-        '╡' => '&boxvL;',
-        '╢' => '&boxVl;',
-        '╣' => '&boxVL;',
-        '╤' => '&boxHd;',
-        '╥' => '&boxhD;',
-        '╦' => '&boxHD;',
-        '╧' => '&boxHu;',
-        '╨' => '&boxhU;',
-        '╩' => '&boxHU;',
-        '╪' => '&boxvH;',
-        '╫' => '&boxVh;',
-        '╬' => '&boxVH;',
-        '▀' => '&uhblk;',
-        '▄' => '&lhblk;',
-        '█' => '&block;',
-        '░' => '&blk14;',
-        '▒' => '&blk12;',
-        '▓' => '&blk34;',
-        '□' => '&Square;',
-        '▪' => '&squarf;',
-        '▫' => '&EmptyVerySmallSquare;',
-        '▭' => '&rect;',
-        '▮' => '&marker;',
-        '▱' => '&fltns;',
-        '△' => '&bigtriangleup;',
-        '▴' => '&blacktriangle;',
-        '▵' => '&triangle;',
-        '▸' => '&blacktriangleright;',
-        '▹' => '&rtri;',
-        '▽' => '&bigtriangledown;',
-        '▾' => '&blacktriangledown;',
-        '▿' => '&triangledown;',
-        '◂' => '&blacktriangleleft;',
-        '◃' => '&ltri;',
-        '◊' => '&lozenge;',
-        '○' => '&cir;',
-        '◬' => '&tridot;',
-        '◯' => '&bigcirc;',
-        '◸' => '&ultri;',
-        '◹' => '&urtri;',
-        '◺' => '&lltri;',
-        '◻' => '&EmptySmallSquare;',
-        '◼' => '&FilledSmallSquare;',
-        '★' => '&starf;',
-        '☆' => '&star;',
-        '☎' => '&phone;',
-        '♀' => '&female;',
-        '♂' => '&male;',
-        '♠' => '&spadesuit;',
-        '♣' => '&clubs;',
-        '♥' => '&hearts;',
-        '♦' => '&diamondsuit;',
-        '♪' => '&sung;',
-        '♭' => '&flat;',
-        '♮' => '&natur;',
-        '♯' => '&sharp;',
-        '✓' => '&check;',
-        '✗' => '&cross;',
-        '✠' => '&maltese;',
-        '✶' => '&sext;',
-        '❘' => '&VerticalSeparator;',
-        '❲' => '&lbbrk;',
-        '❳' => '&rbbrk;',
-        '⟈' => '&bsolhsub;',
-        '⟉' => '&suphsol;',
-        '⟦' => '&LeftDoubleBracket;',
-        '⟧' => '&RightDoubleBracket;',
-        '⟨' => '&langle;',
-        '⟩' => '&RightAngleBracket;',
-        '⟪' => '&Lang;',
-        '⟫' => '&Rang;',
-        '⟬' => '&loang;',
-        '⟭' => '&roang;',
-        '⟵' => '&longleftarrow;',
-        '⟶' => '&LongRightArrow;',
-        '⟷' => '&LongLeftRightArrow;',
-        '⟸' => '&xlArr;',
-        '⟹' => '&DoubleLongRightArrow;',
-        '⟺' => '&xhArr;',
-        '⟼' => '&xmap;',
-        '⟿' => '&dzigrarr;',
-        '⤂' => '&nvlArr;',
-        '⤃' => '&nvrArr;',
-        '⤄' => '&nvHarr;',
-        '⤅' => '&Map;',
-        '⤌' => '&lbarr;',
-        '⤍' => '&bkarow;',
-        '⤎' => '&lBarr;',
-        '⤏' => '&dbkarow;',
-        '⤐' => '&drbkarow;',
-        '⤑' => '&DDotrahd;',
-        '⤒' => '&UpArrowBar;',
-        '⤓' => '&DownArrowBar;',
-        '⤖' => '&Rarrtl;',
-        '⤙' => '&latail;',
-        '⤚' => '&ratail;',
-        '⤛' => '&lAtail;',
-        '⤜' => '&rAtail;',
-        '⤝' => '&larrfs;',
-        '⤞' => '&rarrfs;',
-        '⤟' => '&larrbfs;',
-        '⤠' => '&rarrbfs;',
-        '⤣' => '&nwarhk;',
-        '⤤' => '&nearhk;',
-        '⤥' => '&searhk;',
-        '⤦' => '&swarhk;',
-        '⤧' => '&nwnear;',
-        '⤨' => '&toea;',
-        '⤩' => '&seswar;',
-        '⤪' => '&swnwar;',
-        '⤳' => '&rarrc;',
-        '⤳̸' => '&nrarrc',
-        '⤵' => '&cudarrr;',
-        '⤶' => '&ldca;',
-        '⤷' => '&rdca;',
-        '⤸' => '&cudarrl;',
-        '⤹' => '&larrpl;',
-        '⤼' => '&curarrm;',
-        '⤽' => '&cularrp;',
-        '⥅' => '&rarrpl;',
-        '⥈' => '&harrcir;',
-        '⥉' => '&Uarrocir;',
-        '⥊' => '&lurdshar;',
-        '⥋' => '&ldrushar;',
-        '⥎' => '&LeftRightVector;',
-        '⥏' => '&RightUpDownVector;',
-        '⥐' => '&DownLeftRightVector;',
-        '⥑' => '&LeftUpDownVector;',
-        '⥒' => '&LeftVectorBar;',
-        '⥓' => '&RightVectorBar;',
-        '⥔' => '&RightUpVectorBar;',
-        '⥕' => '&RightDownVectorBar;',
-        '⥖' => '&DownLeftVectorBar;',
-        '⥗' => '&DownRightVectorBar;',
-        '⥘' => '&LeftUpVectorBar;',
-        '⥙' => '&LeftDownVectorBar;',
-        '⥚' => '&LeftTeeVector;',
-        '⥛' => '&RightTeeVector;',
-        '⥜' => '&RightUpTeeVector;',
-        '⥝' => '&RightDownTeeVector;',
-        '⥞' => '&DownLeftTeeVector;',
-        '⥟' => '&DownRightTeeVector;',
-        '⥠' => '&LeftUpTeeVector;',
-        '⥡' => '&LeftDownTeeVector;',
-        '⥢' => '&lHar;',
-        '⥣' => '&uHar;',
-        '⥤' => '&rHar;',
-        '⥥' => '&dHar;',
-        '⥦' => '&luruhar;',
-        '⥧' => '&ldrdhar;',
-        '⥨' => '&ruluhar;',
-        '⥩' => '&rdldhar;',
-        '⥪' => '&lharul;',
-        '⥫' => '&llhard;',
-        '⥬' => '&rharul;',
-        '⥭' => '&lrhard;',
-        '⥮' => '&udhar;',
-        '⥯' => '&ReverseUpEquilibrium;',
-        '⥰' => '&RoundImplies;',
-        '⥱' => '&erarr;',
-        '⥲' => '&simrarr;',
-        '⥳' => '&larrsim;',
-        '⥴' => '&rarrsim;',
-        '⥵' => '&rarrap;',
-        '⥶' => '&ltlarr;',
-        '⥸' => '&gtrarr;',
-        '⥹' => '&subrarr;',
-        '⥻' => '&suplarr;',
-        '⥼' => '&lfisht;',
-        '⥽' => '&rfisht;',
-        '⥾' => '&ufisht;',
-        '⥿' => '&dfisht;',
-        '⦅' => '&lopar;',
-        '⦆' => '&ropar;',
-        '⦋' => '&lbrke;',
-        '⦌' => '&rbrke;',
-        '⦍' => '&lbrkslu;',
-        '⦎' => '&rbrksld;',
-        '⦏' => '&lbrksld;',
-        '⦐' => '&rbrkslu;',
-        '⦑' => '&langd;',
-        '⦒' => '&rangd;',
-        '⦓' => '&lparlt;',
-        '⦔' => '&rpargt;',
-        '⦕' => '&gtlPar;',
-        '⦖' => '&ltrPar;',
-        '⦚' => '&vzigzag;',
-        '⦜' => '&vangrt;',
-        '⦝' => '&angrtvbd;',
-        '⦤' => '&ange;',
-        '⦥' => '&range;',
-        '⦦' => '&dwangle;',
-        '⦧' => '&uwangle;',
-        '⦨' => '&angmsdaa;',
-        '⦩' => '&angmsdab;',
-        '⦪' => '&angmsdac;',
-        '⦫' => '&angmsdad;',
-        '⦬' => '&angmsdae;',
-        '⦭' => '&angmsdaf;',
-        '⦮' => '&angmsdag;',
-        '⦯' => '&angmsdah;',
-        '⦰' => '&bemptyv;',
-        '⦱' => '&demptyv;',
-        '⦲' => '&cemptyv;',
-        '⦳' => '&raemptyv;',
-        '⦴' => '&laemptyv;',
-        '⦵' => '&ohbar;',
-        '⦶' => '&omid;',
-        '⦷' => '&opar;',
-        '⦹' => '&operp;',
-        '⦻' => '&olcross;',
-        '⦼' => '&odsold;',
-        '⦾' => '&olcir;',
-        '⦿' => '&ofcir;',
-        '⧀' => '&olt;',
-        '⧁' => '&ogt;',
-        '⧂' => '&cirscir;',
-        '⧃' => '&cirE;',
-        '⧄' => '&solb;',
-        '⧅' => '&bsolb;',
-        '⧉' => '&boxbox;',
-        '⧍' => '&trisb;',
-        '⧎' => '&rtriltri;',
-        '⧏' => '&LeftTriangleBar;',
-        '⧏̸' => '&NotLeftTriangleBar',
-        '⧐' => '&RightTriangleBar;',
-        '⧐̸' => '&NotRightTriangleBar',
-        '⧜' => '&iinfin;',
-        '⧝' => '&infintie;',
-        '⧞' => '&nvinfin;',
-        '⧣' => '&eparsl;',
-        '⧤' => '&smeparsl;',
-        '⧥' => '&eqvparsl;',
-        '⧫' => '&lozf;',
-        '⧴' => '&RuleDelayed;',
-        '⧶' => '&dsol;',
-        '⨀' => '&xodot;',
-        '⨁' => '&bigoplus;',
-        '⨂' => '&bigotimes;',
-        '⨄' => '&biguplus;',
-        '⨆' => '&bigsqcup;',
-        '⨌' => '&iiiint;',
-        '⨍' => '&fpartint;',
-        '⨐' => '&cirfnint;',
-        '⨑' => '&awint;',
-        '⨒' => '&rppolint;',
-        '⨓' => '&scpolint;',
-        '⨔' => '&npolint;',
-        '⨕' => '&pointint;',
-        '⨖' => '&quatint;',
-        '⨗' => '&intlarhk;',
-        '⨢' => '&pluscir;',
-        '⨣' => '&plusacir;',
-        '⨤' => '&simplus;',
-        '⨥' => '&plusdu;',
-        '⨦' => '&plussim;',
-        '⨧' => '&plustwo;',
-        '⨩' => '&mcomma;',
-        '⨪' => '&minusdu;',
-        '⨭' => '&loplus;',
-        '⨮' => '&roplus;',
-        '⨯' => '&Cross;',
-        '⨰' => '&timesd;',
-        '⨱' => '&timesbar;',
-        '⨳' => '&smashp;',
-        '⨴' => '&lotimes;',
-        '⨵' => '&rotimes;',
-        '⨶' => '&otimesas;',
-        '⨷' => '&Otimes;',
-        '⨸' => '&odiv;',
-        '⨹' => '&triplus;',
-        '⨺' => '&triminus;',
-        '⨻' => '&tritime;',
-        '⨼' => '&iprod;',
-        '⨿' => '&amalg;',
-        '⩀' => '&capdot;',
-        '⩂' => '&ncup;',
-        '⩃' => '&ncap;',
-        '⩄' => '&capand;',
-        '⩅' => '&cupor;',
-        '⩆' => '&cupcap;',
-        '⩇' => '&capcup;',
-        '⩈' => '&cupbrcap;',
-        '⩉' => '&capbrcup;',
-        '⩊' => '&cupcup;',
-        '⩋' => '&capcap;',
-        '⩌' => '&ccups;',
-        '⩍' => '&ccaps;',
-        '⩐' => '&ccupssm;',
-        '⩓' => '&And;',
-        '⩔' => '&Or;',
-        '⩕' => '&andand;',
-        '⩖' => '&oror;',
-        '⩗' => '&orslope;',
-        '⩘' => '&andslope;',
-        '⩚' => '&andv;',
-        '⩛' => '&orv;',
-        '⩜' => '&andd;',
-        '⩝' => '&ord;',
-        '⩟' => '&wedbar;',
-        '⩦' => '&sdote;',
-        '⩪' => '&simdot;',
-        '⩭' => '&congdot;',
-        '⩭̸' => '&ncongdot',
-        '⩮' => '&easter;',
-        '⩯' => '&apacir;',
-        '⩰' => '&apE;',
-        '⩰̸' => '&napE',
-        '⩱' => '&eplus;',
-        '⩲' => '&pluse;',
-        '⩳' => '&Esim;',
-        '⩴' => '&Colone;',
-        '⩵' => '&Equal;',
-        '⩷' => '&ddotseq;',
-        '⩸' => '&equivDD;',
-        '⩹' => '&ltcir;',
-        '⩺' => '&gtcir;',
-        '⩻' => '&ltquest;',
-        '⩼' => '&gtquest;',
-        '⩽' => '&les;',
-        '⩽̸' => '&nles',
-        '⩾' => '&ges;',
-        '⩾̸' => '&nges',
-        '⩿' => '&lesdot;',
-        '⪀' => '&gesdot;',
-        '⪁' => '&lesdoto;',
-        '⪂' => '&gesdoto;',
-        '⪃' => '&lesdotor;',
-        '⪄' => '&gesdotol;',
-        '⪅' => '&lap;',
-        '⪆' => '&gap;',
-        '⪇' => '&lne;',
-        '⪈' => '&gne;',
-        '⪉' => '&lnap;',
-        '⪊' => '&gnap;',
-        '⪋' => '&lesseqqgtr;',
-        '⪌' => '&gEl;',
-        '⪍' => '&lsime;',
-        '⪎' => '&gsime;',
-        '⪏' => '&lsimg;',
-        '⪐' => '&gsiml;',
-        '⪑' => '&lgE;',
-        '⪒' => '&glE;',
-        '⪓' => '&lesges;',
-        '⪔' => '&gesles;',
-        '⪕' => '&els;',
-        '⪖' => '&egs;',
-        '⪗' => '&elsdot;',
-        '⪘' => '&egsdot;',
-        '⪙' => '&el;',
-        '⪚' => '&eg;',
-        '⪝' => '&siml;',
-        '⪞' => '&simg;',
-        '⪟' => '&simlE;',
-        '⪠' => '&simgE;',
-        '⪡' => '&LessLess;',
-        '⪡̸' => '&NotNestedLessLess',
-        '⪢' => '&GreaterGreater;',
-        '⪢̸' => '&NotNestedGreaterGreater',
-        '⪤' => '&glj;',
-        '⪥' => '&gla;',
-        '⪦' => '&ltcc;',
-        '⪧' => '&gtcc;',
-        '⪨' => '&lescc;',
-        '⪩' => '&gescc;',
-        '⪪' => '&smt;',
-        '⪫' => '&lat;',
-        '⪬' => '&smte;',
-        '⪬︀' => '&smtes',
-        '⪭' => '&late;',
-        '⪭︀' => '&lates',
-        '⪮' => '&bumpE;',
-        '⪯' => '&preceq;',
-        '⪯̸' => '&NotPrecedesEqual',
-        '⪰' => '&SucceedsEqual;',
-        '⪰̸' => '&NotSucceedsEqual',
-        '⪳' => '&prE;',
-        '⪴' => '&scE;',
-        '⪵' => '&precneqq;',
-        '⪶' => '&scnE;',
-        '⪷' => '&precapprox;',
-        '⪸' => '&succapprox;',
-        '⪹' => '&precnapprox;',
-        '⪺' => '&succnapprox;',
-        '⪻' => '&Pr;',
-        '⪼' => '&Sc;',
-        '⪽' => '&subdot;',
-        '⪾' => '&supdot;',
-        '⪿' => '&subplus;',
-        '⫀' => '&supplus;',
-        '⫁' => '&submult;',
-        '⫂' => '&supmult;',
-        '⫃' => '&subedot;',
-        '⫄' => '&supedot;',
-        '⫅' => '&subE;',
-        '⫅̸' => '&nsubE',
-        '⫆' => '&supseteqq;',
-        '⫆̸' => '&nsupseteqq',
-        '⫇' => '&subsim;',
-        '⫈' => '&supsim;',
-        '⫋' => '&subsetneqq;',
-        '⫋︀' => '&vsubnE',
-        '⫌' => '&supnE;',
-        '⫌︀' => '&varsupsetneqq',
-        '⫏' => '&csub;',
-        '⫐' => '&csup;',
-        '⫑' => '&csube;',
-        '⫒' => '&csupe;',
-        '⫓' => '&subsup;',
-        '⫔' => '&supsub;',
-        '⫕' => '&subsub;',
-        '⫖' => '&supsup;',
-        '⫗' => '&suphsub;',
-        '⫘' => '&supdsub;',
-        '⫙' => '&forkv;',
-        '⫚' => '&topfork;',
-        '⫛' => '&mlcp;',
-        '⫤' => '&Dashv;',
-        '⫦' => '&Vdashl;',
-        '⫧' => '&Barv;',
-        '⫨' => '&vBar;',
-        '⫩' => '&vBarv;',
-        '⫫' => '&Vbar;',
-        '⫬' => '&Not;',
-        '⫭' => '&bNot;',
-        '⫮' => '&rnmid;',
-        '⫯' => '&cirmid;',
-        '⫰' => '&midcir;',
-        '⫱' => '&topcir;',
-        '⫲' => '&nhpar;',
-        '⫳' => '&parsim;',
-        '⫽︀' => '&varsupsetneqq',
-        'ﬀ' => '&fflig;',
-        'ﬁ' => '&filig;',
-        'ﬂ' => '&fllig;',
-        'ﬃ' => '&ffilig;',
-        'ﬄ' => '&ffllig;',
-        '𝒜' => '&Ascr;',
-        '𝒞' => '&Cscr;',
-        '𝒟' => '&Dscr;',
-        '𝒢' => '&Gscr;',
-        '𝒥' => '&Jscr;',
-        '𝒦' => '&Kscr;',
-        '𝒩' => '&Nscr;',
-        '𝒪' => '&Oscr;',
-        '𝒫' => '&Pscr;',
-        '𝒬' => '&Qscr;',
-        '𝒮' => '&Sscr;',
-        '𝒯' => '&Tscr;',
-        '𝒰' => '&Uscr;',
-        '𝒱' => '&Vscr;',
-        '𝒲' => '&Wscr;',
-        '𝒳' => '&Xscr;',
-        '𝒴' => '&Yscr;',
-        '𝒵' => '&Zscr;',
-        '𝒶' => '&ascr;',
-        '𝒷' => '&bscr;',
-        '𝒸' => '&cscr;',
-        '𝒹' => '&dscr;',
-        '𝒻' => '&fscr;',
-        '𝒽' => '&hscr;',
-        '𝒾' => '&iscr;',
-        '𝒿' => '&jscr;',
-        '𝓀' => '&kscr;',
-        '𝓁' => '&lscr;',
-        '𝓂' => '&mscr;',
-        '𝓃' => '&nscr;',
-        '𝓅' => '&pscr;',
-        '𝓆' => '&qscr;',
-        '𝓇' => '&rscr;',
-        '𝓈' => '&sscr;',
-        '𝓉' => '&tscr;',
-        '𝓊' => '&uscr;',
-        '𝓋' => '&vscr;',
-        '𝓌' => '&wscr;',
-        '𝓍' => '&xscr;',
-        '𝓎' => '&yscr;',
-        '𝓏' => '&zscr;',
-        '𝔄' => '&Afr;',
-        '𝔅' => '&Bfr;',
-        '𝔇' => '&Dfr;',
-        '𝔈' => '&Efr;',
-        '𝔉' => '&Ffr;',
-        '𝔊' => '&Gfr;',
-        '𝔍' => '&Jfr;',
-        '𝔎' => '&Kfr;',
-        '𝔏' => '&Lfr;',
-        '𝔐' => '&Mfr;',
-        '𝔑' => '&Nfr;',
-        '𝔒' => '&Ofr;',
-        '𝔓' => '&Pfr;',
-        '𝔔' => '&Qfr;',
-        '𝔖' => '&Sfr;',
-        '𝔗' => '&Tfr;',
-        '𝔘' => '&Ufr;',
-        '𝔙' => '&Vfr;',
-        '𝔚' => '&Wfr;',
-        '𝔛' => '&Xfr;',
-        '𝔜' => '&Yfr;',
-        '𝔞' => '&afr;',
-        '𝔟' => '&bfr;',
-        '𝔠' => '&cfr;',
-        '𝔡' => '&dfr;',
-        '𝔢' => '&efr;',
-        '𝔣' => '&ffr;',
-        '𝔤' => '&gfr;',
-        '𝔥' => '&hfr;',
-        '𝔦' => '&ifr;',
-        '𝔧' => '&jfr;',
-        '𝔨' => '&kfr;',
-        '𝔩' => '&lfr;',
-        '𝔪' => '&mfr;',
-        '𝔫' => '&nfr;',
-        '𝔬' => '&ofr;',
-        '𝔭' => '&pfr;',
-        '𝔮' => '&qfr;',
-        '𝔯' => '&rfr;',
-        '𝔰' => '&sfr;',
-        '𝔱' => '&tfr;',
-        '𝔲' => '&ufr;',
-        '𝔳' => '&vfr;',
-        '𝔴' => '&wfr;',
-        '𝔵' => '&xfr;',
-        '𝔶' => '&yfr;',
-        '𝔷' => '&zfr;',
-        '𝔸' => '&Aopf;',
-        '𝔹' => '&Bopf;',
-        '𝔻' => '&Dopf;',
-        '𝔼' => '&Eopf;',
-        '𝔽' => '&Fopf;',
-        '𝔾' => '&Gopf;',
-        '𝕀' => '&Iopf;',
-        '𝕁' => '&Jopf;',
-        '𝕂' => '&Kopf;',
-        '𝕃' => '&Lopf;',
-        '𝕄' => '&Mopf;',
-        '𝕆' => '&Oopf;',
-        '𝕊' => '&Sopf;',
-        '𝕋' => '&Topf;',
-        '𝕌' => '&Uopf;',
-        '𝕍' => '&Vopf;',
-        '𝕎' => '&Wopf;',
-        '𝕏' => '&Xopf;',
-        '𝕐' => '&Yopf;',
-        '𝕒' => '&aopf;',
-        '𝕓' => '&bopf;',
-        '𝕔' => '&copf;',
-        '𝕕' => '&dopf;',
-        '𝕖' => '&eopf;',
-        '𝕗' => '&fopf;',
-        '𝕘' => '&gopf;',
-        '𝕙' => '&hopf;',
-        '𝕚' => '&iopf;',
-        '𝕛' => '&jopf;',
-        '𝕜' => '&kopf;',
-        '𝕝' => '&lopf;',
-        '𝕞' => '&mopf;',
-        '𝕟' => '&nopf;',
-        '𝕠' => '&oopf;',
-        '𝕡' => '&popf;',
-        '𝕢' => '&qopf;',
-        '𝕣' => '&ropf;',
-        '𝕤' => '&sopf;',
-        '𝕥' => '&topf;',
-        '𝕦' => '&uopf;',
-        '𝕧' => '&vopf;',
-        '𝕨' => '&wopf;',
-        '𝕩' => '&xopf;',
-        '𝕪' => '&yopf;',
-        '𝕫' => '&zopf;'
-    );
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php b/core/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php
deleted file mode 100644
index c009698..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php
+++ /dev/null
@@ -1,481 +0,0 @@
-<?php
-/**
- * @file
- * The rules for generating output in the serializer.
- *
- * These output rules are likely to generate output similar to the document that
- * was parsed. It is not intended to output exactly the document that was parsed.
- */
-namespace Masterminds\HTML5\Serializer;
-
-use Masterminds\HTML5\Elements;
-
-/**
- * Generate the output html5 based on element rules.
- */
-class OutputRules implements \Masterminds\HTML5\Serializer\RulesInterface
-{
-    /**
-     * Defined in http://www.w3.org/TR/html51/infrastructure.html#html-namespace-0
-     */
-    const NAMESPACE_HTML = 'http://www.w3.org/1999/xhtml';
-
-    const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';
-
-    const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';
-
-    const NAMESPACE_XLINK = 'http://www.w3.org/1999/xlink';
-
-    const NAMESPACE_XML = 'http://www.w3.org/XML/1998/namespace';
-
-    const NAMESPACE_XMLNS = 'http://www.w3.org/2000/xmlns/';
-
-    /**
-     * Holds the HTML5 element names that causes a namespace switch
-     *
-     * @var array
-     */
-    protected $implicitNamespaces = array(
-        self::NAMESPACE_HTML,
-        self::NAMESPACE_SVG,
-        self::NAMESPACE_MATHML,
-        self::NAMESPACE_XML,
-        self::NAMESPACE_XMLNS,
-    );
-
-    const IM_IN_HTML = 1;
-
-    const IM_IN_SVG = 2;
-
-    const IM_IN_MATHML = 3;
-
-    /**
-     * Used as cache to detect if is available ENT_HTML5
-     * @var boolean
-     */
-    private $hasHTML5 = false;
-
-    protected $traverser;
-
-    protected $encode = false;
-
-    protected $out;
-
-    protected $outputMode;
-
-    private $xpath;
-
-    protected $nonBooleanAttributes = array(
-        /*
-        array(
-            'nodeNamespace'=>'http://www.w3.org/1999/xhtml',
-            'attrNamespace'=>'http://www.w3.org/1999/xhtml',
-
-            'nodeName'=>'img', 'nodeName'=>array('img', 'a'),
-            'attrName'=>'alt', 'attrName'=>array('title', 'alt'),
-
-
-            'prefixes'=>['xh'=>'http://www.w3.org/1999/xhtml'),
-            'xpath' => "@checked[../../xh:input[@type='radio' or @type='checkbox']]",
-        ),
-        */
-        array(
-            'nodeNamespace'=>'http://www.w3.org/1999/xhtml',
-            'attrName'=>array('alt', 'title'),
-        ),
-
-    );
-
-    const DOCTYPE = '<!DOCTYPE html>';
-
-    public function __construct($output, $options = array())
-    {
-        if (isset($options['encode_entities'])) {
-            $this->encode = $options['encode_entities'];
-        }
-
-        $this->outputMode = static::IM_IN_HTML;
-        $this->out = $output;
-
-        // If HHVM, see https://github.com/facebook/hhvm/issues/2727
-        $this->hasHTML5 = defined('ENT_HTML5') && !defined('HHVM_VERSION');
-    }
-    public function addRule(array $rule)
-    {
-        $this->nonBooleanAttributes[] = $rule;
-    }
-
-    public function setTraverser(\Masterminds\HTML5\Serializer\Traverser $traverser)
-    {
-        $this->traverser = $traverser;
-
-        return $this;
-    }
-
-    public function document($dom)
-    {
-        $this->doctype();
-        if ($dom->documentElement) {
-            $this->traverser->node($dom->documentElement);
-            $this->nl();
-        }
-    }
-
-    protected function doctype()
-    {
-        $this->wr(static::DOCTYPE);
-        $this->nl();
-    }
-
-    public function element($ele)
-    {
-        $name = $ele->tagName;
-
-        // Per spec:
-        // If the element has a declared namespace in the HTML, MathML or
-        // SVG namespaces, we use the lname instead of the tagName.
-        if ($this->traverser->isLocalElement($ele)) {
-            $name = $ele->localName;
-        }
-
-        // If we are in SVG or MathML there is special handling.
-        // Using if/elseif instead of switch because it's faster in PHP.
-        if ($name == 'svg') {
-            $this->outputMode = static::IM_IN_SVG;
-            $name = Elements::normalizeSvgElement($name);
-        } elseif ($name == 'math') {
-            $this->outputMode = static::IM_IN_MATHML;
-        }
-
-        $this->openTag($ele);
-        if (Elements::isA($name, Elements::TEXT_RAW)) {
-            foreach ($ele->childNodes as $child) {
-                $this->wr($child->data);
-            }
-        } else {
-            // Handle children.
-            if ($ele->hasChildNodes()) {
-                $this->traverser->children($ele->childNodes);
-            }
-
-            // Close out the SVG or MathML special handling.
-            if ($name == 'svg' || $name == 'math') {
-                $this->outputMode = static::IM_IN_HTML;
-            }
-        }
-
-        // If not unary, add a closing tag.
-        if (! Elements::isA($name, Elements::VOID_TAG)) {
-            $this->closeTag($ele);
-        }
-    }
-
-    /**
-     * Write a text node.
-     *
-     * @param \DOMText $ele
-     *            The text node to write.
-     */
-    public function text($ele)
-    {
-        if (isset($ele->parentNode) && isset($ele->parentNode->tagName) && Elements::isA($ele->parentNode->localName, Elements::TEXT_RAW)) {
-            $this->wr($ele->data);
-            return;
-        }
-
-        // FIXME: This probably needs some flags set.
-        $this->wr($this->enc($ele->data));
-    }
-
-    public function cdata($ele)
-    {
-        // This encodes CDATA.
-        $this->wr($ele->ownerDocument->saveXML($ele));
-    }
-
-    public function comment($ele)
-    {
-        // These produce identical output.
-        // $this->wr('<!--')->wr($ele->data)->wr('-->');
-        $this->wr($ele->ownerDocument->saveXML($ele));
-    }
-
-    public function processorInstruction($ele)
-    {
-        $this->wr('<?')
-            ->wr($ele->target)
-            ->wr(' ')
-            ->wr($ele->data)
-            ->wr('?>');
-    }
-    /**
-     * Write the namespace attributes
-     *
-     *
-     * @param \DOMNode $ele
-     *            The element being written.
-     */
-    protected function namespaceAttrs($ele)
-    {
-        if (!$this->xpath || $this->xpath->document !== $ele->ownerDocument){
-            $this->xpath = new \DOMXPath($ele->ownerDocument);
-        }
-
-        foreach( $this->xpath->query('namespace::*[not(.=../../namespace::*)]', $ele ) as $nsNode ) {
-            if (!in_array($nsNode->nodeValue, $this->implicitNamespaces)) {
-                $this->wr(' ')->wr($nsNode->nodeName)->wr('="')->wr($nsNode->nodeValue)->wr('"');
-            }
-        }
-    }
-
-    /**
-     * Write the opening tag.
-     *
-     * Tags for HTML, MathML, and SVG are in the local name. Otherwise, use the
-     * qualified name (8.3).
-     *
-     * @param \DOMNode $ele
-     *            The element being written.
-     */
-    protected function openTag($ele)
-    {
-        $this->wr('<')->wr($this->traverser->isLocalElement($ele) ? $ele->localName : $ele->tagName);
-
-
-        $this->attrs($ele);
-        $this->namespaceAttrs($ele);
-
-
-        if ($this->outputMode == static::IM_IN_HTML) {
-            $this->wr('>');
-        }         // If we are not in html mode we are in SVG, MathML, or XML embedded content.
-        else {
-            if ($ele->hasChildNodes()) {
-                $this->wr('>');
-            }             // If there are no children this is self closing.
-            else {
-                $this->wr(' />');
-            }
-        }
-    }
-
-    protected function attrs($ele)
-    {
-        // FIXME: Needs support for xml, xmlns, xlink, and namespaced elements.
-        if (! $ele->hasAttributes()) {
-            return $this;
-        }
-
-        // TODO: Currently, this always writes name="value", and does not do
-        // value-less attributes.
-        $map = $ele->attributes;
-        $len = $map->length;
-        for ($i = 0; $i < $len; ++ $i) {
-            $node = $map->item($i);
-            $val = $this->enc($node->value, true);
-
-            // XXX: The spec says that we need to ensure that anything in
-            // the XML, XMLNS, or XLink NS's should use the canonical
-            // prefix. It seems that DOM does this for us already, but there
-            // may be exceptions.
-            $name = $node->name;
-
-            // Special handling for attributes in SVG and MathML.
-            // Using if/elseif instead of switch because it's faster in PHP.
-            if ($this->outputMode == static::IM_IN_SVG) {
-                $name = Elements::normalizeSvgAttribute($name);
-            } elseif ($this->outputMode == static::IM_IN_MATHML) {
-                $name = Elements::normalizeMathMlAttribute($name);
-            }
-
-            $this->wr(' ')->wr($name);
-
-            if ((isset($val) && $val !== '') || $this->nonBooleanAttribute($node)) {
-                $this->wr('="')->wr($val)->wr('"');
-            }
-        }
-    }
-
-
-    protected function nonBooleanAttribute(\DOMAttr $attr)
-    {
-        $ele = $attr->ownerElement;
-        foreach($this->nonBooleanAttributes as $rule){
-
-            if(isset($rule['nodeNamespace']) && $rule['nodeNamespace']!==$ele->namespaceURI){
-                continue;
-            }
-            if(isset($rule['attNamespace']) && $rule['attNamespace']!==$attr->namespaceURI){
-                continue;
-            }
-            if(isset($rule['nodeName']) && !is_array($rule['nodeName']) && $rule['nodeName']!==$ele->localName){
-                continue;
-            }
-            if(isset($rule['nodeName']) && is_array($rule['nodeName']) && !in_array($ele->localName, $rule['nodeName'], true)){
-                continue;
-            }
-            if(isset($rule['attrName']) && !is_array($rule['attrName']) && $rule['attrName']!==$attr->localName){
-                continue;
-            }
-            if(isset($rule['attrName']) && is_array($rule['attrName']) && !in_array($attr->localName, $rule['attrName'], true)){
-                continue;
-            }
-            if(isset($rule['xpath'])){
-
-                $xp = $this->getXPath($attr);
-                if(isset($rule['prefixes'])){
-                    foreach($rule['prefixes'] as $nsPrefix => $ns){
-                        $xp->registerNamespace($nsPrefix, $ns);
-                    }
-                }
-                if(!$xp->query($rule['xpath'], $attr->ownerElement)->length){
-                    continue;
-                }
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    private function getXPath(\DOMNode $node){
-        if(!$this->xpath){
-            $this->xpath = new \DOMXPath($node->ownerDocument);
-        }
-        return $this->xpath;
-    }
-
-    /**
-     * Write the closing tag.
-     *
-     * Tags for HTML, MathML, and SVG are in the local name. Otherwise, use the
-     * qualified name (8.3).
-     *
-     * @param \DOMNode $ele
-     *            The element being written.
-     */
-    protected function closeTag($ele)
-    {
-        if ($this->outputMode == static::IM_IN_HTML || $ele->hasChildNodes()) {
-            $this->wr('</')->wr($this->traverser->isLocalElement($ele) ? $ele->localName : $ele->tagName)->wr('>');
-        }
-    }
-
-    /**
-     * Write to the output.
-     *
-     * @param string $text
-     *            The string to put into the output.
-     *
-     * @return \Masterminds\HTML5\Serializer\Traverser $this so it can be used in chaining.
-     */
-    protected function wr($text)
-    {
-        fwrite($this->out, $text);
-        return $this;
-    }
-
-    /**
-     * Write a new line character.
-     *
-     * @return \Masterminds\HTML5\Serializer\Traverser $this so it can be used in chaining.
-     */
-    protected function nl()
-    {
-        fwrite($this->out, PHP_EOL);
-        return $this;
-    }
-
-    /**
-     * Encode text.
-     *
-     * When encode is set to false, the default value, the text passed in is
-     * escaped per section 8.3 of the html5 spec. For details on how text is
-     * escaped see the escape() method.
-     *
-     * When encoding is set to true the text is converted to named character
-     * references where appropriate. Section 8.1.4 Character references of the
-     * html5 spec refers to using named character references. This is useful for
-     * characters that can't otherwise legally be used in the text.
-     *
-     * The named character references are listed in section 8.5.
-     *
-     * @see http://www.w3.org/TR/2013/CR-html5-20130806/syntax.html#named-character-references True encoding will turn all named character references into their entities.
-     *      This includes such characters as +.# and many other common ones. By default
-     *      encoding here will just escape &'<>".
-     *
-     *      Note, PHP 5.4+ has better html5 encoding.
-     *
-     * @todo Use the Entities class in php 5.3 to have html5 entities.
-     *
-     * @param string $text
-     *            text to encode.
-     * @param boolean $attribute
-     *            True if we are encoding an attrubute, false otherwise
-     *
-     * @return string The encoded text.
-     */
-    protected function enc($text, $attribute = false)
-    {
-
-        // Escape the text rather than convert to named character references.
-        if (! $this->encode) {
-            return $this->escape($text, $attribute);
-        }
-
-        // If we are in PHP 5.4+ we can use the native html5 entity functionality to
-        // convert the named character references.
-
-        if ($this->hasHTML5) {
-            return htmlentities($text, ENT_HTML5 | ENT_SUBSTITUTE | ENT_QUOTES, 'UTF-8', false);
-        }         // If a version earlier than 5.4 html5 entities are not entirely handled.
-        // This manually handles them.
-        else {
-            return strtr($text, \Masterminds\HTML5\Serializer\HTML5Entities::$map);
-        }
-    }
-
-    /**
-     * Escape test.
-     *
-     * According to the html5 spec section 8.3 Serializing HTML fragments, text
-     * within tags that are not style, script, xmp, iframe, noembed, and noframes
-     * need to be properly escaped.
-     *
-     * The & should be converted to &amp;, no breaking space unicode characters
-     * converted to &nbsp;, when in attribute mode the " should be converted to
-     * &quot;, and when not in attribute mode the < and > should be converted to
-     * &lt; and &gt;.
-     *
-     * @see http://www.w3.org/TR/2013/CR-html5-20130806/syntax.html#escapingString
-     *
-     * @param string $text
-     *            text to escape.
-     * @param boolean $attribute
-     *            True if we are escaping an attrubute, false otherwise
-     */
-    protected function escape($text, $attribute = false)
-    {
-
-        // Not using htmlspecialchars because, while it does escaping, it doesn't
-        // match the requirements of section 8.5. For example, it doesn't handle
-        // non-breaking spaces.
-        if ($attribute) {
-            $replace = array(
-                '"' => '&quot;',
-                '&' => '&amp;',
-                "\xc2\xa0" => '&nbsp;'
-            );
-        } else {
-            $replace = array(
-                '<' => '&lt;',
-                '>' => '&gt;',
-                '&' => '&amp;',
-                "\xc2\xa0" => '&nbsp;'
-            );
-        }
-
-        return strtr($text, $replace);
-    }
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Serializer/README.md b/core/vendor/masterminds/html5/src/HTML5/Serializer/README.md
deleted file mode 100644
index 849a47f..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Serializer/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# The Serializer (Writer) Model
-
-The serializer roughly follows sections _8.1 Writing HTML documents_ and section
-_8.3 Serializing HTML fragments_ by converting DOMDocument, DOMDocumentFragment,
-and DOMNodeList into HTML5.
-
-       [ HTML5 ]   // Interface for saving.
-          ||
-     [ Traverser ]   // Walk the DOM
-          ||
-       [ Rules ]     // Convert DOM elements into strings.
-          ||
-       [ HTML5 ]     // HTML5 document or fragment in text.
-
-
-## HTML5 Class
-
-Provides the top level interface for saving.
-
-## The Traverser
-
-Walks the DOM finding each element and passing it off to the output rules to
-convert to HTML5.
-
-## Output Rules
-
-The output rules are defined in the RulesInterface which can have multiple
-implementations. Currently, the OutputRules is the default implementation that
-converts a DOM as is into HTML5.
-
-## HTML5 String
-
-The output of the process it HTML5 as a string or saved to a file.
\ No newline at end of file
diff --git a/core/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php b/core/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php
deleted file mode 100644
index 6ef5e5e..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/**
- * @file
- * The interface definition for Rules to generate output.
- */
-namespace Masterminds\HTML5\Serializer;
-
-/**
- * To create a new rule set for writing output the RulesInterface needs to be
- * implemented.
- * The resulting class can be specified in the options with the
- * key of rules.
- *
- * For an example implementation see \Masterminds\HTML5\Serializer\OutputRules.
- */
-interface RulesInterface
-{
-
-    /**
-     * The class constructor.
-     *
-     * Note, before the rules can be used a traverser must be registered.
-     *
-     * @param mixed $output
-     *            The output stream to write output to.
-     * @param array $options
-     *            An array of options.
-     */
-    public function __construct($output, $options = array());
-
-    /**
-     * Register the traverser used in but the rules.
-     *
-     * Note, only one traverser can be used by the rules.
-     *
-     * @param \Masterminds\HTML5\Serializer\Traverser $traverser
-     *            The traverser used in the rules.
-     * @return \Masterminds\HTML5\Serializer\RulesInterface $this for the current object.
-     */
-    public function setTraverser(\Masterminds\HTML5\Serializer\Traverser $traverser);
-
-    /**
-     * Write a document element (\DOMDocument).
-     *
-     * Instead of returning the result write it to the output stream ($output)
-     * that was passed into the constructor.
-     *
-     * @param \DOMDocument $dom
-     */
-    public function document($dom);
-
-    /**
-     * Write an element.
-     *
-     * Instead of returning the result write it to the output stream ($output)
-     * that was passed into the constructor.
-     *
-     * @param mixed $ele
-     */
-    public function element($ele);
-
-    /**
-     * Write a text node.
-     *
-     * Instead of returning the result write it to the output stream ($output)
-     * that was passed into the constructor.
-     *
-     * @param mixed $ele
-     */
-    public function text($ele);
-
-    /**
-     * Write a CDATA node.
-     *
-     * Instead of returning the result write it to the output stream ($output)
-     * that was passed into the constructor.
-     *
-     * @param mixed $ele
-     */
-    public function cdata($ele);
-
-    /**
-     * Write a comment node.
-     *
-     * Instead of returning the result write it to the output stream ($output)
-     * that was passed into the constructor.
-     *
-     * @param mixed $ele
-     */
-    public function comment($ele);
-
-    /**
-     * Write a processor instruction.
-     *
-     * To learn about processor instructions see \Masterminds\HTML5\InstructionProcessor
-     *
-     * Instead of returning the result write it to the output stream ($output)
-     * that was passed into the constructor.
-     *
-     * @param mixed $ele
-     */
-    public function processorInstruction($ele);
-}
diff --git a/core/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php b/core/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php
deleted file mode 100644
index 9c700da..0000000
--- a/core/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Serializer;
-
-/**
- * Traverser for walking a DOM tree.
- *
- * This is a concrete traverser designed to convert a DOM tree into an
- * HTML5 document. It is not intended to be a generic DOMTreeWalker
- * implementation.
- *
- * @see http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#serializing-html-fragments
- */
-class Traverser
-{
-
-    /**
-     * Namespaces that should be treated as "local" to HTML5.
-     */
-    static $local_ns = array(
-        'http://www.w3.org/1999/xhtml' => 'html',
-        'http://www.w3.org/1998/Math/MathML' => 'math',
-        'http://www.w3.org/2000/svg' => 'svg'
-    );
-
-    protected $dom;
-
-    protected $options;
-
-    protected $encode = false;
-
-    protected $rules;
-
-    protected $out;
-
-    /**
-     * Create a traverser.
-     *
-     * @param DOMNode|DOMNodeList $dom
-     *            The document or node to traverse.
-     * @param resource $out
-     *            A stream that allows writing. The traverser will output into this
-     *            stream.
-     * @param array $options
-     *            An array or options for the traverser as key/value pairs. These include:
-     *            - encode_entities: A bool to specify if full encding should happen for all named
-     *            charachter references. Defaults to false which escapes &'<>".
-     *            - output_rules: The path to the class handling the output rules.
-     */
-    public function __construct($dom, $out, RulesInterface $rules, $options = array())
-    {
-        $this->dom = $dom;
-        $this->out = $out;
-        $this->rules = $rules;
-        $this->options = $options;
-
-        $this->rules->setTraverser($this);
-    }
-
-    /**
-     * Tell the traverser to walk the DOM.
-     *
-     * @return resource $out
-     *         Returns the output stream.
-     */
-    public function walk()
-    {
-        if ($this->dom instanceof \DOMDocument) {
-            $this->rules->document($this->dom);
-        } elseif ($this->dom instanceof \DOMDocumentFragment) {
-            // Document fragments are a special case. Only the children need to
-            // be serialized.
-            if ($this->dom->hasChildNodes()) {
-                $this->children($this->dom->childNodes);
-            }
-        }        // If NodeList, loop
-        elseif ($this->dom instanceof \DOMNodeList) {
-            // If this is a NodeList of DOMDocuments this will not work.
-            $this->children($this->dom);
-        }         // Else assume this is a DOMNode-like datastructure.
-        else {
-            $this->node($this->dom);
-        }
-
-        return $this->out;
-    }
-
-    /**
-     * Process a node in the DOM.
-     *
-     * @param mixed $node
-     *            A node implementing \DOMNode.
-     */
-    public function node($node)
-    {
-        // A listing of types is at http://php.net/manual/en/dom.constants.php
-        switch ($node->nodeType) {
-            case XML_ELEMENT_NODE:
-                $this->rules->element($node);
-                break;
-            case XML_TEXT_NODE:
-                $this->rules->text($node);
-                break;
-            case XML_CDATA_SECTION_NODE:
-                $this->rules->cdata($node);
-                break;
-            // FIXME: It appears that the parser doesn't do PI's.
-            case XML_PI_NODE:
-                $this->rules->processorInstruction($node);
-                break;
-            case XML_COMMENT_NODE:
-                $this->rules->comment($node);
-                break;
-            // Currently we don't support embedding DTDs.
-            default:
-                //print '<!-- Skipped -->';
-                break;
-        }
-    }
-
-    /**
-     * Walk through all the nodes on a node list.
-     *
-     * @param \DOMNodeList $nl
-     *            A list of child elements to walk through.
-     */
-    public function children($nl)
-    {
-        foreach ($nl as $node) {
-            $this->node($node);
-        }
-    }
-
-    /**
-     * Is an element local?
-     *
-     * @param mixed $ele
-     *            An element that implement \DOMNode.
-     *
-     * @return bool True if local and false otherwise.
-     */
-    public function isLocalElement($ele)
-    {
-        $uri = $ele->namespaceURI;
-        if (empty($uri)) {
-            return false;
-        }
-
-        return isset(static::$local_ns[$uri]);
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/ElementsTest.php b/core/vendor/masterminds/html5/test/HTML5/ElementsTest.php
deleted file mode 100644
index 629b561..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/ElementsTest.php
+++ /dev/null
@@ -1,486 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests;
-
-use Masterminds\HTML5\Elements;
-
-class ElementsTest extends TestCase
-{
-
-    public $html5Elements = array(
-        "a",
-        "abbr",
-        "address",
-        "area",
-        "article",
-        "aside",
-        "audio",
-        "b",
-        "base",
-        "bdi",
-        "bdo",
-        "blockquote",
-        "body",
-        "br",
-        "button",
-        "canvas",
-        "caption",
-        "cite",
-        "code",
-        "col",
-        "colgroup",
-        "command",
-        // "data",
-        "datalist",
-        "dd",
-        "del",
-        "details",
-        "dfn",
-        "dialog",
-        "div",
-        "dl",
-        "dt",
-        "em",
-        "embed",
-        "fieldset",
-        "figcaption",
-        "figure",
-        "footer",
-        "form",
-        "h1",
-        "h2",
-        "h3",
-        "h4",
-        "h5",
-        "h6",
-        "head",
-        "header",
-        "hgroup",
-        "hr",
-        "html",
-        "i",
-        "iframe",
-        "img",
-        "input",
-        "ins",
-        "kbd",
-        "keygen",
-        "label",
-        "legend",
-        "li",
-        "link",
-        "map",
-        "mark",
-        "menu",
-        "meta",
-        "meter",
-        "nav",
-        "noscript",
-        "object",
-        "ol",
-        "optgroup",
-        "option",
-        "output",
-        "p",
-        "param",
-        "pre",
-        "progress",
-        "q",
-        "rp",
-        "rt",
-        "ruby",
-        "s",
-        "samp",
-        "script",
-        "section",
-        "select",
-        "small",
-        "source",
-        "span",
-        "strong",
-        "style",
-        "sub",
-        "summary",
-        "sup",
-        "table",
-        "tbody",
-        "td",
-        "textarea",
-        "tfoot",
-        "th",
-        "thead",
-        "time",
-        "title",
-        "tr",
-        "track",
-        "u",
-        "ul",
-        "var",
-        "video",
-        "wbr"
-    );
-
-    public $mathmlElements = array(
-        "maction",
-        "maligngroup",
-        "malignmark",
-        "math",
-        "menclose",
-        "merror",
-        "mfenced",
-        "mfrac",
-        "mglyph",
-        "mi",
-        "mlabeledtr",
-        "mlongdiv",
-        "mmultiscripts",
-        "mn",
-        "mo",
-        "mover",
-        "mpadded",
-        "mphantom",
-        "mroot",
-        "mrow",
-        "ms",
-        "mscarries",
-        "mscarry",
-        "msgroup",
-        "msline",
-        "mspace",
-        "msqrt",
-        "msrow",
-        "mstack",
-        "mstyle",
-        "msub",
-        "msup",
-        "msubsup",
-        "mtable",
-        "mtd",
-        "mtext",
-        "mtr",
-        "munder",
-        "munderover"
-    );
-
-    public $svgElements = array(
-        "a",
-        "altGlyph",
-        "altGlyphDef",
-        "altGlyphItem",
-        "animate",
-        "animateColor",
-        "animateMotion",
-        "animateTransform",
-        "circle",
-        "clipPath",
-        "color-profile",
-        "cursor",
-        "defs",
-        "desc",
-        "ellipse",
-        "feBlend",
-        "feColorMatrix",
-        "feComponentTransfer",
-        "feComposite",
-        "feConvolveMatrix",
-        "feDiffuseLighting",
-        "feDisplacementMap",
-        "feDistantLight",
-        "feFlood",
-        "feFuncA",
-        "feFuncB",
-        "feFuncG",
-        "feFuncR",
-        "feGaussianBlur",
-        "feImage",
-        "feMerge",
-        "feMergeNode",
-        "feMorphology",
-        "feOffset",
-        "fePointLight",
-        "feSpecularLighting",
-        "feSpotLight",
-        "feTile",
-        "feTurbulence",
-        "filter",
-        "font",
-        "font-face",
-        "font-face-format",
-        "font-face-name",
-        "font-face-src",
-        "font-face-uri",
-        "foreignObject",
-        "g",
-        "glyph",
-        "glyphRef",
-        "hkern",
-        "image",
-        "line",
-        "linearGradient",
-        "marker",
-        "mask",
-        "metadata",
-        "missing-glyph",
-        "mpath",
-        "path",
-        "pattern",
-        "polygon",
-        "polyline",
-        "radialGradient",
-        "rect",
-        "script",
-        "set",
-        "stop",
-        "style",
-        "svg",
-        "switch",
-        "symbol",
-        "text",
-        "textPath",
-        "title",
-        "tref",
-        "tspan",
-        "use",
-        "view",
-        "vkern"
-    );
-
-    public function testIsHtml5Element()
-    {
-        foreach ($this->html5Elements as $element) {
-            $this->assertTrue(Elements::isHtml5Element($element), 'html5 element test failed on: ' . $element);
-
-            $this->assertTrue(Elements::isHtml5Element(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
-        }
-
-        $nonhtml5 = array(
-            'foo',
-            'bar',
-            'baz'
-        );
-        foreach ($nonhtml5 as $element) {
-            $this->assertFalse(Elements::isHtml5Element($element), 'html5 element test failed on: ' . $element);
-
-            $this->assertFalse(Elements::isHtml5Element(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
-        }
-    }
-
-    public function testIsMathMLElement()
-    {
-        foreach ($this->mathmlElements as $element) {
-            $this->assertTrue(Elements::isMathMLElement($element), 'MathML element test failed on: ' . $element);
-
-            // MathML is case sensetitive so these should all fail.
-            $this->assertFalse(Elements::isMathMLElement(strtoupper($element)), 'MathML element test failed on: ' . strtoupper($element));
-        }
-
-        $nonMathML = array(
-            'foo',
-            'bar',
-            'baz'
-        );
-        foreach ($nonMathML as $element) {
-            $this->assertFalse(Elements::isMathMLElement($element), 'MathML element test failed on: ' . $element);
-        }
-    }
-
-    public function testIsSvgElement()
-    {
-        foreach ($this->svgElements as $element) {
-            $this->assertTrue(Elements::isSvgElement($element), 'SVG element test failed on: ' . $element);
-
-            // SVG is case sensetitive so these should all fail.
-            $this->assertFalse(Elements::isSvgElement(strtoupper($element)), 'SVG element test failed on: ' . strtoupper($element));
-        }
-
-        $nonSVG = array(
-            'foo',
-            'bar',
-            'baz'
-        );
-        foreach ($nonSVG as $element) {
-            $this->assertFalse(Elements::isSvgElement($element), 'SVG element test failed on: ' . $element);
-        }
-    }
-
-    public function testIsElement()
-    {
-        foreach ($this->html5Elements as $element) {
-            $this->assertTrue(Elements::isElement($element), 'html5 element test failed on: ' . $element);
-
-            $this->assertTrue(Elements::isElement(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
-        }
-
-        foreach ($this->mathmlElements as $element) {
-            $this->assertTrue(Elements::isElement($element), 'MathML element test failed on: ' . $element);
-
-            // MathML is case sensetitive so these should all fail.
-            $this->assertFalse(Elements::isElement(strtoupper($element)), 'MathML element test failed on: ' . strtoupper($element));
-        }
-
-        foreach ($this->svgElements as $element) {
-            $this->assertTrue(Elements::isElement($element), 'SVG element test failed on: ' . $element);
-
-            // SVG is case sensetitive so these should all fail. But, there is duplication
-            // html5 and SVG. Since html5 is case insensetitive we need to make sure
-            // it's not a html5 element first.
-            if (! in_array($element, $this->html5Elements)) {
-                $this->assertFalse(Elements::isElement(strtoupper($element)), 'SVG element test failed on: ' . strtoupper($element));
-            }
-        }
-
-        $nonhtml5 = array(
-            'foo',
-            'bar',
-            'baz'
-        );
-        foreach ($nonhtml5 as $element) {
-            $this->assertFalse(Elements::isElement($element), 'html5 element test failed on: ' . $element);
-
-            $this->assertFalse(Elements::isElement(strtoupper($element)), 'html5 element test failed on: ' . strtoupper($element));
-        }
-    }
-
-    public function testElement()
-    {
-        foreach ($this->html5Elements as $element) {
-            $this->assertGreaterThan(0, Elements::element($element));
-        }
-        $nonhtml5 = array(
-            'foo',
-            'bar',
-            'baz'
-        );
-        foreach ($nonhtml5 as $element) {
-            $this->assertFalse(Elements::element($element));
-        }
-    }
-
-    public function testIsA()
-    {
-        $this->assertTrue(Elements::isA('script', Elements::KNOWN_ELEMENT));
-        $this->assertFalse(Elements::isA('scriptypoo', Elements::KNOWN_ELEMENT));
-        $this->assertTrue(Elements::isA('script', Elements::TEXT_RAW));
-        $this->assertFalse(Elements::isA('script', Elements::TEXT_RCDATA));
-
-        $voidElements = array(
-            'area',
-            'base',
-            'basefont',
-            'bgsound',
-            'br',
-            'col',
-            'command',
-            'embed',
-            'frame',
-            'hr',
-            'img'
-        );
-
-        foreach ($voidElements as $element) {
-            $this->assertTrue(Elements::isA($element, Elements::VOID_TAG), 'Void element test failed on: ' . $element);
-        }
-
-        $nonVoid = array(
-            'span',
-            'a',
-            'div'
-        );
-        foreach ($nonVoid as $tag) {
-            $this->assertFalse(Elements::isA($tag, Elements::VOID_TAG), 'Void element test failed on: ' . $tag);
-        }
-
-        $blockTags = array(
-            'address',
-            'article',
-            'aside',
-            'audio',
-            'blockquote',
-            'canvas',
-            'dd',
-            'div',
-            'dl',
-            'fieldset',
-            'figcaption',
-            'figure',
-            'footer',
-            'form',
-            'h1',
-            'h2',
-            'h3',
-            'h4',
-            'h5',
-            'h6',
-            'header',
-            'hgroup',
-            'hr',
-            'noscript',
-            'ol',
-            'output',
-            'p',
-            'pre',
-            'section',
-            'table',
-            'tfoot',
-            'ul',
-            'video'
-        );
-
-        foreach ($blockTags as $tag) {
-            $this->assertTrue(Elements::isA($tag, Elements::BLOCK_TAG), 'Block tag test failed on: ' . $tag);
-        }
-
-        $nonBlockTags = array(
-            'span',
-            'img',
-            'label'
-        );
-        foreach ($nonBlockTags as $tag) {
-            $this->assertFalse(Elements::isA($tag, Elements::BLOCK_TAG), 'Block tag test failed on: ' . $tag);
-        }
-    }
-
-    public function testNormalizeSvgElement()
-    {
-        $tests = array(
-            'foo' => 'foo',
-            'altglyph' => 'altGlyph',
-            'BAR' => 'bar',
-            'fespecularlighting' => 'feSpecularLighting',
-            'bAz' => 'baz',
-            'foreignobject' => 'foreignObject'
-        );
-
-        foreach ($tests as $input => $expected) {
-            $this->assertEquals($expected, Elements::normalizeSvgElement($input));
-        }
-    }
-
-    public function testNormalizeSvgAttribute()
-    {
-        $tests = array(
-            'foo' => 'foo',
-            'attributename' => 'attributeName',
-            'BAR' => 'bar',
-            'limitingconeangle' => 'limitingConeAngle',
-            'bAz' => 'baz',
-            'patterncontentunits' => 'patternContentUnits'
-        );
-
-        foreach ($tests as $input => $expected) {
-            $this->assertEquals($expected, Elements::normalizeSvgAttribute($input));
-        }
-    }
-
-    public function testNormalizeMathMlAttribute()
-    {
-        $tests = array(
-            'foo' => 'foo',
-            'definitionurl' => 'definitionURL',
-            'BAR' => 'bar'
-        );
-
-        foreach ($tests as $input => $expected) {
-            $this->assertEquals($expected, Elements::normalizeMathMlAttribute($input));
-        }
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Html5Test.html b/core/vendor/masterminds/html5/test/HTML5/Html5Test.html
deleted file mode 100644
index a976e8b..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Html5Test.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <title>Test</title>
-  </head>
-  <body>
-    <p>This is a test.</p>
-  </body>
-</html>
\ No newline at end of file
diff --git a/core/vendor/masterminds/html5/test/HTML5/Html5Test.php b/core/vendor/masterminds/html5/test/HTML5/Html5Test.php
deleted file mode 100644
index a1a6c9c..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Html5Test.php
+++ /dev/null
@@ -1,398 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests;
-
-class Html5Test extends TestCase
-{
-
-    public function setUp()
-    {
-        $this->html5 = $this->getInstance();
-    }
-
-    /**
-     * Parse and serialize a string.
-     */
-    protected function cycle($html)
-    {
-        $dom = $this->html5->loadHTML('<!DOCTYPE html><html><body>' . $html . '</body></html>');
-        $out = $this->html5->saveHTML($dom);
-
-        return $out;
-    }
-
-    protected function cycleFragment($fragment)
-    {
-        $dom = $this->html5->loadHTMLFragment($fragment);
-        $out = $this->html5->saveHTML($dom);
-
-        return $out;
-    }
-
-    public function testLoadOptions()
-    {
-        // doc
-        $dom = $this->html5->loadHTML($this->wrap('<t:tag/>'), array(
-                        'implicitNamespaces' => array('t' => 'http://example.com'),
-                        "xmlNamespaces" => true
-        ));
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-        $this->assertFalse($this->html5->hasErrors());
-
-        $xpath = new \DOMXPath( $dom );
-        $xpath->registerNamespace( "t", "http://example.com" );
-        $this->assertEquals(1, $xpath->query( "//t:tag" )->length);
-
-        // doc fragment
-        $frag = $this->html5->loadHTMLFragment('<t:tag/>', array(
-                        'implicitNamespaces' => array('t' => 'http://example.com'),
-                        "xmlNamespaces" => true
-        ));
-        $this->assertInstanceOf('\DOMDocumentFragment', $frag);
-        $this->assertEmpty($this->html5->getErrors());
-        $this->assertFalse($this->html5->hasErrors());
-
-        $frag->ownerDocument->appendChild($frag);
-        $xpath = new \DOMXPath( $frag->ownerDocument );
-        $xpath->registerNamespace( "t", "http://example.com" );
-        $this->assertEquals(1, $xpath->query( "//t:tag" , $frag)->length);
-    }
-
-    public function testErrors()
-    {
-        $dom = $this->html5->loadHTML('<xx as>');
-        $this->assertInstanceOf('\DOMDocument', $dom);
-
-        $this->assertNotEmpty($this->html5->getErrors());
-        $this->assertTrue($this->html5->hasErrors());
-    }
-
-    public function testLoad()
-    {
-        $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-        $this->assertFalse($this->html5->hasErrors());
-
-        $file = fopen(__DIR__ . '/Html5Test.html', 'r');
-        $dom = $this->html5->load($file);
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-
-        $dom = $this->html5->loadHTMLFile(__DIR__ . '/Html5Test.html');
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-    }
-
-    public function testLoadHTML()
-    {
-        $contents = file_get_contents(__DIR__ . '/Html5Test.html');
-        $dom = $this->html5->loadHTML($contents);
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-    }
-
-    public function testLoadHTMLFragment()
-    {
-        $fragment = '<section id="Foo"><div class="Bar">Baz</div></section>';
-        $dom = $this->html5->loadHTMLFragment($fragment);
-        $this->assertInstanceOf('\DOMDocumentFragment', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-    }
-
-    public function testSaveHTML()
-    {
-        $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-
-        $saved = $this->html5->saveHTML($dom);
-        $this->assertRegExp('|<p>This is a test.</p>|', $saved);
-    }
-
-    public function testSaveHTMLFragment()
-    {
-        $fragment = '<section id="Foo"><div class="Bar">Baz</div></section>';
-        $dom = $this->html5->loadHTMLFragment($fragment);
-
-        $string = $this->html5->saveHTML($dom);
-        $this->assertEquals($fragment, $string);
-    }
-
-    public function testSave()
-    {
-        $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-
-        // Test resource
-        $file = fopen('php://temp', 'w');
-        $this->html5->save($dom, $file);
-        $content = stream_get_contents($file, - 1, 0);
-        $this->assertRegExp('|<p>This is a test.</p>|', $content);
-
-        // Test file
-        $tmpfname = tempnam(sys_get_temp_dir(), "html5-php");
-        $this->html5->save($dom, $tmpfname);
-        $content = file_get_contents($tmpfname);
-        $this->assertRegExp('|<p>This is a test.</p>|', $content);
-        unlink($tmpfname);
-    }
-
-    // This test reads a document into a dom, turn the dom into a document,
-    // then tries to read that document again. This makes sure we are reading,
-    // and generating a document that works at a high level.
-    public function testItWorks()
-    {
-        $dom = $this->html5->load(__DIR__ . '/Html5Test.html');
-        $this->assertInstanceOf('\DOMDocument', $dom);
-        $this->assertEmpty($this->html5->getErrors());
-
-        $saved = $this->html5->saveHTML($dom);
-
-        $dom2 = $this->html5->loadHTML($saved);
-        $this->assertInstanceOf('\DOMDocument', $dom2);
-        $this->assertEmpty($this->html5->getErrors());
-    }
-
-    public function testConfig()
-    {
-        $html5 = $this->getInstance();
-        $options = $html5->getOptions();
-        $this->assertEquals(false, $options['encode_entities']);
-
-        $html5 = $this->getInstance(array(
-            'foo' => 'bar',
-            'encode_entities' => true
-        ));
-        $options = $html5->getOptions();
-        $this->assertEquals('bar', $options['foo']);
-        $this->assertEquals(true, $options['encode_entities']);
-
-        // Need to reset to original so future tests pass as expected.
-        // $this->getInstance()->setOption('encode_entities', false);
-    }
-
-    public function testSvg()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-      <html lang="en">
-        <body>
-          <div id="foo" class="bar baz">foo bar baz</div>
-          <svg width="150" height="100" viewBox="0 0 3 2">
-            <rect width="1" height="2" x="0" fill="#008d46" />
-            <rect width="1" height="2" x="1" fill="#ffffff" />
-            <rect width="1" height="2" x="2" fill="#d2232c" />
-            <text font-family="Verdana" font-size="32">
-              <textPath xlink:href="#Foo">
-                Test Text.
-              </textPath>
-            </text>
-          </svg>
-        </body>
-      </html>');
-
-        $this->assertEmpty($this->html5->getErrors());
-
-        // Test a mixed case attribute.
-        $list = $dom->getElementsByTagName('svg');
-        $this->assertNotEmpty($list->length);
-        $svg = $list->item(0);
-        $this->assertEquals("0 0 3 2", $svg->getAttribute('viewBox'));
-        $this->assertFalse($svg->hasAttribute('viewbox'));
-
-        // Test a mixed case tag.
-        // Note: getElementsByTagName is not case sensetitive.
-        $list = $dom->getElementsByTagName('textPath');
-        $this->assertNotEmpty($list->length);
-        $textPath = $list->item(0);
-        $this->assertEquals('textPath', $textPath->tagName);
-        $this->assertNotEquals('textpath', $textPath->tagName);
-
-        $html = $this->html5->saveHTML($dom);
-        $this->assertRegExp('|<svg width="150" height="100" viewBox="0 0 3 2">|', $html);
-        $this->assertRegExp('|<rect width="1" height="2" x="0" fill="#008d46" />|', $html);
-    }
-
-    public function testMathMl()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-      <html lang="en">
-        <body>
-          <div id="foo" class="bar baz" definitionURL="http://example.com">foo bar baz</div>
-          <math>
-            <mi>x</mi>
-            <csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">
-              <mo>&PlusMinus;</mo>
-            </csymbol>
-            <mi>y</mi>
-          </math>
-        </body>
-      </html>');
-
-        $this->assertEmpty($this->html5->getErrors());
-        $list = $dom->getElementsByTagName('math');
-        $this->assertNotEmpty($list->length);
-
-        $list = $dom->getElementsByTagName('div');
-        $this->assertNotEmpty($list->length);
-        $div = $list->item(0);
-        $this->assertEquals('http://example.com', $div->getAttribute('definitionurl'));
-        $this->assertFalse($div->hasAttribute('definitionURL'));
-        $list = $dom->getElementsByTagName('csymbol');
-        $csymbol = $list->item(0);
-        $this->assertEquals('http://www.example.com/mathops/multiops.html#plusminus', $csymbol->getAttribute('definitionURL'));
-        $this->assertFalse($csymbol->hasAttribute('definitionurl'));
-
-        $html = $this->html5->saveHTML($dom);
-        $this->assertRegExp('|<csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">|', $html);
-        $this->assertRegExp('|<mi>y</mi>|', $html);
-    }
-
-    public function testUnknownElements()
-    {
-        // The : should not have special handling accourding to section 2.9 of the
-        // spec. This is differenant than XML. Since we don't know these elements
-        // they are handled as normal elements. Note, to do this is really
-        // an invalid example and you should not embed prefixed xml in html5.
-        $dom = $this->html5->loadHTMLFragment(
-            "<f:rug>
-      <f:name>Big rectangle thing</f:name>
-      <f:width>40</f:width>
-      <f:length>80</f:length>
-    </f:rug>
-    <sarcasm>um, yeah</sarcasm>");
-
-        $this->assertEmpty($this->html5->getErrors());
-        $markup = $this->html5->saveHTML($dom);
-        $this->assertRegExp('|<f:name>Big rectangle thing</f:name>|', $markup);
-        $this->assertRegExp('|<sarcasm>um, yeah</sarcasm>|', $markup);
-    }
-
-    public function testElements()
-    {
-        // Should have content.
-        $res = $this->cycle('<div>FOO</div>');
-        $this->assertRegExp('|<div>FOO</div>|', $res);
-
-        // Should be empty
-        $res = $this->cycle('<span></span>');
-        $this->assertRegExp('|<span></span>|', $res);
-
-        // Should have content.
-        $res = $this->cycleFragment('<div>FOO</div>');
-        $this->assertRegExp('|<div>FOO</div>|', $res);
-
-        // Should be empty
-        $res = $this->cycleFragment('<span></span>');
-        $this->assertRegExp('|<span></span>|', $res);
-
-        // Elements with dashes and underscores
-        $res = $this->cycleFragment('<sp-an></sp-an>');
-        $this->assertRegExp('|<sp-an></sp-an>|', $res);
-        $res = $this->cycleFragment('<sp_an></sp_an>');
-        $this->assertRegExp('|<sp_an></sp_an>|', $res);
-
-        // Should have no closing tag.
-        $res = $this->cycle('<hr>');
-        $this->assertRegExp('|<hr></body>|', $res);
-    }
-
-    public function testAttributes()
-    {
-        $res = $this->cycle('<div attr="val">FOO</div>');
-        $this->assertRegExp('|<div attr="val">FOO</div>|', $res);
-
-        // XXX: Note that spec does NOT require attrs in the same order.
-        $res = $this->cycle('<div attr="val" class="even">FOO</div>');
-        $this->assertRegExp('|<div attr="val" class="even">FOO</div>|', $res);
-
-        $res = $this->cycle('<div xmlns:foo="http://example.com">FOO</div>');
-        $this->assertRegExp('|<div xmlns:foo="http://example.com">FOO</div>|', $res);
-
-        $res = $this->cycleFragment('<div attr="val">FOO</div>');
-        $this->assertRegExp('|<div attr="val">FOO</div>|', $res);
-
-        // XXX: Note that spec does NOT require attrs in the same order.
-        $res = $this->cycleFragment('<div attr="val" class="even">FOO</div>');
-        $this->assertRegExp('|<div attr="val" class="even">FOO</div>|', $res);
-
-        $res = $this->cycleFragment('<div xmlns:foo="http://example.com">FOO</div>');
-        $this->assertRegExp('|<div xmlns:foo="http://example.com">FOO</div>|', $res);
-    }
-
-    public function testPCData()
-    {
-        $res = $this->cycle('<a>This is a test.</a>');
-        $this->assertRegExp('|This is a test.|', $res);
-
-        $res = $this->cycleFragment('<a>This is a test.</a>');
-        $this->assertRegExp('|This is a test.|', $res);
-
-        $res = $this->cycle('This
-      is
-      a
-      test.');
-
-        // Check that newlines are there, but don't count spaces.
-        $this->assertRegExp('|This\n\s*is\n\s*a\n\s*test.|', $res);
-
-        $res = $this->cycleFragment('This
-      is
-      a
-      test.');
-
-        // Check that newlines are there, but don't count spaces.
-        $this->assertRegExp('|This\n\s*is\n\s*a\n\s*test.|', $res);
-
-        $res = $this->cycle('<a>This <em>is</em> a test.</a>');
-        $this->assertRegExp('|This <em>is</em> a test.|', $res);
-
-        $res = $this->cycleFragment('<a>This <em>is</em> a test.</a>');
-        $this->assertRegExp('|This <em>is</em> a test.|', $res);
-    }
-
-    public function testUnescaped()
-    {
-        $res = $this->cycle('<script>2 < 1</script>');
-        $this->assertRegExp('|2 < 1|', $res);
-
-        $res = $this->cycle('<style>div>div>div</style>');
-        $this->assertRegExp('|div>div>div|', $res);
-
-        $res = $this->cycleFragment('<script>2 < 1</script>');
-        $this->assertRegExp('|2 < 1|', $res);
-
-        $res = $this->cycleFragment('<style>div>div>div</style>');
-        $this->assertRegExp('|div>div>div|', $res);
-    }
-
-    public function testEntities()
-    {
-        $res = $this->cycle('<a>Apples &amp; bananas.</a>');
-        $this->assertRegExp('|Apples &amp; bananas.|', $res);
-
-        $res = $this->cycleFragment('<a>Apples &amp; bananas.</a>');
-        $this->assertRegExp('|Apples &amp; bananas.|', $res);
-    }
-
-    public function testComment()
-    {
-        $res = $this->cycle('a<!-- This is a test. -->b');
-        $this->assertRegExp('|<!-- This is a test. -->|', $res);
-
-        $res = $this->cycleFragment('a<!-- This is a test. -->b');
-        $this->assertRegExp('|<!-- This is a test. -->|', $res);
-    }
-
-    public function testCDATA()
-    {
-        $res = $this->cycle('a<![CDATA[ This <is> a test. ]]>b');
-        $this->assertRegExp('|<!\[CDATA\[ This <is> a test\. \]\]>|', $res);
-
-        $res = $this->cycleFragment('a<![CDATA[ This <is> a test. ]]>b');
-        $this->assertRegExp('|<!\[CDATA\[ This <is> a test\. \]\]>|', $res);
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/CharacterReferenceTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/CharacterReferenceTest.php
deleted file mode 100644
index 762bcc2..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/CharacterReferenceTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * @file
- * Test the Scanner. This requires the InputStream tests are all good.
- */
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\CharacterReference;
-
-class CharacterReferenceTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    public function testLookupName()
-    {
-        $this->assertEquals('&', CharacterReference::lookupName('amp'));
-        $this->assertEquals('<', CharacterReference::lookupName('lt'));
-        $this->assertEquals('>', CharacterReference::lookupName('gt'));
-        $this->assertEquals('"', CharacterReference::lookupName('quot'));
-        $this->assertEquals('∌', CharacterReference::lookupName('NotReverseElement'));
-
-        $this->assertNull(CharacterReference::lookupName('StinkyCheese'));
-    }
-
-    public function testLookupHex()
-    {
-        $this->assertEquals('<', CharacterReference::lookupHex('3c'));
-        $this->assertEquals('<', CharacterReference::lookupHex('003c'));
-        $this->assertEquals('&', CharacterReference::lookupHex('26'));
-        $this->assertEquals('}', CharacterReference::lookupHex('7d'));
-        $this->assertEquals('Σ', CharacterReference::lookupHex('3A3'));
-        $this->assertEquals('Σ', CharacterReference::lookupHex('03A3'));
-        $this->assertEquals('Σ', CharacterReference::lookupHex('3a3'));
-        $this->assertEquals('Σ', CharacterReference::lookupHex('03a3'));
-    }
-
-    public function testLookupDecimal()
-    {
-        $this->assertEquals('&', CharacterReference::lookupDecimal(38));
-        $this->assertEquals('&', CharacterReference::lookupDecimal('38'));
-        $this->assertEquals('<', CharacterReference::lookupDecimal(60));
-        $this->assertEquals('Σ', CharacterReference::lookupDecimal(931));
-        $this->assertEquals('Σ', CharacterReference::lookupDecimal('0931'));
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/DOMTreeBuilderTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/DOMTreeBuilderTest.php
deleted file mode 100644
index 3c18039..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/DOMTreeBuilderTest.php
+++ /dev/null
@@ -1,537 +0,0 @@
-<?php
-/**
- * @file
- * Test the Tree Builder.
- */
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\StringInputStream;
-use Masterminds\HTML5\Parser\Scanner;
-use Masterminds\HTML5\Parser\Tokenizer;
-use Masterminds\HTML5\Parser\DOMTreeBuilder;
-
-/**
- * These tests are functional, not necessarily unit tests.
- */
-class DOMTreeBuilderTest extends \Masterminds\HTML5\Tests\TestCase
-{
-    protected $errors = array();
-    /**
-     * Convenience function for parsing.
-     */
-    protected function parse($string, array $options = array())
-    {
-        $treeBuilder = new DOMTreeBuilder(false, $options);
-        $input = new StringInputStream($string);
-        $scanner = new Scanner($input);
-        $parser = new Tokenizer($scanner, $treeBuilder);
-
-        $parser->parse();
-        $this->errors = $treeBuilder->getErrors();
-
-        return $treeBuilder->document();
-    }
-
-    /**
-     * Utility function for parsing a fragment of HTML5.
-     */
-    protected function parseFragment($string)
-    {
-        $treeBuilder = new DOMTreeBuilder(true);
-        $input = new StringInputStream($string);
-        $scanner = new Scanner($input);
-        $parser = new Tokenizer($scanner, $treeBuilder);
-
-        $parser->parse();
-        $this->errors = $treeBuilder->getErrors();
-
-        return $treeBuilder->fragment();
-    }
-
-    public function testDocument()
-    {
-        $html = "<!DOCTYPE html><html></html>";
-        $doc = $this->parse($html);
-
-        $this->assertInstanceOf('\DOMDocument', $doc);
-        $this->assertEquals('html', $doc->documentElement->tagName);
-        $this->assertEquals('http://www.w3.org/1999/xhtml', $doc->documentElement->namespaceURI);
-    }
-
-    public function testStrangeCapitalization()
-    {
-        $html = "<!doctype html>
-        <html>
-            <head>
-                <Title>Hello, world!</TitlE>
-            </head>
-            <body>TheBody<script>foo</script></body>
-        </html>";
-        $doc = $this->parse($html);
-
-        $this->assertInstanceOf('\DOMDocument', $doc);
-        $this->assertEquals('html', $doc->documentElement->tagName);
-
-        $xpath = new \DOMXPath( $doc );
-        $xpath->registerNamespace( "x", "http://www.w3.org/1999/xhtml" );
-
-        $this->assertEquals("Hello, world!", $xpath->query( "//x:title" )->item( 0 )->nodeValue);
-        $this->assertEquals("foo", $xpath->query( "//x:script" )->item( 0 )->nodeValue);
-    }
-
-    public function testDocumentWithDisabledNamespaces()
-    {
-        $html = "<!DOCTYPE html><html></html>";
-        $doc = $this->parse($html, array('disable_html_ns' => true));
-
-        $this->assertInstanceOf('\DOMDocument', $doc);
-        $this->assertEquals('html', $doc->documentElement->tagName);
-        $this->assertNull($doc->documentElement->namespaceURI);
-    }
-
-    public function testDocumentWithATargetDocument()
-    {
-        $targetDom = new \DOMDocument();
-
-        $html = "<!DOCTYPE html><html></html>";
-        $doc = $this->parse($html, array('target_document' => $targetDom));
-
-        $this->assertInstanceOf('\DOMDocument', $doc);
-        $this->assertSame($doc, $targetDom);
-        $this->assertEquals('html', $doc->documentElement->tagName);
-    }
-
-    public function testDocumentFakeAttrAbsence()
-    {
-        $html = "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><body>foo</body></html>";
-        $doc = $this->parse($html, array('xmlNamespaces'=>true));
-
-        $xp = new \DOMXPath($doc);
-        $this->assertEquals(0, $xp->query("//@html5-php-fake-id-attribute")->length);
-    }
-
-    public function testFragment()
-    {
-        $html = "<div>test</div><span>test2</span>";
-        $doc = $this->parseFragment($html);
-
-        $this->assertInstanceOf('\DOMDocumentFragment', $doc);
-        $this->assertTrue($doc->hasChildNodes());
-        $this->assertEquals('div', $doc->childNodes->item(0)->tagName);
-        $this->assertEquals('test', $doc->childNodes->item(0)->textContent);
-        $this->assertEquals('span', $doc->childNodes->item(1)->tagName);
-        $this->assertEquals('test2', $doc->childNodes->item(1)->textContent);
-    }
-
-    public function testElements()
-    {
-        $html = "<!DOCTYPE html><html><head><title></title></head><body></body></html>";
-        $doc = $this->parse($html);
-        $root = $doc->documentElement;
-
-        $this->assertEquals('html', $root->tagName);
-        $this->assertEquals('html', $root->localName);
-        $this->assertEquals('html', $root->nodeName);
-
-        $this->assertEquals(2, $root->childNodes->length);
-        $kids = $root->childNodes;
-
-        $this->assertEquals('head', $kids->item(0)->tagName);
-        $this->assertEquals('body', $kids->item(1)->tagName);
-
-        $head = $kids->item(0);
-        $this->assertEquals(1, $head->childNodes->length);
-        $this->assertEquals('title', $head->childNodes->item(0)->tagName);
-    }
-
-    public function testImplicitNamespaces()
-    {
-        $dom = $this->parse('<!DOCTYPE html><html><body><a xlink:href="bar">foo</a></body></html>');
-        $a = $dom->getElementsByTagName('a')->item(0);
-        $attr = $a->getAttributeNode('xlink:href');
-        $this->assertEquals('http://www.w3.org/1999/xlink', $attr->namespaceURI);
-
-        $dom = $this->parse('<!DOCTYPE html><html><body><a xml:base="bar">foo</a></body></html>');
-        $a = $dom->getElementsByTagName('a')->item(0);
-        $attr = $a->getAttributeNode('xml:base');
-        $this->assertEquals('http://www.w3.org/XML/1998/namespace', $attr->namespaceURI);
-    }
-
-    public function testCustomImplicitNamespaces()
-    {
-        $dom = $this->parse('<!DOCTYPE html><html><body><a t:href="bar">foo</a></body></html>', array(
-            'implicitNamespaces' => array(
-                't' => 'http://www.example.com'
-            )
-        ));
-        $a = $dom->getElementsByTagName('a')->item(0);
-        $attr = $a->getAttributeNode('t:href');
-        $this->assertEquals('http://www.example.com', $attr->namespaceURI);
-
-        $dom = $this->parse('<!DOCTYPE html><html><body><t:a>foo</t:a></body></html>', array(
-            'implicitNamespaces' => array(
-                't' => 'http://www.example.com'
-            )
-        ));
-        $list = $dom->getElementsByTagNameNS('http://www.example.com', 'a');
-        $this->assertEquals(1, $list->length);
-    }
-
-    public function testXmlNamespaces()
-    {
-        $dom = $this->parse(
-            '<!DOCTYPE html><html>
-            <t:body xmlns:t="http://www.example.com">
-                <a t:href="bar">foo</a>
-            </body>
-            <div>foo</div>
-          </html>', array(
-                'xmlNamespaces' => true
-            ));
-        $a = $dom->getElementsByTagName('a')->item(0);
-        $attr = $a->getAttributeNode('t:href');
-        $this->assertEquals('http://www.example.com', $attr->namespaceURI);
-
-        $list = $dom->getElementsByTagNameNS('http://www.example.com', 'body');
-        $this->assertEquals(1, $list->length);
-    }
-
-    public function testXmlNamespaceNesting()
-    {
-        $dom = $this->parse(
-            '<!DOCTYPE html><html>
-            <body xmlns:x="http://www.prefixed.com" id="body">
-                <a id="bar1" xmlns="http://www.prefixed.com/bar1">
-                    <b id="bar4" xmlns="http://www.prefixed.com/bar4"><x:prefixed id="prefixed"/></b>
-                </a>
-                <svg id="svg"></svg>
-                <c id="bar2" xmlns="http://www.prefixed.com/bar2"></c>
-                <div id="div"></div>
-                <d id="bar3"></d>
-                <xn:d xmlns:xn="http://www.prefixed.com/xn" xmlns="http://www.prefixed.com/bar5_x" id="bar5"><x id="bar5_x"/></xn:d>
-            </body>
-          </html>', array(
-                'xmlNamespaces' => true
-            ));
-
-
-        $this->assertEmpty($this->errors);
-
-        $div = $dom->getElementById('div');
-        $this->assertEquals('http://www.w3.org/1999/xhtml', $div->namespaceURI);
-
-        $body = $dom->getElementById('body');
-        $this->assertEquals('http://www.w3.org/1999/xhtml', $body->namespaceURI);
-
-        $bar1 = $dom->getElementById('bar1');
-        $this->assertEquals('http://www.prefixed.com/bar1', $bar1->namespaceURI);
-
-        $bar2 = $dom->getElementById('bar2');
-        $this->assertEquals("http://www.prefixed.com/bar2", $bar2->namespaceURI);
-
-        $bar3 = $dom->getElementById('bar3');
-        $this->assertEquals("http://www.w3.org/1999/xhtml", $bar3->namespaceURI);
-
-        $bar4 = $dom->getElementById('bar4');
-        $this->assertEquals("http://www.prefixed.com/bar4", $bar4->namespaceURI);
-
-        $svg = $dom->getElementById('svg');
-        $this->assertEquals("http://www.w3.org/2000/svg", $svg->namespaceURI);
-
-        $prefixed = $dom->getElementById('prefixed');
-        $this->assertEquals("http://www.prefixed.com", $prefixed->namespaceURI);
-
-        $prefixed = $dom->getElementById('bar5');
-        $this->assertEquals("http://www.prefixed.com/xn", $prefixed->namespaceURI);
-
-        $prefixed = $dom->getElementById('bar5_x');
-        $this->assertEquals("http://www.prefixed.com/bar5_x", $prefixed->namespaceURI);
-    }
-
-    public function testMoveNonInlineElements()
-    {
-    	$doc = $this->parse('<p>line1<br/><hr/>line2</p>');
-		$this->assertEquals('<html xmlns="http://www.w3.org/1999/xhtml"><p>line1<br/></p><hr/>line2</html>', $doc->saveXML($doc->documentElement), 'Move non-inline elements outside of inline containers.');
-
-		$doc = $this->parse('<p>line1<div>line2</div></p>');
-		$this->assertEquals('<html xmlns="http://www.w3.org/1999/xhtml"><p>line1</p><div>line2</div></html>', $doc->saveXML($doc->documentElement), 'Move non-inline elements outside of inline containers.');
-    }
-
-    public function testAttributes()
-    {
-        $html = "<!DOCTYPE html>
-      <html>
-      <head><title></title></head>
-      <body id='a' class='b c'></body>
-      </html>";
-        $doc = $this->parse($html);
-        $root = $doc->documentElement;
-
-        $body = $root->GetElementsByTagName('body')->item(0);
-        $this->assertEquals('body', $body->tagName);
-        $this->assertTrue($body->hasAttributes());
-        $this->assertEquals('a', $body->getAttribute('id'));
-        $this->assertEquals('b c', $body->getAttribute('class'));
-
-        $body2 = $doc->getElementById('a');
-        $this->assertEquals('body', $body2->tagName);
-        $this->assertEquals('a', $body2->getAttribute('id'));
-    }
-
-    public function testSVGAttributes()
-    {
-        $html = "<!DOCTYPE html>
-      <html><body>
-      <svg width='150' viewbox='2'>
-      <rect textlength='2'/>
-      <animatecolor>foo</animatecolor>
-      </svg>
-      </body></html>";
-        $doc = $this->parse($html);
-        $root = $doc->documentElement;
-
-        $svg = $root->getElementsByTagName('svg')->item(0);
-        $this->assertTrue($svg->hasAttribute('viewBox'));
-
-        $rect = $root->getElementsByTagName('rect')->item(0);
-        $this->assertTrue($rect->hasAttribute('textLength'));
-
-        $ac = $root->getElementsByTagName('animateColor');
-        $this->assertEquals(1, $ac->length);
-    }
-
-    public function testMathMLAttribute()
-    {
-        $html = '<!doctype html>
-      <html lang="en">
-        <body>
-          <math>
-            <mi>x</mi>
-            <csymbol definitionurl="http://www.example.com/mathops/multiops.html#plusminus">
-              <mo>&PlusMinus;</mo>
-            </csymbol>
-            <mi>y</mi>
-          </math>
-        </body>
-      </html>';
-
-        $doc = $this->parse($html);
-        $root = $doc->documentElement;
-
-        $csymbol = $root->getElementsByTagName('csymbol')->item(0);
-        $this->assertTrue($csymbol->hasAttribute('definitionURL'));
-    }
-
-    public function testMissingHtmlTag()
-    {
-        $html = "<!DOCTYPE html><title>test</title>";
-        $doc = $this->parse($html);
-
-        $this->assertEquals('html', $doc->documentElement->tagName);
-        $this->assertEquals('title', $doc->documentElement->childNodes->item(0)->tagName);
-    }
-
-    public function testComment()
-    {
-        $html = '<html><!--Hello World.--></html>';
-
-        $doc = $this->parse($html);
-
-        $comment = $doc->documentElement->childNodes->item(0);
-        $this->assertEquals(XML_COMMENT_NODE, $comment->nodeType);
-        $this->assertEquals("Hello World.", $comment->data);
-
-        $html = '<!--Hello World.--><html></html>';
-        $doc = $this->parse($html);
-
-        $comment = $doc->childNodes->item(1);
-        $this->assertEquals(XML_COMMENT_NODE, $comment->nodeType);
-        $this->assertEquals("Hello World.", $comment->data);
-
-        $comment = $doc->childNodes->item(2);
-        $this->assertEquals(XML_ELEMENT_NODE, $comment->nodeType);
-        $this->assertEquals("html", $comment->tagName);
-    }
-
-    public function testCDATA()
-    {
-        $html = "<!DOCTYPE html><html><math><![CDATA[test]]></math></html>";
-        $doc = $this->parse($html);
-
-        $wrapper = $doc->getElementsByTagName('math')->item(0);
-        $this->assertEquals(1, $wrapper->childNodes->length);
-        $cdata = $wrapper->childNodes->item(0);
-        $this->assertEquals(XML_CDATA_SECTION_NODE, $cdata->nodeType);
-        $this->assertEquals('test', $cdata->data);
-    }
-
-    public function testText()
-    {
-        $html = "<!DOCTYPE html><html><head></head><body><math>test</math></body></html>";
-        $doc = $this->parse($html);
-
-        $wrapper = $doc->getElementsByTagName('math')->item(0);
-        $this->assertEquals(1, $wrapper->childNodes->length);
-        $data = $wrapper->childNodes->item(0);
-        $this->assertEquals(XML_TEXT_NODE, $data->nodeType);
-        $this->assertEquals('test', $data->data);
-
-        // The DomTreeBuilder has special handling for text when in before head mode.
-        $html = "<!DOCTYPE html><html>
-    Foo<head></head><body></body></html>";
-        $doc = $this->parse($html);
-        $this->assertEquals('Line 0, Col 0: Unexpected text. Ignoring: Foo', $this->errors[0]);
-        $headElement = $doc->documentElement->firstChild;
-        $this->assertEquals('head', $headElement->tagName);
-    }
-
-    public function testParseErrors()
-    {
-        $html = "<!DOCTYPE html><html><math><![CDATA[test";
-        $doc = $this->parse($html);
-
-        // We're JUST testing that we can access errors. Actual testing of
-        // error messages happen in the Tokenizer's tests.
-        $this->assertGreaterThan(0, count($this->errors));
-        $this->assertTrue(is_string($this->errors[0]));
-    }
-
-    public function testProcessingInstruction()
-    {
-        // Test the simple case, which is where PIs are inserted into the DOM.
-        $doc = $this->parse('<!DOCTYPE html><html><?foo bar?>');
-        $this->assertEquals(1, $doc->documentElement->childNodes->length);
-        $pi = $doc->documentElement->firstChild;
-        $this->assertInstanceOf('\DOMProcessingInstruction', $pi);
-        $this->assertEquals('foo', $pi->nodeName);
-        $this->assertEquals('bar', $pi->data);
-
-        // Leading xml PIs should be ignored.
-        $doc = $this->parse('<?xml version="1.0"?><!DOCTYPE html><html><head></head></html>');
-
-        $this->assertEquals(2, $doc->childNodes->length);
-        $this->assertInstanceOf('\DOMDocumentType', $doc->childNodes->item(0));
-        $this->assertInstanceOf('\DOMElement', $doc->childNodes->item(1));
-    }
-
-    public function testAutocloseP()
-    {
-        $html = "<!DOCTYPE html><html><body><p><figure></body></html>";
-        $doc = $this->parse($html);
-
-        $p = $doc->getElementsByTagName('p')->item(0);
-        $this->assertEquals(0, $p->childNodes->length);
-        $this->assertEquals('figure', $p->nextSibling->tagName);
-    }
-
-    public function testAutocloseLI()
-    {
-        $html = '<!doctype html>
-      <html lang="en">
-        <body>
-          <ul><li>Foo<li>Bar<li>Baz</ul>
-        </body>
-      </html>';
-
-        $doc = $this->parse($html);
-        $length = $doc->getElementsByTagName('ul')->item(0)->childNodes->length;
-        $this->assertEquals(3, $length);
-    }
-
-    public function testMathML()
-    {
-        $html = '<!doctype html>
-      <html lang="en">
-        <body>
-          <math xmlns="http://www.w3.org/1998/Math/MathML">
-            <mi>x</mi>
-            <csymbol definitionurl="http://www.example.com/mathops/multiops.html#plusminus">
-              <mo>&PlusMinus;</mo>
-            </csymbol>
-            <mi>y</mi>
-          </math>
-        </body>
-      </html>';
-
-        $doc = $this->parse($html);
-        $math = $doc->getElementsByTagName('math')->item(0);
-        $this->assertEquals('math', $math->tagName);
-        $this->assertEquals('math', $math->nodeName);
-        $this->assertEquals('math', $math->localName);
-        $this->assertEquals('http://www.w3.org/1998/Math/MathML', $math->namespaceURI);
-    }
-
-    public function testSVG()
-    {
-        $html = '<!doctype html>
-      <html lang="en">
-        <body>
-          <svg width="150" height="100" viewBox="0 0 3 2" xmlns="http://www.w3.org/2000/svg">
-            <rect width="1" height="2" x="2" fill="#d2232c" />
-            <text font-family="Verdana" font-size="32">
-              <textpath xlink:href="#Foo">
-                Test Text.
-              </textPath>
-            </text>
-          </svg>
-        </body>
-      </html>';
-
-        $doc = $this->parse($html);
-        $svg = $doc->getElementsByTagName('svg')->item(0);
-        $this->assertEquals('svg', $svg->tagName);
-        $this->assertEquals('svg', $svg->nodeName);
-        $this->assertEquals('svg', $svg->localName);
-        $this->assertEquals('http://www.w3.org/2000/svg', $svg->namespaceURI);
-
-        $textPath = $doc->getElementsByTagName('textPath')->item(0);
-        $this->assertEquals('textPath', $textPath->tagName);
-    }
-
-    public function testNoScript()
-    {
-        $html = '<!DOCTYPE html><html><head><noscript>No JS</noscript></head></html>';
-        $doc = $this->parse($html);
-        $this->assertEmpty($this->errors);
-        $noscript = $doc->getElementsByTagName('noscript')->item(0);
-        $this->assertEquals('noscript', $noscript->tagName);
-    }
-
-    /**
-     * Regression for issue #13
-     */
-    public function testRegressionHTMLNoBody()
-    {
-        $html = '<!DOCTYPE html><html><span id="test">Test</span></html>';
-        $doc = $this->parse($html);
-        $span = $doc->getElementById('test');
-
-        $this->assertEmpty($this->errors);
-
-        $this->assertEquals('span', $span->tagName);
-        $this->assertEquals('Test', $span->textContent);
-    }
-
-    public function testInstructionProcessor()
-    {
-        $string = '<!DOCTYPE html><html><?foo bar ?></html>';
-
-        $treeBuilder = new DOMTreeBuilder();
-        $is = new InstructionProcessorMock();
-        $treeBuilder->setInstructionProcessor($is);
-
-        $input = new StringInputStream($string);
-        $scanner = new Scanner($input);
-        $parser = new Tokenizer($scanner, $treeBuilder);
-
-        $parser->parse();
-        $dom = $treeBuilder->document();
-        $div = $dom->getElementsByTagName('div')->item(0);
-
-        $this->assertEquals(1, $is->count);
-        $this->assertEquals('foo', $is->name);
-        $this->assertEquals('bar ', $is->data);
-        $this->assertEquals('div', $div->tagName);
-        $this->assertEquals('foo', $div->textContent);
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/EventStack.php b/core/vendor/masterminds/html5/test/HTML5/Parser/EventStack.php
deleted file mode 100644
index 60e2abe..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/EventStack.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Elements;
-use Masterminds\HTML5\Parser\EventHandler;
-
-/**
- * This testing class gathers events from a parser and builds a stack of events.
- * It is useful for checking the output of a tokenizer.
- *
- * IMPORTANT:
- *
- * The startTag event also kicks the parser into TEXT_RAW when it encounters
- * script or pre tags. This is to match the behavior required by the HTML5 spec,
- * which says that the tree builder must tell the tokenizer when to switch states.
- */
-class EventStack implements EventHandler
-{
-
-    protected $stack;
-
-    public function __construct()
-    {
-        $this->stack = array();
-    }
-
-    /**
-     * Get the event stack.
-     */
-    public function events()
-    {
-        return $this->stack;
-    }
-
-    public function depth()
-    {
-        return count($this->stack);
-    }
-
-    public function get($index)
-    {
-        return $this->stack[$index];
-    }
-
-    protected function store($event, $data = null)
-    {
-        $this->stack[] = array(
-            'name' => $event,
-            'data' => $data
-        );
-    }
-
-    public function doctype($name, $type = 0, $id = null, $quirks = false)
-    {
-        $args = array(
-            $name,
-            $type,
-            $id,
-            $quirks
-        );
-        $this->store('doctype', $args);
-    }
-
-    public function startTag($name, $attributes = array(), $selfClosing = false)
-    {
-        $args = func_get_args();
-        $this->store('startTag', $args);
-        if ($name == 'pre' || $name == 'script') {
-            return Elements::TEXT_RAW;
-        }
-    }
-
-    public function endTag($name)
-    {
-        $this->store('endTag', array(
-            $name
-        ));
-    }
-
-    public function comment($cdata)
-    {
-        $this->store('comment', array(
-            $cdata
-        ));
-    }
-
-    public function cdata($data)
-    {
-        $this->store('cdata', func_get_args());
-    }
-
-    public function text($cdata)
-    {
-        // fprintf(STDOUT, "Received TEXT event with: " . $cdata);
-        $this->store('text', array(
-            $cdata
-        ));
-    }
-
-    public function eof()
-    {
-        $this->store('eof');
-    }
-
-    public function parseError($msg, $line, $col)
-    {
-        // throw new EventStackParseError(sprintf("%s (line %d, col %d)", $msg, $line, $col));
-        // $this->store(sprintf("%s (line %d, col %d)", $msg, $line, $col));
-        $this->store('error', func_get_args());
-    }
-
-    public function processingInstruction($name, $data = null)
-    {
-        $this->store('pi', func_get_args());
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/EventStackError.php b/core/vendor/masterminds/html5/test/HTML5/Parser/EventStackError.php
deleted file mode 100644
index e58fdff..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/EventStackError.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Parser;
-
-class EventStackError extends \Exception
-{
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.html b/core/vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.html
deleted file mode 100644
index a976e8b..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <title>Test</title>
-  </head>
-  <body>
-    <p>This is a test.</p>
-  </body>
-</html>
\ No newline at end of file
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.php
deleted file mode 100644
index 71dd828..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\FileInputStream;
-
-class FileInputStreamTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    public function testConstruct()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertInstanceOf('\Masterminds\HTML5\Parser\FileInputStream', $s);
-    }
-
-    public function testNext()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $s->next();
-        $this->assertEquals('!', $s->current());
-        $s->next();
-        $this->assertEquals('d', $s->current());
-    }
-
-    public function testKey()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertEquals(0, $s->key());
-
-        $s->next();
-        $this->assertEquals(1, $s->key());
-    }
-
-    public function testPeek()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertEquals('!', $s->peek());
-
-        $s->next();
-        $this->assertEquals('d', $s->peek());
-    }
-
-    public function testCurrent()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertEquals('<', $s->current());
-
-        $s->next();
-        $this->assertEquals('!', $s->current());
-
-        $s->next();
-        $this->assertEquals('d', $s->current());
-    }
-
-    public function testColumnOffset()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-        $this->assertEquals(0, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(1, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(2, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(3, $s->columnOffset());
-
-        // Make sure we get to the second line
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $this->assertEquals(0, $s->columnOffset());
-
-        $s->next();
-        $canary = $s->current(); // h
-        $this->assertEquals('h', $canary);
-        $this->assertEquals(1, $s->columnOffset());
-    }
-
-    public function testCurrentLine()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertEquals(1, $s->currentLine());
-
-        // Make sure we get to the second line
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $this->assertEquals(2, $s->currentLine());
-
-        // Make sure we get to the third line
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $this->assertEquals(3, $s->currentLine());
-    }
-
-    public function testRemainingChars()
-    {
-        $text = file_get_contents(__DIR__ . '/FileInputStreamTest.html');
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-        $this->assertEquals($text, $s->remainingChars());
-
-        $text = substr(file_get_contents(__DIR__ . '/FileInputStreamTest.html'), 1);
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-        $s->next(); // Pop one.
-        $this->assertEquals($text, $s->remainingChars());
-    }
-
-    public function testCharsUnitl()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertEquals('', $s->charsUntil('<'));
-        // Pointer at '<', moves to ' '
-        $this->assertEquals('<!doctype', $s->charsUntil(' ', 20));
-
-        // Pointer at ' ', moves to '>'
-        $this->assertEquals(' html', $s->charsUntil('>'));
-
-        // Pointer at '>', moves to '\n'.
-        $this->assertEquals('>', $s->charsUntil("\n"));
-
-        // Pointer at '\n', move forward then to the next'\n'.
-        $s->next();
-        $this->assertEquals('<html lang="en">', $s->charsUntil("\n"));
-
-        // Ony get one of the spaces.
-        $this->assertEquals("\n ", $s->charsUntil('<', 2));
-
-        // Get the other space.
-        $this->assertEquals(" ", $s->charsUntil('<'));
-
-        // This should scan to the end of the file.
-        $text = "<head>
-    <meta charset=\"utf-8\">
-    <title>Test</title>
-  </head>
-  <body>
-    <p>This is a test.</p>
-  </body>
-</html>";
-        $this->assertEquals($text, $s->charsUntil("\t"));
-    }
-
-    public function testCharsWhile()
-    {
-        $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
-
-        $this->assertEquals('<!', $s->charsWhile('!<'));
-        $this->assertEquals('', $s->charsWhile('>'));
-        $this->assertEquals('doctype', $s->charsWhile('odcyept'));
-        $this->assertEquals(' htm', $s->charsWhile('html ', 4));
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/InstructionProcessorMock.php b/core/vendor/masterminds/html5/test/HTML5/Parser/InstructionProcessorMock.php
deleted file mode 100644
index 32a2204..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/InstructionProcessorMock.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Parser;
-
-class InstructionProcessorMock implements \Masterminds\HTML5\InstructionProcessor
-{
-
-    public $name = null;
-
-    public $data = null;
-
-    public $count = 0;
-
-    public function process(\DOMElement $element, $name, $data)
-    {
-        $this->name = $name;
-        $this->data = $data;
-        $this->count ++;
-
-        $div = $element->ownerDocument->createElement("div");
-        $div->nodeValue = 'foo';
-
-        $element->appendChild($div);
-
-        return $div;
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/ScannerTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/ScannerTest.php
deleted file mode 100644
index 8fa5110..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/ScannerTest.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-/**
- * @file
- * Test the Scanner. This requires the InputStream tests are all good.
- */
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\StringInputStream;
-use Masterminds\HTML5\Parser\Scanner;
-
-class ScannerTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    /**
-     * A canary test to make sure the basics are setup and working.
-     */
-    public function testConstruct()
-    {
-        $is = new StringInputStream("abc");
-        $s = new Scanner($is);
-
-        $this->assertInstanceOf('\Masterminds\HTML5\Parser\Scanner', $s);
-    }
-
-    public function testNext()
-    {
-        $s = new Scanner(new StringInputStream("abc"));
-
-        $this->assertEquals('b', $s->next());
-        $this->assertEquals('c', $s->next());
-    }
-
-    public function testPosition()
-    {
-        $s = new Scanner(new StringInputStream("abc"));
-
-        $this->assertEquals(0, $s->position());
-
-        $s->next();
-        $this->assertEquals(1, $s->position());
-    }
-
-    public function testPeek()
-    {
-        $s = new Scanner(new StringInputStream("abc"));
-
-        $this->assertEquals('b', $s->peek());
-
-        $s->next();
-        $this->assertEquals('c', $s->peek());
-    }
-
-    public function testCurrent()
-    {
-        $s = new Scanner(new StringInputStream("abc"));
-
-        // Before scanning the string begins the current is empty.
-        $this->assertEquals('a', $s->current());
-
-        $c = $s->next();
-        $this->assertEquals('b', $s->current());
-
-        // Test movement through the string.
-        $c = $s->next();
-        $this->assertEquals('c', $s->current());
-    }
-
-    public function testUnconsume()
-    {
-        $s = new Scanner(new StringInputStream("abcdefghijklmnopqrst"));
-
-        // Get initial position.
-        $s->next();
-        $start = $s->position();
-
-        // Move forward a bunch of positions.
-        $amount = 7;
-        for ($i = 0; $i < $amount; $i ++) {
-            $s->next();
-        }
-
-        // Roll back the amount we moved forward.
-        $s->unconsume($amount);
-
-        $this->assertEquals($start, $s->position());
-    }
-
-    public function testGetHex()
-    {
-        $s = new Scanner(new StringInputStream("ab13ck45DE*"));
-
-        $this->assertEquals('ab13c', $s->getHex());
-
-        $s->next();
-        $this->assertEquals('45DE', $s->getHex());
-    }
-
-    public function testGetAsciiAlpha()
-    {
-        $s = new Scanner(new StringInputStream("abcdef1%mnop*"));
-
-        $this->assertEquals('abcdef', $s->getAsciiAlpha());
-
-        // Move past the 1% to scan the next group of text.
-        $s->next();
-        $s->next();
-        $this->assertEquals('mnop', $s->getAsciiAlpha());
-    }
-
-    public function testGetAsciiAlphaNum()
-    {
-        $s = new Scanner(new StringInputStream("abcdef1ghpo#mn94op"));
-
-        $this->assertEquals('abcdef1ghpo', $s->getAsciiAlphaNum());
-
-        // Move past the # to scan the next group of text.
-        $s->next();
-        $this->assertEquals('mn94op', $s->getAsciiAlphaNum());
-    }
-
-    public function testGetNumeric()
-    {
-        $s = new Scanner(new StringInputStream("1784a 45 9867 #"));
-
-        $this->assertEquals('1784', $s->getNumeric());
-
-        // Move past the 'a ' to scan the next group of text.
-        $s->next();
-        $s->next();
-        $this->assertEquals('45', $s->getNumeric());
-    }
-
-    public function testCurrentLine()
-    {
-        $s = new Scanner(new StringInputStream("1784a\n45\n9867 #\nThis is a test."));
-
-        $this->assertEquals(1, $s->currentLine());
-
-        // Move to the next line.
-        $s->getAsciiAlphaNum();
-        $s->next();
-        $this->assertEquals(2, $s->currentLine());
-    }
-
-    public function testColumnOffset()
-    {
-        $s = new Scanner(new StringInputStream("1784a a\n45 9867 #\nThis is a test."));
-
-        // Move the pointer to the space.
-        $s->getAsciiAlphaNum();
-        $this->assertEquals(5, $s->columnOffset());
-
-        // We move the pointer ahead. There must be a better way to do this.
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $s->next();
-        $this->assertEquals(3, $s->columnOffset());
-    }
-
-    public function testRemainingChars()
-    {
-        $string = "\n45\n9867 #\nThis is a test.";
-        $s = new Scanner(new StringInputStream("1784a\n45\n9867 #\nThis is a test."));
-
-        $s->getAsciiAlphaNum();
-        $this->assertEquals($string, $s->remainingChars());
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/StringInputStreamTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/StringInputStreamTest.php
deleted file mode 100644
index f87cc10..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/StringInputStreamTest.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\StringInputStream;
-
-class StringInputStreamTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    /**
-     * A canary test to make sure the basics are setup and working.
-     */
-    public function testConstruct()
-    {
-        $s = new StringInputStream("abc");
-
-        $this->assertInstanceOf('\Masterminds\HTML5\Parser\StringInputStream', $s);
-    }
-
-    public function testNext()
-    {
-        $s = new StringInputStream("abc");
-
-        $s->next();
-        $this->assertEquals('b', $s->current());
-        $s->next();
-        $this->assertEquals('c', $s->current());
-    }
-
-    public function testKey()
-    {
-        $s = new StringInputStream("abc");
-
-        $this->assertEquals(0, $s->key());
-
-        $s->next();
-        $this->assertEquals(1, $s->key());
-    }
-
-    public function testPeek()
-    {
-        $s = new StringInputStream("abc");
-
-        $this->assertEquals('b', $s->peek());
-
-        $s->next();
-        $this->assertEquals('c', $s->peek());
-    }
-
-    public function testCurrent()
-    {
-        $s = new StringInputStream("abc");
-
-        // Before scanning the string begins the current is empty.
-        $this->assertEquals('a', $s->current());
-
-        $s->next();
-        $this->assertEquals('b', $s->current());
-
-        // Test movement through the string.
-        $s->next();
-        $this->assertEquals('c', $s->current());
-    }
-
-    public function testColumnOffset()
-    {
-        $s = new StringInputStream("abc\ndef\n");
-        $this->assertEquals(0, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(1, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(2, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(3, $s->columnOffset());
-        $s->next(); // LF
-        $this->assertEquals(0, $s->columnOffset());
-        $s->next();
-        $canary = $s->current(); // e
-        $this->assertEquals('e', $canary);
-        $this->assertEquals(1, $s->columnOffset());
-
-        $s = new StringInputStream("abc");
-        $this->assertEquals(0, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(1, $s->columnOffset());
-        $s->next();
-        $this->assertEquals(2, $s->columnOffset());
-    }
-
-    public function testCurrentLine()
-    {
-        $txt = "1\n2\n\n\n\n3";
-        $stream = new StringInputStream($txt);
-        $this->assertEquals(1, $stream->currentLine());
-
-        // Advance over 1 and LF on to line 2 value 2.
-        $stream->next();
-        $stream->next();
-        $canary = $stream->current();
-        $this->assertEquals(2, $stream->currentLine());
-        $this->assertEquals('2', $canary);
-
-        // Advance over 4x LF
-        $stream->next();
-        $stream->next();
-        $stream->next();
-        $stream->next();
-        $stream->next();
-        $this->assertEquals(6, $stream->currentLine());
-        $this->assertEquals('3', $stream->current());
-
-        // Make sure it doesn't do 7.
-        $this->assertEquals(6, $stream->currentLine());
-    }
-
-    public function testRemainingChars()
-    {
-        $text = "abcd";
-        $s = new StringInputStream($text);
-        $this->assertEquals($text, $s->remainingChars());
-
-        $text = "abcd";
-        $s = new StringInputStream($text);
-        $s->next(); // Pop one.
-        $this->assertEquals('bcd', $s->remainingChars());
-    }
-
-    public function testCharsUnitl()
-    {
-        $text = "abcdefffffffghi";
-        $s = new StringInputStream($text);
-        $this->assertEquals('', $s->charsUntil('a'));
-        // Pointer at 'a', moves 2 to 'c'
-        $this->assertEquals('ab', $s->charsUntil('w', 2));
-
-        // Pointer at 'c', moves to first 'f'
-        $this->assertEquals('cde', $s->charsUntil('fzxv'));
-
-        // Only get five 'f's
-        $this->assertEquals('fffff', $s->charsUntil('g', 5));
-
-        // Get just the last two 'f's
-        $this->assertEquals('ff', $s->charsUntil('g'));
-
-        // This should scan to the end.
-        $this->assertEquals('ghi', $s->charsUntil('w', 9));
-    }
-
-    public function testCharsWhile()
-    {
-        $text = "abcdefffffffghi";
-        $s = new StringInputStream($text);
-
-        $this->assertEquals('ab', $s->charsWhile('ba'));
-
-        $this->assertEquals('', $s->charsWhile('a'));
-        $this->assertEquals('cde', $s->charsWhile('cdeba'));
-        $this->assertEquals('ff', $s->charsWhile('f', 2));
-        $this->assertEquals('fffff', $s->charsWhile('f'));
-        $this->assertEquals('g', $s->charsWhile('fg'));
-        $this->assertEquals('hi', $s->charsWhile('fghi', 99));
-    }
-
-    public function testBOM()
-    {
-        // Ignore in-text BOM.
-        $stream = new StringInputStream("a\xEF\xBB\xBF");
-        $this->assertEquals("a\xEF\xBB\xBF", $stream->remainingChars(), 'A non-leading U+FEFF (BOM/ZWNBSP) should remain');
-
-        // Strip leading BOM
-        $leading = new StringInputStream("\xEF\xBB\xBFa");
-        $this->assertEquals('a', $leading->current(), 'BOM should be stripped');
-    }
-
-    public function testCarriageReturn()
-    {
-        // Replace NULL with Unicode replacement.
-        $stream = new StringInputStream("\0\0\0");
-        $this->assertEquals("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD", $stream->remainingChars(), 'Null character should be replaced by U+FFFD');
-        $this->assertEquals(3, count($stream->errors), 'Null character should set parse error: ' . print_r($stream->errors, true));
-
-        // Remove CR when next to LF.
-        $stream = new StringInputStream("\r\n");
-        $this->assertEquals("\n", $stream->remainingChars(), 'CRLF should be replaced by LF');
-
-        // Convert CR to LF when on its own.
-        $stream = new StringInputStream("\r");
-        $this->assertEquals("\n", $stream->remainingChars(), 'CR should be replaced by LF');
-    }
-
-    public function invalidParseErrorTestHandler($input, $numErrors, $name)
-    {
-        $stream = new StringInputStream($input, 'UTF-8');
-        $this->assertEquals($input, $stream->remainingChars(), $name . ' (stream content)');
-        $this->assertEquals($numErrors, count($stream->errors), $name . ' (number of errors)');
-    }
-
-    public function testInvalidReplace()
-    {
-        $invalidTest = array(
-
-            // Min/max overlong
-            "\xC0\x80a" => 'Overlong representation of U+0000',
-            "\xE0\x80\x80a" => 'Overlong representation of U+0000',
-            "\xF0\x80\x80\x80a" => 'Overlong representation of U+0000',
-            "\xF8\x80\x80\x80\x80a" => 'Overlong representation of U+0000',
-            "\xFC\x80\x80\x80\x80\x80a" => 'Overlong representation of U+0000',
-            "\xC1\xBFa" => 'Overlong representation of U+007F',
-            "\xE0\x9F\xBFa" => 'Overlong representation of U+07FF',
-            "\xF0\x8F\xBF\xBFa" => 'Overlong representation of U+FFFF',
-
-            "a\xDF" => 'Incomplete two byte sequence (missing final byte)',
-            "a\xEF\xBF" => 'Incomplete three byte sequence (missing final byte)',
-            "a\xF4\xBF\xBF" => 'Incomplete four byte sequence (missing final byte)',
-
-            // Min/max continuation bytes
-            "a\x80" => 'Lone 80 continuation byte',
-            "a\xBF" => 'Lone BF continuation byte',
-
-            // Invalid bytes (these can never occur)
-            "a\xFE" => 'Invalid FE byte',
-            "a\xFF" => 'Invalid FF byte'
-        );
-        foreach ($invalidTest as $test => $note) {
-            $stream = new StringInputStream($test);
-            $this->assertEquals('a', $stream->remainingChars(), $note);
-        }
-
-        // MPB:
-        // It appears that iconv just leaves these alone. Not sure what to
-        // do.
-        /*
-         * $converted = array( "a\xF5\x90\x80\x80" => 'U+110000, off unicode planes.', ); foreach ($converted as $test => $note) { $stream = new StringInputStream($test); $this->assertEquals(2, mb_strlen($stream->remainingChars()), $note); }
-         */
-    }
-
-    public function testInvalidParseError()
-    {
-        // C0 controls (except U+0000 and U+000D due to different handling)
-        $this->invalidParseErrorTestHandler("\x01", 1, 'U+0001 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x02", 1, 'U+0002 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x03", 1, 'U+0003 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x04", 1, 'U+0004 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x05", 1, 'U+0005 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x06", 1, 'U+0006 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x07", 1, 'U+0007 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x08", 1, 'U+0008 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x09", 0, 'U+0009 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x0A", 0, 'U+000A (C0 control)');
-        $this->invalidParseErrorTestHandler("\x0B", 1, 'U+000B (C0 control)');
-        $this->invalidParseErrorTestHandler("\x0C", 0, 'U+000C (C0 control)');
-        $this->invalidParseErrorTestHandler("\x0E", 1, 'U+000E (C0 control)');
-        $this->invalidParseErrorTestHandler("\x0F", 1, 'U+000F (C0 control)');
-        $this->invalidParseErrorTestHandler("\x10", 1, 'U+0010 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x11", 1, 'U+0011 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x12", 1, 'U+0012 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x13", 1, 'U+0013 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x14", 1, 'U+0014 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x15", 1, 'U+0015 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x16", 1, 'U+0016 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x17", 1, 'U+0017 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x18", 1, 'U+0018 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x19", 1, 'U+0019 (C0 control)');
-        $this->invalidParseErrorTestHandler("\x1A", 1, 'U+001A (C0 control)');
-        $this->invalidParseErrorTestHandler("\x1B", 1, 'U+001B (C0 control)');
-        $this->invalidParseErrorTestHandler("\x1C", 1, 'U+001C (C0 control)');
-        $this->invalidParseErrorTestHandler("\x1D", 1, 'U+001D (C0 control)');
-        $this->invalidParseErrorTestHandler("\x1E", 1, 'U+001E (C0 control)');
-        $this->invalidParseErrorTestHandler("\x1F", 1, 'U+001F (C0 control)');
-
-        // DEL (U+007F)
-        $this->invalidParseErrorTestHandler("\x7F", 1, 'U+007F');
-
-        // C1 Controls
-        $this->invalidParseErrorTestHandler("\xC2\x80", 1, 'U+0080 (C1 control)');
-        $this->invalidParseErrorTestHandler("\xC2\x9F", 1, 'U+009F (C1 control)');
-        $this->invalidParseErrorTestHandler("\xC2\xA0", 0, 'U+00A0 (first codepoint above highest C1 control)');
-
-        // Charcters surrounding surrogates
-        $this->invalidParseErrorTestHandler("\xED\x9F\xBF", 0, 'U+D7FF (one codepoint below lowest surrogate codepoint)');
-        $this->invalidParseErrorTestHandler("\xEF\xBF\xBD", 0, 'U+DE00 (one codepoint above highest surrogate codepoint)');
-
-        // Permanent noncharacters
-        $this->invalidParseErrorTestHandler("\xEF\xB7\x90", 1, 'U+FDD0 (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xEF\xB7\xAF", 1, 'U+FDEF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xEF\xBF\xBE", 1, 'U+FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xEF\xBF\xBF", 1, 'U+FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF0\x9F\xBF\xBE", 1, 'U+1FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF0\x9F\xBF\xBF", 1, 'U+1FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF0\xAF\xBF\xBE", 1, 'U+2FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF0\xAF\xBF\xBF", 1, 'U+2FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF0\xBF\xBF\xBE", 1, 'U+3FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF0\xBF\xBF\xBF", 1, 'U+3FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\x8F\xBF\xBE", 1, 'U+4FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\x8F\xBF\xBF", 1, 'U+4FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\x9F\xBF\xBE", 1, 'U+5FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\x9F\xBF\xBF", 1, 'U+5FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\xAF\xBF\xBE", 1, 'U+6FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\xAF\xBF\xBF", 1, 'U+6FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\xBF\xBF\xBE", 1, 'U+7FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF1\xBF\xBF\xBF", 1, 'U+7FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\x8F\xBF\xBE", 1, 'U+8FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\x8F\xBF\xBF", 1, 'U+8FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\x9F\xBF\xBE", 1, 'U+9FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\x9F\xBF\xBF", 1, 'U+9FFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\xAF\xBF\xBE", 1, 'U+AFFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\xAF\xBF\xBF", 1, 'U+AFFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\xBF\xBF\xBE", 1, 'U+BFFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF2\xBF\xBF\xBF", 1, 'U+BFFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\x8F\xBF\xBE", 1, 'U+CFFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\x8F\xBF\xBF", 1, 'U+CFFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\x9F\xBF\xBE", 1, 'U+DFFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\x9F\xBF\xBF", 1, 'U+DFFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\xAF\xBF\xBE", 1, 'U+EFFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\xAF\xBF\xBF", 1, 'U+EFFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\xBF\xBF\xBE", 1, 'U+FFFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF3\xBF\xBF\xBF", 1, 'U+FFFFF (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF4\x8F\xBF\xBE", 1, 'U+10FFFE (permanent noncharacter)');
-        $this->invalidParseErrorTestHandler("\xF4\x8F\xBF\xBF", 1, 'U+10FFFF (permanent noncharacter)');
-
-        // MPB: These pass on some versions of iconv, and fail on others. Since we aren't in the
-        // business of writing tests against iconv, I've just commented these out. Should revisit
-        // at a later point.
-        /*
-         * $this->invalidParseErrorTestHandler("\xED\xA0\x80", 1, 'U+D800 (UTF-16 surrogate character)'); $this->invalidParseErrorTestHandler("\xED\xAD\xBF", 1, 'U+DB7F (UTF-16 surrogate character)'); $this->invalidParseErrorTestHandler("\xED\xAE\x80", 1, 'U+DB80 (UTF-16 surrogate character)'); $this->invalidParseErrorTestHandler("\xED\xAF\xBF", 1, 'U+DBFF (UTF-16 surrogate character)'); $this->invalidParseErrorTestHandler("\xED\xB0\x80", 1, 'U+DC00 (UTF-16 surrogate character)'); $this->invalidParseErrorTestHandler("\xED\xBE\x80", 1, 'U+DF80 (UTF-16 surrogate character)'); $this->invalidParseErrorTestHandler("\xED\xBF\xBF", 1, 'U+DFFF (UTF-16 surrogate character)'); // Paired UTF-16 surrogates $this->invalidParseErrorTestHandler("\xED\xA0\x80\xED\xB0\x80", 2, 'U+D800 U+DC00 (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xA0\x80\xED\xBF\xBF", 2, 'U+D800 U+DFFF (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xAD\xBF\xED\xB0\x80", 2, 'U+DB7F U+DC00 (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xAD\xBF\xED\xBF\xBF", 2, 'U+DB7F U+DFFF (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xAE\x80\xED\xB0\x80", 2, 'U+DB80 U+DC00 (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xAE\x80\xED\xBF\xBF", 2, 'U+DB80 U+DFFF (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xAF\xBF\xED\xB0\x80", 2, 'U+DBFF U+DC00 (paired UTF-16 surrogates)'); $this->invalidParseErrorTestHandler("\xED\xAF\xBF\xED\xBF\xBF", 2, 'U+DBFF U+DFFF (paired UTF-16 surrogates)');
-         */
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/TokenizerTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/TokenizerTest.php
deleted file mode 100644
index 3d834fd..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/TokenizerTest.php
+++ /dev/null
@@ -1,970 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\UTF8Utils;
-use Masterminds\HTML5\Parser\StringInputStream;
-use Masterminds\HTML5\Parser\Scanner;
-use Masterminds\HTML5\Parser\Tokenizer;
-
-class TokenizerTest extends \Masterminds\HTML5\Tests\TestCase
-{
-    // ================================================================
-    // Additional assertions.
-    // ================================================================
-    /**
-     * Tests that an event matches both the event type and the expected value.
-     *
-     * @param string $type
-     *            Expected event type.
-     * @param string $expects
-     *            The value expected in $event['data'][0].
-     */
-    public function assertEventEquals($type, $expects, $event)
-    {
-        $this->assertEquals($type, $event['name'], "Event $type for " . print_r($event, true));
-        if (is_array($expects)) {
-            $this->assertEquals($expects, $event['data'], "Event $type should equal " . print_r($expects, true) . ": " . print_r($event, true));
-        } else {
-            $this->assertEquals($expects, $event['data'][0], "Event $type should equal $expects: " . print_r($event, true));
-        }
-    }
-
-    /**
-     * Assert that a given event is 'error'.
-     */
-    public function assertEventError($event)
-    {
-        $this->assertEquals('error', $event['name'], "Expected error for event: " . print_r($event, true));
-    }
-
-    /**
-     * Asserts that all of the tests are good.
-     *
-     * This loops through a map of tests/expectations and runs a few assertions on each test.
-     *
-     * Checks:
-     * - depth (if depth is > 0)
-     * - event name
-     * - matches on event 0.
-     */
-    protected function isAllGood($name, $depth, $tests, $debug = false)
-    {
-        foreach ($tests as $try => $expects) {
-            if ($debug) {
-                fprintf(STDOUT, "%s expects %s\n", $try, print_r($expects, true));
-            }
-            $e = $this->parse($try);
-            if ($depth > 0) {
-                $this->assertEquals($depth, $e->depth(), "Expected depth $depth for test $try." . print_r($e, true));
-            }
-            $this->assertEventEquals($name, $expects, $e->get(0));
-        }
-    }
-
-    // ================================================================
-    // Utility functions.
-    // ================================================================
-    public function testParse()
-    {
-        list ($tok, $events) = $this->createTokenizer('');
-
-        $tok->parse();
-        $e1 = $events->get(0);
-
-        $this->assertEquals(1, $events->Depth());
-        $this->assertEquals('eof', $e1['name']);
-    }
-
-    public function testWhitespace()
-    {
-        $spaces = '    ';
-        list ($tok, $events) = $this->createTokenizer($spaces);
-
-        $tok->parse();
-
-        $this->assertEquals(2, $events->depth());
-
-        $e1 = $events->get(0);
-
-        $this->assertEquals('text', $e1['name']);
-        $this->assertEquals($spaces, $e1['data'][0]);
-    }
-
-    public function testCharacterReference()
-    {
-        $good = array(
-            '&amp;' => '&',
-            '&#x0003c;' => '<',
-            '&#38;' => '&',
-            '&' => '&'
-        );
-        $this->isAllGood('text', 2, $good);
-
-        // Test with broken charref
-        $str = '&foo';
-        $events = $this->parse($str);
-        $e1 = $events->get(0);
-        $this->assertEquals('error', $e1['name']);
-
-        $str = '&#xfoo';
-        $events = $this->parse($str);
-        $e1 = $events->get(0);
-        $this->assertEquals('error', $e1['name']);
-
-        $str = '&#foo';
-        $events = $this->parse($str);
-        $e1 = $events->get(0);
-        $this->assertEquals('error', $e1['name']);
-
-        // FIXME: Once the text processor is done, need to verify that the
-        // tokens are transformed correctly into text.
-    }
-
-    public function testBogusComment()
-    {
-        $bogus = array(
-            '</+this is a bogus comment. +>',
-            '<!+this is a bogus comment. !>',
-            '<!D OCTYPE foo bar>',
-            '<!DOCTYEP foo bar>',
-            '<![CADATA[ TEST ]]>',
-            '<![CDATA Hello ]]>',
-            '<![CDATA[ Hello [[>',
-            '<!CDATA[[ test ]]>',
-            '<![CDATA[',
-            '<![CDATA[hellooooo hello',
-            '<? Hello World ?>',
-            '<? Hello World'
-        );
-        foreach ($bogus as $str) {
-            $events = $this->parse($str);
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('comment', $str, $events->get(1));
-        }
-    }
-
-    public function testEndTag()
-    {
-        $succeed = array(
-            '</a>' => 'a',
-            '</test>' => 'test',
-            '</test
-      >' => 'test',
-            '</thisIsTheTagThatDoesntEndItJustGoesOnAndOnMyFriend>' => 'thisisthetagthatdoesntenditjustgoesonandonmyfriend',
-            // See 8.2.4.10, which requires this and does not say error.
-            '</a<b>' => 'a<b'
-        );
-        $this->isAllGood('endTag', 2, $succeed);
-
-        // Recoverable failures
-        $fail = array(
-            '</a class="monkey">' => 'a',
-            '</a <b>' => 'a',
-            '</a <b <c>' => 'a',
-            '</a is the loneliest letter>' => 'a',
-            '</a' => 'a'
-        );
-        foreach ($fail as $test => $result) {
-            $events = $this->parse($test);
-            $this->assertEquals(3, $events->depth());
-            // Should have triggered an error.
-            $this->assertEventError($events->get(0));
-            // Should have tried to parse anyway.
-            $this->assertEventEquals('endTag', $result, $events->get(1));
-        }
-
-        // BogoComments
-        $comments = array(
-            '</>' => '</>',
-            '</ >' => '</ >',
-            '</ a>' => '</ a>'
-        );
-        foreach ($comments as $test => $result) {
-            $events = $this->parse($test);
-            $this->assertEquals(3, $events->depth());
-
-            // Should have triggered an error.
-            $this->assertEventError($events->get(0));
-
-            // Should have tried to parse anyway.
-            $this->assertEventEquals('comment', $result, $events->get(1));
-        }
-    }
-
-    public function testComment()
-    {
-        $good = array(
-            '<!--easy-->' => 'easy',
-            '<!-- 1 > 0 -->' => ' 1 > 0 ',
-            '<!-- --$i -->' => ' --$i ',
-            '<!----$i-->' => '--$i',
-            '<!-- 1 > 0 -->' => ' 1 > 0 ',
-            "<!--\nHello World.\na-->" => "\nHello World.\na",
-            '<!-- <!-- -->' => ' <!-- '
-        );
-        foreach ($good as $test => $expected) {
-            $events = $this->parse($test);
-            $this->assertEventEquals('comment', $expected, $events->get(0));
-        }
-
-        $fail = array(
-            '<!-->' => '',
-            '<!--Hello' => 'Hello',
-            "<!--\0Hello" => UTF8Utils::FFFD . 'Hello',
-            '<!--' => ''
-        );
-        foreach ($fail as $test => $expected) {
-            $events = $this->parse($test);
-            $this->assertEquals(3, $events->depth());
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('comment', $expected, $events->get(1));
-        }
-    }
-
-    public function testCDATASection()
-    {
-        $good = array(
-            '<![CDATA[ This is a test. ]]>' => ' This is a test. ',
-            '<![CDATA[CDATA]]>' => 'CDATA',
-            '<![CDATA[ ]] > ]]>' => ' ]] > ',
-            '<![CDATA[ ]]>' => ' '
-        );
-        $this->isAllGood('cdata', 2, $good);
-    }
-
-    public function testDoctype()
-    {
-        $good = array(
-            '<!DOCTYPE html>' => array(
-                'html',
-                0,
-                null,
-                false
-            ),
-            '<!doctype html>' => array(
-                'html',
-                0,
-                null,
-                false
-            ),
-            '<!DocType html>' => array(
-                'html',
-                0,
-                null,
-                false
-            ),
-            "<!DOCTYPE\nhtml>" => array(
-                'html',
-                0,
-                null,
-                false
-            ),
-            "<!DOCTYPE\fhtml>" => array(
-                'html',
-                0,
-                null,
-                false
-            ),
-            '<!DOCTYPE html PUBLIC "foo bar">' => array(
-                'html',
-                EventStack::DOCTYPE_PUBLIC,
-                'foo bar',
-                false
-            ),
-            "<!DOCTYPE html PUBLIC 'foo bar'>" => array(
-                'html',
-                EventStack::DOCTYPE_PUBLIC,
-                'foo bar',
-                false
-            ),
-            '<!DOCTYPE      html      PUBLIC     "foo bar"    >' => array(
-                'html',
-                EventStack::DOCTYPE_PUBLIC,
-                'foo bar',
-                false
-            ),
-            "<!DOCTYPE html \nPUBLIC\n'foo bar'>" => array(
-                'html',
-                EventStack::DOCTYPE_PUBLIC,
-                'foo bar',
-                false
-            ),
-            '<!DOCTYPE html SYSTEM "foo bar">' => array(
-                'html',
-                EventStack::DOCTYPE_SYSTEM,
-                'foo bar',
-                false
-            ),
-            "<!DOCTYPE html SYSTEM 'foo bar'>" => array(
-                'html',
-                EventStack::DOCTYPE_SYSTEM,
-                'foo bar',
-                false
-            ),
-            '<!DOCTYPE      html      SYSTEM "foo/bar"    >' => array(
-                'html',
-                EventStack::DOCTYPE_SYSTEM,
-                'foo/bar',
-                false
-            ),
-            "<!DOCTYPE html \nSYSTEM\n'foo bar'>" => array(
-                'html',
-                EventStack::DOCTYPE_SYSTEM,
-                'foo bar',
-                false
-            )
-        );
-        $this->isAllGood('doctype', 2, $good);
-
-        $bad = array(
-            '<!DOCTYPE>' => array(
-                null,
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE    >' => array(
-                null,
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE  foo' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE foo PUB' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE foo PUB>' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE  foo PUB "Looks good">' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE  foo SYSTME "Looks good"' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-
-            // Can't tell whether these are ids or ID types, since the context is chopped.
-            '<!DOCTYPE foo PUBLIC' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE  foo PUBLIC>' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE foo SYSTEM' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-            '<!DOCTYPE  foo SYSTEM>' => array(
-                'foo',
-                EventStack::DOCTYPE_NONE,
-                null,
-                true
-            ),
-
-            '<!DOCTYPE html SYSTEM "foo bar"' => array(
-                'html',
-                EventStack::DOCTYPE_SYSTEM,
-                'foo bar',
-                true
-            ),
-            '<!DOCTYPE html SYSTEM "foo bar" more stuff>' => array(
-                'html',
-                EventStack::DOCTYPE_SYSTEM,
-                'foo bar',
-                true
-            )
-        );
-        foreach ($bad as $test => $expects) {
-            $events = $this->parse($test);
-            // fprintf(STDOUT, $test . PHP_EOL);
-            $this->assertEquals(3, $events->depth(), "Counting events for '$test': " . print_r($events, true));
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('doctype', $expects, $events->get(1));
-        }
-    }
-
-    public function testProcessorInstruction()
-    {
-        $good = array(
-            '<?hph ?>' => 'hph',
-            '<?hph echo "Hello World"; ?>' => array(
-                'hph',
-                'echo "Hello World"; '
-            ),
-            "<?hph \necho 'Hello World';\n?>" => array(
-                'hph',
-                "echo 'Hello World';\n"
-            )
-        );
-        $this->isAllGood('pi', 2, $good);
-    }
-
-    /**
-     * This tests just simple tags.
-     */
-    public function testSimpleTags()
-    {
-        $open = array(
-            '<foo>' => 'foo',
-            '<FOO>' => 'foo',
-            '<fOO>' => 'foo',
-            '<foo >' => 'foo',
-            "<foo\n\n\n\n>" => 'foo',
-            '<foo:bar>' => 'foo:bar'
-        );
-        $this->isAllGood('startTag', 2, $open);
-
-        $selfClose = array(
-            '<foo/>' => 'foo',
-            '<FOO/>' => 'foo',
-            '<foo />' => 'foo',
-            "<foo\n\n\n\n/>" => 'foo',
-            '<foo:bar/>' => 'foo:bar'
-        );
-        foreach ($selfClose as $test => $expects) {
-            $events = $this->parse($test);
-            $this->assertEquals(3, $events->depth(), "Counting events for '$test'" . print_r($events, true));
-            $this->assertEventEquals('startTag', $expects, $events->get(0));
-            $this->assertEventEquals('endTag', $expects, $events->get(1));
-        }
-
-        $bad = array(
-            '<foo' => 'foo',
-            '<foo ' => 'foo',
-            '<foo/' => 'foo',
-            '<foo /' => 'foo'
-        );
-
-        foreach ($bad as $test => $expects) {
-            $events = $this->parse($test);
-            $this->assertEquals(3, $events->depth(), "Counting events for '$test': " . print_r($events, true));
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('startTag', $expects, $events->get(1));
-        }
-    }
-
-    public function testTagsWithAttributeAndMissingName()
-    {
-        $cases = array(
-            '<id="top_featured">' => 'id',
-            '<color="white">' => 'color',
-            "<class='neaktivni_stranka'>" => 'class',
-            '<bgcolor="white">' => 'bgcolor',
-            '<class="nom">' => 'class'
-        );
-
-        foreach ($cases as $html => $expected) {
-            $events = $this->parse($html);
-            $this->assertEventError($events->get(0));
-            $this->assertEventError($events->get(1));
-            $this->assertEventError($events->get(2));
-            $this->assertEventEquals('startTag', $expected, $events->get(3));
-            $this->assertEventEquals('eof', null, $events->get(4));
-        }
-    }
-
-    public function testTagNotClosedAfterTagName()
-    {
-        $cases = array(
-            "<noscript<img>" => array(
-                'noscript',
-                'img'
-            ),
-            '<center<a>' => array(
-                'center',
-                'a'
-            ),
-            '<br<br>' => array(
-                'br',
-                'br'
-            )
-        );
-
-        foreach ($cases as $html => $expected) {
-            $events = $this->parse($html);
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('startTag', $expected[0], $events->get(1));
-            $this->assertEventEquals('startTag', $expected[1], $events->get(2));
-            $this->assertEventEquals('eof', null, $events->get(3));
-        }
-
-        $events = $this->parse('<span<>02</span>');
-        $this->assertEventError($events->get(0));
-        $this->assertEventEquals('startTag', 'span', $events->get(1));
-        $this->assertEventError($events->get(2));
-        $this->assertEventEquals('text', '>02', $events->get(3));
-        $this->assertEventEquals('endTag', 'span', $events->get(4));
-        $this->assertEventEquals('eof', null, $events->get(5));
-
-        $events = $this->parse('<p</p>');
-        $this->assertEventError($events->get(0));
-        $this->assertEventEquals('startTag', 'p', $events->get(1));
-        $this->assertEventEquals('endTag', 'p', $events->get(2));
-        $this->assertEventEquals('eof', null, $events->get(3));
-
-        $events = $this->parse('<strong><WordPress</strong>');
-        $this->assertEventEquals('startTag', 'strong', $events->get(0));
-        $this->assertEventError($events->get(1));
-        $this->assertEventEquals('startTag', 'wordpress', $events->get(2));
-        $this->assertEventEquals('endTag', 'strong', $events->get(3));
-        $this->assertEventEquals('eof', null, $events->get(4));
-
-        $events = $this->parse('<src=<a>');
-        $this->assertEventError($events->get(0));
-        $this->assertEventError($events->get(1));
-        $this->assertEventError($events->get(2));
-        $this->assertEventEquals('startTag', 'src', $events->get(3));
-        $this->assertEventEquals('startTag', 'a', $events->get(4));
-        $this->assertEventEquals('eof', null, $events->get(5));
-
-        $events = $this->parse('<br...<a>');
-        $this->assertEventError($events->get(0));
-        $this->assertEventEquals('startTag', 'br', $events->get(1));
-        $this->assertEventEquals('eof', null, $events->get(2));
-    }
-
-    public function testIllegalTagNames()
-    {
-        $cases = array(
-            '<li">' => 'li',
-            '<p">' => 'p',
-            '<b&nbsp; >' => 'b',
-            '<static*all>' => 'static',
-            '<h*0720/>' => 'h',
-            '<st*ATTRIBUTE />' => 'st',
-        );
-
-        foreach ($cases as $html => $expected) {
-            $events = $this->parse($html);
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('startTag', $expected, $events->get(1));
-        }
-    }
-
-    /**
-     * @depends testCharacterReference
-     */
-    public function testTagAttributes()
-    {
-        // Opening tags.
-        $good = array(
-            '<foo bar="baz">' => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                false
-            ),
-            '<foo bar=" baz ">' => array(
-                'foo',
-                array(
-                    'bar' => ' baz '
-                ),
-                false
-            ),
-            "<foo bar=\"\nbaz\n\">" => array(
-                'foo',
-                array(
-                    'bar' => "\nbaz\n"
-                ),
-                false
-            ),
-            "<foo bar='baz'>" => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                false
-            ),
-            '<foo bar="A full sentence.">' => array(
-                'foo',
-                array(
-                    'bar' => 'A full sentence.'
-                ),
-                false
-            ),
-            "<foo a='1' b=\"2\">" => array(
-                'foo',
-                array(
-                    'a' => '1',
-                    'b' => '2'
-                ),
-                false
-            ),
-            "<foo ns:bar='baz'>" => array(
-                'foo',
-                array(
-                    'ns:bar' => 'baz'
-                ),
-                false
-            ),
-            "<foo a='blue&amp;red'>" => array(
-                'foo',
-                array(
-                    'a' => 'blue&red'
-                ),
-                false
-            ),
-            "<foo a='blue&&amp;red'>" => array(
-                'foo',
-                array(
-                    'a' => 'blue&&red'
-                ),
-                false
-            ),
-            "<foo\nbar='baz'\n>" => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                false
-            ),
-            '<doe a deer>' => array(
-                'doe',
-                array(
-                    'a' => null,
-                    'deer' => null
-                ),
-                false
-            ),
-            '<foo bar=baz>' => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                false
-            ),
-
-            // Updated for 8.1.2.3
-            '<foo    bar   =   "baz"      >' => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                false
-            ),
-
-            // The spec allows an unquoted value '/'. This will not be a closing
-            // tag.
-            '<foo bar=/>' => array(
-                'foo',
-                array(
-                    'bar' => '/'
-                ),
-                false
-            ),
-            '<foo bar=baz/>' => array(
-                'foo',
-                array(
-                    'bar' => 'baz/'
-                ),
-                false
-            )
-        );
-        $this->isAllGood('startTag', 2, $good);
-
-        // Self-closing tags.
-        $withEnd = array(
-            '<foo bar="baz"/>' => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                true
-            ),
-            '<foo BAR="baz"/>' => array(
-                'foo',
-                array(
-                    'bar' => 'baz'
-                ),
-                true
-            ),
-            '<foo BAR="BAZ"/>' => array(
-                'foo',
-                array(
-                    'bar' => 'BAZ'
-                ),
-                true
-            ),
-            "<foo a='1' b=\"2\" c=3 d/>" => array(
-                'foo',
-                array(
-                    'a' => '1',
-                    'b' => '2',
-                    'c' => '3',
-                    'd' => null
-                ),
-                true
-            )
-        );
-        $this->isAllGood('startTag', 3, $withEnd);
-
-        // Cause a parse error.
-        $bad = array(
-            // This will emit an entity lookup failure for &red.
-            "<foo a='blue&red'>" => array(
-                'foo',
-                array(
-                    'a' => 'blue&red'
-                ),
-                false
-            ),
-            "<foo a='blue&&amp;&red'>" => array(
-                'foo',
-                array(
-                    'a' => 'blue&&&red'
-                ),
-                false
-            ),
-            '<foo bar=>' => array(
-                'foo',
-                array(
-                    'bar' => null
-                ),
-                false
-            ),
-            '<foo bar="oh' => array(
-                'foo',
-                array(
-                    'bar' => 'oh'
-                ),
-                false
-            ),
-            '<foo bar=oh">' => array(
-                'foo',
-                array(
-                    'bar' => 'oh"'
-                ),
-                false
-            ),
-
-            // these attributes are ignored because of current implementation
-            // of method "DOMElement::setAttribute"
-            // see issue #23: https://github.com/Masterminds/html5-php/issues/23
-            '<foo b"="baz">' => array(
-                'foo',
-                array(),
-                false
-            ),
-            '<foo 2abc="baz">' => array(
-                'foo',
-                array(),
-                false
-            ),
-            '<foo ?="baz">' => array(
-                'foo',
-                array(),
-                false
-            ),
-            '<foo foo?bar="baz">' => array(
-                'foo',
-                array(),
-                false
-            )
-        )
-        ;
-        foreach ($bad as $test => $expects) {
-            $events = $this->parse($test);
-            $this->assertEquals(3, $events->depth(), "Counting events for '$test': " . print_r($events, true));
-            $this->assertEventError($events->get(0));
-            $this->assertEventEquals('startTag', $expects, $events->get(1));
-        }
-
-        // Cause multiple parse errors.
-        $reallyBad = array(
-            '<foo ="bar">' => array(
-                'foo',
-                array(
-                    '=' => null,
-                    '"bar"' => null
-                ),
-                false
-            ),
-            '<foo////>' => array(
-                'foo',
-                array(),
-                true
-            ),
-            // character "&" in unquoted attribute shouldn't cause an infinite loop
-            '<foo bar=index.php?str=1&amp;id=29>' => array(
-                'foo',
-                array(
-                    'bar' => 'index.php?str=1&id=29'
-                ),
-                false
-            )
-        );
-        foreach ($reallyBad as $test => $expects) {
-            $events = $this->parse($test);
-            // fprintf(STDOUT, $test . print_r($events, true));
-            $this->assertEventError($events->get(0));
-            $this->assertEventError($events->get(1));
-            // $this->assertEventEquals('startTag', $expects, $events->get(1));
-        }
-
-        // Regression: Malformed elements should be detected.
-        // '<foo baz="1" <bar></foo>' => array('foo', array('baz' => '1'), false),
-        $events = $this->parse('<foo baz="1" <bar></foo>');
-        $this->assertEventError($events->get(0));
-        $this->assertEventEquals('startTag', array(
-            'foo',
-            array(
-                'baz' => '1'
-            ),
-            false
-        ), $events->get(1));
-        $this->assertEventEquals('startTag', array(
-            'bar',
-            array(),
-            false
-        ), $events->get(2));
-        $this->assertEventEquals('endTag', array(
-            'foo'
-        ), $events->get(3));
-    }
-
-    public function testRawText()
-    {
-        $good = array(
-            '<script>abcd efg hijk lmnop</script>     ' => 'abcd efg hijk lmnop',
-            '<script><not/><the/><tag></script>' => '<not/><the/><tag>',
-            '<script><<<<<<<<</script>' => '<<<<<<<<',
-            '<script>hello</script</script>' => 'hello</script',
-            "<script>\nhello</script\n</script>" => "\nhello</script\n",
-            '<script>&amp;</script>' => '&amp;',
-            '<script><!--not a comment--></script>' => '<!--not a comment-->',
-            '<script><![CDATA[not a comment]]></script>' => '<![CDATA[not a comment]]>'
-        );
-        foreach ($good as $test => $expects) {
-            $events = $this->parse($test);
-            $this->assertEventEquals('startTag', 'script', $events->get(0));
-            $this->assertEventEquals('text', $expects, $events->get(1));
-            $this->assertEventEquals('endTag', 'script', $events->get(2));
-        }
-
-        $bad = array(
-            '<script>&amp;</script' => '&amp;</script',
-            '<script>Hello world' => 'Hello world'
-        );
-        foreach ($bad as $test => $expects) {
-            $events = $this->parse($test);
-            $this->assertEquals(4, $events->depth(), "Counting events for '$test': " . print_r($events, true));
-            $this->assertEventEquals('startTag', 'script', $events->get(0));
-            $this->assertEventError($events->get(1));
-            $this->assertEventEquals('text', $expects, $events->get(2));
-        }
-
-        // Testing case sensitivity
-        $events = $this->parse('<TITLE>a test</TITLE>');
-        $this->assertEventEquals('startTag', 'title', $events->get(0));
-        $this->assertEventEquals('text', 'a test', $events->get(1));
-        $this->assertEventEquals('endTag', 'title', $events->get(2));
-
-        // Testing end tags with whitespaces
-        $events = $this->parse('<title>Whitespaces are tasty</title >');
-        $this->assertEventEquals('startTag', 'title', $events->get(0));
-        $this->assertEventEquals('text', 'Whitespaces are tasty', $events->get(1));
-        $this->assertEventEquals('endTag', 'title', $events->get(2));
-    }
-
-    public function testRcdata()
-    {
-        list ($tok, $events) = $this->createTokenizer('<title>&#x27;<!-- not a comment --></TITLE>');
-        $tok->setTextMode(\Masterminds\HTML5\Elements::TEXT_RCDATA, 'title');
-        $tok->parse();
-        $this->assertEventEquals('text', "'<!-- not a comment -->", $events->get(1));
-    }
-
-    public function testText()
-    {
-        $events = $this->parse('a<br>b');
-        $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, true));
-        $this->assertEventEquals('text', 'a', $events->get(0));
-        $this->assertEventEquals('startTag', 'br', $events->get(1));
-        $this->assertEventEquals('text', 'b', $events->get(2));
-
-        $events = $this->parse('<a>Test</a>');
-        $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, true));
-        $this->assertEventEquals('startTag', 'a', $events->get(0));
-        $this->assertEventEquals('text', 'Test', $events->get(1));
-        $this->assertEventEquals('endTag', 'a', $events->get(2));
-
-        $events = $this->parse('<p>0</p><p>1</p>');
-        $this->assertEquals(7, $events->depth(), "Events: " . print_r($events, true));
-
-        $this->assertEventEquals('startTag', 'p', $events->get(0));
-        $this->assertEventEquals('text', '0', $events->get(1));
-        $this->assertEventEquals('endTag', 'p', $events->get(2));
-
-        $this->assertEventEquals('startTag', 'p', $events->get(3));
-        $this->assertEventEquals('text', '1', $events->get(4));
-        $this->assertEventEquals('endTag', 'p', $events->get(5));
-
-
-        $events = $this->parse('a<![CDATA[test]]>b');
-        $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, true));
-        $this->assertEventEquals('text', 'a', $events->get(0));
-        $this->assertEventEquals('cdata', 'test', $events->get(1));
-        $this->assertEventEquals('text', 'b', $events->get(2));
-
-        $events = $this->parse('a<!--test-->b');
-        $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, true));
-        $this->assertEventEquals('text', 'a', $events->get(0));
-        $this->assertEventEquals('comment', 'test', $events->get(1));
-        $this->assertEventEquals('text', 'b', $events->get(2));
-
-        $events = $this->parse('a&amp;b');
-        $this->assertEquals(2, $events->depth(), "Events: " . print_r($events, true));
-        $this->assertEventEquals('text', 'a&b', $events->get(0));
-    }
-
-    // ================================================================
-    // Utility functions.
-    // ================================================================
-    protected function createTokenizer($string, $debug = false)
-    {
-        $eventHandler = new EventStack();
-        $stream = new StringInputStream($string);
-        $scanner = new Scanner($stream);
-
-        $scanner->debug = $debug;
-
-        return array(
-            new Tokenizer($scanner, $eventHandler),
-            $eventHandler
-        );
-    }
-
-    public function parse($string, $debug = false)
-    {
-        list ($tok, $events) = $this->createTokenizer($string, $debug);
-        $tok->parse();
-
-        return $events;
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Parser/TreeBuildingRulesTest.php b/core/vendor/masterminds/html5/test/HTML5/Parser/TreeBuildingRulesTest.php
deleted file mode 100644
index bff2530..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Parser/TreeBuildingRulesTest.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-/**
- * @file
- * Test the Tree Builder's special-case rules.
- */
-namespace Masterminds\HTML5\Tests\Parser;
-
-use Masterminds\HTML5\Parser\TreeBuildingRules;
-use Masterminds\HTML5\Parser\Tokenizer;
-use Masterminds\HTML5\Parser\Scanner;
-use Masterminds\HTML5\Parser\StringInputStream;
-use Masterminds\HTML5\Parser\DOMTreeBuilder;
-
-/**
- * These tests are functional, not necessarily unit tests.
- */
-class TreeBuildingRulesTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    const HTML_STUB = '<!DOCTYPE html><html><head><title>test</title></head><body>%s</body></html>';
-
-    /**
-     * Convenience function for parsing.
-     */
-    protected function parse($string)
-    {
-        $treeBuilder = new DOMTreeBuilder();
-        $scanner = new Scanner(new StringInputStream($string));
-        $parser = new Tokenizer($scanner, $treeBuilder);
-
-        $parser->parse();
-        return $treeBuilder->document();
-    }
-    /**
-     * Convenience function for parsing fragments.
-     */
-    protected function parseFragment($string)
-    {
-        $events = new DOMTreeBuilder(true);
-        $scanner = new Scanner(new StringInputStream($string));
-        $parser = new Tokenizer($scanner, $events);
-
-        $parser->parse();
-        return $events->fragment();
-    }
-
-    public function testTDFragment()
-    {
-
-        $frag = $this->parseFragment("<td>This is a test of the HTML5 parser</td>");
-
-        $td = $frag->childNodes->item(0);
-
-        $this->assertEquals(1, $frag->childNodes->length);
-        $this->assertEquals('td', $td->tagName);
-        $this->assertEquals('This is a test of the HTML5 parser', $td->nodeValue);
-    }
-
-    public function testHasRules()
-    {
-        $doc = new \DOMDocument('1.0');
-        $engine = new TreeBuildingRules($doc);
-
-        $this->assertTrue($engine->hasRules('li'));
-        $this->assertFalse($engine->hasRules('imaginary'));
-    }
-
-    public function testHandleLI()
-    {
-        $html = sprintf(self::HTML_STUB, '<ul id="a"><li>test<li>test2</ul><a></a>');
-        $doc = $this->parse($html);
-
-        $list = $doc->getElementById('a');
-
-        $this->assertEquals(2, $list->childNodes->length);
-        foreach ($list->childNodes as $ele) {
-            $this->assertEquals('li', $ele->tagName);
-        }
-    }
-
-    public function testHandleDT()
-    {
-        $html = sprintf(self::HTML_STUB, '<dl id="a"><dt>Hello<dd>Hi</dl><a></a>');
-        $doc = $this->parse($html);
-
-        $list = $doc->getElementById('a');
-
-        $this->assertEquals(2, $list->childNodes->length);
-        $this->assertEquals('dt', $list->firstChild->tagName);
-        $this->assertEquals('dd', $list->lastChild->tagName);
-    }
-
-    public function testTable()
-    {
-        $html = sprintf(self::HTML_STUB, '<table><thead id="a"><th>foo<td>bar<td>baz');
-        $doc = $this->parse($html);
-
-        $list = $doc->getElementById('a');
-
-        $this->assertEquals(3, $list->childNodes->length);
-        $this->assertEquals('th', $list->firstChild->tagName);
-        $this->assertEquals('td', $list->lastChild->tagName);
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Serializer/OutputRulesTest.php b/core/vendor/masterminds/html5/test/HTML5/Serializer/OutputRulesTest.php
deleted file mode 100644
index aa2e0c5..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Serializer/OutputRulesTest.php
+++ /dev/null
@@ -1,581 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Serializer;
-
-use Masterminds\HTML5\Serializer\OutputRules;
-use Masterminds\HTML5\Serializer\Traverser;
-
-class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    protected $markup = '<!doctype html>
-    <html lang="en">
-      <head>
-        <meta charset="utf-8">
-        <title>Test</title>
-      </head>
-      <body>
-        <p>This is a test.</p>
-      </body>
-    </html>';
-
-    public function setUp()
-    {
-        $this->html5 = $this->getInstance();
-    }
-
-    /**
-     * Using reflection we make a protected method accessible for testing.
-     *
-     * @param string $name
-     *            The name of the method on the Traverser class to test.
-     *
-     * @return \ReflectionMethod \ReflectionMethod for the specified method
-     */
-    public function getProtectedMethod($name)
-    {
-        $class = new \ReflectionClass('\Masterminds\HTML5\Serializer\OutputRules');
-        $method = $class->getMethod($name);
-        $method->setAccessible(true);
-
-        return $method;
-    }
-
-    public function getTraverserProtectedProperty($name)
-    {
-        $class = new \ReflectionClass('\Masterminds\HTML5\Serializer\Traverser');
-        $property = $class->getProperty($name);
-        $property->setAccessible(true);
-
-        return $property;
-    }
-
-    public function getOutputRules($options = array())
-    {
-        $options = $options + $this->html5->getOptions();
-        $stream = fopen('php://temp', 'w');
-        $dom = $this->html5->loadHTML($this->markup);
-        $r = new OutputRules($stream, $options);
-        $t = new Traverser($dom, $stream, $r, $options);
-
-        return array(
-            $r,
-            $stream
-        );
-    }
-
-    public function testDocument()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html><html lang="en"><body>foo</body></html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $r->document($dom);
-        $expected = '<!DOCTYPE html>' . PHP_EOL . '<html lang="en"><body>foo</body></html>' . PHP_EOL;
-        $this->assertEquals($expected, stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testEmptyDocument()
-    {
-    	$dom = $this->html5->loadHTML('');
-
-    	$stream = fopen('php://temp', 'w');
-    	$r = new OutputRules($stream, $this->html5->getOptions());
-    	$t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-    	$r->document($dom);
-    	$expected = '<!DOCTYPE html>' . PHP_EOL;
-    	$this->assertEquals($expected, stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testDoctype()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html><html lang="en"><body>foo</body></html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $m = $this->getProtectedMethod('doctype');
-        $m->invoke($r, 'foo');
-        $this->assertEquals("<!DOCTYPE html>" . PHP_EOL, stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testElement()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-        <svg width="150" height="100" viewBox="0 0 3 2">
-          <rect width="1" height="2" x="0" fill="#008d46" />
-          <rect width="1" height="2" x="1" fill="#ffffff" />
-          <rect width="1" height="2" x="2" fill="#d2232c" />
-        </svg>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('div');
-        $r->element($list->item(0));
-        $this->assertEquals('<div id="foo" class="bar baz">foo bar baz</div>', stream_get_contents($stream, - 1, 0));
-    }
-
-    function testSerializeWithNamespaces()
-    {
-        $this->html5 = $this->getInstance(array(
-            'xmlNamespaces' => true
-        ));
-
-        $source = '
-            <!DOCTYPE html>
-            <html><body id="body" xmlns:x="http://www.prefixed.com">
-                    <a id="bar1" xmlns="http://www.prefixed.com/bar1">
-                        <b id="bar4" xmlns="http://www.prefixed.com/bar4"><x:prefixed id="prefixed">xy</x:prefixed></b>
-                    </a>
-                    <svg id="svg">svg</svg>
-                    <c id="bar2" xmlns="http://www.prefixed.com/bar2"></c>
-                    <div id="div"></div>
-                    <d id="bar3"></d>
-                    <xn:d id="bar5" xmlns:xn="http://www.prefixed.com/xn" xmlns="http://www.prefixed.com/bar5_x"><x id="bar5_x">y</x></xn:d>
-                </body>
-            </html>';
-
-        $dom = $this->html5->loadHTML($source, array(
-            'xmlNamespaces' => true
-        ));
-        $this->assertFalse($this->html5->hasErrors(), print_r($this->html5->getErrors(), 1));
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $t->walk();
-        $rendered = stream_get_contents($stream, - 1, 0);
-
-        $clear = function($s){
-            return trim(preg_replace('/[\s]+/', " ", $s));
-        };
-
-        $this->assertEquals($clear($source), $clear($rendered));
-    }
-
-    public function testElementWithScript()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-    <html lang="en">
-      <head>
-        <script>
-          var $jQ = jQuery.noConflict();
-          // Use jQuery via $jQ(...)
-          $jQ(document).ready(function () {
-            $jQ("#mktFrmSubmit").wrap("<div class=\'buttonSubmit\'></div>");
-            $jQ(".buttonSubmit").prepend("<span></span>");
-          });
-        </script>
-      </head>
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $script = $dom->getElementsByTagName('script');
-        $r->element($script->item(0));
-        $this->assertEquals(
-            '<script>
-          var $jQ = jQuery.noConflict();
-          // Use jQuery via $jQ(...)
-          $jQ(document).ready(function () {
-            $jQ("#mktFrmSubmit").wrap("<div class=\'buttonSubmit\'></div>");
-            $jQ(".buttonSubmit").prepend("<span></span>");
-          });
-        </script>', stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testElementWithStyle()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-    <html lang="en">
-      <head>
-        <style>
-          body > .bar {
-            display: none;
-          }
-        </style>
-      </head>
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $style = $dom->getElementsByTagName('style');
-        $r->element($style->item(0));
-        $this->assertEquals('<style>
-          body > .bar {
-            display: none;
-          }
-        </style>', stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testOpenTag()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('div');
-        $m = $this->getProtectedMethod('openTag');
-        $m->invoke($r, $list->item(0));
-        $this->assertEquals('<div id="foo" class="bar baz">', stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testCData()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <body>
-        <div><![CDATA[bar]]></div>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('div');
-        $r->cdata($list->item(0)->childNodes->item(0));
-        $this->assertEquals('<![CDATA[bar]]>', stream_get_contents($stream, - 1, 0));
-
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo"></div>
-      </body>
-    </html>');
-
-        $dom->getElementById('foo')->appendChild(new \DOMCdataSection("]]>Foo<[![CDATA test ]]>"));
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-        $list = $dom->getElementsByTagName('div');
-        $r->cdata($list->item(0)->childNodes->item(0));
-
-        $this->assertEquals('<![CDATA[]]]]><![CDATA[>Foo<[![CDATA test ]]]]><![CDATA[>]]>', stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testComment()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <body>
-        <div><!-- foo --></div>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('div');
-        $r->comment($list->item(0)->childNodes->item(0));
-        $this->assertEquals('<!-- foo -->', stream_get_contents($stream, - 1, 0));
-
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo"></div>
-      </body>
-      </html>');
-        $dom->getElementById('foo')->appendChild(new \DOMComment('<!-- --> --> Foo -->'));
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('div');
-        $r->comment($list->item(0)->childNodes->item(0));
-
-        // Could not find more definitive guidelines on what this should be. Went with
-        // what the HTML5 spec says and what \DOMDocument::saveXML() produces.
-        $this->assertEquals('<!--<!-- --> --> Foo -->-->', stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testText()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <head>
-        <script>baz();</script>
-      </head>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('script');
-        $r->text($list->item(0)->childNodes->item(0));
-        $this->assertEquals('baz();', stream_get_contents($stream, - 1, 0));
-
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <head id="foo"></head>
-    </html>');
-        $foo = $dom->getElementById('foo');
-        $foo->appendChild(new \DOMText('<script>alert("hi");</script>'));
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $r->text($foo->firstChild);
-        $this->assertEquals('&lt;script&gt;alert("hi");&lt;/script&gt;', stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testNl()
-    {
-        list ($o, $s) = $this->getOutputRules();
-
-        $m = $this->getProtectedMethod('nl');
-        $m->invoke($o);
-        $this->assertEquals(PHP_EOL, stream_get_contents($s, - 1, 0));
-    }
-
-    public function testWr()
-    {
-        list ($o, $s) = $this->getOutputRules();
-
-        $m = $this->getProtectedMethod('wr');
-        $m->invoke($o, 'foo');
-        $this->assertEquals('foo', stream_get_contents($s, - 1, 0));
-    }
-
-    public function getEncData()
-    {
-        return array(
-            array(
-                false,
-                '&\'<>"',
-                '&amp;\'&lt;&gt;"',
-                '&amp;&apos;&lt;&gt;&quot;'
-            ),
-            array(
-                false,
-                'This + is. a < test',
-                'This + is. a &lt; test',
-                'This &plus; is&period; a &lt; test'
-            ),
-            array(
-                false,
-                '.+#',
-                '.+#',
-                '&period;&plus;&num;'
-            ),
-
-            array(
-                true,
-                '.+#\'',
-                '.+#\'',
-                '&period;&plus;&num;&apos;'
-            ),
-            array(
-                true,
-                '&".<',
-                '&amp;&quot;.<',
-                '&amp;&quot;&period;&lt;'
-            ),
-            array(
-                true,
-                '&\'<>"',
-                '&amp;\'<>&quot;',
-                '&amp;&apos;&lt;&gt;&quot;'
-            ),
-            array(
-                true,
-                "\xc2\xa0\"'",
-                '&nbsp;&quot;\'',
-                '&nbsp;&quot;&apos;'
-            )
-        );
-    }
-
-    /**
-     * Test basic encoding of text.
-     * @dataProvider getEncData
-     */
-    public function testEnc($isAttribute, $test, $expected, $expectedEncoded)
-    {
-        list ($o, $s) = $this->getOutputRules();
-        $m = $this->getProtectedMethod('enc');
-
-        $this->assertEquals($expected, $m->invoke($o, $test, $isAttribute));
-
-        list ($o, $s) = $this->getOutputRules(array(
-            'encode_entities' => true
-        ));
-        $m = $this->getProtectedMethod('enc');
-        $this->assertEquals($expectedEncoded, $m->invoke($o, $test, $isAttribute));
-    }
-
-    /**
-     * Test basic encoding of text.
-     * @dataProvider getEncData
-     */
-    public function testEscape($isAttribute, $test, $expected, $expectedEncoded)
-    {
-        list ($o, $s) = $this->getOutputRules();
-        $m = $this->getProtectedMethod('escape');
-
-        $this->assertEquals($expected, $m->invoke($o, $test, $isAttribute));
-    }
-
-    public function booleanAttributes()
-    {
-        return array(
-            array('<img alt="" ismap>'),
-            array('<img alt="">'),
-            array('<input type="radio" readonly>'),
-            array('<input type="radio" checked disabled>'),
-            array('<input type="checkbox" checked disabled>'),
-            array('<select disabled></select>'),
-            array('<div ng-app>foo</div>'),
-            array('<script defer></script>'),
-        );
-    }
-    /**
-     * @dataProvider booleanAttributes
-     */
-    public function testBooleanAttrs($html)
-    {
-        $dom = $this->html5->loadHTML('<!doctype html><html lang="en"><body>'.$html.'</body></html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $node = $dom->getElementsByTagName('body')->item(0)->firstChild;
-
-        $m = $this->getProtectedMethod('attrs');
-        $m->invoke($r, $node);
-
-        $content = stream_get_contents($stream, - 1, 0);
-        $this->assertContains($content, $html);
-
-    }
-
-    public function testAttrs()
-    {
-        $dom = $this->html5->loadHTML('<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('div');
-
-        $m = $this->getProtectedMethod('attrs');
-        $m->invoke($r, $list->item(0));
-
-        $content = stream_get_contents($stream, - 1, 0);
-        $this->assertEquals(' id="foo" class="bar baz"', $content);
-    }
-
-    public function testSvg()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-        <svg width="150" height="100" viewBox="0 0 3 2">
-          <rect width="1" height="2" x="0" fill="#008d46" />
-          <rect width="1" height="2" x="1" fill="#ffffff" />
-          <rect width="1" height="2" x="2" fill="#d2232c" />
-          <rect id="Bar" x="300" y="100" width="300" height="100" fill="rgb(255,255,0)">
-            <animate attributeName="x" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="300" to="0" />
-          </rect>
-        </svg>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('svg');
-        $r->element($list->item(0));
-        $contents = stream_get_contents($stream, - 1, 0);
-        $this->assertRegExp('|<svg width="150" height="100" viewBox="0 0 3 2">|', $contents);
-        $this->assertRegExp('|<rect width="1" height="2" x="0" fill="#008d46" />|', $contents);
-        $this->assertRegExp('|<rect id="Bar" x="300" y="100" width="300" height="100" fill="rgb\(255,255,0\)">|', $contents);
-    }
-
-    public function testMath()
-    {
-        $dom = $this->html5->loadHTML(
-            '<!doctype html>
-    <html lang="en">
-      <body>
-        <div id="foo" class="bar baz">foo bar baz</div>
-        <math>
-          <mi>x</mi>
-          <csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">
-            <mo>&PlusMinus;</mo>
-          </csymbol>
-          <mi>y</mi>
-        </math>
-      </body>
-    </html>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $list = $dom->getElementsByTagName('math');
-        $r->element($list->item(0));
-        $content = stream_get_contents($stream, - 1, 0);
-        $this->assertRegExp('|<math>|', $content);
-        $this->assertRegExp('|<csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">|', $content);
-    }
-
-    public function testProcessorInstruction()
-    {
-        $dom = $this->html5->loadHTMLFragment('<?foo bar ?>');
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $r->processorInstruction($dom->firstChild);
-        $content = stream_get_contents($stream, - 1, 0);
-        $this->assertRegExp('|<\?foo bar \?>|', $content);
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/Serializer/TraverserTest.php b/core/vendor/masterminds/html5/test/HTML5/Serializer/TraverserTest.php
deleted file mode 100644
index c914633..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/Serializer/TraverserTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests\Serializer;
-
-use Masterminds\HTML5\Serializer\OutputRules;
-use Masterminds\HTML5\Serializer\Traverser;
-use Masterminds\HTML5\Parser;
-
-class TraverserTest extends \Masterminds\HTML5\Tests\TestCase
-{
-
-    protected $markup = '<!doctype html>
-    <html lang="en">
-      <head>
-        <meta charset="utf-8">
-        <title>Test</title>
-      </head>
-      <body>
-        <p>This is a test.</p>
-      </body>
-    </html>';
-
-    public function setUp()
-    {
-        $this->html5 = $this->getInstance();
-    }
-
-    /**
-     * Using reflection we make a protected method accessible for testing.
-     *
-     * @param string $name
-     *            The name of the method on the Traverser class to test.
-     *
-     * @return \ReflectionMethod \ReflectionMethod for the specified method
-     */
-    public function getProtectedMethod($name)
-    {
-        $class = new \ReflectionClass('\Masterminds\HTML5\Serializer\Traverser');
-        $method = $class->getMethod($name);
-        $method->setAccessible(true);
-
-        return $method;
-    }
-
-    public function getTraverser()
-    {
-        $stream = fopen('php://temp', 'w');
-
-        $dom = $this->html5->loadHTML($this->markup);
-        $t = new Traverser($dom, $stream, $html5->getOptions());
-
-        // We return both the traverser and stream so we can pull from it.
-        return array(
-            $t,
-            $stream
-        );
-    }
-
-    public function testConstruct()
-    {
-        // The traverser needs a place to write the output to. In our case we
-        // use a stream in temp space.
-        $stream = fopen('php://temp', 'w');
-
-        $html5 = $this->getInstance();
-
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $dom = $this->html5->loadHTML($this->markup);
-
-        $t = new Traverser($dom, $stream, $r, $html5->getOptions());
-
-        $this->assertInstanceOf('\Masterminds\HTML5\Serializer\Traverser', $t);
-    }
-
-    public function testFragment()
-    {
-        $html = '<span class="bar">foo</span><span></span><div>bar</div>';
-        $input = new \Masterminds\HTML5\Parser\StringInputStream($html);
-        $dom = $this->html5->parseFragment($input);
-
-        $this->assertInstanceOf('\DOMDocumentFragment', $dom);
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $out = $t->walk();
-        $this->assertEquals($html, stream_get_contents($stream, - 1, 0));
-    }
-
-    public function testProcessorInstruction()
-    {
-        $html = '<?foo bar ?>';
-        $input = new \Masterminds\HTML5\Parser\StringInputStream($html);
-        $dom = $this->html5->parseFragment($input);
-
-        $this->assertInstanceOf('\DOMDocumentFragment', $dom);
-
-        $stream = fopen('php://temp', 'w');
-        $r = new OutputRules($stream, $this->html5->getOptions());
-        $t = new Traverser($dom, $stream, $r, $this->html5->getOptions());
-
-        $out = $t->walk();
-        $this->assertEquals($html, stream_get_contents($stream, - 1, 0));
-    }
-}
diff --git a/core/vendor/masterminds/html5/test/HTML5/TestCase.php b/core/vendor/masterminds/html5/test/HTML5/TestCase.php
deleted file mode 100644
index 3cb8645..0000000
--- a/core/vendor/masterminds/html5/test/HTML5/TestCase.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-namespace Masterminds\HTML5\Tests;
-
-use Masterminds\HTML5;
-
-class TestCase extends \PHPUnit_Framework_TestCase
-{
-
-    const DOC_OPEN = '<!DOCTYPE html><html><head><title>test</title></head><body>';
-
-    const DOC_CLOSE = '</body></html>';
-
-    public function testFoo()
-    {
-        // Placeholder. Why is PHPUnit emitting warnings about no tests?
-    }
-
-    public function getInstance(array $options = array())
-    {
-        return new HTML5($options);
-    }
-
-    protected function wrap($fragment)
-    {
-        return self::DOC_OPEN . $fragment . self::DOC_CLOSE;
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/CHANGELOG.md b/core/vendor/mikey179/vfsStream/CHANGELOG.md
deleted file mode 100644
index b3f2eb1..0000000
--- a/core/vendor/mikey179/vfsStream/CHANGELOG.md
+++ /dev/null
@@ -1,192 +0,0 @@
-1.5.0 (2015-03-29)
-------------------
-
-   * implemented #91: `vfsStream::copyFromFileSystem()` should create large file instances
-   * implemented #92: `vfsStream::copyFromFileSystem()` should respect block devices
-   * fixed #107: `touch()` does not respect file permissions
-   * fixed #105: vfs directory structure is not reset after each test
-   * fixed #104: vfsStream can't handle url encoded pathes
-
-
-1.4.0 (2014-09-14)
-------------------
-
-   * implemented #85: Added support for emulating block devices in the virtual filesystem, feature provided by Harris Borawski
-   * fixed #68: Unlink a non-existing file now triggers a PHP warning
-
-
-1.3.0 (2014-07-21)
-------------------
-
-   * implemented #79: possibility to mock large files without large memory footprint, see https://github.com/mikey179/vfsStream/wiki/MockingLargeFiles
-   * implemented #67: added partial support for text-mode translation flag (i.e., no actual translation of line endings takes place) so it no longer throws an exception (provided by Anthon Pang)
-   * fixed issue #74: issue with trailing windows path separators (provided by Sebastian Krüger)
-   * fixed issue #50: difference between real file system and vfs with `RecursiveDirectoryIterator`
-   * fixed issue #80: touch with no arguments for modification and access time behave incorrect
-   * deprecated `org\bovigo\vfs\vfsStreamFile::readUntilEnd()`
-   * deprecated `org\bovigo\vfs\vfsStreamFile::getBytesRead()`
-
-
-1.2.0 (2013-04-01)
-------------------
-
-   * implemented issue #34: provide `url()` method on all `vfsStreamContent` instances
-     * added `org\bovigo\vfs\vfsStreamContent::url()`
-     * added `org\bovigo\vfs\vfsStreamContent::path()`
-   * fixed issue #40: flock implementation doesn't work correctly, patch provided by Kamil Dziedzic
-   * fixed issue #49: call to member function on a non-object when trying to delete a file one above root where a file with same name in root exists
-   * fixed issue #51: `unlink()` must consider permissions of directory where file is inside, not of the file to unlink itself
-   * fixed issue #52: `chmod()`, `chown()` and `chgrp()` must consider permissions of directory where file/directory is inside
-   * fixed issue #53: `chmod()`, `chown()` and `chgrp()` must consider current user and current owner of file/directoy to change
-
-
-1.1.0 (2012-08-25)
-------------------
-
-   * implemented issue #11: add support for `streamWrapper::stream_metadata()` vfsStream now supports `touch()`, `chown()`, `chgrp()` and `chmod()`
-   * implemented issue #33: add support for `stream_truncate()` (provided by https://github.com/nikcorg)
-   * implemented issue #35: size limit (quota) for VFS
-
-
-1.0.0 (2012-05-15)
-------------------
-
-   * raised requirement for PHP version to 5.3.0
-   * migrated codebase to use namespaces
-   * changed distribution from PEAR to Composer
-   * implemented issue #30: support "c" mode for `fopen()`
-   * fixed issue #31: prohibit aquiring locks when already locked / release lock on `fclose()`
-   * fixed issue #32: problems when subfolder has same name as folder
-   * fixed issue #36: `vfsStreamWrapper::stream_open()` should return false while trying to open existing non-writable file, patch provided by Alexander Peresypkin
-
-
-0.11.2 (2012-01-14)
--------------------
-
-   * fixed issue #29: set permissions properly when using `vfsStream::copyFromFileSystem()`, patch provided by predakanga
-   * fixed failing tests under PHP > 5.3.2
-
-
-0.11.1 (2011-12-04)
--------------------
-
-   * fixed issue #28: `mkdir()` overwrites existing directories/files
-
-
-0.11.0 (2011-11-29)
--------------------
-
-   * implemented issue #20: `vfsStream::create()` removes old structure
-   * implemented issue #4: possibility to copy structure from existing file system
-   * fixed issue #23: `unlink()` should not remove any directory
-   * fixed issue #25: `vfsStreamDirectory::hasChild()` gives false positives for nested paths, patch provided by Andrew Coulton
-   * fixed issue #26: opening a file for reading only should not update its modification time, reported and initial patch provided by Ludovic Chabant
-
-
-0.10.1 (2011-08-22)
--------------------
-
-   * fixed issue #16: replace `vfsStreamContent` to `vfsStreamContainer` for autocompletion
-   * fixed issue #17: `vfsStream::create()` has issues with numeric directories, patch provided by mathieuk
-
-
-0.10.0 (2011-07-22)
--------------------
-
-   * added new method `vfsStreamContainer::hasChildren()` and `vfsStreamDirectory::hasChildren()`
-   * implemented issue #14: less verbose way to initialize vfsStream
-   * implemented issue #13: remove deprecated method `vfsStreamContent::setFilemtime()`
-   * implemented issue #6: locking meachanism for files
-   * ensured that `stream_set_blocking()`, `stream_set_timeout()` and `stream_set_write_buffer()` on vfsStream urls have the same behaviour with PHP 5.2 and 5.3
-   * implemented issue #10: method to print directory structure
-
-
-0.9.0 (2011-07-13)
-------------------
-
-   * implemented feature request issue #7: add support for `fileatime()` and `filectime()`
-   * fixed issue #3: add support for `streamWrapper::stream_cast()`
-   * fixed issue #9: resolve path not called everywhere its needed
-   * deprecated `vfsStreamAbstractContent::setFilemtime()`, use `vfsStreamAbstractContent::lastModified()` instead, will be removed with 0.10.0
-
-
-0.8.0 (2010-10-08)
-------------------
-
-   * implemented enhancement #6: use `vfsStream::umask()` to influence initial file mode for files and directories
-   * implemented enhancement #19: support of .. in the url, patch provided by Guislain Duthieuw
-   * fixed issue #18: `getChild()` returns NULL when child's name contains parent name
-   * fixed bug with incomplete error message when accessing non-existing files on root level
-
-
-0.7.0 (2010-06-08)
-------------------
-
-   * added new `vfsStream::setup()` method to simplify vfsStream usage
-   * fixed issue #15: `mkdir()` creates a subfolder in a folder without permissions
-
-
-0.6.0 (2010-02-15)
-------------------
-
-   * added support for `$mode` param when opening files, implements enhancement #7 and fixes issue #13
-   * `vfsStreamWrapper::stream_open()` now evaluates `$options` for `STREAM_REPORT_ERRORS`
-
-
-0.5.0 (2010-01-25)
-------------------
-
-   * added support for `rename()`, patch provided by Benoit Aubuchon
-   * added support for . as directory alias so that `vfs://foo/.` resolves to `vfs://foo`, can be used as workaround for bug #8
-
-
-0.4.0 (2009-07-13)
-------------------
-
-   * added support for file modes, users and groups (with restrictions, see http://code.google.com/p/bovigo/wiki/vfsStreamDocsKnownIssues)
-   * fixed bug #5: `vfsStreamDirectory::addChild()` does not replace child with same name
-   * fixed bug with `is_writable()` because of missing `stat()` fields, patch provided by Sergey Galkin
-
-
-0.3.2 (2009-02-16)
-------------------
-
-   * support trailing slashes on directories in vfsStream urls, patch provided by Gabriel Birke
-   * fixed bug #4: vfsstream can only be read once, reported by Christoph Bloemer
-   * enabled multiple iterations at the same time over the same directory
-
-
-0.3.1 (2008-02-18)
-------------------
-
-   * fixed path/directory separator issues under linux systems
-   * fixed uid/gid issues under linux systems
-
-
-0.3.0 (2008-01-02)
-------------------
-
-   * added support for `rmdir()`
-   * added `vfsStream::newDirectory()`, dropped `vfsStreamDirectory::ceate()`
-   * added new interface `vfsStreamContainer`
-   * added `vfsStreamContent::at()` which allows code like `$file = vfsStream::newFile('file.txt.')->withContent('foo')->at($otherDir);`
-   * added `vfsStreamContent::lastModified()`, made `vfsStreamContent::setFilemtime()` an alias for this
-   * moved from Stubbles development environment to bovigo
-   * refactorings to reduce crap index of various methods
-
-
-0.2.0 (2007-12-29)
-------------------
-
-   * moved `vfsStreamWrapper::PROTOCOL` to `vfsStream::SCHEME`
-   * added new `vfsStream::url()` method to assist in creating correct vfsStream urls
-   * added `vfsStream::path()` method as opposite to `vfsStream::url()`
-   * a call to `vfsStreamWrapper::register()` will now reset the root to null, implemented on request from David Zuelke
-   * added support for `is_readable()`, `is_dir()`, `is_file()`
-   * added `vfsStream::newFile()` to be able to do `$file = vfsStream::newFile("foo.txt")->withContent("bar");`
-
-
-0.1.0 (2007-12-14)
-------------------
-
-   * Initial release.
diff --git a/core/vendor/mikey179/vfsStream/LICENSE b/core/vendor/mikey179/vfsStream/LICENSE
deleted file mode 100644
index 1d41ab9..0000000
--- a/core/vendor/mikey179/vfsStream/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2007-2015, Frank Kleine
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in the
-  documentation and/or other materials provided with the distribution.
-* Neither the name of Stubbles nor the names of its
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/mikey179/vfsStream/composer.json b/core/vendor/mikey179/vfsStream/composer.json
deleted file mode 100644
index c87f5fe..0000000
--- a/core/vendor/mikey179/vfsStream/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "name": "mikey179/vfsStream",
-    "type": "library",
-    "homepage": "http://vfs.bovigo.org/",
-    "description": "Virtual file system to mock the real file system in unit tests.",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Frank Kleine",
-            "homepage": "http://frankkleine.de/",
-            "role": "Developer"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/mikey179/vfsStream/issues",
-        "source": "https://github.com/mikey179/vfsStream/tree/master",
-        "wiki": "https://github.com/mikey179/vfsStream/wiki"
-    },
-    "require": {
-        "php": ">=5.3.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.5"
-    },
-    "autoload": {
-        "psr-0": { "org\\bovigo\\vfs\\": "src/main/php" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.5.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/readme.md b/core/vendor/mikey179/vfsStream/readme.md
deleted file mode 100644
index 9eb78c5..0000000
--- a/core/vendor/mikey179/vfsStream/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-For more information have a look in the [wiki](https://github.com/mikey179/vfsStream/wiki).
-
-[![Build Status](https://secure.travis-ci.org/mikey179/vfsStream.png)](http://travis-ci.org/mikey179/vfsStream) [![Coverage Status](https://coveralls.io/repos/mikey179/vfsStream/badge.png?branch=master)](https://coveralls.io/r/mikey179/vfsStream?branch=master)
-
-[![Latest Stable Version](https://poser.pugx.org/mikey179/vfsStream/version.png)](https://packagist.org/packages/mikey179/vfsStream) [![Latest Unstable Version](https://poser.pugx.org/mikey179/vfsStream/v/unstable.png)](//packagist.org/packages/mikey179/vfsStream)
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/DotDirectory.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/DotDirectory.php
deleted file mode 100644
index e9bc215..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/DotDirectory.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Directory container.
- */
-class DotDirectory extends vfsStreamDirectory
-{
-    /**
-     * returns iterator for the children
-     *
-     * @return  vfsStreamContainerIterator
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator(array());
-    }
-
-    /**
-     * checks whether dir is a dot dir
-     *
-     * @return  bool
-     */
-    public function isDot()
-    {
-        return true;
-    }
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php
deleted file mode 100644
index b86ad8c..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Represents a quota for disk space.
- *
- * @since     1.1.0
- * @internal
- */
-class Quota
-{
-    /**
-     * unlimited quota
-     */
-    const UNLIMITED   = -1;
-    /**
-     * quota in bytes
-     *
-     * A value of -1 is treated as unlimited.
-     *
-     * @type  int
-     */
-    private $amount;
-
-    /**
-     * constructor
-     *
-     * @param  int  $amount  quota in bytes
-     */
-    public function __construct($amount)
-    {
-        $this->amount = $amount;
-    }
-
-    /**
-     * create with unlimited space
-     *
-     * @return  Quota
-     */
-    public static function unlimited()
-    {
-        return new self(self::UNLIMITED);
-    }
-
-    /**
-     * checks if a quota is set
-     *
-     * @return  bool
-     */
-    public function isLimited()
-    {
-        return self::UNLIMITED < $this->amount;
-    }
-
-    /**
-     * checks if given used space exceeda quota limit
-     *
-     *
-     * @param     int   $usedSpace
-     * @return    int
-     */
-    public function spaceLeft($usedSpace)
-    {
-        if (self::UNLIMITED === $this->amount) {
-            return $usedSpace;
-        }
-
-        if ($usedSpace >= $this->amount) {
-            return 0;
-        }
-
-        $spaceLeft = $this->amount - $usedSpace;
-        if (0 >= $spaceLeft) {
-            return 0;
-        }
-
-        return $spaceLeft;
-    }
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/FileContent.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/FileContent.php
deleted file mode 100644
index de649a8..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/FileContent.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\content;
-/**
- * Interface for actual file contents.
- *
- * @since  1.3.0
- */
-interface FileContent
-{
-    /**
-     * returns actual content
-     *
-     * @return  string
-     */
-    public function content();
-
-    /**
-     * returns size of content
-     *
-     * @return  int
-     */
-    public function size();
-
-    /**
-     * reads the given amount of bytes from content
-     *
-     * @param   int     $count
-     * @return  string
-     */
-    public function read($count);
-
-    /**
-     * seeks to the given offset
-     *
-     * @param   int   $offset
-     * @param   int   $whence
-     * @return  bool
-     */
-    public function seek($offset, $whence);
-
-    /**
-     * checks whether pointer is at end of file
-     *
-     * @return  bool
-     */
-    public function eof();
-
-    /**
-     * writes an amount of data
-     *
-     * @param   string  $data
-     * @return  amount of written bytes
-     */
-    public function write($data);
-
-    /**
-     * Truncates a file to a given length
-     *
-     * @param   int  $size length to truncate file to
-     * @return  bool
-     */
-    public function truncate($size);
-}
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/LargeFileContent.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/LargeFileContent.php
deleted file mode 100644
index 6bc0afc..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/LargeFileContent.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\content;
-/**
- * File content implementation to mock large files.
- *
- * When content is written via write() the data will be written into the
- * positions according to the current offset.
- * When content is read via read() it will use the already written data. If no
- * data is written at the offsets to read those offsets will be filled with
- * spaces.
- * Please note that accessing the whole content via content() will deliver a
- * string with the length of the originally defined size. It is not advisable to
- * do so with large sizes, except you have enough memory and time. :-)
- *
- * @since  1.3.0
- */
-class LargeFileContent extends SeekableFileContent implements FileContent
-{
-    /**
-     * byte array of written content
-     *
-     * @type  char[]
-     */
-    private $content = array();
-    /**
-     * file size in bytes
-     *
-     * @type  int
-     */
-    private $size;
-
-    /**
-     * constructor
-     *
-     * @param  int  $size  file size in bytes
-     */
-    public function __construct($size)
-    {
-        $this->size = $size;
-    }
-
-    /**
-     * create large file with given size in kilobyte
-     *
-     * @param   int  $kilobyte
-     * @return  LargeFileContent
-     */
-    public static function withKilobytes($kilobyte)
-    {
-        return new self($kilobyte * 1024);
-    }
-
-    /**
-     * create large file with given size in megabyte
-     *
-     * @param   int  $megabyte
-     * @return  LargeFileContent
-     */
-    public static function withMegabytes($megabyte)
-    {
-        return self::withKilobytes($megabyte * 1024);
-    }
-
-    /**
-     * create large file with given size in gigabyte
-     *
-     * @param   int  $gigabyte
-     * @return  LargeFileContent
-     */
-    public static function withGigabytes($gigabyte)
-    {
-        return self::withMegabytes($gigabyte * 1024);
-    }
-
-    /**
-     * returns actual content
-     *
-     * @return  string
-     */
-    public function content()
-    {
-        return $this->doRead(0, $this->size);
-    }
-
-    /**
-     * returns size of content
-     *
-     * @return  int
-     */
-    public function size()
-    {
-        return $this->size;
-    }
-
-    /**
-     * actual reading of given byte count starting at given offset
-     *
-     * @param  int  $offset
-     * @param  int  $count
-     */
-    protected function doRead($offset, $count)
-    {
-        if (($offset + $count) > $this->size) {
-            $count = $this->size - $offset;
-        }
-
-        $result = '';
-        for ($i = 0; $i < $count; $i++) {
-            if (isset($this->content[$i + $offset])) {
-                $result .= $this->content[$i + $offset];
-            } else {
-                $result .= ' ';
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * actual writing of data with specified length at given offset
-     *
-     * @param   string  $data
-     * @param   int     $offset
-     * @param   int     $length
-     */
-    protected function doWrite($data, $offset, $length)
-    {
-        for ($i = 0; $i < $length; $i++) {
-            $this->content[$i + $offset] = $data{$i};
-        }
-
-        if ($offset >= $this->size) {
-            $this->size += $length;
-        } elseif (($offset + $length) > $this->size) {
-            $this->size = $offset + $length;
-        }
-    }
-
-    /**
-     * Truncates a file to a given length
-     *
-     * @param   int  $size length to truncate file to
-     * @return  bool
-     */
-    public function truncate($size)
-    {
-        $this->size = $size;
-        foreach (array_filter(array_keys($this->content),
-                              function($pos) use ($size)
-                              {
-                                  return $pos >= $size;
-                              }
-                ) as $removePos) {
-            unset($this->content[$removePos]);
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/SeekableFileContent.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/SeekableFileContent.php
deleted file mode 100644
index e748000..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/SeekableFileContent.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\content;
-/**
- * Default implementation for file contents based on simple strings.
- *
- * @since  1.3.0
- */
-abstract class SeekableFileContent implements FileContent
-{
-    /**
-     * current position within content
-     *
-     * @type  int
-     */
-    private $offset = 0;
-
-    /**
-     * reads the given amount of bytes from content
-     *
-     * @param   int     $count
-     * @return  string
-     */
-    public function read($count)
-    {
-        $data = $this->doRead($this->offset, $count);
-        $this->offset += $count;
-        return $data;
-    }
-
-    /**
-     * actual reading of given byte count starting at given offset
-     *
-     * @param  int  $offset
-     * @param  int  $count
-     */
-    protected abstract function doRead($offset, $count);
-
-    /**
-     * seeks to the given offset
-     *
-     * @param   int   $offset
-     * @param   int   $whence
-     * @return  bool
-     */
-    public function seek($offset, $whence)
-    {
-        switch ($whence) {
-            case SEEK_CUR:
-                $this->offset += $offset;
-                return true;
-
-            case SEEK_END:
-                $this->offset = $this->size() + $offset;
-                return true;
-
-            case SEEK_SET:
-                $this->offset = $offset;
-                return true;
-
-            default:
-                return false;
-        }
-
-        return false;
-    }
-
-    /**
-     * checks whether pointer is at end of file
-     *
-     * @return  bool
-     */
-    public function eof()
-    {
-        return $this->size() <= $this->offset;
-    }
-
-    /**
-     * writes an amount of data
-     *
-     * @param   string  $data
-     * @return  amount of written bytes
-     */
-    public function write($data)
-    {
-        $dataLength    = strlen($data);
-        $this->doWrite($data, $this->offset, $dataLength);
-        $this->offset += $dataLength;
-        return $dataLength;
-    }
-
-    /**
-     * actual writing of data with specified length at given offset
-     *
-     * @param   string  $data
-     * @param   int     $offset
-     * @param   int     $length
-     */
-    protected abstract function doWrite($data, $offset, $length);
-
-    /**
-     * for backwards compatibility with vfsStreamFile::bytesRead()
-     *
-     * @return  int
-     * @deprecated
-     */
-    public function bytesRead()
-    {
-        return $this->offset;
-    }
-
-    /**
-     * for backwards compatibility with vfsStreamFile::readUntilEnd()
-     *
-     * @return  string
-     * @deprecated
-     */
-    public function readUntilEnd()
-    {
-        return substr($this->content(), $this->offset);
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/StringBasedFileContent.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/StringBasedFileContent.php
deleted file mode 100644
index 58bd214..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/StringBasedFileContent.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\content;
-/**
- * Default implementation for file contents based on simple strings.
- *
- * @since  1.3.0
- */
-class StringBasedFileContent extends SeekableFileContent implements FileContent
-{
-    /**
-     * actual content
-     *
-     * @type  string
-     */
-    private $content;
-
-    /**
-     * constructor
-     *
-     * @param  string  $content
-     */
-    public function __construct($content)
-    {
-        $this->content = $content;
-    }
-
-    /**
-     * returns actual content
-     *
-     * @return  string
-     */
-    public function content()
-    {
-        return $this->content;
-    }
-
-    /**
-     * returns size of content
-     *
-     * @return  int
-     */
-    public function size()
-    {
-        return strlen($this->content);
-    }
-
-    /**
-     * actual reading of length starting at given offset
-     *
-     * @param  int  $offset
-     * @param  int  $count
-     */
-    protected function doRead($offset, $count)
-    {
-        return substr($this->content, $offset, $count);
-    }
-
-    /**
-     * actual writing of data with specified length at given offset
-     *
-     * @param   string  $data
-     * @param   int     $offset
-     * @param   int     $length
-     */
-    protected function doWrite($data, $offset, $length)
-    {
-        $this->content = substr($this->content, 0, $offset)
-                       . $data
-                       . substr($this->content, $offset + $length);
-    }
-
-    /**
-     * Truncates a file to a given length
-     *
-     * @param   int  $size length to truncate file to
-     * @return  bool
-     */
-    public function truncate($size)
-    {
-        if ($size > $this->size()) {
-            // Pad with null-chars if we're "truncating up"
-            $this->content .= str_repeat("\0", $size - $this->size());
-        } else {
-            $this->content = substr($this->content, 0, $size);
-        }
-
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStream.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStream.php
deleted file mode 100644
index f7f13cb..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStream.php
+++ /dev/null
@@ -1,462 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-use org\bovigo\vfs\content\LargeFileContent;
-use org\bovigo\vfs\visitor\vfsStreamVisitor;
-/**
- * Some utility methods for vfsStream.
- *
- * @api
- */
-class vfsStream
-{
-    /**
-     * url scheme
-     */
-    const SCHEME            = 'vfs';
-    /**
-     * owner: root
-     */
-    const OWNER_ROOT        = 0;
-    /**
-     * owner: user 1
-     */
-    const OWNER_USER_1       = 1;
-    /**
-     * owner: user 2
-     */
-    const OWNER_USER_2       = 2;
-    /**
-     * group: root
-     */
-    const GROUP_ROOT         = 0;
-    /**
-     * group: user 1
-     */
-    const GROUP_USER_1       = 1;
-    /**
-     * group: user 2
-     */
-    const GROUP_USER_2       = 2;
-    /**
-     * initial umask setting
-     *
-     * @type  int
-     */
-    protected static $umask  = 0000;
-    /**
-     * switch whether dotfiles are enabled in directory listings
-     *
-     * @type  bool
-     */
-    private static $dotFiles = true;
-
-    /**
-     * prepends the scheme to the given URL
-     *
-     * @param   string  $path  path to translate to vfsStream url
-     * @return  string
-     */
-    public static function url($path)
-    {
-        return self::SCHEME . '://' . str_replace('\\', '/', $path);
-    }
-
-    /**
-     * restores the path from the url
-     *
-     * @param   string  $url  vfsStream url to translate into path
-     * @return  string
-     */
-    public static function path($url)
-    {
-        // remove line feeds and trailing whitespaces and path separators
-        $path = trim($url, " \t\r\n\0\x0B/\\");
-        $path = substr($path, strlen(self::SCHEME . '://'));
-        $path = str_replace('\\', '/', $path);
-        // replace double slashes with single slashes
-        $path = str_replace('//', '/', $path);
-        return urldecode($path);
-    }
-
-    /**
-     * sets new umask setting and returns previous umask setting
-     *
-     * If no value is given only the current umask setting is returned.
-     *
-     * @param   int  $umask  new umask setting
-     * @return  int
-     * @since   0.8.0
-     */
-    public static function umask($umask = null)
-    {
-        $oldUmask = self::$umask;
-        if (null !== $umask) {
-            self::$umask = $umask;
-        }
-
-        return $oldUmask;
-    }
-
-    /**
-     * helper method for setting up vfsStream in unit tests
-     *
-     * Instead of
-     * vfsStreamWrapper::register();
-     * vfsStreamWrapper::setRoot(vfsStream::newDirectory('root'));
-     * you can simply do
-     * vfsStream::setup()
-     * which yields the same result. Additionally, the method returns the
-     * freshly created root directory which you can use to make further
-     * adjustments to it.
-     *
-     * Assumed $structure contains an array like this:
-     * <code>
-     * array('Core' = array('AbstractFactory' => array('test.php'    => 'some text content',
-     *                                                 'other.php'   => 'Some more text content',
-     *                                                 'Invalid.csv' => 'Something else',
-     *                                           ),
-     *                      'AnEmptyFolder'   => array(),
-     *                      'badlocation.php' => 'some bad content',
-     *                )
-     * )
-     * </code>
-     * the resulting directory tree will look like this:
-     * <pre>
-     * root
-     * \- Core
-     *  |- badlocation.php
-     *  |- AbstractFactory
-     *  | |- test.php
-     *  | |- other.php
-     *  | \- Invalid.csv
-     *  \- AnEmptyFolder
-     * </pre>
-     * Arrays will become directories with their key as directory name, and
-     * strings becomes files with their key as file name and their value as file
-     * content.
-     *
-     * @param   string  $rootDirName  name of root directory
-     * @param   int     $permissions  file permissions of root directory
-     * @param   array   $structure    directory structure to add under root directory
-     * @return  \org\bovigo\vfs\vfsStreamDirectory
-     * @since   0.7.0
-     * @see     https://github.com/mikey179/vfsStream/issues/14
-     * @see     https://github.com/mikey179/vfsStream/issues/20
-     */
-    public static function setup($rootDirName = 'root', $permissions = null, array $structure = array())
-    {
-        vfsStreamWrapper::register();
-        return self::create($structure, vfsStreamWrapper::setRoot(self::newDirectory($rootDirName, $permissions)));
-    }
-
-    /**
-     * creates vfsStream directory structure from an array and adds it to given base dir
-     *
-     * Assumed $structure contains an array like this:
-     * <code>
-     * array('Core' = array('AbstractFactory' => array('test.php'    => 'some text content',
-     *                                                 'other.php'   => 'Some more text content',
-     *                                                 'Invalid.csv' => 'Something else',
-     *                                           ),
-     *                      'AnEmptyFolder'   => array(),
-     *                      'badlocation.php' => 'some bad content',
-     *                )
-     * )
-     * </code>
-     * the resulting directory tree will look like this:
-     * <pre>
-     * baseDir
-     * \- Core
-     *  |- badlocation.php
-     *  |- AbstractFactory
-     *  | |- test.php
-     *  | |- other.php
-     *  | \- Invalid.csv
-     *  \- AnEmptyFolder
-     * </pre>
-     * Arrays will become directories with their key as directory name, and
-     * strings becomes files with their key as file name and their value as file
-     * content.
-     *
-     * If no baseDir is given it will try to add the structure to the existing
-     * root directory without replacing existing childs except those with equal
-     * names.
-     *
-     * @param   array               $structure  directory structure to add under root directory
-     * @param   vfsStreamDirectory  $baseDir    base directory to add structure to
-     * @return  vfsStreamDirectory
-     * @throws  \InvalidArgumentException
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/14
-     * @see     https://github.com/mikey179/vfsStream/issues/20
-     */
-    public static function create(array $structure, vfsStreamDirectory $baseDir = null)
-    {
-        if (null === $baseDir) {
-            $baseDir = vfsStreamWrapper::getRoot();
-        }
-
-        if (null === $baseDir) {
-            throw new \InvalidArgumentException('No baseDir given and no root directory set.');
-        }
-
-        return self::addStructure($structure, $baseDir);
-    }
-
-    /**
-     * helper method to create subdirectories recursively
-     *
-     * @param   array               $structure  subdirectory structure to add
-     * @param   vfsStreamDirectory  $baseDir    directory to add the structure to
-     * @return  vfsStreamDirectory
-     */
-    protected static function addStructure(array $structure, vfsStreamDirectory $baseDir)
-    {
-        foreach ($structure as $name => $data) {
-            $name = (string) $name;
-            if (is_array($data) === true) {
-                self::addStructure($data, self::newDirectory($name)->at($baseDir));
-            } elseif (is_string($data) === true) {
-                $matches = null;
-                preg_match('/^\[(.*)\]$/', $name, $matches);
-                if ($matches !== array()) {
-                    self::newBlock($matches[1])->withContent($data)->at($baseDir);
-                } else {
-                    self::newFile($name)->withContent($data)->at($baseDir);
-                }
-            }
-        }
-
-        return $baseDir;
-    }
-
-    /**
-     * copies the file system structure from given path into the base dir
-     *
-     * If no baseDir is given it will try to add the structure to the existing
-     * root directory without replacing existing childs except those with equal
-     * names.
-     * File permissions are copied as well.
-     * Please note that file contents will only be copied if their file size
-     * does not exceed the given $maxFileSize which defaults to 1024 KB. In case
-     * the file is larger file content will be mocked, see
-     * https://github.com/mikey179/vfsStream/wiki/MockingLargeFiles.
-     *
-     * @param   string              $path         path to copy the structure from
-     * @param   vfsStreamDirectory  $baseDir      directory to add the structure to
-     * @param   int                 $maxFileSize  maximum file size of files to copy content from
-     * @return  vfsStreamDirectory
-     * @throws  \InvalidArgumentException
-     * @since   0.11.0
-     * @see     https://github.com/mikey179/vfsStream/issues/4
-     */
-    public static function copyFromFileSystem($path, vfsStreamDirectory $baseDir = null, $maxFileSize = 1048576)
-    {
-        if (null === $baseDir) {
-            $baseDir = vfsStreamWrapper::getRoot();
-        }
-
-        if (null === $baseDir) {
-            throw new \InvalidArgumentException('No baseDir given and no root directory set.');
-        }
-
-        $dir = new \DirectoryIterator($path);
-        foreach ($dir as $fileinfo) {
-            switch (filetype($fileinfo->getPathname())) {
-                case 'file':
-                    if ($fileinfo->getSize() <= $maxFileSize) {
-                        $content = file_get_contents($fileinfo->getPathname());
-                    } else {
-                        $content = new LargeFileContent($fileinfo->getSize());
-                    }
-
-                    self::newFile(
-                            $fileinfo->getFilename(),
-                            octdec(substr(sprintf('%o', $fileinfo->getPerms()), -4))
-                        )
-                        ->withContent($content)
-                        ->at($baseDir);
-                    break;
-
-                case 'dir':
-                    if (!$fileinfo->isDot()) {
-                        self::copyFromFileSystem(
-                                $fileinfo->getPathname(),
-                                self::newDirectory(
-                                        $fileinfo->getFilename(),
-                                        octdec(substr(sprintf('%o', $fileinfo->getPerms()), -4))
-                                )->at($baseDir),
-                                $maxFileSize
-                        );
-                    }
-
-                    break;
-
-                case 'block':
-                    self::newBlock(
-                            $fileinfo->getFilename(),
-                            octdec(substr(sprintf('%o', $fileinfo->getPerms()), -4))
-                        )->at($baseDir);
-                    break;
-            }
-        }
-
-        return $baseDir;
-    }
-
-    /**
-     * returns a new file with given name
-     *
-     * @param   string  $name         name of file to create
-     * @param   int     $permissions  permissions of file to create
-     * @return  vfsStreamFile
-     */
-    public static function newFile($name, $permissions = null)
-    {
-        return new vfsStreamFile($name, $permissions);
-    }
-
-    /**
-     * returns a new directory with given name
-     *
-     * If the name contains slashes, a new directory structure will be created.
-     * The returned directory will always be the parent directory of this
-     * directory structure.
-     *
-     * @param   string  $name         name of directory to create
-     * @param   int     $permissions  permissions of directory to create
-     * @return  vfsStreamDirectory
-     */
-    public static function newDirectory($name, $permissions = null)
-    {
-        if ('/' === $name{0}) {
-            $name = substr($name, 1);
-        }
-
-        $firstSlash = strpos($name, '/');
-        if (false === $firstSlash) {
-            return new vfsStreamDirectory($name, $permissions);
-        }
-
-        $ownName   = substr($name, 0, $firstSlash);
-        $subDirs   = substr($name, $firstSlash + 1);
-        $directory = new vfsStreamDirectory($ownName, $permissions);
-        self::newDirectory($subDirs, $permissions)->at($directory);
-        return $directory;
-    }
-
-    /**
-     * returns a new block with the given name
-     *
-     * @param   string  $name           name of the block device
-     * @param   int     $permissions    permissions of block to create
-     * @return vfsStreamBlock
-     */
-    public static function newBlock($name, $permissions = null)
-    {
-        return new vfsStreamBlock($name, $permissions);
-    }
-
-    /**
-     * returns current user
-     *
-     * If the system does not support posix_getuid() the current user will be root (0).
-     *
-     * @return  int
-     */
-    public static function getCurrentUser()
-    {
-        return function_exists('posix_getuid') ? posix_getuid() : self::OWNER_ROOT;
-    }
-
-    /**
-     * returns current group
-     *
-     * If the system does not support posix_getgid() the current group will be root (0).
-     *
-     * @return  int
-     */
-    public static function getCurrentGroup()
-    {
-        return function_exists('posix_getgid') ? posix_getgid() : self::GROUP_ROOT;
-    }
-
-    /**
-     * use visitor to inspect a content structure
-     *
-     * If the given content is null it will fall back to use the current root
-     * directory of the stream wrapper.
-     *
-     * Returns given visitor for method chaining comfort.
-     *
-     * @param   vfsStreamVisitor  $visitor  the visitor who inspects
-     * @param   vfsStreamContent  $content  directory structure to inspect
-     * @return  vfsStreamVisitor
-     * @throws  \InvalidArgumentException
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/10
-     */
-    public static function inspect(vfsStreamVisitor $visitor, vfsStreamContent $content = null)
-    {
-        if (null !== $content) {
-            return $visitor->visit($content);
-        }
-
-        $root = vfsStreamWrapper::getRoot();
-        if (null === $root) {
-            throw new \InvalidArgumentException('No content given and no root directory set.');
-        }
-
-        return $visitor->visitDirectory($root);
-    }
-
-    /**
-     * sets quota to given amount of bytes
-     *
-     * @param  int  $bytes
-     * @since  1.1.0
-     */
-    public static function setQuota($bytes)
-    {
-        vfsStreamWrapper::setQuota(new Quota($bytes));
-    }
-
-    /**
-     * checks if vfsStream lists dotfiles in directory listings
-     *
-     * @return  bool
-     * @since   1.3.0
-     */
-    public static function useDotfiles()
-    {
-        return self::$dotFiles;
-    }
-
-    /**
-     * disable dotfiles in directory listings
-     *
-     * @since  1.3.0
-     */
-    public static function disableDotfiles()
-    {
-        self::$dotFiles = false;
-    }
-
-    /**
-     * enable dotfiles in directory listings
-     *
-     * @since  1.3.0
-     */
-    public static function enableDotfiles()
-    {
-        self::$dotFiles = true;
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamAbstractContent.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamAbstractContent.php
deleted file mode 100644
index 5ec4352..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamAbstractContent.php
+++ /dev/null
@@ -1,419 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Base stream contents container.
- */
-abstract class vfsStreamAbstractContent implements vfsStreamContent
-{
-    /**
-     * name of the container
-     *
-     * @type  string
-     */
-    protected $name;
-    /**
-     * type of the container
-     *
-     * @type  string
-     */
-    protected $type;
-    /**
-     * timestamp of last access
-     *
-     * @type  int
-     */
-    protected $lastAccessed;
-    /**
-     * timestamp of last attribute modification
-     *
-     * @type  int
-     */
-    protected $lastAttributeModified;
-    /**
-     * timestamp of last modification
-     *
-     * @type  int
-     */
-    protected $lastModified;
-    /**
-     * permissions for content
-     *
-     * @type  int
-     */
-    protected $permissions;
-    /**
-     * owner of the file
-     *
-     * @type  int
-     */
-    protected $user;
-    /**
-     * owner group of the file
-     *
-     * @type  int
-     */
-    protected $group;
-    /**
-     * path to to this content
-     *
-     * @type  string
-     */
-    private $parentPath;
-
-    /**
-     * constructor
-     *
-     * @param  string  $name
-     * @param  int     $permissions  optional
-     */
-    public function __construct($name, $permissions = null)
-    {
-        $this->name = $name;
-        $time       = time();
-        if (null === $permissions) {
-            $permissions = $this->getDefaultPermissions() & ~vfsStream::umask();
-        }
-
-        $this->lastAccessed          = $time;
-        $this->lastAttributeModified = $time;
-        $this->lastModified          = $time;
-        $this->permissions           = $permissions;
-        $this->user                  = vfsStream::getCurrentUser();
-        $this->group                 = vfsStream::getCurrentGroup();
-    }
-
-    /**
-     * returns default permissions for concrete implementation
-     *
-     * @return  int
-     * @since   0.8.0
-     */
-    protected abstract function getDefaultPermissions();
-
-    /**
-     * returns the file name of the content
-     *
-     * @return  string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * renames the content
-     *
-     * @param  string  $newName
-     */
-    public function rename($newName)
-    {
-        $this->name = $newName;
-    }
-
-    /**
-     * checks whether the container can be applied to given name
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function appliesTo($name)
-    {
-        if ($name === $this->name) {
-            return true;
-        }
-
-        $segment_name = $this->name.'/';
-        return (strncmp($segment_name, $name, strlen($segment_name)) == 0);
-    }
-
-    /**
-     * returns the type of the container
-     *
-     * @return  int
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * sets the last modification time of the stream content
-     *
-     * @param   int  $filemtime
-     * @return  vfsStreamContent
-     */
-    public function lastModified($filemtime)
-    {
-        $this->lastModified = $filemtime;
-        return $this;
-    }
-
-    /**
-     * returns the last modification time of the stream content
-     *
-     * @return  int
-     */
-    public function filemtime()
-    {
-        return $this->lastModified;
-    }
-
-    /**
-     * sets last access time of the stream content
-     *
-     * @param   int  $fileatime
-     * @return  vfsStreamContent
-     * @since   0.9
-     */
-    public function lastAccessed($fileatime)
-    {
-        $this->lastAccessed = $fileatime;
-        return $this;
-    }
-
-    /**
-     * returns the last access time of the stream content
-     *
-     * @return  int
-     * @since   0.9
-     */
-    public function fileatime()
-    {
-        return $this->lastAccessed;
-    }
-
-    /**
-     * sets the last attribute modification time of the stream content
-     *
-     * @param   int  $filectime
-     * @return  vfsStreamContent
-     * @since   0.9
-     */
-    public function lastAttributeModified($filectime)
-    {
-        $this->lastAttributeModified = $filectime;
-        return $this;
-    }
-
-    /**
-     * returns the last attribute modification time of the stream content
-     *
-     * @return  int
-     * @since   0.9
-     */
-    public function filectime()
-    {
-        return $this->lastAttributeModified;
-    }
-
-    /**
-     * adds content to given container
-     *
-     * @param   vfsStreamContainer  $container
-     * @return  vfsStreamContent
-     */
-    public function at(vfsStreamContainer $container)
-    {
-        $container->addChild($this);
-        return $this;
-    }
-
-    /**
-     * change file mode to given permissions
-     *
-     * @param   int  $permissions
-     * @return  vfsStreamContent
-     */
-    public function chmod($permissions)
-    {
-        $this->permissions           = $permissions;
-        $this->lastAttributeModified = time();
-        clearstatcache();
-        return $this;
-    }
-
-    /**
-     * returns permissions
-     *
-     * @return  int
-     */
-    public function getPermissions()
-    {
-        return $this->permissions;
-    }
-
-    /**
-     * checks whether content is readable
-     *
-     * @param   int   $user   id of user to check for
-     * @param   int   $group  id of group to check for
-     * @return  bool
-     */
-    public function isReadable($user, $group)
-    {
-        if ($this->user === $user) {
-            $check = 0400;
-        } elseif ($this->group === $group) {
-            $check = 0040;
-        } else {
-            $check = 0004;
-        }
-
-        return (bool) ($this->permissions & $check);
-    }
-
-    /**
-     * checks whether content is writable
-     *
-     * @param   int   $user   id of user to check for
-     * @param   int   $group  id of group to check for
-     * @return  bool
-     */
-    public function isWritable($user, $group)
-    {
-        if ($this->user === $user) {
-            $check = 0200;
-        } elseif ($this->group === $group) {
-            $check = 0020;
-        } else {
-            $check = 0002;
-        }
-
-        return (bool) ($this->permissions & $check);
-    }
-
-    /**
-     * checks whether content is executable
-     *
-     * @param   int   $user   id of user to check for
-     * @param   int   $group  id of group to check for
-     * @return  bool
-     */
-    public function isExecutable($user, $group)
-    {
-        if ($this->user === $user) {
-            $check = 0100;
-        } elseif ($this->group === $group) {
-            $check = 0010;
-        } else {
-            $check = 0001;
-        }
-
-        return (bool) ($this->permissions & $check);
-    }
-
-    /**
-     * change owner of file to given user
-     *
-     * @param   int  $user
-     * @return  vfsStreamContent
-     */
-    public function chown($user)
-    {
-        $this->user                  = $user;
-        $this->lastAttributeModified = time();
-        return $this;
-    }
-
-    /**
-     * checks whether file is owned by given user
-     *
-     * @param   int  $user
-     * @return  bool
-     */
-    public function isOwnedByUser($user)
-    {
-        return $this->user === $user;
-    }
-
-    /**
-     * returns owner of file
-     *
-     * @return  int
-     */
-    public function getUser()
-    {
-        return $this->user;
-    }
-
-    /**
-     * change owner group of file to given group
-     *
-     * @param   int  $group
-     * @return  vfsStreamContent
-     */
-    public function chgrp($group)
-    {
-        $this->group                 = $group;
-        $this->lastAttributeModified = time();
-        return $this;
-    }
-
-    /**
-     * checks whether file is owned by group
-     *
-     * @param   int   $group
-     * @return  bool
-     */
-    public function isOwnedByGroup($group)
-    {
-        return $this->group === $group;
-    }
-
-    /**
-     * returns owner group of file
-     *
-     * @return  int
-     */
-    public function getGroup()
-    {
-        return $this->group;
-    }
-
-    /**
-     * sets parent path
-     *
-     * @param  string  $parentPath
-     * @internal  only to be set by parent
-     * @since   1.2.0
-     */
-    public function setParentPath($parentPath)
-    {
-        $this->parentPath = $parentPath;
-    }
-
-    /**
-     * returns path to this content
-     *
-     * @return  string
-     * @since   1.2.0
-     */
-    public function path()
-    {
-        if (null === $this->parentPath) {
-            return $this->name;
-        }
-
-        return $this->parentPath . '/' . $this->name;
-    }
-
-    /**
-     * returns complete vfsStream url for this content
-     *
-     * @return  string
-     * @since   1.2.0
-     */
-    public function url()
-    {
-        return vfsStream::url($this->path());
-    }
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamBlock.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamBlock.php
deleted file mode 100644
index 128a96a..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamBlock.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-
-/**
- * Block container.
- *
- * @api
- */
-class vfsStreamBlock extends vfsStreamFile
-{
-    /**
-     * constructor
-     *
-     * @param  string  $name
-     * @param  int     $permissions  optional
-     */
-    public function __construct($name, $permissions = null)
-    {
-        if (empty($name)) {
-            throw new vfsStreamException('Name of Block device was empty');
-        }
-        parent::__construct($name, $permissions);
-
-        $this->type = vfsStreamContent::TYPE_BLOCK;
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainer.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainer.php
deleted file mode 100644
index e27a581..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainer.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Interface for stream contents that are able to store other stream contents.
- */
-interface vfsStreamContainer extends \IteratorAggregate
-{
-    /**
-     * adds child to the directory
-     *
-     * @param  vfsStreamContent  $child
-     */
-    public function addChild(vfsStreamContent $child);
-
-    /**
-     * removes child from the directory
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function removeChild($name);
-
-    /**
-     * checks whether the container contains a child with the given name
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function hasChild($name);
-
-    /**
-     * returns the child with the given name
-     *
-     * @param   string  $name
-     * @return  vfsStreamContent
-     */
-    public function getChild($name);
-
-    /**
-     * checks whether directory contains any children
-     *
-     * @return  bool
-     * @since   0.10.0
-     */
-    public function hasChildren();
-
-    /**
-     * returns a list of children for this directory
-     *
-     * @return  vfsStreamContent[]
-     */
-    public function getChildren();
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php
deleted file mode 100644
index 83943dc..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Iterator for children of a directory container.
- */
-class vfsStreamContainerIterator implements \Iterator
-{
-    /**
-     * list of children from container to iterate over
-     *
-     * @type  vfsStreamContent[]
-     */
-    protected $children;
-
-    /**
-     * constructor
-     *
-     * @param  vfsStreamContent[]  $children
-     */
-    public function __construct(array $children)
-    {
-        $this->children = $children;
-        if (vfsStream::useDotfiles()) {
-            array_unshift($this->children, new DotDirectory('.'), new DotDirectory('..'));
-        }
-
-        reset($this->children);
-    }
-
-    /**
-     * resets children pointer
-     */
-    public function rewind()
-    {
-        reset($this->children);
-    }
-
-    /**
-     * returns the current child
-     *
-     * @return  vfsStreamContent
-     */
-    public function current()
-    {
-        $child = current($this->children);
-        if (false === $child) {
-            return null;
-        }
-
-        return $child;
-    }
-
-    /**
-     * returns the name of the current child
-     *
-     * @return  string
-     */
-    public function key()
-    {
-        $child = current($this->children);
-        if (false === $child) {
-            return null;
-        }
-
-        return $child->getName();
-    }
-
-    /**
-     * iterates to next child
-     */
-    public function next()
-    {
-        next($this->children);
-    }
-
-    /**
-     * checks if the current value is valid
-     *
-     * @return  bool
-     */
-    public function valid()
-    {
-        return (false !== current($this->children));
-    }
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContent.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContent.php
deleted file mode 100644
index efcccce..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContent.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Interface for stream contents.
- */
-interface vfsStreamContent
-{
-    /**
-     * stream content type: file
-     *
-     * @see  getType()
-     */
-    const TYPE_FILE = 0100000;
-    /**
-     * stream content type: directory
-     *
-     * @see  getType()
-     */
-    const TYPE_DIR  = 0040000;
-    /**
-     * stream content type: symbolic link
-     *
-     * @see  getType();
-     */
-    #const TYPE_LINK = 0120000;
-
-    /**
-     * stream content type: block
-     *
-     * @see getType()
-     */
-    const TYPE_BLOCK = 0060000;
-
-    /**
-     * returns the file name of the content
-     *
-     * @return  string
-     */
-    public function getName();
-
-    /**
-     * renames the content
-     *
-     * @param  string  $newName
-     */
-    public function rename($newName);
-
-    /**
-     * checks whether the container can be applied to given name
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function appliesTo($name);
-
-    /**
-     * returns the type of the container
-     *
-     * @return  int
-     */
-    public function getType();
-
-    /**
-     * returns size of content
-     *
-     * @return  int
-     */
-    public function size();
-
-    /**
-     * sets the last modification time of the stream content
-     *
-     * @param   int  $filemtime
-     * @return  vfsStreamContent
-     */
-    public function lastModified($filemtime);
-
-    /**
-     * returns the last modification time of the stream content
-     *
-     * @return  int
-     */
-    public function filemtime();
-
-    /**
-     * adds content to given container
-     *
-     * @param   vfsStreamContainer  $container
-     * @return  vfsStreamContent
-     */
-    public function at(vfsStreamContainer $container);
-
-    /**
-     * change file mode to given permissions
-     *
-     * @param   int  $permissions
-     * @return  vfsStreamContent
-     */
-    public function chmod($permissions);
-
-    /**
-     * returns permissions
-     *
-     * @return  int
-     */
-    public function getPermissions();
-
-    /**
-     * checks whether content is readable
-     *
-     * @param   int   $user   id of user to check for
-     * @param   int   $group  id of group to check for
-     * @return  bool
-     */
-    public function isReadable($user, $group);
-
-    /**
-     * checks whether content is writable
-     *
-     * @param   int   $user   id of user to check for
-     * @param   int   $group  id of group to check for
-     * @return  bool
-     */
-    public function isWritable($user, $group);
-
-    /**
-     * checks whether content is executable
-     *
-     * @param   int   $user   id of user to check for
-     * @param   int   $group  id of group to check for
-     * @return  bool
-     */
-    public function isExecutable($user, $group);
-
-    /**
-     * change owner of file to given user
-     *
-     * @param   int  $user
-     * @return  vfsStreamContent
-     */
-    public function chown($user);
-
-    /**
-     * checks whether file is owned by given user
-     *
-     * @param   int  $user
-     * @return  bool
-     */
-    public function isOwnedByUser($user);
-
-    /**
-     * returns owner of file
-     *
-     * @return  int
-     */
-    public function getUser();
-
-    /**
-     * change owner group of file to given group
-     *
-     * @param   int  $group
-     * @return  vfsStreamContent
-     */
-    public function chgrp($group);
-
-    /**
-     * checks whether file is owned by group
-     *
-     * @param   int   $group
-     * @return  bool
-     */
-    public function isOwnedByGroup($group);
-
-    /**
-     * returns owner group of file
-     *
-     * @return  int
-     */
-    public function getGroup();
-
-    /**
-     * sets parent path
-     *
-     * @param  string  $parentPath
-     * @internal  only to be set by parent
-     * @since   1.2.0
-     */
-    public function setParentPath($parentPath);
-
-    /**
-     * returns path to this content
-     *
-     * @return  string
-     * @since   1.2.0
-     */
-    public function path();
-
-    /**
-     * returns complete vfsStream url for this content
-     *
-     * @return  string
-     * @since   1.2.0
-     */
-    public function url();
-}
-?>
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamDirectory.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamDirectory.php
deleted file mode 100644
index e17c835..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamDirectory.php
+++ /dev/null
@@ -1,267 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Directory container.
- *
- * @api
- */
-class vfsStreamDirectory extends vfsStreamAbstractContent implements vfsStreamContainer
-{
-    /**
-     * list of directory children
-     *
-     * @type  vfsStreamContent[]
-     */
-    protected $children = array();
-
-    /**
-     * constructor
-     *
-     * @param   string  $name
-     * @param   int     $permissions  optional
-     * @throws  vfsStreamException
-     */
-    public function __construct($name, $permissions = null)
-    {
-        if (strstr($name, '/') !== false) {
-            throw new vfsStreamException('Directory name can not contain /.');
-        }
-
-        $this->type = vfsStreamContent::TYPE_DIR;
-        parent::__construct($name, $permissions);
-    }
-
-    /**
-     * returns default permissions for concrete implementation
-     *
-     * @return  int
-     * @since   0.8.0
-     */
-    protected function getDefaultPermissions()
-    {
-        return 0777;
-    }
-
-    /**
-     * returns size of directory
-     *
-     * The size of a directory is always 0 bytes. To calculate the summarized
-     * size of all children in the directory use sizeSummarized().
-     *
-     * @return  int
-     */
-    public function size()
-    {
-        return 0;
-    }
-
-    /**
-     * returns summarized size of directory and its children
-     *
-     * @return  int
-     */
-    public function sizeSummarized()
-    {
-        $size = 0;
-        foreach ($this->children as $child) {
-            if ($child->getType() === vfsStreamContent::TYPE_DIR) {
-                $size += $child->sizeSummarized();
-            } else {
-                $size += $child->size();
-            }
-        }
-
-        return $size;
-    }
-
-    /**
-     * renames the content
-     *
-     * @param   string  $newName
-     * @throws  vfsStreamException
-     */
-    public function rename($newName)
-    {
-        if (strstr($newName, '/') !== false) {
-            throw new vfsStreamException('Directory name can not contain /.');
-        }
-
-        parent::rename($newName);
-    }
-
-
-    /**
-     * sets parent path
-     *
-     * @param  string  $parentPath
-     * @internal  only to be set by parent
-     * @since   1.2.0
-     */
-    public function setParentPath($parentPath)
-    {
-        parent::setParentPath($parentPath);
-        foreach ($this->children as $child) {
-            $child->setParentPath($this->path());
-        }
-    }
-
-    /**
-     * adds child to the directory
-     *
-     * @param  vfsStreamContent  $child
-     */
-    public function addChild(vfsStreamContent $child)
-    {
-        $child->setParentPath($this->path());
-        $this->children[$child->getName()] = $child;
-        $this->updateModifications();
-    }
-
-    /**
-     * removes child from the directory
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function removeChild($name)
-    {
-        foreach ($this->children as $key => $child) {
-            if ($child->appliesTo($name)) {
-                $child->setParentPath(null);
-                unset($this->children[$key]);
-                $this->updateModifications();
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * updates internal timestamps
-     */
-    protected function updateModifications()
-    {
-        $time = time();
-        $this->lastAttributeModified = $time;
-        $this->lastModified          = $time;
-    }
-
-    /**
-     * checks whether the container contains a child with the given name
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function hasChild($name)
-    {
-        return ($this->getChild($name) !== null);
-    }
-
-    /**
-     * returns the child with the given name
-     *
-     * @param   string  $name
-     * @return  vfsStreamContent
-     */
-    public function getChild($name)
-    {
-        $childName = $this->getRealChildName($name);
-        foreach ($this->children as $child) {
-            if ($child->getName() === $childName) {
-                return $child;
-            }
-
-            if ($child->appliesTo($childName) === true && $child->hasChild($childName) === true) {
-                return $child->getChild($childName);
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * helper method to detect the real child name
-     *
-     * @param   string  $name
-     * @return  string
-     */
-    protected function getRealChildName($name)
-    {
-        if ($this->appliesTo($name) === true) {
-            return self::getChildName($name, $this->name);
-        }
-
-        return $name;
-    }
-
-    /**
-     * helper method to calculate the child name
-     *
-     * @param   string  $name
-     * @param   string  $ownName
-     * @return  string
-     */
-    protected static function getChildName($name, $ownName)
-    {
-        if ($name === $ownName) {
-            return $name;
-        }
-
-        return substr($name, strlen($ownName) + 1);
-    }
-
-    /**
-     * checks whether directory contains any children
-     *
-     * @return  bool
-     * @since   0.10.0
-     */
-    public function hasChildren()
-    {
-        return (count($this->children) > 0);
-    }
-
-    /**
-     * returns a list of children for this directory
-     *
-     * @return  vfsStreamContent[]
-     */
-    public function getChildren()
-    {
-        return array_values($this->children);
-    }
-
-    /**
-     * returns iterator for the children
-     *
-     * @return  vfsStreamContainerIterator
-     */
-    public function getIterator()
-    {
-        return new vfsStreamContainerIterator($this->children);
-    }
-
-    /**
-     * checks whether dir is a dot dir
-     *
-     * @return  bool
-     */
-    public function isDot()
-    {
-        if ('.' === $this->name || '..' === $this->name) {
-            return true;
-        }
-
-        return false;
-    }
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamException.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamException.php
deleted file mode 100644
index aa79d64..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamException.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Exception for vfsStream errors.
- *
- * @api
- */
-class vfsStreamException extends \Exception
-{
-    // intentionally empty
-}
-?>
\ No newline at end of file
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamFile.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamFile.php
deleted file mode 100644
index 7e5f065..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamFile.php
+++ /dev/null
@@ -1,394 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-use org\bovigo\vfs\content\FileContent;
-use org\bovigo\vfs\content\StringBasedFileContent;
-/**
- * File container.
- *
- * @api
- */
-class vfsStreamFile extends vfsStreamAbstractContent
-{
-    /**
-     * content of the file
-     *
-     * @type  FileContent
-     */
-    private $content;
-    /**
-     * Resource id which exclusively locked this file
-     *
-     * @type  string
-     */
-    protected $exclusiveLock;
-    /**
-     * Resources ids which currently holds shared lock to this file
-     *
-     * @type  bool[string]
-     */
-    protected $sharedLock = array();
-
-    /**
-     * constructor
-     *
-     * @param  string  $name
-     * @param  int     $permissions  optional
-     */
-    public function __construct($name, $permissions = null)
-    {
-        $this->content = new StringBasedFileContent(null);
-        $this->type    = vfsStreamContent::TYPE_FILE;
-        parent::__construct($name, $permissions);
-    }
-
-    /**
-     * returns default permissions for concrete implementation
-     *
-     * @return  int
-     * @since   0.8.0
-     */
-    protected function getDefaultPermissions()
-    {
-        return 0666;
-    }
-
-    /**
-     * checks whether the container can be applied to given name
-     *
-     * @param   string  $name
-     * @return  bool
-     */
-    public function appliesTo($name)
-    {
-        return ($name === $this->name);
-    }
-
-    /**
-     * alias for withContent()
-     *
-     * @param   string  $content
-     * @return  vfsStreamFile
-     * @see     withContent()
-     */
-    public function setContent($content)
-    {
-        return $this->withContent($content);
-    }
-
-    /**
-     * sets the contents of the file
-     *
-     * Setting content with this method does not change the time when the file
-     * was last modified.
-     *
-     * @param   string]FileContent  $content
-     * @return  vfsStreamFile
-     * @throws  \InvalidArgumentException
-     */
-    public function withContent($content)
-    {
-        if (is_string($content)) {
-            $this->content = new StringBasedFileContent($content);
-        } elseif ($content instanceof FileContent) {
-            $this->content = $content;
-        } else {
-            throw new \InvalidArgumentException('Given content must either be a string or an instance of org\bovigo\vfs\content\FileContent');
-        }
-
-        return $this;
-    }
-
-    /**
-     * returns the contents of the file
-     *
-     * Getting content does not change the time when the file
-     * was last accessed.
-     *
-     * @return  string
-     */
-    public function getContent()
-    {
-        return $this->content->content();
-    }
-
-    /**
-     * simply open the file
-     *
-     * @since  0.9
-     */
-    public function open()
-    {
-        $this->content->seek(0, SEEK_SET);
-        $this->lastAccessed = time();
-    }
-
-    /**
-     * open file and set pointer to end of file
-     *
-     * @since  0.9
-     */
-    public function openForAppend()
-    {
-        $this->content->seek(0, SEEK_END);
-        $this->lastAccessed = time();
-    }
-
-    /**
-     * open file and truncate content
-     *
-     * @since  0.9
-     */
-    public function openWithTruncate()
-    {
-        $this->open();
-        $this->content->truncate(0);
-        $time               = time();
-        $this->lastAccessed = $time;
-        $this->lastModified = $time;
-    }
-
-    /**
-     * reads the given amount of bytes from content
-     *
-     * Using this method changes the time when the file was last accessed.
-     *
-     * @param   int     $count
-     * @return  string
-     */
-    public function read($count)
-    {
-        $this->lastAccessed = time();
-        return $this->content->read($count);
-    }
-
-    /**
-     * returns the content until its end from current offset
-     *
-     * Using this method changes the time when the file was last accessed.
-     *
-     * @return  string
-     * @deprecated  since 1.3.0
-     */
-    public function readUntilEnd()
-    {
-        $this->lastAccessed = time();
-        return $this->content->readUntilEnd();
-    }
-
-    /**
-     * writes an amount of data
-     *
-     * Using this method changes the time when the file was last modified.
-     *
-     * @param   string  $data
-     * @return  amount of written bytes
-     */
-    public function write($data)
-    {
-        $this->lastModified = time();
-        return $this->content->write($data);
-    }
-
-    /**
-     * Truncates a file to a given length
-     *
-     * @param   int  $size length to truncate file to
-     * @return  bool
-     * @since   1.1.0
-     */
-    public function truncate($size)
-    {
-        $this->content->truncate($size);
-        $this->lastModified = time();
-        return true;
-    }
-
-    /**
-     * checks whether pointer is at end of file
-     *
-     * @return  bool
-     */
-    public function eof()
-    {
-        return $this->content->eof();
-    }
-
-    /**
-     * returns the current position within the file
-     *
-     * @return  int
-     * @deprecated  since 1.3.0
-     */
-    public function getBytesRead()
-    {
-        return $this->content->bytesRead();
-    }
-
-    /**
-     * seeks to the given offset
-     *
-     * @param   int   $offset
-     * @param   int   $whence
-     * @return  bool
-     */
-    public function seek($offset, $whence)
-    {
-        return $this->content->seek($offset, $whence);
-    }
-
-    /**
-     * returns size of content
-     *
-     * @return  int
-     */
-    public function size()
-    {
-        return $this->content->size();
-    }
-
-
-    /**
-     * locks file for
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @param   int  $operation
-     * @return  bool
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/6
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function lock($resource, $operation)
-    {
-        if ((LOCK_NB & $operation) == LOCK_NB) {
-            $operation = $operation - LOCK_NB;
-        }
-
-        // call to lock file on the same file handler firstly releases the lock
-        $this->unlock($resource);
-
-        if (LOCK_EX === $operation) {
-            if ($this->isLocked()) {
-                return false;
-            }
-
-            $this->setExclusiveLock($resource);
-        } elseif(LOCK_SH === $operation) {
-            if ($this->hasExclusiveLock()) {
-                return false;
-            }
-
-            $this->addSharedLock($resource);
-        }
-
-        return true;
-    }
-
-    /**
-     * Removes lock from file acquired by given resource
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function unlock($resource) {
-        if ($this->hasExclusiveLock($resource)) {
-            $this->exclusiveLock = null;
-        }
-        if ($this->hasSharedLock($resource)) {
-            unset($this->sharedLock[$this->getResourceId($resource)]);
-        }
-    }
-
-    /**
-     * Set exlusive lock on file by given resource
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    protected function setExclusiveLock($resource) {
-        $this->exclusiveLock = $this->getResourceId($resource);
-    }
-
-    /**
-     * Add shared lock on file by given resource
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    protected function addSharedLock($resource) {
-        $this->sharedLock[$this->getResourceId($resource)] = true;
-    }
-
-    /**
-     * checks whether file is locked
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @return  bool
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/6
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function isLocked($resource = null)
-    {
-        return $this->hasSharedLock($resource) || $this->hasExclusiveLock($resource);
-    }
-
-    /**
-     * checks whether file is locked in shared mode
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @return  bool
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/6
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function hasSharedLock($resource = null)
-    {
-        if (null !== $resource) {
-            return isset($this->sharedLock[$this->getResourceId($resource)]);
-        }
-
-        return !empty($this->sharedLock);
-    }
-
-    /**
-     * Returns unique resource id
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @return  string
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function getResourceId($resource) {
-        if (is_resource($resource)) {
-            $data = stream_get_meta_data($resource);
-            $resource = $data['wrapper_data'];
-        }
-
-        return spl_object_hash($resource);
-    }
-
-    /**
-     * checks whether file is locked in exclusive mode
-     *
-     * @param   resource|vfsStreamWrapper $resource
-     * @return  bool
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/6
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function hasExclusiveLock($resource = null)
-    {
-        if (null !== $resource) {
-            return $this->exclusiveLock === $this->getResourceId($resource);
-        }
-
-        return null !== $this->exclusiveLock;
-    }
-}
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamWrapper.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamWrapper.php
deleted file mode 100644
index 31c021e..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamWrapper.php
+++ /dev/null
@@ -1,986 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs;
-/**
- * Stream wrapper to mock file system requests.
- */
-class vfsStreamWrapper
-{
-    /**
-     * open file for reading
-     */
-    const READ                   = 'r';
-    /**
-     * truncate file
-     */
-    const TRUNCATE               = 'w';
-    /**
-     * set file pointer to end, append new data
-     */
-    const APPEND                 = 'a';
-    /**
-     * set file pointer to start, overwrite existing data
-     */
-    const WRITE                  = 'x';
-    /**
-     * set file pointer to start, overwrite existing data; or create file if
-     * does not exist
-     */
-    const WRITE_NEW              = 'c';
-    /**
-     * file mode: read only
-     */
-    const READONLY               = 0;
-    /**
-     * file mode: write only
-     */
-    const WRITEONLY              = 1;
-    /**
-     * file mode: read and write
-     */
-    const ALL                    = 2;
-    /**
-     * switch whether class has already been registered as stream wrapper or not
-     *
-     * @type  bool
-     */
-    protected static $registered = false;
-    /**
-     * root content
-     *
-     * @type  vfsStreamContent
-     */
-    protected static $root;
-    /**
-     * disk space quota
-     *
-     * @type  Quota
-     */
-    private static $quota;
-    /**
-     * file mode: read only, write only, all
-     *
-     * @type  int
-     */
-    protected $mode;
-    /**
-     * shortcut to file container
-     *
-     * @type  vfsStreamFile
-     */
-    protected $content;
-    /**
-     * shortcut to directory container
-     *
-     * @type  vfsStreamDirectory
-     */
-    protected $dir;
-    /**
-     * shortcut to directory container iterator
-     *
-     * @type  vfsStreamDirectory
-     */
-    protected $dirIterator;
-
-    /**
-     * method to register the stream wrapper
-     *
-     * Please be aware that a call to this method will reset the root element
-     * to null.
-     * If the stream is already registered the method returns silently. If there
-     * is already another stream wrapper registered for the scheme used by
-     * vfsStream a vfsStreamException will be thrown.
-     *
-     * @throws  vfsStreamException
-     */
-    public static function register()
-    {
-        self::$root  = null;
-        self::$quota = Quota::unlimited();
-        if (true === self::$registered) {
-            return;
-        }
-
-        if (@stream_wrapper_register(vfsStream::SCHEME, __CLASS__) === false) {
-            throw new vfsStreamException('A handler has already been registered for the ' . vfsStream::SCHEME . ' protocol.');
-        }
-
-        self::$registered = true;
-    }
-
-    /**
-     * sets the root content
-     *
-     * @param   vfsStreamContainer  $root
-     * @return  vfsStreamContainer
-     */
-    public static function setRoot(vfsStreamContainer $root)
-    {
-        self::$root = $root;
-        clearstatcache();
-        return self::$root;
-    }
-
-    /**
-     * returns the root content
-     *
-     * @return  vfsStreamContainer
-     */
-    public static function getRoot()
-    {
-        return self::$root;
-    }
-
-    /**
-     * sets quota for disk space
-     *
-     * @param  Quota  $quota
-     * @since  1.1.0
-     */
-    public static function setQuota(Quota $quota)
-    {
-        self::$quota = $quota;
-    }
-
-    /**
-     * returns content for given path
-     *
-     * @param   string  $path
-     * @return  vfsStreamContent
-     */
-    protected function getContent($path)
-    {
-        if (null === self::$root) {
-            return null;
-        }
-
-        if (self::$root->getName() === $path) {
-            return self::$root;
-        }
-
-        if ($this->isInRoot($path) && self::$root->hasChild($path) === true) {
-            return self::$root->getChild($path);
-        }
-
-        return null;
-    }
-
-    /**
-     * helper method to detect whether given path is in root path
-     *
-     * @param   string  $path
-     * @return  bool
-     */
-    private function isInRoot($path)
-    {
-        return substr($path, 0, strlen(self::$root->getName())) === self::$root->getName();
-    }
-
-    /**
-     * returns content for given path but only when it is of given type
-     *
-     * @param   string  $path
-     * @param   int     $type
-     * @return  vfsStreamContent
-     */
-    protected function getContentOfType($path, $type)
-    {
-        $content = $this->getContent($path);
-        if (null !== $content && $content->getType() === $type) {
-            return $content;
-        }
-
-        return null;
-    }
-
-    /**
-     * splits path into its dirname and the basename
-     *
-     * @param   string  $path
-     * @return  string[]
-     */
-    protected function splitPath($path)
-    {
-        $lastSlashPos = strrpos($path, '/');
-        if (false === $lastSlashPos) {
-            return array('dirname' => '', 'basename' => $path);
-        }
-
-        return array('dirname'  => substr($path, 0, $lastSlashPos),
-                     'basename' => substr($path, $lastSlashPos + 1)
-               );
-    }
-
-    /**
-     * helper method to resolve a path from /foo/bar/. to /foo/bar
-     *
-     * @param   string  $path
-     * @return  string
-     */
-    protected function resolvePath($path)
-    {
-        $newPath  = array();
-        foreach (explode('/', $path) as $pathPart) {
-            if ('.' !== $pathPart) {
-                if ('..' !== $pathPart) {
-                    $newPath[] = $pathPart;
-                } else {
-                    array_pop($newPath);
-                }
-            }
-        }
-
-        return implode('/', $newPath);
-    }
-
-    /**
-     * open the stream
-     *
-     * @param   string  $path         the path to open
-     * @param   string  $mode         mode for opening
-     * @param   string  $options      options for opening
-     * @param   string  $opened_path  full path that was actually opened
-     * @return  bool
-     */
-    public function stream_open($path, $mode, $options, $opened_path)
-    {
-        $extended = ((strstr($mode, '+') !== false) ? (true) : (false));
-        $mode     = str_replace(array('t', 'b', '+'), '', $mode);
-        if (in_array($mode, array('r', 'w', 'a', 'x', 'c')) === false) {
-            if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                trigger_error('Illegal mode ' . $mode . ', use r, w, a, x  or c, flavoured with t, b and/or +', E_USER_WARNING);
-            }
-
-            return false;
-        }
-
-        $this->mode    = $this->calculateMode($mode, $extended);
-        $path          = $this->resolvePath(vfsStream::path($path));
-        $this->content = $this->getContentOfType($path, vfsStreamContent::TYPE_FILE);
-        if (null !== $this->content) {
-            if (self::WRITE === $mode) {
-                if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                    trigger_error('File ' . $path . ' already exists, can not open with mode x', E_USER_WARNING);
-                }
-
-                return false;
-            }
-
-            if (
-                (self::TRUNCATE === $mode || self::APPEND === $mode) &&
-                $this->content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false
-            ) {
-                return false;
-            }
-
-            if (self::TRUNCATE === $mode) {
-                $this->content->openWithTruncate();
-            } elseif (self::APPEND === $mode) {
-                $this->content->openForAppend();
-            } else {
-                if (!$this->content->isReadable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
-                    if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                        trigger_error('Permission denied', E_USER_WARNING);
-                    }
-                    return false;
-                }
-                $this->content->open();
-            }
-
-            return true;
-        }
-
-        $content = $this->createFile($path, $mode, $options);
-        if (false === $content) {
-            return false;
-        }
-
-        $this->content = $content;
-        return true;
-    }
-
-    /**
-     * creates a file at given path
-     *
-     * @param   string  $path     the path to open
-     * @param   string  $mode     mode for opening
-     * @param   string  $options  options for opening
-     * @return  bool
-     */
-    private function createFile($path, $mode = null, $options = null)
-    {
-        $names = $this->splitPath($path);
-        if (empty($names['dirname']) === true) {
-            if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                trigger_error('File ' . $names['basename'] . ' does not exist', E_USER_WARNING);
-            }
-
-            return false;
-        }
-
-        $dir = $this->getContentOfType($names['dirname'], vfsStreamContent::TYPE_DIR);
-        if (null === $dir) {
-            if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                trigger_error('Directory ' . $names['dirname'] . ' does not exist', E_USER_WARNING);
-            }
-
-            return false;
-        } elseif ($dir->hasChild($names['basename']) === true) {
-            if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                trigger_error('Directory ' . $names['dirname'] . ' already contains a director named ' . $names['basename'], E_USER_WARNING);
-            }
-
-            return false;
-        }
-
-        if (self::READ === $mode) {
-            if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                trigger_error('Can not open non-existing file ' . $path . ' for reading', E_USER_WARNING);
-            }
-
-            return false;
-        }
-
-        if ($dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
-                trigger_error('Can not create new file in non-writable path ' . $names['dirname'], E_USER_WARNING);
-            }
-
-            return false;
-        }
-
-        return vfsStream::newFile($names['basename'])->at($dir);
-    }
-
-    /**
-     * calculates the file mode
-     *
-     * @param   string  $mode      opening mode: r, w, a or x
-     * @param   bool    $extended  true if + was set with opening mode
-     * @return  int
-     */
-    protected function calculateMode($mode, $extended)
-    {
-        if (true === $extended) {
-            return self::ALL;
-        }
-
-        if (self::READ === $mode) {
-            return self::READONLY;
-        }
-
-        return self::WRITEONLY;
-    }
-
-    /**
-     * closes the stream
-     *
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function stream_close()
-    {
-        $this->content->lock($this, LOCK_UN);
-    }
-
-    /**
-     * read the stream up to $count bytes
-     *
-     * @param   int     $count  amount of bytes to read
-     * @return  string
-     */
-    public function stream_read($count)
-    {
-        if (self::WRITEONLY === $this->mode) {
-            return '';
-        }
-
-        if ($this->content->isReadable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            return '';
-        }
-
-        return $this->content->read($count);
-    }
-
-    /**
-     * writes data into the stream
-     *
-     * @param   string  $data
-     * @return  int     amount of bytes written
-     */
-    public function stream_write($data)
-    {
-        if (self::READONLY === $this->mode) {
-            return 0;
-        }
-
-        if ($this->content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            return 0;
-        }
-
-        if (self::$quota->isLimited()) {
-            $data = substr($data, 0, self::$quota->spaceLeft(self::$root->sizeSummarized()));
-        }
-
-        return $this->content->write($data);
-    }
-
-    /**
-     * truncates a file to a given length
-     *
-     * @param   int  $size  length to truncate file to
-     * @return  bool
-     * @since   1.1.0
-     */
-    public function stream_truncate($size)
-    {
-        if (self::READONLY === $this->mode) {
-            return false;
-        }
-
-        if ($this->content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            return false;
-        }
-
-        if ($this->content->getType() !== vfsStreamContent::TYPE_FILE) {
-            return false;
-        }
-
-        if (self::$quota->isLimited() && $this->content->size() < $size) {
-            $maxSize = self::$quota->spaceLeft(self::$root->sizeSummarized());
-            if (0 === $maxSize) {
-                return false;
-            }
-
-            if ($size > $maxSize) {
-                $size = $maxSize;
-            }
-        }
-
-        return $this->content->truncate($size);
-    }
-
-    /**
-     * sets metadata like owner, user or permissions
-     *
-     * @param   string  $path
-     * @param   int     $option
-     * @param   mixed   $var
-     * @return  bool
-     * @since   1.1.0
-     */
-    public function stream_metadata($path, $option, $var)
-    {
-        $path    = $this->resolvePath(vfsStream::path($path));
-        $content = $this->getContent($path);
-        switch ($option) {
-            case STREAM_META_TOUCH:
-                if (null === $content) {
-                    $content = $this->createFile($path, null, STREAM_REPORT_ERRORS);
-                    // file creation may not be allowed at provided path
-                    if (false === $content) {
-                        return false;
-                    }
-                }
-
-                $currentTime = time();
-                $content->lastModified(((isset($var[0])) ? ($var[0]) : ($currentTime)))
-                        ->lastAccessed(((isset($var[1])) ? ($var[1]) : ($currentTime)));
-                return true;
-
-            case STREAM_META_OWNER_NAME:
-                return false;
-
-            case STREAM_META_OWNER:
-                if (null === $content) {
-                    return false;
-                }
-
-                return $this->doPermChange($path,
-                                           $content,
-                                           function() use ($content, $var)
-                                           {
-                                               $content->chown($var);
-                                           }
-                );
-
-            case STREAM_META_GROUP_NAME:
-                return false;
-
-            case STREAM_META_GROUP:
-                if (null === $content) {
-                    return false;
-                }
-
-                return $this->doPermChange($path,
-                                           $content,
-                                           function() use ($content, $var)
-                                           {
-                                               $content->chgrp($var);
-                                           }
-                );
-
-            case STREAM_META_ACCESS:
-                if (null === $content) {
-                    return false;
-                }
-
-                return $this->doPermChange($path,
-                                           $content,
-                                           function() use ($content, $var)
-                                           {
-                                               $content->chmod($var);
-                                           }
-                );
-
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * executes given permission change when necessary rights allow such a change
-     *
-     * @param   string                    $path
-     * @param   vfsStreamAbstractContent  $content
-     * @param   \Closure                  $change
-     * @return  bool
-     */
-    private function doPermChange($path, vfsStreamAbstractContent $content, \Closure $change)
-    {
-        if (!$content->isOwnedByUser(vfsStream::getCurrentUser())) {
-            return false;
-        }
-
-        if (self::$root->getName() !== $path) {
-            $names   = $this->splitPath($path);
-            $parent = $this->getContent($names['dirname']);
-            if (!$parent->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
-                return false;
-            }
-        }
-
-        $change();
-        return true;
-    }
-
-    /**
-     * checks whether stream is at end of file
-     *
-     * @return  bool
-     */
-    public function stream_eof()
-    {
-        return $this->content->eof();
-    }
-
-    /**
-     * returns the current position of the stream
-     *
-     * @return  int
-     */
-    public function stream_tell()
-    {
-        return $this->content->getBytesRead();
-    }
-
-    /**
-     * seeks to the given offset
-     *
-     * @param   int   $offset
-     * @param   int   $whence
-     * @return  bool
-     */
-    public function stream_seek($offset, $whence)
-    {
-        return $this->content->seek($offset, $whence);
-    }
-
-    /**
-     * flushes unstored data into storage
-     *
-     * @return  bool
-     */
-    public function stream_flush()
-    {
-        return true;
-    }
-
-    /**
-     * returns status of stream
-     *
-     * @return  array
-     */
-    public function stream_stat()
-    {
-        $fileStat = array('dev'     => 0,
-                          'ino'     => 0,
-                          'mode'    => $this->content->getType() | $this->content->getPermissions(),
-                          'nlink'   => 0,
-                          'uid'     => $this->content->getUser(),
-                          'gid'     => $this->content->getGroup(),
-                          'rdev'    => 0,
-                          'size'    => $this->content->size(),
-                          'atime'   => $this->content->fileatime(),
-                          'mtime'   => $this->content->filemtime(),
-                          'ctime'   => $this->content->filectime(),
-                          'blksize' => -1,
-                          'blocks'  => -1
-                    );
-        return array_merge(array_values($fileStat), $fileStat);
-    }
-
-    /**
-     * retrieve the underlaying resource
-     *
-     * Please note that this method always returns false as there is no
-     * underlaying resource to return.
-     *
-     * @param   int  $cast_as
-     * @since   0.9.0
-     * @see     https://github.com/mikey179/vfsStream/issues/3
-     * @return  bool
-     */
-    public function stream_cast($cast_as)
-    {
-        return false;
-    }
-
-    /**
-     * set lock status for stream
-     *
-     * @param   int   $operation
-     * @return  bool
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/6
-     * @see     https://github.com/mikey179/vfsStream/issues/31
-     * @see     https://github.com/mikey179/vfsStream/issues/40
-     */
-    public function stream_lock($operation)
-    {
-        if ((LOCK_NB & $operation) == LOCK_NB) {
-            $operation = $operation - LOCK_NB;
-        }
-
-        return $this->content->lock($this, $operation);
-    }
-
-    /**
-     * sets options on the stream
-     *
-     * @param   int   $option  key of option to set
-     * @param   int   $arg1
-     * @param   int   $arg2
-     * @return  bool
-     * @since   0.10.0
-     * @see     https://github.com/mikey179/vfsStream/issues/15
-     * @see     http://www.php.net/manual/streamwrapper.stream-set-option.php
-     */
-    public function stream_set_option($option, $arg1, $arg2)
-    {
-        switch ($option) {
-            case STREAM_OPTION_BLOCKING:
-                // break omitted
-
-            case STREAM_OPTION_READ_TIMEOUT:
-                // break omitted
-
-            case STREAM_OPTION_WRITE_BUFFER:
-                // break omitted
-
-            default:
-                // nothing to do here
-        }
-
-        return false;
-    }
-
-    /**
-     * remove the data under the given path
-     *
-     * @param   string  $path
-     * @return  bool
-     */
-    public function unlink($path)
-    {
-        $realPath = $this->resolvePath(vfsStream::path($path));
-        $content  = $this->getContent($realPath);
-        if (null === $content) {
-            trigger_error('unlink(' . $path . '): No such file or directory', E_USER_WARNING);
-            return false;
-        }
-
-        if ($content->getType() !== vfsStreamContent::TYPE_FILE) {
-            trigger_error('unlink(' . $path . '): Operation not permitted', E_USER_WARNING);
-            return false;
-        }
-
-        return $this->doUnlink($realPath);
-    }
-
-    /**
-     * removes a path
-     *
-     * @param   string  $path
-     * @return  bool
-     */
-    protected function doUnlink($path)
-    {
-        if (self::$root->getName() === $path) {
-            // delete root? very brave. :)
-            self::$root = null;
-            clearstatcache();
-            return true;
-        }
-
-        $names   = $this->splitPath($path);
-        $content = $this->getContent($names['dirname']);
-        if (!$content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
-            return false;
-        }
-
-        clearstatcache();
-        return $content->removeChild($names['basename']);
-    }
-
-    /**
-     * rename from one path to another
-     *
-     * @param   string  $path_from
-     * @param   string  $path_to
-     * @return  bool
-     * @author  Benoit Aubuchon
-     */
-    public function rename($path_from, $path_to)
-    {
-        $srcRealPath = $this->resolvePath(vfsStream::path($path_from));
-        $dstRealPath = $this->resolvePath(vfsStream::path($path_to));
-        $srcContent  = $this->getContent($srcRealPath);
-        if (null == $srcContent) {
-            trigger_error(' No such file or directory', E_USER_WARNING);
-            return false;
-        }
-        $dstNames = $this->splitPath($dstRealPath);
-        $dstParentContent = $this->getContent($dstNames['dirname']);
-        if (null == $dstParentContent) {
-            trigger_error('No such file or directory', E_USER_WARNING);
-            return false;
-        }
-        if (!$dstParentContent->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
-            trigger_error('Permission denied', E_USER_WARNING);
-            return false;
-        }
-        if ($dstParentContent->getType() !== vfsStreamContent::TYPE_DIR) {
-            trigger_error('Target is not a directory', E_USER_WARNING);
-            return false;
-        }
-
-        // remove old source first, so we can rename later
-        // (renaming first would lead to not being able to remove the old path)
-        if (!$this->doUnlink($srcRealPath)) {
-            return false;
-        }
-
-        $dstContent = $srcContent;
-        // Renaming the filename
-        $dstContent->rename($dstNames['basename']);
-        // Copying to the destination
-        $dstParentContent->addChild($dstContent);
-        return true;
-    }
-
-    /**
-     * creates a new directory
-     *
-     * @param   string  $path
-     * @param   int     $mode
-     * @param   int     $options
-     * @return  bool
-     */
-    public function mkdir($path, $mode, $options)
-    {
-        $umask = vfsStream::umask();
-        if (0 < $umask) {
-            $permissions = $mode & ~$umask;
-        } else {
-            $permissions = $mode;
-        }
-
-        $path = $this->resolvePath(vfsStream::path($path));
-        if (null !== $this->getContent($path)) {
-            trigger_error('mkdir(): Path vfs://' . $path . ' exists', E_USER_WARNING);
-            return false;
-        }
-
-        if (null === self::$root) {
-            self::$root = vfsStream::newDirectory($path, $permissions);
-            return true;
-        }
-
-        $maxDepth = count(explode('/', $path));
-        $names    = $this->splitPath($path);
-        $newDirs  = $names['basename'];
-        $dir      = null;
-        $i        = 0;
-        while ($dir === null && $i < $maxDepth) {
-            $dir     = $this->getContent($names['dirname']);
-            $names   = $this->splitPath($names['dirname']);
-            if (null == $dir) {
-                $newDirs = $names['basename'] . '/' . $newDirs;
-            }
-
-            $i++;
-        }
-
-        if (null === $dir
-          || $dir->getType() !== vfsStreamContent::TYPE_DIR
-          || $dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            return false;
-        }
-
-        $recursive = ((STREAM_MKDIR_RECURSIVE & $options) !== 0) ? (true) : (false);
-        if (strpos($newDirs, '/') !== false && false === $recursive) {
-            return false;
-        }
-
-        vfsStream::newDirectory($newDirs, $permissions)->at($dir);
-        return true;
-    }
-
-    /**
-     * removes a directory
-     *
-     * @param   string  $path
-     * @param   int     $options
-     * @return  bool
-     * @todo    consider $options with STREAM_MKDIR_RECURSIVE
-     */
-    public function rmdir($path, $options)
-    {
-        $path  = $this->resolvePath(vfsStream::path($path));
-        $child = $this->getContentOfType($path, vfsStreamContent::TYPE_DIR);
-        if (null === $child) {
-            return false;
-        }
-
-        // can only remove empty directories
-        if (count($child->getChildren()) > 0) {
-            return false;
-        }
-
-        if (self::$root->getName() === $path) {
-            // delete root? very brave. :)
-            self::$root = null;
-            clearstatcache();
-            return true;
-        }
-
-        $names = $this->splitPath($path);
-        $dir   = $this->getContentOfType($names['dirname'], vfsStreamContent::TYPE_DIR);
-        if ($dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            return false;
-        }
-
-        clearstatcache();
-        return $dir->removeChild($child->getName());
-    }
-
-    /**
-     * opens a directory
-     *
-     * @param   string  $path
-     * @param   int     $options
-     * @return  bool
-     */
-    public function dir_opendir($path, $options)
-    {
-        $path      = $this->resolvePath(vfsStream::path($path));
-        $this->dir = $this->getContentOfType($path, vfsStreamContent::TYPE_DIR);
-        if (null === $this->dir || $this->dir->isReadable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
-            return false;
-        }
-
-        $this->dirIterator = $this->dir->getIterator();
-        return true;
-    }
-
-    /**
-     * reads directory contents
-     *
-     * @return  string
-     */
-    public function dir_readdir()
-    {
-        $dir = $this->dirIterator->current();
-        if (null === $dir) {
-            return false;
-        }
-
-        $this->dirIterator->next();
-        return $dir->getName();
-    }
-
-    /**
-     * reset directory iteration
-     *
-     * @return  bool
-     */
-    public function dir_rewinddir()
-    {
-        return $this->dirIterator->rewind();
-    }
-
-    /**
-     * closes directory
-     *
-     * @return  bool
-     */
-    public function dir_closedir()
-    {
-        $this->dirIterator = null;
-        return true;
-    }
-
-    /**
-     * returns status of url
-     *
-     * @param   string  $path   path of url to return status for
-     * @param   int     $flags  flags set by the stream API
-     * @return  array
-     */
-    public function url_stat($path, $flags)
-    {
-        $content = $this->getContent($this->resolvePath(vfsStream::path($path)));
-        if (null === $content) {
-            if (($flags & STREAM_URL_STAT_QUIET) != STREAM_URL_STAT_QUIET) {
-                trigger_error(' No such file or directory: ' . $path, E_USER_WARNING);
-            }
-
-            return false;
-
-        }
-
-        $fileStat = array('dev'     => 0,
-                          'ino'     => 0,
-                          'mode'    => $content->getType() | $content->getPermissions(),
-                          'nlink'   => 0,
-                          'uid'     => $content->getUser(),
-                          'gid'     => $content->getGroup(),
-                          'rdev'    => 0,
-                          'size'    => $content->size(),
-                          'atime'   => $content->fileatime(),
-                          'mtime'   => $content->filemtime(),
-                          'ctime'   => $content->filectime(),
-                          'blksize' => -1,
-                          'blocks'  => -1
-                    );
-        return array_merge(array_values($fileStat), $fileStat);
-    }
-}
-?>
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitor.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitor.php
deleted file mode 100644
index 4f8c286..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitor.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\visitor;
-use org\bovigo\vfs\vfsStreamContent;
-use org\bovigo\vfs\vfsStreamBlock;
-
-/**
- * Abstract base class providing an implementation for the visit() method.
- *
- * @since  0.10.0
- * @see    https://github.com/mikey179/vfsStream/issues/10
- */
-abstract class vfsStreamAbstractVisitor implements vfsStreamVisitor
-{
-    /**
-     * visit a content and process it
-     *
-     * @param   vfsStreamContent  $content
-     * @return  vfsStreamVisitor
-     * @throws  \InvalidArgumentException
-     */
-    public function visit(vfsStreamContent $content)
-    {
-        switch ($content->getType()) {
-            case vfsStreamContent::TYPE_BLOCK:
-                $this->visitBlockDevice($content);
-                break;
-
-            case vfsStreamContent::TYPE_FILE:
-                $this->visitFile($content);
-                break;
-
-            case vfsStreamContent::TYPE_DIR:
-                if (!$content->isDot()) {
-                    $this->visitDirectory($content);
-                }
-
-                break;
-
-            default:
-                throw new \InvalidArgumentException('Unknown content type ' . $content->getType() . ' for ' . $content->getName());
-        }
-
-        return $this;
-    }
-
-    /**
-     * visit a block device and process it
-     *
-     * @param   vfsStreamBlock $block
-     * @return  vfsStreamVisitor
-     */
-    public function visitBlockDevice(vfsStreamBlock $block)
-    {
-        return $this->visitFile($block);
-    }
-}
-?>
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitor.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitor.php
deleted file mode 100644
index 4175485..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitor.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\visitor;
-use org\bovigo\vfs\vfsStreamContent;
-use org\bovigo\vfs\vfsStreamDirectory;
-use org\bovigo\vfs\vfsStreamFile;
-use org\bovigo\vfs\vfsStreamBlock;
-
-/**
- * Visitor which traverses a content structure recursively to print it to an output stream.
- *
- * @since  0.10.0
- * @see    https://github.com/mikey179/vfsStream/issues/10
- */
-class vfsStreamPrintVisitor extends vfsStreamAbstractVisitor
-{
-    /**
-     * target to write output to
-     *
-     * @type  resource
-     */
-    protected $out;
-    /**
-     * current depth in directory tree
-     *
-     * @type  int
-     */
-    protected $depth;
-
-    /**
-     * constructor
-     *
-     * If no file pointer given it will fall back to STDOUT.
-     *
-     * @param   resource  $out  optional
-     * @throws  \InvalidArgumentException
-     * @api
-     */
-    public function __construct($out = STDOUT)
-    {
-        if (is_resource($out) === false || get_resource_type($out) !== 'stream') {
-            throw new \InvalidArgumentException('Given filepointer is not a resource of type stream');
-        }
-
-        $this->out = $out;
-    }
-
-    /**
-     * visit a file and process it
-     *
-     * @param   vfsStreamFile  $file
-     * @return  vfsStreamPrintVisitor
-     */
-    public function visitFile(vfsStreamFile $file)
-    {
-        $this->printContent($file->getName());
-        return $this;
-    }
-
-    /**
-     * visit a block device and process it
-     *
-     * @param   vfsStreamBlock  $block
-     * @return  vfsStreamPrintVisitor
-     */
-    public function visitBlockDevice(vfsStreamBlock $block)
-    {
-        $name = '[' . $block->getName() . ']';
-        $this->printContent($name);
-        return $this;
-    }
-
-    /**
-     * visit a directory and process it
-     *
-     * @param   vfsStreamDirectory  $dir
-     * @return  vfsStreamPrintVisitor
-     */
-    public function visitDirectory(vfsStreamDirectory $dir)
-    {
-        $this->printContent($dir->getName());
-        $this->depth++;
-        foreach ($dir as $child) {
-            $this->visit($child);
-        }
-
-        $this->depth--;
-        return $this;
-    }
-
-    /**
-     * helper method to print the content
-     *
-     * @param  string   $name
-     */
-    protected function printContent($name)
-    {
-        fwrite($this->out, str_repeat('  ', $this->depth) . '- ' . $name . "\n");
-    }
-}
-?>
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitor.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitor.php
deleted file mode 100644
index 957e5df..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitor.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\visitor;
-use org\bovigo\vfs\vfsStreamDirectory;
-use org\bovigo\vfs\vfsStreamFile;
-use org\bovigo\vfs\vfsStreamBlock;
-
-/**
- * Visitor which traverses a content structure recursively to create an array structure from it.
- *
- * @since  0.10.0
- * @see    https://github.com/mikey179/vfsStream/issues/10
- */
-class vfsStreamStructureVisitor extends vfsStreamAbstractVisitor
-{
-    /**
-     * collected structure
-     *
-     * @type  array
-     */
-    protected $structure = array();
-    /**
-     * poiting to currently iterated directory
-     *
-     * @type  array
-     */
-    protected $current;
-
-    /**
-     * constructor
-     *
-     * @api
-     */
-    public function __construct()
-    {
-        $this->reset();
-    }
-
-    /**
-     * visit a file and process it
-     *
-     * @param   vfsStreamFile  $file
-     * @return  vfsStreamStructureVisitor
-     */
-    public function visitFile(vfsStreamFile $file)
-    {
-        $this->current[$file->getName()] = $file->getContent();
-        return $this;
-    }
-
-    /**
-     * visit a block device and process it
-     *
-     * @param   vfsStreamBlock $block
-     * @return  vfsStreamStructureVisitor
-     */
-    public function visitBlockDevice(vfsStreamBlock $block)
-    {
-        $this->current['[' . $block->getName() . ']'] = $block->getContent();
-        return $this;
-    }
-
-    /**
-     * visit a directory and process it
-     *
-     * @param   vfsStreamDirectory  $dir
-     * @return  vfsStreamStructureVisitor
-     */
-    public function visitDirectory(vfsStreamDirectory $dir)
-    {
-        $this->current[$dir->getName()] = array();
-        $tmp           =& $this->current;
-        $this->current =& $tmp[$dir->getName()];
-        foreach ($dir as $child) {
-            $this->visit($child);
-        }
-
-        $this->current =& $tmp;
-        return $this;
-    }
-
-    /**
-     * returns structure of visited contents
-     *
-     * @return  array
-     * @api
-     */
-    public function getStructure()
-    {
-        return $this->structure;
-    }
-
-    /**
-     * resets structure so visitor could be reused
-     *
-     * @return  vfsStreamStructureVisitor
-     */
-    public function reset()
-    {
-        $this->structure = array();
-        $this->current   =& $this->structure;
-        return $this;
-    }
-}
-?>
diff --git a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamVisitor.php b/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamVisitor.php
deleted file mode 100644
index 89e4374..0000000
--- a/core/vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamVisitor.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * This file is part of vfsStream.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @package  org\bovigo\vfs
- */
-namespace org\bovigo\vfs\visitor;
-use org\bovigo\vfs\vfsStreamContent;
-use org\bovigo\vfs\vfsStreamDirectory;
-use org\bovigo\vfs\vfsStreamFile;
-use org\bovigo\vfs\vfsStreamBlock;
-
-/**
- * Interface for a visitor to work on a vfsStream content structure.
- *
- * @since  0.10.0
- * @see    https://github.com/mikey179/vfsStream/issues/10
- */
-interface vfsStreamVisitor
-{
-    /**
-     * visit a content and process it
-     *
-     * @param   vfsStreamContent  $content
-     * @return  vfsStreamVisitor
-     */
-    public function visit(vfsStreamContent $content);
-
-    /**
-     * visit a file and process it
-     *
-     * @param   vfsStreamFile  $file
-     * @return  vfsStreamVisitor
-     */
-    public function visitFile(vfsStreamFile $file);
-
-    /**
-     * visit a directory and process it
-     *
-     * @param   vfsStreamDirectory  $dir
-     * @return  vfsStreamVisitor
-     */
-    public function visitDirectory(vfsStreamDirectory $dir);
-
-    /**
-     * visit a block device and process it
-     *
-     * @param   vfsStreamBlock  $block
-     * @return  vfsStreamVisitor
-     */
-    public function visitBlockDevice(vfsStreamBlock $block);
-}
-?>
diff --git a/core/vendor/phpdocumentor/reflection-docblock/.gitignore b/core/vendor/phpdocumentor/reflection-docblock/.gitignore
deleted file mode 100644
index 3ce5adb..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.idea
-vendor
diff --git a/core/vendor/phpdocumentor/reflection-docblock/.travis.yml b/core/vendor/phpdocumentor/reflection-docblock/.travis.yml
deleted file mode 100644
index eef782c..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/.travis.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-language: php
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-  - hhvm-nightly
-
-matrix:
-    allow_failures:
-        - php: hhvm
-        - php: hhvm-nightly
-
-script:
- - vendor/bin/phpunit
-
-before_script:
- - sudo apt-get -qq update > /dev/null
- - phpenv rehash > /dev/null
- - composer selfupdate --quiet
- - composer install --no-interaction --prefer-source --dev
- - vendor/bin/phpunit
- - composer update --no-interaction --prefer-source --dev
-
-notifications:
-  irc: "irc.freenode.org#phpdocumentor"
-  email:
-    - mike.vanriel@naenius.com
-    - ashnazg@php.net
-    - boen.robot@gmail.com
diff --git a/core/vendor/phpdocumentor/reflection-docblock/LICENSE b/core/vendor/phpdocumentor/reflection-docblock/LICENSE
deleted file mode 100644
index 792e404..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2010 Mike van Riel
-
-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/core/vendor/phpdocumentor/reflection-docblock/README.md b/core/vendor/phpdocumentor/reflection-docblock/README.md
deleted file mode 100644
index 6405d1a..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-The ReflectionDocBlock Component [![Build Status](https://secure.travis-ci.org/phpDocumentor/ReflectionDocBlock.png)](https://travis-ci.org/phpDocumentor/ReflectionDocBlock)
-================================
-
-Introduction
-------------
-
-The ReflectionDocBlock component of phpDocumentor provides a DocBlock parser
-that is 100% compatible with the [PHPDoc standard](http://phpdoc.org/docs/latest).
-
-With this component, a library can provide support for annotations via DocBlocks
-or otherwise retrieve information that is embedded in a DocBlock.
-
-> **Note**: *this is a core component of phpDocumentor and is constantly being
-> optimized for performance.*
-
-Installation
-------------
-
-You can install the component in the following ways:
-
-* Use the official Github repository (https://github.com/phpDocumentor/ReflectionDocBlock)
-* Via Composer (http://packagist.org/packages/phpdocumentor/reflection-docblock)
-
-Usage
------
-
-The ReflectionDocBlock component is designed to work in an identical fashion to
-PHP's own Reflection extension (http://php.net/manual/en/book.reflection.php).
-
-Parsing can be initiated by instantiating the
-`\phpDocumentor\Reflection\DocBlock()` class and passing it a string containing
-a DocBlock (including asterisks) or by passing an object supporting the
-`getDocComment()` method.
-
-> *Examples of objects having the `getDocComment()` method are the
-> `ReflectionClass` and the `ReflectionMethod` classes of the PHP
-> Reflection extension*
-
-Example:
-
-    $class = new ReflectionClass('MyClass');
-    $phpdoc = new \phpDocumentor\Reflection\DocBlock($class);
-
-or
-
-    $docblock = <<<DOCBLOCK
-    /**
-     * This is a short description.
-     *
-     * This is a *long* description.
-     *
-     * @return void
-     */
-    DOCBLOCK;
-
-    $phpdoc = new \phpDocumentor\Reflection\DocBlock($docblock);
-
diff --git a/core/vendor/phpdocumentor/reflection-docblock/composer.json b/core/vendor/phpdocumentor/reflection-docblock/composer.json
deleted file mode 100644
index 4dffa22..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "name":    "phpdocumentor/reflection-docblock",
-    "type":    "library",
-    "license": "MIT",
-    "authors": [
-        {"name": "Mike van Riel", "email": "mike.vanriel@naenius.com"}
-    ],
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "autoload": {
-        "psr-0": {"phpDocumentor": ["src/"]}
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.0"
-    },
-    "suggest": {
-        "dflydev/markdown": "~1.0",
-        "erusev/parsedown": "~1.0"
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.0.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/composer.lock b/core/vendor/phpdocumentor/reflection-docblock/composer.lock
deleted file mode 100644
index 4c6a8bb..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/composer.lock
+++ /dev/null
@@ -1,827 +0,0 @@
-{
-    "_readme": [
-        "This file locks the dependencies of your project to a known state",
-        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
-        "This file is @generated automatically"
-    ],
-    "hash": "ea1734d11b8c878445c2c6e58de8b85f",
-    "packages": [],
-    "packages-dev": [
-        {
-            "name": "ocramius/instantiator",
-            "version": "1.1.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Ocramius/Instantiator.git",
-                "reference": "a7abbb5fc9df6e7126af741dd6c140d1a7369435"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Ocramius/Instantiator/zipball/a7abbb5fc9df6e7126af741dd6c140d1a7369435",
-                "reference": "a7abbb5fc9df6e7126af741dd6c140d1a7369435",
-                "shasum": ""
-            },
-            "require": {
-                "ocramius/lazy-map": "1.0.*",
-                "php": "~5.3"
-            },
-            "require-dev": {
-                "athletic/athletic": "~0.1.8",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "phpunit/phpunit": "~4.0",
-                "squizlabs/php_codesniffer": "2.0.*@ALPHA"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Instantiator\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "http://ocramius.github.com/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://github.com/Ocramius/Instantiator",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "time": "2014-08-14 15:10:55"
-        },
-        {
-            "name": "ocramius/lazy-map",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Ocramius/LazyMap.git",
-                "reference": "7fe3d347f5e618bcea7d39345ff83f3651d8b752"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Ocramius/LazyMap/zipball/7fe3d347f5e618bcea7d39345ff83f3651d8b752",
-                "reference": "7fe3d347f5e618bcea7d39345ff83f3651d8b752",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "athletic/athletic": "~0.1.6",
-                "phpmd/phpmd": "1.5.*",
-                "phpunit/phpunit": ">=3.7",
-                "satooshi/php-coveralls": "~0.6",
-                "squizlabs/php_codesniffer": "1.4.*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "LazyMap\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "http://ocramius.github.com/",
-                    "role": "Developer"
-                }
-            ],
-            "description": "A library that provides lazy instantiation logic for a map of objects",
-            "homepage": "https://github.com/Ocramius/LazyMap",
-            "keywords": [
-                "lazy",
-                "lazy instantiation",
-                "lazy loading",
-                "map",
-                "service location"
-            ],
-            "time": "2013-11-09 22:30:54"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "2.0.10",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "6d196af48e8c100a3ae881940123e693da5a9217"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6d196af48e8c100a3ae881940123e693da5a9217",
-                "reference": "6d196af48e8c100a3ae881940123e693da5a9217",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "phpunit/php-file-iterator": "~1.3.1",
-                "phpunit/php-text-template": "~1.2.0",
-                "phpunit/php-token-stream": "~1.2.2",
-                "sebastian/environment": "~1.0.0",
-                "sebastian/version": "~1.0.3"
-            },
-            "require-dev": {
-                "ext-xdebug": ">=2.1.4",
-                "phpunit/phpunit": "~4.0.14"
-            },
-            "suggest": {
-                "ext-dom": "*",
-                "ext-xdebug": ">=2.2.1",
-                "ext-xmlwriter": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "time": "2014-08-06 06:39:42"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "1.3.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
-                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "File/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "time": "2013-10-10 15:34:57"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
-                "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "Text/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "time": "2014-01-30 17:20:04"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "1.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
-                "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "PHP/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "time": "2013-08-02 07:42:54"
-        },
-        {
-            "name": "phpunit/php-token-stream",
-            "version": "1.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ad4e1e23ae01b483c16f600ff1bebec184588e32",
-                "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.2-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "PHP/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Wrapper around PHP's tokenizer extension.",
-            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-            "keywords": [
-                "tokenizer"
-            ],
-            "time": "2014-03-03 05:10:30"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "4.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "a33fa68ece9f8c68589bfc2da8d2794e27b820bc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a33fa68ece9f8c68589bfc2da8d2794e27b820bc",
-                "reference": "a33fa68ece9f8c68589bfc2da8d2794e27b820bc",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-pcre": "*",
-                "ext-reflection": "*",
-                "ext-spl": "*",
-                "php": ">=5.3.3",
-                "phpunit/php-code-coverage": "~2.0",
-                "phpunit/php-file-iterator": "~1.3.1",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-timer": "~1.0.2",
-                "phpunit/phpunit-mock-objects": "~2.2",
-                "sebastian/comparator": "~1.0",
-                "sebastian/diff": "~1.1",
-                "sebastian/environment": "~1.0",
-                "sebastian/exporter": "~1.0",
-                "sebastian/version": "~1.0",
-                "symfony/yaml": "~2.0"
-            },
-            "suggest": {
-                "phpunit/php-invoker": "~1.1"
-            },
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                "",
-                "../../symfony/yaml/"
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "http://www.phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "time": "2014-08-18 05:12:30"
-        },
-        {
-            "name": "phpunit/phpunit-mock-objects",
-            "version": "2.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "42e589e08bc86e3e9bdf20d385e948347788505b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/42e589e08bc86e3e9bdf20d385e948347788505b",
-                "reference": "42e589e08bc86e3e9bdf20d385e948347788505b",
-                "shasum": ""
-            },
-            "require": {
-                "ocramius/instantiator": "~1.0",
-                "php": ">=5.3.3",
-                "phpunit/php-text-template": "~1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "4.2.*@dev"
-            },
-            "suggest": {
-                "ext-soap": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Mock Object library for PHPUnit",
-            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-            "keywords": [
-                "mock",
-                "xunit"
-            ],
-            "time": "2014-08-02 13:50:58"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2",
-                "reference": "f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/diff": "~1.1",
-                "sebastian/exporter": "~1.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.1"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "http://www.github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "time": "2014-05-02 07:05:58"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "1.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d",
-                "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                },
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "http://www.github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff"
-            ],
-            "time": "2013-08-03 16:46:33"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "79517609ec01139cd7e9fded0dd7ce08c952ef6a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/79517609ec01139cd7e9fded0dd7ce08c952ef6a",
-                "reference": "79517609ec01139cd7e9fded0dd7ce08c952ef6a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "4.0.*@dev"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "http://www.github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "time": "2014-02-18 16:17:19"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "1.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529",
-                "reference": "1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "4.0.*@dev"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net",
-                    "role": "Lead"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "http://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "time": "2014-02-16 08:26:31"
-        },
-        {
-            "name": "sebastian/version",
-            "version": "1.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
-                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
-                "shasum": ""
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
-            "time": "2014-03-07 15:35:33"
-        },
-        {
-            "name": "symfony/yaml",
-            "version": "v2.5.3",
-            "target-dir": "Symfony/Component/Yaml",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Yaml.git",
-                "reference": "5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f",
-                "reference": "5a75366ae9ca8b4792cd0083e4ca4dff9fe96f1f",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.5-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\Yaml\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                },
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                }
-            ],
-            "description": "Symfony Yaml Component",
-            "homepage": "http://symfony.com",
-            "time": "2014-08-05 09:00:40"
-        }
-    ],
-    "aliases": [],
-    "minimum-stability": "stable",
-    "stability-flags": [],
-    "prefer-stable": false,
-    "platform": {
-        "php": ">=5.3.3"
-    },
-    "platform-dev": []
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist b/core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist
deleted file mode 100644
index f67ad2a..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/phpunit.xml.dist
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<phpunit colors="true" strict="true" bootstrap="vendor/autoload.php">
-  <testsuites>
-    <testsuite name="phpDocumentor\Reflection\DocBlock">
-      <directory>./tests/</directory>
-    </testsuite>
-  </testsuites>
-  <filter>
-    <whitelist>
-        <directory suffix=".php">./src/</directory>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php
deleted file mode 100644
index 02968b1..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock.php
+++ /dev/null
@@ -1,468 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-use phpDocumentor\Reflection\DocBlock\Context;
-use phpDocumentor\Reflection\DocBlock\Location;
-
-/**
- * Parses the DocBlock for any structure.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class DocBlock implements \Reflector
-{
-    /** @var string The opening line for this docblock. */
-    protected $short_description = '';
-
-    /**
-     * @var DocBlock\Description The actual
-     *     description for this docblock.
-     */
-    protected $long_description = null;
-
-    /**
-     * @var Tag[] An array containing all
-     *     the tags in this docblock; except inline.
-     */
-    protected $tags = array();
-
-    /** @var Context Information about the context of this DocBlock. */
-    protected $context = null;
-
-    /** @var Location Information about the location of this DocBlock. */
-    protected $location = null;
-
-    /** @var bool Is this DocBlock (the start of) a template? */
-    protected $isTemplateStart = false;
-
-    /** @var bool Does this DocBlock signify the end of a DocBlock template? */
-    protected $isTemplateEnd = false;
-
-    /**
-     * Parses the given docblock and populates the member fields.
-     *
-     * The constructor may also receive namespace information such as the
-     * current namespace and aliases. This information is used by some tags
-     * (e.g. @return, @param, etc.) to turn a relative Type into a FQCN.
-     *
-     * @param \Reflector|string $docblock A docblock comment (including
-     *     asterisks) or reflector supporting the getDocComment method.
-     * @param Context           $context  The context in which the DocBlock
-     *     occurs.
-     * @param Location          $location The location within the file that this
-     *     DocBlock occurs in.
-     *
-     * @throws \InvalidArgumentException if the given argument does not have the
-     *     getDocComment method.
-     */
-    public function __construct(
-        $docblock,
-        Context $context = null,
-        Location $location = null
-    ) {
-        if (is_object($docblock)) {
-            if (!method_exists($docblock, 'getDocComment')) {
-                throw new \InvalidArgumentException(
-                    'Invalid object passed; the given reflector must support '
-                    . 'the getDocComment method'
-                );
-            }
-
-            $docblock = $docblock->getDocComment();
-        }
-
-        $docblock = $this->cleanInput($docblock);
-
-        list($templateMarker, $short, $long, $tags) = $this->splitDocBlock($docblock);
-        $this->isTemplateStart = $templateMarker === '#@+';
-        $this->isTemplateEnd = $templateMarker === '#@-';
-        $this->short_description = $short;
-        $this->long_description = new DocBlock\Description($long, $this);
-        $this->parseTags($tags);
-
-        $this->context  = $context;
-        $this->location = $location;
-    }
-
-    /**
-     * Strips the asterisks from the DocBlock comment.
-     *
-     * @param string $comment String containing the comment text.
-     *
-     * @return string
-     */
-    protected function cleanInput($comment)
-    {
-        $comment = trim(
-            preg_replace(
-                '#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u',
-                '$1',
-                $comment
-            )
-        );
-
-        // reg ex above is not able to remove */ from a single line docblock
-        if (substr($comment, -2) == '*/') {
-            $comment = trim(substr($comment, 0, -2));
-        }
-
-        // normalize strings
-        $comment = str_replace(array("\r\n", "\r"), "\n", $comment);
-
-        return $comment;
-    }
-
-    /**
-     * Splits the DocBlock into a template marker, summary, description and block of tags.
-     *
-     * @param string $comment Comment to split into the sub-parts.
-     *
-     * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split.
-     * @author Mike van Riel <me@mikevanriel.com> for extending the regex with template marker support.
-     *
-     * @return string[] containing the template marker (if any), summary, description and a string containing the tags.
-     */
-    protected function splitDocBlock($comment)
-    {
-        // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This
-        // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the
-        // performance impact of running a regular expression
-        if (strpos($comment, '@') === 0) {
-            return array('', '', '', $comment);
-        }
-
-        // clears all extra horizontal whitespace from the line endings to prevent parsing issues
-        $comment = preg_replace('/\h*$/Sum', '', $comment);
-
-        /*
-         * Splits the docblock into a template marker, short description, long description and tags section
-         *
-         * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may
-         *   occur after it and will be stripped).
-         * - The short description is started from the first character until a dot is encountered followed by a
-         *   newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing
-         *   errors). This is optional.
-         * - The long description, any character until a new line is encountered followed by an @ and word
-         *   characters (a tag). This is optional.
-         * - Tags; the remaining characters
-         *
-         * Big thanks to RichardJ for contributing this Regular Expression
-         */
-        preg_match(
-            '/
-            \A
-            # 1. Extract the template marker
-            (?:(\#\@\+|\#\@\-)\n?)?
-
-            # 2. Extract the summary
-            (?:
-              (?! @\pL ) # The summary may not start with an @
-              (
-                [^\n.]+
-                (?:
-                  (?! \. \n | \n{2} )     # End summary upon a dot followed by newline or two newlines
-                  [\n.] (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line
-                  [^\n.]+                 # Include anything else
-                )*
-                \.?
-              )?
-            )
-
-            # 3. Extract the description
-            (?:
-              \s*        # Some form of whitespace _must_ precede a description because a summary must be there
-              (?! @\pL ) # The description may not start with an @
-              (
-                [^\n]+
-                (?: \n+
-                  (?! [ \t]* @\pL ) # End description when an @ is found as first character on a new line
-                  [^\n]+            # Include anything else
-                )*
-              )
-            )?
-
-            # 4. Extract the tags (anything that follows)
-            (\s+ [\s\S]*)? # everything that follows
-            /ux',
-            $comment,
-            $matches
-        );
-        array_shift($matches);
-
-        while (count($matches) < 4) {
-            $matches[] = '';
-        }
-
-        return $matches;
-    }
-
-    /**
-     * Creates the tag objects.
-     *
-     * @param string $tags Tag block to parse.
-     *
-     * @return void
-     */
-    protected function parseTags($tags)
-    {
-        $result = array();
-        $tags = trim($tags);
-        if ('' !== $tags) {
-            if ('@' !== $tags[0]) {
-                throw new \LogicException(
-                    'A tag block started with text instead of an actual tag,'
-                    . ' this makes the tag block invalid: ' . $tags
-                );
-            }
-            foreach (explode("\n", $tags) as $tag_line) {
-                if (isset($tag_line[0]) && ($tag_line[0] === '@')) {
-                    $result[] = $tag_line;
-                } else {
-                    $result[count($result) - 1] .= "\n" . $tag_line;
-                }
-            }
-
-            // create proper Tag objects
-            foreach ($result as $key => $tag_line) {
-                $result[$key] = Tag::createInstance(trim($tag_line), $this);
-            }
-        }
-
-        $this->tags = $result;
-    }
-
-    /**
-     * Gets the text portion of the doc block.
-     * 
-     * Gets the text portion (short and long description combined) of the doc
-     * block.
-     * 
-     * @return string The text portion of the doc block.
-     */
-    public function getText()
-    {
-        $short = $this->getShortDescription();
-        $long = $this->getLongDescription()->getContents();
-
-        if ($long) {
-            return "{$short}\n\n{$long}";
-        } else {
-            return $short;
-        }
-    }
-
-    /**
-     * Set the text portion of the doc block.
-     * 
-     * Sets the text portion (short and long description combined) of the doc
-     * block.
-     *
-     * @param string $docblock The new text portion of the doc block.
-     * 
-     * @return $this This doc block.
-     */
-    public function setText($comment)
-    {
-        list(,$short, $long) = $this->splitDocBlock($comment);
-        $this->short_description = $short;
-        $this->long_description = new DocBlock\Description($long, $this);
-        return $this;
-    }
-    /**
-     * Returns the opening line or also known as short description.
-     *
-     * @return string
-     */
-    public function getShortDescription()
-    {
-        return $this->short_description;
-    }
-
-    /**
-     * Returns the full description or also known as long description.
-     *
-     * @return DocBlock\Description
-     */
-    public function getLongDescription()
-    {
-        return $this->long_description;
-    }
-
-    /**
-     * Returns whether this DocBlock is the start of a Template section.
-     *
-     * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker
-     * (`#@+`) that is appended directly after the opening `/**` of a DocBlock.
-     *
-     * An example of such an opening is:
-     *
-     * ```
-     * /**#@+
-     *  * My DocBlock
-     *  * /
-     * ```
-     *
-     * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all
-     * elements that follow until another DocBlock is found that contains the closing marker (`#@-`).
-     *
-     * @see self::isTemplateEnd() for the check whether a closing marker was provided.
-     *
-     * @return boolean
-     */
-    public function isTemplateStart()
-    {
-        return $this->isTemplateStart;
-    }
-
-    /**
-     * Returns whether this DocBlock is the end of a Template section.
-     *
-     * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality.
-     *
-     * @return boolean
-     */
-    public function isTemplateEnd()
-    {
-        return $this->isTemplateEnd;
-    }
-
-    /**
-     * Returns the current context.
-     *
-     * @return Context
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * Returns the current location.
-     *
-     * @return Location
-     */
-    public function getLocation()
-    {
-        return $this->location;
-    }
-
-    /**
-     * Returns the tags for this DocBlock.
-     *
-     * @return Tag[]
-     */
-    public function getTags()
-    {
-        return $this->tags;
-    }
-
-    /**
-     * Returns an array of tags matching the given name. If no tags are found
-     * an empty array is returned.
-     *
-     * @param string $name String to search by.
-     *
-     * @return Tag[]
-     */
-    public function getTagsByName($name)
-    {
-        $result = array();
-
-        /** @var Tag $tag */
-        foreach ($this->getTags() as $tag) {
-            if ($tag->getName() != $name) {
-                continue;
-            }
-
-            $result[] = $tag;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Checks if a tag of a certain type is present in this DocBlock.
-     *
-     * @param string $name Tag name to check for.
-     *
-     * @return bool
-     */
-    public function hasTag($name)
-    {
-        /** @var Tag $tag */
-        foreach ($this->getTags() as $tag) {
-            if ($tag->getName() == $name) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Appends a tag at the end of the list of tags.
-     *
-     * @param Tag $tag The tag to add.
-     *
-     * @return Tag The newly added tag.
-     *
-     * @throws \LogicException When the tag belongs to a different DocBlock.
-     */
-    public function appendTag(Tag $tag)
-    {
-        if (null === $tag->getDocBlock()) {
-            $tag->setDocBlock($this);
-        }
-
-        if ($tag->getDocBlock() === $this) {
-            $this->tags[] = $tag;
-        } else {
-            throw new \LogicException(
-                'This tag belongs to a different DocBlock object.'
-            );
-        }
-
-        return $tag;
-    }
-
-
-    /**
-     * Builds a string representation of this object.
-     *
-     * @todo determine the exact format as used by PHP Reflection and
-     *     implement it.
-     *
-     * @return string
-     * @codeCoverageIgnore Not yet implemented
-     */
-    public static function export()
-    {
-        throw new \Exception('Not yet implemented');
-    }
-
-    /**
-     * Returns the exported information (we should use the export static method
-     * BUT this throws an exception at this point).
-     *
-     * @return string
-     * @codeCoverageIgnore Not yet implemented
-     */
-    public function __toString()
-    {
-        return 'Not yet implemented';
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php
deleted file mode 100644
index 81aa83c..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Context.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-/**
- * The context in which a DocBlock occurs.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class Context
-{
-    /** @var string The current namespace. */
-    protected $namespace = '';
-
-    /** @var array List of namespace aliases => Fully Qualified Namespace. */
-    protected $namespace_aliases = array();
-    
-    /** @var string Name of the structural element, within the namespace. */
-    protected $lsen = '';
-    
-    /**
-     * Cteates a new context.
-     * @param string $namespace         The namespace where this DocBlock
-     *     resides in.
-     * @param array  $namespace_aliases List of namespace aliases => Fully
-     *     Qualified Namespace.
-     * @param string $lsen              Name of the structural element, within
-     *     the namespace.
-     */
-    public function __construct(
-        $namespace = '',
-        array $namespace_aliases = array(),
-        $lsen = ''
-    ) {
-        if (!empty($namespace)) {
-            $this->setNamespace($namespace);
-        }
-        $this->setNamespaceAliases($namespace_aliases);
-        $this->setLSEN($lsen);
-    }
-
-    /**
-     * @return string The namespace where this DocBlock resides in.
-     */
-    public function getNamespace()
-    {
-        return $this->namespace;
-    }
-
-    /**
-     * @return array List of namespace aliases => Fully Qualified Namespace.
-     */
-    public function getNamespaceAliases()
-    {
-        return $this->namespace_aliases;
-    }
-    
-    /**
-     * Returns the Local Structural Element Name.
-     * 
-     * @return string Name of the structural element, within the namespace.
-     */
-    public function getLSEN()
-    {
-        return $this->lsen;
-    }
-    
-    /**
-     * Sets a new namespace.
-     * 
-     * Sets a new namespace for the context. Leading and trailing slashes are
-     * trimmed, and the keywords "global" and "default" are treated as aliases
-     * to no namespace.
-     * 
-     * @param string $namespace The new namespace to set.
-     * 
-     * @return $this
-     */
-    public function setNamespace($namespace)
-    {
-        if ('global' !== $namespace
-            && 'default' !== $namespace
-        ) {
-            // Srip leading and trailing slash
-            $this->namespace = trim((string)$namespace, '\\');
-        } else {
-            $this->namespace = '';
-        }
-        return $this;
-    }
-    
-    /**
-     * Sets the namespace aliases, replacing all previous ones.
-     * 
-     * @param array $namespace_aliases List of namespace aliases => Fully
-     *     Qualified Namespace.
-     * 
-     * @return $this
-     */
-    public function setNamespaceAliases(array $namespace_aliases)
-    {
-        $this->namespace_aliases = array();
-        foreach ($namespace_aliases as $alias => $fqnn) {
-            $this->setNamespaceAlias($alias, $fqnn);
-        }
-        return $this;
-    }
-    
-    /**
-     * Adds a namespace alias to the context.
-     * 
-     * @param string $alias The alias name (the part after "as", or the last
-     *     part of the Fully Qualified Namespace Name) to add.
-     * @param string $fqnn  The Fully Qualified Namespace Name for this alias.
-     *     Any form of leading/trailing slashes are accepted, but what will be
-     *     stored is a name, prefixed with a slash, and no trailing slash.
-     * 
-     * @return $this
-     */
-    public function setNamespaceAlias($alias, $fqnn)
-    {
-        $this->namespace_aliases[$alias] = '\\' . trim((string)$fqnn, '\\');
-        return $this;
-    }
-    
-    /**
-     * Sets a new Local Structural Element Name.
-     * 
-     * Sets a new Local Structural Element Name. A local name also contains
-     * punctuation determining the kind of structural element (e.g. trailing "("
-     * and ")" for functions and methods).
-     * 
-     * @param string $lsen The new local name of a structural element.
-     * 
-     * @return $this
-     */
-    public function setLSEN($lsen)
-    {
-        $this->lsen = (string)$lsen;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php
deleted file mode 100644
index d41142e..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Description.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-use phpDocumentor\Reflection\DocBlock;
-
-/**
- * Parses a Description of a DocBlock or tag.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class Description implements \Reflector
-{
-    /** @var string */
-    protected $contents = '';
-
-    /** @var array The contents, as an array of strings and Tag objects. */
-    protected $parsedContents = null;
-
-    /** @var DocBlock The DocBlock which this description belongs to. */
-    protected $docblock = null;
-
-    /**
-     * Populates the fields of a description.
-     *
-     * @param string   $content  The description's conetnts.
-     * @param DocBlock $docblock The DocBlock which this description belongs to.
-     */
-    public function __construct($content, DocBlock $docblock = null)
-    {
-        $this->setContent($content)->setDocBlock($docblock);
-    }
-
-    /**
-     * Gets the text of this description.
-     *
-     * @return string
-     */
-    public function getContents()
-    {
-        return $this->contents;
-    }
-
-    /**
-     * Sets the text of this description.
-     *
-     * @param string $content The new text of this description.
-     *
-     * @return $this
-     */
-    public function setContent($content)
-    {
-        $this->contents = trim($content);
-
-        $this->parsedContents = null;
-        return $this;
-    }
-
-    /**
-     * Returns the parsed text of this description.
-     *
-     * @return array An array of strings and tag objects, in the order they
-     *     occur within the description.
-     */
-    public function getParsedContents()
-    {
-        if (null === $this->parsedContents) {
-            $this->parsedContents = preg_split(
-                '/\{
-                    # "{@}" is not a valid inline tag. This ensures that
-                    # we do not treat it as one, but treat it literally.
-                    (?!@\})
-                    # We want to capture the whole tag line, but without the
-                    # inline tag delimiters.
-                    (\@
-                        # Match everything up to the next delimiter.
-                        [^{}]*
-                        # Nested inline tag content should not be captured, or
-                        # it will appear in the result separately.
-                        (?:
-                            # Match nested inline tags.
-                            (?:
-                                # Because we did not catch the tag delimiters
-                                # earlier, we must be explicit with them here.
-                                # Notice that this also matches "{}", as a way
-                                # to later introduce it as an escape sequence.
-                                \{(?1)?\}
-                                |
-                                # Make sure we match hanging "{".
-                                \{
-                            )
-                            # Match content after the nested inline tag.
-                            [^{}]*
-                        )* # If there are more inline tags, match them as well.
-                           # We use "*" since there may not be any nested inline
-                           # tags.
-                    )
-                \}/Sux',
-                $this->contents,
-                null,
-                PREG_SPLIT_DELIM_CAPTURE
-            );
-
-            $count = count($this->parsedContents);
-            for ($i=1; $i<$count; $i += 2) {
-                $this->parsedContents[$i] = Tag::createInstance(
-                    $this->parsedContents[$i],
-                    $this->docblock
-                );
-            }
-
-            //In order to allow "literal" inline tags, the otherwise invalid
-            //sequence "{@}" is changed to "@", and "{}" is changed to "}".
-            //See unit tests for examples.
-            for ($i=0; $i<$count; $i += 2) {
-                $this->parsedContents[$i] = str_replace(
-                    array('{@}', '{}'),
-                    array('@', '}'),
-                    $this->parsedContents[$i]
-                );
-            }
-        }
-        return $this->parsedContents;
-    }
-
-    /**
-     * Return a formatted variant of the Long Description using MarkDown.
-     *
-     * @todo this should become a more intelligent piece of code where the
-     *     configuration contains a setting what format long descriptions are.
-     *
-     * @codeCoverageIgnore Will be removed soon, in favor of adapters at
-     *     PhpDocumentor itself that will process text in various formats.
-     *
-     * @return string
-     */
-    public function getFormattedContents()
-    {
-        $result = $this->contents;
-
-        // if the long description contains a plain HTML <code> element, surround
-        // it with a pre element. Please note that we explicitly used str_replace
-        // and not preg_replace to gain performance
-        if (strpos($result, '<code>') !== false) {
-            $result = str_replace(
-                array('<code>', "<code>\r\n", "<code>\n", "<code>\r", '</code>'),
-                array('<pre><code>', '<code>', '<code>', '<code>', '</code></pre>'),
-                $result
-            );
-        }
-
-        if (class_exists('Parsedown')) {
-            $markdown = \Parsedown::instance();
-            $result = $markdown->parse($result);
-        } elseif (class_exists('dflydev\markdown\MarkdownExtraParser')) {
-            $markdown = new \dflydev\markdown\MarkdownExtraParser();
-            $result = $markdown->transformMarkdown($result);
-        }
-
-        return trim($result);
-    }
-
-    /**
-     * Gets the docblock this tag belongs to.
-     *
-     * @return DocBlock The docblock this description belongs to.
-     */
-    public function getDocBlock()
-    {
-        return $this->docblock;
-    }
-
-    /**
-     * Sets the docblock this tag belongs to.
-     *
-     * @param DocBlock $docblock The new docblock this description belongs to.
-     *     Setting NULL removes any association.
-     *
-     * @return $this
-     */
-    public function setDocBlock(DocBlock $docblock = null)
-    {
-        $this->docblock = $docblock;
-
-        return $this;
-    }
-
-    /**
-     * Builds a string representation of this object.
-     *
-     * @todo determine the exact format as used by PHP Reflection
-     *     and implement it.
-     *
-     * @return void
-     * @codeCoverageIgnore Not yet implemented
-     */
-    public static function export()
-    {
-        throw new \Exception('Not yet implemented');
-    }
-
-    /**
-     * Returns the long description as a string.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->getContents();
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php
deleted file mode 100644
index 966ed44..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Location.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-/**
- * The location a DocBlock occurs within a file.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class Location
-{
-    /** @var int Line where the DocBlock text starts. */
-    protected $lineNumber = 0;
-
-    /** @var int Column where the DocBlock text starts. */
-    protected $columnNumber = 0;
-    
-    public function __construct(
-        $lineNumber = 0,
-        $columnNumber = 0
-    ) {
-        $this->setLineNumber($lineNumber)->setColumnNumber($columnNumber);
-    }
-
-    /**
-     * @return int Line where the DocBlock text starts.
-     */
-    public function getLineNumber()
-    {
-        return $this->lineNumber;
-    }
-
-    /**
-     * 
-     * @param type $lineNumber
-     * @return $this
-     */
-    public function setLineNumber($lineNumber)
-    {
-        $this->lineNumber = (int)$lineNumber;
-
-        return $this;
-    }
-
-    /**
-     * @return int Column where the DocBlock text starts.
-     */
-    public function getColumnNumber()
-    {
-        return $this->columnNumber;
-    }
-
-    /**
-     * 
-     * @param int $columnNumber
-     * @return $this
-     */
-    public function setColumnNumber($columnNumber)
-    {
-        $this->columnNumber = (int)$columnNumber;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php
deleted file mode 100644
index c161785..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Serializer.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Barry vd. Heuvel <barryvdh@gmail.com>
- * @copyright 2013 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-use phpDocumentor\Reflection\DocBlock;
-
-/**
- * Serializes a DocBlock instance.
- *
- * @author  Barry vd. Heuvel <barryvdh@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class Serializer
-{
-
-    /** @var string The string to indent the comment with. */
-    protected $indentString = ' ';
-
-    /** @var int The number of times the indent string is repeated. */
-    protected $indent = 0;
-
-    /** @var bool Whether to indent the first line. */
-    protected $isFirstLineIndented = true;
-
-    /** @var int|null The max length of a line. */
-    protected $lineLength = null;
-
-    /**
-     * Create a Serializer instance.
-     *
-     * @param int      $indent          The number of times the indent string is
-     *     repeated.
-     * @param string   $indentString    The string to indent the comment with.
-     * @param bool     $indentFirstLine Whether to indent the first line.
-     * @param int|null $lineLength      The max length of a line or NULL to
-     *     disable line wrapping.
-     */
-    public function __construct(
-        $indent = 0,
-        $indentString = ' ',
-        $indentFirstLine = true,
-        $lineLength = null
-    ) {
-        $this->setIndentationString($indentString);
-        $this->setIndent($indent);
-        $this->setIsFirstLineIndented($indentFirstLine);
-        $this->setLineLength($lineLength);
-    }
-
-    /**
-     * Sets the string to indent comments with.
-     * 
-     * @param string $indentationString The string to indent comments with.
-     * 
-     * @return $this This serializer object.
-     */
-    public function setIndentationString($indentString)
-    {
-        $this->indentString = (string)$indentString;
-        return $this;
-    }
-
-    /**
-     * Gets the string to indent comments with.
-     * 
-     * @return string The indent string.
-     */
-    public function getIndentationString()
-    {
-        return $this->indentString;
-    }
-
-    /**
-     * Sets the number of indents.
-     * 
-     * @param int $indent The number of times the indent string is repeated.
-     * 
-     * @return $this This serializer object.
-     */
-    public function setIndent($indent)
-    {
-        $this->indent = (int)$indent;
-        return $this;
-    }
-
-    /**
-     * Gets the number of indents.
-     * 
-     * @return int The number of times the indent string is repeated.
-     */
-    public function getIndent()
-    {
-        return $this->indent;
-    }
-
-    /**
-     * Sets whether or not the first line should be indented.
-     * 
-     * Sets whether or not the first line (the one with the "/**") should be
-     * indented.
-     * 
-     * @param bool $indentFirstLine The new value for this setting.
-     * 
-     * @return $this This serializer object.
-     */
-    public function setIsFirstLineIndented($indentFirstLine)
-    {
-        $this->isFirstLineIndented = (bool)$indentFirstLine;
-        return $this;
-    }
-
-    /**
-     * Gets whether or not the first line should be indented.
-     * 
-     * @return bool Whether or not the first line should be indented.
-     */
-    public function isFirstLineIndented()
-    {
-        return $this->isFirstLineIndented;
-    }
-
-    /**
-     * Sets the line length.
-     * 
-     * Sets the length of each line in the serialization. Content will be
-     * wrapped within this limit.
-     * 
-     * @param int|null $lineLength The length of each line. NULL to disable line
-     *     wrapping altogether.
-     * 
-     * @return $this This serializer object.
-     */
-    public function setLineLength($lineLength)
-    {
-        $this->lineLength = null === $lineLength ? null : (int)$lineLength;
-        return $this;
-    }
-
-    /**
-     * Gets the line length.
-     * 
-     * @return int|null The length of each line or NULL if line wrapping is
-     *     disabled.
-     */
-    public function getLineLength()
-    {
-        return $this->lineLength;
-    }
-
-    /**
-     * Generate a DocBlock comment.
-     *
-     * @param DocBlock The DocBlock to serialize.
-     * 
-     * @return string The serialized doc block.
-     */
-    public function getDocComment(DocBlock $docblock)
-    {
-        $indent = str_repeat($this->indentString, $this->indent);
-        $firstIndent = $this->isFirstLineIndented ? $indent : '';
-
-        $text = $docblock->getText();
-        if ($this->lineLength) {
-            //3 === strlen(' * ')
-            $wrapLength = $this->lineLength - strlen($indent) - 3;
-            $text = wordwrap($text, $wrapLength);
-        }
-        $text = str_replace("\n", "\n{$indent} * ", $text);
-
-        $comment = "{$firstIndent}/**\n{$indent} * {$text}\n{$indent} *\n";
-
-        /** @var Tag $tag */
-        foreach ($docblock->getTags() as $tag) {
-            $tagText = (string) $tag;
-            if ($this->lineLength) {
-                $tagText = wordwrap($tagText, $wrapLength);
-            }
-            $tagText = str_replace("\n", "\n{$indent} * ", $tagText);
-
-            $comment .= "{$indent} * {$tagText}\n";
-        }
-
-        $comment .= $indent . ' */';
-
-        return $comment;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php
deleted file mode 100644
index a96db09..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag.php
+++ /dev/null
@@ -1,377 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-use phpDocumentor\Reflection\DocBlock;
-
-/**
- * Parses a tag definition for a DocBlock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class Tag implements \Reflector
-{
-    /**
-     * PCRE regular expression matching a tag name.
-     */
-    const REGEX_TAGNAME = '[\w\-\_\\\\]+';
-
-    /** @var string Name of the tag */
-    protected $tag = '';
-
-    /**
-     * @var string|null Content of the tag.
-     *     When set to NULL, it means it needs to be regenerated.
-     */
-    protected $content = '';
-
-    /** @var string Description of the content of this tag */
-    protected $description = '';
-
-    /**
-     * @var array|null The description, as an array of strings and Tag objects.
-     *     When set to NULL, it means it needs to be regenerated.
-     */
-    protected $parsedDescription = null;
-
-    /** @var Location Location of the tag. */
-    protected $location = null;
-
-    /** @var DocBlock The DocBlock which this tag belongs to. */
-    protected $docblock = null;
-    
-    /**
-     * @var array An array with a tag as a key, and an FQCN to a class that
-     *     handles it as an array value. The class is expected to inherit this
-     *     class.
-     */
-    private static $tagHandlerMappings = array(
-        'author'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\AuthorTag',
-        'covers'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\CoversTag',
-        'deprecated'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\DeprecatedTag',
-        'example'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\ExampleTag',
-        'link'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\LinkTag',
-        'method'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\MethodTag',
-        'param'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\ParamTag',
-        'property-read'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\PropertyReadTag',
-        'property'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\PropertyTag',
-        'property-write'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\PropertyWriteTag',
-        'return'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\ReturnTag',
-        'see'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\SeeTag',
-        'since'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\SinceTag',
-        'source'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\SourceTag',
-        'throw'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag',
-        'throws'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag',
-        'uses'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\UsesTag',
-        'var'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\VarTag',
-        'version'
-            => '\phpDocumentor\Reflection\DocBlock\Tag\VersionTag'
-    );
-
-    /**
-     * Factory method responsible for instantiating the correct sub type.
-     *
-     * @param string   $tag_line The text for this tag, including description.
-     * @param DocBlock $docblock The DocBlock which this tag belongs to.
-     * @param Location $location Location of the tag.
-     *
-     * @throws \InvalidArgumentException if an invalid tag line was presented.
-     *
-     * @return static A new tag object.
-     */
-    final public static function createInstance(
-        $tag_line,
-        DocBlock $docblock = null,
-        Location $location = null
-    ) {
-        if (!preg_match(
-            '/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)?/us',
-            $tag_line,
-            $matches
-        )) {
-            throw new \InvalidArgumentException(
-                'Invalid tag_line detected: ' . $tag_line
-            );
-        }
-
-        $handler = __CLASS__;
-        if (isset(self::$tagHandlerMappings[$matches[1]])) {
-            $handler = self::$tagHandlerMappings[$matches[1]];
-        } elseif (isset($docblock)) {
-            $tagName = (string)new Type\Collection(
-                array($matches[1]),
-                $docblock->getContext()
-            );
-
-            if (isset(self::$tagHandlerMappings[$tagName])) {
-                $handler = self::$tagHandlerMappings[$tagName];
-            }
-        }
-
-        return new $handler(
-            $matches[1],
-            isset($matches[2]) ? $matches[2] : '',
-            $docblock,
-            $location
-        );
-    }
-
-    /**
-     * Registers a handler for tags.
-     * 
-     * Registers a handler for tags. The class specified is autoloaded if it's
-     * not available. It must inherit from this class.
-     * 
-     * @param string      $tag     Name of tag to regiser a handler for. When
-     *     registering a namespaced tag, the full name, along with a prefixing
-     *     slash MUST be provided.
-     * @param string|null $handler FQCN of handler. Specifing NULL removes the
-     *     handler for the specified tag, if any.
-     * 
-     * @return bool TRUE on success, FALSE on failure.
-     */
-    final public static function registerTagHandler($tag, $handler)
-    {
-        $tag = trim((string)$tag);
-
-        if (null === $handler) {
-            unset(self::$tagHandlerMappings[$tag]);
-            return true;
-        }
-
-        if ('' !== $tag
-            && class_exists($handler, true)
-            && is_subclass_of($handler, __CLASS__)
-            && !strpos($tag, '\\') //Accept no slash, and 1st slash at offset 0.
-        ) {
-            self::$tagHandlerMappings[$tag] = $handler;
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Parses a tag and populates the member variables.
-     *
-     * @param string   $name     Name of the tag.
-     * @param string   $content  The contents of the given tag.
-     * @param DocBlock $docblock The DocBlock which this tag belongs to.
-     * @param Location $location Location of the tag.
-     */
-    public function __construct(
-        $name,
-        $content,
-        DocBlock $docblock = null,
-        Location $location = null
-    ) {
-        $this
-            ->setName($name)
-            ->setContent($content)
-            ->setDocBlock($docblock)
-            ->setLocation($location);
-    }
-
-    /**
-     * Gets the name of this tag.
-     *
-     * @return string The name of this tag.
-     */
-    public function getName()
-    {
-        return $this->tag;
-    }
-
-    /**
-     * Sets the name of this tag.
-     * 
-     * @param string $name The new name of this tag.
-     * 
-     * @return $this
-     * @throws \InvalidArgumentException When an invalid tag name is provided.
-     */
-    public function setName($name)
-    {
-        if (!preg_match('/^' . self::REGEX_TAGNAME . '$/u', $name)) {
-            throw new \InvalidArgumentException(
-                'Invalid tag name supplied: ' . $name
-            );
-        }
-
-        $this->tag = $name;
-
-        return $this;
-    }
-
-    /**
-     * Gets the content of this tag.
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = $this->description;
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * Sets the content of this tag.
-     * 
-     * @param string $content The new content of this tag.
-     * 
-     * @return $this
-     */
-    public function setContent($content)
-    {
-        $this->setDescription($content);
-        $this->content = $content;
-
-        return $this;
-    }
-
-    /**
-     * Gets the description component of this tag.
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        return $this->description;
-    }
-
-    /**
-     * Sets the description component of this tag.
-     * 
-     * @param string $description The new description component of this tag.
-     * 
-     * @return $this
-     */
-    public function setDescription($description)
-    {
-        $this->content = null;
-        $this->parsedDescription = null;
-        $this->description = trim($description);
-
-        return $this;
-    }
-
-    /**
-     * Gets the parsed text of this description.
-     * 
-     * @return array An array of strings and tag objects, in the order they
-     *     occur within the description.
-     */
-    public function getParsedDescription()
-    {
-        if (null === $this->parsedDescription) {
-            $description = new Description($this->description, $this->docblock);
-            $this->parsedDescription = $description->getParsedContents();
-        }
-        return $this->parsedDescription;
-    }
-
-    /**
-     * Gets the docblock this tag belongs to.
-     * 
-     * @return DocBlock The docblock this tag belongs to.
-     */
-    public function getDocBlock()
-    {
-        return $this->docblock;
-    }
-
-    /**
-     * Sets the docblock this tag belongs to.
-     * 
-     * @param DocBlock $docblock The new docblock this tag belongs to. Setting
-     *     NULL removes any association.
-     * 
-     * @return $this
-     */
-    public function setDocBlock(DocBlock $docblock = null)
-    {
-        $this->docblock = $docblock;
-
-        return $this;
-    }
-
-    /**
-     * Gets the location of the tag.
-     *
-     * @return Location The tag's location.
-     */
-    public function getLocation()
-    {
-        return $this->location;
-    }
-    
-    /**
-     * Sets the location of the tag.
-     * 
-     * @param Location $location The new location of the tag.
-     * 
-     * @return $this
-     */
-    public function setLocation(Location $location = null)
-    {
-        $this->location = $location;
-
-        return $this;
-    }
-
-    /**
-     * Builds a string representation of this object.
-     *
-     * @todo determine the exact format as used by PHP Reflection and implement it.
-     *
-     * @return void
-     * @codeCoverageIgnore Not yet implemented
-     */
-    public static function export()
-    {
-        throw new \Exception('Not yet implemented');
-    }
-
-    /**
-     * Returns the tag as a serialized string
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return "@{$this->getName()} {$this->getContent()}";
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php
deleted file mode 100644
index bacf52e..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/AuthorTag.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for an @author tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class AuthorTag extends Tag
-{
-    /**
-     * PCRE regular expression matching any valid value for the name component.
-     */
-    const REGEX_AUTHOR_NAME = '[^\<]*';
-
-    /**
-     * PCRE regular expression matching any valid value for the email component.
-     */
-    const REGEX_AUTHOR_EMAIL = '[^\>]*';
-
-    /** @var string The name of the author */
-    protected $authorName = '';
-
-    /** @var string The email of the author */
-    protected $authorEmail = '';
-    
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = $this->authorName;
-            if ('' != $this->authorEmail) {
-                $this->content .= "<{$this->authorEmail}>";
-            }
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        parent::setContent($content);
-        if (preg_match(
-            '/^(' . self::REGEX_AUTHOR_NAME .
-            ')(\<(' . self::REGEX_AUTHOR_EMAIL .
-            ')\>)?$/u',
-            $this->description,
-            $matches
-        )) {
-            $this->authorName = trim($matches[1]);
-            if (isset($matches[3])) {
-                $this->authorEmail = trim($matches[3]);
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the author's name.
-     * 
-     * @return string The author's name.
-     */
-    public function getAuthorName()
-    {
-        return $this->authorName;
-    }
-    
-    /**
-     * Sets the author's name.
-     * 
-     * @param string $authorName The new author name.
-     *     An invalid value will set an empty string.
-     * 
-     * @return $this
-     */
-    public function setAuthorName($authorName)
-    {
-        $this->content = null;
-        $this->authorName
-            = preg_match('/^' . self::REGEX_AUTHOR_NAME . '$/u', $authorName)
-            ? $authorName : '';
-
-        return $this;
-    }
-
-    /**
-     * Gets the author's email.
-     * 
-     * @return string The author's email.
-     */
-    public function getAuthorEmail()
-    {
-        return $this->authorEmail;
-    }
-    
-    /**
-     * Sets the author's email.
-     * 
-     * @param string $authorEmail The new author email.
-     *     An invalid value will set an empty string.
-     * 
-     * @return $this
-     */
-    public function setAuthorEmail($authorEmail)
-    {
-        $this->authorEmail
-            = preg_match('/^' . self::REGEX_AUTHOR_EMAIL . '$/u', $authorEmail)
-            ? $authorEmail : '';
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php
deleted file mode 100644
index bd31b56..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/CoversTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @covers tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class CoversTag extends SeeTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php
deleted file mode 100644
index 7226316..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTag.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag\VersionTag;
-
-/**
- * Reflection class for a @deprecated tag in a Docblock.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class DeprecatedTag extends VersionTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php
deleted file mode 100644
index 0e163ea..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ExampleTag.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @example tag in a Docblock.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class ExampleTag extends SourceTag
-{
-    /** 
-     * @var string Path to a file to use as an example.
-     *     May also be an absolute URI.
-     */
-    protected $filePath = '';
-
-    /**
-     * @var bool Whether the file path component represents an URI.
-     *     This determines how the file portion appears at {@link getContent()}.
-     */
-    protected $isURI = false;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $filePath = '';
-            if ($this->isURI) {
-                if (false === strpos($this->filePath, ':')) {
-                    $filePath = str_replace(
-                        '%2F',
-                        '/',
-                        rawurlencode($this->filePath)
-                    );
-                } else {
-                    $filePath = $this->filePath;
-                }
-            } else {
-                $filePath = '"' . $this->filePath . '"';
-            }
-
-            $this->content = $filePath . ' ' . parent::getContent();
-        }
-
-        return $this->content;
-    }
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        Tag::setContent($content);
-        if (preg_match(
-            '/^
-                # File component
-                (?:
-                    # File path in quotes
-                    \"([^\"]+)\"
-                    |
-                    # File URI
-                    (\S+)
-                )
-                # Remaining content (parsed by SourceTag)
-                (?:\s+(.*))?
-            $/sux',
-            $this->description,
-            $matches
-        )) {
-            if ('' !== $matches[1]) {
-                $this->setFilePath($matches[1]);
-            } else {
-                $this->setFileURI($matches[2]);
-            }
-
-            if (isset($matches[3])) {
-                parent::setContent($matches[3]);
-            } else {
-                $this->setDescription('');
-            }
-            $this->content = $content;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns the file path.
-     *
-     * @return string Path to a file to use as an example.
-     *     May also be an absolute URI.
-     */
-    public function getFilePath()
-    {
-        return $this->filePath;
-    }
-    
-    /**
-     * Sets the file path.
-     * 
-     * @param string $filePath The new file path to use for the example.
-     * 
-     * @return $this
-     */
-    public function setFilePath($filePath)
-    {
-        $this->isURI = false;
-        $this->filePath = trim($filePath);
-
-        $this->content = null;
-        return $this;
-    }
-    
-    /**
-     * Sets the file path as an URI.
-     * 
-     * This function is equivalent to {@link setFilePath()}, except that it
-     * convers an URI to a file path before that.
-     * 
-     * There is no getFileURI(), as {@link getFilePath()} is compatible.
-     * 
-     * @param type $uri The new file URI to use as an example.
-     */
-    public function setFileURI($uri)
-    {
-        $this->isURI = true;
-        if (false === strpos($uri, ':')) {
-            //Relative URL
-            $this->filePath = rawurldecode(
-                str_replace(array('/', '\\'), '%2F', $uri)
-            );
-        } else {
-            //Absolute URL or URI.
-            $this->filePath = $uri;
-        }
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php
deleted file mode 100644
index f79f25d..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/LinkTag.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Ben Selby <benmatselby@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @link tag in a Docblock.
- *
- * @author  Ben Selby <benmatselby@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class LinkTag extends Tag
-{
-    /** @var string */
-    protected $link = '';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = "{$this->link} {$this->description}";
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        parent::setContent($content);
-        $parts = preg_split('/\s+/Su', $this->description, 2);
-
-        $this->link = $parts[0];
-
-        $this->setDescription(isset($parts[1]) ? $parts[1] : $parts[0]);
-
-        $this->content = $content;
-        return $this;
-    }
-
-    /**
-    * Gets the link
-    *
-    * @return string
-    */
-    public function getLink()
-    {
-        return $this->link;
-    }
-
-    /**
-    * Sets the link
-    *
-    * @param string $link The link
-    *
-    * @return $this
-    */
-    public function setLink($link)
-    {
-        $this->link = $link;
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php
deleted file mode 100644
index 7a5ce79..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/MethodTag.php
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @method in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class MethodTag extends ReturnTag
-{
-
-    /** @var string */
-    protected $method_name = '';
-
-    /** @var string */
-    protected $arguments = '';
-    
-    /** @var bool */
-    protected $isStatic = false;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = '';
-            if ($this->isStatic) {
-                $this->content .= 'static ';
-            }
-            $this->content .= $this->type .
-                " {$this->method_name}({$this->arguments}) " .
-                $this->description;
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        Tag::setContent($content);
-        // 1. none or more whitespace
-        // 2. optionally the keyword "static" followed by whitespace
-        // 3. optionally a word with underscores followed by whitespace : as
-        //    type for the return value
-        // 4. then optionally a word with underscores followed by () and
-        //    whitespace : as method name as used by phpDocumentor
-        // 5. then a word with underscores, followed by ( and any character
-        //    until a ) and whitespace : as method name with signature
-        // 6. any remaining text : as description
-        if (preg_match(
-            '/^
-                # Static keyword
-                # Declates a static method ONLY if type is also present
-                (?:
-                    (static)
-                    \s+
-                )?
-                # Return type
-                (?:
-                    ([\w\|_\\\\]+)
-                    \s+
-                )?
-                # Legacy method name (not captured)
-                (?:
-                    [\w_]+\(\)\s+
-                )?
-                # Method name
-                ([\w\|_\\\\]+)
-                # Arguments
-                \(([^\)]*)\)
-                \s*
-                # Description
-                (.*)
-            $/sux',
-            $this->description,
-            $matches
-        )) {
-            list(
-                ,
-                $static,
-                $this->type,
-                $this->method_name,
-                $this->arguments,
-                $this->description
-            ) = $matches;
-            if ($static) {
-                if (!$this->type) {
-                    $this->type = 'static';
-                } else {
-                    $this->isStatic = true;
-                }
-            } else {
-                if (!$this->type) {
-                    $this->type = 'void';
-                }
-            }
-            $this->parsedDescription = null;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Sets the name of this method.
-     *
-     * @param string $method_name The name of the method.
-     *
-     * @return $this
-     */
-    public function setMethodName($method_name)
-    {
-        $this->method_name = $method_name;
-
-        $this->content = null;
-        return $this;
-    }
-
-    /**
-     * Retrieves the method name.
-     *
-     * @return string
-     */
-    public function getMethodName()
-    {
-        return $this->method_name;
-    }
-
-    /**
-     * Sets the arguments for this method.
-     *
-     * @param string $arguments A comma-separated arguments line.
-     *
-     * @return void
-     */
-    public function setArguments($arguments)
-    {
-        $this->arguments = $arguments;
-
-        $this->content = null;
-        return $this;
-    }
-
-    /**
-     * Returns an array containing each argument as array of type and name.
-     *
-     * Please note that the argument sub-array may only contain 1 element if no
-     * type was specified.
-     *
-     * @return string[]
-     */
-    public function getArguments()
-    {
-        if (empty($this->arguments)) {
-            return array();
-        }
-
-        $arguments = explode(',', $this->arguments);
-        foreach ($arguments as $key => $value) {
-            $arguments[$key] = explode(' ', trim($value));
-        }
-
-        return $arguments;
-    }
-    
-    /**
-     * Checks whether the method tag describes a static method or not.
-     * 
-     * @return bool TRUE if the method declaration is for a static method, FALSE
-     *     otherwise.
-     */
-    public function isStatic()
-    {
-        return $this->isStatic;
-    }
-    
-    /**
-     * Sets a new value for whether the method is static or not.
-     * 
-     * @param bool $isStatic The new value to set.
-     * 
-     * @return $this
-     */
-    public function setIsStatic($isStatic)
-    {
-        $this->isStatic = $isStatic;
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php
deleted file mode 100644
index 9bc0270..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ParamTag.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @param tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class ParamTag extends ReturnTag
-{
-    /** @var string */
-    protected $variableName = '';
-
-    /** @var bool determines whether this is a variadic argument */
-    protected $isVariadic = false;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content
-                = "{$this->type} {$this->variableName} {$this->description}";
-        }
-        return $this->content;
-    }
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        Tag::setContent($content);
-        $parts = preg_split(
-            '/(\s+)/Su',
-            $this->description,
-            3,
-            PREG_SPLIT_DELIM_CAPTURE
-        );
-
-        // if the first item that is encountered is not a variable; it is a type
-        if (isset($parts[0])
-            && (strlen($parts[0]) > 0)
-            && ($parts[0][0] !== '$')
-        ) {
-            $this->type = array_shift($parts);
-            array_shift($parts);
-        }
-
-        // if the next item starts with a $ or ...$ it must be the variable name
-        if (isset($parts[0])
-            && (strlen($parts[0]) > 0)
-            && ($parts[0][0] == '$' || substr($parts[0], 0, 4) === '...$')
-        ) {
-            $this->variableName = array_shift($parts);
-            array_shift($parts);
-
-            if (substr($this->variableName, 0, 3) === '...') {
-                $this->isVariadic = true;
-                $this->variableName = substr($this->variableName, 3);
-            }
-        }
-
-        $this->setDescription(implode('', $parts));
-
-        $this->content = $content;
-        return $this;
-    }
-
-    /**
-     * Returns the variable's name.
-     *
-     * @return string
-     */
-    public function getVariableName()
-    {
-        return $this->variableName;
-    }
-
-    /**
-     * Sets the variable's name.
-     *
-     * @param string $name The new name for this variable.
-     *
-     * @return $this
-     */
-    public function setVariableName($name)
-    {
-        $this->variableName = $name;
-
-        $this->content = null;
-        return $this;
-    }
-
-    /**
-     * Returns whether this tag is variadic.
-     *
-     * @return boolean
-     */
-    public function isVariadic()
-    {
-        return $this->isVariadic;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php
deleted file mode 100644
index 3340602..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyReadTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @property-read tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class PropertyReadTag extends PropertyTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php
deleted file mode 100644
index 288ecff..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @property tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class PropertyTag extends ParamTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php
deleted file mode 100644
index ec4e866..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/PropertyWriteTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @property-write tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class PropertyWriteTag extends PropertyTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php
deleted file mode 100644
index 9293db9..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-use phpDocumentor\Reflection\DocBlock\Type\Collection;
-
-/**
- * Reflection class for a @return tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class ReturnTag extends Tag
-{
-    /** @var string The raw type component. */
-    protected $type = '';
-    
-    /** @var Collection The parsed type component. */
-    protected $types = null;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = "{$this->type} {$this->description}";
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        parent::setContent($content);
-
-        $parts = preg_split('/\s+/Su', $this->description, 2);
-
-        // any output is considered a type
-        $this->type = $parts[0];
-        $this->types = null;
-
-        $this->setDescription(isset($parts[1]) ? $parts[1] : '');
-
-        $this->content = $content;
-        return $this;
-    }
-
-    /**
-     * Returns the unique types of the variable.
-     *
-     * @return string[]
-     */
-    public function getTypes()
-    {
-        return $this->getTypesCollection()->getArrayCopy();
-    }
-
-    /**
-     * Returns the type section of the variable.
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        return (string) $this->getTypesCollection();
-    }
-
-    /**
-     * Returns the type collection.
-     * 
-     * @return void
-     */
-    protected function getTypesCollection()
-    {
-        if (null === $this->types) {
-            $this->types = new Collection(
-                array($this->type),
-                $this->docblock ? $this->docblock->getContext() : null
-            );
-        }
-        return $this->types;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php
deleted file mode 100644
index 4f5f22c..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SeeTag.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @see tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class SeeTag extends Tag
-{
-    /** @var string */
-    protected $refers = null;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = "{$this->refers} {$this->description}";
-        }
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        parent::setContent($content);
-        $parts = preg_split('/\s+/Su', $this->description, 2);
-
-        // any output is considered a type
-        $this->refers = $parts[0];
-
-        $this->setDescription(isset($parts[1]) ? $parts[1] : '');
-
-        $this->content = $content;
-        return $this;
-    }
-
-    /**
-     * Gets the structural element this tag refers to.
-     *
-     * @return string
-     */
-    public function getReference()
-    {
-        return $this->refers;
-    }
-
-    /**
-     * Sets the structural element this tag refers to.
-     * 
-     * @param string $refers The new type this tag refers to.
-     * 
-     * @return $this
-     */
-    public function setReference($refers)
-    {
-        $this->refers = $refers;
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php
deleted file mode 100644
index ba009c4..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SinceTag.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag\VersionTag;
-
-/**
- * Reflection class for a @since tag in a Docblock.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class SinceTag extends VersionTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php
deleted file mode 100644
index 3400220..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/SourceTag.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @source tag in a Docblock.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class SourceTag extends Tag
-{
-    /**
-     * @var int The starting line, relative to the structural element's
-     *     location.
-     */
-    protected $startingLine = 1;
-
-    /** 
-     * @var int|null The number of lines, relative to the starting line. NULL
-     *     means "to the end".
-     */
-    protected $lineCount = null;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content
-                = "{$this->startingLine} {$this->lineCount} {$this->description}";
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        parent::setContent($content);
-        if (preg_match(
-            '/^
-                # Starting line
-                ([1-9]\d*)
-                \s*
-                # Number of lines
-                (?:
-                    ((?1))
-                    \s+
-                )?
-                # Description
-                (.*)
-            $/sux',
-            $this->description,
-            $matches
-        )) {
-            $this->startingLine = (int)$matches[1];
-            if (isset($matches[2]) && '' !== $matches[2]) {
-                $this->lineCount = (int)$matches[2];
-            }
-            $this->setDescription($matches[3]);
-            $this->content = $content;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the starting line.
-     *
-     * @return int The starting line, relative to the structural element's
-     *     location.
-     */
-    public function getStartingLine()
-    {
-        return $this->startingLine;
-    }
-
-    /**
-     * Sets the starting line.
-     * 
-     * @param int $startingLine The new starting line, relative to the
-     *     structural element's location.
-     * 
-     * @return $this
-     */
-    public function setStartingLine($startingLine)
-    {
-        $this->startingLine = $startingLine;
-
-        $this->content = null;
-        return $this;
-    }
-
-    /**
-     * Returns the number of lines.
-     *
-     * @return int|null The number of lines, relative to the starting line. NULL
-     *     means "to the end".
-     */
-    public function getLineCount()
-    {
-        return $this->lineCount;
-    }
-
-    /**
-     * Sets the number of lines.
-     * 
-     * @param int|null $lineCount The new number of lines, relative to the
-     *     starting line. NULL means "to the end".
-     * 
-     * @return $this
-     */
-    public function setLineCount($lineCount)
-    {
-        $this->lineCount = $lineCount;
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php
deleted file mode 100644
index 58ee44a..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @throws tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class ThrowsTag extends ReturnTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php
deleted file mode 100644
index da0d663..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/UsesTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @uses tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class UsesTag extends SeeTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php
deleted file mode 100644
index 236b2c8..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VarTag.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @var tag in a Docblock.
- *
- * @author  Mike van Riel <mike.vanriel@naenius.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class VarTag extends ParamTag
-{
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php
deleted file mode 100644
index 260f698..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/VersionTag.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-use phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Reflection class for a @version tag in a Docblock.
- *
- * @author  Vasil Rangelov <boen.robot@gmail.com>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link    http://phpdoc.org
- */
-class VersionTag extends Tag
-{
-    /**
-     * PCRE regular expression matching a version vector.
-     * Assumes the "x" modifier.
-     */
-    const REGEX_VECTOR = '(?:
-        # Normal release vectors.
-        \d\S*
-        |
-        # VCS version vectors. Per PHPCS, they are expected to
-        # follow the form of the VCS name, followed by ":", followed
-        # by the version vector itself.
-        # By convention, popular VCSes like CVS, SVN and GIT use "$"
-        # around the actual version vector.
-        [^\s\:]+\:\s*\$[^\$]+\$
-    )';
-
-    /** @var string The version vector. */
-    protected $version = '';
-    
-    public function getContent()
-    {
-        if (null === $this->content) {
-            $this->content = "{$this->version} {$this->description}";
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContent($content)
-    {
-        parent::setContent($content);
-
-        if (preg_match(
-            '/^
-                # The version vector
-                (' . self::REGEX_VECTOR . ')
-                \s*
-                # The description
-                (.+)?
-            $/sux',
-            $this->description,
-            $matches
-        )) {
-            $this->version = $matches[1];
-            $this->setDescription(isset($matches[2]) ? $matches[2] : '');
-            $this->content = $content;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the version section of the tag.
-     *
-     * @return string The version section of the tag.
-     */
-    public function getVersion()
-    {
-        return $this->version;
-    }
-    
-    /**
-     * Sets the version section of the tag.
-     * 
-     * @param string $version The new version section of the tag.
-     *     An invalid value will set an empty string.
-     * 
-     * @return $this
-     */
-    public function setVersion($version)
-    {
-        $this->version
-            = preg_match('/^' . self::REGEX_VECTOR . '$/ux', $version)
-            ? $version
-            : '';
-
-        $this->content = null;
-        return $this;
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php b/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php
deleted file mode 100644
index 90ead3f..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Type/Collection.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-/**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Type;
-
-use phpDocumentor\Reflection\DocBlock\Context;
-
-/**
- * Collection
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class Collection extends \ArrayObject
-{
-    /** @var string Definition of the OR operator for types */
-    const OPERATOR_OR = '|';
-
-    /** @var string Definition of the ARRAY operator for types */
-    const OPERATOR_ARRAY = '[]';
-
-    /** @var string Definition of the NAMESPACE operator in PHP */
-    const OPERATOR_NAMESPACE = '\\';
-
-    /** @var string[] List of recognized keywords */
-    protected static $keywords = array(
-        'string', 'int', 'integer', 'bool', 'boolean', 'float', 'double',
-        'object', 'mixed', 'array', 'resource', 'void', 'null', 'scalar',
-        'callback', 'callable', 'false', 'true', 'self', '$this', 'static'
-    );
-
-    /**
-     * Current invoking location.
-     *
-     * This is used to prepend to type with a relative location.
-     * May also be 'default' or 'global', in which case they are ignored.
-     *
-     * @var Context
-     */
-    protected $context = null;
-
-    /**
-     * Registers the namespace and aliases; uses that to add and expand the
-     * given types.
-     *
-     * @param string[] $types    Array containing a list of types to add to this
-     *     container.
-     * @param Context  $location The current invoking location.
-     */
-    public function __construct(
-        array $types = array(),
-        Context $context = null
-    ) {
-        $this->context = null === $context ? new Context() : $context;
-
-        foreach ($types as $type) {
-            $this->add($type);
-        }
-    }
-
-    /**
-     * Returns the current invoking location.
-     *
-     * @return Context
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * Adds a new type to the collection and expands it if it contains a
-     * relative namespace.
-     *
-     * If a class in the type contains a relative namespace than this collection
-     * will try to expand that into a FQCN.
-     *
-     * @param string $type A 'Type' as defined in the phpDocumentor
-     *     documentation.
-     *
-     * @throws \InvalidArgumentException if a non-string argument is passed.
-     *
-     * @see http://phpdoc.org/docs/latest/for-users/types.html for the
-     *     definition of a type.
-     *
-     * @return void
-     */
-    public function add($type)
-    {
-        if (!is_string($type)) {
-            throw new \InvalidArgumentException(
-                'A type should be represented by a string, received: '
-                .var_export($type, true)
-            );
-        }
-
-        // separate the type by the OR operator
-        $type_parts = explode(self::OPERATOR_OR, $type);
-        foreach ($type_parts as $part) {
-            $expanded_type = $this->expand($part);
-            if ($expanded_type) {
-                $this[] = $expanded_type;
-            }
-        }
-    }
-    
-    /**
-     * Returns a string representation of the collection.
-     * 
-     * @return string The resolved types across the collection, separated with
-     *     {@link self::OPERATOR_OR}.
-     */
-    public function __toString()
-    {
-        return implode(self::OPERATOR_OR, $this->getArrayCopy());
-    }
-
-    /**
-     * Analyzes the given type and returns the FQCN variant.
-     *
-     * When a type is provided this method checks whether it is not a keyword or
-     * Fully Qualified Class Name. If so it will use the given namespace and
-     * aliases to expand the type to a FQCN representation.
-     *
-     * This method only works as expected if the namespace and aliases are set;
-     * no dynamic reflection is being performed here.
-     *
-     * @param string $type The relative or absolute type.
-     *
-     * @uses getNamespace to determine with what to prefix the type name.
-     * @uses getNamespaceAliases to check whether the first part of the relative
-     *     type name should not be replaced with another namespace.
-     *
-     * @return string
-     */
-    protected function expand($type)
-    {
-        $type = trim($type);
-        if (!$type) {
-            return '';
-        }
-
-        if ($this->isTypeAnArray($type)) {
-            return $this->expand(substr($type, 0, -2)) . self::OPERATOR_ARRAY;
-        }
-
-        if ($this->isRelativeType($type) && !$this->isTypeAKeyword($type)) {
-            $type_parts = explode(self::OPERATOR_NAMESPACE, $type, 2);
-
-            $namespace_aliases = $this->context->getNamespaceAliases();
-            // if the first segment is not an alias; prepend namespace name and
-            // return
-            if (!isset($namespace_aliases[$type_parts[0]])) {
-                $namespace = $this->context->getNamespace();
-                if ('' !== $namespace) {
-                    $namespace .= self::OPERATOR_NAMESPACE;
-                }
-                return self::OPERATOR_NAMESPACE . $namespace . $type;
-            }
-
-            $type_parts[0] = $namespace_aliases[$type_parts[0]];
-            $type = implode(self::OPERATOR_NAMESPACE, $type_parts);
-        }
-
-        return $type;
-    }
-
-    /**
-     * Detects whether the given type represents an array.
-     *
-     * @param string $type A relative or absolute type as defined in the
-     *     phpDocumentor documentation.
-     *
-     * @return bool
-     */
-    protected function isTypeAnArray($type)
-    {
-        return substr($type, -2) === self::OPERATOR_ARRAY;
-    }
-
-    /**
-     * Detects whether the given type represents a PHPDoc keyword.
-     *
-     * @param string $type A relative or absolute type as defined in the
-     *     phpDocumentor documentation.
-     *
-     * @return bool
-     */
-    protected function isTypeAKeyword($type)
-    {
-        return in_array(strtolower($type), static::$keywords, true);
-    }
-
-    /**
-     * Detects whether the given type represents a relative or absolute path.
-     *
-     * This method will detect keywords as being absolute; even though they are
-     * not preceeded by a namespace separator.
-     *
-     * @param string $type A relative or absolute type as defined in the
-     *     phpDocumentor documentation.
-     *
-     * @return bool
-     */
-    protected function isRelativeType($type)
-    {
-        return ($type[0] !== self::OPERATOR_NAMESPACE)
-            || $this->isTypeAKeyword($type);
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php
deleted file mode 100644
index a6ca7b3..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/DescriptionTest.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-/**
- * phpDocumentor Description Test
- *
- * PHP Version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Description
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class DescriptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstruct()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(1, $parsedContents);
-        $this->assertSame($fixture, $parsedContents[0]);
-    }
-
-    public function testInlineTagParsing()
-    {
-        $fixture = <<<LONGDESC
-This is text for a {@link http://phpdoc.org/ description} that uses inline
-tags.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(3, $parsedContents);
-        $this->assertSame('This is text for a ', $parsedContents[0]);
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag\LinkTag',
-            $parsedContents[1]
-        );
-        $this->assertSame(
-            ' that uses inline
-tags.',
-            $parsedContents[2]
-        );
-    }
-
-    public function testInlineTagAtStartParsing()
-    {
-        $fixture = <<<LONGDESC
-{@link http://phpdoc.org/ This} is text for a description that uses inline
-tags.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(3, $parsedContents);
-
-        $this->assertSame('', $parsedContents[0]);
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag\LinkTag',
-            $parsedContents[1]
-        );
-        $this->assertSame(
-            ' is text for a description that uses inline
-tags.',
-            $parsedContents[2]
-        );
-    }
-
-    public function testNestedInlineTagParsing()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description with {@internal inline tag with
-{@link http://phpdoc.org another inline tag} in it}.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(3, $parsedContents);
-
-        $this->assertSame(
-            'This is text for a description with ',
-            $parsedContents[0]
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $parsedContents[1]
-        );
-        $this->assertSame('.', $parsedContents[2]);
-
-        $parsedDescription = $parsedContents[1]->getParsedDescription();
-        $this->assertCount(3, $parsedDescription);
-        $this->assertSame("inline tag with\n", $parsedDescription[0]);
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag\LinkTag',
-            $parsedDescription[1]
-        );
-        $this->assertSame(' in it', $parsedDescription[2]);
-    }
-
-    public function testLiteralOpeningDelimiter()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description containing { that is literal.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(1, $parsedContents);
-        $this->assertSame($fixture, $parsedContents[0]);
-    }
-
-    public function testNestedLiteralOpeningDelimiter()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description containing {@internal inline tag that has { that
-is literal}.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(3, $parsedContents);
-        $this->assertSame(
-            'This is text for a description containing ',
-            $parsedContents[0]
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $parsedContents[1]
-        );
-        $this->assertSame('.', $parsedContents[2]);
-
-        $this->assertSame(
-            array('inline tag that has { that
-is literal'),
-            $parsedContents[1]->getParsedDescription()
-        );
-    }
-
-    public function testLiteralClosingDelimiter()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description with {} that is not a tag.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(1, $parsedContents);
-        $this->assertSame(
-            'This is text for a description with } that is not a tag.',
-            $parsedContents[0]
-        );
-    }
-
-    public function testNestedLiteralClosingDelimiter()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description with {@internal inline tag with {} that is not an
-inline tag}.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(3, $parsedContents);
-        $this->assertSame(
-            'This is text for a description with ',
-            $parsedContents[0]
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $parsedContents[1]
-        );
-        $this->assertSame('.', $parsedContents[2]);
-
-        $this->assertSame(
-            array('inline tag with } that is not an
-inline tag'),
-            $parsedContents[1]->getParsedDescription()
-        );
-    }
-
-    public function testInlineTagEscapingSequence()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description with literal {{@}link}.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(1, $parsedContents);
-        $this->assertSame(
-            'This is text for a description with literal {@link}.',
-            $parsedContents[0]
-        );
-    }
-
-    public function testNestedInlineTagEscapingSequence()
-    {
-        $fixture = <<<LONGDESC
-This is text for a description with an {@internal inline tag with literal
-{{@}link{} in it}.
-LONGDESC;
-        $object = new Description($fixture);
-        $this->assertSame($fixture, $object->getContents());
-
-        $parsedContents = $object->getParsedContents();
-        $this->assertCount(3, $parsedContents);
-        $this->assertSame(
-            'This is text for a description with an ',
-            $parsedContents[0]
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $parsedContents[1]
-        );
-        $this->assertSame('.', $parsedContents[2]);
-
-        $this->assertSame(
-            array('inline tag with literal
-{@link} in it'),
-            $parsedContents[1]->getParsedDescription()
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php
deleted file mode 100644
index ff257aa..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/CoversTagTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * phpDocumentor Covers Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\CoversTag
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class CoversTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\CoversTag can create
-     * a link for the covers doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exReference
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\CoversTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exReference
-    ) {
-        $tag = new CoversTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exReference, $tag->getReference());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exReference
-        return array(
-            array(
-                'covers',
-                'Foo::bar()',
-                'Foo::bar()',
-                '',
-                'Foo::bar()'
-            ),
-            array(
-                'covers',
-                'Foo::bar() Testing',
-                'Foo::bar() Testing',
-                'Testing',
-                'Foo::bar()',
-            ),
-            array(
-                'covers',
-                'Foo::bar() Testing comments',
-                'Foo::bar() Testing comments',
-                'Testing comments',
-                'Foo::bar()',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php
deleted file mode 100644
index 7a75e79..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/DeprecatedTagTest.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * phpDocumentor Deprecated Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\DeprecatedTag
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class DeprecatedTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
-     * a link for the @deprecated doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exDescription
-     * @param string $exVersion
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\DeprecatedTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exVersion
-    ) {
-        $tag = new DeprecatedTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exVersion, $tag->getVersion());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exVersion
-        return array(
-            array(
-                'deprecated',
-                '1.0 First release.',
-                '1.0 First release.',
-                'First release.',
-                '1.0'
-            ),
-            array(
-                'deprecated',
-                "1.0\nFirst release.",
-                "1.0\nFirst release.",
-                'First release.',
-                '1.0'
-            ),
-            array(
-                'deprecated',
-                "1.0\nFirst\nrelease.",
-                "1.0\nFirst\nrelease.",
-                "First\nrelease.",
-                '1.0'
-            ),
-            array(
-                'deprecated',
-                'Unfinished release',
-                'Unfinished release',
-                'Unfinished release',
-                ''
-            ),
-            array(
-                'deprecated',
-                '1.0',
-                '1.0',
-                '',
-                '1.0'
-            ),
-            array(
-                'deprecated',
-                'GIT: $Id$',
-                'GIT: $Id$',
-                '',
-                'GIT: $Id$'
-            ),
-            array(
-                'deprecated',
-                'GIT: $Id$ Dev build',
-                'GIT: $Id$ Dev build',
-                'Dev build',
-                'GIT: $Id$'
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php
deleted file mode 100644
index 519a61b..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ExampleTagTest.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php
-/**
- * phpDocumentor Example Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\ExampleTag
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class ExampleTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\SourceTag can
-     * understand the @source DocBlock.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exStartingLine
-     * @param string $exLineCount
-     * @param string $exFilepath
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ExampleTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exStartingLine,
-        $exLineCount,
-        $exFilePath
-    ) {
-        $tag = new ExampleTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exStartingLine, $tag->getStartingLine());
-        $this->assertEquals($exLineCount, $tag->getLineCount());
-        $this->assertEquals($exFilePath, $tag->getFilePath());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type,
-        // $content,
-        // $exContent,
-        // $exDescription,
-        // $exStartingLine,
-        // $exLineCount,
-        // $exFilePath
-        return array(
-            array(
-                'example',
-                'file.php',
-                'file.php',
-                '',
-                1,
-                null,
-                'file.php'
-            ),
-            array(
-                'example',
-                'Testing comments',
-                'Testing comments',
-                'comments',
-                1,
-                null,
-                'Testing'
-            ),
-            array(
-                'example',
-                'file.php 2 Testing',
-                'file.php 2 Testing',
-                'Testing',
-                2,
-                null,
-                'file.php'
-            ),
-            array(
-                'example',
-                'file.php 2 3 Testing comments',
-                'file.php 2 3 Testing comments',
-                'Testing comments',
-                2,
-                3,
-                'file.php'
-            ),
-            array(
-                'example',
-                'file.php 2 -1 Testing comments',
-                'file.php 2 -1 Testing comments',
-                '-1 Testing comments',
-                2,
-                null,
-                'file.php'
-            ),
-            array(
-                'example',
-                'file.php -1 1 Testing comments',
-                'file.php -1 1 Testing comments',
-                '-1 1 Testing comments',
-                1,
-                null,
-                'file.php'
-            ),
-            array(
-                'example',
-                '"file with spaces.php" Testing comments',
-                '"file with spaces.php" Testing comments',
-                'Testing comments',
-                1,
-                null,
-                'file with spaces.php'
-            ),
-            array(
-                'example',
-                '"file with spaces.php" 2 Testing comments',
-                '"file with spaces.php" 2 Testing comments',
-                'Testing comments',
-                2,
-                null,
-                'file with spaces.php'
-            ),
-            array(
-                'example',
-                '"file with spaces.php" 2 3 Testing comments',
-                '"file with spaces.php" 2 3 Testing comments',
-                'Testing comments',
-                2,
-                3,
-                'file with spaces.php'
-            ),
-            array(
-                'example',
-                '"file with spaces.php" 2 -3 Testing comments',
-                '"file with spaces.php" 2 -3 Testing comments',
-                '-3 Testing comments',
-                2,
-                null,
-                'file with spaces.php'
-            ),
-            array(
-                'example',
-                '"file with spaces.php" -2 3 Testing comments',
-                '"file with spaces.php" -2 3 Testing comments',
-                '-2 3 Testing comments',
-                1,
-                null,
-                'file with spaces.php'
-            ),
-            array(
-                'example',
-                'file%20with%20spaces.php Testing comments',
-                'file%20with%20spaces.php Testing comments',
-                'Testing comments',
-                1,
-                null,
-                'file with spaces.php'
-            ),
-            array(
-                'example',
-                'folder/file%20with%20spaces.php Testing comments',
-                'folder/file%20with%20spaces.php Testing comments',
-                'Testing comments',
-                1,
-                null,
-                'folder/file with spaces.php'
-            ),
-            array(
-                'example',
-                'http://example.com/file%20with%20spaces.php Testing comments',
-                'http://example.com/file%20with%20spaces.php Testing comments',
-                'Testing comments',
-                1,
-                null,
-                'http://example.com/file%20with%20spaces.php'
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php
deleted file mode 100644
index 0c64ed0..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/LinkTagTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/**
- * phpDocumentor Link Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Ben Selby <benmatselby@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\LinkTag
- *
- * @author    Ben Selby <benmatselby@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class LinkTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
-     * a link for the @link doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exDescription
-     * @param string $exLink
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\LinkTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exLink
-    ) {
-        $tag = new LinkTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exLink, $tag->getLink());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exLink
-        return array(
-            array(
-                'link',
-                'http://www.phpdoc.org/',
-                'http://www.phpdoc.org/',
-                'http://www.phpdoc.org/',
-                'http://www.phpdoc.org/'
-            ),
-            array(
-                'link',
-                'http://www.phpdoc.org/ Testing',
-                'http://www.phpdoc.org/ Testing',
-                'Testing',
-                'http://www.phpdoc.org/'
-            ),
-            array(
-                'link',
-                'http://www.phpdoc.org/ Testing comments',
-                'http://www.phpdoc.org/ Testing comments',
-                'Testing comments',
-                'http://www.phpdoc.org/'
-            ),
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php
deleted file mode 100644
index efc3a15..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/MethodTagTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-/**
- * phpDocumentor Method Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\MethodTag
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class MethodTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @param string $signature       The signature to test.
-     * @param bool   $valid           Whether the given signature is expected to
-     *     be valid.
-     * @param string $expected_name   The method name that is expected from this
-     *     signature.
-     * @param string $expected_return The return type that is expected from this
-     *     signature.
-     * @param bool   $paramCount      Number of parameters in the signature.
-     * @param string $description     The short description mentioned in the
-     *     signature.
-     * 
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\MethodTag
-     * @dataProvider getTestSignatures
-     *
-     * @return void
-     */
-    public function testConstruct(
-        $signature,
-        $valid,
-        $expected_name,
-        $expected_return,
-        $expected_isStatic,
-        $paramCount,
-        $description
-    ) {
-        ob_start();
-        $tag = new MethodTag('method', $signature);
-        $stdout = ob_get_clean();
-
-        $this->assertSame(
-            $valid,
-            empty($stdout),
-            'No error should have been output if the signature is valid'
-        );
-
-        if (!$valid) {
-            return;
-        }
-
-        $this->assertEquals($expected_name, $tag->getMethodName());
-        $this->assertEquals($expected_return, $tag->getType());
-        $this->assertEquals($description, $tag->getDescription());
-        $this->assertEquals($expected_isStatic, $tag->isStatic());
-        $this->assertCount($paramCount, $tag->getArguments());
-    }
-
-    public function getTestSignatures()
-    {
-        return array(
-            // TODO: Verify this case
-//            array(
-//                'foo',
-//                false, 'foo', '', false, 0, ''
-//            ),
-            array(
-                'foo()',
-                true, 'foo', 'void', false, 0, ''
-            ),
-            array(
-                'foo() description',
-                true, 'foo', 'void', false, 0, 'description'
-            ),
-            array(
-                'int foo()',
-                true, 'foo', 'int', false, 0, ''
-            ),
-            array(
-                'int foo() description',
-                true, 'foo', 'int', false, 0, 'description'
-            ),
-            array(
-                'int foo($a, $b)',
-                true, 'foo', 'int', false, 2, ''
-            ),
-            array(
-                'int foo() foo(int $a, int $b)',
-                true, 'foo', 'int', false, 2, ''
-            ),
-            array(
-                'int foo(int $a, int $b)',
-                true, 'foo', 'int', false, 2, ''
-            ),
-            array(
-                'null|int foo(int $a, int $b)',
-                true, 'foo', 'null|int', false, 2, ''
-            ),
-            array(
-                'int foo(null|int $a, int $b)',
-                true, 'foo', 'int', false, 2, ''
-            ),
-            array(
-                '\Exception foo() foo(Exception $a, Exception $b)',
-                true, 'foo', '\Exception', false, 2, ''
-            ),
-            array(
-                'int foo() foo(Exception $a, Exception $b) description',
-                true, 'foo', 'int', false, 2, 'description'
-            ),
-            array(
-                'int foo() foo(\Exception $a, \Exception $b) description',
-                true, 'foo', 'int', false, 2, 'description'
-            ),
-            array(
-                'void()',
-                true, 'void', 'void', false, 0, ''
-            ),
-            array(
-                'static foo()',
-                true, 'foo', 'static', false, 0, ''
-            ),
-            array(
-                'static void foo()',
-                true, 'foo', 'void', true, 0, ''
-            ),
-            array(
-                'static static foo()',
-                true, 'foo', 'static', true, 0, ''
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php
deleted file mode 100644
index 0e05382..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ParamTagTest.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * phpDocumentor Param tag test.
- * 
- * PHP version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\ParamTag
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class ParamTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\ParamTag can
-     * understand the @param DocBlock.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $extractedType
-     * @param string $extractedTypes
-     * @param string $extractedVarName
-     * @param string $extractedDescription
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ParamTag
-     * @dataProvider provideDataForConstructor
-     *
-     * @return void
-     */
-    public function testConstructorParsesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $extractedType,
-        $extractedTypes,
-        $extractedVarName,
-        $extractedDescription
-    ) {
-        $tag = new ParamTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($extractedType, $tag->getType());
-        $this->assertEquals($extractedTypes, $tag->getTypes());
-        $this->assertEquals($extractedVarName, $tag->getVariableName());
-        $this->assertEquals($extractedDescription, $tag->getDescription());
-    }
-
-    /**
-     * Data provider for testConstructorParsesInputsIntoCorrectFields()
-     *
-     * @return array
-     */
-    public function provideDataForConstructor()
-    {
-        return array(
-            array('param', 'int', 'int', array('int'), '', ''),
-            array('param', '$bob', '', array(), '$bob', ''),
-            array(
-                'param',
-                'int Number of bobs',
-                'int',
-                array('int'),
-                '',
-                'Number of bobs'
-            ),
-            array(
-                'param',
-                'int $bob',
-                'int',
-                array('int'),
-                '$bob',
-                ''
-            ),
-            array(
-                'param',
-                'int $bob Number of bobs',
-                'int',
-                array('int'),
-                '$bob',
-                'Number of bobs'
-            ),
-            array(
-                'param',
-                "int Description \n on multiple lines",
-                'int',
-                array('int'),
-                '',
-                "Description \n on multiple lines"
-            ),
-            array(
-                'param',
-                "int \n\$bob Variable name on a new line",
-                'int',
-                array('int'),
-                '$bob',
-                "Variable name on a new line"
-            ),
-            array(
-                'param',
-                "\nint \$bob Type on a new line",
-                'int',
-                array('int'),
-                '$bob',
-                "Type on a new line"
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php
deleted file mode 100644
index 9e2aec0..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ReturnTagTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * phpDocumentor Return tag test.
- * 
- * PHP version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\ReturnTag
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class ReturnTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\ReturnTag can
-     * understand the @return DocBlock.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $extractedType
-     * @param string $extractedTypes
-     * @param string $extractedDescription
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ReturnTag
-     * @dataProvider provideDataForConstructor
-     *
-     * @return void
-     */
-    public function testConstructorParsesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $extractedType,
-        $extractedTypes,
-        $extractedDescription
-    ) {
-        $tag = new ReturnTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($extractedType, $tag->getType());
-        $this->assertEquals($extractedTypes, $tag->getTypes());
-        $this->assertEquals($extractedDescription, $tag->getDescription());
-    }
-
-    /**
-     * Data provider for testConstructorParsesInputsIntoCorrectFields()
-     *
-     * @return array
-     */
-    public function provideDataForConstructor()
-    {
-        return array(
-            array('return', '', '', array(), ''),
-            array('return', 'int', 'int', array('int'), ''),
-            array(
-                'return',
-                'int Number of Bobs',
-                'int',
-                array('int'),
-                'Number of Bobs'
-            ),
-            array(
-                'return',
-                'int|double Number of Bobs',
-                'int|double',
-                array('int', 'double'),
-                'Number of Bobs'
-            ),
-            array(
-                'return',
-                "int Number of \n Bobs",
-                'int',
-                array('int'),
-                "Number of \n Bobs"
-            ),
-            array(
-                'return',
-                " int Number of Bobs",
-                'int',
-                array('int'),
-                "Number of Bobs"
-            ),
-            array(
-                'return',
-                "int\nNumber of Bobs",
-                'int',
-                array('int'),
-                "Number of Bobs"
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php
deleted file mode 100644
index 6829b04..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SeeTagTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * phpDocumentor See Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\SeeTag
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class SeeTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the phpDocumentor_Reflection_DocBlock_Tag_See can create a link
-     * for the @see doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exReference
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\SeeTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exReference
-    ) {
-        $tag = new SeeTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exReference, $tag->getReference());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exReference
-        return array(
-            array(
-                'see',
-                'Foo::bar()',
-                'Foo::bar()',
-                '',
-                'Foo::bar()'
-            ),
-            array(
-                'see',
-                'Foo::bar() Testing',
-                'Foo::bar() Testing',
-                'Testing',
-                'Foo::bar()',
-            ),
-            array(
-                'see',
-                'Foo::bar() Testing comments',
-                'Foo::bar() Testing comments',
-                'Testing comments',
-                'Foo::bar()',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php
deleted file mode 100644
index 8caf25d..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SinceTagTest.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * phpDocumentor Since Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\SinceTag
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class SinceTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
-     * a link for the @since doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exDescription
-     * @param string $exVersion
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\SinceTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exVersion
-    ) {
-        $tag = new SinceTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exVersion, $tag->getVersion());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exVersion
-        return array(
-            array(
-                'since',
-                '1.0 First release.',
-                '1.0 First release.',
-                'First release.',
-                '1.0'
-            ),
-            array(
-                'since',
-                "1.0\nFirst release.",
-                "1.0\nFirst release.",
-                'First release.',
-                '1.0'
-            ),
-            array(
-                'since',
-                "1.0\nFirst\nrelease.",
-                "1.0\nFirst\nrelease.",
-                "First\nrelease.",
-                '1.0'
-            ),
-            array(
-                'since',
-                'Unfinished release',
-                'Unfinished release',
-                'Unfinished release',
-                ''
-            ),
-            array(
-                'since',
-                '1.0',
-                '1.0',
-                '',
-                '1.0'
-            ),
-            array(
-                'since',
-                'GIT: $Id$',
-                'GIT: $Id$',
-                '',
-                'GIT: $Id$'
-            ),
-            array(
-                'since',
-                'GIT: $Id$ Dev build',
-                'GIT: $Id$ Dev build',
-                'Dev build',
-                'GIT: $Id$'
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php
deleted file mode 100644
index 2a40e0a..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/SourceTagTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/**
- * phpDocumentor Source Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\SourceTag
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class SourceTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\SourceTag can
-     * understand the @source DocBlock.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exStartingLine
-     * @param string $exLineCount
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\SourceTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exStartingLine,
-        $exLineCount
-    ) {
-        $tag = new SourceTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exStartingLine, $tag->getStartingLine());
-        $this->assertEquals($exLineCount, $tag->getLineCount());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exStartingLine, $exLineCount
-        return array(
-            array(
-                'source',
-                '2',
-                '2',
-                '',
-                2,
-                null
-            ),
-            array(
-                'source',
-                'Testing',
-                'Testing',
-                'Testing',
-                1,
-                null
-            ),
-            array(
-                'source',
-                '2 Testing',
-                '2 Testing',
-                'Testing',
-                2,
-                null
-            ),
-            array(
-                'source',
-                '2 3 Testing comments',
-                '2 3 Testing comments',
-                'Testing comments',
-                2,
-                3
-            ),
-            array(
-                'source',
-                '2 -1 Testing comments',
-                '2 -1 Testing comments',
-                '-1 Testing comments',
-                2,
-                null
-            ),
-            array(
-                'source',
-                '-1 1 Testing comments',
-                '-1 1 Testing comments',
-                '-1 1 Testing comments',
-                1,
-                null
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php
deleted file mode 100644
index 3c669d5..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/ThrowsTagTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * phpDocumentor Throws tag test.
- * 
- * PHP version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\ThrowsTag
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class ThrowsTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag can
-     * understand the @throws DocBlock.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $extractedType
-     * @param string $extractedTypes
-     * @param string $extractedDescription
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\ThrowsTag
-     * @dataProvider provideDataForConstructor
-     *
-     * @return void
-     */
-    public function testConstructorParsesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $extractedType,
-        $extractedTypes,
-        $extractedDescription
-    ) {
-        $tag = new ThrowsTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($extractedType, $tag->getType());
-        $this->assertEquals($extractedTypes, $tag->getTypes());
-        $this->assertEquals($extractedDescription, $tag->getDescription());
-    }
-
-    /**
-     * Data provider for testConstructorParsesInputsIntoCorrectFields()
-     *
-     * @return array
-     */
-    public function provideDataForConstructor()
-    {
-        return array(
-            array('throws', '', '', array(), ''),
-            array('throws', 'int', 'int', array('int'), ''),
-            array(
-                'throws',
-                'int Number of Bobs',
-                'int',
-                array('int'),
-                'Number of Bobs'
-            ),
-            array(
-                'throws',
-                'int|double Number of Bobs',
-                'int|double',
-                array('int', 'double'),
-                'Number of Bobs'
-            ),
-            array(
-                'throws',
-                "int Number of \n Bobs",
-                'int',
-                array('int'),
-                "Number of \n Bobs"
-            ),
-            array(
-                'throws',
-                " int Number of Bobs",
-                'int',
-                array('int'),
-                "Number of Bobs"
-            ),
-            array(
-                'throws',
-                "int\nNumber of Bobs",
-                'int',
-                array('int'),
-                "Number of Bobs"
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php
deleted file mode 100644
index 45868d7..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/UsesTagTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * phpDocumentor Uses Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\UsesTag
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class UsesTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\UsesTag can create
-     * a link for the @uses doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exReference
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\UsesTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exReference
-    ) {
-        $tag = new UsesTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exReference, $tag->getReference());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exReference
-        return array(
-            array(
-                'uses',
-                'Foo::bar()',
-                'Foo::bar()',
-                '',
-                'Foo::bar()'
-            ),
-            array(
-                'uses',
-                'Foo::bar() Testing',
-                'Foo::bar() Testing',
-                'Testing',
-                'Foo::bar()',
-            ),
-            array(
-                'uses',
-                'Foo::bar() Testing comments',
-                'Foo::bar() Testing comments',
-                'Testing comments',
-                'Foo::bar()',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php
deleted file mode 100644
index 9ae2aa5..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VarTagTest.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * phpDocumentor Var Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VarTag
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class VarTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\VarTag can
-     * understand the @var doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exType
-     * @param string $exVariable
-     * @param string $exDescription
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\VarTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exType,
-        $exVariable,
-        $exDescription
-    ) {
-        $tag = new VarTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exType, $tag->getType());
-        $this->assertEquals($exVariable, $tag->getVariableName());
-        $this->assertEquals($exDescription, $tag->getDescription());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exType, $exVariable, $exDescription
-        return array(
-            array(
-                'var',
-                'int',
-                'int',
-                '',
-                ''
-            ),
-            array(
-                'var',
-                'int $bob',
-                'int',
-                '$bob',
-                ''
-            ),
-            array(
-                'var',
-                'int $bob Number of bobs',
-                'int',
-                '$bob',
-                'Number of bobs'
-            ),
-            array(
-                'var',
-                '',
-                '',
-                '',
-                ''
-            ),
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php
deleted file mode 100644
index e145386..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Tag/VersionTagTest.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * phpDocumentor Version Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Tag;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VersionTag
- *
- * @author    Vasil Rangelov <boen.robot@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class VersionTagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\LinkTag can create
-     * a link for the @version doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exContent
-     * @param string $exDescription
-     * @param string $exVersion
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag\VersionTag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exContent,
-        $exDescription,
-        $exVersion
-    ) {
-        $tag = new VersionTag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($exContent, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-        $this->assertEquals($exVersion, $tag->getVersion());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exContent, $exDescription, $exVersion
-        return array(
-            array(
-                'version',
-                '1.0 First release.',
-                '1.0 First release.',
-                'First release.',
-                '1.0'
-            ),
-            array(
-                'version',
-                "1.0\nFirst release.",
-                "1.0\nFirst release.",
-                'First release.',
-                '1.0'
-            ),
-            array(
-                'version',
-                "1.0\nFirst\nrelease.",
-                "1.0\nFirst\nrelease.",
-                "First\nrelease.",
-                '1.0'
-            ),
-            array(
-                'version',
-                'Unfinished release',
-                'Unfinished release',
-                'Unfinished release',
-                ''
-            ),
-            array(
-                'version',
-                '1.0',
-                '1.0',
-                '',
-                '1.0'
-            ),
-            array(
-                'version',
-                'GIT: $Id$',
-                'GIT: $Id$',
-                '',
-                'GIT: $Id$'
-            ),
-            array(
-                'version',
-                'GIT: $Id$ Dev build',
-                'GIT: $Id$ Dev build',
-                'Dev build',
-                'GIT: $Id$'
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php
deleted file mode 100644
index 9e873ec..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php
+++ /dev/null
@@ -1,313 +0,0 @@
-<?php
-/**
- * phpDocumentor Var Tag Test
- * 
- * PHP version 5.3
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock;
-
-use phpDocumentor\Reflection\DocBlock;
-use phpDocumentor\Reflection\DocBlock\Context;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VarTag
- *
- * @author    Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class TagTest extends \PHPUnit_Framework_TestCase
-{
-    
-    /**
-     * @expectedException \InvalidArgumentException
-     * 
-     * @return void
-     */
-    public function testInvalidTagLine()
-    {
-        Tag::createInstance('Invalid tag line');
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
-     * 
-     * @return void
-     */
-    public function testTagHandlerUnregistration()
-    {
-        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
-        $tagPreUnreg = Tag::createInstance('@var mixed');
-        $this->assertInstanceOf(
-            $currentHandler,
-            $tagPreUnreg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPreUnreg
-        );
-
-        Tag::registerTagHandler('var', null);
-
-        $tagPostUnreg = Tag::createInstance('@var mixed');
-        $this->assertNotInstanceOf(
-            $currentHandler,
-            $tagPostUnreg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPostUnreg
-        );
-
-        Tag::registerTagHandler('var', $currentHandler);
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
-     * 
-     * @return void
-     */
-    public function testTagHandlerCorrectRegistration()
-    {
-        if (0 == ini_get('allow_url_include')) {
-            $this->markTestSkipped('"data" URIs for includes are required.');
-        }
-        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
-        $tagPreReg = Tag::createInstance('@var mixed');
-        $this->assertInstanceOf(
-            $currentHandler,
-            $tagPreReg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPreReg
-        );
-
-        include 'data:text/plain;base64,'. base64_encode(
-<<<TAG_HANDLER
-<?php
-    class MyTagHandler extends \phpDocumentor\Reflection\DocBlock\Tag {}
-TAG_HANDLER
-        );
-
-        $this->assertTrue(Tag::registerTagHandler('var', '\MyTagHandler'));
-
-        $tagPostReg = Tag::createInstance('@var mixed');
-        $this->assertNotInstanceOf(
-            $currentHandler,
-            $tagPostReg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPostReg
-        );
-        $this->assertInstanceOf(
-            '\MyTagHandler',
-            $tagPostReg
-        );
-
-        $this->assertTrue(Tag::registerTagHandler('var', $currentHandler));
-    }
-    
-    /**
-     * @depends testTagHandlerCorrectRegistration
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::createInstance
-     * 
-     * @return void
-     */
-    public function testNamespacedTagHandlerCorrectRegistration()
-    {
-        $tagPreReg = Tag::createInstance('@T something');
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPreReg
-        );
-        $this->assertNotInstanceOf(
-            '\MyTagHandler',
-            $tagPreReg
-        );
-
-        $this->assertTrue(
-            Tag::registerTagHandler('\MyNamespace\MyTag', '\MyTagHandler')
-        );
-
-        $tagPostReg = Tag::createInstance(
-            '@T something',
-            new DocBlock(
-                '',
-                new Context('', array('T' => '\MyNamespace\MyTag'))
-            )
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPostReg
-        );
-        $this->assertInstanceOf(
-            '\MyTagHandler',
-            $tagPostReg
-        );
-
-        $this->assertTrue(
-            Tag::registerTagHandler('\MyNamespace\MyTag', null)
-        );
-    }
-    
-    /**
-     * @depends testTagHandlerCorrectRegistration
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::createInstance
-     * 
-     * @return void
-     */
-    public function testNamespacedTagHandlerIncorrectRegistration()
-    {
-        $tagPreReg = Tag::createInstance('@T something');
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPreReg
-        );
-        $this->assertNotInstanceOf(
-            '\MyTagHandler',
-            $tagPreReg
-        );
-
-        $this->assertFalse(
-            Tag::registerTagHandler('MyNamespace\MyTag', '\MyTagHandler')
-        );
-
-        $tagPostReg = Tag::createInstance(
-            '@T something',
-            new DocBlock(
-                '',
-                new Context('', array('T' => '\MyNamespace\MyTag'))
-            )
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPostReg
-        );
-        $this->assertNotInstanceOf(
-            '\MyTagHandler',
-            $tagPostReg
-        );
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
-     * 
-     * @return void
-     */
-    public function testNonExistentTagHandlerRegistration()
-    {
-        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
-        $tagPreReg = Tag::createInstance('@var mixed');
-        $this->assertInstanceOf(
-            $currentHandler,
-            $tagPreReg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPreReg
-        );
-
-        $this->assertFalse(Tag::registerTagHandler('var', 'Non existent'));
-
-        $tagPostReg = Tag::createInstance('@var mixed');
-        $this->assertInstanceOf(
-            $currentHandler,
-            $tagPostReg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPostReg
-        );
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
-     * 
-     * @return void
-     */
-    public function testIncompatibleTagHandlerRegistration()
-    {
-        $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
-        $tagPreReg = Tag::createInstance('@var mixed');
-        $this->assertInstanceOf(
-            $currentHandler,
-            $tagPreReg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPreReg
-        );
-
-        $this->assertFalse(
-            Tag::registerTagHandler('var', __NAMESPACE__ . '\TagTest')
-        );
-
-        $tagPostReg = Tag::createInstance('@var mixed');
-        $this->assertInstanceOf(
-            $currentHandler,
-            $tagPostReg
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\Tag',
-            $tagPostReg
-        );
-    }
-
-    /**
-     * Test that the \phpDocumentor\Reflection\DocBlock\Tag\VarTag can
-     * understand the @var doc block.
-     *
-     * @param string $type
-     * @param string $content
-     * @param string $exDescription
-     *
-     * @covers \phpDocumentor\Reflection\DocBlock\Tag
-     * @dataProvider provideDataForConstuctor
-     *
-     * @return void
-     */
-    public function testConstructorParesInputsIntoCorrectFields(
-        $type,
-        $content,
-        $exDescription
-    ) {
-        $tag = new Tag($type, $content);
-
-        $this->assertEquals($type, $tag->getName());
-        $this->assertEquals($content, $tag->getContent());
-        $this->assertEquals($exDescription, $tag->getDescription());
-    }
-
-    /**
-     * Data provider for testConstructorParesInputsIntoCorrectFields
-     *
-     * @return array
-     */
-    public function provideDataForConstuctor()
-    {
-        // $type, $content, $exDescription
-        return array(
-            array(
-                'unknown',
-                'some content',
-                'some content',
-            ),
-            array(
-                'unknown',
-                '',
-                '',
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php
deleted file mode 100644
index 78c7306..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/Type/CollectionTest.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/**
- * phpDocumentor Collection Test
- * 
- * PHP version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection\DocBlock\Type;
-
-use phpDocumentor\Reflection\DocBlock\Context;
-
-/**
- * Test class for \phpDocumentor\Reflection\DocBlock\Type\Collection
- * 
- * @covers phpDocumentor\Reflection\DocBlock\Type\Collection
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class CollectionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::getContext
-     * 
-     * @return void
-     */
-    public function testConstruct()
-    {
-        $collection = new Collection();
-        $this->assertCount(0, $collection);
-        $this->assertEquals('', $collection->getContext()->getNamespace());
-        $this->assertCount(0, $collection->getContext()->getNamespaceAliases());
-    }
-
-    /**
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
-     * 
-     * @return void
-     */
-    public function testConstructWithTypes()
-    {
-        $collection = new Collection(array('integer', 'string'));
-        $this->assertCount(2, $collection);
-    }
-
-    /**
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
-     * 
-     * @return void
-     */
-    public function testConstructWithNamespace()
-    {
-        $collection = new Collection(array(), new Context('\My\Space'));
-        $this->assertEquals('My\Space', $collection->getContext()->getNamespace());
-
-        $collection = new Collection(array(), new Context('My\Space'));
-        $this->assertEquals('My\Space', $collection->getContext()->getNamespace());
-
-        $collection = new Collection(array(), null);
-        $this->assertEquals('', $collection->getContext()->getNamespace());
-    }
-
-    /**
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::__construct
-     * 
-     * @return void
-     */
-    public function testConstructWithNamespaceAliases()
-    {
-        $fixture = array('a' => 'b');
-        $collection = new Collection(array(), new Context(null, $fixture));
-        $this->assertEquals(
-            array('a' => '\b'),
-            $collection->getContext()->getNamespaceAliases()
-        );
-    }
-
-    /**
-     * @param string $fixture
-     * @param array  $expected
-     *
-     * @dataProvider provideTypesToExpand
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::add
-     * 
-     * @return void
-     */
-    public function testAdd($fixture, $expected)
-    {
-        $collection = new Collection(
-            array(),
-            new Context('\My\Space', array('Alias' => '\My\Space\Aliasing'))
-        );
-        $collection->add($fixture);
-
-        $this->assertSame($expected, $collection->getArrayCopy());
-    }
-
-    /**
-     * @param string $fixture
-     * @param array  $expected
-     *
-     * @dataProvider provideTypesToExpandWithoutNamespace
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::add
-     * 
-     * @return void
-     */
-    public function testAddWithoutNamespace($fixture, $expected)
-    {
-        $collection = new Collection(
-            array(),
-            new Context(null, array('Alias' => '\My\Space\Aliasing'))
-        );
-        $collection->add($fixture);
-
-        $this->assertSame($expected, $collection->getArrayCopy());
-    }
-
-    /**
-     * @covers phpDocumentor\Reflection\DocBlock\Type\Collection::add
-     * @expectedException InvalidArgumentException
-     * 
-     * @return void
-     */
-    public function testAddWithInvalidArgument()
-    {
-        $collection = new Collection();
-        $collection->add(array());
-    }
-
-    /**
-     * Returns the types and their expected values to test the retrieval of
-     * types.
-     *
-     * @param string $method    Name of the method consuming this data provider.
-     * @param string $namespace Name of the namespace to user as basis.
-     *
-     * @return string[]
-     */
-    public function provideTypesToExpand($method, $namespace = '\My\Space\\')
-    {
-        return array(
-            array('', array()),
-            array(' ', array()),
-            array('int', array('int')),
-            array('int ', array('int')),
-            array('string', array('string')),
-            array('DocBlock', array($namespace.'DocBlock')),
-            array('DocBlock[]', array($namespace.'DocBlock[]')),
-            array(' DocBlock ', array($namespace.'DocBlock')),
-            array('\My\Space\DocBlock', array('\My\Space\DocBlock')),
-            array('Alias\DocBlock', array('\My\Space\Aliasing\DocBlock')),
-            array(
-                'DocBlock|Tag',
-                array($namespace .'DocBlock', $namespace .'Tag')
-            ),
-            array(
-                'DocBlock|null',
-                array($namespace.'DocBlock', 'null')
-            ),
-            array(
-                '\My\Space\DocBlock|Tag',
-                array('\My\Space\DocBlock', $namespace.'Tag')
-            ),
-            array(
-                'DocBlock[]|null',
-                array($namespace.'DocBlock[]', 'null')
-            ),
-            array(
-                'DocBlock[]|int[]',
-                array($namespace.'DocBlock[]', 'int[]')
-            ),
-        );
-    }
-
-    /**
-     * Returns the types and their expected values to test the retrieval of
-     * types when no namespace is available.
-     *
-     * @param string $method Name of the method consuming this data provider.
-     *
-     * @return string[]
-     */
-    public function provideTypesToExpandWithoutNamespace($method)
-    {
-        return $this->provideTypesToExpand($method, '\\');
-    }
-}
diff --git a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php b/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php
deleted file mode 100644
index 30eedfc..0000000
--- a/core/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlockTest.php
+++ /dev/null
@@ -1,337 +0,0 @@
-<?php
-/**
- * phpDocumentor DocBlock Test
- *
- * PHP Version 5.3
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-
-namespace phpDocumentor\Reflection;
-
-use phpDocumentor\Reflection\DocBlock\Context;
-use phpDocumentor\Reflection\DocBlock\Location;
-use phpDocumentor\Reflection\DocBlock\Tag\ReturnTag;
-
-/**
- * Test class for phpDocumentor\Reflection\DocBlock
- *
- * @author    Mike van Riel <mike.vanriel@naenius.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license   http://www.opensource.org/licenses/mit-license.php MIT
- * @link      http://phpdoc.org
- */
-class DocBlockTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock
-     * 
-     * @return void
-     */
-    public function testConstruct()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * This is a short description
- *
- * This is a long description
- *
- * @see \MyClass
- * @return void
- */
-DOCBLOCK;
-        $object = new DocBlock(
-            $fixture,
-            new Context('\MyNamespace', array('PHPDoc' => '\phpDocumentor')),
-            new Location(2)
-        );
-        $this->assertEquals(
-            'This is a short description',
-            $object->getShortDescription()
-        );
-        $this->assertEquals(
-            'This is a long description',
-            $object->getLongDescription()->getContents()
-        );
-        $this->assertCount(2, $object->getTags());
-        $this->assertTrue($object->hasTag('see'));
-        $this->assertTrue($object->hasTag('return'));
-        $this->assertFalse($object->hasTag('category'));
-        
-        $this->assertSame('MyNamespace', $object->getContext()->getNamespace());
-        $this->assertSame(
-            array('PHPDoc' => '\phpDocumentor'),
-            $object->getContext()->getNamespaceAliases()
-        );
-        $this->assertSame(2, $object->getLocation()->getLineNumber());
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock::splitDocBlock
-     *
-     * @return void
-     */
-    public function testConstructWithTagsOnly()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * @see \MyClass
- * @return void
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertEquals('', $object->getShortDescription());
-        $this->assertEquals('', $object->getLongDescription()->getContents());
-        $this->assertCount(2, $object->getTags());
-        $this->assertTrue($object->hasTag('see'));
-        $this->assertTrue($object->hasTag('return'));
-        $this->assertFalse($object->hasTag('category'));
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock::isTemplateStart
-     */
-    public function testIfStartOfTemplateIsDiscovered()
-    {
-        $fixture = <<<DOCBLOCK
-/**#@+
- * @see \MyClass
- * @return void
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertEquals('', $object->getShortDescription());
-        $this->assertEquals('', $object->getLongDescription()->getContents());
-        $this->assertCount(2, $object->getTags());
-        $this->assertTrue($object->hasTag('see'));
-        $this->assertTrue($object->hasTag('return'));
-        $this->assertFalse($object->hasTag('category'));
-        $this->assertTrue($object->isTemplateStart());
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock::isTemplateEnd
-     */
-    public function testIfEndOfTemplateIsDiscovered()
-    {
-        $fixture = <<<DOCBLOCK
-/**#@-*/
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertEquals('', $object->getShortDescription());
-        $this->assertEquals('', $object->getLongDescription()->getContents());
-        $this->assertTrue($object->isTemplateEnd());
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock::cleanInput
-     * 
-     * @return void
-     */
-    public function testConstructOneLiner()
-    {
-        $fixture = '/** Short description and nothing more. */';
-        $object = new DocBlock($fixture);
-        $this->assertEquals(
-            'Short description and nothing more.',
-            $object->getShortDescription()
-        );
-        $this->assertEquals('', $object->getLongDescription()->getContents());
-        $this->assertCount(0, $object->getTags());
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock::__construct
-     * 
-     * @return void
-     */
-    public function testConstructFromReflector()
-    {
-        $object = new DocBlock(new \ReflectionClass($this));
-        $this->assertEquals(
-            'Test class for phpDocumentor\Reflection\DocBlock',
-            $object->getShortDescription()
-        );
-        $this->assertEquals('', $object->getLongDescription()->getContents());
-        $this->assertCount(4, $object->getTags());
-        $this->assertTrue($object->hasTag('author'));
-        $this->assertTrue($object->hasTag('copyright'));
-        $this->assertTrue($object->hasTag('license'));
-        $this->assertTrue($object->hasTag('link'));
-        $this->assertFalse($object->hasTag('category'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * 
-     * @return void
-     */
-    public function testExceptionOnInvalidObject()
-    {
-        new DocBlock($this);
-    }
-
-    public function testDotSeperation()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * This is a short description.
- * This is a long description.
- * This is a continuation of the long description.
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertEquals(
-            'This is a short description.',
-            $object->getShortDescription()
-        );
-        $this->assertEquals(
-            "This is a long description.\nThis is a continuation of the long "
-            ."description.",
-            $object->getLongDescription()->getContents()
-        );
-    }
-
-    /**
-     * @covers \phpDocumentor\Reflection\DocBlock::parseTags
-     * @expectedException \LogicException
-     * 
-     * @return void
-     */
-    public function testInvalidTagBlock()
-    {
-        if (0 == ini_get('allow_url_include')) {
-            $this->markTestSkipped('"data" URIs for includes are required.');
-        }
-
-        include 'data:text/plain;base64,'. base64_encode(
-            <<<DOCBLOCK_EXTENSION
-<?php
-class MyReflectionDocBlock extends \phpDocumentor\Reflection\DocBlock {
-    protected function splitDocBlock(\$comment) {
-        return array('', '', 'Invalid tag block');
-    }
-}
-DOCBLOCK_EXTENSION
-        );
-        new \MyReflectionDocBlock('');
-        
-    }
-
-    public function testTagCaseSensitivity()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * This is a short description.
- *
- * This is a long description.
- *
- * @method null something()
- * @Method({"GET", "POST"})
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertEquals(
-            'This is a short description.',
-            $object->getShortDescription()
-        );
-        $this->assertEquals(
-            'This is a long description.',
-            $object->getLongDescription()->getContents()
-        );
-        $tags = $object->getTags();
-        $this->assertCount(2, $tags);
-        $this->assertTrue($object->hasTag('method'));
-        $this->assertTrue($object->hasTag('Method'));
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\DocBlock\Tag\MethodTag',
-            $tags[0]
-        );
-        $this->assertInstanceOf(
-            __NAMESPACE__ . '\DocBlock\Tag',
-            $tags[1]
-        );
-        $this->assertNotInstanceOf(
-            __NAMESPACE__ . '\DocBlock\Tag\MethodTag',
-            $tags[1]
-        );
-    }
-
-    /**
-     * @depends testConstructFromReflector
-     * @covers \phpDocumentor\Reflection\DocBlock::getTagsByName
-     * 
-     * @return void
-     */
-    public function testGetTagsByNameZeroAndOneMatch()
-    {
-        $object = new DocBlock(new \ReflectionClass($this));
-        $this->assertEmpty($object->getTagsByName('category'));
-        $this->assertCount(1, $object->getTagsByName('author'));
-    }
-
-    /**
-     * @depends testConstructWithTagsOnly
-     * @covers \phpDocumentor\Reflection\DocBlock::parseTags
-     * 
-     * @return void
-     */
-    public function testParseMultilineTag()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * @return void Content on
- *     multiple lines.
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertCount(1, $object->getTags());
-    }
-
-    /**
-     * @depends testConstructWithTagsOnly
-     * @covers \phpDocumentor\Reflection\DocBlock::parseTags
-     * 
-     * @return void
-     */
-    public function testParseMultilineTagWithLineBreaks()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * @return void Content on
- *     multiple lines.
- *
- *     One more, after the break.
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertCount(1, $tags = $object->getTags());
-	    /** @var ReturnTag $tag */
-	    $tag = reset($tags);
-	    $this->assertEquals("Content on\n    multiple lines.\n\n    One more, after the break.", $tag->getDescription());
-    }
-
-    /**
-     * @depends testConstructWithTagsOnly
-     * @covers \phpDocumentor\Reflection\DocBlock::getTagsByName
-     * 
-     * @return void
-     */
-    public function testGetTagsByNameMultipleMatch()
-    {
-        $fixture = <<<DOCBLOCK
-/**
- * @param string
- * @param int
- * @return void
- */
-DOCBLOCK;
-        $object = new DocBlock($fixture);
-        $this->assertEmpty($object->getTagsByName('category'));
-        $this->assertCount(1, $object->getTagsByName('return'));
-        $this->assertCount(2, $object->getTagsByName('param'));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/.gitignore b/core/vendor/phpspec/prophecy/.gitignore
deleted file mode 100644
index 0c39a17..0000000
--- a/core/vendor/phpspec/prophecy/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-*.tgz
-*.phar
-bin
-vendor
-composer.lock
diff --git a/core/vendor/phpspec/prophecy/.travis.yml b/core/vendor/phpspec/prophecy/.travis.yml
deleted file mode 100644
index 4a69309..0000000
--- a/core/vendor/phpspec/prophecy/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-language: php
-
-php: [5.3, 5.4, 5.5, hhvm, hhvm-nightly]
-
-sudo: false
-
-before_script: travis_retry composer install --no-interaction --prefer-source
-
-script: vendor/bin/phpspec run -fpretty -v
diff --git a/core/vendor/phpspec/prophecy/CHANGES.md b/core/vendor/phpspec/prophecy/CHANGES.md
deleted file mode 100644
index fe761da..0000000
--- a/core/vendor/phpspec/prophecy/CHANGES.md
+++ /dev/null
@@ -1,110 +0,0 @@
-1.4.0 / 2015-03-27
-==================
-
-  * Fixed errors in return type phpdocs (thanks @sobit)
-  * Fixed stringifying of hash containing one value (thanks @avant1)
-  * Improved clarity of method call expectation exception (thanks @dantleech)
-  * Add ability to specify which argument is returned in willReturnArgument (thanks @coderbyheart)
-  * Add more information to MethodNotFound exceptions (thanks @ciaranmcnulty)
-  * Support for mocking classes with methods that return references (thanks @edsonmedina)
-  * Improved object comparison (thanks @whatthejeff)
-  * Adopted '^' in composer dependencies (thanks @GrahamCampbell)
-  * Fixed non-typehinted arguments being treated as optional (thanks @whatthejeff)
-  * Magic methods are now filtered for keywords (thanks @seagoj)
-  * More readable errors for failure when expecting single calls (thanks @dantleech)
-
-1.3.1 / 2014-11-17
-==================
-
-  * Fix the edge case when failed predictions weren't recorded for `getCheckedPredictions()`
-
-1.3.0 / 2014-11-14
-==================
-
-  * Add a way to get checked predictions with `MethodProphecy::getCheckedPredictions()`
-  * Fix HHVM compatibility
-  * Remove dead code (thanks @stof)
-  * Add support for DirectoryIterators (thanks @shanethehat)
-
-1.2.0 / 2014-07-18
-==================
-
-  * Added support for doubling magic methods documented in the class phpdoc (thanks @armetiz)
-  * Fixed a segfault appearing in some cases (thanks @dmoreaulf)
-  * Fixed the doubling of methods with typehints on non-existent classes (thanks @gquemener)
-  * Added support for internal classes using keywords as method names (thanks @milan)
-  * Added IdenticalValueToken and Argument::is (thanks @florianv)
-  * Removed the usage of scalar typehints in HHVM as HHVM 3 does not support them anymore in PHP code (thanks @whatthejeff)
-
-1.1.2 / 2014-01-24
-==================
-
-  * Spy automatically promotes spied method call to an expected one
-
-1.1.1 / 2014-01-15
-==================
-
-  * Added support for HHVM
-
-1.1.0 / 2014-01-01
-==================
-
-  * Changed the generated class names to use a static counter instead of a random number
-  * Added a clss patch for ReflectionClass::newInstance to make its argument optional consistently (thanks @docteurklein)
-  * Fixed mirroring of classes with typehints on non-existent classes (thanks @docteurklein)
-  * Fixed the support of array callables in CallbackPromise and CallbackPrediction (thanks @ciaranmcnulty)
-  * Added support for properties in ObjectStateToken (thanks @adrienbrault)
-  * Added support for mocking classes with a final constructor (thanks @ciaranmcnulty)
-  * Added ArrayEveryEntryToken and Argument::withEveryEntry() (thanks @adrienbrault)
-  * Added an exception when trying to prophesize on a final method instead of ignoring silently (thanks @docteurklein)
-  * Added StringContainToken and Argument::containingString() (thanks @peterjmit)
-  * Added ``shouldNotHaveBeenCalled`` on the MethodProphecy (thanks @ciaranmcnulty)
-  * Fixed the comparison of objects in ExactValuetoken (thanks @sstok)
-  * Deprecated ``shouldNotBeenCalled`` in favor of ``shouldNotHaveBeenCalled``
-
-1.0.4 / 2013-08-10
-==================
-
-  * Better randomness for generated class names (thanks @sstok)
-  * Add support for interfaces into TypeToken and Argument::type() (thanks @sstok)
-  * Add support for old-style (method name === class name) constructors (thanks @l310 for report)
-
-1.0.3 / 2013-07-04
-==================
-
-  * Support callable typehints (thanks @stof)
-  * Do not attempt to autoload arrays when generating code (thanks @MarcoDeBortoli)
-  * New ArrayEntryToken (thanks @kagux)
-
-1.0.2 / 2013-05-19
-==================
-
-  * Logical `AND` token added (thanks @kagux)
-  * Logical `NOT` token added (thanks @kagux)
-  * Add support for setting custom constructor arguments
-  * Properly stringify hashes
-  * Record calls that throw exceptions
-  * Migrate spec suite to PhpSpec 2.0
-
-1.0.1 / 2013-04-30
-==================
-
-  * Fix broken UnexpectedCallException message
-  * Trim AggregateException message
-
-1.0.0 / 2013-04-29
-==================
-
-  * Improve exception messages
-
-1.0.0-BETA2 / 2013-04-03
-========================
-
-  * Add more debug information to CallTimes and Call prediction exception messages
-  * Fix MethodNotFoundException wrong namespace (thanks @gunnarlium)
-  * Fix some typos in the exception messages (thanks @pborreli)
-
-1.0.0-BETA1 / 2013-03-25
-========================
-
-  * Initial release
diff --git a/core/vendor/phpspec/prophecy/CONTRIBUTING.md b/core/vendor/phpspec/prophecy/CONTRIBUTING.md
deleted file mode 100644
index 6ea0589..0000000
--- a/core/vendor/phpspec/prophecy/CONTRIBUTING.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Contributing
-------------
-
-Prophecy is an open source, community-driven project. If you'd like to contribute,
-feel free to do this, but remember to follow this few simple rules:
-
-- Make your feature addition or bug fix,
-- Add either specs or examples for any changes you're making (bugfixes or additions)
-  (please look into `spec/` folder for some examples). This is important so we don't break
-  it in a future version unintentionally,
-- Commit your code, but do not mess with `CHANGES.md`,
-
-Running tests
--------------
-
-Make sure that you don't break anything with your changes by running:
-
-```bash
-$> composer install --dev --prefer-dist
-$> vendor/bin/phpspec
-```
diff --git a/core/vendor/phpspec/prophecy/LICENSE b/core/vendor/phpspec/prophecy/LICENSE
deleted file mode 100644
index c8b3647..0000000
--- a/core/vendor/phpspec/prophecy/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2013 Konstantin Kudryashov <ever.zet@gmail.com>
-                   Marcello Duarte <marcello.duarte@gmail.com>
-
-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/core/vendor/phpspec/prophecy/README.md b/core/vendor/phpspec/prophecy/README.md
deleted file mode 100644
index 639ffd0..0000000
--- a/core/vendor/phpspec/prophecy/README.md
+++ /dev/null
@@ -1,389 +0,0 @@
-# Prophecy
-
-[![Build Status](https://travis-ci.org/phpspec/prophecy.svg?branch=master)](https://travis-ci.org/phpspec/prophecy)
-
-Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking
-framework. Though initially it was created to fulfil phpspec2 needs, it is flexible
-enough to be used inside any testing framework out there with minimal effort.
-
-## A simple example
-
-```php
-<?php
-
-class UserTest extends PHPUnit_Framework_TestCase
-{
-    private $prophet;
-
-    public function testPasswordHashing()
-    {
-        $hasher = $this->prophet->prophesize('App\Security\Hasher');
-        $user   = new App\Entity\User($hasher->reveal());
-
-        $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass');
-
-        $user->setPassword('qwerty');
-
-        $this->assertEquals('hashed_pass', $user->getPassword());
-    }
-
-    protected function setup()
-    {
-        $this->prophet = new \Prophecy\Prophet;
-    }
-
-    protected function tearDown()
-    {
-        $this->prophet->checkPredictions();
-    }
-}
-```
-
-## Installation
-
-### Prerequisites
-
-Prophecy requires PHP 5.3.3 or greater.
-
-### Setup through composer
-
-First, add Prophecy to the list of dependencies inside your `composer.json`:
-
-```json
-{
-    "require-dev": {
-        "phpspec/prophecy": "~1.0"
-    }
-}
-```
-
-Then simply install it with composer:
-
-```bash
-$> composer install --prefer-dist
-```
-
-You can read more about Composer on its [official webpage](http://getcomposer.org).
-
-## How to use it
-
-First of all, in Prophecy every word has a logical meaning, even the name of the library
-itself (Prophecy). When you start feeling that, you'll become very fluid with this
-tool.
-
-For example, Prophecy has been named that way because it concentrates on describing the future
-behavior of objects with very limited knowledge about them. But as with any other prophecy,
-those object prophecies can't create themselves - there should be a Prophet:
-
-```php
-$prophet = new Prophecy\Prophet;
-```
-
-The Prophet creates prophecies by *prophesizing* them:
-
-```php
-$prophecy = $prophet->prophesize();
-```
-
-The result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes,
-that's your specific object prophecy, which describes how your object would behave
-in the near future. But first, you need to specify which object you're talking about,
-right?
-
-```php
-$prophecy->willExtend('stdClass');
-$prophecy->willImplement('SessionHandlerInterface');
-```
-
-There are 2 interesting calls - `willExtend` and `willImplement`. The first one tells
-object prophecy that our object should extend specific class, the second one says that
-it should implement some interface. Obviously, objects in PHP can implement multiple
-interfaces, but extend only one parent class.
-
-### Dummies
-
-Ok, now we have our object prophecy. What can we do with it? First of all, we can get
-our object *dummy* by revealing its prophecy:
-
-```php
-$dummy = $prophecy->reveal();
-```
-
-The `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend
-and/or implement preset classes/interfaces by overriding all their public methods. The key
-point about dummies is that they do not hold any logic - they just do nothing. Any method
-of the dummy will always return `null` and the dummy will never throw any exceptions.
-Dummy is your friend if you don't care about the actual behavior of this double and just need
-a token object to satisfy a method typehint.
-
-You need to understand one thing - a dummy is not a prophecy. Your object prophecy is still
-assigned to `$prophecy` variable and in order to manipulate with your expectations, you
-should work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your
-prophecy.
-
-### Stubs
-
-Ok, now we know how to create basic prophecies and reveal dummies from them. That's
-awesome if we don't care about our _doubles_ (objects that reflect originals)
-interactions. If we do, we need to use *stubs* or *mocks*.
-
-A stub is an object double, which doesn't have any expectations about the object behavior,
-but when put in specific environment, behaves in specific way. Ok, I know, it's cryptic,
-but bear with me for a minute. Simply put, a stub is a dummy, which depending on the called
-method signature does different things (has logic). To create stubs in Prophecy:
-
-```php
-$prophecy->read('123')->willReturn('value');
-```
-
-Oh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this
-call returned us a new object instance of class `MethodProphecy`. Yep, that's a specific
-method with arguments prophecy. Method prophecies give you the ability to create method
-promises or predictions. We'll talk about method predictions later in the _Mocks_ section.
-
-#### Promises
-
-Promises are logical blocks, that represent your fictional methods in prophecy terms
-and they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method.
-As a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple
-shortcut to:
-
-```php
-$prophecy->read('123')->will(new Prophecy\Promise\ReturnPromise(array('value')));
-```
-
-This promise will cause any call to our double's `read()` method with exactly one
-argument - `'123'` to always return `'value'`. But that's only for this
-promise, there's plenty others you can use:
-
-- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call
-- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call
-- `ThrowPromise` or `->willThrow` - causes the method to throw specific exception
-- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic
-
-Keep in mind, that you can always add even more promises by implementing
-`Prophecy\Promise\PromiseInterface`.
-
-#### Method prophecies idempotency
-
-Prophecy enforces same method prophecies and, as a consequence, same promises and
-predictions for the same method calls with the same arguments. This means:
-
-```php
-$methodProphecy1 = $prophecy->read('123');
-$methodProphecy2 = $prophecy->read('123');
-$methodProphecy3 = $prophecy->read('321');
-
-$methodProphecy1 === $methodProphecy2;
-$methodProphecy1 !== $methodProphecy3;
-```
-
-That's interesting, right? Now you might ask me how would you define more complex
-behaviors where some method call changes behavior of others. In PHPUnit or Mockery
-you do that by predicting how many times your method will be called. In Prophecy,
-you'll use promises for that:
-
-```php
-$user->getName()->willReturn(null);
-
-// For PHP 5.4
-$user->setName('everzet')->will(function () {
-    $this->getName()->willReturn('everzet');
-});
-
-// For PHP 5.3
-$user->setName('everzet')->will(function ($args, $user) {
-    $user->getName()->willReturn('everzet');
-});
-
-// Or
-$user->setName('everzet')->will(function ($args) use ($user) {
-    $user->getName()->willReturn('everzet');
-});
-```
-
-And now it doesn't matter how many times or in which order your methods are called.
-What matters is their behaviors and how well you faked it.
-
-#### Arguments wildcarding
-
-The previous example is awesome (at least I hope it is for you), but that's not
-optimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better
-way? In fact there is, but it involves understanding what this `'everzet'`
-actually is.
-
-You see, even if method arguments used during method prophecy creation look
-like simple method arguments, in reality they are not. They are argument token
-wildcards.  As a matter of fact, `->setName('everzet')` looks like a simple call just
-because Prophecy automatically transforms it under the hood into:
-
-```php
-$user->setName(new Prophecy\Argument\Token\ExactValueToken('everzet'));
-```
-
-Those argument tokens are simple PHP classes, that implement
-`Prophecy\Argument\Token\TokenInterface` and tell Prophecy how to compare real arguments
-with your expectations. And yes, those classnames are damn big. That's why there's a
-shortcut class `Prophecy\Argument`, which you can use to create tokens like that:
-
-```php
-use Prophecy\Argument;
-
-$user->setName(Argument::exact('everzet'));
-```
-
-`ExactValueToken` is not very useful in our case as it forced us to hardcode the username.
-That's why Prophecy comes bundled with a bunch of other tokens:
-
-- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value
-- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value
-- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or
-  classname
-- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns
-  a specific value
-- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback
-- `AnyValueToken` or `Argument::any()` - matches any argument
-- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature
-
-And you can add even more by implementing `TokenInterface` with your own custom classes.
-
-So, let's refactor our initial `{set,get}Name()` logic with argument tokens:
-
-```php
-use Prophecy\Argument;
-
-$user->getName()->willReturn(null);
-
-// For PHP 5.4
-$user->setName(Argument::type('string'))->will(function ($args) {
-    $this->getName()->willReturn($args[0]);
-});
-
-// For PHP 5.3
-$user->setName(Argument::type('string'))->will(function ($args, $user) {
-    $user->getName()->willReturn($args[0]);
-});
-
-// Or
-$user->setName(Argument::type('string'))->will(function ($args) use ($user) {
-    $user->getName()->willReturn($args[0]);
-});
-```
-
-That's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it.
-We've just described how our stub object should behave, even though the original object could have
-no behavior whatsoever.
-
-One last bit about arguments now. You might ask, what happens in case of:
-
-```php
-use Prophecy\Argument;
-
-$user->getName()->willReturn(null);
-
-// For PHP 5.4
-$user->setName(Argument::type('string'))->will(function ($args) {
-    $this->getName()->willReturn($args[0]);
-});
-
-// For PHP 5.3
-$user->setName(Argument::type('string'))->will(function ($args, $user) {
-    $user->getName()->willReturn($args[0]);
-});
-
-// Or
-$user->setName(Argument::type('string'))->will(function ($args) use ($user) {
-    $user->getName()->willReturn($args[0]);
-});
-
-$user->setName(Argument::any())->will(function () {
-});
-```
-
-Nothing. Your stub will continue behaving the way it did before. That's because of how
-arguments wildcarding works. Every argument token type has a different score level, which
-wildcard then uses to calculate the final arguments match score and use the method prophecy
-promise that has the highest score. In this case, `Argument::type()` in case of success
-scores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first
-`setName()` method prophecy and its promise. The simple rule of thumb - more precise token
-always wins.
-
-#### Getting stub objects
-
-Ok, now we know how to define our prophecy method promises, let's get our stub from
-it:
-
-```php
-$stub = $prophecy->reveal();
-```
-
-As you might see, the only difference between how we get dummies and stubs is that with
-stubs we describe every object conversation instead of just agreeing with `null` returns
-(object being *dummy*). As a matter of fact, after you define your first promise
-(method call), Prophecy will force you to define all the communications - it throws
-the `UnexpectedCallException` for any call you didn't describe with object prophecy before
-calling it on a stub.
-
-### Mocks
-
-Now we know how to define doubles without behavior (dummies) and doubles with behavior, but
-no expectations (stubs). What's left is doubles for which we have some expectations. These
-are called mocks and in Prophecy they look almost exactly the same as stubs, except that
-they define *predictions* instead of *promises* on method prophecies:
-
-```php
-$entityManager->flush()->shouldBeCalled();
-```
-
-#### Predictions
-
-The `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy.
-Predictions are a delayed behavior check for your prophecies. You see, during the entire lifetime
-of your doubles, Prophecy records every single call you're making against it inside your
-code. After that, Prophecy can use this collected information to check if it matches defined
-predictions. You can assign predictions to method prophecies using the
-`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact,
-the `shouldBeCalled()` method we used earlier is just a shortcut to:
-
-```php
-$entityManager->flush()->should(new Prophecy\Prediction\CallPrediction());
-```
-
-It checks if your method of interest (that matches both the method name and the arguments wildcard)
-was called 1 or more times. If the prediction failed then it throws an exception. When does this
-check happen? Whenever you call `checkPredictions()` on the main Prophet object:
-
-```php
-$prophet->checkPredictions();
-```
-
-In PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions
-are defined, it would do nothing. So it won't harm to call it after every test.
-
-There are plenty more predictions you can play with:
-
-- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times
-- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called
-- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called
-  `$count` times
-- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback
-
-Of course, you can always create your own custom prediction any time by implementing
-`PredictionInterface`.
-
-### Spies
-
-The last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous
-section, Prophecy records every call made during the double's entire lifetime. This means
-you don't need to record predictions in order to check them. You can also do it
-manually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method:
-
-```php
-$em = $prophet->prophesize('Doctrine\ORM\EntityManager');
-
-$controller->createUser($em->reveal());
-
-$em->flush()->shouldHaveBeenCalled();
-```
-
-Such manipulation with doubles is called spying. And with Prophecy it just works.
diff --git a/core/vendor/phpspec/prophecy/composer.json b/core/vendor/phpspec/prophecy/composer.json
deleted file mode 100644
index 654aaad..0000000
--- a/core/vendor/phpspec/prophecy/composer.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "name":         "phpspec/prophecy",
-    "description":  "Highly opinionated mocking framework for PHP 5.3+",
-    "keywords":     ["Mock", "Stub", "Dummy", "Double", "Fake", "Spy"],
-    "homepage":     "https://github.com/phpspec/prophecy",
-    "type":         "library",
-    "license":      "MIT",
-    "authors":      [
-        {
-            "name":      "Konstantin Kudryashov",
-            "email":     "ever.zet@gmail.com",
-            "homepage":  "http://everzet.com"
-        },
-        {
-            "name":      "Marcello Duarte",
-            "email":     "marcello.duarte@gmail.com"
-        }
-    ],
-    "require": {
-        "phpdocumentor/reflection-docblock": "~2.0",
-        "sebastian/comparator":              "~1.1",
-        "doctrine/instantiator":             "^1.0.2"
-    },
-
-    "require-dev": {
-        "phpspec/phpspec": "~2.0"
-    },
-
-    "autoload": {
-        "psr-0": {
-            "Prophecy\\": "src/"
-        }
-    },
-
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.4.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php
deleted file mode 100644
index d96318e..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/ArgumentsWildcardSpec.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument\Token\TokenInterface;
-
-class ArgumentsWildcardSpec extends ObjectBehavior
-{
-    /**
-     * @param \stdClass $object
-     */
-    function it_wraps_non_token_arguments_into_ExactValueToken($object)
-    {
-        $this->beConstructedWith(array(42, 'zet', $object));
-
-        $class = get_class($object->getWrappedObject());
-        $hash  = spl_object_hash($object->getWrappedObject());
-
-        $this->__toString()->shouldReturn("exact(42), exact(\"zet\"), exact($class:$hash Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n))");
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_generates_string_representation_from_all_tokens_imploded($token1, $token2, $token3)
-    {
-        $token1->__toString()->willReturn('token_1');
-        $token2->__toString()->willReturn('token_2');
-        $token3->__toString()->willReturn('token_3');
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->__toString()->shouldReturn('token_1, token_2, token_3');
-    }
-
-    function it_exposes_list_of_tokens(TokenInterface $token)
-    {
-        $this->beConstructedWith(array($token));
-
-        $this->getTokens()->shouldReturn(array($token));
-    }
-
-    function it_returns_score_of_1_if_there_are_no_tokens_and_arguments()
-    {
-        $this->beConstructedWith(array());
-
-        $this->scoreArguments(array())->shouldReturn(1);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_should_return_match_score_based_on_all_tokens_score($token1, $token2, $token3)
-    {
-        $token1->scoreArgument('one')->willReturn(3);
-        $token1->isLast()->willReturn(false);
-        $token2->scoreArgument(2)->willReturn(5);
-        $token2->isLast()->willReturn(false);
-        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
-        $token3->isLast()->willReturn(false);
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->scoreArguments(array('one', 2, $obj))->shouldReturn(18);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_returns_false_if_there_is_less_arguments_than_tokens($token1, $token2, $token3)
-    {
-        $token1->scoreArgument('one')->willReturn(3);
-        $token1->isLast()->willReturn(false);
-        $token2->scoreArgument(2)->willReturn(5);
-        $token2->isLast()->willReturn(false);
-        $token3->scoreArgument(null)->willReturn(false);
-        $token3->isLast()->willReturn(false);
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->scoreArguments(array('one', 2))->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_returns_false_if_there_is_less_tokens_than_arguments($token1, $token2, $token3)
-    {
-        $token1->scoreArgument('one')->willReturn(3);
-        $token1->isLast()->willReturn(false);
-        $token2->scoreArgument(2)->willReturn(5);
-        $token2->isLast()->willReturn(false);
-        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
-        $token3->isLast()->willReturn(false);
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->scoreArguments(array('one', 2, $obj, 4))->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_should_return_false_if_one_of_the_tokens_returns_false($token1, $token2, $token3)
-    {
-        $token1->scoreArgument('one')->willReturn(3);
-        $token1->isLast()->willReturn(false);
-        $token2->scoreArgument(2)->willReturn(false);
-        $token2->isLast()->willReturn(false);
-        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
-        $token3->isLast()->willReturn(false);
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->scoreArguments(array('one', 2, $obj))->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_should_calculate_score_until_last_token($token1, $token2, $token3)
-    {
-        $token1->scoreArgument('one')->willReturn(3);
-        $token1->isLast()->willReturn(false);
-
-        $token2->scoreArgument(2)->willReturn(7);
-        $token2->isLast()->willReturn(true);
-
-        $token3->scoreArgument($obj = new \stdClass())->willReturn(10);
-        $token3->isLast()->willReturn(false);
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->scoreArguments(array('one', 2, $obj))->shouldReturn(10);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php
deleted file mode 100644
index a43e923..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValueTokenSpec.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class AnyValueTokenSpec extends ObjectBehavior
-{
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function its_string_representation_is_star()
-    {
-        $this->__toString()->shouldReturn('*');
-    }
-
-    function it_scores_any_argument_as_3()
-    {
-        $this->scoreArgument(42)->shouldReturn(3);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php
deleted file mode 100644
index c29076f..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/AnyValuesTokenSpec.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class AnyValuesTokenSpec extends ObjectBehavior
-{
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_last()
-    {
-        $this->shouldBeLast();
-    }
-
-    function its_string_representation_is_star_with_followup()
-    {
-        $this->__toString()->shouldReturn('* [, ...]');
-    }
-
-    function it_scores_any_argument_as_2()
-    {
-        $this->scoreArgument(42)->shouldReturn(2);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php
deleted file mode 100644
index 5d040d5..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayCountTokenSpec.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class ArrayCountTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith(2);
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_scores_6_if_argument_array_has_proper_count()
-    {
-        $this->scoreArgument(array(1,2))->shouldReturn(6);
-    }
-
-    /**
-     * @param \Countable $countable
-     */
-    function it_scores_6_if_argument_countable_object_has_proper_count($countable)
-    {
-        $countable->count()->willReturn(2);
-        $this->scoreArgument($countable)->shouldReturn(6);
-    }
-
-    function it_does_not_score_if_argument_is_neither_array_nor_countable_object()
-    {
-        $this->scoreArgument('string')->shouldBe(false);
-        $this->scoreArgument(5)->shouldBe(false);
-        $this->scoreArgument(new \stdClass)->shouldBe(false);
-    }
-
-    function it_does_not_score_if_argument_array_has_wrong_count()
-    {
-        $this->scoreArgument(array(1))->shouldReturn(false);
-    }
-
-    /**
-     * @param \Countable $countable
-     */
-    function it_does_not_score_if_argument_countable_object_has_wrong_count($countable)
-    {
-        $countable->count()->willReturn(3);
-        $this->scoreArgument($countable)->shouldReturn(false);
-    }
-
-    function it_has_simple_string_representation()
-    {
-        $this->__toString()->shouldBe('count(2)');
-    }
-
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php
deleted file mode 100644
index 8ff0f15..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEntryTokenSpec.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-use Prophecy\Exception\InvalidArgumentException;
-
-class ArrayEntryTokenSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $key
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     */
-    function let($key, $value)
-    {
-        $this->beConstructedWith($key, $value);
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_holds_key_and_value($key, $value)
-    {
-        $this->getKey()->shouldBe($key);
-        $this->getValue()->shouldBe($value);
-    }
-
-    function its_string_representation_tells_that_its_an_array_containing_the_key_value_pair($key, $value)
-    {
-        $key->__toString()->willReturn('key');
-        $value->__toString()->willReturn('value');
-        $this->__toString()->shouldBe('[..., key => value, ...]');
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $key
-     * @param \stdClass                               $object
-     */
-    function it_wraps_non_token_value_into_ExactValueToken($key, $object)
-    {
-        $this->beConstructedWith($key, $object);
-        $this->getValue()->shouldHaveType('\Prophecy\Argument\Token\ExactValueToken');
-    }
-
-    /**
-     * @param \stdClass                               $object
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     */
-    function it_wraps_non_token_key_into_ExactValueToken($object, $value)
-    {
-        $this->beConstructedWith($object, $value);
-        $this->getKey()->shouldHaveType('\Prophecy\Argument\Token\ExactValueToken');
-    }
-
-    function it_scores_array_half_of_combined_scores_from_key_and_value_tokens($key, $value)
-    {
-        $key->scoreArgument('key')->willReturn(4);
-        $value->scoreArgument('value')->willReturn(6);
-        $this->scoreArgument(array('key'=>'value'))->shouldBe(5);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $key
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     * @param \Iterator                               $object
-     */
-    function it_scores_traversable_object_half_of_combined_scores_from_key_and_value_tokens($key, $value, $object)
-    {
-        $object->current()->will(function () use ($object) {
-            $object->valid()->willReturn(false);
-
-            return 'value';
-        });
-        $object->key()->willReturn('key');
-        $object->rewind()->willReturn(null);
-        $object->next()->willReturn(null);
-        $object->valid()->willReturn(true);
-        $key->scoreArgument('key')->willReturn(6);
-        $value->scoreArgument('value')->willReturn(2);
-        $this->scoreArgument($object)->shouldBe(4);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\AnyValuesToken $key
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     * @param \ArrayAccess                            $object
-     */
-    function it_throws_exception_during_scoring_of_array_accessible_object_if_key_is_not_ExactValueToken($key, $value, $object)
-    {
-        $key->__toString()->willReturn('any_token');
-        $this->beConstructedWith($key,$value);
-        $errorMessage = 'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL.
-                        'But you used `any_token`.';
-        $this->shouldThrow(new InvalidArgumentException($errorMessage))->duringScoreArgument($object);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\ExactValueToken $key
-     * @param \Prophecy\Argument\Token\TokenInterface  $value
-     * @param \ArrayAccess                             $object
-     */
-    function it_scores_array_accessible_object_half_of_combined_scores_from_key_and_value_tokens($key, $value, $object)
-    {
-        $object->offsetExists('key')->willReturn(true);
-        $object->offsetGet('key')->willReturn('value');
-        $key->getValue()->willReturn('key');
-        $key->scoreArgument('key')->willReturn(3);
-        $value->scoreArgument('value')->willReturn(1);
-        $this->scoreArgument($object)->shouldBe(2);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\AnyValuesToken $key
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     * @param \ArrayIterator                          $object
-     */
-    function it_accepts_any_key_token_type_to_score_object_that_is_both_traversable_and_array_accessible($key, $value, $object)
-    {
-        $this->beConstructedWith($key, $value);
-        $object->current()->will(function () use ($object) {
-            $object->valid()->willReturn(false);
-
-            return 'value';
-        });
-        $object->key()->willReturn('key');
-        $object->rewind()->willReturn(null);
-        $object->next()->willReturn(null);
-        $object->valid()->willReturn(true);
-        $this->shouldNotThrow(new InvalidArgumentException)->duringScoreArgument($object);
-    }
-
-    function it_does_not_score_if_argument_is_neither_array_nor_traversable_nor_array_accessible()
-    {
-        $this->scoreArgument('string')->shouldBe(false);
-        $this->scoreArgument(new \stdClass)->shouldBe(false);
-    }
-
-    function it_does_not_score_empty_array()
-    {
-        $this->scoreArgument(array())->shouldBe(false);
-    }
-
-    function it_does_not_score_array_if_key_and_value_tokens_do_not_score_same_entry($key, $value)
-    {
-        $argument = array(1 => 'foo', 2 => 'bar');
-        $key->scoreArgument(1)->willReturn(true);
-        $key->scoreArgument(2)->willReturn(false);
-        $value->scoreArgument('foo')->willReturn(false);
-        $value->scoreArgument('bar')->willReturn(true);
-        $this->scoreArgument($argument)->shouldBe(false);
-    }
-
-    /**
-     * @param \Iterator $object
-     */
-    function it_does_not_score_traversable_object_without_entries($object)
-    {
-        $object->rewind()->willReturn(null);
-        $object->next()->willReturn(null);
-        $object->valid()->willReturn(false);
-        $this->scoreArgument($object)->shouldBe(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $key
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     * @param \Iterator                               $object
-     */
-    function it_does_not_score_traversable_object_if_key_and_value_tokens_do_not_score_same_entry($key, $value, $object)
-    {
-        $object->current()->willReturn('foo');
-        $object->current()->will(function () use ($object) {
-            $object->valid()->willReturn(false);
-
-            return 'bar';
-        });
-        $object->key()->willReturn(1);
-        $object->key()->willReturn(2);
-        $object->rewind()->willReturn(null);
-        $object->next()->willReturn(null);
-        $object->valid()->willReturn(true);
-        $key->scoreArgument(1)->willReturn(true);
-        $key->scoreArgument(2)->willReturn(false);
-        $value->scoreArgument('foo')->willReturn(false);
-        $value->scoreArgument('bar')->willReturn(true);
-        $this->scoreArgument($object)->shouldBe(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\ExactValueToken $key
-     * @param \ArrayAccess                             $object
-     */
-    function it_does_not_score_array_accessible_object_if_it_has_no_offset_with_key_token_value($key, $object)
-    {
-        $object->offsetExists('key')->willReturn(false);
-        $key->getValue()->willReturn('key');
-        $this->scoreArgument($object)->shouldBe(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\ExactValueToken $key
-     * @param \Prophecy\Argument\Token\TokenInterface  $value
-     * @param \ArrayAccess                             $object
-     */
-    function it_does_not_score_array_accessible_object_if_key_and_value_tokens_do_not_score_same_entry($key, $value, $object)
-    {
-        $object->offsetExists('key')->willReturn(true);
-        $object->offsetGet('key')->willReturn('value');
-        $key->getValue()->willReturn('key');
-        $value->scoreArgument('value')->willReturn(false);
-        $key->scoreArgument('key')->willReturn(true);
-        $this->scoreArgument($object)->shouldBe(false);
-    }
-
-    function its_score_is_capped_at_8($key, $value)
-    {
-        $key->scoreArgument('key')->willReturn(10);
-        $value->scoreArgument('value')->willReturn(10);
-        $this->scoreArgument(array('key'=>'value'))->shouldBe(8);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php
deleted file mode 100644
index 8662e7d..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ArrayEveryEntryTokenSpec.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class ArrayEveryEntryTokenSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     */
-    function let($value)
-    {
-        $this->beConstructedWith($value);
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_holds_value($value)
-    {
-        $this->getValue()->shouldBe($value);
-    }
-
-    function its_string_representation_tells_that_its_an_array_containing_only_value($value)
-    {
-        $value->__toString()->willReturn('value');
-        $this->__toString()->shouldBe('[value, ..., value]');
-    }
-
-    /**
-     * @param \stdClass $stdClass
-     */
-    function it_wraps_non_token_value_into_ExactValueToken($stdClass)
-    {
-        $this->beConstructedWith($stdClass);
-        $this->getValue()->shouldHaveType('Prophecy\Argument\Token\ExactValueToken');
-    }
-
-    function it_does_not_score_if_argument_is_neither_array_nor_traversable()
-    {
-        $this->scoreArgument('string')->shouldBe(false);
-        $this->scoreArgument(new \stdClass)->shouldBe(false);
-    }
-
-    function it_does_not_score_empty_array()
-    {
-        $this->scoreArgument(array())->shouldBe(false);
-    }
-
-    /**
-     * @param \Iterator $object
-     */
-    function it_does_not_score_traversable_object_without_entries($object)
-    {
-        $object->rewind()->willReturn(null);
-        $object->next()->willReturn(null);
-        $object->valid()->willReturn(false);
-        $this->scoreArgument($object)->shouldBe(false);
-    }
-
-    function it_scores_avg_of_scores_from_value_tokens($value)
-    {
-        $value->scoreArgument('value1')->willReturn(6);
-        $value->scoreArgument('value2')->willReturn(3);
-        $this->scoreArgument(array('value1', 'value2'))->shouldBe(4.5);
-    }
-
-    function it_scores_false_if_entry_scores_false($value)
-    {
-        $value->scoreArgument('value1')->willReturn(6);
-        $value->scoreArgument('value2')->willReturn(false);
-        $this->scoreArgument(array('value1', 'value2'))->shouldBe(false);
-    }
-
-    function it_does_not_score_array_keys($value)
-    {
-        $value->scoreArgument('value')->willReturn(6);
-        $value->scoreArgument('key')->shouldNotBeCalled(0);
-        $this->scoreArgument(array('key' => 'value'))->shouldBe(6);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $value
-     * @param \Iterator                               $object
-     */
-    function it_scores_traversable_object_from_value_token($value, $object)
-    {
-        $object->current()->will(function ($args, $object) {
-            $object->valid()->willReturn(false);
-
-            return 'value';
-        });
-        $object->key()->willReturn('key');
-        $object->rewind()->willReturn(null);
-        $object->next()->willReturn(null);
-        $object->valid()->willReturn(true);
-        $value->scoreArgument('value')->willReturn(2);
-        $this->scoreArgument($object)->shouldBe(2);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php
deleted file mode 100644
index 4395bf0..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/CallbackTokenSpec.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class CallbackTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('get_class');
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_scores_7_if_argument_matches_callback()
-    {
-        $this->beConstructedWith(function ($argument) { return 2 === $argument; });
-
-        $this->scoreArgument(2)->shouldReturn(7);
-    }
-
-    function it_does_not_scores_if_argument_does_not_match_callback()
-    {
-        $this->beConstructedWith(function ($argument) { return 2 === $argument; });
-
-        $this->scoreArgument(5)->shouldReturn(false);
-    }
-
-    function its_string_representation_should_tell_that_its_callback()
-    {
-        $this->__toString()->shouldReturn('callback()');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php
deleted file mode 100644
index 9e46e02..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ExactValueTokenSpec.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class ExactValueTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith(42);
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_holds_value()
-    {
-        $this->getValue()->shouldReturn(42);
-    }
-
-    function it_scores_10_if_value_is_equal_to_argument()
-    {
-        $this->scoreArgument(42)->shouldReturn(10);
-        $this->scoreArgument('42')->shouldReturn(10);
-    }
-
-    function it_scores_10_if_value_is_an_object_and_equal_to_argument()
-    {
-        $value = new \DateTime();
-        $value2 = clone $value;
-
-        $this->beConstructedWith($value);
-        $this->scoreArgument($value2)->shouldReturn(10);
-    }
-
-    function it_does_not_scores_if_value_is_not_equal_to_argument()
-    {
-        $this->scoreArgument(50)->shouldReturn(false);
-        $this->scoreArgument(new \stdClass())->shouldReturn(false);
-    }
-
-    function it_does_not_scores_if_value_an_object_and_is_not_equal_to_argument()
-    {
-        $value = new ExactValueTokenFixtureB('ABC');
-        $value2 = new ExactValueTokenFixtureB('CBA');
-
-        $this->beConstructedWith($value);
-        $this->scoreArgument($value2)->shouldReturn(false);
-    }
-
-    function it_does_not_scores_if_value_type_and_is_not_equal_to_argument()
-    {
-        $this->beConstructedWith(false);
-        $this->scoreArgument(0)->shouldReturn(false);
-    }
-
-    function it_generates_proper_string_representation_for_integer()
-    {
-        $this->beConstructedWith(42);
-        $this->__toString()->shouldReturn('exact(42)');
-    }
-
-    function it_generates_proper_string_representation_for_string()
-    {
-        $this->beConstructedWith('some string');
-        $this->__toString()->shouldReturn('exact("some string")');
-    }
-
-    function it_generates_single_line_representation_for_multiline_string()
-    {
-        $this->beConstructedWith("some\nstring");
-        $this->__toString()->shouldReturn('exact("some\\nstring")');
-    }
-
-    function it_generates_proper_string_representation_for_double()
-    {
-        $this->beConstructedWith(42.3);
-        $this->__toString()->shouldReturn('exact(42.3)');
-    }
-
-    function it_generates_proper_string_representation_for_boolean_true()
-    {
-        $this->beConstructedWith(true);
-        $this->__toString()->shouldReturn('exact(true)');
-    }
-
-    function it_generates_proper_string_representation_for_boolean_false()
-    {
-        $this->beConstructedWith(false);
-        $this->__toString()->shouldReturn('exact(false)');
-    }
-
-    function it_generates_proper_string_representation_for_null()
-    {
-        $this->beConstructedWith(null);
-        $this->__toString()->shouldReturn('exact(null)');
-    }
-
-    function it_generates_proper_string_representation_for_empty_array()
-    {
-        $this->beConstructedWith(array());
-        $this->__toString()->shouldReturn('exact([])');
-    }
-
-    function it_generates_proper_string_representation_for_array()
-    {
-        $this->beConstructedWith(array('zet', 42));
-        $this->__toString()->shouldReturn('exact(["zet", 42])');
-    }
-
-    function it_generates_proper_string_representation_for_resource()
-    {
-        $resource = fopen(__FILE__, 'r');
-        $this->beConstructedWith($resource);
-        $this->__toString()->shouldReturn('exact(stream:'.$resource.')');
-    }
-
-    /**
-     * @param \stdClass $object
-     */
-    function it_generates_proper_string_representation_for_object($object)
-    {
-        $objHash = sprintf('%s:%s',
-            get_class($object->getWrappedObject()),
-            spl_object_hash($object->getWrappedObject())
-        );
-
-        $this->beConstructedWith($object);
-        $this->__toString()->shouldReturn("exact($objHash Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n))");
-    }
-}
-
-class ExactValueTokenFixtureA
-{
-    public $errors;
-}
-
-class ExactValueTokenFixtureB extends ExactValueTokenFixtureA
-{
-    public $errors;
-    public $value = null;
-
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php
deleted file mode 100644
index 00c3a21..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/IdenticalValueTokenSpec.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class IdenticalValueTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith(42);
-    }
-
-    function it_is_initializable()
-    {
-        $this->shouldHaveType('Prophecy\Argument\Token\IdenticalValueToken');
-    }
-
-    function it_scores_11_if_string_value_is_identical_to_argument()
-    {
-        $this->beConstructedWith('foo');
-        $this->scoreArgument('foo')->shouldReturn(11);
-    }
-
-    function it_scores_11_if_boolean_value_is_identical_to_argument()
-    {
-        $this->beConstructedWith(false);
-        $this->scoreArgument(false)->shouldReturn(11);
-    }
-
-    function it_scores_11_if_integer_value_is_identical_to_argument()
-    {
-        $this->beConstructedWith(31);
-        $this->scoreArgument(31)->shouldReturn(11);
-    }
-
-    function it_scores_11_if_float_value_is_identical_to_argument()
-    {
-        $this->beConstructedWith(31.12);
-        $this->scoreArgument(31.12)->shouldReturn(11);
-    }
-
-    function it_scores_11_if_array_value_is_identical_to_argument()
-    {
-        $this->beConstructedWith(array('foo' => 'bar'));
-        $this->scoreArgument(array('foo' => 'bar'))->shouldReturn(11);
-    }
-
-    function it_scores_11_if_object_value_is_identical_to_argument()
-    {
-        $object = new \stdClass();
-
-        $this->beConstructedWith($object);
-        $this->scoreArgument($object)->shouldReturn(11);
-    }
-
-    function it_scores_false_if_value_is_not_identical_to_argument()
-    {
-        $this->beConstructedWith(new \stdClass());
-        $this->scoreArgument('foo')->shouldReturn(false);
-    }
-
-    function it_scores_false_if_object_value_is_not_the_same_instance_than_argument()
-    {
-        $this->beConstructedWith(new \stdClass());
-        $this->scoreArgument(new \stdClass())->shouldReturn(false);
-    }
-
-    function it_scores_false_if_integer_value_is_not_identical_to_boolean_argument()
-    {
-        $this->beConstructedWith(1);
-        $this->scoreArgument(true)->shouldReturn(false);
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_generates_proper_string_representation_for_integer()
-    {
-        $this->beConstructedWith(42);
-        $this->__toString()->shouldReturn('identical(42)');
-    }
-
-    function it_generates_proper_string_representation_for_string()
-    {
-        $this->beConstructedWith('some string');
-        $this->__toString()->shouldReturn('identical("some string")');
-    }
-
-    function it_generates_single_line_representation_for_multiline_string()
-    {
-        $this->beConstructedWith("some\nstring");
-        $this->__toString()->shouldReturn('identical("some\\nstring")');
-    }
-
-    function it_generates_proper_string_representation_for_double()
-    {
-        $this->beConstructedWith(42.3);
-        $this->__toString()->shouldReturn('identical(42.3)');
-    }
-
-    function it_generates_proper_string_representation_for_boolean_true()
-    {
-        $this->beConstructedWith(true);
-        $this->__toString()->shouldReturn('identical(true)');
-    }
-
-    function it_generates_proper_string_representation_for_boolean_false()
-    {
-        $this->beConstructedWith(false);
-        $this->__toString()->shouldReturn('identical(false)');
-    }
-
-    function it_generates_proper_string_representation_for_null()
-    {
-        $this->beConstructedWith(null);
-        $this->__toString()->shouldReturn('identical(null)');
-    }
-
-    function it_generates_proper_string_representation_for_empty_array()
-    {
-        $this->beConstructedWith(array());
-        $this->__toString()->shouldReturn('identical([])');
-    }
-
-    function it_generates_proper_string_representation_for_array()
-    {
-        $this->beConstructedWith(array('zet', 42));
-        $this->__toString()->shouldReturn('identical(["zet", 42])');
-    }
-
-    function it_generates_proper_string_representation_for_resource()
-    {
-        $resource = fopen(__FILE__, 'r');
-        $this->beConstructedWith($resource);
-        $this->__toString()->shouldReturn('identical(stream:'.$resource.')');
-    }
-
-    function it_generates_proper_string_representation_for_object($object)
-    {
-        $objHash = sprintf('%s:%s',
-            get_class($object->getWrappedObject()),
-            spl_object_hash($object->getWrappedObject())
-        );
-
-        $this->beConstructedWith($object);
-        $this->__toString()->shouldReturn("identical($objHash Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n))");
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php
deleted file mode 100644
index bb5e384..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalAndTokenSpec.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class LogicalAndTokenSpec extends ObjectBehavior
-{
-    function it_implements_TokenInterface()
-    {
-        $this->beConstructedWith(array());
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->beConstructedWith(array());
-        $this->shouldNotBeLast();
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     * @param \Prophecy\Argument\Token\TokenInterface $token3
-     */
-    function it_generates_string_representation_from_all_tokens_imploded($token1, $token2, $token3)
-    {
-        $token1->__toString()->willReturn('token_1');
-        $token2->__toString()->willReturn('token_2');
-        $token3->__toString()->willReturn('token_3');
-
-        $this->beConstructedWith(array($token1, $token2, $token3));
-        $this->__toString()->shouldReturn('bool(token_1 AND token_2 AND token_3)');
-    }
-
-    function it_wraps_non_token_arguments_into_ExactValueToken()
-    {
-        $this->beConstructedWith(array(15, '1985'));
-        $this->__toString()->shouldReturn("bool(exact(15) AND exact(\"1985\"))");
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     */
-    function it_scores_the_maximum_score_from_all_scores_returned_by_tokens($token1, $token2)
-    {
-        $token1->scoreArgument(1)->willReturn(10);
-        $token2->scoreArgument(1)->willReturn(5);
-        $this->beConstructedWith(array($token1, $token2));
-        $this->scoreArgument(1)->shouldReturn(10);
-    }
-
-    function it_does_not_score_if_there_are_no_arguments_or_tokens()
-    {
-        $this->beConstructedWith(array());
-        $this->scoreArgument('any')->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token1
-     * @param \Prophecy\Argument\Token\TokenInterface $token2
-     */
-    function it_does_not_score_if_either_of_tokens_does_not_score($token1, $token2)
-    {
-        $token1->scoreArgument(1)->willReturn(10);
-        $token1->scoreArgument(2)->willReturn(false);
-
-        $token2->scoreArgument(1)->willReturn(false);
-        $token2->scoreArgument(2)->willReturn(10);
-
-        $this->beConstructedWith(array($token1, $token2));
-
-        $this->scoreArgument(1)->shouldReturn(false);
-        $this->scoreArgument(2)->shouldReturn(false);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php
deleted file mode 100644
index 7ce7f3d..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/LogicalNotTokenSpec.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument\Token\TokenInterface;
-
-class LogicalNotTokenSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Argument\Token\TokenInterface $token
-     */
-    function let($token)
-    {
-        $this->beConstructedWith($token);
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_holds_originating_token($token)
-    {
-        $this->getOriginatingToken()->shouldReturn($token);
-    }
-
-    function it_has_simple_string_representation($token)
-    {
-        $token->__toString()->willReturn('value');
-        $this->__toString()->shouldBe('not(value)');
-    }
-
-    function it_wraps_non_token_argument_into_ExactValueToken()
-    {
-        $this->beConstructedWith(5);
-        $token = $this->getOriginatingToken();
-        $token->shouldhaveType('Prophecy\Argument\Token\ExactValueToken');
-        $token->getValue()->shouldBe(5);
-    }
-
-    function it_scores_4_if_preset_token_does_not_match_the_argument($token)
-    {
-        $token->scoreArgument('argument')->willReturn(false);
-        $this->scoreArgument('argument')->shouldBe(4);
-    }
-
-    function it_does_not_score_if_preset_token_matches_argument($token)
-    {
-        $token->scoreArgument('argument')->willReturn(5);
-        $this->scoreArgument('argument')->shouldBe(false);
-    }
-
-    function it_is_last_if_preset_token_is_last($token)
-    {
-        $token->isLast()->willReturn(true);
-        $this->shouldBeLast();
-    }
-
-    function it_is_not_last_if_preset_token_is_not_last($token)
-    {
-        $token->isLast()->willReturn(false);
-        $this->shouldNotBeLast();
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php
deleted file mode 100644
index a783a15..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class ObjectStateTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('getName', 'stdClass');
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    /**
-     * @param \ReflectionClass $reflection
-     */
-    function it_scores_8_if_argument_object_has_specific_method_state($reflection)
-    {
-        $reflection->getName()->willReturn('stdClass');
-
-        $this->scoreArgument($reflection)->shouldReturn(8);
-    }
-
-    /**
-     * @param \stdClass $class
-     */
-    function it_scores_8_if_argument_object_has_specific_property_state($class)
-    {
-        $class->getName = 'stdClass';
-
-        $this->scoreArgument($class)->shouldReturn(8);
-    }
-
-    function it_does_not_score_if_argument_method_state_does_not_match()
-    {
-        $value = new ObjectStateTokenFixtureB('ABC');
-        $value2 = new ObjectStateTokenFixtureB('CBA');
-
-        $this->beConstructedWith('getSelf', $value);
-        $this->scoreArgument($value2)->shouldReturn(false);
-    }
-
-    /**
-     * @param \stdClass $class
-     */
-    function it_does_not_score_if_argument_property_state_does_not_match($class)
-    {
-        $class->getName = 'SplFileInfo';
-
-        $this->scoreArgument($class)->shouldReturn(false);
-    }
-
-    /**
-     * @param \spec\Prophecy\Argument\Token\ObjectStateTokenFixtureA $class
-     */
-    function it_does_not_score_if_argument_object_does_not_have_method_or_property($class)
-    {
-        $this->scoreArgument($class)->shouldReturn(false);
-    }
-
-    function it_does_not_score_if_argument_is_not_object()
-    {
-        $this->scoreArgument(42)->shouldReturn(false);
-    }
-
-    function it_has_simple_string_representation()
-    {
-        $this->__toString()->shouldReturn('state(getName(), "stdClass")');
-    }
-}
-
-class ObjectStateTokenFixtureA
-{
-    public $errors;
-}
-
-class ObjectStateTokenFixtureB extends ObjectStateTokenFixtureA
-{
-    public $errors;
-    public $value = null;
-
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-
-    public function getSelf()
-    {
-        return $this;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php
deleted file mode 100644
index c7fd265..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/StringContainsTokenSpec.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class StringContainsTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('a substring');
-    }
-
-    function it_is_initializable()
-    {
-        $this->shouldHaveType('Prophecy\Argument\Token\StringContainsToken');
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_holds_value()
-    {
-        $this->getValue()->shouldReturn('a substring');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_scores_6_if_the_argument_contains_the_value()
-    {
-        $this->scoreArgument('Argument containing a substring')->shouldReturn(6);
-    }
-
-    function it_does_not_score_if_the_argument_does_not_contain_the_value()
-    {
-        $this->scoreArgument('Argument will not match')->shouldReturn(false);
-    }
-
-    function its_string_representation_shows_substring()
-    {
-        $this->__toString()->shouldReturn('contains("a substring")');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php
deleted file mode 100644
index f9a9507..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/TypeTokenSpec.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Argument\Token;
-
-use PhpSpec\ObjectBehavior;
-
-class TypeTokenSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('integer');
-    }
-
-    function it_implements_TokenInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
-    }
-
-    function it_is_not_last()
-    {
-        $this->shouldNotBeLast();
-    }
-
-    function it_scores_5_if_argument_matches_simple_type()
-    {
-        $this->beConstructedWith('integer');
-
-        $this->scoreArgument(42)->shouldReturn(5);
-    }
-
-    function it_does_not_scores_if_argument_does_not_match_simple_type()
-    {
-        $this->beConstructedWith('integer');
-
-        $this->scoreArgument(42.0)->shouldReturn(false);
-    }
-
-    /**
-     * @param \ReflectionObject $object
-     */
-    function it_scores_5_if_argument_is_an_instance_of_specified_class($object)
-    {
-        $this->beConstructedWith('ReflectionClass');
-
-        $this->scoreArgument($object)->shouldReturn(5);
-    }
-
-    function it_has_simple_string_representation()
-    {
-        $this->__toString()->shouldReturn('type(integer)');
-    }
-
-    function it_scores_5_if_argument_is_an_instance_of_specified_interface(\Prophecy\Argument\Token\TokenInterface $interface)
-    {
-        $this->beConstructedWith('Prophecy\Argument\Token\TokenInterface');
-
-        $this->scoreArgument($interface)->shouldReturn(5);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php
deleted file mode 100644
index 990aa80..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/ArgumentSpec.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-namespace spec\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-
-class ArgumentSpec extends ObjectBehavior
-{
-    function it_has_a_shortcut_for_exact_argument_token()
-    {
-        $token = $this->exact(42);
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ExactValueToken');
-        $token->getValue()->shouldReturn(42);
-    }
-
-    function it_has_a_shortcut_for_any_argument_token()
-    {
-        $token = $this->any();
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\AnyValueToken');
-    }
-
-    function it_has_a_shortcut_for_multiple_arguments_token()
-    {
-        $token = $this->cetera();
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\AnyValuesToken');
-    }
-
-    function it_has_a_shortcut_for_type_token()
-    {
-        $token = $this->type('integer');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\TypeToken');
-    }
-
-    function it_has_a_shortcut_for_callback_token()
-    {
-        $token = $this->that('get_class');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\CallbackToken');
-    }
-
-    function it_has_a_shortcut_for_object_state_token()
-    {
-        $token = $this->which('getName', 'everzet');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ObjectStateToken');
-    }
-
-    function it_has_a_shortcut_for_logical_and_token()
-    {
-        $token = $this->allOf('integer', 5);
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\LogicalAndToken');
-    }
-
-    function it_has_a_shortcut_for_array_count_token()
-    {
-        $token = $this->size(5);
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayCountToken');
-    }
-
-    function it_has_a_shortcut_for_array_entry_token()
-    {
-        $token = $this->withEntry('key', 'value');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEntryToken');
-    }
-
-    function it_has_a_shortcut_for_array_every_entry_token()
-    {
-        $token = $this->withEveryEntry('value');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEveryEntryToken');
-    }
-
-    function it_has_a_shortcut_for_identical_value_token()
-    {
-        $token = $this->is('value');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\IdenticalValueToken');
-    }
-
-    function it_has_a_shortcut_for_array_entry_token_matching_any_key()
-    {
-        $token = $this->containing('value');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEntryToken');
-        $token->getKey()->shouldHaveType('Prophecy\Argument\Token\AnyValueToken');
-    }
-
-    function it_has_a_shortcut_for_array_entry_token_matching_any_value()
-    {
-        $token = $this->withKey('key');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\ArrayEntryToken');
-        $token->getValue()->shouldHaveType('Prophecy\Argument\Token\AnyValueToken');
-    }
-
-    function it_has_a_shortcut_for_logical_not_token()
-    {
-        $token = $this->not('kagux');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\LogicalNotToken');
-    }
-
-    function it_has_a_shortcut_for_string_contains_token()
-    {
-        $token = $this->containingString('string');
-        $token->shouldBeAnInstanceOf('Prophecy\Argument\Token\StringContainsToken');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php
deleted file mode 100644
index e9b91c8..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallCenterSpec.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Call;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Argument\ArgumentsWildcard;
-
-class CallCenterSpec extends ObjectBehavior
-{
-    function let(ObjectProphecy $objectProphecy)
-    {
-    }
-
-    function it_records_calls_made_through_makeCall_method(ObjectProphecy $objectProphecy, ArgumentsWildcard $wildcard)
-    {
-        $wildcard->scoreArguments(array(5, 2, 3))->willReturn(10);
-        $objectProphecy->getMethodProphecies()->willReturn(array());
-
-        $this->makeCall($objectProphecy, 'setValues', array(5, 2, 3));
-
-        $calls = $this->findCalls('setValues', $wildcard);
-        $calls->shouldHaveCount(1);
-
-        $calls[0]->shouldBeAnInstanceOf('Prophecy\Call\Call');
-        $calls[0]->getMethodName()->shouldReturn('setValues');
-        $calls[0]->getArguments()->shouldReturn(array(5, 2, 3));
-        $calls[0]->getReturnValue()->shouldReturn(null);
-    }
-
-    function it_returns_null_for_any_call_through_makeCall_if_no_method_prophecies_added(
-        $objectProphecy
-    )
-    {
-        $objectProphecy->getMethodProphecies()->willReturn(array());
-
-        $this->makeCall($objectProphecy, 'setValues', array(5, 2, 3))->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $method1
-     * @param \Prophecy\Prophecy\MethodProphecy    $method2
-     * @param \Prophecy\Prophecy\MethodProphecy    $method3
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments1
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments2
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments3
-     * @param \Prophecy\Promise\PromiseInterface   $promise
-     */
-    function it_executes_promise_of_method_prophecy_that_matches_signature_passed_to_makeCall(
-        $objectProphecy, $method1, $method2, $method3, $arguments1, $arguments2, $arguments3,
-        $promise
-    )
-    {
-        $method1->getMethodName()->willReturn('getName');
-        $method1->getArgumentsWildcard()->willReturn($arguments1);
-        $arguments1->scoreArguments(array('world', 'everything'))->willReturn(false);
-
-        $method2->getMethodName()->willReturn('setTitle');
-        $method2->getArgumentsWildcard()->willReturn($arguments2);
-        $arguments2->scoreArguments(array('world', 'everything'))->willReturn(false);
-
-        $method3->getMethodName()->willReturn('getName');
-        $method3->getArgumentsWildcard()->willReturn($arguments3);
-        $method3->getPromise()->willReturn($promise);
-        $arguments3->scoreArguments(array('world', 'everything'))->willReturn(200);
-
-        $objectProphecy->getMethodProphecies()->willReturn(array(
-            'method1' => array($method1),
-            'method2' => array($method2, $method3)
-        ));
-        $objectProphecy->getMethodProphecies('getName')->willReturn(array($method1, $method3));
-        $objectProphecy->reveal()->willReturn(new \stdClass());
-
-        $promise->execute(array('world', 'everything'), $objectProphecy->getWrappedObject(), $method3)->willReturn(42);
-
-        $this->makeCall($objectProphecy, 'getName', array('world', 'everything'))->shouldReturn(42);
-
-        $calls = $this->findCalls('getName', $arguments3);
-        $calls->shouldHaveCount(1);
-        $calls[0]->getReturnValue()->shouldReturn(42);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $method1
-     * @param \Prophecy\Prophecy\MethodProphecy    $method2
-     * @param \Prophecy\Prophecy\MethodProphecy    $method3
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments1
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments2
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments3
-     * @param \Prophecy\Promise\PromiseInterface   $promise
-     */
-    function it_executes_promise_of_method_prophecy_that_matches_with_highest_score_to_makeCall(
-        $objectProphecy, $method1, $method2, $method3, $arguments1, $arguments2, $arguments3,
-        $promise
-    )
-    {
-        $method1->getMethodName()->willReturn('getName');
-        $method1->getArgumentsWildcard()->willReturn($arguments1);
-        $arguments1->scoreArguments(array('world', 'everything'))->willReturn(50);
-
-        $method2->getMethodName()->willReturn('getName');
-        $method2->getArgumentsWildcard()->willReturn($arguments2);
-        $method2->getPromise()->willReturn($promise);
-        $arguments2->scoreArguments(array('world', 'everything'))->willReturn(300);
-
-        $method3->getMethodName()->willReturn('getName');
-        $method3->getArgumentsWildcard()->willReturn($arguments3);
-        $arguments3->scoreArguments(array('world', 'everything'))->willReturn(200);
-
-        $objectProphecy->getMethodProphecies()->willReturn(array(
-            'method1' => array($method1),
-            'method2' => array($method2, $method3)
-        ));
-        $objectProphecy->getMethodProphecies('getName')->willReturn(array(
-            $method1, $method2, $method3
-        ));
-        $objectProphecy->reveal()->willReturn(new \stdClass());
-
-        $promise->execute(array('world', 'everything'), $objectProphecy->getWrappedObject(), $method2)
-            ->willReturn('second');
-
-        $this->makeCall($objectProphecy, 'getName', array('world', 'everything'))
-            ->shouldReturn('second');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $method
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
-     */
-    function it_throws_exception_if_call_does_not_match_any_of_defined_method_prophecies(
-        $objectProphecy, $method, $arguments
-    )
-    {
-        $method->getMethodName()->willReturn('getName');
-        $method->getArgumentsWildcard()->willReturn($arguments);
-        $arguments->scoreArguments(array('world', 'everything'))->willReturn(false);
-        $arguments->__toString()->willReturn('arg1, arg2');
-
-        $objectProphecy->getMethodProphecies()->willReturn(array('method1' => array($method)));
-        $objectProphecy->getMethodProphecies('getName')->willReturn(array($method));
-
-        $this->shouldThrow('Prophecy\Exception\Call\UnexpectedCallException')
-            ->duringMakeCall($objectProphecy, 'getName', array('world', 'everything'));
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $method
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
-     */
-    function it_returns_null_if_method_prophecy_that_matches_makeCall_arguments_has_no_promise(
-        $objectProphecy, $method, $arguments
-    )
-    {
-        $method->getMethodName()->willReturn('getName');
-        $method->getArgumentsWildcard()->willReturn($arguments);
-        $method->getPromise()->willReturn(null);
-        $arguments->scoreArguments(array('world', 'everything'))->willReturn(100);
-
-        $objectProphecy->getMethodProphecies()->willReturn(array($method));
-        $objectProphecy->getMethodProphecies('getName')->willReturn(array($method));
-
-        $this->makeCall($objectProphecy, 'getName', array('world', 'everything'))
-            ->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
-     */
-    function it_finds_recorded_calls_by_a_method_name_and_arguments_wildcard(
-        $objectProphecy, $wildcard
-    )
-    {
-        $objectProphecy->getMethodProphecies()->willReturn(array());
-
-        $this->makeCall($objectProphecy, 'getName', array('world'));
-        $this->makeCall($objectProphecy, 'getName', array('everything'));
-        $this->makeCall($objectProphecy, 'setName', array(42));
-
-        $wildcard->scoreArguments(array('world'))->willReturn(false);
-        $wildcard->scoreArguments(array('everything'))->willReturn(10);
-
-        $calls = $this->findCalls('getName', $wildcard);
-
-        $calls->shouldHaveCount(1);
-        $calls[0]->getMethodName()->shouldReturn('getName');
-        $calls[0]->getArguments()->shouldReturn(array('everything'));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php
deleted file mode 100644
index d1a8539..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Call/CallSpec.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Call;
-
-use PhpSpec\ObjectBehavior;
-
-class CallSpec extends ObjectBehavior
-{
-    /**
-     * @param \Exception $exception
-     */
-    function let($exception)
-    {
-        $this->beConstructedWith('setValues', array(5, 2), 42, $exception, 'some_file.php', 23);
-    }
-
-    function it_exposes_method_name_through_getter()
-    {
-        $this->getMethodName()->shouldReturn('setValues');
-    }
-
-    function it_exposes_arguments_through_getter()
-    {
-        $this->getArguments()->shouldReturn(array(5, 2));
-    }
-
-    function it_exposes_return_value_through_getter()
-    {
-        $this->getReturnValue()->shouldReturn(42);
-    }
-
-    function it_exposes_exception_through_getter($exception)
-    {
-        $this->getException()->shouldReturn($exception);
-    }
-
-    function it_exposes_file_and_line_through_getter()
-    {
-        $this->getFile()->shouldReturn('some_file.php');
-        $this->getLine()->shouldReturn(23);
-    }
-
-    function it_returns_shortpath_to_callPlace()
-    {
-        $this->getCallPlace()->shouldReturn('some_file.php:23');
-    }
-
-    function it_returns_unknown_as_callPlace_if_no_file_or_line_provided()
-    {
-        $this->beConstructedWith('setValues', array(), 0, null, null, null);
-
-        $this->getCallPlace()->shouldReturn('unknown');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php
deleted file mode 100644
index 2d7d934..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class DisableConstructorPatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    function its_priority_is_100()
-    {
-        $this->getPriority()->shouldReturn(100);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_supports_anything($node)
-    {
-        $this->supports($node)->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg1
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg2
-     */
-    function it_makes_all_constructor_arguments_optional($class, $method, $arg1, $arg2)
-    {
-        $class->hasMethod('__construct')->willReturn(true);
-        $class->getMethod('__construct')->willReturn($method);
-        $method->getArguments()->willReturn(array($arg1, $arg2));
-
-        $arg1->setDefault(null)->shouldBeCalled();
-        $arg2->setDefault(null)->shouldBeCalled();
-
-        $method->setCode(Argument::type('string'))->shouldBeCalled();
-
-        $this->apply($class);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
-     */
-    function it_creates_new_constructor_if_object_has_none($class)
-    {
-        $class->hasMethod('__construct')->willReturn(false);
-        $class->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))
-            ->shouldBeCalled();
-
-        $this->apply($class);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php
deleted file mode 100644
index 8c348b8..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/HhvmExceptionPatchSpec.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class HhvmExceptionPatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    function its_priority_is_minus_50()
-    {
-        $this->getPriority()->shouldReturn(-50);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $getterMethod
-     */
-    function it_uses_parent_code_for_setTraceOptions($node, $method, $getterMethod)
-    {
-        $node->hasMethod('setTraceOptions')->willReturn(true);
-        $node->getMethod('setTraceOptions')->willReturn($method);
-        $node->hasMethod('getTraceOptions')->willReturn(true);
-        $node->getMethod('getTraceOptions')->willReturn($getterMethod);
-
-        $method->useParentCode()->shouldBeCalled();
-        $getterMethod->useParentCode()->shouldBeCalled();
-
-        $this->apply($node);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php
deleted file mode 100644
index 200d961..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/KeywordPatchSpec.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-
-class KeywordPatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    function its_priority_is_49()
-    {
-        $this->getPriority()->shouldReturn(49);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method1
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method2
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method3
-     */
-    function it_will_remove_echo_and_eval_methods($node, $method1, $method2, $method3)
-    {
-        $node->removeMethod('eval')->shouldBeCalled();
-        $node->removeMethod('echo')->shouldBeCalled();
-
-        $method1->getName()->willReturn('echo');
-        $method2->getName()->willReturn('eval');
-        $method3->getName()->willReturn('notKeyword');
-
-        $node->getMethods()->willReturn(array(
-            'echo' => $method1,
-            'eval' => $method2,
-            'notKeyword' => $method3,
-        ));
-
-        $this->apply($node);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php
deleted file mode 100644
index cb1d0f0..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/MagicCallPatchSpec.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-
-class MagicCallPatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_supports_anything($node)
-    {
-        $this->supports($node)->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_discovers_api_using_phpdoc($node)
-    {
-        $node->getParentClass()->willReturn('spec\Prophecy\Doubler\ClassPatch\MagicalApi');
-
-        $node->addMethod(new MethodNode('undefinedMethod'))->shouldBeCalled();
-
-        $this->apply($node);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_ignores_existing_methods($node)
-    {
-        $node->getParentClass()->willReturn('spec\Prophecy\Doubler\ClassPatch\MagicalApiExtended');
-
-        $node->addMethod(new MethodNode('undefinedMethod'))->shouldBeCalled();
-        $node->addMethod(new MethodNode('definedMethod'))->shouldNotBeCalled();
-
-        $this->apply($node);
-    }
-
-    function it_has_50_priority()
-    {
-        $this->getPriority()->shouldReturn(50);
-    }
-}
-
-/**
- * @method void undefinedMethod()
- */
-class MagicalApi
-{
-    /**
-     * @return void
-     */
-    public function definedMethod()
-    {
-
-    }
-}
-
-/**
- * @method void undefinedMethod()
- * @method void definedMethod()
- */
-class MagicalApiExtended extends MagicalApi
-{
-
-}
\ No newline at end of file
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php
deleted file mode 100644
index c460814..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ProphecySubjectPatchSpec.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class ProphecySubjectPatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    function it_has_priority_of_0()
-    {
-        $this->getPriority()->shouldReturn(0);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_supports_any_class($node)
-    {
-        $this->supports($node)->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_forces_class_to_implement_ProphecySubjectInterface($node)
-    {
-        $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface')->shouldBeCalled();
-
-        $node->addProperty('objectProphecy', 'private')->willReturn(null);
-        $node->getMethods()->willReturn(array());
-        $node->hasMethod(Argument::any())->willReturn(false);
-        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
-        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
-
-        $this->apply($node);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $constructor
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method1
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method2
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method3
-     */
-    function it_forces_all_class_methods_except_constructor_to_proxy_calls_into_prophecy_makeCall(
-        $node, $constructor, $method1, $method2, $method3
-    )
-    {
-        $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface')->willReturn(null);
-        $node->addProperty('objectProphecy', 'private')->willReturn(null);
-        $node->hasMethod(Argument::any())->willReturn(false);
-        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
-        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
-
-        $constructor->getName()->willReturn('__construct');
-        $method1->getName()->willReturn('method1');
-        $method2->getName()->willReturn('method2');
-        $method3->getName()->willReturn('method3');
-
-        $node->getMethods()->willReturn(array(
-            'method1' => $method1,
-            'method2' => $method2,
-            'method3' => $method3,
-        ));
-
-        $constructor->setCode(Argument::any())->shouldNotBeCalled();
-
-        $method1->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')
-            ->shouldBeCalled();
-        $method2->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')
-            ->shouldBeCalled();
-        $method3->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')
-            ->shouldBeCalled();
-
-        $this->apply($node);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php
deleted file mode 100644
index 4116e4d..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatchSpec.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class ReflectionClassNewInstancePatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    function its_priority_is_50()
-    {
-        $this->getPriority()->shouldReturn(50);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $reflectionClassNode
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $anotherClassNode
-     */
-    function it_supports_ReflectionClass_only($reflectionClassNode, $anotherClassNode)
-    {
-        $reflectionClassNode->getParentClass()->willReturn('ReflectionClass');
-        $anotherClassNode->getParentClass()->willReturn('stdClass');
-
-        $this->supports($reflectionClassNode)->shouldReturn(true);
-        $this->supports($anotherClassNode)->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg1
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $arg2
-     */
-    function it_makes_all_newInstance_arguments_optional($class, $method, $arg1, $arg2)
-    {
-        $class->getMethod('newInstance')->willReturn($method);
-        $method->getArguments()->willReturn(array($arg1));
-        $arg1->setDefault(null)->shouldBeCalled();
-
-        $this->apply($class);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php
deleted file mode 100644
index 37fe82f..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/SplFileInfoPatchSpec.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class SplFileInfoPatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    function its_priority_is_50()
-    {
-        $this->getPriority()->shouldReturn(50);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_does_not_support_nodes_without_parent_class($node)
-    {
-        $node->getParentClass()->willReturn('stdClass');
-        $this->supports($node)->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_supports_nodes_with_SplFileInfo_as_parent_class($node)
-    {
-        $node->getParentClass()->willReturn('SplFileInfo');
-        $this->supports($node)->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_supports_nodes_with_derivative_of_SplFileInfo_as_parent_class($node)
-    {
-        $node->getParentClass()->willReturn('SplFileInfo');
-        $this->supports($node)->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_adds_a_method_to_node_if_not_exists($node)
-    {
-        $node->hasMethod('__construct')->willReturn(false);
-        $node->addMethod(Argument::any())->shouldBeCalled();
-        $node->getParentClass()->shouldBeCalled();
-
-        $this->apply($node);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
-     */
-    function it_updates_existing_method_if_found($node, $method)
-    {
-        $node->hasMethod('__construct')->willReturn(true);
-        $node->getMethod('__construct')->willReturn($method);
-        $node->getParentClass()->shouldBeCalled();
-
-        $method->useParentCode()->shouldBeCalled();
-
-        $this->apply($node);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode  $node
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
-     */
-    function it_should_not_supply_a_file_for_a_directory_iterator($node, $method)
-    {
-        $node->hasMethod('__construct')->willReturn(true);
-        $node->getMethod('__construct')->willReturn($method);
-        $node->getParentClass()->willReturn('DirectoryIterator');
-
-        $method->setCode(Argument::that(function($value) {
-            return strpos($value, '.php') === false;
-        }))->shouldBeCalled();
-
-        $this->apply($node);
-    }
-
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
deleted file mode 100644
index 2279b72..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\ClassPatch;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class TraversablePatchSpec extends ObjectBehavior
-{
-    function it_is_a_patch()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Doubler\ClassPatch\ClassPatchInterface');
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_supports_class_that_implements_only_Traversable($node)
-    {
-        $node->getInterfaces()->willReturn(array('Traversable'));
-
-        $this->supports($node)->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_does_not_support_class_that_implements_Iterator($node)
-    {
-        $node->getInterfaces()->willReturn(array('Traversable', 'Iterator'));
-
-        $this->supports($node)->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_does_not_support_class_that_implements_IteratorAggregate($node)
-    {
-        $node->getInterfaces()->willReturn(array('Traversable', 'IteratorAggregate'));
-
-        $this->supports($node)->shouldReturn(false);
-    }
-
-    function it_has_100_priority()
-    {
-        $this->getPriority()->shouldReturn(100);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_forces_node_to_implement_IteratorAggregate($node)
-    {
-        $node->addInterface('Iterator')->shouldBeCalled();
-
-        $node->addMethod(Argument::type('Prophecy\Doubler\Generator\Node\MethodNode'))->willReturn(null);
-
-        $this->apply($node);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php
deleted file mode 100644
index a39fa87..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/DoublerSpec.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class DoublerSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\Generator\ClassMirror  $mirror
-     * @param \Prophecy\Doubler\Generator\ClassCreator $creator
-     * @param \Prophecy\Doubler\NameGenerator          $namer
-     */
-    function let($mirror, $creator, $namer)
-    {
-        $this->beConstructedWith($mirror, $creator, $namer);
-    }
-
-    function it_does_not_have_patches_by_default()
-    {
-        $this->getClassPatches()->shouldHaveCount(0);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $patch
-     */
-    function its_registerClassPatch_adds_a_patch_to_the_doubler($patch)
-    {
-        $this->registerClassPatch($patch);
-        $this->getClassPatches()->shouldReturn(array($patch));
-    }
-
-    /**
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt1
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt2
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt3
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt4
-     */
-    function its_getClassPatches_sorts_patches_by_priority($alt1, $alt2, $alt3, $alt4)
-    {
-        $alt1->getPriority()->willReturn(2);
-        $alt2->getPriority()->willReturn(50);
-        $alt3->getPriority()->willReturn(10);
-        $alt4->getPriority()->willReturn(0);
-
-        $this->registerClassPatch($alt1);
-        $this->registerClassPatch($alt2);
-        $this->registerClassPatch($alt3);
-        $this->registerClassPatch($alt4);
-
-        $this->getClassPatches()->shouldReturn(array($alt2, $alt3, $alt1, $alt4));
-    }
-
-    /**
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt1
-     * @param \Prophecy\Doubler\ClassPatch\ClassPatchInterface $alt2
-     * @param \ReflectionClass                                 $class
-     * @param \ReflectionClass                                 $interface1
-     * @param \ReflectionClass                                 $interface2
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode       $node
-     */
-    function its_double_mirrors_alterates_and_instantiates_provided_class(
-        $mirror, $creator, $namer, $alt1, $alt2, $class, $interface1, $interface2, $node
-    )
-    {
-        $mirror->reflect($class, array($interface1, $interface2))->willReturn($node);
-        $alt1->supports($node)->willReturn(true);
-        $alt2->supports($node)->willReturn(false);
-        $alt1->getPriority()->willReturn(1);
-        $alt2->getPriority()->willReturn(2);
-        $namer->name($class, array($interface1, $interface2))->willReturn('SplStack');
-        $class->getName()->willReturn('stdClass');
-        $interface1->getName()->willReturn('ArrayAccess');
-        $interface2->getName()->willReturn('Iterator');
-
-        $alt1->apply($node)->shouldBeCalled();
-        $alt2->apply($node)->shouldNotBeCalled();
-        $creator->create('SplStack', $node)->shouldBeCalled();
-
-        $this->registerClassPatch($alt1);
-        $this->registerClassPatch($alt2);
-
-        $this->double($class, array($interface1, $interface2))
-            ->shouldReturnAnInstanceOf('SplStack');
-    }
-
-    /**
-     * @param \ReflectionClass                           $class
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_double_instantiates_a_class_with_constructor_argument($mirror, $class, $node, $namer)
-    {
-        $class->getName()->willReturn('ReflectionClass');
-        $mirror->reflect($class, array())->willReturn($node);
-        $namer->name($class, array())->willReturn('ReflectionClass');
-
-        $double = $this->double($class, array(), array('stdClass'));
-        $double->shouldBeAnInstanceOf('ReflectionClass');
-        $double->getName()->shouldReturn('stdClass');
-    }
-
-    /**
-     * @param \ReflectionClass                           $class
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function it_can_instantiate_class_with_final_constructor($mirror, $class, $node, $namer)
-    {
-        $class->getName()->willReturn('spec\Prophecy\Doubler\WithFinalConstructor');
-        $mirror->reflect($class, array())->willReturn($node);
-        $namer->name($class, array())->willReturn('spec\Prophecy\Doubler\WithFinalConstructor');
-
-        $double = $this->double($class, array());
-
-        $double->shouldBeAnInstanceOf('spec\Prophecy\Doubler\WithFinalConstructor');
-    }
-}
-
-class WithFinalConstructor
-{
-    final public function __construct() {}
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php
deleted file mode 100644
index 1dc8cda..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\Generator;
-
-use PhpSpec\ObjectBehavior;
-
-class ClassCodeGeneratorSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method1
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method2
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method3
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument11
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument12
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument21
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument31
-     */
-    function it_generates_proper_php_code_for_specific_ClassNode(
-        $class, $method1, $method2, $method3, $argument11, $argument12, $argument21, $argument31
-    )
-    {
-        $class->getParentClass()->willReturn('RuntimeException');
-        $class->getInterfaces()->willReturn(array(
-            'Prophecy\Doubler\Generator\MirroredInterface', 'ArrayAccess', 'ArrayIterator'
-        ));
-        $class->getProperties()->willReturn(array('name' => 'public', 'email' => 'private'));
-        $class->getMethods()->willReturn(array($method1, $method2, $method3));
-
-        $method1->getName()->willReturn('getName');
-        $method1->getVisibility()->willReturn('public');
-        $method1->returnsReference()->willReturn(false);
-        $method1->isStatic()->willReturn(true);
-        $method1->getArguments()->willReturn(array($argument11, $argument12));
-        $method1->getCode()->willReturn('return $this->name;');
-
-        $method2->getName()->willReturn('getEmail');
-        $method2->getVisibility()->willReturn('protected');
-        $method2->returnsReference()->willReturn(false);
-        $method2->isStatic()->willReturn(false);
-        $method2->getArguments()->willReturn(array($argument21));
-        $method2->getCode()->willReturn('return $this->email;');
-
-        $method3->getName()->willReturn('getRefValue');
-        $method3->getVisibility()->willReturn('public');
-        $method3->returnsReference()->willReturn(true);
-        $method3->isStatic()->willReturn(false);
-        $method3->getArguments()->willReturn(array($argument31));
-        $method3->getCode()->willReturn('return $this->refValue;');
-
-        $argument11->getName()->willReturn('fullname');
-        $argument11->getTypeHint()->willReturn('array');
-        $argument11->isOptional()->willReturn(true);
-        $argument11->getDefault()->willReturn(null);
-        $argument11->isPassedByReference()->willReturn(false);
-
-        $argument12->getName()->willReturn('class');
-        $argument12->getTypeHint()->willReturn('ReflectionClass');
-        $argument12->isOptional()->willReturn(false);
-        $argument12->isPassedByReference()->willReturn(false);
-
-        $argument21->getName()->willReturn('default');
-        $argument21->getTypeHint()->willReturn(null);
-        $argument21->isOptional()->willReturn(true);
-        $argument21->getDefault()->willReturn('ever.zet@gmail.com');
-        $argument21->isPassedByReference()->willReturn(false);
-
-        $argument31->getName()->willReturn('refValue');
-        $argument31->getTypeHint()->willReturn(null);
-        $argument31->isOptional()->willReturn(false);
-        $argument31->getDefault()->willReturn();
-        $argument31->isPassedByReference()->willReturn(false);
-
-        $code = $this->generate('CustomClass', $class);
-        $expected = <<<'PHP'
-namespace  {
-class CustomClass extends \RuntimeException implements \Prophecy\Doubler\Generator\MirroredInterface, \ArrayAccess, \ArrayIterator {
-public $name;
-private $email;
-
-public static function getName(array $fullname = NULL, \ReflectionClass $class) {
-return $this->name;
-}
-protected  function getEmail( $default = 'ever.zet@gmail.com') {
-return $this->email;
-}
-public  function &getRefValue( $refValue) {
-return $this->refValue;
-}
-
-}
-}
-PHP;
-        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
-        $code->shouldBe($expected);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode    $class
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode   $method
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument
-     */
-    function it_overrides_properly_methods_with_args_passed_by_reference(
-        $class, $method, $argument
-    )
-    {
-        $class->getParentClass()->willReturn('RuntimeException');
-        $class->getInterfaces()->willReturn(array('Prophecy\Doubler\Generator\MirroredInterface'));
-        $class->getProperties()->willReturn(array());
-        $class->getMethods()->willReturn(array($method));
-
-        $method->getName()->willReturn('getName');
-        $method->getVisibility()->willReturn('public');
-        $method->isStatic()->willReturn(false);
-        $method->getArguments()->willReturn(array($argument));
-        $method->returnsReference()->willReturn(false);
-        $method->getCode()->willReturn('return $this->name;');
-
-        $argument->getName()->willReturn('fullname');
-        $argument->getTypeHint()->willReturn('array');
-        $argument->isOptional()->willReturn(true);
-        $argument->getDefault()->willReturn(null);
-        $argument->isPassedByReference()->willReturn(true);
-
-        $code = $this->generate('CustomClass', $class);
-        $expected =<<<'PHP'
-namespace  {
-class CustomClass extends \RuntimeException implements \Prophecy\Doubler\Generator\MirroredInterface {
-
-public  function getName(array &$fullname = NULL) {
-return $this->name;
-}
-
-}
-}
-PHP;
-        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
-        $code->shouldBe($expected);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
-     */
-    function it_generates_empty_class_for_empty_ClassNode($class)
-    {
-        $class->getParentClass()->willReturn('stdClass');
-        $class->getInterfaces()->willReturn(array('Prophecy\Doubler\Generator\MirroredInterface'));
-        $class->getProperties()->willReturn(array());
-        $class->getMethods()->willReturn(array());
-
-        $code = $this->generate('CustomClass', $class);
-        $expected =<<<'PHP'
-namespace  {
-class CustomClass extends \stdClass implements \Prophecy\Doubler\Generator\MirroredInterface {
-
-
-}
-}
-PHP;
-        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
-        $code->shouldBe($expected);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
-     */
-    function it_wraps_class_in_namespace_if_it_is_namespaced($class)
-    {
-        $class->getParentClass()->willReturn('stdClass');
-        $class->getInterfaces()->willReturn(array('Prophecy\Doubler\Generator\MirroredInterface'));
-        $class->getProperties()->willReturn(array());
-        $class->getMethods()->willReturn(array());
-
-        $code = $this->generate('My\Awesome\CustomClass', $class);
-        $expected =<<<'PHP'
-namespace My\Awesome {
-class CustomClass extends \stdClass implements \Prophecy\Doubler\Generator\MirroredInterface {
-
-
-}
-}
-PHP;
-        $expected = strtr($expected, array("\r\n" => "\n", "\r" => "\n"));
-        $code->shouldBe($expected);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php
deleted file mode 100644
index c7b5700..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassCreatorSpec.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\Generator;
-
-use PhpSpec\ObjectBehavior;
-
-class ClassCreatorSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\Generator\ClassCodeGenerator $generator
-     */
-    function let($generator)
-    {
-        $this->beConstructedWith($generator);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
-     */
-    function it_evaluates_code_generated_by_ClassCodeGenerator($generator, $class)
-    {
-        $generator->generate('stdClass', $class)->shouldBeCalled()->willReturn(
-            'return 42;'
-        );
-
-        $this->create('stdClass', $class)->shouldReturn(42);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $class
-     */
-    function it_throws_an_exception_if_class_does_not_exist_after_evaluation($generator, $class)
-    {
-        $generator->generate('CustomClass', $class)->shouldBeCalled()->willReturn(
-            'return 42;'
-        );
-
-        $class->getParentClass()->willReturn('stdClass');
-        $class->getInterfaces()->willReturn(array('Interface1', 'Interface2'));
-
-        $this->shouldThrow('Prophecy\Exception\Doubler\ClassCreatorException')
-            ->duringCreate('CustomClass', $class);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php
deleted file mode 100644
index dd9e9c4..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/ClassMirrorSpec.php
+++ /dev/null
@@ -1,554 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\Generator;
-
-use PhpSpec\ObjectBehavior;
-use I\Simply;
-
-use ReflectionClass;
-use ReflectionMethod;
-use ReflectionParameter;
-
-class ClassMirrorSpec extends ObjectBehavior
-{
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method1
-     * @param ReflectionMethod $method2
-     * @param ReflectionMethod $method3
-     */
-    function it_reflects_a_class_by_mirroring_all_its_public_methods(
-        $class, $method1, $method2, $method3
-    )
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array(
-            $method1, $method2, $method3
-        ));
-
-        $method1->getName()->willReturn('getName');
-        $method2->getName()->willReturn('isPublic');
-        $method3->getName()->willReturn('isAbstract');
-
-        $method1->isFinal()->willReturn(false);
-        $method2->isFinal()->willReturn(false);
-        $method3->isFinal()->willReturn(false);
-
-        $method1->isProtected()->willReturn(false);
-        $method2->isProtected()->willReturn(false);
-        $method3->isProtected()->willReturn(false);
-
-        $method1->isStatic()->willReturn(false);
-        $method2->isStatic()->willReturn(false);
-        $method3->isStatic()->willReturn(false);
-
-        $method1->returnsReference()->willReturn(false);
-        $method2->returnsReference()->willReturn(false);
-        $method3->returnsReference()->willReturn(false);
-
-        $method1->getParameters()->willReturn(array());
-        $method2->getParameters()->willReturn(array());
-        $method3->getParameters()->willReturn(array());
-
-        $classNode   = $this->reflect($class, array());
-        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
-        $classNode->getParentClass()->shouldReturn('Custom\ClassName');
-
-        $methodNodes = $classNode->getMethods();
-        $methodNodes->shouldHaveCount(3);
-
-        $classNode->hasMethod('getName')->shouldReturn(true);
-        $classNode->hasMethod('isPublic')->shouldReturn(true);
-        $classNode->hasMethod('isAbstract')->shouldReturn(true);
-    }
-
-    /**
-     * @param ReflectionClass     $class
-     * @param ReflectionMethod    $method
-     * @param ReflectionParameter $parameter
-     */
-    function it_changes_argument_names_if_they_are_varying($class, $method, $parameter)
-    {
-
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-
-        $method->getParameters()->willReturn(array($parameter));
-        $method->getName()->willReturn('methodName');
-        $method->isFinal()->willReturn(false);
-        $method->isProtected()->willReturn(false);
-        $method->isStatic()->willReturn(false);
-        $method->returnsReference()->willReturn(false);
-
-        $parameter->getName()->willReturn('...');
-        $parameter->isDefaultValueAvailable()->willReturn(true);
-        $parameter->getDefaultValue()->willReturn(null);
-        $parameter->isPassedByReference()->willReturn(false);
-        $parameter->getClass()->willReturn($class);
-
-        $classNode = $this->reflect($class, array());
-
-        $methodNodes = $classNode->getMethods();
-
-        $argumentNodes = $methodNodes['methodName']->getArguments();
-        $argumentNode = $argumentNodes[0];
-
-        $argumentNode->getName()->shouldReturn('__dot_dot_dot__');
-    }
-
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method
-     */
-    function it_reflects_protected_abstract_methods($class, $method)
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array($method));
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array());
-
-        $method->isProtected()->willReturn(true);
-        $method->isStatic()->willReturn(false);
-        $method->getParameters()->willReturn(array());
-        $method->getName()->willReturn('innerDetail');
-        $method->returnsReference()->willReturn(false);
-
-
-        $classNode   = $this->reflect($class, array());
-        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
-        $classNode->getParentClass()->shouldReturn('Custom\ClassName');
-
-        $methodNodes = $classNode->getMethods();
-        $methodNodes->shouldHaveCount(1);
-
-        $methodNodes['innerDetail']->getVisibility()->shouldReturn('protected');
-    }
-
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method
-     */
-    function it_reflects_public_static_methods($class, $method)
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array($method));
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array());
-
-        $method->isProtected()->willReturn(true);
-        $method->isStatic()->willReturn(true);
-        $method->getParameters()->willReturn(array());
-        $method->getName()->willReturn('innerDetail');
-        $method->returnsReference()->willReturn(false);
-
-        $classNode   = $this->reflect($class, array());
-        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
-        $classNode->getParentClass()->shouldReturn('Custom\ClassName');
-
-        $methodNodes = $classNode->getMethods();
-        $methodNodes->shouldHaveCount(1);
-
-        $methodNodes['innerDetail']->getVisibility()->shouldReturn('protected');
-        $methodNodes['innerDetail']->isStatic()->shouldReturn(true);
-    }
-
-    /**
-     * @param ReflectionClass     $class
-     * @param ReflectionMethod    $method
-     * @param ReflectionParameter $param1
-     * @param ReflectionParameter $param2
-     * @param ReflectionClass     $typeHint
-     * @param ReflectionParameter $param3
-     */
-    function it_properly_reads_methods_arguments_with_types(
-        $class, $method, $param1, $param2, $typeHint, $param3
-    )
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
-
-        $method->getName()->willReturn('methodWithArgs');
-        $method->isFinal()->willReturn(false);
-        $method->isProtected()->willReturn(true);
-        $method->isStatic()->willReturn(false);
-        $method->returnsReference()->willReturn(false);
-        $method->getParameters()->willReturn(array($param1, $param2, $param3));
-
-        $param1->getName()->willReturn('arg_1');
-        $param1->isArray()->willReturn(true);
-        $param1->getClass()->willReturn(null);
-        $param1->isDefaultValueAvailable()->willReturn(true);
-        $param1->isPassedByReference()->willReturn(false);
-        $param1->allowsNull()->willReturn(false);
-        $param1->getDefaultValue()->willReturn(array());
-
-        $param2->getName()->willReturn('arg2');
-        $param2->isArray()->willReturn(false);
-        $param2->getClass()->willReturn($typeHint);
-        $param2->isDefaultValueAvailable()->willReturn(false);
-        $param2->isOptional()->willReturn(false);
-        $param2->isPassedByReference()->willReturn(false);
-        $param2->allowsNull()->willReturn(false);
-        $typeHint->getName()->willReturn('ArrayAccess');
-
-        $param3->getName()->willReturn('arg_3');
-        $param3->isArray()->willReturn(false);
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $param3->isCallable()->willReturn(true);
-        }
-        $param3->getClass()->willReturn(null);
-        $param3->isOptional()->willReturn(false);
-        $param3->isDefaultValueAvailable()->willReturn(false);
-        $param3->isPassedByReference()->willReturn(false);
-        $param3->allowsNull()->willReturn(true);
-
-        $classNode   = $this->reflect($class, array());
-        $methodNodes = $classNode->getMethods();
-        $argNodes    = $methodNodes['methodWithArgs']->getArguments();
-
-        $argNodes[0]->getName()->shouldReturn('arg_1');
-        $argNodes[0]->getTypeHint()->shouldReturn('array');
-        $argNodes[0]->isOptional()->shouldReturn(true);
-        $argNodes[0]->getDefault()->shouldReturn(array());
-
-        $argNodes[1]->getName()->shouldReturn('arg2');
-        $argNodes[1]->getTypeHint()->shouldReturn('ArrayAccess');
-        $argNodes[1]->isOptional()->shouldReturn(false);
-
-        $argNodes[2]->getName()->shouldReturn('arg_3');
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $argNodes[2]->getTypeHint()->shouldReturn('callable');
-            $argNodes[2]->isOptional()->shouldReturn(true);
-            $argNodes[2]->getDefault()->shouldReturn(null);
-        } else {
-            $argNodes[2]->isOptional()->shouldReturn(false);
-        }
-    }
-
-    /**
-     * @param ReflectionClass     $class
-     * @param ReflectionMethod    $method
-     * @param ReflectionParameter $param1
-     */
-    function it_marks_required_args_without_types_as_not_optional(
-        $class, $method, $param1
-    )
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
-
-        $method->getName()->willReturn('methodWithArgs');
-        $method->isFinal()->willReturn(false);
-        $method->isProtected()->willReturn(false);
-        $method->isStatic()->willReturn(false);
-        $method->returnsReference()->willReturn(false);
-        $method->getParameters()->willReturn(array($param1));
-
-        $param1->getName()->willReturn('arg_1');
-        $param1->isArray()->willReturn(false);
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $param1->isCallable()->willReturn(false);
-        }
-        $param1->getClass()->willReturn(null);
-        $param1->isDefaultValueAvailable()->willReturn(false);
-        $param1->isOptional()->willReturn(false);
-        $param1->isPassedByReference()->willReturn(false);
-        $param1->allowsNull()->willReturn(true);
-        if (defined('HHVM_VERSION')) {
-            $param1->getTypehintText()->willReturn(null);
-        }
-
-        $classNode   = $this->reflect($class, array());
-        $methodNodes = $classNode->getMethods();
-        $argNodes    = $methodNodes['methodWithArgs']->getArguments();
-
-        $argNodes[0]->isOptional()->shouldReturn(false);
-    }
-
-    /**
-     * @param ReflectionClass     $class
-     * @param ReflectionMethod    $method
-     * @param ReflectionParameter $param1
-     * @param ReflectionParameter $param2
-     * @param ReflectionClass     $typeHint
-     */
-    function it_marks_passed_by_reference_args_as_passed_by_reference(
-        $class, $method, $param1, $param2, $typeHint
-    )
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
-
-        $method->getName()->willReturn('methodWithArgs');
-        $method->isFinal()->willReturn(false);
-        $method->isProtected()->willReturn(false);
-        $method->isStatic()->willReturn(false);
-        $method->returnsReference()->willReturn(false);
-        $method->getParameters()->willReturn(array($param1, $param2));
-
-        $param1->getName()->willReturn('arg_1');
-        $param1->isArray()->willReturn(false);
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $param1->isCallable()->willReturn(false);
-        }
-        $param1->getClass()->willReturn(null);
-        $param1->isDefaultValueAvailable()->willReturn(false);
-        $param1->isOptional()->willReturn(true);
-        $param1->isPassedByReference()->willReturn(true);
-        $param1->allowsNull()->willReturn(false);
-        if (defined('HHVM_VERSION')) {
-            $param1->getTypehintText()->willReturn(null);
-        }
-
-        $param2->getName()->willReturn('arg2');
-        $param2->isArray()->willReturn(false);
-        $param2->getClass()->willReturn($typeHint);
-        $param2->isDefaultValueAvailable()->willReturn(false);
-        $param2->isOptional()->willReturn(false);
-        $param2->isPassedByReference()->willReturn(false);
-        $param2->allowsNull()->willReturn(false);
-        $typeHint->getName()->willReturn('ArrayAccess');
-
-        $classNode   = $this->reflect($class, array());
-        $methodNodes = $classNode->getMethods();
-        $argNodes    = $methodNodes['methodWithArgs']->getArguments();
-
-        $argNodes[0]->isPassedByReference()->shouldReturn(true);
-        $argNodes[1]->isPassedByReference()->shouldReturn(false);
-    }
-
-    /**
-     * @param ReflectionClass $class
-     */
-    function it_throws_an_exception_if_class_is_final($class)
-    {
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(true);
-        $class->getName()->willReturn('Custom\ClassName');
-
-        $this->shouldThrow('Prophecy\Exception\Doubler\ClassMirrorException')
-             ->duringReflect($class, array());
-    }
-
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method
-     */
-    function it_ignores_final_methods($class, $method)
-    {
-        $class->getName()->willReturn('Custom\ClassName');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
-
-        $method->isFinal()->willReturn(true);
-        $method->getName()->willReturn('finalImplementation');
-
-        $classNode = $this->reflect($class, array());
-        $classNode->getMethods()->shouldHaveCount(0);
-    }
-
-    /**
-     * @param ReflectionClass $interface
-     */
-    function it_throws_an_exception_if_interface_provided_instead_of_class($interface)
-    {
-        $interface->isInterface()->willReturn(true);
-        $interface->getName()->willReturn('Custom\ClassName');
-
-        $this->shouldThrow('Prophecy\Exception\InvalidArgumentException')
-             ->duringReflect($interface, array());
-    }
-
-    /**
-     * @param ReflectionClass  $interface1
-     * @param ReflectionClass  $interface2
-     * @param ReflectionMethod $method1
-     * @param ReflectionMethod $method2
-     * @param ReflectionMethod $method3
-     */
-    function it_reflects_all_interfaces_methods(
-        $interface1, $interface2, $method1, $method2, $method3
-    )
-    {
-        $interface1->getName()->willReturn('MyInterface1');
-        $interface2->getName()->willReturn('MyInterface2');
-
-        $interface1->isInterface()->willReturn(true);
-        $interface2->isInterface()->willReturn(true);
-
-        $interface1->getMethods()->willReturn(array($method1));
-        $interface2->getMethods()->willReturn(array($method2, $method3));
-
-        $method1->getName()->willReturn('getName');
-        $method2->getName()->willReturn('isPublic');
-        $method3->getName()->willReturn('isAbstract');
-
-        $method1->isProtected()->willReturn(false);
-        $method2->isProtected()->willReturn(false);
-        $method3->isProtected()->willReturn(false);
-
-        $method1->returnsReference()->willReturn(false);
-        $method2->returnsReference()->willReturn(false);
-        $method3->returnsReference()->willReturn(false);
-
-        $method1->isStatic()->willReturn(false);
-        $method2->isStatic()->willReturn(false);
-        $method3->isStatic()->willReturn(false);
-
-        $method1->getParameters()->willReturn(array());
-        $method2->getParameters()->willReturn(array());
-        $method3->getParameters()->willReturn(array());
-
-        $classNode = $this->reflect(null, array($interface1, $interface2));
-
-        $classNode->shouldBeAnInstanceOf('Prophecy\Doubler\Generator\Node\ClassNode');
-        $classNode->getParentClass()->shouldReturn('stdClass');
-        $classNode->getInterfaces()->shouldReturn(array(
-            'Prophecy\Doubler\Generator\ReflectionInterface', 'MyInterface2', 'MyInterface1',
-        ));
-
-        $methodNodes = $classNode->getMethods();
-        $methodNodes->shouldHaveCount(3);
-
-        $classNode->hasMethod('getName')->shouldReturn(true);
-        $classNode->hasMethod('isPublic')->shouldReturn(true);
-        $classNode->hasMethod('isAbstract')->shouldReturn(true);
-    }
-
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method1
-     * @param ReflectionMethod $method2
-     * @param ReflectionMethod $method3
-     */
-    function it_ignores_virtually_private_methods($class, $method1, $method2, $method3)
-    {
-        $class->getName()->willReturn('SomeClass');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method1, $method2, $method3));
-
-        $method1->getName()->willReturn('_getName');
-        $method2->getName()->willReturn('__toString');
-        $method3->getName()->willReturn('isAbstract');
-
-        $method1->isFinal()->willReturn(false);
-        $method2->isFinal()->willReturn(false);
-        $method3->isFinal()->willReturn(false);
-
-        $method1->isProtected()->willReturn(false);
-        $method2->isProtected()->willReturn(false);
-        $method3->isProtected()->willReturn(false);
-
-        $method1->isStatic()->willReturn(false);
-        $method2->isStatic()->willReturn(false);
-        $method3->isStatic()->willReturn(false);
-
-        $method1->returnsReference()->willReturn(false);
-        $method2->returnsReference()->willReturn(false);
-        $method3->returnsReference()->willReturn(false);
-
-        $method1->getParameters()->willReturn(array());
-        $method2->getParameters()->willReturn(array());
-        $method3->getParameters()->willReturn(array());
-
-        $classNode = $this->reflect($class, array());
-        $methodNodes = $classNode->getMethods();
-        $methodNodes->shouldHaveCount(2);
-
-        $classNode->hasMethod('isAbstract')->shouldReturn(true);
-    }
-
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method
-     */
-    function it_does_not_throw_exception_for_virtually_private_finals($class, $method)
-    {
-        $class->getName()->willReturn('SomeClass');
-        $class->isInterface()->willReturn(false);
-        $class->isFinal()->willReturn(false);
-        $class->getMethods(ReflectionMethod::IS_ABSTRACT)->willReturn(array());
-        $class->getMethods(ReflectionMethod::IS_PUBLIC)->willReturn(array($method));
-
-        $method->getName()->willReturn('__toString');
-        $method->isFinal()->willReturn(true);
-
-        $this->shouldNotThrow()->duringReflect($class, array());
-    }
-
-    /**
-     * @param ReflectionClass $class
-     */
-    function it_throws_an_exception_if_class_provided_in_interfaces_list($class)
-    {
-        $class->getName()->willReturn('MyClass');
-        $class->isInterface()->willReturn(false);
-
-        $this->shouldThrow('InvalidArgumentException')
-             ->duringReflect(null, array($class));
-    }
-
-    function it_throws_an_exception_if_not_reflection_provided_as_interface()
-    {
-        $this->shouldThrow('InvalidArgumentException')
-             ->duringReflect(null, array(null));
-    }
-
-    function it_doesnt_fail_to_typehint_nonexistent_FQCN()
-    {
-        $classNode = $this->reflect(new ReflectionClass('spec\Prophecy\Doubler\Generator\OptionalDepsClass'), array());
-        $method = $classNode->getMethod('iHaveAStrangeTypeHintedArg');
-        $arguments = $method->getArguments();
-        $arguments[0]->getTypeHint()->shouldBe('I\Simply\Am\Nonexistent');
-    }
-
-    function it_doesnt_fail_to_typehint_nonexistent_RQCN()
-    {
-        $classNode = $this->reflect(new ReflectionClass('spec\Prophecy\Doubler\Generator\OptionalDepsClass'), array());
-        $method = $classNode->getMethod('iHaveAnEvenStrangerTypeHintedArg');
-        $arguments = $method->getArguments();
-        $arguments[0]->getTypeHint()->shouldBe('I\Simply\Am\Not');
-    }
-
-    function it_doesnt_use_scalar_typehints()
-    {
-        $classNode = $this->reflect(new ReflectionClass('ReflectionMethod'), array());
-        $method = $classNode->getMethod('export');
-        $arguments = $method->getArguments();
-        $arguments[0]->getTypeHint()->shouldReturn(null);
-        $arguments[1]->getTypeHint()->shouldReturn(null);
-        $arguments[2]->getTypeHint()->shouldReturn(null);
-    }
-}
-
-class OptionalDepsClass
-{
-    public function iHaveAStrangeTypeHintedArg(\I\Simply\Am\Nonexistent $class)
-    {
-    }
-
-    public function iHaveAnEvenStrangerTypeHintedArg(Simply\Am\Not $class)
-    {
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php
deleted file mode 100644
index cea578f..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ArgumentNodeSpec.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\Generator\Node;
-
-use PhpSpec\ObjectBehavior;
-
-class ArgumentNodeSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('name');
-    }
-
-    function it_is_not_be_passed_by_reference_by_default()
-    {
-        $this->shouldNotBePassedByReference();
-    }
-
-    function it_is_passed_by_reference_if_marked()
-    {
-        $this->setAsPassedByReference();
-        $this->shouldBePassedByReference();
-    }
-
-    function it_has_name_with_which_it_was_been_constructed()
-    {
-        $this->getName()->shouldReturn('name');
-    }
-
-    function it_has_no_typehint_by_default()
-    {
-        $this->getTypeHint()->shouldReturn(null);
-    }
-
-    function its_typeHint_is_mutable()
-    {
-        $this->setTypeHint('array');
-        $this->getTypeHint()->shouldReturn('array');
-    }
-
-    function it_does_not_have_default_value_by_default()
-    {
-        $this->getDefault()->shouldReturn(null);
-    }
-
-    function it_is_not_optional_by_default()
-    {
-        $this->isOptional()->shouldReturn(false);
-    }
-
-    function its_default_is_mutable()
-    {
-        $this->setDefault(array());
-        $this->getDefault()->shouldReturn(array());
-    }
-
-    function it_is_marked_as_optional_when_default_is_set()
-    {
-        $this->setDefault(null);
-        $this->isOptional()->shouldReturn(true);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php
deleted file mode 100644
index 18f0e1c..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/ClassNodeSpec.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\Generator\Node;
-
-use PhpSpec\ObjectBehavior;
-
-class ClassNodeSpec extends ObjectBehavior
-{
-    function its_parentClass_is_a_stdClass_by_default()
-    {
-        $this->getParentClass()->shouldReturn('stdClass');
-    }
-
-    function its_parentClass_is_mutable()
-    {
-        $this->setParentClass('Exception');
-        $this->getParentClass()->shouldReturn('Exception');
-    }
-
-    function its_parentClass_is_set_to_stdClass_if_user_set_null()
-    {
-        $this->setParentClass(null);
-        $this->getParentClass()->shouldReturn('stdClass');
-    }
-
-    function it_does_not_implement_any_interface_by_default()
-    {
-        $this->getInterfaces()->shouldHaveCount(0);
-    }
-
-    function its_addInterface_adds_item_to_the_list_of_implemented_interfaces()
-    {
-        $this->addInterface('MyInterface');
-        $this->getInterfaces()->shouldHaveCount(1);
-    }
-
-    function its_hasInterface_returns_true_if_class_implements_interface()
-    {
-        $this->addInterface('MyInterface');
-        $this->hasInterface('MyInterface')->shouldReturn(true);
-    }
-
-    function its_hasInterface_returns_false_if_class_does_not_implements_interface()
-    {
-        $this->hasInterface('MyInterface')->shouldReturn(false);
-    }
-
-    function it_supports_implementation_of_multiple_interfaces()
-    {
-        $this->addInterface('MyInterface');
-        $this->addInterface('MySecondInterface');
-        $this->getInterfaces()->shouldHaveCount(2);
-    }
-
-    function it_ignores_same_interfaces_added_twice()
-    {
-        $this->addInterface('MyInterface');
-        $this->addInterface('MyInterface');
-
-        $this->getInterfaces()->shouldHaveCount(1);
-        $this->getInterfaces()->shouldReturn(array('MyInterface'));
-    }
-
-    function it_does_not_have_methods_by_default()
-    {
-        $this->getMethods()->shouldHaveCount(0);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method1
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method2
-     */
-    function it_can_has_methods($method1, $method2)
-    {
-        $method1->getName()->willReturn('__construct');
-        $method2->getName()->willReturn('getName');
-
-        $this->addMethod($method1);
-        $this->addMethod($method2);
-
-        $this->getMethods()->shouldReturn(array(
-            '__construct' => $method1,
-            'getName'     => $method2
-        ));
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
-     */
-    function its_hasMethod_returns_true_if_method_exists($method)
-    {
-        $method->getName()->willReturn('getName');
-
-        $this->addMethod($method);
-
-        $this->hasMethod('getName')->shouldReturn(true);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
-     */
-    function its_getMethod_returns_method_by_name($method)
-    {
-        $method->getName()->willReturn('getName');
-
-        $this->addMethod($method);
-
-        $this->getMethod('getName')->shouldReturn($method);
-    }
-
-    function its_hasMethod_returns_false_if_method_does_not_exists()
-    {
-        $this->hasMethod('getName')->shouldReturn(false);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\MethodNode $method
-     */
-    function its_hasMethod_returns_false_if_method_has_been_removed($method)
-    {
-        $method->getName()->willReturn('getName');
-        $this->addMethod($method);
-        $this->removeMethod('getName');
-
-        $this->hasMethod('getName')->shouldReturn(false);
-    }
-
-
-    function it_does_not_have_properties_by_default()
-    {
-        $this->getProperties()->shouldHaveCount(0);
-    }
-
-    function it_is_able_to_have_properties()
-    {
-        $this->addProperty('title');
-        $this->addProperty('text', 'private');
-        $this->getProperties()->shouldReturn(array(
-            'title' => 'public',
-            'text'  => 'private'
-        ));
-    }
-
-    function its_addProperty_does_not_accept_unsupported_visibility()
-    {
-        $this->shouldThrow('InvalidArgumentException')->duringAddProperty('title', 'town');
-    }
-
-    function its_addProperty_lowercases_visibility_before_setting()
-    {
-        $this->addProperty('text', 'PRIVATE');
-        $this->getProperties()->shouldReturn(array('text' => 'private'));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php
deleted file mode 100644
index 7582706..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/Generator/Node/MethodNodeSpec.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler\Generator\Node;
-
-use PhpSpec\ObjectBehavior;
-
-class MethodNodeSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('getTitle');
-    }
-
-    function it_has_a_name()
-    {
-        $this->getName()->shouldReturn('getTitle');
-    }
-
-    function it_has_public_visibility_by_default()
-    {
-        $this->getVisibility()->shouldReturn('public');
-    }
-
-    function its_visibility_is_mutable()
-    {
-        $this->setVisibility('private');
-        $this->getVisibility()->shouldReturn('private');
-    }
-
-    function it_is_not_static_by_default()
-    {
-        $this->shouldNotBeStatic();
-    }
-
-    function it_does_not_return_a_reference_by_default()
-    {
-        $this->returnsReference()->shouldReturn(false);
-    }
-
-    function it_should_be_settable_as_returning_a_reference_through_setter()
-    {
-        $this->setReturnsReference();
-        $this->returnsReference()->shouldReturn(true);
-    } 
-
-    function it_should_be_settable_as_static_through_setter()
-    {
-        $this->setStatic();
-        $this->shouldBeStatic();
-    }
-
-    function it_accepts_only_supported_visibilities()
-    {
-        $this->shouldThrow('InvalidArgumentException')->duringSetVisibility('stealth');
-    }
-
-    function it_lowercases_visibility_before_setting_it()
-    {
-        $this->setVisibility('Public');
-        $this->getVisibility()->shouldReturn('public');
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument1
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument2
-     */
-    function its_useParentCode_causes_method_to_call_parent($argument1, $argument2)
-    {
-        $argument1->getName()->willReturn('objectName');
-        $argument2->getName()->willReturn('default');
-
-        $this->addArgument($argument1);
-        $this->addArgument($argument2);
-
-        $this->useParentCode();
-
-        $this->getCode()->shouldReturn(
-            'return parent::getTitle($objectName, $default);'
-        );
-    }
-
-    function its_code_is_mutable()
-    {
-        $this->setCode('echo "code";');
-        $this->getCode()->shouldReturn('echo "code";');
-    }
-
-    function its_reference_returning_methods_will_generate_exceptions()
-    {
-        $this->setCode('echo "code";');
-        $this->setReturnsReference();
-        $this->getCode()->shouldReturn("throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), 'getTitle');");
-    }
-
-    function its_setCode_provided_with_null_cleans_method_body()
-    {
-        $this->setCode(null);
-        $this->getCode()->shouldReturn('');
-    }
-
-    function it_is_constructable_with_code()
-    {
-        $this->beConstructedWith('getTitle', 'die();');
-        $this->getCode()->shouldReturn('die();');
-    }
-
-    function it_does_not_have_arguments_by_default()
-    {
-        $this->getArguments()->shouldHaveCount(0);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument1
-     * @param \Prophecy\Doubler\Generator\Node\ArgumentNode $argument2
-     */
-    function it_supports_adding_arguments($argument1, $argument2)
-    {
-        $this->addArgument($argument1);
-        $this->addArgument($argument2);
-
-        $this->getArguments()->shouldReturn(array($argument1, $argument2));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php
deleted file mode 100644
index 7026126..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/LazyDoubleSpec.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler;
-
-use PhpSpec\ObjectBehavior;
-
-class LazyDoubleSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\Doubler $doubler
-     */
-    function let($doubler)
-    {
-        $this->beConstructedWith($doubler);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
-     */
-    function it_returns_anonymous_double_instance_by_default($doubler, $double)
-    {
-        $doubler->double(null, array())->willReturn($double);
-
-        $this->getInstance()->shouldReturn($double);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
-     * @param \ReflectionClass                            $class
-     */
-    function it_returns_class_double_instance_if_set($doubler, $double, $class)
-    {
-        $doubler->double($class, array())->willReturn($double);
-
-        $this->setParentClass($class);
-
-        $this->getInstance()->shouldReturn($double);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double1
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double2
-     */
-    function it_returns_same_double_instance_if_called_2_times(
-        $doubler, $double1, $double2
-    )
-    {
-        $doubler->double(null, array())->willReturn($double1);
-        $doubler->double(null, array())->willReturn($double2);
-
-        $this->getInstance()->shouldReturn($double2);
-        $this->getInstance()->shouldReturn($double2);
-    }
-
-    function its_setParentClass_throws_ClassNotFoundException_if_class_not_found()
-    {
-        $this->shouldThrow('Prophecy\Exception\Doubler\ClassNotFoundException')
-            ->duringSetParentClass('SomeUnexistingClass');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
-     */
-    function its_setParentClass_throws_exception_if_prophecy_is_already_created(
-        $doubler, $double
-    )
-    {
-        $doubler->double(null, array())->willReturn($double);
-
-        $this->getInstance();
-
-        $this->shouldThrow('Prophecy\Exception\Doubler\DoubleException')
-            ->duringSetParentClass('stdClass');
-    }
-
-    function its_addInterface_throws_InterfaceNotFoundException_if_no_interface_found()
-    {
-        $this->shouldThrow('Prophecy\Exception\Doubler\InterfaceNotFoundException')
-            ->duringAddInterface('SomeUnexistingInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
-     */
-    function its_addInterface_throws_exception_if_prophecy_is_already_created(
-        $doubler, $double
-    )
-    {
-        $doubler->double(null, array())->willReturn($double);
-
-        $this->getInstance();
-
-        $this->shouldThrow('Prophecy\Exception\Doubler\DoubleException')
-            ->duringAddInterface('ArrayAccess');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php
deleted file mode 100644
index a3e7491..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Doubler;
-
-use PhpSpec\ObjectBehavior;
-
-class NameGeneratorSpec extends ObjectBehavior
-{
-    /**
-     * @param \ReflectionClass $class
-     */
-    function its_name_generates_name_based_on_simple_class_reflection($class)
-    {
-        $class->getName()->willReturn('stdClass');
-        $this->name($class, array())->shouldStartWith('Double\stdClass\\');
-    }
-
-    /**
-     * @param \ReflectionClass $class
-     */
-    function its_name_generates_name_based_on_namespaced_class_reflection($class)
-    {
-        $class->getName()->willReturn('Some\Custom\Class');
-        $this->name($class, array())->shouldStartWith('Double\Some\Custom\Class\P');
-    }
-
-    /**
-     * @param \ReflectionClass $interface1
-     * @param \ReflectionClass $interface2
-     */
-    function its_name_generates_name_based_on_interface_shortnames($interface1, $interface2)
-    {
-        $interface1->getShortName()->willReturn('HandlerInterface');
-        $interface2->getShortName()->willReturn('LoaderInterface');
-
-        $this->name(null, array($interface1, $interface2))->shouldStartWith(
-            'Double\HandlerInterface\LoaderInterface\P'
-        );
-    }
-
-    function it_generates_proper_name_for_no_class_and_interfaces_list()
-    {
-        $this->name(null, array())->shouldStartWith('Double\stdClass\P');
-    }
-
-    /**
-     * @param \ReflectionClass $class
-     * @param \ReflectionClass $interface1
-     * @param \ReflectionClass $interface2
-     */
-    function its_name_generates_name_based_only_on_class_if_its_available(
-        $class, $interface1, $interface2
-    )
-    {
-        $class->getName()->willReturn('Some\Custom\Class');
-        $interface1->getShortName()->willReturn('HandlerInterface');
-        $interface2->getShortName()->willReturn('LoaderInterface');
-
-        $this->name($class, array($interface1, $interface2))->shouldStartWith(
-            'Double\Some\Custom\Class\P'
-        );
-    }
-
-    public function getMatchers()
-    {
-        return array(
-            'startWith' => function ($subject, $string) {
-                return 0 === strpos($subject, $string);
-            },
-        );
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php
deleted file mode 100644
index 6fd1a5c..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Call/UnexpectedCallExceptionSpec.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Call;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy\Prophecy;
-
-class UnexpectedCallExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     */
-    function let($objectProphecy)
-    {
-        $this->beConstructedWith('msg', $objectProphecy, 'getName', array('arg1', 'arg2'));
-    }
-
-    function it_is_prophecy_exception()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prophecy\ObjectProphecyException');
-    }
-
-    function it_exposes_method_name_through_getter()
-    {
-        $this->getMethodName()->shouldReturn('getName');
-    }
-
-    function it_exposes_arguments_through_getter()
-    {
-        $this->getArguments()->shouldReturn(array('arg1', 'arg2'));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php
deleted file mode 100644
index 5824138..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassCreatorExceptionSpec.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Doubler;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy;
-
-class ClassCreatorExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
-     */
-    function let($node)
-    {
-        $this->beConstructedWith('', $node);
-    }
-
-    function it_is_a_prophecy_exception()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Exception');
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoublerException');
-    }
-
-    function it_contains_a_reflected_node($node)
-    {
-        $this->getClassNode()->shouldReturn($node);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php
deleted file mode 100644
index 21e31a3..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassMirrorExceptionSpec.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Doubler;
-
-use PhpSpec\ObjectBehavior;
-
-class ClassMirrorExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \ReflectionClass $class
-     */
-    function let($class)
-    {
-        $this->beConstructedWith('', $class);
-    }
-
-    function it_is_a_prophecy_exception()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Exception');
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoublerException');
-    }
-
-    function it_contains_a_reflected_class_link($class)
-    {
-        $this->getReflectedClass()->shouldReturn($class);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php
deleted file mode 100644
index 251512b..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/ClassNotFoundExceptionSpec.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Doubler;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy;
-
-class ClassNotFoundExceptionSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('msg', 'CustomClass');
-    }
-
-    function it_is_a_prophecy_exception()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Exception');
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoubleException');
-    }
-
-    function its_getClassname_returns_classname()
-    {
-        $this->getClassname()->shouldReturn('CustomClass');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php
deleted file mode 100644
index 6fe5a19..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/DoubleExceptionSpec.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Doubler;
-
-use PhpSpec\ObjectBehavior;
-
-class DoubleExceptionSpec extends ObjectBehavior
-{
-    function it_is_a_double_exception()
-    {
-        $this->shouldBeAnInstanceOf('RuntimeException');
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\DoublerException');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php
deleted file mode 100644
index ad1a439..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/InterfaceNotFoundExceptionSpec.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Doubler;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy;
-
-class InterfaceNotFoundExceptionSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('msg', 'CustomInterface');
-    }
-
-    function it_extends_ClassNotFoundException()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Doubler\ClassNotFoundException');
-    }
-
-    function its_getClassname_returns_classname()
-    {
-        $this->getClassname()->shouldReturn('CustomInterface');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php
deleted file mode 100644
index a889dd7..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Doubler/MethodNotFoundExceptionSpec.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Doubler;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy;
-
-class MethodNotFoundExceptionSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('', 'User', 'getName', array(1, 2, 3));
-    }
-
-    function it_is_DoubleException()
-    {
-        $this->shouldHaveType('Prophecy\Exception\Doubler\DoubleException');
-    }
-
-    function it_has_MethodName()
-    {
-        $this->getMethodName()->shouldReturn('getName');
-    }
-
-    function it_has_classnamej()
-    {
-        $this->getClassname()->shouldReturn('User');
-    }
-
-    function it_has_an_arguments_list()
-    {
-        $this->getArguments()->shouldReturn(array(1, 2, 3));
-    }
-
-    function it_has_a_default_null_argument_list()
-    {
-        $this->beConstructedWith('', 'User', 'getName');
-        $this->getArguments()->shouldReturn(null);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php
deleted file mode 100644
index 22a5ebd..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/AggregateExceptionSpec.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-class AggregateExceptionSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith(null);
-    }
-
-    function it_is_prediction_exception()
-    {
-        $this->shouldBeAnInstanceOf('RuntimeException');
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prediction\PredictionException');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     */
-    function it_can_store_objectProphecy_link($object)
-    {
-        $this->setObjectProphecy($object);
-        $this->getObjectProphecy()->shouldReturn($object);
-    }
-
-    function it_should_not_have_exceptions_at_the_beginning()
-    {
-        $this->getExceptions()->shouldHaveCount(0);
-    }
-
-    /**
-     * @param \Prophecy\Exception\Prediction\PredictionException $exception
-     */
-    function it_should_append_exception_through_append_method($exception)
-    {
-        $exception->getMessage()->willReturn('Exception #1');
-
-        $this->append($exception);
-
-        $this->getExceptions()->shouldReturn(array($exception));
-    }
-
-    /**
-     * @param \Prophecy\Exception\Prediction\PredictionException $exception
-     */
-    function it_should_update_message_during_append($exception)
-    {
-        $exception->getMessage()->willReturn('Exception #1');
-
-        $this->append($exception);
-
-        $this->getMessage()->shouldReturn("  Exception #1");
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php
deleted file mode 100644
index 473f1a2..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/NoCallsExceptionSpec.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-class NoCallsExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
-     */
-    function let($objectProphecy, $methodProphecy)
-    {
-        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
-
-        $this->beConstructedWith('message', $methodProphecy);
-    }
-
-    function it_is_PredictionException()
-    {
-        $this->shouldHaveType('Prophecy\Exception\Prediction\PredictionException');
-    }
-
-    function it_extends_MethodProphecyException()
-    {
-        $this->shouldHaveType('Prophecy\Exception\Prophecy\MethodProphecyException');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php
deleted file mode 100644
index adad975..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsCountExceptionSpec.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-class UnexpectedCallsCountExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
-     * @param \Prophecy\Call\Call               $call1
-     * @param \Prophecy\Call\Call               $call2
-     */
-    function let($objectProphecy, $methodProphecy, $call1, $call2)
-    {
-        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
-
-        $this->beConstructedWith('message', $methodProphecy, 5, array($call1, $call2));
-    }
-
-    function it_extends_UnexpectedCallsException()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prediction\UnexpectedCallsException');
-    }
-
-    function it_should_expose_expectedCount_through_getter()
-    {
-        $this->getExpectedCount()->shouldReturn(5);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php
deleted file mode 100644
index c0fe24d..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prediction/UnexpectedCallsExceptionSpec.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-class UnexpectedCallsExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
-     * @param \Prophecy\Call\Call               $call1
-     * @param \Prophecy\Call\Call               $call2
-     */
-    function let($objectProphecy, $methodProphecy, $call1, $call2)
-    {
-        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
-
-        $this->beConstructedWith('message', $methodProphecy, array($call1, $call2));
-    }
-
-    function it_is_PredictionException()
-    {
-        $this->shouldHaveType('Prophecy\Exception\Prediction\PredictionException');
-    }
-
-    function it_extends_MethodProphecyException()
-    {
-        $this->shouldHaveType('Prophecy\Exception\Prophecy\MethodProphecyException');
-    }
-
-    function it_should_expose_calls_list_through_getter($call1, $call2)
-    {
-        $this->getCalls()->shouldReturn(array($call1, $call2));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php
deleted file mode 100644
index 97cf9e1..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/MethodProphecyExceptionSpec.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy;
-
-class MethodProphecyExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
-     */
-    function let($objectProphecy, $methodProphecy)
-    {
-        $methodProphecy->getObjectProphecy()->willReturn($objectProphecy);
-
-        $this->beConstructedWith('message', $methodProphecy);
-    }
-
-    function it_extends_DoubleException()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prophecy\ObjectProphecyException');
-    }
-
-    function it_holds_a_stub_reference($methodProphecy)
-    {
-        $this->getMethodProphecy()->shouldReturn($methodProphecy);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php
deleted file mode 100644
index bcacfed..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Exception/Prophecy/ObjectProphecyExceptionSpec.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Exception\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-use spec\Prophecy\Exception\Prophecy;
-
-class ObjectProphecyExceptionSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     */
-    function let($objectProphecy)
-    {
-        $this->beConstructedWith('message', $objectProphecy);
-    }
-
-    function it_should_be_a_prophecy_exception()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Exception\Prophecy\ProphecyException');
-    }
-
-    function it_holds_double_reference($objectProphecy)
-    {
-        $this->getObjectProphecy()->shouldReturn($objectProphecy);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php
deleted file mode 100644
index 3da8c59..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallPredictionSpec.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prediction;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class CallPredictionSpec extends ObjectBehavior
-{
-    function it_is_prediction()
-    {
-        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     * @param \Prophecy\Call\Call               $call
-     */
-    function it_does_nothing_if_there_is_more_than_one_call_been_made($object, $method, $call)
-    {
-        $this->check(array($call), $object, $method)->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy    $object
-     * @param \Prophecy\Prophecy\MethodProphecy    $method
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
-     */
-    function it_throws_NoCallsException_if_no_calls_found($object, $method, $arguments)
-    {
-        $method->getObjectProphecy()->willReturn($object);
-        $method->getMethodName()->willReturn('getName');
-        $method->getArgumentsWildcard()->willReturn($arguments);
-        $arguments->__toString()->willReturn('123');
-        $object->reveal()->willReturn(new \stdClass());
-        $object->findProphecyMethodCalls('getName', Argument::any())->willReturn(array());
-
-        $this->shouldThrow('Prophecy\Exception\Prediction\NoCallsException')
-            ->duringCheck(array(), $object, $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php
deleted file mode 100644
index c670892..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallTimesPredictionSpec.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-class CallTimesPredictionSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith(2);
-    }
-
-    function it_is_prediction()
-    {
-        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     * @param \Prophecy\Call\Call               $call1
-     * @param \Prophecy\Call\Call               $call2
-     */
-    function it_does_nothing_if_there_were_exact_amount_of_calls_being_made(
-        $object, $method, $call1, $call2
-    )
-    {
-        $this->check(array($call1, $call2), $object, $method)->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy    $object
-     * @param \Prophecy\Prophecy\MethodProphecy    $method
-     * @param \Prophecy\Call\Call                  $call
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
-     */
-    function it_throws_UnexpectedCallsCountException_if_calls_found(
-        $object, $method, $call, $arguments
-    )
-    {
-        $method->getObjectProphecy()->willReturn($object);
-        $method->getMethodName()->willReturn('getName');
-        $method->getArgumentsWildcard()->willReturn($arguments);
-        $arguments->__toString()->willReturn('123');
-
-        $call->getMethodName()->willReturn('getName');
-        $call->getArguments()->willReturn(array(5, 4, 'three'));
-        $call->getCallPlace()->willReturn('unknown');
-
-        $this->shouldThrow('Prophecy\Exception\Prediction\UnexpectedCallsCountException')
-            ->duringCheck(array($call), $object, $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php
deleted file mode 100644
index 7fe475e..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/CallbackPredictionSpec.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-use RuntimeException;
-
-class CallbackPredictionSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('get_class');
-    }
-
-    function it_is_prediction()
-    {
-        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     * @param \Prophecy\Call\Call               $call
-     */
-    function it_proxies_call_to_callback($object, $method, $call)
-    {
-        $returnFirstCallCallback = function ($calls, $object, $method) {
-            throw new RuntimeException;
-        };
-
-        $this->beConstructedWith($returnFirstCallCallback);
-
-        $this->shouldThrow('RuntimeException')->duringCheck(array($call), $object, $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php
deleted file mode 100644
index a3ef9bc..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prediction/NoCallsPredictionSpec.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prediction;
-
-use PhpSpec\ObjectBehavior;
-
-class NoCallsPredictionSpec extends ObjectBehavior
-{
-    function it_is_prediction()
-    {
-        $this->shouldHaveType('Prophecy\Prediction\PredictionInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_does_nothing_if_there_is_no_calls_made($object, $method)
-    {
-        $this->check(array(), $object, $method)->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy    $object
-     * @param \Prophecy\Prophecy\MethodProphecy    $method
-     * @param \Prophecy\Call\Call                  $call
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
-     */
-    function it_throws_UnexpectedCallsException_if_calls_found($object, $method, $call, $arguments)
-    {
-        $method->getObjectProphecy()->willReturn($object);
-        $method->getMethodName()->willReturn('getName');
-        $method->getArgumentsWildcard()->willReturn($arguments);
-        $arguments->__toString()->willReturn('123');
-
-        $call->getMethodName()->willReturn('getName');
-        $call->getArguments()->willReturn(array(5, 4, 'three'));
-        $call->getCallPlace()->willReturn('unknown');
-
-        $this->shouldThrow('Prophecy\Exception\Prediction\UnexpectedCallsException')
-            ->duringCheck(array($call), $object, $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php
deleted file mode 100644
index 5d99b1b..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/CallbackPromiseSpec.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Promise;
-
-use PhpSpec\ObjectBehavior;
-
-class CallbackPromiseSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('get_class');
-    }
-
-    function it_is_promise()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_execute_closure_callback($object, $method)
-    {
-        $firstArgumentCallback = function ($args) {
-            return $args[0];
-        };
-
-        $this->beConstructedWith($firstArgumentCallback);
-
-        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_execute_static_array_callback($object, $method)
-    {
-        $firstArgumentCallback = array('spec\Prophecy\Promise\ClassCallback', 'staticCallbackMethod');
-
-        $this->beConstructedWith($firstArgumentCallback);
-
-        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_execute_instance_array_callback($object, $method)
-    {
-        $class = new ClassCallback();
-        $firstArgumentCallback = array($class, 'callbackMethod');
-
-        $this->beConstructedWith($firstArgumentCallback);
-
-        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_execute_string_function_callback($object, $method)
-    {
-        $firstArgumentCallback = 'spec\Prophecy\Promise\functionCallbackFirstArgument';
-
-        $this->beConstructedWith($firstArgumentCallback);
-
-        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
-    }
-
-}
-
-/**
- * Class used to test callbackpromise
- *
- * @param array
- * @return string
- */
-class ClassCallback
-{
-    /**
-     * @param array $args
-     */
-    function callbackMethod($args)
-    {
-        return $args[0];
-    }
-
-    /**
-     * @param array $args
-     */
-    static function staticCallbackMethod($args)
-    {
-        return $args[0];
-    }
-}
-
-/**
- * Callback function used to test callbackpromise
- *
- * @param array
- * @return string
- */
-function functionCallbackFirstArgument($args)
-{
-    return $args[0];
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php
deleted file mode 100644
index 4acb7bb..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnArgumentPromiseSpec.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Promise;
-
-use PhpSpec\ObjectBehavior;
-
-class ReturnArgumentPromiseSpec extends ObjectBehavior
-{
-    function it_is_promise()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_return_first_argument_if_provided($object, $method)
-    {
-        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('one');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_return_null_if_no_arguments_provided($object, $method)
-    {
-        $this->execute(array(), $object, $method)->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_should_return_nth_argument_if_provided($object, $method)
-    {
-        $this->beConstructedWith(1);
-        $this->execute(array('one', 'two'), $object, $method)->shouldReturn('two');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php
deleted file mode 100644
index 18bfd87..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ReturnPromiseSpec.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Promise;
-
-use PhpSpec\ObjectBehavior;
-
-class ReturnPromiseSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith(array(42));
-    }
-
-    function it_is_promise()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_returns_value_it_was_constructed_with($object, $method)
-    {
-        $this->execute(array(), $object, $method)->shouldReturn(42);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_always_returns_last_value_left_in_the_return_values($object, $method)
-    {
-        $this->execute(array(), $object, $method)->shouldReturn(42);
-        $this->execute(array(), $object, $method)->shouldReturn(42);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_consequently_returns_multiple_values_it_was_constructed_with($object, $method)
-    {
-        $this->beConstructedWith(array(42, 24, 12));
-
-        $this->execute(array(), $object, $method)->shouldReturn(42);
-        $this->execute(array(), $object, $method)->shouldReturn(24);
-        $this->execute(array(), $object, $method)->shouldReturn(12);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_returns_null_if_constructed_with_empty_array($object, $method)
-    {
-        $this->beConstructedWith(array());
-
-        $this->execute(array(), $object, $method)->shouldReturn(null);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php
deleted file mode 100644
index 5f44897..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Promise/ThrowPromiseSpec.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Promise;
-
-use PhpSpec\ObjectBehavior;
-
-class ThrowPromiseSpec extends ObjectBehavior
-{
-    function let()
-    {
-        $this->beConstructedWith('RuntimeException');
-    }
-
-    function it_is_promise()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Promise\PromiseInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_instantiates_and_throws_exception_from_provided_classname($object, $method)
-    {
-        $this->beConstructedWith('InvalidArgumentException');
-
-        $this->shouldThrow('InvalidArgumentException')
-            ->duringExecute(array(), $object, $method);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_instantiates_exceptions_with_required_arguments($object, $method)
-    {
-        $this->beConstructedWith('spec\Prophecy\Promise\RequiredArgumentException');
-
-        $this->shouldThrow('spec\Prophecy\Promise\RequiredArgumentException')
-            ->duringExecute(array(), $object, $method);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $object
-     * @param \Prophecy\Prophecy\MethodProphecy $method
-     */
-    function it_throws_provided_exception($object, $method)
-    {
-        $this->beConstructedWith($exc = new \RuntimeException('Some exception'));
-
-        $this->shouldThrow($exc)->duringExecute(array(), $object, $method);
-    }
-}
-
-class RequiredArgumentException extends \Exception
-{
-    final public function __construct($message, $code) {}
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php
deleted file mode 100644
index d8299a7..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/MethodProphecySpec.php
+++ /dev/null
@@ -1,381 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-
-class MethodProphecySpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Prophecy\ObjectProphecy $objectProphecy
-     * @param \ReflectionClass                  $reflection
-     */
-    function let($objectProphecy, $reflection)
-    {
-        $objectProphecy->reveal()->willReturn($reflection);
-
-        $this->beConstructedWith($objectProphecy, 'getName', null);
-    }
-
-    function it_is_initializable()
-    {
-        $this->shouldHaveType('Prophecy\Prophecy\MethodProphecy');
-    }
-
-    function its_constructor_throws_MethodNotFoundException_for_unexisting_method($objectProphecy)
-    {
-        $this->shouldThrow('Prophecy\Exception\Doubler\MethodNotFoundException')->during(
-            '__construct', array($objectProphecy, 'getUnexisting', null)
-        );
-    }
-
-    function its_constructor_throws_MethodProphecyException_for_final_methods($objectProphecy, ClassWithFinalMethod $subject)
-    {
-        $objectProphecy->reveal()->willReturn($subject);
-
-        $this->shouldThrow('Prophecy\Exception\Prophecy\MethodProphecyException')->during(
-            '__construct', array($objectProphecy, 'finalMethod', null)
-        );
-    }
-
-    function its_constructor_transforms_array_passed_as_3rd_argument_to_ArgumentsWildcard(
-        $objectProphecy
-    )
-    {
-        $this->beConstructedWith($objectProphecy, 'getName', array(42, 33));
-
-        $wildcard = $this->getArgumentsWildcard();
-        $wildcard->shouldNotBe(null);
-        $wildcard->__toString()->shouldReturn('exact(42), exact(33)');
-    }
-
-    function its_constructor_does_not_touch_third_argument_if_it_is_null($objectProphecy)
-    {
-        $this->beConstructedWith($objectProphecy, 'getName', null);
-
-        $wildcard = $this->getArgumentsWildcard();
-        $wildcard->shouldBe(null);
-    }
-
-    /**
-     * @param \Prophecy\Promise\PromiseInterface $promise
-     */
-    function it_records_promise_through_will_method($promise, $objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->will($promise);
-        $this->getPromise()->shouldReturn($promise);
-    }
-
-    /**
-     * @param \Prophecy\Promise\PromiseInterface $promise
-     */
-    function it_adds_itself_to_ObjectProphecy_during_call_to_will($objectProphecy, $promise)
-    {
-        $objectProphecy->addMethodProphecy($this)->shouldBeCalled();
-
-        $this->will($promise);
-    }
-
-    function it_adds_ReturnPromise_during_willReturn_call($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->willReturn(42);
-        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\ReturnPromise');
-    }
-
-    function it_adds_ThrowPromise_during_willThrow_call($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->willThrow('RuntimeException');
-        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\ThrowPromise');
-    }
-
-    function it_adds_ReturnArgumentPromise_during_willReturnArgument_call($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->willReturnArgument();
-        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\ReturnArgumentPromise');
-    }
-
-    function it_adds_ReturnArgumentPromise_during_willReturnArgument_call_with_index_argument($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->willReturnArgument(1);
-        $promise = $this->getPromise();
-        $promise->shouldBeAnInstanceOf('Prophecy\Promise\ReturnArgumentPromise');
-        $promise->execute(array('one', 'two'), $objectProphecy, $this)->shouldReturn('two');
-    }
-
-    function it_adds_CallbackPromise_during_will_call_with_callback_argument($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $callback = function () {};
-
-        $this->will($callback);
-        $this->getPromise()->shouldBeAnInstanceOf('Prophecy\Promise\CallbackPromise');
-    }
-
-    /**
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     */
-    function it_records_prediction_through_should_method($prediction, $objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->callOnWrappedObject('should', array($prediction));
-        $this->getPrediction()->shouldReturn($prediction);
-    }
-
-    function it_adds_CallbackPrediction_during_should_call_with_callback_argument($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $callback = function () {};
-
-        $this->callOnWrappedObject('should', array($callback));
-        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\CallbackPrediction');
-    }
-
-    /**
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     */
-    function it_adds_itself_to_ObjectProphecy_during_call_to_should($objectProphecy, $prediction)
-    {
-        $objectProphecy->addMethodProphecy($this)->shouldBeCalled();
-
-        $this->callOnWrappedObject('should', array($prediction));
-    }
-
-    function it_adds_CallPrediction_during_shouldBeCalled_call($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->callOnWrappedObject('shouldBeCalled', array());
-        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\CallPrediction');
-    }
-
-    function it_adds_NoCallsPrediction_during_shouldNotBeCalled_call($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->callOnWrappedObject('shouldNotBeCalled', array());
-        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\NoCallsPrediction');
-    }
-
-    function it_adds_CallTimesPrediction_during_shouldBeCalledTimes_call($objectProphecy)
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->callOnWrappedObject('shouldBeCalledTimes', array(5));
-        $this->getPrediction()->shouldBeAnInstanceOf('Prophecy\Prediction\CallTimesPrediction');
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     */
-    function it_checks_prediction_via_shouldHave_method_call(
-        $objectProphecy, $arguments, $prediction, $call1, $call2
-    )
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-
-        $this->withArguments($arguments);
-        $this->callOnWrappedObject('shouldHave', array($prediction));
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     */
-    function it_sets_return_promise_during_shouldHave_call_if_none_was_set_before(
-        $objectProphecy, $arguments, $prediction, $call1, $call2
-    )
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-
-        $this->withArguments($arguments);
-        $this->callOnWrappedObject('shouldHave', array($prediction));
-
-        $this->getPromise()->shouldReturnAnInstanceOf('Prophecy\Promise\ReturnPromise');
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     * @param \Prophecy\Promise\PromiseInterface       $promise
-     */
-    function it_does_not_set_return_promise_during_shouldHave_call_if_it_was_set_before(
-        $objectProphecy, $arguments, $prediction, $call1, $call2, $promise
-    )
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-
-        $this->will($promise);
-        $this->withArguments($arguments);
-        $this->callOnWrappedObject('shouldHave', array($prediction));
-
-        $this->getPromise()->shouldReturn($promise);
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction1
-     * @param \Prophecy\Prediction\PredictionInterface $prediction2
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     * @param \Prophecy\Promise\PromiseInterface       $promise
-     */
-    function it_records_checked_predictions(
-        $objectProphecy, $arguments, $prediction1, $prediction2, $call1, $call2, $promise
-    )
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-        $prediction1->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->willReturn();
-        $prediction2->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->willReturn();
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-
-        $this->will($promise);
-        $this->withArguments($arguments);
-        $this->callOnWrappedObject('shouldHave', array($prediction1));
-        $this->callOnWrappedObject('shouldHave', array($prediction2));
-
-        $this->getCheckedPredictions()->shouldReturn(array($prediction1, $prediction2));
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     * @param \Prophecy\Promise\PromiseInterface       $promise
-     */
-    function it_records_even_failed_checked_predictions(
-        $objectProphecy, $arguments, $prediction, $call1, $call2, $promise
-    )
-    {
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->willThrow(new \RuntimeException());
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-
-        $this->will($promise);
-        $this->withArguments($arguments);
-
-        try {
-          $this->callOnWrappedObject('shouldHave', array($prediction));
-        } catch (\Exception $e) {}
-
-        $this->getCheckedPredictions()->shouldReturn(array($prediction));
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     */
-    function it_checks_prediction_via_shouldHave_method_call_with_callback(
-        $objectProphecy, $arguments, $prediction, $call1, $call2
-    )
-    {
-        $callback = function ($calls, $object, $method) {
-            throw new \RuntimeException;
-        };
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-
-        $this->withArguments($arguments);
-        $this->shouldThrow('RuntimeException')->duringShouldHave($callback);
-    }
-
-    function it_does_nothing_during_checkPrediction_if_no_prediction_set()
-    {
-        $this->checkPrediction()->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard     $arguments
-     * @param \Prophecy\Prediction\PredictionInterface $prediction
-     * @param \Prophecy\Call\Call                      $call1
-     * @param \Prophecy\Call\Call                      $call2
-     */
-    function it_checks_set_prediction_during_checkPrediction(
-        $objectProphecy, $arguments, $prediction, $call1, $call2
-    )
-    {
-        $prediction->check(array($call1, $call2), $objectProphecy->getWrappedObject(), $this)->shouldBeCalled();
-        $objectProphecy->findProphecyMethodCalls('getName', $arguments)->willReturn(array($call1, $call2));
-        $objectProphecy->addMethodProphecy($this)->willReturn(null);
-
-        $this->withArguments($arguments);
-        $this->callOnWrappedObject('should', array($prediction));
-        $this->checkPrediction();
-    }
-
-    function it_links_back_to_ObjectProphecy_through_getter($objectProphecy)
-    {
-        $this->getObjectProphecy()->shouldReturn($objectProphecy);
-    }
-
-    function it_has_MethodName()
-    {
-        $this->getMethodName()->shouldReturn('getName');
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
-     */
-    function it_contains_ArgumentsWildcard_it_was_constructed_with($objectProphecy, $wildcard)
-    {
-        $this->beConstructedWith($objectProphecy, 'getName', $wildcard);
-
-        $this->getArgumentsWildcard()->shouldReturn($wildcard);
-    }
-
-    /**
-     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
-     */
-    function its_ArgumentWildcard_is_mutable_through_setter($wildcard)
-    {
-        $this->withArguments($wildcard);
-
-        $this->getArgumentsWildcard()->shouldReturn($wildcard);
-    }
-
-    function its_withArguments_transforms_passed_array_into_ArgumentsWildcard()
-    {
-        $this->withArguments(array(42, 33));
-
-        $wildcard = $this->getArgumentsWildcard();
-        $wildcard->shouldNotBe(null);
-        $wildcard->__toString()->shouldReturn('exact(42), exact(33)');
-    }
-
-    function its_withArguments_throws_exception_if_wrong_arguments_provided()
-    {
-        $this->shouldThrow('Prophecy\Exception\InvalidArgumentException')->duringWithArguments(42);
-    }
-}
-
-class ClassWithFinalMethod
-{
-    final public function finalMethod() {}
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php
deleted file mode 100644
index 00f57fe..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/ObjectProphecySpec.php
+++ /dev/null
@@ -1,305 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class ObjectProphecySpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\LazyDouble                $lazyDouble
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
-     */
-    function let($lazyDouble, $double)
-    {
-        $this->beConstructedWith($lazyDouble);
-
-        $lazyDouble->getInstance()->willReturn($double);
-    }
-
-    function it_implements_ProphecyInterface()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Prophecy\ProphecyInterface');
-    }
-
-    function it_sets_parentClass_during_willExtend_call($lazyDouble)
-    {
-        $lazyDouble->setParentClass('123')->shouldBeCalled();
-
-        $this->willExtend('123');
-    }
-
-    function it_adds_interface_during_willImplement_call($lazyDouble)
-    {
-        $lazyDouble->addInterface('222')->shouldBeCalled();
-
-        $this->willImplement('222');
-    }
-
-    function it_sets_constructor_arguments_during_willBeConstructedWith_call($lazyDouble)
-    {
-        $lazyDouble->setArguments(array(1, 2, 5))->shouldBeCalled();
-
-        $this->willBeConstructedWith(array(1, 2, 5));
-    }
-
-    function it_does_not_have_method_prophecies_by_default()
-    {
-        $this->getMethodProphecies()->shouldHaveCount(0);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $method1
-     * @param \Prophecy\Prophecy\MethodProphecy    $method2
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments
-     */
-    function it_should_get_method_prophecies_by_method_name($method1, $method2, $arguments)
-    {
-        $method1->getMethodName()->willReturn('getName');
-        $method1->getArgumentsWildcard()->willReturn($arguments);
-        $method2->getMethodName()->willReturn('setName');
-        $method2->getArgumentsWildcard()->willReturn($arguments);
-
-        $this->addMethodProphecy($method1);
-        $this->addMethodProphecy($method2);
-
-        $methods = $this->getMethodProphecies('setName');
-        $methods->shouldHaveCount(1);
-        $methods[0]->getMethodName()->shouldReturn('setName');
-    }
-
-    function it_should_return_empty_array_if_no_method_prophecies_found()
-    {
-        $methods = $this->getMethodProphecies('setName');
-        $methods->shouldHaveCount(0);
-    }
-
-    /**
-     * @param \Prophecy\Call\CallCenter $callCenter
-     */
-    function it_should_proxy_makeProphecyMethodCall_to_CallCenter($lazyDouble, $callCenter)
-    {
-        $this->beConstructedWith($lazyDouble, $callCenter);
-
-        $callCenter->makeCall($this->getWrappedObject(), 'setName', array('everzet'))->willReturn(42);
-
-        $this->makeProphecyMethodCall('setName', array('everzet'))->shouldReturn(42);
-    }
-
-    /**
-     * @param \Prophecy\Call\CallCenter            $callCenter
-     * @param \Prophecy\Prophecy\RevealerInterface $revealer
-     */
-    function it_should_reveal_arguments_and_return_values_from_callCenter(
-        $lazyDouble, $callCenter, $revealer
-    )
-    {
-        $this->beConstructedWith($lazyDouble, $callCenter, $revealer);
-
-        $revealer->reveal(array('question'))->willReturn(array('life'));
-        $revealer->reveal('answer')->willReturn(42);
-
-        $callCenter->makeCall($this->getWrappedObject(), 'setName', array('life'))->willReturn('answer');
-
-        $this->makeProphecyMethodCall('setName', array('question'))->shouldReturn(42);
-    }
-
-    /**
-     * @param \Prophecy\Call\CallCenter            $callCenter
-     * @param \Prophecy\Argument\ArgumentsWildcard $wildcard
-     * @param \Prophecy\Call\Call                  $call
-     */
-    function it_should_proxy_getProphecyMethodCalls_to_CallCenter(
-        $lazyDouble, $callCenter, $wildcard, $call
-    )
-    {
-        $this->beConstructedWith($lazyDouble, $callCenter);
-
-        $callCenter->findCalls('setName', $wildcard)->willReturn(array($call));
-
-        $this->findProphecyMethodCalls('setName', $wildcard)->shouldReturn(array($call));
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard
-     */
-    function its_addMethodProphecy_adds_method_prophecy(
-        $methodProphecy, $argumentsWildcard
-    )
-    {
-        $methodProphecy->getArgumentsWildcard()->willReturn($argumentsWildcard);
-        $methodProphecy->getMethodName()->willReturn('getUsername');
-
-        $this->addMethodProphecy($methodProphecy);
-
-        $this->getMethodProphecies()->shouldReturn(array(
-            'getUsername' => array($methodProphecy)
-        ));
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy1
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy2
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard1
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard2
-     */
-    function its_addMethodProphecy_handles_prophecies_with_different_arguments(
-        $methodProphecy1, $methodProphecy2, $argumentsWildcard1, $argumentsWildcard2
-    )
-    {
-        $methodProphecy1->getArgumentsWildcard()->willReturn($argumentsWildcard1);
-        $methodProphecy1->getMethodName()->willReturn('getUsername');
-
-        $methodProphecy2->getArgumentsWildcard()->willReturn($argumentsWildcard2);
-        $methodProphecy2->getMethodName()->willReturn('getUsername');
-
-        $this->addMethodProphecy($methodProphecy1);
-        $this->addMethodProphecy($methodProphecy2);
-
-        $this->getMethodProphecies()->shouldReturn(array(
-            'getUsername' => array(
-                $methodProphecy1,
-                $methodProphecy2,
-            )
-        ));
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy1
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy2
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard1
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard2
-     */
-    function its_addMethodProphecy_handles_prophecies_for_different_methods(
-        $methodProphecy1, $methodProphecy2, $argumentsWildcard1, $argumentsWildcard2
-    )
-    {
-        $methodProphecy1->getArgumentsWildcard()->willReturn($argumentsWildcard1);
-        $methodProphecy1->getMethodName()->willReturn('getUsername');
-
-        $methodProphecy2->getArgumentsWildcard()->willReturn($argumentsWildcard2);
-        $methodProphecy2->getMethodName()->willReturn('isUsername');
-
-        $this->addMethodProphecy($methodProphecy1);
-        $this->addMethodProphecy($methodProphecy2);
-
-        $this->getMethodProphecies()->shouldReturn(array(
-            'getUsername' => array(
-                $methodProphecy1
-            ),
-            'isUsername' => array(
-                $methodProphecy2
-            )
-        ));
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy $methodProphecy
-     */
-    function its_addMethodProphecy_throws_exception_when_method_has_no_ArgumentsWildcard(
-        $methodProphecy
-    )
-    {
-        $methodProphecy->getArgumentsWildcard()->willReturn(null);
-        $methodProphecy->getObjectProphecy()->willReturn($this);
-        $methodProphecy->getMethodName()->willReturn('getTitle');
-
-        $this->shouldThrow('Prophecy\Exception\Prophecy\MethodProphecyException')->duringAddMethodProphecy(
-            $methodProphecy
-        );
-    }
-
-    function it_returns_null_after_checkPredictions_call_if_there_is_no_method_prophecies()
-    {
-        $this->checkProphecyMethodsPredictions()->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy1
-     * @param \Prophecy\Prophecy\MethodProphecy    $methodProphecy2
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard1
-     * @param \Prophecy\Argument\ArgumentsWildcard $argumentsWildcard2
-     */
-    function it_throws_AggregateException_during_checkPredictions_if_predictions_fail(
-        $methodProphecy1, $methodProphecy2, $argumentsWildcard1, $argumentsWildcard2
-    )
-    {
-        $methodProphecy1->getMethodName()->willReturn('getName');
-        $methodProphecy1->getArgumentsWildcard()->willReturn($argumentsWildcard1);
-        $methodProphecy1->checkPrediction()
-            ->willThrow('Prophecy\Exception\Prediction\AggregateException');
-
-        $methodProphecy2->getMethodName()->willReturn('setName');
-        $methodProphecy2->getArgumentsWildcard()->willReturn($argumentsWildcard2);
-        $methodProphecy2->checkPrediction()
-            ->willThrow('Prophecy\Exception\Prediction\AggregateException');
-
-        $this->addMethodProphecy($methodProphecy1);
-        $this->addMethodProphecy($methodProphecy2);
-
-        $this->shouldThrow('Prophecy\Exception\Prediction\AggregateException')
-            ->duringCheckProphecyMethodsPredictions();
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Doubler                   $doubler
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $reflection
-     */
-    function it_returns_new_MethodProphecy_instance_for_arbitrary_call($doubler, $reflection)
-    {
-        $doubler->double(Argument::any())->willReturn($reflection);
-
-        $return = $this->getProphecy();
-        $return->shouldBeAnInstanceOf('Prophecy\Prophecy\MethodProphecy');
-        $return->getMethodName()->shouldReturn('getProphecy');
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Doubler                   $doubler
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $reflection
-     */
-    function it_returns_same_MethodProphecy_for_same_registered_signature($doubler, $reflection)
-    {
-        $doubler->double(Argument::any())->willReturn($reflection);
-
-        $this->addMethodProphecy($methodProphecy1 = $this->getProphecy(1, 2, 3));
-        $methodProphecy2 = $this->getProphecy(1, 2, 3);
-
-        $methodProphecy2->shouldBe($methodProphecy1);
-    }
-
-    /**
-     * @param \Prophecy\Doubler\Doubler                   $doubler
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $reflection
-     */
-    function it_returns_new_MethodProphecy_for_different_signatures($doubler, $reflection)
-    {
-        $doubler->double(Argument::any())->willReturn($reflection);
-
-        $value = new ObjectProphecySpecFixtureB('ABC');
-        $value2 = new ObjectProphecySpecFixtureB('CBA');
-
-        $this->addMethodProphecy($methodProphecy1 = $this->getProphecy(1, 2, 3, $value));
-        $methodProphecy2 = $this->getProphecy(1, 2, 3, $value2);
-
-        $methodProphecy2->shouldNotBe($methodProphecy1);
-    }
-}
-
-class ObjectProphecySpecFixtureA
-{
-	public $errors;
-}
-
-class ObjectProphecySpecFixtureB extends ObjectProphecySpecFixtureA
-{
-    public $errors;
-    public $value = null;
-
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php
deleted file mode 100644
index 4d83d73..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Prophecy/RevealerSpec.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-
-class RevealerSpec extends ObjectBehavior
-{
-    function it_is_revealer()
-    {
-        $this->shouldBeAnInstanceOf('Prophecy\Prophecy\RevealerInterface');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecyInterface $prophecy
-     * @param \stdClass                            $object
-     */
-    function it_reveals_single_instance_of_ProphecyInterface($prophecy, $object)
-    {
-        $prophecy->reveal()->willReturn($object);
-
-        $this->reveal($prophecy)->shouldReturn($object);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecyInterface $prophecy1
-     * @param \Prophecy\Prophecy\ProphecyInterface $prophecy2
-     * @param \stdClass                            $object1
-     * @param \stdClass                            $object2
-     */
-    function it_reveals_instances_of_ProphecyInterface_inside_array(
-        $prophecy1, $prophecy2, $object1, $object2
-    )
-    {
-        $prophecy1->reveal()->willReturn($object1);
-        $prophecy2->reveal()->willReturn($object2);
-
-        $this->reveal(array(
-            array('item' => $prophecy2),
-            $prophecy1
-        ))->shouldReturn(array(
-            array('item' => $object2),
-            $object1
-        ));
-    }
-
-    function it_does_not_touch_non_prophecy_interface()
-    {
-        $this->reveal(42)->shouldReturn(42);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php
deleted file mode 100644
index 74d5976..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/ProphetSpec.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace spec\Prophecy;
-
-use PhpSpec\ObjectBehavior;
-use Prophecy\Argument;
-
-class ProphetSpec extends ObjectBehavior
-{
-    /**
-     * @param \Prophecy\Doubler\Doubler                   $doubler
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $double
-     */
-    function let($doubler, $double)
-    {
-        $doubler->double(null, array())->willReturn($double);
-
-        $this->beConstructedWith($doubler);
-    }
-
-    function it_constructs_new_prophecy_on_prophesize_call()
-    {
-        $prophecy = $this->prophesize();
-        $prophecy->shouldBeAnInstanceOf('Prophecy\Prophecy\ObjectProphecy');
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $newDouble
-     */
-    function it_constructs_new_prophecy_with_parent_class_if_specified($doubler, $newDouble)
-    {
-        $doubler->double(Argument::any(), array())->willReturn($newDouble);
-
-        $this->prophesize('Prophecy\Prophet')->reveal()->shouldReturn($newDouble);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\ProphecySubjectInterface $newDouble
-     */
-    function it_constructs_new_prophecy_with_interface_if_specified($doubler, $newDouble)
-    {
-        $doubler->double(null, Argument::any())->willReturn($newDouble);
-
-        $this->prophesize('ArrayAccess')->reveal()->shouldReturn($newDouble);
-    }
-
-    function it_exposes_all_created_prophecies_through_getter()
-    {
-        $prophecy1 = $this->prophesize();
-        $prophecy2 = $this->prophesize();
-
-        $this->getProphecies()->shouldReturn(array($prophecy1, $prophecy2));
-    }
-
-    function it_does_nothing_during_checkPredictions_call_if_no_predictions_defined()
-    {
-        $this->checkPredictions()->shouldReturn(null);
-    }
-
-    /**
-     * @param \Prophecy\Prophecy\MethodProphecy    $method1
-     * @param \Prophecy\Prophecy\MethodProphecy    $method2
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments1
-     * @param \Prophecy\Argument\ArgumentsWildcard $arguments2
-     */
-    function it_throws_AggregateException_if_defined_predictions_fail(
-        $method1, $method2, $arguments1, $arguments2
-    )
-    {
-        $method1->getMethodName()->willReturn('getName');
-        $method1->getArgumentsWildcard()->willReturn($arguments1);
-        $method1->checkPrediction()->willReturn(null);
-
-        $method2->getMethodName()->willReturn('isSet');
-        $method2->getArgumentsWildcard()->willReturn($arguments2);
-        $method2->checkPrediction()->willThrow(
-            'Prophecy\Exception\Prediction\AggregateException'
-        );
-
-        $this->prophesize()->addMethodProphecy($method1);
-        $this->prophesize()->addMethodProphecy($method2);
-
-        $this->shouldThrow('Prophecy\Exception\Prediction\AggregateException')
-            ->duringCheckPredictions();
-    }
-
-    function it_exposes_doubler_through_getter($doubler)
-    {
-        $this->getDoubler()->shouldReturn($doubler);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php b/core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php
deleted file mode 100644
index a4eef59..0000000
--- a/core/vendor/phpspec/prophecy/spec/Prophecy/Util/StringUtilSpec.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-namespace spec\Prophecy\Util;
-
-use PhpSpec\ObjectBehavior;
-
-class StringUtilSpec extends ObjectBehavior
-{
-    function it_generates_proper_string_representation_for_integer()
-    {
-        $this->stringify(42)->shouldReturn('42');
-    }
-
-    function it_generates_proper_string_representation_for_string()
-    {
-        $this->stringify('some string')->shouldReturn('"some string"');
-    }
-
-    function it_generates_single_line_representation_for_multiline_string()
-    {
-        $this->stringify("some\nstring")->shouldReturn('"some\\nstring"');
-    }
-
-    function it_generates_proper_string_representation_for_double()
-    {
-        $this->stringify(42.3)->shouldReturn('42.3');
-    }
-
-    function it_generates_proper_string_representation_for_boolean_true()
-    {
-        $this->stringify(true)->shouldReturn('true');
-    }
-
-    function it_generates_proper_string_representation_for_boolean_false()
-    {
-        $this->stringify(false)->shouldReturn('false');
-    }
-
-    function it_generates_proper_string_representation_for_null()
-    {
-        $this->stringify(null)->shouldReturn('null');
-    }
-
-    function it_generates_proper_string_representation_for_empty_array()
-    {
-        $this->stringify(array())->shouldReturn('[]');
-    }
-
-    function it_generates_proper_string_representation_for_array()
-    {
-        $this->stringify(array('zet', 42))->shouldReturn('["zet", 42]');
-    }
-
-    function it_generates_proper_string_representation_for_hash_containing_one_value()
-    {
-        $this->stringify(array('ever' => 'zet'))->shouldReturn('["ever" => "zet"]');
-    }
-
-    function it_generates_proper_string_representation_for_hash()
-    {
-        $this->stringify(array('ever' => 'zet', 52 => 'hey', 'num' => 42))->shouldReturn(
-            '["ever" => "zet", 52 => "hey", "num" => 42]'
-        );
-    }
-
-    function it_generates_proper_string_representation_for_resource()
-    {
-        $resource = fopen(__FILE__, 'r');
-        $this->stringify($resource)->shouldReturn('stream:'.$resource);
-    }
-
-    /**
-     * @param \stdClass $object
-     */
-    function it_generates_proper_string_representation_for_object($object)
-    {
-        $objHash = sprintf('%s:%s',
-            get_class($object->getWrappedObject()),
-            spl_object_hash($object->getWrappedObject())
-        ) . " Object (\n    'objectProphecy' => Prophecy\Prophecy\ObjectProphecy Object (*Prophecy*)\n)";
-
-        $this->stringify($object)->shouldReturn("$objHash");
-    }
-
-    /**
-     * @param stdClass $object
-     */
-    function it_generates_proper_string_representation_for_object_without_exporting($object)
-    {
-        $objHash = sprintf('%s:%s',
-            get_class($object->getWrappedObject()),
-            spl_object_hash($object->getWrappedObject())
-        );
-
-        $this->stringify($object, false)->shouldReturn("$objHash");
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument.php
deleted file mode 100644
index f2b3364..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy;
-
-use Prophecy\Argument\Token;
-
-/**
- * Argument tokens shortcuts.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Argument
-{
-    /**
-     * Checks that argument is exact value or object.
-     *
-     * @param mixed $value
-     *
-     * @return Token\ExactValueToken
-     */
-    public static function exact($value)
-    {
-        return new Token\ExactValueToken($value);
-    }
-
-    /**
-     * Checks that argument is of specific type or instance of specific class.
-     *
-     * @param string $type Type name (`integer`, `string`) or full class name
-     *
-     * @return Token\TypeToken
-     */
-    public static function type($type)
-    {
-        return new Token\TypeToken($type);
-    }
-
-    /**
-     * Checks that argument object has specific state.
-     *
-     * @param string $methodName
-     * @param mixed  $value
-     *
-     * @return Token\ObjectStateToken
-     */
-    public static function which($methodName, $value)
-    {
-        return new Token\ObjectStateToken($methodName, $value);
-    }
-
-    /**
-     * Checks that argument matches provided callback.
-     *
-     * @param callable $callback
-     *
-     * @return Token\CallbackToken
-     */
-    public static function that($callback)
-    {
-        return new Token\CallbackToken($callback);
-    }
-
-    /**
-     * Matches any single value.
-     *
-     * @return Token\AnyValueToken
-     */
-    public static function any()
-    {
-        return new Token\AnyValueToken;
-    }
-
-    /**
-     * Matches all values to the rest of the signature.
-     *
-     * @return Token\AnyValuesToken
-     */
-    public static function cetera()
-    {
-        return new Token\AnyValuesToken;
-    }
-
-    /**
-     * Checks that argument matches all tokens
-     *
-     * @param mixed ... a list of tokens
-     *
-     * @return Token\LogicalAndToken
-     */
-    public static function allOf()
-    {
-        return new Token\LogicalAndToken(func_get_args());
-    }
-
-    /**
-     * Checks that argument array or countable object has exact number of elements.
-     *
-     * @param integer $value array elements count
-     *
-     * @return Token\ArrayCountToken
-     */
-    public static function size($value)
-    {
-        return new Token\ArrayCountToken($value);
-    }
-
-    /**
-     * Checks that argument array contains (key, value) pair
-     *
-     * @param mixed $key   exact value or token
-     * @param mixed $value exact value or token
-     *
-     * @return Token\ArrayEntryToken
-     */
-    public static function withEntry($key, $value)
-    {
-        return new Token\ArrayEntryToken($key, $value);
-    }
-
-    /**
-     * Checks that arguments array entries all match value
-     *
-     * @param mixed $value
-     *
-     * @return Token\ArrayEveryEntryToken
-     */
-    public static function withEveryEntry($value)
-    {
-        return new Token\ArrayEveryEntryToken($value);
-    }
-
-    /**
-     * Checks that argument array contains value
-     *
-     * @param mixed $value
-     *
-     * @return Token\ArrayEntryToken
-     */
-    public static function containing($value)
-    {
-        return new Token\ArrayEntryToken(self::any(), $value);
-    }
-
-    /**
-     * Checks that argument array has key
-     *
-     * @param mixed $key exact value or token
-     *
-     * @return Token\ArrayEntryToken
-     */
-    public static function withKey($key)
-    {
-        return new Token\ArrayEntryToken($key, self::any());
-    }
-
-    /**
-     * Checks that argument does not match the value|token.
-     *
-     * @param mixed $value either exact value or argument token
-     *
-     * @return Token\LogicalNotToken
-     */
-    public static function not($value)
-    {
-        return new Token\LogicalNotToken($value);
-    }
-
-    /**
-     * @param string $value
-     *
-     * @return Token\StringContainsToken
-     */
-    public static function containingString($value)
-    {
-        return new Token\StringContainsToken($value);
-    }
-
-    /**
-     * Checks that argument is identical value.
-     *
-     * @param mixed $value
-     *
-     * @return Token\IdenticalValueToken
-     */
-    public static function is($value)
-    {
-        return new Token\IdenticalValueToken($value);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php
deleted file mode 100644
index a088f21..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument;
-
-/**
- * Arguments wildcarding.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ArgumentsWildcard
-{
-    /**
-     * @var Token\TokenInterface[]
-     */
-    private $tokens = array();
-    private $string;
-
-    /**
-     * Initializes wildcard.
-     *
-     * @param array $arguments Array of argument tokens or values
-     */
-    public function __construct(array $arguments)
-    {
-        foreach ($arguments as $argument) {
-            if (!$argument instanceof Token\TokenInterface) {
-                $argument = new Token\ExactValueToken($argument);
-            }
-
-            $this->tokens[] = $argument;
-        }
-    }
-
-    /**
-     * Calculates wildcard match score for provided arguments.
-     *
-     * @param array $arguments
-     *
-     * @return false|int False OR integer score (higher - better)
-     */
-    public function scoreArguments(array $arguments)
-    {
-        if (0 == count($arguments) && 0 == count($this->tokens)) {
-            return 1;
-        }
-
-        $arguments  = array_values($arguments);
-        $totalScore = 0;
-        foreach ($this->tokens as $i => $token) {
-            $argument = isset($arguments[$i]) ? $arguments[$i] : null;
-            if (1 >= $score = $token->scoreArgument($argument)) {
-                return false;
-            }
-
-            $totalScore += $score;
-
-            if (true === $token->isLast()) {
-                return $totalScore;
-            }
-        }
-
-        if (count($arguments) > count($this->tokens)) {
-            return false;
-        }
-
-        return $totalScore;
-    }
-
-    /**
-     * Returns string representation for wildcard.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        if (null === $this->string) {
-            $this->string = implode(', ', array_map(function ($token) {
-                return (string) $token;
-            }, $this->tokens));
-        }
-
-        return $this->string;
-    }
-
-    /**
-     * @return array
-     */
-    public function getTokens()
-    {
-        return $this->tokens;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php
deleted file mode 100644
index 5098811..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Any single value token.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class AnyValueToken implements TokenInterface
-{
-    /**
-     * Always scores 3 for any argument.
-     *
-     * @param $argument
-     *
-     * @return int
-     */
-    public function scoreArgument($argument)
-    {
-        return 3;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return '*';
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php
deleted file mode 100644
index f76b17b..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Any values token.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class AnyValuesToken implements TokenInterface
-{
-    /**
-     * Always scores 2 for any argument.
-     *
-     * @param $argument
-     *
-     * @return int
-     */
-    public function scoreArgument($argument)
-    {
-        return 2;
-    }
-
-    /**
-     * Returns true to stop wildcard from processing other tokens.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return true;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return '* [, ...]';
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php
deleted file mode 100644
index 96b4bef..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Array elements count token.
- *
- * @author Boris Mikhaylov <kaguxmail@gmail.com>
- */
-
-class ArrayCountToken implements TokenInterface
-{
-    private $count;
-
-    /**
-     * @param integer $value
-     */
-    public function __construct($value)
-    {
-        $this->count = $value;
-    }
-
-    /**
-     * Scores 6 when argument has preset number of elements.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return boolean
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('count(%s)', $this->count);
-    }
-
-    /**
-     * Returns true if object is either array or instance of \Countable
-     *
-     * @param $argument
-     * @return bool
-     */
-    private function isCountable($argument)
-    {
-        return (is_array($argument) || $argument instanceof \Countable);
-    }
-
-    /**
-     * Returns true if $argument has expected number of elements
-     *
-     * @param array|\Countable $argument
-     *
-     * @return bool
-     */
-    private function hasProperCount($argument)
-    {
-        return $this->count === count($argument);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php
deleted file mode 100644
index 0305fc7..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-use Prophecy\Exception\InvalidArgumentException;
-
-/**
- * Array entry token.
- *
- * @author Boris Mikhaylov <kaguxmail@gmail.com>
- */
-class ArrayEntryToken implements TokenInterface
-{
-    /** @var \Prophecy\Argument\Token\TokenInterface */
-    private $key;
-    /** @var \Prophecy\Argument\Token\TokenInterface */
-    private $value;
-
-    /**
-     * @param mixed $key   exact value or token
-     * @param mixed $value exact value or token
-     */
-    public function __construct($key, $value)
-    {
-        $this->key = $this->wrapIntoExactValueToken($key);
-        $this->value = $this->wrapIntoExactValueToken($value);
-    }
-
-    /**
-     * Scores half of combined scores from key and value tokens for same entry. Capped at 8.
-     * If argument implements \ArrayAccess without \Traversable, then key token is restricted to ExactValueToken.
-     *
-     * @param array|\ArrayAccess|\Traversable $argument
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        if ($argument instanceof \Traversable) {
-            $argument = iterator_to_array($argument);
-        }
-
-        if ($argument instanceof \ArrayAccess) {
-            $argument = $this->convertArrayAccessToEntry($argument);
-        }
-
-        if (!is_array($argument) || empty($argument)) {
-            return false;
-        }
-
-        $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument));
-        $valueScores = array_map(array($this->value,'scoreArgument'), $argument);
-        $scoreEntry = function ($value, $key) {
-            return $value && $key ? min(8, ($key + $value) / 2) : false;
-        };
-
-        return max(array_map($scoreEntry, $valueScores, $keyScores));
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return boolean
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('[..., %s => %s, ...]', $this->key, $this->value);
-    }
-
-    /**
-     * Returns key
-     *
-     * @return TokenInterface
-     */
-    public function getKey()
-    {
-        return $this->key;
-    }
-
-    /**
-     * Returns value
-     *
-     * @return TokenInterface
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Wraps non token $value into ExactValueToken
-     *
-     * @param $value
-     * @return TokenInterface
-     */
-    private function wrapIntoExactValueToken($value)
-    {
-        return $value instanceof TokenInterface ? $value : new ExactValueToken($value);
-    }
-
-    /**
-     * Converts instance of \ArrayAccess to key => value array entry
-     *
-     * @param \ArrayAccess $object
-     *
-     * @return array|null
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    private function convertArrayAccessToEntry(\ArrayAccess $object)
-    {
-        if (!$this->key instanceof ExactValueToken) {
-            throw new InvalidArgumentException(sprintf(
-                'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL.
-                'But you used `%s`.',
-                $this->key
-            ));
-        }
-
-        $key = $this->key->getValue();
-
-        return $object->offsetExists($key) ? array($key => $object[$key]) : array();
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
deleted file mode 100644
index 5d41fa4..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Array every entry token.
- *
- * @author Adrien Brault <adrien.brault@gmail.com>
- */
-class ArrayEveryEntryToken implements TokenInterface
-{
-    /**
-     * @var TokenInterface
-     */
-    private $value;
-
-    /**
-     * @param mixed $value exact value or token
-     */
-    public function __construct($value)
-    {
-        if (!$value instanceof TokenInterface) {
-            $value = new ExactValueToken($value);
-        }
-
-        $this->value = $value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function scoreArgument($argument)
-    {
-        if (!$argument instanceof \Traversable && !is_array($argument)) {
-            return false;
-        }
-
-        $scores = array();
-        foreach ($argument as $key => $argumentEntry) {
-            $scores[] = $this->value->scoreArgument($argumentEntry);
-        }
-
-        if (empty($scores) || in_array(false, $scores, true)) {
-            return false;
-        }
-
-        return array_sum($scores) / count($scores);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return sprintf('[%s, ..., %s]', $this->value, $this->value);
-    }
-
-    /**
-     * @return TokenInterface
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php
deleted file mode 100644
index f45ba20..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-use Prophecy\Exception\InvalidArgumentException;
-
-/**
- * Callback-verified token.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CallbackToken implements TokenInterface
-{
-    private $callback;
-
-    /**
-     * Initializes token.
-     *
-     * @param callable $callback
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function __construct($callback)
-    {
-        if (!is_callable($callback)) {
-            throw new InvalidArgumentException(sprintf(
-                'Callable expected as an argument to CallbackToken, but got %s.',
-                gettype($callback)
-            ));
-        }
-
-        $this->callback = $callback;
-    }
-
-    /**
-     * Scores 7 if callback returns true, false otherwise.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        return call_user_func($this->callback, $argument) ? 7 : false;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return 'callback()';
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php
deleted file mode 100644
index ba895ab..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-use SebastianBergmann\Comparator\Factory as ComparatorFactory;
-use SebastianBergmann\Comparator\ComparisonFailure;
-use Prophecy\Util\StringUtil;
-
-/**
- * Exact value token.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ExactValueToken implements TokenInterface
-{
-    private $value;
-    private $string;
-    private $util;
-    private $comparatorFactory;
-
-    /**
-     * Initializes token.
-     *
-     * @param mixed             $value
-     * @param StringUtil        $util
-     * @param ComparatorFactory $comparatorFactory
-     */
-    public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null)
-    {
-        $this->value = $value;
-        $this->util  = $util ?: new StringUtil();
-
-        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();
-    }
-
-    /**
-     * Scores 10 if argument matches preset value.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        if (is_object($argument) && is_object($this->value)) {
-            $comparator = $this->comparatorFactory->getComparatorFor(
-                $argument, $this->value
-            );
-
-            try {
-                $comparator->assertEquals($argument, $this->value);
-                return 10;
-            } catch (ComparisonFailure $failure) {}
-        }
-
-        // If either one is an object it should castable to a string
-        if (is_object($argument) xor is_object($this->value)) {
-            if (is_object($argument) && !method_exists($argument, '__toString')) {
-                return false;
-            }
-
-            if (is_object($this->value) && !method_exists($this->value, '__toString')) {
-                return false;
-            }
-        } elseif (is_numeric($argument) && is_numeric($this->value)) {
-            // noop
-        } elseif (gettype($argument) !== gettype($this->value)) {
-            return false;
-        }
-
-        return $argument == $this->value ? 10 : false;
-    }
-
-    /**
-     * Returns preset value against which token checks arguments.
-     *
-     * @return mixed
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        if (null === $this->string) {
-            $this->string = sprintf('exact(%s)', $this->util->stringify($this->value));
-        }
-
-        return $this->string;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php
deleted file mode 100644
index 0b6d23a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-use Prophecy\Util\StringUtil;
-
-/**
- * Identical value token.
- *
- * @author Florian Voutzinos <florian@voutzinos.com>
- */
-class IdenticalValueToken implements TokenInterface
-{
-    private $value;
-    private $string;
-    private $util;
-
-    /**
-     * Initializes token.
-     *
-     * @param mixed      $value
-     * @param StringUtil $util
-     */
-    public function __construct($value, StringUtil $util = null)
-    {
-        $this->value = $value;
-        $this->util  = $util ?: new StringUtil();
-    }
-
-    /**
-     * Scores 11 if argument matches preset value.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        return $argument === $this->value ? 11 : false;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        if (null === $this->string) {
-            $this->string = sprintf('identical(%s)', $this->util->stringify($this->value));
-        }
-
-        return $this->string;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php
deleted file mode 100644
index 4ee1b25..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Logical AND token.
- *
- * @author Boris Mikhaylov <kaguxmail@gmail.com>
- */
-class LogicalAndToken implements TokenInterface
-{
-    private $tokens = array();
-
-    /**
-     * @param array $arguments exact values or tokens
-     */
-    public function __construct(array $arguments)
-    {
-        foreach ($arguments as $argument) {
-            if (!$argument instanceof TokenInterface) {
-                $argument = new ExactValueToken($argument);
-            }
-            $this->tokens[] = $argument;
-        }
-    }
-
-    /**
-     * Scores maximum score from scores returned by tokens for this argument if all of them score.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        if (0 === count($this->tokens)) {
-            return false;
-        }
-
-        $maxScore = 0;
-        foreach ($this->tokens as $token) {
-            $score = $token->scoreArgument($argument);
-            if (false === $score) {
-                return false;
-            }
-            $maxScore = max($score, $maxScore);
-        }
-
-        return $maxScore;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return boolean
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('bool(%s)', implode(' AND ', $this->tokens));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php
deleted file mode 100644
index 623efa5..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Logical NOT token.
- *
- * @author Boris Mikhaylov <kaguxmail@gmail.com>
- */
-class LogicalNotToken implements TokenInterface
-{
-    /** @var \Prophecy\Argument\Token\TokenInterface  */
-    private $token;
-
-    /**
-     * @param mixed $value exact value or token
-     */
-    public function __construct($value)
-    {
-        $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value);
-    }
-
-    /**
-     * Scores 4 when preset token does not match the argument.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        return false === $this->token->scoreArgument($argument) ? 4 : false;
-    }
-
-    /**
-     * Returns true if preset token is last.
-     *
-     * @return bool|int
-     */
-    public function isLast()
-    {
-        return $this->token->isLast();
-    }
-
-    /**
-     * Returns originating token.
-     *
-     * @return TokenInterface
-     */
-    public function getOriginatingToken()
-    {
-        return $this->token;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('not(%s)', $this->token);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php
deleted file mode 100644
index ea38fe1..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-use SebastianBergmann\Comparator\Factory as ComparatorFactory;
-use SebastianBergmann\Comparator\ComparisonFailure;
-use Prophecy\Util\StringUtil;
-
-/**
- * Object state-checker token.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ObjectStateToken implements TokenInterface
-{
-    private $name;
-    private $value;
-    private $util;
-    private $comparatorFactory;
-
-    /**
-     * Initializes token.
-     *
-     * @param string            $methodName
-     * @param mixed             $value             Expected return value
-     * @param null|StringUtil   $util
-     * @param ComparatorFactory $comparatorFactory
-     */
-    public function __construct(
-        $methodName,
-        $value,
-        StringUtil $util = null,
-        ComparatorFactory $comparatorFactory = null
-    ) {
-        $this->name  = $methodName;
-        $this->value = $value;
-        $this->util  = $util ?: new StringUtil;
-
-        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();
-    }
-
-    /**
-     * Scores 8 if argument is an object, which method returns expected value.
-     *
-     * @param mixed $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        if (is_object($argument) && method_exists($argument, $this->name)) {
-            $actual = call_user_func(array($argument, $this->name));
-
-            $comparator = $this->comparatorFactory->getComparatorFor(
-                $actual, $this->value
-            );
-
-            try {
-                $comparator->assertEquals($actual, $this->value);
-                return 8;
-            } catch (ComparisonFailure $failure) {
-                return false;
-            }
-        }
-
-        if (is_object($argument) && property_exists($argument, $this->name)) {
-            return $argument->{$this->name} === $this->value ? 8 : false;
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('state(%s(), %s)',
-            $this->name,
-            $this->util->stringify($this->value)
-        );
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php
deleted file mode 100644
index 24ff8c2..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * String contains token.
- *
- * @author Peter Mitchell <pete@peterjmit.com>
- */
-class StringContainsToken implements TokenInterface
-{
-    private $value;
-
-    /**
-     * Initializes token.
-     *
-     * @param string $value
-     */
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-
-    public function scoreArgument($argument)
-    {
-        return strpos($argument, $this->value) !== false ? 6 : false;
-    }
-
-    /**
-     * Returns preset value against which token checks arguments.
-     *
-     * @return mixed
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('contains("%s")', $this->value);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php
deleted file mode 100644
index 625d3ba..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-/**
- * Argument token interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface TokenInterface
-{
-    /**
-     * Calculates token match score for provided argument.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument);
-
-    /**
-     * Returns true if this token prevents check of other tokens (is last one).
-     *
-     * @return bool|int
-     */
-    public function isLast();
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString();
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php b/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php
deleted file mode 100644
index cb65132..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Argument\Token;
-
-use Prophecy\Exception\InvalidArgumentException;
-
-/**
- * Value type token.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class TypeToken implements TokenInterface
-{
-    private $type;
-
-    /**
-     * @param string $type
-     */
-    public function __construct($type)
-    {
-        $checker = "is_{$type}";
-        if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) {
-            throw new InvalidArgumentException(sprintf(
-                'Type or class name expected as an argument to TypeToken, but got %s.', $type
-            ));
-        }
-
-        $this->type = $type;
-    }
-
-    /**
-     * Scores 5 if argument has the same type this token was constructed with.
-     *
-     * @param $argument
-     *
-     * @return bool|int
-     */
-    public function scoreArgument($argument)
-    {
-        $checker = "is_{$this->type}";
-        if (function_exists($checker)) {
-            return call_user_func($checker, $argument) ? 5 : false;
-        }
-
-        return $argument instanceof $this->type ? 5 : false;
-    }
-
-    /**
-     * Returns false.
-     *
-     * @return bool
-     */
-    public function isLast()
-    {
-        return false;
-    }
-
-    /**
-     * Returns string representation for token.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return sprintf('type(%s)', $this->type);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
deleted file mode 100644
index 2f3fbad..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Call;
-
-use Exception;
-
-/**
- * Call object.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Call
-{
-    private $methodName;
-    private $arguments;
-    private $returnValue;
-    private $exception;
-    private $file;
-    private $line;
-
-    /**
-     * Initializes call.
-     *
-     * @param string      $methodName
-     * @param array       $arguments
-     * @param mixed       $returnValue
-     * @param Exception   $exception
-     * @param null|string $file
-     * @param null|int    $line
-     */
-    public function __construct($methodName, array $arguments, $returnValue,
-                                Exception $exception = null, $file, $line)
-    {
-        $this->methodName  = $methodName;
-        $this->arguments   = $arguments;
-        $this->returnValue = $returnValue;
-        $this->exception   = $exception;
-
-        if ($file) {
-            $this->file = $file;
-            $this->line = intval($line);
-        }
-    }
-
-    /**
-     * Returns called method name.
-     *
-     * @return string
-     */
-    public function getMethodName()
-    {
-        return $this->methodName;
-    }
-
-    /**
-     * Returns called method arguments.
-     *
-     * @return array
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * Returns called method return value.
-     *
-     * @return null|mixed
-     */
-    public function getReturnValue()
-    {
-        return $this->returnValue;
-    }
-
-    /**
-     * Returns exception that call thrown.
-     *
-     * @return null|Exception
-     */
-    public function getException()
-    {
-        return $this->exception;
-    }
-
-    /**
-     * Returns callee filename.
-     *
-     * @return string
-     */
-    public function getFile()
-    {
-        return $this->file;
-    }
-
-    /**
-     * Returns callee line number.
-     *
-     * @return int
-     */
-    public function getLine()
-    {
-        return $this->line;
-    }
-
-    /**
-     * Returns short notation for callee place.
-     *
-     * @return string
-     */
-    public function getCallPlace()
-    {
-        if (null === $this->file) {
-            return 'unknown';
-        }
-
-        return sprintf('%s:%d', $this->file, $this->line);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
deleted file mode 100644
index 7495855..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Call;
-
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Argument\ArgumentsWildcard;
-use Prophecy\Util\StringUtil;
-use Prophecy\Exception\Call\UnexpectedCallException;
-
-/**
- * Calls receiver & manager.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CallCenter
-{
-    private $util;
-
-    /**
-     * @var Call[]
-     */
-    private $recordedCalls = array();
-
-    /**
-     * Initializes call center.
-     *
-     * @param StringUtil $util
-     */
-    public function __construct(StringUtil $util = null)
-    {
-        $this->util = $util ?: new StringUtil;
-    }
-
-    /**
-     * Makes and records specific method call for object prophecy.
-     *
-     * @param ObjectProphecy $prophecy
-     * @param string         $methodName
-     * @param array          $arguments
-     *
-     * @return mixed Returns null if no promise for prophecy found or promise return value.
-     *
-     * @throws \Prophecy\Exception\Call\UnexpectedCallException If no appropriate method prophecy found
-     */
-    public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments)
-    {
-        $backtrace = debug_backtrace();
-
-        $file = $line = null;
-        if (isset($backtrace[2]) && isset($backtrace[2]['file'])) {
-            $file = $backtrace[2]['file'];
-            $line = $backtrace[2]['line'];
-        }
-
-        // If no method prophecies defined, then it's a dummy, so we'll just return null
-        if ('__destruct' === $methodName || 0 == count($prophecy->getMethodProphecies())) {
-            $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line);
-
-            return null;
-        }
-
-        // There are method prophecies, so it's a fake/stub. Searching prophecy for this call
-        $matches = array();
-        foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) {
-            if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) {
-                $matches[] = array($score, $methodProphecy);
-            }
-        }
-
-        // If fake/stub doesn't have method prophecy for this call - throw exception
-        if (!count($matches)) {
-            throw $this->createUnexpectedCallException($prophecy, $methodName, $arguments);
-        }
-
-        // Sort matches by their score value
-        @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; });
-
-        // If Highest rated method prophecy has a promise - execute it or return null instead
-        $returnValue = null;
-        $exception   = null;
-        if ($promise = $matches[0][1]->getPromise()) {
-            try {
-                $returnValue = $promise->execute($arguments, $prophecy, $matches[0][1]);
-            } catch (\Exception $e) {
-                $exception = $e;
-            }
-        }
-
-        $this->recordedCalls[] = new Call(
-            $methodName, $arguments, $returnValue, $exception, $file, $line
-        );
-
-        if (null !== $exception) {
-            throw $exception;
-        }
-
-        return $returnValue;
-    }
-
-    /**
-     * Searches for calls by method name & arguments wildcard.
-     *
-     * @param string            $methodName
-     * @param ArgumentsWildcard $wildcard
-     *
-     * @return Call[]
-     */
-    public function findCalls($methodName, ArgumentsWildcard $wildcard)
-    {
-        return array_values(
-            array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) {
-                return $methodName === $call->getMethodName()
-                    && 0 < $wildcard->scoreArguments($call->getArguments())
-                ;
-            })
-        );
-    }
-
-    private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName,
-                                                   array $arguments)
-    {
-        $classname = get_class($prophecy->reveal());
-        $argstring = implode(', ', array_map(array($this->util, 'stringify'), $arguments));
-        $expected  = implode("\n", array_map(function (MethodProphecy $methodProphecy) {
-            return sprintf('  - %s(%s)',
-                $methodProphecy->getMethodName(),
-                $methodProphecy->getArgumentsWildcard()
-            );
-        }, call_user_func_array('array_merge', $prophecy->getMethodProphecies())));
-
-        return new UnexpectedCallException(
-            sprintf(
-                "Method call:\n".
-                "  - %s(%s)\n".
-                "on %s was not expected, expected calls were:\n%s",
-
-                $methodName, $argstring, $classname, $expected
-            ),
-            $prophecy, $methodName, $arguments
-        );
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php
deleted file mode 100644
index d6b6b1a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler;
-
-use ReflectionClass;
-
-/**
- * Cached class doubler.
- * Prevents mirroring/creation of the same structure twice.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CachedDoubler extends Doubler
-{
-    private $classes = array();
-
-    /**
-     * {@inheritdoc}
-     */
-    public function registerClassPatch(ClassPatch\ClassPatchInterface $patch)
-    {
-        $this->classes[] = array();
-
-        parent::registerClassPatch($patch);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function createDoubleClass(ReflectionClass $class = null, array $interfaces)
-    {
-        $classId = $this->generateClassId($class, $interfaces);
-        if (isset($this->classes[$classId])) {
-            return $this->classes[$classId];
-        }
-
-        return $this->classes[$classId] = parent::createDoubleClass($class, $interfaces);
-    }
-
-    /**
-     * @param ReflectionClass   $class
-     * @param ReflectionClass[] $interfaces
-     *
-     * @return string
-     */
-    private function generateClassId(ReflectionClass $class = null, array $interfaces)
-    {
-        $parts = array();
-        if (null !== $class) {
-            $parts[] = $class->getName();
-        }
-        foreach ($interfaces as $interface) {
-            $parts[] = $interface->getName();
-        }
-        sort($parts);
-
-        return md5(implode('', $parts));
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php
deleted file mode 100644
index d6d1968..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-
-/**
- * Class patch interface.
- * Class patches extend doubles functionality or help
- * Prophecy to avoid some internal PHP bugs.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface ClassPatchInterface
-{
-    /**
-     * Checks if patch supports specific class node.
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node);
-
-    /**
-     * Applies patch to the specific class node.
-     *
-     * @param ClassNode $node
-     * @return void
-     */
-    public function apply(ClassNode $node);
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher - earlier)
-     */
-    public function getPriority();
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php
deleted file mode 100644
index 61998fc..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-
-/**
- * Disable constructor.
- * Makes all constructor arguments optional.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class DisableConstructorPatch implements ClassPatchInterface
-{
-    /**
-     * Checks if class has `__construct` method.
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node)
-    {
-        return true;
-    }
-
-    /**
-     * Makes all class constructor arguments optional.
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        if (!$node->hasMethod('__construct')) {
-            $node->addMethod(new MethodNode('__construct', ''));
-
-            return;
-        }
-
-        $constructor = $node->getMethod('__construct');
-        foreach ($constructor->getArguments() as $argument) {
-            $argument->setDefault(null);
-        }
-
-        $constructor->setCode(<<<PHP
-if (0 < func_num_args()) {
-    call_user_func_array(array('parent', '__construct'), func_get_args());
-}
-PHP
-        );
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher - earlier)
-     */
-    public function getPriority()
-    {
-        return 100;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php
deleted file mode 100644
index fa38fc0..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-
-/**
- * Exception patch for HHVM to remove the stubs from special methods
- *
- * @author Christophe Coevoet <stof@notk.org>
- */
-class HhvmExceptionPatch implements ClassPatchInterface
-{
-    /**
-     * Supports exceptions on HHVM.
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node)
-    {
-        if (!defined('HHVM_VERSION')) {
-            return false;
-        }
-
-        return 'Exception' === $node->getParentClass() || is_subclass_of($node->getParentClass(), 'Exception');
-    }
-
-    /**
-     * Removes special exception static methods from the doubled methods.
-     *
-     * @param ClassNode $node
-     *
-     * @return void
-     */
-    public function apply(ClassNode $node)
-    {
-        if ($node->hasMethod('setTraceOptions')) {
-            $node->getMethod('setTraceOptions')->useParentCode();
-        }
-        if ($node->hasMethod('getTraceOptions')) {
-            $node->getMethod('getTraceOptions')->useParentCode();
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPriority()
-    {
-        return -50;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php
deleted file mode 100644
index b0d9793..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-
-/**
- * Remove method functionality from the double which will clash with php keywords.
- *
- * @author Milan Magudia <milan@magudia.com>
- */
-class KeywordPatch implements ClassPatchInterface
-{
-    /**
-     * Support any class
-     *
-     * @param ClassNode $node
-     *
-     * @return boolean
-     */
-    public function supports(ClassNode $node)
-    {
-        return true;
-    }
-
-    /**
-     * Remove methods that clash with php keywords
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        $methodNames = array_keys($node->getMethods());
-        $methodsToRemove = array_intersect($methodNames, $this->getKeywords());
-        foreach ($methodsToRemove as $methodName) {
-            $node->removeMethod($methodName);
-        }
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher - earlier)
-     */
-    public function getPriority() {
-        return 49;
-    }
-
-    /**
-     * Returns array of php keywords.
-     *
-     * @return array
-     */
-    private function getKeywords() {
-
-        return array(
-            '__halt_compiler',
-            'abstract',
-            'and',
-            'array',
-            'as',
-            'break',
-            'callable',
-            'case',
-            'catch',
-            'class',
-            'clone',
-            'const',
-            'continue',
-            'declare',
-            'default',
-            'die',
-            'do',
-            'echo',
-            'else',
-            'elseif',
-            'empty',
-            'enddeclare',
-            'endfor',
-            'endforeach',
-            'endif',
-            'endswitch',
-            'endwhile',
-            'eval',
-            'exit',
-            'extends',
-            'final',
-            'finally',
-            'for',
-            'foreach',
-            'function',
-            'global',
-            'goto',
-            'if',
-            'implements',
-            'include',
-            'include_once',
-            'instanceof',
-            'insteadof',
-            'interface',
-            'isset',
-            'list',
-            'namespace',
-            'new',
-            'or',
-            'print',
-            'private',
-            'protected',
-            'public',
-            'require',
-            'require_once',
-            'return',
-            'static',
-            'switch',
-            'throw',
-            'trait',
-            'try',
-            'unset',
-            'use',
-            'var',
-            'while',
-            'xor',
-            'yield',
-        );
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php
deleted file mode 100644
index da45450..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use phpDocumentor\Reflection\DocBlock;
-use Prophecy\Doubler\Generator\Node\ClassNode;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-
-/**
- * Discover Magical API using "@method" PHPDoc format.
- *
- * @author Thomas Tourlourat <thomas@tourlourat.com>
- */
-class MagicCallPatch implements ClassPatchInterface
-{
-    /**
-     * Support any class
-     *
-     * @param ClassNode $node
-     *
-     * @return boolean
-     */
-    public function supports(ClassNode $node)
-    {
-        return true;
-    }
-
-    /**
-     * Discover Magical API
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        $parentClass = $node->getParentClass();
-        $reflectionClass = new \ReflectionClass($parentClass);
-
-        $phpdoc = new DocBlock($reflectionClass->getDocComment());
-
-        $tagList = $phpdoc->getTagsByName('method');
-
-        foreach($tagList as $tag) {
-            $methodName = $tag->getMethodName();
-
-            if (!$reflectionClass->hasMethod($methodName)) {
-                $methodNode = new MethodNode($tag->getMethodName());
-                $methodNode->setStatic($tag->isStatic());
-
-                $node->addMethod($methodNode);
-            }
-        }
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return integer Priority number (higher - earlier)
-     */
-    public function getPriority()
-    {
-        return 50;
-    }
-}
-
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php
deleted file mode 100644
index ab0bb7c..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-use Prophecy\Doubler\Generator\Node\ArgumentNode;
-
-/**
- * Add Prophecy functionality to the double.
- * This is a core class patch for Prophecy.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ProphecySubjectPatch implements ClassPatchInterface
-{
-    /**
-     * Always returns true.
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node)
-    {
-        return true;
-    }
-
-    /**
-     * Apply Prophecy functionality to class node.
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface');
-        $node->addProperty('objectProphecy', 'private');
-
-        foreach ($node->getMethods() as $name => $method) {
-            if ('__construct' === strtolower($name)) {
-                continue;
-            }
-
-            $method->setCode(
-                'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());'
-            );
-        }
-
-        $prophecySetter = new MethodNode('setProphecy');
-        $prophecyArgument = new ArgumentNode('prophecy');
-        $prophecyArgument->setTypeHint('Prophecy\Prophecy\ProphecyInterface');
-        $prophecySetter->addArgument($prophecyArgument);
-        $prophecySetter->setCode('$this->objectProphecy = $prophecy;');
-
-        $prophecyGetter = new MethodNode('getProphecy');
-        $prophecyGetter->setCode('return $this->objectProphecy;');
-
-        if ($node->hasMethod('__call')) {
-            $__call = $node->getMethod('__call');
-        } else {
-            $__call = new MethodNode('__call');
-            $__call->addArgument(new ArgumentNode('name'));
-            $__call->addArgument(new ArgumentNode('arguments'));
-
-            $node->addMethod($__call);
-        }
-
-        $__call->setCode(<<<PHP
-throw new \Prophecy\Exception\Doubler\MethodNotFoundException(
-    sprintf('Method `%s::%s()` not found.', get_class(\$this), func_get_arg(0)),
-    \$this->getProphecy(), func_get_arg(0)
-);
-PHP
-        );
-
-        $node->addMethod($prophecySetter);
-        $node->addMethod($prophecyGetter);
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher - earlier)
-     */
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php
deleted file mode 100644
index 9166aee..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-
-/**
- * ReflectionClass::newInstance patch.
- * Makes first argument of newInstance optional, since it works but signature is misleading
- *
- * @author Florian Klein <florian.klein@free.fr>
- */
-class ReflectionClassNewInstancePatch implements ClassPatchInterface
-{
-    /**
-     * Supports ReflectionClass
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node)
-    {
-        return 'ReflectionClass' === $node->getParentClass();
-    }
-
-    /**
-     * Updates newInstance's first argument to make it optional
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        foreach ($node->getMethod('newInstance')->getArguments() as $argument) {
-            $argument->setDefault(null);
-        }
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher = earlier)
-     */
-    public function getPriority()
-    {
-        return 50;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php
deleted file mode 100644
index 8401159..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-
-/**
- * SplFileInfo patch.
- * Makes SplFileInfo and derivative classes usable with Prophecy.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class SplFileInfoPatch implements ClassPatchInterface
-{
-    /**
-     * Supports everything that extends SplFileInfo.
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node)
-    {
-        if (null === $node->getParentClass()) {
-            return false;
-        }
-
-        return 'SplFileInfo' === $node->getParentClass()
-            || is_subclass_of($node->getParentClass(), 'SplFileInfo')
-        ;
-    }
-
-    /**
-     * Updated constructor code to call parent one with dummy file argument.
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        if ($node->hasMethod('__construct')) {
-            $constructor = $node->getMethod('__construct');
-        } else {
-            $constructor = new MethodNode('__construct');
-            $node->addMethod($constructor);
-        }
-
-        if ($this->nodeIsDirectoryIterator($node)) {
-            $constructor->setCode('return parent::__construct("' . __DIR__ . '");');
-            return;
-        }
-
-        $constructor->useParentCode();
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher - earlier)
-     */
-    public function getPriority()
-    {
-        return 50;
-    }
-
-    /**
-     * @param ClassNode $node
-     * @return boolean
-     */
-    private function nodeIsDirectoryIterator(ClassNode $node)
-    {
-        $parent = $node->getParentClass();
-        return 'DirectoryIterator' === $parent
-            || is_subclass_of($parent, 'DirectoryIterator');
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php
deleted file mode 100644
index eea0202..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\ClassPatch;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-use Prophecy\Doubler\Generator\Node\MethodNode;
-
-/**
- * Traversable interface patch.
- * Forces classes that implement interfaces, that extend Traversable to also implement Iterator.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class TraversablePatch implements ClassPatchInterface
-{
-    /**
-     * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate.
-     *
-     * @param ClassNode $node
-     *
-     * @return bool
-     */
-    public function supports(ClassNode $node)
-    {
-        if (in_array('Iterator', $node->getInterfaces())) {
-            return false;
-        }
-        if (in_array('IteratorAggregate', $node->getInterfaces())) {
-            return false;
-        }
-
-        foreach ($node->getInterfaces() as $interface) {
-            if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) {
-                continue;
-            }
-            if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) {
-                continue;
-            }
-            if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) {
-                continue;
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Forces class to implement Iterator interface.
-     *
-     * @param ClassNode $node
-     */
-    public function apply(ClassNode $node)
-    {
-        $node->addInterface('Iterator');
-
-        $node->addMethod(new MethodNode('current'));
-        $node->addMethod(new MethodNode('key'));
-        $node->addMethod(new MethodNode('next'));
-        $node->addMethod(new MethodNode('rewind'));
-        $node->addMethod(new MethodNode('valid'));
-    }
-
-    /**
-     * Returns patch priority, which determines when patch will be applied.
-     *
-     * @return int Priority number (higher - earlier)
-     */
-    public function getPriority()
-    {
-        return 100;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php
deleted file mode 100644
index 699be3a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler;
-
-/**
- * Core double interface.
- * All doubled classes will implement this one.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface DoubleInterface
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php
deleted file mode 100644
index a378ae2..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler;
-
-use Doctrine\Instantiator\Instantiator;
-use Prophecy\Doubler\ClassPatch\ClassPatchInterface;
-use Prophecy\Doubler\Generator\ClassMirror;
-use Prophecy\Doubler\Generator\ClassCreator;
-use Prophecy\Exception\InvalidArgumentException;
-use ReflectionClass;
-
-/**
- * Cached class doubler.
- * Prevents mirroring/creation of the same structure twice.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Doubler
-{
-    private $mirror;
-    private $creator;
-    private $namer;
-
-    /**
-     * @var ClassPatchInterface[]
-     */
-    private $patches = array();
-
-    /**
-     * @var \Doctrine\Instantiator\Instantiator
-     */
-    private $instantiator;
-
-    /**
-     * Initializes doubler.
-     *
-     * @param ClassMirror   $mirror
-     * @param ClassCreator  $creator
-     * @param NameGenerator $namer
-     */
-    public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null,
-                                NameGenerator $namer = null)
-    {
-        $this->mirror  = $mirror  ?: new ClassMirror;
-        $this->creator = $creator ?: new ClassCreator;
-        $this->namer   = $namer   ?: new NameGenerator;
-    }
-
-    /**
-     * Returns list of registered class patches.
-     *
-     * @return ClassPatchInterface[]
-     */
-    public function getClassPatches()
-    {
-        return $this->patches;
-    }
-
-    /**
-     * Registers new class patch.
-     *
-     * @param ClassPatchInterface $patch
-     */
-    public function registerClassPatch(ClassPatchInterface $patch)
-    {
-        $this->patches[] = $patch;
-
-        @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) {
-            return $patch2->getPriority() - $patch1->getPriority();
-        });
-    }
-
-    /**
-     * Creates double from specific class or/and list of interfaces.
-     *
-     * @param ReflectionClass   $class
-     * @param ReflectionClass[] $interfaces Array of ReflectionClass instances
-     * @param array             $args       Constructor arguments
-     *
-     * @return DoubleInterface
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function double(ReflectionClass $class = null, array $interfaces, array $args = null)
-    {
-        foreach ($interfaces as $interface) {
-            if (!$interface instanceof ReflectionClass) {
-                throw new InvalidArgumentException(sprintf(
-                    "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n".
-                    "a second argument to `Doubler::double(...)`, but got %s.",
-                    is_object($interface) ? get_class($interface).' class' : gettype($interface)
-                ));
-            }
-        }
-
-        $classname  = $this->createDoubleClass($class, $interfaces);
-        $reflection = new ReflectionClass($classname);
-
-        if (null !== $args) {
-            return $reflection->newInstanceArgs($args);
-        }
-        if ((null === $constructor = $reflection->getConstructor())
-            || ($constructor->isPublic() && !$constructor->isFinal())) {
-            return $reflection->newInstance();
-        }
-
-        if (!$this->instantiator) {
-            $this->instantiator = new Instantiator();
-        }
-
-        return $this->instantiator->instantiate($classname);
-    }
-
-    /**
-     * Creates double class and returns its FQN.
-     *
-     * @param ReflectionClass   $class
-     * @param ReflectionClass[] $interfaces
-     *
-     * @return string
-     */
-    protected function createDoubleClass(ReflectionClass $class = null, array $interfaces)
-    {
-        $name = $this->namer->name($class, $interfaces);
-        $node = $this->mirror->reflect($class, $interfaces);
-
-        foreach ($this->patches as $patch) {
-            if ($patch->supports($node)) {
-                $patch->apply($node);
-            }
-        }
-
-        $this->creator->create($name, $node);
-
-        return $name;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php
deleted file mode 100644
index 8577ba0..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator;
-
-/**
- * Class code creator.
- * Generates PHP code for specific class node tree.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ClassCodeGenerator
-{
-    /**
-     * Generates PHP code for class node.
-     *
-     * @param string         $classname
-     * @param Node\ClassNode $class
-     *
-     * @return string
-     */
-    public function generate($classname, Node\ClassNode $class)
-    {
-        $parts     = explode('\\', $classname);
-        $classname = array_pop($parts);
-        $namespace = implode('\\', $parts);
-
-        $code = sprintf("class %s extends \%s implements %s {\n",
-            $classname, $class->getParentClass(), implode(', ',
-                array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces())
-            )
-        );
-
-        foreach ($class->getProperties() as $name => $visibility) {
-            $code .= sprintf("%s \$%s;\n", $visibility, $name);
-        }
-        $code .= "\n";
-
-        foreach ($class->getMethods() as $method) {
-            $code .= $this->generateMethod($method)."\n";
-        }
-        $code .= "\n}";
-
-        return sprintf("namespace %s {\n%s\n}", $namespace, $code);
-    }
-
-    private function generateMethod(Node\MethodNode $method)
-    {
-        $php = sprintf("%s %s function %s%s(%s) {\n",
-            $method->getVisibility(),
-            $method->isStatic() ? 'static' : '',
-            $method->returnsReference() ? '&':'',
-            $method->getName(),
-            implode(', ', $this->generateArguments($method->getArguments()))
-        );
-        $php .= $method->getCode()."\n";
-
-        return $php.'}';
-    }
-
-    private function generateArguments(array $arguments)
-    {
-        return array_map(function (Node\ArgumentNode $argument) {
-            $php = '';
-
-            if ($hint = $argument->getTypeHint()) {
-                if ('array' === $hint || 'callable' === $hint) {
-                    $php .= $hint;
-                } else {
-                    $php .= '\\'.$hint;
-                }
-            }
-
-            $php .= ' '.($argument->isPassedByReference() ? '&' : '').'$'.$argument->getName();
-
-            if ($argument->isOptional()) {
-                $php .= ' = '.var_export($argument->getDefault(), true);
-            }
-
-            return $php;
-        }, $arguments);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php
deleted file mode 100644
index 882a4a4..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator;
-
-use Prophecy\Exception\Doubler\ClassCreatorException;
-
-/**
- * Class creator.
- * Creates specific class in current environment.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ClassCreator
-{
-    private $generator;
-
-    /**
-     * Initializes creator.
-     *
-     * @param ClassCodeGenerator $generator
-     */
-    public function __construct(ClassCodeGenerator $generator = null)
-    {
-        $this->generator = $generator ?: new ClassCodeGenerator;
-    }
-
-    /**
-     * Creates class.
-     *
-     * @param string         $classname
-     * @param Node\ClassNode $class
-     *
-     * @return mixed
-     *
-     * @throws \Prophecy\Exception\Doubler\ClassCreatorException
-     */
-    public function create($classname, Node\ClassNode $class)
-    {
-        $code = $this->generator->generate($classname, $class);
-        $return = eval($code);
-
-        if (!class_exists($classname, false)) {
-            if (count($class->getInterfaces())) {
-                throw new ClassCreatorException(sprintf(
-                    'Could not double `%s` and implement interfaces: [%s].',
-                    $class->getParentClass(), implode(', ', $class->getInterfaces())
-                ), $class);
-            }
-
-            throw new ClassCreatorException(
-                sprintf('Could not double `%s`.', $class->getParentClass()),
-                $class
-            );
-        }
-
-        return $return;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php
deleted file mode 100644
index c89d002..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator;
-
-use Prophecy\Exception\InvalidArgumentException;
-use Prophecy\Exception\Doubler\ClassMirrorException;
-use ReflectionClass;
-use ReflectionMethod;
-use ReflectionParameter;
-
-/**
- * Class mirror.
- * Core doubler class. Mirrors specific class and/or interfaces into class node tree.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ClassMirror
-{
-    private static $reflectableMethods = array(
-        '__construct',
-        '__destruct',
-        '__sleep',
-        '__wakeup',
-        '__toString',
-        '__call',
-    );
-
-    /**
-     * Reflects provided arguments into class node.
-     *
-     * @param ReflectionClass   $class
-     * @param ReflectionClass[] $interfaces
-     *
-     * @return Node\ClassNode
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function reflect(ReflectionClass $class = null, array $interfaces)
-    {
-        $node = new Node\ClassNode;
-
-        if (null !== $class) {
-            if (true === $class->isInterface()) {
-                throw new InvalidArgumentException(sprintf(
-                    "Could not reflect %s as a class, because it\n".
-                    "is interface - use the second argument instead.",
-                    $class->getName()
-                ));
-            }
-
-            $this->reflectClassToNode($class, $node);
-        }
-
-        foreach ($interfaces as $interface) {
-            if (!$interface instanceof ReflectionClass) {
-                throw new InvalidArgumentException(sprintf(
-                    "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n".
-                    "a second argument to `ClassMirror::reflect(...)`, but got %s.",
-                    is_object($interface) ? get_class($interface).' class' : gettype($interface)
-                ));
-            }
-            if (false === $interface->isInterface()) {
-                throw new InvalidArgumentException(sprintf(
-                    "Could not reflect %s as an interface, because it\n".
-                    "is class - use the first argument instead.",
-                    $interface->getName()
-                ));
-            }
-
-            $this->reflectInterfaceToNode($interface, $node);
-        }
-
-        $node->addInterface('Prophecy\Doubler\Generator\ReflectionInterface');
-
-        return $node;
-    }
-
-    private function reflectClassToNode(ReflectionClass $class, Node\ClassNode $node)
-    {
-        if (true === $class->isFinal()) {
-            throw new ClassMirrorException(sprintf(
-                'Could not reflect class %s as it is marked final.', $class->getName()
-            ), $class);
-        }
-
-        $node->setParentClass($class->getName());
-
-        foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) {
-            if (false === $method->isProtected()) {
-                continue;
-            }
-
-            $this->reflectMethodToNode($method, $node);
-        }
-
-        foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
-            if (0 === strpos($method->getName(), '_')
-                && !in_array($method->getName(), self::$reflectableMethods)) {
-                continue;
-            }
-
-            if (true === $method->isFinal()) {
-                continue;
-            }
-
-            $this->reflectMethodToNode($method, $node);
-        }
-    }
-
-    private function reflectInterfaceToNode(ReflectionClass $interface, Node\ClassNode $node)
-    {
-        $node->addInterface($interface->getName());
-
-        foreach ($interface->getMethods() as $method) {
-            $this->reflectMethodToNode($method, $node);
-        }
-    }
-
-    private function reflectMethodToNode(ReflectionMethod $method, Node\ClassNode $classNode)
-    {
-        $node = new Node\MethodNode($method->getName());
-
-        if (true === $method->isProtected()) {
-            $node->setVisibility('protected');
-        }
-
-        if (true === $method->isStatic()) {
-            $node->setStatic();
-        }
-
-        if (true === $method->returnsReference()) {
-            $node->setReturnsReference();
-        }
-
-        if (is_array($params = $method->getParameters()) && count($params)) {
-            foreach ($params as $param) {
-                $this->reflectArgumentToNode($param, $node);
-            }
-        }
-
-        $classNode->addMethod($node);
-    }
-
-    private function reflectArgumentToNode(ReflectionParameter $parameter, Node\MethodNode $methodNode)
-    {
-        $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName();
-        $node = new Node\ArgumentNode($name);
-
-        $typeHint = $this->getTypeHint($parameter);
-        $node->setTypeHint($typeHint);
-
-        if (true === $parameter->isDefaultValueAvailable()) {
-            $node->setDefault($parameter->getDefaultValue());
-        } elseif (true === $parameter->isOptional()
-              || (true === $parameter->allowsNull() && $typeHint)) {
-            $node->setDefault(null);
-        }
-
-        if (true === $parameter->isPassedByReference()) {
-            $node->setAsPassedByReference();
-        }
-
-        $methodNode->addArgument($node);
-    }
-
-    private function getTypeHint(ReflectionParameter $parameter)
-    {
-        if (null !== $className = $this->getParameterClassName($parameter)) {
-            return $className;
-        }
-
-        if (true === $parameter->isArray()) {
-            return 'array';
-        }
-
-        if (version_compare(PHP_VERSION, '5.4', '>=') && true === $parameter->isCallable()) {
-            return 'callable';
-        }
-
-        return null;
-    }
-
-    private function getParameterClassName(ReflectionParameter $parameter)
-    {
-        try {
-            return $parameter->getClass() ? $parameter->getClass()->getName() : null;
-        } catch (\ReflectionException $e) {
-            preg_match('/\[\s\<\w+?>\s([\w,\\\]+)/s', $parameter, $matches);
-
-            return isset($matches[1]) ? $matches[1] : null;
-        }
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php
deleted file mode 100644
index a6c42a3..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator\Node;
-
-/**
- * Argument node.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ArgumentNode
-{
-    private $name;
-    private $typeHint;
-    private $default;
-    private $optional    = false;
-    private $byReference = false;
-
-    /**
-     * @param string $name
-     */
-    public function __construct($name)
-    {
-        $this->name = $name;
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function getTypeHint()
-    {
-        return $this->typeHint;
-    }
-
-    public function setTypeHint($typeHint = null)
-    {
-        $this->typeHint = $typeHint;
-    }
-
-    public function getDefault()
-    {
-        return $this->default;
-    }
-
-    public function setDefault($default = null)
-    {
-        $this->optional = true;
-        $this->default  = $default;
-    }
-
-    public function isOptional()
-    {
-        return $this->optional;
-    }
-
-    public function setAsPassedByReference($byReference = true)
-    {
-        $this->byReference = $byReference;
-    }
-
-    public function isPassedByReference()
-    {
-        return $this->byReference;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php
deleted file mode 100644
index b38cb4e..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator\Node;
-
-use Prophecy\Exception\InvalidArgumentException;
-
-/**
- * Class node.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ClassNode
-{
-    private $parentClass = 'stdClass';
-    private $interfaces  = array();
-    private $properties  = array();
-
-    /**
-     * @var MethodNode[]
-     */
-    private $methods     = array();
-
-    public function getParentClass()
-    {
-        return $this->parentClass;
-    }
-
-    /**
-     * @param string $class
-     */
-    public function setParentClass($class)
-    {
-        $this->parentClass = $class ?: 'stdClass';
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getInterfaces()
-    {
-        return $this->interfaces;
-    }
-
-    /**
-     * @param string $interface
-     */
-    public function addInterface($interface)
-    {
-        if ($this->hasInterface($interface)) {
-            return;
-        }
-
-        array_unshift($this->interfaces, $interface);
-    }
-
-    /**
-     * @param string $interface
-     *
-     * @return bool
-     */
-    public function hasInterface($interface)
-    {
-        return in_array($interface, $this->interfaces);
-    }
-
-    public function getProperties()
-    {
-        return $this->properties;
-    }
-
-    public function addProperty($name, $visibility = 'public')
-    {
-        $visibility = strtolower($visibility);
-
-        if (!in_array($visibility, array('public', 'private', 'protected'))) {
-            throw new InvalidArgumentException(sprintf(
-                '`%s` property visibility is not supported.', $visibility
-            ));
-        }
-
-        $this->properties[$name] = $visibility;
-    }
-
-    /**
-     * @return MethodNode[]
-     */
-    public function getMethods()
-    {
-        return $this->methods;
-    }
-
-    public function addMethod(MethodNode $method)
-    {
-        $this->methods[$method->getName()] = $method;
-    }
-
-    public function removeMethod($name)
-    {
-        unset($this->methods[$name]);
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return MethodNode|null
-     */
-    public function getMethod($name)
-    {
-        return $this->hasMethod($name) ? $this->methods[$name] : null;
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return bool
-     */
-    public function hasMethod($name)
-    {
-        return isset($this->methods[$name]);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php
deleted file mode 100644
index ef303b6..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator\Node;
-
-use Prophecy\Exception\InvalidArgumentException;
-
-/**
- * Method node.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class MethodNode
-{
-    private $name;
-    private $code;
-    private $visibility = 'public';
-    private $static = false;
-    private $returnsReference = false;
-
-    /**
-     * @var ArgumentNode[]
-     */
-    private $arguments = array();
-
-    /**
-     * @param string $name
-     * @param string $code
-     */
-    public function __construct($name, $code = null)
-    {
-        $this->name = $name;
-        $this->code = $code;
-    }
-
-    public function getVisibility()
-    {
-        return $this->visibility;
-    }
-
-    /**
-     * @param string $visibility
-     */
-    public function setVisibility($visibility)
-    {
-        $visibility = strtolower($visibility);
-
-        if (!in_array($visibility, array('public', 'private', 'protected'))) {
-            throw new InvalidArgumentException(sprintf(
-                '`%s` method visibility is not supported.', $visibility
-            ));
-        }
-
-        $this->visibility = $visibility;
-    }
-
-    public function isStatic()
-    {
-        return $this->static;
-    }
-
-    public function setStatic($static = true)
-    {
-        $this->static = (bool) $static;
-    }
-
-    public function returnsReference()
-    {
-        return $this->returnsReference;
-    }
-
-    public function setReturnsReference()
-    {
-        $this->returnsReference = true;
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function addArgument(ArgumentNode $argument)
-    {
-        $this->arguments[] = $argument;
-    }
-
-    /**
-     * @return ArgumentNode[]
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * @param string $code
-     */
-    public function setCode($code)
-    {
-        $this->code = $code;
-    }
-
-    public function getCode()
-    {
-        if ($this->returnsReference)
-        {
-            return "throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), '{$this->name}');";
-        }
-
-        return (string) $this->code;
-    }
-
-    public function useParentCode()
-    {
-        $this->code = sprintf(
-            'return parent::%s(%s);', $this->getName(), implode(', ',
-                array_map(function (ArgumentNode $arg) { return '$'.$arg->getName(); }, $this->arguments)
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php
deleted file mode 100644
index d720b15..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler\Generator;
-
-/**
- * Reflection interface.
- * All reflected classes implement this interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface ReflectionInterface
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php
deleted file mode 100644
index 8a99c4c..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler;
-
-use Prophecy\Exception\Doubler\DoubleException;
-use Prophecy\Exception\Doubler\ClassNotFoundException;
-use Prophecy\Exception\Doubler\InterfaceNotFoundException;
-use ReflectionClass;
-
-/**
- * Lazy double.
- * Gives simple interface to describe double before creating it.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class LazyDouble
-{
-    private $doubler;
-    private $class;
-    private $interfaces = array();
-    private $arguments  = null;
-    private $double;
-
-    /**
-     * Initializes lazy double.
-     *
-     * @param Doubler $doubler
-     */
-    public function __construct(Doubler $doubler)
-    {
-        $this->doubler = $doubler;
-    }
-
-    /**
-     * Tells doubler to use specific class as parent one for double.
-     *
-     * @param string|ReflectionClass $class
-     *
-     * @throws \Prophecy\Exception\Doubler\ClassNotFoundException
-     * @throws \Prophecy\Exception\Doubler\DoubleException
-     */
-    public function setParentClass($class)
-    {
-        if (null !== $this->double) {
-            throw new DoubleException('Can not extend class with already instantiated double.');
-        }
-
-        if (!$class instanceof ReflectionClass) {
-            if (!class_exists($class)) {
-                throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class);
-            }
-
-            $class = new ReflectionClass($class);
-        }
-
-        $this->class = $class;
-    }
-
-    /**
-     * Tells doubler to implement specific interface with double.
-     *
-     * @param string|ReflectionClass $interface
-     *
-     * @throws \Prophecy\Exception\Doubler\InterfaceNotFoundException
-     * @throws \Prophecy\Exception\Doubler\DoubleException
-     */
-    public function addInterface($interface)
-    {
-        if (null !== $this->double) {
-            throw new DoubleException(
-                'Can not implement interface with already instantiated double.'
-            );
-        }
-
-        if (!$interface instanceof ReflectionClass) {
-            if (!interface_exists($interface)) {
-                throw new InterfaceNotFoundException(
-                    sprintf('Interface %s not found.', $interface),
-                    $interface
-                );
-            }
-
-            $interface = new ReflectionClass($interface);
-        }
-
-        $this->interfaces[] = $interface;
-    }
-
-    /**
-     * Sets constructor arguments.
-     *
-     * @param array $arguments
-     */
-    public function setArguments(array $arguments = null)
-    {
-        $this->arguments = $arguments;
-    }
-
-    /**
-     * Creates double instance or returns already created one.
-     *
-     * @return DoubleInterface
-     */
-    public function getInstance()
-    {
-        if (null === $this->double) {
-            if (null !== $this->arguments) {
-                return $this->double = $this->doubler->double(
-                    $this->class, $this->interfaces, $this->arguments
-                );
-            }
-
-            $this->double = $this->doubler->double($this->class, $this->interfaces);
-        }
-
-        return $this->double;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php b/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php
deleted file mode 100644
index d67ec6a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Doubler;
-
-use ReflectionClass;
-
-/**
- * Name generator.
- * Generates classname for double.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class NameGenerator
-{
-    private static $counter = 1;
-
-    /**
-     * Generates name.
-     *
-     * @param ReflectionClass   $class
-     * @param ReflectionClass[] $interfaces
-     *
-     * @return string
-     */
-    public function name(ReflectionClass $class = null, array $interfaces)
-    {
-        $parts = array();
-
-        if (null !== $class) {
-            $parts[] = $class->getName();
-        } else {
-            foreach ($interfaces as $interface) {
-                $parts[] = $interface->getShortName();
-            }
-        }
-
-        if (!count($parts)) {
-            $parts[] = 'stdClass';
-        }
-
-        return sprintf('Double\%s\P%d', implode('\\', $parts), self::$counter++);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php
deleted file mode 100644
index 48ed225..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Call;
-
-use Prophecy\Exception\Prophecy\ObjectProphecyException;
-use Prophecy\Prophecy\ObjectProphecy;
-
-class UnexpectedCallException extends ObjectProphecyException
-{
-    private $methodName;
-    private $arguments;
-
-    public function __construct($message, ObjectProphecy $objectProphecy,
-                                $methodName, array $arguments)
-    {
-        parent::__construct($message, $objectProphecy);
-
-        $this->methodName = $methodName;
-        $this->arguments = $arguments;
-    }
-
-    public function getMethodName()
-    {
-        return $this->methodName;
-    }
-
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php
deleted file mode 100644
index 822918a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-use Prophecy\Doubler\Generator\Node\ClassNode;
-
-class ClassCreatorException extends \RuntimeException implements DoublerException
-{
-    private $node;
-
-    public function __construct($message, ClassNode $node)
-    {
-        parent::__construct($message);
-
-        $this->node = $node;
-    }
-
-    public function getClassNode()
-    {
-        return $this->node;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php
deleted file mode 100644
index 8fc53b8..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-use ReflectionClass;
-
-class ClassMirrorException extends \RuntimeException implements DoublerException
-{
-    private $class;
-
-    public function __construct($message, ReflectionClass $class)
-    {
-        parent::__construct($message);
-
-        $this->class = $class;
-    }
-
-    public function getReflectedClass()
-    {
-        return $this->class;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php
deleted file mode 100644
index 5bc826d..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-class ClassNotFoundException extends DoubleException
-{
-    private $classname;
-
-    /**
-     * @param string $message
-     * @param string $classname
-     */
-    public function __construct($message, $classname)
-    {
-        parent::__construct($message);
-
-        $this->classname = $classname;
-    }
-
-    public function getClassname()
-    {
-        return $this->classname;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php
deleted file mode 100644
index 6642a58..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-use RuntimeException;
-
-class DoubleException extends RuntimeException implements DoublerException
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php
deleted file mode 100644
index 9d6be17..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-use Prophecy\Exception\Exception;
-
-interface DoublerException extends Exception
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php
deleted file mode 100644
index e344dea..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-class InterfaceNotFoundException extends ClassNotFoundException
-{
-    public function getInterfaceName()
-    {
-        return $this->getClassname();
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php
deleted file mode 100644
index b113941..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-class MethodNotFoundException extends DoubleException
-{
-    /**
-     * @var string
-     */
-    private $classname;
-
-    /**
-     * @var string
-     */
-    private $methodName;
-
-    /**
-     * @var array
-     */
-    private $arguments;
-
-    /**
-     * @param string $message
-     * @param string $classname
-     * @param string $methodName
-     * @param null|Argument\ArgumentsWildcard|array $arguments
-     */
-    public function __construct($message, $classname, $methodName, $arguments = null)
-    {
-        parent::__construct($message);
-
-        $this->classname  = $classname;
-        $this->methodName = $methodName;
-        $this->arguments = $arguments;
-    }
-
-    public function getClassname()
-    {
-        return $this->classname;
-    }
-
-    public function getMethodName()
-    {
-        return $this->methodName;
-    }
-
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php
deleted file mode 100644
index 6303049..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Doubler;
-
-class ReturnByReferenceException extends DoubleException
-{
-    private $classname;
-    private $methodName;
-
-    /**
-     * @param string $message
-     * @param string $classname
-     * @param string $methodName
-     */
-    public function __construct($message, $classname, $methodName)
-    {
-        parent::__construct($message);
-
-        $this->classname  = $classname;
-        $this->methodName = $methodName;
-    }
-
-    public function getClassname()
-    {
-        return $this->classname;
-    }
-
-    public function getMethodName()
-    {
-        return $this->methodName;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php
deleted file mode 100644
index ac9fe4d..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception;
-
-/**
- * Core Prophecy exception interface.
- * All Prophecy exceptions implement it.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface Exception
-{
-    /**
-     * @return string
-     */
-    public function getMessage();
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php
deleted file mode 100644
index bc91c69..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception;
-
-class InvalidArgumentException extends \InvalidArgumentException implements Exception
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php
deleted file mode 100644
index 44b598a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prediction;
-
-use Prophecy\Prophecy\ObjectProphecy;
-
-class AggregateException extends \RuntimeException implements PredictionException
-{
-    private $exceptions = array();
-    private $objectProphecy;
-
-    public function append(PredictionException $exception)
-    {
-        $message = $exception->getMessage();
-        $message = '  '.strtr($message, array("\n" => "\n  "))."\n";
-
-        $this->message      = rtrim($this->message.$message);
-        $this->exceptions[] = $exception;
-    }
-
-    /**
-     * @return PredictionException[]
-     */
-    public function getExceptions()
-    {
-        return $this->exceptions;
-    }
-
-    public function setObjectProphecy(ObjectProphecy $objectProphecy)
-    {
-        $this->objectProphecy = $objectProphecy;
-    }
-
-    /**
-     * @return ObjectProphecy
-     */
-    public function getObjectProphecy()
-    {
-        return $this->objectProphecy;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php
deleted file mode 100644
index bbbbc3d..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prediction;
-
-use RuntimeException;
-
-/**
- * Basic failed prediction exception.
- * Use it for custom prediction failures.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class FailedPredictionException extends RuntimeException implements PredictionException
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php
deleted file mode 100644
index 05ea4aa..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prediction;
-
-use Prophecy\Exception\Prophecy\MethodProphecyException;
-
-class NoCallsException extends MethodProphecyException implements PredictionException
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php
deleted file mode 100644
index 2596b1e..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prediction;
-
-use Prophecy\Exception\Exception;
-
-interface PredictionException extends Exception
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php
deleted file mode 100644
index 9d90543..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prediction;
-
-use Prophecy\Prophecy\MethodProphecy;
-
-class UnexpectedCallsCountException extends UnexpectedCallsException
-{
-    private $expectedCount;
-
-    public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls)
-    {
-        parent::__construct($message, $methodProphecy, $calls);
-
-        $this->expectedCount = intval($count);
-    }
-
-    public function getExpectedCount()
-    {
-        return $this->expectedCount;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php
deleted file mode 100644
index 7a99c2d..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prediction;
-
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Exception\Prophecy\MethodProphecyException;
-
-class UnexpectedCallsException extends MethodProphecyException implements PredictionException
-{
-    private $calls = array();
-
-    public function __construct($message, MethodProphecy $methodProphecy, array $calls)
-    {
-        parent::__construct($message, $methodProphecy);
-
-        $this->calls = $calls;
-    }
-
-    public function getCalls()
-    {
-        return $this->calls;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php
deleted file mode 100644
index 1b03eaf..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prophecy;
-
-use Prophecy\Prophecy\MethodProphecy;
-
-class MethodProphecyException extends ObjectProphecyException
-{
-    private $methodProphecy;
-
-    public function __construct($message, MethodProphecy $methodProphecy)
-    {
-        parent::__construct($message, $methodProphecy->getObjectProphecy());
-
-        $this->methodProphecy = $methodProphecy;
-    }
-
-    /**
-     * @return MethodProphecy
-     */
-    public function getMethodProphecy()
-    {
-        return $this->methodProphecy;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php
deleted file mode 100644
index e345402..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prophecy;
-
-use Prophecy\Prophecy\ObjectProphecy;
-
-class ObjectProphecyException extends \RuntimeException implements ProphecyException
-{
-    private $objectProphecy;
-
-    public function __construct($message, ObjectProphecy $objectProphecy)
-    {
-        parent::__construct($message);
-
-        $this->objectProphecy = $objectProphecy;
-    }
-
-    /**
-     * @return ObjectProphecy
-     */
-    public function getObjectProphecy()
-    {
-        return $this->objectProphecy;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php b/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php
deleted file mode 100644
index 9157332..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Exception\Prophecy;
-
-use Prophecy\Exception\Exception;
-
-interface ProphecyException extends Exception
-{
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
deleted file mode 100644
index 5bdcdc4..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prediction;
-
-use Prophecy\Call\Call;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Argument\ArgumentsWildcard;
-use Prophecy\Argument\Token\AnyValuesToken;
-use Prophecy\Util\StringUtil;
-use Prophecy\Exception\Prediction\NoCallsException;
-
-/**
- * Call prediction.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CallPrediction implements PredictionInterface
-{
-    private $util;
-
-    /**
-     * Initializes prediction.
-     *
-     * @param StringUtil $util
-     */
-    public function __construct(StringUtil $util = null)
-    {
-        $this->util = $util ?: new StringUtil;
-    }
-
-    /**
-     * Tests that there was at least one call.
-     *
-     * @param Call[]         $calls
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @throws \Prophecy\Exception\Prediction\NoCallsException
-     */
-    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
-    {
-        if (count($calls)) {
-            return;
-        }
-
-        $methodCalls = $object->findProphecyMethodCalls(
-            $method->getMethodName(),
-            new ArgumentsWildcard(array(new AnyValuesToken))
-        );
-
-        if (count($methodCalls)) {
-            throw new NoCallsException(sprintf(
-                "No calls been made that match:\n".
-                "  %s->%s(%s)\n".
-                "but expected at least one.\n".
-                "Recorded `%s(...)` calls:\n%s",
-
-                get_class($object->reveal()),
-                $method->getMethodName(),
-                $method->getArgumentsWildcard(),
-                $method->getMethodName(),
-                $this->util->stringifyCalls($methodCalls)
-            ), $method);
-        }
-
-        throw new NoCallsException(sprintf(
-            "No calls been made that match:\n".
-            "  %s->%s(%s)\n".
-            "but expected at least one.",
-
-            get_class($object->reveal()),
-            $method->getMethodName(),
-            $method->getArgumentsWildcard()
-        ), $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php
deleted file mode 100644
index 31c6c57..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prediction;
-
-use Prophecy\Call\Call;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Argument\ArgumentsWildcard;
-use Prophecy\Argument\Token\AnyValuesToken;
-use Prophecy\Util\StringUtil;
-use Prophecy\Exception\Prediction\UnexpectedCallsCountException;
-
-/**
- * Prediction interface.
- * Predictions are logical test blocks, tied to `should...` keyword.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CallTimesPrediction implements PredictionInterface
-{
-    private $times;
-    private $util;
-
-    /**
-     * Initializes prediction.
-     *
-     * @param int        $times
-     * @param StringUtil $util
-     */
-    public function __construct($times, StringUtil $util = null)
-    {
-        $this->times = intval($times);
-        $this->util  = $util ?: new StringUtil;
-    }
-
-    /**
-     * Tests that there was exact amount of calls made.
-     *
-     * @param Call[]         $calls
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @throws \Prophecy\Exception\Prediction\UnexpectedCallsCountException
-     */
-    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
-    {
-        if ($this->times == count($calls)) {
-            return;
-        }
-
-        $methodCalls = $object->findProphecyMethodCalls(
-            $method->getMethodName(),
-            new ArgumentsWildcard(array(new AnyValuesToken))
-        );
-
-        if (count($calls)) {
-            $message = sprintf(
-                "Expected exactly %d calls that match:\n".
-                "  %s->%s(%s)\n".
-                "but %d were made:\n%s",
-
-                $this->times,
-                get_class($object->reveal()),
-                $method->getMethodName(),
-                $method->getArgumentsWildcard(),
-                count($calls),
-                $this->util->stringifyCalls($calls)
-            );
-        } elseif (count($methodCalls)) {
-            $message = sprintf(
-                "Expected exactly %d calls that match:\n".
-                "  %s->%s(%s)\n".
-                "but none were made.\n".
-                "Recorded `%s(...)` calls:\n%s",
-
-                $this->times,
-                get_class($object->reveal()),
-                $method->getMethodName(),
-                $method->getArgumentsWildcard(),
-                $method->getMethodName(),
-                $this->util->stringifyCalls($methodCalls)
-            );
-        } else {
-            $message = sprintf(
-                "Expected exactly %d calls that match:\n".
-                "  %s->%s(%s)\n".
-                "but none were made.",
-
-                $this->times,
-                get_class($object->reveal()),
-                $method->getMethodName(),
-                $method->getArgumentsWildcard()
-            );
-        }
-
-        throw new UnexpectedCallsCountException($message, $method, $this->times, $calls);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php
deleted file mode 100644
index 44bc782..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prediction;
-
-use Prophecy\Call\Call;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Exception\InvalidArgumentException;
-use Closure;
-
-/**
- * Callback prediction.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CallbackPrediction implements PredictionInterface
-{
-    private $callback;
-
-    /**
-     * Initializes callback prediction.
-     *
-     * @param callable $callback Custom callback
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function __construct($callback)
-    {
-        if (!is_callable($callback)) {
-            throw new InvalidArgumentException(sprintf(
-                'Callable expected as an argument to CallbackPrediction, but got %s.',
-                gettype($callback)
-            ));
-        }
-
-        $this->callback = $callback;
-    }
-
-    /**
-     * Executes preset callback.
-     *
-     * @param Call[]         $calls
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     */
-    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
-    {
-        $callback = $this->callback;
-
-        if ($callback instanceof Closure && method_exists('Closure', 'bind')) {
-            $callback = Closure::bind($callback, $object);
-        }
-
-        call_user_func($callback, $calls, $object, $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php
deleted file mode 100644
index 46ac5bf..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prediction;
-
-use Prophecy\Call\Call;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Util\StringUtil;
-use Prophecy\Exception\Prediction\UnexpectedCallsException;
-
-/**
- * No calls prediction.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class NoCallsPrediction implements PredictionInterface
-{
-    private $util;
-
-    /**
-     * Initializes prediction.
-     *
-     * @param null|StringUtil $util
-     */
-    public function __construct(StringUtil $util = null)
-    {
-        $this->util = $util ?: new StringUtil;
-    }
-
-    /**
-     * Tests that there were no calls made.
-     *
-     * @param Call[]         $calls
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @throws \Prophecy\Exception\Prediction\UnexpectedCallsException
-     */
-    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)
-    {
-        if (!count($calls)) {
-            return;
-        }
-
-        $verb = count($calls) === 1 ? 'was' : 'were';
-
-        throw new UnexpectedCallsException(sprintf(
-            "No calls expected that match:\n".
-            "  %s->%s(%s)\n".
-            "but %d %s made:\n%s",
-            get_class($object->reveal()),
-            $method->getMethodName(),
-            $method->getArgumentsWildcard(),
-            count($calls),
-            $verb,
-            $this->util->stringifyCalls($calls)
-        ), $method, $calls);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php
deleted file mode 100644
index f7fb06a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prediction;
-
-use Prophecy\Call\Call;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-
-/**
- * Prediction interface.
- * Predictions are logical test blocks, tied to `should...` keyword.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface PredictionInterface
-{
-    /**
-     * Tests that double fulfilled prediction.
-     *
-     * @param Call[]        $calls
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @throws object
-     * @return void
-     */
-    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method);
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php
deleted file mode 100644
index 5f406bf..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Promise;
-
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Exception\InvalidArgumentException;
-use Closure;
-
-/**
- * Callback promise.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CallbackPromise implements PromiseInterface
-{
-    private $callback;
-
-    /**
-     * Initializes callback promise.
-     *
-     * @param callable $callback Custom callback
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function __construct($callback)
-    {
-        if (!is_callable($callback)) {
-            throw new InvalidArgumentException(sprintf(
-                'Callable expected as an argument to CallbackPromise, but got %s.',
-                gettype($callback)
-            ));
-        }
-
-        $this->callback = $callback;
-    }
-
-    /**
-     * Evaluates promise callback.
-     *
-     * @param array          $args
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @return mixed
-     */
-    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
-    {
-        $callback = $this->callback;
-
-        if ($callback instanceof Closure && method_exists('Closure', 'bind')) {
-            $callback = Closure::bind($callback, $object);
-        }
-
-        return call_user_func($callback, $args, $object, $method);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php
deleted file mode 100644
index 382537b..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Promise;
-
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-
-/**
- * Promise interface.
- * Promises are logical blocks, tied to `will...` keyword.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface PromiseInterface
-{
-    /**
-     * Evaluates promise.
-     *
-     * @param array          $args
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @return mixed
-     */
-    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method);
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php
deleted file mode 100644
index a06724b..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Promise;
-
-use Prophecy\Exception\InvalidArgumentException;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-
-/**
- * Return argument promise.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ReturnArgumentPromise implements PromiseInterface
-{
-    /**
-     * @var int
-     */
-    private $index;
-
-    /**
-     * Initializes callback promise.
-     *
-     * @param int $index The zero-indexed number of the argument to return
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function __construct($index = 0)
-    {
-        if (!is_int($index) || $index < 0) {
-            throw new InvalidArgumentException(
-                'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.',
-                $index
-            );
-        }
-        $this->index = $index;
-    }
-
-    /**
-     * Returns nth argument if has one, null otherwise.
-     *
-     * @param array          $args
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @return null|mixed
-     */
-    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
-    {
-        return count($args) > $this->index ? $args[$this->index] : null;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php
deleted file mode 100644
index c7d5ac5..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Promise;
-
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-
-/**
- * Return promise.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ReturnPromise implements PromiseInterface
-{
-    private $returnValues = array();
-
-    /**
-     * Initializes promise.
-     *
-     * @param array $returnValues Array of values
-     */
-    public function __construct(array $returnValues)
-    {
-        $this->returnValues = $returnValues;
-    }
-
-    /**
-     * Returns saved values one by one until last one, then continuously returns last value.
-     *
-     * @param array          $args
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @return mixed
-     */
-    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
-    {
-        $value = array_shift($this->returnValues);
-
-        if (!count($this->returnValues)) {
-            $this->returnValues[] = $value;
-        }
-
-        return $value;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php b/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php
deleted file mode 100644
index 8007330..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Promise;
-
-use Doctrine\Instantiator\Instantiator;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\MethodProphecy;
-use Prophecy\Exception\InvalidArgumentException;
-use ReflectionClass;
-
-/**
- * Throw promise.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ThrowPromise implements PromiseInterface
-{
-    private $exception;
-
-    /**
-     * @var \Doctrine\Instantiator\Instantiator
-     */
-    private $instantiator;
-
-    /**
-     * Initializes promise.
-     *
-     * @param string|\Exception $exception Exception class name or instance
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function __construct($exception)
-    {
-        if (is_string($exception)) {
-            if (!class_exists($exception)
-             && 'Exception' !== $exception
-             && !is_subclass_of($exception, 'Exception')) {
-                throw new InvalidArgumentException(sprintf(
-                    'Exception class or instance expected as argument to ThrowPromise, but got %s.',
-                    gettype($exception)
-                ));
-            }
-        } elseif (!$exception instanceof \Exception) {
-            throw new InvalidArgumentException(sprintf(
-                'Exception class or instance expected as argument to ThrowPromise, but got %s.',
-                gettype($exception)
-            ));
-        }
-
-        $this->exception = $exception;
-    }
-
-    /**
-     * Throws predefined exception.
-     *
-     * @param array          $args
-     * @param ObjectProphecy $object
-     * @param MethodProphecy $method
-     *
-     * @throws object
-     */
-    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)
-    {
-        if (is_string($this->exception)) {
-            $classname   = $this->exception;
-            $reflection  = new ReflectionClass($classname);
-            $constructor = $reflection->getConstructor();
-
-            if ($constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) {
-                throw $reflection->newInstance();
-            }
-
-            if (!$this->instantiator) {
-                $this->instantiator = new Instantiator();
-            }
-
-            throw $this->instantiator->instantiate($classname);
-        }
-
-        throw $this->exception;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php
deleted file mode 100644
index 9af03b9..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php
+++ /dev/null
@@ -1,409 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prophecy;
-
-use Prophecy\Argument;
-use Prophecy\Promise;
-use Prophecy\Prediction;
-use Prophecy\Exception\Doubler\MethodNotFoundException;
-use Prophecy\Exception\InvalidArgumentException;
-use Prophecy\Exception\Prophecy\MethodProphecyException;
-
-/**
- * Method prophecy.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class MethodProphecy
-{
-    private $objectProphecy;
-    private $methodName;
-    private $argumentsWildcard;
-    private $promise;
-    private $prediction;
-    private $checkedPredictions = array();
-    private $bound = false;
-
-    /**
-     * Initializes method prophecy.
-     *
-     * @param ObjectProphecy                        $objectProphecy
-     * @param string                                $methodName
-     * @param null|Argument\ArgumentsWildcard|array $arguments
-     *
-     * @throws \Prophecy\Exception\Doubler\MethodNotFoundException If method not found
-     */
-    public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments = null)
-    {
-        $double = $objectProphecy->reveal();
-        if (!method_exists($double, $methodName)) {
-            throw new MethodNotFoundException(sprintf(
-                'Method `%s::%s()` is not defined.', get_class($double), $methodName
-            ), get_class($double), $methodName, $arguments);
-        }
-
-        $this->objectProphecy = $objectProphecy;
-        $this->methodName     = $methodName;
-
-        $reflectedMethod = new \ReflectionMethod($double, $methodName);
-        if ($reflectedMethod->isFinal()) {
-            throw new MethodProphecyException(sprintf(
-                "Can not add prophecy for a method `%s::%s()`\n".
-                "as it is a final method.",
-                get_class($double),
-                $methodName
-            ), $this);
-        }
-
-        if (null !== $arguments) {
-            $this->withArguments($arguments);
-        }
-    }
-
-    /**
-     * Sets argument wildcard.
-     *
-     * @param array|Argument\ArgumentsWildcard $arguments
-     *
-     * @return $this
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function withArguments($arguments)
-    {
-        if (is_array($arguments)) {
-            $arguments = new Argument\ArgumentsWildcard($arguments);
-        }
-
-        if (!$arguments instanceof Argument\ArgumentsWildcard) {
-            throw new InvalidArgumentException(sprintf(
-                "Either an array or an instance of ArgumentsWildcard expected as\n".
-                'a `MethodProphecy::withArguments()` argument, but got %s.',
-                gettype($arguments)
-            ));
-        }
-
-        $this->argumentsWildcard = $arguments;
-
-        return $this;
-    }
-
-    /**
-     * Sets custom promise to the prophecy.
-     *
-     * @param callable|Promise\PromiseInterface $promise
-     *
-     * @return $this
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function will($promise)
-    {
-        if (is_callable($promise)) {
-            $promise = new Promise\CallbackPromise($promise);
-        }
-
-        if (!$promise instanceof Promise\PromiseInterface) {
-            throw new InvalidArgumentException(sprintf(
-                'Expected callable or instance of PromiseInterface, but got %s.',
-                gettype($promise)
-            ));
-        }
-
-        $this->bindToObjectProphecy();
-        $this->promise = $promise;
-
-        return $this;
-    }
-
-    /**
-     * Sets return promise to the prophecy.
-     *
-     * @see Prophecy\Promise\ReturnPromise
-     *
-     * @return $this
-     */
-    public function willReturn()
-    {
-        return $this->will(new Promise\ReturnPromise(func_get_args()));
-    }
-
-    /**
-     * Sets return argument promise to the prophecy.
-     *
-     * @param int $index The zero-indexed number of the argument to return
-     *
-     * @see Prophecy\Promise\ReturnArgumentPromise
-     *
-     * @return $this
-     */
-    public function willReturnArgument($index = 0)
-    {
-        return $this->will(new Promise\ReturnArgumentPromise($index));
-    }
-
-    /**
-     * Sets throw promise to the prophecy.
-     *
-     * @see Prophecy\Promise\ThrowPromise
-     *
-     * @param string|\Exception $exception Exception class or instance
-     *
-     * @return $this
-     */
-    public function willThrow($exception)
-    {
-        return $this->will(new Promise\ThrowPromise($exception));
-    }
-
-    /**
-     * Sets custom prediction to the prophecy.
-     *
-     * @param callable|Prediction\PredictionInterface $prediction
-     *
-     * @return $this
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function should($prediction)
-    {
-        if (is_callable($prediction)) {
-            $prediction = new Prediction\CallbackPrediction($prediction);
-        }
-
-        if (!$prediction instanceof Prediction\PredictionInterface) {
-            throw new InvalidArgumentException(sprintf(
-                'Expected callable or instance of PredictionInterface, but got %s.',
-                gettype($prediction)
-            ));
-        }
-
-        $this->bindToObjectProphecy();
-        $this->prediction = $prediction;
-
-        return $this;
-    }
-
-    /**
-     * Sets call prediction to the prophecy.
-     *
-     * @see Prophecy\Prediction\CallPrediction
-     *
-     * @return $this
-     */
-    public function shouldBeCalled()
-    {
-        return $this->should(new Prediction\CallPrediction);
-    }
-
-    /**
-     * Sets no calls prediction to the prophecy.
-     *
-     * @see Prophecy\Prediction\NoCallsPrediction
-     *
-     * @return $this
-     */
-    public function shouldNotBeCalled()
-    {
-        return $this->should(new Prediction\NoCallsPrediction);
-    }
-
-    /**
-     * Sets call times prediction to the prophecy.
-     *
-     * @see Prophecy\Prediction\CallTimesPrediction
-     *
-     * @param $count
-     *
-     * @return $this
-     */
-    public function shouldBeCalledTimes($count)
-    {
-        return $this->should(new Prediction\CallTimesPrediction($count));
-    }
-
-    /**
-     * Checks provided prediction immediately.
-     *
-     * @param callable|Prediction\PredictionInterface $prediction
-     *
-     * @return $this
-     *
-     * @throws \Prophecy\Exception\InvalidArgumentException
-     */
-    public function shouldHave($prediction)
-    {
-        if (is_callable($prediction)) {
-            $prediction = new Prediction\CallbackPrediction($prediction);
-        }
-
-        if (!$prediction instanceof Prediction\PredictionInterface) {
-            throw new InvalidArgumentException(sprintf(
-                'Expected callable or instance of PredictionInterface, but got %s.',
-                gettype($prediction)
-            ));
-        }
-
-        if (null === $this->promise) {
-            $this->willReturn();
-        }
-
-        $calls = $this->getObjectProphecy()->findProphecyMethodCalls(
-            $this->getMethodName(),
-            $this->getArgumentsWildcard()
-        );
-
-        try {
-            $prediction->check($calls, $this->getObjectProphecy(), $this);
-            $this->checkedPredictions[] = $prediction;
-        } catch (\Exception $e) {
-            $this->checkedPredictions[] = $prediction;
-
-            throw $e;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Checks call prediction.
-     *
-     * @see Prophecy\Prediction\CallPrediction
-     *
-     * @return $this
-     */
-    public function shouldHaveBeenCalled()
-    {
-        return $this->shouldHave(new Prediction\CallPrediction);
-    }
-
-    /**
-     * Checks no calls prediction.
-     *
-     * @see Prophecy\Prediction\NoCallsPrediction
-     *
-     * @return $this
-     */
-    public function shouldNotHaveBeenCalled()
-    {
-        return $this->shouldHave(new Prediction\NoCallsPrediction);
-    }
-
-    /**
-     * Checks no calls prediction.
-     *
-     * @see Prophecy\Prediction\NoCallsPrediction
-     * @deprecated
-     *
-     * @return $this
-     */
-    public function shouldNotBeenCalled()
-    {
-        return $this->shouldNotHaveBeenCalled();
-    }
-
-    /**
-     * Checks call times prediction.
-     *
-     * @see Prophecy\Prediction\CallTimesPrediction
-     *
-     * @param int $count
-     *
-     * @return $this
-     */
-    public function shouldHaveBeenCalledTimes($count)
-    {
-        return $this->shouldHave(new Prediction\CallTimesPrediction($count));
-    }
-
-    /**
-     * Checks currently registered [with should(...)] prediction.
-     */
-    public function checkPrediction()
-    {
-        if (null === $this->prediction) {
-            return;
-        }
-
-        $this->shouldHave($this->prediction);
-    }
-
-    /**
-     * Returns currently registered promise.
-     *
-     * @return null|Promise\PromiseInterface
-     */
-    public function getPromise()
-    {
-        return $this->promise;
-    }
-
-    /**
-     * Returns currently registered prediction.
-     *
-     * @return null|Prediction\PredictionInterface
-     */
-    public function getPrediction()
-    {
-        return $this->prediction;
-    }
-
-    /**
-     * Returns predictions that were checked on this object.
-     *
-     * @return Prediction\PredictionInterface[]
-     */
-    public function getCheckedPredictions()
-    {
-        return $this->checkedPredictions;
-    }
-
-    /**
-     * Returns object prophecy this method prophecy is tied to.
-     *
-     * @return ObjectProphecy
-     */
-    public function getObjectProphecy()
-    {
-        return $this->objectProphecy;
-    }
-
-    /**
-     * Returns method name.
-     *
-     * @return string
-     */
-    public function getMethodName()
-    {
-        return $this->methodName;
-    }
-
-    /**
-     * Returns arguments wildcard.
-     *
-     * @return Argument\ArgumentsWildcard
-     */
-    public function getArgumentsWildcard()
-    {
-        return $this->argumentsWildcard;
-    }
-
-    private function bindToObjectProphecy()
-    {
-        if ($this->bound) {
-            return;
-        }
-
-        $this->getObjectProphecy()->addMethodProphecy($this);
-        $this->bound = true;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php
deleted file mode 100644
index e85c9d5..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php
+++ /dev/null
@@ -1,279 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prophecy;
-
-use SebastianBergmann\Comparator\Factory as ComparatorFactory;
-use SebastianBergmann\Comparator\ComparisonFailure;
-use Prophecy\Call\Call;
-use Prophecy\Doubler\LazyDouble;
-use Prophecy\Argument\ArgumentsWildcard;
-use Prophecy\Call\CallCenter;
-use Prophecy\Exception\Prophecy\ObjectProphecyException;
-use Prophecy\Exception\Prophecy\MethodProphecyException;
-use Prophecy\Exception\Prediction\AggregateException;
-use Prophecy\Exception\Prediction\PredictionException;
-
-/**
- * Object prophecy.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class ObjectProphecy implements ProphecyInterface
-{
-    private $lazyDouble;
-    private $callCenter;
-    private $revealer;
-    private $comparatorFactory;
-
-    /**
-     * @var MethodProphecy[][]
-     */
-    private $methodProphecies = array();
-
-    /**
-     * Initializes object prophecy.
-     *
-     * @param LazyDouble        $lazyDouble
-     * @param CallCenter        $callCenter
-     * @param RevealerInterface $revealer
-     * @param ComparatorFactory $comparatorFactory
-     */
-    public function __construct(
-        LazyDouble $lazyDouble,
-        CallCenter $callCenter = null,
-        RevealerInterface $revealer = null,
-        ComparatorFactory $comparatorFactory = null
-    ) {
-        $this->lazyDouble = $lazyDouble;
-        $this->callCenter = $callCenter ?: new CallCenter;
-        $this->revealer   = $revealer ?: new Revealer;
-
-        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();
-    }
-
-    /**
-     * Forces double to extend specific class.
-     *
-     * @param string $class
-     *
-     * @return $this
-     */
-    public function willExtend($class)
-    {
-        $this->lazyDouble->setParentClass($class);
-
-        return $this;
-    }
-
-    /**
-     * Forces double to implement specific interface.
-     *
-     * @param string $interface
-     *
-     * @return $this
-     */
-    public function willImplement($interface)
-    {
-        $this->lazyDouble->addInterface($interface);
-
-        return $this;
-    }
-
-    /**
-     * Sets constructor arguments.
-     *
-     * @param array $arguments
-     *
-     * @return $this
-     */
-    public function willBeConstructedWith(array $arguments = null)
-    {
-        $this->lazyDouble->setArguments($arguments);
-
-        return $this;
-    }
-
-    /**
-     * Reveals double.
-     *
-     * @return object
-     *
-     * @throws \Prophecy\Exception\Prophecy\ObjectProphecyException If double doesn't implement needed interface
-     */
-    public function reveal()
-    {
-        $double = $this->lazyDouble->getInstance();
-
-        if (null === $double || !$double instanceof ProphecySubjectInterface) {
-            throw new ObjectProphecyException(
-                "Generated double must implement ProphecySubjectInterface, but it does not.\n".
-                'It seems you have wrongly configured doubler without required ClassPatch.',
-                $this
-            );
-        }
-
-        $double->setProphecy($this);
-
-        return $double;
-    }
-
-    /**
-     * Adds method prophecy to object prophecy.
-     *
-     * @param MethodProphecy $methodProphecy
-     *
-     * @throws \Prophecy\Exception\Prophecy\MethodProphecyException If method prophecy doesn't
-     *                                                              have arguments wildcard
-     */
-    public function addMethodProphecy(MethodProphecy $methodProphecy)
-    {
-        $argumentsWildcard = $methodProphecy->getArgumentsWildcard();
-        if (null === $argumentsWildcard) {
-            throw new MethodProphecyException(sprintf(
-                "Can not add prophecy for a method `%s::%s()`\n".
-                "as you did not specify arguments wildcard for it.",
-                get_class($this->reveal()),
-                $methodProphecy->getMethodName()
-            ), $methodProphecy);
-        }
-
-        $methodName = $methodProphecy->getMethodName();
-
-        if (!isset($this->methodProphecies[$methodName])) {
-            $this->methodProphecies[$methodName] = array();
-        }
-
-        $this->methodProphecies[$methodName][] = $methodProphecy;
-    }
-
-    /**
-     * Returns either all or related to single method prophecies.
-     *
-     * @param null|string $methodName
-     *
-     * @return MethodProphecy[]
-     */
-    public function getMethodProphecies($methodName = null)
-    {
-        if (null === $methodName) {
-            return $this->methodProphecies;
-        }
-
-        if (!isset($this->methodProphecies[$methodName])) {
-            return array();
-        }
-
-        return $this->methodProphecies[$methodName];
-    }
-
-    /**
-     * Makes specific method call.
-     *
-     * @param string $methodName
-     * @param array  $arguments
-     *
-     * @return mixed
-     */
-    public function makeProphecyMethodCall($methodName, array $arguments)
-    {
-        $arguments = $this->revealer->reveal($arguments);
-        $return    = $this->callCenter->makeCall($this, $methodName, $arguments);
-
-        return $this->revealer->reveal($return);
-    }
-
-    /**
-     * Finds calls by method name & arguments wildcard.
-     *
-     * @param string            $methodName
-     * @param ArgumentsWildcard $wildcard
-     *
-     * @return Call[]
-     */
-    public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard)
-    {
-        return $this->callCenter->findCalls($methodName, $wildcard);
-    }
-
-    /**
-     * Checks that registered method predictions do not fail.
-     *
-     * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail
-     */
-    public function checkProphecyMethodsPredictions()
-    {
-        $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal())));
-        $exception->setObjectProphecy($this);
-
-        foreach ($this->methodProphecies as $prophecies) {
-            foreach ($prophecies as $prophecy) {
-                try {
-                    $prophecy->checkPrediction();
-                } catch (PredictionException $e) {
-                    $exception->append($e);
-                }
-            }
-        }
-
-        if (count($exception->getExceptions())) {
-            throw $exception;
-        }
-    }
-
-    /**
-     * Creates new method prophecy using specified method name and arguments.
-     *
-     * @param string $methodName
-     * @param array  $arguments
-     *
-     * @return MethodProphecy
-     */
-    public function __call($methodName, array $arguments)
-    {
-        $arguments = new ArgumentsWildcard($this->revealer->reveal($arguments));
-
-        foreach ($this->getMethodProphecies($methodName) as $prophecy) {
-            $argumentsWildcard = $prophecy->getArgumentsWildcard();
-            $comparator = $this->comparatorFactory->getComparatorFor(
-                $argumentsWildcard, $arguments
-            );
-
-            try {
-                $comparator->assertEquals($argumentsWildcard, $arguments);
-                return $prophecy;
-            } catch (ComparisonFailure $failure) {}
-        }
-
-        return new MethodProphecy($this, $methodName, $arguments);
-    }
-
-    /**
-     * Tries to get property value from double.
-     *
-     * @param string $name
-     */
-    public function __get($name)
-    {
-        return $this->reveal()->$name;
-    }
-
-    /**
-     * Tries to set property value to double.
-     *
-     * @param string $name
-     * @param string $value
-     */
-    public function __set($name, $value)
-    {
-        $this->reveal()->$name = $this->revealer->reveal($value);
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php
deleted file mode 100644
index 462f15a..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prophecy;
-
-/**
- * Core Prophecy interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface ProphecyInterface
-{
-    /**
-     * Reveals prophecy object (double) .
-     *
-     * @return object
-     */
-    public function reveal();
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php
deleted file mode 100644
index 2d83958..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prophecy;
-
-/**
- * Controllable doubles interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface ProphecySubjectInterface
-{
-    /**
-     * Sets subject prophecy.
-     *
-     * @param ProphecyInterface $prophecy
-     */
-    public function setProphecy(ProphecyInterface $prophecy);
-
-    /**
-     * Returns subject prophecy.
-     *
-     * @return ProphecyInterface
-     */
-    public function getProphecy();
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php
deleted file mode 100644
index 60ecdac..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prophecy;
-
-/**
- * Basic prophecies revealer.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Revealer implements RevealerInterface
-{
-    /**
-     * Unwraps value(s).
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     */
-    public function reveal($value)
-    {
-        if (is_array($value)) {
-            return array_map(array($this, __FUNCTION__), $value);
-        }
-
-        if (!is_object($value)) {
-            return $value;
-        }
-
-        if ($value instanceof ProphecyInterface) {
-            $value = $value->reveal();
-        }
-
-        return $value;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php
deleted file mode 100644
index ffc82bb..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Prophecy;
-
-/**
- * Prophecies revealer interface.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-interface RevealerInterface
-{
-    /**
-     * Unwraps value(s).
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     */
-    public function reveal($value);
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php
deleted file mode 100644
index ac64923..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Prophet.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy;
-
-use Prophecy\Doubler\Doubler;
-use Prophecy\Doubler\LazyDouble;
-use Prophecy\Doubler\ClassPatch;
-use Prophecy\Prophecy\ObjectProphecy;
-use Prophecy\Prophecy\RevealerInterface;
-use Prophecy\Prophecy\Revealer;
-use Prophecy\Call\CallCenter;
-use Prophecy\Util\StringUtil;
-use Prophecy\Exception\Prediction\PredictionException;
-use Prophecy\Exception\Prediction\AggregateException;
-
-/**
- * Prophet creates prophecies.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class Prophet
-{
-    private $doubler;
-    private $revealer;
-    private $util;
-
-    /**
-     * @var ObjectProphecy[]
-     */
-    private $prophecies = array();
-
-    /**
-     * Initializes Prophet.
-     *
-     * @param null|Doubler           $doubler
-     * @param null|RevealerInterface $revealer
-     * @param null|StringUtil        $util
-     */
-    public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null,
-                                StringUtil $util = null)
-    {
-        if (null === $doubler) {
-            $doubler = new Doubler;
-            $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch);
-            $doubler->registerClassPatch(new ClassPatch\TraversablePatch);
-            $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch);
-            $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch);
-            $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch);
-            $doubler->registerClassPatch(new ClassPatch\HhvmExceptionPatch());
-            $doubler->registerClassPatch(new ClassPatch\MagicCallPatch);
-            $doubler->registerClassPatch(new ClassPatch\KeywordPatch);
-        }
-
-        $this->doubler  = $doubler;
-        $this->revealer = $revealer ?: new Revealer;
-        $this->util     = $util ?: new StringUtil;
-    }
-
-    /**
-     * Creates new object prophecy.
-     *
-     * @param null|string $classOrInterface Class or interface name
-     *
-     * @return ObjectProphecy
-     */
-    public function prophesize($classOrInterface = null)
-    {
-        $this->prophecies[] = $prophecy = new ObjectProphecy(
-            new LazyDouble($this->doubler),
-            new CallCenter($this->util),
-            $this->revealer
-        );
-
-        if ($classOrInterface && class_exists($classOrInterface)) {
-            return $prophecy->willExtend($classOrInterface);
-        }
-
-        if ($classOrInterface && interface_exists($classOrInterface)) {
-            return $prophecy->willImplement($classOrInterface);
-        }
-
-        return $prophecy;
-    }
-
-    /**
-     * Returns all created object prophecies.
-     *
-     * @return ObjectProphecy[]
-     */
-    public function getProphecies()
-    {
-        return $this->prophecies;
-    }
-
-    /**
-     * Returns Doubler instance assigned to this Prophet.
-     *
-     * @return Doubler
-     */
-    public function getDoubler()
-    {
-        return $this->doubler;
-    }
-
-    /**
-     * Checks all predictions defined by prophecies of this Prophet.
-     *
-     * @throws Exception\Prediction\AggregateException If any prediction fails
-     */
-    public function checkPredictions()
-    {
-        $exception = new AggregateException("Some predictions failed:\n");
-        foreach ($this->prophecies as $prophecy) {
-            try {
-                $prophecy->checkProphecyMethodsPredictions();
-            } catch (PredictionException $e) {
-                $exception->append($e);
-            }
-        }
-
-        if (count($exception->getExceptions())) {
-            throw $exception;
-        }
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php
deleted file mode 100644
index 54d3832..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-namespace Prophecy\Util;
-
-use Prophecy\Prophecy\ProphecyInterface;
-use SplObjectStorage;
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exporting utility.
- *
- * This class is derived from the PHPUnit testing framework.
- *
- * @author  Sebastiaan Stok <s.stok@rollerscapes.net
- * @author  Sebastian Bergmann <sebastian@phpunit.de>
- * @license http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License>
- */
-class ExportUtil
-{
-    /**
-     * Exports a value into a string.
-     *
-     * The output of this method is similar to the output of print_r(), but
-     * improved in various aspects:
-     *
-     *  - NULL is rendered as "null" (instead of "")
-     *  - true is rendered as "true" (instead of "1")
-     *  - FALSE is rendered as "false" (instead of "")
-     *  - Strings are always quoted with single quotes
-     *  - Carriage returns and newlines are normalized to \n
-     *  - Recursion and repeated rendering is treated properly
-     *
-     * @param  mixed   $value       The value to export
-     * @param  integer $indentation The indentation level of the 2nd+ line
-     *
-     * @return string
-     */
-    public static function export($value, $indentation = 0)
-    {
-        return static::recursiveExport($value, $indentation);
-    }
-
-    /**
-     * Converts an object to an array containing all of its private, protected
-     * and public properties.
-     *
-     * @param  object $object
-     *
-     * @return array
-     */
-    public static function toArray($object)
-    {
-        $array = array();
-
-        foreach ((array) $object as $key => $value) {
-            // properties are transformed to keys in the following way:
-
-            // private   $property => "\0Classname\0property"
-            // protected $property => "\0*\0property"
-            // public    $property => "property"
-
-            if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) {
-                $key = $matches[1];
-            }
-
-            $array[$key] = $value;
-        }
-
-        // Some internal classes like SplObjectStorage don't work with the
-        // above (fast) mechanism nor with reflection
-        // Format the output similarly to print_r() in this case
-        if ($object instanceof SplObjectStorage) {
-            foreach ($object as $key => $value) {
-                $array[spl_object_hash($value)] = array(
-                    'obj' => $value,
-                    'inf' => $object->getInfo(),
-                );
-            }
-        }
-
-        return $array;
-    }
-
-    /**
-     * Recursive implementation of export.
-     *
-     * @param  mixed   $value            The value to export
-     * @param  integer $indentation      The indentation level of the 2nd+ line
-     * @param  array   $processedObjects Contains all objects that were already
-     *                                   rendered
-     *
-     * @return string
-     */
-    protected static function recursiveExport($value, $indentation, &$processedObjects = array())
-    {
-        if ($value === null) {
-            return 'null';
-        }
-
-        if ($value === true) {
-            return 'true';
-        }
-
-        if ($value === false) {
-            return 'false';
-        }
-
-        if (is_string($value)) {
-            // Match for most non printable chars somewhat taking multibyte chars into account
-            if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) {
-                return 'Binary String: 0x' . bin2hex($value);
-            }
-
-            return "'" . str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) . "'";
-        }
-
-        $origValue = $value;
-
-        if (is_object($value)) {
-            if ($value instanceof ProphecyInterface) {
-                return sprintf('%s Object (*Prophecy*)', get_class($value));
-            } elseif (in_array($value, $processedObjects, true)) {
-                return sprintf('%s Object (*RECURSION*)', get_class($value));
-            }
-
-            $processedObjects[] = $value;
-
-            // Convert object to array
-            $value = self::toArray($value);
-        }
-
-        if (is_array($value)) {
-            $whitespace = str_repeat('    ', $indentation);
-
-            // There seems to be no other way to check arrays for recursion
-            // http://www.php.net/manual/en/language.types.array.php#73936
-            preg_match_all('/\n            \[(\w+)\] => Array\s+\*RECURSION\*/', print_r($value, true), $matches);
-            $recursiveKeys = array_unique($matches[1]);
-
-            // Convert to valid array keys
-            // Numeric integer strings are automatically converted to integers
-            // by PHP
-            foreach ($recursiveKeys as $key => $recursiveKey) {
-                if ((string) (integer) $recursiveKey === $recursiveKey) {
-                    $recursiveKeys[$key] = (integer) $recursiveKey;
-                }
-            }
-
-            $content = '';
-
-            foreach ($value as $key => $val) {
-                if (in_array($key, $recursiveKeys, true)) {
-                    $val = 'Array (*RECURSION*)';
-                } else {
-                    $val = self::recursiveExport($val, $indentation + 1, $processedObjects);
-                }
-
-                $content .= $whitespace . '    ' . self::export($key) . ' => ' . $val . "\n";
-            }
-
-            if (strlen($content) > 0) {
-                $content = "\n" . $content . $whitespace;
-            }
-
-            return sprintf(
-                "%s (%s)",
-                is_object($origValue) ? sprintf('%s:%s', get_class($origValue), spl_object_hash($origValue)) . ' Object' : 'Array', $content
-            );
-        }
-
-        if (is_double($value) && (double)(integer) $value === $value) {
-            return $value . '.0';
-        }
-
-        return (string) $value;
-    }
-}
diff --git a/core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php b/core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php
deleted file mode 100644
index bb90156..0000000
--- a/core/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Prophecy.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *     Marcello Duarte <marcello.duarte@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Prophecy\Util;
-
-use Prophecy\Call\Call;
-
-/**
- * String utility.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class StringUtil
-{
-    /**
-     * Stringifies any provided value.
-     *
-     * @param mixed   $value
-     * @param boolean $exportObject
-     *
-     * @return string
-     */
-    public function stringify($value, $exportObject = true)
-    {
-        if (is_array($value)) {
-            if (range(0, count($value) - 1) === array_keys($value)) {
-                return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']';
-            }
-
-            $stringify = array($this, __FUNCTION__);
-
-            return '['.implode(', ', array_map(function ($item, $key) use ($stringify) {
-                return (is_integer($key) ? $key : '"'.$key.'"').
-                    ' => '.call_user_func($stringify, $item);
-            }, $value, array_keys($value))).']';
-        }
-        if (is_resource($value)) {
-            return get_resource_type($value).':'.$value;
-        }
-        if (is_object($value)) {
-            return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value));
-        }
-        if (true === $value || false === $value) {
-            return $value ? 'true' : 'false';
-        }
-        if (is_string($value)) {
-            $str = sprintf('"%s"', str_replace("\n", '\\n', $value));
-
-            if (50 <= strlen($str)) {
-                return substr($str, 0, 50).'"...';
-            }
-
-            return $str;
-        }
-        if (null === $value) {
-            return 'null';
-        }
-
-        return (string) $value;
-    }
-
-    /**
-     * Stringifies provided array of calls.
-     *
-     * @param Call[] $calls Array of Call instances
-     *
-     * @return string
-     */
-    public function stringifyCalls(array $calls)
-    {
-        $self = $this;
-
-        return implode(PHP_EOL, array_map(function (Call $call) use ($self) {
-            return sprintf('  - %s(%s) @ %s',
-                $call->getMethodName(),
-                implode(', ', array_map(array($self, 'stringify'), $call->getArguments())),
-                str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace())
-            );
-        }, $calls));
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/.gitattributes b/core/vendor/phpunit/php-code-coverage/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/phpunit/php-code-coverage/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/phpunit/php-code-coverage/.gitignore b/core/vendor/phpunit/php-code-coverage/.gitignore
deleted file mode 100644
index b386531..0000000
--- a/core/vendor/phpunit/php-code-coverage/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-build/api
-build/code-browser
-build/coverage
-build/logs
-build/pdepend
-cache.properties
-phpunit.xml
-/vendor
-/composer.lock
-/composer.phar
-/.idea
diff --git a/core/vendor/phpunit/php-code-coverage/.travis.yml b/core/vendor/phpunit/php-code-coverage/.travis.yml
deleted file mode 100644
index 5c23715..0000000
--- a/core/vendor/phpunit/php-code-coverage/.travis.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-language: php
-
-php:
-    - 5.3.3
-    - 5.3
-    - 5.4
-    - 5.5
-    - 5.6
-
-before_script:
-    - COMPOSER_ROOT_VERSION=dev-master composer install --dev --prefer-source
-
-script: vendor/bin/phpunit --configuration ./build/travis-ci.xml
-
-notifications:
-  email: false
-  irc:
-    channels:
-      - "irc.freenode.org#phpunit"
-    use_notice: true
diff --git a/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md b/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md
deleted file mode 100644
index 40dbc25..0000000
--- a/core/vendor/phpunit/php-code-coverage/CONTRIBUTING.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Pull Requests for bug fixes should be made against the current release branch (2.0).
-
-Pull Requests for new features should be made against master.
-
-For further notes please refer to [https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md)
diff --git a/core/vendor/phpunit/php-code-coverage/LICENSE b/core/vendor/phpunit/php-code-coverage/LICENSE
deleted file mode 100644
index fcfa37e..0000000
--- a/core/vendor/phpunit/php-code-coverage/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-PHP_CodeCoverage
-
-Copyright (c) 2009-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/php-code-coverage/README.md b/core/vendor/phpunit/php-code-coverage/README.md
deleted file mode 100644
index 6ca608a..0000000
--- a/core/vendor/phpunit/php-code-coverage/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-[![Latest Stable Version](https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png)](https://packagist.org/packages/phpunit/php-code-coverage)
-[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-code-coverage)
-
-# PHP_CodeCoverage
-
-**PHP_CodeCoverage** is a library that provides collection, processing, and rendering functionality for PHP code coverage information.
-
-## Requirements
-
-* PHP 5.3.3 is required but using the latest version of PHP is highly recommended
-* [Xdebug](http://xdebug.org/) 2.1.3 is required but using the latest version of Xdebug is highly recommended
-
-## Installation
-
-To add PHP_CodeCoverage as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-code-coverage` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on PHP_CodeCoverage 2.0:
-
-    {
-        "require": {
-            "phpunit/php-code-coverage": "~2.0"
-        }
-    }
-
-## Using the PHP_CodeCoverage API
-
-```php
-<?php
-$coverage = new PHP_CodeCoverage;
-$coverage->start('<name of test>');
-
-// ...
-
-$coverage->stop();
-
-$writer = new PHP_CodeCoverage_Report_Clover;
-$writer->process($coverage, '/tmp/clover.xml');
-
-$writer = new PHP_CodeCoverage_Report_HTML;
-$writer->process($coverage, '/tmp/code-coverage-report');
-```
-
diff --git a/core/vendor/phpunit/php-code-coverage/build.xml b/core/vendor/phpunit/php-code-coverage/build.xml
deleted file mode 100644
index c335d15..0000000
--- a/core/vendor/phpunit/php-code-coverage/build.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="PHP_CodeCoverage">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
-
-  <delete>
-   <fileset dir="${basedir}/build">
-    <include name="**/*.phar" />
-   </fileset>
-  </delete>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-
- <target name="phpcs" description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=PSR2" />
-   <arg value="--extensions=php" />
-   <arg path="${basedir}/src" />
-   <arg path="${basedir}/tests" />
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/phpunit/php-code-coverage/build/travis-ci.xml b/core/vendor/phpunit/php-code-coverage/build/travis-ci.xml
deleted file mode 100644
index 15e879fa..0000000
--- a/core/vendor/phpunit/php-code-coverage/build/travis-ci.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true">
-  <testsuites>
-    <testsuite name="PHP_CodeCoverage">
-      <directory suffix="Test.php">../tests/PHP</directory>
-    </testsuite>
-  </testsuites>
-
-  <logging>
-    <log type="coverage-text" target="php://stdout"/>
-  </logging>
-
-  <filter>
-    <whitelist addUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">../src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/phpunit/php-code-coverage/composer.json b/core/vendor/phpunit/php-code-coverage/composer.json
deleted file mode 100644
index 23df5ba..0000000
--- a/core/vendor/phpunit/php-code-coverage/composer.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-    "name": "phpunit/php-code-coverage",
-    "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-    "type": "library",
-    "keywords": [
-        "coverage",
-        "testing",
-        "xunit"
-    ],
-    "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sb@sebastian-bergmann.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
-        "irc": "irc://irc.freenode.net/phpunit"
-    },
-    "require": {
-        "php": ">=5.3.3",
-        "phpunit/php-file-iterator": "~1.3",
-        "phpunit/php-token-stream": "~1.3",
-        "phpunit/php-text-template": "~1.2",
-        "sebastian/environment": "~1.0",
-        "sebastian/version": "~1.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4",
-        "ext-xdebug": ">=2.1.4"
-    },
-    "suggest": {
-        "ext-dom": "*",
-        "ext-xdebug": ">=2.2.1",
-        "ext-xmlwriter": "*"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.0.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/phpunit.xml.dist b/core/vendor/phpunit/php-code-coverage/phpunit.xml.dist
deleted file mode 100644
index f5fa606..0000000
--- a/core/vendor/phpunit/php-code-coverage/phpunit.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         bootstrap="vendor/autoload.php">
-  <testsuites>
-    <testsuite name="PHP_CodeCoverage">
-      <directory suffix="Test.php">tests/PHP</directory>
-    </testsuite>
-  </testsuites>
-
-  <logging>
-    <log type="coverage-html" target="build/coverage"/>
-    <log type="coverage-clover" target="build/logs/clover.xml"/>
-    <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
-  </logging>
-
-  <filter>
-    <whitelist addUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
-
diff --git a/core/vendor/phpunit/php-code-coverage/scripts/auto_append.php b/core/vendor/phpunit/php-code-coverage/scripts/auto_append.php
deleted file mode 100644
index 6cd768d..0000000
--- a/core/vendor/phpunit/php-code-coverage/scripts/auto_append.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-$coverage->stop();
-
-$writer = new PHP_CodeCoverage_Report_HTML;
-$writer->process($coverage, '/tmp/coverage');
diff --git a/core/vendor/phpunit/php-code-coverage/scripts/auto_prepend.php b/core/vendor/phpunit/php-code-coverage/scripts/auto_prepend.php
deleted file mode 100644
index 7a8887a..0000000
--- a/core/vendor/phpunit/php-code-coverage/scripts/auto_prepend.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-require_once 'PHP/CodeCoverage/Autoload.php';
-
-$coverage = new PHP_CodeCoverage;
-$filter   = $coverage->filter();
-
-$filter->addFileToBlacklist(__FILE__);
-$filter->addFileToBlacklist(dirname(__FILE__) . '/auto_append.php');
-
-$coverage->start($_SERVER['SCRIPT_FILENAME']);
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php
deleted file mode 100644
index 54f0f6a..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage.php
+++ /dev/null
@@ -1,864 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Environment\Runtime;
-
-/**
- * Provides collection functionality for PHP code coverage information.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage
-{
-    /**
-     * @var PHP_CodeCoverage_Driver
-     */
-    private $driver;
-
-    /**
-     * @var PHP_CodeCoverage_Filter
-     */
-    private $filter;
-
-    /**
-     * @var boolean
-     */
-    private $cacheTokens = false;
-
-    /**
-     * @var boolean
-     */
-    private $checkForUnintentionallyCoveredCode = false;
-
-    /**
-     * @var boolean
-     */
-    private $forceCoversAnnotation = false;
-
-    /**
-     * @var boolean
-     */
-    private $mapTestClassNameToCoveredClassName = false;
-
-    /**
-     * @var boolean
-     */
-    private $addUncoveredFilesFromWhitelist = true;
-
-    /**
-     * @var boolean
-     */
-    private $processUncoveredFilesFromWhitelist = false;
-
-    /**
-     * @var mixed
-     */
-    private $currentId;
-
-    /**
-     * Code coverage data.
-     *
-     * @var array
-     */
-    private $data = array();
-
-    /**
-     * @var array
-     */
-    private $ignoredLines = array();
-
-    /**
-     * Test data.
-     *
-     * @var array
-     */
-    private $tests = array();
-
-    /**
-     * Constructor.
-     *
-     * @param  PHP_CodeCoverage_Driver $driver
-     * @param  PHP_CodeCoverage_Filter $filter
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function __construct(PHP_CodeCoverage_Driver $driver = null, PHP_CodeCoverage_Filter $filter = null)
-    {
-        if ($driver === null) {
-            $runtime = new Runtime;
-
-            if ($runtime->isHHVM()) {
-                $driver = new PHP_CodeCoverage_Driver_HHVM;
-            } elseif ($runtime->hasXdebug()) {
-                $driver = new PHP_CodeCoverage_Driver_Xdebug;
-            } else {
-                throw new PHP_CodeCoverage_Exception('No code coverage driver available');
-            }
-        }
-
-        if ($filter === null) {
-            $filter = new PHP_CodeCoverage_Filter;
-        }
-
-        $this->driver = $driver;
-        $this->filter = $filter;
-    }
-
-    /**
-     * Returns the PHP_CodeCoverage_Report_Node_* object graph
-     * for this PHP_CodeCoverage object.
-     *
-     * @return PHP_CodeCoverage_Report_Node_Directory
-     * @since  Method available since Release 1.1.0
-     */
-    public function getReport()
-    {
-        $factory = new PHP_CodeCoverage_Report_Factory;
-
-        return $factory->create($this);
-    }
-
-    /**
-     * Clears collected code coverage data.
-     */
-    public function clear()
-    {
-        $this->currentId = null;
-        $this->data      = array();
-        $this->tests     = array();
-    }
-
-    /**
-     * Returns the PHP_CodeCoverage_Filter used.
-     *
-     * @return PHP_CodeCoverage_Filter
-     */
-    public function filter()
-    {
-        return $this->filter;
-    }
-
-    /**
-     * Returns the collected code coverage data.
-     * Set $raw = true to bypass all filters.
-     *
-     * @param bool $raw
-     * @return array
-     * @since  Method available since Release 1.1.0
-     */
-    public function getData($raw = false)
-    {
-        if (!$raw && $this->addUncoveredFilesFromWhitelist) {
-            $this->addUncoveredFilesFromWhitelist();
-        }
-
-        // We need to apply the blacklist filter a second time
-        // when no whitelist is used.
-        if (!$raw && !$this->filter->hasWhitelist()) {
-            $this->applyListsFilter($this->data);
-        }
-
-        return $this->data;
-    }
-
-    /**
-     * Sets the coverage data.
-     *
-     * @param array $data
-     * @since Method available since Release 2.0.0
-     */
-    public function setData(array $data)
-    {
-        $this->data = $data;
-    }
-
-    /**
-     * Returns the test data.
-     *
-     * @return array
-     * @since  Method available since Release 1.1.0
-     */
-    public function getTests()
-    {
-        return $this->tests;
-    }
-
-    /**
-     * Sets the test data.
-     *
-     * @param array $tests
-     * @since Method available since Release 2.0.0
-     */
-    public function setTests(array $tests)
-    {
-        $this->tests = $tests;
-    }
-
-    /**
-     * Start collection of code coverage information.
-     *
-     * @param  mixed                      $id
-     * @param  boolean                    $clear
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function start($id, $clear = false)
-    {
-        if (!is_bool($clear)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        if ($clear) {
-            $this->clear();
-        }
-
-        $this->currentId = $id;
-
-        $this->driver->start();
-    }
-
-    /**
-     * Stop collection of code coverage information.
-     *
-     * @param  boolean                    $append
-     * @param  mixed                      $linesToBeCovered
-     * @param  array                      $linesToBeUsed
-     * @return array
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function stop($append = true, $linesToBeCovered = array(), array $linesToBeUsed = array())
-    {
-        if (!is_bool($append)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        if (!is_array($linesToBeCovered) && $linesToBeCovered !== false) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or false'
-            );
-        }
-
-        $data = $this->driver->stop();
-        $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed);
-
-        $this->currentId = null;
-
-        return $data;
-    }
-
-    /**
-     * Appends code coverage data.
-     *
-     * @param  array                      $data
-     * @param  mixed                      $id
-     * @param  boolean                    $append
-     * @param  mixed                      $linesToBeCovered
-     * @param  array                      $linesToBeUsed
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function append(array $data, $id = null, $append = true, $linesToBeCovered = array(), array $linesToBeUsed = array())
-    {
-        if ($id === null) {
-            $id = $this->currentId;
-        }
-
-        if ($id === null) {
-            throw new PHP_CodeCoverage_Exception;
-        }
-
-        $this->applyListsFilter($data);
-        $this->applyIgnoredLinesFilter($data);
-        $this->initializeFilesThatAreSeenTheFirstTime($data);
-
-        if (!$append) {
-            return;
-        }
-
-        if ($id != 'UNCOVERED_FILES_FROM_WHITELIST') {
-            $this->applyCoversAnnotationFilter(
-                $data,
-                $linesToBeCovered,
-                $linesToBeUsed
-            );
-        }
-
-        if (empty($data)) {
-            return;
-        }
-
-        $status = null;
-
-        if ($id instanceof PHPUnit_Framework_TestCase) {
-            $status = $id->getStatus();
-            $id     = get_class($id) . '::' . $id->getName();
-        } elseif ($id instanceof PHPUnit_Extensions_PhptTestCase) {
-            $id = $id->getName();
-        }
-
-        $this->tests[$id] = $status;
-
-        foreach ($data as $file => $lines) {
-            if (!$this->filter->isFile($file)) {
-                continue;
-            }
-
-            foreach ($lines as $k => $v) {
-                if ($v == 1) {
-                    $this->data[$file][$k][] = $id;
-                }
-            }
-        }
-    }
-
-    /**
-     * Merges the data from another instance of PHP_CodeCoverage.
-     *
-     * @param PHP_CodeCoverage $that
-     */
-    public function merge(PHP_CodeCoverage $that)
-    {
-        foreach ($that->getData() as $file => $lines) {
-            if (!isset($this->data[$file])) {
-                if (!$that->filter()->isFiltered($file)) {
-                    $this->data[$file] = $lines;
-                }
-
-                continue;
-            }
-
-            foreach ($lines as $line => $data) {
-                if ($data !== null) {
-                    if (!isset($this->data[$file][$line])) {
-                        $this->data[$file][$line] = $data;
-                    } else {
-                        $this->data[$file][$line] = array_unique(
-                            array_merge($this->data[$file][$line], $data)
-                        );
-                    }
-                }
-            }
-        }
-
-        $this->tests = array_merge($this->tests, $that->getTests());
-    }
-
-    /**
-     * @param  boolean                    $flag
-     * @throws PHP_CodeCoverage_Exception
-     * @since  Method available since Release 1.1.0
-     */
-    public function setCacheTokens($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        $this->cacheTokens = $flag;
-    }
-
-    /**
-     * @since Method available since Release 1.1.0
-     */
-    public function getCacheTokens()
-    {
-        return $this->cacheTokens;
-    }
-
-    /**
-     * @param  boolean                    $flag
-     * @throws PHP_CodeCoverage_Exception
-     * @since  Method available since Release 2.0.0
-     */
-    public function setCheckForUnintentionallyCoveredCode($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        $this->checkForUnintentionallyCoveredCode = $flag;
-    }
-
-    /**
-     * @param  boolean                    $flag
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function setForceCoversAnnotation($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        $this->forceCoversAnnotation = $flag;
-    }
-
-    /**
-     * @param  boolean                    $flag
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function setMapTestClassNameToCoveredClassName($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        $this->mapTestClassNameToCoveredClassName = $flag;
-    }
-
-    /**
-     * @param  boolean                    $flag
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function setAddUncoveredFilesFromWhitelist($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        $this->addUncoveredFilesFromWhitelist = $flag;
-    }
-
-    /**
-     * @param  boolean                    $flag
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function setProcessUncoveredFilesFromWhitelist($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        $this->processUncoveredFilesFromWhitelist = $flag;
-    }
-
-    /**
-     * Applies the @covers annotation filtering.
-     *
-     * @param  array                                                 $data
-     * @param  mixed                                                 $linesToBeCovered
-     * @param  array                                                 $linesToBeUsed
-     * @throws PHP_CodeCoverage_Exception_UnintentionallyCoveredCode
-     */
-    private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed)
-    {
-        if ($linesToBeCovered === false ||
-            ($this->forceCoversAnnotation && empty($linesToBeCovered))) {
-            $data = array();
-
-            return;
-        }
-
-        if (empty($linesToBeCovered)) {
-            return;
-        }
-
-        if ($this->checkForUnintentionallyCoveredCode) {
-            $this->performUnintentionallyCoveredCodeCheck(
-                $data,
-                $linesToBeCovered,
-                $linesToBeUsed
-            );
-        }
-
-        $data = array_intersect_key($data, $linesToBeCovered);
-
-        foreach (array_keys($data) as $filename) {
-            $_linesToBeCovered = array_flip($linesToBeCovered[$filename]);
-
-            $data[$filename] = array_intersect_key(
-                $data[$filename],
-                $_linesToBeCovered
-            );
-        }
-    }
-
-    /**
-     * Applies the blacklist/whitelist filtering.
-     *
-     * @param array $data
-     */
-    private function applyListsFilter(array &$data)
-    {
-        foreach (array_keys($data) as $filename) {
-            if ($this->filter->isFiltered($filename)) {
-                unset($data[$filename]);
-            }
-        }
-    }
-
-    /**
-     * Applies the "ignored lines" filtering.
-     *
-     * @param array $data
-     */
-    private function applyIgnoredLinesFilter(array &$data)
-    {
-        foreach (array_keys($data) as $filename) {
-            if (!$this->filter->isFile($filename)) {
-                continue;
-            }
-
-            foreach ($this->getLinesToBeIgnored($filename) as $line) {
-                unset($data[$filename][$line]);
-            }
-        }
-    }
-
-    /**
-     * @param array $data
-     * @since Method available since Release 1.1.0
-     */
-    private function initializeFilesThatAreSeenTheFirstTime(array $data)
-    {
-        foreach ($data as $file => $lines) {
-            if ($this->filter->isFile($file) && !isset($this->data[$file])) {
-                $this->data[$file] = array();
-
-                foreach ($lines as $k => $v) {
-                    $this->data[$file][$k] = $v == -2 ? null : array();
-                }
-            }
-        }
-    }
-
-    /**
-     * Processes whitelisted files that are not covered.
-     */
-    private function addUncoveredFilesFromWhitelist()
-    {
-        $data           = array();
-        $uncoveredFiles = array_diff(
-            $this->filter->getWhitelist(),
-            array_keys($this->data)
-        );
-
-        foreach ($uncoveredFiles as $uncoveredFile) {
-            if (!file_exists($uncoveredFile)) {
-                continue;
-            }
-
-            if ($this->processUncoveredFilesFromWhitelist) {
-                $this->processUncoveredFileFromWhitelist(
-                    $uncoveredFile,
-                    $data,
-                    $uncoveredFiles
-                );
-            } else {
-                $data[$uncoveredFile] = array();
-
-                $lines = count(file($uncoveredFile));
-
-                for ($i = 1; $i <= $lines; $i++) {
-                    $data[$uncoveredFile][$i] = -1;
-                }
-            }
-        }
-
-        $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST');
-    }
-
-    /**
-     * @param string $uncoveredFile
-     * @param array  $data
-     * @param array  $uncoveredFiles
-     */
-    private function processUncoveredFileFromWhitelist($uncoveredFile, array &$data, array $uncoveredFiles)
-    {
-        $this->driver->start();
-        include_once $uncoveredFile;
-        $coverage = $this->driver->stop();
-
-        foreach ($coverage as $file => $fileCoverage) {
-            if (!isset($data[$file]) &&
-                in_array($file, $uncoveredFiles)) {
-                foreach (array_keys($fileCoverage) as $key) {
-                    if ($fileCoverage[$key] == 1) {
-                        $fileCoverage[$key] = -1;
-                    }
-                }
-
-                $data[$file] = $fileCoverage;
-            }
-        }
-    }
-
-    /**
-     * Returns the lines of a source file that should be ignored.
-     *
-     * @param  string                     $filename
-     * @return array
-     * @throws PHP_CodeCoverage_Exception
-     * @since  Method available since Release 2.0.0
-     */
-    private function getLinesToBeIgnored($filename)
-    {
-        if (!is_string($filename)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'string'
-            );
-        }
-
-        if (!isset($this->ignoredLines[$filename])) {
-            $this->ignoredLines[$filename] = array();
-            $ignore                        = false;
-            $stop                          = false;
-            $lines                         = file($filename);
-            $numLines                      = count($lines);
-
-            foreach ($lines as $index => $line) {
-                if (!trim($line)) {
-                    $this->ignoredLines[$filename][] = $index + 1;
-                }
-            }
-
-            if ($this->cacheTokens) {
-                $tokens = PHP_Token_Stream_CachingFactory::get($filename);
-            } else {
-                $tokens = new PHP_Token_Stream($filename);
-            }
-
-            $classes = array_merge($tokens->getClasses(), $tokens->getTraits());
-            $tokens  = $tokens->tokens();
-
-            foreach ($tokens as $token) {
-                switch (get_class($token)) {
-                    case 'PHP_Token_COMMENT':
-                    case 'PHP_Token_DOC_COMMENT':
-                        $_token = trim($token);
-                        $_line  = trim($lines[$token->getLine() - 1]);
-
-                        if ($_token == '// @codeCoverageIgnore' ||
-                            $_token == '//@codeCoverageIgnore') {
-                            $ignore = true;
-                            $stop   = true;
-                        } elseif ($_token == '// @codeCoverageIgnoreStart' ||
-                            $_token == '//@codeCoverageIgnoreStart') {
-                            $ignore = true;
-                        } elseif ($_token == '// @codeCoverageIgnoreEnd' ||
-                            $_token == '//@codeCoverageIgnoreEnd') {
-                            $stop = true;
-                        }
-
-                        if (!$ignore) {
-                            $start = $token->getLine();
-                            $end = $start + substr_count($token, "\n");
-
-                            // Do not ignore the first line when there is a token
-                            // before the comment
-                            if (0 !== strpos($_token, $_line)) {
-                                $start++;
-                            }
-
-                            for ($i = $start; $i < $end; $i++) {
-                                $this->ignoredLines[$filename][] = $i;
-                            }
-
-                            // A DOC_COMMENT token or a COMMENT token starting with "/*"
-                            // does not contain the final \n character in its text
-                            if (0 === strpos($_token, '/*') && '*/' === substr(trim($lines[$i-1]), -2)) {
-                                $this->ignoredLines[$filename][] = $i;
-                            }
-                        }
-                        break;
-
-                    case 'PHP_Token_INTERFACE':
-                    case 'PHP_Token_TRAIT':
-                    case 'PHP_Token_CLASS':
-                    case 'PHP_Token_FUNCTION':
-                        $docblock = $token->getDocblock();
-
-                        $this->ignoredLines[$filename][] = $token->getLine();
-
-                        if (strpos($docblock, '@codeCoverageIgnore')) {
-                            $endLine = $token->getEndLine();
-
-                            for ($i = $token->getLine(); $i <= $endLine; $i++) {
-                                $this->ignoredLines[$filename][] = $i;
-                            }
-                        } elseif ($token instanceof PHP_Token_INTERFACE ||
-                            $token instanceof PHP_Token_TRAIT ||
-                            $token instanceof PHP_Token_CLASS) {
-                            if (empty($classes[$token->getName()]['methods'])) {
-                                for ($i = $token->getLine();
-                                     $i <= $token->getEndLine();
-                                     $i++) {
-                                    $this->ignoredLines[$filename][] = $i;
-                                }
-                            } else {
-                                $firstMethod = array_shift(
-                                    $classes[$token->getName()]['methods']
-                                );
-
-                                do {
-                                    $lastMethod = array_pop(
-                                        $classes[$token->getName()]['methods']
-                                    );
-                                } while ($lastMethod !== null &&
-                                    substr($lastMethod['signature'], 0, 18) == 'anonymous function');
-
-                                if ($lastMethod === null) {
-                                    $lastMethod = $firstMethod;
-                                }
-
-                                for ($i = $token->getLine();
-                                     $i < $firstMethod['startLine'];
-                                     $i++) {
-                                    $this->ignoredLines[$filename][] = $i;
-                                }
-
-                                for ($i = $token->getEndLine();
-                                     $i > $lastMethod['endLine'];
-                                     $i--) {
-                                    $this->ignoredLines[$filename][] = $i;
-                                }
-                            }
-                        }
-                        break;
-
-                    case 'PHP_Token_NAMESPACE':
-                        $this->ignoredLines[$filename][] = $token->getEndLine();
-
-                    // Intentional fallthrough
-                    case 'PHP_Token_OPEN_TAG':
-                    case 'PHP_Token_CLOSE_TAG':
-                    case 'PHP_Token_USE':
-                        $this->ignoredLines[$filename][] = $token->getLine();
-                        break;
-                }
-
-                if ($ignore) {
-                    $this->ignoredLines[$filename][] = $token->getLine();
-
-                    if ($stop) {
-                        $ignore = false;
-                        $stop   = false;
-                    }
-                }
-            }
-
-            $this->ignoredLines[$filename][] = $numLines + 1;
-
-            $this->ignoredLines[$filename] = array_unique(
-                $this->ignoredLines[$filename]
-            );
-
-            sort($this->ignoredLines[$filename]);
-        }
-
-        return $this->ignoredLines[$filename];
-    }
-
-    /**
-     * @param  array                                                 $data
-     * @param  array                                                 $linesToBeCovered
-     * @param  array                                                 $linesToBeUsed
-     * @throws PHP_CodeCoverage_Exception_UnintentionallyCoveredCode
-     * @since Method available since Release 2.0.0
-     */
-    private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed)
-    {
-        $allowedLines = $this->getAllowedLines(
-            $linesToBeCovered,
-            $linesToBeUsed
-        );
-
-        $message = '';
-
-        foreach ($data as $file => $_data) {
-            foreach ($_data as $line => $flag) {
-                if ($flag == 1 &&
-                    (!isset($allowedLines[$file]) ||
-                        !isset($allowedLines[$file][$line]))) {
-                    $message .= sprintf(
-                        '- %s:%d' . PHP_EOL,
-                        $file,
-                        $line
-                    );
-                }
-            }
-        }
-
-        if (!empty($message)) {
-            throw new PHP_CodeCoverage_Exception_UnintentionallyCoveredCode(
-                $message
-            );
-        }
-    }
-
-    /**
-     * @param  array $linesToBeCovered
-     * @param  array $linesToBeUsed
-     * @return array
-     * @since Method available since Release 2.0.0
-     */
-    private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed)
-    {
-        $allowedLines = array();
-
-        foreach (array_keys($linesToBeCovered) as $file) {
-            if (!isset($allowedLines[$file])) {
-                $allowedLines[$file] = array();
-            }
-
-            $allowedLines[$file] = array_merge(
-                $allowedLines[$file],
-                $linesToBeCovered[$file]
-            );
-        }
-
-        foreach (array_keys($linesToBeUsed) as $file) {
-            if (!isset($allowedLines[$file])) {
-                $allowedLines[$file] = array();
-            }
-
-            $allowedLines[$file] = array_merge(
-                $allowedLines[$file],
-                $linesToBeUsed[$file]
-            );
-        }
-
-        foreach (array_keys($allowedLines) as $file) {
-            $allowedLines[$file] = array_flip(
-                array_unique($allowedLines[$file])
-            );
-        }
-
-        return $allowedLines;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php
deleted file mode 100644
index fd2ead8..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for code coverage drivers.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-interface PHP_CodeCoverage_Driver
-{
-    /**
-     * Start collection of code coverage information.
-     */
-    public function start();
-
-    /**
-     * Stop collection of code coverage information.
-     *
-     * @return array
-     */
-    public function stop();
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php
deleted file mode 100644
index 324a99f..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/HHVM.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Driver for HHVM's code coverage functionality.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.3.0
- * @codeCoverageIgnore
- */
-class PHP_CodeCoverage_Driver_HHVM implements PHP_CodeCoverage_Driver
-{
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        if (!defined('HHVM_VERSION')) {
-            throw new PHP_CodeCoverage_Exception('This driver requires HHVM');
-        }
-    }
-
-    /**
-     * Start collection of code coverage information.
-     */
-    public function start()
-    {
-        fb_enable_code_coverage();
-    }
-
-    /**
-     * Stop collection of code coverage information.
-     *
-     * @return array
-     */
-    public function stop()
-    {
-        $codeCoverage = fb_get_code_coverage(true);
-
-        fb_disable_code_coverage();
-
-        return $codeCoverage;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php
deleted file mode 100644
index 3b33188..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Driver/Xdebug.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Driver for Xdebug's code coverage functionality.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- * @codeCoverageIgnore
- */
-class PHP_CodeCoverage_Driver_Xdebug implements PHP_CodeCoverage_Driver
-{
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        if (!extension_loaded('xdebug')) {
-            throw new PHP_CodeCoverage_Exception('This driver requires Xdebug');
-        }
-
-        if (version_compare(phpversion('xdebug'), '2.2.0-dev', '>=') &&
-            !ini_get('xdebug.coverage_enable')) {
-            throw new PHP_CodeCoverage_Exception(
-                'xdebug.coverage_enable=On has to be set in php.ini'
-            );
-        }
-    }
-
-    /**
-     * Start collection of code coverage information.
-     */
-    public function start()
-    {
-        xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
-    }
-
-    /**
-     * Stop collection of code coverage information.
-     *
-     * @return array
-     */
-    public function stop()
-    {
-        $data = xdebug_get_code_coverage();
-        xdebug_stop_code_coverage();
-
-        return $this->cleanup($data);
-    }
-
-    /**
-     * @param  array $data
-     * @return array
-     * @since Method available since Release 2.0.0
-     */
-    private function cleanup(array $data)
-    {
-        foreach (array_keys($data) as $file) {
-            if (isset($data[$file][0])) {
-                unset($data[$file][0]);
-            }
-
-            if (file_exists($file)) {
-                $numLines = $this->getNumberOfLinesInFile($file);
-
-                foreach (array_keys($data[$file]) as $line) {
-                    if (isset($data[$file][$line]) && $line > $numLines) {
-                        unset($data[$file][$line]);
-                    }
-                }
-            }
-        }
-
-        return $data;
-    }
-
-    /**
-     * @param  string $file
-     * @return integer
-     * @since Method available since Release 2.0.0
-     */
-    private function getNumberOfLinesInFile($file)
-    {
-        $buffer = file_get_contents($file);
-        $lines  = substr_count($buffer, "\n");
-
-        if (substr($buffer, -1) !== "\n") {
-            $lines++;
-        }
-
-        return $lines;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php
deleted file mode 100644
index a960c08..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception class for PHP_CodeCoverage component.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Exception extends RuntimeException
-{
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php
deleted file mode 100644
index 7f09503..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Exception/UnintentionallyCoveredCode.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception that is raised when code is unintentionally covered.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Exception_UnintentionallyCoveredCode extends PHP_CodeCoverage_Exception
-{
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php
deleted file mode 100644
index fce8461..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php
+++ /dev/null
@@ -1,376 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Filter for blacklisting and whitelisting of code coverage information.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_Filter
-{
-    /**
-     * Source files that are blacklisted.
-     *
-     * @var array
-     */
-    private $blacklistedFiles = array();
-
-    /**
-     * Source files that are whitelisted.
-     *
-     * @var array
-     */
-    private $whitelistedFiles = array();
-
-    /**
-     * @var boolean
-     */
-    private $blacklistPrefilled = false;
-
-    /**
-     * A list of classes which are always blacklisted
-     *
-     * @var array
-     */
-    public static $blacklistClassNames = array(
-        'File_Iterator' => 1,
-        'PHP_CodeCoverage' => 1,
-        'PHP_Invoker' => 1,
-        'PHP_Timer' => 1,
-        'PHP_Token' => 1,
-        'PHPUnit_Framework_TestCase' => 2,
-        'PHPUnit_Extensions_Database_TestCase' => 2,
-        'PHPUnit_Framework_MockObject_Generator' => 2,
-        'PHPUnit_Extensions_SeleniumTestCase' => 2,
-        'PHPUnit_Extensions_Story_TestCase' => 2,
-        'Text_Template' => 1,
-        'Symfony\Component\Yaml\Yaml' => 1,
-        'SebastianBergmann\Diff\Diff' => 1,
-        'SebastianBergmann\Environment\Runtime' => 1,
-        'SebastianBergmann\Comparator\Comparator' => 1,
-        'SebastianBergmann\Exporter\Exporter' => 1,
-        'SebastianBergmann\GlobalState\Snapshot' => 1,
-        'SebastianBergmann\RecursionContext\Context' => 1,
-        'SebastianBergmann\Version' => 1,
-        'Composer\Autoload\ClassLoader' => 1,
-        'Doctrine\Instantiator\Instantiator' => 1,
-        'phpDocumentor\Reflection\DocBlock' => 1,
-        'Prophecy\Prophet' => 1
-    );
-
-    /**
-     * Adds a directory to the blacklist (recursively).
-     *
-     * @param string $directory
-     * @param string $suffix
-     * @param string $prefix
-     */
-    public function addDirectoryToBlacklist($directory, $suffix = '.php', $prefix = '')
-    {
-        $facade = new File_Iterator_Facade;
-        $files  = $facade->getFilesAsArray($directory, $suffix, $prefix);
-
-        foreach ($files as $file) {
-            $this->addFileToBlacklist($file);
-        }
-    }
-
-    /**
-     * Adds a file to the blacklist.
-     *
-     * @param string $filename
-     */
-    public function addFileToBlacklist($filename)
-    {
-        $this->blacklistedFiles[realpath($filename)] = true;
-    }
-
-    /**
-     * Adds files to the blacklist.
-     *
-     * @param array $files
-     */
-    public function addFilesToBlacklist(array $files)
-    {
-        foreach ($files as $file) {
-            $this->addFileToBlacklist($file);
-        }
-    }
-
-    /**
-     * Removes a directory from the blacklist (recursively).
-     *
-     * @param string $directory
-     * @param string $suffix
-     * @param string $prefix
-     */
-    public function removeDirectoryFromBlacklist($directory, $suffix = '.php', $prefix = '')
-    {
-        $facade = new File_Iterator_Facade;
-        $files  = $facade->getFilesAsArray($directory, $suffix, $prefix);
-
-        foreach ($files as $file) {
-            $this->removeFileFromBlacklist($file);
-        }
-    }
-
-    /**
-     * Removes a file from the blacklist.
-     *
-     * @param string $filename
-     */
-    public function removeFileFromBlacklist($filename)
-    {
-        $filename = realpath($filename);
-
-        if (isset($this->blacklistedFiles[$filename])) {
-            unset($this->blacklistedFiles[$filename]);
-        }
-    }
-
-    /**
-     * Adds a directory to the whitelist (recursively).
-     *
-     * @param string $directory
-     * @param string $suffix
-     * @param string $prefix
-     */
-    public function addDirectoryToWhitelist($directory, $suffix = '.php', $prefix = '')
-    {
-        $facade = new File_Iterator_Facade;
-        $files  = $facade->getFilesAsArray($directory, $suffix, $prefix);
-
-        foreach ($files as $file) {
-            $this->addFileToWhitelist($file);
-        }
-    }
-
-    /**
-     * Adds a file to the whitelist.
-     *
-     * @param string $filename
-     */
-    public function addFileToWhitelist($filename)
-    {
-        $this->whitelistedFiles[realpath($filename)] = true;
-    }
-
-    /**
-     * Adds files to the whitelist.
-     *
-     * @param array $files
-     */
-    public function addFilesToWhitelist(array $files)
-    {
-        foreach ($files as $file) {
-            $this->addFileToWhitelist($file);
-        }
-    }
-
-    /**
-     * Removes a directory from the whitelist (recursively).
-     *
-     * @param string $directory
-     * @param string $suffix
-     * @param string $prefix
-     */
-    public function removeDirectoryFromWhitelist($directory, $suffix = '.php', $prefix = '')
-    {
-        $facade = new File_Iterator_Facade;
-        $files  = $facade->getFilesAsArray($directory, $suffix, $prefix);
-
-        foreach ($files as $file) {
-            $this->removeFileFromWhitelist($file);
-        }
-    }
-
-    /**
-     * Removes a file from the whitelist.
-     *
-     * @param string $filename
-     */
-    public function removeFileFromWhitelist($filename)
-    {
-        $filename = realpath($filename);
-
-        if (isset($this->whitelistedFiles[$filename])) {
-            unset($this->whitelistedFiles[$filename]);
-        }
-    }
-
-    /**
-     * Checks whether a filename is a real filename.
-     *
-     * @param string $filename
-     */
-    public function isFile($filename)
-    {
-        if ($filename == '-' ||
-            strpos($filename, 'vfs://') === 0 ||
-            strpos($filename, 'xdebug://debug-eval') !== false ||
-            strpos($filename, 'eval()\'d code') !== false ||
-            strpos($filename, 'runtime-created function') !== false ||
-            strpos($filename, 'runkit created function') !== false ||
-            strpos($filename, 'assert code') !== false ||
-            strpos($filename, 'regexp code') !== false) {
-            return false;
-        }
-
-        return file_exists($filename);
-    }
-
-    /**
-     * Checks whether or not a file is filtered.
-     *
-     * When the whitelist is empty (default), blacklisting is used.
-     * When the whitelist is not empty, whitelisting is used.
-     *
-     * @param  string                     $filename
-     * @param  boolean                    $ignoreWhitelist
-     * @return boolean
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function isFiltered($filename)
-    {
-        if (!$this->isFile($filename)) {
-            return true;
-        }
-
-        $filename = realpath($filename);
-
-        if (!empty($this->whitelistedFiles)) {
-            return !isset($this->whitelistedFiles[$filename]);
-        }
-
-        if (!$this->blacklistPrefilled) {
-            $this->prefillBlacklist();
-        }
-
-        return isset($this->blacklistedFiles[$filename]);
-    }
-
-    /**
-     * Returns the list of blacklisted files.
-     *
-     * @return array
-     */
-    public function getBlacklist()
-    {
-        return array_keys($this->blacklistedFiles);
-    }
-
-    /**
-     * Returns the list of whitelisted files.
-     *
-     * @return array
-     */
-    public function getWhitelist()
-    {
-        return array_keys($this->whitelistedFiles);
-    }
-
-    /**
-     * Returns whether this filter has a whitelist.
-     *
-     * @return boolean
-     * @since  Method available since Release 1.1.0
-     */
-    public function hasWhitelist()
-    {
-        return !empty($this->whitelistedFiles);
-    }
-
-    /**
-     * @since Method available since Release 1.2.3
-     */
-    private function prefillBlacklist()
-    {
-        if (defined('__PHPUNIT_PHAR__')) {
-            $this->addFileToBlacklist(__PHPUNIT_PHAR__);
-        }
-
-        foreach (self::$blacklistClassNames as $className => $parent) {
-            $this->addDirectoryContainingClassToBlacklist($className, $parent);
-        }
-
-        $this->blacklistPrefilled = true;
-    }
-
-    /**
-     * @param string  $className
-     * @param integer $parent
-     * @since Method available since Release 1.2.3
-     */
-    private function addDirectoryContainingClassToBlacklist($className, $parent = 1)
-    {
-        if (!class_exists($className)) {
-            return;
-        }
-
-        $reflector = new ReflectionClass($className);
-        $directory = $reflector->getFileName();
-
-        for ($i = 0; $i < $parent; $i++) {
-            $directory = dirname($directory);
-        }
-
-        $this->addDirectoryToBlacklist($directory);
-    }
-
-    /**
-     * Returns the blacklisted files.
-     *
-     * @return array
-     * @since Method available since Release 2.0.0
-     */
-    public function getBlacklistedFiles()
-    {
-        return $this->blacklistedFiles;
-    }
-
-    /**
-     * Sets the blacklisted files.
-     *
-     * @param array $blacklistedFiles
-     * @since Method available since Release 2.0.0
-     */
-    public function setBlacklistedFiles($blacklistedFiles)
-    {
-        $this->blacklistedFiles = $blacklistedFiles;
-    }
-
-    /**
-     * Returns the whitelisted files.
-     *
-     * @return array
-     * @since Method available since Release 2.0.0
-     */
-    public function getWhitelistedFiles()
-    {
-        return $this->whitelistedFiles;
-    }
-
-    /**
-     * Sets the whitelisted files.
-     *
-     * @param array $whitelistedFiles
-     * @since Method available since Release 2.0.0
-     */
-    public function setWhitelistedFiles($whitelistedFiles)
-    {
-        $this->whitelistedFiles = $whitelistedFiles;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php
deleted file mode 100644
index c29e175..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Clover.php
+++ /dev/null
@@ -1,290 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Generates a Clover XML logfile from an PHP_CodeCoverage object.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_Report_Clover
-{
-    /**
-     * @param  PHP_CodeCoverage $coverage
-     * @param  string           $target
-     * @param  string           $name
-     * @return string
-     */
-    public function process(PHP_CodeCoverage $coverage, $target = null, $name = null)
-    {
-        $xmlDocument = new DOMDocument('1.0', 'UTF-8');
-        $xmlDocument->formatOutput = true;
-
-        $xmlCoverage = $xmlDocument->createElement('coverage');
-        $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']);
-        $xmlDocument->appendChild($xmlCoverage);
-
-        $xmlProject = $xmlDocument->createElement('project');
-        $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']);
-
-        if (is_string($name)) {
-            $xmlProject->setAttribute('name', $name);
-        }
-
-        $xmlCoverage->appendChild($xmlProject);
-
-        $packages = array();
-        $report   = $coverage->getReport();
-        unset($coverage);
-
-        foreach ($report as $item) {
-            $namespace = 'global';
-
-            if (!$item instanceof PHP_CodeCoverage_Report_Node_File) {
-                continue;
-            }
-
-            $xmlFile = $xmlDocument->createElement('file');
-            $xmlFile->setAttribute('name', $item->getPath());
-
-            $classes  = $item->getClassesAndTraits();
-            $coverage = $item->getCoverageData();
-            $lines    = array();
-
-            foreach ($classes as $className => $class) {
-                $classStatements        = 0;
-                $coveredClassStatements = 0;
-                $coveredMethods         = 0;
-                $classMethods           = 0;
-
-                foreach ($class['methods'] as $methodName => $method) {
-                    if ($method['executableLines']  == 0) {
-                        continue;
-                    }
-
-                    $classMethods++;
-                    $classStatements        += $method['executableLines'];
-                    $coveredClassStatements += $method['executedLines'];
-                    if ($method['coverage'] == 100) {
-                        $coveredMethods++;
-                    }
-
-                    $methodCount = 0;
-                    for ($i  = $method['startLine'];
-                         $i <= $method['endLine'];
-                         $i++) {
-                        if (isset($coverage[$i]) && ($coverage[$i] !== null)) {
-                            $methodCount = max($methodCount, count($coverage[$i]));
-                        }
-                    }
-
-                    $lines[$method['startLine']] = array(
-                        'count' => $methodCount,
-                        'crap'  => $method['crap'],
-                        'type'  => 'method',
-                        'name'  => $methodName
-                    );
-                }
-
-                if (!empty($class['package']['namespace'])) {
-                    $namespace = $class['package']['namespace'];
-                }
-
-                $xmlClass = $xmlDocument->createElement('class');
-                $xmlClass->setAttribute('name', $className);
-                $xmlClass->setAttribute('namespace', $namespace);
-
-                if (!empty($class['package']['fullPackage'])) {
-                    $xmlClass->setAttribute(
-                        'fullPackage',
-                        $class['package']['fullPackage']
-                    );
-                }
-
-                if (!empty($class['package']['category'])) {
-                    $xmlClass->setAttribute(
-                        'category',
-                        $class['package']['category']
-                    );
-                }
-
-                if (!empty($class['package']['package'])) {
-                    $xmlClass->setAttribute(
-                        'package',
-                        $class['package']['package']
-                    );
-                }
-
-                if (!empty($class['package']['subpackage'])) {
-                    $xmlClass->setAttribute(
-                        'subpackage',
-                        $class['package']['subpackage']
-                    );
-                }
-
-                $xmlFile->appendChild($xmlClass);
-
-                $xmlMetrics = $xmlDocument->createElement('metrics');
-                $xmlMetrics->setAttribute('methods', $classMethods);
-                $xmlMetrics->setAttribute('coveredmethods', $coveredMethods);
-                $xmlMetrics->setAttribute('conditionals', 0);
-                $xmlMetrics->setAttribute('coveredconditionals', 0);
-                $xmlMetrics->setAttribute('statements', $classStatements);
-                $xmlMetrics->setAttribute(
-                    'coveredstatements',
-                    $coveredClassStatements
-                );
-                $xmlMetrics->setAttribute(
-                    'elements',
-                    $classMethods +
-                    $classStatements
-                    /* + conditionals */
-                );
-                $xmlMetrics->setAttribute(
-                    'coveredelements',
-                    $coveredMethods +
-                    $coveredClassStatements
-                    /* + coveredconditionals */
-                );
-                $xmlClass->appendChild($xmlMetrics);
-            }
-
-            foreach ($coverage as $line => $data) {
-                if ($data === null || isset($lines[$line])) {
-                    continue;
-                }
-
-                $lines[$line] = array(
-                    'count' => count($data), 'type' => 'stmt'
-                );
-            }
-
-            ksort($lines);
-
-            foreach ($lines as $line => $data) {
-                $xmlLine = $xmlDocument->createElement('line');
-                $xmlLine->setAttribute('num', $line);
-                $xmlLine->setAttribute('type', $data['type']);
-
-                if (isset($data['name'])) {
-                    $xmlLine->setAttribute('name', $data['name']);
-                }
-
-                if (isset($data['crap'])) {
-                    $xmlLine->setAttribute('crap', $data['crap']);
-                }
-
-                $xmlLine->setAttribute('count', $data['count']);
-                $xmlFile->appendChild($xmlLine);
-            }
-
-            $linesOfCode = $item->getLinesOfCode();
-
-            $xmlMetrics = $xmlDocument->createElement('metrics');
-            $xmlMetrics->setAttribute('loc', $linesOfCode['loc']);
-            $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']);
-            $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits());
-            $xmlMetrics->setAttribute('methods', $item->getNumMethods());
-            $xmlMetrics->setAttribute(
-                'coveredmethods',
-                $item->getNumTestedMethods()
-            );
-            $xmlMetrics->setAttribute('conditionals', 0);
-            $xmlMetrics->setAttribute('coveredconditionals', 0);
-            $xmlMetrics->setAttribute(
-                'statements',
-                $item->getNumExecutableLines()
-            );
-            $xmlMetrics->setAttribute(
-                'coveredstatements',
-                $item->getNumExecutedLines()
-            );
-            $xmlMetrics->setAttribute(
-                'elements',
-                $item->getNumMethods() + $item->getNumExecutableLines()
-                /* + conditionals */
-            );
-            $xmlMetrics->setAttribute(
-                'coveredelements',
-                $item->getNumTestedMethods() + $item->getNumExecutedLines()
-                /* + coveredconditionals */
-            );
-            $xmlFile->appendChild($xmlMetrics);
-
-            if ($namespace == 'global') {
-                $xmlProject->appendChild($xmlFile);
-            } else {
-                if (!isset($packages[$namespace])) {
-                    $packages[$namespace] = $xmlDocument->createElement(
-                        'package'
-                    );
-
-                    $packages[$namespace]->setAttribute('name', $namespace);
-                    $xmlProject->appendChild($packages[$namespace]);
-                }
-
-                $packages[$namespace]->appendChild($xmlFile);
-            }
-        }
-
-        $linesOfCode = $report->getLinesOfCode();
-
-        $xmlMetrics = $xmlDocument->createElement('metrics');
-        $xmlMetrics->setAttribute('files', count($report));
-        $xmlMetrics->setAttribute('loc', $linesOfCode['loc']);
-        $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']);
-        $xmlMetrics->setAttribute(
-            'classes',
-            $report->getNumClassesAndTraits()
-        );
-        $xmlMetrics->setAttribute('methods', $report->getNumMethods());
-        $xmlMetrics->setAttribute(
-            'coveredmethods',
-            $report->getNumTestedMethods()
-        );
-        $xmlMetrics->setAttribute('conditionals', 0);
-        $xmlMetrics->setAttribute('coveredconditionals', 0);
-        $xmlMetrics->setAttribute(
-            'statements',
-            $report->getNumExecutableLines()
-        );
-        $xmlMetrics->setAttribute(
-            'coveredstatements',
-            $report->getNumExecutedLines()
-        );
-        $xmlMetrics->setAttribute(
-            'elements',
-            $report->getNumMethods() + $report->getNumExecutableLines()
-            /* + conditionals */
-        );
-        $xmlMetrics->setAttribute(
-            'coveredelements',
-            $report->getNumTestedMethods() + $report->getNumExecutedLines()
-            /* + coveredconditionals */
-        );
-
-        $xmlProject->appendChild($xmlMetrics);
-
-        if ($target !== null) {
-            if (!is_dir(dirname($target))) {
-                mkdir(dirname($target), 0777, true);
-            }
-
-            return $xmlDocument->save($target);
-        } else {
-            return $xmlDocument->saveXML();
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php
deleted file mode 100644
index 8e1f11a..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Crap4j.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Zsolt Takács <zsolt@takacs.cc>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_Crap4j
-{
-    private $threshold = 30;
-
-    /**
-     * @param  PHP_CodeCoverage $coverage
-     * @param  string           $target
-     * @param  string           $name
-     * @return string
-     */
-    public function process(PHP_CodeCoverage $coverage, $target = null, $name = null)
-    {
-        $document = new DOMDocument('1.0', 'UTF-8');
-        $document->formatOutput = true;
-
-        $root = $document->createElement('crap_result');
-        $document->appendChild($root);
-
-        $project = $document->createElement('project', is_string($name) ? $name : '');
-        $root->appendChild($project);
-        $root->appendChild($document->createElement('timestamp', date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME'])));
-
-        $stats       = $document->createElement('stats');
-        $methodsNode = $document->createElement('methods');
-
-        $report = $coverage->getReport();
-        unset($coverage);
-
-        $fullMethodCount     = 0;
-        $fullCrapMethodCount = 0;
-        $fullCrapLoad        = 0;
-        $fullCrap            = 0;
-
-        foreach ($report as $item) {
-            $namespace = 'global';
-
-            if (!$item instanceof PHP_CodeCoverage_Report_Node_File) {
-                continue;
-            }
-
-            $file = $document->createElement('file');
-            $file->setAttribute('name', $item->getPath());
-
-            $classes = $item->getClassesAndTraits();
-
-            foreach ($classes as $className => $class) {
-                foreach ($class['methods'] as $methodName => $method) {
-                    $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']);
-
-                    $fullCrap     += $method['crap'];
-                    $fullCrapLoad += $crapLoad;
-                    $fullMethodCount++;
-
-                    if ($method['crap'] >= $this->threshold) {
-                        $fullCrapMethodCount++;
-                    }
-
-                    $methodNode = $document->createElement('method');
-
-                    if (!empty($class['package']['namespace'])) {
-                        $namespace = $class['package']['namespace'];
-                    }
-
-                    $methodNode->appendChild($document->createElement('package', $namespace));
-                    $methodNode->appendChild($document->createElement('className', $className));
-                    $methodNode->appendChild($document->createElement('methodName', $methodName));
-                    $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature'])));
-                    $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method['signature'])));
-                    $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap'])));
-                    $methodNode->appendChild($document->createElement('complexity', $method['ccn']));
-                    $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage'])));
-                    $methodNode->appendChild($document->createElement('crapLoad', round($crapLoad)));
-
-                    $methodsNode->appendChild($methodNode);
-                }
-            }
-        }
-
-        $stats->appendChild($document->createElement('name', 'Method Crap Stats'));
-        $stats->appendChild($document->createElement('methodCount', $fullMethodCount));
-        $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount));
-        $stats->appendChild($document->createElement('crapLoad', round($fullCrapLoad)));
-        $stats->appendChild($document->createElement('totalCrap', $fullCrap));
-        $stats->appendChild($document->createElement('crapMethodPercent', $this->roundValue(100 * $fullCrapMethodCount / $fullMethodCount)));
-
-        $root->appendChild($stats);
-        $root->appendChild($methodsNode);
-
-        if ($target !== null) {
-            if (!is_dir(dirname($target))) {
-                mkdir(dirname($target), 0777, true);
-            }
-
-            return $document->save($target);
-        } else {
-            return $document->saveXML();
-        }
-    }
-
-    private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent)
-    {
-        $crapLoad = 0;
-        if ($crapValue >= $this->threshold) {
-            $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100);
-            $crapLoad += $cyclomaticComplexity / $this->threshold;
-        }
-
-        return $crapLoad;
-    }
-
-    private function roundValue($value)
-    {
-        return round($value, 2);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php
deleted file mode 100644
index b9bffdf..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Factory.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Factory for PHP_CodeCoverage_Report_Node_* object graphs.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_Factory
-{
-    /**
-     * @param  PHP_CodeCoverage $coverage
-     * @return PHP_CodeCoverage_Report_Node_Directory
-     */
-    public function create(PHP_CodeCoverage $coverage)
-    {
-        $files      = $coverage->getData();
-        $commonPath = $this->reducePaths($files);
-        $root       = new PHP_CodeCoverage_Report_Node_Directory(
-            $commonPath,
-            null
-        );
-
-        $this->addItems(
-            $root,
-            $this->buildDirectoryStructure($files),
-            $coverage->getTests(),
-            $coverage->getCacheTokens()
-        );
-
-        return $root;
-    }
-
-    /**
-     * @param PHP_CodeCoverage_Report_Node_Directory $root
-     * @param array                                  $items
-     * @param array                                  $tests
-     * @param boolean                                $cacheTokens
-     */
-    private function addItems(PHP_CodeCoverage_Report_Node_Directory $root, array $items, array $tests, $cacheTokens)
-    {
-        foreach ($items as $key => $value) {
-            if (substr($key, -2) == '/f') {
-                $key = substr($key, 0, -2);
-
-                if (file_exists($root->getPath() . DIRECTORY_SEPARATOR . $key)) {
-                    $root->addFile($key, $value, $tests, $cacheTokens);
-                }
-            } else {
-                $child = $root->addDirectory($key);
-                $this->addItems($child, $value, $tests, $cacheTokens);
-            }
-        }
-    }
-
-    /**
-     * Builds an array representation of the directory structure.
-     *
-     * For instance,
-     *
-     * <code>
-     * Array
-     * (
-     *     [Money.php] => Array
-     *         (
-     *             ...
-     *         )
-     *
-     *     [MoneyBag.php] => Array
-     *         (
-     *             ...
-     *         )
-     * )
-     * </code>
-     *
-     * is transformed into
-     *
-     * <code>
-     * Array
-     * (
-     *     [.] => Array
-     *         (
-     *             [Money.php] => Array
-     *                 (
-     *                     ...
-     *                 )
-     *
-     *             [MoneyBag.php] => Array
-     *                 (
-     *                     ...
-     *                 )
-     *         )
-     * )
-     * </code>
-     *
-     * @param  array $files
-     * @return array
-     */
-    private function buildDirectoryStructure($files)
-    {
-        $result = array();
-
-        foreach ($files as $path => $file) {
-            $path    = explode('/', $path);
-            $pointer = &$result;
-            $max     = count($path);
-
-            for ($i = 0; $i < $max; $i++) {
-                if ($i == ($max - 1)) {
-                    $type = '/f';
-                } else {
-                    $type = '';
-                }
-
-                $pointer = &$pointer[$path[$i] . $type];
-            }
-
-            $pointer = $file;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Reduces the paths by cutting the longest common start path.
-     *
-     * For instance,
-     *
-     * <code>
-     * Array
-     * (
-     *     [/home/sb/Money/Money.php] => Array
-     *         (
-     *             ...
-     *         )
-     *
-     *     [/home/sb/Money/MoneyBag.php] => Array
-     *         (
-     *             ...
-     *         )
-     * )
-     * </code>
-     *
-     * is reduced to
-     *
-     * <code>
-     * Array
-     * (
-     *     [Money.php] => Array
-     *         (
-     *             ...
-     *         )
-     *
-     *     [MoneyBag.php] => Array
-     *         (
-     *             ...
-     *         )
-     * )
-     * </code>
-     *
-     * @param  array  $files
-     * @return string
-     */
-    private function reducePaths(&$files)
-    {
-        if (empty($files)) {
-            return '.';
-        }
-
-        $commonPath = '';
-        $paths      = array_keys($files);
-
-        if (count($files) == 1) {
-            $commonPath                 = dirname($paths[0]) . '/';
-            $files[basename($paths[0])] = $files[$paths[0]];
-
-            unset($files[$paths[0]]);
-
-            return $commonPath;
-        }
-
-        $max = count($paths);
-
-        for ($i = 0; $i < $max; $i++) {
-            // strip phar:// prefixes
-            if (strpos($paths[$i], 'phar://') === 0) {
-                $paths[$i] = substr($paths[$i], 7);
-                $paths[$i] = strtr($paths[$i], '/', DIRECTORY_SEPARATOR);
-            }
-            $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]);
-
-            if (empty($paths[$i][0])) {
-                $paths[$i][0] = DIRECTORY_SEPARATOR;
-            }
-        }
-
-        $done = false;
-        $max  = count($paths);
-
-        while (!$done) {
-            for ($i = 0; $i < $max - 1; $i++) {
-                if (!isset($paths[$i][0]) ||
-                    !isset($paths[$i+1][0]) ||
-                    $paths[$i][0] != $paths[$i+1][0]) {
-                    $done = true;
-                    break;
-                }
-            }
-
-            if (!$done) {
-                $commonPath .= $paths[0][0];
-
-                if ($paths[0][0] != DIRECTORY_SEPARATOR) {
-                    $commonPath .= DIRECTORY_SEPARATOR;
-                }
-
-                for ($i = 0; $i < $max; $i++) {
-                    array_shift($paths[$i]);
-                }
-            }
-        }
-
-        $original = array_keys($files);
-        $max      = count($original);
-
-        for ($i = 0; $i < $max; $i++) {
-            $files[join('/', $paths[$i])] = $files[$original[$i]];
-            unset($files[$original[$i]]);
-        }
-
-        ksort($files);
-
-        return substr($commonPath, 0, -1);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php
deleted file mode 100644
index c67db46..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Generates an HTML report from an PHP_CodeCoverage object.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_Report_HTML
-{
-    /**
-     * @var string
-     */
-    private $templatePath;
-
-    /**
-     * @var string
-     */
-    private $generator;
-
-    /**
-     * @var integer
-     */
-    private $lowUpperBound;
-
-    /**
-     * @var integer
-     */
-    private $highLowerBound;
-
-    /**
-     * Constructor.
-     *
-     * @param integer $lowUpperBound
-     * @param integer $highLowerBound
-     * @param string  $generator
-     */
-    public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '')
-    {
-        $this->generator      = $generator;
-        $this->highLowerBound = $highLowerBound;
-        $this->lowUpperBound  = $lowUpperBound;
-
-        $this->templatePath = sprintf(
-            '%s%sHTML%sRenderer%sTemplate%s',
-            dirname(__FILE__),
-            DIRECTORY_SEPARATOR,
-            DIRECTORY_SEPARATOR,
-            DIRECTORY_SEPARATOR,
-            DIRECTORY_SEPARATOR
-        );
-    }
-
-    /**
-     * @param PHP_CodeCoverage $coverage
-     * @param string           $target
-     */
-    public function process(PHP_CodeCoverage $coverage, $target)
-    {
-        $target = $this->getDirectory($target);
-        $report = $coverage->getReport();
-        unset($coverage);
-
-        if (!isset($_SERVER['REQUEST_TIME'])) {
-            $_SERVER['REQUEST_TIME'] = time();
-        }
-
-        $date = date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']);
-
-        $dashboard = new PHP_CodeCoverage_Report_HTML_Renderer_Dashboard(
-            $this->templatePath,
-            $this->generator,
-            $date,
-            $this->lowUpperBound,
-            $this->highLowerBound
-        );
-
-        $directory = new PHP_CodeCoverage_Report_HTML_Renderer_Directory(
-            $this->templatePath,
-            $this->generator,
-            $date,
-            $this->lowUpperBound,
-            $this->highLowerBound
-        );
-
-        $file = new PHP_CodeCoverage_Report_HTML_Renderer_File(
-            $this->templatePath,
-            $this->generator,
-            $date,
-            $this->lowUpperBound,
-            $this->highLowerBound
-        );
-
-        $directory->render($report, $target . 'index.html');
-        $dashboard->render($report, $target . 'dashboard.html');
-
-        foreach ($report as $node) {
-            $id = $node->getId();
-
-            if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) {
-                if (!file_exists($target . $id)) {
-                    mkdir($target . $id, 0777, true);
-                }
-
-                $directory->render($node, $target . $id . '/index.html');
-                $dashboard->render($node, $target . $id . '/dashboard.html');
-            } else {
-                $dir = dirname($target . $id);
-
-                if (!file_exists($dir)) {
-                    mkdir($dir, 0777, true);
-                }
-
-                $file->render($node, $target . $id . '.html');
-            }
-        }
-
-        $this->copyFiles($target);
-    }
-
-    /**
-     * @param string $target
-     */
-    private function copyFiles($target)
-    {
-        $dir = $this->getDirectory($target . 'css');
-        copy($this->templatePath . 'css/bootstrap.min.css', $dir . 'bootstrap.min.css');
-        copy($this->templatePath . 'css/nv.d3.css', $dir . 'nv.d3.css');
-        copy($this->templatePath . 'css/style.css', $dir . 'style.css');
-
-        $dir = $this->getDirectory($target . 'fonts');
-        copy($this->templatePath . 'fonts/glyphicons-halflings-regular.eot', $dir . 'glyphicons-halflings-regular.eot');
-        copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg');
-        copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf');
-        copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff');
-        copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2');
-
-        $dir = $this->getDirectory($target . 'js');
-        copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js');
-        copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js');
-        copy($this->templatePath . 'js/holder.js', $dir . 'holder.js');
-        copy($this->templatePath . 'js/html5shiv.min.js', $dir . 'html5shiv.min.js');
-        copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js');
-        copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js');
-        copy($this->templatePath . 'js/respond.min.js', $dir . 'respond.min.js');
-    }
-
-    /**
-     * @param  string                     $directory
-     * @return string
-     * @throws PHP_CodeCoverage_Exception
-     * @since  Method available since Release 1.2.0
-     */
-    private function getDirectory($directory)
-    {
-        if (substr($directory, -1, 1) != DIRECTORY_SEPARATOR) {
-            $directory .= DIRECTORY_SEPARATOR;
-        }
-
-        if (is_dir($directory)) {
-            return $directory;
-        }
-
-        if (@mkdir($directory, 0777, true)) {
-            return $directory;
-        }
-
-        throw new PHP_CodeCoverage_Exception(
-            sprintf(
-                'Directory "%s" does not exist.',
-                $directory
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php
deleted file mode 100644
index 2b35f68..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Environment\Runtime;
-
-/**
- * Base class for PHP_CodeCoverage_Report_Node renderers.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-abstract class PHP_CodeCoverage_Report_HTML_Renderer
-{
-    /**
-     * @var string
-     */
-    protected $templatePath;
-
-    /**
-     * @var string
-     */
-    protected $generator;
-
-    /**
-     * @var string
-     */
-    protected $date;
-
-    /**
-     * @var integer
-     */
-    protected $lowUpperBound;
-
-    /**
-     * @var integer
-     */
-    protected $highLowerBound;
-
-    /**
-     * @var string
-     */
-    protected $version;
-
-    /**
-     * Constructor.
-     *
-     * @param string  $templatePath
-     * @param string  $generator
-     * @param string  $date
-     * @param integer $lowUpperBound
-     * @param integer $highLowerBound
-     */
-    public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound)
-    {
-        $version = new SebastianBergmann\Version('2.0.16', dirname(dirname(dirname(dirname(__DIR__)))));
-
-        $this->templatePath   = $templatePath;
-        $this->generator      = $generator;
-        $this->date           = $date;
-        $this->lowUpperBound  = $lowUpperBound;
-        $this->highLowerBound = $highLowerBound;
-        $this->version        = $version->getVersion();
-    }
-
-    /**
-     * @param  Text_Template $template
-     * @param  array         $data
-     * @return string
-     */
-    protected function renderItemTemplate(Text_Template $template, array $data)
-    {
-        $numSeperator = '&nbsp;/&nbsp;';
-        $classesBar    = '&nbsp;';
-        $classesLevel  = 'None';
-        $classesNumber = '&nbsp;';
-
-        if (isset($data['numClasses']) && $data['numClasses'] > 0) {
-            $classesLevel = $this->getColorLevel($data['testedClassesPercent']);
-
-            $classesNumber = $data['numTestedClasses'] . $numSeperator .
-                $data['numClasses'];
-
-            $classesBar = $this->getCoverageBar(
-                $data['testedClassesPercent']
-            );
-        }
-
-        $methodsBar    = '&nbsp;';
-        $methodsLevel  = 'None';
-        $methodsNumber = '&nbsp;';
-
-        if ($data['numMethods'] > 0) {
-            $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']);
-
-            $methodsNumber = $data['numTestedMethods'] . $numSeperator .
-                $data['numMethods'];
-
-            $methodsBar = $this->getCoverageBar(
-                $data['testedMethodsPercent']
-            );
-        }
-
-        $linesBar    = '&nbsp;';
-        $linesLevel  = 'None';
-        $linesNumber = '&nbsp;';
-
-        if ($data['numExecutableLines'] > 0) {
-            $linesLevel = $this->getColorLevel($data['linesExecutedPercent']);
-
-            $linesNumber = $data['numExecutedLines'] . $numSeperator .
-                $data['numExecutableLines'];
-
-            $linesBar = $this->getCoverageBar(
-                $data['linesExecutedPercent']
-            );
-        }
-
-        $template->setVar(
-            array(
-                'icon' => isset($data['icon']) ? $data['icon'] : '',
-                'crap' => isset($data['crap']) ? $data['crap'] : '',
-                'name' => $data['name'],
-                'lines_bar' => $linesBar,
-                'lines_executed_percent' => $data['linesExecutedPercentAsString'],
-                'lines_level' => $linesLevel,
-                'lines_number' => $linesNumber,
-                'methods_bar' => $methodsBar,
-                'methods_tested_percent' => $data['testedMethodsPercentAsString'],
-                'methods_level' => $methodsLevel,
-                'methods_number' => $methodsNumber,
-                'classes_bar' => $classesBar,
-                'classes_tested_percent' => isset($data['testedClassesPercentAsString']) ? $data['testedClassesPercentAsString'] : '',
-                'classes_level' => $classesLevel,
-                'classes_number' => $classesNumber
-            )
-        );
-
-        return $template->render();
-    }
-
-    /**
-     * @param Text_Template                $template
-     * @param PHP_CodeCoverage_Report_Node $node
-     */
-    protected function setCommonTemplateVariables(Text_Template $template, PHP_CodeCoverage_Report_Node $node)
-    {
-        $runtime = new Runtime;
-
-        $template->setVar(
-            array(
-                'id'               => $node->getId(),
-                'full_path'        => $node->getPath(),
-                'path_to_root'     => $this->getPathToRoot($node),
-                'breadcrumbs'      => $this->getBreadcrumbs($node),
-                'date'             => $this->date,
-                'version'          => $this->version,
-                'runtime_name'     => $runtime->getName(),
-                'runtime_version'  => $runtime->getVersion(),
-                'runtime_link'     => $runtime->getVendorUrl(),
-                'generator'        => $this->generator,
-                'low_upper_bound'  => $this->lowUpperBound,
-                'high_lower_bound' => $this->highLowerBound
-            )
-        );
-    }
-
-    protected function getBreadcrumbs(PHP_CodeCoverage_Report_Node $node)
-    {
-        $breadcrumbs = '';
-        $path        = $node->getPathAsArray();
-        $pathToRoot  = array();
-        $max         = count($path);
-
-        if ($node instanceof PHP_CodeCoverage_Report_Node_File) {
-            $max--;
-        }
-
-        for ($i = 0; $i < $max; $i++) {
-            $pathToRoot[] = str_repeat('../', $i);
-        }
-
-        foreach ($path as $step) {
-            if ($step !== $node) {
-                $breadcrumbs .= $this->getInactiveBreadcrumb(
-                    $step,
-                    array_pop($pathToRoot)
-                );
-            } else {
-                $breadcrumbs .= $this->getActiveBreadcrumb($step);
-            }
-        }
-
-        return $breadcrumbs;
-    }
-
-    protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node)
-    {
-        $buffer = sprintf(
-            '        <li class="active">%s</li>' . "\n",
-            $node->getName()
-        );
-
-        if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) {
-            $buffer .= '        <li>(<a href="dashboard.html">Dashboard</a>)</li>' . "\n";
-        }
-
-        return $buffer;
-    }
-
-    protected function getInactiveBreadcrumb(PHP_CodeCoverage_Report_Node $node, $pathToRoot)
-    {
-        return sprintf(
-            '        <li><a href="%sindex.html">%s</a></li>' . "\n",
-            $pathToRoot,
-            $node->getName()
-        );
-    }
-
-    protected function getPathToRoot(PHP_CodeCoverage_Report_Node $node)
-    {
-        $id    = $node->getId();
-        $depth = substr_count($id, '/');
-
-        if ($id != 'index' &&
-            $node instanceof PHP_CodeCoverage_Report_Node_Directory) {
-            $depth++;
-        }
-
-        return str_repeat('../', $depth);
-    }
-
-    protected function getCoverageBar($percent)
-    {
-        $level = $this->getColorLevel($percent);
-
-        $template = new Text_Template(
-            $this->templatePath . 'coverage_bar.html',
-            '{{',
-            '}}'
-        );
-
-        $template->setVar(array('level' => $level, 'percent' => sprintf("%.2F", $percent)));
-
-        return $template->render();
-    }
-
-    /**
-     * @param  integer $percent
-     * @return string
-     */
-    protected function getColorLevel($percent)
-    {
-        if ($percent < $this->lowUpperBound) {
-            return 'danger';
-        } elseif ($percent >= $this->lowUpperBound &&
-            $percent <  $this->highLowerBound) {
-            return 'warning';
-        } else {
-            return 'success';
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php
deleted file mode 100644
index deac0b7..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Dashboard.php
+++ /dev/null
@@ -1,301 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Renders the dashboard for a PHP_CodeCoverage_Report_Node_Directory node.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_HTML_Renderer_Dashboard extends PHP_CodeCoverage_Report_HTML_Renderer
-{
-    /**
-     * @param PHP_CodeCoverage_Report_Node_Directory $node
-     * @param string                                 $file
-     */
-    public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file)
-    {
-        $classes  = $node->getClassesAndTraits();
-        $template = new Text_Template(
-            $this->templatePath . 'dashboard.html',
-            '{{',
-            '}}'
-        );
-
-        $this->setCommonTemplateVariables($template, $node);
-
-        $baseLink             = $node->getId() . '/';
-        $complexity           = $this->complexity($classes, $baseLink);
-        $coverageDistribution = $this->coverageDistribution($classes);
-        $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink);
-        $projectRisks         = $this->projectRisks($classes, $baseLink);
-
-        $template->setVar(
-            array(
-                'insufficient_coverage_classes' => $insufficientCoverage['class'],
-                'insufficient_coverage_methods' => $insufficientCoverage['method'],
-                'project_risks_classes'         => $projectRisks['class'],
-                'project_risks_methods'         => $projectRisks['method'],
-                'complexity_class'              => $complexity['class'],
-                'complexity_method'             => $complexity['method'],
-                'class_coverage_distribution'   => $coverageDistribution['class'],
-                'method_coverage_distribution'  => $coverageDistribution['method']
-            )
-        );
-
-        $template->renderTo($file);
-    }
-
-    /**
-     * Returns the data for the Class/Method Complexity charts.
-     *
-     * @param  array  $classes
-     * @param  string $baseLink
-     * @return array
-     */
-    protected function complexity(array $classes, $baseLink)
-    {
-        $result = array('class' => array(), 'method' => array());
-
-        foreach ($classes as $className => $class) {
-            foreach ($class['methods'] as $methodName => $method) {
-                if ($className != '*') {
-                    $methodName = $className . '::' . $methodName;
-                }
-
-                $result['method'][] = array(
-                    $method['coverage'],
-                    $method['ccn'],
-                    sprintf(
-                        '<a href="%s">%s</a>',
-                        str_replace($baseLink, '', $method['link']),
-                        $methodName
-                    )
-                );
-            }
-
-            $result['class'][] = array(
-                $class['coverage'],
-                $class['ccn'],
-                sprintf(
-                    '<a href="%s">%s</a>',
-                    str_replace($baseLink, '', $class['link']),
-                    $className
-                )
-            );
-        }
-
-        return array(
-            'class' => json_encode($result['class']),
-            'method' => json_encode($result['method'])
-        );
-    }
-
-    /**
-     * Returns the data for the Class / Method Coverage Distribution chart.
-     *
-     * @param  array $classes
-     * @return array
-     */
-    protected function coverageDistribution(array $classes)
-    {
-        $result = array(
-            'class' => array(
-                '0%'      => 0,
-                '0-10%'   => 0,
-                '10-20%'  => 0,
-                '20-30%'  => 0,
-                '30-40%'  => 0,
-                '40-50%'  => 0,
-                '50-60%'  => 0,
-                '60-70%'  => 0,
-                '70-80%'  => 0,
-                '80-90%'  => 0,
-                '90-100%' => 0,
-                '100%'    => 0
-            ),
-            'method' => array(
-                '0%'      => 0,
-                '0-10%'   => 0,
-                '10-20%'  => 0,
-                '20-30%'  => 0,
-                '30-40%'  => 0,
-                '40-50%'  => 0,
-                '50-60%'  => 0,
-                '60-70%'  => 0,
-                '70-80%'  => 0,
-                '80-90%'  => 0,
-                '90-100%' => 0,
-                '100%'    => 0
-            )
-        );
-
-        foreach ($classes as $class) {
-            foreach ($class['methods'] as $methodName => $method) {
-                if ($method['coverage'] == 0) {
-                    $result['method']['0%']++;
-                } elseif ($method['coverage'] == 100) {
-                    $result['method']['100%']++;
-                } else {
-                    $key = floor($method['coverage'] / 10) * 10;
-                    $key = $key . '-' . ($key + 10) . '%';
-                    $result['method'][$key]++;
-                }
-            }
-
-            if ($class['coverage'] == 0) {
-                $result['class']['0%']++;
-            } elseif ($class['coverage'] == 100) {
-                $result['class']['100%']++;
-            } else {
-                $key = floor($class['coverage'] / 10) * 10;
-                $key = $key . '-' . ($key + 10) . '%';
-                $result['class'][$key]++;
-            }
-        }
-
-        return array(
-            'class' => json_encode(array_values($result['class'])),
-            'method' => json_encode(array_values($result['method']))
-        );
-    }
-
-    /**
-     * Returns the classes / methods with insufficient coverage.
-     *
-     * @param  array  $classes
-     * @param  string $baseLink
-     * @return array
-     */
-    protected function insufficientCoverage(array $classes, $baseLink)
-    {
-        $leastTestedClasses = array();
-        $leastTestedMethods = array();
-        $result             = array('class' => '', 'method' => '');
-
-        foreach ($classes as $className => $class) {
-            foreach ($class['methods'] as $methodName => $method) {
-                if ($method['coverage'] < $this->highLowerBound) {
-                    if ($className != '*') {
-                        $key = $className . '::' . $methodName;
-                    } else {
-                        $key = $methodName;
-                    }
-
-                    $leastTestedMethods[$key] = $method['coverage'];
-                }
-            }
-
-            if ($class['coverage'] < $this->highLowerBound) {
-                $leastTestedClasses[$className] = $class['coverage'];
-            }
-        }
-
-        asort($leastTestedClasses);
-        asort($leastTestedMethods);
-
-        foreach ($leastTestedClasses as $className => $coverage) {
-            $result['class'] .= sprintf(
-                '       <tr><td><a href="%s">%s</a></td><td class="text-right">%d%%</td></tr>' . "\n",
-                str_replace($baseLink, '', $classes[$className]['link']),
-                $className,
-                $coverage
-            );
-        }
-
-        foreach ($leastTestedMethods as $methodName => $coverage) {
-            list($class, $method) = explode('::', $methodName);
-
-            $result['method'] .= sprintf(
-                '       <tr><td><a href="%s"><abbr title="%s">%s</a></a></td><td class="text-right">%d%%</td></tr>' . "\n",
-                str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']),
-                $methodName,
-                $method,
-                $coverage
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * Returns the project risks according to the CRAP index.
-     *
-     * @param  array  $classes
-     * @param  string $baseLink
-     * @return array
-     */
-    protected function projectRisks(array $classes, $baseLink)
-    {
-        $classRisks  = array();
-        $methodRisks = array();
-        $result      = array('class' => '', 'method' => '');
-
-        foreach ($classes as $className => $class) {
-            foreach ($class['methods'] as $methodName => $method) {
-                if ($method['coverage'] < $this->highLowerBound &&
-                    $method['ccn'] > 1) {
-                    if ($className != '*') {
-                        $key = $className . '::' . $methodName;
-                    } else {
-                        $key = $methodName;
-                    }
-
-                    $methodRisks[$key] = $method['crap'];
-                }
-            }
-
-            if ($class['coverage'] < $this->highLowerBound &&
-                $class['ccn'] > count($class['methods'])) {
-                $classRisks[$className] = $class['crap'];
-            }
-        }
-
-        arsort($classRisks);
-        arsort($methodRisks);
-
-        foreach ($classRisks as $className => $crap) {
-            $result['class'] .= sprintf(
-                '       <tr><td><a href="%s">%s</a></td><td class="text-right">%d</td></tr>' . "\n",
-                str_replace($baseLink, '', $classes[$className]['link']),
-                $className,
-                $crap
-            );
-        }
-
-        foreach ($methodRisks as $methodName => $crap) {
-            list($class, $method) = explode('::', $methodName);
-
-            $result['method'] .= sprintf(
-                '       <tr><td><a href="%s"><abbr title="%s">%s</abbr></a></td><td class="text-right">%d</td></tr>' . "\n",
-                str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']),
-                $methodName,
-                $method,
-                $crap
-            );
-        }
-
-        return $result;
-    }
-
-    protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node)
-    {
-        return sprintf(
-            '        <li><a href="index.html">%s</a></li>' . "\n" .
-            '        <li class="active">(Dashboard)</li>' . "\n",
-            $node->getName()
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php
deleted file mode 100644
index 1e21d26..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Renders a PHP_CodeCoverage_Report_Node_Directory node.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_HTML_Renderer_Directory extends PHP_CodeCoverage_Report_HTML_Renderer
-{
-    /**
-     * @param PHP_CodeCoverage_Report_Node_Directory $node
-     * @param string                                 $file
-     */
-    public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file)
-    {
-        $template = new Text_Template($this->templatePath . 'directory.html', '{{', '}}');
-
-        $this->setCommonTemplateVariables($template, $node);
-
-        $items = $this->renderItem($node, true);
-
-        foreach ($node->getDirectories() as $item) {
-            $items .= $this->renderItem($item);
-        }
-
-        foreach ($node->getFiles() as $item) {
-            $items .= $this->renderItem($item);
-        }
-
-        $template->setVar(
-            array(
-                'id'    => $node->getId(),
-                'items' => $items
-            )
-        );
-
-        $template->renderTo($file);
-    }
-
-    /**
-     * @param  PHP_CodeCoverage_Report_Node $item
-     * @param  boolean                      $total
-     * @return string
-     */
-    protected function renderItem(PHP_CodeCoverage_Report_Node $item, $total = false)
-    {
-        $data = array(
-            'numClasses'                   => $item->getNumClassesAndTraits(),
-            'numTestedClasses'             => $item->getNumTestedClassesAndTraits(),
-            'numMethods'                   => $item->getNumMethods(),
-            'numTestedMethods'             => $item->getNumTestedMethods(),
-            'linesExecutedPercent'         => $item->getLineExecutedPercent(false),
-            'linesExecutedPercentAsString' => $item->getLineExecutedPercent(),
-            'numExecutedLines'             => $item->getNumExecutedLines(),
-            'numExecutableLines'           => $item->getNumExecutableLines(),
-            'testedMethodsPercent'         => $item->getTestedMethodsPercent(false),
-            'testedMethodsPercentAsString' => $item->getTestedMethodsPercent(),
-            'testedClassesPercent'         => $item->getTestedClassesAndTraitsPercent(false),
-            'testedClassesPercentAsString' => $item->getTestedClassesAndTraitsPercent()
-        );
-
-        if ($total) {
-            $data['name'] = 'Total';
-        } else {
-            if ($item instanceof PHP_CodeCoverage_Report_Node_Directory) {
-                $data['name'] = sprintf(
-                    '<a href="%s/index.html">%s</a>',
-                    $item->getName(),
-                    $item->getName()
-                );
-
-                $data['icon'] = '<span class="glyphicon glyphicon-folder-open"></span> ';
-            } else {
-                $data['name'] = sprintf(
-                    '<a href="%s.html">%s</a>',
-                    $item->getName(),
-                    $item->getName()
-                );
-
-                $data['icon'] = '<span class="glyphicon glyphicon-file"></span> ';
-            }
-        }
-
-        return $this->renderItemTemplate(
-            new Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'),
-            $data
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php
deleted file mode 100644
index 907a39f..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/File.php
+++ /dev/null
@@ -1,540 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-// @codeCoverageIgnoreStart
-if (!defined('T_TRAIT')) {
-    define('T_TRAIT', 1001);
-}
-
-if (!defined('T_INSTEADOF')) {
-    define('T_INSTEADOF', 1002);
-}
-
-if (!defined('T_CALLABLE')) {
-    define('T_CALLABLE', 1003);
-}
-
-if (!defined('T_FINALLY')) {
-    define('T_FINALLY', 1004);
-}
-
-if (!defined('T_YIELD')) {
-    define('T_YIELD', 1005);
-}
-// @codeCoverageIgnoreEnd
-
-/**
- * Renders a PHP_CodeCoverage_Report_Node_File node.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_HTML_Renderer_File extends PHP_CodeCoverage_Report_HTML_Renderer
-{
-    /**
-     * Constructor.
-     *
-     * @param string  $templatePath
-     * @param string  $generator
-     * @param string  $date
-     * @param integer $lowUpperBound
-     * @param integer $highLowerBound
-     */
-    public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound)
-    {
-        parent::__construct(
-            $templatePath,
-            $generator,
-            $date,
-            $lowUpperBound,
-            $highLowerBound
-        );
-    }
-
-    /**
-     * @param PHP_CodeCoverage_Report_Node_File $node
-     * @param string                            $file
-     */
-    public function render(PHP_CodeCoverage_Report_Node_File $node, $file)
-    {
-        $template = new Text_Template($this->templatePath . 'file.html', '{{', '}}');
-
-        $template->setVar(
-            array(
-                'items' => $this->renderItems($node),
-                'lines' => $this->renderSource($node)
-            )
-        );
-
-        $this->setCommonTemplateVariables($template, $node);
-
-        $template->renderTo($file);
-    }
-
-    /**
-     * @param  PHP_CodeCoverage_Report_Node_File $node
-     * @return string
-     */
-    protected function renderItems(PHP_CodeCoverage_Report_Node_File $node)
-    {
-        $template = new Text_Template($this->templatePath . 'file_item.html', '{{', '}}');
-
-        $methodItemTemplate = new Text_Template(
-            $this->templatePath . 'method_item.html', '{{', '}}'
-        );
-
-        $items = $this->renderItemTemplate(
-            $template,
-            array(
-                'name'                         => 'Total',
-                'numClasses'                   => $node->getNumClassesAndTraits(),
-                'numTestedClasses'             => $node->getNumTestedClassesAndTraits(),
-                'numMethods'                   => $node->getNumMethods(),
-                'numTestedMethods'             => $node->getNumTestedMethods(),
-                'linesExecutedPercent'         => $node->getLineExecutedPercent(false),
-                'linesExecutedPercentAsString' => $node->getLineExecutedPercent(),
-                'numExecutedLines'             => $node->getNumExecutedLines(),
-                'numExecutableLines'           => $node->getNumExecutableLines(),
-                'testedMethodsPercent'         => $node->getTestedMethodsPercent(false),
-                'testedMethodsPercentAsString' => $node->getTestedMethodsPercent(),
-                'testedClassesPercent'         => $node->getTestedClassesAndTraitsPercent(false),
-                'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent(),
-                'crap'                         => '<abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr>'
-            )
-        );
-
-        $items .= $this->renderFunctionItems(
-            $node->getFunctions(),
-            $methodItemTemplate
-        );
-
-        $items .= $this->renderTraitOrClassItems(
-            $node->getTraits(),
-            $template,
-            $methodItemTemplate
-        );
-
-        $items .= $this->renderTraitOrClassItems(
-            $node->getClasses(),
-            $template,
-            $methodItemTemplate
-        );
-
-        return $items;
-    }
-
-    /**
-     * @param  array         $items
-     * @param  Text_Template $template
-     * @param  Text_Template $methodItemTemplate
-     * @return string
-     */
-    protected function renderTraitOrClassItems(array $items, Text_Template $template, Text_Template $methodItemTemplate)
-    {
-        if (empty($items)) {
-            return '';
-        }
-
-        $buffer = '';
-
-        foreach ($items as $name => $item) {
-            $numMethods       = count($item['methods']);
-            $numTestedMethods = 0;
-
-            foreach ($item['methods'] as $method) {
-                if ($method['executedLines'] == $method['executableLines']) {
-                    $numTestedMethods++;
-                }
-            }
-
-            $buffer .= $this->renderItemTemplate(
-                $template,
-                array(
-                    'name'                         => $name,
-                    'numClasses'                   => 1,
-                    'numTestedClasses'             => $numTestedMethods == $numMethods ? 1 : 0,
-                    'numMethods'                   => $numMethods,
-                    'numTestedMethods'             => $numTestedMethods,
-                    'linesExecutedPercent'         => PHP_CodeCoverage_Util::percent(
-                            $item['executedLines'],
-                            $item['executableLines'],
-                            false
-                        ),
-                    'linesExecutedPercentAsString' => PHP_CodeCoverage_Util::percent(
-                            $item['executedLines'],
-                            $item['executableLines'],
-                            true
-                        ),
-                    'numExecutedLines'             => $item['executedLines'],
-                    'numExecutableLines'           => $item['executableLines'],
-                    'testedMethodsPercent'         => PHP_CodeCoverage_Util::percent(
-                            $numTestedMethods,
-                            $numMethods,
-                            false
-                        ),
-                    'testedMethodsPercentAsString' => PHP_CodeCoverage_Util::percent(
-                            $numTestedMethods,
-                            $numMethods,
-                            true
-                        ),
-                    'testedClassesPercent'         => PHP_CodeCoverage_Util::percent(
-                            $numTestedMethods == $numMethods ? 1 : 0,
-                            1,
-                            false
-                        ),
-                    'testedClassesPercentAsString' => PHP_CodeCoverage_Util::percent(
-                            $numTestedMethods == $numMethods ? 1 : 0,
-                            1,
-                            true
-                        ),
-                    'crap'                         => $item['crap']
-                )
-            );
-
-            foreach ($item['methods'] as $method) {
-                $buffer .= $this->renderFunctionOrMethodItem(
-                    $methodItemTemplate, $method, '&nbsp;'
-                );
-            }
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * @param  array         $functions
-     * @param  Text_Template $template
-     * @return string
-     */
-    protected function renderFunctionItems(array $functions, Text_Template $template)
-    {
-        if (empty($functions)) {
-            return '';
-        }
-
-        $buffer = '';
-
-        foreach ($functions as $function) {
-            $buffer .= $this->renderFunctionOrMethodItem(
-                $template, $function
-            );
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * @param  Text_Template $template
-     * @return string
-     */
-    protected function renderFunctionOrMethodItem(Text_Template $template, array $item, $indent = '')
-    {
-        $numTestedItems = $item['executedLines'] == $item['executableLines'] ? 1 : 0;
-
-        return $this->renderItemTemplate(
-            $template,
-            array(
-                'name'                         => sprintf(
-                    '%s<a href="#%d">%s</a>',
-                    $indent,
-                    $item['startLine'],
-                    htmlspecialchars($item['signature'])
-                ),
-                'numMethods'                   => 1,
-                'numTestedMethods'             => $numTestedItems,
-                'linesExecutedPercent'         => PHP_CodeCoverage_Util::percent(
-                        $item['executedLines'],
-                        $item['executableLines'],
-                        false
-                    ),
-                'linesExecutedPercentAsString' => PHP_CodeCoverage_Util::percent(
-                        $item['executedLines'],
-                        $item['executableLines'],
-                        true
-                    ),
-                'numExecutedLines'             => $item['executedLines'],
-                'numExecutableLines'           => $item['executableLines'],
-                'testedMethodsPercent'         => PHP_CodeCoverage_Util::percent(
-                        $numTestedItems,
-                        1,
-                        false
-                    ),
-                'testedMethodsPercentAsString' => PHP_CodeCoverage_Util::percent(
-                        $numTestedItems,
-                        1,
-                        true
-                    ),
-                'crap'                         => $item['crap']
-            )
-        );
-    }
-
-    /**
-     * @param  PHP_CodeCoverage_Report_Node_File $node
-     * @return string
-     */
-    protected function renderSource(PHP_CodeCoverage_Report_Node_File $node)
-    {
-        $coverageData = $node->getCoverageData();
-        $testData     = $node->getTestData();
-        $codeLines    = $this->loadFile($node->getPath());
-        $lines        = '';
-        $i            = 1;
-
-        foreach ($codeLines as $line) {
-            $numTests       = '';
-            $trClass        = '';
-            $popoverContent = '';
-            $popoverTitle   = '';
-
-            if (array_key_exists($i, $coverageData)) {
-                $numTests = count($coverageData[$i]);
-
-                if ($coverageData[$i] === null) {
-                    $trClass = ' class="warning"';
-                } elseif ($numTests == 0) {
-                    $trClass = ' class="danger"';
-                } else {
-                    $trClass        = ' class="success popin"';
-                    $popoverContent = '<ul>';
-
-                    if ($numTests > 1) {
-                        $popoverTitle = $numTests . ' tests cover line ' . $i;
-                    } else {
-                        $popoverTitle = '1 test covers line ' . $i;
-                    }
-
-                    foreach ($coverageData[$i] as $test) {
-                        switch ($testData[$test]) {
-                            case 0: {
-                                $testCSS = ' class="success"';
-                            }
-                                break;
-
-                            case 1:
-                            case 2: {
-                                $testCSS = ' class="warning"';
-                            }
-                                break;
-
-                            case 3: {
-                                $testCSS = ' class="danger"';
-                            }
-                                break;
-
-                            case 4: {
-                                $testCSS = ' class="danger"';
-                            }
-                                break;
-
-                            default: {
-                            $testCSS = '';
-                            }
-                        }
-
-                        $popoverContent .= sprintf(
-                            '<li%s>%s</li>',
-
-                            $testCSS,
-                            htmlspecialchars($test)
-                        );
-                    }
-
-                    $popoverContent .= '</ul>';
-                }
-            }
-
-            if (!empty($popoverTitle)) {
-                $popover = sprintf(
-                    ' data-title="%s" data-content="%s" data-placement="bottom" data-html="true"',
-                    $popoverTitle,
-                    htmlspecialchars($popoverContent)
-                );
-            } else {
-                $popover = '';
-            }
-
-            $lines .= sprintf(
-                '     <tr%s%s><td><div align="right"><a name="%d"></a><a href="#%d">%d</a></div></td><td class="codeLine">%s</td></tr>' . "\n",
-                $trClass,
-                $popover,
-                $i,
-                $i,
-                $i,
-                $line
-            );
-
-            $i++;
-        }
-
-        return $lines;
-    }
-
-    /**
-     * @param  string $file
-     * @return array
-     */
-    protected function loadFile($file)
-    {
-        $buffer              = file_get_contents($file);
-        $tokens              = token_get_all($buffer);
-        $result              = array('');
-        $i                   = 0;
-        $stringFlag          = false;
-        $fileEndsWithNewLine = substr($buffer, -1) == "\n";
-
-        unset($buffer);
-
-        foreach ($tokens as $j => $token) {
-            if (is_string($token)) {
-                if ($token === '"' && $tokens[$j - 1] !== '\\') {
-                    $result[$i] .= sprintf(
-                        '<span class="string">%s</span>',
-
-                        htmlspecialchars($token)
-                    );
-
-                    $stringFlag = !$stringFlag;
-                } else {
-                    $result[$i] .= sprintf(
-                        '<span class="keyword">%s</span>',
-
-                        htmlspecialchars($token)
-                    );
-                }
-
-                continue;
-            }
-
-            list ($token, $value) = $token;
-
-            $value = str_replace(
-                array("\t", ' '),
-                array('&nbsp;&nbsp;&nbsp;&nbsp;', '&nbsp;'),
-                htmlspecialchars($value)
-            );
-
-            if ($value === "\n") {
-                $result[++$i] = '';
-            } else {
-                $lines = explode("\n", $value);
-
-                foreach ($lines as $jj => $line) {
-                    $line = trim($line);
-
-                    if ($line !== '') {
-                        if ($stringFlag) {
-                            $colour = 'string';
-                        } else {
-                            switch ($token) {
-                                case T_INLINE_HTML: {
-                                    $colour = 'html';
-                                }
-                                    break;
-
-                                case T_COMMENT:
-                                case T_DOC_COMMENT: {
-                                    $colour = 'comment';
-                                }
-                                    break;
-
-                                case T_ABSTRACT:
-                                case T_ARRAY:
-                                case T_AS:
-                                case T_BREAK:
-                                case T_CALLABLE:
-                                case T_CASE:
-                                case T_CATCH:
-                                case T_CLASS:
-                                case T_CLONE:
-                                case T_CONTINUE:
-                                case T_DEFAULT:
-                                case T_ECHO:
-                                case T_ELSE:
-                                case T_ELSEIF:
-                                case T_EMPTY:
-                                case T_ENDDECLARE:
-                                case T_ENDFOR:
-                                case T_ENDFOREACH:
-                                case T_ENDIF:
-                                case T_ENDSWITCH:
-                                case T_ENDWHILE:
-                                case T_EXIT:
-                                case T_EXTENDS:
-                                case T_FINAL:
-                                case T_FINALLY:
-                                case T_FOREACH:
-                                case T_FUNCTION:
-                                case T_GLOBAL:
-                                case T_IF:
-                                case T_IMPLEMENTS:
-                                case T_INCLUDE:
-                                case T_INCLUDE_ONCE:
-                                case T_INSTANCEOF:
-                                case T_INSTEADOF:
-                                case T_INTERFACE:
-                                case T_ISSET:
-                                case T_LOGICAL_AND:
-                                case T_LOGICAL_OR:
-                                case T_LOGICAL_XOR:
-                                case T_NAMESPACE:
-                                case T_NEW:
-                                case T_PRIVATE:
-                                case T_PROTECTED:
-                                case T_PUBLIC:
-                                case T_REQUIRE:
-                                case T_REQUIRE_ONCE:
-                                case T_RETURN:
-                                case T_STATIC:
-                                case T_THROW:
-                                case T_TRAIT:
-                                case T_TRY:
-                                case T_UNSET:
-                                case T_USE:
-                                case T_VAR:
-                                case T_WHILE:
-                                case T_YIELD: {
-                                    $colour = 'keyword';
-                                }
-                                    break;
-
-                                default: {
-                                $colour = 'default';
-                                }
-                            }
-                        }
-
-                        $result[$i] .= sprintf(
-                            '<span class="%s">%s</span>',
-
-                            $colour,
-                            $line
-                        );
-                    }
-
-                    if (isset($lines[$jj + 1])) {
-                        $result[++$i] = '';
-                    }
-                }
-            }
-        }
-
-        if ($fileEndsWithNewLine) {
-            unset($result[count($result)-1]);
-        }
-
-        return $result;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/coverage_bar.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/coverage_bar.html.dist
deleted file mode 100644
index 5a09c35..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/coverage_bar.html.dist
+++ /dev/null
@@ -1,5 +0,0 @@
-       <div class="progress">
-         <div class="progress-bar progress-bar-{{level}}" role="progressbar" aria-valuenow="{{percent}}" aria-valuemin="0" aria-valuemax="100" style="width: {{percent}}%">
-           <span class="sr-only">{{percent}}% covered ({{level}})</span>
-         </div>
-       </div>
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css
deleted file mode 100644
index 28f154d..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
- * Bootstrap v3.3.2 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/nv.d3.css b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/nv.d3.css
deleted file mode 100644
index cae8348..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/nv.d3.css
+++ /dev/null
@@ -1,769 +0,0 @@
-
-/********************
- * HTML CSS
- */
-
-
-.chartWrap {
-  margin: 0;
-  padding: 0;
-  overflow: hidden;
-}
-
-/********************
-  Box shadow and border radius styling
-*/
-.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
-  -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-  box-shadow: 0 5px 10px rgba(0,0,0,.2);
-
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-
-/********************
- * TOOLTIP CSS
- */
-
-.nvtooltip {
-  position: absolute;
-  background-color: rgba(255,255,255,1.0);
-  padding: 1px;
-  border: 1px solid rgba(0,0,0,.2);
-  z-index: 10000;
-
-  font-family: Arial;
-  font-size: 13px;
-  text-align: left;
-  pointer-events: none;
-
-  white-space: nowrap;
-
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-
-/*Give tooltips that old fade in transition by
-    putting a "with-transitions" class on the container div.
-*/
-.nvtooltip.with-transitions, .with-transitions .nvtooltip {
-  transition: opacity 250ms linear;
-  -moz-transition: opacity 250ms linear;
-  -webkit-transition: opacity 250ms linear;
-
-  transition-delay: 250ms;
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-}
-
-.nvtooltip.x-nvtooltip,
-.nvtooltip.y-nvtooltip {
-  padding: 8px;
-}
-
-.nvtooltip h3 {
-  margin: 0;
-  padding: 4px 14px;
-  line-height: 18px;
-  font-weight: normal;
-  background-color: rgba(247,247,247,0.75);
-  text-align: center;
-
-  border-bottom: 1px solid #ebebeb;
-
-  -webkit-border-radius: 5px 5px 0 0;
-  -moz-border-radius: 5px 5px 0 0;
-  border-radius: 5px 5px 0 0;
-}
-
-.nvtooltip p {
-  margin: 0;
-  padding: 5px 14px;
-  text-align: center;
-}
-
-.nvtooltip span {
-  display: inline-block;
-  margin: 2px 0;
-}
-
-.nvtooltip table {
-  margin: 6px;
-  border-spacing:0;
-}
-
-
-.nvtooltip table td {
-  padding: 2px 9px 2px 0;
-  vertical-align: middle;
-}
-
-.nvtooltip table td.key {
-  font-weight:normal;
-}
-.nvtooltip table td.value {
-  text-align: right;
-  font-weight: bold;
-}
-
-.nvtooltip table tr.highlight td {
-  padding: 1px 9px 1px 0;
-  border-bottom-style: solid;
-  border-bottom-width: 1px;
-  border-top-style: solid;
-  border-top-width: 1px;
-}
-
-.nvtooltip table td.legend-color-guide div {
-  width: 8px;
-  height: 8px;
-  vertical-align: middle;
-}
-
-.nvtooltip .footer {
-  padding: 3px;
-  text-align: center;
-}
-
-
-.nvtooltip-pending-removal {
-  position: absolute;
-  pointer-events: none;
-}
-
-
-/********************
- * SVG CSS
- */
-
-
-svg {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -khtml-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  /* Trying to get SVG to act like a greedy block in all browsers */
-  display: block;
-  width:100%;
-  height:100%;
-}
-
-
-svg text {
-  font: normal 12px Arial;
-}
-
-svg .title {
- font: bold 14px Arial;
-}
-
-.nvd3 .nv-background {
-  fill: white;
-  fill-opacity: 0;
-  /*
-  pointer-events: none;
-  */
-}
-
-.nvd3.nv-noData {
-  font-size: 18px;
-  font-weight: bold;
-}
-
-
-/**********
-*  Brush
-*/
-
-.nv-brush .extent {
-  fill-opacity: .125;
-  shape-rendering: crispEdges;
-}
-
-
-
-/**********
-*  Legend
-*/
-
-.nvd3 .nv-legend .nv-series {
-  cursor: pointer;
-}
-
-.nvd3 .nv-legend .disabled circle {
-  fill-opacity: 0;
-}
-
-
-
-/**********
-*  Axes
-*/
-.nvd3 .nv-axis {
-  pointer-events:none;
-}
-
-.nvd3 .nv-axis path {
-  fill: none;
-  stroke: #000;
-  stroke-opacity: .75;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis path.domain {
-  stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis.nv-x path.domain {
-  stroke-opacity: 0;
-}
-
-.nvd3 .nv-axis line {
-  fill: none;
-  stroke: #e5e5e5;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .nv-axis .zero line,
-/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
-  stroke-opacity: .75;
-}
-
-.nvd3 .nv-axis .nv-axisMaxMin text {
-  font-weight: bold;
-}
-
-.nvd3 .x  .nv-axis .nv-axisMaxMin text,
-.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
-.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
-  text-anchor: middle
-}
-
-
-
-/**********
-*  Brush
-*/
-
-.nv-brush .resize path {
-  fill: #eee;
-  stroke: #666;
-}
-
-
-
-/**********
-*  Bars
-*/
-
-.nvd3 .nv-bars .negative rect {
-    zfill: brown;
-}
-
-.nvd3 .nv-bars rect {
-  zfill: steelblue;
-  fill-opacity: .75;
-
-  transition: fill-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-bars rect.hover {
-  fill-opacity: 1;
-}
-
-.nvd3 .nv-bars .hover rect {
-  fill: lightblue;
-}
-
-.nvd3 .nv-bars text {
-  fill: rgba(0,0,0,0);
-}
-
-.nvd3 .nv-bars .hover text {
-  fill: rgba(0,0,0,1);
-}
-
-
-/**********
-*  Bars
-*/
-
-.nvd3 .nv-multibar .nv-groups rect,
-.nvd3 .nv-multibarHorizontal .nv-groups rect,
-.nvd3 .nv-discretebar .nv-groups rect {
-  stroke-opacity: 0;
-
-  transition: fill-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear;
-}
-
-.nvd3 .nv-multibar .nv-groups rect:hover,
-.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
-.nvd3 .nv-discretebar .nv-groups rect:hover {
-  fill-opacity: 1;
-}
-
-.nvd3 .nv-discretebar .nv-groups text,
-.nvd3 .nv-multibarHorizontal .nv-groups text {
-  font-weight: bold;
-  fill: rgba(0,0,0,1);
-  stroke: rgba(0,0,0,0);
-}
-
-/***********
-*  Pie Chart
-*/
-
-.nvd3.nv-pie path {
-  stroke-opacity: 0;
-  transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-pie .nv-slice text {
-  stroke: #000;
-  stroke-width: 0;
-}
-
-.nvd3.nv-pie path {
-  stroke: #fff;
-  stroke-width: 1px;
-  stroke-opacity: 1;
-}
-
-.nvd3.nv-pie .hover path {
-  fill-opacity: .7;
-}
-.nvd3.nv-pie .nv-label {
-  pointer-events: none;
-}
-.nvd3.nv-pie .nv-label rect {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-/**********
-* Lines
-*/
-
-.nvd3 .nv-groups path.nv-line {
-  fill: none;
-  stroke-width: 1.5px;
-  /*
-  stroke-linecap: round;
-  shape-rendering: geometricPrecision;
-
-  transition: stroke-width 250ms linear;
-  -moz-transition: stroke-width 250ms linear;
-  -webkit-transition: stroke-width 250ms linear;
-
-  transition-delay: 250ms
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-  */
-}
-
-.nvd3 .nv-groups path.nv-line.nv-thin-line {
-  stroke-width: 1px;
-}
-
-
-.nvd3 .nv-groups path.nv-area {
-  stroke: none;
-  /*
-  stroke-linecap: round;
-  shape-rendering: geometricPrecision;
-
-  stroke-width: 2.5px;
-  transition: stroke-width 250ms linear;
-  -moz-transition: stroke-width 250ms linear;
-  -webkit-transition: stroke-width 250ms linear;
-
-  transition-delay: 250ms
-  -moz-transition-delay: 250ms;
-  -webkit-transition-delay: 250ms;
-  */
-}
-
-.nvd3 .nv-line.hover path {
-  stroke-width: 6px;
-}
-
-/*
-.nvd3.scatter .groups .point {
-  fill-opacity: 0.1;
-  stroke-opacity: 0.1;
-}
-  */
-
-.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
-  fill-opacity: .5 !important;
-  stroke-opacity: .5 !important;
-}
-
-
-.with-transitions .nvd3 .nv-groups .nv-point {
-  transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-
-}
-
-.nvd3.nv-scatter .nv-groups .nv-point.hover,
-.nvd3 .nv-groups .nv-point.hover {
-  stroke-width: 7px;
-  fill-opacity: .95 !important;
-  stroke-opacity: .95 !important;
-}
-
-
-.nvd3 .nv-point-paths path {
-  stroke: #aaa;
-  stroke-opacity: 0;
-  fill: #eee;
-  fill-opacity: 0;
-}
-
-
-
-.nvd3 .nv-indexLine {
-  cursor: ew-resize;
-}
-
-
-/**********
-* Distribution
-*/
-
-.nvd3 .nv-distribution {
-  pointer-events: none;
-}
-
-
-
-/**********
-*  Scatter
-*/
-
-/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
-.nvd3 .nv-groups .nv-point {
-  pointer-events: none;
-}
-*/
-
-.nvd3 .nv-groups .nv-point.hover {
-  stroke-width: 20px;
-  stroke-opacity: .5;
-}
-
-.nvd3 .nv-scatter .nv-point.hover {
-  fill-opacity: 1;
-}
-
-/*
-.nv-group.hover .nv-point {
-  fill-opacity: 1;
-}
-*/
-
-
-/**********
-*  Stacked Area
-*/
-
-.nvd3.nv-stackedarea path.nv-area {
-  fill-opacity: .7;
-  /*
-  stroke-opacity: .65;
-  fill-opacity: 1;
-  */
-  stroke-opacity: 0;
-
-  transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-  -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-  -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-
-  /*
-  transition-delay: 500ms;
-  -moz-transition-delay: 500ms;
-  -webkit-transition-delay: 500ms;
-  */
-
-}
-
-.nvd3.nv-stackedarea path.nv-area.hover {
-  fill-opacity: .9;
-  /*
-  stroke-opacity: .85;
-  */
-}
-/*
-.d3stackedarea .groups path {
-  stroke-opacity: 0;
-}
-  */
-
-
-
-.nvd3.nv-stackedarea .nv-groups .nv-point {
-  stroke-opacity: 0;
-  fill-opacity: 0;
-}
-
-/*
-.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
-  stroke-width: 20px;
-  stroke-opacity: .75;
-  fill-opacity: 1;
-}*/
-
-
-
-/**********
-*  Line Plus Bar
-*/
-
-.nvd3.nv-linePlusBar .nv-bar rect {
-  fill-opacity: .75;
-}
-
-.nvd3.nv-linePlusBar .nv-bar rect:hover {
-  fill-opacity: 1;
-}
-
-
-/**********
-*  Bullet
-*/
-
-.nvd3.nv-bullet { font: 10px sans-serif; }
-.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
-.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
-.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
-.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
-.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
-.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
-.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
-.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
-.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
-.nvd3.nv-bullet .nv-subtitle { fill: #999; }
-
-
-.nvd3.nv-bullet .nv-range {
-  fill: #bababa;
-  fill-opacity: .4;
-}
-.nvd3.nv-bullet .nv-range:hover {
-  fill-opacity: .7;
-}
-
-
-
-/**********
-* Sparkline
-*/
-
-.nvd3.nv-sparkline path {
-  fill: none;
-}
-
-.nvd3.nv-sparklineplus g.nv-hoverValue {
-  pointer-events: none;
-}
-
-.nvd3.nv-sparklineplus .nv-hoverValue line {
-  stroke: #333;
-  stroke-width: 1.5px;
- }
-
-.nvd3.nv-sparklineplus,
-.nvd3.nv-sparklineplus g {
-  pointer-events: all;
-}
-
-.nvd3 .nv-hoverArea {
-  fill-opacity: 0;
-  stroke-opacity: 0;
-}
-
-.nvd3.nv-sparklineplus .nv-xValue,
-.nvd3.nv-sparklineplus .nv-yValue {
-  /*
-  stroke: #666;
-  */
-  stroke-width: 0;
-  font-size: .9em;
-  font-weight: normal;
-}
-
-.nvd3.nv-sparklineplus .nv-yValue {
-  stroke: #f66;
-}
-
-.nvd3.nv-sparklineplus .nv-maxValue {
-  stroke: #2ca02c;
-  fill: #2ca02c;
-}
-
-.nvd3.nv-sparklineplus .nv-minValue {
-  stroke: #d62728;
-  fill: #d62728;
-}
-
-.nvd3.nv-sparklineplus .nv-currentValue {
-  /*
-  stroke: #444;
-  fill: #000;
-  */
-  font-weight: bold;
-  font-size: 1.1em;
-}
-
-/**********
-* historical stock
-*/
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
-  stroke-width: 2px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
-  stroke-width: 4px;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
- stroke: #2ca02c;
-}
-
-.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
- stroke: #d62728;
-}
-
-.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
-  font-weight: bold;
-}
-
-.nvd3.nv-historicalStockChart .nv-dragTarget {
-  fill-opacity: 0;
-  stroke: none;
-  cursor: move;
-}
-
-.nvd3 .nv-brush .extent {
-  /*
-  cursor: ew-resize !important;
-  */
-  fill-opacity: 0 !important;
-}
-
-.nvd3 .nv-brushBackground rect {
-  stroke: #000;
-  stroke-width: .4;
-  fill: #fff;
-  fill-opacity: .7;
-}
-
-
-
-/**********
-* Indented Tree
-*/
-
-
-/**
- * TODO: the following 3 selectors are based on classes used in the example.  I should either make them standard and leave them here, or move to a CSS file not included in the library
- */
-.nvd3.nv-indentedtree .name {
-  margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .clickable {
-  color: #08C;
-  cursor: pointer;
-}
-
-.nvd3.nv-indentedtree span.clickable:hover {
-  color: #005580;
-  text-decoration: underline;
-}
-
-
-.nvd3.nv-indentedtree .nv-childrenCount {
-  display: inline-block;
-  margin-left: 5px;
-}
-
-.nvd3.nv-indentedtree .nv-treeicon {
-  cursor: pointer;
-  /*
-  cursor: n-resize;
-  */
-}
-
-.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
-  cursor: pointer;
-  /*
-  cursor: s-resize;
-  */
-}
-
-/**********
-* Parallel Coordinates
-*/
-
-.nvd3 .background path {
-  fill: none;
-  stroke: #ccc;
-  stroke-opacity: .4;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .foreground path {
-  fill: none;
-  stroke: steelblue;
-  stroke-opacity: .7;
-}
-
-.nvd3 .brush .extent {
-  fill-opacity: .3;
-  stroke: #fff;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .axis line, .axis path {
-  fill: none;
-  stroke: #000;
-  shape-rendering: crispEdges;
-}
-
-.nvd3 .axis text {
-  text-shadow: 0 1px 0 #fff;
-}
-
-/****
-Interactive Layer
-*/
-.nvd3 .nv-interactiveGuideLine {
-  pointer-events:none;
-}
-.nvd3 line.nv-guideline {
-  stroke: #ccc;
-}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/style.css b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/style.css
deleted file mode 100644
index ff146a5..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/css/style.css
+++ /dev/null
@@ -1,114 +0,0 @@
-body {
- padding-top: 10px;
-}
-
-.popover {
- max-width: none;
-}
-
-.glyphicon {
- margin-right:.25em;
-}
-
-.table-bordered>thead>tr>td {
- border-bottom-width: 1px;
-}
-
-.table tbody>tr>td, .table thead>tr>td {
- padding-top: 3px;
- padding-bottom: 3px;
-}
-
-.table-condensed tbody>tr>td {
- padding-top: 0;
- padding-bottom: 0;
-}
-
-.table .progress {
- margin-bottom: inherit;
-}
-
-.table-borderless th, .table-borderless td {
- border: 0 !important;
-}
-
-.table tbody td.success, li.success, span.success {
- background-color: #dff0d8;
-}
-
-.table tbody tr.danger, .table tbody td.danger, li.danger, span.danger {
- background-color: #f2dede;
-}
-
-.table tbody td.warning, li.warning, span.warning {
- background-color: #fcf8e3;
-}
-
-.table tbody td.info {
- background-color: #d9edf7;
-}
-
-td.big {
- width: 117px;
-}
-
-td.small {
-}
-
-td.codeLine {
- font-family: monospace;
- white-space: pre;
-}
-
-td span.comment {
- color: #888a85;
-}
-
-td span.default {
- color: #2e3436;
-}
-
-td span.html {
- color: #888a85;
-}
-
-td span.keyword {
- color: #2e3436;
- font-weight: bold;
-}
-
-pre span.string {
- color: #2e3436;
-}
-
-span.success, span.warning, span.danger {
- margin-right: 2px;
- padding-left: 10px;
- padding-right: 10px;
- text-align: center;
-}
-
-#classCoverageDistribution, #classComplexity {
- height: 200px;
- width: 475px;
-}
-
-#toplink {
- position: fixed;
- left: 5px;
- bottom: 5px;
- outline: 0;
-}
-
-svg text {
- font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
- font-size: 11px;
- color: #666;
- fill: #666;
-}
-
-.scrollbox {
- height:245px;
- overflow-x:hidden;
- overflow-y:scroll;
-}
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/dashboard.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/dashboard.html.dist
deleted file mode 100644
index 3ae8ba1..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/dashboard.html.dist
+++ /dev/null
@@ -1,286 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
-  <meta charset="UTF-8">
-  <title>Dashboard for {{full_path}}</title>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <link href="{{path_to_root}}css/bootstrap.min.css" rel="stylesheet">
-  <link href="{{path_to_root}}css/nv.d3.css" rel="stylesheet">
-  <link href="{{path_to_root}}css/style.css" rel="stylesheet">
-  <!--[if lt IE 9]>
-  <script src="{{path_to_root}}js/html5shiv.min.js"></script>
-  <script src="{{path_to_root}}js/respond.min.js"></script>
-  <![endif]-->
- </head>
- <body>
-  <header>
-   <div class="container">
-    <div class="row">
-     <div class="col-md-12">
-      <ol class="breadcrumb">
-{{breadcrumbs}}
-      </ol>
-     </div>
-    </div>
-   </div>
-  </header>
-  <div class="container">
-   <div class="row">
-    <div class="col-md-12">
-     <h2>Classes</h2>
-    </div>
-   </div>
-   <div class="row">
-    <div class="col-md-6">
-     <h3>Coverage Distribution</h3>
-     <div id="classCoverageDistribution" style="height: 300px;">
-       <svg></svg>
-     </div>
-    </div>
-    <div class="col-md-6">
-     <h3>Complexity</h3>
-     <div id="classComplexity" style="height: 300px;">
-       <svg></svg>
-     </div>
-    </div>
-   </div>
-   <div class="row">
-    <div class="col-md-6">
-     <h3>Insufficient Coverage</h3>
-     <div class="scrollbox">
-      <table class="table">
-       <thead>
-        <tr>
-         <th>Class</th>
-         <th class="text-right">Coverage</th>
-        </tr>
-       </thead>
-       <tbody>
-{{insufficient_coverage_classes}}
-       </tbody>
-      </table>
-     </div>
-    </div>
-    <div class="col-md-6">
-     <h3>Project Risks</h3>
-     <div class="scrollbox">
-      <table class="table">
-       <thead>
-        <tr>
-         <th>Class</th>
-         <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
-        </tr>
-       </thead>
-       <tbody>
-{{project_risks_classes}}
-       </tbody>
-      </table>
-     </div>
-    </div>
-   </div>
-   <div class="row">
-    <div class="col-md-12">
-     <h2>Methods</h2>
-    </div>
-   </div>
-   <div class="row">
-    <div class="col-md-6">
-     <h3>Coverage Distribution</h3>
-     <div id="methodCoverageDistribution" style="height: 300px;">
-       <svg></svg>
-     </div>
-    </div>
-    <div class="col-md-6">
-     <h3>Complexity</h3>
-     <div id="methodComplexity" style="height: 300px;">
-       <svg></svg>
-     </div>
-    </div>
-   </div>
-   <div class="row">
-    <div class="col-md-6">
-     <h3>Insufficient Coverage</h3>
-     <div class="scrollbox">
-      <table class="table">
-       <thead>
-        <tr>
-         <th>Method</th>
-         <th class="text-right">Coverage</th>
-        </tr>
-       </thead>
-       <tbody>
-{{insufficient_coverage_methods}}
-       </tbody>
-      </table>
-     </div>
-    </div>
-    <div class="col-md-6">
-     <h3>Project Risks</h3>
-     <div class="scrollbox">
-      <table class="table">
-       <thead>
-        <tr>
-         <th>Method</th>
-         <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
-        </tr>
-       </thead>
-       <tbody>
-{{project_risks_methods}}
-       </tbody>
-      </table>
-     </div>
-    </div>
-   </div>
-   <footer>
-    <hr/>
-    <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage {{version}}</a> using <a href="{{runtime_link}}" target="_top">{{runtime_name}} {{runtime_version}}</a>{{generator}} at {{date}}.</small>
-    </p>
-   </footer>
-  </div>
-  <script src="{{path_to_root}}js/jquery.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/bootstrap.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/holder.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/d3.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/nv.d3.min.js" type="text/javascript"></script>
-  <script type="text/javascript">
-$(document).ready(function() {
-  nv.addGraph(function() {
-    var chart = nv.models.multiBarChart();
-    chart.tooltips(false)
-      .showControls(false)
-      .showLegend(false)
-      .reduceXTicks(false)
-      .staggerLabels(true)
-      .yAxis.tickFormat(d3.format('d'));
-
-    d3.select('#classCoverageDistribution svg')
-      .datum(getCoverageDistributionData({{class_coverage_distribution}}, "Class Coverage"))
-      .transition().duration(500).call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-
-  nv.addGraph(function() {
-    var chart = nv.models.multiBarChart();
-    chart.tooltips(false)
-      .showControls(false)
-      .showLegend(false)
-      .reduceXTicks(false)
-      .staggerLabels(true)
-      .yAxis.tickFormat(d3.format('d'));
-
-    d3.select('#methodCoverageDistribution svg')
-      .datum(getCoverageDistributionData({{method_coverage_distribution}}, "Method Coverage"))
-      .transition().duration(500).call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-
-  function getCoverageDistributionData(data, label) {
-    var labels = [
-      '0%',
-      '0-10%',
-      '10-20%',
-      '20-30%',
-      '30-40%',
-      '40-50%',
-      '50-60%',
-      '60-70%',
-      '70-80%',
-      '80-90%',
-      '90-100%',
-      '100%'
-    ];
-    var values = [];
-    $.each(labels, function(key) {
-      values.push({x: labels[key], y: data[key]});
-    });
-
-    return [
-      {
-        key: label,
-        values: values,
-        color: "#4572A7"
-      }
-    ];
-  }
-  nv.addGraph(function() {
-    var chart = nv.models.scatterChart()
-      .showDistX(true)
-      .showDistY(true)
-      .showLegend(false)
-      .forceX([0, 100]);
-    chart.scatter.onlyCircles(false);
-    chart.tooltipContent(function(key, y, e, graph) {
-      return '<p>' + graph.point.class + '</p>';
-    });
-
-    chart.xAxis.axisLabel('Code Coverage (in percent)');
-    chart.yAxis.axisLabel('Cyclomatic Complexity');
-
-    d3.select('#classComplexity svg')
-      .datum(getComplexityData({{complexity_class}}, 'Class Complexity'))
-      .transition()
-      .duration(500)
-      .call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-
-  nv.addGraph(function() {
-    var chart = nv.models.scatterChart()
-      .showDistX(true)
-      .showDistY(true)
-      .showLegend(false)
-      .forceX([0, 100]);
-    chart.scatter.onlyCircles(false);
-    chart.tooltipContent(function(key, y, e, graph) {
-      return '<p>' + graph.point.class + '</p>';
-    });
-
-    chart.xAxis.axisLabel('Code Coverage (in percent)');
-    chart.yAxis.axisLabel('Method Complexity');
-
-    d3.select('#methodComplexity svg')
-      .datum(getComplexityData({{complexity_method}}, 'Method Complexity'))
-      .transition()
-      .duration(500)
-      .call(chart);
-
-    nv.utils.windowResize(chart.update);
-
-    return chart;
-  });
-
-  function getComplexityData(data, label) {
-    var values = [];
-    $.each(data, function(key) {
-      var value = Math.round(data[key][0]*100) / 100;
-      values.push({
-        x: value,
-        y: data[key][1],
-        class: data[key][2],
-        size: 0.05,
-        shape: 'diamond'
-      });
-    });
-
-    return [
-      {
-        key: label,
-        values: values,
-        color: "#4572A7"
-      }
-    ];
-  }
-});
-  </script>
- </body>
-</html>
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist
deleted file mode 100644
index 8175df9..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
-  <meta charset="UTF-8">
-  <title>Code Coverage for {{full_path}}</title>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <link href="{{path_to_root}}css/bootstrap.min.css" rel="stylesheet">
-  <link href="{{path_to_root}}css/style.css" rel="stylesheet">
-  <!--[if lt IE 9]>
-  <script src="{{path_to_root}}js/html5shiv.min.js"></script>
-  <script src="{{path_to_root}}js/respond.min.js"></script>
-  <![endif]-->
- </head>
- <body>
-  <header>
-   <div class="container">
-    <div class="row">
-     <div class="col-md-12">
-      <ol class="breadcrumb">
-{{breadcrumbs}}
-      </ol>
-     </div>
-    </div>
-   </div>
-  </header>
-  <div class="container">
-   <table class="table table-bordered">
-    <thead>
-     <tr>
-      <td>&nbsp;</td>
-      <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td>
-     </tr>
-     <tr>
-      <td>&nbsp;</td>
-      <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
-      <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td>
-      <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
-     </tr>
-    </thead>
-    <tbody>
-{{items}}
-    </tbody>
-   </table>
-   <footer>
-    <hr/>
-    <h4>Legend</h4>
-    <p>
-     <span class="danger"><strong>Low</strong>: 0% to {{low_upper_bound}}%</span>
-     <span class="warning"><strong>Medium</strong>: {{low_upper_bound}}% to {{high_lower_bound}}%</span>
-     <span class="success"><strong>High</strong>: {{high_lower_bound}}% to 100%</span>
-    </p>
-    <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage {{version}}</a> using <a href="{{runtime_link}}" target="_top">{{runtime_name}} {{runtime_version}}</a>{{generator}} at {{date}}.</small>
-    </p>
-   </footer>
-  </div>
-  <script src="{{path_to_root}}js/jquery.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/bootstrap.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/holder.js" type="text/javascript"></script>
- </body>
-</html>
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist
deleted file mode 100644
index 78dbb35..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist
+++ /dev/null
@@ -1,13 +0,0 @@
-     <tr>
-      <td class="{{lines_level}}">{{icon}}{{name}}</td>
-      <td class="{{lines_level}} big">{{lines_bar}}</td>
-      <td class="{{lines_level}} small"><div align="right">{{lines_executed_percent}}</div></td>
-      <td class="{{lines_level}} small"><div align="right">{{lines_number}}</div></td>
-      <td class="{{methods_level}} big">{{methods_bar}}</td>
-      <td class="{{methods_level}} small"><div align="right">{{methods_tested_percent}}</div></td>
-      <td class="{{methods_level}} small"><div align="right">{{methods_number}}</div></td>
-      <td class="{{classes_level}} big">{{classes_bar}}</td>
-      <td class="{{classes_level}} small"><div align="right">{{classes_tested_percent}}</div></td>
-      <td class="{{classes_level}} small"><div align="right">{{classes_number}}</div></td>
-     </tr>
-
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist
deleted file mode 100644
index 6827bd1..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
-  <meta charset="UTF-8">
-  <title>Code Coverage for {{full_path}}</title>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <link href="{{path_to_root}}css/bootstrap.min.css" rel="stylesheet">
-  <link href="{{path_to_root}}css/style.css" rel="stylesheet">
-  <!--[if lt IE 9]>
-  <script src="{{path_to_root}}js/html5shiv.min.js"></script>
-  <script src="{{path_to_root}}js/respond.min.js"></script>
-  <![endif]-->
- </head>
- <body>
-  <header>
-   <div class="container">
-    <div class="row">
-     <div class="col-md-12">
-      <ol class="breadcrumb">
-{{breadcrumbs}}
-      </ol>
-     </div>
-    </div>
-   </div>
-  </header>
-  <div class="container">
-   <table class="table table-bordered">
-    <thead>
-     <tr>
-      <td>&nbsp;</td>
-      <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
-     </tr>
-     <tr>
-      <td>&nbsp;</td>
-      <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
-      <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
-      <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
-     </tr>
-    </thead>
-    <tbody>
-{{items}}
-    </tbody>
-   </table>
-   <table id="code" class="table table-borderless table-condensed">
-    <tbody>
-{{lines}}
-    </tbody>
-   </table>
-   <footer>
-    <hr/>
-    <h4>Legend</h4>
-    <p>
-     <span class="success"><strong>Executed</strong></span>
-     <span class="danger"><strong>Not Executed</strong></span>
-     <span class="warning"><strong>Dead Code</strong></span>
-    </p>
-    <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage {{version}}</a> using <a href="{{runtime_link}}" target="_top">{{runtime_name}} {{runtime_version}}</a>{{generator}} at {{date}}.</small>
-    </p>
-    <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
-   </footer>
-  </div>
-  <script src="{{path_to_root}}js/jquery.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/bootstrap.min.js" type="text/javascript"></script>
-  <script src="{{path_to_root}}js/holder.js" type="text/javascript"></script>
-  <script type="text/javascript">
-  $(function() {
-   var $window   = $(window)
-     , $top_link = $('#toplink')
-     , $body     = $('body, html')
-     , offset    = $('#code').offset().top;
-
-   $top_link.hide().click(function(event) {
-    event.preventDefault();
-    $body.animate({scrollTop:0}, 800);
-   });
-
-   $window.scroll(function() {
-    if($window.scrollTop() > offset) {
-     $top_link.fadeIn();
-    } else {
-     $top_link.fadeOut();
-    }
-   }).scroll();
-
-   $('.popin').popover({trigger: 'hover'});
-  });
-  </script>
- </body>
-</html>
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist
deleted file mode 100644
index 756fdd6..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist
+++ /dev/null
@@ -1,14 +0,0 @@
-     <tr>
-      <td class="{{classes_level}}">{{name}}</td>
-      <td class="{{classes_level}} big">{{classes_bar}}</td>
-      <td class="{{classes_level}} small"><div align="right">{{classes_tested_percent}}</div></td>
-      <td class="{{classes_level}} small"><div align="right">{{classes_number}}</div></td>
-      <td class="{{methods_level}} big">{{methods_bar}}</td>
-      <td class="{{methods_level}} small"><div align="right">{{methods_tested_percent}}</div></td>
-      <td class="{{methods_level}} small"><div align="right">{{methods_number}}</div></td>
-      <td class="{{methods_level}} small">{{crap}}</td>
-      <td class="{{lines_level}} big">{{lines_bar}}</td>
-      <td class="{{lines_level}} small"><div align="right">{{lines_executed_percent}}</div></td>
-      <td class="{{lines_level}} small"><div align="right">{{lines_number}}</div></td>
-     </tr>
-
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot
deleted file mode 100644
index b93a495..0000000
Binary files a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.eot and /dev/null differ
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg
deleted file mode 100644
index 94fb549..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.svg
+++ /dev/null
@@ -1,288 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
-<font-face units-per-em="1200" ascent="960" descent="-240" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="400" />
-<glyph unicode=" " />
-<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
-<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
-<glyph unicode="&#x2000;" horiz-adv-x="650" />
-<glyph unicode="&#x2001;" horiz-adv-x="1300" />
-<glyph unicode="&#x2002;" horiz-adv-x="650" />
-<glyph unicode="&#x2003;" horiz-adv-x="1300" />
-<glyph unicode="&#x2004;" horiz-adv-x="433" />
-<glyph unicode="&#x2005;" horiz-adv-x="325" />
-<glyph unicode="&#x2006;" horiz-adv-x="216" />
-<glyph unicode="&#x2007;" horiz-adv-x="216" />
-<glyph unicode="&#x2008;" horiz-adv-x="162" />
-<glyph unicode="&#x2009;" horiz-adv-x="260" />
-<glyph unicode="&#x200a;" horiz-adv-x="72" />
-<glyph unicode="&#x202f;" horiz-adv-x="260" />
-<glyph unicode="&#x205f;" horiz-adv-x="325" />
-<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
-<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
-<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
-<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
-<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
-<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
-<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
-<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
-<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
-<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
-<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
-<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
-<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
-<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
-<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
-<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
-<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
-<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
-<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
-<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
-<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
-<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
-<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
-<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
-<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
-<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
-<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
-<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
-<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
-<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
-<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
-<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
-<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
-<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
-<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
-<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
-<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
-<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
-<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
-<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
-<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
-<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
-<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
-<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
-<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
-<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
-<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
-<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
-<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
-<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
-<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
-<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
-<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
-<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
-<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
-<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
-<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
-<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
-<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
-<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
-<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
-<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
-<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
-<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
-<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
-<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
-<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
-<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
-<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
-<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
-<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
-<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
-<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
-<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
-<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
-<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
-<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
-<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
-<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
-<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
-<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
-<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
-<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
-<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
-<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
-<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
-<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
-<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
-<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
-<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
-<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
-<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
-<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
-<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
-<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
-<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
-<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
-<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
-<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
-<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
-<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
-<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
-<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
-<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
-<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
-<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
-<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
-<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
-<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
-<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
-<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
-<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
-<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
-<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
-<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
-<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
-<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
-<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
-<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
-<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
-<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
-<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
-<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
-<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
-<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
-<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
-<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
-<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
-<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
-<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
-<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
-<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
-<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
-<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
-<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
-<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
-<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
-<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
-<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
-<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
-<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
-<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
-<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
-<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
-<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
-<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
-<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
-<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
-<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
-<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
-<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
-<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
-<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
-<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
-<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
-<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
-<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
-<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
-<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
-<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
-<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
-<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
-<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
-<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
-<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
-<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
-<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
-<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
-<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
-<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
-<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
-<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
-<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
-<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
-<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
-<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
-<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
-<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
-<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
-<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
-<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
-<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
-<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
-<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
-<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
-<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
-<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
-<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
-<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
-<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
-<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
-<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
-<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
-<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
-<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
-<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
-<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
-<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf
deleted file mode 100644
index 1f85312..0000000
Binary files a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.ttf and /dev/null differ
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff
deleted file mode 100644
index 9e61285..0000000
Binary files a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff and /dev/null differ
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2
deleted file mode 100644
index 64539b5..0000000
Binary files a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js
deleted file mode 100644
index c6d3692..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v3.3.2 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.2",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.2",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()
-}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.2",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js
deleted file mode 100644
index d7cfb70..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/d3.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null===n?0/0:+n}function e(n){return!isNaN(n)}function r(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function u(n){return n.length}function i(n){for(var t=1;n*t%1;)t*=10;return t}function o(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function a(){this._=Object.create(null)}function c(n){return(n+="")===la||n[0]===sa?sa+n:n}function l(n){return(n+="")[0]===sa?n.slice(1):n}function s(n){return c(n)in this._}function f(n){return(n=c(n))in this._&&delete this._[n]}function h(){var n=[];for(var t in this._)n.push(l(t));return n}function g(){var n=0;for(var t in this._)++n;return n}function p(){for(var n in this._)return!1;return!0}function v(){this._=Object.create(null)}function d(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function m(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=fa.length;r>e;++e){var u=fa[e]+t;if(u in n)return u}}function y(){}function x(){}function M(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new a;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function _(){Bo.event.preventDefault()}function b(){for(var n,t=Bo.event;n=t.sourceEvent;)t=n;return t}function w(n){for(var t=new x,e=0,r=arguments.length;++e<r;)t[arguments[e]]=M(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=Bo.event;u.target=n,Bo.event=u,t[u.type].apply(e,r)}finally{Bo.event=i}}},t}function S(n){return ga(n,ya),n}function k(n){return"function"==typeof n?n:function(){return pa(n,this)}}function E(n){return"function"==typeof n?n:function(){return va(n,this)}}function A(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=Bo.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function C(n){return n.trim().replace(/\s+/g," ")}function N(n){return new RegExp("(?:^|\\s+)"+Bo.requote(n)+"(?:\\s+|$)","g")}function z(n){return(n+"").trim().split(/^|\s+/)}function L(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=z(n).map(T);var u=n.length;return"function"==typeof t?r:e}function T(n){var t=N(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",C(u+" "+n))):e.setAttribute("class",C(u.replace(t," ")))}}function q(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function R(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function D(n){return"function"==typeof n?n:(n=Bo.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function P(n){return{__data__:n}}function U(n){return function(){return ma(this,n)}}function j(t){return arguments.length||(t=n),function(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}}function F(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function H(n){return ga(n,Ma),n}function O(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function Y(){var n=this.__transition__;n&&++n.active}function I(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,Jo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+Bo.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=Z;a>0&&(n=n.slice(0,a));var l=ba.get(n);return l&&(n=l,c=V),a?t?u:r:t?y:i}function Z(n,t){return function(e){var r=Bo.event;Bo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Bo.event=r}}}function V(n,t){var e=Z(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function X(){var n=".dragsuppress-"+ ++Sa,t="click"+n,e=Bo.select(Qo).on("touchmove"+n,_).on("dragstart"+n,_).on("selectstart"+n,_);if(wa){var r=Ko.style,u=r[wa];r[wa]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),wa&&(r[wa]=u),i&&(e.on(t,function(){_(),o()},!0),setTimeout(o,0))}}function $(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>ka&&(Qo.scrollX||Qo.scrollY)){e=Bo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();ka=!(u.f||u.e),e.remove()}return ka?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function B(){return Bo.event.changedTouches[0].identifier}function W(){return Bo.event.target}function J(){return Qo}function G(n){return n>0?1:0>n?-1:0}function K(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function Q(n){return n>1?0:-1>n?Ea:Math.acos(n)}function nt(n){return n>1?Ca:-1>n?-Ca:Math.asin(n)}function tt(n){return((n=Math.exp(n))-1/n)/2}function et(n){return((n=Math.exp(n))+1/n)/2}function rt(n){return((n=Math.exp(2*n))-1)/(n+1)}function ut(n){return(n=Math.sin(n/2))*n}function it(){}function ot(n,t,e){return this instanceof ot?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ot?new ot(n.h,n.s,n.l):Mt(""+n,_t,ot):new ot(n,t,e)}function at(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new dt(u(n+120),u(n),u(n-120))}function ct(n,t,e){return this instanceof ct?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof ct?new ct(n.h,n.c,n.l):n instanceof st?ht(n.l,n.a,n.b):ht((n=bt((n=Bo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new ct(n,t,e)}function lt(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new st(e,Math.cos(n*=La)*t,Math.sin(n)*t)}function st(n,t,e){return this instanceof st?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof st?new st(n.l,n.a,n.b):n instanceof ct?lt(n.h,n.c,n.l):bt((n=dt(n)).r,n.g,n.b):new st(n,t,e)}function ft(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=gt(u)*Ya,r=gt(r)*Ia,i=gt(i)*Za,new dt(vt(3.2404542*u-1.5371385*r-.4985314*i),vt(-.969266*u+1.8760108*r+.041556*i),vt(.0556434*u-.2040259*r+1.0572252*i))}function ht(n,t,e){return n>0?new ct(Math.atan2(e,t)*Ta,Math.sqrt(t*t+e*e),n):new ct(0/0,0/0,n)}function gt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function pt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function vt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function dt(n,t,e){return this instanceof dt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof dt?new dt(n.r,n.g,n.b):Mt(""+n,dt,at):new dt(n,t,e)}function mt(n){return new dt(n>>16,255&n>>8,255&n)}function yt(n){return mt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function Mt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(St(u[0]),St(u[1]),St(u[2]))}return(i=$a.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new ot(r,u,c)}function bt(n,t,e){n=wt(n),t=wt(t),e=wt(e);var r=pt((.4124564*n+.3575761*t+.1804375*e)/Ya),u=pt((.2126729*n+.7151522*t+.072175*e)/Ia),i=pt((.0193339*n+.119192*t+.9503041*e)/Za);return st(116*u-16,500*(r-u),200*(u-i))}function wt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function St(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function kt(n){return"function"==typeof n?n:function(){return n}}function Et(n){return n}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Ct(t,e,n,r)}}function Ct(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Bo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!Qo.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Bo.event;Bo.event=n;try{o.progress.call(i,c)}finally{Bo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Jo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Bo.rebind(i,o,"on"),null==r?i:i.get(Nt(r))}function Nt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function Lt(){var n=Tt(),t=qt()-n;t>24?(isFinite(t)&&(clearTimeout(Ga),Ga=setTimeout(Lt,t)),Ja=0):(Ja=1,Qa(Lt))}function Tt(){var n=Date.now();for(Ka=Ba;Ka;)n>=Ka.t&&(Ka.f=Ka.c(n-Ka.t)),Ka=Ka.n;return n}function qt(){for(var n,t=Ba,e=1/0;t;)t.f?t=n?n.n=t.n:Ba=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Wa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ca(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:Et;return function(n){var e=tc.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=ec.get(g)||Ut;var x=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=Bo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var M,_,b=n.lastIndexOf(".");if(0>b){var w=y?n.lastIndexOf("e"):-1;0>w?(M=n,_=""):(M=n.substring(0,w),_=n.substring(w))}else M=n.substring(0,b),_=t+n.substring(b+1);!l&&f&&(M=i(M,1/0));var S=v.length+M.length+_.length+(x?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return x&&(M=i(k+M,k.length?s-_.length:1/0)),u+=v,n=M+_,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(x?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new uc(e-1)),1),e}function i(n,e){return t(n=new uc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{uc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{uc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{uc=jt;var r=new jt;return r._=t,n(r,e)._}finally{uc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=oc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=C[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&uc!==jt,o=new(i?jt:uc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(0|r.Z/100),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in oc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.slice(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function l(n,t,r){return e(n,C.X.toString(),t,r)}function s(n,t,e){var r=x.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{uc=jt;var t=new uc;return t._=n,r(t)}finally{uc=Date}}var r=t(n);return e.parse=function(n){try{uc=jt;var t=r.parse(n);return t&&t._}finally{uc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var x=Bo.map(),M=It(v),_=Zt(v),b=It(d),w=Zt(d),S=It(m),k=Zt(m),E=It(y),A=Zt(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return Yt(n.getDate(),t,2)},e:function(n,t){return Yt(n.getDate(),t,2)},H:function(n,t){return Yt(n.getHours(),t,2)},I:function(n,t){return Yt(n.getHours()%12||12,t,2)},j:function(n,t){return Yt(1+rc.dayOfYear(n),t,3)},L:function(n,t){return Yt(n.getMilliseconds(),t,3)},m:function(n,t){return Yt(n.getMonth()+1,t,2)},M:function(n,t){return Yt(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return Yt(n.getSeconds(),t,2)},U:function(n,t){return Yt(rc.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Yt(rc.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return Yt(n.getFullYear()%100,t,2)},Y:function(n,t){return Yt(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function Yt(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function It(n){return new RegExp("^(?:"+n.map(Bo.requote).join("|")+")","i")}function Zt(n){for(var t=new a,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){ac.lastIndex=0;var r=ac.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=0|ca(t)/60,u=ca(t)%60;return e+Yt(r,"0",2)+Yt(u,"0",2)}function oe(n,t,e){cc.lastIndex=0;var r=cc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&hc.hasOwnProperty(n.type)&&hc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=La,t=t*La/2+Ea/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);pc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;vc.point=function(o,a){vc.point=n,r=(t=o)*La,u=Math.cos(a=(e=a)*La/2+Ea/4),i=Math.sin(a)},vc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function xe(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Me(n){return[Math.atan2(n[1],n[0]),nt(n[2])]}function _e(n,t){return ca(n[0]-t[0])<Na&&ca(n[1]-t[1])<Na}function be(n,t){n*=La;var e=Math.cos(t*=La);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++dc,yc+=(n-yc)/dc,xc+=(t-xc)/dc,Mc+=(e-Mc)/dc}function Se(){function n(n,u){n*=La;var i=Math.cos(u*=La),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);mc+=l,_c+=l*(t+(t=o)),bc+=l*(e+(e=a)),wc+=l*(r+(r=c)),we(t,e,r)}var t,e,r;Ac.point=function(u,i){u*=La;var o=Math.cos(i*=La);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),Ac.point=n,we(t,e,r)}}function ke(){Ac.point=be}function Ee(){function n(n,t){n*=La;var e=Math.cos(t*=La),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-Q(g)/h,v=Math.atan2(h,g);Sc+=p*l,kc+=p*s,Ec+=p*f,mc+=v,_c+=v*(r+(r=o)),bc+=v*(u+(u=a)),wc+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;Ac.point=function(o,a){t=o,e=a,Ac.point=n,o*=La;var c=Math.cos(a*=La);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},Ac.lineEnd=function(){n(t,e),Ac.lineEnd=ke,Ac.point=be}}function Ae(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(_e(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new ze(e,n,null,!0),l=new ze(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new ze(r,n,null,!1),l=new ze(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),Ne(i),Ne(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function Ne(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function ze(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(_||(i.polygonStart(),_=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=Bo.merge(g);var n=je(m,p);g.length?(_||(i.polygonStart(),_=!0),Ce(g,Re,n,e,i)):n&&(_||(i.polygonStart(),_=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=qe(),M=t(x),_=!1;return y}}function Te(n){return n.length>1}function qe(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:y,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Re(n,t){return((n=n.x)[0]<0?n[1]-Ca-Na:Ca-n[1])-((t=t.x)[0]<0?t[1]-Ca-Na:Ca-t[1])}function De(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?Ea:-Ea,c=ca(i-e);ca(c-Ea)<Na?(n.point(e,r=(r+o)/2>0?Ca:-Ca),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=Ea&&(ca(e-u)<Na&&(e-=u*Na),ca(i-a)<Na&&(i-=a*Na),r=Pe(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Pe(n,t,e,r){var u,i,o=Math.sin(n-e);return ca(o)>Na?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function Ue(n,t,e,r){var u;if(null==n)u=e*Ca,r.point(-Ea,u),r.point(0,u),r.point(Ea,u),r.point(Ea,0),r.point(Ea,-u),r.point(0,-u),r.point(-Ea,-u),r.point(-Ea,0),r.point(-Ea,u);else if(ca(n[0]-t[0])>Na){var i=n[0]<t[0]?Ea:-Ea;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function je(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;pc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+Ea/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+Ea/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>Ea,k=p*x;if(pc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*Aa:_,S^h>=e^m>=e){var E=de(pe(f),pe(n));xe(E);var A=de(u,E);xe(A);var C=(S^_>=0?-1:1)*nt(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-Na>i||Na>i&&0>pc)^1&o}function Fe(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?Ea:-Ea),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(_e(e,g)||_e(p,g))&&(p[0]+=Na,p[1]+=Na,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&_e(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),x=m*m-y*(ve(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=ye(d,(-m-M)/y);if(me(_,p),_=Me(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=ca(A-Ea)<Na,N=C||Na>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(ca(_[0]-w)<Na?k:E):k<=_[1]&&_[1]<=E:A>Ea^(w<=_[0]&&_[0]<=S)){var z=ye(d,(-m+M)/y);return me(z,p),[_,Me(z)]}}}function u(t,e){var r=o?n:Ea-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ca(i)>Na,c=gr(n,6*La);return Le(t,e,c,o?[0,-n]:[-Ea,n-Ea])}function He(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Oe(n,t,e,r){function u(r,u){return ca(r[0]-n)<Na?u>0?0:3:ca(r[0]-e)<Na?u>0?2:1:ca(r[1]-t)<Na?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&K(l,i,n)>0&&++t:i[1]<=r&&K(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Nc,Math.min(Nc,n)),t=Math.max(-Nc,Math.min(Nc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=qe(),C=He(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Bo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return N}}function Ye(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ie(n){var t=0,e=Ea/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*Ea/180,e=n[1]*Ea/180):[180*(t/Ea),180*(e/Ea)]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,nt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Lc+=u*n-r*t,r=n,u=t}var t,e,r,u;Pc.point=function(i,o){Pc.point=n,t=r=i,e=u=o},Pc.lineEnd=function(){n(t,e)}}function Xe(n,t){Tc>n&&(Tc=n),n>Rc&&(Rc=n),qc>t&&(qc=t),t>Dc&&(Dc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){yc+=n,xc+=t,++Mc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);_c+=o*(t+n)/2,bc+=o*(e+r)/2,wc+=o,We(t=n,e=r)}var t,e;jc.point=function(r,u){jc.point=n,We(t=r,e=u)}}function Ge(){jc.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);_c+=o*(r+n)/2,bc+=o*(u+t)/2,wc+=o,o=u*n-r*t,Sc+=o*(r+n),kc+=o*(u+t),Ec+=3*o,We(r=n,u=t)}var t,e,r,u;jc.point=function(i,o){jc.point=n,We(t=r=i,e=u=o)},jc.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,Aa)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:y};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function s(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=l+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=ca(ca(w)-1)<Na||ca(r-h)<Na?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],z=C-t,L=N-e,T=x*z-y*L;
-(T*T/M>i||ca((y*z+x*L)/M-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*La),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Ta,e*Ta])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*La,n[1]*La),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Ta,n[1]*Ta]}function r(){a=Ye(o=lr(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Cc,_=Et,b=null,w=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(M(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Cc):Fe((b=+n)*La),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Oe(n[0][0],n[0][1],n[1][0],n[1][1]):Et,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*La,d=n[1]%360*La,r()):[v*Ta,d*Ta]},t.rotate=function(n){return arguments.length?(m=n[0]%360*La,y=n[1]%360*La,x=n.length>2?n[2]%360*La:0,r()):[m*Ta,y*Ta,x*Ta]},Bo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*La,e*La)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>Ea?n-Aa:-Ea>n?n+Aa:n,t]}function lr(n,t,e){return n?t||e?Ye(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>Ea?t-Aa:-Ea>t?t+Aa:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),nt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),nt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*Aa)):(u=n+o*Aa,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=Me([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,xe(e);var r=Q(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Na)%(2*Math.PI)}function vr(n,t,e){var r=Bo.range(n,t-Na,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=Bo.range(n,t-Na,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function xr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(ut(r-t)+u*o*ut(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Ta,Math.atan2(o,Math.sqrt(r*r+u*u))*Ta]}:function(){return[n*Ta,t*Ta]};return p.distance=h,p}function Mr(){function n(n,u){var i=Math.sin(u*=La),o=Math.cos(u),a=ca((n*=La)-t),c=Math.cos(a);Fc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Hc.point=function(u,i){t=u*La,e=Math.sin(i*=La),r=Math.cos(i),Hc.point=n},Hc.lineEnd=function(){Hc.point=Hc.lineEnd=y}}function _r(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function br(n,t){function e(n,t){o>0?-Ca+Na>t&&(t=-Ca+Na):t>Ca-Na&&(t=Ca-Na);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(Ea/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=G(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ca]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ca(u)<Na?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-G(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(Ea/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=Ea*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(Ea/4+t/2)),-n]}function Ar(n){return n[0]}function Cr(n){return n[1]}function Nr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&K(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function Lr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Tr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function qr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=Kc.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Wc.remove(n),Kc.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ca(e-c.circle.x)<Na&&ca(r-c.circle.cy)<Na;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ca(e-l.circle.x)<Na&&ca(r-l.circle.cy)<Na;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Wc._;a;)if(r=Fr(a,o)-i,r>Na)a=a.L;else{if(u=i-Hr(a,o),!(u>Na)){r>-Na?(t=a.P,e=a):u>-Na?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Wc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Wc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),Vr(e),void 0;if(!e)return c.edge=Jr(t.site,c.site),void 0;Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+s,y:(h*x-v*y)/m+f};Kr(e.edge,l,p,M),c.edge=Jr(l,n,null,M),e.edge=Jr(n,p,null,M),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Yr(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Bc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ca(r-t)>Na||ca(u-e)>Na)&&(a.splice(o,0,new Qr(Gr(i.site,s,ca(r-f)<Na&&p-u>Na?{x:f,y:ca(t-f)<Na?e:p}:ca(u-p)<Na&&h-r>Na?{x:ca(e-p)<Na?t:h,y:p}:ca(r-h)<Na&&u-g>Na?{x:h,y:ca(t-h)<Na?e:g}:ca(u-g)<Na&&r-f>Na?{x:ca(e-g)<Na?t:f,y:g}:null),i.site,null)),++c)}function Ir(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=Qc.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=Gc._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}Gc.insert(y,m),y||(Jc=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(Jc=t.N),Gc.remove(t),Qc.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=$c,r=He(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ca(t.a.x-t.b.x)<Na&&ca(t.a.y-t.b.y)<Na)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return $c.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Bc[n.i].edges.push(new Qr(u,n,t)),Bc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,$c.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for($c=[],Bc=new Array(n.length),Wc=new nu,Gc=new nu;;)if(u=Jc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Bc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Yr(t));var o={cells:Bc,edges:$c};return Wc=Gc=$c=Bc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t){n=Bo.rgb(n),t=Bo.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function gu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=du(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function pu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function vu(n,t){var e,r,u,i=tl.lastIndex=el.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=tl.exec(n))&&(r=el.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:pu(e,r)})),i=el.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function du(n,t){for(var e,r=Bo.interpolators.length;--r>=0&&!(e=Bo.interpolators[r](n,t)););return e}function mu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(du(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function yu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function Mu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function bu(n){return n*n*n}function wu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Su(n){return function(t){return Math.pow(t,n)}}function ku(n){return 1-Math.cos(n*Ca)}function Eu(n){return Math.pow(2,10*(n-1))}function Au(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Aa*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Aa/t)}}function Nu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function zu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=Bo.hcl(n),t=Bo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return lt(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=Bo.hsl(n),t=Bo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return at(e+i*n,r+o*n,u+a*n)+""}}function qu(n,t){n=Bo.lab(n),t=Bo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ft(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Du(n){var t=[n.a,n.b],e=[n.c,n.d],r=Uu(t),u=Pu(t,e),i=Uu(ju(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Ta,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Ta:0}function Pu(n,t){return n[0]*t[0]+n[1]*t[1]}function Uu(n){var t=Math.sqrt(Pu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function ju(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Fu(n,t){var e,r=[],u=[],i=Bo.transform(n),o=Bo.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:pu(a[0],c[0])},{i:3,x:pu(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:pu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:pu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:pu(g[0],p[0])},{i:e-2,x:pu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Hu(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Zu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Iu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Zu(n,t){if(n===t)return n;for(var e=Iu(n),r=Iu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Vu(n){n.fixed|=2}function Xu(n){n.fixed&=-7}function $u(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Bu(n){n.fixed&=-5}function Wu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Wu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Ju(n,t){return Bo.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ei,n}function Gu(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Ku(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function Qu(n){return n.children}function ni(n){return n.value}function ti(n,t){return t.value-n.value}function ei(n){return Bo.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ri(n){return n.x}function ui(n){return n.y}function ii(n,t,e){n.y0=t,n.y=e}function oi(n){return Bo.range(n.length)}function ai(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function ci(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function li(n){return n.reduce(si,0)}function si(n,t){return n+t[1]}function fi(n,t){return hi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function hi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function gi(n){return[Bo.min(n),Bo.max(n)]}function pi(n,t){return n.value-t.value}function vi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function di(n,t){n._pack_next=t,t._pack_prev=n}function mi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function yi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],bi(r,u,i),t(i),vi(r,i),r._pack_prev=i,vi(i,u),u=r._pack_next,o=3;l>o;o++){bi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(mi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!mi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?di(r,u=a):di(r=c,u),o--):(vi(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,x=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(Mi)}}function xi(n){n._pack_next=n._pack_prev=n}function Mi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function bi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function wi(n,t){return n.parent==t.parent?1:2}function Si(n){var t=n.children;return t.length?t[0]:n.t}function ki(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ei(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ai(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function Ni(n){return 1+Bo.max(n,function(n){return n.y})}function zi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function qi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ri(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Di(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Pi(n){return n.rangeExtent?n.rangeExtent():Di(n.range())}function Ui(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function ji(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Fi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:gl}function Hi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=Bo.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Oi(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Hi:Ui,c=r?Ou:Hu;return o=u(n,t,c,e),a=u(t,n,c,du),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Ru)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Vi(n,t)},i.tickFormat=function(t,e){return Xi(n,t,e)},i.nice=function(t){return Ii(n,t),u()},i.copy=function(){return Oi(n,t,e,r)},u()}function Yi(n,t){return Bo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Ii(n,t){return ji(n,Fi(Zi(n,t)[2]))}function Zi(n,t){null==t&&(t=10);var e=Di(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Vi(n,t){return Bo.range.apply(Bo,Zi(n,t))}function Xi(n,t,e){var r=Zi(n,t);if(e){var u=tc.exec(e);if(u.shift(),"s"===u[8]){var i=Bo.formatPrefix(Math.max(ca(r[0]),ca(r[1])));return u[7]||(u[7]="."+$i(i.scale(r[2]))),u[8]="f",e=Bo.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Bi(u[8],r)),e=u.join("")}else e=",."+$i(r[2])+"f";return Bo.format(e)}function $i(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Bi(n,t){var e=$i(t[2]);return n in pl?Math.abs(e-$i(Math.max(ca(t[0]),ca(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Wi(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=ji(r.map(u),e?Math:dl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Di(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return vl;arguments.length<2?t=vl:"function"!=typeof t&&(t=Bo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Wi(n.copy(),t,e,r)},Yi(o,n)}function Ji(n,t,e){function r(t){return n(u(t))}var u=Gi(t),i=Gi(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Vi(e,n)},r.tickFormat=function(n,t){return Xi(e,n,t)},r.nice=function(n){return r.domain(Ii(e,n))},r.exponent=function(o){return arguments.length?(u=Gi(t=o),i=Gi(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Ji(n.copy(),t,e)},Yi(r,n)}function Gi(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Ki(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return Bo.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new a;for(var i,o=-1,c=r.length;++o<c;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=(l-c)/(Math.max(1,n.length-1)+a);return i=r(n.length<2?(c+l)/2:c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c)),g=f-s-(n.length-a)*h;return i=r(s+Math.round(g/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Di(t.a[0])},e.copy=function(){return Ki(n,t)},e.domain(n)}function Qi(r,u){function i(){var n=0,t=u.length;for(a=[];++n<t;)a[n-1]=Bo.quantile(r,n/t);return o}function o(n){return isNaN(n=+n)?void 0:u[Bo.bisect(a,n)]}var a;return o.domain=function(u){return arguments.length?(r=u.map(t).filter(e).sort(n),i()):r},o.range=function(n){return arguments.length?(u=n,i()):u},o.quantiles=function(){return a},o.invertExtent=function(n){return n=u.indexOf(n),0>n?[0/0,0/0]:[n>0?a[n-1]:r[0],n<a.length?a[n]:r[r.length-1]]},o.copy=function(){return Qi(r,u)},i()}function no(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return no(n,t,e)},u()}function to(n,t){function e(e){return e>=e?t[Bo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return to(n,t)},e}function eo(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Vi(n,t)},t.tickFormat=function(t,e){return Xi(n,t,e)},t.copy=function(){return eo(n)},t}function ro(n){return n.innerRadius}function uo(n){return n.outerRadius}function io(n){return n.startAngle}function oo(n){return n.endAngle}function ao(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=kt(e),p=kt(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Cr,u=Ae,i=co,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=wl.get(n)||co).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function co(n){return n.join("L")}function lo(n){return co(n)+"Z"}function so(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function fo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function ho(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function go(n,t){return n.length<4?co(n):n[1]+mo(n.slice(1,n.length-1),yo(n,t))}function po(n,t){return n.length<3?co(n):n[0]+mo((n.push(n[0]),n),yo([n[n.length-2]].concat(n,[n[1]]),t))}function vo(n,t){return n.length<3?co(n):n[0]+mo(n,yo(n,t))}function mo(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return co(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function yo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function xo(n){if(n.length<3)return co(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",wo(El,o),",",wo(El,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),So(c,o,a);return n.pop(),c.push("L",r),c.join("")}function Mo(n){if(n.length<4)return co(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(wo(El,i)+","+wo(El,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),So(e,i,o);return e.join("")}function _o(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[wo(El,o),",",wo(El,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),So(t,o,a);return t.join("")}function bo(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return xo(n)}function wo(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function So(n,t,e){n.push("C",wo(Sl,t),",",wo(Sl,e),",",wo(kl,t),",",wo(kl,e),",",wo(El,t),",",wo(El,e))}function ko(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Eo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=ko(u,i);++t<e;)r[t]=(o+(o=ko(u=i,i=n[t+1])))/2;return r[t]=o,r}function Ao(n){for(var t,e,r,u,i=[],o=Eo(n),a=-1,c=n.length-1;++a<c;)t=ko(n[a],n[a+1]),ca(t)<Na?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function Co(n){return n.length<3?co(n):n[0]+mo(n,Ao(n))}function No(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+_l,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function zo(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=kt(e),_=kt(u),b=e===r?function(){return g}:kt(r),w=u===i?function(){return p}:kt(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Cr,o=Ae,a=co,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=wl.get(n)||co).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Lo(n){return n.radius}function To(n){return[n.x,n.y]}function qo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+_l;return[e*Math.cos(r),e*Math.sin(r)]}}function Ro(){return 64}function Do(){return"circle"}function Po(n){var t=Math.sqrt(n/Ea);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Uo(n,t){return ga(n,Tl),n.id=t,n}function jo(n,t,e,r){var u=n.id;return F(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function Fo(n){return null==n&&(n=""),function(){this.textContent=n}}function Ho(n,t,e,r){var u=n.__transition__||(n.__transition__={active:0,count:0}),i=u[e];if(!i){var o=r.time;i=u[e]={tween:new a,time:o,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,Bo.timer(function(r){function a(r){return u.active>e?l():(u.active=e,i.event&&i.event.start.call(n,s,t),i.tween.forEach(function(e,r){(r=r.call(n,s,t))&&v.push(r)
-}),Bo.timer(function(){return p.c=c(r||1)?Ae:c,1},0,o),void 0)}function c(r){if(u.active!==e)return l();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a);return o>=1?(i.event&&i.event.end.call(n,s,t),l()):void 0}function l(){return--u.count?delete u[e]:delete n.__transition__,1}var s=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ka,v=[];return p.t=h+o,r>=h?a(r-h):(p.c=a,void 0)},0,o)}}function Oo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Yo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Io(n){return n.toISOString()}function Zo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Bo.bisect(Ol,u);return i==Ol.length?[t.year,Zi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Ol[i-1]<Ol[i]/u?i-1:i]:[Zl,Zi(n,e)[2]]}return r.invert=function(t){return Vo(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Vo)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Vo(+e+1),t).length}var i=r.domain(),o=Di(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(ji(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Vo(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Vo(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Di(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Vo(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Zo(n.copy(),t,e)},Yi(r,n)}function Vo(n){return new Date(n)}function Xo(n){return JSON.parse(n.responseText)}function $o(n){var t=Go.createRange();return t.selectNode(Go.body),t.createContextualFragment(n.responseText)}var Bo={version:"3.4.13"};Date.now||(Date.now=function(){return+new Date});var Wo=[].slice,Jo=function(n){return Wo.call(n)},Go=document,Ko=Go.documentElement,Qo=window;try{Jo(Ko.childNodes)[0].nodeType}catch(na){Jo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Go.createElement("div").style.setProperty("opacity",0,"")}catch(ta){var ea=Qo.Element.prototype,ra=ea.setAttribute,ua=ea.setAttributeNS,ia=Qo.CSSStyleDeclaration.prototype,oa=ia.setProperty;ea.setAttribute=function(n,t){ra.call(this,n,t+"")},ea.setAttributeNS=function(n,t,e){ua.call(this,n,t,e+"")},ia.setProperty=function(n,t,e){oa.call(this,n,t+"",e)}}Bo.ascending=n,Bo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Bo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},Bo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},Bo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Bo.sum=function(n,t){var r,u=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)e(r=+n[o])&&(u+=r);else for(;++o<i;)e(r=+t.call(n,n[o],o))&&(u+=r);return u},Bo.mean=function(n,r){var u,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)e(u=t(n[a]))?i+=u:--c;else for(;++a<o;)e(u=t(r.call(n,n[a],a)))?i+=u:--c;return c?i/c:void 0},Bo.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},Bo.median=function(r,u){var i,o=[],a=r.length,c=-1;if(1===arguments.length)for(;++c<a;)e(i=t(r[c]))&&o.push(i);else for(;++c<a;)e(i=t(u.call(r,r[c],c)))&&o.push(i);return o.length?Bo.quantile(o.sort(n),.5):void 0};var aa=r(n);Bo.bisectLeft=aa.left,Bo.bisect=Bo.bisectRight=aa.right,Bo.bisector=function(t){return r(1===t.length?function(e,r){return n(t(e),r)}:t)},Bo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Bo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Bo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Bo.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=Bo.min(arguments,u),e=new Array(t);++n<t;)for(var r,i=-1,o=e[n]=new Array(r);++i<r;)o[i]=arguments[i][n];return e},Bo.transpose=function(n){return Bo.zip.apply(Bo,n)},Bo.keys=function(n){var t=[];for(var e in n)t.push(e);return t},Bo.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},Bo.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},Bo.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ca=Math.abs;Bo.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/e)throw new Error("infinite range");var r,u=[],o=i(ca(e)),a=-1;if(n*=o,t*=o,e*=o,0>e)for(;(r=n+e*++a)>t;)u.push(r/o);else for(;(r=n+e*++a)<t;)u.push(r/o);return u},Bo.map=function(n){var t=new a;if(n instanceof a)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t};var la="__proto__",sa="\x00";o(a,{has:s,get:function(n){return this._[c(n)]},set:function(n,t){return this._[c(n)]=t},remove:f,keys:h,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:l(t),value:this._[t]});return n},size:g,empty:p,forEach:function(n){for(var t in this._)n.call(this,l(t),this._[t])}}),Bo.nest=function(){function n(t,o,c){if(c>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var l,s,f,h,g=-1,p=o.length,v=i[c++],d=new a;++g<p;)(h=d.get(l=v(s=o[g])))?h.push(s):d.set(l,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,c))}):(s={},f=function(e,r){s[e]=n(t,r,c)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(Bo.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},Bo.set=function(n){var t=new v;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},o(v,{has:s,add:function(n){return this._[c(n+="")]=!0,n},remove:f,values:h,size:g,empty:p,forEach:function(n){for(var t in this._)n.call(this,l(t))}}),Bo.behavior={},Bo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=d(n,t,t[e]);return n};var fa=["webkit","ms","moz","Moz","o","O"];Bo.dispatch=function(){for(var n=new x,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=M(n);return n},x.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Bo.event=null,Bo.requote=function(n){return n.replace(ha,"\\$&")};var ha=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ga={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},pa=function(n,t){return t.querySelector(n)},va=function(n,t){return t.querySelectorAll(n)},da=Ko.matches||Ko[m(Ko,"matchesSelector")],ma=function(n,t){return da.call(n,t)};"function"==typeof Sizzle&&(pa=function(n,t){return Sizzle(n,t)[0]||null},va=Sizzle,ma=Sizzle.matchesSelector),Bo.selection=function(){return _a};var ya=Bo.selection.prototype=[];ya.select=function(n){var t,e,r,u,i=[];n=k(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return S(i)},ya.selectAll=function(n){var t,e,r=[];n=E(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Jo(n.call(e,e.__data__,a,u))),t.parentNode=e);return S(r)};var xa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Bo.ns={prefix:xa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),xa.hasOwnProperty(e)?{space:xa[e],local:n}:n}},ya.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Bo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(A(t,n[t]));return this}return this.each(A(n,t))},ya.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=z(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!N(n[u]).test(t))return!1;return!0}for(t in n)this.each(L(t,n[t]));return this}return this.each(L(n,t))},ya.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(q(e,n[e],t));return this}if(2>r)return Qo.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(q(n,t,e))},ya.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},ya.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},ya.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},ya.append=function(n){return n=D(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},ya.insert=function(n,t){return n=D(n),t=k(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},ya.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},ya.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new a,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=P(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=P(i);for(;f>r;++r)p[r]=P(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),l.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var c=H([]),l=S([]),s=S([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return l.enter=function(){return c},l.exit=function(){return s},l},ya.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},ya.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=U(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return S(u)},ya.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ya.sort=function(n){n=j.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},ya.each=function(n){return F(this,function(t,e,r){n.call(t,t.__data__,e,r)})},ya.call=function(n){var t=Jo(arguments);return n.apply(t[0]=this,t),this},ya.empty=function(){return!this.node()},ya.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ya.size=function(){var n=0;return F(this,function(){++n}),n};var Ma=[];Bo.selection.enter=H,Bo.selection.enter.prototype=Ma,Ma.append=ya.append,Ma.empty=ya.empty,Ma.node=ya.node,Ma.call=ya.call,Ma.size=ya.size,Ma.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return S(o)},Ma.insert=function(n,t){return arguments.length<2&&(t=O(this)),ya.insert.call(this,n,t)},ya.transition=function(){for(var n,t,e=Cl||++ql,r=[],u=Nl||{time:Date.now(),ease:wu,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,l=a.length;++c<l;)(t=a[c])&&Ho(t,c,e,u),n.push(t)}return Uo(r,e)},ya.interrupt=function(){return this.each(Y)},Bo.select=function(n){var t=["string"==typeof n?pa(n,Go):n];return t.parentNode=Ko,S([t])},Bo.selectAll=function(n){var t=Jo("string"==typeof n?va(n,Go):n);return t.parentNode=Ko,S([t])};var _a=Bo.select(Ko);ya.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(I(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(I(n,t,e))};var ba=Bo.map({mouseenter:"mouseover",mouseleave:"mouseout"});ba.forEach(function(n){"on"+n in Go&&ba.remove(n)});var wa="onselectstart"in Go?null:m(Ko.style,"userSelect"),Sa=0;Bo.mouse=function(n){return $(n,b())};var ka=/WebKit/.test(Qo.navigator.userAgent)?-1:0;Bo.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=b().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return $(n,r)},Bo.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",i)}function t(n,t,u,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-x[0],e=r[1]-x[1],p|=n|e,x=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&Bo.event.target===f),g({type:"dragend"}))}var l,s=this,f=Bo.event.target,h=s.parentNode,g=e.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=Bo.select(u()).on(i+d,a).on(o+d,c),y=X(),x=t(h,v);r?(l=r.apply(s,arguments),l=[l.x-x[0],l.y-x[1]]):l=[0,0],g({type:"dragstart"})}}var e=w(n,"drag","dragstart","dragend"),r=null,u=t(y,Bo.mouse,J,"mousemove","mouseup"),i=t(B,Bo.touch,W,"touchmove","touchend");return n.origin=function(t){return arguments.length?(r=t,n):r},Bo.rebind(n,e,"on")},Bo.touches=function(n,t){return arguments.length<2&&(t=b().touches),t?Jo(t).map(function(t){var e=$(n,t);return e.identifier=t.identifier,e}):[]};var Ea=Math.PI,Aa=2*Ea,Ca=Ea/2,Na=1e-6,za=Na*Na,La=Ea/180,Ta=180/Ea,qa=Math.SQRT2,Ra=2,Da=4;Bo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=et(v),o=i/(Ra*h)*(e*rt(qa*t+v)-tt(v));return[r+o*l,u+o*s,i*e/et(qa*t+v)]}return[r+n*l,u+n*s,i*Math.exp(qa*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Da*f)/(2*i*Ra*h),p=(c*c-i*i-Da*f)/(2*c*Ra*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/qa;return e.duration=1e3*y,e},Bo.behavior.zoom=function(){function n(n){n.on(A,l).on(ja+".zoom",f).on("dblclick.zoom",h).on(z,s)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){x&&x.domain(y.range().map(function(n){return(n-S.x)/S.k}).map(y.invert)),b&&b.domain(M.range().map(function(n){return(n-S.y)/S.k}).map(M.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function l(){function n(){s=1,u(Bo.mouse(r),h),a(l)}function e(){f.on(C,null).on(N,null),g(s&&Bo.event.target===i),c(l)}var r=this,i=Bo.event.target,l=L.of(r,arguments),s=0,f=Bo.select(Qo).on(C,n).on(N,e),h=t(Bo.mouse(r)),g=X();Y.call(r),o(l)}function s(){function n(){var n=Bo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){var t=Bo.event.target;Bo.select(t).on(x,i).on(M,f),b.push(t);for(var e=Bo.event.changedTouches,o=0,c=e.length;c>o;++o)v[e[o].identifier]=null;var l=n(),s=Date.now();if(1===l.length){if(500>s-m){var h=l[0],g=v[h.identifier];r(2*S.k),u(h,g),_(),a(p)}m=s}else if(l.length>1){var h=l[0],y=l[1],w=h[0]-y[0],k=h[1]-y[1];d=w*w+k*k}}function i(){for(var n,t,e,i,o=Bo.touches(g),c=0,l=o.length;l>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=d&&Math.sqrt(s/d);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}m=null,u(n,t),a(p)}function f(){if(Bo.event.touches.length){for(var t=Bo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}Bo.selectAll(b).on(y,null),w.on(A,l).on(z,s),k(),c(p)}var h,g=this,p=L.of(g,arguments),v={},d=0,y=".zoom-"+Bo.event.changedTouches[0].identifier,x="touchmove"+y,M="touchend"+y,b=[],w=Bo.select(g),k=X();Y.call(g),e(),o(p),w.on(A,null).on(z,e)}function f(){var n=L.of(this,arguments);d?clearTimeout(d):(g=t(p=v||Bo.mouse(this)),Y.call(this),o(n)),d=setTimeout(function(){d=null,c(n)},50),_(),r(Math.pow(2,.002*Pa())*S.k),u(p,g),a(n)}function h(){var n=L.of(this,arguments),e=Bo.mouse(this),i=t(e),l=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Bo.event.shiftKey?Math.ceil(l)-1:Math.floor(l)+1)),u(e,i),a(n),c(n)}var g,p,v,d,m,y,x,M,b,S={x:0,y:0,k:1},k=[960,500],E=Ua,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",z="touchstart.zoom",L=w(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=L.of(this,arguments),t=S;Cl?Bo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Bo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Ua:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(x=t,y=t.copy(),S={x:0,y:0,k:1},n):x},n.y=function(t){return arguments.length?(b=t,M=t.copy(),S={x:0,y:0,k:1},n):b},Bo.rebind(n,L,"on")};var Pa,Ua=[0,1/0],ja="onwheel"in Go?(Pa=function(){return-Bo.event.deltaY*(Bo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Go?(Pa=function(){return Bo.event.wheelDelta},"mousewheel"):(Pa=function(){return-Bo.event.detail},"MozMousePixelScroll");Bo.color=it,it.prototype.toString=function(){return this.rgb()+""},Bo.hsl=ot;var Fa=ot.prototype=new it;Fa.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ot(this.h,this.s,this.l/n)},Fa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ot(this.h,this.s,n*this.l)},Fa.rgb=function(){return at(this.h,this.s,this.l)},Bo.hcl=ct;var Ha=ct.prototype=new it;Ha.brighter=function(n){return new ct(this.h,this.c,Math.min(100,this.l+Oa*(arguments.length?n:1)))},Ha.darker=function(n){return new ct(this.h,this.c,Math.max(0,this.l-Oa*(arguments.length?n:1)))},Ha.rgb=function(){return lt(this.h,this.c,this.l).rgb()},Bo.lab=st;var Oa=18,Ya=.95047,Ia=1,Za=1.08883,Va=st.prototype=new it;Va.brighter=function(n){return new st(Math.min(100,this.l+Oa*(arguments.length?n:1)),this.a,this.b)},Va.darker=function(n){return new st(Math.max(0,this.l-Oa*(arguments.length?n:1)),this.a,this.b)},Va.rgb=function(){return ft(this.l,this.a,this.b)},Bo.rgb=dt;var Xa=dt.prototype=new it;Xa.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new dt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new dt(u,u,u)},Xa.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new dt(n*this.r,n*this.g,n*this.b)},Xa.hsl=function(){return _t(this.r,this.g,this.b)},Xa.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var $a=Bo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});$a.forEach(function(n,t){$a.set(n,mt(t))}),Bo.functor=kt,Bo.xhr=At(Et),Bo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Ct(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new v,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Bo.csv=Bo.dsv(",","text/csv"),Bo.tsv=Bo.dsv("	","text/tab-separated-values");var Ba,Wa,Ja,Ga,Ka,Qa=Qo[m(Qo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Bo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Wa?Wa.n=i:Ba=i,Wa=i,Ja||(Ga=clearTimeout(Ga),Ja=1,Qa(Lt))},Bo.timer.flush=function(){Tt(),qt()},Bo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var nc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);Bo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Bo.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),nc[8+e/3]};var tc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ec=Bo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Bo.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),rc=Bo.time={},uc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){ic.setUTCDate.apply(this._,arguments)},setDay:function(){ic.setUTCDay.apply(this._,arguments)},setFullYear:function(){ic.setUTCFullYear.apply(this._,arguments)},setHours:function(){ic.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){ic.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){ic.setUTCMinutes.apply(this._,arguments)},setMonth:function(){ic.setUTCMonth.apply(this._,arguments)},setSeconds:function(){ic.setUTCSeconds.apply(this._,arguments)},setTime:function(){ic.setTime.apply(this._,arguments)}};var ic=Date.prototype;rc.year=Ft(function(n){return n=rc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),rc.years=rc.year.range,rc.years.utc=rc.year.utc.range,rc.day=Ft(function(n){var t=new uc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),rc.days=rc.day.range,rc.days.utc=rc.day.utc.range,rc.dayOfYear=function(n){var t=rc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=rc[n]=Ft(function(n){return(n=rc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});rc[n+"s"]=e.range,rc[n+"s"].utc=e.utc.range,rc[n+"OfYear"]=function(n){var e=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(e+t)%7)/7)}}),rc.week=rc.sunday,rc.weeks=rc.sunday.range,rc.weeks.utc=rc.sunday.utc.range,rc.weekOfYear=rc.sundayOfYear;var oc={"-":"",_:" ",0:"0"},ac=/^\s*\d+/,cc=/^%/;Bo.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var lc=Bo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Bo.format=lc.numberFormat,Bo.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,sc),le(sc.s,this.s,this),this.s?this.t+=sc.t:this.s=sc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sc=new ce;Bo.geo.stream=function(n,t){n&&fc.hasOwnProperty(n.type)?fc[n.type](n,t):se(n,t)};var fc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},hc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};Bo.geo.area=function(n){return gc=0,Bo.geo.stream(n,vc),gc};var gc,pc=new ce,vc={sphere:function(){gc+=4*Ea},point:y,lineStart:y,lineEnd:y,polygonStart:function(){pc.reset(),vc.lineStart=ge},polygonEnd:function(){var n=2*pc;gc+=0>n?4*Ea+n:n,vc.lineStart=vc.lineEnd=vc.point=y}};Bo.geo.bounds=function(){function n(n,t){x.push(M=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*La,e*La]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);xe(o),o=Me(o);var c=t-p,l=c>0?1:-1,v=o[0]*Ta*l,d=ca(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Ta;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Ta;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=s,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ca(r)>180?r+(r>0?360:-360):r}else v=n,d=e;vc.point(n,e),t(n,e)}function i(){vc.lineStart()}function o(){u(v,d),vc.lineEnd(),ca(y)>Na&&(s=-(h=180)),M[0]=s,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,vc.polygonStart()},polygonEnd:function(){vc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>pc?(s=-(h=180),f=-(g=90)):y>Na?g=90:-Na>y&&(f=-90),M[0]=s,M[1]=h}};return function(n){g=h=-(s=f=1/0),x=[],Bo.geo.stream(n,_);
-var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return x=M=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),Bo.geo.centroid=function(n){dc=mc=yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,Ac);var t=Sc,e=kc,r=Ec,u=t*t+e*e+r*r;return za>u&&(t=_c,e=bc,r=wc,Na>mc&&(t=yc,e=xc,r=Mc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Ta,nt(r/Math.sqrt(u))*Ta]};var dc,mc,yc,xc,Mc,_c,bc,wc,Sc,kc,Ec,Ac={sphere:y,point:be,lineStart:Se,lineEnd:ke,polygonStart:function(){Ac.lineStart=Ee},polygonEnd:function(){Ac.lineStart=Se}},Cc=Le(Ae,De,Ue,[-Ea,-Ea/2]),Nc=1e9;Bo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Oe(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Bo.geo.conicEqualArea=function(){return Ie(Ze)}).raw=Ze,Bo.geo.albers=function(){return Bo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Bo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Bo.geo.albers(),o=Bo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Bo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Na,f+.12*l+Na],[s-.214*l-Na,f+.234*l-Na]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Na,f+.166*l+Na],[s-.115*l-Na,f+.234*l-Na]]).stream(c).point,n},n.scale(1070)};var zc,Lc,Tc,qc,Rc,Dc,Pc={point:y,lineStart:y,lineEnd:y,polygonStart:function(){Lc=0,Pc.lineStart=Ve},polygonEnd:function(){Pc.lineStart=Pc.lineEnd=Pc.point=y,zc+=ca(Lc/2)}},Uc={point:Xe,lineStart:y,lineEnd:y,polygonStart:y,polygonEnd:y},jc={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){jc.lineStart=Ke},polygonEnd:function(){jc.point=We,jc.lineStart=Je,jc.lineEnd=Ge}};Bo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Bo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return zc=0,Bo.geo.stream(n,u(Pc)),zc},n.centroid=function(n){return yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,u(jc)),Ec?[Sc/Ec,kc/Ec]:wc?[_c/wc,bc/wc]:Mc?[yc/Mc,xc/Mc]:[0/0,0/0]},n.bounds=function(n){return Rc=Dc=-(Tc=qc=1/0),Bo.geo.stream(n,u(Uc)),[[Tc,qc],[Rc,Dc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):Et,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Bo.geo.albersUsa()).context(null)},Bo.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Bo.geo.projection=ur,Bo.geo.projectionMutator=ir,(Bo.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,Bo.geo.rotation=function(n){function t(t){return t=n(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t}return n=lr(n[0]%360*La,n[1]*La,n.length>2?n[2]*La:0),t.invert=function(t){return t=n.invert(t[0]*La,t[1]*La),t[0]*=Ta,t[1]*=Ta,t},t},cr.invert=ar,Bo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*La,-n[1]*La,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Ta,n[1]*=Ta}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*La,u*La),n):t},n.precision=function(r){return arguments.length?(e=gr(t*La,(u=+r)*La),n):u},n.angle(90)},Bo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*La,u=n[1]*La,i=t[1]*La,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},Bo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Bo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Bo.range(Math.ceil(l/m)*m,c,m).map(g)).concat(Bo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ca(n%d)>Na}).map(s)).concat(Bo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ca(n%m)>Na}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Na],[180,90-Na]]).minorExtent([[-180,-80-Na],[180,80+Na]])},Bo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return Bo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Bo.geo.interpolate=function(n,t){return xr(n[0]*La,n[1]*La,t[0]*La,t[1]*La)},Bo.geo.length=function(n){return Fc=0,Bo.geo.stream(n,Hc),Fc};var Fc,Hc={sphere:y,point:y,lineStart:Mr,lineEnd:y,polygonStart:y,polygonEnd:y},Oc=_r(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Bo.geo.azimuthalEqualArea=function(){return ur(Oc)}).raw=Oc;var Yc=_r(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},Et);(Bo.geo.azimuthalEquidistant=function(){return ur(Yc)}).raw=Yc,(Bo.geo.conicConformal=function(){return Ie(br)}).raw=br,(Bo.geo.conicEquidistant=function(){return Ie(wr)}).raw=wr;var Ic=_r(function(n){return 1/n},Math.atan);(Bo.geo.gnomonic=function(){return ur(Ic)}).raw=Ic,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ca]},(Bo.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Zc=_r(function(){return 1},Math.asin);(Bo.geo.orthographic=function(){return ur(Zc)}).raw=Zc;var Vc=_r(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Bo.geo.stereographic=function(){return ur(Vc)}).raw=Vc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ca]},(Bo.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,Bo.geom={},Bo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=kt(e),i=kt(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Nr(a),s=Nr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Cr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},Bo.geom.polygon=function(n){return ga(n,Xc),n};var Xc=Bo.geom.polygon.prototype=[];Xc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Xc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Xc.clip=function(n){for(var t,e,r,u,i,o,a=qr(n),c=-1,l=this.length-qr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Lr(o,s,u)?(Lr(i,s,u)||n.push(Tr(i,o,s,u)),n.push(o)):Lr(i,s,u)&&n.push(Tr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var $c,Bc,Wc,Jc,Gc,Kc=[],Qc=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ir),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},Bo.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Na)*Na,y:Math.round(o(n,t)/Na)*Na,i:t}})}var r=Ar,u=Cr,i=r,o=u,a=nl;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Ir),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=kt(r=n),t):r},t.y=function(n){return arguments.length?(o=kt(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?nl:n,t):a===nl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===nl?null:a&&a[1]},t)};var nl=[[-1e6,-1e6],[1e6,1e6]];Bo.geom.delaunay=function(n){return Bo.geom.voronoi().triangles(n)},Bo.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ca(c-e)+ca(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,x=kt(a),M=kt(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var _=+x(s=n[g],g),b=+M(s,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Cr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},Bo.interpolateRgb=hu,Bo.interpolateObject=gu,Bo.interpolateNumber=pu,Bo.interpolateString=vu;var tl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,el=new RegExp(tl.source,"g");Bo.interpolate=du,Bo.interpolators=[function(n,t){var e=typeof t;return("string"===e?$a.has(t)||/^(#|rgb\(|hsl\()/.test(t)?hu:vu:t instanceof it?hu:Array.isArray(t)?mu:"object"===e&&isNaN(t)?gu:pu)(n,t)}],Bo.interpolateArray=mu;var rl=function(){return Et},ul=Bo.map({linear:rl,poly:Su,quad:function(){return _u},cubic:function(){return bu},sin:function(){return ku},exp:function(){return Eu},circle:function(){return Au},elastic:Cu,back:Nu,bounce:function(){return zu}}),il=Bo.map({"in":Et,out:xu,"in-out":Mu,"out-in":function(n){return Mu(xu(n))}});Bo.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=ul.get(e)||rl,r=il.get(r)||Et,yu(r(e.apply(null,Wo.call(arguments,1))))},Bo.interpolateHcl=Lu,Bo.interpolateHsl=Tu,Bo.interpolateLab=qu,Bo.interpolateRound=Ru,Bo.transform=function(n){var t=Go.createElementNS(Bo.ns.prefix.svg,"g");return(Bo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Du(e?e.matrix:ol)})(n)},Du.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ol={a:1,b:0,c:0,d:1,e:0,f:0};Bo.interpolateTransform=Fu,Bo.layout={},Bo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},Bo.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=Bo.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(Bo.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(Aa-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=l,b=l+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},Bo.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=Bo.event.x,n.py=Bo.event.y,a.resume()}var e,r,u,i,o,a={},c=Bo.dispatch("start","tick","end"),l=[1,1],s=.9,f=al,h=cl,g=-30,p=ll,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=l[0]/2,M=l[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Wu(t=Bo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Bo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;l>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=y.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Bo.behavior.drag().origin(Et).on("dragstart.force",Vu).on("drag.force",t).on("dragend.force",Xu)),arguments.length?(this.on("mouseover.force",$u).on("mouseout.force",Bu).call(e),void 0):e},Bo.rebind(a,c,"on")};var al=20,cl=1,ll=1/0;Bo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Ku(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ti,e=Qu,r=ni;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Gu(t,function(n){n.children&&(n.value=0)}),Ku(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},Bo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=Bo.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Ju(e,r)},Bo.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/Bo.sum(o),l=Bo.range(i.length);null!=e&&l.sort(e===sl?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var s=[];return l.forEach(function(n){var t;s[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),s}var t=Number,e=sl,r=0,u=Aa;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var sl={};Bo.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=Bo.permute(l,f),s=Bo.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=Et,e=oi,r=ai,u=ii,i=ri,o=ui;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:fl.get(t)||oi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:hl.get(t)||ai,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var fl=Bo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ci),i=n.map(li),o=Bo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return Bo.range(n.length).reverse()},"default":oi}),hl=Bo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ai});Bo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[Bo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=gi,u=fi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=kt(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return hi(n,t)}:kt(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Bo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Ku(a,function(n){n.r=+s(n.value)}),Ku(a,yi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Ku(a,function(n){n.r+=f}),Ku(a,yi),Ku(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=Bo.layout.hierarchy().sort(pi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Ju(n,e)},Bo.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Ku(h,e),h.parent.m=-h.z,Gu(h,r),l)Gu(f,i);else{var g=f,p=f,v=f;Gu(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Gu(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ai(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=ki(o),u=Si(u),o&&u;)c=Si(c),i=ki(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ei(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!ki(i)&&(i.t=o,i.m+=f-s),u&&!Si(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=Bo.layout.hierarchy().sort(null).value(null),a=wi,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Ju(n,o)},Bo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Ku(c,function(n){var t=n.children;t&&t.length?(n.x=zi(t),n.y=Ni(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Ku(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Bo.layout.hierarchy().sort(null).value(null),e=wi,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Ju(n,t)},Bo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=Bo.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=qi,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?qi(t):Ri(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ri(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?qi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Ju(i,a)},Bo.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Bo.random.normal.apply(Bo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Bo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Bo.scale={};var gl={floor:Et,ceil:Et};Bo.scale.linear=function(){return Oi([0,1],[0,1],du,!1)};var pl={s:1,g:1,p:1,r:1,e:1};Bo.scale.log=function(){return Wi(Bo.scale.linear().domain([0,1]),10,!0,[1,10])};var vl=Bo.format(".0e"),dl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Bo.scale.pow=function(){return Ji(Bo.scale.linear(),1,[0,1])},Bo.scale.sqrt=function(){return Bo.scale.pow().exponent(.5)},Bo.scale.ordinal=function(){return Ki([],{t:"range",a:[[]]})},Bo.scale.category10=function(){return Bo.scale.ordinal().range(ml)},Bo.scale.category20=function(){return Bo.scale.ordinal().range(yl)},Bo.scale.category20b=function(){return Bo.scale.ordinal().range(xl)},Bo.scale.category20c=function(){return Bo.scale.ordinal().range(Ml)};var ml=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(yt),yl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(yt),xl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(yt),Ml=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(yt);Bo.scale.quantile=function(){return Qi([],[])
-},Bo.scale.quantize=function(){return no(0,1,[0,1])},Bo.scale.threshold=function(){return to([.5],[0,1])},Bo.scale.identity=function(){return eo([0,1])},Bo.svg={},Bo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+_l,a=u.apply(this,arguments)+_l,c=(o>a&&(c=o,o=a,a=c),a-o),l=Ea>c?"0":"1",s=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=bl?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+l+",0 "+n*s+","+n*f+"Z":"M"+i*s+","+i*f+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=ro,e=uo,r=io,u=oo;return n.innerRadius=function(e){return arguments.length?(t=kt(e),n):t},n.outerRadius=function(t){return arguments.length?(e=kt(t),n):e},n.startAngle=function(t){return arguments.length?(r=kt(t),n):r},n.endAngle=function(t){return arguments.length?(u=kt(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+_l;return[Math.cos(i)*n,Math.sin(i)*n]},n};var _l=-Ca,bl=Aa-Na;Bo.svg.line=function(){return ao(Et)};var wl=Bo.map({linear:co,"linear-closed":lo,step:so,"step-before":fo,"step-after":ho,basis:xo,"basis-open":Mo,"basis-closed":_o,bundle:bo,cardinal:vo,"cardinal-open":go,"cardinal-closed":po,monotone:Co});wl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Sl=[0,2/3,1/3,0],kl=[0,1/3,2/3,0],El=[0,1/6,2/3,1/6];Bo.svg.line.radial=function(){var n=ao(No);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},fo.reverse=ho,ho.reverse=fo,Bo.svg.area=function(){return zo(Et)},Bo.svg.area.radial=function(){var n=zo(No);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Bo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+_l,s=l.call(n,u,r)+_l;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Ea)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Lo,c=io,l=oo;return n.radius=function(t){return arguments.length?(a=kt(t),n):a},n.source=function(t){return arguments.length?(i=kt(t),n):i},n.target=function(t){return arguments.length?(o=kt(t),n):o},n.startAngle=function(t){return arguments.length?(c=kt(t),n):c},n.endAngle=function(t){return arguments.length?(l=kt(t),n):l},n},Bo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=To;return n.source=function(e){return arguments.length?(t=kt(e),n):t},n.target=function(t){return arguments.length?(e=kt(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Bo.svg.diagonal.radial=function(){var n=Bo.svg.diagonal(),t=To,e=n.projection;return n.projection=function(n){return arguments.length?e(qo(t=n)):t},n},Bo.svg.symbol=function(){function n(n,r){return(Al.get(t.call(this,n,r))||Po)(e.call(this,n,r))}var t=Do,e=Ro;return n.type=function(e){return arguments.length?(t=kt(e),n):t},n.size=function(t){return arguments.length?(e=kt(t),n):e},n};var Al=Bo.map({circle:Po,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/zl),e=t*zl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/zl),e=t*zl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Bo.svg.symbolTypes=Al.keys();var Cl,Nl,zl=Math.sqrt(3),Ll=Math.tan(30*La),Tl=[],ql=0;Tl.call=ya.call,Tl.empty=ya.empty,Tl.node=ya.node,Tl.size=ya.size,Bo.transition=function(n){return arguments.length?Cl?n.transition():n:_a.transition()},Bo.transition.prototype=Tl,Tl.select=function(n){var t,e,r,u=this.id,i=[];n=k(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],l=-1,s=c.length;++l<s;)(r=c[l])&&(e=n.call(r,r.__data__,l,o))?("__data__"in r&&(e.__data__=r.__data__),Ho(e,l,u,r.__transition__[u]),t.push(e)):t.push(null)}return Uo(i,u)},Tl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=E(n);for(var c=-1,l=this.length;++c<l;)for(var s=this[c],f=-1,h=s.length;++f<h;)if(r=s[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&Ho(u,g,o,i),t.push(u)}return Uo(a,o)},Tl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=U(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Uo(u,this.id)},Tl.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):F(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Tl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Fu:du,a=Bo.ns.qualify(n);return jo(this,"attr."+n,t,a.local?i:u)},Tl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Bo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Tl.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Qo.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=du(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return jo(this,"style."+n,t,u)},Tl.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Qo.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Tl.text=function(n){return jo(this,"text",n,Fo)},Tl.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Tl.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Bo.ease.apply(Bo,arguments)),F(this,function(e){e.__transition__[t].ease=n}))},Tl.delay=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].delay:F(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Tl.duration=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].duration:F(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Tl.each=function(n,t){var e=this.id;if(arguments.length<2){var r=Nl,u=Cl;Cl=e,F(this,function(t,r,u){Nl=t.__transition__[e],n.call(t,t.__data__,r,u)}),Nl=r,Cl=u}else F(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Bo.dispatch("start","end"))).on(n,t)});return this},Tl.transition=function(){for(var n,t,e,r,u=this.id,i=++ql,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],l=0,s=t.length;s>l;l++)(e=t[l])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,Ho(e,l,i,r)),n.push(e)}return Uo(o,i)},Bo.svg.axis=function(){function n(n){n.each(function(){var n,l=Bo.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):Et:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Na),d=Bo.transition(p.exit()).style("opacity",Na).remove(),m=Bo.transition(p.order()).style("opacity",1),y=Math.max(u,0)+o,x=Pi(f),M=l.selectAll(".domain").data([0]),_=(M.enter().append("path").attr("class","domain"),Bo.transition(M));v.append("line"),v.append("text");var b,w,S,k,E=v.select("line"),A=m.select("line"),C=p.select("text").text(g),N=v.select("text"),z=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Oo,b="x",S="y",w="x2",k="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Yo,b="y",S="x",w="y2",k="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),E.attr(k,L*u),N.attr(S,L*y),A.attr(w,0).attr(k,L*u),z.attr(b,0).attr(S,L*y),f.rangeBand){var T=f,q=T.rangeBand()/2;s=f=function(n){return T(n)+q}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=Bo.scale.linear(),r=Rl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Dl?t+"":Rl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Rl="bottom",Dl={top:1,right:1,bottom:1,left:1};Bo.svg.brush=function(){function n(i){i.each(function(){var i=Bo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,Et);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Pl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var s,f=Bo.transition(i),h=Bo.transition(o);c&&(s=Pi(c),h.attr("x",s[0]).attr("width",s[1]-s[0]),e(f)),l&&(s=Pi(l),h.attr("y",s[0]).attr("height",s[1]-s[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Bo.event.keyCode&&(C||(y=null,z[0]-=s[1],z[1]-=f[1],C=2),_())}function p(){32==Bo.event.keyCode&&2==C&&(z[0]+=s[1],z[1]+=f[1],C=0,_())}function v(){var n=Bo.mouse(M),u=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(Bo.event.altKey?(y||(y=[(s[0]+s[1])/2,(f[0]+f[1])/2]),z[0]=s[+(n[0]<y[0])],z[1]=f[+(n[1]<y[1])]):y=null),E&&d(n,c,0)&&(e(S),u=!0),A&&d(n,l,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function d(n,t,e){var r,u,a=Pi(t),c=a[0],l=a[1],p=z[e],v=e?f:s,d=v[1]-v[0];return C&&(c-=p,l-=d+p),r=(e?g:h)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=p)+d:(y&&(p=Math.max(c,Math.min(l,2*y[e]-r))),r>p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function m(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Bo.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var y,x,M=this,b=Bo.select(Bo.event.target),w=a.of(M,arguments),S=Bo.select(M),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&l,C=b.classed("extent"),N=X(),z=Bo.mouse(M),L=Bo.select(Qo).on("keydown.brush",u).on("keyup.brush",p);if(Bo.event.changedTouches?L.on("touchmove.brush",v).on("touchend.brush",m):L.on("mousemove.brush",v).on("mouseup.brush",m),S.interrupt().selectAll("*").interrupt(),C)z[0]=s[0]-z[0],z[1]=f[0]-z[1];else if(k){var T=+/w$/.test(k),q=+/^n/.test(k);x=[s[1-T]-z[0],f[1-q]-z[1]],z[0]=s[T],z[1]=f[q]}else Bo.event.altKey&&(y=z.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Bo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=w(n,"brushstart","brush","brushend"),c=null,l=null,s=[0,0],f=[0,0],h=!0,g=!0,p=Ul[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:s,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,Cl?Bo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,s=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=mu(s,t.x),r=mu(f,t.y);return i=o=null,function(u){s=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=Ul[!c<<1|!l],n):c},n.y=function(t){return arguments.length?(l=t,p=Ul[!c<<1|!l],n):l},n.clamp=function(t){return arguments.length?(c&&l?(h=!!t[0],g=!!t[1]):c?h=!!t:l&&(g=!!t),n):c&&l?[h,g]:c?h:l?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],l&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=s[0]||r!=s[1])&&(s=[e,r])),l&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],l.invert&&(u=l(u),a=l(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),l&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],l.invert&&(u=l.invert(u),a=l.invert(a)),u>a&&(h=u,u=a,a=h))),c&&l?[[e,u],[r,a]]:c?[e,r]:l&&[u,a])},n.clear=function(){return n.empty()||(s=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!l&&f[0]==f[1]},Bo.rebind(n,a,"on")};var Pl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ul=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],jl=rc.format=lc.timeFormat,Fl=jl.utc,Hl=Fl("%Y-%m-%dT%H:%M:%S.%LZ");jl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Io:Hl,Io.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Io.toString=Hl.toString,rc.second=Ft(function(n){return new uc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),rc.seconds=rc.second.range,rc.seconds.utc=rc.second.utc.range,rc.minute=Ft(function(n){return new uc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),rc.minutes=rc.minute.range,rc.minutes.utc=rc.minute.utc.range,rc.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new uc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),rc.hours=rc.hour.range,rc.hours.utc=rc.hour.utc.range,rc.month=Ft(function(n){return n=rc.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),rc.months=rc.month.range,rc.months.utc=rc.month.utc.range;var Ol=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Yl=[[rc.second,1],[rc.second,5],[rc.second,15],[rc.second,30],[rc.minute,1],[rc.minute,5],[rc.minute,15],[rc.minute,30],[rc.hour,1],[rc.hour,3],[rc.hour,6],[rc.hour,12],[rc.day,1],[rc.day,2],[rc.week,1],[rc.month,1],[rc.month,3],[rc.year,1]],Il=jl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ae]]),Zl={range:function(n,t,e){return Bo.range(Math.ceil(n/e)*e,+t,e).map(Vo)},floor:Et,ceil:Et};Yl.year=rc.year,rc.scale=function(){return Zo(Bo.scale.linear(),Yl,Il)};var Vl=Yl.map(function(n){return[n[0].utc,n[1]]}),Xl=Fl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ae]]);Vl.year=rc.year.utc,rc.scale.utc=function(){return Zo(Bo.scale.linear(),Vl,Xl)},Bo.text=At(function(n){return n.responseText}),Bo.json=function(n,t){return Ct(n,"application/json",Xo,t)},Bo.html=function(n,t){return Ct(n,"text/html",$o,t)},Bo.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Bo):"object"==typeof module&&module.exports&&(module.exports=Bo),this.d3=Bo}();
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js
deleted file mode 100644
index 7cd3ee0..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/holder.js
+++ /dev/null
@@ -1,1533 +0,0 @@
-/*
-Holder.js - client side image placeholders
-© 2012-2014 Ivan Malopinsky - http://imsky.co
-*/
-(function(register, global, undefined) {
-
-	//Constants and definitions
-
-	var SVG_NS = 'http://www.w3.org/2000/svg';
-	var document = global.document;
-
-	var Holder = {
-		/**
-		 * Adds a theme to default settings
-		 *
-		 * @param {string} name Theme name
-		 * @param {Object} theme Theme object, with foreground, background, size, font, and fontweight properties.
-		 */
-		addTheme: function(name, theme) {
-			name != null && theme != null && (App.settings.themes[name] = theme);
-			delete App.vars.cache.themeKeys;
-			return this;
-		},
-
-		/**
-		 * Appends a placeholder to an element
-		 *
-		 * @param {string} src Placeholder URL string
-		 * @param {string} el Selector of target element(s)
-		 */
-		addImage: function(src, el) {
-			var node = document.querySelectorAll(el);
-			if (node.length) {
-				for (var i = 0, l = node.length; i < l; i++) {
-					var img = newEl('img');
-					setAttr(img, {
-						'data-src': src
-					});
-					node[i].appendChild(img);
-				}
-			}
-			return this;
-		},
-
-		/**
-		 * Runs Holder with options. By default runs Holder on all images with "holder.js" in their source attributes.
-		 *
-		 * @param {Object} userOptions Options object, can contain domain, themes, images, and bgnodes properties
-		 */
-		run: function(userOptions) {
-			userOptions = userOptions || {};
-			var renderSettings = {};
-
-			App.vars.preempted = true;
-
-			var options = extend(App.settings, userOptions);
-
-			renderSettings.renderer = options.renderer ? options.renderer : App.setup.renderer;
-			if (App.setup.renderers.join(',').indexOf(renderSettings.renderer) === -1) {
-				renderSettings.renderer = App.setup.supportsSVG ? 'svg' : (App.setup.supportsCanvas ? 'canvas' : 'html');
-			}
-
-			//< v2.4 API compatibility
-			if (options.use_canvas) {
-				renderSettings.renderer = 'canvas';
-			} else if (options.use_svg) {
-				renderSettings.renderer = 'svg';
-			}
-
-			var images = getNodeArray(options.images);
-			var bgnodes = getNodeArray(options.bgnodes);
-			var stylenodes = getNodeArray(options.stylenodes);
-			var objects = getNodeArray(options.objects);
-
-			renderSettings.stylesheets = [];
-			renderSettings.svgXMLStylesheet = true;
-			renderSettings.noFontFallback = options.noFontFallback ? options.noFontFallback : false;
-
-			for (var i = 0; i < stylenodes.length; i++) {
-				var styleNode = stylenodes[i];
-				if (styleNode.attributes.rel && styleNode.attributes.href && styleNode.attributes.rel.value == 'stylesheet') {
-					var href = styleNode.attributes.href.value;
-					//todo: write isomorphic relative-to-absolute URL function
-					var proxyLink = newEl('a');
-					proxyLink.href = href;
-					var stylesheetURL = proxyLink.protocol + '//' + proxyLink.host + proxyLink.pathname + proxyLink.search;
-					renderSettings.stylesheets.push(stylesheetURL);
-				}
-			}
-
-			for (i = 0; i < bgnodes.length; i++) {
-				var backgroundImage = global.getComputedStyle(bgnodes[i], null).getPropertyValue('background-image');
-				var dataBackgroundImage = bgnodes[i].getAttribute('data-background-src');
-				var rawURL = null;
-
-				if (dataBackgroundImage == null) {
-					rawURL = backgroundImage;
-				} else {
-					rawURL = dataBackgroundImage;
-				}
-
-				var holderURL = null;
-				var holderString = '?' + options.domain + '/';
-
-				if (rawURL.indexOf(holderString) === 0) {
-					holderURL = rawURL.slice(1);
-				} else if (rawURL.indexOf(holderString) != -1) {
-					var fragment = rawURL.substr(rawURL.indexOf(holderString)).slice(1);
-					var fragmentMatch = fragment.match(/([^\"]*)"?\)/);
-
-					if (fragmentMatch != null) {
-						holderURL = fragmentMatch[1];
-					}
-				}
-
-				if (holderURL != null) {
-					var holderFlags = parseURL(holderURL, options);
-					if (holderFlags) {
-						prepareDOMElement('background', bgnodes[i], holderFlags, renderSettings);
-					}
-				}
-			}
-
-			for (i = 0; i < objects.length; i++) {
-				var object = objects[i];
-				var objectAttr = {};
-
-				try {
-					objectAttr.data = object.getAttribute('data');
-					objectAttr.dataSrc = object.getAttribute('data-src');
-				} catch (e) {}
-
-				var objectHasSrcURL = objectAttr.data != null && objectAttr.data.indexOf(options.domain) === 0;
-				var objectHasDataSrcURL = objectAttr.dataSrc != null && objectAttr.dataSrc.indexOf(options.domain) === 0;
-
-				if (objectHasSrcURL) {
-					prepareImageElement(options, renderSettings, objectAttr.data, object);
-				} else if (objectHasDataSrcURL) {
-					prepareImageElement(options, renderSettings, objectAttr.dataSrc, object);
-				}
-			}
-
-			for (i = 0; i < images.length; i++) {
-				var image = images[i];
-				var imageAttr = {};
-
-				try {
-					imageAttr.src = image.getAttribute('src');
-					imageAttr.dataSrc = image.getAttribute('data-src');
-					imageAttr.rendered = image.getAttribute('data-holder-rendered');
-				} catch (e) {}
-
-				var imageHasSrc = imageAttr.src != null;
-				var imageHasDataSrcURL = imageAttr.dataSrc != null && imageAttr.dataSrc.indexOf(options.domain) === 0;
-				var imageRendered = imageAttr.rendered != null && imageAttr.rendered == 'true';
-
-				if (imageHasSrc) {
-					if (imageAttr.src.indexOf(options.domain) === 0) {
-						prepareImageElement(options, renderSettings, imageAttr.src, image);
-					} else if (imageHasDataSrcURL) {
-						//Image has a valid data-src and an invalid src
-						if (imageRendered) {
-							//If the placeholder has already been render, re-render it
-							prepareImageElement(options, renderSettings, imageAttr.dataSrc, image);
-						} else {
-							//If the placeholder has not been rendered, check if the image exists and render a fallback if it doesn't
-              (function(src, options, renderSettings, dataSrc, image){
-                imageExists(src, function(exists){
-                  if(!exists){
-                    prepareImageElement(options, renderSettings, dataSrc, image);
-                  }
-                });
-              })(imageAttr.src, options, renderSettings, imageAttr.dataSrc, image);
-						}
-					}
-				} else if (imageHasDataSrcURL) {
-					prepareImageElement(options, renderSettings, imageAttr.dataSrc, image);
-				}
-			}
-
-			return this;
-		},
-		//todo: remove invisibleErrorFn for 2.5
-		invisibleErrorFn: function(fn) {
-			return function(el) {
-				if (el.hasAttribute('data-holder-invisible')) {
-					throw 'Holder: invisible placeholder';
-				}
-			};
-		}
-	};
-
-	//< v2.4 API compatibility
-
-	Holder.add_theme = Holder.addTheme;
-	Holder.add_image = Holder.addImage;
-	Holder.invisible_error_fn = Holder.invisibleErrorFn;
-
-	var App = {
-		settings: {
-			domain: 'holder.js',
-			images: 'img',
-			objects: 'object',
-			bgnodes: 'body .holderjs',
-			stylenodes: 'head link.holderjs',
-			stylesheets: [],
-			themes: {
-				'gray': {
-					background: '#EEEEEE',
-					foreground: '#AAAAAA'
-				},
-				'social': {
-					background: '#3a5a97',
-					foreground: '#FFFFFF'
-				},
-				'industrial': {
-					background: '#434A52',
-					foreground: '#C2F200'
-				},
-				'sky': {
-					background: '#0D8FDB',
-					foreground: '#FFFFFF'
-				},
-				'vine': {
-					background: '#39DBAC',
-					foreground: '#1E292C'
-				},
-				'lava': {
-					background: '#F8591A',
-					foreground: '#1C2846'
-				}
-			}
-		},
-    defaults: {
-      size: 10,
-      units: 'pt',
-      scale: 1/16
-    },
-		flags: {
-			dimensions: {
-				regex: /^(\d+)x(\d+)$/,
-				output: function(val) {
-					var exec = this.regex.exec(val);
-					return {
-						width: +exec[1],
-						height: +exec[2]
-					};
-				}
-			},
-			fluid: {
-				regex: /^([0-9]+%?)x([0-9]+%?)$/,
-				output: function(val) {
-					var exec = this.regex.exec(val);
-					return {
-						width: exec[1],
-						height: exec[2]
-					};
-				}
-			},
-			colors: {
-				regex: /(?:#|\^)([0-9a-f]{3,})\:(?:#|\^)([0-9a-f]{3,})/i,
-				output: function(val) {
-					var exec = this.regex.exec(val);
-					return {
-						foreground: '#' + exec[2],
-						background: '#' + exec[1]
-					};
-				}
-			},
-			text: {
-				regex: /text\:(.*)/,
-				output: function(val) {
-					return this.regex.exec(val)[1].replace('\\/', '/');
-				}
-			},
-			font: {
-				regex: /font\:(.*)/,
-				output: function(val) {
-					return this.regex.exec(val)[1];
-				}
-			},
-			auto: {
-				regex: /^auto$/
-			},
-			textmode: {
-				regex: /textmode\:(.*)/,
-				output: function(val) {
-					return this.regex.exec(val)[1];
-				}
-			},
-			random: {
-				regex: /^random$/
-			}
-		}
-	};
-
-	/**
-	 * Processes provided source attribute and sets up the appropriate rendering workflow
-	 *
-	 * @private
-	 * @param options Instance options from Holder.run
-	 * @param renderSettings Instance configuration
-	 * @param src Image URL
-	 * @param el Image DOM element
-	 */
-	function prepareImageElement(options, renderSettings, src, el) {
-		var holderFlags = parseURL(src.substr(src.lastIndexOf(options.domain)), options);
-		if (holderFlags) {
-			prepareDOMElement(null, el, holderFlags, renderSettings);
-		}
-	}
-
-	/**
-	 * Processes a Holder URL and extracts flags
-	 *
-	 * @private
-	 * @param url URL
-	 * @param options Instance options from Holder.run
-	 */
-	function parseURL(url, options) {
-		var ret = {
-			theme: extend(App.settings.themes.gray, null),
-			stylesheets: options.stylesheets,
-			holderURL: []
-		};
-		var render = false;
-		var vtab = String.fromCharCode(11);
-		var flags = url.replace(/([^\\])\//g, '$1' + vtab).split(vtab);
-		var uriRegex = /%[0-9a-f]{2}/gi;
-		for (var fl = flags.length, j = 0; j < fl; j++) {
-			var flag = flags[j];
-			if (flag.match(uriRegex)) {
-				try {
-					flag = decodeURIComponent(flag);
-				} catch (e) {
-					flag = flags[j];
-				}
-			}
-
-			var push = false;
-
-			if (App.flags.dimensions.match(flag)) {
-				render = true;
-				ret.dimensions = App.flags.dimensions.output(flag);
-				push = true;
-			} else if (App.flags.fluid.match(flag)) {
-				render = true;
-				ret.dimensions = App.flags.fluid.output(flag);
-				ret.fluid = true;
-				push = true;
-			} else if (App.flags.textmode.match(flag)) {
-				ret.textmode = App.flags.textmode.output(flag);
-				push = true;
-			} else if (App.flags.colors.match(flag)) {
-				var colors = App.flags.colors.output(flag);
-				ret.theme = extend(ret.theme, colors);
-				//todo: convert implicit theme use to a theme: flag
-				push = true;
-			} else if (options.themes[flag]) {
-				//If a theme is specified, it will override custom colors
-				if (options.themes.hasOwnProperty(flag)) {
-					ret.theme = extend(options.themes[flag], null);
-				}
-				push = true;
-			} else if (App.flags.font.match(flag)) {
-				ret.font = App.flags.font.output(flag);
-				push = true;
-			} else if (App.flags.auto.match(flag)) {
-				ret.auto = true;
-				push = true;
-			} else if (App.flags.text.match(flag)) {
-				ret.text = App.flags.text.output(flag);
-				push = true;
-			} else if (App.flags.random.match(flag)) {
-				if (App.vars.cache.themeKeys == null) {
-					App.vars.cache.themeKeys = Object.keys(options.themes);
-				}
-				var theme = App.vars.cache.themeKeys[0 | Math.random() * App.vars.cache.themeKeys.length];
-				ret.theme = extend(options.themes[theme], null);
-				push = true;
-			}
-
-			if (push) {
-				ret.holderURL.push(flag);
-			}
-		}
-		ret.holderURL.unshift(options.domain);
-		ret.holderURL = ret.holderURL.join('/');
-		return render ? ret : false;
-	}
-
-	/**
-	 * Modifies the DOM to fit placeholders and sets up resizable image callbacks (for fluid and automatically sized placeholders)
-	 *
-	 * @private
-	 * @param el Image DOM element
-	 * @param flags Placeholder-specific configuration
-	 * @param _renderSettings Instance configuration
-	 */
-	function prepareDOMElement(mode, el, flags, _renderSettings) {
-		var dimensions = flags.dimensions,
-			theme = flags.theme;
-		var dimensionsCaption = dimensions.width + 'x' + dimensions.height;
-		mode = mode == null ? (flags.fluid ? 'fluid' : 'image') : mode;
-
-		if (flags.text != null) {
-			theme.text = flags.text;
-
-			//<object> SVG embedding doesn't parse Unicode properly
-			if (el.nodeName.toLowerCase() === 'object') {
-				var textLines = theme.text.split('\\n');
-				for (var k = 0; k < textLines.length; k++) {
-					textLines[k] = encodeHtmlEntity(textLines[k]);
-				}
-				theme.text = textLines.join('\\n');
-			}
-		}
-
-		var holderURL = flags.holderURL;
-		var renderSettings = extend(_renderSettings, null);
-
-		if (flags.font) {
-			theme.font = flags.font;
-			//Only run the <canvas> webfont fallback if noFontFallback is false, if the node is not an image, and if canvas is supported
-			if (!renderSettings.noFontFallback && el.nodeName.toLowerCase() === 'img' && App.setup.supportsCanvas && renderSettings.renderer === 'svg') {
-				renderSettings = extend(renderSettings, {
-					renderer: 'canvas'
-				});
-			}
-		}
-
-		//Chrome and Opera require a quick 10ms re-render if web fonts are used with canvas
-		if (flags.font && renderSettings.renderer == 'canvas') {
-			renderSettings.reRender = true;
-		}
-
-		if (mode == 'background') {
-			if (el.getAttribute('data-background-src') == null) {
-				setAttr(el, {
-					'data-background-src': holderURL
-				});
-			}
-		} else {
-			setAttr(el, {
-				'data-src': holderURL
-			});
-		}
-
-		flags.theme = theme;
-
-		el.holderData = {
-			flags: flags,
-			renderSettings: renderSettings
-		};
-
-		if (mode == 'image' || mode == 'fluid') {
-			setAttr(el, {
-				'alt': (theme.text ? (theme.text.length > 16 ? theme.text.substring(0, 16) + '…' : theme.text) + ' [' + dimensionsCaption + ']' : dimensionsCaption)
-			});
-		}
-
-		if (mode == 'image') {
-			if (renderSettings.renderer == 'html' || !flags.auto) {
-				el.style.width = dimensions.width + 'px';
-				el.style.height = dimensions.height + 'px';
-			}
-			if (renderSettings.renderer == 'html') {
-				el.style.backgroundColor = theme.background;
-			} else {
-				render(mode, {
-					dimensions: dimensions,
-					theme: theme,
-					flags: flags
-				}, el, renderSettings);
-
-				if (flags.textmode && flags.textmode == 'exact') {
-					App.vars.resizableImages.push(el);
-					updateResizableElements(el);
-				}
-			}
-		} else if (mode == 'background' && renderSettings.renderer != 'html') {
-			render(mode, {
-					dimensions: dimensions,
-					theme: theme,
-					flags: flags
-				},
-				el, renderSettings);
-		} else if (mode == 'fluid') {
-			if (dimensions.height.slice(-1) == '%') {
-				el.style.height = dimensions.height;
-			} else if (flags.auto == null || !flags.auto) {
-				el.style.height = dimensions.height + 'px';
-			}
-			if (dimensions.width.slice(-1) == '%') {
-				el.style.width = dimensions.width;
-			} else if (flags.auto == null || !flags.auto) {
-				el.style.width = dimensions.width + 'px';
-			}
-			if (el.style.display == 'inline' || el.style.display === '' || el.style.display == 'none') {
-				el.style.display = 'block';
-			}
-
-			setInitialDimensions(el);
-
-			if (renderSettings.renderer == 'html') {
-				el.style.backgroundColor = theme.background;
-			} else {
-				App.vars.resizableImages.push(el);
-				updateResizableElements(el);
-			}
-		}
-	}
-
-	/**
-	 * Core function that takes output from renderers and sets it as the source or background-image of the target element
-	 *
-	 * @private
-	 * @param mode Placeholder mode, either background or image
-	 * @param params Placeholder-specific parameters
-	 * @param el Image DOM element
-	 * @param renderSettings Instance configuration
-	 */
-
-	function render(mode, params, el, renderSettings) {
-		var image = null;
-
-		switch (renderSettings.renderer) {
-			case 'svg':
-				if (!App.setup.supportsSVG) return;
-				break;
-			case 'canvas':
-				if (!App.setup.supportsCanvas) return;
-				break;
-			default:
-				return;
-		}
-
-		//todo: move generation of scene up to flag generation to reduce extra object creation
-		var scene = {
-			width: params.dimensions.width,
-			height: params.dimensions.height,
-			theme: params.theme,
-			flags: params.flags
-		};
-
-		var sceneGraph = buildSceneGraph(scene);
-
-		var rendererParams = {
-			text: scene.text,
-			width: scene.width,
-			height: scene.height,
-			textHeight: scene.font.size,
-			font: scene.font.family,
-			fontWeight: scene.font.weight,
-			template: scene.theme
-		};
-
-		function getRenderedImage() {
-			var image = null;
-			switch (renderSettings.renderer) {
-				case 'canvas':
-					image = sgCanvasRenderer(sceneGraph);
-					break;
-				case 'svg':
-					image = sgSVGRenderer(sceneGraph, renderSettings);
-					break;
-				default:
-					throw 'Holder: invalid renderer: ' + renderSettings.renderer;
-			}
-			return image;
-		}
-
-		image = getRenderedImage();
-
-		if (image == null) {
-			throw 'Holder: couldn\'t render placeholder';
-		}
-
-		//todo: add <object> canvas rendering
-		if (mode == 'background') {
-			el.style.backgroundImage = 'url(' + image + ')';
-			el.style.backgroundSize = scene.width + 'px ' + scene.height + 'px';
-		} else {
-			if (el.nodeName.toLowerCase() === 'img') {
-				setAttr(el, {
-					'src': image
-				});
-			} else if (el.nodeName.toLowerCase() === 'object') {
-				setAttr(el, {
-					'data': image
-				});
-				setAttr(el, {
-					'type': 'image/svg+xml'
-				});
-			}
-			if (renderSettings.reRender) {
-				setTimeout(function() {
-					var image = getRenderedImage();
-					if (image == null) {
-						throw 'Holder: couldn\'t render placeholder';
-					}
-					if (el.nodeName.toLowerCase() === 'img') {
-						setAttr(el, {
-							'src': image
-						});
-					} else if (el.nodeName.toLowerCase() === 'object') {
-						setAttr(el, {
-							'data': image
-						});
-						setAttr(el, {
-							'type': 'image/svg+xml'
-						});
-					}
-				}, 100);
-			}
-		}
-		setAttr(el, {
-			'data-holder-rendered': true
-		});
-	}
-
-	/**
-	 * Core function that takes a Holder scene description and builds a scene graph
-	 *
-	 * @private
-	 * @param scene Holder scene object
-	 */
-	function buildSceneGraph(scene) {
-		scene.font = {
-			family: scene.theme.font ? scene.theme.font : 'Arial, Helvetica, Open Sans, sans-serif',
-			size: textSize(scene.width, scene.height, scene.theme.size ? scene.theme.size : App.defaults.size),
-      units: scene.theme.units ? scene.theme.units : App.defaults.units,
-			weight: scene.theme.fontweight ? scene.theme.fontweight : 'bold'
-		};
-		scene.text = scene.theme.text ? scene.theme.text : Math.floor(scene.width) + 'x' + Math.floor(scene.height);
-
-		switch (scene.flags.textmode) {
-			case 'literal':
-				scene.text = scene.flags.dimensions.width + 'x' + scene.flags.dimensions.height;
-				break;
-			case 'exact':
-				if (!scene.flags.exactDimensions) break;
-				scene.text = Math.floor(scene.flags.exactDimensions.width) + 'x' + Math.floor(scene.flags.exactDimensions.height);
-				break;
-		}
-
-		var sceneGraph = new SceneGraph({
-			width: scene.width,
-			height: scene.height
-		});
-
-		var Shape = sceneGraph.Shape;
-
-		var holderBg = new Shape.Rect('holderBg', {
-			fill: scene.theme.background
-		});
-
-		holderBg.resize(scene.width, scene.height);
-		sceneGraph.root.add(holderBg);
-
-		var holderTextGroup = new Shape.Group('holderTextGroup', {
-			text: scene.text,
-			align: 'center',
-			font: scene.font,
-			fill: scene.theme.foreground
-		});
-
-		holderTextGroup.moveTo(null, null, 1);
-		sceneGraph.root.add(holderTextGroup);
-
-		var tpdata = holderTextGroup.textPositionData = stagingRenderer(sceneGraph);
-		if (!tpdata) {
-			throw 'Holder: staging fallback not supported yet.';
-		}
-		holderTextGroup.properties.leading = tpdata.boundingBox.height;
-
-		//todo: alignment: TL, TC, TR, CL, CR, BL, BC, BR
-		var textNode = null;
-		var line = null;
-
-		function finalizeLine(parent, line, width, height) {
-			line.width = width;
-			line.height = height;
-			parent.width = Math.max(parent.width, line.width);
-			parent.height += line.height;
-			parent.add(line);
-		}
-
-		if (tpdata.lineCount > 1) {
-			var offsetX = 0;
-			var offsetY = 0;
-			var maxLineWidth = scene.width * App.setup.lineWrapRatio;
-			var lineIndex = 0;
-			line = new Shape.Group('line' + lineIndex);
-
-			for (var i = 0; i < tpdata.words.length; i++) {
-				var word = tpdata.words[i];
-				textNode = new Shape.Text(word.text);
-				var newline = word.text == '\\n';
-				if (offsetX + word.width >= maxLineWidth || newline === true) {
-					finalizeLine(holderTextGroup, line, offsetX, holderTextGroup.properties.leading);
-					offsetX = 0;
-					offsetY += holderTextGroup.properties.leading;
-					lineIndex += 1;
-					line = new Shape.Group('line' + lineIndex);
-					line.y = offsetY;
-				}
-				if (newline === true) {
-					continue;
-				}
-				textNode.moveTo(offsetX, 0);
-				offsetX += tpdata.spaceWidth + word.width;
-				line.add(textNode);
-			}
-
-			finalizeLine(holderTextGroup, line, offsetX, holderTextGroup.properties.leading);
-
-			for (var lineKey in holderTextGroup.children) {
-				line = holderTextGroup.children[lineKey];
-				line.moveTo(
-					(holderTextGroup.width - line.width) / 2,
-					null,
-					null);
-			}
-
-			holderTextGroup.moveTo(
-				(scene.width - holderTextGroup.width) / 2, (scene.height - holderTextGroup.height) / 2,
-				null);
-
-			//If the text exceeds vertical space, move it down so the first line is visible
-			if ((scene.height - holderTextGroup.height) / 2 < 0) {
-				holderTextGroup.moveTo(null, 0, null);
-			}
-		} else {
-			textNode = new Shape.Text(scene.text);
-			line = new Shape.Group('line0');
-			line.add(textNode);
-			holderTextGroup.add(line);
-
-			holderTextGroup.moveTo(
-				(scene.width - tpdata.boundingBox.width) / 2, (scene.height - tpdata.boundingBox.height) / 2,
-				null);
-		}
-
-		//todo: renderlist
-
-		return sceneGraph;
-	}
-
-	/**
-	 * Adaptive text sizing function
-	 *
-	 * @private
-	 * @param width Parent width
-	 * @param height Parent height
-	 * @param fontSize Requested text size
-	 */
-	function textSize(width, height, fontSize) {
-		height = parseInt(height, 10);
-		width = parseInt(width, 10);
-		var bigSide = Math.max(height, width);
-		var smallSide = Math.min(height, width);
-		var scale = App.defaults.scale;
-		var newHeight = Math.min(smallSide * 0.75, 0.75 * bigSide * scale);
-		return Math.round(Math.max(fontSize, newHeight));
-	}
-
-	/**
-	 * Iterates over resizable (fluid or auto) placeholders and renders them
-	 *
-	 * @private
-	 * @param element Optional element selector, specified only if a specific element needs to be re-rendered
-	 */
-	function updateResizableElements(element) {
-		var images;
-		if (element == null || element.nodeType == null) {
-			images = App.vars.resizableImages;
-		} else {
-			images = [element];
-		}
-		for (var i in images) {
-			if (!images.hasOwnProperty(i)) {
-				continue;
-			}
-			var el = images[i];
-			if (el.holderData) {
-				var flags = el.holderData.flags;
-				var dimensions = dimensionCheck(el, Holder.invisibleErrorFn(updateResizableElements));
-				if (dimensions) {
-					if (flags.fluid && flags.auto) {
-						var fluidConfig = el.holderData.fluidConfig;
-						switch (fluidConfig.mode) {
-							case 'width':
-								dimensions.height = dimensions.width / fluidConfig.ratio;
-								break;
-							case 'height':
-								dimensions.width = dimensions.height * fluidConfig.ratio;
-								break;
-						}
-					}
-
-					var drawParams = {
-						dimensions: dimensions,
-						theme: flags.theme,
-						flags: flags
-					};
-
-					if (flags.textmode && flags.textmode == 'exact') {
-						flags.exactDimensions = dimensions;
-						drawParams.dimensions = flags.dimensions;
-					}
-
-					render('image', drawParams, el, el.holderData.renderSettings);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Checks if an element is visible
-	 *
-	 * @private
-	 * @param el DOM element
-	 * @param callback Callback function executed if the element is invisible
-	 */
-	function dimensionCheck(el, callback) {
-		var dimensions = {
-			height: el.clientHeight,
-			width: el.clientWidth
-		};
-		if (!dimensions.height && !dimensions.width) {
-			setAttr(el, {
-				'data-holder-invisible': true
-			});
-			callback.call(this, el);
-		} else {
-			el.removeAttribute('data-holder-invisible');
-			return dimensions;
-		}
-	}
-
-	/**
-	 * Sets up aspect ratio metadata for fluid placeholders, in order to preserve proportions when resizing
-	 *
-	 * @private
-	 * @param el Image DOM element
-	 */
-	function setInitialDimensions(el) {
-		if (el.holderData) {
-			var dimensions = dimensionCheck(el, Holder.invisibleErrorFn(setInitialDimensions));
-			if (dimensions) {
-				var flags = el.holderData.flags;
-
-				var fluidConfig = {
-					fluidHeight: flags.dimensions.height.slice(-1) == '%',
-					fluidWidth: flags.dimensions.width.slice(-1) == '%',
-					mode: null,
-					initialDimensions: dimensions
-				};
-
-				if (fluidConfig.fluidWidth && !fluidConfig.fluidHeight) {
-					fluidConfig.mode = 'width';
-					fluidConfig.ratio = fluidConfig.initialDimensions.width / parseFloat(flags.dimensions.height);
-				} else if (!fluidConfig.fluidWidth && fluidConfig.fluidHeight) {
-					fluidConfig.mode = 'height';
-					fluidConfig.ratio = parseFloat(flags.dimensions.width) / fluidConfig.initialDimensions.height;
-				}
-
-				el.holderData.fluidConfig = fluidConfig;
-			}
-		}
-	}
-
-	//todo: see if possible to convert stagingRenderer to use HTML only
-	var stagingRenderer = (function() {
-		var svg = null,
-			stagingText = null,
-			stagingTextNode = null;
-		return function(graph) {
-			var rootNode = graph.root;
-			if (App.setup.supportsSVG) {
-				var firstTimeSetup = false;
-				var tnode = function(text) {
-					return document.createTextNode(text);
-				};
-				if (svg == null) {
-					firstTimeSetup = true;
-				}
-				svg = initSVG(svg, rootNode.properties.width, rootNode.properties.height);
-				if (firstTimeSetup) {
-					stagingText = newEl('text', SVG_NS);
-					stagingTextNode = tnode(null);
-					setAttr(stagingText, {
-						x: 0
-					});
-					stagingText.appendChild(stagingTextNode);
-					svg.appendChild(stagingText);
-					document.body.appendChild(svg);
-					svg.style.visibility = 'hidden';
-					svg.style.position = 'absolute';
-					svg.style.top = '-100%';
-					svg.style.left = '-100%';
-					//todo: workaround for zero-dimension <svg> tag in Opera 12
-					//svg.setAttribute('width', 0);
-					//svg.setAttribute('height', 0);
-				}
-
-				var holderTextGroup = rootNode.children.holderTextGroup;
-				var htgProps = holderTextGroup.properties;
-				setAttr(stagingText, {
-					'y': htgProps.font.size,
-					'style': cssProps({
-						'font-weight': htgProps.font.weight,
-						'font-size': htgProps.font.size + htgProps.font.units,
-						'font-family': htgProps.font.family,
-						'dominant-baseline': 'middle'
-					})
-				});
-
-				//Get bounding box for the whole string (total width and height)
-				stagingTextNode.nodeValue = htgProps.text;
-				var stagingTextBBox = stagingText.getBBox();
-
-				//Get line count and split the string into words
-				var lineCount = Math.ceil(stagingTextBBox.width / (rootNode.properties.width * App.setup.lineWrapRatio));
-				var words = htgProps.text.split(' ');
-				var newlines = htgProps.text.match(/\\n/g);
-				lineCount += newlines == null ? 0 : newlines.length;
-
-				//Get bounding box for the string with spaces removed
-				stagingTextNode.nodeValue = htgProps.text.replace(/[ ]+/g, '');
-				var computedNoSpaceLength = stagingText.getComputedTextLength();
-
-				//Compute average space width
-				var diffLength = stagingTextBBox.width - computedNoSpaceLength;
-				var spaceWidth = Math.round(diffLength / Math.max(1, words.length - 1));
-
-				//Get widths for every word with space only if there is more than one line
-				var wordWidths = [];
-				if (lineCount > 1) {
-					stagingTextNode.nodeValue = '';
-					for (var i = 0; i < words.length; i++) {
-						if (words[i].length === 0) continue;
-						stagingTextNode.nodeValue = decodeHtmlEntity(words[i]);
-						var bbox = stagingText.getBBox();
-						wordWidths.push({
-							text: words[i],
-							width: bbox.width
-						});
-					}
-				}
-
-				return {
-					spaceWidth: spaceWidth,
-					lineCount: lineCount,
-					boundingBox: stagingTextBBox,
-					words: wordWidths
-				};
-			} else {
-				//todo: canvas fallback for measuring text on android 2.3
-				return false;
-			}
-		};
-	})();
-
-	var sgCanvasRenderer = (function() {
-		var canvas = newEl('canvas');
-		var ctx = null;
-
-		return function(sceneGraph) {
-			if (ctx == null) {
-				ctx = canvas.getContext('2d');
-			}
-			var root = sceneGraph.root;
-			canvas.width = App.dpr(root.properties.width);
-			canvas.height = App.dpr(root.properties.height);
-			ctx.textBaseline = 'middle';
-
-			ctx.fillStyle = root.children.holderBg.properties.fill;
-			ctx.fillRect(0, 0, App.dpr(root.children.holderBg.width), App.dpr(root.children.holderBg.height));
-
-			var textGroup = root.children.holderTextGroup;
-			var tgProps = textGroup.properties;
-			ctx.font = textGroup.properties.font.weight + ' ' + App.dpr(textGroup.properties.font.size) + textGroup.properties.font.units + ' ' + textGroup.properties.font.family + ', monospace';
-			ctx.fillStyle = textGroup.properties.fill;
-
-			for (var lineKey in textGroup.children) {
-				var line = textGroup.children[lineKey];
-				for (var wordKey in line.children) {
-					var word = line.children[wordKey];
-					var x = App.dpr(textGroup.x + line.x + word.x);
-					var y = App.dpr(textGroup.y + line.y + word.y + (textGroup.properties.leading / 2));
-
-					ctx.fillText(word.properties.text, x, y);
-				}
-			}
-
-			return canvas.toDataURL('image/png');
-		};
-	})();
-
-	var sgSVGRenderer = (function() {
-		//Prevent IE <9 from initializing SVG renderer
-		if (!global.XMLSerializer) return;
-		var svg = initSVG(null, 0, 0);
-		var bgEl = newEl('rect', SVG_NS);
-		svg.appendChild(bgEl);
-
-		//todo: create a reusable pool for textNodes, resize if more words present
-
-		return function(sceneGraph, renderSettings) {
-			var root = sceneGraph.root;
-
-			initSVG(svg, root.properties.width, root.properties.height);
-			var groups = svg.querySelectorAll('g');
-
-			for (var i = 0; i < groups.length; i++) {
-				groups[i].parentNode.removeChild(groups[i]);
-			}
-
-			setAttr(bgEl, {
-				'width': root.children.holderBg.width,
-				'height': root.children.holderBg.height,
-				'fill': root.children.holderBg.properties.fill
-			});
-
-			var textGroup = root.children.holderTextGroup;
-			var tgProps = textGroup.properties;
-			var textGroupEl = newEl('g', SVG_NS);
-			svg.appendChild(textGroupEl);
-
-			for (var lineKey in textGroup.children) {
-				var line = textGroup.children[lineKey];
-				for (var wordKey in line.children) {
-					var word = line.children[wordKey];
-					var x = textGroup.x + line.x + word.x;
-					var y = textGroup.y + line.y + word.y + (textGroup.properties.leading / 2);
-
-					var textEl = newEl('text', SVG_NS);
-					var textNode = document.createTextNode(null);
-
-					setAttr(textEl, {
-						'x': x,
-						'y': y,
-						'style': cssProps({
-							'fill': tgProps.fill,
-							'font-weight': tgProps.font.weight,
-							'font-family': tgProps.font.family + ', monospace',
-							'font-size': tgProps.font.size + tgProps.font.units,
-							'dominant-baseline': 'central'
-						})
-					});
-
-					textNode.nodeValue = word.properties.text;
-					textEl.appendChild(textNode);
-					textGroupEl.appendChild(textEl);
-				}
-			}
-
-			var svgString = 'data:image/svg+xml;base64,' +
-				btoa(unescape(encodeURIComponent(serializeSVG(svg, renderSettings))));
-			return svgString;
-		};
-	})();
-
-	//Helpers
-
-	/**
-	 * Generic new DOM element function
-	 *
-	 * @private
-	 * @param tag Tag to create
-	 * @param namespace Optional namespace value
-	 */
-	function newEl(tag, namespace) {
-		if (namespace == null) {
-			return document.createElement(tag);
-		} else {
-			return document.createElementNS(namespace, tag);
-		}
-	}
-
-	/**
-	 * Generic setAttribute function
-	 *
-	 * @private
-	 * @param el Reference to DOM element
-	 * @param attrs Object with attribute keys and values
-	 */
-	function setAttr(el, attrs) {
-		for (var a in attrs) {
-			el.setAttribute(a, attrs[a]);
-		}
-	}
-
-	/**
-	 * Generic SVG element creation function
-	 *
-	 * @private
-	 * @param svg SVG context, set to null if new
-	 * @param width Document width
-	 * @param height Document height
-	 */
-	function initSVG(svg, width, height) {
-		if (svg == null) {
-			svg = newEl('svg', SVG_NS);
-			var defs = newEl('defs', SVG_NS);
-			svg.appendChild(defs);
-		}
-		//IE throws an exception if this is set and Chrome requires it to be set
-		if (svg.webkitMatchesSelector) {
-			svg.setAttribute('xmlns', SVG_NS);
-		}
-
-		setAttr(svg, {
-			'width': width,
-			'height': height,
-			'viewBox': '0 0 ' + width + ' ' + height,
-			'preserveAspectRatio': 'none'
-		});
-		return svg;
-	}
-
-	/**
-	 * Generic SVG serialization function
-	 *
-	 * @private
-	 * @param svg SVG context
-	 * @param stylesheets CSS stylesheets to include
-	 */
-	function serializeSVG(svg, renderSettings) {
-		if (!global.XMLSerializer) return;
-		var serializer = new XMLSerializer();
-		var svgCSS = '';
-		var stylesheets = renderSettings.stylesheets;
-		var defs = svg.querySelector('defs');
-
-		//External stylesheets: Processing Instruction method
-		if (renderSettings.svgXMLStylesheet) {
-			var xml = new DOMParser().parseFromString('<xml />', 'application/xml');
-			//Add <?xml-stylesheet ?> directives
-			for (var i = stylesheets.length - 1; i >= 0; i--) {
-				var csspi = xml.createProcessingInstruction('xml-stylesheet', 'href="' + stylesheets[i] + '" rel="stylesheet"');
-				xml.insertBefore(csspi, xml.firstChild);
-			}
-
-			//Add <?xml ... ?> UTF-8 directive
-			var xmlpi = xml.createProcessingInstruction('xml', 'version="1.0" encoding="UTF-8" standalone="yes"');
-			xml.insertBefore(xmlpi, xml.firstChild);
-			xml.removeChild(xml.documentElement);
-			svgCSS = serializer.serializeToString(xml);
-		}
-
-		/*
-
-		//External stylesheets: <link> method
-		if (renderSettings.svgLinkStylesheet) {
-
-			defs.removeChild(defs.firstChild);
-			for (i = 0; i < stylesheets.length; i++) {
-				var link = document.createElementNS('http://www.w3.org/1999/xhtml', 'link');
-				link.setAttribute('href', stylesheets[i]);
-				link.setAttribute('rel', 'stylesheet');
-				link.setAttribute('type', 'text/css');
-				defs.appendChild(link);
-			}
-		}
-
-		//External stylesheets: <style> and @import method
-		if (renderSettings.svgImportStylesheet) {
-			var style = document.createElementNS(SVG_NS, 'style');
-			var styleText = [];
-
-			for (i = 0; i < stylesheets.length; i++) {
-				styleText.push('@import url(' + stylesheets[i] + ');');
-			}
-
-			var styleTextNode = document.createTextNode(styleText.join('\n'));
-			style.appendChild(styleTextNode);
-			defs.appendChild(style);
-		}
-
-		*/
-
-		var svgText = serializer.serializeToString(svg);
-		svgText = svgText.replace(/\&amp;(\#[0-9]{2,}\;)/g, '&$1');
-		return svgCSS + svgText;
-	}
-
-	/**
-	 * Shallow object clone and merge
-	 *
-	 * @param a Object A
-	 * @param b Object B
-	 * @returns {Object} New object with all of A's properties, and all of B's properties, overwriting A's properties
-	 */
-	function extend(a, b) {
-		var c = {};
-		for (var x in a) {
-			if (a.hasOwnProperty(x)) {
-				c[x] = a[x];
-			}
-		}
-		if (b != null) {
-			for (var y in b) {
-				if (b.hasOwnProperty(y)) {
-					c[y] = b[y];
-				}
-			}
-		}
-		return c;
-	}
-
-	/**
-	 * Takes a k/v list of CSS properties and returns a rule
-	 *
-	 * @param props CSS properties object
-	 */
-	function cssProps(props) {
-		var ret = [];
-		for (var p in props) {
-			if (props.hasOwnProperty(p)) {
-				ret.push(p + ':' + props[p]);
-			}
-		}
-		return ret.join(';');
-	}
-
-	/**
-	 * Prevents a function from being called too often, waits until a timer elapses to call it again
-	 *
-	 * @param fn Function to call
-	 */
-	function debounce(fn) {
-		if (!App.vars.debounceTimer) fn.call(this);
-		if (App.vars.debounceTimer) clearTimeout(App.vars.debounceTimer);
-		App.vars.debounceTimer = setTimeout(function() {
-			App.vars.debounceTimer = null;
-			fn.call(this);
-		}, App.setup.debounce);
-	}
-
-	/**
-	 * Holder-specific resize/orientation change callback, debounced to prevent excessive execution
-	 */
-	function resizeEvent() {
-		debounce(function() {
-			updateResizableElements(null);
-		});
-	}
-
-	/**
-	 * Converts a value into an array of DOM nodes
-	 *
-	 * @param val A string, a NodeList, a Node, or an HTMLCollection
-	 */
-	function getNodeArray(val) {
-		var retval = null;
-		if (typeof(val) == 'string') {
-			retval = document.querySelectorAll(val);
-		} else if (global.NodeList && val instanceof global.NodeList) {
-			retval = val;
-		} else if (global.Node && val instanceof global.Node) {
-			retval = [val];
-		} else if (global.HTMLCollection && val instanceof global.HTMLCollection) {
-			retval = val;
-		} else if (val === null) {
-			retval = [];
-		}
-		return retval;
-	}
-
-	/**
-	 * Checks if an image exists
-	 *
-	 * @param params Configuration object, must specify at least a src key
-	 * @param callback Callback to call once image status has been found
-	 */
-	function imageExists(src, callback) {
-		var image = new Image();
-		image.onerror = function() {
-			callback.call(this, false);
-		};
-		image.onload = function() {
-			callback.call(this, true);
-		};
-		image.src = src;
-	}
-
-	/**
-	 * Encodes HTML entities in a string
-	 *
-	 * @param str Input string
-	 */
-	function encodeHtmlEntity(str) {
-		var buf = [];
-		var charCode = 0;
-		for (var i = str.length - 1; i >= 0; i--) {
-			charCode = str.charCodeAt(i);
-			if (charCode > 128) {
-				buf.unshift(['&#', charCode, ';'].join(''));
-			} else {
-				buf.unshift(str[i]);
-			}
-		}
-		return buf.join('');
-	}
-
-	/**
-	 * Decodes HTML entities in a stirng
-	 *
-	 * @param str Input string
-	 */
-	function decodeHtmlEntity(str) {
-		return str.replace(/&#(\d+);/g, function(match, dec) {
-			return String.fromCharCode(dec);
-		});
-	}
-
-	// Scene graph
-
-	var SceneGraph = function(sceneProperties) {
-		var nodeCount = 1;
-
-		//todo: move merge to helpers section
-		function merge(parent, child) {
-			for (var prop in child) {
-				parent[prop] = child[prop];
-			}
-			return parent;
-		}
-
-		var SceneNode = augment.defclass({
-			constructor: function(name) {
-				nodeCount++;
-				this.parent = null;
-				this.children = {};
-				this.id = nodeCount;
-				this.name = 'n' + nodeCount;
-				if (name != null) {
-					this.name = name;
-				}
-				this.x = 0;
-				this.y = 0;
-				this.z = 0;
-				this.width = 0;
-				this.height = 0;
-			},
-			resize: function(width, height) {
-				if (width != null) {
-					this.width = width;
-				}
-				if (height != null) {
-					this.height = height;
-				}
-			},
-			moveTo: function(x, y, z) {
-				this.x = x != null ? x : this.x;
-				this.y = y != null ? y : this.y;
-				this.z = z != null ? z : this.z;
-			},
-			add: function(child) {
-					var name = child.name;
-					if (this.children[name] == null) {
-						this.children[name] = child;
-						child.parent = this;
-					} else {
-						throw 'SceneGraph: child with that name already exists: ' + name;
-					}
-				}
-				/*,	// probably unnecessary in Holder
-				remove: function(name){
-					if(this.children[name] == null){
-						throw 'SceneGraph: child with that name doesn\'t exist: '+name;
-					}
-					else{
-						child.parent = null;
-						delete this.children[name];
-					}
-				},
-				removeAll: function(){
-					for(var child in this.children){
-						this.remove(child);
-					}
-				}*/
-		});
-
-		var RootNode = augment(SceneNode, function(uber) {
-			this.constructor = function() {
-				uber.constructor.call(this, 'root');
-				this.properties = sceneProperties;
-			};
-		});
-
-		var Shape = augment(SceneNode, function(uber) {
-			function constructor(name, props) {
-				uber.constructor.call(this, name);
-				this.properties = {
-					fill: '#000'
-				};
-				if (props != null) {
-					merge(this.properties, props);
-				} else if (name != null && typeof name !== 'string') {
-					throw 'SceneGraph: invalid node name';
-				}
-			}
-
-			this.Group = augment.extend(this, {
-				constructor: constructor,
-				type: 'group'
-			});
-
-			this.Rect = augment.extend(this, {
-				constructor: constructor,
-				type: 'rect'
-			});
-
-			this.Text = augment.extend(this, {
-				constructor: function(text) {
-					constructor.call(this);
-					this.properties.text = text;
-				},
-				type: 'text'
-			});
-		});
-
-		var root = new RootNode();
-
-		this.Shape = Shape;
-		this.root = root;
-
-		return this;
-	};
-
-	//Set up flags
-
-	for (var flag in App.flags) {
-		if (!App.flags.hasOwnProperty(flag)) continue;
-		App.flags[flag].match = function(val) {
-			return val.match(this.regex);
-		};
-	}
-
-	//Properties set once on setup
-
-	App.setup = {
-		renderer: 'html',
-		debounce: 100,
-		ratio: 1,
-		supportsCanvas: false,
-		supportsSVG: false,
-		lineWrapRatio: 0.9,
-		renderers: ['html', 'canvas', 'svg']
-	};
-
-	App.dpr = function(val) {
-		return val * App.setup.ratio;
-	};
-
-	//Properties modified during runtime
-
-	App.vars = {
-		preempted: false,
-		resizableImages: [],
-		debounceTimer: null,
-		cache: {}
-	};
-
-	//Pre-flight
-
-	(function() {
-		var devicePixelRatio = 1,
-			backingStoreRatio = 1;
-
-		var canvas = newEl('canvas');
-		var ctx = null;
-
-		if (canvas.getContext) {
-			if (canvas.toDataURL('image/png').indexOf('data:image/png') != -1) {
-				App.setup.renderer = 'canvas';
-				ctx = canvas.getContext('2d');
-				App.setup.supportsCanvas = true;
-			}
-		}
-
-		if (App.setup.supportsCanvas) {
-			devicePixelRatio = global.devicePixelRatio || 1;
-			backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
-		}
-
-		App.setup.ratio = devicePixelRatio / backingStoreRatio;
-
-		if (!!document.createElementNS && !!document.createElementNS(SVG_NS, 'svg').createSVGRect) {
-			App.setup.renderer = 'svg';
-			App.setup.supportsSVG = true;
-		}
-	})();
-
-	//Exposing to environment and setting up listeners
-	register(Holder, 'Holder', global);
-
-	if (global.onDomReady) {
-		global.onDomReady(function() {
-			if (!App.vars.preempted) {
-				Holder.run();
-			}
-			if (global.addEventListener) {
-				global.addEventListener('resize', resizeEvent, false);
-				global.addEventListener('orientationchange', resizeEvent, false);
-			} else {
-				global.attachEvent('onresize', resizeEvent);
-			}
-
-			if (typeof global.Turbolinks == 'object') {
-				global.document.addEventListener('page:change', function() {
-					Holder.run();
-				});
-			}
-		});
-	}
-
-})(function(fn, name, global) {
-	var isAMD = (typeof define === 'function' && define.amd);
-	var isNode = (typeof exports === 'object');
-	var isWeb = !isNode;
-
-	if (isAMD) {
-		define(fn);
-	} else {
-		//todo: npm/browserify registration
-		global[name] = fn;
-	}
-}, this);
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/html5shiv.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/html5shiv.min.js
deleted file mode 100644
index d4c731a..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/html5shiv.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
-* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
-*/
-!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js
deleted file mode 100644
index e6a051d..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
-return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
-}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/nv.d3.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/nv.d3.min.js
deleted file mode 100644
index bddd4ae..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/nv.d3.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-(function(){function t(e,t){return(new Date(t,e+1,0)).getDate()}function n(e,t,n){return function(r,i,s){var o=e(r),u=[];o<r&&t(o);if(s>1)while(o<i){var a=new Date(+o);n(a)%s===0&&u.push(a),t(o)}else while(o<i)u.push(new Date(+o)),t(o);return u}}var e=window.nv||{};e.version="1.1.15b",e.dev=!0,window.nv=e,e.tooltip=e.tooltip||{},e.utils=e.utils||{},e.models=e.models||{},e.charts={},e.graphs=[],e.logs={},e.dispatch=d3.dispatch("render_start","render_end"),e.dev&&(e.dispatch.on("render_start",function(t){e.logs.startTime=+(new Date)}),e.dispatch.on("render_end",function(t){e.logs.endTime=+(new Date),e.logs.totalTime=e.logs.endTime-e.logs.startTime,e.log("total",e.logs.totalTime)})),e.log=function(){if(e.dev&&console.log&&console.log.apply)console.log.apply(console,arguments);else if(e.dev&&typeof console.log=="function"&&Function.prototype.bind){var t=Function.prototype.bind.call(console.log,console);t.apply(console,arguments)}return arguments[arguments.length-1]},e.render=function(n){n=n||1,e.render.active=!0,e.dispatch.render_start(),setTimeout(function(){var t,r;for(var i=0;i<n&&(r=e.render.queue[i]);i++)t=r.generate(),typeof r.callback==typeof Function&&r.callback(t),e.graphs.push(t);e.render.queue.splice(0,i),e.render.queue.length?setTimeout(arguments.callee,0):(e.dispatch.render_end(),e.render.active=!1)},0)},e.render.active=!1,e.render.queue=[],e.addGraph=function(t){typeof arguments[0]==typeof Function&&(t={generate:arguments[0],callback:arguments[1]}),e.render.queue.push(t),e.render.active||e.render()},e.identity=function(e){return e},e.strip=function(e){return e.replace(/(\s|&)/g,"")},d3.time.monthEnd=function(e){return new Date(e.getFullYear(),e.getMonth(),0)},d3.time.monthEnds=n(d3.time.monthEnd,function(e){e.setUTCDate(e.getUTCDate()+1),e.setDate(t(e.getMonth()+1,e.getFullYear()))},function(e){return e.getMonth()}),e.interactiveGuideline=function(){"use strict";function c(o){o.each(function(o){function g(){var e=d3.mouse(this),n=e[0],r=e[1],o=!0,a=!1;l&&(n=d3.event.offsetX,r=d3.event.offsetY,d3.event.target.tagName!=="svg"&&(o=!1),d3.event.target.className.baseVal.match("nv-legend")&&(a=!0)),o&&(n-=i.left,r-=i.top);if(n<0||r<0||n>p||r>d||d3.event.relatedTarget&&d3.event.relatedTarget.ownerSVGElement===undefined||a){if(l&&d3.event.relatedTarget&&d3.event.relatedTarget.ownerSVGElement===undefined&&d3.event.relatedTarget.className.match(t.nvPointerEventsClass))return;u.elementMouseout({mouseX:n,mouseY:r}),c.renderGuideLine(null);return}var f=s.invert(n);u.elementMousemove({mouseX:n,mouseY:r,pointXValue:f}),d3.event.type==="dblclick"&&u.elementDblclick({mouseX:n,mouseY:r,pointXValue:f})}var h=d3.select(this),p=n||960,d=r||400,v=h.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([o]),m=v.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer");m.append("g").attr("class","nv-interactiveGuideLine");if(!f)return;f.on("mousemove",g,!0).on("mouseout",g,!0).on("dblclick",g),c.renderGuideLine=function(t){if(!a)return;var n=v.select(".nv-interactiveGuideLine").selectAll("line").data(t!=null?[e.utils.NaNtoZero(t)]:[],String);n.enter().append("line").attr("class","nv-guideline").attr("x1",function(e){return e}).attr("x2",function(e){return e}).attr("y1",d).attr("y2",0),n.exit().remove()}})}var t=e.models.tooltip(),n=null,r=null,i={left:0,top:0},s=d3.scale.linear(),o=d3.scale.linear(),u=d3.dispatch("elementMousemove","elementMouseout","elementDblclick"),a=!0,f=null,l=navigator.userAgent.indexOf("MSIE")!==-1;return c.dispatch=u,c.tooltip=t,c.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.left=typeof e.left!="undefined"?e.left:i.left,c):i},c.width=function(e){return arguments.length?(n=e,c):n},c.height=function(e){return arguments.length?(r=e,c):r},c.xScale=function(e){return arguments.length?(s=e,c):s},c.showGuideLine=function(e){return arguments.length?(a=e,c):a},c.svgContainer=function(e){return arguments.length?(f=e,c):f},c},e.interactiveBisect=function(e,t,n){"use strict";if(!e instanceof Array)return null;typeof n!="function"&&(n=function(e,t){return e.x});var r=d3.bisector(n).left,i=d3.max([0,r(e,t)-1]),s=n(e[i],i);typeof s=="undefined"&&(s=i);if(s===t)return i;var o=d3.min([i+1,e.length-1]),u=n(e[o],o);return typeof u=="undefined"&&(u=o),Math.abs(u-t)>=Math.abs(s-t)?i:o},e.nearestValueIndex=function(e,t,n){"use strict";var r=Infinity,i=null;return e.forEach(function(e,s){var o=Math.abs(t-e);o<=r&&o<n&&(r=o,i=s)}),i},function(){"use strict";window.nv.tooltip={},window.nv.models.tooltip=function(){function y(){if(a){var e=d3.select(a);e.node().tagName!=="svg"&&(e=e.select("svg"));var t=e.node()?e.attr("viewBox"):null;if(t){t=t.split(" ");var n=parseInt(e.style("width"))/t[2];l.left=l.left*n,l.top=l.top*n}}}function b(e){var t;a?t=d3.select(a):t=d3.select("body");var n=t.select(".nvtooltip");return n.node()===null&&(n=t.append("div").attr("class","nvtooltip "+(u?u:"xy-tooltip")).attr("id",h)),n.node().innerHTML=e,n.style("top",0).style("left",0).style("opacity",0),n.selectAll("div, table, td, tr").classed(p,!0),n.classed(p,!0),n.node()}function w(){if(!c)return;if(!g(n))return;y();var t=l.left,u=o!=null?o:l.top,h=b(m(n));f=h;if(a){var p=a.getElementsByTagName("svg")[0],d=p?p.getBoundingClientRect():a.getBoundingClientRect(),v={left:0,top:0};if(p){var E=p.getBoundingClientRect(),S=a.getBoundingClientRect(),x=E.top;if(x<0){var T=a.getBoundingClientRect();x=Math.abs(x)>T.height?0:x}v.top=Math.abs(x-S.top),v.left=Math.abs(E.left-S.left)}t+=a.offsetLeft+v.left-2*a.scrollLeft,u+=a.offsetTop+v.top-2*a.scrollTop}return s&&s>0&&(u=Math.floor(u/s)*s),e.tooltip.calcTooltipPosition([t,u],r,i,h),w}var t=null,n=null,r="w",i=50,s=25,o=null,u=null,a=null,f=null,l={left:null,top:null},c=!0,h="nvtooltip-"+Math.floor(Math.random()*1e5),p="nv-pointer-events-none",d=function(e,t){return e},v=function(e){return e},m=function(e){if(t!=null)return t;if(e==null)return"";var n=d3.select(document.createElement("table")),r=n.selectAll("thead").data([e]).enter().append("thead");r.append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(v(e.value));var i=n.selectAll("tbody").data([e]).enter().append("tbody"),s=i.selectAll("tr").data(function(e){return e.series}).enter().append("tr").classed("highlight",function(e){return e.highlight});s.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(e){return e.color}),s.append("td").classed("key",!0).html(function(e){return e.key}),s.append("td").classed("value",!0).html(function(e,t){return d(e.value,t)}),s.selectAll("td").each(function(e){if(e.highlight){var t=d3.scale.linear().domain([0,1]).range(["#fff",e.color]),n=.6;d3.select(this).style("border-bottom-color",t(n)).style("border-top-color",t(n))}});var o=n.node().outerHTML;return e.footer!==undefined&&(o+="<div class='footer'>"+e.footer+"</div>"),o},g=function(e){return e&&e.series&&e.series.length>0?!0:!1};return w.nvPointerEventsClass=p,w.content=function(e){return arguments.length?(t=e,w):t},w.tooltipElem=function(){return f},w.contentGenerator=function(e){return arguments.length?(typeof e=="function"&&(m=e),w):m},w.data=function(e){return arguments.length?(n=e,w):n},w.gravity=function(e){return arguments.length?(r=e,w):r},w.distance=function(e){return arguments.length?(i=e,w):i},w.snapDistance=function(e){return arguments.length?(s=e,w):s},w.classes=function(e){return arguments.length?(u=e,w):u},w.chartContainer=function(e){return arguments.length?(a=e,w):a},w.position=function(e){return arguments.length?(l.left=typeof e.left!="undefined"?e.left:l.left,l.top=typeof e.top!="undefined"?e.top:l.top,w):l},w.fixedTop=function(e){return arguments.length?(o=e,w):o},w.enabled=function(e){return arguments.length?(c=e,w):c},w.valueFormatter=function(e){return arguments.length?(typeof e=="function"&&(d=e),w):d},w.headerFormatter=function(e){return arguments.length?(typeof e=="function"&&(v=e),w):v},w.id=function(){return h},w},e.tooltip.show=function(t,n,r,i,s,o){var u=document.createElement("div");u.className="nvtooltip "+(o?o:"xy-tooltip");var a=s;if(!s||s.tagName.match(/g|svg/i))a=document.getElementsByTagName("body")[0];u.style.left=0,u.style.top=0,u.style.opacity=0,u.innerHTML=n,a.appendChild(u),s&&(t[0]=t[0]-s.scrollLeft,t[1]=t[1]-s.scrollTop),e.tooltip.calcTooltipPosition(t,r,i,u)},e.tooltip.findFirstNonSVGParent=function(e){while(e.tagName.match(/^g|svg$/i)!==null)e=e.parentNode;return e},e.tooltip.findTotalOffsetTop=function(e,t){var n=t;do isNaN(e.offsetTop)||(n+=e.offsetTop);while(e=e.offsetParent);return n},e.tooltip.findTotalOffsetLeft=function(e,t){var n=t;do isNaN(e.offsetLeft)||(n+=e.offsetLeft);while(e=e.offsetParent);return n},e.tooltip.calcTooltipPosition=function(t,n,r,i){var s=parseInt(i.offsetHeight),o=parseInt(i.offsetWidth),u=e.utils.windowSize().width,a=e.utils.windowSize().height,f=window.pageYOffset,l=window.pageXOffset,c,h;a=window.innerWidth>=document.body.scrollWidth?a:a-16,u=window.innerHeight>=document.body.scrollHeight?u:u-16,n=n||"s",r=r||20;var p=function(t){return e.tooltip.findTotalOffsetTop(t,h)},d=function(t){return e.tooltip.findTotalOffsetLeft(t,c)};switch(n){case"e":c=t[0]-o-r,h=t[1]-s/2;var v=d(i),m=p(i);v<l&&(c=t[0]+r>l?t[0]+r:l-v+c),m<f&&(h=f-m+h),m+s>f+a&&(h=f+a-m+h-s);break;case"w":c=t[0]+r,h=t[1]-s/2;var v=d(i),m=p(i);v+o>u&&(c=t[0]-o-r),m<f&&(h=f+5),m+s>f+a&&(h=f+a-m+h-s);break;case"n":c=t[0]-o/2-5,h=t[1]+r;var v=d(i),m=p(i);v<l&&(c=l+5),v+o>u&&(c=c-o/2+5),m+s>f+a&&(h=f+a-m+h-s);break;case"s":c=t[0]-o/2,h=t[1]-s-r;var v=d(i),m=p(i);v<l&&(c=l+5),v+o>u&&(c=c-o/2+5),f>m&&(h=f);break;case"none":c=t[0],h=t[1]-r;var v=d(i),m=p(i)}return i.style.left=c+"px",i.style.top=h+"px",i.style.opacity=1,i.style.position="absolute",i},e.tooltip.cleanup=function(){var e=document.getElementsByClassName("nvtooltip"),t=[];while(e.length)t.push(e[0]),e[0].style.transitionDelay="0 !important",e[0].style.opacity=0,e[0].className="nvtooltip-pending-removal";setTimeout(function(){while(t.length){var e=t.pop();e.parentNode.removeChild(e)}},500)}}(),e.utils.windowSize=function(){var e={width:640,height:480};return document.body&&document.body.offsetWidth&&(e.width=document.body.offsetWidth,e.height=document.body.offsetHeight),document.compatMode=="CSS1Compat"&&document.documentElement&&document.documentElement.offsetWidth&&(e.width=document.documentElement.offsetWidth,e.height=document.documentElement.offsetHeight),window.innerWidth&&window.innerHeight&&(e.width=window.innerWidth,e.height=window.innerHeight),e},e.utils.windowResize=function(e){if(e===undefined)return;var t=window.onresize;window.onresize=function(n){typeof t=="function"&&t(n),e(n)}},e.utils.getColor=function(t){return arguments.length?Object.prototype.toString.call(t)==="[object Array]"?function(e,n){return e.color||t[n%t.length]}:t:e.utils.defaultColor()},e.utils.defaultColor=function(){var e=d3.scale.category20().range();return function(t,n){return t.color||e[n%e.length]}},e.utils.customTheme=function(e,t,n){t=t||function(e){return e.key},n=n||d3.scale.category20().range();var r=n.length;return function(i,s){var o=t(i);return r||(r=n.length),typeof e[o]!="undefined"?typeof e[o]=="function"?e[o]():e[o]:n[--r]}},e.utils.pjax=function(t,n){function r(r){d3.html(r,function(r){var i=d3.select(n).node();i.parentNode.replaceChild(d3.select(r).select(n).node(),i),e.utils.pjax(t,n)})}d3.selectAll(t).on("click",function(){history.pushState(this.href,this.textContent,this.href),r(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&r(d3.event.state)})},e.utils.calcApproxTextWidth=function(e){if(typeof e.style=="function"&&typeof e.text=="function"){var t=parseInt(e.style("font-size").replace("px","")),n=e.text().length;return n*t*.5}return 0},e.utils.NaNtoZero=function(e){return typeof e!="number"||isNaN(e)||e===null||e===Infinity?0:e},e.utils.optionsFunc=function(e){return e&&d3.map(e).forEach(function(e,t){typeof this[e]=="function"&&this[e](t)}.bind(this)),this},e.models.axis=function(){"use strict";function m(e){return e.each(function(e){var i=d3.select(this),m=i.selectAll("g.nv-wrap.nv-axis").data([e]),g=m.enter().append("g").attr("class","nvd3 nv-wrap nv-axis"),y=g.append("g"),b=m.select("g");p!==null?t.ticks(p):(t.orient()=="top"||t.orient()=="bottom")&&t.ticks(Math.abs(s.range()[1]-s.range()[0])/100),b.transition().call(t),v=v||t.scale();var w=t.tickFormat();w==null&&(w=v.tickFormat());var E=b.selectAll("text.nv-axislabel").data([o||null]);E.exit().remove();switch(t.orient()){case"top":E.enter().append("text").attr("class","nv-axislabel");var S=s.range().length==2?s.range()[1]:s.range()[s.range().length-1]+(s.range()[1]-s.range()[0]);E.attr("text-anchor","middle").attr("y",0).attr("x",S/2);if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text"),x.exit().remove(),x.attr("transform",function(e,t){return"translate("+s(e)+",0)"}).select("text").attr("dy","-0.5em").attr("y",-t.tickPadding()).attr("text-anchor","middle").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate("+s.range()[t]+",0)"})}break;case"bottom":var T=36,N=30,C=b.selectAll("g").select("text");if(f%360){C.each(function(e,t){var n=this.getBBox().width;n>N&&(N=n)});var k=Math.abs(Math.sin(f*Math.PI/180)),T=(k?k*N:N)+30;C.attr("transform",function(e,t,n){return"rotate("+f+" 0,0)"}).style("text-anchor",f%360>0?"start":"end")}E.enter().append("text").attr("class","nv-axislabel");var S=s.range().length==2?s.range()[1]:s.range()[s.range().length-1]+(s.range()[1]-s.range()[0]);E.attr("text-anchor","middle").attr("y",T).attr("x",S/2);if(u){var x=m.selectAll("g.nv-axisMaxMin").data([s.domain()[0],s.domain()[s.domain().length-1]]);x.enter().append("g").attr("class","nv-axisMaxMin").append("text"),x.exit().remove(),x.attr("transform",function(e,t){return"translate("+(s(e)+(h?s.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",t.tickPadding()).attr("transform",function(e,t,n){return"rotate("+f+" 0,0)"}).style("text-anchor",f?f%360>0?"start":"end":"middle").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate("+(s(e)+(h?s.rangeBand()/2:0))+",0)"})}c&&C.attr("transform",function(e,t){return"translate(0,"+(t%2==0?"0":"12")+")"});break;case"right":E.enter().append("text").attr("class","nv-axislabel"),E.style("text-anchor",l?"middle":"begin").attr("transform",l?"rotate(90)":"").attr("y",l?-Math.max(n.right,r)+12:-10).attr("x",l?s.range()[0]/2:t.tickPadding());if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(e,t){return"translate(0,"+s(e)+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",t.tickPadding()).style("text-anchor","start").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate(0,"+s.range()[t]+")"}).select("text").style("opacity",1)}break;case"left":E.enter().append("text").attr("class","nv-axislabel"),E.style("text-anchor",l?"middle":"end").attr("transform",l?"rotate(-90)":"").attr("y",l?-Math.max(n.left,r)+d:-10).attr("x",l?-s.range()[0]/2:-t.tickPadding());if(u){var x=m.selectAll("g.nv-axisMaxMin").data(s.domain());x.enter().append("g").attr("class","nv-axisMaxMin").append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(e,t){return"translate(0,"+v(e)+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-t.tickPadding()).attr("text-anchor","end").text(function(e,t){var n=w(e);return(""+n).match("NaN")?"":n}),x.transition().attr("transform",function(e,t){return"translate(0,"+s.range()[t]+")"}).select("text").style("opacity",1)}}E.text(function(e){return e}),u&&(t.orient()==="left"||t.orient()==="right")&&(b.selectAll("g").each(function(e,t){d3.select(this).select("text").attr("opacity",1);if(s(e)<s.range()[1]+10||s(e)>s.range()[0]-10)(e>1e-10||e<-1e-10)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0)}),s.domain()[0]==s.domain()[1]&&s.domain()[0]==0&&m.selectAll("g.nv-axisMaxMin").style("opacity",function(e,t){return t?0:1}));if(u&&(t.orient()==="top"||t.orient()==="bottom")){var L=[];m.selectAll("g.nv-axisMaxMin").each(function(e,t){try{t?L.push(s(e)-this.getBBox().width-4):L.push(s(e)+this.getBBox().width+4)}catch(n){t?L.push(s(e)-4):L.push(s(e)+4)}}),b.selectAll("g").each(function(e,t){if(s(e)<L[0]||s(e)>L[1])e>1e-10||e<-1e-10?d3.select(this).remove():d3.select(this).select("text").remove()})}a&&b.selectAll(".tick").filter(function(e){return!parseFloat(Math.round(e.__data__*1e5)/1e6)&&e.__data__!==undefined}).classed("zero",!0),v=s.copy()}),m}var t=d3.svg.axis(),n={top:0,right:0,bottom:0,left:0},r=75,i=60,s=d3.scale.linear(),o=null,u=!0,a=!0,f=0,l=!0,c=!1,h=!1,p=null,d=12;t.scale(s).orient("bottom").tickFormat(function(e){return e});var v;return m.axis=t,d3.rebind(m,t,"orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"),d3.rebind(m,s,"domain","range","rangeBand","rangeBands"),m.options=e.utils.optionsFunc.bind(m),m.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,m):n},m.width=function(e){return arguments.length?(r=e,m):r},m.ticks=function(e){return arguments.length?(p=e,m):p},m.height=function(e){return arguments.length?(i=e,m):i},m.axisLabel=function(e){return arguments.length?(o=e,m):o},m.showMaxMin=function(e){return arguments.length?(u=e,m):u},m.highlightZero=function(e){return arguments.length?(a=e,m):a},m.scale=function(e){return arguments.length?(s=e,t.scale(s),h=typeof s.rangeBands=="function",d3.rebind(m,s,"domain","range","rangeBand","rangeBands"),m):s},m.rotateYLabel=function(e){return arguments.length?(l=e,m):l},m.rotateLabels=function(e){return arguments.length?(f=e,m):f},m.staggerLabels=function(e){return arguments.length?(c=e,m):c},m.axisLabelDistance=function(e){return arguments.length?(d=e,m):d},m},e.models.bullet=function(){"use strict";function m(e){return e.each(function(e,n){var p=c-t.left-t.right,m=h-t.top-t.bottom,g=d3.select(this),y=i.call(this,e,n).slice().sort(d3.descending),b=s.call(this,e,n).slice().sort(d3.descending),w=o.call(this,e,n).slice().sort(d3.descending),E=u.call(this,e,n).slice(),S=a.call(this,e,n).slice(),x=f.call(this,e,n).slice(),T=d3.scale.linear().domain(d3.extent(d3.merge([l,y]))).range(r?[p,0]:[0,p]),N=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(T.range());this.__chart__=T;var C=d3.min(y),k=d3.max(y),L=y[1],A=g.selectAll("g.nv-wrap.nv-bullet").data([e]),O=A.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet"),M=O.append("g"),_=A.select("g");M.append("rect").attr("class","nv-range nv-rangeMax"),M.append("rect").attr("class","nv-range nv-rangeAvg"),M.append("rect").attr("class","nv-range nv-rangeMin"),M.append("rect").attr("class","nv-measure"),M.append("path").attr("class","nv-markerTriangle"),A.attr("transform","translate("+t.left+","+t.top+")");var D=function(e){return Math.abs(N(e)-N(0))},P=function(e){return Math.abs(T(e)-T(0))},H=function(e){return e<0?N(e):N(0)},B=function(e){return e<0?T(e):T(0)};_.select("rect.nv-rangeMax").attr("height",m).attr("width",P(k>0?k:C)).attr("x",B(k>0?k:C)).datum(k>0?k:C),_.select("rect.nv-rangeAvg").attr("height",m).attr("width",P(L)).attr("x",B(L)).datum(L),_.select("rect.nv-rangeMin").attr("height",m).attr("width",P(k)).attr("x",B(k)).attr("width",P(k>0?C:k)).attr("x",B(k>0?C:k)).datum(k>0?C:k),_.select("rect.nv-measure").style("fill",d).attr("height",m/3).attr("y",m/3).attr("width",w<0?T(0)-T(w[0]):T(w[0])-T(0)).attr("x",B(w)).on("mouseover",function(){v.elementMouseover({value:w[0],label:x[0]||"Current",pos:[T(w[0]),m/2]})}).on("mouseout",function(){v.elementMouseout({value:w[0],label:x[0]||"Current"})});var j=m/6;b[0]?_.selectAll("path.nv-markerTriangle").attr("transform",function(e){return"translate("+T(b[0])+","+m/2+")"}).attr("d","M0,"+j+"L"+j+","+ -j+" "+ -j+","+ -j+"Z").on("mouseover",function(){v.elementMouseover({value:b[0],label:S[0]||"Previous",pos:[T(b[0]),m/2]})}).on("mouseout",function(){v.elementMouseout({value:b[0],label:S[0]||"Previous"})}):_.selectAll("path.nv-markerTriangle").remove(),A.selectAll(".nv-range").on("mouseover",function(e,t){var n=E[t]||(t?t==1?"Mean":"Minimum":"Maximum");v.elementMouseover({value:e,label:n,pos:[T(e),m/2]})}).on("mouseout",function(e,t){var n=E[t]||(t?t==1?"Mean":"Minimum":"Maximum");v.elementMouseout({value:e,label:n})})}),m}var t={top:0,right:0,bottom:0,left:0},n="left",r=!1,i=function(e){return e.ranges},s=function(e){return e.markers},o=function(e){return e.measures},u=function(e){return e.rangeLabels?e.rangeLabels:[]},a=function(e){return e.markerLabels?e.markerLabels:[]},f=function(e){return e.measureLabels?e.measureLabels:[]},l=[0],c=380,h=30,p=null,d=e.utils.getColor(["#1f77b4"]),v=d3.dispatch("elementMouseover","elementMouseout");return m.dispatch=v,m.options=e.utils.optionsFunc.bind(m),m.orient=function(e){return arguments.length?(n=e,r=n=="right"||n=="bottom",m):n},m.ranges=function(e){return arguments.length?(i=e,m):i},m.markers=function(e){return arguments.length?(s=e,m):s},m.measures=function(e){return arguments.length?(o=e,m):o},m.forceX=function(e){return arguments.length?(l=e,m):l},m.width=function(e){return arguments.length?(c=e,m):c},m.height=function(e){return arguments.length?(h=e,m):h},m.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,m):t},m.tickFormat=function(e){return arguments.length?(p=e,m):p},m.color=function(t){return arguments.length?(d=e.utils.getColor(t),m):d},m},e.models.bulletChart=function(){"use strict";function m(e){return e.each(function(n,h){var g=d3.select(this),y=(a||parseInt(g.style("width"))||960)-i.left-i.right,b=f-i.top-i.bottom,w=this;m.update=function(){m(e)},m.container=this;if(!n||!s.call(this,n,h)){var E=g.selectAll(".nv-noData").data([p]);return E.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),E.attr("x",i.left+y/2).attr("y",18+i.top+b/2).text(function(e){return e}),m}g.selectAll(".nv-noData").remove();var S=s.call(this,n,h).slice().sort(d3.descending),x=o.call(this,n,h).slice().sort(d3.descending),T=u.call(this,n,h).slice().sort(d3.descending),N=g.selectAll("g.nv-wrap.nv-bulletChart").data([n]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart"),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-bulletWrap"),k.append("g").attr("class","nv-titles"),N.attr("transform","translate("+i.left+","+i.top+")");var A=d3.scale.linear().domain([0,Math.max(S[0],x[0],T[0])]).range(r?[y,0]:[0,y]),O=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(A.range());this.__chart__=A;var M=function(e){return Math.abs(O(e)-O(0))},_=function(e){return Math.abs(A(e)-A(0))},D=k.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(f-i.top-i.bottom)/2+")");D.append("text").attr("class","nv-title").text(function(e){return e.title}),D.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(e){return e.subtitle}),t.width(y).height(b);var P=L.select(".nv-bulletWrap");d3.transition(P).call(t);var H=l||A.tickFormat(y/100),B=L.selectAll("g.nv-tick").data(A.ticks(y/50),function(e){return this.textContent||H(e)}),j=B.enter().append("g").attr("class","nv-tick").attr("transform",function(e){return"translate("+O(e)+",0)"}).style("opacity",1e-6);j.append("line").attr("y1",b).attr("y2",b*7/6),j.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",b*7/6).text(H);var F=d3.transition(B).attr("transform",function(e){return"translate("+A(e)+",0)"}).style("opacity",1);F.select("line").attr("y1",b).attr("y2",b*7/6),F.select("text").attr("y",b*7/6),d3.transition(B.exit()).attr("transform",function(e){return"translate("+A(e)+",0)"}).style("opacity",1e-6).remove(),d.on("tooltipShow",function(e){e.key=n.title,c&&v(e,w.parentNode)})}),d3.timer.flush(),m}var t=e.models.bullet(),n="left",r=!1,i={top:5,right:40,bottom:20,left:120},s=function(e){return e.ranges},o=function(e){return e.markers},u=function(e){return e.measures},a=null,f=55,l=null,c=!0,h=function(e,t,n,r,i){return"<h3>"+t+"</h3>"+"<p>"+n+"</p>"},p="No Data Available.",d=d3.dispatch("tooltipShow","tooltipHide"),v=function(t,n){var r=t.pos[0]+(n.offsetLeft||0)+i.left,s=t.pos[1]+(n.offsetTop||0)+i.top,o=h(t.key,t.label,t.value,t,m);e.tooltip.show([r,s],o,t.value<0?"e":"w",null,n)};return t.dispatch.on("elementMouseover.tooltip",function(e){d.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){d.tooltipHide(e)}),d.on("tooltipHide",function(){c&&e.tooltip.cleanup()}),m.dispatch=d,m.bullet=t,d3.rebind(m,t,"color"),m.options=e.utils.optionsFunc.bind(m),m.orient=function(e){return arguments.length?(n=e,r=n=="right"||n=="bottom",m):n},m.ranges=function(e){return arguments.length?(s=e,m):s},m.markers=function(e){return arguments.length?(o=e,m):o},m.measures=function(e){return arguments.length?(u=e,m):u},m.width=function(e){return arguments.length?(a=e,m):a},m.height=function(e){return arguments.length?(f=e,m):f},m.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.right=typeof e.right!="undefined"?e.right:i.right,i.bottom=typeof e.bottom!="undefined"?e.bottom:i.bottom,i.left=typeof e.left!="undefined"?e.left:i.left,m):i},m.tickFormat=function(e){return arguments.length?(l=e,m):l},m.tooltips=function(e){return arguments.length?(c=e,m):c},m.tooltipContent=function(e){return arguments.length?(h=e,m):h},m.noData=function(e){return arguments.length?(p=e,m):p},m},e.models.cumulativeLineChart=function(){"use strict";function D(b){return b.each(function(b){function q(e,t){d3.select(D.container).style("cursor","ew-resize")}function R(e,t){M.x=d3.event.x,M.i=Math.round(O.invert(M.x)),rt()}function U(e,t){d3.select(D.container).style("cursor","auto"),x.index=M.i,k.stateChange(x)}function rt(){nt.data([M]);var e=D.transitionDuration();D.transitionDuration(0),D.update(),D.transitionDuration(e)}var A=d3.select(this).classed("nv-chart-"+S,!0),H=this,B=(f||parseInt(A.style("width"))||960)-u.left-u.right,j=(l||parseInt(A.style("height"))||400)-u.top-u.bottom;D.update=function(){A.transition().duration(L).call(D)},D.container=this,x.disabled=b.map(function(e){return!!e.disabled});if(!T){var F;T={};for(F in x)x[F]instanceof Array?T[F]=x[F].slice(0):T[F]=x[F]}var I=d3.behavior.drag().on("dragstart",q).on("drag",R).on("dragend",U);if(!b||!b.length||!b.filter(function(e){return e.values.length}).length){var z=A.selectAll(".nv-noData").data([N]);return z.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),z.attr("x",u.left+B/2).attr("y",u.top+j/2).text(function(e){return e}),D}A.selectAll(".nv-noData").remove(),w=t.xScale(),E=t.yScale();if(!y){var W=b.filter(function(e){return!e.disabled}).map(function(e,n){var r=d3.extent(e.values,t.y());return r[0]<-0.95&&(r[0]=-0.95),[(r[0]-r[1])/(1+r[1]),(r[1]-r[0])/(1+r[0])]}),X=[d3.min(W,function(e){return e[0]}),d3.max(W,function(e){return e[1]})];t.yDomain(X)}else t.yDomain(null);O.domain([0,b[0].values.length-1]).range([0,B]).clamp(!0);var b=P(M.i,b),V=g?"none":"all",$=A.selectAll("g.nv-wrap.nv-cumulativeLine").data([b]),J=$.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),K=$.select("g");J.append("g").attr("class","nv-interactive"),J.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),J.append("g").attr("class","nv-y nv-axis"),J.append("g").attr("class","nv-background"),J.append("g").attr("class","nv-linesWrap").style("pointer-events",V),J.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),J.append("g").attr("class","nv-legendWrap"),J.append("g").attr("class","nv-controlsWrap"),c&&(i.width(B),K.select(".nv-legendWrap").datum(b).call(i),u.top!=i.height()&&(u.top=i.height(),j=(l||parseInt(A.style("height"))||400)-u.top-u.bottom),K.select(".nv-legendWrap").attr("transform","translate(0,"+ -u.top+")"));if(m){var Q=[{key:"Re-scale y-axis",disabled:!y}];s.width(140).color(["#444","#444","#444"]).rightAlign(!1).margin({top:5,right:0,bottom:5,left:20}),K.select(".nv-controlsWrap").datum(Q).attr("transform","translate(0,"+ -u.top+")").call(s)}$.attr("transform","translate("+u.left+","+u.top+")"),d&&K.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)");var G=b.filter(function(e){return e.tempDisabled});$.select(".tempDisabled").remove(),G.length&&$.append("text").attr("class","tempDisabled").attr("x",B/2).attr("y","-.71em").style("text-anchor","end").text(G.map(function(e){return e.key}).join(", ")+" values cannot be calculated for this time period."),g&&(o.width(B).height(j).margin({left:u.left,top:u.top}).svgContainer(A).xScale(w),$.select(".nv-interactive").call(o)),J.select(".nv-background").append("rect"),K.select(".nv-background rect").attr("width",B).attr("height",j),t.y(function(e){return e.display.y}).width(B).height(j).color(b.map(function(e,t){return e.color||a(e,t)}).filter(function(e,t){return!b[t].disabled&&!b[t].tempDisabled}));var Y=K.select(".nv-linesWrap").datum(b.filter(function(e){return!e.disabled&&!e.tempDisabled}));Y.call(t),b.forEach(function(e,t){e.seriesIndex=t});var Z=b.filter(function(e){return!e.disabled&&!!C(e)}),et=K.select(".nv-avgLinesWrap").selectAll("line").data(Z,function(e){return e.key}),tt=function(e){var t=E(C(e));return t<0?0:t>j?j:t};et.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(e,n){return t.color()(e,e.seriesIndex)}).attr("x1",0).attr("x2",B).attr("y1",tt).attr("y2",tt),et.style("stroke-opacity",function(e){var t=E(C(e));return t<0||t>j?0:1}).attr("x1",0).attr("x2",B).attr("y1",tt).attr("y2",tt),et.exit().remove();var nt=Y.selectAll(".nv-indexLine").data([M]);nt.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(I),nt.attr("transform",function(e){return"translate("+O(e.i)+",0)"}).attr("height",j),h&&(n.scale(w).ticks(Math.min(b[0].values.length,B/70)).tickSize(-j,0),K.select(".nv-x.nv-axis").attr("transform","translate(0,"+E.range()[0]+")"),d3.transition(K.select(".nv-x.nv-axis")).call(n)),p&&(r.scale(E).ticks(j/36).tickSize(-B,0),d3.transition(K.select(".nv-y.nv-axis")).call(r)),K.select(".nv-background rect").on("click",function(){M.x=d3.mouse(this)[0],M.i=Math.round(O.invert(M.x)),x.index=M.i,k.stateChange(x),rt()}),t.dispatch.on("elementClick",function(e){M.i=e.pointIndex,M.x=O(M.i),x.index=M.i,k.stateChange(x),rt()}),s.dispatch.on("legendClick",function(e,t){e.disabled=!e.disabled,y=!e.disabled,x.rescaleY=y,k.stateChange(x),D.update()}),i.dispatch.on("stateChange",function(e){x.disabled=e.disabled,k.stateChange(x),D.update()}),o.dispatch.on("elementMousemove",function(i){t.clearHighlights();var s,f,l,c=[];b.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){f=e.interactiveBisect(n.values,i.pointXValue,D.x()),t.highlightPoint(r,f,!0);var o=n.values[f];if(typeof o=="undefined")return;typeof s=="undefined"&&(s=o),typeof l=="undefined"&&(l=D.xScale()(D.x()(o,f))),c.push({key:n.key,value:D.y()(o,f),color:a(n,n.seriesIndex)})});if(c.length>2){var h=D.yScale().invert(i.mouseY),p=Math.abs(D.yScale().domain()[0]-D.yScale().domain()[1]),d=.03*p,m=e.nearestValueIndex(c.map(function(e){return e.value}),h,d);m!==null&&(c[m].highlight=!0)}var g=n.tickFormat()(D.x()(s,f),f);o.tooltip.position({left:l+u.left,top:i.mouseY+u.top}).chartContainer(H.parentNode).enabled(v).valueFormatter(function(e,t){return r.tickFormat()(e)}).data({value:g,series:c})(),o.renderGuideLine(l)}),o.dispatch.on("elementMouseout",function(e){k.tooltipHide(),t.clearHighlights()}),k.on("tooltipShow",function(e){v&&_(e,H.parentNode)}),k.on("changeState",function(e){typeof e.disabled!="undefined"&&(b.forEach(function(t,n){t.disabled=e.disabled[n]}),x.disabled=e.disabled),typeof e.index!="undefined"&&(M.i=e.index,M.x=O(M.i),x.index=e.index,nt.data([M])),typeof e.rescaleY!="undefined"&&(y=e.rescaleY),D.update()})}),D}function P(e,n){return n.map(function(n,r){if(!n.values)return n;var i=t.y()(n.values[e],e);return i<-0.95&&!A?(n.tempDisabled=!0,n):(n.tempDisabled=!1,n.values=
-n.values.map(function(e,n){return e.display={y:(t.y()(e,n)-i)/(1+i)},e}),n)})}var t=e.models.line(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.interactiveGuideline(),u={top:30,right:30,bottom:50,left:60},a=e.utils.defaultColor(),f=null,l=null,c=!0,h=!0,p=!0,d=!1,v=!0,m=!0,g=!1,y=!0,b=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},w,E,S=t.id(),x={index:0,rescaleY:y},T=null,N="No Data Available.",C=function(e){return e.average},k=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),L=250,A=!1;n.orient("bottom").tickPadding(7),r.orient(d?"right":"left"),s.updateState(!1);var O=d3.scale.linear(),M={i:0,x:0},_=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=b(i.series.key,a,f,i,D);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],k.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){k.tooltipHide(e)}),k.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),D.dispatch=k,D.lines=t,D.legend=i,D.xAxis=n,D.yAxis=r,D.interactiveLayer=o,d3.rebind(D,t,"defined","isArea","x","y","xScale","yScale","size","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","useVoronoi","id"),D.options=e.utils.optionsFunc.bind(D),D.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,D):u},D.width=function(e){return arguments.length?(f=e,D):f},D.height=function(e){return arguments.length?(l=e,D):l},D.color=function(t){return arguments.length?(a=e.utils.getColor(t),i.color(a),D):a},D.rescaleY=function(e){return arguments.length?(y=e,D):y},D.showControls=function(e){return arguments.length?(m=e,D):m},D.useInteractiveGuideline=function(e){return arguments.length?(g=e,e===!0&&(D.interactive(!1),D.useVoronoi(!1)),D):g},D.showLegend=function(e){return arguments.length?(c=e,D):c},D.showXAxis=function(e){return arguments.length?(h=e,D):h},D.showYAxis=function(e){return arguments.length?(p=e,D):p},D.rightAlignYAxis=function(e){return arguments.length?(d=e,r.orient(e?"right":"left"),D):d},D.tooltips=function(e){return arguments.length?(v=e,D):v},D.tooltipContent=function(e){return arguments.length?(b=e,D):b},D.state=function(e){return arguments.length?(x=e,D):x},D.defaultState=function(e){return arguments.length?(T=e,D):T},D.noData=function(e){return arguments.length?(N=e,D):N},D.average=function(e){return arguments.length?(C=e,D):C},D.transitionDuration=function(e){return arguments.length?(L=e,D):L},D.noErrorCheck=function(e){return arguments.length?(A=e,D):A},D},e.models.discreteBar=function(){"use strict";function E(e){return e.each(function(e){var i=n-t.left-t.right,E=r-t.top-t.bottom,S=d3.select(this);e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var T=p&&d?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0}})});s.domain(p||d3.merge(T).map(function(e){return e.x})).rangeBands(v||[0,i],.1),o.domain(d||d3.extent(d3.merge(T).map(function(e){return e.y}).concat(f))),c?o.range(m||[E-(o.domain()[0]<0?12:0),o.domain()[1]>0?12:0]):o.range(m||[E,0]),b=b||s,w=w||o.copy().range([o(0),o(0)]);var N=S.selectAll("g.nv-wrap.nv-discretebar").data([e]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar"),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-groups"),N.attr("transform","translate("+t.left+","+t.top+")");var A=N.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});A.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),A.exit().transition().style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),A.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),A.transition().style("stroke-opacity",1).style("fill-opacity",.75);var O=A.selectAll("g.nv-bar").data(function(e){return e.values});O.exit().remove();var M=O.enter().append("g").attr("transform",function(e,t,n){return"translate("+(s(u(e,t))+s.rangeBand()*.05)+", "+o(0)+")"}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),g.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),g.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){g.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){g.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(t.series+.5)/e.length,o(a(t,n))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()});M.append("rect").attr("height",0).attr("width",s.rangeBand()*.9/e.length),c?(M.append("text").attr("text-anchor","middle"),O.select("text").text(function(e,t){return h(a(e,t))}).transition().attr("x",s.rangeBand()*.9/2).attr("y",function(e,t){return a(e,t)<0?o(a(e,t))-o(0)+12:-4})):O.selectAll("text").remove(),O.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(e,t){return e.color||l(e,t)}).style("stroke",function(e,t){return e.color||l(e,t)}).select("rect").attr("class",y).transition().attr("width",s.rangeBand()*.9/e.length),O.transition().attr("transform",function(e,t){var n=s(u(e,t))+s.rangeBand()*.05,r=a(e,t)<0?o(0):o(0)-o(a(e,t))<1?o(0)-1:o(a(e,t));return"translate("+n+", "+r+")"}).select("rect").attr("height",function(e,t){return Math.max(Math.abs(o(a(e,t))-o(d&&d[0]||0))||1)}),b=s.copy(),w=o.copy()}),E}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.ordinal(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=e.utils.defaultColor(),c=!1,h=d3.format(",.2f"),p,d,v,m,g=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),y="discreteBar",b,w;return E.dispatch=g,E.options=e.utils.optionsFunc.bind(E),E.x=function(e){return arguments.length?(u=e,E):u},E.y=function(e){return arguments.length?(a=e,E):a},E.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,E):t},E.width=function(e){return arguments.length?(n=e,E):n},E.height=function(e){return arguments.length?(r=e,E):r},E.xScale=function(e){return arguments.length?(s=e,E):s},E.yScale=function(e){return arguments.length?(o=e,E):o},E.xDomain=function(e){return arguments.length?(p=e,E):p},E.yDomain=function(e){return arguments.length?(d=e,E):d},E.xRange=function(e){return arguments.length?(v=e,E):v},E.yRange=function(e){return arguments.length?(m=e,E):m},E.forceY=function(e){return arguments.length?(f=e,E):f},E.color=function(t){return arguments.length?(l=e.utils.getColor(t),E):l},E.id=function(e){return arguments.length?(i=e,E):i},E.showValues=function(e){return arguments.length?(c=e,E):c},E.valueFormat=function(e){return arguments.length?(h=e,E):h},E.rectClass=function(e){return arguments.length?(y=e,E):y},E},e.models.discreteBarChart=function(){"use strict";function w(e){return e.each(function(e){var u=d3.select(this),p=this,E=(s||parseInt(u.style("width"))||960)-i.left-i.right,S=(o||parseInt(u.style("height"))||400)-i.top-i.bottom;w.update=function(){g.beforeUpdate(),u.transition().duration(y).call(w)},w.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var T=u.selectAll(".nv-noData").data([m]);return T.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),T.attr("x",i.left+E/2).attr("y",i.top+S/2).text(function(e){return e}),w}u.selectAll(".nv-noData").remove(),d=t.xScale(),v=t.yScale().clamp(!0);var N=u.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([e]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),k=C.append("defs"),L=N.select("g");C.append("g").attr("class","nv-x nv-axis"),C.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),C.append("g").attr("class","nv-barsWrap"),L.attr("transform","translate("+i.left+","+i.top+")"),l&&L.select(".nv-y.nv-axis").attr("transform","translate("+E+",0)"),t.width(E).height(S);var A=L.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));A.transition().call(t),k.append("clipPath").attr("id","nv-x-label-clip-"+t.id()).append("rect"),L.select("#nv-x-label-clip-"+t.id()+" rect").attr("width",d.rangeBand()*(c?2:1)).attr("height",16).attr("x",-d.rangeBand()/(c?1:2));if(a){n.scale(d).ticks(E/100).tickSize(-S,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+(v.range()[0]+(t.showValues()&&v.domain()[0]<0?16:0))+")"),L.select(".nv-x.nv-axis").transition().call(n);var O=L.select(".nv-x.nv-axis").selectAll("g");c&&O.selectAll("text").attr("transform",function(e,t,n){return"translate(0,"+(n%2==0?"5":"17")+")"})}f&&(r.scale(v).ticks(S/36).tickSize(-E,0),L.select(".nv-y.nv-axis").transition().call(r)),L.select(".nv-zeroLine line").attr("x1",0).attr("x2",E).attr("y1",v(0)).attr("y2",v(0)),g.on("tooltipShow",function(e){h&&b(e,p.parentNode)})}),w}var t=e.models.discreteBar(),n=e.models.axis(),r=e.models.axis(),i={top:15,right:10,bottom:50,left:60},s=null,o=null,u=e.utils.getColor(),a=!0,f=!0,l=!1,c=!1,h=!0,p=function(e,t,n,r,i){return"<h3>"+t+"</h3>"+"<p>"+n+"</p>"},d,v,m="No Data Available.",g=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate"),y=250;n.orient("bottom").highlightZero(!1).showMaxMin(!1).tickFormat(function(e){return e}),r.orient(l?"right":"left").tickFormat(d3.format(",.1f"));var b=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=p(i.series.key,a,f,i,w);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+i.left,e.pos[1]+i.top],g.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){g.tooltipHide(e)}),g.on("tooltipHide",function(){h&&e.tooltip.cleanup()}),w.dispatch=g,w.discretebar=t,w.xAxis=n,w.yAxis=r,d3.rebind(w,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","id","showValues","valueFormat"),w.options=e.utils.optionsFunc.bind(w),w.margin=function(e){return arguments.length?(i.top=typeof e.top!="undefined"?e.top:i.top,i.right=typeof e.right!="undefined"?e.right:i.right,i.bottom=typeof e.bottom!="undefined"?e.bottom:i.bottom,i.left=typeof e.left!="undefined"?e.left:i.left,w):i},w.width=function(e){return arguments.length?(s=e,w):s},w.height=function(e){return arguments.length?(o=e,w):o},w.color=function(n){return arguments.length?(u=e.utils.getColor(n),t.color(u),w):u},w.showXAxis=function(e){return arguments.length?(a=e,w):a},w.showYAxis=function(e){return arguments.length?(f=e,w):f},w.rightAlignYAxis=function(e){return arguments.length?(l=e,r.orient(e?"right":"left"),w):l},w.staggerLabels=function(e){return arguments.length?(c=e,w):c},w.tooltips=function(e){return arguments.length?(h=e,w):h},w.tooltipContent=function(e){return arguments.length?(p=e,w):p},w.noData=function(e){return arguments.length?(m=e,w):m},w.transitionDuration=function(e){return arguments.length?(y=e,w):y},w},e.models.distribution=function(){"use strict";function l(e){return e.each(function(e){var a=n-(i==="x"?t.left+t.right:t.top+t.bottom),l=i=="x"?"y":"x",c=d3.select(this);f=f||u;var h=c.selectAll("g.nv-distribution").data([e]),p=h.enter().append("g").attr("class","nvd3 nv-distribution"),d=p.append("g"),v=h.select("g");h.attr("transform","translate("+t.left+","+t.top+")");var m=v.selectAll("g.nv-dist").data(function(e){return e},function(e){return e.key});m.enter().append("g"),m.attr("class",function(e,t){return"nv-dist nv-series-"+t}).style("stroke",function(e,t){return o(e,t)});var g=m.selectAll("line.nv-dist"+i).data(function(e){return e.values});g.enter().append("line").attr(i+"1",function(e,t){return f(s(e,t))}).attr(i+"2",function(e,t){return f(s(e,t))}),m.exit().selectAll("line.nv-dist"+i).transition().attr(i+"1",function(e,t){return u(s(e,t))}).attr(i+"2",function(e,t){return u(s(e,t))}).style("stroke-opacity",0).remove(),g.attr("class",function(e,t){return"nv-dist"+i+" nv-dist"+i+"-"+t}).attr(l+"1",0).attr(l+"2",r),g.transition().attr(i+"1",function(e,t){return u(s(e,t))}).attr(i+"2",function(e,t){return u(s(e,t))}),f=u.copy()}),l}var t={top:0,right:0,bottom:0,left:0},n=400,r=8,i="x",s=function(e){return e[i]},o=e.utils.defaultColor(),u=d3.scale.linear(),a,f;return l.options=e.utils.optionsFunc.bind(l),l.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,l):t},l.width=function(e){return arguments.length?(n=e,l):n},l.axis=function(e){return arguments.length?(i=e,l):i},l.size=function(e){return arguments.length?(r=e,l):r},l.getData=function(e){return arguments.length?(s=d3.functor(e),l):s},l.scale=function(e){return arguments.length?(u=e,l):u},l.color=function(t){return arguments.length?(o=e.utils.getColor(t),l):o},l},e.models.historicalBar=function(){"use strict";function w(E){return E.each(function(w){var E=n-t.left-t.right,S=r-t.top-t.bottom,T=d3.select(this);s.domain(d||d3.extent(w[0].values.map(u).concat(f))),c?s.range(m||[E*.5/w[0].values.length,E*(w[0].values.length-.5)/w[0].values.length]):s.range(m||[0,E]),o.domain(v||d3.extent(w[0].values.map(a).concat(l))).range(g||[S,0]),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]-s.domain()[0]*.01,s.domain()[1]+s.domain()[1]*.01]):s.domain([-1,1])),o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]+o.domain()[0]*.01,o.domain()[1]-o.domain()[1]*.01]):o.domain([-1,1]));var N=T.selectAll("g.nv-wrap.nv-historicalBar-"+i).data([w[0].values]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+i),k=C.append("defs"),L=C.append("g"),A=N.select("g");L.append("g").attr("class","nv-bars"),N.attr("transform","translate("+t.left+","+t.top+")"),T.on("click",function(e,t){y.chartClick({data:e,index:t,pos:d3.event,id:i})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+i).append("rect"),N.select("#nv-chart-clip-path-"+i+" rect").attr("width",E).attr("height",S),A.attr("clip-path",h?"url(#nv-chart-clip-path-"+i+")":"");var O=N.select(".nv-bars").selectAll(".nv-bar").data(function(e){return e},function(e,t){return u(e,t)});O.exit().remove();var M=O.enter().append("rect").attr("x",0).attr("y",function(t,n){return e.utils.NaNtoZero(o(Math.max(0,a(t,n))))}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.abs(o(a(t,n))-o(0)))}).attr("transform",function(e,t){return"translate("+(s(u(e,t))-E/w[0].values.length*.45)+",0)"}).on("mouseover",function(e,t){if(!b)return;d3.select(this).classed("hover",!0),y.elementMouseover({point:e,series:w[0],pos:[s(u(e,t)),o(a(e,t))],pointIndex:t,seriesIndex:0,e:d3.event})}).on("mouseout",function(e,t){if(!b)return;d3.select(this).classed("hover",!1),y.elementMouseout({point:e,series:w[0],pointIndex:t,seriesIndex:0,e:d3.event})}).on("click",function(e,t){if(!b)return;y.elementClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()}).on("dblclick",function(e,t){if(!b)return;y.elementDblClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()});O.attr("fill",function(e,t){return p(e,t)}).attr("class",function(e,t,n){return(a(e,t)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+n+"-"+t}).transition().attr("transform",function(e,t){return"translate("+(s(u(e,t))-E/w[0].values.length*.45)+",0)"}).attr("width",E/w[0].values.length*.9),O.transition().attr("y",function(t,n){var r=a(t,n)<0?o(0):o(0)-o(a(t,n))<1?o(0)-1:o(a(t,n));return e.utils.NaNtoZero(r)}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.max(Math.abs(o(a(t,n))-o(0)),1))})}),w}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[],l=[0],c=!1,h=!0,p=e.utils.defaultColor(),d,v,m,g,y=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),b=!0;return w.highlightPoint=function(e,t){d3.select(".nv-historicalBar-"+i).select(".nv-bars .nv-bar-0-"+e).classed("hover",t)},w.clearHighlights=function(){d3.select(".nv-historicalBar-"+i).select(".nv-bars .nv-bar.hover").classed("hover",!1)},w.dispatch=y,w.options=e.utils.optionsFunc.bind(w),w.x=function(e){return arguments.length?(u=e,w):u},w.y=function(e){return arguments.length?(a=e,w):a},w.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,w):t},w.width=function(e){return arguments.length?(n=e,w):n},w.height=function(e){return arguments.length?(r=e,w):r},w.xScale=function(e){return arguments.length?(s=e,w):s},w.yScale=function(e){return arguments.length?(o=e,w):o},w.xDomain=function(e){return arguments.length?(d=e,w):d},w.yDomain=function(e){return arguments.length?(v=e,w):v},w.xRange=function(e){return arguments.length?(m=e,w):m},w.yRange=function(e){return arguments.length?(g=e,w):g},w.forceX=function(e){return arguments.length?(f=e,w):f},w.forceY=function(e){return arguments.length?(l=e,w):l},w.padData=function(e){return arguments.length?(c=e,w):c},w.clipEdge=function(e){return arguments.length?(h=e,w):h},w.color=function(t){return arguments.length?(p=e.utils.getColor(t),w):p},w.id=function(e){return arguments.length?(i=e,w):i},w.interactive=function(e){return arguments.length?(b=!1,w):b},w},e.models.historicalBarChart=function(){"use strict";function x(e){return e.each(function(d){var T=d3.select(this),N=this,C=(u||parseInt(T.style("width"))||960)-s.left-s.right,k=(a||parseInt(T.style("height"))||400)-s.top-s.bottom;x.update=function(){T.transition().duration(E).call(x)},x.container=this,g.disabled=d.map(function(e){return!!e.disabled});if(!y){var L;y={};for(L in g)g[L]instanceof Array?y[L]=g[L].slice(0):y[L]=g[L]}if(!d||!d.length||!d.filter(function(e){return e.values.length}).length){var A=T.selectAll(".nv-noData").data([b]);return A.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),A.attr("x",s.left+C/2).attr("y",s.top+k/2).text(function(e){return e}),x}T.selectAll(".nv-noData").remove(),v=t.xScale(),m=t.yScale();var O=T.selectAll("g.nv-wrap.nv-historicalBarChart").data([d]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),_=O.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-legendWrap"),f&&(i.width(C),_.select(".nv-legendWrap").datum(d).call(i),s.top!=i.height()&&(s.top=i.height(),k=(a||parseInt(T.style("height"))||400)-s.top-s.bottom),O.select(".nv-legendWrap").attr("transform","translate(0,"+ -s.top+")")),O.attr("transform","translate("+s.left+","+s.top+")"),h&&_.select(".nv-y.nv-axis").attr("transform","translate("+C+",0)"),t.width(C).height(k).color(d.map(function(e,t){return e.color||o(e,t)}).filter(function(e,t){return!d[t].disabled}));var D=_.select(".nv-barsWrap").datum(d.filter(function(e){return!e.disabled}));D.transition().call(t),l&&(n.scale(v).tickSize(-k,0),_.select(".nv-x.nv-axis").attr("transform","translate(0,"+m.range()[0]+")"),_.select(".nv-x.nv-axis").transition().call(n)),c&&(r.scale(m).ticks(k/36).tickSize(-C,0),_.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("legendClick",function(t,n){t.disabled=!t.disabled,d.filter(function(e){return!e.disabled}).length||d.map(function(e){return e.disabled=!1,O.selectAll(".nv-series").classed("disabled",!1),e}),g.disabled=d.map(function(e){return!!e.disabled}),w.stateChange(g),e.transition().call(x)}),i.dispatch.on("legendDblclick",function(e){d.forEach(function(e){e.disabled=!0}),e.disabled=!1,g.disabled=d.map(function(e){return!!e.disabled}),w.stateChange(g),x.update()}),w.on("tooltipShow",function(e){p&&S(e,N.parentNode)}),w.on("changeState",function(e){typeof e.disabled!="undefined"&&(d.forEach(function(t,n){t.disabled=e.disabled[n]}),g.disabled=e.disabled),x.update()})}),x}var t=e.models.historicalBar(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s={top:30,right:90,bottom:50,left:90},o=e.utils.defaultColor(),u=null,a=null,f=!1,l=!0,c=!0,h=!1,p=!0,d=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},v,m,g={},y=null,b="No Data Available.",w=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),E=250;n.orient("bottom").tickPadding(7),r.orient(h?"right":"left");var S=function(i,s){if(s){var o=d3.select(s).select("svg"),u=o.node()?o.attr("viewBox"):null;if(u){u=u.split(" ");var a=parseInt(o.style("width"))/u[2];i.pos[0]=i.pos[0]*a,i.pos[1]=i.pos[1]*a}}var f=i.pos[0]+(s.offsetLeft||0),l=i.pos[1]+(s.offsetTop||0),c=n.tickFormat()(t.x()(i.point,i.pointIndex)),h=r.tickFormat()(t.y()(i.point,i.pointIndex)),p=d(i.series.key,c,h,i,x);e.tooltip.show([f,l],p,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+s.left,e.pos[1]+s.top],w.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){w.tooltipHide(e)}),w.on("tooltipHide",function(){p&&e.tooltip.cleanup()}),x.dispatch=w,x.bars=t,x.legend=i,x.xAxis=n,x.yAxis=r,d3.rebind(x,t,"defined","isArea","x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","id","interpolate","highlightPoint","clearHighlights","interactive"),x.options=e.utils.optionsFunc.bind(x),x.margin=function(e){return arguments.length?(s.top=typeof e.top!="undefined"?e.top:s.top,s.right=typeof e.right!="undefined"?e.right:s.right,s.bottom=typeof e.bottom!="undefined"?e.bottom:s.bottom,s.left=typeof e.left!="undefined"?e.left:s.left,x):s},x.width=function(e){return arguments.length?(u=e,x):u},x.height=function(e){return arguments.length?(a=e,x):a},x.color=function(t){return arguments.length?(o=e.utils.getColor(t),i.color(o),x):o},x.showLegend=function(e){return arguments.length?(f=e,x):f},x.showXAxis=function(e){return arguments.length?(l=e,x):l},x.showYAxis=function(e){return arguments.length?(c=e,x):c},x.rightAlignYAxis=function(e){return arguments.length?(h=e,r.orient(e?"right":"left"),x):h},x.tooltips=function(e){return arguments.length?(p=e,x):p},x.tooltipContent=function(e){return arguments.length?(d=e,x):d},x.state=function(e){return arguments.length?(g=e,x):g},x.defaultState=function(e){return arguments.length?(y=e,x):y},x.noData=function(e){return arguments.length?(b=e,x):b},x.transitionDuration=function(e){return arguments.length?(E=e,x):E},x},e.models.indentedTree=function(){"use strict";function g(e){return e.each(function(e){function k(e,t,n){d3.event.stopPropagation();if(d3.event.shiftKey&&!n)return d3.event.shiftKey=!1,e.values&&e.values.forEach(function(e){(e.values||e._values)&&k(e,0,!0)}),!0;if(!O(e))return!0;e.values?(e._values=e.values,e.values=null):(e.values=e._values,e._values=null),g.update()}function L(e){return e._values&&e._values.length?h:e.values&&e.values.length?p:""}function A(e){return e._values&&e._values.length}function O(e){var t=e.values||e._values;return t&&t.length}var t=1,n=d3.select(this),i=d3.layout.tree().children(function(e){return e.values}).size([r,f]);g.update=function(){n.transition().duration(600).call(g)},e[0]||(e[0]={key:a});var s=i.nodes(e[0]),y=d3.select(this).selectAll("div").data([[s]]),b=y.enter().append("div").attr("class","nvd3 nv-wrap nv-indentedtree"),w=b.append("table"),E=y.select("table").attr("width","100%").attr("class",c);if(o){var S=w.append("thead"),x=S.append("tr");l.forEach(function(e){x.append("th").attr("width",e.width?e.width:"10%").style("text-align",e.type=="numeric"?"right":"left").append("span").text(e.label)})}var T=E.selectAll("tbody").data(function(e){return e});T.enter().append("tbody"),t=d3.max(s,function(e){return e.depth}),i.size([r,t*f]);var N=T.selectAll("tr").data(function(e){return e.filter(function(e){return u&&!e.children?u(e):!0})},function(e,t){return e.id||e.id||++m});N.exit().remove(),N.select("img.nv-treeicon").attr("src",L).classed("folded",A);var C=N.enter().append("tr");l.forEach(function(e,t){var n=C.append("td").style("padding-left",function(e){return(t?0:e.depth*f+12+(L(e)?0:16))+"px"},"important").style("text-align",e.type=="numeric"?"right":"left");t==0&&n.append("img").classed("nv-treeicon",!0).classed("nv-folded",A).attr("src",L).style("width","14px").style("height","14px").style("padding","0 1px").style("display",function(e){return L(e)?"inline-block":"none"}).on("click",k),n.each(function(n){!t&&v(n)?d3.select(this).append("a").attr("href",v).attr("class",d3.functor(e.classes)).append("span"):d3.select(this).append("span"),d3.select(this).select("span").attr("class",d3.functor(e.classes)).text(function(t){return e.format?e.format(t):t[e.key]||"-"})}),e.showCount&&(n.append("span").attr("class","nv-childrenCount"),N.selectAll("span.nv-childrenCount").text(function(e){return e.values&&e.values.length||e._values&&e._values.length?"("+(e.values&&e.values.filter(function(e){return u?u(e):!0}).length||e._values&&e._values.filter(function(e){return u?u(e):!0}).length||0)+")":""}))}),N.order().on("click",function(e){d.elementClick({row:this,data:e,pos:[e.x,e.y]})}).on("dblclick",function(e){d.elementDblclick({row:this,data:e,pos:[e.x,e.y]})}).on("mouseover",function(e){d.elementMouseover({row:this,data:e,pos:[e.x,e.y]})}).on("mouseout",function(e){d.elementMouseout({row:this,data:e,pos:[e.x,e.y]})})}),g}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e4),o=!0,u=!1,a="No Data Available.",f=20,l=[{key:"key",label:"Name",type:"text"}],c=null,h="images/grey-plus.png",p="images/grey-minus.png",d=d3.dispatch("elementClick","elementDblclick","elementMouseover","elementMouseout"),v=function(e){return e.url},m=0;return g.options=e.utils.optionsFunc.bind(g),g.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,g):t},g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(r=e,g):r},g.color=function(t){return arguments.length?(i=e.utils.getColor(t),scatter.color(i),g):i},g.id=function(e){return arguments.length?(s=e,g):s},g.header=function(e){return arguments.length?(o=e,g):o},g.noData=function(e){return arguments.length?(a=e,g):a},g.filterZero=function(e){return arguments.length?(u=e,g):u},g.columns=function(e){return arguments.length?(l=e,g):l},g.tableClass=function(e){return arguments.length?(c=e,g):c},g.iconOpen=function(e){return arguments.length?(h=e,g):h},g.iconClose=function(e){return arguments.length?(p=e,g):p},g.getUrl=function(e){return arguments.length?(v=e,g):v},g},e.models.legend=function(){"use strict";function c(h){return h.each(function(c){var h=n-t.left-t.right,p=d3.select(this),d=p.selectAll("g.nv-legend").data([c]),v=d.enter().append("g").attr("class","nvd3 nv-legend").append("g"),m=d.select("g");d.attr("transform","translate("+t.left+","+t.top+")");var g=m.selectAll(".nv-series").data(function(e){return e}),y=g.enter().append("g").attr("class","nv-series").on("mouseover",function(e,t){l.legendMouseover(e,t)}).on("mouseout",function(e,t){l.legendMouseout(e,t)}).on("click",function(e,t){l.legendClick(e,t),a&&(f?(c.forEach(function(e){e.disabled=!0}),e.disabled=!1):(e.disabled=!e.disabled,c.every(function(e){return e.disabled})&&c.forEach(function(e){e.disabled=!1})),l.stateChange({disabled:c.map(function(e){return!!e.disabled})}))}).on("dblclick",function(e,t){l.legendDblclick(e,t),a&&(c.forEach(function(e){e.disabled=!0}),e.disabled=!1,l.stateChange({disabled:c.map(function(e){return!!e.disabled})}))});y.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),y.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8"),g.classed("disabled",function(e){return e.disabled}),g.exit().remove(),g.select("circle").style("fill",function(e,t){return e.color||s(e,t)}).style("stroke",function(e,t){return e.color||s(e,t)}),g.select("text").text(i);if(o){var b=[];g.each(function(t,n){var r=d3.select(this).select("text"),i;try{i=r.getComputedTextLength();if(i<=0)throw Error()}catch(s){i=e.utils.calcApproxTextWidth(r)}b.push(i+28)});var w=0,E=0,S=[];while(E<h&&w<b.length)S[w]=b[w],E+=b[w++];w===0&&(w=1);while(E>h&&w>1){S=[],w--;for(var x=0;x<b.length;x++)b[x]>(S[x%w]||0)&&(S[x%w]=b[x]);E=S.reduce(function(e,t,n,r){return e+t})}var T=[];for(var N=0,C=0;N<w;N++)T[N]=C,C+=S[N];g.attr("transform",function(e,t){return"translate("+T[t%w]+","+(5+Math.floor(t/w)*20)+")"}),u?m.attr("transform","translate("+(n-t.right-E)+","+t.top+")"):m.attr("transform","translate(0,"+t.top+")"),r=t.top+t.bottom+Math.ceil(b.length/w)*20}else{var k=5,L=5,A=0,O;g.attr("transform",function(e,r){var i=d3.select(this).select("text").node().getComputedTextLength()+28;return O=L,n<t.left+t.right+O+i&&(L=O=5,k+=20),L+=i,L>A&&(A=L),"translate("+O+","+k+")"}),m.attr("transform","translate("+(n-t.right-A)+","+t.top+")"),r=t.top+t.bottom+k+15}}),c}var t={top:5,right:0,bottom:5,left:0},n=400,r=20,i=function(e){return e.key},s=e.utils.defaultColor(),o=!0,u=!0,a=!0,f=!1,l=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange");return c.dispatch=l,c.options=e.utils.optionsFunc.bind(c),c.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,c):t},c.width=function(e){return arguments.length?(n=e,c):n},c.height=function(e){return arguments.length?(r=e,c):r},c.key=function(e){return arguments.length?(i=e,c):i},c.color=function(t){return arguments.length?(s=e.utils.getColor(t),c):s},c.align=function(e){return arguments.length?(o=e,c):o},c.rightAlign=function(e){return arguments.length?(u=e,c):u},c.updateState=function(e){return arguments.length?(a=e,c):a},c.radioButtonMode=function(e){return arguments.length?(f=e,c):f},c},e.models.line=function(){"use strict";function m(g){return g.each(function(m){var g=r-n.left-n.right,b=i-n.top-n.bottom,w=d3.select(this);c=t.xScale(),h=t.yScale(),d=d||c,v=v||h;var E=w.selectAll("g.nv-wrap.nv-line").data([m]),S=E.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),T=S.append("defs"),N=S.append("g"),C=E.select("g");N.append("g").attr("class","nv-groups"),N.append("g").attr("class","nv-scatterWrap"),E.attr("transform","translate("+n.left+","+n.top+")"),t.width(g).height(b);var k=E.select(".nv-scatterWrap");k.transition().call(t),T.append("clipPath").attr("id","nv-edge-clip-"+t.id()).append("rect"),E.select("#nv-edge-clip-"+t.id()+" rect").attr("width",g).attr("height",b),C.attr("clip-path",l?"url(#nv-edge-clip-"+t.id()+")":""),k.attr("clip-path",l?"url(#nv-edge-clip-"+t.id()+")":"");var L=E.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});L.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),L.exit().remove(),L.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return s(e,t)}).style("stroke",function(e,t){return s(e,t)}),L.transition().style("stroke-opacity",1).style("fill-opacity",.5);var A=L.selectAll("path.nv-area").data(function(e){return f(e)?[e]:[]});A.enter().append("path").attr("class","nv-area").attr("d",function(t){return d3.svg.area().interpolate(p).defined(a).x(function(t,n){return e.
-utils.NaNtoZero(d(o(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(v(u(t,n)))}).y1(function(e,t){return v(h.domain()[0]<=0?h.domain()[1]>=0?0:h.domain()[1]:h.domain()[0])}).apply(this,[t.values])}),L.exit().selectAll("path.nv-area").remove(),A.transition().attr("d",function(t){return d3.svg.area().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(c(o(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(h(u(t,n)))}).y1(function(e,t){return h(h.domain()[0]<=0?h.domain()[1]>=0?0:h.domain()[1]:h.domain()[0])}).apply(this,[t.values])});var O=L.selectAll("path.nv-line").data(function(e){return[e.values]});O.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(d(o(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(v(u(t,n)))})),O.transition().attr("d",d3.svg.line().interpolate(p).defined(a).x(function(t,n){return e.utils.NaNtoZero(c(o(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(h(u(t,n)))})),d=c.copy(),v=h.copy()}),m}var t=e.models.scatter(),n={top:0,right:0,bottom:0,left:0},r=960,i=500,s=e.utils.defaultColor(),o=function(e){return e.x},u=function(e){return e.y},a=function(e,t){return!isNaN(u(e,t))&&u(e,t)!==null},f=function(e){return e.area},l=!1,c,h,p="linear";t.size(16).sizeDomain([16,256]);var d,v;return m.dispatch=t.dispatch,m.scatter=t,d3.rebind(m,t,"id","interactive","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","forceX","forceY","forceSize","clipVoronoi","useVoronoi","clipRadius","padData","highlightPoint","clearHighlights"),m.options=e.utils.optionsFunc.bind(m),m.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,m):n},m.width=function(e){return arguments.length?(r=e,m):r},m.height=function(e){return arguments.length?(i=e,m):i},m.x=function(e){return arguments.length?(o=e,t.x(e),m):o},m.y=function(e){return arguments.length?(u=e,t.y(e),m):u},m.clipEdge=function(e){return arguments.length?(l=e,m):l},m.color=function(n){return arguments.length?(s=e.utils.getColor(n),t.color(s),m):s},m.interpolate=function(e){return arguments.length?(p=e,m):p},m.defined=function(e){return arguments.length?(a=e,m):a},m.isArea=function(e){return arguments.length?(f=d3.functor(e),m):f},m},e.models.lineChart=function(){"use strict";function N(m){return m.each(function(m){var C=d3.select(this),k=this,L=(a||parseInt(C.style("width"))||960)-o.left-o.right,A=(f||parseInt(C.style("height"))||400)-o.top-o.bottom;N.update=function(){C.transition().duration(x).call(N)},N.container=this,b.disabled=m.map(function(e){return!!e.disabled});if(!w){var O;w={};for(O in b)b[O]instanceof Array?w[O]=b[O].slice(0):w[O]=b[O]}if(!m||!m.length||!m.filter(function(e){return e.values.length}).length){var M=C.selectAll(".nv-noData").data([E]);return M.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),M.attr("x",o.left+L/2).attr("y",o.top+A/2).text(function(e){return e}),N}C.selectAll(".nv-noData").remove(),g=t.xScale(),y=t.yScale();var _=C.selectAll("g.nv-wrap.nv-lineChart").data([m]),D=_.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),P=_.select("g");D.append("rect").style("opacity",0),D.append("g").attr("class","nv-x nv-axis"),D.append("g").attr("class","nv-y nv-axis"),D.append("g").attr("class","nv-linesWrap"),D.append("g").attr("class","nv-legendWrap"),D.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",L).attr("height",A>0?A:0),l&&(i.width(L),P.select(".nv-legendWrap").datum(m).call(i),o.top!=i.height()&&(o.top=i.height(),A=(f||parseInt(C.style("height"))||400)-o.top-o.bottom),_.select(".nv-legendWrap").attr("transform","translate(0,"+ -o.top+")")),_.attr("transform","translate("+o.left+","+o.top+")"),p&&P.select(".nv-y.nv-axis").attr("transform","translate("+L+",0)"),d&&(s.width(L).height(A).margin({left:o.left,top:o.top}).svgContainer(C).xScale(g),_.select(".nv-interactive").call(s)),t.width(L).height(A).color(m.map(function(e,t){return e.color||u(e,t)}).filter(function(e,t){return!m[t].disabled}));var H=P.select(".nv-linesWrap").datum(m.filter(function(e){return!e.disabled}));H.transition().call(t),c&&(n.scale(g).ticks(L/100).tickSize(-A,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),P.select(".nv-x.nv-axis").transition().call(n)),h&&(r.scale(y).ticks(A/36).tickSize(-L,0),P.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),N.update()}),s.dispatch.on("elementMousemove",function(i){t.clearHighlights();var a,f,l,c=[];m.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){f=e.interactiveBisect(n.values,i.pointXValue,N.x()),t.highlightPoint(r,f,!0);var s=n.values[f];if(typeof s=="undefined")return;typeof a=="undefined"&&(a=s),typeof l=="undefined"&&(l=N.xScale()(N.x()(s,f))),c.push({key:n.key,value:N.y()(s,f),color:u(n,n.seriesIndex)})});if(c.length>2){var h=N.yScale().invert(i.mouseY),p=Math.abs(N.yScale().domain()[0]-N.yScale().domain()[1]),d=.03*p,g=e.nearestValueIndex(c.map(function(e){return e.value}),h,d);g!==null&&(c[g].highlight=!0)}var y=n.tickFormat()(N.x()(a,f));s.tooltip.position({left:l+o.left,top:i.mouseY+o.top}).chartContainer(k.parentNode).enabled(v).valueFormatter(function(e,t){return r.tickFormat()(e)}).data({value:y,series:c})(),s.renderGuideLine(l)}),s.dispatch.on("elementMouseout",function(e){S.tooltipHide(),t.clearHighlights()}),S.on("tooltipShow",function(e){v&&T(e,k.parentNode)}),S.on("changeState",function(e){typeof e.disabled!="undefined"&&m.length===e.disabled.length&&(m.forEach(function(t,n){t.disabled=e.disabled[n]}),b.disabled=e.disabled),N.update()})}),N}var t=e.models.line(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.interactiveGuideline(),o={top:30,right:20,bottom:50,left:60},u=e.utils.defaultColor(),a=null,f=null,l=!0,c=!0,h=!0,p=!1,d=!1,v=!0,m=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},g,y,b={},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),x=250;n.orient("bottom").tickPadding(7),r.orient(p?"right":"left");var T=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=m(i.series.key,a,f,i,N);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),N.dispatch=S,N.lines=t,N.legend=i,N.xAxis=n,N.yAxis=r,N.interactiveLayer=s,d3.rebind(N,t,"defined","isArea","x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","useVoronoi","id","interpolate"),N.options=e.utils.optionsFunc.bind(N),N.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,N):o},N.width=function(e){return arguments.length?(a=e,N):a},N.height=function(e){return arguments.length?(f=e,N):f},N.color=function(t){return arguments.length?(u=e.utils.getColor(t),i.color(u),N):u},N.showLegend=function(e){return arguments.length?(l=e,N):l},N.showXAxis=function(e){return arguments.length?(c=e,N):c},N.showYAxis=function(e){return arguments.length?(h=e,N):h},N.rightAlignYAxis=function(e){return arguments.length?(p=e,r.orient(e?"right":"left"),N):p},N.useInteractiveGuideline=function(e){return arguments.length?(d=e,e===!0&&(N.interactive(!1),N.useVoronoi(!1)),N):d},N.tooltips=function(e){return arguments.length?(v=e,N):v},N.tooltipContent=function(e){return arguments.length?(m=e,N):m},N.state=function(e){return arguments.length?(b=e,N):b},N.defaultState=function(e){return arguments.length?(w=e,N):w},N.noData=function(e){return arguments.length?(E=e,N):E},N.transitionDuration=function(e){return arguments.length?(x=e,N):x},N},e.models.linePlusBarChart=function(){"use strict";function T(e){return e.each(function(e){var l=d3.select(this),c=this,v=(a||parseInt(l.style("width"))||960)-u.left-u.right,N=(f||parseInt(l.style("height"))||400)-u.top-u.bottom;T.update=function(){l.transition().call(T)},b.disabled=e.map(function(e){return!!e.disabled});if(!w){var C;w={};for(C in b)b[C]instanceof Array?w[C]=b[C].slice(0):w[C]=b[C]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var k=l.selectAll(".nv-noData").data([E]);return k.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),k.attr("x",u.left+v/2).attr("y",u.top+N/2).text(function(e){return e}),T}l.selectAll(".nv-noData").remove();var L=e.filter(function(e){return!e.disabled&&e.bar}),A=e.filter(function(e){return!e.bar});m=A.filter(function(e){return!e.disabled}).length&&A.filter(function(e){return!e.disabled})[0].values.length?t.xScale():n.xScale(),g=n.yScale(),y=t.yScale();var O=d3.select(this).selectAll("g.nv-wrap.nv-linePlusBar").data([e]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),_=O.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y1 nv-axis"),M.append("g").attr("class","nv-y2 nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-linesWrap"),M.append("g").attr("class","nv-legendWrap"),p&&(o.width(v/2),_.select(".nv-legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.bar?" (left axis)":" (right axis)"),e})).call(o),u.top!=o.height()&&(u.top=o.height(),N=(f||parseInt(l.style("height"))||400)-u.top-u.bottom),_.select(".nv-legendWrap").attr("transform","translate("+v/2+","+ -u.top+")")),O.attr("transform","translate("+u.left+","+u.top+")"),t.width(v).height(N).color(e.map(function(e,t){return e.color||h(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar})),n.width(v).height(N).color(e.map(function(e,t){return e.color||h(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar}));var D=_.select(".nv-barsWrap").datum(L.length?L:[{values:[]}]),P=_.select(".nv-linesWrap").datum(A[0]&&!A[0].disabled?A:[{values:[]}]);d3.transition(D).call(n),d3.transition(P).call(t),r.scale(m).ticks(v/100).tickSize(-N,0),_.select(".nv-x.nv-axis").attr("transform","translate(0,"+g.range()[0]+")"),d3.transition(_.select(".nv-x.nv-axis")).call(r),i.scale(g).ticks(N/36).tickSize(-v,0),d3.transition(_.select(".nv-y1.nv-axis")).style("opacity",L.length?1:0).call(i),s.scale(y).ticks(N/36).tickSize(L.length?0:-v,0),_.select(".nv-y2.nv-axis").style("opacity",A.length?1:0).attr("transform","translate("+v+",0)"),d3.transition(_.select(".nv-y2.nv-axis")).call(s),o.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),T.update()}),S.on("tooltipShow",function(e){d&&x(e,c.parentNode)}),S.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),b.disabled=t.disabled),T.update()})}),T}var t=e.models.line(),n=e.models.historicalBar(),r=e.models.axis(),i=e.models.axis(),s=e.models.axis(),o=e.models.legend(),u={top:30,right:60,bottom:50,left:60},a=null,f=null,l=function(e){return e.x},c=function(e){return e.y},h=e.utils.defaultColor(),p=!0,d=!0,v=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},m,g,y,b={},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState");n.padData(!0),t.clipEdge(!1).padData(!0),r.orient("bottom").tickPadding(7).highlightZero(!1),i.orient("left"),s.orient("right");var x=function(n,o){var u=n.pos[0]+(o.offsetLeft||0),a=n.pos[1]+(o.offsetTop||0),f=r.tickFormat()(t.x()(n.point,n.pointIndex)),l=(n.series.bar?i:s).tickFormat()(t.y()(n.point,n.pointIndex)),c=v(n.series.key,f,l,n,T);e.tooltip.show([u,a],c,n.value<0?"n":"s",null,o)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),n.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],S.tooltipShow(e)}),n.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){d&&e.tooltip.cleanup()}),T.dispatch=S,T.legend=o,T.lines=t,T.bars=n,T.xAxis=r,T.y1Axis=i,T.y2Axis=s,d3.rebind(T,t,"defined","size","clipVoronoi","interpolate"),T.options=e.utils.optionsFunc.bind(T),T.x=function(e){return arguments.length?(l=e,t.x(e),n.x(e),T):l},T.y=function(e){return arguments.length?(c=e,t.y(e),n.y(e),T):c},T.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,T):u},T.width=function(e){return arguments.length?(a=e,T):a},T.height=function(e){return arguments.length?(f=e,T):f},T.color=function(t){return arguments.length?(h=e.utils.getColor(t),o.color(h),T):h},T.showLegend=function(e){return arguments.length?(p=e,T):p},T.tooltips=function(e){return arguments.length?(d=e,T):d},T.tooltipContent=function(e){return arguments.length?(v=e,T):v},T.state=function(e){return arguments.length?(b=e,T):b},T.defaultState=function(e){return arguments.length?(w=e,T):w},T.noData=function(e){return arguments.length?(E=e,T):E},T},e.models.lineWithFocusChart=function(){"use strict";function k(e){return e.each(function(e){function U(e){var t=+(e=="e"),n=t?1:-1,r=M/3;return"M"+.5*n+","+r+"A6,6 0 0 "+t+" "+6.5*n+","+(r+6)+"V"+(2*r-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*r+"Z"+"M"+2.5*n+","+(r+8)+"V"+(2*r-8)+"M"+4.5*n+","+(r+8)+"V"+(2*r-8)}function z(){a.empty()||a.extent(w),I.data([a.empty()?g.domain():w]).each(function(e,t){var n=g(e[0])-v.range()[0],r=v.range()[1]-g(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",g(e[1])).attr("width",r<0?0:r)})}function W(){w=a.empty()?null:a.extent();var n=a.empty()?g.domain():a.extent();if(Math.abs(n[0]-n[1])<=1)return;T.brush({extent:n,brush:a}),z();var s=H.select(".nv-focus .nv-linesWrap").datum(e.filter(function(e){return!e.disabled}).map(function(e,r){return{key:e.key,values:e.values.filter(function(e,r){return t.x()(e,r)>=n[0]&&t.x()(e,r)<=n[1]})}}));s.transition().duration(N).call(t),H.select(".nv-focus .nv-x.nv-axis").transition().duration(N).call(r),H.select(".nv-focus .nv-y.nv-axis").transition().duration(N).call(i)}var S=d3.select(this),L=this,A=(h||parseInt(S.style("width"))||960)-f.left-f.right,O=(p||parseInt(S.style("height"))||400)-f.top-f.bottom-d,M=d-l.top-l.bottom;k.update=function(){S.transition().duration(N).call(k)},k.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var _=S.selectAll(".nv-noData").data([x]);return _.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),_.attr("x",f.left+A/2).attr("y",f.top+O/2).text(function(e){return e}),k}S.selectAll(".nv-noData").remove(),v=t.xScale(),m=t.yScale(),g=n.xScale(),y=n.yScale();var D=S.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([e]),P=D.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),H=D.select("g");P.append("g").attr("class","nv-legendWrap");var B=P.append("g").attr("class","nv-focus");B.append("g").attr("class","nv-x nv-axis"),B.append("g").attr("class","nv-y nv-axis"),B.append("g").attr("class","nv-linesWrap");var j=P.append("g").attr("class","nv-context");j.append("g").attr("class","nv-x nv-axis"),j.append("g").attr("class","nv-y nv-axis"),j.append("g").attr("class","nv-linesWrap"),j.append("g").attr("class","nv-brushBackground"),j.append("g").attr("class","nv-x nv-brush"),b&&(u.width(A),H.select(".nv-legendWrap").datum(e).call(u),f.top!=u.height()&&(f.top=u.height(),O=(p||parseInt(S.style("height"))||400)-f.top-f.bottom-d),H.select(".nv-legendWrap").attr("transform","translate(0,"+ -f.top+")")),D.attr("transform","translate("+f.left+","+f.top+")"),t.width(A).height(O).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),n.defined(t.defined()).width(A).height(M).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),H.select(".nv-context").attr("transform","translate(0,"+(O+f.bottom+l.top)+")");var F=H.select(".nv-context .nv-linesWrap").datum(e.filter(function(e){return!e.disabled}));d3.transition(F).call(n),r.scale(v).ticks(A/100).tickSize(-O,0),i.scale(m).ticks(O/36).tickSize(-A,0),H.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+O+")"),a.x(g).on("brush",function(){var e=k.transitionDuration();k.transitionDuration(0),W(),k.transitionDuration(e)}),w&&a.extent(w);var I=H.select(".nv-brushBackground").selectAll("g").data([w||a.extent()]),q=I.enter().append("g");q.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",M),q.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",M);var R=H.select(".nv-x.nv-brush").call(a);R.selectAll("rect").attr("height",M),R.selectAll(".resize").append("path").attr("d",U),W(),s.scale(g).ticks(A/100).tickSize(-M,0),H.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),d3.transition(H.select(".nv-context .nv-x.nv-axis")).call(s),o.scale(y).ticks(M/36).tickSize(-A,0),d3.transition(H.select(".nv-context .nv-y.nv-axis")).call(o),H.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+y.range()[0]+")"),u.dispatch.on("stateChange",function(e){k.update()}),T.on("tooltipShow",function(e){E&&C(e,L.parentNode)})}),k}var t=e.models.line(),n=e.models.line(),r=e.models.axis(),i=e.models.axis(),s=e.models.axis(),o=e.models.axis(),u=e.models.legend(),a=d3.svg.brush(),f={top:30,right:30,bottom:30,left:60},l={top:0,right:30,bottom:20,left:60},c=e.utils.defaultColor(),h=null,p=null,d=100,v,m,g,y,b=!0,w=null,E=!0,S=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},x="No Data Available.",T=d3.dispatch("tooltipShow","tooltipHide","brush"),N=250;t.clipEdge(!0),n.interactive(!1),r.orient("bottom").tickPadding(5),i.orient("left"),s.orient("bottom").tickPadding(5),o.orient("left");var C=function(n,s){var o=n.pos[0]+(s.offsetLeft||0),u=n.pos[1]+(s.offsetTop||0),a=r.tickFormat()(t.x()(n.point,n.pointIndex)),f=i.tickFormat()(t.y()(n.point,n.pointIndex)),l=S(n.series.key,a,f,n,k);e.tooltip.show([o,u],l,null,null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+f.left,e.pos[1]+f.top],T.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),T.on("tooltipHide",function(){E&&e.tooltip.cleanup()}),k.dispatch=T,k.legend=u,k.lines=t,k.lines2=n,k.xAxis=r,k.yAxis=i,k.x2Axis=s,k.y2Axis=o,d3.rebind(k,t,"defined","isArea","size","xDomain","yDomain","xRange","yRange","forceX","forceY","interactive","clipEdge","clipVoronoi","id"),k.options=e.utils.optionsFunc.bind(k),k.x=function(e){return arguments.length?(t.x(e),n.x(e),k):t.x},k.y=function(e){return arguments.length?(t.y(e),n.y(e),k):t.y},k.margin=function(e){return arguments.length?(f.top=typeof e.top!="undefined"?e.top:f.top,f.right=typeof e.right!="undefined"?e.right:f.right,f.bottom=typeof e.bottom!="undefined"?e.bottom:f.bottom,f.left=typeof e.left!="undefined"?e.left:f.left,k):f},k.margin2=function(e){return arguments.length?(l=e,k):l},k.width=function(e){return arguments.length?(h=e,k):h},k.height=function(e){return arguments.length?(p=e,k):p},k.height2=function(e){return arguments.length?(d=e,k):d},k.color=function(t){return arguments.length?(c=e.utils.getColor(t),u.color(c),k):c},k.showLegend=function(e){return arguments.length?(b=e,k):b},k.tooltips=function(e){return arguments.length?(E=e,k):E},k.tooltipContent=function(e){return arguments.length?(S=e,k):S},k.interpolate=function(e){return arguments.length?(t.interpolate(e),n.interpolate(e),k):t.interpolate()},k.noData=function(e){return arguments.length?(x=e,k):x},k.xTickFormat=function(e){return arguments.length?(r.tickFormat(e),s.tickFormat(e),k):r.tickFormat()},k.yTickFormat=function(e){return arguments.length?(i.tickFormat(e),o.tickFormat(e),k):i.tickFormat()},k.brushExtent=function(e){return arguments.length?(w=e,k):w},k.transitionDuration=function(e){return arguments.length?(N=e,k):N},k},e.models.linePlusBarWithFocusChart=function(){"use strict";function B(e){return e.each(function(e){function nt(e){var t=+(e=="e"),n=t?1:-1,r=q/3;return"M"+.5*n+","+r+"A6,6 0 0 "+t+" "+6.5*n+","+(r+6)+"V"+(2*r-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*r+"Z"+"M"+2.5*n+","+(r+8)+"V"+(2*r-8)+"M"+4.5*n+","+(r+8)+"V"+(2*r-8)}function rt(){h.empty()||h.extent(x),Z.data([h.empty()?k.domain():x]).each(function(e,t){var n=k(e[0])-k.range()[0],r=k.range()[1]-k(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",k(e[1])).attr("width",r<0?0:r)})}function it(){x=h.empty()?null:h.extent(),S=h.empty()?k.domain():h.extent(),D.brush({extent:S,brush:h}),rt(),r.width(F).height(I).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar})),t.width(F).height(I).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar}));var n=J.select(".nv-focus .nv-barsWrap").datum(U.length?U.map(function(e,t){return{key:e.key,values:e.values.filter(function(e,t){return r.x()(e,t)>=S[0]&&r.x()(e,t)<=S[1]})}}):[{values:[]}]),i=J.select(".nv-focus .nv-linesWrap").datum(z[0].disabled?[{values:[]}]:z.map(function(e,n){return{key:e.key,values:e.values.filter(function(e,n){return t.x()(e,n)>=S[0]&&t.x()(e,n)<=S[1]})}}));U.length?C=r.xScale():C=t.xScale(),s.scale(C).ticks(F/100).tickSize(-I,0),s.domain([Math.ceil(S[0]),Math.floor(S[1])]),J.select(".nv-x.nv-axis").transition().duration(P).call(s),n.transition().duration(P).call(r),i.transition().duration(P).call(t),J.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L.range()[0]+")"),u.scale(L).ticks(I/36).tickSize(-F,0),J.select(".nv-focus .nv-y1.nv-axis").style("opacity",U.length?1:0),a.scale(A).ticks(I/36).tickSize(U.length?0:-F,0),J.select(".nv-focus .nv-y2.nv-axis").style("opacity",z.length?1:0).attr("transform","translate("+C.range()[1]+",0)"),J.select(".nv-focus .nv-y1.nv-axis").transition().duration(P).call(u),J.select(".nv-focus .nv-y2.nv-axis").transition().duration(P).call(a)}var N=d3.select(this),j=this,F=(v||parseInt(N.style("width"))||960)-p.left-p.right,I=(m||parseInt(N.style("height"))||400)-p.top-p.bottom-g,q=g-d.top-d.bottom;B.update=function(){N.transition().duration(P).call(B)},B.container=this;if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var R=N.selectAll(".nv-noData").data([_]);return R.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),R.attr("x",p.left+F/2).attr("y",p.top+I/2).text(function(e){return e}),B}N.selectAll(".nv-noData").remove();var U=e.filter(function(e){return!e.disabled&&e.bar}),z=e.filter(function(e){return!e.bar});C=r.xScale(),k=o.scale(),L=r.yScale(),A=t.yScale(),O=i.yScale(),M=n.yScale();var W=e.filter(function(e){return!e.disabled&&e.bar}).map(function(e){return e.values.map(function(e,t){return{x:y(e,t),y:b(e,t)}})}),X=e.filter(function(e){return!e.disabled&&!e.bar}).map(function(e){return e.values.map(function(e,t){return{x:y(e,t),y:b(e,t)}})});C.range([0,F]),k.domain(d3.extent(d3.merge(W.concat(X)),function(e){return e.x})).range([0,F]);var V=N.selectAll("g.nv-wrap.nv-linePlusBar").data([e]),$=V.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),J=V.select("g");$.append("g").attr("class","nv-legendWrap");var K=$.append("g").attr("class","nv-focus");K.append("g").attr("class","nv-x nv-axis"),K.append("g").attr("class","nv-y1 nv-axis"),K.append("g").attr("class","nv-y2 nv-axis"),K.append("g").attr("class","nv-barsWrap"),K.append("g").attr("class","nv-linesWrap");var Q=$.append("g").attr("class","nv-context");Q.append("g").attr("class","nv-x nv-axis"),Q.append("g").attr("class","nv-y1 nv-axis"),Q.append("g").attr("class","nv-y2 nv-axis"),Q.append("g").attr("class","nv-barsWrap"),Q.append("g").attr("class","nv-linesWrap"),Q.append("g").attr("class","nv-brushBackground"),Q.append("g").attr("class","nv-x nv-brush"),E&&(c.width(F/2),J.select(".nv-legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.bar?" (left axis)":" (right axis)"),e})).call(c),p.top!=c.height()&&(p.top=c.height(),I=(m||parseInt(N.style("height"))||400)-p.top-p.bottom-g),J.select(".nv-legendWrap").attr("transform","translate("+F/2+","+ -p.top+")")),V.attr("transform","translate("+p.left+","+p.top+")"),i.width(F).height(q).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&e[n].bar})),n.width(F).height(q).color(e.map(function(e,t){return e.color||w(e,t)}).filter(function(t,n){return!e[n].disabled&&!e[n].bar}));var G=J.select(".nv-context .nv-barsWrap").datum(U.length?U:[{values:[]}]),Y=J.select(".nv-context .nv-linesWrap").datum(z[0].disabled?[{values:[]}]:z);J.select(".nv-context").attr("transform","translate(0,"+(I+p.bottom+d.top)+")"),G.transition().call(i),Y.transition().call(n),h.x(k).on("brush",it),x&&h.extent(x);var Z=J.select(".nv-brushBackground").selectAll("g").data([x||h.extent()]),et=Z.enter().append("g");et.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",q),et.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",q);var tt=J.select(".nv-x.nv-brush").call(h);tt.selectAll("rect").attr("height",q),tt.selectAll(".resize").append("path").attr("d",nt),o.ticks(F/100).tickSize(-q,0),J.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+O.range()[0]+")"),J.select(".nv-context .nv-x.nv-axis").transition().call(o),f.scale(O).ticks(q/36).tickSize(-F,0),J.select(".nv-context .nv-y1.nv-axis").style("opacity",U.length?1:0).attr("transform","translate(0,"+k.range()[0]+")"),J.select(".nv-context .nv-y1.nv-axis").transition().call(f),l.scale(M).ticks(q/36).tickSize(U.length?0:-F,0),J.select(".nv-context .nv-y2.nv-axis").style("opacity",z.length?1:0).attr("transform","translate("+k.range()[1]+",0)"),J.select(".nv-context .nv-y2.nv-axis").transition().call(l),c.dispatch.on("stateChange",function(e){B.update()}),D.on("tooltipShow",function(e){T&&H(e,j.parentNode)}),it()}),B}var t=e.models.line(),n=e.models.line(),r=e.models.historicalBar(),i=e.models.historicalBar(),s=e.models.axis(),o=e.models.axis(),u=e.models.axis(),a=e.models.axis(),f=e.models.axis(),l=e.models.axis(),c=e.models.legend(),h=d3.svg.brush(),p={top:30,right:30,bottom:30,left:60},d={top:0,right:30,bottom:20,left:60},v=null,m=null,g=100,y=function(e){return e.x},b=function(e){return e.y},w=e.utils.defaultColor(),E=!0,S,x=null,T=!0,N=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},C,k,L,A,O,M,_="No Data Available.",D=d3.dispatch("tooltipShow","tooltipHide","brush"),P=0;t.clipEdge(!0),n.interactive(!1),s.orient("bottom").tickPadding(5),u.orient("left"),a.orient("right"),o.orient("bottom").tickPadding(5),f.orient("left"),l.orient("right");var H=function(n,r){S&&(n.pointIndex+=Math.ceil(S[0]));var i=n.pos[0]+(r.offsetLeft||0),o=n.pos[1]+(r.offsetTop||0),f=s.tickFormat()(t.x()(n.point,n.pointIndex)),l=(n.series.bar?u:a).tickFormat()(t.y()(n.point,n.pointIndex)),c=N(n.series.key,f,l,n,B);e.tooltip.show([i,o],c,n.value<0?"n":"s",null,r)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+p.left,e.pos[1]+p.top],D.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){D.tooltipHide(e)}),r.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+p.left,e.pos[1]+p.top],D.tooltipShow(e)}),r.dispatch.on("elementMouseout.tooltip",function(e){D.tooltipHide(e)}),D.on("tooltipHide",function(){T&&e.tooltip.cleanup()}),B.dispatch=D,B.legend=c,B.lines=t,B.lines2=n,B.bars=r,B.bars2=i,B.xAxis=s,B.x2Axis=o,B.y1Axis=u,B.y2Axis=a,B.y3Axis=f,B.y4Axis=l,d3.rebind(B,t,"defined","size","clipVoronoi","interpolate"),B.options=e.utils.optionsFunc.bind(B),B.x=function(e){return arguments.length?(y=e,t.x(e),r.x(e),B):y},B.y=function(e){return arguments.length?(b=e,t.y(e),r.y(e),B):b},B.margin=function(e){return arguments.length?(p.top=typeof e.top!="undefined"?e.top:p.top,p.right=typeof e.right!="undefined"?e.right:p.right,p.bottom=typeof e.bottom!="undefined"?e.bottom:p.bottom,p.left=typeof e.left!="undefined"?e.left:p.left,B):p},B.width=function(e){return arguments.length?(v=e,B):v},B.height=function(e){return arguments.length?(m=e,B):m},B.color=function(t){return arguments.length?(w=e.utils.getColor(t),c.color(w),B):w},B.showLegend=function(e){return arguments.length?(E=e,B):E},B.tooltips=function(e){return arguments.length?(T=e,B):T},B.tooltipContent=function(e){return arguments.length?(N=e,B):N},B.noData=function(e){return arguments.length?(_=e,B):_},B.brushExtent=function(e){return arguments.length?(x=e,B):x},B},e.models.multiBar=function(){"use strict";function C(e){return e.each(function(e){var C=n-t.left-t.right,k=r-t.top-t.bottom,L=d3.select(this);d&&e.length&&(d=[{values:e[0].values.map(function(e){return{x:e.x,y:0,series:e.series,size:.01}})}]),c&&(e=d3.layout.stack().offset(h).values(function(e){return e.values}).y(a)(!e.length&&d?d:e)),e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})}),c&&e[0].values.map(function(t,n){var r=0,i=0;e.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=i,i-=t.size):(t.y1=t.size+r,r+=t.size)})});var A=y&&b?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0,y1:e.y1}})});i.domain(y||d3.merge(A).map(function(e){return e.x})).rangeBands(w||[0,C],S),s.domain(b||d3.extent(d3.merge(A).map(function(e){return c?e.y>0?e.y1:e.y1+e.y:e.y}).concat(f))).range(E||[k,0]),i.domain()[0]===i.domain()[1]&&(i.domain()[0]?i.domain([i.domain()[0]-i.domain()[0]*.01,i.domain()[1]+i.domain()[1]*.01]):i.domain([-1,1])),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]+s.domain()[0]*.01,s.domain()[1]-s.domain()[1]*.01]):s.domain([-1,1])),T=T||i,N=N||s;var O=L.selectAll("g.nv-wrap.nv-multibar").data([e]),M=O.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),_=M.append("defs"),D=M.append("g"),P=O.select("g");D.append("g").attr("class","nv-groups"),O.attr("transform","translate("+t.left+","+t.top+")"),_.append("clipPath").attr("id","nv-edge-clip-"+o).append("rect"),O.select("#nv-edge-clip-"+o+" rect").attr("width",C).attr("height",k),P.attr("clip-path",l?"url(#nv-edge-clip-"+o+")":"");var H=O.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});H.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),H.exit().transition().selectAll("rect.nv-bar").delay(function(t,n){return n*g/e[0].values.length}).attr("y",function(e){return c?N(e.y0):N(0)}).attr("height",0).remove(),H.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return p(e,t)}).style("stroke",function(e,t){return p(e,t)}),H.transition().style("stroke-opacity",1).style("fill-opacity",.75);var B=H.selectAll("rect.nv-bar").data(function(t){return d&&!e.length?d.values:t.values});B.exit().remove();var j=B.enter().append("rect").attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(t,n,r){return c?0:r*i.rangeBand()/e.length}).attr("y",function(e){return N(c?e.y0:0)}).attr("height",0).attr("width",i.rangeBand()/(c?1:e.length)).attr("transform",function(e,t){return"translate("+i(u(e,t))+",0)"});B.style("fill",function(e,t,n){return p(e,n,t)}).style("stroke",function(e,t,n){return p(e,n,t)}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),x.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),x.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){x.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length
-,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){x.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[i(u(t,n))+i.rangeBand()*(c?e.length/2:t.series+.5)/e.length,s(a(t,n)+(c?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}),B.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}).transition().attr("transform",function(e,t){return"translate("+i(u(e,t))+",0)"}),v&&(m||(m=e.map(function(){return!0})),B.style("fill",function(e,t,n){return d3.rgb(v(e,t)).darker(m.map(function(e,t){return t}).filter(function(e,t){return!m[t]})[n]).toString()}).style("stroke",function(e,t,n){return d3.rgb(v(e,t)).darker(m.map(function(e,t){return t}).filter(function(e,t){return!m[t]})[n]).toString()})),c?B.transition().delay(function(t,n){return n*g/e[0].values.length}).attr("y",function(e,t){return s(c?e.y1:0)}).attr("height",function(e,t){return Math.max(Math.abs(s(e.y+(c?e.y0:0))-s(c?e.y0:0)),1)}).attr("x",function(t,n){return c?0:t.series*i.rangeBand()/e.length}).attr("width",i.rangeBand()/(c?1:e.length)):B.transition().delay(function(t,n){return n*g/e[0].values.length}).attr("x",function(t,n){return t.series*i.rangeBand()/e.length}).attr("width",i.rangeBand()/e.length).attr("y",function(e,t){return a(e,t)<0?s(0):s(0)-s(a(e,t))<1?s(0)-1:s(a(e,t))||0}).attr("height",function(e,t){return Math.max(Math.abs(s(a(e,t))-s(0)),1)||0}),T=i.copy(),N=s.copy()}),C}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=d3.scale.ordinal(),s=d3.scale.linear(),o=Math.floor(Math.random()*1e4),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=!0,c=!1,h="zero",p=e.utils.defaultColor(),d=!1,v=null,m,g=1200,y,b,w,E,S=.1,x=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),T,N;return C.dispatch=x,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(u=e,C):u},C.y=function(e){return arguments.length?(a=e,C):a},C.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,C):t},C.width=function(e){return arguments.length?(n=e,C):n},C.height=function(e){return arguments.length?(r=e,C):r},C.xScale=function(e){return arguments.length?(i=e,C):i},C.yScale=function(e){return arguments.length?(s=e,C):s},C.xDomain=function(e){return arguments.length?(y=e,C):y},C.yDomain=function(e){return arguments.length?(b=e,C):b},C.xRange=function(e){return arguments.length?(w=e,C):w},C.yRange=function(e){return arguments.length?(E=e,C):E},C.forceY=function(e){return arguments.length?(f=e,C):f},C.stacked=function(e){return arguments.length?(c=e,C):c},C.stackOffset=function(e){return arguments.length?(h=e,C):h},C.clipEdge=function(e){return arguments.length?(l=e,C):l},C.color=function(t){return arguments.length?(p=e.utils.getColor(t),C):p},C.barColor=function(t){return arguments.length?(v=e.utils.getColor(t),C):v},C.disabled=function(e){return arguments.length?(m=e,C):m},C.id=function(e){return arguments.length?(o=e,C):o},C.hideable=function(e){return arguments.length?(d=e,C):d},C.delay=function(e){return arguments.length?(g=e,C):g},C.groupSpacing=function(e){return arguments.length?(S=e,C):S},C},e.models.multiBarChart=function(){"use strict";function A(e){return e.each(function(e){var b=d3.select(this),O=this,M=(u||parseInt(b.style("width"))||960)-o.left-o.right,_=(a||parseInt(b.style("height"))||400)-o.top-o.bottom;A.update=function(){b.transition().duration(k).call(A)},A.container=this,S.disabled=e.map(function(e){return!!e.disabled});if(!x){var D;x={};for(D in S)S[D]instanceof Array?x[D]=S[D].slice(0):x[D]=S[D]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var P=b.selectAll(".nv-noData").data([T]);return P.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),P.attr("x",o.left+M/2).attr("y",o.top+_/2).text(function(e){return e}),A}b.selectAll(".nv-noData").remove(),w=t.xScale(),E=t.yScale();var H=b.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([e]),B=H.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),j=H.select("g");B.append("g").attr("class","nv-x nv-axis"),B.append("g").attr("class","nv-y nv-axis"),B.append("g").attr("class","nv-barsWrap"),B.append("g").attr("class","nv-legendWrap"),B.append("g").attr("class","nv-controlsWrap"),c&&(i.width(M-C()),t.barColor()&&e.forEach(function(e,t){e.color=d3.rgb("#ccc").darker(t*1.5).toString()}),j.select(".nv-legendWrap").datum(e).call(i),o.top!=i.height()&&(o.top=i.height(),_=(a||parseInt(b.style("height"))||400)-o.top-o.bottom),j.select(".nv-legendWrap").attr("transform","translate("+C()+","+ -o.top+")"));if(l){var F=[{key:"Grouped",disabled:t.stacked()},{key:"Stacked",disabled:!t.stacked()}];s.width(C()).color(["#444","#444","#444"]),j.select(".nv-controlsWrap").datum(F).attr("transform","translate(0,"+ -o.top+")").call(s)}H.attr("transform","translate("+o.left+","+o.top+")"),d&&j.select(".nv-y.nv-axis").attr("transform","translate("+M+",0)"),t.disabled(e.map(function(e){return e.disabled})).width(M).height(_).color(e.map(function(e,t){return e.color||f(e,t)}).filter(function(t,n){return!e[n].disabled}));var I=j.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));I.transition().call(t);if(h){n.scale(w).ticks(M/100).tickSize(-_,0),j.select(".nv-x.nv-axis").attr("transform","translate(0,"+E.range()[0]+")"),j.select(".nv-x.nv-axis").transition().call(n);var q=j.select(".nv-x.nv-axis > g").selectAll("g");q.selectAll("line, text").style("opacity",1);if(m){var R=function(e,t){return"translate("+e+","+t+")"},U=5,z=17;q.selectAll("text").attr("transform",function(e,t,n){return R(0,n%2==0?U:z)});var W=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;j.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(e,t){return R(0,t===0||W%2!==0?z:U)})}v&&q.filter(function(t,n){return n%Math.ceil(e[0].values.length/(M/100))!==0}).selectAll("text, line").style("opacity",0),g&&q.selectAll(".tick text").attr("transform","rotate("+g+" 0,0)").style("text-anchor",g>0?"start":"end"),j.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}p&&(r.scale(E).ticks(_/36).tickSize(-M,0),j.select(".nv-y.nv-axis").transition().call(r)),i.dispatch.on("stateChange",function(e){S=e,N.stateChange(S),A.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;F=F.map(function(e){return e.disabled=!0,e}),e.disabled=!1;switch(e.key){case"Grouped":t.stacked(!1);break;case"Stacked":t.stacked(!0)}S.stacked=t.stacked(),N.stateChange(S),A.update()}),N.on("tooltipShow",function(e){y&&L(e,O.parentNode)}),N.on("changeState",function(n){typeof n.disabled!="undefined"&&(e.forEach(function(e,t){e.disabled=n.disabled[t]}),S.disabled=n.disabled),typeof n.stacked!="undefined"&&(t.stacked(n.stacked),S.stacked=n.stacked),A.update()})}),A}var t=e.models.multiBar(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o={top:30,right:20,bottom:50,left:60},u=null,a=null,f=e.utils.defaultColor(),l=!0,c=!0,h=!0,p=!0,d=!1,v=!0,m=!1,g=0,y=!0,b=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" on "+t+"</p>"},w,E,S={stacked:!1},x=null,T="No Data Available.",N=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),C=function(){return l?180:0},k=250;t.stacked(!1),n.orient("bottom").tickPadding(7).highlightZero(!0).showMaxMin(!1).tickFormat(function(e){return e}),r.orient(d?"right":"left").tickFormat(d3.format(",.1f")),s.updateState(!1);var L=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=b(i.series.key,a,f,i,A);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],N.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){N.tooltipHide(e)}),N.on("tooltipHide",function(){y&&e.tooltip.cleanup()}),A.dispatch=N,A.multibar=t,A.legend=i,A.xAxis=n,A.yAxis=r,d3.rebind(A,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","clipEdge","id","stacked","stackOffset","delay","barColor","groupSpacing"),A.options=e.utils.optionsFunc.bind(A),A.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,A):o},A.width=function(e){return arguments.length?(u=e,A):u},A.height=function(e){return arguments.length?(a=e,A):a},A.color=function(t){return arguments.length?(f=e.utils.getColor(t),i.color(f),A):f},A.showControls=function(e){return arguments.length?(l=e,A):l},A.showLegend=function(e){return arguments.length?(c=e,A):c},A.showXAxis=function(e){return arguments.length?(h=e,A):h},A.showYAxis=function(e){return arguments.length?(p=e,A):p},A.rightAlignYAxis=function(e){return arguments.length?(d=e,r.orient(e?"right":"left"),A):d},A.reduceXTicks=function(e){return arguments.length?(v=e,A):v},A.rotateLabels=function(e){return arguments.length?(g=e,A):g},A.staggerLabels=function(e){return arguments.length?(m=e,A):m},A.tooltip=function(e){return arguments.length?(b=e,A):b},A.tooltips=function(e){return arguments.length?(y=e,A):y},A.tooltipContent=function(e){return arguments.length?(b=e,A):b},A.state=function(e){return arguments.length?(S=e,A):S},A.defaultState=function(e){return arguments.length?(x=e,A):x},A.noData=function(e){return arguments.length?(T=e,A):T},A.transitionDuration=function(e){return arguments.length?(k=e,A):k},A},e.models.multiBarHorizontal=function(){"use strict";function C(e){return e.each(function(e){var i=n-t.left-t.right,y=r-t.top-t.bottom,C=d3.select(this);p&&(e=d3.layout.stack().offset("zero").values(function(e){return e.values}).y(a)(e)),e.forEach(function(e,t){e.values.forEach(function(e){e.series=t})}),p&&e[0].values.map(function(t,n){var r=0,i=0;e.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=i-t.size,i-=t.size):(t.y1=r,r+=t.size)})});var k=b&&w?[]:e.map(function(e){return e.values.map(function(e,t){return{x:u(e,t),y:a(e,t),y0:e.y0,y1:e.y1}})});s.domain(b||d3.merge(k).map(function(e){return e.x})).rangeBands(E||[0,y],.1),o.domain(w||d3.extent(d3.merge(k).map(function(e){return p?e.y>0?e.y1+e.y:e.y1:e.y}).concat(f))),d&&!p?o.range(S||[o.domain()[0]<0?m:0,i-(o.domain()[1]>0?m:0)]):o.range(S||[0,i]),T=T||s,N=N||d3.scale.linear().domain(o.domain()).range([o(0),o(0)]);var L=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([e]),A=L.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),O=A.append("defs"),M=A.append("g"),_=L.select("g");M.append("g").attr("class","nv-groups"),L.attr("transform","translate("+t.left+","+t.top+")");var D=L.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().transition().style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return l(e,t)}).style("stroke",function(e,t){return l(e,t)}),D.transition().style("stroke-opacity",1).style("fill-opacity",.75);var P=D.selectAll("g.nv-bar").data(function(e){return e.values});P.exit().remove();var H=P.enter().append("g").attr("transform",function(t,n,r){return"translate("+N(p?t.y0:0)+","+(p?0:r*s.rangeBand()/e.length+s(u(t,n)))+")"});H.append("rect").attr("width",0).attr("height",s.rangeBand()/(p?1:e.length)),P.on("mouseover",function(t,n){d3.select(this).classed("hover",!0),x.elementMouseover({value:a(t,n),point:t,series:e[t.series],pos:[o(a(t,n)+(p?t.y0:0)),s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),x.elementMouseout({value:a(t,n),point:t,series:e[t.series],pointIndex:n,seriesIndex:t.series,e:d3.event})}).on("click",function(t,n){x.elementClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length,o(a(t,n)+(p?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}).on("dblclick",function(t,n){x.elementDblClick({value:a(t,n),point:t,series:e[t.series],pos:[s(u(t,n))+s.rangeBand()*(p?e.length/2:t.series+.5)/e.length,o(a(t,n)+(p?t.y0:0))],pointIndex:n,seriesIndex:t.series,e:d3.event}),d3.event.stopPropagation()}),H.append("text"),d&&!p?(P.select("text").attr("text-anchor",function(e,t){return a(e,t)<0?"end":"start"}).attr("y",s.rangeBand()/(e.length*2)).attr("dy",".32em").text(function(e,t){return g(a(e,t))}),P.transition().select("text").attr("x",function(e,t){return a(e,t)<0?-4:o(a(e,t))-o(0)+4})):P.selectAll("text").text(""),v&&!p?(H.append("text").classed("nv-bar-label",!0),P.select("text.nv-bar-label").attr("text-anchor",function(e,t){return a(e,t)<0?"start":"end"}).attr("y",s.rangeBand()/(e.length*2)).attr("dy",".32em").text(function(e,t){return u(e,t)}),P.transition().select("text.nv-bar-label").attr("x",function(e,t){return a(e,t)<0?o(0)-o(a(e,t))+4:-4})):P.selectAll("text.nv-bar-label").text(""),P.attr("class",function(e,t){return a(e,t)<0?"nv-bar negative":"nv-bar positive"}),c&&(h||(h=e.map(function(){return!0})),P.style("fill",function(e,t,n){return d3.rgb(c(e,t)).darker(h.map(function(e,t){return t}).filter(function(e,t){return!h[t]})[n]).toString()}).style("stroke",function(e,t,n){return d3.rgb(c(e,t)).darker(h.map(function(e,t){return t}).filter(function(e,t){return!h[t]})[n]).toString()})),p?P.transition().attr("transform",function(e,t){return"translate("+o(e.y1)+","+s(u(e,t))+")"}).select("rect").attr("width",function(e,t){return Math.abs(o(a(e,t)+e.y0)-o(e.y0))}).attr("height",s.rangeBand()):P.transition().attr("transform",function(t,n){return"translate("+(a(t,n)<0?o(a(t,n)):o(0))+","+(t.series*s.rangeBand()/e.length+s(u(t,n)))+")"}).select("rect").attr("height",s.rangeBand()/e.length).attr("width",function(e,t){return Math.max(Math.abs(o(a(e,t))-o(0)),1)}),T=s.copy(),N=o.copy()}),C}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.ordinal(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=[0],l=e.utils.defaultColor(),c=null,h,p=!1,d=!1,v=!1,m=60,g=d3.format(",.2f"),y=1200,b,w,E,S,x=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout"),T,N;return C.dispatch=x,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(u=e,C):u},C.y=function(e){return arguments.length?(a=e,C):a},C.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,C):t},C.width=function(e){return arguments.length?(n=e,C):n},C.height=function(e){return arguments.length?(r=e,C):r},C.xScale=function(e){return arguments.length?(s=e,C):s},C.yScale=function(e){return arguments.length?(o=e,C):o},C.xDomain=function(e){return arguments.length?(b=e,C):b},C.yDomain=function(e){return arguments.length?(w=e,C):w},C.xRange=function(e){return arguments.length?(E=e,C):E},C.yRange=function(e){return arguments.length?(S=e,C):S},C.forceY=function(e){return arguments.length?(f=e,C):f},C.stacked=function(e){return arguments.length?(p=e,C):p},C.color=function(t){return arguments.length?(l=e.utils.getColor(t),C):l},C.barColor=function(t){return arguments.length?(c=e.utils.getColor(t),C):c},C.disabled=function(e){return arguments.length?(h=e,C):h},C.id=function(e){return arguments.length?(i=e,C):i},C.delay=function(e){return arguments.length?(y=e,C):y},C.showValues=function(e){return arguments.length?(d=e,C):d},C.showBarLabels=function(e){return arguments.length?(v=e,C):v},C.valueFormat=function(e){return arguments.length?(g=e,C):g},C.valuePadding=function(e){return arguments.length?(m=e,C):m},C},e.models.multiBarHorizontalChart=function(){"use strict";function C(e){return e.each(function(e){var d=d3.select(this),m=this,k=(u||parseInt(d.style("width"))||960)-o.left-o.right,L=(a||parseInt(d.style("height"))||400)-o.top-o.bottom;C.update=function(){d.transition().duration(T).call(C)},C.container=this,b.disabled=e.map(function(e){return!!e.disabled});if(!w){var A;w={};for(A in b)b[A]instanceof Array?w[A]=b[A].slice(0):w[A]=b[A]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var O=d.selectAll(".nv-noData").data([E]);return O.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),O.attr("x",o.left+k/2).attr("y",o.top+L/2).text(function(e){return e}),C}d.selectAll(".nv-noData").remove(),g=t.xScale(),y=t.yScale();var M=d.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([e]),_=M.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),D=M.select("g");_.append("g").attr("class","nv-x nv-axis"),_.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),_.append("g").attr("class","nv-barsWrap"),_.append("g").attr("class","nv-legendWrap"),_.append("g").attr("class","nv-controlsWrap"),c&&(i.width(k-x()),t.barColor()&&e.forEach(function(e,t){e.color=d3.rgb("#ccc").darker(t*1.5).toString()}),D.select(".nv-legendWrap").datum(e).call(i),o.top!=i.height()&&(o.top=i.height(),L=(a||parseInt(d.style("height"))||400)-o.top-o.bottom),D.select(".nv-legendWrap").attr("transform","translate("+x()+","+ -o.top+")"));if(l){var P=[{key:"Grouped",disabled:t.stacked()},{key:"Stacked",disabled:!t.stacked()}];s.width(x()).color(["#444","#444","#444"]),D.select(".nv-controlsWrap").datum(P).attr("transform","translate(0,"+ -o.top+")").call(s)}M.attr("transform","translate("+o.left+","+o.top+")"),t.disabled(e.map(function(e){return e.disabled})).width(k).height(L).color(e.map(function(e,t){return e.color||f(e,t)}).filter(function(t,n){return!e[n].disabled}));var H=D.select(".nv-barsWrap").datum(e.filter(function(e){return!e.disabled}));H.transition().call(t);if(h){n.scale(g).ticks(L/24).tickSize(-k,0),D.select(".nv-x.nv-axis").transition().call(n);var B=D.select(".nv-x.nv-axis").selectAll("g");B.selectAll("line, text")}p&&(r.scale(y).ticks(k/100).tickSize(-L,0),D.select(".nv-y.nv-axis").attr("transform","translate(0,"+L+")"),D.select(".nv-y.nv-axis").transition().call(r)),D.select(".nv-zeroLine line").attr("x1",y(0)).attr("x2",y(0)).attr("y1",0).attr("y2",-L),i.dispatch.on("stateChange",function(e){b=e,S.stateChange(b),C.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;P=P.map(function(e){return e.disabled=!0,e}),e.disabled=!1;switch(e.key){case"Grouped":t.stacked(!1);break;case"Stacked":t.stacked(!0)}b.stacked=t.stacked(),S.stateChange(b),C.update()}),S.on("tooltipShow",function(e){v&&N(e,m.parentNode)}),S.on("changeState",function(n){typeof n.disabled!="undefined"&&(e.forEach(function(e,t){e.disabled=n.disabled[t]}),b.disabled=n.disabled),typeof n.stacked!="undefined"&&(t.stacked(n.stacked),b.stacked=n.stacked),C.update()})}),C}var t=e.models.multiBarHorizontal(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend().height(30),s=e.models.legend().height(30),o={top:30,right:20,bottom:50,left:60},u=null,a=null,f=e.utils.defaultColor(),l=!0,c=!0,h=!0,p=!0,d=!1,v=!0,m=function(e,t,n,r,i){return"<h3>"+e+" - "+t+"</h3>"+"<p>"+n+"</p>"},g,y,b={stacked:d},w=null,E="No Data Available.",S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),x=function(){return l?180:0},T=250;t.stacked(d),n.orient("left").tickPadding(5).highlightZero(!1).showMaxMin(!1).tickFormat(function(e){return e}),r.orient("bottom").tickFormat(d3.format(",.1f")),s.updateState(!1);var N=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=m(i.series.key,a,f,i,C);e.tooltip.show([o,u],l,i.value<0?"e":"w",null,s)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+o.left,e.pos[1]+o.top],S.tooltipShow(e)}),t.dispatch.on("elementMouseout.tooltip",function(e){S.tooltipHide(e)}),S.on("tooltipHide",function(){v&&e.tooltip.cleanup()}),C.dispatch=S,C.multibar=t,C.legend=i,C.xAxis=n,C.yAxis=r,d3.rebind(C,t,"x","y","xDomain","yDomain","xRange","yRange","forceX","forceY","clipEdge","id","delay","showValues","showBarLabels","valueFormat","stacked","barColor"),C.options=e.utils.optionsFunc.bind(C),C.margin=function(e){return arguments.length?(o.top=typeof e.top!="undefined"?e.top:o.top,o.right=typeof e.right!="undefined"?e.right:o.right,o.bottom=typeof e.bottom!="undefined"?e.bottom:o.bottom,o.left=typeof e.left!="undefined"?e.left:o.left,C):o},C.width=function(e){return arguments.length?(u=e,C):u},C.height=function(e){return arguments.length?(a=e,C):a},C.color=function(t){return arguments.length?(f=e.utils.getColor(t),i.color(f),C):f},C.showControls=function(e){return arguments.length?(l=e,C):l},C.showLegend=function(e){return arguments.length?(c=e,C):c},C.showXAxis=function(e){return arguments.length?(h=e,C):h},C.showYAxis=function(e){return arguments.length?(p=e,C):p},C.tooltip=function(e){return arguments.length?(m=e,C):m},C.tooltips=function(e){return arguments.length?(v=e,C):v},C.tooltipContent=function(e){return arguments.length?(m=e,C):m},C.state=function(e){return arguments.length?(b=e,C):b},C.defaultState=function(e){return arguments.length?(w=e,C):w},C.noData=function(e){return arguments.length?(E=e,C):E},C.transitionDuration=function(e){return arguments.length?(T=e,C):T},C},e.models.multiChart=function(){"use strict";function C(e){return e.each(function(e){var u=d3.select(this),f=this;C.update=function(){u.transition().call(C)},C.container=this;var k=(r||parseInt(u.style("width"))||960)-t.left-t.right,L=(i||parseInt(u.style("height"))||400)-t.top-t.bottom,A=e.filter(function(e){return!e.disabled&&e.type=="line"&&e.yAxis==1}),O=e.filter(function(e){return!e.disabled&&e.type=="line"&&e.yAxis==2}),M=e.filter(function(e){return!e.disabled&&e.type=="bar"&&e.yAxis==1}),_=e.filter(function(e){return!e.disabled&&e.type=="bar"&&e.yAxis==2}),D=e.filter(function(e){return!e.disabled&&e.type=="area"&&e.yAxis==1}),P=e.filter(function(e){return!e.disabled&&e.type=="area"&&e.yAxis==2}),H=e.filter(function(e){return!e.disabled&&e.yAxis==1}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})}),B=e.filter(function(e){return!e.disabled&&e.yAxis==2}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})});a.domain(d3.extent(d3.merge(H.concat(B)),function(e){return e.x})).range([0,k]);var j=u.selectAll("g.wrap.multiChart").data([e]),F=j.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");F.append("g").attr("class","x axis"),F.append("g").attr("class","y1 axis"),F.append("g").attr("class","y2 axis"),F.append("g").attr("class","lines1Wrap"),F.append("g").attr("class","lines2Wrap"),F.append("g").attr("class","bars1Wrap"),F.append("g").attr("class","bars2Wrap"),F.append("g").attr("class","stack1Wrap"),F.append("g").attr("class","stack2Wrap"),F.append("g").attr("class","legendWrap");var I=j.select("g");s&&(x.width(k/2),I.select(".legendWrap").datum(e.map(function(e){return e.originalKey=e.originalKey===undefined?e.key:e.originalKey,e.key=e.originalKey+(e.yAxis==1?"":" (right axis)"),e})).call(x),t.top!=x.height()&&(t.top=x.height(),L=(i||parseInt(u.style("height"))||400)-t.top-t.bottom),I.select(".legendWrap").attr("transform","translate("+k/2+","+ -t.top+")")),d.width(k).height(L).interpolate("monotone").color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="line"})),v.width(k).height(L).interpolate("monotone").color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="line"})),m.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="bar"})),g.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="bar"})),y.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==1&&e[n].type=="area"})),b.width(k).height(L).color(e.map(function(e,t){return e.color||n[t%n.length]}).filter(function(t,n){return!e[n].disabled&&e[n].yAxis==2&&e[n].type=="area"})),I.attr("transform","translate("+t.left+","+t.top+")");var q=I.select(".lines1Wrap").datum(A),R=I.select(".bars1Wrap").datum(M),U=I.select(".stack1Wrap").datum(D),z=I.select(".lines2Wrap").datum(O),W=I.select(".bars2Wrap").datum(_),X=I.select(".stack2Wrap").datum(P),V=D.length?D.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[],$=P.length?P.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[];h.domain(l||d3.extent(d3.merge(H).concat(V),function(e){return e.y})).range([0,L]),p.domain(c||d3.extent(d3.merge(B).concat($),function(e){return e.y})).range([0,L]),d.yDomain(h.domain()),m.yDomain(h.domain()),y.yDomain(h.domain()),v.yDomain(p.domain()),g.yDomain(p.domain()),b.yDomain(p.domain()),D.length&&d3.transition(U).call(y),P.length&&d3.transition(X).call(b),M.length&&d3.transition(R).call(m),_.length&&d3.transition(W).call(g),A.length&&d3.transition(q).call(d),O.length&&d3.transition(z).call(v),w.ticks(k/100).tickSize(-L,0),I.select(".x.axis").attr("transform","translate(0,"+L+")"),d3.transition(I.select(".x.axis")).call(w),E.ticks(L/36).tickSize(-k,0),d3.transition(I.select(".y1.axis")).call(E),S.ticks(L/36).tickSize(-k,0),d3.transition(I.select(".y2.axis")).call(S),I.select(".y2.axis").style("opacity",B.length?1:0).attr("transform","translate("+a.range()[1]+",0)"),x.dispatch.on("stateChange",function(e){C.update()}),T.on("tooltipShow",function(e){o&&N(e,f.parentNode)})}),C}var t={top:30,right:20,bottom:50,left:60},n=d3.scale.category20().range(),r=null,i=null,s=!0,o=!0,u=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" at "+t+"</p>"},a,f,l,c,a=d3.scale.linear(),h=d3.scale.linear(),p=d3.scale.linear(),d=e.models.line().yScale(h),v=e.models.line().yScale(p),m=e.models.multiBar().stacked(!1).yScale(h),g=e.models.multiBar().stacked(!1).yScale(p),y=e.models.stackedArea().yScale(h),b=e.models.stackedArea().yScale(p),w=e.models.axis().scale(a).orient("bottom").tickPadding(5),E=e.models.axis().scale(h).orient("left"),S=e.models.axis().scale(p).orient("right"),x=e.models.legend().height(30),T=d3.dispatch("tooltipShow","tooltipHide"),N=function(t,n){var r=t.pos[0]+(n.offsetLeft||0),i=t.pos[1]+(n.offsetTop||0),s=w.tickFormat()(d.x()(t.point,t.pointIndex)),o=(t.series.yAxis==2?S:E).tickFormat()(d.y()(t.point,t.pointIndex)),a=u(t.series.key,s,o,t,C);e.tooltip.show([r,i],a,undefined,undefined,n.offsetParent)};return d.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),d.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),m.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),m.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),g.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),g.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),y.dispatch.on("tooltipShow",function(e){if(!Math.round(y.y()(e.point)*100))return setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0),!1;e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),y.dispatch.on("tooltipHide",function(e){T.tooltipHide(e)}),b.dispatch.on("tooltipShow",function(e){if(!Math.round(b.y()(e.point)*100))return setTimeout(function(){d3.selectAll(".point.hover").classed("hover",!1)},0),!1;e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),b.dispatch.on("tooltipHide",function(e){T.tooltipHide(e)}),d.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),d.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],T.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){T.tooltipHide(e)}),T.on("tooltipHide",function(){o&&e.tooltip.cleanup()}),C.dispatch=T,C.lines1=d,C.lines2=v,C.bars1=m,C.bars2=g,C.stack1=y,C.stack2=b,C.xAxis=w,C.yAxis1=E,C.yAxis2=S,C.options=e.utils.optionsFunc.bind(C),C.x=function(e){return arguments.length?(getX=e,d.x(e),m.x(e),C):getX},C.y=function(e){return arguments.length?(getY=e,d.y(e),m.y(e),C):getY},C.yDomain1=function(e){return arguments.length?(l=e,C):l},C.yDomain2=function(e){return arguments.length?(c=e,C):c},C.margin=function(e){return arguments.length?(t=e,C):t},C.width=function(e){return arguments.length?(r=e,C):r},C.height=function(e){return arguments.length?(i=e,C):i},C.color=function(e){return arguments.length?(n=e,x.color(e),C):n},C.showLegend=function(e){return arguments.length?(s=e,C):s},C.tooltips=function(e){return arguments.length?(o=e,C):o},C.tooltipContent=function(e){return arguments.length?(u=e,C):u},C},e.models.ohlcBar=function(){"use strict";function x(e){return e.each(function(e){var g=n-t.left-t.right,x=r-t.top-t.bottom,T=d3.select(this);s.domain(y||d3.extent(e[0].values.map(u).concat(p))),v?s.range(w||[g*.5/e[0].values.length,g*(e[0].values.length-.5)/e[0].values.length]):s.range(w||[0,g]),o.domain(b||[d3.min(e[0].values.map(h).concat(d)),d3.max(e[0].values.map(c).concat(d))]).range(E||[x,0]),s.domain()[0]===s.domain()[1]&&(s.domain()[0]?s.domain([s.domain()[0]-s.domain()[0]*.01,s.domain()[1]+s.domain()[1]*.01]):s.domain([-1,1])),o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]+o.domain()[0]*.01,o.domain()[1]-o.domain()[1]*.01]):o.domain([-1,1]));var N=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([e[0].values]),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),k=C.append("defs"),L=C.append("g"),A=N.select("g");L.append("g").attr("class","nv-ticks"),N.attr("transform","translate("+t.left+","+t.top+")"),T.on("click",function(e,t){S.chartClick({data:e,index:t,pos:d3.event,id:i})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+i).append("rect"),N.select("#nv-chart-clip-path-"+i+" rect").attr("width",g).attr("height",x),A.attr("clip-path",m?"url(#nv-chart-clip-path-"+i+")":"");var O=N.select(".nv-ticks").selectAll(".nv-tick").data(function(e){return e});O.exit().remove();var M=O.enter().append("path").attr("class",function(e,t,n){return(f(e,t)>l(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}).attr("d",function(t,n){var r=g/e[0].values.length*.9;return"m0,0l0,"+(o(f(t,n))-o(c(t,n)))+"l"+ -r/2+",0l"+r/2+",0l0,"+(o(h(t,n))-o(f(t,n)))+"l0,"+(o(l(t,n))-o(h(t,n)))+"l"+r/2+",0l"+ -r/2+",0z"}).attr("transform",function(e,t){return"translate("+s(u(e,t))+","+o(c(e,t))+")"}).on("mouseover",function(t,n){d3.select(this).classed("hover",!0),S.elementMouseover({point:t,series:e[0],pos:[s(u(t,n)),o(a(t,n))],pointIndex:n,seriesIndex:0,e:d3.event})}).on("mouseout",function(t,n){d3.select(this).classed("hover",!1),S.elementMouseout({point:t,series:e[0],pointIndex:n,seriesIndex:0,e:d3.event})}).on("click",function(e,t){S.elementClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()}).on("dblclick",function(e,t){S.elementDblClick({value:a(e,t),data:e,index:t,pos:[s(u(e,t)),o(a(e,t))],e:d3.event,id:i}),d3.event.stopPropagation()});O.attr("class",function(e,t,n){return(f(e,t)>l(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}),d3.transition(O).attr("transform",function(e,t){return"translate("+s(u(e,t))+","+o(c(e,t))+")"}).attr("d",function(t,n){var r=g/e[0].values.length*.9;return"m0,0l0,"+(o(f(t,n))-o(c(t,n)))+"l"+ -r/2+",0l"+r/2+",0l0,"+(o(h(t,n))-o(f(t,n)))+"l0,"+(o(l(t,n))-o(h(t,n)))+"l"+r/2+",0l"+ -r/2+",0z"})}),x}var t={top:0
-,right:0,bottom:0,left:0},n=960,r=500,i=Math.floor(Math.random()*1e4),s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=function(e){return e.open},l=function(e){return e.close},c=function(e){return e.high},h=function(e){return e.low},p=[],d=[],v=!1,m=!0,g=e.utils.defaultColor(),y,b,w,E,S=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");return x.dispatch=S,x.options=e.utils.optionsFunc.bind(x),x.x=function(e){return arguments.length?(u=e,x):u},x.y=function(e){return arguments.length?(a=e,x):a},x.open=function(e){return arguments.length?(f=e,x):f},x.close=function(e){return arguments.length?(l=e,x):l},x.high=function(e){return arguments.length?(c=e,x):c},x.low=function(e){return arguments.length?(h=e,x):h},x.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,x):t},x.width=function(e){return arguments.length?(n=e,x):n},x.height=function(e){return arguments.length?(r=e,x):r},x.xScale=function(e){return arguments.length?(s=e,x):s},x.yScale=function(e){return arguments.length?(o=e,x):o},x.xDomain=function(e){return arguments.length?(y=e,x):y},x.yDomain=function(e){return arguments.length?(b=e,x):b},x.xRange=function(e){return arguments.length?(w=e,x):w},x.yRange=function(e){return arguments.length?(E=e,x):E},x.forceX=function(e){return arguments.length?(p=e,x):p},x.forceY=function(e){return arguments.length?(d=e,x):d},x.padData=function(e){return arguments.length?(v=e,x):v},x.clipEdge=function(e){return arguments.length?(m=e,x):m},x.color=function(t){return arguments.length?(g=e.utils.getColor(t),x):g},x.id=function(e){return arguments.length?(i=e,x):i},x},e.models.pie=function(){"use strict";function S(e){return e.each(function(e){function q(e){var t=(e.startAngle+e.endAngle)*90/Math.PI-90;return t>90?t-180:t}function R(e){e.endAngle=isNaN(e.endAngle)?0:e.endAngle,e.startAngle=isNaN(e.startAngle)?0:e.startAngle,m||(e.innerRadius=0);var t=d3.interpolate(this._current,e);return this._current=t(0),function(e){return A(t(e))}}function U(e){e.innerRadius=0;var t=d3.interpolate({startAngle:0,endAngle:0},e);return function(e){return A(t(e))}}var o=n-t.left-t.right,f=r-t.top-t.bottom,S=Math.min(o,f)/2,x=S-S/5,T=d3.select(this),N=T.selectAll(".nv-wrap.nv-pie").data(e),C=N.enter().append("g").attr("class","nvd3 nv-wrap nv-pie nv-chart-"+u),k=C.append("g"),L=N.select("g");k.append("g").attr("class","nv-pie"),k.append("g").attr("class","nv-pieLabels"),N.attr("transform","translate("+t.left+","+t.top+")"),L.select(".nv-pie").attr("transform","translate("+o/2+","+f/2+")"),L.select(".nv-pieLabels").attr("transform","translate("+o/2+","+f/2+")"),T.on("click",function(e,t){E.chartClick({data:e,index:t,pos:d3.event,id:u})});var A=d3.svg.arc().outerRadius(x);y&&A.startAngle(y),b&&A.endAngle(b),m&&A.innerRadius(S*w);var O=d3.layout.pie().sort(null).value(function(e){return e.disabled?0:s(e)}),M=N.select(".nv-pie").selectAll(".nv-slice").data(O),_=N.select(".nv-pieLabels").selectAll(".nv-label").data(O);M.exit().remove(),_.exit().remove();var D=M.enter().append("g").attr("class","nv-slice").on("mouseover",function(e,t){d3.select(this).classed("hover",!0),E.elementMouseover({label:i(e.data),value:s(e.data),point:e.data,pointIndex:t,pos:[d3.event.pageX,d3.event.pageY],id:u})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),E.elementMouseout({label:i(e.data),value:s(e.data),point:e.data,index:t,id:u})}).on("click",function(e,t){E.elementClick({label:i(e.data),value:s(e.data),point:e.data,index:t,pos:d3.event,id:u}),d3.event.stopPropagation()}).on("dblclick",function(e,t){E.elementDblClick({label:i(e.data),value:s(e.data),point:e.data,index:t,pos:d3.event,id:u}),d3.event.stopPropagation()});M.attr("fill",function(e,t){return a(e,t)}).attr("stroke",function(e,t){return a(e,t)});var P=D.append("path").each(function(e){this._current=e});M.select("path").transition().attr("d",A).attrTween("d",R);if(l){var H=d3.svg.arc().innerRadius(0);c&&(H=A),h&&(H=d3.svg.arc().outerRadius(A.outerRadius())),_.enter().append("g").classed("nv-label",!0).each(function(e,t){var n=d3.select(this);n.attr("transform",function(e){if(g){e.outerRadius=x+10,e.innerRadius=x+15;var t=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?t-=90:t+=90,"translate("+H.centroid(e)+") rotate("+t+")"}return e.outerRadius=S+10,e.innerRadius=S+15,"translate("+H.centroid(e)+")"}),n.append("rect").style("stroke","#fff").style("fill","#fff").attr("rx",3).attr("ry",3),n.append("text").style("text-anchor",g?(e.startAngle+e.endAngle)/2<Math.PI?"start":"end":"middle").style("fill","#000")});var B={},j=14,F=140,I=function(e){return Math.floor(e[0]/F)*F+","+Math.floor(e[1]/j)*j};_.transition().attr("transform",function(e){if(g){e.outerRadius=x+10,e.innerRadius=x+15;var t=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?t-=90:t+=90,"translate("+H.centroid(e)+") rotate("+t+")"}e.outerRadius=S+10,e.innerRadius=S+15;var n=H.centroid(e),r=I(n);return B[r]&&(n[1]-=j),B[I(n)]=!0,"translate("+n+")"}),_.select(".nv-label text").style("text-anchor",g?(d.startAngle+d.endAngle)/2<Math.PI?"start":"end":"middle").text(function(e,t){var n=(e.endAngle-e.startAngle)/(2*Math.PI),r={key:i(e.data),value:s(e.data),percent:d3.format("%")(n)};return e.value&&n>v?r[p]:""})}}),S}var t={top:0,right:0,bottom:0,left:0},n=500,r=500,i=function(e){return e.x},s=function(e){return e.y},o=function(e){return e.description},u=Math.floor(Math.random()*1e4),a=e.utils.defaultColor(),f=d3.format(",.2f"),l=!0,c=!0,h=!1,p="key",v=.02,m=!1,g=!1,y=!1,b=!1,w=.5,E=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout");return S.dispatch=E,S.options=e.utils.optionsFunc.bind(S),S.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,S):t},S.width=function(e){return arguments.length?(n=e,S):n},S.height=function(e){return arguments.length?(r=e,S):r},S.values=function(t){return e.log("pie.values() is no longer supported."),S},S.x=function(e){return arguments.length?(i=e,S):i},S.y=function(e){return arguments.length?(s=d3.functor(e),S):s},S.description=function(e){return arguments.length?(o=e,S):o},S.showLabels=function(e){return arguments.length?(l=e,S):l},S.labelSunbeamLayout=function(e){return arguments.length?(g=e,S):g},S.donutLabelsOutside=function(e){return arguments.length?(h=e,S):h},S.pieLabelsOutside=function(e){return arguments.length?(c=e,S):c},S.labelType=function(e){return arguments.length?(p=e,p=p||"key",S):p},S.donut=function(e){return arguments.length?(m=e,S):m},S.donutRatio=function(e){return arguments.length?(w=e,S):w},S.startAngle=function(e){return arguments.length?(y=e,S):y},S.endAngle=function(e){return arguments.length?(b=e,S):b},S.id=function(e){return arguments.length?(u=e,S):u},S.color=function(t){return arguments.length?(a=e.utils.getColor(t),S):a},S.valueFormat=function(e){return arguments.length?(f=e,S):f},S.labelThreshold=function(e){return arguments.length?(v=e,S):v},S},e.models.pieChart=function(){"use strict";function v(e){return e.each(function(e){var u=d3.select(this),a=this,f=(i||parseInt(u.style("width"))||960)-r.left-r.right,d=(s||parseInt(u.style("height"))||400)-r.top-r.bottom;v.update=function(){u.transition().call(v)},v.container=this,l.disabled=e.map(function(e){return!!e.disabled});if(!c){var m;c={};for(m in l)l[m]instanceof Array?c[m]=l[m].slice(0):c[m]=l[m]}if(!e||!e.length){var g=u.selectAll(".nv-noData").data([h]);return g.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),g.attr("x",r.left+f/2).attr("y",r.top+d/2).text(function(e){return e}),v}u.selectAll(".nv-noData").remove();var y=u.selectAll("g.nv-wrap.nv-pieChart").data([e]),b=y.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),w=y.select("g");b.append("g").attr("class","nv-pieWrap"),b.append("g").attr("class","nv-legendWrap"),o&&(n.width(f).key(t.x()),y.select(".nv-legendWrap").datum(e).call(n),r.top!=n.height()&&(r.top=n.height(),d=(s||parseInt(u.style("height"))||400)-r.top-r.bottom),y.select(".nv-legendWrap").attr("transform","translate(0,"+ -r.top+")")),y.attr("transform","translate("+r.left+","+r.top+")"),t.width(f).height(d);var E=w.select(".nv-pieWrap").datum([e]);d3.transition(E).call(t),n.dispatch.on("stateChange",function(e){l=e,p.stateChange(l),v.update()}),t.dispatch.on("elementMouseout.tooltip",function(e){p.tooltipHide(e)}),p.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),l.disabled=t.disabled),v.update()})}),v}var t=e.models.pie(),n=e.models.legend(),r={top:30,right:20,bottom:20,left:20},i=null,s=null,o=!0,u=e.utils.defaultColor(),a=!0,f=function(e,t,n,r){return"<h3>"+e+"</h3>"+"<p>"+t+"</p>"},l={},c=null,h="No Data Available.",p=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),d=function(n,r){var i=t.description()(n.point)||t.x()(n.point),s=n.pos[0]+(r&&r.offsetLeft||0),o=n.pos[1]+(r&&r.offsetTop||0),u=t.valueFormat()(t.y()(n.point)),a=f(i,u,n,v);e.tooltip.show([s,o],a,n.value<0?"n":"s",null,r)};return t.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+r.left,e.pos[1]+r.top],p.tooltipShow(e)}),p.on("tooltipShow",function(e){a&&d(e)}),p.on("tooltipHide",function(){a&&e.tooltip.cleanup()}),v.legend=n,v.dispatch=p,v.pie=t,d3.rebind(v,t,"valueFormat","values","x","y","description","id","showLabels","donutLabelsOutside","pieLabelsOutside","labelType","donut","donutRatio","labelThreshold"),v.options=e.utils.optionsFunc.bind(v),v.margin=function(e){return arguments.length?(r.top=typeof e.top!="undefined"?e.top:r.top,r.right=typeof e.right!="undefined"?e.right:r.right,r.bottom=typeof e.bottom!="undefined"?e.bottom:r.bottom,r.left=typeof e.left!="undefined"?e.left:r.left,v):r},v.width=function(e){return arguments.length?(i=e,v):i},v.height=function(e){return arguments.length?(s=e,v):s},v.color=function(r){return arguments.length?(u=e.utils.getColor(r),n.color(u),t.color(u),v):u},v.showLegend=function(e){return arguments.length?(o=e,v):o},v.tooltips=function(e){return arguments.length?(a=e,v):a},v.tooltipContent=function(e){return arguments.length?(f=e,v):f},v.state=function(e){return arguments.length?(l=e,v):l},v.defaultState=function(e){return arguments.length?(c=e,v):c},v.noData=function(e){return arguments.length?(h=e,v):h},v},e.models.scatter=function(){"use strict";function I(q){return q.each(function(I){function Q(){if(!g)return!1;var e,i=d3.merge(I.map(function(e,t){return e.values.map(function(e,n){var r=f(e,n),i=l(e,n);return[o(r)+Math.random()*1e-7,u(i)+Math.random()*1e-7,t,n,e]}).filter(function(e,t){return b(e[4],t)})}));if(D===!0){if(x){var a=X.select("defs").selectAll(".nv-point-clips").data([s]).enter();a.append("clipPath").attr("class","nv-point-clips").attr("id","nv-points-clip-"+s);var c=X.select("#nv-points-clip-"+s).selectAll("circle").data(i);c.enter().append("circle").attr("r",T),c.exit().remove(),c.attr("cx",function(e){return e[0]}).attr("cy",function(e){return e[1]}),X.select(".nv-point-paths").attr("clip-path","url(#nv-points-clip-"+s+")")}i.length&&(i.push([o.range()[0]-20,u.range()[0]-20,null,null]),i.push([o.range()[1]+20,u.range()[1]+20,null,null]),i.push([o.range()[0]-20,u.range()[0]+20,null,null]),i.push([o.range()[1]+20,u.range()[1]-20,null,null]));var h=d3.geom.polygon([[-10,-10],[-10,r+10],[n+10,r+10],[n+10,-10]]),p=d3.geom.voronoi(i).map(function(e,t){return{data:h.clip(e),series:i[t][2],point:i[t][3]}}),d=X.select(".nv-point-paths").selectAll("path").data(p);d.enter().append("path").attr("class",function(e,t){return"nv-path-"+t}),d.exit().remove(),d.attr("d",function(e){return e.data.length===0?"M 0 0":"M"+e.data.join("L")+"Z"});var v=function(e,n){if(F)return 0;var r=I[e.series];if(typeof r=="undefined")return;var i=r.values[e.point];n({point:i,series:r,pos:[o(f(i,e.point))+t.left,u(l(i,e.point))+t.top],seriesIndex:e.series,pointIndex:e.point})};d.on("click",function(e){v(e,_.elementClick)}).on("mouseover",function(e){v(e,_.elementMouseover)}).on("mouseout",function(e,t){v(e,_.elementMouseout)})}else X.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(e,n){if(F||!I[e.series])return 0;var r=I[e.series],i=r.values[n];_.elementClick({point:i,series:r,pos:[o(f(i,n))+t.left,u(l(i,n))+t.top],seriesIndex:e.series,pointIndex:n})}).on("mouseover",function(e,n){if(F||!I[e.series])return 0;var r=I[e.series],i=r.values[n];_.elementMouseover({point:i,series:r,pos:[o(f(i,n))+t.left,u(l(i,n))+t.top],seriesIndex:e.series,pointIndex:n})}).on("mouseout",function(e,t){if(F||!I[e.series])return 0;var n=I[e.series],r=n.values[t];_.elementMouseout({point:r,series:n,seriesIndex:e.series,pointIndex:t})});F=!1}var q=n-t.left-t.right,R=r-t.top-t.bottom,U=d3.select(this);I.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var W=N&&C&&A?[]:d3.merge(I.map(function(e){return e.values.map(function(e,t){return{x:f(e,t),y:l(e,t),size:c(e,t)}})}));o.domain(N||d3.extent(W.map(function(e){return e.x}).concat(d))),w&&I[0]?o.range(k||[(q*E+q)/(2*I[0].values.length),q-q*(1+E)/(2*I[0].values.length)]):o.range(k||[0,q]),u.domain(C||d3.extent(W.map(function(e){return e.y}).concat(v))).range(L||[R,0]),a.domain(A||d3.extent(W.map(function(e){return e.size}).concat(m))).range(O||[16,256]);if(o.domain()[0]===o.domain()[1]||u.domain()[0]===u.domain()[1])M=!0;o.domain()[0]===o.domain()[1]&&(o.domain()[0]?o.domain([o.domain()[0]-o.domain()[0]*.01,o.domain()[1]+o.domain()[1]*.01]):o.domain([-1,1])),u.domain()[0]===u.domain()[1]&&(u.domain()[0]?u.domain([u.domain()[0]-u.domain()[0]*.01,u.domain()[1]+u.domain()[1]*.01]):u.domain([-1,1])),isNaN(o.domain()[0])&&o.domain([-1,1]),isNaN(u.domain()[0])&&u.domain([-1,1]),P=P||o,H=H||u,B=B||a;var X=U.selectAll("g.nv-wrap.nv-scatter").data([I]),V=X.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+s+(M?" nv-single-point":"")),$=V.append("defs"),J=V.append("g"),K=X.select("g");J.append("g").attr("class","nv-groups"),J.append("g").attr("class","nv-point-paths"),X.attr("transform","translate("+t.left+","+t.top+")"),$.append("clipPath").attr("id","nv-edge-clip-"+s).append("rect"),X.select("#nv-edge-clip-"+s+" rect").attr("width",q).attr("height",R>0?R:0),K.attr("clip-path",S?"url(#nv-edge-clip-"+s+")":""),F=!0;var G=X.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});G.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),G.exit().remove(),G.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),G.transition().style("fill",function(e,t){return i(e,t)}).style("stroke",function(e,t){return i(e,t)}).style("stroke-opacity",1).style("fill-opacity",.5);if(p){var Y=G.selectAll("circle.nv-point").data(function(e){return e.values},y);Y.enter().append("circle").style("fill",function(e,t){return e.color}).style("stroke",function(e,t){return e.color}).attr("cx",function(t,n){return e.utils.NaNtoZero(P(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(H(l(t,n)))}).attr("r",function(e,t){return Math.sqrt(a(c(e,t))/Math.PI)}),Y.exit().remove(),G.exit().selectAll("path.nv-point").transition().attr("cx",function(t,n){return e.utils.NaNtoZero(o(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(u(l(t,n)))}).remove(),Y.each(function(e,t){d3.select(this).classed("nv-point",!0).classed("nv-point-"+t,!0).classed("hover",!1)}),Y.transition().attr("cx",function(t,n){return e.utils.NaNtoZero(o(f(t,n)))}).attr("cy",function(t,n){return e.utils.NaNtoZero(u(l(t,n)))}).attr("r",function(e,t){return Math.sqrt(a(c(e,t))/Math.PI)})}else{var Y=G.selectAll("path.nv-point").data(function(e){return e.values});Y.enter().append("path").style("fill",function(e,t){return e.color}).style("stroke",function(e,t){return e.color}).attr("transform",function(e,t){return"translate("+P(f(e,t))+","+H(l(e,t))+")"}).attr("d",d3.svg.symbol().type(h).size(function(e,t){return a(c(e,t))})),Y.exit().remove(),G.exit().selectAll("path.nv-point").transition().attr("transform",function(e,t){return"translate("+o(f(e,t))+","+u(l(e,t))+")"}).remove(),Y.each(function(e,t){d3.select(this).classed("nv-point",!0).classed("nv-point-"+t,!0).classed("hover",!1)}),Y.transition().attr("transform",function(e,t){return"translate("+o(f(e,t))+","+u(l(e,t))+")"}).attr("d",d3.svg.symbol().type(h).size(function(e,t){return a(c(e,t))}))}clearTimeout(j),j=setTimeout(Q,300),P=o.copy(),H=u.copy(),B=a.copy()}),I}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e5),o=d3.scale.linear(),u=d3.scale.linear(),a=d3.scale.linear(),f=function(e){return e.x},l=function(e){return e.y},c=function(e){return e.size||1},h=function(e){return e.shape||"circle"},p=!0,d=[],v=[],m=[],g=!0,y=null,b=function(e){return!e.notActive},w=!1,E=.1,S=!1,x=!0,T=function(){return 25},N=null,C=null,k=null,L=null,A=null,O=null,M=!1,_=d3.dispatch("elementClick","elementMouseover","elementMouseout"),D=!0,P,H,B,j,F=!1;return I.clearHighlights=function(){d3.selectAll(".nv-chart-"+s+" .nv-point.hover").classed("hover",!1)},I.highlightPoint=function(e,t,n){d3.select(".nv-chart-"+s+" .nv-series-"+e+" .nv-point-"+t).classed("hover",n)},_.on("elementMouseover.point",function(e){g&&I.highlightPoint(e.seriesIndex,e.pointIndex,!0)}),_.on("elementMouseout.point",function(e){g&&I.highlightPoint(e.seriesIndex,e.pointIndex,!1)}),I.dispatch=_,I.options=e.utils.optionsFunc.bind(I),I.x=function(e){return arguments.length?(f=d3.functor(e),I):f},I.y=function(e){return arguments.length?(l=d3.functor(e),I):l},I.size=function(e){return arguments.length?(c=d3.functor(e),I):c},I.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,I):t},I.width=function(e){return arguments.length?(n=e,I):n},I.height=function(e){return arguments.length?(r=e,I):r},I.xScale=function(e){return arguments.length?(o=e,I):o},I.yScale=function(e){return arguments.length?(u=e,I):u},I.zScale=function(e){return arguments.length?(a=e,I):a},I.xDomain=function(e){return arguments.length?(N=e,I):N},I.yDomain=function(e){return arguments.length?(C=e,I):C},I.sizeDomain=function(e){return arguments.length?(A=e,I):A},I.xRange=function(e){return arguments.length?(k=e,I):k},I.yRange=function(e){return arguments.length?(L=e,I):L},I.sizeRange=function(e){return arguments.length?(O=e,I):O},I.forceX=function(e){return arguments.length?(d=e,I):d},I.forceY=function(e){return arguments.length?(v=e,I):v},I.forceSize=function(e){return arguments.length?(m=e,I):m},I.interactive=function(e){return arguments.length?(g=e,I):g},I.pointKey=function(e){return arguments.length?(y=e,I):y},I.pointActive=function(e){return arguments.length?(b=e,I):b},I.padData=function(e){return arguments.length?(w=e,I):w},I.padDataOuter=function(e){return arguments.length?(E=e,I):E},I.clipEdge=function(e){return arguments.length?(S=e,I):S},I.clipVoronoi=function(e){return arguments.length?(x=e,I):x},I.useVoronoi=function(e){return arguments.length?(D=e,D===!1&&(x=!1),I):D},I.clipRadius=function(e){return arguments.length?(T=e,I):T},I.color=function(t){return arguments.length?(i=e.utils.getColor(t),I):i},I.shape=function(e){return arguments.length?(h=e,I):h},I.onlyCircles=function(e){return arguments.length?(p=e,I):p},I.id=function(e){return arguments.length?(s=e,I):s},I.singlePoint=function(e){return arguments.length?(M=e,I):M},I},e.models.scatterChart=function(){"use strict";function F(e){return e.each(function(e){function K(){if(T)return X.select(".nv-point-paths").style("pointer-events","all"),!1;X.select(".nv-point-paths").style("pointer-events","none");var i=d3.mouse(this);h.distortion(x).focus(i[0]),p.distortion(x).focus(i[1]),X.select(".nv-scatterWrap").call(t),b&&X.select(".nv-x.nv-axis").call(n),w&&X.select(".nv-y.nv-axis").call(r),X.select(".nv-distributionX").datum(e.filter(function(e){return!e.disabled})).call(o),X.select(".nv-distributionY").datum(e.filter(function(e){return!e.disabled})).call(u)}var C=d3.select(this),k=this,L=(f||parseInt(C.style("width"))||960)-a.left-a.right,I=(l||parseInt(C.style("height"))||400)-a.top-a.bottom;F.update=function(){C.transition().duration(D).call(F)},F.container=this,A.disabled=e.map(function(e){return!!e.disabled});if(!O){var q;O={};for(q in A)A[q]instanceof Array?O[q]=A[q].slice(0):O[q]=A[q]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var R=C.selectAll(".nv-noData").data([_]);return R.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),R.attr("x",a.left+L/2).attr("y",a.top+I/2).text(function(e){return e}),F}C.selectAll(".nv-noData").remove(),P=P||h,H=H||p;var U=C.selectAll("g.nv-wrap.nv-scatterChart").data([e]),z=U.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+t.id()),W=z.append("g"),X=U.select("g");W.append("rect").attr("class","nvd3 nv-background"),W.append("g").attr("class","nv-x nv-axis"),W.append("g").attr("class","nv-y nv-axis"),W.append("g").attr("class","nv-scatterWrap"),W.append("g").attr("class","nv-distWrap"),W.append("g").attr("class","nv-legendWrap"),W.append("g").attr("class","nv-controlsWrap");if(y){var V=S?L/2:L;i.width(V),U.select(".nv-legendWrap").datum(e).call(i),a.top!=i.height()&&(a.top=i.height(),I=(l||parseInt(C.style("height"))||400)-a.top-a.bottom),U.select(".nv-legendWrap").attr("transform","translate("+(L-V)+","+ -a.top+")")}S&&(s.width(180).color(["#444"]),X.select(".nv-controlsWrap").datum(j).attr("transform","translate(0,"+ -a.top+")").call(s)),U.attr("transform","translate("+a.left+","+a.top+")"),E&&X.select(".nv-y.nv-axis").attr("transform","translate("+L+",0)"),t.width(L).height(I).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),d!==0&&t.xDomain(null),v!==0&&t.yDomain(null),U.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t);if(d!==0){var $=h.domain()[1]-h.domain()[0];t.xDomain([h.domain()[0]-d*$,h.domain()[1]+d*$])}if(v!==0){var J=p.domain()[1]-p.domain()[0];t.yDomain([p.domain()[0]-v*J,p.domain()[1]+v*J])}(v!==0||d!==0)&&U.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),b&&(n.scale(h).ticks(n.ticks()&&n.ticks().length?n.ticks():L/100).tickSize(-I,0),X.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(n)),w&&(r.scale(p).ticks(r.ticks()&&r.ticks().length?r.ticks():I/36).tickSize(-L,0),X.select(".nv-y.nv-axis").call(r)),m&&(o.getData(t.x()).scale(h).width(L).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),W.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),X.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(e.filter(function(e){return!e.disabled})).call(o)),g&&(u.getData(t.y()).scale(p).width(I).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),W.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),X.select(".nv-distributionY").attr("transform","translate("+(E?L:-u.size())+",0)").datum(e.filter(function(e){return!e.disabled})).call(u)),d3.fisheye&&(X.select(".nv-background").attr("width",L).attr("height",I),X.select(".nv-background").on("mousemove",K),X.select(".nv-background").on("click",function(){T=!T}),t.dispatch.on("elementClick.freezeFisheye",function(){T=!T})),s.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,x=e.disabled?0:2.5,X.select(".nv-background").style("pointer-events",e.disabled?"none":"all"),X.select(".nv-point-paths").style("pointer-events",e.disabled?"all":"none"),e.disabled?(h.distortion(x).focus(0),p.distortion(x).focus(0),X.select(".nv-scatterWrap").call(t),X.select(".nv-x.nv-axis").call(n),X.select(".nv-y.nv-axis").call(r)):T=!1,F.update()}),i.dispatch.on("stateChange",function(e){A.disabled=e.disabled,M.stateChange(A),F.update()}),t.dispatch.on("elementMouseover.tooltip",function(e){d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",function(t,n){return e.pos[1]-I}),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos[0]+o.size()),e.pos=[e.pos[0]+a.left,e.pos[1]+a.top],M.tooltipShow(e)}),M.on("tooltipShow",function(e){N&&B(e,k.parentNode)}),M.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),A.disabled=t.disabled),F.update()}),P=h.copy(),H=p.copy()}),F}var t=e.models.scatter(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.models.distribution(),u=e.models.distribution(),a={top:30,right:20,bottom:50,left:75},f=null,l=null,c=e.utils.defaultColor(),h=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.xScale(),p=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.yScale(),d=0,v=0,m=!1,g=!1,y=!0,b=!0,w=!0,E=!1,S=!!d3.fisheye,x=0,T=!1,N=!0,C=function(e,t,n){return"<strong>"+t+"</strong>"},k=function(e,t,n){return"<strong>"+n+"</strong>"},L=null,A={},O=null,M=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),_="No Data Available.",D=250;t.xScale(h).yScale(p),n.orient("bottom").tickPadding(10),r.orient(E?"right":"left").tickPadding(10),o.axis("x"),u.axis("y"),s.updateState(!1);var P,H,B=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),f=i.pos[0]+(s.offsetLeft||0),l=p.range()[0]+a.top+(s.offsetTop||0),c=h.range()[0]+a.left+(s.offsetLeft||0),d=i.pos[1]+(s.offsetTop||0),v=n.tickFormat()(t.x()(i.point,i.pointIndex)),m=r.tickFormat()(t.y()(i.point,i.pointIndex));C!=null&&e.tooltip.show([f,l],C(i.series.key,v,m,i,F),"n",1,s,"x-nvtooltip"),k!=null&&e.tooltip.show([c,d],k(i.series.key,v,m,i,F),"e",1,s,"y-nvtooltip"),L!=null&&e.tooltip.show([o,u],L(i.series.key,v,m,i,F),i.value<0?"n":"s",null,s)},j=[{key:"Magnify",disabled:!0}];return t.dispatch.on("elementMouseout.tooltip",function(e){M.tooltipHide(e),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",u.size())}),M.on("tooltipHide",function(){N&&e.tooltip.cleanup()}),F.dispatch=M,F.scatter=t,F.legend=i,F.controls=s,F.xAxis=n,F.yAxis=r,F.distX=o,F.distY=u,d3.rebind(F,t,"id","interactive","pointActive","x","y","shape","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","sizeRange","forceX","forceY","forceSize","clipVoronoi","clipRadius","useVoronoi"),F.options=e.utils.optionsFunc.bind(F),F.margin=function(e){return arguments.length?(a.top=typeof e.top!="undefined"?e.top:a.top,a.right=typeof e.right!="undefined"?e.right:a.right,a.bottom=typeof e.bottom!="undefined"?e.bottom:a.bottom,a.left=typeof e.left!="undefined"?e.left:a.left,F):a},F.width=function(e){return arguments.length?(f=e,F):f},F.height=function(e){return arguments.length?(l=e,F):l},F.color=function(t){return arguments.length?(c=e.utils.getColor(t),i.color(c),o.color(c),u.color(c),F):c},F.showDistX=function(e){return arguments.length?(m=e,F):m},F.showDistY=function(e){return arguments.length?(g=e,F):g},F.showControls=function(e){return arguments.length?(S=e,F):S},F.showLegend=function(e){return arguments.length?(y=e,F):y},F.showXAxis=function(e){return arguments.length?(b=e,F):b},F.showYAxis=function(e){return arguments.length?(w=e,F):w},F.rightAlignYAxis=function(e){return arguments.length?(E=e,r.orient(e?"right":"left"),F):E},F.fisheye=function(e){return arguments.length?(x=e,F):x},F.xPadding=function(e){return arguments.length?(d=e,F):d},F.yPadding=function(e){return arguments.length?(v=e,F):v},F.tooltips=function(e){return arguments.length?(N=e,F):N},F.tooltipContent=function(e){return arguments.length?(L=e,F):L},F.tooltipXContent=function(e){return arguments.length?(C=e,F):C},F.tooltipYContent=function(e){return arguments.length?(k=e,F):k},F.state=function(e){return arguments.length?(A=e,F):A},F.defaultState=function(e){return arguments.length?(O=e,F):O},F.noData=function(e){return arguments.length?(_=e,F):_},F.transitionDuration=function(e){return arguments.length?(D=e,F):D},F},e.models.scatterPlusLineChart=function(){"use strict";function B(e){return e.each(function(e){function $(){if(S)return z.select(".nv-point-paths").style("pointer-events","all"),!1;z.select(".nv-point-paths").style("pointer-events","none");var i=d3.mouse(this);h.distortion(E).focus(i[0]),p.distortion(E).focus(i[1]),z.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),g&&z.select(".nv-x.nv-axis").call(n),y&&z.select(".nv-y.nv-axis").call(r),z.select(".nv-distributionX").datum(e.filter(function(e){return!e.disabled})).call(o),z.select(".nv-distributionY").datum(e.filter(function(e){return!e.disabled})).call(u)}var T=d3.select(this),N=this,C=(f||parseInt(T.style("width"))||960)-a.left-a.right,j=(l||parseInt(T.style("height"))||400)-a.top-a.bottom;B.update=function(){T.transition().duration(M).call(B)},B.container=this,k.disabled=e.map(function(e){return!!e.disabled});if(!L){var F;L={};for(F in k)k[F]instanceof Array?L[F]=k[F].slice(0):L[F]=k[F]}if(!e||!e.length||!e.filter(function(e){return e.values.length}).length){var I=T.selectAll(".nv-noData").data([O]);return I.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),I.attr("x",a.left+C/2).attr("y",a.top+j/2).text(function(e){return e}),B}T.selectAll(".nv-noData").remove(),h=t.xScale(),p=t.yScale(),_=_||h,D=D||p;var q=T.selectAll("g.nv-wrap.nv-scatterChart").data([e]),R=q.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+t.id()),U=R.append("g"),z=q.select("g");U.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),U.append("g").attr("class","nv-x nv-axis"),U.append("g").attr("class","nv-y nv-axis"),U.append("g").attr("class","nv-scatterWrap"),U.append("g").attr("class","nv-regressionLinesWrap"),U.append("g").attr("class","nv-distWrap"),U.append("g").attr("class","nv-legendWrap"),U.append("g").attr("class","nv-controlsWrap"),q.attr("transform","translate("+a.left+","+a.top+")"),b&&z.select(".nv-y.nv-axis").attr("transform","translate("+C+",0)"),m&&(i.width(C/2),q.select(".nv-legendWrap").datum(e).call(i),a.top!=i.height()&&(a.top=i.height(),j=(l||parseInt(T.style("height"))||400)-a.top-a.bottom),q.select(".nv-legendWrap").attr("transform","translate("+C/2+","+ -a.top+")")),w&&(s.width(180).color(["#444"]),z.select(".nv-controlsWrap").datum(H).attr("transform","translate(0,"+ -a.top+")").call(s)),t.width(C).height(j).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),q.select(".nv-scatterWrap").datum(e.filter(function(e){return!e.disabled})).call(t),q.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+t.id()+")");var W=q.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(e){return e});W.enter().append("g").attr("class","nv-regLines");var X=W.selectAll(".nv-regLine").data(function(e){return[e]}),V=X.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0);X.transition().attr("x1",h.range()[0]).attr("x2",h.range()[1]).attr("y1",function(e,t){return p(h.domain()[0]*e.slope+e.intercept)}).attr("y2",function(e,t){return p(h.domain()[1]*e.slope+e.intercept)}).style("stroke",function(e,t,n){return c(e,n)}).style("stroke-opacity",function(e,t){return e.disabled||typeof e.slope=="undefined"||typeof e.intercept=="undefined"?0:1}),g&&(n.scale(h).ticks(n.ticks()?n.ticks():C/100).tickSize(-j,0),z.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(n)),y&&(r.scale(p).ticks(r.ticks()?r.ticks():j/36).tickSize(-C,0),z.select(".nv-y.nv-axis").call(r)),d&&(o.getData(t.x()).scale(h).width(C).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),U.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),z.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(e.filter(function(e){return!e.disabled})).call(o)),v&&(u.getData(t.y()).scale(p).width(
-j).color(e.map(function(e,t){return e.color||c(e,t)}).filter(function(t,n){return!e[n].disabled})),U.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),z.select(".nv-distributionY").attr("transform","translate("+(b?C:-u.size())+",0)").datum(e.filter(function(e){return!e.disabled})).call(u)),d3.fisheye&&(z.select(".nv-background").attr("width",C).attr("height",j),z.select(".nv-background").on("mousemove",$),z.select(".nv-background").on("click",function(){S=!S}),t.dispatch.on("elementClick.freezeFisheye",function(){S=!S})),s.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,E=e.disabled?0:2.5,z.select(".nv-background").style("pointer-events",e.disabled?"none":"all"),z.select(".nv-point-paths").style("pointer-events",e.disabled?"all":"none"),e.disabled?(h.distortion(E).focus(0),p.distortion(E).focus(0),z.select(".nv-scatterWrap").call(t),z.select(".nv-x.nv-axis").call(n),z.select(".nv-y.nv-axis").call(r)):S=!1,B.update()}),i.dispatch.on("stateChange",function(e){k=e,A.stateChange(k),B.update()}),t.dispatch.on("elementMouseover.tooltip",function(e){d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",e.pos[1]-j),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos[0]+o.size()),e.pos=[e.pos[0]+a.left,e.pos[1]+a.top],A.tooltipShow(e)}),A.on("tooltipShow",function(e){x&&P(e,N.parentNode)}),A.on("changeState",function(t){typeof t.disabled!="undefined"&&(e.forEach(function(e,n){e.disabled=t.disabled[n]}),k.disabled=t.disabled),B.update()}),_=h.copy(),D=p.copy()}),B}var t=e.models.scatter(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.models.distribution(),u=e.models.distribution(),a={top:30,right:20,bottom:50,left:75},f=null,l=null,c=e.utils.defaultColor(),h=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.xScale(),p=d3.fisheye?d3.fisheye.scale(d3.scale.linear).distortion(0):t.yScale(),d=!1,v=!1,m=!0,g=!0,y=!0,b=!1,w=!!d3.fisheye,E=0,S=!1,x=!0,T=function(e,t,n){return"<strong>"+t+"</strong>"},N=function(e,t,n){return"<strong>"+n+"</strong>"},C=function(e,t,n,r){return"<h3>"+e+"</h3>"+"<p>"+r+"</p>"},k={},L=null,A=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),O="No Data Available.",M=250;t.xScale(h).yScale(p),n.orient("bottom").tickPadding(10),r.orient(b?"right":"left").tickPadding(10),o.axis("x"),u.axis("y"),s.updateState(!1);var _,D,P=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),f=i.pos[0]+(s.offsetLeft||0),l=p.range()[0]+a.top+(s.offsetTop||0),c=h.range()[0]+a.left+(s.offsetLeft||0),d=i.pos[1]+(s.offsetTop||0),v=n.tickFormat()(t.x()(i.point,i.pointIndex)),m=r.tickFormat()(t.y()(i.point,i.pointIndex));T!=null&&e.tooltip.show([f,l],T(i.series.key,v,m,i,B),"n",1,s,"x-nvtooltip"),N!=null&&e.tooltip.show([c,d],N(i.series.key,v,m,i,B),"e",1,s,"y-nvtooltip"),C!=null&&e.tooltip.show([o,u],C(i.series.key,v,m,i.point.tooltip,i,B),i.value<0?"n":"s",null,s)},H=[{key:"Magnify",disabled:!0}];return t.dispatch.on("elementMouseout.tooltip",function(e){A.tooltipHide(e),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),d3.select(".nv-chart-"+t.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",u.size())}),A.on("tooltipHide",function(){x&&e.tooltip.cleanup()}),B.dispatch=A,B.scatter=t,B.legend=i,B.controls=s,B.xAxis=n,B.yAxis=r,B.distX=o,B.distY=u,d3.rebind(B,t,"id","interactive","pointActive","x","y","shape","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","sizeRange","forceX","forceY","forceSize","clipVoronoi","clipRadius","useVoronoi"),B.options=e.utils.optionsFunc.bind(B),B.margin=function(e){return arguments.length?(a.top=typeof e.top!="undefined"?e.top:a.top,a.right=typeof e.right!="undefined"?e.right:a.right,a.bottom=typeof e.bottom!="undefined"?e.bottom:a.bottom,a.left=typeof e.left!="undefined"?e.left:a.left,B):a},B.width=function(e){return arguments.length?(f=e,B):f},B.height=function(e){return arguments.length?(l=e,B):l},B.color=function(t){return arguments.length?(c=e.utils.getColor(t),i.color(c),o.color(c),u.color(c),B):c},B.showDistX=function(e){return arguments.length?(d=e,B):d},B.showDistY=function(e){return arguments.length?(v=e,B):v},B.showControls=function(e){return arguments.length?(w=e,B):w},B.showLegend=function(e){return arguments.length?(m=e,B):m},B.showXAxis=function(e){return arguments.length?(g=e,B):g},B.showYAxis=function(e){return arguments.length?(y=e,B):y},B.rightAlignYAxis=function(e){return arguments.length?(b=e,r.orient(e?"right":"left"),B):b},B.fisheye=function(e){return arguments.length?(E=e,B):E},B.tooltips=function(e){return arguments.length?(x=e,B):x},B.tooltipContent=function(e){return arguments.length?(C=e,B):C},B.tooltipXContent=function(e){return arguments.length?(T=e,B):T},B.tooltipYContent=function(e){return arguments.length?(N=e,B):N},B.state=function(e){return arguments.length?(k=e,B):k},B.defaultState=function(e){return arguments.length?(L=e,B):L},B.noData=function(e){return arguments.length?(O=e,B):O},B.transitionDuration=function(e){return arguments.length?(M=e,B):M},B},e.models.sparkline=function(){"use strict";function d(e){return e.each(function(e){var i=n-t.left-t.right,d=r-t.top-t.bottom,v=d3.select(this);s.domain(l||d3.extent(e,u)).range(h||[0,i]),o.domain(c||d3.extent(e,a)).range(p||[d,0]);var m=v.selectAll("g.nv-wrap.nv-sparkline").data([e]),g=m.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline"),b=g.append("g"),w=m.select("g");m.attr("transform","translate("+t.left+","+t.top+")");var E=m.selectAll("path").data(function(e){return[e]});E.enter().append("path"),E.exit().remove(),E.style("stroke",function(e,t){return e.color||f(e,t)}).attr("d",d3.svg.line().x(function(e,t){return s(u(e,t))}).y(function(e,t){return o(a(e,t))}));var S=m.selectAll("circle.nv-point").data(function(e){function n(t){if(t!=-1){var n=e[t];return n.pointIndex=t,n}return null}var t=e.map(function(e,t){return a(e,t)}),r=n(t.lastIndexOf(o.domain()[1])),i=n(t.indexOf(o.domain()[0])),s=n(t.length-1);return[i,r,s].filter(function(e){return e!=null})});S.enter().append("circle"),S.exit().remove(),S.attr("cx",function(e,t){return s(u(e,e.pointIndex))}).attr("cy",function(e,t){return o(a(e,e.pointIndex))}).attr("r",2).attr("class",function(e,t){return u(e,e.pointIndex)==s.domain()[1]?"nv-point nv-currentValue":a(e,e.pointIndex)==o.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),d}var t={top:2,right:0,bottom:2,left:0},n=400,r=32,i=!0,s=d3.scale.linear(),o=d3.scale.linear(),u=function(e){return e.x},a=function(e){return e.y},f=e.utils.getColor(["#000"]),l,c,h,p;return d.options=e.utils.optionsFunc.bind(d),d.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,d):t},d.width=function(e){return arguments.length?(n=e,d):n},d.height=function(e){return arguments.length?(r=e,d):r},d.x=function(e){return arguments.length?(u=d3.functor(e),d):u},d.y=function(e){return arguments.length?(a=d3.functor(e),d):a},d.xScale=function(e){return arguments.length?(s=e,d):s},d.yScale=function(e){return arguments.length?(o=e,d):o},d.xDomain=function(e){return arguments.length?(l=e,d):l},d.yDomain=function(e){return arguments.length?(c=e,d):c},d.xRange=function(e){return arguments.length?(h=e,d):h},d.yRange=function(e){return arguments.length?(p=e,d):p},d.animate=function(e){return arguments.length?(i=e,d):i},d.color=function(t){return arguments.length?(f=e.utils.getColor(t),d):f},d},e.models.sparklinePlus=function(){"use strict";function v(e){return e.each(function(c){function O(){if(a)return;var e=C.selectAll(".nv-hoverValue").data(u),r=e.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);e.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),e.attr("transform",function(e){return"translate("+s(t.x()(c[e],e))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1);if(!u.length)return;r.append("line").attr("x1",0).attr("y1",-n.top).attr("x2",0).attr("y2",b),r.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-n.top).attr("text-anchor","end").attr("dy",".9em"),C.select(".nv-hoverValue .nv-xValue").text(f(t.x()(c[u[0]],u[0]))),r.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-n.top).attr("text-anchor","start").attr("dy",".9em"),C.select(".nv-hoverValue .nv-yValue").text(l(t.y()(c[u[0]],u[0])))}function M(){function r(e,n){var r=Math.abs(t.x()(e[0],0)-n),i=0;for(var s=0;s<e.length;s++)Math.abs(t.x()(e[s],s)-n)<r&&(r=Math.abs(t.x()(e[s],s)-n),i=s);return i}if(a)return;var e=d3.mouse(this)[0]-n.left;u=[r(c,Math.round(s.invert(e)))],O()}var m=d3.select(this),g=(r||parseInt(m.style("width"))||960)-n.left-n.right,b=(i||parseInt(m.style("height"))||400)-n.top-n.bottom;v.update=function(){v(e)},v.container=this;if(!c||!c.length){var w=m.selectAll(".nv-noData").data([d]);return w.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),w.attr("x",n.left+g/2).attr("y",n.top+b/2).text(function(e){return e}),v}m.selectAll(".nv-noData").remove();var E=t.y()(c[c.length-1],c.length-1);s=t.xScale(),o=t.yScale();var S=m.selectAll("g.nv-wrap.nv-sparklineplus").data([c]),T=S.enter().append("g").attr("class","nvd3 nv-wrap nv-sparklineplus"),N=T.append("g"),C=S.select("g");N.append("g").attr("class","nv-sparklineWrap"),N.append("g").attr("class","nv-valueWrap"),N.append("g").attr("class","nv-hoverArea"),S.attr("transform","translate("+n.left+","+n.top+")");var k=C.select(".nv-sparklineWrap");t.width(g).height(b),k.call(t);var L=C.select(".nv-valueWrap"),A=L.selectAll(".nv-currentValue").data([E]);A.enter().append("text").attr("class","nv-currentValue").attr("dx",p?-8:8).attr("dy",".9em").style("text-anchor",p?"end":"start"),A.attr("x",g+(p?n.right:0)).attr("y",h?function(e){return o(e)}:0).style("fill",t.color()(c[c.length-1],c.length-1)).text(l(E)),N.select(".nv-hoverArea").append("rect").on("mousemove",M).on("click",function(){a=!a}).on("mouseout",function(){u=[],O()}),C.select(".nv-hoverArea rect").attr("transform",function(e){return"translate("+ -n.left+","+ -n.top+")"}).attr("width",g+n.left+n.right).attr("height",b+n.top)}),v}var t=e.models.sparkline(),n={top:15,right:100,bottom:10,left:50},r=null,i=null,s,o,u=[],a=!1,f=d3.format(",r"),l=d3.format(",.2f"),c=!0,h=!0,p=!1,d="No Data Available.";return v.sparkline=t,d3.rebind(v,t,"x","y","xScale","yScale","color"),v.options=e.utils.optionsFunc.bind(v),v.margin=function(e){return arguments.length?(n.top=typeof e.top!="undefined"?e.top:n.top,n.right=typeof e.right!="undefined"?e.right:n.right,n.bottom=typeof e.bottom!="undefined"?e.bottom:n.bottom,n.left=typeof e.left!="undefined"?e.left:n.left,v):n},v.width=function(e){return arguments.length?(r=e,v):r},v.height=function(e){return arguments.length?(i=e,v):i},v.xTickFormat=function(e){return arguments.length?(f=e,v):f},v.yTickFormat=function(e){return arguments.length?(l=e,v):l},v.showValue=function(e){return arguments.length?(c=e,v):c},v.alignValue=function(e){return arguments.length?(h=e,v):h},v.rightAlignValue=function(e){return arguments.length?(p=e,v):p},v.noData=function(e){return arguments.length?(d=e,v):d},v},e.models.stackedArea=function(){"use strict";function g(e){return e.each(function(e){var a=n-t.left-t.right,b=r-t.top-t.bottom,w=d3.select(this);p=v.xScale(),d=v.yScale();var E=e;e.forEach(function(e,t){e.seriesIndex=t,e.values=e.values.map(function(e,n){return e.index=n,e.seriesIndex=t,e})});var S=e.filter(function(e){return!e.disabled});e=d3.layout.stack().order(l).offset(f).values(function(e){return e.values}).x(o).y(u).out(function(e,t,n){var r=u(e)===0?0:n;e.display={y:r,y0:t}})(S);var T=w.selectAll("g.nv-wrap.nv-stackedarea").data([e]),N=T.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedarea"),C=N.append("defs"),k=N.append("g"),L=T.select("g");k.append("g").attr("class","nv-areaWrap"),k.append("g").attr("class","nv-scatterWrap"),T.attr("transform","translate("+t.left+","+t.top+")"),v.width(a).height(b).x(o).y(function(e){return e.display.y+e.display.y0}).forceY([0]).color(e.map(function(e,t){return e.color||i(e,e.seriesIndex)}));var A=L.select(".nv-scatterWrap").datum(e);A.call(v),C.append("clipPath").attr("id","nv-edge-clip-"+s).append("rect"),T.select("#nv-edge-clip-"+s+" rect").attr("width",a).attr("height",b),L.attr("clip-path",h?"url(#nv-edge-clip-"+s+")":"");var O=d3.svg.area().x(function(e,t){return p(o(e,t))}).y0(function(e){return d(e.display.y0)}).y1(function(e){return d(e.display.y+e.display.y0)}).interpolate(c),M=d3.svg.area().x(function(e,t){return p(o(e,t))}).y0(function(e){return d(e.display.y0)}).y1(function(e){return d(e.display.y0)}),_=L.select(".nv-areaWrap").selectAll("path.nv-area").data(function(e){return e});_.enter().append("path").attr("class",function(e,t){return"nv-area nv-area-"+t}).attr("d",function(e,t){return M(e.values,e.seriesIndex)}).on("mouseover",function(e,t){d3.select(this).classed("hover",!0),m.areaMouseover({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),m.areaMouseout({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("click",function(e,t){d3.select(this).classed("hover",!1),m.areaClick({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}),_.exit().remove(),_.style("fill",function(e,t){return e.color||i(e,e.seriesIndex)}).style("stroke",function(e,t){return e.color||i(e,e.seriesIndex)}),_.transition().attr("d",function(e,t){return O(e.values,t)}),v.dispatch.on("elementMouseover.area",function(e){L.select(".nv-chart-"+s+" .nv-area-"+e.seriesIndex).classed("hover",!0)}),v.dispatch.on("elementMouseout.area",function(e){L.select(".nv-chart-"+s+" .nv-area-"+e.seriesIndex).classed("hover",!1)}),g.d3_stackedOffset_stackPercent=function(e){var t=e.length,n=e[0].length,r=1/t,i,s,o,a=[];for(s=0;s<n;++s){for(i=0,o=0;i<E.length;i++)o+=u(E[i].values[s]);if(o)for(i=0;i<t;i++)e[i][s][1]/=o;else for(i=0;i<t;i++)e[i][s][1]=r}for(s=0;s<n;++s)a[s]=0;return a}}),g}var t={top:0,right:0,bottom:0,left:0},n=960,r=500,i=e.utils.defaultColor(),s=Math.floor(Math.random()*1e5),o=function(e){return e.x},u=function(e){return e.y},a="stack",f="zero",l="default",c="linear",h=!1,p,d,v=e.models.scatter(),m=d3.dispatch("tooltipShow","tooltipHide","areaClick","areaMouseover","areaMouseout");return v.size(2.2).sizeDomain([2.2,2.2]),v.dispatch.on("elementClick.area",function(e){m.areaClick(e)}),v.dispatch.on("elementMouseover.tooltip",function(e){e.pos=[e.pos[0]+t.left,e.pos[1]+t.top],m.tooltipShow(e)}),v.dispatch.on("elementMouseout.tooltip",function(e){m.tooltipHide(e)}),g.dispatch=m,g.scatter=v,d3.rebind(g,v,"interactive","size","xScale","yScale","zScale","xDomain","yDomain","xRange","yRange","sizeDomain","forceX","forceY","forceSize","clipVoronoi","useVoronoi","clipRadius","highlightPoint","clearHighlights"),g.options=e.utils.optionsFunc.bind(g),g.x=function(e){return arguments.length?(o=d3.functor(e),g):o},g.y=function(e){return arguments.length?(u=d3.functor(e),g):u},g.margin=function(e){return arguments.length?(t.top=typeof e.top!="undefined"?e.top:t.top,t.right=typeof e.right!="undefined"?e.right:t.right,t.bottom=typeof e.bottom!="undefined"?e.bottom:t.bottom,t.left=typeof e.left!="undefined"?e.left:t.left,g):t},g.width=function(e){return arguments.length?(n=e,g):n},g.height=function(e){return arguments.length?(r=e,g):r},g.clipEdge=function(e){return arguments.length?(h=e,g):h},g.color=function(t){return arguments.length?(i=e.utils.getColor(t),g):i},g.offset=function(e){return arguments.length?(f=e,g):f},g.order=function(e){return arguments.length?(l=e,g):l},g.style=function(e){if(!arguments.length)return a;a=e;switch(a){case"stack":g.offset("zero"),g.order("default");break;case"stream":g.offset("wiggle"),g.order("inside-out");break;case"stream-center":g.offset("silhouette"),g.order("inside-out");break;case"expand":g.offset("expand"),g.order("default");break;case"stack_percent":g.offset(g.d3_stackedOffset_stackPercent),g.order("default")}return g},g.interpolate=function(e){return arguments.length?(c=e,g):c},g},e.models.stackedAreaChart=function(){"use strict";function M(y){return y.each(function(y){var _=d3.select(this),D=this,P=(a||parseInt(_.style("width"))||960)-u.left-u.right,H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom;M.update=function(){_.transition().duration(A).call(M)},M.container=this,S.disabled=y.map(function(e){return!!e.disabled});if(!x){var B;x={};for(B in S)S[B]instanceof Array?x[B]=S[B].slice(0):x[B]=S[B]}if(!y||!y.length||!y.filter(function(e){return e.values.length}).length){var j=_.selectAll(".nv-noData").data([T]);return j.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),j.attr("x",u.left+P/2).attr("y",u.top+H/2).text(function(e){return e}),M}_.selectAll(".nv-noData").remove(),b=t.xScale(),w=t.yScale();var F=_.selectAll("g.nv-wrap.nv-stackedAreaChart").data([y]),I=F.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),q=F.select("g");I.append("rect").style("opacity",0),I.append("g").attr("class","nv-x nv-axis"),I.append("g").attr("class","nv-y nv-axis"),I.append("g").attr("class","nv-stackedWrap"),I.append("g").attr("class","nv-legendWrap"),I.append("g").attr("class","nv-controlsWrap"),I.append("g").attr("class","nv-interactive"),q.select("rect").attr("width",P).attr("height",H);if(h){var R=c?P-C:P;i.width(R),q.select(".nv-legendWrap").datum(y).call(i),u.top!=i.height()&&(u.top=i.height(),H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom),q.select(".nv-legendWrap").attr("transform","translate("+(P-R)+","+ -u.top+")")}if(c){var U=[{key:L.stacked||"Stacked",metaKey:"Stacked",disabled:t.style()!="stack",style:"stack"},{key:L.stream||"Stream",metaKey:"Stream",disabled:t.style()!="stream",style:"stream"},{key:L.expanded||"Expanded",metaKey:"Expanded",disabled:t.style()!="expand",style:"expand"},{key:L.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:t.style()!="stack_percent",style:"stack_percent"}];C=k.length/3*260,U=U.filter(function(e){return k.indexOf(e.metaKey)!==-1}),s.width(C).color(["#444","#444","#444"]),q.select(".nv-controlsWrap").datum(U).call(s),u.top!=Math.max(s.height(),i.height())&&(u.top=Math.max(s.height(),i.height()),H=(f||parseInt(_.style("height"))||400)-u.top-u.bottom),q.select(".nv-controlsWrap").attr("transform","translate(0,"+ -u.top+")")}F.attr("transform","translate("+u.left+","+u.top+")"),v&&q.select(".nv-y.nv-axis").attr("transform","translate("+P+",0)"),m&&(o.width(P).height(H).margin({left:u.left,top:u.top}).svgContainer(_).xScale(b),F.select(".nv-interactive").call(o)),t.width(P).height(H);var z=q.select(".nv-stackedWrap").datum(y);z.transition().call(t),p&&(n.scale(b).ticks(P/100).tickSize(-H,0),q.select(".nv-x.nv-axis").attr("transform","translate(0,"+H+")"),q.select(".nv-x.nv-axis").transition().duration(0).call(n)),d&&(r.scale(w).ticks(t.offset()=="wiggle"?0:H/36).tickSize(-P,0).setTickFormat(t.style()=="expand"||t.style()=="stack_percent"?d3.format("%"):E),q.select(".nv-y.nv-axis").transition().duration(0).call(r)),t.dispatch.on("areaClick.toggle",function(e){y.filter(function(e){return!e.disabled}).length===1?y.forEach(function(e){e.disabled=!1}):y.forEach(function(t,n){t.disabled=n!=e.seriesIndex}),S.disabled=y.map(function(e){return!!e.disabled}),N.stateChange(S),M.update()}),i.dispatch.on("stateChange",function(e){S.disabled=e.disabled,N.stateChange(S),M.update()}),s.dispatch.on("legendClick",function(e,n){if(!e.disabled)return;U=U.map(function(e){return e.disabled=!0,e}),e.disabled=!1,t.style(e.style),S.style=t.style(),N.stateChange(S),M.update()}),o.dispatch.on("elementMousemove",function(i){t.clearHighlights();var s,a,f,c=[];y.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(n,r){a=e.interactiveBisect(n.values,i.pointXValue,M.x()),t.highlightPoint(r,a,!0);var o=n.values[a];if(typeof o=="undefined")return;typeof s=="undefined"&&(s=o),typeof f=="undefined"&&(f=M.xScale()(M.x()(o,a)));var u=t.style()=="expand"?o.display.y:M.y()(o,a);c.push({key:n.key,value:u,color:l(n,n.seriesIndex),stackedValue:o.display})}),c.reverse();if(c.length>2){var h=M.yScale().invert(i.mouseY),p=Infinity,d=null;c.forEach(function(e,t){h=Math.abs(h);var n=Math.abs(e.stackedValue.y0),r=Math.abs(e.stackedValue.y);if(h>=n&&h<=r+n){d=t;return}}),d!=null&&(c[d].highlight=!0)}var v=n.tickFormat()(M.x()(s,a)),m=t.style()=="expand"?function(e,t){return d3.format(".1%")(e)}:function(e,t){return r.tickFormat()(e)};o.tooltip.position({left:f+u.left,top:i.mouseY+u.top}).chartContainer(D.parentNode).enabled(g).valueFormatter(m).data({value:v,series:c})(),o.renderGuideLine(f)}),o.dispatch.on("elementMouseout",function(e){N.tooltipHide(),t.clearHighlights()}),N.on("tooltipShow",function(e){g&&O(e,D.parentNode)}),N.on("changeState",function(e){typeof e.disabled!="undefined"&&y.length===e.disabled.length&&(y.forEach(function(t,n){t.disabled=e.disabled[n]}),S.disabled=e.disabled),typeof e.style!="undefined"&&t.style(e.style),M.update()})}),M}var t=e.models.stackedArea(),n=e.models.axis(),r=e.models.axis(),i=e.models.legend(),s=e.models.legend(),o=e.interactiveGuideline(),u={top:30,right:25,bottom:50,left:60},a=null,f=null,l=e.utils.defaultColor(),c=!0,h=!0,p=!0,d=!0,v=!1,m=!1,g=!0,y=function(e,t,n,r,i){return"<h3>"+e+"</h3>"+"<p>"+n+" on "+t+"</p>"},b,w,E=d3.format(",.2f"),S={style:t.style()},x=null,T="No Data Available.",N=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState"),C=250,k=["Stacked","Stream","Expanded"],L={},A=250;n.orient("bottom").tickPadding(7),r.orient(v?"right":"left"),s.updateState(!1);var O=function(i,s){var o=i.pos[0]+(s.offsetLeft||0),u=i.pos[1]+(s.offsetTop||0),a=n.tickFormat()(t.x()(i.point,i.pointIndex)),f=r.tickFormat()(t.y()(i.point,i.pointIndex)),l=y(i.series.key,a,f,i,M);e.tooltip.show([o,u],l,i.value<0?"n":"s",null,s)};return t.dispatch.on("tooltipShow",function(e){e.pos=[e.pos[0]+u.left,e.pos[1]+u.top],N.tooltipShow(e)}),t.dispatch.on("tooltipHide",function(e){N.tooltipHide(e)}),N.on("tooltipHide",function(){g&&e.tooltip.cleanup()}),M.dispatch=N,M.stacked=t,M.legend=i,M.controls=s,M.xAxis=n,M.yAxis=r,M.interactiveLayer=o,d3.rebind(M,t,"x","y","size","xScale","yScale","xDomain","yDomain","xRange","yRange","sizeDomain","interactive","useVoronoi","offset","order","style","clipEdge","forceX","forceY","forceSize","interpolate"),M.options=e.utils.optionsFunc.bind(M),M.margin=function(e){return arguments.length?(u.top=typeof e.top!="undefined"?e.top:u.top,u.right=typeof e.right!="undefined"?e.right:u.right,u.bottom=typeof e.bottom!="undefined"?e.bottom:u.bottom,u.left=typeof e.left!="undefined"?e.left:u.left,M):u},M.width=function(e){return arguments.length?(a=e,M):a},M.height=function(e){return arguments.length?(f=e,M):f},M.color=function(n){return arguments.length?(l=e.utils.getColor(n),i.color(l),t.color(l),M):l},M.showControls=function(e){return arguments.length?(c=e,M):c},M.showLegend=function(e){return arguments.length?(h=e,M):h},M.showXAxis=function(e){return arguments.length?(p=e,M):p},M.showYAxis=function(e){return arguments.length?(d=e,M):d},M.rightAlignYAxis=function(e){return arguments.length?(v=e,r.orient(e?"right":"left"),M):v},M.useInteractiveGuideline=function(e){return arguments.length?(m=e,e===!0&&(M.interactive(!1),M.useVoronoi(!1)),M):m},M.tooltip=function(e){return arguments.length?(y=e,M):y},M.tooltips=function(e){return arguments.length?(g=e,M):g},M.tooltipContent=function(e){return arguments.length?(y=e,M):y},M.state=function(e){return arguments.length?(S=e,M):S},M.defaultState=function(e){return arguments.length?(x=e,M):x},M.noData=function(e){return arguments.length?(T=e,M):T},M.transitionDuration=function(e){return arguments.length?(A=e,M):A},M.controlsData=function(e){return arguments.length?(k=e,M):k},M.controlLabels=function(e){return arguments.length?typeof e!="object"?L:(L=e,M):L},r.setTickFormat=r.tickFormat,r.tickFormat=function(e){return arguments.length?(E=e,r):E},M}})();
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/respond.min.js b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/respond.min.js
deleted file mode 100644
index 80a7b69..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/js/respond.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
- * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
- *  */
-
-!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='&shy;<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b<s.length;b++){var c=s[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!o[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(v(c.styleSheet.rawCssText,e,f),o[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!r||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}w()};x(),c.update=x,c.getEmValue=t,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);
\ No newline at end of file
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/method_item.html.dist b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/method_item.html.dist
deleted file mode 100644
index 4bb0e42..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Template/method_item.html.dist
+++ /dev/null
@@ -1,11 +0,0 @@
-     <tr>
-      <td class="{{methods_level}}" colspan="4">{{name}}</td>
-      <td class="{{methods_level}} big">{{methods_bar}}</td>
-      <td class="{{methods_level}} small"><div align="right">{{methods_tested_percent}}</div></td>
-      <td class="{{methods_level}} small"><div align="right">{{methods_number}}</div></td>
-      <td class="{{methods_level}} small">{{crap}}</td>
-      <td class="{{lines_level}} big">{{lines_bar}}</td>
-      <td class="{{lines_level}} small"><div align="right">{{lines_executed_percent}}</div></td>
-      <td class="{{lines_level}} small"><div align="right">{{lines_number}}</div></td>
-     </tr>
-
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php
deleted file mode 100644
index 223b50c..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php
+++ /dev/null
@@ -1,345 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Base class for nodes in the code coverage information tree.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-abstract class PHP_CodeCoverage_Report_Node implements Countable
-{
-    /**
-     * @var string
-     */
-    protected $name;
-
-    /**
-     * @var string
-     */
-    protected $path;
-
-    /**
-     * @var array
-     */
-    protected $pathArray;
-
-    /**
-     * @var PHP_CodeCoverage_Report_Node
-     */
-    protected $parent;
-
-    /**
-     * @var string
-     */
-    protected $id;
-
-    /**
-     * Constructor.
-     *
-     * @param string                       $name
-     * @param PHP_CodeCoverage_Report_Node $parent
-     */
-    public function __construct($name, PHP_CodeCoverage_Report_Node $parent = null)
-    {
-        if (substr($name, -1) == '/') {
-            $name = substr($name, 0, -1);
-        }
-
-        $this->name   = $name;
-        $this->parent = $parent;
-    }
-
-    /**
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * @return string
-     */
-    public function getId()
-    {
-        if ($this->id === null) {
-            $parent = $this->getParent();
-
-            if ($parent === null) {
-                $this->id = 'index';
-            } else {
-                $parentId = $parent->getId();
-
-                if ($parentId == 'index') {
-                    $this->id = str_replace(':', '_', $this->name);
-                } else {
-                    $this->id = $parentId . '/' . $this->name;
-                }
-            }
-        }
-
-        return $this->id;
-    }
-
-    /**
-     * @return string
-     */
-    public function getPath()
-    {
-        if ($this->path === null) {
-            if ($this->parent === null || $this->parent->getPath() === null) {
-                $this->path = $this->name;
-            } else {
-                $this->path = $this->parent->getPath() . '/' . $this->name;
-            }
-        }
-
-        return $this->path;
-    }
-
-    /**
-     * @return array
-     */
-    public function getPathAsArray()
-    {
-        if ($this->pathArray === null) {
-            if ($this->parent === null) {
-                $this->pathArray = array();
-            } else {
-                $this->pathArray = $this->parent->getPathAsArray();
-            }
-
-            $this->pathArray[] = $this;
-        }
-
-        return $this->pathArray;
-    }
-
-    /**
-     * @return PHP_CodeCoverage_Report_Node
-     */
-    public function getParent()
-    {
-        return $this->parent;
-    }
-
-    /**
-     * Returns the percentage of classes that has been tested.
-     *
-     * @param  boolean $asString
-     * @return integer
-     */
-    public function getTestedClassesPercent($asString = true)
-    {
-        return PHP_CodeCoverage_Util::percent(
-            $this->getNumTestedClasses(),
-            $this->getNumClasses(),
-            $asString
-        );
-    }
-
-    /**
-     * Returns the percentage of traits that has been tested.
-     *
-     * @param  boolean $asString
-     * @return integer
-     */
-    public function getTestedTraitsPercent($asString = true)
-    {
-        return PHP_CodeCoverage_Util::percent(
-            $this->getNumTestedTraits(),
-            $this->getNumTraits(),
-            $asString
-        );
-    }
-
-    /**
-     * Returns the percentage of traits that has been tested.
-     *
-     * @param  boolean $asString
-     * @return integer
-     * @since  Method available since Release 1.2.0
-     */
-    public function getTestedClassesAndTraitsPercent($asString = true)
-    {
-        return PHP_CodeCoverage_Util::percent(
-            $this->getNumTestedClassesAndTraits(),
-            $this->getNumClassesAndTraits(),
-            $asString
-        );
-    }
-
-    /**
-     * Returns the percentage of methods that has been tested.
-     *
-     * @param  boolean $asString
-     * @return integer
-     */
-    public function getTestedMethodsPercent($asString = true)
-    {
-        return PHP_CodeCoverage_Util::percent(
-            $this->getNumTestedMethods(),
-            $this->getNumMethods(),
-            $asString
-        );
-    }
-
-    /**
-     * Returns the percentage of executed lines.
-     *
-     * @param  boolean $asString
-     * @return integer
-     */
-    public function getLineExecutedPercent($asString = true)
-    {
-        return PHP_CodeCoverage_Util::percent(
-            $this->getNumExecutedLines(),
-            $this->getNumExecutableLines(),
-            $asString
-        );
-    }
-
-    /**
-     * Returns the number of classes and traits.
-     *
-     * @return integer
-     * @since  Method available since Release 1.2.0
-     */
-    public function getNumClassesAndTraits()
-    {
-        return $this->getNumClasses() + $this->getNumTraits();
-    }
-
-    /**
-     * Returns the number of tested classes and traits.
-     *
-     * @return integer
-     * @since  Method available since Release 1.2.0
-     */
-    public function getNumTestedClassesAndTraits()
-    {
-        return $this->getNumTestedClasses() + $this->getNumTestedTraits();
-    }
-
-    /**
-     * Returns the classes and traits of this node.
-     *
-     * @return array
-     * @since  Method available since Release 1.2.0
-     */
-    public function getClassesAndTraits()
-    {
-        return array_merge($this->getClasses(), $this->getTraits());
-    }
-
-    /**
-     * Returns the classes of this node.
-     *
-     * @return array
-     */
-    abstract public function getClasses();
-
-    /**
-     * Returns the traits of this node.
-     *
-     * @return array
-     */
-    abstract public function getTraits();
-
-    /**
-     * Returns the functions of this node.
-     *
-     * @return array
-     */
-    abstract public function getFunctions();
-
-    /**
-     * Returns the LOC/CLOC/NCLOC of this node.
-     *
-     * @return array
-     */
-    abstract public function getLinesOfCode();
-
-    /**
-     * Returns the number of executable lines.
-     *
-     * @return integer
-     */
-    abstract public function getNumExecutableLines();
-
-    /**
-     * Returns the number of executed lines.
-     *
-     * @return integer
-     */
-    abstract public function getNumExecutedLines();
-
-    /**
-     * Returns the number of classes.
-     *
-     * @return integer
-     */
-    abstract public function getNumClasses();
-
-    /**
-     * Returns the number of tested classes.
-     *
-     * @return integer
-     */
-    abstract public function getNumTestedClasses();
-
-    /**
-     * Returns the number of traits.
-     *
-     * @return integer
-     */
-    abstract public function getNumTraits();
-
-    /**
-     * Returns the number of tested traits.
-     *
-     * @return integer
-     */
-    abstract public function getNumTestedTraits();
-
-    /**
-     * Returns the number of methods.
-     *
-     * @return integer
-     */
-    abstract public function getNumMethods();
-
-    /**
-     * Returns the number of tested methods.
-     *
-     * @return integer
-     */
-    abstract public function getNumTestedMethods();
-
-    /**
-     * Returns the number of functions.
-     *
-     * @return integer
-     */
-    abstract public function getNumFunctions();
-
-    /**
-     * Returns the number of tested functions.
-     *
-     * @return integer
-     */
-    abstract public function getNumTestedFunctions();
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php
deleted file mode 100644
index b424b12..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Directory.php
+++ /dev/null
@@ -1,484 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a directory in the code coverage information tree.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_Node_Directory extends PHP_CodeCoverage_Report_Node implements IteratorAggregate
-{
-    /**
-     * @var PHP_CodeCoverage_Report_Node[]
-     */
-    protected $children = array();
-
-    /**
-     * @var PHP_CodeCoverage_Report_Node_Directory[]
-     */
-    protected $directories = array();
-
-    /**
-     * @var PHP_CodeCoverage_Report_Node_File[]
-     */
-    protected $files = array();
-
-    /**
-     * @var array
-     */
-    protected $classes;
-
-    /**
-     * @var array
-     */
-    protected $traits;
-
-    /**
-     * @var array
-     */
-    protected $functions;
-
-    /**
-     * @var array
-     */
-    protected $linesOfCode = null;
-
-    /**
-     * @var integer
-     */
-    protected $numFiles = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numExecutableLines = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numExecutedLines = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numClasses = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedClasses = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numTraits = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedTraits = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numMethods = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedMethods = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numFunctions = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedFunctions = -1;
-
-    /**
-     * Returns the number of files in/under this node.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        if ($this->numFiles == -1) {
-            $this->numFiles = 0;
-
-            foreach ($this->children as $child) {
-                $this->numFiles += count($child);
-            }
-        }
-
-        return $this->numFiles;
-    }
-
-    /**
-     * Returns an iterator for this node.
-     *
-     * @return RecursiveIteratorIterator
-     */
-    public function getIterator()
-    {
-        return new RecursiveIteratorIterator(
-            new PHP_CodeCoverage_Report_Node_Iterator($this),
-            RecursiveIteratorIterator::SELF_FIRST
-        );
-    }
-
-    /**
-     * Adds a new directory.
-     *
-     * @param  string                                 $name
-     * @return PHP_CodeCoverage_Report_Node_Directory
-     */
-    public function addDirectory($name)
-    {
-        $directory = new PHP_CodeCoverage_Report_Node_Directory($name, $this);
-
-        $this->children[]    = $directory;
-        $this->directories[] = &$this->children[count($this->children) - 1];
-
-        return $directory;
-    }
-
-    /**
-     * Adds a new file.
-     *
-     * @param  string                            $name
-     * @param  array                             $coverageData
-     * @param  array                             $testData
-     * @param  boolean                           $cacheTokens
-     * @return PHP_CodeCoverage_Report_Node_File
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function addFile($name, array $coverageData, array $testData, $cacheTokens)
-    {
-        $file = new PHP_CodeCoverage_Report_Node_File(
-            $name,
-            $this,
-            $coverageData,
-            $testData,
-            $cacheTokens
-        );
-
-        $this->children[] = $file;
-        $this->files[]    = &$this->children[count($this->children) - 1];
-
-        $this->numExecutableLines = -1;
-        $this->numExecutedLines   = -1;
-
-        return $file;
-    }
-
-    /**
-     * Returns the directories in this directory.
-     *
-     * @return array
-     */
-    public function getDirectories()
-    {
-        return $this->directories;
-    }
-
-    /**
-     * Returns the files in this directory.
-     *
-     * @return array
-     */
-    public function getFiles()
-    {
-        return $this->files;
-    }
-
-    /**
-     * Returns the child nodes of this node.
-     *
-     * @return array
-     */
-    public function getChildNodes()
-    {
-        return $this->children;
-    }
-
-    /**
-     * Returns the classes of this node.
-     *
-     * @return array
-     */
-    public function getClasses()
-    {
-        if ($this->classes === null) {
-            $this->classes = array();
-
-            foreach ($this->children as $child) {
-                $this->classes = array_merge(
-                    $this->classes,
-                    $child->getClasses()
-                );
-            }
-        }
-
-        return $this->classes;
-    }
-
-    /**
-     * Returns the traits of this node.
-     *
-     * @return array
-     */
-    public function getTraits()
-    {
-        if ($this->traits === null) {
-            $this->traits = array();
-
-            foreach ($this->children as $child) {
-                $this->traits = array_merge(
-                    $this->traits,
-                    $child->getTraits()
-                );
-            }
-        }
-
-        return $this->traits;
-    }
-
-    /**
-     * Returns the functions of this node.
-     *
-     * @return array
-     */
-    public function getFunctions()
-    {
-        if ($this->functions === null) {
-            $this->functions = array();
-
-            foreach ($this->children as $child) {
-                $this->functions = array_merge(
-                    $this->functions,
-                    $child->getFunctions()
-                );
-            }
-        }
-
-        return $this->functions;
-    }
-
-    /**
-     * Returns the LOC/CLOC/NCLOC of this node.
-     *
-     * @return array
-     */
-    public function getLinesOfCode()
-    {
-        if ($this->linesOfCode === null) {
-            $this->linesOfCode = array('loc' => 0, 'cloc' => 0, 'ncloc' => 0);
-
-            foreach ($this->children as $child) {
-                $linesOfCode = $child->getLinesOfCode();
-
-                $this->linesOfCode['loc']   += $linesOfCode['loc'];
-                $this->linesOfCode['cloc']  += $linesOfCode['cloc'];
-                $this->linesOfCode['ncloc'] += $linesOfCode['ncloc'];
-            }
-        }
-
-        return $this->linesOfCode;
-    }
-
-    /**
-     * Returns the number of executable lines.
-     *
-     * @return integer
-     */
-    public function getNumExecutableLines()
-    {
-        if ($this->numExecutableLines == -1) {
-            $this->numExecutableLines = 0;
-
-            foreach ($this->children as $child) {
-                $this->numExecutableLines += $child->getNumExecutableLines();
-            }
-        }
-
-        return $this->numExecutableLines;
-    }
-
-    /**
-     * Returns the number of executed lines.
-     *
-     * @return integer
-     */
-    public function getNumExecutedLines()
-    {
-        if ($this->numExecutedLines == -1) {
-            $this->numExecutedLines = 0;
-
-            foreach ($this->children as $child) {
-                $this->numExecutedLines += $child->getNumExecutedLines();
-            }
-        }
-
-        return $this->numExecutedLines;
-    }
-
-    /**
-     * Returns the number of classes.
-     *
-     * @return integer
-     */
-    public function getNumClasses()
-    {
-        if ($this->numClasses == -1) {
-            $this->numClasses = 0;
-
-            foreach ($this->children as $child) {
-                $this->numClasses += $child->getNumClasses();
-            }
-        }
-
-        return $this->numClasses;
-    }
-
-    /**
-     * Returns the number of tested classes.
-     *
-     * @return integer
-     */
-    public function getNumTestedClasses()
-    {
-        if ($this->numTestedClasses == -1) {
-            $this->numTestedClasses = 0;
-
-            foreach ($this->children as $child) {
-                $this->numTestedClasses += $child->getNumTestedClasses();
-            }
-        }
-
-        return $this->numTestedClasses;
-    }
-
-    /**
-     * Returns the number of traits.
-     *
-     * @return integer
-     */
-    public function getNumTraits()
-    {
-        if ($this->numTraits == -1) {
-            $this->numTraits = 0;
-
-            foreach ($this->children as $child) {
-                $this->numTraits += $child->getNumTraits();
-            }
-        }
-
-        return $this->numTraits;
-    }
-
-    /**
-     * Returns the number of tested traits.
-     *
-     * @return integer
-     */
-    public function getNumTestedTraits()
-    {
-        if ($this->numTestedTraits == -1) {
-            $this->numTestedTraits = 0;
-
-            foreach ($this->children as $child) {
-                $this->numTestedTraits += $child->getNumTestedTraits();
-            }
-        }
-
-        return $this->numTestedTraits;
-    }
-
-    /**
-     * Returns the number of methods.
-     *
-     * @return integer
-     */
-    public function getNumMethods()
-    {
-        if ($this->numMethods == -1) {
-            $this->numMethods = 0;
-
-            foreach ($this->children as $child) {
-                $this->numMethods += $child->getNumMethods();
-            }
-        }
-
-        return $this->numMethods;
-    }
-
-    /**
-     * Returns the number of tested methods.
-     *
-     * @return integer
-     */
-    public function getNumTestedMethods()
-    {
-        if ($this->numTestedMethods == -1) {
-            $this->numTestedMethods = 0;
-
-            foreach ($this->children as $child) {
-                $this->numTestedMethods += $child->getNumTestedMethods();
-            }
-        }
-
-        return $this->numTestedMethods;
-    }
-
-    /**
-     * Returns the number of functions.
-     *
-     * @return integer
-     */
-    public function getNumFunctions()
-    {
-        if ($this->numFunctions == -1) {
-            $this->numFunctions = 0;
-
-            foreach ($this->children as $child) {
-                $this->numFunctions += $child->getNumFunctions();
-            }
-        }
-
-        return $this->numFunctions;
-    }
-
-    /**
-     * Returns the number of tested functions.
-     *
-     * @return integer
-     */
-    public function getNumTestedFunctions()
-    {
-        if ($this->numTestedFunctions == -1) {
-            $this->numTestedFunctions = 0;
-
-            foreach ($this->children as $child) {
-                $this->numTestedFunctions += $child->getNumTestedFunctions();
-            }
-        }
-
-        return $this->numTestedFunctions;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php
deleted file mode 100644
index 6f0dcb2..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/File.php
+++ /dev/null
@@ -1,662 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a file in the code coverage information tree.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_Node_File extends PHP_CodeCoverage_Report_Node
-{
-    /**
-     * @var array
-     */
-    protected $coverageData;
-
-    /**
-     * @var array
-     */
-    protected $testData;
-
-    /**
-     * @var integer
-     */
-    protected $numExecutableLines = 0;
-
-    /**
-     * @var integer
-     */
-    protected $numExecutedLines = 0;
-
-    /**
-     * @var array
-     */
-    protected $classes = array();
-
-    /**
-     * @var array
-     */
-    protected $traits = array();
-
-    /**
-     * @var array
-     */
-    protected $functions = array();
-
-    /**
-     * @var array
-     */
-    protected $linesOfCode = array();
-
-    /**
-     * @var integer
-     */
-    protected $numTestedTraits = 0;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedClasses = 0;
-
-    /**
-     * @var integer
-     */
-    protected $numMethods = null;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedMethods = null;
-
-    /**
-     * @var integer
-     */
-    protected $numTestedFunctions = null;
-
-    /**
-     * @var array
-     */
-    protected $startLines = array();
-
-    /**
-     * @var array
-     */
-    protected $endLines = array();
-
-    /**
-     * @var boolean
-     */
-    protected $cacheTokens;
-
-    /**
-     * Constructor.
-     *
-     * @param  string                       $name
-     * @param  PHP_CodeCoverage_Report_Node $parent
-     * @param  array                        $coverageData
-     * @param  array                        $testData
-     * @param  boolean                      $cacheTokens
-     * @throws PHP_CodeCoverage_Exception
-     */
-    public function __construct($name, PHP_CodeCoverage_Report_Node $parent, array $coverageData, array $testData, $cacheTokens)
-    {
-        if (!is_bool($cacheTokens)) {
-            throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(
-                1,
-                'boolean'
-            );
-        }
-
-        parent::__construct($name, $parent);
-
-        $this->coverageData = $coverageData;
-        $this->testData     = $testData;
-        $this->cacheTokens  = $cacheTokens;
-
-        $this->calculateStatistics();
-    }
-
-    /**
-     * Returns the number of files in/under this node.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return 1;
-    }
-
-    /**
-     * Returns the code coverage data of this node.
-     *
-     * @return array
-     */
-    public function getCoverageData()
-    {
-        return $this->coverageData;
-    }
-
-    /**
-     * Returns the test data of this node.
-     *
-     * @return array
-     */
-    public function getTestData()
-    {
-        return $this->testData;
-    }
-
-    /**
-     * Returns the classes of this node.
-     *
-     * @return array
-     */
-    public function getClasses()
-    {
-        return $this->classes;
-    }
-
-    /**
-     * Returns the traits of this node.
-     *
-     * @return array
-     */
-    public function getTraits()
-    {
-        return $this->traits;
-    }
-
-    /**
-     * Returns the functions of this node.
-     *
-     * @return array
-     */
-    public function getFunctions()
-    {
-        return $this->functions;
-    }
-
-    /**
-     * Returns the LOC/CLOC/NCLOC of this node.
-     *
-     * @return array
-     */
-    public function getLinesOfCode()
-    {
-        return $this->linesOfCode;
-    }
-
-    /**
-     * Returns the number of executable lines.
-     *
-     * @return integer
-     */
-    public function getNumExecutableLines()
-    {
-        return $this->numExecutableLines;
-    }
-
-    /**
-     * Returns the number of executed lines.
-     *
-     * @return integer
-     */
-    public function getNumExecutedLines()
-    {
-        return $this->numExecutedLines;
-    }
-
-    /**
-     * Returns the number of classes.
-     *
-     * @return integer
-     */
-    public function getNumClasses()
-    {
-        return count($this->classes);
-    }
-
-    /**
-     * Returns the number of tested classes.
-     *
-     * @return integer
-     */
-    public function getNumTestedClasses()
-    {
-        return $this->numTestedClasses;
-    }
-
-    /**
-     * Returns the number of traits.
-     *
-     * @return integer
-     */
-    public function getNumTraits()
-    {
-        return count($this->traits);
-    }
-
-    /**
-     * Returns the number of tested traits.
-     *
-     * @return integer
-     */
-    public function getNumTestedTraits()
-    {
-        return $this->numTestedTraits;
-    }
-
-    /**
-     * Returns the number of methods.
-     *
-     * @return integer
-     */
-    public function getNumMethods()
-    {
-        if ($this->numMethods === null) {
-            $this->numMethods = 0;
-
-            foreach ($this->classes as $class) {
-                foreach ($class['methods'] as $method) {
-                    if ($method['executableLines'] > 0) {
-                        $this->numMethods++;
-                    }
-                }
-            }
-
-            foreach ($this->traits as $trait) {
-                foreach ($trait['methods'] as $method) {
-                    if ($method['executableLines'] > 0) {
-                        $this->numMethods++;
-                    }
-                }
-            }
-        }
-
-        return $this->numMethods;
-    }
-
-    /**
-     * Returns the number of tested methods.
-     *
-     * @return integer
-     */
-    public function getNumTestedMethods()
-    {
-        if ($this->numTestedMethods === null) {
-            $this->numTestedMethods = 0;
-
-            foreach ($this->classes as $class) {
-                foreach ($class['methods'] as $method) {
-                    if ($method['executableLines'] > 0 &&
-                        $method['coverage'] == 100) {
-                        $this->numTestedMethods++;
-                    }
-                }
-            }
-
-            foreach ($this->traits as $trait) {
-                foreach ($trait['methods'] as $method) {
-                    if ($method['executableLines'] > 0 &&
-                        $method['coverage'] == 100) {
-                        $this->numTestedMethods++;
-                    }
-                }
-            }
-        }
-
-        return $this->numTestedMethods;
-    }
-
-    /**
-     * Returns the number of functions.
-     *
-     * @return integer
-     */
-    public function getNumFunctions()
-    {
-        return count($this->functions);
-    }
-
-    /**
-     * Returns the number of tested functions.
-     *
-     * @return integer
-     */
-    public function getNumTestedFunctions()
-    {
-        if ($this->numTestedFunctions === null) {
-            $this->numTestedFunctions = 0;
-
-            foreach ($this->functions as $function) {
-                if ($function['executableLines'] > 0 &&
-                    $function['coverage'] == 100) {
-                    $this->numTestedFunctions++;
-                }
-            }
-        }
-
-        return $this->numTestedFunctions;
-    }
-
-    /**
-     * Calculates coverage statistics for the file.
-     */
-    protected function calculateStatistics()
-    {
-        if ($this->cacheTokens) {
-            $tokens = PHP_Token_Stream_CachingFactory::get($this->getPath());
-        } else {
-            $tokens = new PHP_Token_Stream($this->getPath());
-        }
-
-        $this->processClasses($tokens);
-        $this->processTraits($tokens);
-        $this->processFunctions($tokens);
-        $this->linesOfCode = $tokens->getLinesOfCode();
-        unset($tokens);
-
-        for ($lineNumber = 1; $lineNumber <= $this->linesOfCode['loc']; $lineNumber++) {
-            if (isset($this->startLines[$lineNumber])) {
-                // Start line of a class.
-                if (isset($this->startLines[$lineNumber]['className'])) {
-                    $currentClass = &$this->startLines[$lineNumber];
-                } // Start line of a trait.
-                elseif (isset($this->startLines[$lineNumber]['traitName'])) {
-                    $currentTrait = &$this->startLines[$lineNumber];
-                } // Start line of a method.
-                elseif (isset($this->startLines[$lineNumber]['methodName'])) {
-                    $currentMethod = &$this->startLines[$lineNumber];
-                } // Start line of a function.
-                elseif (isset($this->startLines[$lineNumber]['functionName'])) {
-                    $currentFunction = &$this->startLines[$lineNumber];
-                }
-            }
-
-            if (isset($this->coverageData[$lineNumber]) &&
-                $this->coverageData[$lineNumber] !== null) {
-                if (isset($currentClass)) {
-                    $currentClass['executableLines']++;
-                }
-
-                if (isset($currentTrait)) {
-                    $currentTrait['executableLines']++;
-                }
-
-                if (isset($currentMethod)) {
-                    $currentMethod['executableLines']++;
-                }
-
-                if (isset($currentFunction)) {
-                    $currentFunction['executableLines']++;
-                }
-
-                $this->numExecutableLines++;
-
-                if (count($this->coverageData[$lineNumber]) > 0) {
-                    if (isset($currentClass)) {
-                        $currentClass['executedLines']++;
-                    }
-
-                    if (isset($currentTrait)) {
-                        $currentTrait['executedLines']++;
-                    }
-
-                    if (isset($currentMethod)) {
-                        $currentMethod['executedLines']++;
-                    }
-
-                    if (isset($currentFunction)) {
-                        $currentFunction['executedLines']++;
-                    }
-
-                    $this->numExecutedLines++;
-                }
-            }
-
-            if (isset($this->endLines[$lineNumber])) {
-                // End line of a class.
-                if (isset($this->endLines[$lineNumber]['className'])) {
-                    unset($currentClass);
-                } // End line of a trait.
-                elseif (isset($this->endLines[$lineNumber]['traitName'])) {
-                    unset($currentTrait);
-                } // End line of a method.
-                elseif (isset($this->endLines[$lineNumber]['methodName'])) {
-                    unset($currentMethod);
-                } // End line of a function.
-                elseif (isset($this->endLines[$lineNumber]['functionName'])) {
-                    unset($currentFunction);
-                }
-            }
-        }
-
-        foreach ($this->traits as &$trait) {
-            foreach ($trait['methods'] as &$method) {
-                if ($method['executableLines'] > 0) {
-                    $method['coverage'] = ($method['executedLines'] /
-                            $method['executableLines']) * 100;
-                } else {
-                    $method['coverage'] = 100;
-                }
-
-                $method['crap'] = $this->crap(
-                    $method['ccn'],
-                    $method['coverage']
-                );
-
-                $trait['ccn'] += $method['ccn'];
-            }
-
-            if ($trait['executableLines'] > 0) {
-                $trait['coverage'] = ($trait['executedLines'] /
-                        $trait['executableLines']) * 100;
-            } else {
-                $trait['coverage'] = 100;
-            }
-
-            if ($trait['coverage'] == 100) {
-                $this->numTestedClasses++;
-            }
-
-            $trait['crap'] = $this->crap(
-                $trait['ccn'],
-                $trait['coverage']
-            );
-        }
-
-        foreach ($this->classes as &$class) {
-            foreach ($class['methods'] as &$method) {
-                if ($method['executableLines'] > 0) {
-                    $method['coverage'] = ($method['executedLines'] /
-                            $method['executableLines']) * 100;
-                } else {
-                    $method['coverage'] = 100;
-                }
-
-                $method['crap'] = $this->crap(
-                    $method['ccn'],
-                    $method['coverage']
-                );
-
-                $class['ccn'] += $method['ccn'];
-            }
-
-            if ($class['executableLines'] > 0) {
-                $class['coverage'] = ($class['executedLines'] /
-                        $class['executableLines']) * 100;
-            } else {
-                $class['coverage'] = 100;
-            }
-
-            if ($class['coverage'] == 100) {
-                $this->numTestedClasses++;
-            }
-
-            $class['crap'] = $this->crap(
-                $class['ccn'],
-                $class['coverage']
-            );
-        }
-    }
-
-    /**
-     * @param PHP_Token_Stream $tokens
-     */
-    protected function processClasses(PHP_Token_Stream $tokens)
-    {
-        $classes = $tokens->getClasses();
-        unset($tokens);
-
-        $link = $this->getId() . '.html#';
-
-        foreach ($classes as $className => $class) {
-            $this->classes[$className] = array(
-                'className'       => $className,
-                'methods'         => array(),
-                'startLine'       => $class['startLine'],
-                'executableLines' => 0,
-                'executedLines'   => 0,
-                'ccn'             => 0,
-                'coverage'        => 0,
-                'crap'            => 0,
-                'package'         => $class['package'],
-                'link'            => $link . $class['startLine']
-            );
-
-            $this->startLines[$class['startLine']] = &$this->classes[$className];
-            $this->endLines[$class['endLine']]     = &$this->classes[$className];
-
-            foreach ($class['methods'] as $methodName => $method) {
-                $this->classes[$className]['methods'][$methodName] = array(
-                    'methodName'      => $methodName,
-                    'signature'       => $method['signature'],
-                    'startLine'       => $method['startLine'],
-                    'endLine'         => $method['endLine'],
-                    'executableLines' => 0,
-                    'executedLines'   => 0,
-                    'ccn'             => $method['ccn'],
-                    'coverage'        => 0,
-                    'crap'            => 0,
-                    'link'            => $link . $method['startLine']
-                );
-
-                $this->startLines[$method['startLine']] = &$this->classes[$className]['methods'][$methodName];
-                $this->endLines[$method['endLine']]     = &$this->classes[$className]['methods'][$methodName];
-            }
-        }
-    }
-
-    /**
-     * @param PHP_Token_Stream $tokens
-     */
-    protected function processTraits(PHP_Token_Stream $tokens)
-    {
-        $traits = $tokens->getTraits();
-        unset($tokens);
-
-        $link = $this->getId() . '.html#';
-
-        foreach ($traits as $traitName => $trait) {
-            $this->traits[$traitName] = array(
-                'traitName'       => $traitName,
-                'methods'         => array(),
-                'startLine'       => $trait['startLine'],
-                'executableLines' => 0,
-                'executedLines'   => 0,
-                'ccn'             => 0,
-                'coverage'        => 0,
-                'crap'            => 0,
-                'package'         => $trait['package'],
-                'link'            => $link . $trait['startLine']
-            );
-
-            $this->startLines[$trait['startLine']] = &$this->traits[$traitName];
-            $this->endLines[$trait['endLine']]     = &$this->traits[$traitName];
-
-            foreach ($trait['methods'] as $methodName => $method) {
-                $this->traits[$traitName]['methods'][$methodName] = array(
-                    'methodName'      => $methodName,
-                    'signature'       => $method['signature'],
-                    'startLine'       => $method['startLine'],
-                    'endLine'         => $method['endLine'],
-                    'executableLines' => 0,
-                    'executedLines'   => 0,
-                    'ccn'             => $method['ccn'],
-                    'coverage'        => 0,
-                    'crap'            => 0,
-                    'link'            => $link . $method['startLine']
-                );
-
-                $this->startLines[$method['startLine']] = &$this->traits[$traitName]['methods'][$methodName];
-                $this->endLines[$method['endLine']]     = &$this->traits[$traitName]['methods'][$methodName];
-            }
-        }
-    }
-
-    /**
-     * @param PHP_Token_Stream $tokens
-     */
-    protected function processFunctions(PHP_Token_Stream $tokens)
-    {
-        $functions = $tokens->getFunctions();
-        unset($tokens);
-
-        $link = $this->getId() . '.html#';
-
-        foreach ($functions as $functionName => $function) {
-            $this->functions[$functionName] = array(
-                'functionName'    => $functionName,
-                'signature'       => $function['signature'],
-                'startLine'       => $function['startLine'],
-                'executableLines' => 0,
-                'executedLines'   => 0,
-                'ccn'             => $function['ccn'],
-                'coverage'        => 0,
-                'crap'            => 0,
-                'link'            => $link . $function['startLine']
-            );
-
-            $this->startLines[$function['startLine']] = &$this->functions[$functionName];
-            $this->endLines[$function['endLine']]     = &$this->functions[$functionName];
-        }
-    }
-
-    /**
-     * Calculates the Change Risk Anti-Patterns (CRAP) index for a unit of code
-     * based on its cyclomatic complexity and percentage of code coverage.
-     *
-     * @param  integer $ccn
-     * @param  float   $coverage
-     * @return string
-     * @since  Method available since Release 1.2.0
-     */
-    protected function crap($ccn, $coverage)
-    {
-        if ($coverage == 0) {
-            return (string) pow($ccn, 2) + $ccn;
-        }
-
-        if ($coverage >= 95) {
-            return (string) $ccn;
-        }
-
-        return sprintf(
-            '%01.2F',
-            pow($ccn, 2) * pow(1 - $coverage/100, 3) + $ccn
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php
deleted file mode 100644
index e9cdbfd..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node/Iterator.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Recursive iterator for PHP_CodeCoverage_Report_Node object graphs.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_Node_Iterator implements RecursiveIterator
-{
-    /**
-     * @var integer
-     */
-    protected $position;
-
-    /**
-     * @var PHP_CodeCoverage_Report_Node[]
-     */
-    protected $nodes;
-
-    /**
-     * Constructor.
-     *
-     * @param PHP_CodeCoverage_Report_Node_Directory $node
-     */
-    public function __construct(PHP_CodeCoverage_Report_Node_Directory $node)
-    {
-        $this->nodes = $node->getChildNodes();
-    }
-
-    /**
-     * Rewinds the Iterator to the first element.
-     *
-     */
-    public function rewind()
-    {
-        $this->position = 0;
-    }
-
-    /**
-     * Checks if there is a current element after calls to rewind() or next().
-     *
-     * @return boolean
-     */
-    public function valid()
-    {
-        return $this->position < count($this->nodes);
-    }
-
-    /**
-     * Returns the key of the current element.
-     *
-     * @return integer
-     */
-    public function key()
-    {
-        return $this->position;
-    }
-
-    /**
-     * Returns the current element.
-     *
-     * @return PHPUnit_Framework_Test
-     */
-    public function current()
-    {
-        return $this->valid() ? $this->nodes[$this->position] : null;
-    }
-
-    /**
-     * Moves forward to next element.
-     *
-     */
-    public function next()
-    {
-        $this->position++;
-    }
-
-    /**
-     * Returns the sub iterator for the current element.
-     *
-     * @return PHP_CodeCoverage_Report_Node_Iterator
-     */
-    public function getChildren()
-    {
-        return new PHP_CodeCoverage_Report_Node_Iterator(
-            $this->nodes[$this->position]
-        );
-    }
-
-    /**
-     * Checks whether the current element has children.
-     *
-     * @return boolean
-     */
-    public function hasChildren()
-    {
-        return $this->nodes[$this->position] instanceof PHP_CodeCoverage_Report_Node_Directory;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php
deleted file mode 100644
index dfcc43d..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/PHP.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Uses var_export() to write a PHP_CodeCoverage object to a file.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     uyga <iamuyga@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_PHP
-{
-    /**
-     * @param  PHP_CodeCoverage $coverage
-     * @param  string           $target
-     * @return string
-     */
-    public function process(PHP_CodeCoverage $coverage, $target = null)
-    {
-        $filter = $coverage->filter();
-
-        $output = sprintf(
-            '<?php
-$coverage = new PHP_CodeCoverage;
-$coverage->setData(%s);
-$coverage->setTests(%s);
-
-$filter = $coverage->filter();
-$filter->setBlacklistedFiles(%s);
-$filter->setWhitelistedFiles(%s);
-
-return $coverage;',
-            var_export($coverage->getData(true), 1),
-            var_export($coverage->getTests(), 1),
-            var_export($filter->getBlacklistedFiles(), 1),
-            var_export($filter->getWhitelistedFiles(), 1)
-        );
-
-        if ($target !== null) {
-            return file_put_contents($target, $output);
-        } else {
-            return $output;
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php
deleted file mode 100644
index 1f74709..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Text.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Generates human readable output from an PHP_CodeCoverage object.
- *
- * The output gets put into a text file our written to the CLI.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_Text
-{
-    protected $lowUpperBound;
-    protected $highLowerBound;
-    protected $showUncoveredFiles;
-    protected $showOnlySummary;
-
-    protected $colors = array(
-        'green'  => "\x1b[30;42m",
-        'yellow' => "\x1b[30;43m",
-        'red'    => "\x1b[37;41m",
-        'header' => "\x1b[1;37;40m",
-        'reset'  => "\x1b[0m",
-        'eol'    => "\x1b[2K",
-    );
-
-    public function __construct($lowUpperBound, $highLowerBound, $showUncoveredFiles, $showOnlySummary)
-    {
-        $this->lowUpperBound      = $lowUpperBound;
-        $this->highLowerBound     = $highLowerBound;
-        $this->showUncoveredFiles = $showUncoveredFiles;
-        $this->showOnlySummary    = $showOnlySummary;
-    }
-
-    /**
-     * @param  PHP_CodeCoverage $coverage
-     * @param  bool             $showColors
-     * @return string
-     */
-    public function process(PHP_CodeCoverage $coverage, $showColors = false)
-    {
-        $output = PHP_EOL . PHP_EOL;
-        $report = $coverage->getReport();
-        unset($coverage);
-
-        $colors = array(
-            'header'  => '',
-            'classes' => '',
-            'methods' => '',
-            'lines'   => '',
-            'reset'   => '',
-            'eol'     => ''
-        );
-
-        if ($showColors) {
-            $colors['classes'] = $this->getCoverageColor(
-                $report->getNumTestedClassesAndTraits(),
-                $report->getNumClassesAndTraits()
-            );
-            $colors['methods'] = $this->getCoverageColor(
-                $report->getNumTestedMethods(),
-                $report->getNumMethods()
-            );
-            $colors['lines']   = $this->getCoverageColor(
-                $report->getNumExecutedLines(),
-                $report->getNumExecutableLines()
-            );
-            $colors['reset']   = $this->colors['reset'];
-            $colors['header']  = $this->colors['header'];
-            $colors['eol']     = $this->colors['eol'];
-        }
-
-        $classes = sprintf(
-            '  Classes: %6s (%d/%d)',
-            PHP_CodeCoverage_Util::percent(
-                $report->getNumTestedClassesAndTraits(),
-                $report->getNumClassesAndTraits(),
-                true
-            ),
-            $report->getNumTestedClassesAndTraits(),
-            $report->getNumClassesAndTraits()
-        );
-
-        $methods = sprintf(
-            '  Methods: %6s (%d/%d)',
-            PHP_CodeCoverage_Util::percent(
-                $report->getNumTestedMethods(),
-                $report->getNumMethods(),
-                true
-            ),
-            $report->getNumTestedMethods(),
-            $report->getNumMethods()
-        );
-
-        $lines = sprintf(
-            '  Lines:   %6s (%d/%d)',
-            PHP_CodeCoverage_Util::percent(
-                $report->getNumExecutedLines(),
-                $report->getNumExecutableLines(),
-                true
-            ),
-            $report->getNumExecutedLines(),
-            $report->getNumExecutableLines()
-        );
-
-        $padding = max(array_map('strlen', array($classes, $methods, $lines)));
-
-        if ($this->showOnlySummary) {
-            $title = 'Code Coverage Report Summary:';
-            $padding = max($padding, strlen($title));
-
-            $output .= $this->format($colors['header'], $padding, $title);
-        } else {
-            $date = date('  Y-m-d H:i:s', $_SERVER['REQUEST_TIME']);
-            $title = 'Code Coverage Report:';
-
-            $output .= $this->format($colors['header'], $padding, $title);
-            $output .= $this->format($colors['header'], $padding, $date);
-            $output .= $this->format($colors['header'], $padding, '');
-            $output .= $this->format($colors['header'], $padding, ' Summary:');
-        }
-
-        $output .= $this->format($colors['classes'], $padding, $classes);
-        $output .= $this->format($colors['methods'], $padding, $methods);
-        $output .= $this->format($colors['lines'], $padding, $lines);
-
-        if ($this->showOnlySummary) {
-            return $output . PHP_EOL;
-        }
-
-        $classCoverage = array();
-
-        foreach ($report as $item) {
-            if (!$item instanceof PHP_CodeCoverage_Report_Node_File) {
-                continue;
-            }
-
-            $classes  = $item->getClassesAndTraits();
-
-            foreach ($classes as $className => $class) {
-                $classStatements        = 0;
-                $coveredClassStatements = 0;
-                $coveredMethods         = 0;
-                $classMethods           = 0;
-
-                foreach ($class['methods'] as $method) {
-                    if ($method['executableLines'] == 0) {
-                        continue;
-                    }
-
-                    $classMethods++;
-                    $classStatements        += $method['executableLines'];
-                    $coveredClassStatements += $method['executedLines'];
-                    if ($method['coverage'] == 100) {
-                        $coveredMethods++;
-                    }
-                }
-
-                if (!empty($class['package']['namespace'])) {
-                    $namespace = '\\' . $class['package']['namespace'] . '::';
-                } elseif (!empty($class['package']['fullPackage'])) {
-                    $namespace = '@' . $class['package']['fullPackage'] . '::';
-                } else {
-                    $namespace = '';
-                }
-
-                $classCoverage[$namespace . $className] = array(
-                    'namespace'         => $namespace,
-                    'className '        => $className,
-                    'methodsCovered'    => $coveredMethods,
-                    'methodCount'       => $classMethods,
-                    'statementsCovered' => $coveredClassStatements,
-                    'statementCount'    => $classStatements,
-                );
-            }
-        }
-
-        ksort($classCoverage);
-
-        $methodColor = '';
-        $linesColor  = '';
-        $resetColor  = '';
-
-        foreach ($classCoverage as $fullQualifiedPath => $classInfo) {
-            if ($classInfo['statementsCovered'] != 0 ||
-                $this->showUncoveredFiles) {
-                if ($showColors) {
-                    $methodColor = $this->getCoverageColor($classInfo['methodsCovered'], $classInfo['methodCount']);
-                    $linesColor  = $this->getCoverageColor($classInfo['statementsCovered'], $classInfo['statementCount']);
-                    $resetColor  = $colors['reset'];
-                }
-
-                $output .= PHP_EOL . $fullQualifiedPath . PHP_EOL
-                    . '  ' . $methodColor . 'Methods: ' . $this->printCoverageCounts($classInfo['methodsCovered'], $classInfo['methodCount'], 2) . $resetColor . ' '
-                    . '  ' . $linesColor  . 'Lines: ' . $this->printCoverageCounts($classInfo['statementsCovered'], $classInfo['statementCount'], 3) . $resetColor
-                ;
-            }
-        }
-
-        return $output . PHP_EOL;
-    }
-
-    protected function getCoverageColor($numberOfCoveredElements, $totalNumberOfElements)
-    {
-        $coverage = PHP_CodeCoverage_Util::percent(
-            $numberOfCoveredElements,
-            $totalNumberOfElements
-        );
-
-        if ($coverage > $this->highLowerBound) {
-            return $this->colors['green'];
-        } elseif ($coverage > $this->lowUpperBound) {
-            return $this->colors['yellow'];
-        }
-
-        return $this->colors['red'];
-    }
-
-    protected function printCoverageCounts($numberOfCoveredElements, $totalNumberOfElements, $presicion)
-    {
-        $format = '%' . $presicion . 's';
-
-        return PHP_CodeCoverage_Util::percent(
-            $numberOfCoveredElements,
-            $totalNumberOfElements,
-            true,
-            true
-        ) .
-        ' (' . sprintf($format, $numberOfCoveredElements) . '/' .
-        sprintf($format, $totalNumberOfElements) . ')';
-    }
-
-    private function format($color, $padding, $string)
-    {
-        $reset = $color ? $this->colors['reset'] : '';
-
-        return $color . str_pad($string, $padding) . $reset . PHP_EOL;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php
deleted file mode 100644
index 52380e6..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML.php
+++ /dev/null
@@ -1,240 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML
-{
-    /**
-     * @var string
-     */
-    private $target;
-
-    /**
-     * @var PHP_CodeCoverage_Report_XML_Project
-     */
-    private $project;
-
-    public function process(PHP_CodeCoverage $coverage, $target)
-    {
-        if (substr($target, -1, 1) != DIRECTORY_SEPARATOR) {
-            $target .= DIRECTORY_SEPARATOR;
-        }
-
-        $this->target = $target;
-        $this->initTargetDirectory($target);
-
-        $report = $coverage->getReport();
-
-        $this->project = new PHP_CodeCoverage_Report_XML_Project(
-            $coverage->getReport()->getName()
-        );
-
-        $this->processTests($coverage->getTests());
-        $this->processDirectory($report, $this->project);
-
-        $index = $this->project->asDom();
-        $index->formatOutput = true;
-        $index->preserveWhiteSpace = false;
-        $index->save($target . '/index.xml');
-    }
-
-    private function initTargetDirectory($dir)
-    {
-        if (file_exists($dir)) {
-            if (!is_dir($dir)) {
-                throw new PHP_CodeCoverage_Exception(
-                    "'$dir' exists but is not a directory."
-                );
-            }
-
-            if (!is_writable($dir)) {
-                throw new PHP_CodeCoverage_Exception(
-                    "'$dir' exists but is not writable."
-                );
-            }
-        } elseif (!@mkdir($dir, 0777, true)) {
-            throw new PHP_CodeCoverage_Exception(
-                "'$dir' could not be created."
-            );
-        }
-    }
-
-    private function processDirectory(PHP_CodeCoverage_Report_Node_Directory $directory, PHP_CodeCoverage_Report_XML_Node $context)
-    {
-        $dirObject = $context->addDirectory($directory->getName());
-
-        $this->setTotals($directory, $dirObject->getTotals());
-
-        foreach ($directory as $node) {
-            if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) {
-                $this->processDirectory($node, $dirObject);
-                continue;
-            }
-
-            if ($node instanceof PHP_CodeCoverage_Report_Node_File) {
-                $this->processFile($node, $dirObject);
-                continue;
-            }
-
-            throw new PHP_CodeCoverage_Exception(
-                'Unknown node type for XML report'
-            );
-        }
-    }
-
-    private function processFile(PHP_CodeCoverage_Report_Node_File $file, PHP_CodeCoverage_Report_XML_Directory $context)
-    {
-        $fileObject = $context->addFile(
-            $file->getName(),
-            $file->getId() . '.xml'
-        );
-
-        $this->setTotals($file, $fileObject->getTotals());
-
-        $fileReport = new PHP_CodeCoverage_Report_XML_File_Report(
-            $file->getName()
-        );
-
-        $this->setTotals($file, $fileReport->getTotals());
-
-        foreach ($file->getClassesAndTraits() as $unit) {
-            $this->processUnit($unit, $fileReport);
-        }
-
-        foreach ($file->getFunctions() as $function) {
-            $this->processFunction($function, $fileReport);
-        }
-
-        foreach ($file->getCoverageData() as $line => $tests) {
-            if (!is_array($tests) || count($tests) == 0) {
-                continue;
-            }
-
-            $coverage = $fileReport->getLineCoverage($line);
-
-            foreach ($tests as $test) {
-                $coverage->addTest($test);
-            }
-
-            $coverage->finalize();
-        }
-
-        $this->initTargetDirectory(
-            $this->target . dirname($file->getId()) . '/'
-        );
-
-        $fileDom = $fileReport->asDom();
-        $fileDom->formatOutput = true;
-        $fileDom->preserveWhiteSpace = false;
-        $fileDom->save($this->target . $file->getId() . '.xml');
-    }
-
-    private function processUnit($unit, PHP_CodeCoverage_Report_XML_File_Report $report)
-    {
-        if (isset($unit['className'])) {
-            $unitObject = $report->getClassObject($unit['className']);
-        } else {
-            $unitObject = $report->getTraitObject($unit['traitName']);
-        }
-
-        $unitObject->setLines(
-            $unit['startLine'],
-            $unit['executableLines'],
-            $unit['executedLines']
-        );
-
-        $unitObject->setCrap($unit['crap']);
-
-        $unitObject->setPackage(
-            $unit['package']['fullPackage'],
-            $unit['package']['package'],
-            $unit['package']['subpackage'],
-            $unit['package']['category']
-        );
-
-        $unitObject->setNamespace($unit['package']['namespace']);
-
-        foreach ($unit['methods'] as $method) {
-            $methodObject = $unitObject->addMethod($method['methodName']);
-            $methodObject->setSignature($method['signature']);
-            $methodObject->setLines($method['startLine'], $method['endLine']);
-            $methodObject->setCrap($method['crap']);
-            $methodObject->setTotals(
-                $method['executableLines'],
-                $method['executedLines'],
-                $method['coverage']
-            );
-        }
-    }
-
-    private function processFunction($function, PHP_CodeCoverage_Report_XML_File_Report $report)
-    {
-        $functionObject = $report->getFunctionObject($function['functionName']);
-
-        $functionObject->setSignature($function['signature']);
-        $functionObject->setLines($function['startLine']);
-        $functionObject->setCrap($function['crap']);
-        $functionObject->setTotals($function['executableLines'], $function['executedLines'], $function['coverage']);
-    }
-
-    private function processTests(array $tests)
-    {
-        $testsObject = $this->project->getTests();
-
-        foreach ($tests as $test => $result) {
-            if ($test == 'UNCOVERED_FILES_FROM_WHITELIST') {
-                continue;
-            }
-
-            $testsObject->addTest($test, $result);
-        }
-    }
-
-    private function setTotals(PHP_CodeCoverage_Report_Node $node, PHP_CodeCoverage_Report_XML_Totals $totals)
-    {
-        $loc = $node->getLinesOfCode();
-
-        $totals->setNumLines(
-            $loc['loc'],
-            $loc['cloc'],
-            $loc['ncloc'],
-            $node->getNumExecutableLines(),
-            $node->getNumExecutedLines()
-        );
-
-        $totals->setNumClasses(
-            $node->getNumClasses(),
-            $node->getNumTestedClasses()
-        );
-
-        $totals->setNumTraits(
-            $node->getNumTraits(),
-            $node->getNumTestedTraits()
-        );
-
-        $totals->setNumMethods(
-            $node->getNumMethods(),
-            $node->getNumTestedMethods()
-        );
-
-        $totals->setNumFunctions(
-            $node->getNumFunctions(),
-            $node->getNumTestedFunctions()
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php
deleted file mode 100644
index d73d4ce..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Directory.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_Directory extends PHP_CodeCoverage_Report_XML_Node
-{
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php
deleted file mode 100644
index 4ea6a45..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_File
-{
-    /**
-     * @var DOMDocument
-     */
-    protected $dom;
-
-    /**
-     * @var DOMElement
-     */
-    protected $contextNode;
-
-    public function __construct(DOMElement $context)
-    {
-        $this->dom         = $context->ownerDocument;
-        $this->contextNode = $context;
-    }
-
-    public function getTotals()
-    {
-        $totalsContainer = $this->contextNode->firstChild;
-
-        if (!$totalsContainer) {
-            $totalsContainer = $this->contextNode->appendChild(
-                $this->dom->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0',
-                    'totals'
-                )
-            );
-        }
-
-        return new PHP_CodeCoverage_Report_XML_Totals($totalsContainer);
-    }
-
-    public function getLineCoverage($line)
-    {
-        $coverage = $this->contextNode->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'coverage'
-        )->item(0);
-
-        if (!$coverage) {
-            $coverage = $this->contextNode->appendChild(
-                $this->dom->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0',
-                    'coverage'
-                )
-            );
-        }
-
-        $lineNode = $coverage->appendChild(
-            $this->dom->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0',
-                'line'
-            )
-        );
-
-        return new PHP_CodeCoverage_Report_XML_File_Coverage($lineNode, $line);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php
deleted file mode 100644
index 4ce8122..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Coverage.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_File_Coverage
-{
-    /**
-     * @var XMLWriter
-     */
-    private $writer;
-
-    /**
-     * @var DOMElement
-     */
-    private $contextNode;
-
-    /**
-     * @var bool
-     */
-    private $finalized = false;
-
-    public function __construct(DOMElement $context, $line)
-    {
-        $this->contextNode = $context;
-
-        $this->writer = new XMLWriter();
-        $this->writer->openMemory();
-        $this->writer->startElementNs(null, $context->nodeName, 'http://schema.phpunit.de/coverage/1.0');
-        $this->writer->writeAttribute('nr', $line);
-    }
-
-    public function addTest($test)
-    {
-        if ($this->finalized) {
-            throw new PHP_CodeCoverage_Exception('Coverage Report already finalized');
-        }
-
-        $this->writer->startElement('covered');
-        $this->writer->writeAttribute('by', $test);
-        $this->writer->endElement();
-    }
-
-    public function finalize()
-    {
-        $this->writer->endElement();
-
-        $fragment = $this->contextNode->ownerDocument->createDocumentFragment();
-        $fragment->appendXML($this->writer->outputMemory());
-
-        $this->contextNode->parentNode->replaceChild(
-            $fragment,
-            $this->contextNode
-        );
-
-        $this->finalized = true;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php
deleted file mode 100644
index 7d234fa..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Method.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_File_Method
-{
-    /**
-     * @var DOMElement
-     */
-    private $contextNode;
-
-    public function __construct(DOMElement $context, $name)
-    {
-        $this->contextNode = $context;
-
-        $this->setName($name);
-    }
-
-    private function setName($name)
-    {
-        $this->contextNode->setAttribute('name', $name);
-    }
-
-    public function setSignature($signature)
-    {
-        $this->contextNode->setAttribute('signature', $signature);
-    }
-
-    public function setLines($start, $end = null)
-    {
-        $this->contextNode->setAttribute('start', $start);
-
-        if ($end !== null) {
-            $this->contextNode->setAttribute('end', $end);
-        }
-    }
-
-    public function setTotals($executable, $executed, $coverage)
-    {
-        $this->contextNode->setAttribute('executable', $executable);
-        $this->contextNode->setAttribute('executed', $executed);
-        $this->contextNode->setAttribute('coverage', $coverage);
-    }
-
-    public function setCrap($crap)
-    {
-        $this->contextNode->setAttribute('crap', $crap);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php
deleted file mode 100644
index 74c9ccf..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Report.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_File_Report extends PHP_CodeCoverage_Report_XML_File
-{
-    public function __construct($name)
-    {
-        $this->dom = new DOMDocument;
-        $this->dom->loadXML('<?xml version="1.0" ?><phpunit xmlns="http://schema.phpunit.de/coverage/1.0"><file /></phpunit>');
-
-        $this->contextNode = $this->dom->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'file'
-        )->item(0);
-
-        $this->setName($name);
-    }
-
-    private function setName($name)
-    {
-        $this->contextNode->setAttribute('name', $name);
-    }
-
-    public function asDom()
-    {
-        return $this->dom;
-    }
-
-    public function getFunctionObject($name)
-    {
-        $node = $this->contextNode->appendChild(
-            $this->dom->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0',
-                'function'
-            )
-        );
-
-        return new PHP_CodeCoverage_Report_XML_File_Method($node, $name);
-    }
-
-    public function getClassObject($name)
-    {
-        return $this->getUnitObject('class', $name);
-    }
-
-    public function getTraitObject($name)
-    {
-        return $this->getUnitObject('trait', $name);
-    }
-
-    private function getUnitObject($tagName, $name)
-    {
-        $node = $this->contextNode->appendChild(
-            $this->dom->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0',
-                $tagName
-            )
-        );
-
-        return new PHP_CodeCoverage_Report_XML_File_Unit($node, $name);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php
deleted file mode 100644
index 2848ef5..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/File/Unit.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_File_Unit
-{
-    /**
-     * @var DOMElement
-     */
-    private $contextNode;
-
-    public function __construct(DOMElement $context, $name)
-    {
-        $this->contextNode = $context;
-
-        $this->setName($name);
-    }
-
-    private function setName($name)
-    {
-        $this->contextNode->setAttribute('name', $name);
-    }
-
-    public function setLines($start, $executable, $executed)
-    {
-        $this->contextNode->setAttribute('start', $start);
-        $this->contextNode->setAttribute('executable', $executable);
-        $this->contextNode->setAttribute('executed', $executed);
-    }
-
-    public function setCrap($crap)
-    {
-        $this->contextNode->setAttribute('crap', $crap);
-    }
-
-    public function setPackage($full, $package, $sub, $category)
-    {
-        $node = $this->contextNode->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'package'
-        )->item(0);
-
-        if (!$node) {
-            $node = $this->contextNode->appendChild(
-                $this->contextNode->ownerDocument->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0',
-                    'package'
-                )
-            );
-        }
-
-        $node->setAttribute('full', $full);
-        $node->setAttribute('name', $package);
-        $node->setAttribute('sub', $sub);
-        $node->setAttribute('category', $category);
-    }
-
-    public function setNamespace($namespace)
-    {
-        $node = $this->contextNode->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'namespace'
-        )->item(0);
-
-        if (!$node) {
-            $node = $this->contextNode->appendChild(
-                $this->contextNode->ownerDocument->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0',
-                    'namespace'
-                )
-            );
-        }
-
-        $node->setAttribute('name', $namespace);
-    }
-
-    public function addMethod($name)
-    {
-        $node = $this->contextNode->appendChild(
-            $this->contextNode->ownerDocument->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0',
-                'method'
-            )
-        );
-
-        return new PHP_CodeCoverage_Report_XML_File_Method($node, $name);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php
deleted file mode 100644
index 1e8daa5..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Node.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_Node
-{
-    /**
-     * @var DOMDocument
-     */
-    private $dom;
-
-    /**
-     * @var DOMElement
-     */
-    private $contextNode;
-
-    public function __construct(DOMElement $context)
-    {
-        $this->setContextNode($context);
-    }
-
-    protected function setContextNode(DOMElement $context)
-    {
-        $this->dom         = $context->ownerDocument;
-        $this->contextNode = $context;
-    }
-
-    public function getDom()
-    {
-        return $this->dom;
-    }
-
-    protected function getContextNode()
-    {
-        return $this->contextNode;
-    }
-
-    public function getTotals()
-    {
-        $totalsContainer = $this->getContextNode()->firstChild;
-
-        if (!$totalsContainer) {
-            $totalsContainer = $this->getContextNode()->appendChild(
-                $this->dom->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0',
-                    'totals'
-                )
-            );
-        }
-
-        return new PHP_CodeCoverage_Report_XML_Totals($totalsContainer);
-    }
-
-    public function addDirectory($name)
-    {
-        $dirNode = $this->getDom()->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'directory'
-        );
-
-        $dirNode->setAttribute('name', $name);
-        $this->getContextNode()->appendChild($dirNode);
-
-        return new PHP_CodeCoverage_Report_XML_Directory($dirNode);
-    }
-
-    public function addFile($name, $href)
-    {
-        $fileNode = $this->getDom()->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'file'
-        );
-
-        $fileNode->setAttribute('name', $name);
-        $fileNode->setAttribute('href', $href);
-        $this->getContextNode()->appendChild($fileNode);
-
-        return new PHP_CodeCoverage_Report_XML_File($fileNode);
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php
deleted file mode 100644
index e7ae225..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Project.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_Project extends PHP_CodeCoverage_Report_XML_Node
-{
-    public function __construct($name)
-    {
-        $this->init();
-        $this->setProjectName($name);
-    }
-
-    private function init()
-    {
-        $dom = new DOMDocument;
-        $dom->loadXML('<?xml version="1.0" ?><phpunit xmlns="http://schema.phpunit.de/coverage/1.0"><project/></phpunit>');
-
-        $this->setContextNode(
-            $dom->getElementsByTagNameNS(
-                'http://schema.phpunit.de/coverage/1.0',
-                'project'
-            )->item(0)
-        );
-    }
-
-    private function setProjectName($name)
-    {
-        $this->getContextNode()->setAttribute('name', $name);
-    }
-
-    public function getTests()
-    {
-        $testsNode = $this->getContextNode()->getElementsByTagNameNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'tests'
-        )->item(0);
-
-        if (!$testsNode) {
-            $testsNode = $this->getContextNode()->appendChild(
-                $this->getDom()->createElementNS(
-                    'http://schema.phpunit.de/coverage/1.0',
-                    'tests'
-                )
-            );
-        }
-
-        return new PHP_CodeCoverage_Report_XML_Tests($testsNode);
-    }
-
-    public function asDom()
-    {
-        return $this->getDom();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php
deleted file mode 100644
index c689bc1..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Tests.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_Tests
-{
-    private $contextNode;
-
-    private $codeMap = array(
-        0 => 'PASSED',     // PHPUnit_Runner_BaseTestRunner::STATUS_PASSED
-        1 => 'SKIPPED',    // PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED
-        2 => 'INCOMPLETE', // PHPUnit_Runner_BaseTestRunner::STATUS_INCOMPLETE
-        3 => 'FAILURE',    // PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE
-        4 => 'ERROR',      // PHPUnit_Runner_BaseTestRunner::STATUS_ERROR
-        5 => 'RISKY'       // PHPUnit_Runner_BaseTestRunner::STATUS_RISKY
-    );
-
-    public function __construct(DOMElement $context)
-    {
-        $this->contextNode = $context;
-    }
-
-    public function addTest($test, $result)
-    {
-        $node = $this->contextNode->appendChild(
-            $this->contextNode->ownerDocument->createElementNS(
-                'http://schema.phpunit.de/coverage/1.0',
-                'test'
-            )
-        );
-        $node->setAttribute('name', $test);
-        $node->setAttribute('result', (int) $result);
-        $node->setAttribute('status', $this->codeMap[(int) $result]);
-
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php
deleted file mode 100644
index fdc84ca..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/XML/Totals.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @category   PHP
- * @package    CodeCoverage
- * @author     Arne Blankerts <arne@blankerts.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 2.0.0
- */
-class PHP_CodeCoverage_Report_XML_Totals
-{
-    /**
-     * @var DOMNode
-     */
-    private $container;
-
-    /**
-     * @var DOMElement
-     */
-    private $linesNode;
-
-    /**
-     * @var DOMElement
-     */
-    private $methodsNode;
-
-    /**
-     * @var DOMElement
-     */
-    private $functionsNode;
-
-    /**
-     * @var DOMElement
-     */
-    private $classesNode;
-
-    /**
-     * @var DOMElement
-     */
-    private $traitsNode;
-
-    public function __construct(DOMElement $container)
-    {
-        $this->container = $container;
-        $dom             = $container->ownerDocument;
-
-        $this->linesNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'lines'
-        )
-        ;
-
-        $this->methodsNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'methods'
-        );
-
-        $this->functionsNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'functions'
-        );
-
-        $this->classesNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'classes'
-        );
-
-        $this->traitsNode = $dom->createElementNS(
-            'http://schema.phpunit.de/coverage/1.0',
-            'traits'
-        );
-
-        $container->appendChild($this->linesNode);
-        $container->appendChild($this->methodsNode);
-        $container->appendChild($this->functionsNode);
-        $container->appendChild($this->classesNode);
-        $container->appendChild($this->traitsNode);
-    }
-
-    public function getContainer()
-    {
-        return $this->container;
-    }
-
-    public function setNumLines($loc, $cloc, $ncloc, $executable, $executed)
-    {
-        $this->linesNode->setAttribute('total', $loc);
-        $this->linesNode->setAttribute('comments', $cloc);
-        $this->linesNode->setAttribute('code', $ncloc);
-        $this->linesNode->setAttribute('executable', $executable);
-        $this->linesNode->setAttribute('executed', $executed);
-        $this->linesNode->setAttribute(
-            'percent',
-            PHP_CodeCoverage_Util::percent($executed, $executable, true)
-        );
-    }
-
-    public function setNumClasses($count, $tested)
-    {
-        $this->classesNode->setAttribute('count', $count);
-        $this->classesNode->setAttribute('tested', $tested);
-        $this->classesNode->setAttribute(
-            'percent',
-            PHP_CodeCoverage_Util::percent($tested, $count, true)
-        );
-    }
-
-    public function setNumTraits($count, $tested)
-    {
-        $this->traitsNode->setAttribute('count', $count);
-        $this->traitsNode->setAttribute('tested', $tested);
-        $this->traitsNode->setAttribute(
-            'percent',
-            PHP_CodeCoverage_Util::percent($tested, $count, true)
-        );
-    }
-
-    public function setNumMethods($count, $tested)
-    {
-        $this->methodsNode->setAttribute('count', $count);
-        $this->methodsNode->setAttribute('tested', $tested);
-        $this->methodsNode->setAttribute(
-            'percent',
-            PHP_CodeCoverage_Util::percent($tested, $count, true)
-        );
-    }
-
-    public function setNumFunctions($count, $tested)
-    {
-        $this->functionsNode->setAttribute('count', $count);
-        $this->functionsNode->setAttribute('tested', $tested);
-        $this->functionsNode->setAttribute(
-            'percent',
-            PHP_CodeCoverage_Util::percent($tested, $count, true)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php
deleted file mode 100644
index 2d5a8fa..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility methods.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_Util
-{
-    /**
-     * @param  float $a
-     * @param  float $b
-     * @return float ($a / $b) * 100
-     */
-    public static function percent($a, $b, $asString = false, $fixedWidth = false)
-    {
-        if ($asString && $b == 0) {
-            return '';
-        }
-
-        if ($b > 0) {
-            $percent = ($a / $b) * 100;
-        } else {
-            $percent = 100;
-        }
-
-        if ($asString) {
-            if ($fixedWidth) {
-                return sprintf('%6.2F%%', $percent);
-            }
-
-            return sprintf('%01.2F%%', $percent);
-        } else {
-            return $percent;
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php b/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php
deleted file mode 100644
index 5fba9ca..0000000
--- a/core/vendor/phpunit/php-code-coverage/src/CodeCoverage/Util/InvalidArgumentHelper.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Factory for PHP_CodeCoverage_Exception objects that are used to describe
- * invalid arguments passed to a function or method.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.2.0
- */
-class PHP_CodeCoverage_Util_InvalidArgumentHelper
-{
-    /**
-     * @param integer $argument
-     * @param string  $type
-     * @param mixed   $value
-     */
-    public static function factory($argument, $type, $value = null)
-    {
-        $stack = debug_backtrace(false);
-
-        return new PHP_CodeCoverage_Exception(
-            sprintf(
-                'Argument #%d%sof %s::%s() must be a %s',
-                $argument,
-                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
-                $stack[1]['class'],
-                $stack[1]['function'],
-                $type
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php
deleted file mode 100644
index 894cb18..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/FilterTest.php
+++ /dev/null
@@ -1,284 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!defined('TEST_FILES_PATH')) {
-    define(
-      'TEST_FILES_PATH',
-      dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR .
-      '_files' . DIRECTORY_SEPARATOR
-    );
-}
-
-/**
- * Tests for the PHP_CodeCoverage_Filter class.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_FilterTest extends PHPUnit_Framework_TestCase
-{
-    protected $filter;
-    protected $files;
-
-    protected function setUp()
-    {
-        $this->filter = unserialize('O:23:"PHP_CodeCoverage_Filter":0:{}');
-
-        $this->files = array(
-          TEST_FILES_PATH . 'BankAccount.php',
-          TEST_FILES_PATH . 'BankAccountTest.php',
-          TEST_FILES_PATH . 'CoverageClassExtendedTest.php',
-          TEST_FILES_PATH . 'CoverageClassTest.php',
-          TEST_FILES_PATH . 'CoverageFunctionParenthesesTest.php',
-          TEST_FILES_PATH . 'CoverageFunctionParenthesesWhitespaceTest.php',
-          TEST_FILES_PATH . 'CoverageFunctionTest.php',
-          TEST_FILES_PATH . 'CoverageMethodOneLineAnnotationTest.php',
-          TEST_FILES_PATH . 'CoverageMethodParenthesesTest.php',
-          TEST_FILES_PATH . 'CoverageMethodParenthesesWhitespaceTest.php',
-          TEST_FILES_PATH . 'CoverageMethodTest.php',
-          TEST_FILES_PATH . 'CoverageNoneTest.php',
-          TEST_FILES_PATH . 'CoverageNotPrivateTest.php',
-          TEST_FILES_PATH . 'CoverageNotProtectedTest.php',
-          TEST_FILES_PATH . 'CoverageNotPublicTest.php',
-          TEST_FILES_PATH . 'CoverageNothingTest.php',
-          TEST_FILES_PATH . 'CoveragePrivateTest.php',
-          TEST_FILES_PATH . 'CoverageProtectedTest.php',
-          TEST_FILES_PATH . 'CoveragePublicTest.php',
-          TEST_FILES_PATH . 'CoverageTwoDefaultClassAnnotations.php',
-          TEST_FILES_PATH . 'CoveredClass.php',
-          TEST_FILES_PATH . 'CoveredFunction.php',
-          TEST_FILES_PATH . 'NamespaceCoverageClassExtendedTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageClassTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageCoversClassPublicTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageCoversClassTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageMethodTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageNotPrivateTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageNotProtectedTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageNotPublicTest.php',
-          TEST_FILES_PATH . 'NamespaceCoveragePrivateTest.php',
-          TEST_FILES_PATH . 'NamespaceCoverageProtectedTest.php',
-          TEST_FILES_PATH . 'NamespaceCoveragePublicTest.php',
-          TEST_FILES_PATH . 'NamespaceCoveredClass.php',
-          TEST_FILES_PATH . 'NotExistingCoveredElementTest.php',
-          TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php',
-          TEST_FILES_PATH . 'source_with_ignore.php',
-          TEST_FILES_PATH . 'source_with_namespace.php',
-          TEST_FILES_PATH . 'source_with_oneline_annotations.php',
-          TEST_FILES_PATH . 'source_without_ignore.php',
-          TEST_FILES_PATH . 'source_without_namespace.php'
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::addFileToBlacklist
-     * @covers PHP_CodeCoverage_Filter::getBlacklist
-     */
-    public function testAddingAFileToTheBlacklistWorks()
-    {
-        $this->filter->addFileToBlacklist($this->files[0]);
-
-        $this->assertEquals(
-          array($this->files[0]), $this->filter->getBlacklist()
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::removeFileFromBlacklist
-     * @covers PHP_CodeCoverage_Filter::getBlacklist
-     */
-    public function testRemovingAFileFromTheBlacklistWorks()
-    {
-        $this->filter->addFileToBlacklist($this->files[0]);
-        $this->filter->removeFileFromBlacklist($this->files[0]);
-
-        $this->assertEquals(array(), $this->filter->getBlacklist());
-    }
-
-    /**
-     * @covers  PHP_CodeCoverage_Filter::addDirectoryToBlacklist
-     * @covers  PHP_CodeCoverage_Filter::getBlacklist
-     * @depends testAddingAFileToTheBlacklistWorks
-     */
-    public function testAddingADirectoryToTheBlacklistWorks()
-    {
-        $this->filter->addDirectoryToBlacklist(TEST_FILES_PATH);
-
-        $blacklist = $this->filter->getBlacklist();
-        sort($blacklist);
-
-        $this->assertEquals($this->files, $blacklist);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::addFilesToBlacklist
-     * @covers PHP_CodeCoverage_Filter::getBlacklist
-     */
-    public function testAddingFilesToTheBlacklistWorks()
-    {
-        $facade = new File_Iterator_Facade;
-        $files  = $facade->getFilesAsArray(
-          TEST_FILES_PATH, $suffixes = '.php'
-        );
-
-        $this->filter->addFilesToBlacklist($files);
-
-        $blacklist = $this->filter->getBlacklist();
-        sort($blacklist);
-
-        $this->assertEquals($this->files, $blacklist);
-    }
-
-    /**
-     * @covers  PHP_CodeCoverage_Filter::removeDirectoryFromBlacklist
-     * @covers  PHP_CodeCoverage_Filter::getBlacklist
-     * @depends testAddingADirectoryToTheBlacklistWorks
-     */
-    public function testRemovingADirectoryFromTheBlacklistWorks()
-    {
-        $this->filter->addDirectoryToBlacklist(TEST_FILES_PATH);
-        $this->filter->removeDirectoryFromBlacklist(TEST_FILES_PATH);
-
-        $this->assertEquals(array(), $this->filter->getBlacklist());
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::addFileToWhitelist
-     * @covers PHP_CodeCoverage_Filter::getWhitelist
-     */
-    public function testAddingAFileToTheWhitelistWorks()
-    {
-        $this->filter->addFileToWhitelist($this->files[0]);
-
-        $this->assertEquals(
-          array($this->files[0]), $this->filter->getWhitelist()
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::removeFileFromWhitelist
-     * @covers PHP_CodeCoverage_Filter::getWhitelist
-     */
-    public function testRemovingAFileFromTheWhitelistWorks()
-    {
-        $this->filter->addFileToWhitelist($this->files[0]);
-        $this->filter->removeFileFromWhitelist($this->files[0]);
-
-        $this->assertEquals(array(), $this->filter->getWhitelist());
-    }
-
-    /**
-     * @covers  PHP_CodeCoverage_Filter::addDirectoryToWhitelist
-     * @covers  PHP_CodeCoverage_Filter::getWhitelist
-     * @depends testAddingAFileToTheWhitelistWorks
-     */
-    public function testAddingADirectoryToTheWhitelistWorks()
-    {
-        $this->filter->addDirectoryToWhitelist(TEST_FILES_PATH);
-
-        $whitelist = $this->filter->getWhitelist();
-        sort($whitelist);
-
-        $this->assertEquals($this->files, $whitelist);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::addFilesToWhitelist
-     * @covers PHP_CodeCoverage_Filter::getBlacklist
-     */
-    public function testAddingFilesToTheWhitelistWorks()
-    {
-        $facade = new File_Iterator_Facade;
-        $files  = $facade->getFilesAsArray(
-          TEST_FILES_PATH, $suffixes = '.php'
-        );
-
-        $this->filter->addFilesToWhitelist($files);
-
-        $whitelist = $this->filter->getWhitelist();
-        sort($whitelist);
-
-        $this->assertEquals($this->files, $whitelist);
-    }
-
-    /**
-     * @covers  PHP_CodeCoverage_Filter::removeDirectoryFromWhitelist
-     * @covers  PHP_CodeCoverage_Filter::getWhitelist
-     * @depends testAddingADirectoryToTheWhitelistWorks
-     */
-    public function testRemovingADirectoryFromTheWhitelistWorks()
-    {
-        $this->filter->addDirectoryToWhitelist(TEST_FILES_PATH);
-        $this->filter->removeDirectoryFromWhitelist(TEST_FILES_PATH);
-
-        $this->assertEquals(array(), $this->filter->getWhitelist());
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::isFile
-     */
-    public function testIsFile()
-    {
-        $this->assertFalse($this->filter->isFile('vfs://root/a/path'));
-        $this->assertFalse($this->filter->isFile('xdebug://debug-eval'));
-        $this->assertFalse($this->filter->isFile('eval()\'d code'));
-        $this->assertFalse($this->filter->isFile('runtime-created function'));
-        $this->assertFalse($this->filter->isFile('assert code'));
-        $this->assertFalse($this->filter->isFile('regexp code'));
-        $this->assertTrue($this->filter->isFile(__FILE__));
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::isFiltered
-     */
-    public function testBlacklistedFileIsFiltered()
-    {
-        $this->filter->addFileToBlacklist($this->files[0]);
-        $this->assertTrue($this->filter->isFiltered($this->files[0]));
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::isFiltered
-     */
-    public function testWhitelistedFileIsNotFiltered()
-    {
-        $this->filter->addFileToWhitelist($this->files[0]);
-        $this->assertFalse($this->filter->isFiltered($this->files[0]));
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::isFiltered
-     */
-    public function testNotWhitelistedFileIsFiltered()
-    {
-        $this->filter->addFileToWhitelist($this->files[0]);
-        $this->assertTrue($this->filter->isFiltered($this->files[1]));
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Filter::isFiltered
-     * @covers PHP_CodeCoverage_Filter::isFile
-     */
-    public function testNonFilesAreFiltered()
-    {
-        $this->assertTrue($this->filter->isFiltered('vfs://root/a/path'));
-        $this->assertTrue($this->filter->isFiltered('xdebug://debug-eval'));
-        $this->assertTrue($this->filter->isFiltered('eval()\'d code'));
-        $this->assertTrue($this->filter->isFiltered('runtime-created function'));
-        $this->assertTrue($this->filter->isFiltered('assert code'));
-        $this->assertTrue($this->filter->isFiltered('regexp code'));
-        $this->assertFalse($this->filter->isFiltered(__FILE__));
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php
deleted file mode 100644
index a850bb5..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/CloverTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!defined('TEST_FILES_PATH')) {
-    define(
-      'TEST_FILES_PATH',
-      dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR .
-      '_files' . DIRECTORY_SEPARATOR
-    );
-}
-
-require_once TEST_FILES_PATH . '../TestCase.php';
-
-/**
- * Tests for the PHP_CodeCoverage_Report_Clover class.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_Report_CloverTest extends PHP_CodeCoverage_TestCase
-{
-    /**
-     * @covers PHP_CodeCoverage_Report_Clover
-     */
-    public function testCloverForBankAccountTest()
-    {
-        $clover = new PHP_CodeCoverage_Report_Clover;
-
-        $this->assertStringMatchesFormatFile(
-          TEST_FILES_PATH . 'BankAccount-clover.xml',
-          $clover->process($this->getCoverageForBankAccount(), null, 'BankAccount')
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Report_Clover
-     */
-    public function testCloverForFileWithIgnoredLines()
-    {
-        $clover = new PHP_CodeCoverage_Report_Clover;
-
-        $this->assertStringMatchesFormatFile(
-          TEST_FILES_PATH . 'ignored-lines-clover.xml',
-          $clover->process($this->getCoverageForFileWithIgnoredLines())
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Report_Clover
-     */
-    public function testCloverForClassWithAnonymousFunction()
-    {
-        $clover = new PHP_CodeCoverage_Report_Clover;
-
-        $this->assertStringMatchesFormatFile(
-          TEST_FILES_PATH . 'class-with-anonymous-function-clover.xml',
-          $clover->process($this->getCoverageForClassWithAnonymousFunction())
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php
deleted file mode 100644
index b08b7a8..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/Report/FactoryTest.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!defined('TEST_FILES_PATH')) {
-    define(
-      'TEST_FILES_PATH',
-      dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR .
-      '_files' . DIRECTORY_SEPARATOR
-    );
-}
-
-require_once TEST_FILES_PATH . '../TestCase.php';
-
-/**
- * Tests for the PHP_CodeCoverage_Report_Factory class.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.1.0
- */
-class PHP_CodeCoverage_Report_FactoryTest extends PHP_CodeCoverage_TestCase
-{
-    protected $factory;
-
-    protected function setUp()
-    {
-        $this->factory = new PHP_CodeCoverage_Report_Factory;
-    }
-
-    public function testSomething()
-    {
-        $root = $this->getCoverageForBankAccount()->getReport();
-
-        $expectedPath = rtrim(TEST_FILES_PATH, DIRECTORY_SEPARATOR);
-        $this->assertEquals($expectedPath, $root->getName());
-        $this->assertEquals($expectedPath, $root->getPath());
-        $this->assertEquals(10, $root->getNumExecutableLines());
-        $this->assertEquals(5, $root->getNumExecutedLines());
-        $this->assertEquals(1, $root->getNumClasses());
-        $this->assertEquals(0, $root->getNumTestedClasses());
-        $this->assertEquals(4, $root->getNumMethods());
-        $this->assertEquals(3, $root->getNumTestedMethods());
-        $this->assertEquals('0.00%', $root->getTestedClassesPercent());
-        $this->assertEquals('75.00%', $root->getTestedMethodsPercent());
-        $this->assertEquals('50.00%', $root->getLineExecutedPercent());
-        $this->assertEquals(0, $root->getNumFunctions());
-        $this->assertEquals(0, $root->getNumTestedFunctions());
-        $this->assertNull($root->getParent());
-        $this->assertEquals(array(), $root->getDirectories());
-        #$this->assertEquals(array(), $root->getFiles());
-        #$this->assertEquals(array(), $root->getChildNodes());
-
-        $this->assertEquals(
-          array(
-            'BankAccount' => array(
-              'methods' => array(
-                'getBalance' => array(
-                  'signature' => 'getBalance()',
-                  'startLine' => 6,
-                  'endLine' => 9,
-                  'executableLines' => 1,
-                  'executedLines' => 1,
-                  'ccn' => 1,
-                  'coverage' => 100,
-                  'crap' => '1',
-                  'link' => 'BankAccount.php.html#6',
-                  'methodName' => 'getBalance'
-                ),
-                'setBalance' => array(
-                  'signature' => 'setBalance($balance)',
-                  'startLine' => 11,
-                  'endLine' => 18,
-                  'executableLines' => 5,
-                  'executedLines' => 0,
-                  'ccn' => 2,
-                  'coverage' => 0,
-                  'crap' => 6,
-                  'link' => 'BankAccount.php.html#11',
-                  'methodName' => 'setBalance'
-                ),
-                'depositMoney' => array(
-                  'signature' => 'depositMoney($balance)',
-                  'startLine' => 20,
-                  'endLine' => 25,
-                  'executableLines' => 2,
-                  'executedLines' => 2,
-                  'ccn' => 1,
-                  'coverage' => 100,
-                  'crap' => '1',
-                  'link' => 'BankAccount.php.html#20',
-                  'methodName' => 'depositMoney'
-                ),
-                'withdrawMoney' => array(
-                  'signature' => 'withdrawMoney($balance)',
-                  'startLine' => 27,
-                  'endLine' => 32,
-                  'executableLines' => 2,
-                  'executedLines' => 2,
-                  'ccn' => 1,
-                  'coverage' => 100,
-                  'crap' => '1',
-                  'link' => 'BankAccount.php.html#27',
-                  'methodName' => 'withdrawMoney'
-                ),
-              ),
-              'startLine' => 2,
-              'executableLines' => 10,
-              'executedLines' => 5,
-              'ccn' => 5,
-              'coverage' => 50,
-              'crap' => '8.12',
-              'package' => array(
-                'namespace' => '',
-                'fullPackage' => '',
-                'category' => '',
-                'package' => '',
-                'subpackage' => ''
-              ),
-              'link' => 'BankAccount.php.html#2',
-              'className' => 'BankAccount'
-            )
-          ),
-          $root->getClasses()
-        );
-
-        $this->assertEquals(array(), $root->getFunctions());
-    }
-
-    /**
-     * @covers PHP_CodeCoverage_Report_Factory::buildDirectoryStructure
-     */
-    public function testBuildDirectoryStructure()
-    {
-        $method = new ReflectionMethod(
-          'PHP_CodeCoverage_Report_Factory', 'buildDirectoryStructure'
-        );
-
-        $method->setAccessible(true);
-
-        $this->assertEquals(
-          array(
-            'src' => array(
-              'Money.php/f' => array(),
-              'MoneyBag.php/f' => array()
-            )
-          ),
-          $method->invoke(
-            $this->factory,
-            array('src/Money.php' => array(), 'src/MoneyBag.php' => array())
-          )
-        );
-    }
-
-    /**
-     * @covers       PHP_CodeCoverage_Report_Factory::reducePaths
-     * @dataProvider reducePathsProvider
-     */
-    public function testReducePaths($reducedPaths, $commonPath, $paths)
-    {
-        $method = new ReflectionMethod(
-          'PHP_CodeCoverage_Report_Factory', 'reducePaths'
-        );
-
-        $method->setAccessible(true);
-
-        $_commonPath = $method->invokeArgs($this->factory, array(&$paths));
-
-        $this->assertEquals($reducedPaths, $paths);
-        $this->assertEquals($commonPath, $_commonPath);
-    }
-
-    public function reducePathsProvider()
-    {
-        return array(
-          array(
-            array(
-              'Money.php' => array(),
-              'MoneyBag.php' => array()
-            ),
-            '/home/sb/Money',
-            array(
-              '/home/sb/Money/Money.php' => array(),
-              '/home/sb/Money/MoneyBag.php' => array()
-            )
-          ),
-          array(
-            array(
-              'Money.php' => array()
-            ),
-            '/home/sb/Money/',
-            array(
-              '/home/sb/Money/Money.php' => array()
-            )
-          ),
-          array(
-            array(),
-            '.',
-            array()
-          ),
-          array(
-            array(
-              'Money.php' => array(),
-              'MoneyBag.php' => array(),
-              'Cash.phar/Cash.php' => array(),
-            ),
-            '/home/sb/Money',
-            array(
-              '/home/sb/Money/Money.php' => array(),
-              '/home/sb/Money/MoneyBag.php' => array(),
-              'phar:///home/sb/Money/Cash.phar/Cash.php' => array(),
-            ),
-          ),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php
deleted file mode 100644
index 82ab770..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverage/UtilTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_CodeCoverage_Util class.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverage_UtilTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHP_CodeCoverage_Util::percent
-     */
-    public function testPercent()
-    {
-        $this->assertEquals(100, PHP_CodeCoverage_Util::percent(100, 0));
-        $this->assertEquals(100, PHP_CodeCoverage_Util::percent(100, 100));
-        $this->assertEquals(
-          '100.00%', PHP_CodeCoverage_Util::percent(100, 100, true)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php b/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php
deleted file mode 100644
index b5f012e..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php
+++ /dev/null
@@ -1,449 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!defined('TEST_FILES_PATH')) {
-    define(
-      'TEST_FILES_PATH',
-      dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
-      '_files' . DIRECTORY_SEPARATOR
-    );
-}
-
-require_once TEST_FILES_PATH . '../TestCase.php';
-require_once TEST_FILES_PATH . 'BankAccount.php';
-require_once TEST_FILES_PATH . 'BankAccountTest.php';
-
-/**
- * Tests for the PHP_CodeCoverage class.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-class PHP_CodeCoverageTest extends PHP_CodeCoverage_TestCase
-{
-    private $coverage;
-
-    protected function setUp()
-    {
-        $this->coverage = new PHP_CodeCoverage;
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::__construct
-     * @covers PHP_CodeCoverage::filter
-     */
-    public function testConstructor()
-    {
-        $this->assertAttributeInstanceOf(
-          'PHP_CodeCoverage_Driver_Xdebug', 'driver', $this->coverage
-        );
-
-        $this->assertAttributeInstanceOf(
-          'PHP_CodeCoverage_Filter', 'filter', $this->coverage
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::__construct
-     * @covers PHP_CodeCoverage::filter
-     */
-    public function testConstructor2()
-    {
-        $filter   = new PHP_CodeCoverage_Filter;
-        $coverage = new PHP_CodeCoverage(null, $filter);
-
-        $this->assertAttributeInstanceOf(
-          'PHP_CodeCoverage_Driver_Xdebug', 'driver', $coverage
-        );
-
-        $this->assertSame($filter, $coverage->filter());
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::start
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testStartThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->start(null, array(), null);
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::stop
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testStopThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->stop(null);
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::stop
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testStopThrowsExceptionForInvalidArgument2()
-    {
-        $this->coverage->stop(true, null);
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::append
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testAppendThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->append(array(), null);
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::setCacheTokens
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testSetCacheTokensThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->setCacheTokens(null);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::setCacheTokens
-     */
-    public function testSetCacheTokens()
-    {
-        $this->coverage->setCacheTokens(true);
-        $this->assertAttributeEquals(true, 'cacheTokens', $this->coverage);
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::setCheckForUnintentionallyCoveredCode
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testSetCheckForUnintentionallyCoveredCodeThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->setCheckForUnintentionallyCoveredCode(null);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::setCheckForUnintentionallyCoveredCode
-     */
-    public function testSetCheckForUnintentionallyCoveredCode()
-    {
-        $this->coverage->setCheckForUnintentionallyCoveredCode(true);
-        $this->assertAttributeEquals(
-          true, 'checkForUnintentionallyCoveredCode', $this->coverage
-        );
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::setForceCoversAnnotation
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testSetForceCoversAnnotationThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->setForceCoversAnnotation(null);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::setForceCoversAnnotation
-     */
-    public function testSetForceCoversAnnotation()
-    {
-        $this->coverage->setForceCoversAnnotation(true);
-        $this->assertAttributeEquals(
-          true, 'forceCoversAnnotation', $this->coverage
-        );
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::setAddUncoveredFilesFromWhitelist
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testSetAddUncoveredFilesFromWhitelistThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->setAddUncoveredFilesFromWhitelist(null);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::setAddUncoveredFilesFromWhitelist
-     */
-    public function testSetAddUncoveredFilesFromWhitelist()
-    {
-        $this->coverage->setAddUncoveredFilesFromWhitelist(true);
-        $this->assertAttributeEquals(
-          true, 'addUncoveredFilesFromWhitelist', $this->coverage
-        );
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::setProcessUncoveredFilesFromWhitelist
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testSetProcessUncoveredFilesFromWhitelistThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->setProcessUncoveredFilesFromWhitelist(null);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::setProcessUncoveredFilesFromWhitelist
-     */
-    public function testSetProcessUncoveredFilesFromWhitelist()
-    {
-        $this->coverage->setProcessUncoveredFilesFromWhitelist(true);
-        $this->assertAttributeEquals(
-          true, 'processUncoveredFilesFromWhitelist', $this->coverage
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::setMapTestClassNameToCoveredClassName
-     */
-    public function testSetMapTestClassNameToCoveredClassName()
-    {
-        $this->coverage->setMapTestClassNameToCoveredClassName(true);
-        $this->assertAttributeEquals(
-          true, 'mapTestClassNameToCoveredClassName', $this->coverage
-        );
-    }
-
-    /**
-     * @covers            PHP_CodeCoverage::setMapTestClassNameToCoveredClassName
-     * @expectedException PHP_CodeCoverage_Exception
-     */
-    public function testSetMapTestClassNameToCoveredClassNameThrowsExceptionForInvalidArgument()
-    {
-        $this->coverage->setMapTestClassNameToCoveredClassName(null);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::clear
-     */
-    public function testClear()
-    {
-        $this->coverage->clear();
-
-        $this->assertAttributeEquals(null, 'currentId', $this->coverage);
-        $this->assertAttributeEquals(array(), 'data', $this->coverage);
-        $this->assertAttributeEquals(array(), 'tests', $this->coverage);
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::start
-     * @covers PHP_CodeCoverage::stop
-     * @covers PHP_CodeCoverage::append
-     * @covers PHP_CodeCoverage::applyListsFilter
-     * @covers PHP_CodeCoverage::initializeFilesThatAreSeenTheFirstTime
-     * @covers PHP_CodeCoverage::applyCoversAnnotationFilter
-     * @covers PHP_CodeCoverage::getTests
-     */
-    public function testCollect()
-    {
-        $coverage = $this->getCoverageForBankAccount();
-
-        $this->assertEquals(
-          $this->getExpectedDataArrayForBankAccount(), $coverage->getData()
-        );
-
-        $this->assertEquals(
-          array(
-            'BankAccountTest::testBalanceIsInitiallyZero' => null,
-            'BankAccountTest::testBalanceCannotBecomeNegative' => null,
-            'BankAccountTest::testBalanceCannotBecomeNegative2' => null,
-            'BankAccountTest::testDepositWithdrawMoney' => null
-          ),
-          $coverage->getTests()
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::getData
-     * @covers PHP_CodeCoverage::merge
-     */
-    public function testMerge()
-    {
-        $coverage = $this->getCoverageForBankAccountForFirstTwoTests();
-        $coverage->merge($this->getCoverageForBankAccountForLastTwoTests());
-
-        $this->assertEquals(
-          $this->getExpectedDataArrayForBankAccount(), $coverage->getData()
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::getData
-     * @covers PHP_CodeCoverage::merge
-     */
-    public function testMerge2()
-    {
-        $coverage = new PHP_CodeCoverage(
-          $this->getMock('PHP_CodeCoverage_Driver_Xdebug'),
-          new PHP_CodeCoverage_Filter
-        );
-
-        $coverage->merge($this->getCoverageForBankAccount());
-
-        $this->assertEquals(
-          $this->getExpectedDataArrayForBankAccount(), $coverage->getData()
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::getLinesToBeIgnored
-     */
-    public function testGetLinesToBeIgnored()
-    {
-        $this->assertEquals(
-          array(
-             1,
-             3,
-             4,
-             5,
-             7,
-             8,
-             9,
-            10,
-            11,
-            12,
-            13,
-            14,
-            15,
-            16,
-            17,
-            18,
-            19,
-            20,
-            21,
-            22,
-            23,
-            24,
-            25,
-            26,
-            27,
-            28,
-            30,
-            32,
-            33,
-            34,
-            35,
-            36,
-            37,
-            38
-          ),
-          $this->getLinesToBeIgnored()->invoke(
-            $this->coverage,
-            TEST_FILES_PATH . 'source_with_ignore.php'
-          )
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::getLinesToBeIgnored
-     */
-    public function testGetLinesToBeIgnored2()
-    {
-        $this->assertEquals(
-          array(1, 5),
-          $this->getLinesToBeIgnored()->invoke(
-            $this->coverage,
-            TEST_FILES_PATH . 'source_without_ignore.php'
-          )
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::getLinesToBeIgnored
-     */
-    public function testGetLinesToBeIgnored3()
-    {
-        $this->assertEquals(
-          array(
-            1,
-            2,
-            3,
-            4,
-            5,
-            8,
-            11,
-            15,
-            16,
-            19,
-            20
-          ),
-          $this->getLinesToBeIgnored()->invoke(
-            $this->coverage,
-            TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php'
-          )
-        );
-    }
-
-    /**
-     * @covers PHP_CodeCoverage::getLinesToBeIgnored
-     */
-    public function testGetLinesToBeIgnoredOneLineAnnotations()
-    {
-        $this->assertEquals(
-          array(
-            1,
-            2,
-            3,
-            4,
-            5,
-            6,
-            7,
-            8,
-            9,
-            10,
-            11,
-            12,
-            13,
-            14,
-            15,
-            16,
-            18,
-            20,
-            21,
-            23,
-            24,
-            25,
-            27,
-            28,
-            29,
-            30,
-            31,
-            32,
-            33,
-            34,
-            37
-          ),
-          $this->getLinesToBeIgnored()->invoke(
-            $this->coverage,
-            TEST_FILES_PATH . 'source_with_oneline_annotations.php'
-          )
-        );
-    }
-
-    /**
-     * @return ReflectionMethod
-     */
-    private function getLinesToBeIgnored()
-    {
-        $getLinesToBeIgnored = new ReflectionMethod(
-            'PHP_CodeCoverage', 'getLinesToBeIgnored'
-        );
-
-        $getLinesToBeIgnored->setAccessible(true);
-
-        return $getLinesToBeIgnored;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/TestCase.php b/core/vendor/phpunit/php-code-coverage/tests/TestCase.php
deleted file mode 100644
index 2bfdb96..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/TestCase.php
+++ /dev/null
@@ -1,307 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_CodeCoverage package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Abstract base class for test case classes.
- *
- * @category   PHP
- * @package    CodeCoverage
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-code-coverage
- * @since      Class available since Release 1.0.0
- */
-abstract class PHP_CodeCoverage_TestCase extends PHPUnit_Framework_TestCase
-{
-    protected function getXdebugDataForBankAccount()
-    {
-        return array(
-          array(
-            TEST_FILES_PATH . 'BankAccount.php' => array(
-               8 =>  1,
-               9 => -2,
-              13 => -1,
-              14 => -1,
-              15 => -1,
-              16 => -1,
-              18 => -1,
-              22 => -1,
-              24 => -1,
-              25 => -2,
-              29 => -1,
-              31 => -1,
-              32 => -2
-            )
-          ),
-          array(
-            TEST_FILES_PATH . 'BankAccount.php' => array(
-               8 => 1,
-              13 => 1,
-              16 => 1,
-              29 => 1,
-            )
-          ),
-          array(
-            TEST_FILES_PATH . 'BankAccount.php' => array(
-               8 => 1,
-              13 => 1,
-              16 => 1,
-              22 => 1,
-            )
-          ),
-          array(
-            TEST_FILES_PATH . 'BankAccount.php' => array(
-               8 => 1,
-              13 => 1,
-              14 => 1,
-              15 => 1,
-              18 => 1,
-              22 => 1,
-              24 => 1,
-              29 => 1,
-              31 => 1,
-            )
-          )
-        );
-    }
-
-    protected function getCoverageForBankAccount()
-    {
-        $data = $this->getXdebugDataForBankAccount();
-
-        $stub = $this->getMock('PHP_CodeCoverage_Driver_Xdebug');
-        $stub->expects($this->any())
-             ->method('stop')
-             ->will($this->onConsecutiveCalls(
-               $data[0], $data[1], $data[2], $data[3]
-             ));
-
-        $coverage = new PHP_CodeCoverage($stub, new PHP_CodeCoverage_Filter);
-
-        $coverage->start(
-          new BankAccountTest('testBalanceIsInitiallyZero'), true
-        );
-
-        $coverage->stop(
-          true,
-          array(TEST_FILES_PATH . 'BankAccount.php' => range(6, 9))
-        );
-
-        $coverage->start(
-          new BankAccountTest('testBalanceCannotBecomeNegative')
-        );
-
-        $coverage->stop(
-          true,
-          array(TEST_FILES_PATH . 'BankAccount.php' => range(27, 32))
-        );
-
-        $coverage->start(
-          new BankAccountTest('testBalanceCannotBecomeNegative2')
-        );
-
-        $coverage->stop(
-          true,
-          array(TEST_FILES_PATH . 'BankAccount.php' => range(20, 25))
-        );
-
-        $coverage->start(
-          new BankAccountTest('testDepositWithdrawMoney')
-        );
-
-        $coverage->stop(
-          true,
-          array(
-            TEST_FILES_PATH . 'BankAccount.php' => array_merge(
-              range(6, 9), range(20, 25), range(27, 32)
-            )
-          )
-        );
-
-        return $coverage;
-    }
-
-    protected function getCoverageForBankAccountForFirstTwoTests()
-    {
-        $data = $this->getXdebugDataForBankAccount();
-
-        $stub = $this->getMock('PHP_CodeCoverage_Driver_Xdebug');
-        $stub->expects($this->any())
-             ->method('stop')
-             ->will($this->onConsecutiveCalls(
-               $data[0], $data[1]
-             ));
-
-        $coverage = new PHP_CodeCoverage($stub, new PHP_CodeCoverage_Filter);
-
-        $coverage->start(
-          new BankAccountTest('testBalanceIsInitiallyZero'), true
-        );
-
-        $coverage->stop(
-          true,
-          array(TEST_FILES_PATH . 'BankAccount.php' => range(6, 9))
-        );
-
-        $coverage->start(
-          new BankAccountTest('testBalanceCannotBecomeNegative')
-        );
-
-        $coverage->stop(
-          true,
-          array(TEST_FILES_PATH . 'BankAccount.php' => range(27, 32))
-        );
-
-        return $coverage;
-    }
-
-    protected function getCoverageForBankAccountForLastTwoTests()
-    {
-        $data = $this->getXdebugDataForBankAccount();
-
-        $stub = $this->getMock('PHP_CodeCoverage_Driver_Xdebug');
-        $stub->expects($this->any())
-             ->method('stop')
-             ->will($this->onConsecutiveCalls(
-               $data[2], $data[3]
-             ));
-
-        $coverage = new PHP_CodeCoverage($stub, new PHP_CodeCoverage_Filter);
-
-        $coverage->start(
-          new BankAccountTest('testBalanceCannotBecomeNegative2')
-        );
-
-        $coverage->stop(
-          true,
-          array(TEST_FILES_PATH . 'BankAccount.php' => range(20, 25))
-        );
-
-        $coverage->start(
-          new BankAccountTest('testDepositWithdrawMoney')
-        );
-
-        $coverage->stop(
-          true,
-          array(
-            TEST_FILES_PATH . 'BankAccount.php' => array_merge(
-              range(6, 9), range(20, 25), range(27, 32)
-            )
-          )
-        );
-
-        return $coverage;
-    }
-
-    protected function getExpectedDataArrayForBankAccount()
-    {
-        return array(
-          TEST_FILES_PATH . 'BankAccount.php' => array(
-            8 => array(
-              0 => 'BankAccountTest::testBalanceIsInitiallyZero',
-              1 => 'BankAccountTest::testDepositWithdrawMoney'
-            ),
-            9 => null,
-            13 => array(),
-            14 => array(),
-            15 => array(),
-            16 => array(),
-            18 => array(),
-            22 => array(
-              0 => 'BankAccountTest::testBalanceCannotBecomeNegative2',
-              1 => 'BankAccountTest::testDepositWithdrawMoney'
-            ),
-            24 => array(
-              0 => 'BankAccountTest::testDepositWithdrawMoney',
-            ),
-            25 => null,
-            29 => array(
-              0 => 'BankAccountTest::testBalanceCannotBecomeNegative',
-              1 => 'BankAccountTest::testDepositWithdrawMoney'
-            ),
-            31 => array(
-              0 => 'BankAccountTest::testDepositWithdrawMoney'
-            ),
-            32 => null
-          )
-        );
-    }
-
-    protected function getCoverageForFileWithIgnoredLines()
-    {
-        $coverage = new PHP_CodeCoverage(
-          $this->setUpXdebugStubForFileWithIgnoredLines(),
-          new PHP_CodeCoverage_Filter
-        );
-
-        $coverage->start('FileWithIgnoredLines', true);
-        $coverage->stop();
-
-        return $coverage;
-    }
-
-    protected function setUpXdebugStubForFileWithIgnoredLines()
-    {
-        $stub = $this->getMock('PHP_CodeCoverage_Driver_Xdebug');
-        $stub->expects($this->any())
-             ->method('stop')
-             ->will($this->returnValue(
-               array(
-                 TEST_FILES_PATH . 'source_with_ignore.php' => array(
-                   2 => 1,
-                   4 => -1,
-                   6 => -1,
-                   7 => 1
-                 )
-               )
-            ));
-
-        return $stub;
-    }
-
-    protected function getCoverageForClassWithAnonymousFunction()
-    {
-        $coverage = new PHP_CodeCoverage(
-          $this->setUpXdebugStubForClassWithAnonymousFunction(),
-          new PHP_CodeCoverage_Filter
-        );
-
-        $coverage->start('ClassWithAnonymousFunction', true);
-        $coverage->stop();
-
-        return $coverage;
-    }
-
-    protected function setUpXdebugStubForClassWithAnonymousFunction()
-    {
-        $stub = $this->getMock('PHP_CodeCoverage_Driver_Xdebug');
-        $stub->expects($this->any())
-             ->method('stop')
-             ->will($this->returnValue(
-               array(
-                 TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php' => array(
-                    7  => 1,
-                    9  => 1,
-                    10 => -1,
-                    11 => 1,
-                    12 => 1,
-                    13 => 1,
-                    14 => 1,
-                    17 => 1,
-                    18 => 1
-                 )
-               )
-            ));
-
-        return $stub;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml b/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml
deleted file mode 100644
index 578a7cc..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<coverage generated="%i">
-  <project timestamp="%i" name="BankAccount">
-    <file name="%s/BankAccount.php">
-      <class name="BankAccount" namespace="global">
-        <metrics methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="5" elements="14" coveredelements="8"/>
-      </class>
-      <line num="6" type="method" name="getBalance" crap="1" count="2"/>
-      <line num="8" type="stmt" count="2"/>
-      <line num="11" type="method" name="setBalance" crap="6" count="0"/>
-      <line num="13" type="stmt" count="0"/>
-      <line num="14" type="stmt" count="0"/>
-      <line num="15" type="stmt" count="0"/>
-      <line num="16" type="stmt" count="0"/>
-      <line num="18" type="stmt" count="0"/>
-      <line num="20" type="method" name="depositMoney" crap="1" count="2"/>
-      <line num="22" type="stmt" count="2"/>
-      <line num="24" type="stmt" count="1"/>
-      <line num="27" type="method" name="withdrawMoney" crap="1" count="2"/>
-      <line num="29" type="stmt" count="2"/>
-      <line num="31" type="stmt" count="1"/>
-      <metrics loc="33" ncloc="33" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="5" elements="14" coveredelements="8"/>
-    </file>
-    <metrics files="1" loc="33" ncloc="33" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="5" elements="14" coveredelements="8"/>
-  </project>
-</coverage>
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php b/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php
deleted file mode 100644
index 4238c15..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-class BankAccount
-{
-    protected $balance = 0;
-
-    public function getBalance()
-    {
-        return $this->balance;
-    }
-
-    protected function setBalance($balance)
-    {
-        if ($balance >= 0) {
-            $this->balance = $balance;
-        } else {
-            throw new RuntimeException;
-        }
-    }
-
-    public function depositMoney($balance)
-    {
-        $this->setBalance($this->getBalance() + $balance);
-
-        return $this->getBalance();
-    }
-
-    public function withdrawMoney($balance)
-    {
-        $this->setBalance($this->getBalance() - $balance);
-
-        return $this->getBalance();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php
deleted file mode 100644
index 3a6277b..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-require_once 'BankAccount.php';
-
-class BankAccountTest extends PHPUnit_Framework_TestCase
-{
-    protected $ba;
-
-    protected function setUp()
-    {
-        $this->ba = new BankAccount;
-    }
-
-    /**
-     * @covers BankAccount::getBalance
-     */
-    public function testBalanceIsInitiallyZero()
-    {
-        $this->assertEquals(0, $this->ba->getBalance());
-    }
-
-    /**
-     * @covers BankAccount::withdrawMoney
-     */
-    public function testBalanceCannotBecomeNegative()
-    {
-        try {
-            $this->ba->withdrawMoney(1);
-        } catch (RuntimeException $e) {
-            $this->assertEquals(0, $this->ba->getBalance());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers BankAccount::depositMoney
-     */
-    public function testBalanceCannotBecomeNegative2()
-    {
-        try {
-            $this->ba->depositMoney(-1);
-        } catch (RuntimeException $e) {
-            $this->assertEquals(0, $this->ba->getBalance());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers BankAccount::getBalance
-     * @covers BankAccount::depositMoney
-     * @covers BankAccount::withdrawMoney
-     */
-    public function testDepositWithdrawMoney()
-    {
-        $this->assertEquals(0, $this->ba->getBalance());
-        $this->ba->depositMoney(1);
-        $this->assertEquals(1, $this->ba->getBalance());
-        $this->ba->withdrawMoney(1);
-        $this->assertEquals(0, $this->ba->getBalance());
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php
deleted file mode 100644
index df12d34..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageClassExtendedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass<extended>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php
deleted file mode 100644
index 7f569ae..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageClassTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php
deleted file mode 100644
index 33b5fe3..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class CoverageFunctionParenthesesTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::globalFunction()
-     */
-    public function testSomething()
-    {
-        globalFunction();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php
deleted file mode 100644
index becc6c8..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class CoverageFunctionParenthesesWhitespaceTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::globalFunction ( )
-     */
-    public function testSomething()
-    {
-        globalFunction();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php
deleted file mode 100644
index c621fd2..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class CoverageFunctionTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::globalFunction
-     */
-    public function testSomething()
-    {
-        globalFunction();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php
deleted file mode 100644
index 55d7f57..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-class CoverageMethodOneLineAnnotationTest extends PHPUnit_Framework_TestCase
-{
-    /** @covers CoveredClass::publicMethod */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php
deleted file mode 100644
index 4223004..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageMethodParenthesesTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod()
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php
deleted file mode 100644
index d1be1c6..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageMethodParenthesesWhitespaceTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod ( )
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php
deleted file mode 100644
index 167b3db..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageMethodTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php
deleted file mode 100644
index 0b414c2..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-class CoverageNoneTest extends PHPUnit_Framework_TestCase
-{
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php
deleted file mode 100644
index 12b56e8..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageNotPrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<!private>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php
deleted file mode 100644
index c69d261..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageNotProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<!protected>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php
deleted file mode 100644
index aebfe4b..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageNotPublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<!public>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php
deleted file mode 100644
index 5d5680d..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class CoverageNothingTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod
-     * @coversNothing
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php
deleted file mode 100644
index f09560d..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoveragePrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<private>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php
deleted file mode 100644
index 9b3acbf..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<protected>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php
deleted file mode 100644
index 480a522..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoveragePublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<public>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php
deleted file mode 100644
index 7c743db..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @coversDefaultClass \NamespaceOne
- * @coversDefaultClass \AnotherDefault\Name\Space\Does\Not\Work
- */
-class CoverageTwoDefaultClassAnnotations
-{
-
-    /**
-     * @covers Foo\CoveredClass::<public>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php
deleted file mode 100644
index f382ce9..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-class CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        $this->protectedMethod();
-    }
-}
-
-class CoveredClass extends CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        parent::protectedMethod();
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        parent::publicMethod();
-        $this->protectedMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php b/core/vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php
deleted file mode 100644
index 9989eb0..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-function globalFunction()
-{
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php
deleted file mode 100644
index d0954cb..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageClassExtendedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass<extended>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php
deleted file mode 100644
index 63912c0..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageClassTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php
deleted file mode 100644
index 45f583b..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * @coversDefaultClass \Foo\CoveredClass
- */
-class NamespaceCoverageCoversClassPublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php
deleted file mode 100644
index b336745..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * @coversDefaultClass \Foo\CoveredClass
- */
-class NamespaceCoverageCoversClassTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::privateMethod
-     * @covers ::protectedMethod
-     * @covers ::publicMethod
-     * @covers \Foo\CoveredParentClass::privateMethod
-     * @covers \Foo\CoveredParentClass::protectedMethod
-     * @covers \Foo\CoveredParentClass::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php
deleted file mode 100644
index 35dfb8b..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageMethodTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php
deleted file mode 100644
index 552c9ec..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageNotPrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<!private>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php
deleted file mode 100644
index 33fc8c7..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageNotProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<!protected>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php
deleted file mode 100644
index ccbc500..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageNotPublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<!public>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php
deleted file mode 100644
index cce7ba9..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoveragePrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<private>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php
deleted file mode 100644
index dbbcc1c..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<protected>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php
deleted file mode 100644
index bf1bff8..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoveragePublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<public>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php
deleted file mode 100644
index 5bd0ddf..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-namespace Foo;
-
-class CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        $this->protectedMethod();
-    }
-}
-
-class CoveredClass extends CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        parent::protectedMethod();
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        parent::publicMethod();
-        $this->protectedMethod();
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php b/core/vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php
deleted file mode 100644
index be07ef4..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-class NotExistingCoveredElementTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers NotExistingClass
-     */
-    public function testOne()
-    {
-    }
-
-    /**
-     * @covers NotExistingClass::notExistingMethod
-     */
-    public function testTwo()
-    {
-    }
-
-    /**
-     * @covers NotExistingClass::<public>
-     */
-    public function testThree()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml b/core/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml
deleted file mode 100644
index ac43b80..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<coverage generated="%i">
-  <project timestamp="%i">
-    <file name="%s/source_with_class_and_anonymous_function.php">
-      <class name="CoveredClassWithAnonymousFunctionInStaticMethod" namespace="global">
-        <metrics methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="4" elements="7" coveredelements="5"/>
-      </class>
-      <line num="5" type="method" name="runAnonymous" crap="1.04" count="1"/>
-      <line num="7" type="stmt" count="1"/>
-      <line num="9" type="stmt" count="1"/>
-      <line num="10" type="stmt" count="0"/>
-      <line num="11" type="method" name="anonymous function" crap="1" count="1"/>
-      <line num="12" type="stmt" count="1"/>
-      <line num="13" type="stmt" count="1"/>
-      <line num="14" type="stmt" count="1"/>
-      <line num="17" type="stmt" count="1"/>
-      <line num="18" type="stmt" count="1"/>
-      <metrics loc="19" ncloc="17" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="7" elements="10" coveredelements="8"/>
-    </file>
-    <metrics files="1" loc="19" ncloc="17" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="7" elements="10" coveredelements="8"/>
-  </project>
-</coverage>
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml b/core/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml
deleted file mode 100644
index cda929c..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<coverage generated="%i">
-  <project timestamp="%i">
-    <file name="%s/source_with_ignore.php">
-      <class name="Foo" namespace="global">
-        <metrics methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
-      </class>
-      <class name="Bar" namespace="global">
-        <metrics methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
-      </class>
-      <line num="2" type="stmt" count="1"/>
-      <line num="6" type="stmt" count="0"/>
-      <metrics loc="37" ncloc="25" classes="2" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="1" elements="2" coveredelements="1"/>
-    </file>
-    <metrics files="1" loc="37" ncloc="25" classes="2" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="1" elements="2" coveredelements="1"/>
-  </project>
-</coverage>
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php b/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php
deleted file mode 100644
index eaba387..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-class CoveredClassWithAnonymousFunctionInStaticMethod
-{
-    public static function runAnonymous()
-    {
-        $filter = array('abc124', 'abc123', '123');
-
-        array_walk(
-            $filter,
-            function (&$val, $key) {
-                $val = preg_replace('|[^0-9]|', '', $val);
-            }
-        );
-
-        // Should be covered
-        $extravar = true;
-    }
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php b/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php
deleted file mode 100644
index dd9aa12..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-if ($neverHappens) {
-    // @codeCoverageIgnoreStart
-    print '*';
-    // @codeCoverageIgnoreEnd
-}
-
-/**
- * @codeCoverageIgnore
- */
-class Foo
-{
-    public function bar()
-    {
-    }
-}
-
-class Bar
-{
-    /**
-     * @codeCoverageIgnore
-     */
-    public function foo()
-    {
-    }
-}
-
-function baz()
-{
-    print '*'; // @codeCoverageIgnore
-}
-
-interface Bor
-{
-    public function foo();
-
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php b/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php
deleted file mode 100644
index ebe98ee..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-namespace bar\baz;
-
-/**
- * Represents foo.
- */
-class source_with_namespace
-{
-}
-
-/**
- * @param mixed $bar
- */
-function &foo($bar)
-{
-    $baz = function () {};
-    $a   = true ? true : false;
-    $b = "{$a}";
-    $c = "${b}";
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php b/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php
deleted file mode 100644
index 19dd4cd..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/** Docblock */
-interface Foo
-{
-    public function bar();
-}
-
-class Foo
-{
-    public function bar()
-    {
-    }
-}
-
-function baz()
-{
-    // a one-line comment
-    print '*'; // a one-line comment
-
-    /* a one-line comment */
-    print '*'; /* a one-line comment */
-
-    /* a one-line comment
-     */
-    print '*'; /* a one-line comment
-    */
-
-    print '*'; // @codeCoverageIgnore
-
-    print '*'; // @codeCoverageIgnoreStart
-    print '*';
-    print '*'; // @codeCoverageIgnoreEnd
-
-    print '*';
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php b/core/vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php
deleted file mode 100644
index be4e836..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-if ($neverHappens) {
-    print '*';
-}
diff --git a/core/vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php b/core/vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php
deleted file mode 100644
index 24d78e5..0000000
--- a/core/vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Represents foo.
- */
-class Foo
-{
-}
-
-/**
- * @param mixed $bar
- */
-function &foo($bar)
-{
-    $baz = function () {};
-    $a   = true ? true : false;
-    $b = "{$a}";
-    $c = "${b}";
-}
diff --git a/core/vendor/phpunit/php-file-iterator/.gitattributes b/core/vendor/phpunit/php-file-iterator/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/phpunit/php-file-iterator/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/phpunit/php-file-iterator/.gitignore b/core/vendor/phpunit/php-file-iterator/.gitignore
deleted file mode 100644
index a741983..0000000
--- a/core/vendor/phpunit/php-file-iterator/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-build/api
-build/code-browser
-build/coverage
-build/logs
-build/pdepend
-cache.properties
-phpunit.xml
diff --git a/core/vendor/phpunit/php-file-iterator/ChangeLog.md b/core/vendor/phpunit/php-file-iterator/ChangeLog.md
deleted file mode 100644
index fa77ced..0000000
--- a/core/vendor/phpunit/php-file-iterator/ChangeLog.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
-
-## [1.4.0] - 2015-04-02
-
-### Added
-
-* [Added support for wildcards (glob) in exclude](https://github.com/sebastianbergmann/php-file-iterator/pull/23)
-
diff --git a/core/vendor/phpunit/php-file-iterator/LICENSE b/core/vendor/phpunit/php-file-iterator/LICENSE
deleted file mode 100644
index 6cccbbb..0000000
--- a/core/vendor/phpunit/php-file-iterator/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-File_Iterator
-
-Copyright (c) 2009-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/php-file-iterator/README.md b/core/vendor/phpunit/php-file-iterator/README.md
deleted file mode 100644
index ef28388..0000000
--- a/core/vendor/phpunit/php-file-iterator/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# File_Iterator
-
-## Installation
-
-To add File_Iterator as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-file-iterator` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on File_Iterator 1.4:
-
-    {
-        "require": {
-            "phpunit/php-file-iterator": "~1.4"
-        }
-    }
-
diff --git a/core/vendor/phpunit/php-file-iterator/composer.json b/core/vendor/phpunit/php-file-iterator/composer.json
deleted file mode 100644
index c652794..0000000
--- a/core/vendor/phpunit/php-file-iterator/composer.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "name": "phpunit/php-file-iterator",
-    "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-    "type": "library",
-    "keywords": [
-        "iterator",
-        "filesystem"
-    ],
-    "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sb@sebastian-bergmann.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
-        "irc": "irc://irc.freenode.net/phpunit"
-    },
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.4.x-dev"
-        }
-    }
-}
-
diff --git a/core/vendor/phpunit/php-file-iterator/src/Facade.php b/core/vendor/phpunit/php-file-iterator/src/Facade.php
deleted file mode 100644
index cf73ba8..0000000
--- a/core/vendor/phpunit/php-file-iterator/src/Facade.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/*
- * This file is part of the File_Iterator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Façade implementation that uses File_Iterator_Factory to create a
- * File_Iterator that operates on an AppendIterator that contains an
- * RecursiveDirectoryIterator for each given path. The list of unique
- * files is returned as an array.
- *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version   Release: @package_version@
- * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
- * @since     Class available since Release 1.3.0
- */
-class File_Iterator_Facade
-{
-    /**
-     * @param  array|string $paths
-     * @param  array|string $suffixes
-     * @param  array|string $prefixes
-     * @param  array        $exclude
-     * @param  boolean      $commonPath
-     * @return array
-     */
-    public function getFilesAsArray($paths, $suffixes = '', $prefixes = '', array $exclude = array(), $commonPath = FALSE)
-    {
-        if (is_string($paths)) {
-            $paths = array($paths);
-        }
-
-        $factory  = new File_Iterator_Factory;
-        $iterator = $factory->getFileIterator(
-          $paths, $suffixes, $prefixes, $exclude
-        );
-
-        $files = array();
-
-        foreach ($iterator as $file) {
-            $file = $file->getRealPath();
-
-            if ($file) {
-                $files[] = $file;
-            }
-        }
-
-        foreach ($paths as $path) {
-            if (is_file($path)) {
-                $files[] = realpath($path);
-            }
-        }
-
-        $files = array_unique($files);
-        sort($files);
-
-        if ($commonPath) {
-            return array(
-              'commonPath' => $this->getCommonPath($files),
-              'files'      => $files
-            );
-        } else {
-            return $files;
-        }
-    }
-
-    /**
-     * Returns the common path of a set of files.
-     *
-     * @param  array $files
-     * @return string
-     */
-    protected function getCommonPath(array $files)
-    {
-        $count = count($files);
-
-        if ($count == 0) {
-            return '';
-        }
-
-        if ($count == 1) {
-            return dirname($files[0]) . DIRECTORY_SEPARATOR;
-        }
-
-        $_files = array();
-
-        foreach ($files as $file) {
-            $_files[] = $_fileParts = explode(DIRECTORY_SEPARATOR, $file);
-
-            if (empty($_fileParts[0])) {
-                $_fileParts[0] = DIRECTORY_SEPARATOR;
-            }
-        }
-
-        $common = '';
-        $done   = FALSE;
-        $j      = 0;
-        $count--;
-
-        while (!$done) {
-            for ($i = 0; $i < $count; $i++) {
-                if ($_files[$i][$j] != $_files[$i+1][$j]) {
-                    $done = TRUE;
-                    break;
-                }
-            }
-
-            if (!$done) {
-                $common .= $_files[0][$j];
-
-                if ($j > 0) {
-                    $common .= DIRECTORY_SEPARATOR;
-                }
-            }
-
-            $j++;
-        }
-
-        return DIRECTORY_SEPARATOR . $common;
-    }
-}
diff --git a/core/vendor/phpunit/php-file-iterator/src/Factory.php b/core/vendor/phpunit/php-file-iterator/src/Factory.php
deleted file mode 100644
index 70fc66b..0000000
--- a/core/vendor/phpunit/php-file-iterator/src/Factory.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-/*
- * This file is part of the File_Iterator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Factory Method implementation that creates a File_Iterator that operates on
- * an AppendIterator that contains an RecursiveDirectoryIterator for each given
- * path.
- *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version   Release: @package_version@
- * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
- * @since     Class available since Release 1.1.0
- */
-class File_Iterator_Factory
-{
-    /**
-     * @param  array|string $paths
-     * @param  array|string $suffixes
-     * @param  array|string $prefixes
-     * @param  array        $exclude
-     * @return AppendIterator
-     */
-    public function getFileIterator($paths, $suffixes = '', $prefixes = '', array $exclude = array())
-    {
-        if (is_string($paths)) {
-            $paths = array($paths);
-        }
-
-        $paths   = $this->getPathsAfterResolvingWildcards($paths);
-        $exclude = $this->getPathsAfterResolvingWildcards($exclude);
-
-        if (is_string($prefixes)) {
-            if ($prefixes != '') {
-                $prefixes = array($prefixes);
-            } else {
-                $prefixes = array();
-            }
-        }
-
-        if (is_string($suffixes)) {
-            if ($suffixes != '') {
-                $suffixes = array($suffixes);
-            } else {
-                $suffixes = array();
-            }
-        }
-
-        $iterator = new AppendIterator;
-
-        foreach ($paths as $path) {
-            if (is_dir($path)) {
-                $iterator->append(
-                  new File_Iterator(
-                    new RecursiveIteratorIterator(
-                      new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::FOLLOW_SYMLINKS)
-                    ),
-                    $suffixes,
-                    $prefixes,
-                    $exclude,
-                    $path
-                  )
-                );
-            }
-        }
-
-        return $iterator;
-    }
-
-    /**
-     * @param  array $paths
-     * @return array
-     */
-    protected function getPathsAfterResolvingWildcards(array $paths)
-    {
-        $_paths = array();
-
-        foreach ($paths as $path) {
-            if ($locals = glob($path, GLOB_ONLYDIR)) {
-                $_paths = array_merge($_paths, $locals);
-            } else {
-                $_paths[] = $path;
-            }
-        }
-
-        return $_paths;
-    }
-}
diff --git a/core/vendor/phpunit/php-file-iterator/src/Iterator.php b/core/vendor/phpunit/php-file-iterator/src/Iterator.php
deleted file mode 100644
index 53720e2..0000000
--- a/core/vendor/phpunit/php-file-iterator/src/Iterator.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/*
- * This file is part of the File_Iterator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * FilterIterator implementation that filters files based on prefix(es) and/or
- * suffix(es). Hidden files and files from hidden directories are also filtered.
- *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version   Release: @package_version@
- * @link      http://github.com/sebastianbergmann/php-file-iterator/tree
- * @since     Class available since Release 1.0.0
- */
-class File_Iterator extends FilterIterator
-{
-    const PREFIX = 0;
-    const SUFFIX = 1;
-
-    /**
-     * @var array
-     */
-    protected $suffixes = array();
-
-    /**
-     * @var array
-     */
-    protected $prefixes = array();
-
-    /**
-     * @var array
-     */
-    protected $exclude = array();
-
-    /**
-     * @var string
-     */
-    protected $basepath;
-
-    /**
-     * @param  Iterator $iterator
-     * @param  array    $suffixes
-     * @param  array    $prefixes
-     * @param  array    $exclude
-     * @param  string   $basepath
-     */
-    public function __construct(Iterator $iterator, array $suffixes = array(), array $prefixes = array(), array $exclude = array(), $basepath = NULL)
-    {
-        $exclude = array_filter(array_map('realpath', $exclude));
-
-        if ($basepath !== NULL) {
-            $basepath = realpath($basepath);
-        }
-
-        if ($basepath === FALSE) {
-            $basepath = NULL;
-        } else {
-            foreach ($exclude as &$_exclude) {
-                $_exclude = str_replace($basepath, '', $_exclude);
-            }
-        }
-
-        $this->prefixes = $prefixes;
-        $this->suffixes = $suffixes;
-        $this->exclude  = $exclude;
-        $this->basepath = $basepath;
-
-        parent::__construct($iterator);
-    }
-
-    /**
-     * @return boolean
-     */
-    public function accept()
-    {
-        $current  = $this->getInnerIterator()->current();
-        $filename = $current->getFilename();
-        $realpath = $current->getRealPath();
-
-        if ($this->basepath !== NULL) {
-            $realpath = str_replace($this->basepath, '', $realpath);
-        }
-
-        // Filter files in hidden directories.
-        if (preg_match('=/\.[^/]*/=', $realpath)) {
-            return FALSE;
-        }
-
-        return $this->acceptPath($realpath) &&
-               $this->acceptPrefix($filename) &&
-               $this->acceptSuffix($filename);
-    }
-
-    /**
-     * @param  string $path
-     * @return boolean
-     * @since  Method available since Release 1.1.0
-     */
-    protected function acceptPath($path)
-    {
-        foreach ($this->exclude as $exclude) {
-            if (strpos($path, $exclude) === 0) {
-                return FALSE;
-            }
-        }
-
-        return TRUE;
-    }
-
-    /**
-     * @param  string $filename
-     * @return boolean
-     * @since  Method available since Release 1.1.0
-     */
-    protected function acceptPrefix($filename)
-    {
-        return $this->acceptSubString($filename, $this->prefixes, self::PREFIX);
-    }
-
-    /**
-     * @param  string $filename
-     * @return boolean
-     * @since  Method available since Release 1.1.0
-     */
-    protected function acceptSuffix($filename)
-    {
-        return $this->acceptSubString($filename, $this->suffixes, self::SUFFIX);
-    }
-
-    /**
-     * @param  string  $filename
-     * @param  array   $subString
-     * @param  integer $type
-     * @return boolean
-     * @since  Method available since Release 1.1.0
-     */
-    protected function acceptSubString($filename, array $subStrings, $type)
-    {
-        if (empty($subStrings)) {
-            return TRUE;
-        }
-
-        $matched = FALSE;
-
-        foreach ($subStrings as $string) {
-            if (($type == self::PREFIX && strpos($filename, $string) === 0) ||
-                ($type == self::SUFFIX &&
-                 substr($filename, -1 * strlen($string)) == $string)) {
-                $matched = TRUE;
-                break;
-            }
-        }
-
-        return $matched;
-    }
-}
diff --git a/core/vendor/phpunit/php-text-template/.gitattributes b/core/vendor/phpunit/php-text-template/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/phpunit/php-text-template/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/phpunit/php-text-template/.gitignore b/core/vendor/phpunit/php-text-template/.gitignore
deleted file mode 100644
index a741983..0000000
--- a/core/vendor/phpunit/php-text-template/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-build/api
-build/code-browser
-build/coverage
-build/logs
-build/pdepend
-cache.properties
-phpunit.xml
diff --git a/core/vendor/phpunit/php-text-template/ChangeLog.md b/core/vendor/phpunit/php-text-template/ChangeLog.md
deleted file mode 100644
index f2b7f7e..0000000
--- a/core/vendor/phpunit/php-text-template/ChangeLog.md
+++ /dev/null
@@ -1,9 +0,0 @@
-Text_Template 1.2
-=================
-
-This is the list of changes for the Text_Template 1.2 release series.
-
-Text_Template 1.2.0
--------------------
-
-* Added support for arbitrary delimiters for template variables.
diff --git a/core/vendor/phpunit/php-text-template/LICENSE b/core/vendor/phpunit/php-text-template/LICENSE
deleted file mode 100644
index 3efd415..0000000
--- a/core/vendor/phpunit/php-text-template/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Text_Template
-
-Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/php-text-template/README.md b/core/vendor/phpunit/php-text-template/README.md
deleted file mode 100644
index 0d60da9..0000000
--- a/core/vendor/phpunit/php-text-template/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-Text_Template
-=============
-
-Installation
-------------
-
-Text_Template should be installed using the [PEAR Installer](http://pear.php.net/). This installer is the backbone of PEAR, which provides a distribution system for PHP packages, and is shipped with every release of PHP since version 4.3.0.
-
-The PEAR channel (`pear.phpunit.de`) that is used to distribute Text_Template needs to be registered with the local PEAR environment:
-
-    sb@ubuntu ~ % pear channel-discover pear.phpunit.de
-    Adding Channel "pear.phpunit.de" succeeded
-    Discovery of channel "pear.phpunit.de" succeeded
-
-This has to be done only once. Now the PEAR Installer can be used to install packages from the PHPUnit channel:
-
-    sb@vmware ~ % pear install phpunit/Text_Template
-    downloading Text_Template-1.0.0.tgz ...
-    Starting to download Text_Template-1.0.0.tgz (2,493 bytes)
-    ....done: 2,493 bytes
-    install ok: channel://pear.phpunit.de/Text_Template-1.0.0
-
-After the installation you can find the Text_Template source files inside your local PEAR directory; the path is usually `/usr/lib/php/Text`.
diff --git a/core/vendor/phpunit/php-text-template/Text/Template.php b/core/vendor/phpunit/php-text-template/Text/Template.php
deleted file mode 100644
index 2f5a367..0000000
--- a/core/vendor/phpunit/php-text-template/Text/Template.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php
-/**
- * Text_Template
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @category   Text
- * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-text-template
- * @since      File available since Release 1.0.0
- */
-
-/**
- * A simple template engine.
- *
- * @category   Text
- * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-text-template
- * @since      Class available since Release 1.0.0
- */
-class Text_Template
-{
-    /**
-     * @var string
-     */
-    protected $template = '';
-
-    /**
-     * @var string
-     */
-    protected $openDelimiter = '{';
-
-    /**
-     * @var string
-     */
-    protected $closeDelimiter = '}';
-
-    /**
-     * @var array
-     */
-    protected $values = array();
-
-    /**
-     * Constructor.
-     *
-     * @param  string $file
-     * @throws InvalidArgumentException
-     */
-    public function __construct($file = '', $openDelimiter = '{', $closeDelimiter = '}')
-    {
-        $this->setFile($file);
-        $this->openDelimiter  = $openDelimiter;
-        $this->closeDelimiter = $closeDelimiter;
-    }
-
-    /**
-     * Sets the template file.
-     *
-     * @param  string $file
-     * @throws InvalidArgumentException
-     */
-    public function setFile($file)
-    {
-        $distFile = $file . '.dist';
-
-        if (file_exists($file)) {
-            $this->template = file_get_contents($file);
-        }
-
-        else if (file_exists($distFile)) {
-            $this->template = file_get_contents($distFile);
-        }
-
-        else {
-            throw new InvalidArgumentException(
-              'Template file could not be loaded.'
-            );
-        }
-    }
-
-    /**
-     * Sets one or more template variables.
-     *
-     * @param  array   $values
-     * @param  boolean $merge
-     */
-    public function setVar(array $values, $merge = TRUE)
-    {
-        if (!$merge || empty($this->values)) {
-            $this->values = $values;
-        } else {
-            $this->values = array_merge($this->values, $values);
-        }
-    }
-
-    /**
-     * Renders the template and returns the result.
-     *
-     * @return string
-     */
-    public function render()
-    {
-        $keys = array();
-
-        foreach ($this->values as $key => $value) {
-            $keys[] = $this->openDelimiter . $key . $this->closeDelimiter;
-        }
-
-        return str_replace($keys, $this->values, $this->template);
-    }
-
-    /**
-     * Renders the template and writes the result to a file.
-     *
-     * @param string $target
-     */
-    public function renderTo($target)
-    {
-        $fp = @fopen($target, 'wt');
-
-        if ($fp) {
-            fwrite($fp, $this->render());
-            fclose($fp);
-        } else {
-            $error = error_get_last();
-
-            throw new RuntimeException(
-              sprintf(
-                'Could not write to %s: %s',
-                $target,
-                substr(
-                  $error['message'],
-                  strpos($error['message'], ':') + 2
-                )
-              )
-            );
-        }
-    }
-}
-
diff --git a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php b/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php
deleted file mode 100644
index 9142641..0000000
--- a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * Text_Template
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @category   Text
- * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-text-template
- * @since      File available since Release 1.1.0
- */
-
-spl_autoload_register(
-  function ($class) {
-      static $classes = NULL;
-      static $path = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            'text_template' => '/Template.php'
-          );
-
-          $path = dirname(dirname(__FILE__));
-      }
-
-      $cn = strtolower($class);
-
-      if (isset($classes[$cn])) {
-          require $path . $classes[$cn];
-      }
-  }
-);
diff --git a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in b/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in
deleted file mode 100644
index 3092120..0000000
--- a/core/vendor/phpunit/php-text-template/Text/Template/Autoload.php.in
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * Text_Template
- *
- * Copyright (c) 2009-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @category   Text
- * @package    Template
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2009-2010 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-text-template
- * @since      File available since Release 1.1.0
- */
-
-spl_autoload_register(
-  function ($class) {
-      static $classes = NULL;
-      static $path = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            ___CLASSLIST___
-          );
-
-          $path = dirname(dirname(__FILE__));
-      }
-
-      $cn = strtolower($class);
-
-      if (isset($classes[$cn])) {
-          require $path . $classes[$cn];
-      }
-  }
-);
diff --git a/core/vendor/phpunit/php-text-template/build.xml b/core/vendor/phpunit/php-text-template/build.xml
deleted file mode 100644
index 3be9137..0000000
--- a/core/vendor/phpunit/php-text-template/build.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="Text_Template" default="build">
- <property name="php" value="php"/>
- <property name="phpunit" value="phpunit"/>
-
- <target name="build"
-   depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpcb"/>
-
- <target name="build-parallel"
-   depends="prepare,lint,tools-parallel,phpcb"/>
-
- <target name="tools-parallel"
-         description="Run tools in parallel">
-  <parallel threadCount="2">
-   <sequential>
-    <antcall target="pdepend"/>
-    <antcall target="phpmd-ci"/>
-   </sequential>
-   <antcall target="phpcpd"/>
-   <antcall target="phpcs-ci"/>
-   <antcall target="phploc"/>
-  </parallel>
- </target>
-
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/build/api"/>
-  <delete dir="${basedir}/build/code-browser"/>
-  <delete dir="${basedir}/build/coverage"/>
-  <delete dir="${basedir}/build/logs"/>
-  <delete dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="prepare" depends="clean,phpab"
-         description="Prepare for build">
-  <mkdir dir="${basedir}/build/api"/>
-  <mkdir dir="${basedir}/build/code-browser"/>
-  <mkdir dir="${basedir}/build/coverage"/>
-  <mkdir dir="${basedir}/build/logs"/>
-  <mkdir dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="phpab" description="Generate autoloader scripts">
-  <exec executable="phpab">
-   <arg value="--output" />
-   <arg path="Text/Template/Autoload.php" />
-   <arg value="--template" />
-   <arg path="Text/Template/Autoload.php.in" />
-   <arg value="--indent" />
-   <arg value="            " />
-   <arg path="Text" />
-  </exec>
- </target>
-
- <target name="lint">
-  <apply executable="${php}" failonerror="true">
-   <arg value="-l" />
-
-   <fileset dir="${basedir}/Text">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-<!--
-   <fileset dir="${basedir}/Tests">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
--->
-  </apply>
- </target>
-
- <target name="phploc" description="Measure project size using PHPLOC">
-  <exec executable="phploc">
-   <arg value="--log-csv" />
-   <arg value="${basedir}/build/logs/phploc.csv" />
-   <arg path="${basedir}/Text" />
-  </exec>
- </target>
-
- <target name="pdepend"
-         description="Calculate software metrics using PHP_Depend">
-  <exec executable="pdepend">
-   <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
-   <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
-   <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
-   <arg path="${basedir}/Text" />
-  </exec>
- </target>
-
- <target name="phpmd"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/Text" />
-   <arg value="text" />
-   <arg value="${basedir}/build/phpmd.xml" />
-  </exec>
- </target>
-
- <target name="phpmd-ci"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/Text" />
-   <arg value="xml" />
-   <arg value="${basedir}/build/phpmd.xml" />
-   <arg value="--reportfile" />
-   <arg value="${basedir}/build/logs/pmd.xml" />
-  </exec>
- </target>
-
- <target name="phpcs"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=${basedir}/build/PHPCS" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=Autoload.php" />
-   <arg path="${basedir}/Text" />
-  </exec>
- </target>
-
- <target name="phpcs-ci"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs" output="/dev/null">
-   <arg value="--report=checkstyle" />
-   <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
-   <arg value="--standard=${basedir}/build/PHPCS" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=Autoload.php" />
-   <arg path="${basedir}/Text" />
-  </exec>
- </target>
-
- <target name="phpcpd" description="Find duplicate code using PHPCPD">
-  <exec executable="phpcpd">
-   <arg value="--log-pmd" />
-   <arg value="${basedir}/build/logs/pmd-cpd.xml" />
-   <arg path="${basedir}/Text" />
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <condition property="phpunit_cmd" value="${php} ${phpunit}" else="${phpunit}">
-   <not>
-    <equals arg1="${phpunit}" arg2="phpunit" />
-   </not>
-  </condition>
-
-  <exec executable="${phpunit_cmd}" failonerror="true"/>
- </target>
-
- <target name="phpcb"
-         description="Aggregate tool output with PHP_CodeBrowser">
-  <exec executable="phpcb">
-   <arg value="--log" />
-   <arg path="${basedir}/build/logs" />
-   <arg value="--source" />
-   <arg path="${basedir}/Text" />
-   <arg value="--output" />
-   <arg path="${basedir}/build/code-browser" />
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/phpunit/php-text-template/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php b/core/vendor/phpunit/php-text-template/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
deleted file mode 100644
index bf9d520..0000000
--- a/core/vendor/phpunit/php-text-template/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class PHPCS_Sniffs_ControlStructures_ControlSignatureSniff extends PHP_CodeSniffer_Standards_AbstractPatternSniff
-{
-    public function __construct()
-    {
-        parent::__construct(true);
-    }
-
-    protected function getPatterns()
-    {
-        return array(
-          'do {EOL...} while (...);EOL',
-          'while (...) {EOL',
-          'for (...) {EOL',
-          'if (...) {EOL',
-          'foreach (...) {EOL',
-          '}EOLelse if (...) {EOL',
-          '}EOLelse {EOL',
-          'do {EOL',
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-text-template/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php b/core/vendor/phpunit/php-text-template/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
deleted file mode 100644
index e91d6c6..0000000
--- a/core/vendor/phpunit/php-text-template/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class PHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff implements PHP_CodeSniffer_Sniff
-{
-    public function register()
-    {
-        return array(T_STRING_CONCAT);
-    }
-
-    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
-    {
-        $tokens = $phpcsFile->getTokens();
-
-        if ($tokens[($stackPtr - 1)]['code'] !== T_WHITESPACE ||
-            $tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) {
-
-            $phpcsFile->addError(
-              'Concatenation operator must be surrounded by whitespace',
-              $stackPtr
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-text-template/build/PHPCS/ruleset.xml b/core/vendor/phpunit/php-text-template/build/PHPCS/ruleset.xml
deleted file mode 100644
index 402f214..0000000
--- a/core/vendor/phpunit/php-text-template/build/PHPCS/ruleset.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="Sebastian">
- <description>Sebastian Bergmann's coding standard</description>
-
- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
- <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
- <rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
- <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
- <rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
- <rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
-
- <rule ref="Generic.Commenting.Todo"/>
-
- <rule ref="Generic.ControlStructures.InlineControlStructure"/>
-
- <rule ref="Generic.Files.LineEndings"/>
-
- <rule ref="Generic.Formatting.DisallowMultipleStatements"/>
- <rule ref="Generic.Formatting.NoSpaceAfterCast"/>
-
- <rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
- <rule ref="PEAR.Functions.ValidDefaultValue"/>
-
- <rule ref="Generic.NamingConventions.ConstructorName"/>
- <rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
- <rule ref="PEAR.NamingConventions.ValidClassName"/>
-
- <rule ref="Generic.PHP.DisallowShortOpenTag"/>
- <rule ref="Generic.PHP.NoSilencedErrors"/>
- <rule ref="Generic.PHP.UpperCaseConstant"/>
-
- <rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
- <rule ref="Generic.WhiteSpace.ScopeIndent"/>
- <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
-</ruleset>
diff --git a/core/vendor/phpunit/php-text-template/build/phpmd.xml b/core/vendor/phpunit/php-text-template/build/phpmd.xml
deleted file mode 100644
index 23ecb8b..0000000
--- a/core/vendor/phpunit/php-text-template/build/phpmd.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Sebastian"
-         xmlns="http://pmd.sf.net/ruleset/1.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
-  <description>Sebastian Bergmann's ruleset</description>
-
-  <rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
-  <rule ref="rulesets/codesize.xml/NPathComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveParameterList" />
-
-  <rule ref="rulesets/design.xml/EvalExpression" />
-  <rule ref="rulesets/design.xml/ExitExpression" />
-  <rule ref="rulesets/design.xml/GotoStatement" />
-
-  <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
-
-  <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" />
-  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />
-</ruleset>
diff --git a/core/vendor/phpunit/php-text-template/composer.json b/core/vendor/phpunit/php-text-template/composer.json
deleted file mode 100644
index 3bb3fe9..0000000
--- a/core/vendor/phpunit/php-text-template/composer.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-    "name": "phpunit/php-text-template",
-    "description": "Simple template engine.",
-    "type": "library",
-    "keywords": [
-        "template"
-    ],
-    "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sb@sebastian-bergmann.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
-        "irc": "irc://irc.freenode.net/phpunit"
-    },
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "autoload": {
-        "classmap": [
-            "Text/"
-        ]
-    },
-    "include-path": [
-        ""
-    ]
-}
diff --git a/core/vendor/phpunit/php-text-template/package.xml b/core/vendor/phpunit/php-text-template/package.xml
deleted file mode 100644
index 7bd4f31..0000000
--- a/core/vendor/phpunit/php-text-template/package.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.4.10" version="2.0"
-  xmlns="http://pear.php.net/dtd/package-2.0"
-  xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
-                      http://pear.php.net/dtd/tasks-1.0.xsd
-                      http://pear.php.net/dtd/package-2.0
-                      http://pear.php.net/dtd/package-2.0.xsd">
- <name>Text_Template</name>
- <channel>pear.phpunit.de</channel>
- <summary>Simple template engine.</summary>
- <description>Simple template engine.</description>
- <lead>
-  <name>Sebastian Bergmann</name>
-  <user>sb</user>
-  <email>sb@sebastian-bergmann.de</email>
-  <active>yes</active>
- </lead>
- <date>2014-01-30</date>
- <version>
-  <release>1.2.0</release>
-  <api>1.2.0</api>
- </version>
- <stability>
-  <release>stable</release>
-  <api>stable</api>
- </stability>
- <license>The BSD 3-Clause License</license>
- <notes>http://github.com/sebastianbergmann/php-text-template</notes>
- <contents>
-  <dir name="/">
-   <dir name="Text">
-    <dir name="Template">
-     <file baseinstalldir="/" name="Autoload.php" role="php">
-      <tasks:replace from="@package_version@" to="version" type="package-info" />
-     </file>
-    </dir>
-    <file baseinstalldir="/" name="Template.php" role="php">
-     <tasks:replace from="@package_version@" to="version" type="package-info" />
-    </file>
-   </dir>
-   <file baseinstalldir="/" name="ChangeLog.md" role="doc"/>
-   <file baseinstalldir="/" name="LICENSE" role="doc"/>
-   <file baseinstalldir="/" name="README.md" role="doc"/>
-  </dir>
- </contents>
- <dependencies>
-  <required>
-   <php>
-    <min>5.3.3</min>
-   </php>
-   <pearinstaller>
-    <min>1.9.4</min>
-   </pearinstaller>
-  </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/core/vendor/phpunit/php-timer/.gitattributes b/core/vendor/phpunit/php-timer/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/phpunit/php-timer/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/phpunit/php-timer/.gitignore b/core/vendor/phpunit/php-timer/.gitignore
deleted file mode 100644
index a741983..0000000
--- a/core/vendor/phpunit/php-timer/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-build/api
-build/code-browser
-build/coverage
-build/logs
-build/pdepend
-cache.properties
-phpunit.xml
diff --git a/core/vendor/phpunit/php-timer/LICENSE b/core/vendor/phpunit/php-timer/LICENSE
deleted file mode 100644
index 581812a..0000000
--- a/core/vendor/phpunit/php-timer/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-PHP_Timer
-
-Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/php-timer/PHP/Timer.php b/core/vendor/phpunit/php-timer/PHP/Timer.php
deleted file mode 100644
index 0056ea8..0000000
--- a/core/vendor/phpunit/php-timer/PHP/Timer.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-/**
- * PHP_Timer
- *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    PHP
- * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-timer
- * @since      File available since Release 1.0.0
- */
-
-/**
- * Utility class for timing.
- *
- * @package    PHP
- * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-timer
- * @since      Class available since Release 1.0.0
- */
-class PHP_Timer
-{
-    /**
-     * @var array
-     */
-    private static $times = array(
-      'hour'   => 3600000,
-      'minute' => 60000,
-      'second' => 1000
-    );
-
-    /**
-     * @var array
-     */
-    private static $startTimes = array();
-
-    /**
-     * @var float
-     */
-    public static $requestTime;
-
-    /**
-     * Starts the timer.
-     */
-    public static function start()
-    {
-        array_push(self::$startTimes, microtime(TRUE));
-    }
-
-    /**
-     * Stops the timer and returns the elapsed time.
-     *
-     * @return float
-     */
-    public static function stop()
-    {
-        return microtime(TRUE) - array_pop(self::$startTimes);
-    }
-
-    /**
-     * Formats the elapsed time as a string.
-     *
-     * @param  float $time
-     * @return string
-     */
-    public static function secondsToTimeString($time)
-    {
-        $ms = round($time * 1000);
-
-        foreach (self::$times as $unit => $value) {
-            if ($ms >= $value) {
-                $time = floor($ms / $value * 100.0) / 100.0;
-                return $time . ' ' . ($time == 1 ? $unit : $unit . 's');
-            }
-        }
-
-        return $ms . ' ms';
-    }
-
-    /**
-     * Formats the elapsed time since the start of the request as a string.
-     *
-     * @return string
-     */
-    public static function timeSinceStartOfRequest()
-    {
-        return self::secondsToTimeString(microtime(TRUE) - self::$requestTime);
-    }
-
-    /**
-     * Returns the resources (time, memory) of the request as a string.
-     *
-     * @return string
-     */
-    public static function resourceUsage()
-    {
-        return sprintf(
-          'Time: %s, Memory: %4.2fMb',
-          self::timeSinceStartOfRequest(),
-          memory_get_peak_usage(TRUE) / 1048576
-        );
-    }
-}
-
-if (isset($_SERVER['REQUEST_TIME_FLOAT'])) {
-    PHP_Timer::$requestTime = $_SERVER['REQUEST_TIME_FLOAT'];
-}
-
-else {
-    PHP_Timer::$requestTime = microtime(TRUE);
-}
diff --git a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php b/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php
deleted file mode 100644
index 17b781d..0000000
--- a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/**
- * PHP_Timer
- *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    PHP
- * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-timer
- * @since      File available since Release 1.1.0
- */
-
-spl_autoload_register(
-  function ($class)
-  {
-      static $classes = NULL;
-      static $path = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            'php_timer' => '/Timer.php'
-          );
-
-          $path = dirname(dirname(__FILE__));
-      }
-
-      $cn = strtolower($class);
-
-      if (isset($classes[$cn])) {
-          require $path . $classes[$cn];
-      }
-  }
-);
diff --git a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in b/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in
deleted file mode 100644
index c2681c2..0000000
--- a/core/vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/**
- * PHP_Timer
- *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    PHP
- * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-timer
- * @since      File available since Release 1.1.0
- */
-
-spl_autoload_register(
-  function ($class)
-  {
-      static $classes = NULL;
-      static $path = NULL;
-
-      if ($classes === NULL) {
-          $classes = array(
-            ___CLASSLIST___
-          );
-
-          $path = dirname(dirname(__FILE__));
-      }
-
-      $cn = strtolower($class);
-
-      if (isset($classes[$cn])) {
-          require $path . $classes[$cn];
-      }
-  }
-);
diff --git a/core/vendor/phpunit/php-timer/README.md b/core/vendor/phpunit/php-timer/README.md
deleted file mode 100644
index b618de0..0000000
--- a/core/vendor/phpunit/php-timer/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# PHP_Timer
-
-Utility class for timing things, factored out of PHPUnit into a stand-alone component.
-
-## Installation
-
-You can use the [PEAR Installer](http://pear.php.net/manual/en/guide.users.commandline.cli.php) or [Composer](http://getcomposer.org/) to download and install this package as well as its dependencies.
-
-### PEAR Installer
-
-The following two commands (which you may have to run as `root`) are all that is required to install this package using the PEAR Installer:
-
-    pear config-set auto_discover 1
-    pear install pear.phpunit.de/PHP_Timer
-
-### Composer
-
-To add this package as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-timer` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on PHP_Timer:
-
-    {
-        "require": {
-            "phpunit/php-timer": "*"
-        }
-    }
-
-### Usage
-
-#### Basic Timing
-
-```php
-PHP_Timer::start();
-
-$timer->start();
-
-// ...
-
-$time = PHP_Timer::stop();
-var_dump($time);
-
-print PHP_Timer::secondsToTimeString($time);
-```
-
-The code above yields the output below:
-
-    double(1.0967254638672E-5)
-    0 ms
-
-#### Resource Consumption Since PHP Startup
-
-```php
-print PHP_Timer::resourceUsage();
-```
-
-The code above yields the output below:
-
-    Time: 0 ms, Memory: 0.50Mb
diff --git a/core/vendor/phpunit/php-timer/Tests/TimerTest.php b/core/vendor/phpunit/php-timer/Tests/TimerTest.php
deleted file mode 100644
index 9cf4cb0..0000000
--- a/core/vendor/phpunit/php-timer/Tests/TimerTest.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/**
- * PHP_Timer
- *
- * Copyright (c) 2010-2013, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package    PHP
- * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/php-timer
- * @since      File available since Release 1.0.0
- */
-
-require_once dirname(dirname(__FILE__)) . '/PHP/Timer.php';
-
-/**
- * Tests for PHP_Timer.
- *
- * @package    PHP
- * @subpackage Timer
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2010-2013 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-timer
- * @since      Class available since Release 1.0.0
- */
-class PHP_TimerTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHP_Timer::start
-     * @covers PHP_Timer::stop
-     */
-    public function testStartStop()
-    {
-        $this->assertInternalType('float', PHP_Timer::stop());
-    }
-
-    /**
-     * @covers       PHP_Timer::secondsToTimeString
-     * @dataProvider secondsProvider
-     */
-    public function testSecondsToTimeString($string, $seconds)
-    {
-        $this->assertEquals(
-          $string, PHP_Timer::secondsToTimeString($seconds)
-        );
-    }
-
-    /**
-     * @covers PHP_Timer::timeSinceStartOfRequest
-     */
-    public function testTimeSinceStartOfRequest()
-    {
-        $this->assertStringMatchesFormat(
-          '%f %s', PHP_Timer::timeSinceStartOfRequest()
-        );
-    }
-
-
-    /**
-     * @covers PHP_Timer::resourceUsage
-     */
-    public function testResourceUsage()
-    {
-        $this->assertStringMatchesFormat(
-          'Time: %s, Memory: %s', PHP_Timer::resourceUsage()
-        );
-    }
-
-    public function secondsProvider()
-    {
-        return array(
-          array('0 ms', 0),
-          array('1 ms', .001),
-          array('10 ms', .01),
-          array('100 ms', .1),
-          array('999 ms', .999),
-          array('1 second', .9999),
-          array('1 second', 1),
-          array('2 seconds', 2),
-          array('59.9 seconds', 59.9),
-          array('59.99 seconds', 59.99),
-          array('59.99 seconds', 59.999),
-          array('1 minute', 59.9999),
-          array('59 seconds', 59.001),
-          array('59.01 seconds', 59.01),
-          array('1 minute', 60),
-          array('1.01 minutes', 61),
-          array('2 minutes', 120),
-          array('2.01 minutes', 121),
-          array('59.99 minutes', 3599.9),
-          array('59.99 minutes', 3599.99),
-          array('59.99 minutes', 3599.999),
-          array('1 hour', 3599.9999),
-          array('59.98 minutes', 3599.001),
-          array('59.98 minutes', 3599.01),
-          array('1 hour', 3600),
-          array('1 hour', 3601),
-          array('1 hour', 3601.9),
-          array('1 hour', 3601.99),
-          array('1 hour', 3601.999),
-          array('1 hour', 3601.9999),
-          array('1.01 hours', 3659.9999),
-          array('1.01 hours', 3659.001),
-          array('1.01 hours', 3659.01),
-          array('2 hours', 7199.9999),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-timer/build.xml b/core/vendor/phpunit/php-timer/build.xml
deleted file mode 100644
index 32469d0..0000000
--- a/core/vendor/phpunit/php-timer/build.xml
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="PHP_Timer" default="build">
- <property name="php" value="php"/>
- <property name="phpunit" value="phpunit"/>
-
- <target name="build"
-   depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpunit,phpcb"/>
-
- <target name="build-parallel"
-   depends="prepare,lint,tools-parallel,phpunit,phpcb"/>
-
- <target name="tools-parallel"
-         description="Run tools in parallel">
-  <parallel threadCount="2">
-   <sequential>
-    <antcall target="pdepend"/>
-    <antcall target="phpmd-ci"/>
-   </sequential>
-   <antcall target="phpcpd"/>
-   <antcall target="phpcs-ci"/>
-   <antcall target="phploc"/>
-  </parallel>
- </target>
-
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/build/api"/>
-  <delete dir="${basedir}/build/code-browser"/>
-  <delete dir="${basedir}/build/coverage"/>
-  <delete dir="${basedir}/build/logs"/>
-  <delete dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="prepare" depends="clean,phpab"
-         description="Prepare for build">
-  <mkdir dir="${basedir}/build/api"/>
-  <mkdir dir="${basedir}/build/code-browser"/>
-  <mkdir dir="${basedir}/build/coverage"/>
-  <mkdir dir="${basedir}/build/logs"/>
-  <mkdir dir="${basedir}/build/pdepend"/>
- </target>
-
- <target name="phpab" description="Generate autoloader scripts">
-  <exec executable="phpab">
-   <arg value="--output" />
-   <arg path="PHP/Timer/Autoload.php" />
-   <arg value="--template" />
-   <arg path="PHP/Timer/Autoload.php.in" />
-   <arg value="--indent" />
-   <arg value="            " />
-   <arg path="PHP" />
-  </exec>
- </target>
-
- <target name="lint">
-  <apply executable="${php}" failonerror="true">
-   <arg value="-l" />
-
-   <fileset dir="${basedir}/PHP">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-
-   <fileset dir="${basedir}/Tests">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-  </apply>
- </target>
-
- <target name="phploc" description="Measure project size using PHPLOC">
-  <exec executable="phploc">
-   <arg value="--log-csv" />
-   <arg value="${basedir}/build/logs/phploc.csv" />
-   <arg path="${basedir}/PHP" />
-  </exec>
- </target>
-
- <target name="pdepend"
-         description="Calculate software metrics using PHP_Depend">
-  <exec executable="pdepend">
-   <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
-   <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
-   <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
-   <arg path="${basedir}/PHP" />
-  </exec>
- </target>
-
- <target name="phpmd"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/PHP" />
-   <arg value="text" />
-   <arg value="${basedir}/build/phpmd.xml" />
-  </exec>
- </target>
-
- <target name="phpmd-ci"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/PHP" />
-   <arg value="xml" />
-   <arg value="${basedir}/build/phpmd.xml" />
-   <arg value="--reportfile" />
-   <arg value="${basedir}/build/logs/pmd.xml" />
-  </exec>
- </target>
-
- <target name="phpcs"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=${basedir}/build/PHPCS" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=Autoload.php" />
-   <arg path="${basedir}/PHP" />
-  </exec>
- </target>
-
- <target name="phpcs-ci"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs" output="/dev/null">
-   <arg value="--report=checkstyle" />
-   <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
-   <arg value="--standard=${basedir}/build/PHPCS" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=Autoload.php" />
-   <arg path="${basedir}/PHP" />
-  </exec>
- </target>
-
- <target name="phpcpd" description="Find duplicate code using PHPCPD">
-  <exec executable="phpcpd">
-   <arg value="--log-pmd" />
-   <arg value="${basedir}/build/logs/pmd-cpd.xml" />
-   <arg path="${basedir}/PHP" />
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <condition property="phpunit_cmd" value="${php} ${phpunit}" else="${phpunit}">
-   <not>
-    <equals arg1="${phpunit}" arg2="phpunit" />
-   </not>
-  </condition>
-
-  <exec executable="${phpunit_cmd}" failonerror="true"/>
- </target>
-
- <target name="phpcb"
-         description="Aggregate tool output with PHP_CodeBrowser">
-  <exec executable="phpcb">
-   <arg value="--log" />
-   <arg path="${basedir}/build/logs" />
-   <arg value="--source" />
-   <arg path="${basedir}/PHP" />
-   <arg value="--output" />
-   <arg path="${basedir}/build/code-browser" />
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/phpunit/php-timer/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php b/core/vendor/phpunit/php-timer/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
deleted file mode 100644
index bf9d520..0000000
--- a/core/vendor/phpunit/php-timer/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class PHPCS_Sniffs_ControlStructures_ControlSignatureSniff extends PHP_CodeSniffer_Standards_AbstractPatternSniff
-{
-    public function __construct()
-    {
-        parent::__construct(true);
-    }
-
-    protected function getPatterns()
-    {
-        return array(
-          'do {EOL...} while (...);EOL',
-          'while (...) {EOL',
-          'for (...) {EOL',
-          'if (...) {EOL',
-          'foreach (...) {EOL',
-          '}EOLelse if (...) {EOL',
-          '}EOLelse {EOL',
-          'do {EOL',
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-timer/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php b/core/vendor/phpunit/php-timer/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
deleted file mode 100644
index e91d6c6..0000000
--- a/core/vendor/phpunit/php-timer/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class PHPCS_Sniffs_Whitespace_ConcatenationSpacingSniff implements PHP_CodeSniffer_Sniff
-{
-    public function register()
-    {
-        return array(T_STRING_CONCAT);
-    }
-
-    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
-    {
-        $tokens = $phpcsFile->getTokens();
-
-        if ($tokens[($stackPtr - 1)]['code'] !== T_WHITESPACE ||
-            $tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) {
-
-            $phpcsFile->addError(
-              'Concatenation operator must be surrounded by whitespace',
-              $stackPtr
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-timer/build/PHPCS/ruleset.xml b/core/vendor/phpunit/php-timer/build/PHPCS/ruleset.xml
deleted file mode 100644
index 402f214..0000000
--- a/core/vendor/phpunit/php-timer/build/PHPCS/ruleset.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="Sebastian">
- <description>Sebastian Bergmann's coding standard</description>
-
- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
- <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
- <rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
- <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
- <rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
- <rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
-
- <rule ref="Generic.Commenting.Todo"/>
-
- <rule ref="Generic.ControlStructures.InlineControlStructure"/>
-
- <rule ref="Generic.Files.LineEndings"/>
-
- <rule ref="Generic.Formatting.DisallowMultipleStatements"/>
- <rule ref="Generic.Formatting.NoSpaceAfterCast"/>
-
- <rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
- <rule ref="PEAR.Functions.ValidDefaultValue"/>
-
- <rule ref="Generic.NamingConventions.ConstructorName"/>
- <rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
- <rule ref="PEAR.NamingConventions.ValidClassName"/>
-
- <rule ref="Generic.PHP.DisallowShortOpenTag"/>
- <rule ref="Generic.PHP.NoSilencedErrors"/>
- <rule ref="Generic.PHP.UpperCaseConstant"/>
-
- <rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
- <rule ref="Generic.WhiteSpace.ScopeIndent"/>
- <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
-</ruleset>
diff --git a/core/vendor/phpunit/php-timer/build/phpmd.xml b/core/vendor/phpunit/php-timer/build/phpmd.xml
deleted file mode 100644
index 23ecb8b..0000000
--- a/core/vendor/phpunit/php-timer/build/phpmd.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Sebastian"
-         xmlns="http://pmd.sf.net/ruleset/1.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
-  <description>Sebastian Bergmann's ruleset</description>
-
-  <rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
-  <rule ref="rulesets/codesize.xml/NPathComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveParameterList" />
-
-  <rule ref="rulesets/design.xml/EvalExpression" />
-  <rule ref="rulesets/design.xml/ExitExpression" />
-  <rule ref="rulesets/design.xml/GotoStatement" />
-
-  <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
-
-  <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" />
-  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />
-</ruleset>
diff --git a/core/vendor/phpunit/php-timer/composer.json b/core/vendor/phpunit/php-timer/composer.json
deleted file mode 100644
index 211c001..0000000
--- a/core/vendor/phpunit/php-timer/composer.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-    "name": "phpunit/php-timer",
-    "description": "Utility class for timing",
-    "type": "library",
-    "keywords": [
-        "timer"
-    ],
-    "homepage": "https://github.com/sebastianbergmann/php-timer/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sb@sebastian-bergmann.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/php-timer/issues",
-        "irc": "irc://irc.freenode.net/phpunit"
-    },
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "autoload": {
-        "classmap": [
-            "PHP/"
-        ]
-    },
-    "include-path": [
-        ""
-    ]
-}
diff --git a/core/vendor/phpunit/php-timer/package.xml b/core/vendor/phpunit/php-timer/package.xml
deleted file mode 100644
index 2980a31..0000000
--- a/core/vendor/phpunit/php-timer/package.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.4.10" version="2.0"
-  xmlns="http://pear.php.net/dtd/package-2.0"
-  xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
-                      http://pear.php.net/dtd/tasks-1.0.xsd
-                      http://pear.php.net/dtd/package-2.0
-                      http://pear.php.net/dtd/package-2.0.xsd">
- <name>PHP_Timer</name>
- <channel>pear.phpunit.de</channel>
- <summary>Utility class for timing</summary>
- <description>Utility class for timing</description>
- <lead>
-  <name>Sebastian Bergmann</name>
-  <user>sb</user>
-  <email>sb@sebastian-bergmann.de</email>
-  <active>yes</active>
- </lead>
- <date>2013-08-02</date>
- <version>
-  <release>1.0.5</release>
-  <api>1.0.0</api>
- </version>
- <stability>
-  <release>stable</release>
-  <api>stable</api>
- </stability>
- <license>The BSD 3-Clause License</license>
- <notes>http://github.com/sebastianbergmann/php-timer/blob/master/README.markdown</notes>
- <contents>
-  <dir name="/">
-   <dir name="PHP">
-    <dir name="Timer">
-     <file baseinstalldir="/" name="Autoload.php" role="php">
-      <tasks:replace from="@package_version@" to="version" type="package-info" />
-     </file>
-    </dir>
-    <file baseinstalldir="/" name="Timer.php" role="php">
-     <tasks:replace from="@package_version@" to="version" type="package-info" />
-    </file>
-   </dir>
-   <file baseinstalldir="/" name="LICENSE" role="doc"/>
-   <file baseinstalldir="/" name="README.md" role="doc"/>
-  </dir>
- </contents>
- <dependencies>
-  <required>
-   <php>
-    <min>5.3.3</min>
-   </php>
-   <pearinstaller>
-    <min>1.9.2</min>
-   </pearinstaller>
-  </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/core/vendor/phpunit/php-timer/phpunit.xml.dist b/core/vendor/phpunit/php-timer/phpunit.xml.dist
deleted file mode 100644
index ee82ac8..0000000
--- a/core/vendor/phpunit/php-timer/phpunit.xml.dist
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false">
-  <testsuites>
-    <testsuite name="PHP_Timer">
-      <directory suffix=".php">Tests</directory>
-    </testsuite>
-  </testsuites>
-
-  <logging>
-    <log type="coverage-html" target="build/coverage" title="PHP_Timer"
-         charset="UTF-8" yui="true" highlight="true"
-         lowUpperBound="35" highLowerBound="70"/>
-    <log type="coverage-clover" target="build/logs/clover.xml"/>
-    <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
-  </logging>
-
-  <filter>
-    <whitelist addUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">PHP</directory>
-      <exclude>
-        <file>PHP/Timer/Autoload.php</file>
-      </exclude>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/phpunit/php-token-stream/.gitattributes b/core/vendor/phpunit/php-token-stream/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/phpunit/php-token-stream/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/phpunit/php-token-stream/.gitignore b/core/vendor/phpunit/php-token-stream/.gitignore
deleted file mode 100644
index 103eecf..0000000
--- a/core/vendor/phpunit/php-token-stream/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/.idea
-/composer.lock
-/composer.phar
-/vendor
diff --git a/core/vendor/phpunit/php-token-stream/.travis.yml b/core/vendor/phpunit/php-token-stream/.travis.yml
deleted file mode 100644
index e1bd2d3..0000000
--- a/core/vendor/phpunit/php-token-stream/.travis.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-  - hhvm-nightly
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-script:
-  - ./vendor/bin/phpunit --configuration ./build/phpunit.xml
-
-matrix:
-  allow_failures:
-    - php: hhvm
-
-notifications:
-  email: false
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/6668f52f3dd4e3f81960
-    on_success: always
-    on_failure: always
-    on_start: false
-
diff --git a/core/vendor/phpunit/php-token-stream/LICENSE b/core/vendor/phpunit/php-token-stream/LICENSE
deleted file mode 100644
index 6a176fa..0000000
--- a/core/vendor/phpunit/php-token-stream/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-PHP_TokenStream
-
-Copyright (c) 2009-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/php-token-stream/README.md b/core/vendor/phpunit/php-token-stream/README.md
deleted file mode 100644
index 31d4b24..0000000
--- a/core/vendor/phpunit/php-token-stream/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-[![Build Status](https://travis-ci.org/sebastianbergmann/php-token-stream.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-token-stream)
-
-# PHP_TokenStream
-
-## Installation
-
-To add this package as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-token-stream` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on PHP_TokenStream:
-
-    {
-        "require": {
-            "phpunit/php-token-stream": "~1.2"
-        }
-    }
diff --git a/core/vendor/phpunit/php-token-stream/build.xml b/core/vendor/phpunit/php-token-stream/build.xml
deleted file mode 100644
index f02f4b5..0000000
--- a/core/vendor/phpunit/php-token-stream/build.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="php-token-stream">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <exec executable="${basedir}/vendor/bin/phpunit" failonerror="true">
-   <arg value="--configuration"/>
-   <arg path="${basedir}/build/phpunit.xml"/>
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/phpunit/php-token-stream/build/phpunit.xml b/core/vendor/phpunit/php-token-stream/build/phpunit.xml
deleted file mode 100644
index 139586d..0000000
--- a/core/vendor/phpunit/php-token-stream/build/phpunit.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         bootstrap="../tests/bootstrap.php"
-         verbode="true">
-  <testsuites>
-    <testsuite name="php-token-stream">
-      <directory suffix="Test.php">../tests</directory>
-    </testsuite>
-  </testsuites>
-
-  <filter>
-    <whitelist addUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">../src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/phpunit/php-token-stream/composer.json b/core/vendor/phpunit/php-token-stream/composer.json
deleted file mode 100644
index dfde729..0000000
--- a/core/vendor/phpunit/php-token-stream/composer.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "name": "phpunit/php-token-stream",
-    "description": "Wrapper around PHP's tokenizer extension.",
-    "type": "library",
-    "keywords": ["tokenizer"],
-    "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/php-token-stream/issues"
-    },
-    "require": {
-        "php": ">=5.3.3",
-        "ext-tokenizer": "*"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.2"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.4-dev"
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/src/Token.php b/core/vendor/phpunit/php-token-stream/src/Token.php
deleted file mode 100644
index 9147499..0000000
--- a/core/vendor/phpunit/php-token-stream/src/Token.php
+++ /dev/null
@@ -1,723 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A PHP token.
- *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version   Release: @package_version@
- * @link      http://github.com/sebastianbergmann/php-token-stream/tree
- * @since     Class available since Release 1.0.0
- */
-abstract class PHP_Token
-{
-    /**
-     * @var string
-     */
-    protected $text;
-
-    /**
-     * @var integer
-     */
-    protected $line;
-
-    /**
-     * @var PHP_Token_Stream
-     */
-    protected $tokenStream;
-
-    /**
-     * @var integer
-     */
-    protected $id;
-
-    /**
-     * Constructor.
-     *
-     * @param string           $text
-     * @param integer          $line
-     * @param PHP_Token_Stream $tokenStream
-     * @param integer          $id
-     */
-    public function __construct($text, $line, PHP_Token_Stream $tokenStream, $id)
-    {
-        $this->text        = $text;
-        $this->line        = $line;
-        $this->tokenStream = $tokenStream;
-        $this->id          = $id;
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->text;
-    }
-
-    /**
-     * @return integer
-     */
-    public function getLine()
-    {
-        return $this->line;
-    }
-}
-
-abstract class PHP_TokenWithScope extends PHP_Token
-{
-    protected $endTokenId;
-
-    /**
-     * Get the docblock for this token
-     *
-     * This method will fetch the docblock belonging to the current token. The
-     * docblock must be placed on the line directly above the token to be
-     * recognized.
-     *
-     * @return string|null Returns the docblock as a string if found
-     */
-    public function getDocblock()
-    {
-        $tokens            = $this->tokenStream->tokens();
-        $currentLineNumber = $tokens[$this->id]->getLine();
-        $prevLineNumber    = $currentLineNumber - 1;
-
-        for ($i = $this->id - 1; $i; $i--) {
-            if (!isset($tokens[$i])) {
-                return;
-            }
-
-            if ($tokens[$i] instanceof PHP_Token_FUNCTION ||
-                $tokens[$i] instanceof PHP_Token_CLASS ||
-                $tokens[$i] instanceof PHP_Token_TRAIT) {
-                // Some other trait, class or function, no docblock can be
-                // used for the current token
-                break;
-            }
-
-            $line = $tokens[$i]->getLine();
-
-            if ($line == $currentLineNumber ||
-                ($line == $prevLineNumber &&
-                 $tokens[$i] instanceof PHP_Token_WHITESPACE)) {
-                continue;
-            }
-
-            if ($line < $currentLineNumber &&
-                !$tokens[$i] instanceof PHP_Token_DOC_COMMENT) {
-                break;
-            }
-
-            return (string)$tokens[$i];
-        }
-    }
-
-    public function getEndTokenId()
-    {
-        $block  = 0;
-        $i      = $this->id;
-        $tokens = $this->tokenStream->tokens();
-
-        while ($this->endTokenId === NULL && isset($tokens[$i])) {
-            if ($tokens[$i] instanceof PHP_Token_OPEN_CURLY ||
-                $tokens[$i] instanceof PHP_Token_CURLY_OPEN) {
-                $block++;
-            }
-
-            else if ($tokens[$i] instanceof PHP_Token_CLOSE_CURLY) {
-                $block--;
-
-                if ($block === 0) {
-                    $this->endTokenId = $i;
-                }
-            }
-
-            else if (($this instanceof PHP_Token_FUNCTION ||
-                $this instanceof PHP_Token_NAMESPACE) &&
-                $tokens[$i] instanceof PHP_Token_SEMICOLON) {
-                if ($block === 0) {
-                    $this->endTokenId = $i;
-                }
-            }
-
-            $i++;
-        }
-
-        if ($this->endTokenId === NULL) {
-            $this->endTokenId = $this->id;
-        }
-
-        return $this->endTokenId;
-    }
-
-    public function getEndLine()
-    {
-        return $this->tokenStream[$this->getEndTokenId()]->getLine();
-    }
-
-}
-
-abstract class PHP_TokenWithScopeAndVisibility extends PHP_TokenWithScope {
-
-    public function getVisibility()
-    {
-        $tokens = $this->tokenStream->tokens();
-
-        for ($i = $this->id - 2; $i > $this->id - 7; $i -= 2) {
-            if (isset($tokens[$i]) &&
-               ($tokens[$i] instanceof PHP_Token_PRIVATE ||
-                $tokens[$i] instanceof PHP_Token_PROTECTED ||
-                $tokens[$i] instanceof PHP_Token_PUBLIC)) {
-                return strtolower(
-                  str_replace('PHP_Token_', '', get_class($tokens[$i]))
-                );
-            }
-            if (isset($tokens[$i]) &&
-              !($tokens[$i] instanceof PHP_Token_STATIC ||
-                $tokens[$i] instanceof PHP_Token_FINAL ||
-                $tokens[$i] instanceof PHP_Token_ABSTRACT)) {
-                // no keywords; stop visibility search
-                break;
-            }
-        }
-    }
-
-    public function getKeywords()
-    {
-        $keywords = array();
-        $tokens = $this->tokenStream->tokens();
-
-        for ($i = $this->id - 2; $i > $this->id - 7; $i -= 2) {
-            if (isset($tokens[$i]) &&
-               ($tokens[$i] instanceof PHP_Token_PRIVATE ||
-                $tokens[$i] instanceof PHP_Token_PROTECTED ||
-                $tokens[$i] instanceof PHP_Token_PUBLIC)) {
-                continue;
-            }
-
-            if (isset($tokens[$i]) &&
-               ($tokens[$i] instanceof PHP_Token_STATIC ||
-                $tokens[$i] instanceof PHP_Token_FINAL ||
-                $tokens[$i] instanceof PHP_Token_ABSTRACT)) {
-                $keywords[] = strtolower(
-                  str_replace('PHP_Token_', '', get_class($tokens[$i]))
-                );
-            }
-        }
-
-        return implode(',', $keywords);
-    }
-
-}
-
-abstract class PHP_Token_Includes extends PHP_Token
-{
-    protected $name;
-    protected $type;
-
-    public function getName()
-    {
-        if ($this->name !== NULL) {
-            return $this->name;
-        }
-
-        $tokens = $this->tokenStream->tokens();
-
-        if ($tokens[$this->id+2] instanceof PHP_Token_CONSTANT_ENCAPSED_STRING) {
-            $this->name = trim($tokens[$this->id+2], "'\"");
-            $this->type = strtolower(
-              str_replace('PHP_Token_', '', get_class($tokens[$this->id]))
-            );
-        }
-
-        return $this->name;
-    }
-
-    public function getType()
-    {
-        $this->getName();
-        return $this->type;
-    }
-}
-
-
-class PHP_Token_FUNCTION extends PHP_TokenWithScopeAndVisibility
-{
-    protected $arguments;
-    protected $ccn;
-    protected $name;
-    protected $signature;
-
-    public function getArguments()
-    {
-        if ($this->arguments !== NULL) {
-            return $this->arguments;
-        }
-
-        $this->arguments = array();
-        $tokens          = $this->tokenStream->tokens();
-        $typeHint        = NULL;
-
-        // Search for first token inside brackets
-        $i = $this->id + 2;
-        while (!$tokens[$i-1] instanceof PHP_Token_OPEN_BRACKET) {
-            $i++;
-        }
-
-        while (!$tokens[$i] instanceof PHP_Token_CLOSE_BRACKET) {
-            if ($tokens[$i] instanceof PHP_Token_STRING) {
-                $typeHint = (string)$tokens[$i];
-            }
-
-            else if ($tokens[$i] instanceof PHP_Token_VARIABLE) {
-                $this->arguments[(string)$tokens[$i]] = $typeHint;
-                $typeHint                             = NULL;
-            }
-
-            $i++;
-        }
-
-        return $this->arguments;
-    }
-
-    public function getName()
-    {
-        if ($this->name !== NULL) {
-            return $this->name;
-        }
-
-        $tokens = $this->tokenStream->tokens();
-
-        for ($i = $this->id + 1; $i < count($tokens); $i++) {
-            if ($tokens[$i] instanceof PHP_Token_STRING) {
-                $this->name = (string)$tokens[$i];
-                break;
-            }
-
-            else if ($tokens[$i] instanceof PHP_Token_AMPERSAND &&
-                     $tokens[$i+1] instanceof PHP_Token_STRING) {
-                $this->name = (string)$tokens[$i+1];
-                break;
-            }
-
-            else if ($tokens[$i] instanceof PHP_Token_OPEN_BRACKET) {
-                $this->name = 'anonymous function';
-                break;
-            }
-        }
-
-        if ($this->name != 'anonymous function') {
-            for ($i = $this->id; $i; --$i) {
-                if ($tokens[$i] instanceof PHP_Token_NAMESPACE) {
-                    $this->name = $tokens[$i]->getName() . '\\' . $this->name;
-                    break;
-                }
-
-                if ($tokens[$i] instanceof PHP_Token_INTERFACE) {
-                    break;
-                }
-            }
-        }
-
-        return $this->name;
-    }
-
-    public function getCCN()
-    {
-        if ($this->ccn !== NULL) {
-            return $this->ccn;
-        }
-
-        $this->ccn = 1;
-        $end       = $this->getEndTokenId();
-        $tokens    = $this->tokenStream->tokens();
-
-        for ($i = $this->id; $i <= $end; $i++) {
-            switch (get_class($tokens[$i])) {
-                case 'PHP_Token_IF':
-                case 'PHP_Token_ELSEIF':
-                case 'PHP_Token_FOR':
-                case 'PHP_Token_FOREACH':
-                case 'PHP_Token_WHILE':
-                case 'PHP_Token_CASE':
-                case 'PHP_Token_CATCH':
-                case 'PHP_Token_BOOLEAN_AND':
-                case 'PHP_Token_LOGICAL_AND':
-                case 'PHP_Token_BOOLEAN_OR':
-                case 'PHP_Token_LOGICAL_OR':
-                case 'PHP_Token_QUESTION_MARK': {
-                    $this->ccn++;
-                }
-                break;
-            }
-        }
-
-        return $this->ccn;
-    }
-
-    public function getSignature()
-    {
-        if ($this->signature !== NULL) {
-            return $this->signature;
-        }
-
-        if ($this->getName() == 'anonymous function') {
-            $this->signature = 'anonymous function';
-            $i               = $this->id + 1;
-        } else {
-            $this->signature = '';
-            $i               = $this->id + 2;
-        }
-
-        $tokens = $this->tokenStream->tokens();
-
-        while (isset($tokens[$i]) &&
-               !$tokens[$i] instanceof PHP_Token_OPEN_CURLY &&
-               !$tokens[$i] instanceof PHP_Token_SEMICOLON) {
-            $this->signature .= $tokens[$i++];
-        }
-
-        $this->signature = trim($this->signature);
-
-        return $this->signature;
-    }
-}
-
-class PHP_Token_INTERFACE extends PHP_TokenWithScopeAndVisibility
-{
-    protected $interfaces;
-
-    public function getName()
-    {
-        return (string)$this->tokenStream[$this->id + 2];
-    }
-
-    public function hasParent()
-    {
-        return $this->tokenStream[$this->id + 4] instanceof PHP_Token_EXTENDS;
-    }
-
-    public function getPackage()
-    {
-        $className  = $this->getName();
-        $docComment = $this->getDocblock();
-
-        $result = array(
-          'namespace'   => '',
-          'fullPackage' => '',
-          'category'    => '',
-          'package'     => '',
-          'subpackage'  => ''
-        );
-
-        for ($i = $this->id; $i; --$i) {
-            if ($this->tokenStream[$i] instanceof PHP_Token_NAMESPACE) {
-                $result['namespace'] = $this->tokenStream[$i]->getName();
-                break;
-            }
-        }
-
-        if (preg_match('/@category[\s]+([\.\w]+)/', $docComment, $matches)) {
-            $result['category'] = $matches[1];
-        }
-
-        if (preg_match('/@package[\s]+([\.\w]+)/', $docComment, $matches)) {
-            $result['package']     = $matches[1];
-            $result['fullPackage'] = $matches[1];
-        }
-
-        if (preg_match('/@subpackage[\s]+([\.\w]+)/', $docComment, $matches)) {
-            $result['subpackage']   = $matches[1];
-            $result['fullPackage'] .= '.' . $matches[1];
-        }
-
-        if (empty($result['fullPackage'])) {
-            $result['fullPackage'] = $this->arrayToName(
-              explode('_', str_replace('\\', '_', $className)), '.'
-            );
-        }
-
-        return $result;
-    }
-
-    protected function arrayToName(array $parts, $join = '\\')
-    {
-        $result = '';
-
-        if (count($parts) > 1) {
-            array_pop($parts);
-
-            $result = join($join, $parts);
-        }
-
-        return $result;
-    }
-
-    public function getParent()
-    {
-        if (!$this->hasParent()) {
-            return FALSE;
-        }
-
-        $i         = $this->id + 6;
-        $tokens    = $this->tokenStream->tokens();
-        $className = (string)$tokens[$i];
-
-        while (isset($tokens[$i+1]) &&
-               !$tokens[$i+1] instanceof PHP_Token_WHITESPACE) {
-            $className .= (string)$tokens[++$i];
-        }
-
-        return $className;
-    }
-
-    public function hasInterfaces()
-    {
-        return (isset($this->tokenStream[$this->id + 4]) &&
-                $this->tokenStream[$this->id + 4] instanceof PHP_Token_IMPLEMENTS) ||
-               (isset($this->tokenStream[$this->id + 8]) &&
-                $this->tokenStream[$this->id + 8] instanceof PHP_Token_IMPLEMENTS);
-    }
-
-    public function getInterfaces()
-    {
-        if ($this->interfaces !== NULL) {
-            return $this->interfaces;
-        }
-
-        if (!$this->hasInterfaces()) {
-            return ($this->interfaces = FALSE);
-        }
-
-        if ($this->tokenStream[$this->id + 4] instanceof PHP_Token_IMPLEMENTS) {
-            $i = $this->id + 3;
-        } else {
-            $i = $this->id + 7;
-        }
-
-        $tokens = $this->tokenStream->tokens();
-
-        while (!$tokens[$i+1] instanceof PHP_Token_OPEN_CURLY) {
-            $i++;
-
-            if ($tokens[$i] instanceof PHP_Token_STRING) {
-                $this->interfaces[] = (string)$tokens[$i];
-            }
-        }
-
-        return $this->interfaces;
-    }
-}
-
-class PHP_Token_ABSTRACT extends PHP_Token {}
-class PHP_Token_AMPERSAND extends PHP_Token {}
-class PHP_Token_AND_EQUAL extends PHP_Token {}
-class PHP_Token_ARRAY extends PHP_Token {}
-class PHP_Token_ARRAY_CAST extends PHP_Token {}
-class PHP_Token_AS extends PHP_Token {}
-class PHP_Token_AT extends PHP_Token {}
-class PHP_Token_BACKTICK extends PHP_Token {}
-class PHP_Token_BAD_CHARACTER extends PHP_Token {}
-class PHP_Token_BOOLEAN_AND extends PHP_Token {}
-class PHP_Token_BOOLEAN_OR extends PHP_Token {}
-class PHP_Token_BOOL_CAST extends PHP_Token {}
-class PHP_Token_BREAK extends PHP_Token {}
-class PHP_Token_CARET extends PHP_Token {}
-class PHP_Token_CASE extends PHP_Token {}
-class PHP_Token_CATCH extends PHP_Token {}
-class PHP_Token_CHARACTER extends PHP_Token {}
-class PHP_Token_CLASS extends PHP_Token_INTERFACE {}
-class PHP_Token_CLASS_C extends PHP_Token {}
-class PHP_Token_CLASS_NAME_CONSTANT extends PHP_Token {}
-class PHP_Token_CLONE extends PHP_Token {}
-class PHP_Token_CLOSE_BRACKET extends PHP_Token {}
-class PHP_Token_CLOSE_CURLY extends PHP_Token {}
-class PHP_Token_CLOSE_SQUARE extends PHP_Token {}
-class PHP_Token_CLOSE_TAG extends PHP_Token {}
-class PHP_Token_COLON extends PHP_Token {}
-class PHP_Token_COMMA extends PHP_Token {}
-class PHP_Token_COMMENT extends PHP_Token {}
-class PHP_Token_CONCAT_EQUAL extends PHP_Token {}
-class PHP_Token_CONST extends PHP_Token {}
-class PHP_Token_CONSTANT_ENCAPSED_STRING extends PHP_Token {}
-class PHP_Token_CONTINUE extends PHP_Token {}
-class PHP_Token_CURLY_OPEN extends PHP_Token {}
-class PHP_Token_DEC extends PHP_Token {}
-class PHP_Token_DECLARE extends PHP_Token {}
-class PHP_Token_DEFAULT extends PHP_Token {}
-class PHP_Token_DIV extends PHP_Token {}
-class PHP_Token_DIV_EQUAL extends PHP_Token {}
-class PHP_Token_DNUMBER extends PHP_Token {}
-class PHP_Token_DO extends PHP_Token {}
-class PHP_Token_DOC_COMMENT extends PHP_Token {}
-class PHP_Token_DOLLAR extends PHP_Token {}
-class PHP_Token_DOLLAR_OPEN_CURLY_BRACES extends PHP_Token {}
-class PHP_Token_DOT extends PHP_Token {}
-class PHP_Token_DOUBLE_ARROW extends PHP_Token {}
-class PHP_Token_DOUBLE_CAST extends PHP_Token {}
-class PHP_Token_DOUBLE_COLON extends PHP_Token {}
-class PHP_Token_DOUBLE_QUOTES extends PHP_Token {}
-class PHP_Token_ECHO extends PHP_Token {}
-class PHP_Token_ELSE extends PHP_Token {}
-class PHP_Token_ELSEIF extends PHP_Token {}
-class PHP_Token_EMPTY extends PHP_Token {}
-class PHP_Token_ENCAPSED_AND_WHITESPACE extends PHP_Token {}
-class PHP_Token_ENDDECLARE extends PHP_Token {}
-class PHP_Token_ENDFOR extends PHP_Token {}
-class PHP_Token_ENDFOREACH extends PHP_Token {}
-class PHP_Token_ENDIF extends PHP_Token {}
-class PHP_Token_ENDSWITCH extends PHP_Token {}
-class PHP_Token_ENDWHILE extends PHP_Token {}
-class PHP_Token_END_HEREDOC extends PHP_Token {}
-class PHP_Token_EQUAL extends PHP_Token {}
-class PHP_Token_EVAL extends PHP_Token {}
-class PHP_Token_EXCLAMATION_MARK extends PHP_Token {}
-class PHP_Token_EXIT extends PHP_Token {}
-class PHP_Token_EXTENDS extends PHP_Token {}
-class PHP_Token_FILE extends PHP_Token {}
-class PHP_Token_FINAL extends PHP_Token {}
-class PHP_Token_FOR extends PHP_Token {}
-class PHP_Token_FOREACH extends PHP_Token {}
-class PHP_Token_FUNC_C extends PHP_Token {}
-class PHP_Token_GLOBAL extends PHP_Token {}
-class PHP_Token_GT extends PHP_Token {}
-class PHP_Token_IF extends PHP_Token {}
-class PHP_Token_IMPLEMENTS extends PHP_Token {}
-class PHP_Token_INC extends PHP_Token {}
-class PHP_Token_INCLUDE extends PHP_Token_Includes {}
-class PHP_Token_INCLUDE_ONCE extends PHP_Token_Includes {}
-class PHP_Token_INLINE_HTML extends PHP_Token {}
-class PHP_Token_INSTANCEOF extends PHP_Token {}
-class PHP_Token_INT_CAST extends PHP_Token {}
-class PHP_Token_ISSET extends PHP_Token {}
-class PHP_Token_IS_EQUAL extends PHP_Token {}
-class PHP_Token_IS_GREATER_OR_EQUAL extends PHP_Token {}
-class PHP_Token_IS_IDENTICAL extends PHP_Token {}
-class PHP_Token_IS_NOT_EQUAL extends PHP_Token {}
-class PHP_Token_IS_NOT_IDENTICAL extends PHP_Token {}
-class PHP_Token_IS_SMALLER_OR_EQUAL extends PHP_Token {}
-class PHP_Token_LINE extends PHP_Token {}
-class PHP_Token_LIST extends PHP_Token {}
-class PHP_Token_LNUMBER extends PHP_Token {}
-class PHP_Token_LOGICAL_AND extends PHP_Token {}
-class PHP_Token_LOGICAL_OR extends PHP_Token {}
-class PHP_Token_LOGICAL_XOR extends PHP_Token {}
-class PHP_Token_LT extends PHP_Token {}
-class PHP_Token_METHOD_C extends PHP_Token {}
-class PHP_Token_MINUS extends PHP_Token {}
-class PHP_Token_MINUS_EQUAL extends PHP_Token {}
-class PHP_Token_MOD_EQUAL extends PHP_Token {}
-class PHP_Token_MULT extends PHP_Token {}
-class PHP_Token_MUL_EQUAL extends PHP_Token {}
-class PHP_Token_NEW extends PHP_Token {}
-class PHP_Token_NUM_STRING extends PHP_Token {}
-class PHP_Token_OBJECT_CAST extends PHP_Token {}
-class PHP_Token_OBJECT_OPERATOR extends PHP_Token {}
-class PHP_Token_OPEN_BRACKET extends PHP_Token {}
-class PHP_Token_OPEN_CURLY extends PHP_Token {}
-class PHP_Token_OPEN_SQUARE extends PHP_Token {}
-class PHP_Token_OPEN_TAG extends PHP_Token {}
-class PHP_Token_OPEN_TAG_WITH_ECHO extends PHP_Token {}
-class PHP_Token_OR_EQUAL extends PHP_Token {}
-class PHP_Token_PAAMAYIM_NEKUDOTAYIM extends PHP_Token {}
-class PHP_Token_PERCENT extends PHP_Token {}
-class PHP_Token_PIPE extends PHP_Token {}
-class PHP_Token_PLUS extends PHP_Token {}
-class PHP_Token_PLUS_EQUAL extends PHP_Token {}
-class PHP_Token_PRINT extends PHP_Token {}
-class PHP_Token_PRIVATE extends PHP_Token {}
-class PHP_Token_PROTECTED extends PHP_Token {}
-class PHP_Token_PUBLIC extends PHP_Token {}
-class PHP_Token_QUESTION_MARK extends PHP_Token {}
-class PHP_Token_REQUIRE extends PHP_Token_Includes {}
-class PHP_Token_REQUIRE_ONCE extends PHP_Token_Includes {}
-class PHP_Token_RETURN extends PHP_Token {}
-class PHP_Token_SEMICOLON extends PHP_Token {}
-class PHP_Token_SL extends PHP_Token {}
-class PHP_Token_SL_EQUAL extends PHP_Token {}
-class PHP_Token_SR extends PHP_Token {}
-class PHP_Token_SR_EQUAL extends PHP_Token {}
-class PHP_Token_START_HEREDOC extends PHP_Token {}
-class PHP_Token_STATIC extends PHP_Token {}
-class PHP_Token_STRING extends PHP_Token {}
-class PHP_Token_STRING_CAST extends PHP_Token {}
-class PHP_Token_STRING_VARNAME extends PHP_Token {}
-class PHP_Token_SWITCH extends PHP_Token {}
-class PHP_Token_THROW extends PHP_Token {}
-class PHP_Token_TILDE extends PHP_Token {}
-class PHP_Token_TRY extends PHP_Token {}
-class PHP_Token_UNSET extends PHP_Token {}
-class PHP_Token_UNSET_CAST extends PHP_Token {}
-class PHP_Token_USE extends PHP_Token {}
-class PHP_Token_VAR extends PHP_Token {}
-class PHP_Token_VARIABLE extends PHP_Token {}
-class PHP_Token_WHILE extends PHP_Token {}
-class PHP_Token_WHITESPACE extends PHP_Token {}
-class PHP_Token_XOR_EQUAL extends PHP_Token {}
-
-// Tokens introduced in PHP 5.1
-class PHP_Token_HALT_COMPILER extends PHP_Token {}
-
-// Tokens introduced in PHP 5.3
-class PHP_Token_DIR extends PHP_Token {}
-class PHP_Token_GOTO extends PHP_Token {}
-
-class PHP_Token_NAMESPACE extends PHP_TokenWithScope
-{
-    public function getName()
-    {
-        $tokens    = $this->tokenStream->tokens();
-        $namespace = (string)$tokens[$this->id+2];
-
-        for ($i = $this->id + 3; ; $i += 2) {
-            if (isset($tokens[$i]) &&
-                $tokens[$i] instanceof PHP_Token_NS_SEPARATOR) {
-                $namespace .= '\\' . $tokens[$i+1];
-            } else {
-                break;
-            }
-        }
-
-        return $namespace;
-    }
-}
-
-class PHP_Token_NS_C extends PHP_Token {}
-class PHP_Token_NS_SEPARATOR extends PHP_Token {}
-
-// Tokens introduced in PHP 5.4
-class PHP_Token_CALLABLE extends PHP_Token {}
-class PHP_Token_INSTEADOF extends PHP_Token {}
-class PHP_Token_TRAIT extends PHP_Token_INTERFACE {}
-class PHP_Token_TRAIT_C extends PHP_Token {}
-
-// Tokens introduced in PHP 5.5
-class PHP_Token_FINALLY extends PHP_Token {}
-class PHP_Token_YIELD extends PHP_Token {}
-
-// Tokens introduced in PHP 5.6
-class PHP_Token_ELLIPSIS extends PHP_Token {}
-class PHP_Token_POW extends PHP_Token {}
-class PHP_Token_POW_EQUAL extends PHP_Token {}
-
-
-// Tokens introduced in HackLang
-class PHP_Token_TYPELIST_LT extends PHP_Token {}
-class PHP_Token_TYPELIST_GT extends PHP_Token {}
-class PHP_Token_TYPE extends PHP_Token {}
-class PHP_Token_SHAPE extends PHP_Token {}
-class PHP_Token_LAMBDA_OP extends PHP_Token {}
-class PHP_Token_LAMBDA_CP extends PHP_Token {}
-class PHP_Token_LAMBDA_ARROW extends PHP_Token {}
-class PHP_Token_IN extends PHP_Token {}
-class PHP_Token_JOIN extends PHP_Token {}
diff --git a/core/vendor/phpunit/php-token-stream/src/Token/Stream.php b/core/vendor/phpunit/php-token-stream/src/Token/Stream.php
deleted file mode 100644
index e25cbe2..0000000
--- a/core/vendor/phpunit/php-token-stream/src/Token/Stream.php
+++ /dev/null
@@ -1,594 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A stream of PHP tokens.
- *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version   Release: @package_version@
- * @link      http://github.com/sebastianbergmann/php-token-stream/tree
- * @since     Class available since Release 1.0.0
- */
-class PHP_Token_Stream implements ArrayAccess, Countable, SeekableIterator
-{
-    /**
-     * @var array
-     */
-    protected static $customTokens = array(
-      '(' => 'PHP_Token_OPEN_BRACKET',
-      ')' => 'PHP_Token_CLOSE_BRACKET',
-      '[' => 'PHP_Token_OPEN_SQUARE',
-      ']' => 'PHP_Token_CLOSE_SQUARE',
-      '{' => 'PHP_Token_OPEN_CURLY',
-      '}' => 'PHP_Token_CLOSE_CURLY',
-      ';' => 'PHP_Token_SEMICOLON',
-      '.' => 'PHP_Token_DOT',
-      ',' => 'PHP_Token_COMMA',
-      '=' => 'PHP_Token_EQUAL',
-      '<' => 'PHP_Token_LT',
-      '>' => 'PHP_Token_GT',
-      '+' => 'PHP_Token_PLUS',
-      '-' => 'PHP_Token_MINUS',
-      '*' => 'PHP_Token_MULT',
-      '/' => 'PHP_Token_DIV',
-      '?' => 'PHP_Token_QUESTION_MARK',
-      '!' => 'PHP_Token_EXCLAMATION_MARK',
-      ':' => 'PHP_Token_COLON',
-      '"' => 'PHP_Token_DOUBLE_QUOTES',
-      '@' => 'PHP_Token_AT',
-      '&' => 'PHP_Token_AMPERSAND',
-      '%' => 'PHP_Token_PERCENT',
-      '|' => 'PHP_Token_PIPE',
-      '$' => 'PHP_Token_DOLLAR',
-      '^' => 'PHP_Token_CARET',
-      '~' => 'PHP_Token_TILDE',
-      '`' => 'PHP_Token_BACKTICK'
-    );
-
-    /**
-     * @var string
-     */
-    protected $filename;
-
-    /**
-     * @var array
-     */
-    protected $tokens = array();
-
-    /**
-     * @var integer
-     */
-    protected $position = 0;
-
-    /**
-     * @var array
-     */
-    protected $linesOfCode = array('loc' => 0, 'cloc' => 0, 'ncloc' => 0);
-
-    /**
-     * @var array
-     */
-    protected $classes;
-
-    /**
-     * @var array
-     */
-    protected $functions;
-
-    /**
-     * @var array
-     */
-    protected $includes;
-
-    /**
-     * @var array
-     */
-    protected $interfaces;
-
-    /**
-     * @var array
-     */
-    protected $traits;
-
-    /**
-     * @var array
-     */
-    protected $lineToFunctionMap = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $sourceCode
-     */
-    public function __construct($sourceCode)
-    {
-        if (is_file($sourceCode)) {
-            $this->filename = $sourceCode;
-            $sourceCode     = file_get_contents($sourceCode);
-        }
-
-        $this->scan($sourceCode);
-    }
-
-    /**
-     * Destructor.
-     */
-    public function __destruct()
-    {
-        $this->tokens = array();
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        $buffer = '';
-
-        foreach ($this as $token) {
-            $buffer .= $token;
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * @return string
-     * @since  Method available since Release 1.1.0
-     */
-    public function getFilename()
-    {
-        return $this->filename;
-    }
-
-    /**
-     * Scans the source for sequences of characters and converts them into a
-     * stream of tokens.
-     *
-     * @param string $sourceCode
-     */
-    protected function scan($sourceCode)
-    {
-        $line      = 1;
-        $tokens    = token_get_all($sourceCode);
-        $numTokens = count($tokens);
-
-        $lastNonWhitespaceTokenWasDoubleColon = FALSE;
-
-        for ($i = 0; $i < $numTokens; ++$i) {
-            $token = $tokens[$i];
-            unset($tokens[$i]);
-
-            if (is_array($token)) {
-                $name = substr(token_name($token[0]), 2);
-                $text = $token[1];
-
-                if ($lastNonWhitespaceTokenWasDoubleColon && $name == 'CLASS') {
-                    $name = 'CLASS_NAME_CONSTANT';
-                }
-
-                $tokenClass = 'PHP_Token_' . $name;
-            } else {
-                $text       = $token;
-                $tokenClass = self::$customTokens[$token];
-            }
-
-            $this->tokens[] = new $tokenClass($text, $line, $this, $i);
-            $lines          = substr_count($text, "\n");
-            $line          += $lines;
-
-            if ($tokenClass == 'PHP_Token_HALT_COMPILER') {
-                break;
-            }
-
-            else if ($tokenClass == 'PHP_Token_COMMENT' ||
-                $tokenClass == 'PHP_Token_DOC_COMMENT') {
-                $this->linesOfCode['cloc'] += $lines + 1;
-            }
-
-            if ($name == 'DOUBLE_COLON') {
-                $lastNonWhitespaceTokenWasDoubleColon = TRUE;
-            }
-
-            else if ($name != 'WHITESPACE') {
-                $lastNonWhitespaceTokenWasDoubleColon = FALSE;
-            }
-        }
-
-        $this->linesOfCode['loc']   = substr_count($sourceCode, "\n");
-        $this->linesOfCode['ncloc'] = $this->linesOfCode['loc'] -
-                                      $this->linesOfCode['cloc'];
-    }
-
-    /**
-     * @return integer
-     */
-    public function count()
-    {
-        return count($this->tokens);
-    }
-
-    /**
-     * @return PHP_Token[]
-     */
-    public function tokens()
-    {
-        return $this->tokens;
-    }
-
-    /**
-     * @return array
-     */
-    public function getClasses()
-    {
-        if ($this->classes !== NULL) {
-            return $this->classes;
-        }
-
-        $this->parse();
-
-        return $this->classes;
-    }
-
-    /**
-     * @return array
-     */
-    public function getFunctions()
-    {
-        if ($this->functions !== NULL) {
-            return $this->functions;
-        }
-
-        $this->parse();
-
-        return $this->functions;
-    }
-
-    /**
-     * @return array
-     */
-    public function getInterfaces()
-    {
-        if ($this->interfaces !== NULL) {
-            return $this->interfaces;
-        }
-
-        $this->parse();
-
-        return $this->interfaces;
-    }
-
-    /**
-     * @return array
-     * @since  Method available since Release 1.1.0
-     */
-    public function getTraits()
-    {
-        if ($this->traits !== NULL) {
-            return $this->traits;
-        }
-
-        $this->parse();
-
-        return $this->traits;
-    }
-
-    /**
-     * Gets the names of all files that have been included
-     * using include(), include_once(), require() or require_once().
-     *
-     * Parameter $categorize set to TRUE causing this function to return a
-     * multi-dimensional array with categories in the keys of the first dimension
-     * and constants and their values in the second dimension.
-     *
-     * Parameter $category allow to filter following specific inclusion type
-     *
-     * @param bool   $categorize OPTIONAL
-     * @param string $category   OPTIONAL Either 'require_once', 'require',
-     *                                           'include_once', 'include'.
-     * @return array
-     * @since  Method available since Release 1.1.0
-     */
-    public function getIncludes($categorize = FALSE, $category = NULL)
-    {
-        if ($this->includes === NULL) {
-            $this->includes = array(
-              'require_once' => array(),
-              'require'      => array(),
-              'include_once' => array(),
-              'include'      => array()
-            );
-
-            foreach ($this->tokens as $token) {
-                switch (get_class($token)) {
-                    case 'PHP_Token_REQUIRE_ONCE':
-                    case 'PHP_Token_REQUIRE':
-                    case 'PHP_Token_INCLUDE_ONCE':
-                    case 'PHP_Token_INCLUDE': {
-                        $this->includes[$token->getType()][] = $token->getName();
-                    }
-                    break;
-                }
-            }
-        }
-
-        if (isset($this->includes[$category])) {
-            $includes = $this->includes[$category];
-        }
-
-        else if ($categorize === FALSE) {
-            $includes = array_merge(
-              $this->includes['require_once'],
-              $this->includes['require'],
-              $this->includes['include_once'],
-              $this->includes['include']
-            );
-        } else {
-            $includes = $this->includes;
-        }
-
-        return $includes;
-    }
-
-    /**
-     * Returns the name of the function or method a line belongs to.
-     *
-     * @return string or null if the line is not in a function or method
-     * @since  Method available since Release 1.2.0
-     */
-    public function getFunctionForLine($line)
-    {
-        $this->parse();
-
-        if (isset($this->lineToFunctionMap[$line])) {
-            return $this->lineToFunctionMap[$line];
-        }
-    }
-
-    protected function parse()
-    {
-        $this->interfaces = array();
-        $this->classes    = array();
-        $this->traits     = array();
-        $this->functions  = array();
-        $class            = FALSE;
-        $classEndLine     = FALSE;
-        $trait            = FALSE;
-        $traitEndLine     = FALSE;
-        $interface        = FALSE;
-        $interfaceEndLine = FALSE;
-
-        foreach ($this->tokens as $token) {
-            switch (get_class($token)) {
-                case 'PHP_Token_HALT_COMPILER': {
-                    return;
-                }
-                break;
-
-                case 'PHP_Token_INTERFACE': {
-                    $interface        = $token->getName();
-                    $interfaceEndLine = $token->getEndLine();
-
-                    $this->interfaces[$interface] = array(
-                      'methods'   => array(),
-                      'parent'    => $token->getParent(),
-                      'keywords'  => $token->getKeywords(),
-                      'docblock'  => $token->getDocblock(),
-                      'startLine' => $token->getLine(),
-                      'endLine'   => $interfaceEndLine,
-                      'package'   => $token->getPackage(),
-                      'file'      => $this->filename
-                    );
-                }
-                break;
-
-                case 'PHP_Token_CLASS':
-                case 'PHP_Token_TRAIT': {
-                    $tmp = array(
-                      'methods'   => array(),
-                      'parent'    => $token->getParent(),
-                      'interfaces'=> $token->getInterfaces(),
-                      'keywords'  => $token->getKeywords(),
-                      'docblock'  => $token->getDocblock(),
-                      'startLine' => $token->getLine(),
-                      'endLine'   => $token->getEndLine(),
-                      'package'   => $token->getPackage(),
-                      'file'      => $this->filename
-                    );
-
-                    if ($token instanceof PHP_Token_CLASS) {
-                        $class                 = $token->getName();
-                        $classEndLine          = $token->getEndLine();
-                        $this->classes[$class] = $tmp;
-                    } else {
-                        $trait                = $token->getName();
-                        $traitEndLine         = $token->getEndLine();
-                        $this->traits[$trait] = $tmp;
-                    }
-                }
-                break;
-
-                case 'PHP_Token_FUNCTION': {
-                    $name = $token->getName();
-                    $tmp  = array(
-                      'docblock'  => $token->getDocblock(),
-                      'keywords'  => $token->getKeywords(),
-                      'visibility'=> $token->getVisibility(),
-                      'signature' => $token->getSignature(),
-                      'startLine' => $token->getLine(),
-                      'endLine'   => $token->getEndLine(),
-                      'ccn'       => $token->getCCN(),
-                      'file'      => $this->filename
-                    );
-
-                    if ($class === FALSE &&
-                        $trait === FALSE &&
-                        $interface === FALSE) {
-                        $this->functions[$name] = $tmp;
-
-                        $this->addFunctionToMap(
-                          $name, $tmp['startLine'], $tmp['endLine']
-                        );
-                    }
-
-                    else if ($class !== FALSE) {
-                        $this->classes[$class]['methods'][$name] = $tmp;
-
-                        $this->addFunctionToMap(
-                          $class . '::' . $name,
-                          $tmp['startLine'],
-                          $tmp['endLine']
-                        );
-                    }
-
-                    else if ($trait !== FALSE) {
-                        $this->traits[$trait]['methods'][$name] = $tmp;
-
-                        $this->addFunctionToMap(
-                          $trait . '::' . $name,
-                          $tmp['startLine'],
-                          $tmp['endLine']
-                        );
-                    }
-
-                    else {
-                        $this->interfaces[$interface]['methods'][$name] = $tmp;
-                    }
-                }
-                break;
-
-                case 'PHP_Token_CLOSE_CURLY': {
-                    if ($classEndLine !== FALSE &&
-                        $classEndLine == $token->getLine()) {
-                        $class        = FALSE;
-                        $classEndLine = FALSE;
-                    }
-
-                    else if ($traitEndLine !== FALSE &&
-                        $traitEndLine == $token->getLine()) {
-                        $trait        = FALSE;
-                        $traitEndLine = FALSE;
-                    }
-
-                    else if ($interfaceEndLine !== FALSE &&
-                        $interfaceEndLine == $token->getLine()) {
-                        $interface        = FALSE;
-                        $interfaceEndLine = FALSE;
-                    }
-                }
-                break;
-            }
-        }
-    }
-
-    /**
-     * @return array
-     */
-    public function getLinesOfCode()
-    {
-        return $this->linesOfCode;
-    }
-
-    /**
-     */
-    public function rewind()
-    {
-        $this->position = 0;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function valid()
-    {
-        return isset($this->tokens[$this->position]);
-    }
-
-    /**
-     * @return integer
-     */
-    public function key()
-    {
-        return $this->position;
-    }
-
-    /**
-     * @return PHP_Token
-     */
-    public function current()
-    {
-        return $this->tokens[$this->position];
-    }
-
-    /**
-     */
-    public function next()
-    {
-        $this->position++;
-    }
-
-    /**
-     * @param mixed $offset
-     */
-    public function offsetExists($offset)
-    {
-        return isset($this->tokens[$offset]);
-    }
-
-    /**
-     * @param  mixed $offset
-     * @return mixed
-     */
-    public function offsetGet($offset)
-    {
-        return $this->tokens[$offset];
-    }
-
-    /**
-     * @param mixed $offset
-     * @param mixed $value
-     */
-    public function offsetSet($offset, $value)
-    {
-        $this->tokens[$offset] = $value;
-    }
-
-    /**
-     * @param mixed $offset
-     */
-    public function offsetUnset($offset)
-    {
-        unset($this->tokens[$offset]);
-    }
-
-    /**
-     * Seek to an absolute position.
-     *
-     * @param  integer $position
-     * @throws OutOfBoundsException
-     */
-    public function seek($position)
-    {
-        $this->position = $position;
-
-        if (!$this->valid()) {
-            throw new OutOfBoundsException('Invalid seek position');
-        }
-    }
-
-    private function addFunctionToMap($name, $startLine, $endLine)
-    {
-        for ($line = $startLine; $line <= $endLine; $line++) {
-            $this->lineToFunctionMap[$line] = $name;
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php b/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php
deleted file mode 100644
index a80d41a..0000000
--- a/core/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A caching factory for token stream objects.
- *
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version   Release: @package_version@
- * @link      http://github.com/sebastianbergmann/php-token-stream/tree
- * @since     Class available since Release 1.0.0
- */
-class PHP_Token_Stream_CachingFactory
-{
-    /**
-     * @var array
-     */
-    protected static $cache = array();
-
-    /**
-     * @param  string $filename
-     * @return PHP_Token_Stream
-     */
-    public static function get($filename)
-    {
-        if (!isset(self::$cache[$filename])) {
-            self::$cache[$filename] = new PHP_Token_Stream($filename);
-        }
-
-        return self::$cache[$filename];
-    }
-
-    /**
-     * @param string $filename
-     */
-    public static function clear($filename = NULL)
-    {
-        if (is_string($filename)) {
-            unset(self::$cache[$filename]);
-        } else {
-            self::$cache = array();
-        }
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php
deleted file mode 100644
index d2a64b6..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token_CLASS class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.2
- */
-class PHP_Token_ClassTest extends PHPUnit_Framework_TestCase
-{
-    protected $class;
-    protected $function;
-
-    protected function setUp()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source2.php');
-
-        foreach ($ts as $token) {
-            if ($token instanceof PHP_Token_CLASS) {
-                $this->class = $token;
-            }
-
-            if ($token instanceof PHP_Token_FUNCTION) {
-                $this->function = $token;
-                break;
-            }
-        }
-    }
-
-    /**
-     * @covers PHP_Token_CLASS::getKeywords
-     */
-    public function testGetClassKeywords()
-    {
-        $this->assertEquals('abstract', $this->class->getKeywords());
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getKeywords
-     */
-    public function testGetFunctionKeywords()
-    {
-        $this->assertEquals('abstract,static', $this->function->getKeywords());
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getVisibility
-     */
-    public function testGetFunctionVisibility()
-    {
-        $this->assertEquals('public', $this->function->getVisibility());
-    }
-
-    public function testIssue19()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'issue19.php');
-
-        foreach ($ts as $token) {
-            if ($token instanceof PHP_Token_CLASS) {
-                $this->assertFalse($token->hasInterfaces());
-            }
-        }
-    }
-
-    public function testIssue30()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'issue30.php');
-        $this->assertCount(1, $ts->getClasses());
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php
deleted file mode 100644
index f1e508c..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token_FUNCTION class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.0
- */
-class PHP_Token_ClosureTest extends PHPUnit_Framework_TestCase
-{
-    protected $functions;
-
-    protected function setUp()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'closure.php');
-
-        foreach ($ts as $token) {
-            if ($token instanceof PHP_Token_FUNCTION) {
-                $this->functions[] = $token;
-            }
-        }
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getArguments
-     */
-    public function testGetArguments()
-    {
-        $this->assertEquals(array('$foo' => null, '$bar' => null), $this->functions[0]->getArguments());
-        $this->assertEquals(array('$foo' => 'Foo', '$bar' => null), $this->functions[1]->getArguments());
-        $this->assertEquals(array('$foo' => null, '$bar' => null, '$baz' => null), $this->functions[2]->getArguments());
-        $this->assertEquals(array('$foo' => 'Foo', '$bar' => null, '$baz' => null), $this->functions[3]->getArguments());
-        $this->assertEquals(array(), $this->functions[4]->getArguments());
-        $this->assertEquals(array(), $this->functions[5]->getArguments());
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getName
-     */
-    public function testGetName()
-    {
-        $this->assertEquals('anonymous function', $this->functions[0]->getName());
-        $this->assertEquals('anonymous function', $this->functions[1]->getName());
-        $this->assertEquals('anonymous function', $this->functions[2]->getName());
-        $this->assertEquals('anonymous function', $this->functions[3]->getName());
-        $this->assertEquals('anonymous function', $this->functions[4]->getName());
-        $this->assertEquals('anonymous function', $this->functions[5]->getName());
-    }
-
-    /**
-     * @covers PHP_Token::getLine
-     */
-    public function testGetLine()
-    {
-        $this->assertEquals(2, $this->functions[0]->getLine());
-        $this->assertEquals(3, $this->functions[1]->getLine());
-        $this->assertEquals(4, $this->functions[2]->getLine());
-        $this->assertEquals(5, $this->functions[3]->getLine());
-    }
-
-    /**
-     * @covers PHP_TokenWithScope::getEndLine
-     */
-    public function testGetEndLine()
-    {
-        $this->assertEquals(2, $this->functions[0]->getLine());
-        $this->assertEquals(3, $this->functions[1]->getLine());
-        $this->assertEquals(4, $this->functions[2]->getLine());
-        $this->assertEquals(5, $this->functions[3]->getLine());
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php
deleted file mode 100644
index 4f23c39..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token_FUNCTION class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.0
- */
-class PHP_Token_FunctionTest extends PHPUnit_Framework_TestCase
-{
-    protected $functions;
-
-    protected function setUp()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source.php');
-
-        foreach ($ts as $token) {
-            if ($token instanceof PHP_Token_FUNCTION) {
-                $this->functions[] = $token;
-            }
-        }
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getArguments
-     */
-    public function testGetArguments()
-    {
-        $this->assertEquals(array(), $this->functions[0]->getArguments());
-
-        $this->assertEquals(
-          array('$baz' => 'Baz'), $this->functions[1]->getArguments()
-        );
-
-        $this->assertEquals(
-          array('$foobar' => 'Foobar'), $this->functions[2]->getArguments()
-        );
-
-        $this->assertEquals(
-          array('$barfoo' => 'Barfoo'), $this->functions[3]->getArguments()
-        );
-
-        $this->assertEquals(array(), $this->functions[4]->getArguments());
-
-        $this->assertEquals(array('$x' => null, '$y' => null), $this->functions[5]->getArguments());
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getName
-     */
-    public function testGetName()
-    {
-        $this->assertEquals('foo', $this->functions[0]->getName());
-        $this->assertEquals('bar', $this->functions[1]->getName());
-        $this->assertEquals('foobar', $this->functions[2]->getName());
-        $this->assertEquals('barfoo', $this->functions[3]->getName());
-        $this->assertEquals('baz', $this->functions[4]->getName());
-    }
-
-    /**
-     * @covers PHP_Token::getLine
-     */
-    public function testGetLine()
-    {
-        $this->assertEquals(5, $this->functions[0]->getLine());
-        $this->assertEquals(10, $this->functions[1]->getLine());
-        $this->assertEquals(17, $this->functions[2]->getLine());
-        $this->assertEquals(21, $this->functions[3]->getLine());
-        $this->assertEquals(29, $this->functions[4]->getLine());
-    }
-
-    /**
-     * @covers PHP_TokenWithScope::getEndLine
-     */
-    public function testGetEndLine()
-    {
-        $this->assertEquals(5, $this->functions[0]->getEndLine());
-        $this->assertEquals(12, $this->functions[1]->getEndLine());
-        $this->assertEquals(19, $this->functions[2]->getEndLine());
-        $this->assertEquals(23, $this->functions[3]->getEndLine());
-        $this->assertEquals(31, $this->functions[4]->getEndLine());
-    }
-
-    /**
-     * @covers PHP_Token_FUNCTION::getDocblock
-     */
-    public function testGetDocblock()
-    {
-        $this->assertNull($this->functions[0]->getDocblock());
-
-        $this->assertEquals(
-          "/**\n     * @param Baz \$baz\n     */",
-          $this->functions[1]->getDocblock()
-        );
-
-        $this->assertEquals(
-          "/**\n     * @param Foobar \$foobar\n     */",
-          $this->functions[2]->getDocblock()
-        );
-
-        $this->assertNull($this->functions[3]->getDocblock());
-        $this->assertNull($this->functions[4]->getDocblock());
-    }
-
-    public function testSignature()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source5.php');
-        $f  = $ts->getFunctions();
-        $c  = $ts->getClasses();
-        $i  = $ts->getInterfaces();
-
-        $this->assertEquals(
-          'foo($a, array $b, array $c = array())',
-          $f['foo']['signature']
-        );
-
-        $this->assertEquals(
-          'm($a, array $b, array $c = array())',
-          $c['c']['methods']['m']['signature']
-        );
-
-        $this->assertEquals(
-          'm($a, array $b, array $c = array())',
-          $c['a']['methods']['m']['signature']
-        );
-
-        $this->assertEquals(
-          'm($a, array $b, array $c = array())',
-          $i['i']['methods']['m']['signature']
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php
deleted file mode 100644
index 1e43351..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token_REQUIRE_ONCE, PHP_Token_REQUIRE
- * PHP_Token_INCLUDE_ONCE and PHP_Token_INCLUDE_ONCE classes.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.2
- */
-class PHP_Token_IncludeTest extends PHPUnit_Framework_TestCase
-{
-    protected $ts;
-
-    protected function setUp()
-    {
-        $this->ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source3.php');
-    }
-
-    /**
-     * @covers PHP_Token_Includes::getName
-     * @covers PHP_Token_Includes::getType
-     */
-    public function testGetIncludes()
-    {
-        $this->assertSame(
-          array('test4.php', 'test3.php', 'test2.php', 'test1.php'),
-          $this->ts->getIncludes()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_Includes::getName
-     * @covers PHP_Token_Includes::getType
-     */
-    public function testGetIncludesCategorized()
-    {
-        $this->assertSame(
-          array(
-            'require_once' => array('test4.php'),
-            'require'      => array('test3.php'),
-            'include_once' => array('test2.php'),
-            'include'      => array('test1.php')
-          ),
-          $this->ts->getIncludes(TRUE)
-        );
-    }
-
-    /**
-     * @covers PHP_Token_Includes::getName
-     * @covers PHP_Token_Includes::getType
-     */
-    public function testGetIncludesCategory()
-    {
-        $this->assertSame(
-          array('test4.php'),
-          $this->ts->getIncludes(TRUE, 'require_once')
-        );
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
deleted file mode 100644
index 56caede..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token_INTERFACE class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Laurent Laville <pear@laurent-laville.org>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.0
- */
-class PHP_Token_InterfaceTest extends PHPUnit_Framework_TestCase
-{
-    protected $class;
-    protected $interfaces;
-
-    protected function setUp()
-    {
-        $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source4.php');
-        $i  = 0;
-        foreach ($ts as $token) {
-            if ($token instanceof PHP_Token_CLASS) {
-                $this->class = $token;
-            }
-            elseif ($token instanceof PHP_Token_INTERFACE) {
-                $this->interfaces[$i] = $token;
-                $i++;
-            }
-        }
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::getName
-     */
-    public function testGetName()
-    {
-        $this->assertEquals(
-            'iTemplate', $this->interfaces[0]->getName()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::getParent
-     */
-    public function testGetParentNotExists()
-    {
-        $this->assertFalse(
-            $this->interfaces[0]->getParent()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::hasParent
-     */
-    public function testHasParentNotExists()
-    {
-        $this->assertFalse(
-            $this->interfaces[0]->hasParent()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::getParent
-     */
-    public function testGetParentExists()
-    {
-        $this->assertEquals(
-            'a', $this->interfaces[2]->getParent()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::hasParent
-     */
-    public function testHasParentExists()
-    {
-        $this->assertTrue(
-            $this->interfaces[2]->hasParent()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::getInterfaces
-     */
-    public function testGetInterfacesExists()
-    {
-        $this->assertEquals(
-            array('b'),
-            $this->class->getInterfaces()
-        );
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::hasInterfaces
-     */
-    public function testHasInterfacesExists()
-    {
-        $this->assertTrue(
-            $this->class->hasInterfaces()
-        );
-    }
-    /**
-     * @covers PHP_Token_INTERFACE::getPackage
-     */
-    public function testGetPackageNamespace() {
-        $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php');
-        foreach($tokenStream as $token) {
-            if($token instanceOf PHP_Token_INTERFACE) {
-                $package = $token->getPackage();
-                $this->assertSame('Foo\\Bar', $package['namespace']);
-            }
-        }
-    }
-
-
-    public function provideFilesWithClassesWithinMultipleNamespaces() {
-        return array(
-            array(TEST_FILES_PATH . 'multipleNamespacesWithOneClassUsingBraces.php'),
-            array(TEST_FILES_PATH . 'multipleNamespacesWithOneClassUsingNonBraceSyntax.php'),
-        );
-    }
-
-    /**
-     * @dataProvider provideFilesWithClassesWithinMultipleNamespaces
-     * @covers PHP_Token_INTERFACE::getPackage
-     */
-    public function testGetPackageNamespaceForFileWithMultipleNamespaces($filepath) {
-        $tokenStream = new PHP_Token_Stream($filepath);
-        $firstClassFound = false;
-        foreach($tokenStream as $token) {
-            if($firstClassFound === false && $token instanceOf PHP_Token_INTERFACE) {
-                $package = $token->getPackage();
-                $this->assertSame('TestClassInBar', $token->getName());
-                $this->assertSame('Foo\\Bar', $package['namespace']);
-                $firstClassFound = true;
-                continue;
-            }
-            // Secound class
-            if($token instanceOf PHP_Token_INTERFACE) {
-                $package = $token->getPackage();
-                $this->assertSame('TestClassInBaz', $token->getName());
-                $this->assertSame('Foo\\Baz', $package['namespace']);
-                return;
-            }
-        }
-        $this->fail("Seachring for 2 classes failed");
-    }
-
-    public function testGetPackageNamespaceIsEmptyForInterfacesThatAreNotWithinNamespaces() {
-        foreach($this->interfaces as $token) {
-            $package = $token->getPackage();
-            $this->assertSame("", $package['namespace']);
-        }
-    }
-
-    /**
-     * @covers PHP_Token_INTERFACE::getPackage
-     */
-    public function testGetPackageNamespaceWhenExtentingFromNamespaceClass() {
-        $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classExtendsNamespacedClass.php');
-        $firstClassFound = false;
-        foreach($tokenStream as $token) {
-            if($firstClassFound === false && $token instanceOf PHP_Token_INTERFACE) {
-                $package = $token->getPackage();
-                $this->assertSame('Baz', $token->getName());
-                $this->assertSame('Foo\\Bar', $package['namespace']);
-                $firstClassFound = true;
-                continue;
-            }
-            if($token instanceOf PHP_Token_INTERFACE) {
-                $package = $token->getPackage();
-                $this->assertSame('Extender', $token->getName());
-                $this->assertSame('Other\\Space', $package['namespace']);
-                return;
-            }
-        }
-        $this->fail("Searching for 2 classes failed");
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php b/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php
deleted file mode 100644
index 469f787..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token_NAMESPACE class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.0
- */
-class PHP_Token_NamespaceTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHP_Token_NAMESPACE::getName
-     */
-    public function testGetName()
-    {
-        $tokenStream = new PHP_Token_Stream(
-          TEST_FILES_PATH . 'classInNamespace.php'
-        );
-
-        foreach ($tokenStream as $token) {
-            if ($token instanceof PHP_Token_NAMESPACE) {
-                $this->assertSame('Foo\\Bar', $token->getName());
-            }
-        }
-    }
-
-    public function testGetStartLineWithUnscopedNamespace()
-    {
-        $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php');
-        foreach($tokenStream as $token) {
-            if($token instanceOf PHP_Token_NAMESPACE) {
-                $this->assertSame(2, $token->getLine());
-            }
-        }
-    }
-
-    public function testGetEndLineWithUnscopedNamespace()
-    {
-        $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php');
-        foreach($tokenStream as $token) {
-            if($token instanceOf PHP_Token_NAMESPACE) {
-                $this->assertSame(2, $token->getEndLine());
-            }
-        }
-    }
-    public function testGetStartLineWithScopedNamespace()
-    {
-        $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInScopedNamespace.php');
-        foreach($tokenStream as $token) {
-            if($token instanceOf PHP_Token_NAMESPACE) {
-                $this->assertSame(2, $token->getLine());
-            }
-        }
-    }
-
-    public function testGetEndLineWithScopedNamespace()
-    {
-        $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInScopedNamespace.php');
-        foreach($tokenStream as $token) {
-            if($token instanceOf PHP_Token_NAMESPACE) {
-                $this->assertSame(8, $token->getEndLine());
-            }
-        }
-    }
-
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/TokenTest.php b/core/vendor/phpunit/php-token-stream/tests/TokenTest.php
deleted file mode 100644
index 67bf79a..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/TokenTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/*
- * This file is part of the PHP_TokenStream package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the PHP_Token class.
- *
- * @package    PHP_TokenStream
- * @subpackage Tests
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/php-token-stream/
- * @since      Class available since Release 1.0.0
- */
-class PHP_TokenTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHP_Token::__construct
-     * @covers PHP_Token::__toString
-     */
-    public function testToString()
-    {
-        $this->markTestIncomplete();
-    }
-
-    /**
-     * @covers PHP_Token::__construct
-     * @covers PHP_Token::getLine
-     */
-    public function testGetLine()
-    {
-        $this->markTestIncomplete();
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php
deleted file mode 100644
index 560eec9..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Foo\Bar;
-
-class Baz {}
-
-namespace Other\Space;
-
-class Extender extends \Foo\Bar\Baz {}
-
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php
deleted file mode 100644
index 8ade7cd..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-namespace Foo\Bar;
-
-class TestClass
-{
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php
deleted file mode 100644
index 1ba475c..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-namespace Foo\BarScoped {
-
-    class TestClass {
-
-    }
-
-}
-
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/closure.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/closure.php
deleted file mode 100644
index a0e3a81..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/closure.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-$function1 = function($foo, $bar) use ($var) {};
-$function2 = function(Foo $foo, $bar) use ($var) {};
-$function3 = function ($foo, $bar, $baz) {};
-$function4 = function (Foo $foo, $bar, $baz) {};
-$function5 = function () {};
-$function6 = function() {};
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/issue19.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/issue19.php
deleted file mode 100644
index 91eeb47..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/issue19.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-class TestClass {
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/issue30.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/issue30.php
deleted file mode 100644
index 0d1f6f3..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/issue30.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Foo
-{
-    public function bar()
-    {
-        return Foo::CLASS;
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php
deleted file mode 100644
index d3a12e3..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-namespace Foo\Bar;
-
-class TestClassInBar
-{
-}
-
-namespace Foo\Baz;
-
-class TestClassInBaz
-{
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php
deleted file mode 100644
index 4ee4f24..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-namespace Foo\Bar
-{
-    class TestClassInBar
-    {
-    }
-}
-
-namespace Foo\Baz
-{
-    class TestClassInBaz
-    {
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/source.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/source.php
deleted file mode 100644
index 0c9b87f..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/source.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Some comment
- */
-class Foo{function foo(){}
-
-    /**
-     * @param Baz $baz
-     */
-    public function bar(Baz $baz)
-    {
-    }
-
-    /**
-     * @param Foobar $foobar
-     */
-    static public function foobar(Foobar $foobar)
-    {
-    }
-
-    public function barfoo(Barfoo $barfoo)
-    {
-    }
-
-    /**
-     * This docblock does not belong to the baz function
-     */
-
-    public function baz()
-    {
-    }
-
-    public function blaz($x, $y)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/source2.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/source2.php
deleted file mode 100644
index b33dce1..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/source2.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-// short desc
-abstract class A {
-    /* abst meth: */
-    public static  abstract function method();
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/source3.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/source3.php
deleted file mode 100644
index 7e42b60..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/source3.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-// This file is example#1
-// from http://www.php.net/manual/en/function.get-included-files.php
-
-include 'test1.php';
-include_once 'test2.php';
-require 'test3.php';
-require_once 'test4.php';
-
-$included_files = get_included_files();
-
-foreach ($included_files as $filename) {
-    echo "$filename\n";
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/source4.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/source4.php
deleted file mode 100644
index 6b064fc..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/source4.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-// Declare the interface 'iTemplate'
-interface iTemplate
-{
-    public function setVariable($name, $var);
-    public function
-        getHtml($template);
-}
-
-interface a
-{
-    public function foo();
-}
-
-interface b extends a
-{
-    public function baz(Baz $baz);
-}
-
-// short desc for class that implement a unique interface
-class c implements b
-{
-    public function foo()
-    {
-    }
-
-    public function baz(Baz $baz)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/php-token-stream/tests/_fixture/source5.php b/core/vendor/phpunit/php-token-stream/tests/_fixture/source5.php
deleted file mode 100644
index ef7d474..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/_fixture/source5.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-function foo($a, array $b, array $c = array()) {}
-interface i { public function m($a, array $b, array $c = array()); }
-abstract class a { abstract public function m($a, array $b, array $c = array()); }
-class c { public function m($a, array $b, array $c = array()) {} }
diff --git a/core/vendor/phpunit/php-token-stream/tests/bootstrap.php b/core/vendor/phpunit/php-token-stream/tests/bootstrap.php
deleted file mode 100644
index f92b7df..0000000
--- a/core/vendor/phpunit/php-token-stream/tests/bootstrap.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-require __DIR__ . '/../vendor/autoload.php';
-
-define(
-    'TEST_FILES_PATH',
-    __DIR__ . DIRECTORY_SEPARATOR . '_fixture' . DIRECTORY_SEPARATOR
-);
diff --git a/core/vendor/phpunit/phpunit-mock-objects/.gitattributes b/core/vendor/phpunit/phpunit-mock-objects/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/phpunit/phpunit-mock-objects/.gitignore b/core/vendor/phpunit/phpunit-mock-objects/.gitignore
deleted file mode 100644
index b17f73f..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-build/coverage
-build/logs
-cache.properties
-phpunit.xml
-/vendor
-/composer.lock
-/composer.phar
-/.idea
diff --git a/core/vendor/phpunit/phpunit-mock-objects/.travis.yml b/core/vendor/phpunit/phpunit-mock-objects/.travis.yml
deleted file mode 100644
index 127bb65..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-language: php
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-script: ./vendor/bin/phpunit --configuration ./build/travis-ci.xml
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-notifications:
-  email: false
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/6668f52f3dd4e3f81960
-    on_success: always
-    on_failure: always
-    on_start: false
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/CONTRIBUTING.md b/core/vendor/phpunit/phpunit-mock-objects/CONTRIBUTING.md
deleted file mode 100644
index b290539..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/CONTRIBUTING.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Pull Requests for bug fixes should be made against the current release branch (1.2). 
-
-Pull Requests for new features should be made against master.
-
-For further notes please refer to [https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md)
diff --git a/core/vendor/phpunit/phpunit-mock-objects/LICENSE b/core/vendor/phpunit/phpunit-mock-objects/LICENSE
deleted file mode 100644
index 3705d2b..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-PHPUnit_MockObject
-
-Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/phpunit-mock-objects/README.md b/core/vendor/phpunit/phpunit-mock-objects/README.md
deleted file mode 100644
index cb855a8..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-[![Latest Stable Version](https://poser.pugx.org/phpunit/phpunit-mock-objects/v/stable.png)](https://packagist.org/packages/phpunit/phpunit-mock-objects)
-[![Build Status](https://travis-ci.org/sebastianbergmann/phpunit-mock-objects.png?branch=master)](https://travis-ci.org/sebastianbergmann/phpunit-mock-objects)
-
-# PHPUnit_MockObject
-
-**PHPUnit_MockObject** is the default mock object library for PHPUnit.
-
-## Requirements
-
-* PHP 5.3.3 is required but using the latest version of PHP is highly recommended
-
-## Installation
-
-To add PHPUnit_MockObject as a local, per-project dependency to your project, simply add a dependency on `phpunit/phpunit-mock-objects` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on PHPUnit_MockObject 2.0:
-
-    {
-        "require": {
-            "phpunit/phpunit-mock-objects": "2.1.*"
-        }
-    }
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/build.xml b/core/vendor/phpunit/phpunit-mock-objects/build.xml
deleted file mode 100644
index c93503e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/build.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="PHPUnit_MockObjects">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
-
-  <delete>
-   <fileset dir="${basedir}/build">
-    <include name="**/*.phar" />
-   </fileset>
-  </delete>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-
- <target name="phpcs" description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=PSR2" />
-   <arg value="--extensions=php" />
-   <arg path="${basedir}/src" />
-   <arg path="${basedir}/tests" />
-  </exec>
- </target>
-</project>
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/build/travis-ci.xml b/core/vendor/phpunit/phpunit-mock-objects/build/travis-ci.xml
deleted file mode 100644
index b8498fb..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/build/travis-ci.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.2/phpunit.xsd"
-         bootstrap="../tests/bootstrap.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuite name="PHPUnit Mock Objects">
-    <directory suffix="Test.php">../tests</directory>
-    <directory suffix=".phpt">../tests</directory>
-  </testsuite>
-</phpunit>
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/composer.json b/core/vendor/phpunit/phpunit-mock-objects/composer.json
deleted file mode 100644
index 7cbf442..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/composer.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
-    "name": "phpunit/phpunit-mock-objects",
-    "description": "Mock Object library for PHPUnit",
-    "type": "library",
-    "keywords": [
-        "xunit",
-        "mock"
-    ],
-    "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sb@sebastian-bergmann.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues",
-        "irc": "irc://irc.freenode.net/phpunit"
-    },
-    "require": {
-        "php": ">=5.3.3",
-        "phpunit/php-text-template": "~1.2",
-        "doctrine/instantiator": "~1.0,>=1.0.2"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.4"
-    },
-    "suggest": {
-        "ext-soap": "*"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "autoload-dev": {
-        "classmap": [
-            "tests/_fixture/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.3.x-dev"
-        }
-    }
-}
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/phpunit.xml.dist b/core/vendor/phpunit/phpunit-mock-objects/phpunit.xml.dist
deleted file mode 100644
index e2186ea..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/phpunit.xml.dist
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.2/phpunit.xsd"
-         bootstrap="tests/bootstrap.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuite name="PHPUnit Mock Objects">
-    <directory suffix="Test.php">tests</directory>
-    <directory suffix=".phpt">tests</directory>
-  </testsuite>
-
-  <logging>
-    <log type="coverage-html" target="build/coverage"/>
-  </logging>
-
-  <filter>
-    <whitelist processUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php
deleted file mode 100644
index c963a79..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Builder interface for unique identifiers.
- *
- * Defines the interface for recording unique identifiers. The identifiers
- * can be used to define the invocation order of expectations. The expectation
- * is recorded using id() and then defined in order using
- * PHPUnit_Framework_MockObject_Builder_Match::after().
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Builder_Identity
-{
-    /**
-     * Sets the identification of the expectation to $id.
-     *
-     * @note The identifier is unique per mock object.
-     * @param string $id Unique identifiation of expectation.
-     */
-    public function id($id);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php
deleted file mode 100644
index 4a5be92..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php
+++ /dev/null
@@ -1,260 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Builder for mocked or stubbed invocations.
- *
- * Provides methods for building expectations without having to resort to
- * instantiating the various matchers manually. These methods also form a
- * more natural way of reading the expectation. This class should be together
- * with the test case PHPUnit_Framework_MockObject_TestCase.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Builder_InvocationMocker implements PHPUnit_Framework_MockObject_Builder_MethodNameMatch
-{
-    /**
-     * @var PHPUnit_Framework_MockObject_Stub_MatcherCollection
-     */
-    protected $collection;
-
-    /**
-     * @var PHPUnit_Framework_MockObject_Matcher
-     */
-    protected $matcher;
-
-    /**
-     * @param PHPUnit_Framework_MockObject_Stub_MatcherCollection $collection
-     * @param PHPUnit_Framework_MockObject_Matcher_Invocation     $invocationMatcher
-     */
-    public function __construct(PHPUnit_Framework_MockObject_Stub_MatcherCollection $collection, PHPUnit_Framework_MockObject_Matcher_Invocation $invocationMatcher)
-    {
-        $this->collection = $collection;
-        $this->matcher    = new PHPUnit_Framework_MockObject_Matcher(
-          $invocationMatcher
-        );
-
-        $this->collection->addMatcher($this->matcher);
-    }
-
-    /**
-     * @return PHPUnit_Framework_MockObject_Matcher
-     */
-    public function getMatcher()
-    {
-        return $this->matcher;
-    }
-
-    /**
-     * @param  mixed                                                 $id
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function id($id)
-    {
-        $this->collection->registerId($id, $this);
-
-        return $this;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Stub                     $stub
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function will(PHPUnit_Framework_MockObject_Stub $stub)
-    {
-        $this->matcher->stub = $stub;
-
-        return $this;
-    }
-
-    /**
-     * @param  mixed                                                 $value
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willReturn($value)
-    {
-        $stub = new PHPUnit_Framework_MockObject_Stub_Return(
-          $value
-        );
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @param  array                                                 $valueMap
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willReturnMap(array $valueMap)
-    {
-        $stub = new PHPUnit_Framework_MockObject_Stub_ReturnValueMap(
-          $valueMap
-        );
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @param  mixed                                                 $argumentIndex
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willReturnArgument($argumentIndex)
-    {
-        $stub = new PHPUnit_Framework_MockObject_Stub_ReturnArgument(
-          $argumentIndex
-        );
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @param  callable                                              $callback
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willReturnCallback($callback)
-    {
-        $stub = new PHPUnit_Framework_MockObject_Stub_ReturnCallback(
-          $callback
-        );
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willReturnSelf()
-    {
-        $stub = new PHPUnit_Framework_MockObject_Stub_ReturnSelf();
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @param  mixed                                                 $value, ...
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willReturnOnConsecutiveCalls()
-    {
-        $args = func_get_args();
-
-        $stub = new PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls($args);
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @param  Exception                                             $exception
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function willThrowException(Exception $exception)
-    {
-        $stub = new PHPUnit_Framework_MockObject_Stub_Exception($exception);
-
-        return $this->will($stub);
-    }
-
-    /**
-     * @param  mixed                                                 $id
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function after($id)
-    {
-        $this->matcher->afterMatchBuilderId = $id;
-
-        return $this;
-    }
-
-    /**
-     * Validate that a parameters matcher can be defined, throw exceptions otherwise.
-     *
-     * @throws PHPUnit_Framework_Exception
-     */
-    private function canDefineParameters()
-    {
-        if ($this->matcher->methodNameMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception(
-              'Method name matcher is not defined, cannot define parameter ' .
-              ' matcher without one'
-            );
-        }
-
-        if ($this->matcher->parametersMatcher !== NULL) {
-            throw new PHPUnit_Framework_Exception(
-              'Parameter matcher is already defined, cannot redefine'
-            );
-        }
-    }
-
-    /**
-     * @param  mixed                                                 $argument, ...
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function with()
-    {
-        $args = func_get_args();
-
-        $this->canDefineParameters();
-
-        $this->matcher->parametersMatcher = new PHPUnit_Framework_MockObject_Matcher_Parameters($args);
-
-        return $this;
-    }
-
-    /**
-     * @param  mixed ...$argument
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function withConsecutive() {
-
-        $args = func_get_args();
-
-        $this->canDefineParameters();
-
-        $this->matcher->parametersMatcher =
-          new PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters($args);
-
-        return $this;
-    }
-
-    /**
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function withAnyParameters()
-    {
-        $this->canDefineParameters();
-
-        $this->matcher->parametersMatcher = new PHPUnit_Framework_MockObject_Matcher_AnyParameters;
-
-        return $this;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_Constraint|string                   $constraint
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function method($constraint)
-    {
-        if ($this->matcher->methodNameMatcher !== NULL) {
-            throw new PHPUnit_Framework_Exception(
-              'Method name matcher is already defined, cannot redefine'
-            );
-        }
-
-        $this->matcher->methodNameMatcher = new PHPUnit_Framework_MockObject_Matcher_MethodName($constraint);
-
-        return $this;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php
deleted file mode 100644
index 4bc48d5..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Builder interface for invocation order matches.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Builder_Match extends PHPUnit_Framework_MockObject_Builder_Stub
-{
-    /**
-     * Defines the expectation which must occur before the current is valid.
-     *
-     * @param  string                                    $id The identification of the expectation that should
-     *                                                       occur before this one.
-     * @return PHPUnit_Framework_MockObject_Builder_Stub
-     */
-    public function after($id);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php
deleted file mode 100644
index f41c65e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Builder interface for matcher of method names.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Builder_MethodNameMatch extends PHPUnit_Framework_MockObject_Builder_ParametersMatch
-{
-    /**
-     * Adds a new method name match and returns the parameter match object for
-     * further matching possibilities.
-     *
-     * @param  PHPUnit_Framework_Constraint                         $name
-     *                                                                    Constraint for matching method, if a string is passed it will use
-     *                                                                    the PHPUnit_Framework_Constraint_IsEqual.
-     * @return PHPUnit_Framework_MockObject_Builder_ParametersMatch
-     */
-    public function method($name);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php
deleted file mode 100644
index 83db918..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for builders which can register builders with a given identification.
- *
- * This interface relates to PHPUnit_Framework_MockObject_Builder_Identity.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Builder_Namespace
-{
-    /**
-     * Looks up the match builder with identification $id and returns it.
-     *
-     * @param  string                                     $id The identifiction of the match builder.
-     * @return PHPUnit_Framework_MockObject_Builder_Match
-     */
-    public function lookupId($id);
-
-    /**
-     * Registers the match builder $builder with the identification $id. The
-     * builder can later be looked up using lookupId() to figure out if it
-     * has been invoked.
-     *
-     * @param string                                     $id
-     *                                                            The identification of the match builder.
-     * @param PHPUnit_Framework_MockObject_Builder_Match $builder
-     *                                                            The builder which is being registered.
-     */
-    public function registerId($id, PHPUnit_Framework_MockObject_Builder_Match $builder);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php
deleted file mode 100644
index a9b406c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Builder interface for parameter matchers.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Builder_ParametersMatch extends PHPUnit_Framework_MockObject_Builder_Match
-{
-    /**
-     * Sets the parameters to match for, each parameter to this funtion will
-     * be part of match. To perform specific matches or constraints create a
-     * new PHPUnit_Framework_Constraint and use it for the parameter.
-     * If the parameter value is not a constraint it will use the
-     * PHPUnit_Framework_Constraint_IsEqual for the value.
-     *
-     * Some examples:
-     * <code>
-     * // match first parameter with value 2
-     * $b->with(2);
-     * // match first parameter with value 'smock' and second identical to 42
-     * $b->with('smock', new PHPUnit_Framework_Constraint_IsEqual(42));
-     * </code>
-     *
-     * @return PHPUnit_Framework_MockObject_Builder_ParametersMatch
-     */
-    public function with();
-
-    /**
-     * Sets a matcher which allows any kind of parameters.
-     *
-     * Some examples:
-     * <code>
-     * // match any number of parameters
-     * $b->withAnyParamers();
-     * </code>
-     *
-     * @return PHPUnit_Framework_MockObject_Matcher_AnyParameters
-     */
-    public function withAnyParameters();
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php
deleted file mode 100644
index 89c08c6..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Builder interface for stubs which are actions replacing an invocation.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Builder_Stub extends PHPUnit_Framework_MockObject_Builder_Identity
-{
-    /**
-     * Stubs the matching method with the stub object $stub. Any invocations of
-     * the matched method will now be handled by the stub instead.
-     *
-     * @param  PHPUnit_Framework_MockObject_Stub             $stub The stub object.
-     * @return PHPUnit_Framework_MockObject_Builder_Identity
-     */
-    public function will(PHPUnit_Framework_MockObject_Stub $stub);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php
deleted file mode 100644
index 2e34156..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 2.0.6
- */
-class PHPUnit_Framework_MockObject_BadMethodCallException extends BadMethodCallException implements PHPUnit_Framework_MockObject_Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php
deleted file mode 100644
index 4a3edb4..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for exceptions used by PHPUnit_MockObject.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 2.0.6
- */
-interface PHPUnit_Framework_MockObject_Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php
deleted file mode 100644
index 3516fc0..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 2.0.6
- */
-class PHPUnit_Framework_MockObject_RuntimeException extends RuntimeException implements PHPUnit_Framework_MockObject_Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
deleted file mode 100644
index 7b18cd0..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
+++ /dev/null
@@ -1,1096 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use Doctrine\Instantiator\Instantiator;
-use Doctrine\Instantiator\Exception\InvalidArgumentException as InstantiatorInvalidArgumentException;
-use Doctrine\Instantiator\Exception\UnexpectedValueException as InstantiatorUnexpectedValueException;
-
-if (!function_exists('trait_exists')) {
-    function trait_exists($traitname, $autoload = true)
-    {
-        return false;
-    }
-}
-
-/**
- * Mock Object Code Generator
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Generator
-{
-    /**
-     * @var array
-     */
-    private static $cache = array();
-
-    /**
-     * @var array
-     */
-    protected $blacklistedMethodNames = array(
-      '__CLASS__' => TRUE,
-      '__DIR__' => TRUE,
-      '__FILE__' => TRUE,
-      '__FUNCTION__' => TRUE,
-      '__LINE__' => TRUE,
-      '__METHOD__' => TRUE,
-      '__NAMESPACE__' => TRUE,
-      '__TRAIT__' => TRUE,
-      '__clone' => TRUE,
-      '__halt_compiler' => TRUE,
-      'abstract' => TRUE,
-      'and' => TRUE,
-      'array' => TRUE,
-      'as' => TRUE,
-      'break' => TRUE,
-      'callable' => TRUE,
-      'case' => TRUE,
-      'catch' => TRUE,
-      'class' => TRUE,
-      'clone' => TRUE,
-      'const' => TRUE,
-      'continue' => TRUE,
-      'declare' => TRUE,
-      'default' => TRUE,
-      'die' => TRUE,
-      'do' => TRUE,
-      'echo' => TRUE,
-      'else' => TRUE,
-      'elseif' => TRUE,
-      'empty' => TRUE,
-      'enddeclare' => TRUE,
-      'endfor' => TRUE,
-      'endforeach' => TRUE,
-      'endif' => TRUE,
-      'endswitch' => TRUE,
-      'endwhile' => TRUE,
-      'eval' => TRUE,
-      'exit' => TRUE,
-      'expects' => TRUE,
-      'extends' => TRUE,
-      'final' => TRUE,
-      'for' => TRUE,
-      'foreach' => TRUE,
-      'function' => TRUE,
-      'global' => TRUE,
-      'goto' => TRUE,
-      'if' => TRUE,
-      'implements' => TRUE,
-      'include' => TRUE,
-      'include_once' => TRUE,
-      'instanceof' => TRUE,
-      'insteadof' => TRUE,
-      'interface' => TRUE,
-      'isset' => TRUE,
-      'list' => TRUE,
-      'namespace' => TRUE,
-      'new' => TRUE,
-      'or' => TRUE,
-      'print' => TRUE,
-      'private' => TRUE,
-      'protected' => TRUE,
-      'public' => TRUE,
-      'require' => TRUE,
-      'require_once' => TRUE,
-      'return' => TRUE,
-      'static' => TRUE,
-      'switch' => TRUE,
-      'throw' => TRUE,
-      'trait' => TRUE,
-      'try' => TRUE,
-      'unset' => TRUE,
-      'use' => TRUE,
-      'var' => TRUE,
-      'while' => TRUE,
-      'xor' => TRUE
-    );
-
-    /**
-     * @var boolean
-     */
-    protected $soapLoaded = NULL;
-
-    /**
-     * Returns a mock object for the specified class.
-     *
-     * @param  array|string                $type
-     * @param  array                       $methods
-     * @param  array                       $arguments
-     * @param  string                      $mockClassName
-     * @param  boolean                     $callOriginalConstructor
-     * @param  boolean                     $callOriginalClone
-     * @param  boolean                     $callAutoload
-     * @param  boolean                     $cloneArguments
-     * @param  boolean                     $callOriginalMethods
-     * @param  object                      $proxyTarget
-     * @return object
-     * @throws InvalidArgumentException
-     * @throws PHPUnit_Framework_Exception
-     * @throws PHPUnit_Framework_MockObject_RuntimeException
-     * @since  Method available since Release 1.0.0
-     */
-    public function getMock($type, $methods = array(), array $arguments = array(), $mockClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE, $cloneArguments = TRUE, $callOriginalMethods = FALSE, $proxyTarget = NULL)
-    {
-        if (!is_array($type) && !is_string($type)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'array or string');
-        }
-
-        if (!is_string($mockClassName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(4, 'string');
-        }
-
-        if (!is_array($methods) && !is_null($methods)) {
-            throw new InvalidArgumentException;
-        }
-
-        if ($type === 'Traversable' || $type === '\\Traversable') {
-            $type = 'Iterator';
-        }
-
-        if (is_array($type)) {
-            $type = array_unique(array_map(
-              function ($type) {
-                  if ($type === 'Traversable' ||
-                      $type === '\\Traversable' ||
-                      $type === '\\Iterator') {
-                      return 'Iterator';
-                  }
-
-                  return $type;
-              },
-              $type
-            ));
-        }
-
-        if (NULL !== $methods) {
-            foreach ($methods as $method) {
-                if (!preg_match('~[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*~', $method)) {
-                    throw new PHPUnit_Framework_Exception(
-                      sprintf(
-                        'Cannot stub or mock method with invalid name "%s"',
-                        $method
-                      )
-                    );
-                }
-            }
-
-            if ($methods != array_unique($methods)) {
-                throw new PHPUnit_Framework_MockObject_RuntimeException(
-                  sprintf(
-                    'Cannot stub or mock using a method list that contains duplicates: "%s"',
-                    implode(', ', $methods)
-                  )
-                );
-            }
-        }
-
-        if ($mockClassName != '' && class_exists($mockClassName, FALSE)) {
-            $reflect = new ReflectionClass($mockClassName);
-
-            if (!$reflect->implementsInterface("PHPUnit_Framework_MockObject_MockObject")) {
-                throw new PHPUnit_Framework_MockObject_RuntimeException(
-                  sprintf(
-                    'Class "%s" already exists.',
-                    $mockClassName
-                  )
-                );
-            }
-        }
-
-        $mock = $this->generate(
-          $type,
-          $methods,
-          $mockClassName,
-          $callOriginalClone,
-          $callAutoload,
-          $cloneArguments,
-          $callOriginalMethods
-        );
-
-        return $this->getObject(
-          $mock['code'],
-          $mock['mockClassName'],
-          $type,
-          $callOriginalConstructor,
-          $callAutoload,
-          $arguments,
-          $callOriginalMethods,
-          $proxyTarget
-        );
-    }
-
-    /**
-     * @param  string       $code
-     * @param  string       $className
-     * @param  array|string $type
-     * @param  boolean      $callOriginalConstructor
-     * @param  boolean      $callAutoload
-     * @param  array        $arguments
-     * @param  boolean      $callOriginalMethods
-     * @param  object       $proxyTarget
-     * @return object
-     */
-    protected function getObject($code, $className, $type = '', $callOriginalConstructor = FALSE, $callAutoload = FALSE, array $arguments = array(), $callOriginalMethods = FALSE, $proxyTarget = NULL)
-    {
-        $this->evalClass($code, $className);
-
-        if ($callOriginalConstructor &&
-            is_string($type) &&
-            !interface_exists($type, $callAutoload)) {
-            if (count($arguments) == 0) {
-                $object = new $className;
-            } else {
-                $class  = new ReflectionClass($className);
-                $object = $class->newInstanceArgs($arguments);
-            }
-        } else {
-            try {
-                $instantiator = new Instantiator;
-                $object       = $instantiator->instantiate($className);
-            } catch (InstantiatorUnexpectedValueException $exception) {
-                if($exception->getPrevious()) {
-                    $exception = $exception->getPrevious();
-                }
-
-                throw new PHPUnit_Framework_MockObject_RuntimeException(
-                  $exception->getMessage()
-                );
-            } catch (InstantiatorInvalidArgumentException $exception) {
-                throw new PHPUnit_Framework_MockObject_RuntimeException(
-                  $exception->getMessage()
-                );
-            }
-        }
-
-        if ($callOriginalMethods) {
-            if (!is_object($proxyTarget)) {
-                if (count($arguments) == 0) {
-                    $proxyTarget = new $type;
-                } else {
-                    $class       = new ReflectionClass($type);
-                    $proxyTarget = $class->newInstanceArgs($arguments);
-                }
-            }
-
-            $object->__phpunit_setOriginalObject($proxyTarget);
-        }
-
-        return $object;
-    }
-
-    /**
-     * @param string $code
-     * @param string $className
-     */
-    protected function evalClass($code, $className)
-    {
-        if (!class_exists($className, FALSE)) {
-            eval($code);
-        }
-    }
-
-    /**
-     * Returns a mock object for the specified abstract class with all abstract
-     * methods of the class mocked. Concrete methods to mock can be specified with
-     * the last parameter
-     *
-     * @param  string                      $originalClassName
-     * @param  array                       $arguments
-     * @param  string                      $mockClassName
-     * @param  boolean                     $callOriginalConstructor
-     * @param  boolean                     $callOriginalClone
-     * @param  boolean                     $callAutoload
-     * @param  array                       $mockedMethods
-     * @param  boolean                     $cloneArguments
-     * @return object
-     * @since  Method available since Release 1.0.0
-     * @throws PHPUnit_Framework_MockObject_RuntimeException
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function getMockForAbstractClass($originalClassName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE, $mockedMethods = array(), $cloneArguments = TRUE)
-    {
-        if (!is_string($originalClassName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($mockClassName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string');
-        }
-
-        if (class_exists($originalClassName, $callAutoload) ||
-            interface_exists($originalClassName, $callAutoload)) {
-            $reflector = new ReflectionClass($originalClassName);
-            $methods   = $mockedMethods;
-
-            foreach ($reflector->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) {
-                if (!in_array($method->getName(), $methods)) {
-                    $methods[] = $method->getName();
-                }
-            }
-
-            if (empty($methods)) {
-                $methods = NULL;
-            }
-
-            return $this->getMock(
-              $originalClassName,
-              $methods,
-              $arguments,
-              $mockClassName,
-              $callOriginalConstructor,
-              $callOriginalClone,
-              $callAutoload,
-              $cloneArguments
-            );
-        } else {
-            throw new PHPUnit_Framework_MockObject_RuntimeException(
-              sprintf('Class "%s" does not exist.', $originalClassName)
-            );
-        }
-    }
-
-    /**
-     * Returns a mock object for the specified trait with all abstract methods
-     * of the trait mocked. Concrete methods to mock can be specified with the
-     * `$mockedMethods` parameter.
-     *
-     * @param  string                   $traitName
-     * @param  array                    $arguments
-     * @param  string                   $mockClassName
-     * @param  boolean                  $callOriginalConstructor
-     * @param  boolean                  $callOriginalClone
-     * @param  boolean                  $callAutoload
-     * @param  array                    $mockedMethods
-     * @param  boolean                  $cloneArguments
-     * @return object
-     * @since  Method available since Release 1.2.3
-     * @throws PHPUnit_Framework_MockObject_RuntimeException
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function getMockForTrait($traitName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE, $mockedMethods = array(), $cloneArguments = TRUE)
-    {
-        if (!is_string($traitName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($mockClassName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string');
-        }
-
-        if (!trait_exists($traitName, $callAutoload)) {
-            throw new PHPUnit_Framework_MockObject_RuntimeException(
-              sprintf(
-                'Trait "%s" does not exist.',
-                $traitName
-              )
-            );
-        }
-
-        $className = $this->generateClassName(
-          $traitName, '', 'Trait_'
-        );
-
-        $templateDir   = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Generator' .
-                         DIRECTORY_SEPARATOR;
-        $classTemplate = new Text_Template(
-                           $templateDir . 'trait_class.tpl'
-                         );
-
-        $classTemplate->setVar(
-          array(
-            'prologue'   => 'abstract ',
-            'class_name' => $className['className'],
-            'trait_name' => $traitName
-          )
-        );
-
-        $this->evalClass(
-          $classTemplate->render(),
-          $className['className']
-        );
-
-        return $this->getMockForAbstractClass($className['className'], $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $mockedMethods, $cloneArguments);
-    }
-
-    /**
-     * Returns an object for the specified trait.
-     *
-     * @param  string                      $traitName
-     * @param  array                       $arguments
-     * @param  string                      $traitClassName
-     * @param  boolean                     $callOriginalConstructor
-     * @param  boolean                     $callOriginalClone
-     * @param  boolean                     $callAutoload
-     * @return object
-     * @since  Method available since Release 1.1.0
-     * @throws PHPUnit_Framework_MockObject_RuntimeException
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function getObjectForTrait($traitName, array $arguments = array(), $traitClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE)
-    {
-        if (!is_string($traitName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($traitClassName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string');
-        }
-
-        if (!trait_exists($traitName, $callAutoload)) {
-            throw new PHPUnit_Framework_MockObject_RuntimeException(
-              sprintf(
-                'Trait "%s" does not exist.',
-                $traitName
-              )
-            );
-        }
-
-        $className = $this->generateClassName(
-          $traitName, $traitClassName, 'Trait_'
-        );
-
-        $templateDir   = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Generator' .
-                         DIRECTORY_SEPARATOR;
-        $classTemplate = new Text_Template(
-                           $templateDir . 'trait_class.tpl'
-                         );
-
-        $classTemplate->setVar(
-          array(
-            'prologue'   => '',
-            'class_name' => $className['className'],
-            'trait_name' => $traitName
-          )
-        );
-
-        return $this->getObject(
-          $classTemplate->render(),
-          $className['className']
-        );
-    }
-
-    /**
-     * @param  array|string $type
-     * @param  array        $methods
-     * @param  string       $mockClassName
-     * @param  boolean      $callOriginalClone
-     * @param  boolean      $callAutoload
-     * @param  boolean      $cloneArguments
-     * @param  boolean      $callOriginalMethods
-     * @return array
-     */
-    public function generate($type, array $methods = NULL, $mockClassName = '', $callOriginalClone = TRUE, $callAutoload = TRUE, $cloneArguments = TRUE, $callOriginalMethods = FALSE)
-    {
-        if (is_array($type)) {
-            sort($type);
-        }
-
-        if ($mockClassName == '') {
-            $key = md5(
-              is_array($type) ? join('_', $type) : $type .
-              serialize($methods) .
-              serialize($callOriginalClone) .
-              serialize($cloneArguments) .
-              serialize($callOriginalMethods)
-            );
-
-            if (isset(self::$cache[$key])) {
-                return self::$cache[$key];
-            }
-        }
-
-        $mock = $this->generateMock(
-          $type,
-          $methods,
-          $mockClassName,
-          $callOriginalClone,
-          $callAutoload,
-          $cloneArguments,
-          $callOriginalMethods
-        );
-
-        if (isset($key)) {
-            self::$cache[$key] = $mock;
-        }
-
-        return $mock;
-    }
-
-    /**
-     * @param  string                      $wsdlFile
-     * @param  string                      $className
-     * @param  array                       $methods
-     * @param  array                       $options
-     * @return string
-     * @throws PHPUnit_Framework_MockObject_RuntimeException
-     */
-    public function generateClassFromWsdl($wsdlFile, $className, array $methods = array(), array $options = array())
-    {
-        if ($this->soapLoaded === NULL) {
-            $this->soapLoaded = extension_loaded('soap');
-        }
-
-        if ($this->soapLoaded) {
-            $options = array_merge($options, array('cache_wsdl' => WSDL_CACHE_NONE));
-            $client   = new SoapClient($wsdlFile, $options);
-            $_methods = array_unique($client->__getFunctions());
-            unset($client);
-
-            sort($_methods);
-
-            $templateDir    = dirname(__FILE__) . DIRECTORY_SEPARATOR .
-                              'Generator' . DIRECTORY_SEPARATOR;
-            $methodTemplate = new Text_Template(
-                                $templateDir . 'wsdl_method.tpl'
-                              );
-            $methodsBuffer  = '';
-
-            foreach ($_methods as $method) {
-                $nameStart = strpos($method, ' ') + 1;
-                $nameEnd   = strpos($method, '(');
-                $name      = substr($method, $nameStart, $nameEnd - $nameStart);
-
-                if (empty($methods) || in_array($name, $methods)) {
-                    $args    = explode(
-                                 ',',
-                                 substr(
-                                   $method,
-                                   $nameEnd + 1,
-                                   strpos($method, ')') - $nameEnd - 1
-                                 )
-                               );
-                    $numArgs = count($args);
-
-                    for ($i = 0; $i < $numArgs; $i++) {
-                        $args[$i] = substr($args[$i], strpos($args[$i], '$'));
-                    }
-
-                    $methodTemplate->setVar(
-                      array(
-                        'method_name' => $name,
-                        'arguments'   => join(', ', $args)
-                      )
-                    );
-
-                    $methodsBuffer .= $methodTemplate->render();
-                }
-            }
-
-            $optionsBuffer = 'array(';
-
-            foreach ($options as $key => $value) {
-                $optionsBuffer .= $key . ' => ' . $value;
-            }
-
-            $optionsBuffer .= ')';
-
-            $classTemplate = new Text_Template(
-              $templateDir . 'wsdl_class.tpl'
-            );
-
-            $namespace = '';
-
-            if (strpos($className, '\\') !== FALSE) {
-                $parts     = explode('\\', $className);
-                $className = array_pop($parts);
-                $namespace = 'namespace ' . join('\\', $parts) . ';' . "\n\n";
-            }
-
-            $classTemplate->setVar(
-              array(
-                'namespace'  => $namespace,
-                'class_name' => $className,
-                'wsdl'       => $wsdlFile,
-                'options'    => $optionsBuffer,
-                'methods'    => $methodsBuffer
-              )
-            );
-
-            return $classTemplate->render();
-        } else {
-            throw new PHPUnit_Framework_MockObject_RuntimeException(
-              'The SOAP extension is required to generate a mock object ' .
-              'from WSDL.'
-            );
-        }
-    }
-
-    /**
-     * @param  array|string                $type
-     * @param  array|null                  $methods
-     * @param  string                      $mockClassName
-     * @param  boolean                     $callOriginalClone
-     * @param  boolean                     $callAutoload
-     * @param  boolean                     $cloneArguments
-     * @param  boolean                     $callOriginalMethods
-     * @return array
-     * @throws PHPUnit_Framework_Exception
-     */
-    protected function generateMock($type, $methods, $mockClassName, $callOriginalClone, $callAutoload, $cloneArguments, $callOriginalMethods)
-    {
-        $templateDir   = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Generator' .
-                         DIRECTORY_SEPARATOR;
-        $classTemplate = new Text_Template(
-                           $templateDir . 'mocked_class.tpl'
-                         );
-
-        $additionalInterfaces = array();
-        $cloneTemplate        = '';
-        $isClass              = FALSE;
-        $isInterface          = FALSE;
-
-        $mockClassName = $this->generateClassName(
-          $type, $mockClassName, 'Mock_'
-        );
-
-        if (is_array($type)) {
-            foreach ($type as $_type) {
-                if (!interface_exists($_type, $callAutoload)) {
-                    throw new PHPUnit_Framework_Exception(
-                      sprintf(
-                        'Interface "%s" does not exist.', $_type
-                      )
-                    );
-                }
-
-                $additionalInterfaces[] = $_type;
-
-                foreach (get_class_methods($_type) as $method) {
-                    if (in_array($method, $methods)) {
-                        throw new PHPUnit_Framework_Exception(
-                          sprintf(
-                            'Duplicate method "%s" not allowed.', $method
-                          )
-                        );
-                    }
-
-                    $methods[] = $method;
-                }
-            }
-        }
-
-        if (class_exists($mockClassName['fullClassName'], $callAutoload)) {
-            $isClass = TRUE;
-        } else {
-            if (interface_exists($mockClassName['fullClassName'], $callAutoload)) {
-                $isInterface = TRUE;
-            }
-        }
-
-        if (!class_exists($mockClassName['fullClassName'], $callAutoload) &&
-            !interface_exists($mockClassName['fullClassName'], $callAutoload)) {
-            $prologue = 'class ' . $mockClassName['originalClassName'] . "\n{\n}\n\n";
-
-            if (!empty($mockClassName['namespaceName'])) {
-                $prologue = 'namespace ' . $mockClassName['namespaceName'] .
-                            " {\n\n" . $prologue . "}\n\n" .
-                            "namespace {\n\n";
-
-                $epilogue = "\n\n}";
-            }
-
-            $cloneTemplate = new Text_Template(
-              $templateDir . 'mocked_clone.tpl'
-            );
-        } else {
-            $class = new ReflectionClass($mockClassName['fullClassName']);
-
-            if ($class->isFinal()) {
-                throw new PHPUnit_Framework_Exception(
-                  sprintf(
-                    'Class "%s" is declared "final" and cannot be mocked.',
-                    $mockClassName['fullClassName']
-                  )
-                );
-            }
-
-            if ($class->hasMethod('__clone')) {
-                $cloneMethod = $class->getMethod('__clone');
-
-                if (!$cloneMethod->isFinal()) {
-                    if ($callOriginalClone && !$isInterface) {
-                        $cloneTemplate = new Text_Template(
-                          $templateDir . 'unmocked_clone.tpl'
-                        );
-                    } else {
-                        $cloneTemplate = new Text_Template(
-                          $templateDir . 'mocked_clone.tpl'
-                        );
-                    }
-                }
-            } else {
-                $cloneTemplate = new Text_Template(
-                  $templateDir . 'mocked_clone.tpl'
-                );
-            }
-        }
-
-        if (is_object($cloneTemplate)) {
-            $cloneTemplate = $cloneTemplate->render();
-        }
-
-        if (is_array($methods) && empty($methods) &&
-            ($isClass || $isInterface)) {
-            $methods = get_class_methods($mockClassName['fullClassName']);
-        }
-
-        if (!is_array($methods)) {
-            $methods = array();
-        }
-
-        $mockedMethods = '';
-
-        if (isset($class)) {
-            // https://github.com/sebastianbergmann/phpunit-mock-objects/issues/103
-            if ($isInterface && $class->implementsInterface('Traversable') &&
-                !$class->implementsInterface('Iterator') &&
-                !$class->implementsInterface('IteratorAggregate')) {
-                $additionalInterfaces[] = 'Iterator';
-                $methods = array_merge($methods, get_class_methods('Iterator'));
-            }
-
-            foreach ($methods as $methodName) {
-                try {
-                    $method = $class->getMethod($methodName);
-
-                    if ($this->canMockMethod($method)) {
-                        $mockedMethods .= $this->generateMockedMethodDefinitionFromExisting(
-                          $templateDir,
-                          $method,
-                          $cloneArguments,
-                          $callOriginalMethods
-                        );
-                    }
-                } catch (ReflectionException $e) {
-                    $mockedMethods .= $this->generateMockedMethodDefinition(
-                      $templateDir, $mockClassName['fullClassName'], $methodName, $cloneArguments
-                    );
-                }
-            }
-        } else {
-            foreach ($methods as $methodName) {
-                $mockedMethods .= $this->generateMockedMethodDefinition(
-                  $templateDir, $mockClassName['fullClassName'], $methodName, $cloneArguments
-                );
-            }
-        }
-
-        $method = '';
-
-        if (!in_array('method', $methods)) {
-            $methodTemplate = new Text_Template(
-                $templateDir . 'mocked_class_method.tpl'
-            );
-
-            $method = $methodTemplate->render();
-        }
-
-        $classTemplate->setVar(
-          array(
-            'prologue'          => isset($prologue) ? $prologue : '',
-            'epilogue'          => isset($epilogue) ? $epilogue : '',
-            'class_declaration' => $this->generateMockClassDeclaration(
-                                     $mockClassName,
-                                     $isInterface,
-                                     $additionalInterfaces
-                                   ),
-            'clone'             => $cloneTemplate,
-            'mock_class_name'   => $mockClassName['className'],
-            'mocked_methods'    => $mockedMethods,
-            'method'            => $method
-          )
-        );
-
-        return array(
-          'code'          => $classTemplate->render(),
-          'mockClassName' => $mockClassName['className']
-        );
-    }
-
-    /**
-     * @param  array|string $type
-     * @param  string       $className
-     * @param  string       $prefix
-     * @return array
-     */
-    protected function generateClassName($type, $className, $prefix)
-    {
-        if (is_array($type)) {
-            $type = join('_', $type);
-        }
-
-        if ($type[0] == '\\') {
-            $type = substr($type, 1);
-        }
-
-        $classNameParts = explode('\\', $type);
-
-        if (count($classNameParts) > 1) {
-            $type          = array_pop($classNameParts);
-            $namespaceName = join('\\', $classNameParts);
-            $fullClassName = $namespaceName . '\\' . $type;
-        } else {
-            $namespaceName = '';
-            $fullClassName = $type;
-        }
-
-        if ($className == '') {
-            do {
-                $className = $prefix . $type . '_' .
-                             substr(md5(microtime()), 0, 8);
-            } while (class_exists($className, FALSE));
-        }
-
-        return array(
-          'className'         => $className,
-          'originalClassName' => $type,
-          'fullClassName'     => $fullClassName,
-          'namespaceName'     => $namespaceName
-        );
-    }
-
-    /**
-     * @param  array   $mockClassName
-     * @param  boolean $isInterface
-     * @param  array   $additionalInterfaces
-     * @return array
-     */
-    protected function generateMockClassDeclaration(array $mockClassName, $isInterface, array $additionalInterfaces = array())
-    {
-        $buffer = 'class ';
-
-        $additionalInterfaces[] = 'PHPUnit_Framework_MockObject_MockObject';
-        $interfaces = implode(', ', $additionalInterfaces);
-
-        if ($isInterface) {
-            $buffer .= sprintf(
-              "%s implements %s",
-              $mockClassName['className'],
-              $interfaces
-            );
-
-            if (!in_array($mockClassName['originalClassName'], $additionalInterfaces)) {
-                $buffer .= ', ';
-
-                if (!empty($mockClassName['namespaceName'])) {
-                    $buffer .= $mockClassName['namespaceName'] . '\\';
-                }
-
-                $buffer .= $mockClassName['originalClassName'];
-            }
-        } else {
-            $buffer .= sprintf(
-              "%s extends %s%s implements %s",
-              $mockClassName['className'],
-              !empty($mockClassName['namespaceName']) ? $mockClassName['namespaceName'] . '\\' : '',
-              $mockClassName['originalClassName'],
-              $interfaces
-            );
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * @param  string           $templateDir
-     * @param  ReflectionMethod $method
-     * @param  boolean          $cloneArguments
-     * @param  boolean          $callOriginalMethods
-     * @return string
-     */
-    protected function generateMockedMethodDefinitionFromExisting($templateDir, ReflectionMethod $method, $cloneArguments, $callOriginalMethods)
-    {
-        if ($method->isPrivate()) {
-            $modifier = 'private';
-        } elseif ($method->isProtected()) {
-            $modifier = 'protected';
-        } else {
-            $modifier = 'public';
-        }
-
-        if ($method->isStatic()) {
-            $modifier .= ' static';
-        }
-
-        if ($method->returnsReference()) {
-            $reference = '&';
-        } else {
-            $reference = '';
-        }
-
-        return $this->generateMockedMethodDefinition(
-          $templateDir,
-          $method->getDeclaringClass()->getName(),
-          $method->getName(),
-          $cloneArguments,
-          $modifier,
-          $this->getMethodParameters($method),
-          $this->getMethodParameters($method, TRUE),
-          $reference,
-          $callOriginalMethods,
-          $method->isStatic()
-        );
-    }
-
-    /**
-     * @param  string  $templateDir
-     * @param  string  $className
-     * @param  string  $methodName
-     * @param  boolean $cloneArguments
-     * @param  string  $modifier
-     * @param  string  $arguments_decl
-     * @param  string  $arguments_call
-     * @param  string  $reference
-     * @param  boolean $callOriginalMethods
-     * @param  boolean $static
-     * @return string
-     */
-    protected function generateMockedMethodDefinition($templateDir, $className, $methodName, $cloneArguments = TRUE, $modifier = 'public', $arguments_decl = '', $arguments_call = '', $reference = '', $callOriginalMethods = FALSE, $static = FALSE)
-    {
-        if ($static) {
-            $templateFile = 'mocked_static_method.tpl';
-        } else {
-            $templateFile = sprintf(
-              '%s_method.tpl',
-              $callOriginalMethods ? 'proxied' : 'mocked'
-            );
-        }
-
-        $template = new Text_Template($templateDir . $templateFile);
-
-        $template->setVar(
-          array(
-            'arguments_decl'  => $arguments_decl,
-            'arguments_call'  => $arguments_call,
-            'arguments_count' => !empty($arguments_call) ? count(explode(',', $arguments_call)) : 0,
-            'class_name'      => $className,
-            'method_name'     => $methodName,
-            'modifier'        => $modifier,
-            'reference'       => $reference,
-            'clone_arguments' => $cloneArguments ? 'TRUE' : 'FALSE'
-          )
-        );
-
-        return $template->render();
-    }
-
-    /**
-     * @param  ReflectionMethod $method
-     * @return boolean
-     */
-    protected function canMockMethod(ReflectionMethod $method)
-    {
-        if ($method->isConstructor() ||
-            $method->isFinal() ||
-            isset($this->blacklistedMethodNames[$method->getName()])) {
-            return FALSE;
-        }
-
-        return TRUE;
-    }
-
-    /**
-     * Returns the parameters of a function or method.
-     *
-     * @param  ReflectionMethod $method
-     * @param  boolean          $forCall
-     * @return string
-     * @throws PHPUnit_Framework_MockObject_RuntimeException
-     * @since  Method available since Release 2.0.0
-     */
-    protected function getMethodParameters(ReflectionMethod $method, $forCall = FALSE)
-    {
-        $parameters = array();
-
-        foreach ($method->getParameters() as $i => $parameter) {
-            $name = '$' . $parameter->getName();
-
-            /* Note: PHP extensions may use empty names for reference arguments
-             * or "..." for methods taking a variable number of arguments.
-             */
-            if ($name === '$' || $name === '$...') {
-                $name = '$arg' . $i;
-            }
-
-            if ($this->isVariadic($parameter)) {
-                if ($forCall) {
-                    continue;
-                } else {
-                    $name = '...' . $name;
-                }
-            }
-
-            $default   = '';
-            $reference = '';
-            $typeHint  = '';
-
-            if (!$forCall) {
-                if ($parameter->isArray()) {
-                    $typeHint = 'array ';
-                } elseif ((defined('HHVM_VERSION') || version_compare(PHP_VERSION, '5.4.0', '>='))
-                          && $parameter->isCallable()) {
-                    $typeHint = 'callable ';
-                } else {
-                    try {
-                        $class = $parameter->getClass();
-                    } catch (ReflectionException $e) {
-                        throw new PHPUnit_Framework_MockObject_RuntimeException(
-                          sprintf(
-                            'Cannot mock %s::%s() because a class or ' .
-                            'interface used in the signature is not loaded',
-                            $method->getDeclaringClass()->getName(),
-                            $method->getName()
-                          ),
-                          0,
-                          $e
-                        );
-                    }
-
-                    if ($class !== NULL) {
-                        $typeHint = $class->getName() . ' ';
-                    }
-                }
-
-                if (!$this->isVariadic($parameter)) {
-                    if ($parameter->isDefaultValueAvailable()) {
-                        $value = $parameter->getDefaultValue();
-                        $default = ' = ' . var_export($value, TRUE);
-                    } elseif ($parameter->isOptional()) {
-                        $default = ' = null';
-                    }
-                }
-            }
-
-            if ($parameter->isPassedByReference()) {
-                $reference = '&';
-            }
-
-            $parameters[] = $typeHint . $reference . $name . $default;
-        }
-
-        return join(', ', $parameters);
-    }
-
-    /**
-     * @param  ReflectionParameter $parameter
-     * @return boolean
-     * @since  Method available since Release 2.2.1
-     */
-    private function isVariadic(ReflectionParameter $parameter)
-    {
-        return method_exists('ReflectionParameter', 'isVariadic') && $parameter->isVariadic();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_class.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_class.tpl.dist
deleted file mode 100644
index a9a94cd..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_class.tpl.dist
+++ /dev/null
@@ -1,36 +0,0 @@
-{prologue}{class_declaration}
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-{clone}{mocked_methods}
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-{method}
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}{epilogue}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist
deleted file mode 100644
index 9e29c0d..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist
+++ /dev/null
@@ -1,7 +0,0 @@
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_clone.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_clone.tpl.dist
deleted file mode 100644
index bd846de..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_clone.tpl.dist
+++ /dev/null
@@ -1,4 +0,0 @@
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_method.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_method.tpl.dist
deleted file mode 100644
index e2f55d9..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_method.tpl.dist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-    {modifier} function {reference}{method_name}({arguments_decl})
-    {
-        $arguments = array({arguments_call});
-        $count     = func_num_args();
-
-        if ($count > {arguments_count}) {
-            $_arguments = func_get_args();
-
-            for ($i = {arguments_count}; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            '{class_name}', '{method_name}', $arguments, $this, {clone_arguments}
-          )
-        );
-
-        return $result;
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist
deleted file mode 100644
index 5454b2f..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist
+++ /dev/null
@@ -1,5 +0,0 @@
-
-    {modifier} function {reference}{method_name}({arguments_decl})
-    {
-        throw new PHPUnit_Framework_MockObject_BadMethodCallException;
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/proxied_method.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/proxied_method.tpl.dist
deleted file mode 100644
index 15e89bd..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/proxied_method.tpl.dist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-    {modifier} function {reference}{method_name}({arguments_decl})
-    {
-        $arguments = array({arguments_call});
-        $count     = func_num_args();
-
-        if ($count > {arguments_count}) {
-            $_arguments = func_get_args();
-
-            for ($i = {arguments_count}; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            '{class_name}', '{method_name}', $arguments, $this, {clone_arguments}
-          )
-        );
-
-        return call_user_func_array(array($this->__phpunit_originalObject, "{method_name}"), $arguments);
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/trait_class.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/trait_class.tpl.dist
deleted file mode 100644
index 4143b0f..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/trait_class.tpl.dist
+++ /dev/null
@@ -1,4 +0,0 @@
-{prologue}class {class_name}
-{
-    use {trait_name};
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist
deleted file mode 100644
index fa0e70a..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist
+++ /dev/null
@@ -1,5 +0,0 @@
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-        parent::__clone();
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/wsdl_class.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/wsdl_class.tpl.dist
deleted file mode 100644
index cc69fd3..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/wsdl_class.tpl.dist
+++ /dev/null
@@ -1,7 +0,0 @@
-{namespace}class {class_name} extends \SoapClient
-{
-    public function __construct($wsdl, array $options)
-    {
-        parent::__construct('{wsdl}', $options);
-    }
-{methods}}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/wsdl_method.tpl.dist b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/wsdl_method.tpl.dist
deleted file mode 100644
index bb16e76..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator/wsdl_method.tpl.dist
+++ /dev/null
@@ -1,4 +0,0 @@
-
-    public function {method_name}({arguments})
-    {
-    }
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php
deleted file mode 100644
index 9fe998c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for invocations.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Invocation
-{
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php
deleted file mode 100644
index a8fdfd1..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a non-static invocation.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Invocation_Object extends PHPUnit_Framework_MockObject_Invocation_Static
-{
-    /**
-     * @var object
-     */
-    public $object;
-
-    /**
-     * @param string $className
-     * @param string $methodname
-     * @param array  $parameters
-     * @param object $object
-     * @param object $cloneObjects
-     */
-    public function __construct($className, $methodName, array $parameters, $object, $cloneObjects = FALSE)
-    {
-        parent::__construct($className, $methodName, $parameters, $cloneObjects);
-        $this->object = $object;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php
deleted file mode 100644
index 6b570e6..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Exporter\Exporter;
-
-/**
- * Represents a static invocation.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Invocation_Static implements PHPUnit_Framework_MockObject_Invocation, PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * @var array
-     */
-    protected static $uncloneableExtensions = array(
-      'mysqli' => TRUE,
-      'SQLite' => TRUE,
-      'sqlite3' => TRUE,
-      'tidy' => TRUE,
-      'xmlwriter' => TRUE,
-      'xsl' => TRUE
-    );
-
-    /**
-     * @var array
-     */
-    protected static $uncloneableClasses = array(
-      'Closure',
-      'COMPersistHelper',
-      'IteratorIterator',
-      'RecursiveIteratorIterator',
-      'SplFileObject',
-      'PDORow',
-      'ZipArchive'
-    );
-
-    /**
-     * @var string
-     */
-    public $className;
-
-    /**
-     * @var string
-     */
-    public $methodName;
-
-    /**
-     * @var array
-     */
-    public $parameters;
-
-    /**
-     * @param string  $className
-     * @param string  $methodname
-     * @param array   $parameters
-     * @param boolean $cloneObjects
-     */
-    public function __construct($className, $methodName, array $parameters, $cloneObjects = FALSE)
-    {
-        $this->className  = $className;
-        $this->methodName = $methodName;
-        $this->parameters = $parameters;
-
-        if (!$cloneObjects) {
-            return;
-        }
-
-        foreach ($this->parameters as $key => $value) {
-            if (is_object($value)) {
-                $this->parameters[$key] = $this->cloneObject($value);
-            }
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        $exporter = new Exporter;
-
-        return sprintf(
-          "%s::%s(%s)",
-
-          $this->className,
-          $this->methodName,
-          join(
-            ', ',
-            array_map(
-              array($exporter, 'shortenedExport'),
-              $this->parameters
-            )
-          )
-        );
-    }
-
-    /**
-     * @param  object $original
-     * @return object
-     */
-    protected function cloneObject($original)
-    {
-        $cloneable = NULL;
-        $object    = new ReflectionObject($original);
-
-        // Check the blacklist before asking PHP reflection to work around
-        // https://bugs.php.net/bug.php?id=53967
-        if ($object->isInternal() &&
-            isset(self::$uncloneableExtensions[$object->getExtensionName()])) {
-            $cloneable = FALSE;
-        }
-
-        if ($cloneable === NULL) {
-            foreach (self::$uncloneableClasses as $class) {
-                if ($original instanceof $class) {
-                    $cloneable = FALSE;
-                    break;
-                }
-            }
-        }
-
-        if ($cloneable === NULL && method_exists($object, 'isCloneable')) {
-            $cloneable = $object->isCloneable();
-        }
-
-        if ($cloneable === NULL && $object->hasMethod('__clone')) {
-            $method    = $object->getMethod('__clone');
-            $cloneable = $method->isPublic();
-        }
-
-        if ($cloneable === NULL) {
-            $cloneable = TRUE;
-        }
-
-        if ($cloneable) {
-            try {
-                return clone $original;
-            } catch (Exception $e) {
-                return $original;
-            }
-        } else {
-            return $original;
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php
deleted file mode 100644
index e6627e1..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Mocker for invocations which are sent from
- * PHPUnit_Framework_MockObject_MockObject objects.
- *
- * Keeps track of all expectations and stubs as well as registering
- * identifications for builders.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_InvocationMocker implements PHPUnit_Framework_MockObject_Stub_MatcherCollection, PHPUnit_Framework_MockObject_Invokable, PHPUnit_Framework_MockObject_Builder_Namespace
-{
-    /**
-     * @var PHPUnit_Framework_MockObject_Matcher_Invocation[]
-     */
-    protected $matchers = array();
-
-    /**
-     * @var PHPUnit_Framework_MockObject_Builder_Match[]
-     */
-    protected $builderMap = array();
-
-    /**
-     * @param PHPUnit_Framework_MockObject_Matcher_Invocation $matcher
-     */
-    public function addMatcher(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        $this->matchers[] = $matcher;
-    }
-
-    /**
-     * @since Method available since Release 1.1.0
-     */
-    public function hasMatchers()
-    {
-        foreach ($this->matchers as $matcher) {
-            if ($matcher->hasMatchers()) {
-                return TRUE;
-            }
-        }
-
-        return FALSE;
-    }
-
-    /**
-     * @param  mixed        $id
-     * @return boolean|null
-     */
-    public function lookupId($id)
-    {
-        if (isset($this->builderMap[$id])) {
-            return $this->builderMap[$id];
-        }
-
-        return NULL;
-    }
-
-    /**
-     * @param  mixed                                      $id
-     * @param  PHPUnit_Framework_MockObject_Builder_Match $builder
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function registerId($id, PHPUnit_Framework_MockObject_Builder_Match $builder)
-    {
-        if (isset($this->builderMap[$id])) {
-            throw new PHPUnit_Framework_Exception(
-              'Match builder with id <' . $id . '> is already registered.'
-            );
-        }
-
-        $this->builderMap[$id] = $builder;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Matcher_Invocation       $matcher
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return new PHPUnit_Framework_MockObject_Builder_InvocationMocker(
-          $this, $matcher
-        );
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return mixed
-     */
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $exception      = NULL;
-        $hasReturnValue = FALSE;
-
-        if (strtolower($invocation->methodName) == '__tostring') {
-            $returnValue = '';
-        } else {
-            $returnValue = NULL;
-        }
-
-        foreach ($this->matchers as $match) {
-            try {
-                if ($match->matches($invocation)) {
-                    $value = $match->invoked($invocation);
-
-                    if (!$hasReturnValue) {
-                        $returnValue    = $value;
-                        $hasReturnValue = TRUE;
-                    }
-                }
-            } catch (Exception $e) {
-                $exception = $e;
-            }
-        }
-
-        if ($exception !== NULL) {
-            throw $exception;
-        }
-
-        return $returnValue;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        foreach ($this->matchers as $matcher) {
-            if (!$matcher->matches($invocation)) {
-                return FALSE;
-            }
-        }
-
-        return TRUE;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function verify()
-    {
-        foreach ($this->matchers as $matcher) {
-            $matcher->verify();
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php
deleted file mode 100644
index 30da9b7..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for classes which can be invoked.
- *
- * The invocation will be taken from a mock object and passed to an object
- * of this class.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Invokable extends PHPUnit_Framework_MockObject_Verifiable
-{
-    /**
-     * Invokes the invocation object $invocation so that it can be checked for
-     * expectations or matched against stubs.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             The invocation object passed from mock object.
-     * @return object
-     */
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation);
-
-    /**
-     * Checks if the invocation matches.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             The invocation object passed from mock object.
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php
deleted file mode 100644
index 0443501..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php
+++ /dev/null
@@ -1,282 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Main matcher which defines a full expectation using method, parameter and
- * invocation matchers.
- * This matcher encapsulates all the other matchers and allows the builder to
- * set the specific matchers when the appropriate methods are called (once(),
- * where() etc.).
- *
- * All properties are public so that they can easily be accessed by the builder.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher implements PHPUnit_Framework_MockObject_Matcher_Invocation
-{
-    /**
-     * @var PHPUnit_Framework_MockObject_Matcher_Invocation
-     */
-    public $invocationMatcher;
-
-    /**
-     * @var mixed
-     */
-    public $afterMatchBuilderId = NULL;
-
-    /**
-     * @var boolean
-     */
-    public $afterMatchBuilderIsInvoked = FALSE;
-
-    /**
-     * @var PHPUnit_Framework_MockObject_Matcher_MethodName
-     */
-    public $methodNameMatcher = NULL;
-
-    /**
-     * @var PHPUnit_Framework_MockObject_Matcher_Parameters
-     */
-    public $parametersMatcher = NULL;
-
-    /**
-     * @var PHPUnit_Framework_MockObject_Stub
-     */
-    public $stub = NULL;
-
-    /**
-     * @param PHPUnit_Framework_MockObject_Matcher_Invocation $invocationMatcher
-     */
-    public function __construct(PHPUnit_Framework_MockObject_Matcher_Invocation $invocationMatcher)
-    {
-        $this->invocationMatcher = $invocationMatcher;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        $list = array();
-
-        if ($this->invocationMatcher !== NULL) {
-            $list[] = $this->invocationMatcher->toString();
-        }
-
-        if ($this->methodNameMatcher !== NULL) {
-            $list[] = 'where ' . $this->methodNameMatcher->toString();
-        }
-
-        if ($this->parametersMatcher !== NULL) {
-            $list[] = 'and ' . $this->parametersMatcher->toString();
-        }
-
-        if ($this->afterMatchBuilderId !== NULL) {
-            $list[] = 'after ' . $this->afterMatchBuilderId;
-        }
-
-        if ($this->stub !== NULL) {
-            $list[] = 'will ' . $this->stub->toString();
-        }
-
-        return join(' ', $list);
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return mixed
-     */
-    public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        if ($this->invocationMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception(
-              'No invocation matcher is set'
-            );
-        }
-
-        if ($this->methodNameMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception('No method matcher is set');
-        }
-
-        if ($this->afterMatchBuilderId !== NULL) {
-            $builder = $invocation->object
-                                  ->__phpunit_getInvocationMocker()
-                                  ->lookupId($this->afterMatchBuilderId);
-
-            if (!$builder) {
-                throw new PHPUnit_Framework_Exception(
-                  sprintf(
-                    'No builder found for match builder identification <%s>',
-
-                    $this->afterMatchBuilderId
-                  )
-                );
-            }
-
-            $matcher = $builder->getMatcher();
-
-            if ($matcher && $matcher->invocationMatcher->hasBeenInvoked()) {
-                $this->afterMatchBuilderIsInvoked = TRUE;
-            }
-        }
-
-        $this->invocationMatcher->invoked($invocation);
-
-        try {
-            if ( $this->parametersMatcher !== NULL &&
-                !$this->parametersMatcher->matches($invocation)) {
-                $this->parametersMatcher->verify();
-            }
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf(
-                "Expectation failed for %s when %s\n%s",
-
-                $this->methodNameMatcher->toString(),
-                $this->invocationMatcher->toString(),
-                $e->getMessage()
-              ),
-              $e->getComparisonFailure()
-            );
-        }
-
-        if ($this->stub) {
-            return $this->stub->invoke($invocation);
-        }
-
-        return NULL;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        if ($this->afterMatchBuilderId !== NULL) {
-            $builder = $invocation->object
-                                  ->__phpunit_getInvocationMocker()
-                                  ->lookupId($this->afterMatchBuilderId);
-
-            if (!$builder) {
-                throw new PHPUnit_Framework_Exception(
-                  sprintf(
-                    'No builder found for match builder identification <%s>',
-
-                    $this->afterMatchBuilderId
-                  )
-                );
-            }
-
-            $matcher = $builder->getMatcher();
-
-            if (!$matcher) {
-                return FALSE;
-            }
-
-            if (!$matcher->invocationMatcher->hasBeenInvoked()) {
-                return FALSE;
-            }
-        }
-
-        if ($this->invocationMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception(
-              'No invocation matcher is set'
-            );
-        }
-
-        if ($this->methodNameMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception('No method matcher is set');
-        }
-
-        if (!$this->invocationMatcher->matches($invocation)) {
-            return FALSE;
-        }
-
-        try {
-            if (!$this->methodNameMatcher->matches($invocation)) {
-                return FALSE;
-            }
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf(
-                "Expectation failed for %s when %s\n%s",
-
-                $this->methodNameMatcher->toString(),
-                $this->invocationMatcher->toString(),
-                $e->getMessage()
-              ),
-              $e->getComparisonFailure()
-            );
-        }
-
-        return TRUE;
-    }
-
-    /**
-     * @throws PHPUnit_Framework_Exception
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        if ($this->invocationMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception(
-              'No invocation matcher is set'
-            );
-        }
-
-        if ($this->methodNameMatcher === NULL) {
-            throw new PHPUnit_Framework_Exception('No method matcher is set');
-        }
-
-        try {
-            $this->invocationMatcher->verify();
-
-            if ($this->parametersMatcher === NULL) {
-                $this->parametersMatcher = new PHPUnit_Framework_MockObject_Matcher_AnyParameters;
-            }
-
-            $invocationIsAny = get_class($this->invocationMatcher) === 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount';
-            $invocationIsNever = get_class($this->invocationMatcher) === 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' && $this->invocationMatcher->isNever();
-            if (!$invocationIsAny && !$invocationIsNever) {
-                $this->parametersMatcher->verify();
-            }
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf(
-                "Expectation failed for %s when %s.\n%s",
-
-                $this->methodNameMatcher->toString(),
-                $this->invocationMatcher->toString(),
-                PHPUnit_Framework_TestFailure::exceptionToString($e)
-              )
-            );
-        }
-    }
-
-    /**
-     * @since Method available since Release 1.2.4
-     */
-    public function hasMatchers()
-    {
-        if ($this->invocationMatcher !== NULL &&
-            !$this->invocationMatcher instanceof PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount) {
-            return TRUE;
-        }
-
-        return FALSE;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php
deleted file mode 100644
index 8d0b00e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which checks if a method has been invoked zero or more
- * times. This matcher will always match.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder
-{
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'invoked zero or more times';
-    }
-
-    /**
-     */
-    public function verify()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php
deleted file mode 100644
index ae6cc25..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which allows any parameters to a method.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_AnyParameters extends PHPUnit_Framework_MockObject_Matcher_StatelessInvocation
-{
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'with any parameters';
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        return TRUE;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php
deleted file mode 100644
index e7b577c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which looks for sets of specific parameters in the invocations.
- *
- * Checks the parameters of the incoming invocations, the parameter list is
- * checked against the defined constraints in $parameters. If the constraint
- * is met it will return true in matches().
- *
- * It takes a list of match groups and and increases a call index after each invocation.
- * So the first invocation uses the first group of constraints, the second the next and so on.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- */
-class PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters
-  extends PHPUnit_Framework_MockObject_Matcher_StatelessInvocation
-{
-
-  /**
-   * @var array
-   */
-  private $_parameterGroups = array();
-
-  /**
-   * @var array
-   */
-  private $_invocations = array();
-
-  /**
-   * @param array $parameterGroups
-   */
-  public function __construct(array $parameterGroups)
-  {
-      foreach ($parameterGroups as $index => $parameters) {
-          foreach ($parameters as $parameter) {
-              if (!($parameter instanceof \PHPUnit_Framework_Constraint))
-              {
-                  $parameter = new \PHPUnit_Framework_Constraint_IsEqual($parameter);
-              }
-              $this->_parameterGroups[$index][] = $parameter;
-          }
-      }
-  }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        $text = 'with consecutive parameters';
-
-        return $text;
-    }
-
-  /**
-   * @param PHPUnit_Framework_MockObject_Invocation $invocation
-   * @return bool
-   */
-  public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-  {
-      $this->_invocations[] = $invocation;
-      $callIndex = count($this->_invocations) - 1;
-      $this->verifyInvocation($invocation, $callIndex);
-      return FALSE;
-  }
-
-  public function verify()
-  {
-      foreach ($this->_invocations as $callIndex => $invocation) {
-        $this->verifyInvocation($invocation, $callIndex);
-      }
-  }
-
-  /**
-   * Verify a single invocation
-   *
-   * @param PHPUnit_Framework_MockObject_Invocation $invocation
-   * @param int $callIndex
-   * @throws PHPUnit_Framework_ExpectationFailedException
-   */
-  private function verifyInvocation(PHPUnit_Framework_MockObject_Invocation $invocation, $callIndex)
-  {
-
-      if (isset($this->_parameterGroups[$callIndex])) {
-          $parameters = $this->_parameterGroups[$callIndex];
-      } else {
-        // no parameter assertion for this call index
-        return;
-      }
-
-      if ($invocation === NULL) {
-          throw new PHPUnit_Framework_ExpectationFailedException(
-            'Mocked method does not exist.'
-          );
-      }
-
-      if (count($invocation->parameters) < count($parameters)) {
-          throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf(
-                'Parameter count for invocation %s is too low.',
-                $invocation->toString()
-              )
-          );
-      }
-
-      foreach ($parameters as $i => $parameter) {
-          $parameter->evaluate(
-              $invocation->parameters[$i],
-              sprintf(
-                'Parameter %s for invocation #%d %s does not match expected ' .
-                'value.',
-                $i,
-                $callIndex,
-                $invocation->toString()
-              )
-          );
-      }
-  }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php
deleted file mode 100644
index 470cb29..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for classes which matches an invocation based on its
- * method name, argument, order or call count.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Matcher_Invocation extends PHPUnit_Framework_SelfDescribing, PHPUnit_Framework_MockObject_Verifiable
-{
-    /**
-     * Registers the invocation $invocation in the object as being invoked.
-     * This will only occur after matches() returns true which means the
-     * current invocation is the correct one.
-     *
-     * The matcher can store information from the invocation which can later
-     * be checked in verify(), or it can check the values directly and throw
-     * and exception if an expectation is not met.
-     *
-     * If the matcher is a stub it will also have a return value.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             Object containing information on a mocked or stubbed method which
-     *                                                             was invoked.
-     * @return mixed
-     */
-    public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation);
-
-    /**
-     * Checks if the invocation $invocation matches the current rules. If it does
-     * the matcher will get the invoked() method called which should check if an
-     * expectation is met.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             Object containing information on a mocked or stubbed method which
-     *                                                             was invoked.
-     * @return bool
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php
deleted file mode 100644
index a4ffe2a..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which checks if a method was invoked at a certain index.
- *
- * If the expected index number does not match the current invocation index it
- * will not match which means it skips all method and parameter matching. Only
- * once the index is reached will the method and parameter start matching and
- * verifying.
- *
- * If the index is never reached it will throw an exception in index.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex implements PHPUnit_Framework_MockObject_Matcher_Invocation
-{
-    /**
-     * @var integer
-     */
-    protected $sequenceIndex;
-
-    /**
-     * @var integer
-     */
-    protected $currentIndex = -1;
-
-    /**
-     * @param integer $sequenceIndex
-     */
-    public function __construct($sequenceIndex)
-    {
-        $this->sequenceIndex = $sequenceIndex;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'invoked at sequence index ' . $this->sequenceIndex;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $this->currentIndex++;
-
-        return $this->currentIndex == $this->sequenceIndex;
-    }
-
-    /**
-     * @param PHPUnit_Framework_MockObject_Invocation $invocation
-     */
-    public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-    }
-
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        if ($this->currentIndex < $this->sequenceIndex) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf(
-                'The expected invocation at index %s was never reached.',
-
-                $this->sequenceIndex
-              )
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php
deleted file mode 100644
index b8caca3..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which checks if a method has been invoked at least
- * N times.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 2.2.0
- */
-class PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder
-{
-    /**
-     * @var integer
-     */
-    private $requiredInvocations;
-
-    /**
-     * @param integer $requiredInvocations
-     */
-    public function __construct($requiredInvocations)
-    {
-        $this->requiredInvocations = $requiredInvocations;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'invoked at least ' . $this->requiredInvocations . ' times';
-    }
-
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        $count = $this->getInvocationCount();
-
-        if ($count < $this->requiredInvocations) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-                'Expected invocation at least ' . $this->requiredInvocations .
-                ' times but it occured ' . $count . ' time(s).'
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php
deleted file mode 100644
index a2a9301..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which checks if a method has been invoked at least one
- * time.
- *
- * If the number of invocations is 0 it will throw an exception in verify.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder
-{
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'invoked at least once';
-    }
-
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        $count = $this->getInvocationCount();
-
-        if ($count < 1) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              'Expected invocation at least once but it never occured.'
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php
deleted file mode 100644
index 3a01596..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which checks if a method has been invoked at least
- * N times.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 2.2.0
- */
-class PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder
-{
-    /**
-     * @var integer
-     */
-    private $allowedInvocations;
-
-    /**
-     * @param integer $allowedInvocations
-     */
-    public function __construct($allowedInvocations)
-    {
-        $this->allowedInvocations = $allowedInvocations;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'invoked at most ' . $this->allowedInvocations . ' times';
-    }
-
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        $count = $this->getInvocationCount();
-
-        if ($count > $this->allowedInvocations) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-                'Expected invocation at most ' . $this->allowedInvocations .
-                ' times but it occured ' . $count . ' time(s).'
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php
deleted file mode 100644
index d98eb76..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which checks if a method has been invoked a certain amount
- * of times.
- * If the number of invocations exceeds the value it will immediately throw an
- * exception,
- * If the number is less it will later be checked in verify() and also throw an
- * exception.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_InvokedCount extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder
-{
-    /**
-     * @var integer
-     */
-    protected $expectedCount;
-
-    /**
-     * @param integer $expectedCount
-     */
-    public function __construct($expectedCount)
-    {
-        $this->expectedCount = $expectedCount;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function isNever()
-    {
-        return $this->expectedCount == 0;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'invoked ' . $this->expectedCount . ' time(s)';
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation      $invocation
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        parent::invoked($invocation);
-
-        $count = $this->getInvocationCount();
-
-        if ($count > $this->expectedCount) {
-            $message = $invocation->toString() . ' ';
-
-            switch ($this->expectedCount) {
-                case 0: {
-                    $message .= 'was not expected to be called.';
-                }
-                break;
-
-                case 1: {
-                    $message .= 'was not expected to be called more than once.';
-                }
-                break;
-
-                default: {
-                    $message .= sprintf(
-                      'was not expected to be called more than %d times.',
-
-                      $this->expectedCount
-                    );
-                }
-            }
-
-            throw new PHPUnit_Framework_ExpectationFailedException($message);
-        }
-    }
-
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        $count = $this->getInvocationCount();
-
-        if ($count !== $this->expectedCount) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf(
-                'Method was expected to be called %d times, ' .
-                'actually called %d times.',
-
-                $this->expectedCount,
-                $count
-              )
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php
deleted file mode 100644
index 1548ab3..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Records invocations and provides convenience methods for checking them later
- * on.
- * This abstract class can be implemented by matchers which needs to check the
- * number of times an invocation has occured.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- * @abstract
- */
-abstract class PHPUnit_Framework_MockObject_Matcher_InvokedRecorder implements PHPUnit_Framework_MockObject_Matcher_Invocation
-{
-    /**
-     * @var PHPUnit_Framework_MockObject_Invocation[]
-     */
-    protected $invocations = array();
-
-    /**
-     * @return integer
-     */
-    public function getInvocationCount()
-    {
-        return count($this->invocations);
-    }
-
-    /**
-     * @return PHPUnit_Framework_MockObject_Invocation[]
-     */
-    public function getInvocations()
-    {
-        return $this->invocations;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function hasBeenInvoked()
-    {
-        return count($this->invocations) > 0;
-    }
-
-    /**
-     * @param PHPUnit_Framework_MockObject_Invocation $invocation
-     */
-    public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $this->invocations[] = $invocation;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        return TRUE;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php
deleted file mode 100644
index 11fc499..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which looks for a specific method name in the invocations.
- *
- * Checks the method name all incoming invocations, the name is checked against
- * the defined constraint $constraint. If the constraint is met it will return
- * true in matches().
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_MethodName extends PHPUnit_Framework_MockObject_Matcher_StatelessInvocation
-{
-    /**
-     * @var PHPUnit_Framework_Constraint
-     */
-    protected $constraint;
-
-    /**
-     * @param  PHPUnit_Framework_Constraint|string
-     * @throws PHPUnit_Framework_Constraint
-     */
-    public function __construct($constraint)
-    {
-        if (!$constraint instanceof PHPUnit_Framework_Constraint) {
-            if (!is_string($constraint)) {
-                throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-            }
-
-            $constraint = new PHPUnit_Framework_Constraint_IsEqual(
-              $constraint, 0, 10, FALSE, TRUE
-            );
-        }
-
-        $this->constraint = $constraint;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'method name ' . $this->constraint->toString();
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        return $this->constraint->evaluate($invocation->methodName, '', TRUE);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php
deleted file mode 100644
index 4922e62..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which looks for specific parameters in the invocations.
- *
- * Checks the parameters of all incoming invocations, the parameter list is
- * checked against the defined constraints in $parameters. If the constraint
- * is met it will return true in matches().
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Matcher_Parameters extends PHPUnit_Framework_MockObject_Matcher_StatelessInvocation
-{
-    /**
-     * @var array
-     */
-    protected $parameters = array();
-
-    /**
-     * @var PHPUnit_Framework_MockObject_Invocation
-     */
-    protected $invocation;
-
-    /**
-     * @param array $parameters
-     */
-    public function __construct(array $parameters)
-    {
-        foreach ($parameters as $parameter) {
-            if (!($parameter instanceof PHPUnit_Framework_Constraint)) {
-                $parameter = new PHPUnit_Framework_Constraint_IsEqual(
-                  $parameter
-                );
-            }
-
-            $this->parameters[] = $parameter;
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        $text = 'with parameter';
-
-        foreach ($this->parameters as $index => $parameter) {
-            if ($index > 0) {
-                $text .= ' and';
-            }
-
-            $text .= ' ' . $index . ' ' . $parameter->toString();
-        }
-
-        return $text;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return boolean
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $this->invocation = $invocation;
-        return $this->verify();
-    }
-
-    /**
-     * Checks if the invocation $invocation matches the current rules. If it
-     * does the matcher will get the invoked() method called which should check
-     * if an expectation is met.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation      $invocation
-     *                                                                  Object containing information on a mocked or stubbed method which
-     *                                                                  was invoked.
-     * @return bool
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify()
-    {
-        if ($this->invocation === NULL) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              'Mocked method does not exist.'
-            );
-        }
-
-        if (count($this->invocation->parameters) < count($this->parameters)) {
-            $message = 'Parameter count for invocation %s is too low.';
-
-            // The user called `->with($this->anything())`, but may have meant
-            // `->withAnyParameters()`.
-            //
-            // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/199
-            if (count($this->parameters) === 1 &&
-                get_class($this->parameters[0]) === 'PHPUnit_Framework_Constraint_IsAnything') {
-                $message .= "\nTo allow 0 or more parameters with any value, omit ->with() or use ->withAnyParameters() instead.";
-            }
-
-            throw new PHPUnit_Framework_ExpectationFailedException(
-              sprintf($message, $this->invocation->toString())
-            );
-        }
-
-        foreach ($this->parameters as $i => $parameter) {
-            $parameter->evaluate(
-              $this->invocation->parameters[$i],
-              sprintf(
-                'Parameter %s for invocation %s does not match expected ' .
-                'value.',
-
-                $i,
-                $this->invocation->toString()
-              )
-            );
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php
deleted file mode 100644
index fd8fa7a..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which does not care about previous state from earlier
- * invocations.
- *
- * This abstract class can be implemented by matchers which does not care about
- * state but only the current run-time value of the invocation itself.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- * @abstract
- */
-abstract class PHPUnit_Framework_MockObject_Matcher_StatelessInvocation implements PHPUnit_Framework_MockObject_Matcher_Invocation
-{
-    /**
-     * Registers the invocation $invocation in the object as being invoked.
-     * This will only occur after matches() returns true which means the
-     * current invocation is the correct one.
-     *
-     * The matcher can store information from the invocation which can later
-     * be checked in verify(), or it can check the values directly and throw
-     * and exception if an expectation is not met.
-     *
-     * If the matcher is a stub it will also have a return value.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             Object containing information on a mocked or stubbed method which
-     *                                                             was invoked.
-     * @return mixed
-     */
-    public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-    }
-
-    /**
-     * Checks if the invocation $invocation matches the current rules. If it does
-     * the matcher will get the invoked() method called which should check if an
-     * expectation is met.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             Object containing information on a mocked or stubbed method which
-     *                                                             was invoked.
-     * @return bool
-     */
-    public function verify()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php
deleted file mode 100644
index f59c23d..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php
+++ /dev/null
@@ -1,328 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Implementation of the Builder pattern for Mock objects.
- *
- * @package    PHPUnit_MockObject
- * @author     Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_MockBuilder
-{
-    /**
-     * @var PHPUnit_Framework_TestCase
-     */
-    private $testCase;
-
-    /**
-     * @var string
-     */
-    private $type;
-
-    /**
-     * @var array
-     */
-    private $methods = array();
-
-    /**
-     * @var string
-     */
-    private $mockClassName = '';
-
-    /**
-     * @var array
-     */
-    private $constructorArgs = array();
-
-    /**
-     * @var boolean
-     */
-    private $originalConstructor = TRUE;
-
-    /**
-     * @var boolean
-     */
-    private $originalClone = TRUE;
-
-    /**
-     * @var boolean
-     */
-    private $autoload = TRUE;
-
-    /**
-     * @var boolean
-     */
-    private $cloneArguments = FALSE;
-
-    /**
-     * @var boolean
-     */
-    private $callOriginalMethods = FALSE;
-
-    /**
-     * @var object
-     */
-    private $proxyTarget = NULL;
-
-    /**
-     * @param PHPUnit_Framework_TestCase $testCase
-     * @param array|string               $type
-     */
-    public function __construct(PHPUnit_Framework_TestCase $testCase, $type)
-    {
-        $this->testCase = $testCase;
-        $this->type     = $type;
-    }
-
-    /**
-     * Creates a mock object using a fluent interface.
-     *
-     * @return PHPUnit_Framework_MockObject_MockObject
-     */
-    public function getMock()
-    {
-        return $this->testCase->getMock(
-          $this->type,
-          $this->methods,
-          $this->constructorArgs,
-          $this->mockClassName,
-          $this->originalConstructor,
-          $this->originalClone,
-          $this->autoload,
-          $this->cloneArguments,
-          $this->callOriginalMethods,
-          $this->proxyTarget
-        );
-    }
-
-    /**
-     * Creates a mock object for an abstract class using a fluent interface.
-     *
-     * @return PHPUnit_Framework_MockObject_MockObject
-     */
-    public function getMockForAbstractClass()
-    {
-        return $this->testCase->getMockForAbstractClass(
-          $this->type,
-          $this->constructorArgs,
-          $this->mockClassName,
-          $this->originalConstructor,
-          $this->originalClone,
-          $this->autoload,
-          $this->methods,
-          $this->cloneArguments
-        );
-    }
-
-    /**
-     * Creates a mock object for a trait using a fluent interface.
-     *
-     * @return PHPUnit_Framework_MockObject_MockObject
-     */
-    public function getMockForTrait()
-    {
-        return $this->testCase->getMockForTrait(
-          $this->type,
-          $this->constructorArgs,
-          $this->mockClassName,
-          $this->originalConstructor,
-          $this->originalClone,
-          $this->autoload,
-          $this->methods,
-          $this->cloneArguments
-        );
-    }
-
-    /**
-     * Specifies the subset of methods to mock. Default is to mock all of them.
-     *
-     * @param  array|null                               $methods
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     */
-    public function setMethods($methods)
-    {
-        $this->methods = $methods;
-
-        return $this;
-    }
-
-    /**
-     * Specifies the arguments for the constructor.
-     *
-     * @param  array                                    $args
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     */
-    public function setConstructorArgs(array $args)
-    {
-        $this->constructorArgs = $args;
-
-        return $this;
-    }
-
-    /**
-     * Specifies the name for the mock class.
-     *
-     * @param  string                                   $name
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     */
-    public function setMockClassName($name)
-    {
-        $this->mockClassName = $name;
-
-        return $this;
-    }
-
-    /**
-     * Disables the invocation of the original constructor.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     */
-    public function disableOriginalConstructor()
-    {
-        $this->originalConstructor = FALSE;
-
-        return $this;
-    }
-
-    /**
-     * Enables the invocation of the original constructor.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 1.2.0
-     */
-    public function enableOriginalConstructor()
-    {
-        $this->originalConstructor = TRUE;
-
-        return $this;
-    }
-
-    /**
-     * Disables the invocation of the original clone constructor.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     */
-    public function disableOriginalClone()
-    {
-        $this->originalClone = FALSE;
-
-        return $this;
-    }
-
-    /**
-     * Enables the invocation of the original clone constructor.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 1.2.0
-     */
-    public function enableOriginalClone()
-    {
-        $this->originalClone = TRUE;
-
-        return $this;
-    }
-
-    /**
-     * Disables the use of class autoloading while creating the mock object.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     */
-    public function disableAutoload()
-    {
-        $this->autoload = FALSE;
-
-        return $this;
-    }
-
-    /**
-     * Enables the use of class autoloading while creating the mock object.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 1.2.0
-     */
-    public function enableAutoload()
-    {
-        $this->autoload = TRUE;
-
-        return $this;
-    }
-
-    /**
-     * Disables the cloning of arguments passed to mocked methods.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 1.2.0
-     */
-    public function disableArgumentCloning()
-    {
-        $this->cloneArguments = FALSE;
-
-        return $this;
-    }
-
-    /**
-     * Enables the cloning of arguments passed to mocked methods.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 1.2.0
-     */
-    public function enableArgumentCloning()
-    {
-        $this->cloneArguments = TRUE;
-
-        return $this;
-    }
-
-    /**
-     * Enables the invocation of the original methods.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 2.0.0
-     */
-    public function enableProxyingToOriginalMethods()
-    {
-        $this->callOriginalMethods = TRUE;
-
-        return $this;
-    }
-
-    /**
-     * Disables the invocation of the original methods.
-     *
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 2.0.0
-     */
-    public function disableProxyingToOriginalMethods()
-    {
-        $this->callOriginalMethods = FALSE;
-        $this->proxyTarget         = NULL;
-
-        return $this;
-    }
-
-    /**
-     * Sets the proxy target.
-     *
-     * @param  object                                   $object
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 2.0.0
-     */
-    public function setProxyTarget($object)
-    {
-        $this->proxyTarget = $object;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php
deleted file mode 100644
index 5501762..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for all mock objects which are generated by
- * PHPUnit_Framework_MockObject_MockBuilder.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_MockObject /*extends PHPUnit_Framework_MockObject_Verifiable*/
-{
-    /**
-     * Registers a new expectation in the mock object and returns the match
-     * object which can be infused with further details.
-     *
-     * @param  PHPUnit_Framework_MockObject_Matcher_Invocation       $matcher
-     * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker
-     */
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher);
-
-    /**
-     * @return PHPUnit_Framework_MockObject_InvocationMocker
-     * @since  Method available since Release 2.0.0
-     */
-    public function __phpunit_setOriginalObject($originalObject);
-
-    /**
-     * @return PHPUnit_Framework_MockObject_InvocationMocker
-     */
-    public function __phpunit_getInvocationMocker();
-
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function __phpunit_verify();
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php
deleted file mode 100644
index 4e3d06e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * An object that stubs the process of a normal method for a mock object.
- *
- * The stub object will replace the code for the stubbed method and return a
- * specific value instead of the original value.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Stub extends PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * Fakes the processing of the invocation $invocation by returning a
-     * specific value.
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     *                                                             The invocation which was mocked and matched by the current method
-     *                                                             and argument matchers.
-     * @return mixed
-     */
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php
deleted file mode 100644
index 05c0faa..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by returning a user-defined stack of values.
- *
- * @package    PHPUnit_MockObject
- * @author     Patrick Müller <elias0@gmx.net>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls implements PHPUnit_Framework_MockObject_Stub
-{
-    protected $stack;
-    protected $value;
-
-    public function __construct($stack)
-    {
-        $this->stack = $stack;
-    }
-
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $this->value = array_shift($this->stack);
-
-        if ($this->value instanceof PHPUnit_Framework_MockObject_Stub) {
-            $this->value = $this->value->invoke($invocation);
-        }
-
-        return $this->value;
-    }
-
-    public function toString()
-    {
-        return sprintf(
-          'return user-specified value %s',
-
-          PHPUnit_Util_Type::export($this->value)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php
deleted file mode 100644
index 9203365..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by raising a user-defined exception.
- *
- * @package    PHPUnit_MockObject
- * @author     Oliver Schlicht <o.schlicht@bitExpert.de>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Stub_Exception implements PHPUnit_Framework_MockObject_Stub
-{
-    protected $exception;
-
-    public function __construct(Exception $exception)
-    {
-        $this->exception = $exception;
-    }
-
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        throw $this->exception;
-    }
-
-    public function toString()
-    {
-        return sprintf(
-          'raise user-specified exception %s',
-
-          PHPUnit_Util_Type::export($this->exception)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php
deleted file mode 100644
index 254c164..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by returning a user-defined value.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Stub_MatcherCollection
-{
-    /**
-     * Adds a new matcher to the collection which can be used as an expectation
-     * or a stub.
-     *
-     * @param PHPUnit_Framework_MockObject_Matcher_Invocation $matcher
-     *                                                                 Matcher for invocations to mock objects.
-     */
-    public function addMatcher(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher);
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php
deleted file mode 100644
index 9aea78e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by returning a user-defined value.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Stub_Return implements PHPUnit_Framework_MockObject_Stub
-{
-    protected $value;
-
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        return $this->value;
-    }
-
-    public function toString()
-    {
-        return sprintf(
-          'return user-specified value %s',
-
-          PHPUnit_Util_Type::export($this->value)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php
deleted file mode 100644
index c84f962..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by returning an argument that was passed to the mocked method.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Stub_ReturnArgument extends PHPUnit_Framework_MockObject_Stub_Return
-{
-    protected $argumentIndex;
-
-    public function __construct($argumentIndex)
-    {
-        $this->argumentIndex = $argumentIndex;
-    }
-
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        if (isset($invocation->parameters[$this->argumentIndex])) {
-            return $invocation->parameters[$this->argumentIndex];
-        } else {
-            return NULL;
-        }
-    }
-
-    public function toString()
-    {
-        return sprintf('return argument #%d', $this->argumentIndex);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php
deleted file mode 100644
index 34318e6..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.0.0
- */
-class PHPUnit_Framework_MockObject_Stub_ReturnCallback implements PHPUnit_Framework_MockObject_Stub
-{
-    protected $callback;
-
-    public function __construct($callback)
-    {
-        $this->callback = $callback;
-    }
-
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        return call_user_func_array($this->callback, $invocation->parameters);
-    }
-
-    public function toString()
-    {
-        if (is_array($this->callback)) {
-            if (is_object($this->callback[0])) {
-                $class = get_class($this->callback[0]);
-                $type  = '->';
-            } else {
-                $class = $this->callback[0];
-                $type  = '::';
-            }
-
-            return sprintf(
-              'return result of user defined callback %s%s%s() with the ' .
-              'passed arguments',
-
-              $class,
-              $type,
-              $this->callback[1]
-            );
-        } else {
-            return 'return result of user defined callback ' . $this->callback .
-                   ' with the passed arguments';
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php
deleted file mode 100644
index 8cc3473..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by returning the current object.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kris Wallsmith <kris.wallsmith@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.1.0
- */
-class PHPUnit_Framework_MockObject_Stub_ReturnSelf implements PHPUnit_Framework_MockObject_Stub
-{
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        if (!$invocation instanceof PHPUnit_Framework_MockObject_Invocation_Object) {
-            throw new PHPUnit_Framework_Exception(
-                'The current object can only be returned when mocking an ' .
-                'object, not a static class.'
-            );
-        }
-
-        return $invocation->object;
-    }
-
-    public function toString()
-    {
-        return 'return the current object';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php
deleted file mode 100644
index ddda8e5..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stubs a method by returning a value from a map.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Class available since Release 1.1.0
- */
-class PHPUnit_Framework_MockObject_Stub_ReturnValueMap implements PHPUnit_Framework_MockObject_Stub
-{
-    protected $valueMap;
-
-    public function __construct(array $valueMap)
-    {
-        $this->valueMap = $valueMap;
-    }
-
-    public function invoke(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $parameterCount = count($invocation->parameters);
-
-        foreach ($this->valueMap as $map) {
-            if (!is_array($map) || $parameterCount != count($map) - 1) {
-                continue;
-            }
-
-            $return = array_pop($map);
-            if ($invocation->parameters === $map) {
-                return $return;
-            }
-        }
-
-        return NULL;
-    }
-
-    public function toString()
-    {
-        return 'return value from a map';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php b/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php
deleted file mode 100644
index 376b7fe..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for classes which must verify a given expectation.
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      Interface available since Release 1.0.0
- */
-interface PHPUnit_Framework_MockObject_Verifiable
-{
-    /**
-     * Verifies that the current expectation is valid. If everything is OK the
-     * code should just return, if not it must throw an exception.
-     *
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function verify();
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php
deleted file mode 100644
index 8c0a08e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-class Framework_MockObject_GeneratorTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var PHPUnit_Framework_MockObject_Generator
-     */
-    protected $generator;
-
-    protected function setUp()
-    {
-        $this->generator = new PHPUnit_Framework_MockObject_Generator;
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMock
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetMockFailsWhenInvalidFunctionNameIsPassedInAsAFunctionToMock()
-    {
-        $this->generator->getMock('StdClass', array(0));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMock
-     */
-    public function testGetMockCanCreateNonExistingFunctions()
-    {
-        $mock = $this->generator->getMock('StdClass', array('testFunction'));
-        $this->assertTrue(method_exists($mock, 'testFunction'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMock
-     * @expectedException PHPUnit_Framework_MockObject_RuntimeException
-     * @expectedExceptionMessage duplicates: "foo, foo"
-     */
-    public function testGetMockGeneratorFails()
-    {
-        $mock = $this->generator->getMock('StdClass', array('foo', 'foo'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
-     */
-    public function testGetMockForAbstractClassDoesNotFailWhenFakingInterfaces()
-    {
-        $mock = $this->generator->getMockForAbstractClass('Countable');
-        $this->assertTrue(method_exists($mock, 'count'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
-     */
-    public function testGetMockForAbstractClassStubbingAbstractClass()
-    {
-        $mock = $this->generator->getMockForAbstractClass('AbstractMockTestClass');
-        $this->assertTrue(method_exists($mock, 'doSomething'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
-     */
-    public function testGetMockForAbstractClassWithNonExistentMethods()
-    {
-        $mock = $this->generator->getMockForAbstractClass(
-            'AbstractMockTestClass', array(), '',  true,
-            true, true, array('nonexistentMethod')
-        );
-
-        $this->assertTrue(method_exists($mock, 'nonexistentMethod'));
-        $this->assertTrue(method_exists($mock, 'doSomething'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
-     */
-    public function testGetMockForAbstractClassShouldCreateStubsOnlyForAbstractMethodWhenNoMethodsWereInformed()
-    {
-        $mock = $this->generator->getMockForAbstractClass('AbstractMockTestClass');
-
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willReturn('testing');
-
-        $this->assertEquals('testing', $mock->doSomething());
-        $this->assertEquals(1, $mock->returnAnything());
-    }
-
-    /**
-     * @dataProvider getMockForAbstractClassExpectsInvalidArgumentExceptionDataprovider
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetMockForAbstractClassExpectingInvalidArgumentException($className, $mockClassName)
-    {
-        $mock = $this->generator->getMockForAbstractClass($className, array(), $mockClassName);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass
-     * @expectedException PHPUnit_Framework_MockObject_RuntimeException
-     */
-    public function testGetMockForAbstractClassAbstractClassDoesNotExist()
-    {
-        $mock = $this->generator->getMockForAbstractClass('Tux');
-    }
-
-    /**
-     * Dataprovider for test "testGetMockForAbstractClassExpectingInvalidArgumentException"
-     */
-    public static function getMockForAbstractClassExpectsInvalidArgumentExceptionDataprovider()
-    {
-        return array(
-            'className not a string' => array(array(), ''),
-            'mockClassName not a string' => array('Countable', new StdClass),
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMockForTrait
-     * @requires PHP 5.4.0
-     */
-    public function testGetMockForTraitWithNonExistentMethodsAndNonAbstractMethods()
-    {
-        $mock = $this->generator->getMockForTrait(
-            'AbstractTrait', array(), '',  true,
-            true, true, array('nonexistentMethod')
-        );
-
-        $this->assertTrue(method_exists($mock, 'nonexistentMethod'));
-        $this->assertTrue(method_exists($mock, 'doSomething'));
-        $this->assertTrue($mock->mockableMethod());
-        $this->assertTrue($mock->anotherMockableMethod());
-    }
-
-    /**
-     * @covers   PHPUnit_Framework_MockObject_Generator::getMockForTrait
-     * @requires PHP 5.4.0
-     */
-    public function testGetMockForTraitStubbingAbstractMethod()
-    {
-        $mock = $this->generator->getMockForTrait('AbstractTrait');
-        $this->assertTrue(method_exists($mock, 'doSomething'));
-    }
-
-    /**
-     * @requires PHP 5.4.0
-     */
-    public function testGetMockForSingletonWithReflectionSuccess()
-    {
-        // Probably, this should be moved to tests/autoload.php
-        require_once __DIR__ . '/_fixture/SingletonClass.php';
-
-        $mock = $this->generator->getMock('SingletonClass', array('doSomething'), array(), '', false);
-        $this->assertInstanceOf('SingletonClass', $mock);
-    }
-
-    /**
-     * Same as "testGetMockForSingletonWithReflectionSuccess", but we expect
-     * warning for PHP < 5.4.0 since PHPUnit will try to execute private __wakeup
-     * on unserialize
-     */
-    public function testGetMockForSingletonWithUnserializeFail()
-    {
-        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
-            $this->markTestSkipped('Only for PHP < 5.4.0');
-        }
-
-        $this->setExpectedException('PHPUnit_Framework_MockObject_RuntimeException');
-
-        // Probably, this should be moved to tests/autoload.php
-        require_once __DIR__ . '/_fixture/SingletonClass.php';
-
-        $mock = $this->generator->getMock('SingletonClass', array('doSomething'), array(), '', false);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php
deleted file mode 100644
index b5a6bb9..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit_MockObject
- * @author     Giorgio Sironi <piccoloprincipeazzurro@gmail.com>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://github.com/sebastianbergmann/phpunit-mock-objects
- * @since      File available since Release 1.0.0
- */
-class Framework_MockBuilderTest extends PHPUnit_Framework_TestCase
-{
-    public function testMockBuilderRequiresClassName()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $mock = $spec->getMock();
-        $this->assertTrue($mock instanceof Mockable);
-    }
-
-    public function testByDefaultMocksAllMethods()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $mock = $spec->getMock();
-        $this->assertNull($mock->mockableMethod());
-        $this->assertNull($mock->anotherMockableMethod());
-    }
-
-    public function testMethodsToMockCanBeSpecified()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $spec->setMethods(array('mockableMethod'));
-        $mock = $spec->getMock();
-        $this->assertNull($mock->mockableMethod());
-        $this->assertTrue($mock->anotherMockableMethod());
-    }
-
-    public function testByDefaultDoesNotPassArgumentsToTheConstructor()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $mock = $spec->getMock();
-        $this->assertEquals(array(NULL, NULL), $mock->constructorArgs);
-    }
-
-    public function testMockClassNameCanBeSpecified()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $spec->setMockClassName('ACustomClassName');
-        $mock = $spec->getMock();
-        $this->assertTrue($mock instanceof ACustomClassName);
-    }
-
-    public function testConstructorArgumentsCanBeSpecified()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $spec->setConstructorArgs($expected = array(23, 42));
-        $mock = $spec->getMock();
-        $this->assertEquals($expected, $mock->constructorArgs);
-    }
-
-    public function testOriginalConstructorCanBeDisabled()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $spec->disableOriginalConstructor();
-        $mock = $spec->getMock();
-        $this->assertNull($mock->constructorArgs);
-    }
-
-    public function testByDefaultOriginalCloneIsPreserved()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $mock = $spec->getMock();
-        $cloned = clone $mock;
-        $this->assertTrue($cloned->cloned);
-    }
-
-    public function testOriginalCloneCanBeDisabled()
-    {
-        $spec = $this->getMockBuilder('Mockable');
-        $spec->disableOriginalClone();
-        $mock = $spec->getMock();
-        $mock->cloned = FALSE;
-        $cloned = clone $mock;
-        $this->assertFalse($cloned->cloned);
-    }
-
-    public function testCallingAutoloadCanBeDisabled()
-    {
-        // it is not clear to me how to test this nor the difference
-        // between calling it or not
-        $this->markTestIncomplete();
-    }
-
-    public function testProvidesAFluentInterface()
-    {
-        $spec = $this->getMockBuilder('Mockable')
-                     ->setMethods(array('mockableMethod'))
-                     ->setConstructorArgs(array())
-                     ->setMockClassName('DummyClassName')
-                     ->disableOriginalConstructor()
-                     ->disableOriginalClone()
-                     ->disableAutoload();
-        $this->assertTrue($spec instanceof PHPUnit_Framework_MockObject_MockBuilder);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Invocation/ObjectTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Invocation/ObjectTest.php
deleted file mode 100644
index 110ee75..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Invocation/ObjectTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-class Framework_MockObject_Invocation_ObjectTest extends PHPUnit_Framework_TestCase
-{
-    public function testConstructorRequiresClassAndMethodAndParametersAndObject()
-    {
-        new PHPUnit_Framework_MockObject_Invocation_Object(
-            'FooClass',
-            'FooMethod',
-            array('an_argument'),
-            new StdClass);
-    }
-
-    public function testAllowToGetClassNameSetInConstructor()
-    {
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Object(
-            'FooClass',
-            'FooMethod',
-            array('an_argument'),
-            new StdClass);
-
-        $this->assertSame('FooClass', $invocation->className);
-    }
-
-    public function testAllowToGetMethodNameSetInConstructor()
-    {
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Object(
-            'FooClass',
-            'FooMethod',
-            array('an_argument'),
-            new StdClass);
-
-        $this->assertSame('FooMethod', $invocation->methodName);
-    }
-
-    public function testAllowToGetObjectSetInConstructor()
-    {
-        $expectedObject = new StdClass;
-
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Object(
-            'FooClass',
-            'FooMethod',
-            array('an_argument'),
-            $expectedObject);
-
-        $this->assertSame($expectedObject, $invocation->object);
-    }
-
-    public function testAllowToGetMethodParametersSetInConstructor()
-    {
-        $expectedParameters = array(
-          'foo', 5, array('a', 'b'), new StdClass, NULL, FALSE
-        );
-
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Object(
-          'FooClass',
-          'FooMethod',
-          $expectedParameters,
-          new StdClass
-        );
-
-        $this->assertSame($expectedParameters, $invocation->parameters);
-    }
-
-    public function testConstructorAllowToSetFlagCloneObjectsInParameters()
-    {
-        $parameters   = array(new StdClass);
-        $cloneObjects = TRUE;
-
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Object(
-          'FooClass',
-          'FooMethod',
-          $parameters,
-          new StdClass,
-          $cloneObjects
-        );
-
-        $this->assertEquals($parameters, $invocation->parameters);
-        $this->assertNotSame($parameters, $invocation->parameters);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Invocation/StaticTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Invocation/StaticTest.php
deleted file mode 100644
index 09e6e3c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Invocation/StaticTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-class Framework_MockObject_Invocation_StaticTest extends PHPUnit_Framework_TestCase
-{
-    public function testConstructorRequiresClassAndMethodAndParameters()
-    {
-        new PHPUnit_Framework_MockObject_Invocation_Static('FooClass', 'FooMethod', array('an_argument'));
-    }
-
-    public function testAllowToGetClassNameSetInConstructor()
-    {
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Static('FooClass', 'FooMethod', array('an_argument'));
-
-        $this->assertSame('FooClass', $invocation->className);
-    }
-
-    public function testAllowToGetMethodNameSetInConstructor()
-    {
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Static('FooClass', 'FooMethod', array('an_argument'));
-
-        $this->assertSame('FooMethod', $invocation->methodName);
-    }
-
-    public function testAllowToGetMethodParametersSetInConstructor()
-    {
-        $expectedParameters = array(
-          'foo', 5, array('a', 'b'), new StdClass, NULL, FALSE
-        );
-
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Static(
-          'FooClass', 'FooMethod', $expectedParameters
-        );
-
-        $this->assertSame($expectedParameters, $invocation->parameters);
-    }
-
-    public function testConstructorAllowToSetFlagCloneObjectsInParameters()
-    {
-        $parameters = array(new StdClass);
-        $cloneObjects = TRUE;
-
-        $invocation = new PHPUnit_Framework_MockObject_Invocation_Static(
-          'FooClass',
-          'FooMethod',
-          $parameters,
-          $cloneObjects
-        );
-
-        $this->assertEquals($parameters, $invocation->parameters);
-        $this->assertNotSame($parameters, $invocation->parameters);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Matcher/ConsecutiveParametersTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Matcher/ConsecutiveParametersTest.php
deleted file mode 100644
index e7d02e7..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/Matcher/ConsecutiveParametersTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-class Framework_MockObject_Matcher_ConsecutiveParametersTest extends PHPUnit_Framework_TestCase
-{
-    public function testIntegration()
-    {
-        $mock = $this->getMock('stdClass', array('foo'));
-        $mock
-            ->expects($this->any())
-            ->method('foo')
-            ->withConsecutive(
-                array('bar'),
-                array(21, 42)
-            );
-        $mock->foo('bar');
-        $mock->foo(21, 42);
-    }
-
-    public function testIntegrationWithLessAssertionsThenMethodCalls()
-    {
-        $mock = $this->getMock('stdClass', array('foo'));
-        $mock
-            ->expects($this->any())
-            ->method('foo')
-            ->withConsecutive(
-              array('bar')
-            );
-        $mock->foo('bar');
-        $mock->foo(21, 42);
-    }
-
-    public function testIntegrationExpectingException()
-    {
-        $mock = $this->getMock('stdClass', array('foo'));
-        $mock
-            ->expects($this->any())
-            ->method('foo')
-            ->withConsecutive(
-                array('bar'),
-                array(21, 42)
-            );
-        $mock->foo('bar');
-        $this->setExpectedException('PHPUnit_Framework_ExpectationFailedException');
-        $mock->foo('invalid');
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class.phpt
deleted file mode 100644
index 2e40328..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class.phpt
+++ /dev/null
@@ -1,121 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function bar(Foo $foo)
-    {
-    }
-
-    public function baz(Foo $foo)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function baz(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'baz', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_call_parent_clone.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_call_parent_clone.phpt
deleted file mode 100644
index 0f91a98..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_call_parent_clone.phpt
+++ /dev/null
@@ -1,73 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function __clone()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-        parent::__clone();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_call_parent_constructor.phpt
deleted file mode 100644
index 6f037ee..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_call_parent_constructor.phpt
+++ /dev/null
@@ -1,72 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function __construct()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_dont_call_parent_clone.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_dont_call_parent_clone.phpt
deleted file mode 100644
index dc82938..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_dont_call_parent_clone.phpt
+++ /dev/null
@@ -1,72 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', FALSE)
---FILE--
-<?php
-class Foo
-{
-    public function __clone()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  FALSE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_dont_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_dont_call_parent_constructor.phpt
deleted file mode 100644
index 6f037ee..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_dont_call_parent_constructor.phpt
+++ /dev/null
@@ -1,72 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function __construct()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_implementing_interface_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_implementing_interface_call_parent_constructor.phpt
deleted file mode 100644
index cfc43d8..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_implementing_interface_call_parent_constructor.phpt
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-interface IFoo
-{
-    public function __construct($bar);
-}
-
-class Foo implements IFoo
-{
-    public function __construct($bar)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_implementing_interface_dont_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_implementing_interface_dont_call_parent_constructor.phpt
deleted file mode 100644
index cfc43d8..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_implementing_interface_dont_call_parent_constructor.phpt
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-interface IFoo
-{
-    public function __construct($bar);
-}
-
-class Foo implements IFoo
-{
-    public function __construct($bar)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_partial.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_partial.phpt
deleted file mode 100644
index b8332ae..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_partial.phpt
+++ /dev/null
@@ -1,99 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array('bar'), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function bar(Foo $foo)
-    {
-    }
-
-    public function baz(Foo $foo)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array('bar'),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_with_method_named_method.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_with_method_named_method.phpt
deleted file mode 100644
index 6e1ddf6..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_with_method_named_method.phpt
+++ /dev/null
@@ -1,88 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function method()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function method()
-    {
-        $arguments = array();
-        $count     = func_num_args();
-
-        if ($count > 0) {
-            $_arguments = func_get_args();
-
-            for ($i = 0; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'method', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_with_method_with_variadic_arguments.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_with_method_with_variadic_arguments.phpt
deleted file mode 100644
index 8fb9a3c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/class_with_method_with_variadic_arguments.phpt
+++ /dev/null
@@ -1,99 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('ClassWithMethodWithVariadicArguments', array(), 'MockFoo', TRUE, TRUE)
---SKIPIF--
-<?php
-if (version_compare(PHP_VERSION, '5.6.0', '<')) print 'skip: PHP >= 5.6.0 required';
-?>
---FILE--
-<?php
-class ClassWithMethodWithVariadicArguments
-{
-    public function methodWithVariadicArguments($a, ...$parameters)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'ClassWithMethodWithVariadicArguments',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends ClassWithMethodWithVariadicArguments implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function methodWithVariadicArguments($a, ...$parameters)
-    {
-        $arguments = array($a);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'ClassWithMethodWithVariadicArguments', 'methodWithVariadicArguments', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/interface.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/interface.phpt
deleted file mode 100644
index 2d38209..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/interface.phpt
+++ /dev/null
@@ -1,93 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-interface Foo
-{
-    public function bar(Foo $foo);
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo implements PHPUnit_Framework_MockObject_MockObject, Foo
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/invocation_object_clone_object.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/invocation_object_clone_object.phpt
deleted file mode 100644
index 87a979e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/invocation_object_clone_object.phpt
+++ /dev/null
@@ -1,122 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE, TRUE, TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function bar(Foo $foo)
-    {
-    }
-
-    public function baz(Foo $foo)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function baz(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'baz', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class.phpt
deleted file mode 100644
index e30bddc..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class.phpt
+++ /dev/null
@@ -1,123 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-namespace NS;
-
-class Foo
-{
-    public function bar(Foo $foo)
-    {
-    }
-
-    public function baz(Foo $foo)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(NS\Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'NS\Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function baz(NS\Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'NS\Foo', 'baz', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_call_parent_clone.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_call_parent_clone.phpt
deleted file mode 100644
index 3dee9c9..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_call_parent_clone.phpt
+++ /dev/null
@@ -1,75 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-namespace NS;
-
-class Foo
-{
-    public function __clone()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-        parent::__clone();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_call_parent_constructor.phpt
deleted file mode 100644
index 105a372..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_call_parent_constructor.phpt
+++ /dev/null
@@ -1,74 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-namespace NS;
-
-class Foo
-{
-    public function __construct()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_dont_call_parent_clone.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_dont_call_parent_clone.phpt
deleted file mode 100644
index 1de9253..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_dont_call_parent_clone.phpt
+++ /dev/null
@@ -1,74 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', FALSE)
---FILE--
-<?php
-namespace NS;
-
-class Foo
-{
-    public function __clone()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  FALSE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_dont_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_dont_call_parent_constructor.phpt
deleted file mode 100644
index 105a372..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_dont_call_parent_constructor.phpt
+++ /dev/null
@@ -1,74 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-namespace NS;
-
-class Foo
-{
-    public function __construct()
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_implementing_interface_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_implementing_interface_call_parent_constructor.phpt
deleted file mode 100644
index 6b9f6bc..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_implementing_interface_call_parent_constructor.phpt
+++ /dev/null
@@ -1,79 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-namespace NS;
-
-interface IFoo
-{
-    public function __construct($bar);
-}
-
-class Foo implements IFoo
-{
-    public function __construct($bar)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt
deleted file mode 100644
index 6b9f6bc..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt
+++ /dev/null
@@ -1,79 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE)
---FILE--
-<?php
-namespace NS;
-
-interface IFoo
-{
-    public function __construct($bar);
-}
-
-class Foo implements IFoo
-{
-    public function __construct($bar)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_partial.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_partial.phpt
deleted file mode 100644
index 86fee1c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_class_partial.phpt
+++ /dev/null
@@ -1,101 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array('bar'), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-namespace NS;
-
-class Foo
-{
-    public function bar(Foo $foo)
-    {
-    }
-
-    public function baz(Foo $foo)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array('bar'),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(NS\Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'NS\Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_interface.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_interface.phpt
deleted file mode 100644
index 8048646..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/namespaced_interface.phpt
+++ /dev/null
@@ -1,95 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-namespace NS;
-
-interface Foo
-{
-    public function bar(Foo $foo);
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new \PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class MockFoo implements PHPUnit_Framework_MockObject_MockObject, NS\Foo
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(NS\Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $result = $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'NS\Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return $result;
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class.phpt
deleted file mode 100644
index 8c01de0..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class.phpt
+++ /dev/null
@@ -1,70 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('NonExistentClass', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NonExistentClass',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class NonExistentClass
-{
-}
-
-class MockFoo extends NonExistentClass implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class_with_namespace.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class_with_namespace.phpt
deleted file mode 100644
index 7868977..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class_with_namespace.phpt
+++ /dev/null
@@ -1,78 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-namespace NS {
-
-class Foo
-{
-}
-
-}
-
-namespace {
-
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
-
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class_with_namespace_starting_with_separator.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class_with_namespace_starting_with_separator.phpt
deleted file mode 100644
index b59d1dd..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/nonexistent_class_with_namespace_starting_with_separator.phpt
+++ /dev/null
@@ -1,78 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', array(), 'MockFoo', TRUE, TRUE)
---FILE--
-<?php
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  '\NS\Foo',
-  array(),
-  'MockFoo',
-  TRUE,
-  TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-namespace NS {
-
-class Foo
-{
-}
-
-}
-
-namespace {
-
-class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
-
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/proxy.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/proxy.phpt
deleted file mode 100644
index f31bf3f..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/proxy.phpt
+++ /dev/null
@@ -1,117 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generate('Foo', NULL, 'ProxyFoo', TRUE, TRUE, TRUE, TRUE)
---FILE--
-<?php
-class Foo
-{
-    public function bar(Foo $foo)
-    {
-    }
-
-    public function baz(Foo $foo)
-    {
-    }
-}
-
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-$mock = $generator->generate(
-  'Foo', array(), 'ProxyFoo', TRUE, TRUE, TRUE, TRUE
-);
-
-print $mock['code'];
-?>
---EXPECTF--
-class ProxyFoo extends Foo implements PHPUnit_Framework_MockObject_MockObject
-{
-    private $__phpunit_invocationMocker;
-    private $__phpunit_originalObject;
-
-    public function __clone()
-    {
-        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
-    }
-
-    public function bar(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'bar', $arguments, $this, TRUE
-          )
-        );
-
-        return call_user_func_array(array($this->__phpunit_originalObject, "bar"), $arguments);
-    }
-
-    public function baz(Foo $foo)
-    {
-        $arguments = array($foo);
-        $count     = func_num_args();
-
-        if ($count > 1) {
-            $_arguments = func_get_args();
-
-            for ($i = 1; $i < $count; $i++) {
-                $arguments[] = $_arguments[$i];
-            }
-        }
-
-        $this->__phpunit_getInvocationMocker()->invoke(
-          new PHPUnit_Framework_MockObject_Invocation_Object(
-            'Foo', 'baz', $arguments, $this, TRUE
-          )
-        );
-
-        return call_user_func_array(array($this->__phpunit_originalObject, "baz"), $arguments);
-    }
-
-    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
-    {
-        return $this->__phpunit_getInvocationMocker()->expects($matcher);
-    }
-
-    public function method()
-    {
-        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-        $expects = $this->expects($any);
-        return call_user_func_array(array($expects, 'method'), func_get_args());
-    }
-
-    public function __phpunit_setOriginalObject($originalObject)
-    {
-        $this->__phpunit_originalObject = $originalObject;
-    }
-
-    public function __phpunit_getInvocationMocker()
-    {
-        if ($this->__phpunit_invocationMocker === NULL) {
-            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker;
-        }
-
-        return $this->__phpunit_invocationMocker;
-    }
-
-    public function __phpunit_hasMatchers()
-    {
-        return $this->__phpunit_getInvocationMocker()->hasMatchers();
-    }
-
-    public function __phpunit_verify()
-    {
-        $this->__phpunit_getInvocationMocker()->verify();
-        $this->__phpunit_invocationMocker = NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class.phpt
deleted file mode 100644
index 06b255f..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class.phpt
+++ /dev/null
@@ -1,37 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generateClassFromWsdl('GoogleSearch.wsdl', 'GoogleSearch')
---SKIPIF--
-<?php
-if (!extension_loaded('soap')) echo 'skip: SOAP extension is required';
-?>
---FILE--
-<?php
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-print $generator->generateClassFromWsdl(
-  dirname(dirname(__FILE__)) . '/_fixture/GoogleSearch.wsdl',
-  'GoogleSearch'
-);
-?>
---EXPECTF--
-class GoogleSearch extends \SoapClient
-{
-    public function __construct($wsdl, array $options)
-    {
-        parent::__construct('%s/GoogleSearch.wsdl', $options);
-    }
-
-    public function doGoogleSearch($key, $q, $start, $maxResults, $filter, $restrict, $safeSearch, $lr, $ie, $oe)
-    {
-    }
-
-    public function doGetCachedPage($key, $url)
-    {
-    }
-
-    public function doSpellingSuggestion($key, $phrase)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class_namespace.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class_namespace.phpt
deleted file mode 100644
index 9460e6b..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class_namespace.phpt
+++ /dev/null
@@ -1,39 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generateClassFromWsdl('GoogleSearch.wsdl', 'GoogleSearch')
---SKIPIF--
-<?php
-if (!extension_loaded('soap')) echo 'skip: SOAP extension is required';
-?>
---FILE--
-<?php
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-print $generator->generateClassFromWsdl(
-  dirname(dirname(__FILE__)) . '/_fixture/GoogleSearch.wsdl',
-  'My\\Space\\GoogleSearch'
-);
-?>
---EXPECTF--
-namespace My\Space;
-
-class GoogleSearch extends \SoapClient
-{
-    public function __construct($wsdl, array $options)
-    {
-        parent::__construct('%s/GoogleSearch.wsdl', $options);
-    }
-
-    public function doGoogleSearch($key, $q, $start, $maxResults, $filter, $restrict, $safeSearch, $lr, $ie, $oe)
-    {
-    }
-
-    public function doGetCachedPage($key, $url)
-    {
-    }
-
-    public function doSpellingSuggestion($key, $phrase)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class_partial.phpt b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class_partial.phpt
deleted file mode 100644
index fc814bd..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObject/wsdl_class_partial.phpt
+++ /dev/null
@@ -1,30 +0,0 @@
---TEST--
-PHPUnit_Framework_MockObject_Generator::generateClassFromWsdl('GoogleSearch.wsdl', 'GoogleSearch', array('doGoogleSearch'))
---SKIPIF--
-<?php
-if (!extension_loaded('soap')) echo 'skip: SOAP extension is required';
-?>
---FILE--
-<?php
-require __DIR__ . '/../../vendor/autoload.php';
-
-$generator = new PHPUnit_Framework_MockObject_Generator;
-
-print $generator->generateClassFromWsdl(
-  dirname(dirname(__FILE__)) . '/_fixture/GoogleSearch.wsdl',
-  'GoogleSearch',
-  array('doGoogleSearch')
-);
-?>
---EXPECTF--
-class GoogleSearch extends \SoapClient
-{
-    public function __construct($wsdl, array $options)
-    {
-        parent::__construct('%s/GoogleSearch.wsdl', $options);
-    }
-
-    public function doGoogleSearch($key, $q, $start, $maxResults, $filter, $restrict, $safeSearch, $lr, $ie, $oe)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php
deleted file mode 100644
index 6ad3fd0..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php
+++ /dev/null
@@ -1,850 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Patrick Mueller <elias0@gmx.net>
- * @author     Frank Kleine <mikey@stubbles.net>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class Framework_MockObjectTest extends PHPUnit_Framework_TestCase
-{
-    public function testMockedMethodIsNeverCalled()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->never())
-             ->method('doSomething');
-    }
-
-    public function testMockedMethodIsNeverCalledWithParameter()
-    {
-        $mock = $this->getMock('SomeClass');
-        $mock->expects($this->never())
-            ->method('doSomething')
-            ->with('someArg');
-    }
-
-    public function testMockedMethodIsNotCalledWhenExpectsAnyWithParameter()
-    {
-        $mock = $this->getMock('SomeClass');
-        $mock->expects($this->any())
-             ->method('doSomethingElse')
-             ->with('someArg');
-    }
-
-    public function testMockedMethodIsNotCalledWhenMethodSpecifiedDirectlyWithParameter()
-    {
-        $mock = $this->getMock('SomeClass');
-        $mock->method('doSomethingElse')
-            ->with('someArg');
-    }
-
-    public function testMockedMethodIsCalledAtLeastOnce()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->atLeastOnce())
-             ->method('doSomething');
-
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledAtLeastOnce2()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->atLeastOnce())
-             ->method('doSomething');
-
-        $mock->doSomething();
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledAtLeastTwice()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->atLeast(2))
-             ->method('doSomething');
-
-        $mock->doSomething();
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledAtLeastTwice2()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->atLeast(2))
-             ->method('doSomething');
-
-        $mock->doSomething();
-        $mock->doSomething();
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledAtMostTwice()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->atMost(2))
-             ->method('doSomething');
-
-        $mock->doSomething();
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledAtMosttTwice2()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->atMost(2))
-             ->method('doSomething');
-
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledOnce()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->once())
-             ->method('doSomething');
-
-        $mock->doSomething();
-    }
-
-    public function testMockedMethodIsCalledOnceWithParameter()
-    {
-        $mock = $this->getMock('SomeClass');
-        $mock->expects($this->once())
-             ->method('doSomethingElse')
-             ->with($this->equalTo('something'));
-
-        $mock->doSomethingElse('something');
-    }
-
-    public function testMockedMethodIsCalledExactly()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->exactly(2))
-             ->method('doSomething');
-
-        $mock->doSomething();
-        $mock->doSomething();
-    }
-
-    public function testStubbedException()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->will($this->throwException(new Exception));
-
-        try {
-            $mock->doSomething();
-        } catch (Exception $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    public function testStubbedWillThrowException()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willThrowException(new Exception);
-
-        try {
-            $mock->doSomething();
-        } catch (Exception $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    public function testStubbedReturnValue()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->will($this->returnValue('something'));
-
-        $this->assertEquals('something', $mock->doSomething());
-
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willReturn('something');
-
-        $this->assertEquals('something', $mock->doSomething());
-    }
-
-    public function testStubbedReturnValueMap()
-    {
-        $map = array(
-            array('a', 'b', 'c', 'd'),
-            array('e', 'f', 'g', 'h')
-        );
-
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->will($this->returnValueMap($map));
-
-        $this->assertEquals('d', $mock->doSomething('a', 'b', 'c'));
-        $this->assertEquals('h', $mock->doSomething('e', 'f', 'g'));
-        $this->assertEquals(NULL, $mock->doSomething('foo', 'bar'));
-
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willReturnMap($map);
-
-        $this->assertEquals('d', $mock->doSomething('a', 'b', 'c'));
-        $this->assertEquals('h', $mock->doSomething('e', 'f', 'g'));
-        $this->assertEquals(NULL, $mock->doSomething('foo', 'bar'));
-    }
-
-    public function testStubbedReturnArgument()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->will($this->returnArgument(1));
-
-        $this->assertEquals('b', $mock->doSomething('a', 'b'));
-
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willReturnArgument(1);
-
-        $this->assertEquals('b', $mock->doSomething('a', 'b'));
-    }
-
-    public function testFunctionCallback()
-    {
-        $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', FALSE);
-        $mock->expects($this->once())
-             ->method('doSomething')
-             ->will($this->returnCallback('functionCallback'));
-
-        $this->assertEquals('pass', $mock->doSomething('foo', 'bar'));
-
-        $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', FALSE);
-        $mock->expects($this->once())
-             ->method('doSomething')
-             ->willReturnCallback('functionCallback');
-
-        $this->assertEquals('pass', $mock->doSomething('foo', 'bar'));
-    }
-
-    public function testStubbedReturnSelf()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->will($this->returnSelf());
-
-        $this->assertEquals($mock, $mock->doSomething());
-
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willReturnSelf();
-
-        $this->assertEquals($mock, $mock->doSomething());
-    }
-
-    public function testStubbedReturnOnConsecutiveCalls()
-    {
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->will($this->onConsecutiveCalls('a', 'b', 'c'));
-
-        $this->assertEquals('a', $mock->doSomething());
-        $this->assertEquals('b', $mock->doSomething());
-        $this->assertEquals('c', $mock->doSomething());
-
-        $mock = $this->getMock('AnInterface');
-        $mock->expects($this->any())
-             ->method('doSomething')
-             ->willReturnOnConsecutiveCalls('a', 'b', 'c');
-
-        $this->assertEquals('a', $mock->doSomething());
-        $this->assertEquals('b', $mock->doSomething());
-        $this->assertEquals('c', $mock->doSomething());
-    }
-
-    public function testStaticMethodCallback()
-    {
-        $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', FALSE);
-        $mock->expects($this->once())
-             ->method('doSomething')
-             ->will($this->returnCallback(array('MethodCallback', 'staticCallback')));
-
-        $this->assertEquals('pass', $mock->doSomething('foo', 'bar'));
-    }
-
-    public function testPublicMethodCallback()
-    {
-        $mock = $this->getMock('SomeClass', array('doSomething'), array(), '', FALSE);
-        $mock->expects($this->once())
-             ->method('doSomething')
-             ->will($this->returnCallback(array(new MethodCallback, 'nonStaticCallback')));
-
-        $this->assertEquals('pass', $mock->doSomething('foo', 'bar'));
-    }
-
-    public function testMockClassOnlyGeneratedOnce()
-    {
-        $mock1 = $this->getMock('AnInterface');
-        $mock2 = $this->getMock('AnInterface');
-
-        $this->assertEquals(get_class($mock1), get_class($mock2));
-    }
-
-    public function testMockClassDifferentForPartialMocks()
-    {
-        $mock1 = $this->getMock('PartialMockTestClass');
-        $mock2 = $this->getMock('PartialMockTestClass', array('doSomething'));
-        $mock3 = $this->getMock('PartialMockTestClass', array('doSomething'));
-        $mock4 = $this->getMock('PartialMockTestClass', array('doAnotherThing'));
-        $mock5 = $this->getMock('PartialMockTestClass', array('doAnotherThing'));
-
-        $this->assertNotEquals(get_class($mock1), get_class($mock2));
-        $this->assertNotEquals(get_class($mock1), get_class($mock3));
-        $this->assertNotEquals(get_class($mock1), get_class($mock4));
-        $this->assertNotEquals(get_class($mock1), get_class($mock5));
-        $this->assertEquals(get_class($mock2), get_class($mock3));
-        $this->assertNotEquals(get_class($mock2), get_class($mock4));
-        $this->assertNotEquals(get_class($mock2), get_class($mock5));
-        $this->assertEquals(get_class($mock4), get_class($mock5));
-    }
-
-    public function testMockClassStoreOverrulable()
-    {
-        $mock1 = $this->getMock('PartialMockTestClass');
-        $mock2 = $this->getMock('PartialMockTestClass', array(), array(), 'MyMockClassNameForPartialMockTestClass1');
-        $mock3 = $this->getMock('PartialMockTestClass');
-        $mock4 = $this->getMock('PartialMockTestClass', array('doSomething'), array(), 'AnotherMockClassNameForPartialMockTestClass');
-        $mock5 = $this->getMock('PartialMockTestClass', array(), array(), 'MyMockClassNameForPartialMockTestClass2');
-
-        $this->assertNotEquals(get_class($mock1), get_class($mock2));
-        $this->assertEquals(get_class($mock1), get_class($mock3));
-        $this->assertNotEquals(get_class($mock1), get_class($mock4));
-        $this->assertNotEquals(get_class($mock2), get_class($mock3));
-        $this->assertNotEquals(get_class($mock2), get_class($mock4));
-        $this->assertNotEquals(get_class($mock2), get_class($mock5));
-        $this->assertNotEquals(get_class($mock3), get_class($mock4));
-        $this->assertNotEquals(get_class($mock3), get_class($mock5));
-        $this->assertNotEquals(get_class($mock4), get_class($mock5));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_MockObject_Generator::getMock
-     */
-    public function testGetMockWithFixedClassNameCanProduceTheSameMockTwice()
-    {
-        $mock = $this->getMockBuilder('StdClass')->setMockClassName('FixedName')->getMock();
-        $mock = $this->getMockBuilder('StdClass')->setMockClassName('FixedName')->getMock();
-        $this->assertInstanceOf('StdClass', $mock);
-    }
-
-    public function testOriginalConstructorSettingConsidered()
-    {
-        $mock1 = $this->getMock('PartialMockTestClass');
-        $mock2 = $this->getMock('PartialMockTestClass', array(), array(), '', FALSE);
-
-        $this->assertTrue($mock1->constructorCalled);
-        $this->assertFalse($mock2->constructorCalled);
-    }
-
-    public function testOriginalCloneSettingConsidered()
-    {
-        $mock1 = $this->getMock('PartialMockTestClass');
-        $mock2 = $this->getMock('PartialMockTestClass', array(), array(), '', TRUE, FALSE);
-
-        $this->assertNotEquals(get_class($mock1), get_class($mock2));
-    }
-
-    public function testGetMockForAbstractClass()
-    {
-        $mock = $this->getMock('AbstractMockTestClass');
-        $mock->expects($this->never())
-             ->method('doSomething');
-    }
-
-    public function traversableProvider()
-    {
-        return array(
-          array('Traversable'),
-          array('\Traversable'),
-          array('TraversableMockTestInterface'),
-          array(array('Traversable')),
-          array(array('Iterator','Traversable')),
-          array(array('\Iterator','\Traversable'))
-        );
-    }
-
-    /**
-     * @dataProvider traversableProvider
-     */
-    public function testGetMockForTraversable($type)
-    {
-        $mock = $this->getMock($type);
-        $this->assertInstanceOf('Traversable', $mock);
-    }
-
-    public function testMultipleInterfacesCanBeMockedInSingleObject()
-    {
-        $mock = $this->getMock(array('AnInterface', 'AnotherInterface'));
-        $this->assertInstanceOf('AnInterface', $mock);
-        $this->assertInstanceOf('AnotherInterface', $mock);
-    }
-
-    /**
-     * @requires PHP 5.4.0
-     */
-    public function testGetMockForTrait()
-    {
-        $mock = $this->getMockForTrait('AbstractTrait');
-        $mock->expects($this->never())->method('doSomething');
-
-        $parent = get_parent_class($mock);
-        $traits = class_uses($parent, FALSE);
-
-        $this->assertContains('AbstractTrait', $traits);
-    }
-
-    public function testClonedMockObjectShouldStillEqualTheOriginal()
-    {
-        $a = $this->getMock('stdClass');
-        $b = clone $a;
-        $this->assertEquals($a, $b);
-    }
-
-    public function testMockObjectsConstructedIndepentantlyShouldBeEqual()
-    {
-        $a = $this->getMock('stdClass');
-        $b = $this->getMock('stdClass');
-        $this->assertEquals($a, $b);
-    }
-
-    public function testMockObjectsConstructedIndepentantlyShouldNotBeTheSame()
-    {
-        $a = $this->getMock('stdClass');
-        $b = $this->getMock('stdClass');
-        $this->assertNotSame($a, $b);
-    }
-
-    public function testClonedMockObjectCanBeUsedInPlaceOfOriginalOne()
-    {
-        $x = $this->getMock('stdClass');
-        $y = clone $x;
-
-        $mock = $this->getMock('stdClass', array('foo'));
-        $mock->expects($this->once())->method('foo')->with($this->equalTo($x));
-        $mock->foo($y);
-    }
-
-    public function testClonedMockObjectIsNotIdenticalToOriginalOne()
-    {
-        $x = $this->getMock('stdClass');
-        $y = clone $x;
-
-        $mock = $this->getMock('stdClass', array('foo'));
-        $mock->expects($this->once())->method('foo')->with($this->logicalNot($this->identicalTo($x)));
-        $mock->foo($y);
-    }
-
-    public function testObjectMethodCallWithArgumentCloningEnabled()
-    {
-        $expectedObject = new StdClass;
-
-        $mock = $this->getMockBuilder('SomeClass')
-                     ->setMethods(array('doSomethingElse'))
-                     ->enableArgumentCloning()
-                     ->getMock();
-
-        $actualArguments = array();
-
-        $mock->expects($this->any())
-        ->method('doSomethingElse')
-        ->will($this->returnCallback(function () use (&$actualArguments) {
-            $actualArguments = func_get_args();
-        }));
-
-        $mock->doSomethingElse($expectedObject);
-
-        $this->assertEquals(1, count($actualArguments));
-        $this->assertEquals($expectedObject, $actualArguments[0]);
-        $this->assertNotSame($expectedObject, $actualArguments[0]);
-    }
-
-    public function testObjectMethodCallWithArgumentCloningDisabled()
-    {
-        $expectedObject = new StdClass;
-
-        $mock = $this->getMockBuilder('SomeClass')
-                     ->setMethods(array('doSomethingElse'))
-                     ->disableArgumentCloning()
-                     ->getMock();
-
-        $actualArguments = array();
-
-        $mock->expects($this->any())
-        ->method('doSomethingElse')
-        ->will($this->returnCallback(function () use (&$actualArguments) {
-            $actualArguments = func_get_args();
-        }));
-
-        $mock->doSomethingElse($expectedObject);
-
-        $this->assertEquals(1, count($actualArguments));
-        $this->assertSame($expectedObject, $actualArguments[0]);
-    }
-
-    public function testArgumentCloningOptionGeneratesUniqueMock()
-    {
-        $mockWithCloning = $this->getMockBuilder('SomeClass')
-                                ->setMethods(array('doSomethingElse'))
-                                ->enableArgumentCloning()
-                                ->getMock();
-
-        $mockWithoutCloning = $this->getMockBuilder('SomeClass')
-                                   ->setMethods(array('doSomethingElse'))
-                                   ->disableArgumentCloning()
-                                   ->getMock();
-
-        $this->assertNotEquals($mockWithCloning, $mockWithoutCloning);
-    }
-
-    public function testVerificationOfMethodNameFailsWithoutParameters()
-    {
-        $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', TRUE, TRUE, TRUE);
-        $mock->expects($this->once())
-             ->method('right');
-
-        $mock->wrong();
-        try {
-            $mock->__phpunit_verify();
-            $this->fail('Expected exception');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                "Expectation failed for method name is equal to <string:right> when invoked 1 time(s).\n"
-                . "Method was expected to be called 1 times, actually called 0 times.\n",
-                $e->getMessage()
-            );
-        }
-
-        $this->resetMockObjects();
-    }
-
-    public function testVerificationOfMethodNameFailsWithParameters()
-    {
-        $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', TRUE, TRUE, TRUE);
-        $mock->expects($this->once())
-             ->method('right');
-
-        $mock->wrong();
-        try {
-            $mock->__phpunit_verify();
-            $this->fail('Expected exception');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                "Expectation failed for method name is equal to <string:right> when invoked 1 time(s).\n"
-                . "Method was expected to be called 1 times, actually called 0 times.\n",
-                $e->getMessage()
-            );
-        }
-
-        $this->resetMockObjects();
-    }
-
-    public function testVerificationOfMethodNameFailsWithWrongParameters()
-    {
-        $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', TRUE, TRUE, TRUE);
-        $mock->expects($this->once())
-             ->method('right')
-             ->with(array('first', 'second'));
-
-        try {
-            $mock->right(array('second'));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                "Expectation failed for method name is equal to <string:right> when invoked 1 time(s)\n"
-                . "Parameter 0 for invocation SomeClass::right(Array (...)) does not match expected value.\n"
-                . "Failed asserting that two arrays are equal.",
-                $e->getMessage()
-            );
-        }
-
-        try {
-            $mock->__phpunit_verify();
-            $this->fail('Expected exception');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                "Expectation failed for method name is equal to <string:right> when invoked 1 time(s).\n"
-                . "Parameter 0 for invocation SomeClass::right(Array (...)) does not match expected value.\n"
-                . "Failed asserting that two arrays are equal.\n"
-                . "--- Expected\n"
-                . "+++ Actual\n"
-                . "@@ @@\n"
-                . " Array (\n"
-                . "-    0 => 'first'\n"
-                . "-    1 => 'second'\n"
-                . "+    0 => 'second'\n"
-                . " )\n",
-                $e->getMessage()
-            );
-        }
-
-        $this->resetMockObjects();
-    }
-
-    public function testVerificationOfNeverFailsWithEmptyParameters()
-    {
-        $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', TRUE, TRUE, TRUE);
-        $mock->expects($this->never())
-             ->method('right')
-             ->with();
-
-        try {
-            $mock->right();
-            $this->fail('Expected exception');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                'SomeClass::right() was not expected to be called.',
-                $e->getMessage()
-            );
-        }
-
-        $this->resetMockObjects();
-    }
-
-    public function testVerificationOfNeverFailsWithAnyParameters()
-    {
-        $mock = $this->getMock('SomeClass', array('right', 'wrong'), array(), '', TRUE, TRUE, TRUE);
-        $mock->expects($this->never())
-             ->method('right')
-             ->withAnyParameters();
-
-        try {
-            $mock->right();
-            $this->fail('Expected exception');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                'SomeClass::right() was not expected to be called.',
-                $e->getMessage()
-            );
-        }
-
-        $this->resetMockObjects();
-    }
-
-    /**
-     * @ticket 199
-     */
-    public function testWithAnythingInsteadOfWithAnyParameters()
-    {
-        $mock = $this->getMock('SomeClass', array('right'), array(), '', TRUE, TRUE, TRUE);
-        $mock->expects($this->once())
-             ->method('right')
-             ->with($this->anything());
-
-        try {
-            $mock->right();
-            $this->fail('Expected exception');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertSame(
-                "Expectation failed for method name is equal to <string:right> when invoked 1 time(s)\n" .
-                "Parameter count for invocation SomeClass::right() is too low.\n" .
-                "To allow 0 or more parameters with any value, omit ->with() or use ->withAnyParameters() instead.",
-                $e->getMessage()
-            );
-        }
-
-        $this->resetMockObjects();
-    }
-
-    /**
-     * See https://github.com/sebastianbergmann/phpunit-mock-objects/issues/81
-     */
-    public function testMockArgumentsPassedByReference()
-    {
-        $foo = $this->getMockBuilder('MethodCallbackByReference')
-                    ->setMethods(array('bar'))
-                    ->disableOriginalConstructor()
-                    ->disableArgumentCloning()
-                    ->getMock();
-
-        $foo->expects($this->any())
-            ->method('bar')
-            ->will($this->returnCallback(array($foo, 'callback')));
-
-        $a = $b = $c = 0;
-
-        $foo->bar($a, $b, $c);
-
-        $this->assertEquals(1, $b);
-    }
-
-    /**
-     * See https://github.com/sebastianbergmann/phpunit-mock-objects/issues/81
-     */
-    public function testMockArgumentsPassedByReference2()
-    {
-        $foo = $this->getMockBuilder('MethodCallbackByReference')
-                    ->disableOriginalConstructor()
-                    ->disableArgumentCloning()
-                    ->getMock();
-
-        $foo->expects($this->any())
-            ->method('bar')
-            ->will($this->returnCallback(
-            function (&$a, &$b, $c) {
-                $b = 1;
-            }
-            ));
-
-        $a = $b = $c = 0;
-
-        $foo->bar($a, $b, $c);
-
-        $this->assertEquals(1, $b);
-    }
-
-    /**
-     * https://github.com/sebastianbergmann/phpunit-mock-objects/issues/116
-     */
-    public function testMockArgumentsPassedByReference3()
-    {
-        $foo = $this->getMockBuilder('MethodCallbackByReference')
-                    ->setMethods(array('bar'))
-                    ->disableOriginalConstructor()
-                    ->disableArgumentCloning()
-                    ->getMock();
-
-        $a = new stdClass();
-        $b = $c = 0;
-
-        $foo->expects($this->any())
-            ->method('bar')
-            ->with($a, $b, $c)
-            ->will($this->returnCallback(array($foo, 'callback')));
-
-        $foo->bar($a, $b, $c);
-    }
-
-    /**
-     * https://github.com/sebastianbergmann/phpunit/issues/796
-     */
-    public function testMockArgumentsPassedByReference4()
-    {
-        $foo = $this->getMockBuilder('MethodCallbackByReference')
-                    ->setMethods(array('bar'))
-                    ->disableOriginalConstructor()
-                    ->disableArgumentCloning()
-                    ->getMock();
-
-        $a = new stdClass();
-        $b = $c = 0;
-
-        $foo->expects($this->any())
-            ->method('bar')
-            ->with($this->isInstanceOf("stdClass"), $b, $c)
-            ->will($this->returnCallback(array($foo, 'callback')));
-
-        $foo->bar($a, $b, $c);
-    }
-
-    /**
-     * @requires extension soap
-     */
-    public function testCreateMockFromWsdl()
-    {
-        $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl', 'WsdlMock');
-        $this->assertStringStartsWith(
-            'Mock_WsdlMock_',
-            get_class($mock)
-        );
-    }
-
-    /**
-     * @requires extension soap
-     */
-    public function testCreateNamespacedMockFromWsdl()
-    {
-        $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl', 'My\\Space\\WsdlMock');
-        $this->assertStringStartsWith(
-            'Mock_WsdlMock_',
-            get_class($mock)
-        );
-    }
-
-    /**
-     * @requires extension soap
-     */
-    public function testCreateTwoMocksOfOneWsdlFile()
-    {
-        $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl');
-        $mock = $this->getMockFromWsdl(__DIR__ . '/_fixture/GoogleSearch.wsdl');
-    }
-
-    /**
-     * @see    https://github.com/sebastianbergmann/phpunit-mock-objects/issues/156
-     * @ticket 156
-     */
-    public function testInterfaceWithStaticMethodCanBeStubbed()
-    {
-        $this->assertInstanceOf(
-            'InterfaceWithStaticMethod',
-            $this->getMock('InterfaceWithStaticMethod')
-        );
-    }
-
-    /**
-     * @expectedException PHPUnit_Framework_MockObject_BadMethodCallException
-     */
-    public function testInvokingStubbedStaticMethodRaisesException()
-    {
-        $mock = $this->getMock('ClassWithStaticMethod');
-        $mock->staticMethod();
-    }
-
-    /**
-     * @see    https://github.com/sebastianbergmann/phpunit-mock-objects/issues/171
-     * @ticket 171
-     */
-    public function testStubForClassThatImplementsSerializableCanBeCreatedWithoutInvokingTheConstructor()
-    {
-        $this->assertInstanceOf(
-            'ClassThatImplementsSerializable',
-            $this->getMockBuilder('ClassThatImplementsSerializable')
-                 ->disableOriginalConstructor()
-                 ->getMock()
-        );
-    }
-
-    private function resetMockObjects()
-    {
-        $refl = new ReflectionObject($this);
-        $refl = $refl->getParentClass();
-        $prop = $refl->getProperty('mockObjects');
-        $prop->setAccessible(true);
-        $prop->setValue($this, array());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php b/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php
deleted file mode 100644
index 829621f..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit_MockObject
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @version    Release: @package_version@
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class Framework_ProxyObjectTest extends PHPUnit_Framework_TestCase
-{
-    public function testMockedMethodIsProxiedToOriginalMethod()
-    {
-        $proxy = $this->getMockBuilder('Bar')
-                      ->enableProxyingToOriginalMethods()
-                      ->getMock();
-
-        $proxy->expects($this->once())
-              ->method('doSomethingElse');
-
-        $foo = new Foo;
-        $this->assertEquals('result', $foo->doSomething($proxy));
-    }
-
-    public function testMockedMethodWithReferenceIsProxiedToOriginalMethod()
-    {
-        $proxy = $this->getMockBuilder('MethodCallbackByReference')
-                      ->enableProxyingToOriginalMethods()
-                      ->getMock();
-        $a = $b = $c = 0;
-
-        $proxy->callback($a, $b, $c);
-
-        $this->assertEquals(1, $b);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractMockTestClass.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractMockTestClass.php
deleted file mode 100644
index b006e2d..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractMockTestClass.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-abstract class AbstractMockTestClass
-{
-    abstract public function doSomething();
-
-    public function returnAnything()
-    {
-        return 1;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractTrait.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractTrait.php
deleted file mode 100644
index 071535c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractTrait.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-trait AbstractTrait
-{
-    abstract public function doSomething();
-
-    public function mockableMethod()
-    {
-        return TRUE;
-    }
-
-    public function anotherMockableMethod()
-    {
-        return TRUE;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterface.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterface.php
deleted file mode 100644
index 5b7d4cc..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterface.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-interface AnInterface
-{
-    public function doSomething();
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnotherInterface.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnotherInterface.php
deleted file mode 100644
index 62bff0a..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnotherInterface.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-interface AnotherInterface
-{
-    public function doSomethingElse();
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Bar.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Bar.php
deleted file mode 100644
index 4a4d165..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Bar.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Bar
-{
-    public function doSomethingElse()
-    {
-        return 'result';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassThatImplementsSerializable.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassThatImplementsSerializable.php
deleted file mode 100644
index 87576ca..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassThatImplementsSerializable.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-class ClassThatImplementsSerializable implements Serializable
-{
-    public function serialize()
-    {
-        return get_object_vars($this);
-    }
-
-    public function unserialize($serialized)
-    {
-        foreach (unserialize($serialized) as $key => $value) {
-            $this->{$key} = $value;
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithStaticMethod.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithStaticMethod.php
deleted file mode 100644
index 0c13c12..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithStaticMethod.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class ClassWithStaticMethod
-{
-    public static function staticMethod()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Foo.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Foo.php
deleted file mode 100644
index 16a9ed7..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Foo.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Foo
-{
-    public function doSomething(Bar $bar)
-    {
-        return $bar->doSomethingElse();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/FunctionCallback.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/FunctionCallback.php
deleted file mode 100644
index c12ac6c..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/FunctionCallback.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-function functionCallback()
-{
-    $args = func_get_args();
-
-    if ($args == array('foo', 'bar')) {
-        return 'pass';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/GoogleSearch.wsdl b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/GoogleSearch.wsdl
deleted file mode 100644
index e448501..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/GoogleSearch.wsdl
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- WSDL description of the Google Web APIs.
-     The Google Web APIs are in beta release. All interfaces are subject to
-     change as we refine and extend our APIs. Please see the terms of use
-     for more information. -->
-
-<!-- Revision 2002-08-16 -->
-
-<definitions name="GoogleSearch"
-             targetNamespace="urn:GoogleSearch"
-             xmlns:typens="urn:GoogleSearch"
-             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
-             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
-             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
-             xmlns="http://schemas.xmlsoap.org/wsdl/">
-
-  <!-- Types for search - result elements, directory categories -->
-
-  <types>
-    <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
-                targetNamespace="urn:GoogleSearch">
-
-      <xsd:complexType name="GoogleSearchResult">
-        <xsd:all>
-          <xsd:element name="documentFiltering"           type="xsd:boolean"/>
-          <xsd:element name="searchComments"              type="xsd:string"/>
-          <xsd:element name="estimatedTotalResultsCount"  type="xsd:int"/>
-          <xsd:element name="estimateIsExact"             type="xsd:boolean"/>
-          <xsd:element name="resultElements"              type="typens:ResultElementArray"/>
-          <xsd:element name="searchQuery"                 type="xsd:string"/>
-          <xsd:element name="startIndex"                  type="xsd:int"/>
-          <xsd:element name="endIndex"                    type="xsd:int"/>
-          <xsd:element name="searchTips"                  type="xsd:string"/>
-          <xsd:element name="directoryCategories"         type="typens:DirectoryCategoryArray"/>
-          <xsd:element name="searchTime"                  type="xsd:double"/>
-        </xsd:all>
-      </xsd:complexType>
-
-      <xsd:complexType name="ResultElement">
-        <xsd:all>
-          <xsd:element name="summary" type="xsd:string"/>
-          <xsd:element name="URL" type="xsd:string"/>
-          <xsd:element name="snippet" type="xsd:string"/>
-          <xsd:element name="title" type="xsd:string"/>
-          <xsd:element name="cachedSize" type="xsd:string"/>
-          <xsd:element name="relatedInformationPresent" type="xsd:boolean"/>
-          <xsd:element name="hostName" type="xsd:string"/>
-          <xsd:element name="directoryCategory" type="typens:DirectoryCategory"/>
-          <xsd:element name="directoryTitle" type="xsd:string"/>
-        </xsd:all>
-      </xsd:complexType>
-
-      <xsd:complexType name="ResultElementArray">
-        <xsd:complexContent>
-          <xsd:restriction base="soapenc:Array">
-             <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ResultElement[]"/>
-          </xsd:restriction>
-        </xsd:complexContent>
-      </xsd:complexType>
-
-      <xsd:complexType name="DirectoryCategoryArray">
-        <xsd:complexContent>
-          <xsd:restriction base="soapenc:Array">
-             <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:DirectoryCategory[]"/>
-          </xsd:restriction>
-        </xsd:complexContent>
-      </xsd:complexType>
-
-      <xsd:complexType name="DirectoryCategory">
-        <xsd:all>
-          <xsd:element name="fullViewableName" type="xsd:string"/>
-          <xsd:element name="specialEncoding" type="xsd:string"/>
-        </xsd:all>
-      </xsd:complexType>
-
-    </xsd:schema>
-  </types>
-
-  <!-- Messages for Google Web APIs - cached page, search, spelling. -->
-
-  <message name="doGetCachedPage">
-    <part name="key"            type="xsd:string"/>
-    <part name="url"            type="xsd:string"/>
-  </message>
-
-  <message name="doGetCachedPageResponse">
-    <part name="return"         type="xsd:base64Binary"/>
-  </message>
-
-  <message name="doSpellingSuggestion">
-    <part name="key"            type="xsd:string"/>
-    <part name="phrase"         type="xsd:string"/>
-  </message>
-
-  <message name="doSpellingSuggestionResponse">
-    <part name="return"         type="xsd:string"/>
-  </message>
-
-  <!-- note, ie and oe are ignored by server; all traffic is UTF-8. -->
-
-  <message name="doGoogleSearch">
-    <part name="key"            type="xsd:string"/>
-    <part name="q"              type="xsd:string"/>
-    <part name="start"          type="xsd:int"/>
-    <part name="maxResults"     type="xsd:int"/>
-    <part name="filter"         type="xsd:boolean"/>
-    <part name="restrict"       type="xsd:string"/>
-    <part name="safeSearch"     type="xsd:boolean"/>
-    <part name="lr"             type="xsd:string"/>
-    <part name="ie"             type="xsd:string"/>
-    <part name="oe"             type="xsd:string"/>
-  </message>
-
-  <message name="doGoogleSearchResponse">
-    <part name="return"         type="typens:GoogleSearchResult"/>
-  </message>
-
-  <!-- Port for Google Web APIs, "GoogleSearch" -->
-
-  <portType name="GoogleSearchPort">
-
-    <operation name="doGetCachedPage">
-      <input message="typens:doGetCachedPage"/>
-      <output message="typens:doGetCachedPageResponse"/>
-    </operation>
-
-    <operation name="doSpellingSuggestion">
-      <input message="typens:doSpellingSuggestion"/>
-      <output message="typens:doSpellingSuggestionResponse"/>
-    </operation>
-
-    <operation name="doGoogleSearch">
-      <input message="typens:doGoogleSearch"/>
-      <output message="typens:doGoogleSearchResponse"/>
-    </operation>
-
-  </portType>
-
-
-  <!-- Binding for Google Web APIs - RPC, SOAP over HTTP -->
-
-  <binding name="GoogleSearchBinding" type="typens:GoogleSearchPort">
-    <soap:binding style="rpc"
-                  transport="http://schemas.xmlsoap.org/soap/http"/>
-
-    <operation name="doGetCachedPage">
-      <soap:operation soapAction="urn:GoogleSearchAction"/>
-      <input>
-        <soap:body use="encoded"
-                   namespace="urn:GoogleSearch"
-                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-      </input>
-      <output>
-        <soap:body use="encoded"
-                   namespace="urn:GoogleSearch"
-                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-      </output>
-    </operation>
-
-    <operation name="doSpellingSuggestion">
-      <soap:operation soapAction="urn:GoogleSearchAction"/>
-      <input>
-        <soap:body use="encoded"
-                   namespace="urn:GoogleSearch"
-                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-      </input>
-      <output>
-        <soap:body use="encoded"
-                   namespace="urn:GoogleSearch"
-                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-      </output>
-    </operation>
-
-    <operation name="doGoogleSearch">
-      <soap:operation soapAction="urn:GoogleSearchAction"/>
-      <input>
-        <soap:body use="encoded"
-                   namespace="urn:GoogleSearch"
-                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-      </input>
-      <output>
-        <soap:body use="encoded"
-                   namespace="urn:GoogleSearch"
-                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
-      </output>
-    </operation>
-  </binding>
-
-  <!-- Endpoint for Google Web APIs -->
-  <service name="GoogleSearchService">
-    <port name="GoogleSearchPort" binding="typens:GoogleSearchBinding">
-      <soap:address location="http://api.google.com/search/beta2"/>
-    </port>
-  </service>
-
-</definitions>
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithStaticMethod.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithStaticMethod.php
deleted file mode 100644
index 9e38d1e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithStaticMethod.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-interface InterfaceWithStaticMethod
-{
-    public static function staticMethod();
-}
-
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallback.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallback.php
deleted file mode 100644
index f8db62e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallback.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class MethodCallback
-{
-    public static function staticCallback()
-    {
-        $args = func_get_args();
-
-        if ($args == array('foo', 'bar')) {
-            return 'pass';
-        }
-    }
-
-    public function nonStaticCallback()
-    {
-        $args = func_get_args();
-
-        if ($args == array('foo', 'bar')) {
-            return 'pass';
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallbackByReference.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallbackByReference.php
deleted file mode 100644
index ef26f3e..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallbackByReference.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class MethodCallbackByReference
-{
-    public function bar(&$a, &$b, $c)
-    {
-        Legacy::bar($a, $b, $c);
-    }
-
-    public function callback(&$a, &$b, $c)
-    {
-        $b = 1;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Mockable.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Mockable.php
deleted file mode 100644
index a4ccb24..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/Mockable.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-class Mockable
-{
-    public $constructorArgs;
-    public $cloned;
-
-    public function __construct($arg1 = NULL, $arg2 = NULL)
-    {
-        $this->constructorArgs = array($arg1, $arg2);
-    }
-
-    public function mockableMethod()
-    {
-        // something different from NULL
-        return TRUE;
-    }
-
-    public function anotherMockableMethod()
-    {
-        // something different from NULL
-        return TRUE;
-    }
-
-    public function __clone()
-    {
-        $this->cloned = TRUE;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/PartialMockTestClass.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/PartialMockTestClass.php
deleted file mode 100644
index 1b119f1..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/PartialMockTestClass.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-class PartialMockTestClass
-{
-    public $constructorCalled = FALSE;
-
-    public function __construct()
-    {
-        $this->constructorCalled = TRUE;
-    }
-
-    public function doSomething()
-    {
-    }
-
-    public function doAnotherThing()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/SingletonClass.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/SingletonClass.php
deleted file mode 100644
index e000266..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/SingletonClass.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-class SingletonClass
-{
-    public static function getInstance()
-    {
-    }
-
-    public function doSomething()
-    {
-    }
-
-    protected function __construct()
-    {
-    }
-
-    final private function __sleep()
-    {
-    }
-
-    final private function __wakeup()
-    {
-    }
-
-    final private function __clone()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/SomeClass.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/SomeClass.php
deleted file mode 100644
index 2cd53b2..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/SomeClass.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class SomeClass
-{
-    public function doSomething($a, $b)
-    {
-        return NULL;
-    }
-
-    public function doSomethingElse($c)
-    {
-        return NULL;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/StaticMockTestClass.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/StaticMockTestClass.php
deleted file mode 100644
index ac467c9..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/StaticMockTestClass.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class StaticMockTestClass
-{
-    public static function doSomething()
-    {
-    }
-
-    public static function doSomethingElse()
-    {
-        return static::doSomething();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/TraversableMockTestInterface.php b/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/TraversableMockTestInterface.php
deleted file mode 100644
index 3467cce..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/_fixture/TraversableMockTestInterface.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-interface TraversableMockTestInterface extends Traversable
-{
-}
diff --git a/core/vendor/phpunit/phpunit-mock-objects/tests/bootstrap.php b/core/vendor/phpunit/phpunit-mock-objects/tests/bootstrap.php
deleted file mode 100644
index 67d3a77..0000000
--- a/core/vendor/phpunit/phpunit-mock-objects/tests/bootstrap.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-require __DIR__ . '/_fixture/FunctionCallback.php';
-require __DIR__ . '/../vendor/autoload.php';
-
diff --git a/core/vendor/phpunit/phpunit/.gitattributes b/core/vendor/phpunit/phpunit/.gitattributes
deleted file mode 100644
index 821227a..0000000
--- a/core/vendor/phpunit/phpunit/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-*.php diff=php
-composer.json merge=ours
-src/Runner/Version.php merge=ours
diff --git a/core/vendor/phpunit/phpunit/.gitignore b/core/vendor/phpunit/phpunit/.gitignore
deleted file mode 100644
index 65a2321..0000000
--- a/core/vendor/phpunit/phpunit/.gitignore
+++ /dev/null
@@ -1,22 +0,0 @@
-build/api
-build/code-browser
-build/coverage
-build/logs
-build/pdepend
-build/phar
-build/phpdox
-build/*.phar
-build/*.phar.asc
-tests/TextUI/*.diff
-tests/TextUI/*.exp
-tests/TextUI/*.log
-tests/TextUI/*.out
-tests/TextUI/*.php
-/bin
-/vendor
-/composer.lock
-/composer.phar
-phpunit.xml
-cache.properties
-.idea
-.ant_targets
diff --git a/core/vendor/phpunit/phpunit/.travis.yml b/core/vendor/phpunit/phpunit/.travis.yml
deleted file mode 100644
index 61b7cc9..0000000
--- a/core/vendor/phpunit/phpunit/.travis.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-  - hhvm-nightly
-
-matrix:
-  allow_failures:
-    - php: hhvm
-    - php: hhvm-nightly
-
-sudo: false
-
-before_install:
-  - composer self-update
-
-install:
-  - travis_retry composer install --no-interaction --prefer-source
-
-script:
-  - ./phpunit
-  - ./phpunit --configuration ./build/travis-ci-fail.xml > /dev/null; if [ $? -eq 0 ]; then echo "SHOULD FAIL"; exit 1; else echo "fail checked"; fi;
-  - xmllint --noout --schema phpunit.xsd phpunit.xml.dist
-  - xmllint --noout --schema phpunit.xsd tests/_files/configuration.xml
-  - xmllint --noout --schema phpunit.xsd tests/_files/configuration_empty.xml
-  - xmllint --noout --schema phpunit.xsd tests/_files/configuration_xinclude.xml -xinclude
-
-notifications:
-  email: false
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/6668f52f3dd4e3f81960
-    on_success: always
-    on_failure: always
-    on_start: false
-
diff --git a/core/vendor/phpunit/phpunit/CONTRIBUTING.md b/core/vendor/phpunit/phpunit/CONTRIBUTING.md
deleted file mode 100644
index b6421e2..0000000
--- a/core/vendor/phpunit/phpunit/CONTRIBUTING.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributing to PHPUnit
-
-Contributions to PHPUnit, its related modules, and its documentation are always welcome. You make our lives easier by sending us your contributions through GitHub pull requests.
-
-Pull requests for bug fixes must be based on the current stable branch whereas pull requests for new features must be based on `master`.
-
-We are trying to keep backwards compatibility breaks in PHPUnit to an absolute minimum. Please take this into account when proposing changes.
-
-Due to time constraints, we are not always able to respond as quickly as we would like. Please do not take delays personal and feel free to remind us here or on IRC if you feel that we forgot to respond.
-
-## Using PHPUnit From a Git Checkout
-
-The following commands can be used to perform the initial checkout of PHPUnit:
-
-    git clone git://github.com/sebastianbergmann/phpunit.git
-    cd phpunit
-
-Retrieve PHPUnit's dependencies using [Composer](http://getcomposer.org/):
-
-    wget http://getcomposer.org/composer.phar
-    php composer.phar install
-
-The `phpunit` script can be used to invoke the PHPUnit test runner.
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.0.md b/core/vendor/phpunit/phpunit/ChangeLog-4.0.md
deleted file mode 100644
index 705f221..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.0.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# Changes in PHPUnit 4.0
-
-## PHPUnit 4.0.20
-
-* Fixed [#1242](https://github.com/sebastianbergmann/phpunit/issues/1242): `--self-update` uses OpenSSL API that is deprecated in PHP 5.6
-
-## PHPUnit 4.0.19
-
-* Fixed [#1193](https://github.com/sebastianbergmann/phpunit/issues/1193): Process isolation does not work correctly when PHPUnit is used from PHAR
-* Fixed a BC break related to comparing `DOMNode` objects that was introduced in PHPUnit 4.0.18
-
-## PHPUnit 4.0.18
-
-* Fixed [#1218](https://github.com/sebastianbergmann/phpunit/issues/1218): `--self-update` destroys symlink
-
-## PHPUnit 4.0.17
-
-* [Display a message that the PEAR installation method is no longer supported when PHPUnit was installed using the PEAR Installer](https://github.com/sebastianbergmann/phpunit/commit/70b02c6be0176ab8ad3d3c9ec97480556c5dd63b)
-
-## PHPUnit 4.0.16
-
-* [Fixed handling of the `--report-useless-tests`, `--strict-coverage`, `--disallow-test-output`, and `--enforce-time-limit` options](https://github.com/sebastianbergmann/phpunit/commit/38baa9670711adedfe44ef24a33b568f61f3f045)
-
-## PHPUnit 4.0.15
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies
-
-## PHPUnit 4.0.14
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies
-
-## PHPUnit 4.0.13
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies
-
-## PHPUnit 4.0.12
-
-* [Use blacklist from PHP_CodeCoverage](https://github.com/sebastianbergmann/phpunit/commit/16152ba4b8d0104ce34f60cb71b2b982ba84c898)
-
-## PHPUnit 4.0.11
-
-* [Fixed unintended autoloader invokation triggered by the `@beforeClass` and `@afterClass` annotations](https://github.com/sebastianbergmann/phpunit/commit/f12e10fddc3ccbddb652a04d9036aeb5a6d54bff)
-
-## PHPUnit 4.0.10
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies (most notably a [fix](https://github.com/sebastianbergmann/phpunit-mock-objects/commit/c5e6274b8f2bf983cf883bb375cf44f99aff200e) in the mock object generator that caused a [performance regression](https://github.com/sebastianbergmann/phpunit/issues/1187))
-
-## PHPUnit 4.0.9
-
-* The "No code coverage will be generated." message was displayed even when code coverage reporting was not requested
-* Optimized the search for the `@before`, `@after`, `@beforeClass` and `@afterClass` annotations
-* Optimized the usage of `SebastianBergmann\Environment\Runtime::canCollectCodeCoverage()`
-
-## PHPUnit 4.0.8
-
-* Fixed [#1186](https://github.com/sebastianbergmann/phpunit/issues/1186): `@before` and `@after` methods are not called in `@dataProvider` methods
-
-## PHPUnit 4.0.7
-
-* Removed dependency on `phpunit/dbunit` in `composer.json` that was unintentionally added in PHPUnit 4.0.6
-
-## PHPUnit 4.0.6
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies
-
-## PHPUnit 4.0.5
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies
-
-## PHPUnit 4.0.4
-
-* Fixed stacktrace filtering when PHPUnit is used from a PHAR
-
-## PHPUnit 4.0.3
-
-* New release of PHPUnit as PHAR and PEAR package with updated dependencies
-
-## PHPUnit 4.0.2
-
-*  Fixed an issue related to displaying PHPUnit's version number
-
-## PHPUnit 4.0.1
-
-* Fixed collection of code coverage data for tests that use a data provider
-
-## PHPUnit 4.0.0
-
-* Implemented #382: Added the `$options` parameter to `PHPUnit_Framework_TestCase::getMockFromWsdl()` for configuring the `SoapClient`
-* Implemented #628: Added `PHPUnit_Framework_Assert::countOf(), a shortcut to get a `PHPUnit_Framework_Constraint_Count` instance
-* Implemented #711: `coverage-text` now has an XML `showOnlySummary` option
-* Implemented #719: The `--stderr` switch now respects `--colors` and `--debug`
-* Implemented #746: Allow identity checking for non-object types in all asserts that depend on `TraversableContains`
-* Implemented #758: Show a proper stack trace when @expectedException fails due to a unexpected exception being thrown
-* Implemented #773: Recursive and repeated arrays are more gracefully when comparison differences are exported
-* Implemented #813: Added `@before`, `@after`, `@beforeClass` and `@afterClass` annotations
-* Implemented #834: Added the `@requires OS` annotation
-* Implemented #835: Printers that extend `PHPUnit_TextUI_ResultPrinter` should have similar construction
-* Implemented #838: Added a base test listener
-* Implemented #859: Added PHP label validation to attribute assertions
-* Implemented #869: Added support for the adjacent sibling selector (+) to `PHPUnit_Util_XML::findNodes()`
-* Implemented #871: Add Comparator for DateTime objects
-* Implemented #877: Added new HTML5 tags to `PHPUnit_Util_XML::findNodes()`
-* Added `--coverage-crap4j` switch to generate code coverage report in Crap4J XML format
-* `assertCount()`, `assertNotCount()`, `assertSameSize()`, and `assertNotSameSize()` now support all objects that implement the `Traversable` interface
-* A test will now fail in strict mode when it uses the `@covers` annotation and code that is not expected to be covered is executed
-* All relative paths in a configuration file are now resolved relative to that configuration file
-* Fixed #240: XML strings are escaped by removing invalid characters
-* Fixed #261: `setUp()` and `setUpBeforeClass()` are run before filters are applied
-* Fixed #541: Excluded groups are counted towards total number of tests being executed
-* Fixed #789: PHP INI settings would not be passed to child processes
-* Fixed #806: Array references are now properly displayed in error output
-* Fixed #808: Resources are now reported as `resource(13) of type (stream)` instead of `NULL`
-* Fixed #873: PHPUnit suppresses exceptions thrown outside of test case function
-* Fixed: `phpt` test cases now use the correct php binary when executed through wrapper scripts
-
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.1.md b/core/vendor/phpunit/phpunit/ChangeLog-4.1.md
deleted file mode 100644
index cf18a30..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.1.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Changes in PHPUnit 4.1
-
-## PHPUnit 4.1.6
-
-* Fixed [#1380](https://github.com/sebastianbergmann/phpunit/issues/1380): `assertMatch()` returns `Unexpected end tag : hr`
-* Fixed [#1390](https://github.com/sebastianbergmann/phpunit/issues/1390): Licensing issue with third-party components bundled in PHAR distribution
-
-## PHPUnit 4.1.5
-
-* Implemented [#1330](https://github.com/sebastianbergmann/phpunit/issues/1330): Allow non-ambiguous shortened long options
-* Fixed [#529](https://github.com/sebastianbergmann/phpunit/issues/529): Tests missed in execution when another test extends from it 
-* Fixed [#1149](https://github.com/sebastianbergmann/phpunit/issues/1149): Test swallows output buffer when run in a separate process
-* Fixed [#1336](https://github.com/sebastianbergmann/phpunit/issues/1336): Problem in process isolation with global variables that contain an object which contains a string which contains multiple backslashes
-* Fixed [#1337](https://github.com/sebastianbergmann/phpunit/issues/1337): Data Provider with `\` at the end of the name breaks with process isolation
-* Fixed [#1345](https://github.com/sebastianbergmann/phpunit/issues/1345): Process isolation blocks infinitely upon fatal error in child process
-* Fixed [#1354](https://github.com/sebastianbergmann/phpunit/issues/1354): PHPUnit test suite fails on Windows
-* Fixed [#1369](https://github.com/sebastianbergmann/phpunit/issues/1369): Performance of `TestSuite::addTestFile()` and missing documentation
-* Fixed [#1374](https://github.com/sebastianbergmann/phpunit/issues/1374): `tearDown()` is called despite unmet requirements
-
-## PHPUnit 4.1.4
-
-* Fixed [#1265](https://github.com/sebastianbergmann/phpunit/issues/1265): `PHPUnit_Runner_StandardTestSuiteLoader` could not be configured as loader
-* Fixed [#1311](https://github.com/sebastianbergmann/phpunit/issues/1311): Incomplete XML Schema for PHPUnit XML configuration file
-* Fixed [#1314](https://github.com/sebastianbergmann/phpunit/issues/1314): Bug in configuration parser
-
-## PHPUnit 4.1.3
-
-* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
-
-## PHPUnit 4.1.2
-
-* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
-
-## PHPUnit 4.1.1
-
-* Added `--selfupdate` alias for `--self-update`
-* Fixed the constructor argument for `SebastianBergmann\Version`
-* Improved the fix for [#1133](https://github.com/sebastianbergmann/phpunit/issues/1133)
-
-## PHPUnit 4.1.0
-
-* The code to compare PHP values for equality (in `assertEquals()`, for instance) has been factored out into a [separate component](https://github.com/sebastianbergmann/comparator)
-* [The mock object generator is now created lazily](https://github.com/sebastianbergmann/phpunit/pull/1165)
-
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.2.md b/core/vendor/phpunit/phpunit/ChangeLog-4.2.md
deleted file mode 100644
index 2a8ae17..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.2.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Changes in PHPUnit 4.2
-
-## PHPUnit 4.2.5
-
-* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
-
-## PHPUnit 4.2.4
-
-* Fixed [#1413](https://github.com/sebastianbergmann/phpunit/issues/1413): `assertCount()` hangs in infinite loop on HHVM
-
-## PHPUnit 4.2.3
-
-* Fixed [#1403](https://github.com/sebastianbergmann/phpunit/issues/1403): `phpunit --self-update` does not work
-
-## PHPUnit 4.2.2
-
-* Fixed [#1399](https://github.com/sebastianbergmann/phpunit/issues/1399): `enforceTimeLimit` configuration option is not handled
-
-## PHPUnit 4.2.1
-
-* Fixed [#1380](https://github.com/sebastianbergmann/phpunit/issues/1380): `assertMatch()` returns `Unexpected end tag : hr`
-* Fixed [#1390](https://github.com/sebastianbergmann/phpunit/issues/1390): Licensing issue with third-party components bundled in PHAR distribution
-
-## PHPUnit 4.2.0
-
-* Tests annotated with `@todo` will now be reported as risky when the `--disallow-todo-tests` option is used or `beStrictAboutTodoAnnotatedTests=true` is set in the configuration file
-* The `atLeast()` and `atMost()` invocation count matchers were added
-* The `assertTag()` and `assertSelect*()` assertion methods have been deprecated in favor of the [phpunit-dom-assertions](https://github.com/phpunit/phpunit-dom-assertions) extension; these methods will be removed in PHPUnit 5.0
-* `trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);` is used now to indicate that a PHPUnit API method is deprecated; the old "system" for deprecating methods has been removed
-* The PHP Archive (PHAR) distribution of PHPUnit can now be used as a library; `include()`ing or `require()`ing it will not execute the CLI test runner
-
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.3.md b/core/vendor/phpunit/phpunit/ChangeLog-4.3.md
deleted file mode 100644
index e9d4496..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.3.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Changes in PHPUnit 4.3
-
-## PHPUnit 4.3.5
-
-* Merged [#1484](https://github.com/sebastianbergmann/phpunit/issues/1484): Removed `lazymap` from blacklist as it is not longer used
-* Merged [#1489](https://github.com/sebastianbergmann/phpunit/issues/1489): Do not send output from tests in process isolation when testing output
-
-## PHPUnit 4.3.4
-
-* Fixed [#1428](https://github.com/sebastianbergmann/phpunit/issues/1428): Issue with Composer dependencies
-* Fixed [#1447](https://github.com/sebastianbergmann/phpunit/issues/1447): PHPT tests treat line endings inconsistently
-
-## PHPUnit 4.3.3
-
-* Fixed [#1471](https://github.com/sebastianbergmann/phpunit/issues/1471): Output made while test is running is printed although `expectOutputString()` is used when an assertion fails
-
-## PHPUnit 4.3.2
-
-* Fixed [#1468](https://github.com/sebastianbergmann/phpunit/issues/1468): Incomplete and `@todo` annotated tests are counted twice
-
-## PHPUnit 4.3.1
-
-* New release of PHPUnit as PHP Archive (PHAR) with updated dependencies
-
-## PHPUnit 4.3.0
-
-* Merged [#1358](https://github.com/sebastianbergmann/phpunit/issues/1358): Implement `@expectedExceptionMessageRegExp` annotation
-* Merged [#1360](https://github.com/sebastianbergmann/phpunit/issues/1360): Allow a test to identify whether it runs in isolation
-* Fixed [#1216](https://github.com/sebastianbergmann/phpunit/issues/1216): Bootstrap does not have global variables set when `--bootstrap` is specified on commandline
-* Fixed [#1351](https://github.com/sebastianbergmann/phpunit/issues/1351): `TestResult` object contains serialized test class upon test failure/exception in process isolation
-* Fixed [#1437](https://github.com/sebastianbergmann/phpunit/issues/1437): Risky test messages mask failures 
-
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.4.md b/core/vendor/phpunit/phpunit/ChangeLog-4.4.md
deleted file mode 100644
index 6b541c3..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.4.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Changes in PHPUnit 4.4
-
-## PHPUnit 4.4.5
-
-* Fixed [#1592](https://github.com/sebastianbergmann/phpunit/issues/1592): Incorrect dependency information
-
-## PHPUnit 4.4.4
-
-* Fixed [#1587](https://github.com/sebastianbergmann/phpunit/issues/1587): Class `SebastianBergmann\Exporter\Context` not found
-
-## PHPUnit 4.4.3
-
-* New PHAR release due to updated dependencies
-
-## PHPUnit 4.4.2
-
-* Merged [#1567](https://github.com/sebastianbergmann/phpunit/issues/1567): `coverage-crap4j` missing in XSD for PHPUnit XML configuration
-* Merged [#1573](https://github.com/sebastianbergmann/phpunit/issues/1573): Updates for the XSD for PHPUnit XML configuration
-* Fixed [#1570](https://github.com/sebastianbergmann/phpunit/issues/1570): Test that prints output is marked as failure and not as risky when `--disallow-test-output` is used
-* Fixed `--stderr` with `--tap` or `--testdox` options
-
-## PHPUnit 4.4.1
-
-* Merged [#1528](https://github.com/sebastianbergmann/phpunit/issues/1528): Add `expectedCount()` to `toString()` return value
-
-## PHPUnit 4.4.0
-
-* Merged [#1371](https://github.com/sebastianbergmann/phpunit/issues/1371): Implement `assertArraySubset()` assertion
-* Merged [#1427](https://github.com/sebastianbergmann/phpunit/issues/1427): Improve failure output for tests when provided data is binary
-* Merged [#1439](https://github.com/sebastianbergmann/phpunit/issues/1439): Add support for `double` to `assertInternalType()`
-* Merged [#1458](https://github.com/sebastianbergmann/phpunit/issues/1458): Only enable colors when PHPUnit is run on a console (and output is not sent to a file)
-
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.5.md b/core/vendor/phpunit/phpunit/ChangeLog-4.5.md
deleted file mode 100644
index 2b280da..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.5.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Changes in PHPUnit 4.5
-
-## PHPUnit 4.5.0
-
-* Added out-of-the-box support for [Prophecy](https://github.com/phpspec/prophecy)
-* Implemented [#137](https://github.com/sebastianbergmann/phpunit/issues/137): Add support for variable number of tests shown per line in default result printer
-* Merged [#1478](https://github.com/sebastianbergmann/phpunit/issues/1478): Improve the performance of `PHPUnit_Framework_Constraint_IsEqual` (which is used by `assertEquals()`, for instance) for the most common case
-* Fixed [#1474](https://github.com/sebastianbergmann/phpunit/issues/1474): Allow the registration of custom comparators for `assertEquals()` et al. (again)
-* [Deprecated](https://github.com/sebastianbergmann/phpunit/commit/7abe7796f77b13fdf3cfc506fb987d6c2ab477f5) the `--strict` commandline option and the XML configuration's `strict` attribute
-
diff --git a/core/vendor/phpunit/phpunit/ChangeLog-4.6.md b/core/vendor/phpunit/phpunit/ChangeLog-4.6.md
deleted file mode 100644
index 7c0ea25..0000000
--- a/core/vendor/phpunit/phpunit/ChangeLog-4.6.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Changes in PHPUnit 4.6
-
-## PHPUnit 4.6.4
-
-* The default list of blacklisted classes is now always passed to PHP_CodeCoverage
-
-## PHPUnit 4.6.3
-
-* Updated the default list of blacklisted classes
-
-## PHPUnit 4.6.2
-
-* Fixed [#1667](https://github.com/sebastianbergmann/phpunit/issues/1667): Loading `src/Framework/Assert/Functions.php` by default causes collisions
-
-## PHPUnit 4.6.1
-
-* Fixed [#1665](https://github.com/sebastianbergmann/phpunit/issues/1665): PHPUnit 4.6.0 PHAR does not work when renamed to `phpunit`
-
-## PHPUnit 4.6.0
-
-* Added the `--strict-global-state` command-line option and the `beStrictAboutChangesToGlobalState` configuration setting for enabling a check that global variabes, super-global variables, and static attributes in user-defined classes are not modified during a test
-* Merged [#1527](https://github.com/sebastianbergmann/phpunit/issues/1527) and [#1529](https://github.com/sebastianbergmann/phpunit/issues/1529): Allow to define options for displaying colors
-* Merged [#1528](https://github.com/sebastianbergmann/phpunit/issues/1528): Improve message when `PHPUnit_Framework_Constraint_Count` is used with logical operators
-* Merged [#1537](https://github.com/sebastianbergmann/phpunit/issues/1537): Fix problem of `--stderr` with `--tap` and `--testdox`
-* Fixed [#1599](https://github.com/sebastianbergmann/phpunit/issues/1599): The PHAR build of PHPUnit no longer uses an autoloader to load PHPUnit's own classes and instead statically loads all classes on startup
-
diff --git a/core/vendor/phpunit/phpunit/LICENSE b/core/vendor/phpunit/phpunit/LICENSE
deleted file mode 100644
index 32ddc8e..0000000
--- a/core/vendor/phpunit/phpunit/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-PHPUnit
-
-Copyright (c) 2001-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/phpunit/phpunit/README.md b/core/vendor/phpunit/phpunit/README.md
deleted file mode 100644
index 585cc02..0000000
--- a/core/vendor/phpunit/phpunit/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# PHPUnit
-
-PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.
-
-[![Latest Stable Version](https://poser.pugx.org/phpunit/phpunit/v/stable.png)](https://packagist.org/packages/phpunit/phpunit)
-[![Build Status](https://travis-ci.org/sebastianbergmann/phpunit.svg?branch=4.6)](https://travis-ci.org/sebastianbergmann/phpunit)
-[![Dependency Status](https://www.versioneye.com/php/phpunit:phpunit/4.6/badge.png)](https://www.versioneye.com/php/phpunit:phpunit/dev-master)
-[![Reference Status](https://www.versioneye.com/php/phpunit:phpunit/reference_badge.svg)](https://www.versioneye.com/php/phpunit:phpunit/references)
-
-## Installation
-
-We distribute a [PHP Archive (PHAR)](http://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit bundled in a single file:
-
-    wget https://phar.phpunit.de/phpunit.phar
-    chmod +x phpunit.phar
-    mv phpunit.phar /usr/local/bin/phpunit
-
-You can also immediately use the PHAR after you have downloaded it, of course:
-
-    wget https://phar.phpunit.de/phpunit.phar
-    php phpunit.phar
-
-Alternatively, you may use [Composer](http://getcomposer.org/) to download and install PHPUnit as well as its dependencies. Please refer to the [documentation](https://phpunit.de/documentation.html) for details on how to do this.
-
-## Contribute
-
-Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects.
-
-## List of Contributors
-
-Thanks to everyone who has contributed to PHPUnit! You can find a detailed list of contributors on every PHPUnit related package on GitHub. This list shows only the major components:
-
-* [PHPUnit](https://github.com/sebastianbergmann/phpunit/graphs/contributors)
-* [PHP_CodeCoverage](https://github.com/sebastianbergmann/php-code-coverage/graphs/contributors)
-* [PHPUnit_MockObject](https://github.com/sebastianbergmann/phpunit-mock-objects/graphs/contributors)
-
-A very special thanks to everyone who has contributed to the documentation and helps maintain the translations:
-
-* [PHPUnit Documentation](https://github.com/sebastianbergmann/phpunit-documentation/graphs/contributors)
-
diff --git a/core/vendor/phpunit/phpunit/build.xml b/core/vendor/phpunit/phpunit/build.xml
deleted file mode 100644
index 32ee1a0..0000000
--- a/core/vendor/phpunit/phpunit/build.xml
+++ /dev/null
@@ -1,392 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="PHPUnit" default="build">
- <property name="php" value="php"/>
-
- <target name="build"
-   depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpunit,phpdox"/>
-
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/bin"/>
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
-  <delete dir="${basedir}/build/api"/>
-  <delete dir="${basedir}/build/code-browser"/>
-  <delete dir="${basedir}/build/coverage"/>
-  <delete dir="${basedir}/build/logs"/>
-  <delete dir="${basedir}/build/pdepend"/>
-  <delete dir="${basedir}/build/phar"/>
-  <delete dir="${basedir}/build/phpdox"/>
-
-  <delete>
-   <fileset dir="${basedir}/build">
-    <include name="**/*.phar" />
-    <include name="**/*.phar.asc" />
-   </fileset>
-  </delete>
- </target>
-
- <target name="prepare" description="Prepare for build">
-  <mkdir dir="${basedir}/build/api"/>
-  <mkdir dir="${basedir}/build/code-browser"/>
-  <mkdir dir="${basedir}/build/coverage"/>
-  <mkdir dir="${basedir}/build/logs"/>
-  <mkdir dir="${basedir}/build/pdepend"/>
-  <mkdir dir="${basedir}/build/phpdox"/>
- </target>
-
- <target name="download-composer" description="Downloads composer.phar (when it does not exist or is older than 30 days)">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
- </target>
-
- <target name="composer" depends="download-composer" description="Install dependencies with Composer">
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-
- <target name="lint">
-  <apply executable="${php}" failonerror="true">
-   <arg value="-l" />
-
-   <fileset dir="${basedir}/src">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-
-   <fileset dir="${basedir}/tests">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-  </apply>
- </target>
-
- <target name="phploc" description="Measure project size using PHPLOC">
-  <exec executable="phploc">
-   <arg value="--log-csv" />
-   <arg value="${basedir}/build/logs/phploc.csv" />
-   <arg value="--log-xml" />
-   <arg value="${basedir}/build/logs/phploc.xml" />
-   <arg path="${basedir}/src" />
-  </exec>
- </target>
-
- <target name="pdepend"
-         description="Calculate software metrics using PHP_Depend">
-  <exec executable="pdepend">
-   <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
-   <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
-   <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
-   <arg path="${basedir}/src" />
-  </exec>
- </target>
-
- <target name="phpmd"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/src" />
-   <arg value="text" />
-   <arg value="${basedir}/build/phpmd.xml" />
-  </exec>
- </target>
-
- <target name="phpmd-ci"
-         description="Perform project mess detection using PHPMD">
-  <exec executable="phpmd">
-   <arg path="${basedir}/src" />
-   <arg value="xml" />
-   <arg value="${basedir}/build/phpmd.xml" />
-   <arg value="--reportfile" />
-   <arg value="${basedir}/build/logs/pmd.xml" />
-  </exec>
- </target>
-
- <target name="phpcs"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=PSR2" />
-   <arg value="--extensions=php" />
-   <arg path="${basedir}/src" />
-   <arg path="${basedir}/tests" />
-  </exec>
- </target>
-
- <target name="phpcs-ci"
-         description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs" output="/dev/null">
-   <arg value="--report=checkstyle" />
-   <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
-   <arg value="--standard=PSR2" />
-   <arg value="--extensions=php" />
-   <arg path="${basedir}/src" />
-   <arg path="${basedir}/tests" />
-  </exec>
- </target>
-
- <target name="phpcpd" description="Find duplicate code using PHPCPD">
-  <exec executable="phpcpd">
-   <arg value="--log-pmd" />
-   <arg value="${basedir}/build/logs/pmd-cpd.xml" />
-   <arg path="${basedir}/src" />
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <exec executable="${php}" failonerror="true">
-   <arg path="${basedir}/src" />
-  </exec>
- </target>
-
- <target name="phpdox"
-         description="Generate software project documentation using phpDox">
-  <exec executable="phpdox" />
- </target>
-
- <target name="signed-phar"
-         description="Create signed PHAR archive of PHPUnit and all its dependencies (release)"
-         depends="phar">
-  <exec executable="bash" outputproperty="version">
-   <arg value="-c" />
-   <arg value="${basedir}/phpunit --version | awk 'BEGIN { ORS = &quot;&quot;; } {print $2}'" />
-  </exec>
-
-  <exec executable="gpg" failonerror="true">
-   <arg value="--armor" />
-   <arg value="--detach-sign" />
-   <arg path="${basedir}/build/phpunit-${version}.phar" />
-  </exec>
- </target>
-
- <target name="phar"
-         description="Create PHAR archive of PHPUnit and all its dependencies (release)"
-         depends="phar-prepare">
-  <exec executable="bash" outputproperty="version">
-   <arg value="-c" />
-   <arg value="${basedir}/phpunit --version | awk 'BEGIN { ORS = &quot;&quot;; } {print $2}'" />
-  </exec>
-
-  <antcall target="phar-build">
-   <param name="version" value="${version}"/>
-  </antcall>
- </target>
-
- <target name="phar-alpha"
-         description="Create PHAR archive of PHPUnit and all its dependencies (alpha)"
-         depends="phar-prepare">
-  <antcall target="phar-build">
-   <param name="version" value="alpha"/>
-  </antcall>
- </target>
-
- <target name="phar-beta"
-         description="Create PHAR archive of PHPUnit and all its dependencies (beta)"
-         depends="phar-prepare">
-  <antcall target="phar-build">
-   <param name="version" value="beta"/>
-  </antcall>
- </target>
-
- <target name="phar-prepare" depends="clean,download-composer">
-  <mkdir dir="${basedir}/build/phar"/>
-  <copy file="${basedir}/composer.json" tofile="${basedir}/composer.json.bak"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="require"/>
-   <arg value="phpunit/dbunit:~1.3"/>
-   <arg value="phpunit/phpunit-selenium:~1.4"/>
-   <arg value="phpunit/php-invoker:~1.1"/>
-  </exec>
-
-  <move file="${basedir}/composer.json.bak" tofile="${basedir}/composer.json"/>
-
-  <exec executable="${basedir}/build/phar-manifest.php" output="${basedir}/build/phar/manifest.txt"/>
-  <copy todir="${basedir}/build/phar" file="${basedir}/build/ca.pem" />
-
-  <copy file="${basedir}/vendor/phpunit/php-code-coverage/LICENSE" tofile="${basedir}/build/phar/php-code-coverage/LICENSE"/>
-  <copy todir="${basedir}/build/phar/php-code-coverage">
-   <fileset dir="${basedir}/vendor/phpunit/php-code-coverage/src">
-    <include name="**/*" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpunit/php-file-iterator/LICENSE" tofile="${basedir}/build/phar/php-file-iterator/LICENSE"/>
-  <copy todir="${basedir}/build/phar/php-file-iterator">
-   <fileset dir="${basedir}/vendor/phpunit/php-file-iterator/src">
-    <include name="**/*.php" />
-    <exclude name="**/Autoload.*" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpunit/php-text-template/LICENSE" tofile="${basedir}/build/phar/php-text-template/LICENSE"/>
-  <copy todir="${basedir}/build/phar/php-text-template">
-   <fileset dir="${basedir}/vendor/phpunit/php-text-template/Text">
-    <include name="**/*.php" />
-    <exclude name="**/Autoload.*" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpunit/php-timer/LICENSE" tofile="${basedir}/build/phar/php-timer/LICENSE"/>
-  <copy todir="${basedir}/build/phar/php-timer">
-   <fileset dir="${basedir}/vendor/phpunit/php-timer/PHP">
-    <include name="**/*.php" />
-    <exclude name="**/Autoload.*" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpunit/php-token-stream/LICENSE" tofile="${basedir}/build/phar/php-token-stream/LICENSE"/>
-  <copy todir="${basedir}/build/phar/php-token-stream">
-   <fileset dir="${basedir}/vendor/phpunit/php-token-stream/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpunit/phpunit-mock-objects/LICENSE" tofile="${basedir}/build/phar/phpunit-mock-objects/LICENSE"/>
-  <copy todir="${basedir}/build/phar/phpunit-mock-objects">
-   <fileset dir="${basedir}/vendor/phpunit/phpunit-mock-objects/src">
-    <include name="**/*" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/comparator/LICENSE" tofile="${basedir}/build/phar/sebastian-comparator/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-comparator">
-   <fileset dir="${basedir}/vendor/sebastian/comparator/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/diff/LICENSE" tofile="${basedir}/build/phar/sebastian-diff/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-diff">
-   <fileset dir="${basedir}/vendor/sebastian/diff/src">
-    <include name="**/*.php" />
-    <exclude name="**/autoload.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/environment/LICENSE" tofile="${basedir}/build/phar/sebastian-environment/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-environment">
-   <fileset dir="${basedir}/vendor/sebastian/environment/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/exporter/LICENSE" tofile="${basedir}/build/phar/sebastian-exporter/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-exporter">
-   <fileset dir="${basedir}/vendor/sebastian/exporter/src">
-    <include name="**/*.php" />
-    <exclude name="**/autoload.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/recursion-context/LICENSE" tofile="${basedir}/build/phar/sebastian-recursion-context/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-recursion-context">
-   <fileset dir="${basedir}/vendor/sebastian/recursion-context/src">
-    <include name="**/*.php" />
-    <exclude name="**/autoload.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/global-state/LICENSE" tofile="${basedir}/build/phar/sebastian-global-state/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-global-state">
-   <fileset dir="${basedir}/vendor/sebastian/global-state/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/sebastian/version/LICENSE" tofile="${basedir}/build/phar/sebastian-version/LICENSE"/>
-  <copy todir="${basedir}/build/phar/sebastian-version">
-   <fileset dir="${basedir}/vendor/sebastian/version/src">
-    <include name="**/*.php" />
-    <exclude name="**/autoload.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/doctrine/instantiator/LICENSE" tofile="${basedir}/build/phar/doctrine-instantiator/LICENSE"/>
-  <copy todir="${basedir}/build/phar/doctrine-instantiator">
-   <fileset dir="${basedir}/vendor/doctrine/instantiator/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE" tofile="${basedir}/build/phar/symfony/LICENSE"/>
-  <copy todir="${basedir}/build/phar/symfony">
-   <fileset dir="${basedir}/vendor/symfony">
-    <include name="**/*.php" />
-    <exclude name="**/Tests/**" />
-   </fileset>
-  </copy>
-
-  <copy todir="${basedir}/build/phar/dbunit">
-   <fileset dir="${basedir}/vendor/phpunit/dbunit/PHPUnit">
-    <include name="**/*.php" />
-    <exclude name="**/Autoload.*" />
-   </fileset>
-  </copy>
-
-  <copy todir="${basedir}/build/phar/php-invoker">
-   <fileset dir="${basedir}/vendor/phpunit/php-invoker/PHP">
-    <include name="**/*.php" />
-    <exclude name="**/Autoload.*" />
-   </fileset>
-  </copy>
-
-  <copy todir="${basedir}/build/phar/phpunit-selenium">
-   <fileset dir="${basedir}/vendor/phpunit/phpunit-selenium/PHPUnit">
-    <include name="**/*.php" />
-    <exclude name="**/Autoload.*" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpdocumentor/reflection-docblock/LICENSE" tofile="${basedir}/build/phar/phpdocumentor-reflection-docblock/LICENSE"/>
-  <copy todir="${basedir}/build/phar/phpdocumentor-reflection-docblock">
-   <fileset dir="${basedir}/vendor/phpdocumentor/reflection-docblock/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
-
-  <copy file="${basedir}/vendor/phpspec/prophecy/LICENSE" tofile="${basedir}/build/phar/phpspec-prophecy/LICENSE"/>
-  <copy todir="${basedir}/build/phar/phpspec-prophecy">
-   <fileset dir="${basedir}/vendor/phpspec/prophecy/src">
-    <include name="**/*.php" />
-   </fileset>
-  </copy>
- </target>
-
- <target name="phar-build">
-  <copy todir="${basedir}/build/phar/phpunit">
-   <fileset dir="${basedir}/src">
-    <include name="**/*.php" />
-    <include name="**/*.tpl*" />
-   </fileset>
-  </copy>
-
-  <exec executable="${basedir}/build/phar-version.php" outputproperty="_version">
-   <arg value="${version}" />
-  </exec>
-
-  <exec executable="phpab">
-   <arg value="--all" />
-   <arg value="--static" />
-   <arg value="--phar" />
-   <arg value="--output" />
-   <arg path="${basedir}/build/phpunit-${_version}.phar" />
-   <arg value="--template" />
-   <arg path="${basedir}/build/phar-autoload.php.in" />
-   <arg path="${basedir}/build/phar" />
-  </exec>
-
-  <chmod file="${basedir}/build/phpunit-${_version}.phar" perm="ugo+rx"/>
- </target>
-</project>
-
diff --git a/core/vendor/phpunit/phpunit/build/ca.pem b/core/vendor/phpunit/phpunit/build/ca.pem
deleted file mode 100644
index 960f265..0000000
--- a/core/vendor/phpunit/phpunit/build/ca.pem
+++ /dev/null
@@ -1,44 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
-LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
-BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
-dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
-cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
-YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
-dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
-bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
-YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
-TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
-9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
-jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
-FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
-ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
-ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
-EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
-L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
-O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
-um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
-NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
------END CERTIFICATE-----
diff --git a/core/vendor/phpunit/phpunit/build/phar-autoload.php.in b/core/vendor/phpunit/phpunit/build/phar-autoload.php.in
deleted file mode 100644
index c2b2d15..0000000
--- a/core/vendor/phpunit/phpunit/build/phar-autoload.php.in
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env php
-<?php
-if (__FILE__ == realpath($GLOBALS['_SERVER']['SCRIPT_NAME'])) {
-    $phar    = realpath($GLOBALS['_SERVER']['SCRIPT_NAME']);
-    $execute = true;
-} else {
-    $files   = get_included_files();
-    $phar    = $files[0];
-    $execute = false;
-}
-
-define('__PHPUNIT_PHAR__', str_replace(DIRECTORY_SEPARATOR, '/', $phar));
-define('__PHPUNIT_PHAR_ROOT__', 'phar://___PHAR___');
-
-Phar::mapPhar('___PHAR___');
-
-___FILELIST___
-
-if ($execute) {
-    if (isset($_SERVER['argv'][1]) && $_SERVER['argv'][1] == '--manifest') {
-        print file_get_contents(__PHPUNIT_PHAR_ROOT__ . '/manifest.txt');
-        exit;
-    }
-
-    PHPUnit_TextUI_Command::main();
-}
-
-__HALT_COMPILER();
diff --git a/core/vendor/phpunit/phpunit/build/phar-manifest.php b/core/vendor/phpunit/phpunit/build/phar-manifest.php
deleted file mode 100755
index 474686b..0000000
--- a/core/vendor/phpunit/phpunit/build/phar-manifest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env php
-<?php
-print 'phpunit/phpunit: ';
-
-$tag = @exec('git describe --tags 2>&1');
-
-if (strpos($tag, '-') === false && strpos($tag, 'No names found') === false) {
-    print $tag;
-} else {
-    $branch = @exec('git rev-parse --abbrev-ref HEAD');
-    $hash   = @exec('git log -1 --format="%H"');
-    print $branch . '@' . $hash;
-}
-
-print "\n";
-
-$lock = json_decode(file_get_contents(__DIR__ . '/../composer.lock'));
-
-foreach ($lock->packages as $package) {
-    print $package->name . ': ' . $package->version;
-
-    if (!preg_match('/^[v= ]*(([0-9]+)(\\.([0-9]+)(\\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9\\.\\-:]*)?)?)?)?)$/', $package->version)) {
-        print '@' . $package->source->reference;
-    }
-
-    print "\n";
-}
diff --git a/core/vendor/phpunit/phpunit/build/phar-version.php b/core/vendor/phpunit/phpunit/build/phar-version.php
deleted file mode 100755
index 83b8746..0000000
--- a/core/vendor/phpunit/phpunit/build/phar-version.php
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env php
-<?php
-if (!isset($argv[1])) {
-    exit(1);
-}
-
-if ($argv[1] == 'alpha' || $argv[1] == 'beta') {
-    $version = sprintf('%s-%s', $argv[1], date('Y-m-d'));
-} else {
-    $version = $argv[1];
-}
-
-file_put_contents(
-    __DIR__ . '/phar/phpunit/Runner/Version.php',
-    str_replace(
-        'private static $pharVersion;',
-        'private static $pharVersion = "' . $version . '";',
-        file_get_contents(__DIR__ . '/phar/phpunit/Runner/Version.php')
-    )
-);
-
-print $version;
diff --git a/core/vendor/phpunit/phpunit/build/phpmd.xml b/core/vendor/phpunit/phpunit/build/phpmd.xml
deleted file mode 100644
index 23ecb8b..0000000
--- a/core/vendor/phpunit/phpunit/build/phpmd.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Sebastian"
-         xmlns="http://pmd.sf.net/ruleset/1.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
-  <description>Sebastian Bergmann's ruleset</description>
-
-  <rule ref="rulesets/codesize.xml/CyclomaticComplexity" />
-  <rule ref="rulesets/codesize.xml/NPathComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity" />
-  <rule ref="rulesets/codesize.xml/ExcessiveClassLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveMethodLength" />
-  <rule ref="rulesets/codesize.xml/ExcessiveParameterList" />
-
-  <rule ref="rulesets/design.xml/EvalExpression" />
-  <rule ref="rulesets/design.xml/ExitExpression" />
-  <rule ref="rulesets/design.xml/GotoStatement" />
-
-  <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
-
-  <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter" />
-  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
-  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />
-</ruleset>
diff --git a/core/vendor/phpunit/phpunit/build/travis-ci-fail.xml b/core/vendor/phpunit/phpunit/build/travis-ci-fail.xml
deleted file mode 100644
index 4586989..0000000
--- a/core/vendor/phpunit/phpunit/build/travis-ci-fail.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.4/phpunit.xsd"
-         bootstrap="../tests/bootstrap.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuites>
-    <testsuite name="small">
-      <directory suffix=".phpt">../tests/Fail</directory>
-    </testsuite>
-  </testsuites>
-
-  <php>
-    <const name="PHPUNIT_TESTSUITE" value="true"/>
-  </php>
-</phpunit>
diff --git a/core/vendor/phpunit/phpunit/composer.json b/core/vendor/phpunit/phpunit/composer.json
deleted file mode 100644
index f5f65b9..0000000
--- a/core/vendor/phpunit/phpunit/composer.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-    "name": "phpunit/phpunit",
-    "description": "The PHP Unit Testing framework.",
-    "type": "library",
-    "keywords": [
-        "phpunit",
-        "xunit",
-        "testing"
-    ],
-    "homepage": "https://phpunit.de/",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/phpunit/issues",
-        "irc": "irc://irc.freenode.net/phpunit"
-    },
-    "require": {
-        "php": ">=5.3.3",
-        "phpunit/php-file-iterator": "~1.4",
-        "phpunit/php-text-template": "~1.2",
-        "phpunit/php-code-coverage": "~2.0,>=2.0.11",
-        "phpunit/php-timer": "~1.0",
-        "phpunit/phpunit-mock-objects": "~2.3",
-        "phpspec/prophecy": "~1.3,>=1.3.1",
-        "symfony/yaml": "~2.1|~3.0",
-        "sebastian/comparator": "~1.1",
-        "sebastian/diff": "~1.2",
-        "sebastian/environment": "~1.2",
-        "sebastian/exporter": "~1.2",
-        "sebastian/global-state": "~1.0",
-        "sebastian/version": "~1.0",
-        "ext-dom": "*",
-        "ext-json": "*",
-        "ext-pcre": "*",
-        "ext-reflection": "*",
-        "ext-spl": "*"
-    },
-    "suggest": {
-        "phpunit/php-invoker": "~1.1"
-    },
-    "bin": [
-        "phpunit"
-    ],
-    "config": {
-        "bin-dir": "bin"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "autoload-dev": {
-        "classmap": [
-            "tests/"
-        ],
-        "files": [
-            "src/Framework/Assert/Functions.php",
-            "tests/_files/CoveredFunction.php"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "4.6.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/phpdox.xml.dist b/core/vendor/phpunit/phpunit/phpdox.xml.dist
deleted file mode 100644
index e77645e..0000000
--- a/core/vendor/phpunit/phpunit/phpdox.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<phpdox xmlns="http://phpdox.net/config">
- <project name="PHPUnit" source="src" workdir="build/phpdox">
-  <collector publiconly="false">
-   <include mask="*.php" />
-  </collector>
-
-  <generator output="build">
-   <enrich base="${basedir}/build/logs">
-    <source type="build" />
-    <source type="git" />
-    <source type="phploc" />
-    <source type="checkstyle" />
-    <source type="pmd" />
-   </enrich>
-
-   <build engine="html" enabled="true" output="api">
-    <file extension="html" />
-   </build>
-  </generator>
- </project>
-</phpdox>
-
diff --git a/core/vendor/phpunit/phpunit/phpunit b/core/vendor/phpunit/phpunit/phpunit
deleted file mode 100755
index 11f3cd5..0000000
--- a/core/vendor/phpunit/phpunit/phpunit
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env php
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!ini_get('date.timezone')) {
-    ini_set('date.timezone', 'UTC');
-}
-
-foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
-    if (file_exists($file)) {
-        define('PHPUNIT_COMPOSER_INSTALL', $file);
-        break;
-    }
-}
-
-unset($file);
-
-if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
-    fwrite(STDERR,
-        'You need to set up the project dependencies using the following commands:' . PHP_EOL .
-        'wget http://getcomposer.org/composer.phar' . PHP_EOL .
-        'php composer.phar install' . PHP_EOL
-    );
-    die(1);
-}
-
-require PHPUNIT_COMPOSER_INSTALL;
-
-PHPUnit_TextUI_Command::main();
diff --git a/core/vendor/phpunit/phpunit/phpunit.xml.dist b/core/vendor/phpunit/phpunit/phpunit.xml.dist
deleted file mode 100644
index e07332e..0000000
--- a/core/vendor/phpunit/phpunit/phpunit.xml.dist
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.4/phpunit.xsd"
-         bootstrap="tests/bootstrap.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuites>
-    <testsuite name="small">
-      <directory suffix="Test.php">tests/Framework</directory>
-      <directory suffix="Test.php">tests/Extensions</directory>
-      <directory suffix="Test.php">tests/Runner</directory>
-      <directory suffix="Test.php">tests/Util</directory>
-    </testsuite>
-
-    <testsuite name="large">
-      <directory suffix=".phpt">tests/TextUI</directory>
-      <directory suffix=".phpt">tests/Regression</directory>
-    </testsuite>
-  </testsuites>
-
-  <filter>
-    <whitelist processUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">src</directory>
-      <exclude>
-       <file>src/Framework/Assert/Functions.php</file>
-      </exclude>
-    </whitelist>
-  </filter>
-
-  <php>
-    <const name="PHPUNIT_TESTSUITE" value="true"/>
-  </php>
-</phpunit>
-
diff --git a/core/vendor/phpunit/phpunit/phpunit.xsd b/core/vendor/phpunit/phpunit/phpunit.xsd
deleted file mode 100644
index 9c723ec..0000000
--- a/core/vendor/phpunit/phpunit/phpunit.xsd
+++ /dev/null
@@ -1,260 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <xs:annotation>
-    <xs:documentation source="https://phpunit.de/manual/4.6/en/appendixes.configuration.html">
-      This Schema file defines the rules by which the XML configuration file of PHPUnit 4.6 may be structured.
-    </xs:documentation>
-    <xs:appinfo source="http://www.phpunit.de/manual/current/en/appendixes.configuration.html"/>
-  </xs:annotation>
-  <xs:element name="phpunit" type="phpUnitType">
-    <xs:annotation>
-      <xs:documentation>Root Element</xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:complexType name="filtersType">
-    <xs:choice>
-      <xs:sequence>
-        <xs:element name="blacklist" type="filterType"/>
-        <xs:element name="whitelist" type="whiteListType" minOccurs="0"/>
-      </xs:sequence>
-      <xs:sequence>
-        <xs:element name="whitelist" type="whiteListType"/>
-      </xs:sequence>
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="filterType">
-    <xs:sequence>
-      <xs:group ref="pathGroup"/>
-      <xs:element name="exclude" maxOccurs="unbounded" minOccurs="0">
-        <xs:complexType>
-          <xs:group ref="pathGroup"/>
-        </xs:complexType>
-      </xs:element>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="whiteListType">
-    <xs:complexContent>
-      <xs:extension base="filterType">
-        <xs:attribute name="addUncoveredFilesFromWhitelist" default="false" type="xs:boolean"/>
-        <xs:attribute name="processUncoveredFilesFromWhitelist" default="true" type="xs:boolean"/>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="groupsType">
-    <xs:choice>
-      <xs:sequence>
-        <xs:element name="include" type="groupType"/>
-        <xs:element name="exclude" type="groupType" minOccurs="0"/>
-      </xs:sequence>
-      <xs:sequence>
-        <xs:element name="exclude" type="groupType"/>
-      </xs:sequence>
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="groupType">
-    <xs:sequence>
-      <xs:element name="group" type="xs:string" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="listenersType">
-    <xs:sequence>
-      <xs:element name="listener" type="objectType" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="objectType">
-    <xs:sequence>
-      <xs:element name="arguments" minOccurs="0">
-        <xs:complexType>
-          <xs:group ref="argumentsGroup"/>
-        </xs:complexType>
-      </xs:element>
-    </xs:sequence>
-    <xs:attribute name="class" type="xs:string" use="required"/>
-    <xs:attribute name="file" type="xs:anyURI"/>
-  </xs:complexType>
-  <xs:complexType name="arrayType">
-    <xs:sequence>
-      <xs:element name="element" type="argumentType" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="argumentType">
-    <xs:group ref="argumentChoice"/>
-    <xs:attribute name="key" use="required"/>
-  </xs:complexType>
-  <xs:group name="argumentsGroup">
-    <xs:sequence>
-      <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:group name="argumentChoice">
-    <xs:choice>
-      <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:choice>
-  </xs:group>
-  <xs:complexType name="loggersType">
-    <xs:sequence>
-      <xs:element name="log" type="loggerType" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="loggerType">
-    <xs:attribute name="type">
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="coverage-html"/>
-          <xs:enumeration value="coverage-text"/>
-          <xs:enumeration value="coverage-clover"/>
-          <xs:enumeration value="coverage-crap4j"/>
-          <xs:enumeration value="json"/>
-          <xs:enumeration value="plain"/>
-          <xs:enumeration value="tap"/>
-          <xs:enumeration value="junit"/>
-          <xs:enumeration value="testdox-html"/>
-          <xs:enumeration value="testdox-text"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="target" type="xs:anyURI"/>
-    <xs:attribute name="lowUpperBound" type="xs:nonNegativeInteger" default="35"/>
-    <xs:attribute name="highLowerBound" type="xs:nonNegativeInteger" default="70"/>
-    <xs:attribute name="logIncompleteSkipped" type="xs:boolean" default="false"/>
-    <xs:attribute name="showUncoveredFiles" type="xs:boolean" default="false"/>
-  </xs:complexType>
-  <xs:group name="pathGroup">
-    <xs:sequence>
-      <xs:element name="directory" type="directoryFilterType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="file" type="fileFilterType" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:complexType name="directoryFilterType">
-    <xs:simpleContent>
-      <xs:extension base="xs:anyURI">
-        <xs:attribute type="xs:string" name="suffix" default="Test.php"/>
-        <xs:attributeGroup ref="phpVersionGroup"/>
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:complexType name="fileFilterType">
-    <xs:simpleContent>
-      <xs:extension base="xs:anyURI">
-        <xs:attributeGroup ref="phpVersionGroup"/>
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:attributeGroup name="phpVersionGroup">
-    <xs:attribute name="phpVersion" type="xs:string" default="5.3.0"/>
-    <xs:attribute name="phpVersionOperator" type="xs:string" default="&gt;="/>
-  </xs:attributeGroup>
-  <xs:complexType name="phpType">
-    <xs:sequence>
-      <xs:element name="includePath" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="ini" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="const" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="var" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="env" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="post" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="get" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="cookie" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="server" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="files" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="request" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="namedValueType">
-    <xs:attribute name="name" use="required" type="xs:string"/>
-    <xs:attribute name="value" use="required" type="xs:anySimpleType"/>
-  </xs:complexType>
-  <xs:complexType name="phpUnitType">
-    <xs:annotation>
-      <xs:documentation>The main type specifying the document structure</xs:documentation>
-    </xs:annotation>
-    <xs:group ref="configGroup"/>
-    <xs:attributeGroup ref="configAttributeGroup"/>
-  </xs:complexType>
-  <xs:attributeGroup name="configAttributeGroup">
-    <xs:attribute name="backupGlobals" type="xs:boolean" default="true"/>
-    <xs:attribute name="backupStaticAttributes" type="xs:boolean" default="false"/>
-    <xs:attribute name="bootstrap" type="xs:anyURI"/>
-    <xs:attribute name="cacheTokens" type="xs:boolean"/>
-    <xs:attribute name="colors" type="xs:boolean" default="false"/>
-    <xs:attribute name="columns" type="xs:integer" default="80"/>
-    <xs:attribute name="convertErrorsToExceptions" type="xs:boolean" default="true"/>
-    <xs:attribute name="convertNoticesToExceptions" type="xs:boolean" default="true"/>
-    <xs:attribute name="convertWarningsToExceptions" type="xs:boolean" default="true"/>
-    <xs:attribute name="forceCoversAnnotation" type="xs:boolean" default="false"/>
-    <xs:attribute name="mapTestClassNameToCoveredClassName" type="xs:boolean" default="false"/>
-    <xs:attribute name="printerClass" type="xs:string" default="PHPUnit_TextUI_ResultPrinter"/>
-    <xs:attribute name="printerFile" type="xs:anyURI"/>
-    <xs:attribute name="processIsolation" type="xs:boolean" default="false"/>
-    <xs:attribute name="stopOnError" type="xs:boolean" default="false"/>
-    <xs:attribute name="stopOnFailure" type="xs:boolean" default="false"/>
-    <xs:attribute name="stopOnIncomplete" type="xs:boolean" default="false"/>
-    <xs:attribute name="stopOnRisky" type="xs:boolean" default="false"/>
-    <xs:attribute name="stopOnSkipped" type="xs:boolean" default="false"/>
-    <xs:attribute name="beStrictAboutTestsThatDoNotTestAnything" type="xs:boolean" default="false"/>
-    <xs:attribute name="beStrictAboutOutputDuringTests" type="xs:boolean" default="false"/>
-    <xs:attribute name="beStrictAboutTestSize" type="xs:boolean" default="false"/>
-    <xs:attribute name="beStrictAboutTodoAnnotatedTests" type="xs:boolean" default="false"/>
-    <xs:attribute name="beStrictAboutChangesToGlobalState" type="xs:boolean" default="false"/>
-    <xs:attribute name="checkForUnintentionallyCoveredCode" type="xs:boolean" default="false"/>
-    <xs:attribute name="strict" type="xs:boolean" default="false"/>
-    <xs:attribute name="testSuiteLoaderClass" type="xs:string" default="PHPUnit_Runner_StandardTestSuiteLoader"/>
-    <xs:attribute name="testSuiteLoaderFile" type="xs:anyURI"/>
-    <xs:attribute name="timeoutForSmallTests" type="xs:integer" default="1"/>
-    <xs:attribute name="timeoutForMediumTests" type="xs:integer" default="10"/>
-    <xs:attribute name="timeoutForLargeTests" type="xs:integer" default="60"/>
-    <xs:attribute name="verbose" type="xs:boolean" default="false"/>
-    <xs:attribute name="stderr" type="xs:boolean" default="false"/>
-  </xs:attributeGroup>
-  <xs:group name="configGroup">
-    <xs:all>
-      <xs:element ref="testSuiteFacet" minOccurs="0"/>
-      <xs:element name="groups" type="groupsType" minOccurs="0"/>
-      <xs:element name="filter" type="filtersType" minOccurs="0"/>
-      <xs:element name="logging" type="loggersType" minOccurs="0"/>
-      <xs:element name="listeners" type="listenersType" minOccurs="0"/>
-      <xs:element name="php" type="phpType" minOccurs="0"/>
-      <xs:element name="selenium" type="seleniumType" minOccurs="0"/>
-    </xs:all>
-  </xs:group>
-  <xs:complexType name="seleniumType">
-    <xs:sequence>
-      <xs:element name="browser" type="browserType"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="browserType">
-    <xs:attribute name="name" type="xs:string"/>
-    <xs:attribute name="browser" type="xs:string"/>
-    <xs:attribute name="host" type="xs:anyURI"/>
-    <xs:attribute name="port" type="xs:nonNegativeInteger"/>
-    <xs:attribute name="timeout" type="xs:nonNegativeInteger"/>
-  </xs:complexType>
-  <xs:element name="testSuiteFacet" abstract="true"/>
-  <xs:element name="testsuite" type="testSuiteType" substitutionGroup="testSuiteFacet"/>
-  <xs:element name="testsuites" type="testSuitesType" substitutionGroup="testSuiteFacet"/>
-  <xs:complexType name="testSuitesType">
-    <xs:sequence>
-      <xs:element name="testsuite" type="testSuiteType" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="testSuiteType">
-    <xs:sequence>
-      <xs:group ref="pathGroup"/>
-      <xs:element name="exclude" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute name="name" type="xs:string" use="required"/>
-  </xs:complexType>
-</xs:schema>
diff --git a/core/vendor/phpunit/phpunit/src/Exception.php b/core/vendor/phpunit/phpunit/src/Exception.php
deleted file mode 100644
index 6ec587e..0000000
--- a/core/vendor/phpunit/phpunit/src/Exception.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Marker interface for PHPUnit exceptions.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 4.0.0
- */
-interface PHPUnit_Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php b/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php
deleted file mode 100644
index 7b91e73..0000000
--- a/core/vendor/phpunit/phpunit/src/Extensions/GroupTestSuite.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * We have a TestSuite object A.
- * In TestSuite object A we have Tests tagged with @group.
- * We want a TestSuite object B that contains TestSuite objects C, D, ...
- * for the Tests tagged with @group C, @group D, ...
- * Running the Tests from TestSuite object B results in Tests tagged with both
- * @group C and @group D in TestSuite object A to be run twice .
- *
- * <code>
- * $suite = new PHPUnit_Extensions_GroupTestSuite($A, array('C', 'D'));
- * </code>
- *
- * @package    PHPUnit
- * @subpackage Extensions
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Extensions_GroupTestSuite extends PHPUnit_Framework_TestSuite
-{
-    public function __construct(PHPUnit_Framework_TestSuite $suite, array $groups)
-    {
-        $groupSuites = array();
-        $name        = $suite->getName();
-
-        foreach ($groups as $group) {
-            $groupSuites[$group] = new PHPUnit_Framework_TestSuite($name . ' - ' . $group);
-            $this->addTest($groupSuites[$group]);
-        }
-
-        $tests = new RecursiveIteratorIterator(
-            new PHPUnit_Util_TestSuiteIterator($suite),
-            RecursiveIteratorIterator::LEAVES_ONLY
-        );
-
-        foreach ($tests as $test) {
-            if ($test instanceof PHPUnit_Framework_TestCase) {
-                $testGroups = PHPUnit_Util_Test::getGroups(
-                    get_class($test),
-                    $test->getName(false)
-                );
-
-                foreach ($groups as $group) {
-                    foreach ($testGroups as $testGroup) {
-                        if ($group == $testGroup) {
-                            $groupSuites[$group]->addTest($test);
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/PhptTestCase.php b/core/vendor/phpunit/phpunit/src/Extensions/PhptTestCase.php
deleted file mode 100644
index 7f07449..0000000
--- a/core/vendor/phpunit/phpunit/src/Extensions/PhptTestCase.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Runner for PHPT test cases.
- *
- * @package    PHPUnit
- * @subpackage Extensions_PhptTestCase
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.4
- */
-class PHPUnit_Extensions_PhptTestCase implements PHPUnit_Framework_Test, PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * @var string
-     */
-    private $filename;
-
-    /**
-     * @var array
-     */
-    private $settings = array(
-        'allow_url_fopen=1',
-        'auto_append_file=',
-        'auto_prepend_file=',
-        'disable_functions=',
-        'display_errors=1',
-        'docref_root=',
-        'docref_ext=.html',
-        'error_append_string=',
-        'error_prepend_string=',
-        'error_reporting=-1',
-        'html_errors=0',
-        'log_errors=0',
-        'magic_quotes_runtime=0',
-        'output_handler=',
-        'open_basedir=',
-        'output_buffering=Off',
-        'report_memleaks=0',
-        'report_zend_debug=0',
-        'safe_mode=0',
-        'track_errors=1',
-        'xdebug.default_enable=0'
-    );
-
-    /**
-     * Constructs a test case with the given filename.
-     *
-     * @param  string                      $filename
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($filename)
-    {
-        if (!is_string($filename)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_file($filename)) {
-            throw new PHPUnit_Framework_Exception(
-                sprintf(
-                    'File "%s" does not exist.',
-                    $filename
-                )
-            );
-        }
-
-        $this->filename = $filename;
-    }
-
-    /**
-     * Counts the number of test cases executed by run(TestResult result).
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return 1;
-    }
-
-    /**
-     * Runs a test and collects its result in a TestResult instance.
-     *
-     * @param  PHPUnit_Framework_TestResult $result
-     * @return PHPUnit_Framework_TestResult
-     */
-    public function run(PHPUnit_Framework_TestResult $result = null)
-    {
-        $sections = $this->parse();
-        $code     = $this->render($sections['FILE']);
-
-        if ($result === null) {
-            $result = new PHPUnit_Framework_TestResult;
-        }
-
-        $php  = PHPUnit_Util_PHP::factory();
-        $skip = false;
-        $time = 0;
-
-        $result->startTest($this);
-
-        if (isset($sections['SKIPIF'])) {
-            $jobResult = $php->runJob($sections['SKIPIF'], $this->settings);
-
-            if (!strncasecmp('skip', ltrim($jobResult['stdout']), 4)) {
-                if (preg_match('/^\s*skip\s*(.+)\s*/i', $jobResult['stdout'], $message)) {
-                    $message = substr($message[1], 2);
-                } else {
-                    $message = '';
-                }
-
-                $result->addFailure($this, new PHPUnit_Framework_SkippedTestError($message), 0);
-
-                $skip = true;
-            }
-        }
-
-        if (!$skip) {
-            PHP_Timer::start();
-            $jobResult = $php->runJob($code, $this->settings);
-            $time = PHP_Timer::stop();
-
-            if (isset($sections['EXPECT'])) {
-                $assertion = 'assertEquals';
-                $expected  = $sections['EXPECT'];
-            } else {
-                $assertion = 'assertStringMatchesFormat';
-                $expected  = $sections['EXPECTF'];
-            }
-
-            $output = preg_replace('/\r\n/', "\n", trim($jobResult['stdout']));
-            $expected = preg_replace('/\r\n/', "\n", trim($expected));
-
-            try {
-                PHPUnit_Framework_Assert::$assertion($expected, $output);
-            } catch (PHPUnit_Framework_AssertionFailedError $e) {
-                $result->addFailure($this, $e, $time);
-            } catch (Exception $e) {
-                $result->addError($this, $e, $time);
-            }
-        }
-
-        $result->endTest($this, $time);
-
-        return $result;
-    }
-
-    /**
-     * Returns the name of the test case.
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->toString();
-    }
-
-    /**
-     * Returns a string representation of the test case.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->filename;
-    }
-
-    /**
-     * @return array
-     * @throws PHPUnit_Framework_Exception
-     */
-    private function parse()
-    {
-        $sections = array();
-        $section  = '';
-
-        foreach (file($this->filename) as $line) {
-            if (preg_match('/^--([_A-Z]+)--/', $line, $result)) {
-                $section            = $result[1];
-                $sections[$section] = '';
-                continue;
-            } elseif (empty($section)) {
-                throw new PHPUnit_Framework_Exception('Invalid PHPT file');
-            }
-
-            $sections[$section] .= $line;
-        }
-
-        if (!isset($sections['FILE']) ||
-            (!isset($sections['EXPECT']) && !isset($sections['EXPECTF']))) {
-            throw new PHPUnit_Framework_Exception('Invalid PHPT file');
-        }
-
-        return $sections;
-    }
-
-    /**
-     * @param  string $code
-     * @return string
-     */
-    private function render($code)
-    {
-        return str_replace(
-            array(
-            '__DIR__',
-            '__FILE__'
-            ),
-            array(
-            "'" . dirname($this->filename) . "'",
-            "'" . $this->filename . "'"
-            ),
-            $code
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/PhptTestSuite.php b/core/vendor/phpunit/phpunit/src/Extensions/PhptTestSuite.php
deleted file mode 100644
index fc5aed6..0000000
--- a/core/vendor/phpunit/phpunit/src/Extensions/PhptTestSuite.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Suite for .phpt test cases.
- *
- * @package    PHPUnit
- * @subpackage Extensions_PhptTestCase
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.4
- */
-class PHPUnit_Extensions_PhptTestSuite extends PHPUnit_Framework_TestSuite
-{
-    /**
-     * Constructs a new TestSuite for .phpt test cases.
-     *
-     * @param  string                      $directory
-     * @param  array                       $options   Array with ini settings for the php instance run,
-     *                                                key being the name if the setting, value the ini value.
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($directory, array $options = array())
-    {
-        if (is_string($directory) && is_dir($directory)) {
-            $this->setName($directory);
-
-            $facade = new File_Iterator_Facade;
-            $files  = $facade->getFilesAsArray($directory, '.phpt');
-
-            foreach ($files as $file) {
-                $this->addTestFile($file, $options);
-            }
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'directory name');
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php b/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php
deleted file mode 100644
index d2dd446..0000000
--- a/core/vendor/phpunit/phpunit/src/Extensions/RepeatedTest.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A Decorator that runs a test repeatedly.
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Extensions_RepeatedTest extends PHPUnit_Extensions_TestDecorator
-{
-    /**
-     * @var mixed
-     */
-    protected $filter = false;
-
-    /**
-     * @var array
-     */
-    protected $groups = array();
-
-    /**
-     * @var array
-     */
-    protected $excludeGroups = array();
-
-    /**
-     * @var boolean
-     */
-    protected $processIsolation = false;
-
-    /**
-     * @var integer
-     */
-    protected $timesRepeat = 1;
-
-    /**
-     * @param  PHPUnit_Framework_Test      $test
-     * @param  integer                     $timesRepeat
-     * @param  boolean                     $processIsolation
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct(PHPUnit_Framework_Test $test, $timesRepeat = 1, $processIsolation = false)
-    {
-        parent::__construct($test);
-
-        if (is_integer($timesRepeat) &&
-            $timesRepeat >= 0) {
-            $this->timesRepeat = $timesRepeat;
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'positive integer'
-            );
-        }
-
-        $this->processIsolation = $processIsolation;
-    }
-
-    /**
-     * Counts the number of test cases that
-     * will be run by this test.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return $this->timesRepeat * count($this->test);
-    }
-
-    /**
-     * Runs the decorated test and collects the
-     * result in a TestResult.
-     *
-     * @param  PHPUnit_Framework_TestResult $result
-     * @return PHPUnit_Framework_TestResult
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function run(PHPUnit_Framework_TestResult $result = null)
-    {
-        if ($result === null) {
-            $result = $this->createResult();
-        }
-
-        //@codingStandardsIgnoreStart
-        for ($i = 0; $i < $this->timesRepeat && !$result->shouldStop(); $i++) {
-            //@codingStandardsIgnoreEnd
-            if ($this->test instanceof PHPUnit_Framework_TestSuite) {
-                $this->test->setRunTestInSeparateProcess($this->processIsolation);
-            }
-            $this->test->run($result);
-        }
-
-        return $result;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/TestDecorator.php b/core/vendor/phpunit/phpunit/src/Extensions/TestDecorator.php
deleted file mode 100644
index e30b2a2..0000000
--- a/core/vendor/phpunit/phpunit/src/Extensions/TestDecorator.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A Decorator for Tests.
- *
- * Use TestDecorator as the base class for defining new
- * test decorators. Test decorator subclasses can be introduced
- * to add behaviour before or after a test is run.
- *
- * @package    PHPUnit
- * @subpackage Extensions
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Extensions_TestDecorator extends PHPUnit_Framework_Assert implements PHPUnit_Framework_Test, PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * The Test to be decorated.
-     *
-     * @var    object
-     */
-    protected $test = null;
-
-    /**
-     * Constructor.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function __construct(PHPUnit_Framework_Test $test)
-    {
-        $this->test = $test;
-    }
-
-    /**
-     * Returns a string representation of the test.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->test->toString();
-    }
-
-    /**
-     * Runs the test and collects the
-     * result in a TestResult.
-     *
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    public function basicRun(PHPUnit_Framework_TestResult $result)
-    {
-        $this->test->run($result);
-    }
-
-    /**
-     * Counts the number of test cases that
-     * will be run by this test.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return count($this->test);
-    }
-
-    /**
-     * Creates a default TestResult object.
-     *
-     * @return PHPUnit_Framework_TestResult
-     */
-    protected function createResult()
-    {
-        return new PHPUnit_Framework_TestResult;
-    }
-
-    /**
-     * Returns the test to be run.
-     *
-     * @return PHPUnit_Framework_Test
-     */
-    public function getTest()
-    {
-        return $this->test;
-    }
-
-    /**
-     * Runs the decorated test and collects the
-     * result in a TestResult.
-     *
-     * @param  PHPUnit_Framework_TestResult $result
-     * @return PHPUnit_Framework_TestResult
-     */
-    public function run(PHPUnit_Framework_TestResult $result = null)
-    {
-        if ($result === null) {
-            $result = $this->createResult();
-        }
-
-        $this->basicRun($result);
-
-        return $result;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Extensions/TicketListener.php b/core/vendor/phpunit/phpunit/src/Extensions/TicketListener.php
deleted file mode 100644
index 7f6f461..0000000
--- a/core/vendor/phpunit/phpunit/src/Extensions/TicketListener.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Base class for test listeners that interact with an issue tracker.
- *
- * @package    PHPUnit
- * @subpackage Extensions_TicketListener
- * @author     Sean Coates <sean@caedmon.net>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-abstract class PHPUnit_Extensions_TicketListener implements PHPUnit_Framework_TestListener
-{
-    /**
-     * @var array
-     */
-    protected $ticketCounts = array();
-
-    /**
-     * @var boolean
-     */
-    protected $ran = false;
-
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    /**
-     * A test suite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    /**
-     * A test suite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        if (!$test instanceof PHPUnit_Framework_Warning) {
-            if ($this->ran) {
-                return;
-            }
-
-            $name    = $test->getName(false);
-            $tickets = PHPUnit_Util_Test::getTickets(get_class($test), $name);
-
-            foreach ($tickets as $ticket) {
-                $this->ticketCounts[$ticket][$name] = 1;
-            }
-
-            $this->ran = true;
-        }
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        if (!$test instanceof PHPUnit_Framework_Warning) {
-            if ($test->getStatus() == PHPUnit_Runner_BaseTestRunner::STATUS_PASSED) {
-                $ifStatus   = array('assigned', 'new', 'reopened');
-                $newStatus  = 'closed';
-                $message    = 'Automatically closed by PHPUnit (test passed).';
-                $resolution = 'fixed';
-                $cumulative = true;
-            } elseif ($test->getStatus() == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE) {
-                $ifStatus   = array('closed');
-                $newStatus  = 'reopened';
-                $message    = 'Automatically reopened by PHPUnit (test failed).';
-                $resolution = '';
-                $cumulative = false;
-            } else {
-                return;
-            }
-
-            $name    = $test->getName(false);
-            $tickets = PHPUnit_Util_Test::getTickets(get_class($test), $name);
-
-            foreach ($tickets as $ticket) {
-                // Remove this test from the totals (if it passed).
-                if ($test->getStatus() == PHPUnit_Runner_BaseTestRunner::STATUS_PASSED) {
-                    unset($this->ticketCounts[$ticket][$name]);
-                }
-
-                // Only close tickets if ALL referenced cases pass
-                // but reopen tickets if a single test fails.
-                if ($cumulative) {
-                    // Determine number of to-pass tests:
-                    if (count($this->ticketCounts[$ticket]) > 0) {
-                        // There exist remaining test cases with this reference.
-                        $adjustTicket = false;
-                    } else {
-                        // No remaining tickets, go ahead and adjust.
-                        $adjustTicket = true;
-                    }
-                } else {
-                    $adjustTicket = true;
-                }
-
-                $ticketInfo = $this->getTicketInfo($ticket);
-
-                if ($adjustTicket && in_array($ticketInfo['status'], $ifStatus)) {
-                    $this->updateTicket($ticket, $newStatus, $message, $resolution);
-                }
-            }
-        }
-    }
-
-    abstract protected function getTicketInfo($ticketId = null);
-    abstract protected function updateTicket($ticketId, $newStatus, $message, $resolution);
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Assert.php b/core/vendor/phpunit/phpunit/src/Framework/Assert.php
deleted file mode 100644
index 54cdd53..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Assert.php
+++ /dev/null
@@ -1,3054 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A set of assert methods.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-abstract class PHPUnit_Framework_Assert
-{
-    /**
-     * @var integer
-     */
-    private static $count = 0;
-
-    /**
-     * Asserts that an array has a specified key.
-     *
-     * @param mixed             $key
-     * @param array|ArrayAccess $array
-     * @param string            $message
-     * @since Method available since Release 3.0.0
-     */
-    public static function assertArrayHasKey($key, $array, $message = '')
-    {
-        if (!(is_integer($key) || is_string($key))) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'integer or string'
-            );
-        }
-
-        if (!(is_array($array) || $array instanceof ArrayAccess)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or ArrayAccess'
-            );
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_ArrayHasKey($key);
-
-        self::assertThat($array, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an array has a specified subset.
-     *
-     * @param array|ArrayAccess  $subset
-     * @param array|ArrayAccess  $array
-     * @param boolean            $strict  Check for object identity
-     * @param string             $message
-     * @since Method available since Release 4.4.0
-     */
-    public static function assertArraySubset($subset, $array, $strict = false, $message = '')
-    {
-        if (!is_array($subset)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'array or ArrayAccess'
-            );
-        }
-
-        if (!is_array($array)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or ArrayAccess'
-            );
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_ArraySubset($subset, $strict);
-
-        self::assertThat($array, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an array does not have a specified key.
-     *
-     * @param mixed             $key
-     * @param array|ArrayAccess $array
-     * @param string            $message
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertArrayNotHasKey($key, $array, $message = '')
-    {
-        if (!(is_integer($key) || is_string($key))) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'integer or string'
-            );
-        }
-
-        if (!(is_array($array) || $array instanceof ArrayAccess)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or ArrayAccess'
-            );
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_ArrayHasKey($key)
-        );
-
-        self::assertThat($array, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a haystack contains a needle.
-     *
-     * @param mixed   $needle
-     * @param mixed   $haystack
-     * @param string  $message
-     * @param boolean $ignoreCase
-     * @param boolean $checkForObjectIdentity
-     * @param boolean $checkForNonObjectIdentity
-     * @since  Method available since Release 2.1.0
-     */
-    public static function assertContains($needle, $haystack, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-    {
-        if (is_array($haystack) ||
-            is_object($haystack) && $haystack instanceof Traversable) {
-            $constraint = new PHPUnit_Framework_Constraint_TraversableContains(
-                $needle,
-                $checkForObjectIdentity,
-                $checkForNonObjectIdentity
-            );
-        } elseif (is_string($haystack)) {
-            $constraint = new PHPUnit_Framework_Constraint_StringContains(
-                $needle,
-                $ignoreCase
-            );
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array, traversable or string'
-            );
-        }
-
-        self::assertThat($haystack, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a haystack that is stored in a static attribute of a class
-     * or an attribute of an object contains a needle.
-     *
-     * @param mixed   $needle
-     * @param string  $haystackAttributeName
-     * @param mixed   $haystackClassOrObject
-     * @param string  $message
-     * @param boolean $ignoreCase
-     * @param boolean $checkForObjectIdentity
-     * @param boolean $checkForNonObjectIdentity
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertAttributeContains($needle, $haystackAttributeName, $haystackClassOrObject, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-    {
-        self::assertContains(
-            $needle,
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $message,
-            $ignoreCase,
-            $checkForObjectIdentity,
-            $checkForNonObjectIdentity
-        );
-    }
-
-    /**
-     * Asserts that a haystack does not contain a needle.
-     *
-     * @param mixed   $needle
-     * @param mixed   $haystack
-     * @param string  $message
-     * @param boolean $ignoreCase
-     * @param boolean $checkForObjectIdentity
-     * @param boolean $checkForNonObjectIdentity
-     * @since  Method available since Release 2.1.0
-     */
-    public static function assertNotContains($needle, $haystack, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-    {
-        if (is_array($haystack) ||
-            is_object($haystack) && $haystack instanceof Traversable) {
-            $constraint = new PHPUnit_Framework_Constraint_Not(
-                new PHPUnit_Framework_Constraint_TraversableContains(
-                    $needle,
-                    $checkForObjectIdentity,
-                    $checkForNonObjectIdentity
-                )
-            );
-        } elseif (is_string($haystack)) {
-            $constraint = new PHPUnit_Framework_Constraint_Not(
-                new PHPUnit_Framework_Constraint_StringContains(
-                    $needle,
-                    $ignoreCase
-                )
-            );
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array, traversable or string'
-            );
-        }
-
-        self::assertThat($haystack, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a haystack that is stored in a static attribute of a class
-     * or an attribute of an object does not contain a needle.
-     *
-     * @param mixed   $needle
-     * @param string  $haystackAttributeName
-     * @param mixed   $haystackClassOrObject
-     * @param string  $message
-     * @param boolean $ignoreCase
-     * @param boolean $checkForObjectIdentity
-     * @param boolean $checkForNonObjectIdentity
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertAttributeNotContains($needle, $haystackAttributeName, $haystackClassOrObject, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-    {
-        self::assertNotContains(
-            $needle,
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $message,
-            $ignoreCase,
-            $checkForObjectIdentity,
-            $checkForNonObjectIdentity
-        );
-    }
-
-    /**
-     * Asserts that a haystack contains only values of a given type.
-     *
-     * @param string  $type
-     * @param mixed   $haystack
-     * @param boolean $isNativeType
-     * @param string  $message
-     * @since  Method available since Release 3.1.4
-     */
-    public static function assertContainsOnly($type, $haystack, $isNativeType = null, $message = '')
-    {
-        if (!(is_array($haystack) ||
-            is_object($haystack) && $haystack instanceof Traversable)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or traversable'
-            );
-        }
-
-        if ($isNativeType == null) {
-            $isNativeType = PHPUnit_Util_Type::isType($type);
-        }
-
-        self::assertThat(
-            $haystack,
-            new PHPUnit_Framework_Constraint_TraversableContainsOnly(
-                $type,
-                $isNativeType
-            ),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a haystack contains only instances of a given classname
-     *
-     * @param string            $classname
-     * @param array|Traversable $haystack
-     * @param string            $message
-     */
-    public static function assertContainsOnlyInstancesOf($classname, $haystack, $message = '')
-    {
-        if (!(is_array($haystack) ||
-            is_object($haystack) && $haystack instanceof Traversable)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or traversable'
-            );
-        }
-
-        self::assertThat(
-            $haystack,
-            new PHPUnit_Framework_Constraint_TraversableContainsOnly(
-                $classname,
-                false
-            ),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a haystack that is stored in a static attribute of a class
-     * or an attribute of an object contains only values of a given type.
-     *
-     * @param string  $type
-     * @param string  $haystackAttributeName
-     * @param mixed   $haystackClassOrObject
-     * @param boolean $isNativeType
-     * @param string  $message
-     * @since  Method available since Release 3.1.4
-     */
-    public static function assertAttributeContainsOnly($type, $haystackAttributeName, $haystackClassOrObject, $isNativeType = null, $message = '')
-    {
-        self::assertContainsOnly(
-            $type,
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $isNativeType,
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a haystack does not contain only values of a given type.
-     *
-     * @param string  $type
-     * @param mixed   $haystack
-     * @param boolean $isNativeType
-     * @param string  $message
-     * @since  Method available since Release 3.1.4
-     */
-    public static function assertNotContainsOnly($type, $haystack, $isNativeType = null, $message = '')
-    {
-        if (!(is_array($haystack) ||
-            is_object($haystack) && $haystack instanceof Traversable)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                2,
-                'array or traversable'
-            );
-        }
-
-        if ($isNativeType == null) {
-            $isNativeType = PHPUnit_Util_Type::isType($type);
-        }
-
-        self::assertThat(
-            $haystack,
-            new PHPUnit_Framework_Constraint_Not(
-                new PHPUnit_Framework_Constraint_TraversableContainsOnly(
-                    $type,
-                    $isNativeType
-                )
-            ),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a haystack that is stored in a static attribute of a class
-     * or an attribute of an object does not contain only values of a given
-     * type.
-     *
-     * @param string  $type
-     * @param string  $haystackAttributeName
-     * @param mixed   $haystackClassOrObject
-     * @param boolean $isNativeType
-     * @param string  $message
-     * @since  Method available since Release 3.1.4
-     */
-    public static function assertAttributeNotContainsOnly($type, $haystackAttributeName, $haystackClassOrObject, $isNativeType = null, $message = '')
-    {
-        self::assertNotContainsOnly(
-            $type,
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $isNativeType,
-            $message
-        );
-    }
-
-    /**
-     * Asserts the number of elements of an array, Countable or Traversable.
-     *
-     * @param integer $expectedCount
-     * @param mixed   $haystack
-     * @param string  $message
-     */
-    public static function assertCount($expectedCount, $haystack, $message = '')
-    {
-        if (!is_int($expectedCount)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
-        }
-
-        if (!$haystack instanceof Countable &&
-            !$haystack instanceof Traversable &&
-            !is_array($haystack)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'countable or traversable');
-        }
-
-        self::assertThat(
-            $haystack,
-            new PHPUnit_Framework_Constraint_Count($expectedCount),
-            $message
-        );
-    }
-
-    /**
-     * Asserts the number of elements of an array, Countable or Traversable
-     * that is stored in an attribute.
-     *
-     * @param integer $expectedCount
-     * @param string  $haystackAttributeName
-     * @param mixed   $haystackClassOrObject
-     * @param string  $message
-     * @since Method available since Release 3.6.0
-     */
-    public static function assertAttributeCount($expectedCount, $haystackAttributeName, $haystackClassOrObject, $message = '')
-    {
-        self::assertCount(
-            $expectedCount,
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts the number of elements of an array, Countable or Traversable.
-     *
-     * @param integer $expectedCount
-     * @param mixed   $haystack
-     * @param string  $message
-     */
-    public static function assertNotCount($expectedCount, $haystack, $message = '')
-    {
-        if (!is_int($expectedCount)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
-        }
-
-        if (!$haystack instanceof Countable &&
-            !$haystack instanceof Traversable &&
-            !is_array($haystack)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'countable or traversable');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_Count($expectedCount)
-        );
-
-        self::assertThat($haystack, $constraint, $message);
-    }
-
-    /**
-     * Asserts the number of elements of an array, Countable or Traversable
-     * that is stored in an attribute.
-     *
-     * @param integer $expectedCount
-     * @param string  $haystackAttributeName
-     * @param mixed   $haystackClassOrObject
-     * @param string  $message
-     * @since Method available since Release 3.6.0
-     */
-    public static function assertAttributeNotCount($expectedCount, $haystackAttributeName, $haystackClassOrObject, $message = '')
-    {
-        self::assertNotCount(
-            $expectedCount,
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that two variables are equal.
-     *
-     * @param mixed   $expected
-     * @param mixed   $actual
-     * @param string  $message
-     * @param float   $delta
-     * @param integer $maxDepth
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     */
-    public static function assertEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        $constraint = new PHPUnit_Framework_Constraint_IsEqual(
-            $expected,
-            $delta,
-            $maxDepth,
-            $canonicalize,
-            $ignoreCase
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a variable is equal to an attribute of an object.
-     *
-     * @param mixed   $expected
-     * @param string  $actualAttributeName
-     * @param string  $actualClassOrObject
-     * @param string  $message
-     * @param float   $delta
-     * @param integer $maxDepth
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     */
-    public static function assertAttributeEquals($expected, $actualAttributeName, $actualClassOrObject, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        self::assertEquals(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message,
-            $delta,
-            $maxDepth,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Asserts that two variables are not equal.
-     *
-     * @param mixed   $expected
-     * @param mixed   $actual
-     * @param string  $message
-     * @param float   $delta
-     * @param integer $maxDepth
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     * @since  Method available since Release 2.3.0
-     */
-    public static function assertNotEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_IsEqual(
-                $expected,
-                $delta,
-                $maxDepth,
-                $canonicalize,
-                $ignoreCase
-            )
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a variable is not equal to an attribute of an object.
-     *
-     * @param mixed   $expected
-     * @param string  $actualAttributeName
-     * @param string  $actualClassOrObject
-     * @param string  $message
-     * @param float   $delta
-     * @param integer $maxDepth
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     */
-    public static function assertAttributeNotEquals($expected, $actualAttributeName, $actualClassOrObject, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        self::assertNotEquals(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message,
-            $delta,
-            $maxDepth,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Asserts that a variable is empty.
-     *
-     * @param  mixed                                  $actual
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function assertEmpty($actual, $message = '')
-    {
-        self::assertThat($actual, self::isEmpty(), $message);
-    }
-
-    /**
-     * Asserts that a static attribute of a class or an attribute of an object
-     * is empty.
-     *
-     * @param string $haystackAttributeName
-     * @param mixed  $haystackClassOrObject
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertAttributeEmpty($haystackAttributeName, $haystackClassOrObject, $message = '')
-    {
-        self::assertEmpty(
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a variable is not empty.
-     *
-     * @param  mixed                                  $actual
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function assertNotEmpty($actual, $message = '')
-    {
-        self::assertThat($actual, self::logicalNot(self::isEmpty()), $message);
-    }
-
-    /**
-     * Asserts that a static attribute of a class or an attribute of an object
-     * is not empty.
-     *
-     * @param string $haystackAttributeName
-     * @param mixed  $haystackClassOrObject
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertAttributeNotEmpty($haystackAttributeName, $haystackClassOrObject, $message = '')
-    {
-        self::assertNotEmpty(
-            self::readAttribute($haystackClassOrObject, $haystackAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a value is greater than another value.
-     *
-     * @param mixed  $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertGreaterThan($expected, $actual, $message = '')
-    {
-        self::assertThat($actual, self::greaterThan($expected), $message);
-    }
-
-    /**
-     * Asserts that an attribute is greater than another value.
-     *
-     * @param mixed  $expected
-     * @param string $actualAttributeName
-     * @param string $actualClassOrObject
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertAttributeGreaterThan($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-    {
-        self::assertGreaterThan(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a value is greater than or equal to another value.
-     *
-     * @param mixed  $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertGreaterThanOrEqual($expected, $actual, $message = '')
-    {
-        self::assertThat(
-            $actual,
-            self::greaterThanOrEqual($expected),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that an attribute is greater than or equal to another value.
-     *
-     * @param mixed  $expected
-     * @param string $actualAttributeName
-     * @param string $actualClassOrObject
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertAttributeGreaterThanOrEqual($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-    {
-        self::assertGreaterThanOrEqual(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a value is smaller than another value.
-     *
-     * @param mixed  $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertLessThan($expected, $actual, $message = '')
-    {
-        self::assertThat($actual, self::lessThan($expected), $message);
-    }
-
-    /**
-     * Asserts that an attribute is smaller than another value.
-     *
-     * @param mixed  $expected
-     * @param string $actualAttributeName
-     * @param string $actualClassOrObject
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertAttributeLessThan($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-    {
-        self::assertLessThan(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a value is smaller than or equal to another value.
-     *
-     * @param mixed  $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertLessThanOrEqual($expected, $actual, $message = '')
-    {
-        self::assertThat($actual, self::lessThanOrEqual($expected), $message);
-    }
-
-    /**
-     * Asserts that an attribute is smaller than or equal to another value.
-     *
-     * @param mixed  $expected
-     * @param string $actualAttributeName
-     * @param string $actualClassOrObject
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertAttributeLessThanOrEqual($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-    {
-        self::assertLessThanOrEqual(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that the contents of one file is equal to the contents of another
-     * file.
-     *
-     * @param string  $expected
-     * @param string  $actual
-     * @param string  $message
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     * @since  Method available since Release 3.2.14
-     */
-    public static function assertFileEquals($expected, $actual, $message = '', $canonicalize = false, $ignoreCase = false)
-    {
-        self::assertFileExists($expected, $message);
-        self::assertFileExists($actual, $message);
-
-        self::assertEquals(
-            file_get_contents($expected),
-            file_get_contents($actual),
-            $message,
-            0,
-            10,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Asserts that the contents of one file is not equal to the contents of
-     * another file.
-     *
-     * @param string  $expected
-     * @param string  $actual
-     * @param string  $message
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     * @since  Method available since Release 3.2.14
-     */
-    public static function assertFileNotEquals($expected, $actual, $message = '', $canonicalize = false, $ignoreCase = false)
-    {
-        self::assertFileExists($expected, $message);
-        self::assertFileExists($actual, $message);
-
-        self::assertNotEquals(
-            file_get_contents($expected),
-            file_get_contents($actual),
-            $message,
-            0,
-            10,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Asserts that the contents of a string is equal
-     * to the contents of a file.
-     *
-     * @param string  $expectedFile
-     * @param string  $actualString
-     * @param string  $message
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     * @since  Method available since Release 3.3.0
-     */
-    public static function assertStringEqualsFile($expectedFile, $actualString, $message = '', $canonicalize = false, $ignoreCase = false)
-    {
-        self::assertFileExists($expectedFile, $message);
-
-        self::assertEquals(
-            file_get_contents($expectedFile),
-            $actualString,
-            $message,
-            0,
-            10,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Asserts that the contents of a string is not equal
-     * to the contents of a file.
-     *
-     * @param string  $expectedFile
-     * @param string  $actualString
-     * @param string  $message
-     * @param boolean $canonicalize
-     * @param boolean $ignoreCase
-     * @since  Method available since Release 3.3.0
-     */
-    public static function assertStringNotEqualsFile($expectedFile, $actualString, $message = '', $canonicalize = false, $ignoreCase = false)
-    {
-        self::assertFileExists($expectedFile, $message);
-
-        self::assertNotEquals(
-            file_get_contents($expectedFile),
-            $actualString,
-            $message,
-            0,
-            10,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Asserts that a file exists.
-     *
-     * @param string $filename
-     * @param string $message
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertFileExists($filename, $message = '')
-    {
-        if (!is_string($filename)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_FileExists;
-
-        self::assertThat($filename, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a file does not exist.
-     *
-     * @param string $filename
-     * @param string $message
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertFileNotExists($filename, $message = '')
-    {
-        if (!is_string($filename)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_FileExists
-        );
-
-        self::assertThat($filename, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a condition is true.
-     *
-     * @param  boolean                                $condition
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function assertTrue($condition, $message = '')
-    {
-        self::assertThat($condition, self::isTrue(), $message);
-    }
-
-    /**
-     * Asserts that a condition is not true.
-     *
-     * @param  boolean                                $condition
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function assertNotTrue($condition, $message = '')
-    {
-        self::assertThat($condition, self::logicalNot(self::isTrue()), $message);
-    }
-
-    /**
-     * Asserts that a condition is false.
-     *
-     * @param  boolean                                $condition
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function assertFalse($condition, $message = '')
-    {
-        self::assertThat($condition, self::isFalse(), $message);
-    }
-
-    /**
-     * Asserts that a condition is not false.
-     *
-     * @param  boolean                                $condition
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function assertNotFalse($condition, $message = '')
-    {
-        self::assertThat($condition, self::logicalNot(self::isFalse()), $message);
-    }
-
-    /**
-     * Asserts that a variable is not null.
-     *
-     * @param mixed  $actual
-     * @param string $message
-     */
-    public static function assertNotNull($actual, $message = '')
-    {
-        self::assertThat($actual, self::logicalNot(self::isNull()), $message);
-    }
-
-    /**
-     * Asserts that a variable is null.
-     *
-     * @param mixed  $actual
-     * @param string $message
-     */
-    public static function assertNull($actual, $message = '')
-    {
-        self::assertThat($actual, self::isNull(), $message);
-    }
-
-    /**
-     * Asserts that a class has a specified attribute.
-     *
-     * @param string $attributeName
-     * @param string $className
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertClassHasAttribute($attributeName, $className, $message = '')
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
-        }
-
-        if (!is_string($className) || !class_exists($className)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_ClassHasAttribute(
-            $attributeName
-        );
-
-        self::assertThat($className, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a class does not have a specified attribute.
-     *
-     * @param string $attributeName
-     * @param string $className
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertClassNotHasAttribute($attributeName, $className, $message = '')
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
-        }
-
-        if (!is_string($className) || !class_exists($className)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_ClassHasAttribute($attributeName)
-        );
-
-        self::assertThat($className, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a class has a specified static attribute.
-     *
-     * @param string $attributeName
-     * @param string $className
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertClassHasStaticAttribute($attributeName, $className, $message = '')
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
-        }
-
-        if (!is_string($className) || !class_exists($className)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_ClassHasStaticAttribute(
-            $attributeName
-        );
-
-        self::assertThat($className, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a class does not have a specified static attribute.
-     *
-     * @param string $attributeName
-     * @param string $className
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertClassNotHasStaticAttribute($attributeName, $className, $message = '')
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
-        }
-
-        if (!is_string($className) || !class_exists($className)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'class name', $className);
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_ClassHasStaticAttribute(
-                $attributeName
-            )
-        );
-
-        self::assertThat($className, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an object has a specified attribute.
-     *
-     * @param string $attributeName
-     * @param object $object
-     * @param string $message
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertObjectHasAttribute($attributeName, $object, $message = '')
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
-        }
-
-        if (!is_object($object)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'object');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_ObjectHasAttribute(
-            $attributeName
-        );
-
-        self::assertThat($object, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an object does not have a specified attribute.
-     *
-     * @param string $attributeName
-     * @param object $object
-     * @param string $message
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertObjectNotHasAttribute($attributeName, $object, $message = '')
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'valid attribute name');
-        }
-
-        if (!is_object($object)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'object');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_ObjectHasAttribute($attributeName)
-        );
-
-        self::assertThat($object, $constraint, $message);
-    }
-
-    /**
-     * Asserts that two variables have the same type and value.
-     * Used on objects, it asserts that two variables reference
-     * the same object.
-     *
-     * @param mixed  $expected
-     * @param mixed  $actual
-     * @param string $message
-     */
-    public static function assertSame($expected, $actual, $message = '')
-    {
-        if (is_bool($expected) && is_bool($actual)) {
-            self::assertEquals($expected, $actual, $message);
-        } else {
-            $constraint = new PHPUnit_Framework_Constraint_IsIdentical(
-                $expected
-            );
-
-            self::assertThat($actual, $constraint, $message);
-        }
-    }
-
-    /**
-     * Asserts that a variable and an attribute of an object have the same type
-     * and value.
-     *
-     * @param mixed  $expected
-     * @param string $actualAttributeName
-     * @param object $actualClassOrObject
-     * @param string $message
-     */
-    public static function assertAttributeSame($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-    {
-        self::assertSame(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that two variables do not have the same type and value.
-     * Used on objects, it asserts that two variables do not reference
-     * the same object.
-     *
-     * @param mixed  $expected
-     * @param mixed  $actual
-     * @param string $message
-     */
-    public static function assertNotSame($expected, $actual, $message = '')
-    {
-        if (is_bool($expected) && is_bool($actual)) {
-            self::assertNotEquals($expected, $actual, $message);
-        } else {
-            $constraint = new PHPUnit_Framework_Constraint_Not(
-                new PHPUnit_Framework_Constraint_IsIdentical($expected)
-            );
-
-            self::assertThat($actual, $constraint, $message);
-        }
-    }
-
-    /**
-     * Asserts that a variable and an attribute of an object do not have the
-     * same type and value.
-     *
-     * @param mixed  $expected
-     * @param string $actualAttributeName
-     * @param object $actualClassOrObject
-     * @param string $message
-     */
-    public static function assertAttributeNotSame($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-    {
-        self::assertNotSame(
-            $expected,
-            self::readAttribute($actualClassOrObject, $actualAttributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a variable is of a given type.
-     *
-     * @param string $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertInstanceOf($expected, $actual, $message = '')
-    {
-        if (!(is_string($expected) && (class_exists($expected) || interface_exists($expected)))) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'class or interface name');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_IsInstanceOf(
-            $expected
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an attribute is of a given type.
-     *
-     * @param string $expected
-     * @param string $attributeName
-     * @param mixed  $classOrObject
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertAttributeInstanceOf($expected, $attributeName, $classOrObject, $message = '')
-    {
-        self::assertInstanceOf(
-            $expected,
-            self::readAttribute($classOrObject, $attributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a variable is not of a given type.
-     *
-     * @param string $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertNotInstanceOf($expected, $actual, $message = '')
-    {
-        if (!(is_string($expected) && (class_exists($expected) || interface_exists($expected)))) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'class or interface name');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_IsInstanceOf($expected)
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an attribute is of a given type.
-     *
-     * @param string $expected
-     * @param string $attributeName
-     * @param mixed  $classOrObject
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertAttributeNotInstanceOf($expected, $attributeName, $classOrObject, $message = '')
-    {
-        self::assertNotInstanceOf(
-            $expected,
-            self::readAttribute($classOrObject, $attributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a variable is of a given type.
-     *
-     * @param string $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertInternalType($expected, $actual, $message = '')
-    {
-        if (!is_string($expected)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_IsType(
-            $expected
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an attribute is of a given type.
-     *
-     * @param string $expected
-     * @param string $attributeName
-     * @param mixed  $classOrObject
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertAttributeInternalType($expected, $attributeName, $classOrObject, $message = '')
-    {
-        self::assertInternalType(
-            $expected,
-            self::readAttribute($classOrObject, $attributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a variable is not of a given type.
-     *
-     * @param string $expected
-     * @param mixed  $actual
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertNotInternalType($expected, $actual, $message = '')
-    {
-        if (!is_string($expected)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_IsType($expected)
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that an attribute is of a given type.
-     *
-     * @param string $expected
-     * @param string $attributeName
-     * @param mixed  $classOrObject
-     * @param string $message
-     * @since Method available since Release 3.5.0
-     */
-    public static function assertAttributeNotInternalType($expected, $attributeName, $classOrObject, $message = '')
-    {
-        self::assertNotInternalType(
-            $expected,
-            self::readAttribute($classOrObject, $attributeName),
-            $message
-        );
-    }
-
-    /**
-     * Asserts that a string matches a given regular expression.
-     *
-     * @param string $pattern
-     * @param string $string
-     * @param string $message
-     */
-    public static function assertRegExp($pattern, $string, $message = '')
-    {
-        if (!is_string($pattern)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_PCREMatch($pattern);
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string does not match a given regular expression.
-     *
-     * @param string $pattern
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 2.1.0
-     */
-    public static function assertNotRegExp($pattern, $string, $message = '')
-    {
-        if (!is_string($pattern)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_PCREMatch($pattern)
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
-     * is the same.
-     *
-     * @param array|Countable|Traversable $expected
-     * @param array|Countable|Traversable $actual
-     * @param string                      $message
-     */
-    public static function assertSameSize($expected, $actual, $message = '')
-    {
-        if (!$expected instanceof Countable &&
-            !$expected instanceof Traversable &&
-            !is_array($expected)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'countable or traversable');
-        }
-
-        if (!$actual instanceof Countable &&
-            !$actual instanceof Traversable &&
-            !is_array($actual)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'countable or traversable');
-        }
-
-        self::assertThat(
-            $actual,
-            new PHPUnit_Framework_Constraint_SameSize($expected),
-            $message
-        );
-    }
-
-    /**
-     * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
-     * is not the same.
-     *
-     * @param array|Countable|Traversable $expected
-     * @param array|Countable|Traversable $actual
-     * @param string                      $message
-     */
-    public static function assertNotSameSize($expected, $actual, $message = '')
-    {
-        if (!$expected instanceof Countable &&
-            !$expected instanceof Traversable &&
-            !is_array($expected)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'countable or traversable');
-        }
-
-        if (!$actual instanceof Countable &&
-            !$actual instanceof Traversable &&
-            !is_array($actual)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'countable or traversable');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_SameSize($expected)
-        );
-
-        self::assertThat($actual, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string matches a given format string.
-     *
-     * @param string $format
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.5.0
-     */
-    public static function assertStringMatchesFormat($format, $string, $message = '')
-    {
-        if (!is_string($format)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_StringMatches($format);
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string does not match a given format string.
-     *
-     * @param string $format
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.5.0
-     */
-    public static function assertStringNotMatchesFormat($format, $string, $message = '')
-    {
-        if (!is_string($format)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_StringMatches($format)
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string matches a given format file.
-     *
-     * @param string $formatFile
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.5.0
-     */
-    public static function assertStringMatchesFormatFile($formatFile, $string, $message = '')
-    {
-        self::assertFileExists($formatFile, $message);
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_StringMatches(
-            file_get_contents($formatFile)
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string does not match a given format string.
-     *
-     * @param string $formatFile
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.5.0
-     */
-    public static function assertStringNotMatchesFormatFile($formatFile, $string, $message = '')
-    {
-        self::assertFileExists($formatFile, $message);
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_StringMatches(
-                file_get_contents($formatFile)
-            )
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string starts with a given prefix.
-     *
-     * @param string $prefix
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.4.0
-     */
-    public static function assertStringStartsWith($prefix, $string, $message = '')
-    {
-        if (!is_string($prefix)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_StringStartsWith(
-            $prefix
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string starts not with a given prefix.
-     *
-     * @param string $prefix
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.4.0
-     */
-    public static function assertStringStartsNotWith($prefix, $string, $message = '')
-    {
-        if (!is_string($prefix)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_StringStartsWith($prefix)
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string ends with a given suffix.
-     *
-     * @param string $suffix
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.4.0
-     */
-    public static function assertStringEndsWith($suffix, $string, $message = '')
-    {
-        if (!is_string($suffix)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_StringEndsWith($suffix);
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that a string ends not with a given suffix.
-     *
-     * @param string $suffix
-     * @param string $string
-     * @param string $message
-     * @since  Method available since Release 3.4.0
-     */
-    public static function assertStringEndsNotWith($suffix, $string, $message = '')
-    {
-        if (!is_string($suffix)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!is_string($string)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        $constraint = new PHPUnit_Framework_Constraint_Not(
-            new PHPUnit_Framework_Constraint_StringEndsWith($suffix)
-        );
-
-        self::assertThat($string, $constraint, $message);
-    }
-
-    /**
-     * Asserts that two XML files are equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualFile
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertXmlFileEqualsXmlFile($expectedFile, $actualFile, $message = '')
-    {
-        self::assertFileExists($expectedFile);
-        self::assertFileExists($actualFile);
-
-        $expected = new DOMDocument;
-        $expected->preserveWhiteSpace = false;
-        $expected->load($expectedFile);
-
-        $actual = new DOMDocument;
-        $actual->preserveWhiteSpace = false;
-        $actual->load($actualFile);
-
-        self::assertEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that two XML files are not equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualFile
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertXmlFileNotEqualsXmlFile($expectedFile, $actualFile, $message = '')
-    {
-        self::assertFileExists($expectedFile);
-        self::assertFileExists($actualFile);
-
-        $expected = new DOMDocument;
-        $expected->preserveWhiteSpace = false;
-        $expected->load($expectedFile);
-
-        $actual = new DOMDocument;
-        $actual->preserveWhiteSpace = false;
-        $actual->load($actualFile);
-
-        self::assertNotEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that two XML documents are equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualXml
-     * @param string $message
-     * @since  Method available since Release 3.3.0
-     */
-    public static function assertXmlStringEqualsXmlFile($expectedFile, $actualXml, $message = '')
-    {
-        self::assertFileExists($expectedFile);
-
-        $expected = new DOMDocument;
-        $expected->preserveWhiteSpace = false;
-        $expected->load($expectedFile);
-
-        $actual = new DOMDocument;
-        $actual->preserveWhiteSpace = false;
-        $actual->loadXML($actualXml);
-
-        self::assertEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that two XML documents are not equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualXml
-     * @param string $message
-     * @since  Method available since Release 3.3.0
-     */
-    public static function assertXmlStringNotEqualsXmlFile($expectedFile, $actualXml, $message = '')
-    {
-        self::assertFileExists($expectedFile);
-
-        $expected = new DOMDocument;
-        $expected->preserveWhiteSpace = false;
-        $expected->load($expectedFile);
-
-        $actual = new DOMDocument;
-        $actual->preserveWhiteSpace = false;
-        $actual->loadXML($actualXml);
-
-        self::assertNotEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that two XML documents are equal.
-     *
-     * @param string $expectedXml
-     * @param string $actualXml
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertXmlStringEqualsXmlString($expectedXml, $actualXml, $message = '')
-    {
-        $expected = new DOMDocument;
-        $expected->preserveWhiteSpace = false;
-        $expected->loadXML($expectedXml);
-
-        $actual = new DOMDocument;
-        $actual->preserveWhiteSpace = false;
-        $actual->loadXML($actualXml);
-
-        self::assertEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that two XML documents are not equal.
-     *
-     * @param string $expectedXml
-     * @param string $actualXml
-     * @param string $message
-     * @since  Method available since Release 3.1.0
-     */
-    public static function assertXmlStringNotEqualsXmlString($expectedXml, $actualXml, $message = '')
-    {
-        $expected = new DOMDocument;
-        $expected->preserveWhiteSpace = false;
-        $expected->loadXML($expectedXml);
-
-        $actual = new DOMDocument;
-        $actual->preserveWhiteSpace = false;
-        $actual->loadXML($actualXml);
-
-        self::assertNotEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that a hierarchy of DOMElements matches.
-     *
-     * @param DOMElement $expectedElement
-     * @param DOMElement $actualElement
-     * @param boolean    $checkAttributes
-     * @param string     $message
-     * @author Mattis Stordalen Flister <mattis@xait.no>
-     * @since  Method available since Release 3.3.0
-     */
-    public static function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, $checkAttributes = false, $message = '')
-    {
-        $expectedElement = clone $expectedElement;
-        $actualElement   = clone $actualElement;
-
-        self::assertEquals(
-            $expectedElement->tagName,
-            $actualElement->tagName,
-            $message
-        );
-
-        if ($checkAttributes) {
-            self::assertEquals(
-                $expectedElement->attributes->length,
-                $actualElement->attributes->length,
-                sprintf(
-                    '%s%sNumber of attributes on node "%s" does not match',
-                    $message,
-                    !empty($message) ? "\n" : '',
-                    $expectedElement->tagName
-                )
-            );
-
-            for ($i = 0; $i < $expectedElement->attributes->length; $i++) {
-                $expectedAttribute = $expectedElement->attributes->item($i);
-                $actualAttribute   = $actualElement->attributes->getNamedItem(
-                    $expectedAttribute->name
-                );
-
-                if (!$actualAttribute) {
-                    self::fail(
-                        sprintf(
-                            '%s%sCould not find attribute "%s" on node "%s"',
-                            $message,
-                            !empty($message) ? "\n" : '',
-                            $expectedAttribute->name,
-                            $expectedElement->tagName
-                        )
-                    );
-                }
-            }
-        }
-
-        PHPUnit_Util_XML::removeCharacterDataNodes($expectedElement);
-        PHPUnit_Util_XML::removeCharacterDataNodes($actualElement);
-
-        self::assertEquals(
-            $expectedElement->childNodes->length,
-            $actualElement->childNodes->length,
-            sprintf(
-                '%s%sNumber of child nodes of "%s" differs',
-                $message,
-                !empty($message) ? "\n" : '',
-                $expectedElement->tagName
-            )
-        );
-
-        for ($i = 0; $i < $expectedElement->childNodes->length; $i++) {
-            self::assertEqualXMLStructure(
-                $expectedElement->childNodes->item($i),
-                $actualElement->childNodes->item($i),
-                $checkAttributes,
-                $message
-            );
-        }
-    }
-
-    /**
-     * Assert the presence, absence, or count of elements in a document matching
-     * the CSS $selector, regardless of the contents of those elements.
-     *
-     * The first argument, $selector, is the CSS selector used to match
-     * the elements in the $actual document.
-     *
-     * The second argument, $count, can be either boolean or numeric.
-     * When boolean, it asserts for presence of elements matching the selector
-     * (true) or absence of elements (false).
-     * When numeric, it asserts the count of elements.
-     *
-     * assertSelectCount("#binder", true, $xml);  // any?
-     * assertSelectCount(".binder", 3, $xml);     // exactly 3?
-     *
-     * @param array                 $selector
-     * @param integer|boolean|array $count
-     * @param mixed                 $actual
-     * @param string                $message
-     * @param boolean               $isHtml
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @deprecated
-     */
-    public static function assertSelectCount($selector, $count, $actual, $message = '', $isHtml = true)
-    {
-        trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
-
-        self::assertSelectEquals(
-            $selector,
-            true,
-            $count,
-            $actual,
-            $message,
-            $isHtml
-        );
-    }
-
-    /**
-     * assertSelectRegExp("#binder .name", "/Mike|Derek/", true, $xml); // any?
-     * assertSelectRegExp("#binder .name", "/Mike|Derek/", 3, $xml);    // 3?
-     *
-     * @param array                 $selector
-     * @param string                $pattern
-     * @param integer|boolean|array $count
-     * @param mixed                 $actual
-     * @param string                $message
-     * @param boolean               $isHtml
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @deprecated
-     */
-    public static function assertSelectRegExp($selector, $pattern, $count, $actual, $message = '', $isHtml = true)
-    {
-        trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
-
-        self::assertSelectEquals(
-            $selector,
-            "regexp:$pattern",
-            $count,
-            $actual,
-            $message,
-            $isHtml
-        );
-    }
-
-    /**
-     * assertSelectEquals("#binder .name", "Chuck", true,  $xml);  // any?
-     * assertSelectEquals("#binder .name", "Chuck", false, $xml);  // none?
-     *
-     * @param array                 $selector
-     * @param string                $content
-     * @param integer|boolean|array $count
-     * @param mixed                 $actual
-     * @param string                $message
-     * @param boolean               $isHtml
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @deprecated
-     */
-    public static function assertSelectEquals($selector, $content, $count, $actual, $message = '', $isHtml = true)
-    {
-        trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
-
-        $tags = PHPUnit_Util_XML::cssSelect(
-            $selector,
-            $content,
-            $actual,
-            $isHtml
-        );
-
-        // assert specific number of elements
-        if (is_numeric($count)) {
-            $counted = $tags ? count($tags) : 0;
-            self::assertEquals($count, $counted, $message);
-        } // assert any elements exist if true, assert no elements exist if false
-        elseif (is_bool($count)) {
-            $any = count($tags) > 0 && $tags[0] instanceof DOMNode;
-
-            if ($count) {
-                self::assertTrue($any, $message);
-            } else {
-                self::assertFalse($any, $message);
-            }
-        } // check for range number of elements
-        elseif (is_array($count) &&
-                (isset($count['>']) || isset($count['<']) ||
-                isset($count['>=']) || isset($count['<=']))) {
-            $counted = $tags ? count($tags) : 0;
-
-            if (isset($count['>'])) {
-                self::assertTrue($counted > $count['>'], $message);
-            }
-
-            if (isset($count['>='])) {
-                self::assertTrue($counted >= $count['>='], $message);
-            }
-
-            if (isset($count['<'])) {
-                self::assertTrue($counted < $count['<'], $message);
-            }
-
-            if (isset($count['<='])) {
-                self::assertTrue($counted <= $count['<='], $message);
-            }
-        } else {
-            throw new PHPUnit_Framework_Exception;
-        }
-    }
-
-    /**
-     * Evaluate an HTML or XML string and assert its structure and/or contents.
-     *
-     * The first argument ($matcher) is an associative array that specifies the
-     * match criteria for the assertion:
-     *
-     *  - `id`           : the node with the given id attribute must match the
-     *                     corresponding value.
-     *  - `tag`          : the node type must match the corresponding value.
-     *  - `attributes`   : a hash. The node's attributes must match the
-     *                     corresponding values in the hash.
-     *  - `content`      : The text content must match the given value.
-     *  - `parent`       : a hash. The node's parent must match the
-     *                     corresponding hash.
-     *  - `child`        : a hash. At least one of the node's immediate children
-     *                     must meet the criteria described by the hash.
-     *  - `ancestor`     : a hash. At least one of the node's ancestors must
-     *                     meet the criteria described by the hash.
-     *  - `descendant`   : a hash. At least one of the node's descendants must
-     *                     meet the criteria described by the hash.
-     *  - `children`     : a hash, for counting children of a node.
-     *                     Accepts the keys:
-     *    - `count`        : a number which must equal the number of children
-     *                       that match
-     *    - `less_than`    : the number of matching children must be greater
-     *                       than this number
-     *    - `greater_than` : the number of matching children must be less than
-     *                       this number
-     *    - `only`         : another hash consisting of the keys to use to match
-     *                       on the children, and only matching children will be
-     *                       counted
-     *
-     * <code>
-     * // Matcher that asserts that there is an element with an id="my_id".
-     * $matcher = array('id' => 'my_id');
-     *
-     * // Matcher that asserts that there is a "span" tag.
-     * $matcher = array('tag' => 'span');
-     *
-     * // Matcher that asserts that there is a "span" tag with the content
-     * // "Hello World".
-     * $matcher = array('tag' => 'span', 'content' => 'Hello World');
-     *
-     * // Matcher that asserts that there is a "span" tag with content matching
-     * // the regular expression pattern.
-     * $matcher = array('tag' => 'span', 'content' => 'regexp:/Try P(HP|ython)/');
-     *
-     * // Matcher that asserts that there is a "span" with an "list" class
-     * // attribute.
-     * $matcher = array(
-     *   'tag'        => 'span',
-     *   'attributes' => array('class' => 'list')
-     * );
-     *
-     * // Matcher that asserts that there is a "span" inside of a "div".
-     * $matcher = array(
-     *   'tag'    => 'span',
-     *   'parent' => array('tag' => 'div')
-     * );
-     *
-     * // Matcher that asserts that there is a "span" somewhere inside a
-     * // "table".
-     * $matcher = array(
-     *   'tag'      => 'span',
-     *   'ancestor' => array('tag' => 'table')
-     * );
-     *
-     * // Matcher that asserts that there is a "span" with at least one "em"
-     * // child.
-     * $matcher = array(
-     *   'tag'   => 'span',
-     *   'child' => array('tag' => 'em')
-     * );
-     *
-     * // Matcher that asserts that there is a "span" containing a (possibly
-     * // nested) "strong" tag.
-     * $matcher = array(
-     *   'tag'        => 'span',
-     *   'descendant' => array('tag' => 'strong')
-     * );
-     *
-     * // Matcher that asserts that there is a "span" containing 5-10 "em" tags
-     * // as immediate children.
-     * $matcher = array(
-     *   'tag'      => 'span',
-     *   'children' => array(
-     *     'less_than'    => 11,
-     *     'greater_than' => 4,
-     *     'only'         => array('tag' => 'em')
-     *   )
-     * );
-     *
-     * // Matcher that asserts that there is a "div", with an "ul" ancestor and
-     * // a "li" parent (with class="enum"), and containing a "span" descendant
-     * // that contains an element with id="my_test" and the text "Hello World".
-     * $matcher = array(
-     *   'tag'        => 'div',
-     *   'ancestor'   => array('tag' => 'ul'),
-     *   'parent'     => array(
-     *     'tag'        => 'li',
-     *     'attributes' => array('class' => 'enum')
-     *   ),
-     *   'descendant' => array(
-     *     'tag'   => 'span',
-     *     'child' => array(
-     *       'id'      => 'my_test',
-     *       'content' => 'Hello World'
-     *     )
-     *   )
-     * );
-     *
-     * // Use assertTag() to apply a $matcher to a piece of $html.
-     * $this->assertTag($matcher, $html);
-     *
-     * // Use assertTag() to apply a $matcher to a piece of $xml.
-     * $this->assertTag($matcher, $xml, '', false);
-     * </code>
-     *
-     * The second argument ($actual) is a string containing either HTML or
-     * XML text to be tested.
-     *
-     * The third argument ($message) is an optional message that will be
-     * used if the assertion fails.
-     *
-     * The fourth argument ($html) is an optional flag specifying whether
-     * to load the $actual string into a DOMDocument using the HTML or
-     * XML load strategy.  It is true by default, which assumes the HTML
-     * load strategy.  In many cases, this will be acceptable for XML as well.
-     *
-     * @param array   $matcher
-     * @param string  $actual
-     * @param string  $message
-     * @param boolean $isHtml
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @deprecated
-     */
-    public static function assertTag($matcher, $actual, $message = '', $isHtml = true)
-    {
-        trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
-
-        $dom     = PHPUnit_Util_XML::load($actual, $isHtml);
-        $tags    = PHPUnit_Util_XML::findNodes($dom, $matcher, $isHtml);
-        $matched = count($tags) > 0 && $tags[0] instanceof DOMNode;
-
-        self::assertTrue($matched, $message);
-    }
-
-    /**
-     * This assertion is the exact opposite of assertTag().
-     *
-     * Rather than asserting that $matcher results in a match, it asserts that
-     * $matcher does not match.
-     *
-     * @param array   $matcher
-     * @param string  $actual
-     * @param string  $message
-     * @param boolean $isHtml
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @deprecated
-     */
-    public static function assertNotTag($matcher, $actual, $message = '', $isHtml = true)
-    {
-        trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
-
-        $dom     = PHPUnit_Util_XML::load($actual, $isHtml);
-        $tags    = PHPUnit_Util_XML::findNodes($dom, $matcher, $isHtml);
-        $matched = count($tags) > 0 && $tags[0] instanceof DOMNode;
-
-        self::assertFalse($matched, $message);
-    }
-
-    /**
-     * Evaluates a PHPUnit_Framework_Constraint matcher object.
-     *
-     * @param mixed                        $value
-     * @param PHPUnit_Framework_Constraint $constraint
-     * @param string                       $message
-     * @since  Method available since Release 3.0.0
-     */
-    public static function assertThat($value, PHPUnit_Framework_Constraint $constraint, $message = '')
-    {
-        self::$count += count($constraint);
-
-        $constraint->evaluate($value, $message);
-    }
-
-    /**
-     * Asserts that a string is a valid JSON string.
-     *
-     * @param string $actualJson
-     * @param string $message
-     * @since  Method available since Release 3.7.20
-     */
-    public static function assertJson($actualJson, $message = '')
-    {
-        if (!is_string($actualJson)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        self::assertThat($actualJson, self::isJson(), $message);
-    }
-
-    /**
-     * Asserts that two given JSON encoded objects or arrays are equal.
-     *
-     * @param string $expectedJson
-     * @param string $actualJson
-     * @param string $message
-     */
-    public static function assertJsonStringEqualsJsonString($expectedJson, $actualJson, $message = '')
-    {
-        self::assertJson($expectedJson, $message);
-        self::assertJson($actualJson, $message);
-
-        $expected = json_decode($expectedJson);
-        $actual   = json_decode($actualJson);
-
-        self::assertEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that two given JSON encoded objects or arrays are not equal.
-     *
-     * @param string $expectedJson
-     * @param string $actualJson
-     * @param string $message
-     */
-    public static function assertJsonStringNotEqualsJsonString($expectedJson, $actualJson, $message = '')
-    {
-        self::assertJson($expectedJson, $message);
-        self::assertJson($actualJson, $message);
-
-        $expected = json_decode($expectedJson);
-        $actual   = json_decode($actualJson);
-
-        self::assertNotEquals($expected, $actual, $message);
-    }
-
-    /**
-     * Asserts that the generated JSON encoded object and the content of the given file are equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualJson
-     * @param string $message
-     */
-    public static function assertJsonStringEqualsJsonFile($expectedFile, $actualJson, $message = '')
-    {
-        self::assertFileExists($expectedFile, $message);
-        $expectedJson = file_get_contents($expectedFile);
-
-        self::assertJson($expectedJson, $message);
-        self::assertJson($actualJson, $message);
-
-        // call constraint
-        $constraint = new PHPUnit_Framework_Constraint_JsonMatches(
-            $expectedJson
-        );
-
-        self::assertThat($actualJson, $constraint, $message);
-    }
-
-    /**
-     * Asserts that the generated JSON encoded object and the content of the given file are not equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualJson
-     * @param string $message
-     */
-    public static function assertJsonStringNotEqualsJsonFile($expectedFile, $actualJson, $message = '')
-    {
-        self::assertFileExists($expectedFile, $message);
-        $expectedJson = file_get_contents($expectedFile);
-
-        self::assertJson($expectedJson, $message);
-        self::assertJson($actualJson, $message);
-
-        // call constraint
-        $constraint = new PHPUnit_Framework_Constraint_JsonMatches(
-            $expectedJson
-        );
-
-        self::assertThat($actualJson, new PHPUnit_Framework_Constraint_Not($constraint), $message);
-    }
-
-    /**
-     * Asserts that two JSON files are not equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualFile
-     * @param string $message
-     */
-    public static function assertJsonFileNotEqualsJsonFile($expectedFile, $actualFile, $message = '')
-    {
-        self::assertFileExists($expectedFile, $message);
-        self::assertFileExists($actualFile, $message);
-
-        $actualJson = file_get_contents($actualFile);
-        $expectedJson = file_get_contents($expectedFile);
-
-        self::assertJson($expectedJson, $message);
-        self::assertJson($actualJson, $message);
-
-        // call constraint
-        $constraintExpected = new PHPUnit_Framework_Constraint_JsonMatches(
-            $expectedJson
-        );
-
-        $constraintActual = new PHPUnit_Framework_Constraint_JsonMatches($actualJson);
-
-        self::assertThat($expectedJson, new PHPUnit_Framework_Constraint_Not($constraintActual), $message);
-        self::assertThat($actualJson, new PHPUnit_Framework_Constraint_Not($constraintExpected), $message);
-    }
-
-    /**
-     * Asserts that two JSON files are equal.
-     *
-     * @param string $expectedFile
-     * @param string $actualFile
-     * @param string $message
-     */
-    public static function assertJsonFileEqualsJsonFile($expectedFile, $actualFile, $message = '')
-    {
-        self::assertFileExists($expectedFile, $message);
-        self::assertFileExists($actualFile, $message);
-
-        $actualJson = file_get_contents($actualFile);
-        $expectedJson = file_get_contents($expectedFile);
-
-        self::assertJson($expectedJson, $message);
-        self::assertJson($actualJson, $message);
-
-        // call constraint
-        $constraintExpected = new PHPUnit_Framework_Constraint_JsonMatches(
-            $expectedJson
-        );
-
-        $constraintActual = new PHPUnit_Framework_Constraint_JsonMatches($actualJson);
-
-        self::assertThat($expectedJson, $constraintActual, $message);
-        self::assertThat($actualJson, $constraintExpected, $message);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_And matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_And
-     * @since  Method available since Release 3.0.0
-     */
-    public static function logicalAnd()
-    {
-        $constraints = func_get_args();
-
-        $constraint = new PHPUnit_Framework_Constraint_And;
-        $constraint->setConstraints($constraints);
-
-        return $constraint;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Or matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_Or
-     * @since  Method available since Release 3.0.0
-     */
-    public static function logicalOr()
-    {
-        $constraints = func_get_args();
-
-        $constraint = new PHPUnit_Framework_Constraint_Or;
-        $constraint->setConstraints($constraints);
-
-        return $constraint;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Not matcher object.
-     *
-     * @param  PHPUnit_Framework_Constraint     $constraint
-     * @return PHPUnit_Framework_Constraint_Not
-     * @since  Method available since Release 3.0.0
-     */
-    public static function logicalNot(PHPUnit_Framework_Constraint $constraint)
-    {
-        return new PHPUnit_Framework_Constraint_Not($constraint);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Xor matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_Xor
-     * @since  Method available since Release 3.0.0
-     */
-    public static function logicalXor()
-    {
-        $constraints = func_get_args();
-
-        $constraint = new PHPUnit_Framework_Constraint_Xor;
-        $constraint->setConstraints($constraints);
-
-        return $constraint;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsAnything matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_IsAnything
-     * @since  Method available since Release 3.0.0
-     */
-    public static function anything()
-    {
-        return new PHPUnit_Framework_Constraint_IsAnything;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsTrue matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_IsTrue
-     * @since  Method available since Release 3.3.0
-     */
-    public static function isTrue()
-    {
-        return new PHPUnit_Framework_Constraint_IsTrue;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Callback matcher object.
-     *
-     * @param  callable                              $callback
-     * @return PHPUnit_Framework_Constraint_Callback
-     */
-    public static function callback($callback)
-    {
-        return new PHPUnit_Framework_Constraint_Callback($callback);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsFalse matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_IsFalse
-     * @since  Method available since Release 3.3.0
-     */
-    public static function isFalse()
-    {
-        return new PHPUnit_Framework_Constraint_IsFalse;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsJson matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_IsJson
-     * @since  Method available since Release 3.7.20
-     */
-    public static function isJson()
-    {
-        return new PHPUnit_Framework_Constraint_IsJson;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsNull matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_IsNull
-     * @since  Method available since Release 3.3.0
-     */
-    public static function isNull()
-    {
-        return new PHPUnit_Framework_Constraint_IsNull;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Attribute matcher object.
-     *
-     * @param  PHPUnit_Framework_Constraint           $constraint
-     * @param  string                                 $attributeName
-     * @return PHPUnit_Framework_Constraint_Attribute
-     * @since  Method available since Release 3.1.0
-     */
-    public static function attribute(PHPUnit_Framework_Constraint $constraint, $attributeName)
-    {
-        return new PHPUnit_Framework_Constraint_Attribute(
-            $constraint,
-            $attributeName
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_TraversableContains matcher
-     * object.
-     *
-     * @param  mixed                                            $value
-     * @param  boolean                                          $checkForObjectIdentity
-     * @param  boolean                                          $checkForNonObjectIdentity
-     * @return PHPUnit_Framework_Constraint_TraversableContains
-     * @since  Method available since Release 3.0.0
-     */
-    public static function contains($value, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-    {
-        return new PHPUnit_Framework_Constraint_TraversableContains($value, $checkForObjectIdentity, $checkForNonObjectIdentity);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_TraversableContainsOnly matcher
-     * object.
-     *
-     * @param  string                                               $type
-     * @return PHPUnit_Framework_Constraint_TraversableContainsOnly
-     * @since  Method available since Release 3.1.4
-     */
-    public static function containsOnly($type)
-    {
-        return new PHPUnit_Framework_Constraint_TraversableContainsOnly($type);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_TraversableContainsOnly matcher
-     * object.
-     *
-     * @param  string                                               $classname
-     * @return PHPUnit_Framework_Constraint_TraversableContainsOnly
-     */
-    public static function containsOnlyInstancesOf($classname)
-    {
-        return new PHPUnit_Framework_Constraint_TraversableContainsOnly($classname, false);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_ArrayHasKey matcher object.
-     *
-     * @param  mixed                                    $key
-     * @return PHPUnit_Framework_Constraint_ArrayHasKey
-     * @since  Method available since Release 3.0.0
-     */
-    public static function arrayHasKey($key)
-    {
-        return new PHPUnit_Framework_Constraint_ArrayHasKey($key);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsEqual matcher object.
-     *
-     * @param  mixed                                $value
-     * @param  float                                $delta
-     * @param  integer                              $maxDepth
-     * @param  boolean                              $canonicalize
-     * @param  boolean                              $ignoreCase
-     * @return PHPUnit_Framework_Constraint_IsEqual
-     * @since  Method available since Release 3.0.0
-     */
-    public static function equalTo($value, $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        return new PHPUnit_Framework_Constraint_IsEqual(
-            $value,
-            $delta,
-            $maxDepth,
-            $canonicalize,
-            $ignoreCase
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsEqual matcher object
-     * that is wrapped in a PHPUnit_Framework_Constraint_Attribute matcher
-     * object.
-     *
-     * @param  string                                 $attributeName
-     * @param  mixed                                  $value
-     * @param  float                                  $delta
-     * @param  integer                                $maxDepth
-     * @param  boolean                                $canonicalize
-     * @param  boolean                                $ignoreCase
-     * @return PHPUnit_Framework_Constraint_Attribute
-     * @since  Method available since Release 3.1.0
-     */
-    public static function attributeEqualTo($attributeName, $value, $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        return self::attribute(
-            self::equalTo(
-                $value,
-                $delta,
-                $maxDepth,
-                $canonicalize,
-                $ignoreCase
-            ),
-            $attributeName
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsEmpty matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_IsEmpty
-     * @since  Method available since Release 3.5.0
-     */
-    public static function isEmpty()
-    {
-        return new PHPUnit_Framework_Constraint_IsEmpty;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_FileExists matcher object.
-     *
-     * @return PHPUnit_Framework_Constraint_FileExists
-     * @since  Method available since Release 3.0.0
-     */
-    public static function fileExists()
-    {
-        return new PHPUnit_Framework_Constraint_FileExists;
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_GreaterThan matcher object.
-     *
-     * @param  mixed                                    $value
-     * @return PHPUnit_Framework_Constraint_GreaterThan
-     * @since  Method available since Release 3.0.0
-     */
-    public static function greaterThan($value)
-    {
-        return new PHPUnit_Framework_Constraint_GreaterThan($value);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Or matcher object that wraps
-     * a PHPUnit_Framework_Constraint_IsEqual and a
-     * PHPUnit_Framework_Constraint_GreaterThan matcher object.
-     *
-     * @param  mixed                           $value
-     * @return PHPUnit_Framework_Constraint_Or
-     * @since  Method available since Release 3.1.0
-     */
-    public static function greaterThanOrEqual($value)
-    {
-        return self::logicalOr(
-            new PHPUnit_Framework_Constraint_IsEqual($value),
-            new PHPUnit_Framework_Constraint_GreaterThan($value)
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_ClassHasAttribute matcher object.
-     *
-     * @param  string                                         $attributeName
-     * @return PHPUnit_Framework_Constraint_ClassHasAttribute
-     * @since  Method available since Release 3.1.0
-     */
-    public static function classHasAttribute($attributeName)
-    {
-        return new PHPUnit_Framework_Constraint_ClassHasAttribute(
-            $attributeName
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_ClassHasStaticAttribute matcher
-     * object.
-     *
-     * @param  string                                               $attributeName
-     * @return PHPUnit_Framework_Constraint_ClassHasStaticAttribute
-     * @since  Method available since Release 3.1.0
-     */
-    public static function classHasStaticAttribute($attributeName)
-    {
-        return new PHPUnit_Framework_Constraint_ClassHasStaticAttribute(
-            $attributeName
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_ObjectHasAttribute matcher object.
-     *
-     * @param  string                                          $attributeName
-     * @return PHPUnit_Framework_Constraint_ObjectHasAttribute
-     * @since  Method available since Release 3.0.0
-     */
-    public static function objectHasAttribute($attributeName)
-    {
-        return new PHPUnit_Framework_Constraint_ObjectHasAttribute(
-            $attributeName
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsIdentical matcher object.
-     *
-     * @param  mixed                                    $value
-     * @return PHPUnit_Framework_Constraint_IsIdentical
-     * @since  Method available since Release 3.0.0
-     */
-    public static function identicalTo($value)
-    {
-        return new PHPUnit_Framework_Constraint_IsIdentical($value);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsInstanceOf matcher object.
-     *
-     * @param  string                                    $className
-     * @return PHPUnit_Framework_Constraint_IsInstanceOf
-     * @since  Method available since Release 3.0.0
-     */
-    public static function isInstanceOf($className)
-    {
-        return new PHPUnit_Framework_Constraint_IsInstanceOf($className);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_IsType matcher object.
-     *
-     * @param  string                              $type
-     * @return PHPUnit_Framework_Constraint_IsType
-     * @since  Method available since Release 3.0.0
-     */
-    public static function isType($type)
-    {
-        return new PHPUnit_Framework_Constraint_IsType($type);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_LessThan matcher object.
-     *
-     * @param  mixed                                 $value
-     * @return PHPUnit_Framework_Constraint_LessThan
-     * @since  Method available since Release 3.0.0
-     */
-    public static function lessThan($value)
-    {
-        return new PHPUnit_Framework_Constraint_LessThan($value);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Or matcher object that wraps
-     * a PHPUnit_Framework_Constraint_IsEqual and a
-     * PHPUnit_Framework_Constraint_LessThan matcher object.
-     *
-     * @param  mixed                           $value
-     * @return PHPUnit_Framework_Constraint_Or
-     * @since  Method available since Release 3.1.0
-     */
-    public static function lessThanOrEqual($value)
-    {
-        return self::logicalOr(
-            new PHPUnit_Framework_Constraint_IsEqual($value),
-            new PHPUnit_Framework_Constraint_LessThan($value)
-        );
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_PCREMatch matcher object.
-     *
-     * @param  string                                 $pattern
-     * @return PHPUnit_Framework_Constraint_PCREMatch
-     * @since  Method available since Release 3.0.0
-     */
-    public static function matchesRegularExpression($pattern)
-    {
-        return new PHPUnit_Framework_Constraint_PCREMatch($pattern);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_StringMatches matcher object.
-     *
-     * @param  string                                     $string
-     * @return PHPUnit_Framework_Constraint_StringMatches
-     * @since  Method available since Release 3.5.0
-     */
-    public static function matches($string)
-    {
-        return new PHPUnit_Framework_Constraint_StringMatches($string);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_StringStartsWith matcher object.
-     *
-     * @param  mixed                                         $prefix
-     * @return PHPUnit_Framework_Constraint_StringStartsWith
-     * @since  Method available since Release 3.4.0
-     */
-    public static function stringStartsWith($prefix)
-    {
-        return new PHPUnit_Framework_Constraint_StringStartsWith($prefix);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_StringContains matcher object.
-     *
-     * @param  string                                      $string
-     * @param  boolean                                     $case
-     * @return PHPUnit_Framework_Constraint_StringContains
-     * @since  Method available since Release 3.0.0
-     */
-    public static function stringContains($string, $case = true)
-    {
-        return new PHPUnit_Framework_Constraint_StringContains($string, $case);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_StringEndsWith matcher object.
-     *
-     * @param  mixed                                       $suffix
-     * @return PHPUnit_Framework_Constraint_StringEndsWith
-     * @since  Method available since Release 3.4.0
-     */
-    public static function stringEndsWith($suffix)
-    {
-        return new PHPUnit_Framework_Constraint_StringEndsWith($suffix);
-    }
-
-    /**
-     * Returns a PHPUnit_Framework_Constraint_Count matcher object.
-     *
-     * @param  int                                $count
-     * @return PHPUnit_Framework_Constraint_Count
-     */
-    public static function countOf($count)
-    {
-        return new PHPUnit_Framework_Constraint_Count($count);
-    }
-    /**
-     * Fails a test with the given message.
-     *
-     * @param  string                                 $message
-     * @throws PHPUnit_Framework_AssertionFailedError
-     */
-    public static function fail($message = '')
-    {
-        throw new PHPUnit_Framework_AssertionFailedError($message);
-    }
-
-    /**
-     * Returns the value of an attribute of a class or an object.
-     * This also works for attributes that are declared protected or private.
-     *
-     * @param  mixed                       $classOrObject
-     * @param  string                      $attributeName
-     * @return mixed
-     * @throws PHPUnit_Framework_Exception
-     */
-    public static function readAttribute($classOrObject, $attributeName)
-    {
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'valid attribute name');
-        }
-
-        if (is_string($classOrObject)) {
-            if (!class_exists($classOrObject)) {
-                throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                    1,
-                    'class name'
-                );
-            }
-
-            return self::getStaticAttribute(
-                $classOrObject,
-                $attributeName
-            );
-        } elseif (is_object($classOrObject)) {
-            return self::getObjectAttribute(
-                $classOrObject,
-                $attributeName
-            );
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'class name or object'
-            );
-        }
-    }
-
-    /**
-     * Returns the value of a static attribute.
-     * This also works for attributes that are declared protected or private.
-     *
-     * @param  string                      $className
-     * @param  string                      $attributeName
-     * @return mixed
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.0.0
-     */
-    public static function getStaticAttribute($className, $attributeName)
-    {
-        if (!is_string($className)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (!class_exists($className)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'class name');
-        }
-
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'valid attribute name');
-        }
-
-        $class = new ReflectionClass($className);
-
-        while ($class) {
-            $attributes = $class->getStaticProperties();
-
-            if (array_key_exists($attributeName, $attributes)) {
-                return $attributes[$attributeName];
-            }
-
-            $class = $class->getParentClass();
-        }
-
-        throw new PHPUnit_Framework_Exception(
-            sprintf(
-                'Attribute "%s" not found in class.',
-                $attributeName
-            )
-        );
-    }
-
-    /**
-     * Returns the value of an object's attribute.
-     * This also works for attributes that are declared protected or private.
-     *
-     * @param  object                      $object
-     * @param  string                      $attributeName
-     * @return mixed
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.0.0
-     */
-    public static function getObjectAttribute($object, $attributeName)
-    {
-        if (!is_object($object)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'object');
-        }
-
-        if (!is_string($attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'string');
-        }
-
-        if (!preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'valid attribute name');
-        }
-
-        try {
-            $attribute = new ReflectionProperty($object, $attributeName);
-        } catch (ReflectionException $e) {
-            $reflector = new ReflectionObject($object);
-
-            while ($reflector = $reflector->getParentClass()) {
-                try {
-                    $attribute = $reflector->getProperty($attributeName);
-                    break;
-                } catch (ReflectionException $e) {
-                }
-            }
-        }
-
-        if (isset($attribute)) {
-            if (!$attribute || $attribute->isPublic()) {
-                return $object->$attributeName;
-            }
-
-            $attribute->setAccessible(true);
-            $value = $attribute->getValue($object);
-            $attribute->setAccessible(false);
-
-            return $value;
-        }
-
-        throw new PHPUnit_Framework_Exception(
-            sprintf(
-                'Attribute "%s" not found in object.',
-                $attributeName
-            )
-        );
-    }
-
-    /**
-     * Mark the test as incomplete.
-     *
-     * @param  string                                $message
-     * @throws PHPUnit_Framework_IncompleteTestError
-     * @since  Method available since Release 3.0.0
-     */
-    public static function markTestIncomplete($message = '')
-    {
-        throw new PHPUnit_Framework_IncompleteTestError($message);
-    }
-
-    /**
-     * Mark the test as skipped.
-     *
-     * @param  string                             $message
-     * @throws PHPUnit_Framework_SkippedTestError
-     * @since  Method available since Release 3.0.0
-     */
-    public static function markTestSkipped($message = '')
-    {
-        throw new PHPUnit_Framework_SkippedTestError($message);
-    }
-
-    /**
-     * Return the current assertion count.
-     *
-     * @return integer
-     * @since  Method available since Release 3.3.3
-     */
-    public static function getCount()
-    {
-        return self::$count;
-    }
-
-    /**
-     * Reset the assertion counter.
-     *
-     * @since  Method available since Release 3.3.3
-     */
-    public static function resetCount()
-    {
-        self::$count = 0;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php b/core/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
deleted file mode 100644
index edc5f83..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
+++ /dev/null
@@ -1,2443 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Returns a matcher that matches when the method it is evaluated for
- * is executed zero or more times.
- *
- * @return PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount
- * @since  Method available since Release 3.0.0
- */
-function any()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::any',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsAnything matcher object.
- *
- * @return PHPUnit_Framework_Constraint_IsAnything
- * @since  Method available since Release 3.0.0
- */
-function anything()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::anything',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_ArrayHasKey matcher object.
- *
- * @param  mixed $key
- * @return PHPUnit_Framework_Constraint_ArrayHasKey
- * @since  Method available since Release 3.0.0
- */
-function arrayHasKey($key)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::arrayHasKey',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an array has a specified key.
- *
- * @param  mixed  $key
- * @param  array|ArrayAccess  $array
- * @param  string $message
- * @since  Method available since Release 3.0.0
- */
-function assertArrayHasKey($key, $array, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertArrayHasKey',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an array has a specified subset.
- *
- * @param array|ArrayAccess  $subset
- * @param array|ArrayAccess  $array
- * @param boolean            $strict  Check for object identity
- * @param string             $message
- * @since Method available since Release 4.4.0
- */
-function assertArraySubset($subset, $array, $strict = false, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertArraySubset',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an array does not have a specified key.
- *
- * @param  mixed  $key
- * @param  array|ArrayAccess  $array
- * @param  string $message
- * @since  Method available since Release 3.0.0
- */
-function assertArrayNotHasKey($key, $array, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertArrayNotHasKey',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack that is stored in a static attribute of a class
- * or an attribute of an object contains a needle.
- *
- * @param  mixed   $needle
- * @param  string  $haystackAttributeName
- * @param  mixed   $haystackClassOrObject
- * @param  string  $message
- * @param  boolean $ignoreCase
- * @param  boolean $checkForObjectIdentity
- * @param  boolean $checkForNonObjectIdentity
- * @since  Method available since Release 3.0.0
- */
-function assertAttributeContains($needle, $haystackAttributeName, $haystackClassOrObject, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeContains',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack that is stored in a static attribute of a class
- * or an attribute of an object contains only values of a given type.
- *
- * @param  string  $type
- * @param  string  $haystackAttributeName
- * @param  mixed   $haystackClassOrObject
- * @param  boolean $isNativeType
- * @param  string  $message
- * @since  Method available since Release 3.1.4
- */
-function assertAttributeContainsOnly($type, $haystackAttributeName, $haystackClassOrObject, $isNativeType = null, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeContainsOnly',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts the number of elements of an array, Countable or Traversable
- * that is stored in an attribute.
- *
- * @param integer $expectedCount
- * @param string  $haystackAttributeName
- * @param mixed   $haystackClassOrObject
- * @param string  $message
- * @since Method available since Release 3.6.0
- */
-function assertAttributeCount($expectedCount, $haystackAttributeName, $haystackClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeCount',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a static attribute of a class or an attribute of an object
- * is empty.
- *
- * @param string $haystackAttributeName
- * @param mixed  $haystackClassOrObject
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertAttributeEmpty($haystackAttributeName, $haystackClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeEmpty',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is equal to an attribute of an object.
- *
- * @param  mixed   $expected
- * @param  string  $actualAttributeName
- * @param  string  $actualClassOrObject
- * @param  string  $message
- * @param  float   $delta
- * @param  integer $maxDepth
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- */
-function assertAttributeEquals($expected, $actualAttributeName, $actualClassOrObject, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeEquals',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is greater than another value.
- *
- * @param  mixed   $expected
- * @param  string  $actualAttributeName
- * @param  string  $actualClassOrObject
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertAttributeGreaterThan($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeGreaterThan',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is greater than or equal to another value.
- *
- * @param  mixed   $expected
- * @param  string  $actualAttributeName
- * @param  string  $actualClassOrObject
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertAttributeGreaterThanOrEqual($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeGreaterThanOrEqual',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is of a given type.
- *
- * @param string $expected
- * @param string $attributeName
- * @param mixed  $classOrObject
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertAttributeInstanceOf($expected, $attributeName, $classOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeInstanceOf',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is of a given type.
- *
- * @param string $expected
- * @param string $attributeName
- * @param mixed  $classOrObject
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertAttributeInternalType($expected, $attributeName, $classOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeInternalType',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is smaller than another value.
- *
- * @param  mixed   $expected
- * @param  string  $actualAttributeName
- * @param  string  $actualClassOrObject
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertAttributeLessThan($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeLessThan',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is smaller than or equal to another value.
- *
- * @param  mixed   $expected
- * @param  string  $actualAttributeName
- * @param  string  $actualClassOrObject
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertAttributeLessThanOrEqual($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeLessThanOrEqual',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack that is stored in a static attribute of a class
- * or an attribute of an object does not contain a needle.
- *
- * @param  mixed   $needle
- * @param  string  $haystackAttributeName
- * @param  mixed   $haystackClassOrObject
- * @param  string  $message
- * @param  boolean $ignoreCase
- * @param  boolean $checkForObjectIdentity
- * @param  boolean $checkForNonObjectIdentity
- * @since  Method available since Release 3.0.0
- */
-function assertAttributeNotContains($needle, $haystackAttributeName, $haystackClassOrObject, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotContains',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack that is stored in a static attribute of a class
- * or an attribute of an object does not contain only values of a given
- * type.
- *
- * @param  string  $type
- * @param  string  $haystackAttributeName
- * @param  mixed   $haystackClassOrObject
- * @param  boolean $isNativeType
- * @param  string  $message
- * @since  Method available since Release 3.1.4
- */
-function assertAttributeNotContainsOnly($type, $haystackAttributeName, $haystackClassOrObject, $isNativeType = null, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotContainsOnly',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts the number of elements of an array, Countable or Traversable
- * that is stored in an attribute.
- *
- * @param integer $expectedCount
- * @param string  $haystackAttributeName
- * @param mixed   $haystackClassOrObject
- * @param string  $message
- * @since Method available since Release 3.6.0
- */
-function assertAttributeNotCount($expectedCount, $haystackAttributeName, $haystackClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotCount',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a static attribute of a class or an attribute of an object
- * is not empty.
- *
- * @param string $haystackAttributeName
- * @param mixed  $haystackClassOrObject
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertAttributeNotEmpty($haystackAttributeName, $haystackClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotEmpty',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is not equal to an attribute of an object.
- *
- * @param  mixed   $expected
- * @param  string  $actualAttributeName
- * @param  string  $actualClassOrObject
- * @param  string  $message
- * @param  float   $delta
- * @param  integer $maxDepth
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- */
-function assertAttributeNotEquals($expected, $actualAttributeName, $actualClassOrObject, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotEquals',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is of a given type.
- *
- * @param string $expected
- * @param string $attributeName
- * @param mixed  $classOrObject
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertAttributeNotInstanceOf($expected, $attributeName, $classOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotInstanceOf',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an attribute is of a given type.
- *
- * @param string $expected
- * @param string $attributeName
- * @param mixed  $classOrObject
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertAttributeNotInternalType($expected, $attributeName, $classOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotInternalType',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable and an attribute of an object do not have the
- * same type and value.
- *
- * @param  mixed  $expected
- * @param  string $actualAttributeName
- * @param  object $actualClassOrObject
- * @param  string $message
- */
-function assertAttributeNotSame($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeNotSame',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable and an attribute of an object have the same type
- * and value.
- *
- * @param  mixed  $expected
- * @param  string $actualAttributeName
- * @param  object $actualClassOrObject
- * @param  string $message
- */
-function assertAttributeSame($expected, $actualAttributeName, $actualClassOrObject, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertAttributeSame',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a class has a specified attribute.
- *
- * @param  string $attributeName
- * @param  string $className
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertClassHasAttribute($attributeName, $className, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertClassHasAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a class has a specified static attribute.
- *
- * @param  string $attributeName
- * @param  string $className
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertClassHasStaticAttribute($attributeName, $className, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertClassHasStaticAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a class does not have a specified attribute.
- *
- * @param  string $attributeName
- * @param  string $className
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertClassNotHasAttribute($attributeName, $className, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertClassNotHasAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a class does not have a specified static attribute.
- *
- * @param  string $attributeName
- * @param  string $className
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertClassNotHasStaticAttribute($attributeName, $className, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack contains a needle.
- *
- * @param  mixed   $needle
- * @param  mixed   $haystack
- * @param  string  $message
- * @param  boolean $ignoreCase
- * @param  boolean $checkForObjectIdentity
- * @param  boolean $checkForNonObjectIdentity
- * @since  Method available since Release 2.1.0
- */
-function assertContains($needle, $haystack, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertContains',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack contains only values of a given type.
- *
- * @param  string  $type
- * @param  mixed   $haystack
- * @param  boolean $isNativeType
- * @param  string  $message
- * @since  Method available since Release 3.1.4
- */
-function assertContainsOnly($type, $haystack, $isNativeType = null, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertContainsOnly',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack contains only instances of a given classname
- *
- * @param string $classname
- * @param array|Traversable $haystack
- * @param string $message
- */
-function assertContainsOnlyInstancesOf($classname, $haystack, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts the number of elements of an array, Countable or Traversable.
- *
- * @param integer $expectedCount
- * @param mixed   $haystack
- * @param string  $message
- */
-function assertCount($expectedCount, $haystack, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertCount',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is empty.
- *
- * @param  mixed   $actual
- * @param  string  $message
- * @throws PHPUnit_Framework_AssertionFailedError
- */
-function assertEmpty($actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertEmpty',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a hierarchy of DOMElements matches.
- *
- * @param DOMElement $expectedElement
- * @param DOMElement $actualElement
- * @param boolean $checkAttributes
- * @param string  $message
- * @author Mattis Stordalen Flister <mattis@xait.no>
- * @since  Method available since Release 3.3.0
- */
-function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, $checkAttributes = false, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertEqualXMLStructure',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two variables are equal.
- *
- * @param  mixed   $expected
- * @param  mixed   $actual
- * @param  string  $message
- * @param  float   $delta
- * @param  integer $maxDepth
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- */
-function assertEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertEquals',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a condition is not true.
- *
- * @param  boolean  $condition
- * @param  string   $message
- * @throws PHPUnit_Framework_AssertionFailedError
- */
-function assertNotTrue($condition, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotTrue',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a condition is false.
- *
- * @param  boolean  $condition
- * @param  string   $message
- * @throws PHPUnit_Framework_AssertionFailedError
- */
-function assertFalse($condition, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertFalse',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that the contents of one file is equal to the contents of another
- * file.
- *
- * @param  string  $expected
- * @param  string  $actual
- * @param  string  $message
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @since  Method available since Release 3.2.14
- */
-function assertFileEquals($expected, $actual, $message = '', $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertFileEquals',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a file exists.
- *
- * @param  string $filename
- * @param  string $message
- * @since  Method available since Release 3.0.0
- */
-function assertFileExists($filename, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertFileExists',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that the contents of one file is not equal to the contents of
- * another file.
- *
- * @param  string  $expected
- * @param  string  $actual
- * @param  string  $message
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @since  Method available since Release 3.2.14
- */
-function assertFileNotEquals($expected, $actual, $message = '', $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertFileNotEquals',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a file does not exist.
- *
- * @param  string $filename
- * @param  string $message
- * @since  Method available since Release 3.0.0
- */
-function assertFileNotExists($filename, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertFileNotExists',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a value is greater than another value.
- *
- * @param  mixed   $expected
- * @param  mixed   $actual
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertGreaterThan($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertGreaterThan',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a value is greater than or equal to another value.
- *
- * @param  mixed   $expected
- * @param  mixed   $actual
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertGreaterThanOrEqual($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertGreaterThanOrEqual',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is of a given type.
- *
- * @param string $expected
- * @param mixed  $actual
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertInstanceOf($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertInstanceOf',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is of a given type.
- *
- * @param string $expected
- * @param mixed  $actual
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertInternalType($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertInternalType',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string is a valid JSON string.
- *
- * @param  string $filename
- * @param  string $message
- * @since  Method available since Release 3.7.20
- */
-function assertJson($expectedJson, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJson',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two JSON files are equal.
- *
- * @param  string $expectedFile
- * @param  string $actualFile
- * @param  string $message
- */
-function assertJsonFileEqualsJsonFile($expectedFile, $actualFile, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJsonFileEqualsJsonFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two JSON files are not equal.
- *
- * @param  string $expectedFile
- * @param  string $actualFile
- * @param  string $message
- */
-function assertJsonFileNotEqualsJsonFile($expectedFile, $actualFile, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJsonFileNotEqualsJsonFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that the generated JSON encoded object and the content of the given file are equal.
- *
- * @param string $expectedFile
- * @param string $actualJson
- * @param string $message
- */
-function assertJsonStringEqualsJsonFile($expectedFile, $actualJson, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two given JSON encoded objects or arrays are equal.
- *
- * @param string $expectedJson
- * @param string $actualJson
- * @param string $message
- */
-function assertJsonStringEqualsJsonString($expectedJson, $actualJson, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJsonStringEqualsJsonString',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that the generated JSON encoded object and the content of the given file are not equal.
- *
- * @param string $expectedFile
- * @param string $actualJson
- * @param string $message
- */
-function assertJsonStringNotEqualsJsonFile($expectedFile, $actualJson, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two given JSON encoded objects or arrays are not equal.
- *
- * @param string $expectedJson
- * @param string $actualJson
- * @param string $message
- */
-function assertJsonStringNotEqualsJsonString($expectedJson, $actualJson, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonString',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a value is smaller than another value.
- *
- * @param  mixed   $expected
- * @param  mixed   $actual
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertLessThan($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertLessThan',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a value is smaller than or equal to another value.
- *
- * @param  mixed   $expected
- * @param  mixed   $actual
- * @param  string  $message
- * @since  Method available since Release 3.1.0
- */
-function assertLessThanOrEqual($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertLessThanOrEqual',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack does not contain a needle.
- *
- * @param  mixed   $needle
- * @param  mixed   $haystack
- * @param  string  $message
- * @param  boolean $ignoreCase
- * @param  boolean $checkForObjectIdentity
- * @param  boolean $checkForNonObjectIdentity
- * @since  Method available since Release 2.1.0
- */
-function assertNotContains($needle, $haystack, $message = '', $ignoreCase = false, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotContains',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a haystack does not contain only values of a given type.
- *
- * @param  string  $type
- * @param  mixed   $haystack
- * @param  boolean $isNativeType
- * @param  string  $message
- * @since  Method available since Release 3.1.4
- */
-function assertNotContainsOnly($type, $haystack, $isNativeType = null, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotContainsOnly',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts the number of elements of an array, Countable or Traversable.
- *
- * @param integer $expectedCount
- * @param mixed   $haystack
- * @param string  $message
- */
-function assertNotCount($expectedCount, $haystack, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotCount',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is not empty.
- *
- * @param  mixed   $actual
- * @param  string  $message
- * @throws PHPUnit_Framework_AssertionFailedError
- */
-function assertNotEmpty($actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotEmpty',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two variables are not equal.
- *
- * @param  mixed   $expected
- * @param  mixed   $actual
- * @param  string  $message
- * @param  float   $delta
- * @param  integer $maxDepth
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @since  Method available since Release 2.3.0
- */
-function assertNotEquals($expected, $actual, $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotEquals',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is not of a given type.
- *
- * @param string $expected
- * @param mixed  $actual
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertNotInstanceOf($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotInstanceOf',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is not of a given type.
- *
- * @param string $expected
- * @param mixed  $actual
- * @param string $message
- * @since Method available since Release 3.5.0
- */
-function assertNotInternalType($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotInternalType',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a condition is not false.
- *
- * @param  boolean  $condition
- * @param  string   $message
- * @throws PHPUnit_Framework_AssertionFailedError
- */
-function assertNotFalse($condition, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotFalse',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is not null.
- *
- * @param  mixed  $actual
- * @param  string $message
- */
-function assertNotNull($actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotNull',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string does not match a given regular expression.
- *
- * @param  string $pattern
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 2.1.0
- */
-function assertNotRegExp($pattern, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotRegExp',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two variables do not have the same type and value.
- * Used on objects, it asserts that two variables do not reference
- * the same object.
- *
- * @param  mixed  $expected
- * @param  mixed  $actual
- * @param  string $message
- */
-function assertNotSame($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotSame',
-        func_get_args()
-    );
-}
-
-/**
- * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
- * is not the same.
- *
- * @param array|Countable|Traversable $expected
- * @param array|Countable|Traversable $actual
- * @param string $message
- */
-function assertNotSameSize($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotSameSize',
-        func_get_args()
-    );
-}
-
-/**
- * This assertion is the exact opposite of assertTag().
- *
- * Rather than asserting that $matcher results in a match, it asserts that
- * $matcher does not match.
- *
- * @param  array   $matcher
- * @param  string  $actual
- * @param  string  $message
- * @param  boolean $isHtml
- * @since  Method available since Release 3.3.0
- * @author Mike Naberezny <mike@maintainable.com>
- * @author Derek DeVries <derek@maintainable.com>
- */
-function assertNotTag($matcher, $actual, $message = '', $isHtml = true)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNotTag',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a variable is null.
- *
- * @param  mixed  $actual
- * @param  string $message
- */
-function assertNull($actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertNull',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an object has a specified attribute.
- *
- * @param  string $attributeName
- * @param  object $object
- * @param  string $message
- * @since  Method available since Release 3.0.0
- */
-function assertObjectHasAttribute($attributeName, $object, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertObjectHasAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that an object does not have a specified attribute.
- *
- * @param  string $attributeName
- * @param  object $object
- * @param  string $message
- * @since  Method available since Release 3.0.0
- */
-function assertObjectNotHasAttribute($attributeName, $object, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertObjectNotHasAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string matches a given regular expression.
- *
- * @param  string $pattern
- * @param  string $string
- * @param  string $message
- */
-function assertRegExp($pattern, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertRegExp',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two variables have the same type and value.
- * Used on objects, it asserts that two variables reference
- * the same object.
- *
- * @param  mixed  $expected
- * @param  mixed  $actual
- * @param  string $message
- */
-function assertSame($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertSame',
-        func_get_args()
-    );
-}
-
-/**
- * Assert that the size of two arrays (or `Countable` or `Traversable` objects)
- * is the same.
- *
- * @param array|Countable|Traversable $expected
- * @param array|Countable|Traversable $actual
- * @param string $message
- */
-function assertSameSize($expected, $actual, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertSameSize',
-        func_get_args()
-    );
-}
-
-/**
- * Assert the presence, absence, or count of elements in a document matching
- * the CSS $selector, regardless of the contents of those elements.
- *
- * The first argument, $selector, is the CSS selector used to match
- * the elements in the $actual document.
- *
- * The second argument, $count, can be either boolean or numeric.
- * When boolean, it asserts for presence of elements matching the selector
- * (true) or absence of elements (false).
- * When numeric, it asserts the count of elements.
- *
- * assertSelectCount("#binder", true, $xml);  // any?
- * assertSelectCount(".binder", 3, $xml); // exactly 3?
- *
- * @param  array   $selector
- * @param  integer $count
- * @param  mixed   $actual
- * @param  string  $message
- * @param  boolean $isHtml
- * @since  Method available since Release 3.3.0
- * @author Mike Naberezny <mike@maintainable.com>
- * @author Derek DeVries <derek@maintainable.com>
- */
-function assertSelectCount($selector, $count, $actual, $message = '', $isHtml = true)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertSelectCount',
-        func_get_args()
-    );
-}
-
-/**
- * assertSelectEquals("#binder .name", "Chuck", true,  $xml);  // any?
- * assertSelectEquals("#binder .name", "Chuck", false, $xml);  // none?
- *
- * @param  array   $selector
- * @param  string  $content
- * @param  integer $count
- * @param  mixed   $actual
- * @param  string  $message
- * @param  boolean $isHtml
- * @since  Method available since Release 3.3.0
- * @author Mike Naberezny <mike@maintainable.com>
- * @author Derek DeVries <derek@maintainable.com>
- */
-function assertSelectEquals($selector, $content, $count, $actual, $message = '', $isHtml = true)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertSelectEquals',
-        func_get_args()
-    );
-}
-
-/**
- * assertSelectRegExp("#binder .name", "/Mike|Derek/", true, $xml); // any?
- * assertSelectRegExp("#binder .name", "/Mike|Derek/", 3, $xml);// 3?
- *
- * @param  array   $selector
- * @param  string  $pattern
- * @param  integer $count
- * @param  mixed   $actual
- * @param  string  $message
- * @param  boolean $isHtml
- * @since  Method available since Release 3.3.0
- * @author Mike Naberezny <mike@maintainable.com>
- * @author Derek DeVries <derek@maintainable.com>
- */
-function assertSelectRegExp($selector, $pattern, $count, $actual, $message = '', $isHtml = true)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertSelectRegExp',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string ends not with a given prefix.
- *
- * @param  string $suffix
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.4.0
- */
-function assertStringEndsNotWith($suffix, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringEndsNotWith',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string ends with a given prefix.
- *
- * @param  string $suffix
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.4.0
- */
-function assertStringEndsWith($suffix, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringEndsWith',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that the contents of a string is equal
- * to the contents of a file.
- *
- * @param  string  $expectedFile
- * @param  string  $actualString
- * @param  string  $message
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @since  Method available since Release 3.3.0
- */
-function assertStringEqualsFile($expectedFile, $actualString, $message = '', $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringEqualsFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string matches a given format string.
- *
- * @param  string $format
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.5.0
- */
-function assertStringMatchesFormat($format, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringMatchesFormat',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string matches a given format file.
- *
- * @param  string $formatFile
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.5.0
- */
-function assertStringMatchesFormatFile($formatFile, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringMatchesFormatFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that the contents of a string is not equal
- * to the contents of a file.
- *
- * @param  string  $expectedFile
- * @param  string  $actualString
- * @param  string  $message
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @since  Method available since Release 3.3.0
- */
-function assertStringNotEqualsFile($expectedFile, $actualString, $message = '', $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringNotEqualsFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string does not match a given format string.
- *
- * @param  string $format
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.5.0
- */
-function assertStringNotMatchesFormat($format, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringNotMatchesFormat',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string does not match a given format string.
- *
- * @param  string $formatFile
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.5.0
- */
-function assertStringNotMatchesFormatFile($formatFile, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringNotMatchesFormatFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string starts not with a given prefix.
- *
- * @param  string $prefix
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.4.0
- */
-function assertStringStartsNotWith($prefix, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringStartsNotWith',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a string starts with a given prefix.
- *
- * @param  string $prefix
- * @param  string $string
- * @param  string $message
- * @since  Method available since Release 3.4.0
- */
-function assertStringStartsWith($prefix, $string, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertStringStartsWith',
-        func_get_args()
-    );
-}
-
-/**
- * Evaluate an HTML or XML string and assert its structure and/or contents.
- *
- * The first argument ($matcher) is an associative array that specifies the
- * match criteria for the assertion:
- *
- *  - `id`   : the node with the given id attribute must match the
- * corresponding value.
- *  - `tag`  : the node type must match the corresponding value.
- *  - `attributes`   : a hash. The node's attributes must match the
- * corresponding values in the hash.
- *  - `content`  : The text content must match the given value.
- *  - `parent`   : a hash. The node's parent must match the
- * corresponding hash.
- *  - `child`: a hash. At least one of the node's immediate children
- * must meet the criteria described by the hash.
- *  - `ancestor` : a hash. At least one of the node's ancestors must
- * meet the criteria described by the hash.
- *  - `descendant`   : a hash. At least one of the node's descendants must
- * meet the criteria described by the hash.
- *  - `children` : a hash, for counting children of a node.
- * Accepts the keys:
- *- `count`: a number which must equal the number of children
- *   that match
- *- `less_than`: the number of matching children must be greater
- *   than this number
- *- `greater_than` : the number of matching children must be less than
- *   this number
- *- `only` : another hash consisting of the keys to use to match
- *   on the children, and only matching children will be
- *   counted
- *
- * <code>
- * // Matcher that asserts that there is an element with an id="my_id".
- * $matcher = array('id' => 'my_id');
- *
- * // Matcher that asserts that there is a "span" tag.
- * $matcher = array('tag' => 'span');
- *
- * // Matcher that asserts that there is a "span" tag with the content
- * // "Hello World".
- * $matcher = array('tag' => 'span', 'content' => 'Hello World');
- *
- * // Matcher that asserts that there is a "span" tag with content matching
- * // the regular expression pattern.
- * $matcher = array('tag' => 'span', 'content' => 'regexp:/Try P(HP|ython)/');
- *
- * // Matcher that asserts that there is a "span" with an "list" class
- * // attribute.
- * $matcher = array(
- *   'tag'=> 'span',
- *   'attributes' => array('class' => 'list')
- * );
- *
- * // Matcher that asserts that there is a "span" inside of a "div".
- * $matcher = array(
- *   'tag'=> 'span',
- *   'parent' => array('tag' => 'div')
- * );
- *
- * // Matcher that asserts that there is a "span" somewhere inside a
- * // "table".
- * $matcher = array(
- *   'tag'  => 'span',
- *   'ancestor' => array('tag' => 'table')
- * );
- *
- * // Matcher that asserts that there is a "span" with at least one "em"
- * // child.
- * $matcher = array(
- *   'tag'   => 'span',
- *   'child' => array('tag' => 'em')
- * );
- *
- * // Matcher that asserts that there is a "span" containing a (possibly
- * // nested) "strong" tag.
- * $matcher = array(
- *   'tag'=> 'span',
- *   'descendant' => array('tag' => 'strong')
- * );
- *
- * // Matcher that asserts that there is a "span" containing 5-10 "em" tags
- * // as immediate children.
- * $matcher = array(
- *   'tag'  => 'span',
- *   'children' => array(
- * 'less_than'=> 11,
- * 'greater_than' => 4,
- * 'only' => array('tag' => 'em')
- *   )
- * );
- *
- * // Matcher that asserts that there is a "div", with an "ul" ancestor and
- * // a "li" parent (with class="enum"), and containing a "span" descendant
- * // that contains an element with id="my_test" and the text "Hello World".
- * $matcher = array(
- *   'tag'=> 'div',
- *   'ancestor'   => array('tag' => 'ul'),
- *   'parent' => array(
- * 'tag'=> 'li',
- * 'attributes' => array('class' => 'enum')
- *   ),
- *   'descendant' => array(
- * 'tag'   => 'span',
- * 'child' => array(
- *   'id'  => 'my_test',
- *   'content' => 'Hello World'
- * )
- *   )
- * );
- *
- * // Use assertTag() to apply a $matcher to a piece of $html.
- * $this->assertTag($matcher, $html);
- *
- * // Use assertTag() to apply a $matcher to a piece of $xml.
- * $this->assertTag($matcher, $xml, '', false);
- * </code>
- *
- * The second argument ($actual) is a string containing either HTML or
- * XML text to be tested.
- *
- * The third argument ($message) is an optional message that will be
- * used if the assertion fails.
- *
- * The fourth argument ($html) is an optional flag specifying whether
- * to load the $actual string into a DOMDocument using the HTML or
- * XML load strategy.  It is true by default, which assumes the HTML
- * load strategy.  In many cases, this will be acceptable for XML as well.
- *
- * @param  array   $matcher
- * @param  string  $actual
- * @param  string  $message
- * @param  boolean $isHtml
- * @since  Method available since Release 3.3.0
- * @author Mike Naberezny <mike@maintainable.com>
- * @author Derek DeVries <derek@maintainable.com>
- */
-function assertTag($matcher, $actual, $message = '', $isHtml = true)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertTag',
-        func_get_args()
-    );
-}
-
-/**
- * Evaluates a PHPUnit_Framework_Constraint matcher object.
- *
- * @param  mixed$value
- * @param  PHPUnit_Framework_Constraint $constraint
- * @param  string   $message
- * @since  Method available since Release 3.0.0
- */
-function assertThat($value, PHPUnit_Framework_Constraint $constraint, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertThat',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that a condition is true.
- *
- * @param  boolean $condition
- * @param  string  $message
- * @throws PHPUnit_Framework_AssertionFailedError
- */
-function assertTrue($condition, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertTrue',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two XML files are equal.
- *
- * @param  string $expectedFile
- * @param  string $actualFile
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertXmlFileEqualsXmlFile($expectedFile, $actualFile, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertXmlFileEqualsXmlFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two XML files are not equal.
- *
- * @param  string $expectedFile
- * @param  string $actualFile
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertXmlFileNotEqualsXmlFile($expectedFile, $actualFile, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertXmlFileNotEqualsXmlFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two XML documents are equal.
- *
- * @param  string $expectedFile
- * @param  string $actualXml
- * @param  string $message
- * @since  Method available since Release 3.3.0
- */
-function assertXmlStringEqualsXmlFile($expectedFile, $actualXml, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertXmlStringEqualsXmlFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two XML documents are equal.
- *
- * @param  string $expectedXml
- * @param  string $actualXml
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertXmlStringEqualsXmlString($expectedXml, $actualXml, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two XML documents are not equal.
- *
- * @param  string $expectedFile
- * @param  string $actualXml
- * @param  string $message
- * @since  Method available since Release 3.3.0
- */
-function assertXmlStringNotEqualsXmlFile($expectedFile, $actualXml, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlFile',
-        func_get_args()
-    );
-}
-
-/**
- * Asserts that two XML documents are not equal.
- *
- * @param  string $expectedXml
- * @param  string $actualXml
- * @param  string $message
- * @since  Method available since Release 3.1.0
- */
-function assertXmlStringNotEqualsXmlString($expectedXml, $actualXml, $message = '')
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlString',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a matcher that matches when the method it is evaluated for
- * is invoked at the given $index.
- *
- * @param  integer $index
- * @return PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex
- * @since  Method available since Release 3.0.0
- */
-function at($index)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::at',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a matcher that matches when the method it is evaluated for
- * is executed at least once.
- *
- * @return PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce
- * @since  Method available since Release 3.0.0
- */
-function atLeastOnce()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::atLeastOnce',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Attribute matcher object.
- *
- * @param  PHPUnit_Framework_Constraint $constraint
- * @param  string   $attributeName
- * @return PHPUnit_Framework_Constraint_Attribute
- * @since  Method available since Release 3.1.0
- */
-function attribute(PHPUnit_Framework_Constraint $constraint, $attributeName)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::attribute',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsEqual matcher object
- * that is wrapped in a PHPUnit_Framework_Constraint_Attribute matcher
- * object.
- *
- * @param  string  $attributeName
- * @param  mixed   $value
- * @param  float   $delta
- * @param  integer $maxDepth
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @return PHPUnit_Framework_Constraint_Attribute
- * @since  Method available since Release 3.1.0
- */
-function attributeEqualTo($attributeName, $value, $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::attributeEqualTo',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Callback matcher object.
- *
- * @param callable $callback
- * @return PHPUnit_Framework_Constraint_Callback
- */
-function callback($callback)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::callback',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_ClassHasAttribute matcher object.
- *
- * @param  string $attributeName
- * @return PHPUnit_Framework_Constraint_ClassHasAttribute
- * @since  Method available since Release 3.1.0
- */
-function classHasAttribute($attributeName)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::classHasAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_ClassHasStaticAttribute matcher
- * object.
- *
- * @param  string $attributeName
- * @return PHPUnit_Framework_Constraint_ClassHasStaticAttribute
- * @since  Method available since Release 3.1.0
- */
-function classHasStaticAttribute($attributeName)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::classHasStaticAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_TraversableContains matcher
- * object.
- *
- * @param  mixed   $value
- * @param  boolean $checkForObjectIdentity
- * @param  boolean $checkForNonObjectIdentity
- * @return PHPUnit_Framework_Constraint_TraversableContains
- * @since  Method available since Release 3.0.0
- */
-function contains($value, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::contains',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_TraversableContainsOnly matcher
- * object.
- *
- * @param  string $type
- * @return PHPUnit_Framework_Constraint_TraversableContainsOnly
- * @since  Method available since Release 3.1.4
- */
-function containsOnly($type)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::containsOnly',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_TraversableContainsOnly matcher
- * object.
- *
- * @param string $classname
- * @return PHPUnit_Framework_Constraint_TraversableContainsOnly
- */
-function containsOnlyInstancesOf($classname)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::containsOnlyInstancesOf',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsEqual matcher object.
- *
- * @param  mixed   $value
- * @param  float   $delta
- * @param  integer $maxDepth
- * @param  boolean $canonicalize
- * @param  boolean $ignoreCase
- * @return PHPUnit_Framework_Constraint_IsEqual
- * @since  Method available since Release 3.0.0
- */
-function equalTo($value, $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::equalTo',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a matcher that matches when the method it is evaluated for
- * is executed exactly $count times.
- *
- * @param  integer $count
- * @return PHPUnit_Framework_MockObject_Matcher_InvokedCount
- * @since  Method available since Release 3.0.0
- */
-function exactly($count)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::exactly',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_FileExists matcher object.
- *
- * @return PHPUnit_Framework_Constraint_FileExists
- * @since  Method available since Release 3.0.0
- */
-function fileExists()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::fileExists',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_GreaterThan matcher object.
- *
- * @param  mixed $value
- * @return PHPUnit_Framework_Constraint_GreaterThan
- * @since  Method available since Release 3.0.0
- */
-function greaterThan($value)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::greaterThan',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Or matcher object that wraps
- * a PHPUnit_Framework_Constraint_IsEqual and a
- * PHPUnit_Framework_Constraint_GreaterThan matcher object.
- *
- * @param  mixed $value
- * @return PHPUnit_Framework_Constraint_Or
- * @since  Method available since Release 3.1.0
- */
-function greaterThanOrEqual($value)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::greaterThanOrEqual',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsIdentical matcher object.
- *
- * @param  mixed $value
- * @return PHPUnit_Framework_Constraint_IsIdentical
- * @since  Method available since Release 3.0.0
- */
-function identicalTo($value)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::identicalTo',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsEmpty matcher object.
- *
- * @return PHPUnit_Framework_Constraint_IsEmpty
- * @since  Method available since Release 3.5.0
- */
-function isEmpty()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isEmpty',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsFalse matcher object.
- *
- * @return PHPUnit_Framework_Constraint_IsFalse
- * @since  Method available since Release 3.3.0
- */
-function isFalse()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isFalse',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsInstanceOf matcher object.
- *
- * @param  string $className
- * @return PHPUnit_Framework_Constraint_IsInstanceOf
- * @since  Method available since Release 3.0.0
- */
-function isInstanceOf($className)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isInstanceOf',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsJson matcher object.
- *
- * @return PHPUnit_Framework_Constraint_IsJson
- * @since  Method available since Release 3.7.20
- */
-function isJson()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isJson',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsNull matcher object.
- *
- * @return PHPUnit_Framework_Constraint_IsNull
- * @since  Method available since Release 3.3.0
- */
-function isNull()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isNull',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsTrue matcher object.
- *
- * @return PHPUnit_Framework_Constraint_IsTrue
- * @since  Method available since Release 3.3.0
- */
-function isTrue()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isTrue',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_IsType matcher object.
- *
- * @param  string $type
- * @return PHPUnit_Framework_Constraint_IsType
- * @since  Method available since Release 3.0.0
- */
-function isType($type)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::isType',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_LessThan matcher object.
- *
- * @param  mixed $value
- * @return PHPUnit_Framework_Constraint_LessThan
- * @since  Method available since Release 3.0.0
- */
-function lessThan($value)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::lessThan',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Or matcher object that wraps
- * a PHPUnit_Framework_Constraint_IsEqual and a
- * PHPUnit_Framework_Constraint_LessThan matcher object.
- *
- * @param  mixed $value
- * @return PHPUnit_Framework_Constraint_Or
- * @since  Method available since Release 3.1.0
- */
-function lessThanOrEqual($value)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::lessThanOrEqual',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_And matcher object.
- *
- * @return PHPUnit_Framework_Constraint_And
- * @since  Method available since Release 3.0.0
- */
-function logicalAnd()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::logicalAnd',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Not matcher object.
- *
- * @param  PHPUnit_Framework_Constraint $constraint
- * @return PHPUnit_Framework_Constraint_Not
- * @since  Method available since Release 3.0.0
- */
-function logicalNot(PHPUnit_Framework_Constraint $constraint)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::logicalNot',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Or matcher object.
- *
- * @return PHPUnit_Framework_Constraint_Or
- * @since  Method available since Release 3.0.0
- */
-function logicalOr()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::logicalOr',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_Xor matcher object.
- *
- * @return PHPUnit_Framework_Constraint_Xor
- * @since  Method available since Release 3.0.0
- */
-function logicalXor()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::logicalXor',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_StringMatches matcher object.
- *
- * @param  string $string
- * @return PHPUnit_Framework_Constraint_StringMatches
- * @since  Method available since Release 3.5.0
- */
-function matches($string)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::matches',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_PCREMatch matcher object.
- *
- * @param  string $pattern
- * @return PHPUnit_Framework_Constraint_PCREMatch
- * @since  Method available since Release 3.0.0
- */
-function matchesRegularExpression($pattern)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::matchesRegularExpression',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a matcher that matches when the method it is evaluated for
- * is never executed.
- *
- * @return PHPUnit_Framework_MockObject_Matcher_InvokedCount
- * @since  Method available since Release 3.0.0
- */
-function never()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::never',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_ObjectHasAttribute matcher object.
- *
- * @param  string $attributeName
- * @return PHPUnit_Framework_Constraint_ObjectHasAttribute
- * @since  Method available since Release 3.0.0
- */
-function objectHasAttribute($attributeName)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::objectHasAttribute',
-        func_get_args()
-    );
-}
-
-/**
- * @param  mixed $value, ...
- * @return PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls
- * @since  Method available since Release 3.0.0
- */
-function onConsecutiveCalls()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::onConsecutiveCalls',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a matcher that matches when the method it is evaluated for
- * is executed exactly once.
- *
- * @return PHPUnit_Framework_MockObject_Matcher_InvokedCount
- * @since  Method available since Release 3.0.0
- */
-function once()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::once',
-        func_get_args()
-    );
-}
-
-/**
- *
- *
- * @param  integer $argumentIndex
- * @return PHPUnit_Framework_MockObject_Stub_ReturnArgument
- * @since  Method available since Release 3.3.0
- */
-function returnArgument($argumentIndex)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::returnArgument',
-        func_get_args()
-    );
-}
-
-/**
- *
- *
- * @param  mixed $callback
- * @return PHPUnit_Framework_MockObject_Stub_ReturnCallback
- * @since  Method available since Release 3.3.0
- */
-function returnCallback($callback)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::returnCallback',
-        func_get_args()
-    );
-}
-
-/**
- * Returns the current object.
- *
- * This method is useful when mocking a fluent interface.
- *
- * @return PHPUnit_Framework_MockObject_Stub_ReturnSelf
- * @since  Method available since Release 3.6.0
- */
-function returnSelf()
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::returnSelf',
-        func_get_args()
-    );
-}
-
-/**
- *
- *
- * @param  mixed $value
- * @return PHPUnit_Framework_MockObject_Stub_Return
- * @since  Method available since Release 3.0.0
- */
-function returnValue($value)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::returnValue',
-        func_get_args()
-    );
-}
-
-/**
- *
- *
- * @param  array $valueMap
- * @return PHPUnit_Framework_MockObject_Stub_ReturnValueMap
- * @since  Method available since Release 3.6.0
- */
-function returnValueMap(array $valueMap)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::returnValueMap',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_StringContains matcher object.
- *
- * @param  string  $string
- * @param  boolean $case
- * @return PHPUnit_Framework_Constraint_StringContains
- * @since  Method available since Release 3.0.0
- */
-function stringContains($string, $case = true)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::stringContains',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_StringEndsWith matcher object.
- *
- * @param  mixed $suffix
- * @return PHPUnit_Framework_Constraint_StringEndsWith
- * @since  Method available since Release 3.4.0
- */
-function stringEndsWith($suffix)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::stringEndsWith',
-        func_get_args()
-    );
-}
-
-/**
- * Returns a PHPUnit_Framework_Constraint_StringStartsWith matcher object.
- *
- * @param  mixed $prefix
- * @return PHPUnit_Framework_Constraint_StringStartsWith
- * @since  Method available since Release 3.4.0
- */
-function stringStartsWith($prefix)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_Assert::stringStartsWith',
-        func_get_args()
-    );
-}
-
-/**
- *
- *
- * @param  Exception $exception
- * @return PHPUnit_Framework_MockObject_Stub_Exception
- * @since  Method available since Release 3.1.0
- */
-function throwException(Exception $exception)
-{
-    return call_user_func_array(
-        'PHPUnit_Framework_TestCase::throwException',
-        func_get_args()
-    );
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php b/core/vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php
deleted file mode 100644
index 4c0d137..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Thrown when an assertion failed.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Framework_AssertionFailedError extends PHPUnit_Framework_Exception implements PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * Wrapper for getMessage() which is declared as final.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->getMessage();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/BaseTestListener.php b/core/vendor/phpunit/phpunit/src/Framework/BaseTestListener.php
deleted file mode 100644
index 4996386..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/BaseTestListener.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * An empty Listener that can be extended to implement TestListener
- * with just a few lines of code.
- * @see PHPUnit_Framework_TestListener for documentation on the API methods.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Giorgio Sironi<info@giorgiosironi.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-abstract class PHPUnit_Framework_BaseTestListener implements PHPUnit_Framework_TestListener
-{
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-    }
-
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-    }
-
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-    }
-
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php b/core/vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php
deleted file mode 100644
index 7019cca..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Framework_CodeCoverageException extends PHPUnit_Framework_Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint.php
deleted file mode 100644
index 63d3b08..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Exporter\Exporter;
-
-/**
- * Abstract base class for constraints. which are placed upon any value.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 3.0.0
- */
-abstract class PHPUnit_Framework_Constraint implements Countable, PHPUnit_Framework_SelfDescribing
-{
-    protected $exporter;
-
-    public function __construct()
-    {
-        $this->exporter = new Exporter;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        $success = false;
-
-        if ($this->matches($other)) {
-            $success = true;
-        }
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * This method can be overridden to implement the evaluation algorithm.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return false;
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     * @since  Method available since Release 3.4.0
-     */
-    public function count()
-    {
-        return 1;
-    }
-
-    /**
-     * Throws an exception for the given compared value and test description
-     *
-     * @param  mixed $other Evaluated value or object.
-     * @param  string $description Additional information about the test
-     * @param  SebastianBergmann\Comparator\ComparisonFailure $comparisonFailure
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    protected function fail($other, $description, SebastianBergmann\Comparator\ComparisonFailure $comparisonFailure = null)
-    {
-        $failureDescription = sprintf(
-            'Failed asserting that %s.',
-            $this->failureDescription($other)
-        );
-
-        $additionalFailureDescription = $this->additionalFailureDescription($other);
-
-        if ($additionalFailureDescription) {
-            $failureDescription .= "\n" . $additionalFailureDescription;
-        }
-
-        if (!empty($description)) {
-            $failureDescription = $description . "\n" . $failureDescription;
-        }
-
-        throw new PHPUnit_Framework_ExpectationFailedException(
-            $failureDescription,
-            $comparisonFailure
-        );
-    }
-
-    /**
-     * Return additional failure description where needed
-     *
-     * The function can be overridden to provide additional failure
-     * information like a diff
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function additionalFailureDescription($other)
-    {
-        return '';
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * To provide additional failure information additionalFailureDescription
-     * can be used.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return $this->exporter->export($other) . ' ' . $this->toString();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/And.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/And.php
deleted file mode 100644
index 97dead4..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/And.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Logical AND.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_And extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var PHPUnit_Framework_Constraint[]
-     */
-    protected $constraints = array();
-
-    /**
-     * @var PHPUnit_Framework_Constraint
-     */
-    protected $lastConstraint = null;
-
-    /**
-     * @param  PHPUnit_Framework_Constraint[] $constraints
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function setConstraints(array $constraints)
-    {
-        $this->constraints = array();
-
-        foreach ($constraints as $constraint) {
-            if (!($constraint instanceof PHPUnit_Framework_Constraint)) {
-                throw new PHPUnit_Framework_Exception(
-                    'All parameters to ' . __CLASS__ .
-                    ' must be a constraint object.'
-                );
-            }
-
-            $this->constraints[] = $constraint;
-        }
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        $success = true;
-        $constraint = null;
-
-        foreach ($this->constraints as $constraint) {
-            if (!$constraint->evaluate($other, $description, true)) {
-                $success = false;
-                break;
-            }
-        }
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        $text = '';
-
-        foreach ($this->constraints as $key => $constraint) {
-            if ($key > 0) {
-                $text .= ' and ';
-            }
-
-            $text .= $constraint->toString();
-        }
-
-        return $text;
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     * @since  Method available since Release 3.4.0
-     */
-    public function count()
-    {
-        $count = 0;
-
-        foreach ($this->constraints as $constraint) {
-            $count += count($constraint);
-        }
-
-        return $count;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php
deleted file mode 100644
index fc4a280..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the array it is evaluated for has a given key.
- *
- * Uses array_key_exists() to check if the key is found in the input array, if
- * not found the evaluation fails.
- *
- * The array key is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_ArrayHasKey extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var integer|string
-     */
-    protected $key;
-
-    /**
-     * @param integer|string $key
-     */
-    public function __construct($key)
-    {
-        parent::__construct();
-        $this->key = $key;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        if (is_array($other)) {
-            return array_key_exists($this->key, $other);
-        }
-
-        if ($other instanceof ArrayAccess) {
-            return $other->offsetExists($this->key);
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'has the key ' . $this->exporter->export($this->key);
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return 'an array ' . $this->toString();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php
deleted file mode 100644
index dbf28ca..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the array it is evaluated for has a specified subset.
- *
- * Uses array_replace_recursive() to check if a key value subset is part of the
- * subject array.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Márcio Almada <marcio3w@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.4.0
- */
-class PHPUnit_Framework_Constraint_ArraySubset extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var array|ArrayAccess
-     */
-    protected $subset;
-
-    /**
-     * @var boolean
-     */
-    protected $strict;
-
-    /**
-     * @param array|ArrayAccess $subset
-     * @param boolean           $strict Check for object identity
-     */
-    public function __construct($subset, $strict = false)
-    {
-        parent::__construct();
-        $this->strict  = $strict;
-        $this->subset = $subset;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  array|ArrayAccess $other  Array or ArrayAcess object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        $patched = array_replace_recursive($other, $this->subset);
-
-        if ($this->strict) {
-            return $other === $patched;
-        } else {
-            return $other == $patched;
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'has the subset ' . $this->exporter->export($this->subset);
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return 'an array ' . $this->toString();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php
deleted file mode 100644
index 48f8194..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.0
- */
-class PHPUnit_Framework_Constraint_Attribute extends PHPUnit_Framework_Constraint_Composite
-{
-    /**
-     * @var string
-     */
-    protected $attributeName;
-
-    /**
-     * @param PHPUnit_Framework_Constraint $constraint
-     * @param string                       $attributeName
-     */
-    public function __construct(PHPUnit_Framework_Constraint $constraint, $attributeName)
-    {
-        parent::__construct($constraint);
-
-        $this->attributeName = $attributeName;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        return parent::evaluate(
-            PHPUnit_Framework_Assert::readAttribute(
-                $other,
-                $this->attributeName
-            ),
-            $description,
-            $returnResult
-        );
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'attribute "' . $this->attributeName . '" ' .
-               $this->innerConstraint->toString();
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return $this->toString();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php
deleted file mode 100644
index 690c58c..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that evaluates against a specified closure.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Timon Rapp <timon@zaeda.net>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- */
-class PHPUnit_Framework_Constraint_Callback extends PHPUnit_Framework_Constraint
-{
-    private $callback;
-
-    /**
-     * @param  callable                    $callback
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($callback)
-    {
-        if (!is_callable($callback)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'callable'
-            );
-        }
-
-        parent::__construct();
-
-        $this->callback = $callback;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $value. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return call_user_func($this->callback, $other);
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is accepted by specified callback';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php
deleted file mode 100644
index 54edf01..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the class it is evaluated for has a given
- * attribute.
- *
- * The attribute name is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.0
- */
-class PHPUnit_Framework_Constraint_ClassHasAttribute extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $attributeName;
-
-    /**
-     * @param string $attributeName
-     */
-    public function __construct($attributeName)
-    {
-        parent::__construct();
-        $this->attributeName = $attributeName;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        $class = new ReflectionClass($other);
-
-        return $class->hasProperty($this->attributeName);
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'has attribute "%s"',
-            $this->attributeName
-        );
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            '%sclass "%s" %s',
-            is_object($other) ? 'object of ' : '',
-            is_object($other) ? get_class($other) : $other,
-            $this->toString()
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php
deleted file mode 100644
index 47a982a..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the class it is evaluated for has a given
- * static attribute.
- *
- * The attribute name is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.0
- */
-class PHPUnit_Framework_Constraint_ClassHasStaticAttribute extends PHPUnit_Framework_Constraint_ClassHasAttribute
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        $class = new ReflectionClass($other);
-
-        if ($class->hasProperty($this->attributeName)) {
-            $attribute = $class->getProperty($this->attributeName);
-
-            return $attribute->isStatic();
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     * @since  Method available since Release 3.3.0
-     */
-    public function toString()
-    {
-        return sprintf(
-            'has static attribute "%s"',
-            $this->attributeName
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php
deleted file mode 100644
index 34f39e7..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.0
- */
-abstract class PHPUnit_Framework_Constraint_Composite extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var PHPUnit_Framework_Constraint
-     */
-    protected $innerConstraint;
-
-    /**
-     * @param PHPUnit_Framework_Constraint $innerConstraint
-     */
-    public function __construct(PHPUnit_Framework_Constraint $innerConstraint)
-    {
-        parent::__construct();
-        $this->innerConstraint = $innerConstraint;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        try {
-            return $this->innerConstraint->evaluate(
-                $other,
-                $description,
-                $returnResult
-            );
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return count($this->innerConstraint);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Count.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Count.php
deleted file mode 100644
index d7c48b1..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Count.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class PHPUnit_Framework_Constraint_Count extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var integer
-     */
-    protected $expectedCount = 0;
-
-    /**
-     * @param integer $expected
-     */
-    public function __construct($expected)
-    {
-        parent::__construct();
-        $this->expectedCount = $expected;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed   $other
-     * @return boolean
-     */
-    protected function matches($other)
-    {
-        return $this->expectedCount === $this->getCountOf($other);
-    }
-
-    /**
-     * @param  mixed   $other
-     * @return boolean
-     */
-    protected function getCountOf($other)
-    {
-        if ($other instanceof Countable || is_array($other)) {
-            return count($other);
-        } elseif ($other instanceof Traversable) {
-            if ($other instanceof IteratorAggregate) {
-                $iterator = $other->getIterator();
-            } else {
-                $iterator = $other;
-            }
-
-            $key = $iterator->key();
-            $count = iterator_count($iterator);
-
-            // manually rewind $iterator to previous key, since iterator_count
-            // moves pointer
-            if ($key !== null) {
-                $iterator->rewind();
-                while ($iterator->valid() && $key !== $iterator->key()) {
-                    $iterator->next();
-                }
-            }
-
-            return $count;
-        }
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            'actual size %d matches expected size %d',
-            $this->getCountOf($other),
-            $this->expectedCount
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'count matches %d',
-            $this->expectedCount
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php
deleted file mode 100644
index cc3e84d..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.6
- */
-class PHPUnit_Framework_Constraint_Exception extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $className;
-
-    /**
-     * @param string $className
-     */
-    public function __construct($className)
-    {
-        parent::__construct();
-        $this->className = $className;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return $other instanceof $this->className;
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        if ($other !== null) {
-            $message = '';
-            if ($other instanceof Exception) {
-                $message = '. Message was: "' . $other->getMessage() . '" at'
-                        . "\n" . $other->getTraceAsString();
-            }
-
-            return sprintf(
-                'exception of type "%s" matches expected exception "%s"%s',
-                get_class($other),
-                $this->className,
-                $message
-            );
-        }
-
-        return sprintf(
-            'exception of type "%s" is thrown',
-            $this->className
-        );
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'exception of type "%s"',
-            $this->className
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php
deleted file mode 100644
index 6fecf99..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.6
- */
-class PHPUnit_Framework_Constraint_ExceptionCode extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var integer
-     */
-    protected $expectedCode;
-
-    /**
-     * @param integer $expected
-     */
-    public function __construct($expected)
-    {
-        parent::__construct();
-        $this->expectedCode = $expected;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  Exception $other
-     * @return boolean
-     */
-    protected function matches($other)
-    {
-        return (string) $other->getCode() == (string) $this->expectedCode;
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            '%s is equal to expected exception code %s',
-            $this->exporter->export($other->getCode()),
-            $this->exporter->export($this->expectedCode)
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'exception code is ';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php
deleted file mode 100644
index 2382891..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.6
- */
-class PHPUnit_Framework_Constraint_ExceptionMessage extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var integer
-     */
-    protected $expectedMessage;
-
-    /**
-     * @param string $expected
-     */
-    public function __construct($expected)
-    {
-        parent::__construct();
-        $this->expectedMessage = $expected;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  Exception $other
-     * @return boolean
-     */
-    protected function matches($other)
-    {
-        return strpos($other->getMessage(), $this->expectedMessage) !== false;
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            "exception message '%s' contains '%s'",
-            $other->getMessage(),
-            $this->expectedMessage
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return 'exception message contains ';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php
deleted file mode 100644
index cdd0602..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Márcio Almada <marcio3w@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.3.0
- */
-class PHPUnit_Framework_Constraint_ExceptionMessageRegExp extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var integer
-     */
-    protected $expectedMessageRegExp;
-
-    /**
-     * @param string $expected
-     */
-    public function __construct($expected)
-    {
-        parent::__construct();
-        $this->expectedMessageRegExp = $expected;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  Exception $other
-     * @return boolean
-     */
-    protected function matches($other)
-    {
-        $match = PHPUnit_Util_Regex::pregMatchSafe($this->expectedMessageRegExp, $other->getMessage());
-
-        if (false === $match) {
-            throw new PHPUnit_Framework_Exception(
-                "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'"
-            );
-        }
-
-        return 1 === $match;
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            "exception message '%s' matches '%s'",
-            $other->getMessage(),
-            $this->expectedMessageRegExp
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return "exception message matches ";
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php
deleted file mode 100644
index ec32b90..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that checks if the file(name) that it is evaluated for exists.
- *
- * The file path to check is passed as $other in evaluate().
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_FileExists extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return file_exists($other);
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            'file "%s" exists',
-            $other
-        );
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'file exists';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php
deleted file mode 100644
index 85a0ed7..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the value it is evaluated for is greater
- * than a given value.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_GreaterThan extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var numeric
-     */
-    protected $value;
-
-    /**
-     * @param numeric $value
-     */
-    public function __construct($value)
-    {
-        parent::__construct();
-        $this->value = $value;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return $this->value < $other;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is greater than ' . $this->exporter->export($this->value);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php
deleted file mode 100644
index ea920f2..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that accepts any input value.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_IsAnything extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        return $returnResult ? true : null;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is anything';
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     * @since  Method available since Release 3.5.0
-     */
-    public function count()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php
deleted file mode 100644
index 9a7985b..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that checks whether a variable is empty().
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.5.0
- */
-class PHPUnit_Framework_Constraint_IsEmpty extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        if ($other instanceof Countable) {
-            return count($other) === 0;
-        }
-
-        return empty($other);
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is empty';
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        $type = gettype($other);
-
-        return sprintf(
-            '%s %s %s',
-            $type[0] == 'a' || $type[0] == 'o' ? 'an' : 'a',
-            $type,
-            $this->toString()
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php
deleted file mode 100644
index ecc9b96..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that checks if one value is equal to another.
- *
- * Equality is checked with PHP's == operator, the operator is explained in
- * detail at {@url http://www.php.net/manual/en/types.comparisons.php}.
- * Two values are equal if they have the same value disregarding type.
- *
- * The expected value is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Kore Nordmann <kn@ez.no>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_IsEqual extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var mixed
-     */
-    protected $value;
-
-    /**
-     * @var float
-     */
-    protected $delta = 0.0;
-
-    /**
-     * @var integer
-     */
-    protected $maxDepth = 10;
-
-    /**
-     * @var boolean
-     */
-    protected $canonicalize = false;
-
-    /**
-     * @var boolean
-     */
-    protected $ignoreCase = false;
-
-    /**
-     * @var SebastianBergmann\Comparator\ComparisonFailure
-     */
-    protected $lastFailure;
-
-    /**
-     * @param  mixed                       $value
-     * @param  float                       $delta
-     * @param  integer                     $maxDepth
-     * @param  boolean                     $canonicalize
-     * @param  boolean                     $ignoreCase
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($value, $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false)
-    {
-        parent::__construct();
-
-        if (!is_numeric($delta)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'numeric');
-        }
-
-        if (!is_int($maxDepth)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'integer');
-        }
-
-        if (!is_bool($canonicalize)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(4, 'boolean');
-        }
-
-        if (!is_bool($ignoreCase)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(5, 'boolean');
-        }
-
-        $this->value        = $value;
-        $this->delta        = $delta;
-        $this->maxDepth     = $maxDepth;
-        $this->canonicalize = $canonicalize;
-        $this->ignoreCase   = $ignoreCase;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        // If $this->value and $other are identical, they are also equal.
-        // This is the most common path and will allow us to skip
-        // initialization of all the comparators.
-        if ($this->value === $other) {
-            return true;
-        }
-
-        $comparatorFactory = SebastianBergmann\Comparator\Factory::getInstance();
-
-        try {
-            $comparator = $comparatorFactory->getComparatorFor(
-                $this->value,
-                $other
-            );
-
-            $comparator->assertEquals(
-                $this->value,
-                $other,
-                $this->delta,
-                $this->canonicalize,
-                $this->ignoreCase
-            );
-        } catch (SebastianBergmann\Comparator\ComparisonFailure $f) {
-            if ($returnResult) {
-                return false;
-            }
-
-            throw new PHPUnit_Framework_ExpectationFailedException(
-                trim($description . "\n" . $f->getMessage()),
-                $f
-            );
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        $delta = '';
-
-        if (is_string($this->value)) {
-            if (strpos($this->value, "\n") !== false) {
-                return 'is equal to <text>';
-            } else {
-                return sprintf(
-                    'is equal to <string:%s>',
-                    $this->value
-                );
-            }
-        } else {
-            if ($this->delta != 0) {
-                $delta = sprintf(
-                    ' with delta <%F>',
-                    $this->delta
-                );
-            }
-
-            return sprintf(
-                'is equal to %s%s',
-                $this->exporter->export($this->value),
-                $delta
-            );
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php
deleted file mode 100644
index c6d441a..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that accepts false.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Framework_Constraint_IsFalse extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return $other === false;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is false';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php
deleted file mode 100644
index f8c8697..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that one value is identical to another.
- *
- * Identical check is performed with PHP's === operator, the operator is
- * explained in detail at
- * {@url http://www.php.net/manual/en/types.comparisons.php}.
- * Two values are identical if they have the same value and are of the same
- * type.
- *
- * The expected value is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_IsIdentical extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var float
-     */
-    const EPSILON = 0.0000000001;
-
-    /**
-     * @var mixed
-     */
-    protected $value;
-
-    /**
-     * @param mixed $value
-     */
-    public function __construct($value)
-    {
-        parent::__construct();
-        $this->value = $value;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        if (is_double($this->value) && is_double($other) &&
-            !is_infinite($this->value) && !is_infinite($other) &&
-            !is_nan($this->value) && !is_nan($other)) {
-            $success = abs($this->value - $other) < self::EPSILON;
-        } else {
-            $success = $this->value === $other;
-        }
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $f = null;
-
-            // if both values are strings, make sure a diff is generated
-            if (is_string($this->value) && is_string($other)) {
-                $f = new SebastianBergmann\Comparator\ComparisonFailure(
-                    $this->value,
-                    $other,
-                    $this->value,
-                    $other
-                );
-            }
-
-            $this->fail($other, $description, $f);
-        }
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        if (is_object($this->value) && is_object($other)) {
-            return 'two variables reference the same object';
-        }
-
-        if (is_string($this->value) && is_string($other)) {
-            return 'two strings are identical';
-        }
-
-        return parent::failureDescription($other);
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        if (is_object($this->value)) {
-            return 'is identical to an object of class "' .
-                   get_class($this->value) . '"';
-        } else {
-            return 'is identical to ' .
-                   $this->exporter->export($this->value);
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php
deleted file mode 100644
index 24aa2ff..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the object it is evaluated for is an instance
- * of a given class.
- *
- * The expected class name is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_IsInstanceOf extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $className;
-
-    /**
-     * @param string $className
-     */
-    public function __construct($className)
-    {
-        parent::__construct();
-        $this->className = $className;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return ($other instanceof $this->className);
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            '%s is an instance of %s "%s"',
-            $this->exporter->shortenedExport($other),
-            $this->getType(),
-            $this->className
-        );
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'is instance of %s "%s"',
-            $this->getType(),
-            $this->className
-        );
-    }
-
-    private function getType()
-    {
-        try {
-            $reflection = new ReflectionClass($this->className);
-            if ($reflection->isInterface()) {
-                return 'interface';
-            }
-        } catch (ReflectionException $e) {
-        }
-
-        return 'class';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php
deleted file mode 100644
index c541d3e..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that a string is valid JSON.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.7.20
- */
-class PHPUnit_Framework_Constraint_IsJson extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        json_decode($other);
-        if (json_last_error()) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        json_decode($other);
-        $error = PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::determineJsonError(
-            json_last_error()
-        );
-
-        return sprintf(
-            '%s is valid JSON (%s)',
-            $this->exporter->shortenedExport($other),
-            $error
-        );
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is valid JSON';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php
deleted file mode 100644
index 7ee492c..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that accepts null.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Framework_Constraint_IsNull extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return $other === null;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is null';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php
deleted file mode 100644
index 1d15fb2..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that accepts true.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Framework_Constraint_IsTrue extends PHPUnit_Framework_Constraint
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return $other === true;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is true';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php
deleted file mode 100644
index 6f682c5..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the value it is evaluated for is of a
- * specified type.
- *
- * The expected value is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_IsType extends PHPUnit_Framework_Constraint
-{
-    const TYPE_ARRAY    = 'array';
-    const TYPE_BOOL     = 'bool';
-    const TYPE_FLOAT    = 'float';
-    const TYPE_INT      = 'int';
-    const TYPE_NULL     = 'null';
-    const TYPE_NUMERIC  = 'numeric';
-    const TYPE_OBJECT   = 'object';
-    const TYPE_RESOURCE = 'resource';
-    const TYPE_STRING   = 'string';
-    const TYPE_SCALAR   = 'scalar';
-    const TYPE_CALLABLE = 'callable';
-
-    /**
-     * @var array
-     */
-    protected $types = array(
-      'array' => true,
-      'boolean' => true,
-      'bool' => true,
-      'double' => true,
-      'float' => true,
-      'integer' => true,
-      'int' => true,
-      'null' => true,
-      'numeric' => true,
-      'object' => true,
-      'resource' => true,
-      'string' => true,
-      'scalar' => true,
-      'callable' => true
-    );
-
-    /**
-     * @var string
-     */
-    protected $type;
-
-    /**
-     * @param  string                      $type
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($type)
-    {
-        parent::__construct();
-
-        if (!isset($this->types[$type])) {
-            throw new PHPUnit_Framework_Exception(
-                sprintf(
-                    'Type specified for PHPUnit_Framework_Constraint_IsType <%s> ' .
-                    'is not a valid type.',
-                    $type
-                )
-            );
-        }
-
-        $this->type = $type;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        switch ($this->type) {
-            case 'numeric': {
-                return is_numeric($other);
-                }
-
-            case 'integer':
-            case 'int': {
-                return is_integer($other);
-                }
-
-            case 'double':
-            case 'float': {
-                return is_float($other);
-                }
-
-            case 'string': {
-                return is_string($other);
-                }
-
-            case 'boolean':
-            case 'bool': {
-                return is_bool($other);
-                }
-
-            case 'null': {
-                return is_null($other);
-                }
-
-            case 'array': {
-                return is_array($other);
-                }
-
-            case 'object': {
-                return is_object($other);
-                }
-
-            case 'resource': {
-                return is_resource($other) || is_string(@get_resource_type($other));
-                }
-
-            case 'scalar': {
-                return is_scalar($other);
-                }
-
-            case 'callable': {
-                return is_callable($other);
-                }
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'is of type "%s"',
-            $this->type
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php
deleted file mode 100644
index 410ba47..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Asserts whether or not two JSON objects are equal.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Bastian Feder <php@bastian-feder.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.7.0
- */
-class PHPUnit_Framework_Constraint_JsonMatches extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $value;
-
-    /**
-     * Creates a new constraint.
-     *
-     * @param string $value
-     */
-    public function __construct($value)
-    {
-        parent::__construct();
-        $this->value = $value;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * This method can be overridden to implement the evaluation algorithm.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        $decodedOther = json_decode($other);
-        if (json_last_error()) {
-            return false;
-        }
-
-        $decodedValue = json_decode($this->value);
-        if (json_last_error()) {
-            return false;
-        }
-
-        return $decodedOther == $decodedValue;
-    }
-
-    /**
-     * Returns a string representation of the object.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'matches JSON string "%s"',
-            $this->value
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php
deleted file mode 100644
index fb9202e..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Provides human readable messages for each JSON error.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Bastian Feder <php@bastian-feder.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.7.0
- */
-class PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider
-{
-    /**
-     * Translates JSON error to a human readable string.
-     *
-     * @param  string $error
-     * @param  string $prefix
-     * @return string
-     */
-    public static function determineJsonError($error, $prefix = '')
-    {
-        switch ($error) {
-            case JSON_ERROR_NONE:
-                return;
-            case JSON_ERROR_DEPTH:
-                return $prefix . 'Maximum stack depth exceeded';
-            case JSON_ERROR_STATE_MISMATCH:
-                return $prefix . 'Underflow or the modes mismatch';
-            case JSON_ERROR_CTRL_CHAR:
-                return $prefix . 'Unexpected control character found';
-            case JSON_ERROR_SYNTAX:
-                return $prefix . 'Syntax error, malformed JSON';
-            case JSON_ERROR_UTF8:
-                return $prefix . 'Malformed UTF-8 characters, possibly incorrectly encoded';
-            default:
-                return $prefix . 'Unknown error';
-        }
-    }
-
-    /**
-     * Translates a given type to a human readable message prefix.
-     *
-     * @param  string $type
-     * @return string
-     */
-    public static function translateTypeToPrefix($type)
-    {
-        switch (strtolower($type)) {
-            case 'expected':
-                $prefix = 'Expected value JSON decode error - ';
-                break;
-            case 'actual':
-                $prefix = 'Actual value JSON decode error - ';
-                break;
-            default:
-                $prefix = '';
-                break;
-        }
-
-        return $prefix;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php
deleted file mode 100644
index 2aa3806..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the value it is evaluated for is less than
- * a given value.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_LessThan extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var numeric
-     */
-    protected $value;
-
-    /**
-     * @param numeric $value
-     */
-    public function __construct($value)
-    {
-        parent::__construct();
-        $this->value = $value;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return $this->value > $other;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'is less than ' . $this->exporter->export($this->value);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Not.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Not.php
deleted file mode 100644
index 2779ec5..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Not.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Logical NOT.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_Not extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var PHPUnit_Framework_Constraint
-     */
-    protected $constraint;
-
-    /**
-     * @param PHPUnit_Framework_Constraint $constraint
-     */
-    public function __construct($constraint)
-    {
-        parent::__construct();
-
-        if (!($constraint instanceof PHPUnit_Framework_Constraint)) {
-            $constraint = new PHPUnit_Framework_Constraint_IsEqual($constraint);
-        }
-
-        $this->constraint = $constraint;
-    }
-
-    /**
-     * @param  string $string
-     * @return string
-     */
-    public static function negate($string)
-    {
-        return str_replace(
-            array(
-            'contains ',
-            'exists',
-            'has ',
-            'is ',
-            'are ',
-            'matches ',
-            'starts with ',
-            'ends with ',
-            'reference ',
-            'not not '
-            ),
-            array(
-            'does not contain ',
-            'does not exist',
-            'does not have ',
-            'is not ',
-            'are not ',
-            'does not match ',
-            'starts not with ',
-            'ends not with ',
-            'don\'t reference ',
-            'not '
-            ),
-            $string
-        );
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        $success = !$this->constraint->evaluate($other, $description, true);
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        switch (get_class($this->constraint)) {
-            case 'PHPUnit_Framework_Constraint_And':
-            case 'PHPUnit_Framework_Constraint_Not':
-            case 'PHPUnit_Framework_Constraint_Or': {
-                return 'not( ' . $this->constraint->failureDescription($other) . ' )';
-                }
-            break;
-
-            default: {
-                return self::negate(
-                    $this->constraint->failureDescription($other)
-                );
-                }
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        switch (get_class($this->constraint)) {
-            case 'PHPUnit_Framework_Constraint_And':
-            case 'PHPUnit_Framework_Constraint_Not':
-            case 'PHPUnit_Framework_Constraint_Or': {
-                return 'not( ' . $this->constraint->toString() . ' )';
-                }
-            break;
-
-            default: {
-                return self::negate(
-                    $this->constraint->toString()
-                );
-                }
-        }
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     * @since  Method available since Release 3.4.0
-     */
-    public function count()
-    {
-        return count($this->constraint);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php
deleted file mode 100644
index fa56a93..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the object it is evaluated for has a given
- * attribute.
- *
- * The attribute name is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_ObjectHasAttribute extends PHPUnit_Framework_Constraint_ClassHasAttribute
-{
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        $object = new ReflectionObject($other);
-
-        return $object->hasProperty($this->attributeName);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Or.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Or.php
deleted file mode 100644
index 5b30f6b..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Or.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Logical OR.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_Or extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var PHPUnit_Framework_Constraint[]
-     */
-    protected $constraints = array();
-
-    /**
-     * @param PHPUnit_Framework_Constraint[] $constraints
-     */
-    public function setConstraints(array $constraints)
-    {
-        $this->constraints = array();
-
-        foreach ($constraints as $constraint) {
-            if (!($constraint instanceof PHPUnit_Framework_Constraint)) {
-                $constraint = new PHPUnit_Framework_Constraint_IsEqual(
-                    $constraint
-                );
-            }
-
-            $this->constraints[] = $constraint;
-        }
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        $success = false;
-        $constraint = null;
-
-        foreach ($this->constraints as $constraint) {
-            if ($constraint->evaluate($other, $description, true)) {
-                $success = true;
-                break;
-            }
-        }
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        $text = '';
-
-        foreach ($this->constraints as $key => $constraint) {
-            if ($key > 0) {
-                $text .= ' or ';
-            }
-
-            $text .= $constraint->toString();
-        }
-
-        return $text;
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     * @since  Method available since Release 3.4.0
-     */
-    public function count()
-    {
-        $count = 0;
-
-        foreach ($this->constraints as $constraint) {
-            $count += count($constraint);
-        }
-
-        return $count;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php
deleted file mode 100644
index 28d8dfb..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the string it is evaluated for matches
- * a regular expression.
- *
- * Checks a given value using the Perl Compatible Regular Expression extension
- * in PHP. The pattern is matched by executing preg_match().
- *
- * The pattern string passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_PCREMatch extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $pattern;
-
-    /**
-     * @param string $pattern
-     */
-    public function __construct($pattern)
-    {
-        parent::__construct();
-        $this->pattern = $pattern;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return preg_match($this->pattern, $other) > 0;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            'matches PCRE pattern "%s"',
-            $this->pattern
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php
deleted file mode 100644
index c41b53f..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class PHPUnit_Framework_Constraint_SameSize extends PHPUnit_Framework_Constraint_Count
-{
-    /**
-     * @var integer
-     */
-    protected $expectedCount;
-
-    /**
-     * @param integer $expected
-     */
-    public function __construct($expected)
-    {
-        parent::__construct($this->getCountOf($expected));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php
deleted file mode 100644
index cde1e5f..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the string it is evaluated for contains
- * a given string.
- *
- * Uses strpos() to find the position of the string in the input, if not found
- * the evaluation fails.
- *
- * The sub-string is passed in the constructor.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_StringContains extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $string;
-
-    /**
-     * @var boolean
-     */
-    protected $ignoreCase;
-
-    /**
-     * @param string  $string
-     * @param boolean $ignoreCase
-     */
-    public function __construct($string, $ignoreCase = false)
-    {
-        parent::__construct();
-
-        $this->string     = $string;
-        $this->ignoreCase = $ignoreCase;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        if ($this->ignoreCase) {
-            return stripos($other, $this->string) !== false;
-        } else {
-            return strpos($other, $this->string) !== false;
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        if ($this->ignoreCase) {
-            $string = strtolower($this->string);
-        } else {
-            $string = $this->string;
-        }
-
-        return sprintf(
-            'contains "%s"',
-            $string
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php
deleted file mode 100644
index 271762e..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the string it is evaluated for ends with a given
- * suffix.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-class PHPUnit_Framework_Constraint_StringEndsWith extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $suffix;
-
-    /**
-     * @param string $suffix
-     */
-    public function __construct($suffix)
-    {
-        parent::__construct();
-        $this->suffix = $suffix;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return substr($other, 0 - strlen($this->suffix)) == $this->suffix;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'ends with "' . $this->suffix . '"';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php
deleted file mode 100644
index 4228381..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatches.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Diff\Differ;
-
-/**
- * ...
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.5.0
- */
-class PHPUnit_Framework_Constraint_StringMatches extends PHPUnit_Framework_Constraint_PCREMatch
-{
-    /**
-     * @var string
-     */
-    protected $string;
-
-    /**
-     * @param string $string
-     */
-    public function __construct($string)
-    {
-        parent::__construct($string);
-
-        $this->pattern = $this->createPatternFromFormat(
-            preg_replace('/\r\n/', "\n", $string)
-        );
-
-        $this->string = $string;
-    }
-
-    protected function failureDescription($other)
-    {
-        return "format description matches text";
-    }
-
-    protected function additionalFailureDescription($other)
-    {
-        $from = preg_split('(\r\n|\r|\n)', $this->string);
-        $to   = preg_split('(\r\n|\r|\n)', $other);
-
-        foreach ($from as $index => $line) {
-            if (isset($to[$index]) && $line !== $to[$index]) {
-                $line = $this->createPatternFromFormat($line);
-
-                if (preg_match($line, $to[$index]) > 0) {
-                    $from[$index] = $to[$index];
-                }
-            }
-        }
-
-        $this->string = implode("\n", $from);
-        $other        = implode("\n", $to);
-
-        $differ = new Differ("--- Expected\n+++ Actual\n");
-
-        return $differ->diff($this->string, $other);
-    }
-
-    protected function createPatternFromFormat($string)
-    {
-        $string = str_replace(
-            array(
-            '%e',
-            '%s',
-            '%S',
-            '%a',
-            '%A',
-            '%w',
-            '%i',
-            '%d',
-            '%x',
-            '%f',
-            '%c'
-            ),
-            array(
-            '\\' . DIRECTORY_SEPARATOR,
-            '[^\r\n]+',
-            '[^\r\n]*',
-            '.+',
-            '.*',
-            '\s*',
-            '[+-]?\d+',
-            '\d+',
-            '[0-9a-fA-F]+',
-            '[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?',
-            '.'
-            ),
-            preg_quote($string, '/')
-        );
-
-        return '/^' . $string . '$/s';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php
deleted file mode 100644
index 3998a34..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the string it is evaluated for begins with a
- * given prefix.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-class PHPUnit_Framework_Constraint_StringStartsWith extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var string
-     */
-    protected $prefix;
-
-    /**
-     * @param string $prefix
-     */
-    public function __construct($prefix)
-    {
-        parent::__construct();
-        $this->prefix = $prefix;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        return strpos($other, $this->prefix) === 0;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'starts with "' . $this->prefix . '"';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php
deleted file mode 100644
index 5ea3c2a..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the Traversable it is applied to contains
- * a given value.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_TraversableContains extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var boolean
-     */
-    protected $checkForObjectIdentity;
-
-    /**
-     * @var boolean
-     */
-    protected $checkForNonObjectIdentity;
-
-    /**
-     * @var mixed
-     */
-    protected $value;
-
-    /**
-     * @param  mixed                       $value
-     * @param  boolean                     $checkForObjectIdentity
-     * @param  boolean                     $checkForNonObjectIdentity
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($value, $checkForObjectIdentity = true, $checkForNonObjectIdentity = false)
-    {
-        parent::__construct();
-
-        if (!is_bool($checkForObjectIdentity)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'boolean');
-        }
-
-        if (!is_bool($checkForNonObjectIdentity)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'boolean');
-        }
-
-        $this->checkForObjectIdentity    = $checkForObjectIdentity;
-        $this->checkForNonObjectIdentity = $checkForNonObjectIdentity;
-        $this->value                     = $value;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other. Returns true if the
-     * constraint is met, false otherwise.
-     *
-     * @param  mixed $other Value or object to evaluate.
-     * @return bool
-     */
-    protected function matches($other)
-    {
-        if ($other instanceof SplObjectStorage) {
-            return $other->contains($this->value);
-        }
-
-        if (is_object($this->value)) {
-            foreach ($other as $element) {
-                if (($this->checkForObjectIdentity &&
-                     $element === $this->value) ||
-                    (!$this->checkForObjectIdentity &&
-                     $element == $this->value)) {
-                    return true;
-                }
-            }
-        } else {
-            foreach ($other as $element) {
-                if (($this->checkForNonObjectIdentity &&
-                     $element === $this->value) ||
-                    (!$this->checkForNonObjectIdentity &&
-                     $element == $this->value)) {
-                    return true;
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        if (is_string($this->value) && strpos($this->value, "\n") !== false) {
-            return 'contains "' . $this->value . '"';
-        } else {
-            return 'contains ' . $this->exporter->export($this->value);
-        }
-    }
-
-    /**
-     * Returns the description of the failure
-     *
-     * The beginning of failure messages is "Failed asserting that" in most
-     * cases. This method should return the second part of that sentence.
-     *
-     * @param  mixed  $other Evaluated value or object.
-     * @return string
-     */
-    protected function failureDescription($other)
-    {
-        return sprintf(
-            '%s %s',
-            is_array($other) ? 'an array' : 'a traversable',
-            $this->toString()
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php
deleted file mode 100644
index 702a7a4..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Constraint that asserts that the Traversable it is applied to contains
- * only values of a given type.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.4
- */
-class PHPUnit_Framework_Constraint_TraversableContainsOnly extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var PHPUnit_Framework_Constraint
-     */
-    protected $constraint;
-
-    /**
-     * @var string
-     */
-    protected $type;
-
-    /**
-     * @param string  $type
-     * @param boolean $isNativeType
-     */
-    public function __construct($type, $isNativeType = true)
-    {
-        parent::__construct();
-
-        if ($isNativeType) {
-            $this->constraint = new PHPUnit_Framework_Constraint_IsType($type);
-        } else {
-            $this->constraint = new PHPUnit_Framework_Constraint_IsInstanceOf(
-                $type
-            );
-        }
-
-        $this->type = $type;
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        $success = true;
-
-        foreach ($other as $item) {
-            if (!$this->constraint->evaluate($item, '', true)) {
-                $success = false;
-                break;
-            }
-        }
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return 'contains only values of type "' . $this->type . '"';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Xor.php b/core/vendor/phpunit/phpunit/src/Framework/Constraint/Xor.php
deleted file mode 100644
index 8466c2a..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Constraint/Xor.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Logical XOR.
- *
- * @package    PHPUnit
- * @subpackage Framework_Constraint
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_Constraint_Xor extends PHPUnit_Framework_Constraint
-{
-    /**
-     * @var PHPUnit_Framework_Constraint[]
-     */
-    protected $constraints = array();
-
-    /**
-     * @param PHPUnit_Framework_Constraint[] $constraints
-     */
-    public function setConstraints(array $constraints)
-    {
-        $this->constraints = array();
-
-        foreach ($constraints as $constraint) {
-            if (!($constraint instanceof PHPUnit_Framework_Constraint)) {
-                $constraint = new PHPUnit_Framework_Constraint_IsEqual(
-                    $constraint
-                );
-            }
-
-            $this->constraints[] = $constraint;
-        }
-    }
-
-    /**
-     * Evaluates the constraint for parameter $other
-     *
-     * If $returnResult is set to false (the default), an exception is thrown
-     * in case of a failure. null is returned otherwise.
-     *
-     * If $returnResult is true, the result of the evaluation is returned as
-     * a boolean value instead: true in case of success, false in case of a
-     * failure.
-     *
-     * @param  mixed                                        $other        Value or object to evaluate.
-     * @param  string                                       $description  Additional information about the test
-     * @param  bool                                         $returnResult Whether to return a result or throw an exception
-     * @return mixed
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function evaluate($other, $description = '', $returnResult = false)
-    {
-        $success = true;
-        $lastResult = null;
-        $constraint = null;
-
-        foreach ($this->constraints as $constraint) {
-            $result = $constraint->evaluate($other, $description, true);
-
-            if ($result === $lastResult) {
-                $success = false;
-                break;
-            }
-
-            $lastResult = $result;
-        }
-
-        if ($returnResult) {
-            return $success;
-        }
-
-        if (!$success) {
-            $this->fail($other, $description);
-        }
-    }
-
-    /**
-     * Returns a string representation of the constraint.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        $text = '';
-
-        foreach ($this->constraints as $key => $constraint) {
-            if ($key > 0) {
-                $text .= ' xor ';
-            }
-
-            $text .= $constraint->toString();
-        }
-
-        return $text;
-    }
-
-    /**
-     * Counts the number of constraint elements.
-     *
-     * @return integer
-     * @since  Method available since Release 3.4.0
-     */
-    public function count()
-    {
-        $count = 0;
-
-        foreach ($this->constraints as $constraint) {
-            $count += count($constraint);
-        }
-
-        return $count;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Error.php b/core/vendor/phpunit/phpunit/src/Framework/Error.php
deleted file mode 100644
index e0ac278..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Error.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Wrapper for PHP errors.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.2.0
- */
-class PHPUnit_Framework_Error extends PHPUnit_Framework_Exception
-{
-    /**
-     * Constructor.
-     *
-     * @param string    $message
-     * @param integer   $code
-     * @param string    $file
-     * @param integer   $line
-     * @param Exception $previous
-     */
-    public function __construct($message, $code, $file, $line, Exception $previous = null)
-    {
-        parent::__construct($message, $code, $previous);
-
-        $this->file  = $file;
-        $this->line  = $line;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php b/core/vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php
deleted file mode 100644
index c3e7406..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Wrapper for PHP deprecated errors.
- * You can disable deprecated-to-exception conversion by setting
- *
- * <code>
- * PHPUnit_Framework_Error_Deprecated::$enabled = false;
- * </code>
- *
- * @package    PHPUnit
- * @subpackage Framework_Error
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Framework_Error_Deprecated extends PHPUnit_Framework_Error
-{
-    public static $enabled = true;
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Error/Notice.php b/core/vendor/phpunit/phpunit/src/Framework/Error/Notice.php
deleted file mode 100644
index f7bc91d..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Error/Notice.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Wrapper for PHP notices.
- * You can disable notice-to-exception conversion by setting
- *
- * <code>
- * PHPUnit_Framework_Error_Notice::$enabled = false;
- * </code>
- *
- * @package    PHPUnit
- * @subpackage Framework_Error
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Framework_Error_Notice extends PHPUnit_Framework_Error
-{
-    public static $enabled = true;
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Error/Warning.php b/core/vendor/phpunit/phpunit/src/Framework/Error/Warning.php
deleted file mode 100644
index 220b502..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Error/Warning.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Wrapper for PHP warnings.
- * You can disable notice-to-exception conversion by setting
- *
- * <code>
- * PHPUnit_Framework_Error_Warning::$enabled = false;
- * </code>
- *
- * @package    PHPUnit
- * @subpackage Framework_Error
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Framework_Error_Warning extends PHPUnit_Framework_Error
-{
-    public static $enabled = true;
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Exception.php b/core/vendor/phpunit/phpunit/src/Framework/Exception.php
deleted file mode 100644
index 5c19c1d..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Exception.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Base class for all PHPUnit Framework exceptions.
- *
- * Ensures that exceptions thrown during a test run do not leave stray
- * references behind.
- *
- * Every Exception contains a stack trace. Each stack frame contains the 'args'
- * of the called function. The function arguments can contain references to
- * instantiated objects. The references prevent the objects from being
- * destructed (until test results are eventually printed), so memory cannot be
- * freed up.
- *
- * With enabled process isolation, test results are serialized in the child
- * process and unserialized in the parent process. The stack trace of Exceptions
- * may contain objects that cannot be serialized or unserialized (e.g., PDO
- * connections). Unserializing user-space objects from the child process into
- * the parent would break the intended encapsulation of process isolation.
- *
- * @see http://fabien.potencier.org/article/9/php-serialization-stack-traces-and-exceptions
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-class PHPUnit_Framework_Exception extends RuntimeException implements PHPUnit_Exception
-{
-    /**
-     * @var array
-     */
-    protected $serializableTrace;
-
-    public function __construct($message = '', $code = 0, Exception $previous = null)
-    {
-        parent::__construct($message, $code, $previous);
-
-        $this->serializableTrace = $this->getTrace();
-        foreach ($this->serializableTrace as $i => $call) {
-            unset($this->serializableTrace[$i]['args']);
-        }
-    }
-
-    /**
-     * Returns the serializable trace (without 'args').
-     *
-     * @return array
-     */
-    public function getSerializableTrace()
-    {
-        return $this->serializableTrace;
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        $string = PHPUnit_Framework_TestFailure::exceptionToString($this);
-
-        if ($trace = PHPUnit_Util_Filter::getFilteredStacktrace($this)) {
-            $string .= "\n" . $trace;
-        }
-
-        return $string;
-    }
-
-    public function __sleep()
-    {
-        return array_keys(get_object_vars($this));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php b/core/vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php
deleted file mode 100644
index 4ac77b2..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Wraps Exceptions thrown by code under test.
- *
- * Re-instantiates Exceptions thrown by user-space code to retain their original
- * class names, properties, and stack traces (but without arguments).
- *
- * Unlike PHPUnit_Framework_Exception, the complete stack of previous Exceptions
- * is processed.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Daniel F. Kudwien <sun@unleashedmind.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.3.0
- */
-class PHPUnit_Framework_ExceptionWrapper extends PHPUnit_Framework_Exception
-{
-    /**
-     * @var string
-     */
-    protected $classname;
-
-    /**
-     * @var PHPUnit_Framework_ExceptionWrapper|null
-     */
-    protected $previous;
-
-    public function __construct(Exception $e)
-    {
-        // PDOException::getCode() is a string.
-        // @see http://php.net/manual/en/class.pdoexception.php#95812
-        parent::__construct($e->getMessage(), (int) $e->getCode());
-
-        $this->classname = get_class($e);
-        $this->file = $e->getFile();
-        $this->line = $e->getLine();
-
-        $this->serializableTrace = $e->getTrace();
-        foreach ($this->serializableTrace as $i => $call) {
-            unset($this->serializableTrace[$i]['args']);
-        }
-
-        if ($e->getPrevious()) {
-            $this->previous = new self($e->getPrevious());
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function getClassname()
-    {
-        return $this->classname;
-    }
-
-    /**
-     * @return PHPUnit_Framework_ExceptionWrapper
-     */
-    public function getPreviousWrapped()
-    {
-        return $this->previous;
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        $string = PHPUnit_Framework_TestFailure::exceptionToString($this);
-
-        if ($trace = PHPUnit_Util_Filter::getFilteredStacktrace($this)) {
-            $string .= "\n" . $trace;
-        }
-
-        if ($this->previous) {
-            $string .= "\nCaused by\n" . $this->previous;
-        }
-
-        return $string;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php b/core/vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php
deleted file mode 100644
index 612d7f0..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception for expectations which failed their check.
- *
- * The exception contains the error message and optionally a
- * SebastianBergmann\Comparator\ComparisonFailure which is used to
- * generate diff output of the failed expectations.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_ExpectationFailedException extends PHPUnit_Framework_AssertionFailedError
-{
-    /**
-     * @var SebastianBergmann\Comparator\ComparisonFailure
-     */
-    protected $comparisonFailure;
-
-    public function __construct($message, SebastianBergmann\Comparator\ComparisonFailure $comparisonFailure = null, Exception $previous = null)
-    {
-        $this->comparisonFailure = $comparisonFailure;
-
-        parent::__construct($message, 0, $previous);
-    }
-
-    /**
-     * @return SebastianBergmann\Comparator\ComparisonFailure
-     */
-    public function getComparisonFailure()
-    {
-        return $this->comparisonFailure;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTest.php b/core/vendor/phpunit/phpunit/src/Framework/IncompleteTest.php
deleted file mode 100644
index 271a905..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A marker interface for marking any exception/error as result of an unit
- * test as incomplete implementation or currently not implemented.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 2.0.0
- */
-interface PHPUnit_Framework_IncompleteTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php b/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php
deleted file mode 100644
index 2985316..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * An incomplete test case
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Davey Shafik <me@daveyshafik.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.3.0
- */
-class PHPUnit_Framework_IncompleteTestCase extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var string
-     */
-    protected $message = '';
-
-    /**
-     * @var boolean
-     */
-    protected $backupGlobals = false;
-
-    /**
-     * @var boolean
-     */
-    protected $backupStaticAttributes = false;
-
-    /**
-     * @var boolean
-     */
-    protected $runTestInSeparateProcess = false;
-
-    /**
-     * @var boolean
-     */
-    protected $useErrorHandler = false;
-
-    /**
-     * @var boolean
-     */
-    protected $useOutputBuffering = false;
-
-    /**
-     * @param string $className
-     * @param string $methodName
-     * @param string $message
-     */
-    public function __construct($className, $methodName, $message = '')
-    {
-        $this->message = $message;
-        parent::__construct($className . '::' . $methodName);
-    }
-
-    /**
-     * @throws PHPUnit_Framework_Exception
-     */
-    protected function runTest()
-    {
-        $this->markTestIncomplete($this->message);
-    }
-
-    /**
-     * @return string
-     */
-    public function getMessage()
-    {
-        return $this->message;
-    }
-
-    /**
-     * Returns a string representation of the test case.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->getName();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php b/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php
deleted file mode 100644
index 3990377..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of an incomplete test.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Framework_IncompleteTestError extends PHPUnit_Framework_AssertionFailedError implements PHPUnit_Framework_IncompleteTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php b/core/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php
deleted file mode 100644
index 35bfd75..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of a test that is skipped because of an invalid @covers annotation.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Framework_InvalidCoversTargetError extends PHPUnit_Framework_AssertionFailedError implements PHPUnit_Framework_SkippedTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php b/core/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php
deleted file mode 100644
index 5e67af5..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Framework_InvalidCoversTargetException extends PHPUnit_Framework_CodeCoverageException
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/OutputError.php b/core/vendor/phpunit/phpunit/src/Framework/OutputError.php
deleted file mode 100644
index f15edaf..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/OutputError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of a test that printed output.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class PHPUnit_Framework_OutputError extends PHPUnit_Framework_AssertionFailedError
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/RiskyTest.php b/core/vendor/phpunit/phpunit/src/Framework/RiskyTest.php
deleted file mode 100644
index 0c8b653..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/RiskyTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A marker interface for marking any exception/error as result of an unit
- * test as risky.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 4.0.0
- */
-interface PHPUnit_Framework_RiskyTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/RiskyTestError.php b/core/vendor/phpunit/phpunit/src/Framework/RiskyTestError.php
deleted file mode 100644
index 4f165df..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/RiskyTestError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of a risky test.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Framework_RiskyTestError extends PHPUnit_Framework_AssertionFailedError implements PHPUnit_Framework_RiskyTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/SelfDescribing.php b/core/vendor/phpunit/phpunit/src/Framework/SelfDescribing.php
deleted file mode 100644
index 9038061..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/SelfDescribing.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface for classes that can return a description of itself.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 3.0.0
- */
-interface PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * Returns a string representation of the object.
-     *
-     * @return string
-     */
-    public function toString();
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/SkippedTest.php b/core/vendor/phpunit/phpunit/src/Framework/SkippedTest.php
deleted file mode 100644
index cede762..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/SkippedTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A marker interface for marking a unit test as being skipped.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 3.0.0
- */
-interface PHPUnit_Framework_SkippedTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php b/core/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php
deleted file mode 100644
index c698f4b..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A skipped test case
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Davey Shafik <me@daveyshafik.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.3.0
- */
-class PHPUnit_Framework_SkippedTestCase extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var string
-     */
-    protected $message = '';
-
-    /**
-     * @var boolean
-     */
-    protected $backupGlobals = false;
-
-    /**
-     * @var boolean
-     */
-    protected $backupStaticAttributes = false;
-
-    /**
-     * @var boolean
-     */
-    protected $runTestInSeparateProcess = false;
-
-    /**
-     * @var boolean
-     */
-    protected $useErrorHandler = false;
-
-    /**
-     * @var boolean
-     */
-    protected $useOutputBuffering = false;
-
-    /**
-     * @param string $message
-     */
-    public function __construct($className, $methodName, $message = '')
-    {
-        $this->message = $message;
-        parent::__construct($className . '::' . $methodName);
-    }
-
-    /**
-     * @throws PHPUnit_Framework_Exception
-     */
-    protected function runTest()
-    {
-        $this->markTestSkipped($this->message);
-    }
-
-    /**
-     * @return string
-     */
-    public function getMessage()
-    {
-        return $this->message;
-    }
-
-    /**
-     * Returns a string representation of the test case.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->getName();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/SkippedTestError.php b/core/vendor/phpunit/phpunit/src/Framework/SkippedTestError.php
deleted file mode 100644
index 95520f1..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/SkippedTestError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of a skipped test.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Framework_SkippedTestError extends PHPUnit_Framework_AssertionFailedError implements PHPUnit_Framework_SkippedTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php b/core/vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php
deleted file mode 100644
index cfae4e8..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of a skipped test suite.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.0
- */
-class PHPUnit_Framework_SkippedTestSuiteError extends PHPUnit_Framework_AssertionFailedError implements PHPUnit_Framework_SkippedTest
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/SyntheticError.php b/core/vendor/phpunit/phpunit/src/Framework/SyntheticError.php
deleted file mode 100644
index c292b53..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/SyntheticError.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Creates a synthetic failed assertion.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.5.0
- */
-class PHPUnit_Framework_SyntheticError extends PHPUnit_Framework_AssertionFailedError
-{
-    /**
-     * The synthetic file.
-     *
-     * @var string
-     */
-    protected $syntheticFile = '';
-
-    /**
-     * The synthetic line number.
-     *
-     * @var integer
-     */
-    protected $syntheticLine = 0;
-
-    /**
-     * The synthetic trace.
-     *
-     * @var array
-     */
-    protected $syntheticTrace = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string  $message
-     * @param integer $code
-     * @param string  $file
-     * @param integer $line
-     * @param array   $trace
-     */
-    public function __construct($message, $code, $file, $line, $trace)
-    {
-        parent::__construct($message, $code);
-
-        $this->syntheticFile  = $file;
-        $this->syntheticLine  = $line;
-        $this->syntheticTrace = $trace;
-    }
-
-    /**
-     * @return string
-     */
-    public function getSyntheticFile()
-    {
-        return $this->syntheticFile;
-    }
-
-    /**
-     * @return integer
-     */
-    public function getSyntheticLine()
-    {
-        return $this->syntheticLine;
-    }
-
-    /**
-     * @return array
-     */
-    public function getSyntheticTrace()
-    {
-        return $this->syntheticTrace;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Test.php b/core/vendor/phpunit/phpunit/src/Framework/Test.php
deleted file mode 100644
index 03bc44b..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Test.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A Test can be run and collect its results.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 2.0.0
- */
-interface PHPUnit_Framework_Test extends Countable
-{
-    /**
-     * Runs a test and collects its result in a TestResult instance.
-     *
-     * @param  PHPUnit_Framework_TestResult $result
-     * @return PHPUnit_Framework_TestResult
-     */
-    public function run(PHPUnit_Framework_TestResult $result = null);
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestCase.php b/core/vendor/phpunit/phpunit/src/Framework/TestCase.php
deleted file mode 100644
index 75c3d12..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/TestCase.php
+++ /dev/null
@@ -1,2075 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\GlobalState\Snapshot;
-use SebastianBergmann\GlobalState\Restorer;
-use SebastianBergmann\GlobalState\Blacklist;
-use SebastianBergmann\Diff\Differ;
-use SebastianBergmann\Exporter\Exporter;
-use Prophecy\Exception\Prediction\PredictionException;
-use Prophecy\Prophet;
-
-/**
- * A TestCase defines the fixture to run multiple tests.
- *
- * To define a TestCase
- *
- *   1) Implement a subclass of PHPUnit_Framework_TestCase.
- *   2) Define instance variables that store the state of the fixture.
- *   3) Initialize the fixture state by overriding setUp().
- *   4) Clean-up after a test by overriding tearDown().
- *
- * Each test runs in its own fixture so there can be no side effects
- * among test runs.
- *
- * Here is an example:
- *
- * <code>
- * <?php
- * class MathTest extends PHPUnit_Framework_TestCase
- * {
- *     public $value1;
- *     public $value2;
- *
- *     protected function setUp()
- *     {
- *         $this->value1 = 2;
- *         $this->value2 = 3;
- *     }
- * }
- * ?>
- * </code>
- *
- * For each test implement a method which interacts with the fixture.
- * Verify the expected results with assertions specified by calling
- * assert with a boolean.
- *
- * <code>
- * <?php
- * public function testPass()
- * {
- *     $this->assertTrue($this->value1 + $this->value2 == 5);
- * }
- * ?>
- * </code>
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-abstract class PHPUnit_Framework_TestCase extends PHPUnit_Framework_Assert implements PHPUnit_Framework_Test, PHPUnit_Framework_SelfDescribing
-{
-    /**
-     * Enable or disable the backup and restoration of the $GLOBALS array.
-     * Overwrite this attribute in a child class of TestCase.
-     * Setting this attribute in setUp() has no effect!
-     *
-     * @var boolean
-     */
-    protected $backupGlobals = null;
-
-    /**
-     * @var array
-     */
-    protected $backupGlobalsBlacklist = array();
-
-    /**
-     * Enable or disable the backup and restoration of static attributes.
-     * Overwrite this attribute in a child class of TestCase.
-     * Setting this attribute in setUp() has no effect!
-     *
-     * @var boolean
-     */
-    protected $backupStaticAttributes = null;
-
-    /**
-     * @var array
-     */
-    protected $backupStaticAttributesBlacklist = array();
-
-    /**
-     * Whether or not this test is to be run in a separate PHP process.
-     *
-     * @var boolean
-     */
-    protected $runTestInSeparateProcess = null;
-
-    /**
-     * Whether or not this test should preserve the global state when
-     * running in a separate PHP process.
-     *
-     * @var boolean
-     */
-    protected $preserveGlobalState = true;
-
-    /**
-     * Whether or not this test is running in a separate PHP process.
-     *
-     * @var boolean
-     */
-    private $inIsolation = false;
-
-    /**
-     * @var array
-     */
-    private $data = array();
-
-    /**
-     * @var string
-     */
-    private $dataName = '';
-
-    /**
-     * @var boolean
-     */
-    private $useErrorHandler = null;
-
-    /**
-     * The name of the expected Exception.
-     *
-     * @var mixed
-     */
-    private $expectedException = null;
-
-    /**
-     * The message of the expected Exception.
-     *
-     * @var string
-     */
-    private $expectedExceptionMessage = '';
-
-    /**
-     * The regex pattern to validate the expected Exception message.
-     *
-     * @var string
-     */
-    private $expectedExceptionMessageRegExp = '';
-
-    /**
-     * The code of the expected Exception.
-     *
-     * @var integer
-     */
-    private $expectedExceptionCode;
-
-    /**
-     * The name of the test case.
-     *
-     * @var string
-     */
-    private $name = null;
-
-    /**
-     * @var array
-     */
-    private $dependencies = array();
-
-    /**
-     * @var array
-     */
-    private $dependencyInput = array();
-
-    /**
-     * @var array
-     */
-    private $iniSettings = array();
-
-    /**
-     * @var array
-     */
-    private $locale = array();
-
-    /**
-     * @var array
-     */
-    private $mockObjects = array();
-
-    /**
-     * @var array
-     */
-    private $mockObjectGenerator = null;
-
-    /**
-     * @var integer
-     */
-    private $status;
-
-    /**
-     * @var string
-     */
-    private $statusMessage = '';
-
-    /**
-     * @var integer
-     */
-    private $numAssertions = 0;
-
-    /**
-     * @var PHPUnit_Framework_TestResult
-     */
-    private $result;
-
-    /**
-     * @var mixed
-     */
-    private $testResult;
-
-    /**
-     * @var string
-     */
-    private $output = '';
-
-    /**
-     * @var string
-     */
-    private $outputExpectedRegex = null;
-
-    /**
-     * @var string
-     */
-    private $outputExpectedString = null;
-
-    /**
-     * @var mixed
-     */
-    private $outputCallback = false;
-
-    /**
-     * @var boolean
-     */
-    private $outputBufferingActive = false;
-
-    /**
-     * @var integer
-     */
-    private $outputBufferingLevel;
-
-    /**
-     * @var SebastianBergmann\GlobalState\Snapshot
-     */
-    private $snapshot;
-
-    /**
-     * @var Prophecy\Prophet
-     */
-    private $prophet;
-
-    /**
-     * @var boolean
-     */
-    private $disallowChangesToGlobalState = false;
-
-    /**
-     * Constructs a test case with the given name.
-     *
-     * @param string $name
-     * @param array  $data
-     * @param string $dataName
-     */
-    public function __construct($name = null, array $data = array(), $dataName = '')
-    {
-        if ($name !== null) {
-            $this->setName($name);
-        }
-
-        $this->data                = $data;
-        $this->dataName            = $dataName;
-    }
-
-    /**
-     * Returns a string representation of the test case.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        $class = new ReflectionClass($this);
-
-        $buffer = sprintf(
-            '%s::%s',
-            $class->name,
-            $this->getName(false)
-        );
-
-        return $buffer . $this->getDataSetAsString();
-    }
-
-    /**
-     * Counts the number of test cases executed by run(TestResult result).
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return 1;
-    }
-
-    /**
-     * Returns the annotations for this test.
-     *
-     * @return array
-     * @since Method available since Release 3.4.0
-     */
-    public function getAnnotations()
-    {
-        return PHPUnit_Util_Test::parseTestMethodAnnotations(
-            get_class($this),
-            $this->name
-        );
-    }
-
-    /**
-     * Gets the name of a TestCase.
-     *
-     * @param  boolean $withDataSet
-     * @return string
-     */
-    public function getName($withDataSet = true)
-    {
-        if ($withDataSet) {
-            return $this->name . $this->getDataSetAsString(false);
-        } else {
-            return $this->name;
-        }
-    }
-
-    /**
-     * Returns the size of the test.
-     *
-     * @return integer
-     * @since  Method available since Release 3.6.0
-     */
-    public function getSize()
-    {
-        return PHPUnit_Util_Test::getSize(
-            get_class($this),
-            $this->getName(false)
-        );
-    }
-
-    /**
-     * @return string
-     * @since  Method available since Release 3.6.0
-     */
-    public function getActualOutput()
-    {
-        if (!$this->outputBufferingActive) {
-            return $this->output;
-        } else {
-            return ob_get_contents();
-        }
-    }
-
-    /**
-     * @return boolean
-     * @since  Method available since Release 3.6.0
-     */
-    public function hasOutput()
-    {
-        if (strlen($this->output) === 0) {
-            return false;
-        }
-
-        if ($this->hasExpectationOnOutput()) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * @param  string                      $expectedRegex
-     * @since Method available since Release 3.6.0
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function expectOutputRegex($expectedRegex)
-    {
-        if ($this->outputExpectedString !== null) {
-            throw new PHPUnit_Framework_Exception;
-        }
-
-        if (is_string($expectedRegex) || is_null($expectedRegex)) {
-            $this->outputExpectedRegex = $expectedRegex;
-        }
-    }
-
-    /**
-     * @param string $expectedString
-     * @since Method available since Release 3.6.0
-     */
-    public function expectOutputString($expectedString)
-    {
-        if ($this->outputExpectedRegex !== null) {
-            throw new PHPUnit_Framework_Exception;
-        }
-
-        if (is_string($expectedString) || is_null($expectedString)) {
-            $this->outputExpectedString = $expectedString;
-        }
-    }
-
-    /**
-     * @return bool
-     * @since Method available since Release 3.6.5
-     * @deprecated
-     */
-    public function hasPerformedExpectationsOnOutput()
-    {
-        return $this->hasExpectationOnOutput();
-    }
-
-    /**
-     * @return bool
-     * @since Method available since Release 4.3.3
-     */
-    public function hasExpectationOnOutput()
-    {
-        return is_string($this->outputExpectedString) || is_string($this->outputExpectedRegex);
-    }
-
-    /**
-     * @return string
-     * @since  Method available since Release 3.2.0
-     */
-    public function getExpectedException()
-    {
-        return $this->expectedException;
-    }
-
-    /**
-     * @param mixed   $exceptionName
-     * @param string  $exceptionMessage
-     * @param integer $exceptionCode
-     * @since  Method available since Release 3.2.0
-     */
-    public function setExpectedException($exceptionName, $exceptionMessage = '', $exceptionCode = null)
-    {
-        $this->expectedException        = $exceptionName;
-        $this->expectedExceptionMessage = $exceptionMessage;
-        $this->expectedExceptionCode    = $exceptionCode;
-    }
-
-    /**
-     * @param mixed   $exceptionName
-     * @param string  $exceptionMessageRegExp
-     * @param integer $exceptionCode
-     * @since Method available since Release 4.3.0
-     */
-    public function setExpectedExceptionRegExp($exceptionName, $exceptionMessageRegExp = '', $exceptionCode = null)
-    {
-        $this->expectedException              = $exceptionName;
-        $this->expectedExceptionMessageRegExp = $exceptionMessageRegExp;
-        $this->expectedExceptionCode          = $exceptionCode;
-    }
-
-    /**
-     * @since  Method available since Release 3.4.0
-     */
-    protected function setExpectedExceptionFromAnnotation()
-    {
-        try {
-            $expectedException = PHPUnit_Util_Test::getExpectedException(
-                get_class($this),
-                $this->name
-            );
-
-            if ($expectedException !== false) {
-                $this->setExpectedException(
-                    $expectedException['class'],
-                    $expectedException['message'],
-                    $expectedException['code']
-                );
-
-                if (!empty($expectedException['message_regex'])) {
-                    $this->setExpectedExceptionRegExp(
-                        $expectedException['class'],
-                        $expectedException['message_regex'],
-                        $expectedException['code']
-                    );
-                }
-            }
-        } catch (ReflectionException $e) {
-        }
-    }
-
-    /**
-     * @param boolean $useErrorHandler
-     * @since Method available since Release 3.4.0
-     */
-    public function setUseErrorHandler($useErrorHandler)
-    {
-        $this->useErrorHandler = $useErrorHandler;
-    }
-
-    /**
-     * @since Method available since Release 3.4.0
-     */
-    protected function setUseErrorHandlerFromAnnotation()
-    {
-        try {
-            $useErrorHandler = PHPUnit_Util_Test::getErrorHandlerSettings(
-                get_class($this),
-                $this->name
-            );
-
-            if ($useErrorHandler !== null) {
-                $this->setUseErrorHandler($useErrorHandler);
-            }
-        } catch (ReflectionException $e) {
-        }
-    }
-
-    /**
-     * @since Method available since Release 3.6.0
-     */
-    protected function checkRequirements()
-    {
-        if (!$this->name || !method_exists($this, $this->name)) {
-            return;
-        }
-
-        $missingRequirements = PHPUnit_Util_Test::getMissingRequirements(
-            get_class($this),
-            $this->name
-        );
-
-        if ($missingRequirements) {
-            $this->markTestSkipped(implode(PHP_EOL, $missingRequirements));
-        }
-    }
-
-    /**
-     * Returns the status of this test.
-     *
-     * @return integer
-     * @since  Method available since Release 3.1.0
-     */
-    public function getStatus()
-    {
-        return $this->status;
-    }
-
-    /**
-     * Returns the status message of this test.
-     *
-     * @return string
-     * @since  Method available since Release 3.3.0
-     */
-    public function getStatusMessage()
-    {
-        return $this->statusMessage;
-    }
-
-    /**
-     * Returns whether or not this test has failed.
-     *
-     * @return boolean
-     * @since  Method available since Release 3.0.0
-     */
-    public function hasFailed()
-    {
-        $status = $this->getStatus();
-
-        return $status == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE ||
-               $status == PHPUnit_Runner_BaseTestRunner::STATUS_ERROR;
-    }
-
-    /**
-     * Runs the test case and collects the results in a TestResult object.
-     * If no TestResult object is passed a new one will be created.
-     *
-     * @param  PHPUnit_Framework_TestResult $result
-     * @return PHPUnit_Framework_TestResult
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function run(PHPUnit_Framework_TestResult $result = null)
-    {
-        if ($result === null) {
-            $result = $this->createResult();
-        }
-
-        if (!$this instanceof PHPUnit_Framework_Warning) {
-            $this->setTestResultObject($result);
-            $this->setUseErrorHandlerFromAnnotation();
-        }
-
-        if ($this->useErrorHandler !== null) {
-            $oldErrorHandlerSetting = $result->getConvertErrorsToExceptions();
-            $result->convertErrorsToExceptions($this->useErrorHandler);
-        }
-
-        if (!$this instanceof PHPUnit_Framework_Warning && !$this->handleDependencies()) {
-            return;
-        }
-
-        if ($this->runTestInSeparateProcess === true &&
-            $this->inIsolation !== true &&
-            !$this instanceof PHPUnit_Extensions_SeleniumTestCase &&
-            !$this instanceof PHPUnit_Extensions_PhptTestCase) {
-            $class = new ReflectionClass($this);
-
-            $template = new Text_Template(
-                __DIR__ . '/../Util/PHP/Template/TestCaseMethod.tpl'
-            );
-
-            if ($this->preserveGlobalState) {
-                $constants     = PHPUnit_Util_GlobalState::getConstantsAsString();
-                $globals       = PHPUnit_Util_GlobalState::getGlobalsAsString();
-                $includedFiles = PHPUnit_Util_GlobalState::getIncludedFilesAsString();
-                $iniSettings   = PHPUnit_Util_GlobalState::getIniSettingsAsString();
-            } else {
-                $constants     = '';
-                if (!empty($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
-                    $globals     = '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = ' . var_export($GLOBALS['__PHPUNIT_BOOTSTRAP'], true) . ";\n";
-                } else {
-                    $globals     = '';
-                }
-                $includedFiles = '';
-                $iniSettings   = '';
-            }
-
-            $coverage                                = $result->getCollectCodeCoverageInformation()       ? 'true' : 'false';
-            $isStrictAboutTestsThatDoNotTestAnything = $result->isStrictAboutTestsThatDoNotTestAnything() ? 'true' : 'false';
-            $isStrictAboutOutputDuringTests          = $result->isStrictAboutOutputDuringTests()          ? 'true' : 'false';
-            $isStrictAboutTestSize                   = $result->isStrictAboutTestSize()                   ? 'true' : 'false';
-            $isStrictAboutTodoAnnotatedTests         = $result->isStrictAboutTodoAnnotatedTests()         ? 'true' : 'false';
-
-            if (defined('PHPUNIT_COMPOSER_INSTALL')) {
-                $composerAutoload = var_export(PHPUNIT_COMPOSER_INSTALL, true);
-            } else {
-                $composerAutoload = '\'\'';
-            }
-
-            if (defined('__PHPUNIT_PHAR__')) {
-                $phar = var_export(__PHPUNIT_PHAR__, true);
-            } else {
-                $phar = '\'\'';
-            }
-
-            $data            = var_export(serialize($this->data), true);
-            $dataName        = var_export($this->dataName, true);
-            $dependencyInput = var_export(serialize($this->dependencyInput), true);
-            $includePath     = var_export(get_include_path(), true);
-            // must do these fixes because TestCaseMethod.tpl has unserialize('{data}') in it, and we can't break BC
-            // the lines above used to use addcslashes() rather than var_export(), which breaks null byte escape sequences
-            $data            = "'." . $data . ".'";
-            $dataName        = "'.(" . $dataName . ").'";
-            $dependencyInput = "'." . $dependencyInput . ".'";
-            $includePath     = "'." . $includePath . ".'";
-
-            $template->setVar(
-                array(
-                'composerAutoload'                        => $composerAutoload,
-                'phar'                                    => $phar,
-                'filename'                                => $class->getFileName(),
-                'className'                               => $class->getName(),
-                'methodName'                              => $this->name,
-                'collectCodeCoverageInformation'          => $coverage,
-                'data'                                    => $data,
-                'dataName'                                => $dataName,
-                'dependencyInput'                         => $dependencyInput,
-                'constants'                               => $constants,
-                'globals'                                 => $globals,
-                'include_path'                            => $includePath,
-                'included_files'                          => $includedFiles,
-                'iniSettings'                             => $iniSettings,
-                'isStrictAboutTestsThatDoNotTestAnything' => $isStrictAboutTestsThatDoNotTestAnything,
-                'isStrictAboutOutputDuringTests'          => $isStrictAboutOutputDuringTests,
-                'isStrictAboutTestSize'                   => $isStrictAboutTestSize,
-                'isStrictAboutTodoAnnotatedTests'         => $isStrictAboutTodoAnnotatedTests
-                )
-            );
-
-            $this->prepareTemplate($template);
-
-            $php = PHPUnit_Util_PHP::factory();
-            $php->runTestJob($template->render(), $this, $result);
-        } else {
-            $result->run($this);
-        }
-
-        if ($this->useErrorHandler !== null) {
-            $result->convertErrorsToExceptions($oldErrorHandlerSetting);
-        }
-
-        $this->result = null;
-
-        return $result;
-    }
-
-    /**
-     * Runs the bare test sequence.
-     */
-    public function runBare()
-    {
-        $this->numAssertions = 0;
-
-        $this->snapshotGlobalState();
-        $this->startOutputBuffering();
-        clearstatcache();
-        $currentWorkingDirectory = getcwd();
-
-        $hookMethods = PHPUnit_Util_Test::getHookMethods(get_class($this));
-
-        try {
-            $hasMetRequirements = false;
-            $this->checkRequirements();
-            $hasMetRequirements = true;
-
-            if ($this->inIsolation) {
-                foreach ($hookMethods['beforeClass'] as $method) {
-                    $this->$method();
-                }
-            }
-
-            $this->setExpectedExceptionFromAnnotation();
-
-            foreach ($hookMethods['before'] as $method) {
-                $this->$method();
-            }
-
-            $this->assertPreConditions();
-            $this->testResult = $this->runTest();
-            $this->verifyMockObjects();
-            $this->assertPostConditions();
-
-            $this->status = PHPUnit_Runner_BaseTestRunner::STATUS_PASSED;
-        } catch (PHPUnit_Framework_IncompleteTest $e) {
-            $this->status        = PHPUnit_Runner_BaseTestRunner::STATUS_INCOMPLETE;
-            $this->statusMessage = $e->getMessage();
-        } catch (PHPUnit_Framework_SkippedTest $e) {
-            $this->status        = PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED;
-            $this->statusMessage = $e->getMessage();
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            $this->status = PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
-            $this->statusMessage = $e->getMessage();
-        } catch (PredictionException $e) {
-            $this->status        = PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
-            $this->statusMessage = $e->getMessage();
-        } catch (Exception $e) {
-            $this->status        = PHPUnit_Runner_BaseTestRunner::STATUS_ERROR;
-            $this->statusMessage = $e->getMessage();
-        }
-
-        // Clean up the mock objects.
-        $this->mockObjects = array();
-        $this->prophet     = null;
-
-        // Tear down the fixture. An exception raised in tearDown() will be
-        // caught and passed on when no exception was raised before.
-        try {
-            if ($hasMetRequirements) {
-                foreach ($hookMethods['after'] as $method) {
-                    $this->$method();
-                }
-
-                if ($this->inIsolation) {
-                    foreach ($hookMethods['afterClass'] as $method) {
-                        $this->$method();
-                    }
-                }
-            }
-        } catch (Exception $_e) {
-            if (!isset($e)) {
-                $e = $_e;
-            }
-        }
-
-        try {
-            $this->stopOutputBuffering();
-        } catch (PHPUnit_Framework_RiskyTestError $_e) {
-            if (!isset($e)) {
-                $e = $_e;
-            }
-        }
-
-        clearstatcache();
-
-        if ($currentWorkingDirectory != getcwd()) {
-            chdir($currentWorkingDirectory);
-        }
-
-        $this->restoreGlobalState();
-
-        // Clean up INI settings.
-        foreach ($this->iniSettings as $varName => $oldValue) {
-            ini_set($varName, $oldValue);
-        }
-
-        $this->iniSettings = array();
-
-        // Clean up locale settings.
-        foreach ($this->locale as $category => $locale) {
-            setlocale($category, $locale);
-        }
-
-        // Perform assertion on output.
-        if (!isset($e)) {
-            try {
-                if ($this->outputExpectedRegex !== null) {
-                    $this->assertRegExp($this->outputExpectedRegex, $this->output);
-                } elseif ($this->outputExpectedString !== null) {
-                    $this->assertEquals($this->outputExpectedString, $this->output);
-                }
-            } catch (Exception $_e) {
-                $e = $_e;
-            }
-        }
-
-        // Workaround for missing "finally".
-        if (isset($e)) {
-            if ($e instanceof PredictionException) {
-                $e = new PHPUnit_Framework_AssertionFailedError($e->getMessage());
-            }
-
-            $this->onNotSuccessfulTest($e);
-        }
-    }
-
-    /**
-     * Override to run the test and assert its state.
-     *
-     * @return mixed
-     * @throws Exception|PHPUnit_Framework_Exception
-     * @throws PHPUnit_Framework_Exception
-     */
-    protected function runTest()
-    {
-        if ($this->name === null) {
-            throw new PHPUnit_Framework_Exception(
-                'PHPUnit_Framework_TestCase::$name must not be null.'
-            );
-        }
-
-        try {
-            $class  = new ReflectionClass($this);
-            $method = $class->getMethod($this->name);
-        } catch (ReflectionException $e) {
-            $this->fail($e->getMessage());
-        }
-
-        try {
-            $testResult = $method->invokeArgs(
-                $this,
-                array_merge($this->data, $this->dependencyInput)
-            );
-        } catch (Exception $e) {
-            $checkException = false;
-
-            if (is_string($this->expectedException)) {
-                $checkException = true;
-
-                if ($e instanceof PHPUnit_Framework_Exception) {
-                    $checkException = false;
-                }
-
-                $reflector = new ReflectionClass($this->expectedException);
-
-                if ($this->expectedException == 'PHPUnit_Framework_Exception' ||
-                    $reflector->isSubclassOf('PHPUnit_Framework_Exception')) {
-                    $checkException = true;
-                }
-            }
-
-            if ($checkException) {
-                $this->assertThat(
-                    $e,
-                    new PHPUnit_Framework_Constraint_Exception(
-                        $this->expectedException
-                    )
-                );
-
-                if (is_string($this->expectedExceptionMessage) &&
-                    !empty($this->expectedExceptionMessage)) {
-                    $this->assertThat(
-                        $e,
-                        new PHPUnit_Framework_Constraint_ExceptionMessage(
-                            $this->expectedExceptionMessage
-                        )
-                    );
-                }
-
-                if (is_string($this->expectedExceptionMessageRegExp) &&
-                    !empty($this->expectedExceptionMessageRegExp)) {
-                    $this->assertThat(
-                        $e,
-                        new PHPUnit_Framework_Constraint_ExceptionMessageRegExp(
-                            $this->expectedExceptionMessageRegExp
-                        )
-                    );
-                }
-
-                if ($this->expectedExceptionCode !== null) {
-                    $this->assertThat(
-                        $e,
-                        new PHPUnit_Framework_Constraint_ExceptionCode(
-                            $this->expectedExceptionCode
-                        )
-                    );
-                }
-
-                return;
-            } else {
-                throw $e;
-            }
-        }
-
-        if ($this->expectedException !== null) {
-            $this->assertThat(
-                null,
-                new PHPUnit_Framework_Constraint_Exception(
-                    $this->expectedException
-                )
-            );
-        }
-
-        return $testResult;
-    }
-
-    /**
-     * Verifies the mock object expectations.
-     *
-     * @since Method available since Release 3.5.0
-     */
-    protected function verifyMockObjects()
-    {
-        foreach ($this->mockObjects as $mockObject) {
-            if ($mockObject->__phpunit_hasMatchers()) {
-                $this->numAssertions++;
-            }
-
-            $mockObject->__phpunit_verify();
-        }
-
-        if ($this->prophet !== null) {
-            try {
-                $this->prophet->checkPredictions();
-            } catch (Exception $e) {
-                /** Intentionally left empty */
-            }
-
-            foreach ($this->prophet->getProphecies() as $objectProphecy) {
-                foreach ($objectProphecy->getMethodProphecies() as $methodProphecies) {
-                    foreach ($methodProphecies as $methodProphecy) {
-                        $this->numAssertions += count($methodProphecy->getCheckedPredictions());
-                    }
-                }
-            }
-
-            if (isset($e)) {
-                throw $e;
-            }
-        }
-    }
-
-    /**
-     * Sets the name of a TestCase.
-     *
-     * @param  string
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * Sets the dependencies of a TestCase.
-     *
-     * @param array $dependencies
-     * @since  Method available since Release 3.4.0
-     */
-    public function setDependencies(array $dependencies)
-    {
-        $this->dependencies = $dependencies;
-    }
-
-    /**
-     * Returns true if the tests has dependencies
-     *
-     * @return boolean
-     * @since Method available since Release 4.0.0
-     */
-    public function hasDependencies()
-    {
-        return count($this->dependencies) > 0;
-    }
-
-    /**
-     * Sets
-     *
-     * @param array $dependencyInput
-     * @since  Method available since Release 3.4.0
-     */
-    public function setDependencyInput(array $dependencyInput)
-    {
-        $this->dependencyInput = $dependencyInput;
-    }
-
-    /**
-     * @param boolean $disallowChangesToGlobalState
-     * @since Method available since Release 4.6.0
-     */
-    public function setDisallowChangesToGlobalState($disallowChangesToGlobalState)
-    {
-        $this->disallowChangesToGlobalState = $disallowChangesToGlobalState;
-    }
-
-    /**
-     * Calling this method in setUp() has no effect!
-     *
-     * @param boolean $backupGlobals
-     * @since  Method available since Release 3.3.0
-     */
-    public function setBackupGlobals($backupGlobals)
-    {
-        if (is_null($this->backupGlobals) && is_bool($backupGlobals)) {
-            $this->backupGlobals = $backupGlobals;
-        }
-    }
-
-    /**
-     * Calling this method in setUp() has no effect!
-     *
-     * @param boolean $backupStaticAttributes
-     * @since  Method available since Release 3.4.0
-     */
-    public function setBackupStaticAttributes($backupStaticAttributes)
-    {
-        if (is_null($this->backupStaticAttributes) &&
-            is_bool($backupStaticAttributes)) {
-            $this->backupStaticAttributes = $backupStaticAttributes;
-        }
-    }
-
-    /**
-     * @param  boolean                     $runTestInSeparateProcess
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.4.0
-     */
-    public function setRunTestInSeparateProcess($runTestInSeparateProcess)
-    {
-        if (is_bool($runTestInSeparateProcess)) {
-            if ($this->runTestInSeparateProcess === null) {
-                $this->runTestInSeparateProcess = $runTestInSeparateProcess;
-            }
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-    }
-
-    /**
-     * @param  boolean                     $preserveGlobalState
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.4.0
-     */
-    public function setPreserveGlobalState($preserveGlobalState)
-    {
-        if (is_bool($preserveGlobalState)) {
-            $this->preserveGlobalState = $preserveGlobalState;
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-    }
-
-    /**
-     * @param  boolean                     $inIsolation
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.4.0
-     */
-    public function setInIsolation($inIsolation)
-    {
-        if (is_bool($inIsolation)) {
-            $this->inIsolation = $inIsolation;
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-    }
-
-    /**
-     * @return boolean
-     * @since  Method available since Release 4.3.0
-     */
-    public function isInIsolation()
-    {
-        return $this->inIsolation;
-    }
-
-    /**
-     * @return mixed
-     * @since  Method available since Release 3.4.0
-     */
-    public function getResult()
-    {
-        return $this->testResult;
-    }
-
-    /**
-     * @param mixed $result
-     * @since  Method available since Release 3.4.0
-     */
-    public function setResult($result)
-    {
-        $this->testResult = $result;
-    }
-
-    /**
-     * @param  callable                    $callback
-     * @throws PHPUnit_Framework_Exception
-     * @since Method available since Release 3.6.0
-     */
-    public function setOutputCallback($callback)
-    {
-        if (!is_callable($callback)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'callback');
-        }
-
-        $this->outputCallback = $callback;
-    }
-
-    /**
-     * @return PHPUnit_Framework_TestResult
-     * @since  Method available since Release 3.5.7
-     */
-    public function getTestResultObject()
-    {
-        return $this->result;
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     * @since Method available since Release 3.6.0
-     */
-    public function setTestResultObject(PHPUnit_Framework_TestResult $result)
-    {
-        $this->result = $result;
-    }
-
-    /**
-     * This method is a wrapper for the ini_set() function that automatically
-     * resets the modified php.ini setting to its original value after the
-     * test is run.
-     *
-     * @param  string                      $varName
-     * @param  string                      $newValue
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.0.0
-     */
-    protected function iniSet($varName, $newValue)
-    {
-        if (!is_string($varName)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        $currentValue = ini_set($varName, $newValue);
-
-        if ($currentValue !== false) {
-            $this->iniSettings[$varName] = $currentValue;
-        } else {
-            throw new PHPUnit_Framework_Exception(
-                sprintf(
-                    'INI setting "%s" could not be set to "%s".',
-                    $varName,
-                    $newValue
-                )
-            );
-        }
-    }
-
-    /**
-     * This method is a wrapper for the setlocale() function that automatically
-     * resets the locale to its original value after the test is run.
-     *
-     * @param  integer                     $category
-     * @param  string                      $locale
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.1.0
-     */
-    protected function setLocale()
-    {
-        $args = func_get_args();
-
-        if (count($args) < 2) {
-            throw new PHPUnit_Framework_Exception;
-        }
-
-        $category = $args[0];
-        $locale   = $args[1];
-
-        $categories = array(
-          LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
-        );
-
-        if (defined('LC_MESSAGES')) {
-            $categories[] = LC_MESSAGES;
-        }
-
-        if (!in_array($category, $categories)) {
-            throw new PHPUnit_Framework_Exception;
-        }
-
-        if (!is_array($locale) && !is_string($locale)) {
-            throw new PHPUnit_Framework_Exception;
-        }
-
-        $this->locale[$category] = setlocale($category, null);
-
-        $result = call_user_func_array('setlocale', $args);
-
-        if ($result === false) {
-            throw new PHPUnit_Framework_Exception(
-                'The locale functionality is not implemented on your platform, ' .
-                'the specified locale does not exist or the category name is ' .
-                'invalid.'
-            );
-        }
-    }
-
-    /**
-     * Returns a mock object for the specified class.
-     *
-     * @param  string                                  $originalClassName       Name of the class to mock.
-     * @param  array|null                              $methods                 When provided, only methods whose names are in the array
-     *                                                                          are replaced with a configurable test double. The behavior
-     *                                                                          of the other methods is not changed.
-     *                                                                          Providing null means that no methods will be replaced.
-     * @param  array                                   $arguments               Parameters to pass to the original class' constructor.
-     * @param  string                                  $mockClassName           Class name for the generated test double class.
-     * @param  boolean                                 $callOriginalConstructor Can be used to disable the call to the original class' constructor.
-     * @param  boolean                                 $callOriginalClone       Can be used to disable the call to the original class' clone constructor.
-     * @param  boolean                                 $callAutoload            Can be used to disable __autoload() during the generation of the test double class.
-     * @param  boolean                                 $cloneArguments
-     * @param  boolean                                 $callOriginalMethods
-     * @return PHPUnit_Framework_MockObject_MockObject
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.0.0
-     */
-    public function getMock($originalClassName, $methods = array(), array $arguments = array(), $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $cloneArguments = false, $callOriginalMethods = false)
-    {
-        $mockObject = $this->getMockObjectGenerator()->getMock(
-            $originalClassName,
-            $methods,
-            $arguments,
-            $mockClassName,
-            $callOriginalConstructor,
-            $callOriginalClone,
-            $callAutoload,
-            $cloneArguments,
-            $callOriginalMethods
-        );
-
-        $this->mockObjects[] = $mockObject;
-
-        return $mockObject;
-    }
-
-    /**
-     * Returns a builder object to create mock objects using a fluent interface.
-     *
-     * @param  string                                   $className
-     * @return PHPUnit_Framework_MockObject_MockBuilder
-     * @since  Method available since Release 3.5.0
-     */
-    public function getMockBuilder($className)
-    {
-        return new PHPUnit_Framework_MockObject_MockBuilder($this, $className);
-    }
-
-    /**
-     * Mocks the specified class and returns the name of the mocked class.
-     *
-     * @param  string                      $originalClassName
-     * @param  array                       $methods
-     * @param  array                       $arguments
-     * @param  string                      $mockClassName
-     * @param  boolean                     $callOriginalConstructor
-     * @param  boolean                     $callOriginalClone
-     * @param  boolean                     $callAutoload
-     * @param  boolean                     $cloneArguments
-     * @return string
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.5.0
-     */
-    protected function getMockClass($originalClassName, $methods = array(), array $arguments = array(), $mockClassName = '', $callOriginalConstructor = false, $callOriginalClone = true, $callAutoload = true, $cloneArguments = false)
-    {
-        $mock = $this->getMock(
-            $originalClassName,
-            $methods,
-            $arguments,
-            $mockClassName,
-            $callOriginalConstructor,
-            $callOriginalClone,
-            $callAutoload,
-            $cloneArguments
-        );
-
-        return get_class($mock);
-    }
-
-    /**
-     * Returns a mock object for the specified abstract class with all abstract
-     * methods of the class mocked. Concrete methods are not mocked by default.
-     * To mock concrete methods, use the 7th parameter ($mockedMethods).
-     *
-     * @param  string                                  $originalClassName
-     * @param  array                                   $arguments
-     * @param  string                                  $mockClassName
-     * @param  boolean                                 $callOriginalConstructor
-     * @param  boolean                                 $callOriginalClone
-     * @param  boolean                                 $callAutoload
-     * @param  array                                   $mockedMethods
-     * @param  boolean                                 $cloneArguments
-     * @return PHPUnit_Framework_MockObject_MockObject
-     * @since  Method available since Release 3.4.0
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function getMockForAbstractClass($originalClassName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = array(), $cloneArguments = false)
-    {
-        $mockObject = $this->getMockObjectGenerator()->getMockForAbstractClass(
-            $originalClassName,
-            $arguments,
-            $mockClassName,
-            $callOriginalConstructor,
-            $callOriginalClone,
-            $callAutoload,
-            $mockedMethods,
-            $cloneArguments
-        );
-
-        $this->mockObjects[] = $mockObject;
-
-        return $mockObject;
-    }
-
-    /**
-     * Returns a mock object based on the given WSDL file.
-     *
-     * @param  string                                  $wsdlFile
-     * @param  string                                  $originalClassName
-     * @param  string                                  $mockClassName
-     * @param  array                                   $methods
-     * @param  boolean                                 $callOriginalConstructor
-     * @param  array                                   $options                 An array of options passed to SOAPClient::_construct
-     * @return PHPUnit_Framework_MockObject_MockObject
-     * @since  Method available since Release 3.4.0
-     */
-    protected function getMockFromWsdl($wsdlFile, $originalClassName = '', $mockClassName = '', array $methods = array(), $callOriginalConstructor = true, array $options = array())
-    {
-        if ($originalClassName === '') {
-            $originalClassName = str_replace('.wsdl', '', basename($wsdlFile));
-        }
-
-        if (!class_exists($originalClassName)) {
-            eval(
-            $this->getMockObjectGenerator()->generateClassFromWsdl(
-                $wsdlFile,
-                $originalClassName,
-                $methods,
-                $options
-            )
-            );
-        }
-
-        return $this->getMock(
-            $originalClassName,
-            $methods,
-            array('', $options),
-            $mockClassName,
-            $callOriginalConstructor,
-            false,
-            false
-        );
-    }
-
-    /**
-     * Returns a mock object for the specified trait with all abstract methods
-     * of the trait mocked. Concrete methods to mock can be specified with the
-     * `$mockedMethods` parameter.
-     *
-     * @param  string                                  $traitName
-     * @param  array                                   $arguments
-     * @param  string                                  $mockClassName
-     * @param  boolean                                 $callOriginalConstructor
-     * @param  boolean                                 $callOriginalClone
-     * @param  boolean                                 $callAutoload
-     * @param  array                                   $mockedMethods
-     * @param  boolean                                 $cloneArguments
-     * @return PHPUnit_Framework_MockObject_MockObject
-     * @since  Method available since Release 4.0.0
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function getMockForTrait($traitName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = array(), $cloneArguments = false)
-    {
-        $mockObject = $this->getMockObjectGenerator()->getMockForTrait(
-            $traitName,
-            $arguments,
-            $mockClassName,
-            $callOriginalConstructor,
-            $callOriginalClone,
-            $callAutoload,
-            $mockedMethods,
-            $cloneArguments
-        );
-
-        $this->mockObjects[] = $mockObject;
-
-        return $mockObject;
-    }
-
-    /**
-     * Returns an object for the specified trait.
-     *
-     * @param  string                      $traitName
-     * @param  array                       $arguments
-     * @param  string                      $traitClassName
-     * @param  boolean                     $callOriginalConstructor
-     * @param  boolean                     $callOriginalClone
-     * @param  boolean                     $callAutoload
-     * @param  boolean                     $cloneArguments
-     * @return object
-     * @since  Method available since Release 3.6.0
-     * @throws PHPUnit_Framework_Exception
-     */
-    protected function getObjectForTrait($traitName, array $arguments = array(), $traitClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $cloneArguments = false)
-    {
-        return $this->getMockObjectGenerator()->getObjectForTrait(
-            $traitName,
-            $arguments,
-            $traitClassName,
-            $callOriginalConstructor,
-            $callOriginalClone,
-            $callAutoload,
-            $cloneArguments
-        );
-    }
-
-    /**
-     * @param string|null $classOrInterface
-     * @return \Prophecy\Prophecy\ObjectProphecy
-     * @throws \LogicException
-     * @since  Method available since Release 4.5.0
-     */
-    protected function prophesize($classOrInterface = null)
-    {
-        return $this->getProphet()->prophesize($classOrInterface);
-    }
-
-    /**
-     * Adds a value to the assertion counter.
-     *
-     * @param integer $count
-     * @since Method available since Release 3.3.3
-     */
-    public function addToAssertionCount($count)
-    {
-        $this->numAssertions += $count;
-    }
-
-    /**
-     * Returns the number of assertions performed by this test.
-     *
-     * @return integer
-     * @since  Method available since Release 3.3.0
-     */
-    public function getNumAssertions()
-    {
-        return $this->numAssertions;
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is executed zero or more times.
-     *
-     * @return PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount
-     * @since  Method available since Release 3.0.0
-     */
-    public static function any()
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is never executed.
-     *
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedCount
-     * @since  Method available since Release 3.0.0
-     */
-    public static function never()
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedCount(0);
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is executed at least N times.
-     *
-     * @param  integer $requiredInvocations
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount
-     * @since  Method available since Release 4.2.0
-     */
-    public static function atLeast($requiredInvocations)
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount(
-            $requiredInvocations
-        );
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is executed at least once.
-     *
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce
-     * @since  Method available since Release 3.0.0
-     */
-    public static function atLeastOnce()
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce;
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is executed exactly once.
-     *
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedCount
-     * @since  Method available since Release 3.0.0
-     */
-    public static function once()
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedCount(1);
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is executed exactly $count times.
-     *
-     * @param  integer                                           $count
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedCount
-     * @since  Method available since Release 3.0.0
-     */
-    public static function exactly($count)
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedCount($count);
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is executed at most N times.
-     *
-     * @param  integer $allowedInvocations
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount
-     * @since  Method available since Release 4.2.0
-     */
-    public static function atMost($allowedInvocations)
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount(
-            $allowedInvocations
-        );
-    }
-
-    /**
-     * Returns a matcher that matches when the method it is evaluated for
-     * is invoked at the given $index.
-     *
-     * @param  integer                                             $index
-     * @return PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex
-     * @since  Method available since Release 3.0.0
-     */
-    public static function at($index)
-    {
-        return new PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex($index);
-    }
-
-    /**
-     *
-     *
-     * @param  mixed                                    $value
-     * @return PHPUnit_Framework_MockObject_Stub_Return
-     * @since  Method available since Release 3.0.0
-     */
-    public static function returnValue($value)
-    {
-        return new PHPUnit_Framework_MockObject_Stub_Return($value);
-    }
-
-    /**
-     *
-     *
-     * @param  array                                            $valueMap
-     * @return PHPUnit_Framework_MockObject_Stub_ReturnValueMap
-     * @since  Method available since Release 3.6.0
-     */
-    public static function returnValueMap(array $valueMap)
-    {
-        return new PHPUnit_Framework_MockObject_Stub_ReturnValueMap($valueMap);
-    }
-
-    /**
-     *
-     *
-     * @param  integer                                          $argumentIndex
-     * @return PHPUnit_Framework_MockObject_Stub_ReturnArgument
-     * @since  Method available since Release 3.3.0
-     */
-    public static function returnArgument($argumentIndex)
-    {
-        return new PHPUnit_Framework_MockObject_Stub_ReturnArgument(
-            $argumentIndex
-        );
-    }
-
-    /**
-     *
-     *
-     * @param  mixed                                            $callback
-     * @return PHPUnit_Framework_MockObject_Stub_ReturnCallback
-     * @since  Method available since Release 3.3.0
-     */
-    public static function returnCallback($callback)
-    {
-        return new PHPUnit_Framework_MockObject_Stub_ReturnCallback($callback);
-    }
-
-    /**
-     * Returns the current object.
-     *
-     * This method is useful when mocking a fluent interface.
-     *
-     * @return PHPUnit_Framework_MockObject_Stub_ReturnSelf
-     * @since  Method available since Release 3.6.0
-     */
-    public static function returnSelf()
-    {
-        return new PHPUnit_Framework_MockObject_Stub_ReturnSelf();
-    }
-
-    /**
-     *
-     *
-     * @param  Exception                                   $exception
-     * @return PHPUnit_Framework_MockObject_Stub_Exception
-     * @since  Method available since Release 3.1.0
-     */
-    public static function throwException(Exception $exception)
-    {
-        return new PHPUnit_Framework_MockObject_Stub_Exception($exception);
-    }
-
-    /**
-     * @param  mixed                                              $value, ...
-     * @return PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls
-     * @since  Method available since Release 3.0.0
-     */
-    public static function onConsecutiveCalls()
-    {
-        $args = func_get_args();
-
-        return new PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls($args);
-    }
-
-    /**
-     * Gets the data set description of a TestCase.
-     *
-     * @param  boolean $includeData
-     * @return string
-     * @since  Method available since Release 3.3.0
-     */
-    protected function getDataSetAsString($includeData = true)
-    {
-        $buffer = '';
-
-        if (!empty($this->data)) {
-            if (is_int($this->dataName)) {
-                $buffer .= sprintf(' with data set #%d', $this->dataName);
-            } else {
-                $buffer .= sprintf(' with data set "%s"', $this->dataName);
-            }
-
-            $exporter = new Exporter;
-
-            if ($includeData) {
-                $buffer .= sprintf(' (%s)', $exporter->shortenedRecursiveExport($this->data));
-            }
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Creates a default TestResult object.
-     *
-     * @return PHPUnit_Framework_TestResult
-     */
-    protected function createResult()
-    {
-        return new PHPUnit_Framework_TestResult;
-    }
-
-    /**
-     * @since Method available since Release 3.5.4
-     */
-    protected function handleDependencies()
-    {
-        if (!empty($this->dependencies) && !$this->inIsolation) {
-            $className  = get_class($this);
-            $passed     = $this->result->passed();
-            $passedKeys = array_keys($passed);
-            $numKeys    = count($passedKeys);
-
-            for ($i = 0; $i < $numKeys; $i++) {
-                $pos = strpos($passedKeys[$i], ' with data set');
-
-                if ($pos !== false) {
-                    $passedKeys[$i] = substr($passedKeys[$i], 0, $pos);
-                }
-            }
-
-            $passedKeys = array_flip(array_unique($passedKeys));
-
-            foreach ($this->dependencies as $dependency) {
-                if (strpos($dependency, '::') === false) {
-                    $dependency = $className . '::' . $dependency;
-                }
-
-                if (!isset($passedKeys[$dependency])) {
-                    $this->result->addError(
-                        $this,
-                        new PHPUnit_Framework_SkippedTestError(
-                            sprintf(
-                                'This test depends on "%s" to pass.',
-                                $dependency
-                            )
-                        ),
-                        0
-                    );
-
-                    return false;
-                }
-
-                if (isset($passed[$dependency])) {
-                    if ($passed[$dependency]['size'] > $this->getSize()) {
-                        $this->result->addError(
-                            $this,
-                            new PHPUnit_Framework_SkippedTestError(
-                                'This test depends on a test that is larger than itself.'
-                            ),
-                            0
-                        );
-
-                        return false;
-                    }
-
-                    $this->dependencyInput[$dependency] = $passed[$dependency]['result'];
-                } else {
-                    $this->dependencyInput[$dependency] = null;
-                }
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * This method is called before the first test of this test class is run.
-     *
-     * @since Method available since Release 3.4.0
-     */
-    public static function setUpBeforeClass()
-    {
-    }
-
-    /**
-     * Sets up the fixture, for example, open a network connection.
-     * This method is called before a test is executed.
-     *
-     */
-    protected function setUp()
-    {
-    }
-
-    /**
-     * Performs assertions shared by all tests of a test case.
-     *
-     * This method is called before the execution of a test starts
-     * and after setUp() is called.
-     *
-     * @since  Method available since Release 3.2.8
-     */
-    protected function assertPreConditions()
-    {
-    }
-
-    /**
-     * Performs assertions shared by all tests of a test case.
-     *
-     * This method is called before the execution of a test ends
-     * and before tearDown() is called.
-     *
-     * @since  Method available since Release 3.2.8
-     */
-    protected function assertPostConditions()
-    {
-    }
-
-    /**
-     * Tears down the fixture, for example, close a network connection.
-     * This method is called after a test is executed.
-     */
-    protected function tearDown()
-    {
-    }
-
-    /**
-     * This method is called after the last test of this test class is run.
-     *
-     * @since Method available since Release 3.4.0
-     */
-    public static function tearDownAfterClass()
-    {
-    }
-
-    /**
-     * This method is called when a test method did not execute successfully.
-     *
-     * @param  Exception $e
-     * @since Method available since Release 3.4.0
-     * @throws Exception
-     */
-    protected function onNotSuccessfulTest(Exception $e)
-    {
-        throw $e;
-    }
-
-    /**
-     * Performs custom preparations on the process isolation template.
-     *
-     * @param Text_Template $template
-     * @since Method available since Release 3.4.0
-     */
-    protected function prepareTemplate(Text_Template $template)
-    {
-    }
-
-    /**
-     * Get the mock object generator, creating it if it doesn't exist.
-     *
-     * @return   PHPUnit_Framework_MockObject_Generator
-     */
-    protected function getMockObjectGenerator()
-    {
-        if (null === $this->mockObjectGenerator) {
-            $this->mockObjectGenerator = new PHPUnit_Framework_MockObject_Generator;
-        }
-
-        return $this->mockObjectGenerator;
-    }
-
-    /**
-     * @since Method available since Release 4.2.0
-     */
-    private function startOutputBuffering()
-    {
-        while (!defined('PHPUNIT_TESTSUITE') && ob_get_level() > 0) {
-            ob_end_clean();
-        }
-
-        ob_start();
-
-        $this->outputBufferingActive = true;
-        $this->outputBufferingLevel  = ob_get_level();
-    }
-
-    /**
-     * @since Method available since Release 4.2.0
-     */
-    private function stopOutputBuffering()
-    {
-        if (ob_get_level() != $this->outputBufferingLevel) {
-            while (ob_get_level() > 0) {
-                ob_end_clean();
-            }
-
-            throw new PHPUnit_Framework_RiskyTestError(
-                'Test code or tested code did not (only) close its own output buffers'
-            );
-        }
-
-        $output = ob_get_contents();
-
-        if ($this->outputCallback === false) {
-            $this->output = $output;
-        } else {
-            $this->output = call_user_func_array(
-                $this->outputCallback,
-                array($output)
-            );
-        }
-
-        ob_end_clean();
-
-        $this->outputBufferingActive = false;
-        $this->outputBufferingLevel  = ob_get_level();
-    }
-
-    private function snapshotGlobalState()
-    {
-        $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true;
-
-        if ($this->runTestInSeparateProcess || $this->inIsolation ||
-            (!$backupGlobals && !$this->backupStaticAttributes)) {
-            return;
-        }
-
-        $this->snapshot = $this->createGlobalStateSnapshot($backupGlobals);
-    }
-
-    private function restoreGlobalState()
-    {
-        if (!$this->snapshot instanceof Snapshot) {
-            return;
-        }
-
-        $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true;
-
-        if ($this->disallowChangesToGlobalState) {
-            $this->compareGlobalStateSnapshots(
-                $this->snapshot,
-                $this->createGlobalStateSnapshot($backupGlobals)
-            );
-        }
-
-        $restorer = new Restorer;
-
-        if ($backupGlobals) {
-            $restorer->restoreGlobalVariables($this->snapshot);
-        }
-
-        if ($this->backupStaticAttributes) {
-            $restorer->restoreStaticAttributes($this->snapshot);
-        }
-
-        $this->snapshot = null;
-    }
-
-    /**
-     * @param  boolean $backupGlobals
-     * @return Snapshot
-     */
-    private function createGlobalStateSnapshot($backupGlobals)
-    {
-        $blacklist = new Blacklist;
-
-        foreach ($this->backupGlobalsBlacklist as $globalVariable) {
-            $blacklist->addGlobalVariable($globalVariable);
-        }
-
-        if (!defined('PHPUNIT_TESTSUITE')) {
-            $blacklist->addClassNamePrefix('PHPUnit');
-            $blacklist->addClassNamePrefix('File_Iterator');
-            $blacklist->addClassNamePrefix('PHP_CodeCoverage');
-            $blacklist->addClassNamePrefix('PHP_Invoker');
-            $blacklist->addClassNamePrefix('PHP_Timer');
-            $blacklist->addClassNamePrefix('PHP_Token');
-            $blacklist->addClassNamePrefix('Symfony');
-            $blacklist->addClassNamePrefix('Text_Template');
-            $blacklist->addClassNamePrefix('Doctrine\Instantiator');
-
-            foreach ($this->backupStaticAttributesBlacklist as $class => $attributes) {
-                foreach ($attributes as $attribute) {
-                    $blacklist->addStaticAttribute($class, $attribute);
-                }
-            }
-        }
-
-        return new Snapshot(
-            $blacklist,
-            $backupGlobals,
-            $this->backupStaticAttributes,
-            false,
-            false,
-            false,
-            false,
-            false,
-            false,
-            false
-        );
-    }
-
-    /**
-     * @param  Snapshot $before
-     * @param  Snapshot $after
-     * @throws PHPUnit_Framework_RiskyTestError
-     */
-    private function compareGlobalStateSnapshots(Snapshot $before, Snapshot $after)
-    {
-        $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true;
-
-        if ($backupGlobals) {
-            $this->compareGlobalStateSnapshotPart(
-                $before->globalVariables(),
-                $after->globalVariables(),
-                "--- Global variables before the test\n+++ Global variables after the test\n"
-            );
-
-            $this->compareGlobalStateSnapshotPart(
-                $before->superGlobalVariables(),
-                $after->superGlobalVariables(),
-                "--- Super-global variables before the test\n+++ Super-global variables after the test\n"
-            );
-        }
-
-        if ($this->backupStaticAttributes) {
-            $this->compareGlobalStateSnapshotPart(
-                $before->staticAttributes(),
-                $after->staticAttributes(),
-                "--- Static attributes before the test\n+++ Static attributes after the test\n"
-            );
-        }
-    }
-
-    /**
-     * @param  array  $before
-     * @param  array  $after
-     * @param  string $header
-     * @throws PHPUnit_Framework_RiskyTestError
-     */
-    private function compareGlobalStateSnapshotPart(array $before, array $after, $header)
-    {
-        if ($before != $after) {
-            $differ   = new Differ($header);
-            $exporter = new Exporter;
-
-            $diff = $differ->diff(
-                $exporter->export($before),
-                $exporter->export($after)
-            );
-
-            throw new PHPUnit_Framework_RiskyTestError(
-                $diff
-            );
-        }
-    }
-
-    /**
-     * @return Prophecy\Prophet
-     * @since Method available since Release 4.5.0
-     */
-    private function getProphet()
-    {
-        if ($this->prophet === null) {
-            $this->prophet = new Prophet;
-        }
-
-        return $this->prophet;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestFailure.php b/core/vendor/phpunit/phpunit/src/Framework/TestFailure.php
deleted file mode 100644
index 19604b1..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/TestFailure.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A TestFailure collects a failed test together with the caught exception.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Framework_TestFailure
-{
-    /**
-     * @var string
-     */
-    private $testName;
-
-    /**
-     * @var PHPUnit_Framework_Test|null
-     */
-    protected $failedTest;
-
-    /**
-     * @var    Exception
-     */
-    protected $thrownException;
-
-    /**
-     * Constructs a TestFailure with the given test and exception.
-     *
-     * @param PHPUnit_Framework_Test $failedTest
-     * @param Exception              $thrownException
-     */
-    public function __construct(PHPUnit_Framework_Test $failedTest, Exception $thrownException)
-    {
-        if ($failedTest instanceof PHPUnit_Framework_SelfDescribing) {
-            $this->testName = $failedTest->toString();
-        } else {
-            $this->testName = get_class($failedTest);
-        }
-        if (!$failedTest instanceof PHPUnit_Framework_TestCase || !$failedTest->isInIsolation()) {
-            $this->failedTest = $failedTest;
-        }
-        $this->thrownException = $thrownException;
-    }
-
-    /**
-     * Returns a short description of the failure.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return sprintf(
-            '%s: %s',
-            $this->testName,
-            $this->thrownException->getMessage()
-        );
-    }
-
-    /**
-     * Returns a description for the thrown exception.
-     *
-     * @return string
-     * @since  Method available since Release 3.4.0
-     */
-    public function getExceptionAsString()
-    {
-        return self::exceptionToString($this->thrownException);
-    }
-
-    /**
-     * Returns a description for an exception.
-     *
-     * @param  Exception $e
-     * @return string
-     * @since  Method available since Release 3.2.0
-     */
-    public static function exceptionToString(Exception $e)
-    {
-        if ($e instanceof PHPUnit_Framework_SelfDescribing) {
-            $buffer = $e->toString();
-
-            if ($e instanceof PHPUnit_Framework_ExpectationFailedException && $e->getComparisonFailure()) {
-                $buffer = $buffer . $e->getComparisonFailure()->getDiff();
-            }
-
-            if (!empty($buffer)) {
-                $buffer = trim($buffer) . "\n";
-            }
-        } elseif ($e instanceof PHPUnit_Framework_Error) {
-            $buffer = $e->getMessage() . "\n";
-        } elseif ($e instanceof PHPUnit_Framework_ExceptionWrapper) {
-            $buffer = $e->getClassname() . ': ' . $e->getMessage() . "\n";
-        } else {
-            $buffer = get_class($e) . ': ' . $e->getMessage() . "\n";
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Returns the name of the failing test (including data set, if any).
-     *
-     * @return string
-     * @since  Method available since Release 4.3.0
-     */
-    public function getTestName()
-    {
-        return $this->testName;
-    }
-
-    /**
-     * Returns the failing test.
-     *
-     * Note: The test object is not set when the test is executed in process
-     * isolation.
-     *
-     * @see PHPUnit_Framework_Exception
-     *
-     * @return PHPUnit_Framework_Test|null
-     */
-    public function failedTest()
-    {
-        return $this->failedTest;
-    }
-
-    /**
-     * Gets the thrown exception.
-     *
-     * @return Exception
-     */
-    public function thrownException()
-    {
-        return $this->thrownException;
-    }
-
-    /**
-     * Returns the exception's message.
-     *
-     * @return string
-     */
-    public function exceptionMessage()
-    {
-        return $this->thrownException()->getMessage();
-    }
-
-    /**
-     * Returns true if the thrown exception
-     * is of type AssertionFailedError.
-     *
-     * @return boolean
-     */
-    public function isFailure()
-    {
-        return ($this->thrownException() instanceof PHPUnit_Framework_AssertionFailedError);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestListener.php b/core/vendor/phpunit/phpunit/src/Framework/TestListener.php
deleted file mode 100644
index 8bb7dd3..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/TestListener.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A Listener for test progress.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 2.0.0
- */
-interface PHPUnit_Framework_TestListener
-{
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time);
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time);
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time);
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time);
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time);
-
-    /**
-     * A test suite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite);
-
-    /**
-     * A test suite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite);
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test);
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time);
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestResult.php b/core/vendor/phpunit/phpunit/src/Framework/TestResult.php
deleted file mode 100644
index 6d882ad..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/TestResult.php
+++ /dev/null
@@ -1,1089 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A TestResult collects the results of executing a test case.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Framework_TestResult implements Countable
-{
-    /**
-     * @var array
-     */
-    protected $passed = array();
-
-    /**
-     * @var array
-     */
-    protected $errors = array();
-
-    /**
-     * @var array
-     */
-    protected $failures = array();
-
-    /**
-     * @var array
-     */
-    protected $notImplemented = array();
-
-    /**
-     * @var array
-     */
-    protected $risky = array();
-
-    /**
-     * @var array
-     */
-    protected $skipped = array();
-
-    /**
-     * @var array
-     */
-    protected $listeners = array();
-
-    /**
-     * @var integer
-     */
-    protected $runTests = 0;
-
-    /**
-     * @var float
-     */
-    protected $time = 0;
-
-    /**
-     * @var PHPUnit_Framework_TestSuite
-     */
-    protected $topTestSuite = null;
-
-    /**
-     * Code Coverage information.
-     *
-     * @var PHP_CodeCoverage
-     */
-    protected $codeCoverage;
-
-    /**
-     * @var boolean
-     */
-    protected $convertErrorsToExceptions = true;
-
-    /**
-     * @var boolean
-     */
-    protected $stop = false;
-
-    /**
-     * @var boolean
-     */
-    protected $stopOnError = false;
-
-    /**
-     * @var boolean
-     */
-    protected $stopOnFailure = false;
-
-    /**
-     * @var boolean
-     */
-    protected $beStrictAboutTestsThatDoNotTestAnything = false;
-
-    /**
-     * @var boolean
-     */
-    protected $beStrictAboutOutputDuringTests = false;
-
-    /**
-     * @var boolean
-     */
-    protected $beStrictAboutTestSize = false;
-
-    /**
-     * @var boolean
-     */
-    protected $beStrictAboutTodoAnnotatedTests = false;
-
-    /**
-     * @var boolean
-     */
-    protected $stopOnRisky = false;
-
-    /**
-     * @var boolean
-     */
-    protected $stopOnIncomplete = false;
-
-    /**
-     * @var boolean
-     */
-    protected $stopOnSkipped = false;
-
-    /**
-     * @var boolean
-     */
-    protected $lastTestFailed = false;
-
-    /**
-     * @var integer
-     */
-    protected $timeoutForSmallTests = 1;
-
-    /**
-     * @var integer
-     */
-    protected $timeoutForMediumTests = 10;
-
-    /**
-     * @var integer
-     */
-    protected $timeoutForLargeTests = 60;
-
-    /**
-     * Registers a TestListener.
-     *
-     * @param  PHPUnit_Framework_TestListener
-     */
-    public function addListener(PHPUnit_Framework_TestListener $listener)
-    {
-        $this->listeners[] = $listener;
-    }
-
-    /**
-     * Unregisters a TestListener.
-     *
-     * @param PHPUnit_Framework_TestListener $listener
-     */
-    public function removeListener(PHPUnit_Framework_TestListener $listener)
-    {
-        foreach ($this->listeners as $key => $_listener) {
-            if ($listener === $_listener) {
-                unset($this->listeners[$key]);
-            }
-        }
-    }
-
-    /**
-     * Flushes all flushable TestListeners.
-     *
-     * @since  Method available since Release 3.0.0
-     */
-    public function flushListeners()
-    {
-        foreach ($this->listeners as $listener) {
-            if ($listener instanceof PHPUnit_Util_Printer) {
-                $listener->flush();
-            }
-        }
-    }
-
-    /**
-     * Adds an error to the list of errors.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($e instanceof PHPUnit_Framework_RiskyTest) {
-            $this->risky[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod  = 'addRiskyTest';
-
-            if ($this->stopOnRisky) {
-                $this->stop();
-            }
-        } elseif ($e instanceof PHPUnit_Framework_IncompleteTest) {
-            $this->notImplemented[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod           = 'addIncompleteTest';
-
-            if ($this->stopOnIncomplete) {
-                $this->stop();
-            }
-        } elseif ($e instanceof PHPUnit_Framework_SkippedTest) {
-            $this->skipped[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod    = 'addSkippedTest';
-
-            if ($this->stopOnSkipped) {
-                $this->stop();
-            }
-        } else {
-            $this->errors[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod   = 'addError';
-
-            if ($this->stopOnError || $this->stopOnFailure) {
-                $this->stop();
-            }
-        }
-
-        foreach ($this->listeners as $listener) {
-            $listener->$notifyMethod($test, $e, $time);
-        }
-
-        $this->lastTestFailed = true;
-        $this->time          += $time;
-    }
-
-    /**
-     * Adds a failure to the list of failures.
-     * The passed in exception caused the failure.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        if ($e instanceof PHPUnit_Framework_RiskyTest ||
-            $e instanceof PHPUnit_Framework_OutputError) {
-            $this->risky[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod  = 'addRiskyTest';
-
-            if ($this->stopOnRisky) {
-                $this->stop();
-            }
-        } elseif ($e instanceof PHPUnit_Framework_IncompleteTest) {
-            $this->notImplemented[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod           = 'addIncompleteTest';
-
-            if ($this->stopOnIncomplete) {
-                $this->stop();
-            }
-        } elseif ($e instanceof PHPUnit_Framework_SkippedTest) {
-            $this->skipped[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod    = 'addSkippedTest';
-
-            if ($this->stopOnSkipped) {
-                $this->stop();
-            }
-        } else {
-            $this->failures[] = new PHPUnit_Framework_TestFailure($test, $e);
-            $notifyMethod     = 'addFailure';
-
-            if ($this->stopOnFailure) {
-                $this->stop();
-            }
-        }
-
-        foreach ($this->listeners as $listener) {
-            $listener->$notifyMethod($test, $e, $time);
-        }
-
-        $this->lastTestFailed = true;
-        $this->time          += $time;
-    }
-
-    /**
-     * Informs the result that a testsuite will be started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        if ($this->topTestSuite === null) {
-            $this->topTestSuite = $suite;
-        }
-
-        foreach ($this->listeners as $listener) {
-            $listener->startTestSuite($suite);
-        }
-    }
-
-    /**
-     * Informs the result that a testsuite was completed.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        foreach ($this->listeners as $listener) {
-            $listener->endTestSuite($suite);
-        }
-    }
-
-    /**
-     * Informs the result that a test will be started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        $this->lastTestFailed = false;
-        $this->runTests      += count($test);
-
-        foreach ($this->listeners as $listener) {
-            $listener->startTest($test);
-        }
-    }
-
-    /**
-     * Informs the result that a test was completed.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        foreach ($this->listeners as $listener) {
-            $listener->endTest($test, $time);
-        }
-
-        if (!$this->lastTestFailed && $test instanceof PHPUnit_Framework_TestCase) {
-            $class  = get_class($test);
-            $key    =  $class . '::' . $test->getName();
-
-            $this->passed[$key] = array(
-              'result' => $test->getResult(),
-              'size'   => PHPUnit_Util_Test::getSize(
-                  $class,
-                  $test->getName(false)
-              )
-            );
-
-            $this->time += $time;
-        }
-    }
-
-    /**
-     * Returns true if no risky test occurred.
-     *
-     * @return boolean
-     * @since  Method available since Release 4.0.0
-     */
-    public function allHarmless()
-    {
-        return $this->riskyCount() == 0;
-    }
-
-    /**
-     * Gets the number of risky tests.
-     *
-     * @return integer
-     * @since  Method available since Release 4.0.0
-     */
-    public function riskyCount()
-    {
-        return count($this->risky);
-    }
-
-    /**
-     * Returns true if no incomplete test occurred.
-     *
-     * @return boolean
-     */
-    public function allCompletelyImplemented()
-    {
-        return $this->notImplementedCount() == 0;
-    }
-
-    /**
-     * Gets the number of incomplete tests.
-     *
-     * @return integer
-     */
-    public function notImplementedCount()
-    {
-        return count($this->notImplemented);
-    }
-
-    /**
-     * Returns an Enumeration for the risky tests.
-     *
-     * @return array
-     * @since  Method available since Release 4.0.0
-     */
-    public function risky()
-    {
-        return $this->risky;
-    }
-
-    /**
-     * Returns an Enumeration for the incomplete tests.
-     *
-     * @return array
-     */
-    public function notImplemented()
-    {
-        return $this->notImplemented;
-    }
-
-    /**
-     * Returns true if no test has been skipped.
-     *
-     * @return boolean
-     * @since  Method available since Release 3.0.0
-     */
-    public function noneSkipped()
-    {
-        return $this->skippedCount() == 0;
-    }
-
-    /**
-     * Gets the number of skipped tests.
-     *
-     * @return integer
-     * @since  Method available since Release 3.0.0
-     */
-    public function skippedCount()
-    {
-        return count($this->skipped);
-    }
-
-    /**
-     * Returns an Enumeration for the skipped tests.
-     *
-     * @return array
-     * @since  Method available since Release 3.0.0
-     */
-    public function skipped()
-    {
-        return $this->skipped;
-    }
-
-    /**
-     * Gets the number of detected errors.
-     *
-     * @return integer
-     */
-    public function errorCount()
-    {
-        return count($this->errors);
-    }
-
-    /**
-     * Returns an Enumeration for the errors.
-     *
-     * @return array
-     */
-    public function errors()
-    {
-        return $this->errors;
-    }
-
-    /**
-     * Gets the number of detected failures.
-     *
-     * @return integer
-     */
-    public function failureCount()
-    {
-        return count($this->failures);
-    }
-
-    /**
-     * Returns an Enumeration for the failures.
-     *
-     * @return array
-     */
-    public function failures()
-    {
-        return $this->failures;
-    }
-
-    /**
-     * Returns the names of the tests that have passed.
-     *
-     * @return array
-     * @since  Method available since Release 3.4.0
-     */
-    public function passed()
-    {
-        return $this->passed;
-    }
-
-    /**
-     * Returns the (top) test suite.
-     *
-     * @return PHPUnit_Framework_TestSuite
-     * @since  Method available since Release 3.0.0
-     */
-    public function topTestSuite()
-    {
-        return $this->topTestSuite;
-    }
-
-    /**
-     * Returns whether code coverage information should be collected.
-     *
-     * @return boolean If code coverage should be collected
-     * @since  Method available since Release 3.2.0
-     */
-    public function getCollectCodeCoverageInformation()
-    {
-        return $this->codeCoverage !== null;
-    }
-
-    /**
-     * Runs a TestCase.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function run(PHPUnit_Framework_Test $test)
-    {
-        PHPUnit_Framework_Assert::resetCount();
-
-        $error      = false;
-        $failure    = false;
-        $incomplete = false;
-        $risky      = false;
-        $skipped    = false;
-
-        $this->startTest($test);
-
-        $errorHandlerSet = false;
-
-        if ($this->convertErrorsToExceptions) {
-            $oldErrorHandler = set_error_handler(
-                array('PHPUnit_Util_ErrorHandler', 'handleError'),
-                E_ALL | E_STRICT
-            );
-
-            if ($oldErrorHandler === null) {
-                $errorHandlerSet = true;
-            } else {
-                restore_error_handler();
-            }
-        }
-
-        $collectCodeCoverage = $this->codeCoverage !== null &&
-                               !$test instanceof PHPUnit_Extensions_SeleniumTestCase &&
-                               !$test instanceof PHPUnit_Framework_Warning;
-
-        if ($collectCodeCoverage) {
-            // We need to blacklist test source files when no whitelist is used.
-            if (!$this->codeCoverage->filter()->hasWhitelist()) {
-                $classes = $this->getHierarchy(get_class($test), true);
-
-                foreach ($classes as $class) {
-                    $this->codeCoverage->filter()->addFileToBlacklist(
-                        $class->getFileName()
-                    );
-                }
-            }
-
-            $this->codeCoverage->start($test);
-        }
-
-        PHP_Timer::start();
-
-        try {
-            if (!$test instanceof PHPUnit_Framework_Warning &&
-                $this->beStrictAboutTestSize &&
-                extension_loaded('pcntl') && class_exists('PHP_Invoker')) {
-                switch ($test->getSize()) {
-                    case PHPUnit_Util_Test::SMALL: {
-                        $_timeout = $this->timeoutForSmallTests;
-                        }
-                    break;
-
-                    case PHPUnit_Util_Test::MEDIUM: {
-                        $_timeout = $this->timeoutForMediumTests;
-                        }
-                    break;
-
-                    case PHPUnit_Util_Test::LARGE: {
-                        $_timeout = $this->timeoutForLargeTests;
-                        }
-                    break;
-                }
-
-                $invoker = new PHP_Invoker;
-                $invoker->invoke(array($test, 'runBare'), array(), $_timeout);
-            } else {
-                $test->runBare();
-            }
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            $failure = true;
-
-            if ($e instanceof PHPUnit_Framework_RiskyTestError) {
-                $risky = true;
-            } elseif ($e instanceof PHPUnit_Framework_IncompleteTestError) {
-                $incomplete = true;
-            } elseif ($e instanceof PHPUnit_Framework_SkippedTestError) {
-                $skipped = true;
-            }
-        } catch (PHPUnit_Framework_Exception $e) {
-            $error = true;
-        } catch (Exception $e) {
-            $e = new PHPUnit_Framework_ExceptionWrapper($e);
-            $error = true;
-        }
-
-        $time = PHP_Timer::stop();
-        $test->addToAssertionCount(PHPUnit_Framework_Assert::getCount());
-
-        if ($this->beStrictAboutTestsThatDoNotTestAnything &&
-            $test->getNumAssertions() == 0) {
-            $risky = true;
-        }
-
-        if ($collectCodeCoverage) {
-            $append           = !$risky && !$incomplete && !$skipped;
-            $linesToBeCovered = array();
-            $linesToBeUsed    = array();
-
-            if ($append && $test instanceof PHPUnit_Framework_TestCase) {
-                $linesToBeCovered = PHPUnit_Util_Test::getLinesToBeCovered(
-                    get_class($test),
-                    $test->getName(false)
-                );
-
-                $linesToBeUsed = PHPUnit_Util_Test::getLinesToBeUsed(
-                    get_class($test),
-                    $test->getName(false)
-                );
-            }
-
-            try {
-                $this->codeCoverage->stop(
-                    $append,
-                    $linesToBeCovered,
-                    $linesToBeUsed
-                );
-            } catch (PHP_CodeCoverage_Exception_UnintentionallyCoveredCode $cce) {
-                $this->addFailure(
-                    $test,
-                    new PHPUnit_Framework_UnintentionallyCoveredCodeError(
-                        'This test executed code that is not listed as code to be covered or used:' .
-                        PHP_EOL . $cce->getMessage()
-                    ),
-                    $time
-                );
-            } catch (PHPUnit_Framework_InvalidCoversTargetException $cce) {
-                $this->addFailure(
-                    $test,
-                    new PHPUnit_Framework_InvalidCoversTargetError(
-                        $cce->getMessage()
-                    ),
-                    $time
-                );
-            } catch (PHP_CodeCoverage_Exception $cce) {
-                $error = true;
-
-                if (!isset($e)) {
-                    $e = $cce;
-                }
-            }
-        }
-
-        if ($errorHandlerSet === true) {
-            restore_error_handler();
-        }
-
-        if ($error === true) {
-            $this->addError($test, $e, $time);
-        } elseif ($failure === true) {
-            $this->addFailure($test, $e, $time);
-        } elseif ($this->beStrictAboutTestsThatDoNotTestAnything &&
-                 $test->getNumAssertions() == 0) {
-            $this->addFailure(
-                $test,
-                new PHPUnit_Framework_RiskyTestError(
-                    'This test did not perform any assertions'
-                ),
-                $time
-            );
-        } elseif ($this->beStrictAboutOutputDuringTests && $test->hasOutput()) {
-            $this->addFailure(
-                $test,
-                new PHPUnit_Framework_OutputError(
-                    sprintf(
-                        'This test printed output: %s',
-                        $test->getActualOutput()
-                    )
-                ),
-                $time
-            );
-        } elseif ($this->beStrictAboutTodoAnnotatedTests && $test instanceof PHPUnit_Framework_TestCase) {
-            $annotations = $test->getAnnotations();
-
-            if (isset($annotations['method']['todo'])) {
-                $this->addFailure(
-                    $test,
-                    new PHPUnit_Framework_RiskyTestError(
-                        'Test method is annotated with @todo'
-                    ),
-                    $time
-                );
-            }
-        }
-
-        $this->endTest($test, $time);
-    }
-
-    /**
-     * Gets the number of run tests.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        return $this->runTests;
-    }
-
-    /**
-     * Checks whether the test run should stop.
-     *
-     * @return boolean
-     */
-    public function shouldStop()
-    {
-        return $this->stop;
-    }
-
-    /**
-     * Marks that the test run should stop.
-     *
-     */
-    public function stop()
-    {
-        $this->stop = true;
-    }
-
-    /**
-     * Returns the PHP_CodeCoverage object.
-     *
-     * @return PHP_CodeCoverage
-     * @since  Method available since Release 3.5.0
-     */
-    public function getCodeCoverage()
-    {
-        return $this->codeCoverage;
-    }
-
-    /**
-     * Sets the PHP_CodeCoverage object.
-     *
-     * @param PHP_CodeCoverage $codeCoverage
-     * @since Method available since Release 3.6.0
-     */
-    public function setCodeCoverage(PHP_CodeCoverage $codeCoverage)
-    {
-        $this->codeCoverage = $codeCoverage;
-    }
-
-    /**
-     * Enables or disables the error-to-exception conversion.
-     *
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.2.14
-     */
-    public function convertErrorsToExceptions($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->convertErrorsToExceptions = $flag;
-    }
-
-    /**
-     * Returns the error-to-exception conversion setting.
-     *
-     * @return boolean
-     * @since  Method available since Release 3.4.0
-     */
-    public function getConvertErrorsToExceptions()
-    {
-        return $this->convertErrorsToExceptions;
-    }
-
-    /**
-     * Enables or disables the stopping when an error occurs.
-     *
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.5.0
-     */
-    public function stopOnError($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->stopOnError = $flag;
-    }
-
-    /**
-     * Enables or disables the stopping when a failure occurs.
-     *
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.1.0
-     */
-    public function stopOnFailure($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->stopOnFailure = $flag;
-    }
-
-    /**
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.0.0
-     */
-    public function beStrictAboutTestsThatDoNotTestAnything($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->beStrictAboutTestsThatDoNotTestAnything = $flag;
-    }
-
-    /**
-     * @return boolean
-     * @since  Method available since Release 4.0.0
-     */
-    public function isStrictAboutTestsThatDoNotTestAnything()
-    {
-        return $this->beStrictAboutTestsThatDoNotTestAnything;
-    }
-
-    /**
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.0.0
-     */
-    public function beStrictAboutOutputDuringTests($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->beStrictAboutOutputDuringTests = $flag;
-    }
-
-    /**
-     * @return boolean
-     * @since  Method available since Release 4.0.0
-     */
-    public function isStrictAboutOutputDuringTests()
-    {
-        return $this->beStrictAboutOutputDuringTests;
-    }
-
-    /**
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.0.0
-     */
-    public function beStrictAboutTestSize($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->beStrictAboutTestSize = $flag;
-    }
-
-    /**
-     * @return boolean
-     * @since  Method available since Release 4.0.0
-     */
-    public function isStrictAboutTestSize()
-    {
-        return $this->beStrictAboutTestSize;
-    }
-
-    /**
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.2.0
-     */
-    public function beStrictAboutTodoAnnotatedTests($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->beStrictAboutTodoAnnotatedTests = $flag;
-    }
-
-    /**
-     * @return boolean
-     * @since  Method available since Release 4.2.0
-     */
-    public function isStrictAboutTodoAnnotatedTests()
-    {
-        return $this->beStrictAboutTodoAnnotatedTests;
-    }
-
-    /**
-     * Enables or disables the stopping for risky tests.
-     *
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 4.0.0
-     */
-    public function stopOnRisky($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->stopOnRisky = $flag;
-    }
-
-    /**
-     * Enables or disables the stopping for incomplete tests.
-     *
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.5.0
-     */
-    public function stopOnIncomplete($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->stopOnIncomplete = $flag;
-    }
-
-    /**
-     * Enables or disables the stopping for skipped tests.
-     *
-     * @param  boolean                     $flag
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.1.0
-     */
-    public function stopOnSkipped($flag)
-    {
-        if (!is_bool($flag)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-
-        $this->stopOnSkipped = $flag;
-    }
-
-    /**
-     * Returns the time spent running the tests.
-     *
-     * @return float
-     */
-    public function time()
-    {
-        return $this->time;
-    }
-
-    /**
-     * Returns whether the entire test was successful or not.
-     *
-     * @return boolean
-     */
-    public function wasSuccessful()
-    {
-        return empty($this->errors) && empty($this->failures);
-    }
-
-    /**
-     * Sets the timeout for small tests.
-     *
-     * @param  integer                     $timeout
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.6.0
-     */
-    public function setTimeoutForSmallTests($timeout)
-    {
-        if (!is_integer($timeout)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
-        }
-
-        $this->timeoutForSmallTests = $timeout;
-    }
-
-    /**
-     * Sets the timeout for medium tests.
-     *
-     * @param  integer                     $timeout
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.6.0
-     */
-    public function setTimeoutForMediumTests($timeout)
-    {
-        if (!is_integer($timeout)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
-        }
-
-        $this->timeoutForMediumTests = $timeout;
-    }
-
-    /**
-     * Sets the timeout for large tests.
-     *
-     * @param  integer                     $timeout
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.6.0
-     */
-    public function setTimeoutForLargeTests($timeout)
-    {
-        if (!is_integer($timeout)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
-        }
-
-        $this->timeoutForLargeTests = $timeout;
-    }
-
-    /**
-     * Returns the class hierarchy for a given class.
-     *
-     * @param  string  $className
-     * @param  boolean $asReflectionObjects
-     * @return array
-     */
-    protected function getHierarchy($className, $asReflectionObjects = false)
-    {
-        if ($asReflectionObjects) {
-            $classes = array(new ReflectionClass($className));
-        } else {
-            $classes = array($className);
-        }
-
-        $done = false;
-
-        while (!$done) {
-            if ($asReflectionObjects) {
-                $class = new ReflectionClass(
-                    $classes[count($classes)-1]->getName()
-                );
-            } else {
-                $class = new ReflectionClass($classes[count($classes)-1]);
-            }
-
-            $parent = $class->getParentClass();
-
-            if ($parent !== false) {
-                if ($asReflectionObjects) {
-                    $classes[] = $parent;
-                } else {
-                    $classes[] = $parent->getName();
-                }
-            } else {
-                $done = true;
-            }
-        }
-
-        return $classes;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php b/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php
deleted file mode 100644
index 0998316..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php
+++ /dev/null
@@ -1,994 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A TestSuite is a composite of Tests. It runs a collection of test cases.
- *
- * Here is an example using the dynamic test definition.
- *
- * <code>
- * <?php
- * $suite = new PHPUnit_Framework_TestSuite;
- * $suite->addTest(new MathTest('testPass'));
- * ?>
- * </code>
- *
- * Alternatively, a TestSuite can extract the tests to be run automatically.
- * To do so you pass a ReflectionClass instance for your
- * PHPUnit_Framework_TestCase class to the PHPUnit_Framework_TestSuite
- * constructor.
- *
- * <code>
- * <?php
- * $suite = new PHPUnit_Framework_TestSuite(
- *   new ReflectionClass('MathTest')
- * );
- * ?>
- * </code>
- *
- * This constructor creates a suite with all the methods starting with
- * "test" that take no arguments.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Framework_TestSuite implements PHPUnit_Framework_Test, PHPUnit_Framework_SelfDescribing, IteratorAggregate
-{
-    /**
-     * Enable or disable the backup and restoration of the $GLOBALS array.
-     *
-     * @var boolean
-     */
-    protected $backupGlobals = null;
-
-    /**
-     * Enable or disable the backup and restoration of static attributes.
-     *
-     * @var boolean
-     */
-    protected $backupStaticAttributes = null;
-
-    /**
-     * @var boolean
-     */
-    private $disallowChangesToGlobalState = null;
-
-    /**
-     * @var boolean
-     */
-    protected $runTestInSeparateProcess = false;
-
-    /**
-     * The name of the test suite.
-     *
-     * @var string
-     */
-    protected $name = '';
-
-    /**
-     * The test groups of the test suite.
-     *
-     * @var array
-     */
-    protected $groups = array();
-
-    /**
-     * The tests in the test suite.
-     *
-     * @var array
-     */
-    protected $tests = array();
-
-    /**
-     * The number of tests in the test suite.
-     *
-     * @var integer
-     */
-    protected $numTests = -1;
-
-    /**
-     * @var boolean
-     */
-    protected $testCase = false;
-
-    /**
-     * @var array
-     */
-    protected $foundClasses = array();
-
-    /**
-     * @var PHPUnit_Runner_Filter_Factory
-     */
-    private $iteratorFilter = null;
-
-    /**
-     * Constructs a new TestSuite:
-     *
-     *   - PHPUnit_Framework_TestSuite() constructs an empty TestSuite.
-     *
-     *   - PHPUnit_Framework_TestSuite(ReflectionClass) constructs a
-     *     TestSuite from the given class.
-     *
-     *   - PHPUnit_Framework_TestSuite(ReflectionClass, String)
-     *     constructs a TestSuite from the given class with the given
-     *     name.
-     *
-     *   - PHPUnit_Framework_TestSuite(String) either constructs a
-     *     TestSuite from the given class (if the passed string is the
-     *     name of an existing class) or constructs an empty TestSuite
-     *     with the given name.
-     *
-     * @param  mixed                       $theClass
-     * @param  string                      $name
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($theClass = '', $name = '')
-    {
-        $argumentsValid = false;
-
-        if (is_object($theClass) &&
-            $theClass instanceof ReflectionClass) {
-            $argumentsValid = true;
-        } elseif (is_string($theClass) &&
-                 $theClass !== '' &&
-                 class_exists($theClass, false)) {
-            $argumentsValid = true;
-
-            if ($name == '') {
-                $name = $theClass;
-            }
-
-            $theClass = new ReflectionClass($theClass);
-        } elseif (is_string($theClass)) {
-            $this->setName($theClass);
-
-            return;
-        }
-
-        if (!$argumentsValid) {
-            throw new PHPUnit_Framework_Exception;
-        }
-
-        if (!$theClass->isSubclassOf('PHPUnit_Framework_TestCase')) {
-            throw new PHPUnit_Framework_Exception(
-                'Class "' . $theClass->name . '" does not extend PHPUnit_Framework_TestCase.'
-            );
-        }
-
-        if ($name != '') {
-            $this->setName($name);
-        } else {
-            $this->setName($theClass->getName());
-        }
-
-        $constructor = $theClass->getConstructor();
-
-        if ($constructor !== null &&
-            !$constructor->isPublic()) {
-            $this->addTest(
-                self::warning(
-                    sprintf(
-                        'Class "%s" has no public constructor.',
-                        $theClass->getName()
-                    )
-                )
-            );
-
-            return;
-        }
-
-        foreach ($theClass->getMethods() as $method) {
-            $this->addTestMethod($theClass, $method);
-        }
-
-        if (empty($this->tests)) {
-            $this->addTest(
-                self::warning(
-                    sprintf(
-                        'No tests found in class "%s".',
-                        $theClass->getName()
-                    )
-                )
-            );
-        }
-
-        $this->testCase = true;
-    }
-
-    /**
-     * Returns a string representation of the test suite.
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->getName();
-    }
-
-    /**
-     * Adds a test to the suite.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param array                  $groups
-     */
-    public function addTest(PHPUnit_Framework_Test $test, $groups = array())
-    {
-        $class = new ReflectionClass($test);
-
-        if (!$class->isAbstract()) {
-            $this->tests[]  = $test;
-            $this->numTests = -1;
-
-            if ($test instanceof PHPUnit_Framework_TestSuite &&
-                empty($groups)) {
-                $groups = $test->getGroups();
-            }
-
-            if (empty($groups)) {
-                $groups = array('__nogroup__');
-            }
-
-            foreach ($groups as $group) {
-                if (!isset($this->groups[$group])) {
-                    $this->groups[$group] = array($test);
-                } else {
-                    $this->groups[$group][] = $test;
-                }
-            }
-        }
-    }
-
-    /**
-     * Adds the tests from the given class to the suite.
-     *
-     * @param  mixed                       $testClass
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function addTestSuite($testClass)
-    {
-        if (is_string($testClass) && class_exists($testClass)) {
-            $testClass = new ReflectionClass($testClass);
-        }
-
-        if (!is_object($testClass)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'class name or object'
-            );
-        }
-
-        if ($testClass instanceof PHPUnit_Framework_TestSuite) {
-            $this->addTest($testClass);
-        } elseif ($testClass instanceof ReflectionClass) {
-            $suiteMethod = false;
-
-            if (!$testClass->isAbstract()) {
-                if ($testClass->hasMethod(PHPUnit_Runner_BaseTestRunner::SUITE_METHODNAME)) {
-                    $method = $testClass->getMethod(
-                        PHPUnit_Runner_BaseTestRunner::SUITE_METHODNAME
-                    );
-
-                    if ($method->isStatic()) {
-                        $this->addTest(
-                            $method->invoke(null, $testClass->getName())
-                        );
-
-                        $suiteMethod = true;
-                    }
-                }
-            }
-
-            if (!$suiteMethod && !$testClass->isAbstract()) {
-                $this->addTest(new PHPUnit_Framework_TestSuite($testClass));
-            }
-        } else {
-            throw new PHPUnit_Framework_Exception;
-        }
-    }
-
-    /**
-     * Wraps both <code>addTest()</code> and <code>addTestSuite</code>
-     * as well as the separate import statements for the user's convenience.
-     *
-     * If the named file cannot be read or there are no new tests that can be
-     * added, a <code>PHPUnit_Framework_Warning</code> will be created instead,
-     * leaving the current test run untouched.
-     *
-     * @param  string                      $filename
-     * @param  array                       $phptOptions Array with ini settings for the php instance
-     *                                                  run, key being the name if the setting,
-     *                                                  value the ini value.
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 2.3.0
-     * @author Stefano F. Rausch <stefano@rausch-e.net>
-     */
-    public function addTestFile($filename, $phptOptions = array())
-    {
-        if (!is_string($filename)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
-        }
-
-        if (file_exists($filename) && substr($filename, -5) == '.phpt') {
-            $this->addTest(
-                new PHPUnit_Extensions_PhptTestCase($filename, $phptOptions)
-            );
-            return;
-        }
-
-        // The given file may contain further stub classes in addition to the
-        // test class itself. Figure out the actual test class.
-        $classes    = get_declared_classes();
-        $filename   = PHPUnit_Util_Fileloader::checkAndLoad($filename);
-        $newClasses = array_diff(get_declared_classes(), $classes);
-
-        // The diff is empty in case a parent class (with test methods) is added
-        // AFTER a child class that inherited from it. To account for that case,
-        // cumulate all discovered classes, so the parent class may be found in
-        // a later invocation.
-        if ($newClasses) {
-            // On the assumption that test classes are defined first in files,
-            // process discovered classes in approximate LIFO order, so as to
-            // avoid unnecessary reflection.
-            $this->foundClasses = array_merge($newClasses, $this->foundClasses);
-        }
-
-        // The test class's name must match the filename, either in full, or as
-        // a PEAR/PSR-0 prefixed shortname ('NameSpace_ShortName'), or as a
-        // PSR-1 local shortname ('NameSpace\ShortName'). The comparison must be
-        // anchored to prevent false-positive matches (e.g., 'OtherShortName').
-        $shortname = basename($filename, '.php');
-        $shortnameRegEx = '/(?:^|_|\\\\)' . preg_quote($shortname, '/') . '$/';
-
-        foreach ($this->foundClasses as $i => $className) {
-            if (preg_match($shortnameRegEx, $className)) {
-                $class = new ReflectionClass($className);
-
-                if ($class->getFileName() == $filename) {
-                    $newClasses = array($className);
-                    unset($this->foundClasses[$i]);
-                    break;
-                }
-            }
-        }
-
-        foreach ($newClasses as $className) {
-            $class = new ReflectionClass($className);
-
-            if (!$class->isAbstract()) {
-                if ($class->hasMethod(PHPUnit_Runner_BaseTestRunner::SUITE_METHODNAME)) {
-                    $method = $class->getMethod(
-                        PHPUnit_Runner_BaseTestRunner::SUITE_METHODNAME
-                    );
-
-                    if ($method->isStatic()) {
-                        $this->addTest($method->invoke(null, $className));
-                    }
-                } elseif ($class->implementsInterface('PHPUnit_Framework_Test')) {
-                    $this->addTestSuite($class);
-                }
-            }
-        }
-
-        $this->numTests = -1;
-    }
-
-    /**
-     * Wrapper for addTestFile() that adds multiple test files.
-     *
-     * @param  array|Iterator              $filenames
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 2.3.0
-     */
-    public function addTestFiles($filenames)
-    {
-        if (!(is_array($filenames) ||
-             (is_object($filenames) && $filenames instanceof Iterator))) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                1,
-                'array or iterator'
-            );
-        }
-
-        foreach ($filenames as $filename) {
-            $this->addTestFile((string) $filename);
-        }
-    }
-
-    /**
-     * Counts the number of test cases that will be run by this test.
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        $numTests = 0;
-
-        foreach ($this as $test) {
-            $numTests += count($test);
-        }
-
-        return $numTests;
-    }
-
-    /**
-     * @param  ReflectionClass             $theClass
-     * @param  string                      $name
-     * @return PHPUnit_Framework_Test
-     * @throws PHPUnit_Framework_Exception
-     */
-    public static function createTest(ReflectionClass $theClass, $name)
-    {
-        $className = $theClass->getName();
-
-        if (!$theClass->isInstantiable()) {
-            return self::warning(
-                sprintf('Cannot instantiate class "%s".', $className)
-            );
-        }
-
-        $backupSettings = PHPUnit_Util_Test::getBackupSettings(
-            $className,
-            $name
-        );
-
-        $preserveGlobalState = PHPUnit_Util_Test::getPreserveGlobalStateSettings(
-            $className,
-            $name
-        );
-
-        $runTestInSeparateProcess = PHPUnit_Util_Test::getProcessIsolationSettings(
-            $className,
-            $name
-        );
-
-        $constructor = $theClass->getConstructor();
-
-        if ($constructor !== null) {
-            $parameters = $constructor->getParameters();
-
-            // TestCase() or TestCase($name)
-            if (count($parameters) < 2) {
-                $test = new $className;
-            } // TestCase($name, $data)
-            else {
-                try {
-                    $data = PHPUnit_Util_Test::getProvidedData(
-                        $className,
-                        $name
-                    );
-                } catch (Exception $e) {
-                    if (!($e instanceof PHPUnit_Framework_SkippedTestError || $e instanceof PHPUnit_Framework_IncompleteTestError)) {
-                        $message = sprintf(
-                            'The data provider specified for %s::%s is invalid.',
-                            $className,
-                            $name
-                        );
-
-                        $_message = $e->getMessage();
-
-                        if (!empty($_message)) {
-                            $message .= "\n" . $_message;
-                        }
-
-                        $data = self::warning($message);
-                    } elseif ($e instanceof PHPUnit_Framework_SkippedTestError) {
-                        $message = sprintf(
-                            'Test for %s::%s skipped by data provider',
-                            $className,
-                            $name
-                        );
-
-                        $_message = $e->getMessage();
-
-                        if (!empty($_message)) {
-                            $message .= "\n" . $_message;
-                        }
-
-                        $data = self::skipTest($className, $name, $message);
-                    } elseif ($e instanceof PHPUnit_Framework_IncompleteTestError) {
-                        $message = sprintf(
-                            'Test for %s::%s marked incomplete by data provider',
-                            $className,
-                            $name
-                        );
-
-                        $_message = $e->getMessage();
-
-                        if (!empty($_message)) {
-                            $message .= "\n" . $_message;
-                        }
-
-                        $data = self::incompleteTest($className, $name, $message);
-                    }
-                }
-
-                // Test method with @dataProvider.
-                if (isset($data)) {
-                    $test = new PHPUnit_Framework_TestSuite_DataProvider(
-                        $className . '::' . $name
-                    );
-
-                    if (empty($data)) {
-                        $data = self::warning(
-                            sprintf(
-                                'No tests found in suite "%s".',
-                                $test->getName()
-                            )
-                        );
-                    }
-
-                    $groups = PHPUnit_Util_Test::getGroups($className, $name);
-
-                    if ($data instanceof PHPUnit_Framework_Warning ||
-                        $data instanceof PHPUnit_Framework_SkippedTestCase ||
-                        $data instanceof PHPUnit_Framework_IncompleteTestCase) {
-                        $test->addTest($data, $groups);
-                    } else {
-                        foreach ($data as $_dataName => $_data) {
-                            $_test = new $className($name, $_data, $_dataName);
-
-                            if ($runTestInSeparateProcess) {
-                                $_test->setRunTestInSeparateProcess(true);
-
-                                if ($preserveGlobalState !== null) {
-                                    $_test->setPreserveGlobalState($preserveGlobalState);
-                                }
-                            }
-
-                            if ($backupSettings['backupGlobals'] !== null) {
-                                $_test->setBackupGlobals(
-                                    $backupSettings['backupGlobals']
-                                );
-                            }
-
-                            if ($backupSettings['backupStaticAttributes'] !== null) {
-                                $_test->setBackupStaticAttributes(
-                                    $backupSettings['backupStaticAttributes']
-                                );
-                            }
-
-                            $test->addTest($_test, $groups);
-                        }
-                    }
-                } else {
-                    $test = new $className;
-                }
-            }
-        }
-
-        if (!isset($test)) {
-            throw new PHPUnit_Framework_Exception('No valid test provided.');
-        }
-
-        if ($test instanceof PHPUnit_Framework_TestCase) {
-            $test->setName($name);
-
-            if ($runTestInSeparateProcess) {
-                $test->setRunTestInSeparateProcess(true);
-
-                if ($preserveGlobalState !== null) {
-                    $test->setPreserveGlobalState($preserveGlobalState);
-                }
-            }
-
-            if ($backupSettings['backupGlobals'] !== null) {
-                $test->setBackupGlobals($backupSettings['backupGlobals']);
-            }
-
-            if ($backupSettings['backupStaticAttributes'] !== null) {
-                $test->setBackupStaticAttributes(
-                    $backupSettings['backupStaticAttributes']
-                );
-            }
-        }
-
-        return $test;
-    }
-
-    /**
-     * Creates a default TestResult object.
-     *
-     * @return PHPUnit_Framework_TestResult
-     */
-    protected function createResult()
-    {
-        return new PHPUnit_Framework_TestResult;
-    }
-
-    /**
-     * Returns the name of the suite.
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Returns the test groups of the suite.
-     *
-     * @return array
-     * @since  Method available since Release 3.2.0
-     */
-    public function getGroups()
-    {
-        return array_keys($this->groups);
-    }
-
-    public function getGroupDetails()
-    {
-        return $this->groups;
-    }
-
-    /**
-     * Set tests groups of the test case
-     *
-     * @param array $groups
-     * @since Method available since Release 4.0.0
-     */
-    public function setGroupDetails(array $groups)
-    {
-        $this->groups = $groups;
-    }
-
-    /**
-     * Runs the tests and collects their result in a TestResult.
-     *
-     * @param PHPUnit_Framework_TestResult $result
-     * @return PHPUnit_Framework_TestResult
-     */
-    public function run(PHPUnit_Framework_TestResult $result = null)
-    {
-        if ($result === null) {
-            $result = $this->createResult();
-        }
-
-        if (count($this) == 0) {
-            return $result;
-        }
-
-        $hookMethods = PHPUnit_Util_Test::getHookMethods($this->name);
-
-        $result->startTestSuite($this);
-
-        try {
-            $this->setUp();
-
-            foreach ($hookMethods['beforeClass'] as $beforeClassMethod) {
-                if ($this->testCase === true &&
-                    class_exists($this->name, false) &&
-                    method_exists($this->name, $beforeClassMethod)) {
-                    if ($missingRequirements = PHPUnit_Util_Test::getMissingRequirements($this->name, $beforeClassMethod)) {
-                        $this->markTestSuiteSkipped(implode(PHP_EOL, $missingRequirements));
-                    }
-
-                    call_user_func(array($this->name, $beforeClassMethod));
-                }
-            }
-        } catch (PHPUnit_Framework_SkippedTestSuiteError $e) {
-            $numTests = count($this);
-
-            for ($i = 0; $i < $numTests; $i++) {
-                $result->startTest($this);
-                $result->addFailure($this, $e, 0);
-                $result->endTest($this, 0);
-            }
-
-            $this->tearDown();
-            $result->endTestSuite($this);
-
-            return $result;
-        } catch (Exception $e) {
-            $numTests = count($this);
-
-            for ($i = 0; $i < $numTests; $i++) {
-                $result->startTest($this);
-                $result->addError($this, $e, 0);
-                $result->endTest($this, 0);
-            }
-
-            $this->tearDown();
-            $result->endTestSuite($this);
-
-            return $result;
-        }
-
-        foreach ($this as $test) {
-            if ($result->shouldStop()) {
-                break;
-            }
-
-            if ($test instanceof PHPUnit_Framework_TestCase ||
-                $test instanceof PHPUnit_Framework_TestSuite) {
-                $test->setDisallowChangesToGlobalState($this->disallowChangesToGlobalState);
-                $test->setBackupGlobals($this->backupGlobals);
-                $test->setBackupStaticAttributes($this->backupStaticAttributes);
-                $test->setRunTestInSeparateProcess($this->runTestInSeparateProcess);
-            }
-
-            $test->run($result);
-        }
-
-        foreach ($hookMethods['afterClass'] as $afterClassMethod) {
-            if ($this->testCase === true && class_exists($this->name, false) && method_exists($this->name, $afterClassMethod)) {
-                call_user_func(array($this->name, $afterClassMethod));
-            }
-        }
-
-        $this->tearDown();
-
-        $result->endTestSuite($this);
-
-        return $result;
-    }
-
-    /**
-     * @param  boolean                     $runTestInSeparateProcess
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.7.0
-     */
-    public function setRunTestInSeparateProcess($runTestInSeparateProcess)
-    {
-        if (is_bool($runTestInSeparateProcess)) {
-            $this->runTestInSeparateProcess = $runTestInSeparateProcess;
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-    }
-
-    /**
-     * Runs a test.
-     *
-     * @deprecated
-     * @param PHPUnit_Framework_Test       $test
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    public function runTest(PHPUnit_Framework_Test $test, PHPUnit_Framework_TestResult $result)
-    {
-        $test->run($result);
-    }
-
-    /**
-     * Sets the name of the suite.
-     *
-     * @param  string
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * Returns the test at the given index.
-     *
-     * @param  integer
-     * @return PHPUnit_Framework_Test
-     */
-    public function testAt($index)
-    {
-        if (isset($this->tests[$index])) {
-            return $this->tests[$index];
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Returns the tests as an enumeration.
-     *
-     * @return array
-     */
-    public function tests()
-    {
-        return $this->tests;
-    }
-
-    /**
-     * Set tests of the test suite
-     *
-     * @param array $tests
-     * @since Method available since Release 4.0.0
-     */
-    public function setTests(array $tests)
-    {
-        $this->tests = $tests;
-    }
-
-    /**
-     * Mark the test suite as skipped.
-     *
-     * @param  string                                  $message
-     * @throws PHPUnit_Framework_SkippedTestSuiteError
-     * @since  Method available since Release 3.0.0
-     */
-    public function markTestSuiteSkipped($message = '')
-    {
-        throw new PHPUnit_Framework_SkippedTestSuiteError($message);
-    }
-
-    /**
-     * @param ReflectionClass  $class
-     * @param ReflectionMethod $method
-     */
-    protected function addTestMethod(ReflectionClass $class, ReflectionMethod $method)
-    {
-        if (!$this->isTestMethod($method)) {
-            return;
-        }
-
-        $name = $method->getName();
-
-        if (!$method->isPublic()) {
-            $this->addTest(
-                self::warning(
-                    sprintf(
-                        'Test method "%s" in test class "%s" is not public.',
-                        $name,
-                        $class->getName()
-                    )
-                )
-            );
-
-            return;
-        }
-
-        $test = self::createTest($class, $name);
-
-        if ($test instanceof PHPUnit_Framework_TestCase ||
-            $test instanceof PHPUnit_Framework_TestSuite_DataProvider) {
-            $test->setDependencies(
-                PHPUnit_Util_Test::getDependencies($class->getName(), $name)
-            );
-        }
-
-        $this->addTest(
-            $test,
-            PHPUnit_Util_Test::getGroups($class->getName(), $name)
-        );
-    }
-
-    /**
-     * @param  ReflectionMethod $method
-     * @return boolean
-     */
-    public static function isTestMethod(ReflectionMethod $method)
-    {
-        if (strpos($method->name, 'test') === 0) {
-            return true;
-        }
-
-        // @scenario on TestCase::testMethod()
-        // @test     on TestCase::testMethod()
-        $doc_comment = $method->getDocComment();
-
-        return strpos($doc_comment, '@test')     !== false ||
-               strpos($doc_comment, '@scenario') !== false;
-    }
-
-    /**
-     * @param  string                    $message
-     * @return PHPUnit_Framework_Warning
-     */
-    protected static function warning($message)
-    {
-        return new PHPUnit_Framework_Warning($message);
-    }
-
-    /**
-     * @param  string $class
-     * @param  string $methodName
-     * @param  string $message
-     * @return PHPUnit_Framework_SkippedTestCase
-     * @since  Method available since Release 4.3.0
-     */
-    protected static function skipTest($class, $methodName, $message)
-    {
-        return new PHPUnit_Framework_SkippedTestCase($class, $methodName, $message);
-    }
-
-    /**
-     * @param  string $class
-     * @param  string $methodName
-     * @param  string $message
-     * @return PHPUnit_Framework_IncompleteTestCase
-     * @since  Method available since Release 4.3.0
-     */
-    protected static function incompleteTest($class, $methodName, $message)
-    {
-        return new PHPUnit_Framework_IncompleteTestCase($class, $methodName, $message);
-    }
-
-    /**
-     * @param boolean $disallowChangesToGlobalState
-     * @since  Method available since Release 4.6.0
-     */
-    public function setDisallowChangesToGlobalState($disallowChangesToGlobalState)
-    {
-        if (is_null($this->disallowChangesToGlobalState) && is_bool($disallowChangesToGlobalState)) {
-            $this->disallowChangesToGlobalState = $disallowChangesToGlobalState;
-        }
-    }
-
-    /**
-     * @param boolean $backupGlobals
-     * @since  Method available since Release 3.3.0
-     */
-    public function setBackupGlobals($backupGlobals)
-    {
-        if (is_null($this->backupGlobals) && is_bool($backupGlobals)) {
-            $this->backupGlobals = $backupGlobals;
-        }
-    }
-
-    /**
-     * @param boolean $backupStaticAttributes
-     * @since  Method available since Release 3.4.0
-     */
-    public function setBackupStaticAttributes($backupStaticAttributes)
-    {
-        if (is_null($this->backupStaticAttributes) &&
-            is_bool($backupStaticAttributes)) {
-            $this->backupStaticAttributes = $backupStaticAttributes;
-        }
-    }
-
-    /**
-     * Returns an iterator for this test suite.
-     *
-     * @return RecursiveIteratorIterator
-     * @since  Method available since Release 3.1.0
-     */
-    public function getIterator()
-    {
-        $iterator = new PHPUnit_Util_TestSuiteIterator($this);
-
-        if ($this->iteratorFilter !== null) {
-            $iterator = $this->iteratorFilter->factory($iterator, $this);
-        }
-
-        return $iterator;
-    }
-
-    public function injectFilter(PHPUnit_Runner_Filter_Factory $filter)
-    {
-        $this->iteratorFilter = $filter;
-        foreach ($this as $test) {
-            if ($test instanceof PHPUnit_Framework_TestSuite) {
-                $test->injectFilter($filter);
-            }
-        }
-    }
-
-    /**
-     * Template Method that is called before the tests
-     * of this test suite are run.
-     *
-     * @since  Method available since Release 3.1.0
-     */
-    protected function setUp()
-    {
-    }
-
-    /**
-     * Template Method that is called after the tests
-     * of this test suite have finished running.
-     *
-     * @since  Method available since Release 3.1.0
-     */
-    protected function tearDown()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php b/core/vendor/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php
deleted file mode 100644
index d5bfcf1..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Framework_TestSuite
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-class PHPUnit_Framework_TestSuite_DataProvider extends PHPUnit_Framework_TestSuite
-{
-    /**
-     * Sets the dependencies of a TestCase.
-     *
-     * @param array $dependencies
-     */
-    public function setDependencies(array $dependencies)
-    {
-        foreach ($this->tests as $test) {
-            $test->setDependencies($dependencies);
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php b/core/vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php
deleted file mode 100644
index 32b0c06..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extension to PHPUnit_Framework_AssertionFailedError to mark the special
- * case of a test test that unintentionally covers code.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Framework_UnintentionallyCoveredCodeError extends PHPUnit_Framework_RiskyTestError
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Framework/Warning.php b/core/vendor/phpunit/phpunit/src/Framework/Warning.php
deleted file mode 100644
index 96e26d0..0000000
--- a/core/vendor/phpunit/phpunit/src/Framework/Warning.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A warning.
- *
- * @package    PHPUnit
- * @subpackage Framework
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Framework_Warning extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var string
-     */
-    protected $message = '';
-
-    /**
-     * @var boolean
-     */
-    protected $backupGlobals = false;
-
-    /**
-     * @var boolean
-     */
-    protected $backupStaticAttributes = false;
-
-    /**
-     * @var boolean
-     */
-    protected $runTestInSeparateProcess = false;
-
-    /**
-     * @var boolean
-     */
-    protected $useErrorHandler = false;
-
-    /**
-     * @param string $message
-     */
-    public function __construct($message = '')
-    {
-        $this->message = $message;
-        parent::__construct('Warning');
-    }
-
-    /**
-     * @throws PHPUnit_Framework_Exception
-     */
-    protected function runTest()
-    {
-        $this->fail($this->message);
-    }
-
-    /**
-     * @return string
-     * @since  Method available since Release 3.0.0
-     */
-    public function getMessage()
-    {
-        return $this->message;
-    }
-
-    /**
-     * Returns a string representation of the test case.
-     *
-     * @return string
-     * @since  Method available since Release 3.4.0
-     */
-    public function toString()
-    {
-        return 'Warning';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php b/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php
deleted file mode 100644
index 5fa766e..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Base class for all test runners.
- *
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-abstract class PHPUnit_Runner_BaseTestRunner
-{
-    const STATUS_PASSED     = 0;
-    const STATUS_SKIPPED    = 1;
-    const STATUS_INCOMPLETE = 2;
-    const STATUS_FAILURE    = 3;
-    const STATUS_ERROR      = 4;
-    const STATUS_RISKY      = 5;
-    const SUITE_METHODNAME  = 'suite';
-
-    /**
-     * Returns the loader to be used.
-     *
-     * @return PHPUnit_Runner_TestSuiteLoader
-     */
-    public function getLoader()
-    {
-        return new PHPUnit_Runner_StandardTestSuiteLoader;
-    }
-
-    /**
-     * Returns the Test corresponding to the given suite.
-     * This is a template method, subclasses override
-     * the runFailed() and clearStatus() methods.
-     *
-     * @param  string                 $suiteClassName
-     * @param  string                 $suiteClassFile
-     * @param  mixed                  $suffixes
-     * @return PHPUnit_Framework_Test
-     */
-    public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '')
-    {
-        if (is_dir($suiteClassName) &&
-            !is_file($suiteClassName . '.php') && empty($suiteClassFile)) {
-            $facade = new File_Iterator_Facade;
-            $files  = $facade->getFilesAsArray(
-                $suiteClassName,
-                $suffixes
-            );
-
-            $suite = new PHPUnit_Framework_TestSuite($suiteClassName);
-            $suite->addTestFiles($files);
-
-            return $suite;
-        }
-
-        try {
-            $testClass = $this->loadSuiteClass(
-                $suiteClassName,
-                $suiteClassFile
-            );
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->runFailed($e->getMessage());
-
-            return;
-        }
-
-        try {
-            $suiteMethod = $testClass->getMethod(self::SUITE_METHODNAME);
-
-            if (!$suiteMethod->isStatic()) {
-                $this->runFailed(
-                    'suite() method must be static.'
-                );
-
-                return;
-            }
-
-            try {
-                $test = $suiteMethod->invoke(null, $testClass->getName());
-            } catch (ReflectionException $e) {
-                $this->runFailed(
-                    sprintf(
-                        "Failed to invoke suite() method.\n%s",
-                        $e->getMessage()
-                    )
-                );
-
-                return;
-            }
-        } catch (ReflectionException $e) {
-            try {
-                $test = new PHPUnit_Framework_TestSuite($testClass);
-            } catch (PHPUnit_Framework_Exception $e) {
-                $test = new PHPUnit_Framework_TestSuite;
-                $test->setName($suiteClassName);
-            }
-        }
-
-        $this->clearStatus();
-
-        return $test;
-    }
-
-    /**
-     * Returns the loaded ReflectionClass for a suite name.
-     *
-     * @param  string          $suiteClassName
-     * @param  string          $suiteClassFile
-     * @return ReflectionClass
-     */
-    protected function loadSuiteClass($suiteClassName, $suiteClassFile = '')
-    {
-        $loader = $this->getLoader();
-
-        return $loader->load($suiteClassName, $suiteClassFile);
-    }
-
-    /**
-     * Clears the status message.
-     *
-     */
-    protected function clearStatus()
-    {
-    }
-
-    /**
-     * Override to define how to handle a failed loading of
-     * a test suite.
-     *
-     * @param string $message
-     */
-    abstract protected function runFailed($message);
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Exception.php b/core/vendor/phpunit/phpunit/src/Runner/Exception.php
deleted file mode 100644
index b353aa0..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Exception.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Runner_Exception extends RuntimeException implements PHPUnit_Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php
deleted file mode 100644
index c3f7730..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Runner_Filter_Factory
-{
-    /**
-     * @var array
-     */
-    private $filters = array();
-
-    /**
-     * @param ReflectionClass $filter
-     * @param mixed           $args
-     */
-    public function addFilter(ReflectionClass $filter, $args)
-    {
-        if (!$filter->isSubclassOf('RecursiveFilterIterator')) {
-            throw new InvalidArgumentException(
-                sprintf(
-                    'Class "%s" does not extend RecursiveFilterIterator',
-                    $filter->name
-                )
-            );
-        }
-
-        $this->filters[] = array($filter, $args);
-    }
-
-    /**
-     * @return FilterIterator
-     */
-    public function factory(Iterator $iterator, PHPUnit_Framework_TestSuite $suite)
-    {
-        foreach ($this->filters as $filter) {
-            list($class, $args) = $filter;
-            $iterator = $class->newInstance($iterator, $args, $suite);
-        }
-
-        return $iterator;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php
deleted file mode 100644
index 02fc291..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-abstract class PHPUnit_Runner_Filter_GroupFilterIterator extends RecursiveFilterIterator
-{
-    /**
-     * @var array
-     */
-    protected $groupTests = array();
-
-    /**
-     * @param RecursiveIterator           $iterator
-     * @param array                       $groups
-     * @param PHPUnit_Framework_TestSuite $suite
-     */
-    public function __construct(RecursiveIterator $iterator, array $groups, PHPUnit_Framework_TestSuite $suite)
-    {
-        parent::__construct($iterator);
-
-        foreach ($suite->getGroupDetails() as $group => $tests) {
-            if (in_array($group, $groups)) {
-                $testHashes = array_map(
-                    function ($test) {
-                        return spl_object_hash($test);
-                    },
-                    $tests
-                );
-
-                $this->groupTests = array_merge($this->groupTests, $testHashes);
-            }
-        }
-    }
-
-    /**
-     * @return boolean
-     */
-    public function accept()
-    {
-        $test = $this->getInnerIterator()->current();
-
-        if ($test instanceof PHPUnit_Framework_TestSuite) {
-            return true;
-        }
-
-        return $this->doAccept(spl_object_hash($test));
-    }
-
-    abstract protected function doAccept($hash);
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php
deleted file mode 100644
index 232c277..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Runner_Filter_Group_Exclude extends PHPUnit_Runner_Filter_GroupFilterIterator
-{
-    protected function doAccept($hash)
-    {
-        return !in_array($hash, $this->groupTests);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group/Include.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Group/Include.php
deleted file mode 100644
index a1ad691..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Group/Include.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Runner_Filter_Group_Include extends PHPUnit_Runner_Filter_GroupFilterIterator
-{
-    protected function doAccept($hash)
-    {
-        return in_array($hash, $this->groupTests);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php b/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php
deleted file mode 100644
index 2701f21..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Filter/Test.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Runner_Filter_Test extends RecursiveFilterIterator
-{
-    /**
-     * @var string
-     */
-    protected $filter = null;
-
-    /**
-     * @var integer
-     */
-    protected $filterMin;
-    /**
-     * @var integer
-     */
-    protected $filterMax;
-
-    /**
-     * @param RecursiveIterator $iterator
-     * @param string            $filter
-     */
-    public function __construct(RecursiveIterator $iterator, $filter)
-    {
-        parent::__construct($iterator);
-        $this->setFilter($filter);
-    }
-
-    /**
-     * @param string $filter
-     */
-    protected function setFilter($filter)
-    {
-        if (PHPUnit_Util_Regex::pregMatchSafe($filter, '') === false) {
-            // Handles:
-            //  * testAssertEqualsSucceeds#4
-            //  * testAssertEqualsSucceeds#4-8
-            if (preg_match('/^(.*?)#(\d+)(?:-(\d+))?$/', $filter, $matches)) {
-                if (isset($matches[3]) && $matches[2] < $matches[3]) {
-                    $filter = sprintf(
-                        '%s.*with data set #(\d+)$',
-                        $matches[1]
-                    );
-
-                    $this->filterMin = $matches[2];
-                    $this->filterMax = $matches[3];
-                } else {
-                    $filter = sprintf(
-                        '%s.*with data set #%s$',
-                        $matches[1],
-                        $matches[2]
-                    );
-                }
-            } // Handles:
-            //  * testDetermineJsonError@JSON_ERROR_NONE
-            //  * testDetermineJsonError@JSON.*
-            elseif (preg_match('/^(.*?)@(.+)$/', $filter, $matches)) {
-                $filter = sprintf(
-                    '%s.*with data set "%s"$',
-                    $matches[1],
-                    $matches[2]
-                );
-            }
-
-            // Escape delimiters in regular expression. Do NOT use preg_quote,
-            // to keep magic characters.
-            $filter = sprintf('/%s/', str_replace(
-                '/',
-                '\\/',
-                $filter
-            ));
-        }
-
-        $this->filter = $filter;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function accept()
-    {
-        $test = $this->getInnerIterator()->current();
-
-        if ($test instanceof PHPUnit_Framework_TestSuite) {
-            return true;
-        }
-
-        $tmp = PHPUnit_Util_Test::describe($test, false);
-
-        if ($tmp[0] != '') {
-            $name = implode('::', $tmp);
-        } else {
-            $name = $tmp[1];
-        }
-
-        $accepted = preg_match($this->filter, $name, $matches);
-
-        if ($accepted && isset($this->filterMax)) {
-            $set = end($matches);
-            $accepted = $set >= $this->filterMin && $set <= $this->filterMax;
-        }
-
-        return $accepted;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php b/core/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php
deleted file mode 100644
index 04d22c3..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * The standard test suite loader.
- *
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Runner_StandardTestSuiteLoader implements PHPUnit_Runner_TestSuiteLoader
-{
-    /**
-     * @param  string                      $suiteClassName
-     * @param  string                      $suiteClassFile
-     * @return ReflectionClass
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function load($suiteClassName, $suiteClassFile = '')
-    {
-        $suiteClassName = str_replace('.php', '', $suiteClassName);
-
-        if (empty($suiteClassFile)) {
-            $suiteClassFile = PHPUnit_Util_Filesystem::classNameToFilename(
-                $suiteClassName
-            );
-        }
-
-        if (!class_exists($suiteClassName, false)) {
-            $loadedClasses = get_declared_classes();
-
-            $filename = PHPUnit_Util_Fileloader::checkAndLoad($suiteClassFile);
-
-            $loadedClasses = array_values(
-                array_diff(get_declared_classes(), $loadedClasses)
-            );
-        }
-
-        if (!class_exists($suiteClassName, false) && !empty($loadedClasses)) {
-            $offset = 0 - strlen($suiteClassName);
-
-            foreach ($loadedClasses as $loadedClass) {
-                $class = new ReflectionClass($loadedClass);
-                if (substr($loadedClass, $offset) === $suiteClassName &&
-                    $class->getFileName() == $filename) {
-                    $suiteClassName = $loadedClass;
-                    break;
-                }
-            }
-        }
-
-        if (!class_exists($suiteClassName, false) && !empty($loadedClasses)) {
-            $testCaseClass = 'PHPUnit_Framework_TestCase';
-
-            foreach ($loadedClasses as $loadedClass) {
-                $class     = new ReflectionClass($loadedClass);
-                $classFile = $class->getFileName();
-
-                if ($class->isSubclassOf($testCaseClass) &&
-                    !$class->isAbstract()) {
-                    $suiteClassName = $loadedClass;
-                    $testCaseClass  = $loadedClass;
-
-                    if ($classFile == realpath($suiteClassFile)) {
-                        break;
-                    }
-                }
-
-                if ($class->hasMethod('suite')) {
-                    $method = $class->getMethod('suite');
-
-                    if (!$method->isAbstract() &&
-                        $method->isPublic() &&
-                        $method->isStatic()) {
-                        $suiteClassName = $loadedClass;
-
-                        if ($classFile == realpath($suiteClassFile)) {
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-
-        if (class_exists($suiteClassName, false)) {
-            $class = new ReflectionClass($suiteClassName);
-
-            if ($class->getFileName() == realpath($suiteClassFile)) {
-                return $class;
-            }
-        }
-
-        throw new PHPUnit_Framework_Exception(
-            sprintf(
-                "Class '%s' could not be found in '%s'.",
-                $suiteClassName,
-                $suiteClassFile
-            )
-        );
-    }
-
-    /**
-     * @param  ReflectionClass $aClass
-     * @return ReflectionClass
-     */
-    public function reload(ReflectionClass $aClass)
-    {
-        return $aClass;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php b/core/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php
deleted file mode 100644
index c049e7e..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * An interface to define how a test suite should be loaded.
- *
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Interface available since Release 2.0.0
- */
-interface PHPUnit_Runner_TestSuiteLoader
-{
-    /**
-     * @param  string          $suiteClassName
-     * @param  string          $suiteClassFile
-     * @return ReflectionClass
-     */
-    public function load($suiteClassName, $suiteClassFile = '');
-
-    /**
-     * @param  ReflectionClass $aClass
-     * @return ReflectionClass
-     */
-    public function reload(ReflectionClass $aClass);
-}
diff --git a/core/vendor/phpunit/phpunit/src/Runner/Version.php b/core/vendor/phpunit/phpunit/src/Runner/Version.php
deleted file mode 100644
index 23349a8..0000000
--- a/core/vendor/phpunit/phpunit/src/Runner/Version.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * This class defines the current version of PHPUnit.
- *
- * @package    PHPUnit
- * @subpackage Runner
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Runner_Version
-{
-    private static $pharVersion;
-    private static $version;
-
-    /**
-     * Returns the current version of PHPUnit.
-     *
-     * @return string
-     */
-    public static function id()
-    {
-        if (self::$pharVersion !== null) {
-            return self::$pharVersion;
-        }
-
-        if (self::$version === null) {
-            $version = new SebastianBergmann\Version('4.6.4', dirname(dirname(__DIR__)));
-            self::$version = $version->getVersion();
-        }
-
-        return self::$version;
-    }
-
-    /**
-     * @return string
-     */
-    public static function getVersionString()
-    {
-        return 'PHPUnit ' . self::id() . ' by Sebastian Bergmann and contributors.';
-    }
-
-    /**
-     * @return string
-     * @since  Method available since Release 4.0.0
-     */
-    public static function getReleaseChannel()
-    {
-        if (strpos(self::$pharVersion, 'alpha') !== false) {
-            return '-alpha';
-        }
-
-        if (strpos(self::$pharVersion, 'beta') !== false) {
-            return '-beta';
-        }
-
-        return '';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/TextUI/Command.php b/core/vendor/phpunit/phpunit/src/TextUI/Command.php
deleted file mode 100644
index d453342..0000000
--- a/core/vendor/phpunit/phpunit/src/TextUI/Command.php
+++ /dev/null
@@ -1,988 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A TestRunner for the Command Line Interface (CLI)
- * PHP SAPI Module.
- *
- * @package    PHPUnit
- * @subpackage TextUI
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_TextUI_Command
-{
-    /**
-     * @var array
-     */
-    protected $arguments = array(
-      'listGroups'              => false,
-      'loader'                  => null,
-      'useDefaultConfiguration' => true
-    );
-
-    /**
-     * @var array
-     */
-    protected $options = array();
-
-    /**
-     * @var array
-     */
-    protected $longOptions = array(
-      'colors==' => null,
-      'bootstrap=' => null,
-      'columns=' => null,
-      'configuration=' => null,
-      'coverage-clover=' => null,
-      'coverage-crap4j=' => null,
-      'coverage-html=' => null,
-      'coverage-php=' => null,
-      'coverage-text==' => null,
-      'coverage-xml=' => null,
-      'debug' => null,
-      'exclude-group=' => null,
-      'filter=' => null,
-      'testsuite=' => null,
-      'group=' => null,
-      'help' => null,
-      'include-path=' => null,
-      'list-groups' => null,
-      'loader=' => null,
-      'log-json=' => null,
-      'log-junit=' => null,
-      'log-tap=' => null,
-      'process-isolation' => null,
-      'repeat=' => null,
-      'stderr' => null,
-      'stop-on-error' => null,
-      'stop-on-failure' => null,
-      'stop-on-incomplete' => null,
-      'stop-on-risky' => null,
-      'stop-on-skipped' => null,
-      'report-useless-tests' => null,
-      'strict-coverage' => null,
-      'disallow-test-output' => null,
-      'enforce-time-limit' => null,
-      'disallow-todo-tests' => null,
-      'strict-global-state' => null,
-      'strict' => null,
-      'tap' => null,
-      'testdox' => null,
-      'testdox-html=' => null,
-      'testdox-text=' => null,
-      'test-suffix=' => null,
-      'no-configuration' => null,
-      'no-globals-backup' => null,
-      'printer=' => null,
-      'static-backup' => null,
-      'verbose' => null,
-      'version' => null
-    );
-
-    /**
-     * @var boolean
-     */
-    private $versionStringPrinted = false;
-
-    /**
-     * @param boolean $exit
-     */
-    public static function main($exit = true)
-    {
-        $command = new static;
-
-        return $command->run($_SERVER['argv'], $exit);
-    }
-
-    /**
-     * @param  array $argv
-     * @param  boolean $exit
-     * @return integer
-     */
-    public function run(array $argv, $exit = true)
-    {
-        $this->handleArguments($argv);
-
-        $runner = $this->createRunner();
-
-        if (is_object($this->arguments['test']) &&
-            $this->arguments['test'] instanceof PHPUnit_Framework_Test) {
-            $suite = $this->arguments['test'];
-        } else {
-            $suite = $runner->getTest(
-                $this->arguments['test'],
-                $this->arguments['testFile'],
-                $this->arguments['testSuffixes']
-            );
-        }
-
-        if ($this->arguments['listGroups']) {
-            $this->printVersionString();
-
-            print "Available test group(s):\n";
-
-            $groups = $suite->getGroups();
-            sort($groups);
-
-            foreach ($groups as $group) {
-                print " - $group\n";
-            }
-
-            if ($exit) {
-                exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
-            } else {
-                return PHPUnit_TextUI_TestRunner::SUCCESS_EXIT;
-            }
-        }
-
-        unset($this->arguments['test']);
-        unset($this->arguments['testFile']);
-
-        try {
-            $result = $runner->doRun($suite, $this->arguments);
-        } catch (PHPUnit_Framework_Exception $e) {
-            print $e->getMessage() . "\n";
-        }
-
-        $ret = PHPUnit_TextUI_TestRunner::FAILURE_EXIT;
-
-        if (isset($result) && $result->wasSuccessful()) {
-            $ret = PHPUnit_TextUI_TestRunner::SUCCESS_EXIT;
-        } elseif (!isset($result) || $result->errorCount() > 0) {
-            $ret = PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT;
-        }
-
-        if ($exit) {
-            exit($ret);
-        } else {
-            return $ret;
-        }
-    }
-
-    /**
-     * Create a TestRunner, override in subclasses.
-     *
-     * @return PHPUnit_TextUI_TestRunner
-     * @since  Method available since Release 3.6.0
-     */
-    protected function createRunner()
-    {
-        return new PHPUnit_TextUI_TestRunner($this->arguments['loader']);
-    }
-
-    /**
-     * Handles the command-line arguments.
-     *
-     * A child class of PHPUnit_TextUI_Command can hook into the argument
-     * parsing by adding the switch(es) to the $longOptions array and point to a
-     * callback method that handles the switch(es) in the child class like this
-     *
-     * <code>
-     * <?php
-     * class MyCommand extends PHPUnit_TextUI_Command
-     * {
-     *     public function __construct()
-     *     {
-     *         // my-switch won't accept a value, it's an on/off
-     *         $this->longOptions['my-switch'] = 'myHandler';
-     *         // my-secondswitch will accept a value - note the equals sign
-     *         $this->longOptions['my-secondswitch='] = 'myOtherHandler';
-     *     }
-     *
-     *     // --my-switch  -> myHandler()
-     *     protected function myHandler()
-     *     {
-     *     }
-     *
-     *     // --my-secondswitch foo -> myOtherHandler('foo')
-     *     protected function myOtherHandler ($value)
-     *     {
-     *     }
-     *
-     *     // You will also need this - the static keyword in the
-     *     // PHPUnit_TextUI_Command will mean that it'll be
-     *     // PHPUnit_TextUI_Command that gets instantiated,
-     *     // not MyCommand
-     *     public static function main($exit = true)
-     *     {
-     *         $command = new static;
-     *
-     *         return $command->run($_SERVER['argv'], $exit);
-     *     }
-     *
-     * }
-     * </code>
-     *
-     * @param array $argv
-     */
-    protected function handleArguments(array $argv)
-    {
-        if (defined('__PHPUNIT_PHAR__')) {
-            $this->longOptions['selfupdate']  = null;
-            $this->longOptions['self-update'] = null;
-        }
-
-        try {
-            $this->options = PHPUnit_Util_Getopt::getopt(
-                $argv,
-                'd:c:hv',
-                array_keys($this->longOptions)
-            );
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->showError($e->getMessage());
-        }
-
-        foreach ($this->options[0] as $option) {
-            switch ($option[0]) {
-                case '--colors': {
-                    $this->arguments['colors'] = $option[1] ?: PHPUnit_TextUI_ResultPrinter::COLOR_AUTO;
-                    }
-                break;
-
-                case '--bootstrap': {
-                    $this->arguments['bootstrap'] = $option[1];
-                    }
-                break;
-
-                case '--columns': {
-                    if (is_numeric($option[1])) {
-                        $this->arguments['columns'] = (int) $option[1];
-                    } elseif ($option[1] == 'max') {
-                        $this->arguments['columns'] = 'max';
-                    }
-                }
-                break;
-
-                case 'c':
-                case '--configuration': {
-                    $this->arguments['configuration'] = $option[1];
-                    }
-                break;
-
-                case '--coverage-clover': {
-                    $this->arguments['coverageClover'] = $option[1];
-                    }
-                break;
-
-                case '--coverage-crap4j': {
-                    $this->arguments['coverageCrap4J'] = $option[1];
-                    }
-                break;
-
-                case '--coverage-html': {
-                    $this->arguments['coverageHtml'] = $option[1];
-                    }
-                break;
-
-                case '--coverage-php': {
-                    $this->arguments['coveragePHP'] = $option[1];
-                    }
-                break;
-
-                case '--coverage-text': {
-                    if ($option[1] === null) {
-                        $option[1] = 'php://stdout';
-                    }
-
-                    $this->arguments['coverageText'] = $option[1];
-                    $this->arguments['coverageTextShowUncoveredFiles'] = false;
-                    $this->arguments['coverageTextShowOnlySummary'] = false;
-                    }
-                break;
-
-                case '--coverage-xml': {
-                    $this->arguments['coverageXml'] = $option[1];
-                    }
-                break;
-
-                case 'd': {
-                    $ini = explode('=', $option[1]);
-
-                    if (isset($ini[0])) {
-                        if (isset($ini[1])) {
-                            ini_set($ini[0], $ini[1]);
-                        } else {
-                            ini_set($ini[0], true);
-                        }
-                    }
-                    }
-                break;
-
-                case '--debug': {
-                    $this->arguments['debug'] = true;
-                    }
-                break;
-
-                case 'h':
-                case '--help': {
-                    $this->showHelp();
-                    exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
-                    }
-                break;
-
-                case '--filter': {
-                    $this->arguments['filter'] = $option[1];
-                    }
-                break;
-
-                case '--testsuite': {
-                    $this->arguments['testsuite'] = $option[1];
-                    }
-                break;
-
-                case '--group': {
-                    $this->arguments['groups'] = explode(',', $option[1]);
-                    }
-                break;
-
-                case '--exclude-group': {
-                    $this->arguments['excludeGroups'] = explode(
-                        ',', $option[1]
-                    );
-                    }
-                break;
-
-                case '--test-suffix': {
-                    $this->arguments['testSuffixes'] = explode(
-                        ',', $option[1]
-                    );
-                    }
-                break;
-
-                case '--include-path': {
-                    $includePath = $option[1];
-                    }
-                break;
-
-                case '--list-groups': {
-                    $this->arguments['listGroups'] = true;
-                    }
-                break;
-
-                case '--printer': {
-                    $this->arguments['printer'] = $option[1];
-                    }
-                break;
-
-                case '--loader': {
-                    $this->arguments['loader'] = $option[1];
-                    }
-                break;
-
-                case '--log-json': {
-                    $this->arguments['jsonLogfile'] = $option[1];
-                    }
-                break;
-
-                case '--log-junit': {
-                    $this->arguments['junitLogfile'] = $option[1];
-                    }
-                break;
-
-                case '--log-tap': {
-                    $this->arguments['tapLogfile'] = $option[1];
-                    }
-                break;
-
-                case '--process-isolation': {
-                    $this->arguments['processIsolation'] = true;
-                    }
-                break;
-
-                case '--repeat': {
-                    $this->arguments['repeat'] = (int) $option[1];
-                    }
-                break;
-
-                case '--stderr': {
-                    $this->arguments['stderr'] = true;
-                    }
-                break;
-
-                case '--stop-on-error': {
-                    $this->arguments['stopOnError'] = true;
-                    }
-                break;
-
-                case '--stop-on-failure': {
-                    $this->arguments['stopOnFailure'] = true;
-                    }
-                break;
-
-                case '--stop-on-incomplete': {
-                    $this->arguments['stopOnIncomplete'] = true;
-                    }
-                break;
-
-                case '--stop-on-risky': {
-                    $this->arguments['stopOnRisky'] = true;
-                    }
-                break;
-
-                case '--stop-on-skipped': {
-                    $this->arguments['stopOnSkipped'] = true;
-                    }
-                break;
-
-                case '--tap': {
-                    $this->arguments['printer'] = 'PHPUnit_Util_Log_TAP';
-                    }
-                break;
-
-                case '--testdox': {
-                    $this->arguments['printer'] = 'PHPUnit_Util_TestDox_ResultPrinter_Text';
-                    }
-                break;
-
-                case '--testdox-html': {
-                    $this->arguments['testdoxHTMLFile'] = $option[1];
-                    }
-                break;
-
-                case '--testdox-text': {
-                    $this->arguments['testdoxTextFile'] = $option[1];
-                    }
-                break;
-
-                case '--no-configuration': {
-                    $this->arguments['useDefaultConfiguration'] = false;
-                    }
-                break;
-
-                case '--no-globals-backup': {
-                    $this->arguments['backupGlobals'] = false;
-                    }
-                break;
-
-                case '--static-backup': {
-                    $this->arguments['backupStaticAttributes'] = true;
-                    }
-                break;
-
-                case 'v':
-                case '--verbose': {
-                    $this->arguments['verbose'] = true;
-                    }
-                break;
-
-                case '--version': {
-                    $this->printVersionString();
-                    exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
-                    }
-                break;
-
-                case '--report-useless-tests': {
-                    $this->arguments['reportUselessTests'] = true;
-                    }
-                break;
-
-                case '--strict-coverage': {
-                    $this->arguments['strictCoverage'] = true;
-                    }
-                break;
-
-                case '--strict-global-state': {
-                    $this->arguments['disallowChangesToGlobalState'] = true;
-                }
-                break;
-
-                case '--disallow-test-output': {
-                    $this->arguments['disallowTestOutput'] = true;
-                    }
-                break;
-
-                case '--enforce-time-limit': {
-                    $this->arguments['enforceTimeLimit'] = true;
-                    }
-                break;
-
-                case '--disallow-todo-tests': {
-                    $this->arguments['disallowTodoAnnotatedTests'] = true;
-                    }
-                break;
-
-                case '--strict': {
-                    $this->arguments['reportUselessTests']         = true;
-                    $this->arguments['strictCoverage']             = true;
-                    $this->arguments['disallowTestOutput']         = true;
-                    $this->arguments['enforceTimeLimit']           = true;
-                    $this->arguments['disallowTodoAnnotatedTests'] = true;
-                    $this->arguments['deprecatedStrictModeOption'] = true;
-                    }
-                break;
-
-                case '--selfupdate':
-                case '--self-update': {
-                    $this->handleSelfUpdate();
-                    }
-                break;
-
-                default: {
-                    $optionName = str_replace('--', '', $option[0]);
-
-                    if (isset($this->longOptions[$optionName])) {
-                        $handler = $this->longOptions[$optionName];
-                    } elseif (isset($this->longOptions[$optionName . '='])) {
-                        $handler = $this->longOptions[$optionName . '='];
-                    }
-
-                    if (isset($handler) && is_callable(array($this, $handler))) {
-                        $this->$handler($option[1]);
-                    }
-                    }
-            }
-        }
-
-        $this->handleCustomTestSuite();
-
-        if (!isset($this->arguments['test'])) {
-            if (isset($this->options[1][0])) {
-                $this->arguments['test'] = $this->options[1][0];
-            }
-
-            if (isset($this->options[1][1])) {
-                $this->arguments['testFile'] = realpath($this->options[1][1]);
-            } else {
-                $this->arguments['testFile'] = '';
-            }
-
-            if (isset($this->arguments['test']) &&
-                is_file($this->arguments['test']) &&
-                substr($this->arguments['test'], -5, 5) != '.phpt') {
-                $this->arguments['testFile'] = realpath($this->arguments['test']);
-                $this->arguments['test']     = substr($this->arguments['test'], 0, strrpos($this->arguments['test'], '.'));
-            }
-        }
-
-        if (!isset($this->arguments['testSuffixes'])) {
-            $this->arguments['testSuffixes'] = array('Test.php', '.phpt');
-        }
-
-        if (isset($includePath)) {
-            ini_set(
-                'include_path',
-                $includePath . PATH_SEPARATOR . ini_get('include_path')
-            );
-        }
-
-        if ($this->arguments['loader'] !== null) {
-            $this->arguments['loader'] = $this->handleLoader($this->arguments['loader']);
-        }
-
-        if (isset($this->arguments['configuration']) &&
-            is_dir($this->arguments['configuration'])) {
-            $configurationFile = $this->arguments['configuration'] .
-                                 '/phpunit.xml';
-
-            if (file_exists($configurationFile)) {
-                $this->arguments['configuration'] = realpath(
-                    $configurationFile
-                );
-            } elseif (file_exists($configurationFile . '.dist')) {
-                $this->arguments['configuration'] = realpath(
-                    $configurationFile . '.dist'
-                );
-            }
-        } elseif (!isset($this->arguments['configuration']) &&
-                 $this->arguments['useDefaultConfiguration']) {
-            if (file_exists('phpunit.xml')) {
-                $this->arguments['configuration'] = realpath('phpunit.xml');
-            } elseif (file_exists('phpunit.xml.dist')) {
-                $this->arguments['configuration'] = realpath(
-                    'phpunit.xml.dist'
-                );
-            }
-        }
-
-        if (isset($this->arguments['configuration'])) {
-            try {
-                $configuration = PHPUnit_Util_Configuration::getInstance(
-                    $this->arguments['configuration']
-                );
-            } catch (Exception $e) {
-                print $e->getMessage() . "\n";
-                exit(PHPUnit_TextUI_TestRunner::FAILURE_EXIT);
-            }
-
-            $phpunit = $configuration->getPHPUnitConfiguration();
-
-            $configuration->handlePHPConfiguration();
-
-            /**
-             * Issue #1216
-             */
-            if (isset($this->arguments['bootstrap'])) {
-                $this->handleBootstrap($this->arguments['bootstrap']);
-            } elseif (isset($phpunit['bootstrap'])) {
-                $this->handleBootstrap($phpunit['bootstrap']);
-            }
-
-            /**
-             * Issue #657
-             */
-            if (isset($phpunit['stderr']) && ! isset($this->arguments['stderr'])) {
-                $this->arguments['stderr'] = $phpunit['stderr'];
-            }
-
-            if (isset($phpunit['printerClass'])) {
-                if (isset($phpunit['printerFile'])) {
-                    $file = $phpunit['printerFile'];
-                } else {
-                    $file = '';
-                }
-
-                $this->arguments['printer'] = $this->handlePrinter(
-                    $phpunit['printerClass'], $file
-                );
-            }
-
-            if (isset($phpunit['testSuiteLoaderClass'])) {
-                if (isset($phpunit['testSuiteLoaderFile'])) {
-                    $file = $phpunit['testSuiteLoaderFile'];
-                } else {
-                    $file = '';
-                }
-
-                $this->arguments['loader'] = $this->handleLoader(
-                    $phpunit['testSuiteLoaderClass'], $file
-                );
-            }
-
-            $browsers = $configuration->getSeleniumBrowserConfiguration();
-
-            if (!empty($browsers) &&
-                class_exists('PHPUnit_Extensions_SeleniumTestCase')) {
-                PHPUnit_Extensions_SeleniumTestCase::$browsers = $browsers;
-            }
-
-            if (!isset($this->arguments['test'])) {
-                $testSuite = $configuration->getTestSuiteConfiguration(isset($this->arguments['testsuite']) ? $this->arguments['testsuite'] : null);
-
-                if ($testSuite !== null) {
-                    $this->arguments['test'] = $testSuite;
-                }
-            }
-        } elseif (isset($this->arguments['bootstrap'])) {
-            $this->handleBootstrap($this->arguments['bootstrap']);
-        }
-
-        if (isset($this->arguments['printer']) &&
-            is_string($this->arguments['printer'])) {
-            $this->arguments['printer'] = $this->handlePrinter($this->arguments['printer']);
-        }
-
-        if (isset($this->arguments['test']) && is_string($this->arguments['test']) && substr($this->arguments['test'], -5, 5) == '.phpt') {
-            $test = new PHPUnit_Extensions_PhptTestCase($this->arguments['test']);
-
-            $this->arguments['test'] = new PHPUnit_Framework_TestSuite;
-            $this->arguments['test']->addTest($test);
-        }
-
-        if (!isset($this->arguments['test']) ||
-            (isset($this->arguments['testDatabaseLogRevision']) && !isset($this->arguments['testDatabaseDSN']))) {
-            $this->showHelp();
-            exit(PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT);
-        }
-    }
-
-    /**
-     * Handles the loading of the PHPUnit_Runner_TestSuiteLoader implementation.
-     *
-     * @param  string                         $loaderClass
-     * @param  string                         $loaderFile
-     * @return PHPUnit_Runner_TestSuiteLoader
-     */
-    protected function handleLoader($loaderClass, $loaderFile = '')
-    {
-        if (!class_exists($loaderClass, false)) {
-            if ($loaderFile == '') {
-                $loaderFile = PHPUnit_Util_Filesystem::classNameToFilename(
-                    $loaderClass
-                );
-            }
-
-            $loaderFile = stream_resolve_include_path($loaderFile);
-
-            if ($loaderFile) {
-                require $loaderFile;
-            }
-        }
-
-        if (class_exists($loaderClass, false)) {
-            $class = new ReflectionClass($loaderClass);
-
-            if ($class->implementsInterface('PHPUnit_Runner_TestSuiteLoader') &&
-                $class->isInstantiable()) {
-                return $class->newInstance();
-            }
-        }
-
-        if ($loaderClass == 'PHPUnit_Runner_StandardTestSuiteLoader') {
-            return;
-        }
-
-        $this->showError(
-            sprintf(
-                'Could not use "%s" as loader.',
-                $loaderClass
-            )
-        );
-    }
-
-    /**
-     * Handles the loading of the PHPUnit_Util_Printer implementation.
-     *
-     * @param  string               $printerClass
-     * @param  string               $printerFile
-     * @return PHPUnit_Util_Printer
-     */
-    protected function handlePrinter($printerClass, $printerFile = '')
-    {
-        if (!class_exists($printerClass, false)) {
-            if ($printerFile == '') {
-                $printerFile = PHPUnit_Util_Filesystem::classNameToFilename(
-                    $printerClass
-                );
-            }
-
-            $printerFile = stream_resolve_include_path($printerFile);
-
-            if ($printerFile) {
-                require $printerFile;
-            }
-        }
-
-        if (class_exists($printerClass)) {
-            $class = new ReflectionClass($printerClass);
-
-            if ($class->implementsInterface('PHPUnit_Framework_TestListener') &&
-                $class->isSubclassOf('PHPUnit_Util_Printer') &&
-                $class->isInstantiable()) {
-                if ($class->isSubclassOf('PHPUnit_TextUI_ResultPrinter')) {
-                    return $printerClass;
-                }
-
-                $outputStream = isset($this->arguments['stderr']) ? 'php://stderr' : null;
-
-                return $class->newInstance($outputStream);
-            }
-        }
-
-        $this->showError(
-            sprintf(
-                'Could not use "%s" as printer.',
-                $printerClass
-            )
-        );
-    }
-
-    /**
-     * Loads a bootstrap file.
-     *
-     * @param string $filename
-     */
-    protected function handleBootstrap($filename)
-    {
-        try {
-            PHPUnit_Util_Fileloader::checkAndLoad($filename);
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->showError($e->getMessage());
-        }
-    }
-
-    /**
-     * @since Method available since Release 4.0.0
-     */
-    protected function handleSelfUpdate()
-    {
-        $this->printVersionString();
-
-        if (!extension_loaded('openssl')) {
-            print "The OpenSSL extension is not loaded.\n";
-            exit(PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT);
-        }
-
-        $remoteFilename = sprintf(
-            'https://phar.phpunit.de/phpunit%s.phar',
-            PHPUnit_Runner_Version::getReleaseChannel()
-        );
-
-        $localFilename = realpath($_SERVER['argv'][0]);
-        $tempFilename  = basename($localFilename, '.phar') . '-temp.phar';
-
-        // Workaround for https://bugs.php.net/bug.php?id=65538
-        $caFile = dirname($tempFilename) . '/ca.pem';
-        copy(__PHPUNIT_PHAR_ROOT__ . '/ca.pem', $caFile);
-
-        print 'Updating the PHPUnit PHAR ... ';
-
-        $options = array(
-            'ssl' => array(
-                'allow_self_signed' => false,
-                'cafile' => $caFile,
-                'verify_peer' => true
-            )
-        );
-
-        if (PHP_VERSION_ID < 50600) {
-            $options['ssl']['CN_match']        = 'phar.phpunit.de';
-            $options['ssl']['SNI_server_name'] = 'phar.phpunit.de';
-        }
-
-        file_put_contents(
-            $tempFilename,
-            file_get_contents(
-                $remoteFilename,
-                false,
-                stream_context_create($options)
-            )
-        );
-
-        chmod($tempFilename, 0777 & ~umask());
-
-        try {
-            $phar = new Phar($tempFilename);
-            unset($phar);
-            rename($tempFilename, $localFilename);
-            unlink($caFile);
-        } catch (Exception $e) {
-            unlink($caFile);
-            unlink($tempFilename);
-            print " done\n\n" . $e->getMessage() . "\n";
-            exit(2);
-        }
-
-        print " done\n";
-        exit(0);
-    }
-
-    /**
-     * Show the help message.
-     */
-    protected function showHelp()
-    {
-        $this->printVersionString();
-
-        print <<<EOT
-Usage: phpunit [options] UnitTest [UnitTest.php]
-       phpunit [options] <directory>
-
-Code Coverage Options:
-
-  --coverage-clover <file>  Generate code coverage report in Clover XML format.
-  --coverage-crap4j <file>  Generate code coverage report in Crap4J XML format.
-  --coverage-html <dir>     Generate code coverage report in HTML format.
-  --coverage-php <file>     Export PHP_CodeCoverage object to file.
-  --coverage-text=<file>    Generate code coverage report in text format.
-                            Default: Standard output.
-  --coverage-xml <dir>      Generate code coverage report in PHPUnit XML format.
-
-Logging Options:
-
-  --log-junit <file>        Log test execution in JUnit XML format to file.
-  --log-tap <file>          Log test execution in TAP format to file.
-  --log-json <file>         Log test execution in JSON format.
-  --testdox-html <file>     Write agile documentation in HTML format to file.
-  --testdox-text <file>     Write agile documentation in Text format to file.
-
-Test Selection Options:
-
-  --filter <pattern>        Filter which tests to run.
-  --testsuite <pattern>     Filter which testsuite to run.
-  --group ...               Only runs tests from the specified group(s).
-  --exclude-group ...       Exclude tests from the specified group(s).
-  --list-groups             List available test groups.
-  --test-suffix ...         Only search for test in files with specified
-                            suffix(es). Default: Test.php,.phpt
-
-Test Execution Options:
-
-  --report-useless-tests    Be strict about tests that do not test anything.
-  --strict-coverage         Be strict about unintentionally covered code.
-  --strict-global-state     Be strict about changes to global state
-  --disallow-test-output    Be strict about output during tests.
-  --enforce-time-limit      Enforce time limit based on test size.
-  --disallow-todo-tests     Disallow @todo-annotated tests.
-
-  --process-isolation       Run each test in a separate PHP process.
-  --no-globals-backup       Do not backup and restore \$GLOBALS for each test.
-  --static-backup           Backup and restore static attributes for each test.
-
-  --colors=<flag>           Use colors in output ("never", "auto" or "always").
-  --columns <n>             Number of columns to use for progress output.
-  --columns max             Use maximum number of columns for progress output.
-  --stderr                  Write to STDERR instead of STDOUT.
-  --stop-on-error           Stop execution upon first error.
-  --stop-on-failure         Stop execution upon first error or failure.
-  --stop-on-risky           Stop execution upon first risky test.
-  --stop-on-skipped         Stop execution upon first skipped test.
-  --stop-on-incomplete      Stop execution upon first incomplete test.
-  -v|--verbose              Output more verbose information.
-  --debug                   Display debugging information during test execution.
-
-  --loader <loader>         TestSuiteLoader implementation to use.
-  --repeat <times>          Runs the test(s) repeatedly.
-  --tap                     Report test execution progress in TAP format.
-  --testdox                 Report test execution progress in TestDox format.
-  --printer <printer>       TestListener implementation to use.
-
-Configuration Options:
-
-  --bootstrap <file>        A "bootstrap" PHP file that is run before the tests.
-  -c|--configuration <file> Read configuration from XML file.
-  --no-configuration        Ignore default configuration file (phpunit.xml).
-  --include-path <path(s)>  Prepend PHP's include_path with given path(s).
-  -d key[=value]            Sets a php.ini value.
-
-Miscellaneous Options:
-
-  -h|--help                 Prints this usage information.
-  --version                 Prints the version and exits.
-
-EOT;
-
-        if (defined('__PHPUNIT_PHAR__')) {
-            print "\n  --self-update             Update PHPUnit to the latest version.\n";
-        }
-    }
-
-    /**
-     * Custom callback for test suite discovery.
-     */
-    protected function handleCustomTestSuite()
-    {
-    }
-
-    private function printVersionString()
-    {
-        if ($this->versionStringPrinted) {
-            return;
-        }
-
-        print PHPUnit_Runner_Version::getVersionString() . "\n\n";
-
-        $this->versionStringPrinted = true;
-    }
-
-    /**
-     */
-    private function showError($message)
-    {
-        $this->printVersionString();
-
-        print $message . "\n";
-
-        exit(PHPUnit_TextUI_TestRunner::FAILURE_EXIT);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php b/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php
deleted file mode 100644
index 93a7c11..0000000
--- a/core/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php
+++ /dev/null
@@ -1,642 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Environment\Console;
-
-/**
- * Prints the result of a TextUI TestRunner run.
- *
- * @package    PHPUnit
- * @subpackage TextUI
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_TextUI_ResultPrinter extends PHPUnit_Util_Printer implements PHPUnit_Framework_TestListener
-{
-    const EVENT_TEST_START      = 0;
-    const EVENT_TEST_END        = 1;
-    const EVENT_TESTSUITE_START = 2;
-    const EVENT_TESTSUITE_END   = 3;
-
-    const COLOR_NEVER   = 'never';
-    const COLOR_AUTO    = 'auto';
-    const COLOR_ALWAYS  = 'always';
-    const COLOR_DEFAULT = self::COLOR_NEVER;
-
-    /**
-     * @var array
-     */
-    private static $ansiCodes = array(
-      'bold'       => 1,
-      'fg-black'   => 30,
-      'fg-red'     => 31,
-      'fg-yellow'  => 33,
-      'fg-cyan'    => 36,
-      'fg-white'   => 37,
-      'bg-red'     => 41,
-      'bg-green'   => 42,
-      'bg-yellow'  => 43
-    );
-
-    /**
-     * @var integer
-     */
-    protected $column = 0;
-
-    /**
-     * @var integer
-     */
-    protected $maxColumn;
-
-    /**
-     * @var boolean
-     */
-    protected $lastTestFailed = false;
-
-    /**
-     * @var integer
-     */
-    protected $numAssertions = 0;
-
-    /**
-     * @var integer
-     */
-    protected $numTests = -1;
-
-    /**
-     * @var integer
-     */
-    protected $numTestsRun = 0;
-
-    /**
-     * @var integer
-     */
-    protected $numTestsWidth;
-
-    /**
-     * @var boolean
-     */
-    protected $colors = false;
-
-    /**
-     * @var boolean
-     */
-    protected $debug = false;
-
-    /**
-     * @var boolean
-     */
-    protected $verbose = false;
-
-    /**
-     * @var integer
-     */
-    private $numberOfColumns;
-
-    /**
-     * Constructor.
-     *
-     * @param  mixed                       $out
-     * @param  boolean                     $verbose
-     * @param  string                      $colors
-     * @param  boolean                     $debug
-     * @param  integer|string              $numberOfColumns
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.0.0
-     */
-    public function __construct($out = null, $verbose = false, $colors = self::COLOR_DEFAULT, $debug = false, $numberOfColumns = 80)
-    {
-        parent::__construct($out);
-
-        if (!is_bool($verbose)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'boolean');
-        }
-
-        $availableColors = array(self::COLOR_NEVER, self::COLOR_AUTO, self::COLOR_ALWAYS);
-        if (!in_array($colors, $availableColors)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(
-                3,
-                vsprintf('value from "%s", "%s" or "%s"', $availableColors)
-            );
-        }
-
-        if (!is_bool($debug)) {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(4, 'boolean');
-        }
-
-        if (!is_int($numberOfColumns) && $numberOfColumns != 'max') {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(5, 'integer or "max"');
-        }
-
-        $console = new Console;
-
-        $maxNumberOfColumns = $console->getNumberOfColumns();
-
-        if ($numberOfColumns == 'max' || $numberOfColumns > $maxNumberOfColumns) {
-            $numberOfColumns = $maxNumberOfColumns;
-        }
-
-        $this->numberOfColumns = $numberOfColumns;
-        $this->verbose         = $verbose;
-        $this->debug           = $debug;
-
-        if ($colors === self::COLOR_AUTO && $console->hasColorSupport()) {
-            $this->colors = true;
-        } else {
-            $this->colors = (self::COLOR_ALWAYS === $colors);
-        }
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    public function printResult(PHPUnit_Framework_TestResult $result)
-    {
-        $this->printHeader();
-
-        $this->printErrors($result);
-        $printSeparator = $result->errorCount() > 0;
-
-        if ($printSeparator && $result->failureCount() > 0) {
-            $this->write("\n--\n\n");
-        }
-
-        $printSeparator = $printSeparator || $result->failureCount() > 0;
-        $this->printFailures($result);
-
-        if ($this->verbose) {
-            if ($printSeparator && $result->riskyCount() > 0) {
-                $this->write("\n--\n\n");
-            }
-
-            $printSeparator = $printSeparator ||
-                              $result->riskyCount() > 0;
-
-            $this->printRisky($result);
-
-            if ($printSeparator && $result->notImplementedCount() > 0) {
-                $this->write("\n--\n\n");
-            }
-
-            $printSeparator = $printSeparator ||
-                              $result->notImplementedCount() > 0;
-
-            $this->printIncompletes($result);
-
-            if ($printSeparator && $result->skippedCount() > 0) {
-                $this->write("\n--\n\n");
-            }
-
-            $this->printSkipped($result);
-        }
-
-        $this->printFooter($result);
-    }
-
-    /**
-     * @param array  $defects
-     * @param string $type
-     */
-    protected function printDefects(array $defects, $type)
-    {
-        $count = count($defects);
-
-        if ($count == 0) {
-            return;
-        }
-
-        $this->write(
-            sprintf(
-                "There %s %d %s%s:\n",
-                ($count == 1) ? 'was' : 'were',
-                $count,
-                $type,
-                ($count == 1) ? '' : 's'
-            )
-        );
-
-        $i = 1;
-
-        foreach ($defects as $defect) {
-            $this->printDefect($defect, $i++);
-        }
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestFailure $defect
-     * @param integer                       $count
-     */
-    protected function printDefect(PHPUnit_Framework_TestFailure $defect, $count)
-    {
-        $this->printDefectHeader($defect, $count);
-        $this->printDefectTrace($defect);
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestFailure $defect
-     * @param integer                       $count
-     */
-    protected function printDefectHeader(PHPUnit_Framework_TestFailure $defect, $count)
-    {
-        $this->write(
-            sprintf(
-                "\n%d) %s\n",
-                $count,
-                $defect->getTestName()
-            )
-        );
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestFailure $defect
-     */
-    protected function printDefectTrace(PHPUnit_Framework_TestFailure $defect)
-    {
-        $e = $defect->thrownException();
-        $this->write((string) $e);
-
-        while ($e = $e->getPrevious()) {
-            $this->write("\nCaused by\n" . $e);
-        }
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    protected function printErrors(PHPUnit_Framework_TestResult $result)
-    {
-        $this->printDefects($result->errors(), 'error');
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    protected function printFailures(PHPUnit_Framework_TestResult $result)
-    {
-        $this->printDefects($result->failures(), 'failure');
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    protected function printIncompletes(PHPUnit_Framework_TestResult $result)
-    {
-        $this->printDefects($result->notImplemented(), 'incomplete test');
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     * @since  Method available since Release 4.0.0
-     */
-    protected function printRisky(PHPUnit_Framework_TestResult $result)
-    {
-        $this->printDefects($result->risky(), 'risky test');
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     * @since  Method available since Release 3.0.0
-     */
-    protected function printSkipped(PHPUnit_Framework_TestResult $result)
-    {
-        $this->printDefects($result->skipped(), 'skipped test');
-    }
-
-    protected function printHeader()
-    {
-        $this->write("\n\n" . PHP_Timer::resourceUsage() . "\n\n");
-    }
-
-    /**
-     * @param PHPUnit_Framework_TestResult $result
-     */
-    protected function printFooter(PHPUnit_Framework_TestResult $result)
-    {
-        if (count($result) === 0) {
-            $this->writeWithColor(
-                'fg-black, bg-yellow',
-                'No tests executed!'
-            );
-        } elseif ($result->wasSuccessful() &&
-                 $result->allHarmless() &&
-                 $result->allCompletelyImplemented() &&
-                 $result->noneSkipped()) {
-            $this->writeWithColor(
-                'fg-black, bg-green',
-                sprintf(
-                    'OK (%d test%s, %d assertion%s)',
-                    count($result),
-                    (count($result) == 1) ? '' : 's',
-                    $this->numAssertions,
-                    ($this->numAssertions == 1) ? '' : 's'
-                )
-            );
-        } elseif ((!$result->allCompletelyImplemented() ||
-                  !$result->allHarmless() ||
-                  !$result->noneSkipped()) &&
-                 $result->wasSuccessful()) {
-            $this->writeWithColor(
-                'fg-black, bg-yellow',
-                sprintf(
-                    "%sOK, but incomplete, skipped, or risky tests!\n" .
-                    'Tests: %d, Assertions: %d%s%s%s.',
-                    $this->verbose ? "\n" : '',
-                    count($result),
-                    $this->numAssertions,
-                    $this->getCountString(
-                        $result->notImplementedCount(),
-                        'Incomplete'
-                    ),
-                    $this->getCountString(
-                        $result->skippedCount(),
-                        'Skipped'
-                    ),
-                    $this->getCountString(
-                        $result->riskyCount(),
-                        'Risky'
-                    )
-                )
-            );
-        } else {
-            $this->writeWithColor(
-                'fg-white, bg-red',
-                sprintf(
-                    "\nFAILURES!\n" .
-                    'Tests: %d, Assertions: %s%s%s%s%s.',
-                    count($result),
-                    $this->numAssertions,
-                    $this->getCountString($result->failureCount(), 'Failures'),
-                    $this->getCountString($result->errorCount(), 'Errors'),
-                    $this->getCountString(
-                        $result->notImplementedCount(),
-                        'Incomplete'
-                    ),
-                    $this->getCountString($result->skippedCount(), 'Skipped')
-                )
-            );
-        }
-    }
-
-    /**
-     * @param  integer $count
-     * @param  string  $name
-     * @return string
-     * @since  Method available since Release 3.0.0
-     */
-    protected function getCountString($count, $name)
-    {
-        $string = '';
-
-        if ($count > 0) {
-            $string = sprintf(
-                ', %s: %d',
-                $name,
-                $count
-            );
-        }
-
-        return $string;
-    }
-
-    /**
-     */
-    public function printWaitPrompt()
-    {
-        $this->write("\n<RETURN> to continue\n");
-    }
-
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeProgressWithColor('fg-red, bold', 'E');
-        $this->lastTestFailed = true;
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        $this->writeProgressWithColor('bg-red, fg-white', 'F');
-        $this->lastTestFailed = true;
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeProgressWithColor('fg-yellow, bold', 'I');
-        $this->lastTestFailed = true;
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeProgressWithColor('fg-yellow, bold', 'R');
-        $this->lastTestFailed = true;
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeProgressWithColor('fg-cyan, bold', 'S');
-        $this->lastTestFailed = true;
-    }
-
-    /**
-     * A testsuite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        if ($this->numTests == -1) {
-            $this->numTests      = count($suite);
-            $this->numTestsWidth = strlen((string) $this->numTests);
-            $this->maxColumn     = $this->numberOfColumns - strlen('  /  (XXX%)') - (2 * $this->numTestsWidth);
-        }
-    }
-
-    /**
-     * A testsuite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        if ($this->debug) {
-            $this->write(
-                sprintf(
-                    "\nStarting test '%s'.\n",
-                    PHPUnit_Util_Test::describe($test)
-                )
-            );
-        }
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        if (!$this->lastTestFailed) {
-            $this->writeProgress('.');
-        }
-
-        if ($test instanceof PHPUnit_Framework_TestCase) {
-            $this->numAssertions += $test->getNumAssertions();
-        } elseif ($test instanceof PHPUnit_Extensions_PhptTestCase) {
-            $this->numAssertions++;
-        }
-
-        $this->lastTestFailed = false;
-
-        if ($test instanceof PHPUnit_Framework_TestCase) {
-            if (!$test->hasExpectationOnOutput()) {
-                $this->write($test->getActualOutput());
-            }
-        }
-    }
-
-    /**
-     * @param string $progress
-     */
-    protected function writeProgress($progress)
-    {
-        $this->write($progress);
-        $this->column++;
-        $this->numTestsRun++;
-
-        if ($this->column == $this->maxColumn) {
-            $this->write(
-                sprintf(
-                    ' %' . $this->numTestsWidth . 'd / %' .
-                    $this->numTestsWidth . 'd (%3s%%)',
-                    $this->numTestsRun,
-                    $this->numTests,
-                    floor(($this->numTestsRun / $this->numTests) * 100)
-                )
-            );
-
-            $this->writeNewLine();
-        }
-    }
-
-    protected function writeNewLine()
-    {
-        $this->column = 0;
-        $this->write("\n");
-    }
-
-    /**
-     * Formats a buffer with a specified ANSI color sequence if colors are
-     * enabled.
-     *
-     * @param  string $color
-     * @param  string $buffer
-     * @return string
-     * @since  Method available since Release 4.0.0
-     */
-    protected function formatWithColor($color, $buffer)
-    {
-        if (!$this->colors) {
-            return $buffer;
-        }
-
-        $codes = array_map('trim', explode(',', $color));
-        $lines = explode("\n", $buffer);
-        $padding = max(array_map('strlen', $lines));
-
-        $styles = array();
-        foreach ($codes as $code) {
-            $styles[] = self::$ansiCodes[$code];
-        }
-        $style = sprintf("\x1b[%sm", implode(';', $styles));
-
-        $styledLines = array();
-        foreach ($lines as $line) {
-            $styledLines[] = $style . str_pad($line, $padding) . "\x1b[0m";
-        }
-
-        return implode("\n", $styledLines);
-    }
-
-    /**
-     * Writes a buffer out with a color sequence if colors are enabled.
-     *
-     * @param string $color
-     * @param string $buffer
-     * @since  Method available since Release 4.0.0
-     */
-    protected function writeWithColor($color, $buffer)
-    {
-        $buffer = $this->formatWithColor($color, $buffer);
-        $this->write($buffer . "\n");
-    }
-
-    /**
-     * Writes progress with a color sequence if colors are enabled.
-     *
-     * @param string $color
-     * @param string $buffer
-     * @since  Method available since Release 4.0.0
-     */
-    protected function writeProgressWithColor($color, $buffer)
-    {
-        $buffer = $this->formatWithColor($color, $buffer);
-        $this->writeProgress($buffer);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php b/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php
deleted file mode 100644
index bc93e3a..0000000
--- a/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php
+++ /dev/null
@@ -1,984 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Environment\Runtime;
-
-/**
- * A TestRunner for the Command Line Interface (CLI)
- * PHP SAPI Module.
- *
- * @package    PHPUnit
- * @subpackage TextUI
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_TextUI_TestRunner extends PHPUnit_Runner_BaseTestRunner
-{
-    const SUCCESS_EXIT   = 0;
-    const FAILURE_EXIT   = 1;
-    const EXCEPTION_EXIT = 2;
-
-    /**
-     * @var PHP_CodeCoverage_Filter
-     */
-    protected $codeCoverageFilter;
-
-    /**
-     * @var PHPUnit_Runner_TestSuiteLoader
-     */
-    protected $loader = null;
-
-    /**
-     * @var PHPUnit_TextUI_ResultPrinter
-     */
-    protected $printer = null;
-
-    /**
-     * @var boolean
-     */
-    protected static $versionStringPrinted = false;
-
-    /**
-     * @var array
-     */
-    private $missingExtensions = array();
-
-    /**
-     * @var boolean
-     */
-    private $canCollectCodeCoverage;
-
-    /**
-     * @param PHPUnit_Runner_TestSuiteLoader $loader
-     * @param PHP_CodeCoverage_Filter        $filter
-     * @since Method available since Release 3.4.0
-     */
-    public function __construct(PHPUnit_Runner_TestSuiteLoader $loader = null, PHP_CodeCoverage_Filter $filter = null)
-    {
-        if ($filter === null) {
-            $filter = $this->getCodeCoverageFilter();
-        }
-
-        $this->codeCoverageFilter = $filter;
-        $this->loader             = $loader;
-
-        $runtime = new Runtime;
-        $this->canCollectCodeCoverage = $runtime->canCollectCodeCoverage();
-    }
-
-    /**
-     * @param  PHPUnit_Framework_Test|ReflectionClass $test
-     * @param  array                               $arguments
-     * @return PHPUnit_Framework_TestResult
-     * @throws PHPUnit_Framework_Exception
-     */
-    public static function run($test, array $arguments = array())
-    {
-        if ($test instanceof ReflectionClass) {
-            $test = new PHPUnit_Framework_TestSuite($test);
-        }
-
-        if ($test instanceof PHPUnit_Framework_Test) {
-            $aTestRunner = new PHPUnit_TextUI_TestRunner;
-
-            return $aTestRunner->doRun(
-                $test,
-                $arguments
-            );
-        } else {
-            throw new PHPUnit_Framework_Exception(
-                'No test case or test suite found.'
-            );
-        }
-    }
-
-    /**
-     * @return PHPUnit_Framework_TestResult
-     */
-    protected function createTestResult()
-    {
-        return new PHPUnit_Framework_TestResult;
-    }
-
-    private function processSuiteFilters(PHPUnit_Framework_TestSuite $suite, array $arguments)
-    {
-        if (!$arguments['filter'] &&
-            empty($arguments['groups']) &&
-            empty($arguments['excludeGroups'])) {
-            return;
-        }
-
-        $filterFactory = new PHPUnit_Runner_Filter_Factory();
-
-        if (!empty($arguments['excludeGroups'])) {
-            $filterFactory->addFilter(
-                new ReflectionClass('PHPUnit_Runner_Filter_Group_Exclude'),
-                $arguments['excludeGroups']
-            );
-        }
-
-        if (!empty($arguments['groups'])) {
-            $filterFactory->addFilter(
-                new ReflectionClass('PHPUnit_Runner_Filter_Group_Include'),
-                $arguments['groups']
-            );
-        }
-
-        if ($arguments['filter']) {
-            $filterFactory->addFilter(
-                new ReflectionClass('PHPUnit_Runner_Filter_Test'),
-                $arguments['filter']
-            );
-        }
-        $suite->injectFilter($filterFactory);
-    }
-
-    /**
-     * @param  PHPUnit_Framework_Test       $suite
-     * @param  array                        $arguments
-     * @return PHPUnit_Framework_TestResult
-     */
-    public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
-    {
-        $this->handleConfiguration($arguments);
-
-        $this->processSuiteFilters($suite, $arguments);
-
-        if (isset($arguments['bootstrap'])) {
-            $GLOBALS['__PHPUNIT_BOOTSTRAP'] = $arguments['bootstrap'];
-        }
-
-        if ($arguments['backupGlobals'] === false) {
-            $suite->setBackupGlobals(false);
-        }
-
-        if ($arguments['backupStaticAttributes'] === true) {
-            $suite->setBackupStaticAttributes(true);
-        }
-
-        if ($arguments['disallowChangesToGlobalState'] === true) {
-            $suite->setDisallowChangesToGlobalState(true);
-        }
-
-        if (is_integer($arguments['repeat'])) {
-            $test = new PHPUnit_Extensions_RepeatedTest(
-                $suite,
-                $arguments['repeat'],
-                $arguments['processIsolation']
-            );
-
-            $suite = new PHPUnit_Framework_TestSuite();
-            $suite->addTest($test);
-        }
-
-        $result = $this->createTestResult();
-
-        if (!$arguments['convertErrorsToExceptions']) {
-            $result->convertErrorsToExceptions(false);
-        }
-
-        if (!$arguments['convertNoticesToExceptions']) {
-            PHPUnit_Framework_Error_Notice::$enabled = false;
-        }
-
-        if (!$arguments['convertWarningsToExceptions']) {
-            PHPUnit_Framework_Error_Warning::$enabled = false;
-        }
-
-        if ($arguments['stopOnError']) {
-            $result->stopOnError(true);
-        }
-
-        if ($arguments['stopOnFailure']) {
-            $result->stopOnFailure(true);
-        }
-
-        if ($arguments['stopOnIncomplete']) {
-            $result->stopOnIncomplete(true);
-        }
-
-        if ($arguments['stopOnRisky']) {
-            $result->stopOnRisky(true);
-        }
-
-        if ($arguments['stopOnSkipped']) {
-            $result->stopOnSkipped(true);
-        }
-
-        if ($this->printer === null) {
-            if (isset($arguments['printer']) &&
-                $arguments['printer'] instanceof PHPUnit_Util_Printer) {
-                $this->printer = $arguments['printer'];
-            } else {
-                $printerClass = 'PHPUnit_TextUI_ResultPrinter';
-
-                if (isset($arguments['printer']) &&
-                    is_string($arguments['printer']) &&
-                    class_exists($arguments['printer'], false)) {
-                    $class = new ReflectionClass($arguments['printer']);
-
-                    if ($class->isSubclassOf('PHPUnit_TextUI_ResultPrinter')) {
-                        $printerClass = $arguments['printer'];
-                    }
-                }
-
-                $this->printer = new $printerClass(
-                  isset($arguments['stderr']) ? 'php://stderr' : null,
-                  $arguments['verbose'],
-                  $arguments['colors'],
-                  $arguments['debug'],
-                  $arguments['columns']
-                );
-            }
-        }
-
-        if (!$this->printer instanceof PHPUnit_Util_Log_TAP) {
-            $this->printer->write(
-                PHPUnit_Runner_Version::getVersionString() . "\n\n"
-            );
-
-            self::$versionStringPrinted = true;
-
-            if (isset($arguments['configuration'])) {
-                $this->printer->write(
-                    sprintf(
-                        "Configuration read from %s\n\n",
-                        $arguments['configuration']->getFilename()
-                    )
-                );
-            }
-
-            if (isset($arguments['deprecatedStrictModeOption'])) {
-                print "Deprecated option \"--strict\" used\n\n";
-            }
-
-            if (isset($arguments['deprecatedStrictModeSetting'])) {
-                print "Deprecated configuration setting \"strict\" used\n\n";
-            }
-        }
-
-        foreach ($arguments['listeners'] as $listener) {
-            $result->addListener($listener);
-        }
-
-        $result->addListener($this->printer);
-
-        if (isset($arguments['testdoxHTMLFile'])) {
-            $result->addListener(
-                new PHPUnit_Util_TestDox_ResultPrinter_HTML(
-                    $arguments['testdoxHTMLFile']
-                )
-            );
-        }
-
-        if (isset($arguments['testdoxTextFile'])) {
-            $result->addListener(
-                new PHPUnit_Util_TestDox_ResultPrinter_Text(
-                    $arguments['testdoxTextFile']
-                )
-            );
-        }
-
-        $codeCoverageReports = 0;
-
-        if (isset($arguments['coverageClover'])) {
-            $codeCoverageReports++;
-        }
-
-        if (isset($arguments['coverageCrap4J'])) {
-            $codeCoverageReports++;
-        }
-
-        if (isset($arguments['coverageHtml'])) {
-            $codeCoverageReports++;
-        }
-
-        if (isset($arguments['coveragePHP'])) {
-            $codeCoverageReports++;
-        }
-
-        if (isset($arguments['coverageText'])) {
-            $codeCoverageReports++;
-        }
-
-        if (isset($arguments['coverageXml'])) {
-            $codeCoverageReports++;
-        }
-
-        if ($codeCoverageReports > 0 && (!extension_loaded('tokenizer') || !$this->canCollectCodeCoverage)) {
-            if (!extension_loaded('tokenizer')) {
-                $this->showExtensionNotLoadedMessage(
-                    'tokenizer',
-                    'No code coverage will be generated.'
-                );
-            } elseif (!extension_loaded('Xdebug')) {
-                $this->showExtensionNotLoadedMessage(
-                    'Xdebug',
-                    'No code coverage will be generated.'
-                );
-            }
-
-            $codeCoverageReports = 0;
-        }
-
-        if ($codeCoverageReports > 0) {
-            $codeCoverage = new PHP_CodeCoverage(
-                null,
-                $this->codeCoverageFilter
-            );
-
-            $codeCoverage->setAddUncoveredFilesFromWhitelist(
-                $arguments['addUncoveredFilesFromWhitelist']
-            );
-
-            $codeCoverage->setCheckForUnintentionallyCoveredCode(
-                $arguments['strictCoverage']
-            );
-
-            $codeCoverage->setProcessUncoveredFilesFromWhitelist(
-                $arguments['processUncoveredFilesFromWhitelist']
-            );
-
-            if (isset($arguments['forceCoversAnnotation'])) {
-                $codeCoverage->setForceCoversAnnotation(
-                    $arguments['forceCoversAnnotation']
-                );
-            }
-
-            if (isset($arguments['mapTestClassNameToCoveredClassName'])) {
-                $codeCoverage->setMapTestClassNameToCoveredClassName(
-                    $arguments['mapTestClassNameToCoveredClassName']
-                );
-            }
-
-            $result->setCodeCoverage($codeCoverage);
-        }
-
-        if ($codeCoverageReports > 1) {
-            if (isset($arguments['cacheTokens'])) {
-                $codeCoverage->setCacheTokens($arguments['cacheTokens']);
-            }
-        }
-
-        if (isset($arguments['jsonLogfile'])) {
-            $result->addListener(
-                new PHPUnit_Util_Log_JSON($arguments['jsonLogfile'])
-            );
-        }
-
-        if (isset($arguments['tapLogfile'])) {
-            $result->addListener(
-                new PHPUnit_Util_Log_TAP($arguments['tapLogfile'])
-            );
-        }
-
-        if (isset($arguments['junitLogfile'])) {
-            $result->addListener(
-                new PHPUnit_Util_Log_JUnit(
-                    $arguments['junitLogfile'],
-                    $arguments['logIncompleteSkipped']
-                )
-            );
-        }
-
-        $result->beStrictAboutTestsThatDoNotTestAnything($arguments['reportUselessTests']);
-        $result->beStrictAboutOutputDuringTests($arguments['disallowTestOutput']);
-        $result->beStrictAboutTodoAnnotatedTests($arguments['disallowTodoAnnotatedTests']);
-        $result->beStrictAboutTestSize($arguments['enforceTimeLimit']);
-        $result->setTimeoutForSmallTests($arguments['timeoutForSmallTests']);
-        $result->setTimeoutForMediumTests($arguments['timeoutForMediumTests']);
-        $result->setTimeoutForLargeTests($arguments['timeoutForLargeTests']);
-
-        if ($suite instanceof PHPUnit_Framework_TestSuite) {
-            $suite->setRunTestInSeparateProcess($arguments['processIsolation']);
-        }
-
-        $suite->run($result);
-
-        unset($suite);
-        $result->flushListeners();
-
-        if ($this->printer instanceof PHPUnit_TextUI_ResultPrinter) {
-            $this->printer->printResult($result);
-        }
-
-        if (isset($codeCoverage)) {
-            if (isset($arguments['coverageClover'])) {
-                $this->printer->write(
-                    "\nGenerating code coverage report in Clover XML format ..."
-                );
-
-                $writer = new PHP_CodeCoverage_Report_Clover;
-                $writer->process($codeCoverage, $arguments['coverageClover']);
-
-                $this->printer->write(" done\n");
-                unset($writer);
-            }
-
-            if (isset($arguments['coverageCrap4J'])) {
-                $this->printer->write(
-                    "\nGenerating Crap4J report XML file ..."
-                );
-
-                $writer = new PHP_CodeCoverage_Report_Crap4j;
-                $writer->process($codeCoverage, $arguments['coverageCrap4J']);
-
-                $this->printer->write(" done\n");
-                unset($writer);
-            }
-
-            if (isset($arguments['coverageHtml'])) {
-                $this->printer->write(
-                    "\nGenerating code coverage report in HTML format ..."
-                );
-
-                $writer = new PHP_CodeCoverage_Report_HTML(
-                    $arguments['reportLowUpperBound'],
-                    $arguments['reportHighLowerBound'],
-                    sprintf(
-                        ' and <a href="http://phpunit.de/">PHPUnit %s</a>',
-                        PHPUnit_Runner_Version::id()
-                    )
-                );
-
-                $writer->process($codeCoverage, $arguments['coverageHtml']);
-
-                $this->printer->write(" done\n");
-                unset($writer);
-            }
-
-            if (isset($arguments['coveragePHP'])) {
-                $this->printer->write(
-                    "\nGenerating code coverage report in PHP format ..."
-                );
-
-                $writer = new PHP_CodeCoverage_Report_PHP;
-                $writer->process($codeCoverage, $arguments['coveragePHP']);
-
-                $this->printer->write(" done\n");
-                unset($writer);
-            }
-
-            if (isset($arguments['coverageText'])) {
-                if ($arguments['coverageText'] == 'php://stdout') {
-                    $outputStream = $this->printer;
-                    $colors       = $arguments['colors'];
-                } else {
-                    $outputStream = new PHPUnit_Util_Printer($arguments['coverageText']);
-                    $colors       = false;
-                }
-
-                $processor = new PHP_CodeCoverage_Report_Text(
-                    $arguments['reportLowUpperBound'],
-                    $arguments['reportHighLowerBound'],
-                    $arguments['coverageTextShowUncoveredFiles'],
-                    $arguments['coverageTextShowOnlySummary']
-                );
-
-                $outputStream->write(
-                    $processor->process($codeCoverage, $colors)
-                );
-            }
-
-            if (isset($arguments['coverageXml'])) {
-                $this->printer->write(
-                    "\nGenerating code coverage report in PHPUnit XML format ..."
-                );
-
-                $writer = new PHP_CodeCoverage_Report_XML;
-                $writer->process($codeCoverage, $arguments['coverageXml']);
-
-                $this->printer->write(" done\n");
-                unset($writer);
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param PHPUnit_TextUI_ResultPrinter $resultPrinter
-     */
-    public function setPrinter(PHPUnit_TextUI_ResultPrinter $resultPrinter)
-    {
-        $this->printer = $resultPrinter;
-    }
-
-    /**
-     * Override to define how to handle a failed loading of
-     * a test suite.
-     *
-     * @param string $message
-     */
-    protected function runFailed($message)
-    {
-        $this->write($message . PHP_EOL);
-        exit(self::FAILURE_EXIT);
-    }
-
-    /**
-     * @param string $buffer
-     * @since  Method available since Release 3.1.0
-     */
-    protected function write($buffer)
-    {
-        if (PHP_SAPI != 'cli') {
-            $buffer = htmlspecialchars($buffer);
-        }
-
-        if ($this->printer !== null) {
-            $this->printer->write($buffer);
-        } else {
-            print $buffer;
-        }
-    }
-
-    /**
-     * Returns the loader to be used.
-     *
-     * @return PHPUnit_Runner_TestSuiteLoader
-     * @since  Method available since Release 2.2.0
-     */
-    public function getLoader()
-    {
-        if ($this->loader === null) {
-            $this->loader = new PHPUnit_Runner_StandardTestSuiteLoader;
-        }
-
-        return $this->loader;
-    }
-
-    /**
-     * @param array $arguments
-     * @since  Method available since Release 3.2.1
-     */
-    protected function handleConfiguration(array &$arguments)
-    {
-        if (isset($arguments['configuration']) &&
-            !$arguments['configuration'] instanceof PHPUnit_Util_Configuration) {
-            $arguments['configuration'] = PHPUnit_Util_Configuration::getInstance(
-                $arguments['configuration']
-            );
-        }
-
-        $arguments['debug']     = isset($arguments['debug'])     ? $arguments['debug']     : false;
-        $arguments['filter']    = isset($arguments['filter'])    ? $arguments['filter']    : false;
-        $arguments['listeners'] = isset($arguments['listeners']) ? $arguments['listeners'] : array();
-
-        if (isset($arguments['configuration'])) {
-            $arguments['configuration']->handlePHPConfiguration();
-
-            $phpunitConfiguration = $arguments['configuration']->getPHPUnitConfiguration();
-
-            if (isset($phpunitConfiguration['deprecatedStrictModeSetting'])) {
-                $arguments['deprecatedStrictModeSetting'] = true;
-            }
-
-            if (isset($phpunitConfiguration['backupGlobals']) &&
-                !isset($arguments['backupGlobals'])) {
-                $arguments['backupGlobals'] = $phpunitConfiguration['backupGlobals'];
-            }
-
-            if (isset($phpunitConfiguration['backupStaticAttributes']) &&
-                !isset($arguments['backupStaticAttributes'])) {
-                $arguments['backupStaticAttributes'] = $phpunitConfiguration['backupStaticAttributes'];
-            }
-
-            if (isset($phpunitConfiguration['disallowChangesToGlobalState']) &&
-                !isset($arguments['disallowChangesToGlobalState'])) {
-                $arguments['disallowChangesToGlobalState'] = $phpunitConfiguration['disallowChangesToGlobalState'];
-            }
-
-            if (isset($phpunitConfiguration['bootstrap']) &&
-                !isset($arguments['bootstrap'])) {
-                $arguments['bootstrap'] = $phpunitConfiguration['bootstrap'];
-            }
-
-            if (isset($phpunitConfiguration['cacheTokens']) &&
-                !isset($arguments['cacheTokens'])) {
-                $arguments['cacheTokens'] = $phpunitConfiguration['cacheTokens'];
-            }
-
-            if (isset($phpunitConfiguration['colors']) &&
-                !isset($arguments['colors'])) {
-                $arguments['colors'] = $phpunitConfiguration['colors'];
-            }
-
-            if (isset($phpunitConfiguration['convertErrorsToExceptions']) &&
-                !isset($arguments['convertErrorsToExceptions'])) {
-                $arguments['convertErrorsToExceptions'] = $phpunitConfiguration['convertErrorsToExceptions'];
-            }
-
-            if (isset($phpunitConfiguration['convertNoticesToExceptions']) &&
-                !isset($arguments['convertNoticesToExceptions'])) {
-                $arguments['convertNoticesToExceptions'] = $phpunitConfiguration['convertNoticesToExceptions'];
-            }
-
-            if (isset($phpunitConfiguration['convertWarningsToExceptions']) &&
-                !isset($arguments['convertWarningsToExceptions'])) {
-                $arguments['convertWarningsToExceptions'] = $phpunitConfiguration['convertWarningsToExceptions'];
-            }
-
-            if (isset($phpunitConfiguration['processIsolation']) &&
-                !isset($arguments['processIsolation'])) {
-                $arguments['processIsolation'] = $phpunitConfiguration['processIsolation'];
-            }
-
-            if (isset($phpunitConfiguration['stopOnFailure']) &&
-                !isset($arguments['stopOnFailure'])) {
-                $arguments['stopOnFailure'] = $phpunitConfiguration['stopOnFailure'];
-            }
-
-            if (isset($phpunitConfiguration['timeoutForSmallTests']) &&
-                !isset($arguments['timeoutForSmallTests'])) {
-                $arguments['timeoutForSmallTests'] = $phpunitConfiguration['timeoutForSmallTests'];
-            }
-
-            if (isset($phpunitConfiguration['timeoutForMediumTests']) &&
-                !isset($arguments['timeoutForMediumTests'])) {
-                $arguments['timeoutForMediumTests'] = $phpunitConfiguration['timeoutForMediumTests'];
-            }
-
-            if (isset($phpunitConfiguration['timeoutForLargeTests']) &&
-                !isset($arguments['timeoutForLargeTests'])) {
-                $arguments['timeoutForLargeTests'] = $phpunitConfiguration['timeoutForLargeTests'];
-            }
-
-            if (isset($phpunitConfiguration['reportUselessTests']) &&
-                !isset($arguments['reportUselessTests'])) {
-                $arguments['reportUselessTests'] = $phpunitConfiguration['reportUselessTests'];
-            }
-
-            if (isset($phpunitConfiguration['strictCoverage']) &&
-                !isset($arguments['strictCoverage'])) {
-                $arguments['strictCoverage'] = $phpunitConfiguration['strictCoverage'];
-            }
-
-            if (isset($phpunitConfiguration['disallowTestOutput']) &&
-                !isset($arguments['disallowTestOutput'])) {
-                $arguments['disallowTestOutput'] = $phpunitConfiguration['disallowTestOutput'];
-            }
-
-            if (isset($phpunitConfiguration['enforceTimeLimit']) &&
-                !isset($arguments['enforceTimeLimit'])) {
-                $arguments['enforceTimeLimit'] = $phpunitConfiguration['enforceTimeLimit'];
-            }
-
-            if (isset($phpunitConfiguration['disallowTodoAnnotatedTests']) &&
-                !isset($arguments['disallowTodoAnnotatedTests'])) {
-                $arguments['disallowTodoAnnotatedTests'] = $phpunitConfiguration['disallowTodoAnnotatedTests'];
-            }
-
-            if (isset($phpunitConfiguration['verbose']) &&
-                !isset($arguments['verbose'])) {
-                $arguments['verbose'] = $phpunitConfiguration['verbose'];
-            }
-
-            if (isset($phpunitConfiguration['forceCoversAnnotation']) &&
-                !isset($arguments['forceCoversAnnotation'])) {
-                $arguments['forceCoversAnnotation'] = $phpunitConfiguration['forceCoversAnnotation'];
-            }
-
-            if (isset($phpunitConfiguration['mapTestClassNameToCoveredClassName']) &&
-                !isset($arguments['mapTestClassNameToCoveredClassName'])) {
-                $arguments['mapTestClassNameToCoveredClassName'] = $phpunitConfiguration['mapTestClassNameToCoveredClassName'];
-            }
-
-            $groupCliArgs = array();
-            if (!empty($arguments['groups'])) {
-                $groupCliArgs = $arguments['groups'];
-            }
-
-            $groupConfiguration = $arguments['configuration']->getGroupConfiguration();
-
-            if (!empty($groupConfiguration['include']) &&
-                !isset($arguments['groups'])) {
-                $arguments['groups'] = $groupConfiguration['include'];
-            }
-
-            if (!empty($groupConfiguration['exclude']) &&
-                !isset($arguments['excludeGroups'])) {
-                $arguments['excludeGroups'] = array_diff($groupConfiguration['exclude'], $groupCliArgs);
-            }
-
-            foreach ($arguments['configuration']->getListenerConfiguration() as $listener) {
-                if (!class_exists($listener['class'], false) &&
-                    $listener['file'] !== '') {
-                    require_once $listener['file'];
-                }
-
-                if (class_exists($listener['class'])) {
-                    if (count($listener['arguments']) == 0) {
-                        $listener = new $listener['class'];
-                    } else {
-                        $listenerClass = new ReflectionClass(
-                            $listener['class']
-                        );
-                        $listener      = $listenerClass->newInstanceArgs(
-                            $listener['arguments']
-                        );
-                    }
-
-                    if ($listener instanceof PHPUnit_Framework_TestListener) {
-                        $arguments['listeners'][] = $listener;
-                    }
-                }
-            }
-
-            $loggingConfiguration = $arguments['configuration']->getLoggingConfiguration();
-
-            if (isset($loggingConfiguration['coverage-clover']) &&
-                !isset($arguments['coverageClover'])) {
-                $arguments['coverageClover'] = $loggingConfiguration['coverage-clover'];
-            }
-
-            if (isset($loggingConfiguration['coverage-crap4j']) &&
-                !isset($arguments['coverageCrap4J'])) {
-                $arguments['coverageCrap4J'] = $loggingConfiguration['coverage-crap4j'];
-            }
-
-            if (isset($loggingConfiguration['coverage-html']) &&
-                !isset($arguments['coverageHtml'])) {
-                if (isset($loggingConfiguration['lowUpperBound']) &&
-                    !isset($arguments['reportLowUpperBound'])) {
-                    $arguments['reportLowUpperBound'] = $loggingConfiguration['lowUpperBound'];
-                }
-
-                if (isset($loggingConfiguration['highLowerBound']) &&
-                    !isset($arguments['reportHighLowerBound'])) {
-                    $arguments['reportHighLowerBound'] = $loggingConfiguration['highLowerBound'];
-                }
-
-                $arguments['coverageHtml'] = $loggingConfiguration['coverage-html'];
-            }
-
-            if (isset($loggingConfiguration['coverage-php']) &&
-                !isset($arguments['coveragePHP'])) {
-                $arguments['coveragePHP'] = $loggingConfiguration['coverage-php'];
-            }
-
-            if (isset($loggingConfiguration['coverage-text']) &&
-                !isset($arguments['coverageText'])) {
-                $arguments['coverageText'] = $loggingConfiguration['coverage-text'];
-                if (isset($loggingConfiguration['coverageTextShowUncoveredFiles'])) {
-                    $arguments['coverageTextShowUncoveredFiles'] = $loggingConfiguration['coverageTextShowUncoveredFiles'];
-                } else {
-                    $arguments['coverageTextShowUncoveredFiles'] = false;
-                }
-                if (isset($loggingConfiguration['coverageTextShowOnlySummary'])) {
-                    $arguments['coverageTextShowOnlySummary'] = $loggingConfiguration['coverageTextShowOnlySummary'];
-                } else {
-                    $arguments['coverageTextShowOnlySummary'] = false;
-                }
-            }
-
-            if (isset($loggingConfiguration['coverage-xml']) &&
-                !isset($arguments['coverageXml'])) {
-                $arguments['coverageXml'] = $loggingConfiguration['coverage-xml'];
-            }
-
-            if (isset($loggingConfiguration['json']) &&
-                !isset($arguments['jsonLogfile'])) {
-                $arguments['jsonLogfile'] = $loggingConfiguration['json'];
-            }
-
-            if (isset($loggingConfiguration['plain'])) {
-                $arguments['listeners'][] = new PHPUnit_TextUI_ResultPrinter(
-                    $loggingConfiguration['plain'],
-                    true
-                );
-            }
-
-            if (isset($loggingConfiguration['tap']) &&
-                !isset($arguments['tapLogfile'])) {
-                $arguments['tapLogfile'] = $loggingConfiguration['tap'];
-            }
-
-            if (isset($loggingConfiguration['junit']) &&
-                !isset($arguments['junitLogfile'])) {
-                $arguments['junitLogfile'] = $loggingConfiguration['junit'];
-
-                if (isset($loggingConfiguration['logIncompleteSkipped']) &&
-                    !isset($arguments['logIncompleteSkipped'])) {
-                    $arguments['logIncompleteSkipped'] = $loggingConfiguration['logIncompleteSkipped'];
-                }
-            }
-
-            if (isset($loggingConfiguration['testdox-html']) &&
-                !isset($arguments['testdoxHTMLFile'])) {
-                $arguments['testdoxHTMLFile'] = $loggingConfiguration['testdox-html'];
-            }
-
-            if (isset($loggingConfiguration['testdox-text']) &&
-                !isset($arguments['testdoxTextFile'])) {
-                $arguments['testdoxTextFile'] = $loggingConfiguration['testdox-text'];
-            }
-
-            if ((isset($arguments['coverageClover']) ||
-                isset($arguments['coverageCrap4J']) ||
-                isset($arguments['coverageHtml']) ||
-                isset($arguments['coveragePHP']) ||
-                isset($arguments['coverageText']) ||
-                isset($arguments['coverageXml'])) &&
-                $this->canCollectCodeCoverage) {
-                $filterConfiguration = $arguments['configuration']->getFilterConfiguration();
-                $arguments['addUncoveredFilesFromWhitelist'] = $filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist'];
-                $arguments['processUncoveredFilesFromWhitelist'] = $filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist'];
-
-                if (empty($filterConfiguration['whitelist']['include']['directory']) &&
-                    empty($filterConfiguration['whitelist']['include']['file'])) {
-                    foreach ($filterConfiguration['blacklist']['include']['directory'] as $dir) {
-                        $this->codeCoverageFilter->addDirectoryToBlacklist(
-                            $dir['path'],
-                            $dir['suffix'],
-                            $dir['prefix'],
-                            $dir['group']
-                        );
-                    }
-
-                    foreach ($filterConfiguration['blacklist']['include']['file'] as $file) {
-                        $this->codeCoverageFilter->addFileToBlacklist($file);
-                    }
-
-                    foreach ($filterConfiguration['blacklist']['exclude']['directory'] as $dir) {
-                        $this->codeCoverageFilter->removeDirectoryFromBlacklist(
-                            $dir['path'],
-                            $dir['suffix'],
-                            $dir['prefix'],
-                            $dir['group']
-                        );
-                    }
-
-                    foreach ($filterConfiguration['blacklist']['exclude']['file'] as $file) {
-                        $this->codeCoverageFilter->removeFileFromBlacklist($file);
-                    }
-                }
-
-                foreach ($filterConfiguration['whitelist']['include']['directory'] as $dir) {
-                    $this->codeCoverageFilter->addDirectoryToWhitelist(
-                        $dir['path'],
-                        $dir['suffix'],
-                        $dir['prefix']
-                    );
-                }
-
-                foreach ($filterConfiguration['whitelist']['include']['file'] as $file) {
-                    $this->codeCoverageFilter->addFileToWhitelist($file);
-                }
-
-                foreach ($filterConfiguration['whitelist']['exclude']['directory'] as $dir) {
-                    $this->codeCoverageFilter->removeDirectoryFromWhitelist(
-                        $dir['path'],
-                        $dir['suffix'],
-                        $dir['prefix']
-                    );
-                }
-
-                foreach ($filterConfiguration['whitelist']['exclude']['file'] as $file) {
-                    $this->codeCoverageFilter->removeFileFromWhitelist($file);
-                }
-            }
-        }
-
-        $arguments['addUncoveredFilesFromWhitelist']     = isset($arguments['addUncoveredFilesFromWhitelist'])     ? $arguments['addUncoveredFilesFromWhitelist']     : true;
-        $arguments['processUncoveredFilesFromWhitelist'] = isset($arguments['processUncoveredFilesFromWhitelist']) ? $arguments['processUncoveredFilesFromWhitelist'] : false;
-        $arguments['backupGlobals']                      = isset($arguments['backupGlobals'])                      ? $arguments['backupGlobals']                      : null;
-        $arguments['backupStaticAttributes']             = isset($arguments['backupStaticAttributes'])             ? $arguments['backupStaticAttributes']             : null;
-        $arguments['disallowChangesToGlobalState']       = isset($arguments['disallowChangesToGlobalState'])       ? $arguments['disallowChangesToGlobalState']       : null;
-        $arguments['cacheTokens']                        = isset($arguments['cacheTokens'])                        ? $arguments['cacheTokens']                        : false;
-        $arguments['columns']                            = isset($arguments['columns'])                            ? $arguments['columns']                            : 80;
-        $arguments['colors']                             = isset($arguments['colors'])                             ? $arguments['colors']                             : PHPUnit_TextUI_ResultPrinter::COLOR_DEFAULT;
-        $arguments['convertErrorsToExceptions']          = isset($arguments['convertErrorsToExceptions'])          ? $arguments['convertErrorsToExceptions']          : true;
-        $arguments['convertNoticesToExceptions']         = isset($arguments['convertNoticesToExceptions'])         ? $arguments['convertNoticesToExceptions']         : true;
-        $arguments['convertWarningsToExceptions']        = isset($arguments['convertWarningsToExceptions'])        ? $arguments['convertWarningsToExceptions']        : true;
-        $arguments['excludeGroups']                      = isset($arguments['excludeGroups'])                      ? $arguments['excludeGroups']                      : array();
-        $arguments['groups']                             = isset($arguments['groups'])                             ? $arguments['groups']                             : array();
-        $arguments['logIncompleteSkipped']               = isset($arguments['logIncompleteSkipped'])               ? $arguments['logIncompleteSkipped']               : false;
-        $arguments['processIsolation']                   = isset($arguments['processIsolation'])                   ? $arguments['processIsolation']                   : false;
-        $arguments['repeat']                             = isset($arguments['repeat'])                             ? $arguments['repeat']                             : false;
-        $arguments['reportHighLowerBound']               = isset($arguments['reportHighLowerBound'])               ? $arguments['reportHighLowerBound']               : 90;
-        $arguments['reportLowUpperBound']                = isset($arguments['reportLowUpperBound'])                ? $arguments['reportLowUpperBound']                : 50;
-        $arguments['stopOnError']                        = isset($arguments['stopOnError'])                        ? $arguments['stopOnError']                        : false;
-        $arguments['stopOnFailure']                      = isset($arguments['stopOnFailure'])                      ? $arguments['stopOnFailure']                      : false;
-        $arguments['stopOnIncomplete']                   = isset($arguments['stopOnIncomplete'])                   ? $arguments['stopOnIncomplete']                   : false;
-        $arguments['stopOnRisky']                        = isset($arguments['stopOnRisky'])                        ? $arguments['stopOnRisky']                        : false;
-        $arguments['stopOnSkipped']                      = isset($arguments['stopOnSkipped'])                      ? $arguments['stopOnSkipped']                      : false;
-        $arguments['timeoutForSmallTests']               = isset($arguments['timeoutForSmallTests'])               ? $arguments['timeoutForSmallTests']               : 1;
-        $arguments['timeoutForMediumTests']              = isset($arguments['timeoutForMediumTests'])              ? $arguments['timeoutForMediumTests']              : 10;
-        $arguments['timeoutForLargeTests']               = isset($arguments['timeoutForLargeTests'])               ? $arguments['timeoutForLargeTests']               : 60;
-        $arguments['reportUselessTests']                 = isset($arguments['reportUselessTests'])                 ? $arguments['reportUselessTests']                 : false;
-        $arguments['strictCoverage']                     = isset($arguments['strictCoverage'])                     ? $arguments['strictCoverage']                     : false;
-        $arguments['disallowTestOutput']                 = isset($arguments['disallowTestOutput'])                 ? $arguments['disallowTestOutput']                 : false;
-        $arguments['enforceTimeLimit']                   = isset($arguments['enforceTimeLimit'])                   ? $arguments['enforceTimeLimit']                   : false;
-        $arguments['disallowTodoAnnotatedTests']         = isset($arguments['disallowTodoAnnotatedTests'])         ? $arguments['disallowTodoAnnotatedTests']         : false;
-        $arguments['verbose']                            = isset($arguments['verbose'])                            ? $arguments['verbose']                            : false;
-    }
-
-    /**
-     * @param $extension
-     * @param string $message
-     * @since Method available since Release 4.0.0
-     */
-    private function showExtensionNotLoadedMessage($extension, $message = '')
-    {
-        if (isset($this->missingExtensions[$extension])) {
-            return;
-        }
-
-        if (!empty($message)) {
-            $message = ' ' . $message;
-        }
-
-        $this->showMessage(
-            'The ' . $extension . ' extension is not loaded.' . $message . "\n"
-        );
-
-        $this->missingExtensions[$extension] = true;
-    }
-
-    /**
-     * Shows a message.
-     *
-     * @param string  $message
-     * @param boolean $exit
-     * @since Method available since Release 4.0.0
-     */
-    private function showMessage($message, $exit = false)
-    {
-        $this->write($message . "\n");
-
-        if ($exit) {
-            exit(self::EXCEPTION_EXIT);
-        }
-    }
-
-    /**
-     * @return PHP_CodeCoverage_Filter
-     */
-    private function getCodeCoverageFilter()
-    {
-        $filter = new PHP_CodeCoverage_Filter;
-
-        if (defined('__PHPUNIT_PHAR__')) {
-            $filter->addFileToBlacklist(__PHPUNIT_PHAR__);
-        }
-
-        $blacklist = new PHPUnit_Util_Blacklist;
-
-        foreach ($blacklist->getBlacklistedDirectories() as $directory) {
-            $filter->addDirectoryToBlacklist($directory);
-        }
-
-        return $filter;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Blacklist.php b/core/vendor/phpunit/phpunit/src/Util/Blacklist.php
deleted file mode 100644
index 367c33d..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Blacklist.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility class for blacklisting PHPUnit's own source code files.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class PHPUnit_Util_Blacklist
-{
-    /**
-     * @var array
-     */
-    public static $blacklistedClassNames = array(
-        'File_Iterator' => 1,
-        'PHP_CodeCoverage' => 1,
-        'PHP_Invoker' => 1,
-        'PHP_Timer' => 1,
-        'PHP_Token' => 1,
-        'PHPUnit_Framework_TestCase' => 2,
-        'PHPUnit_Extensions_Database_TestCase' => 2,
-        'PHPUnit_Framework_MockObject_Generator' => 2,
-        'PHPUnit_Extensions_SeleniumTestCase' => 2,
-        'PHPUnit_Extensions_Story_TestCase' => 2,
-        'Text_Template' => 1,
-        'Symfony\Component\Yaml\Yaml' => 1,
-        'SebastianBergmann\Diff\Diff' => 1,
-        'SebastianBergmann\Environment\Runtime' => 1,
-        'SebastianBergmann\Comparator\Comparator' => 1,
-        'SebastianBergmann\Exporter\Exporter' => 1,
-        'SebastianBergmann\GlobalState\Snapshot' => 1,
-        'SebastianBergmann\RecursionContext\Context' => 1,
-        'SebastianBergmann\Version' => 1,
-        'Composer\Autoload\ClassLoader' => 1,
-        'Doctrine\Instantiator\Instantiator' => 1,
-        'phpDocumentor\Reflection\DocBlock' => 1,
-        'Prophecy\Prophet' => 1
-    );
-
-    /**
-     * @var array
-     */
-    private static $directories;
-
-    /**
-     * @return array
-     * @since  Method available since Release 4.1.0
-     */
-    public function getBlacklistedDirectories()
-    {
-        $this->initialize();
-
-        return self::$directories;
-    }
-
-    /**
-     * @param  string  $file
-     * @return boolean
-     */
-    public function isBlacklisted($file)
-    {
-        if (defined('PHPUNIT_TESTSUITE')) {
-            return false;
-        }
-
-        $this->initialize();
-
-        foreach (self::$directories as $directory) {
-            if (strpos($file, $directory) === 0) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    private function initialize()
-    {
-        if (self::$directories === null) {
-            self::$directories = array();
-
-            foreach (self::$blacklistedClassNames as $className => $parent) {
-                if (!class_exists($className)) {
-                    continue;
-                }
-
-                $reflector = new ReflectionClass($className);
-                $directory = $reflector->getFileName();
-
-                for ($i = 0; $i < $parent; $i++) {
-                    $directory = dirname($directory);
-                }
-
-                self::$directories[] = $directory;
-            }
-
-            // Hide process isolation workaround on Windows.
-            // @see PHPUnit_Util_PHP::factory()
-            // @see PHPUnit_Util_PHP_Windows::process()
-            if (DIRECTORY_SEPARATOR === '\\') {
-                // tempnam() prefix is limited to first 3 chars.
-                // @see http://php.net/manual/en/function.tempnam.php
-                self::$directories[] = sys_get_temp_dir() . '\\PHP';
-            }
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Configuration.php b/core/vendor/phpunit/phpunit/src/Util/Configuration.php
deleted file mode 100644
index fb36fbb..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Configuration.php
+++ /dev/null
@@ -1,1126 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Wrapper for the PHPUnit XML configuration file.
- *
- * Example XML configuration file:
- * <code>
- * <?xml version="1.0" encoding="utf-8" ?>
- *
- * <phpunit backupGlobals="true"
- *          backupStaticAttributes="false"
- *          bootstrap="/path/to/bootstrap.php"
- *          cacheTokens="false"
- *          columns="80"
- *          colors="false"
- *          stderr="false"
- *          convertErrorsToExceptions="true"
- *          convertNoticesToExceptions="true"
- *          convertWarningsToExceptions="true"
- *          forceCoversAnnotation="false"
- *          mapTestClassNameToCoveredClassName="false"
- *          printerClass="PHPUnit_TextUI_ResultPrinter"
- *          processIsolation="false"
- *          stopOnError="false"
- *          stopOnFailure="false"
- *          stopOnIncomplete="false"
- *          stopOnRisky="false"
- *          stopOnSkipped="false"
- *          testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
- *          timeoutForSmallTests="1"
- *          timeoutForMediumTests="10"
- *          timeoutForLargeTests="60"
- *          beStrictAboutTestsThatDoNotTestAnything="false"
- *          beStrictAboutOutputDuringTests="false"
- *          beStrictAboutTestSize="false"
- *          beStrictAboutTodoAnnotatedTests="false"
- *          checkForUnintentionallyCoveredCode="false"
- *          disallowChangesToGlobalState="false"
- *          verbose="false">
- *   <testsuites>
- *     <testsuite name="My Test Suite">
- *       <directory suffix="Test.php" phpVersion="5.3.0" phpVersionOperator=">=">/path/to/files</directory>
- *       <file phpVersion="5.3.0" phpVersionOperator=">=">/path/to/MyTest.php</file>
- *       <exclude>/path/to/files/exclude</exclude>
- *     </testsuite>
- *   </testsuites>
- *
- *   <groups>
- *     <include>
- *       <group>name</group>
- *     </include>
- *     <exclude>
- *       <group>name</group>
- *     </exclude>
- *   </groups>
- *
- *   <filter>
- *     <blacklist>
- *       <directory suffix=".php">/path/to/files</directory>
- *       <file>/path/to/file</file>
- *       <exclude>
- *         <directory suffix=".php">/path/to/files</directory>
- *         <file>/path/to/file</file>
- *       </exclude>
- *     </blacklist>
- *     <whitelist addUncoveredFilesFromWhitelist="true"
- *                processUncoveredFilesFromWhitelist="false">
- *       <directory suffix=".php">/path/to/files</directory>
- *       <file>/path/to/file</file>
- *       <exclude>
- *         <directory suffix=".php">/path/to/files</directory>
- *         <file>/path/to/file</file>
- *       </exclude>
- *     </whitelist>
- *   </filter>
- *
- *   <listeners>
- *     <listener class="MyListener" file="/optional/path/to/MyListener.php">
- *       <arguments>
- *         <array>
- *           <element key="0">
- *             <string>Sebastian</string>
- *           </element>
- *         </array>
- *         <integer>22</integer>
- *         <string>April</string>
- *         <double>19.78</double>
- *         <null/>
- *         <object class="stdClass"/>
- *         <file>MyRelativeFile.php</file>
- *         <directory>MyRelativeDir</directory>
- *       </arguments>
- *     </listener>
- *   </listeners>
- *
- *   <logging>
- *     <log type="coverage-html" target="/tmp/report" lowUpperBound="50" highLowerBound="90"/>
- *     <log type="coverage-clover" target="/tmp/clover.xml"/>
- *     <log type="json" target="/tmp/logfile.json"/>
- *     <log type="plain" target="/tmp/logfile.txt"/>
- *     <log type="tap" target="/tmp/logfile.tap"/>
- *     <log type="junit" target="/tmp/logfile.xml" logIncompleteSkipped="false"/>
- *     <log type="testdox-html" target="/tmp/testdox.html"/>
- *     <log type="testdox-text" target="/tmp/testdox.txt"/>
- *     <log type="coverage-crap4j" target="/tmp/crap.xml"/>
- *   </logging>
- *
- *   <php>
- *     <includePath>.</includePath>
- *     <ini name="foo" value="bar"/>
- *     <const name="foo" value="bar"/>
- *     <var name="foo" value="bar"/>
- *     <env name="foo" value="bar"/>
- *     <post name="foo" value="bar"/>
- *     <get name="foo" value="bar"/>
- *     <cookie name="foo" value="bar"/>
- *     <server name="foo" value="bar"/>
- *     <files name="foo" value="bar"/>
- *     <request name="foo" value="bar"/>
- *   </php>
- *
- *   <selenium>
- *     <browser name="Firefox on Linux"
- *              browser="*firefox /usr/lib/firefox/firefox-bin"
- *              host="my.linux.box"
- *              port="4444"
- *              timeout="30000"/>
- *   </selenium>
- * </phpunit>
- * </code>
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.2.0
- */
-class PHPUnit_Util_Configuration
-{
-    private static $instances = array();
-
-    protected $document;
-    protected $xpath;
-    protected $filename;
-
-    /**
-     * Loads a PHPUnit configuration file.
-     *
-     * @param string $filename
-     */
-    protected function __construct($filename)
-    {
-        $this->filename = $filename;
-        $this->document = PHPUnit_Util_XML::loadFile($filename, false, true, true);
-        $this->xpath    = new DOMXPath($this->document);
-    }
-
-    /**
-     * @since  Method available since Release 3.4.0
-     */
-    final private function __clone()
-    {
-    }
-
-    /**
-     * Returns a PHPUnit configuration object.
-     *
-     * @param  string                     $filename
-     * @return PHPUnit_Util_Configuration
-     * @since  Method available since Release 3.4.0
-     */
-    public static function getInstance($filename)
-    {
-        $realpath = realpath($filename);
-
-        if ($realpath === false) {
-            throw new PHPUnit_Framework_Exception(
-                sprintf(
-                    'Could not read "%s".',
-                    $filename
-                )
-            );
-        }
-
-        if (!isset(self::$instances[$realpath])) {
-            self::$instances[$realpath] = new PHPUnit_Util_Configuration($realpath);
-        }
-
-        return self::$instances[$realpath];
-    }
-
-    /**
-     * Returns the realpath to the configuration file.
-     *
-     * @return string
-     * @since  Method available since Release 3.6.0
-     */
-    public function getFilename()
-    {
-        return $this->filename;
-    }
-
-    /**
-     * Returns the configuration for SUT filtering.
-     *
-     * @return array
-     * @since  Method available since Release 3.2.1
-     */
-    public function getFilterConfiguration()
-    {
-        $addUncoveredFilesFromWhitelist     = true;
-        $processUncoveredFilesFromWhitelist = false;
-
-        $tmp = $this->xpath->query('filter/whitelist');
-
-        if ($tmp->length == 1) {
-            if ($tmp->item(0)->hasAttribute('addUncoveredFilesFromWhitelist')) {
-                $addUncoveredFilesFromWhitelist = $this->getBoolean(
-                    (string) $tmp->item(0)->getAttribute(
-                        'addUncoveredFilesFromWhitelist'
-                    ),
-                    true
-                );
-            }
-
-            if ($tmp->item(0)->hasAttribute('processUncoveredFilesFromWhitelist')) {
-                $processUncoveredFilesFromWhitelist = $this->getBoolean(
-                    (string) $tmp->item(0)->getAttribute(
-                        'processUncoveredFilesFromWhitelist'
-                    ),
-                    false
-                );
-            }
-        }
-
-        return array(
-          'blacklist' => array(
-            'include' => array(
-              'directory' => $this->readFilterDirectories(
-                  'filter/blacklist/directory'
-              ),
-              'file' => $this->readFilterFiles(
-                  'filter/blacklist/file'
-              )
-            ),
-            'exclude' => array(
-              'directory' => $this->readFilterDirectories(
-                  'filter/blacklist/exclude/directory'
-              ),
-              'file' => $this->readFilterFiles(
-                  'filter/blacklist/exclude/file'
-              )
-            )
-          ),
-          'whitelist' => array(
-            'addUncoveredFilesFromWhitelist' => $addUncoveredFilesFromWhitelist,
-            'processUncoveredFilesFromWhitelist' => $processUncoveredFilesFromWhitelist,
-            'include' => array(
-              'directory' => $this->readFilterDirectories(
-                  'filter/whitelist/directory'
-              ),
-              'file' => $this->readFilterFiles(
-                  'filter/whitelist/file'
-              )
-            ),
-            'exclude' => array(
-              'directory' => $this->readFilterDirectories(
-                  'filter/whitelist/exclude/directory'
-              ),
-              'file' => $this->readFilterFiles(
-                  'filter/whitelist/exclude/file'
-              )
-            )
-          )
-        );
-    }
-
-    /**
-     * Returns the configuration for groups.
-     *
-     * @return array
-     * @since  Method available since Release 3.2.1
-     */
-    public function getGroupConfiguration()
-    {
-        $groups = array(
-          'include' => array(),
-          'exclude' => array()
-        );
-
-        foreach ($this->xpath->query('groups/include/group') as $group) {
-            $groups['include'][] = (string) $group->nodeValue;
-        }
-
-        foreach ($this->xpath->query('groups/exclude/group') as $group) {
-            $groups['exclude'][] = (string) $group->nodeValue;
-        }
-
-        return $groups;
-    }
-
-    /**
-     * Returns the configuration for listeners.
-     *
-     * @return array
-     * @since  Method available since Release 3.4.0
-     */
-    public function getListenerConfiguration()
-    {
-        $result = array();
-
-        foreach ($this->xpath->query('listeners/listener') as $listener) {
-            $class     = (string) $listener->getAttribute('class');
-            $file      = '';
-            $arguments = array();
-
-            if ($listener->getAttribute('file')) {
-                $file = $this->toAbsolutePath(
-                    (string) $listener->getAttribute('file'),
-                    true
-                );
-            }
-
-            foreach ($listener->childNodes as $node) {
-                if ($node instanceof DOMElement && $node->tagName == 'arguments') {
-                    foreach ($node->childNodes as $argument) {
-                        if ($argument instanceof DOMElement) {
-                            if ($argument->tagName == 'file' ||
-                            $argument->tagName == 'directory') {
-                                $arguments[] = $this->toAbsolutePath((string) $argument->nodeValue);
-                            } else {
-                                $arguments[] = PHPUnit_Util_XML::xmlToVariable($argument);
-                            }
-                        }
-                    }
-                }
-            }
-
-            $result[] = array(
-              'class'     => $class,
-              'file'      => $file,
-              'arguments' => $arguments
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * Returns the logging configuration.
-     *
-     * @return array
-     */
-    public function getLoggingConfiguration()
-    {
-        $result = array();
-
-        foreach ($this->xpath->query('logging/log') as $log) {
-            $type = (string) $log->getAttribute('type');
-            $target = (string) $log->getAttribute('target');
-
-            if (!$target) {
-                continue;
-            }
-
-            $target = $this->toAbsolutePath($target);
-
-            if ($type == 'coverage-html') {
-                if ($log->hasAttribute('lowUpperBound')) {
-                    $result['lowUpperBound'] = (string) $log->getAttribute('lowUpperBound');
-                }
-
-                if ($log->hasAttribute('highLowerBound')) {
-                    $result['highLowerBound'] = (string) $log->getAttribute('highLowerBound');
-                }
-            } elseif ($type == 'junit') {
-                if ($log->hasAttribute('logIncompleteSkipped')) {
-                    $result['logIncompleteSkipped'] = $this->getBoolean(
-                        (string) $log->getAttribute('logIncompleteSkipped'),
-                        false
-                    );
-                }
-            } elseif ($type == 'coverage-text') {
-                if ($log->hasAttribute('showUncoveredFiles')) {
-                    $result['coverageTextShowUncoveredFiles'] = $this->getBoolean(
-                        (string) $log->getAttribute('showUncoveredFiles'),
-                        false
-                    );
-                }
-                if ($log->hasAttribute('showOnlySummary')) {
-                    $result['coverageTextShowOnlySummary'] = $this->getBoolean(
-                        (string) $log->getAttribute('showOnlySummary'),
-                        false
-                    );
-                }
-            }
-
-            $result[$type] = $target;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Returns the PHP configuration.
-     *
-     * @return array
-     * @since  Method available since Release 3.2.1
-     */
-    public function getPHPConfiguration()
-    {
-        $result = array(
-          'include_path' => array(),
-          'ini'          => array(),
-          'const'        => array(),
-          'var'          => array(),
-          'env'          => array(),
-          'post'         => array(),
-          'get'          => array(),
-          'cookie'       => array(),
-          'server'       => array(),
-          'files'        => array(),
-          'request'      => array()
-        );
-
-        foreach ($this->xpath->query('php/includePath') as $includePath) {
-            $path = (string) $includePath->nodeValue;
-            if ($path) {
-                $result['include_path'][] = $this->toAbsolutePath($path);
-            }
-        }
-
-        foreach ($this->xpath->query('php/ini') as $ini) {
-            $name  = (string) $ini->getAttribute('name');
-            $value = (string) $ini->getAttribute('value');
-
-            $result['ini'][$name] = $value;
-        }
-
-        foreach ($this->xpath->query('php/const') as $const) {
-            $name  = (string) $const->getAttribute('name');
-            $value = (string) $const->getAttribute('value');
-
-            $result['const'][$name] = $this->getBoolean($value, $value);
-        }
-
-        foreach (array('var', 'env', 'post', 'get', 'cookie', 'server', 'files', 'request') as $array) {
-            foreach ($this->xpath->query('php/' . $array) as $var) {
-                $name  = (string) $var->getAttribute('name');
-                $value = (string) $var->getAttribute('value');
-
-                $result[$array][$name] = $this->getBoolean($value, $value);
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Handles the PHP configuration.
-     *
-     * @since  Method available since Release 3.2.20
-     */
-    public function handlePHPConfiguration()
-    {
-        $configuration = $this->getPHPConfiguration();
-
-        if (! empty($configuration['include_path'])) {
-            ini_set(
-                'include_path',
-                implode(PATH_SEPARATOR, $configuration['include_path']) .
-                PATH_SEPARATOR .
-                ini_get('include_path')
-            );
-        }
-
-        foreach ($configuration['ini'] as $name => $value) {
-            if (defined($value)) {
-                $value = constant($value);
-            }
-
-            ini_set($name, $value);
-        }
-
-        foreach ($configuration['const'] as $name => $value) {
-            if (!defined($name)) {
-                define($name, $value);
-            }
-        }
-
-        foreach (array('var', 'post', 'get', 'cookie', 'server', 'files', 'request') as $array) {
-            // See https://github.com/sebastianbergmann/phpunit/issues/277
-            switch ($array) {
-                case 'var':
-                    $target = &$GLOBALS;
-                    break;
-
-                case 'server':
-                    $target = &$_SERVER;
-                    break;
-
-                default:
-                    $target = &$GLOBALS['_' . strtoupper($array)];
-                    break;
-            }
-
-            foreach ($configuration[$array] as $name => $value) {
-                $target[$name] = $value;
-            }
-        }
-
-        foreach ($configuration['env'] as $name => $value) {
-            if (false === getenv($name)) {
-                putenv("{$name}={$value}");
-            }
-            if (!isset($_ENV[$name])) {
-                $_ENV[$name] = $value;
-            }
-        }
-    }
-
-    /**
-     * Returns the PHPUnit configuration.
-     *
-     * @return array
-     * @since  Method available since Release 3.2.14
-     */
-    public function getPHPUnitConfiguration()
-    {
-        $result = array();
-        $root   = $this->document->documentElement;
-
-        if ($root->hasAttribute('cacheTokens')) {
-            $result['cacheTokens'] = $this->getBoolean(
-                (string) $root->getAttribute('cacheTokens'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('columns')) {
-            $columns = (string) $root->getAttribute('columns');
-
-            if ($columns == 'max') {
-                $result['columns'] = 'max';
-            } else {
-                $result['columns'] = $this->getInteger($columns, 80);
-            }
-        }
-
-        if ($root->hasAttribute('colors')) {
-            /* only allow boolean for compatibility with previous versions
-              'always' only allowed from command line */
-            if ($this->getBoolean($root->getAttribute('colors'), false)) {
-                $result['colors'] = PHPUnit_TextUI_ResultPrinter::COLOR_AUTO;
-            } else {
-                $result['colors'] = PHPUnit_TextUI_ResultPrinter::COLOR_NEVER;
-            }
-        }
-
-        /**
-         * Issue #657
-         */
-        if ($root->hasAttribute('stderr')) {
-            $result['stderr'] = $this->getBoolean(
-                (string)$root->getAttribute('stderr'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('backupGlobals')) {
-            $result['backupGlobals'] = $this->getBoolean(
-                (string) $root->getAttribute('backupGlobals'),
-                true
-            );
-        }
-
-        if ($root->hasAttribute('backupStaticAttributes')) {
-            $result['backupStaticAttributes'] = $this->getBoolean(
-                (string) $root->getAttribute('backupStaticAttributes'),
-                false
-            );
-        }
-
-        if ($root->getAttribute('bootstrap')) {
-            $result['bootstrap'] = $this->toAbsolutePath(
-                (string) $root->getAttribute('bootstrap')
-            );
-        }
-
-        if ($root->hasAttribute('convertErrorsToExceptions')) {
-            $result['convertErrorsToExceptions'] = $this->getBoolean(
-                (string) $root->getAttribute('convertErrorsToExceptions'),
-                true
-            );
-        }
-
-        if ($root->hasAttribute('convertNoticesToExceptions')) {
-            $result['convertNoticesToExceptions'] = $this->getBoolean(
-                (string) $root->getAttribute('convertNoticesToExceptions'),
-                true
-            );
-        }
-
-        if ($root->hasAttribute('convertWarningsToExceptions')) {
-            $result['convertWarningsToExceptions'] = $this->getBoolean(
-                (string) $root->getAttribute('convertWarningsToExceptions'),
-                true
-            );
-        }
-
-        if ($root->hasAttribute('forceCoversAnnotation')) {
-            $result['forceCoversAnnotation'] = $this->getBoolean(
-                (string) $root->getAttribute('forceCoversAnnotation'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('mapTestClassNameToCoveredClassName')) {
-            $result['mapTestClassNameToCoveredClassName'] = $this->getBoolean(
-                (string) $root->getAttribute('mapTestClassNameToCoveredClassName'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('processIsolation')) {
-            $result['processIsolation'] = $this->getBoolean(
-                (string) $root->getAttribute('processIsolation'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('stopOnError')) {
-            $result['stopOnError'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnError'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('stopOnFailure')) {
-            $result['stopOnFailure'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnFailure'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('stopOnIncomplete')) {
-            $result['stopOnIncomplete'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnIncomplete'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('stopOnRisky')) {
-            $result['stopOnRisky'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnRisky'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('stopOnSkipped')) {
-            $result['stopOnSkipped'] = $this->getBoolean(
-                (string) $root->getAttribute('stopOnSkipped'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('testSuiteLoaderClass')) {
-            $result['testSuiteLoaderClass'] = (string) $root->getAttribute(
-                'testSuiteLoaderClass'
-            );
-        }
-
-        if ($root->getAttribute('testSuiteLoaderFile')) {
-            $result['testSuiteLoaderFile'] = $this->toAbsolutePath(
-                (string) $root->getAttribute('testSuiteLoaderFile')
-            );
-        }
-
-        if ($root->hasAttribute('printerClass')) {
-            $result['printerClass'] = (string) $root->getAttribute(
-                'printerClass'
-            );
-        }
-
-        if ($root->getAttribute('printerFile')) {
-            $result['printerFile'] = $this->toAbsolutePath(
-                (string) $root->getAttribute('printerFile')
-            );
-        }
-
-        if ($root->hasAttribute('timeoutForSmallTests')) {
-            $result['timeoutForSmallTests'] = $this->getInteger(
-                (string) $root->getAttribute('timeoutForSmallTests'),
-                1
-            );
-        }
-
-        if ($root->hasAttribute('timeoutForMediumTests')) {
-            $result['timeoutForMediumTests'] = $this->getInteger(
-                (string) $root->getAttribute('timeoutForMediumTests'),
-                10
-            );
-        }
-
-        if ($root->hasAttribute('timeoutForLargeTests')) {
-            $result['timeoutForLargeTests'] = $this->getInteger(
-                (string) $root->getAttribute('timeoutForLargeTests'),
-                60
-            );
-        }
-
-        if ($root->hasAttribute('beStrictAboutTestsThatDoNotTestAnything')) {
-            $result['reportUselessTests'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutTestsThatDoNotTestAnything'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('checkForUnintentionallyCoveredCode')) {
-            $result['strictCoverage'] = $this->getBoolean(
-                (string) $root->getAttribute('checkForUnintentionallyCoveredCode'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('beStrictAboutOutputDuringTests')) {
-            $result['disallowTestOutput'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutOutputDuringTests'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('beStrictAboutChangesToGlobalState')) {
-            $result['disallowChangesToGlobalState'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutChangesToGlobalState'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('beStrictAboutTestSize')) {
-            $result['enforceTimeLimit'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutTestSize'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('beStrictAboutTodoAnnotatedTests')) {
-            $result['disallowTodoAnnotatedTests'] = $this->getBoolean(
-                (string) $root->getAttribute('beStrictAboutTodoAnnotatedTests'),
-                false
-            );
-        }
-
-        if ($root->hasAttribute('strict')) {
-            $flag = $this->getBoolean(
-                (string) $root->getAttribute('strict'),
-                false
-            );
-
-            $result['reportUselessTests']          = $flag;
-            $result['strictCoverage']              = $flag;
-            $result['disallowTestOutput']          = $flag;
-            $result['enforceTimeLimit']            = $flag;
-            $result['disallowTodoAnnotatedTests']  = $flag;
-            $result['deprecatedStrictModeSetting'] = true;
-        }
-
-        if ($root->hasAttribute('verbose')) {
-            $result['verbose'] = $this->getBoolean(
-                (string) $root->getAttribute('verbose'),
-                false
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * Returns the SeleniumTestCase browser configuration.
-     *
-     * @return array
-     * @since  Method available since Release 3.2.9
-     */
-    public function getSeleniumBrowserConfiguration()
-    {
-        $result = array();
-
-        foreach ($this->xpath->query('selenium/browser') as $config) {
-            $name    = (string) $config->getAttribute('name');
-            $browser = (string) $config->getAttribute('browser');
-
-            if ($config->hasAttribute('host')) {
-                $host = (string) $config->getAttribute('host');
-            } else {
-                $host = 'localhost';
-            }
-
-            if ($config->hasAttribute('port')) {
-                $port = $this->getInteger(
-                    (string) $config->getAttribute('port'),
-                    4444
-                );
-            } else {
-                $port = 4444;
-            }
-
-            if ($config->hasAttribute('timeout')) {
-                $timeout = $this->getInteger(
-                    (string) $config->getAttribute('timeout'),
-                    30000
-                );
-            } else {
-                $timeout = 30000;
-            }
-
-            $result[] = array(
-              'name'    => $name,
-              'browser' => $browser,
-              'host'    => $host,
-              'port'    => $port,
-              'timeout' => $timeout
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * Returns the test suite configuration.
-     *
-     * @return PHPUnit_Framework_TestSuite
-     * @since  Method available since Release 3.2.1
-     */
-    public function getTestSuiteConfiguration($testSuiteFilter = null)
-    {
-        $testSuiteNodes = $this->xpath->query('testsuites/testsuite');
-
-        if ($testSuiteNodes->length == 0) {
-            $testSuiteNodes = $this->xpath->query('testsuite');
-        }
-
-        if ($testSuiteNodes->length == 1) {
-            return $this->getTestSuite($testSuiteNodes->item(0), $testSuiteFilter);
-        }
-
-        if ($testSuiteNodes->length > 1) {
-            $suite = new PHPUnit_Framework_TestSuite;
-
-            foreach ($testSuiteNodes as $testSuiteNode) {
-                $suite->addTestSuite(
-                    $this->getTestSuite($testSuiteNode, $testSuiteFilter)
-                );
-            }
-
-            return $suite;
-        }
-    }
-
-    /**
-     * @param  DOMElement                  $testSuiteNode
-     * @return PHPUnit_Framework_TestSuite
-     * @since  Method available since Release 3.4.0
-     */
-    protected function getTestSuite(DOMElement $testSuiteNode, $testSuiteFilter = null)
-    {
-        if ($testSuiteNode->hasAttribute('name')) {
-            $suite = new PHPUnit_Framework_TestSuite(
-                (string) $testSuiteNode->getAttribute('name')
-            );
-        } else {
-            $suite = new PHPUnit_Framework_TestSuite;
-        }
-
-        $exclude = array();
-
-        foreach ($testSuiteNode->getElementsByTagName('exclude') as $excludeNode) {
-            $excludeFile = (string) $excludeNode->nodeValue;
-            if ($excludeFile) {
-                $exclude[] = $this->toAbsolutePath($excludeFile);
-            }
-        }
-
-        $fileIteratorFacade = new File_Iterator_Facade;
-
-        foreach ($testSuiteNode->getElementsByTagName('directory') as $directoryNode) {
-            if ($testSuiteFilter && $directoryNode->parentNode->getAttribute('name') != $testSuiteFilter) {
-                continue;
-            }
-
-            $directory = (string) $directoryNode->nodeValue;
-
-            if (empty($directory)) {
-                continue;
-            }
-
-            if ($directoryNode->hasAttribute('phpVersion')) {
-                $phpVersion = (string) $directoryNode->getAttribute('phpVersion');
-            } else {
-                $phpVersion = PHP_VERSION;
-            }
-
-            if ($directoryNode->hasAttribute('phpVersionOperator')) {
-                $phpVersionOperator = (string) $directoryNode->getAttribute('phpVersionOperator');
-            } else {
-                $phpVersionOperator = '>=';
-            }
-
-            if (!version_compare(PHP_VERSION, $phpVersion, $phpVersionOperator)) {
-                continue;
-            }
-
-            if ($directoryNode->hasAttribute('prefix')) {
-                $prefix = (string) $directoryNode->getAttribute('prefix');
-            } else {
-                $prefix = '';
-            }
-
-            if ($directoryNode->hasAttribute('suffix')) {
-                $suffix = (string) $directoryNode->getAttribute('suffix');
-            } else {
-                $suffix = 'Test.php';
-            }
-
-            $files = $fileIteratorFacade->getFilesAsArray(
-                $this->toAbsolutePath($directory),
-                $suffix,
-                $prefix,
-                $exclude
-            );
-            $suite->addTestFiles($files);
-        }
-
-        foreach ($testSuiteNode->getElementsByTagName('file') as $fileNode) {
-            if ($testSuiteFilter && $fileNode->parentNode->getAttribute('name') != $testSuiteFilter) {
-                continue;
-            }
-
-            $file = (string) $fileNode->nodeValue;
-
-            if (empty($file)) {
-                continue;
-            }
-
-            // Get the absolute path to the file
-            $file = $fileIteratorFacade->getFilesAsArray(
-                $this->toAbsolutePath($file)
-            );
-
-            if (!isset($file[0])) {
-                continue;
-            }
-
-            $file = $file[0];
-
-            if ($fileNode->hasAttribute('phpVersion')) {
-                $phpVersion = (string) $fileNode->getAttribute('phpVersion');
-            } else {
-                $phpVersion = PHP_VERSION;
-            }
-
-            if ($fileNode->hasAttribute('phpVersionOperator')) {
-                $phpVersionOperator = (string) $fileNode->getAttribute('phpVersionOperator');
-            } else {
-                $phpVersionOperator = '>=';
-            }
-
-            if (!version_compare(PHP_VERSION, $phpVersion, $phpVersionOperator)) {
-                continue;
-            }
-
-            $suite->addTestFile($file);
-        }
-
-        return $suite;
-    }
-
-    /**
-     * @param  string  $value
-     * @param  boolean $default
-     * @return boolean
-     * @since  Method available since Release 3.2.3
-     */
-    protected function getBoolean($value, $default)
-    {
-        if (strtolower($value) == 'false') {
-            return false;
-        } elseif (strtolower($value) == 'true') {
-            return true;
-        }
-
-        return $default;
-    }
-
-    /**
-     * @param  string  $value
-     * @param  boolean $default
-     * @return boolean
-     * @since  Method available since Release 3.6.0
-     */
-    protected function getInteger($value, $default)
-    {
-        if (is_numeric($value)) {
-            return (int) $value;
-        }
-
-        return $default;
-    }
-
-    /**
-     * @param  string $query
-     * @return array
-     * @since  Method available since Release 3.2.3
-     */
-    protected function readFilterDirectories($query)
-    {
-        $directories = array();
-
-        foreach ($this->xpath->query($query) as $directory) {
-            $directoryPath = (string) $directory->nodeValue;
-
-            if (!$directoryPath) {
-                continue;
-            }
-
-            if ($directory->hasAttribute('prefix')) {
-                $prefix = (string) $directory->getAttribute('prefix');
-            } else {
-                $prefix = '';
-            }
-
-            if ($directory->hasAttribute('suffix')) {
-                $suffix = (string) $directory->getAttribute('suffix');
-            } else {
-                $suffix = '.php';
-            }
-
-            if ($directory->hasAttribute('group')) {
-                $group = (string) $directory->getAttribute('group');
-            } else {
-                $group = 'DEFAULT';
-            }
-
-            $directories[] = array(
-              'path'   => $this->toAbsolutePath($directoryPath),
-              'prefix' => $prefix,
-              'suffix' => $suffix,
-              'group'  => $group
-            );
-        }
-
-        return $directories;
-    }
-
-    /**
-     * @param  string $query
-     * @return array
-     * @since  Method available since Release 3.2.3
-     */
-    protected function readFilterFiles($query)
-    {
-        $files = array();
-
-        foreach ($this->xpath->query($query) as $file) {
-            $filePath = (string) $file->nodeValue;
-            if ($filePath) {
-                $files[] = $this->toAbsolutePath($filePath);
-            }
-        }
-
-        return $files;
-    }
-
-    /**
-     * @param  string  $path
-     * @param  boolean $useIncludePath
-     * @return string
-     * @since  Method available since Release 3.5.0
-     */
-    protected function toAbsolutePath($path, $useIncludePath = false)
-    {
-        if ($path[0] === '/') {
-            return $path;
-        }
-
-        // Matches the following on Windows:
-        //  - \\NetworkComputer\Path
-        //  - \\.\D:
-        //  - \\.\c:
-        //  - C:\Windows
-        //  - C:\windows
-        //  - C:/windows
-        //  - c:/windows
-        if (defined('PHP_WINDOWS_VERSION_BUILD') &&
-            ($path[0] === '\\' ||
-            (strlen($path) >= 3 && preg_match('#^[A-Z]\:[/\\\]#i', substr($path, 0, 3))))) {
-            return $path;
-        }
-
-        // Stream
-        if (strpos($path, '://') !== false) {
-            return $path;
-        }
-
-        $file = dirname($this->filename) . DIRECTORY_SEPARATOR . $path;
-
-        if ($useIncludePath && !file_exists($file)) {
-            $includePathFile = stream_resolve_include_path($path);
-
-            if ($includePathFile) {
-                $file = $includePathFile;
-            }
-        }
-
-        return $file;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/ErrorHandler.php b/core/vendor/phpunit/phpunit/src/Util/ErrorHandler.php
deleted file mode 100644
index d56a37d..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/ErrorHandler.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-// Workaround for http://bugs.php.net/bug.php?id=47987,
-// see https://github.com/sebastianbergmann/phpunit/issues#issue/125 for details
-require_once __DIR__ . '/../Framework/Error.php';
-require_once __DIR__ . '/../Framework/Error/Notice.php';
-require_once __DIR__ . '/../Framework/Error/Warning.php';
-require_once __DIR__ . '/../Framework/Error/Deprecated.php';
-
-/**
- * Error handler that converts PHP errors and warnings to exceptions.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class PHPUnit_Util_ErrorHandler
-{
-    protected static $errorStack = array();
-
-    /**
-     * Returns the error stack.
-     *
-     * @return array
-     */
-    public static function getErrorStack()
-    {
-        return self::$errorStack;
-    }
-
-    /**
-     * @param  integer                 $errno
-     * @param  string                  $errstr
-     * @param  string                  $errfile
-     * @param  integer                 $errline
-     * @throws PHPUnit_Framework_Error
-     */
-    public static function handleError($errno, $errstr, $errfile, $errline)
-    {
-        if (!($errno & error_reporting())) {
-            return false;
-        }
-
-        self::$errorStack[] = array($errno, $errstr, $errfile, $errline);
-
-        $trace = debug_backtrace(false);
-        array_shift($trace);
-
-        foreach ($trace as $frame) {
-            if ($frame['function'] == '__toString') {
-                return false;
-            }
-        }
-
-        if ($errno == E_NOTICE || $errno == E_USER_NOTICE || $errno == E_STRICT) {
-            if (PHPUnit_Framework_Error_Notice::$enabled !== true) {
-                return false;
-            }
-
-            $exception = 'PHPUnit_Framework_Error_Notice';
-        } elseif ($errno == E_WARNING || $errno == E_USER_WARNING) {
-            if (PHPUnit_Framework_Error_Warning::$enabled !== true) {
-                return false;
-            }
-
-            $exception = 'PHPUnit_Framework_Error_Warning';
-        } elseif ($errno == E_DEPRECATED || $errno == E_USER_DEPRECATED) {
-            if (PHPUnit_Framework_Error_Deprecated::$enabled !== true) {
-                return false;
-            }
-
-            $exception = 'PHPUnit_Framework_Error_Deprecated';
-        } else {
-            $exception = 'PHPUnit_Framework_Error';
-        }
-
-        throw new $exception($errstr, $errno, $errfile, $errline);
-    }
-
-    /**
-     * Registers an error handler and returns a function that will restore
-     * the previous handler when invoked
-     * @param  integer   $severity PHP predefined error constant
-     * @link   http://www.php.net/manual/en/errorfunc.constants.php
-     * @throws Exception if event of specified severity is emitted
-     */
-    public static function handleErrorOnce($severity = E_WARNING)
-    {
-        $terminator = function () {
-            static $expired = false;
-            if (!$expired) {
-                $expired = true;
-                // cleans temporary error handler
-                return restore_error_handler();
-            }
-        };
-
-        set_error_handler(function ($errno, $errstr) use ($severity) {
-            if ($errno === $severity) {
-                return;
-            }
-
-            return false;
-        });
-
-        return $terminator;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Fileloader.php b/core/vendor/phpunit/phpunit/src/Util/Fileloader.php
deleted file mode 100644
index 8e4b7cf..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Fileloader.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility methods to load PHP sourcefiles.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.3.0
- */
-class PHPUnit_Util_Fileloader
-{
-    /**
-     * Checks if a PHP sourcefile is readable.
-     * The sourcefile is loaded through the load() method.
-     *
-     * @param  string                      $filename
-     * @return string
-     * @throws PHPUnit_Framework_Exception
-     */
-    public static function checkAndLoad($filename)
-    {
-        $includePathFilename = stream_resolve_include_path($filename);
-
-        if (!$includePathFilename || !is_readable($includePathFilename)) {
-            throw new PHPUnit_Framework_Exception(
-                sprintf('Cannot open file "%s".' . "\n", $filename)
-            );
-        }
-
-        self::load($includePathFilename);
-
-        return $includePathFilename;
-    }
-
-    /**
-     * Loads a PHP sourcefile.
-     *
-     * @param  string $filename
-     * @return mixed
-     * @since  Method available since Release 3.0.0
-     */
-    public static function load($filename)
-    {
-        $oldVariableNames = array_keys(get_defined_vars());
-
-        include_once $filename;
-
-        $newVariables     = get_defined_vars();
-        $newVariableNames = array_diff(
-            array_keys($newVariables),
-            $oldVariableNames
-        );
-
-        foreach ($newVariableNames as $variableName) {
-            if ($variableName != 'oldVariableNames') {
-                $GLOBALS[$variableName] = $newVariables[$variableName];
-            }
-        }
-
-        return $filename;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Filesystem.php b/core/vendor/phpunit/phpunit/src/Util/Filesystem.php
deleted file mode 100644
index 31d98f5..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Filesystem.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Filesystem helpers.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Util_Filesystem
-{
-    /**
-     * @var array
-     */
-    protected static $buffer = array();
-
-    /**
-     * Maps class names to source file names:
-     *   - PEAR CS:   Foo_Bar_Baz -> Foo/Bar/Baz.php
-     *   - Namespace: Foo\Bar\Baz -> Foo/Bar/Baz.php
-     *
-     * @param  string $className
-     * @return string
-     * @since  Method available since Release 3.4.0
-     */
-    public static function classNameToFilename($className)
-    {
-        return str_replace(
-            array('_', '\\'),
-            DIRECTORY_SEPARATOR,
-            $className
-        ) . '.php';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Filter.php b/core/vendor/phpunit/phpunit/src/Util/Filter.php
deleted file mode 100644
index 4f6ce30..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Filter.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility class for code filtering.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Util_Filter
-{
-    /**
-     * Filters stack frames from PHPUnit classes.
-     *
-     * @param  Exception $e
-     * @param  boolean   $asString
-     * @return string
-     */
-    public static function getFilteredStacktrace(Exception $e, $asString = true)
-    {
-        $prefix = false;
-        $script = realpath($GLOBALS['_SERVER']['SCRIPT_NAME']);
-
-        if (defined('__PHPUNIT_PHAR_ROOT__')) {
-            $prefix = __PHPUNIT_PHAR_ROOT__;
-        }
-
-        if ($asString === true) {
-            $filteredStacktrace = '';
-        } else {
-            $filteredStacktrace = array();
-        }
-
-        if ($e instanceof PHPUnit_Framework_SyntheticError) {
-            $eTrace = $e->getSyntheticTrace();
-            $eFile  = $e->getSyntheticFile();
-            $eLine  = $e->getSyntheticLine();
-        } elseif ($e instanceof PHPUnit_Framework_Exception) {
-            $eTrace = $e->getSerializableTrace();
-            $eFile  = $e->getFile();
-            $eLine  = $e->getLine();
-        } else {
-            if ($e->getPrevious()) {
-                $e = $e->getPrevious();
-            }
-            $eTrace = $e->getTrace();
-            $eFile  = $e->getFile();
-            $eLine  = $e->getLine();
-        }
-
-        if (!self::frameExists($eTrace, $eFile, $eLine)) {
-            array_unshift(
-                $eTrace,
-                array('file' => $eFile, 'line' => $eLine)
-            );
-        }
-
-        $blacklist = new PHPUnit_Util_Blacklist;
-
-        foreach ($eTrace as $frame) {
-            if (isset($frame['file']) && is_file($frame['file']) &&
-                !$blacklist->isBlacklisted($frame['file']) &&
-                ($prefix === false || strpos($frame['file'], $prefix) !== 0) &&
-                $frame['file'] !== $script) {
-                if ($asString === true) {
-                    $filteredStacktrace .= sprintf(
-                        "%s:%s\n",
-                        $frame['file'],
-                        isset($frame['line']) ? $frame['line'] : '?'
-                    );
-                } else {
-                    $filteredStacktrace[] = $frame;
-                }
-            }
-        }
-
-        return $filteredStacktrace;
-    }
-
-    /**
-     * @param  array   $trace
-     * @param  string  $file
-     * @param  int     $line
-     * @return boolean
-     * @since  Method available since Release 3.3.2
-     */
-    private static function frameExists(array $trace, $file, $line)
-    {
-        foreach ($trace as $frame) {
-            if (isset($frame['file']) && $frame['file'] == $file &&
-                isset($frame['line']) && $frame['line'] == $line) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Getopt.php b/core/vendor/phpunit/phpunit/src/Util/Getopt.php
deleted file mode 100644
index c234e68..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Getopt.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Command-line options parsing class.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Andrei Zmievski <andrei@php.net>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Util_Getopt
-{
-    public static function getopt(array $args, $short_options, $long_options = null)
-    {
-        if (empty($args)) {
-            return array(array(), array());
-        }
-
-        $opts     = array();
-        $non_opts = array();
-
-        if ($long_options) {
-            sort($long_options);
-        }
-
-        if (isset($args[0][0]) && $args[0][0] != '-') {
-            array_shift($args);
-        }
-
-        reset($args);
-        array_map('trim', $args);
-
-        while (list($i, $arg) = each($args)) {
-            if ($arg == '') {
-                continue;
-            }
-
-            if ($arg == '--') {
-                $non_opts = array_merge($non_opts, array_slice($args, $i + 1));
-                break;
-            }
-
-            if ($arg[0] != '-' ||
-                (strlen($arg) > 1 && $arg[1] == '-' && !$long_options)) {
-                $non_opts = array_merge($non_opts, array_slice($args, $i));
-                break;
-            } elseif (strlen($arg) > 1 && $arg[1] == '-') {
-                self::parseLongOption(
-                    substr($arg, 2),
-                    $long_options,
-                    $opts,
-                    $args
-                );
-            } else {
-                self::parseShortOption(
-                    substr($arg, 1),
-                    $short_options,
-                    $opts,
-                    $args
-                );
-            }
-        }
-
-        return array($opts, $non_opts);
-    }
-
-    protected static function parseShortOption($arg, $short_options, &$opts, &$args)
-    {
-        $argLen = strlen($arg);
-
-        for ($i = 0; $i < $argLen; $i++) {
-            $opt     = $arg[$i];
-            $opt_arg = null;
-
-            if (($spec = strstr($short_options, $opt)) === false ||
-                $arg[$i] == ':') {
-                throw new PHPUnit_Framework_Exception(
-                    "unrecognized option -- $opt"
-                );
-            }
-
-            if (strlen($spec) > 1 && $spec[1] == ':') {
-                if (strlen($spec) > 2 && $spec[2] == ':') {
-                    if ($i + 1 < $argLen) {
-                        $opts[] = array($opt, substr($arg, $i + 1));
-                        break;
-                    }
-                } else {
-                    if ($i + 1 < $argLen) {
-                        $opts[] = array($opt, substr($arg, $i + 1));
-                        break;
-                    } elseif (list(, $opt_arg) = each($args)) {
-                    } else {
-                        throw new PHPUnit_Framework_Exception(
-                            "option requires an argument -- $opt"
-                        );
-                    }
-                }
-            }
-
-            $opts[] = array($opt, $opt_arg);
-        }
-    }
-
-    protected static function parseLongOption($arg, $long_options, &$opts, &$args)
-    {
-        $count   = count($long_options);
-        $list    = explode('=', $arg);
-        $opt     = $list[0];
-        $opt_arg = null;
-
-        if (count($list) > 1) {
-            $opt_arg = $list[1];
-        }
-
-        $opt_len = strlen($opt);
-
-        for ($i = 0; $i < $count; $i++) {
-            $long_opt  = $long_options[$i];
-            $opt_start = substr($long_opt, 0, $opt_len);
-
-            if ($opt_start != $opt) {
-                continue;
-            }
-
-            $opt_rest = substr($long_opt, $opt_len);
-
-            if ($opt_rest != '' && $opt[0] != '=' && $i + 1 < $count &&
-                $opt == substr($long_options[$i+1], 0, $opt_len)) {
-                throw new PHPUnit_Framework_Exception(
-                    "option --$opt is ambiguous"
-                );
-            }
-
-            if (substr($long_opt, -1) == '=') {
-                if (substr($long_opt, -2) != '==') {
-                    if (!strlen($opt_arg) &&
-                        !(list(, $opt_arg) = each($args))) {
-                        throw new PHPUnit_Framework_Exception(
-                            "option --$opt requires an argument"
-                        );
-                    }
-                }
-            } elseif ($opt_arg) {
-                throw new PHPUnit_Framework_Exception(
-                    "option --$opt doesn't allow an argument"
-                );
-            }
-
-            $full_option = '--' . preg_replace('/={1,2}$/', '', $long_opt);
-            $opts[] = array($full_option, $opt_arg);
-
-            return;
-        }
-
-        throw new PHPUnit_Framework_Exception("unrecognized option --$opt");
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/GlobalState.php b/core/vendor/phpunit/phpunit/src/Util/GlobalState.php
deleted file mode 100644
index 87831f5..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/GlobalState.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-class PHPUnit_Util_GlobalState
-{
-    /**
-     * @var array
-     */
-    protected static $superGlobalArrays = array(
-      '_ENV',
-      '_POST',
-      '_GET',
-      '_COOKIE',
-      '_SERVER',
-      '_FILES',
-      '_REQUEST'
-    );
-
-    /**
-     * @var array
-     */
-    protected static $superGlobalArraysLong = array(
-      'HTTP_ENV_VARS',
-      'HTTP_POST_VARS',
-      'HTTP_GET_VARS',
-      'HTTP_COOKIE_VARS',
-      'HTTP_SERVER_VARS',
-      'HTTP_POST_FILES'
-    );
-
-    public static function getIncludedFilesAsString()
-    {
-        return static::processIncludedFilesAsString(get_included_files());
-    }
-
-    public static function processIncludedFilesAsString(array $files)
-    {
-        $blacklist = new PHPUnit_Util_Blacklist;
-        $prefix    = false;
-        $result    = '';
-
-        if (defined('__PHPUNIT_PHAR__')) {
-            $prefix = 'phar://' . __PHPUNIT_PHAR__ . '/';
-        }
-
-        for ($i = count($files) - 1; $i > 0; $i--) {
-            $file = $files[$i];
-
-            if ($prefix !== false && strpos($file, $prefix) === 0) {
-                continue;
-            }
-
-            // Skip virtual file system protocols
-            if (preg_match('/^(vfs|phpvfs[a-z0-9]+):/', $file)) {
-                continue;
-            }
-
-            if (!$blacklist->isBlacklisted($file) && is_file($file)) {
-                $result = 'require_once \'' . $file . "';\n" . $result;
-            }
-        }
-
-        return $result;
-    }
-
-    public static function getIniSettingsAsString()
-    {
-        $result      = '';
-        $iniSettings = ini_get_all(null, false);
-
-        foreach ($iniSettings as $key => $value) {
-            $result .= sprintf(
-                '@ini_set(%s, %s);' . "\n",
-                self::exportVariable($key),
-                self::exportVariable($value)
-            );
-        }
-
-        return $result;
-    }
-
-    public static function getConstantsAsString()
-    {
-        $constants = get_defined_constants(true);
-        $result    = '';
-
-        if (isset($constants['user'])) {
-            foreach ($constants['user'] as $name => $value) {
-                $result .= sprintf(
-                    'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n",
-                    $name,
-                    $name,
-                    self::exportVariable($value)
-                );
-            }
-        }
-
-        return $result;
-    }
-
-    public static function getGlobalsAsString()
-    {
-        $result            = '';
-        $superGlobalArrays = self::getSuperGlobalArrays();
-
-        foreach ($superGlobalArrays as $superGlobalArray) {
-            if (isset($GLOBALS[$superGlobalArray]) &&
-                is_array($GLOBALS[$superGlobalArray])) {
-                foreach (array_keys($GLOBALS[$superGlobalArray]) as $key) {
-                    if ($GLOBALS[$superGlobalArray][$key] instanceof Closure) {
-                        continue;
-                    }
-
-                    $result .= sprintf(
-                        '$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n",
-                        $superGlobalArray,
-                        $key,
-                        self::exportVariable($GLOBALS[$superGlobalArray][$key])
-                    );
-                }
-            }
-        }
-
-        $blacklist   = $superGlobalArrays;
-        $blacklist[] = 'GLOBALS';
-
-        foreach (array_keys($GLOBALS) as $key) {
-            if (!in_array($key, $blacklist) && !$GLOBALS[$key] instanceof Closure) {
-                $result .= sprintf(
-                    '$GLOBALS[\'%s\'] = %s;' . "\n",
-                    $key,
-                    self::exportVariable($GLOBALS[$key])
-                );
-            }
-        }
-
-        return $result;
-    }
-
-    protected static function getSuperGlobalArrays()
-    {
-        if (ini_get('register_long_arrays') == '1') {
-            return array_merge(
-                self::$superGlobalArrays,
-                self::$superGlobalArraysLong
-            );
-        } else {
-            return self::$superGlobalArrays;
-        }
-    }
-
-    protected static function exportVariable($variable)
-    {
-        if (is_scalar($variable) || is_null($variable) ||
-           (is_array($variable) && self::arrayOnlyContainsScalars($variable))) {
-            return var_export($variable, true);
-        }
-        return 'unserialize(' .
-                var_export(serialize($variable), true) .
-                ')';
-    }
-
-    protected static function arrayOnlyContainsScalars(array $array)
-    {
-        $result = true;
-
-        foreach ($array as $element) {
-            if (is_array($element)) {
-                $result = self::arrayOnlyContainsScalars($element);
-            } elseif (!is_scalar($element) && !is_null($element)) {
-                $result = false;
-            }
-
-            if ($result === false) {
-                break;
-            }
-        }
-
-        return $result;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php b/core/vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php
deleted file mode 100644
index ea722fb..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Factory for PHPUnit_Framework_Exception objects that are used to describe
- * invalid arguments passed to a function or method.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-class PHPUnit_Util_InvalidArgumentHelper
-{
-    /**
-     * @param  integer                     $argument
-     * @param  string                      $type
-     * @param  mixed                       $value
-     * @return PHPUnit_Framework_Exception
-     */
-    public static function factory($argument, $type, $value = null)
-    {
-        $stack = debug_backtrace(false);
-
-        return new PHPUnit_Framework_Exception(
-            sprintf(
-                'Argument #%d%sof %s::%s() must be a %s',
-                $argument,
-                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
-                $stack[1]['class'],
-                $stack[1]['function'],
-                $type
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Log/JSON.php b/core/vendor/phpunit/phpunit/src/Util/Log/JSON.php
deleted file mode 100644
index 981b562..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Log/JSON.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!defined('JSON_PRETTY_PRINT')) {
-    define('JSON_PRETTY_PRINT', 128);
-}
-
-/**
- * A TestListener that generates JSON messages.
- *
- * @package    PHPUnit
- * @subpackage Util_Log
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Util_Log_JSON extends PHPUnit_Util_Printer implements PHPUnit_Framework_TestListener
-{
-    /**
-     * @var    string
-     */
-    protected $currentTestSuiteName = '';
-
-    /**
-     * @var    string
-     */
-    protected $currentTestName = '';
-
-    /**
-     * @var     boolean
-     * @access  private
-     */
-    protected $currentTestPass = true;
-
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeCase(
-            'error',
-            $time,
-            PHPUnit_Util_Filter::getFilteredStacktrace($e, false),
-            $e->getMessage(),
-            $test
-        );
-
-        $this->currentTestPass = false;
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        $this->writeCase(
-            'fail',
-            $time,
-            PHPUnit_Util_Filter::getFilteredStacktrace($e, false),
-            $e->getMessage(),
-            $test
-        );
-
-        $this->currentTestPass = false;
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeCase(
-            'error',
-            $time,
-            PHPUnit_Util_Filter::getFilteredStacktrace($e, false),
-            'Incomplete Test: ' . $e->getMessage(),
-            $test
-        );
-
-        $this->currentTestPass = false;
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeCase(
-            'error',
-            $time,
-            PHPUnit_Util_Filter::getFilteredStacktrace($e, false),
-            'Risky Test: ' . $e->getMessage(),
-            $test
-        );
-
-        $this->currentTestPass = false;
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeCase(
-            'error',
-            $time,
-            PHPUnit_Util_Filter::getFilteredStacktrace($e, false),
-            'Skipped Test: ' . $e->getMessage(),
-            $test
-        );
-
-        $this->currentTestPass = false;
-    }
-
-    /**
-     * A testsuite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        $this->currentTestSuiteName = $suite->getName();
-        $this->currentTestName      = '';
-
-        $this->write(
-            array(
-            'event' => 'suiteStart',
-            'suite' => $this->currentTestSuiteName,
-            'tests' => count($suite)
-            )
-        );
-    }
-
-    /**
-     * A testsuite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        $this->currentTestSuiteName = '';
-        $this->currentTestName      = '';
-    }
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        $this->currentTestName = PHPUnit_Util_Test::describe($test);
-        $this->currentTestPass = true;
-
-        $this->write(
-            array(
-            'event' => 'testStart',
-            'suite' => $this->currentTestSuiteName,
-            'test'  => $this->currentTestName
-            )
-        );
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        if ($this->currentTestPass) {
-            $this->writeCase('pass', $time, array(), '', $test);
-        }
-    }
-
-    /**
-     * @param string $status
-     * @param float  $time
-     * @param array  $trace
-     * @param string $message
-     * @param PHPUnit_Framework_TestCase|null $test
-     */
-    protected function writeCase($status, $time, array $trace = array(), $message = '', $test = null)
-    {
-        $output = '';
-        // take care of TestSuite producing error (e.g. by running into exception) as TestSuite doesn't have hasOutput
-        if ($test !== null && method_exists($test, 'hasOutput') && $test->hasOutput()) {
-            $output = $test->getActualOutput();
-        }
-        $this->write(
-            array(
-            'event'   => 'test',
-            'suite'   => $this->currentTestSuiteName,
-            'test'    => $this->currentTestName,
-            'status'  => $status,
-            'time'    => $time,
-            'trace'   => $trace,
-            'message' => PHPUnit_Util_String::convertToUtf8($message),
-            'output'  => $output,
-            )
-        );
-    }
-
-    /**
-     * @param string $buffer
-     */
-    public function write($buffer)
-    {
-        array_walk_recursive($buffer, function (&$input) {
-            if (is_string($input)) {
-                $input = PHPUnit_Util_String::convertToUtf8($input);
-            }
-        });
-
-        parent::write(json_encode($buffer, JSON_PRETTY_PRINT));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php b/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php
deleted file mode 100644
index 299dc4b..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Log/JUnit.php
+++ /dev/null
@@ -1,457 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A TestListener that generates a logfile of the test execution in XML markup.
- *
- * The XML markup used is the same as the one that is used by the JUnit Ant task.
- *
- * @package    PHPUnit
- * @subpackage Util_Log
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.1.0
- */
-class PHPUnit_Util_Log_JUnit extends PHPUnit_Util_Printer implements PHPUnit_Framework_TestListener
-{
-    /**
-     * @var    DOMDocument
-     */
-    protected $document;
-
-    /**
-     * @var    DOMElement
-     */
-    protected $root;
-
-    /**
-     * @var    boolean
-     */
-    protected $logIncompleteSkipped = false;
-
-    /**
-     * @var    boolean
-     */
-    protected $writeDocument = true;
-
-    /**
-     * @var    DOMElement[]
-     */
-    protected $testSuites = array();
-
-    /**
-     * @var    integer[]
-     */
-    protected $testSuiteTests = array(0);
-
-    /**
-     * @var    integer[]
-     */
-    protected $testSuiteAssertions = array(0);
-
-    /**
-     * @var    integer[]
-     */
-    protected $testSuiteErrors = array(0);
-
-    /**
-     * @var    integer[]
-     */
-    protected $testSuiteFailures = array(0);
-
-    /**
-     * @var    integer[]
-     */
-    protected $testSuiteTimes = array(0);
-
-    /**
-     * @var    integer
-     */
-    protected $testSuiteLevel = 0;
-
-    /**
-     * @var    DOMElement
-     */
-    protected $currentTestCase = null;
-
-    /**
-     * @var    boolean
-     */
-    protected $attachCurrentTestCase = true;
-
-    /**
-     * Constructor.
-     *
-     * @param mixed   $out
-     * @param boolean $logIncompleteSkipped
-     */
-    public function __construct($out = null, $logIncompleteSkipped = false)
-    {
-        $this->document = new DOMDocument('1.0', 'UTF-8');
-        $this->document->formatOutput = true;
-
-        $this->root = $this->document->createElement('testsuites');
-        $this->document->appendChild($this->root);
-
-        parent::__construct($out);
-
-        $this->logIncompleteSkipped = $logIncompleteSkipped;
-    }
-
-    /**
-     * Flush buffer and close output.
-     *
-     */
-    public function flush()
-    {
-        if ($this->writeDocument === true) {
-            $this->write($this->getXML());
-        }
-
-        parent::flush();
-    }
-
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($this->currentTestCase !== null) {
-            if ($test instanceof PHPUnit_Framework_SelfDescribing) {
-                $buffer = $test->toString() . "\n";
-            } else {
-                $buffer = '';
-            }
-
-            $buffer .= PHPUnit_Framework_TestFailure::exceptionToString($e) .
-                       "\n" .
-                       PHPUnit_Util_Filter::getFilteredStacktrace($e);
-
-            $error = $this->document->createElement(
-                'error',
-                PHPUnit_Util_XML::prepareString($buffer)
-            );
-
-            $error->setAttribute('type', get_class($e));
-
-            $this->currentTestCase->appendChild($error);
-
-            $this->testSuiteErrors[$this->testSuiteLevel]++;
-        }
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        if ($this->currentTestCase !== null) {
-            if (!$test instanceof PHPUnit_Framework_Warning) {
-                if ($test instanceof PHPUnit_Framework_SelfDescribing) {
-                    $buffer = $test->toString() . "\n";
-                } else {
-                    $buffer = '';
-                }
-
-                $buffer .= PHPUnit_Framework_TestFailure::exceptionToString($e) .
-                           "\n" .
-                           PHPUnit_Util_Filter::getFilteredStacktrace($e);
-
-                $failure = $this->document->createElement(
-                    'failure',
-                    PHPUnit_Util_XML::prepareString($buffer)
-                );
-
-                $failure->setAttribute('type', get_class($e));
-
-                $this->currentTestCase->appendChild($failure);
-
-                $this->testSuiteFailures[$this->testSuiteLevel]++;
-            }
-        }
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($this->logIncompleteSkipped && $this->currentTestCase !== null) {
-            $error = $this->document->createElement(
-                'error',
-                PHPUnit_Util_XML::prepareString(
-                    "Incomplete Test\n" .
-                    PHPUnit_Util_Filter::getFilteredStacktrace($e)
-                )
-            );
-
-            $error->setAttribute('type', get_class($e));
-
-            $this->currentTestCase->appendChild($error);
-
-            $this->testSuiteErrors[$this->testSuiteLevel]++;
-        } else {
-            $this->attachCurrentTestCase = false;
-        }
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($this->logIncompleteSkipped && $this->currentTestCase !== null) {
-            $error = $this->document->createElement(
-                'error',
-                PHPUnit_Util_XML::prepareString(
-                    "Risky Test\n" .
-                    PHPUnit_Util_Filter::getFilteredStacktrace($e)
-                )
-            );
-
-            $error->setAttribute('type', get_class($e));
-
-            $this->currentTestCase->appendChild($error);
-
-            $this->testSuiteErrors[$this->testSuiteLevel]++;
-        } else {
-            $this->attachCurrentTestCase = false;
-        }
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($this->logIncompleteSkipped && $this->currentTestCase !== null) {
-            $error = $this->document->createElement(
-                'error',
-                PHPUnit_Util_XML::prepareString(
-                    "Skipped Test\n" .
-                    PHPUnit_Util_Filter::getFilteredStacktrace($e)
-                )
-            );
-
-            $error->setAttribute('type', get_class($e));
-
-            $this->currentTestCase->appendChild($error);
-
-            $this->testSuiteErrors[$this->testSuiteLevel]++;
-        } else {
-            $this->attachCurrentTestCase = false;
-        }
-    }
-
-    /**
-     * A testsuite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        $testSuite = $this->document->createElement('testsuite');
-        $testSuite->setAttribute('name', $suite->getName());
-
-        if (class_exists($suite->getName(), false)) {
-            try {
-                $class = new ReflectionClass($suite->getName());
-
-                $testSuite->setAttribute('file', $class->getFileName());
-            } catch (ReflectionException $e) {
-            }
-        }
-
-        if ($this->testSuiteLevel > 0) {
-            $this->testSuites[$this->testSuiteLevel]->appendChild($testSuite);
-        } else {
-            $this->root->appendChild($testSuite);
-        }
-
-        $this->testSuiteLevel++;
-        $this->testSuites[$this->testSuiteLevel]          = $testSuite;
-        $this->testSuiteTests[$this->testSuiteLevel]      = 0;
-        $this->testSuiteAssertions[$this->testSuiteLevel] = 0;
-        $this->testSuiteErrors[$this->testSuiteLevel]     = 0;
-        $this->testSuiteFailures[$this->testSuiteLevel]   = 0;
-        $this->testSuiteTimes[$this->testSuiteLevel]      = 0;
-    }
-
-    /**
-     * A testsuite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'tests',
-            $this->testSuiteTests[$this->testSuiteLevel]
-        );
-
-        $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'assertions',
-            $this->testSuiteAssertions[$this->testSuiteLevel]
-        );
-
-        $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'failures',
-            $this->testSuiteFailures[$this->testSuiteLevel]
-        );
-
-        $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'errors',
-            $this->testSuiteErrors[$this->testSuiteLevel]
-        );
-
-        $this->testSuites[$this->testSuiteLevel]->setAttribute(
-            'time',
-            sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel])
-        );
-
-        if ($this->testSuiteLevel > 1) {
-            $this->testSuiteTests[$this->testSuiteLevel - 1]      += $this->testSuiteTests[$this->testSuiteLevel];
-            $this->testSuiteAssertions[$this->testSuiteLevel - 1] += $this->testSuiteAssertions[$this->testSuiteLevel];
-            $this->testSuiteErrors[$this->testSuiteLevel - 1]     += $this->testSuiteErrors[$this->testSuiteLevel];
-            $this->testSuiteFailures[$this->testSuiteLevel - 1]   += $this->testSuiteFailures[$this->testSuiteLevel];
-            $this->testSuiteTimes[$this->testSuiteLevel - 1]      += $this->testSuiteTimes[$this->testSuiteLevel];
-        }
-
-        $this->testSuiteLevel--;
-    }
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        if (!$test instanceof PHPUnit_Framework_Warning) {
-            $testCase = $this->document->createElement('testcase');
-            $testCase->setAttribute('name', $test->getName());
-
-            if ($test instanceof PHPUnit_Framework_TestCase) {
-                $class      = new ReflectionClass($test);
-                $methodName = $test->getName();
-
-                if ($class->hasMethod($methodName)) {
-                    $method = $class->getMethod($test->getName());
-
-                    $testCase->setAttribute('class', $class->getName());
-                    $testCase->setAttribute('file', $class->getFileName());
-                    $testCase->setAttribute('line', $method->getStartLine());
-                }
-            }
-
-            $this->currentTestCase = $testCase;
-        }
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        if (!$test instanceof PHPUnit_Framework_Warning) {
-            if ($this->attachCurrentTestCase) {
-                if ($test instanceof PHPUnit_Framework_TestCase) {
-                    $numAssertions = $test->getNumAssertions();
-                    $this->testSuiteAssertions[$this->testSuiteLevel] += $numAssertions;
-
-                    $this->currentTestCase->setAttribute(
-                        'assertions',
-                        $numAssertions
-                    );
-                }
-
-                $this->currentTestCase->setAttribute(
-                    'time',
-                    sprintf('%F', $time)
-                );
-
-                $this->testSuites[$this->testSuiteLevel]->appendChild(
-                    $this->currentTestCase
-                );
-
-                $this->testSuiteTests[$this->testSuiteLevel]++;
-                $this->testSuiteTimes[$this->testSuiteLevel] += $time;
-
-                if (method_exists($test, 'hasOutput') && $test->hasOutput()) {
-                    $systemOut = $this->document->createElement('system-out');
-                    $systemOut->appendChild(
-                        $this->document->createTextNode($test->getActualOutput())
-                    );
-                    $this->currentTestCase->appendChild($systemOut);
-                }
-            }
-        }
-
-        $this->attachCurrentTestCase = true;
-        $this->currentTestCase       = null;
-    }
-
-    /**
-     * Returns the XML as a string.
-     *
-     * @return string
-     * @since  Method available since Release 2.2.0
-     */
-    public function getXML()
-    {
-        return $this->document->saveXML();
-    }
-
-    /**
-     * Enables or disables the writing of the document
-     * in flush().
-     *
-     * This is a "hack" needed for the integration of
-     * PHPUnit with Phing.
-     *
-     * @return string
-     * @since  Method available since Release 2.2.0
-     */
-    public function setWriteDocument($flag)
-    {
-        if (is_bool($flag)) {
-            $this->writeDocument = $flag;
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php b/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php
deleted file mode 100644
index d59f136..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Log/TAP.php
+++ /dev/null
@@ -1,234 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A TestListener that generates a logfile of the
- * test execution using the Test Anything Protocol (TAP).
- *
- * @package    PHPUnit
- * @subpackage Util_Log
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Util_Log_TAP extends PHPUnit_Util_Printer implements PHPUnit_Framework_TestListener
-{
-    /**
-     * @var    integer
-     */
-    protected $testNumber = 0;
-
-    /**
-     * @var    integer
-     */
-    protected $testSuiteLevel = 0;
-
-    /**
-     * @var    boolean
-     */
-    protected $testSuccessful = true;
-
-    /**
-     * Constructor.
-     *
-     * @param  mixed                       $out
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.3.4
-     */
-    public function __construct($out = null)
-    {
-        parent::__construct($out);
-        $this->write("TAP version 13\n");
-    }
-
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeNotOk($test, 'Error');
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        $this->writeNotOk($test, 'Failure');
-
-        $message = explode(
-            "\n",
-            PHPUnit_Framework_TestFailure::exceptionToString($e)
-        );
-
-        $diagnostic = array(
-          'message'  => $message[0],
-          'severity' => 'fail'
-        );
-
-        if ($e instanceof PHPUnit_Framework_ExpectationFailedException) {
-            $cf = $e->getComparisonFailure();
-
-            if ($cf !== null) {
-                $diagnostic['data'] = array(
-                  'got'      => $cf->getActual(),
-                  'expected' => $cf->getExpected()
-                );
-            }
-        }
-
-        $yaml = new Symfony\Component\Yaml\Dumper;
-
-        $this->write(
-            sprintf(
-                "  ---\n%s  ...\n",
-                $yaml->dump($diagnostic, 2, 2)
-            )
-        );
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->writeNotOk($test, '', 'TODO Incomplete Test');
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->write(
-            sprintf(
-                "ok %d - # RISKY%s\n",
-                $this->testNumber,
-                $e->getMessage() != '' ? ' ' . $e->getMessage() : ''
-            )
-        );
-
-        $this->testSuccessful = false;
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->write(
-            sprintf(
-                "ok %d - # SKIP%s\n",
-                $this->testNumber,
-                $e->getMessage() != '' ? ' ' . $e->getMessage() : ''
-            )
-        );
-
-        $this->testSuccessful = false;
-    }
-
-    /**
-     * A testsuite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        $this->testSuiteLevel++;
-    }
-
-    /**
-     * A testsuite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-        $this->testSuiteLevel--;
-
-        if ($this->testSuiteLevel == 0) {
-            $this->write(sprintf("1..%d\n", $this->testNumber));
-        }
-    }
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        $this->testNumber++;
-        $this->testSuccessful = true;
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        if ($this->testSuccessful === true) {
-            $this->write(
-                sprintf(
-                    "ok %d - %s\n",
-                    $this->testNumber,
-                    PHPUnit_Util_Test::describe($test)
-                )
-            );
-        }
-    }
-
-    /**
-     * @param PHPUnit_Framework_Test $test
-     * @param string                 $prefix
-     * @param string                 $directive
-     */
-    protected function writeNotOk(PHPUnit_Framework_Test $test, $prefix = '', $directive = '')
-    {
-        $this->write(
-            sprintf(
-                "not ok %d - %s%s%s\n",
-                $this->testNumber,
-                $prefix != '' ? $prefix . ': ' : '',
-                PHPUnit_Util_Test::describe($test),
-                $directive != '' ? ' # ' . $directive : ''
-            )
-        );
-
-        $this->testSuccessful = false;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/PHP.php b/core/vendor/phpunit/phpunit/src/Util/PHP.php
deleted file mode 100644
index 43c607a..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/PHP.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility methods for PHP sub-processes.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.4.0
- */
-abstract class PHPUnit_Util_PHP
-{
-    /**
-     * @return PHPUnit_Util_PHP
-     * @since  Method available since Release 3.5.12
-     */
-    public static function factory()
-    {
-        if (DIRECTORY_SEPARATOR == '\\') {
-            return new PHPUnit_Util_PHP_Windows;
-        }
-
-        return new PHPUnit_Util_PHP_Default;
-    }
-
-    /**
-     * Runs a single test in a separate PHP process.
-     *
-     * @param  string                       $job
-     * @param  PHPUnit_Framework_Test       $test
-     * @param  PHPUnit_Framework_TestResult $result
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function runTestJob($job, PHPUnit_Framework_Test $test, PHPUnit_Framework_TestResult $result)
-    {
-        $result->startTest($test);
-
-        $_result = $this->runJob($job);
-
-        $this->processChildResult(
-            $test,
-            $result,
-            $_result['stdout'],
-            $_result['stderr']
-        );
-    }
-
-    /**
-     * Runs a single job (PHP code) using a separate PHP process.
-     *
-     * @param  string                      $job
-     * @param  array                       $settings
-     * @return array
-     * @throws PHPUnit_Framework_Exception
-     */
-    abstract public function runJob($job, array $settings = array());
-
-    /**
-     * @param  array  $settings
-     * @return string
-     * @since Method available since Release 4.0.0
-     */
-    protected function settingsToParameters(array $settings)
-    {
-        $buffer = '';
-
-        foreach ($settings as $setting) {
-            $buffer .= ' -d ' . $setting;
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Processes the TestResult object from an isolated process.
-     *
-     * @param PHPUnit_Framework_Test       $test
-     * @param PHPUnit_Framework_TestResult $result
-     * @param string                       $stdout
-     * @param string                       $stderr
-     * @since Method available since Release 3.5.0
-     */
-    private function processChildResult(PHPUnit_Framework_Test $test, PHPUnit_Framework_TestResult $result, $stdout, $stderr)
-    {
-        $time = 0;
-
-        if (!empty($stderr)) {
-            $result->addError(
-                $test,
-                new PHPUnit_Framework_Exception(trim($stderr)),
-                $time
-            );
-        } else {
-            set_error_handler(function ($errno, $errstr, $errfile, $errline) {
-                throw new ErrorException($errstr, $errno, $errno, $errfile, $errline);
-            });
-            try {
-                if (strpos($stdout, "#!/usr/bin/env php\n") === 0) {
-                    $stdout = substr($stdout, 19);
-                }
-
-                $childResult = unserialize(str_replace("#!/usr/bin/env php\n", '', $stdout));
-                restore_error_handler();
-            } catch (ErrorException $e) {
-                restore_error_handler();
-                $childResult = false;
-
-                $result->addError(
-                    $test,
-                    new PHPUnit_Framework_Exception(trim($stdout), 0, $e),
-                    $time
-                );
-            }
-
-            if ($childResult !== false) {
-                if (!empty($childResult['output'])) {
-                    $output = $childResult['output'];
-                }
-
-                $test->setResult($childResult['testResult']);
-                $test->addToAssertionCount($childResult['numAssertions']);
-
-                $childResult = $childResult['result'];
-
-                if ($result->getCollectCodeCoverageInformation()) {
-                    $result->getCodeCoverage()->merge(
-                        $childResult->getCodeCoverage()
-                    );
-                }
-
-                $time           = $childResult->time();
-                $notImplemented = $childResult->notImplemented();
-                $risky          = $childResult->risky();
-                $skipped        = $childResult->skipped();
-                $errors         = $childResult->errors();
-                $failures       = $childResult->failures();
-
-                if (!empty($notImplemented)) {
-                    $result->addError(
-                        $test,
-                        $this->getException($notImplemented[0]),
-                        $time
-                    );
-                } elseif (!empty($risky)) {
-                    $result->addError(
-                        $test,
-                        $this->getException($risky[0]),
-                        $time
-                    );
-                } elseif (!empty($skipped)) {
-                    $result->addError(
-                        $test,
-                        $this->getException($skipped[0]),
-                        $time
-                    );
-                } elseif (!empty($errors)) {
-                    $result->addError(
-                        $test,
-                        $this->getException($errors[0]),
-                        $time
-                    );
-                } elseif (!empty($failures)) {
-                    $result->addFailure(
-                        $test,
-                        $this->getException($failures[0]),
-                        $time
-                    );
-                }
-            }
-        }
-
-        $result->endTest($test, $time);
-
-        if (!empty($output)) {
-            print $output;
-        }
-    }
-
-    /**
-     * Gets the thrown exception from a PHPUnit_Framework_TestFailure.
-     *
-     * @param  PHPUnit_Framework_TestFailure $error
-     * @return Exception
-     * @since  Method available since Release 3.6.0
-     * @see    https://github.com/sebastianbergmann/phpunit/issues/74
-     */
-    private function getException(PHPUnit_Framework_TestFailure $error)
-    {
-        $exception = $error->thrownException();
-
-        if ($exception instanceof __PHP_Incomplete_Class) {
-            $exceptionArray = array();
-            foreach ((array) $exception as $key => $value) {
-                $key = substr($key, strrpos($key, "\0") + 1);
-                $exceptionArray[$key] = $value;
-            }
-
-            $exception = new PHPUnit_Framework_SyntheticError(
-                sprintf(
-                    '%s: %s',
-                    $exceptionArray['_PHP_Incomplete_Class_Name'],
-                    $exceptionArray['message']
-                ),
-                $exceptionArray['code'],
-                $exceptionArray['file'],
-                $exceptionArray['line'],
-                $exceptionArray['trace']
-            );
-        }
-
-        return $exception;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/PHP/Default.php b/core/vendor/phpunit/phpunit/src/Util/PHP/Default.php
deleted file mode 100644
index 45e004e..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/PHP/Default.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Environment\Runtime;
-
-/**
- * Default utility for PHP sub-processes.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.5.12
- */
-class PHPUnit_Util_PHP_Default extends PHPUnit_Util_PHP
-{
-    /**
-     * Runs a single job (PHP code) using a separate PHP process.
-     *
-     * @param  string                      $job
-     * @param  array                       $settings
-     * @return array
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function runJob($job, array $settings = array())
-    {
-        $runtime = new Runtime;
-
-        $process = proc_open(
-            $runtime->getBinary() . $this->settingsToParameters($settings),
-            array(
-            0 => array('pipe', 'r'),
-            1 => array('pipe', 'w'),
-            2 => array('pipe', 'w')
-            ),
-            $pipes
-        );
-
-        if (!is_resource($process)) {
-            throw new PHPUnit_Framework_Exception(
-                'Unable to spawn worker process'
-            );
-        }
-
-        $this->process($pipes[0], $job);
-        fclose($pipes[0]);
-
-        $stdout = stream_get_contents($pipes[1]);
-        fclose($pipes[1]);
-
-        $stderr = stream_get_contents($pipes[2]);
-        fclose($pipes[2]);
-
-        proc_close($process);
-        $this->cleanup();
-
-        return array('stdout' => $stdout, 'stderr' => $stderr);
-    }
-
-    /**
-     * @param  resource                    $pipe
-     * @param  string                      $job
-     * @throws PHPUnit_Framework_Exception
-     * @since Method available since Release 3.5.12
-     */
-    protected function process($pipe, $job)
-    {
-        fwrite($pipe, $job);
-    }
-
-    /**
-     * @since Method available since Release 3.5.12
-     */
-    protected function cleanup()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist b/core/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist
deleted file mode 100644
index 9be59f4..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-if (!defined('STDOUT')) {
-    // php://stdout does not obey output buffering. Any output would break
-    // unserialization of child process results in the parent process.
-    define('STDOUT', fopen('php://temp', 'w+b'));
-    define('STDERR', fopen('php://stderr', 'wb'));
-}
-
-{iniSettings}
-ini_set('display_errors', 'stderr');
-set_include_path('{include_path}');
-
-$composerAutoload = {composerAutoload};
-$phar             = {phar};
-
-ob_start();
-
-if ($composerAutoload) {
-    require_once $composerAutoload;
-    define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload);
-} else if ($phar) {
-    require $phar;
-}
-
-function __phpunit_run_isolated_test()
-{
-    if (!class_exists('{className}')) {
-        require_once '{filename}';
-    }
-
-    $result = new PHPUnit_Framework_TestResult;
-
-    if ({collectCodeCoverageInformation}) {
-        $result->setCodeCoverage(new PHP_CodeCoverage);
-    }
-
-    $result->beStrictAboutTestsThatDoNotTestAnything({isStrictAboutTestsThatDoNotTestAnything});
-    $result->beStrictAboutOutputDuringTests({isStrictAboutOutputDuringTests});
-    $result->beStrictAboutTestSize({isStrictAboutTestSize});
-    $result->beStrictAboutTodoAnnotatedTests({isStrictAboutTodoAnnotatedTests});
-
-    $test = new {className}('{methodName}', unserialize('{data}'), '{dataName}');
-    $test->setDependencyInput(unserialize('{dependencyInput}'));
-    $test->setInIsolation(TRUE);
-
-    ob_end_clean();
-    $test->run($result);
-    $output = '';
-    if (!$test->hasExpectationOnOutput()) {
-        $output = $test->getActualOutput();
-    }
-
-    rewind(STDOUT);
-    if ($stdout = stream_get_contents(STDOUT)) {
-        $output = $stdout . $output;
-    }
-
-    print serialize(
-      array(
-        'testResult'    => $test->getResult(),
-        'numAssertions' => $test->getNumAssertions(),
-        'result'        => $result,
-        'output'        => $output
-      )
-    );
-}
-
-{constants}
-{included_files}
-{globals}
-
-if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) {
-    require_once $GLOBALS['__PHPUNIT_BOOTSTRAP'];
-    unset($GLOBALS['__PHPUNIT_BOOTSTRAP']);
-}
-
-__phpunit_run_isolated_test();
diff --git a/core/vendor/phpunit/phpunit/src/Util/PHP/Windows.php b/core/vendor/phpunit/phpunit/src/Util/PHP/Windows.php
deleted file mode 100644
index 7752042..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/PHP/Windows.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-use SebastianBergmann\Environment\Runtime;
-
-/**
- * Windows utility for PHP sub-processes.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.5.12
- */
-class PHPUnit_Util_PHP_Windows extends PHPUnit_Util_PHP_Default
-{
-    /**
-     * @var string
-     */
-    private $tempFile;
-
-    /**
-     * {@inheritdoc}
-     *
-     * Reading from STDOUT or STDERR hangs forever on Windows if the output is
-     * too large.
-     *
-     * @see https://bugs.php.net/bug.php?id=51800
-     */
-    public function runJob($job, array $settings = array())
-    {
-        $runtime = new Runtime;
-
-        if (false === $stdout_handle = tmpfile()) {
-            throw new PHPUnit_Framework_Exception(
-                'A temporary file could not be created; verify that your TEMP environment variable is writable'
-            );
-        }
-
-        $process = proc_open(
-            $runtime->getBinary() . $this->settingsToParameters($settings),
-            array(
-            0 => array('pipe', 'r'),
-            1 => $stdout_handle,
-            2 => array('pipe', 'w')
-            ),
-            $pipes
-        );
-
-        if (!is_resource($process)) {
-            throw new PHPUnit_Framework_Exception(
-                'Unable to spawn worker process'
-            );
-        }
-
-        $this->process($pipes[0], $job);
-        fclose($pipes[0]);
-
-        $stderr = stream_get_contents($pipes[2]);
-        fclose($pipes[2]);
-
-        proc_close($process);
-
-        rewind($stdout_handle);
-        $stdout = stream_get_contents($stdout_handle);
-        fclose($stdout_handle);
-
-        $this->cleanup();
-
-        return array('stdout' => $stdout, 'stderr' => $stderr);
-    }
-
-    /**
-     * @param  resource                    $pipe
-     * @param  string                      $job
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.5.12
-     */
-    protected function process($pipe, $job)
-    {
-        if (!($this->tempFile = tempnam(sys_get_temp_dir(), 'PHPUnit')) ||
-            file_put_contents($this->tempFile, $job) === false) {
-            throw new PHPUnit_Framework_Exception(
-                'Unable to write temporary file'
-            );
-        }
-
-        fwrite(
-            $pipe,
-            "<?php require_once " . var_export($this->tempFile, true) .  "; ?>"
-        );
-    }
-
-    /**
-     * @since Method available since Release 3.5.12
-     */
-    protected function cleanup()
-    {
-        unlink($this->tempFile);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Printer.php b/core/vendor/phpunit/phpunit/src/Util/Printer.php
deleted file mode 100644
index 5c7af11..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Printer.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility class that can print to STDOUT or write to a file.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class PHPUnit_Util_Printer
-{
-    /**
-     * If true, flush output after every write.
-     *
-     * @var boolean
-     */
-    protected $autoFlush = false;
-
-    /**
-     * @var    resource
-     */
-    protected $out;
-
-    /**
-     * @var    string
-     */
-    protected $outTarget;
-
-    /**
-     * @var    boolean
-     */
-    protected $printsHTML = false;
-
-    /**
-     * Constructor.
-     *
-     * @param  mixed                       $out
-     * @throws PHPUnit_Framework_Exception
-     */
-    public function __construct($out = null)
-    {
-        if ($out !== null) {
-            if (is_string($out)) {
-                if (strpos($out, 'socket://') === 0) {
-                    $out = explode(':', str_replace('socket://', '', $out));
-
-                    if (sizeof($out) != 2) {
-                        throw new PHPUnit_Framework_Exception;
-                    }
-
-                    $this->out = fsockopen($out[0], $out[1]);
-                } else {
-                    if (strpos($out, 'php://') === false &&
-                        !is_dir(dirname($out))) {
-                        mkdir(dirname($out), 0777, true);
-                    }
-
-                    $this->out = fopen($out, 'wt');
-                }
-
-                $this->outTarget = $out;
-            } else {
-                $this->out = $out;
-            }
-        }
-    }
-
-    /**
-     * Flush buffer, optionally tidy up HTML, and close output if it's not to a php stream
-     */
-    public function flush()
-    {
-        if ($this->out && strncmp($this->outTarget, 'php://', 6) !== 0) {
-            fclose($this->out);
-        }
-
-        if ($this->printsHTML === true &&
-            $this->outTarget !== null &&
-            strpos($this->outTarget, 'php://') !== 0 &&
-            strpos($this->outTarget, 'socket://') !== 0 &&
-            extension_loaded('tidy')) {
-            file_put_contents(
-                $this->outTarget,
-                tidy_repair_file(
-                    $this->outTarget,
-                    array('indent' => true, 'wrap' => 0),
-                    'utf8'
-                )
-            );
-        }
-    }
-
-    /**
-     * Performs a safe, incremental flush.
-     *
-     * Do not confuse this function with the flush() function of this class,
-     * since the flush() function may close the file being written to, rendering
-     * the current object no longer usable.
-     *
-     * @since  Method available since Release 3.3.0
-     */
-    public function incrementalFlush()
-    {
-        if ($this->out) {
-            fflush($this->out);
-        } else {
-            flush();
-        }
-    }
-
-    /**
-     * @param string $buffer
-     */
-    public function write($buffer)
-    {
-        if ($this->out) {
-            fwrite($this->out, $buffer);
-
-            if ($this->autoFlush) {
-                $this->incrementalFlush();
-            }
-        } else {
-            if (PHP_SAPI != 'cli') {
-                $buffer = htmlspecialchars($buffer);
-            }
-
-            print $buffer;
-
-            if ($this->autoFlush) {
-                $this->incrementalFlush();
-            }
-        }
-    }
-
-    /**
-     * Check auto-flush mode.
-     *
-     * @return boolean
-     * @since  Method available since Release 3.3.0
-     */
-    public function getAutoFlush()
-    {
-        return $this->autoFlush;
-    }
-
-    /**
-     * Set auto-flushing mode.
-     *
-     * If set, *incremental* flushes will be done after each write. This should
-     * not be confused with the different effects of this class' flush() method.
-     *
-     * @param boolean $autoFlush
-     * @since  Method available since Release 3.3.0
-     */
-    public function setAutoFlush($autoFlush)
-    {
-        if (is_bool($autoFlush)) {
-            $this->autoFlush = $autoFlush;
-        } else {
-            throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'boolean');
-        }
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Regex.php b/core/vendor/phpunit/phpunit/src/Util/Regex.php
deleted file mode 100644
index 09cb3cc..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Regex.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Error handler that converts PHP errors and warnings to exceptions.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Márcio Almada <marcio3w@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.2.0
- */
-class PHPUnit_Util_Regex
-{
-    public static function pregMatchSafe($pattern, $subject, $matches = null, $flags = 0, $offset = 0)
-    {
-        $handler_terminator = PHPUnit_Util_ErrorHandler::handleErrorOnce(E_WARNING);
-        $match = preg_match($pattern, $subject, $matches, $flags, $offset);
-        $handler_terminator(); // cleaning
-
-        return $match;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/String.php b/core/vendor/phpunit/phpunit/src/Util/String.php
deleted file mode 100644
index e81666e..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/String.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * String helpers.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class PHPUnit_Util_String
-{
-    /**
-     * Converts a string to UTF-8 encoding.
-     *
-     * @param  string $string
-     * @return string
-     */
-    public static function convertToUtf8($string)
-    {
-        if (!self::isUtf8($string)) {
-            if (function_exists('mb_convert_encoding')) {
-                $string = mb_convert_encoding($string, 'UTF-8');
-            } else {
-                $string = utf8_encode($string);
-            }
-        }
-
-        return $string;
-    }
-
-    /**
-     * Checks a string for UTF-8 encoding.
-     *
-     * @param  string  $string
-     * @return boolean
-     */
-    protected static function isUtf8($string)
-    {
-        $length = strlen($string);
-
-        for ($i = 0; $i < $length; $i++) {
-            if (ord($string[$i]) < 0x80) {
-                $n = 0;
-            } elseif ((ord($string[$i]) & 0xE0) == 0xC0) {
-                $n = 1;
-            } elseif ((ord($string[$i]) & 0xF0) == 0xE0) {
-                $n = 2;
-            } elseif ((ord($string[$i]) & 0xF0) == 0xF0) {
-                $n = 3;
-            } else {
-                return false;
-            }
-
-            for ($j = 0; $j < $n; $j++) {
-                if ((++$i == $length) || ((ord($string[$i]) & 0xC0) != 0x80)) {
-                    return false;
-                }
-            }
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Test.php b/core/vendor/phpunit/phpunit/src/Util/Test.php
deleted file mode 100644
index 1d51df2..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Test.php
+++ /dev/null
@@ -1,958 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!function_exists('trait_exists')) {
-    function trait_exists($traitname, $autoload = true)
-    {
-        return false;
-    }
-}
-
-/**
- * Test helpers.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Util_Test
-{
-    const REGEX_DATA_PROVIDER      = '/@dataProvider\s+([a-zA-Z0-9._:-\\\\x7f-\xff]+)/';
-    const REGEX_EXPECTED_EXCEPTION = '(@expectedException\s+([:.\w\\\\x7f-\xff]+)(?:[\t ]+(\S*))?(?:[\t ]+(\S*))?\s*$)m';
-    const REGEX_REQUIRES_VERSION   = '/@requires\s+(?P<name>PHP(?:Unit)?)\s+(?P<value>[\d\.-]+(dev|(RC|alpha|beta)[\d\.])?)[ \t]*\r?$/m';
-    const REGEX_REQUIRES_OS        = '/@requires\s+OS\s+(?P<value>.+?)[ \t]*\r?$/m';
-    const REGEX_REQUIRES           = '/@requires\s+(?P<name>function|extension)\s+(?P<value>([^ ]+?))[ \t]*\r?$/m';
-
-    const SMALL  = 0;
-    const MEDIUM = 1;
-    const LARGE  = 2;
-
-    private static $annotationCache = array();
-
-    private static $hookMethods = array();
-
-    /**
-     * @param  PHPUnit_Framework_Test $test
-     * @param  boolean                $asString
-     * @return mixed
-     */
-    public static function describe(PHPUnit_Framework_Test $test, $asString = true)
-    {
-        if ($asString) {
-            if ($test instanceof PHPUnit_Framework_SelfDescribing) {
-                return $test->toString();
-            } else {
-                return get_class($test);
-            }
-        } else {
-            if ($test instanceof PHPUnit_Framework_TestCase) {
-                return array(
-                  get_class($test), $test->getName()
-                );
-            } elseif ($test instanceof PHPUnit_Framework_SelfDescribing) {
-                return array('', $test->toString());
-            } else {
-                return array('', get_class($test));
-            }
-        }
-    }
-
-    /**
-     * @param  string     $className
-     * @param  string     $methodName
-     * @return array|bool
-     * @throws PHPUnit_Framework_CodeCoverageException
-     * @since  Method available since Release 4.0.0
-     */
-    public static function getLinesToBeCovered($className, $methodName)
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        if (isset($annotations['class']['coversNothing']) || isset($annotations['method']['coversNothing'])) {
-            return false;
-        }
-
-        return self::getLinesToBeCoveredOrUsed($className, $methodName, 'covers');
-    }
-
-    /**
-     * Returns lines of code specified with the @uses annotation.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 4.0.0
-     */
-    public static function getLinesToBeUsed($className, $methodName)
-    {
-        return self::getLinesToBeCoveredOrUsed($className, $methodName, 'uses');
-    }
-
-    /**
-     * @param  string $className
-     * @param  string $methodName
-     * @param  string $mode
-     * @return array
-     * @throws PHPUnit_Framework_CodeCoverageException
-     * @since  Method available since Release 4.2.0
-     */
-    private static function getLinesToBeCoveredOrUsed($className, $methodName, $mode)
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        $classShortcut = null;
-
-        if (!empty($annotations['class'][$mode . 'DefaultClass'])) {
-            if (count($annotations['class'][$mode . 'DefaultClass']) > 1) {
-                throw new PHPUnit_Framework_CodeCoverageException(
-                    sprintf(
-                        'More than one @%sClass annotation in class or interface "%s".',
-                        $mode,
-                        $className
-                    )
-                );
-            }
-
-            $classShortcut = $annotations['class'][$mode . 'DefaultClass'][0];
-        }
-
-        $list = array();
-
-        if (isset($annotations['class'][$mode])) {
-            $list = $annotations['class'][$mode];
-        }
-
-        if (isset($annotations['method'][$mode])) {
-            $list = array_merge($list, $annotations['method'][$mode]);
-        }
-
-        $codeList = array();
-
-        foreach (array_unique($list) as $element) {
-            if ($classShortcut && strncmp($element, '::', 2) === 0) {
-                $element = $classShortcut . $element;
-            }
-
-            $element = preg_replace('/[\s()]+$/', '', $element);
-
-            $codeList = array_merge(
-                $codeList,
-                self::resolveElementToReflectionObjects($element)
-            );
-        }
-
-        return self::resolveReflectionObjectsToLines($codeList);
-    }
-
-    /**
-     * Returns the requirements for a test.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 3.6.0
-     */
-    public static function getRequirements($className, $methodName)
-    {
-        $reflector  = new ReflectionClass($className);
-        $docComment = $reflector->getDocComment();
-        $reflector  = new ReflectionMethod($className, $methodName);
-        $docComment .= "\n" . $reflector->getDocComment();
-        $requires   = array();
-
-        if ($count = preg_match_all(self::REGEX_REQUIRES_OS, $docComment, $matches)) {
-            $requires['OS'] = sprintf(
-                '/%s/i',
-                addcslashes($matches['value'][$count - 1], '/')
-            );
-        }
-        if ($count = preg_match_all(self::REGEX_REQUIRES_VERSION, $docComment, $matches)) {
-            for ($i = 0; $i < $count; $i++) {
-                $requires[$matches['name'][$i]] = $matches['value'][$i];
-            }
-        }
-
-        // https://bugs.php.net/bug.php?id=63055
-        $matches = array();
-
-        if ($count = preg_match_all(self::REGEX_REQUIRES, $docComment, $matches)) {
-            for ($i = 0; $i < $count; $i++) {
-                $name = $matches['name'][$i] . 's';
-                if (!isset($requires[$name])) {
-                    $requires[$name] = array();
-                }
-                $requires[$name][] = $matches['value'][$i];
-            }
-        }
-
-        return $requires;
-    }
-
-    /**
-     * Returns the missing requirements for a test.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 4.3.0
-     */
-    public static function getMissingRequirements($className, $methodName)
-    {
-        $required = static::getRequirements($className, $methodName);
-        $missing = array();
-
-        if (!empty($required['PHP']) && version_compare(PHP_VERSION, $required['PHP'], '<')) {
-            $missing[] = sprintf('PHP %s (or later) is required.', $required['PHP']);
-        }
-
-        if (!empty($required['PHPUnit'])) {
-            $phpunitVersion = PHPUnit_Runner_Version::id();
-            if (version_compare($phpunitVersion, $required['PHPUnit'], '<')) {
-                $missing[] = sprintf('PHPUnit %s (or later) is required.', $required['PHPUnit']);
-            }
-        }
-
-        if (!empty($required['OS']) && !preg_match($required['OS'], PHP_OS)) {
-            $missing[] = sprintf('Operating system matching %s is required.', $required['OS']);
-        }
-
-        if (!empty($required['functions'])) {
-            foreach ($required['functions'] as $function) {
-                $pieces = explode('::', $function);
-                if (2 === count($pieces) && method_exists($pieces[0], $pieces[1])) {
-                    continue;
-                }
-                if (function_exists($function)) {
-                    continue;
-                }
-                $missing[] = sprintf('Function %s is required.', $function);
-            }
-        }
-
-        if (!empty($required['extensions'])) {
-            foreach ($required['extensions'] as $extension) {
-                if (!extension_loaded($extension)) {
-                    $missing[] = sprintf('Extension %s is required.', $extension);
-                }
-            }
-        }
-
-        return $missing;
-    }
-
-    /**
-     * Returns the expected exception for a test.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 3.3.6
-     */
-    public static function getExpectedException($className, $methodName)
-    {
-        $reflector  = new ReflectionMethod($className, $methodName);
-        $docComment = $reflector->getDocComment();
-        $docComment = substr($docComment, 3, -2);
-
-        if (preg_match(self::REGEX_EXPECTED_EXCEPTION, $docComment, $matches)) {
-            $annotations = self::parseTestMethodAnnotations(
-                $className,
-                $methodName
-            );
-
-            $class   = $matches[1];
-            $code    = null;
-            $message = '';
-            $messageRegExp = '';
-
-            if (isset($matches[2])) {
-                $message = trim($matches[2]);
-            } elseif (isset($annotations['method']['expectedExceptionMessage'])) {
-                $message = self::parseAnnotationContent(
-                    $annotations['method']['expectedExceptionMessage'][0]
-                );
-            }
-
-            if (isset($annotations['method']['expectedExceptionMessageRegExp'])) {
-                $messageRegExp = self::parseAnnotationContent(
-                    $annotations['method']['expectedExceptionMessageRegExp'][0]
-                );
-            }
-
-            if (isset($matches[3])) {
-                $code = $matches[3];
-            } elseif (isset($annotations['method']['expectedExceptionCode'])) {
-                $code = self::parseAnnotationContent(
-                    $annotations['method']['expectedExceptionCode'][0]
-                );
-            }
-
-            if (is_numeric($code)) {
-                $code = (int) $code;
-            } elseif (is_string($code) && defined($code)) {
-                $code = (int) constant($code);
-            }
-
-            return array(
-              'class' => $class, 'code' => $code, 'message' => $message, 'message_regex' => $messageRegExp
-            );
-        }
-
-        return false;
-    }
-
-    /**
-     * Parse annotation content to use constant/class constant values
-     *
-     * Constants are specified using a starting '@'. For example: @ClassName::CONST_NAME
-     *
-     * If the constant is not found the string is used as is to ensure maximum BC.
-     *
-     * @param  string $message
-     * @return string
-     */
-    private static function parseAnnotationContent($message)
-    {
-        if (strpos($message, '::') !== false && count(explode('::', $message) == 2)) {
-            if (defined($message)) {
-                $message = constant($message);
-            }
-        }
-
-        return $message;
-    }
-
-    /**
-     * Returns the provided data for a method.
-     *
-     * @param  string           $className
-     * @param  string           $methodName
-     * @return array|Iterator when a data provider is specified and exists
-     *         false          when a data provider is specified but does not exist
-     *         null           when no data provider is specified
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.2.0
-     */
-    public static function getProvidedData($className, $methodName)
-    {
-        $reflector  = new ReflectionMethod($className, $methodName);
-        $docComment = $reflector->getDocComment();
-        $data       = null;
-
-        if (preg_match(self::REGEX_DATA_PROVIDER, $docComment, $matches)) {
-            $dataProviderMethodNameNamespace = explode('\\', $matches[1]);
-            $leaf                            = explode('::', array_pop($dataProviderMethodNameNamespace));
-            $dataProviderMethodName          = array_pop($leaf);
-
-            if (!empty($dataProviderMethodNameNamespace)) {
-                $dataProviderMethodNameNamespace = implode('\\', $dataProviderMethodNameNamespace) . '\\';
-            } else {
-                $dataProviderMethodNameNamespace = '';
-            }
-
-            if (!empty($leaf)) {
-                $dataProviderClassName = $dataProviderMethodNameNamespace . array_pop($leaf);
-            } else {
-                $dataProviderClassName = $className;
-            }
-
-            $dataProviderClass  = new ReflectionClass($dataProviderClassName);
-            $dataProviderMethod = $dataProviderClass->getMethod(
-                $dataProviderMethodName
-            );
-
-            if ($dataProviderMethod->isStatic()) {
-                $object = null;
-            } else {
-                $object = $dataProviderClass->newInstance();
-            }
-
-            if ($dataProviderMethod->getNumberOfParameters() == 0) {
-                $data = $dataProviderMethod->invoke($object);
-            } else {
-                $data = $dataProviderMethod->invoke($object, $methodName);
-            }
-        }
-
-        if ($data !== null) {
-            if (is_object($data)) {
-                $data = iterator_to_array($data);
-            }
-
-            foreach ($data as $key => $value) {
-                if (!is_array($value)) {
-                    throw new PHPUnit_Framework_Exception(
-                        sprintf(
-                            'Data set %s is invalid.',
-                            is_int($key) ? '#' . $key : '"' . $key . '"'
-                        )
-                    );
-                }
-            }
-        }
-
-        return $data;
-    }
-
-    /**
-     * @param  string              $className
-     * @param  string              $methodName
-     * @return array
-     * @throws ReflectionException
-     * @since  Method available since Release 3.4.0
-     */
-    public static function parseTestMethodAnnotations($className, $methodName = '')
-    {
-        if (!isset(self::$annotationCache[$className])) {
-            $class = new ReflectionClass($className);
-            self::$annotationCache[$className] = self::parseAnnotations($class->getDocComment());
-        }
-
-        if (!empty($methodName) && !isset(self::$annotationCache[$className . '::' . $methodName])) {
-            try {
-                $method = new ReflectionMethod($className, $methodName);
-                $annotations = self::parseAnnotations($method->getDocComment());
-            } catch (ReflectionException $e) {
-                $annotations = array();
-            }
-            self::$annotationCache[$className . '::' . $methodName] = $annotations;
-        }
-
-        return array(
-          'class'  => self::$annotationCache[$className],
-          'method' => !empty($methodName) ? self::$annotationCache[$className . '::' . $methodName] : array()
-        );
-    }
-
-    /**
-     * @param  string $docblock
-     * @return array
-     * @since  Method available since Release 3.4.0
-     */
-    private static function parseAnnotations($docblock)
-    {
-        $annotations = array();
-        // Strip away the docblock header and footer to ease parsing of one line annotations
-        $docblock = substr($docblock, 3, -2);
-
-        if (preg_match_all('/@(?P<name>[A-Za-z_-]+)(?:[ \t]+(?P<value>.*?))?[ \t]*\r?$/m', $docblock, $matches)) {
-            $numMatches = count($matches[0]);
-
-            for ($i = 0; $i < $numMatches; ++$i) {
-                $annotations[$matches['name'][$i]][] = $matches['value'][$i];
-            }
-        }
-
-        return $annotations;
-    }
-
-    /**
-     * Returns the backup settings for a test.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 3.4.0
-     */
-    public static function getBackupSettings($className, $methodName)
-    {
-        return array(
-          'backupGlobals' => self::getBooleanAnnotationSetting(
-              $className,
-              $methodName,
-              'backupGlobals'
-          ),
-          'backupStaticAttributes' => self::getBooleanAnnotationSetting(
-              $className,
-              $methodName,
-              'backupStaticAttributes'
-          )
-        );
-    }
-
-    /**
-     * Returns the dependencies for a test class or method.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 3.4.0
-     */
-    public static function getDependencies($className, $methodName)
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        $dependencies = array();
-
-        if (isset($annotations['class']['depends'])) {
-            $dependencies = $annotations['class']['depends'];
-        }
-
-        if (isset($annotations['method']['depends'])) {
-            $dependencies = array_merge(
-                $dependencies,
-                $annotations['method']['depends']
-            );
-        }
-
-        return array_unique($dependencies);
-    }
-
-    /**
-     * Returns the error handler settings for a test.
-     *
-     * @param  string  $className
-     * @param  string  $methodName
-     * @return boolean
-     * @since  Method available since Release 3.4.0
-     */
-    public static function getErrorHandlerSettings($className, $methodName)
-    {
-        return self::getBooleanAnnotationSetting(
-            $className,
-            $methodName,
-            'errorHandler'
-        );
-    }
-
-    /**
-     * Returns the groups for a test class or method.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 3.2.0
-     */
-    public static function getGroups($className, $methodName = '')
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        $groups = array();
-
-        if (isset($annotations['method']['author'])) {
-            $groups = $annotations['method']['author'];
-        } elseif (isset($annotations['class']['author'])) {
-            $groups = $annotations['class']['author'];
-        }
-
-        if (isset($annotations['class']['group'])) {
-            $groups = array_merge($groups, $annotations['class']['group']);
-        }
-
-        if (isset($annotations['method']['group'])) {
-            $groups = array_merge($groups, $annotations['method']['group']);
-        }
-
-        if (isset($annotations['class']['ticket'])) {
-            $groups = array_merge($groups, $annotations['class']['ticket']);
-        }
-
-        if (isset($annotations['method']['ticket'])) {
-            $groups = array_merge($groups, $annotations['method']['ticket']);
-        }
-
-        foreach (array('small', 'medium', 'large') as $size) {
-            if (isset($annotations['method'][$size])) {
-                $groups[] = $size;
-            } elseif (isset($annotations['class'][$size])) {
-                $groups[] = $size;
-            }
-        }
-
-        return array_unique($groups);
-    }
-
-    /**
-     * Returns the size of the test.
-     *
-     * @param  string  $className
-     * @param  string  $methodName
-     * @return integer
-     * @since  Method available since Release 3.6.0
-     */
-    public static function getSize($className, $methodName)
-    {
-        $groups = array_flip(self::getGroups($className, $methodName));
-        $size   = self::SMALL;
-        $class  = new ReflectionClass($className);
-
-        if ((class_exists('PHPUnit_Extensions_Database_TestCase', false) &&
-             $class->isSubclassOf('PHPUnit_Extensions_Database_TestCase')) ||
-            (class_exists('PHPUnit_Extensions_SeleniumTestCase', false) &&
-             $class->isSubclassOf('PHPUnit_Extensions_SeleniumTestCase'))) {
-            $size = self::LARGE;
-        } elseif (isset($groups['medium'])) {
-            $size = self::MEDIUM;
-        } elseif (isset($groups['large'])) {
-            $size = self::LARGE;
-        }
-
-        return $size;
-    }
-
-    /**
-     * Returns the tickets for a test class or method.
-     *
-     * @param  string $className
-     * @param  string $methodName
-     * @return array
-     * @since  Method available since Release 3.4.0
-     */
-    public static function getTickets($className, $methodName)
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        $tickets = array();
-
-        if (isset($annotations['class']['ticket'])) {
-            $tickets = $annotations['class']['ticket'];
-        }
-
-        if (isset($annotations['method']['ticket'])) {
-            $tickets = array_merge($tickets, $annotations['method']['ticket']);
-        }
-
-        return array_unique($tickets);
-    }
-
-    /**
-     * Returns the process isolation settings for a test.
-     *
-     * @param  string  $className
-     * @param  string  $methodName
-     * @return boolean
-     * @since  Method available since Release 3.4.1
-     */
-    public static function getProcessIsolationSettings($className, $methodName)
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        if (isset($annotations['class']['runTestsInSeparateProcesses']) ||
-            isset($annotations['method']['runInSeparateProcess'])) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Returns the preserve global state settings for a test.
-     *
-     * @param  string  $className
-     * @param  string  $methodName
-     * @return boolean
-     * @since  Method available since Release 3.4.0
-     */
-    public static function getPreserveGlobalStateSettings($className, $methodName)
-    {
-        return self::getBooleanAnnotationSetting(
-            $className,
-            $methodName,
-            'preserveGlobalState'
-        );
-    }
-
-    /**
-     * @param  string $className
-     * @return array
-     * @since  Method available since Release 4.0.8
-     */
-    public static function getHookMethods($className)
-    {
-        if (!class_exists($className, false)) {
-            return self::emptyHookMethodsArray();
-        }
-
-        if (!isset(self::$hookMethods[$className])) {
-            self::$hookMethods[$className] = self::emptyHookMethodsArray();
-
-            try {
-                $class = new ReflectionClass($className);
-
-                foreach ($class->getMethods() as $method) {
-                    if ($method->getDeclaringClass()->getName() != $className) {
-                        continue;
-                    }
-
-                    if (self::isBeforeClassMethod($method)) {
-                        self::$hookMethods[$className]['beforeClass'][] = $method->getName();
-                    }
-
-                    if (self::isBeforeMethod($method)) {
-                        self::$hookMethods[$className]['before'][] = $method->getName();
-                    }
-
-                    if (self::isAfterMethod($method)) {
-                        self::$hookMethods[$className]['after'][] = $method->getName();
-                    }
-
-                    if (self::isAfterClassMethod($method)) {
-                        self::$hookMethods[$className]['afterClass'][] = $method->getName();
-                    }
-                }
-            } catch (ReflectionException $e) {
-            }
-        }
-
-        return self::$hookMethods[$className];
-    }
-
-    /**
-     * @return array
-     * @since  Method available since Release 4.0.9
-     */
-    private static function emptyHookMethodsArray()
-    {
-        return array(
-            'beforeClass' => array('setUpBeforeClass'),
-            'before' => array('setUp'),
-            'after' => array('tearDown'),
-            'afterClass' => array('tearDownAfterClass')
-        );
-    }
-
-    /**
-     * @param  string  $className
-     * @param  string  $methodName
-     * @param  string  $settingName
-     * @return boolean
-     * @since  Method available since Release 3.4.0
-     */
-    private static function getBooleanAnnotationSetting($className, $methodName, $settingName)
-    {
-        $annotations = self::parseTestMethodAnnotations(
-            $className,
-            $methodName
-        );
-
-        $result = null;
-
-        if (isset($annotations['class'][$settingName])) {
-            if ($annotations['class'][$settingName][0] == 'enabled') {
-                $result = true;
-            } elseif ($annotations['class'][$settingName][0] == 'disabled') {
-                $result = false;
-            }
-        }
-
-        if (isset($annotations['method'][$settingName])) {
-            if ($annotations['method'][$settingName][0] == 'enabled') {
-                $result = true;
-            } elseif ($annotations['method'][$settingName][0] == 'disabled') {
-                $result = false;
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param  string $element
-     * @return array
-     * @throws PHPUnit_Framework_InvalidCoversTargetException
-     * @since  Method available since Release 4.0.0
-     */
-    private static function resolveElementToReflectionObjects($element)
-    {
-        $codeToCoverList = array();
-
-        if (strpos($element, '::') !== false) {
-            list($className, $methodName) = explode('::', $element);
-
-            if (isset($methodName[0]) && $methodName[0] == '<') {
-                $classes = array($className);
-
-                foreach ($classes as $className) {
-                    if (!class_exists($className) &&
-                        !interface_exists($className)) {
-                        throw new PHPUnit_Framework_InvalidCoversTargetException(
-                            sprintf(
-                                'Trying to @cover or @use not existing class or ' .
-                                'interface "%s".',
-                                $className
-                            )
-                        );
-                    }
-
-                    $class   = new ReflectionClass($className);
-                    $methods = $class->getMethods();
-                    $inverse = isset($methodName[1]) && $methodName[1] == '!';
-
-                    if (strpos($methodName, 'protected')) {
-                        $visibility = 'isProtected';
-                    } elseif (strpos($methodName, 'private')) {
-                        $visibility = 'isPrivate';
-                    } elseif (strpos($methodName, 'public')) {
-                        $visibility = 'isPublic';
-                    }
-
-                    foreach ($methods as $method) {
-                        if ($inverse && !$method->$visibility()) {
-                            $codeToCoverList[] = $method;
-                        } elseif (!$inverse && $method->$visibility()) {
-                            $codeToCoverList[] = $method;
-                        }
-                    }
-                }
-            } else {
-                $classes = array($className);
-
-                foreach ($classes as $className) {
-                    if ($className == '' && function_exists($methodName)) {
-                        $codeToCoverList[] = new ReflectionFunction(
-                            $methodName
-                        );
-                    } else {
-                        if (!((class_exists($className) ||
-                               interface_exists($className) ||
-                               trait_exists($className)) &&
-                              method_exists($className, $methodName))) {
-                            throw new PHPUnit_Framework_InvalidCoversTargetException(
-                                sprintf(
-                                    'Trying to @cover or @use not existing method "%s::%s".',
-                                    $className,
-                                    $methodName
-                                )
-                            );
-                        }
-
-                        $codeToCoverList[] = new ReflectionMethod(
-                            $className,
-                            $methodName
-                        );
-                    }
-                }
-            }
-        } else {
-            $extended = false;
-
-            if (strpos($element, '<extended>') !== false) {
-                $element  = str_replace('<extended>', '', $element);
-                $extended = true;
-            }
-
-            $classes = array($element);
-
-            if ($extended) {
-                $classes = array_merge(
-                    $classes,
-                    class_implements($element),
-                    class_parents($element)
-                );
-            }
-
-            foreach ($classes as $className) {
-                if (!class_exists($className) &&
-                    !interface_exists($className) &&
-                    !trait_exists($className)) {
-                    throw new PHPUnit_Framework_InvalidCoversTargetException(
-                        sprintf(
-                            'Trying to @cover or @use not existing class or ' .
-                            'interface "%s".',
-                            $className
-                        )
-                    );
-                }
-
-                $codeToCoverList[] = new ReflectionClass($className);
-            }
-        }
-
-        return $codeToCoverList;
-    }
-
-    /**
-     * @param  array $reflectors
-     * @return array
-     */
-    private static function resolveReflectionObjectsToLines(array $reflectors)
-    {
-        $result = array();
-
-        foreach ($reflectors as $reflector) {
-            $filename = $reflector->getFileName();
-
-            if (!isset($result[$filename])) {
-                $result[$filename] = array();
-            }
-
-            $result[$filename] = array_unique(
-                array_merge(
-                    $result[$filename],
-                    range($reflector->getStartLine(), $reflector->getEndLine())
-                )
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param  ReflectionMethod $method
-     * @return boolean
-     * @since  Method available since Release 4.0.8
-     */
-    private static function isBeforeClassMethod(ReflectionMethod $method)
-    {
-        return $method->isStatic() && strpos($method->getDocComment(), '@beforeClass') !== false;
-    }
-
-    /**
-     * @param  ReflectionMethod $method
-     * @return boolean
-     * @since  Method available since Release 4.0.8
-     */
-    private static function isBeforeMethod(ReflectionMethod $method)
-    {
-        return preg_match('/@before\b/', $method->getDocComment());
-    }
-
-    /**
-     * @param  ReflectionMethod $method
-     * @return boolean
-     * @since  Method available since Release 4.0.8
-     */
-    private static function isAfterClassMethod(ReflectionMethod $method)
-    {
-        return $method->isStatic() && strpos($method->getDocComment(), '@afterClass') !== false;
-    }
-
-    /**
-     * @param  ReflectionMethod $method
-     * @return boolean
-     * @since  Method available since Release 4.0.8
-     */
-    private static function isAfterMethod(ReflectionMethod $method)
-    {
-        return preg_match('/@after\b/', $method->getDocComment());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php b/core/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php
deleted file mode 100644
index d1c5950..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Prettifies class and method names for use in TestDox documentation.
- *
- * @package    PHPUnit
- * @subpackage Util_TestDox
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.1.0
- */
-class PHPUnit_Util_TestDox_NamePrettifier
-{
-    /**
-     * @var    string
-     */
-    protected $prefix = 'Test';
-
-    /**
-     * @var    string
-     */
-    protected $suffix = 'Test';
-
-    /**
-     * @var    array
-     */
-    protected $strings = array();
-
-    /**
-     * Prettifies the name of a test class.
-     *
-     * @param  string $name
-     * @return string
-     */
-    public function prettifyTestClass($name)
-    {
-        $title = $name;
-
-        if ($this->suffix !== null &&
-            $this->suffix == substr($name, -1 * strlen($this->suffix))) {
-            $title = substr($title, 0, strripos($title, $this->suffix));
-        }
-
-        if ($this->prefix !== null &&
-            $this->prefix == substr($name, 0, strlen($this->prefix))) {
-            $title = substr($title, strlen($this->prefix));
-        }
-
-        if (substr($title, 0, 1) == '\\') {
-            $title = substr($title, 1);
-        }
-
-        return $title;
-    }
-
-    /**
-     * Prettifies the name of a test method.
-     *
-     * @param  string $name
-     * @return string
-     */
-    public function prettifyTestMethod($name)
-    {
-        $buffer = '';
-
-        if (!is_string($name) || strlen($name) == 0) {
-            return $buffer;
-        }
-
-        $string = preg_replace('#\d+$#', '', $name, -1, $count);
-
-        if (in_array($string, $this->strings)) {
-            $name = $string;
-        } elseif ($count == 0) {
-            $this->strings[] = $string;
-        }
-
-        if (strpos($name, '_') !== false) {
-            return str_replace('_', ' ', $name);
-        }
-
-        $max = strlen($name);
-
-        if (substr($name, 0, 4) == 'test') {
-            $offset = 4;
-        } else {
-            $offset  = 0;
-            $name[0] = strtoupper($name[0]);
-        }
-
-        $wasNumeric = false;
-
-        for ($i = $offset; $i < $max; $i++) {
-            if ($i > $offset &&
-                ord($name[$i]) >= 65 &&
-                ord($name[$i]) <= 90) {
-                $buffer .= ' ' . strtolower($name[$i]);
-            } else {
-                $isNumeric = is_numeric($name[$i]);
-
-                if (!$wasNumeric && $isNumeric) {
-                    $buffer    .= ' ';
-                    $wasNumeric = true;
-                }
-
-                if ($wasNumeric && !$isNumeric) {
-                    $wasNumeric = false;
-                }
-
-                $buffer .= $name[$i];
-            }
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Sets the prefix of test names.
-     *
-     * @param string $prefix
-     */
-    public function setPrefix($prefix)
-    {
-        $this->prefix = $prefix;
-    }
-
-    /**
-     * Sets the suffix of test names.
-     *
-     * @param string $suffix
-     */
-    public function setSuffix($suffix)
-    {
-        $this->suffix = $suffix;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php b/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php
deleted file mode 100644
index 8963be6..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php
+++ /dev/null
@@ -1,333 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Base class for printers of TestDox documentation.
- *
- * @package    PHPUnit
- * @subpackage Util_TestDox
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.1.0
- */
-abstract class PHPUnit_Util_TestDox_ResultPrinter extends PHPUnit_Util_Printer implements PHPUnit_Framework_TestListener
-{
-    /**
-     * @var PHPUnit_Util_TestDox_NamePrettifier
-     */
-    protected $prettifier;
-
-    /**
-     * @var string
-     */
-    protected $testClass = '';
-
-    /**
-     * @var integer
-     */
-    protected $testStatus = false;
-
-    /**
-     * @var array
-     */
-    protected $tests = array();
-
-    /**
-     * @var integer
-     */
-    protected $successful = 0;
-
-    /**
-     * @var integer
-     */
-    protected $failed = 0;
-
-    /**
-     * @var integer
-     */
-    protected $risky = 0;
-
-    /**
-     * @var integer
-     */
-    protected $skipped = 0;
-
-    /**
-     * @var integer
-     */
-    protected $incomplete = 0;
-
-    /**
-     * @var string
-     */
-    protected $testTypeOfInterest = 'PHPUnit_Framework_TestCase';
-
-    /**
-     * @var string
-     */
-    protected $currentTestClassPrettified;
-
-    /**
-     * @var string
-     */
-    protected $currentTestMethodPrettified;
-
-    /**
-     * Constructor.
-     *
-     * @param resource $out
-     */
-    public function __construct($out = null)
-    {
-        parent::__construct($out);
-
-        $this->prettifier = new PHPUnit_Util_TestDox_NamePrettifier;
-        $this->startRun();
-    }
-
-    /**
-     * Flush buffer and close output.
-     *
-     */
-    public function flush()
-    {
-        $this->doEndClass();
-        $this->endRun();
-
-        parent::flush();
-    }
-
-    /**
-     * An error occurred.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_ERROR;
-            $this->failed++;
-        }
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param PHPUnit_Framework_Test                 $test
-     * @param PHPUnit_Framework_AssertionFailedError $e
-     * @param float                                  $time
-     */
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE;
-            $this->failed++;
-        }
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     */
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_INCOMPLETE;
-            $this->incomplete++;
-        }
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_RISKY;
-            $this->risky++;
-        }
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param Exception              $e
-     * @param float                  $time
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_SKIPPED;
-            $this->skipped++;
-        }
-    }
-
-    /**
-     * A testsuite started.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    /**
-     * A testsuite ended.
-     *
-     * @param PHPUnit_Framework_TestSuite $suite
-     * @since  Method available since Release 2.2.0
-     */
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    /**
-     * A test started.
-     *
-     * @param PHPUnit_Framework_Test $test
-     */
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            $class = get_class($test);
-
-            if ($this->testClass != $class) {
-                if ($this->testClass != '') {
-                    $this->doEndClass();
-                }
-
-                $this->currentTestClassPrettified = $this->prettifier->prettifyTestClass($class);
-                $this->startClass($class);
-
-                $this->testClass = $class;
-                $this->tests     = array();
-            }
-
-            $prettified = false;
-
-            if ($test instanceof PHPUnit_Framework_TestCase &&
-               !$test instanceof PHPUnit_Framework_Warning) {
-                $annotations = $test->getAnnotations();
-
-                if (isset($annotations['method']['testdox'][0])) {
-                    $this->currentTestMethodPrettified = $annotations['method']['testdox'][0];
-                    $prettified                        = true;
-                }
-            }
-
-            if (!$prettified) {
-                $this->currentTestMethodPrettified = $this->prettifier->prettifyTestMethod($test->getName(false));
-            }
-
-            $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_PASSED;
-        }
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param PHPUnit_Framework_Test $test
-     * @param float                  $time
-     */
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        if ($test instanceof $this->testTypeOfInterest) {
-            if (!isset($this->tests[$this->currentTestMethodPrettified])) {
-                if ($this->testStatus == PHPUnit_Runner_BaseTestRunner::STATUS_PASSED) {
-                    $this->tests[$this->currentTestMethodPrettified]['success'] = 1;
-                    $this->tests[$this->currentTestMethodPrettified]['failure'] = 0;
-                } else {
-                    $this->tests[$this->currentTestMethodPrettified]['success'] = 0;
-                    $this->tests[$this->currentTestMethodPrettified]['failure'] = 1;
-                }
-            } else {
-                if ($this->testStatus == PHPUnit_Runner_BaseTestRunner::STATUS_PASSED) {
-                    $this->tests[$this->currentTestMethodPrettified]['success']++;
-                } else {
-                    $this->tests[$this->currentTestMethodPrettified]['failure']++;
-                }
-            }
-
-            $this->currentTestClassPrettified  = null;
-            $this->currentTestMethodPrettified = null;
-        }
-    }
-
-    /**
-     * @since  Method available since Release 2.3.0
-     */
-    protected function doEndClass()
-    {
-        foreach ($this->tests as $name => $data) {
-            $this->onTest($name, $data['failure'] == 0);
-        }
-
-        $this->endClass($this->testClass);
-    }
-
-    /**
-     * Handler for 'start run' event.
-     *
-     */
-    protected function startRun()
-    {
-    }
-
-    /**
-     * Handler for 'start class' event.
-     *
-     * @param string $name
-     */
-    protected function startClass($name)
-    {
-    }
-
-    /**
-     * Handler for 'on test' event.
-     *
-     * @param string  $name
-     * @param boolean $success
-     */
-    protected function onTest($name, $success = true)
-    {
-    }
-
-    /**
-     * Handler for 'end class' event.
-     *
-     * @param string $name
-     */
-    protected function endClass($name)
-    {
-    }
-
-    /**
-     * Handler for 'end run' event.
-     *
-     */
-    protected function endRun()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php b/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php
deleted file mode 100644
index b4676fc..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Prints TestDox documentation in HTML format.
- *
- * @package    PHPUnit
- * @subpackage Util_TestDox
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.1.0
- */
-class PHPUnit_Util_TestDox_ResultPrinter_HTML extends PHPUnit_Util_TestDox_ResultPrinter
-{
-    /**
-     * @var    boolean
-     */
-    protected $printsHTML = true;
-
-    /**
-     * Handler for 'start run' event.
-     *
-     */
-    protected function startRun()
-    {
-        $this->write('<html><body>');
-    }
-
-    /**
-     * Handler for 'start class' event.
-     *
-     * @param string $name
-     */
-    protected function startClass($name)
-    {
-        $this->write(
-            '<h2 id="' . $name . '">' . $this->currentTestClassPrettified .
-            '</h2><ul>'
-        );
-    }
-
-    /**
-     * Handler for 'on test' event.
-     *
-     * @param string  $name
-     * @param boolean $success
-     */
-    protected function onTest($name, $success = true)
-    {
-        if (!$success) {
-            $strikeOpen  = '<span style="text-decoration:line-through;">';
-            $strikeClose = '</span>';
-        } else {
-            $strikeOpen  = '';
-            $strikeClose = '';
-        }
-
-        $this->write('<li>' . $strikeOpen . $name . $strikeClose . '</li>');
-    }
-
-    /**
-     * Handler for 'end class' event.
-     *
-     * @param string $name
-     */
-    protected function endClass($name)
-    {
-        $this->write('</ul>');
-    }
-
-    /**
-     * Handler for 'end run' event.
-     *
-     */
-    protected function endRun()
-    {
-        $this->write('</body></html>');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php b/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php
deleted file mode 100644
index 29c925b..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Prints TestDox documentation in text format.
- *
- * @package    PHPUnit
- * @subpackage Util_TestDox
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.1.0
- */
-class PHPUnit_Util_TestDox_ResultPrinter_Text extends PHPUnit_Util_TestDox_ResultPrinter
-{
-    /**
-     * Handler for 'start class' event.
-     *
-     * @param string $name
-     */
-    protected function startClass($name)
-    {
-        $this->write($this->currentTestClassPrettified . "\n");
-    }
-
-    /**
-     * Handler for 'on test' event.
-     *
-     * @param string  $name
-     * @param boolean $success
-     */
-    protected function onTest($name, $success = true)
-    {
-        if ($success) {
-            $this->write(' [x] ');
-        } else {
-            $this->write(' [ ] ');
-        }
-
-        $this->write($name . "\n");
-    }
-
-    /**
-     * Handler for 'end class' event.
-     *
-     * @param string $name
-     */
-    protected function endClass($name)
-    {
-        $this->write("\n");
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/TestSuiteIterator.php b/core/vendor/phpunit/phpunit/src/Util/TestSuiteIterator.php
deleted file mode 100644
index df5ae91..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/TestSuiteIterator.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Iterator for test suites.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.1.0
- */
-class PHPUnit_Util_TestSuiteIterator implements RecursiveIterator
-{
-    /**
-     * @var    integer
-     */
-    protected $position;
-
-    /**
-     * @var    PHPUnit_Framework_Test[]
-     */
-    protected $tests;
-
-    /**
-     * @param PHPUnit_Framework_TestSuite $testSuite
-     */
-    public function __construct(PHPUnit_Framework_TestSuite $testSuite)
-    {
-        $this->tests = $testSuite->tests();
-    }
-
-    /**
-     * Rewinds the Iterator to the first element.
-     *
-     */
-    public function rewind()
-    {
-        $this->position = 0;
-    }
-
-    /**
-     * Checks if there is a current element after calls to rewind() or next().
-     *
-     * @return boolean
-     */
-    public function valid()
-    {
-        return $this->position < count($this->tests);
-    }
-
-    /**
-     * Returns the key of the current element.
-     *
-     * @return integer
-     */
-    public function key()
-    {
-        return $this->position;
-    }
-
-    /**
-     * Returns the current element.
-     *
-     * @return PHPUnit_Framework_Test
-     */
-    public function current()
-    {
-        return $this->valid() ? $this->tests[$this->position] : null;
-    }
-
-    /**
-     * Moves forward to next element.
-     *
-     */
-    public function next()
-    {
-        $this->position++;
-    }
-
-    /**
-     * Returns the sub iterator for the current element.
-     *
-     * @return PHPUnit_Util_TestSuiteIterator
-     */
-    public function getChildren()
-    {
-        return new PHPUnit_Util_TestSuiteIterator(
-            $this->tests[$this->position]
-        );
-    }
-
-    /**
-     * Checks whether the current element has children.
-     *
-     * @return boolean
-     */
-    public function hasChildren()
-    {
-        return $this->tests[$this->position] instanceof PHPUnit_Framework_TestSuite;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/Type.php b/core/vendor/phpunit/phpunit/src/Util/Type.php
deleted file mode 100644
index e616c7a..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/Type.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Utility class for textual type (and value) representation.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class PHPUnit_Util_Type
-{
-    public static function isType($type)
-    {
-        return in_array(
-            $type,
-            array(
-            'numeric',
-            'integer',
-            'int',
-            'float',
-            'string',
-            'boolean',
-            'bool',
-            'null',
-            'array',
-            'object',
-            'resource',
-            'scalar'
-            )
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/src/Util/XML.php b/core/vendor/phpunit/phpunit/src/Util/XML.php
deleted file mode 100644
index 070a28b..0000000
--- a/core/vendor/phpunit/phpunit/src/Util/XML.php
+++ /dev/null
@@ -1,918 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * XML helpers.
- *
- * @package    PHPUnit
- * @subpackage Util
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.2.0
- */
-class PHPUnit_Util_XML
-{
-    /**
-     * Escapes a string for the use in XML documents
-     * Any Unicode character is allowed, excluding the surrogate blocks, FFFE,
-     * and FFFF (not even as character reference).
-     * See http://www.w3.org/TR/xml/#charsets
-     *
-     * @param  string $string
-     * @return string
-     * @author Kore Nordmann <mail@kore-nordmann.de>
-     * @since  Method available since Release 3.4.6
-     */
-    public static function prepareString($string)
-    {
-        return preg_replace(
-            '/[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]/',
-            '',
-            htmlspecialchars(
-                PHPUnit_Util_String::convertToUtf8($string), ENT_QUOTES, 'UTF-8'
-            )
-        );
-    }
-
-    /**
-     * Loads an XML (or HTML) file into a DOMDocument object.
-     *
-     * @param  string      $filename
-     * @param  boolean     $isHtml
-     * @param  boolean     $xinclude
-     * @param  boolean     $strict
-     * @return DOMDocument
-     * @since  Method available since Release 3.3.0
-     */
-    public static function loadFile($filename, $isHtml = false, $xinclude = false, $strict = false)
-    {
-        $reporting = error_reporting(0);
-        $contents  = file_get_contents($filename);
-        error_reporting($reporting);
-
-        if ($contents === false) {
-            throw new PHPUnit_Framework_Exception(
-                sprintf(
-                    'Could not read "%s".',
-                    $filename
-                )
-            );
-        }
-
-        return self::load($contents, $isHtml, $filename, $xinclude, $strict);
-    }
-
-    /**
-     * Load an $actual document into a DOMDocument.  This is called
-     * from the selector assertions.
-     *
-     * If $actual is already a DOMDocument, it is returned with
-     * no changes.  Otherwise, $actual is loaded into a new DOMDocument
-     * as either HTML or XML, depending on the value of $isHtml. If $isHtml is
-     * false and $xinclude is true, xinclude is performed on the loaded
-     * DOMDocument.
-     *
-     * Note: prior to PHPUnit 3.3.0, this method loaded a file and
-     * not a string as it currently does.  To load a file into a
-     * DOMDocument, use loadFile() instead.
-     *
-     * @param  string|DOMDocument $actual
-     * @param  boolean            $isHtml
-     * @param  string             $filename
-     * @param  boolean            $xinclude
-     * @param  boolean            $strict
-     * @return DOMDocument
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @author Tobias Schlitt <toby@php.net>
-     */
-    public static function load($actual, $isHtml = false, $filename = '', $xinclude = false, $strict = false)
-    {
-        if ($actual instanceof DOMDocument) {
-            return $actual;
-        }
-
-        // Required for XInclude on Windows.
-        if ($xinclude) {
-            $cwd = getcwd();
-            chdir(dirname($filename));
-        }
-
-        $document  = new DOMDocument;
-
-        $internal  = libxml_use_internal_errors(true);
-        $message   = '';
-        $reporting = error_reporting(0);
-
-        if ('' !== $filename) {
-            // Necessary for xinclude
-            $document->documentURI = $filename;
-        }
-
-        if ($isHtml) {
-            $loaded = $document->loadHTML($actual);
-        } else {
-            $loaded = $document->loadXML($actual);
-        }
-
-        if (!$isHtml && $xinclude) {
-            $document->xinclude();
-        }
-
-        foreach (libxml_get_errors() as $error) {
-            $message .= "\n" . $error->message;
-        }
-
-        libxml_use_internal_errors($internal);
-        error_reporting($reporting);
-
-        if ($xinclude) {
-            chdir($cwd);
-        }
-
-        if ($loaded === false || ($strict && $message !== '')) {
-            if ($filename !== '') {
-                throw new PHPUnit_Framework_Exception(
-                    sprintf(
-                        'Could not load "%s".%s',
-                        $filename,
-                        $message != '' ? "\n" . $message : ''
-                    )
-                );
-            } else {
-                throw new PHPUnit_Framework_Exception($message);
-            }
-        }
-
-        return $document;
-    }
-
-    /**
-     *
-     *
-     * @param  DOMNode $node
-     * @return string
-     * @since  Method available since Release 3.4.0
-     */
-    public static function nodeToText(DOMNode $node)
-    {
-        if ($node->childNodes->length == 1) {
-            return $node->nodeValue;
-        }
-
-        $result = '';
-
-        foreach ($node->childNodes as $childNode) {
-            $result .= $node->ownerDocument->saveXML($childNode);
-        }
-
-        return $result;
-    }
-
-    /**
-     *
-     *
-     * @param DOMNode $node
-     * @since  Method available since Release 3.3.0
-     * @author Mattis Stordalen Flister <mattis@xait.no>
-     */
-    public static function removeCharacterDataNodes(DOMNode $node)
-    {
-        if ($node->hasChildNodes()) {
-            for ($i = $node->childNodes->length - 1; $i >= 0; $i--) {
-                if (($child = $node->childNodes->item($i)) instanceof DOMCharacterData) {
-                    $node->removeChild($child);
-                }
-            }
-        }
-    }
-
-    /**
-     * "Convert" a DOMElement object into a PHP variable.
-     *
-     * @param  DOMElement $element
-     * @return mixed
-     * @since  Method available since Release 3.4.0
-     */
-    public static function xmlToVariable(DOMElement $element)
-    {
-        $variable = null;
-
-        switch ($element->tagName) {
-            case 'array': {
-                $variable = array();
-
-                foreach ($element->getElementsByTagName('element') as $element) {
-                    $value = self::xmlToVariable($element->childNodes->item(1));
-
-                    if ($element->hasAttribute('key')) {
-                        $variable[(string) $element->getAttribute('key')] = $value;
-                    } else {
-                        $variable[] = $value;
-                    }
-                }
-                }
-            break;
-
-            case 'object': {
-                $className = $element->getAttribute('class');
-
-                if ($element->hasChildNodes()) {
-                    $arguments       = $element->childNodes->item(1)->childNodes;
-                    $constructorArgs = array();
-
-                    foreach ($arguments as $argument) {
-                        if ($argument instanceof DOMElement) {
-                            $constructorArgs[] = self::xmlToVariable($argument);
-                        }
-                    }
-
-                    $class    = new ReflectionClass($className);
-                    $variable = $class->newInstanceArgs($constructorArgs);
-                } else {
-                    $variable = new $className;
-                }
-                }
-            break;
-
-            case 'boolean': {
-                $variable = $element->nodeValue == 'true' ? true : false;
-                }
-            break;
-
-            case 'integer':
-            case 'double':
-            case 'string': {
-                $variable = $element->nodeValue;
-
-                settype($variable, $element->tagName);
-                }
-            break;
-        }
-
-        return $variable;
-    }
-
-    /**
-     * Validate list of keys in the associative array.
-     *
-     * @param  array                       $hash
-     * @param  array                       $validKeys
-     * @return array
-     * @throws PHPUnit_Framework_Exception
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     */
-    public static function assertValidKeys(array $hash, array $validKeys)
-    {
-        $valids = array();
-
-        // Normalize validation keys so that we can use both indexed and
-        // associative arrays.
-        foreach ($validKeys as $key => $val) {
-            is_int($key) ? $valids[$val] = null : $valids[$key] = $val;
-        }
-
-        $validKeys = array_keys($valids);
-
-        // Check for invalid keys.
-        foreach ($hash as $key => $value) {
-            if (!in_array($key, $validKeys)) {
-                $unknown[] = $key;
-            }
-        }
-
-        if (!empty($unknown)) {
-            throw new PHPUnit_Framework_Exception(
-                'Unknown key(s): ' . implode(', ', $unknown)
-            );
-        }
-
-        // Add default values for any valid keys that are empty.
-        foreach ($valids as $key => $value) {
-            if (!isset($hash[$key])) {
-                $hash[$key] = $value;
-            }
-        }
-
-        return $hash;
-    }
-
-    /**
-     * Parse a CSS selector into an associative array suitable for
-     * use with findNodes().
-     *
-     * @param  string $selector
-     * @param  mixed  $content
-     * @return array
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     */
-    public static function convertSelectToTag($selector, $content = true)
-    {
-        $selector = trim(preg_replace("/\s+/", " ", $selector));
-
-        // substitute spaces within attribute value
-        while (preg_match('/\[[^\]]+"[^"]+\s[^"]+"\]/', $selector)) {
-            $selector = preg_replace(
-                '/(\[[^\]]+"[^"]+)\s([^"]+"\])/', "$1__SPACE__$2", $selector
-            );
-        }
-
-        if (strstr($selector, ' ')) {
-            $elements = explode(' ', $selector);
-        } else {
-            $elements = array($selector);
-        }
-
-        $previousTag = array();
-
-        foreach (array_reverse($elements) as $element) {
-            $element = str_replace('__SPACE__', ' ', $element);
-
-            // child selector
-            if ($element == '>') {
-                $previousTag = array('child' => $previousTag['descendant']);
-                continue;
-            }
-
-            // adjacent-sibling selector
-            if ($element == '+') {
-                $previousTag = array('adjacent-sibling' => $previousTag['descendant']);
-                continue;
-            }
-
-            $tag = array();
-
-            // match element tag
-            preg_match("/^([^\.#\[]*)/", $element, $eltMatches);
-
-            if (!empty($eltMatches[1])) {
-                $tag['tag'] = $eltMatches[1];
-            }
-
-            // match attributes (\[[^\]]*\]*), ids (#[^\.#\[]*),
-            // and classes (\.[^\.#\[]*))
-            preg_match_all(
-                "/(\[[^\]]*\]*|#[^\.#\[]*|\.[^\.#\[]*)/", $element, $matches
-            );
-
-            if (!empty($matches[1])) {
-                $classes = array();
-                $attrs   = array();
-
-                foreach ($matches[1] as $match) {
-                    // id matched
-                    if (substr($match, 0, 1) == '#') {
-                        $tag['id'] = substr($match, 1);
-                    } // class matched
-                    elseif (substr($match, 0, 1) == '.') {
-                        $classes[] = substr($match, 1);
-                    } // attribute matched
-                    elseif (substr($match, 0, 1) == '[' &&
-                             substr($match, -1, 1) == ']') {
-                        $attribute = substr($match, 1, strlen($match) - 2);
-                        $attribute = str_replace('"', '', $attribute);
-
-                        // match single word
-                        if (strstr($attribute, '~=')) {
-                            list($key, $value) = explode('~=', $attribute);
-                            $value             = "regexp:/.*\b$value\b.*/";
-                        } // match substring
-                        elseif (strstr($attribute, '*=')) {
-                            list($key, $value) = explode('*=', $attribute);
-                            $value             = "regexp:/.*$value.*/";
-                        } // exact match
-                        else {
-                            list($key, $value) = explode('=', $attribute);
-                        }
-
-                        $attrs[$key] = $value;
-                    }
-                }
-
-                if ($classes) {
-                    $tag['class'] = implode(' ', $classes);
-                }
-
-                if ($attrs) {
-                    $tag['attributes'] = $attrs;
-                }
-            }
-
-            // tag content
-            if (is_string($content)) {
-                $tag['content'] = $content;
-            }
-
-            // determine previous child/descendants
-            if (!empty($previousTag['descendant'])) {
-                $tag['descendant'] = $previousTag['descendant'];
-            } elseif (!empty($previousTag['child'])) {
-                $tag['child'] = $previousTag['child'];
-            } elseif (!empty($previousTag['adjacent-sibling'])) {
-                $tag['adjacent-sibling'] = $previousTag['adjacent-sibling'];
-                unset($tag['content']);
-            }
-
-            $previousTag = array('descendant' => $tag);
-        }
-
-        return $tag;
-    }
-
-    /**
-     * Parse an $actual document and return an array of DOMNodes
-     * matching the CSS $selector.  If an error occurs, it will
-     * return false.
-     *
-     * To only return nodes containing a certain content, give
-     * the $content to match as a string.  Otherwise, setting
-     * $content to true will return all nodes matching $selector.
-     *
-     * The $actual document may be a DOMDocument or a string
-     * containing XML or HTML, identified by $isHtml.
-     *
-     * @param  array         $selector
-     * @param  string        $content
-     * @param  mixed         $actual
-     * @param  boolean       $isHtml
-     * @return boolean|array
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @author Tobias Schlitt <toby@php.net>
-     */
-    public static function cssSelect($selector, $content, $actual, $isHtml = true)
-    {
-        $matcher = self::convertSelectToTag($selector, $content);
-        $dom     = self::load($actual, $isHtml);
-        $tags    = self::findNodes($dom, $matcher, $isHtml);
-
-        return $tags;
-    }
-
-    /**
-     * Parse out the options from the tag using DOM object tree.
-     *
-     * @param  DOMDocument $dom
-     * @param  array       $options
-     * @param  boolean     $isHtml
-     * @return array
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     * @author Tobias Schlitt <toby@php.net>
-     */
-    public static function findNodes(DOMDocument $dom, array $options, $isHtml = true)
-    {
-        $valid = array(
-          'id', 'class', 'tag', 'content', 'attributes', 'parent',
-          'child', 'ancestor', 'descendant', 'children', 'adjacent-sibling'
-        );
-
-        $filtered = array();
-        $options  = self::assertValidKeys($options, $valid);
-
-        // find the element by id
-        if ($options['id']) {
-            $options['attributes']['id'] = $options['id'];
-        }
-
-        if ($options['class']) {
-            $options['attributes']['class'] = $options['class'];
-        }
-
-        // find the element by a tag type
-        if ($options['tag']) {
-            if ($isHtml) {
-                $elements = self::getElementsByCaseInsensitiveTagName(
-                    $dom, $options['tag']
-                );
-            } else {
-                $elements = $dom->getElementsByTagName($options['tag']);
-            }
-
-            foreach ($elements as $element) {
-                $nodes[] = $element;
-            }
-
-            if (empty($nodes)) {
-                return false;
-            }
-        } // no tag selected, get them all
-        else {
-            $tags = array(
-              'a', 'abbr', 'acronym', 'address', 'area', 'b', 'base', 'bdo',
-              'big', 'blockquote', 'body', 'br', 'button', 'caption', 'cite',
-              'code', 'col', 'colgroup', 'dd', 'del', 'div', 'dfn', 'dl',
-              'dt', 'em', 'fieldset', 'form', 'frame', 'frameset', 'h1', 'h2',
-              'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html', 'i', 'iframe',
-              'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'link',
-              'map', 'meta', 'noframes', 'noscript', 'object', 'ol', 'optgroup',
-              'option', 'p', 'param', 'pre', 'q', 'samp', 'script', 'select',
-              'small', 'span', 'strong', 'style', 'sub', 'sup', 'table',
-              'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'title',
-              'tr', 'tt', 'ul', 'var',
-              // HTML5
-              'article', 'aside', 'audio', 'bdi', 'canvas', 'command',
-              'datalist', 'details', 'dialog', 'embed', 'figure', 'figcaption',
-              'footer', 'header', 'hgroup', 'keygen', 'mark', 'meter', 'nav',
-              'output', 'progress', 'ruby', 'rt', 'rp', 'track', 'section',
-              'source', 'summary', 'time', 'video', 'wbr'
-            );
-
-            foreach ($tags as $tag) {
-                if ($isHtml) {
-                    $elements = self::getElementsByCaseInsensitiveTagName(
-                        $dom, $tag
-                    );
-                } else {
-                    $elements = $dom->getElementsByTagName($tag);
-                }
-
-                foreach ($elements as $element) {
-                    $nodes[] = $element;
-                }
-            }
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by attributes
-        if ($options['attributes']) {
-            foreach ($nodes as $node) {
-                $invalid = false;
-
-                foreach ($options['attributes'] as $name => $value) {
-                    // match by regexp if like "regexp:/foo/i"
-                    if (preg_match('/^regexp\s*:\s*(.*)/i', $value, $matches)) {
-                        if (!preg_match($matches[1], $node->getAttribute($name))) {
-                            $invalid = true;
-                        }
-                    } // class can match only a part
-                    elseif ($name == 'class') {
-                        // split to individual classes
-                        $findClasses = explode(
-                            ' ', preg_replace("/\s+/", " ", $value)
-                        );
-
-                        $allClasses = explode(
-                            ' ',
-                            preg_replace("/\s+/", " ", $node->getAttribute($name))
-                        );
-
-                        // make sure each class given is in the actual node
-                        foreach ($findClasses as $findClass) {
-                            if (!in_array($findClass, $allClasses)) {
-                                $invalid = true;
-                            }
-                        }
-                    } // match by exact string
-                    else {
-                        if ($node->getAttribute($name) != $value) {
-                            $invalid = true;
-                        }
-                    }
-                }
-
-                // if every attribute given matched
-                if (!$invalid) {
-                    $filtered[] = $node;
-                }
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by content
-        if ($options['content'] !== null) {
-            foreach ($nodes as $node) {
-                $invalid = false;
-
-                // match by regexp if like "regexp:/foo/i"
-                if (preg_match('/^regexp\s*:\s*(.*)/i', $options['content'], $matches)) {
-                    if (!preg_match($matches[1], self::getNodeText($node))) {
-                        $invalid = true;
-                    }
-                } // match empty string
-                elseif ($options['content'] === '') {
-                    if (self::getNodeText($node) !== '') {
-                        $invalid = true;
-                    }
-                } // match by exact string
-                elseif (strstr(self::getNodeText($node), $options['content']) === false) {
-                    $invalid = true;
-                }
-
-                if (!$invalid) {
-                    $filtered[] = $node;
-                }
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by parent node
-        if ($options['parent']) {
-            $parentNodes = self::findNodes($dom, $options['parent'], $isHtml);
-            $parentNode  = isset($parentNodes[0]) ? $parentNodes[0] : null;
-
-            foreach ($nodes as $node) {
-                if ($parentNode !== $node->parentNode) {
-                    continue;
-                }
-
-                $filtered[] = $node;
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by child node
-        if ($options['child']) {
-            $childNodes = self::findNodes($dom, $options['child'], $isHtml);
-            $childNodes = !empty($childNodes) ? $childNodes : array();
-
-            foreach ($nodes as $node) {
-                foreach ($node->childNodes as $child) {
-                    foreach ($childNodes as $childNode) {
-                        if ($childNode === $child) {
-                            $filtered[] = $node;
-                        }
-                    }
-                }
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by adjacent-sibling
-        if ($options['adjacent-sibling']) {
-            $adjacentSiblingNodes = self::findNodes($dom, $options['adjacent-sibling'], $isHtml);
-            $adjacentSiblingNodes = !empty($adjacentSiblingNodes) ? $adjacentSiblingNodes : array();
-
-            foreach ($nodes as $node) {
-                $sibling = $node;
-
-                while ($sibling = $sibling->nextSibling) {
-                    if ($sibling->nodeType !== XML_ELEMENT_NODE) {
-                        continue;
-                    }
-
-                    foreach ($adjacentSiblingNodes as $adjacentSiblingNode) {
-                        if ($sibling === $adjacentSiblingNode) {
-                            $filtered[] = $node;
-                            break;
-                        }
-                    }
-
-                    break;
-                }
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by ancestor
-        if ($options['ancestor']) {
-            $ancestorNodes = self::findNodes($dom, $options['ancestor'], $isHtml);
-            $ancestorNode  = isset($ancestorNodes[0]) ? $ancestorNodes[0] : null;
-
-            foreach ($nodes as $node) {
-                $parent = $node->parentNode;
-
-                while ($parent && $parent->nodeType != XML_HTML_DOCUMENT_NODE) {
-                    if ($parent === $ancestorNode) {
-                        $filtered[] = $node;
-                    }
-
-                    $parent = $parent->parentNode;
-                }
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by descendant
-        if ($options['descendant']) {
-            $descendantNodes = self::findNodes($dom, $options['descendant'], $isHtml);
-            $descendantNodes = !empty($descendantNodes) ? $descendantNodes : array();
-
-            foreach ($nodes as $node) {
-                foreach (self::getDescendants($node) as $descendant) {
-                    foreach ($descendantNodes as $descendantNode) {
-                        if ($descendantNode === $descendant) {
-                            $filtered[] = $node;
-                        }
-                    }
-                }
-            }
-
-            $nodes    = $filtered;
-            $filtered = array();
-
-            if (empty($nodes)) {
-                return false;
-            }
-        }
-
-        // filter by children
-        if ($options['children']) {
-            $validChild   = array('count', 'greater_than', 'less_than', 'only');
-            $childOptions = self::assertValidKeys(
-                $options['children'], $validChild
-            );
-
-            foreach ($nodes as $node) {
-                $childNodes = $node->childNodes;
-
-                foreach ($childNodes as $childNode) {
-                    if ($childNode->nodeType !== XML_CDATA_SECTION_NODE &&
-                        $childNode->nodeType !== XML_TEXT_NODE) {
-                        $children[] = $childNode;
-                    }
-                }
-
-                // we must have children to pass this filter
-                if (!empty($children)) {
-                    // exact count of children
-                    if ($childOptions['count'] !== null) {
-                        if (count($children) !== $childOptions['count']) {
-                            break;
-                        }
-                    } // range count of children
-                    elseif ($childOptions['less_than']    !== null &&
-                            $childOptions['greater_than'] !== null) {
-                        if (count($children) >= $childOptions['less_than'] ||
-                            count($children) <= $childOptions['greater_than']) {
-                            break;
-                        }
-                    } // less than a given count
-                    elseif ($childOptions['less_than'] !== null) {
-                        if (count($children) >= $childOptions['less_than']) {
-                            break;
-                        }
-                    } // more than a given count
-                    elseif ($childOptions['greater_than'] !== null) {
-                        if (count($children) <= $childOptions['greater_than']) {
-                            break;
-                        }
-                    }
-
-                    // match each child against a specific tag
-                    if ($childOptions['only']) {
-                        $onlyNodes = self::findNodes(
-                            $dom, $childOptions['only'], $isHtml
-                        );
-
-                        // try to match each child to one of the 'only' nodes
-                        foreach ($children as $child) {
-                            $matched = false;
-
-                            foreach ($onlyNodes as $onlyNode) {
-                                if ($onlyNode === $child) {
-                                    $matched = true;
-                                }
-                            }
-
-                            if (!$matched) {
-                                break 2;
-                            }
-                        }
-                    }
-
-                    $filtered[] = $node;
-                }
-            }
-
-            $nodes = $filtered;
-
-            if (empty($nodes)) {
-                return;
-            }
-        }
-
-        // return the first node that matches all criteria
-        return !empty($nodes) ? $nodes : array();
-    }
-
-    /**
-     * Recursively get flat array of all descendants of this node.
-     *
-     * @param  DOMNode $node
-     * @return array
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     */
-    protected static function getDescendants(DOMNode $node)
-    {
-        $allChildren = array();
-        $childNodes  = $node->childNodes ? $node->childNodes : array();
-
-        foreach ($childNodes as $child) {
-            if ($child->nodeType === XML_CDATA_SECTION_NODE ||
-                $child->nodeType === XML_TEXT_NODE) {
-                continue;
-            }
-
-            $children    = self::getDescendants($child);
-            $allChildren = array_merge($allChildren, $children, array($child));
-        }
-
-        return isset($allChildren) ? $allChildren : array();
-    }
-
-    /**
-     * Gets elements by case insensitive tagname.
-     *
-     * @param  DOMDocument $dom
-     * @param  string      $tag
-     * @return DOMNodeList
-     * @since  Method available since Release 3.4.0
-     */
-    protected static function getElementsByCaseInsensitiveTagName(DOMDocument $dom, $tag)
-    {
-        $elements = $dom->getElementsByTagName(strtolower($tag));
-
-        if ($elements->length == 0) {
-            $elements = $dom->getElementsByTagName(strtoupper($tag));
-        }
-
-        return $elements;
-    }
-
-    /**
-     * Get the text value of this node's child text node.
-     *
-     * @param  DOMNode $node
-     * @return string
-     * @since  Method available since Release 3.3.0
-     * @author Mike Naberezny <mike@maintainable.com>
-     * @author Derek DeVries <derek@maintainable.com>
-     */
-    protected static function getNodeText(DOMNode $node)
-    {
-        if (!$node->childNodes instanceof DOMNodeList) {
-            return '';
-        }
-
-        $result = '';
-
-        foreach ($node->childNodes as $childNode) {
-            if ($childNode->nodeType === XML_TEXT_NODE ||
-                $childNode->nodeType === XML_CDATA_SECTION_NODE) {
-                $result .= trim($childNode->data) . ' ';
-            } else {
-                $result .= self::getNodeText($childNode);
-            }
-        }
-
-        return str_replace('  ', ' ', $result);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Extensions/RepeatedTestTest.php b/core/vendor/phpunit/phpunit/tests/Extensions/RepeatedTestTest.php
deleted file mode 100644
index 1dcf4ac..0000000
--- a/core/vendor/phpunit/phpunit/tests/Extensions/RepeatedTestTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- * @covers     PHPUnit_Extensions_RepeatedTest
- */
-class Extensions_RepeatedTestTest extends PHPUnit_Framework_TestCase
-{
-    protected $suite;
-
-    public function __construct()
-    {
-        $this->suite = new PHPUnit_Framework_TestSuite;
-
-        $this->suite->addTest(new Success);
-        $this->suite->addTest(new Success);
-    }
-
-    public function testRepeatedOnce()
-    {
-        $test = new PHPUnit_Extensions_RepeatedTest($this->suite, 1);
-        $this->assertEquals(2, count($test));
-
-        $result = $test->run();
-        $this->assertEquals(2, count($result));
-    }
-
-    public function testRepeatedMoreThanOnce()
-    {
-        $test = new PHPUnit_Extensions_RepeatedTest($this->suite, 3);
-        $this->assertEquals(6, count($test));
-
-        $result = $test->run();
-        $this->assertEquals(6, count($result));
-    }
-
-    public function testRepeatedZero()
-    {
-        $test = new PHPUnit_Extensions_RepeatedTest($this->suite, 0);
-        $this->assertEquals(0, count($test));
-
-        $result = $test->run();
-        $this->assertEquals(0, count($result));
-    }
-
-    public function testRepeatedNegative()
-    {
-        try {
-            $test = new PHPUnit_Extensions_RepeatedTest($this->suite, -1);
-        } catch (Exception $e) {
-            return;
-        }
-
-        $this->fail('Should throw an Exception');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Fail/fail.phpt b/core/vendor/phpunit/phpunit/tests/Fail/fail.phpt
deleted file mode 100644
index b88454f..0000000
--- a/core/vendor/phpunit/phpunit/tests/Fail/fail.phpt
+++ /dev/null
@@ -1,5 +0,0 @@
---TEST--
-// This test intentionally fails and it is checked by Travis.
---FILE--
---EXPECTF--
-unexpected
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php b/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php
deleted file mode 100644
index 4b0c61e..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/AssertTest.php
+++ /dev/null
@@ -1,3999 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class Framework_AssertTest extends PHPUnit_Framework_TestCase
-{
-    private $filesDirectory;
-
-    protected function setUp()
-    {
-        $this->filesDirectory = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR;
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::fail
-     */
-    public function testFail()
-    {
-        try {
-            $this->fail();
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        throw new PHPUnit_Framework_AssertionFailedError('Fail did not throw fail exception');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertSplObjectStorageContainsObject()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-        $c = new SplObjectStorage;
-        $c->attach($a);
-
-        $this->assertContains($a, $c);
-
-        try {
-            $this->assertContains($b, $c);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertArrayContainsObject()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-
-        $this->assertContains($a, array($a));
-
-        try {
-            $this->assertContains($a, array($b));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertArrayContainsString()
-    {
-        $this->assertContains('foo', array('foo'));
-
-        try {
-            $this->assertContains('foo', array('bar'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertArrayContainsNonObject()
-    {
-        $this->assertContains('foo', array(true));
-
-        try {
-            $this->assertContains('foo', array(true), '', false, true, true);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
-     */
-    public function testAssertContainsOnlyInstancesOf()
-    {
-        $test = array(
-            new Book(),
-            new Book
-        );
-        $this->assertContainsOnlyInstancesOf('Book', $test);
-        $this->assertContainsOnlyInstancesOf('stdClass', array(new stdClass()));
-
-        $test2 = array(
-            new Author('Test')
-        );
-        try {
-            $this->assertContainsOnlyInstancesOf('Book', $test2);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertArrayHasKey
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertArrayHasKeyThrowsExceptionForInvalidFirstArgument()
-    {
-        $this->assertArrayHasKey(null, array());
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertArrayHasKey
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertArrayHasKeyThrowsExceptionForInvalidSecondArgument()
-    {
-        $this->assertArrayHasKey(0, null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayHasKey
-     */
-    public function testAssertArrayHasIntegerKey()
-    {
-        $this->assertArrayHasKey(0, array('foo'));
-
-        try {
-            $this->assertArrayHasKey(1, array('foo'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArraySubset
-     * @covers PHPUnit_Framework_Constraint_ArraySubset
-     */
-    public function testassertArraySubset()
-    {
-        $array = array(
-            'a' => 'item a',
-            'b' => 'item b',
-            'c' => array('a2' => 'item a2', 'b2' => 'item b2'),
-            'd' => array('a2' => array('a3' => 'item a3', 'b3' => 'item b3'))
-        );
-
-        $this->assertArraySubset(array('a' => 'item a', 'c' => array('a2' => 'item a2')), $array);
-        $this->assertArraySubset(array('a' => 'item a', 'd' => array('a2' => array('b3' => 'item b3'))), $array);
-
-        try {
-            $this->assertArraySubset(array('a' => 'bad value'), $array);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-        }
-
-        try {
-            $this->assertArraySubset(array('d' => array('a2' => array('bad index' => 'item b3'))), $array);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArraySubset
-     * @covers PHPUnit_Framework_Constraint_ArraySubset
-     */
-    public function testassertArraySubsetWithDeepNestedArrays()
-    {
-        $array = array(
-            'path' => array(
-                'to' => array(
-                    'the' => array(
-                        'cake' => 'is a lie'
-                    )
-                )
-            )
-        );
-
-        $this->assertArraySubset(array('path' => array()), $array);
-        $this->assertArraySubset(array('path' => array('to' => array())), $array);
-        $this->assertArraySubset(array('path' => array('to' => array('the' => array()))), $array);
-        $this->assertArraySubset(array('path' => array('to' => array('the' => array('cake' => 'is a lie')))), $array);
-
-        try {
-            $this->assertArraySubset(array('path' => array('to' => array('the' => array('cake' => 'is not a lie')))), $array);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArraySubset
-     * @covers PHPUnit_Framework_Constraint_ArraySubset
-     */
-    public function testassertArraySubsetWithNoStrictCheckAndObjects()
-    {
-        $obj = new \stdClass;
-        $reference = &$obj;
-        $array = array('a' => $obj);
-
-        $this->assertArraySubset(array('a' => $reference), $array);
-        $this->assertArraySubset(array('a' => new \stdClass), $array);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArraySubset
-     * @covers PHPUnit_Framework_Constraint_ArraySubset
-     */
-    public function testassertArraySubsetWithStrictCheckAndObjects()
-    {
-        $obj = new \stdClass;
-        $reference = &$obj;
-        $array = array('a' => $obj);
-
-        $this->assertArraySubset(array('a' => $reference), $array, true);
-
-        try {
-            $this->assertArraySubset(array('a' => new \stdClass), $array, true);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail('Strict recursive array check fail.');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArraySubset
-     * @covers PHPUnit_Framework_Constraint_ArraySubset
-     * @expectedException PHPUnit_Framework_Exception
-     * @expectedExceptionMessage array or ArrayAccess
-     * @dataProvider assertArraySubsetInvalidArgumentProvider
-     */
-    public function testassertArraySubsetRaisesExceptionForInvalidArguments($partial, $subject)
-    {
-        $this->assertArraySubset($partial, $subject);
-    }
-
-    public function assertArraySubsetInvalidArgumentProvider()
-    {
-        return array(
-            array(false, array()),
-            array(array(), false),
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertArrayNotHasKey
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertArrayNotHasKeyThrowsExceptionForInvalidFirstArgument()
-    {
-        $this->assertArrayNotHasKey(null, array());
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertArrayNotHasKey
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertArrayNotHasKeyThrowsExceptionForInvalidSecondArgument()
-    {
-        $this->assertArrayNotHasKey(0, null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
-     */
-    public function testAssertArrayNotHasIntegerKey()
-    {
-        $this->assertArrayNotHasKey(1, array('foo'));
-
-        try {
-            $this->assertArrayNotHasKey(0, array('foo'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayHasKey
-     */
-    public function testAssertArrayHasStringKey()
-    {
-        $this->assertArrayHasKey('foo', array('foo' => 'bar'));
-
-        try {
-            $this->assertArrayHasKey('bar', array('foo' => 'bar'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
-     */
-    public function testAssertArrayNotHasStringKey()
-    {
-        $this->assertArrayNotHasKey('bar', array('foo' => 'bar'));
-
-        try {
-            $this->assertArrayNotHasKey('foo', array('foo' => 'bar'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayHasKey
-     */
-    public function testAssertArrayHasKeyAcceptsArrayObjectValue()
-    {
-        $array = new ArrayObject();
-        $array['foo'] = 'bar';
-        $this->assertArrayHasKey('foo', $array);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayHasKey
-     * @expectedException PHPUnit_Framework_AssertionFailedError
-     */
-    public function testAssertArrayHasKeyProperlyFailsWithArrayObjectValue()
-    {
-        $array = new ArrayObject();
-        $array['bar'] = 'bar';
-        $this->assertArrayHasKey('foo', $array);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayHasKey
-     */
-    public function testAssertArrayHasKeyAcceptsArrayAccessValue()
-    {
-        $array = new SampleArrayAccess();
-        $array['foo'] = 'bar';
-        $this->assertArrayHasKey('foo', $array);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayHasKey
-     * @expectedException PHPUnit_Framework_AssertionFailedError
-     */
-    public function testAssertArrayHasKeyProperlyFailsWithArrayAccessValue()
-    {
-        $array = new SampleArrayAccess();
-        $array['bar'] = 'bar';
-        $this->assertArrayHasKey('foo', $array);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
-     */
-    public function testAssertArrayNotHasKeyAcceptsArrayAccessValue()
-    {
-        $array = new ArrayObject();
-        $array['foo'] = 'bar';
-        $this->assertArrayNotHasKey('bar', $array);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
-     * @expectedException PHPUnit_Framework_AssertionFailedError
-     */
-    public function testAssertArrayNotHasKeyPropertlyFailsWithArrayAccessValue()
-    {
-        $array = new ArrayObject();
-        $array['bar'] = 'bar';
-        $this->assertArrayNotHasKey('bar', $array);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertContains
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertContainsThrowsException()
-    {
-        $this->assertContains(null, null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertIteratorContainsObject()
-    {
-        $foo = new stdClass;
-
-        $this->assertContains($foo, new TestIterator(array($foo)));
-
-        try {
-            $this->assertContains($foo, new TestIterator(array(new stdClass)));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertIteratorContainsString()
-    {
-        $this->assertContains('foo', new TestIterator(array('foo')));
-
-        try {
-            $this->assertContains('foo', new TestIterator(array('bar')));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContains
-     */
-    public function testAssertStringContainsString()
-    {
-        $this->assertContains('foo', 'foobar');
-
-        try {
-            $this->assertContains('foo', 'bar');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertNotContains
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotContainsThrowsException()
-    {
-        $this->assertNotContains(null, null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContains
-     */
-    public function testAssertSplObjectStorageNotContainsObject()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-        $c = new SplObjectStorage;
-        $c->attach($a);
-
-        $this->assertNotContains($b, $c);
-
-        try {
-            $this->assertNotContains($a, $c);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContains
-     */
-    public function testAssertArrayNotContainsObject()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-
-        $this->assertNotContains($a, array($b));
-
-        try {
-            $this->assertNotContains($a, array($a));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContains
-     */
-    public function testAssertArrayNotContainsString()
-    {
-        $this->assertNotContains('foo', array('bar'));
-
-        try {
-            $this->assertNotContains('foo', array('foo'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContains
-     */
-    public function testAssertArrayNotContainsNonObject()
-    {
-        $this->assertNotContains('foo', array(true), '', false, true, true);
-
-        try {
-            $this->assertNotContains('foo', array(true));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContains
-     */
-    public function testAssertStringNotContainsString()
-    {
-        $this->assertNotContains('foo', 'bar');
-
-        try {
-            $this->assertNotContains('foo', 'foo');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertContainsOnly
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertContainsOnlyThrowsException()
-    {
-        $this->assertContainsOnly(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertNotContainsOnly
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotContainsOnlyThrowsException()
-    {
-        $this->assertNotContainsOnly(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertContainsOnlyInstancesOfThrowsException()
-    {
-        $this->assertContainsOnlyInstancesOf(null, null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContainsOnly
-     */
-    public function testAssertArrayContainsOnlyIntegers()
-    {
-        $this->assertContainsOnly('integer', array(1, 2, 3));
-
-        try {
-            $this->assertContainsOnly('integer', array("1", 2, 3));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
-     */
-    public function testAssertArrayNotContainsOnlyIntegers()
-    {
-        $this->assertNotContainsOnly('integer', array("1", 2, 3));
-
-        try {
-            $this->assertNotContainsOnly('integer', array(1, 2, 3));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertContainsOnly
-     */
-    public function testAssertArrayContainsOnlyStdClass()
-    {
-        $this->assertContainsOnly('StdClass', array(new StdClass));
-
-        try {
-            $this->assertContainsOnly('StdClass', array('StdClass'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
-     */
-    public function testAssertArrayNotContainsOnlyStdClass()
-    {
-        $this->assertNotContainsOnly('StdClass', array('StdClass'));
-
-        try {
-            $this->assertNotContainsOnly('StdClass', array(new StdClass));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    protected function createDOMDocument($content)
-    {
-        $document = new DOMDocument;
-        $document->preserveWhiteSpace = false;
-        $document->loadXML($content);
-
-        return $document;
-    }
-
-    protected function sameValues()
-    {
-        $object = new SampleClass(4, 8, 15);
-        // cannot use $filesDirectory, because neither setUp() nor
-        // setUpBeforeClass() are executed before the data providers
-        $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
-        $resource = fopen($file, 'r');
-
-        return array(
-            // null
-            array(null, null),
-            // strings
-            array('a', 'a'),
-            // integers
-            array(0, 0),
-            // floats
-            array(2.3, 2.3),
-            array(1/3, 1 - 2/3),
-            array(log(0), log(0)),
-            // arrays
-            array(array(), array()),
-            array(array(0 => 1), array(0 => 1)),
-            array(array(0 => null), array(0 => null)),
-            array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(1, 2))),
-            // objects
-            array($object, $object),
-            // resources
-            array($resource, $resource),
-        );
-    }
-
-    protected function notEqualValues()
-    {
-        // cyclic dependencies
-        $book1 = new Book;
-        $book1->author = new Author('Terry Pratchett');
-        $book1->author->books[] = $book1;
-        $book2 = new Book;
-        $book2->author = new Author('Terry Pratch');
-        $book2->author->books[] = $book2;
-
-        $book3 = new Book;
-        $book3->author = 'Terry Pratchett';
-        $book4 = new stdClass;
-        $book4->author = 'Terry Pratchett';
-
-        $object1 = new SampleClass(4, 8, 15);
-        $object2 = new SampleClass(16, 23, 42);
-        $object3 = new SampleClass(4, 8, 15);
-        $storage1 = new SplObjectStorage;
-        $storage1->attach($object1);
-        $storage2 = new SplObjectStorage;
-        $storage2->attach($object3); // same content, different object
-
-        // cannot use $filesDirectory, because neither setUp() nor
-        // setUpBeforeClass() are executed before the data providers
-        $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
-
-        return array(
-            // strings
-            array('a', 'b'),
-            array('a', 'A'),
-            // https://github.com/sebastianbergmann/phpunit/issues/1023
-            array('9E6666666','9E7777777'),
-            // integers
-            array(1, 2),
-            array(2, 1),
-            // floats
-            array(2.3, 4.2),
-            array(2.3, 4.2, 0.5),
-            array(array(2.3), array(4.2), 0.5),
-            array(array(array(2.3)), array(array(4.2)), 0.5),
-            array(new Struct(2.3), new Struct(4.2), 0.5),
-            array(array(new Struct(2.3)), array(new Struct(4.2)), 0.5),
-            // NAN
-            array(NAN, NAN),
-            // arrays
-            array(array(), array(0 => 1)),
-            array(array(0 => 1), array()),
-            array(array(0 => null), array()),
-            array(array(0 => 1, 1 => 2), array(0 => 1, 1 => 3)),
-            array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(2, 1))),
-            // objects
-            array(new SampleClass(4, 8, 15), new SampleClass(16, 23, 42)),
-            array($object1, $object2),
-            array($book1, $book2),
-            array($book3, $book4), // same content, different class
-            // resources
-            array(fopen($file, 'r'), fopen($file, 'r')),
-            // SplObjectStorage
-            array($storage1, $storage2),
-            // DOMDocument
-            array(
-                $this->createDOMDocument('<root></root>'),
-                $this->createDOMDocument('<bar/>'),
-            ),
-            array(
-                $this->createDOMDocument('<foo attr1="bar"/>'),
-                $this->createDOMDocument('<foo attr1="foobar"/>'),
-            ),
-            array(
-                $this->createDOMDocument('<foo> bar </foo>'),
-                $this->createDOMDocument('<foo />'),
-            ),
-            array(
-                $this->createDOMDocument('<foo xmlns="urn:myns:bar"/>'),
-                $this->createDOMDocument('<foo xmlns="urn:notmyns:bar"/>'),
-            ),
-            array(
-                $this->createDOMDocument('<foo> bar </foo>'),
-                $this->createDOMDocument('<foo> bir </foo>'),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
-                3500
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 05:13:35', new DateTimeZone('America/New_York')),
-                3500
-            ),
-            array(
-                new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-            ),
-            array(
-                new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-                43200
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
-                3500
-            ),
-            array(
-                new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-30', new DateTimeZone('America/Chicago')),
-            ),
-            array(
-                new DateTime('2013-03-29T05:13:35-0600'),
-                new DateTime('2013-03-29T04:13:35-0600'),
-            ),
-            array(
-                new DateTime('2013-03-29T05:13:35-0600'),
-                new DateTime('2013-03-29T05:13:35-0500'),
-            ),
-            // Exception
-            //array(new Exception('Exception 1'), new Exception('Exception 2')),
-            // different types
-            array(new SampleClass(4, 8, 15), false),
-            array(false, new SampleClass(4, 8, 15)),
-            array(array(0 => 1, 1 => 2), false),
-            array(false, array(0 => 1, 1 => 2)),
-            array(array(), new stdClass),
-            array(new stdClass, array()),
-            // PHP: 0 == 'Foobar' => true!
-            // We want these values to differ
-            array(0, 'Foobar'),
-            array('Foobar', 0),
-            array(3, acos(8)),
-            array(acos(8), 3)
-        );
-    }
-
-    protected function equalValues()
-    {
-        // cyclic dependencies
-        $book1 = new Book;
-        $book1->author = new Author('Terry Pratchett');
-        $book1->author->books[] = $book1;
-        $book2 = new Book;
-        $book2->author = new Author('Terry Pratchett');
-        $book2->author->books[] = $book2;
-
-        $object1 = new SampleClass(4, 8, 15);
-        $object2 = new SampleClass(4, 8, 15);
-        $storage1 = new SplObjectStorage;
-        $storage1->attach($object1);
-        $storage2 = new SplObjectStorage;
-        $storage2->attach($object1);
-
-        return array(
-            // strings
-            array('a', 'A', 0, false, true), // ignore case
-            // arrays
-            array(array('a' => 1, 'b' => 2), array('b' => 2, 'a' => 1)),
-            array(array(1), array('1')),
-            array(array(3, 2, 1), array(2, 3, 1), 0, true), // canonicalized comparison
-            // floats
-            array(2.3, 2.5, 0.5),
-            array(array(2.3), array(2.5), 0.5),
-            array(array(array(2.3)), array(array(2.5)), 0.5),
-            array(new Struct(2.3), new Struct(2.5), 0.5),
-            array(array(new Struct(2.3)), array(new Struct(2.5)), 0.5),
-            // numeric with delta
-            array(1, 2, 1),
-            // objects
-            array($object1, $object2),
-            array($book1, $book2),
-            // SplObjectStorage
-            array($storage1, $storage2),
-            // DOMDocument
-            array(
-                $this->createDOMDocument('<root></root>'),
-                $this->createDOMDocument('<root/>'),
-            ),
-            array(
-                $this->createDOMDocument('<root attr="bar"></root>'),
-                $this->createDOMDocument('<root attr="bar"/>'),
-            ),
-            array(
-                $this->createDOMDocument('<root><foo attr="bar"></foo></root>'),
-                $this->createDOMDocument('<root><foo attr="bar"/></root>'),
-            ),
-            array(
-                $this->createDOMDocument("<root>\n  <child/>\n</root>"),
-                $this->createDOMDocument('<root><child/></root>'),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 04:13:25', new DateTimeZone('America/New_York')),
-                10
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 04:14:40', new DateTimeZone('America/New_York')),
-                65
-            ),
-            array(
-                new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago')),
-            ),
-            array(
-                new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 03:13:49', new DateTimeZone('America/Chicago')),
-                15
-            ),
-            array(
-                new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago')),
-            ),
-            array(
-                new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-                new DateTime('2013-03-29 23:01:30', new DateTimeZone('America/Chicago')),
-                100
-            ),
-            array(
-                new DateTime('@1364616000'),
-                new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago')),
-            ),
-            array(
-                new DateTime('2013-03-29T05:13:35-0500'),
-                new DateTime('2013-03-29T04:13:35-0600'),
-            ),
-            // Exception
-            //array(new Exception('Exception 1'), new Exception('Exception 1')),
-            // mixed types
-            array(0, '0'),
-            array('0', 0),
-            array(2.3, '2.3'),
-            array('2.3', 2.3),
-            array((string)(1/3), 1 - 2/3),
-            array(1/3, (string)(1 - 2/3)),
-            array('string representation', new ClassWithToString),
-            array(new ClassWithToString, 'string representation'),
-        );
-    }
-
-    public function equalProvider()
-    {
-        // same |= equal
-        return array_merge($this->equalValues(), $this->sameValues());
-    }
-
-    public function notEqualProvider()
-    {
-        return $this->notEqualValues();
-    }
-
-    public function sameProvider()
-    {
-        return $this->sameValues();
-    }
-
-    public function notSameProvider()
-    {
-        // not equal |= not same
-        // equal, ¬same |= not same
-        return array_merge($this->notEqualValues(), $this->equalValues());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEquals
-     * @dataProvider equalProvider
-     */
-    public function testAssertEqualsSucceeds($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEquals
-     * @dataProvider notEqualProvider
-     */
-    public function testAssertEqualsFails($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        try {
-            $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotEquals
-     * @dataProvider notEqualProvider
-     */
-    public function testAssertNotEqualsSucceeds($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotEquals
-     * @dataProvider equalProvider
-     */
-    public function testAssertNotEqualsFails($a, $b, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        try {
-            $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSame
-     * @dataProvider sameProvider
-     */
-    public function testAssertSameSucceeds($a, $b)
-    {
-        $this->assertSame($a, $b);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSame
-     * @dataProvider notSameProvider
-     */
-    public function testAssertSameFails($a, $b)
-    {
-        try {
-            $this->assertSame($a, $b);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSame
-     * @dataProvider notSameProvider
-     */
-    public function testAssertNotSameSucceeds($a, $b)
-    {
-        $this->assertNotSame($a, $b);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSame
-     * @dataProvider sameProvider
-     */
-    public function testAssertNotSameFails($a, $b)
-    {
-        try {
-            $this->assertNotSame($a, $b);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertXmlFileEqualsXmlFile
-     */
-    public function testAssertXmlFileEqualsXmlFile()
-    {
-        $this->assertXmlFileEqualsXmlFile(
-            $this->filesDirectory . 'foo.xml',
-            $this->filesDirectory . 'foo.xml'
-        );
-
-        try {
-            $this->assertXmlFileEqualsXmlFile(
-                $this->filesDirectory . 'foo.xml',
-                $this->filesDirectory . 'bar.xml'
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertXmlFileNotEqualsXmlFile
-     */
-    public function testAssertXmlFileNotEqualsXmlFile()
-    {
-        $this->assertXmlFileNotEqualsXmlFile(
-            $this->filesDirectory . 'foo.xml',
-            $this->filesDirectory . 'bar.xml'
-        );
-
-        try {
-            $this->assertXmlFileNotEqualsXmlFile(
-                $this->filesDirectory . 'foo.xml',
-                $this->filesDirectory . 'foo.xml'
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlFile
-     */
-    public function testAssertXmlStringEqualsXmlFile()
-    {
-        $this->assertXmlStringEqualsXmlFile(
-            $this->filesDirectory . 'foo.xml',
-            file_get_contents($this->filesDirectory . 'foo.xml')
-        );
-
-        try {
-            $this->assertXmlStringEqualsXmlFile(
-                $this->filesDirectory . 'foo.xml',
-                file_get_contents($this->filesDirectory . 'bar.xml')
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlFile
-     */
-    public function testXmlStringNotEqualsXmlFile()
-    {
-        $this->assertXmlStringNotEqualsXmlFile(
-            $this->filesDirectory . 'foo.xml',
-            file_get_contents($this->filesDirectory . 'bar.xml')
-        );
-
-        try {
-            $this->assertXmlStringNotEqualsXmlFile(
-                $this->filesDirectory . 'foo.xml',
-                file_get_contents($this->filesDirectory . 'foo.xml')
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString
-     */
-    public function testAssertXmlStringEqualsXmlString()
-    {
-        $this->assertXmlStringEqualsXmlString('<root/>', '<root/>');
-
-        try {
-            $this->assertXmlStringEqualsXmlString('<foo/>', '<bar/>');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlString
-     */
-    public function testAssertXmlStringNotEqualsXmlString()
-    {
-        $this->assertXmlStringNotEqualsXmlString('<foo/>', '<bar/>');
-
-        try {
-            $this->assertXmlStringNotEqualsXmlString('<root/>', '<root/>');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
-     */
-    public function testXMLStructureIsSame()
-    {
-        $expected = new DOMDocument;
-        $expected->load($this->filesDirectory . 'structureExpected.xml');
-
-        $actual = new DOMDocument;
-        $actual->load($this->filesDirectory . 'structureExpected.xml');
-
-        $this->assertEqualXMLStructure(
-            $expected->firstChild, $actual->firstChild, true
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertEqualXMLStructure
-     * @expectedException PHPUnit_Framework_ExpectationFailedException
-     */
-    public function testXMLStructureWrongNumberOfAttributes()
-    {
-        $expected = new DOMDocument;
-        $expected->load($this->filesDirectory . 'structureExpected.xml');
-
-        $actual = new DOMDocument;
-        $actual->load($this->filesDirectory . 'structureWrongNumberOfAttributes.xml');
-
-        $this->assertEqualXMLStructure(
-            $expected->firstChild, $actual->firstChild, true
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertEqualXMLStructure
-     * @expectedException PHPUnit_Framework_ExpectationFailedException
-     */
-    public function testXMLStructureWrongNumberOfNodes()
-    {
-        $expected = new DOMDocument;
-        $expected->load($this->filesDirectory . 'structureExpected.xml');
-
-        $actual = new DOMDocument;
-        $actual->load($this->filesDirectory . 'structureWrongNumberOfNodes.xml');
-
-        $this->assertEqualXMLStructure(
-            $expected->firstChild, $actual->firstChild, true
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
-     */
-    public function testXMLStructureIsSameButDataIsNot()
-    {
-        $expected = new DOMDocument;
-        $expected->load($this->filesDirectory . 'structureExpected.xml');
-
-        $actual = new DOMDocument;
-        $actual->load($this->filesDirectory . 'structureIsSameButDataIsNot.xml');
-
-        $this->assertEqualXMLStructure(
-            $expected->firstChild, $actual->firstChild, true
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
-     */
-    public function testXMLStructureAttributesAreSameButValuesAreNot()
-    {
-        $expected = new DOMDocument;
-        $expected->load($this->filesDirectory . 'structureExpected.xml');
-
-        $actual = new DOMDocument;
-        $actual->load($this->filesDirectory . 'structureAttributesAreSameButValuesAreNot.xml');
-
-        $this->assertEqualXMLStructure(
-            $expected->firstChild, $actual->firstChild, true
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
-     */
-    public function testXMLStructureIgnoreTextNodes()
-    {
-        $expected = new DOMDocument;
-        $expected->load($this->filesDirectory . 'structureExpected.xml');
-
-        $actual = new DOMDocument;
-        $actual->load($this->filesDirectory . 'structureIgnoreTextNodes.xml');
-
-        $this->assertEqualXMLStructure(
-            $expected->firstChild, $actual->firstChild, true
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEquals
-     */
-    public function testAssertStringEqualsNumeric()
-    {
-        $this->assertEquals('0', 0);
-
-        try {
-            $this->assertEquals('0', 1);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotEquals
-     */
-    public function testAssertStringEqualsNumeric2()
-    {
-        $this->assertNotEquals('A', 0);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertFileExists
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertFileExistsThrowsException()
-    {
-        $this->assertFileExists(null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertFileExists
-     */
-    public function testAssertFileExists()
-    {
-        $this->assertFileExists(__FILE__);
-
-        try {
-            $this->assertFileExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertFileNotExists
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertFileNotExistsThrowsException()
-    {
-        $this->assertFileNotExists(null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertFileNotExists
-     */
-    public function testAssertFileNotExists()
-    {
-        $this->assertFileNotExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
-
-        try {
-            $this->assertFileNotExists(__FILE__);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
-     */
-    public function testAssertObjectHasAttribute()
-    {
-        $o = new Author('Terry Pratchett');
-
-        $this->assertObjectHasAttribute('name', $o);
-
-        try {
-            $this->assertObjectHasAttribute('foo', $o);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     */
-    public function testAssertObjectNotHasAttribute()
-    {
-        $o = new Author('Terry Pratchett');
-
-        $this->assertObjectNotHasAttribute('foo', $o);
-
-        try {
-            $this->assertObjectNotHasAttribute('name', $o);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNull
-     */
-    public function testAssertNull()
-    {
-        $this->assertNull(null);
-
-        try {
-            $this->assertNull(new stdClass);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotNull
-     */
-    public function testAssertNotNull()
-    {
-        $this->assertNotNull(new stdClass);
-
-        try {
-            $this->assertNotNull(null);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertTrue
-     */
-    public function testAssertTrue()
-    {
-        $this->assertTrue(true);
-
-        try {
-            $this->assertTrue(false);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotTrue
-     */
-    public function testAssertNotTrue()
-    {
-        $this->assertNotTrue(false);
-        $this->assertNotTrue(1);
-        $this->assertNotTrue("true");
-
-        try {
-            $this->assertNotTrue(true);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertFalse
-     */
-    public function testAssertFalse()
-    {
-        $this->assertFalse(false);
-
-        try {
-            $this->assertFalse(true);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotFalse
-     */
-    public function testAssertNotFalse()
-    {
-        $this->assertNotFalse(true);
-        $this->assertNotFalse(0);
-        $this->assertNotFalse("");
-
-        try {
-            $this->assertNotFalse(false);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertRegExp
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertRegExpThrowsException()
-    {
-        $this->assertRegExp(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertRegExp
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertRegExpThrowsException2()
-    {
-        $this->assertRegExp('', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertNotRegExp
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotRegExpThrowsException()
-    {
-        $this->assertNotRegExp(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertNotRegExp
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotRegExpThrowsException2()
-    {
-        $this->assertNotRegExp('', null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertRegExp
-     */
-    public function testAssertRegExp()
-    {
-        $this->assertRegExp('/foo/', 'foobar');
-
-        try {
-            $this->assertRegExp('/foo/', 'bar');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotRegExp
-     */
-    public function testAssertNotRegExp()
-    {
-        $this->assertNotRegExp('/foo/', 'bar');
-
-        try {
-            $this->assertNotRegExp('/foo/', 'foobar');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSame
-     */
-    public function testAssertSame()
-    {
-        $o = new stdClass;
-
-        $this->assertSame($o, $o);
-
-        try {
-            $this->assertSame(
-                new stdClass,
-                new stdClass
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSame
-     */
-    public function testAssertSame2()
-    {
-        $this->assertSame(true, true);
-        $this->assertSame(false, false);
-
-        try {
-            $this->assertSame(true, false);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSame
-     */
-    public function testAssertNotSame()
-    {
-        $this->assertNotSame(
-            new stdClass,
-            null
-        );
-
-        $this->assertNotSame(
-            null,
-            new stdClass
-        );
-
-        $this->assertNotSame(
-            new stdClass,
-            new stdClass
-        );
-
-        $o = new stdClass;
-
-        try {
-            $this->assertNotSame($o, $o);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSame
-     */
-    public function testAssertNotSame2()
-    {
-        $this->assertNotSame(true, false);
-        $this->assertNotSame(false, true);
-
-        try {
-            $this->assertNotSame(true, true);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSame
-     */
-    public function testAssertNotSameFailsNull()
-    {
-        try {
-            $this->assertNotSame(null, null);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertGreaterThan
-     */
-    public function testGreaterThan()
-    {
-        $this->assertGreaterThan(1, 2);
-
-        try {
-            $this->assertGreaterThan(2, 1);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThan
-     */
-    public function testAttributeGreaterThan()
-    {
-        $this->assertAttributeGreaterThan(
-            1, 'bar', new ClassWithNonPublicAttributes
-        );
-
-        try {
-            $this->assertAttributeGreaterThan(
-                1, 'foo', new ClassWithNonPublicAttributes
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertGreaterThanOrEqual
-     */
-    public function testGreaterThanOrEqual()
-    {
-        $this->assertGreaterThanOrEqual(1, 2);
-
-        try {
-            $this->assertGreaterThanOrEqual(2, 1);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThanOrEqual
-     */
-    public function testAttributeGreaterThanOrEqual()
-    {
-        $this->assertAttributeGreaterThanOrEqual(
-            1, 'bar', new ClassWithNonPublicAttributes
-        );
-
-        try {
-            $this->assertAttributeGreaterThanOrEqual(
-                2, 'foo', new ClassWithNonPublicAttributes
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertLessThan
-     */
-    public function testLessThan()
-    {
-        $this->assertLessThan(2, 1);
-
-        try {
-            $this->assertLessThan(1, 2);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeLessThan
-     */
-    public function testAttributeLessThan()
-    {
-        $this->assertAttributeLessThan(
-            2, 'foo', new ClassWithNonPublicAttributes
-        );
-
-        try {
-            $this->assertAttributeLessThan(
-                1, 'bar', new ClassWithNonPublicAttributes
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertLessThanOrEqual
-     */
-    public function testLessThanOrEqual()
-    {
-        $this->assertLessThanOrEqual(2, 1);
-
-        try {
-            $this->assertLessThanOrEqual(1, 2);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeLessThanOrEqual
-     */
-    public function testAttributeLessThanOrEqual()
-    {
-        $this->assertAttributeLessThanOrEqual(
-            2, 'foo', new ClassWithNonPublicAttributes
-        );
-
-        try {
-            $this->assertAttributeLessThanOrEqual(
-                1, 'bar', new ClassWithNonPublicAttributes
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::readAttribute
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     */
-    public function testReadAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertEquals('foo', $this->readAttribute($obj, 'publicAttribute'));
-        $this->assertEquals('bar', $this->readAttribute($obj, 'protectedAttribute'));
-        $this->assertEquals('baz', $this->readAttribute($obj, 'privateAttribute'));
-        $this->assertEquals('bar', $this->readAttribute($obj, 'protectedParentAttribute'));
-        //$this->assertEquals('bar', $this->readAttribute($obj, 'privateParentAttribute'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::readAttribute
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     */
-    public function testReadAttribute2()
-    {
-        $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'publicStaticAttribute'));
-        $this->assertEquals('bar', $this->readAttribute('ClassWithNonPublicAttributes', 'protectedStaticAttribute'));
-        $this->assertEquals('baz', $this->readAttribute('ClassWithNonPublicAttributes', 'privateStaticAttribute'));
-        $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'protectedStaticParentAttribute'));
-        $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'privateStaticParentAttribute'));
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::readAttribute
-     * @covers            PHPUnit_Framework_Assert::getStaticAttribute
-     * @covers            PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testReadAttribute3()
-    {
-        $this->readAttribute('StdClass', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::readAttribute
-     * @covers            PHPUnit_Framework_Assert::getStaticAttribute
-     * @covers            PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testReadAttribute4()
-    {
-        $this->readAttribute('NotExistingClass', 'foo');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::readAttribute
-     * @covers            PHPUnit_Framework_Assert::getStaticAttribute
-     * @covers            PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testReadAttribute5()
-    {
-        $this->readAttribute(null, 'foo');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::readAttribute
-     * @covers            PHPUnit_Framework_Assert::getStaticAttribute
-     * @covers            PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testReadAttributeIfAttributeNameIsNotValid()
-    {
-        $this->readAttribute('StdClass', '2');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetStaticAttributeRaisesExceptionForInvalidFirstArgument()
-    {
-        $this->getStaticAttribute(null, 'foo');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetStaticAttributeRaisesExceptionForInvalidFirstArgument2()
-    {
-        $this->getStaticAttribute('NotExistingClass', 'foo');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetStaticAttributeRaisesExceptionForInvalidSecondArgument()
-    {
-        $this->getStaticAttribute('stdClass', null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetStaticAttributeRaisesExceptionForInvalidSecondArgument2()
-    {
-        $this->getStaticAttribute('stdClass', '0');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetStaticAttributeRaisesExceptionForInvalidSecondArgument3()
-    {
-        $this->getStaticAttribute('stdClass', 'foo');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetObjectAttributeRaisesExceptionForInvalidFirstArgument()
-    {
-        $this->getObjectAttribute(null, 'foo');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetObjectAttributeRaisesExceptionForInvalidSecondArgument()
-    {
-        $this->getObjectAttribute(new stdClass, null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetObjectAttributeRaisesExceptionForInvalidSecondArgument2()
-    {
-        $this->getObjectAttribute(new stdClass, '0');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testGetObjectAttributeRaisesExceptionForInvalidSecondArgument3()
-    {
-        $this->getObjectAttribute(new stdClass, 'foo');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::getObjectAttribute
-     */
-    public function testGetObjectAttributeWorksForInheritedAttributes()
-    {
-        $this->assertEquals(
-            'bar',
-            $this->getObjectAttribute(new ClassWithNonPublicAttributes, 'privateParentAttribute')
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeContains
-     */
-    public function testAssertPublicAttributeContains()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeContains('foo', 'publicArray', $obj);
-
-        try {
-            $this->assertAttributeContains('bar', 'publicArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeContainsOnly
-     */
-    public function testAssertPublicAttributeContainsOnly()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeContainsOnly('string', 'publicArray', $obj);
-
-        try {
-            $this->assertAttributeContainsOnly('integer', 'publicArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
-     */
-    public function testAssertPublicAttributeNotContains()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotContains('bar', 'publicArray', $obj);
-
-        try {
-            $this->assertAttributeNotContains('foo', 'publicArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotContainsOnly
-     */
-    public function testAssertPublicAttributeNotContainsOnly()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotContainsOnly('integer', 'publicArray', $obj);
-
-        try {
-            $this->assertAttributeNotContainsOnly('string', 'publicArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeContains
-     */
-    public function testAssertProtectedAttributeContains()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeContains('bar', 'protectedArray', $obj);
-
-        try {
-            $this->assertAttributeContains('foo', 'protectedArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
-     */
-    public function testAssertProtectedAttributeNotContains()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotContains('foo', 'protectedArray', $obj);
-
-        try {
-            $this->assertAttributeNotContains('bar', 'protectedArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeContains
-     */
-    public function testAssertPrivateAttributeContains()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeContains('baz', 'privateArray', $obj);
-
-        try {
-            $this->assertAttributeContains('foo', 'privateArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
-     */
-    public function testAssertPrivateAttributeNotContains()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotContains('foo', 'privateArray', $obj);
-
-        try {
-            $this->assertAttributeNotContains('baz', 'privateArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeContains
-     */
-    public function testAssertAttributeContainsNonObject()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeContains(true, 'privateArray', $obj);
-
-        try {
-            $this->assertAttributeContains(true, 'privateArray', $obj, '', false, true, true);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
-     */
-    public function testAssertAttributeNotContainsNonObject()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotContains(true, 'privateArray', $obj, '', false, true, true);
-
-        try {
-            $this->assertAttributeNotContains(true, 'privateArray', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEquals
-     */
-    public function testAssertPublicAttributeEquals()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeEquals('foo', 'publicAttribute', $obj);
-
-        try {
-            $this->assertAttributeEquals('bar', 'publicAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
-     */
-    public function testAssertPublicAttributeNotEquals()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotEquals('bar', 'publicAttribute', $obj);
-
-        try {
-            $this->assertAttributeNotEquals('foo', 'publicAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeSame
-     */
-    public function testAssertPublicAttributeSame()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeSame('foo', 'publicAttribute', $obj);
-
-        try {
-            $this->assertAttributeSame('bar', 'publicAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotSame
-     */
-    public function testAssertPublicAttributeNotSame()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotSame('bar', 'publicAttribute', $obj);
-
-        try {
-            $this->assertAttributeNotSame('foo', 'publicAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEquals
-     */
-    public function testAssertProtectedAttributeEquals()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeEquals('bar', 'protectedAttribute', $obj);
-
-        try {
-            $this->assertAttributeEquals('foo', 'protectedAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
-     */
-    public function testAssertProtectedAttributeNotEquals()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotEquals('foo', 'protectedAttribute', $obj);
-
-        try {
-            $this->assertAttributeNotEquals('bar', 'protectedAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEquals
-     */
-    public function testAssertPrivateAttributeEquals()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeEquals('baz', 'privateAttribute', $obj);
-
-        try {
-            $this->assertAttributeEquals('foo', 'privateAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
-     */
-    public function testAssertPrivateAttributeNotEquals()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertAttributeNotEquals('foo', 'privateAttribute', $obj);
-
-        try {
-            $this->assertAttributeNotEquals('baz', 'privateAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEquals
-     */
-    public function testAssertPublicStaticAttributeEquals()
-    {
-        $this->assertAttributeEquals('foo', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertAttributeEquals('bar', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
-     */
-    public function testAssertPublicStaticAttributeNotEquals()
-    {
-        $this->assertAttributeNotEquals('bar', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertAttributeNotEquals('foo', 'publicStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEquals
-     */
-    public function testAssertProtectedStaticAttributeEquals()
-    {
-        $this->assertAttributeEquals('bar', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertAttributeEquals('foo', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
-     */
-    public function testAssertProtectedStaticAttributeNotEquals()
-    {
-        $this->assertAttributeNotEquals('foo', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertAttributeNotEquals('bar', 'protectedStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEquals
-     */
-    public function testAssertPrivateStaticAttributeEquals()
-    {
-        $this->assertAttributeEquals('baz', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertAttributeEquals('foo', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEquals
-     */
-    public function testAssertPrivateStaticAttributeNotEquals()
-    {
-        $this->assertAttributeNotEquals('foo', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertAttributeNotEquals('baz', 'privateStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassHasAttributeThrowsException()
-    {
-        $this->assertClassHasAttribute(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassHasAttributeThrowsException2()
-    {
-        $this->assertClassHasAttribute('foo', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassHasAttributeThrowsExceptionIfAttributeNameIsNotValid()
-    {
-        $this->assertClassHasAttribute('1', 'ClassWithNonPublicAttributes');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassNotHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassNotHasAttributeThrowsException()
-    {
-        $this->assertClassNotHasAttribute(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassNotHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassNotHasAttributeThrowsException2()
-    {
-        $this->assertClassNotHasAttribute('foo', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassNotHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassNotHasAttributeThrowsExceptionIfAttributeNameIsNotValid()
-    {
-        $this->assertClassNotHasAttribute('1', 'ClassWithNonPublicAttributes');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassHasStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassHasStaticAttributeThrowsException()
-    {
-        $this->assertClassHasStaticAttribute(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassHasStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassHasStaticAttributeThrowsException2()
-    {
-        $this->assertClassHasStaticAttribute('foo', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassHasStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassHasStaticAttributeThrowsExceptionIfAttributeNameIsNotValid()
-    {
-        $this->assertClassHasStaticAttribute('1', 'ClassWithNonPublicAttributes');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassNotHasStaticAttributeThrowsException()
-    {
-        $this->assertClassNotHasStaticAttribute(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassNotHasStaticAttributeThrowsException2()
-    {
-        $this->assertClassNotHasStaticAttribute('foo', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertClassNotHasStaticAttributeThrowsExceptionIfAttributeNameIsNotValid()
-    {
-        $this->assertClassNotHasStaticAttribute('1', 'ClassWithNonPublicAttributes');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertObjectHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertObjectHasAttributeThrowsException()
-    {
-        $this->assertObjectHasAttribute(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertObjectHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertObjectHasAttributeThrowsException2()
-    {
-        $this->assertObjectHasAttribute('foo', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertObjectHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertObjectHasAttributeThrowsExceptionIfAttributeNameIsNotValid()
-    {
-        $this->assertObjectHasAttribute('1', 'ClassWithNonPublicAttributes');
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertObjectNotHasAttributeThrowsException()
-    {
-        $this->assertObjectNotHasAttribute(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertObjectNotHasAttributeThrowsException2()
-    {
-        $this->assertObjectNotHasAttribute('foo', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertObjectNotHasAttributeThrowsExceptionIfAttributeNameIsNotValid()
-    {
-        $this->assertObjectNotHasAttribute('1', 'ClassWithNonPublicAttributes');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertClassHasAttribute
-     */
-    public function testClassHasPublicAttribute()
-    {
-        $this->assertClassHasAttribute('publicAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertClassHasAttribute('attribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertClassNotHasAttribute
-     */
-    public function testClassNotHasPublicAttribute()
-    {
-        $this->assertClassNotHasAttribute('attribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertClassNotHasAttribute('publicAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertClassHasStaticAttribute
-     */
-    public function testClassHasPublicStaticAttribute()
-    {
-        $this->assertClassHasStaticAttribute('publicStaticAttribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertClassHasStaticAttribute('attribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertClassNotHasStaticAttribute
-     */
-    public function testClassNotHasPublicStaticAttribute()
-    {
-        $this->assertClassNotHasStaticAttribute('attribute', 'ClassWithNonPublicAttributes');
-
-        try {
-            $this->assertClassNotHasStaticAttribute('publicStaticAttribute', 'ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
-     */
-    public function testObjectHasPublicAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertObjectHasAttribute('publicAttribute', $obj);
-
-        try {
-            $this->assertObjectHasAttribute('attribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     */
-    public function testObjectNotHasPublicAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertObjectNotHasAttribute('attribute', $obj);
-
-        try {
-            $this->assertObjectNotHasAttribute('publicAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
-     */
-    public function testObjectHasOnTheFlyAttribute()
-    {
-        $obj = new StdClass;
-        $obj->foo = 'bar';
-
-        $this->assertObjectHasAttribute('foo', $obj);
-
-        try {
-            $this->assertObjectHasAttribute('bar', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     */
-    public function testObjectNotHasOnTheFlyAttribute()
-    {
-        $obj = new StdClass;
-        $obj->foo = 'bar';
-
-        $this->assertObjectNotHasAttribute('bar', $obj);
-
-        try {
-            $this->assertObjectNotHasAttribute('foo', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
-     */
-    public function testObjectHasProtectedAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertObjectHasAttribute('protectedAttribute', $obj);
-
-        try {
-            $this->assertObjectHasAttribute('attribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     */
-    public function testObjectNotHasProtectedAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertObjectNotHasAttribute('attribute', $obj);
-
-        try {
-            $this->assertObjectNotHasAttribute('protectedAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
-     */
-    public function testObjectHasPrivateAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertObjectHasAttribute('privateAttribute', $obj);
-
-        try {
-            $this->assertObjectHasAttribute('attribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
-     */
-    public function testObjectNotHasPrivateAttribute()
-    {
-        $obj = new ClassWithNonPublicAttributes;
-
-        $this->assertObjectNotHasAttribute('attribute', $obj);
-
-        try {
-            $this->assertObjectNotHasAttribute('privateAttribute', $obj);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::attribute
-     * @covers PHPUnit_Framework_Assert::equalTo
-     */
-    public function testAssertThatAttributeEquals()
-    {
-        $this->assertThat(
-            new ClassWithNonPublicAttributes,
-            $this->attribute(
-                $this->equalTo('foo'),
-                'publicAttribute'
-            )
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertThat
-     * @covers            PHPUnit_Framework_Assert::attribute
-     * @covers            PHPUnit_Framework_Assert::equalTo
-     * @expectedException PHPUnit_Framework_AssertionFailedError
-     */
-    public function testAssertThatAttributeEquals2()
-    {
-        $this->assertThat(
-            new ClassWithNonPublicAttributes,
-            $this->attribute(
-                $this->equalTo('bar'),
-                'publicAttribute'
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::attribute
-     * @covers PHPUnit_Framework_Assert::equalTo
-     */
-    public function testAssertThatAttributeEqualTo()
-    {
-        $this->assertThat(
-            new ClassWithNonPublicAttributes,
-            $this->attributeEqualTo('publicAttribute', 'foo')
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::anything
-     */
-    public function testAssertThatAnything()
-    {
-        $this->assertThat('anything', $this->anything());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::anything
-     * @covers PHPUnit_Framework_Assert::logicalAnd
-     */
-    public function testAssertThatAnythingAndAnything()
-    {
-        $this->assertThat(
-            'anything',
-            $this->logicalAnd(
-                $this->anything(), $this->anything()
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::anything
-     * @covers PHPUnit_Framework_Assert::logicalOr
-     */
-    public function testAssertThatAnythingOrAnything()
-    {
-        $this->assertThat(
-            'anything',
-            $this->logicalOr(
-                $this->anything(), $this->anything()
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::anything
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_Assert::logicalXor
-     */
-    public function testAssertThatAnythingXorNotAnything()
-    {
-        $this->assertThat(
-            'anything',
-            $this->logicalXor(
-                $this->anything(),
-                $this->logicalNot($this->anything())
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::contains
-     */
-    public function testAssertThatContains()
-    {
-        $this->assertThat(array('foo'), $this->contains('foo'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::stringContains
-     */
-    public function testAssertThatStringContains()
-    {
-        $this->assertThat('barfoobar', $this->stringContains('foo'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::containsOnly
-     */
-    public function testAssertThatContainsOnly()
-    {
-        $this->assertThat(array('foo'), $this->containsOnly('string'));
-    }
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::containsOnlyInstancesOf
-     */
-    public function testAssertThatContainsOnlyInstancesOf()
-    {
-        $this->assertThat(array(new Book), $this->containsOnlyInstancesOf('Book'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::arrayHasKey
-     */
-    public function testAssertThatArrayHasKey()
-    {
-        $this->assertThat(array('foo' => 'bar'), $this->arrayHasKey('foo'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::classHasAttribute
-     */
-    public function testAssertThatClassHasAttribute()
-    {
-        $this->assertThat(
-            new ClassWithNonPublicAttributes,
-            $this->classHasAttribute('publicAttribute')
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::classHasStaticAttribute
-     */
-    public function testAssertThatClassHasStaticAttribute()
-    {
-        $this->assertThat(
-            new ClassWithNonPublicAttributes,
-            $this->classHasStaticAttribute('publicStaticAttribute')
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::objectHasAttribute
-     */
-    public function testAssertThatObjectHasAttribute()
-    {
-        $this->assertThat(
-            new ClassWithNonPublicAttributes,
-            $this->objectHasAttribute('publicAttribute')
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::equalTo
-     */
-    public function testAssertThatEqualTo()
-    {
-        $this->assertThat('foo', $this->equalTo('foo'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     */
-    public function testAssertThatIdenticalTo()
-    {
-        $value      = new StdClass;
-        $constraint = $this->identicalTo($value);
-
-        $this->assertThat($value, $constraint);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::isInstanceOf
-     */
-    public function testAssertThatIsInstanceOf()
-    {
-        $this->assertThat(new StdClass, $this->isInstanceOf('StdClass'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::isType
-     */
-    public function testAssertThatIsType()
-    {
-        $this->assertThat('string', $this->isType('string'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::isEmpty
-     */
-    public function testAssertThatIsEmpty()
-    {
-        $this->assertThat(array(), $this->isEmpty());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::fileExists
-     */
-    public function testAssertThatFileExists()
-    {
-        $this->assertThat(__FILE__, $this->fileExists());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::greaterThan
-     */
-    public function testAssertThatGreaterThan()
-    {
-        $this->assertThat(2, $this->greaterThan(1));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::greaterThanOrEqual
-     */
-    public function testAssertThatGreaterThanOrEqual()
-    {
-        $this->assertThat(2, $this->greaterThanOrEqual(1));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::lessThan
-     */
-    public function testAssertThatLessThan()
-    {
-        $this->assertThat(1, $this->lessThan(2));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::lessThanOrEqual
-     */
-    public function testAssertThatLessThanOrEqual()
-    {
-        $this->assertThat(1, $this->lessThanOrEqual(2));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::matchesRegularExpression
-     */
-    public function testAssertThatMatchesRegularExpression()
-    {
-        $this->assertThat('foobar', $this->matchesRegularExpression('/foo/'));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::callback
-     */
-    public function testAssertThatCallback()
-    {
-        $this->assertThat(null, $this->callback(function ($other) { return true;
-        }));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertThat
-     * @covers PHPUnit_Framework_Assert::countOf
-     */
-    public function testAssertThatCountOf()
-    {
-        $this->assertThat(array(1), $this->countOf(1));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertFileEquals
-     */
-    public function testAssertFileEquals()
-    {
-        $this->assertFileEquals(
-            $this->filesDirectory . 'foo.xml',
-            $this->filesDirectory . 'foo.xml'
-        );
-
-        try {
-            $this->assertFileEquals(
-                $this->filesDirectory . 'foo.xml',
-                $this->filesDirectory . 'bar.xml'
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertFileNotEquals
-     */
-    public function testAssertFileNotEquals()
-    {
-        $this->assertFileNotEquals(
-            $this->filesDirectory . 'foo.xml',
-            $this->filesDirectory . 'bar.xml'
-        );
-
-        try {
-            $this->assertFileNotEquals(
-                $this->filesDirectory . 'foo.xml',
-                $this->filesDirectory . 'foo.xml'
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringEqualsFile
-     */
-    public function testAssertStringEqualsFile()
-    {
-        $this->assertStringEqualsFile(
-            $this->filesDirectory . 'foo.xml',
-            file_get_contents($this->filesDirectory . 'foo.xml')
-        );
-
-        try {
-            $this->assertStringEqualsFile(
-                $this->filesDirectory . 'foo.xml',
-                file_get_contents($this->filesDirectory . 'bar.xml')
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringNotEqualsFile
-     */
-    public function testAssertStringNotEqualsFile()
-    {
-        $this->assertStringNotEqualsFile(
-            $this->filesDirectory . 'foo.xml',
-            file_get_contents($this->filesDirectory . 'bar.xml')
-        );
-
-        try {
-            $this->assertStringNotEqualsFile(
-                $this->filesDirectory . 'foo.xml',
-                file_get_contents($this->filesDirectory . 'foo.xml')
-            );
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringStartsWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringStartsWithThrowsException()
-    {
-        $this->assertStringStartsWith(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringStartsWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringStartsWithThrowsException2()
-    {
-        $this->assertStringStartsWith('', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringStartsNotWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringStartsNotWithThrowsException()
-    {
-        $this->assertStringStartsNotWith(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringStartsNotWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringStartsNotWithThrowsException2()
-    {
-        $this->assertStringStartsNotWith('', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringEndsWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringEndsWithThrowsException()
-    {
-        $this->assertStringEndsWith(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringEndsWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringEndsWithThrowsException2()
-    {
-        $this->assertStringEndsWith('', null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringEndsNotWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringEndsNotWithThrowsException()
-    {
-        $this->assertStringEndsNotWith(null, null);
-    }
-
-    /**
-     * @covers            PHPUnit_Framework_Assert::assertStringEndsNotWith
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringEndsNotWithThrowsException2()
-    {
-        $this->assertStringEndsNotWith('', null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringStartsWith
-     */
-    public function testAssertStringStartsWith()
-    {
-        $this->assertStringStartsWith('prefix', 'prefixfoo');
-
-        try {
-            $this->assertStringStartsWith('prefix', 'foo');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringStartsNotWith
-     */
-    public function testAssertStringStartsNotWith()
-    {
-        $this->assertStringStartsNotWith('prefix', 'foo');
-
-        try {
-            $this->assertStringStartsNotWith('prefix', 'prefixfoo');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringEndsWith
-     */
-    public function testAssertStringEndsWith()
-    {
-        $this->assertStringEndsWith('suffix', 'foosuffix');
-
-        try {
-            $this->assertStringEndsWith('suffix', 'foo');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringEndsNotWith
-     */
-    public function testAssertStringEndsNotWith()
-    {
-        $this->assertStringEndsNotWith('suffix', 'foo');
-
-        try {
-            $this->assertStringEndsNotWith('suffix', 'foosuffix');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringMatchesFormat
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringMatchesFormatRaisesExceptionForInvalidFirstArgument()
-    {
-        $this->assertStringMatchesFormat(null, '');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringMatchesFormat
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringMatchesFormatRaisesExceptionForInvalidSecondArgument()
-    {
-        $this->assertStringMatchesFormat('', null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringMatchesFormat
-     */
-    public function testAssertStringMatchesFormat()
-    {
-        $this->assertStringMatchesFormat('*%s*', '***');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringMatchesFormat
-     * @expectedException PHPUnit_Framework_AssertionFailedError
-     */
-    public function testAssertStringMatchesFormatFailure()
-    {
-        $this->assertStringMatchesFormat('*%s*', '**');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringNotMatchesFormat
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringNotMatchesFormatRaisesExceptionForInvalidFirstArgument()
-    {
-        $this->assertStringNotMatchesFormat(null, '');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringNotMatchesFormat
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertStringNotMatchesFormatRaisesExceptionForInvalidSecondArgument()
-    {
-        $this->assertStringNotMatchesFormat('', null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertStringNotMatchesFormat
-     */
-    public function testAssertStringNotMatchesFormat()
-    {
-        $this->assertStringNotMatchesFormat('*%s*', '**');
-
-        try {
-            $this->assertStringMatchesFormat('*%s*', '**');
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertEmpty
-     */
-    public function testAssertEmpty()
-    {
-        $this->assertEmpty(array());
-
-        try {
-            $this->assertEmpty(array('foo'));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotEmpty
-     */
-    public function testAssertNotEmpty()
-    {
-        $this->assertNotEmpty(array('foo'));
-
-        try {
-            $this->assertNotEmpty(array());
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeEmpty
-     */
-    public function testAssertAttributeEmpty()
-    {
-        $o    = new StdClass;
-        $o->a = array();
-
-        $this->assertAttributeEmpty('a', $o);
-
-        try {
-            $o->a = array('b');
-            $this->assertAttributeEmpty('a', $o);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotEmpty
-     */
-    public function testAssertAttributeNotEmpty()
-    {
-        $o    = new StdClass;
-        $o->a = array('b');
-
-        $this->assertAttributeNotEmpty('a', $o);
-
-        try {
-            $o->a = array();
-            $this->assertAttributeNotEmpty('a', $o);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::markTestIncomplete
-     */
-    public function testMarkTestIncomplete()
-    {
-        try {
-            $this->markTestIncomplete('incomplete');
-        } catch (PHPUnit_Framework_IncompleteTestError $e) {
-            $this->assertEquals('incomplete', $e->getMessage());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::markTestSkipped
-     */
-    public function testMarkTestSkipped()
-    {
-        try {
-            $this->markTestSkipped('skipped');
-        } catch (PHPUnit_Framework_SkippedTestError $e) {
-            $this->assertEquals('skipped', $e->getMessage());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertCount
-     */
-    public function testAssertCount()
-    {
-        $this->assertCount(2, array(1, 2));
-
-        try {
-            $this->assertCount(2, array(1, 2, 3));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertCount
-     */
-    public function testAssertCountTraversable()
-    {
-        $this->assertCount(2, new ArrayIterator(array(1, 2)));
-
-        try {
-            $this->assertCount(2, new ArrayIterator(array(1, 2, 3)));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertCount
-     */
-    public function testAssertCountThrowsExceptionIfExpectedCountIsNoInteger()
-    {
-        try {
-            $this->assertCount('a', array());
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->assertEquals('Argument #1 (No Value) of PHPUnit_Framework_Assert::assertCount() must be a integer', $e->getMessage());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertCount
-     */
-    public function testAssertCountThrowsExceptionIfElementIsNotCountable()
-    {
-        try {
-            $this->assertCount(2, '');
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->assertEquals('Argument #2 (No Value) of PHPUnit_Framework_Assert::assertCount() must be a countable or traversable', $e->getMessage());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeCount
-     */
-    public function testAssertAttributeCount()
-    {
-        $o    = new stdClass;
-        $o->a = array();
-
-        $this->assertAttributeCount(0, 'a', $o);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotCount
-     */
-    public function testAssertNotCount()
-    {
-        $this->assertNotCount(2, array(1, 2, 3));
-
-        try {
-            $this->assertNotCount(2, array(1, 2));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotCount
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotCountThrowsExceptionIfExpectedCountIsNoInteger()
-    {
-        $this->assertNotCount('a', array());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotCount
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotCountThrowsExceptionIfElementIsNotCountable()
-    {
-        $this->assertNotCount(2, '');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotCount
-     */
-    public function testAssertAttributeNotCount()
-    {
-        $o    = new stdClass;
-        $o->a = array();
-
-        $this->assertAttributeNotCount(1, 'a', $o);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSameSize
-     */
-    public function testAssertSameSize()
-    {
-        $this->assertSameSize(array(1, 2), array(3, 4));
-
-        try {
-            $this->assertSameSize(array(1, 2), array(1, 2, 3));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSameSize
-     */
-    public function testAssertSameSizeThrowsExceptionIfExpectedIsNotCountable()
-    {
-        try {
-            $this->assertSameSize('a', array());
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->assertEquals('Argument #1 (No Value) of PHPUnit_Framework_Assert::assertSameSize() must be a countable or traversable', $e->getMessage());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertSameSize
-     */
-    public function testAssertSameSizeThrowsExceptionIfActualIsNotCountable()
-    {
-        try {
-            $this->assertSameSize(array(), '');
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->assertEquals('Argument #2 (No Value) of PHPUnit_Framework_Assert::assertSameSize() must be a countable or traversable', $e->getMessage());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSameSize
-     */
-    public function testAssertNotSameSize()
-    {
-        $this->assertNotSameSize(array(1, 2), array(1, 2, 3));
-
-        try {
-            $this->assertNotSameSize(array(1, 2), array(3, 4));
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSameSize
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotSameSizeThrowsExceptionIfExpectedIsNotCountable()
-    {
-        $this->assertNotSameSize('a', array());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotSameSize
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotSameSizeThrowsExceptionIfActualIsNotCountable()
-    {
-        $this->assertNotSameSize(array(), '');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJson
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertJsonRaisesExceptionForInvalidArgument()
-    {
-        $this->assertJson(null);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonString
-     */
-    public function testAssertJsonStringEqualsJsonString()
-    {
-        $expected = '{"Mascott" : "Tux"}';
-        $actual   = '{"Mascott" : "Tux"}';
-        $message  = 'Given Json strings do not match';
-
-        $this->assertJsonStringEqualsJsonString($expected, $actual, $message);
-    }
-
-    /**
-     * @dataProvider validInvalidJsonDataprovider
-     * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonString
-     */
-    public function testAssertJsonStringEqualsJsonStringErrorRaised($expected, $actual)
-    {
-        try {
-            $this->assertJsonStringEqualsJsonString($expected, $actual);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-        $this->fail('Expected exception not found');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonString
-     */
-    public function testAssertJsonStringNotEqualsJsonString()
-    {
-        $expected = '{"Mascott" : "Beastie"}';
-        $actual   = '{"Mascott" : "Tux"}';
-        $message  = 'Given Json strings do match';
-
-        $this->assertJsonStringNotEqualsJsonString($expected, $actual, $message);
-    }
-
-    /**
-     * @dataProvider validInvalidJsonDataprovider
-     * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonString
-     */
-    public function testAssertJsonStringNotEqualsJsonStringErrorRaised($expected, $actual)
-    {
-        try {
-            $this->assertJsonStringNotEqualsJsonString($expected, $actual);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-        $this->fail('Expected exception not found');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile
-     */
-    public function testAssertJsonStringEqualsJsonFile()
-    {
-        $file = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        $actual = json_encode(array("Mascott" => "Tux"));
-        $message = '';
-        $this->assertJsonStringEqualsJsonFile($file, $actual, $message);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile
-     */
-    public function testAssertJsonStringEqualsJsonFileExpectingExpectationFailedException()
-    {
-        $file = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        $actual = json_encode(array("Mascott" => "Beastie"));
-        $message = '';
-        try {
-            $this->assertJsonStringEqualsJsonFile($file, $actual, $message);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-                'Failed asserting that \'{"Mascott":"Beastie"}\' matches JSON string "{"Mascott":"Tux"}".',
-                $e->getMessage()
-            );
-            return;
-        }
-
-        $this->fail('Expected Exception not thrown.');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringEqualsJsonFile
-     */
-    public function testAssertJsonStringEqualsJsonFileExpectingException()
-    {
-        $file = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        try {
-            $this->assertJsonStringEqualsJsonFile($file, null);
-        } catch (PHPUnit_Framework_Exception $e) {
-            return;
-        }
-        $this->fail('Expected Exception not thrown.');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonFile
-     */
-    public function testAssertJsonStringNotEqualsJsonFile()
-    {
-        $file = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        $actual = json_encode(array("Mascott" => "Beastie"));
-        $message = '';
-        $this->assertJsonStringNotEqualsJsonFile($file, $actual, $message);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonStringNotEqualsJsonFile
-     */
-    public function testAssertJsonStringNotEqualsJsonFileExpectingException()
-    {
-        $file = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        try {
-            $this->assertJsonStringNotEqualsJsonFile($file, null);
-        } catch (PHPUnit_Framework_Exception $e) {
-            return;
-        }
-        $this->fail('Expected exception not found.');
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonFileNotEqualsJsonFile
-     */
-    public function testAssertJsonFileNotEqualsJsonFile()
-    {
-        $fileExpected = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        $fileActual   = __DIR__ . '/../_files/JsonData/arrayObject.json';
-        $message = '';
-        $this->assertJsonFileNotEqualsJsonFile($fileExpected, $fileActual, $message);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertJsonFileEqualsJsonFile
-     */
-    public function testAssertJsonFileEqualsJsonFile()
-    {
-        $file = __DIR__ . '/../_files/JsonData/simpleObject.json';
-        $message = '';
-        $this->assertJsonFileEqualsJsonFile($file, $file, $message);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertInstanceOf
-     */
-    public function testAssertInstanceOf()
-    {
-        $this->assertInstanceOf('stdClass', new stdClass);
-
-        try {
-            $this->assertInstanceOf('Exception', new stdClass);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertInstanceOf
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertInstanceOfThrowsExceptionForInvalidArgument()
-    {
-        $this->assertInstanceOf(null, new stdClass);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeInstanceOf
-     */
-    public function testAssertAttributeInstanceOf()
-    {
-        $o    = new stdClass;
-        $o->a = new stdClass;
-
-        $this->assertAttributeInstanceOf('stdClass', 'a', $o);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotInstanceOf
-     */
-    public function testAssertNotInstanceOf()
-    {
-        $this->assertNotInstanceOf('Exception', new stdClass);
-
-        try {
-            $this->assertNotInstanceOf('stdClass', new stdClass);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotInstanceOf
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotInstanceOfThrowsExceptionForInvalidArgument()
-    {
-        $this->assertNotInstanceOf(null, new stdClass);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotInstanceOf
-     */
-    public function testAssertAttributeNotInstanceOf()
-    {
-        $o    = new stdClass;
-        $o->a = new stdClass;
-
-        $this->assertAttributeNotInstanceOf('Exception', 'a', $o);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertInternalType
-     */
-    public function testAssertInternalType()
-    {
-        $this->assertInternalType('integer', 1);
-
-        try {
-            $this->assertInternalType('string', 1);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertInternalType
-     */
-    public function testAssertInternalTypeDouble()
-    {
-        $this->assertInternalType('double', 1.0);
-
-        try {
-            $this->assertInternalType('double', 1);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertInternalType
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertInternalTypeThrowsExceptionForInvalidArgument()
-    {
-        $this->assertInternalType(null, 1);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeInternalType
-     */
-    public function testAssertAttributeInternalType()
-    {
-        $o    = new stdClass;
-        $o->a = 1;
-
-        $this->assertAttributeInternalType('integer', 'a', $o);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotInternalType
-     */
-    public function testAssertNotInternalType()
-    {
-        $this->assertNotInternalType('string', 1);
-
-        try {
-            $this->assertNotInternalType('integer', 1);
-        } catch (PHPUnit_Framework_AssertionFailedError $e) {
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertNotInternalType
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testAssertNotInternalTypeThrowsExceptionForInvalidArgument()
-    {
-        $this->assertNotInternalType(null, 1);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::assertAttributeNotInternalType
-     */
-    public function testAssertAttributeNotInternalType()
-    {
-        $o    = new stdClass;
-        $o->a = 1;
-
-        $this->assertAttributeNotInternalType('string', 'a', $o);
-    }
-
-    public static function validInvalidJsonDataprovider()
-    {
-        return array(
-            'error syntax in expected JSON' => array('{"Mascott"::}', '{"Mascott" : "Tux"}'),
-            'error UTF-8 in actual JSON'    => array('{"Mascott" : "Tux"}', '{"Mascott" : :}'),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/BaseTestListenerTest.php b/core/vendor/phpunit/phpunit/tests/Framework/BaseTestListenerTest.php
deleted file mode 100644
index 2193af4..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/BaseTestListenerTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Giorgio Sironi <info@giorgiosironi.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.0
- */
-class Framework_BaseTestListenerTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var PHPUnit_Framework_TestResult
-     */
-    private $result;
-
-    /**
-     * @covers PHPUnit_Framework_TestResult
-     */
-    public function testEndEventsAreCounted()
-    {
-        $this->result = new PHPUnit_Framework_TestResult;
-        $listener = new BaseTestListenerSample();
-        $this->result->addListener($listener);
-        $test = new Success;
-        $test->run($this->result);
-
-        $this->assertEquals(1, $listener->endCount);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php
deleted file mode 100644
index 4202143..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Jeroen Versteeg <jversteeg@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.7.30
- * @covers     PHPUnit_Framework_Constraint_Count
- */
-class CountTest extends PHPUnit_Framework_TestCase
-{
-    public function testCount()
-    {
-        $countConstraint = new PHPUnit_Framework_Constraint_Count(3);
-        $this->assertTrue($countConstraint->evaluate(array(1, 2, 3), '', true));
-
-        $countConstraint = new PHPUnit_Framework_Constraint_Count(0);
-        $this->assertTrue($countConstraint->evaluate(array(), '', true));
-
-        $countConstraint = new PHPUnit_Framework_Constraint_Count(2);
-        $it = new TestIterator(array(1, 2));
-        $this->assertTrue($countConstraint->evaluate($it, '', true));
-    }
-
-    public function testCountDoesNotChangeIteratorKey()
-    {
-        $countConstraint = new PHPUnit_Framework_Constraint_Count(2);
-
-        // test with 1st implementation of Iterator
-        $it = new TestIterator(array(1, 2));
-
-        $countConstraint->evaluate($it, '', true);
-        $this->assertEquals(1, $it->current());
-
-        $it->next();
-        $countConstraint->evaluate($it, '', true);
-        $this->assertEquals(2, $it->current());
-
-        $it->next();
-        $countConstraint->evaluate($it, '', true);
-        $this->assertFalse($it->valid());
-
-        // test with 2nd implementation of Iterator
-        $it = new TestIterator2(array(1, 2));
-
-        $countConstraint = new PHPUnit_Framework_Constraint_Count(2);
-        $countConstraint->evaluate($it, '', true);
-        $this->assertEquals(1, $it->current());
-
-        $it->next();
-        $countConstraint->evaluate($it, '', true);
-        $this->assertEquals(2, $it->current());
-
-        $it->next();
-        $countConstraint->evaluate($it, '', true);
-        $this->assertFalse($it->valid());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageRegExpTest.php b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageRegExpTest.php
deleted file mode 100644
index d6414aa..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageRegExpTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Márcio Almada <marcio3w@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.3.0
- * @covers     PHPUnit_Framework_Constraint_ExceptionMessageRegExp
- */
-class ExceptionMessageRegExpTest extends PHPUnit_Framework_TestCase
-{
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessageRegExp /^A polymorphic \w+ message/
-     */
-    public function testRegexMessage()
-    {
-        throw new Exception("A polymorphic exception message");
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessageRegExp /^a poly[a-z]+ [a-zA-Z0-9_]+ me(s){2}age$/i
-     */
-    public function testRegexMessageExtreme()
-    {
-        throw new Exception("A polymorphic exception message");
-    }
-
-     /**
-     * @runInSeparateProcess
-     * @requires extension xdebug
-     * @expectedException \Exception
-     * @expectedExceptionMessageRegExp #Screaming preg_match#
-     */
-    public function testMessageXdebugScreamCompatibility()
-    {
-        ini_set('xdebug.scream', '1');
-        throw new Exception("Screaming preg_match");
-    }
-
-    /**
-     * @coversNothing
-     * @expectedException \Exception variadic
-     * @expectedExceptionMessageRegExp /^A variadic \w+ message/
-     */
-    public function testSimultaneousLiteralAndRegExpExceptionMessage()
-    {
-        throw new Exception("A variadic exception message");
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageTest.php b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageTest.php
deleted file mode 100644
index 9f59813..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Márcio Almada <marcio3w@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.0.20
- * @covers     PHPUnit_Framework_Constraint_ExceptionMessage
- */
-class ExceptionMessageTest extends PHPUnit_Framework_TestCase
-{
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage A literal exception message
-     */
-    public function testLiteralMessage()
-    {
-        throw new Exception("A literal exception message");
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage A partial
-     */
-    public function testPatialMessageBegin()
-    {
-        throw new Exception("A partial exception message");
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage partial exception
-     */
-    public function testPatialMessageMiddle()
-    {
-        throw new Exception("A partial exception message");
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage exception message
-     */
-    public function testPatialMessageEnd()
-    {
-        throw new Exception("A partial exception message");
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatches/ErrorMessageProviderTest.php b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatches/ErrorMessageProviderTest.php
deleted file mode 100644
index 76e611b..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatches/ErrorMessageProviderTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @author     Bastian Feder <php@bastian-feder.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause
- * @link       http://www.phpunit.de/
- * @since      File available since Release 3.7.0
- */
-class Framework_Constraint_JsonMatches_ErrorMessageProviderTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider translateTypeToPrefixDataprovider
-     * @covers PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::translateTypeToPrefix
-     */
-    public function testTranslateTypeToPrefix($expected, $type)
-    {
-        $this->assertEquals(
-            $expected,
-            PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::translateTypeToPrefix($type)
-        );
-    }
-
-    /**
-     * @dataProvider determineJsonErrorDataprovider
-     * @covers PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::determineJsonError
-     */
-    public function testDetermineJsonError($expected, $error, $prefix)
-    {
-        $this->assertEquals(
-            $expected,
-            PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::determineJsonError(
-                $error,
-                $prefix
-            )
-        );
-    }
-
-    public static function determineJsonErrorDataprovider()
-    {
-        return array(
-            'JSON_ERROR_NONE'  => array(
-                null, 'json_error_none', ''
-            ),
-            'JSON_ERROR_DEPTH' => array(
-                'Maximum stack depth exceeded', JSON_ERROR_DEPTH, ''
-            ),
-            'prefixed JSON_ERROR_DEPTH' => array(
-                'TUX: Maximum stack depth exceeded', JSON_ERROR_DEPTH, 'TUX: '
-            ),
-            'JSON_ERROR_STATE_MISMatch' => array(
-                'Underflow or the modes mismatch', JSON_ERROR_STATE_MISMATCH, ''
-            ),
-            'JSON_ERROR_CTRL_CHAR' => array(
-                'Unexpected control character found', JSON_ERROR_CTRL_CHAR, ''
-            ),
-            'JSON_ERROR_SYNTAX' => array(
-                'Syntax error, malformed JSON', JSON_ERROR_SYNTAX, ''
-            ),
-            'JSON_ERROR_UTF8`' => array(
-                'Malformed UTF-8 characters, possibly incorrectly encoded',
-                JSON_ERROR_UTF8,
-                ''
-            ),
-            'Invalid error indicator' => array(
-                'Unknown error', 55, ''
-            ),
-        );
-    }
-
-    public static function translateTypeToPrefixDataprovider()
-    {
-        return array(
-            'expected' => array('Expected value JSON decode error - ', 'expected'),
-            'actual' => array('Actual value JSON decode error - ', 'actual'),
-            'default' => array('', ''),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesTest.php b/core/vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesTest.php
deleted file mode 100644
index ed53577..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @package    PHPUnit
- * @author     Bastian Feder <php@bastian-feder.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause
- * @link       http://www.phpunit.de/
- * @since      File available since Release 3.7.0
- */
-class Framework_Constraint_JsonMatchesTest extends PHPUnit_Framework_TestCase
-{
-
-    /**
-     * @dataProvider evaluateDataprovider
-     * @covers PHPUnit_Framework_Constraint_JsonMatches::evaluate
-     * @covers PHPUnit_Framework_Constraint_JsonMatches::matches
-     * @covers PHPUnit_Framework_Constraint_JsonMatches::__construct
-     */
-    public function testEvaluate($expected, $jsonOther, $jsonValue)
-    {
-        $constraint = new PHPUnit_Framework_Constraint_JsonMatches($jsonValue);
-        $this->assertEquals($expected, $constraint->evaluate($jsonOther, '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_JsonMatches::toString
-     */
-    public function testToString()
-    {
-        $jsonValue = json_encode(array('Mascott' => 'Tux'));
-        $constraint = new PHPUnit_Framework_Constraint_JsonMatches($jsonValue);
-
-        $this->assertEquals('matches JSON string "' . $jsonValue . '"', $constraint->toString());
-    }
-
-
-    public static function evaluateDataprovider()
-    {
-        return array(
-            'valid JSON' => array(true, json_encode(array('Mascott' => 'Tux')), json_encode(array('Mascott' => 'Tux'))),
-            'error syntax' => array(false, '{"Mascott"::}', json_encode(array('Mascott' => 'Tux'))),
-            'error UTF-8' => array(false, json_encode('\xB1\x31'), json_encode(array('Mascott' => 'Tux'))),
-            'invalid JSON in class instantiation' => array(false, json_encode(array('Mascott' => 'Tux')), '{"Mascott"::}'),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php b/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php
deleted file mode 100644
index c84ac97..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php
+++ /dev/null
@@ -1,3470 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.0.0
- */
-class Framework_ConstraintTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHPUnit_Framework_Constraint_ArrayHasKey
-     * @covers PHPUnit_Framework_Assert::arrayHasKey
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayHasKey()
-    {
-        $constraint = PHPUnit_Framework_Assert::arrayHasKey(0);
-
-        $this->assertFalse($constraint->evaluate(array(), '', true));
-        $this->assertEquals('has the key 0', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(array());
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-Failed asserting that an array has the key 0.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ArrayHasKey
-     * @covers PHPUnit_Framework_Assert::arrayHasKey
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayHasKey2()
-    {
-        $constraint = PHPUnit_Framework_Assert::arrayHasKey(0);
-
-        try {
-            $constraint->evaluate(array(), 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message\nFailed asserting that an array has the key 0.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ArrayHasKey
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::arrayHasKey
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayNotHasKey()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::arrayHasKey(0)
-        );
-
-        $this->assertFalse($constraint->evaluate(array(0 => 1), '', true));
-        $this->assertEquals('does not have the key 0', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(array(0 => 1));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that an array does not have the key 0.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ArrayHasKey
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::arrayHasKey
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayNotHasKey2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::arrayHasKey(0)
-        );
-
-        try {
-            $constraint->evaluate(array(0), 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that an array does not have the key 0.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_FileExists
-     * @covers PHPUnit_Framework_Assert::fileExists
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintFileExists()
-    {
-        $constraint = PHPUnit_Framework_Assert::fileExists();
-
-        $this->assertFalse($constraint->evaluate('foo', '', true));
-        $this->assertEquals('file exists', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('foo');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that file "foo" exists.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_FileExists
-     * @covers PHPUnit_Framework_Assert::fileExists
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintFileExists2()
-    {
-        $constraint = PHPUnit_Framework_Assert::fileExists();
-
-        try {
-            $constraint->evaluate('foo', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that file "foo" exists.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_FileExists
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_Assert::fileExists
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintFileNotExists()
-    {
-        $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithNonPublicAttributes.php';
-
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::fileExists()
-        );
-
-        $this->assertFalse($constraint->evaluate($file, '', true));
-        $this->assertEquals('file does not exist', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate($file);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that file "$file" does not exist.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_FileExists
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_Assert::fileExists
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintFileNotExists2()
-    {
-        $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithNonPublicAttributes.php';
-
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::fileExists()
-        );
-
-        try {
-            $constraint->evaluate($file, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that file "$file" does not exist.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Assert::greaterThan
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintGreaterThan()
-    {
-        $constraint = PHPUnit_Framework_Assert::greaterThan(1);
-
-        $this->assertFalse($constraint->evaluate(0, '', true));
-        $this->assertTrue($constraint->evaluate(2, '', true));
-        $this->assertEquals('is greater than 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(0);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 0 is greater than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Assert::greaterThan
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintGreaterThan2()
-    {
-        $constraint = PHPUnit_Framework_Assert::greaterThan(1);
-
-        try {
-            $constraint->evaluate(0, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 0 is greater than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::greaterThan
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotGreaterThan()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::greaterThan(1)
-        );
-
-        $this->assertTrue($constraint->evaluate(1, '', true));
-        $this->assertEquals('is not greater than 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(2);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 2 is not greater than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::greaterThan
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotGreaterThan2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::greaterThan(1)
-        );
-
-        try {
-            $constraint->evaluate(2, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 2 is not greater than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Assert::greaterThanOrEqual
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintGreaterThanOrEqual()
-    {
-        $constraint = PHPUnit_Framework_Assert::greaterThanOrEqual(1);
-
-        $this->assertTrue($constraint->evaluate(1, '', true));
-        $this->assertFalse($constraint->evaluate(0, '', true));
-        $this->assertEquals('is equal to 1 or is greater than 1', $constraint->toString());
-        $this->assertEquals(2, count($constraint));
-
-        try {
-            $constraint->evaluate(0);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 0 is equal to 1 or is greater than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Assert::greaterThanOrEqual
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintGreaterThanOrEqual2()
-    {
-        $constraint = PHPUnit_Framework_Assert::greaterThanOrEqual(1);
-
-        try {
-            $constraint->evaluate(0, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 0 is equal to 1 or is greater than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::greaterThanOrEqual
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotGreaterThanOrEqual()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::greaterThanOrEqual(1)
-        );
-
-        $this->assertFalse($constraint->evaluate(1, '', true));
-        $this->assertEquals('not( is equal to 1 or is greater than 1 )', $constraint->toString());
-        $this->assertEquals(2, count($constraint));
-
-        try {
-            $constraint->evaluate(1);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that not( 1 is equal to 1 or is greater than 1 ).
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_GreaterThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::greaterThanOrEqual
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotGreaterThanOrEqual2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::greaterThanOrEqual(1)
-        );
-
-        try {
-            $constraint->evaluate(1, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that not( 1 is equal to 1 or is greater than 1 ).
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsAnything
-     * @covers PHPUnit_Framework_Assert::anything
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsAnything()
-    {
-        $constraint = PHPUnit_Framework_Assert::anything();
-
-        $this->assertTrue($constraint->evaluate(null, '', true));
-        $this->assertNull($constraint->evaluate(null));
-        $this->assertEquals('is anything', $constraint->toString());
-        $this->assertEquals(0, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsAnything
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::anything
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotIsAnything()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::anything()
-        );
-
-        $this->assertFalse($constraint->evaluate(null, '', true));
-        $this->assertEquals('is not anything', $constraint->toString());
-        $this->assertEquals(0, count($constraint));
-
-        try {
-            $constraint->evaluate(null);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that null is not anything.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Assert::equalTo
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsEqual()
-    {
-        $constraint = PHPUnit_Framework_Assert::equalTo(1);
-
-        $this->assertTrue($constraint->evaluate(1, '', true));
-        $this->assertFalse($constraint->evaluate(0, '', true));
-        $this->assertEquals('is equal to 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(0);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 0 matches expected 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    public function isEqualProvider()
-    {
-        $a = new stdClass;
-        $a->foo = 'bar';
-        $b = new stdClass;
-        $ahash = spl_object_hash($a);
-        $bhash = spl_object_hash($b);
-
-        $c = new stdClass;
-        $c->foo = 'bar';
-        $c->int = 1;
-        $c->array = array(0, array(1), array(2), 3);
-        $c->related = new stdClass;
-        $c->related->foo = "a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk";
-        $c->self = $c;
-        $c->c = $c;
-        $d = new stdClass;
-        $d->foo = 'bar';
-        $d->int = 2;
-        $d->array = array(0, array(4), array(2), 3);
-        $d->related = new stdClass;
-        $d->related->foo = "a\np\nc\nd\ne\nf\ng\nh\ni\nw\nk";
-        $d->self = $d;
-        $d->c = $c;
-
-        $storage1 = new SplObjectStorage;
-        $storage1->attach($a);
-        $storage1->attach($b);
-        $storage2 = new SplObjectStorage;
-        $storage2->attach($b);
-        $storage1hash = spl_object_hash($storage1);
-        $storage2hash = spl_object_hash($storage2);
-
-        $dom1 = new DOMDocument;
-        $dom1->preserveWhiteSpace = false;
-        $dom1->loadXML('<root></root>');
-        $dom2 = new DOMDocument;
-        $dom2->preserveWhiteSpace = false;
-        $dom2->loadXML('<root><foo/></root>');
-
-        return array(
-            array(1, 0, <<<EOF
-Failed asserting that 0 matches expected 1.
-
-EOF
-            ),
-            array(1.1, 0, <<<EOF
-Failed asserting that 0 matches expected 1.1.
-
-EOF
-            ),
-            array('a', 'b', <<<EOF
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
--'a'
-+'b'
-
-EOF
-            ),
-            array("a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk", "a\np\nc\nd\ne\nf\ng\nh\ni\nw\nk", <<<EOF
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
- 'a
--b
-+p
-
-@@ @@
- i
--j
-+w
- k'
-
-EOF
-            ),
-            array(1, array(0), <<<EOF
-Array (...) does not match expected type "integer".
-
-EOF
-            ),
-            array(array(0), 1, <<<EOF
-1 does not match expected type "array".
-
-EOF
-            ),
-            array(array(0), array(1), <<<EOF
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
--    0 => 0
-+    0 => 1
- )
-
-EOF
-            ),
-            array(array(true), array('true'), <<<EOF
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
--    0 => true
-+    0 => 'true'
- )
-
-EOF
-            ),
-            array(array(0, array(1), array(2), 3), array(0, array(4), array(2), 3), <<<EOF
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
-     0 => 0
-     1 => Array (
--        0 => 1
-+        0 => 4
-     )
-     2 => Array (...)
-     3 => 3
- )
-
-EOF
-            ),
-            array($a, array(0), <<<EOF
-Array (...) does not match expected type "object".
-
-EOF
-            ),
-            array(array(0), $a, <<<EOF
-stdClass Object (...) does not match expected type "array".
-
-EOF
-            ),
-            array($a, $b, <<<EOF
-Failed asserting that two objects are equal.
---- Expected
-+++ Actual
-@@ @@
- stdClass Object (
--    'foo' => 'bar'
- )
-
-EOF
-            ),
-            array($c, $d, <<<EOF
-Failed asserting that two objects are equal.
---- Expected
-+++ Actual
-@@ @@
- stdClass Object (
-     'foo' => 'bar'
--    'int' => 1
-+    'int' => 2
-     'array' => Array (
-         0 => 0
-         1 => Array (
--            0 => 1
-+            0 => 4
-
-@@ @@
-         'foo' => 'a
--        b
-+        p
-
-@@ @@
-         i
--        j
-+        w
-         k'
-     )
-     'self' => stdClass Object (...)
-     'c' => stdClass Object (...)
- )
-
-EOF
-            ),
-            array($storage1, $storage2, <<<EOF
-Failed asserting that two objects are equal.
---- Expected
-+++ Actual
-@@ @@
--SplObjectStorage Object &$storage1hash (
--    '$ahash' => Array &0 (
--        'obj' => stdClass Object &$ahash (
--            'foo' => 'bar'
--        )
-+SplObjectStorage Object &$storage2hash (
-+    '$bhash' => Array &0 (
-+        'obj' => stdClass Object &$bhash ()
-         'inf' => null
-     )
--    '$bhash' => Array &0
- )
-
-EOF
-            ),
-            array($dom1, $dom2, <<<EOF
-Failed asserting that two DOM documents are equal.
---- Expected
-+++ Actual
-@@ @@
- <?xml version="1.0"?>
--<root/>
-+<root>
-+  <foo/>
-+</root>
-
-EOF
-            ),
-            array(
-              new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-              new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
-              <<<EOF
-Failed asserting that two DateTime objects are equal.
---- Expected
-+++ Actual
-@@ @@
--2013-03-29T04:13:35-0400
-+2013-03-29T04:13:35-0500
-
-EOF
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider isEqualProvider
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Assert::equalTo
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsEqual2($expected, $actual, $message)
-    {
-        $constraint = PHPUnit_Framework_Assert::equalTo($expected);
-
-        try {
-            $constraint->evaluate($actual, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              "custom message\n$message",
-              $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e))
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::equalTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotEqual()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::equalTo(1)
-        );
-
-        $this->assertTrue($constraint->evaluate(0, '', true));
-        $this->assertFalse($constraint->evaluate(1, '', true));
-        $this->assertEquals('is not equal to 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(1);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 1 is not equal to 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::equalTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotEqual2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::equalTo(1)
-        );
-
-        try {
-            $constraint->evaluate(1, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 1 is not equal to 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsIdentical
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsIdentical()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-
-        $constraint = PHPUnit_Framework_Assert::identicalTo($a);
-
-        $this->assertFalse($constraint->evaluate($b, '', true));
-        $this->assertTrue($constraint->evaluate($a, '', true));
-        $this->assertEquals('is identical to an object of class "stdClass"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate($b);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-Failed asserting that two variables reference the same object.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsIdentical
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsIdentical2()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-
-        $constraint = PHPUnit_Framework_Assert::identicalTo($a);
-
-        try {
-            $constraint->evaluate($b, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that two variables reference the same object.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsIdentical
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsIdentical3()
-    {
-        $constraint = PHPUnit_Framework_Assert::identicalTo('a');
-
-        try {
-            $constraint->evaluate('b', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that two strings are identical.
---- Expected
-+++ Actual
-@@ @@
--a
-+b
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsIdentical
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotIdentical()
-    {
-        $a = new stdClass;
-        $b = new stdClass;
-
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::identicalTo($a)
-        );
-
-        $this->assertTrue($constraint->evaluate($b, '', true));
-        $this->assertFalse($constraint->evaluate($a, '', true));
-        $this->assertEquals('is not identical to an object of class "stdClass"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate($a);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-Failed asserting that two variables don't reference the same object.
-
-EOF
-              ,
-              $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e))
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsIdentical
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotIdentical2()
-    {
-        $a = new stdClass;
-
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::identicalTo($a)
-        );
-
-        try {
-            $constraint->evaluate($a, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that two variables don't reference the same object.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsIdentical
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::identicalTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotIdentical3()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::identicalTo('a')
-        );
-
-        try {
-            $constraint->evaluate('a', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that two strings are not identical.
-
-EOF
-              ,
-              $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e))
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsInstanceOf
-     * @covers PHPUnit_Framework_Assert::isInstanceOf
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsInstanceOf()
-    {
-        $constraint = PHPUnit_Framework_Assert::isInstanceOf('Exception');
-
-        $this->assertFalse($constraint->evaluate(new stdClass, '', true));
-        $this->assertTrue($constraint->evaluate(new Exception, '', true));
-        $this->assertEquals('is instance of class "Exception"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        $interfaceConstraint = PHPUnit_Framework_Assert::isInstanceOf('Countable');
-        $this->assertFalse($interfaceConstraint->evaluate(new stdClass, '', true));
-        $this->assertTrue($interfaceConstraint->evaluate(new ArrayObject, '', true));
-        $this->assertEquals('is instance of interface "Countable"', $interfaceConstraint->toString());
-
-        try {
-            $constraint->evaluate(new stdClass);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that stdClass Object () is an instance of class "Exception".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsInstanceOf
-     * @covers PHPUnit_Framework_Assert::isInstanceOf
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsInstanceOf2()
-    {
-        $constraint = PHPUnit_Framework_Assert::isInstanceOf('Exception');
-
-        try {
-            $constraint->evaluate(new stdClass, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that stdClass Object () is an instance of class "Exception".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsInstanceOf
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::isInstanceOf
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotInstanceOf()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::isInstanceOf('stdClass')
-        );
-
-        $this->assertFalse($constraint->evaluate(new stdClass, '', true));
-        $this->assertTrue($constraint->evaluate(new Exception, '', true));
-        $this->assertEquals('is not instance of class "stdClass"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(new stdClass);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that stdClass Object () is not an instance of class "stdClass".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsInstanceOf
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::isInstanceOf
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotInstanceOf2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::isInstanceOf('stdClass')
-        );
-
-        try {
-            $constraint->evaluate(new stdClass, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that stdClass Object () is not an instance of class "stdClass".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsType
-     * @covers PHPUnit_Framework_Assert::isType
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsType()
-    {
-        $constraint = PHPUnit_Framework_Assert::isType('string');
-
-        $this->assertFalse($constraint->evaluate(0, '', true));
-        $this->assertTrue($constraint->evaluate('', '', true));
-        $this->assertEquals('is of type "string"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(new stdClass);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertStringMatchesFormat(<<<EOF
-Failed asserting that stdClass Object &%x () is of type "string".
-
-EOF
-              ,
-              $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e))
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsType
-     * @covers PHPUnit_Framework_Assert::isType
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsType2()
-    {
-        $constraint = PHPUnit_Framework_Assert::isType('string');
-
-        try {
-            $constraint->evaluate(new stdClass, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertStringMatchesFormat(<<<EOF
-custom message
-Failed asserting that stdClass Object &%x () is of type "string".
-
-EOF
-              ,
-              $this->trimnl(PHPUnit_Framework_TestFailure::exceptionToString($e))
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    public function resources()
-    {
-        $fh = fopen(__FILE__, 'r');
-        fclose($fh);
-
-        return array(
-            'open resource'     => array(fopen(__FILE__, 'r')),
-            'closed resource'   => array($fh),
-        );
-    }
-
-    /**
-     * @dataProvider resources
-     * @covers PHPUnit_Framework_Constraint_IsType
-     * @covers PHPUnit_Framework_Assert::isType
-     */
-    public function testConstraintIsResourceTypeEvaluatesCorrectlyWithResources($resource)
-    {
-        $constraint = PHPUnit_Framework_Assert::isType('resource');
-
-        $this->assertTrue($constraint->evaluate($resource, '', true));
-
-        @fclose($resource);
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsType
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::isType
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotType()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::isType('string')
-        );
-
-        $this->assertTrue($constraint->evaluate(0, '', true));
-        $this->assertFalse($constraint->evaluate('', '', true));
-        $this->assertEquals('is not of type "string"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that '' is not of type "string".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsType
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::isType
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotType2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::isType('string')
-        );
-
-        try {
-            $constraint->evaluate('', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that '' is not of type "string".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsNull
-     * @covers PHPUnit_Framework_Assert::isNull
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNull()
-    {
-        $constraint = PHPUnit_Framework_Assert::isNull();
-
-        $this->assertFalse($constraint->evaluate(0, '', true));
-        $this->assertTrue($constraint->evaluate(null, '', true));
-        $this->assertEquals('is null', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(0);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-Failed asserting that 0 is null.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsNull
-     * @covers PHPUnit_Framework_Assert::isNull
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNull2()
-    {
-        $constraint = PHPUnit_Framework_Assert::isNull();
-
-        try {
-            $constraint->evaluate(0, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that 0 is null.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsNull
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::isNull
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotNull()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::isNull()
-        );
-
-        $this->assertFalse($constraint->evaluate(null, '', true));
-        $this->assertTrue($constraint->evaluate(0, '', true));
-        $this->assertEquals('is not null', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(null);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-Failed asserting that null is not null.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsNull
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::isNull
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsNotNull2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::isNull()
-        );
-
-        try {
-            $constraint->evaluate(null, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that null is not null.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Assert::lessThan
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintLessThan()
-    {
-        $constraint = PHPUnit_Framework_Assert::lessThan(1);
-
-        $this->assertTrue($constraint->evaluate(0, '', true));
-        $this->assertFalse($constraint->evaluate(1, '', true));
-        $this->assertEquals('is less than 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(1);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 1 is less than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Assert::lessThan
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintLessThan2()
-    {
-        $constraint = PHPUnit_Framework_Assert::lessThan(1);
-
-        try {
-            $constraint->evaluate(1, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 1 is less than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::lessThan
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotLessThan()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::lessThan(1)
-        );
-
-        $this->assertTrue($constraint->evaluate(1, '', true));
-        $this->assertFalse($constraint->evaluate(0, '', true));
-        $this->assertEquals('is not less than 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(0);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 0 is not less than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::lessThan
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotLessThan2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::lessThan(1)
-        );
-
-        try {
-            $constraint->evaluate(0, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 0 is not less than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Assert::lessThanOrEqual
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintLessThanOrEqual()
-    {
-        $constraint = PHPUnit_Framework_Assert::lessThanOrEqual(1);
-
-        $this->assertTrue($constraint->evaluate(1, '', true));
-        $this->assertFalse($constraint->evaluate(2, '', true));
-        $this->assertEquals('is equal to 1 or is less than 1', $constraint->toString());
-        $this->assertEquals(2, count($constraint));
-
-        try {
-            $constraint->evaluate(2);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 2 is equal to 1 or is less than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Callback
-     */
-    public function testConstraintCallback()
-    {
-        $closureReflect = function ($parameter) {
-            return $parameter;
-        };
-
-        $closureWithoutParameter = function () {
-            return true;
-        };
-
-        $constraint = PHPUnit_Framework_Assert::callback($closureWithoutParameter);
-        $this->assertTrue($constraint->evaluate('', '', true));
-
-        $constraint = PHPUnit_Framework_Assert::callback($closureReflect);
-        $this->assertTrue($constraint->evaluate(true, '', true));
-        $this->assertFalse($constraint->evaluate(false, '', true));
-
-        $callback = array($this, 'callbackReturningTrue');
-        $constraint = PHPUnit_Framework_Assert::callback($callback);
-        $this->assertTrue($constraint->evaluate(false,  '', true));
-
-        $callback = array('Framework_ConstraintTest', 'staticCallbackReturningTrue');
-        $constraint = PHPUnit_Framework_Assert::callback($callback);
-        $this->assertTrue($constraint->evaluate(null, '', true));
-
-        $this->assertEquals('is accepted by specified callback', $constraint->toString());
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Callback
-     * @expectedException PHPUnit_Framework_ExpectationFailedException
-     * @expectedExceptionMessage Failed asserting that 'This fails' is accepted by specified callback.
-     */
-    public function testConstraintCallbackFailure()
-    {
-        $constraint = PHPUnit_Framework_Assert::callback(function () {
-            return false;
-        });
-        $constraint->evaluate('This fails');
-    }
-
-    public function callbackReturningTrue()
-    {
-        return true;
-    }
-
-    public static function staticCallbackReturningTrue()
-    {
-        return true;
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Assert::lessThanOrEqual
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintLessThanOrEqual2()
-    {
-        $constraint = PHPUnit_Framework_Assert::lessThanOrEqual(1);
-
-        try {
-            $constraint->evaluate(2, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 2 is equal to 1 or is less than 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::lessThanOrEqual
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotLessThanOrEqual()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::lessThanOrEqual(1)
-        );
-
-        $this->assertTrue($constraint->evaluate(2, '', true));
-        $this->assertFalse($constraint->evaluate(1, '', true));
-        $this->assertEquals('not( is equal to 1 or is less than 1 )', $constraint->toString());
-        $this->assertEquals(2, count($constraint));
-
-        try {
-            $constraint->evaluate(1);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that not( 1 is equal to 1 or is less than 1 ).
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEqual
-     * @covers PHPUnit_Framework_Constraint_LessThan
-     * @covers PHPUnit_Framework_Constraint_Or
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::lessThanOrEqual
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotLessThanOrEqual2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::lessThanOrEqual(1)
-        );
-
-        try {
-            $constraint->evaluate(1, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that not( 1 is equal to 1 or is less than 1 ).
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasAttribute
-     * @covers PHPUnit_Framework_Assert::classHasAttribute
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassHasAttribute()
-    {
-        $constraint = PHPUnit_Framework_Assert::classHasAttribute('privateAttribute');
-
-        $this->assertTrue($constraint->evaluate('ClassWithNonPublicAttributes', '', true));
-        $this->assertFalse($constraint->evaluate('stdClass', '', true));
-        $this->assertEquals('has attribute "privateAttribute"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('stdClass');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that class "stdClass" has attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasAttribute
-     * @covers PHPUnit_Framework_Assert::classHasAttribute
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassHasAttribute2()
-    {
-        $constraint = PHPUnit_Framework_Assert::classHasAttribute('privateAttribute');
-
-        try {
-            $constraint->evaluate('stdClass', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that class "stdClass" has attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasAttribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::classHasAttribute
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassNotHasAttribute()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::classHasAttribute('privateAttribute')
-        );
-
-        $this->assertTrue($constraint->evaluate('stdClass', '', true));
-        $this->assertFalse($constraint->evaluate('ClassWithNonPublicAttributes', '', true));
-        $this->assertEquals('does not have attribute "privateAttribute"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasAttribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::classHasAttribute
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassNotHasAttribute2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::classHasAttribute('privateAttribute')
-        );
-
-        try {
-            $constraint->evaluate('ClassWithNonPublicAttributes', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasStaticAttribute
-     * @covers PHPUnit_Framework_Assert::classHasStaticAttribute
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassHasStaticAttribute()
-    {
-        $constraint = PHPUnit_Framework_Assert::classHasStaticAttribute('privateStaticAttribute');
-
-        $this->assertTrue($constraint->evaluate('ClassWithNonPublicAttributes', '', true));
-        $this->assertFalse($constraint->evaluate('stdClass', '', true));
-        $this->assertEquals('has static attribute "privateStaticAttribute"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('stdClass');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that class "stdClass" has static attribute "privateStaticAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasStaticAttribute
-     * @covers PHPUnit_Framework_Assert::classHasStaticAttribute
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassHasStaticAttribute2()
-    {
-        $constraint = PHPUnit_Framework_Assert::classHasStaticAttribute('foo');
-
-        try {
-            $constraint->evaluate('stdClass', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that class "stdClass" has static attribute "foo".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasStaticAttribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::classHasStaticAttribute
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassNotHasStaticAttribute()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::classHasStaticAttribute('privateStaticAttribute')
-        );
-
-        $this->assertTrue($constraint->evaluate('stdClass', '', true));
-        $this->assertFalse($constraint->evaluate('ClassWithNonPublicAttributes', '', true));
-        $this->assertEquals('does not have static attribute "privateStaticAttribute"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('ClassWithNonPublicAttributes');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that class "ClassWithNonPublicAttributes" does not have static attribute "privateStaticAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ClassHasStaticAttribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::classHasStaticAttribute
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintClassNotHasStaticAttribute2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::classHasStaticAttribute('privateStaticAttribute')
-        );
-
-        try {
-            $constraint->evaluate('ClassWithNonPublicAttributes', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that class "ClassWithNonPublicAttributes" does not have static attribute "privateStaticAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ObjectHasAttribute
-     * @covers PHPUnit_Framework_Assert::objectHasAttribute
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintObjectHasAttribute()
-    {
-        $constraint = PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute');
-
-        $this->assertTrue($constraint->evaluate(new ClassWithNonPublicAttributes, '', true));
-        $this->assertFalse($constraint->evaluate(new stdClass, '', true));
-        $this->assertEquals('has attribute "privateAttribute"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(new stdClass);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that object of class "stdClass" has attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ObjectHasAttribute
-     * @covers PHPUnit_Framework_Assert::objectHasAttribute
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintObjectHasAttribute2()
-    {
-        $constraint = PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute');
-
-        try {
-            $constraint->evaluate(new stdClass, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that object of class "stdClass" has attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ObjectHasAttribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::objectHasAttribute
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintObjectNotHasAttribute()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute')
-        );
-
-        $this->assertTrue($constraint->evaluate(new stdClass, '', true));
-        $this->assertFalse($constraint->evaluate(new ClassWithNonPublicAttributes, '', true));
-        $this->assertEquals('does not have attribute "privateAttribute"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(new ClassWithNonPublicAttributes);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that object of class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ObjectHasAttribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::objectHasAttribute
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintObjectNotHasAttribute2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::objectHasAttribute('privateAttribute')
-        );
-
-        try {
-            $constraint->evaluate(new ClassWithNonPublicAttributes, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that object of class "ClassWithNonPublicAttributes" does not have attribute "privateAttribute".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_PCREMatch
-     * @covers PHPUnit_Framework_Assert::matchesRegularExpression
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintPCREMatch()
-    {
-        $constraint = PHPUnit_Framework_Assert::matchesRegularExpression('/foo/');
-
-        $this->assertFalse($constraint->evaluate('barbazbar', '', true));
-        $this->assertTrue($constraint->evaluate('barfoobar', '', true));
-        $this->assertEquals('matches PCRE pattern "/foo/"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('barbazbar');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'barbazbar' matches PCRE pattern "/foo/".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_PCREMatch
-     * @covers PHPUnit_Framework_Assert::matchesRegularExpression
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintPCREMatch2()
-    {
-        $constraint = PHPUnit_Framework_Assert::matchesRegularExpression('/foo/');
-
-        try {
-            $constraint->evaluate('barbazbar', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that 'barbazbar' matches PCRE pattern "/foo/".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_PCREMatch
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::matchesRegularExpression
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintPCRENotMatch()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::matchesRegularExpression('/foo/')
-        );
-
-        $this->assertTrue($constraint->evaluate('barbazbar', '', true));
-        $this->assertFalse($constraint->evaluate('barfoobar', '', true));
-        $this->assertEquals('does not match PCRE pattern "/foo/"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('barfoobar');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'barfoobar' does not match PCRE pattern "/foo/".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_PCREMatch
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::matchesRegularExpression
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintPCRENotMatch2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::matchesRegularExpression('/foo/')
-        );
-
-        try {
-            $constraint->evaluate('barfoobar', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(<<<EOF
-custom message
-Failed asserting that 'barfoobar' does not match PCRE pattern "/foo/".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringMatches
-     * @covers PHPUnit_Framework_Assert::matches
-     * @covers PHPUnit_Framework_Constraint::count
-     */
-    public function testConstraintStringMatches()
-    {
-        $constraint = PHPUnit_Framework_Assert::matches('*%c*');
-        $this->assertFalse($constraint->evaluate('**', '', true));
-        $this->assertTrue($constraint->evaluate('***', '', true));
-        $this->assertEquals('matches PCRE pattern "/^\*.\*$/s"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringMatches
-     * @covers PHPUnit_Framework_Assert::matches
-     * @covers PHPUnit_Framework_Constraint::count
-     */
-    public function testConstraintStringMatches2()
-    {
-        $constraint = PHPUnit_Framework_Assert::matches('*%s*');
-        $this->assertFalse($constraint->evaluate('**', '', true));
-        $this->assertTrue($constraint->evaluate('***', '', true));
-        $this->assertEquals('matches PCRE pattern "/^\*[^\r\n]+\*$/s"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringMatches
-     * @covers PHPUnit_Framework_Assert::matches
-     * @covers PHPUnit_Framework_Constraint::count
-     */
-    public function testConstraintStringMatches3()
-    {
-        $constraint = PHPUnit_Framework_Assert::matches('*%i*');
-        $this->assertFalse($constraint->evaluate('**', '', true));
-        $this->assertTrue($constraint->evaluate('*0*', '', true));
-        $this->assertEquals('matches PCRE pattern "/^\*[+-]?\d+\*$/s"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringMatches
-     * @covers PHPUnit_Framework_Assert::matches
-     * @covers PHPUnit_Framework_Constraint::count
-     */
-    public function testConstraintStringMatches4()
-    {
-        $constraint = PHPUnit_Framework_Assert::matches('*%d*');
-        $this->assertFalse($constraint->evaluate('**', '', true));
-        $this->assertTrue($constraint->evaluate('*0*', '', true));
-        $this->assertEquals('matches PCRE pattern "/^\*\d+\*$/s"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringMatches
-     * @covers PHPUnit_Framework_Assert::matches
-     * @covers PHPUnit_Framework_Constraint::count
-     */
-    public function testConstraintStringMatches5()
-    {
-        $constraint = PHPUnit_Framework_Assert::matches('*%x*');
-        $this->assertFalse($constraint->evaluate('**', '', true));
-        $this->assertTrue($constraint->evaluate('*0f0f0f*', '', true));
-        $this->assertEquals('matches PCRE pattern "/^\*[0-9a-fA-F]+\*$/s"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringMatches
-     * @covers PHPUnit_Framework_Assert::matches
-     * @covers PHPUnit_Framework_Constraint::count
-     */
-    public function testConstraintStringMatches6()
-    {
-        $constraint = PHPUnit_Framework_Assert::matches('*%f*');
-        $this->assertFalse($constraint->evaluate('**', '', true));
-        $this->assertTrue($constraint->evaluate('*1.0*', '', true));
-        $this->assertEquals('matches PCRE pattern "/^\*[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?\*$/s"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringStartsWith
-     * @covers PHPUnit_Framework_Assert::stringStartsWith
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringStartsWith()
-    {
-        $constraint = PHPUnit_Framework_Assert::stringStartsWith('prefix');
-
-        $this->assertFalse($constraint->evaluate('foo', '', true));
-        $this->assertTrue($constraint->evaluate('prefixfoo', '', true));
-        $this->assertEquals('starts with "prefix"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('foo');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'foo' starts with "prefix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringStartsWith
-     * @covers PHPUnit_Framework_Assert::stringStartsWith
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringStartsWith2()
-    {
-        $constraint = PHPUnit_Framework_Assert::stringStartsWith('prefix');
-
-        try {
-            $constraint->evaluate('foo', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message\nFailed asserting that 'foo' starts with "prefix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringStartsWith
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::stringStartsWith
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringStartsNotWith()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::stringStartsWith('prefix')
-        );
-
-        $this->assertTrue($constraint->evaluate('foo', '', true));
-        $this->assertFalse($constraint->evaluate('prefixfoo', '', true));
-        $this->assertEquals('starts not with "prefix"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('prefixfoo');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'prefixfoo' starts not with "prefix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringStartsWith
-     * @covers PHPUnit_Framework_Assert::stringStartsWith
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringStartsNotWith2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::stringStartsWith('prefix')
-        );
-
-        try {
-            $constraint->evaluate('prefixfoo', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 'prefixfoo' starts not with "prefix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringContains
-     * @covers PHPUnit_Framework_Assert::stringContains
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringContains()
-    {
-        $constraint = PHPUnit_Framework_Assert::stringContains('foo');
-
-        $this->assertFalse($constraint->evaluate('barbazbar', '', true));
-        $this->assertTrue($constraint->evaluate('barfoobar', '', true));
-        $this->assertEquals('contains "foo"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('barbazbar');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'barbazbar' contains "foo".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringContains
-     * @covers PHPUnit_Framework_Assert::stringContains
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringContains2()
-    {
-        $constraint = PHPUnit_Framework_Assert::stringContains('foo');
-
-        try {
-            $constraint->evaluate('barbazbar', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 'barbazbar' contains "foo".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringContains
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::stringContains
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringNotContains()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::stringContains('foo')
-        );
-
-        $this->assertTrue($constraint->evaluate('barbazbar', '', true));
-        $this->assertFalse($constraint->evaluate('barfoobar', '', true));
-        $this->assertEquals('does not contain "foo"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('barfoobar');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'barfoobar' does not contain "foo".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringContains
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::stringContains
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringNotContains2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::stringContains('foo')
-        );
-
-        try {
-            $constraint->evaluate('barfoobar', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 'barfoobar' does not contain "foo".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringEndsWith
-     * @covers PHPUnit_Framework_Assert::stringEndsWith
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringEndsWith()
-    {
-        $constraint = PHPUnit_Framework_Assert::stringEndsWith('suffix');
-
-        $this->assertFalse($constraint->evaluate('foo', '', true));
-        $this->assertTrue($constraint->evaluate('foosuffix', '', true));
-        $this->assertEquals('ends with "suffix"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('foo');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'foo' ends with "suffix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringEndsWith
-     * @covers PHPUnit_Framework_Assert::stringEndsWith
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringEndsWith2()
-    {
-        $constraint = PHPUnit_Framework_Assert::stringEndsWith('suffix');
-
-        try {
-            $constraint->evaluate('foo', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 'foo' ends with "suffix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringEndsWith
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::stringEndsWith
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringEndsNotWith()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::stringEndsWith('suffix')
-        );
-
-        $this->assertTrue($constraint->evaluate('foo', '', true));
-        $this->assertFalse($constraint->evaluate('foosuffix', '', true));
-        $this->assertEquals('ends not with "suffix"', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate('foosuffix');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that 'foosuffix' ends not with "suffix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_StringEndsWith
-     * @covers PHPUnit_Framework_Assert::stringEndsWith
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintStringEndsNotWith2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::stringEndsWith('suffix')
-        );
-
-        try {
-            $constraint->evaluate('foosuffix', 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that 'foosuffix' ends not with "suffix".
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     */
-    public function testConstraintArrayContainsCheckForObjectIdentity()
-    {
-        // Check for primitive type.
-        $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo', true, true);
-
-        $this->assertFalse($constraint->evaluate(array(0), '', true));
-        $this->assertFalse($constraint->evaluate(array(true), '', true));
-
-        // Default case.
-        $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo');
-
-        $this->assertTrue($constraint->evaluate(array(0), '', true));
-        $this->assertTrue($constraint->evaluate(array(true), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayContains()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo');
-
-        $this->assertFalse($constraint->evaluate(array('bar'), '', true));
-        $this->assertTrue($constraint->evaluate(array('foo'), '', true));
-        $this->assertEquals("contains 'foo'", $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(array('bar'));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that an array contains 'foo'.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayContains2()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_TraversableContains('foo');
-
-        try {
-            $constraint->evaluate(array('bar'), 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that an array contains 'foo'.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayNotContains()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          new PHPUnit_Framework_Constraint_TraversableContains('foo')
-        );
-
-        $this->assertTrue($constraint->evaluate(array('bar'), '', true));
-        $this->assertFalse($constraint->evaluate(array('foo'), '', true));
-        $this->assertEquals("does not contain 'foo'", $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(array('foo'));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that an array does not contain 'foo'.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintArrayNotContains2()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          new PHPUnit_Framework_Constraint_TraversableContains('foo')
-        );
-
-        try {
-            $constraint->evaluate(array('foo'), 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message
-Failed asserting that an array does not contain 'foo'.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintSplObjectStorageContains()
-    {
-        $object     = new StdClass;
-        $constraint = new PHPUnit_Framework_Constraint_TraversableContains($object);
-        $this->assertStringMatchesFormat("contains stdClass Object &%s ()", $constraint->toString());
-
-        $storage = new SplObjectStorage;
-        $this->assertFalse($constraint->evaluate($storage, '', true));
-
-        $storage->attach($object);
-        $this->assertTrue($constraint->evaluate($storage, '', true));
-
-        try {
-            $constraint->evaluate(new SplObjectStorage);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertStringMatchesFormat(
-              <<<EOF
-Failed asserting that a traversable contains stdClass Object &%x ().
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_TraversableContains
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintSplObjectStorageContains2()
-    {
-        $object     = new StdClass;
-        $constraint = new PHPUnit_Framework_Constraint_TraversableContains($object);
-
-        try {
-            $constraint->evaluate(new SplObjectStorage, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertStringMatchesFormat(
-              <<<EOF
-custom message
-Failed asserting that a traversable contains stdClass Object &%x ().
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::attributeEqualTo
-     * @covers PHPUnit_Framework_Constraint_Attribute
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testAttributeEqualTo()
-    {
-        $object     = new ClassWithNonPublicAttributes;
-        $constraint = PHPUnit_Framework_Assert::attributeEqualTo('foo', 1);
-
-        $this->assertTrue($constraint->evaluate($object, '', true));
-        $this->assertEquals('attribute "foo" is equal to 1', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        $constraint = PHPUnit_Framework_Assert::attributeEqualTo('foo', 2);
-
-        $this->assertFalse($constraint->evaluate($object, '', true));
-
-        try {
-            $constraint->evaluate($object);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that attribute "foo" is equal to 2.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::attributeEqualTo
-     * @covers PHPUnit_Framework_Constraint_Attribute
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testAttributeEqualTo2()
-    {
-        $object     = new ClassWithNonPublicAttributes;
-        $constraint = PHPUnit_Framework_Assert::attributeEqualTo('foo', 2);
-
-        try {
-            $constraint->evaluate($object, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message\nFailed asserting that attribute "foo" is equal to 2.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::attributeEqualTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_Constraint_Attribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testAttributeNotEqualTo()
-    {
-        $object     = new ClassWithNonPublicAttributes;
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::attributeEqualTo('foo', 2)
-        );
-
-        $this->assertTrue($constraint->evaluate($object, '', true));
-        $this->assertEquals('attribute "foo" is not equal to 2', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::attributeEqualTo('foo', 1)
-        );
-
-        $this->assertFalse($constraint->evaluate($object, '', true));
-
-        try {
-            $constraint->evaluate($object);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that attribute "foo" is not equal to 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Assert::attributeEqualTo
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_Constraint_Attribute
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testAttributeNotEqualTo2()
-    {
-        $object     = new ClassWithNonPublicAttributes;
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          PHPUnit_Framework_Assert::attributeEqualTo('foo', 1)
-        );
-
-        try {
-            $constraint->evaluate($object, 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message\nFailed asserting that attribute "foo" is not equal to 1.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEmpty
-     * @covers PHPUnit_Framework_Constraint::count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsEmpty()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_IsEmpty;
-
-        $this->assertFalse($constraint->evaluate(array('foo'), '', true));
-        $this->assertTrue($constraint->evaluate(array(), '', true));
-        $this->assertFalse($constraint->evaluate(new ArrayObject(array('foo')), '', true));
-        $this->assertTrue($constraint->evaluate(new ArrayObject(array()), '', true));
-        $this->assertEquals('is empty', $constraint->toString());
-        $this->assertEquals(1, count($constraint));
-
-        try {
-            $constraint->evaluate(array('foo'));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that an array is empty.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_IsEmpty
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintIsEmpty2()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_IsEmpty;
-
-        try {
-            $constraint->evaluate(array('foo'), 'custom message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-custom message\nFailed asserting that an array is empty.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Count
-     */
-    public function testConstraintCountWithAnArray()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_Count(5);
-
-        $this->assertTrue($constraint->evaluate(array(1, 2, 3, 4, 5), '', true));
-        $this->assertFalse($constraint->evaluate(array(1, 2, 3, 4), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Count
-     */
-    public function testConstraintCountWithAnIteratorWhichDoesNotImplementCountable()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_Count(5);
-
-        $this->assertTrue($constraint->evaluate(new TestIterator(array(1, 2, 3, 4, 5)), '', true));
-        $this->assertFalse($constraint->evaluate(new TestIterator(array(1, 2, 3, 4)), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Count
-     */
-    public function testConstraintCountWithAnObjectImplementingCountable()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_Count(5);
-
-        $this->assertTrue($constraint->evaluate(new ArrayObject(array(1, 2, 3, 4, 5)), '', true));
-        $this->assertFalse($constraint->evaluate(new ArrayObject(array(1, 2, 3, 4)), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Count
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintCountFailing()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_Count(5);
-
-        try {
-            $constraint->evaluate(array(1, 2));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that actual size 2 matches expected size 5.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Count
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotCountFailing()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          new PHPUnit_Framework_Constraint_Count(2)
-        );
-
-        try {
-            $constraint->evaluate(array(1, 2));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that actual size 2 does not match expected size 2.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_SameSize
-     */
-    public function testConstraintSameSizeWithAnArray()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(array(1, 2, 3, 4, 5));
-
-        $this->assertTrue($constraint->evaluate(array(6, 7, 8, 9, 10), '', true));
-        $this->assertFalse($constraint->evaluate(array(1, 2, 3, 4), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_SameSize
-     */
-    public function testConstraintSameSizeWithAnIteratorWhichDoesNotImplementCountable()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(new TestIterator(array(1, 2, 3, 4, 5)));
-
-        $this->assertTrue($constraint->evaluate(new TestIterator(array(6, 7, 8, 9, 10)), '', true));
-        $this->assertFalse($constraint->evaluate(new TestIterator(array(1, 2, 3, 4)), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_SameSize
-     */
-    public function testConstraintSameSizeWithAnObjectImplementingCountable()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(new ArrayObject(array(1, 2, 3, 4, 5)));
-
-        $this->assertTrue($constraint->evaluate(new ArrayObject(array(6, 7, 8, 9, 10)), '', true));
-        $this->assertFalse($constraint->evaluate(new ArrayObject(array(1, 2, 3, 4)), '', true));
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_SameSize
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintSameSizeFailing()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_SameSize(array(1, 2, 3, 4, 5));
-
-        try {
-            $constraint->evaluate(array(1, 2));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that actual size 2 matches expected size 5.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_SameSize
-     * @covers PHPUnit_Framework_Constraint_Not
-     * @covers PHPUnit_Framework_Assert::logicalNot
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintNotSameSizeFailing()
-    {
-        $constraint = PHPUnit_Framework_Assert::logicalNot(
-          new PHPUnit_Framework_Constraint_SameSize(array(1, 2))
-        );
-
-        try {
-            $constraint->evaluate(array(3, 4));
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that actual size 2 does not match expected size 2.
-
-EOF
-              ,
-              PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_Exception
-     * @covers PHPUnit_Framework_TestFailure::exceptionToString
-     */
-    public function testConstraintException()
-    {
-        $constraint = new PHPUnit_Framework_Constraint_Exception('FoobarException');
-        $exception = new DummyException('Test');
-        $stackTrace = $exception->getTraceAsString();
-
-        try {
-            $constraint->evaluate($exception);
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $this->assertEquals(
-              <<<EOF
-Failed asserting that exception of type "DummyException" matches expected exception "FoobarException". Message was: "Test" at
-$stackTrace.
-
-EOF
-                ,
-                PHPUnit_Framework_TestFailure::exceptionToString($e)
-            );
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * Removes spaces in front of newlines
-     *
-     * @param  string $string
-     * @return string
-     */
-    private function trimnl($string)
-    {
-        return preg_replace('/[ ]*\n/', "\n", $string);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php b/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php
deleted file mode 100644
index 910531d..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/SuiteTest.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'BeforeAndAfterTest.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'BeforeClassAndAfterClassTest.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DataProviderSkippedTest.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DataProviderIncompleteTest.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'InheritedTestCase.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoTestCaseClass.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoTestCases.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NotPublicTestCase.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NotVoidTestCase.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'OverrideTestCase.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'RequirementsClassBeforeClassHookTest.php';
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- * @covers     PHPUnit_Framework_TestSuite
- */
-class Framework_SuiteTest extends PHPUnit_Framework_TestCase
-{
-    protected $result;
-
-    protected function setUp()
-    {
-        $this->result = new PHPUnit_Framework_TestResult;
-    }
-
-    public static function suite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite;
-
-        $suite->addTest(new Framework_SuiteTest('testAddTestSuite'));
-        $suite->addTest(new Framework_SuiteTest('testInheritedTests'));
-        $suite->addTest(new Framework_SuiteTest('testNoTestCases'));
-        $suite->addTest(new Framework_SuiteTest('testNoTestCaseClass'));
-        $suite->addTest(new Framework_SuiteTest('testNotExistingTestCase'));
-        $suite->addTest(new Framework_SuiteTest('testNotPublicTestCase'));
-        $suite->addTest(new Framework_SuiteTest('testNotVoidTestCase'));
-        $suite->addTest(new Framework_SuiteTest('testOneTestCase'));
-        $suite->addTest(new Framework_SuiteTest('testShadowedTests'));
-        $suite->addTest(new Framework_SuiteTest('testBeforeClassAndAfterClassAnnotations'));
-        $suite->addTest(new Framework_SuiteTest('testBeforeAnnotation'));
-        $suite->addTest(new Framework_SuiteTest('testSkippedTestDataProvider'));
-        $suite->addTest(new Framework_SuiteTest('testIncompleteTestDataProvider'));
-        $suite->addTest(new Framework_SuiteTest('testRequirementsBeforeClassHook'));
-        $suite->addTest(new Framework_SuiteTest('testDontSkipInheritedClass'));
-
-        return $suite;
-    }
-
-    public function testAddTestSuite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'OneTestCase'
-        );
-
-        $suite->run($this->result);
-
-        $this->assertEquals(1, count($this->result));
-    }
-
-    public function testInheritedTests()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'InheritedTestCase'
-        );
-
-        $suite->run($this->result);
-
-        $this->assertTrue($this->result->wasSuccessful());
-        $this->assertEquals(2, count($this->result));
-    }
-
-    public function testNoTestCases()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'NoTestCases'
-        );
-
-        $suite->run($this->result);
-
-        $this->assertTrue(!$this->result->wasSuccessful());
-        $this->assertEquals(1, $this->result->failureCount());
-        $this->assertEquals(1, count($this->result));
-    }
-
-    /**
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testNoTestCaseClass()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('NoTestCaseClass');
-    }
-
-    public function testNotExistingTestCase()
-    {
-        $suite = new Framework_SuiteTest('notExistingMethod');
-
-        $suite->run($this->result);
-
-        $this->assertEquals(0, $this->result->errorCount());
-        $this->assertEquals(1, $this->result->failureCount());
-        $this->assertEquals(1, count($this->result));
-    }
-
-    public function testNotPublicTestCase()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'NotPublicTestCase'
-        );
-
-        $this->assertEquals(2, count($suite));
-    }
-
-    public function testNotVoidTestCase()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'NotVoidTestCase'
-        );
-
-        $this->assertEquals(1, count($suite));
-    }
-
-    public function testOneTestCase()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'OneTestCase'
-        );
-
-        $suite->run($this->result);
-
-        $this->assertEquals(0, $this->result->errorCount());
-        $this->assertEquals(0, $this->result->failureCount());
-        $this->assertEquals(1, count($this->result));
-        $this->assertTrue($this->result->wasSuccessful());
-    }
-
-    public function testShadowedTests()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'OverrideTestCase'
-        );
-
-        $suite->run($this->result);
-
-        $this->assertEquals(1, count($this->result));
-    }
-
-    public function testBeforeClassAndAfterClassAnnotations()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'BeforeClassAndAfterClassTest'
-        );
-
-        BeforeClassAndAfterClassTest::resetProperties();
-        $suite->run($this->result);
-
-        $this->assertEquals(1, BeforeClassAndAfterClassTest::$beforeClassWasRun, "@beforeClass method was not run once for the whole suite.");
-        $this->assertEquals(1, BeforeClassAndAfterClassTest::$afterClassWasRun, "@afterClass method was not run once for the whole suite.");
-    }
-
-    public function testBeforeAnnotation()
-    {
-        $test = new PHPUnit_Framework_TestSuite(
-            'BeforeAndAfterTest'
-        );
-
-        BeforeAndAfterTest::resetProperties();
-        $result = $test->run();
-
-        $this->assertEquals(2, BeforeAndAfterTest::$beforeWasRun);
-        $this->assertEquals(2, BeforeAndAfterTest::$afterWasRun);
-    }
-
-    public function testSkippedTestDataProvider()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('DataProviderSkippedTest');
-
-        $suite->run($this->result);
-
-        $this->assertEquals(3, $this->result->count());
-        $this->assertEquals(1, $this->result->skippedCount());
-    }
-
-    public function testIncompleteTestDataProvider()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('DataProviderIncompleteTest');
-
-        $suite->run($this->result);
-
-        $this->assertEquals(3, $this->result->count());
-        $this->assertEquals(1, $this->result->notImplementedCount());
-    }
-
-    public function testRequirementsBeforeClassHook()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'RequirementsClassBeforeClassHookTest'
-        );
-
-        $suite->run($this->result);
-
-        $this->assertEquals(0, $this->result->errorCount());
-        $this->assertEquals(1, $this->result->skippedCount());
-    }
-
-    public function testDontSkipInheritedClass()
-    {
-        $suite = new PHPUnit_Framework_TestSuite(
-            'DontSkipInheritedClass'
-        );
-
-        $dir = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Inheritance' . DIRECTORY_SEPARATOR;
-
-        $suite->addTestFile($dir.'InheritanceA.php');
-        $suite->addTestFile($dir.'InheritanceB.php');
-        $result = $suite->run();
-        $this->assertEquals(2, count($result));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/TestCaseTest.php b/core/vendor/phpunit/phpunit/tests/Framework/TestCaseTest.php
deleted file mode 100644
index 477f68a..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/TestCaseTest.php
+++ /dev/null
@@ -1,515 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoArgTestCaseTest.php';
-require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Singleton.php';
-
-$GLOBALS['a']  = 'a';
-$_ENV['b']     = 'b';
-$_POST['c']    = 'c';
-$_GET['d']     = 'd';
-$_COOKIE['e']  = 'e';
-$_SERVER['f']  = 'f';
-$_FILES['g']   = 'g';
-$_REQUEST['h'] = 'h';
-$GLOBALS['i']  = 'i';
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- * @covers     PHPUnit_Framework_TestCase
- */
-class Framework_TestCaseTest extends PHPUnit_Framework_TestCase
-{
-    protected $backupGlobalsBlacklist = array('i', 'singleton');
-
-    /**
-     * Used be testStaticAttributesBackupPre
-     */
-    protected static $_testStatic = 0;
-
-    public function testCaseToString()
-    {
-        $this->assertEquals(
-            'Framework_TestCaseTest::testCaseToString',
-            $this->toString()
-        );
-    }
-
-    public function testSuccess()
-    {
-        $test   = new Success;
-        $result = $test->run();
-
-        $this->assertEquals(0, $result->errorCount());
-        $this->assertEquals(0, $result->failureCount());
-        $this->assertEquals(1, count($result));
-    }
-
-    public function testFailure()
-    {
-        $test   = new Failure;
-        $result = $test->run();
-
-        $this->assertEquals(0, $result->errorCount());
-        $this->assertEquals(1, $result->failureCount());
-        $this->assertEquals(1, count($result));
-    }
-
-    public function testError()
-    {
-        $test   = new Error;
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->errorCount());
-        $this->assertEquals(0, $result->failureCount());
-        $this->assertEquals(1, count($result));
-    }
-
-    public function testExceptionInSetUp()
-    {
-        $test   = new ExceptionInSetUpTest('testSomething');
-        $result = $test->run();
-
-        $this->assertTrue($test->setUp);
-        $this->assertFalse($test->assertPreConditions);
-        $this->assertFalse($test->testSomething);
-        $this->assertFalse($test->assertPostConditions);
-        $this->assertTrue($test->tearDown);
-    }
-
-    public function testExceptionInAssertPreConditions()
-    {
-        $test   = new ExceptionInAssertPreConditionsTest('testSomething');
-        $result = $test->run();
-
-        $this->assertTrue($test->setUp);
-        $this->assertTrue($test->assertPreConditions);
-        $this->assertFalse($test->testSomething);
-        $this->assertFalse($test->assertPostConditions);
-        $this->assertTrue($test->tearDown);
-    }
-
-    public function testExceptionInTest()
-    {
-        $test   = new ExceptionInTest('testSomething');
-        $result = $test->run();
-
-        $this->assertTrue($test->setUp);
-        $this->assertTrue($test->assertPreConditions);
-        $this->assertTrue($test->testSomething);
-        $this->assertFalse($test->assertPostConditions);
-        $this->assertTrue($test->tearDown);
-    }
-
-    public function testExceptionInAssertPostConditions()
-    {
-        $test   = new ExceptionInAssertPostConditionsTest('testSomething');
-        $result = $test->run();
-
-        $this->assertTrue($test->setUp);
-        $this->assertTrue($test->assertPreConditions);
-        $this->assertTrue($test->testSomething);
-        $this->assertTrue($test->assertPostConditions);
-        $this->assertTrue($test->tearDown);
-    }
-
-    public function testExceptionInTearDown()
-    {
-        $test   = new ExceptionInTearDownTest('testSomething');
-        $result = $test->run();
-
-        $this->assertTrue($test->setUp);
-        $this->assertTrue($test->assertPreConditions);
-        $this->assertTrue($test->testSomething);
-        $this->assertTrue($test->assertPostConditions);
-        $this->assertTrue($test->tearDown);
-    }
-
-    public function testNoArgTestCasePasses()
-    {
-        $result = new PHPUnit_Framework_TestResult;
-        $t      = new PHPUnit_Framework_TestSuite('NoArgTestCaseTest');
-
-        $t->run($result);
-
-        $this->assertEquals(1, count($result));
-        $this->assertEquals(0, $result->failureCount());
-        $this->assertEquals(0, $result->errorCount());
-    }
-
-    public function testWasRun()
-    {
-        $test = new WasRun;
-        $test->run();
-
-        $this->assertTrue($test->wasRun);
-    }
-
-    public function testException()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedException('RuntimeException');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testExceptionWithMessage()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedException('RuntimeException', 'A runtime error occurred');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testExceptionWithWrongMessage()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedException('RuntimeException', 'A logic error occurred');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->failureCount());
-        $this->assertEquals(1, count($result));
-        $this->assertEquals(
-            "Failed asserting that exception message 'A runtime error occurred' contains 'A logic error occurred'.",
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testExceptionWithRegexpMessage()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedExceptionRegExp('RuntimeException', '/runtime .*? occurred/');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testExceptionWithWrongRegexpMessage()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedExceptionRegExp('RuntimeException', '/logic .*? occurred/');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->failureCount());
-        $this->assertEquals(1, count($result));
-        $this->assertEquals(
-            "Failed asserting that exception message 'A runtime error occurred' matches '/logic .*? occurred/'.",
-            $test->getStatusMessage()
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Framework_Constraint_ExceptionMessageRegExp
-     */
-    public function testExceptionWithInvalidRegexpMessage()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedExceptionRegExp('RuntimeException', '#runtime .*? occurred/'); // wrong delimiter
-
-        $result = $test->run();
-
-        $this->assertEquals(
-            "Invalid expected exception message regex given: '#runtime .*? occurred/'",
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testNoException()
-    {
-        $test = new ThrowNoExceptionTestCase('test');
-        $test->setExpectedException('RuntimeException');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->failureCount());
-        $this->assertEquals(1, count($result));
-    }
-
-    public function testWrongException()
-    {
-        $test = new ThrowExceptionTestCase('test');
-        $test->setExpectedException('InvalidArgumentException');
-
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->failureCount());
-        $this->assertEquals(1, count($result));
-    }
-
-    /**
-     * @backupGlobals enabled
-     */
-    public function testGlobalsBackupPre()
-    {
-        global $a;
-        global $i;
-
-        $this->assertEquals('a', $a);
-        $this->assertEquals('a', $GLOBALS['a']);
-        $this->assertEquals('b', $_ENV['b']);
-        $this->assertEquals('c', $_POST['c']);
-        $this->assertEquals('d', $_GET['d']);
-        $this->assertEquals('e', $_COOKIE['e']);
-        $this->assertEquals('f', $_SERVER['f']);
-        $this->assertEquals('g', $_FILES['g']);
-        $this->assertEquals('h', $_REQUEST['h']);
-        $this->assertEquals('i', $i);
-        $this->assertEquals('i', $GLOBALS['i']);
-
-        $GLOBALS['a']   = 'aa';
-        $GLOBALS['foo'] = 'bar';
-        $_ENV['b']      = 'bb';
-        $_POST['c']     = 'cc';
-        $_GET['d']      = 'dd';
-        $_COOKIE['e']   = 'ee';
-        $_SERVER['f']   = 'ff';
-        $_FILES['g']    = 'gg';
-        $_REQUEST['h']  = 'hh';
-        $GLOBALS['i']   = 'ii';
-
-        $this->assertEquals('aa', $a);
-        $this->assertEquals('aa', $GLOBALS['a']);
-        $this->assertEquals('bar', $GLOBALS['foo']);
-        $this->assertEquals('bb', $_ENV['b']);
-        $this->assertEquals('cc', $_POST['c']);
-        $this->assertEquals('dd', $_GET['d']);
-        $this->assertEquals('ee', $_COOKIE['e']);
-        $this->assertEquals('ff', $_SERVER['f']);
-        $this->assertEquals('gg', $_FILES['g']);
-        $this->assertEquals('hh', $_REQUEST['h']);
-        $this->assertEquals('ii', $i);
-        $this->assertEquals('ii', $GLOBALS['i']);
-    }
-
-    public function testGlobalsBackupPost()
-    {
-        global $a;
-        global $i;
-
-        $this->assertEquals('a', $a);
-        $this->assertEquals('a', $GLOBALS['a']);
-        $this->assertEquals('b', $_ENV['b']);
-        $this->assertEquals('c', $_POST['c']);
-        $this->assertEquals('d', $_GET['d']);
-        $this->assertEquals('e', $_COOKIE['e']);
-        $this->assertEquals('f', $_SERVER['f']);
-        $this->assertEquals('g', $_FILES['g']);
-        $this->assertEquals('h', $_REQUEST['h']);
-        $this->assertEquals('ii', $i);
-        $this->assertEquals('ii', $GLOBALS['i']);
-
-        $this->assertArrayNotHasKey('foo', $GLOBALS);
-    }
-
-    /**
-     * @backupGlobals enabled
-     * @backupStaticAttributes enabled
-     */
-    public function testStaticAttributesBackupPre()
-    {
-        $GLOBALS['singleton'] = Singleton::getInstance();
-        self::$_testStatic = 123;
-    }
-
-    /**
-     * @depends testStaticAttributesBackupPre
-     */
-    public function testStaticAttributesBackupPost()
-    {
-        $this->assertNotSame($GLOBALS['singleton'], Singleton::getInstance());
-        $this->assertSame(0, self::$_testStatic);
-    }
-
-    public function testIsInIsolationReturnsFalse()
-    {
-        $test   = new IsolationTest('testIsInIsolationReturnsFalse');
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testIsInIsolationReturnsTrue()
-    {
-        $test   = new IsolationTest('testIsInIsolationReturnsTrue');
-        $test->setRunTestInSeparateProcess(true);
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testExpectOutputStringFooActualFoo()
-    {
-        $test   = new OutputTestCase('testExpectOutputStringFooActualFoo');
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testExpectOutputStringFooActualBar()
-    {
-        $test   = new OutputTestCase('testExpectOutputStringFooActualBar');
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertFalse($result->wasSuccessful());
-    }
-
-    public function testExpectOutputRegexFooActualFoo()
-    {
-        $test   = new OutputTestCase('testExpectOutputRegexFooActualFoo');
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertTrue($result->wasSuccessful());
-    }
-
-    public function testExpectOutputRegexFooActualBar()
-    {
-        $test   = new OutputTestCase('testExpectOutputRegexFooActualBar');
-        $result = $test->run();
-
-        $this->assertEquals(1, count($result));
-        $this->assertFalse($result->wasSuccessful());
-    }
-
-    public function testSkipsIfRequiresHigherVersionOfPHPUnit()
-    {
-        $test   = new RequirementsTest('testAlwaysSkip');
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->skippedCount());
-        $this->assertEquals(
-            'PHPUnit 1111111 (or later) is required.',
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testSkipsIfRequiresHigherVersionOfPHP()
-    {
-        $test   = new RequirementsTest('testAlwaysSkip2');
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->skippedCount());
-        $this->assertEquals(
-            'PHP 9999999 (or later) is required.',
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testSkipsIfRequiresNonExistingOs()
-    {
-        $test   = new RequirementsTest('testAlwaysSkip3');
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->skippedCount());
-        $this->assertEquals(
-            'Operating system matching /DOESNOTEXIST/i is required.',
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testSkipsIfRequiresNonExistingFunction()
-    {
-        $test   = new RequirementsTest('testNine');
-        $result = $test->run();
-
-        $this->assertEquals(1, $result->skippedCount());
-        $this->assertEquals(
-            'Function testFunc is required.',
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testSkipsIfRequiresNonExistingExtension()
-    {
-        $test   = new RequirementsTest('testTen');
-        $result = $test->run();
-
-        $this->assertEquals(
-            'Extension testExt is required.',
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testSkipsProvidesMessagesForAllSkippingReasons()
-    {
-        $test   = new RequirementsTest('testAllPossibleRequirements');
-        $result = $test->run();
-
-        $this->assertEquals(
-            'PHP 99-dev (or later) is required.' . PHP_EOL .
-            'PHPUnit 9-dev (or later) is required.' . PHP_EOL .
-            'Operating system matching /DOESNOTEXIST/i is required.' . PHP_EOL .
-            'Function testFuncOne is required.' . PHP_EOL .
-            'Function testFuncTwo is required.' . PHP_EOL .
-            'Extension testExtOne is required.' . PHP_EOL .
-            'Extension testExtTwo is required.',
-            $test->getStatusMessage()
-        );
-    }
-
-    public function testRequiringAnExistingMethodDoesNotSkip()
-    {
-        $test   = new RequirementsTest('testExistingMethod');
-        $result = $test->run();
-        $this->assertEquals(0, $result->skippedCount());
-    }
-
-    public function testRequiringAnExistingFunctionDoesNotSkip()
-    {
-        $test   = new RequirementsTest('testExistingFunction');
-        $result = $test->run();
-        $this->assertEquals(0, $result->skippedCount());
-    }
-
-    public function testRequiringAnExistingExtensionDoesNotSkip()
-    {
-        $test   = new RequirementsTest('testExistingExtension');
-        $result = $test->run();
-        $this->assertEquals(0, $result->skippedCount());
-    }
-
-    public function testRequiringAnExistingOsDoesNotSkip()
-    {
-        $test   = new RequirementsTest('testExistingOs');
-        $result = $test->run();
-        $this->assertEquals(0, $result->skippedCount());
-    }
-
-    public function testCurrentWorkingDirectoryIsRestored()
-    {
-        $expectedCwd = getcwd();
-
-        $test = new ChangeCurrentWorkingDirectoryTest('testSomethingThatChangesTheCwd');
-        $test->run();
-
-        $this->assertSame($expectedCwd, getcwd());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/TestFailureTest.php b/core/vendor/phpunit/phpunit/tests/Framework/TestFailureTest.php
deleted file mode 100644
index 2ac01b4..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/TestFailureTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      File available since Release 3.7.20
- */
-class Framework_TestFailureTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHPUnit_Framework_TestFailure::toString
-     */
-    public function testToString()
-    {
-        $test = new self(__FUNCTION__);
-        $exception = new PHPUnit_Framework_Exception('message');
-        $failure = new PHPUnit_Framework_TestFailure($test, $exception);
-
-        $this->assertEquals(__METHOD__ . ': message', $failure->toString());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/TestImplementorTest.php b/core/vendor/phpunit/phpunit/tests/Framework/TestImplementorTest.php
deleted file mode 100644
index a882fe0..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/TestImplementorTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- */
-class Framework_TestImplementorTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHPUnit_Framework_TestCase
-     */
-    public function testSuccessfulRun()
-    {
-        $result = new PHPUnit_Framework_TestResult;
-
-        $test = new DoubleTestCase(new Success);
-        $test->run($result);
-
-        $this->assertEquals(count($test), count($result));
-        $this->assertEquals(0, $result->errorCount());
-        $this->assertEquals(0, $result->failureCount());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Framework/TestListenerTest.php b/core/vendor/phpunit/phpunit/tests/Framework/TestListenerTest.php
deleted file mode 100644
index f683ac2..0000000
--- a/core/vendor/phpunit/phpunit/tests/Framework/TestListenerTest.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- * @covers     PHPUnit_Framework_TestCase
- */
-class Framework_TestListenerTest extends PHPUnit_Framework_TestCase implements PHPUnit_Framework_TestListener
-{
-    protected $endCount;
-    protected $errorCount;
-    protected $failureCount;
-    protected $notImplementedCount;
-    protected $riskyCount;
-    protected $skippedCount;
-    protected $result;
-    protected $startCount;
-
-    public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->errorCount++;
-    }
-
-    public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
-    {
-        $this->failureCount++;
-    }
-
-    public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->notImplementedCount++;
-    }
-
-    public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->riskyCount++;
-    }
-
-    public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time)
-    {
-        $this->skippedCount++;
-    }
-
-    public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    public function endTestSuite(PHPUnit_Framework_TestSuite $suite)
-    {
-    }
-
-    public function startTest(PHPUnit_Framework_Test $test)
-    {
-        $this->startCount++;
-    }
-
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        $this->endCount++;
-    }
-
-    protected function setUp()
-    {
-        $this->result = new PHPUnit_Framework_TestResult;
-        $this->result->addListener($this);
-
-        $this->endCount            = 0;
-        $this->failureCount        = 0;
-        $this->notImplementedCount = 0;
-        $this->riskyCount          = 0;
-        $this->skippedCount        = 0;
-        $this->startCount          = 0;
-    }
-
-    public function testError()
-    {
-        $test = new Error;
-        $test->run($this->result);
-
-        $this->assertEquals(1, $this->errorCount);
-        $this->assertEquals(1, $this->endCount);
-    }
-
-    public function testFailure()
-    {
-        $test = new Failure;
-        $test->run($this->result);
-
-        $this->assertEquals(1, $this->failureCount);
-        $this->assertEquals(1, $this->endCount);
-    }
-
-    public function testStartStop()
-    {
-        $test = new Success;
-        $test->run($this->result);
-
-        $this->assertEquals(1, $this->startCount);
-        $this->assertEquals(1, $this->endCount);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt b/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt
deleted file mode 100644
index cae0705..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/1021.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-#1021: Depending on a test that uses a data provider does not work
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue1021Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/1021/Issue1021Test.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/1021/Issue1021Test.php b/core/vendor/phpunit/phpunit/tests/Regression/1021/Issue1021Test.php
deleted file mode 100644
index 5814e94..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/1021/Issue1021Test.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-class Issue1021Test extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provider
-     */
-    public function testSomething($data)
-    {
-        $this->assertTrue($data);
-    }
-
-    /**
-     * @depends testSomething
-     */
-    public function testSomethingElse()
-    {
-    }
-
-    public function provider()
-    {
-        return array(array(true));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/523.phpt b/core/vendor/phpunit/phpunit/tests/Regression/523.phpt
deleted file mode 100644
index 6f2dd26..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/523.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-#523: assertAttributeEquals does not work with classes extending ArrayIterator
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue523Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/523/Issue523Test.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/523/Issue523Test.php b/core/vendor/phpunit/phpunit/tests/Regression/523/Issue523Test.php
deleted file mode 100644
index 80124f1..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/523/Issue523Test.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class Issue523Test extends PHPUnit_Framework_TestCase
-{
-    public function testAttributeEquals()
-    {
-        $this->assertAttributeEquals('foo', 'field', new Issue523());
-    }
-};
-
-class Issue523 extends ArrayIterator
-{
-    protected $field = 'foo';
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/578.phpt b/core/vendor/phpunit/phpunit/tests/Regression/578.phpt
deleted file mode 100644
index 4f12821..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/578.phpt
+++ /dev/null
@@ -1,37 +0,0 @@
---TEST--
-#578: Double printing of trace line for exceptions from notices and warnings
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue578Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/578/Issue578Test.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-EEE
-
-Time: %s, Memory: %sMb
-
-There were 3 errors:
-
-1) Issue578Test::testNoticesDoublePrintStackTrace
-Invalid error type specified
-
-%sIssue578Test.php:%i
-
-2) Issue578Test::testWarningsDoublePrintStackTrace
-Invalid error type specified
-
-%sIssue578Test.php:%i
-
-3) Issue578Test::testUnexpectedExceptionsPrintsCorrectly
-Exception: Double printed exception
-
-%sIssue578Test.php:%i
-
-FAILURES!
-Tests: 3, Assertions: 0, Errors: 3.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/578/Issue578Test.php b/core/vendor/phpunit/phpunit/tests/Regression/578/Issue578Test.php
deleted file mode 100644
index 262d97f..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/578/Issue578Test.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-class Issue578Test extends PHPUnit_Framework_TestCase
-{
-    public function testNoticesDoublePrintStackTrace()
-    {
-        $this->iniSet('error_reporting', E_ALL | E_NOTICE);
-        trigger_error('Stack Trace Test Notice', E_NOTICE);
-    }
-
-    public function testWarningsDoublePrintStackTrace()
-    {
-        $this->iniSet('error_reporting', E_ALL | E_NOTICE);
-        trigger_error('Stack Trace Test Notice', E_WARNING);
-    }
-
-    public function testUnexpectedExceptionsPrintsCorrectly()
-    {
-        throw new Exception('Double printed exception');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/684.phpt b/core/vendor/phpunit/phpunit/tests/Regression/684.phpt
deleted file mode 100644
index e3f8360..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/684.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-#684: Unable to find test class when no test methods exists
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue684Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/684/Issue684Test.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Warning
-No tests found in class "Foo_Bar_Issue684Test".
-
-FAILURES!
-Tests: 1, Assertions: 0, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/684/Issue684Test.php b/core/vendor/phpunit/phpunit/tests/Regression/684/Issue684Test.php
deleted file mode 100644
index e8e5d87..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/684/Issue684Test.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class Foo_Bar_Issue684Test extends PHPUnit_Framework_TestCase
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/783.phpt b/core/vendor/phpunit/phpunit/tests/Regression/783.phpt
deleted file mode 100644
index 920bf93..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/783.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-#783: Tests getting executed twice when using multiple groups
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--group';
-$_SERVER['argv'][3] = 'foo,bar';
-$_SERVER['argv'][4] = 'ParentSuite';
-$_SERVER['argv'][5] = dirname(__FILE__).'/783/ParentSuite.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 0 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/783/ChildSuite.php b/core/vendor/phpunit/phpunit/tests/Regression/783/ChildSuite.php
deleted file mode 100644
index 8bac514..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/783/ChildSuite.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-require_once 'OneTest.php';
-require_once 'TwoTest.php';
-
-class ChildSuite
-{
-    public static function suite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('Child');
-        $suite->addTestSuite('OneTest');
-        $suite->addTestSuite('TwoTest');
-
-        return $suite;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/783/OneTest.php b/core/vendor/phpunit/phpunit/tests/Regression/783/OneTest.php
deleted file mode 100644
index 3daa91b..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/783/OneTest.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
-* @group foo
-*/
-class OneTest extends PHPUnit_Framework_TestCase
-{
-    public function testSomething()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/783/ParentSuite.php b/core/vendor/phpunit/phpunit/tests/Regression/783/ParentSuite.php
deleted file mode 100644
index 6dd63e2..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/783/ParentSuite.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-require_once 'ChildSuite.php';
-
-class ParentSuite
-{
-    public static function suite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('Parent');
-        $suite->addTest(ChildSuite::suite());
-
-        return $suite;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/783/TwoTest.php b/core/vendor/phpunit/phpunit/tests/Regression/783/TwoTest.php
deleted file mode 100644
index 8fa9958..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/783/TwoTest.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
-* @group bar
-*/
-class TwoTest extends PHPUnit_Framework_TestCase
-{
-    public function testSomething()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt
deleted file mode 100644
index 01525dc..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-GH-1149: Test swallows output buffer when run in a separate process
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue1149Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/1149/Issue1149Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.1.2
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149/Issue1149Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149/Issue1149Test.php
deleted file mode 100644
index 01ac870..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1149/Issue1149Test.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-class Issue1149Test extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-        $this->assertTrue(true);
-        print '1';
-    }
-
-    /**
-     * @runInSeparateProcess
-     */
-    public function testTwo()
-    {
-        $this->assertTrue(true);
-        print '2';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt
deleted file mode 100644
index 004d440..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-GH-1216: PHPUnit bootstrap must take globals vars even when the file is specified in command line
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--configuration';
-$_SERVER['argv'][2] = dirname(__FILE__).'/1216/phpunit1216.xml';
-$_SERVER['argv'][3] = '--debug';
-$_SERVER['argv'][4] = '--bootstrap';
-$_SERVER['argv'][5] = dirname(__FILE__).'/1216/bootstrap1216.php';
-$_SERVER['argv'][6] = dirname(__FILE__) . '/1216/Issue1216Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Configuration read from %s
-
-
-Starting test 'Issue1216Test::testConfigAvailableInBootstrap'.
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/Issue1216Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/Issue1216Test.php
deleted file mode 100644
index cfceaf5..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/Issue1216Test.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Issue1216Test extends PHPUnit_Framework_TestCase
-{
-    public function testConfigAvailableInBootstrap()
-    {
-        $this->assertTrue($_ENV['configAvailableInBootstrap']);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/bootstrap1216.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/bootstrap1216.php
deleted file mode 100644
index cec2724..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/bootstrap1216.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-$_ENV['configAvailableInBootstrap'] = isset($_ENV['loadedFromConfig']);
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/phpunit1216.xml b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/phpunit1216.xml
deleted file mode 100644
index c1cc9bd..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1216/phpunit1216.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<phpunit>
-    <testsuite name="Github issue 1216">
-        <file>Issue1216Test.php</file>
-    </testsuite>
-    <php>
-        <env name="loadedFromConfig" value="1"/>
-    </php>
-</phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt
deleted file mode 100644
index ae86561..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-GH-1265: Could not use "PHPUnit_Runner_StandardTestSuiteLoader" as loader
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--configuration';
-$_SERVER['argv'][2] = dirname(__FILE__).'/1265/phpunit1265.xml';
-$_SERVER['argv'][3] = 'Issue1265Test';
-$_SERVER['argv'][4] = dirname(__FILE__).'/1265/Issue1265Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Configuration read from %s
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265/Issue1265Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265/Issue1265Test.php
deleted file mode 100644
index 68d71b3..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265/Issue1265Test.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Issue1265Test extends PHPUnit_Framework_TestCase
-{
-    public function testTrue()
-    {
-        $this->assertTrue(true);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265/phpunit1265.xml b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265/phpunit1265.xml
deleted file mode 100644
index 27fdd52..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1265/phpunit1265.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<phpunit testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader">
-</phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt
deleted file mode 100644
index 747ea5a..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-GH-1330: Allow non-ambiguous shortened longopts
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--deb';
-$_SERVER['argv'][2] = '--config';
-$_SERVER['argv'][3] = dirname(__FILE__).'/1330/phpunit1330.xml';
-$_SERVER['argv'][4] = 'Issue1330Test';
-$_SERVER['argv'][5] = dirname(__FILE__).'/1330/Issue1330Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Configuration read from %s
-
-
-Starting test 'Issue1330Test::testTrue'.
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330/Issue1330Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330/Issue1330Test.php
deleted file mode 100644
index 0829cb9..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330/Issue1330Test.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Issue1330Test extends PHPUnit_Framework_TestCase
-{
-    public function testTrue()
-    {
-        $this->assertTrue(PHPUNIT_1330);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330/phpunit1330.xml b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330/phpunit1330.xml
deleted file mode 100644
index a61e0cc..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1330/phpunit1330.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<phpunit>
-  <php>
-    <const name="PHPUNIT_1330" value="true"/>
-  </php>
-</phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt
deleted file mode 100644
index 31b8e05..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-GH-1335: exportVariable multiple backslash problem
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--bootstrap';
-$_SERVER['argv'][3] = dirname(__FILE__).'/1335/bootstrap1335.php';
-$_SERVER['argv'][4] = dirname(__FILE__).'/1335/Issue1335Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-............
-
-Time: %s, Memory: %sMb
-
-OK (12 tests, 12 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php
deleted file mode 100644
index 218cf7e..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-/**
- * @runTestsInSeparateProcesses
- * @preserveGlobalState enabled
- */
-class Issue1335Test extends PHPUnit_Framework_TestCase
-{
-    public function testGlobalString()
-    {
-        $this->assertEquals("Hello", $GLOBALS['globalString']);
-    }
-
-    public function testGlobalIntTruthy()
-    {
-        $this->assertEquals(1, $GLOBALS['globalIntTruthy']);
-    }
-
-    public function testGlobalIntFalsey()
-    {
-        $this->assertEquals(0, $GLOBALS['globalIntFalsey']);
-    }
-
-    public function testGlobalFloat()
-    {
-        $this->assertEquals(1.123, $GLOBALS['globalFloat']);
-    }
-
-    public function testGlobalBoolTrue()
-    {
-        $this->assertEquals(true, $GLOBALS['globalBoolTrue']);
-    }
-
-    public function testGlobalBoolFalse()
-    {
-        $this->assertEquals(false, $GLOBALS['globalBoolFalse']);
-    }
-
-    public function testGlobalNull()
-    {
-        $this->assertEquals(null, $GLOBALS['globalNull']);
-    }
-
-    public function testGlobalArray()
-    {
-        $this->assertEquals(array("foo"), $GLOBALS['globalArray']);
-    }
-
-    public function testGlobalNestedArray()
-    {
-        $this->assertEquals(array(array("foo")), $GLOBALS['globalNestedArray']);
-    }
-
-    public function testGlobalObject()
-    {
-        $this->assertEquals((object)array("foo"=>"bar"), $GLOBALS['globalObject']);
-    }
-
-    public function testGlobalObjectWithBackSlashString()
-    {
-        $this->assertEquals((object)array("foo"=>"back\\slash"), $GLOBALS['globalObjectWithBackSlashString']);
-    }
-
-    public function testGlobalObjectWithDoubleBackSlashString()
-    {
-        $this->assertEquals((object)array("foo"=>"back\\\\slash"), $GLOBALS['globalObjectWithDoubleBackSlashString']);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/bootstrap1335.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/bootstrap1335.php
deleted file mode 100644
index 6435677..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1335/bootstrap1335.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-$globalString = "Hello";
-$globalIntTruthy = 1;
-$globalIntFalsey = 0;
-$globalFloat = 1.123;
-$globalBoolTrue = true;
-$globalBoolFalse = false;
-$globalNull = null;
-$globalArray = array("foo");
-$globalNestedArray = array(array("foo"));
-$globalObject = (object)array("foo"=>"bar");
-$globalObjectWithBackSlashString = (object)array("foo"=>"back\\slash");
-$globalObjectWithDoubleBackSlashString = (object)array("foo"=>"back\\\\slash");
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt
deleted file mode 100644
index d97ba4f..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-GH-1337: Data Provider with \ at the end of the name breaks with process isolation
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'Issue1337Test';
-$_SERVER['argv'][4] = dirname(__FILE__).'/1337/Issue1337Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337/Issue1337Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337/Issue1337Test.php
deleted file mode 100644
index 44a2fce..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1337/Issue1337Test.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-class Issue1337Test extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider dataProvider
-     */
-    public function testProvider($a)
-    {
-        $this->assertTrue($a);
-    }
-
-    public function dataProvider()
-    {
-        return array(
-          'c:\\'=>array(true),
-          0.9=>array(true)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt
deleted file mode 100644
index 0778f97..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340.phpt
+++ /dev/null
@@ -1,36 +0,0 @@
---TEST--
-GH-1340: Process isolation blocks infinitely upon fatal error
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '-d';
-$_SERVER['argv'][3] = 'error_log=';
-$_SERVER['argv'][4] = 'Issue1340Test';
-$_SERVER['argv'][5] = dirname(__FILE__).'/1340/Issue1340Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-%A
-.E.EE
-
-Time: %s, Memory: %sMb
-
-There were 3 errors:
-
-1) Issue1340Test::testLargeStderrOutputDoesNotBlockInIsolation
-PHPUnit_Framework_Exception: testLargeStderrOutputDoesNotBlockInIsolation: stderr:%d
-%A
-2) Issue1340Test::testPhpNoticeWithStderrOutputIsAnError
-PHPUnit_Framework_Exception: shutdown: stderr:%d
-%A
-3) Issue1340Test::testFatalErrorDoesNotPass
-PHPUnit_Framework_Exception: Fatal error: Call to undefined function undefined_function() in %s on line %d
-%A
-shutdown: stderr:%d
-%A
-FAILURES!
-Tests: 5, Assertions: 3, Errors: 3.
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php
deleted file mode 100644
index 19c4fbd..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1340/Issue1340Test.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/**
- * @see https://bugs.php.net/bug.php?id=51800
- */
-class Issue1340Test extends PHPUnit_Framework_TestCase
-{
-    private static function get4KB()
-    {
-        return str_repeat('1', 4096 + 1);
-    }
-
-    /**
-     * Also fails despite no isolation, because a phpt test is executed in
-     * subprocess on its own.
-     */
-    public function testLargeStderrOutputDoesNotBlock()
-    {
-        // STDERR of a phpt test is not caught/validated at this point, so this
-        // error output does not cause this test to fail.
-        // @see https://github.com/sebastianbergmann/phpunit/issues/1169
-        error_log("\n" . __FUNCTION__ . ": stderr:" . self::get4KB() . "\n");
-        $this->assertTrue(true);
-    }
-
-    /**
-     * @runInSeparateProcess
-     */
-    public function testLargeStderrOutputDoesNotBlockInIsolation()
-    {
-        error_log("\n" . __FUNCTION__ . ": stderr:" . self::get4KB() . "\n");
-        $this->assertTrue(true);
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @expectedException \PHPUnit_Framework_Error_Notice
-     * @expectedExceptionMessage Undefined variable: foo
-     */
-    public function testPhpNoticeIsCaught()
-    {
-        $bar = $foo['foo'];
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @expectedException \PHPUnit_Framework_Error_Notice
-     * @expectedExceptionMessage Undefined variable: foo
-     */
-    public function testPhpNoticeWithStderrOutputIsAnError()
-    {
-        register_shutdown_function(__CLASS__ . '::onShutdown');
-        $bar = $foo['foo'];
-    }
-
-    /**
-     * @runInSeparateProcess
-     */
-    public function testFatalErrorDoesNotPass()
-    {
-        register_shutdown_function(__CLASS__ . '::onShutdown');
-        $undefined = 'undefined_function';
-        $undefined();
-    }
-
-    public static function onShutdown()
-    {
-        echo "\nshutdown: stdout:", self::get4KB(), "\n";
-        error_log("\nshutdown: stderr:" . self::get4KB());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt
deleted file mode 100644
index e1892ba..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-GH-1348: STDOUT/STDERR IO streams should exist in process isolation
---SKIPIF--
-<?php
-if (defined('HHVM_VERSION'))
-    print "skip: PHP runtime required";
-?>
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][] = '--report-useless-tests';
-$_SERVER['argv'][] = '--process-isolation';
-$_SERVER['argv'][] = 'Issue1348Test';
-$_SERVER['argv'][] = __DIR__ . '/1348/Issue1348Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-STDOUT does not break test result
-E
-
-Time: %s, Memory: %sMb
-
-There was 1 error:
-
-1) Issue1348Test::testSTDERR
-PHPUnit_Framework_Exception: STDERR works as usual.
-
-FAILURES!
-Tests: 2, Assertions: 1, Errors: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348/Issue1348Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348/Issue1348Test.php
deleted file mode 100644
index d3c82f0..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1348/Issue1348Test.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-class Issue1348Test extends PHPUnit_Framework_TestCase
-{
-    public function testSTDOUT()
-    {
-        fwrite(STDOUT, "\nSTDOUT does not break test result\n");
-        $this->assertTrue(true);
-    }
-
-    public function testSTDERR()
-    {
-        fwrite(STDERR, 'STDERR works as usual.');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt
deleted file mode 100644
index da285fe..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt
+++ /dev/null
@@ -1,48 +0,0 @@
---TEST--
-GH-1351: Test result does not serialize test class in process isolation
---SKIPIF--
-<?php
-if (!extension_loaded('pdo') || !in_array('sqlite', PDO::getAvailableDrivers())) {
-    print 'skip: PDO_SQLITE is required';
-}
-?>
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'Issue1351Test';
-$_SERVER['argv'][4] = __DIR__ . '/1351/Issue1351Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F.E.E
-
-Time: %s, Memory: %sMb
-
-There were 2 errors:
-
-1) Issue1351Test::testExceptionPre
-RuntimeException: Expected rethrown exception.
-%A
-Caused by
-LogicException: Expected exception.
-%A
-
-2) Issue1351Test::testPhpCoreLanguageException
-PDOException: SQLSTATE[HY000]: General error: 1 no such table: php_wtf
-%A
-
---
-
-There was 1 failure:
-
-1) Issue1351Test::testFailurePre
-Expected failure.
-%A
-FAILURES!
-Tests: 5, Assertions: 5, Failures: 1, Errors: 2.
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351/ChildProcessClass1351.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351/ChildProcessClass1351.php
deleted file mode 100644
index 24c0537..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351/ChildProcessClass1351.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class ChildProcessClass1351
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351/Issue1351Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351/Issue1351Test.php
deleted file mode 100644
index f688c55..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1351/Issue1351Test.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-class Issue1351Test extends PHPUnit_Framework_TestCase
-{
-    protected $instance;
-
-    /**
-     * @runInSeparateProcess
-     */
-    public function testFailurePre()
-    {
-        $this->instance = new ChildProcessClass1351();
-        $this->assertFalse(true, 'Expected failure.');
-    }
-
-    public function testFailurePost()
-    {
-        $this->assertNull($this->instance);
-        $this->assertFalse(class_exists('ChildProcessClass1351', false), 'ChildProcessClass1351 is not loaded.');
-    }
-
-    /**
-     * @runInSeparateProcess
-     */
-    public function testExceptionPre()
-    {
-        $this->instance = new ChildProcessClass1351();
-        try {
-            throw new LogicException('Expected exception.');
-        } catch (LogicException $e) {
-            throw new RuntimeException('Expected rethrown exception.', 0, $e);
-        }
-    }
-
-    public function testExceptionPost()
-    {
-        $this->assertNull($this->instance);
-        $this->assertFalse(class_exists('ChildProcessClass1351', false), 'ChildProcessClass1351 is not loaded.');
-    }
-
-    public function testPhpCoreLanguageException()
-    {
-        // User-space code cannot instantiate a PDOException with a string code,
-        // so trigger a real one.
-        $connection = new PDO('sqlite::memory:');
-        $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-        $connection->query("DELETE FROM php_wtf WHERE exception_code = 'STRING'");
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt
deleted file mode 100644
index c994f56..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-GH-1374: tearDown() is called despite unmet requirements
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue1374Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/1374/Issue1374Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-S
-
-Time: %s, Memory: %sMb
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Skipped: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374/Issue1374Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374/Issue1374Test.php
deleted file mode 100644
index ad6a3bf..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1374/Issue1374Test.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * @requires extension I_DO_NOT_EXIST
- */
-class Issue1374Test extends PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        print __FUNCTION__;
-    }
-
-    public function testSomething()
-    {
-        $this->fail('This should not be reached');
-    }
-
-    protected function tearDown()
-    {
-        print __FUNCTION__;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt
deleted file mode 100644
index c3b2e25..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-GH-1437: Risky test messages mask failures
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue1437Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/1437/Issue1437Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Issue1437Test::testFailure
-Failed asserting that false is true.
-
-%sIssue1437Test.php:%i
-
-FAILURES!
-Tests: 1, Assertions: 1, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437/Issue1437Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437/Issue1437Test.php
deleted file mode 100644
index bff4b20..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1437/Issue1437Test.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-class Issue1437Test extends PHPUnit_Framework_TestCase
-{
-    public function testFailure()
-    {
-        ob_start();
-        $this->assertTrue(false);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt
deleted file mode 100644
index 23c410b..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-GH-1468: Incomplete and @todo annotated tests are counted twice
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--disallow-todo-tests';
-$_SERVER['argv'][3] = 'Issue1468Test';
-$_SERVER['argv'][4] = __DIR__ . '/1468/Issue1468Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-I
-
-Time: %s, Memory: %sMb
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Incomplete: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php
deleted file mode 100644
index 535b25b..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class Issue1468Test extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @todo Implement this test
-     */
-    public function testFailure()
-    {
-        $this->markTestIncomplete();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt
deleted file mode 100644
index 631d6e6..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-GH-1471: Output made while test is running is printed although expectOutputString() is used when an assertion fails
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue1471Test';
-$_SERVER['argv'][3] = __DIR__ . '/1471/Issue1471Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Issue1471Test::testFailure
-Failed asserting that false is true.
-
-%s/Issue1471Test.php:10
-
-FAILURES!
-Tests: 1, Assertions: 1, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php
deleted file mode 100644
index 6a09416..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class Issue1471Test extends PHPUnit_Framework_TestCase
-{
-    public function testFailure()
-    {
-        $this->expectOutputString('*');
-
-        print "*";
-
-        $this->assertTrue(false);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt
deleted file mode 100644
index 3e605b4..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-GH-1472: assertEqualXMLStructure modifies the tested elements
---SKIPIF--
-<?php
-// See: https://github.com/facebook/hhvm/issues/4669
-if (defined('HHVM_VERSION')) {
-    print 'skip: HHVM does not support cloning DOM nodes';
-}
-?>
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue1472Test';
-$_SERVER['argv'][3] = dirname(__FILE__) . '/1472/Issue1472Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 4 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472/Issue1472Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472/Issue1472Test.php
deleted file mode 100644
index a392773..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1472/Issue1472Test.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class Issue1472Test extends PHPUnit_Framework_TestCase
-{
-    public function testAssertEqualXMLStructure()
-    {
-        $doc = new DOMDocument;
-        $doc->loadXML('<root><label>text content</label></root>');
-
-        $xpath = new DOMXPath($doc);
-
-        $labelElement = $doc->getElementsByTagName('label')->item(0);
-
-        $this->assertEquals(1, $xpath->evaluate('count(//label[text() = "text content"])'));
-
-        $expectedElmt = $doc->createElement('label', 'text content');
-        $this->assertEqualXMLStructure($expectedElmt, $labelElement);
-
-        // the following assertion fails, even though it passed before - which is due to the assertEqualXMLStructure() has modified the $labelElement
-        $this->assertEquals(1, $xpath->evaluate('count(//label[text() = "text content"])'));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt
deleted file mode 100644
index a94b961..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-GH-1570: Test that prints output is marked as failure and not as risky when --disallow-test-output is used
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--disallow-test-output';
-$_SERVER['argv'][3] = 'Issue1570Test';
-$_SERVER['argv'][4] = dirname(__FILE__) . '/1570/Issue1570Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-R*
-
-Time: %s, Memory: %sMb
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Risky: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570/Issue1570Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570/Issue1570Test.php
deleted file mode 100644
index f310363..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/1570/Issue1570Test.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Issue1570Test extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-        print "*";
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt
deleted file mode 100644
index 29be767..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt
+++ /dev/null
@@ -1,32 +0,0 @@
---TEST--
-GH-244: Expected Exception should support string codes
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'Issue244Test';
-$_SERVER['argv'][4] = dirname(__FILE__).'/244/Issue244Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.FFF
-
-Time: %s, Memory: %sMb
-
-There were 3 failures:
-
-1) Issue244Test::testFails
-Failed asserting that '123StringCode' is equal to expected exception code 'OtherString'.
-
-2) Issue244Test::testFailsTooIfExpectationIsANumber
-Failed asserting that '123StringCode' is equal to expected exception code 123.
-
-3) Issue244Test::testFailsTooIfExceptionCodeIsANumber
-Failed asserting that 123 is equal to expected exception code '123String'.
-
-FAILURES!
-Tests: 4, Assertions: 8, Failures: 3.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244/Issue244Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244/Issue244Test.php
deleted file mode 100644
index 621c4cf..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/244/Issue244Test.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-class Issue244Test extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException Issue244Exception
-     * @expectedExceptionCode 123StringCode
-     */
-    public function testWorks()
-    {
-        throw new Issue244Exception;
-    }
-
-    /**
-     * @expectedException Issue244Exception
-     * @expectedExceptionCode OtherString
-     */
-    public function testFails()
-    {
-        throw new Issue244Exception;
-    }
-
-    /**
-     * @expectedException Issue244Exception
-     * @expectedExceptionCode 123
-     */
-    public function testFailsTooIfExpectationIsANumber()
-    {
-        throw new Issue244Exception;
-    }
-
-    /**
-     * @expectedException Issue244ExceptionIntCode
-     * @expectedExceptionCode 123String
-     */
-    public function testFailsTooIfExceptionCodeIsANumber()
-    {
-        throw new Issue244ExceptionIntCode;
-    }
-}
-
-class Issue244Exception extends Exception
-{
-    public function __construct()
-    {
-        $this->code = '123StringCode';
-    }
-}
-
-class Issue244ExceptionIntCode extends Exception
-{
-    public function __construct()
-    {
-        $this->code = 123;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt
deleted file mode 100644
index 1dfa805..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-GH-322: group commandline option should override group/exclude setting in phpunit.xml
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--configuration';
-$_SERVER['argv'][2] = dirname(__FILE__).'/322/phpunit322.xml';
-$_SERVER['argv'][3] = '--debug';
-$_SERVER['argv'][4] = '--group';
-$_SERVER['argv'][5] = 'one';
-$_SERVER['argv'][6] = 'Issue322Test';
-$_SERVER['argv'][7] = dirname(__FILE__).'/322/Issue322Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Configuration read from %s
-
-
-Starting test 'Issue322Test::testOne'.
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 0 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322/Issue322Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322/Issue322Test.php
deleted file mode 100644
index 618bcaa..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322/Issue322Test.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-class Issue322Test extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @group one
-     */
-    public function testOne()
-    {
-    }
-
-    /**
-     * @group two
-     */
-    public function testTwo()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322/phpunit322.xml b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322/phpunit322.xml
deleted file mode 100644
index e3b2948..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/322/phpunit322.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<phpunit>
-  <testsuite name="My Test Suite">
-    <file>Test.php</file>
-  </testsuite>
-
-  <groups>
-    <exclude>
-      <group>one</group>
-    </exclude>
-  </groups>
-</phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt
deleted file mode 100644
index de247c4..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt
+++ /dev/null
@@ -1,31 +0,0 @@
---TEST--
-GH-433: expectOutputString not completely working as expected
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue433Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/433/Issue433Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Issue433Test::testNotMatchingOutput
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
--'foo'
-+'bar'
-
-FAILURES!
-Tests: 3, Assertions: 3, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433/Issue433Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433/Issue433Test.php
deleted file mode 100644
index e0a91b3..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/433/Issue433Test.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class Issue433Test extends PHPUnit_Framework_TestCase
-{
-    public function testOutputWithExpectationBefore()
-    {
-        $this->expectOutputString('test');
-        print 'test';
-    }
-
-    public function testOutputWithExpectationAfter()
-    {
-        print 'test';
-        $this->expectOutputString('test');
-    }
-
-    public function testNotMatchingOutput()
-    {
-        print 'bar';
-        $this->expectOutputString('foo');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt
deleted file mode 100644
index 8041d0b..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt
+++ /dev/null
@@ -1,32 +0,0 @@
---TEST--
-GH-455: expectOutputString not working in strict mode
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--disallow-test-output';
-$_SERVER['argv'][3] = 'Issue445Test';
-$_SERVER['argv'][4] = dirname(__FILE__).'/445/Issue445Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Issue445Test::testNotMatchingOutput
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
--'foo'
-+'bar'
-
-FAILURES!
-Tests: 3, Assertions: 3, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445/Issue445Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445/Issue445Test.php
deleted file mode 100644
index c309025..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/445/Issue445Test.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class Issue445Test extends PHPUnit_Framework_TestCase
-{
-    public function testOutputWithExpectationBefore()
-    {
-        $this->expectOutputString('test');
-        print 'test';
-    }
-
-    public function testOutputWithExpectationAfter()
-    {
-        print 'test';
-        $this->expectOutputString('test');
-    }
-
-    public function testNotMatchingOutput()
-    {
-        print 'bar';
-        $this->expectOutputString('foo');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt
deleted file mode 100644
index 828995f..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-GH-498: The test methods won't be run if a dataProvider throws Exception and --group is added in command line
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--group';
-$_SERVER['argv'][3] = 'trueOnly';
-$_SERVER['argv'][4] = 'Issue498Test';
-$_SERVER['argv'][5] = dirname(__FILE__).'/498/Issue498Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Warning
-The data provider specified for Issue498Test::shouldBeFalse is invalid.
-Can't create the data
-
-FAILURES!
-Tests: 1, Assertions: 0, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php
deleted file mode 100644
index 2120fab..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-class Issue498Test extends PHPUnit_Framework_TestCase
-{
-
-    /**
-     * @test
-     * @dataProvider shouldBeTrueDataProvider
-     * @group falseOnly
-     */
-    public function shouldBeTrue($testData)
-    {
-        $this->assertTrue(true);
-    }
-
-
-    /**
-     * @test
-     * @dataProvider shouldBeFalseDataProvider
-     * @group trueOnly
-     */
-    public function shouldBeFalse($testData)
-    {
-        $this->assertFalse(false);
-    }
-
-    public function shouldBeTrueDataProvider()
-    {
-
-        //throw new Exception("Can't create the data");
-        return array(
-            array(true),
-            array(false)
-        );
-    }
-
-    public function shouldBeFalseDataProvider()
-    {
-        throw new Exception("Can't create the data");
-        return array(
-            array(true),
-            array(false)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt
deleted file mode 100644
index e95506c..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt
+++ /dev/null
@@ -1,33 +0,0 @@
---TEST--
-GH-503: assertEquals() Line Ending Differences Are Obscure
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue503Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/503/Issue503Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Issue503Test::testCompareDifferentLineEndings
-Failed asserting that two strings are identical.
---- Expected
-+++ Actual
-@@ @@
- #Warning: Strings contain different line endings!
- foo
-
-%s:%i
-
-FAILURES!
-Tests: 1, Assertions: 1, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503/Issue503Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503/Issue503Test.php
deleted file mode 100644
index 75ca8d4..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/503/Issue503Test.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class Issue503Test extends PHPUnit_Framework_TestCase
-{
-    public function testCompareDifferentLineEndings()
-    {
-        $this->assertSame(
-            "foo\n",
-            "foo\r\n"
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt
deleted file mode 100644
index ba1cf85..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt
+++ /dev/null
@@ -1,42 +0,0 @@
---TEST--
-GH-581: PHPUnit_Util_Type::export adds extra newlines in Windows
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue581Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/581/Issue581Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Issue581Test::testExportingObjectsDoesNotBreakWindowsLineFeeds
-Failed asserting that two objects are equal.
---- Expected
-+++ Actual
-@@ @@
- stdClass Object (
-     0 => 1
-     1 => 2
-     2 => 'Test\n'
-     3 => 4
--    4 => 5
-+    4 => 1
-     5 => 6
-     6 => 7
-     7 => 8
- )
-
-%s:%i
-
-FAILURES!
-Tests: 1, Assertions: 1, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php
deleted file mode 100644
index 394a638..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class Issue581Test extends PHPUnit_Framework_TestCase
-{
-    public function testExportingObjectsDoesNotBreakWindowsLineFeeds()
-    {
-        $this->assertEquals(
-            (object)array(1, 2, "Test\r\n", 4, 5, 6, 7, 8),
-            (object)array(1, 2, "Test\r\n", 4, 1, 6, 7, 8)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt
deleted file mode 100644
index 53f4934..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-GH-74: catchable fatal error in 3.5
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'Issue74Test';
-$_SERVER['argv'][4] = dirname(__FILE__).'/74/Issue74Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-E
-
-Time: %s, Memory: %sMb
-
-There was 1 error:
-
-1) Issue74Test::testCreateAndThrowNewExceptionInProcessIsolation
-NewException: Testing GH-74
-
-%sIssue74Test.php:7
-
-FAILURES!
-Tests: 1, Assertions: 0, Errors: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74/Issue74Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74/Issue74Test.php
deleted file mode 100644
index 72f3592..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74/Issue74Test.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-class Issue74Test extends PHPUnit_Framework_TestCase
-{
-    public function testCreateAndThrowNewExceptionInProcessIsolation()
-    {
-        require_once __DIR__ . '/NewException.php';
-        throw new NewException('Testing GH-74');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74/NewException.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74/NewException.php
deleted file mode 100644
index abe2f71..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/74/NewException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class NewException extends Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt
deleted file mode 100644
index 7599661..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-GH-765: Fatal error triggered in PHPUnit when exception is thrown in data provider of a test with a dependency
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue765Test';
-$_SERVER['argv'][3] = dirname(__FILE__).'/765/Issue765Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Warning
-The data provider specified for Issue765Test::testDependent is invalid.
-
-FAILURES!
-Tests: 2, Assertions: 1, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765/Issue765Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765/Issue765Test.php
deleted file mode 100644
index a47474b..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/765/Issue765Test.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class Issue765Test extends PHPUnit_Framework_TestCase
-{
-    public function testDependee()
-    {
-        $this->assertTrue(true);
-    }
-
-    /**
-     * @depends testDependee
-     * @dataProvider dependentProvider
-     */
-    public function testDependent($a)
-    {
-        $this->assertTrue(true);
-    }
-
-    public function dependentProvider()
-    {
-        throw new Exception;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt
deleted file mode 100644
index 73ba414..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-GH-797: Disabled $preserveGlobalState does not load bootstrap.php.
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][] = '--process-isolation';
-$_SERVER['argv'][] = '--bootstrap';
-$_SERVER['argv'][] = __DIR__ . '/797/bootstrap797.php';
-$_SERVER['argv'][] = __DIR__ . '/797/Issue797Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797/Issue797Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797/Issue797Test.php
deleted file mode 100644
index b1c1b8f..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797/Issue797Test.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-class Issue797Test extends PHPUnit_Framework_TestCase
-{
-    protected $preserveGlobalState = false;
-
-    public function testBootstrapPhpIsExecutedInIsolation()
-    {
-        $this->assertEquals(GITHUB_ISSUE, 797);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797/bootstrap797.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797/bootstrap797.php
deleted file mode 100644
index 03890a3..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/797/bootstrap797.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-// If process isolation fails to include this file, then
-// PHPUnit_Framework_TestCase itself does not exist. :-)
-require __DIR__ . '/../../../bootstrap.php';
-
-const GITHUB_ISSUE = 797;
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt
deleted file mode 100644
index 1e0ffbd..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-GH-863: Number of tests to run calculated incorrectly when --repeat is used
---FILE--
-<?php
-
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--repeat';
-$_SERVER['argv'][3] = '50';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(dirname(dirname(__FILE__))) . '/_files/BankAccountTest.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...............................................................  63 / 150 ( 42%)
-............................................................... 126 / 150 ( 84%)
-........................
-
-Time: %s, Memory: %sMb
-
-OK (150 tests, 150 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/873.phpt b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/873.phpt
deleted file mode 100644
index ca33c7f..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/873.phpt
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-GH-873: PHPUnit suppresses exceptions thrown outside of test case function
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'Issue873Test';
-$_SERVER['argv'][3] = dirname(__FILE__) . '/873/Issue873Test.php';
-
-require __DIR__ . '/../../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-
-Fatal error: Uncaught exception 'Exception' with message 'PHPUnit suppresses exceptions thrown outside of test case function' in %s:%i
-Stack trace:
-%a
diff --git a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/873/Issue873Test.php b/core/vendor/phpunit/phpunit/tests/Regression/GitHub/873/Issue873Test.php
deleted file mode 100644
index 70fd904..0000000
--- a/core/vendor/phpunit/phpunit/tests/Regression/GitHub/873/Issue873Test.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-if (extension_loaded('xdebug')) {
-    xdebug_disable();
-}
-
-    throw new Exception(
-        'PHPUnit suppresses exceptions thrown outside of test case function'
-    );
diff --git a/core/vendor/phpunit/phpunit/tests/Runner/BaseTestRunnerTest.php b/core/vendor/phpunit/phpunit/tests/Runner/BaseTestRunnerTest.php
deleted file mode 100644
index e8336f8..0000000
--- a/core/vendor/phpunit/phpunit/tests/Runner/BaseTestRunnerTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.0.0
- * @covers     PHPUnit_Runner_BaseTestRunner
- */
-class Runner_BaseTestRunnerTest extends PHPUnit_Framework_TestCase
-{
-    public function testInvokeNonStaticSuite()
-    {
-        $runner = new MockRunner;
-        $runner->getTest('NonStatic');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt
deleted file mode 100644
index 8d6c07a..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-phpunit AbstractTest ../_files/AbstractTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'AbstractTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/AbstractTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Warning
-Cannot instantiate class "AbstractTest".
-
-FAILURES!
-Tests: 1, Assertions: 0, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt
deleted file mode 100644
index 0beb8f2..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-phpunit --colors=always BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--colors=always';
-$_SERVER['argv'][3] = __DIR__.'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-%s[30;42mOK (3 tests, 3 assertions)%s[0m
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt
deleted file mode 100644
index f01bd79..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-phpunit ConcreteTest ../_files/ConcreteTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'ConcreteTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/ConcreteTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 0 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt
deleted file mode 100644
index 31ed8a4..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-phpunit -c ../_files/configuration.custom-printer.xml --debug BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '-c';
-$_SERVER['argv'][2] = dirname(__FILE__).'/../_files/configuration.custom-printer.xml';
-$_SERVER['argv'][3] = '--debug';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Configuration read from %sconfiguration.custom-printer.xml
-
-
-Starting test 'BankAccountTest::testBalanceIsInitiallyZero'.
-.
-Starting test 'BankAccountTest::testBalanceCannotBecomeNegative'.
-.
-Starting test 'BankAccountTest::testBalanceCannotBecomeNegative2'.
-.
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt
deleted file mode 100644
index 75a2644..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt
+++ /dev/null
@@ -1,31 +0,0 @@
---TEST--
-phpunit -c ../_files/configuration.custom-printer.xml --verbose IncompleteTest ../_files/IncompleteTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '-c';
-$_SERVER['argv'][2] = dirname(__FILE__).'/../_files/configuration.custom-printer.xml';
-$_SERVER['argv'][3] = '--verbose';
-$_SERVER['argv'][4] = 'IncompleteTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/IncompleteTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Configuration read from %sconfiguration.custom-printer.xml
-
-I
-
-Time: %s, Memory: %sMb
-
-There was 1 incomplete test:
-
-1) IncompleteTest::testIncomplete
-Test incomplete
-
-%s
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Incomplete: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt
deleted file mode 100644
index c6cfe86..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt
+++ /dev/null
@@ -1,34 +0,0 @@
---TEST--
-phpunit --debug DataProviderDebugTest ../_files/DataProviderDebugTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--debug';
-$_SERVER['argv'][3] = 'DataProviderDebugTest';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/DataProviderDebugTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-
-Starting test 'DataProviderDebugTest::testProvider with data set #0 (null, true, 1, 1.0)'.
-.
-Starting test 'DataProviderDebugTest::testProvider with data set #1 (1.2, resource(%d) of type (stream), '1')'.
-.
-Starting test 'DataProviderDebugTest::testProvider with data set #2 (array(array(1, 2, 3), array(3, 4, 5)))'.
-.
-Starting test 'DataProviderDebugTest::testProvider with data set #3 ('this\nis\na\nvery\nvery\nvery\nvery...g\ntext')'.
-.
-Starting test 'DataProviderDebugTest::testProvider with data set #4 (stdClass Object (), stdClass Object (...), array(), SplObjectStorage Object (...), stdClass Object (...))'.
-.
-Starting test 'DataProviderDebugTest::testProvider with data set #5 (Binary String: 0x000102030405, Binary String: 0x0e0f101112131...c1d1e1f)'.
-.
-Starting test 'DataProviderDebugTest::testProvider with data set #6 (Binary String: 0x0009)'.
-.
-
-Time: %s, Memory: %sMb
-
-OK (7 tests, 7 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt
deleted file mode 100644
index e1c4571..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt
+++ /dev/null
@@ -1,47 +0,0 @@
---TEST--
-phpunit --process-isolation --log-junit php://stdout DataProviderTest ../_files/DataProviderTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--log-junit';
-$_SERVER['argv'][4] = 'php://stdout';
-$_SERVER['argv'][5] = 'DataProviderTest';
-$_SERVER['argv'][6] = dirname(dirname(__FILE__)) . '/_files/DataProviderTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..F.<?xml version="1.0" encoding="UTF-8"?>
-<testsuites>
-  <testsuite name="DataProviderTest" file="%sDataProviderTest.php" tests="4" assertions="4" failures="1" errors="0" time="%f">
-    <testsuite name="DataProviderTest::testAdd" tests="4" assertions="4" failures="1" errors="0" time="%f">
-      <testcase name="testAdd with data set #0" assertions="1" time="%f"/>
-      <testcase name="testAdd with data set #1" assertions="1" time="%f"/>
-      <testcase name="testAdd with data set #2" assertions="1" time="%f">
-        <failure type="PHPUnit_Framework_ExpectationFailedException">DataProviderTest::testAdd with data set #2 (1, 1, 3)
-Failed asserting that 2 matches expected 3.
-
-%s:%i
-</failure>
-      </testcase>
-      <testcase name="testAdd with data set #3" assertions="1" time="%f"/>
-    </testsuite>
-  </testsuite>
-</testsuites>
-
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) DataProviderTest::testAdd with data set #2 (1, 1, 3)
-Failed asserting that 2 matches expected 3.
-
-%s:%i
-
-FAILURES!
-Tests: 4, Assertions: 4, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt
deleted file mode 100644
index a14b466..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt
+++ /dev/null
@@ -1,46 +0,0 @@
---TEST--
-phpunit --log-junit php://stdout DataProviderTest ../_files/DataProviderTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--log-junit';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'DataProviderTest';
-$_SERVER['argv'][5] = dirname(dirname(__FILE__)) . '/_files/DataProviderTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..F.<?xml version="1.0" encoding="UTF-8"?>
-<testsuites>
-  <testsuite name="DataProviderTest" file="%sDataProviderTest.php" tests="4" assertions="4" failures="1" errors="0" time="%f">
-    <testsuite name="DataProviderTest::testAdd" tests="4" assertions="4" failures="1" errors="0" time="%f">
-      <testcase name="testAdd with data set #0" assertions="1" time="%f"/>
-      <testcase name="testAdd with data set #1" assertions="1" time="%f"/>
-      <testcase name="testAdd with data set #2" assertions="1" time="%f">
-        <failure type="PHPUnit_Framework_ExpectationFailedException">DataProviderTest::testAdd with data set #2 (1, 1, 3)
-Failed asserting that 2 matches expected 3.
-
-%s:%i
-</failure>
-      </testcase>
-      <testcase name="testAdd with data set #3" assertions="1" time="%f"/>
-    </testsuite>
-  </testsuite>
-</testsuites>
-
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) DataProviderTest::testAdd with data set #2 (1, 1, 3)
-Failed asserting that 2 matches expected 3.
-
-%s:%i
-
-FAILURES!
-Tests: 4, Assertions: 4, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt
deleted file mode 100644
index 75973fe..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-phpunit --testdox DataProviderTest ../_files/DataProviderTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--testdox';
-$_SERVER['argv'][3] = 'DataProviderTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/DataProviderTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-DataProvider
- [ ] Add
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt
deleted file mode 100644
index 194961a..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/debug.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-phpunit --debug BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--debug';
-$_SERVER['argv'][3] = 'BankAccountTest';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-
-Starting test 'BankAccountTest::testBalanceIsInitiallyZero'.
-.
-Starting test 'BankAccountTest::testBalanceCannotBecomeNegative'.
-.
-Starting test 'BankAccountTest::testBalanceCannotBecomeNegative2'.
-.
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt
deleted file mode 100644
index c52156c..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-phpunit --process-isolation BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'BankAccountTest';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt
deleted file mode 100644
index a5ccc38..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/default.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-phpunit BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'BankAccountTest';
-$_SERVER['argv'][3] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt
deleted file mode 100644
index eac3eb7..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt
+++ /dev/null
@@ -1,38 +0,0 @@
---TEST--
-phpunit --process-isolation --verbose DependencyTestSuite ../_files/DependencyTestSuite.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--verbose';
-$_SERVER['argv'][4] = 'DependencyTestSuite';
-$_SERVER['argv'][5] = dirname(dirname(__FILE__)) . '/_files/DependencyTestSuite.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...FSS
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) DependencyFailureTest::testOne
-
-%s:%i
-
---
-
-There were 2 skipped tests:
-
-1) DependencyFailureTest::testTwo
-This test depends on "DependencyFailureTest::testOne" to pass.
-
-2) DependencyFailureTest::testThree
-This test depends on "DependencyFailureTest::testTwo" to pass.
-
-FAILURES!
-Tests: 4, Assertions: 0, Failures: 1, Skipped: 2.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt
deleted file mode 100644
index 5e60f18..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt
+++ /dev/null
@@ -1,37 +0,0 @@
---TEST--
-phpunit --verbose DependencyTestSuite ../_files/DependencyTestSuite.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--verbose';
-$_SERVER['argv'][3] = 'DependencyTestSuite';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/DependencyTestSuite.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...FSS
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) DependencyFailureTest::testOne
-
-%s:%i
-
---
-
-There were 2 skipped tests:
-
-1) DependencyFailureTest::testTwo
-This test depends on "DependencyFailureTest::testOne" to pass.
-
-2) DependencyFailureTest::testThree
-This test depends on "DependencyFailureTest::testTwo" to pass.
-
-FAILURES!
-Tests: 4, Assertions: 0, Failures: 1, Skipped: 2.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt
deleted file mode 100644
index bd88351..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-phpunit --process-isolation StackTest ../_files/StackTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'StackTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/StackTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 5 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt
deleted file mode 100644
index d05b79d..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-phpunit StackTest ../_files/StackTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'StackTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/StackTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 5 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt
deleted file mode 100644
index 37d2e63..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-phpunit --process-isolation MultiDependencyTest ../_files/MultiDependencyTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'MultiDependencyTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/MultiDependencyTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt
deleted file mode 100644
index 6c5d3b1..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-phpunit MultiDependencyTest ../_files/MultiDependencyTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'MultiDependencyTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/MultiDependencyTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt
deleted file mode 100644
index 3de7055..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-phpunit EmptyTestCaseTest ../_files/EmptyTestCaseTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'EmptyTestCaseTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/EmptyTestCaseTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-F
-
-Time: %s, Memory: %sMb
-
-There was 1 failure:
-
-1) Warning
-No tests found in class "EmptyTestCaseTest".
-
-FAILURES!
-Tests: 1, Assertions: 0, Failures: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt
deleted file mode 100644
index db585bf..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt
+++ /dev/null
@@ -1,65 +0,0 @@
---TEST--
-phpunit ExceptionStackTest ../_files/ExceptionStackTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'ExceptionStackTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/ExceptionStackTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-EE
-
-Time: %s, Memory: %sMb
-
-There were 2 errors:
-
-1) ExceptionStackTest::testPrintingChildException
-PHPUnit_Framework_Exception: Child exception
-message
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
--    0 => 1
-+    0 => 2
- )
-
-
-%s:%i
-
-Caused by
-message
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
--    0 => 1
-+    0 => 2
- )
-
-%s:%i
-
-2) ExceptionStackTest::testNestedExceptions
-Exception: One
-
-%s:%i
-
-Caused by
-InvalidArgumentException: Two
-
-%s:%i
-
-Caused by
-Exception: Three
-
-%s:%i
-
-FAILURES!
-Tests: 2, Assertions: 1, Errors: 2.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt
deleted file mode 100644
index eee3776..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --exclude-group balanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--exclude-group';
-$_SERVER['argv'][4] = 'balanceIsInitiallyZero';
-$_SERVER['argv'][5] = 'BankAccountTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt
deleted file mode 100644
index 4be3400..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --exclude-group balanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--exclude-group';
-$_SERVER['argv'][3] = 'balanceIsInitiallyZero';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt
deleted file mode 100644
index 7df4f10..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt
+++ /dev/null
@@ -1,142 +0,0 @@
---TEST--
-phpunit --process-isolation FailureTest ../_files/FailureTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'FailureTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/FailureTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-FFFFFFFFFFFFF
-
-Time: %s, Memory: %sMb
-
-There were 13 failures:
-
-1) FailureTest::testAssertArrayEqualsArray
-message
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
--    0 => 1
-+    0 => 2
- )
-
-%s:%i
-
-2) FailureTest::testAssertIntegerEqualsInteger
-message
-Failed asserting that 2 matches expected 1.
-
-%s:%i
-
-3) FailureTest::testAssertObjectEqualsObject
-message
-Failed asserting that two objects are equal.
---- Expected
-+++ Actual
-@@ @@
- stdClass Object (
--    'foo' => 'bar'
-+    'bar' => 'foo'
- )
-
-%s:%i
-
-4) FailureTest::testAssertNullEqualsString
-message
-Failed asserting that 'bar' matches expected null.
-
-%s:%i
-
-5) FailureTest::testAssertStringEqualsString
-message
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
--'foo'
-+'bar'
-
-%s:%i
-
-6) FailureTest::testAssertTextEqualsText
-message
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
- 'foo
--bar
-+baz
- '
-
-%s:%i
-
-7) FailureTest::testAssertStringMatchesFormat
-message
-Failed asserting that format description matches text.
---- Expected
-+++ Actual
-@@ @@
--*%s*
-+**
-
-%s:%i
-
-8) FailureTest::testAssertNumericEqualsNumeric
-message
-Failed asserting that 2 matches expected 1.
-
-%s:%i
-
-9) FailureTest::testAssertTextSameText
-message
-Failed asserting that two strings are identical.
---- Expected
-+++ Actual
-@@ @@
--foo
-+bar
-
-%s:%i
-
-10) FailureTest::testAssertObjectSameObject
-message
-Failed asserting that two variables reference the same object.
-
-%s:%i
-
-11) FailureTest::testAssertObjectSameNull
-message
-Failed asserting that null is identical to an object of class "stdClass".
-
-%s:%i
-
-12) FailureTest::testAssertFloatSameFloat
-message
-Failed asserting that 1.5 is identical to 1.0.
-
-%s:%i
-
-13) FailureTest::testAssertStringMatchesFormatFile
-Failed asserting that format description matches text.
---- Expected
-+++ Actual
-@@ @@
--FOO
--
-+...BAR...
-
-%s:%i
-
-FAILURES!
-Tests: 13, Assertions: 14, Failures: 13.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt
deleted file mode 100644
index 23415e9..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/failure.phpt
+++ /dev/null
@@ -1,141 +0,0 @@
---TEST--
-phpunit FailureTest ../_files/FailureTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'FailureTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/FailureTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-FFFFFFFFFFFFF
-
-Time: %s, Memory: %sMb
-
-There were 13 failures:
-
-1) FailureTest::testAssertArrayEqualsArray
-message
-Failed asserting that two arrays are equal.
---- Expected
-+++ Actual
-@@ @@
- Array (
--    0 => 1
-+    0 => 2
- )
-
-%s:%i
-
-2) FailureTest::testAssertIntegerEqualsInteger
-message
-Failed asserting that 2 matches expected 1.
-
-%s:%i
-
-3) FailureTest::testAssertObjectEqualsObject
-message
-Failed asserting that two objects are equal.
---- Expected
-+++ Actual
-@@ @@
- stdClass Object (
--    'foo' => 'bar'
-+    'bar' => 'foo'
- )
-
-%s:%i
-
-4) FailureTest::testAssertNullEqualsString
-message
-Failed asserting that 'bar' matches expected null.
-
-%s:%i
-
-5) FailureTest::testAssertStringEqualsString
-message
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
--'foo'
-+'bar'
-
-%s:%i
-
-6) FailureTest::testAssertTextEqualsText
-message
-Failed asserting that two strings are equal.
---- Expected
-+++ Actual
-@@ @@
- 'foo
--bar
-+baz
- '
-
-%s:%i
-
-7) FailureTest::testAssertStringMatchesFormat
-message
-Failed asserting that format description matches text.
---- Expected
-+++ Actual
-@@ @@
--*%s*
-+**
-
-%s:%i
-
-8) FailureTest::testAssertNumericEqualsNumeric
-message
-Failed asserting that 2 matches expected 1.
-
-%s:%i
-
-9) FailureTest::testAssertTextSameText
-message
-Failed asserting that two strings are identical.
---- Expected
-+++ Actual
-@@ @@
--foo
-+bar
-
-%s:%i
-
-10) FailureTest::testAssertObjectSameObject
-message
-Failed asserting that two variables reference the same object.
-
-%s:%i
-
-11) FailureTest::testAssertObjectSameNull
-message
-Failed asserting that null is identical to an object of class "stdClass".
-
-%s:%i
-
-12) FailureTest::testAssertFloatSameFloat
-message
-Failed asserting that 1.5 is identical to 1.0.
-
-%s:%i
-
-13) FailureTest::testAssertStringMatchesFormatFile
-Failed asserting that format description matches text.
---- Expected
-+++ Actual
-@@ @@
--FOO
--
-+...BAR...
-
-%s:%i
-
-FAILURES!
-Tests: 13, Assertions: 14, Failures: 13.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt
deleted file mode 100644
index b6a4d3c..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-phpunit FatalTest ../_files/FatalTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = 'FatalTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/FatalTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-E
-
-Time: %s, Memory: %sMb
-
-There was 1 error:
-
-1) FatalTest::testFatalError
-%s
-
-FAILURES!
-Tests: 1, Assertions: 0, Errors: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt
deleted file mode 100644
index e265ea7..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/fatal.phpt
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-phpunit FatalTest ../_files/FatalTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = 'FatalTest';
-$_SERVER['argv'][3] = dirname(dirname(__FILE__)) . '/_files/FatalTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-
-Fatal error: Call to undefined function non_existing_function() in %s
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt
deleted file mode 100644
index 3cf4119..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter BankAccountTest BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = 'BankAccountTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt
deleted file mode 100644
index c5e2e60..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter BankAccountTest BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'BankAccountTest';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt
deleted file mode 100644
index f3cf561..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter DataProviderFilterTest#1-3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'DataProviderFilterTest#1-3';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt
deleted file mode 100644
index f19eb12..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter DataProviderFilterTest#1-3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'DataProviderFilterTest#1-3';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt
deleted file mode 100644
index 9db7c7e..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter testTrue#3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'testTrue#3';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt
deleted file mode 100644
index 16b7288..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter testTrue#3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'testTrue#3';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt
deleted file mode 100644
index cefb087..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter \#1-3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = '#1-3';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt
deleted file mode 100644
index c96a89f..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter \#1-3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = '#1-3';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt
deleted file mode 100644
index 192637a..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter @false.* DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = '@false.*';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt
deleted file mode 100644
index 0a546ae..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter @false.* DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = '@false.*';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt
deleted file mode 100644
index 16f0332..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter @false\ test DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = '@false test';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt
deleted file mode 100644
index 919fb82..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter @false\ test DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = '@false test';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt
deleted file mode 100644
index 846475a..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter testTrue#1-3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'testTrue#1-3';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt
deleted file mode 100644
index ee8f629..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter testTrue#1-3 DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'testTrue#1-3';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt
deleted file mode 100644
index 1987e2c..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter testFalse@false.* DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'testFalse@false.*';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt
deleted file mode 100644
index b4482c5..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter testFalse@false.* DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'testFalse@false.*';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-..
-
-Time: %s, Memory: %sMb
-
-OK (2 tests, 2 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt
deleted file mode 100644
index 3bed821..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter testFalse@false\ test DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'testFalse@false test';
-$_SERVER['argv'][5] = 'DataProviderFilterTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt
deleted file mode 100644
index a823881..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter testFalse@false\ test DataProviderFilterTest ../_files/DataProviderFilterTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'testFalse@false test';
-$_SERVER['argv'][4] = 'DataProviderFilterTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/DataProviderFilterTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt
deleted file mode 100644
index cb61922..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter /balanceIsInitiallyZero/i BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = '/balanceIsInitiallyZero/i';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt
deleted file mode 100644
index bf1a974..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter balanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = '/balanceIsInitiallyZero/';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-
-
-Time: %s, Memory: %sMb
-
-No tests executed!
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt
deleted file mode 100644
index 4009065..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --filter testBalanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'testBalanceIsInitiallyZero';
-$_SERVER['argv'][5] = 'BankAccountTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt
deleted file mode 100644
index c5cb650..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter testBalanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'testBalanceIsInitiallyZero';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt
deleted file mode 100644
index 8ead7b9..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --filter doesNotExist BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--filter';
-$_SERVER['argv'][3] = 'doesNotExist';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-
-
-Time: %s, Memory: %sMb
-
-No tests executed!
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt
deleted file mode 100644
index 4e68d65..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation --group balanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--group';
-$_SERVER['argv'][4] = 'balanceIsInitiallyZero';
-$_SERVER['argv'][5] = 'BankAccountTest';
-$_SERVER['argv'][6] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt
deleted file mode 100644
index f0c0735..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/group.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --group balanceIsInitiallyZero BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--group';
-$_SERVER['argv'][3] = 'balanceIsInitiallyZero';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt
deleted file mode 100644
index 4c1d945..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/help.phpt
+++ /dev/null
@@ -1,86 +0,0 @@
---TEST--
-phpunit
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Usage: phpunit [options] UnitTest [UnitTest.php]
-       phpunit [options] <directory>
-
-Code Coverage Options:
-
-  --coverage-clover <file>  Generate code coverage report in Clover XML format.
-  --coverage-crap4j <file>  Generate code coverage report in Crap4J XML format.
-  --coverage-html <dir>     Generate code coverage report in HTML format.
-  --coverage-php <file>     Export PHP_CodeCoverage object to file.
-  --coverage-text=<file>    Generate code coverage report in text format.
-                            Default: Standard output.
-  --coverage-xml <dir>      Generate code coverage report in PHPUnit XML format.
-
-Logging Options:
-
-  --log-junit <file>        Log test execution in JUnit XML format to file.
-  --log-tap <file>          Log test execution in TAP format to file.
-  --log-json <file>         Log test execution in JSON format.
-  --testdox-html <file>     Write agile documentation in HTML format to file.
-  --testdox-text <file>     Write agile documentation in Text format to file.
-
-Test Selection Options:
-
-  --filter <pattern>        Filter which tests to run.
-  --testsuite <pattern>     Filter which testsuite to run.
-  --group ...               Only runs tests from the specified group(s).
-  --exclude-group ...       Exclude tests from the specified group(s).
-  --list-groups             List available test groups.
-  --test-suffix ...         Only search for test in files with specified
-                            suffix(es). Default: Test.php,.phpt
-
-Test Execution Options:
-
-  --report-useless-tests    Be strict about tests that do not test anything.
-  --strict-coverage         Be strict about unintentionally covered code.
-  --strict-global-state     Be strict about changes to global state
-  --disallow-test-output    Be strict about output during tests.
-  --enforce-time-limit      Enforce time limit based on test size.
-  --disallow-todo-tests     Disallow @todo-annotated tests.
-
-  --process-isolation       Run each test in a separate PHP process.
-  --no-globals-backup       Do not backup and restore $GLOBALS for each test.
-  --static-backup           Backup and restore static attributes for each test.
-
-  --colors=<flag>           Use colors in output ("never", "auto" or "always").
-  --columns <n>             Number of columns to use for progress output.
-  --columns max             Use maximum number of columns for progress output.
-  --stderr                  Write to STDERR instead of STDOUT.
-  --stop-on-error           Stop execution upon first error.
-  --stop-on-failure         Stop execution upon first error or failure.
-  --stop-on-risky           Stop execution upon first risky test.
-  --stop-on-skipped         Stop execution upon first skipped test.
-  --stop-on-incomplete      Stop execution upon first incomplete test.
-  -v|--verbose              Output more verbose information.
-  --debug                   Display debugging information during test execution.
-
-  --loader <loader>         TestSuiteLoader implementation to use.
-  --repeat <times>          Runs the test(s) repeatedly.
-  --tap                     Report test execution progress in TAP format.
-  --testdox                 Report test execution progress in TestDox format.
-  --printer <printer>       TestListener implementation to use.
-
-Configuration Options:
-
-  --bootstrap <file>        A "bootstrap" PHP file that is run before the tests.
-  -c|--configuration <file> Read configuration from XML file.
-  --no-configuration        Ignore default configuration file (phpunit.xml).
-  --include-path <path(s)>  Prepend PHP's include_path with given path(s).
-  -d key[=value]            Sets a php.ini value.
-
-Miscellaneous Options:
-
-  -h|--help                 Prints this usage information.
-  --version                 Prints the version and exits.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt
deleted file mode 100644
index 7134862..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/help2.phpt
+++ /dev/null
@@ -1,87 +0,0 @@
---TEST--
-phpunit --help
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--help';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Usage: phpunit [options] UnitTest [UnitTest.php]
-       phpunit [options] <directory>
-
-Code Coverage Options:
-
-  --coverage-clover <file>  Generate code coverage report in Clover XML format.
-  --coverage-crap4j <file>  Generate code coverage report in Crap4J XML format.
-  --coverage-html <dir>     Generate code coverage report in HTML format.
-  --coverage-php <file>     Export PHP_CodeCoverage object to file.
-  --coverage-text=<file>    Generate code coverage report in text format.
-                            Default: Standard output.
-  --coverage-xml <dir>      Generate code coverage report in PHPUnit XML format.
-
-Logging Options:
-
-  --log-junit <file>        Log test execution in JUnit XML format to file.
-  --log-tap <file>          Log test execution in TAP format to file.
-  --log-json <file>         Log test execution in JSON format.
-  --testdox-html <file>     Write agile documentation in HTML format to file.
-  --testdox-text <file>     Write agile documentation in Text format to file.
-
-Test Selection Options:
-
-  --filter <pattern>        Filter which tests to run.
-  --testsuite <pattern>     Filter which testsuite to run.
-  --group ...               Only runs tests from the specified group(s).
-  --exclude-group ...       Exclude tests from the specified group(s).
-  --list-groups             List available test groups.
-  --test-suffix ...         Only search for test in files with specified
-                            suffix(es). Default: Test.php,.phpt
-
-Test Execution Options:
-
-  --report-useless-tests    Be strict about tests that do not test anything.
-  --strict-coverage         Be strict about unintentionally covered code.
-  --strict-global-state     Be strict about changes to global state
-  --disallow-test-output    Be strict about output during tests.
-  --enforce-time-limit      Enforce time limit based on test size.
-  --disallow-todo-tests     Disallow @todo-annotated tests.
-
-  --process-isolation       Run each test in a separate PHP process.
-  --no-globals-backup       Do not backup and restore $GLOBALS for each test.
-  --static-backup           Backup and restore static attributes for each test.
-
-  --colors=<flag>           Use colors in output ("never", "auto" or "always").
-  --columns <n>             Number of columns to use for progress output.
-  --columns max             Use maximum number of columns for progress output.
-  --stderr                  Write to STDERR instead of STDOUT.
-  --stop-on-error           Stop execution upon first error.
-  --stop-on-failure         Stop execution upon first error or failure.
-  --stop-on-risky           Stop execution upon first risky test.
-  --stop-on-skipped         Stop execution upon first skipped test.
-  --stop-on-incomplete      Stop execution upon first incomplete test.
-  -v|--verbose              Output more verbose information.
-  --debug                   Display debugging information during test execution.
-
-  --loader <loader>         TestSuiteLoader implementation to use.
-  --repeat <times>          Runs the test(s) repeatedly.
-  --tap                     Report test execution progress in TAP format.
-  --testdox                 Report test execution progress in TestDox format.
-  --printer <printer>       TestListener implementation to use.
-
-Configuration Options:
-
-  --bootstrap <file>        A "bootstrap" PHP file that is run before the tests.
-  -c|--configuration <file> Read configuration from XML file.
-  --no-configuration        Ignore default configuration file (phpunit.xml).
-  --include-path <path(s)>  Prepend PHP's include_path with given path(s).
-  -d key[=value]            Sets a php.ini value.
-
-Miscellaneous Options:
-
-  -h|--help                 Prints this usage information.
-  --version                 Prints the version and exits.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt
deleted file mode 100644
index ee002df..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --process-isolation -d default_mimetype=application/x-test IniTest ../_files/IniTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '-d';
-$_SERVER['argv'][4] = 'default_mimetype=application/x-test';
-$_SERVER['argv'][5] = 'IniTest';
-$_SERVER['argv'][6] = dirname(dirname(__FILE__)) . '/_files/IniTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt
deleted file mode 100644
index 85f2906..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-phpunit --list-groups BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--list-groups';
-$_SERVER['argv'][3] = 'BankAccountTest';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-Available test group(s):
- - Sebastian Bergmann <sebastian@phpunit.de>
- - balanceCannotBecomeNegative
- - balanceIsInitiallyZero
- - specification
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt
deleted file mode 100644
index abdbb2f..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-no-pretty-print.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-phpunit --log-json php://stdout BankAccountTest ../_files/BankAccountTest.php
---SKIPIF--
-<?php
-if (defined('JSON_PRETTY_PRINT')) {
-    print 'skip: PHP without JSON_PRETTY_PRINT is required';
-}
-?>
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--log-json';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-{"event":"suiteStart","suite":"BankAccountTest","tests":3}{"event":"testStart","suite":"BankAccountTest","test":"BankAccountTest::testBalanceIsInitiallyZero"}.{"event":"test","suite":"BankAccountTest","test":"BankAccountTest::testBalanceIsInitiallyZero","status":"pass","time":%f,"trace":[],"message":"","output":""}{"event":"testStart","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative"}.{"event":"test","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative","status":"pass","time":%f,"trace":[],"message":"","output":""}{"event":"testStart","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative2"}.{"event":"test","suite":"BankAccountTest","test":"BankAccountTest::testBalanceCannotBecomeNegative2","status":"pass","time":%f,"trace":[],"message":"","output":""}
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt
deleted file mode 100644
index e9ab24d..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-post-66021.phpt
+++ /dev/null
@@ -1,72 +0,0 @@
---TEST--
-phpunit --log-json php://stdout BankAccountTest ../_files/BankAccountTest.php
---SKIPIF--
-<?php
-if (!defined('JSON_PRETTY_PRINT')) {
-    print "skip: JSON_PRETTY_PRINT is required";
-} else if (json_encode(array(), JSON_PRETTY_PRINT) != '[]') {
-    print "skip: Does not have PHP #66021 (Blank line inside empty JSON array/object)";
-}
-?>
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--log-json';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-{
-    "event": "suiteStart",
-    "suite": "BankAccountTest",
-    "tests": 3
-}{
-    "event": "testStart",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceIsInitiallyZero"
-}.{
-    "event": "test",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceIsInitiallyZero",
-    "status": "pass",
-    "time": %f,
-    "trace": [],
-    "message": "",
-    "output": ""
-}{
-    "event": "testStart",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative"
-}.{
-    "event": "test",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative",
-    "status": "pass",
-    "time": %f,
-    "trace": [],
-    "message": "",
-    "output": ""
-}{
-    "event": "testStart",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative2"
-}.{
-    "event": "test",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative2",
-    "status": "pass",
-    "time": %f,
-    "trace": [],
-    "message": "",
-    "output": ""
-}
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt
deleted file mode 100644
index 190c215..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-json-pre-66021.phpt
+++ /dev/null
@@ -1,78 +0,0 @@
---TEST--
-phpunit --log-json php://stdout BankAccountTest ../_files/BankAccountTest.php
---SKIPIF--
-<?php
-if (!defined('JSON_PRETTY_PRINT')) {
-    print "skip: JSON_PRETTY_PRINT is required";
-} else if (json_encode(array(), JSON_PRETTY_PRINT) == '[]') {
-    print "skip: Has PHP #66021 (Blank line inside empty JSON array/object)";
-}
-?>
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--log-json';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-{
-    "event": "suiteStart",
-    "suite": "BankAccountTest",
-    "tests": 3
-}{
-    "event": "testStart",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceIsInitiallyZero"
-}.{
-    "event": "test",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceIsInitiallyZero",
-    "status": "pass",
-    "time": %f,
-    "trace": [
-
-    ],
-    "message": "",
-    "output": ""
-}{
-    "event": "testStart",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative"
-}.{
-    "event": "test",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative",
-    "status": "pass",
-    "time": %f,
-    "trace": [
-
-    ],
-    "message": "",
-    "output": ""
-}{
-    "event": "testStart",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative2"
-}.{
-    "event": "test",
-    "suite": "BankAccountTest",
-    "test": "BankAccountTest::testBalanceCannotBecomeNegative2",
-    "status": "pass",
-    "time": %f,
-    "trace": [
-
-    ],
-    "message": "",
-    "output": ""
-}
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt
deleted file mode 100644
index 3babdb8..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-tap.phpt
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-phpunit --log-tap php://stdout BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--log-tap';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-TAP version 13
-.ok 1 - BankAccountTest::testBalanceIsInitiallyZero
-.ok 2 - BankAccountTest::testBalanceCannotBecomeNegative
-.ok 3 - BankAccountTest::testBalanceCannotBecomeNegative2
-1..3
-
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt
deleted file mode 100644
index 81bcc28..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/log-xml.phpt
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-phpunit --log-junit php://stdout BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--log-junit';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...<?xml version="1.0" encoding="UTF-8"?>
-<testsuites>
-  <testsuite name="BankAccountTest" file="%sBankAccountTest.php" tests="3" assertions="3" failures="0" errors="0" time="%f">
-    <testcase name="testBalanceIsInitiallyZero" class="BankAccountTest" file="%sBankAccountTest.php" line="35" assertions="1" time="%f"/>
-    <testcase name="testBalanceCannotBecomeNegative" class="BankAccountTest" file="%sBankAccountTest.php" line="45" assertions="1" time="%f"/>
-    <testcase name="testBalanceCannotBecomeNegative2" class="BankAccountTest" file="%sBankAccountTest.php" line="63" assertions="1" time="%f"/>
-  </testsuite>
-</testsuites>
-
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt
deleted file mode 100644
index 7783144..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --process-isolation --filter testExpectOutputStringFooActualFoo ../_files/OutputTestCase.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--process-isolation';
-$_SERVER['argv'][3] = '--filter';
-$_SERVER['argv'][4] = 'testExpectOutputStringFooActualFoo';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/OutputTestCase.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.
-
-Time: %s, Memory: %sMb
-
-OK (1 test, 1 assertion)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt
deleted file mode 100644
index a262f63..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/repeat.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --repeat 3 BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--repeat';
-$_SERVER['argv'][3] = '3';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.........
-
-Time: %s, Memory: %sMb
-
-OK (9 tests, 9 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt
deleted file mode 100644
index 9bc4c2d..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --report-useless-tests IncompleteTest ../_files/IncompleteTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--report-useless-tests';
-$_SERVER['argv'][3] = 'IncompleteTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/IncompleteTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-I
-
-Time: %s, Memory: %sMb
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Incomplete: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt
deleted file mode 100644
index 9401b26..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-phpunit --report-useless-tests --process-isolation IncompleteTest ../_files/IncompleteTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--report-useless-tests';
-$_SERVER['argv'][3] = '--process-isolation';
-$_SERVER['argv'][4] = 'NothingTest';
-$_SERVER['argv'][5] = dirname(dirname(__FILE__)) . '/_files/NothingTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-R
-
-Time: %s, Memory: %sMb
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Risky: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt
deleted file mode 100644
index 9eb22df..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --report-useless-tests NothingTest ../_files/NothingTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--report-useless-tests';
-$_SERVER['argv'][3] = 'NothingTest';
-$_SERVER['argv'][4] = dirname(dirname(__FILE__)) . '/_files/NothingTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-R
-
-Time: %s, Memory: %sMb
-
-OK, but incomplete, skipped, or risky tests!
-Tests: 1, Assertions: 0, Risky: 1.
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/tap.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/tap.phpt
deleted file mode 100644
index 88d855f..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/tap.phpt
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-phpunit --tap BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--tap';
-$_SERVER['argv'][3] = 'BankAccountTest';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-TAP version 13
-ok 1 - BankAccountTest::testBalanceIsInitiallyZero
-ok 2 - BankAccountTest::testBalanceCannotBecomeNegative
-ok 3 - BankAccountTest::testBalanceCannotBecomeNegative2
-1..3
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt
deleted file mode 100644
index cf5d577..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-phpunit --test-suffix .test.php,.my.php ../_files/
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--test-suffix';
-$_SERVER['argv'][3] = '.test.php,.my.php';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-.....
-
-Time: %s, Memory: %sMb
-
-OK (5 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt
deleted file mode 100644
index 85f13be..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-phpunit --test-suffix .test.php ../_files/
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--test-suffix';
-$_SERVER['argv'][3] = '.test.php';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-...
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt
deleted file mode 100644
index 85eaf87..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-phpunit --testdox-html php://stdout BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--testdox-html';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-<html><body><h2 id="BankAccountTest">BankAccount</h2><ul>...<li>Balance is initially zero</li><li>Balance cannot become negative</li></ul></body></html>
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt
deleted file mode 100644
index 2c09d4e..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-phpunit --testdox-text php://stdout BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--testdox-text';
-$_SERVER['argv'][3] = 'php://stdout';
-$_SERVER['argv'][4] = 'BankAccountTest';
-$_SERVER['argv'][5] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-BankAccount
-... [x] Balance is initially zero
- [x] Balance cannot become negative
-
-
-
-Time: %s, Memory: %sMb
-
-OK (3 tests, 3 assertions)
diff --git a/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt b/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt
deleted file mode 100644
index 69fb23a..0000000
--- a/core/vendor/phpunit/phpunit/tests/TextUI/testdox.phpt
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-phpunit --testdox php://stdout BankAccountTest ../_files/BankAccountTest.php
---FILE--
-<?php
-$_SERVER['argv'][1] = '--no-configuration';
-$_SERVER['argv'][2] = '--testdox';
-$_SERVER['argv'][3] = 'BankAccountTest';
-$_SERVER['argv'][4] = dirname(__FILE__).'/../_files/BankAccountTest.php';
-
-require __DIR__ . '/../bootstrap.php';
-PHPUnit_TextUI_Command::main();
-?>
---EXPECTF--
-PHPUnit %s by Sebastian Bergmann and contributors.
-
-BankAccount
- [x] Balance is initially zero
- [x] Balance cannot become negative
-
diff --git a/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php b/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php
deleted file mode 100644
index b0ec593..0000000
--- a/core/vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php
+++ /dev/null
@@ -1,508 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- */
-class Util_ConfigurationTest extends PHPUnit_Framework_TestCase
-{
-    protected $configuration;
-
-    protected function setUp()
-    {
-        $this->configuration = PHPUnit_Util_Configuration::getInstance(
-            dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.xml'
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getInstance
-     * @expectedException PHPUnit_Framework_Exception
-     */
-    public function testExceptionIsThrownForNotExistingConfigurationFile()
-    {
-        PHPUnit_Util_Configuration::getInstance('not_existing_file.xml');
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
-     */
-    public function testShouldReadColorsWhenTrueInConfigurationfile()
-    {
-        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.true.xml';
-        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
-        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
-
-        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_AUTO, $configurationValues['colors']);
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
-     */
-    public function testShouldReadColorsWhenFalseInConfigurationfile()
-    {
-        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.false.xml';
-        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
-        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
-
-        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_NEVER, $configurationValues['colors']);
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
-     */
-    public function testShouldReadColorsWhenEmptyInConfigurationfile()
-    {
-        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.empty.xml';
-        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
-        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
-
-        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_NEVER, $configurationValues['colors']);
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
-     */
-    public function testShouldReadColorsWhenInvalidInConfigurationfile()
-    {
-        $configurationFilename =  dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration.colors.invalid.xml';
-        $configurationInstance = PHPUnit_Util_Configuration::getInstance($configurationFilename);
-        $configurationValues = $configurationInstance->getPHPUnitConfiguration();
-
-        $this->assertEquals(PHPUnit_TextUI_ResultPrinter::COLOR_NEVER, $configurationValues['colors']);
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getFilterConfiguration
-     */
-    public function testFilterConfigurationIsReadCorrectly()
-    {
-        $this->assertEquals(
-            array(
-            'blacklist' =>
-            array(
-              'include' =>
-              array(
-                'directory' =>
-                array(
-                  0 =>
-                  array(
-                    'path' => '/path/to/files',
-                    'prefix' => '',
-                    'suffix' => '.php',
-                    'group' => 'DEFAULT'
-                  ),
-                ),
-                'file' =>
-                array(
-                  0 => '/path/to/file',
-                ),
-              ),
-              'exclude' =>
-              array(
-                'directory' =>
-                array(
-                  0 =>
-                  array(
-                    'path' => '/path/to/files',
-                    'prefix' => '',
-                    'suffix' => '.php',
-                    'group' => 'DEFAULT'
-                  ),
-                ),
-                'file' =>
-                array(
-                  0 => '/path/to/file',
-                ),
-              ),
-            ),
-            'whitelist' =>
-            array(
-              'addUncoveredFilesFromWhitelist' => true,
-              'processUncoveredFilesFromWhitelist' => false,
-              'include' =>
-              array(
-                'directory' =>
-                array(
-                  0 =>
-                  array(
-                    'path' => '/path/to/files',
-                    'prefix' => '',
-                    'suffix' => '.php',
-                    'group' => 'DEFAULT'
-                  ),
-                ),
-                'file' =>
-                array(
-                  0 => '/path/to/file',
-                ),
-              ),
-              'exclude' =>
-              array(
-                'directory' =>
-                array(
-                  0 =>
-                  array(
-                    'path' => '/path/to/files',
-                    'prefix' => '',
-                    'suffix' => '.php',
-                    'group' => 'DEFAULT'
-                  ),
-                ),
-                'file' =>
-                array(
-                  0 => '/path/to/file',
-                ),
-              ),
-            ),
-            ),
-            $this->configuration->getFilterConfiguration()
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getGroupConfiguration
-     */
-    public function testGroupConfigurationIsReadCorrectly()
-    {
-        $this->assertEquals(
-            array(
-            'include' =>
-            array(
-              0 => 'name',
-            ),
-            'exclude' =>
-            array(
-              0 => 'name',
-            ),
-            ),
-            $this->configuration->getGroupConfiguration()
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getListenerConfiguration
-     */
-    public function testListenerConfigurationIsReadCorrectly()
-    {
-        $dir = __DIR__;
-        $includePath = ini_get('include_path');
-
-        ini_set('include_path', $dir . PATH_SEPARATOR . $includePath);
-
-        $this->assertEquals(
-            array(
-            0 =>
-            array(
-              'class' => 'MyListener',
-              'file' => '/optional/path/to/MyListener.php',
-              'arguments' =>
-              array(
-                0 =>
-                array(
-                  0 => 'Sebastian',
-                ),
-                1 => 22,
-                2 => 'April',
-                3 => 19.78,
-                4 => null,
-                5 => new stdClass,
-                6 => dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'MyTestFile.php',
-                7 => dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'MyRelativePath',
-              ),
-            ),
-            array(
-              'class' => 'IncludePathListener',
-              'file' => __FILE__,
-              'arguments' => array()
-            ),
-            array(
-              'class' => 'CompactArgumentsListener',
-              'file' => '/CompactArgumentsListener.php',
-              'arguments' =>
-              array(
-                0 => 42
-              ),
-            ),
-            ),
-            $this->configuration->getListenerConfiguration()
-        );
-
-        ini_set('include_path', $includePath);
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getLoggingConfiguration
-     */
-    public function testLoggingConfigurationIsReadCorrectly()
-    {
-        $this->assertEquals(
-            array(
-            'lowUpperBound' => '50',
-            'highLowerBound' => '90',
-            'coverage-html' => '/tmp/report',
-            'coverage-clover' => '/tmp/clover.xml',
-            'json' => '/tmp/logfile.json',
-            'plain' => '/tmp/logfile.txt',
-            'tap' => '/tmp/logfile.tap',
-            'logIncompleteSkipped' => false,
-            'junit' => '/tmp/logfile.xml',
-            'testdox-html' => '/tmp/testdox.html',
-            'testdox-text' => '/tmp/testdox.txt',
-            ),
-            $this->configuration->getLoggingConfiguration()
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getPHPConfiguration
-     */
-    public function testPHPConfigurationIsReadCorrectly()
-    {
-        $this->assertEquals(
-            array(
-            'include_path' =>
-            array(
-              dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . '.',
-              '/path/to/lib'
-            ),
-            'ini'=> array('foo' => 'bar'),
-            'const'=> array('FOO' => false, 'BAR' => true),
-            'var'=> array('foo' => false),
-            'env'=> array('foo' => true),
-            'post'=> array('foo' => 'bar'),
-            'get'=> array('foo' => 'bar'),
-            'cookie'=> array('foo' => 'bar'),
-            'server'=> array('foo' => 'bar'),
-            'files'=> array('foo' => 'bar'),
-            'request'=> array('foo' => 'bar'),
-            ),
-            $this->configuration->getPHPConfiguration()
-        );
-    }
-
-    /**
-     * @backupGlobals enabled
-     * @covers PHPUnit_Util_Configuration::handlePHPConfiguration
-     */
-    public function testPHPConfigurationIsHandledCorrectly()
-    {
-        $this->configuration->handlePHPConfiguration();
-
-        $path = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . '.' . PATH_SEPARATOR . '/path/to/lib';
-        $this->assertStringStartsWith($path, ini_get('include_path'));
-        $this->assertEquals(false, FOO);
-        $this->assertEquals(true, BAR);
-        $this->assertEquals(false, $GLOBALS['foo']);
-        $this->assertEquals(true, $_ENV['foo']);
-        $this->assertEquals(true, getenv('foo'));
-        $this->assertEquals('bar', $_POST['foo']);
-        $this->assertEquals('bar', $_GET['foo']);
-        $this->assertEquals('bar', $_COOKIE['foo']);
-        $this->assertEquals('bar', $_SERVER['foo']);
-        $this->assertEquals('bar', $_FILES['foo']);
-        $this->assertEquals('bar', $_REQUEST['foo']);
-    }
-
-    /**
-     * @backupGlobals enabled
-     * @see https://github.com/sebastianbergmann/phpunit/issues/1181
-     */
-    public function testHandlePHPConfigurationDoesNotOverwrittenExistingEnvArrayVariables()
-    {
-        $_ENV['foo'] = false;
-        $this->configuration->handlePHPConfiguration();
-
-        $this->assertEquals(false, $_ENV['foo']);
-        $this->assertEquals(true, getenv('foo'));
-    }
-
-    /**
-     * @backupGlobals enabled
-     * @see https://github.com/sebastianbergmann/phpunit/issues/1181
-     */
-    public function testHandlePHPConfigurationDoesNotOverriteVariablesFromPutEnv()
-    {
-        putenv('foo=putenv');
-        $this->configuration->handlePHPConfiguration();
-
-        $this->assertEquals(true, $_ENV['foo']);
-        $this->assertEquals('putenv', getenv('foo'));
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
-     */
-    public function testPHPUnitConfigurationIsReadCorrectly()
-    {
-        $this->assertEquals(
-            array(
-            'backupGlobals' => true,
-            'backupStaticAttributes' => false,
-            'disallowChangesToGlobalState' => false,
-            'bootstrap' => '/path/to/bootstrap.php',
-            'cacheTokens' => false,
-            'columns' => 80,
-            'colors' => 'never',
-            'stderr' => false,
-            'convertErrorsToExceptions' => true,
-            'convertNoticesToExceptions' => true,
-            'convertWarningsToExceptions' => true,
-            'forceCoversAnnotation' => false,
-            'mapTestClassNameToCoveredClassName' => false,
-            'printerClass' => 'PHPUnit_TextUI_ResultPrinter',
-            'stopOnFailure' => false,
-            'reportUselessTests' => false,
-            'strictCoverage' => false,
-            'disallowTestOutput' => false,
-            'enforceTimeLimit' => false,
-            'disallowTodoAnnotatedTests' => false,
-            'testSuiteLoaderClass' => 'PHPUnit_Runner_StandardTestSuiteLoader',
-            'verbose' => false,
-            'timeoutForSmallTests' => 1,
-            'timeoutForMediumTests' => 10,
-            'timeoutForLargeTests' => 60
-            ),
-            $this->configuration->getPHPUnitConfiguration()
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getSeleniumBrowserConfiguration
-     */
-    public function testSeleniumBrowserConfigurationIsReadCorrectly()
-    {
-        $this->assertEquals(
-            array(
-            0 =>
-            array(
-              'name' => 'Firefox on Linux',
-              'browser' => '*firefox /usr/lib/firefox/firefox-bin',
-              'host' => 'my.linux.box',
-              'port' => 4444,
-              'timeout' => 30000,
-            ),
-            ),
-            $this->configuration->getSeleniumBrowserConfiguration()
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Configuration::getInstance
-     */
-    public function testXincludeInConfiguration()
-    {
-        $configurationWithXinclude = PHPUnit_Util_Configuration::getInstance(
-            dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration_xinclude.xml'
-        );
-
-        $this->assertConfigurationEquals(
-            $this->configuration,
-            $configurationWithXinclude
-        );
-    }
-
-    /**
-     * @ticket 1311
-     * @covers PHPUnit_Util_Configuration::getLoggingConfiguration
-     * @covers PHPUnit_Util_Configuration::getPHPConfiguration
-     * @covers PHPUnit_Util_Configuration::getPHPUnitConfiguration
-     * @covers PHPUnit_Util_Configuration::getTestSuiteConfiguration
-     * @covers PHPUnit_Util_Configuration::getFilterConfiguration
-     * @uses   PHPUnit_Util_Configuration::getInstance
-     */
-    public function testWithEmptyConfigurations()
-    {
-        $emptyConfiguration = PHPUnit_Util_Configuration::getInstance(
-            dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'configuration_empty.xml'
-        );
-
-        $logging = $emptyConfiguration->getLoggingConfiguration();
-        $this->assertEmpty($logging);
-
-        $php = $emptyConfiguration->getPHPConfiguration();
-        $this->assertEmpty($php['include_path']);
-
-        $phpunit = $emptyConfiguration->getPHPUnitConfiguration();
-        $this->assertArrayNotHasKey('bootstrap', $phpunit);
-        $this->assertArrayNotHasKey('testSuiteLoaderFile', $phpunit);
-        $this->assertArrayNotHasKey('printerFile', $phpunit);
-
-        $suite = $emptyConfiguration->getTestSuiteConfiguration();
-        $this->assertEmpty($suite->getGroups());
-
-        $filter = $emptyConfiguration->getFilterConfiguration();
-        $this->assertEmpty($filter['blacklist']['include']['directory']);
-        $this->assertEmpty($filter['blacklist']['include']['file']);
-        $this->assertEmpty($filter['blacklist']['exclude']['directory']);
-        $this->assertEmpty($filter['blacklist']['exclude']['file']);
-        $this->assertEmpty($filter['whitelist']['include']['directory']);
-        $this->assertEmpty($filter['whitelist']['include']['file']);
-        $this->assertEmpty($filter['whitelist']['exclude']['directory']);
-        $this->assertEmpty($filter['whitelist']['exclude']['file']);
-    }
-
-    /**
-     * Asserts that the values in $actualConfiguration equal $expectedConfiguration.
-     *
-     * @param PHPUnit_Util_Configuration $expectedConfiguration
-     * @param PHPUnit_Util_Configuration $actualConfiguration
-     * @return void
-     */
-    protected function assertConfigurationEquals(PHPUnit_Util_Configuration $expectedConfiguration, PHPUnit_Util_Configuration $actualConfiguration)
-    {
-        $this->assertEquals(
-            $expectedConfiguration->getFilterConfiguration(),
-            $actualConfiguration->getFilterConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getGroupConfiguration(),
-            $actualConfiguration->getGroupConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getListenerConfiguration(),
-            $actualConfiguration->getListenerConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getLoggingConfiguration(),
-            $actualConfiguration->getLoggingConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getPHPConfiguration(),
-            $actualConfiguration->getPHPConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getPHPUnitConfiguration(),
-            $actualConfiguration->getPHPUnitConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getSeleniumBrowserConfiguration(),
-            $actualConfiguration->getSeleniumBrowserConfiguration()
-        );
-
-        $this->assertEquals(
-            $expectedConfiguration->getTestSuiteConfiguration(),
-            $actualConfiguration->getTestSuiteConfiguration()
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php b/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php
deleted file mode 100644
index 9c1b389..0000000
--- a/core/vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- */
-class Util_GlobalStateTest extends PHPUnit_Framework_TestCase
-{
-
-    /**
-     * @covers PHPUnit_Util_GlobalState::processIncludedFilesAsString
-     */
-    public function testIncludedFilesAsStringSkipsVfsProtocols()
-    {
-        $dir = __DIR__;
-        $files = array(
-            'phpunit', // The 0 index is not used
-            $dir . '/ConfigurationTest.php',
-            $dir . '/GlobalStateTest.php',
-            'vfs://' . $dir . '/RegexTest.php',
-            'phpvfs53e46260465c7://' . $dir . '/TestTest.php',
-            'file://' . $dir . '/XMLTest.php'
-        );
-
-        $this->assertEquals(
-            "require_once '" . $dir . "/ConfigurationTest.php';\n" .
-            "require_once '" . $dir . "/GlobalStateTest.php';\n" .
-            "require_once 'file://" . $dir . "/XMLTest.php';\n", PHPUnit_Util_GlobalState::processIncludedFilesAsString($files));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Util/RegexTest.php b/core/vendor/phpunit/phpunit/tests/Util/RegexTest.php
deleted file mode 100644
index bb05dba..0000000
--- a/core/vendor/phpunit/phpunit/tests/Util/RegexTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 4.2.0
- */
-class Util_RegexTest extends PHPUnit_Framework_TestCase
-{
-    public function validRegexpProvider()
-    {
-        return array(
-          array('#valid regexp#', 'valid regexp', 1),
-          array(';val.*xp;', 'valid regexp', 1),
-          array('/val.*xp/i', 'VALID REGEXP', 1),
-          array('/a val.*p/','valid regexp', 0),
-        );
-    }
-
-    public function invalidRegexpProvider()
-    {
-        return array(
-          array('valid regexp', 'valid regexp'),
-          array(';val.*xp', 'valid regexp'),
-          array('val.*xp/i', 'VALID REGEXP'),
-        );
-    }
-
-    /**
-     * @dataProvider validRegexpProvider
-     * @covers       PHPUnit_Util_Regex::pregMatchSafe
-     */
-    public function testValidRegex($pattern, $subject, $return)
-    {
-        $this->assertEquals($return, PHPUnit_Util_Regex::pregMatchSafe($pattern, $subject));
-    }
-
-    /**
-     * @dataProvider invalidRegexpProvider
-     * @covers       PHPUnit_Util_Regex::pregMatchSafe
-     */
-    public function testInvalidRegex($pattern, $subject)
-    {
-        $this->assertFalse(PHPUnit_Util_Regex::pregMatchSafe($pattern, $subject));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Util/TestDox/NamePrettifierTest.php b/core/vendor/phpunit/phpunit/tests/Util/TestDox/NamePrettifierTest.php
deleted file mode 100644
index 314bcec..0000000
--- a/core/vendor/phpunit/phpunit/tests/Util/TestDox/NamePrettifierTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.1.0
- */
-class Util_TestDox_NamePrettifierTest extends PHPUnit_Framework_TestCase
-{
-    protected $namePrettifier;
-
-    protected function setUp()
-    {
-        $this->namePrettifier = new PHPUnit_Util_TestDox_NamePrettifier;
-    }
-
-    /**
-     * @covers PHPUnit_Util_TestDox_NamePrettifier::prettifyTestClass
-     */
-    public function testTitleHasSensibleDefaults()
-    {
-        $this->assertEquals('Foo', $this->namePrettifier->prettifyTestClass('FooTest'));
-        $this->assertEquals('Foo', $this->namePrettifier->prettifyTestClass('TestFoo'));
-        $this->assertEquals('Foo', $this->namePrettifier->prettifyTestClass('TestFooTest'));
-        $this->assertEquals('Foo', $this->namePrettifier->prettifyTestClass('Test\FooTest'));
-    }
-
-    /**
-     * @covers PHPUnit_Util_TestDox_NamePrettifier::prettifyTestClass
-     */
-    public function testCaterForUserDefinedSuffix()
-    {
-        $this->namePrettifier->setSuffix('TestCase');
-        $this->namePrettifier->setPrefix(null);
-
-        $this->assertEquals('Foo', $this->namePrettifier->prettifyTestClass('FooTestCase'));
-        $this->assertEquals('TestFoo', $this->namePrettifier->prettifyTestClass('TestFoo'));
-        $this->assertEquals('FooTest', $this->namePrettifier->prettifyTestClass('FooTest'));
-    }
-
-    /**
-     * @covers PHPUnit_Util_TestDox_NamePrettifier::prettifyTestClass
-     */
-    public function testCaterForUserDefinedPrefix()
-    {
-        $this->namePrettifier->setSuffix(null);
-        $this->namePrettifier->setPrefix('XXX');
-
-        $this->assertEquals('Foo', $this->namePrettifier->prettifyTestClass('XXXFoo'));
-        $this->assertEquals('TestXXX', $this->namePrettifier->prettifyTestClass('TestXXX'));
-        $this->assertEquals('XXX', $this->namePrettifier->prettifyTestClass('XXXXXX'));
-    }
-
-    /**
-     * @covers PHPUnit_Util_TestDox_NamePrettifier::prettifyTestMethod
-     */
-    public function testTestNameIsConvertedToASentence()
-    {
-        $this->assertEquals('This is a test', $this->namePrettifier->prettifyTestMethod('testThisIsATest'));
-        $this->assertEquals('This is a test', $this->namePrettifier->prettifyTestMethod('testThisIsATest2'));
-        $this->assertEquals('this is a test', $this->namePrettifier->prettifyTestMethod('this_is_a_test'));
-        $this->assertEquals('Foo for bar is 0', $this->namePrettifier->prettifyTestMethod('testFooForBarIs0'));
-        $this->assertEquals('Foo for baz is 1', $this->namePrettifier->prettifyTestMethod('testFooForBazIs1'));
-    }
-
-    /**
-     * @covers PHPUnit_Util_TestDox_NamePrettifier::prettifyTestMethod
-     * @ticket 224
-     */
-    public function testTestNameIsNotGroupedWhenNotInSequence()
-    {
-        $this->assertEquals('Sets redirect header on 301', $this->namePrettifier->prettifyTestMethod('testSetsRedirectHeaderOn301'));
-        $this->assertEquals('Sets redirect header on 302', $this->namePrettifier->prettifyTestMethod('testSetsRedirectHeaderOn302'));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Util/TestTest.php b/core/vendor/phpunit/phpunit/tests/Util/TestTest.php
deleted file mode 100644
index 3047acd..0000000
--- a/core/vendor/phpunit/phpunit/tests/Util/TestTest.php
+++ /dev/null
@@ -1,560 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-if (!defined('TEST_FILES_PATH')) {
-    define(
-        'TEST_FILES_PATH',
-        dirname(__DIR__) . DIRECTORY_SEPARATOR .
-        '_files' . DIRECTORY_SEPARATOR
-    );
-}
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.6
- */
-class Util_TestTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers PHPUnit_Util_Test::getExpectedException
-     * @todo   Split up in separate tests
-     */
-    public function testGetExpectedException()
-    {
-        $this->assertArraySubset(
-          array('class' => 'FooBarBaz', 'code' => null, 'message' => ''),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testOne')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Foo_Bar_Baz', 'code' => null, 'message' => ''),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testTwo')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Foo\Bar\Baz', 'code' => null, 'message' => ''),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testThree')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'ほげ', 'code' => null, 'message' => ''),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testFour')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => 1234, 'message' => 'Message'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testFive')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => 1234, 'message' => 'Message'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSix')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => 'ExceptionCode', 'message' => 'Message'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSeven')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => 0, 'message' => 'Message'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testEight')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => ExceptionTest::ERROR_CODE, 'message' => ExceptionTest::ERROR_MESSAGE),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testNine')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => null, 'message' => ''),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSingleLine')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => My\Space\ExceptionNamespaceTest::ERROR_CODE, 'message' => My\Space\ExceptionNamespaceTest::ERROR_MESSAGE),
-          PHPUnit_Util_Test::getExpectedException('My\Space\ExceptionNamespaceTest', 'testConstants')
-        );
-
-        // Ensure the Class::CONST expression is only evaluated when the constant really exists
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => 'ExceptionTest::UNKNOWN_CODE_CONSTANT', 'message' => 'ExceptionTest::UNKNOWN_MESSAGE_CONSTANT'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testUnknownConstants')
-        );
-
-        $this->assertArraySubset(
-          array('class' => 'Class', 'code' => 'My\Space\ExceptionNamespaceTest::UNKNOWN_CODE_CONSTANT', 'message' => 'My\Space\ExceptionNamespaceTest::UNKNOWN_MESSAGE_CONSTANT'),
-          PHPUnit_Util_Test::getExpectedException('My\Space\ExceptionNamespaceTest', 'testUnknownConstants')
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getExpectedException
-     */
-    public function testGetExpectedRegExp()
-    {
-        $this->assertArraySubset(
-          array('message_regex' => '#regex#'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testWithRegexMessage')
-        );
-
-        $this->assertArraySubset(
-          array('message_regex' => '#regex#'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testWithRegexMessageFromClassConstant')
-        );
-
-        $this->assertArraySubset(
-          array('message_regex' => 'ExceptionTest::UNKNOWN_MESSAGE_REGEX_CONSTANT'),
-          PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testWithUnknowRegexMessageFromClassConstant')
-        );
-    }
-
-    /**
-     * @covers       PHPUnit_Util_Test::getRequirements
-     * @dataProvider requirementsProvider
-     */
-    public function testGetRequirements($test, $result)
-    {
-        $this->assertEquals(
-            $result,
-            PHPUnit_Util_Test::getRequirements('RequirementsTest', $test)
-        );
-    }
-
-    public function requirementsProvider()
-    {
-        return array(
-            array('testOne',    array()),
-            array('testTwo',    array('PHPUnit' => '1.0')),
-            array('testThree',  array('PHP' => '2.0')),
-            array('testFour',   array('PHPUnit'=>'2.0', 'PHP' => '1.0')),
-            array('testFive',   array('PHP' => '5.4.0RC6')),
-            array('testSix',    array('PHP' => '5.4.0-alpha1')),
-            array('testSeven',  array('PHP' => '5.4.0beta2')),
-            array('testEight',  array('PHP' => '5.4-dev')),
-            array('testNine',   array('functions' => array('testFunc'))),
-            array('testTen',    array('extensions' => array('testExt'))),
-            array('testEleven', array('OS' => '/Linux/i')),
-            array(
-              'testSpace',
-              array(
-                'extensions' => array('spl'),
-                'OS' => '/.*/i'
-              )
-            ),
-            array(
-              'testAllPossibleRequirements',
-              array(
-                'PHP' => '99-dev',
-                'PHPUnit' => '9-dev',
-                'OS' => '/DOESNOTEXIST/i',
-                'functions' => array(
-                  'testFuncOne',
-                  'testFuncTwo',
-                ),
-                'extensions' => array(
-                  'testExtOne',
-                  'testExtTwo',
-                )
-              )
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getRequirements
-     */
-    public function testGetRequirementsMergesClassAndMethodDocBlocks()
-    {
-        $expectedAnnotations = array(
-            'PHP' => '5.4',
-            'PHPUnit' => '3.7',
-            'OS' => '/WINNT/i',
-            'functions' => array(
-              'testFuncClass',
-              'testFuncMethod',
-            ),
-            'extensions' => array(
-              'testExtClass',
-              'testExtMethod',
-            )
-        );
-
-        $this->assertEquals(
-            $expectedAnnotations,
-            PHPUnit_Util_Test::getRequirements('RequirementsClassDocBlockTest', 'testMethod')
-        );
-    }
-
-    /**
-     * @covers       PHPUnit_Util_Test::getMissingRequirements
-     * @dataProvider missingRequirementsProvider
-     */
-    public function testGetMissingRequirements($test, $result)
-    {
-        $this->assertEquals(
-            $result,
-            PHPUnit_Util_Test::getMissingRequirements('RequirementsTest', $test)
-        );
-    }
-
-    public function missingRequirementsProvider()
-    {
-        return array(
-            array('testOne',            array()),
-            array('testNine',           array('Function testFunc is required.')),
-            array('testTen',            array('Extension testExt is required.')),
-            array('testAlwaysSkip',     array('PHPUnit 1111111 (or later) is required.')),
-            array('testAlwaysSkip2',    array('PHP 9999999 (or later) is required.')),
-            array('testAlwaysSkip3',    array('Operating system matching /DOESNOTEXIST/i is required.')),
-            array('testAllPossibleRequirements', array(
-              'PHP 99-dev (or later) is required.',
-              'PHPUnit 9-dev (or later) is required.',
-              'Operating system matching /DOESNOTEXIST/i is required.',
-              'Function testFuncOne is required.',
-              'Function testFuncTwo is required.',
-              'Extension testExtOne is required.',
-              'Extension testExtTwo is required.',
-            )),
-        );
-    }
-
-    /**
-     * @coversNothing
-     * @todo   This test does not really test functionality of PHPUnit_Util_Test
-     */
-    public function testGetProvidedDataRegEx()
-    {
-        $result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider method', $matches);
-        $this->assertEquals(1, $result);
-        $this->assertEquals('method', $matches[1]);
-
-        $result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider class::method', $matches);
-        $this->assertEquals(1, $result);
-        $this->assertEquals('class::method', $matches[1]);
-
-        $result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider namespace\class::method', $matches);
-        $this->assertEquals(1, $result);
-        $this->assertEquals('namespace\class::method', $matches[1]);
-
-        $result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider namespace\namespace\class::method', $matches);
-        $this->assertEquals(1, $result);
-        $this->assertEquals('namespace\namespace\class::method', $matches[1]);
-
-        $result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider メソッド', $matches);
-        $this->assertEquals(1, $result);
-        $this->assertEquals('メソッド', $matches[1]);
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getDependencies
-     * @todo   Not sure what this test tests (name is misleading at least)
-     */
-    public function testParseAnnotation()
-    {
-        $this->assertEquals(
-            array('Foo', 'ほげ'),
-            PHPUnit_Util_Test::getDependencies(get_class($this), 'methodForTestParseAnnotation')
-        );
-    }
-
-    /**
-     * @depends Foo
-     * @depends ほげ
-     * @todo    Remove fixture from test class
-     */
-    public function methodForTestParseAnnotation()
-    {
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getDependencies
-     */
-    public function testParseAnnotationThatIsOnlyOneLine()
-    {
-        $this->assertEquals(
-            array('Bar'),
-            PHPUnit_Util_Test::getDependencies(get_class($this), 'methodForTestParseAnnotationThatIsOnlyOneLine')
-        );
-    }
-
-    /** @depends Bar */
-    public function methodForTestParseAnnotationThatIsOnlyOneLine()
-    {
-        // TODO Remove fixture from test class
-    }
-
-    /**
-     * @covers       PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers       PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     * @covers       PHPUnit_Util_Test::resolveElementToReflectionObjects
-     * @dataProvider getLinesToBeCoveredProvider
-     */
-    public function testGetLinesToBeCovered($test, $lines)
-    {
-        if (strpos($test, 'Namespace') === 0) {
-            $expected = array(
-              TEST_FILES_PATH . 'NamespaceCoveredClass.php' => $lines
-            );
-        } elseif ($test === 'CoverageNoneTest') {
-            $expected = array();
-        } elseif ($test === 'CoverageNothingTest') {
-            $expected = false;
-        } elseif ($test === 'CoverageFunctionTest') {
-            $expected = array(
-              TEST_FILES_PATH . 'CoveredFunction.php' => $lines
-            );
-        } else {
-            $expected = array(TEST_FILES_PATH . 'CoveredClass.php' => $lines);
-        }
-
-        $this->assertEquals(
-            $expected,
-            PHPUnit_Util_Test::getLinesToBeCovered(
-                $test, 'testSomething'
-            )
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers            PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     * @covers            PHPUnit_Util_Test::resolveElementToReflectionObjects
-     * @expectedException PHPUnit_Framework_CodeCoverageException
-     */
-    public function testGetLinesToBeCovered2()
-    {
-        PHPUnit_Util_Test::getLinesToBeCovered(
-            'NotExistingCoveredElementTest', 'testOne'
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers            PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     * @covers            PHPUnit_Util_Test::resolveElementToReflectionObjects
-     * @expectedException PHPUnit_Framework_CodeCoverageException
-     */
-    public function testGetLinesToBeCovered3()
-    {
-        PHPUnit_Util_Test::getLinesToBeCovered(
-            'NotExistingCoveredElementTest', 'testTwo'
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers            PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     * @covers            PHPUnit_Util_Test::resolveElementToReflectionObjects
-     * @expectedException PHPUnit_Framework_CodeCoverageException
-     */
-    public function testGetLinesToBeCovered4()
-    {
-        PHPUnit_Util_Test::getLinesToBeCovered(
-            'NotExistingCoveredElementTest', 'testThree'
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     */
-    public function testGetLinesToBeCoveredSkipsNonExistentMethods()
-    {
-        $this->assertSame(
-            array(),
-            PHPUnit_Util_Test::getLinesToBeCovered(
-                'NotExistingCoveredElementTest',
-                'methodDoesNotExist'
-            )
-        );
-    }
-
-    /**
-     * @covers            PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers            PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     * @expectedException PHPUnit_Framework_CodeCoverageException
-     */
-    public function testTwoCoversDefaultClassAnnoationsAreNotAllowed()
-    {
-        PHPUnit_Util_Test::getLinesToBeCovered(
-            'CoverageTwoDefaultClassAnnotations',
-            'testSomething'
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     */
-    public function testFunctionParenthesesAreAllowed()
-    {
-        $this->assertSame(
-            array(TEST_FILES_PATH . 'CoveredFunction.php' => range(2, 4)),
-            PHPUnit_Util_Test::getLinesToBeCovered(
-                'CoverageFunctionParenthesesTest',
-                'testSomething'
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     */
-    public function testFunctionParenthesesAreAllowedWithWhitespace()
-    {
-        $this->assertSame(
-            array(TEST_FILES_PATH . 'CoveredFunction.php' => range(2, 4)),
-            PHPUnit_Util_Test::getLinesToBeCovered(
-                'CoverageFunctionParenthesesWhitespaceTest',
-                'testSomething'
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     */
-    public function testMethodParenthesesAreAllowed()
-    {
-        $this->assertSame(
-            array(TEST_FILES_PATH . 'CoveredClass.php' => range(31, 35)),
-            PHPUnit_Util_Test::getLinesToBeCovered(
-                'CoverageMethodParenthesesTest',
-                'testSomething'
-            )
-        );
-    }
-
-    /**
-     * @covers PHPUnit_Util_Test::getLinesToBeCovered
-     * @covers PHPUnit_Util_Test::getLinesToBeCoveredOrUsed
-     */
-    public function testMethodParenthesesAreAllowedWithWhitespace()
-    {
-        $this->assertSame(
-            array(TEST_FILES_PATH . 'CoveredClass.php' => range(31, 35)),
-            PHPUnit_Util_Test::getLinesToBeCovered(
-                'CoverageMethodParenthesesWhitespaceTest',
-                'testSomething'
-            )
-        );
-    }
-
-    public function getLinesToBeCoveredProvider()
-    {
-        return array(
-          array(
-            'CoverageNoneTest',
-            array()
-          ),
-          array(
-            'CoverageClassExtendedTest',
-            array_merge(range(19, 36), range(2, 17))
-          ),
-          array(
-            'CoverageClassTest',
-            range(19, 36)
-          ),
-          array(
-            'CoverageMethodTest',
-            range(31, 35)
-          ),
-          array(
-            'CoverageMethodOneLineAnnotationTest',
-            range(31, 35)
-          ),
-          array(
-            'CoverageNotPrivateTest',
-            array_merge(range(25, 29), range(31, 35))
-          ),
-          array(
-            'CoverageNotProtectedTest',
-            array_merge(range(21, 23), range(31, 35))
-          ),
-          array(
-            'CoverageNotPublicTest',
-            array_merge(range(21, 23), range(25, 29))
-          ),
-          array(
-            'CoveragePrivateTest',
-            range(21, 23)
-          ),
-          array(
-            'CoverageProtectedTest',
-            range(25, 29)
-          ),
-          array(
-            'CoveragePublicTest',
-            range(31, 35)
-          ),
-          array(
-            'CoverageFunctionTest',
-            range(2, 4)
-          ),
-          array(
-            'NamespaceCoverageClassExtendedTest',
-            array_merge(range(21, 38), range(4, 19))
-          ),
-          array(
-            'NamespaceCoverageClassTest',
-            range(21, 38)
-          ),
-          array(
-            'NamespaceCoverageMethodTest',
-            range(33, 37)
-          ),
-          array(
-            'NamespaceCoverageNotPrivateTest',
-            array_merge(range(27, 31), range(33, 37))
-          ),
-          array(
-            'NamespaceCoverageNotProtectedTest',
-            array_merge(range(23, 25), range(33, 37))
-          ),
-          array(
-            'NamespaceCoverageNotPublicTest',
-            array_merge(range(23, 25), range(27, 31))
-          ),
-          array(
-            'NamespaceCoveragePrivateTest',
-            range(23, 25)
-          ),
-          array(
-            'NamespaceCoverageProtectedTest',
-            range(27, 31)
-          ),
-          array(
-            'NamespaceCoveragePublicTest',
-            range(33, 37)
-          ),
-          array(
-            'NamespaceCoverageCoversClassTest',
-            array_merge(range(23, 25), range(27, 31), range(33, 37), range(6, 8), range(10, 13), range(15, 18))
-          ),
-          array(
-            'NamespaceCoverageCoversClassPublicTest',
-            range(33, 37)
-          ),
-          array(
-            'CoverageNothingTest',
-            false
-          )
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php b/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php
deleted file mode 100644
index b3c73d8..0000000
--- a/core/vendor/phpunit/phpunit/tests/Util/XMLTest.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- *
- * @package    PHPUnit
- * @author     Mike Naberezny <mike@maintainable.com>
- * @author     Derek DeVries <derek@maintainable.com>
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.3.0
- * @covers     PHPUnit_Util_XML
- */
-class Util_XMLTest extends PHPUnit_Framework_TestCase
-{
-    public function testAssertValidKeysValidKeys()
-    {
-        $options   = array('testA' => 1, 'testB' => 2, 'testC' => 3);
-        $valid     = array('testA', 'testB', 'testC');
-        $expected  = array('testA' => 1, 'testB' => 2, 'testC' => 3);
-        $validated = PHPUnit_Util_XML::assertValidKeys($options, $valid);
-
-        $this->assertEquals($expected, $validated);
-    }
-
-    public function testAssertValidKeysValidKeysEmpty()
-    {
-        $options   = array('testA' => 1, 'testB' => 2);
-        $valid     = array('testA', 'testB', 'testC');
-        $expected  = array('testA' => 1, 'testB' => 2, 'testC' => null);
-        $validated = PHPUnit_Util_XML::assertValidKeys($options, $valid);
-
-        $this->assertEquals($expected, $validated);
-    }
-
-    public function testAssertValidKeysDefaultValuesA()
-    {
-        $options   = array('testA' => 1, 'testB' => 2);
-        $valid     = array('testA' => 23, 'testB' => 24, 'testC' => 25);
-        $expected  = array('testA' => 1, 'testB' => 2, 'testC' => 25);
-        $validated = PHPUnit_Util_XML::assertValidKeys($options, $valid);
-
-        $this->assertEquals($expected, $validated);
-    }
-
-    public function testAssertValidKeysDefaultValuesB()
-    {
-        $options   = array();
-        $valid     = array('testA' => 23, 'testB' => 24, 'testC' => 25);
-        $expected  = array('testA' => 23, 'testB' => 24, 'testC' => 25);
-        $validated = PHPUnit_Util_XML::assertValidKeys($options, $valid);
-
-        $this->assertEquals($expected, $validated);
-    }
-
-    public function testAssertValidKeysInvalidKey()
-    {
-        $options = array('testA' => 1, 'testB' => 2, 'testD' => 3);
-        $valid   = array('testA', 'testB', 'testC');
-
-        try {
-            $validated = PHPUnit_Util_XML::assertValidKeys($options, $valid);
-            $this->fail();
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->assertEquals('Unknown key(s): testD', $e->getMessage());
-        }
-    }
-
-    public function testAssertValidKeysInvalidKeys()
-    {
-        $options = array('testA' => 1, 'testD' => 2, 'testE' => 3);
-        $valid   = array('testA', 'testB', 'testC');
-
-        try {
-            $validated = PHPUnit_Util_XML::assertValidKeys($options, $valid);
-            $this->fail();
-        } catch (PHPUnit_Framework_Exception $e) {
-            $this->assertEquals('Unknown key(s): testD, testE', $e->getMessage());
-        }
-    }
-
-    public function testConvertAssertSelect()
-    {
-        $selector  = 'div#folder.open a[href="http://www.xerox.com"][title="xerox"].selected.big > span + h1';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag'   => 'div',
-                           'id'    => 'folder',
-                           'class' => 'open',
-                           'descendant' => array('tag'        => 'a',
-                                                 'class'      => 'selected big',
-                                                 'attributes' => array('href'  => 'http://www.xerox.com',
-                                                                       'title' => 'xerox'),
-                                                 'child'      => array('tag' => 'span',
-                                                                       'adjacent-sibling' => array('tag' => 'h1'))));
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectElt()
-    {
-        $selector  = 'div';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertClass()
-    {
-        $selector  = '.foo';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('class' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertId()
-    {
-        $selector  = '#foo';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('id' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertAttribute()
-    {
-        $selector  = '[foo="bar"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('attributes' => array('foo' => 'bar'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertAttributeSpaces()
-    {
-        $selector  = '[foo="bar baz"] div[value="foo bar"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('attributes' => array('foo' => 'bar baz'),
-                           'descendant' => array('tag'        => 'div',
-                                                 'attributes' => array('value' => 'foo bar')));
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertAttributeMultipleSpaces()
-    {
-        $selector = '[foo="bar baz"] div[value="foo bar baz"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag      = array('attributes' => array('foo' => 'bar baz'),
-                          'descendant' => array('tag' => 'div',
-                                                'attributes' => array('value' => 'foo bar baz')));
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltClass()
-    {
-        $selector  = 'div.foo';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'class' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltId()
-    {
-        $selector  = 'div#foo';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'id' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltAttrEqual()
-    {
-        $selector  = 'div[foo="bar"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'attributes' => array('foo' => 'bar'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltMultiAttrEqual()
-    {
-        $selector  = 'div[foo="bar"][baz="fob"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'attributes' => array('foo' => 'bar', 'baz' => 'fob'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltAttrHasOne()
-    {
-        $selector  = 'div[foo~="bar"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'attributes' => array('foo' => 'regexp:/.*\bbar\b.*/'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltAttrContains()
-    {
-        $selector  = 'div[foo*="bar"]';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'attributes' => array('foo' => 'regexp:/.*bar.*/'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltChild()
-    {
-        $selector  = 'div > a';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'child' => array('tag' => 'a'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltAdjacentSibling()
-    {
-        $selector  = 'div + a';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'adjacent-sibling' => array('tag' => 'a'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectEltDescendant()
-    {
-        $selector  = 'div a';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector);
-        $tag       = array('tag' => 'div', 'descendant' => array('tag' => 'a'));
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectContent()
-    {
-        $selector  = '#foo';
-        $content   = 'div contents';
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
-        $tag       = array('id' => 'foo', 'content' => 'div contents');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectTrue()
-    {
-        $selector  = '#foo';
-        $content   = true;
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
-        $tag       = array('id' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertSelectFalse()
-    {
-        $selector  = '#foo';
-        $content   = false;
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
-        $tag       = array('id' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertNumber()
-    {
-        $selector  = '.foo';
-        $content   = 3;
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
-        $tag       = array('class' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    public function testConvertAssertRange()
-    {
-        $selector  = '#foo';
-        $content   = array('greater_than' => 5, 'less_than' => 10);
-        $converted = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
-        $tag       = array('id' => 'foo');
-
-        $this->assertEquals($tag, $converted);
-    }
-
-    /**
-     * @dataProvider charProvider
-     */
-    public function testPrepareString($char)
-    {
-        $e = null;
-
-        $escapedString = PHPUnit_Util_XML::prepareString($char);
-        $xml = "<?xml version='1.0' encoding='UTF-8' ?><tag>$escapedString</tag>";
-        $dom = new DomDocument('1.0', 'UTF-8');
-
-        try {
-            $dom->loadXML($xml);
-        } catch (Exception $e) {
-        }
-
-        $this->assertNull($e, sprintf(
-            'PHPUnit_Util_XML::prepareString("\x%02x") should not crash DomDocument',
-            ord($char)
-        ));
-    }
-
-    public function charProvider()
-    {
-        $data = array();
-
-        for ($i = 0; $i < 256; $i++) {
-            $data[] = array(chr($i));
-        }
-
-        return $data;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/AbstractTest.php b/core/vendor/phpunit/phpunit/tests/_files/AbstractTest.php
deleted file mode 100644
index 556e7db..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/AbstractTest.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-abstract class AbstractTest extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Author.php b/core/vendor/phpunit/phpunit/tests/_files/Author.php
deleted file mode 100644
index c628ff8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Author.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * An author.
- *
- * @package    PHPUnit
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class Author
-{
-    // the order of properties is important for testing the cycle!
-    public $books = array();
-
-    private $name = '';
-
-    public function __construct($name)
-    {
-        $this->name = $name;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/BankAccount.php b/core/vendor/phpunit/phpunit/tests/_files/BankAccount.php
deleted file mode 100644
index c8fb5a5..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/BankAccount.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class BankAccountException extends RuntimeException
-{
-}
-
-/**
- * A bank account.
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.3.0
- */
-class BankAccount
-{
-    /**
-     * The bank account's balance.
-     *
-     * @var    float
-     */
-    protected $balance = 0;
-
-    /**
-     * Returns the bank account's balance.
-     *
-     * @return float
-     */
-    public function getBalance()
-    {
-        return $this->balance;
-    }
-
-    /**
-     * Sets the bank account's balance.
-     *
-     * @param  float $balance
-     * @throws BankAccountException
-     */
-    protected function setBalance($balance)
-    {
-        if ($balance >= 0) {
-            $this->balance = $balance;
-        } else {
-            throw new BankAccountException;
-        }
-    }
-
-    /**
-     * Deposits an amount of money to the bank account.
-     *
-     * @param  float $balance
-     * @throws BankAccountException
-     */
-    public function depositMoney($balance)
-    {
-        $this->setBalance($this->getBalance() + $balance);
-
-        return $this->getBalance();
-    }
-
-    /**
-     * Withdraws an amount of money from the bank account.
-     *
-     * @param  float $balance
-     * @throws BankAccountException
-     */
-    public function withdrawMoney($balance)
-    {
-        $this->setBalance($this->getBalance() - $balance);
-
-        return $this->getBalance();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/BankAccountTest.php b/core/vendor/phpunit/phpunit/tests/_files/BankAccountTest.php
deleted file mode 100644
index 7237253..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/BankAccountTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the BankAccount class.
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.3.0
- */
-class BankAccountTest extends PHPUnit_Framework_TestCase
-{
-    protected $ba;
-
-    protected function setUp()
-    {
-        $this->ba = new BankAccount;
-    }
-
-    /**
-     * @covers BankAccount::getBalance
-     * @group balanceIsInitiallyZero
-     * @group specification
-     */
-    public function testBalanceIsInitiallyZero()
-    {
-        $this->assertEquals(0, $this->ba->getBalance());
-    }
-
-    /**
-     * @covers BankAccount::withdrawMoney
-     * @group balanceCannotBecomeNegative
-     * @group specification
-     */
-    public function testBalanceCannotBecomeNegative()
-    {
-        try {
-            $this->ba->withdrawMoney(1);
-        } catch (BankAccountException $e) {
-            $this->assertEquals(0, $this->ba->getBalance());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers BankAccount::depositMoney
-     * @group balanceCannotBecomeNegative
-     * @group specification
-     */
-    public function testBalanceCannotBecomeNegative2()
-    {
-        try {
-            $this->ba->depositMoney(-1);
-        } catch (BankAccountException $e) {
-            $this->assertEquals(0, $this->ba->getBalance());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers BankAccount::getBalance
-     * @covers BankAccount::depositMoney
-     * @covers BankAccount::withdrawMoney
-     * @group balanceCannotBecomeNegative
-     */
-    /*
-    public function testDepositingAndWithdrawingMoneyWorks()
-    {
-        $this->assertEquals(0, $this->ba->getBalance());
-        $this->ba->depositMoney(1);
-        $this->assertEquals(1, $this->ba->getBalance());
-        $this->ba->withdrawMoney(1);
-        $this->assertEquals(0, $this->ba->getBalance());
-    }
-    */
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php b/core/vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php
deleted file mode 100644
index 1bdf7c4..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests for the BankAccount class.
- *
- * @package    PHPUnit
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 2.3.0
- */
-class BankAccountWithCustomExtensionTest extends PHPUnit_Framework_TestCase
-{
-    protected $ba;
-
-    protected function setUp()
-    {
-        $this->ba = new BankAccount;
-    }
-
-    /**
-     * @covers BankAccount::getBalance
-     * @group balanceIsInitiallyZero
-     * @group specification
-     */
-    public function testBalanceIsInitiallyZero()
-    {
-        $this->assertEquals(0, $this->ba->getBalance());
-    }
-
-    /**
-     * @covers BankAccount::withdrawMoney
-     * @group balanceCannotBecomeNegative
-     * @group specification
-     */
-    public function testBalanceCannotBecomeNegative()
-    {
-        try {
-            $this->ba->withdrawMoney(1);
-        } catch (BankAccountException $e) {
-            $this->assertEquals(0, $this->ba->getBalance());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers BankAccount::depositMoney
-     * @group balanceCannotBecomeNegative
-     * @group specification
-     */
-    public function testBalanceCannotBecomeNegative2()
-    {
-        try {
-            $this->ba->depositMoney(-1);
-        } catch (BankAccountException $e) {
-            $this->assertEquals(0, $this->ba->getBalance());
-
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /**
-     * @covers BankAccount::getBalance
-     * @covers BankAccount::depositMoney
-     * @covers BankAccount::withdrawMoney
-     * @group balanceCannotBecomeNegative
-     */
-    /*
-    public function testDepositingAndWithdrawingMoneyWorks()
-    {
-        $this->assertEquals(0, $this->ba->getBalance());
-        $this->ba->depositMoney(1);
-        $this->assertEquals(1, $this->ba->getBalance());
-        $this->ba->withdrawMoney(1);
-        $this->assertEquals(0, $this->ba->getBalance());
-    }
-    */
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/BaseTestListenerSample.php b/core/vendor/phpunit/phpunit/tests/_files/BaseTestListenerSample.php
deleted file mode 100644
index 7753b28..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/BaseTestListenerSample.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-class BaseTestListenerSample extends PHPUnit_Framework_BaseTestListener
-{
-    public $endCount = 0;
-
-    public function endTest(PHPUnit_Framework_Test $test, $time)
-    {
-        $this->endCount++;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php b/core/vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php
deleted file mode 100644
index a837ae8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class BeforeAndAfterTest extends PHPUnit_Framework_TestCase
-{
-    public static $beforeWasRun;
-    public static $afterWasRun;
-
-    public static function resetProperties()
-    {
-        self::$beforeWasRun = 0;
-        self::$afterWasRun = 0;
-    }
-
-    /**
-     * @before
-     */
-    public function initialSetup()
-    {
-        self::$beforeWasRun++;
-    }
-
-    /**
-     * @after
-     */
-    public function finalTeardown()
-    {
-        self::$afterWasRun++;
-    }
-
-    public function test1()
-    {
-    }
-    public function test2()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php b/core/vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php
deleted file mode 100644
index f3af8ac..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class BeforeClassAndAfterClassTest extends PHPUnit_Framework_TestCase
-{
-    public static $beforeClassWasRun = 0;
-    public static $afterClassWasRun = 0;
-
-    public static function resetProperties()
-    {
-        self::$beforeClassWasRun = 0;
-        self::$afterClassWasRun = 0;
-    }
-
-    /**
-     * @beforeClass
-     */
-    public static function initialClassSetup()
-    {
-        self::$beforeClassWasRun++;
-    }
-
-    /**
-     * @afterClass
-     */
-    public static function finalClassTeardown()
-    {
-        self::$afterClassWasRun++;
-    }
-
-    public function test1()
-    {
-    }
-    public function test2()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Book.php b/core/vendor/phpunit/phpunit/tests/_files/Book.php
deleted file mode 100644
index 77d3256..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Book.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A book.
- *
- * @package    PHPUnit
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class Book
-{
-    // the order of properties is important for testing the cycle!
-    public $author = null;
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Calculator.php b/core/vendor/phpunit/phpunit/tests/_files/Calculator.php
deleted file mode 100644
index e269bd6..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Calculator.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-class Calculator
-{
-    /**
-     * @assert (0, 0) == 0
-     * @assert (0, 1) == 1
-     * @assert (1, 0) == 1
-     * @assert (1, 1) == 2
-     */
-    public function add($a, $b)
-    {
-        return $a + $b;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php b/core/vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php
deleted file mode 100644
index 70fab0b..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-class ChangeCurrentWorkingDirectoryTest extends PHPUnit_Framework_TestCase
-{
-    public function testSomethingThatChangesTheCwd()
-    {
-        chdir('../');
-        $this->assertTrue(true);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php b/core/vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php
deleted file mode 100644
index bb979e7..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-class ParentClassWithPrivateAttributes
-{
-    private static $privateStaticParentAttribute = 'foo';
-    private $privateParentAttribute = 'bar';
-}
-
-class ParentClassWithProtectedAttributes extends ParentClassWithPrivateAttributes
-{
-    protected static $protectedStaticParentAttribute = 'foo';
-    protected $protectedParentAttribute = 'bar';
-}
-
-class ClassWithNonPublicAttributes extends ParentClassWithProtectedAttributes
-{
-    public static $publicStaticAttribute = 'foo';
-    protected static $protectedStaticAttribute = 'bar';
-    protected static $privateStaticAttribute = 'baz';
-
-    public $publicAttribute = 'foo';
-    public $foo = 1;
-    public $bar = 2;
-    protected $protectedAttribute = 'bar';
-    protected $privateAttribute = 'baz';
-
-    public $publicArray = array('foo');
-    protected $protectedArray = array('bar');
-    protected $privateArray = array('baz');
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ClassWithToString.php b/core/vendor/phpunit/phpunit/tests/_files/ClassWithToString.php
deleted file mode 100644
index 5672741..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ClassWithToString.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/*
- * This file is part of PHPUnit.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * A class with a __toString() method.
- *
- * @package    PHPUnit
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.phpunit.de/
- * @since      Class available since Release 3.6.0
- */
-class ClassWithToString
-{
-    public function __toString()
-    {
-        return 'string representation';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php b/core/vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php
deleted file mode 100644
index fe01cee..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class ConcreteWithMyCustomExtensionTest extends AbstractTest
-{
-    public function testTwo()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ConcreteTest.php b/core/vendor/phpunit/phpunit/tests/_files/ConcreteTest.php
deleted file mode 100644
index 4f51a18..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ConcreteTest.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class ConcreteTest extends AbstractTest
-{
-    public function testTwo()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php
deleted file mode 100644
index df12d34..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageClassExtendedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass<extended>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php
deleted file mode 100644
index 7f569ae..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageClassTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php
deleted file mode 100644
index 33b5fe3..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class CoverageFunctionParenthesesTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::globalFunction()
-     */
-    public function testSomething()
-    {
-        globalFunction();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php
deleted file mode 100644
index becc6c8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class CoverageFunctionParenthesesWhitespaceTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::globalFunction ( )
-     */
-    public function testSomething()
-    {
-        globalFunction();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php
deleted file mode 100644
index c621fd2..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class CoverageFunctionTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::globalFunction
-     */
-    public function testSomething()
-    {
-        globalFunction();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php
deleted file mode 100644
index 55d7f57..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-class CoverageMethodOneLineAnnotationTest extends PHPUnit_Framework_TestCase
-{
-    /** @covers CoveredClass::publicMethod */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php
deleted file mode 100644
index 4223004..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageMethodParenthesesTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod()
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php
deleted file mode 100644
index d1be1c6..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageMethodParenthesesWhitespaceTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod ( )
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php
deleted file mode 100644
index 167b3db..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageMethodTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php
deleted file mode 100644
index 0b414c2..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-class CoverageNoneTest extends PHPUnit_Framework_TestCase
-{
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php
deleted file mode 100644
index 12b56e8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageNotPrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<!private>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php
deleted file mode 100644
index c69d261..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageNotProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<!protected>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php
deleted file mode 100644
index aebfe4b..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageNotPublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<!public>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageNothingTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageNothingTest.php
deleted file mode 100644
index 5d5680d..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageNothingTest.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class CoverageNothingTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::publicMethod
-     * @coversNothing
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php
deleted file mode 100644
index f09560d..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoveragePrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<private>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php
deleted file mode 100644
index 9b3acbf..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoverageProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<protected>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php b/core/vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php
deleted file mode 100644
index 480a522..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class CoveragePublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers CoveredClass::<public>
-     */
-    public function testSomething()
-    {
-        $o = new CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php b/core/vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php
deleted file mode 100644
index 4f1ed65..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @coversDefaultClass \NamespaceOne
- * @coversDefaultClass \AnotherDefault\Name\Space\Does\Not\Work
- */
-class CoverageTwoDefaultClassAnnotations
-{
-
-    /**
-     * @covers Foo\CoveredClass::<public>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoveredClass.php b/core/vendor/phpunit/phpunit/tests/_files/CoveredClass.php
deleted file mode 100644
index f382ce9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoveredClass.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-class CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        $this->protectedMethod();
-    }
-}
-
-class CoveredClass extends CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        parent::protectedMethod();
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        parent::publicMethod();
-        $this->protectedMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CoveredFunction.php b/core/vendor/phpunit/phpunit/tests/_files/CoveredFunction.php
deleted file mode 100644
index 9989eb0..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CoveredFunction.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-function globalFunction()
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/CustomPrinter.php b/core/vendor/phpunit/phpunit/tests/_files/CustomPrinter.php
deleted file mode 100644
index 0e5ddc3..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/CustomPrinter.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class CustomPrinter extends PHPUnit_TextUI_ResultPrinter
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php b/core/vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php
deleted file mode 100644
index 96cb730..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-class DataProviderDebugTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provider
-     */
-    public function testProvider()
-    {
-        $this->assertTrue(true);
-    }
-
-    public static function provider()
-    {
-        $obj2 = new \stdClass();
-        $obj2->foo = 'bar';
-
-        $obj3 = (object) array(1,2,"Test\r\n",4,5,6,7,8);
-
-        $obj = new \stdClass();
-        //@codingStandardsIgnoreStart
-        $obj->null = null;
-        //@codingStandardsIgnoreEnd
-        $obj->boolean = true;
-        $obj->integer = 1;
-        $obj->double = 1.2;
-        $obj->string = '1';
-        $obj->text = "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext";
-        $obj->object = $obj2;
-        $obj->objectagain = $obj2;
-        $obj->array = array('foo' => 'bar');
-        $obj->self = $obj;
-
-        $storage = new \SplObjectStorage();
-        $storage->attach($obj2);
-        $storage->foo = $obj2;
-
-        return array(
-            array(null, true, 1, 1.0),
-            array(1.2, fopen('php://memory', 'r'), '1'),
-            array(array(array(1,2,3), array(3,4,5))),
-            // \n\r and \r is converted to \n
-            array("this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext"),
-            array(new \stdClass(), $obj, array(), $storage, $obj3),
-            array(chr(0) . chr(1) . chr(2) . chr(3) . chr(4) . chr(5), implode('', array_map('chr', range(0x0e, 0x1f)))),
-            array(chr(0x00) . chr(0x09))
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php b/core/vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php
deleted file mode 100644
index 3254985..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-class DataProviderFilterTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider truthProvider
-     */
-    public function testTrue($truth)
-    {
-        $this->assertTrue($truth);
-    }
-
-    public static function truthProvider()
-    {
-        return array(
-           array(true),
-           array(true),
-           array(true),
-           array(true)
-        );
-    }
-
-    /**
-     * @dataProvider falseProvider
-     */
-    public function testFalse($false)
-    {
-        $this->assertFalse($false);
-    }
-
-    public static function falseProvider()
-    {
-        return array(
-          'false test'=>array(false),
-          'false test 2'=>array(false),
-          'other false test'=>array(false),
-          'other false test2'=>array(false)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php b/core/vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php
deleted file mode 100644
index bae7e69..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-class DataProviderIncompleteTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider incompleteTestProviderMethod
-     */
-    public function testIncomplete($a, $b, $c)
-    {
-        $this->assertTrue(true);
-    }
-
-    /**
-     * @dataProvider providerMethod
-     */
-    public function testAdd($a, $b, $c)
-    {
-        $this->assertEquals($c, $a + $b);
-    }
-
-    public function incompleteTestProviderMethod()
-    {
-        $this->markTestIncomplete("incomplete");
-
-        return array(
-          array(0, 0, 0),
-          array(0, 1, 1),
-        );
-    }
-
-    public static function providerMethod()
-    {
-        return array(
-          array(0, 0, 0),
-          array(0, 1, 1),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php b/core/vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php
deleted file mode 100644
index 9e269ab..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-class DataProviderSkippedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider skippedTestProviderMethod
-     */
-    public function testSkipped($a, $b, $c)
-    {
-        $this->assertTrue(true);
-    }
-
-    /**
-     * @dataProvider providerMethod
-     */
-    public function testAdd($a, $b, $c)
-    {
-        $this->assertEquals($c, $a + $b);
-    }
-
-    public function skippedTestProviderMethod()
-    {
-        $this->markTestSkipped("skipped");
-
-        return array(
-          array(0, 0, 0),
-          array(0, 1, 1),
-        );
-    }
-
-    public static function providerMethod()
-    {
-        return array(
-          array(0, 0, 0),
-          array(0, 1, 1),
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DataProviderTest.php b/core/vendor/phpunit/phpunit/tests/_files/DataProviderTest.php
deleted file mode 100644
index d940a05..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DataProviderTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class DataProviderTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider providerMethod
-     */
-    public function testAdd($a, $b, $c)
-    {
-        $this->assertEquals($c, $a + $b);
-    }
-
-    public static function providerMethod()
-    {
-        return array(
-          array(0, 0, 0),
-          array(0, 1, 1),
-          array(1, 1, 3),
-          array(1, 0, 1)
-        );
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php b/core/vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php
deleted file mode 100644
index d83aecd..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class DependencyFailureTest extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-        $this->fail();
-    }
-
-    /**
-     * @depends testOne
-     */
-    public function testTwo()
-    {
-    }
-
-    /**
-     * @depends testTwo
-     */
-    public function testThree()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php b/core/vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php
deleted file mode 100644
index 0e4b5dd..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class DependencySuccessTest extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-    }
-
-    /**
-     * @depends testOne
-     */
-    public function testTwo()
-    {
-    }
-
-    /**
-     * @depends DependencySuccessTest::testTwo
-     */
-    public function testThree()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php b/core/vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php
deleted file mode 100644
index b5babc7..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class DependencyTestSuite
-{
-    public static function suite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite('Test Dependencies');
-
-        $suite->addTestSuite('DependencySuccessTest');
-        $suite->addTestSuite('DependencyFailureTest');
-
-        return $suite;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php
deleted file mode 100644
index b1f00a8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-class DoubleTestCase implements PHPUnit_Framework_Test
-{
-    protected $testCase;
-
-    public function __construct(PHPUnit_Framework_TestCase $testCase)
-    {
-        $this->testCase = $testCase;
-    }
-
-    public function count()
-    {
-        return 2;
-    }
-
-    public function run(PHPUnit_Framework_TestResult $result = null)
-    {
-        $result->startTest($this);
-
-        $this->testCase->runBare();
-        $this->testCase->runBare();
-
-        $result->endTest($this, 0);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/DummyException.php b/core/vendor/phpunit/phpunit/tests/_files/DummyException.php
deleted file mode 100644
index 29a69b9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/DummyException.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-class DummyException extends Exception
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php b/core/vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php
deleted file mode 100644
index 2a77bb2..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class EmptyTestCaseTest extends PHPUnit_Framework_TestCase
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Error.php b/core/vendor/phpunit/phpunit/tests/_files/Error.php
deleted file mode 100644
index 9417ba6..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Error.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Error extends PHPUnit_Framework_TestCase
-{
-    protected function runTest()
-    {
-        throw new Exception;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php
deleted file mode 100644
index 0f53f22..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class ExceptionInAssertPostConditionsTest extends PHPUnit_Framework_TestCase
-{
-    public $setUp = false;
-    public $assertPreConditions = false;
-    public $assertPostConditions = false;
-    public $tearDown = false;
-    public $testSomething = false;
-
-    protected function setUp()
-    {
-        $this->setUp = true;
-    }
-
-    protected function assertPreConditions()
-    {
-        $this->assertPreConditions = true;
-    }
-
-    public function testSomething()
-    {
-        $this->testSomething = true;
-    }
-
-    protected function assertPostConditions()
-    {
-        $this->assertPostConditions = true;
-        throw new Exception;
-    }
-
-    protected function tearDown()
-    {
-        $this->tearDown = true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php
deleted file mode 100644
index db08f9c..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class ExceptionInAssertPreConditionsTest extends PHPUnit_Framework_TestCase
-{
-    public $setUp = false;
-    public $assertPreConditions = false;
-    public $assertPostConditions = false;
-    public $tearDown = false;
-    public $testSomething = false;
-
-    protected function setUp()
-    {
-        $this->setUp = true;
-    }
-
-    protected function assertPreConditions()
-    {
-        $this->assertPreConditions = true;
-        throw new Exception;
-    }
-
-    public function testSomething()
-    {
-        $this->testSomething = true;
-    }
-
-    protected function assertPostConditions()
-    {
-        $this->assertPostConditions = true;
-    }
-
-    protected function tearDown()
-    {
-        $this->tearDown = true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php
deleted file mode 100644
index 9c48030..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class ExceptionInSetUpTest extends PHPUnit_Framework_TestCase
-{
-    public $setUp = false;
-    public $assertPreConditions = false;
-    public $assertPostConditions = false;
-    public $tearDown = false;
-    public $testSomething = false;
-
-    protected function setUp()
-    {
-        $this->setUp = true;
-        throw new Exception;
-    }
-
-    protected function assertPreConditions()
-    {
-        $this->assertPreConditions = true;
-    }
-
-    public function testSomething()
-    {
-        $this->testSomething = true;
-    }
-
-    protected function assertPostConditions()
-    {
-        $this->assertPostConditions = true;
-    }
-
-    protected function tearDown()
-    {
-        $this->tearDown = true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php
deleted file mode 100644
index f5cf7e5..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class ExceptionInTearDownTest extends PHPUnit_Framework_TestCase
-{
-    public $setUp = false;
-    public $assertPreConditions = false;
-    public $assertPostConditions = false;
-    public $tearDown = false;
-    public $testSomething = false;
-
-    protected function setUp()
-    {
-        $this->setUp = true;
-    }
-
-    protected function assertPreConditions()
-    {
-        $this->assertPreConditions = true;
-    }
-
-    public function testSomething()
-    {
-        $this->testSomething = true;
-    }
-
-    protected function assertPostConditions()
-    {
-        $this->assertPostConditions = true;
-    }
-
-    protected function tearDown()
-    {
-        $this->tearDown = true;
-        throw new Exception;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php
deleted file mode 100644
index 4ca556e..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class ExceptionInTest extends PHPUnit_Framework_TestCase
-{
-    public $setUp = false;
-    public $assertPreConditions = false;
-    public $assertPostConditions = false;
-    public $tearDown = false;
-    public $testSomething = false;
-
-    protected function setUp()
-    {
-        $this->setUp = true;
-    }
-
-    protected function assertPreConditions()
-    {
-        $this->assertPreConditions = true;
-    }
-
-    public function testSomething()
-    {
-        $this->testSomething = true;
-        throw new Exception;
-    }
-
-    protected function assertPostConditions()
-    {
-        $this->assertPostConditions = true;
-    }
-
-    protected function tearDown()
-    {
-        $this->tearDown = true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php
deleted file mode 100644
index 9644aae..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace My\Space;
-
-class ExceptionNamespaceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Exception message
-     *
-     * @var string
-     */
-    const ERROR_MESSAGE = 'Exception namespace message';
-
-    /**
-     * Exception code
-     *
-     * @var integer
-     */
-    const ERROR_CODE = 200;
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionMessage My\Space\ExceptionNamespaceTest::ERROR_MESSAGE
-     * @expectedExceptionCode My\Space\ExceptionNamespaceTest::ERROR_CODE
-     */
-    public function testConstants()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionCode My\Space\ExceptionNamespaceTest::UNKNOWN_CODE_CONSTANT
-     * @expectedExceptionMessage My\Space\ExceptionNamespaceTest::UNKNOWN_MESSAGE_CONSTANT
-     */
-    public function testUnknownConstants()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php
deleted file mode 100644
index cd067b0..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-class ExceptionStackTest extends PHPUnit_Framework_TestCase
-{
-    public function testPrintingChildException()
-    {
-        try {
-            $this->assertEquals(array(1), array(2), 'message');
-        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
-            $message = $e->getMessage() . $e->getComparisonFailure()->getDiff();
-            throw new PHPUnit_Framework_Exception("Child exception\n$message", 101, $e);
-        }
-    }
-
-    public function testNestedExceptions()
-    {
-        $exceptionThree = new Exception('Three');
-        $exceptionTwo = new InvalidArgumentException('Two', 0, $exceptionThree);
-        $exceptionOne = new Exception('One', 0, $exceptionTwo);
-        throw $exceptionOne;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ExceptionTest.php b/core/vendor/phpunit/phpunit/tests/_files/ExceptionTest.php
deleted file mode 100644
index 37ce927..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ExceptionTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-class ExceptionTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * Exception message
-     *
-     * @var string
-     */
-    const ERROR_MESSAGE = 'Exception message';
-
-    /**
-     * Exception message
-     *
-     * @var string
-     */
-    const ERROR_MESSAGE_REGEX = '#regex#';
-
-    /**
-     * Exception code
-     *
-     * @var integer
-     */
-    const ERROR_CODE = 500;
-
-    /**
-     * @expectedException FooBarBaz
-     */
-    public function testOne()
-    {
-    }
-
-    /**
-     * @expectedException Foo_Bar_Baz
-     */
-    public function testTwo()
-    {
-    }
-
-    /**
-     * @expectedException Foo\Bar\Baz
-     */
-    public function testThree()
-    {
-    }
-
-    /**
-     * @expectedException ほげ
-     */
-    public function testFour()
-    {
-    }
-
-    /**
-     * @expectedException Class Message 1234
-     */
-    public function testFive()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionMessage Message
-     * @expectedExceptionCode 1234
-     */
-    public function testSix()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionMessage Message
-     * @expectedExceptionCode ExceptionCode
-     */
-    public function testSeven()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionMessage Message
-     * @expectedExceptionCode 0
-     */
-    public function testEight()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionMessage ExceptionTest::ERROR_MESSAGE
-     * @expectedExceptionCode ExceptionTest::ERROR_CODE
-     */
-    public function testNine()
-    {
-    }
-
-    /** @expectedException Class */
-    public function testSingleLine()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionCode ExceptionTest::UNKNOWN_CODE_CONSTANT
-     * @expectedExceptionMessage ExceptionTest::UNKNOWN_MESSAGE_CONSTANT
-     */
-    public function testUnknownConstants()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionCode 1234
-     * @expectedExceptionMessage Message
-     * @expectedExceptionMessageRegExp #regex#
-     */
-    public function testWithRegexMessage()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionCode 1234
-     * @expectedExceptionMessage Message
-     * @expectedExceptionMessageRegExp ExceptionTest::ERROR_MESSAGE_REGEX
-     */
-    public function testWithRegexMessageFromClassConstant()
-    {
-    }
-
-    /**
-     * @expectedException Class
-     * @expectedExceptionCode 1234
-     * @expectedExceptionMessage Message
-     * @expectedExceptionMessageRegExp ExceptionTest::UNKNOWN_MESSAGE_REGEX_CONSTANT
-     */
-    public function testWithUnknowRegexMessageFromClassConstant()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Failure.php b/core/vendor/phpunit/phpunit/tests/_files/Failure.php
deleted file mode 100644
index 586aa54..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Failure.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class Failure extends PHPUnit_Framework_TestCase
-{
-    protected function runTest()
-    {
-        $this->fail();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/FailureTest.php b/core/vendor/phpunit/phpunit/tests/_files/FailureTest.php
deleted file mode 100644
index 70f64e4..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/FailureTest.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-class FailureTest extends PHPUnit_Framework_TestCase
-{
-    public function testAssertArrayEqualsArray()
-    {
-        $this->assertEquals(array(1), array(2), 'message');
-    }
-
-    public function testAssertIntegerEqualsInteger()
-    {
-        $this->assertEquals(1, 2, 'message');
-    }
-
-    public function testAssertObjectEqualsObject()
-    {
-        $a = new StdClass;
-        $a->foo = 'bar';
-
-        $b = new StdClass;
-        $b->bar = 'foo';
-
-        $this->assertEquals($a, $b, 'message');
-    }
-
-    public function testAssertNullEqualsString()
-    {
-        $this->assertEquals(null, 'bar', 'message');
-    }
-
-    public function testAssertStringEqualsString()
-    {
-        $this->assertEquals('foo', 'bar', 'message');
-    }
-
-    public function testAssertTextEqualsText()
-    {
-        $this->assertEquals("foo\nbar\n", "foo\nbaz\n", 'message');
-    }
-
-    public function testAssertStringMatchesFormat()
-    {
-        $this->assertStringMatchesFormat('*%s*', '**', 'message');
-    }
-
-    public function testAssertNumericEqualsNumeric()
-    {
-        $this->assertEquals(1, 2, 'message');
-    }
-
-    public function testAssertTextSameText()
-    {
-        $this->assertSame('foo', 'bar', 'message');
-    }
-
-    public function testAssertObjectSameObject()
-    {
-        $this->assertSame(new StdClass, new StdClass, 'message');
-    }
-
-    public function testAssertObjectSameNull()
-    {
-        $this->assertSame(new StdClass, null, 'message');
-    }
-
-    public function testAssertFloatSameFloat()
-    {
-        $this->assertSame(1.0, 1.5, 'message');
-    }
-
-    // Note that due to the implementation of this assertion it counts as 2 asserts
-    public function testAssertStringMatchesFormatFile()
-    {
-        $this->assertStringMatchesFormatFile(__DIR__ . '/expectedFileFormat.txt', '...BAR...');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/FatalTest.php b/core/vendor/phpunit/phpunit/tests/_files/FatalTest.php
deleted file mode 100644
index 4e1e0b0..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/FatalTest.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-class FatalTest extends PHPUnit_Framework_TestCase
-{
-    public function testFatalError()
-    {
-        if (extension_loaded('xdebug')) {
-            xdebug_disable();
-        }
-
-        non_existing_function();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/IncompleteTest.php b/core/vendor/phpunit/phpunit/tests/_files/IncompleteTest.php
deleted file mode 100644
index 36ca8a0..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/IncompleteTest.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class IncompleteTest extends PHPUnit_Framework_TestCase
-{
-    public function testIncomplete()
-    {
-        $this->markTestIncomplete('Test incomplete');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php b/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php
deleted file mode 100644
index c181503..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-require_once(__DIR__.'/InheritanceB.php');
-
-class InheritanceA extends InheritanceB
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php b/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php
deleted file mode 100644
index 24447e2..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-class InheritanceB extends PHPUnit_Framework_TestCase
-{
-    public function testSomething()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php
deleted file mode 100644
index 3df7215..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class InheritedTestCase extends OneTestCase
-{
-    public function test2()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/IniTest.php b/core/vendor/phpunit/phpunit/tests/_files/IniTest.php
deleted file mode 100644
index 5846abf..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/IniTest.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class IniTest extends PHPUnit_Framework_TestCase
-{
-    public function testIni()
-    {
-        $this->assertEquals('application/x-test', ini_get('default_mimetype'));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/IsolationTest.php b/core/vendor/phpunit/phpunit/tests/_files/IsolationTest.php
deleted file mode 100644
index df95c91..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/IsolationTest.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-class IsolationTest extends PHPUnit_Framework_TestCase
-{
-    public function testIsInIsolationReturnsFalse()
-    {
-        $this->assertFalse($this->isInIsolation());
-    }
-
-    public function testIsInIsolationReturnsTrue()
-    {
-        $this->assertTrue($this->isInIsolation());
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json b/core/vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json
deleted file mode 100644
index 8a74fc5..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json
+++ /dev/null
@@ -1 +0,0 @@
-["Mascott", "Tux", "OS", "Linux"]
diff --git a/core/vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json b/core/vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json
deleted file mode 100644
index 27085be..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Mascott":"Tux"}
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/_files/MockRunner.php b/core/vendor/phpunit/phpunit/tests/_files/MockRunner.php
deleted file mode 100644
index b3bc0cc..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/MockRunner.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class MockRunner extends PHPUnit_Runner_BaseTestRunner
-{
-    protected function runFailed($message)
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php b/core/vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php
deleted file mode 100644
index 886a809..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-class MultiDependencyTest extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-        return 'foo';
-    }
-
-    public function testTwo()
-    {
-        return 'bar';
-    }
-
-    /**
-     * @depends testOne
-     * @depends testTwo
-     */
-    public function testThree($a, $b)
-    {
-        $this->assertEquals('foo', $a);
-        $this->assertEquals('bar', $b);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php
deleted file mode 100644
index d0954cb..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageClassExtendedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass<extended>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php
deleted file mode 100644
index 63912c0..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageClassTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php
deleted file mode 100644
index 45f583b..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * @coversDefaultClass \Foo\CoveredClass
- */
-class NamespaceCoverageCoversClassPublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php
deleted file mode 100644
index b336745..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * @coversDefaultClass \Foo\CoveredClass
- */
-class NamespaceCoverageCoversClassTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers ::privateMethod
-     * @covers ::protectedMethod
-     * @covers ::publicMethod
-     * @covers \Foo\CoveredParentClass::privateMethod
-     * @covers \Foo\CoveredParentClass::protectedMethod
-     * @covers \Foo\CoveredParentClass::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php
deleted file mode 100644
index 35dfb8b..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageMethodTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::publicMethod
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php
deleted file mode 100644
index 552c9ec..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageNotPrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<!private>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php
deleted file mode 100644
index 33fc8c7..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageNotProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<!protected>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php
deleted file mode 100644
index ccbc500..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageNotPublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<!public>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php
deleted file mode 100644
index cce7ba9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoveragePrivateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<private>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php
deleted file mode 100644
index dbbcc1c..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoverageProtectedTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<protected>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php
deleted file mode 100644
index bf1bff8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-class NamespaceCoveragePublicTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Foo\CoveredClass::<public>
-     */
-    public function testSomething()
-    {
-        $o = new Foo\CoveredClass;
-        $o->publicMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php b/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php
deleted file mode 100644
index 5bd0ddf..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-namespace Foo;
-
-class CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        $this->protectedMethod();
-    }
-}
-
-class CoveredClass extends CoveredParentClass
-{
-    private function privateMethod()
-    {
-    }
-
-    protected function protectedMethod()
-    {
-        parent::protectedMethod();
-        $this->privateMethod();
-    }
-
-    public function publicMethod()
-    {
-        parent::publicMethod();
-        $this->protectedMethod();
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php b/core/vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php
deleted file mode 100644
index 5867ba3..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class NoArgTestCaseTest extends PHPUnit_Framework_TestCase
-{
-    public function testNothing()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php b/core/vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php
deleted file mode 100644
index d64e4e1..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class NoTestCaseClass
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NoTestCases.php b/core/vendor/phpunit/phpunit/tests/_files/NoTestCases.php
deleted file mode 100644
index ae93233..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NoTestCases.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class NoTestCases extends PHPUnit_Framework_TestCase
-{
-    public function noTestCase()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php b/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php
deleted file mode 100644
index 48bad9a..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NonStatic.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class NonStatic
-{
-    public function suite()
-    {
-        return;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php b/core/vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php
deleted file mode 100644
index be07ef4..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-class NotExistingCoveredElementTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers NotExistingClass
-     */
-    public function testOne()
-    {
-    }
-
-    /**
-     * @covers NotExistingClass::notExistingMethod
-     */
-    public function testTwo()
-    {
-    }
-
-    /**
-     * @covers NotExistingClass::<public>
-     */
-    public function testThree()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php
deleted file mode 100644
index a391010..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class NotPublicTestCase extends PHPUnit_Framework_TestCase
-{
-    public function testPublic()
-    {
-    }
-
-    protected function testNotPublic()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php
deleted file mode 100644
index 19a9567..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-class NotVoidTestCase extends PHPUnit_Framework_TestCase
-{
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/NothingTest.php b/core/vendor/phpunit/phpunit/tests/_files/NothingTest.php
deleted file mode 100644
index b56d7d7..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/NothingTest.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class NothingTest extends PHPUnit_Framework_TestCase
-{
-    public function testNothing()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/OneTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/OneTestCase.php
deleted file mode 100644
index 15eeed9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/OneTestCase.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-class OneTestCase extends PHPUnit_Framework_TestCase
-{
-    public function noTestCase()
-    {
-    }
-
-    public function testCase($arg = '')
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/OutputTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/OutputTestCase.php
deleted file mode 100644
index ae972b5..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/OutputTestCase.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-class OutputTestCase extends PHPUnit_Framework_TestCase
-{
-    public function testExpectOutputStringFooActualFoo()
-    {
-        $this->expectOutputString('foo');
-        print 'foo';
-    }
-
-    public function testExpectOutputStringFooActualBar()
-    {
-        $this->expectOutputString('foo');
-        print 'bar';
-    }
-
-    public function testExpectOutputRegexFooActualFoo()
-    {
-        $this->expectOutputRegex('/foo/');
-        print 'foo';
-    }
-
-    public function testExpectOutputRegexFooActualBar()
-    {
-        $this->expectOutputRegex('/foo/');
-        print 'bar';
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php
deleted file mode 100644
index fcc276c..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class OverrideTestCase extends OneTestCase
-{
-    public function testCase($arg = '')
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php b/core/vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php
deleted file mode 100644
index e3bb6cb..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @requires extension nonExistingExtension
- */
-class RequirementsClassBeforeClassHookTest extends PHPUnit_Framework_TestCase
-{
-    public static function setUpBeforeClass()
-    {
-        throw new Exception(__METHOD__.' should not be called because of class requirements.');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php b/core/vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php
deleted file mode 100644
index 1e934c8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @requires PHP 5.3
- * @requires PHPUnit 4.0
- * @requires OS Linux
- * @requires function testFuncClass
- * @requires extension testExtClass
- */
-class RequirementsClassDocBlockTest
-{
-
-    /**
-     * @requires PHP 5.4
-     * @requires PHPUnit 3.7
-     * @requires OS WINNT
-     * @requires function testFuncMethod
-     * @requires extension testExtMethod
-     */
-    public function testMethod()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/RequirementsTest.php b/core/vendor/phpunit/phpunit/tests/_files/RequirementsTest.php
deleted file mode 100644
index b2c975e..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/RequirementsTest.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-class RequirementsTest extends PHPUnit_Framework_TestCase
-{
-    public function testOne()
-    {
-    }
-
-    /**
-     * @requires PHPUnit 1.0
-     */
-    public function testTwo()
-    {
-    }
-
-    /**
-     * @requires PHP 2.0
-     */
-    public function testThree()
-    {
-    }
-
-    /**
-     * @requires PHPUnit 2.0
-     * @requires PHP 1.0
-     */
-    public function testFour()
-    {
-    }
-
-    /**
-     * @requires PHP 5.4.0RC6
-     */
-    public function testFive()
-    {
-    }
-
-    /**
-     * @requires PHP 5.4.0-alpha1
-     */
-    public function testSix()
-    {
-    }
-
-    /**
-     * @requires PHP 5.4.0beta2
-     */
-    public function testSeven()
-    {
-    }
-
-    /**
-     * @requires PHP 5.4-dev
-     */
-    public function testEight()
-    {
-    }
-
-
-    /**
-     * @requires function testFunc
-     */
-    public function testNine()
-    {
-    }
-
-    /**
-     * @requires extension testExt
-     */
-    public function testTen()
-    {
-    }
-
-    /**
-     * @requires OS Linux
-     */
-    public function testEleven()
-    {
-    }
-
-    /**
-     * @requires PHP 99-dev
-     * @requires PHPUnit 9-dev
-     * @requires OS DOESNOTEXIST
-     * @requires function testFuncOne
-     * @requires function testFuncTwo
-     * @requires extension testExtOne
-     * @requires extension testExtTwo
-     */
-    public function testAllPossibleRequirements()
-    {
-    }
-
-    /**
-     * @requires function array_merge
-     */
-    public function testExistingFunction()
-    {
-    }
-
-    /**
-     * @requires function ReflectionMethod::setAccessible
-     */
-    public function testExistingMethod()
-    {
-    }
-
-    /**
-     * @requires extension spl
-     */
-    public function testExistingExtension()
-    {
-    }
-
-    /**
-     * @requires OS .*
-     */
-    public function testExistingOs()
-    {
-    }
-
-    /**
-     * @requires PHPUnit 1111111
-     */
-    public function testAlwaysSkip()
-    {
-    }
-
-    /**
-     * @requires PHP 9999999
-     */
-    public function testAlwaysSkip2()
-    {
-    }
-
-    /**
-     * @requires OS DOESNOTEXIST
-     */
-    public function testAlwaysSkip3()
-    {
-    }
-
-    /**
-     * @requires	  extension	  spl
-     * @requires	  OS	  .*
-     */
-    public function testSpace()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php b/core/vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php
deleted file mode 100644
index 7f458fe..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Sample class that implements ArrayAccess copied from
- * http://www.php.net/manual/en/class.arrayaccess.php
- * with some minor changes
- * This class required for PHPUnit_Framework_Constraint_ArrayHasKey testing
- */
-
-class SampleArrayAccess implements ArrayAccess
-{
-    private $container;
-
-    public function __construct()
-    {
-        $this->container = array();
-    }
-    public function offsetSet($offset, $value)
-    {
-        if (is_null($offset)) {
-            $this->container[] = $value;
-        } else {
-            $this->container[$offset] = $value;
-        }
-    }
-    public function offsetExists($offset)
-    {
-        return isset($this->container[$offset]);
-    }
-    public function offsetUnset($offset)
-    {
-        unset($this->container[$offset]);
-    }
-    public function offsetGet($offset)
-    {
-        return isset($this->container[$offset]) ? $this->container[$offset] : null;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/SampleClass.php b/core/vendor/phpunit/phpunit/tests/_files/SampleClass.php
deleted file mode 100644
index 06c51c5..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/SampleClass.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-class SampleClass
-{
-    public $a;
-    protected $b;
-    protected $c;
-
-    public function __construct($a, $b, $c)
-    {
-        $this->a = $a;
-        $this->b = $b;
-        $this->c = $c;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Singleton.php b/core/vendor/phpunit/phpunit/tests/_files/Singleton.php
deleted file mode 100644
index 24dd6bd..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Singleton.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-class Singleton
-{
-    private static $uniqueInstance = null;
-
-    protected function __construct()
-    {
-    }
-
-    final private function __clone()
-    {
-    }
-
-    public static function getInstance()
-    {
-        if (self::$uniqueInstance === null) {
-            self::$uniqueInstance = new Singleton;
-        }
-
-        return self::$uniqueInstance;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/StackTest.php b/core/vendor/phpunit/phpunit/tests/_files/StackTest.php
deleted file mode 100644
index 2e29e87..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/StackTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-class StackTest extends PHPUnit_Framework_TestCase
-{
-    public function testPush()
-    {
-        $stack = array();
-        $this->assertEquals(0, count($stack));
-
-        array_push($stack, 'foo');
-        $this->assertEquals('foo', $stack[count($stack)-1]);
-        $this->assertEquals(1, count($stack));
-
-        return $stack;
-    }
-
-    /**
-     * @depends testPush
-     */
-    public function testPop(array $stack)
-    {
-        $this->assertEquals('foo', array_pop($stack));
-        $this->assertEquals(0, count($stack));
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Struct.php b/core/vendor/phpunit/phpunit/tests/_files/Struct.php
deleted file mode 100644
index 12977a9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Struct.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-class Struct
-{
-    public $var;
-
-    public function __construct($var)
-    {
-        $this->var = $var;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/Success.php b/core/vendor/phpunit/phpunit/tests/_files/Success.php
deleted file mode 100644
index 6d3dd61..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/Success.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class Success extends PHPUnit_Framework_TestCase
-{
-    protected function runTest()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php b/core/vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php
deleted file mode 100644
index d6b1364..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-class TemplateMethodsTest extends PHPUnit_Framework_TestCase
-{
-    public static function setUpBeforeClass()
-    {
-        print __METHOD__ . "\n";
-    }
-
-    protected function setUp()
-    {
-        print __METHOD__ . "\n";
-    }
-
-    protected function assertPreConditions()
-    {
-        print __METHOD__ . "\n";
-    }
-
-    public function testOne()
-    {
-        print __METHOD__ . "\n";
-        $this->assertTrue(true);
-    }
-
-    public function testTwo()
-    {
-        print __METHOD__ . "\n";
-        $this->assertTrue(false);
-    }
-
-    protected function assertPostConditions()
-    {
-        print __METHOD__ . "\n";
-    }
-
-    protected function tearDown()
-    {
-        print __METHOD__ . "\n";
-    }
-
-    public static function tearDownAfterClass()
-    {
-        print __METHOD__ . "\n";
-    }
-
-    protected function onNotSuccessfulTest(Exception $e)
-    {
-        print __METHOD__ . "\n";
-        throw $e;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/TestIterator.php b/core/vendor/phpunit/phpunit/tests/_files/TestIterator.php
deleted file mode 100644
index 01135e3..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/TestIterator.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-class TestIterator implements Iterator
-{
-    protected $array;
-    protected $position = 0;
-
-    public function __construct($array = array())
-    {
-        $this->array = $array;
-    }
-
-    public function rewind()
-    {
-        $this->position = 0;
-    }
-
-    public function valid()
-    {
-        return $this->position < count($this->array);
-    }
-
-    public function key()
-    {
-        return $this->position;
-    }
-
-    public function current()
-    {
-        return $this->array[$this->position];
-    }
-
-    public function next()
-    {
-        $this->position++;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/TestIterator2.php b/core/vendor/phpunit/phpunit/tests/_files/TestIterator2.php
deleted file mode 100644
index 9ed59f9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/TestIterator2.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-class TestIterator2 implements Iterator
-{
-
-    protected $data;
-
-    public function __construct(array $array)
-    {
-        $this->data = $array;
-    }
-
-    public function current()
-    {
-        return current($this->data);
-    }
-
-    public function next()
-    {
-        next($this->data);
-    }
-
-    public function key()
-    {
-        return key($this->data);
-    }
-
-    public function valid()
-    {
-        return key($this->data) !== null;
-    }
-
-    public function rewind()
-    {
-        reset($this->data);
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php
deleted file mode 100644
index 1d2a769..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-class ThrowExceptionTestCase extends PHPUnit_Framework_TestCase
-{
-    public function test()
-    {
-        throw new RuntimeException('A runtime error occurred');
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php b/core/vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php
deleted file mode 100644
index 76958cb..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-class ThrowNoExceptionTestCase extends PHPUnit_Framework_TestCase
-{
-    public function test()
-    {
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/WasRun.php b/core/vendor/phpunit/phpunit/tests/_files/WasRun.php
deleted file mode 100644
index 4221b6d..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/WasRun.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-class WasRun extends PHPUnit_Framework_TestCase
-{
-    public $wasRun = false;
-
-    protected function runTest()
-    {
-        $this->wasRun = true;
-    }
-}
diff --git a/core/vendor/phpunit/phpunit/tests/_files/bar.xml b/core/vendor/phpunit/phpunit/tests/_files/bar.xml
deleted file mode 100644
index 5d3fa28..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/bar.xml
+++ /dev/null
@@ -1 +0,0 @@
-<bar/>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml
deleted file mode 100644
index 5f9e055..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml
+++ /dev/null
@@ -1 +0,0 @@
-<phpunit colors=""></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml
deleted file mode 100644
index dcd4aa4..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml
+++ /dev/null
@@ -1 +0,0 @@
-<phpunit colors="false"></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml
deleted file mode 100644
index c5bd699..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml
+++ /dev/null
@@ -1 +0,0 @@
-<phpunit colors="Something else"></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml
deleted file mode 100644
index 1efe413..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml
+++ /dev/null
@@ -1 +0,0 @@
-<phpunit colors="true"></phpunit>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml
deleted file mode 100644
index 7a5a1f1..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit printerFile="CustomPrinter.php" printerClass="CustomPrinter" />
\ No newline at end of file
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration.xml
deleted file mode 100644
index e83bfd3..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-
-<phpunit backupGlobals="true"
-         backupStaticAttributes="false"
-         bootstrap="/path/to/bootstrap.php"
-         cacheTokens="false"
-         columns="80"
-         colors="false"
-         stderr="false"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         forceCoversAnnotation="false"
-         mapTestClassNameToCoveredClassName="false"
-         printerClass="PHPUnit_TextUI_ResultPrinter"
-         stopOnFailure="false"
-         testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
-         timeoutForSmallTests="1"
-         timeoutForMediumTests="10"
-         timeoutForLargeTests="60"
-         beStrictAboutTestsThatDoNotTestAnything="false"
-         beStrictAboutOutputDuringTests="false"
-         beStrictAboutTestSize="false"
-         beStrictAboutTodoAnnotatedTests="false"
-         checkForUnintentionallyCoveredCode="false"
-         beStrictAboutChangesToGlobalState="false"
-         verbose="false">
-  <testsuites>
-    <testsuite name="My Test Suite">
-      <directory suffix="Test.php" phpVersion="5.3.0" phpVersionOperator=">=">/path/to/files</directory>
-      <file phpVersion="5.3.0" phpVersionOperator=">=">/path/to/MyTest.php</file>
-    </testsuite>
-  </testsuites>
-
-  <groups>
-    <include>
-      <group>name</group>
-    </include>
-    <exclude>
-      <group>name</group>
-    </exclude>
-  </groups>
-
-  <filter>
-    <blacklist>
-      <directory suffix=".php">/path/to/files</directory>
-      <file>/path/to/file</file>
-      <exclude>
-        <directory suffix=".php">/path/to/files</directory>
-        <file>/path/to/file</file>
-      </exclude>
-    </blacklist>
-    <whitelist addUncoveredFilesFromWhitelist="true"
-               processUncoveredFilesFromWhitelist="false">
-      <directory suffix=".php">/path/to/files</directory>
-      <file>/path/to/file</file>
-      <exclude>
-        <directory suffix=".php">/path/to/files</directory>
-        <file>/path/to/file</file>
-      </exclude>
-    </whitelist>
-  </filter>
-
-  <listeners>
-    <listener class="MyListener" file="/optional/path/to/MyListener.php">
-      <arguments>
-        <array>
-          <element key="0">
-            <string>Sebastian</string>
-          </element>
-        </array>
-        <integer>22</integer>
-        <string>April</string>
-        <double>19.78</double>
-        <null/>
-        <object class="stdClass"/>
-        <file>MyTestFile.php</file>
-        <directory>MyRelativePath</directory>
-      </arguments>
-    </listener>
-    <listener class="IncludePathListener" file="ConfigurationTest.php" />
-    <listener class="CompactArgumentsListener" file="/CompactArgumentsListener.php"><arguments><integer>42</integer></arguments></listener>
-  </listeners>
-
-  <logging>
-    <log type="coverage-html" target="/tmp/report" lowUpperBound="50" highLowerBound="90"/>
-    <log type="coverage-clover" target="/tmp/clover.xml"/>
-    <log type="json" target="/tmp/logfile.json"/>
-    <log type="plain" target="/tmp/logfile.txt"/>
-    <log type="tap" target="/tmp/logfile.tap"/>
-    <log type="junit" target="/tmp/logfile.xml" logIncompleteSkipped="false"/>
-    <log type="testdox-html" target="/tmp/testdox.html"/>
-    <log type="testdox-text" target="/tmp/testdox.txt"/>
-  </logging>
-
-  <php>
-    <includePath>.</includePath>
-    <includePath>/path/to/lib</includePath>
-    <ini name="foo" value="bar"/>
-    <const name="FOO" value="false"/>
-    <const name="BAR" value="true"/>
-    <var name="foo" value="false"/>
-    <env name="foo" value="true"/>
-    <post name="foo" value="bar"/>
-    <get name="foo" value="bar"/>
-    <cookie name="foo" value="bar"/>
-    <server name="foo" value="bar"/>
-    <files name="foo" value="bar"/>
-    <request name="foo" value="bar"/>
-  </php>
-
-  <selenium>
-    <browser name="Firefox on Linux"
-             browser="*firefox /usr/lib/firefox/firefox-bin"
-             host="my.linux.box"
-             port="4444"
-             timeout="30000"/>
-  </selenium>
-</phpunit>
-
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration_empty.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration_empty.xml
deleted file mode 100644
index 13c8b71..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration_empty.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-
-<phpunit bootstrap=""
-         testSuiteLoaderFile=""
-         printerFile="">
-  <testsuites>
-    <testsuite name="My Test Suite">
-      <directory></directory>
-      <file></file>
-    </testsuite>
-  </testsuites>
-
-  <groups>
-    <include>
-      <group></group>
-    </include>
-    <exclude>
-      <group></group>
-    </exclude>
-  </groups>
-
-  <filter>
-    <blacklist>
-      <directory></directory>
-      <file></file>
-      <exclude>
-        <directory></directory>
-        <file></file>
-      </exclude>
-    </blacklist>
-    <whitelist>
-      <directory></directory>
-      <file></file>
-      <exclude>
-        <directory></directory>
-        <file></file>
-      </exclude>
-    </whitelist>
-  </filter>
-
-  <logging>
-    <log type="coverage-html" target=""/>
-    <log type="coverage-clover" target=""/>
-    <log type="json" target=""/>
-    <log type="plain" target=""/>
-    <log type="tap" target=""/>
-    <log type="junit" target="" logIncompleteSkipped="false"/>
-    <log type="testdox-html" target=""/>
-    <log type="testdox-text" target=""/>
-  </logging>
-
-  <php>
-    <includePath/>
-    <includePath></includePath>
-  </php>
-</phpunit>
-
diff --git a/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml b/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml
deleted file mode 100644
index 4307629..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-
-<phpunit backupGlobals="true"
-         backupStaticAttributes="false"
-         bootstrap="/path/to/bootstrap.php"
-         cacheTokens="false"
-         columns="80"
-         colors="false"
-         stderr="false"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         forceCoversAnnotation="false"
-         mapTestClassNameToCoveredClassName="false"
-         printerClass="PHPUnit_TextUI_ResultPrinter"
-         stopOnFailure="false"
-         testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
-         timeoutForSmallTests="1"
-         timeoutForMediumTests="10"
-         timeoutForLargeTests="60"
-         beStrictAboutTestsThatDoNotTestAnything="false"
-         beStrictAboutOutputDuringTests="false"
-         beStrictAboutTestSize="false"
-         beStrictAboutTodoAnnotatedTests="false"
-         checkForUnintentionallyCoveredCode="false"
-         beStrictAboutChangesToGlobalState="false"
-         verbose="false">
-         <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-             href="configuration.xml"
-             parse="xml"
-             xpointer="xpointer(/phpunit/testsuites)" />
-
-  <groups>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-          href="configuration.xml"
-        parse="xml"
-        xpointer="xpointer(/phpunit/groups/*)" />
-  </groups>
-
-
-  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-      href="configuration.xml"
-      parse="xml"
-      xpointer="xpointer(/phpunit/filter)" />
-  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-      href="configuration.xml"
-      parse="xml"
-      xpointer="xpointer(/phpunit/listeners)" />
-  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-      href="configuration.xml"
-      parse="xml"
-      xpointer="xpointer(/phpunit/logging)" />
-
-  <php>
-    <includePath>.</includePath>
-    <includePath>/path/to/lib</includePath>
-    <ini name="foo" value="bar"/>
-    <const name="FOO" value="false"/>
-    <const name="BAR" value="true"/>
-    <var name="foo" value="false"/>
-    <env name="foo" value="true"/>
-    <post name="foo" value="bar"/>
-    <get name="foo" value="bar"/>
-    <cookie name="foo" value="bar"/>
-    <server name="foo" value="bar"/>
-    <files name="foo" value="bar"/>
-    <request name="foo" value="bar"/>
-  </php>
-
-  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-      href="configuration.xml"
-      parse="xml"
-      xpointer="xpointer(/phpunit/selenium)" />
-</phpunit>
-
diff --git a/core/vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt b/core/vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt
deleted file mode 100644
index b7d6715..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt
+++ /dev/null
@@ -1 +0,0 @@
-FOO
diff --git a/core/vendor/phpunit/phpunit/tests/_files/foo.xml b/core/vendor/phpunit/phpunit/tests/_files/foo.xml
deleted file mode 100644
index f1999f8..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/foo.xml
+++ /dev/null
@@ -1 +0,0 @@
-<foo/>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml b/core/vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml
deleted file mode 100644
index a5d9ab3..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<text:p xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
-  <draw:frame xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" svg:width="12.567708175cm" svg:height="16.848541467cm" draw:style-name="Frame">
-    <draw:text-box>
-      <draw:frame svg:width="12.567708175cm" svg:height="15.848541467cm" draw:style-name="Image">
-        <draw:image xmlns:xlink="notthesame" xlink:href="Pictures/kristian.jpg"/>
-      </draw:frame>
-      <text:p text:style-name="Text">Image <text:sequence xmlns:style="notthesame" text:ref-name="refImage1" style:num-format="1" text:formula="ooow:Image+1" text:name="Image">1</text:sequence>: Dette er en test caption</text:p>
-    </draw:text-box>
-  </draw:frame>
-</text:p>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/structureExpected.xml b/core/vendor/phpunit/phpunit/tests/_files/structureExpected.xml
deleted file mode 100644
index d900105..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/structureExpected.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<text:p xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
-  <draw:frame xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" svg:width="12.567708175cm" svg:height="16.848541467cm" draw:style-name="Frame">
-    <draw:text-box>
-      <draw:frame svg:width="12.567708175cm" svg:height="15.848541467cm" draw:style-name="Image">
-        <draw:image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="Pictures/kristian.jpg"/>
-      </draw:frame>
-      <text:p text:style-name="Text">Image <text:sequence xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" text:ref-name="refImage1" style:num-format="1" text:formula="ooow:Image+1" text:name="Image">1</text:sequence>: Dette er en test caption</text:p>
-    </draw:text-box>
-  </draw:frame>
-</text:p>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml b/core/vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml
deleted file mode 100644
index 0771b60..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<text:p xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
-  <draw:frame xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" svg:width="12.567708175cm" svg:height="16.848541467cm" draw:style-name="Frame">
-    <draw:text-box>
-    textnode
-      <draw:frame svg:width="12.567708175cm" svg:height="15.848541467cm" draw:style-name="Image">
-        <draw:image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="Pictures/kristian.jpg"/> textnode
-      </draw:frame>
-      textnode
-      <text:p text:style-name="Text">Image <text:sequence xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" text:ref-name="refImage1" style:num-format="1" text:formula="ooow:Image+1" text:name="Image">1</text:sequence>: Dette er en test caption</text:p>
-      textnode
-    </draw:text-box>
-  </draw:frame>
-</text:p>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml b/core/vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml
deleted file mode 100644
index 2ba21b9..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<text:p xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
-  <draw:frame xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" svg:width="12.567708175cm" svg:height="16.848541467cm" draw:style-name="Frame">
-    <draw:text-box>
-      <draw:frame svg:width="12.567708175cm" svg:height="15.848541467cm" draw:style-name="Image">
-        <draw:image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="Pictures/kristian.jpg"/>
-      </draw:frame>
-      <text:p text:style-name="Text">Image is not the same <text:sequence xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" text:ref-name="refImage1" style:num-format="1" text:formula="ooow:Image+1" text:name="Image">1</text:sequence>: Dette er en test caption</text:p>
-    </draw:text-box>
-  </draw:frame>
-</text:p>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml b/core/vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml
deleted file mode 100644
index af9b974..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<text:p xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
-  <draw:frame xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" svg:width="12.567708175cm" svg:height="16.848541467cm" draw:style-name="Frame">
-    <draw:text-box>
-      <draw:frame svg:width="12.567708175cm" svg:height="15.848541467cm" draw:style-name="Image">
-        <draw:image/>
-      </draw:frame>
-      <text:p text:style-name="Text">Image <text:sequence xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" text:ref-name="refImage1" style:num-format="1" text:formula="ooow:Image+1" text:name="Image">1</text:sequence>: Dette er en test caption</text:p>
-    </draw:text-box>
-  </draw:frame>
-</text:p>
diff --git a/core/vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml b/core/vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml
deleted file mode 100644
index 9a394e2..0000000
--- a/core/vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<text:p xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
-  <draw:frame xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" svg:width="12.567708175cm" svg:height="16.848541467cm" draw:style-name="Frame">
-    <draw:text-box>
-      <draw:frame svg:width="12.567708175cm" svg:height="15.848541467cm" draw:style-name="Image">
-        <draw:image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="Pictures/kristian.jpg"/>
-      </draw:frame>
-    </draw:text-box>
-  </draw:frame>
-</text:p>
diff --git a/core/vendor/phpunit/phpunit/tests/bootstrap.php b/core/vendor/phpunit/phpunit/tests/bootstrap.php
deleted file mode 100644
index cc79889..0000000
--- a/core/vendor/phpunit/phpunit/tests/bootstrap.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-// Needed for isolated tests
-require __DIR__ . '/../vendor/autoload.php';
-
-ini_set('precision', 14);
-ini_set('serialize_precision', 14);
diff --git a/core/vendor/psr/http-message/LICENSE b/core/vendor/psr/http-message/LICENSE
deleted file mode 100644
index c2d8e45..0000000
--- a/core/vendor/psr/http-message/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 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/core/vendor/psr/http-message/README.md b/core/vendor/psr/http-message/README.md
deleted file mode 100644
index 2818533..0000000
--- a/core/vendor/psr/http-message/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-PSR Http Message
-================
-
-This repository holds all interfaces/classes/traits related to
-[PSR-7](http://www.php-fig.org/psr/psr-7/).
-
-Note that this is not a HTTP message implementation of its own. It is merely an
-interface that describes a HTTP message. See the specification for more details.
-
-Usage
------
-
-We'll certainly need some stuff in here.
\ No newline at end of file
diff --git a/core/vendor/psr/http-message/composer.json b/core/vendor/psr/http-message/composer.json
deleted file mode 100644
index 4774b61..0000000
--- a/core/vendor/psr/http-message/composer.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "name": "psr/http-message",
-    "description": "Common interface for HTTP messages",
-    "keywords": ["psr", "psr-7", "http", "http-message", "request", "response"],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "PHP-FIG",
-            "homepage": "http://www.php-fig.org/"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "Psr\\Http\\Message\\": "src/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/psr/http-message/src/MessageInterface.php b/core/vendor/psr/http-message/src/MessageInterface.php
deleted file mode 100644
index 8f67a05..0000000
--- a/core/vendor/psr/http-message/src/MessageInterface.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-
-namespace Psr\Http\Message;
-
-/**
- * HTTP messages consist of requests from a client to a server and responses
- * from a server to a client. This interface defines the methods common to
- * each.
- *
- * Messages are considered immutable; all methods that might change state MUST
- * be implemented such that they retain the internal state of the current
- * message and return an instance that contains the changed state.
- *
- * @link http://www.ietf.org/rfc/rfc7230.txt
- * @link http://www.ietf.org/rfc/rfc7231.txt
- */
-interface MessageInterface
-{
-    /**
-     * Retrieves the HTTP protocol version as a string.
-     *
-     * The string MUST contain only the HTTP version number (e.g., "1.1", "1.0").
-     *
-     * @return string HTTP protocol version.
-     */
-    public function getProtocolVersion();
-
-    /**
-     * Return an instance with the specified HTTP protocol version.
-     *
-     * The version string MUST contain only the HTTP version number (e.g.,
-     * "1.1", "1.0").
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new protocol version.
-     *
-     * @param string $version HTTP protocol version
-     * @return self
-     */
-    public function withProtocolVersion($version);
-
-    /**
-     * Retrieves all message header values.
-     *
-     * The keys represent the header name as it will be sent over the wire, and
-     * each value is an array of strings associated with the header.
-     *
-     *     // Represent the headers as a string
-     *     foreach ($message->getHeaders() as $name => $values) {
-     *         echo $name . ": " . implode(", ", $values);
-     *     }
-     *
-     *     // Emit headers iteratively:
-     *     foreach ($message->getHeaders() as $name => $values) {
-     *         foreach ($values as $value) {
-     *             header(sprintf('%s: %s', $name, $value), false);
-     *         }
-     *     }
-     *
-     * While header names are not case-sensitive, getHeaders() will preserve the
-     * exact case in which headers were originally specified.
-     *
-     * @return array Returns an associative array of the message's headers. Each
-     *     key MUST be a header name, and each value MUST be an array of strings
-     *     for that header.
-     */
-    public function getHeaders();
-
-    /**
-     * Checks if a header exists by the given case-insensitive name.
-     *
-     * @param string $name Case-insensitive header field name.
-     * @return bool Returns true if any header names match the given header
-     *     name using a case-insensitive string comparison. Returns false if
-     *     no matching header name is found in the message.
-     */
-    public function hasHeader($name);
-
-    /**
-     * Retrieves a message header value by the given case-insensitive name.
-     *
-     * This method returns an array of all the header values of the given
-     * case-insensitive header name.
-     *
-     * If the header does not appear in the message, this method MUST return an
-     * empty array.
-     *
-     * @param string $name Case-insensitive header field name.
-     * @return string[] An array of string values as provided for the given
-     *    header. If the header does not appear in the message, this method MUST
-     *    return an empty array.
-     */
-    public function getHeader($name);
-
-    /**
-     * Retrieves a comma-separated string of the values for a single header.
-     *
-     * This method returns all of the header values of the given
-     * case-insensitive header name as a string concatenated together using
-     * a comma.
-     *
-     * NOTE: Not all header values may be appropriately represented using
-     * comma concatenation. For such headers, use getHeader() instead
-     * and supply your own delimiter when concatenating.
-     *
-     * If the header does not appear in the message, this method MUST return
-     * an empty string.
-     *
-     * @param string $name Case-insensitive header field name.
-     * @return string A string of values as provided for the given header
-     *    concatenated together using a comma. If the header does not appear in
-     *    the message, this method MUST return an empty string.
-     */
-    public function getHeaderLine($name);
-
-    /**
-     * Return an instance with the provided value replacing the specified header.
-     *
-     * While header names are case-insensitive, the casing of the header will
-     * be preserved by this function, and returned from getHeaders().
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new and/or updated header and value.
-     *
-     * @param string $name Case-insensitive header field name.
-     * @param string|string[] $value Header value(s).
-     * @return self
-     * @throws \InvalidArgumentException for invalid header names or values.
-     */
-    public function withHeader($name, $value);
-
-    /**
-     * Return an instance with the specified header appended with the given value.
-     *
-     * Existing values for the specified header will be maintained. The new
-     * value(s) will be appended to the existing list. If the header did not
-     * exist previously, it will be added.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new header and/or value.
-     *
-     * @param string $name Case-insensitive header field name to add.
-     * @param string|string[] $value Header value(s).
-     * @return self
-     * @throws \InvalidArgumentException for invalid header names or values.
-     */
-    public function withAddedHeader($name, $value);
-
-    /**
-     * Return an instance without the specified header.
-     *
-     * Header resolution MUST be done without case-sensitivity.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that removes
-     * the named header.
-     *
-     * @param string $name Case-insensitive header field name to remove.
-     * @return self
-     */
-    public function withoutHeader($name);
-
-    /**
-     * Gets the body of the message.
-     *
-     * @return StreamInterface Returns the body as a stream.
-     */
-    public function getBody();
-
-    /**
-     * Return an instance with the specified message body.
-     *
-     * The body MUST be a StreamInterface object.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return a new instance that has the
-     * new body stream.
-     *
-     * @param StreamInterface $body Body.
-     * @return self
-     * @throws \InvalidArgumentException When the body is not valid.
-     */
-    public function withBody(StreamInterface $body);
-}
diff --git a/core/vendor/psr/http-message/src/RequestInterface.php b/core/vendor/psr/http-message/src/RequestInterface.php
deleted file mode 100644
index 75c802e..0000000
--- a/core/vendor/psr/http-message/src/RequestInterface.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-
-namespace Psr\Http\Message;
-
-/**
- * Representation of an outgoing, client-side request.
- *
- * Per the HTTP specification, this interface includes properties for
- * each of the following:
- *
- * - Protocol version
- * - HTTP method
- * - URI
- * - Headers
- * - Message body
- *
- * During construction, implementations MUST attempt to set the Host header from
- * a provided URI if no Host header is provided.
- *
- * Requests are considered immutable; all methods that might change state MUST
- * be implemented such that they retain the internal state of the current
- * message and return an instance that contains the changed state.
- */
-interface RequestInterface extends MessageInterface
-{
-    /**
-     * Retrieves the message's request target.
-     *
-     * Retrieves the message's request-target either as it will appear (for
-     * clients), as it appeared at request (for servers), or as it was
-     * specified for the instance (see withRequestTarget()).
-     *
-     * In most cases, this will be the origin-form of the composed URI,
-     * unless a value was provided to the concrete implementation (see
-     * withRequestTarget() below).
-     *
-     * If no URI is available, and no request-target has been specifically
-     * provided, this method MUST return the string "/".
-     *
-     * @return string
-     */
-    public function getRequestTarget();
-
-    /**
-     * Return an instance with the specific request-target.
-     *
-     * If the request needs a non-origin-form request-target — e.g., for
-     * specifying an absolute-form, authority-form, or asterisk-form —
-     * this method may be used to create an instance with the specified
-     * request-target, verbatim.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * changed request target.
-     *
-     * @link http://tools.ietf.org/html/rfc7230#section-2.7 (for the various
-     *     request-target forms allowed in request messages)
-     * @param mixed $requestTarget
-     * @return self
-     */
-    public function withRequestTarget($requestTarget);
-
-    /**
-     * Retrieves the HTTP method of the request.
-     *
-     * @return string Returns the request method.
-     */
-    public function getMethod();
-
-    /**
-     * Return an instance with the provided HTTP method.
-     *
-     * While HTTP method names are typically all uppercase characters, HTTP
-     * method names are case-sensitive and thus implementations SHOULD NOT
-     * modify the given string.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * changed request method.
-     *
-     * @param string $method Case-sensitive method.
-     * @return self
-     * @throws \InvalidArgumentException for invalid HTTP methods.
-     */
-    public function withMethod($method);
-
-    /**
-     * Retrieves the URI instance.
-     *
-     * This method MUST return a UriInterface instance.
-     *
-     * @link http://tools.ietf.org/html/rfc3986#section-4.3
-     * @return UriInterface Returns a UriInterface instance
-     *     representing the URI of the request.
-     */
-    public function getUri();
-
-    /**
-     * Returns an instance with the provided URI.
-     *
-     * This method MUST update the Host header of the returned request by
-     * default if the URI contains a host component. If the URI does not
-     * contain a host component, any pre-existing Host header MUST be carried
-     * over to the returned request.
-     *
-     * You can opt-in to preserving the original state of the Host header by
-     * setting `$preserveHost` to `true`. When `$preserveHost` is set to
-     * `true`, this method interacts with the Host header in the following ways:
-     *
-     * - If the the Host header is missing or empty, and the new URI contains
-     *   a host component, this method MUST update the Host header in the returned
-     *   request.
-     * - If the Host header is missing or empty, and the new URI does not contain a
-     *   host component, this method MUST NOT update the Host header in the returned
-     *   request.
-     * - If a Host header is present and non-empty, this method MUST NOT update
-     *   the Host header in the returned request.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new UriInterface instance.
-     *
-     * @link http://tools.ietf.org/html/rfc3986#section-4.3
-     * @param UriInterface $uri New request URI to use.
-     * @param bool $preserveHost Preserve the original state of the Host header.
-     * @return self
-     */
-    public function withUri(UriInterface $uri, $preserveHost = false);
-}
diff --git a/core/vendor/psr/http-message/src/ResponseInterface.php b/core/vendor/psr/http-message/src/ResponseInterface.php
deleted file mode 100644
index 6724809..0000000
--- a/core/vendor/psr/http-message/src/ResponseInterface.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace Psr\Http\Message;
-
-/**
- * Representation of an outgoing, server-side response.
- *
- * Per the HTTP specification, this interface includes properties for
- * each of the following:
- *
- * - Protocol version
- * - Status code and reason phrase
- * - Headers
- * - Message body
- *
- * Responses are considered immutable; all methods that might change state MUST
- * be implemented such that they retain the internal state of the current
- * message and return an instance that contains the changed state.
- */
-interface ResponseInterface extends MessageInterface
-{
-    /**
-     * Gets the response status code.
-     *
-     * The status code is a 3-digit integer result code of the server's attempt
-     * to understand and satisfy the request.
-     *
-     * @return int Status code.
-     */
-    public function getStatusCode();
-
-    /**
-     * Return an instance with the specified status code and, optionally, reason phrase.
-     *
-     * If no reason phrase is specified, implementations MAY choose to default
-     * to the RFC 7231 or IANA recommended reason phrase for the response's
-     * status code.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * updated status and reason phrase.
-     *
-     * @link http://tools.ietf.org/html/rfc7231#section-6
-     * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
-     * @param int $code The 3-digit integer result code to set.
-     * @param string $reasonPhrase The reason phrase to use with the
-     *     provided status code; if none is provided, implementations MAY
-     *     use the defaults as suggested in the HTTP specification.
-     * @return self
-     * @throws \InvalidArgumentException For invalid status code arguments.
-     */
-    public function withStatus($code, $reasonPhrase = '');
-
-    /**
-     * Gets the response reason phrase associated with the status code.
-     *
-     * Because a reason phrase is not a required element in a response
-     * status line, the reason phrase value MAY be null. Implementations MAY
-     * choose to return the default RFC 7231 recommended reason phrase (or those
-     * listed in the IANA HTTP Status Code Registry) for the response's
-     * status code.
-     *
-     * @link http://tools.ietf.org/html/rfc7231#section-6
-     * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
-     * @return string Reason phrase; must return an empty string if none present.
-     */
-    public function getReasonPhrase();
-}
diff --git a/core/vendor/psr/http-message/src/ServerRequestInterface.php b/core/vendor/psr/http-message/src/ServerRequestInterface.php
deleted file mode 100644
index 916e065..0000000
--- a/core/vendor/psr/http-message/src/ServerRequestInterface.php
+++ /dev/null
@@ -1,261 +0,0 @@
-<?php
-
-namespace Psr\Http\Message;
-
-/**
- * Representation of an incoming, server-side HTTP request.
- *
- * Per the HTTP specification, this interface includes properties for
- * each of the following:
- *
- * - Protocol version
- * - HTTP method
- * - URI
- * - Headers
- * - Message body
- *
- * Additionally, it encapsulates all data as it has arrived to the
- * application from the CGI and/or PHP environment, including:
- *
- * - The values represented in $_SERVER.
- * - Any cookies provided (generally via $_COOKIE)
- * - Query string arguments (generally via $_GET, or as parsed via parse_str())
- * - Upload files, if any (as represented by $_FILES)
- * - Deserialized body parameters (generally from $_POST)
- *
- * $_SERVER values MUST be treated as immutable, as they represent application
- * state at the time of request; as such, no methods are provided to allow
- * modification of those values. The other values provide such methods, as they
- * can be restored from $_SERVER or the request body, and may need treatment
- * during the application (e.g., body parameters may be deserialized based on
- * content type).
- *
- * Additionally, this interface recognizes the utility of introspecting a
- * request to derive and match additional parameters (e.g., via URI path
- * matching, decrypting cookie values, deserializing non-form-encoded body
- * content, matching authorization headers to users, etc). These parameters
- * are stored in an "attributes" property.
- *
- * Requests are considered immutable; all methods that might change state MUST
- * be implemented such that they retain the internal state of the current
- * message and return an instance that contains the changed state.
- */
-interface ServerRequestInterface extends RequestInterface
-{
-    /**
-     * Retrieve server parameters.
-     *
-     * Retrieves data related to the incoming request environment,
-     * typically derived from PHP's $_SERVER superglobal. The data IS NOT
-     * REQUIRED to originate from $_SERVER.
-     *
-     * @return array
-     */
-    public function getServerParams();
-
-    /**
-     * Retrieve cookies.
-     *
-     * Retrieves cookies sent by the client to the server.
-     *
-     * The data MUST be compatible with the structure of the $_COOKIE
-     * superglobal.
-     *
-     * @return array
-     */
-    public function getCookieParams();
-
-    /**
-     * Return an instance with the specified cookies.
-     *
-     * The data IS NOT REQUIRED to come from the $_COOKIE superglobal, but MUST
-     * be compatible with the structure of $_COOKIE. Typically, this data will
-     * be injected at instantiation.
-     *
-     * This method MUST NOT update the related Cookie header of the request
-     * instance, nor related values in the server params.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * updated cookie values.
-     *
-     * @param array $cookies Array of key/value pairs representing cookies.
-     * @return self
-     */
-    public function withCookieParams(array $cookies);
-
-    /**
-     * Retrieve query string arguments.
-     *
-     * Retrieves the deserialized query string arguments, if any.
-     *
-     * Note: the query params might not be in sync with the URI or server
-     * params. If you need to ensure you are only getting the original
-     * values, you may need to parse the query string from `getUri()->getQuery()`
-     * or from the `QUERY_STRING` server param.
-     *
-     * @return array
-     */
-    public function getQueryParams();
-
-    /**
-     * Return an instance with the specified query string arguments.
-     *
-     * These values SHOULD remain immutable over the course of the incoming
-     * request. They MAY be injected during instantiation, such as from PHP's
-     * $_GET superglobal, or MAY be derived from some other value such as the
-     * URI. In cases where the arguments are parsed from the URI, the data
-     * MUST be compatible with what PHP's parse_str() would return for
-     * purposes of how duplicate query parameters are handled, and how nested
-     * sets are handled.
-     *
-     * Setting query string arguments MUST NOT change the URI stored by the
-     * request, nor the values in the server params.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * updated query string arguments.
-     *
-     * @param array $query Array of query string arguments, typically from
-     *     $_GET.
-     * @return self
-     */
-    public function withQueryParams(array $query);
-
-    /**
-     * Retrieve normalized file upload data.
-     *
-     * This method returns upload metadata in a normalized tree, with each leaf
-     * an instance of Psr\Http\Message\UploadedFileInterface.
-     *
-     * These values MAY be prepared from $_FILES or the message body during
-     * instantiation, or MAY be injected via withUploadedFiles().
-     *
-     * @return array An array tree of UploadedFileInterface instances; an empty
-     *     array MUST be returned if no data is present.
-     */
-    public function getUploadedFiles();
-
-    /**
-     * Create a new instance with the specified uploaded files.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * updated body parameters.
-     *
-     * @param array An array tree of UploadedFileInterface instances.
-     * @return self
-     * @throws \InvalidArgumentException if an invalid structure is provided.
-     */
-    public function withUploadedFiles(array $uploadedFiles);
-
-    /**
-     * Retrieve any parameters provided in the request body.
-     *
-     * If the request Content-Type is either application/x-www-form-urlencoded
-     * or multipart/form-data, and the request method is POST, this method MUST
-     * return the contents of $_POST.
-     *
-     * Otherwise, this method may return any results of deserializing
-     * the request body content; as parsing returns structured content, the
-     * potential types MUST be arrays or objects only. A null value indicates
-     * the absence of body content.
-     *
-     * @return null|array|object The deserialized body parameters, if any.
-     *     These will typically be an array or object.
-     */
-    public function getParsedBody();
-
-    /**
-     * Return an instance with the specified body parameters.
-     *
-     * These MAY be injected during instantiation.
-     *
-     * If the request Content-Type is either application/x-www-form-urlencoded
-     * or multipart/form-data, and the request method is POST, use this method
-     * ONLY to inject the contents of $_POST.
-     *
-     * The data IS NOT REQUIRED to come from $_POST, but MUST be the results of
-     * deserializing the request body content. Deserialization/parsing returns
-     * structured data, and, as such, this method ONLY accepts arrays or objects,
-     * or a null value if nothing was available to parse.
-     *
-     * As an example, if content negotiation determines that the request data
-     * is a JSON payload, this method could be used to create a request
-     * instance with the deserialized parameters.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * updated body parameters.
-     *
-     * @param null|array|object $data The deserialized body data. This will
-     *     typically be in an array or object.
-     * @return self
-     * @throws \InvalidArgumentException if an unsupported argument type is
-     *     provided.
-     */
-    public function withParsedBody($data);
-
-    /**
-     * Retrieve attributes derived from the request.
-     *
-     * The request "attributes" may be used to allow injection of any
-     * parameters derived from the request: e.g., the results of path
-     * match operations; the results of decrypting cookies; the results of
-     * deserializing non-form-encoded message bodies; etc. Attributes
-     * will be application and request specific, and CAN be mutable.
-     *
-     * @return array Attributes derived from the request.
-     */
-    public function getAttributes();
-
-    /**
-     * Retrieve a single derived request attribute.
-     *
-     * Retrieves a single derived request attribute as described in
-     * getAttributes(). If the attribute has not been previously set, returns
-     * the default value as provided.
-     *
-     * This method obviates the need for a hasAttribute() method, as it allows
-     * specifying a default value to return if the attribute is not found.
-     *
-     * @see getAttributes()
-     * @param string $name The attribute name.
-     * @param mixed $default Default value to return if the attribute does not exist.
-     * @return mixed
-     */
-    public function getAttribute($name, $default = null);
-
-    /**
-     * Return an instance with the specified derived request attribute.
-     *
-     * This method allows setting a single derived request attribute as
-     * described in getAttributes().
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * updated attribute.
-     *
-     * @see getAttributes()
-     * @param string $name The attribute name.
-     * @param mixed $value The value of the attribute.
-     * @return self
-     */
-    public function withAttribute($name, $value);
-
-    /**
-     * Return an instance that removes the specified derived request attribute.
-     *
-     * This method allows removing a single derived request attribute as
-     * described in getAttributes().
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that removes
-     * the attribute.
-     *
-     * @see getAttributes()
-     * @param string $name The attribute name.
-     * @return self
-     */
-    public function withoutAttribute($name);
-}
diff --git a/core/vendor/psr/http-message/src/StreamInterface.php b/core/vendor/psr/http-message/src/StreamInterface.php
deleted file mode 100644
index f68f391..0000000
--- a/core/vendor/psr/http-message/src/StreamInterface.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-
-namespace Psr\Http\Message;
-
-/**
- * Describes a data stream.
- *
- * Typically, an instance will wrap a PHP stream; this interface provides
- * a wrapper around the most common operations, including serialization of
- * the entire stream to a string.
- */
-interface StreamInterface
-{
-    /**
-     * Reads all data from the stream into a string, from the beginning to end.
-     *
-     * This method MUST attempt to seek to the beginning of the stream before
-     * reading data and read the stream until the end is reached.
-     *
-     * Warning: This could attempt to load a large amount of data into memory.
-     *
-     * This method MUST NOT raise an exception in order to conform with PHP's
-     * string casting operations.
-     *
-     * @see http://php.net/manual/en/language.oop5.magic.php#object.tostring
-     * @return string
-     */
-    public function __toString();
-
-    /**
-     * Closes the stream and any underlying resources.
-     *
-     * @return void
-     */
-    public function close();
-
-    /**
-     * Separates any underlying resources from the stream.
-     *
-     * After the stream has been detached, the stream is in an unusable state.
-     *
-     * @return resource|null Underlying PHP stream, if any
-     */
-    public function detach();
-
-    /**
-     * Get the size of the stream if known.
-     *
-     * @return int|null Returns the size in bytes if known, or null if unknown.
-     */
-    public function getSize();
-
-    /**
-     * Returns the current position of the file read/write pointer
-     *
-     * @return int Position of the file pointer
-     * @throws \RuntimeException on error.
-     */
-    public function tell();
-
-    /**
-     * Returns true if the stream is at the end of the stream.
-     *
-     * @return bool
-     */
-    public function eof();
-
-    /**
-     * Returns whether or not the stream is seekable.
-     *
-     * @return bool
-     */
-    public function isSeekable();
-
-    /**
-     * Seek to a position in the stream.
-     *
-     * @link http://www.php.net/manual/en/function.fseek.php
-     * @param int $offset Stream offset
-     * @param int $whence Specifies how the cursor position will be calculated
-     *     based on the seek offset. Valid values are identical to the built-in
-     *     PHP $whence values for `fseek()`.  SEEK_SET: Set position equal to
-     *     offset bytes SEEK_CUR: Set position to current location plus offset
-     *     SEEK_END: Set position to end-of-stream plus offset.
-     * @throws \RuntimeException on failure.
-     */
-    public function seek($offset, $whence = SEEK_SET);
-
-    /**
-     * Seek to the beginning of the stream.
-     *
-     * If the stream is not seekable, this method will raise an exception;
-     * otherwise, it will perform a seek(0).
-     *
-     * @see seek()
-     * @link http://www.php.net/manual/en/function.fseek.php
-     * @throws \RuntimeException on failure.
-     */
-    public function rewind();
-
-    /**
-     * Returns whether or not the stream is writable.
-     *
-     * @return bool
-     */
-    public function isWritable();
-
-    /**
-     * Write data to the stream.
-     *
-     * @param string $string The string that is to be written.
-     * @return int Returns the number of bytes written to the stream.
-     * @throws \RuntimeException on failure.
-     */
-    public function write($string);
-
-    /**
-     * Returns whether or not the stream is readable.
-     *
-     * @return bool
-     */
-    public function isReadable();
-
-    /**
-     * Read data from the stream.
-     *
-     * @param int $length Read up to $length bytes from the object and return
-     *     them. Fewer than $length bytes may be returned if underlying stream
-     *     call returns fewer bytes.
-     * @return string Returns the data read from the stream, or an empty string
-     *     if no bytes are available.
-     * @throws \RuntimeException if an error occurs.
-     */
-    public function read($length);
-
-    /**
-     * Returns the remaining contents in a string
-     *
-     * @return string
-     * @throws \RuntimeException if unable to read or an error occurs while
-     *     reading.
-     */
-    public function getContents();
-
-    /**
-     * Get stream metadata as an associative array or retrieve a specific key.
-     *
-     * The keys returned are identical to the keys returned from PHP's
-     * stream_get_meta_data() function.
-     *
-     * @link http://php.net/manual/en/function.stream-get-meta-data.php
-     * @param string $key Specific metadata to retrieve.
-     * @return array|mixed|null Returns an associative array if no key is
-     *     provided. Returns a specific key value if a key is provided and the
-     *     value is found, or null if the key is not found.
-     */
-    public function getMetadata($key = null);
-}
diff --git a/core/vendor/psr/http-message/src/UploadedFileInterface.php b/core/vendor/psr/http-message/src/UploadedFileInterface.php
deleted file mode 100644
index 5ad288d..0000000
--- a/core/vendor/psr/http-message/src/UploadedFileInterface.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-namespace Psr\Http\Message;
-
-/**
- * Value object representing a file uploaded through an HTTP request.
- *
- * Instances of this interface are considered immutable; all methods that
- * might change state MUST be implemented such that they retain the internal
- * state of the current instance and return an instance that contains the
- * changed state.
- */
-interface UploadedFileInterface
-{
-    /**
-     * Retrieve a stream representing the uploaded file.
-     *
-     * This method MUST return a StreamInterface instance, representing the
-     * uploaded file. The purpose of this method is to allow utilizing native PHP
-     * stream functionality to manipulate the file upload, such as
-     * stream_copy_to_stream() (though the result will need to be decorated in a
-     * native PHP stream wrapper to work with such functions).
-     *
-     * If the moveTo() method has been called previously, this method MUST raise
-     * an exception.
-     *
-     * @return StreamInterface Stream representation of the uploaded file.
-     * @throws \RuntimeException in cases when no stream is available or can be
-     *     created.
-     */
-    public function getStream();
-
-    /**
-     * Move the uploaded file to a new location.
-     *
-     * Use this method as an alternative to move_uploaded_file(). This method is
-     * guaranteed to work in both SAPI and non-SAPI environments.
-     * Implementations must determine which environment they are in, and use the
-     * appropriate method (move_uploaded_file(), rename(), or a stream
-     * operation) to perform the operation.
-     *
-     * $targetPath may be an absolute path, or a relative path. If it is a
-     * relative path, resolution should be the same as used by PHP's rename()
-     * function.
-     *
-     * The original file or stream MUST be removed on completion.
-     *
-     * If this method is called more than once, any subsequent calls MUST raise
-     * an exception.
-     *
-     * When used in an SAPI environment where $_FILES is populated, when writing
-     * files via moveTo(), is_uploaded_file() and move_uploaded_file() SHOULD be
-     * used to ensure permissions and upload status are verified correctly.
-     *
-     * If you wish to move to a stream, use getStream(), as SAPI operations
-     * cannot guarantee writing to stream destinations.
-     *
-     * @see http://php.net/is_uploaded_file
-     * @see http://php.net/move_uploaded_file
-     * @param string $targetPath Path to which to move the uploaded file.
-     * @throws \InvalidArgumentException if the $path specified is invalid.
-     * @throws \RuntimeException on any error during the move operation, or on
-     *     the second or subsequent call to the method.
-     */
-    public function moveTo($targetPath);
-    
-    /**
-     * Retrieve the file size.
-     *
-     * Implementations SHOULD return the value stored in the "size" key of
-     * the file in the $_FILES array if available, as PHP calculates this based
-     * on the actual size transmitted.
-     *
-     * @return int|null The file size in bytes or null if unknown.
-     */
-    public function getSize();
-    
-    /**
-     * Retrieve the error associated with the uploaded file.
-     *
-     * The return value MUST be one of PHP's UPLOAD_ERR_XXX constants.
-     *
-     * If the file was uploaded successfully, this method MUST return
-     * UPLOAD_ERR_OK.
-     *
-     * Implementations SHOULD return the value stored in the "error" key of
-     * the file in the $_FILES array.
-     *
-     * @see http://php.net/manual/en/features.file-upload.errors.php
-     * @return int One of PHP's UPLOAD_ERR_XXX constants.
-     */
-    public function getError();
-    
-    /**
-     * Retrieve the filename sent by the client.
-     *
-     * Do not trust the value returned by this method. A client could send
-     * a malicious filename with the intention to corrupt or hack your
-     * application.
-     *
-     * Implementations SHOULD return the value stored in the "name" key of
-     * the file in the $_FILES array.
-     *
-     * @return string|null The filename sent by the client or null if none
-     *     was provided.
-     */
-    public function getClientFilename();
-    
-    /**
-     * Retrieve the media type sent by the client.
-     *
-     * Do not trust the value returned by this method. A client could send
-     * a malicious media type with the intention to corrupt or hack your
-     * application.
-     *
-     * Implementations SHOULD return the value stored in the "type" key of
-     * the file in the $_FILES array.
-     *
-     * @return string|null The media type sent by the client or null if none
-     *     was provided.
-     */
-    public function getClientMediaType();
-}
diff --git a/core/vendor/psr/http-message/src/UriInterface.php b/core/vendor/psr/http-message/src/UriInterface.php
deleted file mode 100644
index 1ff5bf0..0000000
--- a/core/vendor/psr/http-message/src/UriInterface.php
+++ /dev/null
@@ -1,323 +0,0 @@
-<?php
-namespace Psr\Http\Message;
-
-/**
- * Value object representing a URI.
- *
- * This interface is meant to represent URIs according to RFC 3986 and to
- * provide methods for most common operations. Additional functionality for
- * working with URIs can be provided on top of the interface or externally.
- * Its primary use is for HTTP requests, but may also be used in other
- * contexts.
- *
- * Instances of this interface are considered immutable; all methods that
- * might change state MUST be implemented such that they retain the internal
- * state of the current instance and return an instance that contains the
- * changed state.
- *
- * Typically the Host header will be also be present in the request message.
- * For server-side requests, the scheme will typically be discoverable in the
- * server parameters.
- *
- * @link http://tools.ietf.org/html/rfc3986 (the URI specification)
- */
-interface UriInterface
-{
-    /**
-     * Retrieve the scheme component of the URI.
-     *
-     * If no scheme is present, this method MUST return an empty string.
-     *
-     * The value returned MUST be normalized to lowercase, per RFC 3986
-     * Section 3.1.
-     *
-     * The trailing ":" character is not part of the scheme and MUST NOT be
-     * added.
-     *
-     * @see https://tools.ietf.org/html/rfc3986#section-3.1
-     * @return string The URI scheme.
-     */
-    public function getScheme();
-
-    /**
-     * Retrieve the authority component of the URI.
-     *
-     * If no authority information is present, this method MUST return an empty
-     * string.
-     *
-     * The authority syntax of the URI is:
-     *
-     * <pre>
-     * [user-info@]host[:port]
-     * </pre>
-     *
-     * If the port component is not set or is the standard port for the current
-     * scheme, it SHOULD NOT be included.
-     *
-     * @see https://tools.ietf.org/html/rfc3986#section-3.2
-     * @return string The URI authority, in "[user-info@]host[:port]" format.
-     */
-    public function getAuthority();
-
-    /**
-     * Retrieve the user information component of the URI.
-     *
-     * If no user information is present, this method MUST return an empty
-     * string.
-     *
-     * If a user is present in the URI, this will return that value;
-     * additionally, if the password is also present, it will be appended to the
-     * user value, with a colon (":") separating the values.
-     *
-     * The trailing "@" character is not part of the user information and MUST
-     * NOT be added.
-     *
-     * @return string The URI user information, in "username[:password]" format.
-     */
-    public function getUserInfo();
-
-    /**
-     * Retrieve the host component of the URI.
-     *
-     * If no host is present, this method MUST return an empty string.
-     *
-     * The value returned MUST be normalized to lowercase, per RFC 3986
-     * Section 3.2.2.
-     *
-     * @see http://tools.ietf.org/html/rfc3986#section-3.2.2
-     * @return string The URI host.
-     */
-    public function getHost();
-
-    /**
-     * Retrieve the port component of the URI.
-     *
-     * If a port is present, and it is non-standard for the current scheme,
-     * this method MUST return it as an integer. If the port is the standard port
-     * used with the current scheme, this method SHOULD return null.
-     *
-     * If no port is present, and no scheme is present, this method MUST return
-     * a null value.
-     *
-     * If no port is present, but a scheme is present, this method MAY return
-     * the standard port for that scheme, but SHOULD return null.
-     *
-     * @return null|int The URI port.
-     */
-    public function getPort();
-
-    /**
-     * Retrieve the path component of the URI.
-     *
-     * The path can either be empty or absolute (starting with a slash) or
-     * rootless (not starting with a slash). Implementations MUST support all
-     * three syntaxes.
-     *
-     * Normally, the empty path "" and absolute path "/" are considered equal as
-     * defined in RFC 7230 Section 2.7.3. But this method MUST NOT automatically
-     * do this normalization because in contexts with a trimmed base path, e.g.
-     * the front controller, this difference becomes significant. It's the task
-     * of the user to handle both "" and "/".
-     *
-     * The value returned MUST be percent-encoded, but MUST NOT double-encode
-     * any characters. To determine what characters to encode, please refer to
-     * RFC 3986, Sections 2 and 3.3.
-     *
-     * As an example, if the value should include a slash ("/") not intended as
-     * delimiter between path segments, that value MUST be passed in encoded
-     * form (e.g., "%2F") to the instance.
-     *
-     * @see https://tools.ietf.org/html/rfc3986#section-2
-     * @see https://tools.ietf.org/html/rfc3986#section-3.3
-     * @return string The URI path.
-     */
-    public function getPath();
-
-    /**
-     * Retrieve the query string of the URI.
-     *
-     * If no query string is present, this method MUST return an empty string.
-     *
-     * The leading "?" character is not part of the query and MUST NOT be
-     * added.
-     *
-     * The value returned MUST be percent-encoded, but MUST NOT double-encode
-     * any characters. To determine what characters to encode, please refer to
-     * RFC 3986, Sections 2 and 3.4.
-     *
-     * As an example, if a value in a key/value pair of the query string should
-     * include an ampersand ("&") not intended as a delimiter between values,
-     * that value MUST be passed in encoded form (e.g., "%26") to the instance.
-     *
-     * @see https://tools.ietf.org/html/rfc3986#section-2
-     * @see https://tools.ietf.org/html/rfc3986#section-3.4
-     * @return string The URI query string.
-     */
-    public function getQuery();
-
-    /**
-     * Retrieve the fragment component of the URI.
-     *
-     * If no fragment is present, this method MUST return an empty string.
-     *
-     * The leading "#" character is not part of the fragment and MUST NOT be
-     * added.
-     *
-     * The value returned MUST be percent-encoded, but MUST NOT double-encode
-     * any characters. To determine what characters to encode, please refer to
-     * RFC 3986, Sections 2 and 3.5.
-     *
-     * @see https://tools.ietf.org/html/rfc3986#section-2
-     * @see https://tools.ietf.org/html/rfc3986#section-3.5
-     * @return string The URI fragment.
-     */
-    public function getFragment();
-
-    /**
-     * Return an instance with the specified scheme.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified scheme.
-     *
-     * Implementations MUST support the schemes "http" and "https" case
-     * insensitively, and MAY accommodate other schemes if required.
-     *
-     * An empty scheme is equivalent to removing the scheme.
-     *
-     * @param string $scheme The scheme to use with the new instance.
-     * @return self A new instance with the specified scheme.
-     * @throws \InvalidArgumentException for invalid or unsupported schemes.
-     */
-    public function withScheme($scheme);
-
-    /**
-     * Return an instance with the specified user information.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified user information.
-     *
-     * Password is optional, but the user information MUST include the
-     * user; an empty string for the user is equivalent to removing user
-     * information.
-     *
-     * @param string $user The user name to use for authority.
-     * @param null|string $password The password associated with $user.
-     * @return self A new instance with the specified user information.
-     */
-    public function withUserInfo($user, $password = null);
-
-    /**
-     * Return an instance with the specified host.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified host.
-     *
-     * An empty host value is equivalent to removing the host.
-     *
-     * @param string $host The hostname to use with the new instance.
-     * @return self A new instance with the specified host.
-     * @throws \InvalidArgumentException for invalid hostnames.
-     */
-    public function withHost($host);
-
-    /**
-     * Return an instance with the specified port.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified port.
-     *
-     * Implementations MUST raise an exception for ports outside the
-     * established TCP and UDP port ranges.
-     *
-     * A null value provided for the port is equivalent to removing the port
-     * information.
-     *
-     * @param null|int $port The port to use with the new instance; a null value
-     *     removes the port information.
-     * @return self A new instance with the specified port.
-     * @throws \InvalidArgumentException for invalid ports.
-     */
-    public function withPort($port);
-
-    /**
-     * Return an instance with the specified path.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified path.
-     *
-     * The path can either be empty or absolute (starting with a slash) or
-     * rootless (not starting with a slash). Implementations MUST support all
-     * three syntaxes.
-     *
-     * If the path is intended to be domain-relative rather than path relative then
-     * it must begin with a slash ("/"). Paths not starting with a slash ("/")
-     * are assumed to be relative to some base path known to the application or
-     * consumer.
-     *
-     * Users can provide both encoded and decoded path characters.
-     * Implementations ensure the correct encoding as outlined in getPath().
-     *
-     * @param string $path The path to use with the new instance.
-     * @return self A new instance with the specified path.
-     * @throws \InvalidArgumentException for invalid paths.
-     */
-    public function withPath($path);
-
-    /**
-     * Return an instance with the specified query string.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified query string.
-     *
-     * Users can provide both encoded and decoded query characters.
-     * Implementations ensure the correct encoding as outlined in getQuery().
-     *
-     * An empty query string value is equivalent to removing the query string.
-     *
-     * @param string $query The query string to use with the new instance.
-     * @return self A new instance with the specified query string.
-     * @throws \InvalidArgumentException for invalid query strings.
-     */
-    public function withQuery($query);
-
-    /**
-     * Return an instance with the specified URI fragment.
-     *
-     * This method MUST retain the state of the current instance, and return
-     * an instance that contains the specified URI fragment.
-     *
-     * Users can provide both encoded and decoded fragment characters.
-     * Implementations ensure the correct encoding as outlined in getFragment().
-     *
-     * An empty fragment value is equivalent to removing the fragment.
-     *
-     * @param string $fragment The fragment to use with the new instance.
-     * @return self A new instance with the specified fragment.
-     */
-    public function withFragment($fragment);
-
-    /**
-     * Return the string representation as a URI reference.
-     *
-     * Depending on which components of the URI are present, the resulting
-     * string is either a full URI or relative reference according to RFC 3986,
-     * Section 4.1. The method concatenates the various components of the URI,
-     * using the appropriate delimiters:
-     *
-     * - If a scheme is present, it MUST be suffixed by ":".
-     * - If an authority is present, it MUST be prefixed by "//".
-     * - The path can be concatenated without delimiters. But there are two
-     *   cases where the path has to be adjusted to make the URI reference
-     *   valid as PHP does not allow to throw an exception in __toString():
-     *     - If the path is rootless and an authority is present, the path MUST
-     *       be prefixed by "/".
-     *     - If the path is starting with more than one "/" and no authority is
-     *       present, the starting slashes MUST be reduced to one.
-     * - If a query is present, it MUST be prefixed by "?".
-     * - If a fragment is present, it MUST be prefixed by "#".
-     *
-     * @see http://tools.ietf.org/html/rfc3986#section-4.1
-     * @return string
-     */
-    public function __toString();
-}
diff --git a/core/vendor/psr/log/.gitignore b/core/vendor/psr/log/.gitignore
deleted file mode 100644
index 22d0d82..0000000
--- a/core/vendor/psr/log/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-vendor
diff --git a/core/vendor/psr/log/LICENSE b/core/vendor/psr/log/LICENSE
deleted file mode 100644
index 474c952..0000000
--- a/core/vendor/psr/log/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2012 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/core/vendor/psr/log/Psr/Log/AbstractLogger.php b/core/vendor/psr/log/Psr/Log/AbstractLogger.php
deleted file mode 100644
index 00f9034..0000000
--- a/core/vendor/psr/log/Psr/Log/AbstractLogger.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This is a simple Logger implementation that other Loggers can inherit from.
- *
- * It simply delegates all log-level-specific methods to the `log` method to
- * reduce boilerplate code that a simple Logger that does the same thing with
- * messages regardless of the error level has to implement.
- */
-abstract class AbstractLogger implements LoggerInterface
-{
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function emergency($message, array $context = array())
-    {
-        $this->log(LogLevel::EMERGENCY, $message, $context);
-    }
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function alert($message, array $context = array())
-    {
-        $this->log(LogLevel::ALERT, $message, $context);
-    }
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function critical($message, array $context = array())
-    {
-        $this->log(LogLevel::CRITICAL, $message, $context);
-    }
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function error($message, array $context = array())
-    {
-        $this->log(LogLevel::ERROR, $message, $context);
-    }
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function warning($message, array $context = array())
-    {
-        $this->log(LogLevel::WARNING, $message, $context);
-    }
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function notice($message, array $context = array())
-    {
-        $this->log(LogLevel::NOTICE, $message, $context);
-    }
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function info($message, array $context = array())
-    {
-        $this->log(LogLevel::INFO, $message, $context);
-    }
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function debug($message, array $context = array())
-    {
-        $this->log(LogLevel::DEBUG, $message, $context);
-    }
-}
diff --git a/core/vendor/psr/log/Psr/Log/InvalidArgumentException.php b/core/vendor/psr/log/Psr/Log/InvalidArgumentException.php
deleted file mode 100644
index 67f852d..0000000
--- a/core/vendor/psr/log/Psr/Log/InvalidArgumentException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-class InvalidArgumentException extends \InvalidArgumentException
-{
-}
diff --git a/core/vendor/psr/log/Psr/Log/LogLevel.php b/core/vendor/psr/log/Psr/Log/LogLevel.php
deleted file mode 100644
index e32c151..0000000
--- a/core/vendor/psr/log/Psr/Log/LogLevel.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes log levels
- */
-class LogLevel
-{
-    const EMERGENCY = 'emergency';
-    const ALERT = 'alert';
-    const CRITICAL = 'critical';
-    const ERROR = 'error';
-    const WARNING = 'warning';
-    const NOTICE = 'notice';
-    const INFO = 'info';
-    const DEBUG = 'debug';
-}
diff --git a/core/vendor/psr/log/Psr/Log/LoggerAwareInterface.php b/core/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
deleted file mode 100644
index 2eebc4e..0000000
--- a/core/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes a logger-aware instance
- */
-interface LoggerAwareInterface
-{
-    /**
-     * Sets a logger instance on the object
-     *
-     * @param LoggerInterface $logger
-     * @return null
-     */
-    public function setLogger(LoggerInterface $logger);
-}
diff --git a/core/vendor/psr/log/Psr/Log/LoggerAwareTrait.php b/core/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
deleted file mode 100644
index f087a3d..0000000
--- a/core/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Basic Implementation of LoggerAwareInterface.
- */
-trait LoggerAwareTrait
-{
-    /** @var LoggerInterface */
-    protected $logger;
-
-    /**
-     * Sets a logger.
-     * 
-     * @param LoggerInterface $logger
-     */
-    public function setLogger(LoggerInterface $logger)
-    {
-        $this->logger = $logger;
-    }
-}
diff --git a/core/vendor/psr/log/Psr/Log/LoggerInterface.php b/core/vendor/psr/log/Psr/Log/LoggerInterface.php
deleted file mode 100644
index 476bb96..0000000
--- a/core/vendor/psr/log/Psr/Log/LoggerInterface.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes a logger instance
- *
- * The message MUST be a string or object implementing __toString().
- *
- * The message MAY contain placeholders in the form: {foo} where foo
- * will be replaced by the context data in key "foo".
- *
- * The context array can contain arbitrary data, the only assumption that
- * can be made by implementors is that if an Exception instance is given
- * to produce a stack trace, it MUST be in a key named "exception".
- *
- * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
- * for the full interface specification.
- */
-interface LoggerInterface
-{
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function emergency($message, array $context = array());
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function alert($message, array $context = array());
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function critical($message, array $context = array());
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function error($message, array $context = array());
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function warning($message, array $context = array());
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function notice($message, array $context = array());
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function info($message, array $context = array());
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function debug($message, array $context = array());
-
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed $level
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function log($level, $message, array $context = array());
-}
diff --git a/core/vendor/psr/log/Psr/Log/LoggerTrait.php b/core/vendor/psr/log/Psr/Log/LoggerTrait.php
deleted file mode 100644
index 5912496..0000000
--- a/core/vendor/psr/log/Psr/Log/LoggerTrait.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This is a simple Logger trait that classes unable to extend AbstractLogger
- * (because they extend another class, etc) can include.
- *
- * It simply delegates all log-level-specific methods to the `log` method to 
- * reduce boilerplate code that a simple Logger that does the same thing with 
- * messages regardless of the error level has to implement.
- */
-trait LoggerTrait
-{
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function emergency($message, array $context = array())
-    {
-        $this->log(LogLevel::EMERGENCY, $message, $context);
-    }
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function alert($message, array $context = array())
-    {
-        $this->log(LogLevel::ALERT, $message, $context);
-    }
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function critical($message, array $context = array())
-    {
-        $this->log(LogLevel::CRITICAL, $message, $context);
-    }
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function error($message, array $context = array())
-    {
-        $this->log(LogLevel::ERROR, $message, $context);
-    }
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function warning($message, array $context = array())
-    {
-        $this->log(LogLevel::WARNING, $message, $context);
-    }
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function notice($message, array $context = array())
-    {
-        $this->log(LogLevel::NOTICE, $message, $context);
-    }
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function info($message, array $context = array())
-    {
-        $this->log(LogLevel::INFO, $message, $context);
-    }
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function debug($message, array $context = array())
-    {
-        $this->log(LogLevel::DEBUG, $message, $context);
-    }
-
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed $level
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    abstract public function log($level, $message, array $context = array());
-}
diff --git a/core/vendor/psr/log/Psr/Log/NullLogger.php b/core/vendor/psr/log/Psr/Log/NullLogger.php
deleted file mode 100644
index 553a3c5..0000000
--- a/core/vendor/psr/log/Psr/Log/NullLogger.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This Logger can be used to avoid conditional log calls
- *
- * Logging should always be optional, and if no logger is provided to your
- * library creating a NullLogger instance to have something to throw logs at
- * is a good way to avoid littering your code with `if ($this->logger) { }`
- * blocks.
- */
-class NullLogger extends AbstractLogger
-{
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed $level
-     * @param string $message
-     * @param array $context
-     * @return null
-     */
-    public function log($level, $message, array $context = array())
-    {
-        // noop
-    }
-}
diff --git a/core/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/core/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
deleted file mode 100644
index a932815..0000000
--- a/core/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-namespace Psr\Log\Test;
-
-use Psr\Log\LogLevel;
-
-/**
- * Provides a base test class for ensuring compliance with the LoggerInterface
- *
- * Implementors can extend the class and implement abstract methods to run this as part of their test suite
- */
-abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @return LoggerInterface
-     */
-    abstract function getLogger();
-
-    /**
-     * This must return the log messages in order with a simple formatting: "<LOG LEVEL> <MESSAGE>"
-     *
-     * Example ->error('Foo') would yield "error Foo"
-     *
-     * @return string[]
-     */
-    abstract function getLogs();
-
-    public function testImplements()
-    {
-        $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
-    }
-
-    /**
-     * @dataProvider provideLevelsAndMessages
-     */
-    public function testLogsAtAllLevels($level, $message)
-    {
-        $logger = $this->getLogger();
-        $logger->{$level}($message, array('user' => 'Bob'));
-        $logger->log($level, $message, array('user' => 'Bob'));
-
-        $expected = array(
-            $level.' message of level '.$level.' with context: Bob',
-            $level.' message of level '.$level.' with context: Bob',
-        );
-        $this->assertEquals($expected, $this->getLogs());
-    }
-
-    public function provideLevelsAndMessages()
-    {
-        return array(
-            LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
-            LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
-            LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
-            LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
-            LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
-            LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
-            LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
-            LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
-        );
-    }
-
-    /**
-     * @expectedException Psr\Log\InvalidArgumentException
-     */
-    public function testThrowsOnInvalidLevel()
-    {
-        $logger = $this->getLogger();
-        $logger->log('invalid level', 'Foo');
-    }
-
-    public function testContextReplacement()
-    {
-        $logger = $this->getLogger();
-        $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
-
-        $expected = array('info {Message {nothing} Bob Bar a}');
-        $this->assertEquals($expected, $this->getLogs());
-    }
-
-    public function testObjectCastToString()
-    {
-        $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
-        $dummy->expects($this->once())
-            ->method('__toString')
-            ->will($this->returnValue('DUMMY'));
-
-        $this->getLogger()->warning($dummy);
-    }
-
-    public function testContextCanContainAnything()
-    {
-        $context = array(
-            'bool' => true,
-            'null' => null,
-            'string' => 'Foo',
-            'int' => 0,
-            'float' => 0.5,
-            'nested' => array('with object' => new DummyTest),
-            'object' => new \DateTime,
-            'resource' => fopen('php://memory', 'r'),
-        );
-
-        $this->getLogger()->warning('Crazy context data', $context);
-    }
-
-    public function testContextExceptionKeyCanBeExceptionOrOtherValues()
-    {
-        $this->getLogger()->warning('Random message', array('exception' => 'oops'));
-        $this->getLogger()->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
-    }
-}
-
-class DummyTest
-{
-}
\ No newline at end of file
diff --git a/core/vendor/psr/log/README.md b/core/vendor/psr/log/README.md
deleted file mode 100644
index 574bc1c..0000000
--- a/core/vendor/psr/log/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-PSR Log
-=======
-
-This repository holds all interfaces/classes/traits related to
-[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).
-
-Note that this is not a logger of its own. It is merely an interface that
-describes a logger. See the specification for more details.
-
-Usage
------
-
-If you need a logger, you can use the interface like this:
-
-```php
-<?php
-
-use Psr\Log\LoggerInterface;
-
-class Foo
-{
-    private $logger;
-
-    public function __construct(LoggerInterface $logger = null)
-    {
-        $this->logger = $logger;
-    }
-
-    public function doSomething()
-    {
-        if ($this->logger) {
-            $this->logger->info('Doing work');
-        }
-
-        // do something useful
-    }
-}
-```
-
-You can then pick one of the implementations of the interface to get a logger.
-
-If you want to implement the interface, you can require this package and
-implement `Psr\Log\LoggerInterface` in your code. Please read the
-[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
-for details.
diff --git a/core/vendor/psr/log/composer.json b/core/vendor/psr/log/composer.json
deleted file mode 100644
index 6bdcc21..0000000
--- a/core/vendor/psr/log/composer.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-    "name": "psr/log",
-    "description": "Common interface for logging libraries",
-    "keywords": ["psr", "psr-3", "log"],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "PHP-FIG",
-            "homepage": "http://www.php-fig.org/"
-        }
-    ],
-    "autoload": {
-        "psr-0": {
-            "Psr\\Log\\": ""
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/.gitignore b/core/vendor/sebastian/comparator/.gitignore
deleted file mode 100644
index c2990fc..0000000
--- a/core/vendor/sebastian/comparator/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-/build/coverage
-/composer.lock
-/composer.phar
-/phpunit.xml
-/.idea
-/vendor
diff --git a/core/vendor/sebastian/comparator/.travis.yml b/core/vendor/sebastian/comparator/.travis.yml
deleted file mode 100644
index 7a2b577..0000000
--- a/core/vendor/sebastian/comparator/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-language: php
-
-install:
-  - travis_retry composer install --no-interaction --prefer-source
-
-script: ./vendor/bin/phpunit --configuration ./build/travis-ci.xml
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-notifications:
-  email: false
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/6668f52f3dd4e3f81960
-    on_success: always
-    on_failure: always
-    on_start: false
diff --git a/core/vendor/sebastian/comparator/LICENSE b/core/vendor/sebastian/comparator/LICENSE
deleted file mode 100644
index 334b637..0000000
--- a/core/vendor/sebastian/comparator/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Comparator
-
-Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/comparator/README.md b/core/vendor/sebastian/comparator/README.md
deleted file mode 100644
index 3921493..0000000
--- a/core/vendor/sebastian/comparator/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-[![Build Status](https://travis-ci.org/sebastianbergmann/comparator.svg?branch=master)](https://travis-ci.org/sebastianbergmann/comparator)
-
-# Comparator
-
-This component provides the functionality to compare PHP values for equality.
-
-## Usage
-
-```php
-<?php
-use SebastianBergmann\Comparator\Factory;
-use SebastianBergmann\Comparator\ComparisonFailure;
-
-$date1 = new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York'));
-$date2 = new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago'));
-
-$factory = new Factory;
-$comparator = $factory->getComparatorFor($date1, $date2);
-
-try {
-    $comparator->assertEquals($date1, $date2);
-    print "Dates match";
-}
-
-catch (ComparisonFailure $failure) {
-    print "Dates don't match";
-}
-```
-
-## Installation
-
-To add Comparator as a local, per-project dependency to your project, simply add a dependency on `sebastian/comparator` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Comparator 1.0:
-
-    {
-        "require": {
-            "sebastian/comparator": "1.0.*"
-        }
-    }
diff --git a/core/vendor/sebastian/comparator/build.xml b/core/vendor/sebastian/comparator/build.xml
deleted file mode 100644
index 552ebce..0000000
--- a/core/vendor/sebastian/comparator/build.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="comparator">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-
- <target name="phpab" description="Generate autoloader script">
-  <exec executable="phpab">
-   <arg value="--output" />
-   <arg path="tests/autoload.php" />
-   <arg path="tests" />
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/sebastian/comparator/build/travis-ci.xml b/core/vendor/sebastian/comparator/build/travis-ci.xml
deleted file mode 100644
index 751a3bc..0000000
--- a/core/vendor/sebastian/comparator/build/travis-ci.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.2/phpunit.xsd"
-         bootstrap="../tests/bootstrap.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuite name="Comparator">
-    <directory suffix="Test.php">../tests</directory>
-  </testsuite>
-</phpunit>
-
diff --git a/core/vendor/sebastian/comparator/composer.json b/core/vendor/sebastian/comparator/composer.json
deleted file mode 100644
index 6e133e4..0000000
--- a/core/vendor/sebastian/comparator/composer.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    "name": "sebastian/comparator",
-    "description": "Provides the functionality to compare PHP values for equality",
-    "keywords": ["comparator","compare","equality"],
-    "homepage": "http://www.github.com/sebastianbergmann/comparator",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        },
-        {
-            "name": "Jeff Welch",
-            "email": "whatthejeff@gmail.com"
-        },
-        {
-            "name": "Volker Dusch",
-            "email": "github@wallbash.com"
-        },
-        {
-            "name": "Bernhard Schussek",
-            "email": "bschussek@2bepublished.at"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3",
-        "sebastian/diff": "~1.2",
-        "sebastian/exporter": "~1.2"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.4"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.1.x-dev"
-        }
-    }
-}
-
diff --git a/core/vendor/sebastian/comparator/phpunit.xml.dist b/core/vendor/sebastian/comparator/phpunit.xml.dist
deleted file mode 100644
index e1eaf2c..0000000
--- a/core/vendor/sebastian/comparator/phpunit.xml.dist
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         bootstrap="tests/bootstrap.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuite name="Comparator">
-    <directory suffix="Test.php">tests</directory>
-  </testsuite>
-
-  <logging>
-    <log type="coverage-html" target="build/coverage"/>
-  </logging>
-
-  <filter>
-    <whitelist processUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
-
diff --git a/core/vendor/sebastian/comparator/src/ArrayComparator.php b/core/vendor/sebastian/comparator/src/ArrayComparator.php
deleted file mode 100644
index 17a3c85..0000000
--- a/core/vendor/sebastian/comparator/src/ArrayComparator.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares arrays for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ArrayComparator extends Comparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return is_array($expected) && is_array($actual);
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @param  array $processed
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array())
-    {
-        if ($canonicalize) {
-            sort($expected);
-            sort($actual);
-        }
-
-        $remaining = $actual;
-        $expString = $actString = "Array (\n";
-        $equal     = true;
-
-        foreach ($expected as $key => $value) {
-            unset($remaining[$key]);
-
-            if (!array_key_exists($key, $actual)) {
-                $expString .= sprintf(
-                    "    %s => %s\n",
-                    $this->exporter->export($key),
-                    $this->exporter->shortenedExport($value)
-                );
-
-                $equal = false;
-
-                continue;
-            }
-
-            try {
-                $comparator = $this->factory->getComparatorFor($value, $actual[$key]);
-                $comparator->assertEquals($value, $actual[$key], $delta, $canonicalize, $ignoreCase, $processed);
-
-                $expString .= sprintf(
-                    "    %s => %s\n",
-                    $this->exporter->export($key),
-                    $this->exporter->shortenedExport($value)
-                );
-                $actString .= sprintf(
-                    "    %s => %s\n",
-                    $this->exporter->export($key),
-                    $this->exporter->shortenedExport($actual[$key])
-                );
-            } catch (ComparisonFailure $e) {
-                $expString .= sprintf(
-                    "    %s => %s\n",
-                    $this->exporter->export($key),
-                    $e->getExpectedAsString()
-                    ? $this->indent($e->getExpectedAsString())
-                    : $this->exporter->shortenedExport($e->getExpected())
-                );
-
-                $actString .= sprintf(
-                    "    %s => %s\n",
-                    $this->exporter->export($key),
-                    $e->getActualAsString()
-                    ? $this->indent($e->getActualAsString())
-                    : $this->exporter->shortenedExport($e->getActual())
-                );
-
-                $equal = false;
-            }
-        }
-
-        foreach ($remaining as $key => $value) {
-            $actString .= sprintf(
-                "    %s => %s\n",
-                $this->exporter->export($key),
-                $this->exporter->shortenedExport($value)
-            );
-
-            $equal = false;
-        }
-
-        $expString .= ')';
-        $actString .= ')';
-
-        if (!$equal) {
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                $expString,
-                $actString,
-                false,
-                'Failed asserting that two arrays are equal.'
-            );
-        }
-    }
-
-    protected function indent($lines)
-    {
-        return trim(str_replace("\n", "\n    ", $lines));
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/Comparator.php b/core/vendor/sebastian/comparator/src/Comparator.php
deleted file mode 100644
index 75e8b01..0000000
--- a/core/vendor/sebastian/comparator/src/Comparator.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use SebastianBergmann\Exporter\Exporter;
-
-/**
- * Abstract base class for comparators which compare values for equality.
- *
- * @package    Comparator
- * @subpackage Framework
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-abstract class Comparator
-{
-    /**
-     * @var Factory
-     */
-    protected $factory;
-
-    /**
-     * @var Exporter
-     */
-    protected $exporter;
-
-    public function __construct()
-    {
-        $this->exporter = new Exporter;
-    }
-
-    /**
-     * @param Factory $factory
-     */
-    public function setFactory(Factory $factory)
-    {
-        $this->factory = $factory;
-    }
-
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    abstract public function accepts($expected, $actual);
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    abstract public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false);
-}
diff --git a/core/vendor/sebastian/comparator/src/ComparisonFailure.php b/core/vendor/sebastian/comparator/src/ComparisonFailure.php
deleted file mode 100644
index a75815d..0000000
--- a/core/vendor/sebastian/comparator/src/ComparisonFailure.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use SebastianBergmann\Diff\Differ;
-
-/**
- * Thrown when an assertion for string equality failed.
- *
- * @package    Comparator
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ComparisonFailure extends \RuntimeException
-{
-    /**
-     * Expected value of the retrieval which does not match $actual.
-     * @var mixed
-     */
-    protected $expected;
-
-    /**
-     * Actually retrieved value which does not match $expected.
-     * @var mixed
-     */
-    protected $actual;
-
-    /**
-     * The string representation of the expected value
-     * @var string
-     */
-    protected $expectedAsString;
-
-    /**
-     * The string representation of the actual value
-     * @var string
-     */
-    protected $actualAsString;
-
-    /**
-     * @var boolean
-     */
-    protected $identical;
-
-    /**
-     * Optional message which is placed in front of the first line
-     * returned by toString().
-     * @var string
-     */
-    protected $message;
-
-    /**
-     * Initialises with the expected value and the actual value.
-     *
-     * @param mixed $expected Expected value retrieved.
-     * @param mixed $actual Actual value retrieved.
-     * @param string $expectedAsString
-     * @param string $actualAsString
-     * @param boolean $identical
-     * @param string $message A string which is prefixed on all returned lines
-     *                        in the difference output.
-     */
-    public function __construct($expected, $actual, $expectedAsString, $actualAsString, $identical = false, $message = '')
-    {
-        $this->expected         = $expected;
-        $this->actual           = $actual;
-        $this->expectedAsString = $expectedAsString;
-        $this->actualAsString   = $actualAsString;
-        $this->message          = $message;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getActual()
-    {
-        return $this->actual;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getExpected()
-    {
-        return $this->expected;
-    }
-
-    /**
-     * @return string
-     */
-    public function getActualAsString()
-    {
-        return $this->actualAsString;
-    }
-
-    /**
-     * @return string
-     */
-    public function getExpectedAsString()
-    {
-        return $this->expectedAsString;
-    }
-
-    /**
-     * @return string
-     */
-    public function getDiff()
-    {
-        if (!$this->actualAsString && !$this->expectedAsString) {
-            return '';
-        }
-
-        $differ = new Differ("\n--- Expected\n+++ Actual\n");
-
-        return $differ->diff($this->expectedAsString, $this->actualAsString);
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        return $this->message . $this->getDiff();
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/DOMNodeComparator.php b/core/vendor/sebastian/comparator/src/DOMNodeComparator.php
deleted file mode 100644
index c76d1c7..0000000
--- a/core/vendor/sebastian/comparator/src/DOMNodeComparator.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use DOMDocument;
-use DOMNode;
-
-/**
- * Compares DOMNode instances for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class DOMNodeComparator extends ObjectComparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return $expected instanceof DOMNode && $actual instanceof DOMNode;
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        $expectedAsString = $this->nodeToText($expected, true, $ignoreCase);
-        $actualAsString   = $this->nodeToText($actual, true, $ignoreCase);
-
-        if ($expectedAsString !== $actualAsString) {
-            if ($expected instanceof DOMDocument) {
-                $type = 'documents';
-            } else {
-                $type = 'nodes';
-            }
-
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                $expectedAsString,
-                $actualAsString,
-                false,
-                sprintf("Failed asserting that two DOM %s are equal.\n", $type)
-            );
-        }
-    }
-
-    /**
-     * Returns the normalized, whitespace-cleaned, and indented textual
-     * representation of a DOMNode.
-     *
-     * @param  DOMNode $node
-     * @param  boolean $canonicalize
-     * @param  boolean $ignoreCase
-     * @return string
-     */
-    private function nodeToText(DOMNode $node, $canonicalize, $ignoreCase)
-    {
-        if ($canonicalize) {
-            $document = new DOMDocument;
-            $document->loadXML($node->C14N());
-
-            $node = $document;
-        }
-
-        if ($node instanceof DOMDocument) {
-            $document = $node;
-        } else {
-            $document = $node->ownerDocument;
-        }
-
-        $document->formatOutput = true;
-        $document->normalizeDocument();
-
-        if ($node instanceof DOMDocument) {
-            $text = $node->saveXML();
-        } else {
-            $text = $document->saveXML($node);
-        }
-
-        if ($ignoreCase) {
-            $text = strtolower($text);
-        }
-
-        return $text;
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/DateTimeComparator.php b/core/vendor/sebastian/comparator/src/DateTimeComparator.php
deleted file mode 100644
index 65a7744..0000000
--- a/core/vendor/sebastian/comparator/src/DateTimeComparator.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares DateTime instances for equality.
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class DateTimeComparator extends ObjectComparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return $expected instanceof \DateTime && $actual instanceof \DateTime;
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        $delta = new \DateInterval(sprintf('PT%sS', abs($delta)));
-
-        $expectedLower = clone $expected;
-        $expectedUpper = clone $expected;
-
-        if ($actual < $expectedLower->sub($delta) ||
-            $actual > $expectedUpper->add($delta)) {
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                $this->dateTimeToString($expected),
-                $this->dateTimeToString($actual),
-                false,
-                'Failed asserting that two DateTime objects are equal.'
-            );
-        }
-    }
-
-    /**
-     * Returns an ISO 8601 formatted string representation of a datetime or
-     * 'Invalid DateTime object' if the provided DateTime was not properly
-     * initialized.
-     *
-     * @param \DateTime $datetime
-     * @return string
-     */
-    protected function dateTimeToString(\DateTime $datetime)
-    {
-        $string = $datetime->format(\DateTime::ISO8601);
-
-        return $string ? $string : 'Invalid DateTime object';
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/DoubleComparator.php b/core/vendor/sebastian/comparator/src/DoubleComparator.php
deleted file mode 100644
index 76dd3a2..0000000
--- a/core/vendor/sebastian/comparator/src/DoubleComparator.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares doubles for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class DoubleComparator extends NumericComparator
-{
-    /**
-     * Smallest value available in PHP.
-     *
-     * @var float
-     */
-    const EPSILON = 0.0000000001;
-
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return (is_double($expected) || is_double($actual)) && is_numeric($expected) && is_numeric($actual);
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        if ($delta == 0) {
-            $delta = self::EPSILON;
-        }
-
-        parent::assertEquals($expected, $actual, $delta, $canonicalize, $ignoreCase);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/ExceptionComparator.php b/core/vendor/sebastian/comparator/src/ExceptionComparator.php
deleted file mode 100644
index 9da557b..0000000
--- a/core/vendor/sebastian/comparator/src/ExceptionComparator.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares Exception instances for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ExceptionComparator extends ObjectComparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return $expected instanceof \Exception && $actual instanceof \Exception;
-    }
-
-    /**
-     * Converts an object to an array containing all of its private, protected
-     * and public properties.
-     *
-     * @param  object $object
-     * @return array
-     */
-    protected function toArray($object)
-    {
-        $array = parent::toArray($object);
-
-        unset(
-            $array['file'],
-            $array['line'],
-            $array['trace'],
-            $array['string'],
-            $array['xdebug_message']
-        );
-
-        return $array;
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/Factory.php b/core/vendor/sebastian/comparator/src/Factory.php
deleted file mode 100644
index d841ef2..0000000
--- a/core/vendor/sebastian/comparator/src/Factory.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Factory for comparators which compare values for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class Factory
-{
-    /**
-     * @var Comparator[]
-     */
-    private $comparators = array();
-
-    /**
-     * @var Factory
-     */
-    private static $instance;
-
-    /**
-     * Constructs a new factory.
-     */
-    public function __construct()
-    {
-        $this->register(new TypeComparator);
-        $this->register(new ScalarComparator);
-        $this->register(new NumericComparator);
-        $this->register(new DoubleComparator);
-        $this->register(new ArrayComparator);
-        $this->register(new ResourceComparator);
-        $this->register(new ObjectComparator);
-        $this->register(new ExceptionComparator);
-        $this->register(new SplObjectStorageComparator);
-        $this->register(new DOMNodeComparator);
-        $this->register(new MockObjectComparator);
-        $this->register(new DateTimeComparator);
-    }
-
-    /**
-     * @return Factory
-     */
-    public static function getInstance()
-    {
-        if (self::$instance === null) {
-            self::$instance = new Factory;
-        }
-
-        return self::$instance;
-    }
-
-    /**
-     * Returns the correct comparator for comparing two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return Comparator
-     */
-    public function getComparatorFor($expected, $actual)
-    {
-        foreach ($this->comparators as $comparator) {
-            if ($comparator->accepts($expected, $actual)) {
-                return $comparator;
-            }
-        }
-    }
-
-    /**
-     * Registers a new comparator.
-     *
-     * This comparator will be returned by getInstance() if its accept() method
-     * returns TRUE for the compared values. It has higher priority than the
-     * existing comparators, meaning that its accept() method will be tested
-     * before those of the other comparators.
-     *
-     * @param Comparator $comparator The registered comparator
-     */
-    public function register(Comparator $comparator)
-    {
-        array_unshift($this->comparators, $comparator);
-
-        $comparator->setFactory($this);
-    }
-
-    /**
-     * Unregisters a comparator.
-     *
-     * This comparator will no longer be returned by getInstance().
-     *
-     * @param Comparator $comparator The unregistered comparator
-     */
-    public function unregister(Comparator $comparator)
-    {
-        foreach ($this->comparators as $key => $_comparator) {
-            if ($comparator === $_comparator) {
-                unset($this->comparators[$key]);
-            }
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/MockObjectComparator.php b/core/vendor/sebastian/comparator/src/MockObjectComparator.php
deleted file mode 100644
index ecd275e..0000000
--- a/core/vendor/sebastian/comparator/src/MockObjectComparator.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares PHPUnit_Framework_MockObject_MockObject instances for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class MockObjectComparator extends ObjectComparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed   $expected The first value to compare
-     * @param  mixed   $actual   The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return $expected instanceof \PHPUnit_Framework_MockObject_MockObject && $actual instanceof \PHPUnit_Framework_MockObject_MockObject;
-    }
-
-    /**
-     * Converts an object to an array containing all of its private, protected
-     * and public properties.
-     *
-     * @param  object $object
-     * @return array
-     */
-    protected function toArray($object)
-    {
-        $array = parent::toArray($object);
-
-        unset($array['__phpunit_invocationMocker']);
-
-        return $array;
-    }
-}
\ No newline at end of file
diff --git a/core/vendor/sebastian/comparator/src/NumericComparator.php b/core/vendor/sebastian/comparator/src/NumericComparator.php
deleted file mode 100644
index a3453a9..0000000
--- a/core/vendor/sebastian/comparator/src/NumericComparator.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares numerical values for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @author     Alexander <iam.asm89@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class NumericComparator extends ScalarComparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        // all numerical values, but not if one of them is a double
-        // or both of them are strings
-        return is_numeric($expected) && is_numeric($actual) &&
-               !(is_double($expected) || is_double($actual)) &&
-               !(is_string($expected) && is_string($actual));
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        if (is_infinite($actual) && is_infinite($expected)) {
-            return;
-        }
-
-        if ((is_infinite($actual) xor is_infinite($expected)) ||
-            (is_nan($actual) or is_nan($expected)) ||
-            abs($actual - $expected) > $delta) {
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                '',
-                '',
-                false,
-                sprintf(
-                    'Failed asserting that %s matches expected %s.',
-                    $this->exporter->export($actual),
-                    $this->exporter->export($expected)
-                )
-            );
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/ObjectComparator.php b/core/vendor/sebastian/comparator/src/ObjectComparator.php
deleted file mode 100644
index 44375d9..0000000
--- a/core/vendor/sebastian/comparator/src/ObjectComparator.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares objects for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ObjectComparator extends ArrayComparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return is_object($expected) && is_object($actual);
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @param  array $processed
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array())
-    {
-        if (get_class($actual) !== get_class($expected)) {
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                $this->exporter->export($expected),
-                $this->exporter->export($actual),
-                false,
-                sprintf(
-                    '%s is not instance of expected class "%s".',
-                    $this->exporter->export($actual),
-                    get_class($expected)
-                )
-            );
-        }
-
-        // don't compare twice to allow for cyclic dependencies
-        if (in_array(array($actual, $expected), $processed, true) ||
-            in_array(array($expected, $actual), $processed, true)) {
-            return;
-        }
-
-        $processed[] = array($actual, $expected);
-
-        // don't compare objects if they are identical
-        // this helps to avoid the error "maximum function nesting level reached"
-        // CAUTION: this conditional clause is not tested
-        if ($actual !== $expected) {
-            try {
-                parent::assertEquals(
-                    $this->toArray($expected),
-                    $this->toArray($actual),
-                    $delta,
-                    $canonicalize,
-                    $ignoreCase,
-                    $processed
-                );
-            } catch (ComparisonFailure $e) {
-                throw new ComparisonFailure(
-                    $expected,
-                    $actual,
-                    // replace "Array" with "MyClass object"
-                    substr_replace($e->getExpectedAsString(), get_class($expected) . ' Object', 0, 5),
-                    substr_replace($e->getActualAsString(), get_class($actual) . ' Object', 0, 5),
-                    false,
-                    'Failed asserting that two objects are equal.'
-                );
-            }
-        }
-    }
-
-    /**
-     * Converts an object to an array containing all of its private, protected
-     * and public properties.
-     *
-     * @param  object $object
-     * @return array
-     */
-    protected function toArray($object)
-    {
-        return $this->exporter->toArray($object);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/ResourceComparator.php b/core/vendor/sebastian/comparator/src/ResourceComparator.php
deleted file mode 100644
index 043a4ce..0000000
--- a/core/vendor/sebastian/comparator/src/ResourceComparator.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares resources for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ResourceComparator extends Comparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return is_resource($expected) && is_resource($actual);
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        if ($actual != $expected) {
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                $this->exporter->export($expected),
-                $this->exporter->export($actual)
-            );
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/ScalarComparator.php b/core/vendor/sebastian/comparator/src/ScalarComparator.php
deleted file mode 100644
index 7de108e..0000000
--- a/core/vendor/sebastian/comparator/src/ScalarComparator.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares scalar or NULL values for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ScalarComparator extends Comparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     * @since  Method available since Release 3.6.0
-     */
-    public function accepts($expected, $actual)
-    {
-        return ((is_scalar($expected) xor null === $expected) &&
-               (is_scalar($actual) xor null === $actual))
-               // allow comparison between strings and objects featuring __toString()
-               || (is_string($expected) && is_object($actual) && method_exists($actual, '__toString'))
-               || (is_object($expected) && method_exists($expected, '__toString') && is_string($actual));
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        $expectedToCompare = $expected;
-        $actualToCompare = $actual;
-
-        // always compare as strings to avoid strange behaviour
-        // otherwise 0 == 'Foobar'
-        if (is_string($expected) || is_string($actual)) {
-            $expectedToCompare = (string)$expectedToCompare;
-            $actualToCompare = (string)$actualToCompare;
-
-            if ($ignoreCase) {
-                $expectedToCompare = strtolower($expectedToCompare);
-                $actualToCompare = strtolower($actualToCompare);
-            }
-        }
-
-        if ($expectedToCompare != $actualToCompare) {
-            if (is_string($expected) && is_string($actual)) {
-                throw new ComparisonFailure(
-                    $expected,
-                    $actual,
-                    $this->exporter->export($expected),
-                    $this->exporter->export($actual),
-                    false,
-                    'Failed asserting that two strings are equal.'
-                );
-            }
-
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                // no diff is required
-                '',
-                '',
-                false,
-                sprintf(
-                    'Failed asserting that %s matches expected %s.',
-                    $this->exporter->export($actual),
-                    $this->exporter->export($expected)
-                )
-            );
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php b/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php
deleted file mode 100644
index 5de7dac..0000000
--- a/core/vendor/sebastian/comparator/src/SplObjectStorageComparator.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares \SplObjectStorage instances for equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class SplObjectStorageComparator extends Comparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return $expected instanceof \SplObjectStorage && $actual instanceof \SplObjectStorage;
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        foreach ($actual as $object) {
-            if (!$expected->contains($object)) {
-                throw new ComparisonFailure(
-                    $expected,
-                    $actual,
-                    $this->exporter->export($expected),
-                    $this->exporter->export($actual),
-                    false,
-                    'Failed asserting that two objects are equal.'
-                );
-            }
-        }
-
-        foreach ($expected as $object) {
-            if (!$actual->contains($object)) {
-                throw new ComparisonFailure(
-                    $expected,
-                    $actual,
-                    $this->exporter->export($expected),
-                    $this->exporter->export($actual),
-                    false,
-                    'Failed asserting that two objects are equal.'
-                );
-            }
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/src/TypeComparator.php b/core/vendor/sebastian/comparator/src/TypeComparator.php
deleted file mode 100644
index 27a9581..0000000
--- a/core/vendor/sebastian/comparator/src/TypeComparator.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * Compares values for type equality.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class TypeComparator extends Comparator
-{
-    /**
-     * Returns whether the comparator can compare two values.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @return boolean
-     */
-    public function accepts($expected, $actual)
-    {
-        return true;
-    }
-
-    /**
-     * Asserts that two values are equal.
-     *
-     * @param  mixed $expected The first value to compare
-     * @param  mixed $actual The second value to compare
-     * @param  float $delta The allowed numerical distance between two values to
-     *                      consider them equal
-     * @param  bool  $canonicalize If set to TRUE, arrays are sorted before
-     *                             comparison
-     * @param  bool  $ignoreCase If set to TRUE, upper- and lowercasing is
-     *                           ignored when comparing string values
-     * @throws ComparisonFailure Thrown when the comparison
-     *                           fails. Contains information about the
-     *                           specific errors that lead to the failure.
-     */
-    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
-    {
-        if (gettype($expected) != gettype($actual)) {
-            throw new ComparisonFailure(
-                $expected,
-                $actual,
-                // we don't need a diff
-                '',
-                '',
-                false,
-                sprintf(
-                    '%s does not match expected type "%s".',
-                    $this->exporter->shortenedExport($actual),
-                    gettype($expected)
-                )
-            );
-        }
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php b/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php
deleted file mode 100644
index 1874e71..0000000
--- a/core/vendor/sebastian/comparator/tests/ArrayComparatorTest.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\ArrayComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ArrayComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new ArrayComparator;
-        $this->comparator->setFactory(new Factory);
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array(array(), null),
-          array(null, array()),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array(
-            array('a' => 1, 'b' => 2),
-            array('b' => 2, 'a' => 1)
-          ),
-          array(
-            array(1),
-            array('1')
-          ),
-          array(
-            array(3, 2, 1),
-            array(2, 3, 1),
-            0,
-            true
-          ),
-          array(
-            array(2.3),
-            array(2.5),
-            0.5
-          ),
-          array(
-            array(array(2.3)),
-            array(array(2.5)),
-            0.5
-          ),
-          array(
-            array(new Struct(2.3)),
-            array(new Struct(2.5)),
-            0.5
-          ),
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        return array(
-          array(
-            array(),
-            array(0 => 1)
-          ),
-          array(
-            array(0 => 1),
-            array()
-          ),
-          array(
-            array(0 => null),
-            array()
-          ),
-          array(
-            array(0 => 1, 1 => 2),
-            array(0 => 1, 1 => 3)
-          ),
-          array(
-            array('a', 'b' => array(1, 2)),
-            array('a', 'b' => array(2, 1))
-          ),
-          array(
-            array(2.3),
-            array(4.2),
-            0.5
-          ),
-          array(
-            array(array(2.3)),
-            array(array(4.2)),
-            0.5
-          ),
-          array(
-            array(new Struct(2.3)),
-            array(new Struct(4.2)),
-            0.5
-          )
-        );
-    }
-
-    /**
-     * @covers  ::accepts
-     */
-    public function testAcceptsSucceeds()
-    {
-        $this->assertTrue(
-          $this->comparator->accepts(array(), array())
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0, $canonicalize = false)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, $delta, $canonicalize);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual,$delta = 0.0, $canonicalize = false)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure',
-          'Failed asserting that two arrays are equal'
-        );
-        $this->comparator->assertEquals($expected, $actual, $delta, $canonicalize);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php b/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php
deleted file mode 100644
index 7bad48c..0000000
--- a/core/vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use DOMNode;
-use DOMDocument;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\DOMNodeComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class DOMNodeComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new DOMNodeComparator;
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        $document = new DOMDocument;
-        $node = new DOMNode;
-
-        return array(
-          array($document, $document),
-          array($node, $node),
-          array($document, $node),
-          array($node, $document)
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        $document = new DOMDocument;
-
-        return array(
-          array($document, null),
-          array(null, $document),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array(
-            $this->createDOMDocument('<root></root>'),
-            $this->createDOMDocument('<root/>')
-          ),
-          array(
-            $this->createDOMDocument('<root attr="bar"></root>'),
-            $this->createDOMDocument('<root attr="bar"/>')
-          ),
-          array(
-            $this->createDOMDocument('<root><foo attr="bar"></foo></root>'),
-            $this->createDOMDocument('<root><foo attr="bar"/></root>')
-          ),
-          array(
-            $this->createDOMDocument("<root>\n  <child/>\n</root>"),
-            $this->createDOMDocument('<root><child/></root>')
-          ),
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        return array(
-          array(
-            $this->createDOMDocument('<root></root>'),
-            $this->createDOMDocument('<bar/>')
-          ),
-          array(
-            $this->createDOMDocument('<foo attr1="bar"/>'),
-            $this->createDOMDocument('<foo attr1="foobar"/>')
-          ),
-          array(
-            $this->createDOMDocument('<foo> bar </foo>'),
-            $this->createDOMDocument('<foo />')
-          ),
-          array(
-            $this->createDOMDocument('<foo xmlns="urn:myns:bar"/>'),
-            $this->createDOMDocument('<foo xmlns="urn:notmyns:bar"/>')
-          ),
-          array(
-            $this->createDOMDocument('<foo> bar </foo>'),
-            $this->createDOMDocument('<foo> bir </foo>')
-          )
-        );
-    }
-
-    private function createDOMDocument($content)
-    {
-        $document = new DOMDocument;
-        $document->preserveWhiteSpace = false;
-        $document->loadXML($content);
-
-        return $document;
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure',
-          'Failed asserting that two DOM'
-        );
-        $this->comparator->assertEquals($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php b/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php
deleted file mode 100644
index 22672ab..0000000
--- a/core/vendor/sebastian/comparator/tests/DateTimeComparatorTest.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use DateTime;
-use DateTimeZone;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\DateTimeComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class DateTimeComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new DateTimeComparator;
-    }
-
-    public function acceptsFailsProvider()
-    {
-        $datetime = new DateTime;
-
-        return array(
-          array($datetime, null),
-          array(null, $datetime),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York'))
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 04:13:25', new DateTimeZone('America/New_York')),
-            10
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 04:14:40', new DateTimeZone('America/New_York')),
-            65
-          ),
-          array(
-            new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29', new DateTimeZone('America/New_York'))
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/Chicago'))
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 03:13:49', new DateTimeZone('America/Chicago')),
-            15
-          ),
-          array(
-            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago'))
-          ),
-          array(
-            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 23:01:30', new DateTimeZone('America/Chicago')),
-            100
-          ),
-          array(
-            new DateTime('@1364616000'),
-            new DateTime('2013-03-29 23:00:00', new DateTimeZone('America/Chicago'))
-          ),
-          array(
-            new DateTime('2013-03-29T05:13:35-0500'),
-            new DateTime('2013-03-29T04:13:35-0600')
-          )
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        return array(
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York'))
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 03:13:35', new DateTimeZone('America/New_York')),
-            3500
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 05:13:35', new DateTimeZone('America/New_York')),
-            3500
-          ),
-          array(
-            new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-30', new DateTimeZone('America/New_York'))
-          ),
-          array(
-            new DateTime('2013-03-29', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-            43200
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
-          ),
-          array(
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-29 04:13:35', new DateTimeZone('America/Chicago')),
-            3500
-          ),
-          array(
-            new DateTime('2013-03-30', new DateTimeZone('America/New_York')),
-            new DateTime('2013-03-30', new DateTimeZone('America/Chicago'))
-          ),
-          array(
-            new DateTime('2013-03-29T05:13:35-0600'),
-            new DateTime('2013-03-29T04:13:35-0600')
-          ),
-          array(
-            new DateTime('2013-03-29T05:13:35-0600'),
-            new DateTime('2013-03-29T05:13:35-0500')
-          ),
-        );
-    }
-
-    /**
-     * @covers  ::accepts
-     */
-    public function testAcceptsSucceeds()
-    {
-        $this->assertTrue(
-          $this->comparator->accepts(
-            new DateTime,
-            new DateTime
-          )
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, $delta);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $delta = 0.0)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure',
-          'Failed asserting that two DateTime objects are equal.'
-        );
-        $this->comparator->assertEquals($expected, $actual, $delta);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php b/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php
deleted file mode 100644
index 8c47101..0000000
--- a/core/vendor/sebastian/comparator/tests/DoubleComparatorTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\DoubleComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class DoubleComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new DoubleComparator;
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        return array(
-          array(0, 5.0),
-          array(5.0, 0),
-          array('5', 4.5),
-          array(1.2e3, 7E-10),
-          array(3, acos(8)),
-          array(acos(8), 3),
-          array(acos(8), acos(8))
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array(5, 5),
-          array('4.5', 5),
-          array(0x539, 02471),
-          array(5.0, false),
-          array(null, 5.0)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array(2.3, 2.3),
-          array('2.3', 2.3),
-          array(5.0, 5),
-          array(5, 5.0),
-          array(5.0, '5'),
-          array(1.2e3, 1200),
-          array(2.3, 2.5, 0.5),
-          array(3, 3.05, 0.05),
-          array(1.2e3, 1201, 1),
-          array((string)(1/3), 1 - 2/3),
-          array(1/3, (string)(1 - 2/3))
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        return array(
-          array(2.3, 4.2),
-          array('2.3', 4.2),
-          array(5.0, '4'),
-          array(5.0, 6),
-          array(1.2e3, 1201),
-          array(2.3, 2.5, 0.2),
-          array(3, 3.05, 0.04),
-          array(3, acos(8)),
-          array(acos(8), 3),
-          array(acos(8), acos(8))
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, $delta);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $delta = 0.0)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure', 'matches expected'
-        );
-        $this->comparator->assertEquals($expected, $actual, $delta);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php b/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php
deleted file mode 100644
index 7150285..0000000
--- a/core/vendor/sebastian/comparator/tests/ExceptionComparatorTest.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use \Exception;
-use \RuntimeException;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\ExceptionComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ExceptionComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new ExceptionComparator;
-        $this->comparator->setFactory(new Factory);
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        return array(
-          array(new Exception, new Exception),
-          array(new RuntimeException, new RuntimeException),
-          array(new Exception, new RuntimeException)
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array(new Exception, null),
-          array(null, new Exception),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        $exception1 = new Exception;
-        $exception2 = new Exception;
-
-        $exception3 = new RunTimeException('Error', 100);
-        $exception4 = new RunTimeException('Error', 100);
-
-        return array(
-          array($exception1, $exception1),
-          array($exception1, $exception2),
-          array($exception3, $exception3),
-          array($exception3, $exception4)
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        $typeMessage = 'not instance of expected class';
-        $equalMessage = 'Failed asserting that two objects are equal.';
-
-        $exception1 = new Exception('Error', 100);
-        $exception2 = new Exception('Error', 101);
-        $exception3 = new Exception('Errors', 101);
-
-        $exception4 = new RunTimeException('Error', 100);
-        $exception5 = new RunTimeException('Error', 101);
-
-        return array(
-          array($exception1, $exception2, $equalMessage),
-          array($exception1, $exception3, $equalMessage),
-          array($exception1, $exception4, $typeMessage),
-          array($exception2, $exception3, $equalMessage),
-          array($exception4, $exception5, $equalMessage)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $message)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure', $message
-        );
-        $this->comparator->assertEquals($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/FactoryTest.php b/core/vendor/sebastian/comparator/tests/FactoryTest.php
deleted file mode 100644
index 0964067..0000000
--- a/core/vendor/sebastian/comparator/tests/FactoryTest.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\Factory
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class FactoryTest extends \PHPUnit_Framework_TestCase
-{
-    public function instanceProvider()
-    {
-        $tmpfile = tmpfile();
-
-        return array(
-            array(NULL, NULL, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(NULL, TRUE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(TRUE, NULL, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(TRUE, TRUE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(FALSE, FALSE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(TRUE, FALSE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(FALSE, TRUE, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array('', '', 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array('0', '0', 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array('0', 0, 'SebastianBergmann\\Comparator\\NumericComparator'),
-            array(0, '0', 'SebastianBergmann\\Comparator\\NumericComparator'),
-            array(0, 0, 'SebastianBergmann\\Comparator\\NumericComparator'),
-            array(1.0, 0, 'SebastianBergmann\\Comparator\\DoubleComparator'),
-            array(0, 1.0, 'SebastianBergmann\\Comparator\\DoubleComparator'),
-            array(1.0, 1.0, 'SebastianBergmann\\Comparator\\DoubleComparator'),
-            array(array(1), array(1), 'SebastianBergmann\\Comparator\\ArrayComparator'),
-            array($tmpfile, $tmpfile, 'SebastianBergmann\\Comparator\\ResourceComparator'),
-            array(new \stdClass, new \stdClass, 'SebastianBergmann\\Comparator\\ObjectComparator'),
-            array(new \DateTime, new \DateTime, 'SebastianBergmann\\Comparator\\DateTimeComparator'),
-            array(new \SplObjectStorage, new \SplObjectStorage, 'SebastianBergmann\\Comparator\\SplObjectStorageComparator'),
-            array(new \Exception, new \Exception, 'SebastianBergmann\\Comparator\\ExceptionComparator'),
-            array(new \DOMDocument, new \DOMDocument, 'SebastianBergmann\\Comparator\\DOMNodeComparator'),
-            // mixed types
-            array($tmpfile, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(array(1), $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array($tmpfile, '1', 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array('1', $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array($tmpfile, new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(new \stdClass, $tmpfile, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(new \stdClass, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(array(1), new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(new \stdClass, '1', 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array('1', new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(new ClassWithToString, '1', 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array('1', new ClassWithToString, 'SebastianBergmann\\Comparator\\ScalarComparator'),
-            array(1.0, new \stdClass, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(new \stdClass, 1.0, 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(1.0, array(1), 'SebastianBergmann\\Comparator\\TypeComparator'),
-            array(array(1), 1.0, 'SebastianBergmann\\Comparator\\TypeComparator'),
-        );
-    }
-
-    /**
-     * @dataProvider instanceProvider
-     * @covers       ::getComparatorFor
-     * @covers       ::__construct
-     */
-    public function testGetComparatorFor($a, $b, $expected)
-    {
-        $factory = new Factory;
-        $actual = $factory->getComparatorFor($a, $b);
-        $this->assertInstanceOf($expected, $actual);
-    }
-
-    /**
-     * @covers ::register
-     */
-    public function testRegister()
-    {
-        $comparator = new TestClassComparator;
-
-        $factory = new Factory;
-        $factory->register($comparator);
-
-        $a = new TestClass;
-        $b = new TestClass;
-        $expected = 'SebastianBergmann\\Comparator\\TestClassComparator';
-        $actual = $factory->getComparatorFor($a, $b);
-
-        $factory->unregister($comparator);
-        $this->assertInstanceOf($expected, $actual);
-    }
-
-    /**
-     * @covers ::unregister
-     */
-    public function testUnregister()
-    {
-        $comparator = new TestClassComparator;
-
-        $factory = new Factory;
-        $factory->register($comparator);
-        $factory->unregister($comparator);
-
-        $a = new TestClass;
-        $b = new TestClass;
-        $expected = 'SebastianBergmann\\Comparator\\ObjectComparator';
-        $actual = $factory->getComparatorFor($a, $b);
-
-        $this->assertInstanceOf($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php b/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php
deleted file mode 100644
index 01e0352..0000000
--- a/core/vendor/sebastian/comparator/tests/MockObjectComparatorTest.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\MockObjectComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class MockObjectComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new MockObjectComparator;
-        $this->comparator->setFactory(new Factory);
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        $testmock = $this->getMock('SebastianBergmann\\Comparator\\TestClass');
-        $stdmock = $this->getMock('stdClass');
-
-        return array(
-          array($testmock, $testmock),
-          array($stdmock, $stdmock),
-          array($stdmock, $testmock)
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        $stdmock = $this->getMock('stdClass');
-
-        return array(
-          array($stdmock, null),
-          array(null, $stdmock),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        // cyclic dependencies
-        $book1 = $this->getMock('SebastianBergmann\\Comparator\\Book', null);
-        $book1->author = $this->getMock('SebastianBergmann\\Comparator\\Author', null, array('Terry Pratchett'));
-        $book1->author->books[] = $book1;
-        $book2 = $this->getMock('SebastianBergmann\\Comparator\\Book', null);
-        $book2->author = $this->getMock('SebastianBergmann\\Comparator\\Author', null, array('Terry Pratchett'));
-        $book2->author->books[] = $book2;
-
-        $object1 = $this->getMock('SebastianBergmann\\Comparator\\SampleClass', null, array(4, 8, 15));
-        $object2 = $this->getMock('SebastianBergmann\\Comparator\\SampleClass', null, array(4, 8, 15));
-
-        return array(
-          array($object1, $object1),
-          array($object1, $object2),
-          array($book1, $book1),
-          array($book1, $book2),
-          array(
-            $this->getMock('SebastianBergmann\\Comparator\\Struct', null, array(2.3)),
-            $this->getMock('SebastianBergmann\\Comparator\\Struct', null, array(2.5)),
-            0.5
-          )
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        $typeMessage = 'is not instance of expected class';
-        $equalMessage = 'Failed asserting that two objects are equal.';
-
-        // cyclic dependencies
-        $book1 = $this->getMock('SebastianBergmann\\Comparator\\Book', null);
-        $book1->author = $this->getMock('SebastianBergmann\\Comparator\\Author', null, array('Terry Pratchett'));
-        $book1->author->books[] = $book1;
-        $book2 = $this->getMock('SebastianBergmann\\Comparator\\Book', null);
-        $book2->author = $this->getMock('SebastianBergmann\\Comparator\\Author', null, array('Terry Pratch'));
-        $book2->author->books[] = $book2;
-
-        $book3 = $this->getMock('SebastianBergmann\\Comparator\\Book', null);
-        $book3->author = 'Terry Pratchett';
-        $book4 = $this->getMock('stdClass');
-        $book4->author = 'Terry Pratchett';
-
-        $object1 = $this->getMock('SebastianBergmann\\Comparator\\SampleClass', null, array(4, 8, 15));
-        $object2 = $this->getMock('SebastianBergmann\\Comparator\\SampleClass', null, array(16, 23, 42));
-
-        return array(
-          array(
-            $this->getMock('SebastianBergmann\\Comparator\\SampleClass', null, array(4, 8, 15)),
-            $this->getMock('SebastianBergmann\\Comparator\\SampleClass', null, array(16, 23, 42)),
-            $equalMessage
-          ),
-          array($object1, $object2, $equalMessage),
-          array($book1, $book2, $equalMessage),
-          array($book3, $book4, $typeMessage),
-          array(
-            $this->getMock('SebastianBergmann\\Comparator\\Struct', null, array(2.3)),
-            $this->getMock('SebastianBergmann\\Comparator\\Struct', null, array(4.2)),
-            $equalMessage,
-            0.5
-          )
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, $delta);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $message, $delta = 0.0)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure', $message
-        );
-        $this->comparator->assertEquals($expected, $actual, $delta);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php b/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php
deleted file mode 100644
index cf121d4..0000000
--- a/core/vendor/sebastian/comparator/tests/NumericComparatorTest.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\NumericComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class NumericComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new NumericComparator;
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        return array(
-          array(5, 10),
-          array(8, '0'),
-          array('10', 0),
-          array(0x74c3b00c, 42),
-          array(0755, 0777)
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array('5', '10'),
-          array(8, 5.0),
-          array(5.0, 8),
-          array(10, null),
-          array(false, 12)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array(1337, 1337),
-          array('1337', 1337),
-          array(0x539, 1337),
-          array(02471, 1337),
-          array(1337, 1338, 1),
-          array('1337', 1340, 5),
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        return array(
-          array(1337, 1338),
-          array('1338', 1337),
-          array(0x539, 1338),
-          array(1337, 1339, 1),
-          array('1337', 1340, 2),
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, $delta);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $delta = 0.0)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure', 'matches expected'
-        );
-        $this->comparator->assertEquals($expected, $actual, $delta);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php b/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php
deleted file mode 100644
index b11bbe0..0000000
--- a/core/vendor/sebastian/comparator/tests/ObjectComparatorTest.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use stdClass;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\ObjectComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ObjectComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new ObjectComparator;
-        $this->comparator->setFactory(new Factory);
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        return array(
-          array(new TestClass, new TestClass),
-          array(new stdClass, new stdClass),
-          array(new stdClass, new TestClass)
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array(new stdClass, null),
-          array(null, new stdClass),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        // cyclic dependencies
-        $book1 = new Book;
-        $book1->author = new Author('Terry Pratchett');
-        $book1->author->books[] = $book1;
-        $book2 = new Book;
-        $book2->author = new Author('Terry Pratchett');
-        $book2->author->books[] = $book2;
-
-        $object1 = new SampleClass(4, 8, 15);
-        $object2 = new SampleClass(4, 8, 15);
-
-        return array(
-          array($object1, $object1),
-          array($object1, $object2),
-          array($book1, $book1),
-          array($book1, $book2),
-          array(new Struct(2.3), new Struct(2.5), 0.5)
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        $typeMessage = 'is not instance of expected class';
-        $equalMessage = 'Failed asserting that two objects are equal.';
-
-        // cyclic dependencies
-        $book1 = new Book;
-        $book1->author = new Author('Terry Pratchett');
-        $book1->author->books[] = $book1;
-        $book2 = new Book;
-        $book2->author = new Author('Terry Pratch');
-        $book2->author->books[] = $book2;
-
-        $book3 = new Book;
-        $book3->author = 'Terry Pratchett';
-        $book4 = new stdClass;
-        $book4->author = 'Terry Pratchett';
-
-        $object1 = new SampleClass( 4,  8, 15);
-        $object2 = new SampleClass(16, 23, 42);
-
-        return array(
-          array(new SampleClass(4, 8, 15), new SampleClass(16, 23, 42), $equalMessage),
-          array($object1, $object2, $equalMessage),
-          array($book1, $book2, $equalMessage),
-          array($book3, $book4, $typeMessage),
-          array(new Struct(2.3), new Struct(4.2), $equalMessage, 0.5)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $delta = 0.0)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, $delta);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $message, $delta = 0.0)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure', $message
-        );
-        $this->comparator->assertEquals($expected, $actual, $delta);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php b/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php
deleted file mode 100644
index 9aea3ee..0000000
--- a/core/vendor/sebastian/comparator/tests/ResourceComparatorTest.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\ResourceComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ResourceComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new ResourceComparator;
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        $tmpfile1 = tmpfile();
-        $tmpfile2 = tmpfile();
-
-        return array(
-          array($tmpfile1, $tmpfile1),
-          array($tmpfile2, $tmpfile2),
-          array($tmpfile1, $tmpfile2)
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        $tmpfile1 = tmpfile();
-
-        return array(
-          array($tmpfile1, null),
-          array(null, $tmpfile1),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        $tmpfile1 = tmpfile();
-        $tmpfile2 = tmpfile();
-
-        return array(
-          array($tmpfile1, $tmpfile1),
-          array($tmpfile2, $tmpfile2)
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        $tmpfile1 = tmpfile();
-        $tmpfile2 = tmpfile();
-
-        return array(
-          array($tmpfile1, $tmpfile2),
-          array($tmpfile2, $tmpfile1)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual)
-    {
-        $this->setExpectedException('SebastianBergmann\\Comparator\\ComparisonFailure');
-        $this->comparator->assertEquals($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php b/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php
deleted file mode 100644
index a37e1c9..0000000
--- a/core/vendor/sebastian/comparator/tests/ScalarComparatorTest.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\ScalarComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class ScalarComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new ScalarComparator;
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        return array(
-          array("string", "string"),
-          array(new ClassWithToString, "string"),
-          array("string", new ClassWithToString),
-          array("string", null),
-          array(false, "string"),
-          array(false, true),
-          array(null, false),
-          array(null, null),
-          array("10", 10),
-          array("", false),
-          array("1", true),
-          array(1, true),
-          array(0, false),
-          array(0.1, "0.1")
-        );
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array(array(), array()),
-          array("string", array()),
-          array(new ClassWithToString, new ClassWithToString),
-          array(false, new ClassWithToString),
-          array(tmpfile(), tmpfile())
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array("string", "string"),
-          array(new ClassWithToString, new ClassWithToString),
-          array("string representation", new ClassWithToString),
-          array(new ClassWithToString, "string representation"),
-          array("string", "STRING", true),
-          array("STRING", "string", true),
-          array("String Representation", new ClassWithToString, true),
-          array(new ClassWithToString, "String Representation", true),
-          array("10", 10),
-          array("", false),
-          array("1", true),
-          array(1, true),
-          array(0, false),
-          array(0.1, "0.1"),
-          array(false, null),
-          array(false, false),
-          array(true, true),
-          array(null, null)
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        $stringException = 'Failed asserting that two strings are equal.';
-        $otherException = 'matches expected';
-
-        return array(
-          array("string", "other string", $stringException),
-          array("string", "STRING", $stringException),
-          array("STRING", "string", $stringException),
-          array("string", "other string", $stringException),
-          // https://github.com/sebastianbergmann/phpunit/issues/1023
-          array('9E6666666','9E7777777', $stringException),
-          array(new ClassWithToString, "does not match", $otherException),
-          array("does not match", new ClassWithToString, $otherException),
-          array(0, 'Foobar', $otherException),
-          array('Foobar', 0, $otherException),
-          array("10", 25, $otherException),
-          array("1", false, $otherException),
-          array("", true, $otherException),
-          array(false, true, $otherException),
-          array(true, false, $otherException),
-          array(null, true, $otherException),
-          array(0, true, $otherException)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual, $ignoreCase = false)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual, 0.0, false, $ignoreCase);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual, $message)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure', $message
-        );
-        $this->comparator->assertEquals($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php b/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php
deleted file mode 100644
index 40be43d..0000000
--- a/core/vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use SplObjectStorage;
-use stdClass;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\SplObjectStorageComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class SplObjectStorageComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new SplObjectStorageComparator;
-    }
-
-    public function acceptsFailsProvider()
-    {
-        return array(
-          array(new SplObjectStorage, new stdClass),
-          array(new stdClass, new SplObjectStorage),
-          array(new stdClass, new stdClass)
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        $object1 = new stdClass();
-        $object2 = new stdClass();
-
-        $storage1 = new SplObjectStorage();
-        $storage2 = new SplObjectStorage();
-
-        $storage3 = new SplObjectStorage();
-        $storage3->attach($object1);
-        $storage3->attach($object2);
-
-        $storage4 = new SplObjectStorage();
-        $storage4->attach($object2);
-        $storage4->attach($object1);
-
-        return array(
-          array($storage1, $storage1),
-          array($storage1, $storage2),
-          array($storage3, $storage3),
-          array($storage3, $storage4)
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        $object1 = new stdClass;
-        $object2 = new stdClass;
-
-        $storage1 = new SplObjectStorage;
-
-        $storage2 = new SplObjectStorage;
-        $storage2->attach($object1);
-
-        $storage3 = new SplObjectStorage;
-        $storage3->attach($object2);
-        $storage3->attach($object1);
-
-        return array(
-          array($storage1, $storage2),
-          array($storage1, $storage3),
-          array($storage2, $storage3),
-        );
-    }
-
-    /**
-     * @covers  ::accepts
-     */
-    public function testAcceptsSucceeds()
-    {
-        $this->assertTrue(
-          $this->comparator->accepts(
-            new SplObjectStorage,
-            new SplObjectStorage
-          )
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsFailsProvider
-     */
-    public function testAcceptsFails($expected, $actual)
-    {
-        $this->assertFalse(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\Comparator\\ComparisonFailure',
-          'Failed asserting that two objects are equal.'
-        );
-        $this->comparator->assertEquals($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php b/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php
deleted file mode 100644
index 57ff39e..0000000
--- a/core/vendor/sebastian/comparator/tests/TypeComparatorTest.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-use stdClass;
-
-/**
- * @coversDefaultClass SebastianBergmann\Comparator\TypeComparator
- *
- * @package    Comparator
- * @author     Jeff Welch <whatthejeff@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class TypeComparatorTest extends \PHPUnit_Framework_TestCase
-{
-    private $comparator;
-
-    protected function setUp()
-    {
-        $this->comparator = new TypeComparator;
-    }
-
-    public function acceptsSucceedsProvider()
-    {
-        return array(
-          array(true, 1),
-          array(false, array(1)),
-          array(null, new stdClass),
-          array(1.0, 5),
-          array("", "")
-        );
-    }
-
-    public function assertEqualsSucceedsProvider()
-    {
-        return array(
-          array(true, true),
-          array(true, false),
-          array(false, false),
-          array(null, null),
-          array(new stdClass, new stdClass),
-          array(0, 0),
-          array(1.0, 2.0),
-          array("hello", "world"),
-          array("", ""),
-          array(array(), array(1,2,3))
-        );
-    }
-
-    public function assertEqualsFailsProvider()
-    {
-        return array(
-          array(true, null),
-          array(null, false),
-          array(1.0, 0),
-          array(new stdClass, array()),
-          array("1", 1)
-        );
-    }
-
-    /**
-     * @covers       ::accepts
-     * @dataProvider acceptsSucceedsProvider
-     */
-    public function testAcceptsSucceeds($expected, $actual)
-    {
-        $this->assertTrue(
-          $this->comparator->accepts($expected, $actual)
-        );
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsSucceedsProvider
-     */
-    public function testAssertEqualsSucceeds($expected, $actual)
-    {
-        $exception = null;
-
-        try {
-            $this->comparator->assertEquals($expected, $actual);
-        }
-
-        catch (ComparisonFailure $exception) {
-        }
-
-        $this->assertNull($exception, 'Unexpected ComparisonFailure');
-    }
-
-    /**
-     * @covers       ::assertEquals
-     * @dataProvider assertEqualsFailsProvider
-     */
-    public function testAssertEqualsFails($expected, $actual)
-    {
-        $this->setExpectedException('SebastianBergmann\\Comparator\\ComparisonFailure', 'does not match expected type');
-        $this->comparator->assertEquals($expected, $actual);
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/Author.php b/core/vendor/sebastian/comparator/tests/_files/Author.php
deleted file mode 100644
index d516955..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/Author.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * An author.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class Author
-{
-    // the order of properties is important for testing the cycle!
-    public $books = array();
-
-    private $name = '';
-
-    public function __construct($name)
-    {
-        $this->name = $name;
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/Book.php b/core/vendor/sebastian/comparator/tests/_files/Book.php
deleted file mode 100644
index 91b8571..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/Book.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * A book.
- *
- * @package    Comparator
- * @author     Bernhard Schussek <bschussek@2bepublished.at>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class Book
-{
-    // the order of properties is important for testing the cycle!
-    public $author = null;
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php b/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php
deleted file mode 100644
index e8e03bc..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/ClassWithToString.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-class ClassWithToString
-{
-    public function __toString()
-    {
-        return 'string representation';
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/SampleClass.php b/core/vendor/sebastian/comparator/tests/_files/SampleClass.php
deleted file mode 100644
index de6476f..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/SampleClass.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * A sample class.
- *
- * @package    Comparator
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class SampleClass
-{
-    public $a;
-    protected $b;
-    protected $c;
-
-    public function __construct($a, $b, $c)
-    {
-        $this->a = $a;
-        $this->b = $b;
-        $this->c = $c;
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/Struct.php b/core/vendor/sebastian/comparator/tests/_files/Struct.php
deleted file mode 100644
index 05615af..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/Struct.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-/**
- * A struct.
- *
- * @package    Comparator
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/comparator
- */
-class Struct
-{
-    public $var;
-
-    public function __construct($var)
-    {
-        $this->var = $var;
-    }
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/TestClass.php b/core/vendor/sebastian/comparator/tests/_files/TestClass.php
deleted file mode 100644
index e4c9b78..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/TestClass.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-class TestClass {
-}
diff --git a/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php b/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php
deleted file mode 100644
index 52aac3f..0000000
--- a/core/vendor/sebastian/comparator/tests/_files/TestClassComparator.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/*
- * This file is part of the Comparator package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Comparator;
-
-class TestClassComparator extends ObjectComparator {
-}
diff --git a/core/vendor/sebastian/comparator/tests/autoload.php b/core/vendor/sebastian/comparator/tests/autoload.php
deleted file mode 100644
index f4d9bbc..0000000
--- a/core/vendor/sebastian/comparator/tests/autoload.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-// @codingStandardsIgnoreFile
-// @codeCoverageIgnoreStart
-// this is an autogenerated file - do not edit
-spl_autoload_register(
-    function($class) {
-        static $classes = null;
-        if ($classes === null) {
-            $classes = array(
-                'sebastianbergmann\\comparator\\arraycomparatortest' => '/ArrayComparatorTest.php',
-                'sebastianbergmann\\comparator\\author' => '/_files/Author.php',
-                'sebastianbergmann\\comparator\\book' => '/_files/Book.php',
-                'sebastianbergmann\\comparator\\classwithtostring' => '/_files/ClassWithToString.php',
-                'sebastianbergmann\\comparator\\datetimecomparatortest' => '/DateTimeComparatorTest.php',
-                'sebastianbergmann\\comparator\\domnodecomparatortest' => '/DOMNodeComparatorTest.php',
-                'sebastianbergmann\\comparator\\doublecomparatortest' => '/DoubleComparatorTest.php',
-                'sebastianbergmann\\comparator\\exceptioncomparatortest' => '/ExceptionComparatorTest.php',
-                'sebastianbergmann\\comparator\\factorytest' => '/FactoryTest.php',
-                'sebastianbergmann\\comparator\\mockobjectcomparatortest' => '/MockObjectComparatorTest.php',
-                'sebastianbergmann\\comparator\\numericcomparatortest' => '/NumericComparatorTest.php',
-                'sebastianbergmann\\comparator\\objectcomparatortest' => '/ObjectComparatorTest.php',
-                'sebastianbergmann\\comparator\\resourcecomparatortest' => '/ResourceComparatorTest.php',
-                'sebastianbergmann\\comparator\\sampleclass' => '/_files/SampleClass.php',
-                'sebastianbergmann\\comparator\\scalarcomparatortest' => '/ScalarComparatorTest.php',
-                'sebastianbergmann\\comparator\\splobjectstoragecomparatortest' => '/SplObjectStorageComparatorTest.php',
-                'sebastianbergmann\\comparator\\struct' => '/_files/Struct.php',
-                'sebastianbergmann\\comparator\\testclass' => '/_files/TestClass.php',
-                'sebastianbergmann\\comparator\\testclasscomparator' => '/_files/TestClassComparator.php',
-                'sebastianbergmann\\comparator\\typecomparatortest' => '/TypeComparatorTest.php'
-            );
-        }
-        $cn = strtolower($class);
-        if (isset($classes[$cn])) {
-            require __DIR__ . $classes[$cn];
-        }
-    }
-);
-// @codeCoverageIgnoreEnd
diff --git a/core/vendor/sebastian/comparator/tests/bootstrap.php b/core/vendor/sebastian/comparator/tests/bootstrap.php
deleted file mode 100644
index 8f1c57c..0000000
--- a/core/vendor/sebastian/comparator/tests/bootstrap.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-require __DIR__ . '/../vendor/autoload.php';
-require __DIR__ . '/autoload.php';
-
-ini_set('precision', 14);
-ini_set('serialize_precision', 14);
-
diff --git a/core/vendor/sebastian/diff/.gitignore b/core/vendor/sebastian/diff/.gitignore
deleted file mode 100644
index d571f24..0000000
--- a/core/vendor/sebastian/diff/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.idea
-phpunit.xml
-composer.lock
-composer.phar
-vendor/
-cache.properties
-build/SebastianBergmann
-build/LICENSE
-build/README.md
-build/*.tgz
diff --git a/core/vendor/sebastian/diff/.travis.yml b/core/vendor/sebastian/diff/.travis.yml
deleted file mode 100644
index c5ea677..0000000
--- a/core/vendor/sebastian/diff/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-language: php
-
-install:
-  - travis_retry composer install --no-interaction --prefer-source
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-notifications:
-  email: false
-  irc: "irc.freenode.org#phpunit"
diff --git a/core/vendor/sebastian/diff/LICENSE b/core/vendor/sebastian/diff/LICENSE
deleted file mode 100644
index 0941c06..0000000
--- a/core/vendor/sebastian/diff/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Diff
-
-Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/diff/README.md b/core/vendor/sebastian/diff/README.md
deleted file mode 100644
index 921957b..0000000
--- a/core/vendor/sebastian/diff/README.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# Diff
-
-Diff implementation for PHP, factored out of PHPUnit into a stand-alone component.
-
-## Installation
-
-To add this package as a local, per-project dependency to your project, simply add a dependency on `sebastian/diff` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Diff:
-
-    {
-        "require": {
-            "sebastian/diff": "*"
-        }
-    }
-
-### Usage
-
-The `Differ` class can be used to generate a textual representation of the difference between two strings:
-
-```php
-use SebastianBergmann\Diff\Differ;
-
-$differ = new Differ;
-print $differ->diff('foo', 'bar');
-```
-
-The code above yields the output below:
-
-    --- Original
-    +++ New
-    @@ @@
-    -foo
-    +bar
-
-The `Parser` class can be used to parse a unified diff into an object graph:
-
-```php
-use SebastianBergmann\Diff\Parser;
-use SebastianBergmann\Git;
-
-$git = new Git('/usr/local/src/money');
-
-$diff = $git->getDiff(
-  '948a1a07768d8edd10dcefa8315c1cbeffb31833',
-  'c07a373d2399f3e686234c4f7f088d635eb9641b'
-);
-
-$parser = new Parser;
-
-print_r($parser->parse($diff));
-```
-
-The code above yields the output below:
-
-    Array
-    (
-        [0] => SebastianBergmann\Diff\Diff Object
-            (
-                [from:SebastianBergmann\Diff\Diff:private] => a/tests/MoneyTest.php
-                [to:SebastianBergmann\Diff\Diff:private] => b/tests/MoneyTest.php
-                [chunks:SebastianBergmann\Diff\Diff:private] => Array
-                    (
-                        [0] => SebastianBergmann\Diff\Chunk Object
-                            (
-                                [start:SebastianBergmann\Diff\Chunk:private] => 87
-                                [startRange:SebastianBergmann\Diff\Chunk:private] => 7
-                                [end:SebastianBergmann\Diff\Chunk:private] => 87
-                                [endRange:SebastianBergmann\Diff\Chunk:private] => 7
-                                [lines:SebastianBergmann\Diff\Chunk:private] => Array
-                                    (
-                                        [0] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 3
-                                                [content:SebastianBergmann\Diff\Line:private] =>      * @covers SebastianBergmann\Money\Money::add
-                                            )
-
-                                        [1] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 3
-                                                [content:SebastianBergmann\Diff\Line:private] =>      * @covers SebastianBergmann\Money\Money::newMoney
-                                            )
-
-                                        [2] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 3
-                                                [content:SebastianBergmann\Diff\Line:private] =>      */
-                                            )
-
-                                        [3] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 2
-                                                [content:SebastianBergmann\Diff\Line:private] =>     public function testAnotherMoneyWithSameCurrencyObjectCanBeAdded()
-                                            )
-
-                                        [4] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 1
-                                                [content:SebastianBergmann\Diff\Line:private] =>     public function testAnotherMoneyObjectWithSameCurrencyCanBeAdded()
-                                            )
-
-                                        [5] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 3
-                                                [content:SebastianBergmann\Diff\Line:private] =>     {
-                                            )
-
-                                        [6] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 3
-                                                [content:SebastianBergmann\Diff\Line:private] =>         $a = new Money(1, new Currency('EUR'));
-                                            )
-
-                                        [7] => SebastianBergmann\Diff\Line Object
-                                            (
-                                                [type:SebastianBergmann\Diff\Line:private] => 3
-                                                [content:SebastianBergmann\Diff\Line:private] =>         $b = new Money(2, new Currency('EUR'));
-                                            )
-
-                                    )
-
-                            )
-
-                    )
-
-            )
-
-    )
diff --git a/core/vendor/sebastian/diff/build.xml b/core/vendor/sebastian/diff/build.xml
deleted file mode 100644
index 7366087..0000000
--- a/core/vendor/sebastian/diff/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="diff">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/sebastian/diff/composer.json b/core/vendor/sebastian/diff/composer.json
deleted file mode 100644
index 3c04952..0000000
--- a/core/vendor/sebastian/diff/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "name": "sebastian/diff",
-    "description": "Diff implementation",
-    "keywords": ["diff"],
-    "homepage": "http://www.github.com/sebastianbergmann/diff",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        },
-        {
-            "name": "Kore Nordmann",
-            "email": "mail@kore-nordmann.de"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.2"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.3-dev"
-        }
-    }
-}
diff --git a/core/vendor/sebastian/diff/phpunit.xml.dist b/core/vendor/sebastian/diff/phpunit.xml.dist
deleted file mode 100644
index 387a9b3..0000000
--- a/core/vendor/sebastian/diff/phpunit.xml.dist
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.2/phpunit.xsd"
-         bootstrap="vendor/autoload.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuite name="Diff">
-    <directory suffix="Test.php">tests</directory>
-  </testsuite>
-
-  <filter>
-    <whitelist processUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
-
diff --git a/core/vendor/sebastian/diff/src/Chunk.php b/core/vendor/sebastian/diff/src/Chunk.php
deleted file mode 100644
index 79d13fc..0000000
--- a/core/vendor/sebastian/diff/src/Chunk.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff;
-
-/**
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class Chunk
-{
-    /**
-     * @var int
-     */
-    private $start;
-
-    /**
-     * @var int
-     */
-    private $startRange;
-
-    /**
-     * @var int
-     */
-    private $end;
-    /**
-     * @var int
-     */
-    private $endRange;
-
-    /**
-     * @var array
-     */
-    private $lines;
-
-    /**
-     * @param int   $start
-     * @param int   $startRange
-     * @param int   $end
-     * @param int   $endRange
-     * @param array $lines
-     */
-    public function __construct($start = 0, $startRange = 1, $end = 0, $endRange = 1, array $lines = array())
-    {
-        $this->start      = (int) $start;
-        $this->startRange = (int) $startRange;
-        $this->end        = (int) $end;
-        $this->endRange   = (int) $endRange;
-        $this->lines      = $lines;
-    }
-
-    /**
-     * @return int
-     */
-    public function getStart()
-    {
-        return $this->start;
-    }
-
-    /**
-     * @return int
-     */
-    public function getStartRange()
-    {
-        return $this->startRange;
-    }
-
-    /**
-     * @return int
-     */
-    public function getEnd()
-    {
-        return $this->end;
-    }
-
-    /**
-     * @return int
-     */
-    public function getEndRange()
-    {
-        return $this->endRange;
-    }
-
-    /**
-     * @return array
-     */
-    public function getLines()
-    {
-        return $this->lines;
-    }
-
-    /**
-     * @param array $lines
-     */
-    public function setLines(array $lines)
-    {
-        $this->lines = $lines;
-    }
-}
diff --git a/core/vendor/sebastian/diff/src/Diff.php b/core/vendor/sebastian/diff/src/Diff.php
deleted file mode 100644
index 45aaae6..0000000
--- a/core/vendor/sebastian/diff/src/Diff.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff;
-
-/**
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class Diff
-{
-    /**
-     * @var string
-     */
-    private $from;
-
-    /**
-     * @var string
-     */
-    private $to;
-
-    /**
-     * @var Chunk[]
-     */
-    private $chunks;
-
-    /**
-     * @param string  $from
-     * @param string  $to
-     * @param Chunk[] $chunks
-     */
-    public function __construct($from, $to, array $chunks = array())
-    {
-        $this->from   = $from;
-        $this->to     = $to;
-        $this->chunks = $chunks;
-    }
-
-    /**
-     * @return string
-     */
-    public function getFrom()
-    {
-        return $this->from;
-    }
-
-    /**
-     * @return string
-     */
-    public function getTo()
-    {
-        return $this->to;
-    }
-
-    /**
-     * @return Chunk[]
-     */
-    public function getChunks()
-    {
-        return $this->chunks;
-    }
-
-    /**
-     * @param Chunk[] $chunks
-     */
-    public function setChunks(array $chunks)
-    {
-        $this->chunks = $chunks;
-    }
-}
diff --git a/core/vendor/sebastian/diff/src/Differ.php b/core/vendor/sebastian/diff/src/Differ.php
deleted file mode 100644
index 76630ed..0000000
--- a/core/vendor/sebastian/diff/src/Differ.php
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff;
-
-use SebastianBergmann\Diff\LCS\LongestCommonSubsequence;
-use SebastianBergmann\Diff\LCS\TimeEfficientImplementation;
-use SebastianBergmann\Diff\LCS\MemoryEfficientImplementation;
-
-/**
- * Diff implementation.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class Differ
-{
-    /**
-     * @var string
-     */
-    private $header;
-
-    /**
-     * @param string $header
-     */
-    public function __construct($header = "--- Original\n+++ New\n")
-    {
-        $this->header = $header;
-    }
-
-    /**
-     * Returns the diff between two arrays or strings as string.
-     *
-     * @param  array|string             $from
-     * @param  array|string             $to
-     * @param  LongestCommonSubsequence $lcs
-     * @return string
-     */
-    public function diff($from, $to, LongestCommonSubsequence $lcs = null)
-    {
-        if (!is_array($from) && !is_string($from)) {
-            $from = (string) $from;
-        }
-
-        if (!is_array($to) && !is_string($to)) {
-            $to = (string) $to;
-        }
-
-        $buffer = $this->header;
-        $diff   = $this->diffToArray($from, $to, $lcs);
-
-        $inOld = false;
-        $i     = 0;
-        $old   = array();
-
-        foreach ($diff as $line) {
-            if ($line[1] ===  0 /* OLD */) {
-                if ($inOld === false) {
-                    $inOld = $i;
-                }
-            } elseif ($inOld !== false) {
-                if (($i - $inOld) > 5) {
-                    $old[$inOld] = $i - 1;
-                }
-
-                $inOld = false;
-            }
-
-            ++$i;
-        }
-
-        $start = isset($old[0]) ? $old[0] : 0;
-        $end   = count($diff);
-
-        if ($tmp = array_search($end, $old)) {
-            $end = $tmp;
-        }
-
-        $newChunk = true;
-
-        for ($i = $start; $i < $end; $i++) {
-            if (isset($old[$i])) {
-                $buffer  .= "\n";
-                $newChunk = true;
-                $i        = $old[$i];
-            }
-
-            if ($newChunk) {
-                $buffer  .= "@@ @@\n";
-                $newChunk = false;
-            }
-
-            if ($diff[$i][1] === 1 /* ADDED */) {
-                $buffer .= '+' . $diff[$i][0] . "\n";
-            } elseif ($diff[$i][1] === 2 /* REMOVED */) {
-                $buffer .= '-' . $diff[$i][0] . "\n";
-            } else {
-                $buffer .= ' ' . $diff[$i][0] . "\n";
-            }
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Returns the diff between two arrays or strings as array.
-     *
-     * Each array element contains two elements:
-     *   - [0] => string $token
-     *   - [1] => 2|1|0
-     *
-     * - 2: REMOVED: $token was removed from $from
-     * - 1: ADDED: $token was added to $from
-     * - 0: OLD: $token is not changed in $to
-     *
-     * @param  array|string             $from
-     * @param  array|string             $to
-     * @param  LongestCommonSubsequence $lcs
-     * @return array
-     */
-    public function diffToArray($from, $to, LongestCommonSubsequence $lcs = null)
-    {
-        preg_match_all('(\r\n|\r|\n)', $from, $fromMatches);
-        preg_match_all('(\r\n|\r|\n)', $to, $toMatches);
-
-        if (is_string($from)) {
-            $from = preg_split('(\r\n|\r|\n)', $from);
-        }
-
-        if (is_string($to)) {
-            $to = preg_split('(\r\n|\r|\n)', $to);
-        }
-
-        $start      = array();
-        $end        = array();
-        $fromLength = count($from);
-        $toLength   = count($to);
-        $length     = min($fromLength, $toLength);
-
-        for ($i = 0; $i < $length; ++$i) {
-            if ($from[$i] === $to[$i]) {
-                $start[] = $from[$i];
-                unset($from[$i], $to[$i]);
-            } else {
-                break;
-            }
-        }
-
-        $length -= $i;
-
-        for ($i = 1; $i < $length; ++$i) {
-            if ($from[$fromLength - $i] === $to[$toLength - $i]) {
-                array_unshift($end, $from[$fromLength - $i]);
-                unset($from[$fromLength - $i], $to[$toLength - $i]);
-            } else {
-                break;
-            }
-        }
-
-        if ($lcs === null) {
-            $lcs = $this->selectLcsImplementation($from, $to);
-        }
-
-        $common = $lcs->calculate(array_values($from), array_values($to));
-        $diff   = array();
-
-        if (isset($fromMatches[0]) && $toMatches[0] &&
-            count($fromMatches[0]) === count($toMatches[0]) &&
-            $fromMatches[0] !== $toMatches[0]) {
-            $diff[] = array(
-              '#Warning: Strings contain different line endings!', 0
-            );
-        }
-
-        foreach ($start as $token) {
-            $diff[] = array($token, 0 /* OLD */);
-        }
-
-        reset($from);
-        reset($to);
-
-        foreach ($common as $token) {
-            while ((($fromToken = reset($from)) !== $token)) {
-                $diff[] = array(array_shift($from), 2 /* REMOVED */);
-            }
-
-            while ((($toToken = reset($to)) !== $token)) {
-                $diff[] = array(array_shift($to), 1 /* ADDED */);
-            }
-
-            $diff[] = array($token, 0 /* OLD */);
-
-            array_shift($from);
-            array_shift($to);
-        }
-
-        while (($token = array_shift($from)) !== null) {
-            $diff[] = array($token, 2 /* REMOVED */);
-        }
-
-        while (($token = array_shift($to)) !== null) {
-            $diff[] = array($token, 1 /* ADDED */);
-        }
-
-        foreach ($end as $token) {
-            $diff[] = array($token, 0 /* OLD */);
-        }
-
-        return $diff;
-    }
-
-    /**
-     * @param  array $from
-     * @param  array $to
-     * @return LongestCommonSubsequence
-     */
-    private function selectLcsImplementation(array $from, array $to)
-    {
-        // We do not want to use the time-efficient implementation if its memory
-        // footprint will probably exceed this value. Note that the footprint
-        // calculation is only an estimation for the matrix and the LCS method
-        // will typically allocate a bit more memory than this.
-        $memoryLimit = 100 * 1024 * 1024;
-
-        if ($this->calculateEstimatedFootprint($from, $to) > $memoryLimit) {
-            return new MemoryEfficientImplementation;
-        }
-
-        return new TimeEfficientImplementation;
-    }
-
-    /**
-     * Calculates the estimated memory footprint for the DP-based method.
-     *
-     * @param  array $from
-     * @param  array $to
-     * @return integer
-     */
-    private function calculateEstimatedFootprint(array $from, array $to)
-    {
-        $itemSize = PHP_INT_SIZE == 4 ? 76 : 144;
-
-        return $itemSize * pow(min(count($from), count($to)), 2);
-    }
-}
diff --git a/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php b/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php
deleted file mode 100644
index 8036474..0000000
--- a/core/vendor/sebastian/diff/src/LCS/LongestCommonSubsequence.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff\LCS;
-
-/**
- * Interface for implementations of longest common subsequence calculation.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-interface LongestCommonSubsequence
-{
-    /**
-     * Calculates the longest common subsequence of two arrays.
-     *
-     * @param  array $from
-     * @param  array $to
-     * @return array
-     */
-    public function calculate(array $from, array $to);
-}
diff --git a/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php b/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php
deleted file mode 100644
index 6213607..0000000
--- a/core/vendor/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff\LCS;
-
-/**
- * Memory-efficient implementation of longest common subsequence calculation.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Denes Lados <lados.denes@gmail.com>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class MemoryEfficientImplementation implements LongestCommonSubsequence
-{
-    /**
-     * Calculates the longest common subsequence of two arrays.
-     *
-     * @param  array $from
-     * @param  array $to
-     * @return array
-     */
-    public function calculate(array $from, array $to)
-    {
-        $cFrom = count($from);
-        $cTo   = count($to);
-
-        if ($cFrom == 0) {
-            return array();
-        } elseif ($cFrom == 1) {
-            if (in_array($from[0], $to)) {
-                return array($from[0]);
-            } else {
-                return array();
-            }
-        } else {
-            $i         = intval($cFrom / 2);
-            $fromStart = array_slice($from, 0, $i);
-            $fromEnd   = array_slice($from, $i);
-            $llB       = $this->length($fromStart, $to);
-            $llE       = $this->length(array_reverse($fromEnd), array_reverse($to));
-            $jMax      = 0;
-            $max       = 0;
-
-            for ($j = 0; $j <= $cTo; $j++) {
-                $m = $llB[$j] + $llE[$cTo - $j];
-
-                if ($m >= $max) {
-                    $max  = $m;
-                    $jMax = $j;
-                }
-            }
-
-            $toStart = array_slice($to, 0, $jMax);
-            $toEnd   = array_slice($to, $jMax);
-
-            return array_merge(
-                $this->calculate($fromStart, $toStart),
-                $this->calculate($fromEnd, $toEnd)
-            );
-        }
-    }
-
-    /**
-     * @param array $from
-     * @param array $to
-     * @return array
-     */
-    private function length(array $from, array $to)
-    {
-        $current = array_fill(0, count($to) + 1, 0);
-        $cFrom   = count($from);
-        $cTo     = count($to);
-
-        for ($i = 0; $i < $cFrom; $i++) {
-            $prev = $current;
-
-            for ($j = 0; $j < $cTo; $j++) {
-                if ($from[$i] == $to[$j]) {
-                    $current[$j + 1] = $prev[$j] + 1;
-                } else {
-                    $current[$j + 1] = max($current[$j], $prev[$j + 1]);
-                }
-            }
-        }
-
-        return $current;
-    }
-}
diff --git a/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php b/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php
deleted file mode 100644
index b569586..0000000
--- a/core/vendor/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff\LCS;
-
-/**
- * Time-efficient implementation of longest common subsequence calculation.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class TimeEfficientImplementation implements LongestCommonSubsequence
-{
-    /**
-     * Calculates the longest common subsequence of two arrays.
-     *
-     * @param  array $from
-     * @param  array $to
-     * @return array
-     */
-    public function calculate(array $from, array $to)
-    {
-        $common     = array();
-        $fromLength = count($from);
-        $toLength   = count($to);
-        $width      = $fromLength + 1;
-        $matrix     = new \SplFixedArray($width * ($toLength + 1));
-
-        for ($i = 0; $i <= $fromLength; ++$i) {
-            $matrix[$i] = 0;
-        }
-
-        for ($j = 0; $j <= $toLength; ++$j) {
-            $matrix[$j * $width] = 0;
-        }
-
-        for ($i = 1; $i <= $fromLength; ++$i) {
-            for ($j = 1; $j <= $toLength; ++$j) {
-                $o = ($j * $width) + $i;
-                $matrix[$o] = max(
-                    $matrix[$o - 1],
-                    $matrix[$o - $width],
-                    $from[$i - 1] === $to[$j - 1] ? $matrix[$o - $width - 1] + 1 : 0
-                );
-            }
-        }
-
-        $i = $fromLength;
-        $j = $toLength;
-
-        while ($i > 0 && $j > 0) {
-            if ($from[$i-1] === $to[$j-1]) {
-                $common[] = $from[$i-1];
-                --$i;
-                --$j;
-            } else {
-                $o = ($j * $width) + $i;
-                if ($matrix[$o - $width] > $matrix[$o - 1]) {
-                    --$j;
-                } else {
-                    --$i;
-                }
-            }
-        }
-
-        return array_reverse($common);
-    }
-}
diff --git a/core/vendor/sebastian/diff/src/Line.php b/core/vendor/sebastian/diff/src/Line.php
deleted file mode 100644
index 28c66aa..0000000
--- a/core/vendor/sebastian/diff/src/Line.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff;
-
-/**
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class Line
-{
-    const ADDED = 1;
-    const REMOVED = 2;
-    const UNCHANGED = 3;
-
-    /**
-     * @var int
-     */
-    private $type;
-
-    /**
-     * @var string
-     */
-    private $content;
-
-    /**
-     * @param int    $type
-     * @param string $content
-     */
-    public function __construct($type = self::UNCHANGED, $content = '')
-    {
-        $this->type    = $type;
-        $this->content = $content;
-    }
-
-    /**
-     * @return string
-     */
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    /**
-     * @return int
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-}
diff --git a/core/vendor/sebastian/diff/src/Parser.php b/core/vendor/sebastian/diff/src/Parser.php
deleted file mode 100644
index 79e2413..0000000
--- a/core/vendor/sebastian/diff/src/Parser.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff;
-
-/**
- * Unified diff parser.
- *
- * @package    Diff
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Kore Nordmann <mail@kore-nordmann.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/diff
- */
-class Parser
-{
-    /**
-     * @param  string $string
-     * @return Diff[]
-     */
-    public function parse($string)
-    {
-        $lines     = preg_split('(\r\n|\r|\n)', $string);
-        $lineCount = count($lines);
-        $diffs     = array();
-        $diff      = null;
-        $collected = array();
-
-        for ($i = 0; $i < $lineCount; ++$i) {
-            if (preg_match('(^---\\s+(?P<file>\\S+))', $lines[$i], $fromMatch) &&
-                preg_match('(^\\+\\+\\+\\s+(?P<file>\\S+))', $lines[$i + 1], $toMatch)) {
-                if ($diff !== null) {
-                    $this->parseFileDiff($diff, $collected);
-                    $diffs[]   = $diff;
-                    $collected = array();
-                }
-
-                $diff = new Diff($fromMatch['file'], $toMatch['file']);
-                ++$i;
-            } else {
-                if (preg_match('/^(?:diff --git |index [\da-f\.]+|[+-]{3} [ab])/', $lines[$i])) {
-                    continue;
-                }
-                $collected[] = $lines[$i];
-            }
-        }
-
-        if (count($collected) && ($diff !== null)) {
-            $this->parseFileDiff($diff, $collected);
-            $diffs[] = $diff;
-        }
-
-        return $diffs;
-    }
-
-    /**
-     * @param Diff  $diff
-     * @param array $lines
-     */
-    private function parseFileDiff(Diff $diff, array $lines)
-    {
-        $chunks = array();
-
-        foreach ($lines as $line) {
-            if (preg_match('/^@@\s+-(?P<start>\d+)(?:,\s*(?P<startrange>\d+))?\s+\+(?P<end>\d+)(?:,\s*(?P<endrange>\d+))?\s+@@/', $line, $match)) {
-                $chunk = new Chunk(
-                    $match['start'],
-                    isset($match['startrange']) ? max(1, $match['startrange']) : 1,
-                    $match['end'],
-                    isset($match['endrange']) ? max(1, $match['endrange']) : 1
-                );
-
-                $chunks[] = $chunk;
-                $diffLines = array();
-                continue;
-            }
-
-            if (preg_match('/^(?P<type>[+ -])?(?P<line>.*)/', $line, $match)) {
-                $type = Line::UNCHANGED;
-
-                if ($match['type'] == '+') {
-                    $type = Line::ADDED;
-                } elseif ($match['type'] == '-') {
-                    $type = Line::REMOVED;
-                }
-
-                $diffLines[] = new Line($type, $match['line']);
-
-                if (isset($chunk)) {
-                    $chunk->setLines($diffLines);
-                }
-            }
-        }
-
-        $diff->setChunks($chunks);
-    }
-}
diff --git a/core/vendor/sebastian/diff/tests/DifferTest.php b/core/vendor/sebastian/diff/tests/DifferTest.php
deleted file mode 100644
index a786325..0000000
Binary files a/core/vendor/sebastian/diff/tests/DifferTest.php and /dev/null differ
diff --git a/core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php b/core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php
deleted file mode 100644
index babc407..0000000
--- a/core/vendor/sebastian/diff/tests/LCS/TimeEfficientImplementationTest.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff\LCS;
-
-use PHPUnit_Framework_TestCase;
-
-/**
- * Some of these tests are volontary stressfull, in order to give some approximative benchmark hints.
- */
-class TimeEfficientImplementationTest extends PHPUnit_Framework_TestCase
-{
-    private $implementation;
-    private $memory_limit;
-    private $stress_sizes = array(1, 2, 3, 100, 500, 1000, 2000);
-
-    protected function setUp()
-    {
-        $this->memory_limit = ini_get('memory_limit');
-        ini_set('memory_limit', '256M');
-
-        $this->implementation = new TimeEfficientImplementation;
-    }
-
-    protected function tearDown()
-    {
-        ini_set('memory_limit', $this->memory_limit);
-    }
-
-    public function testBothEmpty()
-    {
-        $from   = array();
-        $to     = array();
-        $common = $this->implementation->calculate($from, $to);
-
-        $this->assertEquals(array(), $common);
-    }
-
-    public function testIsStrictComparison()
-    {
-        $from = array(
-            false, 0, 0.0, '', null, array(),
-            true, 1, 1.0, 'foo', array('foo', 'bar'), array('foo' => 'bar')
-        );
-        $to = $from;
-        $common = $this->implementation->calculate($from, $to);
-
-        $this->assertEquals($from, $common);
-
-        $to = array(
-            false, false, false, false, false, false,
-            true, true, true, true, true, true
-        );
-        $expected = array(
-            false,
-            true,
-        );
-        $common = $this->implementation->calculate($from, $to);
-
-        $this->assertEquals($expected, $common);
-    }
-
-    public function testEqualSequences()
-    {
-        foreach ($this->stress_sizes as $size) {
-            $range  = range(1, $size);
-            $from   = $range;
-            $to     = $range;
-            $common = $this->implementation->calculate($from, $to);
-
-            $this->assertEquals($range, $common);
-        }
-    }
-
-    public function testDistinctSequences()
-    {
-        $from  = array('A');
-        $to    = array('B');
-        $common = $this->implementation->calculate($from, $to);
-        $this->assertEquals(array(), $common);
-
-        $from  = array('A', 'B', 'C');
-        $to    = array('D', 'E', 'F');
-        $common = $this->implementation->calculate($from, $to);
-        $this->assertEquals(array(), $common);
-
-        foreach ($this->stress_sizes as $size) {
-            $from  = range(1, $size);
-            $to    = range($size + 1, $size * 2);
-            $common = $this->implementation->calculate($from, $to);
-            $this->assertEquals(array(), $common);
-        }
-    }
-
-    public function testCommonSubsequence()
-    {
-        $from     = array('A',      'C',      'E', 'F', 'G'     );
-        $to       = array('A', 'B',      'D', 'E',           'H');
-        $expected = array('A',                'E'               );
-        $common   = $this->implementation->calculate($from, $to);
-        $this->assertEquals($expected, $common);
-
-        $from     = array('A',      'C',      'E', 'F', 'G'     );
-        $to       = array(     'B', 'C', 'D', 'E', 'F',      'H');
-        $expected = array('C',                'E', 'F'          );
-        $common   = $this->implementation->calculate($from, $to);
-        $this->assertEquals($expected, $common);
-
-        foreach ($this->stress_sizes as $size) {
-            $from     = $size < 2 ? array(1) : range(1, $size + 1, 2);
-            $to       = $size < 3 ? array(1) : range(1, $size + 1, 3);
-            $expected = $size < 6 ? array(1) : range(1, $size + 1, 6);
-            $common   = $this->implementation->calculate($from, $to);
-
-            $this->assertEquals($expected, $common);
-        }
-    }
-
-    public function testSingleElementSubsequenceAtStart()
-    {
-        foreach ($this->stress_sizes as $size) {
-            $from   = range(1, $size);
-            $to     = array_slice($from, 0, 1);
-            $common = $this->implementation->calculate($from, $to);
-
-            $this->assertEquals($to, $common);
-        }
-    }
-
-    public function testSingleElementSubsequenceAtMiddle()
-    {
-        foreach ($this->stress_sizes as $size) {
-            $from   = range(1, $size);
-            $to     = array_slice($from, (int) $size / 2, 1);
-            $common = $this->implementation->calculate($from, $to);
-
-            $this->assertEquals($to, $common);
-        }
-    }
-
-    public function testSingleElementSubsequenceAtEnd()
-    {
-        foreach ($this->stress_sizes as $size) {
-            $from   = range(1, $size);
-            $to     = array_slice($from, $size - 1, 1);
-            $common = $this->implementation->calculate($from, $to);
-
-            $this->assertEquals($to, $common);
-        }
-    }
-
-    public function testReversedSequences()
-    {
-        $from     = array('A', 'B');
-        $to       = array('B', 'A');
-        $expected = array('A');
-        $common   = $this->implementation->calculate($from, $to);
-        $this->assertEquals($expected, $common);
-
-        foreach ($this->stress_sizes as $size) {
-            $from   = range(1, $size);
-            $to     = array_reverse($from);
-            $common = $this->implementation->calculate($from, $to);
-
-            $this->assertEquals(array(1), $common);
-        }
-    }
-}
diff --git a/core/vendor/sebastian/diff/tests/ParserTest.php b/core/vendor/sebastian/diff/tests/ParserTest.php
deleted file mode 100644
index 3a7b972..0000000
--- a/core/vendor/sebastian/diff/tests/ParserTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*
- * This file is part of the Diff package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Diff;
-
-use PHPUnit_Framework_TestCase;
-
-class ParserTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var Parser
-     */
-    private $parser;
-
-    protected function setUp()
-    {
-        $this->parser = new Parser;
-    }
-
-    public function testParse()
-    {
-        $content = file_get_contents(__DIR__ . '/fixtures/patch.txt');
-
-        $diffs = $this->parser->parse($content);
-
-        $this->assertCount(1, $diffs);
-
-        $chunks = $diffs[0]->getChunks();
-        $this->assertCount(1, $chunks);
-
-        $this->assertEquals(20, $chunks[0]->getStart());
-
-        $this->assertCount(5, $chunks[0]->getLines());
-    }
-
-    public function testParseWithMultipleChunks()
-    {
-        $content = file_get_contents(__DIR__ . '/fixtures/patch2.txt');
-
-        $diffs = $this->parser->parse($content);
-
-        $this->assertCount(1, $diffs);
-
-        $chunks = $diffs[0]->getChunks();
-        $this->assertCount(3, $chunks);
-
-        $this->assertEquals(20, $chunks[0]->getStart());
-        $this->assertEquals(320, $chunks[1]->getStart());
-        $this->assertEquals(600, $chunks[2]->getStart());
-
-        $this->assertCount(5, $chunks[0]->getLines());
-        $this->assertCount(5, $chunks[1]->getLines());
-        $this->assertCount(5, $chunks[2]->getLines());
-    }
-}
diff --git a/core/vendor/sebastian/diff/tests/fixtures/patch.txt b/core/vendor/sebastian/diff/tests/fixtures/patch.txt
deleted file mode 100644
index 144b61d..0000000
--- a/core/vendor/sebastian/diff/tests/fixtures/patch.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/Foo.php b/Foo.php
-index abcdefg..abcdefh 100644
---- a/Foo.php
-+++ b/Foo.php
-@@ -20,4 +20,5 @@ class Foo
-     const ONE = 1;
-     const TWO = 2;
-+    const THREE = 3;
-     const FOUR = 4;
diff --git a/core/vendor/sebastian/diff/tests/fixtures/patch2.txt b/core/vendor/sebastian/diff/tests/fixtures/patch2.txt
deleted file mode 100644
index 41fbc95..0000000
--- a/core/vendor/sebastian/diff/tests/fixtures/patch2.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/Foo.php b/Foo.php
-index abcdefg..abcdefh 100644
---- a/Foo.php
-+++ b/Foo.php
-@@ -20,4 +20,5 @@ class Foo
-     const ONE = 1;
-     const TWO = 2;
-+    const THREE = 3;
-     const FOUR = 4;
-
-@@ -320,4 +320,5 @@ class Foo
-     const A = 'A';
-     const B = 'B';
-+    const C = 'C';
-     const D = 'D';
-
-@@ -600,4 +600,5 @@ class Foo
-     public function doSomething() {
-
-+        return 'foo';
-     }
diff --git a/core/vendor/sebastian/environment/.gitignore b/core/vendor/sebastian/environment/.gitignore
deleted file mode 100644
index 5794854..0000000
--- a/core/vendor/sebastian/environment/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/.idea
-/vendor
-/composer.lock
-/composer.phar
-/phpunit.xml
diff --git a/core/vendor/sebastian/environment/.travis.yml b/core/vendor/sebastian/environment/.travis.yml
deleted file mode 100644
index 76a9bde..0000000
--- a/core/vendor/sebastian/environment/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-language: php
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-notifications:
-  email: false
diff --git a/core/vendor/sebastian/environment/LICENSE b/core/vendor/sebastian/environment/LICENSE
deleted file mode 100644
index 08539af..0000000
--- a/core/vendor/sebastian/environment/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Environment
-
-Copyright (c) 2014-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/environment/README.md b/core/vendor/sebastian/environment/README.md
deleted file mode 100644
index 5f3cb3b..0000000
--- a/core/vendor/sebastian/environment/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# Environment
-
-This component provides functionality that helps writing PHP code that has runtime-specific (PHP / HHVM) execution paths.
-
-[![Latest Stable Version](https://poser.pugx.org/sebastian/environment/v/stable.png)](https://packagist.org/packages/sebastian/environment)
-[![Build Status](https://travis-ci.org/sebastianbergmann/environment.png?branch=master)](https://travis-ci.org/sebastianbergmann/environment)
-
-## Installation
-
-To add Environment as a local, per-project dependency to your project, simply add a dependency on `sebastian/environment` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Environment 1.0:
-
-    {
-        "require": {
-            "sebastian/environment": "1.0.*"
-        }
-    }
-
-## Usage
-
-```php
-<?php
-use SebastianBergmann\Environment\Runtime;
-
-$runtime = new Runtime;
-
-var_dump($runtime->getNameWithVersion());
-var_dump($runtime->getName());
-var_dump($runtime->getVersion());
-var_dump($runtime->getBinary());
-var_dump($runtime->isHHVM());
-var_dump($runtime->isPHP());
-var_dump($runtime->hasXdebug());
-var_dump($runtime->canCollectCodeCoverage());
-```
-
-### Output on PHP
-
-    $ php --version
-    PHP 5.5.8 (cli) (built: Jan  9 2014 08:33:30)
-    Copyright (c) 1997-2013 The PHP Group
-    Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
-        with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
-
-
-    $ php example.php
-    string(9) "PHP 5.5.8"
-    string(3) "PHP"
-    string(5) "5.5.8"
-    string(14) "'/usr/bin/php'"
-    bool(false)
-    bool(true)
-    bool(true)
-    bool(true)
-
-### Output on HHVM
-
-    $ hhvm --version
-    HipHop VM 2.4.0-dev (rel)
-    Compiler: heads/master-0-ga98e57cabee7e7f0d14493ab17d5c7ab0157eb98
-    Repo schema: 8d6e69287c41c1f09bb4d327421720d1922cfc67
-
-
-    $ hhvm example.php
-    string(14) "HHVM 2.4.0-dev"
-    string(4) "HHVM"
-    string(9) "2.4.0-dev"
-    string(42) "'/usr/local/src/hhvm/hphp/hhvm/hhvm' --php"
-    bool(true)
-    bool(false)
-    bool(false)
-    bool(true)
-
diff --git a/core/vendor/sebastian/environment/build.xml b/core/vendor/sebastian/environment/build.xml
deleted file mode 100644
index 92fb1c5..0000000
--- a/core/vendor/sebastian/environment/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="environment">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/sebastian/environment/composer.json b/core/vendor/sebastian/environment/composer.json
deleted file mode 100644
index fd3ec7d..0000000
--- a/core/vendor/sebastian/environment/composer.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-    "name": "sebastian/environment",
-    "description": "Provides functionality to handle HHVM/PHP environments",
-    "keywords": ["environment","hhvm","xdebug"],
-    "homepage": "http://www.github.com/sebastianbergmann/environment",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.4"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.3.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/sebastian/environment/phpunit.xml.dist b/core/vendor/sebastian/environment/phpunit.xml.dist
deleted file mode 100644
index f5acecb..0000000
--- a/core/vendor/sebastian/environment/phpunit.xml.dist
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         bootstrap="vendor/autoload.php"
-         strict="true"
-         verbose="true">
- <testsuites>
-  <testsuite name="Environment">
-   <directory>tests</directory>
-  </testsuite>
- </testsuites>
- <filter>
-  <whitelist addUncoveredFilesFromWhitelist="true">
-   <directory>src</directory>
-  </whitelist>
- </filter>
-</phpunit>
diff --git a/core/vendor/sebastian/environment/src/Console.php b/core/vendor/sebastian/environment/src/Console.php
deleted file mode 100644
index 287bce1..0000000
--- a/core/vendor/sebastian/environment/src/Console.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/*
- * This file is part of the Environment package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Environment;
-
-/**
- * @package    Environment
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/environment
- */
-class Console
-{
-    const STDIN  = 0;
-    const STDOUT = 1;
-    const STDERR = 2;
-
-    /**
-     * Returns true if STDOUT supports colorization.
-     *
-     * This code has been copied and adapted from
-     * Symfony\Component\Console\Output\OutputStream.
-     *
-     * @return boolean
-     */
-    public function hasColorSupport()
-    {
-        if (DIRECTORY_SEPARATOR == '\\') {
-            return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
-        }
-
-        if (!defined('STDOUT')) {
-            return false;
-        }
-
-        return $this->isInteractive(STDOUT);
-    }
-
-    /**
-     * Returns the number of columns of the terminal.
-     *
-     * @return integer
-     */
-    public function getNumberOfColumns()
-    {
-        // Windows terminals have a fixed size of 80
-        // but one column is used for the cursor.
-        if (DIRECTORY_SEPARATOR == '\\') {
-            return 79;
-        }
-
-        if (!$this->isInteractive(self::STDIN)) {
-            return 80;
-        }
-
-        if (preg_match('#\d+ (\d+)#', shell_exec('stty size'), $match) === 1) {
-            return (int) $match[1];
-        }
-
-        if (preg_match('#columns = (\d+);#', shell_exec('stty'), $match) === 1) {
-            return (int) $match[1];
-        }
-
-        return 80;
-    }
-
-    /**
-     * Returns if the file descriptor is an interactive terminal or not.
-     *
-     * @param  int|resource $fileDescriptor
-     *
-     * @return boolean
-     */
-    public function isInteractive($fileDescriptor = self::STDOUT)
-    {
-        return function_exists('posix_isatty') && @posix_isatty($fileDescriptor);
-    }
-}
diff --git a/core/vendor/sebastian/environment/src/Runtime.php b/core/vendor/sebastian/environment/src/Runtime.php
deleted file mode 100644
index 74f6e2c..0000000
--- a/core/vendor/sebastian/environment/src/Runtime.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/*
- * This file is part of the Environment package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Environment;
-
-/**
- * Utility class for HHVM/PHP environment handling.
- *
- * @package    Environment
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/environment
- */
-class Runtime
-{
-    /**
-     * @var string
-     */
-    private static $binary;
-
-    /**
-     * Returns true when the runtime used is HHVM or
-     * the runtime used is PHP + Xdebug.
-     *
-     * @return boolean
-     */
-    public function canCollectCodeCoverage()
-    {
-        return $this->isHHVM() || $this->hasXdebug();
-    }
-
-    /**
-     * Returns the path to the binary of the current runtime.
-     * Appends ' --php' to the path when the runtime is HHVM.
-     *
-     * @return string
-     */
-    public function getBinary()
-    {
-        // HHVM
-        if (self::$binary === null && $this->isHHVM()) {
-            if ((self::$binary = getenv('PHP_BINARY')) === false) {
-                self::$binary = PHP_BINARY;
-            }
-
-            self::$binary = escapeshellarg(self::$binary) . ' --php';
-        }
-
-        // PHP >= 5.4.0
-        if (self::$binary === null && defined('PHP_BINARY')) {
-            self::$binary = escapeshellarg(PHP_BINARY);
-        }
-
-        // PHP < 5.4.0
-        if (self::$binary === null) {
-            if (PHP_SAPI == 'cli' && isset($_SERVER['_'])) {
-                if (strpos($_SERVER['_'], 'phpunit') !== false) {
-                    $file = file($_SERVER['_']);
-
-                    if (strpos($file[0], ' ') !== false) {
-                        $tmp = explode(' ', $file[0]);
-                        self::$binary = escapeshellarg(trim($tmp[1]));
-                    } else {
-                        self::$binary = escapeshellarg(ltrim(trim($file[0]), '#!'));
-                    }
-                } elseif (strpos(basename($_SERVER['_']), 'php') !== false) {
-                    self::$binary = escapeshellarg($_SERVER['_']);
-                }
-            }
-        }
-
-        if (self::$binary === null) {
-            $possibleBinaryLocations = array(
-                PHP_BINDIR . '/php',
-                PHP_BINDIR . '/php-cli.exe',
-                PHP_BINDIR . '/php.exe'
-            );
-
-            foreach ($possibleBinaryLocations as $binary) {
-                if (is_readable($binary)) {
-                    self::$binary = escapeshellarg($binary);
-                    break;
-                }
-            }
-        }
-
-        if (self::$binary === null) {
-            self::$binary = 'php';
-        }
-
-        return self::$binary;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNameWithVersion()
-    {
-        return $this->getName() . ' ' . $this->getVersion();
-    }
-
-    /**
-     * @return string
-     */
-    public function getName()
-    {
-        if ($this->isHHVM()) {
-            return 'HHVM';
-        } else {
-            return 'PHP';
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function getVendorUrl()
-    {
-        if ($this->isHHVM()) {
-            return 'http://hhvm.com/';
-        } else {
-            return 'http://php.net/';
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function getVersion()
-    {
-        if ($this->isHHVM()) {
-            return HHVM_VERSION;
-        } else {
-            return PHP_VERSION;
-        }
-    }
-
-    /**
-     * Returns true when the runtime used is PHP and Xdebug is loaded.
-     *
-     * @return boolean
-     */
-    public function hasXdebug()
-    {
-        return $this->isPHP() && extension_loaded('xdebug');
-    }
-
-    /**
-     * Returns true when the runtime used is HHVM.
-     *
-     * @return boolean
-     */
-    public function isHHVM()
-    {
-        return defined('HHVM_VERSION');
-    }
-
-    /**
-     * Returns true when the runtime used is PHP.
-     *
-     * @return boolean
-     */
-    public function isPHP()
-    {
-        return !$this->isHHVM();
-    }
-}
diff --git a/core/vendor/sebastian/environment/tests/ConsoleTest.php b/core/vendor/sebastian/environment/tests/ConsoleTest.php
deleted file mode 100644
index 6b40172..0000000
--- a/core/vendor/sebastian/environment/tests/ConsoleTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/*
- * This file is part of the Environment package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Environment;
-
-use PHPUnit_Framework_TestCase;
-
-class ConsoleTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \SebastianBergmann\Environment\Console
-     */
-    private $console;
-
-    protected function setUp()
-    {
-        $this->console = new Console;
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Console::isInteractive
-     */
-    public function testCanDetectIfStdoutIsInteractiveByDefault()
-    {
-        $this->assertInternalType('boolean', $this->console->isInteractive());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Console::isInteractive
-     */
-    public function testCanDetectIfFileDescriptorIsInteractive()
-    {
-        $this->assertInternalType('boolean', $this->console->isInteractive(STDOUT));
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Console::hasColorSupport
-     * @uses   \SebastianBergmann\Environment\Console::isInteractive
-     */
-    public function testCanDetectColorSupport()
-    {
-        $this->assertInternalType('boolean', $this->console->hasColorSupport());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Console::getNumberOfColumns
-     * @uses   \SebastianBergmann\Environment\Console::isInteractive
-     */
-    public function testCanDetectNumberOfColumns()
-    {
-        $this->assertInternalType('integer', $this->console->getNumberOfColumns());
-    }
-}
diff --git a/core/vendor/sebastian/environment/tests/RuntimeTest.php b/core/vendor/sebastian/environment/tests/RuntimeTest.php
deleted file mode 100644
index 8ea8373..0000000
--- a/core/vendor/sebastian/environment/tests/RuntimeTest.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/*
- * This file is part of the Environment package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Environment;
-
-use PHPUnit_Framework_TestCase;
-
-class RuntimeTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \SebastianBergmann\Environment\Runtime
-     */
-    private $env;
-
-    protected function setUp()
-    {
-        $this->env = new Runtime;
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::canCollectCodeCoverage
-     * @uses   \SebastianBergmann\Environment\Runtime::hasXdebug
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     * @uses   \SebastianBergmann\Environment\Runtime::isPHP
-     */
-    public function testAbilityToCollectCodeCoverageCanBeAssessed()
-    {
-        $this->assertInternalType('boolean', $this->env->canCollectCodeCoverage());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::getBinary
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     */
-    public function testBinaryCanBeRetrieved()
-    {
-        $this->assertInternalType('string', $this->env->getBinary());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::isHHVM
-     */
-    public function testCanBeDetected()
-    {
-        $this->assertInternalType('boolean', $this->env->isHHVM());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::isPHP
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     */
-    public function testCanBeDetected2()
-    {
-        $this->assertInternalType('boolean', $this->env->isPHP());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::hasXdebug
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     * @uses   \SebastianBergmann\Environment\Runtime::isPHP
-     */
-    public function testXdebugCanBeDetected()
-    {
-        $this->assertInternalType('boolean', $this->env->hasXdebug());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::getNameWithVersion
-     * @uses   \SebastianBergmann\Environment\Runtime::getName
-     * @uses   \SebastianBergmann\Environment\Runtime::getVersion
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     * @uses   \SebastianBergmann\Environment\Runtime::isPHP
-     */
-    public function testNameAndVersionCanBeRetrieved()
-    {
-        $this->assertInternalType('string', $this->env->getNameWithVersion());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::getName
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     */
-    public function testNameCanBeRetrieved()
-    {
-        $this->assertInternalType('string', $this->env->getName());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::getVersion
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     */
-    public function testVersionCanBeRetrieved()
-    {
-        $this->assertInternalType('string', $this->env->getVersion());
-    }
-
-    /**
-     * @covers \SebastianBergmann\Environment\Runtime::getVendorUrl
-     * @uses   \SebastianBergmann\Environment\Runtime::isHHVM
-     */
-    public function testVendorUrlCanBeRetrieved()
-    {
-        $this->assertInternalType('string', $this->env->getVendorUrl());
-    }
-}
diff --git a/core/vendor/sebastian/exporter/.gitignore b/core/vendor/sebastian/exporter/.gitignore
deleted file mode 100644
index 3beb10f..0000000
--- a/core/vendor/sebastian/exporter/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-.idea
-phpunit.xml
-composer.lock
-composer.phar
-vendor/
-cache.properties
-build/LICENSE
-build/README.md
-build/*.tgz
diff --git a/core/vendor/sebastian/exporter/.travis.yml b/core/vendor/sebastian/exporter/.travis.yml
deleted file mode 100644
index 657519b..0000000
--- a/core/vendor/sebastian/exporter/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-language: php
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-notifications:
-  email: false
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/6668f52f3dd4e3f81960
-    on_success: always
-    on_failure: always
-    on_start: false
-
diff --git a/core/vendor/sebastian/exporter/LICENSE b/core/vendor/sebastian/exporter/LICENSE
deleted file mode 100644
index 55a13d4..0000000
--- a/core/vendor/sebastian/exporter/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Exporter
-
-Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/exporter/README.md b/core/vendor/sebastian/exporter/README.md
deleted file mode 100644
index 9a40a77..0000000
--- a/core/vendor/sebastian/exporter/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
-Exporter
-========
-
-[![Build Status](https://secure.travis-ci.org/sebastianbergmann/exporter.png?branch=master)](https://travis-ci.org/sebastianbergmann/exporter)
-
-This component provides the functionality to export PHP variables for visualization.
-
-## Usage
-
-Exporting:
-
-```php
-<?php
-use SebastianBergmann\Exporter\Exporter;
-
-$exporter = new Exporter;
-
-/*
-Exception Object &0000000078de0f0d000000002003a261 (
-    'message' => ''
-    'string' => ''
-    'code' => 0
-    'file' => '/home/sebastianbergmann/test.php'
-    'line' => 34
-    'trace' => Array &0 ()
-    'previous' => null
-)
-*/
-
-print $exporter->export(new Exception);
-```
-
-## Data Types
-
-Exporting simple types:
-
-```php
-<?php
-use SebastianBergmann\Exporter\Exporter;
-
-$exporter = new Exporter;
-
-// 46
-print $exporter->export(46);
-
-// 4.0
-print $exporter->export(4.0);
-
-// 'hello, world!'
-print $exporter->export('hello, world!');
-
-// false
-print $exporter->export(false);
-
-// NAN
-print $exporter->export(acos(8));
-
-// -INF
-print $exporter->export(log(0));
-
-// null
-print $exporter->export(null);
-
-// resource(13) of type (stream)
-print $exporter->export(fopen('php://stderr', 'w'));
-
-// Binary String: 0x000102030405
-print $exporter->export(chr(0) . chr(1) . chr(2) . chr(3) . chr(4) . chr(5));
-```
-
-Exporting complex types:
-
-```php
-<?php
-use SebastianBergmann\Exporter\Exporter;
-
-$exporter = new Exporter;
-
-/*
-Array &0 (
-    0 => Array &1 (
-        0 => 1
-        1 => 2
-        2 => 3
-    )
-    1 => Array &2 (
-        0 => ''
-        1 => 0
-        2 => false
-    )
-)
-*/
-
-print $exporter->export(array(array(1,2,3), array("",0,FALSE)));
-
-/*
-Array &0 (
-    'self' => Array &1 (
-        'self' => Array &1
-    )
-)
-*/
-
-$array = array();
-$array['self'] = &$array;
-print $exporter->export($array);
-
-/*
-stdClass Object &0000000003a66dcc0000000025e723e2 (
-    'self' => stdClass Object &0000000003a66dcc0000000025e723e2
-)
-*/
-
-$obj = new stdClass();
-$obj->self = $obj;
-print $exporter->export($obj);
-```
-
-Compact exports:
-
-```php
-<?php
-use SebastianBergmann\Exporter\Exporter;
-
-$exporter = new Exporter;
-
-// Array ()
-print $exporter->shortenedExport(array());
-
-// Array (...)
-print $exporter->shortenedExport(array(1,2,3,4,5));
-
-// stdClass Object ()
-print $exporter->shortenedExport(new stdClass);
-
-// Exception Object (...)
-print $exporter->shortenedExport(new Exception);
-
-// this\nis\na\nsuper\nlong\nstring\nt...\nspace
-print $exporter->shortenedExport(
-<<<LONG_STRING
-this
-is
-a
-super
-long
-string
-that
-wraps
-a
-lot
-and
-eats
-up
-a
-lot
-of
-space
-LONG_STRING
-);
-```
-
-## Installation
-
-To add Exporter as a local, per-project dependency to your project, simply add a dependency on `sebastian/exporter` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Exporter 1.0:
-
-    {
-        "require": {
-            "sebastian/exporter": "1.0.*"
-        }
-    }
diff --git a/core/vendor/sebastian/exporter/build.xml b/core/vendor/sebastian/exporter/build.xml
deleted file mode 100644
index e66a71a..0000000
--- a/core/vendor/sebastian/exporter/build.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="exporter">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-</project>
-
diff --git a/core/vendor/sebastian/exporter/composer.json b/core/vendor/sebastian/exporter/composer.json
deleted file mode 100644
index 723596e..0000000
--- a/core/vendor/sebastian/exporter/composer.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-    "name": "sebastian/exporter",
-    "description": "Provides the functionality to export PHP variables for visualization",
-    "keywords": ["exporter","export"],
-    "homepage": "http://www.github.com/sebastianbergmann/exporter",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        },
-        {
-            "name": "Jeff Welch",
-            "email": "whatthejeff@gmail.com"
-        },
-        {
-            "name": "Volker Dusch",
-            "email": "github@wallbash.com"
-        },
-        {
-            "name": "Adam Harvey",
-            "email": "aharvey@php.net"
-        },
-        {
-            "name": "Bernhard Schussek",
-            "email": "bschussek@2bepublished.at"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3",
-        "sebastian/recursion-context": "~1.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.4"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.2.x-dev"
-        }
-    }
-}
-
diff --git a/core/vendor/sebastian/exporter/phpunit.xml.dist b/core/vendor/sebastian/exporter/phpunit.xml.dist
deleted file mode 100644
index 8d85af6..0000000
--- a/core/vendor/sebastian/exporter/phpunit.xml.dist
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         bootstrap="vendor/autoload.php"
-         beStrictAboutTestsThatDoNotTestAnything="true"
-         beStrictAboutOutputDuringTests="true"
-         beStrictAboutTodoAnnotatedTests="true"
-         checkForUnintentionallyCoveredCode="true"
-         forceCoversAnnotation="true"
-         verbose="true">
- <testsuites>
-  <testsuite name="exporter">
-   <directory>tests</directory>
-  </testsuite>
- </testsuites>
- <filter>
-  <whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="true">
-   <directory>src</directory>
-  </whitelist>
- </filter>
-</phpunit>
-
diff --git a/core/vendor/sebastian/exporter/src/Exporter.php b/core/vendor/sebastian/exporter/src/Exporter.php
deleted file mode 100644
index 47208f3..0000000
--- a/core/vendor/sebastian/exporter/src/Exporter.php
+++ /dev/null
@@ -1,302 +0,0 @@
-<?php
-/*
- * This file is part of the Exporter package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Exporter;
-
-use SebastianBergmann\RecursionContext\Context;
-
-/**
- * A nifty utility for visualizing PHP variables.
- *
- * <code>
- * <?php
- * use SebastianBergmann\Exporter\Exporter;
- *
- * $exporter = new Exporter;
- * print $exporter->export(new Exception);
- * </code>
- *
- * @package    Exporter
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/exporter
- */
-class Exporter
-{
-    /**
-     * Exports a value as a string
-     *
-     * The output of this method is similar to the output of print_r(), but
-     * improved in various aspects:
-     *
-     *  - NULL is rendered as "null" (instead of "")
-     *  - TRUE is rendered as "true" (instead of "1")
-     *  - FALSE is rendered as "false" (instead of "")
-     *  - Strings are always quoted with single quotes
-     *  - Carriage returns and newlines are normalized to \n
-     *  - Recursion and repeated rendering is treated properly
-     *
-     * @param  mixed   $value
-     * @param  integer $indentation The indentation level of the 2nd+ line
-     * @return string
-     */
-    public function export($value, $indentation = 0)
-    {
-        return $this->recursiveExport($value, $indentation);
-    }
-
-    /**
-     * @param  mixed   $data
-     * @param  Context $context
-     * @return string
-     */
-    public function shortenedRecursiveExport(&$data, Context $context = null)
-    {
-        $result = array();
-        $exporter = new Exporter();
-
-        if (!$context) {
-            $context = new Context;
-        }
-
-        $context->add($data);
-
-        foreach ($data as $key => $value) {
-            if (is_array($value)) {
-                if ($context->contains($data[$key]) !== false) {
-                    $result[] = '*RECURSION*';
-                }
-
-                else {
-                    $result[] = sprintf(
-                        'array(%s)',
-                        $this->shortenedRecursiveExport($data[$key], $context)
-                    );
-                }
-            }
-
-            else {
-                $result[] = $exporter->shortenedExport($value);
-            }
-        }
-
-        return join(', ', $result);
-    }
-
-    /**
-     * Exports a value into a single-line string
-     *
-     * The output of this method is similar to the output of
-     * SebastianBergmann\Exporter\Exporter::export. This method guarantees
-     * thought that the result contains now newlines.
-     *
-     * Newlines are replaced by the visible string '\n'. Contents of arrays
-     * and objects (if any) are replaced by '...'.
-     *
-     * @param  mixed $value
-     * @return string
-     * @see    SebastianBergmann\Exporter\Exporter::export
-     */
-    public function shortenedExport($value)
-    {
-        if (is_string($value)) {
-            $string = $this->export($value);
-
-            if (strlen($string) > 40) {
-                $string = substr($string, 0, 30) . '...' . substr($string, -7);
-            }
-
-            return str_replace("\n", '\n', $string);
-        }
-
-        if (is_object($value)) {
-            return sprintf(
-                '%s Object (%s)',
-                get_class($value),
-                count($this->toArray($value)) > 0 ? '...' : ''
-            );
-        }
-
-        if (is_array($value)) {
-            return sprintf(
-                'Array (%s)',
-                count($value) > 0 ? '...' : ''
-            );
-        }
-
-        return $this->export($value);
-    }
-
-    /**
-     * Converts an object to an array containing all of its private, protected
-     * and public properties.
-     *
-     * @param  mixed $value
-     * @return array
-     */
-    public function toArray($value)
-    {
-        if (!is_object($value)) {
-            return (array)$value;
-        }
-
-        $array = array();
-
-        foreach ((array)$value as $key => $val) {
-            // properties are transformed to keys in the following way:
-            // private   $property => "\0Classname\0property"
-            // protected $property => "\0*\0property"
-            // public    $property => "property"
-            if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) {
-                $key = $matches[1];
-            }
-
-            // See https://github.com/php/php-src/commit/5721132
-            if ($key === "\0gcdata") {
-                continue;
-            }
-
-            $array[$key] = $val;
-        }
-
-        // Some internal classes like SplObjectStorage don't work with the
-        // above (fast) mechanism nor with reflection in Zend.
-        // Format the output similarly to print_r() in this case
-        if ($value instanceof \SplObjectStorage) {
-            // However, the fast method does work in HHVM, and exposes the
-            // internal implementation. Hide it again.
-            if (property_exists('\SplObjectStorage', '__storage')) {
-                unset($array['__storage']);
-            } elseif (property_exists('\SplObjectStorage', 'storage')) {
-                unset($array['storage']);
-            }
-
-            if (property_exists('\SplObjectStorage', '__key')) {
-                unset($array['__key']);
-            }
-
-            foreach ($value as $key => $val) {
-                $array[spl_object_hash($val)] = array(
-                    'obj' => $val,
-                    'inf' => $value->getInfo(),
-                );
-            }
-        }
-
-        return $array;
-    }
-
-    /**
-     * Recursive implementation of export
-     *
-     * @param  mixed $value The value to export
-     * @param  integer $indentation The indentation level of the 2nd+ line
-     * @param  \SebastianBergmann\RecursionContext\Context $processed Previously processed objects
-     * @return string
-     * @see    SebastianBergmann\Exporter\Exporter::export
-     */
-    protected function recursiveExport(&$value, $indentation, $processed = null)
-    {
-        if ($value === null) {
-            return 'null';
-        }
-
-        if ($value === true) {
-            return 'true';
-        }
-
-        if ($value === false) {
-            return 'false';
-        }
-
-        if (is_float($value) && floatval(intval($value)) === $value) {
-            return "$value.0";
-        }
-
-        if (is_resource($value)) {
-            return sprintf(
-                'resource(%d) of type (%s)',
-                $value,
-                get_resource_type($value)
-            );
-        }
-
-        if (is_string($value)) {
-            // Match for most non printable chars somewhat taking multibyte chars into account
-            if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) {
-                return 'Binary String: 0x' . bin2hex($value);
-            }
-
-            return "'" .
-            str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) .
-            "'";
-        }
-
-        $whitespace = str_repeat(' ', 4 * $indentation);
-
-        if (!$processed) {
-            $processed = new Context;
-        }
-
-        if (is_array($value)) {
-            if (($key = $processed->contains($value)) !== false) {
-                return 'Array &' . $key;
-            }
-
-            $key    = $processed->add($value);
-            $values = '';
-
-            if (count($value) > 0) {
-                foreach ($value as $k => $v) {
-                    $values .= sprintf(
-                        '%s    %s => %s' . "\n",
-                        $whitespace,
-                        $this->recursiveExport($k, $indentation),
-                        $this->recursiveExport($value[$k], $indentation + 1, $processed)
-                    );
-                }
-
-                $values = "\n" . $values . $whitespace;
-            }
-
-            return sprintf('Array &%s (%s)', $key, $values);
-        }
-
-        if (is_object($value)) {
-            $class = get_class($value);
-
-            if ($hash = $processed->contains($value)) {
-                return sprintf('%s Object &%s', $class, $hash);
-            }
-
-            $hash   = $processed->add($value);
-            $values = '';
-            $array  = $this->toArray($value);
-
-            if (count($array) > 0) {
-                foreach ($array as $k => $v) {
-                    $values .= sprintf(
-                        '%s    %s => %s' . "\n",
-                        $whitespace,
-                        $this->recursiveExport($k, $indentation),
-                        $this->recursiveExport($v, $indentation + 1, $processed)
-                    );
-                }
-
-                $values = "\n" . $values . $whitespace;
-            }
-
-            return sprintf('%s Object &%s (%s)', $class, $hash, $values);
-        }
-
-        return var_export($value, true);
-    }
-}
diff --git a/core/vendor/sebastian/exporter/tests/ExporterTest.php b/core/vendor/sebastian/exporter/tests/ExporterTest.php
deleted file mode 100644
index 6b590bf..0000000
--- a/core/vendor/sebastian/exporter/tests/ExporterTest.php
+++ /dev/null
@@ -1,333 +0,0 @@
-<?php
-/*
- * This file is part of the Exporter package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\Exporter;
-
-/**
- * @covers SebastianBergmann\Exporter\Exporter
- */
-class ExporterTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var Exporter
-     */
-    private $exporter;
-
-    protected function setUp()
-    {
-        $this->exporter = new Exporter;
-    }
-
-    public function exportProvider()
-    {
-        $obj2 = new \stdClass;
-        $obj2->foo = 'bar';
-
-        $obj3 = (object)array(1,2,"Test\r\n",4,5,6,7,8);
-
-        $obj = new \stdClass;
-        //@codingStandardsIgnoreStart
-        $obj->null = null;
-        //@codingStandardsIgnoreEnd
-        $obj->boolean = true;
-        $obj->integer = 1;
-        $obj->double = 1.2;
-        $obj->string = '1';
-        $obj->text = "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext";
-        $obj->object = $obj2;
-        $obj->objectagain = $obj2;
-        $obj->array = array('foo' => 'bar');
-        $obj->self = $obj;
-
-        $storage = new \SplObjectStorage;
-        $storage->attach($obj2);
-        $storage->foo = $obj2;
-
-        return array(
-            array(null, 'null'),
-            array(true, 'true'),
-            array(false, 'false'),
-            array(1, '1'),
-            array(1.0, '1.0'),
-            array(1.2, '1.2'),
-            array(fopen('php://memory', 'r'), 'resource(%d) of type (stream)'),
-            array('1', "'1'"),
-            array(array(array(1,2,3), array(3,4,5)),
-        <<<EOF
-Array &0 (
-    0 => Array &1 (
-        0 => 1
-        1 => 2
-        2 => 3
-    )
-    1 => Array &2 (
-        0 => 3
-        1 => 4
-        2 => 5
-    )
-)
-EOF
-            ),
-            // \n\r and \r is converted to \n
-            array("this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext",
-            <<<EOF
-'this
-is
-a
-very
-very
-very
-very
-very
-very
-long
-text'
-EOF
-            ),
-            array(new \stdClass, 'stdClass Object &%x ()'),
-            array($obj,
-            <<<EOF
-stdClass Object &%x (
-    'null' => null
-    'boolean' => true
-    'integer' => 1
-    'double' => 1.2
-    'string' => '1'
-    'text' => 'this
-is
-a
-very
-very
-very
-very
-very
-very
-long
-text'
-    'object' => stdClass Object &%x (
-        'foo' => 'bar'
-    )
-    'objectagain' => stdClass Object &%x
-    'array' => Array &%d (
-        'foo' => 'bar'
-    )
-    'self' => stdClass Object &%x
-)
-EOF
-            ),
-            array(array(), 'Array &%d ()'),
-            array($storage,
-            <<<EOF
-SplObjectStorage Object &%x (
-    'foo' => stdClass Object &%x (
-        'foo' => 'bar'
-    )
-    '%x' => Array &0 (
-        'obj' => stdClass Object &%x
-        'inf' => null
-    )
-)
-EOF
-            ),
-            array($obj3,
-            <<<EOF
-stdClass Object &%x (
-    0 => 1
-    1 => 2
-    2 => 'Test\n'
-    3 => 4
-    4 => 5
-    5 => 6
-    6 => 7
-    7 => 8
-)
-EOF
-            ),
-            array(
-                chr(0) . chr(1) . chr(2) . chr(3) . chr(4) . chr(5),
-                'Binary String: 0x000102030405'
-            ),
-            array(
-                implode('', array_map('chr', range(0x0e, 0x1f))),
-                'Binary String: 0x0e0f101112131415161718191a1b1c1d1e1f'
-            ),
-            array(
-                chr(0x00) . chr(0x09),
-                'Binary String: 0x0009'
-            ),
-            array(
-                '',
-                "''"
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider exportProvider
-     */
-    public function testExport($value, $expected)
-    {
-        $this->assertStringMatchesFormat(
-            $expected,
-            $this->trimNewline($this->exporter->export($value))
-        );
-    }
-
-    public function testExport2()
-    {
-        if (PHP_VERSION === '5.3.3') {
-            $this->markTestSkipped('Skipped due to "Nesting level too deep - recursive dependency?" fatal error');
-        }
-
-        $obj = new \stdClass;
-        $obj->foo = 'bar';
-
-        $array = array(
-            0 => 0,
-            'null' => null,
-            'boolean' => true,
-            'integer' => 1,
-            'double' => 1.2,
-            'string' => '1',
-            'text' => "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext",
-            'object' => $obj,
-            'objectagain' => $obj,
-            'array' => array('foo' => 'bar'),
-        );
-
-        $array['self'] = &$array;
-
-        $expected = <<<EOF
-Array &%d (
-    0 => 0
-    'null' => null
-    'boolean' => true
-    'integer' => 1
-    'double' => 1.2
-    'string' => '1'
-    'text' => 'this
-is
-a
-very
-very
-very
-very
-very
-very
-long
-text'
-    'object' => stdClass Object &%x (
-        'foo' => 'bar'
-    )
-    'objectagain' => stdClass Object &%x
-    'array' => Array &%d (
-        'foo' => 'bar'
-    )
-    'self' => Array &%d (
-        0 => 0
-        'null' => null
-        'boolean' => true
-        'integer' => 1
-        'double' => 1.2
-        'string' => '1'
-        'text' => 'this
-is
-a
-very
-very
-very
-very
-very
-very
-long
-text'
-        'object' => stdClass Object &%x
-        'objectagain' => stdClass Object &%x
-        'array' => Array &%d (
-            'foo' => 'bar'
-        )
-        'self' => Array &%d
-    )
-)
-EOF;
-
-        $this->assertStringMatchesFormat(
-            $expected,
-            $this->trimNewline($this->exporter->export($array))
-        );
-    }
-
-    public function shortenedExportProvider()
-    {
-        $obj = new \stdClass;
-        $obj->foo = 'bar';
-
-        $array = array(
-            'foo' => 'bar',
-        );
-
-        return array(
-            array(null, 'null'),
-            array(true, 'true'),
-            array(1, '1'),
-            array(1.0, '1.0'),
-            array(1.2, '1.2'),
-            array('1', "'1'"),
-            // \n\r and \r is converted to \n
-            array("this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext", "'this\\nis\\na\\nvery\\nvery\\nvery\\nvery...g\\ntext'"),
-            array(new \stdClass, 'stdClass Object ()'),
-            array($obj, 'stdClass Object (...)'),
-            array(array(), 'Array ()'),
-            array($array, 'Array (...)'),
-        );
-    }
-
-    /**
-     * @dataProvider shortenedExportProvider
-     */
-    public function testShortenedExport($value, $expected)
-    {
-        $this->assertSame(
-            $expected,
-            $this->trimNewline($this->exporter->shortenedExport($value))
-        );
-    }
-
-    public function provideNonBinaryMultibyteStrings()
-    {
-        return array(
-            array(implode('', array_map('chr', range(0x09, 0x0d))), 5),
-            array(implode('', array_map('chr', range(0x20, 0x7f))), 96),
-            array(implode('', array_map('chr', range(0x80, 0xff))), 128),
-        );
-    }
-
-
-    /**
-     * @dataProvider provideNonBinaryMultibyteStrings
-     */
-    public function testNonBinaryStringExport($value, $expectedLength)
-    {
-        $this->assertRegExp(
-            "~'.{{$expectedLength}}'\$~s",
-            $this->exporter->export($value)
-        );
-    }
-
-    public function testNonObjectCanBeReturnedAsArray()
-    {
-        $this->assertEquals(array(true), $this->exporter->toArray(true));
-    }
-
-    private function trimNewline($string)
-    {
-        return preg_replace('/[ ]*\n/', "\n", $string);
-    }
-}
diff --git a/core/vendor/sebastian/global-state/.gitignore b/core/vendor/sebastian/global-state/.gitignore
deleted file mode 100644
index a288f68..0000000
--- a/core/vendor/sebastian/global-state/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.idea
-composer.lock
-composer.phar
-vendor/
-cache.properties
diff --git a/core/vendor/sebastian/global-state/.travis.yml b/core/vendor/sebastian/global-state/.travis.yml
deleted file mode 100644
index 41edae3..0000000
--- a/core/vendor/sebastian/global-state/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: php
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-script: ./vendor/bin/phpunit --configuration ./build/phpunit.xml
-
-notifications:
-  email: false
-  irc: "irc.freenode.org#phpunit"
diff --git a/core/vendor/sebastian/global-state/LICENSE b/core/vendor/sebastian/global-state/LICENSE
deleted file mode 100644
index b6176e0..0000000
--- a/core/vendor/sebastian/global-state/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-GlobalState
-
-Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/global-state/README.md b/core/vendor/sebastian/global-state/README.md
deleted file mode 100644
index 78fd117..0000000
--- a/core/vendor/sebastian/global-state/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# GlobalState
-
-Snapshotting of global state, factored out of PHPUnit into a stand-alone component.
-
-## Installation
-
-To add this package as a local, per-project dependency to your project, simply add a dependency on `sebastian/global-state` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on GlobalState:
-
-    {
-        "require": {
-            "sebastian/global-state": "1.0.*"
-        }
-    }
diff --git a/core/vendor/sebastian/global-state/build.xml b/core/vendor/sebastian/global-state/build.xml
deleted file mode 100644
index 63c5445..0000000
--- a/core/vendor/sebastian/global-state/build.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="global-state">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <exec executable="${basedir}/vendor/bin/phpunit" failonerror="true">
-   <arg value="--configuration"/>
-   <arg path="${basedir}/build/phpunit.xml"/>
-  </exec>
- </target>
-</project>
diff --git a/core/vendor/sebastian/global-state/build/phpunit.xml b/core/vendor/sebastian/global-state/build/phpunit.xml
deleted file mode 100644
index 9fef0a0..0000000
--- a/core/vendor/sebastian/global-state/build/phpunit.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.2/phpunit.xsd"
-         bootstrap="../vendor/autoload.php"
-         backupGlobals="false"
-         verbose="true">
-  <testsuite name="GlobalState">
-    <directory suffix="Test.php">../tests</directory>
-  </testsuite>
-
-  <filter>
-    <whitelist processUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">../src</directory>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/sebastian/global-state/composer.json b/core/vendor/sebastian/global-state/composer.json
deleted file mode 100644
index 7e8849b..0000000
--- a/core/vendor/sebastian/global-state/composer.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-    "name": "sebastian/global-state",
-    "description": "Snapshotting of global state",
-    "keywords": ["global state"],
-    "homepage": "http://www.github.com/sebastianbergmann/global-state",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.2"
-    },
-    "suggest": {
-        "ext-uopz": "*"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "autoload-dev": {
-        "classmap": [
-            "tests/_fixture/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0-dev"
-        }
-    }
-}
diff --git a/core/vendor/sebastian/global-state/src/Blacklist.php b/core/vendor/sebastian/global-state/src/Blacklist.php
deleted file mode 100644
index 12d900f..0000000
--- a/core/vendor/sebastian/global-state/src/Blacklist.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState;
-
-use ReflectionClass;
-
-/**
- * A blacklist for global state elements that should not be snapshotted.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class Blacklist
-{
-    /**
-     * @var array
-     */
-    private $globalVariables = array();
-
-    /**
-     * @var array
-     */
-    private $classes = array();
-
-    /**
-     * @var array
-     */
-    private $classNamePrefixes = array();
-
-    /**
-     * @var array
-     */
-    private $parentClasses = array();
-
-    /**
-     * @var array
-     */
-    private $interfaces = array();
-
-    /**
-     * @var array
-     */
-    private $staticAttributes = array();
-
-    /**
-     * @param string $variableName
-     */
-    public function addGlobalVariable($variableName)
-    {
-        $this->globalVariables[$variableName] = true;
-    }
-
-    /**
-     * @param string $className
-     */
-    public function addClass($className)
-    {
-        $this->classes[] = $className;
-    }
-
-    /**
-     * @param string $className
-     */
-    public function addSubclassesOf($className)
-    {
-        $this->parentClasses[] = $className;
-    }
-
-    /**
-     * @param string $interfaceName
-     */
-    public function addImplementorsOf($interfaceName)
-    {
-        $this->interfaces[] = $interfaceName;
-    }
-
-    /**
-     * @param string $classNamePrefix
-     */
-    public function addClassNamePrefix($classNamePrefix)
-    {
-        $this->classNamePrefixes[] = $classNamePrefix;
-    }
-
-    /**
-     * @param string $className
-     * @param string $attributeName
-     */
-    public function addStaticAttribute($className, $attributeName)
-    {
-        if (!isset($this->staticAttributes[$className])) {
-            $this->staticAttributes[$className] = array();
-        }
-
-        $this->staticAttributes[$className][$attributeName] = true;
-    }
-
-    /**
-     * @param  string $variableName
-     * @return boolean
-     */
-    public function isGlobalVariableBlacklisted($variableName)
-    {
-        return isset($this->globalVariables[$variableName]);
-    }
-
-    /**
-     * @param  string $className
-     * @param  string $attributeName
-     * @return boolean
-     */
-    public function isStaticAttributeBlacklisted($className, $attributeName)
-    {
-        if (in_array($className, $this->classes)) {
-            return true;
-        }
-
-        foreach ($this->classNamePrefixes as $prefix) {
-            if (strpos($className, $prefix) === 0) {
-                return true;
-            }
-        }
-
-        $class = new ReflectionClass($className);
-
-        foreach ($this->parentClasses as $type) {
-            if ($class->isSubclassOf($type)) {
-                return true;
-            }
-        }
-
-        foreach ($this->interfaces as $type) {
-            if ($class->implementsInterface($type)) {
-                return true;
-            }
-        }
-
-        if (isset($this->staticAttributes[$className][$attributeName])) {
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/sebastian/global-state/src/Exception.php b/core/vendor/sebastian/global-state/src/Exception.php
deleted file mode 100644
index 0436886..0000000
--- a/core/vendor/sebastian/global-state/src/Exception.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-interface Exception
-{
-}
diff --git a/core/vendor/sebastian/global-state/src/Restorer.php b/core/vendor/sebastian/global-state/src/Restorer.php
deleted file mode 100644
index a5f0e55..0000000
--- a/core/vendor/sebastian/global-state/src/Restorer.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState;
-
-use ReflectionProperty;
-
-/**
- * Restorer of snapshots of global state.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class Restorer
-{
-    /**
-     * Deletes function definitions that are not defined in a snapshot.
-     *
-     * @param  Snapshot $snapshot
-     * @throws RuntimeException when the uopz_delete() function is not available
-     * @see    https://github.com/krakjoe/uopz
-     */
-    public function restoreFunctions(Snapshot $snapshot)
-    {
-        if (!function_exists('uopz_delete')) {
-            throw new RuntimeException('The uopz_delete() function is required for this operation');
-        }
-
-        $functions = get_defined_functions();
-
-        foreach (array_diff($functions['user'], $snapshot->functions()) as $function) {
-            uopz_delete($function);
-        }
-    }
-
-    /**
-     * Restores all global and super-global variables from a snapshot.
-     *
-     * @param Snapshot $snapshot
-     */
-    public function restoreGlobalVariables(Snapshot $snapshot)
-    {
-        $superGlobalArrays = $snapshot->superGlobalArrays();
-
-        foreach ($superGlobalArrays as $superGlobalArray) {
-            $this->restoreSuperGlobalArray($snapshot, $superGlobalArray);
-        }
-
-        $globalVariables = $snapshot->globalVariables();
-
-        foreach (array_keys($GLOBALS) as $key) {
-            if ($key != 'GLOBALS' &&
-                !in_array($key, $superGlobalArrays) &&
-                !$snapshot->blacklist()->isGlobalVariableBlacklisted($key)) {
-                if (isset($globalVariables[$key])) {
-                    $GLOBALS[$key] = $globalVariables[$key];
-                } else {
-                    unset($GLOBALS[$key]);
-                }
-            }
-        }
-    }
-
-    /**
-     * Restores all static attributes in user-defined classes from this snapshot.
-     *
-     * @param Snapshot $snapshot
-     */
-    public function restoreStaticAttributes(Snapshot $snapshot)
-    {
-        foreach ($snapshot->staticAttributes() as $className => $staticAttributes) {
-            foreach ($staticAttributes as $name => $value) {
-                $reflector = new ReflectionProperty($className, $name);
-                $reflector->setAccessible(true);
-                $reflector->setValue($value);
-            }
-        }
-    }
-
-    /**
-     * Restores a super-global variable array from this snapshot.
-     *
-     * @param Snapshot $snapshot
-     * @param $superGlobalArray
-     */
-    private function restoreSuperGlobalArray(Snapshot $snapshot, $superGlobalArray)
-    {
-        $superGlobalVariables = $snapshot->superGlobalVariables();
-
-        if (isset($GLOBALS[$superGlobalArray]) &&
-            is_array($GLOBALS[$superGlobalArray]) &&
-            isset($superGlobalVariables[$superGlobalArray])) {
-            $keys = array_keys(
-                array_merge(
-                    $GLOBALS[$superGlobalArray],
-                    $superGlobalVariables[$superGlobalArray]
-                )
-            );
-
-            foreach ($keys as $key) {
-                if (isset($superGlobalVariables[$superGlobalArray][$key])) {
-                    $GLOBALS[$superGlobalArray][$key] = $superGlobalVariables[$superGlobalArray][$key];
-                } else {
-                    unset($GLOBALS[$superGlobalArray][$key]);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/sebastian/global-state/src/RuntimeException.php b/core/vendor/sebastian/global-state/src/RuntimeException.php
deleted file mode 100644
index e25e208..0000000
--- a/core/vendor/sebastian/global-state/src/RuntimeException.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class RuntimeException extends \RuntimeException implements Exception
-{
-}
diff --git a/core/vendor/sebastian/global-state/src/Snapshot.php b/core/vendor/sebastian/global-state/src/Snapshot.php
deleted file mode 100644
index 5fb08be..0000000
--- a/core/vendor/sebastian/global-state/src/Snapshot.php
+++ /dev/null
@@ -1,443 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState;
-
-use Closure;
-use ReflectionClass;
-
-/**
- * A snapshot of global state.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class Snapshot
-{
-    /**
-     * @var Blacklist
-     */
-    private $blacklist;
-
-    /**
-     * @var array
-     */
-    private $globalVariables = array();
-
-    /**
-     * @var array
-     */
-    private $superGlobalArrays = array();
-
-    /**
-     * @var array
-     */
-    private $superGlobalVariables = array();
-
-    /**
-     * @var array
-     */
-    private $staticAttributes = array();
-
-    /**
-     * @var array
-     */
-    private $iniSettings = array();
-
-    /**
-     * @var array
-     */
-    private $includedFiles = array();
-
-    /**
-     * @var array
-     */
-    private $constants = array();
-
-    /**
-     * @var array
-     */
-    private $functions = array();
-
-    /**
-     * @var array
-     */
-    private $interfaces = array();
-
-    /**
-     * @var array
-     */
-    private $classes = array();
-
-    /**
-     * @var array
-     */
-    private $traits = array();
-
-    /**
-     * Creates a snapshot of the current global state.
-     *
-     * @param Blacklist $blacklist
-     * @param boolean   $includeGlobalVariables
-     * @param boolean   $includeStaticAttributes
-     * @param boolean   $includeConstants
-     * @param boolean   $includeFunctions
-     * @param boolean   $includeClasses
-     * @param boolean   $includeInterfaces
-     * @param boolean   $includeTraits
-     * @param boolean   $includeIniSettings
-     * @param boolean   $includeIncludedFiles
-     */
-    public function __construct(Blacklist $blacklist = null, $includeGlobalVariables = true, $includeStaticAttributes = true, $includeConstants = true, $includeFunctions = true, $includeClasses = true, $includeInterfaces = true, $includeTraits = true, $includeIniSettings = true, $includeIncludedFiles = true)
-    {
-        if ($blacklist === null) {
-            $blacklist = new Blacklist;
-        }
-
-        $this->blacklist = $blacklist;
-
-        if ($includeConstants) {
-            $this->snapshotConstants();
-        }
-
-        if ($includeFunctions) {
-            $this->snapshotFunctions();
-        }
-
-        if ($includeClasses || $includeStaticAttributes) {
-            $this->snapshotClasses();
-        }
-
-        if ($includeInterfaces) {
-            $this->snapshotInterfaces();
-        }
-
-        if ($includeGlobalVariables) {
-            $this->setupSuperGlobalArrays();
-            $this->snapshotGlobals();
-        }
-
-        if ($includeStaticAttributes) {
-            $this->snapshotStaticAttributes();
-        }
-
-        if ($includeIniSettings) {
-            $this->iniSettings = ini_get_all(null, false);
-        }
-
-        if ($includeIncludedFiles) {
-            $this->includedFiles = get_included_files();
-        }
-
-        if (function_exists('get_declared_traits')) {
-            $this->traits = get_declared_traits();
-        }
-    }
-
-    /**
-     * @return Blacklist
-     */
-    public function blacklist()
-    {
-        return $this->blacklist;
-    }
-
-    /**
-     * @return array
-     */
-    public function globalVariables()
-    {
-        return $this->globalVariables;
-    }
-
-    /**
-     * @return array
-     */
-    public function superGlobalVariables()
-    {
-        return $this->superGlobalVariables;
-    }
-
-    /**
-     * Returns a list of all super-global variable arrays.
-     *
-     * @return array
-     */
-    public function superGlobalArrays()
-    {
-        return $this->superGlobalArrays;
-    }
-
-    /**
-     * @return array
-     */
-    public function staticAttributes()
-    {
-        return $this->staticAttributes;
-    }
-
-    /**
-     * @return array
-     */
-    public function iniSettings()
-    {
-        return $this->iniSettings;
-    }
-
-    /**
-     * @return array
-     */
-    public function includedFiles()
-    {
-        return $this->includedFiles;
-    }
-
-    /**
-     * @return array
-     */
-    public function constants()
-    {
-        return $this->constants;
-    }
-
-    /**
-     * @return array
-     */
-    public function functions()
-    {
-        return $this->functions;
-    }
-
-    /**
-     * @return array
-     */
-    public function interfaces()
-    {
-        return $this->interfaces;
-    }
-
-    /**
-     * @return array
-     */
-    public function classes()
-    {
-        return $this->classes;
-    }
-
-    /**
-     * @return array
-     */
-    public function traits()
-    {
-        return $this->traits;
-    }
-
-    /**
-     * Creates a snapshot user-defined constants.
-     */
-    private function snapshotConstants()
-    {
-        $constants = get_defined_constants(true);
-
-        if (isset($constants['user'])) {
-            $this->constants = $constants['user'];
-        }
-    }
-
-    /**
-     * Creates a snapshot user-defined functions.
-     */
-    private function snapshotFunctions()
-    {
-        $functions = get_defined_functions();
-
-        $this->functions = $functions['user'];
-    }
-
-    /**
-     * Creates a snapshot user-defined classes.
-     */
-    private function snapshotClasses()
-    {
-        foreach (array_reverse(get_declared_classes()) as $className) {
-            $class = new ReflectionClass($className);
-
-            if (!$class->isUserDefined()) {
-                break;
-            }
-
-            $this->classes[] = $className;
-        }
-
-        $this->classes = array_reverse($this->classes);
-    }
-
-    /**
-     * Creates a snapshot user-defined interfaces.
-     */
-    private function snapshotInterfaces()
-    {
-        foreach (array_reverse(get_declared_interfaces()) as $interfaceName) {
-            $class = new ReflectionClass($interfaceName);
-
-            if (!$class->isUserDefined()) {
-                break;
-            }
-
-            $this->interfaces[] = $interfaceName;
-        }
-
-        $this->interfaces = array_reverse($this->interfaces);
-    }
-
-    /**
-     * Creates a snapshot of all global and super-global variables.
-     */
-    private function snapshotGlobals()
-    {
-        $superGlobalArrays = $this->superGlobalArrays();
-
-        foreach ($superGlobalArrays as $superGlobalArray) {
-            $this->snapshotSuperGlobalArray($superGlobalArray);
-        }
-
-        foreach (array_keys($GLOBALS) as $key) {
-            if ($key != 'GLOBALS' &&
-                !in_array($key, $superGlobalArrays) &&
-                $this->canBeSerialized($GLOBALS[$key]) &&
-                !$this->blacklist->isGlobalVariableBlacklisted($key)) {
-                $this->globalVariables[$key] = unserialize(serialize($GLOBALS[$key]));
-            }
-        }
-    }
-
-    /**
-     * Creates a snapshot a super-global variable array.
-     *
-     * @param $superGlobalArray
-     */
-    private function snapshotSuperGlobalArray($superGlobalArray)
-    {
-        $this->superGlobalVariables[$superGlobalArray] = array();
-
-        if (isset($GLOBALS[$superGlobalArray]) && is_array($GLOBALS[$superGlobalArray])) {
-            foreach ($GLOBALS[$superGlobalArray] as $key => $value) {
-                $this->superGlobalVariables[$superGlobalArray][$key] = unserialize(serialize($value));
-            }
-        }
-    }
-
-    /**
-     * Creates a snapshot of all static attributes in user-defined classes.
-     */
-    private function snapshotStaticAttributes()
-    {
-        foreach ($this->classes as $className) {
-            $class    = new ReflectionClass($className);
-            $snapshot = array();
-
-            foreach ($class->getProperties() as $attribute) {
-                if ($attribute->isStatic()) {
-                    $name = $attribute->getName();
-
-                    if ($this->blacklist->isStaticAttributeBlacklisted($className, $name)) {
-                        continue;
-                    }
-
-                    $attribute->setAccessible(true);
-                    $value = $attribute->getValue();
-
-                    if ($this->canBeSerialized($value)) {
-                        $snapshot[$name] = unserialize(serialize($value));
-                    }
-                }
-            }
-
-            if (!empty($snapshot)) {
-                $this->staticAttributes[$className] = $snapshot;
-            }
-        }
-    }
-
-    /**
-     * Returns a list of all super-global variable arrays.
-     *
-     * @return array
-     */
-    private function setupSuperGlobalArrays()
-    {
-        $this->superGlobalArrays = array(
-            '_ENV',
-            '_POST',
-            '_GET',
-            '_COOKIE',
-            '_SERVER',
-            '_FILES',
-            '_REQUEST'
-        );
-
-        if (ini_get('register_long_arrays') == '1') {
-            $this->superGlobalArrays = array_merge(
-                $this->superGlobalArrays,
-                array(
-                    'HTTP_ENV_VARS',
-                    'HTTP_POST_VARS',
-                    'HTTP_GET_VARS',
-                    'HTTP_COOKIE_VARS',
-                    'HTTP_SERVER_VARS',
-                    'HTTP_POST_FILES'
-                )
-            );
-        }
-    }
-
-    /**
-     * @param  mixed $variable
-     * @return boolean
-     * @todo   Implement this properly
-     */
-    private function canBeSerialized($variable) {
-        return !$variable instanceof Closure;
-    }
-}
diff --git a/core/vendor/sebastian/global-state/tests/BlacklistTest.php b/core/vendor/sebastian/global-state/tests/BlacklistTest.php
deleted file mode 100644
index d5a2a75..0000000
--- a/core/vendor/sebastian/global-state/tests/BlacklistTest.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState;
-
-use PHPUnit_Framework_TestCase;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class BlacklistTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \SebastianBergmann\GlobalState\Blacklist
-     */
-    private $blacklist;
-
-    protected function setUp()
-    {
-        $this->blacklist = new Blacklist;
-    }
-
-    public function testGlobalVariableThatIsNotBlacklistedIsNotTreatedAsBlacklisted()
-    {
-        $this->assertFalse($this->blacklist->isGlobalVariableBlacklisted('variable'));
-    }
-
-    public function testGlobalVariableCanBeBlacklisted()
-    {
-        $this->blacklist->addGlobalVariable('variable');
-
-        $this->assertTrue($this->blacklist->isGlobalVariableBlacklisted('variable'));
-    }
-
-    public function testStaticAttributeThatIsNotBlacklistedIsNotTreatedAsBlacklisted()
-    {
-        $this->assertFalse(
-            $this->blacklist->isStaticAttributeBlacklisted(
-                'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
-                'attribute'
-            )
-        );
-    }
-
-    public function testClassCanBeBlacklisted()
-    {
-        $this->blacklist->addClass('SebastianBergmann\GlobalState\TestFixture\BlacklistedClass');
-
-        $this->assertTrue(
-            $this->blacklist->isStaticAttributeBlacklisted(
-                'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
-                'attribute'
-            )
-        );
-    }
-
-    public function testSubclassesCanBeBlacklisted()
-    {
-        $this->blacklist->addSubclassesOf('SebastianBergmann\GlobalState\TestFixture\BlacklistedClass');
-
-        $this->assertTrue(
-            $this->blacklist->isStaticAttributeBlacklisted(
-                'SebastianBergmann\GlobalState\TestFixture\BlacklistedChildClass',
-                'attribute'
-            )
-        );
-    }
-
-    public function testImplementorsCanBeBlacklisted()
-    {
-        $this->blacklist->addImplementorsOf('SebastianBergmann\GlobalState\TestFixture\BlacklistedInterface');
-
-        $this->assertTrue(
-            $this->blacklist->isStaticAttributeBlacklisted(
-                'SebastianBergmann\GlobalState\TestFixture\BlacklistedImplementor',
-                'attribute'
-            )
-        );
-    }
-
-    public function testClassNamePrefixesCanBeBlacklisted()
-    {
-        $this->blacklist->addClassNamePrefix('SebastianBergmann\GlobalState');
-
-        $this->assertTrue(
-            $this->blacklist->isStaticAttributeBlacklisted(
-                'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
-                'attribute'
-            )
-        );
-    }
-
-    public function testStaticAttributeCanBeBlacklisted()
-    {
-        $this->blacklist->addStaticAttribute(
-            'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
-            'attribute'
-        );
-
-        $this->assertTrue(
-            $this->blacklist->isStaticAttributeBlacklisted(
-                'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
-                'attribute'
-            )
-        );
-    }
-}
diff --git a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php b/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php
deleted file mode 100644
index 99f7fdb..0000000
--- a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState\TestFixture;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class BlacklistedChildClass extends BlacklistedClass
-{
-}
diff --git a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php b/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php
deleted file mode 100644
index f1582c7..0000000
--- a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState\TestFixture;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class BlacklistedClass
-{
-    private static $attribute;
-}
diff --git a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php b/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php
deleted file mode 100644
index c80d987..0000000
--- a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState\TestFixture;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-class BlacklistedImplementor implements BlacklistedInterface
-{
-    private static $attribute;
-}
diff --git a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php b/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php
deleted file mode 100644
index f3941fd..0000000
--- a/core/vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * GlobalState
- *
- * Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   * Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in
- *     the documentation and/or other materials provided with the
- *     distribution.
- *
- *   * Neither the name of Sebastian Bergmann nor the names of his
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-
-namespace SebastianBergmann\GlobalState\TestFixture;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright  2001-2014 Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       http://www.github.com/sebastianbergmann/global-state
- */
-interface BlacklistedInterface
-{
-}
diff --git a/core/vendor/sebastian/recursion-context/.gitignore b/core/vendor/sebastian/recursion-context/.gitignore
deleted file mode 100644
index 3beb10f..0000000
--- a/core/vendor/sebastian/recursion-context/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-.idea
-phpunit.xml
-composer.lock
-composer.phar
-vendor/
-cache.properties
-build/LICENSE
-build/README.md
-build/*.tgz
diff --git a/core/vendor/sebastian/recursion-context/.travis.yml b/core/vendor/sebastian/recursion-context/.travis.yml
deleted file mode 100644
index f239e93..0000000
--- a/core/vendor/sebastian/recursion-context/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-  - hhvm-nightly
-
-sudo: false
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-script: ./vendor/bin/phpunit
-
-notifications:
-  email: false
-  irc: "irc.freenode.org#phpunit"
diff --git a/core/vendor/sebastian/recursion-context/LICENSE b/core/vendor/sebastian/recursion-context/LICENSE
deleted file mode 100644
index f8c30c2..0000000
--- a/core/vendor/sebastian/recursion-context/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Recursion Context
-
-Copyright (c) 2002-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/recursion-context/README.md b/core/vendor/sebastian/recursion-context/README.md
deleted file mode 100644
index bd43985..0000000
--- a/core/vendor/sebastian/recursion-context/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Recursion Context
-
-...
-
-## Installation
-
-To add Recursion Context as a local, per-project dependency to your project, simply add a dependency on `sebastian/recursion-context` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Recursion Context 1.0:
-
-    {
-        "require": {
-            "sebastian/recursion-context": "~1.0"
-        }
-    }
diff --git a/core/vendor/sebastian/recursion-context/build.xml b/core/vendor/sebastian/recursion-context/build.xml
deleted file mode 100644
index b4fd193..0000000
--- a/core/vendor/sebastian/recursion-context/build.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="recursion-context">
- <target name="clean" description="Cleanup build artifacts">
-  <delete dir="${basedir}/vendor"/>
-  <delete file="${basedir}/composer.lock"/>
- </target>
-
- <target name="composer" depends="clean" description="Install dependencies with Composer">
-  <tstamp>
-   <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
-  </tstamp>
-  <delete>
-   <fileset dir="${basedir}">
-    <include name="composer.phar" />
-    <date datetime="${thirty.days.ago}" when="before"/>
-   </fileset>
-  </delete>
-
-  <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>
-
-  <exec executable="php">
-   <arg value="composer.phar"/>
-   <arg value="install"/>
-  </exec>
- </target>
-</project>
-
diff --git a/core/vendor/sebastian/recursion-context/composer.json b/core/vendor/sebastian/recursion-context/composer.json
deleted file mode 100644
index fed033d..0000000
--- a/core/vendor/sebastian/recursion-context/composer.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "name": "sebastian/recursion-context",
-    "description": "Provides functionality to recursively process PHP variables",
-    "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de"
-        },
-        {
-            "name": "Jeff Welch",
-            "email": "whatthejeff@gmail.com"
-        },
-        {
-            "name": "Adam Harvey",
-            "email": "aharvey@php.net"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.4"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/core/vendor/sebastian/recursion-context/phpunit.xml.dist b/core/vendor/sebastian/recursion-context/phpunit.xml.dist
deleted file mode 100644
index 757e3e6..0000000
--- a/core/vendor/sebastian/recursion-context/phpunit.xml.dist
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         bootstrap="vendor/autoload.php"
-         beStrictAboutTestsThatDoNotTestAnything="true"
-         beStrictAboutOutputDuringTests="true"
-         beStrictAboutTodoAnnotatedTests="true"
-         checkForUnintentionallyCoveredCode="true"
-         forceCoversAnnotation="true"
-         verbose="true">
-<testsuites>
-  <testsuite name="recursion-context">
-   <directory>tests</directory>
-  </testsuite>
- </testsuites>
- <filter>
-  <whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="true">
-   <directory>src</directory>
-  </whitelist>
- </filter>
-</phpunit>
diff --git a/core/vendor/sebastian/recursion-context/src/Context.php b/core/vendor/sebastian/recursion-context/src/Context.php
deleted file mode 100644
index b431e07..0000000
--- a/core/vendor/sebastian/recursion-context/src/Context.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/*
- * This file is part of the Recursion Context package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\RecursionContext;
-
-/**
- * A context containing previously processed arrays and objects
- * when recursively processing a value.
- *
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Adam Harvey <aharvey@php.net>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/recursion-context
- */
-final class Context
-{
-    /**
-     * @var array[]
-     */
-    private $arrays;
-
-    /**
-     * @var \SplObjectStorage
-     */
-    private $objects;
-
-    /**
-     * Initialises the context
-     */
-    public function __construct()
-    {
-        $this->arrays  = array();
-        $this->objects = new \SplObjectStorage;
-    }
-
-    /**
-     * Adds a value to the context.
-     *
-     * @param  array|object $value      The value to add.
-     * @return integer|string           The ID of the stored value, either as
-     *                                  a string or integer.
-     * @throws InvalidArgumentException Thrown if $value is not an array or
-     *                                  object
-     */
-    public function add(&$value)
-    {
-        if (is_array($value)) {
-            return $this->addArray($value);
-        }
-
-        else if (is_object($value)) {
-            return $this->addObject($value);
-        }
-
-        throw new InvalidArgumentException(
-            'Only arrays and objects are supported'
-        );
-    }
-
-    /**
-     * Checks if the given value exists within the context.
-     *
-     * @param  array|object $value  The value to check.
-     * @return integer|string|false The string or integer ID of the stored
-     *                              value if it has already been seen, or
-     *                              false if the value is not stored.
-     * @throws InvalidArgumentException Thrown if $value is not an array or
-     *                                  object
-     */
-    public function contains(&$value)
-    {
-        if (is_array($value)) {
-            return $this->containsArray($value);
-        }
-
-        else if (is_object($value)) {
-            return $this->containsObject($value);
-        }
-
-        throw new InvalidArgumentException(
-            'Only arrays and objects are supported'
-        );
-    }
-
-    /**
-     * @param  array $array
-     * @return bool|int
-     */
-    private function addArray(array &$array)
-    {
-        $key = $this->containsArray($array);
-
-        if ($key !== false) {
-            return $key;
-        }
-
-        $this->arrays[] = &$array;
-
-        return count($this->arrays) - 1;
-    }
-
-    /**
-     * @param  object $object
-     * @return string
-     */
-    private function addObject($object)
-    {
-        if (!$this->objects->contains($object)) {
-            $this->objects->attach($object);
-        }
-
-        return spl_object_hash($object);
-    }
-
-    /**
-     * @param  array $array
-     * @return integer|false
-     */
-    private function containsArray(array &$array)
-    {
-        $keys = array_keys($this->arrays, $array, true);
-        $hash = '_Key_' . hash('sha512', microtime(true));
-
-        foreach ($keys as $key) {
-            $this->arrays[$key][$hash] = $hash;
-
-            if (isset($array[$hash]) && $array[$hash] === $hash) {
-                unset($this->arrays[$key][$hash]);
-                return $key;
-            }
-
-            unset($this->arrays[$key][$hash]);
-        }
-
-        return false;
-    }
-
-    /**
-     * @param  object $value
-     * @return string|false
-     */
-    private function containsObject($value)
-    {
-        if ($this->objects->contains($value)) {
-            return spl_object_hash($value);
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/sebastian/recursion-context/src/Exception.php b/core/vendor/sebastian/recursion-context/src/Exception.php
deleted file mode 100644
index 0986cc2..0000000
--- a/core/vendor/sebastian/recursion-context/src/Exception.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * This file is part of the Recursion Context package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\RecursionContext;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Adam Harvey <aharvey@php.net>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/recursion-context
- */
-interface Exception
-{
-}
diff --git a/core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php b/core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php
deleted file mode 100644
index 6c1f46b..0000000
--- a/core/vendor/sebastian/recursion-context/src/InvalidArgumentException.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
- * This file is part of the Recursion Context package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\RecursionContext;
-
-/**
- * @author     Sebastian Bergmann <sebastian@phpunit.de>
- * @author     Adam Harvey <aharvey@php.net>
- * @copyright  Sebastian Bergmann <sebastian@phpunit.de>
- * @license    http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link       https://github.com/sebastianbergmann/recursion-context
- */
-final class InvalidArgumentException extends \InvalidArgumentException implements Exception
-{
-}
diff --git a/core/vendor/sebastian/recursion-context/tests/ContextTest.php b/core/vendor/sebastian/recursion-context/tests/ContextTest.php
deleted file mode 100644
index 8e8cc56..0000000
--- a/core/vendor/sebastian/recursion-context/tests/ContextTest.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-/*
- * This file is part of the Recursion Context package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\RecursionContext;
-
-use PHPUnit_Framework_TestCase;
-
-/**
- * @covers SebastianBergmann\RecursionContext\Context
- */
-class ContextTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \SebastianBergmann\RecursionContext\Context
-     */
-    private $context;
-
-    protected function setUp()
-    {
-        $this->context = new Context();
-    }
-
-    public function failsProvider()
-    {
-        return array(
-            array(true),
-            array(false),
-            array(null),
-            array('string'),
-            array(1),
-            array(1.5),
-            array(fopen('php://memory', 'r'))
-        );
-    }
-
-    public function valuesProvider()
-    {
-        $obj2 = new \stdClass();
-        $obj2->foo = 'bar';
-
-        $obj3 = (object) array(1,2,"Test\r\n",4,5,6,7,8);
-
-        $obj = new \stdClass();
-        //@codingStandardsIgnoreStart
-        $obj->null = null;
-        //@codingStandardsIgnoreEnd
-        $obj->boolean = true;
-        $obj->integer = 1;
-        $obj->double = 1.2;
-        $obj->string = '1';
-        $obj->text = "this\nis\na\nvery\nvery\nvery\nvery\nvery\nvery\rlong\n\rtext";
-        $obj->object = $obj2;
-        $obj->objectagain = $obj2;
-        $obj->array = array('foo' => 'bar');
-        $obj->array2 = array(1,2,3,4,5,6);
-        $obj->array3 = array($obj, $obj2, $obj3);
-        $obj->self = $obj;
-
-        $storage = new \SplObjectStorage();
-        $storage->attach($obj2);
-        $storage->foo = $obj2;
-
-        return array(
-            array($obj, spl_object_hash($obj)),
-            array($obj2, spl_object_hash($obj2)),
-            array($obj3, spl_object_hash($obj3)),
-            array($storage, spl_object_hash($storage)),
-            array($obj->array, 0),
-            array($obj->array2, 0),
-            array($obj->array3, 0)
-        );
-    }
-
-    /**
-     * @covers       SebastianBergmann\RecursionContext\Context::add
-     * @uses         SebastianBergmann\RecursionContext\InvalidArgumentException
-     * @dataProvider failsProvider
-     */
-    public function testAddFails($value)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\RecursionContext\\Exception',
-          'Only arrays and objects are supported'
-        );
-        $this->context->add($value);
-    }
-
-    /**
-     * @covers       SebastianBergmann\RecursionContext\Context::contains
-     * @uses         SebastianBergmann\RecursionContext\InvalidArgumentException
-     * @dataProvider failsProvider
-     */
-    public function testContainsFails($value)
-    {
-        $this->setExpectedException(
-          'SebastianBergmann\\RecursionContext\\Exception',
-          'Only arrays and objects are supported'
-        );
-        $this->context->contains($value);
-    }
-
-    /**
-     * @covers       SebastianBergmann\RecursionContext\Context::add
-     * @dataProvider valuesProvider
-     */
-    public function testAdd($value, $key)
-    {
-        $this->assertEquals($key, $this->context->add($value));
-
-        // Test we get the same key on subsequent adds
-        $this->assertEquals($key, $this->context->add($value));
-    }
-
-    /**
-     * @covers       SebastianBergmann\RecursionContext\Context::contains
-     * @uses         SebastianBergmann\RecursionContext\Context::add
-     * @depends      testAdd
-     * @dataProvider valuesProvider
-     */
-    public function testContainsFound($value, $key)
-    {
-        $this->context->add($value);
-        $this->assertEquals($key, $this->context->contains($value));
-
-        // Test we get the same key on subsequent calls
-        $this->assertEquals($key, $this->context->contains($value));
-    }
-
-    /**
-     * @covers       SebastianBergmann\RecursionContext\Context::contains
-     * @dataProvider valuesProvider
-     */
-    public function testContainsNotFound($value)
-    {
-        $this->assertFalse($this->context->contains($value));
-    }
-}
diff --git a/core/vendor/sebastian/version/.gitattributes b/core/vendor/sebastian/version/.gitattributes
deleted file mode 100644
index 461090b..0000000
--- a/core/vendor/sebastian/version/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.php diff=php
diff --git a/core/vendor/sebastian/version/.gitignore b/core/vendor/sebastian/version/.gitignore
deleted file mode 100644
index 7d07093..0000000
--- a/core/vendor/sebastian/version/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-build/api
-build/code-browser
-build/coverage
-build/logs
-build/pdepend
-build/phpdox
-build/SebastianBergmann
-build/*.tgz
-cache.properties
-/.idea
diff --git a/core/vendor/sebastian/version/ChangeLog.md b/core/vendor/sebastian/version/ChangeLog.md
deleted file mode 100644
index d01318e..0000000
--- a/core/vendor/sebastian/version/ChangeLog.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Version 1.0
-
-This is the list of changes for the Version 1.0 release series.
-
-## Version 1.0.3
-
-* Only look for Git repository in the supplied path (and not in its parent directories).
-
-## Version 1.0.2
-
-* Errors from `exec()`uting the Git command are now suppressed.
-
-## Version 1.0.1
-
-* Fixed #2: `getVersion()` fails on Windows.
-
-## Version 1.0.0
-
-* Initial release.
diff --git a/core/vendor/sebastian/version/LICENSE b/core/vendor/sebastian/version/LICENSE
deleted file mode 100644
index 5b79c41..0000000
--- a/core/vendor/sebastian/version/LICENSE
+++ /dev/null
@@ -1,33 +0,0 @@
-Version
-
-Copyright (c) 2013-2015, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/sebastian/version/README.md b/core/vendor/sebastian/version/README.md
deleted file mode 100644
index be6b687..0000000
--- a/core/vendor/sebastian/version/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Version
-
-**Version** is a library that helps with managing the version number of Git-hosted PHP projects.
-
-## Installation
-
-Simply add a dependency on `sebastian/version` to your project's `composer.json` file if you use [Composer](http://getcomposer.org/) to manage the dependencies of your project.
-
-## Usage
-
-The constructor of the `SebastianBergmann\Version` class expects two parameters:
-
-* `$release` is the version number of the latest release (`X.Y.Z`, for instance) or the name of the release series (`X.Y`) when no release has been made from that branch / for that release series yet.
-* `$path` is the path to the directory (or a subdirectory thereof) where the sourcecode of the project can be found. Simply passing `__DIR__` here usually suffices.
-
-Apart from the constructor, the `SebastianBergmann\Version` class has a single public method: `getVersion()`.
-
-Here is a contrived example that shows the basic usage:
-
-    <?php
-    $version = new SebastianBergmann\Version(
-      '3.7.10', '/usr/local/src/phpunit'
-    );
-
-    var_dump($version->getVersion());
-    ?>
-
-    string(18) "3.7.10-17-g00f3408"
-
-When a new release is prepared, the string that is passed to the constructor as the first argument needs to be updated.
-
-### How SebastianBergmann\Version::getVersion() works
-
-* If `$path` is not (part of) a Git repository and `$release` is in `X.Y.Z` format then `$release` is returned as-is.
-* If `$path` is not (part of) a Git repository and `$release` is in `X.Y` format then `$release` is returned suffixed with `-dev`.
-* If `$path` is (part of) a Git repository and `$release` is in `X.Y.Z` format then the output of `git describe --tags` is returned as-is.
-* If `$path` is (part of) a Git repository and `$release` is in `X.Y` format then a string is returned that begins with `X.Y` and ends with information from `git describe --tags`.
diff --git a/core/vendor/sebastian/version/build.xml b/core/vendor/sebastian/version/build.xml
deleted file mode 100644
index 67f1d09..0000000
--- a/core/vendor/sebastian/version/build.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="version" default="build">
- <property name="php" value="php"/>
- <property name="phpunit" value="phpunit"/>
-
- <target name="build" depends="prepare,lint,phpcs,phpunit"/>
-
- <target name="clean" description="Cleanup build artifacts">
- </target>
-
- <target name="prepare" depends="clean,phpab" description="Prepare for build">
- </target>
-
- <target name="phpab" description="Generate autoloader script">
-  <exec executable="phpab">
-   <arg value="--output" />
-   <arg path="src/autoload.php" />
-   <arg path="src" />
-  </exec>
- </target>
-
- <target name="lint">
-  <apply executable="${php}" failonerror="true">
-   <arg value="-l" />
-
-   <fileset dir="${basedir}/src">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-
-   <fileset dir="${basedir}/tests">
-    <include name="**/*.php" />
-    <modified />
-   </fileset>
-  </apply>
- </target>
-
- <target name="phpcs" description="Find coding standard violations using PHP_CodeSniffer">
-  <exec executable="phpcs">
-   <arg value="--standard=PSR2" />
-   <arg value="--extensions=php" />
-   <arg value="--ignore=autoload.php" />
-   <arg path="${basedir}/src" />
-  </exec>
- </target>
-
- <target name="phpunit" description="Run unit tests with PHPUnit">
-  <condition property="phpunit_cmd" value="${php} ${phpunit}" else="${phpunit}">
-   <not>
-    <equals arg1="${phpunit}" arg2="phpunit" />
-   </not>
-  </condition>
-
-  <exec executable="${phpunit_cmd}" failonerror="true">
-   <arg value="--configuration" />
-   <arg path="${basedir}/build/phpunit.xml" />
-  </exec>
- </target>
-
- <target name="pear">
-  <mkdir dir="${basedir}/build/SebastianBergmann/Version"/>
-
-  <copy todir="${basedir}/build/SebastianBergmann/Version">
-   <fileset dir="${basedir}/src"/>
-  </copy>
-
-  <copy file="ChangeLog.md" todir="${basedir}/build"/>
-  <copy file="LICENSE" todir="${basedir}/build"/>
-  <copy file="README.md" todir="${basedir}/build"/>
-
-  <exec executable="pear" dir="${basedir}/build">
-   <arg value="package" />
-  </exec>
-
-  <delete dir="${basedir}/build/SebastianBergmann"/>
-  <delete file="${basedir}/build/ChangeLog.md"/>
-  <delete file="${basedir}/build/LICENSE"/>
-  <delete file="${basedir}/build/README.md"/>
- </target>
-</project>
diff --git a/core/vendor/sebastian/version/build/package.xml b/core/vendor/sebastian/version/build/package.xml
deleted file mode 100644
index 479da15..0000000
--- a/core/vendor/sebastian/version/build/package.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.4.10" version="2.0"
-  xmlns="http://pear.php.net/dtd/package-2.0"
-  xmlns:tasks="http://pear.php.net/dtd/tasks-1.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
-                      http://pear.php.net/dtd/tasks-1.0.xsd
-                      http://pear.php.net/dtd/package-2.0
-                      http://pear.php.net/dtd/package-2.0.xsd">
- <name>Version</name>
- <channel>pear.phpunit.de</channel>
- <summary>Library that helps with managing the version number of Git-hosted PHP projects</summary>
- <description>Library that helps with managing the version number of Git-hosted PHP projects</description>
- <lead>
-  <name>Sebastian Bergmann</name>
-  <user>sb</user>
-  <email>sebastian@phpunit.de</email>
-  <active>yes</active>
- </lead>
- <date>2014-03-07</date>
- <version>
-  <release>1.0.3</release>
-  <api>1.0.0</api>
- </version>
- <stability>
-  <release>stable</release>
-  <api>stable</api>
- </stability>
- <license>The BSD 3-Clause License</license>
- <notes>http://github.com/sebastianbergmann/version/tree</notes>
- <contents>
-  <dir name="/">
-   <dir name="SebastianBergmann">
-    <dir name="Version">
-     <file baseinstalldir="/" name="autoload.php" role="php"/>
-     <file baseinstalldir="/" name="Version.php" role="php"/>
-    </dir>
-   </dir>
-   <file baseinstalldir="/" name="ChangeLog.md" role="doc"/>
-   <file baseinstalldir="/" name="LICENSE" role="doc"/>
-   <file baseinstalldir="/" name="README.md" role="doc"/>
-  </dir>
- </contents>
- <dependencies>
-  <required>
-   <php>
-    <min>5.3.3</min>
-   </php>
-   <pearinstaller>
-    <min>1.9.4</min>
-   </pearinstaller>
-  </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/core/vendor/sebastian/version/build/phpunit.xml b/core/vendor/sebastian/version/build/phpunit.xml
deleted file mode 100644
index 508900b..0000000
--- a/core/vendor/sebastian/version/build/phpunit.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit bootstrap="../tests/bootstrap.php"
-         backupGlobals="false"
-         backupStaticAttributes="false"
-         strict="true"
-         verbose="true">
-  <testsuites>
-    <testsuite name="Version">
-      <directory suffix="Test.php">../tests</directory>
-    </testsuite>
-  </testsuites>
-
-  <logging>
-    <log type="coverage-html" target="coverage" charset="UTF-8" highlight="true"
-         lowUpperBound="35" highLowerBound="70"/>
-    <log type="coverage-clover" target="logs/clover.xml"/>
-    <log type="junit" target="logs/junit.xml" logIncompleteSkipped="false"/>
-  </logging>
-
-  <filter>
-    <whitelist addUncoveredFilesFromWhitelist="true">
-      <directory suffix=".php">../src</directory>
-      <exclude>
-        <file>../src/autoload.php</file>
-      </exclude>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/sebastian/version/composer.json b/core/vendor/sebastian/version/composer.json
deleted file mode 100644
index 39d6569..0000000
--- a/core/vendor/sebastian/version/composer.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "name": "sebastian/version",
-    "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-    "homepage": "https://github.com/sebastianbergmann/version",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Sebastian Bergmann",
-            "email": "sebastian@phpunit.de",
-            "role": "lead"
-        }
-    ],
-    "support": {
-        "issues": "https://github.com/sebastianbergmann/version/issues"
-    },
-    "autoload": {
-        "classmap": [
-            "src/"
-        ]
-    }
-}
diff --git a/core/vendor/sebastian/version/src/Version.php b/core/vendor/sebastian/version/src/Version.php
deleted file mode 100644
index 0d93741..0000000
--- a/core/vendor/sebastian/version/src/Version.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/*
- * This file is part of the Version package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann;
-
-/**
- * @package   Version
- * @author    Sebastian Bergmann <sebastian@phpunit.de>
- * @copyright Sebastian Bergmann <sebastian@phpunit.de>
- * @license   http://www.opensource.org/licenses/BSD-3-Clause  The BSD 3-Clause License
- * @link      http://github.com/sebastianbergmann/version
- * @since     Class available since Release 1.0.0
- */
-class Version
-{
-    private $path;
-    private $release;
-    private $version;
-
-    /**
-     * @param string $release
-     * @param string $path
-     */
-    public function __construct($release, $path)
-    {
-        $this->release = $release;
-        $this->path    = $path;
-    }
-
-    /**
-     * @return string
-     */
-    public function getVersion()
-    {
-        if ($this->version === null) {
-            if (count(explode('.', $this->release)) == 3) {
-                $this->version = $this->release;
-            } else {
-                $this->version = $this->release . '-dev';
-            }
-
-            $git = $this->getGitInformation($this->path);
-
-            if ($git) {
-                if (count(explode('.', $this->release)) == 3) {
-                    $this->version = $git;
-                } else {
-                    $git = explode('-', $git);
-
-                    $this->version = $this->release . '-' . end($git);
-                }
-            }
-        }
-
-        return $this->version;
-    }
-
-    /**
-     * @param  string $path
-     * @return boolean|string
-     */
-    private function getGitInformation($path)
-    {
-        if (!is_dir($path . DIRECTORY_SEPARATOR . '.git')) {
-            return false;
-        }
-
-        $dir = getcwd();
-        chdir($path);
-        $returnCode = 1;
-        $result = @exec('git describe --tags 2>&1', $output, $returnCode);
-        chdir($dir);
-
-        if ($returnCode !== 0) {
-            return false;
-        }
-
-        return $result;
-    }
-}
diff --git a/core/vendor/sebastian/version/src/autoload.php b/core/vendor/sebastian/version/src/autoload.php
deleted file mode 100644
index 20157ea..0000000
--- a/core/vendor/sebastian/version/src/autoload.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/*
- * This file is part of the Version package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-// @codingStandardsIgnoreFile
-// @codeCoverageIgnoreStart
-// this is an autogenerated file - do not edit
-spl_autoload_register(
-    function($class) {
-        static $classes = null;
-        if ($classes === null) {
-            $classes = array(
-                'sebastianbergmann\\version' => '/Version.php'
-            );
-        }
-        $cn = strtolower($class);
-        if (isset($classes[$cn])) {
-            require __DIR__ . $classes[$cn];
-        }
-    }
-);
-// @codeCoverageIgnoreEnd
diff --git a/core/vendor/sebastian/version/tests/bootstrap.php b/core/vendor/sebastian/version/tests/bootstrap.php
deleted file mode 100644
index d352bb0..0000000
--- a/core/vendor/sebastian/version/tests/bootstrap.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-require __DIR__ . '/../src/autoload.php';
diff --git a/core/vendor/stack/builder/.travis.yml b/core/vendor/stack/builder/.travis.yml
deleted file mode 100644
index 1d50df4..0000000
--- a/core/vendor/stack/builder/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: php
-
-php:
-  - 5.3.3
-  - 5.3
-  - 5.4
-  - 5.5
-  - hhvm
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source
-
-script: phpunit --coverage-text
-
-matrix:
-  allow_failures:
-    - php: hhvm
-  fast_finish: true
diff --git a/core/vendor/stack/builder/CHANGELOG.md b/core/vendor/stack/builder/CHANGELOG.md
deleted file mode 100644
index f6f35d6..0000000
--- a/core/vendor/stack/builder/CHANGELOG.md
+++ /dev/null
@@ -1,14 +0,0 @@
-CHANGELOG
-=========
-
-* 1.0.2 (2014-xx-xx)
-
-  * Validate missing arguments (@bajbnet).
-
-* 1.0.1 (2013-10-25)
-
-  * Lower PHP requirement to 5.3.
-
-* 1.0.0 (2013-08-02)
-
-  * Initial release.
diff --git a/core/vendor/stack/builder/LICENSE b/core/vendor/stack/builder/LICENSE
deleted file mode 100644
index ceac72c..0000000
--- a/core/vendor/stack/builder/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2013 Igor Wiedler
-
-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/core/vendor/stack/builder/README.md b/core/vendor/stack/builder/README.md
deleted file mode 100644
index 812406c..0000000
--- a/core/vendor/stack/builder/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# Stack/Builder
-
-Builder for stack middlewares based on HttpKernelInterface.
-
-Stack/Builder is a small library that helps you construct a nested
-HttpKernelInterface decorator tree. It models it as a stack of middlewares.
-
-## Example
-
-If you want to decorate a [silex](https://github.com/fabpot/Silex) app with
-session and cache middlewares, you'll have to do something like this:
-
-    use Symfony\Component\HttpKernel\HttpCache\Store;
-
-    $app = new Silex\Application();
-
-    $app->get('/', function () {
-        return 'Hello World!';
-    });
-
-    $app = new Stack\Session(
-        new Symfony\Component\HttpKernel\HttpCache\HttpCache(
-            $app,
-            new Store(__DIR__.'/cache')
-        )
-    );
-
-This can get quite annoying indeed. Stack/Builder simplifies that:
-
-    $stack = (new Stack\Builder())
-        ->push('Stack\Session')
-        ->push('Symfony\Component\HttpKernel\HttpCache\HttpCache', new Store(__DIR__.'/cache'));
-
-    $app = $stack->resolve($app);
-
-As you can see, by arranging the layers as a stack, they become a lot easier
-to work with.
-
-In the front controller, you need to serve the request:
-
-    use Symfony\Component\HttpFoundation\Request;
-
-    $request = Request::createFromGlobals();
-    $response = $app->handle($request)->send();
-    $app->terminate($request, $response);
-
-Stack/Builder also supports pushing a `callable` on to the stack, for situations
-where instantiating middlewares might be more complicated. The `callable` should
-accept a `HttpKernelInterface` as the first argument and should also return a
-`HttpKernelInterface`. The example above could be rewritten as:
-
-    $stack = (new Stack\Builder())
-        ->push('Stack\Session')
-        ->push(function ($app) {
-            $cache = new HttpCache($app, new Store(__DIR__.'/cache'));
-            return $cache;
-        });
-
-## Inspiration
-
-* [Rack::Builder](http://rack.rubyforge.org/doc/Rack/Builder.html)
-* [HttpKernel middlewares](https://igor.io/2013/02/02/http-kernel-middlewares.html)
diff --git a/core/vendor/stack/builder/composer.json b/core/vendor/stack/builder/composer.json
deleted file mode 100644
index e9f164c..0000000
--- a/core/vendor/stack/builder/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "name": "stack/builder",
-    "description": "Builder for stack middlewares based on HttpKernelInterface.",
-    "keywords": ["stack"],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Igor Wiedler",
-            "email": "igor@wiedler.ch"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0",
-        "symfony/http-foundation": "~2.1",
-        "symfony/http-kernel": "~2.1"
-    },
-    "require-dev": {
-        "silex/silex": "~1.0"
-    },
-    "autoload": {
-        "psr-0": { "Stack": "src" }
-    },
-    "extra": {
-        "branch-alias": { "dev-master": "1.0-dev" }
-    }
-}
diff --git a/core/vendor/stack/builder/composer.lock b/core/vendor/stack/builder/composer.lock
deleted file mode 100644
index 26c6a99..0000000
--- a/core/vendor/stack/builder/composer.lock
+++ /dev/null
@@ -1,488 +0,0 @@
-{
-    "_readme": [
-        "This file locks the dependencies of your project to a known state",
-        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
-    ],
-    "hash": "78698481679eca710495d5aca028baaa",
-    "packages": [
-        {
-            "name": "psr/log",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/log.git",
-                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
-                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
-                "shasum": ""
-            },
-            "type": "library",
-            "autoload": {
-                "psr-0": {
-                    "Psr\\Log\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "http://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for logging libraries",
-            "keywords": [
-                "log",
-                "psr",
-                "psr-3"
-            ],
-            "time": "2012-12-21 11:40:51"
-        },
-        {
-            "name": "symfony/debug",
-            "version": "v2.4.1",
-            "target-dir": "Symfony/Component/Debug",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Debug.git",
-                "reference": "74110be5ec681a83fc5bd66dd5fd29fe85fe9c1f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Debug/zipball/74110be5ec681a83fc5bd66dd5fd29fe85fe9c1f",
-                "reference": "74110be5ec681a83fc5bd66dd5fd29fe85fe9c1f",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "symfony/http-foundation": "~2.1",
-                "symfony/http-kernel": "~2.1"
-            },
-            "suggest": {
-                "symfony/http-foundation": "",
-                "symfony/http-kernel": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\Debug\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Debug Component",
-            "homepage": "http://symfony.com",
-            "time": "2014-01-01 09:02:49"
-        },
-        {
-            "name": "symfony/event-dispatcher",
-            "version": "v2.4.1",
-            "target-dir": "Symfony/Component/EventDispatcher",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/EventDispatcher.git",
-                "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/e3ba42f6a70554ed05749e61b829550f6ac33601",
-                "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "symfony/dependency-injection": "~2.0"
-            },
-            "suggest": {
-                "symfony/dependency-injection": "",
-                "symfony/http-kernel": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\EventDispatcher\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony EventDispatcher Component",
-            "homepage": "http://symfony.com",
-            "time": "2013-12-28 08:12:03"
-        },
-        {
-            "name": "symfony/http-foundation",
-            "version": "v2.4.1",
-            "target-dir": "Symfony/Component/HttpFoundation",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/HttpFoundation.git",
-                "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/6c6b8a7bcd7e2cc920cd6acace563fdbf121d844",
-                "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\HttpFoundation\\": ""
-                },
-                "classmap": [
-                    "Symfony/Component/HttpFoundation/Resources/stubs"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony HttpFoundation Component",
-            "homepage": "http://symfony.com",
-            "time": "2014-01-05 02:10:50"
-        },
-        {
-            "name": "symfony/http-kernel",
-            "version": "v2.4.1",
-            "target-dir": "Symfony/Component/HttpKernel",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/HttpKernel.git",
-                "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/0605eedeb52c4d3a3144128d8336395a57be60d4",
-                "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "psr/log": "~1.0",
-                "symfony/debug": "~2.3",
-                "symfony/event-dispatcher": "~2.1",
-                "symfony/http-foundation": "~2.4"
-            },
-            "require-dev": {
-                "symfony/browser-kit": "~2.2",
-                "symfony/class-loader": "~2.1",
-                "symfony/config": "~2.0",
-                "symfony/console": "~2.2",
-                "symfony/dependency-injection": "~2.0",
-                "symfony/finder": "~2.0",
-                "symfony/process": "~2.0",
-                "symfony/routing": "~2.2",
-                "symfony/stopwatch": "~2.2",
-                "symfony/templating": "~2.2"
-            },
-            "suggest": {
-                "symfony/browser-kit": "",
-                "symfony/class-loader": "",
-                "symfony/config": "",
-                "symfony/console": "",
-                "symfony/dependency-injection": "",
-                "symfony/finder": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\HttpKernel\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony HttpKernel Component",
-            "homepage": "http://symfony.com",
-            "time": "2014-01-05 02:12:11"
-        }
-    ],
-    "packages-dev": [
-        {
-            "name": "pimple/pimple",
-            "version": "v1.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/fabpot/Pimple.git",
-                "reference": "471c7d7c52ad6594e17b8ec33efdd1be592b5d83"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/fabpot/Pimple/zipball/471c7d7c52ad6594e17b8ec33efdd1be592b5d83",
-                "reference": "471c7d7c52ad6594e17b8ec33efdd1be592b5d83",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Pimple": "lib/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                }
-            ],
-            "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
-            "homepage": "http://pimple.sensiolabs.org",
-            "keywords": [
-                "container",
-                "dependency injection"
-            ],
-            "time": "2013-09-19 04:53:08"
-        },
-        {
-            "name": "silex/silex",
-            "version": "v1.1.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/silexphp/Silex.git",
-                "reference": "47cc7d6545450ef8a91f50c04e8c7b3b04fceae9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/silexphp/Silex/zipball/47cc7d6545450ef8a91f50c04e8c7b3b04fceae9",
-                "reference": "47cc7d6545450ef8a91f50c04e8c7b3b04fceae9",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "pimple/pimple": "~1.0",
-                "symfony/event-dispatcher": ">=2.3,<2.5-dev",
-                "symfony/http-foundation": ">=2.3,<2.5-dev",
-                "symfony/http-kernel": ">=2.3,<2.5-dev",
-                "symfony/routing": ">=2.3,<2.5-dev"
-            },
-            "require-dev": {
-                "doctrine/dbal": ">=2.2.0,<2.4.0-dev",
-                "monolog/monolog": "~1.4,>=1.4.1",
-                "phpunit/phpunit": "~3.7",
-                "swiftmailer/swiftmailer": "5.*",
-                "symfony/browser-kit": ">=2.3,<2.5-dev",
-                "symfony/config": ">=2.3,<2.5-dev",
-                "symfony/css-selector": ">=2.3,<2.5-dev",
-                "symfony/debug": ">=2.3,<2.5-dev",
-                "symfony/dom-crawler": ">=2.3,<2.5-dev",
-                "symfony/finder": ">=2.3,<2.5-dev",
-                "symfony/form": ">=2.3,<2.5-dev",
-                "symfony/locale": ">=2.3,<2.5-dev",
-                "symfony/monolog-bridge": ">=2.3,<2.5-dev",
-                "symfony/options-resolver": ">=2.3,<2.5-dev",
-                "symfony/process": ">=2.3,<2.5-dev",
-                "symfony/security": ">=2.3,<2.5-dev",
-                "symfony/serializer": ">=2.3,<2.5-dev",
-                "symfony/translation": ">=2.3,<2.5-dev",
-                "symfony/twig-bridge": ">=2.3,<2.5-dev",
-                "symfony/validator": ">=2.3,<2.5-dev",
-                "twig/twig": ">=1.8.0,<2.0-dev"
-            },
-            "suggest": {
-                "symfony/browser-kit": ">=2.3,<2.5-dev",
-                "symfony/css-selector": ">=2.3,<2.5-dev",
-                "symfony/dom-crawler": ">=2.3,<2.5-dev",
-                "symfony/form": ">=2.3,<2.5-dev"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Silex": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Igor Wiedler",
-                    "email": "igor@wiedler.ch",
-                    "homepage": "http://wiedler.ch/igor/"
-                }
-            ],
-            "description": "The PHP micro-framework based on the Symfony2 Components",
-            "homepage": "http://silex.sensiolabs.org",
-            "keywords": [
-                "microframework"
-            ],
-            "time": "2013-10-30 08:53:26"
-        },
-        {
-            "name": "symfony/routing",
-            "version": "v2.4.1",
-            "target-dir": "Symfony/Component/Routing",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Routing.git",
-                "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Routing/zipball/4abfb500aab8be458c9e3a227ea56b190584f78a",
-                "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "doctrine/annotations": "~1.0",
-                "psr/log": "~1.0",
-                "symfony/config": "~2.2",
-                "symfony/expression-language": "~2.4",
-                "symfony/yaml": "~2.0"
-            },
-            "suggest": {
-                "doctrine/annotations": "For using the annotation loader",
-                "symfony/config": "For using the all-in-one router or any loader",
-                "symfony/expression-language": "For using expression matching",
-                "symfony/yaml": "For using the YAML loader"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\Routing\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Routing Component",
-            "homepage": "http://symfony.com",
-            "keywords": [
-                "router",
-                "routing",
-                "uri",
-                "url"
-            ],
-            "time": "2014-01-05 02:10:50"
-        }
-    ],
-    "aliases": [
-
-    ],
-    "minimum-stability": "stable",
-    "stability-flags": [
-
-    ],
-    "platform": {
-        "php": ">=5.3.0"
-    },
-    "platform-dev": [
-
-    ]
-}
diff --git a/core/vendor/stack/builder/phpunit.xml.dist b/core/vendor/stack/builder/phpunit.xml.dist
deleted file mode 100644
index a2437ec..0000000
--- a/core/vendor/stack/builder/phpunit.xml.dist
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <testsuites>
-        <testsuite name="unit">
-            <directory>./tests/unit/</directory>
-        </testsuite>
-    </testsuites>
-
-    <testsuites>
-        <testsuite name="integration">
-            <directory>./tests/integration/</directory>
-        </testsuite>
-    </testsuites>
-
-    <testsuites>
-        <testsuite name="functional">
-            <directory>./tests/functional/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./src/</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/stack/builder/src/Stack/Builder.php b/core/vendor/stack/builder/src/Stack/Builder.php
deleted file mode 100644
index c7ee05a..0000000
--- a/core/vendor/stack/builder/src/Stack/Builder.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Stack;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-
-class Builder
-{
-    private $specs;
-
-    public function __construct()
-    {
-        $this->specs = new \SplStack();
-    }
-
-    public function unshift(/*$kernelClass, $args...*/)
-    {
-        if (func_num_args() === 0) {
-            throw new \InvalidArgumentException("Missing argument(s) when calling unshift");
-        }
-
-        $spec = func_get_args();
-        $this->specs->unshift($spec);
-
-        return $this;
-    }
-
-    public function push(/*$kernelClass, $args...*/)
-    {
-        if (func_num_args() === 0) {
-            throw new \InvalidArgumentException("Missing argument(s) when calling push");
-        }
-
-        $spec = func_get_args();
-        $this->specs->push($spec);
-
-        return $this;
-    }
-
-    public function resolve(HttpKernelInterface $app)
-    {
-        $middlewares = array($app);
-
-        foreach ($this->specs as $spec) {
-            $args = $spec;
-            $firstArg = array_shift($args);
-
-            if (is_callable($firstArg)) {
-                $app = $firstArg($app);
-            } else {
-                $kernelClass = $firstArg;
-                array_unshift($args, $app);
-
-                $reflection = new \ReflectionClass($kernelClass);
-                $app = $reflection->newInstanceArgs($args);
-            }
-
-            array_unshift($middlewares, $app);
-        }
-
-        return new StackedHttpKernel($app, $middlewares);
-    }
-}
diff --git a/core/vendor/stack/builder/src/Stack/StackedHttpKernel.php b/core/vendor/stack/builder/src/Stack/StackedHttpKernel.php
deleted file mode 100644
index 2b96dd9..0000000
--- a/core/vendor/stack/builder/src/Stack/StackedHttpKernel.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Stack;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\TerminableInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class StackedHttpKernel implements HttpKernelInterface, TerminableInterface
-{
-    private $app;
-    private $middlewares = array();
-
-    public function __construct(HttpKernelInterface $app, array $middlewares)
-    {
-        $this->app = $app;
-        $this->middlewares = $middlewares;
-    }
-
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        return $this->app->handle($request, $type, $catch);
-    }
-
-    public function terminate(Request $request, Response $response)
-    {
-        foreach ($this->middlewares as $kernel) {
-            if ($kernel instanceof TerminableInterface) {
-                $kernel->terminate($request, $response);
-            }
-        }
-    }
-}
diff --git a/core/vendor/stack/builder/tests/functional/SilexApplicationTest.php b/core/vendor/stack/builder/tests/functional/SilexApplicationTest.php
deleted file mode 100644
index 5636336..0000000
--- a/core/vendor/stack/builder/tests/functional/SilexApplicationTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace functional;
-
-use Silex\Application;
-use Stack\Builder;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-
-class SilexApplicationTest extends \PHPUnit_Framework_TestCase
-{
-    public function testWithAppendMiddlewares()
-    {
-        $app = new Application();
-
-        $app->get('/foo', function () {
-            return 'bar';
-        });
-
-        $finished = false;
-
-        $app->finish(function () use (&$finished) {
-            $finished = true;
-        });
-
-        $stack = new Builder();
-        $stack
-            ->push('functional\Append', '.A')
-            ->push('functional\Append', '.B');
-
-        $app = $stack->resolve($app);
-
-        $request = Request::create('/foo');
-        $response = $app->handle($request);
-        $app->terminate($request, $response);
-
-        $this->assertSame('bar.B.A', $response->getContent());
-        $this->assertTrue($finished);
-    }
-}
-
-class Append implements HttpKernelInterface
-{
-    private $app;
-    private $appendix;
-
-    public function __construct(HttpKernelInterface $app, $appendix)
-    {
-        $this->app = $app;
-        $this->appendix = $appendix;
-    }
-
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        $response = clone $this->app->handle($request, $type, $catch);
-        $response->setContent($response->getContent().$this->appendix);
-
-        return $response;
-    }
-}
diff --git a/core/vendor/stack/builder/tests/unit/Stack/BuilderTest.php b/core/vendor/stack/builder/tests/unit/Stack/BuilderTest.php
deleted file mode 100644
index 4092d01..0000000
--- a/core/vendor/stack/builder/tests/unit/Stack/BuilderTest.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-
-namespace Stack;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\TerminableInterface;
-
-/** @covers Stack\Builder */
-class BuilderTest extends \PHPUnit_Framework_TestCase
-{
-    /** @test */
-    public function withoutMiddlewaresItShouldReturnOriginalResponse()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-
-        $stack = new Builder();
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = $resolved->handle($request);
-
-        $this->assertInstanceOf('Stack\StackedHttpKernel', $resolved);
-        $this->assertSame('ok', $response->getContent());
-    }
-
-    /** @test */
-    public function resolvedKernelShouldDelegateTerminateCalls()
-    {
-        $app = $this->getTerminableMock();
-
-        $stack = new Builder();
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = new Response('ok');
-
-        $resolved->handle($request);
-        $resolved->terminate($request, $response);
-    }
-
-    /** @test */
-    public function pushShouldReturnSelf()
-    {
-        $stack = new Builder();
-        $this->assertSame($stack, $stack->push('Stack\AppendA'));
-    }
-
-    /** @test */
-    public function pushShouldThrowOnInvalidInput()
-    {
-        $this->setExpectedException('InvalidArgumentException', 'Missing argument(s) when calling push');
-        $stack = new Builder();
-        $stack->push();
-    }
-
-    /** @test */
-    public function unshiftShouldReturnSelf()
-    {
-        $stack = new Builder();
-        $this->assertSame($stack, $stack->unshift('Stack\AppendA'));
-    }
-
-    /** @test */
-    public function unshiftShouldThrowOnInvalidInput()
-    {
-        $this->setExpectedException('InvalidArgumentException', 'Missing argument(s) when calling unshift');
-        $stack = new Builder();
-        $stack->unshift();
-    }
-
-    /** @test */
-    public function appendMiddlewareShouldAppendToBody()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-
-        $stack = new Builder();
-        $stack->push('Stack\AppendA');
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = $resolved->handle($request);
-
-        $this->assertSame('ok.A', $response->getContent());
-    }
-
-    /** @test */
-    public function unshiftMiddlewareShouldPutMiddlewareBeforePushed()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-
-        $stack = new Builder();
-        $stack->push('Stack\Append', '2.');
-        $stack->unshift('Stack\Append', '1.');
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = $resolved->handle($request);
-
-        $this->assertSame('ok2.1.', $response->getContent());
-    }
-
-    /** @test */
-    public function stackedMiddlewaresShouldWrapInReverseOrder()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-
-        $stack = new Builder();
-        $stack->push('Stack\AppendA');
-        $stack->push('Stack\AppendB');
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = $resolved->handle($request);
-
-        $this->assertSame('ok.B.A', $response->getContent());
-    }
-
-    /** @test */
-    public function resolveShouldPassPushArgumentsToMiddlewareConstructor()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-
-        $stack = new Builder();
-        $stack->push('Stack\Append', '.foo');
-        $stack->push('Stack\Append', '.bar');
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = $resolved->handle($request);
-
-        $this->assertSame('ok.bar.foo', $response->getContent());
-    }
-
-    /** @test */
-    public function resolveShouldCallSpecFactories()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-
-        $stack = new Builder();
-        $stack->push(function ($app) { return new Append($app, '.foo'); });
-        $stack->push(function ($app) { return new Append($app, '.bar'); });
-        $resolved = $stack->resolve($app);
-
-        $request = Request::create('/');
-        $response = $resolved->handle($request);
-
-        $this->assertSame('ok.bar.foo', $response->getContent());
-    }
-
-    private function getHttpKernelMock(Response $response)
-    {
-        $app = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $app->expects($this->any())
-            ->method('handle')
-            ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
-            ->will($this->returnValue($response));
-
-        return $app;
-    }
-
-    private function getTerminableMock()
-    {
-        $app = $this->getMock('Stack\TerminableHttpKernel');
-        $app->expects($this->once())
-            ->method('terminate')
-            ->with(
-                $this->isInstanceOf('Symfony\Component\HttpFoundation\Request'),
-                $this->isInstanceOf('Symfony\Component\HttpFoundation\Response')
-            );
-
-        return $app;
-    }
-}
-
-abstract class TerminableHttpKernel implements HttpKernelInterface, TerminableInterface
-{
-}
-
-class Append implements HttpKernelInterface
-{
-    private $app;
-    private $appendix;
-
-    public function __construct(HttpKernelInterface $app, $appendix)
-    {
-        $this->app = $app;
-        $this->appendix = $appendix;
-    }
-
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        $response = clone $this->app->handle($request, $type, $catch);
-        $response->setContent($response->getContent().$this->appendix);
-
-        return $response;
-    }
-}
-
-class AppendA extends Append
-{
-    public function __construct(HttpKernelInterface $app)
-    {
-        parent::__construct($app, '.A');
-    }
-}
-
-class AppendB extends Append
-{
-    public function __construct(HttpKernelInterface $app)
-    {
-        parent::__construct($app, '.B');
-    }
-}
diff --git a/core/vendor/stack/builder/tests/unit/Stack/StackedHttpKernelTest.php b/core/vendor/stack/builder/tests/unit/Stack/StackedHttpKernelTest.php
deleted file mode 100644
index e2ced54..0000000
--- a/core/vendor/stack/builder/tests/unit/Stack/StackedHttpKernelTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-namespace Stack;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\TerminableInterface;
-
-class StackedHttpKernelTest extends \PHPUnit_Framework_TestCase
-{
-    /** @test */
-    public function handleShouldDelegateToApp()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-        $kernel = new StackedHttpKernel($app, array($app));
-
-        $request = Request::create('/');
-        $response = $kernel->handle($request);
-
-        $this->assertSame('ok', $response->getContent());
-    }
-
-    /** @test */
-    public function handleShouldStillDelegateToAppWithMiddlewares()
-    {
-        $app = $this->getHttpKernelMock(new Response('ok'));
-        $foo = $this->getHttpKernelMock(new Response('foo'));
-        $bar = $this->getHttpKernelMock(new Response('bar'));
-        $kernel = new StackedHttpKernel($app, array($app, $foo, $bar));
-
-        $request = Request::create('/');
-        $response = $kernel->handle($request);
-
-        $this->assertSame('ok', $response->getContent());
-    }
-
-    /** @test */
-    public function terminateShouldDelegateToMiddlewares()
-    {
-        $app = $this->getTerminableMock(new Response('ok'));
-        $foo = $this->getTerminableMock();
-        $bar = $this->getTerminableMock();
-        $kernel = new StackedHttpKernel($app, array($app, $foo, $bar));
-
-        $request = Request::create('/');
-        $response = $kernel->handle($request);
-        $kernel->terminate($request, $response);
-    }
-
-    private function getHttpKernelMock(Response $response)
-    {
-        $app = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $app->expects($this->any())
-            ->method('handle')
-            ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
-            ->will($this->returnValue($response));
-
-        return $app;
-    }
-
-    private function getTerminableMock(Response $response = null)
-    {
-        $app = $this->getMock('Stack\TerminableHttpKernel');
-        if ($response) {
-            $app->expects($this->any())
-                ->method('handle')
-                ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
-                ->will($this->returnValue($response));
-        }
-        $app->expects($this->once())
-            ->method('terminate')
-            ->with(
-                $this->isInstanceOf('Symfony\Component\HttpFoundation\Request'),
-                $this->isInstanceOf('Symfony\Component\HttpFoundation\Response')
-            );
-
-        return $app;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/.travis.yml b/core/vendor/symfony-cmf/routing/.travis.yml
deleted file mode 100644
index c0eae5c..0000000
--- a/core/vendor/symfony-cmf/routing/.travis.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-language: php
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-env: 
-  - SYMFONY_VERSION=2.5.*
-
-matrix:
-  allow_failures:
-    - php: hhvm
-  include:
-    - php: 5.5
-      env: SYMFONY_VERSION=2.3.*
-    - php: 5.5
-      env: SYMFONY_VERSION=2.4.*
-    - php: 5.5
-      env: SYMFONY_VERSION=2.*
-
-before_install:
-  - composer require symfony/routing:${SYMFONY_VERSION} --prefer-source
-
-script: phpunit --coverage-text
-
-notifications:
-  irc: "irc.freenode.org#symfony-cmf"
-  email: "symfony-cmf-devs@googlegroups.com"
diff --git a/core/vendor/symfony-cmf/routing/CHANGELOG.md b/core/vendor/symfony-cmf/routing/CHANGELOG.md
deleted file mode 100644
index e8e8542..0000000
--- a/core/vendor/symfony-cmf/routing/CHANGELOG.md
+++ /dev/null
@@ -1,48 +0,0 @@
-Changelog
-=========
-
-* **2014-09-29**: ChainRouter does not require a RouterInterface, as a
-  RequestMatcher and UrlGenerator is fine too. Fixed chain router interface to
-  not force a RouterInterface.
-* **2014-09-29**: Deprecated DynamicRouter::match in favor of matchRequest.
-
-1.3.0-RC1
----------
-
-* **2014-08-20**: Added an interface for the ChainRouter
-* **2014-06-06**: Updated to PSR-4 autoloading
-
-1.2.0
------
-
-Release 1.2.0
-
-1.2.0-RC1
----------
-
-* **2013-12-23**: add support for ChainRouter::getRouteCollection()
-* **2013-01-07**: Removed the deprecated $parameters argument in
-  RouteProviderInterface::getRouteByName and getRoutesByNames.
-
-1.1.0
------
-
-Release 1.1.0
-
-1.1.0-RC1
----------
-
-* **2013-07-31**: DynamicRouter now accepts an EventDispatcher to trigger a
-  RouteMatchEvent right before the matching starts
-* **2013-07-29**: Renamed RouteAwareInterface to RouteReferrersReadInterface
-  for naming consistency and added RouteReferrersInterface for write access.
-* **2013-07-13**: NestedMatcher now expects a FinalMatcherInterface as second
-  argument of the constructor
-
-1.1.0-alpha1
-------------
-
-* **2013-04-30**: Dropped Symfony 2.1 support and got rid of
-  ConfigurableUrlMatcher class
-* **2013-04-05**: [ContentAwareGenerator] Fix locale handling to always respect
-  locale but never have unnecessary ?locale=
diff --git a/core/vendor/symfony-cmf/routing/CONTRIBUTING.md b/core/vendor/symfony-cmf/routing/CONTRIBUTING.md
deleted file mode 100644
index 0e4efab..0000000
--- a/core/vendor/symfony-cmf/routing/CONTRIBUTING.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Contributing
-------------
-
-Symfony2 CMF is an open source, community-driven project. We follow the same
-guidelines as core Symfony2. If you'd like to contribute, please read the
-[Contributing Code][1] part of the documentation. If you're submitting a pull
-request, please follow the guidelines in the [Submitting a Patch][2] section
-and use the [Pull Request Template][3].
-
-[1]: http://symfony.com/doc/current/contributing/code/index.html
-[2]: http://symfony.com/doc/current/contributing/code/patches.html#check-list
-[3]: http://symfony.com/doc/current/contributing/code/patches.html#make-a-pull-request
diff --git a/core/vendor/symfony-cmf/routing/Candidates/Candidates.php b/core/vendor/symfony-cmf/routing/Candidates/Candidates.php
deleted file mode 100644
index 84584f9..0000000
--- a/core/vendor/symfony-cmf/routing/Candidates/Candidates.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Candidates;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * A straightforward strategy that splits the URL on "/".
- *
- * If locales is set, additionally generates candidates removing the locale if
- * it is one of the configured locales, for non-locale specific URLs.
- *
- * @author David Buchmann <mail@davidbu.ch>
- */
-class Candidates implements CandidatesInterface
-{
-    /**
-     * @var array
-     */
-    protected $locales;
-
-    /**
-     * A limit to apply to the number of candidates generated.
-     *
-     * This is to prevent abusive requests with a lot of "/". The limit is per
-     * batch, that is if a locale matches you could get as many as 2 * $limit
-     * candidates if the URL has that many slashes.
-     *
-     * @var int
-     */
-    protected $limit;
-
-    /**
-     * @param array $locales The locales to support.
-     * @param int   $limit   A limit to apply to the candidates generated.
-     */
-    public function __construct(array $locales = array(), $limit = 20)
-    {
-        $this->setLocales($locales);
-        $this->limit = $limit;
-    }
-
-    /**
-     * Set the locales to support by this strategy.
-     *
-     * @param array $locales The locales to support.
-     */
-    public function setLocales(array $locales)
-    {
-        $this->locales = $locales;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Always returns true.
-     */
-    public function isCandidate($name)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Does nothing.
-     */
-    public function restrictQuery($queryBuilder)
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getCandidates(Request $request)
-    {
-        $url = $request->getPathInfo();
-        $candidates = $this->getCandidatesFor($url);
-
-        $locale = $this->determineLocale($url);
-        if ($locale) {
-            $candidates = array_unique(array_merge($candidates, $this->getCandidatesFor(substr($url, strlen($locale) + 1))));
-        }
-
-        return $candidates;
-    }
-
-    /**
-     * Determine the locale of this URL.
-     *
-     * @param string $url The url to determine the locale from.
-     *
-     * @return string|boolean The locale if $url starts with one of the allowed locales.
-     */
-    protected function determineLocale($url)
-    {
-        if (!count($this->locales)) {
-            return false;
-        }
-
-        $matches = array();
-        if (preg_match('#(' . implode('|', $this->locales) . ')(/|$)#', $url, $matches)) {
-            return $matches[1];
-        }
-
-        return false;
-    }
-
-    /**
-     * Handle a possible format extension and split the $url on "/".
-     *
-     * $prefix is prepended to every candidate generated.
-     *
-     * @param string $url    The URL to split.
-     * @param string $prefix A prefix to prepend to every pattern.
-     *
-     * @return array Paths that could represent routes that match $url and are
-     *               child of $prefix.
-     */
-    protected function getCandidatesFor($url, $prefix = '')
-    {
-        $candidates = array();
-        if ('/' !== $url) {
-            // handle format extension, like .html or .json
-            if (preg_match('/(.+)\.[a-z]+$/i', $url, $matches)) {
-                $candidates[] = $prefix . $url;
-                $url = $matches[1];
-            }
-
-            $part = $url;
-            $count = 0;
-            while (false !== ($pos = strrpos($part, '/'))) {
-                if (++$count > $this->limit) {
-                    return $candidates;
-                }
-                $candidates[] = $prefix . $part;
-                $part = substr($url, 0, $pos);
-            }
-        }
-
-        $candidates[] = $prefix ?: '/';
-
-        return $candidates;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Candidates/CandidatesInterface.php b/core/vendor/symfony-cmf/routing/Candidates/CandidatesInterface.php
deleted file mode 100644
index 9ce22a9..0000000
--- a/core/vendor/symfony-cmf/routing/Candidates/CandidatesInterface.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Candidates;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Candidates is a subsystem useful for the route provider. It separates the
- * logic for determining possible static prefixes from the route provider.
- *
- * @author David Buchmann <mail@davidbu.ch>
- */
-interface CandidatesInterface
-{
-    /**
-     * @param Request $request
-     *
-     * @return array a list of paths
-     */
-    public function getCandidates(Request $request);
-
-    /**
-     * Determine if $name is a valid candidate, e.g. in getRouteByName.
-     *
-     * @param string $name
-     *
-     * @return boolean
-     */
-    public function isCandidate($name);
-
-    /**
-     * Provide a best effort query restriction to limit a query to only find
-     * routes that are supported.
-     *
-     * @param object $queryBuilder A query builder suited for the storage backend.
-     */
-    public function restrictQuery($queryBuilder);
-}
diff --git a/core/vendor/symfony-cmf/routing/ChainRouteCollection.php b/core/vendor/symfony-cmf/routing/ChainRouteCollection.php
deleted file mode 100644
index 16c4859..0000000
--- a/core/vendor/symfony-cmf/routing/ChainRouteCollection.php
+++ /dev/null
@@ -1,272 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-
-class ChainRouteCollection extends RouteCollection
-{
-    /**
-     * @var RouteCollection[]
-     */
-    private $routeCollections = array();
-
-    /**
-     * @var RouteCollection
-     */
-    private $routeCollection;
-
-    public function __clone()
-    {
-        foreach ($this->routeCollections as $routeCollection) {
-            $this->routeCollections[] = clone $routeCollection;
-        }
-    }
-
-    /**
-     * Gets the current RouteCollection as an Iterator that includes all routes.
-     *
-     * It implements \IteratorAggregate.
-     *
-     * @see all()
-     *
-     * @return \ArrayIterator An \ArrayIterator object for iterating over routes
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->all());
-    }
-
-    /**
-     * Gets the number of Routes in this collection.
-     *
-     * @return int The number of routes
-     */
-    public function count()
-    {
-        $count = 0;
-        foreach ($this->routeCollections as $routeCollection) {
-            $count+= $routeCollection->count();
-        }
-
-        return $count;
-    }
-
-    /**
-     * Adds a route.
-     *
-     * @param string $name  The route name
-     * @param Route  $route A Route instance
-     */
-    public function add($name, Route $route)
-    {
-        $this->createInternalCollection();
-        $this->routeCollection->add($name, $route);
-    }
-
-    /**
-     * Returns all routes in this collection.
-     *
-     * @return Route[] An array of routes
-     */
-    public function all()
-    {
-        $routeCollectionAll = new RouteCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollectionAll->addCollection($routeCollection);
-        }
-
-        return $routeCollectionAll->all();
-    }
-
-    /**
-     * Gets a route by name.
-     *
-     * @param string $name The route name
-     *
-     * @return Route|null A Route instance or null when not found
-     */
-    public function get($name)
-    {
-        foreach ($this->routeCollections as $routeCollection) {
-            $route = $routeCollection->get($name);
-            if (null !== $route) {
-                return $route;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Removes a route or an array of routes by name from the collection
-     *
-     * @param string|array $name The route name or an array of route names
-     */
-    public function remove($name)
-    {
-        foreach ($this->routeCollections as $routeCollection) {
-            $route = $routeCollection->get($name);
-            if (null !== $route) {
-                $routeCollection->remove($name);
-            }
-        }
-    }
-
-    /**
-     * Adds a route collection at the end of the current set by appending all
-     * routes of the added collection.
-     *
-     * @param RouteCollection $collection A RouteCollection instance
-     */
-    public function addCollection(RouteCollection $collection)
-    {
-        $this->routeCollections[] = $collection;
-    }
-
-    /**
-     * Adds a prefix to the path of all child routes.
-     *
-     * @param string $prefix       An optional prefix to add before each pattern of the route collection
-     * @param array  $defaults     An array of default values
-     * @param array  $requirements An array of requirements
-     */
-    public function addPrefix($prefix, array $defaults = array(), array $requirements = array())
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->addPrefix($prefix, $defaults, $requirements);
-        }
-    }
-
-    /**
-     * Sets the host pattern on all routes.
-     *
-     * @param string $pattern      The pattern
-     * @param array  $defaults     An array of default values
-     * @param array  $requirements An array of requirements
-     */
-    public function setHost($pattern, array $defaults = array(), array $requirements = array())
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->setHost($pattern, $defaults, $requirements);
-        }
-    }
-
-    /**
-     * Adds defaults to all routes.
-     *
-     * An existing default value under the same name in a route will be overridden.
-     *
-     * @param array $defaults An array of default values
-     */
-    public function addDefaults(array $defaults)
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->addDefaults($defaults);
-        }
-    }
-
-    /**
-     * Adds requirements to all routes.
-     *
-     * An existing requirement under the same name in a route will be overridden.
-     *
-     * @param array $requirements An array of requirements
-     */
-    public function addRequirements(array $requirements)
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->addRequirements($requirements);
-        }
-    }
-
-    /**
-     * Adds options to all routes.
-     *
-     * An existing option value under the same name in a route will be overridden.
-     *
-     * @param array $options An array of options
-     */
-    public function addOptions(array $options)
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->addOptions($options);
-        }
-    }
-
-    /**
-     * Sets the schemes (e.g. 'https') all child routes are restricted to.
-     *
-     * @param string|array $schemes The scheme or an array of schemes
-     */
-    public function setSchemes($schemes)
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->setSchemes($schemes);
-        }
-    }
-
-    /**
-     * Sets the HTTP methods (e.g. 'POST') all child routes are restricted to.
-     *
-     * @param string|array $methods The method or an array of methods
-     */
-    public function setMethods($methods)
-    {
-        $this->createInternalCollection();
-        foreach ($this->routeCollections as $routeCollection) {
-            $routeCollection->setMethods($methods);
-        }
-    }
-
-    /**
-     * Returns an array of resources loaded to build this collection.
-     *
-     * @return ResourceInterface[] An array of resources
-     */
-    public function getResources()
-    {
-        $resources = array();
-        foreach ($this->routeCollections as $routeCollection) {
-            $resources = array_merge($resources, $routeCollection->getResources());
-        }
-
-        return array_unique($resources);
-    }
-
-    /**
-     * Adds a resource for this collection.
-     *
-     * @param ResourceInterface $resource A resource instance
-     */
-    public function addResource(ResourceInterface $resource)
-    {
-        $this->createInternalCollection();
-        $this->routeCollection->addResource($resource);
-    }
-
-    private function createInternalCollection()
-    {
-        if (!$this->routeCollection instanceof RouteCollection) {
-            $this->routeCollection = new RouteCollection();
-            $this->routeCollections[] = $this->routeCollection;
-        }
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/ChainRouter.php b/core/vendor/symfony-cmf/routing/ChainRouter.php
deleted file mode 100644
index 89c2c15..0000000
--- a/core/vendor/symfony-cmf/routing/ChainRouter.php
+++ /dev/null
@@ -1,309 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\RouterInterface;
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\RequestContextAwareInterface;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface;
-use Psr\Log\LoggerInterface;
-
-/**
- * The ChainRouter allows to combine several routers to try in a defined order.
- *
- * @author Henrik Bjornskov <henrik@bjrnskov.dk>
- * @author Magnus Nordlander <magnus@e-butik.se>
- */
-class ChainRouter implements ChainRouterInterface, WarmableInterface
-{
-    /**
-     * @var RequestContext
-     */
-    private $context;
-
-    /**
-     * Array of arrays of routers grouped by priority
-     * @var array
-     */
-    private $routers = array();
-
-    /**
-     * @var RouterInterface[] Array of routers, sorted by priority
-     */
-    private $sortedRouters;
-
-    /**
-     * @var RouteCollection
-     */
-    private $routeCollection;
-
-    /**
-     * @var null|LoggerInterface
-     */
-    protected $logger;
-
-    /**
-     * @param LoggerInterface $logger
-     */
-    public function __construct(LoggerInterface $logger = null)
-    {
-        $this->logger = $logger;
-    }
-
-    /**
-     * @return RequestContext
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function add($router, $priority = 0)
-    {
-        if (!$router instanceof RouterInterface
-            && !($router instanceof RequestMatcherInterface && $router instanceof UrlGeneratorInterface)
-        ) {
-            throw new \InvalidArgumentException(sprintf('%s is not a valid router.', get_class($router)));
-        }
-        if (empty($this->routers[$priority])) {
-            $this->routers[$priority] = array();
-        }
-
-        $this->routers[$priority][] = $router;
-        $this->sortedRouters = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function all()
-    {
-        if (empty($this->sortedRouters)) {
-            $this->sortedRouters = $this->sortRouters();
-
-            // setContext() is done here instead of in add() to avoid fatal errors when clearing and warming up caches
-            // See https://github.com/symfony-cmf/Routing/pull/18
-            $context = $this->getContext();
-            if (null !== $context) {
-                foreach ($this->sortedRouters as $router) {
-                    if ($router instanceof RequestContextAwareInterface) {
-                        $router->setContext($context);
-                    }
-                }
-            }
-        }
-
-        return $this->sortedRouters;
-    }
-
-    /**
-     * Sort routers by priority.
-     * The highest priority number is the highest priority (reverse sorting)
-     *
-     * @return RouterInterface[]
-     */
-    protected function sortRouters()
-    {
-        $sortedRouters = array();
-        krsort($this->routers);
-
-        foreach ($this->routers as $routers) {
-            $sortedRouters = array_merge($sortedRouters, $routers);
-        }
-
-        return $sortedRouters;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Loops through all routes and tries to match the passed url.
-     *
-     * Note: You should use matchRequest if you can.
-     */
-    public function match($url)
-    {
-        return $this->doMatch($url);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Loops through all routes and tries to match the passed request.
-     */
-    public function matchRequest(Request $request)
-    {
-        return $this->doMatch($request->getPathInfo(), $request);
-    }
-
-    /**
-     * Loops through all routers and tries to match the passed request or url.
-     *
-     * At least the  url must be provided, if a request is additionally provided
-     * the request takes precedence.
-     *
-     * @param string  $url
-     * @param Request $request
-     *
-     * @return array An array of parameters
-     *
-     * @throws ResourceNotFoundException If no router matched.
-     */
-    private function doMatch($url, Request $request = null)
-    {
-        $methodNotAllowed = null;
-
-        $requestForMatching = $request;
-        foreach ($this->all() as $router) {
-            try {
-                // the request/url match logic is the same as in Symfony/Component/HttpKernel/EventListener/RouterListener.php
-                // matching requests is more powerful than matching URLs only, so try that first
-                if ($router instanceof RequestMatcherInterface) {
-                    if (empty($requestForMatching)) {
-                        $requestForMatching = Request::create($url);
-                    }
-
-                    return $router->matchRequest($requestForMatching);
-                }
-                // every router implements the match method
-                return $router->match($url);
-            } catch (ResourceNotFoundException $e) {
-                if ($this->logger) {
-                    $this->logger->debug('Router '.get_class($router).' was not able to match, message "'.$e->getMessage().'"');
-                }
-                // Needs special care
-            } catch (MethodNotAllowedException $e) {
-                if ($this->logger) {
-                    $this->logger->debug('Router '.get_class($router).' throws MethodNotAllowedException with message "'.$e->getMessage().'"');
-                }
-                $methodNotAllowed = $e;
-            }
-        }
-
-        $info = $request
-            ? "this request\n$request"
-            : "url '$url'";
-        throw $methodNotAllowed ?: new ResourceNotFoundException("None of the routers in the chain matched $info");
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Loops through all registered routers and returns a router if one is found.
-     * It will always return the first route generated.
-     */
-    public function generate($name, $parameters = array(), $absolute = false)
-    {
-        $debug = array();
-
-        foreach ($this->all() as $router) {
-            // if $router does not announce it is capable of handling
-            // non-string routes and $name is not a string, continue
-            if ($name && !is_string($name) && !$router instanceof VersatileGeneratorInterface) {
-                continue;
-            }
-
-            // If $router is versatile and doesn't support this route name, continue
-            if ($router instanceof VersatileGeneratorInterface && !$router->supports($name)) {
-                continue;
-            }
-
-            try {
-                return $router->generate($name, $parameters, $absolute);
-            } catch (RouteNotFoundException $e) {
-                $hint = $this->getErrorMessage($name, $router, $parameters);
-                $debug[] = $hint;
-                if ($this->logger) {
-                    $this->logger->debug('Router '.get_class($router)." was unable to generate route. Reason: '$hint': ".$e->getMessage());
-                }
-            }
-        }
-
-        if ($debug) {
-            $debug = array_unique($debug);
-            $info = implode(', ', $debug);
-        } else {
-            $info = $this->getErrorMessage($name);
-        }
-
-        throw new RouteNotFoundException(sprintf('None of the chained routers were able to generate route: %s', $info));
-    }
-
-    private function getErrorMessage($name, $router = null, $parameters = null)
-    {
-        if ($router instanceof VersatileGeneratorInterface) {
-            $displayName = $router->getRouteDebugMessage($name, $parameters);
-        } elseif (is_object($name)) {
-            $displayName = method_exists($name, '__toString')
-                ? (string) $name
-                : get_class($name)
-            ;
-        } else {
-            $displayName = (string) $name;
-        }
-
-        return "Route '$displayName' not found";
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContext(RequestContext $context)
-    {
-        foreach ($this->all() as $router) {
-            if ($router instanceof RequestContextAwareInterface) {
-                $router->setContext($context);
-            }
-        }
-
-        $this->context = $context;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * check for each contained router if it can warmup
-     */
-    public function warmUp($cacheDir)
-    {
-        foreach ($this->all() as $router) {
-            if ($router instanceof WarmableInterface) {
-                $router->warmUp($cacheDir);
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRouteCollection()
-    {
-        if (!$this->routeCollection instanceof RouteCollection) {
-            $this->routeCollection = new ChainRouteCollection();
-            foreach ($this->all() as $router) {
-                $this->routeCollection->addCollection($router->getRouteCollection());
-            }
-        }
-
-        return $this->routeCollection;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/ChainRouterInterface.php b/core/vendor/symfony-cmf/routing/ChainRouterInterface.php
deleted file mode 100644
index 9a7a003..0000000
--- a/core/vendor/symfony-cmf/routing/ChainRouterInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\RouterInterface;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-
-/**
- * Interface for a router that proxies routing to other routers.
- *
- * @author Daniel Wehner <dawehner@googlemail.com>
- */
-interface ChainRouterInterface extends RouterInterface, RequestMatcherInterface
-{
-    /**
-     * Add a Router to the index.
-     *
-     * @param RouterInterface $router   The router instance. Instead of RouterInterface, may also
-     *                                  be RequestMatcherInterface and UrlGeneratorInterface.
-     * @param integer         $priority The priority
-     */
-    public function add($router, $priority = 0);
-
-    /**
-     * Sorts the routers and flattens them.
-     *
-     * @return RouterInterface[] or RequestMatcherInterface and UrlGeneratorInterface.
-     */
-    public function all();
-}
diff --git a/core/vendor/symfony-cmf/routing/ChainedRouterInterface.php b/core/vendor/symfony-cmf/routing/ChainedRouterInterface.php
deleted file mode 100644
index a4ece6c..0000000
--- a/core/vendor/symfony-cmf/routing/ChainedRouterInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\RouterInterface;
-
-/**
- * Interface to combine the VersatileGeneratorInterface with the RouterInterface.
- */
-interface ChainedRouterInterface extends RouterInterface, VersatileGeneratorInterface
-{
-}
diff --git a/core/vendor/symfony-cmf/routing/ContentAwareGenerator.php b/core/vendor/symfony-cmf/routing/ContentAwareGenerator.php
deleted file mode 100644
index 91643eb..0000000
--- a/core/vendor/symfony-cmf/routing/ContentAwareGenerator.php
+++ /dev/null
@@ -1,320 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Doctrine\Common\Collections\Collection;
-use Symfony\Component\Routing\Route as SymfonyRoute;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * A generator that tries to generate routes from object, route names or
- * content objects or names.
- *
- * @author Philippo de Santis
- * @author David Buchmann
- * @author Uwe Jäger
- */
-class ContentAwareGenerator extends ProviderBasedGenerator
-{
-    /**
-     * The locale to use when neither the parameters nor the request context
-     * indicate the locale to use.
-     *
-     * @var string
-     */
-    protected $defaultLocale = null;
-
-    /**
-     * The content repository used to find content by it's id
-     * This can be used to specify a parameter content_id when generating urls
-     *
-     * This is optional and might not be initialized.
-     *
-     * @var  ContentRepositoryInterface
-     */
-    protected $contentRepository;
-
-    /**
-     * Set an optional content repository to find content by ids
-     *
-     * @param ContentRepositoryInterface $contentRepository
-     */
-    public function setContentRepository(ContentRepositoryInterface $contentRepository)
-    {
-        $this->contentRepository = $contentRepository;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @param string $name       ignored.
-     * @param array  $parameters must either contain the field 'route' with a
-     *                           RouteObjectInterface or the field 'content_id'
-     *                           with the id of a document implementing
-     *                           RouteReferrersReadInterface.
-     *
-     * @throws RouteNotFoundException If there is no such route in the database
-     */
-    public function generate($name, $parameters = array(), $absolute = false)
-    {
-        if ($name instanceof SymfonyRoute) {
-            $route = $this->getBestLocaleRoute($name, $parameters);
-        } elseif (is_string($name) && $name) {
-            $route = $this->getRouteByName($name, $parameters);
-        } else {
-            $route = $this->getRouteByContent($name, $parameters);
-        }
-
-        if (! $route instanceof SymfonyRoute) {
-            $hint = is_object($route) ? get_class($route) : gettype($route);
-            throw new RouteNotFoundException('Route of this document is not an instance of Symfony\Component\Routing\Route but: '.$hint);
-        }
-
-        $this->unsetLocaleIfNotNeeded($route, $parameters);
-
-        return parent::generate($route, $parameters, $absolute);
-    }
-
-    /**
-     * Get the route by a string name
-     *
-     * @param string $route
-     * @param array  $parameters
-     *
-     * @return SymfonyRoute
-     *
-     * @throws RouteNotFoundException if there is no route found for the provided name
-     */
-    protected function getRouteByName($name, array $parameters)
-    {
-        $route = $this->provider->getRouteByName($name);
-        if (empty($route)) {
-            throw new RouteNotFoundException('No route found for name: ' . $name);
-        }
-
-        return $this->getBestLocaleRoute($route, $parameters);
-    }
-
-    /**
-     * Determine if there is a route with matching locale associated with the
-     * given route via associated content.
-     *
-     * @param SymfonyRoute $route
-     * @param array        $parameters
-     *
-     * @return SymfonyRoute either the passed route or an alternative with better locale
-     */
-    protected function getBestLocaleRoute(SymfonyRoute $route, $parameters)
-    {
-        if (! $route instanceof RouteObjectInterface) {
-            // this route has no content, we can't get the alternatives
-            return $route;
-        }
-        $locale = $this->getLocale($parameters);
-        if (! $this->checkLocaleRequirement($route, $locale)) {
-            $content = $route->getContent();
-            if ($content instanceof RouteReferrersReadInterface) {
-                $routes = $content->getRoutes();
-                $contentRoute = $this->getRouteByLocale($routes, $locale);
-                if ($contentRoute) {
-                    return $contentRoute;
-                }
-            }
-        }
-
-        return $route;
-    }
-
-    /**
-     * Get the route based on the $name that is an object implementing
-     * RouteReferrersReadInterface or a content found in the content repository
-     * with the content_id specified in parameters that is an instance of
-     * RouteReferrersReadInterface.
-     *
-     * Called in generate when there is no route given in the parameters.
-     *
-     * If there is more than one route for the content, tries to find the
-     * first one that matches the _locale (provided in $parameters or otherwise
-     * defaulting to the request locale).
-     *
-     * If no route with matching locale is found, falls back to just return the
-     * first route.
-     *
-     * @param mixed $name
-     * @param array $parameters which should contain a content field containing
-     *                          a RouteReferrersReadInterface object
-     *
-     * @return SymfonyRoute the route instance
-     *
-     * @throws RouteNotFoundException if no route can be determined
-     */
-    protected function getRouteByContent($name, &$parameters)
-    {
-        if ($name instanceof RouteReferrersReadInterface) {
-            $content = $name;
-        } elseif (isset($parameters['content_id'])
-            && null !== $this->contentRepository
-        ) {
-            $content = $this->contentRepository->findById($parameters['content_id']);
-            if (empty($content)) {
-                throw new RouteNotFoundException('The content repository found nothing at id ' . $parameters['content_id']);
-            }
-            if (!$content instanceof RouteReferrersReadInterface) {
-                throw new RouteNotFoundException('Content repository did not return a RouteReferrersReadInterface instance for id ' . $parameters['content_id']);
-            }
-        } else {
-            $hint = is_object($name) ? get_class($name) : gettype($name);
-            throw new RouteNotFoundException("The route name argument '$hint' is not RouteReferrersReadInterface instance and there is no 'content_id' parameter");
-        }
-
-        $routes = $content->getRoutes();
-        if (empty($routes)) {
-            $hint = ($this->contentRepository && $this->contentRepository->getContentId($content))
-                ? $this->contentRepository->getContentId($content)
-                : get_class($content);
-            throw new RouteNotFoundException('Content document has no route: ' . $hint);
-        }
-
-        unset($parameters['content_id']);
-
-        $route = $this->getRouteByLocale($routes, $this->getLocale($parameters));
-        if ($route) {
-            return $route;
-        }
-
-        // if none matched, randomly return the first one
-        if ($routes instanceof Collection) {
-            return $routes->first();
-        }
-
-        return reset($routes);
-    }
-
-    /**
-     * @param RouteCollection $routes
-     * @param string          $locale
-     *
-     * @return bool|SymfonyRoute false if no route requirement matches the provided locale
-     */
-    protected function getRouteByLocale($routes, $locale)
-    {
-        foreach ($routes as $route) {
-            if (! $route instanceof SymfonyRoute) {
-                continue;
-            }
-
-            if ($this->checkLocaleRequirement($route, $locale)) {
-                return $route;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * @param SymfonyRoute $route
-     * @param string       $locale
-     *
-     * @return bool true if there is either no $locale, no _locale requirement
-     *              on the route or if the requirement and the passed $locale
-     *              match.
-     */
-    private function checkLocaleRequirement(SymfonyRoute $route, $locale)
-    {
-        return empty($locale)
-            || !$route->getRequirement('_locale')
-            || preg_match('/'.$route->getRequirement('_locale').'/', $locale)
-        ;
-    }
-
-    /**
-     * Determine the locale to be used with this request
-     *
-     * @param array $parameters the parameters determined by the route
-     *
-     * @return string the locale following of the parameters or any other
-     *                information the router has available. defaultLocale if no
-     *                other locale can be determined.
-     */
-    protected function getLocale($parameters)
-    {
-        if (isset($parameters['_locale'])) {
-            return $parameters['_locale'];
-        }
-
-        if ($this->getContext()->hasParameter('_locale')) {
-            return $this->getContext()->getParameter('_locale');
-        }
-
-        return $this->defaultLocale;
-    }
-
-    /**
-     * Overwrite the locale to be used by default if there is neither one in
-     * the parameters when building the route nor a request available (i.e. CLI).
-     *
-     * @param string $locale
-     */
-    public function setDefaultLocale($locale)
-    {
-        $this->defaultLocale = $locale;
-    }
-
-    /**
-     * We additionally support empty name and data in parameters and RouteAware content
-     */
-    public function supports($name)
-    {
-        return ! $name || parent::supports($name) || $name instanceof RouteReferrersReadInterface;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getRouteDebugMessage($name, array $parameters = array())
-    {
-        if (empty($name) && isset($parameters['content_id'])) {
-            return 'Content id ' . $parameters['content_id'];
-        }
-
-        if ($name instanceof RouteReferrersReadInterface) {
-            return 'Route aware content ' . parent::getRouteDebugMessage($name, $parameters);
-        }
-
-        return parent::getRouteDebugMessage($name, $parameters);
-    }
-
-    /**
-     * If the _locale parameter is allowed by the requirements of the route
-     * and it is the default locale, remove it from the parameters so that we
-     * do not get an unneeded ?_locale= query string.
-     *
-     * @param SymfonyRoute $route      The route being generated.
-     * @param array        $parameters The parameters used, will be modified to
-     *                                 remove the _locale field if needed.
-     */
-    protected function unsetLocaleIfNotNeeded(SymfonyRoute $route, array &$parameters)
-    {
-        $locale = $this->getLocale($parameters);
-        if (null !== $locale) {
-            if (preg_match('/'.$route->getRequirement('_locale').'/', $locale)
-                && $locale == $route->getDefault('_locale')
-            ) {
-                $compiledRoute = $route->compile();
-                if (!in_array('_locale', $compiledRoute->getVariables())) {
-                    unset($parameters['_locale']);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/ContentRepositoryInterface.php b/core/vendor/symfony-cmf/routing/ContentRepositoryInterface.php
deleted file mode 100644
index 31aea58..0000000
--- a/core/vendor/symfony-cmf/routing/ContentRepositoryInterface.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-/**
- * Interface used by the DynamicRouter to retrieve content by it's id when
- * generating routes from content-id.
- *
- * This can be easily implemented using i.e. the Doctrine PHPCR-ODM
- * DocumentManager.
- *
- * @author Uwe Jäger
- */
-interface ContentRepositoryInterface
-{
-    /**
-     * Return a content object by it's id or null if there is none.
-     *
-     * If the returned content implements RouteReferrersReadInterface, it will
-     * be used to get the route from it to generate an URL.
-     *
-     * @param string $id id of the content object
-     *
-     * @return object A content that matches this id.
-     */
-    public function findById($id);
-
-    /**
-     * Return the content identifier for the provided content object for
-     * debugging purposes.
-     *
-     * @param object $content A content instance
-     *
-     * @return string|null $id id of the content object or null if unable to determine an id
-     */
-    public function getContentId($content);
-}
diff --git a/core/vendor/symfony-cmf/routing/DependencyInjection/Compiler/RegisterRouteEnhancersPass.php b/core/vendor/symfony-cmf/routing/DependencyInjection/Compiler/RegisterRouteEnhancersPass.php
deleted file mode 100644
index 0c24224..0000000
--- a/core/vendor/symfony-cmf/routing/DependencyInjection/Compiler/RegisterRouteEnhancersPass.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-/**
- * This compiler pass adds additional route enhancers
- * to the dynamic router.
- *
- * @author Daniel Leech <dan.t.leech@gmail.com>
- * @author Nathaniel Catchpole (catch)
- */
-class RegisterRouteEnhancersPass implements CompilerPassInterface
-{
-    /**
-     * @var string
-     */
-    protected $dynamicRouterService;
-
-    protected $enhancerTag;
-
-    public function __construct($dynamicRouterService = 'cmf_routing.dynamic_router', $enhancerTag = 'dynamic_router_route_enhancer')
-    {
-        $this->dynamicRouterService = $dynamicRouterService;
-        $this->enhancerTag = $enhancerTag;
-    }
-
-    public function process(ContainerBuilder $container)
-    {
-        if (!$container->hasDefinition($this->dynamicRouterService)) {
-            return;
-        }
-
-        $router = $container->getDefinition($this->dynamicRouterService);
-
-        foreach ($container->findTaggedServiceIds($this->enhancerTag) as $id => $attributes) {
-            $priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0;
-            $router->addMethodCall('addRouteEnhancer', array(new Reference($id), $priority));
-        }
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/DependencyInjection/Compiler/RegisterRoutersPass.php b/core/vendor/symfony-cmf/routing/DependencyInjection/Compiler/RegisterRoutersPass.php
deleted file mode 100644
index 2d83765..0000000
--- a/core/vendor/symfony-cmf/routing/DependencyInjection/Compiler/RegisterRoutersPass.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-/**
- * Compiler pass to register routers to the ChainRouter.
- *
- * @author Wouter J <waldio.webdesign@gmail.com>
- * @author Henrik Bjornskov <henrik@bjrnskov.dk>
- * @author Magnus Nordlander <magnus@e-butik.se>
- */
-class RegisterRoutersPass implements CompilerPassInterface
-{
-    /**
-     * @var string
-     */
-    protected $chainRouterService;
-
-    protected $routerTag;
-
-    public function __construct($chainRouterService = 'cmf_routing.router', $routerTag = 'router')
-    {
-        $this->chainRouterService = $chainRouterService;
-        $this->routerTag = $routerTag;
-    }
-
-    public function process(ContainerBuilder $container)
-    {
-        if (!$container->hasDefinition($this->chainRouterService)) {
-            return;
-        }
-
-        $definition = $container->getDefinition($this->chainRouterService);
-
-        foreach ($container->findTaggedServiceIds($this->routerTag) as $id => $attributes) {
-            $priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0;
-
-            $definition->addMethodCall('add', array(new Reference($id), $priority));
-        }
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/DynamicRouter.php b/core/vendor/symfony-cmf/routing/DynamicRouter.php
deleted file mode 100644
index 944a94b..0000000
--- a/core/vendor/symfony-cmf/routing/DynamicRouter.php
+++ /dev/null
@@ -1,373 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RouterInterface;
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
-use Symfony\Component\Routing\RequestContextAwareInterface;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Cmf\Component\Routing\Enhancer\RouteEnhancerInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Cmf\Component\Routing\Event\Events;
-use Symfony\Cmf\Component\Routing\Event\RouterMatchEvent;
-
-/**
- * A flexible router accepting matcher and generator through injection and
- * using the RouteEnhancer concept to generate additional data on the routes.
- *
- * @author Larry Garfield
- * @author David Buchmann
- */
-class DynamicRouter implements RouterInterface, RequestMatcherInterface, ChainedRouterInterface
-{
-    /**
-     * @var RequestMatcherInterface|UrlMatcherInterface
-     */
-    protected $matcher;
-
-    /**
-     * @var UrlGeneratorInterface
-     */
-    protected $generator;
-
-    /**
-     * @var EventDispatcherInterface
-     */
-    protected $eventDispatcher;
-
-    /**
-     * @var RouteEnhancerInterface[]
-     */
-    protected $enhancers = array();
-
-    /**
-     * Cached sorted list of enhancers
-     *
-     * @var RouteEnhancerInterface[]
-     */
-    protected $sortedEnhancers = array();
-
-    /**
-     * The regexp pattern that needs to be matched before a dynamic lookup is made
-     *
-     * @var string
-     */
-    protected $uriFilterRegexp;
-
-    /**
-     * @var RequestContext
-     */
-    protected $context;
-
-    /**
-     * @var RouteCollection
-     */
-    private $routeCollection;
-
-    /**
-     * @param RequestContext                              $context
-     * @param RequestMatcherInterface|UrlMatcherInterface $matcher
-     * @param UrlGeneratorInterface                       $generator
-     * @param string                                      $uriFilterRegexp
-     * @param EventDispatcherInterface|null               $eventDispatcher
-     * @param RouteProviderInterface                      $provider
-     */
-    public function __construct(RequestContext $context,
-                                $matcher,
-                                UrlGeneratorInterface $generator,
-                                $uriFilterRegexp = '',
-                                EventDispatcherInterface $eventDispatcher = null,
-                                RouteProviderInterface $provider = null
-    ) {
-        $this->context = $context;
-        if (! $matcher instanceof RequestMatcherInterface && ! $matcher instanceof UrlMatcherInterface) {
-            throw new \InvalidArgumentException('Matcher must implement either Symfony\Component\Routing\Matcher\RequestMatcherInterface or Symfony\Component\Routing\Matcher\UrlMatcherInterface');
-        }
-        $this->matcher = $matcher;
-        $this->generator = $generator;
-        $this->eventDispatcher = $eventDispatcher;
-        $this->uriFilterRegexp = $uriFilterRegexp;
-        $this->provider = $provider;
-
-        $this->generator->setContext($context);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getRouteCollection()
-    {
-        if (!$this->routeCollection instanceof RouteCollection) {
-            $this->routeCollection = $this->provider
-                ? new LazyRouteCollection($this->provider) : new RouteCollection();
-        }
-
-        return $this->routeCollection;
-    }
-
-    /**
-     * @return RequestMatcherInterface|UrlMatcherInterface
-     */
-    public function getMatcher()
-    {
-        /* we may not set the context in DynamicRouter::setContext as this
-         * would lead to symfony cache warmup problems.
-         * a request matcher does not need the request context separately as it
-         * can get it from the request.
-         */
-        if ($this->matcher instanceof RequestContextAwareInterface) {
-            $this->matcher->setContext($this->getContext());
-        }
-
-        return $this->matcher;
-    }
-
-    /**
-     * @return UrlGeneratorInterface
-     */
-    public function getGenerator()
-    {
-        $this->generator->setContext($this->getContext());
-
-        return $this->generator;
-    }
-
-    /**
-     * Generates a URL from the given parameters.
-     *
-     * If the generator is not able to generate the url, it must throw the
-     * RouteNotFoundException as documented below.
-     *
-     * @param string  $name       The name of the route
-     * @param mixed   $parameters An array of parameters
-     * @param Boolean $absolute   Whether to generate an absolute URL
-     *
-     * @return string The generated URL
-     *
-     * @throws RouteNotFoundException if route doesn't exist
-     *
-     * @api
-     */
-    public function generate($name, $parameters = array(), $absolute = false)
-    {
-        return $this->getGenerator()->generate($name, $parameters, $absolute);
-    }
-
-    /**
-     * Delegate to our generator
-     *
-     * {@inheritDoc}
-     */
-    public function supports($name)
-    {
-        if ($this->generator instanceof VersatileGeneratorInterface) {
-            return $this->generator->supports($name);
-        }
-
-        return is_string($name);
-    }
-
-    /**
-     * Tries to match a URL path with a set of routes.
-     *
-     * If the matcher can not find information, it must throw one of the
-     * exceptions documented below.
-     *
-     * @param string $pathinfo The path info to be parsed (raw format, i.e. not
-     *                         urldecoded)
-     *
-     * @return array An array of parameters
-     *
-     * @throws ResourceNotFoundException If the resource could not be found
-     * @throws MethodNotAllowedException If the resource was found but the
-     *                                   request method is not allowed
-     *
-     * @deprecated Use matchRequest exclusively to avoid problems. This method will be removed in version 2.0
-     * @api
-     */
-    public function match($pathinfo)
-    {
-        $request = Request::create($pathinfo);
-        if ($this->eventDispatcher) {
-            $event = new RouterMatchEvent();
-            $this->eventDispatcher->dispatch(Events::PRE_DYNAMIC_MATCH, $event);
-        }
-
-        if (! empty($this->uriFilterRegexp) && ! preg_match($this->uriFilterRegexp, $pathinfo)) {
-            throw new ResourceNotFoundException("$pathinfo does not match the '{$this->uriFilterRegexp}' pattern");
-        }
-
-        $matcher = $this->getMatcher();
-        if (! $matcher instanceof UrlMatcherInterface) {
-            throw new \InvalidArgumentException('Wrong matcher type, you need to call matchRequest');
-        }
-
-        $defaults = $matcher->match($pathinfo);
-
-        return $this->applyRouteEnhancers($defaults, $request);
-    }
-
-    /**
-     * Tries to match a request with a set of routes and returns the array of
-     * information for that route.
-     *
-     * If the matcher can not find information, it must throw one of the
-     * exceptions documented below.
-     *
-     * @param Request $request The request to match
-     *
-     * @return array An array of parameters
-     *
-     * @throws ResourceNotFoundException If no matching resource could be found
-     * @throws MethodNotAllowedException If a matching resource was found but
-     *                                   the request method is not allowed
-     */
-    public function matchRequest(Request $request)
-    {
-        if ($this->eventDispatcher) {
-            $event = new RouterMatchEvent($request);
-            $this->eventDispatcher->dispatch(Events::PRE_DYNAMIC_MATCH_REQUEST, $event);
-        }
-
-        if (! empty($this->uriFilterRegexp)
-            && ! preg_match($this->uriFilterRegexp, $request->getPathInfo())
-        ) {
-            throw new ResourceNotFoundException("{$request->getPathInfo()} does not match the '{$this->uriFilterRegexp}' pattern");
-        }
-
-        $matcher = $this->getMatcher();
-        if ($matcher instanceof UrlMatcherInterface) {
-            $defaults = $matcher->match($request->getPathInfo());
-        } else {
-            $defaults = $matcher->matchRequest($request);
-        }
-
-        return $this->applyRouteEnhancers($defaults, $request);
-    }
-
-    /**
-     * Apply the route enhancers to the defaults, according to priorities
-     *
-     * @param array   $defaults
-     * @param Request $request
-     *
-     * @return array
-     */
-    protected function applyRouteEnhancers($defaults, Request $request)
-    {
-        foreach ($this->getRouteEnhancers() as $enhancer) {
-            $defaults = $enhancer->enhance($defaults, $request);
-        }
-
-        return $defaults;
-    }
-
-    /**
-     * Add route enhancers to the router to let them generate information on
-     * matched routes.
-     *
-     * The order of the enhancers is determined by the priority, the higher the
-     * value, the earlier the enhancer is run.
-     *
-     * @param RouteEnhancerInterface $enhancer
-     * @param int                    $priority
-     */
-    public function addRouteEnhancer(RouteEnhancerInterface $enhancer, $priority = 0)
-    {
-        if (empty($this->enhancers[$priority])) {
-            $this->enhancers[$priority] = array();
-        }
-
-        $this->enhancers[$priority][] = $enhancer;
-        $this->sortedEnhancers = array();
-
-        return $this;
-    }
-
-    /**
-     * Sorts the enhancers and flattens them.
-     *
-     * @return RouteEnhancerInterface[] the enhancers ordered by priority
-     */
-    public function getRouteEnhancers()
-    {
-        if (empty($this->sortedEnhancers)) {
-            $this->sortedEnhancers = $this->sortRouteEnhancers();
-        }
-
-        return $this->sortedEnhancers;
-    }
-
-    /**
-     * Sort enhancers by priority.
-     *
-     * The highest priority number is the highest priority (reverse sorting).
-     *
-     * @return RouteEnhancerInterface[] the sorted enhancers
-     */
-    protected function sortRouteEnhancers()
-    {
-        $sortedEnhancers = array();
-        krsort($this->enhancers);
-
-        foreach ($this->enhancers as $enhancers) {
-            $sortedEnhancers = array_merge($sortedEnhancers, $enhancers);
-        }
-
-        return $sortedEnhancers;
-    }
-
-    /**
-     * Sets the request context.
-     *
-     * @param RequestContext $context The context
-     *
-     * @api
-     */
-    public function setContext(RequestContext $context)
-    {
-        $this->context = $context;
-    }
-
-    /**
-     * Gets the request context.
-     *
-     * @return RequestContext The context
-     *
-     * @api
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Forwards to the generator.
-     */
-    public function getRouteDebugMessage($name, array $parameters = array())
-    {
-        if ($this->generator instanceof VersatileGeneratorInterface) {
-            return $this->generator->getRouteDebugMessage($name, $parameters);
-        }
-
-        return "Route '$name' not found";
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Enhancer/FieldByClassEnhancer.php b/core/vendor/symfony-cmf/routing/Enhancer/FieldByClassEnhancer.php
deleted file mode 100644
index f88b348..0000000
--- a/core/vendor/symfony-cmf/routing/Enhancer/FieldByClassEnhancer.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * This enhancer sets a field if not yet existing from the class of an object
- * in another field.
- *
- * The comparison is done with instanceof to support proxy classes and such.
- *
- * Only works with RouteObjectInterface routes that can return a referenced
- * content.
- *
- * @author David Buchmann
- */
-class FieldByClassEnhancer implements RouteEnhancerInterface
-{
-    /**
-     * @var string field for the source class
-     */
-    protected $source;
-    /**
-     * @var string field to write hashmap lookup result into
-     */
-    protected $target;
-    /**
-     * @var array containing the mapping between a class name and the target value
-     */
-    protected $map;
-
-    /**
-     * @param string $source the field name of the class
-     * @param string $target the field name to set from the map
-     * @param array  $map    the map of class names to field values
-     */
-    public function __construct($source, $target, $map)
-    {
-        $this->source = $source;
-        $this->target = $target;
-        $this->map = $map;
-    }
-
-    /**
-     * If the source field is instance of one of the entries in the map,
-     * target is set to the value of that map entry.
-     *
-     * {@inheritDoc}
-     */
-    public function enhance(array $defaults, Request $request)
-    {
-        if (isset($defaults[$this->target])) {
-            // no need to do anything
-            return $defaults;
-        }
-
-        if (! isset($defaults[$this->source])) {
-            return $defaults;
-        }
-
-        // we need to loop over the array and do instanceof in case the content
-        // class extends the specified class
-        // i.e. phpcr-odm generates proxy class for the content.
-        foreach ($this->map as $class => $value) {
-            if ($defaults[$this->source] instanceof $class) {
-                // found a matching entry in the map
-                $defaults[$this->target] = $value;
-
-                return $defaults;
-            }
-        }
-
-        return $defaults;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Enhancer/FieldMapEnhancer.php b/core/vendor/symfony-cmf/routing/Enhancer/FieldMapEnhancer.php
deleted file mode 100644
index 91adc66..0000000
--- a/core/vendor/symfony-cmf/routing/Enhancer/FieldMapEnhancer.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * This enhancer can fill one field with the result of a hashmap lookup of
- * another field. If the target field is already set, it does nothing.
- *
- * @author David Buchmann
- */
-class FieldMapEnhancer implements RouteEnhancerInterface
-{
-    /**
-     * @var string field for key in hashmap lookup
-     */
-    protected $source;
-    /**
-     * @var string field to write hashmap lookup result into
-     */
-    protected $target;
-    /**
-     * @var array containing the mapping between the source field value and target field value
-     */
-    protected $hashmap;
-
-    /**
-     * @param string $source  the field to read
-     * @param string $target  the field to write the result of the lookup into
-     * @param array  $hashmap for looking up value from source and get value for target
-     */
-    public function __construct($source, $target, array $hashmap)
-    {
-        $this->source = $source;
-        $this->target = $target;
-        $this->hashmap = $hashmap;
-    }
-
-    /**
-     * If the target field is not set but the source field is, map the field
-     *
-     * {@inheritDoc}
-     */
-    public function enhance(array $defaults, Request $request)
-    {
-        if (isset($defaults[$this->target])) {
-            return $defaults;
-        }
-        if (! isset($defaults[$this->source])) {
-            return $defaults;
-        }
-        if (! isset($this->hashmap[$defaults[$this->source]])) {
-            return $defaults;
-        }
-
-        $defaults[$this->target] = $this->hashmap[$defaults[$this->source]];
-
-        return $defaults;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Enhancer/FieldPresenceEnhancer.php b/core/vendor/symfony-cmf/routing/Enhancer/FieldPresenceEnhancer.php
deleted file mode 100644
index d2e35ad..0000000
--- a/core/vendor/symfony-cmf/routing/Enhancer/FieldPresenceEnhancer.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * This enhancer sets a field to a fixed value. You can specify a source field
- * name to only set the target field if the source is present.
- *
- * @author David Buchmann
- */
-class FieldPresenceEnhancer implements RouteEnhancerInterface
-{
-    /**
-     * Field name for the source field that must exist. If null, the target
-     * field is always set if not already present.
-     *
-     * @var string|null
-     */
-    protected $source;
-
-    /**
-     * Field name to write the value into.
-     *
-     * @var string
-     */
-    protected $target;
-
-    /**
-     * Value to set the target field to.
-     *
-     * @var string
-     */
-    private $value;
-
-    /**
-     * @param null|string $source the field name of the class, null to disable the check
-     * @param string      $target the field name to set from the map
-     * @param string      $value  value to set target field to if source field exists
-     */
-    public function __construct($source, $target, $value)
-    {
-        $this->source = $source;
-        $this->target = $target;
-        $this->value = $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function enhance(array $defaults, Request $request)
-    {
-        if (isset($defaults[$this->target])) {
-            // no need to do anything
-            return $defaults;
-        }
-
-        if (null !== $this->source && !isset($defaults[$this->source])) {
-            return $defaults;
-        }
-
-        $defaults[$this->target] = $this->value;
-
-        return $defaults;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Enhancer/RouteContentEnhancer.php b/core/vendor/symfony-cmf/routing/Enhancer/RouteContentEnhancer.php
deleted file mode 100644
index af63dfc..0000000
--- a/core/vendor/symfony-cmf/routing/Enhancer/RouteContentEnhancer.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-/**
- * This enhancer sets the content to target field if the route provides content.
- *
- * Only works with RouteObjectInterface routes that can return a referenced
- * content.
- *
- * @author David Buchmann
- */
-class RouteContentEnhancer implements RouteEnhancerInterface
-{
-    /**
-     * @var string field for the route class
-     */
-    protected $routefield;
-    /**
-     * @var string field to write hashmap lookup result into
-     */
-    protected $target;
-
-    /**
-     * @param string $routefield the field name of the route class
-     * @param string $target     the field name to set from the map
-     * @param array  $hashmap    the map of class names to field values
-     */
-    public function __construct($routefield, $target)
-    {
-        $this->routefield = $routefield;
-        $this->target = $target;
-    }
-
-    /**
-     * If the route has a non-null content and if that content class is in the
-     * injected map, returns that controller.
-     *
-     * {@inheritDoc}
-     */
-    public function enhance(array $defaults, Request $request)
-    {
-        if (isset($defaults[$this->target])) {
-            // no need to do anything
-            return $defaults;
-        }
-
-        if (! isset($defaults[$this->routefield])
-            || ! $defaults[$this->routefield] instanceof RouteObjectInterface
-        ) {
-            // we can't determine the content
-            return $defaults;
-        }
-        /** @var $route RouteObjectInterface */
-        $route = $defaults[$this->routefield];
-
-        $content = $route->getContent();
-        if (! $content) {
-            // we have no content
-            return $defaults;
-        }
-        $defaults[$this->target] = $content;
-
-        return $defaults;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Enhancer/RouteEnhancerInterface.php b/core/vendor/symfony-cmf/routing/Enhancer/RouteEnhancerInterface.php
deleted file mode 100644
index 85a77c5..0000000
--- a/core/vendor/symfony-cmf/routing/Enhancer/RouteEnhancerInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * A route enhancer can change the values in the route data arrays
- *
- * This is useful to provide information to the rest of the routing system
- * that can be inferred from other parameters rather than hardcode that
- * information in every route.
- *
- * @author David Buchmann
- */
-interface RouteEnhancerInterface
-{
-    /**
-     * Update the defaults based on its own data and the request.
-     *
-     * @param array   $defaults the getRouteDefaults array.
-     * @param Request $request  the Request instance.
-     *
-     * @return array the modified defaults. Each enhancer MUST return the
-     *               $defaults but may add or remove values.
-     */
-    public function enhance(array $defaults, Request $request);
-}
diff --git a/core/vendor/symfony-cmf/routing/Event/Events.php b/core/vendor/symfony-cmf/routing/Event/Events.php
deleted file mode 100644
index 95c0326..0000000
--- a/core/vendor/symfony-cmf/routing/Event/Events.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Event;
-
-final class Events
-{
-    /**
-     * Fired before a path is matched in \Symfony\Cmf\Component\Routing\DynamicRouter#match
-     *
-     * The event object is RouteMatchEvent.
-     */
-    const PRE_DYNAMIC_MATCH = 'cmf_routing.pre_dynamic_match';
-
-    /**
-     * Fired before a Request is matched in \Symfony\Cmf\Component\Routing\DynamicRouter#match
-     *
-     * The event object is RouteMatchEvent.
-     */
-    const PRE_DYNAMIC_MATCH_REQUEST = 'cmf_routing.pre_dynamic_match_request';
-}
diff --git a/core/vendor/symfony-cmf/routing/Event/RouterMatchEvent.php b/core/vendor/symfony-cmf/routing/Event/RouterMatchEvent.php
deleted file mode 100644
index 7125972..0000000
--- a/core/vendor/symfony-cmf/routing/Event/RouterMatchEvent.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Event;
-
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\HttpFoundation\Request;
-
-class RouterMatchEvent extends Event
-{
-    /**
-     * @var Request
-     */
-    protected $request;
-
-    /**
-     * @param Request $request
-     */
-    public function __construct(Request $request = null)
-    {
-        $this->request = $request;
-    }
-
-    /**
-     * @return Request | null
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/LICENSE b/core/vendor/symfony-cmf/routing/LICENSE
deleted file mode 100644
index b068dfb..0000000
--- a/core/vendor/symfony-cmf/routing/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Routing
-
-    The MIT License
-
-    Copyright (c) 2011-2014 Symfony2 CMF
-
-    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/core/vendor/symfony-cmf/routing/LazyRouteCollection.php b/core/vendor/symfony-cmf/routing/LazyRouteCollection.php
deleted file mode 100644
index 4011f9a..0000000
--- a/core/vendor/symfony-cmf/routing/LazyRouteCollection.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-
-class LazyRouteCollection extends RouteCollection
-{
-    /**
-     * The route provider for this generator.
-     *
-     * @var RouteProviderInterface
-     */
-    protected $provider;
-
-    public function __construct(RouteProviderInterface $provider)
-    {
-        $this->provider = $provider;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->all());
-    }
-
-    /**
-     * Gets the number of Routes in this collection.
-     *
-     * @return int The number of routes
-     */
-    public function count()
-    {
-        return count($this->all());
-    }
-
-    /**
-     * Returns all routes in this collection.
-     *
-     * @return Route[] An array of routes
-     */
-    public function all()
-    {
-        return $this->provider->getRoutesByNames(null);
-    }
-
-    /**
-     * Gets a route by name.
-     *
-     * @param string $name The route name
-     *
-     * @return Route|null A Route instance or null when not found
-     */
-    public function get($name)
-    {
-        try {
-            return $this->provider->getRouteByName($name);
-        } catch (RouteNotFoundException $e) {
-            return null;
-        }
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/NestedMatcher/FinalMatcherInterface.php b/core/vendor/symfony-cmf/routing/NestedMatcher/FinalMatcherInterface.php
deleted file mode 100644
index 77cd649..0000000
--- a/core/vendor/symfony-cmf/routing/NestedMatcher/FinalMatcherInterface.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\NestedMatcher;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-
-/**
- * A FinalMatcher returns only one route from a collection of candidate routes.
- *
- * @author Larry Garfield
- * @author David Buchmann
- */
-interface FinalMatcherInterface
-{
-    /**
-    * Matches a request against a route collection and returns exactly one result.
-    *
-    * @param RouteCollection $collection The collection against which to match.
-    * @param Request $request The request to match.
-    *
-    * @return array An array of parameters
-    *
-    * @throws ResourceNotFoundException if none of the routes in $collection
-    *    matches $request
-    */
-    public function finalMatch(RouteCollection $collection, Request $request);
-}
diff --git a/core/vendor/symfony-cmf/routing/NestedMatcher/NestedMatcher.php b/core/vendor/symfony-cmf/routing/NestedMatcher/NestedMatcher.php
deleted file mode 100644
index c136e1f..0000000
--- a/core/vendor/symfony-cmf/routing/NestedMatcher/NestedMatcher.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\NestedMatcher;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-use Symfony\Cmf\Component\Routing\RouteProviderInterface;
-
-/**
- * A more flexible approach to matching. The route collection to match against
- * can be dynamically determined based on the request and users can inject
- * their own filters or use a custom final matching strategy.
- *
- * The nested matcher splits matching into three configurable steps:
- *
- * 1) Get potential matches from a RouteProviderInterface
- * 2) Apply any RouteFilterInterface to reduce the route collection
- * 3) Have FinalMatcherInterface select the best match of the remaining routes
- *
- * @author Larry Garfield
- * @author David Buchmann
- */
-class NestedMatcher implements RequestMatcherInterface
-{
-    /**
-     * The route provider responsible for the first-pass match.
-     *
-     * @var RouteProviderInterface
-     */
-    protected $routeProvider;
-
-    /**
-     * The final matcher.
-     *
-     * @var FinalMatcherInterface
-     */
-    protected $finalMatcher;
-
-    /**
-     * An array of RouteFilterInterface objects.
-     *
-     * @var RouteFilterInterface[]
-     */
-    protected $filters = array();
-
-    /**
-     * Array of RouteFilterInterface objects, sorted.
-     *
-     * @var RouteFilterInterface[]
-     */
-    protected $sortedFilters = array();
-
-    /**
-     * Constructs a new NestedMatcher
-     *
-     * @param RouteProviderInterface $provider The route provider this matcher
-     *                                         should use
-     * @param FinalMatcherInterface  $final    The Final Matcher to match the
-     *                                         routes
-     */
-    public function __construct(
-        RouteProviderInterface $provider = null,
-        FinalMatcherInterface $final = null
-    ) {
-        if (null !== $provider) {
-            $this->setRouteProvider($provider);
-        }
-        if (null !== $final) {
-            $this->setFinalMatcher($final);
-        }
-    }
-
-    /**
-     * Sets the route provider for the matching plan.
-     *
-     * @param RouteProviderInterface $provider A source of routes.
-     *
-     * @return NestedMatcher this object to have a fluent interface
-     */
-    public function setRouteProvider(RouteProviderInterface $provider)
-    {
-        $this->routeProvider = $provider;
-
-        return $this;
-    }
-
-    /**
-     * Adds a partial matcher to the matching plan.
-     *
-     * Partial matchers will be run in the order in which they are added.
-     *
-     * @param RouteFilterInterface $filter
-     * @param int                  $priority (optional) The priority of the
-     *                                       filter. Higher number filters will
-     *                                       be used first. Defaults to 0.
-     *
-     * @return NestedMatcher this object to have a fluent interface
-     */
-    public function addRouteFilter(RouteFilterInterface $filter, $priority = 0)
-    {
-        if (empty($this->filters[$priority])) {
-            $this->filters[$priority] = array();
-        }
-
-        $this->filters[$priority][] = $filter;
-        $this->sortedFilters = array();
-
-        return $this;
-    }
-
-    /**
-     * Sets the final matcher for the matching plan.
-     *
-     * @param FinalMatcherInterface $final The final matcher that will have to
-     *                                     pick the route that will be used.
-     *
-     * @return NestedMatcher this object to have a fluent interface
-     */
-    public function setFinalMatcher(FinalMatcherInterface $final)
-    {
-        $this->finalMatcher = $final;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function matchRequest(Request $request)
-    {
-        $collection = $this->routeProvider->getRouteCollectionForRequest($request);
-        if (!count($collection)) {
-            throw new ResourceNotFoundException();
-        }
-
-        // Route filters are expected to throw an exception themselves if they
-        // end up filtering the list down to 0.
-        foreach ($this->getRouteFilters() as $filter) {
-            $collection = $filter->filter($collection, $request);
-        }
-
-        $attributes = $this->finalMatcher->finalMatch($collection, $request);
-
-        return $attributes;
-    }
-
-    /**
-     * Sorts the filters and flattens them.
-     *
-     * @return RouteFilterInterface[] the filters ordered by priority
-     */
-    public function getRouteFilters()
-    {
-        if (empty($this->sortedFilters)) {
-           $this->sortedFilters = $this->sortFilters();
-        }
-
-        return $this->sortedFilters;
-    }
-
-    /**
-     * Sort filters by priority.
-     *
-     * The highest priority number is the highest priority (reverse sorting).
-     *
-     * @return RouteFilterInterface[] the sorted filters
-     */
-    protected function sortFilters()
-    {
-        $sortedFilters = array();
-        krsort($this->filters);
-
-        foreach ($this->filters as $filters) {
-            $sortedFilters = array_merge($sortedFilters, $filters);
-        }
-
-        return $sortedFilters;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/NestedMatcher/RouteFilterInterface.php b/core/vendor/symfony-cmf/routing/NestedMatcher/RouteFilterInterface.php
deleted file mode 100644
index 15ff74d..0000000
--- a/core/vendor/symfony-cmf/routing/NestedMatcher/RouteFilterInterface.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\NestedMatcher;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * A RouteFilter takes a RouteCollection and returns a filtered subset.
- *
- * It is not implemented as a filter iterator because we want to allow
- * router filters to handle their own empty-case handling, usually by throwing
- * an appropriate exception if no routes match the object's rules.
- *
- * @author Larry Garfield
- * @author David Buchmann
- */
-interface RouteFilterInterface
-{
-    /**
-     * Filters the route collection against a request and returns all matching
-     * routes.
-     *
-     * @param RouteCollection $collection The collection against which to match.
-     * @param Request         $request    A Request object against which to match.
-     *
-     * @return RouteCollection A non-empty RouteCollection of matched routes.
-     *
-     * @throws ResourceNotFoundException if none of the routes in $collection
-     *                                   matches $request. This is a performance
-     *                                   optimization to not continue the match
-     *                                   process when a match will no longer be
-     *                                   possible.
-     */
-    public function filter(RouteCollection $collection, Request $request);
-}
diff --git a/core/vendor/symfony-cmf/routing/NestedMatcher/UrlMatcher.php b/core/vendor/symfony-cmf/routing/NestedMatcher/UrlMatcher.php
deleted file mode 100644
index 8986d5b..0000000
--- a/core/vendor/symfony-cmf/routing/NestedMatcher/UrlMatcher.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\NestedMatcher;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Matcher\UrlMatcher as SymfonyUrlMatcher;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\RequestContext;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-/**
- * Extended UrlMatcher to provide an additional interface and enhanced features.
- *
- * This class requires Symfony 2.2 for a refactoring done to the symfony UrlMatcher
- *
- * @author Larry Garfield
- */
-class UrlMatcher extends SymfonyUrlMatcher implements FinalMatcherInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function finalMatch(RouteCollection $collection, Request $request)
-    {
-        $this->routes = $collection;
-        $context = new RequestContext();
-        $context->fromRequest($request);
-        $this->setContext($context);
-
-        return $this->match($request->getPathInfo());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getAttributes(Route $route, $name, array $attributes)
-    {
-        if ($route instanceof RouteObjectInterface && is_string($route->getRouteKey())) {
-            $name = $route->getRouteKey();
-        }
-        $attributes[RouteObjectInterface::ROUTE_NAME] = $name;
-        $attributes[RouteObjectInterface::ROUTE_OBJECT] = $route;
-
-        return $this->mergeDefaults($attributes, $route->getDefaults());
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/PagedRouteCollection.php b/core/vendor/symfony-cmf/routing/PagedRouteCollection.php
deleted file mode 100644
index dba573e..0000000
--- a/core/vendor/symfony-cmf/routing/PagedRouteCollection.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/**
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-/**
- * Provides a route collection which avoids having all routes in memory.
- *
- * Internally, this does load multiple routes over time using a
- * PagedRouteProviderInterface $route_provider.
- */
-class PagedRouteCollection implements \Iterator, \Countable
-{
-    /**
-     * @var PagedRouteProviderInterface
-     */
-    protected $provider;
-
-    /**
-     * Stores the amount of routes which are loaded in parallel and kept in
-     * memory.
-     *
-     * @var int
-     */
-    protected $routesBatchSize;
-
-    /**
-     * Contains the current item the iterator points to.
-     *
-     * @var int
-     */
-    protected $current = -1;
-
-    /**
-     * Stores the current loaded routes.
-     *
-     * @var \Symfony\Component\Routing\Route[]
-     */
-    protected $currentRoutes;
-
-    public function __construct(PagedRouteProviderInterface $pagedRouteProvider, $routesBatchSize = 50)
-    {
-        $this->provider = $pagedRouteProvider;
-        $this->routesBatchSize = $routesBatchSize;
-    }
-
-    /**
-     * Loads the next routes into the elements array.
-     *
-     * @param int $offset The offset used in the db query.
-     */
-    protected function loadNextElements($offset)
-    {
-        // If the last batch was smaller than the batch size, this means there
-        // are no more routes available.
-        if (isset($this->currentRoutes) && count($this->currentRoutes) < $this->routesBatchSize) {
-            $this->currentRoutes = array();
-        } else {
-            $this->currentRoutes = $this->provider->getRoutesPaged($offset, $this->routesBatchSize);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function current()
-    {
-        return current($this->currentRoutes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function next()
-    {
-        $result = next($this->currentRoutes);
-        if (false === $result) {
-            $this->loadNextElements($this->current + 1);
-        }
-        $this->current++;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function key()
-    {
-        return key($this->currentRoutes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function valid()
-    {
-        return key($this->currentRoutes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function rewind()
-    {
-        $this->current = 0;
-        $this->currentRoutes = NULL;
-        $this->loadNextElements($this->current);
-    }
-
-    /**
-     * Gets the number of Routes in this collection.
-     *
-     * @return int The number of routes
-     */
-    public function count()
-    {
-        return $this->provider->getRoutesCount();
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/PagedRouteProviderInterface.php b/core/vendor/symfony-cmf/routing/PagedRouteProviderInterface.php
deleted file mode 100644
index 970ec78..0000000
--- a/core/vendor/symfony-cmf/routing/PagedRouteProviderInterface.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-/**
- * Interface for a provider which allows to retrieve a limited amount of routes.
- */
-interface PagedRouteProviderInterface extends RouteProviderInterface
-{
-    /**
-     * Find an amount of routes with an offset and possible a limit.
-     *
-     * In case you want to iterate over all routes, you want to avoid to load
-     * all routes at once.
-     *
-     * @param int $offset
-     *   The sequence will start with that offset in the list of all routes.
-     * @param int $length [optional]
-     *   The sequence will have that many routes in it. If no length is
-     *   specified all routes are returned.
-     *
-     * @return \Symfony\Component\Routing\Route[]
-     *   Routes keyed by the route name.
-     */
-    public function getRoutesPaged($offset, $length = null);
-
-    /**
-     * Determines the total amount of routes.
-     *
-     * @return int
-     */
-    public function getRoutesCount();
-}
diff --git a/core/vendor/symfony-cmf/routing/ProviderBasedGenerator.php b/core/vendor/symfony-cmf/routing/ProviderBasedGenerator.php
deleted file mode 100644
index 2696781..0000000
--- a/core/vendor/symfony-cmf/routing/ProviderBasedGenerator.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\Generator\UrlGenerator;
-use Symfony\Component\Routing\Route as SymfonyRoute;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-
-use Psr\Log\LoggerInterface;
-
-/**
- * A Generator that uses a RouteProvider rather than a RouteCollection
- *
- * @author Larry Garfield
- */
-class ProviderBasedGenerator extends UrlGenerator implements VersatileGeneratorInterface
-{
-    /**
-     * The route provider for this generator.
-     *
-     * @var RouteProviderInterface
-     */
-    protected $provider;
-
-    /**
-     * @param RouteProviderInterface $provider
-     * @param LoggerInterface        $logger
-     */
-    public function __construct(RouteProviderInterface $provider, LoggerInterface $logger = null)
-    {
-        $this->provider = $provider;
-        $this->logger = $logger;
-        $this->context = new RequestContext();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function generate($name, $parameters = array(), $absolute = false)
-    {
-        if ($name instanceof SymfonyRoute) {
-            $route = $name;
-        } elseif (null === $route = $this->provider->getRouteByName($name, $parameters)) {
-            throw new RouteNotFoundException(sprintf('Route "%s" does not exist.', $name));
-        }
-
-        // the Route has a cache of its own and is not recompiled as long as it does not get modified
-        $compiledRoute = $route->compile();
-        $hostTokens = $compiledRoute->getHostTokens();
-
-        $debug_message = $this->getRouteDebugMessage($name);
-
-        return $this->doGenerate($compiledRoute->getVariables(), $route->getDefaults(), $route->getRequirements(), $compiledRoute->getTokens(), $parameters, $debug_message, $absolute, $hostTokens);
-    }
-
-    /**
-     * Support a route object and any string as route name
-     *
-     * {@inheritDoc}
-     */
-    public function supports($name)
-    {
-        return is_string($name) || $name instanceof SymfonyRoute;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getRouteDebugMessage($name, array $parameters = array())
-    {
-        if (is_scalar($name)) {
-            return $name;
-        }
-
-        if (is_array($name)) {
-            return serialize($name);
-        }
-
-        if ($name instanceof RouteObjectInterface) {
-            return 'Route with key ' . $name->getRouteKey();
-        }
-
-        if ($name instanceof SymfonyRoute) {
-            return 'Route with pattern ' . $name->getPattern();
-        }
-
-        return get_class($name);
-    }
-
-}
diff --git a/core/vendor/symfony-cmf/routing/README.md b/core/vendor/symfony-cmf/routing/README.md
deleted file mode 100644
index 2a18ed1..0000000
--- a/core/vendor/symfony-cmf/routing/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Symfony CMF Routing Component
-
-[![Build Status](https://secure.travis-ci.org/symfony-cmf/Routing.png?branch=master)](http://travis-ci.org/symfony-cmf/Routing)
-[![Latest Stable Version](https://poser.pugx.org/symfony-cmf/routing/version.png)](https://packagist.org/packages/symfony-cmf/routing)
-[![Total Downloads](https://poser.pugx.org/symfony-cmf/routing/d/total.png)](https://packagist.org/packages/symfony-cmf/routing)
-
-The Symfony CMF Routing component extends the Symfony2 core routing component.
-It provides:
-
- * A ChainRouter to run several routers in parallel
- * A DynamicRouter that can load routes from any database and can generate
-   additional information in the route match.
-
-Even though it has Symfony in its name, the Routing component does not need the
-full Symfony2 Framework and can be used in standalone projects.
-
-For Symfony 2 projects, an optional
-[RoutingBundle](https://github.com/symfony-cmf/RoutingBundle)
-is also available.
-
-This library is provided by the [Symfony Content Management Framework (CMF) project](http://cmf.symfony.com/)
-and licensed under the [MIT License](LICENSE).
-
-
-## Requirements
-
-* The Symfony Routing component (>= 2.2.0)
-* See also the `require` section of [composer.json](composer.json)
-
-
-## Documentation
-
-For the install guide and reference, see:
-
-* [Routing component documentation](http://symfony.com/doc/master/cmf/components/routing/index.html)
-
-See also:
-
-* [All Symfony CMF documentation](http://symfony.com/doc/master/cmf/index.html) - complete Symfony CMF reference
-* [Symfony CMF Website](http://cmf.symfony.com/) - introduction, live demo, support and community links
-
-
-## Contributing
-
-Pull requests are welcome. Please see our
-[CONTRIBUTING](https://github.com/symfony-cmf/symfony-cmf/blob/master/CONTRIBUTING.md)
-guide.
-
-Unit and/or functional tests exist for this component. See the
-[Testing documentation](http://symfony.com/doc/master/cmf/components/testing.html)
-for a guide to running the tests.
-
-Thanks to
-[everyone who has contributed](https://github.com/symfony-cmf/Routing/contributors) already.
diff --git a/core/vendor/symfony-cmf/routing/RedirectRouteInterface.php b/core/vendor/symfony-cmf/routing/RedirectRouteInterface.php
deleted file mode 100644
index daa45d0..0000000
--- a/core/vendor/symfony-cmf/routing/RedirectRouteInterface.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-/**
- * Document for redirection entries with the RedirectController.
- *
- * Defines additional methods needed by the RedirectController to redirect
- * based on the route.
- *
- * This document may define (in order of precedence - the others can be empty):
- *
- * - uri: an absolute uri
- * - routeName and routeParameters: to be used with the standard symfony router
- *   or a route entry in the routeParameters for the DynamicRouter. Precedency
- *   between these is determined by the order of the routers in the chain
- *   router.
- *
- * With standard Symfony routing, you can just use uri / routeName and a
- * hashmap of parameters.
- *
- * For the dynamic router, you can return a RouteInterface instance in the
- * field 'route' of the parameters.
- *
- * Note: getRedirectContent must return the redirect route itself for the
- * integration with DynamicRouter to work.
- *
- * @author David Buchmann <david@liip.ch>
- */
-interface RedirectRouteInterface extends RouteObjectInterface
-{
-    /**
-     * Get the absolute uri to redirect to external domains.
-     *
-     * If this is non-empty, the other methods won't be used.
-     *
-     * @return string target absolute uri
-     */
-    public function getUri();
-
-    /**
-     * Get the target route document this route redirects to.
-     *
-     * If non-null, it is added as route into the parameters, which will lead
-     * to have the generate call issued by the RedirectController to have
-     * the target route in the parameters.
-     *
-     * @return RouteObjectInterface the route this redirection points to
-     */
-    public function getRouteTarget();
-
-    /**
-     * Get the name of the target route for working with the symfony standard
-     * router.
-     *
-     * @return string target route name
-     */
-    public function getRouteName();
-
-    /**
-     * Whether this should be a permanent or temporary redirect
-     *
-     * @return boolean
-     */
-    public function isPermanent();
-
-    /**
-     * Get the parameters for the target route router::generate()
-     *
-     * Note that for the DynamicRouter, you return the target route
-     * document as field 'route' of the hashmap.
-     *
-     * @return array Information to build the route
-     */
-    public function getParameters();
-}
diff --git a/core/vendor/symfony-cmf/routing/RouteObjectInterface.php b/core/vendor/symfony-cmf/routing/RouteObjectInterface.php
deleted file mode 100644
index 2476dee..0000000
--- a/core/vendor/symfony-cmf/routing/RouteObjectInterface.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-/**
- * Classes for entries in the routing table may implement this interface in
- * addition to extending Symfony\Component\Routing\Route.
- *
- * If they do, the DynamicRouter will request the route content and put it into
- * the RouteObjectInterface::CONTENT_OBJECT field. The DynamicRouter will also
- * request getRouteKey and this will be used instead of the symfony core compatible
- * route name and can contain any characters.
- *
- * Some fields in defaults have a special meaning in the getDefaults(). In addition
- * to the constants defined in this class, _locale and _controller are also used.
- */
-interface RouteObjectInterface
-{
-    /**
-     * Field name that will hold the route name that was matched.
-     */
-    const ROUTE_NAME = '_route';
-
-    /**
-     * Field name of the route object that was matched.
-     */
-    const ROUTE_OBJECT = '_route_object';
-
-    /**
-     * Field name for an explicit controller name to be used with this route
-     */
-    const CONTROLLER_NAME = '_controller';
-
-    /**
-     * Field name for an explicit template to be used with this route.
-     * i.e. CmfContentBundle:StaticContent:index.html.twig
-     */
-    const TEMPLATE_NAME = '_template';
-
-    /**
-     * Field name for the content of the current route, if any.
-     */
-    const CONTENT_OBJECT = '_content';
-
-    /**
-     * Get the content document this route entry stands for. If non-null,
-     * the ControllerClassMapper uses it to identify a controller and
-     * the content is passed to the controller.
-     *
-     * If there is no specific content for this url (i.e. its an "application"
-     * page), may return null.
-     *
-     * @return object the document or entity this route entry points to
-     */
-    public function getContent();
-
-    /**
-     * Get the route key.
-     *
-     * This key will be used as route name instead of the symfony core compatible
-     * route name and can contain any characters.
-     *
-     * Return null if you want to use the default key.
-     *
-     * @return string the route name
-     */
-    public function getRouteKey();
-}
diff --git a/core/vendor/symfony-cmf/routing/RouteProviderInterface.php b/core/vendor/symfony-cmf/routing/RouteProviderInterface.php
deleted file mode 100644
index 6283e6f..0000000
--- a/core/vendor/symfony-cmf/routing/RouteProviderInterface.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * Interface for the route provider the DynamicRouter is using.
- *
- * Typically this could be a doctrine orm or odm repository, but you can
- * implement something else if you need to.
- */
-interface RouteProviderInterface
-{
-    /**
-     * Finds routes that may potentially match the request.
-     *
-     * This may return a mixed list of class instances, but all routes returned
-     * must extend the core symfony route. The classes may also implement
-     * RouteObjectInterface to link to a content document.
-     *
-     * This method may not throw an exception based on implementation specific
-     * restrictions on the url. That case is considered a not found - returning
-     * an empty array. Exceptions are only used to abort the whole request in
-     * case something is seriously broken, like the storage backend being down.
-     *
-     * Note that implementations may not implement an optimal matching
-     * algorithm, simply a reasonable first pass.  That allows for potentially
-     * very large route sets to be filtered down to likely candidates, which
-     * may then be filtered in memory more completely.
-     *
-     * @param Request $request A request against which to match.
-     *
-     * @return RouteCollection with all Routes that could potentially match
-     *                         $request. Empty collection if nothing can match.
-     */
-    public function getRouteCollectionForRequest(Request $request);
-
-    /**
-     * Find the route using the provided route name.
-     *
-     * @param string $name The route name to fetch.
-     *
-     * @return Route
-     *
-     * @throws RouteNotFoundException If there is no route with that name in
-     *                                this repository
-     */
-    public function getRouteByName($name);
-
-    /**
-     * Find many routes by their names using the provided list of names.
-     *
-     * Note that this method may not throw an exception if some of the routes
-     * are not found or are not actually Route instances. It will just return the
-     * list of those Route instances it found.
-     *
-     * This method exists in order to allow performance optimizations. The
-     * simple implementation could be to just repeatedly call
-     * $this->getRouteByName() while catching and ignoring eventual exceptions.
-     *
-     * If $names is null, this method SHOULD return a collection of all routes
-     * known to this provider. If there are many routes to be expected, usage of
-     * a lazy loading collection is recommended. A provider MAY only return a
-     * subset of routes to e.g. support paging or other concepts, but be aware
-     * that the DynamicRouter will only call this method once per
-     * DynamicRouter::getRouteCollection() call.
-     *
-     * @param array|null $names The list of names to retrieve, In case of null,
-     *                          the provider will determine what routes to return.
-     *
-     * @return Route[] Iterable list with the keys being the names from the
- *                     $names array.
-     */
-    public function getRoutesByNames($names);
-}
diff --git a/core/vendor/symfony-cmf/routing/RouteReferrersInterface.php b/core/vendor/symfony-cmf/routing/RouteReferrersInterface.php
deleted file mode 100644
index 1c13cb6..0000000
--- a/core/vendor/symfony-cmf/routing/RouteReferrersInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\Route;
-
-/**
- * Interface to be implemented by content that exposes editable route
- * referrers.
- */
-interface RouteReferrersInterface extends RouteReferrersReadInterface
-{
-    /**
-     * Add a route to the collection.
-     *
-     * @param Route $route
-     */
-    public function addRoute($route);
-
-    /**
-     * Remove a route from the collection.
-     *
-     * @param Route $route
-     */
-    public function removeRoute($route);
-}
diff --git a/core/vendor/symfony-cmf/routing/RouteReferrersReadInterface.php b/core/vendor/symfony-cmf/routing/RouteReferrersReadInterface.php
deleted file mode 100644
index d81b435..0000000
--- a/core/vendor/symfony-cmf/routing/RouteReferrersReadInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\Route;
-
-/**
- * Interface to be implemented by content that wants to be support route generation
- * from content with the DynamicRouter by providing the routes that point to it.
- */
-interface RouteReferrersReadInterface
-{
-    /**
-     * Get the routes that point to this content.
-     *
-     * @return Route[] Route instances that point to this content
-     */
-    public function getRoutes();
-}
diff --git a/core/vendor/symfony-cmf/routing/Test/CmfUnitTestCase.php b/core/vendor/symfony-cmf/routing/Test/CmfUnitTestCase.php
deleted file mode 100644
index f0e9ea1..0000000
--- a/core/vendor/symfony-cmf/routing/Test/CmfUnitTestCase.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Test;
-
-class CmfUnitTestCase extends \PHPUnit_Framework_TestCase
-{
-    protected function buildMock($class, array $methods = array())
-    {
-        return $this->getMockBuilder($class)
-                ->disableOriginalConstructor()
-                ->setMethods($methods)
-                ->getMock();
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Candidates/CandidatesTest.php b/core/vendor/symfony-cmf/routing/Tests/Candidates/CandidatesTest.php
deleted file mode 100644
index 322c052..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Candidates/CandidatesTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2013 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Candidates;
-
-use Symfony\Cmf\Component\Routing\Candidates\Candidates;
-use Symfony\Component\HttpFoundation\Request;
-
-class CandidatesTest extends \PHPUnit_Framework_Testcase
-{
-    /**
-     * Everything is a candidate
-     */
-    public function testIsCandidate()
-    {
-        $candidates = new Candidates();
-        $this->assertTrue($candidates->isCandidate('/routes'));
-        $this->assertTrue($candidates->isCandidate('/routes/my/path'));
-    }
-
-    /**
-     * Nothing should be called on the query builder
-     */
-    public function testRestrictQuery()
-    {
-        $candidates = new Candidates();
-        $candidates->restrictQuery(null);
-    }
-
-    public function testGetCandidates()
-    {
-        $request = Request::create('/my/path.html');
-
-        $candidates = new Candidates();
-        $paths = $candidates->getCandidates($request);
-
-        $this->assertEquals(
-            array(
-                '/my/path.html',
-                '/my/path',
-                '/my',
-                '/',
-            ),
-            $paths
-        );
-    }
-
-    public function testGetCandidatesLocales()
-    {
-        $candidates = new Candidates(array('de', 'fr'));
-
-        $request = Request::create('/fr/path.html');
-        $paths = $candidates->getCandidates($request);
-
-        $this->assertEquals(
-            array(
-                '/fr/path.html',
-                '/fr/path',
-                '/fr',
-                '/',
-                '/path.html',
-                '/path'
-            ),
-            $paths
-        );
-
-        $request = Request::create('/it/path.html');
-        $paths = $candidates->getCandidates($request);
-
-        $this->assertEquals(
-            array(
-                '/it/path.html',
-                '/it/path',
-                '/it',
-                '/',
-            ),
-            $paths
-        );
-    }
-
-    public function testGetCandidatesLimit()
-    {
-        $candidates = new Candidates(array(), 1);
-
-        $request = Request::create('/my/path/is/deep.html');
-
-        $paths = $candidates->getCandidates($request);
-
-        $this->assertEquals(
-            array(
-                '/my/path/is/deep.html',
-                '/my/path/is/deep',
-            ),
-            $paths
-        );
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/DependencyInjection/Compiler/RegisterRouteEnhancersPassTest.php b/core/vendor/symfony-cmf/routing/Tests/DependencyInjection/Compiler/RegisterRouteEnhancersPassTest.php
deleted file mode 100644
index 0213885..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/DependencyInjection/Compiler/RegisterRouteEnhancersPassTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\DependencyInjection\Compiler;
-
-use Symfony\Cmf\Component\Routing\DependencyInjection\Compiler\RegisterRouteEnhancersPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-class RegisterRouteEnhancersPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRouteEnhancerPass()
-    {
-        $serviceIds = array(
-            'test_enhancer' => array(
-                0 => array(
-                    'id' => 'foo_enhancer'
-                )
-            ),
-        );
-
-        $definition = new Definition('router');
-        $builder = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder');
-        $builder->expects($this->at(0))
-            ->method('hasDefinition')
-            ->with('cmf_routing.dynamic_router')
-            ->will($this->returnValue(true))
-        ;
-        $builder->expects($this->once())
-            ->method('findTaggedServiceIds')
-            ->will($this->returnValue($serviceIds))
-        ;
-        $builder->expects($this->once())
-            ->method('getDefinition')
-            ->with('cmf_routing.dynamic_router')
-            ->will($this->returnValue($definition))
-        ;
-
-        $pass = new RegisterRouteEnhancersPass();
-        $pass->process($builder);
-
-        $calls = $definition->getMethodCalls();
-        $this->assertEquals(1, count($calls));
-        $this->assertEquals('addRouteEnhancer', $calls[0][0]);
-    }
-
-    /**
-     * If there is no dynamic router defined in the container builder, nothing
-     * should be processed.
-     */
-    public function testNoDynamicRouter()
-    {
-        $builder = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder');
-        $builder->expects($this->once())
-            ->method('hasDefinition')
-            ->with('cmf_routing.dynamic_router')
-            ->will($this->returnValue(false))
-        ;
-
-        $pass = new RegisterRouteEnhancersPass();
-        $pass->process($builder);
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/DependencyInjection/Compiler/RegisterRoutersPassTest.php b/core/vendor/symfony-cmf/routing/Tests/DependencyInjection/Compiler/RegisterRoutersPassTest.php
deleted file mode 100644
index f66c2d8..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/DependencyInjection/Compiler/RegisterRoutersPassTest.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Routing\Tests\DependencyInjection\Compiler;
-
-use Symfony\Cmf\Component\Routing\DependencyInjection\Compiler\RegisterRoutersPass;
-
-use Symfony\Component\DependencyInjection\Reference;
-
-class RegisterRoutersPassTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getValidRoutersData
-     */
-    public function testValidRouters($name, $priority = null)
-    {
-        if (!method_exists($this, 'callback')) {
-            $this->markTestSkipped('PHPUnit version too old for this test');
-        }
-        $services = array();
-        $services[$name] = array(0 => array('priority' => $priority));
-
-        $priority = $priority ?: 0;
-
-        $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $definition->expects($this->atLeastOnce())
-            ->method('addMethodCall')
-            ->with($this->equalTo('add'), $this->callback(function ($arg) use ($name, $priority) {
-                if (!$arg[0] instanceof Reference || $name !== $arg[0]->__toString()) {
-                    return false;
-                }
-
-                if ($priority !== $arg[1]) {
-                    return false;
-                }
-
-                return true;
-            }));
-
-        $builder = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder', array('hasDefinition', 'findTaggedServiceIds', 'getDefinition'));
-        $builder->expects($this->any())
-            ->method('hasDefinition')
-            ->with('cmf_routing.router')
-            ->will($this->returnValue(true));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('findTaggedServiceIds')
-            ->will($this->returnValue($services));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('getDefinition')
-            ->will($this->returnValue($definition));
-
-        $registerRoutersPass = new RegisterRoutersPass();
-        $registerRoutersPass->process($builder);
-    }
-
-    public function getValidRoutersData()
-    {
-        return array(
-            array('my_router'),
-            array('my_primary_router', 99),
-            array('my_router', 0),
-        );
-    }
-
-    /**
-     * If there is no chain router defined in the container builder, nothing
-     * should be processed.
-     */
-    public function testNoChainRouter()
-    {
-        $builder = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder', array('hasDefinition', 'findTaggedServiceIds', 'getDefinition'));
-        $builder->expects($this->once())
-            ->method('hasDefinition')
-            ->with('cmf_routing.router')
-            ->will($this->returnValue(false))
-        ;
-
-        $builder->expects($this->never())
-            ->method('findTaggedServiceIds')
-        ;
-        $builder->expects($this->never())
-            ->method('getDefinition')
-        ;
-
-        $registerRoutersPass = new RegisterRoutersPass();
-        $registerRoutersPass->process($builder);
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldByClassEnhancerTest.php b/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldByClassEnhancerTest.php
deleted file mode 100644
index 9dc80b0..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldByClassEnhancerTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-use Symfony\Cmf\Component\Routing\Enhancer\FieldByClassEnhancer;
-
-class FieldByClassEnhancerTest extends CmfUnitTestCase
-{
-    private $request;
-    /**
-     * @var FieldByClassEnhancer
-     */
-    private $mapper;
-    private $document;
-
-    public function setUp()
-    {
-        $this->document = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Enhancer\RouteObject');
-
-        $mapping = array('Symfony\Cmf\Component\Routing\Tests\Enhancer\RouteObject'
-                            => 'cmf_content.controller:indexAction');
-
-        $this->mapper = new FieldByClassEnhancer('_content', '_controller', $mapping);
-
-        $this->request = Request::create('/test');
-    }
-
-    public function testClassFoundInMapping()
-    {
-        // this is the mock, thus a child class to make sure we properly check with instanceof
-        $defaults = array('_content' => $this->document);
-        $expected = array(
-            '_content' => $this->document,
-            '_controller' => 'cmf_content.controller:indexAction',
-        );
-        $this->assertEquals($expected, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testFieldAlreadyThere()
-    {
-        $defaults = array(
-            '_content' => $this->document,
-            '_controller' => 'custom.controller:indexAction',
-        );
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testClassNotFoundInMapping()
-    {
-        $defaults = array('_content' => $this);
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testNoClass()
-    {
-        $defaults = array('foo' => 'bar');
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldMapEnhancerTest.php b/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldMapEnhancerTest.php
deleted file mode 100644
index c7a902d..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldMapEnhancerTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Mapper;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-use Symfony\Cmf\Component\Routing\Enhancer\FieldMapEnhancer;
-
-class FieldMapEnhancerTest extends CmfUnitTestCase
-{
-    /**
-     * @var Request
-     */
-    private $request;
-
-    /**
-     * @var FieldMapEnhancer
-     */
-    private $enhancer;
-
-    public function setUp()
-    {
-        $this->request = Request::create('/test');
-        $mapping = array('static_pages' => 'cmf_content.controller:indexAction');
-
-        $this->enhancer = new FieldMapEnhancer('type', '_controller', $mapping);
-    }
-
-    public function testFieldFoundInMapping()
-    {
-        $defaults = array('type' => 'static_pages');
-        $expected = array(
-            'type' => 'static_pages',
-            '_controller' => 'cmf_content.controller:indexAction',
-        );
-        $this->assertEquals($expected, $this->enhancer->enhance($defaults, $this->request));
-    }
-
-    public function testFieldAlreadyThere()
-    {
-        $defaults = array(
-            'type' => 'static_pages',
-            '_controller' => 'custom.controller:indexAction',
-        );
-        $this->assertEquals($defaults, $this->enhancer->enhance($defaults, $this->request));
-    }
-
-    public function testNoType()
-    {
-        $defaults = array();
-        $this->assertEquals(array(), $this->enhancer->enhance($defaults, $this->request));
-    }
-
-    public function testNotFoundInMapping()
-    {
-        $defaults = array('type' => 'unknown_route');
-        $this->assertEquals($defaults, $this->enhancer->enhance($defaults, $this->request));
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldPresenceEnhancerTest.php b/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldPresenceEnhancerTest.php
deleted file mode 100644
index 8a2b754..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Enhancer/FieldPresenceEnhancerTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\Enhancer\FieldPresenceEnhancer;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class FieldPresenceEnhancerTest extends CmfUnitTestCase
-{
-    /**
-     * @var FieldPresenceEnhancer
-     */
-    private $mapper;
-    private $request;
-
-    public function setUp()
-    {
-        $this->mapper = new FieldPresenceEnhancer('_template', '_controller', 'cmf_content.controller:indexAction');
-
-        $this->request = Request::create('/test');
-    }
-
-    public function testHasTemplate()
-    {
-        $defaults = array('_template' => 'Bundle:Topic:template.html.twig');
-        $expected = array(
-            '_template' => 'Bundle:Topic:template.html.twig',
-            '_controller' => 'cmf_content.controller:indexAction',
-        );
-        $this->assertEquals($expected, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testFieldAlreadyThere()
-    {
-        $defaults = array(
-            '_template' => 'Bundle:Topic:template.html.twig',
-            '_controller' => 'custom.controller:indexAction',
-        );
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testHasNoSourceValue()
-    {
-        $defaults = array('foo' => 'bar');
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testHasNoSource()
-    {
-        $this->mapper = new FieldPresenceEnhancer(null, '_controller', 'cmf_content.controller:indexAction');
-
-        $defaults = array('foo' => 'bar');
-        $expected = array(
-            'foo' => 'bar',
-            '_controller' => 'cmf_content.controller:indexAction',
-        );
-        $this->assertEquals($expected, $this->mapper->enhance($defaults, $this->request));
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Enhancer/RouteContentEnhancerTest.php b/core/vendor/symfony-cmf/routing/Tests/Enhancer/RouteContentEnhancerTest.php
deleted file mode 100644
index 06b0911..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Enhancer/RouteContentEnhancerTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Enhancer;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\Enhancer\RouteContentEnhancer;
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class RouteContentEnhancerTest extends CmfUnitTestCase
-{
-    /**
-     * @var RouteContentEnhancer
-     */
-    private $mapper;
-    private $document;
-    private $request;
-
-    public function setUp()
-    {
-        $this->document = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Enhancer\RouteObject',
-                                            array('getContent', 'getRouteDefaults', 'getUrl'));
-
-        $this->mapper = new RouteContentEnhancer(RouteObjectInterface::ROUTE_OBJECT, '_content');
-
-        $this->request = Request::create('/test');
-    }
-
-    public function testContent()
-    {
-        $targetDocument = new TargetDocument();
-        $this->document->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue($targetDocument));
-
-        $defaults = array(RouteObjectInterface::ROUTE_OBJECT => $this->document);
-        $expected = array(RouteObjectInterface::ROUTE_OBJECT => $this->document, '_content' => $targetDocument);
-
-        $this->assertEquals($expected, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testFieldAlreadyThere()
-    {
-        $this->document->expects($this->never())
-            ->method('getContent')
-        ;
-
-        $defaults = array(RouteObjectInterface::ROUTE_OBJECT => $this->document, '_content' => 'foo');
-
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testNoContent()
-    {
-        $this->document->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue(null));
-
-        $defaults = array(RouteObjectInterface::ROUTE_OBJECT => $this->document);
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-
-    public function testNoCmfRoute()
-    {
-        $defaults = array(RouteObjectInterface::ROUTE_OBJECT => $this->buildMock('Symfony\Component\Routing\Route'));
-        $this->assertEquals($defaults, $this->mapper->enhance($defaults, $this->request));
-    }
-}
-
-class TargetDocument
-{
-}
-
-class UnknownDocument
-{
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Enhancer/RouteObject.php b/core/vendor/symfony-cmf/routing/Tests/Enhancer/RouteObject.php
deleted file mode 100644
index 752b8e0..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Enhancer/RouteObject.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Enhancer;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-/**
- * Empty abstract class to be able to mock an object that both extends Route
- * and implements RouteObjectInterface
- */
-abstract class RouteObject extends Route implements RouteObjectInterface
-{
-    public function getRouteKey()
-    {
-        return null;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/NestedMatcher/NestedMatcherTest.php b/core/vendor/symfony-cmf/routing/Tests/NestedMatcher/NestedMatcherTest.php
deleted file mode 100644
index 1f9f06c..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/NestedMatcher/NestedMatcherTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\NestedMatcher;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-
-use Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class NestedMatcherTest extends CmfUnitTestCase
-{
-    private $provider;
-    private $routeFilter1;
-    private $routeFilter2;
-    private $finalMatcher;
-
-    public function setUp()
-    {
-        $this->provider = $this->buildMock('Symfony\Cmf\Component\Routing\RouteProviderInterface');
-        $this->routeFilter1 = $this->buildMock('Symfony\Cmf\Component\Routing\NestedMatcher\RouteFilterInterface');
-        $this->routeFilter2 = $this->buildMock('Symfony\Cmf\Component\Routing\NestedMatcher\RouteFilterInterface');
-        $this->finalMatcher = $this->buildMock('Symfony\Cmf\Component\Routing\NestedMatcher\FinalMatcherInterface');
-    }
-
-    public function testNestedMatcher()
-    {
-        $request = Request::create('/path/one');
-        $routeCollection = new RouteCollection();
-        $route = $this->getMockBuilder('Symfony\Component\Routing\Route')->disableOriginalConstructor()->getMock();
-        $routeCollection->add('route', $route);
-
-        $this->provider->expects($this->once())
-            ->method('getRouteCollectionForRequest')
-            ->with($request)
-            ->will($this->returnValue($routeCollection))
-        ;
-        $this->routeFilter1->expects($this->once())
-            ->method('filter')
-            ->with($routeCollection, $request)
-            ->will($this->returnValue($routeCollection))
-        ;
-        $this->routeFilter2->expects($this->once())
-            ->method('filter')
-            ->with($routeCollection, $request)
-            ->will($this->returnValue($routeCollection))
-        ;
-        $this->finalMatcher->expects($this->once())
-            ->method('finalMatch')
-            ->with($routeCollection, $request)
-            ->will($this->returnValue(array('foo' => 'bar')))
-        ;
-
-        $matcher = new NestedMatcher($this->provider, $this->finalMatcher);
-        $matcher->addRouteFilter($this->routeFilter1);
-        $matcher->addRouteFilter($this->routeFilter2);
-
-        $attributes = $matcher->matchRequest($request);
-
-        $this->assertEquals(array('foo' => 'bar'), $attributes);
-    }
-
-    /**
-     * Test priorities and exception handling
-     */
-    public function testNestedMatcherPriority()
-    {
-        $request = Request::create('/path/one');
-        $routeCollection = new RouteCollection();
-        $route = $this->getMockBuilder('Symfony\Component\Routing\Route')->disableOriginalConstructor()->getMock();
-        $routeCollection->add('route', $route);
-
-        $wrongProvider = $this->buildMock('Symfony\Cmf\Component\Routing\RouteProviderInterface');
-        $wrongProvider->expects($this->never())
-            ->method('getRouteCollectionForRequest')
-        ;
-        $this->provider->expects($this->once())
-            ->method('getRouteCollectionForRequest')
-            ->with($request)
-            ->will($this->returnValue($routeCollection))
-        ;
-        $this->routeFilter1->expects($this->once())
-            ->method('filter')
-            ->with($routeCollection, $request)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $this->routeFilter2->expects($this->never())
-            ->method('filter')
-        ;
-        $this->finalMatcher->expects($this->never())
-            ->method('finalMatch')
-        ;
-
-        $matcher = new NestedMatcher($wrongProvider, $this->finalMatcher);
-        $matcher->setRouteProvider($this->provider);
-        $matcher->addRouteFilter($this->routeFilter2, 10);
-        $matcher->addRouteFilter($this->routeFilter1, 20);
-
-        try {
-            $matcher->matchRequest($request);
-            fail('nested matcher is eating exception');
-        } catch (ResourceNotFoundException $e) {
-            // expected
-        }
-    }
-
-    public function testProviderNoMatch()
-    {
-        $request = Request::create('/path/one');
-        $routeCollection = new RouteCollection();
-        $this->provider->expects($this->once())
-            ->method('getRouteCollectionForRequest')
-            ->with($request)
-            ->will($this->returnValue($routeCollection))
-        ;
-        $this->finalMatcher->expects($this->never())
-            ->method('finalMatch')
-        ;
-
-        $matcher = new NestedMatcher($this->provider, $this->finalMatcher);
-
-        $this->setExpectedException('Symfony\Component\Routing\Exception\ResourceNotFoundException');
-        $matcher->matchRequest($request);
-    }
-
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/NestedMatcher/UrlMatcherTest.php b/core/vendor/symfony-cmf/routing/Tests/NestedMatcher/UrlMatcherTest.php
deleted file mode 100644
index d5b5635..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/NestedMatcher/UrlMatcherTest.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\NestedMatcher;
-
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Cmf\Component\Routing\NestedMatcher\UrlMatcher;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class UrlMatcherTest extends CmfUnitTestCase
-{
-    protected $routeDocument;
-    protected $routeCompiled;
-    protected $matcher;
-    protected $context;
-    protected $request;
-
-    protected $url = '/foo/bar';
-
-    public function setUp()
-    {
-        $this->routeDocument = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'getRouteKey', 'compile'));
-        $this->routeCompiled = $this->buildMock('Symfony\Component\Routing\CompiledRoute');
-
-        $this->context = $this->buildMock('Symfony\Component\Routing\RequestContext');
-        $this->request = Request::create($this->url);
-
-        $this->matcher = new UrlMatcher(new RouteCollection(), $this->context);
-    }
-
-    public function testMatchRouteKey()
-    {
-        $this->doTestMatchRouteKey($this->url);
-    }
-
-    public function testMatchNoKey()
-    {
-        $this->doTestMatchRouteKey(null);
-    }
-
-    public function doTestMatchRouteKey($routeKey)
-    {
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue($this->url))
-        ;
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getRegex')
-            ->will($this->returnValue('#'.str_replace('/', '\/', $this->url).'#'))
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('getRouteKey')
-            ->will($this->returnValue($routeKey))
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('getDefaults')
-            ->will($this->returnValue(array('foo' => 'bar')))
-        ;
-
-        $mockCompiled = $this->buildMock('Symfony\Component\Routing\CompiledRoute');
-        $mockCompiled->expects($this->any())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue('/no/match'))
-        ;
-        $mockRoute = $this->getMockBuilder('Symfony\Component\Routing\Route')->disableOriginalConstructor()->getMock();
-        $mockRoute->expects($this->any())
-            ->method('compile')
-            ->will($this->returnValue($mockCompiled))
-        ;
-        $routeCollection = new RouteCollection();
-        $routeCollection->add('some', $mockRoute);
-        $routeCollection->add('_company_more', $this->routeDocument);
-        $routeCollection->add('other', $mockRoute);
-
-        $results = $this->matcher->finalMatch($routeCollection, $this->request);
-
-        $expected = array(
-            RouteObjectInterface::ROUTE_NAME => ($routeKey) ? $routeKey : '_company_more',
-            RouteObjectInterface::ROUTE_OBJECT => $this->routeDocument,
-            'foo' => 'bar',
-        );
-
-        $this->assertEquals($expected, $results);
-    }
-
-    public function testMatchNoRouteObject()
-    {
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue($this->url))
-        ;
-        $this->routeCompiled->expects($this->atLeastOnce())
-            ->method('getRegex')
-            ->will($this->returnValue('#'.str_replace('/', '\/', $this->url).'#'))
-        ;
-        $this->routeDocument = $this->getMockBuilder('Symfony\Component\Routing\Route')->disableOriginalConstructor()->getMock();
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $this->routeDocument->expects($this->never())
-            ->method('getRouteKey')
-        ;
-        $this->routeDocument->expects($this->atLeastOnce())
-            ->method('getDefaults')
-            ->will($this->returnValue(array('foo' => 'bar')))
-        ;
-
-        $mockCompiled = $this->buildMock('Symfony\Component\Routing\CompiledRoute');
-        $mockCompiled->expects($this->any())
-            ->method('getStaticPrefix')
-            ->will($this->returnValue('/no/match'))
-        ;
-        $mockRoute = $this->getMockBuilder('Symfony\Component\Routing\Route')->disableOriginalConstructor()->getMock();
-        $mockRoute->expects($this->any())
-            ->method('compile')
-            ->will($this->returnValue($mockCompiled))
-        ;
-        $routeCollection = new RouteCollection();
-        $routeCollection->add('some', $mockRoute);
-        $routeCollection->add('_company_more', $this->routeDocument);
-        $routeCollection->add('other', $mockRoute);
-
-        $results = $this->matcher->finalMatch($routeCollection, $this->request);
-
-        $expected = array(
-            RouteObjectInterface::ROUTE_NAME => '_company_more',
-            RouteObjectInterface::ROUTE_OBJECT => $this->routeDocument,
-            'foo' => 'bar',
-        );
-
-        $this->assertEquals($expected, $results);
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/ChainRouterTest.php b/core/vendor/symfony-cmf/routing/Tests/Routing/ChainRouterTest.php
deleted file mode 100644
index e8b8e3c..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/ChainRouterTest.php
+++ /dev/null
@@ -1,730 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Routing;
-
-use Symfony\Cmf\Component\Routing\VersatileGeneratorInterface;
-use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface;
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\HttpFoundation\Request;
-
-use Symfony\Cmf\Component\Routing\ChainRouter;
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-use Symfony\Component\Routing\RouterInterface;
-
-class ChainRouterTest extends CmfUnitTestCase
-{
-    /**
-     * @var ChainRouter
-     */
-    private $router;
-    /**
-     * @var RequestContext|\PHPUnit_Framework_MockObject_MockObject
-     */
-    private $context;
-
-    public function setUp()
-    {
-        $this->router = new ChainRouter($this->getMock('Psr\Log\LoggerInterface'));
-        $this->context = $this->getMock('Symfony\Component\Routing\RequestContext');
-    }
-
-    public function testPriority()
-    {
-        $this->assertEquals(array(), $this->router->all());
-
-        list($low, $high) = $this->createRouterMocks();
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->assertEquals(array(
-            $high,
-            $low,
-        ), $this->router->all());
-    }
-
-    /**
-     * Routers are supposed to be sorted only once.
-     * This test will check that by trying to get all routers several times.
-     *
-     * @covers \Symfony\Cmf\Component\Routing\ChainRouter::sortRouters
-     * @covers \Symfony\Cmf\Component\Routing\ChainRouter::all
-     */
-    public function testSortRouters()
-    {
-        list($low, $medium, $high) = $this->createRouterMocks();
-        // We're using a mock here and not $this->router because we need to ensure that the sorting operation is done only once.
-        /** @var $router ChainRouter|\PHPUnit_Framework_MockObject_MockObject */
-        $router = $this->buildMock('Symfony\Cmf\Component\Routing\ChainRouter', array('sortRouters'));
-        $router
-            ->expects($this->once())
-            ->method('sortRouters')
-            ->will(
-                $this->returnValue(
-                    array($high, $medium, $low)
-                )
-            )
-        ;
-
-        $router->add($low, 10);
-        $router->add($medium, 50);
-        $router->add($high, 100);
-        $expectedSortedRouters = array($high, $medium, $low);
-        // Let's get all routers 5 times, we should only sort once.
-        for ($i = 0; $i < 5; ++$i) {
-            $this->assertSame($expectedSortedRouters, $router->all());
-        }
-    }
-
-    /**
-     * This test ensures that if a router is being added on the fly, the sorting is reset.
-     *
-     * @covers \Symfony\Cmf\Component\Routing\ChainRouter::sortRouters
-     * @covers \Symfony\Cmf\Component\Routing\ChainRouter::all
-     * @covers \Symfony\Cmf\Component\Routing\ChainRouter::add
-     */
-    public function testReSortRouters()
-    {
-        list($low, $medium, $high) = $this->createRouterMocks();
-        $highest = clone $high;
-        // We're using a mock here and not $this->router because we need to ensure that the sorting operation is done only once.
-        /** @var $router ChainRouter|\PHPUnit_Framework_MockObject_MockObject */
-        $router = $this->buildMock('Symfony\Cmf\Component\Routing\ChainRouter', array('sortRouters'));
-        $router
-            ->expects($this->at(0))
-            ->method('sortRouters')
-            ->will(
-                $this->returnValue(
-                    array($high, $medium, $low)
-                )
-            )
-        ;
-        // The second time sortRouters() is called, we're supposed to get the newly added router ($highest)
-        $router
-            ->expects($this->at(1))
-            ->method('sortRouters')
-            ->will(
-                $this->returnValue(
-                    array($highest, $high, $medium, $low)
-                )
-            )
-        ;
-
-        $router->add($low, 10);
-        $router->add($medium, 50);
-        $router->add($high, 100);
-        $this->assertSame(array($high, $medium, $low), $router->all());
-
-        // Now adding another router on the fly, sorting must have been reset
-        $router->add($highest, 101);
-        $this->assertSame(array($highest, $high, $medium, $low), $router->all());
-    }
-
-    /**
-     * context must be propagated to chained routers and be stored locally
-     */
-    public function testContext()
-    {
-        list($low, $high) = $this->createRouterMocks();
-
-        $low
-            ->expects($this->once())
-            ->method('setContext')
-            ->with($this->context)
-        ;
-
-        $high
-            ->expects($this->once())
-            ->method('setContext')
-            ->with($this->context)
-        ;
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->setContext($this->context);
-        $this->assertSame($this->context, $this->router->getContext());
-    }
-
-    /**
-     * context must be propagated also when routers are added after context is set
-     */
-    public function testContextOrder()
-    {
-        list($low, $high) = $this->createRouterMocks();
-
-        $low
-            ->expects($this->once())
-            ->method('setContext')
-            ->with($this->context)
-        ;
-
-        $high
-            ->expects($this->once())
-            ->method('setContext')
-            ->with($this->context)
-        ;
-
-        $this->router->setContext($this->context);
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->all();
-
-        $this->assertSame($this->context, $this->router->getContext());
-    }
-
-    /**
-     * The first usable match is used, no further routers are queried once a match is found
-     */
-    public function testMatch()
-    {
-        $url = '/test';
-        list($lower, $low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\ResourceNotFoundException))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->returnValue(array('test')))
-        ;
-        $lower
-            ->expects($this->never())
-            ->method('match');
-        $this->router->add($lower, 5);
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $result = $this->router->match('/test');
-        $this->assertEquals(array('test'), $result);
-    }
-
-    /**
-     * The first usable match is used, no further routers are queried once a match is found
-     */
-    public function testMatchRequest()
-    {
-        $url = '/test';
-        list($lower, $low, $high) = $this->createRouterMocks();
-
-        $highest = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\RequestMatcher');
-
-        $request = Request::create('/test');
-
-        $highest
-            ->expects($this->once())
-            ->method('matchRequest')
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\ResourceNotFoundException))
-        ;
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\ResourceNotFoundException))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->returnValue(array('test')))
-        ;
-        $lower
-            ->expects($this->never())
-            ->method('match')
-        ;
-
-        $this->router->add($lower, 5);
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-        $this->router->add($highest, 200);
-
-        $result = $this->router->matchRequest($request);
-        $this->assertEquals(array('test'), $result);
-    }
-
-    /**
-     * Call match on ChainRouter that has RequestMatcher in the chain.
-     */
-    public function testMatchWithRequestMatchers()
-    {
-        $url = '/test';
-
-        list($low) = $this->createRouterMocks();
-
-        $high = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\RequestMatcher');
-
-        $high
-            ->expects($this->once())
-            ->method('matchRequest')
-            ->with($this->callback(function (Request $r) use ($url) {
-                return $r->getPathInfo() === $url;
-            }))
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\ResourceNotFoundException))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->returnValue(array('test')))
-        ;
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 20);
-
-        $result = $this->router->match($url);
-        $this->assertEquals(array('test'), $result);
-    }
-
-    /**
-     * If there is a method not allowed but another router matches, that one is used
-     */
-    public function testMatchAndNotAllowed()
-    {
-        $url = '/test';
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\MethodNotAllowedException(array())))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->returnValue(array('test')))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $result = $this->router->match('/test');
-        $this->assertEquals(array('test'), $result);
-    }
-
-    /**
-     * If there is a method not allowed but another router matches, that one is used
-     */
-    public function testMatchRequestAndNotAllowed()
-    {
-        $url = '/test';
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\MethodNotAllowedException(array())))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->returnValue(array('test')))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $result = $this->router->matchRequest(Request::create('/test'));
-        $this->assertEquals(array('test'), $result);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testMatchNotFound()
-    {
-        $url = '/test';
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->match('/test');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testMatchRequestNotFound()
-    {
-        $url = '/test';
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->matchRequest(Request::create('/test'));
-    }
-
-    /**
-     * Call match on ChainRouter that has RequestMatcher in the chain.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     * @expectedExceptionMessage None of the routers in the chain matched url '/test'
-     */
-    public function testMatchWithRequestMatchersNotFound()
-    {
-        $url = '/test';
-        $request = Request::create('/test');
-
-        $high = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\RequestMatcher');
-
-        $high
-            ->expects($this->once())
-            ->method('matchRequest')
-            ->with($request)
-            ->will($this->throwException(new \Symfony\Component\Routing\Exception\ResourceNotFoundException))
-        ;
-
-        $this->router->add($high, 20);
-
-        $this->router->match($url);
-    }
-
-    /**
-     * If any of the routers throws a not allowed exception and no other matches, we need to see this
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\MethodNotAllowedException
-     */
-    public function testMatchMethodNotAllowed()
-    {
-        $url = '/test';
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new MethodNotAllowedException(array())))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->match('/test');
-    }
-
-    /**
-     * If any of the routers throws a not allowed exception and no other matches, we need to see this
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\MethodNotAllowedException
-     */
-    public function testMatchRequestMethodNotAllowed()
-    {
-        $url = '/test';
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new MethodNotAllowedException(array())))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('match')
-            ->with($url)
-            ->will($this->throwException(new ResourceNotFoundException()))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->matchRequest(Request::create('/test'));
-    }
-
-    public function testGenerate()
-    {
-        $url = '/test';
-        $name = 'test';
-        $parameters = array('test' => 'value');
-        list($lower, $low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->throwException(new RouteNotFoundException()))
-        ;
-        $low
-            ->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->returnValue($url))
-        ;
-        $lower
-            ->expects($this->never())
-            ->method('generate')
-        ;
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $result = $this->router->generate($name, $parameters);
-        $this->assertEquals($url, $result);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNotFound()
-    {
-        $name = 'test';
-        $parameters = array('test' => 'value');
-        list($low, $high) = $this->createRouterMocks();
-
-        $high
-            ->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->throwException(new RouteNotFoundException()))
-        ;
-        $low->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->throwException(new RouteNotFoundException()))
-        ;
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->generate($name, $parameters);
-    }
-
-    /**
-     * Route is an object but no versatile generator around to do the debug message.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateObjectNotFound()
-    {
-        $name = new \stdClass();
-        $parameters = array('test' => 'value');
-
-        $defaultRouter = $this->getMock('Symfony\Component\Routing\RouterInterface');
-
-        $defaultRouter
-            ->expects($this->never())
-            ->method('generate')
-        ;
-
-        $this->router->add($defaultRouter, 200);
-
-        $this->router->generate($name, $parameters);
-    }
-
-    /**
-     * A versatile router will generate the debug message.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateObjectNotFoundVersatile()
-    {
-        $name = new \stdClass();
-        $parameters = array('test' => 'value');
-
-        $chainedRouter = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\VersatileRouter');
-        $chainedRouter
-            ->expects($this->once())
-            ->method('supports')
-            ->will($this->returnValue(true))
-        ;
-        $chainedRouter->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->throwException(new RouteNotFoundException()))
-        ;
-        $chainedRouter->expects($this->once())
-            ->method('getRouteDebugMessage')
-            ->with($name, $parameters)
-            ->will($this->returnValue('message'))
-        ;
-
-        $this->router->add($chainedRouter, 10);
-
-        $this->router->generate($name, $parameters);
-    }
-
-    public function testGenerateObjectName()
-    {
-        $name = new \stdClass();
-        $parameters = array('test' => 'value');
-
-        $defaultRouter = $this->getMock('Symfony\Component\Routing\RouterInterface');
-        $chainedRouter = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\VersatileRouter');
-
-        $defaultRouter
-            ->expects($this->never())
-            ->method('generate')
-        ;
-        $chainedRouter
-            ->expects($this->once())
-            ->method('supports')
-            ->will($this->returnValue(true))
-        ;
-        $chainedRouter
-            ->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, false)
-            ->will($this->returnValue($name))
-        ;
-
-        $this->router->add($defaultRouter, 200);
-        $this->router->add($chainedRouter, 100);
-
-        $result = $this->router->generate($name, $parameters);
-        $this->assertEquals($name, $result);
-    }
-
-    public function testWarmup()
-    {
-        $dir = 'test_dir';
-        list($low) = $this->createRouterMocks();
-
-        $low
-            ->expects($this->never())
-            ->method('warmUp')
-        ;
-        $high = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\WarmableRouterMock');
-        $high
-            ->expects($this->once())
-            ->method('warmUp')
-            ->with($dir)
-        ;
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $this->router->warmUp($dir);
-    }
-
-    public function testRouteCollection()
-    {
-        list($low, $high) = $this->createRouterMocks();
-        $lowcol = new RouteCollection();
-        $lowcol->add('low', $this->buildMock('Symfony\Component\Routing\Route'));
-        $highcol = new RouteCollection();
-        $highcol->add('high', $this->buildMock('Symfony\Component\Routing\Route'));
-
-        $low
-            ->expects($this->once())
-            ->method('getRouteCollection')
-            ->will($this->returnValue($lowcol))
-        ;
-        $high
-            ->expects($this->once())
-            ->method('getRouteCollection')
-            ->will($this->returnValue($highcol))
-        ;
-
-        $this->router->add($low, 10);
-        $this->router->add($high, 100);
-
-        $collection = $this->router->getRouteCollection();
-        $this->assertInstanceOf('Symfony\Component\Routing\RouteCollection', $collection);
-
-        $names = array();
-        foreach ($collection->all() as $name => $route) {
-            $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-            $names[] = $name;
-        }
-        $this->assertEquals(array('high', 'low'), $names);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testSupport()
-    {
-
-        $router = $this->getMock('Symfony\Cmf\Component\Routing\Tests\Routing\VersatileRouter');
-        $router
-            ->expects($this->once())
-            ->method('supports')
-            ->will($this->returnValue(false))
-        ;
-
-        $router
-            ->expects($this->never())
-            ->method('generate')
-            ->will($this->returnValue(false))
-        ;
-
-        $this->router->add($router);
-
-        $this->router->generate('foobar');
-    }
-
-    /**
-     * @return RouterInterface[]|\PHPUnit_Framework_MockObject_MockObject[]
-     */
-    protected function createRouterMocks()
-    {
-        return array(
-            $this->getMock('Symfony\Component\Routing\RouterInterface'),
-            $this->getMock('Symfony\Component\Routing\RouterInterface'),
-            $this->getMock('Symfony\Component\Routing\RouterInterface'),
-        );
-    }
-}
-
-abstract class WarmableRouterMock implements RouterInterface, WarmableInterface
-{
-}
-
-abstract class RequestMatcher implements RouterInterface, RequestMatcherInterface
-{
-}
-
-abstract class VersatileRouter implements VersatileGeneratorInterface, RequestMatcherInterface
-{
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/ContentAwareGeneratorTest.php b/core/vendor/symfony-cmf/routing/Tests/Routing/ContentAwareGeneratorTest.php
deleted file mode 100644
index 3d08974..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/ContentAwareGeneratorTest.php
+++ /dev/null
@@ -1,457 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Routing;
-
-use Symfony\Cmf\Component\Routing\RouteReferrersReadInterface;
-
-use Symfony\Cmf\Component\Routing\ContentAwareGenerator;
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class ContentAwareGeneratorTest extends CmfUnitTestCase
-{
-    protected $contentDocument;
-    protected $routeDocument;
-    protected $routeCompiled;
-    protected $provider;
-
-    /**
-     * @var ContentAwareGenerator
-     */
-    protected $generator;
-    protected $context;
-
-    public function setUp()
-    {
-        $this->contentDocument = $this->buildMock('Symfony\Cmf\Component\Routing\RouteReferrersReadInterface');
-        $this->routeDocument = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'compile'));
-        $this->routeCompiled = $this->buildMock('Symfony\Component\Routing\CompiledRoute');
-        $this->provider = $this->buildMock('Symfony\Cmf\Component\Routing\RouteProviderInterface');
-        $this->context = $this->buildMock('Symfony\Component\Routing\RequestContext');
-
-        $this->generator = new TestableContentAwareGenerator($this->provider);
-    }
-
-    public function testGenerateFromContent()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($this->routeDocument)))
-        ;
-        $this->routeDocument->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($this->contentDocument));
-    }
-
-    public function testGenerateFromContentId()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-
-        $contentRepository = $this->buildMock('Symfony\Cmf\Component\Routing\ContentRepositoryInterface', array('findById', 'getContentId'));
-        $contentRepository->expects($this->once())
-            ->method('findById')
-            ->with('/content/id')
-            ->will($this->returnValue($this->contentDocument))
-        ;
-        $this->generator->setContentRepository($contentRepository);
-
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($this->routeDocument)))
-        ;
-
-        $this->routeDocument->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate('', array('content_id' => '/content/id')));
-    }
-
-    public function testGenerateEmptyRouteString()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($this->routeDocument)))
-        ;
-
-        $this->routeDocument->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($this->contentDocument));
-    }
-
-    public function testGenerateRouteMultilang()
-    {
-        $route_en = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'compile', 'getContent'));
-        $route_en->setLocale('en');
-        $route_de = $this->routeDocument;
-        $route_de->setLocale('de');
-
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($route_en, $route_de)))
-        ;
-        $route_en->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue($this->contentDocument))
-        ;
-        $route_en->expects($this->never())
-            ->method('compile')
-        ;
-        $route_de->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($route_en, array('_locale' => 'de')));
-    }
-
-    public function testGenerateRouteMultilangDefaultLocale()
-    {
-        $route = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock');
-        $route->expects($this->any())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $route->expects($this->any())
-            ->method('getRequirement')
-            ->with('_locale')
-            ->will($this->returnValue('de|en'))
-        ;
-        $route->expects($this->any())
-            ->method('getDefault')
-            ->with('_locale')
-            ->will($this->returnValue('en'))
-        ;
-        $this->routeCompiled->expects($this->any())
-            ->method('getVariables')
-            ->will($this->returnValue(array()))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($route, array('_locale' => 'en')));
-    }
-
-    public function testGenerateRouteMultilangLocaleNomatch()
-    {
-        $route_en = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'compile', 'getContent'));
-        $route_en->setLocale('en');
-        $route_de = $this->routeDocument;
-        $route_de->setLocale('de');
-
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($route_en, $route_de)))
-        ;
-        $route_en->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue($this->contentDocument))
-        ;
-        $route_en->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $route_de->expects($this->never())
-            ->method('compile')
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($route_en, array('_locale' => 'fr')));
-    }
-
-    public function testGenerateNoncmfRouteMultilang()
-    {
-        $route_en = $this->buildMock('Symfony\Component\Routing\Route', array('getDefaults', 'compile', 'getContent'));
-
-        $route_en->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($route_en, array('_locale' => 'de')));
-    }
-
-    public function testGenerateRoutenameMultilang()
-    {
-        $name = 'foo/bar';
-        $route_en = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'compile', 'getContent'));
-        $route_en->setLocale('en');
-        $route_de = $this->routeDocument;
-        $route_de->setLocale('de');
-
-        $this->provider->expects($this->once())
-            ->method('getRouteByName')
-            ->with($name)
-            ->will($this->returnValue($route_en))
-        ;
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($route_en, $route_de)))
-        ;
-        $route_en->expects($this->once())
-            ->method('getContent')
-            ->will($this->returnValue($this->contentDocument))
-        ;
-        $route_en->expects($this->never())
-            ->method('compile')
-        ;
-        $route_de->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($name, array('_locale' => 'de')));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateRoutenameMultilangNotFound()
-    {
-        $name = 'foo/bar';
-
-        $this->provider->expects($this->once())
-            ->method('getRouteByName')
-            ->with($name)
-            ->will($this->returnValue(null))
-        ;
-
-        $this->generator->generate($name, array('_locale' => 'de'));
-    }
-
-    public function testGenerateDocumentMultilang()
-    {
-        $route_en = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'compile'));
-        $route_en->setLocale('en');
-        $route_de = $this->routeDocument;
-        $route_de->setLocale('de');
-
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($route_en, $route_de)))
-        ;
-        $route_en->expects($this->never())
-            ->method('compile')
-        ;
-        $route_de->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($this->contentDocument, array('_locale' => 'de')));
-    }
-
-    public function testGenerateDocumentMultilangLocaleNomatch()
-    {
-        $route_en = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults', 'compile'));
-        $route_en->setLocale('en');
-        $route_de = $this->routeDocument;
-        $route_de->setLocale('de');
-
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($route_en, $route_de)))
-        ;
-        $route_en->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-        $route_de->expects($this->never())
-            ->method('compile')
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($this->contentDocument, array('_locale' => 'fr')));
-    }
-
-    /**
-     * Generate without any information.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNoContent()
-    {
-        $this->generator->generate('', array());
-    }
-
-    /**
-     * Generate with an object that is neither a route nor route aware.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateInvalidContent()
-    {
-        $this->generator->generate($this);
-    }
-
-    /**
-     * Generate with a content_id but there is no content repository.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNoContentRepository()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-
-        $this->generator->generate('', array('content_id' => '/content/id'));
-    }
-
-    /**
-     * Generate with content_id but the content is not found.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNoContentFoundInRepository()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-
-        $contentRepository = $this->buildMock('Symfony\Cmf\Component\Routing\ContentRepositoryInterface', array('findById', 'getContentId'));
-        $contentRepository->expects($this->once())
-            ->method('findById')
-            ->with('/content/id')
-            ->will($this->returnValue(null))
-        ;
-        $this->generator->setContentRepository($contentRepository);
-
-        $this->generator->generate('', array('content_id' => '/content/id'));
-    }
-
-    /**
-     * Generate with content_id but the object at id is not route aware.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateWrongContentClassInRepository()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-
-        $contentRepository = $this->buildMock('Symfony\Cmf\Component\Routing\ContentRepositoryInterface', array('findById', 'getContentId'));
-        $contentRepository->expects($this->once())
-            ->method('findById')
-            ->with('/content/id')
-            ->will($this->returnValue($this))
-        ;
-        $this->generator->setContentRepository($contentRepository);
-
-        $this->generator->generate('', array('content_id' => '/content/id'));
-    }
-
-    /**
-     * Generate from a content that has no routes associated.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNoRoutes()
-    {
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array()));
-
-        $this->generator->generate($this->contentDocument);
-    }
-    /**
-     * Generate from a content that returns something that is not a route as route.
-     *
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateInvalidRoute()
-    {
-        $this->contentDocument->expects($this->once())
-            ->method('getRoutes')
-            ->will($this->returnValue(array($this)));
-
-        $this->generator->generate($this->contentDocument);
-    }
-
-    public function testGetLocaleAttribute()
-    {
-        $this->generator->setDefaultLocale('en');
-
-        $attributes = array('_locale' => 'fr');
-        $this->assertEquals('fr', $this->generator->getLocale($attributes));
-    }
-
-    public function testGetLocaleDefault()
-    {
-        $this->generator->setDefaultLocale('en');
-
-        $attributes = array();
-        $this->assertEquals('en', $this->generator->getLocale($attributes));
-    }
-
-    public function testGetLocaleContext()
-    {
-        $this->generator->setDefaultLocale('en');
-
-        $this->generator->getContext()->setParameter('_locale', 'de');
-
-        $attributes = array();
-        $this->assertEquals('de', $this->generator->getLocale($attributes));
-    }
-
-    public function testSupports()
-    {
-        $this->assertTrue($this->generator->supports(''));
-        $this->assertTrue($this->generator->supports(null));
-        $this->assertTrue($this->generator->supports($this->contentDocument));
-        $this->assertFalse($this->generator->supports($this));
-    }
-
-    public function testGetRouteDebugMessage()
-    {
-        $this->assertContains('/some/content', $this->generator->getRouteDebugMessage(null, array('content_id' => '/some/content')));
-        $this->assertContains('Route aware content Symfony\Cmf\Component\Routing\Tests\Routing\RouteAware', $this->generator->getRouteDebugMessage(new RouteAware()));
-        $this->assertContains('/some/content', $this->generator->getRouteDebugMessage('/some/content'));
-    }
-}
-
-/**
- * Overwrite doGenerate to reduce amount of mocking needed
- */
-class TestableContentAwareGenerator extends ContentAwareGenerator
-{
-    protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
-    {
-        return 'result_url';
-    }
-
-    // expose as public
-    public function getLocale($parameters)
-    {
-        return parent::getLocale($parameters);
-    }
-}
-
-class RouteAware implements RouteReferrersReadInterface
-{
-    public function getRoutes()
-    {
-        return array();
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/DynamicRouterTest.php b/core/vendor/symfony-cmf/routing/Tests/Routing/DynamicRouterTest.php
deleted file mode 100644
index f3e24e9..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/DynamicRouterTest.php
+++ /dev/null
@@ -1,330 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Routing;
-
-use Symfony\Cmf\Component\Routing\Event\Events;
-use Symfony\Cmf\Component\Routing\Event\RouterMatchEvent;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\RouteCollection;
-
-use Symfony\Cmf\Component\Routing\DynamicRouter;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class DynamicRouterTest extends CmfUnitTestCase
-{
-    protected $routeDocument;
-    protected $matcher;
-    protected $generator;
-    protected $enhancer;
-    /** @var DynamicRouter */
-    protected $router;
-    protected $context;
-    public $request;
-
-    protected $url = '/foo/bar';
-
-    public function setUp()
-    {
-        $this->routeDocument = $this->buildMock('Symfony\Cmf\Component\Routing\Tests\Routing\RouteMock', array('getDefaults'));
-
-        $this->matcher = $this->buildMock('Symfony\Component\Routing\Matcher\UrlMatcherInterface');
-        $this->generator = $this->buildMock('Symfony\Cmf\Component\Routing\VersatileGeneratorInterface', array('supports', 'generate', 'setContext', 'getContext', 'getRouteDebugMessage'));
-        $this->enhancer = $this->buildMock('Symfony\Cmf\Component\Routing\Enhancer\RouteEnhancerInterface', array('enhance'));
-
-        $this->context = $this->buildMock('Symfony\Component\Routing\RequestContext');
-        $this->request = Request::create($this->url);
-
-        $this->router = new DynamicRouter($this->context, $this->matcher, $this->generator);
-        $this->router->addRouteEnhancer($this->enhancer);
-    }
-
-    /**
-     * rather trivial, but we want 100% coverage
-     */
-    public function testContext()
-    {
-        $this->router->setContext($this->context);
-        $this->assertSame($this->context, $this->router->getContext());
-    }
-
-    public function testRouteCollectionEmpty()
-    {
-        $collection = $this->router->getRouteCollection();
-        $this->assertInstanceOf('Symfony\Component\Routing\RouteCollection', $collection);
-    }
-
-    public function testRouteCollectionLazy()
-    {
-        $provider = $this->getMock('Symfony\Cmf\Component\Routing\RouteProviderInterface');
-        $router = new DynamicRouter($this->context, $this->matcher, $this->generator, '', null, $provider);
-
-        $collection = $router->getRouteCollection();
-        $this->assertInstanceOf('Symfony\Cmf\Component\Routing\LazyRouteCollection', $collection);
-    }
-
-    /// generator tests ///
-
-    public function testGetGenerator()
-    {
-        $this->generator->expects($this->once())
-            ->method('setContext')
-            ->with($this->equalTo($this->context));
-
-        $generator = $this->router->getGenerator();
-        $this->assertInstanceOf('Symfony\Component\Routing\Generator\UrlGeneratorInterface', $generator);
-        $this->assertSame($this->generator, $generator);
-    }
-
-    public function testGenerate()
-    {
-        $name = 'my_route_name';
-        $parameters = array('foo' => 'bar');
-        $absolute = true;
-
-        $this->generator->expects($this->once())
-            ->method('generate')
-            ->with($name, $parameters, $absolute)
-            ->will($this->returnValue('http://test'))
-        ;
-
-        $url = $this->router->generate($name, $parameters, $absolute);
-        $this->assertEquals('http://test', $url);
-    }
-
-    public function testSupports()
-    {
-        $name = 'foo/bar';
-        $this->generator->expects($this->once())
-            ->method('supports')
-            ->with($this->equalTo($name))
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($this->router->supports($name));
-    }
-
-    public function testSupportsNonversatile()
-    {
-        $generator = $this->buildMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface', array('generate', 'setContext', 'getContext'));
-        $router = new DynamicRouter($this->context, $this->matcher, $generator);
-        $this->assertInternalType('string', $router->getRouteDebugMessage('test'));
-
-        $this->assertTrue($router->supports('some string'));
-        $this->assertFalse($router->supports($this));
-    }
-
-    /// match tests ///
-
-    public function testGetMatcher()
-    {
-        $this->matcher->expects($this->once())
-            ->method('setContext')
-            ->with($this->equalTo($this->context));
-
-        $matcher = $this->router->getMatcher();
-        $this->assertInstanceOf('Symfony\Component\Routing\Matcher\UrlMatcherInterface', $matcher);
-        $this->assertSame($this->matcher, $matcher);
-    }
-
-    public function testMatchUrl()
-    {
-        $routeDefaults = array('foo' => 'bar');
-        $this->matcher->expects($this->once())
-            ->method('match')
-            ->with($this->url)
-            ->will($this->returnValue($routeDefaults))
-        ;
-
-        $expected = array('this' => 'that');
-        $this->enhancer->expects($this->once())
-            ->method('enhance')
-            ->with($this->equalTo($routeDefaults), $this->equalTo($this->request))
-            ->will($this->returnValue($expected))
-        ;
-
-        $results = $this->router->match($this->url);
-
-        $this->assertEquals($expected, $results);
-    }
-
-    public function testMatchRequestWithUrlMatcher()
-    {
-        $routeDefaults = array('foo' => 'bar');
-
-        $this->matcher->expects($this->once())
-            ->method('match')
-            ->with($this->url)
-            ->will($this->returnValue($routeDefaults))
-        ;
-
-        $expected = array('this' => 'that');
-        $this->enhancer->expects($this->once())
-            ->method('enhance')
-            // somehow request object gets confused, check on instance only
-            ->with($this->equalTo($routeDefaults), $this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
-            ->will($this->returnValue($expected))
-        ;
-
-        $results = $this->router->matchRequest($this->request);
-
-        $this->assertEquals($expected, $results);
-    }
-
-    public function testMatchRequest()
-    {
-        $routeDefaults = array('foo' => 'bar');
-
-        $matcher = $this->buildMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface', array('matchRequest', 'setContext', 'getContext'));
-        $router = new DynamicRouter($this->context, $matcher, $this->generator);
-
-        $matcher->expects($this->once())
-            ->method('matchRequest')
-            ->with($this->request)
-            ->will($this->returnValue($routeDefaults))
-        ;
-
-        $expected = array('this' => 'that');
-        $this->enhancer->expects($this->once())
-            ->method('enhance')
-            ->with($this->equalTo($routeDefaults), $this->equalTo($this->request))
-            ->will($this->returnValue($expected))
-        ;
-
-        $router->addRouteEnhancer($this->enhancer);
-
-        $this->assertEquals($expected, $router->matchRequest($this->request));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testMatchFilter()
-    {
-        $router = new DynamicRouter($this->context, $this->matcher, $this->generator, '#/different/prefix.*#');
-        $router->addRouteEnhancer($this->enhancer);
-
-        $this->matcher->expects($this->never())
-            ->method('match')
-        ;
-
-        $this->enhancer->expects($this->never())
-            ->method('enhance')
-        ;
-
-        $router->match($this->url);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testMatchRequestFilter()
-    {
-        $matcher = $this->buildMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface', array('matchRequest', 'setContext', 'getContext'));
-
-        $router = new DynamicRouter($this->context, $matcher, $this->generator, '#/different/prefix.*#');
-        $router->addRouteEnhancer($this->enhancer);
-
-        $matcher->expects($this->never())
-            ->method('matchRequest')
-        ;
-
-        $this->enhancer->expects($this->never())
-            ->method('enhance')
-        ;
-
-        $router->matchRequest($this->request);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testMatchUrlWithRequestMatcher()
-    {
-        $matcher = $this->buildMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface', array('matchRequest', 'setContext', 'getContext'));
-        $router = new DynamicRouter($this->context, $matcher, $this->generator);
-
-        $router->match($this->url);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testInvalidMatcher()
-    {
-        new DynamicRouter($this->context, $this, $this->generator);
-    }
-
-    public function testRouteDebugMessage()
-    {
-        $this->generator->expects($this->once())
-            ->method('getRouteDebugMessage')
-            ->with($this->equalTo('test'), $this->equalTo(array()))
-            ->will($this->returnValue('debug message'))
-        ;
-
-        $this->assertEquals('debug message', $this->router->getRouteDebugMessage('test'));
-    }
-
-    public function testRouteDebugMessageNonversatile()
-    {
-        $generator = $this->buildMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface', array('generate', 'setContext', 'getContext'));
-        $router = new DynamicRouter($this->context, $this->matcher, $generator);
-        $this->assertInternalType('string', $router->getRouteDebugMessage('test'));
-    }
-
-    public function testEventHandler()
-    {
-        $eventDispatcher = $this->buildMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
-        $router = new DynamicRouter($this->context, $this->matcher, $this->generator, '', $eventDispatcher);
-
-        $eventDispatcher->expects($this->once())
-            ->method('dispatch')
-            ->with(Events::PRE_DYNAMIC_MATCH, $this->equalTo(new RouterMatchEvent()))
-        ;
-
-        $routeDefaults = array('foo' => 'bar');
-        $this->matcher->expects($this->once())
-            ->method('match')
-            ->with($this->url)
-            ->will($this->returnValue($routeDefaults))
-        ;
-
-        $this->assertEquals($routeDefaults, $router->match($this->url));
-    }
-
-    public function testEventHandlerRequest()
-    {
-        $eventDispatcher = $this->buildMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
-        $router = new DynamicRouter($this->context, $this->matcher, $this->generator, '', $eventDispatcher);
-
-        $that = $this;
-        $eventDispatcher->expects($this->once())
-            ->method('dispatch')
-            ->with(Events::PRE_DYNAMIC_MATCH_REQUEST, $this->callback(function ($event) use ($that) {
-                $that->assertInstanceOf('Symfony\Cmf\Component\Routing\Event\RouterMatchEvent', $event);
-                $that->assertEquals($that->request, $event->getRequest());
-
-                return true;
-            }))
-        ;
-
-        $routeDefaults = array('foo' => 'bar');
-        $this->matcher->expects($this->once())
-            ->method('match')
-            ->with($this->url)
-            ->will($this->returnValue($routeDefaults))
-        ;
-
-        $this->assertEquals($routeDefaults, $router->matchRequest($this->request));
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/LazyRouteCollectionTest.php b/core/vendor/symfony-cmf/routing/Tests/Routing/LazyRouteCollectionTest.php
deleted file mode 100644
index 95d3ad2..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/LazyRouteCollectionTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-use Symfony\Component\Routing\Route;
-
-/**
- * Tests the lazy route collection.
- *
- * @group cmf/routing
- */
-class LazyRouteCollectionTest extends CmfUnitTestCase
-{
-    /**
-     * Tests the iterator without a paged route provider.
-     */
-    public function testGetIterator()
-    {
-        $routeProvider = $this->getMock('Symfony\Cmf\Component\Routing\RouteProviderInterface');
-        $testRoutes = array(
-          'route_1' => new Route('/route-1'),
-          'route_2"' => new Route('/route-2'),
-        );
-        $routeProvider->expects($this->exactly(2))
-            ->method('getRoutesByNames')
-            ->with(null)
-            ->will($this->returnValue($testRoutes));
-        $lazyRouteCollection = new LazyRouteCollection($routeProvider);
-        $this->assertEquals($testRoutes, iterator_to_array($lazyRouteCollection->getIterator()));
-        $this->assertEquals($testRoutes, $lazyRouteCollection->all());
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/PagedRouteCollectionTest.php b/core/vendor/symfony-cmf/routing/Tests/Routing/PagedRouteCollectionTest.php
deleted file mode 100644
index 741beaa..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/PagedRouteCollectionTest.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-use Symfony\Component\Routing\Route;
-
-/**
- * Tests the page route collection.
- *
- * @group cmf/routing
- */
-class PagedRouteCollectionTest extends CmfUnitTestCase
-{
-    /**
-     * Contains a mocked route provider.
-     *
-     * @var \Symfony\Cmf\Component\Routing\PagedRouteProviderInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $routeProvider;
-
-    protected function setUp()
-    {
-        $this->routeProvider = $this->getMock('Symfony\Cmf\Component\Routing\PagedRouteProviderInterface');
-    }
-
-    /**
-     * Tests iterating a small amount of routes.
-     *
-     * @dataProvider providerIterator
-     */
-    public function testIterator($amountRoutes, $routesLoadedInParallel, $expectedCalls = array())
-    {
-        $routes = array();
-        for ($i = 0; $i < $amountRoutes; $i++) {
-            $routes['test_' . $i] = new Route("/example-$i");
-        }
-        $names = array_keys($routes);
-
-        foreach ($expectedCalls as $i => $range)
-        {
-            $this->routeProvider->expects($this->at($i))
-              ->method('getRoutesPaged')
-              ->with($range[0], $range[1])
-              ->will($this->returnValue(array_slice($routes, $range[0], $range[1])));
-        }
-
-        $route_collection = new PagedRouteCollection($this->routeProvider, $routesLoadedInParallel);
-
-        $counter = 0;
-        foreach ($route_collection as $route_name => $route) {
-            // Ensure the route did not changed.
-            $this->assertEquals($routes[$route_name], $route);
-            // Ensure that the order did not changed.
-            $this->assertEquals($route_name, $names[$counter]);
-            $counter++;
-        }
-    }
-
-    /**
-     * Provides test data for testIterator().
-     */
-    public function providerIterator()
-    {
-        $data = array();
-        // Non total routes.
-        $data[] = array(0, 20, array(array(0, 20)));
-        // Less total routes than loaded in parallel.
-        $data[] = array(10, 20, array(array(0, 20)));
-        // Exact the same amount of routes then loaded in parallel.
-        $data[] = array(20, 20, array(array(0, 20), array(20, 20)));
-        // Less than twice the amount.
-        $data[] = array(39, 20, array(array(0, 20), array(20, 20)));
-        // More total routes than loaded in parallel.
-        $data[] = array(40, 20, array(array(0, 20), array(20, 20), array(40, 20)));
-        $data[] = array(41, 20, array(array(0, 20), array(20, 20), array(40, 20)));
-        // why not.
-        $data[] = array(42, 23, array(array(0, 23), array(23, 23)));
-        return $data;
-    }
-
-    /**
-     * Tests the count() method.
-     */
-    public function testCount()
-    {
-        $this->routeProvider->expects($this->once())
-            ->method('getRoutesCount')
-            ->will($this->returnValue(12));
-        $routeCollection = new PagedRouteCollection($this->routeProvider);
-        $this->assertEquals(12, $routeCollection->count());
-    }
-
-    /**
-     * Tests the rewind method once the iterator is at the end.
-     */
-    public function testIteratingAndRewind()
-    {
-        $routes = array();
-        for ($i = 0; $i < 30; $i++) {
-            $routes['test_' . $i] = new Route("/example-$i");
-        }
-        $this->routeProvider->expects($this->any())
-            ->method('getRoutesPaged')
-            ->will($this->returnValueMap(array(
-                array(0, 10, array_slice($routes, 0, 10)),
-                array(10, 10, array_slice($routes, 9, 10)),
-                array(20, 10, array()),
-            )));
-
-        $routeCollection = new PagedRouteCollection($this->routeProvider, 10);
-
-        // Force the iterating process.
-        $routeCollection->rewind();
-        for ($i = 0; $i < 29; $i++) {
-            $routeCollection->next();
-        }
-        $routeCollection->rewind();
-
-        $this->assertEquals('test_0', $routeCollection->key());
-        $this->assertEquals($routes['test_0'], $routeCollection->current());
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/ProviderBasedGeneratorTest.php b/core/vendor/symfony-cmf/routing/Tests/Routing/ProviderBasedGeneratorTest.php
deleted file mode 100644
index 955f9fc..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/ProviderBasedGeneratorTest.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Routing;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Route;
-
-use Symfony\Cmf\Component\Routing\ProviderBasedGenerator;
-use Symfony\Cmf\Component\Routing\Test\CmfUnitTestCase;
-
-class ProviderBasedGeneratorTest extends CmfUnitTestCase
-{
-    protected $routeDocument;
-    protected $routeCompiled;
-    protected $provider;
-
-    /** @var ProviderBasedGenerator */
-    protected $generator;
-    protected $context;
-
-    public function setUp()
-    {
-        $this->routeDocument = $this->buildMock('Symfony\Component\Routing\Route', array('getDefaults', 'compile'));
-        $this->routeCompiled = $this->buildMock('Symfony\Component\Routing\CompiledRoute');
-        $this->provider = $this->buildMock('Symfony\Cmf\Component\Routing\RouteProviderInterface');
-        $this->context = $this->buildMock('Symfony\Component\Routing\RequestContext');
-
-        $this->generator= new TestableProviderBasedGenerator($this->provider);
-    }
-
-    public function testGenerateFromName()
-    {
-        $name = 'foo/bar';
-
-        $this->provider->expects($this->once())
-            ->method('getRouteByName')
-            ->with($name)
-            ->will($this->returnValue($this->routeDocument))
-        ;
-        $this->routeDocument->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($name));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNotFound()
-    {
-        $name = 'foo/bar';
-
-        $this->provider->expects($this->once())
-            ->method('getRouteByName')
-            ->with($name)
-            ->will($this->returnValue(null))
-        ;
-
-        $this->generator->generate($name);
-    }
-
-    public function testGenerateFromRoute()
-    {
-        $this->provider->expects($this->never())
-            ->method('getRouteByName')
-        ;
-        $this->routeDocument->expects($this->once())
-            ->method('compile')
-            ->will($this->returnValue($this->routeCompiled))
-        ;
-
-        $this->assertEquals('result_url', $this->generator->generate($this->routeDocument));
-    }
-
-    public function testSupports()
-    {
-        $this->assertTrue($this->generator->supports('foo/bar'));
-        $this->assertTrue($this->generator->supports($this->routeDocument));
-        $this->assertFalse($this->generator->supports($this));
-    }
-
-    public function testGetRouteDebugMessage()
-    {
-        $this->assertContains('/some/key', $this->generator->getRouteDebugMessage(new RouteObject()));
-        $this->assertContains('/de/test', $this->generator->getRouteDebugMessage(new Route('/de/test')));
-        $this->assertContains('/some/route', $this->generator->getRouteDebugMessage('/some/route'));
-        $this->assertContains('a:1:{s:10:"route_name";s:7:"example";}', $this->generator->getRouteDebugMessage(array('route_name' => 'example')));
-    }
-
-  /**
-   * Tests the generate method with passing in a route object into generate().
-   *
-   * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-   */
-    public function testGenerateByRoute()
-    {
-        $this->generator = new ProviderBasedGenerator($this->provider);
-
-        // Setup a route with a numeric parameter, but pass in a string, so it
-        // fails and getRouteDebugMessage should be triggered.
-        $route = new Route('/test');
-        $route->setPath('/test/{number}');
-        $route->setRequirement('number', '\+d');
-
-        $this->generator->setStrictRequirements(true);
-
-        $context = new RequestContext();
-        $this->generator->setContext($context);
-
-        $this->assertSame(null, $this->generator->generate($route, array('number' => 'string')));
-
-    }
-}
-
-/**
- * Overwrite doGenerate to reduce amount of mocking needed
- */
-class TestableProviderBasedGenerator extends ProviderBasedGenerator
-{
-    protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
-    {
-        return 'result_url';
-    }
-}
-
-class RouteObject implements RouteObjectInterface
-{
-    public function getRouteKey()
-    {
-        return '/some/key';
-    }
-
-    public function getContent()
-    {
-        return null;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/Routing/RouteMock.php b/core/vendor/symfony-cmf/routing/Tests/Routing/RouteMock.php
deleted file mode 100644
index 7b1440a..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/Routing/RouteMock.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing\Tests\Routing;
-
-use Symfony\Component\Routing\Route as SymfonyRoute;
-
-use Symfony\Cmf\Component\Routing\RouteObjectInterface;
-
-class RouteMock extends SymfonyRoute implements RouteObjectInterface
-{
-    private $locale;
-
-    public function setLocale($locale)
-    {
-        $this->locale = $locale;
-    }
-
-    public function getContent()
-    {
-        return null;
-    }
-
-    public function getDefaults()
-    {
-        $defaults = array();
-        if (! is_null($this->locale)) {
-            $defaults['_locale'] = $this->locale;
-        }
-
-        return $defaults;
-    }
-
-    public function getRequirement($key)
-    {
-        if (! $key == '_locale') {
-            throw new \Exception;
-        }
-
-        return $this->locale;
-    }
-
-    public function getRouteKey()
-    {
-        return null;
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/Tests/bootstrap.php b/core/vendor/symfony-cmf/routing/Tests/bootstrap.php
deleted file mode 100644
index 157e59f..0000000
--- a/core/vendor/symfony-cmf/routing/Tests/bootstrap.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-$file = __DIR__.'/../vendor/autoload.php';
-if (!file_exists($file)) {
-    throw new RuntimeException('Install dependencies to run test suite.');
-}
-
-require_once $file;
-
-spl_autoload_register(function ($class) {
-    if (0 === strpos($class, 'Symfony\Cmf\Component\Routing\\')) {
-        $path = __DIR__.'/../'.implode('/', array_slice(explode('\\', $class), 4)).'.php';
-        if (!stream_resolve_include_path($path)) {
-            return false;
-        }
-        require_once $path;
-
-        return true;
-    }
-});
diff --git a/core/vendor/symfony-cmf/routing/VersatileGeneratorInterface.php b/core/vendor/symfony-cmf/routing/VersatileGeneratorInterface.php
deleted file mode 100644
index d58ab7a..0000000
--- a/core/vendor/symfony-cmf/routing/VersatileGeneratorInterface.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony CMF package.
- *
- * (c) 2011-2014 Symfony CMF
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Cmf\Component\Routing;
-
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-
-/**
- * This generator is able to handle more than string route names as symfony
- * core supports them.
- */
-interface VersatileGeneratorInterface extends UrlGeneratorInterface
-{
-    /**
-     * Whether this generator supports the supplied $name.
-     *
-     * This check does not need to look if the specific instance can be
-     * resolved to a route, only whether the router can generate routes from
-     * objects of this class.
-     *
-     * @param mixed $name The route "name" which may also be an object or anything
-     *
-     * @return bool
-     */
-    public function supports($name);
-
-    /**
-     * Convert a route identifier (name, content object etc) into a string
-     * usable for logging and other debug/error messages
-     *
-     * @param mixed $name
-     * @param array $parameters which should contain a content field containing
-     *                          a RouteReferrersReadInterface object
-     *
-     * @return string
-     */
-    public function getRouteDebugMessage($name, array $parameters = array());
-}
diff --git a/core/vendor/symfony-cmf/routing/composer.json b/core/vendor/symfony-cmf/routing/composer.json
deleted file mode 100644
index 8594e38..0000000
--- a/core/vendor/symfony-cmf/routing/composer.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "name": "symfony-cmf/routing",
-    "type": "library",
-    "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers",
-    "keywords": ["routing", "database"],
-    "homepage": "http://cmf.symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Symfony CMF Community",
-            "homepage": "https://github.com/symfony-cmf/Routing/contributors"
-        }
-    ],
-    "minimum-stability": "dev",
-    "require": {
-        "php": ">=5.3.3",
-        "symfony/routing": "~2.2",
-        "symfony/http-kernel": "~2.2",
-        "psr/log": "~1.0"
-    },
-    "require-dev": {
-        "symfony/dependency-injection": "~2.0@stable",
-        "symfony/config": "~2.2",
-        "symfony/event-dispatcher": "~2.1"
-    },
-    "suggest": {
-        "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1"
-    },
-    "autoload": {
-        "psr-4": {
-            "Symfony\\Cmf\\Component\\Routing\\": ""
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.3-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony-cmf/routing/phpunit.xml.dist b/core/vendor/symfony-cmf/routing/phpunit.xml.dist
deleted file mode 100644
index 2564ef1..0000000
--- a/core/vendor/symfony-cmf/routing/phpunit.xml.dist
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
-<phpunit
-    colors="true"
-    bootstrap="Tests/bootstrap.php"
->
-
-    <testsuites>
-        <testsuite name="Symfony Cmf Routing Test Suite">
-            <directory>./Tests</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist addUncoveredFilesFromWhitelist="true">
-            <directory>.</directory>
-            <exclude>
-                <directory>Test/</directory>
-                <directory>Tests/</directory>
-                <directory>vendor/</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-
-</phpunit>
diff --git a/core/vendor/symfony/browser-kit/.gitignore b/core/vendor/symfony/browser-kit/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/browser-kit/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/browser-kit/CHANGELOG.md b/core/vendor/symfony/browser-kit/CHANGELOG.md
deleted file mode 100644
index d2b1074..0000000
--- a/core/vendor/symfony/browser-kit/CHANGELOG.md
+++ /dev/null
@@ -1,18 +0,0 @@
-CHANGELOG
-=========
-
-2.3.0
------
-
- * [BC BREAK] `Client::followRedirect()` won't redirect responses with
-   a non-3xx Status Code and `Location` header anymore, as per 
-   http://tools.ietf.org/html/rfc2616#section-14.30
-
- * added `Client::getInternalRequest()` and `Client::getInternalResponse()` to
-   have access to the BrowserKit internal request and response objects
-
-2.1.0
------
-
- * [BC BREAK] The CookieJar internals have changed to allow cookies with the
-   same name on different sub-domains/sub-paths
diff --git a/core/vendor/symfony/browser-kit/Client.php b/core/vendor/symfony/browser-kit/Client.php
deleted file mode 100644
index f41f156..0000000
--- a/core/vendor/symfony/browser-kit/Client.php
+++ /dev/null
@@ -1,619 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit;
-
-use Symfony\Component\DomCrawler\Crawler;
-use Symfony\Component\DomCrawler\Link;
-use Symfony\Component\DomCrawler\Form;
-use Symfony\Component\Process\PhpProcess;
-
-/**
- * Client simulates a browser.
- *
- * To make the actual request, you need to implement the doRequest() method.
- *
- * If you want to be able to run requests in their own process (insulated flag),
- * you need to also implement the getScript() method.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class Client
-{
-    protected $history;
-    protected $cookieJar;
-    protected $server = array();
-    protected $internalRequest;
-    protected $request;
-    protected $internalResponse;
-    protected $response;
-    protected $crawler;
-    protected $insulated = false;
-    protected $redirect;
-    protected $followRedirects = true;
-
-    private $maxRedirects = -1;
-    private $redirectCount = 0;
-    private $isMainRequest = true;
-
-    /**
-     * Constructor.
-     *
-     * @param array     $server    The server parameters (equivalent of $_SERVER)
-     * @param History   $history   A History instance to store the browser history
-     * @param CookieJar $cookieJar A CookieJar instance to store the cookies
-     *
-     * @api
-     */
-    public function __construct(array $server = array(), History $history = null, CookieJar $cookieJar = null)
-    {
-        $this->setServerParameters($server);
-        $this->history = $history ?: new History();
-        $this->cookieJar = $cookieJar ?: new CookieJar();
-    }
-
-    /**
-     * Sets whether to automatically follow redirects or not.
-     *
-     * @param bool $followRedirect Whether to follow redirects
-     *
-     * @api
-     */
-    public function followRedirects($followRedirect = true)
-    {
-        $this->followRedirects = (bool) $followRedirect;
-    }
-
-    /**
-     * Sets the maximum number of requests that crawler can follow.
-     *
-     * @param int $maxRedirects
-     */
-    public function setMaxRedirects($maxRedirects)
-    {
-        $this->maxRedirects = $maxRedirects < 0 ? -1 : $maxRedirects;
-        $this->followRedirects = -1 != $this->maxRedirects;
-    }
-
-    /**
-     * Sets the insulated flag.
-     *
-     * @param bool $insulated Whether to insulate the requests or not
-     *
-     * @throws \RuntimeException When Symfony Process Component is not installed
-     *
-     * @api
-     */
-    public function insulate($insulated = true)
-    {
-        if ($insulated && !class_exists('Symfony\\Component\\Process\\Process')) {
-            throw new \RuntimeException('Unable to isolate requests as the Symfony Process Component is not installed.');
-        }
-
-        $this->insulated = (bool) $insulated;
-    }
-
-    /**
-     * Sets server parameters.
-     *
-     * @param array $server An array of server parameters
-     *
-     * @api
-     */
-    public function setServerParameters(array $server)
-    {
-        $this->server = array_merge(array(
-            'HTTP_HOST' => 'localhost',
-            'HTTP_USER_AGENT' => 'Symfony2 BrowserKit',
-        ), $server);
-    }
-
-    /**
-     * Sets single server parameter.
-     *
-     * @param string $key   A key of the parameter
-     * @param string $value A value of the parameter
-     */
-    public function setServerParameter($key, $value)
-    {
-        $this->server[$key] = $value;
-    }
-
-    /**
-     * Gets single server parameter for specified key.
-     *
-     * @param string $key     A key of the parameter to get
-     * @param string $default A default value when key is undefined
-     *
-     * @return string A value of the parameter
-     */
-    public function getServerParameter($key, $default = '')
-    {
-        return (isset($this->server[$key])) ? $this->server[$key] : $default;
-    }
-
-    /**
-     * Returns the History instance.
-     *
-     * @return History A History instance
-     *
-     * @api
-     */
-    public function getHistory()
-    {
-        return $this->history;
-    }
-
-    /**
-     * Returns the CookieJar instance.
-     *
-     * @return CookieJar A CookieJar instance
-     *
-     * @api
-     */
-    public function getCookieJar()
-    {
-        return $this->cookieJar;
-    }
-
-    /**
-     * Returns the current Crawler instance.
-     *
-     * @return Crawler|null A Crawler instance
-     *
-     * @api
-     */
-    public function getCrawler()
-    {
-        return $this->crawler;
-    }
-
-    /**
-     * Returns the current BrowserKit Response instance.
-     *
-     * @return Response|null A BrowserKit Response instance
-     *
-     * @api
-     */
-    public function getInternalResponse()
-    {
-        return $this->internalResponse;
-    }
-
-    /**
-     * Returns the current origin response instance.
-     *
-     * The origin response is the response instance that is returned
-     * by the code that handles requests.
-     *
-     * @return object|null A response instance
-     *
-     * @see doRequest()
-     *
-     * @api
-     */
-    public function getResponse()
-    {
-        return $this->response;
-    }
-
-    /**
-     * Returns the current BrowserKit Request instance.
-     *
-     * @return Request|null A BrowserKit Request instance
-     *
-     * @api
-     */
-    public function getInternalRequest()
-    {
-        return $this->internalRequest;
-    }
-
-    /**
-     * Returns the current origin Request instance.
-     *
-     * The origin request is the request instance that is sent
-     * to the code that handles requests.
-     *
-     * @return object|null A Request instance
-     *
-     * @see doRequest()
-     *
-     * @api
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    /**
-     * Clicks on a given link.
-     *
-     * @param Link $link A Link instance
-     *
-     * @return Crawler
-     *
-     * @api
-     */
-    public function click(Link $link)
-    {
-        if ($link instanceof Form) {
-            return $this->submit($link);
-        }
-
-        return $this->request($link->getMethod(), $link->getUri());
-    }
-
-    /**
-     * Submits a form.
-     *
-     * @param Form  $form   A Form instance
-     * @param array $values An array of form field values
-     *
-     * @return Crawler
-     *
-     * @api
-     */
-    public function submit(Form $form, array $values = array())
-    {
-        $form->setValues($values);
-
-        return $this->request($form->getMethod(), $form->getUri(), $form->getPhpValues(), $form->getPhpFiles());
-    }
-
-    /**
-     * Calls a URI.
-     *
-     * @param string $method        The request method
-     * @param string $uri           The URI to fetch
-     * @param array  $parameters    The Request parameters
-     * @param array  $files         The files
-     * @param array  $server        The server parameters (HTTP headers are referenced with a HTTP_ prefix as PHP does)
-     * @param string $content       The raw body data
-     * @param bool   $changeHistory Whether to update the history or not (only used internally for back(), forward(), and reload())
-     *
-     * @return Crawler
-     *
-     * @api
-     */
-    public function request($method, $uri, array $parameters = array(), array $files = array(), array $server = array(), $content = null, $changeHistory = true)
-    {
-        if ($this->isMainRequest) {
-            $this->redirectCount = 0;
-        } else {
-            ++$this->redirectCount;
-        }
-
-        $uri = $this->getAbsoluteUri($uri);
-
-        if (!empty($server['HTTP_HOST'])) {
-            $uri = preg_replace('{^(https?\://)'.preg_quote($this->extractHost($uri)).'}', '${1}'.$server['HTTP_HOST'], $uri);
-        }
-
-        if (isset($server['HTTPS'])) {
-            $uri = preg_replace('{^'.parse_url($uri, PHP_URL_SCHEME).'}', $server['HTTPS'] ? 'https' : 'http', $uri);
-        }
-
-        $server = array_merge($this->server, $server);
-
-        if (!$this->history->isEmpty()) {
-            $server['HTTP_REFERER'] = $this->history->current()->getUri();
-        }
-
-        $server['HTTP_HOST'] = $this->extractHost($uri);
-        $server['HTTPS'] = 'https' == parse_url($uri, PHP_URL_SCHEME);
-
-        $this->internalRequest = new Request($uri, $method, $parameters, $files, $this->cookieJar->allValues($uri), $server, $content);
-
-        $this->request = $this->filterRequest($this->internalRequest);
-
-        if (true === $changeHistory) {
-            $this->history->add($this->internalRequest);
-        }
-
-        if ($this->insulated) {
-            $this->response = $this->doRequestInProcess($this->request);
-        } else {
-            $this->response = $this->doRequest($this->request);
-        }
-
-        $this->internalResponse = $this->filterResponse($this->response);
-
-        $this->cookieJar->updateFromResponse($this->internalResponse, $uri);
-
-        $status = $this->internalResponse->getStatus();
-
-        if ($status >= 300 && $status < 400) {
-            $this->redirect = $this->internalResponse->getHeader('Location');
-        } else {
-            $this->redirect = null;
-        }
-
-        if ($this->followRedirects && $this->redirect) {
-            return $this->crawler = $this->followRedirect();
-        }
-
-        return $this->crawler = $this->createCrawlerFromContent($this->internalRequest->getUri(), $this->internalResponse->getContent(), $this->internalResponse->getHeader('Content-Type'));
-    }
-
-    /**
-     * Makes a request in another process.
-     *
-     * @param object $request An origin request instance
-     *
-     * @return object An origin response instance
-     *
-     * @throws \RuntimeException When processing returns exit code
-     */
-    protected function doRequestInProcess($request)
-    {
-        // We set the TMPDIR (for Macs) and TEMP (for Windows), because on these platforms the temp directory changes based on the user.
-        $process = new PhpProcess($this->getScript($request), null, array('TMPDIR' => sys_get_temp_dir(), 'TEMP' => sys_get_temp_dir()));
-        $process->run();
-
-        if (!$process->isSuccessful() || !preg_match('/^O\:\d+\:/', $process->getOutput())) {
-            throw new \RuntimeException(sprintf('OUTPUT: %s ERROR OUTPUT: %s', $process->getOutput(), $process->getErrorOutput()));
-        }
-
-        return unserialize($process->getOutput());
-    }
-
-    /**
-     * Makes a request.
-     *
-     * @param object $request An origin request instance
-     *
-     * @return object An origin response instance
-     */
-    abstract protected function doRequest($request);
-
-    /**
-     * Returns the script to execute when the request must be insulated.
-     *
-     * @param object $request An origin request instance
-     *
-     * @throws \LogicException When this abstract class is not implemented
-     */
-    protected function getScript($request)
-    {
-        throw new \LogicException('To insulate requests, you need to override the getScript() method.');
-    }
-
-    /**
-     * Filters the BrowserKit request to the origin one.
-     *
-     * @param Request $request The BrowserKit Request to filter
-     *
-     * @return object An origin request instance
-     */
-    protected function filterRequest(Request $request)
-    {
-        return $request;
-    }
-
-    /**
-     * Filters the origin response to the BrowserKit one.
-     *
-     * @param object $response The origin response to filter
-     *
-     * @return Response An BrowserKit Response instance
-     */
-    protected function filterResponse($response)
-    {
-        return $response;
-    }
-
-    /**
-     * Creates a crawler.
-     *
-     * This method returns null if the DomCrawler component is not available.
-     *
-     * @param string $uri     A URI
-     * @param string $content Content for the crawler to use
-     * @param string $type    Content type
-     *
-     * @return Crawler|null
-     */
-    protected function createCrawlerFromContent($uri, $content, $type)
-    {
-        if (!class_exists('Symfony\Component\DomCrawler\Crawler')) {
-            return;
-        }
-
-        $crawler = new Crawler(null, $uri);
-        $crawler->addContent($content, $type);
-
-        return $crawler;
-    }
-
-    /**
-     * Goes back in the browser history.
-     *
-     * @return Crawler
-     *
-     * @api
-     */
-    public function back()
-    {
-        return $this->requestFromRequest($this->history->back(), false);
-    }
-
-    /**
-     * Goes forward in the browser history.
-     *
-     * @return Crawler
-     *
-     * @api
-     */
-    public function forward()
-    {
-        return $this->requestFromRequest($this->history->forward(), false);
-    }
-
-    /**
-     * Reloads the current browser.
-     *
-     * @return Crawler
-     *
-     * @api
-     */
-    public function reload()
-    {
-        return $this->requestFromRequest($this->history->current(), false);
-    }
-
-    /**
-     * Follow redirects?
-     *
-     * @return Crawler
-     *
-     * @throws \LogicException If request was not a redirect
-     *
-     * @api
-     */
-    public function followRedirect()
-    {
-        if (empty($this->redirect)) {
-            throw new \LogicException('The request was not redirected.');
-        }
-
-        if (-1 !== $this->maxRedirects) {
-            if ($this->redirectCount > $this->maxRedirects) {
-                throw new \LogicException(sprintf('The maximum number (%d) of redirections was reached.', $this->maxRedirects));
-            }
-        }
-
-        $request = $this->internalRequest;
-
-        if (in_array($this->internalResponse->getStatus(), array(302, 303))) {
-            $method = 'get';
-            $files = array();
-            $content = null;
-        } else {
-            $method = $request->getMethod();
-            $files = $request->getFiles();
-            $content = $request->getContent();
-        }
-
-        if ('get' === strtolower($method)) {
-            // Don't forward parameters for GET request as it should reach the redirection URI
-            $parameters = array();
-        } else {
-            $parameters = $request->getParameters();
-        }
-
-        $server = $request->getServer();
-        $server = $this->updateServerFromUri($server, $this->redirect);
-
-        $this->isMainRequest = false;
-
-        $response = $this->request($method, $this->redirect, $parameters, $files, $server, $content);
-
-        $this->isMainRequest = true;
-
-        return $response;
-    }
-
-    /**
-     * Restarts the client.
-     *
-     * It flushes history and all cookies.
-     *
-     * @api
-     */
-    public function restart()
-    {
-        $this->cookieJar->clear();
-        $this->history->clear();
-    }
-
-    /**
-     * Takes a URI and converts it to absolute if it is not already absolute.
-     *
-     * @param string $uri A URI
-     *
-     * @return string An absolute URI
-     */
-    protected function getAbsoluteUri($uri)
-    {
-        // already absolute?
-        if (0 === strpos($uri, 'http://') || 0 === strpos($uri, 'https://')) {
-            return $uri;
-        }
-
-        if (!$this->history->isEmpty()) {
-            $currentUri = $this->history->current()->getUri();
-        } else {
-            $currentUri = sprintf('http%s://%s/',
-                isset($this->server['HTTPS']) ? 's' : '',
-                isset($this->server['HTTP_HOST']) ? $this->server['HTTP_HOST'] : 'localhost'
-            );
-        }
-
-        // protocol relative URL
-        if (0 === strpos($uri, '//')) {
-            return parse_url($currentUri, PHP_URL_SCHEME).':'.$uri;
-        }
-
-        // anchor?
-        if (!$uri || '#' == $uri[0]) {
-            return preg_replace('/#.*?$/', '', $currentUri).$uri;
-        }
-
-        if ('/' !== $uri[0]) {
-            $path = parse_url($currentUri, PHP_URL_PATH);
-
-            if ('/' !== substr($path, -1)) {
-                $path = substr($path, 0, strrpos($path, '/') + 1);
-            }
-
-            $uri = $path.$uri;
-        }
-
-        return preg_replace('#^(.*?//[^/]+)\/.*$#', '$1', $currentUri).$uri;
-    }
-
-    /**
-     * Makes a request from a Request object directly.
-     *
-     * @param Request $request       A Request instance
-     * @param bool    $changeHistory Whether to update the history or not (only used internally for back(), forward(), and reload())
-     *
-     * @return Crawler
-     */
-    protected function requestFromRequest(Request $request, $changeHistory = true)
-    {
-        return $this->request($request->getMethod(), $request->getUri(), $request->getParameters(), $request->getFiles(), $request->getServer(), $request->getContent(), $changeHistory);
-    }
-
-    private function updateServerFromUri($server, $uri)
-    {
-        $server['HTTP_HOST'] = $this->extractHost($uri);
-        $scheme = parse_url($uri, PHP_URL_SCHEME);
-        $server['HTTPS'] = null === $scheme ? $server['HTTPS'] : 'https' == $scheme;
-        unset($server['HTTP_IF_NONE_MATCH'], $server['HTTP_IF_MODIFIED_SINCE']);
-
-        return $server;
-    }
-
-    private function extractHost($uri)
-    {
-        $host = parse_url($uri, PHP_URL_HOST);
-
-        if ($port = parse_url($uri, PHP_URL_PORT)) {
-            return $host.':'.$port;
-        }
-
-        return $host;
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Cookie.php b/core/vendor/symfony/browser-kit/Cookie.php
deleted file mode 100644
index e690cda..0000000
--- a/core/vendor/symfony/browser-kit/Cookie.php
+++ /dev/null
@@ -1,335 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit;
-
-/**
- * Cookie represents an HTTP cookie.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Cookie
-{
-    /**
-     * Handles dates as defined by RFC 2616 section 3.3.1, and also some other
-     * non-standard, but common formats.
-     *
-     * @var array
-     */
-    private static $dateFormats = array(
-        'D, d M Y H:i:s T',
-        'D, d-M-y H:i:s T',
-        'D, d-M-Y H:i:s T',
-        'D, d-m-y H:i:s T',
-        'D, d-m-Y H:i:s T',
-        'D M j G:i:s Y',
-        'D M d H:i:s Y T',
-    );
-
-    protected $name;
-    protected $value;
-    protected $expires;
-    protected $path;
-    protected $domain;
-    protected $secure;
-    protected $httponly;
-    protected $rawValue;
-
-    /**
-     * Sets a cookie.
-     *
-     * @param string $name         The cookie name
-     * @param string $value        The value of the cookie
-     * @param string $expires      The time the cookie expires
-     * @param string $path         The path on the server in which the cookie will be available on
-     * @param string $domain       The domain that the cookie is available
-     * @param bool   $secure       Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client
-     * @param bool   $httponly     The cookie httponly flag
-     * @param bool   $encodedValue Whether the value is encoded or not
-     *
-     * @api
-     */
-    public function __construct($name, $value, $expires = null, $path = null, $domain = '', $secure = false, $httponly = true, $encodedValue = false)
-    {
-        if ($encodedValue) {
-            $this->value = urldecode($value);
-            $this->rawValue = $value;
-        } else {
-            $this->value = $value;
-            $this->rawValue = urlencode($value);
-        }
-        $this->name = $name;
-        $this->path = empty($path) ? '/' : $path;
-        $this->domain = $domain;
-        $this->secure = (bool) $secure;
-        $this->httponly = (bool) $httponly;
-
-        if (null !== $expires) {
-            $timestampAsDateTime = \DateTime::createFromFormat('U', $expires);
-            if (false === $timestampAsDateTime) {
-                throw new \UnexpectedValueException(sprintf('The cookie expiration time "%s" is not valid.', $expires));
-            }
-
-            $this->expires = $timestampAsDateTime->getTimestamp();
-        }
-    }
-
-    /**
-     * Returns the HTTP representation of the Cookie.
-     *
-     * @return string The HTTP representation of the Cookie
-     *
-     * @throws \UnexpectedValueException
-     *
-     * @api
-     */
-    public function __toString()
-    {
-        $cookie = sprintf('%s=%s', $this->name, $this->rawValue);
-
-        if (null !== $this->expires) {
-            $dateTime = \DateTime::createFromFormat('U', $this->expires, new \DateTimeZone('GMT'));
-            $cookie .= '; expires='.str_replace('+0000', '', $dateTime->format(self::$dateFormats[0]));
-        }
-
-        if ('' !== $this->domain) {
-            $cookie .= '; domain='.$this->domain;
-        }
-
-        if ($this->path) {
-            $cookie .= '; path='.$this->path;
-        }
-
-        if ($this->secure) {
-            $cookie .= '; secure';
-        }
-
-        if ($this->httponly) {
-            $cookie .= '; httponly';
-        }
-
-        return $cookie;
-    }
-
-    /**
-     * Creates a Cookie instance from a Set-Cookie header value.
-     *
-     * @param string $cookie A Set-Cookie header value
-     * @param string $url    The base URL
-     *
-     * @return Cookie A Cookie instance
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public static function fromString($cookie, $url = null)
-    {
-        $parts = explode(';', $cookie);
-
-        if (false === strpos($parts[0], '=')) {
-            throw new \InvalidArgumentException(sprintf('The cookie string "%s" is not valid.', $parts[0]));
-        }
-
-        list($name, $value) = explode('=', array_shift($parts), 2);
-
-        $values = array(
-            'name' => trim($name),
-            'value' => trim($value),
-            'expires' => null,
-            'path' => '/',
-            'domain' => '',
-            'secure' => false,
-            'httponly' => false,
-            'passedRawValue' => true,
-        );
-
-        if (null !== $url) {
-            if ((false === $urlParts = parse_url($url)) || !isset($urlParts['host'])) {
-                throw new \InvalidArgumentException(sprintf('The URL "%s" is not valid.', $url));
-            }
-
-            $values['domain'] = $urlParts['host'];
-            $values['path'] = isset($urlParts['path']) ? substr($urlParts['path'], 0, strrpos($urlParts['path'], '/')) : '';
-        }
-
-        foreach ($parts as $part) {
-            $part = trim($part);
-
-            if ('secure' === strtolower($part)) {
-                // Ignore the secure flag if the original URI is not given or is not HTTPS
-                if (!$url || !isset($urlParts['scheme']) || 'https' != $urlParts['scheme']) {
-                    continue;
-                }
-
-                $values['secure'] = true;
-
-                continue;
-            }
-
-            if ('httponly' === strtolower($part)) {
-                $values['httponly'] = true;
-
-                continue;
-            }
-
-            if (2 === count($elements = explode('=', $part, 2))) {
-                if ('expires' === strtolower($elements[0])) {
-                    $elements[1] = self::parseDate($elements[1]);
-                }
-
-                $values[strtolower($elements[0])] = $elements[1];
-            }
-        }
-
-        return new static(
-            $values['name'],
-            $values['value'],
-            $values['expires'],
-            $values['path'],
-            $values['domain'],
-            $values['secure'],
-            $values['httponly'],
-            $values['passedRawValue']
-        );
-    }
-
-    private static function parseDate($dateValue)
-    {
-        // trim single quotes around date if present
-        if (($length = strlen($dateValue)) > 1 && "'" === $dateValue[0] && "'" === $dateValue[$length - 1]) {
-            $dateValue = substr($dateValue, 1, -1);
-        }
-
-        foreach (self::$dateFormats as $dateFormat) {
-            if (false !== $date = \DateTime::createFromFormat($dateFormat, $dateValue, new \DateTimeZone('GMT'))) {
-                return $date->getTimestamp();
-            }
-        }
-
-        // attempt a fallback for unusual formatting
-        if (false !== $date = date_create($dateValue, new \DateTimeZone('GMT'))) {
-            return $date->getTimestamp();
-        }
-
-        throw new \InvalidArgumentException(sprintf('Could not parse date "%s".', $dateValue));
-    }
-
-    /**
-     * Gets the name of the cookie.
-     *
-     * @return string The cookie name
-     *
-     * @api
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Gets the value of the cookie.
-     *
-     * @return string The cookie value
-     *
-     * @api
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Gets the raw value of the cookie.
-     *
-     * @return string The cookie value
-     *
-     * @api
-     */
-    public function getRawValue()
-    {
-        return $this->rawValue;
-    }
-
-    /**
-     * Gets the expires time of the cookie.
-     *
-     * @return string The cookie expires time
-     *
-     * @api
-     */
-    public function getExpiresTime()
-    {
-        return $this->expires;
-    }
-
-    /**
-     * Gets the path of the cookie.
-     *
-     * @return string The cookie path
-     *
-     * @api
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * Gets the domain of the cookie.
-     *
-     * @return string The cookie domain
-     *
-     * @api
-     */
-    public function getDomain()
-    {
-        return $this->domain;
-    }
-
-    /**
-     * Returns the secure flag of the cookie.
-     *
-     * @return bool The cookie secure flag
-     *
-     * @api
-     */
-    public function isSecure()
-    {
-        return $this->secure;
-    }
-
-    /**
-     * Returns the httponly flag of the cookie.
-     *
-     * @return bool The cookie httponly flag
-     *
-     * @api
-     */
-    public function isHttpOnly()
-    {
-        return $this->httponly;
-    }
-
-    /**
-     * Returns true if the cookie has expired.
-     *
-     * @return bool true if the cookie has expired, false otherwise
-     *
-     * @api
-     */
-    public function isExpired()
-    {
-        return null !== $this->expires && 0 !== $this->expires && $this->expires < time();
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/CookieJar.php b/core/vendor/symfony/browser-kit/CookieJar.php
deleted file mode 100644
index 1a36818..0000000
--- a/core/vendor/symfony/browser-kit/CookieJar.php
+++ /dev/null
@@ -1,265 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit;
-
-/**
- * CookieJar.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class CookieJar
-{
-    protected $cookieJar = array();
-
-    /**
-     * Sets a cookie.
-     *
-     * @param Cookie $cookie A Cookie instance
-     *
-     * @api
-     */
-    public function set(Cookie $cookie)
-    {
-        $this->cookieJar[$cookie->getDomain()][$cookie->getPath()][$cookie->getName()] = $cookie;
-    }
-
-    /**
-     * Gets a cookie by name.
-     *
-     * You should never use an empty domain, but if you do so,
-     * this method returns the first cookie for the given name/path
-     * (this behavior ensures a BC behavior with previous versions of
-     * Symfony).
-     *
-     * @param string $name   The cookie name
-     * @param string $path   The cookie path
-     * @param string $domain The cookie domain
-     *
-     * @return Cookie|null A Cookie instance or null if the cookie does not exist
-     *
-     * @api
-     */
-    public function get($name, $path = '/', $domain = null)
-    {
-        $this->flushExpiredCookies();
-
-        if (!empty($domain)) {
-            foreach ($this->cookieJar as $cookieDomain => $pathCookies) {
-                if ($cookieDomain) {
-                    $cookieDomain = '.'.ltrim($cookieDomain, '.');
-                    if ($cookieDomain != substr('.'.$domain, -strlen($cookieDomain))) {
-                        continue;
-                    }
-                }
-
-                foreach ($pathCookies as $cookiePath => $namedCookies) {
-                    if ($cookiePath != substr($path, 0, strlen($cookiePath))) {
-                        continue;
-                    }
-                    if (isset($namedCookies[$name])) {
-                        return $namedCookies[$name];
-                    }
-                }
-            }
-
-            return;
-        }
-
-        // avoid relying on this behavior that is mainly here for BC reasons
-        foreach ($this->cookieJar as $cookies) {
-            if (isset($cookies[$path][$name])) {
-                return $cookies[$path][$name];
-            }
-        }
-    }
-
-    /**
-     * Removes a cookie by name.
-     *
-     * You should never use an empty domain, but if you do so,
-     * all cookies for the given name/path expire (this behavior
-     * ensures a BC behavior with previous versions of Symfony).
-     *
-     * @param string $name   The cookie name
-     * @param string $path   The cookie path
-     * @param string $domain The cookie domain
-     *
-     * @api
-     */
-    public function expire($name, $path = '/', $domain = null)
-    {
-        if (null === $path) {
-            $path = '/';
-        }
-
-        if (empty($domain)) {
-            // an empty domain means any domain
-            // this should never happen but it allows for a better BC
-            $domains = array_keys($this->cookieJar);
-        } else {
-            $domains = array($domain);
-        }
-
-        foreach ($domains as $domain) {
-            unset($this->cookieJar[$domain][$path][$name]);
-
-            if (empty($this->cookieJar[$domain][$path])) {
-                unset($this->cookieJar[$domain][$path]);
-
-                if (empty($this->cookieJar[$domain])) {
-                    unset($this->cookieJar[$domain]);
-                }
-            }
-        }
-    }
-
-    /**
-     * Removes all the cookies from the jar.
-     *
-     * @api
-     */
-    public function clear()
-    {
-        $this->cookieJar = array();
-    }
-
-    /**
-     * Updates the cookie jar from a response Set-Cookie headers.
-     *
-     * @param array  $setCookies Set-Cookie headers from an HTTP response
-     * @param string $uri        The base URL
-     */
-    public function updateFromSetCookie(array $setCookies, $uri = null)
-    {
-        $cookies = array();
-
-        foreach ($setCookies as $cookie) {
-            foreach (explode(',', $cookie) as $i => $part) {
-                if (0 === $i || preg_match('/^(?P<token>\s*[0-9A-Za-z!#\$%\&\'\*\+\-\.^_`\|~]+)=/', $part)) {
-                    $cookies[] = ltrim($part);
-                } else {
-                    $cookies[count($cookies) - 1] .= ','.$part;
-                }
-            }
-        }
-
-        foreach ($cookies as $cookie) {
-            try {
-                $this->set(Cookie::fromString($cookie, $uri));
-            } catch (\InvalidArgumentException $e) {
-                // invalid cookies are just ignored
-            }
-        }
-    }
-
-    /**
-     * Updates the cookie jar from a Response object.
-     *
-     * @param Response $response A Response object
-     * @param string   $uri      The base URL
-     */
-    public function updateFromResponse(Response $response, $uri = null)
-    {
-        $this->updateFromSetCookie($response->getHeader('Set-Cookie', false), $uri);
-    }
-
-    /**
-     * Returns not yet expired cookies.
-     *
-     * @return Cookie[] An array of cookies
-     */
-    public function all()
-    {
-        $this->flushExpiredCookies();
-
-        $flattenedCookies = array();
-        foreach ($this->cookieJar as $path) {
-            foreach ($path as $cookies) {
-                foreach ($cookies as $cookie) {
-                    $flattenedCookies[] = $cookie;
-                }
-            }
-        }
-
-        return $flattenedCookies;
-    }
-
-    /**
-     * Returns not yet expired cookie values for the given URI.
-     *
-     * @param string $uri             A URI
-     * @param bool   $returnsRawValue Returns raw value or urldecoded value
-     *
-     * @return array An array of cookie values
-     */
-    public function allValues($uri, $returnsRawValue = false)
-    {
-        $this->flushExpiredCookies();
-
-        $parts = array_replace(array('path' => '/'), parse_url($uri));
-        $cookies = array();
-        foreach ($this->cookieJar as $domain => $pathCookies) {
-            if ($domain) {
-                $domain = '.'.ltrim($domain, '.');
-                if ($domain != substr('.'.$parts['host'], -strlen($domain))) {
-                    continue;
-                }
-            }
-
-            foreach ($pathCookies as $path => $namedCookies) {
-                if ($path != substr($parts['path'], 0, strlen($path))) {
-                    continue;
-                }
-
-                foreach ($namedCookies as $cookie) {
-                    if ($cookie->isSecure() && 'https' != $parts['scheme']) {
-                        continue;
-                    }
-
-                    $cookies[$cookie->getName()] = $returnsRawValue ? $cookie->getRawValue() : $cookie->getValue();
-                }
-            }
-        }
-
-        return $cookies;
-    }
-
-    /**
-     * Returns not yet expired raw cookie values for the given URI.
-     *
-     * @param string $uri A URI
-     *
-     * @return array An array of cookie values
-     */
-    public function allRawValues($uri)
-    {
-        return $this->allValues($uri, true);
-    }
-
-    /**
-     * Removes all expired cookies.
-     */
-    public function flushExpiredCookies()
-    {
-        foreach ($this->cookieJar as $domain => $pathCookies) {
-            foreach ($pathCookies as $path => $namedCookies) {
-                foreach ($namedCookies as $name => $cookie) {
-                    if ($cookie->isExpired()) {
-                        unset($this->cookieJar[$domain][$path][$name]);
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/History.php b/core/vendor/symfony/browser-kit/History.php
deleted file mode 100644
index 8e38fe5..0000000
--- a/core/vendor/symfony/browser-kit/History.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit;
-
-/**
- * History.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class History
-{
-    protected $stack = array();
-    protected $position = -1;
-
-    /**
-     * Clears the history.
-     */
-    public function clear()
-    {
-        $this->stack = array();
-        $this->position = -1;
-    }
-
-    /**
-     * Adds a Request to the history.
-     *
-     * @param Request $request A Request instance
-     */
-    public function add(Request $request)
-    {
-        $this->stack = array_slice($this->stack, 0, $this->position + 1);
-        $this->stack[] = clone $request;
-        $this->position = count($this->stack) - 1;
-    }
-
-    /**
-     * Returns true if the history is empty.
-     *
-     * @return bool true if the history is empty, false otherwise
-     */
-    public function isEmpty()
-    {
-        return count($this->stack) == 0;
-    }
-
-    /**
-     * Goes back in the history.
-     *
-     * @return Request A Request instance
-     *
-     * @throws \LogicException if the stack is already on the first page
-     */
-    public function back()
-    {
-        if ($this->position < 1) {
-            throw new \LogicException('You are already on the first page.');
-        }
-
-        return clone $this->stack[--$this->position];
-    }
-
-    /**
-     * Goes forward in the history.
-     *
-     * @return Request A Request instance
-     *
-     * @throws \LogicException if the stack is already on the last page
-     */
-    public function forward()
-    {
-        if ($this->position > count($this->stack) - 2) {
-            throw new \LogicException('You are already on the last page.');
-        }
-
-        return clone $this->stack[++$this->position];
-    }
-
-    /**
-     * Returns the current element in the history.
-     *
-     * @return Request A Request instance
-     *
-     * @throws \LogicException if the stack is empty
-     */
-    public function current()
-    {
-        if (-1 == $this->position) {
-            throw new \LogicException('The page history is empty.');
-        }
-
-        return clone $this->stack[$this->position];
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/LICENSE b/core/vendor/symfony/browser-kit/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/browser-kit/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/browser-kit/README.md b/core/vendor/symfony/browser-kit/README.md
deleted file mode 100644
index 3c0ee3a..0000000
--- a/core/vendor/symfony/browser-kit/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-BrowserKit Component
-====================
-
-BrowserKit simulates the behavior of a web browser.
-
-The component only provide an abstract client and does not provide any
-"default" backend for the HTTP layer.
-
-Resources
----------
-
-For a simple implementation of a browser based on an HTTP layer, have a look
-at [Goutte](https://github.com/fabpot/Goutte).
-
-For an implementation based on HttpKernelInterface, have a look at the
-[Client](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/Client.php)
-provided by the HttpKernel component.
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/BrowserKit/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/browser-kit/Request.php b/core/vendor/symfony/browser-kit/Request.php
deleted file mode 100644
index 6d381d2..0000000
--- a/core/vendor/symfony/browser-kit/Request.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit;
-
-/**
- * Request object.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Request
-{
-    protected $uri;
-    protected $method;
-    protected $parameters;
-    protected $files;
-    protected $cookies;
-    protected $server;
-    protected $content;
-
-    /**
-     * Constructor.
-     *
-     * @param string $uri        The request URI
-     * @param string $method     The HTTP method request
-     * @param array  $parameters The request parameters
-     * @param array  $files      An array of uploaded files
-     * @param array  $cookies    An array of cookies
-     * @param array  $server     An array of server parameters
-     * @param string $content    The raw body data
-     *
-     * @api
-     */
-    public function __construct($uri, $method, array $parameters = array(), array $files = array(), array $cookies = array(), array $server = array(), $content = null)
-    {
-        $this->uri = $uri;
-        $this->method = $method;
-        $this->parameters = $parameters;
-        $this->files = $files;
-        $this->cookies = $cookies;
-        $this->server = $server;
-        $this->content = $content;
-    }
-
-    /**
-     * Gets the request URI.
-     *
-     * @return string The request URI
-     *
-     * @api
-     */
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    /**
-     * Gets the request HTTP method.
-     *
-     * @return string The request HTTP method
-     *
-     * @api
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * Gets the request parameters.
-     *
-     * @return array The request parameters
-     *
-     * @api
-     */
-    public function getParameters()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Gets the request server files.
-     *
-     * @return array The request files
-     *
-     * @api
-     */
-    public function getFiles()
-    {
-        return $this->files;
-    }
-
-    /**
-     * Gets the request cookies.
-     *
-     * @return array The request cookies
-     *
-     * @api
-     */
-    public function getCookies()
-    {
-        return $this->cookies;
-    }
-
-    /**
-     * Gets the request server parameters.
-     *
-     * @return array The request server parameters
-     *
-     * @api
-     */
-    public function getServer()
-    {
-        return $this->server;
-    }
-
-    /**
-     * Gets the request raw body data.
-     *
-     * @return string The request raw body data.
-     *
-     * @api
-     */
-    public function getContent()
-    {
-        return $this->content;
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Response.php b/core/vendor/symfony/browser-kit/Response.php
deleted file mode 100644
index 7a7130b..0000000
--- a/core/vendor/symfony/browser-kit/Response.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit;
-
-/**
- * Response object.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Response
-{
-    protected $content;
-    protected $status;
-    protected $headers;
-
-    /**
-     * Constructor.
-     *
-     * The headers array is a set of key/value pairs. If a header is present multiple times
-     * then the value is an array of all the values.
-     *
-     * @param string $content The content of the response
-     * @param int    $status  The response status code
-     * @param array  $headers An array of headers
-     *
-     * @api
-     */
-    public function __construct($content = '', $status = 200, array $headers = array())
-    {
-        $this->content = $content;
-        $this->status = $status;
-        $this->headers = $headers;
-    }
-
-    /**
-     * Converts the response object to string containing all headers and the response content.
-     *
-     * @return string The response with headers and content
-     */
-    public function __toString()
-    {
-        $headers = '';
-        foreach ($this->headers as $name => $value) {
-            if (is_string($value)) {
-                $headers .= $this->buildHeader($name, $value);
-            } else {
-                foreach ($value as $headerValue) {
-                    $headers .= $this->buildHeader($name, $headerValue);
-                }
-            }
-        }
-
-        return $headers."\n".$this->content;
-    }
-
-    /**
-     * Returns the build header line.
-     *
-     * @param string $name  The header name
-     * @param string $value The header value
-     *
-     * @return string The built header line
-     */
-    protected function buildHeader($name, $value)
-    {
-        return sprintf("%s: %s\n", $name, $value);
-    }
-
-    /**
-     * Gets the response content.
-     *
-     * @return string The response content
-     *
-     * @api
-     */
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    /**
-     * Gets the response status code.
-     *
-     * @return int The response status code
-     *
-     * @api
-     */
-    public function getStatus()
-    {
-        return $this->status;
-    }
-
-    /**
-     * Gets the response headers.
-     *
-     * @return array The response headers
-     *
-     * @api
-     */
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    /**
-     * Gets a response header.
-     *
-     * @param string $header The header name
-     * @param bool   $first  Whether to return the first value or all header values
-     *
-     * @return string|array The first header value if $first is true, an array of values otherwise
-     */
-    public function getHeader($header, $first = true)
-    {
-        $normalizedHeader = str_replace('-', '_', strtolower($header));
-        foreach ($this->headers as $key => $value) {
-            if (str_replace('-', '_', strtolower($key)) === $normalizedHeader) {
-                if ($first) {
-                    return is_array($value) ? (count($value) ? $value[0] : '') : $value;
-                }
-
-                return is_array($value) ? $value : array($value);
-            }
-        }
-
-        return $first ? null : array();
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Tests/ClientTest.php b/core/vendor/symfony/browser-kit/Tests/ClientTest.php
deleted file mode 100644
index cc7db71..0000000
--- a/core/vendor/symfony/browser-kit/Tests/ClientTest.php
+++ /dev/null
@@ -1,639 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit\Tests;
-
-use Symfony\Component\BrowserKit\Client;
-use Symfony\Component\BrowserKit\History;
-use Symfony\Component\BrowserKit\CookieJar;
-use Symfony\Component\BrowserKit\Response;
-
-class SpecialResponse extends Response
-{
-}
-
-class TestClient extends Client
-{
-    protected $nextResponse = null;
-    protected $nextScript = null;
-
-    public function setNextResponse(Response $response)
-    {
-        $this->nextResponse = $response;
-    }
-
-    public function setNextScript($script)
-    {
-        $this->nextScript = $script;
-    }
-
-    protected function doRequest($request)
-    {
-        if (null === $this->nextResponse) {
-            return new Response();
-        }
-
-        $response = $this->nextResponse;
-        $this->nextResponse = null;
-
-        return $response;
-    }
-
-    protected function filterResponse($response)
-    {
-        if ($response instanceof SpecialResponse) {
-            return new Response($response->getContent(), $response->getStatus(), $response->getHeaders());
-        }
-
-        return $response;
-    }
-
-    protected function getScript($request)
-    {
-        $r = new \ReflectionClass('Symfony\Component\BrowserKit\Response');
-        $path = $r->getFileName();
-
-        return <<<EOF
-<?php
-
-require_once('$path');
-
-echo serialize($this->nextScript);
-EOF;
-    }
-}
-
-class ClientTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\BrowserKit\Client::getHistory
-     */
-    public function testGetHistory()
-    {
-        $client = new TestClient(array(), $history = new History());
-        $this->assertSame($history, $client->getHistory(), '->getHistory() returns the History');
-    }
-
-    /**
-     * @covers Symfony\Component\BrowserKit\Client::getCookieJar
-     */
-    public function testGetCookieJar()
-    {
-        $client = new TestClient(array(), null, $cookieJar = new CookieJar());
-        $this->assertSame($cookieJar, $client->getCookieJar(), '->getCookieJar() returns the CookieJar');
-    }
-
-    /**
-     * @covers Symfony\Component\BrowserKit\Client::getRequest
-     */
-    public function testGetRequest()
-    {
-        $client = new TestClient();
-        $client->request('GET', 'http://example.com/');
-
-        $this->assertEquals('http://example.com/', $client->getRequest()->getUri(), '->getCrawler() returns the Request of the last request');
-    }
-
-    public function testGetRequestWithIpAsHost()
-    {
-        $client = new TestClient();
-        $client->request('GET', 'https://example.com/foo', array(), array(), array('HTTP_HOST' => '127.0.0.1'));
-
-        $this->assertEquals('https://127.0.0.1/foo', $client->getRequest()->getUri());
-    }
-
-    public function testGetResponse()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('foo'));
-        $client->request('GET', 'http://example.com/');
-
-        $this->assertEquals('foo', $client->getResponse()->getContent(), '->getCrawler() returns the Response of the last request');
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Response', $client->getResponse(), '->getCrawler() returns the Response of the last request');
-    }
-
-    public function testGetInternalResponse()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new SpecialResponse('foo'));
-        $client->request('GET', 'http://example.com/');
-
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Response', $client->getInternalResponse());
-        $this->assertNotInstanceOf('Symfony\Component\BrowserKit\Tests\SpecialResponse', $client->getInternalResponse());
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Tests\SpecialResponse', $client->getResponse());
-    }
-
-    public function testGetContent()
-    {
-        $json = '{"jsonrpc":"2.0","method":"echo","id":7,"params":["Hello World"]}';
-
-        $client = new TestClient();
-        $client->request('POST', 'http://example.com/jsonrpc', array(), array(), array(), $json);
-        $this->assertEquals($json, $client->getRequest()->getContent());
-    }
-
-    /**
-     * @covers Symfony\Component\BrowserKit\Client::getCrawler
-     */
-    public function testGetCrawler()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('foo'));
-        $crawler = $client->request('GET', 'http://example.com/');
-
-        $this->assertSame($crawler, $client->getCrawler(), '->getCrawler() returns the Crawler of the last request');
-    }
-
-    public function testRequestHttpHeaders()
-    {
-        $client = new TestClient();
-        $client->request('GET', '/');
-        $headers = $client->getRequest()->getServer();
-        $this->assertEquals('localhost', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com');
-        $headers = $client->getRequest()->getServer();
-        $this->assertEquals('www.example.com', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header');
-
-        $client->request('GET', 'https://www.example.com');
-        $headers = $client->getRequest()->getServer();
-        $this->assertTrue($headers['HTTPS'], '->request() sets the HTTPS header');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com:8080');
-        $headers = $client->getRequest()->getServer();
-        $this->assertEquals('www.example.com:8080', $headers['HTTP_HOST'], '->request() sets the HTTP_HOST header with port');
-    }
-
-    public function testRequestURIConversion()
-    {
-        $client = new TestClient();
-        $client->request('GET', '/foo');
-        $this->assertEquals('http://localhost/foo', $client->getRequest()->getUri(), '->request() converts the URI to an absolute one');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com');
-        $this->assertEquals('http://www.example.com', $client->getRequest()->getUri(), '->request() does not change absolute URIs');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/');
-        $client->request('GET', '/foo');
-        $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo');
-        $client->request('GET', '#');
-        $this->assertEquals('http://www.example.com/foo#', $client->getRequest()->getUri(), '->request() uses the previous request for #');
-        $client->request('GET', '#');
-        $this->assertEquals('http://www.example.com/foo#', $client->getRequest()->getUri(), '->request() uses the previous request for #');
-        $client->request('GET', '#foo');
-        $this->assertEquals('http://www.example.com/foo#foo', $client->getRequest()->getUri(), '->request() uses the previous request for #');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo/');
-        $client->request('GET', 'bar');
-        $this->assertEquals('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $client->request('GET', 'bar');
-        $this->assertEquals('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo/');
-        $client->request('GET', 'http');
-        $this->assertEquals('http://www.example.com/foo/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo');
-        $client->request('GET', 'http/bar');
-        $this->assertEquals('http://www.example.com/http/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
-
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/');
-        $client->request('GET', 'http');
-        $this->assertEquals('http://www.example.com/http', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
-    }
-
-    public function testRequestURIConversionByServerHost()
-    {
-        $client = new TestClient();
-
-        $server = array('HTTP_HOST' => 'www.exampl+e.com:8000');
-        $parameters = array();
-        $files = array();
-
-        $client->request('GET', 'http://exampl+e.com', $parameters, $files, $server);
-        $this->assertEquals('http://www.exampl+e.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST to add port');
-
-        $client->request('GET', 'http://exampl+e.com:8888', $parameters, $files, $server);
-        $this->assertEquals('http://www.exampl+e.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST to modify existing port');
-
-        $client->request('GET', 'http://exampl+e.com:8000', $parameters, $files, $server);
-        $this->assertEquals('http://www.exampl+e.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST respects correct set port');
-    }
-
-    public function testRequestReferer()
-    {
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $client->request('GET', 'bar');
-        $server = $client->getRequest()->getServer();
-        $this->assertEquals('http://www.example.com/foo/foobar', $server['HTTP_REFERER'], '->request() sets the referer');
-    }
-
-    public function testRequestHistory()
-    {
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $client->request('GET', 'bar');
-
-        $this->assertEquals('http://www.example.com/foo/bar', $client->getHistory()->current()->getUri(), '->request() updates the History');
-        $this->assertEquals('http://www.example.com/foo/foobar', $client->getHistory()->back()->getUri(), '->request() updates the History');
-    }
-
-    public function testRequestCookies()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('<html><a href="/foo">foo</a></html>', 200, array('Set-Cookie' => 'foo=bar')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $this->assertEquals(array('foo' => 'bar'), $client->getCookieJar()->allValues('http://www.example.com/foo/foobar'), '->request() updates the CookieJar');
-
-        $client->request('GET', 'bar');
-        $this->assertEquals(array('foo' => 'bar'), $client->getCookieJar()->allValues('http://www.example.com/foo/foobar'), '->request() updates the CookieJar');
-    }
-
-    public function testRequestSecureCookies()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('<html><a href="/foo">foo</a></html>', 200, array('Set-Cookie' => 'foo=bar; path=/; secure')));
-        $client->request('GET', 'https://www.example.com/foo/foobar');
-
-        $this->assertTrue($client->getCookieJar()->get('foo', '/', 'www.example.com')->isSecure());
-    }
-
-    public function testClick()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('<html><a href="/foo">foo</a></html>'));
-        $crawler = $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $client->click($crawler->filter('a')->link());
-
-        $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() clicks on links');
-    }
-
-    public function testClickForm()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('<html><form action="/foo"><input type="submit" /></form></html>'));
-        $crawler = $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $client->click($crawler->filter('input')->form());
-
-        $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->click() Form submit forms');
-    }
-
-    public function testSubmit()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('<html><form action="/foo"><input type="submit" /></form></html>'));
-        $crawler = $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $client->submit($crawler->filter('input')->form());
-
-        $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms');
-    }
-
-    public function testSubmitPreserveAuth()
-    {
-        $client = new TestClient(array('PHP_AUTH_USER' => 'foo', 'PHP_AUTH_PW' => 'bar'));
-        $client->setNextResponse(new Response('<html><form action="/foo"><input type="submit" /></form></html>'));
-        $crawler = $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $server = $client->getRequest()->getServer();
-        $this->assertArrayHasKey('PHP_AUTH_USER', $server);
-        $this->assertEquals('foo', $server['PHP_AUTH_USER']);
-        $this->assertArrayHasKey('PHP_AUTH_PW', $server);
-        $this->assertEquals('bar', $server['PHP_AUTH_PW']);
-
-        $client->submit($crawler->filter('input')->form());
-
-        $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->submit() submit forms');
-
-        $server = $client->getRequest()->getServer();
-        $this->assertArrayHasKey('PHP_AUTH_USER', $server);
-        $this->assertEquals('foo', $server['PHP_AUTH_USER']);
-        $this->assertArrayHasKey('PHP_AUTH_PW', $server);
-        $this->assertEquals('bar', $server['PHP_AUTH_PW']);
-    }
-
-    public function testFollowRedirect()
-    {
-        $client = new TestClient();
-        $client->followRedirects(false);
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        try {
-            $client->followRedirect();
-            $this->fail('->followRedirect() throws a \LogicException if the request was not redirected');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('LogicException', $e, '->followRedirect() throws a \LogicException if the request was not redirected');
-        }
-
-        $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $client->followRedirect();
-
-        $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any');
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() automatically follows redirects if followRedirects is true');
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 201, array('Location' => 'http://www.example.com/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $this->assertEquals('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->followRedirect() does not follow redirect if HTTP Code is not 30x');
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 201, array('Location' => 'http://www.example.com/redirected')));
-        $client->followRedirects(false);
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        try {
-            $client->followRedirect();
-            $this->fail('->followRedirect() throws a \LogicException if the request did not respond with 30x HTTP Code');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('LogicException', $e, '->followRedirect() throws a \LogicException if the request did not respond with 30x HTTP Code');
-        }
-    }
-
-    public function testFollowRelativeRedirect()
-    {
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 302, array('Location' => '/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any');
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 302, array('Location' => '/redirected:1234')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $this->assertEquals('http://www.example.com/redirected:1234', $client->getRequest()->getUri(), '->followRedirect() follows relative urls');
-    }
-
-    public function testFollowRedirectWithMaxRedirects()
-    {
-        $client = new TestClient();
-        $client->setMaxRedirects(1);
-        $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any');
-
-        $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected2')));
-        try {
-            $client->followRedirect();
-            $this->fail('->followRedirect() throws a \LogicException if the request was redirected and limit of redirections was reached');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('LogicException', $e, '->followRedirect() throws a \LogicException if the request was redirected and limit of redirections was reached');
-        }
-
-        $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect if any');
-
-        $client->setNextResponse(new Response('', 302, array('Location' => '/redirected')));
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows relative URLs');
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 302, array('Location' => '//www.example.org/')));
-        $client->request('GET', 'https://www.example.com/');
-
-        $this->assertEquals('https://www.example.org/', $client->getRequest()->getUri(), '->followRedirect() follows protocol-relative URLs');
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected')));
-        $client->request('POST', 'http://www.example.com/foo/foobar', array('name' => 'bar'));
-
-        $this->assertEquals('get', $client->getRequest()->getMethod(), '->followRedirect() uses a get for 302');
-        $this->assertEquals(array(), $client->getRequest()->getParameters(), '->followRedirect() does not submit parameters when changing the method');
-    }
-
-    public function testFollowRedirectWithCookies()
-    {
-        $client = new TestClient();
-        $client->followRedirects(false);
-        $client->setNextResponse(new Response('', 302, array(
-            'Location' => 'http://www.example.com/redirected',
-            'Set-Cookie' => 'foo=bar',
-        )));
-        $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals(array(), $client->getRequest()->getCookies());
-        $client->followRedirect();
-        $this->assertEquals(array('foo' => 'bar'), $client->getRequest()->getCookies());
-    }
-
-    public function testFollowRedirectWithHeaders()
-    {
-        $headers = array(
-            'HTTP_HOST' => 'www.example.com',
-            'HTTP_USER_AGENT' => 'Symfony2 BrowserKit',
-            'CONTENT_TYPE' => 'application/vnd.custom+xml',
-            'HTTPS' => false,
-        );
-
-        $client = new TestClient();
-        $client->followRedirects(false);
-        $client->setNextResponse(new Response('', 302, array(
-            'Location' => 'http://www.example.com/redirected',
-        )));
-        $client->request('GET', 'http://www.example.com/', array(), array(), array(
-            'CONTENT_TYPE' => 'application/vnd.custom+xml',
-        ));
-
-        $this->assertEquals($headers, $client->getRequest()->getServer());
-
-        $client->followRedirect();
-
-        $headers['HTTP_REFERER'] = 'http://www.example.com/';
-
-        $this->assertEquals($headers, $client->getRequest()->getServer());
-    }
-
-    public function testFollowRedirectWithPort()
-    {
-        $headers = array(
-            'HTTP_HOST' => 'www.example.com:8080',
-            'HTTP_USER_AGENT' => 'Symfony2 BrowserKit',
-            'HTTPS' => false,
-            'HTTP_REFERER' => 'http://www.example.com:8080/',
-        );
-
-        $client = new TestClient();
-        $client->setNextResponse(new Response('', 302, array(
-            'Location' => 'http://www.example.com:8080/redirected',
-        )));
-        $client->request('GET', 'http://www.example.com:8080/');
-
-        $this->assertEquals($headers, $client->getRequest()->getServer());
-    }
-
-    public function testBack()
-    {
-        $client = new TestClient();
-
-        $parameters = array('foo' => 'bar');
-        $files = array('myfile.foo' => 'baz');
-        $server = array('X_TEST_FOO' => 'bazbar');
-        $content = 'foobarbaz';
-
-        $client->request('GET', 'http://www.example.com/foo/foobar', $parameters, $files, $server, $content);
-        $client->request('GET', 'http://www.example.com/foo');
-        $client->back();
-
-        $this->assertEquals('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->back() goes back in the history');
-        $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->back() keeps parameters');
-        $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->back() keeps files');
-        $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->back() keeps $_SERVER');
-        $this->assertEquals($content, $client->getRequest()->getContent(), '->back() keeps content');
-    }
-
-    public function testForward()
-    {
-        $client = new TestClient();
-
-        $parameters = array('foo' => 'bar');
-        $files = array('myfile.foo' => 'baz');
-        $server = array('X_TEST_FOO' => 'bazbar');
-        $content = 'foobarbaz';
-
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $client->request('GET', 'http://www.example.com/foo', $parameters, $files, $server, $content);
-        $client->back();
-        $client->forward();
-
-        $this->assertEquals('http://www.example.com/foo', $client->getRequest()->getUri(), '->forward() goes forward in the history');
-        $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->forward() keeps parameters');
-        $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->forward() keeps files');
-        $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->forward() keeps $_SERVER');
-        $this->assertEquals($content, $client->getRequest()->getContent(), '->forward() keeps content');
-    }
-
-    public function testReload()
-    {
-        $client = new TestClient();
-
-        $parameters = array('foo' => 'bar');
-        $files = array('myfile.foo' => 'baz');
-        $server = array('X_TEST_FOO' => 'bazbar');
-        $content = 'foobarbaz';
-
-        $client->request('GET', 'http://www.example.com/foo/foobar', $parameters, $files, $server, $content);
-        $client->reload();
-
-        $this->assertEquals('http://www.example.com/foo/foobar', $client->getRequest()->getUri(), '->reload() reloads the current page');
-        $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->reload() keeps parameters');
-        $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->reload() keeps files');
-        $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->reload() keeps $_SERVER');
-        $this->assertEquals($content, $client->getRequest()->getContent(), '->reload() keeps content');
-    }
-
-    public function testRestart()
-    {
-        $client = new TestClient();
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-        $client->restart();
-
-        $this->assertTrue($client->getHistory()->isEmpty(), '->restart() clears the history');
-        $this->assertEquals(array(), $client->getCookieJar()->all(), '->restart() clears the cookies');
-    }
-
-    public function testInsulatedRequests()
-    {
-        $client = new TestClient();
-        $client->insulate();
-        $client->setNextScript("new Symfony\Component\BrowserKit\Response('foobar')");
-        $client->request('GET', 'http://www.example.com/foo/foobar');
-
-        $this->assertEquals('foobar', $client->getResponse()->getContent(), '->insulate() process the request in a forked process');
-
-        $client->setNextScript("new Symfony\Component\BrowserKit\Response('foobar)");
-
-        try {
-            $client->request('GET', 'http://www.example.com/foo/foobar');
-            $this->fail('->request() throws a \RuntimeException if the script has an error');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('RuntimeException', $e, '->request() throws a \RuntimeException if the script has an error');
-        }
-    }
-
-    public function testGetServerParameter()
-    {
-        $client = new TestClient();
-        $this->assertEquals('localhost', $client->getServerParameter('HTTP_HOST'));
-        $this->assertEquals('Symfony2 BrowserKit', $client->getServerParameter('HTTP_USER_AGENT'));
-        $this->assertEquals('testvalue', $client->getServerParameter('testkey', 'testvalue'));
-    }
-
-    public function testSetServerParameter()
-    {
-        $client = new TestClient();
-
-        $this->assertEquals('localhost', $client->getServerParameter('HTTP_HOST'));
-        $this->assertEquals('Symfony2 BrowserKit', $client->getServerParameter('HTTP_USER_AGENT'));
-
-        $client->setServerParameter('HTTP_HOST', 'testhost');
-        $this->assertEquals('testhost', $client->getServerParameter('HTTP_HOST'));
-
-        $client->setServerParameter('HTTP_USER_AGENT', 'testua');
-        $this->assertEquals('testua', $client->getServerParameter('HTTP_USER_AGENT'));
-    }
-
-    public function testSetServerParameterInRequest()
-    {
-        $client = new TestClient();
-
-        $this->assertEquals('localhost', $client->getServerParameter('HTTP_HOST'));
-        $this->assertEquals('Symfony2 BrowserKit', $client->getServerParameter('HTTP_USER_AGENT'));
-
-        $client->request('GET', 'https://www.example.com/https/www.example.com', array(), array(), array(
-            'HTTP_HOST' => 'testhost',
-            'HTTP_USER_AGENT' => 'testua',
-            'HTTPS' => false,
-            'NEW_SERVER_KEY' => 'new-server-key-value',
-        ));
-
-        $this->assertEquals('localhost', $client->getServerParameter('HTTP_HOST'));
-        $this->assertEquals('Symfony2 BrowserKit', $client->getServerParameter('HTTP_USER_AGENT'));
-
-        $this->assertEquals('http://testhost/https/www.example.com', $client->getRequest()->getUri());
-
-        $server = $client->getRequest()->getServer();
-
-        $this->assertArrayHasKey('HTTP_USER_AGENT', $server);
-        $this->assertEquals('testua', $server['HTTP_USER_AGENT']);
-
-        $this->assertArrayHasKey('HTTP_HOST', $server);
-        $this->assertEquals('testhost', $server['HTTP_HOST']);
-
-        $this->assertArrayHasKey('NEW_SERVER_KEY', $server);
-        $this->assertEquals('new-server-key-value', $server['NEW_SERVER_KEY']);
-
-        $this->assertArrayHasKey('HTTPS', $server);
-        $this->assertFalse($server['HTTPS']);
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Tests/CookieJarTest.php b/core/vendor/symfony/browser-kit/Tests/CookieJarTest.php
deleted file mode 100644
index 4da4404..0000000
--- a/core/vendor/symfony/browser-kit/Tests/CookieJarTest.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit\Tests;
-
-use Symfony\Component\BrowserKit\CookieJar;
-use Symfony\Component\BrowserKit\Cookie;
-use Symfony\Component\BrowserKit\Response;
-
-class CookieJarTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSetGet()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie = new Cookie('foo', 'bar'));
-
-        $this->assertEquals($cookie, $cookieJar->get('foo'), '->set() sets a cookie');
-
-        $this->assertNull($cookieJar->get('foobar'), '->get() returns null if the cookie does not exist');
-
-        $cookieJar->set($cookie = new Cookie('foo', 'bar', time() - 86400));
-        $this->assertNull($cookieJar->get('foo'), '->get() returns null if the cookie is expired');
-    }
-
-    public function testExpire()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie = new Cookie('foo', 'bar'));
-        $cookieJar->expire('foo');
-        $this->assertNull($cookieJar->get('foo'), '->get() returns null if the cookie is expired');
-    }
-
-    public function testAll()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar'));
-        $cookieJar->set($cookie2 = new Cookie('bar', 'foo'));
-
-        $this->assertEquals(array($cookie1, $cookie2), $cookieJar->all(), '->all() returns all cookies in the jar');
-    }
-
-    public function testClear()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar'));
-        $cookieJar->set($cookie2 = new Cookie('bar', 'foo'));
-
-        $cookieJar->clear();
-
-        $this->assertEquals(array(), $cookieJar->all(), '->clear() expires all cookies');
-    }
-
-    public function testUpdateFromResponse()
-    {
-        $response = new Response('', 200, array('Set-Cookie' => 'foo=foo'));
-
-        $cookieJar = new CookieJar();
-        $cookieJar->updateFromResponse($response);
-
-        $this->assertEquals('foo', $cookieJar->get('foo')->getValue(), '->updateFromResponse() updates cookies from a Response objects');
-    }
-
-    public function testUpdateFromSetCookie()
-    {
-        $setCookies = array('foo=foo');
-
-        $cookieJar = new CookieJar();
-        $cookieJar->set(new Cookie('bar', 'bar'));
-        $cookieJar->updateFromSetCookie($setCookies);
-
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Cookie', $cookieJar->get('foo'));
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Cookie', $cookieJar->get('bar'));
-        $this->assertEquals('foo', $cookieJar->get('foo')->getValue(), '->updateFromSetCookie() updates cookies from a Set-Cookie header');
-        $this->assertEquals('bar', $cookieJar->get('bar')->getValue(), '->updateFromSetCookie() keeps existing cookies');
-    }
-
-    public function testUpdateFromEmptySetCookie()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->updateFromSetCookie(array(''));
-        $this->assertEquals(array(), $cookieJar->all());
-    }
-
-    public function testUpdateFromSetCookieWithMultipleCookies()
-    {
-        $timestamp = time() + 3600;
-        $date = gmdate('D, d M Y H:i:s \G\M\T', $timestamp);
-        $setCookies = array(sprintf('foo=foo; expires=%s; domain=.symfony.com; path=/, bar=bar; domain=.blog.symfony.com, PHPSESSID=id; expires=%s', $date, $date));
-
-        $cookieJar = new CookieJar();
-        $cookieJar->updateFromSetCookie($setCookies);
-
-        $fooCookie = $cookieJar->get('foo', '/', '.symfony.com');
-        $barCookie = $cookieJar->get('bar', '/', '.blog.symfony.com');
-        $phpCookie = $cookieJar->get('PHPSESSID');
-
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Cookie', $fooCookie);
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Cookie', $barCookie);
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Cookie', $phpCookie);
-        $this->assertEquals('foo', $fooCookie->getValue());
-        $this->assertEquals('bar', $barCookie->getValue());
-        $this->assertEquals('id', $phpCookie->getValue());
-        $this->assertEquals($timestamp, $fooCookie->getExpiresTime());
-        $this->assertNull($barCookie->getExpiresTime());
-        $this->assertEquals($timestamp, $phpCookie->getExpiresTime());
-    }
-
-    /**
-     * @dataProvider provideAllValuesValues
-     */
-    public function testAllValues($uri, $values)
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo_nothing', 'foo'));
-        $cookieJar->set($cookie2 = new Cookie('foo_expired', 'foo', time() - 86400));
-        $cookieJar->set($cookie3 = new Cookie('foo_path', 'foo', null, '/foo'));
-        $cookieJar->set($cookie4 = new Cookie('foo_domain', 'foo', null, '/', '.example.com'));
-        $cookieJar->set($cookie4 = new Cookie('foo_strict_domain', 'foo', null, '/', '.www4.example.com'));
-        $cookieJar->set($cookie5 = new Cookie('foo_secure', 'foo', null, '/', '', true));
-
-        $this->assertEquals($values, array_keys($cookieJar->allValues($uri)), '->allValues() returns the cookie for a given URI');
-    }
-
-    public function provideAllValuesValues()
-    {
-        return array(
-            array('http://www.example.com', array('foo_nothing', 'foo_domain')),
-            array('http://www.example.com/', array('foo_nothing', 'foo_domain')),
-            array('http://foo.example.com/', array('foo_nothing', 'foo_domain')),
-            array('http://foo.example1.com/', array('foo_nothing')),
-            array('https://foo.example.com/', array('foo_nothing', 'foo_secure', 'foo_domain')),
-            array('http://www.example.com/foo/bar', array('foo_nothing', 'foo_path', 'foo_domain')),
-            array('http://www4.example.com/', array('foo_nothing', 'foo_domain', 'foo_strict_domain')),
-        );
-    }
-
-    public function testEncodedValues()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie = new Cookie('foo', 'bar%3Dbaz', null, '/', '', false, true, true));
-
-        $this->assertEquals(array('foo' => 'bar=baz'), $cookieJar->allValues('/'));
-        $this->assertEquals(array('foo' => 'bar%3Dbaz'), $cookieJar->allRawValues('/'));
-    }
-
-    public function testCookieExpireWithSameNameButDifferentPaths()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar1', null, '/foo'));
-        $cookieJar->set($cookie2 = new Cookie('foo', 'bar2', null, '/bar'));
-        $cookieJar->expire('foo', '/foo');
-
-        $this->assertNull($cookieJar->get('foo'), '->get() returns null if the cookie is expired');
-        $this->assertEquals(array(), array_keys($cookieJar->allValues('http://example.com/')));
-        $this->assertEquals(array(), $cookieJar->allValues('http://example.com/foo'));
-        $this->assertEquals(array('foo' => 'bar2'), $cookieJar->allValues('http://example.com/bar'));
-    }
-
-    public function testCookieExpireWithNullPaths()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar1', null, '/'));
-        $cookieJar->expire('foo', null);
-
-        $this->assertNull($cookieJar->get('foo'), '->get() returns null if the cookie is expired');
-        $this->assertEquals(array(), array_keys($cookieJar->allValues('http://example.com/')));
-    }
-
-    public function testCookieWithSameNameButDifferentPaths()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar1', null, '/foo'));
-        $cookieJar->set($cookie2 = new Cookie('foo', 'bar2', null, '/bar'));
-
-        $this->assertEquals(array(), array_keys($cookieJar->allValues('http://example.com/')));
-        $this->assertEquals(array('foo' => 'bar1'), $cookieJar->allValues('http://example.com/foo'));
-        $this->assertEquals(array('foo' => 'bar2'), $cookieJar->allValues('http://example.com/bar'));
-    }
-
-    public function testCookieWithSameNameButDifferentDomains()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar1', null, '/', 'foo.example.com'));
-        $cookieJar->set($cookie2 = new Cookie('foo', 'bar2', null, '/', 'bar.example.com'));
-
-        $this->assertEquals(array(), array_keys($cookieJar->allValues('http://example.com/')));
-        $this->assertEquals(array('foo' => 'bar1'), $cookieJar->allValues('http://foo.example.com/'));
-        $this->assertEquals(array('foo' => 'bar2'), $cookieJar->allValues('http://bar.example.com/'));
-    }
-
-    public function testCookieGetWithSubdomain()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar', null, '/', '.example.com'));
-        $cookieJar->set($cookie2 = new Cookie('foo1', 'bar', null, '/', 'test.example.com'));
-
-        $this->assertEquals($cookie1, $cookieJar->get('foo', '/', 'foo.example.com'));
-        $this->assertEquals($cookie1, $cookieJar->get('foo', '/', 'example.com'));
-        $this->assertEquals($cookie2, $cookieJar->get('foo1', '/', 'test.example.com'));
-    }
-
-    public function testCookieGetWithSubdirectory()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set($cookie1 = new Cookie('foo', 'bar', null, '/test', '.example.com'));
-        $cookieJar->set($cookie2 = new Cookie('foo1', 'bar1', null, '/', '.example.com'));
-
-        $this->assertNull($cookieJar->get('foo', '/', '.example.com'));
-        $this->assertNull($cookieJar->get('foo', '/bar', '.example.com'));
-        $this->assertEquals($cookie1, $cookieJar->get('foo', '/test', 'example.com'));
-        $this->assertEquals($cookie2, $cookieJar->get('foo1', '/', 'example.com'));
-        $this->assertEquals($cookie2, $cookieJar->get('foo1', '/bar', 'example.com'));
-    }
-
-    public function testCookieWithWildcardDomain()
-    {
-        $cookieJar = new CookieJar();
-        $cookieJar->set(new Cookie('foo', 'bar', null, '/', '.example.com'));
-
-        $this->assertEquals(array('foo' => 'bar'), $cookieJar->allValues('http://www.example.com'));
-        $this->assertEmpty($cookieJar->allValues('http://wwwexample.com'));
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Tests/CookieTest.php b/core/vendor/symfony/browser-kit/Tests/CookieTest.php
deleted file mode 100644
index e1dd0df..0000000
--- a/core/vendor/symfony/browser-kit/Tests/CookieTest.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit\Tests;
-
-use Symfony\Component\BrowserKit\Cookie;
-
-class CookieTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getTestsForToFromString
-     */
-    public function testToFromString($cookie, $url = null)
-    {
-        $this->assertEquals($cookie, (string) Cookie::fromString($cookie, $url));
-    }
-
-    public function getTestsForToFromString()
-    {
-        return array(
-            array('foo=bar; path=/'),
-            array('foo=bar; path=/foo'),
-            array('foo=bar; domain=google.com; path=/'),
-            array('foo=bar; domain=example.com; path=/; secure', 'https://example.com/'),
-            array('foo=bar; path=/; httponly'),
-            array('foo=bar; domain=google.com; path=/foo; secure; httponly', 'https://google.com/'),
-            array('foo=bar=baz; path=/'),
-            array('foo=bar%3Dbaz; path=/'),
-        );
-    }
-
-    public function testFromStringIgnoreSecureFlag()
-    {
-        $this->assertFalse(Cookie::fromString('foo=bar; secure')->isSecure());
-        $this->assertFalse(Cookie::fromString('foo=bar; secure', 'http://example.com/')->isSecure());
-    }
-
-    /**
-     * @dataProvider getExpireCookieStrings
-     */
-    public function testFromStringAcceptsSeveralExpiresDateFormats($cookie)
-    {
-        $this->assertEquals(1596185377, Cookie::fromString($cookie)->getExpiresTime());
-    }
-
-    public function getExpireCookieStrings()
-    {
-        return array(
-            array('foo=bar; expires=Fri, 31-Jul-2020 08:49:37 GMT'),
-            array('foo=bar; expires=Fri, 31 Jul 2020 08:49:37 GMT'),
-            array('foo=bar; expires=Fri, 31-07-2020 08:49:37 GMT'),
-            array('foo=bar; expires=Fri, 31-07-20 08:49:37 GMT'),
-            array('foo=bar; expires=Friday, 31-Jul-20 08:49:37 GMT'),
-            array('foo=bar; expires=Fri Jul 31 08:49:37 2020'),
-            array('foo=bar; expires=\'Fri Jul 31 08:49:37 2020\''),
-            array('foo=bar; expires=Friday July 31st 2020, 08:49:37 GMT'),
-        );
-    }
-
-    public function testFromStringWithCapitalization()
-    {
-        $this->assertEquals('Foo=Bar; path=/', (string) Cookie::fromString('Foo=Bar'));
-        $this->assertEquals('foo=bar; expires=Fri, 31 Dec 2010 23:59:59 GMT; path=/', (string) Cookie::fromString('foo=bar; Expires=Fri, 31 Dec 2010 23:59:59 GMT'));
-        $this->assertEquals('foo=bar; domain=www.example.org; path=/; httponly', (string) Cookie::fromString('foo=bar; DOMAIN=www.example.org; HttpOnly'));
-    }
-
-    public function testFromStringWithUrl()
-    {
-        $this->assertEquals('foo=bar; domain=www.example.com; path=/', (string) Cookie::fromString('foo=bar', 'http://www.example.com/'));
-        $this->assertEquals('foo=bar; domain=www.example.com; path=/', (string) Cookie::fromString('foo=bar', 'http://www.example.com'));
-        $this->assertEquals('foo=bar; domain=www.example.com; path=/', (string) Cookie::fromString('foo=bar', 'http://www.example.com?foo'));
-        $this->assertEquals('foo=bar; domain=www.example.com; path=/foo', (string) Cookie::fromString('foo=bar', 'http://www.example.com/foo/bar'));
-        $this->assertEquals('foo=bar; domain=www.example.com; path=/', (string) Cookie::fromString('foo=bar; path=/', 'http://www.example.com/foo/bar'));
-        $this->assertEquals('foo=bar; domain=www.myotherexample.com; path=/', (string) Cookie::fromString('foo=bar; domain=www.myotherexample.com', 'http://www.example.com/'));
-    }
-
-    public function testFromStringThrowsAnExceptionIfCookieIsNotValid()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        Cookie::fromString('foo');
-    }
-
-    public function testFromStringThrowsAnExceptionIfCookieDateIsNotValid()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        Cookie::fromString('foo=bar; expires=Flursday July 31st 2020, 08:49:37 GMT');
-    }
-
-    public function testFromStringThrowsAnExceptionIfUrlIsNotValid()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        Cookie::fromString('foo=bar', 'foobar');
-    }
-
-    public function testGetName()
-    {
-        $cookie = new Cookie('foo', 'bar');
-        $this->assertEquals('foo', $cookie->getName(), '->getName() returns the cookie name');
-    }
-
-    public function testGetValue()
-    {
-        $cookie = new Cookie('foo', 'bar');
-        $this->assertEquals('bar', $cookie->getValue(), '->getValue() returns the cookie value');
-
-        $cookie = new Cookie('foo', 'bar%3Dbaz', null, '/', '', false, true, true); // raw value
-        $this->assertEquals('bar=baz', $cookie->getValue(), '->getValue() returns the urldecoded cookie value');
-    }
-
-    public function testGetRawValue()
-    {
-        $cookie = new Cookie('foo', 'bar=baz'); // decoded value
-        $this->assertEquals('bar%3Dbaz', $cookie->getRawValue(), '->getRawValue() returns the urlencoded cookie value');
-        $cookie = new Cookie('foo', 'bar%3Dbaz', null, '/', '', false, true, true); // raw value
-        $this->assertEquals('bar%3Dbaz', $cookie->getRawValue(), '->getRawValue() returns the non-urldecoded cookie value');
-    }
-
-    public function testGetPath()
-    {
-        $cookie = new Cookie('foo', 'bar', 0);
-        $this->assertEquals('/', $cookie->getPath(), '->getPath() returns / is no path is defined');
-
-        $cookie = new Cookie('foo', 'bar', 0, '/foo');
-        $this->assertEquals('/foo', $cookie->getPath(), '->getPath() returns the cookie path');
-    }
-
-    public function testGetDomain()
-    {
-        $cookie = new Cookie('foo', 'bar', 0, '/', 'foo.com');
-        $this->assertEquals('foo.com', $cookie->getDomain(), '->getDomain() returns the cookie domain');
-    }
-
-    public function testIsSecure()
-    {
-        $cookie = new Cookie('foo', 'bar');
-        $this->assertFalse($cookie->isSecure(), '->isSecure() returns false if not defined');
-
-        $cookie = new Cookie('foo', 'bar', 0, '/', 'foo.com', true);
-        $this->assertTrue($cookie->isSecure(), '->isSecure() returns the cookie secure flag');
-    }
-
-    public function testIsHttponly()
-    {
-        $cookie = new Cookie('foo', 'bar');
-        $this->assertTrue($cookie->isHttpOnly(), '->isHttpOnly() returns false if not defined');
-
-        $cookie = new Cookie('foo', 'bar', 0, '/', 'foo.com', false, true);
-        $this->assertTrue($cookie->isHttpOnly(), '->isHttpOnly() returns the cookie httponly flag');
-    }
-
-    public function testGetExpiresTime()
-    {
-        $cookie = new Cookie('foo', 'bar');
-        $this->assertNull($cookie->getExpiresTime(), '->getExpiresTime() returns the expires time');
-
-        $cookie = new Cookie('foo', 'bar', $time = time() - 86400);
-        $this->assertEquals($time, $cookie->getExpiresTime(), '->getExpiresTime() returns the expires time');
-    }
-
-    public function testIsExpired()
-    {
-        $cookie = new Cookie('foo', 'bar');
-        $this->assertFalse($cookie->isExpired(), '->isExpired() returns false when the cookie never expires (null as expires time)');
-
-        $cookie = new Cookie('foo', 'bar', time() - 86400);
-        $this->assertTrue($cookie->isExpired(), '->isExpired() returns true when the cookie is expired');
-
-        $cookie = new Cookie('foo', 'bar', 0);
-        $this->assertFalse($cookie->isExpired());
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Tests/HistoryTest.php b/core/vendor/symfony/browser-kit/Tests/HistoryTest.php
deleted file mode 100644
index d6d830e..0000000
--- a/core/vendor/symfony/browser-kit/Tests/HistoryTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit\Tests;
-
-use Symfony\Component\BrowserKit\History;
-use Symfony\Component\BrowserKit\Request;
-
-class HistoryTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAdd()
-    {
-        $history = new History();
-        $history->add(new Request('http://www.example1.com/', 'get'));
-        $this->assertSame('http://www.example1.com/', $history->current()->getUri(), '->add() adds a request to the history');
-
-        $history->add(new Request('http://www.example2.com/', 'get'));
-        $this->assertSame('http://www.example2.com/', $history->current()->getUri(), '->add() adds a request to the history');
-
-        $history->add(new Request('http://www.example3.com/', 'get'));
-        $history->back();
-        $history->add(new Request('http://www.example4.com/', 'get'));
-        $this->assertSame('http://www.example4.com/', $history->current()->getUri(), '->add() adds a request to the history');
-
-        $history->back();
-        $this->assertSame('http://www.example2.com/', $history->current()->getUri(), '->add() adds a request to the history');
-    }
-
-    public function testClearIsEmpty()
-    {
-        $history = new History();
-        $history->add(new Request('http://www.example.com/', 'get'));
-
-        $this->assertFalse($history->isEmpty(), '->isEmpty() returns false if the history is not empty');
-
-        $history->clear();
-
-        $this->assertTrue($history->isEmpty(), '->isEmpty() true if the history is empty');
-    }
-
-    public function testCurrent()
-    {
-        $history = new History();
-
-        try {
-            $history->current();
-            $this->fail('->current() throws a \LogicException if the history is empty');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('LogicException', $e, '->current() throws a \LogicException if the history is empty');
-        }
-
-        $history->add(new Request('http://www.example.com/', 'get'));
-
-        $this->assertSame('http://www.example.com/', $history->current()->getUri(), '->current() returns the current request in the history');
-    }
-
-    public function testBack()
-    {
-        $history = new History();
-        $history->add(new Request('http://www.example.com/', 'get'));
-
-        try {
-            $history->back();
-            $this->fail('->back() throws a \LogicException if the history is already on the first page');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('LogicException', $e, '->current() throws a \LogicException if the history is already on the first page');
-        }
-
-        $history->add(new Request('http://www.example1.com/', 'get'));
-        $history->back();
-
-        $this->assertSame('http://www.example.com/', $history->current()->getUri(), '->back() returns the previous request in the history');
-    }
-
-    public function testForward()
-    {
-        $history = new History();
-        $history->add(new Request('http://www.example.com/', 'get'));
-        $history->add(new Request('http://www.example1.com/', 'get'));
-
-        try {
-            $history->forward();
-            $this->fail('->forward() throws a \LogicException if the history is already on the last page');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('LogicException', $e, '->forward() throws a \LogicException if the history is already on the last page');
-        }
-
-        $history->back();
-        $history->forward();
-
-        $this->assertSame('http://www.example1.com/', $history->current()->getUri(), '->forward() returns the next request in the history');
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Tests/RequestTest.php b/core/vendor/symfony/browser-kit/Tests/RequestTest.php
deleted file mode 100644
index b75b5fb..0000000
--- a/core/vendor/symfony/browser-kit/Tests/RequestTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit\Tests;
-
-use Symfony\Component\BrowserKit\Request;
-
-class RequestTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetUri()
-    {
-        $request = new Request('http://www.example.com/', 'get');
-        $this->assertEquals('http://www.example.com/', $request->getUri(), '->getUri() returns the URI of the request');
-    }
-
-    public function testGetMethod()
-    {
-        $request = new Request('http://www.example.com/', 'get');
-        $this->assertEquals('get', $request->getMethod(), '->getMethod() returns the method of the request');
-    }
-
-    public function testGetParameters()
-    {
-        $request = new Request('http://www.example.com/', 'get', array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $request->getParameters(), '->getParameters() returns the parameters of the request');
-    }
-
-    public function testGetFiles()
-    {
-        $request = new Request('http://www.example.com/', 'get', array(), array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $request->getFiles(), '->getFiles() returns the uploaded files of the request');
-    }
-
-    public function testGetCookies()
-    {
-        $request = new Request('http://www.example.com/', 'get', array(), array(), array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $request->getCookies(), '->getCookies() returns the cookies of the request');
-    }
-
-    public function testGetServer()
-    {
-        $request = new Request('http://www.example.com/', 'get', array(), array(), array(), array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $request->getServer(), '->getServer() returns the server parameters of the request');
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/Tests/ResponseTest.php b/core/vendor/symfony/browser-kit/Tests/ResponseTest.php
deleted file mode 100644
index bfe3cd5..0000000
--- a/core/vendor/symfony/browser-kit/Tests/ResponseTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\BrowserKit\Tests;
-
-use Symfony\Component\BrowserKit\Response;
-
-class ResponseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetUri()
-    {
-        $response = new Response('foo');
-        $this->assertEquals('foo', $response->getContent(), '->getContent() returns the content of the response');
-    }
-
-    public function testGetStatus()
-    {
-        $response = new Response('foo', 304);
-        $this->assertEquals('304', $response->getStatus(), '->getStatus() returns the status of the response');
-    }
-
-    public function testGetHeaders()
-    {
-        $response = new Response('foo', 200, array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $response->getHeaders(), '->getHeaders() returns the headers of the response');
-    }
-
-    public function testGetHeader()
-    {
-        $response = new Response('foo', 200, array(
-            'Content-Type' => 'text/html',
-            'Set-Cookie' => array('foo=bar', 'bar=foo'),
-        ));
-
-        $this->assertEquals('text/html', $response->getHeader('Content-Type'), '->getHeader() returns a header of the response');
-        $this->assertEquals('text/html', $response->getHeader('content-type'), '->getHeader() returns a header of the response');
-        $this->assertEquals('text/html', $response->getHeader('content_type'), '->getHeader() returns a header of the response');
-        $this->assertEquals('foo=bar', $response->getHeader('Set-Cookie'), '->getHeader() returns the first header value');
-        $this->assertEquals(array('foo=bar', 'bar=foo'), $response->getHeader('Set-Cookie', false), '->getHeader() returns all header values if first is false');
-
-        $this->assertNull($response->getHeader('foo'), '->getHeader() returns null if the header is not defined');
-        $this->assertEquals(array(), $response->getHeader('foo', false), '->getHeader() returns an empty array if the header is not defined and first is set to false');
-    }
-
-    public function testMagicToString()
-    {
-        $response = new Response('foo', 304, array('foo' => 'bar'));
-
-        $this->assertEquals("foo: bar\n\nfoo", $response->__toString(), '->__toString() returns the headers and the content as a string');
-    }
-
-    public function testMagicToStringWithMultipleSetCookieHeader()
-    {
-        $headers = array(
-            'content-type' => 'text/html; charset=utf-8',
-            'set-cookie' => array('foo=bar', 'bar=foo'),
-        );
-
-        $expected = 'content-type: text/html; charset=utf-8'."\n";
-        $expected .= 'set-cookie: foo=bar'."\n";
-        $expected .= 'set-cookie: bar=foo'."\n\n";
-        $expected .= 'foo';
-
-        $response = new Response('foo', 304, $headers);
-
-        $this->assertEquals($expected, $response->__toString(), '->__toString() returns the headers and the content as a string');
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/composer.json b/core/vendor/symfony/browser-kit/composer.json
deleted file mode 100644
index 0cb629c..0000000
--- a/core/vendor/symfony/browser-kit/composer.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "name": "symfony/browser-kit",
-    "type": "library",
-    "description": "Symfony BrowserKit Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9",
-        "symfony/dom-crawler": "~2.0,>=2.0.5"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/process": "~2.0,>=2.0.5",
-        "symfony/css-selector": "~2.0,>=2.0.5"
-    },
-    "suggest": {
-        "symfony/process": ""
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\BrowserKit\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/browser-kit/phpunit.xml.dist b/core/vendor/symfony/browser-kit/phpunit.xml.dist
deleted file mode 100644
index d76b2b9..0000000
--- a/core/vendor/symfony/browser-kit/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony BrowserKit Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/class-loader/.gitignore b/core/vendor/symfony/class-loader/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/class-loader/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/class-loader/ApcClassLoader.php b/core/vendor/symfony/class-loader/ApcClassLoader.php
deleted file mode 100644
index 48de72f..0000000
--- a/core/vendor/symfony/class-loader/ApcClassLoader.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * ApcClassLoader implements a wrapping autoloader cached in APC for PHP 5.3.
- *
- * It expects an object implementing a findFile method to find the file. This
- * allows using it as a wrapper around the other loaders of the component (the
- * ClassLoader and the UniversalClassLoader for instance) but also around any
- * other autoloaders following this convention (the Composer one for instance).
- *
- *     // with a Symfony autoloader
- *     use Symfony\Component\ClassLoader\ClassLoader;
- *
- *     $loader = new ClassLoader();
- *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
- *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
- *
- *     // or with a Composer autoloader
- *     use Composer\Autoload\ClassLoader;
- *
- *     $loader = new ClassLoader();
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     $cachedLoader = new ApcClassLoader('my_prefix', $loader);
- *
- *     // activate the cached autoloader
- *     $cachedLoader->register();
- *
- *     // eventually deactivate the non-cached loader if it was registered previously
- *     // to be sure to use the cached one.
- *     $loader->unregister();
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Kris Wallsmith <kris@symfony.com>
- *
- * @api
- */
-class ApcClassLoader
-{
-    private $prefix;
-
-    /**
-     * A class loader object that implements the findFile() method.
-     *
-     * @var object
-     */
-    protected $decorated;
-
-    /**
-     * Constructor.
-     *
-     * @param string $prefix    The APC namespace prefix to use.
-     * @param object $decorated A class loader object that implements the findFile() method.
-     *
-     * @throws \RuntimeException
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function __construct($prefix, $decorated)
-    {
-        if (!extension_loaded('apc')) {
-            throw new \RuntimeException('Unable to use ApcClassLoader as APC is not enabled.');
-        }
-
-        if (!method_exists($decorated, 'findFile')) {
-            throw new \InvalidArgumentException('The class finder must implement a "findFile" method.');
-        }
-
-        $this->prefix = $prefix;
-        $this->decorated = $decorated;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            require $file;
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds a file by class name while caching lookups to APC.
-     *
-     * @param string $class A class name to resolve to file
-     *
-     * @return string|null
-     */
-    public function findFile($class)
-    {
-        if (false === $file = apc_fetch($this->prefix.$class)) {
-            apc_store($this->prefix.$class, $file = $this->decorated->findFile($class));
-        }
-
-        return $file;
-    }
-
-    /**
-     * Passes through all unknown calls onto the decorated object.
-     */
-    public function __call($method, $args)
-    {
-        return call_user_func_array(array($this->decorated, $method), $args);
-    }
-}
diff --git a/core/vendor/symfony/class-loader/ApcUniversalClassLoader.php b/core/vendor/symfony/class-loader/ApcUniversalClassLoader.php
deleted file mode 100644
index 898018a..0000000
--- a/core/vendor/symfony/class-loader/ApcUniversalClassLoader.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-@trigger_error('The '.__NAMESPACE__.'\ApcUniversalClassLoader class is deprecated since version 2.7 and will be removed in 3.0. Use the Symfony\Component\ClassLoader\ApcClassLoader class instead.', E_USER_DEPRECATED);
-
-/**
- * ApcUniversalClassLoader implements a "universal" autoloader cached in APC for PHP 5.3.
- *
- * It is able to load classes that use either:
- *
- *  * The technical interoperability standards for PHP 5.3 namespaces and
- *    class names (https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md);
- *
- *  * The PEAR naming convention for classes (http://pear.php.net/).
- *
- * Classes from a sub-namespace or a sub-hierarchy of PEAR classes can be
- * looked for in a list of locations to ease the vendoring of a sub-set of
- * classes for large projects.
- *
- * Example usage:
- *
- *     require 'vendor/symfony/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
- *     require 'vendor/symfony/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php';
- *
- *     use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
- *
- *     $loader = new ApcUniversalClassLoader('apc.prefix.');
- *
- *     // register classes with namespaces
- *     $loader->registerNamespaces(array(
- *         'Symfony\Component' => __DIR__.'/component',
- *         'Symfony' => __DIR__.'/framework',
- *         'Sensio' => array(__DIR__.'/src', __DIR__.'/vendor'),
- *     ));
- *
- *     // register a library using the PEAR naming convention
- *     $loader->registerPrefixes(array(
- *         'Swift_' => __DIR__.'/Swift',
- *     ));
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Kris Wallsmith <kris@symfony.com>
- *
- * @api
- *
- * @deprecated since version 2.4, to be removed in 3.0.
- *             Use the {@link ClassLoader} class instead.
- */
-class ApcUniversalClassLoader extends UniversalClassLoader
-{
-    private $prefix;
-
-    /**
-     * Constructor.
-     *
-     * @param string $prefix A prefix to create a namespace in APC
-     *
-     * @throws \RuntimeException
-     *
-     * @api
-     */
-    public function __construct($prefix)
-    {
-        if (!extension_loaded('apc')) {
-            throw new \RuntimeException('Unable to use ApcUniversalClassLoader as APC is not enabled.');
-        }
-
-        $this->prefix = $prefix;
-    }
-
-    /**
-     * Finds a file by class name while caching lookups to APC.
-     *
-     * @param string $class A class name to resolve to file
-     *
-     * @return string|null The path, if found
-     */
-    public function findFile($class)
-    {
-        if (false === $file = apc_fetch($this->prefix.$class)) {
-            apc_store($this->prefix.$class, $file = parent::findFile($class));
-        }
-
-        return $file;
-    }
-}
diff --git a/core/vendor/symfony/class-loader/CHANGELOG.md b/core/vendor/symfony/class-loader/CHANGELOG.md
deleted file mode 100644
index 64660a8..0000000
--- a/core/vendor/symfony/class-loader/CHANGELOG.md
+++ /dev/null
@@ -1,28 +0,0 @@
-CHANGELOG
-=========
-
-2.4.0
------
-
- * deprecated the UniversalClassLoader in favor of the ClassLoader class instead
- * deprecated the ApcUniversalClassLoader in favor of the ApcClassLoader class instead
- * deprecated the DebugUniversalClassLoader in favor of the DebugClassLoader class from the Debug component
- * deprecated the DebugClassLoader as it has been moved to the Debug component instead
-
-2.3.0
------
-
- * added a WinCacheClassLoader for WinCache
-
-2.1.0
------
-
- * added a DebugClassLoader able to wrap any autoloader providing a findFile
-   method
- * added a new ApcClassLoader and XcacheClassLoader using composition to wrap
-   other loaders
- * added a new ClassLoader which does not distinguish between namespaced and
-   pear-like classes (as the PEAR convention is a subset of PSR-0) and
-   supports using Composer's namespace maps
- * added a class map generator
- * added support for loading globally-installed PEAR packages
diff --git a/core/vendor/symfony/class-loader/ClassCollectionLoader.php b/core/vendor/symfony/class-loader/ClassCollectionLoader.php
deleted file mode 100644
index 6bf4ebd..0000000
--- a/core/vendor/symfony/class-loader/ClassCollectionLoader.php
+++ /dev/null
@@ -1,370 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * ClassCollectionLoader.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ClassCollectionLoader
-{
-    private static $loaded;
-    private static $seen;
-    private static $useTokenizer = true;
-
-    /**
-     * Loads a list of classes and caches them in one big file.
-     *
-     * @param array  $classes    An array of classes to load
-     * @param string $cacheDir   A cache directory
-     * @param string $name       The cache name prefix
-     * @param bool   $autoReload Whether to flush the cache when the cache is stale or not
-     * @param bool   $adaptive   Whether to remove already declared classes or not
-     * @param string $extension  File extension of the resulting file
-     *
-     * @throws \InvalidArgumentException When class can't be loaded
-     */
-    public static function load($classes, $cacheDir, $name, $autoReload, $adaptive = false, $extension = '.php')
-    {
-        // each $name can only be loaded once per PHP process
-        if (isset(self::$loaded[$name])) {
-            return;
-        }
-
-        self::$loaded[$name] = true;
-
-        $declared = array_merge(get_declared_classes(), get_declared_interfaces());
-        if (function_exists('get_declared_traits')) {
-            $declared = array_merge($declared, get_declared_traits());
-        }
-
-        if ($adaptive) {
-            // don't include already declared classes
-            $classes = array_diff($classes, $declared);
-
-            // the cache is different depending on which classes are already declared
-            $name = $name.'-'.substr(hash('sha256', implode('|', $classes)), 0, 5);
-        }
-
-        $classes = array_unique($classes);
-
-        $cache = $cacheDir.'/'.$name.$extension;
-
-        // auto-reload
-        $reload = false;
-        if ($autoReload) {
-            $metadata = $cache.'.meta';
-            if (!is_file($metadata) || !is_file($cache)) {
-                $reload = true;
-            } else {
-                $time = filemtime($cache);
-                $meta = unserialize(file_get_contents($metadata));
-
-                sort($meta[1]);
-                sort($classes);
-
-                if ($meta[1] != $classes) {
-                    $reload = true;
-                } else {
-                    foreach ($meta[0] as $resource) {
-                        if (!is_file($resource) || filemtime($resource) > $time) {
-                            $reload = true;
-
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!$reload && is_file($cache)) {
-            require_once $cache;
-
-            return;
-        }
-
-        $files = array();
-        $content = '';
-        foreach (self::getOrderedClasses($classes) as $class) {
-            if (in_array($class->getName(), $declared)) {
-                continue;
-            }
-
-            $files[] = $class->getFileName();
-
-            $c = preg_replace(array('/^\s*<\?php/', '/\?>\s*$/'), '', file_get_contents($class->getFileName()));
-
-            // fakes namespace declaration for global code
-            if (!$class->inNamespace()) {
-                $c = "\nnamespace\n{\n".$c."\n}\n";
-            }
-
-            $c = self::fixNamespaceDeclarations('<?php '.$c);
-            $c = preg_replace('/^\s*<\?php/', '', $c);
-
-            $content .= $c;
-        }
-
-        // cache the core classes
-        if (!is_dir(dirname($cache))) {
-            mkdir(dirname($cache), 0777, true);
-        }
-        self::writeCacheFile($cache, '<?php '.$content);
-
-        if ($autoReload) {
-            // save the resources
-            self::writeCacheFile($metadata, serialize(array($files, $classes)));
-        }
-    }
-
-    /**
-     * Adds brackets around each namespace if it's not already the case.
-     *
-     * @param string $source Namespace string
-     *
-     * @return string Namespaces with brackets
-     */
-    public static function fixNamespaceDeclarations($source)
-    {
-        if (!function_exists('token_get_all') || !self::$useTokenizer) {
-            if (preg_match('/namespace(.*?)\s*;/', $source)) {
-                $source = preg_replace('/namespace(.*?)\s*;/', "namespace$1\n{", $source)."}\n";
-            }
-
-            return $source;
-        }
-
-        $rawChunk = '';
-        $output = '';
-        $inNamespace = false;
-        $tokens = token_get_all($source);
-
-        for (reset($tokens); false !== $token = current($tokens); next($tokens)) {
-            if (is_string($token)) {
-                $rawChunk .= $token;
-            } elseif (in_array($token[0], array(T_COMMENT, T_DOC_COMMENT))) {
-                // strip comments
-                continue;
-            } elseif (T_NAMESPACE === $token[0]) {
-                if ($inNamespace) {
-                    $rawChunk .= "}\n";
-                }
-                $rawChunk .= $token[1];
-
-                // namespace name and whitespaces
-                while (($t = next($tokens)) && is_array($t) && in_array($t[0], array(T_WHITESPACE, T_NS_SEPARATOR, T_STRING))) {
-                    $rawChunk .= $t[1];
-                }
-                if ('{' === $t) {
-                    $inNamespace = false;
-                    prev($tokens);
-                } else {
-                    $rawChunk = rtrim($rawChunk)."\n{";
-                    $inNamespace = true;
-                }
-            } elseif (T_START_HEREDOC === $token[0]) {
-                $output .= self::compressCode($rawChunk).$token[1];
-                do {
-                    $token = next($tokens);
-                    $output .= is_string($token) ? $token : $token[1];
-                } while ($token[0] !== T_END_HEREDOC);
-                $output .= "\n";
-                $rawChunk = '';
-            } elseif (T_CONSTANT_ENCAPSED_STRING === $token[0]) {
-                $output .= self::compressCode($rawChunk).$token[1];
-                $rawChunk = '';
-            } else {
-                $rawChunk .= $token[1];
-            }
-        }
-
-        if ($inNamespace) {
-            $rawChunk .= "}\n";
-        }
-
-        return $output.self::compressCode($rawChunk);
-    }
-
-    /**
-     * This method is only useful for testing.
-     */
-    public static function enableTokenizer($bool)
-    {
-        self::$useTokenizer = (bool) $bool;
-    }
-
-    /**
-     * Strips leading & trailing ws, multiple EOL, multiple ws.
-     *
-     * @param string $code Original PHP code
-     *
-     * @return string compressed code
-     */
-    private static function compressCode($code)
-    {
-        return preg_replace(
-            array('/^\s+/m', '/\s+$/m', '/([\n\r]+ *[\n\r]+)+/', '/[ \t]+/'),
-            array('', '', "\n", ' '),
-            $code
-        );
-    }
-
-    /**
-     * Writes a cache file.
-     *
-     * @param string $file    Filename
-     * @param string $content Temporary file content
-     *
-     * @throws \RuntimeException when a cache file cannot be written
-     */
-    private static function writeCacheFile($file, $content)
-    {
-        $tmpFile = tempnam(dirname($file), basename($file));
-        if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) {
-            @chmod($file, 0666 & ~umask());
-
-            return;
-        }
-
-        throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $file));
-    }
-
-    /**
-     * Gets an ordered array of passed classes including all their dependencies.
-     *
-     * @param array $classes
-     *
-     * @return \ReflectionClass[] An array of sorted \ReflectionClass instances (dependencies added if needed)
-     *
-     * @throws \InvalidArgumentException When a class can't be loaded
-     */
-    private static function getOrderedClasses(array $classes)
-    {
-        $map = array();
-        self::$seen = array();
-        foreach ($classes as $class) {
-            try {
-                $reflectionClass = new \ReflectionClass($class);
-            } catch (\ReflectionException $e) {
-                throw new \InvalidArgumentException(sprintf('Unable to load class "%s"', $class));
-            }
-
-            $map = array_merge($map, self::getClassHierarchy($reflectionClass));
-        }
-
-        return $map;
-    }
-
-    private static function getClassHierarchy(\ReflectionClass $class)
-    {
-        if (isset(self::$seen[$class->getName()])) {
-            return array();
-        }
-
-        self::$seen[$class->getName()] = true;
-
-        $classes = array($class);
-        $parent = $class;
-        while (($parent = $parent->getParentClass()) && $parent->isUserDefined() && !isset(self::$seen[$parent->getName()])) {
-            self::$seen[$parent->getName()] = true;
-
-            array_unshift($classes, $parent);
-        }
-
-        $traits = array();
-
-        if (function_exists('get_declared_traits')) {
-            foreach ($classes as $c) {
-                foreach (self::resolveDependencies(self::computeTraitDeps($c), $c) as $trait) {
-                    if ($trait !== $c) {
-                        $traits[] = $trait;
-                    }
-                }
-            }
-        }
-
-        return array_merge(self::getInterfaces($class), $traits, $classes);
-    }
-
-    private static function getInterfaces(\ReflectionClass $class)
-    {
-        $classes = array();
-
-        foreach ($class->getInterfaces() as $interface) {
-            $classes = array_merge($classes, self::getInterfaces($interface));
-        }
-
-        if ($class->isUserDefined() && $class->isInterface() && !isset(self::$seen[$class->getName()])) {
-            self::$seen[$class->getName()] = true;
-
-            $classes[] = $class;
-        }
-
-        return $classes;
-    }
-
-    private static function computeTraitDeps(\ReflectionClass $class)
-    {
-        $traits = $class->getTraits();
-        $deps = array($class->getName() => $traits);
-        while ($trait = array_pop($traits)) {
-            if ($trait->isUserDefined() && !isset(self::$seen[$trait->getName()])) {
-                self::$seen[$trait->getName()] = true;
-                $traitDeps = $trait->getTraits();
-                $deps[$trait->getName()] = $traitDeps;
-                $traits = array_merge($traits, $traitDeps);
-            }
-        }
-
-        return $deps;
-    }
-
-    /**
-     * Dependencies resolution.
-     *
-     * This function does not check for circular dependencies as it should never
-     * occur with PHP traits.
-     *
-     * @param array            $tree       The dependency tree
-     * @param \ReflectionClass $node       The node
-     * @param \ArrayObject     $resolved   An array of already resolved dependencies
-     * @param \ArrayObject     $unresolved An array of dependencies to be resolved
-     *
-     * @return \ArrayObject The dependencies for the given node
-     *
-     * @throws \RuntimeException if a circular dependency is detected
-     */
-    private static function resolveDependencies(array $tree, $node, \ArrayObject $resolved = null, \ArrayObject $unresolved = null)
-    {
-        if (null === $resolved) {
-            $resolved = new \ArrayObject();
-        }
-        if (null === $unresolved) {
-            $unresolved = new \ArrayObject();
-        }
-        $nodeName = $node->getName();
-
-        if (isset($tree[$nodeName])) {
-            $unresolved[$nodeName] = $node;
-            foreach ($tree[$nodeName] as $dependency) {
-                if (!$resolved->offsetExists($dependency->getName())) {
-                    self::resolveDependencies($tree, $dependency, $resolved, $unresolved);
-                }
-            }
-            $resolved[$nodeName] = $node;
-            unset($unresolved[$nodeName]);
-        }
-
-        return $resolved;
-    }
-}
diff --git a/core/vendor/symfony/class-loader/ClassLoader.php b/core/vendor/symfony/class-loader/ClassLoader.php
deleted file mode 100644
index 6fcbb06..0000000
--- a/core/vendor/symfony/class-loader/ClassLoader.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * ClassLoader implements an PSR-0 class loader.
- *
- * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
- *
- *     $loader = new ClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
- *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- *     // to enable searching the include path (e.g. for PEAR packages)
- *     $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class ClassLoader
-{
-    private $prefixes = array();
-    private $fallbackDirs = array();
-    private $useIncludePath = false;
-
-    /**
-     * Returns prefixes.
-     *
-     * @return array
-     */
-    public function getPrefixes()
-    {
-        return $this->prefixes;
-    }
-
-    /**
-     * Returns fallback directories.
-     *
-     * @return array
-     */
-    public function getFallbackDirs()
-    {
-        return $this->fallbackDirs;
-    }
-
-    /**
-     * Adds prefixes.
-     *
-     * @param array $prefixes Prefixes to add
-     */
-    public function addPrefixes(array $prefixes)
-    {
-        foreach ($prefixes as $prefix => $path) {
-            $this->addPrefix($prefix, $path);
-        }
-    }
-
-    /**
-     * Registers a set of classes.
-     *
-     * @param string       $prefix The classes prefix
-     * @param array|string $paths  The location(s) of the classes
-     */
-    public function addPrefix($prefix, $paths)
-    {
-        if (!$prefix) {
-            foreach ((array) $paths as $path) {
-                $this->fallbackDirs[] = $path;
-            }
-
-            return;
-        }
-        if (isset($this->prefixes[$prefix])) {
-            $this->prefixes[$prefix] = array_merge(
-                $this->prefixes[$prefix],
-                (array) $paths
-            );
-        } else {
-            $this->prefixes[$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Turns on searching the include for class files.
-     *
-     * @param bool $useIncludePath
-     */
-    public function setUseIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = (bool) $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            require $file;
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|null The path, if found
-     */
-    public function findFile($class)
-    {
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
-            $className = substr($class, $pos + 1);
-        } else {
-            // PEAR-like class name
-            $classPath = null;
-            $className = $class;
-        }
-
-        $classPath .= str_replace('_', DIRECTORY_SEPARATOR, $className).'.php';
-
-        foreach ($this->prefixes as $prefix => $dirs) {
-            if ($class === strstr($class, $prefix)) {
-                foreach ($dirs as $dir) {
-                    if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
-                        return $dir.DIRECTORY_SEPARATOR.$classPath;
-                    }
-                }
-            }
-        }
-
-        foreach ($this->fallbackDirs as $dir) {
-            if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
-                return $dir.DIRECTORY_SEPARATOR.$classPath;
-            }
-        }
-
-        if ($this->useIncludePath && $file = stream_resolve_include_path($classPath)) {
-            return $file;
-        }
-    }
-}
diff --git a/core/vendor/symfony/class-loader/ClassMapGenerator.php b/core/vendor/symfony/class-loader/ClassMapGenerator.php
deleted file mode 100644
index 112bee8..0000000
--- a/core/vendor/symfony/class-loader/ClassMapGenerator.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-if (!defined('SYMFONY_TRAIT')) {
-    if (PHP_VERSION_ID >= 50400) {
-        define('SYMFONY_TRAIT', T_TRAIT);
-    } else {
-        define('SYMFONY_TRAIT', 0);
-    }
-}
-
-/**
- * ClassMapGenerator.
- *
- * @author Gyula Sallai <salla016@gmail.com>
- */
-class ClassMapGenerator
-{
-    /**
-     * Generate a class map file.
-     *
-     * @param array|string $dirs Directories or a single path to search in
-     * @param string       $file The name of the class map file
-     */
-    public static function dump($dirs, $file)
-    {
-        $dirs = (array) $dirs;
-        $maps = array();
-
-        foreach ($dirs as $dir) {
-            $maps = array_merge($maps, static::createMap($dir));
-        }
-
-        file_put_contents($file, sprintf('<?php return %s;', var_export($maps, true)));
-    }
-
-    /**
-     * Iterate over all files in the given directory searching for classes.
-     *
-     * @param \Iterator|string $dir The directory to search in or an iterator
-     *
-     * @return array A class map array
-     */
-    public static function createMap($dir)
-    {
-        if (is_string($dir)) {
-            $dir = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir));
-        }
-
-        $map = array();
-
-        foreach ($dir as $file) {
-            if (!$file->isFile()) {
-                continue;
-            }
-
-            $path = $file->getRealPath();
-
-            if (pathinfo($path, PATHINFO_EXTENSION) !== 'php') {
-                continue;
-            }
-
-            $classes = self::findClasses($path);
-
-            foreach ($classes as $class) {
-                $map[$class] = $path;
-            }
-        }
-
-        return $map;
-    }
-
-    /**
-     * Extract the classes in the given file.
-     *
-     * @param string $path The file to check
-     *
-     * @return array The found classes
-     */
-    private static function findClasses($path)
-    {
-        $contents = file_get_contents($path);
-        $tokens = token_get_all($contents);
-
-        $classes = array();
-
-        $namespace = '';
-        for ($i = 0, $max = count($tokens); $i < $max; ++$i) {
-            $token = $tokens[$i];
-
-            if (is_string($token)) {
-                continue;
-            }
-
-            $class = '';
-
-            switch ($token[0]) {
-                case T_NAMESPACE:
-                    $namespace = '';
-                    // If there is a namespace, extract it
-                    while (($t = $tokens[++$i]) && is_array($t)) {
-                        if (in_array($t[0], array(T_STRING, T_NS_SEPARATOR))) {
-                            $namespace .= $t[1];
-                        }
-                    }
-                    $namespace .= '\\';
-                    break;
-                case T_CLASS:
-                case T_INTERFACE:
-                case SYMFONY_TRAIT:
-                    // Find the classname
-                    while (($t = $tokens[++$i]) && is_array($t)) {
-                        if (T_STRING === $t[0]) {
-                            $class .= $t[1];
-                        } elseif ($class !== '' && T_WHITESPACE == $t[0]) {
-                            break;
-                        }
-                    }
-
-                    $classes[] = ltrim($namespace.$class, '\\');
-                    break;
-                default:
-                    break;
-            }
-        }
-
-        return $classes;
-    }
-}
diff --git a/core/vendor/symfony/class-loader/DebugClassLoader.php b/core/vendor/symfony/class-loader/DebugClassLoader.php
deleted file mode 100644
index b3eb89a..0000000
--- a/core/vendor/symfony/class-loader/DebugClassLoader.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-@trigger_error('The '.__NAMESPACE__.'\DebugClassLoader class is deprecated since version 2.4 and will be removed in 3.0. Use the Symfony\Component\Debug\DebugClassLoader class instead.', E_USER_DEPRECATED);
-
-/**
- * Autoloader checking if the class is really defined in the file found.
- *
- * The DebugClassLoader will wrap all registered autoloaders providing a
- * findFile method and will throw an exception if a file is found but does
- * not declare the class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Christophe Coevoet <stof@notk.org>
- *
- * @api
- *
- * @deprecated since version 2.4, to be removed in 3.0.
- *             Use {@link \Symfony\Component\Debug\DebugClassLoader} instead.
- */
-class DebugClassLoader
-{
-    private $classFinder;
-
-    /**
-     * Constructor.
-     *
-     * @param object $classFinder
-     *
-     * @api
-     */
-    public function __construct($classFinder)
-    {
-        $this->classFinder = $classFinder;
-    }
-
-    /**
-     * Gets the wrapped class loader.
-     *
-     * @return object a class loader instance
-     */
-    public function getClassLoader()
-    {
-        return $this->classFinder;
-    }
-
-    /**
-     * Replaces all autoloaders implementing a findFile method by a DebugClassLoader wrapper.
-     */
-    public static function enable()
-    {
-        if (!is_array($functions = spl_autoload_functions())) {
-            return;
-        }
-
-        foreach ($functions as $function) {
-            spl_autoload_unregister($function);
-        }
-
-        foreach ($functions as $function) {
-            if (is_array($function) && !$function[0] instanceof self && method_exists($function[0], 'findFile')) {
-                $function = array(new static($function[0]), 'loadClass');
-            }
-
-            spl_autoload_register($function);
-        }
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Finds a file by class name.
-     *
-     * @param string $class A class name to resolve to file
-     *
-     * @return string|null
-     */
-    public function findFile($class)
-    {
-        return $this->classFinder->findFile($class);
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     *
-     * @throws \RuntimeException
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->classFinder->findFile($class)) {
-            require $file;
-
-            if (!class_exists($class, false) && !interface_exists($class, false) && (!function_exists('trait_exists') || !trait_exists($class, false))) {
-                if (false !== strpos($class, '/')) {
-                    throw new \RuntimeException(sprintf('Trying to autoload a class with an invalid name "%s". Be careful that the namespace separator is "\" in PHP, not "/".', $class));
-                }
-
-                throw new \RuntimeException(sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file));
-            }
-
-            return true;
-        }
-    }
-}
diff --git a/core/vendor/symfony/class-loader/DebugUniversalClassLoader.php b/core/vendor/symfony/class-loader/DebugUniversalClassLoader.php
deleted file mode 100644
index 807bcd1..0000000
--- a/core/vendor/symfony/class-loader/DebugUniversalClassLoader.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-@trigger_error('The '.__NAMESPACE__.'\DebugUniversalClassLoader class is deprecated since version 2.4 and will be removed in 3.0. Use the Symfony\Component\Debug\DebugClassLoader class instead.', E_USER_DEPRECATED);
-
-/**
- * Checks that the class is actually declared in the included file.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.4, to be removed in 3.0.
- *             Use the {@link \Symfony\Component\Debug\DebugClassLoader} class instead.
- */
-class DebugUniversalClassLoader extends UniversalClassLoader
-{
-    /**
-     * Replaces all regular UniversalClassLoader instances by a DebugUniversalClassLoader ones.
-     */
-    public static function enable()
-    {
-        if (!is_array($functions = spl_autoload_functions())) {
-            return;
-        }
-
-        foreach ($functions as $function) {
-            spl_autoload_unregister($function);
-        }
-
-        foreach ($functions as $function) {
-            if (is_array($function) && $function[0] instanceof UniversalClassLoader) {
-                $loader = new static();
-                $loader->registerNamespaceFallbacks($function[0]->getNamespaceFallbacks());
-                $loader->registerPrefixFallbacks($function[0]->getPrefixFallbacks());
-                $loader->registerNamespaces($function[0]->getNamespaces());
-                $loader->registerPrefixes($function[0]->getPrefixes());
-                $loader->useIncludePath($function[0]->getUseIncludePath());
-
-                $function[0] = $loader;
-            }
-
-            spl_autoload_register($function);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            require $file;
-
-            if (!class_exists($class, false) && !interface_exists($class, false) && (!function_exists('trait_exists') || !trait_exists($class, false))) {
-                throw new \RuntimeException(sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file));
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/class-loader/LICENSE b/core/vendor/symfony/class-loader/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/class-loader/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/class-loader/MapClassLoader.php b/core/vendor/symfony/class-loader/MapClassLoader.php
deleted file mode 100644
index 1d8bcc2..0000000
--- a/core/vendor/symfony/class-loader/MapClassLoader.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * A class loader that uses a mapping file to look up paths.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class MapClassLoader
-{
-    private $map = array();
-
-    /**
-     * Constructor.
-     *
-     * @param array $map A map where keys are classes and values the absolute file path
-     */
-    public function __construct(array $map)
-    {
-        $this->map = $map;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     */
-    public function loadClass($class)
-    {
-        if (isset($this->map[$class])) {
-            require $this->map[$class];
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|null The path, if found
-     */
-    public function findFile($class)
-    {
-        if (isset($this->map[$class])) {
-            return $this->map[$class];
-        }
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Psr4ClassLoader.php b/core/vendor/symfony/class-loader/Psr4ClassLoader.php
deleted file mode 100644
index a00cf7b..0000000
--- a/core/vendor/symfony/class-loader/Psr4ClassLoader.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * A PSR-4 compatible class loader.
- *
- * See http://www.php-fig.org/psr/psr-4/
- *
- * @author Alexander M. Turek <me@derrabus.de>
- */
-class Psr4ClassLoader
-{
-    /**
-     * @var array
-     */
-    private $prefixes = array();
-
-    /**
-     * @param string $prefix
-     * @param string $baseDir
-     */
-    public function addPrefix($prefix, $baseDir)
-    {
-        $prefix = trim($prefix, '\\').'\\';
-        $baseDir = rtrim($baseDir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
-        $this->prefixes[] = array($prefix, $baseDir);
-    }
-
-    /**
-     * @param string $class
-     *
-     * @return string|null
-     */
-    public function findFile($class)
-    {
-        $class = ltrim($class, '\\');
-
-        foreach ($this->prefixes as $current) {
-            list($currentPrefix, $currentBaseDir) = $current;
-            if (0 === strpos($class, $currentPrefix)) {
-                $classWithoutPrefix = substr($class, strlen($currentPrefix));
-                $file = $currentBaseDir.str_replace('\\', DIRECTORY_SEPARATOR, $classWithoutPrefix).'.php';
-                if (file_exists($file)) {
-                    return $file;
-                }
-            }
-        }
-    }
-
-    /**
-     * @param string $class
-     *
-     * @return bool
-     */
-    public function loadClass($class)
-    {
-        $file = $this->findFile($class);
-        if (null !== $file) {
-            require $file;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Removes this instance from the registered autoloaders.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-}
diff --git a/core/vendor/symfony/class-loader/README.md b/core/vendor/symfony/class-loader/README.md
deleted file mode 100644
index 0d2955d..0000000
--- a/core/vendor/symfony/class-loader/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-ClassLoader Component
-=====================
-
-ClassLoader loads your project classes automatically if they follow some
-standard PHP conventions.
-
-The ClassLoader object is able to autoload classes that implement the PSR-0
-standard or the PEAR naming convention.
-
-First, register the autoloader:
-
-```php
-require_once __DIR__.'/src/Symfony/Component/ClassLoader/ClassLoader.php';
-
-use Symfony\Component\ClassLoader\ClassLoader;
-
-$loader = new ClassLoader();
-$loader->register();
-```
-
-Then, register some namespaces with the `addPrefix()` method:
-
-```php
-$loader->addPrefix('Symfony', __DIR__.'/src');
-$loader->addPrefix('Monolog', __DIR__.'/vendor/monolog/src');
-```
-
-The `addPrefix()` method takes a namespace prefix and a path where to
-look for the classes as arguments.
-
-You can also register a sub-namespaces:
-
-```php
-$loader->addPrefix('Doctrine\\Common', __DIR__.'/vendor/doctrine-common/lib');
-```
-
-The order of registration is significant and the first registered namespace
-takes precedence over later registered one.
-
-You can also register more than one path for a given namespace:
-
-```php
-$loader->addPrefix('Symfony', array(__DIR__.'/src', __DIR__.'/symfony/src'));
-```
-
-Alternatively, you can use the `addPrefixes()` method to register more
-than one namespace at once:
-
-```php
-$loader->addPrefixes(array(
-    'Symfony' => array(__DIR__.'/src', __DIR__.'/symfony/src'),
-    'Doctrine\\Common' => __DIR__.'/vendor/doctrine-common/lib',
-    'Doctrine' => __DIR__.'/vendor/doctrine/lib',
-    'Monolog' => __DIR__.'/vendor/monolog/src',
-));
-```
-
-For better performance, you can use the APC class loader:
-
-```php
-require_once __DIR__.'/src/Symfony/Component/ClassLoader/ClassLoader.php';
-require_once __DIR__.'/src/Symfony/Component/ClassLoader/ApcClassLoader.php';
-
-use Symfony\Component\ClassLoader\ClassLoader;
-use Symfony\Component\ClassLoader\ApcClassLoader;
-
-$loader = new ClassLoader();
-$loader->addPrefix('Symfony', __DIR__.'/src');
-
-$loader = new ApcClassLoader('apc.prefix.', $loader);
-$loader->register();
-```
-
-Furthermore, the component provides tools to aggregate classes into a single
-file, which is especially useful to improve performance on servers that do not
-provide byte caches.
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/ClassLoader/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/class-loader/Tests/ClassCollectionLoaderTest.php b/core/vendor/symfony/class-loader/Tests/ClassCollectionLoaderTest.php
deleted file mode 100644
index e821e45..0000000
--- a/core/vendor/symfony/class-loader/Tests/ClassCollectionLoaderTest.php
+++ /dev/null
@@ -1,292 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader\Tests;
-
-use Symfony\Component\ClassLoader\ClassCollectionLoader;
-
-require_once __DIR__.'/Fixtures/ClassesWithParents/GInterface.php';
-require_once __DIR__.'/Fixtures/ClassesWithParents/CInterface.php';
-require_once __DIR__.'/Fixtures/ClassesWithParents/B.php';
-require_once __DIR__.'/Fixtures/ClassesWithParents/A.php';
-
-class ClassCollectionLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testTraitDependencies()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Requires PHP > 5.4');
-
-            return;
-        }
-
-        require_once __DIR__.'/Fixtures/deps/traits.php';
-
-        $r = new \ReflectionClass('Symfony\Component\ClassLoader\ClassCollectionLoader');
-        $m = $r->getMethod('getOrderedClasses');
-        $m->setAccessible(true);
-
-        $ordered = $m->invoke('Symfony\Component\ClassLoader\ClassCollectionLoader', array('CTFoo'));
-
-        $this->assertEquals(
-            array('TD', 'TC', 'TB', 'TA', 'TZ', 'CTFoo'),
-            array_map(function ($class) { return $class->getName(); }, $ordered)
-        );
-
-        $ordered = $m->invoke('Symfony\Component\ClassLoader\ClassCollectionLoader', array('CTBar'));
-
-        $this->assertEquals(
-            array('TD', 'TZ', 'TC', 'TB', 'TA', 'CTBar'),
-            array_map(function ($class) { return $class->getName(); }, $ordered)
-        );
-    }
-
-    /**
-     * @dataProvider getDifferentOrders
-     */
-    public function testClassReordering(array $classes)
-    {
-        $expected = array(
-            'ClassesWithParents\\GInterface',
-            'ClassesWithParents\\CInterface',
-            'ClassesWithParents\\B',
-            'ClassesWithParents\\A',
-        );
-
-        $r = new \ReflectionClass('Symfony\Component\ClassLoader\ClassCollectionLoader');
-        $m = $r->getMethod('getOrderedClasses');
-        $m->setAccessible(true);
-
-        $ordered = $m->invoke('Symfony\Component\ClassLoader\ClassCollectionLoader', $classes);
-
-        $this->assertEquals($expected, array_map(function ($class) { return $class->getName(); }, $ordered));
-    }
-
-    public function getDifferentOrders()
-    {
-        return array(
-            array(array(
-                'ClassesWithParents\\A',
-                'ClassesWithParents\\CInterface',
-                'ClassesWithParents\\GInterface',
-                'ClassesWithParents\\B',
-            )),
-            array(array(
-                'ClassesWithParents\\B',
-                'ClassesWithParents\\A',
-                'ClassesWithParents\\CInterface',
-            )),
-            array(array(
-                'ClassesWithParents\\CInterface',
-                'ClassesWithParents\\B',
-                'ClassesWithParents\\A',
-            )),
-            array(array(
-                'ClassesWithParents\\A',
-            )),
-        );
-    }
-
-    /**
-     * @dataProvider getDifferentOrdersForTraits
-     */
-    public function testClassWithTraitsReordering(array $classes)
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Requires PHP > 5.4');
-
-            return;
-        }
-
-        require_once __DIR__.'/Fixtures/ClassesWithParents/ATrait.php';
-        require_once __DIR__.'/Fixtures/ClassesWithParents/BTrait.php';
-        require_once __DIR__.'/Fixtures/ClassesWithParents/CTrait.php';
-        require_once __DIR__.'/Fixtures/ClassesWithParents/D.php';
-        require_once __DIR__.'/Fixtures/ClassesWithParents/E.php';
-
-        $expected = array(
-            'ClassesWithParents\\GInterface',
-            'ClassesWithParents\\CInterface',
-            'ClassesWithParents\\ATrait',
-            'ClassesWithParents\\BTrait',
-            'ClassesWithParents\\CTrait',
-            'ClassesWithParents\\B',
-            'ClassesWithParents\\A',
-            'ClassesWithParents\\D',
-            'ClassesWithParents\\E',
-        );
-
-        $r = new \ReflectionClass('Symfony\Component\ClassLoader\ClassCollectionLoader');
-        $m = $r->getMethod('getOrderedClasses');
-        $m->setAccessible(true);
-
-        $ordered = $m->invoke('Symfony\Component\ClassLoader\ClassCollectionLoader', $classes);
-
-        $this->assertEquals($expected, array_map(function ($class) { return $class->getName(); }, $ordered));
-    }
-
-    public function getDifferentOrdersForTraits()
-    {
-        return array(
-            array(array(
-                'ClassesWithParents\\E',
-                'ClassesWithParents\\ATrait',
-            )),
-            array(array(
-                'ClassesWithParents\\E',
-            )),
-        );
-    }
-
-    public function testFixClassWithTraitsOrdering()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Requires PHP > 5.4');
-
-            return;
-        }
-
-        require_once __DIR__.'/Fixtures/ClassesWithParents/CTrait.php';
-        require_once __DIR__.'/Fixtures/ClassesWithParents/F.php';
-        require_once __DIR__.'/Fixtures/ClassesWithParents/G.php';
-
-        $classes = array(
-            'ClassesWithParents\\F',
-            'ClassesWithParents\\G',
-        );
-
-        $expected = array(
-            'ClassesWithParents\\CTrait',
-            'ClassesWithParents\\F',
-            'ClassesWithParents\\G',
-        );
-
-        $r = new \ReflectionClass('Symfony\Component\ClassLoader\ClassCollectionLoader');
-        $m = $r->getMethod('getOrderedClasses');
-        $m->setAccessible(true);
-
-        $ordered = $m->invoke('Symfony\Component\ClassLoader\ClassCollectionLoader', $classes);
-
-        $this->assertEquals($expected, array_map(function ($class) { return $class->getName(); }, $ordered));
-    }
-
-    /**
-     * @dataProvider getFixNamespaceDeclarationsData
-     */
-    public function testFixNamespaceDeclarations($source, $expected)
-    {
-        $this->assertEquals('<?php '.$expected, ClassCollectionLoader::fixNamespaceDeclarations('<?php '.$source));
-    }
-
-    public function getFixNamespaceDeclarationsData()
-    {
-        return array(
-            array("namespace;\nclass Foo {}\n", "namespace\n{\nclass Foo {}\n}"),
-            array("namespace Foo;\nclass Foo {}\n", "namespace Foo\n{\nclass Foo {}\n}"),
-            array("namespace   Bar ;\nclass Foo {}\n", "namespace Bar\n{\nclass Foo {}\n}"),
-            array("namespace Foo\Bar;\nclass Foo {}\n", "namespace Foo\Bar\n{\nclass Foo {}\n}"),
-            array("namespace Foo\Bar\Bar\n{\nclass Foo {}\n}\n", "namespace Foo\Bar\Bar\n{\nclass Foo {}\n}"),
-            array("namespace\n{\nclass Foo {}\n}\n", "namespace\n{\nclass Foo {}\n}"),
-        );
-    }
-
-    /**
-     * @dataProvider getFixNamespaceDeclarationsDataWithoutTokenizer
-     */
-    public function testFixNamespaceDeclarationsWithoutTokenizer($source, $expected)
-    {
-        ClassCollectionLoader::enableTokenizer(false);
-        $this->assertEquals('<?php '.$expected, ClassCollectionLoader::fixNamespaceDeclarations('<?php '.$source));
-        ClassCollectionLoader::enableTokenizer(true);
-    }
-
-    public function getFixNamespaceDeclarationsDataWithoutTokenizer()
-    {
-        return array(
-            array("namespace;\nclass Foo {}\n", "namespace\n{\nclass Foo {}\n}\n"),
-            array("namespace Foo;\nclass Foo {}\n", "namespace Foo\n{\nclass Foo {}\n}\n"),
-            array("namespace   Bar ;\nclass Foo {}\n", "namespace   Bar\n{\nclass Foo {}\n}\n"),
-            array("namespace Foo\Bar;\nclass Foo {}\n", "namespace Foo\Bar\n{\nclass Foo {}\n}\n"),
-            array("namespace Foo\Bar\Bar\n{\nclass Foo {}\n}\n", "namespace Foo\Bar\Bar\n{\nclass Foo {}\n}\n"),
-            array("namespace\n{\nclass Foo {}\n}\n", "namespace\n{\nclass Foo {}\n}\n"),
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testUnableToLoadClassException()
-    {
-        if (is_file($file = sys_get_temp_dir().'/foo.php')) {
-            unlink($file);
-        }
-
-        ClassCollectionLoader::load(array('SomeNotExistingClass'), sys_get_temp_dir(), 'foo', false);
-    }
-
-    public function testCommentStripping()
-    {
-        if (is_file($file = sys_get_temp_dir().'/bar.php')) {
-            unlink($file);
-        }
-        spl_autoload_register($r = function ($class) {
-            if (0 === strpos($class, 'Namespaced') || 0 === strpos($class, 'Pearlike_')) {
-                require_once __DIR__.'/Fixtures/'.str_replace(array('\\', '_'), '/', $class).'.php';
-            }
-        });
-
-        ClassCollectionLoader::load(
-            array('Namespaced\\WithComments', 'Pearlike_WithComments'),
-            sys_get_temp_dir(),
-            'bar',
-            false
-        );
-
-        spl_autoload_unregister($r);
-
-        $this->assertEquals(<<<EOF
-namespace Namespaced
-{
-class WithComments
-{
-public static \$loaded = true;
-}
-\$string ='string should not be   modified {\$string}';
-\$heredoc = (<<<HD
-
-
-Heredoc should not be   modified {\$string}
-
-
-HD
-);
-\$nowdoc =<<<'ND'
-
-
-Nowdoc should not be   modified {\$string}
-
-
-ND
-;
-}
-namespace
-{
-class Pearlike_WithComments
-{
-public static \$loaded = true;
-}
-}
-EOF
-        , str_replace("<?php \n", '', file_get_contents($file)));
-
-        unlink($file);
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/ClassLoaderTest.php b/core/vendor/symfony/class-loader/Tests/ClassLoaderTest.php
deleted file mode 100644
index a870935..0000000
--- a/core/vendor/symfony/class-loader/Tests/ClassLoaderTest.php
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader\Tests;
-
-use Symfony\Component\ClassLoader\ClassLoader;
-
-class ClassLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetPrefixes()
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('Bar', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('Bas', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $prefixes = $loader->getPrefixes();
-        $this->assertArrayHasKey('Foo', $prefixes);
-        $this->assertArrayNotHasKey('Foo1', $prefixes);
-        $this->assertArrayHasKey('Bar', $prefixes);
-        $this->assertArrayHasKey('Bas', $prefixes);
-    }
-
-    public function testGetFallbackDirs()
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefix(null, __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix(null, __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $fallback_dirs = $loader->getFallbackDirs();
-        $this->assertCount(2, $fallback_dirs);
-    }
-
-    /**
-     * @dataProvider getLoadClassTests
-     */
-    public function testLoadClass($className, $testClassName, $message)
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefix('Namespaced2\\', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('Pearlike2_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->loadClass($testClassName);
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassTests()
-    {
-        return array(
-            array('\\Namespaced2\\Foo', 'Namespaced2\\Foo',   '->loadClass() loads Namespaced2\Foo class'),
-            array('\\Pearlike2_Foo',    'Pearlike2_Foo',      '->loadClass() loads Pearlike2_Foo class'),
-        );
-    }
-
-    /**
-     * @dataProvider getLoadNonexistentClassTests
-     */
-    public function testLoadNonexistentClass($className, $testClassName, $message)
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefix('Namespaced2\\', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('Pearlike2_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->loadClass($testClassName);
-        $this->assertFalse(class_exists($className), $message);
-    }
-
-    public function getLoadNonexistentClassTests()
-    {
-        return array(
-            array('\\Pearlike3_Bar', '\\Pearlike3_Bar', '->loadClass() loads non existing Pearlike3_Bar class with a leading slash'),
-        );
-    }
-
-    public function testAddPrefix()
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $prefixes = $loader->getPrefixes();
-        $this->assertArrayHasKey('Foo', $prefixes);
-        $this->assertCount(2, $prefixes['Foo']);
-    }
-
-    public function testUseIncludePath()
-    {
-        $loader = new ClassLoader();
-        $this->assertFalse($loader->getUseIncludePath());
-
-        $this->assertNull($loader->findFile('Foo'));
-
-        $includePath = get_include_path();
-
-        $loader->setUseIncludePath(true);
-        $this->assertTrue($loader->getUseIncludePath());
-
-        set_include_path(__DIR__.'/Fixtures/includepath'.PATH_SEPARATOR.$includePath);
-
-        $this->assertEquals(__DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'includepath'.DIRECTORY_SEPARATOR.'Foo.php', $loader->findFile('Foo'));
-
-        set_include_path($includePath);
-    }
-
-    /**
-     * @dataProvider getLoadClassFromFallbackTests
-     */
-    public function testLoadClassFromFallback($className, $testClassName, $message)
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefix('Namespaced2\\', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('Pearlike2_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->addPrefix('', array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback'));
-        $loader->loadClass($testClassName);
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassFromFallbackTests()
-    {
-        return array(
-            array('\\Namespaced2\\Baz',    'Namespaced2\\Baz',    '->loadClass() loads Namespaced2\Baz class'),
-            array('\\Pearlike2_Baz',       'Pearlike2_Baz',       '->loadClass() loads Pearlike2_Baz class'),
-            array('\\Namespaced2\\FooBar', 'Namespaced2\\FooBar', '->loadClass() loads Namespaced2\Baz class from fallback dir'),
-            array('\\Pearlike2_FooBar',    'Pearlike2_FooBar',    '->loadClass() loads Pearlike2_Baz class from fallback dir'),
-        );
-    }
-
-    /**
-     * @dataProvider getLoadClassNamespaceCollisionTests
-     */
-    public function testLoadClassNamespaceCollision($namespaces, $className, $message)
-    {
-        $loader = new ClassLoader();
-        $loader->addPrefixes($namespaces);
-
-        $loader->loadClass($className);
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassNamespaceCollisionTests()
-    {
-        return array(
-            array(
-                array(
-                    'NamespaceCollision\\C' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'NamespaceCollision\\C\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'NamespaceCollision\C\Foo',
-                '->loadClass() loads NamespaceCollision\C\Foo from alpha.',
-            ),
-            array(
-                array(
-                    'NamespaceCollision\\C\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'NamespaceCollision\\C' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'NamespaceCollision\C\Bar',
-                '->loadClass() loads NamespaceCollision\C\Bar from alpha.',
-            ),
-            array(
-                array(
-                    'NamespaceCollision\\C' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'NamespaceCollision\\C\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'NamespaceCollision\C\B\Foo',
-                '->loadClass() loads NamespaceCollision\C\B\Foo from beta.',
-            ),
-            array(
-                array(
-                    'NamespaceCollision\\C\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'NamespaceCollision\\C' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'NamespaceCollision\C\B\Bar',
-                '->loadClass() loads NamespaceCollision\C\B\Bar from beta.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_C_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'PrefixCollision_C_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'PrefixCollision_C_Foo',
-                '->loadClass() loads PrefixCollision_C_Foo from alpha.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_C_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'PrefixCollision_C_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'PrefixCollision_C_Bar',
-                '->loadClass() loads PrefixCollision_C_Bar from alpha.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_C_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'PrefixCollision_C_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'PrefixCollision_C_B_Foo',
-                '->loadClass() loads PrefixCollision_C_B_Foo from beta.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_C_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'PrefixCollision_C_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'PrefixCollision_C_B_Bar',
-                '->loadClass() loads PrefixCollision_C_B_Bar from beta.',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/ClassMapGeneratorTest.php b/core/vendor/symfony/class-loader/Tests/ClassMapGeneratorTest.php
deleted file mode 100644
index 29c3288..0000000
--- a/core/vendor/symfony/class-loader/Tests/ClassMapGeneratorTest.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader\Tests;
-
-use Symfony\Component\ClassLoader\ClassMapGenerator;
-
-class ClassMapGeneratorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var string|null
-     */
-    private $workspace = null;
-
-    public function prepare_workspace()
-    {
-        $this->workspace = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.time().mt_rand(0, 1000);
-        mkdir($this->workspace, 0777, true);
-        $this->workspace = realpath($this->workspace);
-    }
-
-    /**
-     * @param string $file
-     */
-    private function clean($file)
-    {
-        if (is_dir($file) && !is_link($file)) {
-            $dir = new \FilesystemIterator($file);
-            foreach ($dir as $childFile) {
-                $this->clean($childFile);
-            }
-
-            rmdir($file);
-        } else {
-            unlink($file);
-        }
-    }
-
-    /**
-     * @dataProvider getTestCreateMapTests
-     */
-    public function testDump($directory, $expected)
-    {
-        $this->prepare_workspace();
-
-        $file = $this->workspace.'/file';
-
-        $generator = new ClassMapGenerator();
-        $generator->dump($directory, $file);
-        $this->assertFileExists($file);
-
-        $this->clean($this->workspace);
-    }
-
-    /**
-     * @dataProvider getTestCreateMapTests
-     */
-    public function testCreateMap($directory, $expected)
-    {
-        $this->assertEqualsNormalized($expected, ClassMapGenerator::createMap($directory));
-    }
-
-    public function getTestCreateMapTests()
-    {
-        $data = array(
-            array(__DIR__.'/Fixtures/Namespaced', array(
-                'Namespaced\\Bar' => realpath(__DIR__).'/Fixtures/Namespaced/Bar.php',
-                'Namespaced\\Foo' => realpath(__DIR__).'/Fixtures/Namespaced/Foo.php',
-                'Namespaced\\Baz' => realpath(__DIR__).'/Fixtures/Namespaced/Baz.php',
-                'Namespaced\\WithComments' => realpath(__DIR__).'/Fixtures/Namespaced/WithComments.php',
-                ),
-            ),
-            array(__DIR__.'/Fixtures/beta/NamespaceCollision', array(
-                'NamespaceCollision\\A\\B\\Bar' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/A/B/Bar.php',
-                'NamespaceCollision\\A\\B\\Foo' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/A/B/Foo.php',
-                'NamespaceCollision\\C\\B\\Bar' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/C/B/Bar.php',
-                'NamespaceCollision\\C\\B\\Foo' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/C/B/Foo.php',
-            )),
-            array(__DIR__.'/Fixtures/Pearlike', array(
-                'Pearlike_Foo' => realpath(__DIR__).'/Fixtures/Pearlike/Foo.php',
-                'Pearlike_Bar' => realpath(__DIR__).'/Fixtures/Pearlike/Bar.php',
-                'Pearlike_Baz' => realpath(__DIR__).'/Fixtures/Pearlike/Baz.php',
-                'Pearlike_WithComments' => realpath(__DIR__).'/Fixtures/Pearlike/WithComments.php',
-            )),
-            array(__DIR__.'/Fixtures/classmap', array(
-                'Foo\\Bar\\A' => realpath(__DIR__).'/Fixtures/classmap/sameNsMultipleClasses.php',
-                'Foo\\Bar\\B' => realpath(__DIR__).'/Fixtures/classmap/sameNsMultipleClasses.php',
-                'A' => realpath(__DIR__).'/Fixtures/classmap/multipleNs.php',
-                'Alpha\\A' => realpath(__DIR__).'/Fixtures/classmap/multipleNs.php',
-                'Alpha\\B' => realpath(__DIR__).'/Fixtures/classmap/multipleNs.php',
-                'Beta\\A' => realpath(__DIR__).'/Fixtures/classmap/multipleNs.php',
-                'Beta\\B' => realpath(__DIR__).'/Fixtures/classmap/multipleNs.php',
-                'ClassMap\\SomeInterface' => realpath(__DIR__).'/Fixtures/classmap/SomeInterface.php',
-                'ClassMap\\SomeParent' => realpath(__DIR__).'/Fixtures/classmap/SomeParent.php',
-                'ClassMap\\SomeClass' => realpath(__DIR__).'/Fixtures/classmap/SomeClass.php',
-            )),
-        );
-
-        if (PHP_VERSION_ID >= 50400) {
-            $data[] = array(__DIR__.'/Fixtures/php5.4', array(
-                'TFoo' => __DIR__.'/Fixtures/php5.4/traits.php',
-                'CFoo' => __DIR__.'/Fixtures/php5.4/traits.php',
-                'Foo\\TBar' => __DIR__.'/Fixtures/php5.4/traits.php',
-                'Foo\\IBar' => __DIR__.'/Fixtures/php5.4/traits.php',
-                'Foo\\TFooBar' => __DIR__.'/Fixtures/php5.4/traits.php',
-                'Foo\\CBar' => __DIR__.'/Fixtures/php5.4/traits.php',
-            ));
-        }
-
-        return $data;
-    }
-
-    public function testCreateMapFinderSupport()
-    {
-        $finder = new \Symfony\Component\Finder\Finder();
-        $finder->files()->in(__DIR__.'/Fixtures/beta/NamespaceCollision');
-
-        $this->assertEqualsNormalized(array(
-            'NamespaceCollision\\A\\B\\Bar' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/A/B/Bar.php',
-            'NamespaceCollision\\A\\B\\Foo' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/A/B/Foo.php',
-            'NamespaceCollision\\C\\B\\Bar' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/C/B/Bar.php',
-            'NamespaceCollision\\C\\B\\Foo' => realpath(__DIR__).'/Fixtures/beta/NamespaceCollision/C/B/Foo.php',
-        ), ClassMapGenerator::createMap($finder));
-    }
-
-    protected function assertEqualsNormalized($expected, $actual, $message = null)
-    {
-        foreach ($expected as $ns => $path) {
-            $expected[$ns] = strtr($path, '\\', '/');
-        }
-        foreach ($actual as $ns => $path) {
-            $actual[$ns] = strtr($path, '\\', '/');
-        }
-        $this->assertEquals($expected, $actual, $message);
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Bar.php
deleted file mode 100644
index 4259f14..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Bar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\Namespaced;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Baz.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Baz.php
deleted file mode 100644
index 3ddb595..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Baz.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\Namespaced;
-
-class Baz
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Foo.php
deleted file mode 100644
index cf0a4b7..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/Foo.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\Namespaced;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/FooBar.php
deleted file mode 100644
index bbbc815..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Namespaced/FooBar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\Namespaced;
-
-class FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Bar.php
deleted file mode 100644
index e774cb9..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Apc_Pearlike_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Baz.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Baz.php
deleted file mode 100644
index b284744..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Baz.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Apc_Pearlike_Baz
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Foo.php
deleted file mode 100644
index 3cf8aa8..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/Pearlike/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Apc_Pearlike_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php
deleted file mode 100644
index 3df50fa..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ApcPrefixCollision_A_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php
deleted file mode 100644
index 206c9f8..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/ApcPrefixCollision/A/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ApcPrefixCollision_A_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php
deleted file mode 100644
index 4a4f73e..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Bar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\NamespaceCollision\A;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php
deleted file mode 100644
index 184a1b1..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/alpha/Apc/NamespaceCollision/A/Foo.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\NamespaceCollision\A;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php
deleted file mode 100644
index 3892f70..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ApcPrefixCollision_A_B_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php
deleted file mode 100644
index 62e749f..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/ApcPrefixCollision/A/B/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class ApcPrefixCollision_A_B_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php
deleted file mode 100644
index e406a69..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Bar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\NamespaceCollision\A\B;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php
deleted file mode 100644
index 450eeb5..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/beta/Apc/NamespaceCollision/A/B/Foo.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\NamespaceCollision\A\B;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php
deleted file mode 100644
index 96f2f76..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/fallback/Apc/Pearlike/FooBar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Apc_Pearlike_FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php
deleted file mode 100644
index bbbc815..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Apc/fallback/Namespaced/FooBar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Apc\Namespaced;
-
-class FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/A.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/A.php
deleted file mode 100644
index b0f9425..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/A.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-class A extends B
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/ATrait.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/ATrait.php
deleted file mode 100644
index b02d185..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/ATrait.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-trait ATrait
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/B.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/B.php
deleted file mode 100644
index 22c751a..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/B.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-class B implements CInterface
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/BTrait.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/BTrait.php
deleted file mode 100644
index 7242a9f..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/BTrait.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-trait BTrait
-{
-    use ATrait;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/CInterface.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/CInterface.php
deleted file mode 100644
index 8eec389..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/CInterface.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-interface CInterface extends GInterface
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/CTrait.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/CTrait.php
deleted file mode 100644
index 110c624..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/CTrait.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-trait CTrait
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/D.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/D.php
deleted file mode 100644
index 28514d7..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/D.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-class D extends A
-{
-    use BTrait;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/E.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/E.php
deleted file mode 100644
index 6dc6035..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/E.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-class E extends D
-{
-    use CTrait;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/F.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/F.php
deleted file mode 100644
index a0a5172..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/F.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-class F
-{
-    use CTrait;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/G.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/G.php
deleted file mode 100644
index bab6031..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/G.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-class G
-{
-    use CTrait;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/GInterface.php b/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/GInterface.php
deleted file mode 100644
index 208a19d..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/ClassesWithParents/GInterface.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace ClassesWithParents;
-
-interface GInterface
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Bar.php
deleted file mode 100644
index 02b589d..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Bar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Namespaced;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Baz.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Baz.php
deleted file mode 100644
index 0b0bbd0..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Baz.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Namespaced;
-
-class Baz
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Foo.php
deleted file mode 100644
index df5e1f4..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/Foo.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Namespaced;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/WithComments.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/WithComments.php
deleted file mode 100644
index 361e53d..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced/WithComments.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Namespaced;
-
-class WithComments
-{
-    /** @Boolean */
-    public static $loaded = true;
-}
-
-$string = 'string should not be   modified {$string}';
-
-$heredoc = (<<<HD
-
-
-Heredoc should not be   modified {$string}
-
-
-HD
-);
-
-$nowdoc = <<<'ND'
-
-
-Nowdoc should not be   modified {$string}
-
-
-ND;
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Bar.php
deleted file mode 100644
index 7bf42ab..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Bar.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Namespaced2;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Baz.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Baz.php
deleted file mode 100644
index fed3e01..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Baz.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Namespaced2;
-
-class Baz
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Foo.php
deleted file mode 100644
index 5d7452a..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Namespaced2/Foo.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Namespaced2;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Bar.php
deleted file mode 100644
index 6366169..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Baz.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Baz.php
deleted file mode 100644
index 3aa8367..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Baz.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike_Baz
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Foo.php
deleted file mode 100644
index c51b156..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/WithComments.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/WithComments.php
deleted file mode 100644
index d0fd206..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike/WithComments.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Pearlike_WithComments
-{
-    /** @Boolean */
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Bar.php
deleted file mode 100644
index 7f5f797..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike2_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Baz.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Baz.php
deleted file mode 100644
index 8317a0e..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Baz.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike2_Baz
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Foo.php
deleted file mode 100644
index 0f62ca4..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/Pearlike2/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike2_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php
deleted file mode 100644
index b8d1a13..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/A/Bar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace NamespaceCollision\A;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php
deleted file mode 100644
index aee6a08..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/A/Foo.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace NamespaceCollision\A;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php
deleted file mode 100644
index c1b8dd6..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/C/Bar.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace NamespaceCollision\C;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php
deleted file mode 100644
index 1fffbba..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/NamespaceCollision/C/Foo.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace NamespaceCollision\C;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php
deleted file mode 100644
index 676daad..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/A/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_A_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php
deleted file mode 100644
index 44388be..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/A/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_A_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php
deleted file mode 100644
index 0bbc368..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/C/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_C_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php
deleted file mode 100644
index 73f4ac4..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/alpha/PrefixCollision/C/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_C_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php
deleted file mode 100644
index 9f09155..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/A/B/Bar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace NamespaceCollision\A\B;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php
deleted file mode 100644
index f5f2d72..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/A/B/Foo.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace NamespaceCollision\A\B;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php
deleted file mode 100644
index 4bb03dc..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/C/B/Bar.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace NamespaceCollision\C\B;
-
-class Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php
deleted file mode 100644
index 195d888..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/NamespaceCollision/C/B/Foo.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace NamespaceCollision\C\B;
-
-class Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php
deleted file mode 100644
index f2682e4..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/A/B/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_A_B_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php
deleted file mode 100644
index af7ca70..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/A/B/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_A_B_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php
deleted file mode 100644
index f313438..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/C/B/Bar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_C_B_Bar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php
deleted file mode 100644
index a9bf820..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/beta/PrefixCollision/C/B/Foo.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class PrefixCollision_C_B_Foo
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeClass.php b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeClass.php
deleted file mode 100644
index c63cef9..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeClass.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace ClassMap;
-
-class SomeClass extends SomeParent implements SomeInterface
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeInterface.php b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeInterface.php
deleted file mode 100644
index 1fe5e09..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace ClassMap;
-
-interface SomeInterface
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeParent.php b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeParent.php
deleted file mode 100644
index ce2f9fc..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/SomeParent.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace ClassMap;
-
-abstract class SomeParent
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/multipleNs.php b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/multipleNs.php
deleted file mode 100644
index c7cec64..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/multipleNs.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace {
-    class A
-    {
-    }
-}
-
-namespace Alpha {
-    class A
-    {
-    }
-    class B
-    {
-    }
-}
-
-namespace Beta {
-    class A
-    {
-    }
-    class B
-    {
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/notAClass.php b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/notAClass.php
deleted file mode 100644
index 49eb3ff..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/notAClass.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$a = new stdClass();
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/notPhpFile.md b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/notPhpFile.md
deleted file mode 100644
index 6e48e5a..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/notPhpFile.md
+++ /dev/null
@@ -1 +0,0 @@
-This file should be skipped.
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/sameNsMultipleClasses.php b/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
deleted file mode 100644
index b34b9dd..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/classmap/sameNsMultipleClasses.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Foo\Bar;
-
-class A
-{
-}
-class B
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/deps/traits.php b/core/vendor/symfony/class-loader/Tests/Fixtures/deps/traits.php
deleted file mode 100644
index 82b30a6..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/deps/traits.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-trait TD
-{
-}
-
-trait TZ
-{
-    use TD;
-}
-
-trait TC
-{
-    use TD;
-}
-
-trait TB
-{
-    use TC;
-}
-
-trait TA
-{
-    use TB;
-}
-
-class CTFoo
-{
-    use TA;
-    use TZ;
-}
-
-class CTBar
-{
-    use TZ;
-    use TA;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Namespaced/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Namespaced/FooBar.php
deleted file mode 100644
index 0fd29ef..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Namespaced/FooBar.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Namespaced;
-
-class FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Namespaced2/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Namespaced2/FooBar.php
deleted file mode 100644
index 1036d43..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Namespaced2/FooBar.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace Namespaced2;
-
-class FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Pearlike/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Pearlike/FooBar.php
deleted file mode 100644
index 3ebe526..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Pearlike/FooBar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike_FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Pearlike2/FooBar.php b/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Pearlike2/FooBar.php
deleted file mode 100644
index 9bf0007..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/fallback/Pearlike2/FooBar.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-class Pearlike2_FooBar
-{
-    public static $loaded = true;
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/includepath/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/includepath/Foo.php
deleted file mode 100644
index a8f0bc7..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/includepath/Foo.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-class Foo
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/php5.4/traits.php b/core/vendor/symfony/class-loader/Tests/Fixtures/php5.4/traits.php
deleted file mode 100644
index ccdadaf..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/php5.4/traits.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace {
-    trait TFoo
-    {
-    }
-
-    class CFoo
-    {
-        use TFoo;
-    }
-}
-
-namespace Foo {
-    trait TBar
-    {
-    }
-
-    interface IBar
-    {
-    }
-
-    trait TFooBar
-    {
-    }
-
-    class CBar implements IBar
-    {
-        use TBar;
-        use TFooBar;
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Class_With_Underscores.php b/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Class_With_Underscores.php
deleted file mode 100644
index ce9b8ea..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Class_With_Underscores.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Acme\DemoLib;
-
-class Class_With_Underscores
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Foo.php
deleted file mode 100644
index 8ba6f83..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Foo.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Acme\DemoLib;
-
-class Foo
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Lets/Go/Deeper/Class_With_Underscores.php b/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Lets/Go/Deeper/Class_With_Underscores.php
deleted file mode 100644
index e18bb0f..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Lets/Go/Deeper/Class_With_Underscores.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Acme\DemoLib\Lets\Go\Deeper;
-
-class Class_With_Underscores
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Lets/Go/Deeper/Foo.php b/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Lets/Go/Deeper/Foo.php
deleted file mode 100644
index 53ead9f..0000000
--- a/core/vendor/symfony/class-loader/Tests/Fixtures/psr-4/Lets/Go/Deeper/Foo.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Acme\DemoLib\Lets\Go\Deeper;
-
-class Foo
-{
-}
diff --git a/core/vendor/symfony/class-loader/Tests/LegacyApcUniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Tests/LegacyApcUniversalClassLoaderTest.php
deleted file mode 100644
index 0268a1c..0000000
--- a/core/vendor/symfony/class-loader/Tests/LegacyApcUniversalClassLoaderTest.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader\Tests;
-
-use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
-
-/**
- * @group legacy
- */
-class LegacyApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!extension_loaded('apc')) {
-            $this->markTestSkipped('The apc extension is not available.');
-        }
-
-        if (!(ini_get('apc.enabled') && ini_get('apc.enable_cli'))) {
-            $this->markTestSkipped('The apc extension is available, but not enabled.');
-        } else {
-            apc_clear_cache('user');
-        }
-    }
-
-    protected function tearDown()
-    {
-        if (ini_get('apc.enabled') && ini_get('apc.enable_cli')) {
-            apc_clear_cache('user');
-        }
-    }
-
-    public function testConstructor()
-    {
-        $loader = new ApcUniversalClassLoader('test.prefix.');
-        $loader->registerNamespace('Apc\Namespaced', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-
-        $this->assertEquals($loader->findFile('\Apc\Namespaced\FooBar'), apc_fetch('test.prefix.\Apc\Namespaced\FooBar'), '__construct() takes a prefix as its first argument');
-    }
-
-   /**
-    * @dataProvider getLoadClassTests
-    */
-   public function testLoadClass($className, $testClassName, $message)
-   {
-       $loader = new ApcUniversalClassLoader('test.prefix.');
-       $loader->registerNamespace('Apc\Namespaced', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-       $loader->registerPrefix('Apc_Pearlike_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-       $loader->loadClass($testClassName);
-       $this->assertTrue(class_exists($className), $message);
-   }
-
-    public function getLoadClassTests()
-    {
-        return array(
-           array('\\Apc\\Namespaced\\Foo', 'Apc\\Namespaced\\Foo',   '->loadClass() loads Apc\Namespaced\Foo class'),
-           array('Apc_Pearlike_Foo',    'Apc_Pearlike_Foo',      '->loadClass() loads Apc_Pearlike_Foo class'),
-       );
-    }
-
-   /**
-    * @dataProvider getLoadClassFromFallbackTests
-    */
-   public function testLoadClassFromFallback($className, $testClassName, $message)
-   {
-       $loader = new ApcUniversalClassLoader('test.prefix.fallback');
-       $loader->registerNamespace('Apc\Namespaced', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-       $loader->registerPrefix('Apc_Pearlike_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-       $loader->registerNamespaceFallbacks(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/fallback'));
-       $loader->registerPrefixFallbacks(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/fallback'));
-       $loader->loadClass($testClassName);
-       $this->assertTrue(class_exists($className), $message);
-   }
-
-    public function getLoadClassFromFallbackTests()
-    {
-        return array(
-           array('\\Apc\\Namespaced\\Baz',    'Apc\\Namespaced\\Baz',    '->loadClass() loads Apc\Namespaced\Baz class'),
-           array('Apc_Pearlike_Baz',       'Apc_Pearlike_Baz',       '->loadClass() loads Apc_Pearlike_Baz class'),
-           array('\\Apc\\Namespaced\\FooBar', 'Apc\\Namespaced\\FooBar', '->loadClass() loads Apc\Namespaced\Baz class from fallback dir'),
-           array('Apc_Pearlike_FooBar',    'Apc_Pearlike_FooBar',    '->loadClass() loads Apc_Pearlike_Baz class from fallback dir'),
-       );
-    }
-
-   /**
-    * @dataProvider getLoadClassNamespaceCollisionTests
-    */
-   public function testLoadClassNamespaceCollision($namespaces, $className, $message)
-   {
-       $loader = new ApcUniversalClassLoader('test.prefix.collision.');
-       $loader->registerNamespaces($namespaces);
-
-       $loader->loadClass($className);
-
-       $this->assertTrue(class_exists($className), $message);
-   }
-
-    public function getLoadClassNamespaceCollisionTests()
-    {
-        return array(
-           array(
-               array(
-                   'Apc\\NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha',
-                   'Apc\\NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta',
-               ),
-               'Apc\NamespaceCollision\A\Foo',
-               '->loadClass() loads NamespaceCollision\A\Foo from alpha.',
-           ),
-           array(
-               array(
-                   'Apc\\NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta',
-                   'Apc\\NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha',
-               ),
-               'Apc\NamespaceCollision\A\Bar',
-               '->loadClass() loads NamespaceCollision\A\Bar from alpha.',
-           ),
-           array(
-               array(
-                   'Apc\\NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha',
-                   'Apc\\NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta',
-               ),
-               'Apc\NamespaceCollision\A\B\Foo',
-               '->loadClass() loads NamespaceCollision\A\B\Foo from beta.',
-           ),
-           array(
-               array(
-                   'Apc\\NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta',
-                   'Apc\\NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha',
-               ),
-               'Apc\NamespaceCollision\A\B\Bar',
-               '->loadClass() loads NamespaceCollision\A\B\Bar from beta.',
-           ),
-       );
-    }
-
-   /**
-    * @dataProvider getLoadClassPrefixCollisionTests
-    */
-   public function testLoadClassPrefixCollision($prefixes, $className, $message)
-   {
-       $loader = new ApcUniversalClassLoader('test.prefix.collision.');
-       $loader->registerPrefixes($prefixes);
-
-       $loader->loadClass($className);
-       $this->assertTrue(class_exists($className), $message);
-   }
-
-    public function getLoadClassPrefixCollisionTests()
-    {
-        return array(
-           array(
-               array(
-                   'ApcPrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha/Apc',
-                   'ApcPrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta/Apc',
-               ),
-               'ApcPrefixCollision_A_Foo',
-               '->loadClass() loads ApcPrefixCollision_A_Foo from alpha.',
-           ),
-           array(
-               array(
-                   'ApcPrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta/Apc',
-                   'ApcPrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha/Apc',
-               ),
-               'ApcPrefixCollision_A_Bar',
-               '->loadClass() loads ApcPrefixCollision_A_Bar from alpha.',
-           ),
-           array(
-               array(
-                   'ApcPrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha/Apc',
-                   'ApcPrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta/Apc',
-               ),
-               'ApcPrefixCollision_A_B_Foo',
-               '->loadClass() loads ApcPrefixCollision_A_B_Foo from beta.',
-           ),
-           array(
-               array(
-                   'ApcPrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/beta/Apc',
-                   'ApcPrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/Apc/alpha/Apc',
-               ),
-               'ApcPrefixCollision_A_B_Bar',
-               '->loadClass() loads ApcPrefixCollision_A_B_Bar from beta.',
-           ),
-       );
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/LegacyUniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Tests/LegacyUniversalClassLoaderTest.php
deleted file mode 100644
index 2588e96..0000000
--- a/core/vendor/symfony/class-loader/Tests/LegacyUniversalClassLoaderTest.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader\Tests;
-
-use Symfony\Component\ClassLoader\UniversalClassLoader;
-
-/**
- * @group legacy
- */
-class LegacyUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getLoadClassTests
-     */
-    public function testLoadClass($className, $testClassName, $message)
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerNamespace('Namespaced', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerPrefix('Pearlike_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $this->assertTrue($loader->loadClass($testClassName));
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassTests()
-    {
-        return array(
-            array('\\Namespaced\\Foo', 'Namespaced\\Foo',   '->loadClass() loads Namespaced\Foo class'),
-            array('\\Pearlike_Foo',    'Pearlike_Foo',      '->loadClass() loads Pearlike_Foo class'),
-        );
-    }
-
-    public function testUseIncludePath()
-    {
-        $loader = new UniversalClassLoader();
-        $this->assertFalse($loader->getUseIncludePath());
-
-        $this->assertNull($loader->findFile('Foo'));
-
-        $includePath = get_include_path();
-
-        $loader->useIncludePath(true);
-        $this->assertTrue($loader->getUseIncludePath());
-
-        set_include_path(__DIR__.'/Fixtures/includepath'.PATH_SEPARATOR.$includePath);
-
-        $this->assertEquals(__DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'includepath'.DIRECTORY_SEPARATOR.'Foo.php', $loader->findFile('Foo'));
-
-        set_include_path($includePath);
-    }
-
-    public function testGetNamespaces()
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerNamespace('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerNamespace('Bar', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerNamespace('Bas', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $namespaces = $loader->getNamespaces();
-        $this->assertArrayHasKey('Foo', $namespaces);
-        $this->assertArrayNotHasKey('Foo1', $namespaces);
-        $this->assertArrayHasKey('Bar', $namespaces);
-        $this->assertArrayHasKey('Bas', $namespaces);
-    }
-
-    public function testGetPrefixes()
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerPrefix('Bar', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerPrefix('Bas', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $prefixes = $loader->getPrefixes();
-        $this->assertArrayHasKey('Foo', $prefixes);
-        $this->assertArrayNotHasKey('Foo1', $prefixes);
-        $this->assertArrayHasKey('Bar', $prefixes);
-        $this->assertArrayHasKey('Bas', $prefixes);
-    }
-
-    /**
-     * @dataProvider getLoadClassFromFallbackTests
-     */
-    public function testLoadClassFromFallback($className, $testClassName, $message)
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerNamespace('Namespaced', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerPrefix('Pearlike_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures');
-        $loader->registerNamespaceFallbacks(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback'));
-        $loader->registerPrefixFallbacks(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback'));
-        $this->assertTrue($loader->loadClass($testClassName));
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassFromFallbackTests()
-    {
-        return array(
-            array('\\Namespaced\\Baz',    'Namespaced\\Baz',    '->loadClass() loads Namespaced\Baz class'),
-            array('\\Pearlike_Baz',       'Pearlike_Baz',       '->loadClass() loads Pearlike_Baz class'),
-            array('\\Namespaced\\FooBar', 'Namespaced\\FooBar', '->loadClass() loads Namespaced\Baz class from fallback dir'),
-            array('\\Pearlike_FooBar',    'Pearlike_FooBar',    '->loadClass() loads Pearlike_Baz class from fallback dir'),
-        );
-    }
-
-    public function testRegisterPrefixFallback()
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerPrefixFallback(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback');
-        $this->assertEquals(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback'), $loader->getPrefixFallbacks());
-    }
-
-    public function testRegisterNamespaceFallback()
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerNamespaceFallback(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/Namespaced/fallback');
-        $this->assertEquals(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/Namespaced/fallback'), $loader->getNamespaceFallbacks());
-    }
-
-    /**
-     * @dataProvider getLoadClassNamespaceCollisionTests
-     */
-    public function testLoadClassNamespaceCollision($namespaces, $className, $message)
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerNamespaces($namespaces);
-
-        $this->assertTrue($loader->loadClass($className));
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassNamespaceCollisionTests()
-    {
-        return array(
-            array(
-                array(
-                    'NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'NamespaceCollision\A\Foo',
-                '->loadClass() loads NamespaceCollision\A\Foo from alpha.',
-            ),
-            array(
-                array(
-                    'NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'NamespaceCollision\A\Bar',
-                '->loadClass() loads NamespaceCollision\A\Bar from alpha.',
-            ),
-            array(
-                array(
-                    'NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'NamespaceCollision\A\B\Foo',
-                '->loadClass() loads NamespaceCollision\A\B\Foo from beta.',
-            ),
-            array(
-                array(
-                    'NamespaceCollision\\A\\B' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'NamespaceCollision\\A' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'NamespaceCollision\A\B\Bar',
-                '->loadClass() loads NamespaceCollision\A\B\Bar from beta.',
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider getLoadClassPrefixCollisionTests
-     */
-    public function testLoadClassPrefixCollision($prefixes, $className, $message)
-    {
-        $loader = new UniversalClassLoader();
-        $loader->registerPrefixes($prefixes);
-
-        $this->assertTrue($loader->loadClass($className));
-        $this->assertTrue(class_exists($className), $message);
-    }
-
-    public function getLoadClassPrefixCollisionTests()
-    {
-        return array(
-            array(
-                array(
-                    'PrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'PrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'PrefixCollision_A_Foo',
-                '->loadClass() loads PrefixCollision_A_Foo from alpha.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'PrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'PrefixCollision_A_Bar',
-                '->loadClass() loads PrefixCollision_A_Bar from alpha.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                    'PrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                ),
-                'PrefixCollision_A_B_Foo',
-                '->loadClass() loads PrefixCollision_A_B_Foo from beta.',
-            ),
-            array(
-                array(
-                    'PrefixCollision_A_B_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/beta',
-                    'PrefixCollision_A_' => __DIR__.DIRECTORY_SEPARATOR.'Fixtures/alpha',
-                ),
-                'PrefixCollision_A_B_Bar',
-                '->loadClass() loads PrefixCollision_A_B_Bar from beta.',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/class-loader/Tests/Psr4ClassLoaderTest.php b/core/vendor/symfony/class-loader/Tests/Psr4ClassLoaderTest.php
deleted file mode 100644
index 21a7afb..0000000
--- a/core/vendor/symfony/class-loader/Tests/Psr4ClassLoaderTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader\Tests;
-
-use Symfony\Component\ClassLoader\Psr4ClassLoader;
-
-class Psr4ClassLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @param string $className
-     * @dataProvider getLoadClassTests
-     */
-    public function testLoadClass($className)
-    {
-        $loader = new Psr4ClassLoader();
-        $loader->addPrefix(
-            'Acme\\DemoLib',
-            __DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'psr-4'
-        );
-        $loader->loadClass($className);
-        $this->assertTrue(class_exists($className), sprintf('loadClass() should load %s', $className));
-    }
-
-    /**
-     * @return array
-     */
-    public function getLoadClassTests()
-    {
-        return array(
-            array('Acme\\DemoLib\\Foo'),
-            array('Acme\\DemoLib\\Class_With_Underscores'),
-            array('Acme\\DemoLib\\Lets\\Go\\Deeper\\Foo'),
-            array('Acme\\DemoLib\\Lets\\Go\\Deeper\\Class_With_Underscores'),
-        );
-    }
-
-    /**
-     * @param string $className
-     * @dataProvider getLoadNonexistentClassTests
-     */
-    public function testLoadNonexistentClass($className)
-    {
-        $loader = new Psr4ClassLoader();
-        $loader->addPrefix(
-            'Acme\\DemoLib',
-            __DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'psr-4'
-        );
-        $loader->loadClass($className);
-        $this->assertFalse(class_exists($className), sprintf('loadClass() should not load %s', $className));
-    }
-
-    /**
-     * @return array
-     */
-    public function getLoadNonexistentClassTests()
-    {
-        return array(
-            array('Acme\\DemoLib\\I_Do_Not_Exist'),
-            array('UnknownVendor\\SomeLib\\I_Do_Not_Exist'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/class-loader/UniversalClassLoader.php b/core/vendor/symfony/class-loader/UniversalClassLoader.php
deleted file mode 100644
index 5293a4c..0000000
--- a/core/vendor/symfony/class-loader/UniversalClassLoader.php
+++ /dev/null
@@ -1,323 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-@trigger_error('The '.__NAMESPACE__.'\UniversalClassLoader class is deprecated since version 2.7 and will be removed in 3.0. Use the Symfony\Component\ClassLoader\ClassLoader class instead.', E_USER_DEPRECATED);
-
-/**
- * UniversalClassLoader implements a "universal" autoloader for PHP 5.3.
- *
- * It is able to load classes that use either:
- *
- *  * The technical interoperability standards for PHP 5.3 namespaces and
- *    class names (https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md);
- *
- *  * The PEAR naming convention for classes (http://pear.php.net/).
- *
- * Classes from a sub-namespace or a sub-hierarchy of PEAR classes can be
- * looked for in a list of locations to ease the vendoring of a sub-set of
- * classes for large projects.
- *
- * Example usage:
- *
- *     $loader = new UniversalClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->registerNamespaces(array(
- *         'Symfony\Component' => __DIR__.'/component',
- *         'Symfony' => __DIR__.'/framework',
- *         'Sensio' => array(__DIR__.'/src', __DIR__.'/vendor'),
- *     ));
- *
- *     // register a library using the PEAR naming convention
- *     $loader->registerPrefixes(array(
- *         'Swift_' => __DIR__.'/Swift',
- *     ));
- *
- *
- *     // to enable searching the include path (e.g. for PEAR packages)
- *     $loader->useIncludePath(true);
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- *
- * @deprecated since version 2.4, to be removed in 3.0.
- *             Use the {@link ClassLoader} class instead.
- */
-class UniversalClassLoader
-{
-    private $namespaces = array();
-    private $prefixes = array();
-    private $namespaceFallbacks = array();
-    private $prefixFallbacks = array();
-    private $useIncludePath = false;
-
-    /**
-     * Turns on searching the include for class files. Allows easy loading
-     * of installed PEAR packages.
-     *
-     * @param bool $useIncludePath
-     */
-    public function useIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = (bool) $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Gets the configured namespaces.
-     *
-     * @return array A hash with namespaces as keys and directories as values
-     */
-    public function getNamespaces()
-    {
-        return $this->namespaces;
-    }
-
-    /**
-     * Gets the configured class prefixes.
-     *
-     * @return array A hash with class prefixes as keys and directories as values
-     */
-    public function getPrefixes()
-    {
-        return $this->prefixes;
-    }
-
-    /**
-     * Gets the directory(ies) to use as a fallback for namespaces.
-     *
-     * @return array An array of directories
-     */
-    public function getNamespaceFallbacks()
-    {
-        return $this->namespaceFallbacks;
-    }
-
-    /**
-     * Gets the directory(ies) to use as a fallback for class prefixes.
-     *
-     * @return array An array of directories
-     */
-    public function getPrefixFallbacks()
-    {
-        return $this->prefixFallbacks;
-    }
-
-    /**
-     * Registers the directory to use as a fallback for namespaces.
-     *
-     * @param array $dirs An array of directories
-     *
-     * @api
-     */
-    public function registerNamespaceFallbacks(array $dirs)
-    {
-        $this->namespaceFallbacks = $dirs;
-    }
-
-    /**
-     * Registers a directory to use as a fallback for namespaces.
-     *
-     * @param string $dir A directory
-     */
-    public function registerNamespaceFallback($dir)
-    {
-        $this->namespaceFallbacks[] = $dir;
-    }
-
-    /**
-     * Registers directories to use as a fallback for class prefixes.
-     *
-     * @param array $dirs An array of directories
-     *
-     * @api
-     */
-    public function registerPrefixFallbacks(array $dirs)
-    {
-        $this->prefixFallbacks = $dirs;
-    }
-
-    /**
-     * Registers a directory to use as a fallback for class prefixes.
-     *
-     * @param string $dir A directory
-     */
-    public function registerPrefixFallback($dir)
-    {
-        $this->prefixFallbacks[] = $dir;
-    }
-
-    /**
-     * Registers an array of namespaces.
-     *
-     * @param array $namespaces An array of namespaces (namespaces as keys and locations as values)
-     *
-     * @api
-     */
-    public function registerNamespaces(array $namespaces)
-    {
-        foreach ($namespaces as $namespace => $locations) {
-            $this->namespaces[$namespace] = (array) $locations;
-        }
-    }
-
-    /**
-     * Registers a namespace.
-     *
-     * @param string       $namespace The namespace
-     * @param array|string $paths     The location(s) of the namespace
-     *
-     * @api
-     */
-    public function registerNamespace($namespace, $paths)
-    {
-        $this->namespaces[$namespace] = (array) $paths;
-    }
-
-    /**
-     * Registers an array of classes using the PEAR naming convention.
-     *
-     * @param array $classes An array of classes (prefixes as keys and locations as values)
-     *
-     * @api
-     */
-    public function registerPrefixes(array $classes)
-    {
-        foreach ($classes as $prefix => $locations) {
-            $this->prefixes[$prefix] = (array) $locations;
-        }
-    }
-
-    /**
-     * Registers a set of classes using the PEAR naming convention.
-     *
-     * @param string       $prefix The classes prefix
-     * @param array|string $paths  The location(s) of the classes
-     *
-     * @api
-     */
-    public function registerPrefix($prefix, $paths)
-    {
-        $this->prefixes[$prefix] = (array) $paths;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     *
-     * @api
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            require $file;
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|null The path, if found
-     */
-    public function findFile($class)
-    {
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $namespace = substr($class, 0, $pos);
-            $className = substr($class, $pos + 1);
-            $normalizedClass = str_replace('\\', DIRECTORY_SEPARATOR, $namespace).DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $className).'.php';
-            foreach ($this->namespaces as $ns => $dirs) {
-                if (0 !== strpos($namespace, $ns)) {
-                    continue;
-                }
-
-                foreach ($dirs as $dir) {
-                    $file = $dir.DIRECTORY_SEPARATOR.$normalizedClass;
-                    if (is_file($file)) {
-                        return $file;
-                    }
-                }
-            }
-
-            foreach ($this->namespaceFallbacks as $dir) {
-                $file = $dir.DIRECTORY_SEPARATOR.$normalizedClass;
-                if (is_file($file)) {
-                    return $file;
-                }
-            }
-        } else {
-            // PEAR-like class name
-            $normalizedClass = str_replace('_', DIRECTORY_SEPARATOR, $class).'.php';
-            foreach ($this->prefixes as $prefix => $dirs) {
-                if (0 !== strpos($class, $prefix)) {
-                    continue;
-                }
-
-                foreach ($dirs as $dir) {
-                    $file = $dir.DIRECTORY_SEPARATOR.$normalizedClass;
-                    if (is_file($file)) {
-                        return $file;
-                    }
-                }
-            }
-
-            foreach ($this->prefixFallbacks as $dir) {
-                $file = $dir.DIRECTORY_SEPARATOR.$normalizedClass;
-                if (is_file($file)) {
-                    return $file;
-                }
-            }
-        }
-
-        if ($this->useIncludePath && $file = stream_resolve_include_path($normalizedClass)) {
-            return $file;
-        }
-    }
-}
diff --git a/core/vendor/symfony/class-loader/WinCacheClassLoader.php b/core/vendor/symfony/class-loader/WinCacheClassLoader.php
deleted file mode 100644
index 0fc11d0..0000000
--- a/core/vendor/symfony/class-loader/WinCacheClassLoader.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * WinCacheClassLoader implements a wrapping autoloader cached in WinCache.
- *
- * It expects an object implementing a findFile method to find the file. This
- * allow using it as a wrapper around the other loaders of the component (the
- * ClassLoader and the UniversalClassLoader for instance) but also around any
- * other autoloaders following this convention (the Composer one for instance).
- *
- *     // with a Symfony autoloader
- *     use Symfony\Component\ClassLoader\ClassLoader;
- *
- *     $loader = new ClassLoader();
- *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
- *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
- *
- *     // or with a Composer autoloader
- *     use Composer\Autoload\ClassLoader;
- *
- *     $loader = new ClassLoader();
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     $cachedLoader = new WinCacheClassLoader('my_prefix', $loader);
- *
- *     // activate the cached autoloader
- *     $cachedLoader->register();
- *
- *     // eventually deactivate the non-cached loader if it was registered previously
- *     // to be sure to use the cached one.
- *     $loader->unregister();
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Kris Wallsmith <kris@symfony.com>
- * @author Artem Ryzhkov <artem@smart-core.org>
- */
-class WinCacheClassLoader
-{
-    private $prefix;
-
-    /**
-     * A class loader object that implements the findFile() method.
-     *
-     * @var object
-     */
-    protected $decorated;
-
-    /**
-     * Constructor.
-     *
-     * @param string $prefix    The WinCache namespace prefix to use.
-     * @param object $decorated A class loader object that implements the findFile() method.
-     *
-     * @throws \RuntimeException
-     * @throws \InvalidArgumentException
-     */
-    public function __construct($prefix, $decorated)
-    {
-        if (!extension_loaded('wincache')) {
-            throw new \RuntimeException('Unable to use WinCacheClassLoader as WinCache is not enabled.');
-        }
-
-        if (!method_exists($decorated, 'findFile')) {
-            throw new \InvalidArgumentException('The class finder must implement a "findFile" method.');
-        }
-
-        $this->prefix = $prefix;
-        $this->decorated = $decorated;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            require $file;
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds a file by class name while caching lookups to WinCache.
-     *
-     * @param string $class A class name to resolve to file
-     *
-     * @return string|null
-     */
-    public function findFile($class)
-    {
-        if (false === $file = wincache_ucache_get($this->prefix.$class)) {
-            wincache_ucache_set($this->prefix.$class, $file = $this->decorated->findFile($class), 0);
-        }
-
-        return $file;
-    }
-
-    /**
-     * Passes through all unknown calls onto the decorated object.
-     */
-    public function __call($method, $args)
-    {
-        return call_user_func_array(array($this->decorated, $method), $args);
-    }
-}
diff --git a/core/vendor/symfony/class-loader/XcacheClassLoader.php b/core/vendor/symfony/class-loader/XcacheClassLoader.php
deleted file mode 100644
index 19c1303..0000000
--- a/core/vendor/symfony/class-loader/XcacheClassLoader.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\ClassLoader;
-
-/**
- * XcacheClassLoader implements a wrapping autoloader cached in XCache for PHP 5.3.
- *
- * It expects an object implementing a findFile method to find the file. This
- * allows using it as a wrapper around the other loaders of the component (the
- * ClassLoader and the UniversalClassLoader for instance) but also around any
- * other autoloaders following this convention (the Composer one for instance).
- *
- *     // with a Symfony autoloader
- *     use Symfony\Component\ClassLoader\ClassLoader;
- *
- *     $loader = new ClassLoader();
- *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
- *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
- *
- *     // or with a Composer autoloader
- *     use Composer\Autoload\ClassLoader;
- *
- *     $loader = new ClassLoader();
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     $cachedLoader = new XcacheClassLoader('my_prefix', $loader);
- *
- *     // activate the cached autoloader
- *     $cachedLoader->register();
- *
- *     // eventually deactivate the non-cached loader if it was registered previously
- *     // to be sure to use the cached one.
- *     $loader->unregister();
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Kris Wallsmith <kris@symfony.com>
- * @author Kim Hemsø Rasmussen <kimhemsoe@gmail.com>
- *
- * @api
- */
-class XcacheClassLoader
-{
-    private $prefix;
-
-    /**
-     * A class loader object that implements the findFile() method.
-     *
-     * @var object
-     */
-    private $decorated;
-
-    /**
-     * Constructor.
-     *
-     * @param string $prefix    The XCache namespace prefix to use.
-     * @param object $decorated A class loader object that implements the findFile() method.
-     *
-     * @throws \RuntimeException
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function __construct($prefix, $decorated)
-    {
-        if (!extension_loaded('xcache')) {
-            throw new \RuntimeException('Unable to use XcacheClassLoader as XCache is not enabled.');
-        }
-
-        if (!method_exists($decorated, 'findFile')) {
-            throw new \InvalidArgumentException('The class finder must implement a "findFile" method.');
-        }
-
-        $this->prefix = $prefix;
-        $this->decorated = $decorated;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            require $file;
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds a file by class name while caching lookups to Xcache.
-     *
-     * @param string $class A class name to resolve to file
-     *
-     * @return string|null
-     */
-    public function findFile($class)
-    {
-        if (xcache_isset($this->prefix.$class)) {
-            $file = xcache_get($this->prefix.$class);
-        } else {
-            $file = $this->decorated->findFile($class);
-            xcache_set($this->prefix.$class, $file);
-        }
-
-        return $file;
-    }
-
-    /**
-     * Passes through all unknown calls onto the decorated object.
-     */
-    public function __call($method, $args)
-    {
-        return call_user_func_array(array($this->decorated, $method), $args);
-    }
-}
diff --git a/core/vendor/symfony/class-loader/composer.json b/core/vendor/symfony/class-loader/composer.json
deleted file mode 100644
index 6d011b5..0000000
--- a/core/vendor/symfony/class-loader/composer.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "name": "symfony/class-loader",
-    "type": "library",
-    "description": "Symfony ClassLoader Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "minimum-stability": "dev",
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/finder": "~2.0,>=2.0.5"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\ClassLoader\\": "" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/class-loader/phpunit.xml.dist b/core/vendor/symfony/class-loader/phpunit.xml.dist
deleted file mode 100644
index 4856db5..0000000
--- a/core/vendor/symfony/class-loader/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony ClassLoader Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/console/.gitignore b/core/vendor/symfony/console/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/console/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/console/Application.php b/core/vendor/symfony/console/Application.php
deleted file mode 100644
index c816f01..0000000
--- a/core/vendor/symfony/console/Application.php
+++ /dev/null
@@ -1,1177 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console;
-
-use Symfony\Component\Console\Descriptor\TextDescriptor;
-use Symfony\Component\Console\Descriptor\XmlDescriptor;
-use Symfony\Component\Console\Helper\DebugFormatterHelper;
-use Symfony\Component\Console\Helper\ProcessHelper;
-use Symfony\Component\Console\Helper\QuestionHelper;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputAwareInterface;
-use Symfony\Component\Console\Output\BufferedOutput;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\ConsoleOutput;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Command\HelpCommand;
-use Symfony\Component\Console\Command\ListCommand;
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Helper\FormatterHelper;
-use Symfony\Component\Console\Helper\DialogHelper;
-use Symfony\Component\Console\Helper\ProgressHelper;
-use Symfony\Component\Console\Helper\TableHelper;
-use Symfony\Component\Console\Event\ConsoleCommandEvent;
-use Symfony\Component\Console\Event\ConsoleExceptionEvent;
-use Symfony\Component\Console\Event\ConsoleTerminateEvent;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * An Application is the container for a collection of commands.
- *
- * It is the main entry point of a Console application.
- *
- * This class is optimized for a standard CLI environment.
- *
- * Usage:
- *
- *     $app = new Application('myapp', '1.0 (stable)');
- *     $app->add(new SimpleCommand());
- *     $app->run();
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Application
-{
-    private $commands = array();
-    private $wantHelps = false;
-    private $runningCommand;
-    private $name;
-    private $version;
-    private $catchExceptions = true;
-    private $autoExit = true;
-    private $definition;
-    private $helperSet;
-    private $dispatcher;
-    private $terminalDimensions;
-    private $defaultCommand;
-
-    /**
-     * Constructor.
-     *
-     * @param string $name    The name of the application
-     * @param string $version The version of the application
-     *
-     * @api
-     */
-    public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN')
-    {
-        $this->name = $name;
-        $this->version = $version;
-        $this->defaultCommand = 'list';
-        $this->helperSet = $this->getDefaultHelperSet();
-        $this->definition = $this->getDefaultInputDefinition();
-
-        foreach ($this->getDefaultCommands() as $command) {
-            $this->add($command);
-        }
-    }
-
-    public function setDispatcher(EventDispatcherInterface $dispatcher)
-    {
-        $this->dispatcher = $dispatcher;
-    }
-
-    /**
-     * Runs the current application.
-     *
-     * @param InputInterface  $input  An Input instance
-     * @param OutputInterface $output An Output instance
-     *
-     * @return int 0 if everything went fine, or an error code
-     *
-     * @throws \Exception When doRun returns Exception
-     *
-     * @api
-     */
-    public function run(InputInterface $input = null, OutputInterface $output = null)
-    {
-        if (null === $input) {
-            $input = new ArgvInput();
-        }
-
-        if (null === $output) {
-            $output = new ConsoleOutput();
-        }
-
-        $this->configureIO($input, $output);
-
-        try {
-            $exitCode = $this->doRun($input, $output);
-        } catch (\Exception $e) {
-            if (!$this->catchExceptions) {
-                throw $e;
-            }
-
-            if ($output instanceof ConsoleOutputInterface) {
-                $this->renderException($e, $output->getErrorOutput());
-            } else {
-                $this->renderException($e, $output);
-            }
-
-            $exitCode = $e->getCode();
-            if (is_numeric($exitCode)) {
-                $exitCode = (int) $exitCode;
-                if (0 === $exitCode) {
-                    $exitCode = 1;
-                }
-            } else {
-                $exitCode = 1;
-            }
-        }
-
-        if ($this->autoExit) {
-            if ($exitCode > 255) {
-                $exitCode = 255;
-            }
-
-            exit($exitCode);
-        }
-
-        return $exitCode;
-    }
-
-    /**
-     * Runs the current application.
-     *
-     * @param InputInterface  $input  An Input instance
-     * @param OutputInterface $output An Output instance
-     *
-     * @return int 0 if everything went fine, or an error code
-     */
-    public function doRun(InputInterface $input, OutputInterface $output)
-    {
-        if (true === $input->hasParameterOption(array('--version', '-V'))) {
-            $output->writeln($this->getLongVersion());
-
-            return 0;
-        }
-
-        $name = $this->getCommandName($input);
-        if (true === $input->hasParameterOption(array('--help', '-h'))) {
-            if (!$name) {
-                $name = 'help';
-                $input = new ArrayInput(array('command' => 'help'));
-            } else {
-                $this->wantHelps = true;
-            }
-        }
-
-        if (!$name) {
-            $name = $this->defaultCommand;
-            $input = new ArrayInput(array('command' => $this->defaultCommand));
-        }
-
-        // the command name MUST be the first element of the input
-        $command = $this->find($name);
-
-        $this->runningCommand = $command;
-        $exitCode = $this->doRunCommand($command, $input, $output);
-        $this->runningCommand = null;
-
-        return $exitCode;
-    }
-
-    /**
-     * Set a helper set to be used with the command.
-     *
-     * @param HelperSet $helperSet The helper set
-     *
-     * @api
-     */
-    public function setHelperSet(HelperSet $helperSet)
-    {
-        $this->helperSet = $helperSet;
-    }
-
-    /**
-     * Get the helper set associated with the command.
-     *
-     * @return HelperSet The HelperSet instance associated with this command
-     *
-     * @api
-     */
-    public function getHelperSet()
-    {
-        return $this->helperSet;
-    }
-
-    /**
-     * Set an input definition set to be used with this application.
-     *
-     * @param InputDefinition $definition The input definition
-     *
-     * @api
-     */
-    public function setDefinition(InputDefinition $definition)
-    {
-        $this->definition = $definition;
-    }
-
-    /**
-     * Gets the InputDefinition related to this Application.
-     *
-     * @return InputDefinition The InputDefinition instance
-     */
-    public function getDefinition()
-    {
-        return $this->definition;
-    }
-
-    /**
-     * Gets the help message.
-     *
-     * @return string A help message.
-     */
-    public function getHelp()
-    {
-        return $this->getLongVersion();
-    }
-
-    /**
-     * Sets whether to catch exceptions or not during commands execution.
-     *
-     * @param bool $boolean Whether to catch exceptions or not during commands execution
-     *
-     * @api
-     */
-    public function setCatchExceptions($boolean)
-    {
-        $this->catchExceptions = (bool) $boolean;
-    }
-
-    /**
-     * Sets whether to automatically exit after a command execution or not.
-     *
-     * @param bool $boolean Whether to automatically exit after a command execution or not
-     *
-     * @api
-     */
-    public function setAutoExit($boolean)
-    {
-        $this->autoExit = (bool) $boolean;
-    }
-
-    /**
-     * Gets the name of the application.
-     *
-     * @return string The application name
-     *
-     * @api
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Sets the application name.
-     *
-     * @param string $name The application name
-     *
-     * @api
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * Gets the application version.
-     *
-     * @return string The application version
-     *
-     * @api
-     */
-    public function getVersion()
-    {
-        return $this->version;
-    }
-
-    /**
-     * Sets the application version.
-     *
-     * @param string $version The application version
-     *
-     * @api
-     */
-    public function setVersion($version)
-    {
-        $this->version = $version;
-    }
-
-    /**
-     * Returns the long version of the application.
-     *
-     * @return string The long application version
-     *
-     * @api
-     */
-    public function getLongVersion()
-    {
-        if ('UNKNOWN' !== $this->getName() && 'UNKNOWN' !== $this->getVersion()) {
-            return sprintf('<info>%s</info> version <comment>%s</comment>', $this->getName(), $this->getVersion());
-        }
-
-        return '<info>Console Tool</info>';
-    }
-
-    /**
-     * Registers a new command.
-     *
-     * @param string $name The command name
-     *
-     * @return Command The newly created command
-     *
-     * @api
-     */
-    public function register($name)
-    {
-        return $this->add(new Command($name));
-    }
-
-    /**
-     * Adds an array of command objects.
-     *
-     * @param Command[] $commands An array of commands
-     *
-     * @api
-     */
-    public function addCommands(array $commands)
-    {
-        foreach ($commands as $command) {
-            $this->add($command);
-        }
-    }
-
-    /**
-     * Adds a command object.
-     *
-     * If a command with the same name already exists, it will be overridden.
-     *
-     * @param Command $command A Command object
-     *
-     * @return Command The registered command
-     *
-     * @api
-     */
-    public function add(Command $command)
-    {
-        $command->setApplication($this);
-
-        if (!$command->isEnabled()) {
-            $command->setApplication(null);
-
-            return;
-        }
-
-        if (null === $command->getDefinition()) {
-            throw new \LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', get_class($command)));
-        }
-
-        $this->commands[$command->getName()] = $command;
-
-        foreach ($command->getAliases() as $alias) {
-            $this->commands[$alias] = $command;
-        }
-
-        return $command;
-    }
-
-    /**
-     * Returns a registered command by name or alias.
-     *
-     * @param string $name The command name or alias
-     *
-     * @return Command A Command object
-     *
-     * @throws \InvalidArgumentException When command name given does not exist
-     *
-     * @api
-     */
-    public function get($name)
-    {
-        if (!isset($this->commands[$name])) {
-            throw new \InvalidArgumentException(sprintf('The command "%s" does not exist.', $name));
-        }
-
-        $command = $this->commands[$name];
-
-        if ($this->wantHelps) {
-            $this->wantHelps = false;
-
-            $helpCommand = $this->get('help');
-            $helpCommand->setCommand($command);
-
-            return $helpCommand;
-        }
-
-        return $command;
-    }
-
-    /**
-     * Returns true if the command exists, false otherwise.
-     *
-     * @param string $name The command name or alias
-     *
-     * @return bool true if the command exists, false otherwise
-     *
-     * @api
-     */
-    public function has($name)
-    {
-        return isset($this->commands[$name]);
-    }
-
-    /**
-     * Returns an array of all unique namespaces used by currently registered commands.
-     *
-     * It does not returns the global namespace which always exists.
-     *
-     * @return array An array of namespaces
-     */
-    public function getNamespaces()
-    {
-        $namespaces = array();
-        foreach ($this->commands as $command) {
-            $namespaces = array_merge($namespaces, $this->extractAllNamespaces($command->getName()));
-
-            foreach ($command->getAliases() as $alias) {
-                $namespaces = array_merge($namespaces, $this->extractAllNamespaces($alias));
-            }
-        }
-
-        return array_values(array_unique(array_filter($namespaces)));
-    }
-
-    /**
-     * Finds a registered namespace by a name or an abbreviation.
-     *
-     * @param string $namespace A namespace or abbreviation to search for
-     *
-     * @return string A registered namespace
-     *
-     * @throws \InvalidArgumentException When namespace is incorrect or ambiguous
-     */
-    public function findNamespace($namespace)
-    {
-        $allNamespaces = $this->getNamespaces();
-        $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $namespace);
-        $namespaces = preg_grep('{^'.$expr.'}', $allNamespaces);
-
-        if (empty($namespaces)) {
-            $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace);
-
-            if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) {
-                if (1 == count($alternatives)) {
-                    $message .= "\n\nDid you mean this?\n    ";
-                } else {
-                    $message .= "\n\nDid you mean one of these?\n    ";
-                }
-
-                $message .= implode("\n    ", $alternatives);
-            }
-
-            throw new \InvalidArgumentException($message);
-        }
-
-        $exact = in_array($namespace, $namespaces, true);
-        if (count($namespaces) > 1 && !$exact) {
-            throw new \InvalidArgumentException(sprintf('The namespace "%s" is ambiguous (%s).', $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))));
-        }
-
-        return $exact ? $namespace : reset($namespaces);
-    }
-
-    /**
-     * Finds a command by name or alias.
-     *
-     * Contrary to get, this command tries to find the best
-     * match if you give it an abbreviation of a name or alias.
-     *
-     * @param string $name A command name or a command alias
-     *
-     * @return Command A Command instance
-     *
-     * @throws \InvalidArgumentException When command name is incorrect or ambiguous
-     *
-     * @api
-     */
-    public function find($name)
-    {
-        $allCommands = array_keys($this->commands);
-        $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $name);
-        $commands = preg_grep('{^'.$expr.'}', $allCommands);
-
-        if (empty($commands) || count(preg_grep('{^'.$expr.'$}', $commands)) < 1) {
-            if (false !== $pos = strrpos($name, ':')) {
-                // check if a namespace exists and contains commands
-                $this->findNamespace(substr($name, 0, $pos));
-            }
-
-            $message = sprintf('Command "%s" is not defined.', $name);
-
-            if ($alternatives = $this->findAlternatives($name, $allCommands)) {
-                if (1 == count($alternatives)) {
-                    $message .= "\n\nDid you mean this?\n    ";
-                } else {
-                    $message .= "\n\nDid you mean one of these?\n    ";
-                }
-                $message .= implode("\n    ", $alternatives);
-            }
-
-            throw new \InvalidArgumentException($message);
-        }
-
-        // filter out aliases for commands which are already on the list
-        if (count($commands) > 1) {
-            $commandList = $this->commands;
-            $commands = array_filter($commands, function ($nameOrAlias) use ($commandList, $commands) {
-                $commandName = $commandList[$nameOrAlias]->getName();
-
-                return $commandName === $nameOrAlias || !in_array($commandName, $commands);
-            });
-        }
-
-        $exact = in_array($name, $commands, true);
-        if (count($commands) > 1 && !$exact) {
-            $suggestions = $this->getAbbreviationSuggestions(array_values($commands));
-
-            throw new \InvalidArgumentException(sprintf('Command "%s" is ambiguous (%s).', $name, $suggestions));
-        }
-
-        return $this->get($exact ? $name : reset($commands));
-    }
-
-    /**
-     * Gets the commands (registered in the given namespace if provided).
-     *
-     * The array keys are the full names and the values the command instances.
-     *
-     * @param string $namespace A namespace name
-     *
-     * @return Command[] An array of Command instances
-     *
-     * @api
-     */
-    public function all($namespace = null)
-    {
-        if (null === $namespace) {
-            return $this->commands;
-        }
-
-        $commands = array();
-        foreach ($this->commands as $name => $command) {
-            if ($namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1)) {
-                $commands[$name] = $command;
-            }
-        }
-
-        return $commands;
-    }
-
-    /**
-     * Returns an array of possible abbreviations given a set of names.
-     *
-     * @param array $names An array of names
-     *
-     * @return array An array of abbreviations
-     */
-    public static function getAbbreviations($names)
-    {
-        $abbrevs = array();
-        foreach ($names as $name) {
-            for ($len = strlen($name); $len > 0; --$len) {
-                $abbrev = substr($name, 0, $len);
-                $abbrevs[$abbrev][] = $name;
-            }
-        }
-
-        return $abbrevs;
-    }
-
-    /**
-     * Returns a text representation of the Application.
-     *
-     * @param string $namespace An optional namespace name
-     * @param bool   $raw       Whether to return raw command list
-     *
-     * @return string A string representing the Application
-     *
-     * @deprecated since version 2.3, to be removed in 3.0.
-     */
-    public function asText($namespace = null, $raw = false)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $descriptor = new TextDescriptor();
-        $output = new BufferedOutput(BufferedOutput::VERBOSITY_NORMAL, !$raw);
-        $descriptor->describe($output, $this, array('namespace' => $namespace, 'raw_output' => true));
-
-        return $output->fetch();
-    }
-
-    /**
-     * Returns an XML representation of the Application.
-     *
-     * @param string $namespace An optional namespace name
-     * @param bool   $asDom     Whether to return a DOM or an XML string
-     *
-     * @return string|\DOMDocument An XML string representing the Application
-     *
-     * @deprecated since version 2.3, to be removed in 3.0.
-     */
-    public function asXml($namespace = null, $asDom = false)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $descriptor = new XmlDescriptor();
-
-        if ($asDom) {
-            return $descriptor->getApplicationDocument($this, $namespace);
-        }
-
-        $output = new BufferedOutput();
-        $descriptor->describe($output, $this, array('namespace' => $namespace));
-
-        return $output->fetch();
-    }
-
-    /**
-     * Renders a caught exception.
-     *
-     * @param \Exception      $e      An exception instance
-     * @param OutputInterface $output An OutputInterface instance
-     */
-    public function renderException($e, $output)
-    {
-        do {
-            $title = sprintf('  [%s]  ', get_class($e));
-
-            $len = $this->stringWidth($title);
-
-            $width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX;
-            // HHVM only accepts 32 bits integer in str_split, even when PHP_INT_MAX is a 64 bit integer: https://github.com/facebook/hhvm/issues/1327
-            if (defined('HHVM_VERSION') && $width > 1 << 31) {
-                $width = 1 << 31;
-            }
-            $formatter = $output->getFormatter();
-            $lines = array();
-            foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) {
-                foreach ($this->splitStringByWidth($line, $width - 4) as $line) {
-                    // pre-format lines to get the right string length
-                    $lineLength = $this->stringWidth(preg_replace('/\[[^m]*m/', '', $formatter->format($line))) + 4;
-                    $lines[] = array($line, $lineLength);
-
-                    $len = max($lineLength, $len);
-                }
-            }
-
-            $messages = array('', '');
-            $messages[] = $emptyLine = $formatter->format(sprintf('<error>%s</error>', str_repeat(' ', $len)));
-            $messages[] = $formatter->format(sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - $this->stringWidth($title)))));
-            foreach ($lines as $line) {
-                $messages[] = $formatter->format(sprintf('<error>  %s  %s</error>', $line[0], str_repeat(' ', $len - $line[1])));
-            }
-            $messages[] = $emptyLine;
-            $messages[] = '';
-            $messages[] = '';
-
-            $output->writeln($messages, OutputInterface::OUTPUT_RAW);
-
-            if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
-                $output->writeln('<comment>Exception trace:</comment>');
-
-                // exception related properties
-                $trace = $e->getTrace();
-                array_unshift($trace, array(
-                    'function' => '',
-                    'file' => $e->getFile() !== null ? $e->getFile() : 'n/a',
-                    'line' => $e->getLine() !== null ? $e->getLine() : 'n/a',
-                    'args' => array(),
-                ));
-
-                for ($i = 0, $count = count($trace); $i < $count; ++$i) {
-                    $class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
-                    $type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
-                    $function = $trace[$i]['function'];
-                    $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a';
-                    $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a';
-
-                    $output->writeln(sprintf(' %s%s%s() at <info>%s:%s</info>', $class, $type, $function, $file, $line));
-                }
-
-                $output->writeln('');
-                $output->writeln('');
-            }
-        } while ($e = $e->getPrevious());
-
-        if (null !== $this->runningCommand) {
-            $output->writeln(sprintf('<info>%s</info>', sprintf($this->runningCommand->getSynopsis(), $this->getName())));
-            $output->writeln('');
-            $output->writeln('');
-        }
-    }
-
-    /**
-     * Tries to figure out the terminal width in which this application runs.
-     *
-     * @return int|null
-     */
-    protected function getTerminalWidth()
-    {
-        $dimensions = $this->getTerminalDimensions();
-
-        return $dimensions[0];
-    }
-
-    /**
-     * Tries to figure out the terminal height in which this application runs.
-     *
-     * @return int|null
-     */
-    protected function getTerminalHeight()
-    {
-        $dimensions = $this->getTerminalDimensions();
-
-        return $dimensions[1];
-    }
-
-    /**
-     * Tries to figure out the terminal dimensions based on the current environment.
-     *
-     * @return array Array containing width and height
-     */
-    public function getTerminalDimensions()
-    {
-        if ($this->terminalDimensions) {
-            return $this->terminalDimensions;
-        }
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            // extract [w, H] from "wxh (WxH)"
-            if (preg_match('/^(\d+)x\d+ \(\d+x(\d+)\)$/', trim(getenv('ANSICON')), $matches)) {
-                return array((int) $matches[1], (int) $matches[2]);
-            }
-            // extract [w, h] from "wxh"
-            if (preg_match('/^(\d+)x(\d+)$/', $this->getConsoleMode(), $matches)) {
-                return array((int) $matches[1], (int) $matches[2]);
-            }
-        }
-
-        if ($sttyString = $this->getSttyColumns()) {
-            // extract [w, h] from "rows h; columns w;"
-            if (preg_match('/rows.(\d+);.columns.(\d+);/i', $sttyString, $matches)) {
-                return array((int) $matches[2], (int) $matches[1]);
-            }
-            // extract [w, h] from "; h rows; w columns"
-            if (preg_match('/;.(\d+).rows;.(\d+).columns/i', $sttyString, $matches)) {
-                return array((int) $matches[2], (int) $matches[1]);
-            }
-        }
-
-        return array(null, null);
-    }
-
-    /**
-     * Sets terminal dimensions.
-     *
-     * Can be useful to force terminal dimensions for functional tests.
-     *
-     * @param int $width  The width
-     * @param int $height The height
-     *
-     * @return Application The current application
-     */
-    public function setTerminalDimensions($width, $height)
-    {
-        $this->terminalDimensions = array($width, $height);
-
-        return $this;
-    }
-
-    /**
-     * Configures the input and output instances based on the user arguments and options.
-     *
-     * @param InputInterface  $input  An InputInterface instance
-     * @param OutputInterface $output An OutputInterface instance
-     */
-    protected function configureIO(InputInterface $input, OutputInterface $output)
-    {
-        if (true === $input->hasParameterOption(array('--ansi'))) {
-            $output->setDecorated(true);
-        } elseif (true === $input->hasParameterOption(array('--no-ansi'))) {
-            $output->setDecorated(false);
-        }
-
-        if (true === $input->hasParameterOption(array('--no-interaction', '-n'))) {
-            $input->setInteractive(false);
-        } elseif (function_exists('posix_isatty') && $this->getHelperSet()->has('question')) {
-            $inputStream = $this->getHelperSet()->get('question')->getInputStream();
-            if (!@posix_isatty($inputStream) && false === getenv('SHELL_INTERACTIVE')) {
-                $input->setInteractive(false);
-            }
-        }
-
-        if (true === $input->hasParameterOption(array('--quiet', '-q'))) {
-            $output->setVerbosity(OutputInterface::VERBOSITY_QUIET);
-        } else {
-            if ($input->hasParameterOption('-vvv') || $input->hasParameterOption('--verbose=3') || $input->getParameterOption('--verbose') === 3) {
-                $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
-            } elseif ($input->hasParameterOption('-vv') || $input->hasParameterOption('--verbose=2') || $input->getParameterOption('--verbose') === 2) {
-                $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
-            } elseif ($input->hasParameterOption('-v') || $input->hasParameterOption('--verbose=1') || $input->hasParameterOption('--verbose') || $input->getParameterOption('--verbose')) {
-                $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
-            }
-        }
-    }
-
-    /**
-     * Runs the current command.
-     *
-     * If an event dispatcher has been attached to the application,
-     * events are also dispatched during the life-cycle of the command.
-     *
-     * @param Command         $command A Command instance
-     * @param InputInterface  $input   An Input instance
-     * @param OutputInterface $output  An Output instance
-     *
-     * @return int 0 if everything went fine, or an error code
-     *
-     * @throws \Exception when the command being run threw an exception
-     */
-    protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
-    {
-        foreach ($command->getHelperSet() as $helper) {
-            if ($helper instanceof InputAwareInterface) {
-                $helper->setInput($input);
-            }
-        }
-
-        if (null === $this->dispatcher) {
-            return $command->run($input, $output);
-        }
-
-        $event = new ConsoleCommandEvent($command, $input, $output);
-        $this->dispatcher->dispatch(ConsoleEvents::COMMAND, $event);
-
-        if ($event->commandShouldRun()) {
-            try {
-                $exitCode = $command->run($input, $output);
-            } catch (\Exception $e) {
-                $event = new ConsoleTerminateEvent($command, $input, $output, $e->getCode());
-                $this->dispatcher->dispatch(ConsoleEvents::TERMINATE, $event);
-
-                $event = new ConsoleExceptionEvent($command, $input, $output, $e, $event->getExitCode());
-                $this->dispatcher->dispatch(ConsoleEvents::EXCEPTION, $event);
-
-                throw $event->getException();
-            }
-        } else {
-            $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED;
-        }
-
-        $event = new ConsoleTerminateEvent($command, $input, $output, $exitCode);
-        $this->dispatcher->dispatch(ConsoleEvents::TERMINATE, $event);
-
-        return $event->getExitCode();
-    }
-
-    /**
-     * Gets the name of the command based on input.
-     *
-     * @param InputInterface $input The input interface
-     *
-     * @return string The command name
-     */
-    protected function getCommandName(InputInterface $input)
-    {
-        return $input->getFirstArgument();
-    }
-
-    /**
-     * Gets the default input definition.
-     *
-     * @return InputDefinition An InputDefinition instance
-     */
-    protected function getDefaultInputDefinition()
-    {
-        return new InputDefinition(array(
-            new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'),
-
-            new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message'),
-            new InputOption('--quiet', '-q', InputOption::VALUE_NONE, 'Do not output any message'),
-            new InputOption('--verbose', '-v|vv|vvv', InputOption::VALUE_NONE, 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug'),
-            new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this application version'),
-            new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output'),
-            new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output'),
-            new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question'),
-        ));
-    }
-
-    /**
-     * Gets the default commands that should always be available.
-     *
-     * @return Command[] An array of default Command instances
-     */
-    protected function getDefaultCommands()
-    {
-        return array(new HelpCommand(), new ListCommand());
-    }
-
-    /**
-     * Gets the default helper set with the helpers that should always be available.
-     *
-     * @return HelperSet A HelperSet instance
-     */
-    protected function getDefaultHelperSet()
-    {
-        return new HelperSet(array(
-            new FormatterHelper(),
-            new DialogHelper(false),
-            new ProgressHelper(false),
-            new TableHelper(false),
-            new DebugFormatterHelper(),
-            new ProcessHelper(),
-            new QuestionHelper(),
-        ));
-    }
-
-    /**
-     * Runs and parses stty -a if it's available, suppressing any error output.
-     *
-     * @return string
-     */
-    private function getSttyColumns()
-    {
-        if (!function_exists('proc_open')) {
-            return;
-        }
-
-        $descriptorspec = array(1 => array('pipe', 'w'), 2 => array('pipe', 'w'));
-        $process = proc_open('stty -a | grep columns', $descriptorspec, $pipes, null, null, array('suppress_errors' => true));
-        if (is_resource($process)) {
-            $info = stream_get_contents($pipes[1]);
-            fclose($pipes[1]);
-            fclose($pipes[2]);
-            proc_close($process);
-
-            return $info;
-        }
-    }
-
-    /**
-     * Runs and parses mode CON if it's available, suppressing any error output.
-     *
-     * @return string <width>x<height> or null if it could not be parsed
-     */
-    private function getConsoleMode()
-    {
-        if (!function_exists('proc_open')) {
-            return;
-        }
-
-        $descriptorspec = array(1 => array('pipe', 'w'), 2 => array('pipe', 'w'));
-        $process = proc_open('mode CON', $descriptorspec, $pipes, null, null, array('suppress_errors' => true));
-        if (is_resource($process)) {
-            $info = stream_get_contents($pipes[1]);
-            fclose($pipes[1]);
-            fclose($pipes[2]);
-            proc_close($process);
-
-            if (preg_match('/--------+\r?\n.+?(\d+)\r?\n.+?(\d+)\r?\n/', $info, $matches)) {
-                return $matches[2].'x'.$matches[1];
-            }
-        }
-    }
-
-    /**
-     * Returns abbreviated suggestions in string format.
-     *
-     * @param array $abbrevs Abbreviated suggestions to convert
-     *
-     * @return string A formatted string of abbreviated suggestions
-     */
-    private function getAbbreviationSuggestions($abbrevs)
-    {
-        return sprintf('%s, %s%s', $abbrevs[0], $abbrevs[1], count($abbrevs) > 2 ? sprintf(' and %d more', count($abbrevs) - 2) : '');
-    }
-
-    /**
-     * Returns the namespace part of the command name.
-     *
-     * This method is not part of public API and should not be used directly.
-     *
-     * @param string $name  The full name of the command
-     * @param string $limit The maximum number of parts of the namespace
-     *
-     * @return string The namespace of the command
-     */
-    public function extractNamespace($name, $limit = null)
-    {
-        $parts = explode(':', $name);
-        array_pop($parts);
-
-        return implode(':', null === $limit ? $parts : array_slice($parts, 0, $limit));
-    }
-
-    /**
-     * Finds alternative of $name among $collection,
-     * if nothing is found in $collection, try in $abbrevs.
-     *
-     * @param string             $name       The string
-     * @param array|\Traversable $collection The collection
-     *
-     * @return array A sorted array of similar string
-     */
-    private function findAlternatives($name, $collection)
-    {
-        $threshold = 1e3;
-        $alternatives = array();
-
-        $collectionParts = array();
-        foreach ($collection as $item) {
-            $collectionParts[$item] = explode(':', $item);
-        }
-
-        foreach (explode(':', $name) as $i => $subname) {
-            foreach ($collectionParts as $collectionName => $parts) {
-                $exists = isset($alternatives[$collectionName]);
-                if (!isset($parts[$i]) && $exists) {
-                    $alternatives[$collectionName] += $threshold;
-                    continue;
-                } elseif (!isset($parts[$i])) {
-                    continue;
-                }
-
-                $lev = levenshtein($subname, $parts[$i]);
-                if ($lev <= strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) {
-                    $alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev;
-                } elseif ($exists) {
-                    $alternatives[$collectionName] += $threshold;
-                }
-            }
-        }
-
-        foreach ($collection as $item) {
-            $lev = levenshtein($name, $item);
-            if ($lev <= strlen($name) / 3 || false !== strpos($item, $name)) {
-                $alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev;
-            }
-        }
-
-        $alternatives = array_filter($alternatives, function ($lev) use ($threshold) { return $lev < 2 * $threshold; });
-        asort($alternatives);
-
-        return array_keys($alternatives);
-    }
-
-    /**
-     * Sets the default Command name.
-     *
-     * @param string $commandName The Command name
-     */
-    public function setDefaultCommand($commandName)
-    {
-        $this->defaultCommand = $commandName;
-    }
-
-    private function stringWidth($string)
-    {
-        if (!function_exists('mb_strwidth')) {
-            return strlen($string);
-        }
-
-        if (false === $encoding = mb_detect_encoding($string)) {
-            return strlen($string);
-        }
-
-        return mb_strwidth($string, $encoding);
-    }
-
-    private function splitStringByWidth($string, $width)
-    {
-        // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly.
-        // additionally, array_slice() is not enough as some character has doubled width.
-        // we need a function to split string not by character count but by string width
-
-        if (!function_exists('mb_strwidth')) {
-            return str_split($string, $width);
-        }
-
-        if (false === $encoding = mb_detect_encoding($string)) {
-            return str_split($string, $width);
-        }
-
-        $utf8String = mb_convert_encoding($string, 'utf8', $encoding);
-        $lines = array();
-        $line = '';
-        foreach (preg_split('//u', $utf8String) as $char) {
-            // test if $char could be appended to current line
-            if (mb_strwidth($line.$char, 'utf8') <= $width) {
-                $line .= $char;
-                continue;
-            }
-            // if not, push current line to array and make new line
-            $lines[] = str_pad($line, $width);
-            $line = $char;
-        }
-        if ('' !== $line) {
-            $lines[] = count($lines) ? str_pad($line, $width) : $line;
-        }
-
-        mb_convert_variables($encoding, 'utf8', $lines);
-
-        return $lines;
-    }
-
-    /**
-     * Returns all namespaces of the command name.
-     *
-     * @param string $name The full name of the command
-     *
-     * @return array The namespaces of the command
-     */
-    private function extractAllNamespaces($name)
-    {
-        // -1 as third argument is needed to skip the command short name when exploding
-        $parts = explode(':', $name, -1);
-        $namespaces = array();
-
-        foreach ($parts as $part) {
-            if (count($namespaces)) {
-                $namespaces[] = end($namespaces).':'.$part;
-            } else {
-                $namespaces[] = $part;
-            }
-        }
-
-        return $namespaces;
-    }
-}
diff --git a/core/vendor/symfony/console/CHANGELOG.md b/core/vendor/symfony/console/CHANGELOG.md
deleted file mode 100644
index 07254c6..0000000
--- a/core/vendor/symfony/console/CHANGELOG.md
+++ /dev/null
@@ -1,62 +0,0 @@
-CHANGELOG
-=========
-
-2.6.0
------
-
- * added a Process helper
- * added a DebugFormatter helper
-
-2.5.0
------
-
- * deprecated the dialog helper (use the question helper instead)
- * deprecated TableHelper in favor of Table
- * deprecated ProgressHelper in favor of ProgressBar
- * added ConsoleLogger
- * added a question helper
- * added a way to set the process name of a command
- * added a way to set a default command instead of `ListCommand`
-
-2.4.0
------
-
- * added a way to force terminal dimensions
- * added a convenient method to detect verbosity level
- * [BC BREAK] made descriptors use output instead of returning a string
-
-2.3.0
------
-
- * added multiselect support to the select dialog helper
- * added Table Helper for tabular data rendering
- * added support for events in `Application`
- * added a way to normalize EOLs in `ApplicationTester::getDisplay()` and `CommandTester::getDisplay()`
- * added a way to set the progress bar progress via the `setCurrent` method
- * added support for multiple InputOption shortcuts, written as `'-a|-b|-c'`
- * added two additional verbosity levels, VERBOSITY_VERY_VERBOSE and VERBOSITY_DEBUG
-
-2.2.0
------
-
- * added support for colorization on Windows via ConEmu
- * add a method to Dialog Helper to ask for a question and hide the response
- * added support for interactive selections in console (DialogHelper::select())
- * added support for autocompletion as you type in Dialog Helper
-
-2.1.0
------
-
- * added ConsoleOutputInterface
- * added the possibility to disable a command (Command::isEnabled())
- * added suggestions when a command does not exist
- * added a --raw option to the list command
- * added support for STDERR in the console output class (errors are now sent
-   to STDERR)
- * made the defaults (helper set, commands, input definition) in Application
-   more easily customizable
- * added support for the shell even if readline is not available
- * added support for process isolation in Symfony shell via
-   `--process-isolation` switch
- * added support for `--`, which disables options parsing after that point
-   (tokens will be parsed as arguments)
diff --git a/core/vendor/symfony/console/Command/Command.php b/core/vendor/symfony/console/Command/Command.php
deleted file mode 100644
index e664263..0000000
--- a/core/vendor/symfony/console/Command/Command.php
+++ /dev/null
@@ -1,697 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Command;
-
-use Symfony\Component\Console\Descriptor\TextDescriptor;
-use Symfony\Component\Console\Descriptor\XmlDescriptor;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\BufferedOutput;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Helper\HelperSet;
-
-/**
- * Base class for all commands.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Command
-{
-    private $application;
-    private $name;
-    private $processTitle;
-    private $aliases = array();
-    private $definition;
-    private $help;
-    private $description;
-    private $ignoreValidationErrors = false;
-    private $applicationDefinitionMerged = false;
-    private $applicationDefinitionMergedWithArgs = false;
-    private $code;
-    private $synopsis = array();
-    private $usages = array();
-    private $helperSet;
-
-    /**
-     * Constructor.
-     *
-     * @param string|null $name The name of the command; passing null means it must be set in configure()
-     *
-     * @throws \LogicException When the command name is empty
-     *
-     * @api
-     */
-    public function __construct($name = null)
-    {
-        $this->definition = new InputDefinition();
-
-        if (null !== $name) {
-            $this->setName($name);
-        }
-
-        $this->configure();
-
-        if (!$this->name) {
-            throw new \LogicException(sprintf('The command defined in "%s" cannot have an empty name.', get_class($this)));
-        }
-    }
-
-    /**
-     * Ignores validation errors.
-     *
-     * This is mainly useful for the help command.
-     */
-    public function ignoreValidationErrors()
-    {
-        $this->ignoreValidationErrors = true;
-    }
-
-    /**
-     * Sets the application instance for this command.
-     *
-     * @param Application $application An Application instance
-     *
-     * @api
-     */
-    public function setApplication(Application $application = null)
-    {
-        $this->application = $application;
-        if ($application) {
-            $this->setHelperSet($application->getHelperSet());
-        } else {
-            $this->helperSet = null;
-        }
-    }
-
-    /**
-     * Sets the helper set.
-     *
-     * @param HelperSet $helperSet A HelperSet instance
-     */
-    public function setHelperSet(HelperSet $helperSet)
-    {
-        $this->helperSet = $helperSet;
-    }
-
-    /**
-     * Gets the helper set.
-     *
-     * @return HelperSet A HelperSet instance
-     */
-    public function getHelperSet()
-    {
-        return $this->helperSet;
-    }
-
-    /**
-     * Gets the application instance for this command.
-     *
-     * @return Application An Application instance
-     *
-     * @api
-     */
-    public function getApplication()
-    {
-        return $this->application;
-    }
-
-    /**
-     * Checks whether the command is enabled or not in the current environment.
-     *
-     * Override this to check for x or y and return false if the command can not
-     * run properly under the current conditions.
-     *
-     * @return bool
-     */
-    public function isEnabled()
-    {
-        return true;
-    }
-
-    /**
-     * Configures the current command.
-     */
-    protected function configure()
-    {
-    }
-
-    /**
-     * Executes the current command.
-     *
-     * This method is not abstract because you can use this class
-     * as a concrete class. In this case, instead of defining the
-     * execute() method, you set the code to execute by passing
-     * a Closure to the setCode() method.
-     *
-     * @param InputInterface  $input  An InputInterface instance
-     * @param OutputInterface $output An OutputInterface instance
-     *
-     * @return null|int null or 0 if everything went fine, or an error code
-     *
-     * @throws \LogicException When this abstract method is not implemented
-     *
-     * @see setCode()
-     */
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        throw new \LogicException('You must override the execute() method in the concrete command class.');
-    }
-
-    /**
-     * Interacts with the user.
-     *
-     * This method is executed before the InputDefinition is validated.
-     * This means that this is the only place where the command can
-     * interactively ask for values of missing required arguments.
-     *
-     * @param InputInterface  $input  An InputInterface instance
-     * @param OutputInterface $output An OutputInterface instance
-     */
-    protected function interact(InputInterface $input, OutputInterface $output)
-    {
-    }
-
-    /**
-     * Initializes the command just after the input has been validated.
-     *
-     * This is mainly useful when a lot of commands extends one main command
-     * where some things need to be initialized based on the input arguments and options.
-     *
-     * @param InputInterface  $input  An InputInterface instance
-     * @param OutputInterface $output An OutputInterface instance
-     */
-    protected function initialize(InputInterface $input, OutputInterface $output)
-    {
-    }
-
-    /**
-     * Runs the command.
-     *
-     * The code to execute is either defined directly with the
-     * setCode() method or by overriding the execute() method
-     * in a sub-class.
-     *
-     * @param InputInterface  $input  An InputInterface instance
-     * @param OutputInterface $output An OutputInterface instance
-     *
-     * @return int The command exit code
-     *
-     * @throws \Exception
-     *
-     * @see setCode()
-     * @see execute()
-     *
-     * @api
-     */
-    public function run(InputInterface $input, OutputInterface $output)
-    {
-        // force the creation of the synopsis before the merge with the app definition
-        $this->getSynopsis(true);
-        $this->getSynopsis(false);
-
-        // add the application arguments and options
-        $this->mergeApplicationDefinition();
-
-        // bind the input against the command specific arguments/options
-        try {
-            $input->bind($this->definition);
-        } catch (\Exception $e) {
-            if (!$this->ignoreValidationErrors) {
-                throw $e;
-            }
-        }
-
-        $this->initialize($input, $output);
-
-        if (null !== $this->processTitle) {
-            if (function_exists('cli_set_process_title')) {
-                cli_set_process_title($this->processTitle);
-            } elseif (function_exists('setproctitle')) {
-                setproctitle($this->processTitle);
-            } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) {
-                $output->writeln('<comment>Install the proctitle PECL to be able to change the process title.</comment>');
-            }
-        }
-
-        if ($input->isInteractive()) {
-            $this->interact($input, $output);
-        }
-
-        $input->validate();
-
-        if ($this->code) {
-            $statusCode = call_user_func($this->code, $input, $output);
-        } else {
-            $statusCode = $this->execute($input, $output);
-        }
-
-        return is_numeric($statusCode) ? (int) $statusCode : 0;
-    }
-
-    /**
-     * Sets the code to execute when running this command.
-     *
-     * If this method is used, it overrides the code defined
-     * in the execute() method.
-     *
-     * @param callable $code A callable(InputInterface $input, OutputInterface $output)
-     *
-     * @return Command The current instance
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @see execute()
-     *
-     * @api
-     */
-    public function setCode($code)
-    {
-        if (!is_callable($code)) {
-            throw new \InvalidArgumentException('Invalid callable provided to Command::setCode.');
-        }
-
-        $this->code = $code;
-
-        return $this;
-    }
-
-    /**
-     * Merges the application definition with the command definition.
-     *
-     * This method is not part of public API and should not be used directly.
-     *
-     * @param bool $mergeArgs Whether to merge or not the Application definition arguments to Command definition arguments
-     */
-    public function mergeApplicationDefinition($mergeArgs = true)
-    {
-        if (null === $this->application || (true === $this->applicationDefinitionMerged && ($this->applicationDefinitionMergedWithArgs || !$mergeArgs))) {
-            return;
-        }
-
-        if ($mergeArgs) {
-            $currentArguments = $this->definition->getArguments();
-            $this->definition->setArguments($this->application->getDefinition()->getArguments());
-            $this->definition->addArguments($currentArguments);
-        }
-
-        $this->definition->addOptions($this->application->getDefinition()->getOptions());
-
-        $this->applicationDefinitionMerged = true;
-        if ($mergeArgs) {
-            $this->applicationDefinitionMergedWithArgs = true;
-        }
-    }
-
-    /**
-     * Sets an array of argument and option instances.
-     *
-     * @param array|InputDefinition $definition An array of argument and option instances or a definition instance
-     *
-     * @return Command The current instance
-     *
-     * @api
-     */
-    public function setDefinition($definition)
-    {
-        if ($definition instanceof InputDefinition) {
-            $this->definition = $definition;
-        } else {
-            $this->definition->setDefinition($definition);
-        }
-
-        $this->applicationDefinitionMerged = false;
-
-        return $this;
-    }
-
-    /**
-     * Gets the InputDefinition attached to this Command.
-     *
-     * @return InputDefinition An InputDefinition instance
-     *
-     * @api
-     */
-    public function getDefinition()
-    {
-        return $this->definition;
-    }
-
-    /**
-     * Gets the InputDefinition to be used to create XML and Text representations of this Command.
-     *
-     * Can be overridden to provide the original command representation when it would otherwise
-     * be changed by merging with the application InputDefinition.
-     *
-     * This method is not part of public API and should not be used directly.
-     *
-     * @return InputDefinition An InputDefinition instance
-     */
-    public function getNativeDefinition()
-    {
-        return $this->getDefinition();
-    }
-
-    /**
-     * Adds an argument.
-     *
-     * @param string $name        The argument name
-     * @param int    $mode        The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL
-     * @param string $description A description text
-     * @param mixed  $default     The default value (for InputArgument::OPTIONAL mode only)
-     *
-     * @return Command The current instance
-     *
-     * @api
-     */
-    public function addArgument($name, $mode = null, $description = '', $default = null)
-    {
-        $this->definition->addArgument(new InputArgument($name, $mode, $description, $default));
-
-        return $this;
-    }
-
-    /**
-     * Adds an option.
-     *
-     * @param string $name        The option name
-     * @param string $shortcut    The shortcut (can be null)
-     * @param int    $mode        The option mode: One of the InputOption::VALUE_* constants
-     * @param string $description A description text
-     * @param mixed  $default     The default value (must be null for InputOption::VALUE_REQUIRED or InputOption::VALUE_NONE)
-     *
-     * @return Command The current instance
-     *
-     * @api
-     */
-    public function addOption($name, $shortcut = null, $mode = null, $description = '', $default = null)
-    {
-        $this->definition->addOption(new InputOption($name, $shortcut, $mode, $description, $default));
-
-        return $this;
-    }
-
-    /**
-     * Sets the name of the command.
-     *
-     * This method can set both the namespace and the name if
-     * you separate them by a colon (:)
-     *
-     *     $command->setName('foo:bar');
-     *
-     * @param string $name The command name
-     *
-     * @return Command The current instance
-     *
-     * @throws \InvalidArgumentException When the name is invalid
-     *
-     * @api
-     */
-    public function setName($name)
-    {
-        $this->validateName($name);
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * Sets the process title of the command.
-     *
-     * This feature should be used only when creating a long process command,
-     * like a daemon.
-     *
-     * PHP 5.5+ or the proctitle PECL library is required
-     *
-     * @param string $title The process title
-     *
-     * @return Command The current instance
-     */
-    public function setProcessTitle($title)
-    {
-        $this->processTitle = $title;
-
-        return $this;
-    }
-
-    /**
-     * Returns the command name.
-     *
-     * @return string The command name
-     *
-     * @api
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Sets the description for the command.
-     *
-     * @param string $description The description for the command
-     *
-     * @return Command The current instance
-     *
-     * @api
-     */
-    public function setDescription($description)
-    {
-        $this->description = $description;
-
-        return $this;
-    }
-
-    /**
-     * Returns the description for the command.
-     *
-     * @return string The description for the command
-     *
-     * @api
-     */
-    public function getDescription()
-    {
-        return $this->description;
-    }
-
-    /**
-     * Sets the help for the command.
-     *
-     * @param string $help The help for the command
-     *
-     * @return Command The current instance
-     *
-     * @api
-     */
-    public function setHelp($help)
-    {
-        $this->help = $help;
-
-        return $this;
-    }
-
-    /**
-     * Returns the help for the command.
-     *
-     * @return string The help for the command
-     *
-     * @api
-     */
-    public function getHelp()
-    {
-        return $this->help;
-    }
-
-    /**
-     * Returns the processed help for the command replacing the %command.name% and
-     * %command.full_name% patterns with the real values dynamically.
-     *
-     * @return string The processed help for the command
-     */
-    public function getProcessedHelp()
-    {
-        $name = $this->name;
-
-        $placeholders = array(
-            '%command.name%',
-            '%command.full_name%',
-        );
-        $replacements = array(
-            $name,
-            $_SERVER['PHP_SELF'].' '.$name,
-        );
-
-        return str_replace($placeholders, $replacements, $this->getHelp());
-    }
-
-    /**
-     * Sets the aliases for the command.
-     *
-     * @param string[] $aliases An array of aliases for the command
-     *
-     * @return Command The current instance
-     *
-     * @throws \InvalidArgumentException When an alias is invalid
-     *
-     * @api
-     */
-    public function setAliases($aliases)
-    {
-        if (!is_array($aliases) && !$aliases instanceof \Traversable) {
-            throw new \InvalidArgumentException('$aliases must be an array or an instance of \Traversable');
-        }
-
-        foreach ($aliases as $alias) {
-            $this->validateName($alias);
-        }
-
-        $this->aliases = $aliases;
-
-        return $this;
-    }
-
-    /**
-     * Returns the aliases for the command.
-     *
-     * @return array An array of aliases for the command
-     *
-     * @api
-     */
-    public function getAliases()
-    {
-        return $this->aliases;
-    }
-
-    /**
-     * Returns the synopsis for the command.
-     *
-     * @param bool $short Whether to show the short version of the synopsis (with options folded) or not
-     *
-     * @return string The synopsis
-     */
-    public function getSynopsis($short = false)
-    {
-        $key = $short ? 'short' : 'long';
-
-        if (!isset($this->synopsis[$key])) {
-            $this->synopsis[$key] = trim(sprintf('%s %s', $this->name, $this->definition->getSynopsis($short)));
-        }
-
-        return $this->synopsis[$key];
-    }
-
-    /**
-     * Add a command usage example.
-     *
-     * @param string $usage The usage, it'll be prefixed with the command name
-     */
-    public function addUsage($usage)
-    {
-        if (0 !== strpos($usage, $this->name)) {
-            $usage = sprintf('%s %s', $this->name, $usage);
-        }
-
-        $this->usages[] = $usage;
-
-        return $this;
-    }
-
-    /**
-     * Returns alternative usages of the command.
-     *
-     * @return array
-     */
-    public function getUsages()
-    {
-        return $this->usages;
-    }
-
-    /**
-     * Gets a helper instance by name.
-     *
-     * @param string $name The helper name
-     *
-     * @return mixed The helper value
-     *
-     * @throws \InvalidArgumentException if the helper is not defined
-     *
-     * @api
-     */
-    public function getHelper($name)
-    {
-        return $this->helperSet->get($name);
-    }
-
-    /**
-     * Returns a text representation of the command.
-     *
-     * @return string A string representing the command
-     *
-     * @deprecated since version 2.3, to be removed in 3.0.
-     */
-    public function asText()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $descriptor = new TextDescriptor();
-        $output = new BufferedOutput(BufferedOutput::VERBOSITY_NORMAL, true);
-        $descriptor->describe($output, $this, array('raw_output' => true));
-
-        return $output->fetch();
-    }
-
-    /**
-     * Returns an XML representation of the command.
-     *
-     * @param bool $asDom Whether to return a DOM or an XML string
-     *
-     * @return string|\DOMDocument An XML string representing the command
-     *
-     * @deprecated since version 2.3, to be removed in 3.0.
-     */
-    public function asXml($asDom = false)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $descriptor = new XmlDescriptor();
-
-        if ($asDom) {
-            return $descriptor->getCommandDocument($this);
-        }
-
-        $output = new BufferedOutput();
-        $descriptor->describe($output, $this);
-
-        return $output->fetch();
-    }
-
-    /**
-     * Validates a command name.
-     *
-     * It must be non-empty and parts can optionally be separated by ":".
-     *
-     * @param string $name
-     *
-     * @throws \InvalidArgumentException When the name is invalid
-     */
-    private function validateName($name)
-    {
-        if (!preg_match('/^[^\:]++(\:[^\:]++)*$/', $name)) {
-            throw new \InvalidArgumentException(sprintf('Command name "%s" is invalid.', $name));
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/Command/HelpCommand.php b/core/vendor/symfony/console/Command/HelpCommand.php
deleted file mode 100644
index 8c20b57..0000000
--- a/core/vendor/symfony/console/Command/HelpCommand.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Command;
-
-use Symfony\Component\Console\Helper\DescriptorHelper;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * HelpCommand displays the help for a given command.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class HelpCommand extends Command
-{
-    private $command;
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function configure()
-    {
-        $this->ignoreValidationErrors();
-
-        $this
-            ->setName('help')
-            ->setDefinition(array(
-                new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help'),
-                new InputOption('xml', null, InputOption::VALUE_NONE, 'To output help as XML'),
-                new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'),
-                new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'),
-            ))
-            ->setDescription('Displays help for a command')
-            ->setHelp(<<<EOF
-The <info>%command.name%</info> command displays help for a given command:
-
-  <info>php %command.full_name% list</info>
-
-You can also output the help in other formats by using the <comment>--format</comment> option:
-
-  <info>php %command.full_name% --format=xml list</info>
-
-To display the list of available commands, please use the <info>list</info> command.
-EOF
-            )
-        ;
-    }
-
-    /**
-     * Sets the command.
-     *
-     * @param Command $command The command to set
-     */
-    public function setCommand(Command $command)
-    {
-        $this->command = $command;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        if (null === $this->command) {
-            $this->command = $this->getApplication()->find($input->getArgument('command_name'));
-        }
-
-        if ($input->getOption('xml')) {
-            @trigger_error('The --xml option was deprecated in version 2.7 and will be removed in version 3.0. Use the --format option instead.', E_USER_DEPRECATED);
-
-            $input->setOption('format', 'xml');
-        }
-
-        $helper = new DescriptorHelper();
-        $helper->describe($output, $this->command, array(
-            'format' => $input->getOption('format'),
-            'raw_text' => $input->getOption('raw'),
-        ));
-
-        $this->command = null;
-    }
-}
diff --git a/core/vendor/symfony/console/Command/ListCommand.php b/core/vendor/symfony/console/Command/ListCommand.php
deleted file mode 100644
index 5f970e8..0000000
--- a/core/vendor/symfony/console/Command/ListCommand.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Command;
-
-use Symfony\Component\Console\Helper\DescriptorHelper;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Input\InputDefinition;
-
-/**
- * ListCommand displays the list of all available commands for the application.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ListCommand extends Command
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function configure()
-    {
-        $this
-            ->setName('list')
-            ->setDefinition($this->createDefinition())
-            ->setDescription('Lists commands')
-            ->setHelp(<<<EOF
-The <info>%command.name%</info> command lists all commands:
-
-  <info>php %command.full_name%</info>
-
-You can also display the commands for a specific namespace:
-
-  <info>php %command.full_name% test</info>
-
-You can also output the information in other formats by using the <comment>--format</comment> option:
-
-  <info>php %command.full_name% --format=xml</info>
-
-It's also possible to get raw list of commands (useful for embedding command runner):
-
-  <info>php %command.full_name% --raw</info>
-EOF
-            )
-        ;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNativeDefinition()
-    {
-        return $this->createDefinition();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        if ($input->getOption('xml')) {
-            @trigger_error('The --xml option was deprecated in version 2.7 and will be removed in version 3.0. Use the --format option instead.', E_USER_DEPRECATED);
-
-            $input->setOption('format', 'xml');
-        }
-
-        $helper = new DescriptorHelper();
-        $helper->describe($output, $this->getApplication(), array(
-            'format' => $input->getOption('format'),
-            'raw_text' => $input->getOption('raw'),
-            'namespace' => $input->getArgument('namespace'),
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    private function createDefinition()
-    {
-        return new InputDefinition(array(
-            new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'),
-            new InputOption('xml', null, InputOption::VALUE_NONE, 'To output list as XML'),
-            new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'),
-            new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'),
-        ));
-    }
-}
diff --git a/core/vendor/symfony/console/ConsoleEvents.php b/core/vendor/symfony/console/ConsoleEvents.php
deleted file mode 100644
index 1ed41b7..0000000
--- a/core/vendor/symfony/console/ConsoleEvents.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console;
-
-/**
- * Contains all events dispatched by an Application.
- *
- * @author Francesco Levorato <git@flevour.net>
- */
-final class ConsoleEvents
-{
-    /**
-     * The COMMAND event allows you to attach listeners before any command is
-     * executed by the console. It also allows you to modify the command, input and output
-     * before they are handled to the command.
-     *
-     * The event listener method receives a Symfony\Component\Console\Event\ConsoleCommandEvent
-     * instance.
-     *
-     * @Event
-     *
-     * @var string
-     */
-    const COMMAND = 'console.command';
-
-    /**
-     * The TERMINATE event allows you to attach listeners after a command is
-     * executed by the console.
-     *
-     * The event listener method receives a Symfony\Component\Console\Event\ConsoleTerminateEvent
-     * instance.
-     *
-     * @Event
-     *
-     * @var string
-     */
-    const TERMINATE = 'console.terminate';
-
-    /**
-     * The EXCEPTION event occurs when an uncaught exception appears.
-     *
-     * This event allows you to deal with the exception or
-     * to modify the thrown exception. The event listener method receives
-     * a Symfony\Component\Console\Event\ConsoleExceptionEvent
-     * instance.
-     *
-     * @Event
-     *
-     * @var string
-     */
-    const EXCEPTION = 'console.exception';
-}
diff --git a/core/vendor/symfony/console/Descriptor/ApplicationDescription.php b/core/vendor/symfony/console/Descriptor/ApplicationDescription.php
deleted file mode 100644
index c481be4..0000000
--- a/core/vendor/symfony/console/Descriptor/ApplicationDescription.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-
-/**
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- *
- * @internal
- */
-class ApplicationDescription
-{
-    const GLOBAL_NAMESPACE = '_global';
-
-    /**
-     * @var Application
-     */
-    private $application;
-
-    /**
-     * @var null|string
-     */
-    private $namespace;
-
-    /**
-     * @var array
-     */
-    private $namespaces;
-
-    /**
-     * @var Command[]
-     */
-    private $commands;
-
-    /**
-     * @var Command[]
-     */
-    private $aliases;
-
-    /**
-     * Constructor.
-     *
-     * @param Application $application
-     * @param string|null $namespace
-     */
-    public function __construct(Application $application, $namespace = null)
-    {
-        $this->application = $application;
-        $this->namespace = $namespace;
-    }
-
-    /**
-     * @return array
-     */
-    public function getNamespaces()
-    {
-        if (null === $this->namespaces) {
-            $this->inspectApplication();
-        }
-
-        return $this->namespaces;
-    }
-
-    /**
-     * @return Command[]
-     */
-    public function getCommands()
-    {
-        if (null === $this->commands) {
-            $this->inspectApplication();
-        }
-
-        return $this->commands;
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return Command
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function getCommand($name)
-    {
-        if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) {
-            throw new \InvalidArgumentException(sprintf('Command %s does not exist.', $name));
-        }
-
-        return isset($this->commands[$name]) ? $this->commands[$name] : $this->aliases[$name];
-    }
-
-    private function inspectApplication()
-    {
-        $this->commands = array();
-        $this->namespaces = array();
-
-        $all = $this->application->all($this->namespace ? $this->application->findNamespace($this->namespace) : null);
-        foreach ($this->sortCommands($all) as $namespace => $commands) {
-            $names = array();
-
-            /** @var Command $command */
-            foreach ($commands as $name => $command) {
-                if (!$command->getName()) {
-                    continue;
-                }
-
-                if ($command->getName() === $name) {
-                    $this->commands[$name] = $command;
-                } else {
-                    $this->aliases[$name] = $command;
-                }
-
-                $names[] = $name;
-            }
-
-            $this->namespaces[$namespace] = array('id' => $namespace, 'commands' => $names);
-        }
-    }
-
-    /**
-     * @param array $commands
-     *
-     * @return array
-     */
-    private function sortCommands(array $commands)
-    {
-        $namespacedCommands = array();
-        foreach ($commands as $name => $command) {
-            $key = $this->application->extractNamespace($name, 1);
-            if (!$key) {
-                $key = '_global';
-            }
-
-            $namespacedCommands[$key][$name] = $command;
-        }
-        ksort($namespacedCommands);
-
-        foreach ($namespacedCommands as &$commandsSet) {
-            ksort($commandsSet);
-        }
-        // unset reference to keep scope clear
-        unset($commandsSet);
-
-        return $namespacedCommands;
-    }
-}
diff --git a/core/vendor/symfony/console/Descriptor/Descriptor.php b/core/vendor/symfony/console/Descriptor/Descriptor.php
deleted file mode 100644
index 49e2193..0000000
--- a/core/vendor/symfony/console/Descriptor/Descriptor.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- *
- * @internal
- */
-abstract class Descriptor implements DescriptorInterface
-{
-    /**
-     * @var OutputInterface
-     */
-    private $output;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function describe(OutputInterface $output, $object, array $options = array())
-    {
-        $this->output = $output;
-
-        switch (true) {
-            case $object instanceof InputArgument:
-                $this->describeInputArgument($object, $options);
-                break;
-            case $object instanceof InputOption:
-                $this->describeInputOption($object, $options);
-                break;
-            case $object instanceof InputDefinition:
-                $this->describeInputDefinition($object, $options);
-                break;
-            case $object instanceof Command:
-                $this->describeCommand($object, $options);
-                break;
-            case $object instanceof Application:
-                $this->describeApplication($object, $options);
-                break;
-            default:
-                throw new \InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_class($object)));
-        }
-    }
-
-    /**
-     * Writes content to output.
-     *
-     * @param string $content
-     * @param bool   $decorated
-     */
-    protected function write($content, $decorated = false)
-    {
-        $this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW);
-    }
-
-    /**
-     * Describes an InputArgument instance.
-     *
-     * @param InputArgument $argument
-     * @param array         $options
-     *
-     * @return string|mixed
-     */
-    abstract protected function describeInputArgument(InputArgument $argument, array $options = array());
-
-    /**
-     * Describes an InputOption instance.
-     *
-     * @param InputOption $option
-     * @param array       $options
-     *
-     * @return string|mixed
-     */
-    abstract protected function describeInputOption(InputOption $option, array $options = array());
-
-    /**
-     * Describes an InputDefinition instance.
-     *
-     * @param InputDefinition $definition
-     * @param array           $options
-     *
-     * @return string|mixed
-     */
-    abstract protected function describeInputDefinition(InputDefinition $definition, array $options = array());
-
-    /**
-     * Describes a Command instance.
-     *
-     * @param Command $command
-     * @param array   $options
-     *
-     * @return string|mixed
-     */
-    abstract protected function describeCommand(Command $command, array $options = array());
-
-    /**
-     * Describes an Application instance.
-     *
-     * @param Application $application
-     * @param array       $options
-     *
-     * @return string|mixed
-     */
-    abstract protected function describeApplication(Application $application, array $options = array());
-}
diff --git a/core/vendor/symfony/console/Descriptor/DescriptorInterface.php b/core/vendor/symfony/console/Descriptor/DescriptorInterface.php
deleted file mode 100644
index 3929b6d..0000000
--- a/core/vendor/symfony/console/Descriptor/DescriptorInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Descriptor interface.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-interface DescriptorInterface
-{
-    /**
-     * Describes an InputArgument instance.
-     *
-     * @param OutputInterface $output
-     * @param object          $object
-     * @param array           $options
-     */
-    public function describe(OutputInterface $output, $object, array $options = array());
-}
diff --git a/core/vendor/symfony/console/Descriptor/JsonDescriptor.php b/core/vendor/symfony/console/Descriptor/JsonDescriptor.php
deleted file mode 100644
index 8649d3a..0000000
--- a/core/vendor/symfony/console/Descriptor/JsonDescriptor.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-
-/**
- * JSON descriptor.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- *
- * @internal
- */
-class JsonDescriptor extends Descriptor
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputArgument(InputArgument $argument, array $options = array())
-    {
-        $this->writeData($this->getInputArgumentData($argument), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputOption(InputOption $option, array $options = array())
-    {
-        $this->writeData($this->getInputOptionData($option), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputDefinition(InputDefinition $definition, array $options = array())
-    {
-        $this->writeData($this->getInputDefinitionData($definition), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeCommand(Command $command, array $options = array())
-    {
-        $this->writeData($this->getCommandData($command), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeApplication(Application $application, array $options = array())
-    {
-        $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
-        $description = new ApplicationDescription($application, $describedNamespace);
-        $commands = array();
-
-        foreach ($description->getCommands() as $command) {
-            $commands[] = $this->getCommandData($command);
-        }
-
-        $data = $describedNamespace
-            ? array('commands' => $commands, 'namespace' => $describedNamespace)
-            : array('commands' => $commands, 'namespaces' => array_values($description->getNamespaces()));
-
-        $this->writeData($data, $options);
-    }
-
-    /**
-     * Writes data as json.
-     *
-     * @param array $data
-     * @param array $options
-     *
-     * @return array|string
-     */
-    private function writeData(array $data, array $options)
-    {
-        $this->write(json_encode($data, isset($options['json_encoding']) ? $options['json_encoding'] : 0));
-    }
-
-    /**
-     * @param InputArgument $argument
-     *
-     * @return array
-     */
-    private function getInputArgumentData(InputArgument $argument)
-    {
-        return array(
-            'name' => $argument->getName(),
-            'is_required' => $argument->isRequired(),
-            'is_array' => $argument->isArray(),
-            'description' => preg_replace('/\s*\R\s*/', ' ', $argument->getDescription()),
-            'default' => $argument->getDefault(),
-        );
-    }
-
-    /**
-     * @param InputOption $option
-     *
-     * @return array
-     */
-    private function getInputOptionData(InputOption $option)
-    {
-        return array(
-            'name' => '--'.$option->getName(),
-            'shortcut' => $option->getShortcut() ? '-'.implode('|-', explode('|', $option->getShortcut())) : '',
-            'accept_value' => $option->acceptValue(),
-            'is_value_required' => $option->isValueRequired(),
-            'is_multiple' => $option->isArray(),
-            'description' => preg_replace('/\s*\R\s*/', ' ', $option->getDescription()),
-            'default' => $option->getDefault(),
-        );
-    }
-
-    /**
-     * @param InputDefinition $definition
-     *
-     * @return array
-     */
-    private function getInputDefinitionData(InputDefinition $definition)
-    {
-        $inputArguments = array();
-        foreach ($definition->getArguments() as $name => $argument) {
-            $inputArguments[$name] = $this->getInputArgumentData($argument);
-        }
-
-        $inputOptions = array();
-        foreach ($definition->getOptions() as $name => $option) {
-            $inputOptions[$name] = $this->getInputOptionData($option);
-        }
-
-        return array('arguments' => $inputArguments, 'options' => $inputOptions);
-    }
-
-    /**
-     * @param Command $command
-     *
-     * @return array
-     */
-    private function getCommandData(Command $command)
-    {
-        $command->getSynopsis();
-        $command->mergeApplicationDefinition(false);
-
-        return array(
-            'name' => $command->getName(),
-            'usage' => array_merge(array($command->getSynopsis()), $command->getUsages(), $command->getAliases()),
-            'description' => $command->getDescription(),
-            'help' => $command->getProcessedHelp(),
-            'definition' => $this->getInputDefinitionData($command->getNativeDefinition()),
-        );
-    }
-}
diff --git a/core/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/core/vendor/symfony/console/Descriptor/MarkdownDescriptor.php
deleted file mode 100644
index 10f0516..0000000
--- a/core/vendor/symfony/console/Descriptor/MarkdownDescriptor.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-
-/**
- * Markdown descriptor.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- *
- * @internal
- */
-class MarkdownDescriptor extends Descriptor
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputArgument(InputArgument $argument, array $options = array())
-    {
-        $this->write(
-            '**'.$argument->getName().':**'."\n\n"
-            .'* Name: '.($argument->getName() ?: '<none>')."\n"
-            .'* Is required: '.($argument->isRequired() ? 'yes' : 'no')."\n"
-            .'* Is array: '.($argument->isArray() ? 'yes' : 'no')."\n"
-            .'* Description: '.preg_replace('/\s*\R\s*/', PHP_EOL.'  ', $argument->getDescription() ?: '<none>')."\n"
-            .'* Default: `'.str_replace("\n", '', var_export($argument->getDefault(), true)).'`'
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputOption(InputOption $option, array $options = array())
-    {
-        $this->write(
-            '**'.$option->getName().':**'."\n\n"
-            .'* Name: `--'.$option->getName().'`'."\n"
-            .'* Shortcut: '.($option->getShortcut() ? '`-'.implode('|-', explode('|', $option->getShortcut())).'`' : '<none>')."\n"
-            .'* Accept value: '.($option->acceptValue() ? 'yes' : 'no')."\n"
-            .'* Is value required: '.($option->isValueRequired() ? 'yes' : 'no')."\n"
-            .'* Is multiple: '.($option->isArray() ? 'yes' : 'no')."\n"
-            .'* Description: '.preg_replace('/\s*\R\s*/', PHP_EOL.'  ', $option->getDescription() ?: '<none>')."\n"
-            .'* Default: `'.str_replace("\n", '', var_export($option->getDefault(), true)).'`'
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputDefinition(InputDefinition $definition, array $options = array())
-    {
-        if ($showArguments = count($definition->getArguments()) > 0) {
-            $this->write('### Arguments:');
-            foreach ($definition->getArguments() as $argument) {
-                $this->write("\n\n");
-                $this->write($this->describeInputArgument($argument));
-            }
-        }
-
-        if (count($definition->getOptions()) > 0) {
-            if ($showArguments) {
-                $this->write("\n\n");
-            }
-
-            $this->write('### Options:');
-            foreach ($definition->getOptions() as $option) {
-                $this->write("\n\n");
-                $this->write($this->describeInputOption($option));
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeCommand(Command $command, array $options = array())
-    {
-        $command->getSynopsis();
-        $command->mergeApplicationDefinition(false);
-
-        $this->write(
-            $command->getName()."\n"
-            .str_repeat('-', strlen($command->getName()))."\n\n"
-            .'* Description: '.($command->getDescription() ?: '<none>')."\n"
-            .'* Usage:'."\n\n"
-            .array_reduce(array_merge(array($command->getSynopsis()), $command->getAliases(), $command->getUsages()), function ($carry, $usage) {
-                return $carry .= '  * `'.$usage.'`'."\n";
-            })
-        );
-
-        if ($help = $command->getProcessedHelp()) {
-            $this->write("\n");
-            $this->write($help);
-        }
-
-        if ($command->getNativeDefinition()) {
-            $this->write("\n\n");
-            $this->describeInputDefinition($command->getNativeDefinition());
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeApplication(Application $application, array $options = array())
-    {
-        $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
-        $description = new ApplicationDescription($application, $describedNamespace);
-
-        $this->write($application->getName()."\n".str_repeat('=', strlen($application->getName())));
-
-        foreach ($description->getNamespaces() as $namespace) {
-            if (ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
-                $this->write("\n\n");
-                $this->write('**'.$namespace['id'].':**');
-            }
-
-            $this->write("\n\n");
-            $this->write(implode("\n", array_map(function ($commandName) {
-                return '* '.$commandName;
-            }, $namespace['commands'])));
-        }
-
-        foreach ($description->getCommands() as $command) {
-            $this->write("\n\n");
-            $this->write($this->describeCommand($command));
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/Descriptor/TextDescriptor.php b/core/vendor/symfony/console/Descriptor/TextDescriptor.php
deleted file mode 100644
index 5c3fea9..0000000
--- a/core/vendor/symfony/console/Descriptor/TextDescriptor.php
+++ /dev/null
@@ -1,283 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-
-/**
- * Text descriptor.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- *
- * @internal
- */
-class TextDescriptor extends Descriptor
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputArgument(InputArgument $argument, array $options = array())
-    {
-        if (null !== $argument->getDefault() && (!is_array($argument->getDefault()) || count($argument->getDefault()))) {
-            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
-        } else {
-            $default = '';
-        }
-
-        $totalWidth = isset($options['total_width']) ? $options['total_width'] : strlen($argument->getName());
-        $spacingWidth = $totalWidth - strlen($argument->getName()) + 2;
-
-        $this->writeText(sprintf('  <info>%s</info>%s%s%s',
-            $argument->getName(),
-            str_repeat(' ', $spacingWidth),
-            // + 17 = 2 spaces + <info> + </info> + 2 spaces
-            preg_replace('/\s*\R\s*/', PHP_EOL.str_repeat(' ', $totalWidth + 17), $argument->getDescription()),
-            $default
-        ), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputOption(InputOption $option, array $options = array())
-    {
-        if ($option->acceptValue() && null !== $option->getDefault() && (!is_array($option->getDefault()) || count($option->getDefault()))) {
-            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
-        } else {
-            $default = '';
-        }
-
-        $value = '';
-        if ($option->acceptValue()) {
-            $value = '='.strtoupper($option->getName());
-
-            if ($option->isValueOptional()) {
-                $value = '['.$value.']';
-            }
-        }
-
-        $totalWidth = isset($options['total_width']) ? $options['total_width'] : $this->calculateTotalWidthForOptions(array($option));
-        $synopsis = sprintf('%s%s',
-            $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : '    ',
-            sprintf('--%s%s', $option->getName(), $value)
-        );
-
-        $spacingWidth = $totalWidth - strlen($synopsis) + 2;
-
-        $this->writeText(sprintf('  <info>%s</info>%s%s%s%s',
-            $synopsis,
-            str_repeat(' ', $spacingWidth),
-            // + 17 = 2 spaces + <info> + </info> + 2 spaces
-            preg_replace('/\s*\R\s*/', "\n".str_repeat(' ', $totalWidth + 17), $option->getDescription()),
-            $default,
-            $option->isArray() ? '<comment> (multiple values allowed)</comment>' : ''
-        ), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputDefinition(InputDefinition $definition, array $options = array())
-    {
-        $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions());
-        foreach ($definition->getArguments() as $argument) {
-            $totalWidth = max($totalWidth, strlen($argument->getName()));
-        }
-
-        if ($definition->getArguments()) {
-            $this->writeText('<comment>Arguments:</comment>', $options);
-            $this->writeText("\n");
-            foreach ($definition->getArguments() as $argument) {
-                $this->describeInputArgument($argument, array_merge($options, array('total_width' => $totalWidth)));
-                $this->writeText("\n");
-            }
-        }
-
-        if ($definition->getArguments() && $definition->getOptions()) {
-            $this->writeText("\n");
-        }
-
-        if ($definition->getOptions()) {
-            $laterOptions = array();
-
-            $this->writeText('<comment>Options:</comment>', $options);
-            foreach ($definition->getOptions() as $option) {
-                if (strlen($option->getShortcut()) > 1) {
-                    $laterOptions[] = $option;
-                    continue;
-                }
-                $this->writeText("\n");
-                $this->describeInputOption($option, array_merge($options, array('total_width' => $totalWidth)));
-            }
-            foreach ($laterOptions as $option) {
-                $this->writeText("\n");
-                $this->describeInputOption($option, array_merge($options, array('total_width' => $totalWidth)));
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeCommand(Command $command, array $options = array())
-    {
-        $command->getSynopsis(true);
-        $command->getSynopsis(false);
-        $command->mergeApplicationDefinition(false);
-
-        $this->writeText('<comment>Usage:</comment>', $options);
-        foreach (array_merge(array($command->getSynopsis(true)), $command->getAliases(), $command->getUsages()) as $usage) {
-            $this->writeText("\n");
-            $this->writeText('  '.$usage, $options);
-        }
-        $this->writeText("\n");
-
-        $definition = $command->getNativeDefinition();
-        if ($definition->getOptions() || $definition->getArguments()) {
-            $this->writeText("\n");
-            $this->describeInputDefinition($definition, $options);
-            $this->writeText("\n");
-        }
-
-        if ($help = $command->getProcessedHelp()) {
-            $this->writeText("\n");
-            $this->writeText('<comment>Help:</comment>', $options);
-            $this->writeText("\n");
-            $this->writeText(' '.str_replace("\n", "\n ", $help), $options);
-            $this->writeText("\n");
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeApplication(Application $application, array $options = array())
-    {
-        $describedNamespace = isset($options['namespace']) ? $options['namespace'] : null;
-        $description = new ApplicationDescription($application, $describedNamespace);
-
-        if (isset($options['raw_text']) && $options['raw_text']) {
-            $width = $this->getColumnWidth($description->getCommands());
-
-            foreach ($description->getCommands() as $command) {
-                $this->writeText(sprintf("%-${width}s %s", $command->getName(), $command->getDescription()), $options);
-                $this->writeText("\n");
-            }
-        } else {
-            if ('' != $help = $application->getHelp()) {
-                $this->writeText("$help\n\n", $options);
-            }
-
-            $this->writeText("<comment>Usage:</comment>\n", $options);
-            $this->writeText("  command [options] [arguments]\n\n", $options);
-
-            $this->describeInputDefinition(new InputDefinition($application->getDefinition()->getOptions()), $options);
-
-            $this->writeText("\n");
-            $this->writeText("\n");
-
-            $width = $this->getColumnWidth($description->getCommands());
-
-            if ($describedNamespace) {
-                $this->writeText(sprintf('<comment>Available commands for the "%s" namespace:</comment>', $describedNamespace), $options);
-            } else {
-                $this->writeText('<comment>Available commands:</comment>', $options);
-            }
-
-            // add commands by namespace
-            foreach ($description->getNamespaces() as $namespace) {
-                if (!$describedNamespace && ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
-                    $this->writeText("\n");
-                    $this->writeText(' <comment>'.$namespace['id'].'</comment>', $options);
-                }
-
-                foreach ($namespace['commands'] as $name) {
-                    $this->writeText("\n");
-                    $spacingWidth = $width - strlen($name);
-                    $this->writeText(sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $description->getCommand($name)->getDescription()), $options);
-                }
-            }
-
-            $this->writeText("\n");
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    private function writeText($content, array $options = array())
-    {
-        $this->write(
-            isset($options['raw_text']) && $options['raw_text'] ? strip_tags($content) : $content,
-            isset($options['raw_output']) ? !$options['raw_output'] : true
-        );
-    }
-
-    /**
-     * Formats input option/argument default value.
-     *
-     * @param mixed $default
-     *
-     * @return string
-     */
-    private function formatDefaultValue($default)
-    {
-        if (PHP_VERSION_ID < 50400) {
-            return str_replace('\/', '/', json_encode($default));
-        }
-
-        return json_encode($default, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
-    }
-
-    /**
-     * @param Command[] $commands
-     *
-     * @return int
-     */
-    private function getColumnWidth(array $commands)
-    {
-        $width = 0;
-        foreach ($commands as $command) {
-            $width = strlen($command->getName()) > $width ? strlen($command->getName()) : $width;
-        }
-
-        return $width + 2;
-    }
-
-    /**
-     * @param InputOption[] $options
-     *
-     * @return int
-     */
-    private function calculateTotalWidthForOptions($options)
-    {
-        $totalWidth = 0;
-        foreach ($options as $option) {
-            // "-" + shortcut + ", --" + name
-            $nameLength = 1 + max(strlen($option->getShortcut()), 1) + 4 + strlen($option->getName());
-
-            if ($option->acceptValue()) {
-                $valueLength = 1 + strlen($option->getName()); // = + value
-                $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ]
-
-                $nameLength += $valueLength;
-            }
-            $totalWidth = max($totalWidth, $nameLength);
-        }
-
-        return $totalWidth;
-    }
-}
diff --git a/core/vendor/symfony/console/Descriptor/XmlDescriptor.php b/core/vendor/symfony/console/Descriptor/XmlDescriptor.php
deleted file mode 100644
index b5676be..0000000
--- a/core/vendor/symfony/console/Descriptor/XmlDescriptor.php
+++ /dev/null
@@ -1,263 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-
-/**
- * XML descriptor.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- *
- * @internal
- */
-class XmlDescriptor extends Descriptor
-{
-    /**
-     * @param InputDefinition $definition
-     *
-     * @return \DOMDocument
-     */
-    public function getInputDefinitionDocument(InputDefinition $definition)
-    {
-        $dom = new \DOMDocument('1.0', 'UTF-8');
-        $dom->appendChild($definitionXML = $dom->createElement('definition'));
-
-        $definitionXML->appendChild($argumentsXML = $dom->createElement('arguments'));
-        foreach ($definition->getArguments() as $argument) {
-            $this->appendDocument($argumentsXML, $this->getInputArgumentDocument($argument));
-        }
-
-        $definitionXML->appendChild($optionsXML = $dom->createElement('options'));
-        foreach ($definition->getOptions() as $option) {
-            $this->appendDocument($optionsXML, $this->getInputOptionDocument($option));
-        }
-
-        return $dom;
-    }
-
-    /**
-     * @param Command $command
-     *
-     * @return \DOMDocument
-     */
-    public function getCommandDocument(Command $command)
-    {
-        $dom = new \DOMDocument('1.0', 'UTF-8');
-        $dom->appendChild($commandXML = $dom->createElement('command'));
-
-        $command->getSynopsis();
-        $command->mergeApplicationDefinition(false);
-
-        $commandXML->setAttribute('id', $command->getName());
-        $commandXML->setAttribute('name', $command->getName());
-
-        $commandXML->appendChild($usagesXML = $dom->createElement('usages'));
-
-        foreach (array_merge(array($command->getSynopsis()), $command->getAliases(), $command->getUsages()) as $usage) {
-            $usagesXML->appendChild($dom->createElement('usage', $usage));
-        }
-
-        $commandXML->appendChild($descriptionXML = $dom->createElement('description'));
-        $descriptionXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getDescription())));
-
-        $commandXML->appendChild($helpXML = $dom->createElement('help'));
-        $helpXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getProcessedHelp())));
-
-        $definitionXML = $this->getInputDefinitionDocument($command->getNativeDefinition());
-        $this->appendDocument($commandXML, $definitionXML->getElementsByTagName('definition')->item(0));
-
-        return $dom;
-    }
-
-    /**
-     * @param Application $application
-     * @param string|null $namespace
-     *
-     * @return \DOMDocument
-     */
-    public function getApplicationDocument(Application $application, $namespace = null)
-    {
-        $dom = new \DOMDocument('1.0', 'UTF-8');
-        $dom->appendChild($rootXml = $dom->createElement('symfony'));
-
-        if ($application->getName() !== 'UNKNOWN') {
-            $rootXml->setAttribute('name', $application->getName());
-            if ($application->getVersion() !== 'UNKNOWN') {
-                $rootXml->setAttribute('version', $application->getVersion());
-            }
-        }
-
-        $rootXml->appendChild($commandsXML = $dom->createElement('commands'));
-
-        $description = new ApplicationDescription($application, $namespace);
-
-        if ($namespace) {
-            $commandsXML->setAttribute('namespace', $namespace);
-        }
-
-        foreach ($description->getCommands() as $command) {
-            $this->appendDocument($commandsXML, $this->getCommandDocument($command));
-        }
-
-        if (!$namespace) {
-            $rootXml->appendChild($namespacesXML = $dom->createElement('namespaces'));
-
-            foreach ($description->getNamespaces() as $namespaceDescription) {
-                $namespacesXML->appendChild($namespaceArrayXML = $dom->createElement('namespace'));
-                $namespaceArrayXML->setAttribute('id', $namespaceDescription['id']);
-
-                foreach ($namespaceDescription['commands'] as $name) {
-                    $namespaceArrayXML->appendChild($commandXML = $dom->createElement('command'));
-                    $commandXML->appendChild($dom->createTextNode($name));
-                }
-            }
-        }
-
-        return $dom;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputArgument(InputArgument $argument, array $options = array())
-    {
-        $this->writeDocument($this->getInputArgumentDocument($argument));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputOption(InputOption $option, array $options = array())
-    {
-        $this->writeDocument($this->getInputOptionDocument($option));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeInputDefinition(InputDefinition $definition, array $options = array())
-    {
-        $this->writeDocument($this->getInputDefinitionDocument($definition));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeCommand(Command $command, array $options = array())
-    {
-        $this->writeDocument($this->getCommandDocument($command));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function describeApplication(Application $application, array $options = array())
-    {
-        $this->writeDocument($this->getApplicationDocument($application, isset($options['namespace']) ? $options['namespace'] : null));
-    }
-
-    /**
-     * Appends document children to parent node.
-     *
-     * @param \DOMNode $parentNode
-     * @param \DOMNode $importedParent
-     */
-    private function appendDocument(\DOMNode $parentNode, \DOMNode $importedParent)
-    {
-        foreach ($importedParent->childNodes as $childNode) {
-            $parentNode->appendChild($parentNode->ownerDocument->importNode($childNode, true));
-        }
-    }
-
-    /**
-     * Writes DOM document.
-     *
-     * @param \DOMDocument $dom
-     *
-     * @return \DOMDocument|string
-     */
-    private function writeDocument(\DOMDocument $dom)
-    {
-        $dom->formatOutput = true;
-        $this->write($dom->saveXML());
-    }
-
-    /**
-     * @param InputArgument $argument
-     *
-     * @return \DOMDocument
-     */
-    private function getInputArgumentDocument(InputArgument $argument)
-    {
-        $dom = new \DOMDocument('1.0', 'UTF-8');
-
-        $dom->appendChild($objectXML = $dom->createElement('argument'));
-        $objectXML->setAttribute('name', $argument->getName());
-        $objectXML->setAttribute('is_required', $argument->isRequired() ? 1 : 0);
-        $objectXML->setAttribute('is_array', $argument->isArray() ? 1 : 0);
-        $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
-        $descriptionXML->appendChild($dom->createTextNode($argument->getDescription()));
-
-        $objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
-        $defaults = is_array($argument->getDefault()) ? $argument->getDefault() : (is_bool($argument->getDefault()) ? array(var_export($argument->getDefault(), true)) : ($argument->getDefault() ? array($argument->getDefault()) : array()));
-        foreach ($defaults as $default) {
-            $defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
-            $defaultXML->appendChild($dom->createTextNode($default));
-        }
-
-        return $dom;
-    }
-
-    /**
-     * @param InputOption $option
-     *
-     * @return \DOMDocument
-     */
-    private function getInputOptionDocument(InputOption $option)
-    {
-        $dom = new \DOMDocument('1.0', 'UTF-8');
-
-        $dom->appendChild($objectXML = $dom->createElement('option'));
-        $objectXML->setAttribute('name', '--'.$option->getName());
-        $pos = strpos($option->getShortcut(), '|');
-        if (false !== $pos) {
-            $objectXML->setAttribute('shortcut', '-'.substr($option->getShortcut(), 0, $pos));
-            $objectXML->setAttribute('shortcuts', '-'.implode('|-', explode('|', $option->getShortcut())));
-        } else {
-            $objectXML->setAttribute('shortcut', $option->getShortcut() ? '-'.$option->getShortcut() : '');
-        }
-        $objectXML->setAttribute('accept_value', $option->acceptValue() ? 1 : 0);
-        $objectXML->setAttribute('is_value_required', $option->isValueRequired() ? 1 : 0);
-        $objectXML->setAttribute('is_multiple', $option->isArray() ? 1 : 0);
-        $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
-        $descriptionXML->appendChild($dom->createTextNode($option->getDescription()));
-
-        if ($option->acceptValue()) {
-            $defaults = is_array($option->getDefault()) ? $option->getDefault() : (is_bool($option->getDefault()) ? array(var_export($option->getDefault(), true)) : ($option->getDefault() ? array($option->getDefault()) : array()));
-            $objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
-
-            if (!empty($defaults)) {
-                foreach ($defaults as $default) {
-                    $defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
-                    $defaultXML->appendChild($dom->createTextNode($default));
-                }
-            }
-        }
-
-        return $dom;
-    }
-}
diff --git a/core/vendor/symfony/console/Event/ConsoleCommandEvent.php b/core/vendor/symfony/console/Event/ConsoleCommandEvent.php
deleted file mode 100644
index 56f5526..0000000
--- a/core/vendor/symfony/console/Event/ConsoleCommandEvent.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Event;
-
-/**
- * Allows to do things before the command is executed, like skipping the command or changing the input.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ConsoleCommandEvent extends ConsoleEvent
-{
-    /**
-     * The return code for skipped commands, this will also be passed into the terminate event
-     */
-    const RETURN_CODE_DISABLED = 113;
-
-    /**
-     * Indicates if the command should be run or skipped
-     *
-     * @var bool
-     */
-    private $commandShouldRun = true;
-
-    /**
-     * Disables the command, so it won't be run
-     *
-     * @return bool
-     */
-    public function disableCommand()
-    {
-        return $this->commandShouldRun = false;
-    }
-
-    /**
-     * Enables the command
-     *
-     * @return bool
-     */
-    public function enableCommand()
-    {
-        return $this->commandShouldRun = true;
-    }
-
-    /**
-     * Returns true if the command is runnable, false otherwise
-     *
-     * @return bool
-     */
-    public function commandShouldRun()
-    {
-        return $this->commandShouldRun;
-    }
-}
diff --git a/core/vendor/symfony/console/Event/ConsoleEvent.php b/core/vendor/symfony/console/Event/ConsoleEvent.php
deleted file mode 100644
index ab620c4..0000000
--- a/core/vendor/symfony/console/Event/ConsoleEvent.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Event;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\EventDispatcher\Event;
-
-/**
- * Allows to inspect input and output of a command.
- *
- * @author Francesco Levorato <git@flevour.net>
- */
-class ConsoleEvent extends Event
-{
-    protected $command;
-
-    private $input;
-    private $output;
-
-    public function __construct(Command $command, InputInterface $input, OutputInterface $output)
-    {
-        $this->command = $command;
-        $this->input = $input;
-        $this->output = $output;
-    }
-
-    /**
-     * Gets the command that is executed.
-     *
-     * @return Command A Command instance
-     */
-    public function getCommand()
-    {
-        return $this->command;
-    }
-
-    /**
-     * Gets the input instance.
-     *
-     * @return InputInterface An InputInterface instance
-     */
-    public function getInput()
-    {
-        return $this->input;
-    }
-
-    /**
-     * Gets the output instance.
-     *
-     * @return OutputInterface An OutputInterface instance
-     */
-    public function getOutput()
-    {
-        return $this->output;
-    }
-}
diff --git a/core/vendor/symfony/console/Event/ConsoleExceptionEvent.php b/core/vendor/symfony/console/Event/ConsoleExceptionEvent.php
deleted file mode 100644
index 603b7ee..0000000
--- a/core/vendor/symfony/console/Event/ConsoleExceptionEvent.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Event;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Allows to handle exception thrown in a command.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ConsoleExceptionEvent extends ConsoleEvent
-{
-    private $exception;
-    private $exitCode;
-
-    public function __construct(Command $command, InputInterface $input, OutputInterface $output, \Exception $exception, $exitCode)
-    {
-        parent::__construct($command, $input, $output);
-
-        $this->setException($exception);
-        $this->exitCode = (int) $exitCode;
-    }
-
-    /**
-     * Returns the thrown exception.
-     *
-     * @return \Exception The thrown exception
-     */
-    public function getException()
-    {
-        return $this->exception;
-    }
-
-    /**
-     * Replaces the thrown exception.
-     *
-     * This exception will be thrown if no response is set in the event.
-     *
-     * @param \Exception $exception The thrown exception
-     */
-    public function setException(\Exception $exception)
-    {
-        $this->exception = $exception;
-    }
-
-    /**
-     * Gets the exit code.
-     *
-     * @return int The command exit code
-     */
-    public function getExitCode()
-    {
-        return $this->exitCode;
-    }
-}
diff --git a/core/vendor/symfony/console/Event/ConsoleTerminateEvent.php b/core/vendor/symfony/console/Event/ConsoleTerminateEvent.php
deleted file mode 100644
index b6a5d7c..0000000
--- a/core/vendor/symfony/console/Event/ConsoleTerminateEvent.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Event;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Allows to manipulate the exit code of a command after its execution.
- *
- * @author Francesco Levorato <git@flevour.net>
- */
-class ConsoleTerminateEvent extends ConsoleEvent
-{
-    /**
-     * The exit code of the command.
-     *
-     * @var int
-     */
-    private $exitCode;
-
-    public function __construct(Command $command, InputInterface $input, OutputInterface $output, $exitCode)
-    {
-        parent::__construct($command, $input, $output);
-
-        $this->setExitCode($exitCode);
-    }
-
-    /**
-     * Sets the exit code.
-     *
-     * @param int $exitCode The command exit code
-     */
-    public function setExitCode($exitCode)
-    {
-        $this->exitCode = (int) $exitCode;
-    }
-
-    /**
-     * Gets the exit code.
-     *
-     * @return int The command exit code
-     */
-    public function getExitCode()
-    {
-        return $this->exitCode;
-    }
-}
diff --git a/core/vendor/symfony/console/Formatter/OutputFormatter.php b/core/vendor/symfony/console/Formatter/OutputFormatter.php
deleted file mode 100644
index 331b204..0000000
--- a/core/vendor/symfony/console/Formatter/OutputFormatter.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Formatter;
-
-/**
- * Formatter class for console output.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * @api
- */
-class OutputFormatter implements OutputFormatterInterface
-{
-    private $decorated;
-    private $styles = array();
-    private $styleStack;
-
-    /**
-     * Escapes "<" special char in given text.
-     *
-     * @param string $text Text to escape
-     *
-     * @return string Escaped text
-     */
-    public static function escape($text)
-    {
-        return preg_replace('/([^\\\\]?)</', '$1\\<', $text);
-    }
-
-    /**
-     * Initializes console output formatter.
-     *
-     * @param bool                            $decorated Whether this formatter should actually decorate strings
-     * @param OutputFormatterStyleInterface[] $styles    Array of "name => FormatterStyle" instances
-     *
-     * @api
-     */
-    public function __construct($decorated = false, array $styles = array())
-    {
-        $this->decorated = (bool) $decorated;
-
-        $this->setStyle('error', new OutputFormatterStyle('white', 'red'));
-        $this->setStyle('info', new OutputFormatterStyle('green'));
-        $this->setStyle('comment', new OutputFormatterStyle('yellow'));
-        $this->setStyle('question', new OutputFormatterStyle('black', 'cyan'));
-
-        foreach ($styles as $name => $style) {
-            $this->setStyle($name, $style);
-        }
-
-        $this->styleStack = new OutputFormatterStyleStack();
-    }
-
-    /**
-     * Sets the decorated flag.
-     *
-     * @param bool $decorated Whether to decorate the messages or not
-     *
-     * @api
-     */
-    public function setDecorated($decorated)
-    {
-        $this->decorated = (bool) $decorated;
-    }
-
-    /**
-     * Gets the decorated flag.
-     *
-     * @return bool true if the output will decorate messages, false otherwise
-     *
-     * @api
-     */
-    public function isDecorated()
-    {
-        return $this->decorated;
-    }
-
-    /**
-     * Sets a new style.
-     *
-     * @param string                        $name  The style name
-     * @param OutputFormatterStyleInterface $style The style instance
-     *
-     * @api
-     */
-    public function setStyle($name, OutputFormatterStyleInterface $style)
-    {
-        $this->styles[strtolower($name)] = $style;
-    }
-
-    /**
-     * Checks if output formatter has style with specified name.
-     *
-     * @param string $name
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasStyle($name)
-    {
-        return isset($this->styles[strtolower($name)]);
-    }
-
-    /**
-     * Gets style options from style with specified name.
-     *
-     * @param string $name
-     *
-     * @return OutputFormatterStyleInterface
-     *
-     * @throws \InvalidArgumentException When style isn't defined
-     *
-     * @api
-     */
-    public function getStyle($name)
-    {
-        if (!$this->hasStyle($name)) {
-            throw new \InvalidArgumentException(sprintf('Undefined style: %s', $name));
-        }
-
-        return $this->styles[strtolower($name)];
-    }
-
-    /**
-     * Formats a message according to the given styles.
-     *
-     * @param string $message The message to style
-     *
-     * @return string The styled message
-     *
-     * @api
-     */
-    public function format($message)
-    {
-        $message = (string) $message;
-        $offset = 0;
-        $output = '';
-        $tagRegex = '[a-z][a-z0-9_=;-]*';
-        preg_match_all("#<(($tagRegex) | /($tagRegex)?)>#ix", $message, $matches, PREG_OFFSET_CAPTURE);
-        foreach ($matches[0] as $i => $match) {
-            $pos = $match[1];
-            $text = $match[0];
-
-            if (0 != $pos && '\\' == $message[$pos - 1]) {
-                continue;
-            }
-
-            // add the text up to the next tag
-            $output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset));
-            $offset = $pos + strlen($text);
-
-            // opening tag?
-            if ($open = '/' != $text[1]) {
-                $tag = $matches[1][$i][0];
-            } else {
-                $tag = isset($matches[3][$i][0]) ? $matches[3][$i][0] : '';
-            }
-
-            if (!$open && !$tag) {
-                // </>
-                $this->styleStack->pop();
-            } elseif (false === $style = $this->createStyleFromString(strtolower($tag))) {
-                $output .= $this->applyCurrentStyle($text);
-            } elseif ($open) {
-                $this->styleStack->push($style);
-            } else {
-                $this->styleStack->pop($style);
-            }
-        }
-
-        $output .= $this->applyCurrentStyle(substr($message, $offset));
-
-        return str_replace('\\<', '<', $output);
-    }
-
-    /**
-     * @return OutputFormatterStyleStack
-     */
-    public function getStyleStack()
-    {
-        return $this->styleStack;
-    }
-
-    /**
-     * Tries to create new style instance from string.
-     *
-     * @param string $string
-     *
-     * @return OutputFormatterStyle|bool false if string is not format string
-     */
-    private function createStyleFromString($string)
-    {
-        if (isset($this->styles[$string])) {
-            return $this->styles[$string];
-        }
-
-        if (!preg_match_all('/([^=]+)=([^;]+)(;|$)/', strtolower($string), $matches, PREG_SET_ORDER)) {
-            return false;
-        }
-
-        $style = new OutputFormatterStyle();
-        foreach ($matches as $match) {
-            array_shift($match);
-
-            if ('fg' == $match[0]) {
-                $style->setForeground($match[1]);
-            } elseif ('bg' == $match[0]) {
-                $style->setBackground($match[1]);
-            } else {
-                try {
-                    $style->setOption($match[1]);
-                } catch (\InvalidArgumentException $e) {
-                    return false;
-                }
-            }
-        }
-
-        return $style;
-    }
-
-    /**
-     * Applies current style from stack to text, if must be applied.
-     *
-     * @param string $text Input text
-     *
-     * @return string Styled text
-     */
-    private function applyCurrentStyle($text)
-    {
-        return $this->isDecorated() && strlen($text) > 0 ? $this->styleStack->getCurrent()->apply($text) : $text;
-    }
-}
diff --git a/core/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/core/vendor/symfony/console/Formatter/OutputFormatterInterface.php
deleted file mode 100644
index 52efa31..0000000
--- a/core/vendor/symfony/console/Formatter/OutputFormatterInterface.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Formatter;
-
-/**
- * Formatter interface for console output.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * @api
- */
-interface OutputFormatterInterface
-{
-    /**
-     * Sets the decorated flag.
-     *
-     * @param bool $decorated Whether to decorate the messages or not
-     *
-     * @api
-     */
-    public function setDecorated($decorated);
-
-    /**
-     * Gets the decorated flag.
-     *
-     * @return bool true if the output will decorate messages, false otherwise
-     *
-     * @api
-     */
-    public function isDecorated();
-
-    /**
-     * Sets a new style.
-     *
-     * @param string                        $name  The style name
-     * @param OutputFormatterStyleInterface $style The style instance
-     *
-     * @api
-     */
-    public function setStyle($name, OutputFormatterStyleInterface $style);
-
-    /**
-     * Checks if output formatter has style with specified name.
-     *
-     * @param string $name
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasStyle($name);
-
-    /**
-     * Gets style options from style with specified name.
-     *
-     * @param string $name
-     *
-     * @return OutputFormatterStyleInterface
-     *
-     * @api
-     */
-    public function getStyle($name);
-
-    /**
-     * Formats a message according to the given styles.
-     *
-     * @param string $message The message to style
-     *
-     * @return string The styled message
-     *
-     * @api
-     */
-    public function format($message);
-}
diff --git a/core/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/core/vendor/symfony/console/Formatter/OutputFormatterStyle.php
deleted file mode 100644
index ee62cdb..0000000
--- a/core/vendor/symfony/console/Formatter/OutputFormatterStyle.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Formatter;
-
-/**
- * Formatter style class for defining styles.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * @api
- */
-class OutputFormatterStyle implements OutputFormatterStyleInterface
-{
-    private static $availableForegroundColors = array(
-        'black' => array('set' => 30, 'unset' => 39),
-        'red' => array('set' => 31, 'unset' => 39),
-        'green' => array('set' => 32, 'unset' => 39),
-        'yellow' => array('set' => 33, 'unset' => 39),
-        'blue' => array('set' => 34, 'unset' => 39),
-        'magenta' => array('set' => 35, 'unset' => 39),
-        'cyan' => array('set' => 36, 'unset' => 39),
-        'white' => array('set' => 37, 'unset' => 39),
-        'default' => array('set' => 39, 'unset' => 39),
-    );
-    private static $availableBackgroundColors = array(
-        'black' => array('set' => 40, 'unset' => 49),
-        'red' => array('set' => 41, 'unset' => 49),
-        'green' => array('set' => 42, 'unset' => 49),
-        'yellow' => array('set' => 43, 'unset' => 49),
-        'blue' => array('set' => 44, 'unset' => 49),
-        'magenta' => array('set' => 45, 'unset' => 49),
-        'cyan' => array('set' => 46, 'unset' => 49),
-        'white' => array('set' => 47, 'unset' => 49),
-        'default' => array('set' => 49, 'unset' => 49),
-    );
-    private static $availableOptions = array(
-        'bold' => array('set' => 1, 'unset' => 22),
-        'underscore' => array('set' => 4, 'unset' => 24),
-        'blink' => array('set' => 5, 'unset' => 25),
-        'reverse' => array('set' => 7, 'unset' => 27),
-        'conceal' => array('set' => 8, 'unset' => 28),
-    );
-
-    private $foreground;
-    private $background;
-    private $options = array();
-
-    /**
-     * Initializes output formatter style.
-     *
-     * @param string|null $foreground The style foreground color name
-     * @param string|null $background The style background color name
-     * @param array       $options    The style options
-     *
-     * @api
-     */
-    public function __construct($foreground = null, $background = null, array $options = array())
-    {
-        if (null !== $foreground) {
-            $this->setForeground($foreground);
-        }
-        if (null !== $background) {
-            $this->setBackground($background);
-        }
-        if (count($options)) {
-            $this->setOptions($options);
-        }
-    }
-
-    /**
-     * Sets style foreground color.
-     *
-     * @param string|null $color The color name
-     *
-     * @throws \InvalidArgumentException When the color name isn't defined
-     *
-     * @api
-     */
-    public function setForeground($color = null)
-    {
-        if (null === $color) {
-            $this->foreground = null;
-
-            return;
-        }
-
-        if (!isset(static::$availableForegroundColors[$color])) {
-            throw new \InvalidArgumentException(sprintf(
-                'Invalid foreground color specified: "%s". Expected one of (%s)',
-                $color,
-                implode(', ', array_keys(static::$availableForegroundColors))
-            ));
-        }
-
-        $this->foreground = static::$availableForegroundColors[$color];
-    }
-
-    /**
-     * Sets style background color.
-     *
-     * @param string|null $color The color name
-     *
-     * @throws \InvalidArgumentException When the color name isn't defined
-     *
-     * @api
-     */
-    public function setBackground($color = null)
-    {
-        if (null === $color) {
-            $this->background = null;
-
-            return;
-        }
-
-        if (!isset(static::$availableBackgroundColors[$color])) {
-            throw new \InvalidArgumentException(sprintf(
-                'Invalid background color specified: "%s". Expected one of (%s)',
-                $color,
-                implode(', ', array_keys(static::$availableBackgroundColors))
-            ));
-        }
-
-        $this->background = static::$availableBackgroundColors[$color];
-    }
-
-    /**
-     * Sets some specific style option.
-     *
-     * @param string $option The option name
-     *
-     * @throws \InvalidArgumentException When the option name isn't defined
-     *
-     * @api
-     */
-    public function setOption($option)
-    {
-        if (!isset(static::$availableOptions[$option])) {
-            throw new \InvalidArgumentException(sprintf(
-                'Invalid option specified: "%s". Expected one of (%s)',
-                $option,
-                implode(', ', array_keys(static::$availableOptions))
-            ));
-        }
-
-        if (!in_array(static::$availableOptions[$option], $this->options)) {
-            $this->options[] = static::$availableOptions[$option];
-        }
-    }
-
-    /**
-     * Unsets some specific style option.
-     *
-     * @param string $option The option name
-     *
-     * @throws \InvalidArgumentException When the option name isn't defined
-     */
-    public function unsetOption($option)
-    {
-        if (!isset(static::$availableOptions[$option])) {
-            throw new \InvalidArgumentException(sprintf(
-                'Invalid option specified: "%s". Expected one of (%s)',
-                $option,
-                implode(', ', array_keys(static::$availableOptions))
-            ));
-        }
-
-        $pos = array_search(static::$availableOptions[$option], $this->options);
-        if (false !== $pos) {
-            unset($this->options[$pos]);
-        }
-    }
-
-    /**
-     * Sets multiple style options at once.
-     *
-     * @param array $options
-     */
-    public function setOptions(array $options)
-    {
-        $this->options = array();
-
-        foreach ($options as $option) {
-            $this->setOption($option);
-        }
-    }
-
-    /**
-     * Applies the style to a given text.
-     *
-     * @param string $text The text to style
-     *
-     * @return string
-     */
-    public function apply($text)
-    {
-        $setCodes = array();
-        $unsetCodes = array();
-
-        if (null !== $this->foreground) {
-            $setCodes[] = $this->foreground['set'];
-            $unsetCodes[] = $this->foreground['unset'];
-        }
-        if (null !== $this->background) {
-            $setCodes[] = $this->background['set'];
-            $unsetCodes[] = $this->background['unset'];
-        }
-        if (count($this->options)) {
-            foreach ($this->options as $option) {
-                $setCodes[] = $option['set'];
-                $unsetCodes[] = $option['unset'];
-            }
-        }
-
-        if (0 === count($setCodes)) {
-            return $text;
-        }
-
-        return sprintf("\033[%sm%s\033[%sm", implode(';', $setCodes), $text, implode(';', $unsetCodes));
-    }
-}
diff --git a/core/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/core/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php
deleted file mode 100644
index e8642b3..0000000
--- a/core/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Formatter;
-
-/**
- * Formatter style interface for defining styles.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * @api
- */
-interface OutputFormatterStyleInterface
-{
-    /**
-     * Sets style foreground color.
-     *
-     * @param string $color The color name
-     *
-     * @api
-     */
-    public function setForeground($color = null);
-
-    /**
-     * Sets style background color.
-     *
-     * @param string $color The color name
-     *
-     * @api
-     */
-    public function setBackground($color = null);
-
-    /**
-     * Sets some specific style option.
-     *
-     * @param string $option The option name
-     *
-     * @api
-     */
-    public function setOption($option);
-
-    /**
-     * Unsets some specific style option.
-     *
-     * @param string $option The option name
-     */
-    public function unsetOption($option);
-
-    /**
-     * Sets multiple style options at once.
-     *
-     * @param array $options
-     */
-    public function setOptions(array $options);
-
-    /**
-     * Applies the style to a given text.
-     *
-     * @param string $text The text to style
-     *
-     * @return string
-     */
-    public function apply($text);
-}
diff --git a/core/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/core/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php
deleted file mode 100644
index b64c87f..0000000
--- a/core/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Formatter;
-
-/**
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class OutputFormatterStyleStack
-{
-    /**
-     * @var OutputFormatterStyleInterface[]
-     */
-    private $styles;
-
-    /**
-     * @var OutputFormatterStyleInterface
-     */
-    private $emptyStyle;
-
-    /**
-     * Constructor.
-     *
-     * @param OutputFormatterStyleInterface|null $emptyStyle
-     */
-    public function __construct(OutputFormatterStyleInterface $emptyStyle = null)
-    {
-        $this->emptyStyle = $emptyStyle ?: new OutputFormatterStyle();
-        $this->reset();
-    }
-
-    /**
-     * Resets stack (ie. empty internal arrays).
-     */
-    public function reset()
-    {
-        $this->styles = array();
-    }
-
-    /**
-     * Pushes a style in the stack.
-     *
-     * @param OutputFormatterStyleInterface $style
-     */
-    public function push(OutputFormatterStyleInterface $style)
-    {
-        $this->styles[] = $style;
-    }
-
-    /**
-     * Pops a style from the stack.
-     *
-     * @param OutputFormatterStyleInterface|null $style
-     *
-     * @return OutputFormatterStyleInterface
-     *
-     * @throws \InvalidArgumentException When style tags incorrectly nested
-     */
-    public function pop(OutputFormatterStyleInterface $style = null)
-    {
-        if (empty($this->styles)) {
-            return $this->emptyStyle;
-        }
-
-        if (null === $style) {
-            return array_pop($this->styles);
-        }
-
-        foreach (array_reverse($this->styles, true) as $index => $stackedStyle) {
-            if ($style->apply('') === $stackedStyle->apply('')) {
-                $this->styles = array_slice($this->styles, 0, $index);
-
-                return $stackedStyle;
-            }
-        }
-
-        throw new \InvalidArgumentException('Incorrectly nested style tag found.');
-    }
-
-    /**
-     * Computes current style with stacks top codes.
-     *
-     * @return OutputFormatterStyle
-     */
-    public function getCurrent()
-    {
-        if (empty($this->styles)) {
-            return $this->emptyStyle;
-        }
-
-        return $this->styles[count($this->styles) - 1];
-    }
-
-    /**
-     * @param OutputFormatterStyleInterface $emptyStyle
-     *
-     * @return OutputFormatterStyleStack
-     */
-    public function setEmptyStyle(OutputFormatterStyleInterface $emptyStyle)
-    {
-        $this->emptyStyle = $emptyStyle;
-
-        return $this;
-    }
-
-    /**
-     * @return OutputFormatterStyleInterface
-     */
-    public function getEmptyStyle()
-    {
-        return $this->emptyStyle;
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/DebugFormatterHelper.php b/core/vendor/symfony/console/Helper/DebugFormatterHelper.php
deleted file mode 100644
index 0b4b937..0000000
--- a/core/vendor/symfony/console/Helper/DebugFormatterHelper.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-/**
- * Helps outputting debug information when running an external program from a command.
- *
- * An external program can be a Process, an HTTP request, or anything else.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class DebugFormatterHelper extends Helper
-{
-    private $colors = array('black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'default');
-    private $started = array();
-    private $count = -1;
-
-    /**
-     * Starts a debug formatting session
-     *
-     * @param string $id      The id of the formatting session
-     * @param string $message The message to display
-     * @param string $prefix  The prefix to use
-     *
-     * @return string
-     */
-    public function start($id, $message, $prefix = 'RUN')
-    {
-        $this->started[$id] = array('border' => ++$this->count % count($this->colors));
-
-        return sprintf("%s<bg=blue;fg=white> %s </> <fg=blue>%s</>\n", $this->getBorder($id), $prefix, $message);
-    }
-
-    /**
-     * Adds progress to a formatting session
-     *
-     * @param string $id          The id of the formatting session
-     * @param string $buffer      The message to display
-     * @param bool   $error       Whether to consider the buffer as error
-     * @param string $prefix      The prefix for output
-     * @param string $errorPrefix The prefix for error output
-     *
-     * @return string
-     */
-    public function progress($id, $buffer, $error = false, $prefix = 'OUT', $errorPrefix = 'ERR')
-    {
-        $message = '';
-
-        if ($error) {
-            if (isset($this->started[$id]['out'])) {
-                $message .= "\n";
-                unset($this->started[$id]['out']);
-            }
-            if (!isset($this->started[$id]['err'])) {
-                $message .= sprintf("%s<bg=red;fg=white> %s </> ", $this->getBorder($id), $errorPrefix);
-                $this->started[$id]['err'] = true;
-            }
-
-            $message .= str_replace("\n", sprintf("\n%s<bg=red;fg=white> %s </> ", $this->getBorder($id), $errorPrefix), $buffer);
-        } else {
-            if (isset($this->started[$id]['err'])) {
-                $message .= "\n";
-                unset($this->started[$id]['err']);
-            }
-            if (!isset($this->started[$id]['out'])) {
-                $message .= sprintf("%s<bg=green;fg=white> %s </> ", $this->getBorder($id), $prefix);
-                $this->started[$id]['out'] = true;
-            }
-
-            $message .= str_replace("\n", sprintf("\n%s<bg=green;fg=white> %s </> ", $this->getBorder($id), $prefix), $buffer);
-        }
-
-        return $message;
-    }
-
-    /**
-     * Stops a formatting session
-     *
-     * @param string $id         The id of the formatting session
-     * @param string $message    The message to display
-     * @param bool   $successful Whether to consider the result as success
-     * @param string $prefix     The prefix for the end output
-     *
-     * @return string
-     */
-    public function stop($id, $message, $successful, $prefix = 'RES')
-    {
-        $trailingEOL = isset($this->started[$id]['out']) || isset($this->started[$id]['err']) ? "\n" : '';
-
-        if ($successful) {
-            return sprintf("%s%s<bg=green;fg=white> %s </> <fg=green>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
-        }
-
-        $message = sprintf("%s%s<bg=red;fg=white> %s </> <fg=red>%s</>\n", $trailingEOL, $this->getBorder($id), $prefix, $message);
-
-        unset($this->started[$id]['out'], $this->started[$id]['err']);
-
-        return $message;
-    }
-
-    /**
-     * @param string $id The id of the formatting session
-     *
-     * @return string
-     */
-    private function getBorder($id)
-    {
-        return sprintf('<bg=%s> </>', $this->colors[$this->started[$id]['border']]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'debug_formatter';
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/DescriptorHelper.php b/core/vendor/symfony/console/Helper/DescriptorHelper.php
deleted file mode 100644
index c324c99..0000000
--- a/core/vendor/symfony/console/Helper/DescriptorHelper.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Descriptor\DescriptorInterface;
-use Symfony\Component\Console\Descriptor\JsonDescriptor;
-use Symfony\Component\Console\Descriptor\MarkdownDescriptor;
-use Symfony\Component\Console\Descriptor\TextDescriptor;
-use Symfony\Component\Console\Descriptor\XmlDescriptor;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * This class adds helper method to describe objects in various formats.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class DescriptorHelper extends Helper
-{
-    /**
-     * @var DescriptorInterface[]
-     */
-    private $descriptors = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this
-            ->register('txt', new TextDescriptor())
-            ->register('xml', new XmlDescriptor())
-            ->register('json', new JsonDescriptor())
-            ->register('md', new MarkdownDescriptor())
-        ;
-    }
-
-    /**
-     * Describes an object if supported.
-     *
-     * Available options are:
-     * * format: string, the output format name
-     * * raw_text: boolean, sets output type as raw
-     *
-     * @param OutputInterface $output
-     * @param object          $object
-     * @param array           $options
-     *
-     * @throws \InvalidArgumentException when the given format is not supported
-     */
-    public function describe(OutputInterface $output, $object, array $options = array())
-    {
-        $options = array_merge(array(
-            'raw_text' => false,
-            'format' => 'txt',
-        ), $options);
-
-        if (!isset($this->descriptors[$options['format']])) {
-            throw new \InvalidArgumentException(sprintf('Unsupported format "%s".', $options['format']));
-        }
-
-        $descriptor = $this->descriptors[$options['format']];
-        $descriptor->describe($output, $object, $options);
-    }
-
-    /**
-     * Registers a descriptor.
-     *
-     * @param string              $format
-     * @param DescriptorInterface $descriptor
-     *
-     * @return DescriptorHelper
-     */
-    public function register($format, DescriptorInterface $descriptor)
-    {
-        $this->descriptors[$format] = $descriptor;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'descriptor';
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/DialogHelper.php b/core/vendor/symfony/console/Helper/DialogHelper.php
deleted file mode 100644
index a280b49..0000000
--- a/core/vendor/symfony/console/Helper/DialogHelper.php
+++ /dev/null
@@ -1,483 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-
-/**
- * The Dialog class provides helpers to interact with the user.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link \Symfony\Component\Console\Helper\QuestionHelper} instead.
- */
-class DialogHelper extends InputAwareHelper
-{
-    private $inputStream;
-    private static $shell;
-    private static $stty;
-
-    public function __construct($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('"Symfony\Component\Console\Helper\DialogHelper" is deprecated since version 2.5 and will be removed in 3.0. Use "Symfony\Component\Console\Helper\QuestionHelper" instead.', E_USER_DEPRECATED);
-        }
-    }
-
-    /**
-     * Asks the user to select a value.
-     *
-     * @param OutputInterface $output       An Output instance
-     * @param string|array    $question     The question to ask
-     * @param array           $choices      List of choices to pick from
-     * @param bool|string     $default      The default answer if the user enters nothing
-     * @param bool|int        $attempts     Max number of times to ask before giving up (false by default, which means infinite)
-     * @param string          $errorMessage Message which will be shown if invalid value from choice list would be picked
-     * @param bool            $multiselect  Select more than one value separated by comma
-     *
-     * @return int|string|array The selected value or values (the key of the choices array)
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function select(OutputInterface $output, $question, $choices, $default = null, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false)
-    {
-        $width = max(array_map('strlen', array_keys($choices)));
-
-        $messages = (array) $question;
-        foreach ($choices as $key => $value) {
-            $messages[] = sprintf("  [<info>%-${width}s</info>] %s", $key, $value);
-        }
-
-        $output->writeln($messages);
-
-        $result = $this->askAndValidate($output, '> ', function ($picked) use ($choices, $errorMessage, $multiselect) {
-            // Collapse all spaces.
-            $selectedChoices = str_replace(' ', '', $picked);
-
-            if ($multiselect) {
-                // Check for a separated comma values
-                if (!preg_match('/^[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/', $selectedChoices, $matches)) {
-                    throw new \InvalidArgumentException(sprintf($errorMessage, $picked));
-                }
-                $selectedChoices = explode(',', $selectedChoices);
-            } else {
-                $selectedChoices = array($picked);
-            }
-
-            $multiselectChoices = array();
-
-            foreach ($selectedChoices as $value) {
-                if (empty($choices[$value])) {
-                    throw new \InvalidArgumentException(sprintf($errorMessage, $value));
-                }
-                $multiselectChoices[] = $value;
-            }
-
-            if ($multiselect) {
-                return $multiselectChoices;
-            }
-
-            return $picked;
-        }, $attempts, $default);
-
-        return $result;
-    }
-
-    /**
-     * Asks a question to the user.
-     *
-     * @param OutputInterface $output       An Output instance
-     * @param string|array    $question     The question to ask
-     * @param string          $default      The default answer if none is given by the user
-     * @param array           $autocomplete List of values to autocomplete
-     *
-     * @return string The user answer
-     *
-     * @throws \RuntimeException If there is no data to read in the input stream
-     */
-    public function ask(OutputInterface $output, $question, $default = null, array $autocomplete = null)
-    {
-        if ($this->input && !$this->input->isInteractive()) {
-            return $default;
-        }
-
-        $output->write($question);
-
-        $inputStream = $this->inputStream ?: STDIN;
-
-        if (null === $autocomplete || !$this->hasSttyAvailable()) {
-            $ret = fgets($inputStream, 4096);
-            if (false === $ret) {
-                throw new \RuntimeException('Aborted');
-            }
-            $ret = trim($ret);
-        } else {
-            $ret = '';
-
-            $i = 0;
-            $ofs = -1;
-            $matches = $autocomplete;
-            $numMatches = count($matches);
-
-            $sttyMode = shell_exec('stty -g');
-
-            // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead)
-            shell_exec('stty -icanon -echo');
-
-            // Add highlighted text style
-            $output->getFormatter()->setStyle('hl', new OutputFormatterStyle('black', 'white'));
-
-            // Read a keypress
-            while (!feof($inputStream)) {
-                $c = fread($inputStream, 1);
-
-                // Backspace Character
-                if ("\177" === $c) {
-                    if (0 === $numMatches && 0 !== $i) {
-                        --$i;
-                        // Move cursor backwards
-                        $output->write("\033[1D");
-                    }
-
-                    if ($i === 0) {
-                        $ofs = -1;
-                        $matches = $autocomplete;
-                        $numMatches = count($matches);
-                    } else {
-                        $numMatches = 0;
-                    }
-
-                    // Pop the last character off the end of our string
-                    $ret = substr($ret, 0, $i);
-                } elseif ("\033" === $c) {
-                    // Did we read an escape sequence?
-                    $c .= fread($inputStream, 2);
-
-                    // A = Up Arrow. B = Down Arrow
-                    if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) {
-                        if ('A' === $c[2] && -1 === $ofs) {
-                            $ofs = 0;
-                        }
-
-                        if (0 === $numMatches) {
-                            continue;
-                        }
-
-                        $ofs += ('A' === $c[2]) ? -1 : 1;
-                        $ofs = ($numMatches + $ofs) % $numMatches;
-                    }
-                } elseif (ord($c) < 32) {
-                    if ("\t" === $c || "\n" === $c) {
-                        if ($numMatches > 0 && -1 !== $ofs) {
-                            $ret = $matches[$ofs];
-                            // Echo out remaining chars for current match
-                            $output->write(substr($ret, $i));
-                            $i = strlen($ret);
-                        }
-
-                        if ("\n" === $c) {
-                            $output->write($c);
-                            break;
-                        }
-
-                        $numMatches = 0;
-                    }
-
-                    continue;
-                } else {
-                    $output->write($c);
-                    $ret .= $c;
-                    ++$i;
-
-                    $numMatches = 0;
-                    $ofs = 0;
-
-                    foreach ($autocomplete as $value) {
-                        // If typed characters match the beginning chunk of value (e.g. [AcmeDe]moBundle)
-                        if (0 === strpos($value, $ret) && $i !== strlen($value)) {
-                            $matches[$numMatches++] = $value;
-                        }
-                    }
-                }
-
-                // Erase characters from cursor to end of line
-                $output->write("\033[K");
-
-                if ($numMatches > 0 && -1 !== $ofs) {
-                    // Save cursor position
-                    $output->write("\0337");
-                    // Write highlighted text
-                    $output->write('<hl>'.substr($matches[$ofs], $i).'</hl>');
-                    // Restore cursor position
-                    $output->write("\0338");
-                }
-            }
-
-            // Reset stty so it behaves normally again
-            shell_exec(sprintf('stty %s', $sttyMode));
-        }
-
-        return strlen($ret) > 0 ? $ret : $default;
-    }
-
-    /**
-     * Asks a confirmation to the user.
-     *
-     * The question will be asked until the user answers by nothing, yes, or no.
-     *
-     * @param OutputInterface $output   An Output instance
-     * @param string|array    $question The question to ask
-     * @param bool            $default  The default answer if the user enters nothing
-     *
-     * @return bool true if the user has confirmed, false otherwise
-     */
-    public function askConfirmation(OutputInterface $output, $question, $default = true)
-    {
-        $answer = 'z';
-        while ($answer && !in_array(strtolower($answer[0]), array('y', 'n'))) {
-            $answer = $this->ask($output, $question);
-        }
-
-        if (false === $default) {
-            return $answer && 'y' == strtolower($answer[0]);
-        }
-
-        return !$answer || 'y' == strtolower($answer[0]);
-    }
-
-    /**
-     * Asks a question to the user, the response is hidden.
-     *
-     * @param OutputInterface $output   An Output instance
-     * @param string|array    $question The question
-     * @param bool            $fallback In case the response can not be hidden, whether to fallback on non-hidden question or not
-     *
-     * @return string The answer
-     *
-     * @throws \RuntimeException In case the fallback is deactivated and the response can not be hidden
-     */
-    public function askHiddenResponse(OutputInterface $output, $question, $fallback = true)
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $exe = __DIR__.'/../Resources/bin/hiddeninput.exe';
-
-            // handle code running from a phar
-            if ('phar:' === substr(__FILE__, 0, 5)) {
-                $tmpExe = sys_get_temp_dir().'/hiddeninput.exe';
-                copy($exe, $tmpExe);
-                $exe = $tmpExe;
-            }
-
-            $output->write($question);
-            $value = rtrim(shell_exec($exe));
-            $output->writeln('');
-
-            if (isset($tmpExe)) {
-                unlink($tmpExe);
-            }
-
-            return $value;
-        }
-
-        if ($this->hasSttyAvailable()) {
-            $output->write($question);
-
-            $sttyMode = shell_exec('stty -g');
-
-            shell_exec('stty -echo');
-            $value = fgets($this->inputStream ?: STDIN, 4096);
-            shell_exec(sprintf('stty %s', $sttyMode));
-
-            if (false === $value) {
-                throw new \RuntimeException('Aborted');
-            }
-
-            $value = trim($value);
-            $output->writeln('');
-
-            return $value;
-        }
-
-        if (false !== $shell = $this->getShell()) {
-            $output->write($question);
-            $readCmd = $shell === 'csh' ? 'set mypassword = $<' : 'read -r mypassword';
-            $command = sprintf("/usr/bin/env %s -c 'stty -echo; %s; stty echo; echo \$mypassword'", $shell, $readCmd);
-            $value = rtrim(shell_exec($command));
-            $output->writeln('');
-
-            return $value;
-        }
-
-        if ($fallback) {
-            return $this->ask($output, $question);
-        }
-
-        throw new \RuntimeException('Unable to hide the response');
-    }
-
-    /**
-     * Asks for a value and validates the response.
-     *
-     * The validator receives the data to validate. It must return the
-     * validated data when the data is valid and throw an exception
-     * otherwise.
-     *
-     * @param OutputInterface $output       An Output instance
-     * @param string|array    $question     The question to ask
-     * @param callable        $validator    A PHP callback
-     * @param int|false       $attempts     Max number of times to ask before giving up (false by default, which means infinite)
-     * @param string          $default      The default answer if none is given by the user
-     * @param array           $autocomplete List of values to autocomplete
-     *
-     * @return mixed
-     *
-     * @throws \Exception When any of the validators return an error
-     */
-    public function askAndValidate(OutputInterface $output, $question, $validator, $attempts = false, $default = null, array $autocomplete = null)
-    {
-        $that = $this;
-
-        $interviewer = function () use ($output, $question, $default, $autocomplete, $that) {
-            return $that->ask($output, $question, $default, $autocomplete);
-        };
-
-        return $this->validateAttempts($interviewer, $output, $validator, $attempts);
-    }
-
-    /**
-     * Asks for a value, hide and validates the response.
-     *
-     * The validator receives the data to validate. It must return the
-     * validated data when the data is valid and throw an exception
-     * otherwise.
-     *
-     * @param OutputInterface $output    An Output instance
-     * @param string|array    $question  The question to ask
-     * @param callable        $validator A PHP callback
-     * @param int|false       $attempts  Max number of times to ask before giving up (false by default, which means infinite)
-     * @param bool            $fallback  In case the response can not be hidden, whether to fallback on non-hidden question or not
-     *
-     * @return string The response
-     *
-     * @throws \Exception        When any of the validators return an error
-     * @throws \RuntimeException In case the fallback is deactivated and the response can not be hidden
-     */
-    public function askHiddenResponseAndValidate(OutputInterface $output, $question, $validator, $attempts = false, $fallback = true)
-    {
-        $that = $this;
-
-        $interviewer = function () use ($output, $question, $fallback, $that) {
-            return $that->askHiddenResponse($output, $question, $fallback);
-        };
-
-        return $this->validateAttempts($interviewer, $output, $validator, $attempts);
-    }
-
-    /**
-     * Sets the input stream to read from when interacting with the user.
-     *
-     * This is mainly useful for testing purpose.
-     *
-     * @param resource $stream The input stream
-     */
-    public function setInputStream($stream)
-    {
-        $this->inputStream = $stream;
-    }
-
-    /**
-     * Returns the helper's input stream.
-     *
-     * @return string
-     */
-    public function getInputStream()
-    {
-        return $this->inputStream;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'dialog';
-    }
-
-    /**
-     * Return a valid Unix shell.
-     *
-     * @return string|bool The valid shell name, false in case no valid shell is found
-     */
-    private function getShell()
-    {
-        if (null !== self::$shell) {
-            return self::$shell;
-        }
-
-        self::$shell = false;
-
-        if (file_exists('/usr/bin/env')) {
-            // handle other OSs with bash/zsh/ksh/csh if available to hide the answer
-            $test = "/usr/bin/env %s -c 'echo OK' 2> /dev/null";
-            foreach (array('bash', 'zsh', 'ksh', 'csh') as $sh) {
-                if ('OK' === rtrim(shell_exec(sprintf($test, $sh)))) {
-                    self::$shell = $sh;
-                    break;
-                }
-            }
-        }
-
-        return self::$shell;
-    }
-
-    private function hasSttyAvailable()
-    {
-        if (null !== self::$stty) {
-            return self::$stty;
-        }
-
-        exec('stty 2>&1', $output, $exitcode);
-
-        return self::$stty = $exitcode === 0;
-    }
-
-    /**
-     * Validate an attempt.
-     *
-     * @param callable        $interviewer A callable that will ask for a question and return the result
-     * @param OutputInterface $output      An Output instance
-     * @param callable        $validator   A PHP callback
-     * @param int|false       $attempts    Max number of times to ask before giving up ; false will ask infinitely
-     *
-     * @return string The validated response
-     *
-     * @throws \Exception In case the max number of attempts has been reached and no valid response has been given
-     */
-    private function validateAttempts($interviewer, OutputInterface $output, $validator, $attempts)
-    {
-        $e = null;
-        while (false === $attempts || $attempts--) {
-            if (null !== $e) {
-                $output->writeln($this->getHelperSet()->get('formatter')->formatBlock($e->getMessage(), 'error'));
-            }
-
-            try {
-                return call_user_func($validator, $interviewer());
-            } catch (\Exception $e) {
-            }
-        }
-
-        throw $e;
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/FormatterHelper.php b/core/vendor/symfony/console/Helper/FormatterHelper.php
deleted file mode 100644
index ac736f9..0000000
--- a/core/vendor/symfony/console/Helper/FormatterHelper.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Formatter\OutputFormatter;
-
-/**
- * The Formatter class provides helpers to format messages.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class FormatterHelper extends Helper
-{
-    /**
-     * Formats a message within a section.
-     *
-     * @param string $section The section name
-     * @param string $message The message
-     * @param string $style   The style to apply to the section
-     *
-     * @return string The format section
-     */
-    public function formatSection($section, $message, $style = 'info')
-    {
-        return sprintf('<%s>[%s]</%s> %s', $style, $section, $style, $message);
-    }
-
-    /**
-     * Formats a message as a block of text.
-     *
-     * @param string|array $messages The message to write in the block
-     * @param string       $style    The style to apply to the whole block
-     * @param bool         $large    Whether to return a large block
-     *
-     * @return string The formatter message
-     */
-    public function formatBlock($messages, $style, $large = false)
-    {
-        if (!is_array($messages)) {
-            $messages = array($messages);
-        }
-
-        $len = 0;
-        $lines = array();
-        foreach ($messages as $message) {
-            $message = OutputFormatter::escape($message);
-            $lines[] = sprintf($large ? '  %s  ' : ' %s ', $message);
-            $len = max($this->strlen($message) + ($large ? 4 : 2), $len);
-        }
-
-        $messages = $large ? array(str_repeat(' ', $len)) : array();
-        for ($i = 0; isset($lines[$i]); ++$i) {
-            $messages[] = $lines[$i].str_repeat(' ', $len - $this->strlen($lines[$i]));
-        }
-        if ($large) {
-            $messages[] = str_repeat(' ', $len);
-        }
-
-        for ($i = 0; isset($messages[$i]); ++$i) {
-            $messages[$i] = sprintf('<%s>%s</%s>', $style, $messages[$i], $style);
-        }
-
-        return implode("\n", $messages);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'formatter';
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/Helper.php b/core/vendor/symfony/console/Helper/Helper.php
deleted file mode 100644
index b288d44..0000000
--- a/core/vendor/symfony/console/Helper/Helper.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-
-/**
- * Helper is the base class for all helper classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Helper implements HelperInterface
-{
-    protected $helperSet = null;
-
-    /**
-     * Sets the helper set associated with this helper.
-     *
-     * @param HelperSet $helperSet A HelperSet instance
-     */
-    public function setHelperSet(HelperSet $helperSet = null)
-    {
-        $this->helperSet = $helperSet;
-    }
-
-    /**
-     * Gets the helper set associated with this helper.
-     *
-     * @return HelperSet A HelperSet instance
-     */
-    public function getHelperSet()
-    {
-        return $this->helperSet;
-    }
-
-    /**
-     * Returns the length of a string, using mb_strwidth if it is available.
-     *
-     * @param string $string The string to check its length
-     *
-     * @return int The length of the string
-     */
-    public static function strlen($string)
-    {
-        if (!function_exists('mb_strwidth')) {
-            return strlen($string);
-        }
-
-        if (false === $encoding = mb_detect_encoding($string)) {
-            return strlen($string);
-        }
-
-        return mb_strwidth($string, $encoding);
-    }
-
-    public static function formatTime($secs)
-    {
-        static $timeFormats = array(
-            array(0, '< 1 sec'),
-            array(2, '1 sec'),
-            array(59, 'secs', 1),
-            array(60, '1 min'),
-            array(3600, 'mins', 60),
-            array(5400, '1 hr'),
-            array(86400, 'hrs', 3600),
-            array(129600, '1 day'),
-            array(604800, 'days', 86400),
-        );
-
-        foreach ($timeFormats as $format) {
-            if ($secs >= $format[0]) {
-                continue;
-            }
-
-            if (2 == count($format)) {
-                return $format[1];
-            }
-
-            return ceil($secs / $format[2]).' '.$format[1];
-        }
-    }
-
-    public static function formatMemory($memory)
-    {
-        if ($memory >= 1024 * 1024 * 1024) {
-            return sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024);
-        }
-
-        if ($memory >= 1024 * 1024) {
-            return sprintf('%.1f MiB', $memory / 1024 / 1024);
-        }
-
-        if ($memory >= 1024) {
-            return sprintf('%d KiB', $memory / 1024);
-        }
-
-        return sprintf('%d B', $memory);
-    }
-
-    public static function strlenWithoutDecoration(OutputFormatterInterface $formatter, $string)
-    {
-        $isDecorated = $formatter->isDecorated();
-        $formatter->setDecorated(false);
-        // remove <...> formatting
-        $string = $formatter->format($string);
-        // remove already formatted characters
-        $string = preg_replace("/\033\[[^m]*m/", '', $string);
-        $formatter->setDecorated($isDecorated);
-
-        return self::strlen($string);
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/HelperInterface.php b/core/vendor/symfony/console/Helper/HelperInterface.php
deleted file mode 100644
index 6d39449..0000000
--- a/core/vendor/symfony/console/Helper/HelperInterface.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-/**
- * HelperInterface is the interface all helpers must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface HelperInterface
-{
-    /**
-     * Sets the helper set associated with this helper.
-     *
-     * @param HelperSet $helperSet A HelperSet instance
-     *
-     * @api
-     */
-    public function setHelperSet(HelperSet $helperSet = null);
-
-    /**
-     * Gets the helper set associated with this helper.
-     *
-     * @return HelperSet A HelperSet instance
-     *
-     * @api
-     */
-    public function getHelperSet();
-
-    /**
-     * Returns the canonical name of this helper.
-     *
-     * @return string The canonical name
-     *
-     * @api
-     */
-    public function getName();
-}
diff --git a/core/vendor/symfony/console/Helper/HelperSet.php b/core/vendor/symfony/console/Helper/HelperSet.php
deleted file mode 100644
index 00354dd..0000000
--- a/core/vendor/symfony/console/Helper/HelperSet.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Command\Command;
-
-/**
- * HelperSet represents a set of helpers to be used with a command.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class HelperSet implements \IteratorAggregate
-{
-    private $helpers = array();
-    private $command;
-
-    /**
-     * Constructor.
-     *
-     * @param Helper[] $helpers An array of helper.
-     */
-    public function __construct(array $helpers = array())
-    {
-        foreach ($helpers as $alias => $helper) {
-            $this->set($helper, is_int($alias) ? null : $alias);
-        }
-    }
-
-    /**
-     * Sets a helper.
-     *
-     * @param HelperInterface $helper The helper instance
-     * @param string          $alias  An alias
-     */
-    public function set(HelperInterface $helper, $alias = null)
-    {
-        $this->helpers[$helper->getName()] = $helper;
-        if (null !== $alias) {
-            $this->helpers[$alias] = $helper;
-        }
-
-        $helper->setHelperSet($this);
-    }
-
-    /**
-     * Returns true if the helper if defined.
-     *
-     * @param string $name The helper name
-     *
-     * @return bool true if the helper is defined, false otherwise
-     */
-    public function has($name)
-    {
-        return isset($this->helpers[$name]);
-    }
-
-    /**
-     * Gets a helper value.
-     *
-     * @param string $name The helper name
-     *
-     * @return HelperInterface The helper instance
-     *
-     * @throws \InvalidArgumentException if the helper is not defined
-     */
-    public function get($name)
-    {
-        if (!$this->has($name)) {
-            throw new \InvalidArgumentException(sprintf('The helper "%s" is not defined.', $name));
-        }
-
-        if ('dialog' === $name && $this->helpers[$name] instanceof DialogHelper) {
-            @trigger_error('"Symfony\Component\Console\Helper\DialogHelper" is deprecated since version 2.5 and will be removed in 3.0. Use "Symfony\Component\Console\Helper\QuestionHelper" instead.', E_USER_DEPRECATED);
-        } elseif ('progress' === $name && $this->helpers[$name] instanceof ProgressHelper) {
-            @trigger_error('"Symfony\Component\Console\Helper\ProgressHelper" is deprecated since version 2.5 and will be removed in 3.0. Use "Symfony\Component\Console\Helper\ProgressBar" instead.', E_USER_DEPRECATED);
-        } elseif ('table' === $name && $this->helpers[$name] instanceof TableHelper) {
-            @trigger_error('"Symfony\Component\Console\Helper\TableHelper" is deprecated since version 2.5 and will be removed in 3.0. Use "Symfony\Component\Console\Helper\Table" instead.', E_USER_DEPRECATED);
-        }
-
-        return $this->helpers[$name];
-    }
-
-    /**
-     * Sets the command associated with this helper set.
-     *
-     * @param Command $command A Command instance
-     */
-    public function setCommand(Command $command = null)
-    {
-        $this->command = $command;
-    }
-
-    /**
-     * Gets the command associated with this helper set.
-     *
-     * @return Command A Command instance
-     */
-    public function getCommand()
-    {
-        return $this->command;
-    }
-
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->helpers);
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/InputAwareHelper.php b/core/vendor/symfony/console/Helper/InputAwareHelper.php
deleted file mode 100644
index 4261767..0000000
--- a/core/vendor/symfony/console/Helper/InputAwareHelper.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputAwareInterface;
-
-/**
- * An implementation of InputAwareInterface for Helpers.
- *
- * @author Wouter J <waldio.webdesign@gmail.com>
- */
-abstract class InputAwareHelper extends Helper implements InputAwareInterface
-{
-    protected $input;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setInput(InputInterface $input)
-    {
-        $this->input = $input;
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/ProcessHelper.php b/core/vendor/symfony/console/Helper/ProcessHelper.php
deleted file mode 100644
index 0c9da73..0000000
--- a/core/vendor/symfony/console/Helper/ProcessHelper.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Process\Exception\ProcessFailedException;
-use Symfony\Component\Process\Process;
-use Symfony\Component\Process\ProcessBuilder;
-
-/**
- * The ProcessHelper class provides helpers to run external processes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ProcessHelper extends Helper
-{
-    /**
-     * Runs an external process.
-     *
-     * @param OutputInterface      $output    An OutputInterface instance
-     * @param string|array|Process $cmd       An instance of Process or an array of arguments to escape and run or a command to run
-     * @param string|null          $error     An error message that must be displayed if something went wrong
-     * @param callable|null        $callback  A PHP callback to run whenever there is some
-     *                                        output available on STDOUT or STDERR
-     * @param int                  $verbosity The threshold for verbosity
-     *
-     * @return Process The process that ran
-     */
-    public function run(OutputInterface $output, $cmd, $error = null, $callback = null, $verbosity = OutputInterface::VERBOSITY_VERY_VERBOSE)
-    {
-        $formatter = $this->getHelperSet()->get('debug_formatter');
-
-        if (is_array($cmd)) {
-            $process = ProcessBuilder::create($cmd)->getProcess();
-        } elseif ($cmd instanceof Process) {
-            $process = $cmd;
-        } else {
-            $process = new Process($cmd);
-        }
-
-        if ($verbosity <= $output->getVerbosity()) {
-            $output->write($formatter->start(spl_object_hash($process), $this->escapeString($process->getCommandLine())));
-        }
-
-        if ($output->isDebug()) {
-            $callback = $this->wrapCallback($output, $process, $callback);
-        }
-
-        $process->run($callback);
-
-        if ($verbosity <= $output->getVerbosity()) {
-            $message = $process->isSuccessful() ? 'Command ran successfully' : sprintf('%s Command did not run successfully', $process->getExitCode());
-            $output->write($formatter->stop(spl_object_hash($process), $message, $process->isSuccessful()));
-        }
-
-        if (!$process->isSuccessful() && null !== $error) {
-            $output->writeln(sprintf('<error>%s</error>', $this->escapeString($error)));
-        }
-
-        return $process;
-    }
-
-    /**
-     * Runs the process.
-     *
-     * This is identical to run() except that an exception is thrown if the process
-     * exits with a non-zero exit code.
-     *
-     * @param OutputInterface $output   An OutputInterface instance
-     * @param string|Process  $cmd      An instance of Process or a command to run
-     * @param string|null     $error    An error message that must be displayed if something went wrong
-     * @param callable|null   $callback A PHP callback to run whenever there is some
-     *                                  output available on STDOUT or STDERR
-     *
-     * @return Process The process that ran
-     *
-     * @throws ProcessFailedException
-     *
-     * @see run()
-     */
-    public function mustRun(OutputInterface $output, $cmd, $error = null, $callback = null)
-    {
-        $process = $this->run($output, $cmd, $error, $callback);
-
-        if (!$process->isSuccessful()) {
-            throw new ProcessFailedException($process);
-        }
-
-        return $process;
-    }
-
-    /**
-     * Wraps a Process callback to add debugging output.
-     *
-     * @param OutputInterface $output   An OutputInterface interface
-     * @param Process         $process  The Process
-     * @param callable|null   $callback A PHP callable
-     *
-     * @return callable
-     */
-    public function wrapCallback(OutputInterface $output, Process $process, $callback = null)
-    {
-        $formatter = $this->getHelperSet()->get('debug_formatter');
-
-        $that = $this;
-
-        return function ($type, $buffer) use ($output, $process, $callback, $formatter, $that) {
-            $output->write($formatter->progress(spl_object_hash($process), $that->escapeString($buffer), Process::ERR === $type));
-
-            if (null !== $callback) {
-                call_user_func($callback, $type, $buffer);
-            }
-        };
-    }
-
-    /**
-     * This method is public for PHP 5.3 compatibility, it should be private.
-     *
-     * @internal
-     */
-    public function escapeString($str)
-    {
-        return str_replace('<', '\\<', $str);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'process';
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/ProgressBar.php b/core/vendor/symfony/console/Helper/ProgressBar.php
deleted file mode 100644
index e5ba927..0000000
--- a/core/vendor/symfony/console/Helper/ProgressBar.php
+++ /dev/null
@@ -1,615 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * The ProgressBar provides helpers to display progress output.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Chris Jones <leeked@gmail.com>
- */
-class ProgressBar
-{
-    // options
-    private $barWidth = 28;
-    private $barChar;
-    private $emptyBarChar = '-';
-    private $progressChar = '>';
-    private $format = null;
-    private $redrawFreq = 1;
-
-    /**
-     * @var OutputInterface
-     */
-    private $output;
-    private $step = 0;
-    private $max;
-    private $startTime;
-    private $stepWidth;
-    private $percent = 0.0;
-    private $lastMessagesLength = 0;
-    private $formatLineCount;
-    private $messages;
-    private $overwrite = true;
-
-    private static $formatters;
-    private static $formats;
-
-    /**
-     * Constructor.
-     *
-     * @param OutputInterface $output An OutputInterface instance
-     * @param int             $max    Maximum steps (0 if unknown)
-     */
-    public function __construct(OutputInterface $output, $max = 0)
-    {
-        $this->output = $output;
-        $this->setMaxSteps($max);
-
-        if (!$this->output->isDecorated()) {
-            // disable overwrite when output does not support ANSI codes.
-            $this->overwrite = false;
-
-            if ($this->max > 10) {
-                // set a reasonable redraw frequency so output isn't flooded
-                $this->setRedrawFrequency($max / 10);
-            }
-        }
-
-        $this->setFormat($this->determineBestFormat());
-
-        $this->startTime = time();
-    }
-
-    /**
-     * Sets a placeholder formatter for a given name.
-     *
-     * This method also allow you to override an existing placeholder.
-     *
-     * @param string   $name     The placeholder name (including the delimiter char like %)
-     * @param callable $callable A PHP callable
-     */
-    public static function setPlaceholderFormatterDefinition($name, $callable)
-    {
-        if (!self::$formatters) {
-            self::$formatters = self::initPlaceholderFormatters();
-        }
-
-        self::$formatters[$name] = $callable;
-    }
-
-    /**
-     * Gets the placeholder formatter for a given name.
-     *
-     * @param string $name The placeholder name (including the delimiter char like %)
-     *
-     * @return callable|null A PHP callable
-     */
-    public static function getPlaceholderFormatterDefinition($name)
-    {
-        if (!self::$formatters) {
-            self::$formatters = self::initPlaceholderFormatters();
-        }
-
-        return isset(self::$formatters[$name]) ? self::$formatters[$name] : null;
-    }
-
-    /**
-     * Sets a format for a given name.
-     *
-     * This method also allow you to override an existing format.
-     *
-     * @param string $name   The format name
-     * @param string $format A format string
-     */
-    public static function setFormatDefinition($name, $format)
-    {
-        if (!self::$formats) {
-            self::$formats = self::initFormats();
-        }
-
-        self::$formats[$name] = $format;
-    }
-
-    /**
-     * Gets the format for a given name.
-     *
-     * @param string $name The format name
-     *
-     * @return string|null A format string
-     */
-    public static function getFormatDefinition($name)
-    {
-        if (!self::$formats) {
-            self::$formats = self::initFormats();
-        }
-
-        return isset(self::$formats[$name]) ? self::$formats[$name] : null;
-    }
-
-    public function setMessage($message, $name = 'message')
-    {
-        $this->messages[$name] = $message;
-    }
-
-    public function getMessage($name = 'message')
-    {
-        return $this->messages[$name];
-    }
-
-    /**
-     * Gets the progress bar start time.
-     *
-     * @return int The progress bar start time
-     */
-    public function getStartTime()
-    {
-        return $this->startTime;
-    }
-
-    /**
-     * Gets the progress bar maximal steps.
-     *
-     * @return int The progress bar max steps
-     */
-    public function getMaxSteps()
-    {
-        return $this->max;
-    }
-
-    /**
-     * Gets the progress bar step.
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use {@link getProgress()} instead.
-     *
-     * @return int The progress bar step
-     */
-    public function getStep()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the getProgress() method instead.', E_USER_DEPRECATED);
-
-        return $this->getProgress();
-    }
-
-    /**
-     * Gets the current step position.
-     *
-     * @return int The progress bar step
-     */
-    public function getProgress()
-    {
-        return $this->step;
-    }
-
-    /**
-     * Gets the progress bar step width.
-     *
-     * @internal This method is public for PHP 5.3 compatibility, it should not be used.
-     *
-     * @return int The progress bar step width
-     */
-    public function getStepWidth()
-    {
-        return $this->stepWidth;
-    }
-
-    /**
-     * Gets the current progress bar percent.
-     *
-     * @return float The current progress bar percent
-     */
-    public function getProgressPercent()
-    {
-        return $this->percent;
-    }
-
-    /**
-     * Sets the progress bar width.
-     *
-     * @param int $size The progress bar size
-     */
-    public function setBarWidth($size)
-    {
-        $this->barWidth = (int) $size;
-    }
-
-    /**
-     * Gets the progress bar width.
-     *
-     * @return int The progress bar size
-     */
-    public function getBarWidth()
-    {
-        return $this->barWidth;
-    }
-
-    /**
-     * Sets the bar character.
-     *
-     * @param string $char A character
-     */
-    public function setBarCharacter($char)
-    {
-        $this->barChar = $char;
-    }
-
-    /**
-     * Gets the bar character.
-     *
-     * @return string A character
-     */
-    public function getBarCharacter()
-    {
-        if (null === $this->barChar) {
-            return $this->max ? '=' : $this->emptyBarChar;
-        }
-
-        return $this->barChar;
-    }
-
-    /**
-     * Sets the empty bar character.
-     *
-     * @param string $char A character
-     */
-    public function setEmptyBarCharacter($char)
-    {
-        $this->emptyBarChar = $char;
-    }
-
-    /**
-     * Gets the empty bar character.
-     *
-     * @return string A character
-     */
-    public function getEmptyBarCharacter()
-    {
-        return $this->emptyBarChar;
-    }
-
-    /**
-     * Sets the progress bar character.
-     *
-     * @param string $char A character
-     */
-    public function setProgressCharacter($char)
-    {
-        $this->progressChar = $char;
-    }
-
-    /**
-     * Gets the progress bar character.
-     *
-     * @return string A character
-     */
-    public function getProgressCharacter()
-    {
-        return $this->progressChar;
-    }
-
-    /**
-     * Sets the progress bar format.
-     *
-     * @param string $format The format
-     */
-    public function setFormat($format)
-    {
-        // try to use the _nomax variant if available
-        if (!$this->max && null !== self::getFormatDefinition($format.'_nomax')) {
-            $this->format = self::getFormatDefinition($format.'_nomax');
-        } elseif (null !== self::getFormatDefinition($format)) {
-            $this->format = self::getFormatDefinition($format);
-        } else {
-            $this->format = $format;
-        }
-
-        $this->formatLineCount = substr_count($this->format, "\n");
-    }
-
-    /**
-     * Sets the redraw frequency.
-     *
-     * @param int $freq The frequency in steps
-     */
-    public function setRedrawFrequency($freq)
-    {
-        $this->redrawFreq = (int) $freq;
-    }
-
-    /**
-     * Starts the progress output.
-     *
-     * @param int|null $max Number of steps to complete the bar (0 if indeterminate), null to leave unchanged
-     */
-    public function start($max = null)
-    {
-        $this->startTime = time();
-        $this->step = 0;
-        $this->percent = 0.0;
-
-        if (null !== $max) {
-            $this->setMaxSteps($max);
-        }
-
-        $this->display();
-    }
-
-    /**
-     * Advances the progress output X steps.
-     *
-     * @param int $step Number of steps to advance
-     *
-     * @throws \LogicException
-     */
-    public function advance($step = 1)
-    {
-        $this->setProgress($this->step + $step);
-    }
-
-    /**
-     * Sets the current progress.
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use {@link setProgress()} instead.
-     *
-     * @param int $step The current progress
-     *
-     * @throws \LogicException
-     */
-    public function setCurrent($step)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the setProgress() method instead.', E_USER_DEPRECATED);
-
-        $this->setProgress($step);
-    }
-
-    /**
-     * Sets whether to overwrite the progressbar, false for new line.
-     *
-     * @param bool $overwrite
-     */
-    public function setOverwrite($overwrite)
-    {
-        $this->overwrite = (bool) $overwrite;
-    }
-
-    /**
-     * Sets the current progress.
-     *
-     * @param int $step The current progress
-     *
-     * @throws \LogicException
-     */
-    public function setProgress($step)
-    {
-        $step = (int) $step;
-        if ($step < $this->step) {
-            throw new \LogicException('You can\'t regress the progress bar.');
-        }
-
-        if ($this->max && $step > $this->max) {
-            $this->max = $step;
-        }
-
-        $prevPeriod = (int) ($this->step / $this->redrawFreq);
-        $currPeriod = (int) ($step / $this->redrawFreq);
-        $this->step = $step;
-        $this->percent = $this->max ? (float) $this->step / $this->max : 0;
-        if ($prevPeriod !== $currPeriod || $this->max === $step) {
-            $this->display();
-        }
-    }
-
-    /**
-     * Finishes the progress output.
-     */
-    public function finish()
-    {
-        if (!$this->max) {
-            $this->max = $this->step;
-        }
-
-        if ($this->step === $this->max && !$this->overwrite) {
-            // prevent double 100% output
-            return;
-        }
-
-        $this->setProgress($this->max);
-    }
-
-    /**
-     * Outputs the current progress string.
-     */
-    public function display()
-    {
-        if (OutputInterface::VERBOSITY_QUIET === $this->output->getVerbosity()) {
-            return;
-        }
-
-        // these 3 variables can be removed in favor of using $this in the closure when support for PHP 5.3 will be dropped.
-        $self = $this;
-        $output = $this->output;
-        $messages = $this->messages;
-        $this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) use ($self, $output, $messages) {
-            if ($formatter = $self::getPlaceholderFormatterDefinition($matches[1])) {
-                $text = call_user_func($formatter, $self, $output);
-            } elseif (isset($messages[$matches[1]])) {
-                $text = $messages[$matches[1]];
-            } else {
-                return $matches[0];
-            }
-
-            if (isset($matches[2])) {
-                $text = sprintf('%'.$matches[2], $text);
-            }
-
-            return $text;
-        }, $this->format));
-    }
-
-    /**
-     * Removes the progress bar from the current line.
-     *
-     * This is useful if you wish to write some output
-     * while a progress bar is running.
-     * Call display() to show the progress bar again.
-     */
-    public function clear()
-    {
-        if (!$this->overwrite) {
-            return;
-        }
-
-        $this->overwrite(str_repeat("\n", $this->formatLineCount));
-    }
-
-    /**
-     * Sets the progress bar maximal steps.
-     *
-     * @param int     The progress bar max steps
-     */
-    private function setMaxSteps($max)
-    {
-        $this->max = max(0, (int) $max);
-        $this->stepWidth = $this->max ? Helper::strlen($this->max) : 4;
-    }
-
-    /**
-     * Overwrites a previous message to the output.
-     *
-     * @param string $message The message
-     */
-    private function overwrite($message)
-    {
-        $lines = explode("\n", $message);
-
-        // append whitespace to match the line's length
-        if (null !== $this->lastMessagesLength) {
-            foreach ($lines as $i => $line) {
-                if ($this->lastMessagesLength > Helper::strlenWithoutDecoration($this->output->getFormatter(), $line)) {
-                    $lines[$i] = str_pad($line, $this->lastMessagesLength, "\x20", STR_PAD_RIGHT);
-                }
-            }
-        }
-
-        if ($this->overwrite) {
-            // move back to the beginning of the progress bar before redrawing it
-            $this->output->write("\x0D");
-        } elseif ($this->step > 0) {
-            // move to new line
-            $this->output->writeln('');
-        }
-
-        if ($this->formatLineCount) {
-            $this->output->write(sprintf("\033[%dA", $this->formatLineCount));
-        }
-        $this->output->write(implode("\n", $lines));
-
-        $this->lastMessagesLength = 0;
-        foreach ($lines as $line) {
-            $len = Helper::strlenWithoutDecoration($this->output->getFormatter(), $line);
-            if ($len > $this->lastMessagesLength) {
-                $this->lastMessagesLength = $len;
-            }
-        }
-    }
-
-    private function determineBestFormat()
-    {
-        switch ($this->output->getVerbosity()) {
-            // OutputInterface::VERBOSITY_QUIET: display is disabled anyway
-            case OutputInterface::VERBOSITY_VERBOSE:
-                return $this->max ? 'verbose' : 'verbose_nomax';
-            case OutputInterface::VERBOSITY_VERY_VERBOSE:
-                return $this->max ? 'very_verbose' : 'very_verbose_nomax';
-            case OutputInterface::VERBOSITY_DEBUG:
-                return $this->max ? 'debug' : 'debug_nomax';
-            default:
-                return $this->max ? 'normal' : 'normal_nomax';
-        }
-    }
-
-    private static function initPlaceholderFormatters()
-    {
-        return array(
-            'bar' => function (ProgressBar $bar, OutputInterface $output) {
-                $completeBars = floor($bar->getMaxSteps() > 0 ? $bar->getProgressPercent() * $bar->getBarWidth() : $bar->getProgress() % $bar->getBarWidth());
-                $display = str_repeat($bar->getBarCharacter(), $completeBars);
-                if ($completeBars < $bar->getBarWidth()) {
-                    $emptyBars = $bar->getBarWidth() - $completeBars - Helper::strlenWithoutDecoration($output->getFormatter(), $bar->getProgressCharacter());
-                    $display .= $bar->getProgressCharacter().str_repeat($bar->getEmptyBarCharacter(), $emptyBars);
-                }
-
-                return $display;
-            },
-            'elapsed' => function (ProgressBar $bar) {
-                return Helper::formatTime(time() - $bar->getStartTime());
-            },
-            'remaining' => function (ProgressBar $bar) {
-                if (!$bar->getMaxSteps()) {
-                    throw new \LogicException('Unable to display the remaining time if the maximum number of steps is not set.');
-                }
-
-                if (!$bar->getProgress()) {
-                    $remaining = 0;
-                } else {
-                    $remaining = round((time() - $bar->getStartTime()) / $bar->getProgress() * ($bar->getMaxSteps() - $bar->getProgress()));
-                }
-
-                return Helper::formatTime($remaining);
-            },
-            'estimated' => function (ProgressBar $bar) {
-                if (!$bar->getMaxSteps()) {
-                    throw new \LogicException('Unable to display the estimated time if the maximum number of steps is not set.');
-                }
-
-                if (!$bar->getProgress()) {
-                    $estimated = 0;
-                } else {
-                    $estimated = round((time() - $bar->getStartTime()) / $bar->getProgress() * $bar->getMaxSteps());
-                }
-
-                return Helper::formatTime($estimated);
-            },
-            'memory' => function (ProgressBar $bar) {
-                return Helper::formatMemory(memory_get_usage(true));
-            },
-            'current' => function (ProgressBar $bar) {
-                return str_pad($bar->getProgress(), $bar->getStepWidth(), ' ', STR_PAD_LEFT);
-            },
-            'max' => function (ProgressBar $bar) {
-                return $bar->getMaxSteps();
-            },
-            'percent' => function (ProgressBar $bar) {
-                return floor($bar->getProgressPercent() * 100);
-            },
-        );
-    }
-
-    private static function initFormats()
-    {
-        return array(
-            'normal' => ' %current%/%max% [%bar%] %percent:3s%%',
-            'normal_nomax' => ' %current% [%bar%]',
-
-            'verbose' => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%',
-            'verbose_nomax' => ' %current% [%bar%] %elapsed:6s%',
-
-            'very_verbose' => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s%',
-            'very_verbose_nomax' => ' %current% [%bar%] %elapsed:6s%',
-
-            'debug' => ' %current%/%max% [%bar%] %percent:3s%% %elapsed:6s%/%estimated:-6s% %memory:6s%',
-            'debug_nomax' => ' %current% [%bar%] %elapsed:6s% %memory:6s%',
-        );
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/ProgressHelper.php b/core/vendor/symfony/console/Helper/ProgressHelper.php
deleted file mode 100644
index bd88566..0000000
--- a/core/vendor/symfony/console/Helper/ProgressHelper.php
+++ /dev/null
@@ -1,465 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Output\NullOutput;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * The Progress class provides helpers to display progress output.
- *
- * @author Chris Jones <leeked@gmail.com>
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0
- *             Use {@link ProgressBar} instead.
- */
-class ProgressHelper extends Helper
-{
-    const FORMAT_QUIET = ' %percent%%';
-    const FORMAT_NORMAL = ' %current%/%max% [%bar%] %percent%%';
-    const FORMAT_VERBOSE = ' %current%/%max% [%bar%] %percent%% Elapsed: %elapsed%';
-    const FORMAT_QUIET_NOMAX = ' %current%';
-    const FORMAT_NORMAL_NOMAX = ' %current% [%bar%]';
-    const FORMAT_VERBOSE_NOMAX = ' %current% [%bar%] Elapsed: %elapsed%';
-
-    // options
-    private $barWidth = 28;
-    private $barChar = '=';
-    private $emptyBarChar = '-';
-    private $progressChar = '>';
-    private $format = null;
-    private $redrawFreq = 1;
-
-    private $lastMessagesLength;
-    private $barCharOriginal;
-
-    /**
-     * @var OutputInterface
-     */
-    private $output;
-
-    /**
-     * Current step.
-     *
-     * @var int
-     */
-    private $current;
-
-    /**
-     * Maximum number of steps.
-     *
-     * @var int
-     */
-    private $max;
-
-    /**
-     * Start time of the progress bar.
-     *
-     * @var int
-     */
-    private $startTime;
-
-    /**
-     * List of formatting variables.
-     *
-     * @var array
-     */
-    private $defaultFormatVars = array(
-        'current',
-        'max',
-        'bar',
-        'percent',
-        'elapsed',
-    );
-
-    /**
-     * Available formatting variables.
-     *
-     * @var array
-     */
-    private $formatVars;
-
-    /**
-     * Stored format part widths (used for padding).
-     *
-     * @var array
-     */
-    private $widths = array(
-        'current' => 4,
-        'max' => 4,
-        'percent' => 3,
-        'elapsed' => 6,
-    );
-
-    /**
-     * Various time formats.
-     *
-     * @var array
-     */
-    private $timeFormats = array(
-        array(0, '???'),
-        array(2, '1 sec'),
-        array(59, 'secs', 1),
-        array(60, '1 min'),
-        array(3600, 'mins', 60),
-        array(5400, '1 hr'),
-        array(86400, 'hrs', 3600),
-        array(129600, '1 day'),
-        array(604800, 'days', 86400),
-    );
-
-    public function __construct($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__CLASS__.' class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Console\Helper\ProgressBar class instead.', E_USER_DEPRECATED);
-        }
-    }
-
-    /**
-     * Sets the progress bar width.
-     *
-     * @param int $size The progress bar size
-     */
-    public function setBarWidth($size)
-    {
-        $this->barWidth = (int) $size;
-    }
-
-    /**
-     * Sets the bar character.
-     *
-     * @param string $char A character
-     */
-    public function setBarCharacter($char)
-    {
-        $this->barChar = $char;
-    }
-
-    /**
-     * Sets the empty bar character.
-     *
-     * @param string $char A character
-     */
-    public function setEmptyBarCharacter($char)
-    {
-        $this->emptyBarChar = $char;
-    }
-
-    /**
-     * Sets the progress bar character.
-     *
-     * @param string $char A character
-     */
-    public function setProgressCharacter($char)
-    {
-        $this->progressChar = $char;
-    }
-
-    /**
-     * Sets the progress bar format.
-     *
-     * @param string $format The format
-     */
-    public function setFormat($format)
-    {
-        $this->format = $format;
-    }
-
-    /**
-     * Sets the redraw frequency.
-     *
-     * @param int $freq The frequency in steps
-     */
-    public function setRedrawFrequency($freq)
-    {
-        $this->redrawFreq = (int) $freq;
-    }
-
-    /**
-     * Starts the progress output.
-     *
-     * @param OutputInterface $output An Output instance
-     * @param int|null        $max    Maximum steps
-     */
-    public function start(OutputInterface $output, $max = null)
-    {
-        $this->startTime = time();
-        $this->current = 0;
-        $this->max = (int) $max;
-
-        // Disabling output when it does not support ANSI codes as it would result in a broken display anyway.
-        $this->output = $output->isDecorated() ? $output : new NullOutput();
-        $this->lastMessagesLength = 0;
-        $this->barCharOriginal = '';
-
-        if (null === $this->format) {
-            switch ($output->getVerbosity()) {
-                case OutputInterface::VERBOSITY_QUIET:
-                    $this->format = self::FORMAT_QUIET_NOMAX;
-                    if ($this->max > 0) {
-                        $this->format = self::FORMAT_QUIET;
-                    }
-                    break;
-                case OutputInterface::VERBOSITY_VERBOSE:
-                case OutputInterface::VERBOSITY_VERY_VERBOSE:
-                case OutputInterface::VERBOSITY_DEBUG:
-                    $this->format = self::FORMAT_VERBOSE_NOMAX;
-                    if ($this->max > 0) {
-                        $this->format = self::FORMAT_VERBOSE;
-                    }
-                    break;
-                default:
-                    $this->format = self::FORMAT_NORMAL_NOMAX;
-                    if ($this->max > 0) {
-                        $this->format = self::FORMAT_NORMAL;
-                    }
-                    break;
-            }
-        }
-
-        $this->initialize();
-    }
-
-    /**
-     * Advances the progress output X steps.
-     *
-     * @param int  $step   Number of steps to advance
-     * @param bool $redraw Whether to redraw or not
-     *
-     * @throws \LogicException
-     */
-    public function advance($step = 1, $redraw = false)
-    {
-        $this->setCurrent($this->current + $step, $redraw);
-    }
-
-    /**
-     * Sets the current progress.
-     *
-     * @param int  $current The current progress
-     * @param bool $redraw  Whether to redraw or not
-     *
-     * @throws \LogicException
-     */
-    public function setCurrent($current, $redraw = false)
-    {
-        if (null === $this->startTime) {
-            throw new \LogicException('You must start the progress bar before calling setCurrent().');
-        }
-
-        $current = (int) $current;
-
-        if ($current < $this->current) {
-            throw new \LogicException('You can\'t regress the progress bar');
-        }
-
-        if (0 === $this->current) {
-            $redraw = true;
-        }
-
-        $prevPeriod = (int) ($this->current / $this->redrawFreq);
-
-        $this->current = $current;
-
-        $currPeriod = (int) ($this->current / $this->redrawFreq);
-        if ($redraw || $prevPeriod !== $currPeriod || $this->max === $this->current) {
-            $this->display();
-        }
-    }
-
-    /**
-     * Outputs the current progress string.
-     *
-     * @param bool $finish Forces the end result
-     *
-     * @throws \LogicException
-     */
-    public function display($finish = false)
-    {
-        if (null === $this->startTime) {
-            throw new \LogicException('You must start the progress bar before calling display().');
-        }
-
-        $message = $this->format;
-        foreach ($this->generate($finish) as $name => $value) {
-            $message = str_replace("%{$name}%", $value, $message);
-        }
-        $this->overwrite($this->output, $message);
-    }
-
-    /**
-     * Removes the progress bar from the current line.
-     *
-     * This is useful if you wish to write some output
-     * while a progress bar is running.
-     * Call display() to show the progress bar again.
-     */
-    public function clear()
-    {
-        $this->overwrite($this->output, '');
-    }
-
-    /**
-     * Finishes the progress output.
-     */
-    public function finish()
-    {
-        if (null === $this->startTime) {
-            throw new \LogicException('You must start the progress bar before calling finish().');
-        }
-
-        if (null !== $this->startTime) {
-            if (!$this->max) {
-                $this->barChar = $this->barCharOriginal;
-                $this->display(true);
-            }
-            $this->startTime = null;
-            $this->output->writeln('');
-            $this->output = null;
-        }
-    }
-
-    /**
-     * Initializes the progress helper.
-     */
-    private function initialize()
-    {
-        $this->formatVars = array();
-        foreach ($this->defaultFormatVars as $var) {
-            if (false !== strpos($this->format, "%{$var}%")) {
-                $this->formatVars[$var] = true;
-            }
-        }
-
-        if ($this->max > 0) {
-            $this->widths['max'] = $this->strlen($this->max);
-            $this->widths['current'] = $this->widths['max'];
-        } else {
-            $this->barCharOriginal = $this->barChar;
-            $this->barChar = $this->emptyBarChar;
-        }
-    }
-
-    /**
-     * Generates the array map of format variables to values.
-     *
-     * @param bool $finish Forces the end result
-     *
-     * @return array Array of format vars and values
-     */
-    private function generate($finish = false)
-    {
-        $vars = array();
-        $percent = 0;
-        if ($this->max > 0) {
-            $percent = (float) $this->current / $this->max;
-        }
-
-        if (isset($this->formatVars['bar'])) {
-            $completeBars = 0;
-
-            if ($this->max > 0) {
-                $completeBars = floor($percent * $this->barWidth);
-            } else {
-                if (!$finish) {
-                    $completeBars = floor($this->current % $this->barWidth);
-                } else {
-                    $completeBars = $this->barWidth;
-                }
-            }
-
-            $emptyBars = $this->barWidth - $completeBars - $this->strlen($this->progressChar);
-            $bar = str_repeat($this->barChar, $completeBars);
-            if ($completeBars < $this->barWidth) {
-                $bar .= $this->progressChar;
-                $bar .= str_repeat($this->emptyBarChar, $emptyBars);
-            }
-
-            $vars['bar'] = $bar;
-        }
-
-        if (isset($this->formatVars['elapsed'])) {
-            $elapsed = time() - $this->startTime;
-            $vars['elapsed'] = str_pad($this->humaneTime($elapsed), $this->widths['elapsed'], ' ', STR_PAD_LEFT);
-        }
-
-        if (isset($this->formatVars['current'])) {
-            $vars['current'] = str_pad($this->current, $this->widths['current'], ' ', STR_PAD_LEFT);
-        }
-
-        if (isset($this->formatVars['max'])) {
-            $vars['max'] = $this->max;
-        }
-
-        if (isset($this->formatVars['percent'])) {
-            $vars['percent'] = str_pad(floor($percent * 100), $this->widths['percent'], ' ', STR_PAD_LEFT);
-        }
-
-        return $vars;
-    }
-
-    /**
-     * Converts seconds into human-readable format.
-     *
-     * @param int $secs Number of seconds
-     *
-     * @return string Time in readable format
-     */
-    private function humaneTime($secs)
-    {
-        $text = '';
-        foreach ($this->timeFormats as $format) {
-            if ($secs < $format[0]) {
-                if (count($format) == 2) {
-                    $text = $format[1];
-                    break;
-                } else {
-                    $text = ceil($secs / $format[2]).' '.$format[1];
-                    break;
-                }
-            }
-        }
-
-        return $text;
-    }
-
-    /**
-     * Overwrites a previous message to the output.
-     *
-     * @param OutputInterface $output  An Output instance
-     * @param string          $message The message
-     */
-    private function overwrite(OutputInterface $output, $message)
-    {
-        $length = $this->strlen($message);
-
-        // append whitespace to match the last line's length
-        if (null !== $this->lastMessagesLength && $this->lastMessagesLength > $length) {
-            $message = str_pad($message, $this->lastMessagesLength, "\x20", STR_PAD_RIGHT);
-        }
-
-        // carriage return
-        $output->write("\x0D");
-        $output->write($message);
-
-        $this->lastMessagesLength = $this->strlen($message);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'progress';
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/QuestionHelper.php b/core/vendor/symfony/console/Helper/QuestionHelper.php
deleted file mode 100644
index 9e4fa02..0000000
--- a/core/vendor/symfony/console/Helper/QuestionHelper.php
+++ /dev/null
@@ -1,441 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-use Symfony\Component\Console\Question\Question;
-use Symfony\Component\Console\Question\ChoiceQuestion;
-
-/**
- * The QuestionHelper class provides helpers to interact with the user.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class QuestionHelper extends Helper
-{
-    private $inputStream;
-    private static $shell;
-    private static $stty;
-
-    /**
-     * Asks a question to the user.
-     *
-     * @param InputInterface  $input    An InputInterface instance
-     * @param OutputInterface $output   An OutputInterface instance
-     * @param Question        $question The question to ask
-     *
-     * @return string The user answer
-     *
-     * @throws \RuntimeException If there is no data to read in the input stream
-     */
-    public function ask(InputInterface $input, OutputInterface $output, Question $question)
-    {
-        if (!$input->isInteractive()) {
-            return $question->getDefault();
-        }
-
-        if (!$question->getValidator()) {
-            return $this->doAsk($output, $question);
-        }
-
-        $that = $this;
-
-        $interviewer = function () use ($output, $question, $that) {
-            return $that->doAsk($output, $question);
-        };
-
-        return $this->validateAttempts($interviewer, $output, $question);
-    }
-
-    /**
-     * Sets the input stream to read from when interacting with the user.
-     *
-     * This is mainly useful for testing purpose.
-     *
-     * @param resource $stream The input stream
-     *
-     * @throws \InvalidArgumentException In case the stream is not a resource
-     */
-    public function setInputStream($stream)
-    {
-        if (!is_resource($stream)) {
-            throw new \InvalidArgumentException('Input stream must be a valid resource.');
-        }
-
-        $this->inputStream = $stream;
-    }
-
-    /**
-     * Returns the helper's input stream
-     *
-     * @return resource
-     */
-    public function getInputStream()
-    {
-        return $this->inputStream;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'question';
-    }
-
-    /**
-     * Asks the question to the user.
-     *
-     * This method is public for PHP 5.3 compatibility, it should be private.
-     *
-     * @param OutputInterface $output
-     * @param Question        $question
-     *
-     * @return bool|mixed|null|string
-     *
-     * @throws \Exception
-     * @throws \RuntimeException
-     */
-    public function doAsk(OutputInterface $output, Question $question)
-    {
-        $this->writePrompt($output, $question);
-
-        $inputStream = $this->inputStream ?: STDIN;
-        $autocomplete = $question->getAutocompleterValues();
-
-        if (null === $autocomplete || !$this->hasSttyAvailable()) {
-            $ret = false;
-            if ($question->isHidden()) {
-                try {
-                    $ret = trim($this->getHiddenResponse($output, $inputStream));
-                } catch (\RuntimeException $e) {
-                    if (!$question->isHiddenFallback()) {
-                        throw $e;
-                    }
-                }
-            }
-
-            if (false === $ret) {
-                $ret = fgets($inputStream, 4096);
-                if (false === $ret) {
-                    throw new \RuntimeException('Aborted');
-                }
-                $ret = trim($ret);
-            }
-        } else {
-            $ret = trim($this->autocomplete($output, $question, $inputStream));
-        }
-
-        $ret = strlen($ret) > 0 ? $ret : $question->getDefault();
-
-        if ($normalizer = $question->getNormalizer()) {
-            return $normalizer($ret);
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Outputs the question prompt.
-     *
-     * @param OutputInterface $output
-     * @param Question $question
-     */
-    protected function writePrompt(OutputInterface $output, Question $question)
-    {
-        $message = $question->getQuestion();
-
-        if ($question instanceof ChoiceQuestion) {
-            $width = max(array_map('strlen', array_keys($question->getChoices())));
-
-            $messages = (array) $question->getQuestion();
-            foreach ($question->getChoices() as $key => $value) {
-                $messages[] = sprintf("  [<info>%-${width}s</info>] %s", $key, $value);
-            }
-
-            $output->writeln($messages);
-
-            $message = $question->getPrompt();
-        }
-
-        $output->write($message);
-    }
-
-    /**
-     * Outputs an error message.
-     *
-     * @param OutputInterface $output
-     * @param \Exception      $error
-     */
-    protected function writeError(OutputInterface $output, \Exception $error)
-    {
-        if (null !== $this->getHelperSet() && $this->getHelperSet()->has('formatter')) {
-            $message = $this->getHelperSet()->get('formatter')->formatBlock($error->getMessage(), 'error');
-        } else {
-            $message = '<error>'.$error->getMessage().'</error>';
-        }
-
-        $output->writeln($message);
-    }
-
-    /**
-     * Autocompletes a question.
-     *
-     * @param OutputInterface $output
-     * @param Question        $question
-     *
-     * @return string
-     */
-    private function autocomplete(OutputInterface $output, Question $question, $inputStream)
-    {
-        $autocomplete = $question->getAutocompleterValues();
-        $ret = '';
-
-        $i = 0;
-        $ofs = -1;
-        $matches = $autocomplete;
-        $numMatches = count($matches);
-
-        $sttyMode = shell_exec('stty -g');
-
-        // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead)
-        shell_exec('stty -icanon -echo');
-
-        // Add highlighted text style
-        $output->getFormatter()->setStyle('hl', new OutputFormatterStyle('black', 'white'));
-
-        // Read a keypress
-        while (!feof($inputStream)) {
-            $c = fread($inputStream, 1);
-
-            // Backspace Character
-            if ("\177" === $c) {
-                if (0 === $numMatches && 0 !== $i) {
-                    $i--;
-                    // Move cursor backwards
-                    $output->write("\033[1D");
-                }
-
-                if ($i === 0) {
-                    $ofs = -1;
-                    $matches = $autocomplete;
-                    $numMatches = count($matches);
-                } else {
-                    $numMatches = 0;
-                }
-
-                // Pop the last character off the end of our string
-                $ret = substr($ret, 0, $i);
-            } elseif ("\033" === $c) {
-                // Did we read an escape sequence?
-                $c .= fread($inputStream, 2);
-
-                // A = Up Arrow. B = Down Arrow
-                if (isset($c[2]) && ('A' === $c[2] || 'B' === $c[2])) {
-                    if ('A' === $c[2] && -1 === $ofs) {
-                        $ofs = 0;
-                    }
-
-                    if (0 === $numMatches) {
-                        continue;
-                    }
-
-                    $ofs += ('A' === $c[2]) ? -1 : 1;
-                    $ofs = ($numMatches + $ofs) % $numMatches;
-                }
-            } elseif (ord($c) < 32) {
-                if ("\t" === $c || "\n" === $c) {
-                    if ($numMatches > 0 && -1 !== $ofs) {
-                        $ret = $matches[$ofs];
-                        // Echo out remaining chars for current match
-                        $output->write(substr($ret, $i));
-                        $i = strlen($ret);
-                    }
-
-                    if ("\n" === $c) {
-                        $output->write($c);
-                        break;
-                    }
-
-                    $numMatches = 0;
-                }
-
-                continue;
-            } else {
-                $output->write($c);
-                $ret .= $c;
-                $i++;
-
-                $numMatches = 0;
-                $ofs = 0;
-
-                foreach ($autocomplete as $value) {
-                    // If typed characters match the beginning chunk of value (e.g. [AcmeDe]moBundle)
-                    if (0 === strpos($value, $ret) && $i !== strlen($value)) {
-                        $matches[$numMatches++] = $value;
-                    }
-                }
-            }
-
-            // Erase characters from cursor to end of line
-            $output->write("\033[K");
-
-            if ($numMatches > 0 && -1 !== $ofs) {
-                // Save cursor position
-                $output->write("\0337");
-                // Write highlighted text
-                $output->write('<hl>'.substr($matches[$ofs], $i).'</hl>');
-                // Restore cursor position
-                $output->write("\0338");
-            }
-        }
-
-        // Reset stty so it behaves normally again
-        shell_exec(sprintf('stty %s', $sttyMode));
-
-        return $ret;
-    }
-
-    /**
-     * Gets a hidden response from user.
-     *
-     * @param OutputInterface $output An Output instance
-     *
-     * @return string The answer
-     *
-     * @throws \RuntimeException In case the fallback is deactivated and the response cannot be hidden
-     */
-    private function getHiddenResponse(OutputInterface $output, $inputStream)
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $exe = __DIR__.'/../Resources/bin/hiddeninput.exe';
-
-            // handle code running from a phar
-            if ('phar:' === substr(__FILE__, 0, 5)) {
-                $tmpExe = sys_get_temp_dir().'/hiddeninput.exe';
-                copy($exe, $tmpExe);
-                $exe = $tmpExe;
-            }
-
-            $value = rtrim(shell_exec($exe));
-            $output->writeln('');
-
-            if (isset($tmpExe)) {
-                unlink($tmpExe);
-            }
-
-            return $value;
-        }
-
-        if ($this->hasSttyAvailable()) {
-            $sttyMode = shell_exec('stty -g');
-
-            shell_exec('stty -echo');
-            $value = fgets($inputStream, 4096);
-            shell_exec(sprintf('stty %s', $sttyMode));
-
-            if (false === $value) {
-                throw new \RuntimeException('Aborted');
-            }
-
-            $value = trim($value);
-            $output->writeln('');
-
-            return $value;
-        }
-
-        if (false !== $shell = $this->getShell()) {
-            $readCmd = $shell === 'csh' ? 'set mypassword = $<' : 'read -r mypassword';
-            $command = sprintf("/usr/bin/env %s -c 'stty -echo; %s; stty echo; echo \$mypassword'", $shell, $readCmd);
-            $value = rtrim(shell_exec($command));
-            $output->writeln('');
-
-            return $value;
-        }
-
-        throw new \RuntimeException('Unable to hide the response.');
-    }
-
-    /**
-     * Validates an attempt.
-     *
-     * @param callable        $interviewer A callable that will ask for a question and return the result
-     * @param OutputInterface $output      An Output instance
-     * @param Question        $question    A Question instance
-     *
-     * @return string The validated response
-     *
-     * @throws \Exception In case the max number of attempts has been reached and no valid response has been given
-     */
-    private function validateAttempts($interviewer, OutputInterface $output, Question $question)
-    {
-        $error = null;
-        $attempts = $question->getMaxAttempts();
-        while (null === $attempts || $attempts--) {
-            if (null !== $error) {
-                $this->writeError($output, $error);
-            }
-
-            try {
-                return call_user_func($question->getValidator(), $interviewer());
-            } catch (\Exception $error) {
-            }
-        }
-
-        throw $error;
-    }
-
-    /**
-     * Returns a valid unix shell.
-     *
-     * @return string|bool The valid shell name, false in case no valid shell is found
-     */
-    private function getShell()
-    {
-        if (null !== self::$shell) {
-            return self::$shell;
-        }
-
-        self::$shell = false;
-
-        if (file_exists('/usr/bin/env')) {
-            // handle other OSs with bash/zsh/ksh/csh if available to hide the answer
-            $test = "/usr/bin/env %s -c 'echo OK' 2> /dev/null";
-            foreach (array('bash', 'zsh', 'ksh', 'csh') as $sh) {
-                if ('OK' === rtrim(shell_exec(sprintf($test, $sh)))) {
-                    self::$shell = $sh;
-                    break;
-                }
-            }
-        }
-
-        return self::$shell;
-    }
-
-    /**
-     * Returns whether Stty is available or not.
-     *
-     * @return bool
-     */
-    private function hasSttyAvailable()
-    {
-        if (null !== self::$stty) {
-            return self::$stty;
-        }
-
-        exec('stty 2>&1', $output, $exitcode);
-
-        return self::$stty = $exitcode === 0;
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/core/vendor/symfony/console/Helper/SymfonyQuestionHelper.php
deleted file mode 100644
index 77130f9..0000000
--- a/core/vendor/symfony/console/Helper/SymfonyQuestionHelper.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Question\ChoiceQuestion;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-use Symfony\Component\Console\Question\Question;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-/**
- * Symfony Style Guide compliant question helper.
- *
- * @author Kevin Bond <kevinbond@gmail.com>
- */
-class SymfonyQuestionHelper extends QuestionHelper
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function ask(InputInterface $input, OutputInterface $output, Question $question)
-    {
-        $validator = $question->getValidator();
-        $question->setValidator(function ($value) use ($validator) {
-            if (null !== $validator && is_callable($validator)) {
-                $value = $validator($value);
-            }
-
-            // make required
-            if (!is_array($value) && !is_bool($value) && 0 === strlen($value)) {
-                throw new \Exception('A value is required.');
-            }
-
-            return $value;
-        });
-
-        return parent::ask($input, $output, $question);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function writePrompt(OutputInterface $output, Question $question)
-    {
-        $text = $question->getQuestion();
-        $default = $question->getDefault();
-
-        switch (true) {
-            case null === $default:
-                $text = sprintf(' <info>%s</info>:', $text);
-
-                break;
-
-            case $question instanceof ConfirmationQuestion:
-                $text = sprintf(' <info>%s (yes/no)</info> [<comment>%s</comment>]:', $text, $default ? 'yes' : 'no');
-
-                break;
-
-            case $question instanceof ChoiceQuestion:
-                $choices = $question->getChoices();
-                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, $choices[$default]);
-
-                break;
-
-            default:
-                $text = sprintf(' <info>%s</info> [<comment>%s</comment>]:', $text, $default);
-        }
-
-        $output->writeln($text);
-
-        if ($question instanceof ChoiceQuestion) {
-            $width = max(array_map('strlen', array_keys($question->getChoices())));
-
-            foreach ($question->getChoices() as $key => $value) {
-                $output->writeln(sprintf("  [<comment>%-${width}s</comment>] %s", $key, $value));
-            }
-        }
-
-        $output->write(' > ');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function writeError(OutputInterface $output, \Exception $error)
-    {
-        if ($output instanceof SymfonyStyle) {
-            $output->newLine();
-            $output->error($error->getMessage());
-
-            return;
-        }
-
-        parent::writeError($output, $error);
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/Table.php b/core/vendor/symfony/console/Helper/Table.php
deleted file mode 100644
index 9e86c85..0000000
--- a/core/vendor/symfony/console/Helper/Table.php
+++ /dev/null
@@ -1,606 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Provides helpers to display a table.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Саша Стаменковић <umpirsky@gmail.com>
- * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
- */
-class Table
-{
-    /**
-     * Table headers.
-     *
-     * @var array
-     */
-    private $headers = array();
-
-    /**
-     * Table rows.
-     *
-     * @var array
-     */
-    private $rows = array();
-
-    /**
-     * Column widths cache.
-     *
-     * @var array
-     */
-    private $columnWidths = array();
-
-    /**
-     * Number of columns cache.
-     *
-     * @var array
-     */
-    private $numberOfColumns;
-
-    /**
-     * @var OutputInterface
-     */
-    private $output;
-
-    /**
-     * @var TableStyle
-     */
-    private $style;
-
-    private static $styles;
-
-    public function __construct(OutputInterface $output)
-    {
-        $this->output = $output;
-
-        if (!self::$styles) {
-            self::$styles = self::initStyles();
-        }
-
-        $this->setStyle('default');
-    }
-
-    /**
-     * Sets a style definition.
-     *
-     * @param string     $name  The style name
-     * @param TableStyle $style A TableStyle instance
-     */
-    public static function setStyleDefinition($name, TableStyle $style)
-    {
-        if (!self::$styles) {
-            self::$styles = self::initStyles();
-        }
-
-        self::$styles[$name] = $style;
-    }
-
-    /**
-     * Gets a style definition by name.
-     *
-     * @param string $name The style name
-     *
-     * @return TableStyle A TableStyle instance
-     */
-    public static function getStyleDefinition($name)
-    {
-        if (!self::$styles) {
-            self::$styles = self::initStyles();
-        }
-
-        if (!self::$styles[$name]) {
-            throw new \InvalidArgumentException(sprintf('Style "%s" is not defined.', $name));
-        }
-
-        return self::$styles[$name];
-    }
-
-    /**
-     * Sets table style.
-     *
-     * @param TableStyle|string $name The style name or a TableStyle instance
-     *
-     * @return Table
-     */
-    public function setStyle($name)
-    {
-        if ($name instanceof TableStyle) {
-            $this->style = $name;
-        } elseif (isset(self::$styles[$name])) {
-            $this->style = self::$styles[$name];
-        } else {
-            throw new \InvalidArgumentException(sprintf('Style "%s" is not defined.', $name));
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the current table style.
-     *
-     * @return TableStyle
-     */
-    public function getStyle()
-    {
-        return $this->style;
-    }
-
-    public function setHeaders(array $headers)
-    {
-        $headers = array_values($headers);
-        if (!empty($headers) && !is_array($headers[0])) {
-            $headers = array($headers);
-        }
-
-        $this->headers = $headers;
-
-        return $this;
-    }
-
-    public function setRows(array $rows)
-    {
-        $this->rows = array();
-
-        return $this->addRows($rows);
-    }
-
-    public function addRows(array $rows)
-    {
-        foreach ($rows as $row) {
-            $this->addRow($row);
-        }
-
-        return $this;
-    }
-
-    public function addRow($row)
-    {
-        if ($row instanceof TableSeparator) {
-            $this->rows[] = $row;
-
-            return $this;
-        }
-
-        if (!is_array($row)) {
-            throw new \InvalidArgumentException('A row must be an array or a TableSeparator instance.');
-        }
-
-        $this->rows[] = array_values($row);
-
-        return $this;
-    }
-
-    public function setRow($column, array $row)
-    {
-        $this->rows[$column] = $row;
-
-        return $this;
-    }
-
-    /**
-     * Renders table to output.
-     *
-     * Example:
-     * +---------------+-----------------------+------------------+
-     * | ISBN          | Title                 | Author           |
-     * +---------------+-----------------------+------------------+
-     * | 99921-58-10-7 | Divine Comedy         | Dante Alighieri  |
-     * | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
-     * | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
-     * +---------------+-----------------------+------------------+
-     */
-    public function render()
-    {
-        $this->calculateNumberOfColumns();
-        $this->rows = $this->buildTableRows($this->rows);
-        $this->headers = $this->buildTableRows($this->headers);
-
-        $this->renderRowSeparator();
-        if (!empty($this->headers)) {
-            foreach ($this->headers as $header) {
-                $this->renderRow($header, $this->style->getCellHeaderFormat());
-                $this->renderRowSeparator();
-            }
-        }
-        foreach ($this->rows as $row) {
-            if ($row instanceof TableSeparator) {
-                $this->renderRowSeparator();
-            } else {
-                $this->renderRow($row, $this->style->getCellRowFormat());
-            }
-        }
-        if (!empty($this->rows)) {
-            $this->renderRowSeparator();
-        }
-
-        $this->cleanup();
-    }
-
-    /**
-     * Renders horizontal header separator.
-     *
-     * Example: +-----+-----------+-------+
-     */
-    private function renderRowSeparator()
-    {
-        if (0 === $count = $this->numberOfColumns) {
-            return;
-        }
-
-        if (!$this->style->getHorizontalBorderChar() && !$this->style->getCrossingChar()) {
-            return;
-        }
-
-        $markup = $this->style->getCrossingChar();
-        for ($column = 0; $column < $count; $column++) {
-            $markup .= str_repeat($this->style->getHorizontalBorderChar(), $this->getColumnWidth($column)).$this->style->getCrossingChar();
-        }
-
-        $this->output->writeln(sprintf($this->style->getBorderFormat(), $markup));
-    }
-
-    /**
-     * Renders vertical column separator.
-     */
-    private function renderColumnSeparator()
-    {
-        $this->output->write(sprintf($this->style->getBorderFormat(), $this->style->getVerticalBorderChar()));
-    }
-
-    /**
-     * Renders table row.
-     *
-     * Example: | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
-     *
-     * @param array  $row
-     * @param string $cellFormat
-     */
-    private function renderRow(array $row, $cellFormat)
-    {
-        if (empty($row)) {
-            return;
-        }
-
-        $this->renderColumnSeparator();
-        foreach ($this->getRowColumns($row) as $column) {
-            $this->renderCell($row, $column, $cellFormat);
-            $this->renderColumnSeparator();
-        }
-        $this->output->writeln('');
-    }
-
-    /**
-     * Renders table cell with padding.
-     *
-     * @param array  $row
-     * @param int    $column
-     * @param string $cellFormat
-     */
-    private function renderCell(array $row, $column, $cellFormat)
-    {
-        $cell = isset($row[$column]) ? $row[$column] : '';
-        $width = $this->getColumnWidth($column);
-        if ($cell instanceof TableCell && $cell->getColspan() > 1) {
-            // add the width of the following columns(numbers of colspan).
-            foreach (range($column + 1, $column + $cell->getColspan() - 1) as $nextColumn) {
-                $width += $this->getColumnSeparatorWidth() + $this->getColumnWidth($nextColumn);
-            }
-        }
-
-        // str_pad won't work properly with multi-byte strings, we need to fix the padding
-        if (function_exists('mb_strwidth') && false !== $encoding = mb_detect_encoding($cell)) {
-            $width += strlen($cell) - mb_strwidth($cell, $encoding);
-        }
-
-        if ($cell instanceof TableSeparator) {
-            $this->output->write(sprintf($this->style->getBorderFormat(), str_repeat($this->style->getHorizontalBorderChar(), $width)));
-        } else {
-            $width += Helper::strlen($cell) - Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
-            $content = sprintf($this->style->getCellRowContentFormat(), $cell);
-            $this->output->write(sprintf($cellFormat, str_pad($content, $width, $this->style->getPaddingChar(), $this->style->getPadType())));
-        }
-    }
-
-    /**
-     * Calculate number of columns for this table.
-     */
-    private function calculateNumberOfColumns()
-    {
-        if (null !== $this->numberOfColumns) {
-            return;
-        }
-
-        $columns = array(0);
-        foreach (array_merge($this->headers, $this->rows) as $row) {
-            if ($row instanceof TableSeparator) {
-                continue;
-            }
-
-            $columns[] = $this->getNumberOfColumns($row);
-        }
-
-        return $this->numberOfColumns = max($columns);
-    }
-
-    private function buildTableRows($rows)
-    {
-        $unmergedRows = array();
-        for ($rowKey = 0; $rowKey < count($rows); $rowKey++) {
-            $rows = $this->fillNextRows($rows, $rowKey);
-
-            // Remove any new line breaks and replace it with a new line
-            foreach ($rows[$rowKey] as $column => $cell) {
-                $rows[$rowKey] = $this->fillCells($rows[$rowKey], $column);
-                if (!strstr($cell, "\n")) {
-                    continue;
-                }
-                $lines = explode("\n", $cell);
-                foreach ($lines as $lineKey => $line) {
-                    if ($cell instanceof TableCell) {
-                        $line = new TableCell($line, array('colspan' => $cell->getColspan()));
-                    }
-                    if (0 === $lineKey) {
-                        $rows[$rowKey][$column] = $line;
-                    } else {
-                        $unmergedRows[$rowKey][$lineKey][$column] = $line;
-                    }
-                }
-            }
-        }
-
-        $tableRows = array();
-        foreach ($rows as $rowKey => $row) {
-            $tableRows[] = $row;
-            if (isset($unmergedRows[$rowKey])) {
-                $tableRows = array_merge($tableRows, $unmergedRows[$rowKey]);
-            }
-        }
-
-        return $tableRows;
-    }
-
-    /**
-     * fill rows that contains rowspan > 1.
-     *
-     * @param array $rows
-     * @param array $line
-     *
-     * @return array
-     */
-    private function fillNextRows($rows, $line)
-    {
-        $unmergedRows = array();
-        foreach ($rows[$line] as $column => $cell) {
-            if ($cell instanceof TableCell && $cell->getRowspan() > 1) {
-                $nbLines = $cell->getRowspan() - 1;
-                $lines = array($cell);
-                if (strstr($cell, "\n")) {
-                    $lines = explode("\n", $cell);
-                    $nbLines = count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines;
-
-                    $rows[$line][$column] = new TableCell($lines[0], array('colspan' => $cell->getColspan()));
-                    unset($lines[0]);
-                }
-
-                // create a two dimensional array (rowspan x colspan)
-                $unmergedRows = array_replace_recursive(array_fill($line + 1, $nbLines, ''), $unmergedRows);
-                foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) {
-                    $value = isset($lines[$unmergedRowKey - $line]) ? $lines[$unmergedRowKey - $line] : '';
-                    $unmergedRows[$unmergedRowKey][$column] = new TableCell($value, array('colspan' => $cell->getColspan()));
-                }
-            }
-        }
-
-        foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) {
-            // we need to know if $unmergedRow will be merged or inserted into $rows
-            if (isset($rows[$unmergedRowKey]) && is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRows[$unmergedRowKey]) <= $this->numberOfColumns)) {
-                foreach ($unmergedRow as $cellKey => $cell) {
-                    // insert cell into row at cellKey position
-                    array_splice($rows[$unmergedRowKey], $cellKey, 0, array($cell));
-                }
-            } else {
-                $row = $this->copyRow($rows, $unmergedRowKey - 1);
-                foreach ($unmergedRow as $column => $cell) {
-                    if (!empty($cell)) {
-                        $row[$column] = $unmergedRow[$column];
-                    }
-                }
-                array_splice($rows, $unmergedRowKey, 0, array($row));
-            }
-        }
-
-        return $rows;
-    }
-
-    /**
-     * fill cells for a row that contains colspan > 1.
-     *
-     * @param array $row
-     * @param array $column
-     *
-     * @return array
-     */
-    private function fillCells($row, $column)
-    {
-        $cell = $row[$column];
-        if ($cell instanceof TableCell && $cell->getColspan() > 1) {
-            foreach (range($column + 1, $column + $cell->getColspan() - 1) as $position) {
-                // insert empty value into rows at column position
-                array_splice($row, $position, 0, '');
-            }
-        }
-
-        return $row;
-    }
-
-    /**
-     * @param array $rows
-     * @param int   $line
-     *
-     * @return array
-     */
-    private function copyRow($rows, $line)
-    {
-        $row = $rows[$line];
-        foreach ($row as $cellKey => $cellValue) {
-            $row[$cellKey] = '';
-            if ($cellValue instanceof TableCell) {
-                $row[$cellKey] = new TableCell('', array('colspan' => $cellValue->getColspan()));
-            }
-        }
-
-        return $row;
-    }
-
-    /**
-     * Gets number of columns by row.
-     *
-     * @param array $row
-     *
-     * @return int
-     */
-    private function getNumberOfColumns(array $row)
-    {
-        $columns = count($row);
-        foreach ($row as $column) {
-            $columns += $column instanceof TableCell ? ($column->getColspan() - 1) : 0;
-        }
-
-        return $columns;
-    }
-
-    /**
-     * Gets list of columns for the given row.
-     *
-     * @param array $row
-     *
-     * @return array()
-     */
-    private function getRowColumns($row)
-    {
-        $columns = range(0, $this->numberOfColumns - 1);
-        foreach ($row as $cellKey => $cell) {
-            if ($cell instanceof TableCell && $cell->getColspan() > 1) {
-                // exclude grouped columns.
-                $columns = array_diff($columns, range($cellKey + 1, $cellKey + $cell->getColspan() - 1));
-            }
-        }
-
-        return $columns;
-    }
-
-    /**
-     * Gets column width.
-     *
-     * @param int $column
-     *
-     * @return int
-     */
-    private function getColumnWidth($column)
-    {
-        if (isset($this->columnWidths[$column])) {
-            return $this->columnWidths[$column];
-        }
-
-        foreach (array_merge($this->headers, $this->rows) as $row) {
-            if ($row instanceof TableSeparator) {
-                continue;
-            }
-
-            $lengths[] = $this->getCellWidth($row, $column);
-        }
-
-        return $this->columnWidths[$column] = max($lengths) + strlen($this->style->getCellRowContentFormat()) - 2;
-    }
-
-    /**
-     * Gets column width.
-     *
-     * @param int $column
-     *
-     * @return int
-     */
-    private function getColumnSeparatorWidth()
-    {
-        return strlen(sprintf($this->style->getBorderFormat(), $this->style->getVerticalBorderChar()));
-    }
-
-    /**
-     * Gets cell width.
-     *
-     * @param array $row
-     * @param int   $column
-     *
-     * @return int
-     */
-    private function getCellWidth(array $row, $column)
-    {
-        if (isset($row[$column])) {
-            $cell = $row[$column];
-            $cellWidth = Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
-            if ($cell instanceof TableCell && $cell->getColspan() > 1) {
-                // we assume that cell value will be across more than one column.
-                $cellWidth = $cellWidth / $cell->getColspan();
-            }
-
-            return $cellWidth;
-        }
-
-        return 0;
-    }
-
-    /**
-     * Called after rendering to cleanup cache data.
-     */
-    private function cleanup()
-    {
-        $this->columnWidths = array();
-        $this->numberOfColumns = null;
-    }
-
-    private static function initStyles()
-    {
-        $borderless = new TableStyle();
-        $borderless
-            ->setHorizontalBorderChar('=')
-            ->setVerticalBorderChar(' ')
-            ->setCrossingChar(' ')
-        ;
-
-        $compact = new TableStyle();
-        $compact
-            ->setHorizontalBorderChar('')
-            ->setVerticalBorderChar(' ')
-            ->setCrossingChar('')
-            ->setCellRowContentFormat('%s')
-        ;
-
-        $styleGuide = new TableStyle();
-        $styleGuide
-            ->setHorizontalBorderChar('-')
-            ->setVerticalBorderChar(' ')
-            ->setCrossingChar(' ')
-            ->setCellHeaderFormat('%s')
-        ;
-
-        return array(
-            'default' => new TableStyle(),
-            'borderless' => $borderless,
-            'compact' => $compact,
-            'symfony-style-guide' => $styleGuide,
-        );
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/TableCell.php b/core/vendor/symfony/console/Helper/TableCell.php
deleted file mode 100644
index aa0d318..0000000
--- a/core/vendor/symfony/console/Helper/TableCell.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-/**
- * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
- */
-class TableCell
-{
-    /**
-     * @var string
-     */
-    private $value;
-
-    /**
-     * @var array
-     */
-    private $options = array(
-        'rowspan' => 1,
-        'colspan' => 1,
-    );
-
-    /**
-     * @param string $value
-     * @param array  $options
-     */
-    public function __construct($value = '', array $options = array())
-    {
-        $this->value = $value;
-
-        // check option names
-        if ($diff = array_diff(array_keys($options), array_keys($this->options))) {
-            throw new \InvalidArgumentException(sprintf('The TableCell does not support the following options: \'%s\'.', implode('\', \'', $diff)));
-        }
-
-        $this->options = array_merge($this->options, $options);
-    }
-
-    /**
-     * Returns the cell value.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Gets number of colspan.
-     *
-     * @return int
-     */
-    public function getColspan()
-    {
-        return (int) $this->options['colspan'];
-    }
-
-    /**
-     * Gets number of rowspan.
-     *
-     * @return int
-     */
-    public function getRowspan()
-    {
-        return (int) $this->options['rowspan'];
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/TableHelper.php b/core/vendor/symfony/console/Helper/TableHelper.php
deleted file mode 100644
index 2953522..0000000
--- a/core/vendor/symfony/console/Helper/TableHelper.php
+++ /dev/null
@@ -1,268 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\NullOutput;
-
-/**
- * Provides helpers to display table output.
- *
- * @author Саша Стаменковић <umpirsky@gmail.com>
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0
- *             Use {@link Table} instead.
- */
-class TableHelper extends Helper
-{
-    const LAYOUT_DEFAULT = 0;
-    const LAYOUT_BORDERLESS = 1;
-    const LAYOUT_COMPACT = 2;
-
-    /**
-     * @var Table
-     */
-    private $table;
-
-    public function __construct($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__CLASS__.' class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Console\Helper\Table class instead.', E_USER_DEPRECATED);
-        }
-
-        $this->table = new Table(new NullOutput());
-    }
-
-    /**
-     * Sets table layout type.
-     *
-     * @param int $layout self::LAYOUT_*
-     *
-     * @return TableHelper
-     *
-     * @throws \InvalidArgumentException when the table layout is not known
-     */
-    public function setLayout($layout)
-    {
-        switch ($layout) {
-            case self::LAYOUT_BORDERLESS:
-                $this->table->setStyle('borderless');
-                break;
-
-            case self::LAYOUT_COMPACT:
-                $this->table->setStyle('compact');
-                break;
-
-            case self::LAYOUT_DEFAULT:
-                $this->table->setStyle('default');
-                break;
-
-            default:
-                throw new \InvalidArgumentException(sprintf('Invalid table layout "%s".', $layout));
-        };
-
-        return $this;
-    }
-
-    public function setHeaders(array $headers)
-    {
-        $this->table->setHeaders($headers);
-
-        return $this;
-    }
-
-    public function setRows(array $rows)
-    {
-        $this->table->setRows($rows);
-
-        return $this;
-    }
-
-    public function addRows(array $rows)
-    {
-        $this->table->addRows($rows);
-
-        return $this;
-    }
-
-    public function addRow(array $row)
-    {
-        $this->table->addRow($row);
-
-        return $this;
-    }
-
-    public function setRow($column, array $row)
-    {
-        $this->table->setRow($column, $row);
-
-        return $this;
-    }
-
-    /**
-     * Sets padding character, used for cell padding.
-     *
-     * @param string $paddingChar
-     *
-     * @return TableHelper
-     */
-    public function setPaddingChar($paddingChar)
-    {
-        $this->table->getStyle()->setPaddingChar($paddingChar);
-
-        return $this;
-    }
-
-    /**
-     * Sets horizontal border character.
-     *
-     * @param string $horizontalBorderChar
-     *
-     * @return TableHelper
-     */
-    public function setHorizontalBorderChar($horizontalBorderChar)
-    {
-        $this->table->getStyle()->setHorizontalBorderChar($horizontalBorderChar);
-
-        return $this;
-    }
-
-    /**
-     * Sets vertical border character.
-     *
-     * @param string $verticalBorderChar
-     *
-     * @return TableHelper
-     */
-    public function setVerticalBorderChar($verticalBorderChar)
-    {
-        $this->table->getStyle()->setVerticalBorderChar($verticalBorderChar);
-
-        return $this;
-    }
-
-    /**
-     * Sets crossing character.
-     *
-     * @param string $crossingChar
-     *
-     * @return TableHelper
-     */
-    public function setCrossingChar($crossingChar)
-    {
-        $this->table->getStyle()->setCrossingChar($crossingChar);
-
-        return $this;
-    }
-
-    /**
-     * Sets header cell format.
-     *
-     * @param string $cellHeaderFormat
-     *
-     * @return TableHelper
-     */
-    public function setCellHeaderFormat($cellHeaderFormat)
-    {
-        $this->table->getStyle()->setCellHeaderFormat($cellHeaderFormat);
-
-        return $this;
-    }
-
-    /**
-     * Sets row cell format.
-     *
-     * @param string $cellRowFormat
-     *
-     * @return TableHelper
-     */
-    public function setCellRowFormat($cellRowFormat)
-    {
-        $this->table->getStyle()->setCellHeaderFormat($cellRowFormat);
-
-        return $this;
-    }
-
-    /**
-     * Sets row cell content format.
-     *
-     * @param string $cellRowContentFormat
-     *
-     * @return TableHelper
-     */
-    public function setCellRowContentFormat($cellRowContentFormat)
-    {
-        $this->table->getStyle()->setCellRowContentFormat($cellRowContentFormat);
-
-        return $this;
-    }
-
-    /**
-     * Sets table border format.
-     *
-     * @param string $borderFormat
-     *
-     * @return TableHelper
-     */
-    public function setBorderFormat($borderFormat)
-    {
-        $this->table->getStyle()->setBorderFormat($borderFormat);
-
-        return $this;
-    }
-
-    /**
-     * Sets cell padding type.
-     *
-     * @param int $padType STR_PAD_*
-     *
-     * @return TableHelper
-     */
-    public function setPadType($padType)
-    {
-        $this->table->getStyle()->setPadType($padType);
-
-        return $this;
-    }
-
-    /**
-     * Renders table to output.
-     *
-     * Example:
-     * +---------------+-----------------------+------------------+
-     * | ISBN          | Title                 | Author           |
-     * +---------------+-----------------------+------------------+
-     * | 99921-58-10-7 | Divine Comedy         | Dante Alighieri  |
-     * | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
-     * | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
-     * +---------------+-----------------------+------------------+
-     *
-     * @param OutputInterface $output
-     */
-    public function render(OutputInterface $output)
-    {
-        $p = new \ReflectionProperty($this->table, 'output');
-        $p->setAccessible(true);
-        $p->setValue($this->table, $output);
-
-        $this->table->render();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'table';
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/TableSeparator.php b/core/vendor/symfony/console/Helper/TableSeparator.php
deleted file mode 100644
index 8cbbc66..0000000
--- a/core/vendor/symfony/console/Helper/TableSeparator.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-/**
- * Marks a row as being a separator.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TableSeparator extends TableCell
-{
-    /**
-     * @param string $value
-     * @param array  $options
-     */
-    public function __construct(array $options = array())
-    {
-        parent::__construct('', $options);
-    }
-}
diff --git a/core/vendor/symfony/console/Helper/TableStyle.php b/core/vendor/symfony/console/Helper/TableStyle.php
deleted file mode 100644
index f0f46c7..0000000
--- a/core/vendor/symfony/console/Helper/TableStyle.php
+++ /dev/null
@@ -1,255 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Helper;
-
-/**
- * Defines the styles for a Table.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Саша Стаменковић <umpirsky@gmail.com>
- */
-class TableStyle
-{
-    private $paddingChar = ' ';
-    private $horizontalBorderChar = '-';
-    private $verticalBorderChar = '|';
-    private $crossingChar = '+';
-    private $cellHeaderFormat = '<info>%s</info>';
-    private $cellRowFormat = '%s';
-    private $cellRowContentFormat = ' %s ';
-    private $borderFormat = '%s';
-    private $padType = STR_PAD_RIGHT;
-
-    /**
-     * Sets padding character, used for cell padding.
-     *
-     * @param string $paddingChar
-     *
-     * @return TableStyle
-     */
-    public function setPaddingChar($paddingChar)
-    {
-        if (!$paddingChar) {
-            throw new \LogicException('The padding char must not be empty');
-        }
-
-        $this->paddingChar = $paddingChar;
-
-        return $this;
-    }
-
-    /**
-     * Gets padding character, used for cell padding.
-     *
-     * @return string
-     */
-    public function getPaddingChar()
-    {
-        return $this->paddingChar;
-    }
-
-    /**
-     * Sets horizontal border character.
-     *
-     * @param string $horizontalBorderChar
-     *
-     * @return TableStyle
-     */
-    public function setHorizontalBorderChar($horizontalBorderChar)
-    {
-        $this->horizontalBorderChar = $horizontalBorderChar;
-
-        return $this;
-    }
-
-    /**
-     * Gets horizontal border character.
-     *
-     * @return string
-     */
-    public function getHorizontalBorderChar()
-    {
-        return $this->horizontalBorderChar;
-    }
-
-    /**
-     * Sets vertical border character.
-     *
-     * @param string $verticalBorderChar
-     *
-     * @return TableStyle
-     */
-    public function setVerticalBorderChar($verticalBorderChar)
-    {
-        $this->verticalBorderChar = $verticalBorderChar;
-
-        return $this;
-    }
-
-    /**
-     * Gets vertical border character.
-     *
-     * @return string
-     */
-    public function getVerticalBorderChar()
-    {
-        return $this->verticalBorderChar;
-    }
-
-    /**
-     * Sets crossing character.
-     *
-     * @param string $crossingChar
-     *
-     * @return TableStyle
-     */
-    public function setCrossingChar($crossingChar)
-    {
-        $this->crossingChar = $crossingChar;
-
-        return $this;
-    }
-
-    /**
-     * Gets crossing character.
-     *
-     * @return string $crossingChar
-     */
-    public function getCrossingChar()
-    {
-        return $this->crossingChar;
-    }
-
-    /**
-     * Sets header cell format.
-     *
-     * @param string $cellHeaderFormat
-     *
-     * @return TableStyle
-     */
-    public function setCellHeaderFormat($cellHeaderFormat)
-    {
-        $this->cellHeaderFormat = $cellHeaderFormat;
-
-        return $this;
-    }
-
-    /**
-     * Gets header cell format.
-     *
-     * @return string
-     */
-    public function getCellHeaderFormat()
-    {
-        return $this->cellHeaderFormat;
-    }
-
-    /**
-     * Sets row cell format.
-     *
-     * @param string $cellRowFormat
-     *
-     * @return TableStyle
-     */
-    public function setCellRowFormat($cellRowFormat)
-    {
-        $this->cellRowFormat = $cellRowFormat;
-
-        return $this;
-    }
-
-    /**
-     * Gets row cell format.
-     *
-     * @return string
-     */
-    public function getCellRowFormat()
-    {
-        return $this->cellRowFormat;
-    }
-
-    /**
-     * Sets row cell content format.
-     *
-     * @param string $cellRowContentFormat
-     *
-     * @return TableStyle
-     */
-    public function setCellRowContentFormat($cellRowContentFormat)
-    {
-        $this->cellRowContentFormat = $cellRowContentFormat;
-
-        return $this;
-    }
-
-    /**
-     * Gets row cell content format.
-     *
-     * @return string
-     */
-    public function getCellRowContentFormat()
-    {
-        return $this->cellRowContentFormat;
-    }
-
-    /**
-     * Sets table border format.
-     *
-     * @param string $borderFormat
-     *
-     * @return TableStyle
-     */
-    public function setBorderFormat($borderFormat)
-    {
-        $this->borderFormat = $borderFormat;
-
-        return $this;
-    }
-
-    /**
-     * Gets table border format.
-     *
-     * @return string
-     */
-    public function getBorderFormat()
-    {
-        return $this->borderFormat;
-    }
-
-    /**
-     * Sets cell padding type.
-     *
-     * @param int $padType STR_PAD_*
-     *
-     * @return TableStyle
-     */
-    public function setPadType($padType)
-    {
-        if (!in_array($padType, array(STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH), true)) {
-            throw new \InvalidArgumentException('Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).');
-        }
-
-        $this->padType = $padType;
-
-        return $this;
-    }
-
-    /**
-     * Gets cell padding type.
-     *
-     * @return int
-     */
-    public function getPadType()
-    {
-        return $this->padType;
-    }
-}
diff --git a/core/vendor/symfony/console/Input/ArgvInput.php b/core/vendor/symfony/console/Input/ArgvInput.php
deleted file mode 100644
index a6c2132..0000000
--- a/core/vendor/symfony/console/Input/ArgvInput.php
+++ /dev/null
@@ -1,353 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * ArgvInput represents an input coming from the CLI arguments.
- *
- * Usage:
- *
- *     $input = new ArgvInput();
- *
- * By default, the `$_SERVER['argv']` array is used for the input values.
- *
- * This can be overridden by explicitly passing the input values in the constructor:
- *
- *     $input = new ArgvInput($_SERVER['argv']);
- *
- * If you pass it yourself, don't forget that the first element of the array
- * is the name of the running application.
- *
- * When passing an argument to the constructor, be sure that it respects
- * the same rules as the argv one. It's almost always better to use the
- * `StringInput` when you want to provide your own input.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @see http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
- * @see http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html#tag_12_02
- *
- * @api
- */
-class ArgvInput extends Input
-{
-    private $tokens;
-    private $parsed;
-
-    /**
-     * Constructor.
-     *
-     * @param array           $argv       An array of parameters from the CLI (in the argv format)
-     * @param InputDefinition $definition A InputDefinition instance
-     *
-     * @api
-     */
-    public function __construct(array $argv = null, InputDefinition $definition = null)
-    {
-        if (null === $argv) {
-            $argv = $_SERVER['argv'];
-        }
-
-        // strip the application name
-        array_shift($argv);
-
-        $this->tokens = $argv;
-
-        parent::__construct($definition);
-    }
-
-    protected function setTokens(array $tokens)
-    {
-        $this->tokens = $tokens;
-    }
-
-    /**
-     * Processes command line arguments.
-     */
-    protected function parse()
-    {
-        $parseOptions = true;
-        $this->parsed = $this->tokens;
-        while (null !== $token = array_shift($this->parsed)) {
-            if ($parseOptions && '' == $token) {
-                $this->parseArgument($token);
-            } elseif ($parseOptions && '--' == $token) {
-                $parseOptions = false;
-            } elseif ($parseOptions && 0 === strpos($token, '--')) {
-                $this->parseLongOption($token);
-            } elseif ($parseOptions && '-' === $token[0] && '-' !== $token) {
-                $this->parseShortOption($token);
-            } else {
-                $this->parseArgument($token);
-            }
-        }
-    }
-
-    /**
-     * Parses a short option.
-     *
-     * @param string $token The current token.
-     */
-    private function parseShortOption($token)
-    {
-        $name = substr($token, 1);
-
-        if (strlen($name) > 1) {
-            if ($this->definition->hasShortcut($name[0]) && $this->definition->getOptionForShortcut($name[0])->acceptValue()) {
-                // an option with a value (with no space)
-                $this->addShortOption($name[0], substr($name, 1));
-            } else {
-                $this->parseShortOptionSet($name);
-            }
-        } else {
-            $this->addShortOption($name, null);
-        }
-    }
-
-    /**
-     * Parses a short option set.
-     *
-     * @param string $name The current token
-     *
-     * @throws \RuntimeException When option given doesn't exist
-     */
-    private function parseShortOptionSet($name)
-    {
-        $len = strlen($name);
-        for ($i = 0; $i < $len; ++$i) {
-            if (!$this->definition->hasShortcut($name[$i])) {
-                throw new \RuntimeException(sprintf('The "-%s" option does not exist.', $name[$i]));
-            }
-
-            $option = $this->definition->getOptionForShortcut($name[$i]);
-            if ($option->acceptValue()) {
-                $this->addLongOption($option->getName(), $i === $len - 1 ? null : substr($name, $i + 1));
-
-                break;
-            } else {
-                $this->addLongOption($option->getName(), null);
-            }
-        }
-    }
-
-    /**
-     * Parses a long option.
-     *
-     * @param string $token The current token
-     */
-    private function parseLongOption($token)
-    {
-        $name = substr($token, 2);
-
-        if (false !== $pos = strpos($name, '=')) {
-            $this->addLongOption(substr($name, 0, $pos), substr($name, $pos + 1));
-        } else {
-            $this->addLongOption($name, null);
-        }
-    }
-
-    /**
-     * Parses an argument.
-     *
-     * @param string $token The current token
-     *
-     * @throws \RuntimeException When too many arguments are given
-     */
-    private function parseArgument($token)
-    {
-        $c = count($this->arguments);
-
-        // if input is expecting another argument, add it
-        if ($this->definition->hasArgument($c)) {
-            $arg = $this->definition->getArgument($c);
-            $this->arguments[$arg->getName()] = $arg->isArray() ? array($token) : $token;
-
-        // if last argument isArray(), append token to last argument
-        } elseif ($this->definition->hasArgument($c - 1) && $this->definition->getArgument($c - 1)->isArray()) {
-            $arg = $this->definition->getArgument($c - 1);
-            $this->arguments[$arg->getName()][] = $token;
-
-        // unexpected argument
-        } else {
-            throw new \RuntimeException('Too many arguments.');
-        }
-    }
-
-    /**
-     * Adds a short option value.
-     *
-     * @param string $shortcut The short option key
-     * @param mixed  $value    The value for the option
-     *
-     * @throws \RuntimeException When option given doesn't exist
-     */
-    private function addShortOption($shortcut, $value)
-    {
-        if (!$this->definition->hasShortcut($shortcut)) {
-            throw new \RuntimeException(sprintf('The "-%s" option does not exist.', $shortcut));
-        }
-
-        $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value);
-    }
-
-    /**
-     * Adds a long option value.
-     *
-     * @param string $name  The long option key
-     * @param mixed  $value The value for the option
-     *
-     * @throws \RuntimeException When option given doesn't exist
-     */
-    private function addLongOption($name, $value)
-    {
-        if (!$this->definition->hasOption($name)) {
-            throw new \RuntimeException(sprintf('The "--%s" option does not exist.', $name));
-        }
-
-        $option = $this->definition->getOption($name);
-
-        // Convert empty values to null
-        if (!isset($value[0])) {
-            $value = null;
-        }
-
-        if (null !== $value && !$option->acceptValue()) {
-            throw new \RuntimeException(sprintf('The "--%s" option does not accept a value.', $name));
-        }
-
-        if (null === $value && $option->acceptValue() && count($this->parsed)) {
-            // if option accepts an optional or mandatory argument
-            // let's see if there is one provided
-            $next = array_shift($this->parsed);
-            if (isset($next[0]) && '-' !== $next[0]) {
-                $value = $next;
-            } elseif (empty($next)) {
-                $value = '';
-            } else {
-                array_unshift($this->parsed, $next);
-            }
-        }
-
-        if (null === $value) {
-            if ($option->isValueRequired()) {
-                throw new \RuntimeException(sprintf('The "--%s" option requires a value.', $name));
-            }
-
-            if (!$option->isArray()) {
-                $value = $option->isValueOptional() ? $option->getDefault() : true;
-            }
-        }
-
-        if ($option->isArray()) {
-            $this->options[$name][] = $value;
-        } else {
-            $this->options[$name] = $value;
-        }
-    }
-
-    /**
-     * Returns the first argument from the raw parameters (not parsed).
-     *
-     * @return string The value of the first argument or null otherwise
-     */
-    public function getFirstArgument()
-    {
-        foreach ($this->tokens as $token) {
-            if ($token && '-' === $token[0]) {
-                continue;
-            }
-
-            return $token;
-        }
-    }
-
-    /**
-     * Returns true if the raw parameters (not parsed) contain a value.
-     *
-     * This method is to be used to introspect the input parameters
-     * before they have been validated. It must be used carefully.
-     *
-     * @param string|array $values The value(s) to look for in the raw parameters (can be an array)
-     *
-     * @return bool true if the value is contained in the raw parameters
-     */
-    public function hasParameterOption($values)
-    {
-        $values = (array) $values;
-
-        foreach ($this->tokens as $token) {
-            foreach ($values as $value) {
-                if ($token === $value || 0 === strpos($token, $value.'=')) {
-                    return true;
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns the value of a raw option (not parsed).
-     *
-     * This method is to be used to introspect the input parameters
-     * before they have been validated. It must be used carefully.
-     *
-     * @param string|array $values  The value(s) to look for in the raw parameters (can be an array)
-     * @param mixed        $default The default value to return if no result is found
-     *
-     * @return mixed The option value
-     */
-    public function getParameterOption($values, $default = false)
-    {
-        $values = (array) $values;
-        $tokens = $this->tokens;
-
-        while (0 < count($tokens)) {
-            $token = array_shift($tokens);
-
-            foreach ($values as $value) {
-                if ($token === $value || 0 === strpos($token, $value.'=')) {
-                    if (false !== $pos = strpos($token, '=')) {
-                        return substr($token, $pos + 1);
-                    }
-
-                    return array_shift($tokens);
-                }
-            }
-        }
-
-        return $default;
-    }
-
-    /**
-     * Returns a stringified representation of the args passed to the command.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        $self = $this;
-        $tokens = array_map(function ($token) use ($self) {
-            if (preg_match('{^(-[^=]+=)(.+)}', $token, $match)) {
-                return $match[1].$self->escapeToken($match[2]);
-            }
-
-            if ($token && $token[0] !== '-') {
-                return $self->escapeToken($token);
-            }
-
-            return $token;
-        }, $this->tokens);
-
-        return implode(' ', $tokens);
-    }
-}
diff --git a/core/vendor/symfony/console/Input/ArrayInput.php b/core/vendor/symfony/console/Input/ArrayInput.php
deleted file mode 100644
index 5743bb8..0000000
--- a/core/vendor/symfony/console/Input/ArrayInput.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * ArrayInput represents an input provided as an array.
- *
- * Usage:
- *
- *     $input = new ArrayInput(array('name' => 'foo', '--bar' => 'foobar'));
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ArrayInput extends Input
-{
-    private $parameters;
-
-    /**
-     * Constructor.
-     *
-     * @param array           $parameters An array of parameters
-     * @param InputDefinition $definition A InputDefinition instance
-     *
-     * @api
-     */
-    public function __construct(array $parameters, InputDefinition $definition = null)
-    {
-        $this->parameters = $parameters;
-
-        parent::__construct($definition);
-    }
-
-    /**
-     * Returns the first argument from the raw parameters (not parsed).
-     *
-     * @return string The value of the first argument or null otherwise
-     */
-    public function getFirstArgument()
-    {
-        foreach ($this->parameters as $key => $value) {
-            if ($key && '-' === $key[0]) {
-                continue;
-            }
-
-            return $value;
-        }
-    }
-
-    /**
-     * Returns true if the raw parameters (not parsed) contain a value.
-     *
-     * This method is to be used to introspect the input parameters
-     * before they have been validated. It must be used carefully.
-     *
-     * @param string|array $values The values to look for in the raw parameters (can be an array)
-     *
-     * @return bool true if the value is contained in the raw parameters
-     */
-    public function hasParameterOption($values)
-    {
-        $values = (array) $values;
-
-        foreach ($this->parameters as $k => $v) {
-            if (!is_int($k)) {
-                $v = $k;
-            }
-
-            if (in_array($v, $values)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns the value of a raw option (not parsed).
-     *
-     * This method is to be used to introspect the input parameters
-     * before they have been validated. It must be used carefully.
-     *
-     * @param string|array $values  The value(s) to look for in the raw parameters (can be an array)
-     * @param mixed        $default The default value to return if no result is found
-     *
-     * @return mixed The option value
-     */
-    public function getParameterOption($values, $default = false)
-    {
-        $values = (array) $values;
-
-        foreach ($this->parameters as $k => $v) {
-            if (is_int($k)) {
-                if (in_array($v, $values)) {
-                    return true;
-                }
-            } elseif (in_array($k, $values)) {
-                return $v;
-            }
-        }
-
-        return $default;
-    }
-
-    /**
-     * Returns a stringified representation of the args passed to the command.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        $params = array();
-        foreach ($this->parameters as $param => $val) {
-            if ($param && '-' === $param[0]) {
-                $params[] = $param.('' != $val ? '='.$this->escapeToken($val) : '');
-            } else {
-                $params[] = $this->escapeToken($val);
-            }
-        }
-
-        return implode(' ', $params);
-    }
-
-    /**
-     * Processes command line arguments.
-     */
-    protected function parse()
-    {
-        foreach ($this->parameters as $key => $value) {
-            if (0 === strpos($key, '--')) {
-                $this->addLongOption(substr($key, 2), $value);
-            } elseif ('-' === $key[0]) {
-                $this->addShortOption(substr($key, 1), $value);
-            } else {
-                $this->addArgument($key, $value);
-            }
-        }
-    }
-
-    /**
-     * Adds a short option value.
-     *
-     * @param string $shortcut The short option key
-     * @param mixed  $value    The value for the option
-     *
-     * @throws \InvalidArgumentException When option given doesn't exist
-     */
-    private function addShortOption($shortcut, $value)
-    {
-        if (!$this->definition->hasShortcut($shortcut)) {
-            throw new \InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut));
-        }
-
-        $this->addLongOption($this->definition->getOptionForShortcut($shortcut)->getName(), $value);
-    }
-
-    /**
-     * Adds a long option value.
-     *
-     * @param string $name  The long option key
-     * @param mixed  $value The value for the option
-     *
-     * @throws \InvalidArgumentException When option given doesn't exist
-     * @throws \InvalidArgumentException When a required value is missing
-     */
-    private function addLongOption($name, $value)
-    {
-        if (!$this->definition->hasOption($name)) {
-            throw new \InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name));
-        }
-
-        $option = $this->definition->getOption($name);
-
-        if (null === $value) {
-            if ($option->isValueRequired()) {
-                throw new \InvalidArgumentException(sprintf('The "--%s" option requires a value.', $name));
-            }
-
-            $value = $option->isValueOptional() ? $option->getDefault() : true;
-        }
-
-        $this->options[$name] = $value;
-    }
-
-    /**
-     * Adds an argument value.
-     *
-     * @param string $name  The argument name
-     * @param mixed  $value The value for the argument
-     *
-     * @throws \InvalidArgumentException When argument given doesn't exist
-     */
-    private function addArgument($name, $value)
-    {
-        if (!$this->definition->hasArgument($name)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
-        }
-
-        $this->arguments[$name] = $value;
-    }
-}
diff --git a/core/vendor/symfony/console/Input/Input.php b/core/vendor/symfony/console/Input/Input.php
deleted file mode 100644
index 5e7c140..0000000
--- a/core/vendor/symfony/console/Input/Input.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * Input is the base class for all concrete Input classes.
- *
- * Three concrete classes are provided by default:
- *
- *  * `ArgvInput`: The input comes from the CLI arguments (argv)
- *  * `StringInput`: The input is provided as a string
- *  * `ArrayInput`: The input is provided as an array
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Input implements InputInterface
-{
-    /**
-     * @var InputDefinition
-     */
-    protected $definition;
-    protected $options = array();
-    protected $arguments = array();
-    protected $interactive = true;
-
-    /**
-     * Constructor.
-     *
-     * @param InputDefinition $definition A InputDefinition instance
-     */
-    public function __construct(InputDefinition $definition = null)
-    {
-        if (null === $definition) {
-            $this->definition = new InputDefinition();
-        } else {
-            $this->bind($definition);
-            $this->validate();
-        }
-    }
-
-    /**
-     * Binds the current Input instance with the given arguments and options.
-     *
-     * @param InputDefinition $definition A InputDefinition instance
-     */
-    public function bind(InputDefinition $definition)
-    {
-        $this->arguments = array();
-        $this->options = array();
-        $this->definition = $definition;
-
-        $this->parse();
-    }
-
-    /**
-     * Processes command line arguments.
-     */
-    abstract protected function parse();
-
-    /**
-     * Validates the input.
-     *
-     * @throws \RuntimeException When not enough arguments are given
-     */
-    public function validate()
-    {
-        if (count($this->arguments) < $this->definition->getArgumentRequiredCount()) {
-            throw new \RuntimeException('Not enough arguments.');
-        }
-    }
-
-    /**
-     * Checks if the input is interactive.
-     *
-     * @return bool Returns true if the input is interactive
-     */
-    public function isInteractive()
-    {
-        return $this->interactive;
-    }
-
-    /**
-     * Sets the input interactivity.
-     *
-     * @param bool $interactive If the input should be interactive
-     */
-    public function setInteractive($interactive)
-    {
-        $this->interactive = (bool) $interactive;
-    }
-
-    /**
-     * Returns the argument values.
-     *
-     * @return array An array of argument values
-     */
-    public function getArguments()
-    {
-        return array_merge($this->definition->getArgumentDefaults(), $this->arguments);
-    }
-
-    /**
-     * Returns the argument value for a given argument name.
-     *
-     * @param string $name The argument name
-     *
-     * @return mixed The argument value
-     *
-     * @throws \InvalidArgumentException When argument given doesn't exist
-     */
-    public function getArgument($name)
-    {
-        if (!$this->definition->hasArgument($name)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
-        }
-
-        return isset($this->arguments[$name]) ? $this->arguments[$name] : $this->definition->getArgument($name)->getDefault();
-    }
-
-    /**
-     * Sets an argument value by name.
-     *
-     * @param string $name  The argument name
-     * @param string $value The argument value
-     *
-     * @throws \InvalidArgumentException When argument given doesn't exist
-     */
-    public function setArgument($name, $value)
-    {
-        if (!$this->definition->hasArgument($name)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
-        }
-
-        $this->arguments[$name] = $value;
-    }
-
-    /**
-     * Returns true if an InputArgument object exists by name or position.
-     *
-     * @param string|int $name The InputArgument name or position
-     *
-     * @return bool true if the InputArgument object exists, false otherwise
-     */
-    public function hasArgument($name)
-    {
-        return $this->definition->hasArgument($name);
-    }
-
-    /**
-     * Returns the options values.
-     *
-     * @return array An array of option values
-     */
-    public function getOptions()
-    {
-        return array_merge($this->definition->getOptionDefaults(), $this->options);
-    }
-
-    /**
-     * Returns the option value for a given option name.
-     *
-     * @param string $name The option name
-     *
-     * @return mixed The option value
-     *
-     * @throws \InvalidArgumentException When option given doesn't exist
-     */
-    public function getOption($name)
-    {
-        if (!$this->definition->hasOption($name)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" option does not exist.', $name));
-        }
-
-        return isset($this->options[$name]) ? $this->options[$name] : $this->definition->getOption($name)->getDefault();
-    }
-
-    /**
-     * Sets an option value by name.
-     *
-     * @param string      $name  The option name
-     * @param string|bool $value The option value
-     *
-     * @throws \InvalidArgumentException When option given doesn't exist
-     */
-    public function setOption($name, $value)
-    {
-        if (!$this->definition->hasOption($name)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" option does not exist.', $name));
-        }
-
-        $this->options[$name] = $value;
-    }
-
-    /**
-     * Returns true if an InputOption object exists by name.
-     *
-     * @param string $name The InputOption name
-     *
-     * @return bool true if the InputOption object exists, false otherwise
-     */
-    public function hasOption($name)
-    {
-        return $this->definition->hasOption($name);
-    }
-
-    /**
-     * Escapes a token through escapeshellarg if it contains unsafe chars.
-     *
-     * @param string $token
-     *
-     * @return string
-     */
-    public function escapeToken($token)
-    {
-        return preg_match('{^[\w-]+$}', $token) ? $token : escapeshellarg($token);
-    }
-}
diff --git a/core/vendor/symfony/console/Input/InputArgument.php b/core/vendor/symfony/console/Input/InputArgument.php
deleted file mode 100644
index 1167da9..0000000
--- a/core/vendor/symfony/console/Input/InputArgument.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * Represents a command line argument.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class InputArgument
-{
-    const REQUIRED = 1;
-    const OPTIONAL = 2;
-    const IS_ARRAY = 4;
-
-    private $name;
-    private $mode;
-    private $default;
-    private $description;
-
-    /**
-     * Constructor.
-     *
-     * @param string $name        The argument name
-     * @param int    $mode        The argument mode: self::REQUIRED or self::OPTIONAL
-     * @param string $description A description text
-     * @param mixed  $default     The default value (for self::OPTIONAL mode only)
-     *
-     * @throws \InvalidArgumentException When argument mode is not valid
-     *
-     * @api
-     */
-    public function __construct($name, $mode = null, $description = '', $default = null)
-    {
-        if (null === $mode) {
-            $mode = self::OPTIONAL;
-        } elseif (!is_int($mode) || $mode > 7 || $mode < 1) {
-            throw new \InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode));
-        }
-
-        $this->name = $name;
-        $this->mode = $mode;
-        $this->description = $description;
-
-        $this->setDefault($default);
-    }
-
-    /**
-     * Returns the argument name.
-     *
-     * @return string The argument name
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Returns true if the argument is required.
-     *
-     * @return bool true if parameter mode is self::REQUIRED, false otherwise
-     */
-    public function isRequired()
-    {
-        return self::REQUIRED === (self::REQUIRED & $this->mode);
-    }
-
-    /**
-     * Returns true if the argument can take multiple values.
-     *
-     * @return bool true if mode is self::IS_ARRAY, false otherwise
-     */
-    public function isArray()
-    {
-        return self::IS_ARRAY === (self::IS_ARRAY & $this->mode);
-    }
-
-    /**
-     * Sets the default value.
-     *
-     * @param mixed $default The default value
-     *
-     * @throws \LogicException When incorrect default value is given
-     */
-    public function setDefault($default = null)
-    {
-        if (self::REQUIRED === $this->mode && null !== $default) {
-            throw new \LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.');
-        }
-
-        if ($this->isArray()) {
-            if (null === $default) {
-                $default = array();
-            } elseif (!is_array($default)) {
-                throw new \LogicException('A default value for an array argument must be an array.');
-            }
-        }
-
-        $this->default = $default;
-    }
-
-    /**
-     * Returns the default value.
-     *
-     * @return mixed The default value
-     */
-    public function getDefault()
-    {
-        return $this->default;
-    }
-
-    /**
-     * Returns the description text.
-     *
-     * @return string The description text
-     */
-    public function getDescription()
-    {
-        return $this->description;
-    }
-}
diff --git a/core/vendor/symfony/console/Input/InputAwareInterface.php b/core/vendor/symfony/console/Input/InputAwareInterface.php
deleted file mode 100644
index d0f11e9..0000000
--- a/core/vendor/symfony/console/Input/InputAwareInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * InputAwareInterface should be implemented by classes that depends on the
- * Console Input.
- *
- * @author Wouter J <waldio.webdesign@gmail.com>
- */
-interface InputAwareInterface
-{
-    /**
-     * Sets the Console Input.
-     *
-     * @param InputInterface
-     */
-    public function setInput(InputInterface $input);
-}
diff --git a/core/vendor/symfony/console/Input/InputDefinition.php b/core/vendor/symfony/console/Input/InputDefinition.php
deleted file mode 100644
index 21ac832..0000000
--- a/core/vendor/symfony/console/Input/InputDefinition.php
+++ /dev/null
@@ -1,485 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-use Symfony\Component\Console\Descriptor\TextDescriptor;
-use Symfony\Component\Console\Descriptor\XmlDescriptor;
-use Symfony\Component\Console\Output\BufferedOutput;
-
-/**
- * A InputDefinition represents a set of valid command line arguments and options.
- *
- * Usage:
- *
- *     $definition = new InputDefinition(array(
- *       new InputArgument('name', InputArgument::REQUIRED),
- *       new InputOption('foo', 'f', InputOption::VALUE_REQUIRED),
- *     ));
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class InputDefinition
-{
-    private $arguments;
-    private $requiredCount;
-    private $hasAnArrayArgument = false;
-    private $hasOptional;
-    private $options;
-    private $shortcuts;
-
-    /**
-     * Constructor.
-     *
-     * @param array $definition An array of InputArgument and InputOption instance
-     *
-     * @api
-     */
-    public function __construct(array $definition = array())
-    {
-        $this->setDefinition($definition);
-    }
-
-    /**
-     * Sets the definition of the input.
-     *
-     * @param array $definition The definition array
-     *
-     * @api
-     */
-    public function setDefinition(array $definition)
-    {
-        $arguments = array();
-        $options = array();
-        foreach ($definition as $item) {
-            if ($item instanceof InputOption) {
-                $options[] = $item;
-            } else {
-                $arguments[] = $item;
-            }
-        }
-
-        $this->setArguments($arguments);
-        $this->setOptions($options);
-    }
-
-    /**
-     * Sets the InputArgument objects.
-     *
-     * @param InputArgument[] $arguments An array of InputArgument objects
-     *
-     * @api
-     */
-    public function setArguments($arguments = array())
-    {
-        $this->arguments = array();
-        $this->requiredCount = 0;
-        $this->hasOptional = false;
-        $this->hasAnArrayArgument = false;
-        $this->addArguments($arguments);
-    }
-
-    /**
-     * Adds an array of InputArgument objects.
-     *
-     * @param InputArgument[] $arguments An array of InputArgument objects
-     *
-     * @api
-     */
-    public function addArguments($arguments = array())
-    {
-        if (null !== $arguments) {
-            foreach ($arguments as $argument) {
-                $this->addArgument($argument);
-            }
-        }
-    }
-
-    /**
-     * Adds an InputArgument object.
-     *
-     * @param InputArgument $argument An InputArgument object
-     *
-     * @throws \LogicException When incorrect argument is given
-     *
-     * @api
-     */
-    public function addArgument(InputArgument $argument)
-    {
-        if (isset($this->arguments[$argument->getName()])) {
-            throw new \LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName()));
-        }
-
-        if ($this->hasAnArrayArgument) {
-            throw new \LogicException('Cannot add an argument after an array argument.');
-        }
-
-        if ($argument->isRequired() && $this->hasOptional) {
-            throw new \LogicException('Cannot add a required argument after an optional one.');
-        }
-
-        if ($argument->isArray()) {
-            $this->hasAnArrayArgument = true;
-        }
-
-        if ($argument->isRequired()) {
-            ++$this->requiredCount;
-        } else {
-            $this->hasOptional = true;
-        }
-
-        $this->arguments[$argument->getName()] = $argument;
-    }
-
-    /**
-     * Returns an InputArgument by name or by position.
-     *
-     * @param string|int $name The InputArgument name or position
-     *
-     * @return InputArgument An InputArgument object
-     *
-     * @throws \InvalidArgumentException When argument given doesn't exist
-     *
-     * @api
-     */
-    public function getArgument($name)
-    {
-        if (!$this->hasArgument($name)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
-        }
-
-        $arguments = is_int($name) ? array_values($this->arguments) : $this->arguments;
-
-        return $arguments[$name];
-    }
-
-    /**
-     * Returns true if an InputArgument object exists by name or position.
-     *
-     * @param string|int $name The InputArgument name or position
-     *
-     * @return bool true if the InputArgument object exists, false otherwise
-     *
-     * @api
-     */
-    public function hasArgument($name)
-    {
-        $arguments = is_int($name) ? array_values($this->arguments) : $this->arguments;
-
-        return isset($arguments[$name]);
-    }
-
-    /**
-     * Gets the array of InputArgument objects.
-     *
-     * @return InputArgument[] An array of InputArgument objects
-     *
-     * @api
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * Returns the number of InputArguments.
-     *
-     * @return int The number of InputArguments
-     */
-    public function getArgumentCount()
-    {
-        return $this->hasAnArrayArgument ? PHP_INT_MAX : count($this->arguments);
-    }
-
-    /**
-     * Returns the number of required InputArguments.
-     *
-     * @return int The number of required InputArguments
-     */
-    public function getArgumentRequiredCount()
-    {
-        return $this->requiredCount;
-    }
-
-    /**
-     * Gets the default values.
-     *
-     * @return array An array of default values
-     */
-    public function getArgumentDefaults()
-    {
-        $values = array();
-        foreach ($this->arguments as $argument) {
-            $values[$argument->getName()] = $argument->getDefault();
-        }
-
-        return $values;
-    }
-
-    /**
-     * Sets the InputOption objects.
-     *
-     * @param InputOption[] $options An array of InputOption objects
-     *
-     * @api
-     */
-    public function setOptions($options = array())
-    {
-        $this->options = array();
-        $this->shortcuts = array();
-        $this->addOptions($options);
-    }
-
-    /**
-     * Adds an array of InputOption objects.
-     *
-     * @param InputOption[] $options An array of InputOption objects
-     *
-     * @api
-     */
-    public function addOptions($options = array())
-    {
-        foreach ($options as $option) {
-            $this->addOption($option);
-        }
-    }
-
-    /**
-     * Adds an InputOption object.
-     *
-     * @param InputOption $option An InputOption object
-     *
-     * @throws \LogicException When option given already exist
-     *
-     * @api
-     */
-    public function addOption(InputOption $option)
-    {
-        if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) {
-            throw new \LogicException(sprintf('An option named "%s" already exists.', $option->getName()));
-        }
-
-        if ($option->getShortcut()) {
-            foreach (explode('|', $option->getShortcut()) as $shortcut) {
-                if (isset($this->shortcuts[$shortcut]) && !$option->equals($this->options[$this->shortcuts[$shortcut]])) {
-                    throw new \LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut));
-                }
-            }
-        }
-
-        $this->options[$option->getName()] = $option;
-        if ($option->getShortcut()) {
-            foreach (explode('|', $option->getShortcut()) as $shortcut) {
-                $this->shortcuts[$shortcut] = $option->getName();
-            }
-        }
-    }
-
-    /**
-     * Returns an InputOption by name.
-     *
-     * @param string $name The InputOption name
-     *
-     * @return InputOption A InputOption object
-     *
-     * @throws \InvalidArgumentException When option given doesn't exist
-     *
-     * @api
-     */
-    public function getOption($name)
-    {
-        if (!$this->hasOption($name)) {
-            throw new \InvalidArgumentException(sprintf('The "--%s" option does not exist.', $name));
-        }
-
-        return $this->options[$name];
-    }
-
-    /**
-     * Returns true if an InputOption object exists by name.
-     *
-     * @param string $name The InputOption name
-     *
-     * @return bool true if the InputOption object exists, false otherwise
-     *
-     * @api
-     */
-    public function hasOption($name)
-    {
-        return isset($this->options[$name]);
-    }
-
-    /**
-     * Gets the array of InputOption objects.
-     *
-     * @return InputOption[] An array of InputOption objects
-     *
-     * @api
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    /**
-     * Returns true if an InputOption object exists by shortcut.
-     *
-     * @param string $name The InputOption shortcut
-     *
-     * @return bool true if the InputOption object exists, false otherwise
-     */
-    public function hasShortcut($name)
-    {
-        return isset($this->shortcuts[$name]);
-    }
-
-    /**
-     * Gets an InputOption by shortcut.
-     *
-     * @param string $shortcut the Shortcut name
-     *
-     * @return InputOption An InputOption object
-     */
-    public function getOptionForShortcut($shortcut)
-    {
-        return $this->getOption($this->shortcutToName($shortcut));
-    }
-
-    /**
-     * Gets an array of default values.
-     *
-     * @return array An array of all default values
-     */
-    public function getOptionDefaults()
-    {
-        $values = array();
-        foreach ($this->options as $option) {
-            $values[$option->getName()] = $option->getDefault();
-        }
-
-        return $values;
-    }
-
-    /**
-     * Returns the InputOption name given a shortcut.
-     *
-     * @param string $shortcut The shortcut
-     *
-     * @return string The InputOption name
-     *
-     * @throws \InvalidArgumentException When option given does not exist
-     */
-    private function shortcutToName($shortcut)
-    {
-        if (!isset($this->shortcuts[$shortcut])) {
-            throw new \InvalidArgumentException(sprintf('The "-%s" option does not exist.', $shortcut));
-        }
-
-        return $this->shortcuts[$shortcut];
-    }
-
-    /**
-     * Gets the synopsis.
-     *
-     * @param bool $short Whether to return the short version (with options folded) or not
-     *
-     * @return string The synopsis
-     */
-    public function getSynopsis($short = false)
-    {
-        $elements = array();
-
-        if ($short && $this->getOptions()) {
-            $elements[] = '[options]';
-        } elseif (!$short) {
-            foreach ($this->getOptions() as $option) {
-                $value = '';
-                if ($option->acceptValue()) {
-                    $value = sprintf(
-                        ' %s%s%s',
-                        $option->isValueOptional() ? '[' : '',
-                        strtoupper($option->getName()),
-                        $option->isValueOptional() ? ']' : ''
-                    );
-                }
-
-                $shortcut = $option->getShortcut() ? sprintf('-%s|', $option->getShortcut()) : '';
-                $elements[] = sprintf('[%s--%s%s]', $shortcut, $option->getName(), $value);
-            }
-        }
-
-        if (count($elements) && $this->getArguments()) {
-            $elements[] = '[--]';
-        }
-
-        foreach ($this->getArguments() as $argument) {
-            $element = '<'.$argument->getName().'>';
-            if (!$argument->isRequired()) {
-                $element = '['.$element.']';
-            } elseif ($argument->isArray()) {
-                $element = $element.' ('.$element.')';
-            }
-
-            if ($argument->isArray()) {
-                $element .= '...';
-            }
-
-            $elements[] = $element;
-        }
-
-        return implode(' ', $elements);
-    }
-
-    /**
-     * Returns a textual representation of the InputDefinition.
-     *
-     * @return string A string representing the InputDefinition
-     *
-     * @deprecated since version 2.3, to be removed in 3.0.
-     */
-    public function asText()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $descriptor = new TextDescriptor();
-        $output = new BufferedOutput(BufferedOutput::VERBOSITY_NORMAL, true);
-        $descriptor->describe($output, $this, array('raw_output' => true));
-
-        return $output->fetch();
-    }
-
-    /**
-     * Returns an XML representation of the InputDefinition.
-     *
-     * @param bool $asDom Whether to return a DOM or an XML string
-     *
-     * @return string|\DOMDocument An XML string representing the InputDefinition
-     *
-     * @deprecated since version 2.3, to be removed in 3.0.
-     */
-    public function asXml($asDom = false)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $descriptor = new XmlDescriptor();
-
-        if ($asDom) {
-            return $descriptor->getInputDefinitionDocument($this);
-        }
-
-        $output = new BufferedOutput();
-        $descriptor->describe($output, $this);
-
-        return $output->fetch();
-    }
-}
diff --git a/core/vendor/symfony/console/Input/InputInterface.php b/core/vendor/symfony/console/Input/InputInterface.php
deleted file mode 100644
index 6ef2f26..0000000
--- a/core/vendor/symfony/console/Input/InputInterface.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * InputInterface is the interface implemented by all input classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface InputInterface
-{
-    /**
-     * Returns the first argument from the raw parameters (not parsed).
-     *
-     * @return string The value of the first argument or null otherwise
-     */
-    public function getFirstArgument();
-
-    /**
-     * Returns true if the raw parameters (not parsed) contain a value.
-     *
-     * This method is to be used to introspect the input parameters
-     * before they have been validated. It must be used carefully.
-     *
-     * @param string|array $values The values to look for in the raw parameters (can be an array)
-     *
-     * @return bool true if the value is contained in the raw parameters
-     */
-    public function hasParameterOption($values);
-
-    /**
-     * Returns the value of a raw option (not parsed).
-     *
-     * This method is to be used to introspect the input parameters
-     * before they have been validated. It must be used carefully.
-     *
-     * @param string|array $values  The value(s) to look for in the raw parameters (can be an array)
-     * @param mixed        $default The default value to return if no result is found
-     *
-     * @return mixed The option value
-     */
-    public function getParameterOption($values, $default = false);
-
-    /**
-     * Binds the current Input instance with the given arguments and options.
-     *
-     * @param InputDefinition $definition A InputDefinition instance
-     */
-    public function bind(InputDefinition $definition);
-
-    /**
-     * Validates if arguments given are correct.
-     *
-     * Throws an exception when not enough arguments are given.
-     *
-     * @throws \RuntimeException
-     */
-    public function validate();
-
-    /**
-     * Returns all the given arguments merged with the default values.
-     *
-     * @return array
-     */
-    public function getArguments();
-
-    /**
-     * Gets argument by name.
-     *
-     * @param string $name The name of the argument
-     *
-     * @return mixed
-     */
-    public function getArgument($name);
-
-    /**
-     * Sets an argument value by name.
-     *
-     * @param string $name  The argument name
-     * @param string $value The argument value
-     *
-     * @throws \InvalidArgumentException When argument given doesn't exist
-     */
-    public function setArgument($name, $value);
-
-    /**
-     * Returns true if an InputArgument object exists by name or position.
-     *
-     * @param string|int $name The InputArgument name or position
-     *
-     * @return bool true if the InputArgument object exists, false otherwise
-     */
-    public function hasArgument($name);
-
-    /**
-     * Returns all the given options merged with the default values.
-     *
-     * @return array
-     */
-    public function getOptions();
-
-    /**
-     * Gets an option by name.
-     *
-     * @param string $name The name of the option
-     *
-     * @return mixed
-     */
-    public function getOption($name);
-
-    /**
-     * Sets an option value by name.
-     *
-     * @param string      $name  The option name
-     * @param string|bool $value The option value
-     *
-     * @throws \InvalidArgumentException When option given doesn't exist
-     */
-    public function setOption($name, $value);
-
-    /**
-     * Returns true if an InputOption object exists by name.
-     *
-     * @param string $name The InputOption name
-     *
-     * @return bool true if the InputOption object exists, false otherwise
-     */
-    public function hasOption($name);
-
-    /**
-     * Is this input means interactive?
-     *
-     * @return bool
-     */
-    public function isInteractive();
-
-    /**
-     * Sets the input interactivity.
-     *
-     * @param bool $interactive If the input should be interactive
-     */
-    public function setInteractive($interactive);
-}
diff --git a/core/vendor/symfony/console/Input/InputOption.php b/core/vendor/symfony/console/Input/InputOption.php
deleted file mode 100644
index 3a48ca3..0000000
--- a/core/vendor/symfony/console/Input/InputOption.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * Represents a command line option.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class InputOption
-{
-    const VALUE_NONE = 1;
-    const VALUE_REQUIRED = 2;
-    const VALUE_OPTIONAL = 4;
-    const VALUE_IS_ARRAY = 8;
-
-    private $name;
-    private $shortcut;
-    private $mode;
-    private $default;
-    private $description;
-
-    /**
-     * Constructor.
-     *
-     * @param string       $name        The option name
-     * @param string|array $shortcut    The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
-     * @param int          $mode        The option mode: One of the VALUE_* constants
-     * @param string       $description A description text
-     * @param mixed        $default     The default value (must be null for self::VALUE_REQUIRED or self::VALUE_NONE)
-     *
-     * @throws \InvalidArgumentException If option mode is invalid or incompatible
-     *
-     * @api
-     */
-    public function __construct($name, $shortcut = null, $mode = null, $description = '', $default = null)
-    {
-        if (0 === strpos($name, '--')) {
-            $name = substr($name, 2);
-        }
-
-        if (empty($name)) {
-            throw new \InvalidArgumentException('An option name cannot be empty.');
-        }
-
-        if (empty($shortcut)) {
-            $shortcut = null;
-        }
-
-        if (null !== $shortcut) {
-            if (is_array($shortcut)) {
-                $shortcut = implode('|', $shortcut);
-            }
-            $shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-'));
-            $shortcuts = array_filter($shortcuts);
-            $shortcut = implode('|', $shortcuts);
-
-            if (empty($shortcut)) {
-                throw new \InvalidArgumentException('An option shortcut cannot be empty.');
-            }
-        }
-
-        if (null === $mode) {
-            $mode = self::VALUE_NONE;
-        } elseif (!is_int($mode) || $mode > 15 || $mode < 1) {
-            throw new \InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode));
-        }
-
-        $this->name = $name;
-        $this->shortcut = $shortcut;
-        $this->mode = $mode;
-        $this->description = $description;
-
-        if ($this->isArray() && !$this->acceptValue()) {
-            throw new \InvalidArgumentException('Impossible to have an option mode VALUE_IS_ARRAY if the option does not accept a value.');
-        }
-
-        $this->setDefault($default);
-    }
-
-    /**
-     * Returns the option shortcut.
-     *
-     * @return string The shortcut
-     */
-    public function getShortcut()
-    {
-        return $this->shortcut;
-    }
-
-    /**
-     * Returns the option name.
-     *
-     * @return string The name
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Returns true if the option accepts a value.
-     *
-     * @return bool true if value mode is not self::VALUE_NONE, false otherwise
-     */
-    public function acceptValue()
-    {
-        return $this->isValueRequired() || $this->isValueOptional();
-    }
-
-    /**
-     * Returns true if the option requires a value.
-     *
-     * @return bool true if value mode is self::VALUE_REQUIRED, false otherwise
-     */
-    public function isValueRequired()
-    {
-        return self::VALUE_REQUIRED === (self::VALUE_REQUIRED & $this->mode);
-    }
-
-    /**
-     * Returns true if the option takes an optional value.
-     *
-     * @return bool true if value mode is self::VALUE_OPTIONAL, false otherwise
-     */
-    public function isValueOptional()
-    {
-        return self::VALUE_OPTIONAL === (self::VALUE_OPTIONAL & $this->mode);
-    }
-
-    /**
-     * Returns true if the option can take multiple values.
-     *
-     * @return bool true if mode is self::VALUE_IS_ARRAY, false otherwise
-     */
-    public function isArray()
-    {
-        return self::VALUE_IS_ARRAY === (self::VALUE_IS_ARRAY & $this->mode);
-    }
-
-    /**
-     * Sets the default value.
-     *
-     * @param mixed $default The default value
-     *
-     * @throws \LogicException When incorrect default value is given
-     */
-    public function setDefault($default = null)
-    {
-        if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) {
-            throw new \LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.');
-        }
-
-        if ($this->isArray()) {
-            if (null === $default) {
-                $default = array();
-            } elseif (!is_array($default)) {
-                throw new \LogicException('A default value for an array option must be an array.');
-            }
-        }
-
-        $this->default = $this->acceptValue() ? $default : false;
-    }
-
-    /**
-     * Returns the default value.
-     *
-     * @return mixed The default value
-     */
-    public function getDefault()
-    {
-        return $this->default;
-    }
-
-    /**
-     * Returns the description text.
-     *
-     * @return string The description text
-     */
-    public function getDescription()
-    {
-        return $this->description;
-    }
-
-    /**
-     * Checks whether the given option equals this one.
-     *
-     * @param InputOption $option option to compare
-     *
-     * @return bool
-     */
-    public function equals(InputOption $option)
-    {
-        return $option->getName() === $this->getName()
-            && $option->getShortcut() === $this->getShortcut()
-            && $option->getDefault() === $this->getDefault()
-            && $option->isArray() === $this->isArray()
-            && $option->isValueRequired() === $this->isValueRequired()
-            && $option->isValueOptional() === $this->isValueOptional()
-        ;
-    }
-}
diff --git a/core/vendor/symfony/console/Input/StringInput.php b/core/vendor/symfony/console/Input/StringInput.php
deleted file mode 100644
index 40d1dfb..0000000
--- a/core/vendor/symfony/console/Input/StringInput.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Input;
-
-/**
- * StringInput represents an input provided as a string.
- *
- * Usage:
- *
- *     $input = new StringInput('foo --bar="foobar"');
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class StringInput extends ArgvInput
-{
-    const REGEX_STRING = '([^\s]+?)(?:\s|(?<!\\\\)"|(?<!\\\\)\'|$)';
-    const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\')';
-
-    /**
-     * Constructor.
-     *
-     * @param string          $input      An array of parameters from the CLI (in the argv format)
-     * @param InputDefinition $definition A InputDefinition instance
-     *
-     * @deprecated The second argument is deprecated as it does not work (will be removed in 3.0), use 'bind' method instead
-     *
-     * @api
-     */
-    public function __construct($input, InputDefinition $definition = null)
-    {
-        if ($definition) {
-            @trigger_error('The $definition argument of the '.__METHOD__.' method is deprecated and will be removed in 3.0. Set this parameter with the bind() method instead.', E_USER_DEPRECATED);
-        }
-
-        parent::__construct(array(), null);
-
-        $this->setTokens($this->tokenize($input));
-
-        if (null !== $definition) {
-            $this->bind($definition);
-        }
-    }
-
-    /**
-     * Tokenizes a string.
-     *
-     * @param string $input The input to tokenize
-     *
-     * @return array An array of tokens
-     *
-     * @throws \InvalidArgumentException When unable to parse input (should never happen)
-     */
-    private function tokenize($input)
-    {
-        $tokens = array();
-        $length = strlen($input);
-        $cursor = 0;
-        while ($cursor < $length) {
-            if (preg_match('/\s+/A', $input, $match, null, $cursor)) {
-            } elseif (preg_match('/([^="\'\s]+?)(=?)('.self::REGEX_QUOTED_STRING.'+)/A', $input, $match, null, $cursor)) {
-                $tokens[] = $match[1].$match[2].stripcslashes(str_replace(array('"\'', '\'"', '\'\'', '""'), '', substr($match[3], 1, strlen($match[3]) - 2)));
-            } elseif (preg_match('/'.self::REGEX_QUOTED_STRING.'/A', $input, $match, null, $cursor)) {
-                $tokens[] = stripcslashes(substr($match[0], 1, strlen($match[0]) - 2));
-            } elseif (preg_match('/'.self::REGEX_STRING.'/A', $input, $match, null, $cursor)) {
-                $tokens[] = stripcslashes($match[1]);
-            } else {
-                // should never happen
-                throw new \InvalidArgumentException(sprintf('Unable to parse input near "... %s ..."', substr($input, $cursor, 10)));
-            }
-
-            $cursor += strlen($match[0]);
-        }
-
-        return $tokens;
-    }
-}
diff --git a/core/vendor/symfony/console/LICENSE b/core/vendor/symfony/console/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/console/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/console/Logger/ConsoleLogger.php b/core/vendor/symfony/console/Logger/ConsoleLogger.php
deleted file mode 100644
index cf5d49c..0000000
--- a/core/vendor/symfony/console/Logger/ConsoleLogger.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Logger;
-
-use Psr\Log\AbstractLogger;
-use Psr\Log\InvalidArgumentException;
-use Psr\Log\LogLevel;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
-
-/**
- * PSR-3 compliant console logger
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- * @link http://www.php-fig.org/psr/psr-3/
- */
-class ConsoleLogger extends AbstractLogger
-{
-    const INFO = 'info';
-    const ERROR = 'error';
-
-    /**
-     * @var OutputInterface
-     */
-    private $output;
-    /**
-     * @var array
-     */
-    private $verbosityLevelMap = array(
-        LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL,
-        LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL,
-        LogLevel::CRITICAL => OutputInterface::VERBOSITY_NORMAL,
-        LogLevel::ERROR => OutputInterface::VERBOSITY_NORMAL,
-        LogLevel::WARNING => OutputInterface::VERBOSITY_NORMAL,
-        LogLevel::NOTICE => OutputInterface::VERBOSITY_VERBOSE,
-        LogLevel::INFO => OutputInterface::VERBOSITY_VERY_VERBOSE,
-        LogLevel::DEBUG => OutputInterface::VERBOSITY_DEBUG,
-    );
-    /**
-     * @var array
-     */
-    private $formatLevelMap = array(
-        LogLevel::EMERGENCY => self::ERROR,
-        LogLevel::ALERT => self::ERROR,
-        LogLevel::CRITICAL => self::ERROR,
-        LogLevel::ERROR => self::ERROR,
-        LogLevel::WARNING => self::INFO,
-        LogLevel::NOTICE => self::INFO,
-        LogLevel::INFO => self::INFO,
-        LogLevel::DEBUG => self::INFO,
-    );
-
-    /**
-     * @param OutputInterface $output
-     * @param array           $verbosityLevelMap
-     * @param array           $formatLevelMap
-     */
-    public function __construct(OutputInterface $output, array $verbosityLevelMap = array(), array $formatLevelMap = array())
-    {
-        $this->output = $output;
-        $this->verbosityLevelMap = $verbosityLevelMap + $this->verbosityLevelMap;
-        $this->formatLevelMap = $formatLevelMap + $this->formatLevelMap;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function log($level, $message, array $context = array())
-    {
-        if (!isset($this->verbosityLevelMap[$level])) {
-            throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $level));
-        }
-
-        // Write to the error output if necessary and available
-        if ($this->formatLevelMap[$level] === self::ERROR && $this->output instanceof ConsoleOutputInterface) {
-            $output = $this->output->getErrorOutput();
-        } else {
-            $output = $this->output;
-        }
-
-        if ($output->getVerbosity() >= $this->verbosityLevelMap[$level]) {
-            $output->writeln(sprintf('<%1$s>[%2$s] %3$s</%1$s>', $this->formatLevelMap[$level], $level, $this->interpolate($message, $context)));
-        }
-    }
-
-    /**
-     * Interpolates context values into the message placeholders
-     *
-     * @author PHP Framework Interoperability Group
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return string
-     */
-    private function interpolate($message, array $context)
-    {
-        // build a replacement array with braces around the context keys
-        $replace = array();
-        foreach ($context as $key => $val) {
-            if (!is_array($val) && (!is_object($val) || method_exists($val, '__toString'))) {
-                $replace[sprintf('{%s}', $key)] = $val;
-            }
-        }
-
-        // interpolate replacement values into the message and return
-        return strtr($message, $replace);
-    }
-}
diff --git a/core/vendor/symfony/console/Output/BufferedOutput.php b/core/vendor/symfony/console/Output/BufferedOutput.php
deleted file mode 100644
index 5682fc2..0000000
--- a/core/vendor/symfony/console/Output/BufferedOutput.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-/**
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class BufferedOutput extends Output
-{
-    /**
-     * @var string
-     */
-    private $buffer = '';
-
-    /**
-     * Empties buffer and returns its content.
-     *
-     * @return string
-     */
-    public function fetch()
-    {
-        $content = $this->buffer;
-        $this->buffer = '';
-
-        return $content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doWrite($message, $newline)
-    {
-        $this->buffer .= $message;
-
-        if ($newline) {
-            $this->buffer .= "\n";
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/Output/ConsoleOutput.php b/core/vendor/symfony/console/Output/ConsoleOutput.php
deleted file mode 100644
index 50ef4df..0000000
--- a/core/vendor/symfony/console/Output/ConsoleOutput.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-
-/**
- * ConsoleOutput is the default class for all CLI output. It uses STDOUT.
- *
- * This class is a convenient wrapper around `StreamOutput`.
- *
- *     $output = new ConsoleOutput();
- *
- * This is equivalent to:
- *
- *     $output = new StreamOutput(fopen('php://stdout', 'w'));
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface
-{
-    /**
-     * @var StreamOutput
-     */
-    private $stderr;
-
-    /**
-     * Constructor.
-     *
-     * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
-     * @param bool|null                     $decorated Whether to decorate messages (null for auto-guessing)
-     * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
-     *
-     * @api
-     */
-    public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = null, OutputFormatterInterface $formatter = null)
-    {
-        parent::__construct($this->openOutputStream(), $verbosity, $decorated, $formatter);
-
-        $this->stderr = new StreamOutput($this->openErrorStream(), $verbosity, $decorated, $this->getFormatter());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setDecorated($decorated)
-    {
-        parent::setDecorated($decorated);
-        $this->stderr->setDecorated($decorated);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setFormatter(OutputFormatterInterface $formatter)
-    {
-        parent::setFormatter($formatter);
-        $this->stderr->setFormatter($formatter);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setVerbosity($level)
-    {
-        parent::setVerbosity($level);
-        $this->stderr->setVerbosity($level);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getErrorOutput()
-    {
-        return $this->stderr;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setErrorOutput(OutputInterface $error)
-    {
-        $this->stderr = $error;
-    }
-
-    /**
-     * Returns true if current environment supports writing console output to
-     * STDOUT.
-     *
-     * @return bool
-     */
-    protected function hasStdoutSupport()
-    {
-        return false === $this->isRunningOS400();
-    }
-
-    /**
-     * Returns true if current environment supports writing console output to
-     * STDERR.
-     *
-     * @return bool
-     */
-    protected function hasStderrSupport()
-    {
-        return false === $this->isRunningOS400();
-    }
-
-    /**
-     * Checks if current executing environment is IBM iSeries (OS400), which
-     * doesn't properly convert character-encodings between ASCII to EBCDIC.
-     *
-     * @return bool
-     */
-    private function isRunningOS400()
-    {
-        return 'OS400' === php_uname('s');
-    }
-
-    /**
-     * @return resource
-     */
-    private function openOutputStream()
-    {
-        $outputStream = $this->hasStdoutSupport() ? 'php://stdout' : 'php://output';
-
-        return @fopen($outputStream, 'w') ?: fopen('php://output', 'w');
-    }
-
-    /**
-     * @return resource
-     */
-    private function openErrorStream()
-    {
-        $errorStream = $this->hasStderrSupport() ? 'php://stderr' : 'php://output';
-
-        return fopen($errorStream, 'w');
-    }
-}
diff --git a/core/vendor/symfony/console/Output/ConsoleOutputInterface.php b/core/vendor/symfony/console/Output/ConsoleOutputInterface.php
deleted file mode 100644
index 5eb4fc7..0000000
--- a/core/vendor/symfony/console/Output/ConsoleOutputInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-/**
- * ConsoleOutputInterface is the interface implemented by ConsoleOutput class.
- * This adds information about stderr output stream.
- *
- * @author Dariusz Górecki <darek.krk@gmail.com>
- */
-interface ConsoleOutputInterface extends OutputInterface
-{
-    /**
-     * Gets the OutputInterface for errors.
-     *
-     * @return OutputInterface
-     */
-    public function getErrorOutput();
-
-    /**
-     * Sets the OutputInterface used for errors.
-     *
-     * @param OutputInterface $error
-     */
-    public function setErrorOutput(OutputInterface $error);
-}
diff --git a/core/vendor/symfony/console/Output/NullOutput.php b/core/vendor/symfony/console/Output/NullOutput.php
deleted file mode 100644
index 557f8af..0000000
--- a/core/vendor/symfony/console/Output/NullOutput.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-use Symfony\Component\Console\Formatter\OutputFormatter;
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-
-/**
- * NullOutput suppresses all output.
- *
- *     $output = new NullOutput();
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class NullOutput implements OutputInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function setFormatter(OutputFormatterInterface $formatter)
-    {
-        // do nothing
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFormatter()
-    {
-        // to comply with the interface we must return a OutputFormatterInterface
-        return new OutputFormatter();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setDecorated($decorated)
-    {
-        // do nothing
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isDecorated()
-    {
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setVerbosity($level)
-    {
-        // do nothing
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getVerbosity()
-    {
-        return self::VERBOSITY_QUIET;
-    }
-
-    public function isQuiet()
-    {
-        return true;
-    }
-
-    public function isVerbose()
-    {
-        return false;
-    }
-
-    public function isVeryVerbose()
-    {
-        return false;
-    }
-
-    public function isDebug()
-    {
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function writeln($messages, $type = self::OUTPUT_NORMAL)
-    {
-        // do nothing
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)
-    {
-        // do nothing
-    }
-}
diff --git a/core/vendor/symfony/console/Output/Output.php b/core/vendor/symfony/console/Output/Output.php
deleted file mode 100644
index cb0e40d..0000000
--- a/core/vendor/symfony/console/Output/Output.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-use Symfony\Component\Console\Formatter\OutputFormatter;
-
-/**
- * Base class for output classes.
- *
- * There are five levels of verbosity:
- *
- *  * normal: no option passed (normal output)
- *  * verbose: -v (more output)
- *  * very verbose: -vv (highly extended output)
- *  * debug: -vvv (all debug output)
- *  * quiet: -q (no output)
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class Output implements OutputInterface
-{
-    private $verbosity;
-    private $formatter;
-
-    /**
-     * Constructor.
-     *
-     * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
-     * @param bool                          $decorated Whether to decorate messages
-     * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
-     *
-     * @api
-     */
-    public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = false, OutputFormatterInterface $formatter = null)
-    {
-        $this->verbosity = null === $verbosity ? self::VERBOSITY_NORMAL : $verbosity;
-        $this->formatter = $formatter ?: new OutputFormatter();
-        $this->formatter->setDecorated($decorated);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setFormatter(OutputFormatterInterface $formatter)
-    {
-        $this->formatter = $formatter;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFormatter()
-    {
-        return $this->formatter;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setDecorated($decorated)
-    {
-        $this->formatter->setDecorated($decorated);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isDecorated()
-    {
-        return $this->formatter->isDecorated();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setVerbosity($level)
-    {
-        $this->verbosity = (int) $level;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getVerbosity()
-    {
-        return $this->verbosity;
-    }
-
-    public function isQuiet()
-    {
-        return self::VERBOSITY_QUIET === $this->verbosity;
-    }
-
-    public function isVerbose()
-    {
-        return self::VERBOSITY_VERBOSE <= $this->verbosity;
-    }
-
-    public function isVeryVerbose()
-    {
-        return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity;
-    }
-
-    public function isDebug()
-    {
-        return self::VERBOSITY_DEBUG <= $this->verbosity;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function writeln($messages, $type = self::OUTPUT_NORMAL)
-    {
-        $this->write($messages, true, $type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)
-    {
-        if (self::VERBOSITY_QUIET === $this->verbosity) {
-            return;
-        }
-
-        $messages = (array) $messages;
-
-        foreach ($messages as $message) {
-            switch ($type) {
-                case OutputInterface::OUTPUT_NORMAL:
-                    $message = $this->formatter->format($message);
-                    break;
-                case OutputInterface::OUTPUT_RAW:
-                    break;
-                case OutputInterface::OUTPUT_PLAIN:
-                    $message = strip_tags($this->formatter->format($message));
-                    break;
-                default:
-                    throw new \InvalidArgumentException(sprintf('Unknown output type given (%s)', $type));
-            }
-
-            $this->doWrite($message, $newline);
-        }
-    }
-
-    /**
-     * Writes a message to the output.
-     *
-     * @param string $message A message to write to the output
-     * @param bool   $newline Whether to add a newline or not
-     */
-    abstract protected function doWrite($message, $newline);
-}
diff --git a/core/vendor/symfony/console/Output/OutputInterface.php b/core/vendor/symfony/console/Output/OutputInterface.php
deleted file mode 100644
index f7f3063..0000000
--- a/core/vendor/symfony/console/Output/OutputInterface.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-
-/**
- * OutputInterface is the interface implemented by all Output classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface OutputInterface
-{
-    const VERBOSITY_QUIET = 0;
-    const VERBOSITY_NORMAL = 1;
-    const VERBOSITY_VERBOSE = 2;
-    const VERBOSITY_VERY_VERBOSE = 3;
-    const VERBOSITY_DEBUG = 4;
-
-    const OUTPUT_NORMAL = 0;
-    const OUTPUT_RAW = 1;
-    const OUTPUT_PLAIN = 2;
-
-    /**
-     * Writes a message to the output.
-     *
-     * @param string|array $messages The message as an array of lines or a single string
-     * @param bool         $newline  Whether to add a newline
-     * @param int          $type     The type of output (one of the OUTPUT constants)
-     *
-     * @throws \InvalidArgumentException When unknown output type is given
-     *
-     * @api
-     */
-    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL);
-
-    /**
-     * Writes a message to the output and adds a newline at the end.
-     *
-     * @param string|array $messages The message as an array of lines of a single string
-     * @param int          $type     The type of output (one of the OUTPUT constants)
-     *
-     * @throws \InvalidArgumentException When unknown output type is given
-     *
-     * @api
-     */
-    public function writeln($messages, $type = self::OUTPUT_NORMAL);
-
-    /**
-     * Sets the verbosity of the output.
-     *
-     * @param int $level The level of verbosity (one of the VERBOSITY constants)
-     *
-     * @api
-     */
-    public function setVerbosity($level);
-
-    /**
-     * Gets the current verbosity of the output.
-     *
-     * @return int The current level of verbosity (one of the VERBOSITY constants)
-     *
-     * @api
-     */
-    public function getVerbosity();
-
-    /**
-     * Sets the decorated flag.
-     *
-     * @param bool $decorated Whether to decorate the messages
-     *
-     * @api
-     */
-    public function setDecorated($decorated);
-
-    /**
-     * Gets the decorated flag.
-     *
-     * @return bool true if the output will decorate messages, false otherwise
-     *
-     * @api
-     */
-    public function isDecorated();
-
-    /**
-     * Sets output formatter.
-     *
-     * @param OutputFormatterInterface $formatter
-     *
-     * @api
-     */
-    public function setFormatter(OutputFormatterInterface $formatter);
-
-    /**
-     * Returns current output formatter instance.
-     *
-     * @return OutputFormatterInterface
-     *
-     * @api
-     */
-    public function getFormatter();
-}
diff --git a/core/vendor/symfony/console/Output/StreamOutput.php b/core/vendor/symfony/console/Output/StreamOutput.php
deleted file mode 100644
index 494cded..0000000
--- a/core/vendor/symfony/console/Output/StreamOutput.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Output;
-
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-
-/**
- * StreamOutput writes the output to a given stream.
- *
- * Usage:
- *
- * $output = new StreamOutput(fopen('php://stdout', 'w'));
- *
- * As `StreamOutput` can use any stream, you can also use a file:
- *
- * $output = new StreamOutput(fopen('/path/to/output.log', 'a', false));
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class StreamOutput extends Output
-{
-    private $stream;
-
-    /**
-     * Constructor.
-     *
-     * @param mixed                         $stream    A stream resource
-     * @param int                           $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
-     * @param bool|null                     $decorated Whether to decorate messages (null for auto-guessing)
-     * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
-     *
-     * @throws \InvalidArgumentException When first argument is not a real stream
-     *
-     * @api
-     */
-    public function __construct($stream, $verbosity = self::VERBOSITY_NORMAL, $decorated = null, OutputFormatterInterface $formatter = null)
-    {
-        if (!is_resource($stream) || 'stream' !== get_resource_type($stream)) {
-            throw new \InvalidArgumentException('The StreamOutput class needs a stream as its first argument.');
-        }
-
-        $this->stream = $stream;
-
-        if (null === $decorated) {
-            $decorated = $this->hasColorSupport();
-        }
-
-        parent::__construct($verbosity, $decorated, $formatter);
-    }
-
-    /**
-     * Gets the stream attached to this StreamOutput instance.
-     *
-     * @return resource A stream resource
-     */
-    public function getStream()
-    {
-        return $this->stream;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doWrite($message, $newline)
-    {
-        if (false === @fwrite($this->stream, $message.($newline ? PHP_EOL : ''))) {
-            // should never happen
-            throw new \RuntimeException('Unable to write output.');
-        }
-
-        fflush($this->stream);
-    }
-
-    /**
-     * Returns true if the stream supports colorization.
-     *
-     * Colorization is disabled if not supported by the stream:
-     *
-     *  -  Windows without Ansicon and ConEmu
-     *  -  non tty consoles
-     *
-     * @return bool true if the stream supports colorization, false otherwise
-     */
-    protected function hasColorSupport()
-    {
-        if (DIRECTORY_SEPARATOR === '\\') {
-            return false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
-        }
-
-        return function_exists('posix_isatty') && @posix_isatty($this->stream);
-    }
-}
diff --git a/core/vendor/symfony/console/Question/ChoiceQuestion.php b/core/vendor/symfony/console/Question/ChoiceQuestion.php
deleted file mode 100644
index a36c739..0000000
--- a/core/vendor/symfony/console/Question/ChoiceQuestion.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Question;
-
-/**
- * Represents a choice question.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ChoiceQuestion extends Question
-{
-    private $choices;
-    private $multiselect = false;
-    private $prompt = ' > ';
-    private $errorMessage = 'Value "%s" is invalid';
-
-    /**
-     * Constructor.
-     *
-     * @param string $question The question to ask to the user
-     * @param array  $choices  The list of available choices
-     * @param mixed  $default  The default answer to return
-     */
-    public function __construct($question, array $choices, $default = null)
-    {
-        parent::__construct($question, $default);
-
-        $this->choices = $choices;
-        $this->setValidator($this->getDefaultValidator());
-        $this->setAutocompleterValues($choices);
-    }
-
-    /**
-     * Returns available choices.
-     *
-     * @return array
-     */
-    public function getChoices()
-    {
-        return $this->choices;
-    }
-
-    /**
-     * Sets multiselect option.
-     *
-     * When multiselect is set to true, multiple choices can be answered.
-     *
-     * @param bool $multiselect
-     *
-     * @return ChoiceQuestion The current instance
-     */
-    public function setMultiselect($multiselect)
-    {
-        $this->multiselect = $multiselect;
-        $this->setValidator($this->getDefaultValidator());
-
-        return $this;
-    }
-
-    /**
-     * Gets the prompt for choices.
-     *
-     * @return string
-     */
-    public function getPrompt()
-    {
-        return $this->prompt;
-    }
-
-    /**
-     * Sets the prompt for choices.
-     *
-     * @param string $prompt
-     *
-     * @return ChoiceQuestion The current instance
-     */
-    public function setPrompt($prompt)
-    {
-        $this->prompt = $prompt;
-
-        return $this;
-    }
-
-    /**
-     * Sets the error message for invalid values.
-     *
-     * The error message has a string placeholder (%s) for the invalid value.
-     *
-     * @param string $errorMessage
-     *
-     * @return ChoiceQuestion The current instance
-     */
-    public function setErrorMessage($errorMessage)
-    {
-        $this->errorMessage = $errorMessage;
-        $this->setValidator($this->getDefaultValidator());
-
-        return $this;
-    }
-
-    /**
-     * Returns the default answer validator.
-     *
-     * @return callable
-     */
-    private function getDefaultValidator()
-    {
-        $choices = $this->choices;
-        $errorMessage = $this->errorMessage;
-        $multiselect = $this->multiselect;
-        $isAssoc = $this->isAssoc($choices);
-
-        return function ($selected) use ($choices, $errorMessage, $multiselect, $isAssoc) {
-            // Collapse all spaces.
-            $selectedChoices = str_replace(' ', '', $selected);
-
-            if ($multiselect) {
-                // Check for a separated comma values
-                if (!preg_match('/^[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/', $selectedChoices, $matches)) {
-                    throw new \InvalidArgumentException(sprintf($errorMessage, $selected));
-                }
-                $selectedChoices = explode(',', $selectedChoices);
-            } else {
-                $selectedChoices = array($selected);
-            }
-
-            $multiselectChoices = array();
-            foreach ($selectedChoices as $value) {
-                $results = array();
-                foreach ($choices as $key => $choice) {
-                    if ($choice === $value) {
-                        $results[] = $key;
-                    }
-                }
-
-                if (count($results) > 1) {
-                    throw new \InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of %s.', implode(' or ', $results)));
-                }
-
-                $result = array_search($value, $choices);
-
-                if (!$isAssoc) {
-                    if (false !== $result) {
-                        $result = $choices[$result];
-                    } elseif (isset($choices[$value])) {
-                        $result = $choices[$value];
-                    }
-                } elseif (false === $result && isset($choices[$value])) {
-                    $result = $value;
-                }
-
-                if (false === $result) {
-                    throw new \InvalidArgumentException(sprintf($errorMessage, $value));
-                }
-
-                $multiselectChoices[] = (string) $result;
-            }
-
-            if ($multiselect) {
-                return $multiselectChoices;
-            }
-
-            return current($multiselectChoices);
-        };
-    }
-}
diff --git a/core/vendor/symfony/console/Question/ConfirmationQuestion.php b/core/vendor/symfony/console/Question/ConfirmationQuestion.php
deleted file mode 100644
index 9e55859..0000000
--- a/core/vendor/symfony/console/Question/ConfirmationQuestion.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Question;
-
-/**
- * Represents a yes/no question.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ConfirmationQuestion extends Question
-{
-    private $trueAnswerRegex;
-
-    /**
-     * Constructor.
-     *
-     * @param string $question   The question to ask to the user
-     * @param bool   $default    The default answer to return, true or false
-     * @param string $trueAnswerRegex A regex to match the "yes" answer
-     */
-    public function __construct($question, $default = true, $trueAnswerRegex = '/^y/i')
-    {
-        parent::__construct($question, (bool) $default);
-
-        $this->trueAnswerRegex = $trueAnswerRegex;
-        $this->setNormalizer($this->getDefaultNormalizer());
-    }
-
-    /**
-     * Returns the default answer normalizer.
-     *
-     * @return callable
-     */
-    private function getDefaultNormalizer()
-    {
-        $default = $this->getDefault();
-        $regex = $this->trueAnswerRegex;
-
-        return function ($answer) use ($default, $regex) {
-            if (is_bool($answer)) {
-                return $answer;
-            }
-
-            $answerIsTrue = (bool) preg_match($regex, $answer);
-            if (false === $default) {
-                return $answer && $answerIsTrue;
-            }
-
-            return !$answer || $answerIsTrue;
-        };
-    }
-}
diff --git a/core/vendor/symfony/console/Question/Question.php b/core/vendor/symfony/console/Question/Question.php
deleted file mode 100644
index 01702b2..0000000
--- a/core/vendor/symfony/console/Question/Question.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Question;
-
-/**
- * Represents a Question.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Question
-{
-    private $question;
-    private $attempts;
-    private $hidden = false;
-    private $hiddenFallback = true;
-    private $autocompleterValues;
-    private $validator;
-    private $default;
-    private $normalizer;
-
-    /**
-     * Constructor.
-     *
-     * @param string $question The question to ask to the user
-     * @param mixed  $default  The default answer to return if the user enters nothing
-     */
-    public function __construct($question, $default = null)
-    {
-        $this->question = $question;
-        $this->default = $default;
-    }
-
-    /**
-     * Returns the question.
-     *
-     * @return string
-     */
-    public function getQuestion()
-    {
-        return $this->question;
-    }
-
-    /**
-     * Returns the default answer.
-     *
-     * @return mixed
-     */
-    public function getDefault()
-    {
-        return $this->default;
-    }
-
-    /**
-     * Returns whether the user response must be hidden.
-     *
-     * @return bool
-     */
-    public function isHidden()
-    {
-        return $this->hidden;
-    }
-
-    /**
-     * Sets whether the user response must be hidden or not.
-     *
-     * @param bool $hidden
-     *
-     * @return Question The current instance
-     *
-     * @throws \LogicException In case the autocompleter is also used
-     */
-    public function setHidden($hidden)
-    {
-        if ($this->autocompleterValues) {
-            throw new \LogicException('A hidden question cannot use the autocompleter.');
-        }
-
-        $this->hidden = (bool) $hidden;
-
-        return $this;
-    }
-
-    /**
-     * In case the response can not be hidden, whether to fallback on non-hidden question or not.
-     *
-     * @return bool
-     */
-    public function isHiddenFallback()
-    {
-        return $this->hiddenFallback;
-    }
-
-    /**
-     * Sets whether to fallback on non-hidden question if the response can not be hidden.
-     *
-     * @param bool $fallback
-     *
-     * @return Question The current instance
-     */
-    public function setHiddenFallback($fallback)
-    {
-        $this->hiddenFallback = (bool) $fallback;
-
-        return $this;
-    }
-
-    /**
-     * Gets values for the autocompleter.
-     *
-     * @return null|array|\Traversable
-     */
-    public function getAutocompleterValues()
-    {
-        return $this->autocompleterValues;
-    }
-
-    /**
-     * Sets values for the autocompleter.
-     *
-     * @param null|array|\Traversable $values
-     *
-     * @return Question The current instance
-     *
-     * @throws \InvalidArgumentException
-     * @throws \LogicException
-     */
-    public function setAutocompleterValues($values)
-    {
-        if (is_array($values) && $this->isAssoc($values)) {
-            $values = array_merge(array_keys($values), array_values($values));
-        }
-
-        if (null !== $values && !is_array($values)) {
-            if (!$values instanceof \Traversable || $values instanceof \Countable) {
-                throw new \InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.');
-            }
-        }
-
-        if ($this->hidden) {
-            throw new \LogicException('A hidden question cannot use the autocompleter.');
-        }
-
-        $this->autocompleterValues = $values;
-
-        return $this;
-    }
-
-    /**
-     * Sets a validator for the question.
-     *
-     * @param null|callable $validator
-     *
-     * @return Question The current instance
-     */
-    public function setValidator($validator)
-    {
-        $this->validator = $validator;
-
-        return $this;
-    }
-
-    /**
-     * Gets the validator for the question.
-     *
-     * @return null|callable
-     */
-    public function getValidator()
-    {
-        return $this->validator;
-    }
-
-    /**
-     * Sets the maximum number of attempts.
-     *
-     * Null means an unlimited number of attempts.
-     *
-     * @param null|int $attempts
-     *
-     * @return Question The current instance
-     *
-     * @throws \InvalidArgumentException In case the number of attempts is invalid.
-     */
-    public function setMaxAttempts($attempts)
-    {
-        if (null !== $attempts && $attempts < 1) {
-            throw new \InvalidArgumentException('Maximum number of attempts must be a positive value.');
-        }
-
-        $this->attempts = $attempts;
-
-        return $this;
-    }
-
-    /**
-     * Gets the maximum number of attempts.
-     *
-     * Null means an unlimited number of attempts.
-     *
-     * @return null|int
-     */
-    public function getMaxAttempts()
-    {
-        return $this->attempts;
-    }
-
-    /**
-     * Sets a normalizer for the response.
-     *
-     * The normalizer can be a callable (a string), a closure or a class implementing __invoke.
-     *
-     * @param string|\Closure $normalizer
-     *
-     * @return Question The current instance
-     */
-    public function setNormalizer($normalizer)
-    {
-        $this->normalizer = $normalizer;
-
-        return $this;
-    }
-
-    /**
-     * Gets the normalizer for the response.
-     *
-     * The normalizer can ba a callable (a string), a closure or a class implementing __invoke.
-     *
-     * @return string|\Closure
-     */
-    public function getNormalizer()
-    {
-        return $this->normalizer;
-    }
-
-    protected function isAssoc($array)
-    {
-        return (bool) count(array_filter(array_keys($array), 'is_string'));
-    }
-}
diff --git a/core/vendor/symfony/console/README.md b/core/vendor/symfony/console/README.md
deleted file mode 100644
index 25f700c..0000000
--- a/core/vendor/symfony/console/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-Console Component
-=================
-
-Console eases the creation of beautiful and testable command line interfaces.
-
-The Application object manages the CLI application:
-
-```php
-use Symfony\Component\Console\Application;
-
-$console = new Application();
-$console->run();
-```
-
-The ``run()`` method parses the arguments and options passed on the command
-line and executes the right command.
-
-Registering a new command can easily be done via the ``register()`` method,
-which returns a ``Command`` instance:
-
-```php
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-$console
-    ->register('ls')
-    ->setDefinition(array(
-        new InputArgument('dir', InputArgument::REQUIRED, 'Directory name'),
-    ))
-    ->setDescription('Displays the files in the given directory')
-    ->setCode(function (InputInterface $input, OutputInterface $output) {
-        $dir = $input->getArgument('dir');
-
-        $output->writeln(sprintf('Dir listing for <info>%s</info>', $dir));
-    })
-;
-```
-
-You can also register new commands via classes.
-
-The component provides a lot of features like output coloring, input and
-output abstractions (so that you can easily unit-test your commands),
-validation, automatic help messages, ...
-
-Tests
------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Console/
-    $ composer install
-    $ phpunit
-
-Third Party
------------
-
-`Resources/bin/hiddeninput.exe` is a third party binary provided within this
-component. Find sources and license at https://github.com/Seldaek/hidden-input.
-
-Resources
----------
-
-[The Console Component](https://symfony.com/doc/current/components/console.html)
-
-[How to create a Console Command](https://symfony.com/doc/current/cookbook/console/console_command.html)
diff --git a/core/vendor/symfony/console/Resources/bin/hiddeninput.exe b/core/vendor/symfony/console/Resources/bin/hiddeninput.exe
deleted file mode 100644
index 9f4a2aa..0000000
--- a/core/vendor/symfony/console/Resources/bin/hiddeninput.exe
+++ /dev/null
@@ -1,21 +0,0 @@
-MZ                @                                       	!L!This program cannot be run in DOS mode.
-$       ,;B;B;B2מ:B2-B2ƞ9B2ў?Ba98B;CB2Ȟ:B2֞:B2Ӟ:BRich;B        PE  L MoO         	  
-         8           @                      `     ?   @                           "  P    @                      P  p   !                             8!  @                                          .text   	      
-                    `.rdata  	       
-                 @  @.data      0                    @  .rsrc       @                    @  @.reloc     P      "              @  B                                                                                                                                                                                                                                                                                                                                                        j$@ x  j @ e EPV  @ EЃPV @ MX @ e EP5H @ L @ YY5\ @ EP5` @ D @ YYP @ MMT @ 3H  ; 0@ u  h@   l3@ $40@ 5h3@ 40@ h$0@ h(0@ h 0@  @ 00@ }j  Yjh"@   3ۉ]d   p]俀3@ SVW0 @ ;t;u3Fuh  4 @ 3F|3@ ;u
-j\  Y;|3@ u,5|3@ h @ h @   YYtE      5<0@ |3@ ;uh @ h @ l  YY|3@    9]uSW8 @ 93@ th3@   Yt
-SjS3@ $0@  @ 5$0@ 5(0@ 5 0@ 80@ 9,0@ u7P @ E	MPQ  YYËeE80@ 39,0@ uPh @ 9<0@ u @ E80@   øMZ  f9  @ t3M< @   @ 8PE  uH  t  uՃ   v39   xtv39   j,0@ p @ jl @ YY3@ 3@  @ t3@  @ p3@  @  x3@ V    =0@  uh@  @ Yg  =0@ u	j @ Y3{  U(  H1@ D1@ @1@ <1@ 581@ =41@ f`1@ fT1@ f01@ f,1@ f%(1@ f-$1@ X1@ E L1@ EP1@ E\1@ 0@   P1@ L0@ @0@ 	 D0@     0@ 0@  @ 0@ j?  Yj   @ h!@ $ @ =0@  uj  Yh	 ( @ P, @ ËUE 8csmu*xu$@= t=!t="t= @u  3] hH@   @ 3% @ jh("@ b  53@ 5 @ YEuu @ Ygj  Ye 53@ ։E53@ YYEEPEPu5l @ YPU  Eu֣3@ uփ3@ E	   E  j  YËUuNYH]ËV!@ !@ W;stЃ;r_^ËV"@ "@ W;stЃ;r_^% @ ̋UMMZ  f9t3]ËA<8PE  u3ҹ  f9H]̋UEH<ASVq3WDv}H;r	X;r
-B(;r3_^[]̋UjhH"@ he@ d    PSVW 0@ 1E3PEd    eE    h  @ *tUE-  @ Ph  @ Pt;@$ЃEMd    Y_^[]ËE3=  ËeE3Md    Y_^[]% @ % @ he@ d5    D$l$l$+SVW 0@ 1E3PeuEEEEd    ËMd    Y__^[]QËUuuuuh@ h 0@    ]ËVh   h   3V   tVVVVV   ^3ËU 0@ e e SWN@  ;tt	У0@ `VEP< @ u3u @ 3 @ 3 @ 3EP @ E3E3;uO@u5 0@ ։50@ ^_[%t @ %x @ %| @ % @ % @ % @ % @ % @ % @ Pd5    D$+d$SVW( 0@ 3PEuEEd    ËMd    Y__^[]QËM3M%T @ T$BJ3J3l"@ s                                                                                                                                                                                                                                                     #  #  #  )  r)  b)  H)  4)  )  (  (  (  (  (  (  )      #  $  %  %  &  d&  &  $      ('  '  '  '  '  (  ((  6(  '  H(  Z(  t(  (  '  '   '  '  '  l'  ^'  R'  F'  >'  >(  0'  '  )          @         W@ @                     MoO       l   !    @0@ 0@ bad allocation      H                                                            0@ !@    RSDSьJ!LZ    c:\users\seld\documents\visual studio 2010\Projects\hiddeninp\Release\hiddeninp.pdb     e                            @ @                 :@             @ @ @ "   d"@                        "          #      $#          &  D   H#          (  h                       #  #  #  )  r)  b)  H)  4)  )  (  (  (  (  (  (  )      #  $  %  %  &  d&  &  $      ('  '  '  '  '  (  ((  6(  '  H(  Z(  t(  (  '  '   '  '  '  l'  ^'  R'  F'  >'  >(  0'  '  )      GetConsoleMode  SetConsoleMode  ;GetStdHandle  KERNEL32.dll   ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A  J?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A  ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z  _??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ  {??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ  ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z  MSVCP90.dll _amsg_exit   __getmainargs ,_cexit  |_exit f _XcptFilter exit   __initenv _initterm _initterm_e <_configthreadlocale  __setusermatherr  _adjust_fdiv   __p__commode   __p__fmode  j_encode_pointer  __set_app_type  K_crt_debugger_hook  C ?terminate@@YAXXZ MSVCR90.dll _unlock  __dllonexit v_lock _onexit `_decode_pointer s_except_handler4_common _invoke_watson  ?_controlfp_s  InterlockedExchange !Sleep InterlockedCompareExchange  -TerminateProcess  GetCurrentProcess >UnhandledExceptionFilter  SetUnhandledExceptionFilter IsDebuggerPresent TQueryPerformanceCounter fGetTickCount  GetCurrentThreadId  GetCurrentProcessId OGetSystemTimeAsFileTime s __CxxFrameHandler3                                                    N@D   $!@                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            8                   P                   h                	                   	     @  (        C  V        (4   V S _ V E R S I O N _ I N F O                                                  S t r i n g F i l e I n f o   b   0 4 0 9 0 4 b 0    Q  F i l e D e s c r i p t i o n     R e a d s   f r o m   s t d i n   w i t h o u t   l e a k i n g   i n f o   t o   t h e   t e r m i n a l   a n d   o u t p u t s   b a c k   t o   s t d o u t     6   F i l e V e r s i o n     1 ,   0 ,   0 ,   0     8   I n t e r n a l N a m e   h i d d e n i n p u t   P   L e g a l C o p y r i g h t   J o r d i   B o g g i a n o   -   2 0 1 2   H   O r i g i n a l F i l e n a m e   h i d d e n i n p u t . e x e   :   P r o d u c t N a m e     H i d d e n   I n p u t     :   P r o d u c t V e r s i o n   1 ,   0 ,   0 ,   0     D    V a r F i l e I n f o     $    T r a n s l a t i o n     	<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDING   @  00!0/080F0L0T0^0d0n0{000000000000001#1-1@1J1O1T1v1{1111111111111112"2*23292A2M2_2j2p222222222222333%303N3T3Z3`3f3l3s3z333333333333333334444%4;4B444444444445!5^5c5555H6M6_6}666 777*7w7|77777888=8E8P8V8\8b8h8n8t8z88889      $   0001 1t1x12 2@2\2`2h2t2 0     0                                                                                                                                                  
\ No newline at end of file
diff --git a/core/vendor/symfony/console/Shell.php b/core/vendor/symfony/console/Shell.php
deleted file mode 100644
index eaaadfd..0000000
--- a/core/vendor/symfony/console/Shell.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console;
-
-use Symfony\Component\Console\Input\StringInput;
-use Symfony\Component\Console\Output\ConsoleOutput;
-use Symfony\Component\Process\ProcessBuilder;
-use Symfony\Component\Process\PhpExecutableFinder;
-
-/**
- * A Shell wraps an Application to add shell capabilities to it.
- *
- * Support for history and completion only works with a PHP compiled
- * with readline support (either --with-readline or --with-libedit)
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Martin Hasoň <martin.hason@gmail.com>
- */
-class Shell
-{
-    private $application;
-    private $history;
-    private $output;
-    private $hasReadline;
-    private $processIsolation = false;
-
-    /**
-     * Constructor.
-     *
-     * If there is no readline support for the current PHP executable
-     * a \RuntimeException exception is thrown.
-     *
-     * @param Application $application An application instance
-     */
-    public function __construct(Application $application)
-    {
-        $this->hasReadline = function_exists('readline');
-        $this->application = $application;
-        $this->history = getenv('HOME').'/.history_'.$application->getName();
-        $this->output = new ConsoleOutput();
-    }
-
-    /**
-     * Runs the shell.
-     */
-    public function run()
-    {
-        $this->application->setAutoExit(false);
-        $this->application->setCatchExceptions(true);
-
-        if ($this->hasReadline) {
-            readline_read_history($this->history);
-            readline_completion_function(array($this, 'autocompleter'));
-        }
-
-        $this->output->writeln($this->getHeader());
-        $php = null;
-        if ($this->processIsolation) {
-            $finder = new PhpExecutableFinder();
-            $php = $finder->find();
-            $this->output->writeln(<<<EOF
-<info>Running with process isolation, you should consider this:</info>
-  * each command is executed as separate process,
-  * commands don't support interactivity, all params must be passed explicitly,
-  * commands output is not colorized.
-
-EOF
-            );
-        }
-
-        while (true) {
-            $command = $this->readline();
-
-            if (false === $command) {
-                $this->output->writeln("\n");
-
-                break;
-            }
-
-            if ($this->hasReadline) {
-                readline_add_history($command);
-                readline_write_history($this->history);
-            }
-
-            if ($this->processIsolation) {
-                $pb = new ProcessBuilder();
-
-                $process = $pb
-                    ->add($php)
-                    ->add($_SERVER['argv'][0])
-                    ->add($command)
-                    ->inheritEnvironmentVariables(true)
-                    ->getProcess()
-                ;
-
-                $output = $this->output;
-                $process->run(function ($type, $data) use ($output) {
-                    $output->writeln($data);
-                });
-
-                $ret = $process->getExitCode();
-            } else {
-                $ret = $this->application->run(new StringInput($command), $this->output);
-            }
-
-            if (0 !== $ret) {
-                $this->output->writeln(sprintf('<error>The command terminated with an error status (%s)</error>', $ret));
-            }
-        }
-    }
-
-    /**
-     * Returns the shell header.
-     *
-     * @return string The header string
-     */
-    protected function getHeader()
-    {
-        return <<<EOF
-
-Welcome to the <info>{$this->application->getName()}</info> shell (<comment>{$this->application->getVersion()}</comment>).
-
-At the prompt, type <comment>help</comment> for some help,
-or <comment>list</comment> to get a list of available commands.
-
-To exit the shell, type <comment>^D</comment>.
-
-EOF;
-    }
-
-    /**
-     * Renders a prompt.
-     *
-     * @return string The prompt
-     */
-    protected function getPrompt()
-    {
-        // using the formatter here is required when using readline
-        return $this->output->getFormatter()->format($this->application->getName().' > ');
-    }
-
-    protected function getOutput()
-    {
-        return $this->output;
-    }
-
-    protected function getApplication()
-    {
-        return $this->application;
-    }
-
-    /**
-     * Tries to return autocompletion for the current entered text.
-     *
-     * @param string $text The last segment of the entered text
-     *
-     * @return bool|array A list of guessed strings or true
-     */
-    private function autocompleter($text)
-    {
-        $info = readline_info();
-        $text = substr($info['line_buffer'], 0, $info['end']);
-
-        if ($info['point'] !== $info['end']) {
-            return true;
-        }
-
-        // task name?
-        if (false === strpos($text, ' ') || !$text) {
-            return array_keys($this->application->all());
-        }
-
-        // options and arguments?
-        try {
-            $command = $this->application->find(substr($text, 0, strpos($text, ' ')));
-        } catch (\Exception $e) {
-            return true;
-        }
-
-        $list = array('--help');
-        foreach ($command->getDefinition()->getOptions() as $option) {
-            $list[] = '--'.$option->getName();
-        }
-
-        return $list;
-    }
-
-    /**
-     * Reads a single line from standard input.
-     *
-     * @return string The single line from standard input
-     */
-    private function readline()
-    {
-        if ($this->hasReadline) {
-            $line = readline($this->getPrompt());
-        } else {
-            $this->output->write($this->getPrompt());
-            $line = fgets(STDIN, 1024);
-            $line = (false === $line || '' === $line) ? false : rtrim($line);
-        }
-
-        return $line;
-    }
-
-    public function getProcessIsolation()
-    {
-        return $this->processIsolation;
-    }
-
-    public function setProcessIsolation($processIsolation)
-    {
-        $this->processIsolation = (bool) $processIsolation;
-
-        if ($this->processIsolation && !class_exists('Symfony\\Component\\Process\\Process')) {
-            throw new \RuntimeException('Unable to isolate processes as the Symfony Process Component is not installed.');
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/Style/OutputStyle.php b/core/vendor/symfony/console/Style/OutputStyle.php
deleted file mode 100644
index 13ed05b..0000000
--- a/core/vendor/symfony/console/Style/OutputStyle.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Style;
-
-use Symfony\Component\Console\Formatter\OutputFormatterInterface;
-use Symfony\Component\Console\Helper\ProgressBar;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Decorates output to add console style guide helpers
- *
- * @author Kevin Bond <kevinbond@gmail.com>
- */
-abstract class OutputStyle implements OutputInterface, StyleInterface
-{
-    private $output;
-
-    /**
-     * @param OutputInterface $output
-     */
-    public function __construct(OutputInterface $output)
-    {
-        $this->output = $output;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function newLine($count = 1)
-    {
-        $this->output->write(str_repeat(PHP_EOL, $count));
-    }
-
-    /**
-     * @param int $max
-     *
-     * @return ProgressBar
-     */
-    public function createProgressBar($max = 0)
-    {
-        return new ProgressBar($this->output, $max);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)
-    {
-        $this->output->write($messages, $newline, $type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function writeln($messages, $type = self::OUTPUT_NORMAL)
-    {
-        $this->output->writeln($messages, $type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setVerbosity($level)
-    {
-        $this->output->setVerbosity($level);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getVerbosity()
-    {
-        return $this->output->getVerbosity();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setDecorated($decorated)
-    {
-        $this->output->setDecorated($decorated);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isDecorated()
-    {
-        return $this->output->isDecorated();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setFormatter(OutputFormatterInterface $formatter)
-    {
-        $this->output->setFormatter($formatter);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFormatter()
-    {
-        return $this->output->getFormatter();
-    }
-}
diff --git a/core/vendor/symfony/console/Style/StyleInterface.php b/core/vendor/symfony/console/Style/StyleInterface.php
deleted file mode 100644
index 2448547..0000000
--- a/core/vendor/symfony/console/Style/StyleInterface.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Style;
-
-/**
- * Output style helpers.
- *
- * @author Kevin Bond <kevinbond@gmail.com>
- */
-interface StyleInterface
-{
-    /**
-     * Formats a command title.
-     *
-     * @param string $message
-     */
-    public function title($message);
-
-    /**
-     * Formats a section title.
-     *
-     * @param string $message
-     */
-    public function section($message);
-
-    /**
-     * Formats a list.
-     *
-     * @param array $elements
-     */
-    public function listing(array $elements);
-
-    /**
-     * Formats informational text.
-     *
-     * @param string|array $message
-     */
-    public function text($message);
-
-    /**
-     * Formats a success result bar.
-     *
-     * @param string|array $message
-     */
-    public function success($message);
-
-    /**
-     * Formats an error result bar.
-     *
-     * @param string|array $message
-     */
-    public function error($message);
-
-    /**
-     * Formats an warning result bar.
-     *
-     * @param string|array $message
-     */
-    public function warning($message);
-
-    /**
-     * Formats a note admonition.
-     *
-     * @param string|array $message
-     */
-    public function note($message);
-
-    /**
-     * Formats a caution admonition.
-     *
-     * @param string|array $message
-     */
-    public function caution($message);
-
-    /**
-     * Formats a table.
-     *
-     * @param array $headers
-     * @param array $rows
-     */
-    public function table(array $headers, array $rows);
-
-    /**
-     * Asks a question.
-     *
-     * @param string        $question
-     * @param string|null   $default
-     * @param callable|null $validator
-     *
-     * @return string
-     */
-    public function ask($question, $default = null, $validator = null);
-
-    /**
-     * Asks a question with the user input hidden.
-     *
-     * @param string        $question
-     * @param callable|null $validator
-     *
-     * @return string
-     */
-    public function askHidden($question, $validator = null);
-
-    /**
-     * Asks for confirmation.
-     *
-     * @param string $question
-     * @param bool   $default
-     *
-     * @return bool
-     */
-    public function confirm($question, $default = true);
-
-    /**
-     * Asks a choice question.
-     *
-     * @param string          $question
-     * @param array           $choices
-     * @param string|int|null $default
-     *
-     * @return string
-     */
-    public function choice($question, array $choices, $default = null);
-
-    /**
-     * Add newline(s).
-     *
-     * @param int $count The number of newlines
-     */
-    public function newLine($count = 1);
-
-    /**
-     * Starts the progress output.
-     *
-     * @param int $max Maximum steps (0 if unknown)
-     */
-    public function progressStart($max = 0);
-
-    /**
-     * Advances the progress output X steps.
-     *
-     * @param int $step Number of steps to advance
-     */
-    public function progressAdvance($step = 1);
-
-    /**
-     * Finishes the progress output.
-     */
-    public function progressFinish();
-}
diff --git a/core/vendor/symfony/console/Style/SymfonyStyle.php b/core/vendor/symfony/console/Style/SymfonyStyle.php
deleted file mode 100644
index 0d366c7..0000000
--- a/core/vendor/symfony/console/Style/SymfonyStyle.php
+++ /dev/null
@@ -1,406 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Style;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Formatter\OutputFormatter;
-use Symfony\Component\Console\Helper\Helper;
-use Symfony\Component\Console\Helper\ProgressBar;
-use Symfony\Component\Console\Helper\SymfonyQuestionHelper;
-use Symfony\Component\Console\Helper\Table;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\BufferedOutput;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Question\ChoiceQuestion;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-use Symfony\Component\Console\Question\Question;
-
-/**
- * Output decorator helpers for the Symfony Style Guide.
- *
- * @author Kevin Bond <kevinbond@gmail.com>
- */
-class SymfonyStyle extends OutputStyle
-{
-    const MAX_LINE_LENGTH = 120;
-
-    private $input;
-    private $questionHelper;
-    private $progressBar;
-    private $lineLength;
-    private $bufferedOutput;
-
-    /**
-     * @param InputInterface  $input
-     * @param OutputInterface $output
-     */
-    public function __construct(InputInterface $input, OutputInterface $output)
-    {
-        $this->input = $input;
-        $this->bufferedOutput = new BufferedOutput($output->getVerbosity(), false, clone $output->getFormatter());
-        // Windows cmd wraps lines as soon as the terminal width is reached, whether there are following chars or not.
-        $this->lineLength = min($this->getTerminalWidth() - (int) (DIRECTORY_SEPARATOR === '\\'), self::MAX_LINE_LENGTH);
-
-        parent::__construct($output);
-    }
-
-    /**
-     * Formats a message as a block of text.
-     *
-     * @param string|array $messages The message to write in the block
-     * @param string|null  $type     The block type (added in [] on first line)
-     * @param string|null  $style    The style to apply to the whole block
-     * @param string       $prefix   The prefix for the block
-     * @param bool         $padding  Whether to add vertical padding
-     */
-    public function block($messages, $type = null, $style = null, $prefix = ' ', $padding = false)
-    {
-        $this->autoPrependBlock();
-        $messages = is_array($messages) ? array_values($messages) : array($messages);
-        $lines = array();
-
-        // add type
-        if (null !== $type) {
-            $messages[0] = sprintf('[%s] %s', $type, $messages[0]);
-        }
-
-        // wrap and add newlines for each element
-        foreach ($messages as $key => $message) {
-            $message = OutputFormatter::escape($message);
-            $lines = array_merge($lines, explode(PHP_EOL, wordwrap($message, $this->lineLength - Helper::strlen($prefix), PHP_EOL, true)));
-
-            if (count($messages) > 1 && $key < count($messages) - 1) {
-                $lines[] = '';
-            }
-        }
-
-        if ($padding && $this->isDecorated()) {
-            array_unshift($lines, '');
-            $lines[] = '';
-        }
-
-        foreach ($lines as &$line) {
-            $line = sprintf('%s%s', $prefix, $line);
-            $line .= str_repeat(' ', $this->lineLength - Helper::strlenWithoutDecoration($this->getFormatter(), $line));
-
-            if ($style) {
-                $line = sprintf('<%s>%s</>', $style, $line);
-            }
-        }
-
-        $this->writeln($lines);
-        $this->newLine();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function title($message)
-    {
-        $this->autoPrependBlock();
-        $this->writeln(array(
-            sprintf('<comment>%s</>', $message),
-            sprintf('<comment>%s</>', str_repeat('=', strlen($message))),
-        ));
-        $this->newLine();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function section($message)
-    {
-        $this->autoPrependBlock();
-        $this->writeln(array(
-            sprintf('<comment>%s</>', $message),
-            sprintf('<comment>%s</>', str_repeat('-', strlen($message))),
-        ));
-        $this->newLine();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function listing(array $elements)
-    {
-        $this->autoPrependText();
-        $elements = array_map(function ($element) {
-            return sprintf(' * %s', $element);
-        }, $elements);
-
-        $this->writeln($elements);
-        $this->newLine();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function text($message)
-    {
-        $this->autoPrependText();
-
-        if (!is_array($message)) {
-            $this->writeln(sprintf(' // %s', $message));
-
-            return;
-        }
-
-        foreach ($message as $element) {
-            $this->text($element);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function success($message)
-    {
-        $this->block($message, 'OK', 'fg=white;bg=green', ' ', true);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function error($message)
-    {
-        $this->block($message, 'ERROR', 'fg=white;bg=red', ' ', true);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function warning($message)
-    {
-        $this->block($message, 'WARNING', 'fg=white;bg=red', ' ', true);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function note($message)
-    {
-        $this->block($message, 'NOTE', 'fg=yellow', ' ! ');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function caution($message)
-    {
-        $this->block($message, 'CAUTION', 'fg=white;bg=red', ' ! ', true);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function table(array $headers, array $rows)
-    {
-        $headers = array_map(function ($value) { return sprintf('<info>%s</>', $value); }, $headers);
-
-        $table = new Table($this);
-        $table->setHeaders($headers);
-        $table->setRows($rows);
-        $table->setStyle('symfony-style-guide');
-
-        $table->render();
-        $this->newLine();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function ask($question, $default = null, $validator = null)
-    {
-        $question = new Question($question, $default);
-        $question->setValidator($validator);
-
-        return $this->askQuestion($question);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function askHidden($question, $validator = null)
-    {
-        $question = new Question($question);
-
-        $question->setHidden(true);
-        $question->setValidator($validator);
-
-        return $this->askQuestion($question);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function confirm($question, $default = true)
-    {
-        return $this->askQuestion(new ConfirmationQuestion($question, $default));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function choice($question, array $choices, $default = null)
-    {
-        if (null !== $default) {
-            $values = array_flip($choices);
-            $default = $values[$default];
-        }
-
-        return $this->askQuestion(new ChoiceQuestion($question, $choices, $default));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function progressStart($max = 0)
-    {
-        $this->progressBar = $this->createProgressBar($max);
-        $this->progressBar->start();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function progressAdvance($step = 1)
-    {
-        $this->getProgressBar()->advance($step);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function progressFinish()
-    {
-        $this->getProgressBar()->finish();
-        $this->newLine(2);
-        $this->progressBar = null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createProgressBar($max = 0)
-    {
-        $progressBar = parent::createProgressBar($max);
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $progressBar->setEmptyBarCharacter('░'); // light shade character \u2591
-            $progressBar->setProgressCharacter('');
-            $progressBar->setBarCharacter('▓'); // dark shade character \u2593
-        }
-
-        return $progressBar;
-    }
-
-    /**
-     * @param Question $question
-     *
-     * @return string
-     */
-    public function askQuestion(Question $question)
-    {
-        if ($this->input->isInteractive()) {
-            $this->autoPrependBlock();
-        }
-
-        if (!$this->questionHelper) {
-            $this->questionHelper = new SymfonyQuestionHelper();
-        }
-
-        $answer = $this->questionHelper->ask($this->input, $this, $question);
-
-        if ($this->input->isInteractive()) {
-            $this->newLine();
-            $this->bufferedOutput->write("\n");
-        }
-
-        return $answer;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function writeln($messages, $type = self::OUTPUT_NORMAL)
-    {
-        parent::writeln($messages, $type);
-        $this->bufferedOutput->writeln($this->reduceBuffer($messages), $type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)
-    {
-        parent::write($messages, $newline, $type);
-        $this->bufferedOutput->write($this->reduceBuffer($messages), $newline, $type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function newLine($count = 1)
-    {
-        parent::newLine($count);
-        $this->bufferedOutput->write(str_repeat("\n", $count));
-    }
-
-    /**
-     * @return ProgressBar
-     */
-    private function getProgressBar()
-    {
-        if (!$this->progressBar) {
-            throw new \RuntimeException('The ProgressBar is not started.');
-        }
-
-        return $this->progressBar;
-    }
-
-    private function getTerminalWidth()
-    {
-        $application = new Application();
-        $dimensions = $application->getTerminalDimensions();
-
-        return $dimensions[0] ?: self::MAX_LINE_LENGTH;
-    }
-
-    private function autoPrependBlock()
-    {
-        $chars = substr(str_replace(PHP_EOL, "\n", $this->bufferedOutput->fetch()), -2);
-
-        if (!isset($chars[0])) {
-            return $this->newLine(); //empty history, so we should start with a new line.
-        }
-        //Prepend new line for each non LF chars (This means no blank line was output before)
-        $this->newLine(2 - substr_count($chars, "\n"));
-    }
-
-    private function autoPrependText()
-    {
-        $fetched = $this->bufferedOutput->fetch();
-        //Prepend new line if last char isn't EOL:
-        if ("\n" !== substr($fetched, -1)) {
-            $this->newLine();
-        }
-    }
-
-    private function reduceBuffer($messages)
-    {
-        // We need to know if the two last chars are PHP_EOL
-        // Preserve the last 4 chars inserted (PHP_EOL on windows is two chars) in the history buffer
-        return array_map(function ($value) {
-            return substr($value, -4);
-        }, array_merge(array($this->bufferedOutput->fetch()), (array) $messages));
-    }
-}
diff --git a/core/vendor/symfony/console/Tester/ApplicationTester.php b/core/vendor/symfony/console/Tester/ApplicationTester.php
deleted file mode 100644
index da8a19c..0000000
--- a/core/vendor/symfony/console/Tester/ApplicationTester.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tester;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\StreamOutput;
-
-/**
- * Eases the testing of console applications.
- *
- * When testing an application, don't forget to disable the auto exit flag:
- *
- *     $application = new Application();
- *     $application->setAutoExit(false);
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ApplicationTester
-{
-    private $application;
-    private $input;
-    private $output;
-    private $statusCode;
-
-    /**
-     * Constructor.
-     *
-     * @param Application $application An Application instance to test.
-     */
-    public function __construct(Application $application)
-    {
-        $this->application = $application;
-    }
-
-    /**
-     * Executes the application.
-     *
-     * Available options:
-     *
-     *  * interactive: Sets the input interactive flag
-     *  * decorated:   Sets the output decorated flag
-     *  * verbosity:   Sets the output verbosity flag
-     *
-     * @param array $input   An array of arguments and options
-     * @param array $options An array of options
-     *
-     * @return int The command exit code
-     */
-    public function run(array $input, $options = array())
-    {
-        $this->input = new ArrayInput($input);
-        if (isset($options['interactive'])) {
-            $this->input->setInteractive($options['interactive']);
-        }
-
-        $this->output = new StreamOutput(fopen('php://memory', 'w', false));
-        if (isset($options['decorated'])) {
-            $this->output->setDecorated($options['decorated']);
-        }
-        if (isset($options['verbosity'])) {
-            $this->output->setVerbosity($options['verbosity']);
-        }
-
-        return $this->statusCode = $this->application->run($this->input, $this->output);
-    }
-
-    /**
-     * Gets the display returned by the last execution of the application.
-     *
-     * @param bool $normalize Whether to normalize end of lines to \n or not
-     *
-     * @return string The display
-     */
-    public function getDisplay($normalize = false)
-    {
-        rewind($this->output->getStream());
-
-        $display = stream_get_contents($this->output->getStream());
-
-        if ($normalize) {
-            $display = str_replace(PHP_EOL, "\n", $display);
-        }
-
-        return $display;
-    }
-
-    /**
-     * Gets the input instance used by the last execution of the application.
-     *
-     * @return InputInterface The current input instance
-     */
-    public function getInput()
-    {
-        return $this->input;
-    }
-
-    /**
-     * Gets the output instance used by the last execution of the application.
-     *
-     * @return OutputInterface The current output instance
-     */
-    public function getOutput()
-    {
-        return $this->output;
-    }
-
-    /**
-     * Gets the status code returned by the last execution of the application.
-     *
-     * @return int The status code
-     */
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-}
diff --git a/core/vendor/symfony/console/Tester/CommandTester.php b/core/vendor/symfony/console/Tester/CommandTester.php
deleted file mode 100644
index 8d6486e..0000000
--- a/core/vendor/symfony/console/Tester/CommandTester.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tester;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Output\StreamOutput;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Eases the testing of console commands.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class CommandTester
-{
-    private $command;
-    private $input;
-    private $output;
-    private $statusCode;
-
-    /**
-     * Constructor.
-     *
-     * @param Command $command A Command instance to test.
-     */
-    public function __construct(Command $command)
-    {
-        $this->command = $command;
-    }
-
-    /**
-     * Executes the command.
-     *
-     * Available execution options:
-     *
-     *  * interactive: Sets the input interactive flag
-     *  * decorated:   Sets the output decorated flag
-     *  * verbosity:   Sets the output verbosity flag
-     *
-     * @param array $input   An array of command arguments and options
-     * @param array $options An array of execution options
-     *
-     * @return int The command exit code
-     */
-    public function execute(array $input, array $options = array())
-    {
-        // set the command name automatically if the application requires
-        // this argument and no command name was passed
-        if (!isset($input['command'])
-            && (null !== $application = $this->command->getApplication())
-            && $application->getDefinition()->hasArgument('command')
-        ) {
-            $input = array_merge(array('command' => $this->command->getName()), $input);
-        }
-
-        $this->input = new ArrayInput($input);
-        if (isset($options['interactive'])) {
-            $this->input->setInteractive($options['interactive']);
-        }
-
-        $this->output = new StreamOutput(fopen('php://memory', 'w', false));
-        if (isset($options['decorated'])) {
-            $this->output->setDecorated($options['decorated']);
-        }
-        if (isset($options['verbosity'])) {
-            $this->output->setVerbosity($options['verbosity']);
-        }
-
-        return $this->statusCode = $this->command->run($this->input, $this->output);
-    }
-
-    /**
-     * Gets the display returned by the last execution of the command.
-     *
-     * @param bool $normalize Whether to normalize end of lines to \n or not
-     *
-     * @return string The display
-     */
-    public function getDisplay($normalize = false)
-    {
-        rewind($this->output->getStream());
-
-        $display = stream_get_contents($this->output->getStream());
-
-        if ($normalize) {
-            $display = str_replace(PHP_EOL, "\n", $display);
-        }
-
-        return $display;
-    }
-
-    /**
-     * Gets the input instance used by the last execution of the command.
-     *
-     * @return InputInterface The current input instance
-     */
-    public function getInput()
-    {
-        return $this->input;
-    }
-
-    /**
-     * Gets the output instance used by the last execution of the command.
-     *
-     * @return OutputInterface The current output instance
-     */
-    public function getOutput()
-    {
-        return $this->output;
-    }
-
-    /**
-     * Gets the status code returned by the last execution of the application.
-     *
-     * @return int The status code
-     */
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/ApplicationTest.php b/core/vendor/symfony/console/Tests/ApplicationTest.php
deleted file mode 100644
index dfee232..0000000
--- a/core/vendor/symfony/console/Tests/ApplicationTest.php
+++ /dev/null
@@ -1,1056 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Helper\FormatterHelper;
-use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\NullOutput;
-use Symfony\Component\Console\Output\Output;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\StreamOutput;
-use Symfony\Component\Console\Tester\ApplicationTester;
-use Symfony\Component\Console\Event\ConsoleCommandEvent;
-use Symfony\Component\Console\Event\ConsoleExceptionEvent;
-use Symfony\Component\Console\Event\ConsoleTerminateEvent;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class ApplicationTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/Fixtures/');
-        require_once self::$fixturesPath.'/FooCommand.php';
-        require_once self::$fixturesPath.'/Foo1Command.php';
-        require_once self::$fixturesPath.'/Foo2Command.php';
-        require_once self::$fixturesPath.'/Foo3Command.php';
-        require_once self::$fixturesPath.'/Foo4Command.php';
-        require_once self::$fixturesPath.'/Foo5Command.php';
-        require_once self::$fixturesPath.'/FoobarCommand.php';
-        require_once self::$fixturesPath.'/BarBucCommand.php';
-        require_once self::$fixturesPath.'/FooSubnamespaced1Command.php';
-        require_once self::$fixturesPath.'/FooSubnamespaced2Command.php';
-    }
-
-    protected function normalizeLineBreaks($text)
-    {
-        return str_replace(PHP_EOL, "\n", $text);
-    }
-
-    /**
-     * Replaces the dynamic placeholders of the command help text with a static version.
-     * The placeholder %command.full_name% includes the script path that is not predictable
-     * and can not be tested against.
-     */
-    protected function ensureStaticCommandHelp(Application $application)
-    {
-        foreach ($application->all() as $command) {
-            $command->setHelp(str_replace('%command.full_name%', 'app/console %command.name%', $command->getHelp()));
-        }
-    }
-
-    public function testConstructor()
-    {
-        $application = new Application('foo', 'bar');
-        $this->assertEquals('foo', $application->getName(), '__construct() takes the application name as its first argument');
-        $this->assertEquals('bar', $application->getVersion(), '__construct() takes the application version as its second argument');
-        $this->assertEquals(array('help', 'list'), array_keys($application->all()), '__construct() registered the help and list commands by default');
-    }
-
-    public function testSetGetName()
-    {
-        $application = new Application();
-        $application->setName('foo');
-        $this->assertEquals('foo', $application->getName(), '->setName() sets the name of the application');
-    }
-
-    public function testSetGetVersion()
-    {
-        $application = new Application();
-        $application->setVersion('bar');
-        $this->assertEquals('bar', $application->getVersion(), '->setVersion() sets the version of the application');
-    }
-
-    public function testGetLongVersion()
-    {
-        $application = new Application('foo', 'bar');
-        $this->assertEquals('<info>foo</info> version <comment>bar</comment>', $application->getLongVersion(), '->getLongVersion() returns the long version of the application');
-    }
-
-    public function testHelp()
-    {
-        $application = new Application();
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_gethelp.txt', $this->normalizeLineBreaks($application->getHelp()), '->getHelp() returns a help message');
-    }
-
-    public function testAll()
-    {
-        $application = new Application();
-        $commands = $application->all();
-        $this->assertInstanceOf('Symfony\\Component\\Console\\Command\\HelpCommand', $commands['help'], '->all() returns the registered commands');
-
-        $application->add(new \FooCommand());
-        $commands = $application->all('foo');
-        $this->assertCount(1, $commands, '->all() takes a namespace as its first argument');
-    }
-
-    public function testRegister()
-    {
-        $application = new Application();
-        $command = $application->register('foo');
-        $this->assertEquals('foo', $command->getName(), '->register() registers a new command');
-    }
-
-    public function testAdd()
-    {
-        $application = new Application();
-        $application->add($foo = new \FooCommand());
-        $commands = $application->all();
-        $this->assertEquals($foo, $commands['foo:bar'], '->add() registers a command');
-
-        $application = new Application();
-        $application->addCommands(array($foo = new \FooCommand(), $foo1 = new \Foo1Command()));
-        $commands = $application->all();
-        $this->assertEquals(array($foo, $foo1), array($commands['foo:bar'], $commands['foo:bar1']), '->addCommands() registers an array of commands');
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Command class "Foo5Command" is not correctly initialized. You probably forgot to call the parent constructor.
-     */
-    public function testAddCommandWithEmptyConstructor()
-    {
-        $application = new Application();
-        $application->add(new \Foo5Command());
-    }
-
-    public function testHasGet()
-    {
-        $application = new Application();
-        $this->assertTrue($application->has('list'), '->has() returns true if a named command is registered');
-        $this->assertFalse($application->has('afoobar'), '->has() returns false if a named command is not registered');
-
-        $application->add($foo = new \FooCommand());
-        $this->assertTrue($application->has('afoobar'), '->has() returns true if an alias is registered');
-        $this->assertEquals($foo, $application->get('foo:bar'), '->get() returns a command by name');
-        $this->assertEquals($foo, $application->get('afoobar'), '->get() returns a command by alias');
-
-        $application = new Application();
-        $application->add($foo = new \FooCommand());
-        // simulate --help
-        $r = new \ReflectionObject($application);
-        $p = $r->getProperty('wantHelps');
-        $p->setAccessible(true);
-        $p->setValue($application, true);
-        $command = $application->get('foo:bar');
-        $this->assertInstanceOf('Symfony\Component\Console\Command\HelpCommand', $command, '->get() returns the help command if --help is provided as the input');
-    }
-
-    public function testSilentHelp()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array('-h' => true, '-q' => true), array('decorated' => false));
-
-        $this->assertEmpty($tester->getDisplay(true));
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The command "foofoo" does not exist.
-     */
-    public function testGetInvalidCommand()
-    {
-        $application = new Application();
-        $application->get('foofoo');
-    }
-
-    public function testGetNamespaces()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $application->add(new \Foo1Command());
-        $this->assertEquals(array('foo'), $application->getNamespaces(), '->getNamespaces() returns an array of unique used namespaces');
-    }
-
-    public function testFindNamespace()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $this->assertEquals('foo', $application->findNamespace('foo'), '->findNamespace() returns the given namespace if it exists');
-        $this->assertEquals('foo', $application->findNamespace('f'), '->findNamespace() finds a namespace given an abbreviation');
-        $application->add(new \Foo2Command());
-        $this->assertEquals('foo', $application->findNamespace('foo'), '->findNamespace() returns the given namespace if it exists');
-    }
-
-    public function testFindNamespaceWithSubnamespaces()
-    {
-        $application = new Application();
-        $application->add(new \FooSubnamespaced1Command());
-        $application->add(new \FooSubnamespaced2Command());
-        $this->assertEquals('foo', $application->findNamespace('foo'), '->findNamespace() returns commands even if the commands are only contained in subnamespaces');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The namespace "f" is ambiguous (foo, foo1).
-     */
-    public function testFindAmbiguousNamespace()
-    {
-        $application = new Application();
-        $application->add(new \BarBucCommand());
-        $application->add(new \FooCommand());
-        $application->add(new \Foo2Command());
-        $application->findNamespace('f');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage There are no commands defined in the "bar" namespace.
-     */
-    public function testFindInvalidNamespace()
-    {
-        $application = new Application();
-        $application->findNamespace('bar');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage Command "foo1" is not defined
-     */
-    public function testFindUniqueNameButNamespaceName()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $application->add(new \Foo1Command());
-        $application->add(new \Foo2Command());
-
-        $application->find($commandName = 'foo1');
-    }
-
-    public function testFind()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-
-        $this->assertInstanceOf('FooCommand', $application->find('foo:bar'), '->find() returns a command if its name exists');
-        $this->assertInstanceOf('Symfony\Component\Console\Command\HelpCommand', $application->find('h'), '->find() returns a command if its name exists');
-        $this->assertInstanceOf('FooCommand', $application->find('f:bar'), '->find() returns a command if the abbreviation for the namespace exists');
-        $this->assertInstanceOf('FooCommand', $application->find('f:b'), '->find() returns a command if the abbreviation for the namespace and the command name exist');
-        $this->assertInstanceOf('FooCommand', $application->find('a'), '->find() returns a command if the abbreviation exists for an alias');
-    }
-
-    /**
-     * @dataProvider provideAmbiguousAbbreviations
-     */
-    public function testFindWithAmbiguousAbbreviations($abbreviation, $expectedExceptionMessage)
-    {
-        $this->setExpectedException('InvalidArgumentException', $expectedExceptionMessage);
-
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $application->add(new \Foo1Command());
-        $application->add(new \Foo2Command());
-
-        $application->find($abbreviation);
-    }
-
-    public function provideAmbiguousAbbreviations()
-    {
-        return array(
-            array('f', 'Command "f" is not defined.'),
-            array('a', 'Command "a" is ambiguous (afoobar, afoobar1 and 1 more).'),
-            array('foo:b', 'Command "foo:b" is ambiguous (foo:bar, foo:bar1 and 1 more).'),
-        );
-    }
-
-    public function testFindCommandEqualNamespace()
-    {
-        $application = new Application();
-        $application->add(new \Foo3Command());
-        $application->add(new \Foo4Command());
-
-        $this->assertInstanceOf('Foo3Command', $application->find('foo3:bar'), '->find() returns the good command even if a namespace has same name');
-        $this->assertInstanceOf('Foo4Command', $application->find('foo3:bar:toh'), '->find() returns a command even if its namespace equals another command name');
-    }
-
-    public function testFindCommandWithAmbiguousNamespacesButUniqueName()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $application->add(new \FoobarCommand());
-
-        $this->assertInstanceOf('FoobarCommand', $application->find('f:f'));
-    }
-
-    public function testFindCommandWithMissingNamespace()
-    {
-        $application = new Application();
-        $application->add(new \Foo4Command());
-
-        $this->assertInstanceOf('Foo4Command', $application->find('f::t'));
-    }
-
-    /**
-     * @dataProvider             provideInvalidCommandNamesSingle
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage Did you mean this
-     */
-    public function testFindAlternativeExceptionMessageSingle($name)
-    {
-        $application = new Application();
-        $application->add(new \Foo3Command());
-        $application->find($name);
-    }
-
-    public function provideInvalidCommandNamesSingle()
-    {
-        return array(
-            array('foo3:baR'),
-            array('foO3:bar'),
-        );
-    }
-
-    public function testFindAlternativeExceptionMessageMultiple()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $application->add(new \Foo1Command());
-        $application->add(new \Foo2Command());
-
-        // Command + plural
-        try {
-            $application->find('foo:baR');
-            $this->fail('->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-            $this->assertRegExp('/Did you mean one of these/', $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-            $this->assertRegExp('/foo1:bar/', $e->getMessage());
-            $this->assertRegExp('/foo:bar/', $e->getMessage());
-        }
-
-        // Namespace + plural
-        try {
-            $application->find('foo2:bar');
-            $this->fail('->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-            $this->assertRegExp('/Did you mean one of these/', $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-            $this->assertRegExp('/foo1/', $e->getMessage());
-        }
-
-        $application->add(new \Foo3Command());
-        $application->add(new \Foo4Command());
-
-        // Subnamespace + plural
-        try {
-            $a = $application->find('foo3:');
-            $this->fail('->find() should throw an \InvalidArgumentException if a command is ambiguous because of a subnamespace, with alternatives');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e);
-            $this->assertRegExp('/foo3:bar/', $e->getMessage());
-            $this->assertRegExp('/foo3:bar:toh/', $e->getMessage());
-        }
-    }
-
-    public function testFindAlternativeCommands()
-    {
-        $application = new Application();
-
-        $application->add(new \FooCommand());
-        $application->add(new \Foo1Command());
-        $application->add(new \Foo2Command());
-
-        try {
-            $application->find($commandName = 'Unknown command');
-            $this->fail('->find() throws an \InvalidArgumentException if command does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->find() throws an \InvalidArgumentException if command does not exist');
-            $this->assertEquals(sprintf('Command "%s" is not defined.', $commandName), $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, without alternatives');
-        }
-
-        // Test if "bar1" command throw an "\InvalidArgumentException" and does not contain
-        // "foo:bar" as alternative because "bar1" is too far from "foo:bar"
-        try {
-            $application->find($commandName = 'bar1');
-            $this->fail('->find() throws an \InvalidArgumentException if command does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->find() throws an \InvalidArgumentException if command does not exist');
-            $this->assertRegExp(sprintf('/Command "%s" is not defined./', $commandName), $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, with alternatives');
-            $this->assertRegExp('/afoobar1/', $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, with alternative : "afoobar1"');
-            $this->assertRegExp('/foo:bar1/', $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, with alternative : "foo:bar1"');
-            $this->assertNotRegExp('/foo:bar(?>!1)/', $e->getMessage(), '->find() throws an \InvalidArgumentException if command does not exist, without "foo:bar" alternative');
-        }
-    }
-
-    public function testFindAlternativeCommandsWithAnAlias()
-    {
-        $fooCommand = new \FooCommand();
-        $fooCommand->setAliases(array('foo2'));
-
-        $application = new Application();
-        $application->add($fooCommand);
-
-        $result = $application->find('foo');
-
-        $this->assertSame($fooCommand, $result);
-    }
-
-    public function testFindAlternativeNamespace()
-    {
-        $application = new Application();
-
-        $application->add(new \FooCommand());
-        $application->add(new \Foo1Command());
-        $application->add(new \Foo2Command());
-        $application->add(new \foo3Command());
-
-        try {
-            $application->find('Unknown-namespace:Unknown-command');
-            $this->fail('->find() throws an \InvalidArgumentException if namespace does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->find() throws an \InvalidArgumentException if namespace does not exist');
-            $this->assertEquals('There are no commands defined in the "Unknown-namespace" namespace.', $e->getMessage(), '->find() throws an \InvalidArgumentException if namespace does not exist, without alternatives');
-        }
-
-        try {
-            $application->find('foo2:command');
-            $this->fail('->find() throws an \InvalidArgumentException if namespace does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->find() throws an \InvalidArgumentException if namespace does not exist');
-            $this->assertRegExp('/There are no commands defined in the "foo2" namespace./', $e->getMessage(), '->find() throws an \InvalidArgumentException if namespace does not exist, with alternative');
-            $this->assertRegExp('/foo/', $e->getMessage(), '->find() throws an \InvalidArgumentException if namespace does not exist, with alternative : "foo"');
-            $this->assertRegExp('/foo1/', $e->getMessage(), '->find() throws an \InvalidArgumentException if namespace does not exist, with alternative : "foo1"');
-            $this->assertRegExp('/foo3/', $e->getMessage(), '->find() throws an \InvalidArgumentException if namespace does not exist, with alternative : "foo3"');
-        }
-    }
-
-    public function testFindNamespaceDoesNotFailOnDeepSimilarNamespaces()
-    {
-        $application = $this->getMock('Symfony\Component\Console\Application', array('getNamespaces'));
-        $application->expects($this->once())
-            ->method('getNamespaces')
-            ->will($this->returnValue(array('foo:sublong', 'bar:sub')));
-
-        $this->assertEquals('foo:sublong', $application->findNamespace('f:sub'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Command "foo::bar" is not defined.
-     */
-    public function testFindWithDoubleColonInNameThrowsException()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $application->add(new \Foo4Command());
-        $application->find('foo::bar');
-    }
-
-    public function testSetCatchExceptions()
-    {
-        $application = $this->getMock('Symfony\Component\Console\Application', array('getTerminalWidth'));
-        $application->setAutoExit(false);
-        $application->expects($this->any())
-            ->method('getTerminalWidth')
-            ->will($this->returnValue(120));
-        $tester = new ApplicationTester($application);
-
-        $application->setCatchExceptions(true);
-        $tester->run(array('command' => 'foo'), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception1.txt', $tester->getDisplay(true), '->setCatchExceptions() sets the catch exception flag');
-
-        $application->setCatchExceptions(false);
-        try {
-            $tester->run(array('command' => 'foo'), array('decorated' => false));
-            $this->fail('->setCatchExceptions() sets the catch exception flag');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\Exception', $e, '->setCatchExceptions() sets the catch exception flag');
-            $this->assertEquals('Command "foo" is not defined.', $e->getMessage(), '->setCatchExceptions() sets the catch exception flag');
-        }
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAsText()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $this->ensureStaticCommandHelp($application);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_astext1.txt', $this->normalizeLineBreaks($application->asText()), '->asText() returns a text representation of the application');
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_astext2.txt', $this->normalizeLineBreaks($application->asText('foo')), '->asText() returns a text representation of the application');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAsXml()
-    {
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $this->ensureStaticCommandHelp($application);
-        $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/application_asxml1.txt', $application->asXml(), '->asXml() returns an XML representation of the application');
-        $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/application_asxml2.txt', $application->asXml('foo'), '->asXml() returns an XML representation of the application');
-    }
-
-    public function testRenderException()
-    {
-        $application = $this->getMock('Symfony\Component\Console\Application', array('getTerminalWidth'));
-        $application->setAutoExit(false);
-        $application->expects($this->any())
-            ->method('getTerminalWidth')
-            ->will($this->returnValue(120));
-        $tester = new ApplicationTester($application);
-
-        $tester->run(array('command' => 'foo'), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception1.txt', $tester->getDisplay(true), '->renderException() renders a pretty exception');
-
-        $tester->run(array('command' => 'foo'), array('decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));
-        $this->assertContains('Exception trace', $tester->getDisplay(), '->renderException() renders a pretty exception with a stack trace when verbosity is verbose');
-
-        $tester->run(array('command' => 'list', '--foo' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception2.txt', $tester->getDisplay(true), '->renderException() renders the command synopsis when an exception occurs in the context of a command');
-
-        $application->add(new \Foo3Command());
-        $tester = new ApplicationTester($application);
-        $tester->run(array('command' => 'foo3:bar'), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception3.txt', $tester->getDisplay(true), '->renderException() renders a pretty exceptions with previous exceptions');
-
-        $tester->run(array('command' => 'foo3:bar'), array('decorated' => true));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception3decorated.txt', $tester->getDisplay(true), '->renderException() renders a pretty exceptions with previous exceptions');
-
-        $application = $this->getMock('Symfony\Component\Console\Application', array('getTerminalWidth'));
-        $application->setAutoExit(false);
-        $application->expects($this->any())
-            ->method('getTerminalWidth')
-            ->will($this->returnValue(32));
-        $tester = new ApplicationTester($application);
-
-        $tester->run(array('command' => 'foo'), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception4.txt', $tester->getDisplay(true), '->renderException() wraps messages when they are bigger than the terminal');
-    }
-
-    public function testRenderExceptionWithDoubleWidthCharacters()
-    {
-        $application = $this->getMock('Symfony\Component\Console\Application', array('getTerminalWidth'));
-        $application->setAutoExit(false);
-        $application->expects($this->any())
-            ->method('getTerminalWidth')
-            ->will($this->returnValue(120));
-        $application->register('foo')->setCode(function () {
-            throw new \Exception('エラーメッセージ');
-        });
-        $tester = new ApplicationTester($application);
-
-        $tester->run(array('command' => 'foo'), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_doublewidth1.txt', $tester->getDisplay(true), '->renderException() renders a pretty exceptions with previous exceptions');
-
-        $tester->run(array('command' => 'foo'), array('decorated' => true));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_doublewidth1decorated.txt', $tester->getDisplay(true), '->renderException() renders a pretty exceptions with previous exceptions');
-
-        $application = $this->getMock('Symfony\Component\Console\Application', array('getTerminalWidth'));
-        $application->setAutoExit(false);
-        $application->expects($this->any())
-            ->method('getTerminalWidth')
-            ->will($this->returnValue(32));
-        $application->register('foo')->setCode(function () {
-            throw new \Exception('コマンドの実行中にエラーが発生しました。');
-        });
-        $tester = new ApplicationTester($application);
-        $tester->run(array('command' => 'foo'), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_doublewidth2.txt', $tester->getDisplay(true), '->renderException() wraps messages when they are bigger than the terminal');
-    }
-
-    public function testRun()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-        $application->add($command = new \Foo1Command());
-        $_SERVER['argv'] = array('cli.php', 'foo:bar1');
-
-        ob_start();
-        $application->run();
-        ob_end_clean();
-
-        $this->assertInstanceOf('Symfony\Component\Console\Input\ArgvInput', $command->input, '->run() creates an ArgvInput by default if none is given');
-        $this->assertInstanceOf('Symfony\Component\Console\Output\ConsoleOutput', $command->output, '->run() creates a ConsoleOutput by default if none is given');
-
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $this->ensureStaticCommandHelp($application);
-        $tester = new ApplicationTester($application);
-
-        $tester->run(array(), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run1.txt', $tester->getDisplay(true), '->run() runs the list command if no argument is passed');
-
-        $tester->run(array('--help' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run2.txt', $tester->getDisplay(true), '->run() runs the help command if --help is passed');
-
-        $tester->run(array('-h' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run2.txt', $tester->getDisplay(true), '->run() runs the help command if -h is passed');
-
-        $tester->run(array('command' => 'list', '--help' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run3.txt', $tester->getDisplay(true), '->run() displays the help if --help is passed');
-
-        $tester->run(array('command' => 'list', '-h' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run3.txt', $tester->getDisplay(true), '->run() displays the help if -h is passed');
-
-        $tester->run(array('--ansi' => true));
-        $this->assertTrue($tester->getOutput()->isDecorated(), '->run() forces color output if --ansi is passed');
-
-        $tester->run(array('--no-ansi' => true));
-        $this->assertFalse($tester->getOutput()->isDecorated(), '->run() forces color output to be disabled if --no-ansi is passed');
-
-        $tester->run(array('--version' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run4.txt', $tester->getDisplay(true), '->run() displays the program version if --version is passed');
-
-        $tester->run(array('-V' => true), array('decorated' => false));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/application_run4.txt', $tester->getDisplay(true), '->run() displays the program version if -v is passed');
-
-        $tester->run(array('command' => 'list', '--quiet' => true));
-        $this->assertSame('', $tester->getDisplay(), '->run() removes all output if --quiet is passed');
-
-        $tester->run(array('command' => 'list', '-q' => true));
-        $this->assertSame('', $tester->getDisplay(), '->run() removes all output if -q is passed');
-
-        $tester->run(array('command' => 'list', '--verbose' => true));
-        $this->assertSame(Output::VERBOSITY_VERBOSE, $tester->getOutput()->getVerbosity(), '->run() sets the output to verbose if --verbose is passed');
-
-        $tester->run(array('command' => 'list', '--verbose' => 1));
-        $this->assertSame(Output::VERBOSITY_VERBOSE, $tester->getOutput()->getVerbosity(), '->run() sets the output to verbose if --verbose=1 is passed');
-
-        $tester->run(array('command' => 'list', '--verbose' => 2));
-        $this->assertSame(Output::VERBOSITY_VERY_VERBOSE, $tester->getOutput()->getVerbosity(), '->run() sets the output to very verbose if --verbose=2 is passed');
-
-        $tester->run(array('command' => 'list', '--verbose' => 3));
-        $this->assertSame(Output::VERBOSITY_DEBUG, $tester->getOutput()->getVerbosity(), '->run() sets the output to debug if --verbose=3 is passed');
-
-        $tester->run(array('command' => 'list', '--verbose' => 4));
-        $this->assertSame(Output::VERBOSITY_VERBOSE, $tester->getOutput()->getVerbosity(), '->run() sets the output to verbose if unknown --verbose level is passed');
-
-        $tester->run(array('command' => 'list', '-v' => true));
-        $this->assertSame(Output::VERBOSITY_VERBOSE, $tester->getOutput()->getVerbosity(), '->run() sets the output to verbose if -v is passed');
-
-        $tester->run(array('command' => 'list', '-vv' => true));
-        $this->assertSame(Output::VERBOSITY_VERY_VERBOSE, $tester->getOutput()->getVerbosity(), '->run() sets the output to verbose if -v is passed');
-
-        $tester->run(array('command' => 'list', '-vvv' => true));
-        $this->assertSame(Output::VERBOSITY_DEBUG, $tester->getOutput()->getVerbosity(), '->run() sets the output to verbose if -v is passed');
-
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-        $application->add(new \FooCommand());
-        $tester = new ApplicationTester($application);
-
-        $tester->run(array('command' => 'foo:bar', '--no-interaction' => true), array('decorated' => false));
-        $this->assertSame('called'.PHP_EOL, $tester->getDisplay(), '->run() does not call interact() if --no-interaction is passed');
-
-        $tester->run(array('command' => 'foo:bar', '-n' => true), array('decorated' => false));
-        $this->assertSame('called'.PHP_EOL, $tester->getDisplay(), '->run() does not call interact() if -n is passed');
-    }
-
-    /**
-     * Issue #9285.
-     *
-     * If the "verbose" option is just before an argument in ArgvInput,
-     * an argument value should not be treated as verbosity value.
-     * This test will fail with "Not enough arguments." if broken
-     */
-    public function testVerboseValueNotBreakArguments()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-        $application->add(new \FooCommand());
-
-        $output = new StreamOutput(fopen('php://memory', 'w', false));
-
-        $input = new ArgvInput(array('cli.php', '-v', 'foo:bar'));
-        $application->run($input, $output);
-
-        $input = new ArgvInput(array('cli.php', '--verbose', 'foo:bar'));
-        $application->run($input, $output);
-    }
-
-    public function testRunReturnsIntegerExitCode()
-    {
-        $exception = new \Exception('', 4);
-
-        $application = $this->getMock('Symfony\Component\Console\Application', array('doRun'));
-        $application->setAutoExit(false);
-        $application->expects($this->once())
-             ->method('doRun')
-             ->will($this->throwException($exception));
-
-        $exitCode = $application->run(new ArrayInput(array()), new NullOutput());
-
-        $this->assertSame(4, $exitCode, '->run() returns integer exit code extracted from raised exception');
-    }
-
-    public function testRunReturnsExitCodeOneForExceptionCodeZero()
-    {
-        $exception = new \Exception('', 0);
-
-        $application = $this->getMock('Symfony\Component\Console\Application', array('doRun'));
-        $application->setAutoExit(false);
-        $application->expects($this->once())
-             ->method('doRun')
-             ->will($this->throwException($exception));
-
-        $exitCode = $application->run(new ArrayInput(array()), new NullOutput());
-
-        $this->assertSame(1, $exitCode, '->run() returns exit code 1 when exception code is 0');
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @dataProvider getAddingAlreadySetDefinitionElementData
-     */
-    public function testAddingAlreadySetDefinitionElementData($def)
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-        $application
-            ->register('foo')
-            ->setDefinition(array($def))
-            ->setCode(function (InputInterface $input, OutputInterface $output) {})
-        ;
-
-        $input = new ArrayInput(array('command' => 'foo'));
-        $output = new NullOutput();
-        $application->run($input, $output);
-    }
-
-    public function getAddingAlreadySetDefinitionElementData()
-    {
-        return array(
-            array(new InputArgument('command', InputArgument::REQUIRED)),
-            array(new InputOption('quiet', '', InputOption::VALUE_NONE)),
-            array(new InputOption('query', 'q', InputOption::VALUE_NONE)),
-        );
-    }
-
-    public function testGetDefaultHelperSetReturnsDefaultValues()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $helperSet = $application->getHelperSet();
-
-        $this->assertTrue($helperSet->has('formatter'));
-        $this->assertTrue($helperSet->has('dialog'));
-        $this->assertTrue($helperSet->has('progress'));
-    }
-
-    public function testAddingSingleHelperSetOverwritesDefaultValues()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $application->setHelperSet(new HelperSet(array(new FormatterHelper())));
-
-        $helperSet = $application->getHelperSet();
-
-        $this->assertTrue($helperSet->has('formatter'));
-
-        // no other default helper set should be returned
-        $this->assertFalse($helperSet->has('dialog'));
-        $this->assertFalse($helperSet->has('progress'));
-    }
-
-    public function testOverwritingDefaultHelperSetOverwritesDefaultValues()
-    {
-        $application = new CustomApplication();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $application->setHelperSet(new HelperSet(array(new FormatterHelper())));
-
-        $helperSet = $application->getHelperSet();
-
-        $this->assertTrue($helperSet->has('formatter'));
-
-        // no other default helper set should be returned
-        $this->assertFalse($helperSet->has('dialog'));
-        $this->assertFalse($helperSet->has('progress'));
-    }
-
-    public function testGetDefaultInputDefinitionReturnsDefaultValues()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $inputDefinition = $application->getDefinition();
-
-        $this->assertTrue($inputDefinition->hasArgument('command'));
-
-        $this->assertTrue($inputDefinition->hasOption('help'));
-        $this->assertTrue($inputDefinition->hasOption('quiet'));
-        $this->assertTrue($inputDefinition->hasOption('verbose'));
-        $this->assertTrue($inputDefinition->hasOption('version'));
-        $this->assertTrue($inputDefinition->hasOption('ansi'));
-        $this->assertTrue($inputDefinition->hasOption('no-ansi'));
-        $this->assertTrue($inputDefinition->hasOption('no-interaction'));
-    }
-
-    public function testOverwritingDefaultInputDefinitionOverwritesDefaultValues()
-    {
-        $application = new CustomApplication();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $inputDefinition = $application->getDefinition();
-
-        // check whether the default arguments and options are not returned any more
-        $this->assertFalse($inputDefinition->hasArgument('command'));
-
-        $this->assertFalse($inputDefinition->hasOption('help'));
-        $this->assertFalse($inputDefinition->hasOption('quiet'));
-        $this->assertFalse($inputDefinition->hasOption('verbose'));
-        $this->assertFalse($inputDefinition->hasOption('version'));
-        $this->assertFalse($inputDefinition->hasOption('ansi'));
-        $this->assertFalse($inputDefinition->hasOption('no-ansi'));
-        $this->assertFalse($inputDefinition->hasOption('no-interaction'));
-
-        $this->assertTrue($inputDefinition->hasOption('custom'));
-    }
-
-    public function testSettingCustomInputDefinitionOverwritesDefaultValues()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $application->setDefinition(new InputDefinition(array(new InputOption('--custom', '-c', InputOption::VALUE_NONE, 'Set the custom input definition.'))));
-
-        $inputDefinition = $application->getDefinition();
-
-        // check whether the default arguments and options are not returned any more
-        $this->assertFalse($inputDefinition->hasArgument('command'));
-
-        $this->assertFalse($inputDefinition->hasOption('help'));
-        $this->assertFalse($inputDefinition->hasOption('quiet'));
-        $this->assertFalse($inputDefinition->hasOption('verbose'));
-        $this->assertFalse($inputDefinition->hasOption('version'));
-        $this->assertFalse($inputDefinition->hasOption('ansi'));
-        $this->assertFalse($inputDefinition->hasOption('no-ansi'));
-        $this->assertFalse($inputDefinition->hasOption('no-interaction'));
-
-        $this->assertTrue($inputDefinition->hasOption('custom'));
-    }
-
-    public function testRunWithDispatcher()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->setDispatcher($this->getDispatcher());
-
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
-            $output->write('foo.');
-        });
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array('command' => 'foo'));
-        $this->assertEquals('before.foo.after.', $tester->getDisplay());
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage caught
-     */
-    public function testRunWithExceptionAndDispatcher()
-    {
-        $application = new Application();
-        $application->setDispatcher($this->getDispatcher());
-        $application->setAutoExit(false);
-        $application->setCatchExceptions(false);
-
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
-            throw new \RuntimeException('foo');
-        });
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array('command' => 'foo'));
-    }
-
-    public function testRunDispatchesAllEventsWithException()
-    {
-        $application = new Application();
-        $application->setDispatcher($this->getDispatcher());
-        $application->setAutoExit(false);
-
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
-            $output->write('foo.');
-
-            throw new \RuntimeException('foo');
-        });
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array('command' => 'foo'));
-        $this->assertContains('before.foo.after.caught.', $tester->getDisplay());
-    }
-
-    public function testRunWithDispatcherSkippingCommand()
-    {
-        $application = new Application();
-        $application->setDispatcher($this->getDispatcher(true));
-        $application->setAutoExit(false);
-
-        $application->register('foo')->setCode(function (InputInterface $input, OutputInterface $output) {
-            $output->write('foo.');
-        });
-
-        $tester = new ApplicationTester($application);
-        $exitCode = $tester->run(array('command' => 'foo'));
-        $this->assertContains('before.after.', $tester->getDisplay());
-        $this->assertEquals(ConsoleCommandEvent::RETURN_CODE_DISABLED, $exitCode);
-    }
-
-    public function testTerminalDimensions()
-    {
-        $application = new Application();
-        $originalDimensions = $application->getTerminalDimensions();
-        $this->assertCount(2, $originalDimensions);
-
-        $width = 80;
-        if ($originalDimensions[0] == $width) {
-            $width = 100;
-        }
-
-        $application->setTerminalDimensions($width, 80);
-        $this->assertSame(array($width, 80), $application->getTerminalDimensions());
-    }
-
-    protected function getDispatcher($skipCommand = false)
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener('console.command', function (ConsoleCommandEvent $event) use ($skipCommand) {
-            $event->getOutput()->write('before.');
-
-            if ($skipCommand) {
-                $event->disableCommand();
-            }
-        });
-        $dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use ($skipCommand) {
-            $event->getOutput()->write('after.');
-
-            if (!$skipCommand) {
-                $event->setExitCode(113);
-            }
-        });
-        $dispatcher->addListener('console.exception', function (ConsoleExceptionEvent $event) {
-            $event->getOutput()->writeln('caught.');
-
-            $event->setException(new \LogicException('caught.', $event->getExitCode(), $event->getException()));
-        });
-
-        return $dispatcher;
-    }
-
-    public function testSetRunCustomDefaultCommand()
-    {
-        $command = new \FooCommand();
-
-        $application = new Application();
-        $application->setAutoExit(false);
-        $application->add($command);
-        $application->setDefaultCommand($command->getName());
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array());
-        $this->assertEquals('interact called'.PHP_EOL.'called'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
-
-        $application = new CustomDefaultCommandApplication();
-        $application->setAutoExit(false);
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array());
-
-        $this->assertEquals('interact called'.PHP_EOL.'called'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
-    }
-
-    public function testCanCheckIfTerminalIsInteractive()
-    {
-        if (!function_exists('posix_isatty')) {
-            $this->markTestSkipped('posix_isatty function is required');
-        }
-
-        $application = new CustomDefaultCommandApplication();
-        $application->setAutoExit(false);
-
-        $tester = new ApplicationTester($application);
-        $tester->run(array('command' => 'help'));
-
-        $this->assertFalse($tester->getInput()->hasParameterOption(array('--no-interaction', '-n')));
-
-        $inputStream = $application->getHelperSet()->get('question')->getInputStream();
-        $this->assertEquals($tester->getInput()->isInteractive(), @posix_isatty($inputStream));
-    }
-}
-
-class CustomApplication extends Application
-{
-    /**
-     * Overwrites the default input definition.
-     *
-     * @return InputDefinition An InputDefinition instance
-     */
-    protected function getDefaultInputDefinition()
-    {
-        return new InputDefinition(array(new InputOption('--custom', '-c', InputOption::VALUE_NONE, 'Set the custom input definition.')));
-    }
-
-    /**
-     * Gets the default helper set with the helpers that should always be available.
-     *
-     * @return HelperSet A HelperSet instance
-     */
-    protected function getDefaultHelperSet()
-    {
-        return new HelperSet(array(new FormatterHelper()));
-    }
-}
-
-class CustomDefaultCommandApplication extends Application
-{
-    /**
-     * Overwrites the constructor in order to set a different default command.
-     */
-    public function __construct()
-    {
-        parent::__construct();
-
-        $command = new \FooCommand();
-        $this->add($command);
-        $this->setDefaultCommand($command->getName());
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Command/CommandTest.php b/core/vendor/symfony/console/Tests/Command/CommandTest.php
deleted file mode 100644
index 7702ac8..0000000
--- a/core/vendor/symfony/console/Tests/Command/CommandTest.php
+++ /dev/null
@@ -1,335 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Command;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Helper\FormatterHelper;
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\StringInput;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\NullOutput;
-use Symfony\Component\Console\Tester\CommandTester;
-
-class CommandTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = __DIR__.'/../Fixtures/';
-        require_once self::$fixturesPath.'/TestCommand.php';
-    }
-
-    public function testConstructor()
-    {
-        $command = new Command('foo:bar');
-        $this->assertEquals('foo:bar', $command->getName(), '__construct() takes the command name as its first argument');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage The command defined in "Symfony\Component\Console\Command\Command" cannot have an empty name.
-     */
-    public function testCommandNameCannotBeEmpty()
-    {
-        new Command();
-    }
-
-    public function testSetApplication()
-    {
-        $application = new Application();
-        $command = new \TestCommand();
-        $command->setApplication($application);
-        $this->assertEquals($application, $command->getApplication(), '->setApplication() sets the current application');
-    }
-
-    public function testSetGetDefinition()
-    {
-        $command = new \TestCommand();
-        $ret = $command->setDefinition($definition = new InputDefinition());
-        $this->assertEquals($command, $ret, '->setDefinition() implements a fluent interface');
-        $this->assertEquals($definition, $command->getDefinition(), '->setDefinition() sets the current InputDefinition instance');
-        $command->setDefinition(array(new InputArgument('foo'), new InputOption('bar')));
-        $this->assertTrue($command->getDefinition()->hasArgument('foo'), '->setDefinition() also takes an array of InputArguments and InputOptions as an argument');
-        $this->assertTrue($command->getDefinition()->hasOption('bar'), '->setDefinition() also takes an array of InputArguments and InputOptions as an argument');
-        $command->setDefinition(new InputDefinition());
-    }
-
-    public function testAddArgument()
-    {
-        $command = new \TestCommand();
-        $ret = $command->addArgument('foo');
-        $this->assertEquals($command, $ret, '->addArgument() implements a fluent interface');
-        $this->assertTrue($command->getDefinition()->hasArgument('foo'), '->addArgument() adds an argument to the command');
-    }
-
-    public function testAddOption()
-    {
-        $command = new \TestCommand();
-        $ret = $command->addOption('foo');
-        $this->assertEquals($command, $ret, '->addOption() implements a fluent interface');
-        $this->assertTrue($command->getDefinition()->hasOption('foo'), '->addOption() adds an option to the command');
-    }
-
-    public function testGetNamespaceGetNameSetName()
-    {
-        $command = new \TestCommand();
-        $this->assertEquals('namespace:name', $command->getName(), '->getName() returns the command name');
-        $command->setName('foo');
-        $this->assertEquals('foo', $command->getName(), '->setName() sets the command name');
-
-        $ret = $command->setName('foobar:bar');
-        $this->assertEquals($command, $ret, '->setName() implements a fluent interface');
-        $this->assertEquals('foobar:bar', $command->getName(), '->setName() sets the command name');
-    }
-
-    /**
-     * @dataProvider provideInvalidCommandNames
-     */
-    public function testInvalidCommandNames($name)
-    {
-        $this->setExpectedException('InvalidArgumentException', sprintf('Command name "%s" is invalid.', $name));
-
-        $command = new \TestCommand();
-        $command->setName($name);
-    }
-
-    public function provideInvalidCommandNames()
-    {
-        return array(
-            array(''),
-            array('foo:'),
-        );
-    }
-
-    public function testGetSetDescription()
-    {
-        $command = new \TestCommand();
-        $this->assertEquals('description', $command->getDescription(), '->getDescription() returns the description');
-        $ret = $command->setDescription('description1');
-        $this->assertEquals($command, $ret, '->setDescription() implements a fluent interface');
-        $this->assertEquals('description1', $command->getDescription(), '->setDescription() sets the description');
-    }
-
-    public function testGetSetHelp()
-    {
-        $command = new \TestCommand();
-        $this->assertEquals('help', $command->getHelp(), '->getHelp() returns the help');
-        $ret = $command->setHelp('help1');
-        $this->assertEquals($command, $ret, '->setHelp() implements a fluent interface');
-        $this->assertEquals('help1', $command->getHelp(), '->setHelp() sets the help');
-    }
-
-    public function testGetProcessedHelp()
-    {
-        $command = new \TestCommand();
-        $command->setHelp('The %command.name% command does... Example: php %command.full_name%.');
-        $this->assertContains('The namespace:name command does...', $command->getProcessedHelp(), '->getProcessedHelp() replaces %command.name% correctly');
-        $this->assertNotContains('%command.full_name%', $command->getProcessedHelp(), '->getProcessedHelp() replaces %command.full_name%');
-    }
-
-    public function testGetSetAliases()
-    {
-        $command = new \TestCommand();
-        $this->assertEquals(array('name'), $command->getAliases(), '->getAliases() returns the aliases');
-        $ret = $command->setAliases(array('name1'));
-        $this->assertEquals($command, $ret, '->setAliases() implements a fluent interface');
-        $this->assertEquals(array('name1'), $command->getAliases(), '->setAliases() sets the aliases');
-    }
-
-    public function testGetSynopsis()
-    {
-        $command = new \TestCommand();
-        $command->addOption('foo');
-        $command->addArgument('bar');
-        $this->assertEquals('namespace:name [--foo] [--] [<bar>]', $command->getSynopsis(), '->getSynopsis() returns the synopsis');
-    }
-
-    public function testGetHelper()
-    {
-        $application = new Application();
-        $command = new \TestCommand();
-        $command->setApplication($application);
-        $formatterHelper = new FormatterHelper();
-        $this->assertEquals($formatterHelper->getName(), $command->getHelper('formatter')->getName(), '->getHelper() returns the correct helper');
-    }
-
-    public function testMergeApplicationDefinition()
-    {
-        $application1 = new Application();
-        $application1->getDefinition()->addArguments(array(new InputArgument('foo')));
-        $application1->getDefinition()->addOptions(array(new InputOption('bar')));
-        $command = new \TestCommand();
-        $command->setApplication($application1);
-        $command->setDefinition($definition = new InputDefinition(array(new InputArgument('bar'), new InputOption('foo'))));
-
-        $r = new \ReflectionObject($command);
-        $m = $r->getMethod('mergeApplicationDefinition');
-        $m->setAccessible(true);
-        $m->invoke($command);
-        $this->assertTrue($command->getDefinition()->hasArgument('foo'), '->mergeApplicationDefinition() merges the application arguments and the command arguments');
-        $this->assertTrue($command->getDefinition()->hasArgument('bar'), '->mergeApplicationDefinition() merges the application arguments and the command arguments');
-        $this->assertTrue($command->getDefinition()->hasOption('foo'), '->mergeApplicationDefinition() merges the application options and the command options');
-        $this->assertTrue($command->getDefinition()->hasOption('bar'), '->mergeApplicationDefinition() merges the application options and the command options');
-
-        $m->invoke($command);
-        $this->assertEquals(3, $command->getDefinition()->getArgumentCount(), '->mergeApplicationDefinition() does not try to merge twice the application arguments and options');
-    }
-
-    public function testMergeApplicationDefinitionWithoutArgsThenWithArgsAddsArgs()
-    {
-        $application1 = new Application();
-        $application1->getDefinition()->addArguments(array(new InputArgument('foo')));
-        $application1->getDefinition()->addOptions(array(new InputOption('bar')));
-        $command = new \TestCommand();
-        $command->setApplication($application1);
-        $command->setDefinition($definition = new InputDefinition(array()));
-
-        $r = new \ReflectionObject($command);
-        $m = $r->getMethod('mergeApplicationDefinition');
-        $m->setAccessible(true);
-        $m->invoke($command, false);
-        $this->assertTrue($command->getDefinition()->hasOption('bar'), '->mergeApplicationDefinition(false) merges the application and the command options');
-        $this->assertFalse($command->getDefinition()->hasArgument('foo'), '->mergeApplicationDefinition(false) does not merge the application arguments');
-
-        $m->invoke($command, true);
-        $this->assertTrue($command->getDefinition()->hasArgument('foo'), '->mergeApplicationDefinition(true) merges the application arguments and the command arguments');
-
-        $m->invoke($command);
-        $this->assertEquals(2, $command->getDefinition()->getArgumentCount(), '->mergeApplicationDefinition() does not try to merge twice the application arguments');
-    }
-
-    public function testRunInteractive()
-    {
-        $tester = new CommandTester(new \TestCommand());
-
-        $tester->execute(array(), array('interactive' => true));
-
-        $this->assertEquals('interact called'.PHP_EOL.'execute called'.PHP_EOL, $tester->getDisplay(), '->run() calls the interact() method if the input is interactive');
-    }
-
-    public function testRunNonInteractive()
-    {
-        $tester = new CommandTester(new \TestCommand());
-
-        $tester->execute(array(), array('interactive' => false));
-
-        $this->assertEquals('execute called'.PHP_EOL, $tester->getDisplay(), '->run() does not call the interact() method if the input is not interactive');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage You must override the execute() method in the concrete command class.
-     */
-    public function testExecuteMethodNeedsToBeOverridden()
-    {
-        $command = new Command('foo');
-        $command->run(new StringInput(''), new NullOutput());
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "--bar" option does not exist.
-     */
-    public function testRunWithInvalidOption()
-    {
-        $command = new \TestCommand();
-        $tester = new CommandTester($command);
-        $tester->execute(array('--bar' => true));
-    }
-
-    public function testRunReturnsIntegerExitCode()
-    {
-        $command = new \TestCommand();
-        $exitCode = $command->run(new StringInput(''), new NullOutput());
-        $this->assertSame(0, $exitCode, '->run() returns integer exit code (treats null as 0)');
-
-        $command = $this->getMock('TestCommand', array('execute'));
-        $command->expects($this->once())
-             ->method('execute')
-             ->will($this->returnValue('2.3'));
-        $exitCode = $command->run(new StringInput(''), new NullOutput());
-        $this->assertSame(2, $exitCode, '->run() returns integer exit code (casts numeric to int)');
-    }
-
-    public function testRunReturnsAlwaysInteger()
-    {
-        $command = new \TestCommand();
-
-        $this->assertSame(0, $command->run(new StringInput(''), new NullOutput()));
-    }
-
-    public function testSetCode()
-    {
-        $command = new \TestCommand();
-        $ret = $command->setCode(function (InputInterface $input, OutputInterface $output) {
-            $output->writeln('from the code...');
-        });
-        $this->assertEquals($command, $ret, '->setCode() implements a fluent interface');
-        $tester = new CommandTester($command);
-        $tester->execute(array());
-        $this->assertEquals('interact called'.PHP_EOL.'from the code...'.PHP_EOL, $tester->getDisplay());
-    }
-
-    public function testSetCodeWithNonClosureCallable()
-    {
-        $command = new \TestCommand();
-        $ret = $command->setCode(array($this, 'callableMethodCommand'));
-        $this->assertEquals($command, $ret, '->setCode() implements a fluent interface');
-        $tester = new CommandTester($command);
-        $tester->execute(array());
-        $this->assertEquals('interact called'.PHP_EOL.'from the code...'.PHP_EOL, $tester->getDisplay());
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage Invalid callable provided to Command::setCode.
-     */
-    public function testSetCodeWithNonCallable()
-    {
-        $command = new \TestCommand();
-        $command->setCode(array($this, 'nonExistentMethod'));
-    }
-
-    public function callableMethodCommand(InputInterface $input, OutputInterface $output)
-    {
-        $output->writeln('from the code...');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAsText()
-    {
-        $command = new \TestCommand();
-        $command->setApplication(new Application());
-        $tester = new CommandTester($command);
-        $tester->execute(array('command' => $command->getName()));
-        $this->assertStringEqualsFile(self::$fixturesPath.'/command_astext.txt', $command->asText(), '->asText() returns a text representation of the command');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAsXml()
-    {
-        $command = new \TestCommand();
-        $command->setApplication(new Application());
-        $tester = new CommandTester($command);
-        $tester->execute(array('command' => $command->getName()));
-        $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/command_asxml.txt', $command->asXml(), '->asXml() returns an XML representation of the command');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Command/HelpCommandTest.php b/core/vendor/symfony/console/Tests/Command/HelpCommandTest.php
deleted file mode 100644
index 9e06858..0000000
--- a/core/vendor/symfony/console/Tests/Command/HelpCommandTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Command;
-
-use Symfony\Component\Console\Tester\CommandTester;
-use Symfony\Component\Console\Command\HelpCommand;
-use Symfony\Component\Console\Command\ListCommand;
-use Symfony\Component\Console\Application;
-
-class HelpCommandTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExecuteForCommandAlias()
-    {
-        $command = new HelpCommand();
-        $command->setApplication(new Application());
-        $commandTester = new CommandTester($command);
-        $commandTester->execute(array('command_name' => 'li'), array('decorated' => false));
-        $this->assertContains('list [options] [--] [<namespace>]', $commandTester->getDisplay(), '->execute() returns a text help for the given command alias');
-        $this->assertContains('format=FORMAT', $commandTester->getDisplay(), '->execute() returns a text help for the given command alias');
-        $this->assertContains('raw', $commandTester->getDisplay(), '->execute() returns a text help for the given command alias');
-    }
-
-    public function testExecuteForCommand()
-    {
-        $command = new HelpCommand();
-        $commandTester = new CommandTester($command);
-        $command->setCommand(new ListCommand());
-        $commandTester->execute(array(), array('decorated' => false));
-        $this->assertContains('list [options] [--] [<namespace>]', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-        $this->assertContains('format=FORMAT', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-        $this->assertContains('raw', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-    }
-
-    public function testExecuteForCommandWithXmlOption()
-    {
-        $command = new HelpCommand();
-        $commandTester = new CommandTester($command);
-        $command->setCommand(new ListCommand());
-        $commandTester->execute(array('--format' => 'xml'));
-        $this->assertContains('<command', $commandTester->getDisplay(), '->execute() returns an XML help text if --xml is passed');
-    }
-
-    public function testExecuteForApplicationCommand()
-    {
-        $application = new Application();
-        $commandTester = new CommandTester($application->get('help'));
-        $commandTester->execute(array('command_name' => 'list'));
-        $this->assertContains('list [options] [--] [<namespace>]', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-        $this->assertContains('format=FORMAT', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-        $this->assertContains('raw', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-    }
-
-    public function testExecuteForApplicationCommandWithXmlOption()
-    {
-        $application = new Application();
-        $commandTester = new CommandTester($application->get('help'));
-        $commandTester->execute(array('command_name' => 'list', '--format' => 'xml'));
-        $this->assertContains('list [--xml] [--raw] [--format FORMAT] [--] [&lt;namespace&gt;]', $commandTester->getDisplay(), '->execute() returns a text help for the given command');
-        $this->assertContains('<command', $commandTester->getDisplay(), '->execute() returns an XML help text if --format=xml is passed');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Command/ListCommandTest.php b/core/vendor/symfony/console/Tests/Command/ListCommandTest.php
deleted file mode 100644
index 3578d48..0000000
--- a/core/vendor/symfony/console/Tests/Command/ListCommandTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Command;
-
-use Symfony\Component\Console\Tester\CommandTester;
-use Symfony\Component\Console\Application;
-
-class ListCommandTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExecuteListsCommands()
-    {
-        $application = new Application();
-        $commandTester = new CommandTester($command = $application->get('list'));
-        $commandTester->execute(array('command' => $command->getName()), array('decorated' => false));
-
-        $this->assertRegExp('/help\s{2,}Displays help for a command/', $commandTester->getDisplay(), '->execute() returns a list of available commands');
-    }
-
-    public function testExecuteListsCommandsWithXmlOption()
-    {
-        $application = new Application();
-        $commandTester = new CommandTester($command = $application->get('list'));
-        $commandTester->execute(array('command' => $command->getName(), '--format' => 'xml'));
-        $this->assertRegExp('/<command id="list" name="list">/', $commandTester->getDisplay(), '->execute() returns a list of available commands in XML if --xml is passed');
-    }
-
-    public function testExecuteListsCommandsWithRawOption()
-    {
-        $application = new Application();
-        $commandTester = new CommandTester($command = $application->get('list'));
-        $commandTester->execute(array('command' => $command->getName(), '--raw' => true));
-        $output = <<<EOF
-help   Displays help for a command
-list   Lists commands
-
-EOF;
-
-        $this->assertEquals($output, $commandTester->getDisplay(true));
-    }
-
-    public function testExecuteListsCommandsWithNamespaceArgument()
-    {
-        require_once realpath(__DIR__.'/../Fixtures/FooCommand.php');
-        $application = new Application();
-        $application->add(new \FooCommand());
-        $commandTester = new CommandTester($command = $application->get('list'));
-        $commandTester->execute(array('command' => $command->getName(), 'namespace' => 'foo', '--raw' => true));
-        $output = <<<EOF
-foo:bar   The foo:bar command
-
-EOF;
-
-        $this->assertEquals($output, $commandTester->getDisplay(true));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php b/core/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php
deleted file mode 100644
index f582e7f..0000000
--- a/core/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Descriptor;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\BufferedOutput;
-
-abstract class AbstractDescriptorTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getDescribeInputArgumentTestData */
-    public function testDescribeInputArgument(InputArgument $argument, $expectedDescription)
-    {
-        $this->assertDescription($expectedDescription, $argument);
-    }
-
-    /** @dataProvider getDescribeInputOptionTestData */
-    public function testDescribeInputOption(InputOption $option, $expectedDescription)
-    {
-        $this->assertDescription($expectedDescription, $option);
-    }
-
-    /** @dataProvider getDescribeInputDefinitionTestData */
-    public function testDescribeInputDefinition(InputDefinition $definition, $expectedDescription)
-    {
-        $this->assertDescription($expectedDescription, $definition);
-    }
-
-    /** @dataProvider getDescribeCommandTestData */
-    public function testDescribeCommand(Command $command, $expectedDescription)
-    {
-        $this->assertDescription($expectedDescription, $command);
-    }
-
-    /** @dataProvider getDescribeApplicationTestData */
-    public function testDescribeApplication(Application $application, $expectedDescription)
-    {
-        // Replaces the dynamic placeholders of the command help text with a static version.
-        // The placeholder %command.full_name% includes the script path that is not predictable
-        // and can not be tested against.
-        foreach ($application->all() as $command) {
-            $command->setHelp(str_replace('%command.full_name%', 'app/console %command.name%', $command->getHelp()));
-        }
-
-        $this->assertDescription($expectedDescription, $application);
-    }
-
-    public function getDescribeInputArgumentTestData()
-    {
-        return $this->getDescriptionTestData(ObjectsProvider::getInputArguments());
-    }
-
-    public function getDescribeInputOptionTestData()
-    {
-        return $this->getDescriptionTestData(ObjectsProvider::getInputOptions());
-    }
-
-    public function getDescribeInputDefinitionTestData()
-    {
-        return $this->getDescriptionTestData(ObjectsProvider::getInputDefinitions());
-    }
-
-    public function getDescribeCommandTestData()
-    {
-        return $this->getDescriptionTestData(ObjectsProvider::getCommands());
-    }
-
-    public function getDescribeApplicationTestData()
-    {
-        return $this->getDescriptionTestData(ObjectsProvider::getApplications());
-    }
-
-    abstract protected function getDescriptor();
-    abstract protected function getFormat();
-
-    private function getDescriptionTestData(array $objects)
-    {
-        $data = array();
-        foreach ($objects as $name => $object) {
-            $description = file_get_contents(sprintf('%s/../Fixtures/%s.%s', __DIR__, $name, $this->getFormat()));
-            $data[] = array($object, $description);
-        }
-
-        return $data;
-    }
-
-    protected function assertDescription($expectedDescription, $describedObject)
-    {
-        $output = new BufferedOutput(BufferedOutput::VERBOSITY_NORMAL, true);
-        $this->getDescriptor()->describe($output, $describedObject, array('raw_output' => true));
-        $this->assertEquals(trim($expectedDescription), trim(str_replace(PHP_EOL, "\n", $output->fetch())));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php b/core/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php
deleted file mode 100644
index f9a1561..0000000
--- a/core/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Descriptor;
-
-use Symfony\Component\Console\Descriptor\JsonDescriptor;
-use Symfony\Component\Console\Output\BufferedOutput;
-
-class JsonDescriptorTest extends AbstractDescriptorTest
-{
-    protected function getDescriptor()
-    {
-        return new JsonDescriptor();
-    }
-
-    protected function getFormat()
-    {
-        return 'json';
-    }
-
-    protected function assertDescription($expectedDescription, $describedObject)
-    {
-        $output = new BufferedOutput(BufferedOutput::VERBOSITY_NORMAL, true);
-        $this->getDescriptor()->describe($output, $describedObject, array('raw_output' => true));
-        $this->assertEquals(json_decode(trim($expectedDescription), true), json_decode(trim(str_replace(PHP_EOL, "\n", $output->fetch())), true));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php b/core/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php
deleted file mode 100644
index c85e8a5..0000000
--- a/core/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Descriptor;
-
-use Symfony\Component\Console\Descriptor\MarkdownDescriptor;
-
-class MarkdownDescriptorTest extends AbstractDescriptorTest
-{
-    protected function getDescriptor()
-    {
-        return new MarkdownDescriptor();
-    }
-
-    protected function getFormat()
-    {
-        return 'md';
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php b/core/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php
deleted file mode 100644
index 45b3b2f..0000000
--- a/core/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Descriptor;
-
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Tests\Fixtures\DescriptorApplication1;
-use Symfony\Component\Console\Tests\Fixtures\DescriptorApplication2;
-use Symfony\Component\Console\Tests\Fixtures\DescriptorCommand1;
-use Symfony\Component\Console\Tests\Fixtures\DescriptorCommand2;
-
-/**
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class ObjectsProvider
-{
-    public static function getInputArguments()
-    {
-        return array(
-            'input_argument_1' => new InputArgument('argument_name', InputArgument::REQUIRED),
-            'input_argument_2' => new InputArgument('argument_name', InputArgument::IS_ARRAY, 'argument description'),
-            'input_argument_3' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', 'default_value'),
-            'input_argument_4' => new InputArgument('argument_name', InputArgument::REQUIRED, "multiline\nargument description"),
-        );
-    }
-
-    public static function getInputOptions()
-    {
-        return array(
-            'input_option_1' => new InputOption('option_name', 'o', InputOption::VALUE_NONE),
-            'input_option_2' => new InputOption('option_name', 'o', InputOption::VALUE_OPTIONAL, 'option description', 'default_value'),
-            'input_option_3' => new InputOption('option_name', 'o', InputOption::VALUE_REQUIRED, 'option description'),
-            'input_option_4' => new InputOption('option_name', 'o', InputOption::VALUE_IS_ARRAY | InputOption::VALUE_OPTIONAL, 'option description', array()),
-            'input_option_5' => new InputOption('option_name', 'o', InputOption::VALUE_REQUIRED, "multiline\noption description"),
-            'input_option_6' => new InputOption('option_name', array('o', 'O'), InputOption::VALUE_REQUIRED, 'option with multiple shortcuts'),
-        );
-    }
-
-    public static function getInputDefinitions()
-    {
-        return array(
-            'input_definition_1' => new InputDefinition(),
-            'input_definition_2' => new InputDefinition(array(new InputArgument('argument_name', InputArgument::REQUIRED))),
-            'input_definition_3' => new InputDefinition(array(new InputOption('option_name', 'o', InputOption::VALUE_NONE))),
-            'input_definition_4' => new InputDefinition(array(
-                new InputArgument('argument_name', InputArgument::REQUIRED),
-                new InputOption('option_name', 'o', InputOption::VALUE_NONE),
-            )),
-        );
-    }
-
-    public static function getCommands()
-    {
-        return array(
-            'command_1' => new DescriptorCommand1(),
-            'command_2' => new DescriptorCommand2(),
-        );
-    }
-
-    public static function getApplications()
-    {
-        return array(
-            'application_1' => new DescriptorApplication1(),
-            'application_2' => new DescriptorApplication2(),
-        );
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php b/core/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php
deleted file mode 100644
index 350b679..0000000
--- a/core/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Descriptor;
-
-use Symfony\Component\Console\Descriptor\TextDescriptor;
-
-class TextDescriptorTest extends AbstractDescriptorTest
-{
-    protected function getDescriptor()
-    {
-        return new TextDescriptor();
-    }
-
-    protected function getFormat()
-    {
-        return 'txt';
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php b/core/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php
deleted file mode 100644
index 59a5d1e..0000000
--- a/core/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Descriptor;
-
-use Symfony\Component\Console\Descriptor\XmlDescriptor;
-
-class XmlDescriptorTest extends AbstractDescriptorTest
-{
-    protected function getDescriptor()
-    {
-        return new XmlDescriptor();
-    }
-
-    protected function getFormat()
-    {
-        return 'xml';
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php b/core/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php
deleted file mode 100644
index 52b619e..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-
-class BarBucCommand extends Command
-{
-    protected function configure()
-    {
-        $this->setName('bar:buc');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php b/core/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php
deleted file mode 100644
index 132b6d5..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Fixtures;
-
-use Symfony\Component\Console\Application;
-
-class DescriptorApplication1 extends Application
-{
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php b/core/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php
deleted file mode 100644
index ff55135..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Fixtures;
-
-use Symfony\Component\Console\Application;
-
-class DescriptorApplication2 extends Application
-{
-    public function __construct()
-    {
-        parent::__construct('My Symfony application', 'v1.0');
-        $this->add(new DescriptorCommand1());
-        $this->add(new DescriptorCommand2());
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php b/core/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php
deleted file mode 100644
index ede05d7..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Fixtures;
-
-use Symfony\Component\Console\Command\Command;
-
-class DescriptorCommand1 extends Command
-{
-    protected function configure()
-    {
-        $this
-            ->setName('descriptor:command1')
-            ->setAliases(array('alias1', 'alias2'))
-            ->setDescription('command 1 description')
-            ->setHelp('command 1 help')
-        ;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php b/core/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php
deleted file mode 100644
index 51106b9..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Fixtures;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-
-class DescriptorCommand2 extends Command
-{
-    protected function configure()
-    {
-        $this
-            ->setName('descriptor:command2')
-            ->setDescription('command 2 description')
-            ->setHelp('command 2 help')
-            ->addUsage('-o|--option_name <argument_name>')
-            ->addUsage('<argument_name>')
-            ->addArgument('argument_name', InputArgument::REQUIRED)
-            ->addOption('option_name', 'o', InputOption::VALUE_NONE)
-        ;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/DummyOutput.php b/core/vendor/symfony/console/Tests/Fixtures/DummyOutput.php
deleted file mode 100644
index aef6d22..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/DummyOutput.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Fixtures;
-
-use Symfony\Component\Console\Output\BufferedOutput;
-
-/**
- * Dummy output
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class DummyOutput extends BufferedOutput
-{
-    /**
-     * @return array
-     */
-    public function getLogs()
-    {
-        $logs = array();
-        foreach (explode("\n", trim($this->fetch())) as $message) {
-            preg_match('/^\[(.*)\] (.*)/', $message, $matches);
-            $logs[] = sprintf('%s %s', $matches[1], $matches[2]);
-        }
-
-        return $logs;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Foo1Command.php b/core/vendor/symfony/console/Tests/Fixtures/Foo1Command.php
deleted file mode 100644
index 254162f..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Foo1Command.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class Foo1Command extends Command
-{
-    public $input;
-    public $output;
-
-    protected function configure()
-    {
-        $this
-            ->setName('foo:bar1')
-            ->setDescription('The foo:bar1 command')
-            ->setAliases(array('afoobar1'))
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        $this->input = $input;
-        $this->output = $output;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Foo2Command.php b/core/vendor/symfony/console/Tests/Fixtures/Foo2Command.php
deleted file mode 100644
index 8071dc8..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Foo2Command.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class Foo2Command extends Command
-{
-    protected function configure()
-    {
-        $this
-            ->setName('foo1:bar')
-            ->setDescription('The foo1:bar command')
-            ->setAliases(array('afoobar2'))
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Foo3Command.php b/core/vendor/symfony/console/Tests/Fixtures/Foo3Command.php
deleted file mode 100644
index 6c890fa..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Foo3Command.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class Foo3Command extends Command
-{
-    protected function configure()
-    {
-        $this
-            ->setName('foo3:bar')
-            ->setDescription('The foo3:bar command')
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        try {
-            try {
-                throw new \Exception('First exception <p>this is html</p>');
-            } catch (\Exception $e) {
-                throw new \Exception('Second exception <comment>comment</comment>', 0, $e);
-            }
-        } catch (\Exception $e) {
-            throw new \Exception('Third exception <fg=blue;bg=red>comment</>', 0, $e);
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Foo4Command.php b/core/vendor/symfony/console/Tests/Fixtures/Foo4Command.php
deleted file mode 100644
index 1c54639..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Foo4Command.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-
-class Foo4Command extends Command
-{
-    protected function configure()
-    {
-        $this->setName('foo3:bar:toh');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Foo5Command.php b/core/vendor/symfony/console/Tests/Fixtures/Foo5Command.php
deleted file mode 100644
index a1c6082..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Foo5Command.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-
-class Foo5Command extends Command
-{
-    public function __construct()
-    {
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/FooCommand.php b/core/vendor/symfony/console/Tests/Fixtures/FooCommand.php
deleted file mode 100644
index 355e0ad..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/FooCommand.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class FooCommand extends Command
-{
-    public $input;
-    public $output;
-
-    protected function configure()
-    {
-        $this
-            ->setName('foo:bar')
-            ->setDescription('The foo:bar command')
-            ->setAliases(array('afoobar'))
-        ;
-    }
-
-    protected function interact(InputInterface $input, OutputInterface $output)
-    {
-        $output->writeln('interact called');
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        $this->input = $input;
-        $this->output = $output;
-
-        $output->writeln('called');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php b/core/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php
deleted file mode 100644
index fc50c72..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class FooSubnamespaced1Command extends Command
-{
-    public $input;
-    public $output;
-
-    protected function configure()
-    {
-        $this
-            ->setName('foo:bar:baz')
-            ->setDescription('The foo:bar:baz command')
-            ->setAliases(array('foobarbaz'))
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        $this->input = $input;
-        $this->output = $output;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php b/core/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php
deleted file mode 100644
index 1cf31ff..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class FooSubnamespaced2Command extends Command
-{
-    public $input;
-    public $output;
-
-    protected function configure()
-    {
-        $this
-            ->setName('foo:go:bret')
-            ->setDescription('The foo:bar:go command')
-            ->setAliases(array('foobargo'))
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        $this->input = $input;
-        $this->output = $output;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php b/core/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php
deleted file mode 100644
index 9681628..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class FoobarCommand extends Command
-{
-    public $input;
-    public $output;
-
-    protected function configure()
-    {
-        $this
-            ->setName('foobar:foo')
-            ->setDescription('The foobar:foo command')
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        $this->input = $input;
-        $this->output = $output;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php
deleted file mode 100644
index 8fe7c07..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has single blank line at start when using block element
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-    $output->caution('Lorem ipsum dolor sit amet');
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php
deleted file mode 100644
index e5c700d..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has single blank line between titles and blocks
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-    $output->title('Title');
-    $output->warning('Lorem ipsum dolor sit amet');
-    $output->title('Title');
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php
deleted file mode 100644
index 791b626..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has single blank line between blocks
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-    $output->warning('Warning');
-    $output->caution('Caution');
-    $output->error('Error');
-    $output->success('Success');
-    $output->note('Note');
-    $output->block('Custom block', 'CUSTOM', 'fg=white;bg=green', 'X ', true);
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php
deleted file mode 100644
index 99253a6..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has single blank line between two titles
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-    $output->title('First title');
-    $output->title('Second title');
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php
deleted file mode 100644
index 0c5d3fb..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has single blank line after any text and a title
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-
-    $output->write('Lorem ipsum dolor sit amet');
-    $output->title('First title');
-
-    $output->writeln('Lorem ipsum dolor sit amet');
-    $output->title('Second title');
-
-    $output->write('Lorem ipsum dolor sit amet');
-    $output->write('');
-    $output->title('Third title');
-
-    //Ensure edge case by appending empty strings to history:
-    $output->write('Lorem ipsum dolor sit amet');
-    $output->write(array('', '', ''));
-    $output->title('Fourth title');
-
-    //Ensure have manual control over number of blank lines:
-    $output->writeln('Lorem ipsum dolor sit amet');
-    $output->writeln(array('', '')); //Should append an extra blank line
-    $output->title('Fifth title');
-
-    $output->writeln('Lorem ipsum dolor sit amet');
-    $output->newLine(2); //Should append an extra blank line
-    $output->title('Fifth title');
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php
deleted file mode 100644
index 4543ad8..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has proper line ending before outputing a text block like with SymfonyStyle::listing() or SymfonyStyle::text()
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-
-    $output->writeln('Lorem ipsum dolor sit amet');
-    $output->listing(array(
-        'Lorem ipsum dolor sit amet',
-        'consectetur adipiscing elit',
-    ));
-
-    //Even using write:
-    $output->write('Lorem ipsum dolor sit amet');
-    $output->listing(array(
-        'Lorem ipsum dolor sit amet',
-        'consectetur adipiscing elit',
-    ));
-
-    $output->write('Lorem ipsum dolor sit amet');
-    $output->text(array(
-        'Lorem ipsum dolor sit amet',
-        'consectetur adipiscing elit',
-    ));
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php
deleted file mode 100644
index 8031ec9..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure has proper blank line after text block when using a block like with SymfonyStyle::success
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-
-    $output->listing(array(
-        'Lorem ipsum dolor sit amet',
-        'consectetur adipiscing elit',
-    ));
-    $output->success('Lorem ipsum dolor sit amet');
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php
deleted file mode 100644
index 203eb5b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-
-//Ensure questions do not output anything when input is non-interactive
-return function (InputInterface $input, OutputInterface $output) {
-    $output = new SymfonyStyle($input, $output);
-    $output->title('Title');
-    $output->askHidden('Hidden question');
-    $output->choice('Choice question with default', array('choice1', 'choice2'), 'choice1');
-    $output->confirm('Confirmation with yes default', true);
-    $output->text('Duis aute irure dolor in reprehenderit in voluptate velit esse');
-};
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt
deleted file mode 100644
index a42e0f7..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-
- ! [CAUTION] Lorem ipsum dolor sit amet                                                                                 
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt
deleted file mode 100644
index 334875f..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-
-Title
-=====
-
- [WARNING] Lorem ipsum dolor sit amet                                                                                   
-
-Title
-=====
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt
deleted file mode 100644
index ca60976..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-
- [WARNING] Warning                                                                                                      
-
- ! [CAUTION] Caution                                                                                                    
-
- [ERROR] Error                                                                                                          
-
- [OK] Success                                                                                                           
-
- ! [NOTE] Note                                                                                                          
-
-X [CUSTOM] Custom block                                                                                                 
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt
deleted file mode 100644
index f4b6d58..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-First title
-===========
-
-Second title
-============
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt
deleted file mode 100644
index 2646d85..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Lorem ipsum dolor sit amet
-
-First title
-===========
-
-Lorem ipsum dolor sit amet
-
-Second title
-============
-
-Lorem ipsum dolor sit amet
-
-Third title
-===========
-
-Lorem ipsum dolor sit amet
-
-Fourth title
-============
-
-Lorem ipsum dolor sit amet
-
-
-Fifth title
-===========
-
-Lorem ipsum dolor sit amet
-
-
-Fifth title
-===========
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt
deleted file mode 100644
index 910240f..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Lorem ipsum dolor sit amet
- * Lorem ipsum dolor sit amet
- * consectetur adipiscing elit
-
-Lorem ipsum dolor sit amet
- * Lorem ipsum dolor sit amet
- * consectetur adipiscing elit
-
-Lorem ipsum dolor sit amet
- // Lorem ipsum dolor sit amet
- // consectetur adipiscing elit
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt
deleted file mode 100644
index 5f2d33c..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-
- * Lorem ipsum dolor sit amet
- * consectetur adipiscing elit
-
- [OK] Lorem ipsum dolor sit amet                                                                                        
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt b/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt
deleted file mode 100644
index ab18e5d..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-
-Title
-=====
-
- // Duis aute irure dolor in reprehenderit in voluptate velit esse
diff --git a/core/vendor/symfony/console/Tests/Fixtures/TestCommand.php b/core/vendor/symfony/console/Tests/Fixtures/TestCommand.php
deleted file mode 100644
index dcd3273..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/TestCommand.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class TestCommand extends Command
-{
-    protected function configure()
-    {
-        $this
-            ->setName('namespace:name')
-            ->setAliases(array('name'))
-            ->setDescription('description')
-            ->setHelp('help')
-        ;
-    }
-
-    protected function execute(InputInterface $input, OutputInterface $output)
-    {
-        $output->writeln('execute called');
-    }
-
-    protected function interact(InputInterface $input, OutputInterface $output)
-    {
-        $output->writeln('interact called');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_1.json b/core/vendor/symfony/console/Tests/Fixtures/application_1.json
deleted file mode 100644
index b17b38d..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"commands":[{"name":"help","usage":["help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]"],"description":"Displays help for a command","help":"The <info>help<\/info> command displays help for a given command:\n\n  <info>php app\/console help list<\/info>\n\nYou can also output the help in other formats by using the <comment>--format<\/comment> option:\n\n  <info>php app\/console help --format=xml list<\/info>\n\nTo display the list of available commands, please use the <info>list<\/info> command.","definition":{"arguments":{"command_name":{"name":"command_name","is_required":false,"is_array":false,"description":"The command name","default":"help"}},"options":{"xml":{"name":"--xml","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output help as XML","default":false},"format":{"name":"--format","shortcut":"","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"The output format (txt, xml, json, or md)","default":"txt"},"raw":{"name":"--raw","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output raw command help","default":false},"help":{"name":"--help","shortcut":"-h","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this help message","default":false},"quiet":{"name":"--quiet","shortcut":"-q","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not output any message","default":false},"verbose":{"name":"--verbose","shortcut":"-v|-vv|-vvv","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug","default":false},"version":{"name":"--version","shortcut":"-V","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this application version","default":false},"ansi":{"name":"--ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Force ANSI output","default":false},"no-ansi":{"name":"--no-ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Disable ANSI output","default":false},"no-interaction":{"name":"--no-interaction","shortcut":"-n","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not ask any interactive question","default":false}}}},{"name":"list","usage":["list [--xml] [--raw] [--format FORMAT] [--] [<namespace>]"],"description":"Lists commands","help":"The <info>list<\/info> command lists all commands:\n\n  <info>php app\/console list<\/info>\n\nYou can also display the commands for a specific namespace:\n\n  <info>php app\/console list test<\/info>\n\nYou can also output the information in other formats by using the <comment>--format<\/comment> option:\n\n  <info>php app\/console list --format=xml<\/info>\n\nIt's also possible to get raw list of commands (useful for embedding command runner):\n\n  <info>php app\/console list --raw<\/info>","definition":{"arguments":{"namespace":{"name":"namespace","is_required":false,"is_array":false,"description":"The namespace name","default":null}},"options":{"xml":{"name":"--xml","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output list as XML","default":false},"raw":{"name":"--raw","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output raw command list","default":false},"format":{"name":"--format","shortcut":"","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"The output format (txt, xml, json, or md)","default":"txt"}}}}],"namespaces":[{"id":"_global","commands":["help","list"]}]}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_1.md b/core/vendor/symfony/console/Tests/Fixtures/application_1.md
deleted file mode 100644
index 82a605d..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_1.md
+++ /dev/null
@@ -1,201 +0,0 @@
-UNKNOWN
-=======
-
-* help
-* list
-
-help
-----
-
-* Description: Displays help for a command
-* Usage:
-
-  * `help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]`
-
-The <info>help</info> command displays help for a given command:
-
-  <info>php app/console help list</info>
-
-You can also output the help in other formats by using the <comment>--format</comment> option:
-
-  <info>php app/console help --format=xml list</info>
-
-To display the list of available commands, please use the <info>list</info> command.
-
-### Arguments:
-
-**command_name:**
-
-* Name: command_name
-* Is required: no
-* Is array: no
-* Description: The command name
-* Default: `'help'`
-
-### Options:
-
-**xml:**
-
-* Name: `--xml`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output help as XML
-* Default: `false`
-
-**format:**
-
-* Name: `--format`
-* Shortcut: <none>
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: The output format (txt, xml, json, or md)
-* Default: `'txt'`
-
-**raw:**
-
-* Name: `--raw`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output raw command help
-* Default: `false`
-
-**help:**
-
-* Name: `--help`
-* Shortcut: `-h`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this help message
-* Default: `false`
-
-**quiet:**
-
-* Name: `--quiet`
-* Shortcut: `-q`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not output any message
-* Default: `false`
-
-**verbose:**
-
-* Name: `--verbose`
-* Shortcut: `-v|-vv|-vvv`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-* Default: `false`
-
-**version:**
-
-* Name: `--version`
-* Shortcut: `-V`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this application version
-* Default: `false`
-
-**ansi:**
-
-* Name: `--ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Force ANSI output
-* Default: `false`
-
-**no-ansi:**
-
-* Name: `--no-ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Disable ANSI output
-* Default: `false`
-
-**no-interaction:**
-
-* Name: `--no-interaction`
-* Shortcut: `-n`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not ask any interactive question
-* Default: `false`
-
-list
-----
-
-* Description: Lists commands
-* Usage:
-
-  * `list [--xml] [--raw] [--format FORMAT] [--] [<namespace>]`
-
-The <info>list</info> command lists all commands:
-
-  <info>php app/console list</info>
-
-You can also display the commands for a specific namespace:
-
-  <info>php app/console list test</info>
-
-You can also output the information in other formats by using the <comment>--format</comment> option:
-
-  <info>php app/console list --format=xml</info>
-
-It's also possible to get raw list of commands (useful for embedding command runner):
-
-  <info>php app/console list --raw</info>
-
-### Arguments:
-
-**namespace:**
-
-* Name: namespace
-* Is required: no
-* Is array: no
-* Description: The namespace name
-* Default: `NULL`
-
-### Options:
-
-**xml:**
-
-* Name: `--xml`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output list as XML
-* Default: `false`
-
-**raw:**
-
-* Name: `--raw`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output raw command list
-* Default: `false`
-
-**format:**
-
-* Name: `--format`
-* Shortcut: <none>
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: The output format (txt, xml, json, or md)
-* Default: `'txt'`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_1.txt b/core/vendor/symfony/console/Tests/Fixtures/application_1.txt
deleted file mode 100644
index c4cf8f2..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_1.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-<info>Console Tool</info>
-
-<comment>Usage:</comment>
-  command [options] [arguments]
-
-<comment>Options:</comment>
-  <info>-h, --help</info>            Display this help message
-  <info>-q, --quiet</info>           Do not output any message
-  <info>-V, --version</info>         Display this application version
-  <info>    --ansi</info>            Force ANSI output
-  <info>    --no-ansi</info>         Disable ANSI output
-  <info>-n, --no-interaction</info>  Do not ask any interactive question
-  <info>-v|vv|vvv, --verbose</info>  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-<comment>Available commands:</comment>
-  <info>help</info>  Displays help for a command
-  <info>list</info>  Lists commands
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_1.xml b/core/vendor/symfony/console/Tests/Fixtures/application_1.xml
deleted file mode 100644
index 35d1db4..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_1.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<symfony>
-  <commands>
-    <command id="help" name="help">
-      <usages>
-        <usage>help [--xml] [--format FORMAT] [--raw] [--] [&lt;command_name&gt;]</usage>
-      </usages>
-      <description>Displays help for a command</description>
-      <help>The &lt;info&gt;help&lt;/info&gt; command displays help for a given command:
- 
-   &lt;info&gt;php app/console help list&lt;/info&gt;
- 
- You can also output the help in other formats by using the &lt;comment&gt;--format&lt;/comment&gt; option:
- 
-   &lt;info&gt;php app/console help --format=xml list&lt;/info&gt;
- 
- To display the list of available commands, please use the &lt;info&gt;list&lt;/info&gt; command.</help>
-      <arguments>
-        <argument name="command_name" is_required="0" is_array="0">
-          <description>The command name</description>
-          <defaults>
-            <default>help</default>
-          </defaults>
-        </argument>
-      </arguments>
-      <options>
-        <option name="--xml" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output help as XML</description>
-        </option>
-        <option name="--format" shortcut="" accept_value="1" is_value_required="1" is_multiple="0">
-          <description>The output format (txt, xml, json, or md)</description>
-          <defaults>
-            <default>txt</default>
-          </defaults>
-        </option>
-        <option name="--raw" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output raw command help</description>
-        </option>
-        <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this help message</description>
-        </option>
-        <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not output any message</description>
-        </option>
-        <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-        </option>
-        <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this application version</description>
-        </option>
-        <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Force ANSI output</description>
-        </option>
-        <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Disable ANSI output</description>
-        </option>
-        <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not ask any interactive question</description>
-        </option>
-      </options>
-    </command>
-    <command id="list" name="list">
-      <usages>
-        <usage>list [--xml] [--raw] [--format FORMAT] [--] [&lt;namespace&gt;]</usage>
-      </usages>
-      <description>Lists commands</description>
-      <help>The &lt;info&gt;list&lt;/info&gt; command lists all commands:
- 
-   &lt;info&gt;php app/console list&lt;/info&gt;
- 
- You can also display the commands for a specific namespace:
- 
-   &lt;info&gt;php app/console list test&lt;/info&gt;
- 
- You can also output the information in other formats by using the &lt;comment&gt;--format&lt;/comment&gt; option:
- 
-   &lt;info&gt;php app/console list --format=xml&lt;/info&gt;
- 
- It's also possible to get raw list of commands (useful for embedding command runner):
- 
-   &lt;info&gt;php app/console list --raw&lt;/info&gt;</help>
-      <arguments>
-        <argument name="namespace" is_required="0" is_array="0">
-          <description>The namespace name</description>
-          <defaults/>
-        </argument>
-      </arguments>
-      <options>
-        <option name="--xml" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output list as XML</description>
-        </option>
-        <option name="--raw" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output raw command list</description>
-        </option>
-        <option name="--format" shortcut="" accept_value="1" is_value_required="1" is_multiple="0">
-          <description>The output format (txt, xml, json, or md)</description>
-          <defaults>
-            <default>txt</default>
-          </defaults>
-        </option>
-      </options>
-    </command>
-  </commands>
-  <namespaces>
-    <namespace id="_global">
-      <command>help</command>
-      <command>list</command>
-    </namespace>
-  </namespaces>
-</symfony>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_2.json b/core/vendor/symfony/console/Tests/Fixtures/application_2.json
deleted file mode 100644
index e47a7a9..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"commands":[{"name":"help","usage":["help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]"],"description":"Displays help for a command","help":"The <info>help<\/info> command displays help for a given command:\n\n  <info>php app\/console help list<\/info>\n\nYou can also output the help in other formats by using the <comment>--format<\/comment> option:\n\n  <info>php app\/console help --format=xml list<\/info>\n\nTo display the list of available commands, please use the <info>list<\/info> command.","definition":{"arguments":{"command_name":{"name":"command_name","is_required":false,"is_array":false,"description":"The command name","default":"help"}},"options":{"xml":{"name":"--xml","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output help as XML","default":false},"format":{"name":"--format","shortcut":"","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"The output format (txt, xml, json, or md)","default":"txt"},"raw":{"name":"--raw","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output raw command help","default":false},"help":{"name":"--help","shortcut":"-h","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this help message","default":false},"quiet":{"name":"--quiet","shortcut":"-q","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not output any message","default":false},"verbose":{"name":"--verbose","shortcut":"-v|-vv|-vvv","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug","default":false},"version":{"name":"--version","shortcut":"-V","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this application version","default":false},"ansi":{"name":"--ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Force ANSI output","default":false},"no-ansi":{"name":"--no-ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Disable ANSI output","default":false},"no-interaction":{"name":"--no-interaction","shortcut":"-n","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not ask any interactive question","default":false}}}},{"name":"list","usage":["list [--xml] [--raw] [--format FORMAT] [--] [<namespace>]"],"description":"Lists commands","help":"The <info>list<\/info> command lists all commands:\n\n  <info>php app\/console list<\/info>\n\nYou can also display the commands for a specific namespace:\n\n  <info>php app\/console list test<\/info>\n\nYou can also output the information in other formats by using the <comment>--format<\/comment> option:\n\n  <info>php app\/console list --format=xml<\/info>\n\nIt's also possible to get raw list of commands (useful for embedding command runner):\n\n  <info>php app\/console list --raw<\/info>","definition":{"arguments":{"namespace":{"name":"namespace","is_required":false,"is_array":false,"description":"The namespace name","default":null}},"options":{"xml":{"name":"--xml","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output list as XML","default":false},"raw":{"name":"--raw","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"To output raw command list","default":false},"format":{"name":"--format","shortcut":"","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"The output format (txt, xml, json, or md)","default":"txt"}}}},{"name":"descriptor:command1","usage":["descriptor:command1", "alias1", "alias2"],"description":"command 1 description","help":"command 1 help","definition":{"arguments":[],"options":{"help":{"name":"--help","shortcut":"-h","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this help message","default":false},"quiet":{"name":"--quiet","shortcut":"-q","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not output any message","default":false},"verbose":{"name":"--verbose","shortcut":"-v|-vv|-vvv","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug","default":false},"version":{"name":"--version","shortcut":"-V","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this application version","default":false},"ansi":{"name":"--ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Force ANSI output","default":false},"no-ansi":{"name":"--no-ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Disable ANSI output","default":false},"no-interaction":{"name":"--no-interaction","shortcut":"-n","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not ask any interactive question","default":false}}}},{"name":"descriptor:command2","usage":["descriptor:command2 [-o|--option_name] [--] <argument_name>", "descriptor:command2 -o|--option_name <argument_name>", "descriptor:command2 <argument_name>"],"description":"command 2 description","help":"command 2 help","definition":{"arguments":{"argument_name":{"name":"argument_name","is_required":true,"is_array":false,"description":"","default":null}},"options":{"option_name":{"name":"--option_name","shortcut":"-o","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"","default":false},"help":{"name":"--help","shortcut":"-h","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this help message","default":false},"quiet":{"name":"--quiet","shortcut":"-q","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not output any message","default":false},"verbose":{"name":"--verbose","shortcut":"-v|-vv|-vvv","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug","default":false},"version":{"name":"--version","shortcut":"-V","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Display this application version","default":false},"ansi":{"name":"--ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Force ANSI output","default":false},"no-ansi":{"name":"--no-ansi","shortcut":"","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Disable ANSI output","default":false},"no-interaction":{"name":"--no-interaction","shortcut":"-n","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"Do not ask any interactive question","default":false}}}}],"namespaces":[{"id":"_global","commands":["alias1","alias2","help","list"]},{"id":"descriptor","commands":["descriptor:command1","descriptor:command2"]}]}
\ No newline at end of file
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_2.md b/core/vendor/symfony/console/Tests/Fixtures/application_2.md
deleted file mode 100644
index f031c9e..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_2.md
+++ /dev/null
@@ -1,396 +0,0 @@
-My Symfony application
-======================
-
-* alias1
-* alias2
-* help
-* list
-
-**descriptor:**
-
-* descriptor:command1
-* descriptor:command2
-
-help
-----
-
-* Description: Displays help for a command
-* Usage:
-
-  * `help [--xml] [--format FORMAT] [--raw] [--] [<command_name>]`
-
-The <info>help</info> command displays help for a given command:
-
-  <info>php app/console help list</info>
-
-You can also output the help in other formats by using the <comment>--format</comment> option:
-
-  <info>php app/console help --format=xml list</info>
-
-To display the list of available commands, please use the <info>list</info> command.
-
-### Arguments:
-
-**command_name:**
-
-* Name: command_name
-* Is required: no
-* Is array: no
-* Description: The command name
-* Default: `'help'`
-
-### Options:
-
-**xml:**
-
-* Name: `--xml`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output help as XML
-* Default: `false`
-
-**format:**
-
-* Name: `--format`
-* Shortcut: <none>
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: The output format (txt, xml, json, or md)
-* Default: `'txt'`
-
-**raw:**
-
-* Name: `--raw`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output raw command help
-* Default: `false`
-
-**help:**
-
-* Name: `--help`
-* Shortcut: `-h`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this help message
-* Default: `false`
-
-**quiet:**
-
-* Name: `--quiet`
-* Shortcut: `-q`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not output any message
-* Default: `false`
-
-**verbose:**
-
-* Name: `--verbose`
-* Shortcut: `-v|-vv|-vvv`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-* Default: `false`
-
-**version:**
-
-* Name: `--version`
-* Shortcut: `-V`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this application version
-* Default: `false`
-
-**ansi:**
-
-* Name: `--ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Force ANSI output
-* Default: `false`
-
-**no-ansi:**
-
-* Name: `--no-ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Disable ANSI output
-* Default: `false`
-
-**no-interaction:**
-
-* Name: `--no-interaction`
-* Shortcut: `-n`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not ask any interactive question
-* Default: `false`
-
-list
-----
-
-* Description: Lists commands
-* Usage:
-
-  * `list [--xml] [--raw] [--format FORMAT] [--] [<namespace>]`
-
-The <info>list</info> command lists all commands:
-
-  <info>php app/console list</info>
-
-You can also display the commands for a specific namespace:
-
-  <info>php app/console list test</info>
-
-You can also output the information in other formats by using the <comment>--format</comment> option:
-
-  <info>php app/console list --format=xml</info>
-
-It's also possible to get raw list of commands (useful for embedding command runner):
-
-  <info>php app/console list --raw</info>
-
-### Arguments:
-
-**namespace:**
-
-* Name: namespace
-* Is required: no
-* Is array: no
-* Description: The namespace name
-* Default: `NULL`
-
-### Options:
-
-**xml:**
-
-* Name: `--xml`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output list as XML
-* Default: `false`
-
-**raw:**
-
-* Name: `--raw`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: To output raw command list
-* Default: `false`
-
-**format:**
-
-* Name: `--format`
-* Shortcut: <none>
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: The output format (txt, xml, json, or md)
-* Default: `'txt'`
-
-descriptor:command1
--------------------
-
-* Description: command 1 description
-* Usage:
-
-  * `descriptor:command1`
-  * `alias1`
-  * `alias2`
-
-command 1 help
-
-### Options:
-
-**help:**
-
-* Name: `--help`
-* Shortcut: `-h`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this help message
-* Default: `false`
-
-**quiet:**
-
-* Name: `--quiet`
-* Shortcut: `-q`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not output any message
-* Default: `false`
-
-**verbose:**
-
-* Name: `--verbose`
-* Shortcut: `-v|-vv|-vvv`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-* Default: `false`
-
-**version:**
-
-* Name: `--version`
-* Shortcut: `-V`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this application version
-* Default: `false`
-
-**ansi:**
-
-* Name: `--ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Force ANSI output
-* Default: `false`
-
-**no-ansi:**
-
-* Name: `--no-ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Disable ANSI output
-* Default: `false`
-
-**no-interaction:**
-
-* Name: `--no-interaction`
-* Shortcut: `-n`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not ask any interactive question
-* Default: `false`
-
-descriptor:command2
--------------------
-
-* Description: command 2 description
-* Usage:
-
-  * `descriptor:command2 [-o|--option_name] [--] <argument_name>`
-  * `descriptor:command2 -o|--option_name <argument_name>`
-  * `descriptor:command2 <argument_name>`
-
-command 2 help
-
-### Arguments:
-
-**argument_name:**
-
-* Name: argument_name
-* Is required: yes
-* Is array: no
-* Description: <none>
-* Default: `NULL`
-
-### Options:
-
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: <none>
-* Default: `false`
-
-**help:**
-
-* Name: `--help`
-* Shortcut: `-h`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this help message
-* Default: `false`
-
-**quiet:**
-
-* Name: `--quiet`
-* Shortcut: `-q`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not output any message
-* Default: `false`
-
-**verbose:**
-
-* Name: `--verbose`
-* Shortcut: `-v|-vv|-vvv`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-* Default: `false`
-
-**version:**
-
-* Name: `--version`
-* Shortcut: `-V`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Display this application version
-* Default: `false`
-
-**ansi:**
-
-* Name: `--ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Force ANSI output
-* Default: `false`
-
-**no-ansi:**
-
-* Name: `--no-ansi`
-* Shortcut: <none>
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Disable ANSI output
-* Default: `false`
-
-**no-interaction:**
-
-* Name: `--no-interaction`
-* Shortcut: `-n`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: Do not ask any interactive question
-* Default: `false`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_2.txt b/core/vendor/symfony/console/Tests/Fixtures/application_2.txt
deleted file mode 100644
index 292aa82..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_2.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-<info>My Symfony application</info> version <comment>v1.0</comment>
-
-<comment>Usage:</comment>
-  command [options] [arguments]
-
-<comment>Options:</comment>
-  <info>-h, --help</info>            Display this help message
-  <info>-q, --quiet</info>           Do not output any message
-  <info>-V, --version</info>         Display this application version
-  <info>    --ansi</info>            Force ANSI output
-  <info>    --no-ansi</info>         Disable ANSI output
-  <info>-n, --no-interaction</info>  Do not ask any interactive question
-  <info>-v|vv|vvv, --verbose</info>  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-<comment>Available commands:</comment>
-  <info>alias1</info>               command 1 description
-  <info>alias2</info>               command 1 description
-  <info>help</info>                 Displays help for a command
-  <info>list</info>                 Lists commands
- <comment>descriptor</comment>
-  <info>descriptor:command1</info>  command 1 description
-  <info>descriptor:command2</info>  command 2 description
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_2.xml b/core/vendor/symfony/console/Tests/Fixtures/application_2.xml
deleted file mode 100644
index bc8ab21..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_2.xml
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<symfony name="My Symfony application" version="v1.0">
-  <commands>
-    <command id="help" name="help">
-      <usages>
-        <usage>help [--xml] [--format FORMAT] [--raw] [--] [&lt;command_name&gt;]</usage>
-      </usages>
-      <description>Displays help for a command</description>
-      <help>The &lt;info&gt;help&lt;/info&gt; command displays help for a given command:
- 
-   &lt;info&gt;php app/console help list&lt;/info&gt;
- 
- You can also output the help in other formats by using the &lt;comment&gt;--format&lt;/comment&gt; option:
- 
-   &lt;info&gt;php app/console help --format=xml list&lt;/info&gt;
- 
- To display the list of available commands, please use the &lt;info&gt;list&lt;/info&gt; command.</help>
-      <arguments>
-        <argument name="command_name" is_required="0" is_array="0">
-          <description>The command name</description>
-          <defaults>
-            <default>help</default>
-          </defaults>
-        </argument>
-      </arguments>
-      <options>
-        <option name="--xml" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output help as XML</description>
-        </option>
-        <option name="--format" shortcut="" accept_value="1" is_value_required="1" is_multiple="0">
-          <description>The output format (txt, xml, json, or md)</description>
-          <defaults>
-            <default>txt</default>
-          </defaults>
-        </option>
-        <option name="--raw" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output raw command help</description>
-        </option>
-        <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this help message</description>
-        </option>
-        <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not output any message</description>
-        </option>
-        <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-        </option>
-        <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this application version</description>
-        </option>
-        <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Force ANSI output</description>
-        </option>
-        <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Disable ANSI output</description>
-        </option>
-        <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not ask any interactive question</description>
-        </option>
-      </options>
-    </command>
-    <command id="list" name="list">
-      <usages>
-        <usage>list [--xml] [--raw] [--format FORMAT] [--] [&lt;namespace&gt;]</usage>
-      </usages>
-      <description>Lists commands</description>
-      <help>The &lt;info&gt;list&lt;/info&gt; command lists all commands:
- 
-   &lt;info&gt;php app/console list&lt;/info&gt;
- 
- You can also display the commands for a specific namespace:
- 
-   &lt;info&gt;php app/console list test&lt;/info&gt;
- 
- You can also output the information in other formats by using the &lt;comment&gt;--format&lt;/comment&gt; option:
- 
-   &lt;info&gt;php app/console list --format=xml&lt;/info&gt;
- 
- It's also possible to get raw list of commands (useful for embedding command runner):
- 
-   &lt;info&gt;php app/console list --raw&lt;/info&gt;</help>
-      <arguments>
-        <argument name="namespace" is_required="0" is_array="0">
-          <description>The namespace name</description>
-          <defaults/>
-        </argument>
-      </arguments>
-      <options>
-        <option name="--xml" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output list as XML</description>
-        </option>
-        <option name="--raw" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>To output raw command list</description>
-        </option>
-        <option name="--format" shortcut="" accept_value="1" is_value_required="1" is_multiple="0">
-          <description>The output format (txt, xml, json, or md)</description>
-          <defaults>
-            <default>txt</default>
-          </defaults>
-        </option>
-      </options>
-    </command>
-    <command id="descriptor:command1" name="descriptor:command1">
-      <usages>
-        <usage>descriptor:command1</usage>
-        <usage>alias1</usage>
-        <usage>alias2</usage>
-      </usages>
-      <description>command 1 description</description>
-      <help>command 1 help</help>
-      <arguments/>
-      <options>
-        <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this help message</description>
-        </option>
-        <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not output any message</description>
-        </option>
-        <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-        </option>
-        <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this application version</description>
-        </option>
-        <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Force ANSI output</description>
-        </option>
-        <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Disable ANSI output</description>
-        </option>
-        <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not ask any interactive question</description>
-        </option>
-      </options>
-    </command>
-    <command id="descriptor:command2" name="descriptor:command2">
-      <usages>
-        <usage>descriptor:command2 [-o|--option_name] [--] &lt;argument_name&gt;</usage>
-        <usage>descriptor:command2 -o|--option_name &lt;argument_name&gt;</usage>
-        <usage>descriptor:command2 &lt;argument_name&gt;</usage>
-      </usages>
-      <description>command 2 description</description>
-      <help>command 2 help</help>
-      <arguments>
-        <argument name="argument_name" is_required="1" is_array="0">
-          <description></description>
-          <defaults/>
-        </argument>
-      </arguments>
-      <options>
-        <option name="--option_name" shortcut="-o" accept_value="0" is_value_required="0" is_multiple="0">
-          <description></description>
-        </option>
-        <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this help message</description>
-        </option>
-        <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not output any message</description>
-        </option>
-        <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-        </option>
-        <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Display this application version</description>
-        </option>
-        <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Force ANSI output</description>
-        </option>
-        <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Disable ANSI output</description>
-        </option>
-        <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-          <description>Do not ask any interactive question</description>
-        </option>
-      </options>
-    </command>
-  </commands>
-  <namespaces>
-    <namespace id="_global">
-      <command>alias1</command>
-      <command>alias2</command>
-      <command>help</command>
-      <command>list</command>
-    </namespace>
-    <namespace id="descriptor">
-      <command>descriptor:command1</command>
-      <command>descriptor:command2</command>
-    </namespace>
-  </namespaces>
-</symfony>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_astext1.txt b/core/vendor/symfony/console/Tests/Fixtures/application_astext1.txt
deleted file mode 100644
index 19dacb2..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_astext1.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-<info>Console Tool</info>
-
-<comment>Usage:</comment>
-  command [options] [arguments]
-
-<comment>Options:</comment>
-  <info>-h, --help</info>            Display this help message
-  <info>-q, --quiet</info>           Do not output any message
-  <info>-V, --version</info>         Display this application version
-  <info>    --ansi</info>            Force ANSI output
-  <info>    --no-ansi</info>         Disable ANSI output
-  <info>-n, --no-interaction</info>  Do not ask any interactive question
-  <info>-v|vv|vvv, --verbose</info>  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-<comment>Available commands:</comment>
-  <info>afoobar</info>  The foo:bar command
-  <info>help</info>     Displays help for a command
-  <info>list</info>     Lists commands
- <comment>foo</comment>
-  <info>foo:bar</info>  The foo:bar command
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_astext2.txt b/core/vendor/symfony/console/Tests/Fixtures/application_astext2.txt
deleted file mode 100644
index c99ccdd..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_astext2.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-<info>Console Tool</info>
-
-<comment>Usage:</comment>
-  command [options] [arguments]
-
-<comment>Options:</comment>
-  <info>-h, --help</info>            Display this help message
-  <info>-q, --quiet</info>           Do not output any message
-  <info>-V, --version</info>         Display this application version
-  <info>    --ansi</info>            Force ANSI output
-  <info>    --no-ansi</info>         Disable ANSI output
-  <info>-n, --no-interaction</info>  Do not ask any interactive question
-  <info>-v|vv|vvv, --verbose</info>  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-<comment>Available commands for the "foo" namespace:</comment>
-  <info>foo:bar</info>  The foo:bar command
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_asxml1.txt b/core/vendor/symfony/console/Tests/Fixtures/application_asxml1.txt
deleted file mode 100644
index 3901cd8..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_asxml1.txt
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<symfony>
-  <commands>
-    <command id="help" name="help">
-    <usages>
-      <usage>help [--xml] [--format FORMAT] [--raw] [--] [&lt;command_name&gt;]</usage>
-    </usages>
-  <description>Displays help for a command</description>
-  <help>The &lt;info&gt;help&lt;/info&gt; command displays help for a given command:
- 
-   &lt;info&gt;php app/console help list&lt;/info&gt;
- 
- You can also output the help in other formats by using the &lt;comment&gt;--format&lt;/comment&gt; option:
- 
-   &lt;info&gt;php app/console help --format=xml list&lt;/info&gt;
- 
- To display the list of available commands, please use the &lt;info&gt;list&lt;/info&gt; command.</help>
-  <arguments>
-    <argument name="command_name" is_required="0" is_array="0">
-      <description>The command name</description>
-      <defaults>
-        <default>help</default>
-      </defaults>
-    </argument>
-  </arguments>
-  <options>
-    <option name="--xml" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>To output help as XML</description>
-    </option>
-    <option name="--format" shortcut="" accept_value="1" is_value_required="1" is_multiple="0">
-      <description>The output format (txt, xml, json, or md)</description>
-      <defaults>
-        <default>txt</default>
-      </defaults>
-    </option>
-    <option name="--raw" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>To output raw command help</description>
-    </option>
-    <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Display this help message</description>
-    </option>
-    <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Do not output any message</description>
-    </option>
-    <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-    </option>
-    <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Display this application version</description>
-    </option>
-    <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Force ANSI output</description>
-    </option>
-    <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Disable ANSI output</description>
-    </option>
-    <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Do not ask any interactive question</description>
-    </option>
-  </options>
-</command>
-    <command id="list" name="list">
-    <usages>
-      <usage>list [--xml] [--raw] [--format FORMAT] [--] [&lt;namespace&gt;]</usage>
-    </usages>
-  <description>Lists commands</description>
-  <help>The &lt;info&gt;list&lt;/info&gt; command lists all commands:
- 
-   &lt;info&gt;php app/console list&lt;/info&gt;
- 
- You can also display the commands for a specific namespace:
- 
-   &lt;info&gt;php app/console list test&lt;/info&gt;
- 
- You can also output the information in other formats by using the &lt;comment&gt;--format&lt;/comment&gt; option:
- 
-   &lt;info&gt;php app/console list --format=xml&lt;/info&gt;
- 
- It's also possible to get raw list of commands (useful for embedding command runner):
- 
-   &lt;info&gt;php app/console list --raw&lt;/info&gt;</help>
-  <arguments>
-    <argument name="namespace" is_required="0" is_array="0">
-      <description>The namespace name</description>
-      <defaults/>
-    </argument>
-  </arguments>
-  <options>
-    <option name="--xml" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>To output list as XML</description>
-    </option>
-    <option name="--raw" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>To output raw command list</description>
-    </option>
-    <option name="--format" shortcut="" accept_value="1" is_value_required="1" is_multiple="0">
-      <description>The output format (txt, xml, json, or md)</description>
-      <defaults>
-        <default>txt</default>
-      </defaults>
-    </option>
-  </options>
-</command>
-    <command id="foo:bar" name="foo:bar">
-    <usages>
-      <usage>foo:bar</usage>
-      <usage>afoobar</usage>
-    </usages>
-  <description>The foo:bar command</description>
-  <help/>
-  <arguments/>
-    <options>
-      <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Display this help message</description>
-      </option>
-      <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Do not output any message</description>
-      </option>
-      <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-      </option>
-      <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Display this application version</description>
-      </option>
-      <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Force ANSI output</description>
-      </option>
-      <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Disable ANSI output</description>
-      </option>
-      <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Do not ask any interactive question</description>
-      </option>
-    </options>
-</command>
-  </commands>
-  <namespaces>
-    <namespace id="_global">
-      <command>afoobar</command>
-      <command>help</command>
-      <command>list</command>
-    </namespace>
-    <namespace id="foo">
-      <command>foo:bar</command>
-    </namespace>
-  </namespaces>
-</symfony>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_asxml2.txt b/core/vendor/symfony/console/Tests/Fixtures/application_asxml2.txt
deleted file mode 100644
index 8fa3b69..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_asxml2.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<symfony>
-  <commands namespace="foo">
-    <command id="foo:bar" name="foo:bar">
-    <usages>
-      <usage>foo:bar</usage>
-      <usage>afoobar</usage>
-    </usages>
-  <description>The foo:bar command</description>
-  <help/>
-  <arguments/>
-    <options>
-      <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Display this help message</description>
-      </option>
-      <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Do not output any message</description>
-      </option>
-      <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-      </option>
-      <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Display this application version</description>
-      </option>
-      <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Force ANSI output</description>
-      </option>
-      <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Disable ANSI output</description>
-      </option>
-      <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-        <description>Do not ask any interactive question</description>
-      </option>
-    </options>
-</command>
-  </commands>
-</symfony>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt b/core/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt
deleted file mode 100644
index 0c16e3c..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt
+++ /dev/null
@@ -1 +0,0 @@
-<info>Console Tool</info>
\ No newline at end of file
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt
deleted file mode 100644
index 4629345..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-                                 
-  [InvalidArgumentException]     
-  Command "foo" is not defined.  
-                                 
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt
deleted file mode 100644
index 3d9d363..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-                                      
-  [InvalidArgumentException]          
-  The "--foo" option does not exist.  
-                                      
-
-
-list [--xml] [--raw] [--format FORMAT] [--] [<namespace>]
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt
deleted file mode 100644
index 72a7286..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-                           
-  [Exception]              
-  Third exception comment  
-                           
-
-
-
-
-                            
-  [Exception]               
-  Second exception comment  
-                            
-
-
-
-
-                                       
-  [Exception]                          
-  First exception <p>this is html</p>  
-                                       
-
-
-foo3:bar
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt
deleted file mode 100644
index b44d50b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-[37;41m                           [39;49m
-[37;41m  [Exception]              [39;49m
-[37;41m  Third exception [39;49m[34;41mcomment[39;49m[37;41m  [39;49m
-[37;41m                           [39;49m
-
-
-
-
-[37;41m                            [39;49m
-[37;41m  [Exception]               [39;49m
-[37;41m  Second exception [39;49m[33mcomment[39m[37;41m  [39;49m
-[37;41m                            [39;49m
-
-
-
-
-[37;41m                                       [39;49m
-[37;41m  [Exception]                          [39;49m
-[37;41m  First exception [39;49m[37;41m<p>[39;49m[37;41mthis is html[39;49m[37;41m</p>[39;49m[37;41m  [39;49m
-[37;41m                                       [39;49m
-
-
-[32mfoo3:bar[39m
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt
deleted file mode 100644
index 19f893b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-                               
-  [InvalidArgumentException]   
-  Command "foo" is not define  
-  d.                           
-                               
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt
deleted file mode 100644
index 6a98660..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-                    
-  [Exception]       
-  エラーメッセージ  
-                    
-
-
-foo
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt
deleted file mode 100644
index 8c8801b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-[37;41m                    [39;49m
-[37;41m  [Exception]       [39;49m
-[37;41m  エラーメッセージ  [39;49m
-[37;41m                    [39;49m
-
-
-[32mfoo[39m
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt b/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt
deleted file mode 100644
index 545cd7b0..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-                              
-  [Exception]                 
-  コマンドの実行中にエラーが  
-  発生しました。              
-                              
-
-
-foo
-
-
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_run1.txt b/core/vendor/symfony/console/Tests/Fixtures/application_run1.txt
deleted file mode 100644
index 0dc2730..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_run1.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Console Tool
-
-Usage:
-  command [options] [arguments]
-
-Options:
-  -h, --help            Display this help message
-  -q, --quiet           Do not output any message
-  -V, --version         Display this application version
-      --ansi            Force ANSI output
-      --no-ansi         Disable ANSI output
-  -n, --no-interaction  Do not ask any interactive question
-  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-Available commands:
-  help  Displays help for a command
-  list  Lists commands
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_run2.txt b/core/vendor/symfony/console/Tests/Fixtures/application_run2.txt
deleted file mode 100644
index d28b928..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_run2.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Usage:
-  help [options] [--] [<command_name>]
-
-Arguments:
-  command               The command to execute
-  command_name          The command name [default: "help"]
-
-Options:
-      --xml             To output help as XML
-      --format=FORMAT   The output format (txt, xml, json, or md) [default: "txt"]
-      --raw             To output raw command help
-  -h, --help            Display this help message
-  -q, --quiet           Do not output any message
-  -V, --version         Display this application version
-      --ansi            Force ANSI output
-      --no-ansi         Disable ANSI output
-  -n, --no-interaction  Do not ask any interactive question
-  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-Help:
- The help command displays help for a given command:
- 
-   php app/console help list
- 
- You can also output the help in other formats by using the --format option:
- 
-   php app/console help --format=xml list
- 
- To display the list of available commands, please use the list command.
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_run3.txt b/core/vendor/symfony/console/Tests/Fixtures/application_run3.txt
deleted file mode 100644
index bc51995..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_run3.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Usage:
-  list [options] [--] [<namespace>]
-
-Arguments:
-  namespace            The namespace name
-
-Options:
-      --xml            To output list as XML
-      --raw            To output raw command list
-      --format=FORMAT  The output format (txt, xml, json, or md) [default: "txt"]
-
-Help:
- The list command lists all commands:
- 
-   php app/console list
- 
- You can also display the commands for a specific namespace:
- 
-   php app/console list test
- 
- You can also output the information in other formats by using the --format option:
- 
-   php app/console list --format=xml
- 
- It's also possible to get raw list of commands (useful for embedding command runner):
- 
-   php app/console list --raw
diff --git a/core/vendor/symfony/console/Tests/Fixtures/application_run4.txt b/core/vendor/symfony/console/Tests/Fixtures/application_run4.txt
deleted file mode 100644
index 47187fc..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/application_run4.txt
+++ /dev/null
@@ -1 +0,0 @@
-Console Tool
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_1.json b/core/vendor/symfony/console/Tests/Fixtures/command_1.json
deleted file mode 100644
index 20f310b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"descriptor:command1","usage":["descriptor:command1", "alias1", "alias2"],"description":"command 1 description","help":"command 1 help","definition":{"arguments":[],"options":[]}}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_1.md b/core/vendor/symfony/console/Tests/Fixtures/command_1.md
deleted file mode 100644
index 34ed3ea..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_1.md
+++ /dev/null
@@ -1,11 +0,0 @@
-descriptor:command1
--------------------
-
-* Description: command 1 description
-* Usage:
-
-  * `descriptor:command1`
-  * `alias1`
-  * `alias2`
-
-command 1 help
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_1.txt b/core/vendor/symfony/console/Tests/Fixtures/command_1.txt
deleted file mode 100644
index 28e14a0..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_1.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-<comment>Usage:</comment>
-  descriptor:command1
-  alias1
-  alias2
-
-<comment>Help:</comment>
- command 1 help
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_1.xml b/core/vendor/symfony/console/Tests/Fixtures/command_1.xml
deleted file mode 100644
index 838b9bd..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<command id="descriptor:command1" name="descriptor:command1">
-  <usages>
-    <usage>descriptor:command1</usage>
-    <usage>alias1</usage>
-    <usage>alias2</usage>
-  </usages>
-  <description>command 1 description</description>
-  <help>command 1 help</help>
-  <arguments/>
-  <options/>
-</command>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_2.json b/core/vendor/symfony/console/Tests/Fixtures/command_2.json
deleted file mode 100644
index 38edd1e..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"descriptor:command2","usage":["descriptor:command2 [-o|--option_name] [--] <argument_name>", "descriptor:command2 -o|--option_name <argument_name>", "descriptor:command2 <argument_name>"],"description":"command 2 description","help":"command 2 help","definition":{"arguments":{"argument_name":{"name":"argument_name","is_required":true,"is_array":false,"description":"","default":null}},"options":{"option_name":{"name":"--option_name","shortcut":"-o","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"","default":false}}}}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_2.md b/core/vendor/symfony/console/Tests/Fixtures/command_2.md
deleted file mode 100644
index 6f538b6..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_2.md
+++ /dev/null
@@ -1,33 +0,0 @@
-descriptor:command2
--------------------
-
-* Description: command 2 description
-* Usage:
-
-  * `descriptor:command2 [-o|--option_name] [--] <argument_name>`
-  * `descriptor:command2 -o|--option_name <argument_name>`
-  * `descriptor:command2 <argument_name>`
-
-command 2 help
-
-### Arguments:
-
-**argument_name:**
-
-* Name: argument_name
-* Is required: yes
-* Is array: no
-* Description: <none>
-* Default: `NULL`
-
-### Options:
-
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: <none>
-* Default: `false`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_2.txt b/core/vendor/symfony/console/Tests/Fixtures/command_2.txt
deleted file mode 100644
index 72f7ce0..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_2.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-<comment>Usage:</comment>
-  descriptor:command2 [options] [--] <argument_name>
-  descriptor:command2 -o|--option_name <argument_name>
-  descriptor:command2 <argument_name>
-
-<comment>Arguments:</comment>
-  <info>argument_name</info>      
-
-<comment>Options:</comment>
-  <info>-o, --option_name</info>  
-
-<comment>Help:</comment>
- command 2 help
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_2.xml b/core/vendor/symfony/console/Tests/Fixtures/command_2.xml
deleted file mode 100644
index 67364ca..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_2.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<command id="descriptor:command2" name="descriptor:command2">
-  <usages>
-    <usage>descriptor:command2 [-o|--option_name] [--] &lt;argument_name&gt;</usage>
-    <usage>descriptor:command2 -o|--option_name &lt;argument_name&gt;</usage>
-    <usage>descriptor:command2 &lt;argument_name&gt;</usage>
-  </usages>
-  <description>command 2 description</description>
-  <help>command 2 help</help>
-  <arguments>
-    <argument name="argument_name" is_required="1" is_array="0">
-      <description></description>
-      <defaults/>
-    </argument>
-  </arguments>
-  <options>
-    <option name="--option_name" shortcut="-o" accept_value="0" is_value_required="0" is_multiple="0">
-      <description></description>
-    </option>
-  </options>
-</command>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_astext.txt b/core/vendor/symfony/console/Tests/Fixtures/command_astext.txt
deleted file mode 100644
index 7e20638..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_astext.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-<comment>Usage:</comment>
-  namespace:name
-  name
-
-<comment>Arguments:</comment>
-  <info>command</info>               The command to execute
-
-<comment>Options:</comment>
-  <info>-h, --help</info>            Display this help message
-  <info>-q, --quiet</info>           Do not output any message
-  <info>-V, --version</info>         Display this application version
-  <info>    --ansi</info>            Force ANSI output
-  <info>    --no-ansi</info>         Disable ANSI output
-  <info>-n, --no-interaction</info>  Do not ask any interactive question
-  <info>-v|vv|vvv, --verbose</info>  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
-
-<comment>Help:</comment>
- help
diff --git a/core/vendor/symfony/console/Tests/Fixtures/command_asxml.txt b/core/vendor/symfony/console/Tests/Fixtures/command_asxml.txt
deleted file mode 100644
index 5e77623..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/command_asxml.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<command id="namespace:name" name="namespace:name">
-  <usages>
-    <usage>namespace:name</usage>
-    <usage>name</usage>
-  </usages>
-  <description>description</description>
-  <help>help</help>
-  <arguments>
-    <argument name="command" is_required="1" is_array="0">
-      <description>The command to execute</description>
-      <defaults/>
-    </argument>
-  </arguments>
-  <options>
-    <option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Display this help message</description>
-    </option>
-    <option name="--quiet" shortcut="-q" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Do not output any message</description>
-    </option>
-    <option name="--verbose" shortcut="-v" shortcuts="-v|-vv|-vvv" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug</description>
-    </option>
-    <option name="--version" shortcut="-V" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Display this application version</description>
-    </option>
-    <option name="--ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Force ANSI output</description>
-    </option>
-    <option name="--no-ansi" shortcut="" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Disable ANSI output</description>
-    </option>
-    <option name="--no-interaction" shortcut="-n" accept_value="0" is_value_required="0" is_multiple="0">
-      <description>Do not ask any interactive question</description>
-    </option>
-  </options>
-</command>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/definition_astext.txt b/core/vendor/symfony/console/Tests/Fixtures/definition_astext.txt
deleted file mode 100644
index 0431c07..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/definition_astext.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-<comment>Arguments:</comment>
-  <info>foo</info>                The foo argument
-  <info>baz</info>                The baz argument<comment> [default: true]</comment>
-  <info>bar</info>                The bar argument<comment> [default: ["http://foo.com/"]]</comment>
-
-<comment>Options:</comment>
-  <info>-f, --foo=FOO</info>      The foo option
-  <info>    --baz[=BAZ]</info>    The baz option<comment> [default: false]</comment>
-  <info>-b, --bar[=BAR]</info>    The bar option<comment> [default: "bar"]</comment>
-  <info>    --qux[=QUX]</info>    The qux option<comment> [default: ["http://foo.com/","bar"]]</comment><comment> (multiple values allowed)</comment>
-  <info>    --qux2[=QUX2]</info>  The qux2 option<comment> [default: {"foo":"bar"}]</comment><comment> (multiple values allowed)</comment>
\ No newline at end of file
diff --git a/core/vendor/symfony/console/Tests/Fixtures/definition_asxml.txt b/core/vendor/symfony/console/Tests/Fixtures/definition_asxml.txt
deleted file mode 100644
index eec8c07..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/definition_asxml.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definition>
-  <arguments>
-    <argument name="foo" is_required="0" is_array="0">
-      <description>The foo argument</description>
-      <defaults/>
-    </argument>
-    <argument name="baz" is_required="0" is_array="0">
-      <description>The baz argument</description>
-      <defaults>
-        <default>true</default>
-      </defaults>
-    </argument>
-    <argument name="bar" is_required="0" is_array="1">
-      <description>The bar argument</description>
-      <defaults>
-        <default>bar</default>
-      </defaults>
-    </argument>
-  </arguments>
-  <options>
-    <option name="--foo" shortcut="-f" accept_value="1" is_value_required="1" is_multiple="0">
-      <description>The foo option</description>
-      <defaults/>
-    </option>
-    <option name="--baz" shortcut="" accept_value="1" is_value_required="0" is_multiple="0">
-      <description>The baz option</description>
-      <defaults>
-        <default>false</default>
-      </defaults>
-    </option>
-    <option name="--bar" shortcut="-b" accept_value="1" is_value_required="0" is_multiple="0">
-      <description>The bar option</description>
-      <defaults>
-        <default>bar</default>
-      </defaults>
-    </option>
-  </options>
-</definition>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.json b/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.json
deleted file mode 100644
index b8173b6..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"argument_name","is_required":true,"is_array":false,"description":"","default":null}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.md b/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.md
deleted file mode 100644
index 88f311a..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.md
+++ /dev/null
@@ -1,7 +0,0 @@
-**argument_name:**
-
-* Name: argument_name
-* Is required: yes
-* Is array: no
-* Description: <none>
-* Default: `NULL`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt b/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt
deleted file mode 100644
index 5503518..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>argument_name</info>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml b/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml
deleted file mode 100644
index cb37f81..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<argument name="argument_name" is_required="1" is_array="0">
-  <description></description>
-  <defaults/>
-</argument>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.json b/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.json
deleted file mode 100644
index ef06b09..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"argument_name","is_required":false,"is_array":true,"description":"argument description","default":[]}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.md b/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.md
deleted file mode 100644
index 3cdb00c..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.md
+++ /dev/null
@@ -1,7 +0,0 @@
-**argument_name:**
-
-* Name: argument_name
-* Is required: no
-* Is array: yes
-* Description: argument description
-* Default: `array ()`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt b/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt
deleted file mode 100644
index e713660..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>argument_name</info>  argument description
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml b/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml
deleted file mode 100644
index 629da5a..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<argument name="argument_name" is_required="0" is_array="1">
-  <description>argument description</description>
-  <defaults/>
-</argument>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.json b/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.json
deleted file mode 100644
index de8484e..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"argument_name","is_required":false,"is_array":false,"description":"argument description","default":"default_value"}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.md b/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.md
deleted file mode 100644
index be1c443..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.md
+++ /dev/null
@@ -1,7 +0,0 @@
-**argument_name:**
-
-* Name: argument_name
-* Is required: no
-* Is array: no
-* Description: argument description
-* Default: `'default_value'`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt b/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt
deleted file mode 100644
index 6b76639..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>argument_name</info>  argument description<comment> [default: "default_value"]</comment>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml b/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml
deleted file mode 100644
index 399a5c8..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<argument name="argument_name" is_required="0" is_array="0">
-  <description>argument description</description>
-  <defaults>
-    <default>default_value</default>
-  </defaults>
-</argument>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.json b/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.json
deleted file mode 100644
index 8067a4d..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"argument_name","is_required":true,"is_array":false,"description":"multiline argument description","default":null}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.md b/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.md
deleted file mode 100644
index f026ab3..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.md
+++ /dev/null
@@ -1,8 +0,0 @@
-**argument_name:**
-
-* Name: argument_name
-* Is required: yes
-* Is array: no
-* Description: multiline
-  argument description
-* Default: `NULL`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt b/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt
deleted file mode 100644
index aa74e8c..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-  <info>argument_name</info>  multiline
-                              argument description
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml b/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml
deleted file mode 100644
index 5ca135e..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<argument name="argument_name" is_required="1" is_array="0">
-  <description>multiline
-argument description</description>
-  <defaults/>
-</argument>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.json b/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.json
deleted file mode 100644
index c7a7d83..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"arguments":[],"options":[]}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.md b/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.md
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.txt b/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml b/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml
deleted file mode 100644
index b5481ce..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definition>
-  <arguments/>
-  <options/>
-</definition>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.json b/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.json
deleted file mode 100644
index 9964a55..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"arguments":{"argument_name":{"name":"argument_name","is_required":true,"is_array":false,"description":"","default":null}},"options":[]}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.md b/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.md
deleted file mode 100644
index 923191c..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.md
+++ /dev/null
@@ -1,9 +0,0 @@
-### Arguments:
-
-**argument_name:**
-
-* Name: argument_name
-* Is required: yes
-* Is array: no
-* Description: <none>
-* Default: `NULL`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt b/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt
deleted file mode 100644
index 73b0f30..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-<comment>Arguments:</comment>
-  <info>argument_name</info>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml b/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml
deleted file mode 100644
index 102efc1..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definition>
-  <arguments>
-    <argument name="argument_name" is_required="1" is_array="0">
-      <description></description>
-      <defaults/>
-    </argument>
-  </arguments>
-  <options/>
-</definition>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.json b/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.json
deleted file mode 100644
index 6a86056..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.json
+++ /dev/null
@@ -1 +0,0 @@
-{"arguments":[],"options":{"option_name":{"name":"--option_name","shortcut":"-o","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"","default":false}}}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.md b/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.md
deleted file mode 100644
index 40fd7b0..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.md
+++ /dev/null
@@ -1,11 +0,0 @@
-### Options:
-
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: <none>
-* Default: `false`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt b/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt
deleted file mode 100644
index c02766f..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-<comment>Options:</comment>
-  <info>-o, --option_name</info>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml b/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml
deleted file mode 100644
index bc95151..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definition>
-  <arguments/>
-  <options>
-    <option name="--option_name" shortcut="-o" accept_value="0" is_value_required="0" is_multiple="0">
-      <description></description>
-    </option>
-  </options>
-</definition>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.json b/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.json
deleted file mode 100644
index c5a0019..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.json
+++ /dev/null
@@ -1 +0,0 @@
-{"arguments":{"argument_name":{"name":"argument_name","is_required":true,"is_array":false,"description":"","default":null}},"options":{"option_name":{"name":"--option_name","shortcut":"-o","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"","default":false}}}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.md b/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.md
deleted file mode 100644
index a31feea..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.md
+++ /dev/null
@@ -1,21 +0,0 @@
-### Arguments:
-
-**argument_name:**
-
-* Name: argument_name
-* Is required: yes
-* Is array: no
-* Description: <none>
-* Default: `NULL`
-
-### Options:
-
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: <none>
-* Default: `false`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt b/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt
deleted file mode 100644
index 63aa81d..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-<comment>Arguments:</comment>
-  <info>argument_name</info>      
-
-<comment>Options:</comment>
-  <info>-o, --option_name</info>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml b/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml
deleted file mode 100644
index cffceec..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definition>
-  <arguments>
-    <argument name="argument_name" is_required="1" is_array="0">
-      <description></description>
-      <defaults/>
-    </argument>
-  </arguments>
-  <options>
-    <option name="--option_name" shortcut="-o" accept_value="0" is_value_required="0" is_multiple="0">
-      <description></description>
-    </option>
-  </options>
-</definition>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.json b/core/vendor/symfony/console/Tests/Fixtures/input_option_1.json
deleted file mode 100644
index 60c5b56..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"--option_name","shortcut":"-o","accept_value":false,"is_value_required":false,"is_multiple":false,"description":"","default":false}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.md b/core/vendor/symfony/console/Tests/Fixtures/input_option_1.md
deleted file mode 100644
index 6f9e9a7..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.md
+++ /dev/null
@@ -1,9 +0,0 @@
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: no
-* Is value required: no
-* Is multiple: no
-* Description: <none>
-* Default: `false`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.txt b/core/vendor/symfony/console/Tests/Fixtures/input_option_1.txt
deleted file mode 100644
index 3a5e4ee..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>-o, --option_name</info>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.xml b/core/vendor/symfony/console/Tests/Fixtures/input_option_1.xml
deleted file mode 100644
index 8a64ea6..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_1.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<option name="--option_name" shortcut="-o" accept_value="0" is_value_required="0" is_multiple="0">
-  <description></description>
-</option>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.json b/core/vendor/symfony/console/Tests/Fixtures/input_option_2.json
deleted file mode 100644
index 04e4228..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"--option_name","shortcut":"-o","accept_value":true,"is_value_required":false,"is_multiple":false,"description":"option description","default":"default_value"}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.md b/core/vendor/symfony/console/Tests/Fixtures/input_option_2.md
deleted file mode 100644
index 634ac0b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.md
+++ /dev/null
@@ -1,9 +0,0 @@
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: yes
-* Is value required: no
-* Is multiple: no
-* Description: option description
-* Default: `'default_value'`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.txt b/core/vendor/symfony/console/Tests/Fixtures/input_option_2.txt
deleted file mode 100644
index 1009eff..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>-o, --option_name[=OPTION_NAME]</info>  option description<comment> [default: "default_value"]</comment>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.xml b/core/vendor/symfony/console/Tests/Fixtures/input_option_2.xml
deleted file mode 100644
index 4afac5b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_2.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<option name="--option_name" shortcut="-o" accept_value="1" is_value_required="0" is_multiple="0">
-  <description>option description</description>
-  <defaults>
-    <default>default_value</default>
-  </defaults>
-</option>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.json b/core/vendor/symfony/console/Tests/Fixtures/input_option_3.json
deleted file mode 100644
index c1ea120..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"--option_name","shortcut":"-o","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"option description","default":null}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.md b/core/vendor/symfony/console/Tests/Fixtures/input_option_3.md
deleted file mode 100644
index 3428289..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.md
+++ /dev/null
@@ -1,9 +0,0 @@
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: option description
-* Default: `NULL`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.txt b/core/vendor/symfony/console/Tests/Fixtures/input_option_3.txt
deleted file mode 100644
index 947bb65..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>-o, --option_name=OPTION_NAME</info>  option description
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.xml b/core/vendor/symfony/console/Tests/Fixtures/input_option_3.xml
deleted file mode 100644
index dcc0631..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_3.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<option name="--option_name" shortcut="-o" accept_value="1" is_value_required="1" is_multiple="0">
-  <description>option description</description>
-  <defaults/>
-</option>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.json b/core/vendor/symfony/console/Tests/Fixtures/input_option_4.json
deleted file mode 100644
index 1b671d8..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"--option_name","shortcut":"-o","accept_value":true,"is_value_required":false,"is_multiple":true,"description":"option description","default":[]}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.md b/core/vendor/symfony/console/Tests/Fixtures/input_option_4.md
deleted file mode 100644
index 8ffba56..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.md
+++ /dev/null
@@ -1,9 +0,0 @@
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: yes
-* Is value required: no
-* Is multiple: yes
-* Description: option description
-* Default: `array ()`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.txt b/core/vendor/symfony/console/Tests/Fixtures/input_option_4.txt
deleted file mode 100644
index 27edf77..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>-o, --option_name[=OPTION_NAME]</info>  option description<comment> (multiple values allowed)</comment>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.xml b/core/vendor/symfony/console/Tests/Fixtures/input_option_4.xml
deleted file mode 100644
index 5e2418b..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_4.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<option name="--option_name" shortcut="-o" accept_value="1" is_value_required="0" is_multiple="1">
-  <description>option description</description>
-  <defaults/>
-</option>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.json b/core/vendor/symfony/console/Tests/Fixtures/input_option_5.json
deleted file mode 100644
index 35a1405..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"--option_name","shortcut":"-o","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"multiline option description","default":null}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.md b/core/vendor/symfony/console/Tests/Fixtures/input_option_5.md
deleted file mode 100644
index 82f51ca..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.md
+++ /dev/null
@@ -1,10 +0,0 @@
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o`
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: multiline
-  option description
-* Default: `NULL`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.txt b/core/vendor/symfony/console/Tests/Fixtures/input_option_5.txt
deleted file mode 100644
index 4368883..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-  <info>-o, --option_name=OPTION_NAME</info>  multiline
-                                              option description
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.xml b/core/vendor/symfony/console/Tests/Fixtures/input_option_5.xml
deleted file mode 100644
index 90040cc..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_5.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<option name="--option_name" shortcut="-o" accept_value="1" is_value_required="1" is_multiple="0">
-  <description>multiline
-option description</description>
-  <defaults/>
-</option>
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.json b/core/vendor/symfony/console/Tests/Fixtures/input_option_6.json
deleted file mode 100644
index d84e872..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"--option_name","shortcut":"-o|-O","accept_value":true,"is_value_required":true,"is_multiple":false,"description":"option with multiple shortcuts","default":null}
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.md b/core/vendor/symfony/console/Tests/Fixtures/input_option_6.md
deleted file mode 100644
index ed1ea1c..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.md
+++ /dev/null
@@ -1,9 +0,0 @@
-**option_name:**
-
-* Name: `--option_name`
-* Shortcut: `-o|-O`
-* Accept value: yes
-* Is value required: yes
-* Is multiple: no
-* Description: option with multiple shortcuts
-* Default: `NULL`
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.txt b/core/vendor/symfony/console/Tests/Fixtures/input_option_6.txt
deleted file mode 100644
index 0e6c975..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.txt
+++ /dev/null
@@ -1 +0,0 @@
-  <info>-o|O, --option_name=OPTION_NAME</info>  option with multiple shortcuts
diff --git a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.xml b/core/vendor/symfony/console/Tests/Fixtures/input_option_6.xml
deleted file mode 100644
index 06126a2..0000000
--- a/core/vendor/symfony/console/Tests/Fixtures/input_option_6.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<option name="--option_name" shortcut="-o" shortcuts="-o|-O" accept_value="1" is_value_required="1" is_multiple="0">
-  <description>option with multiple shortcuts</description>
-  <defaults/>
-</option>
diff --git a/core/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php b/core/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php
deleted file mode 100644
index 774df26..0000000
--- a/core/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Formatter;
-
-use Symfony\Component\Console\Formatter\OutputFormatterStyleStack;
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-
-class OutputFormatterStyleStackTest extends \PHPUnit_Framework_TestCase
-{
-    public function testPush()
-    {
-        $stack = new OutputFormatterStyleStack();
-        $stack->push($s1 = new OutputFormatterStyle('white', 'black'));
-        $stack->push($s2 = new OutputFormatterStyle('yellow', 'blue'));
-
-        $this->assertEquals($s2, $stack->getCurrent());
-
-        $stack->push($s3 = new OutputFormatterStyle('green', 'red'));
-
-        $this->assertEquals($s3, $stack->getCurrent());
-    }
-
-    public function testPop()
-    {
-        $stack = new OutputFormatterStyleStack();
-        $stack->push($s1 = new OutputFormatterStyle('white', 'black'));
-        $stack->push($s2 = new OutputFormatterStyle('yellow', 'blue'));
-
-        $this->assertEquals($s2, $stack->pop());
-        $this->assertEquals($s1, $stack->pop());
-    }
-
-    public function testPopEmpty()
-    {
-        $stack = new OutputFormatterStyleStack();
-        $style = new OutputFormatterStyle();
-
-        $this->assertEquals($style, $stack->pop());
-    }
-
-    public function testPopNotLast()
-    {
-        $stack = new OutputFormatterStyleStack();
-        $stack->push($s1 = new OutputFormatterStyle('white', 'black'));
-        $stack->push($s2 = new OutputFormatterStyle('yellow', 'blue'));
-        $stack->push($s3 = new OutputFormatterStyle('green', 'red'));
-
-        $this->assertEquals($s2, $stack->pop($s2));
-        $this->assertEquals($s1, $stack->pop());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testInvalidPop()
-    {
-        $stack = new OutputFormatterStyleStack();
-        $stack->push(new OutputFormatterStyle('white', 'black'));
-        $stack->pop(new OutputFormatterStyle('yellow', 'blue'));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php b/core/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php
deleted file mode 100644
index 0abfb3c..0000000
--- a/core/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Formatter;
-
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-
-class OutputFormatterStyleTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $style = new OutputFormatterStyle('green', 'black', array('bold', 'underscore'));
-        $this->assertEquals("\033[32;40;1;4mfoo\033[39;49;22;24m", $style->apply('foo'));
-
-        $style = new OutputFormatterStyle('red', null, array('blink'));
-        $this->assertEquals("\033[31;5mfoo\033[39;25m", $style->apply('foo'));
-
-        $style = new OutputFormatterStyle(null, 'white');
-        $this->assertEquals("\033[47mfoo\033[49m", $style->apply('foo'));
-    }
-
-    public function testForeground()
-    {
-        $style = new OutputFormatterStyle();
-
-        $style->setForeground('black');
-        $this->assertEquals("\033[30mfoo\033[39m", $style->apply('foo'));
-
-        $style->setForeground('blue');
-        $this->assertEquals("\033[34mfoo\033[39m", $style->apply('foo'));
-
-        $style->setForeground('default');
-        $this->assertEquals("\033[39mfoo\033[39m", $style->apply('foo'));
-
-        $this->setExpectedException('InvalidArgumentException');
-        $style->setForeground('undefined-color');
-    }
-
-    public function testBackground()
-    {
-        $style = new OutputFormatterStyle();
-
-        $style->setBackground('black');
-        $this->assertEquals("\033[40mfoo\033[49m", $style->apply('foo'));
-
-        $style->setBackground('yellow');
-        $this->assertEquals("\033[43mfoo\033[49m", $style->apply('foo'));
-
-        $style->setBackground('default');
-        $this->assertEquals("\033[49mfoo\033[49m", $style->apply('foo'));
-
-        $this->setExpectedException('InvalidArgumentException');
-        $style->setBackground('undefined-color');
-    }
-
-    public function testOptions()
-    {
-        $style = new OutputFormatterStyle();
-
-        $style->setOptions(array('reverse', 'conceal'));
-        $this->assertEquals("\033[7;8mfoo\033[27;28m", $style->apply('foo'));
-
-        $style->setOption('bold');
-        $this->assertEquals("\033[7;8;1mfoo\033[27;28;22m", $style->apply('foo'));
-
-        $style->unsetOption('reverse');
-        $this->assertEquals("\033[8;1mfoo\033[28;22m", $style->apply('foo'));
-
-        $style->setOption('bold');
-        $this->assertEquals("\033[8;1mfoo\033[28;22m", $style->apply('foo'));
-
-        $style->setOptions(array('bold'));
-        $this->assertEquals("\033[1mfoo\033[22m", $style->apply('foo'));
-
-        try {
-            $style->setOption('foo');
-            $this->fail('->setOption() throws an \InvalidArgumentException when the option does not exist in the available options');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->setOption() throws an \InvalidArgumentException when the option does not exist in the available options');
-            $this->assertContains('Invalid option specified: "foo"', $e->getMessage(), '->setOption() throws an \InvalidArgumentException when the option does not exist in the available options');
-        }
-
-        try {
-            $style->unsetOption('foo');
-            $this->fail('->unsetOption() throws an \InvalidArgumentException when the option does not exist in the available options');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->unsetOption() throws an \InvalidArgumentException when the option does not exist in the available options');
-            $this->assertContains('Invalid option specified: "foo"', $e->getMessage(), '->unsetOption() throws an \InvalidArgumentException when the option does not exist in the available options');
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php b/core/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php
deleted file mode 100644
index 510a4e7..0000000
--- a/core/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php
+++ /dev/null
@@ -1,273 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Formatter;
-
-use Symfony\Component\Console\Formatter\OutputFormatter;
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-
-class OutputFormatterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testEmptyTag()
-    {
-        $formatter = new OutputFormatter(true);
-        $this->assertEquals('foo<>bar', $formatter->format('foo<>bar'));
-    }
-
-    public function testLGCharEscaping()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals('foo<bar', $formatter->format('foo\\<bar'));
-        $this->assertEquals('<info>some info</info>', $formatter->format('\\<info>some info\\</info>'));
-        $this->assertEquals('\\<info>some info\\</info>', OutputFormatter::escape('<info>some info</info>'));
-
-        $this->assertEquals(
-            "\033[33mSymfony\\Component\\Console does work very well!\033[39m",
-            $formatter->format('<comment>Symfony\Component\Console does work very well!</comment>')
-        );
-    }
-
-    public function testBundledStyles()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertTrue($formatter->hasStyle('error'));
-        $this->assertTrue($formatter->hasStyle('info'));
-        $this->assertTrue($formatter->hasStyle('comment'));
-        $this->assertTrue($formatter->hasStyle('question'));
-
-        $this->assertEquals(
-            "\033[37;41msome error\033[39;49m",
-            $formatter->format('<error>some error</error>')
-        );
-        $this->assertEquals(
-            "\033[32msome info\033[39m",
-            $formatter->format('<info>some info</info>')
-        );
-        $this->assertEquals(
-            "\033[33msome comment\033[39m",
-            $formatter->format('<comment>some comment</comment>')
-        );
-        $this->assertEquals(
-            "\033[30;46msome question\033[39;49m",
-            $formatter->format('<question>some question</question>')
-        );
-    }
-
-    public function testNestedStyles()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals(
-            "\033[37;41msome \033[39;49m\033[32msome info\033[39m\033[37;41m error\033[39;49m",
-            $formatter->format('<error>some <info>some info</info> error</error>')
-        );
-    }
-
-    public function testAdjacentStyles()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals(
-            "\033[37;41msome error\033[39;49m\033[32msome info\033[39m",
-            $formatter->format('<error>some error</error><info>some info</info>')
-        );
-    }
-
-    public function testStyleMatchingNotGreedy()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals(
-            "(\033[32m>=2.0,<2.3\033[39m)",
-            $formatter->format('(<info>>=2.0,<2.3</info>)')
-        );
-    }
-
-    public function testStyleEscaping()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals(
-            "(\033[32mz>=2.0,<a2.3\033[39m)",
-            $formatter->format('(<info>'.$formatter->escape('z>=2.0,<a2.3').'</info>)')
-        );
-
-        $this->assertEquals(
-            "\033[32m<error>some error</error>\033[39m",
-            $formatter->format('<info>'.$formatter->escape('<error>some error</error>').'</info>')
-        );
-    }
-
-    public function testDeepNestedStyles()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals(
-            "\033[37;41merror\033[39;49m\033[32minfo\033[39m\033[33mcomment\033[39m\033[37;41merror\033[39;49m",
-            $formatter->format('<error>error<info>info<comment>comment</info>error</error>')
-        );
-    }
-
-    public function testNewStyle()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $style = new OutputFormatterStyle('blue', 'white');
-        $formatter->setStyle('test', $style);
-
-        $this->assertEquals($style, $formatter->getStyle('test'));
-        $this->assertNotEquals($style, $formatter->getStyle('info'));
-
-        $style = new OutputFormatterStyle('blue', 'white');
-        $formatter->setStyle('b', $style);
-
-        $this->assertEquals("\033[34;47msome \033[39;49m\033[34;47mcustom\033[39;49m\033[34;47m msg\033[39;49m", $formatter->format('<test>some <b>custom</b> msg</test>'));
-    }
-
-    public function testRedefineStyle()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $style = new OutputFormatterStyle('blue', 'white');
-        $formatter->setStyle('info', $style);
-
-        $this->assertEquals("\033[34;47msome custom msg\033[39;49m", $formatter->format('<info>some custom msg</info>'));
-    }
-
-    public function testInlineStyle()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals("\033[34;41msome text\033[39;49m", $formatter->format('<fg=blue;bg=red>some text</>'));
-        $this->assertEquals("\033[34;41msome text\033[39;49m", $formatter->format('<fg=blue;bg=red>some text</fg=blue;bg=red>'));
-    }
-
-    public function testNonStyleTag()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals("\033[32msome \033[39m\033[32m<tag>\033[39m\033[32m \033[39m\033[32m<setting=value>\033[39m\033[32m styled \033[39m\033[32m<p>\033[39m\033[32msingle-char tag\033[39m\033[32m</p>\033[39m", $formatter->format('<info>some <tag> <setting=value> styled <p>single-char tag</p></info>'));
-    }
-
-    public function testFormatLongString()
-    {
-        $formatter = new OutputFormatter(true);
-        $long = str_repeat('\\', 14000);
-        $this->assertEquals("\033[37;41msome error\033[39;49m".$long, $formatter->format('<error>some error</error>'.$long));
-    }
-
-    public function testFormatToStringObject()
-    {
-        $formatter = new OutputFormatter(false);
-        $this->assertEquals(
-            'some info', $formatter->format(new TableCell())
-        );
-    }
-
-    public function testNotDecoratedFormatter()
-    {
-        $formatter = new OutputFormatter(false);
-
-        $this->assertTrue($formatter->hasStyle('error'));
-        $this->assertTrue($formatter->hasStyle('info'));
-        $this->assertTrue($formatter->hasStyle('comment'));
-        $this->assertTrue($formatter->hasStyle('question'));
-
-        $this->assertEquals(
-            'some error', $formatter->format('<error>some error</error>')
-        );
-        $this->assertEquals(
-            'some info', $formatter->format('<info>some info</info>')
-        );
-        $this->assertEquals(
-            'some comment', $formatter->format('<comment>some comment</comment>')
-        );
-        $this->assertEquals(
-            'some question', $formatter->format('<question>some question</question>')
-        );
-
-        $formatter->setDecorated(true);
-
-        $this->assertEquals(
-            "\033[37;41msome error\033[39;49m", $formatter->format('<error>some error</error>')
-        );
-        $this->assertEquals(
-            "\033[32msome info\033[39m", $formatter->format('<info>some info</info>')
-        );
-        $this->assertEquals(
-            "\033[33msome comment\033[39m", $formatter->format('<comment>some comment</comment>')
-        );
-        $this->assertEquals(
-            "\033[30;46msome question\033[39;49m", $formatter->format('<question>some question</question>')
-        );
-    }
-
-    public function testContentWithLineBreaks()
-    {
-        $formatter = new OutputFormatter(true);
-
-        $this->assertEquals(<<<EOF
-\033[32m
-some text\033[39m
-EOF
-            , $formatter->format(<<<EOF
-<info>
-some text</info>
-EOF
-        ));
-
-        $this->assertEquals(<<<EOF
-\033[32msome text
-\033[39m
-EOF
-            , $formatter->format(<<<EOF
-<info>some text
-</info>
-EOF
-        ));
-
-        $this->assertEquals(<<<EOF
-\033[32m
-some text
-\033[39m
-EOF
-            , $formatter->format(<<<EOF
-<info>
-some text
-</info>
-EOF
-        ));
-
-        $this->assertEquals(<<<EOF
-\033[32m
-some text
-more text
-\033[39m
-EOF
-            , $formatter->format(<<<EOF
-<info>
-some text
-more text
-</info>
-EOF
-        ));
-    }
-}
-
-class TableCell
-{
-    public function __toString()
-    {
-        return '<info>some info</info>';
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php b/core/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php
deleted file mode 100644
index e332774..0000000
--- a/core/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\FormatterHelper;
-
-class FormatterHelperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testFormatSection()
-    {
-        $formatter = new FormatterHelper();
-
-        $this->assertEquals(
-            '<info>[cli]</info> Some text to display',
-            $formatter->formatSection('cli', 'Some text to display'),
-            '::formatSection() formats a message in a section'
-        );
-    }
-
-    public function testFormatBlock()
-    {
-        $formatter = new FormatterHelper();
-
-        $this->assertEquals(
-            '<error> Some text to display </error>',
-            $formatter->formatBlock('Some text to display', 'error'),
-            '::formatBlock() formats a message in a block'
-        );
-
-        $this->assertEquals(
-            '<error> Some text to display </error>'."\n".
-            '<error> foo bar              </error>',
-            $formatter->formatBlock(array('Some text to display', 'foo bar'), 'error'),
-            '::formatBlock() formats a message in a block'
-        );
-
-        $this->assertEquals(
-            '<error>                        </error>'."\n".
-            '<error>  Some text to display  </error>'."\n".
-            '<error>                        </error>',
-            $formatter->formatBlock('Some text to display', 'error', true),
-            '::formatBlock() formats a message in a block'
-        );
-    }
-
-    public function testFormatBlockWithDiacriticLetters()
-    {
-        if (!function_exists('mb_detect_encoding')) {
-            $this->markTestSkipped('This test requires mbstring to work.');
-        }
-
-        $formatter = new FormatterHelper();
-
-        $this->assertEquals(
-            '<error>                       </error>'."\n".
-            '<error>  Du texte à afficher  </error>'."\n".
-            '<error>                       </error>',
-            $formatter->formatBlock('Du texte à afficher', 'error', true),
-            '::formatBlock() formats a message in a block'
-        );
-    }
-
-    public function testFormatBlockWithDoubleWidthDiacriticLetters()
-    {
-        if (!extension_loaded('mbstring')) {
-            $this->markTestSkipped('This test requires mbstring to work.');
-        }
-        $formatter = new FormatterHelper();
-        $this->assertEquals(
-            '<error>                    </error>'."\n".
-            '<error>  表示するテキスト  </error>'."\n".
-            '<error>                    </error>',
-            $formatter->formatBlock('表示するテキスト', 'error', true),
-            '::formatBlock() formats a message in a block'
-        );
-    }
-
-    public function testFormatBlockLGEscaping()
-    {
-        $formatter = new FormatterHelper();
-
-        $this->assertEquals(
-            '<error>                            </error>'."\n".
-            '<error>  \<info>some info\</info>  </error>'."\n".
-            '<error>                            </error>',
-            $formatter->formatBlock('<info>some info</info>', 'error', true),
-            '::formatBlock() escapes \'<\' chars'
-        );
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/HelperSetTest.php b/core/vendor/symfony/console/Tests/Helper/HelperSetTest.php
deleted file mode 100644
index bf58a45..0000000
--- a/core/vendor/symfony/console/Tests/Helper/HelperSetTest.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Command\Command;
-
-class HelperSetTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::__construct
-     */
-    public function testConstructor()
-    {
-        $mock_helper = $this->getGenericMockHelper('fake_helper');
-        $helperset = new HelperSet(array('fake_helper_alias' => $mock_helper));
-
-        $this->assertEquals($mock_helper, $helperset->get('fake_helper_alias'), '__construct sets given helper to helpers');
-        $this->assertTrue($helperset->has('fake_helper_alias'), '__construct sets helper alias for given helper');
-    }
-
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::set
-     */
-    public function testSet()
-    {
-        $helperset = new HelperSet();
-        $helperset->set($this->getGenericMockHelper('fake_helper', $helperset));
-        $this->assertTrue($helperset->has('fake_helper'), '->set() adds helper to helpers');
-
-        $helperset = new HelperSet();
-        $helperset->set($this->getGenericMockHelper('fake_helper_01', $helperset));
-        $helperset->set($this->getGenericMockHelper('fake_helper_02', $helperset));
-        $this->assertTrue($helperset->has('fake_helper_01'), '->set() will set multiple helpers on consecutive calls');
-        $this->assertTrue($helperset->has('fake_helper_02'), '->set() will set multiple helpers on consecutive calls');
-
-        $helperset = new HelperSet();
-        $helperset->set($this->getGenericMockHelper('fake_helper', $helperset), 'fake_helper_alias');
-        $this->assertTrue($helperset->has('fake_helper'), '->set() adds helper alias when set');
-        $this->assertTrue($helperset->has('fake_helper_alias'), '->set() adds helper alias when set');
-    }
-
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::has
-     */
-    public function testHas()
-    {
-        $helperset = new HelperSet(array('fake_helper_alias' => $this->getGenericMockHelper('fake_helper')));
-        $this->assertTrue($helperset->has('fake_helper'), '->has() finds set helper');
-        $this->assertTrue($helperset->has('fake_helper_alias'), '->has() finds set helper by alias');
-    }
-
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::get
-     */
-    public function testGet()
-    {
-        $helper_01 = $this->getGenericMockHelper('fake_helper_01');
-        $helper_02 = $this->getGenericMockHelper('fake_helper_02');
-        $helperset = new HelperSet(array('fake_helper_01_alias' => $helper_01, 'fake_helper_02_alias' => $helper_02));
-        $this->assertEquals($helper_01, $helperset->get('fake_helper_01'), '->get() returns correct helper by name');
-        $this->assertEquals($helper_01, $helperset->get('fake_helper_01_alias'), '->get() returns correct helper by alias');
-        $this->assertEquals($helper_02, $helperset->get('fake_helper_02'), '->get() returns correct helper by name');
-        $this->assertEquals($helper_02, $helperset->get('fake_helper_02_alias'), '->get() returns correct helper by alias');
-
-        $helperset = new HelperSet();
-        try {
-            $helperset->get('foo');
-            $this->fail('->get() throws \InvalidArgumentException when helper not found');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->get() throws \InvalidArgumentException when helper not found');
-            $this->assertContains('The helper "foo" is not defined.', $e->getMessage(), '->get() throws \InvalidArgumentException when helper not found');
-        }
-    }
-
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::setCommand
-     */
-    public function testSetCommand()
-    {
-        $cmd_01 = new Command('foo');
-        $cmd_02 = new Command('bar');
-
-        $helperset = new HelperSet();
-        $helperset->setCommand($cmd_01);
-        $this->assertEquals($cmd_01, $helperset->getCommand(), '->setCommand() stores given command');
-
-        $helperset = new HelperSet();
-        $helperset->setCommand($cmd_01);
-        $helperset->setCommand($cmd_02);
-        $this->assertEquals($cmd_02, $helperset->getCommand(), '->setCommand() overwrites stored command with consecutive calls');
-    }
-
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::getCommand
-     */
-    public function testGetCommand()
-    {
-        $cmd = new Command('foo');
-        $helperset = new HelperSet();
-        $helperset->setCommand($cmd);
-        $this->assertEquals($cmd, $helperset->getCommand(), '->getCommand() retrieves stored command');
-    }
-
-    /**
-     * @covers \Symfony\Component\Console\Helper\HelperSet::getIterator
-     */
-    public function testIteration()
-    {
-        $helperset = new HelperSet();
-        $helperset->set($this->getGenericMockHelper('fake_helper_01', $helperset));
-        $helperset->set($this->getGenericMockHelper('fake_helper_02', $helperset));
-
-        $helpers = array('fake_helper_01', 'fake_helper_02');
-        $i = 0;
-
-        foreach ($helperset as $helper) {
-            $this->assertEquals($helpers[$i++], $helper->getName());
-        }
-    }
-
-    /**
-     * Create a generic mock for the helper interface. Optionally check for a call to setHelperSet with a specific
-     * helperset instance.
-     *
-     * @param string    $name
-     * @param HelperSet $helperset allows a mock to verify a particular helperset set is being added to the Helper
-     */
-    private function getGenericMockHelper($name, HelperSet $helperset = null)
-    {
-        $mock_helper = $this->getMock('\Symfony\Component\Console\Helper\HelperInterface');
-        $mock_helper->expects($this->any())
-            ->method('getName')
-            ->will($this->returnValue($name));
-
-        if ($helperset) {
-            $mock_helper->expects($this->any())
-                ->method('setHelperSet')
-                ->with($this->equalTo($helperset));
-        }
-
-        return $mock_helper;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/LegacyDialogHelperTest.php b/core/vendor/symfony/console/Tests/Helper/LegacyDialogHelperTest.php
deleted file mode 100644
index e130cdc..0000000
--- a/core/vendor/symfony/console/Tests/Helper/LegacyDialogHelperTest.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Helper\DialogHelper;
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Helper\FormatterHelper;
-use Symfony\Component\Console\Output\StreamOutput;
-
-/**
- * @group legacy
- */
-class LegacyDialogHelperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSelect()
-    {
-        $dialog = new DialogHelper();
-
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $heroes = array('Superman', 'Batman', 'Spiderman');
-
-        $dialog->setInputStream($this->getInputStream("\n1\n  1  \nFabien\n1\nFabien\n1\n0,2\n 0 , 2  \n\n\n"));
-        $this->assertEquals('2', $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes, '2'));
-        $this->assertEquals('1', $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes));
-        $this->assertEquals('1', $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes));
-        $this->assertEquals('1', $dialog->select($output = $this->getOutputStream(), 'What is your favorite superhero?', $heroes, null, false, 'Input "%s" is not a superhero!', false));
-
-        rewind($output->getStream());
-        $this->assertContains('Input "Fabien" is not a superhero!', stream_get_contents($output->getStream()));
-
-        try {
-            $this->assertEquals('1', $dialog->select($output = $this->getOutputStream(), 'What is your favorite superhero?', $heroes, null, 1));
-            $this->fail();
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('Value "Fabien" is invalid', $e->getMessage());
-        }
-
-        $this->assertEquals(array('1'), $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes, null, false, 'Input "%s" is not a superhero!', true));
-        $this->assertEquals(array('0', '2'), $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes, null, false, 'Input "%s" is not a superhero!', true));
-        $this->assertEquals(array('0', '2'), $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes, null, false, 'Input "%s" is not a superhero!', true));
-        $this->assertEquals(array('0', '1'), $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes, '0,1', false, 'Input "%s" is not a superhero!', true));
-        $this->assertEquals(array('0', '1'), $dialog->select($this->getOutputStream(), 'What is your favorite superhero?', $heroes, ' 0 , 1 ', false, 'Input "%s" is not a superhero!', true));
-    }
-
-    public function testAsk()
-    {
-        $dialog = new DialogHelper();
-
-        $dialog->setInputStream($this->getInputStream("\n8AM\n"));
-
-        $this->assertEquals('2PM', $dialog->ask($this->getOutputStream(), 'What time is it?', '2PM'));
-        $this->assertEquals('8AM', $dialog->ask($output = $this->getOutputStream(), 'What time is it?', '2PM'));
-
-        rewind($output->getStream());
-        $this->assertEquals('What time is it?', stream_get_contents($output->getStream()));
-    }
-
-    public function testAskWithAutocomplete()
-    {
-        if (!$this->hasSttyAvailable()) {
-            $this->markTestSkipped('`stty` is required to test autocomplete functionality');
-        }
-
-        // Acm<NEWLINE>
-        // Ac<BACKSPACE><BACKSPACE>s<TAB>Test<NEWLINE>
-        // <NEWLINE>
-        // <UP ARROW><UP ARROW><NEWLINE>
-        // <UP ARROW><UP ARROW><UP ARROW><UP ARROW><UP ARROW><TAB>Test<NEWLINE>
-        // <DOWN ARROW><NEWLINE>
-        // S<BACKSPACE><BACKSPACE><DOWN ARROW><DOWN ARROW><NEWLINE>
-        // F00<BACKSPACE><BACKSPACE>oo<TAB><NEWLINE>
-        $inputStream = $this->getInputStream("Acm\nAc\177\177s\tTest\n\n\033[A\033[A\n\033[A\033[A\033[A\033[A\033[A\tTest\n\033[B\nS\177\177\033[B\033[B\nF00\177\177oo\t\n");
-
-        $dialog = new DialogHelper();
-        $dialog->setInputStream($inputStream);
-
-        $bundles = array('AcmeDemoBundle', 'AsseticBundle', 'SecurityBundle', 'FooBundle');
-
-        $this->assertEquals('AcmeDemoBundle', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('AsseticBundleTest', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('FrameworkBundle', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('SecurityBundle', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('FooBundleTest', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('AcmeDemoBundle', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('AsseticBundle', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-        $this->assertEquals('FooBundle', $dialog->ask($this->getOutputStream(), 'Please select a bundle', 'FrameworkBundle', $bundles));
-    }
-
-    /**
-     * @group tty
-     */
-    public function testAskHiddenResponse()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('This test is not supported on Windows');
-        }
-
-        $dialog = new DialogHelper();
-
-        $dialog->setInputStream($this->getInputStream("8AM\n"));
-
-        $this->assertEquals('8AM', $dialog->askHiddenResponse($this->getOutputStream(), 'What time is it?'));
-    }
-
-    public function testAskConfirmation()
-    {
-        $dialog = new DialogHelper();
-
-        $dialog->setInputStream($this->getInputStream("\n\n"));
-        $this->assertTrue($dialog->askConfirmation($this->getOutputStream(), 'Do you like French fries?'));
-        $this->assertFalse($dialog->askConfirmation($this->getOutputStream(), 'Do you like French fries?', false));
-
-        $dialog->setInputStream($this->getInputStream("y\nyes\n"));
-        $this->assertTrue($dialog->askConfirmation($this->getOutputStream(), 'Do you like French fries?', false));
-        $this->assertTrue($dialog->askConfirmation($this->getOutputStream(), 'Do you like French fries?', false));
-
-        $dialog->setInputStream($this->getInputStream("n\nno\n"));
-        $this->assertFalse($dialog->askConfirmation($this->getOutputStream(), 'Do you like French fries?', true));
-        $this->assertFalse($dialog->askConfirmation($this->getOutputStream(), 'Do you like French fries?', true));
-    }
-
-    public function testAskAndValidate()
-    {
-        $dialog = new DialogHelper();
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $question = 'What color was the white horse of Henry IV?';
-        $error = 'This is not a color!';
-        $validator = function ($color) use ($error) {
-            if (!in_array($color, array('white', 'black'))) {
-                throw new \InvalidArgumentException($error);
-            }
-
-            return $color;
-        };
-
-        $dialog->setInputStream($this->getInputStream("\nblack\n"));
-        $this->assertEquals('white', $dialog->askAndValidate($this->getOutputStream(), $question, $validator, 2, 'white'));
-        $this->assertEquals('black', $dialog->askAndValidate($this->getOutputStream(), $question, $validator, 2, 'white'));
-
-        $dialog->setInputStream($this->getInputStream("green\nyellow\norange\n"));
-        try {
-            $this->assertEquals('white', $dialog->askAndValidate($this->getOutputStream(), $question, $validator, 2, 'white'));
-            $this->fail();
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals($error, $e->getMessage());
-        }
-    }
-
-    public function testNoInteraction()
-    {
-        $dialog = new DialogHelper();
-
-        $input = new ArrayInput(array());
-        $input->setInteractive(false);
-
-        $dialog->setInput($input);
-
-        $this->assertEquals('not yet', $dialog->ask($this->getOutputStream(), 'Do you have a job?', 'not yet'));
-    }
-
-    protected function getInputStream($input)
-    {
-        $stream = fopen('php://memory', 'r+', false);
-        fwrite($stream, $input);
-        rewind($stream);
-
-        return $stream;
-    }
-
-    protected function getOutputStream()
-    {
-        return new StreamOutput(fopen('php://memory', 'r+', false));
-    }
-
-    private function hasSttyAvailable()
-    {
-        exec('stty 2>&1', $output, $exitcode);
-
-        return $exitcode === 0;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/LegacyProgressHelperTest.php b/core/vendor/symfony/console/Tests/Helper/LegacyProgressHelperTest.php
deleted file mode 100644
index 7b9cf29..0000000
--- a/core/vendor/symfony/console/Tests/Helper/LegacyProgressHelperTest.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\ProgressHelper;
-use Symfony\Component\Console\Output\StreamOutput;
-
-/**
- * @group legacy
- */
-class LegacyProgressHelperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAdvance()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream());
-        $progress->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('    1 [->--------------------------]'), stream_get_contents($output->getStream()));
-    }
-
-    public function testAdvanceWithStep()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream());
-        $progress->advance(5);
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('    5 [----->----------------------]'), stream_get_contents($output->getStream()));
-    }
-
-    public function testAdvanceMultipleTimes()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream());
-        $progress->advance(3);
-        $progress->advance(2);
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('    3 [--->------------------------]').$this->generateOutput('    5 [----->----------------------]'), stream_get_contents($output->getStream()));
-    }
-
-    public function testCustomizations()
-    {
-        $progress = new ProgressHelper();
-        $progress->setBarWidth(10);
-        $progress->setBarCharacter('_');
-        $progress->setEmptyBarCharacter(' ');
-        $progress->setProgressCharacter('/');
-        $progress->setFormat(' %current%/%max% [%bar%] %percent%%');
-        $progress->start($output = $this->getOutputStream(), 10);
-        $progress->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('  1/10 [_/        ]  10%'), stream_get_contents($output->getStream()));
-    }
-
-    public function testPercent()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream(), 50);
-        $progress->display();
-        $progress->advance();
-        $progress->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('  0/50 [>---------------------------]   0%').$this->generateOutput('  1/50 [>---------------------------]   2%').$this->generateOutput('  2/50 [=>--------------------------]   4%'), stream_get_contents($output->getStream()));
-    }
-
-    public function testOverwriteWithShorterLine()
-    {
-        $progress = new ProgressHelper();
-        $progress->setFormat(' %current%/%max% [%bar%] %percent%%');
-        $progress->start($output = $this->getOutputStream(), 50);
-        $progress->display();
-        $progress->advance();
-
-        // set shorter format
-        $progress->setFormat(' %current%/%max% [%bar%]');
-        $progress->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  1/50 [>---------------------------]   2%').
-            $this->generateOutput('  2/50 [=>--------------------------]     '),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testSetCurrentProgress()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream(), 50);
-        $progress->display();
-        $progress->advance();
-        $progress->setCurrent(15);
-        $progress->setCurrent(25);
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  1/50 [>---------------------------]   2%').
-            $this->generateOutput(' 15/50 [========>-------------------]  30%').
-            $this->generateOutput(' 25/50 [==============>-------------]  50%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage You must start the progress bar
-     */
-    public function testSetCurrentBeforeStarting()
-    {
-        $progress = new ProgressHelper();
-        $progress->setCurrent(15);
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage You can't regress the progress bar
-     */
-    public function testRegressProgress()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream(), 50);
-        $progress->setCurrent(15);
-        $progress->setCurrent(10);
-    }
-
-    public function testRedrawFrequency()
-    {
-        $progress = $this->getMock('Symfony\Component\Console\Helper\ProgressHelper', array('display'));
-        $progress->expects($this->exactly(4))
-                 ->method('display');
-
-        $progress->setRedrawFrequency(2);
-
-        $progress->start($output = $this->getOutputStream(), 6);
-        $progress->setCurrent(1);
-        $progress->advance(2);
-        $progress->advance(2);
-        $progress->advance(1);
-    }
-
-    public function testMultiByteSupport()
-    {
-        if (!function_exists('mb_strlen') || (false === $encoding = mb_detect_encoding('■'))) {
-            $this->markTestSkipped('The mbstring extension is needed for multi-byte support');
-        }
-
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream());
-        $progress->setBarCharacter('■');
-        $progress->advance(3);
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('    3 [■■■>------------------------]'), stream_get_contents($output->getStream()));
-    }
-
-    public function testClear()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream(), 50);
-        $progress->setCurrent(25);
-        $progress->clear();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(' 25/50 [==============>-------------]  50%').$this->generateOutput(''),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testPercentNotHundredBeforeComplete()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream(), 200);
-        $progress->display();
-        $progress->advance(199);
-        $progress->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals($this->generateOutput('   0/200 [>---------------------------]   0%').$this->generateOutput(' 199/200 [===========================>]  99%').$this->generateOutput(' 200/200 [============================] 100%'), stream_get_contents($output->getStream()));
-    }
-
-    public function testNonDecoratedOutput()
-    {
-        $progress = new ProgressHelper();
-        $progress->start($output = $this->getOutputStream(false));
-        $progress->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals('', stream_get_contents($output->getStream()));
-    }
-
-    protected function getOutputStream($decorated = true)
-    {
-        return new StreamOutput(fopen('php://memory', 'r+', false), StreamOutput::VERBOSITY_NORMAL, $decorated);
-    }
-
-    protected $lastMessagesLength;
-
-    protected function generateOutput($expected)
-    {
-        $expectedout = $expected;
-
-        if ($this->lastMessagesLength !== null) {
-            $expectedout = str_pad($expected, $this->lastMessagesLength, "\x20", STR_PAD_RIGHT);
-        }
-
-        $this->lastMessagesLength = strlen($expectedout);
-
-        return "\x0D".$expectedout;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/LegacyTableHelperTest.php b/core/vendor/symfony/console/Tests/Helper/LegacyTableHelperTest.php
deleted file mode 100644
index 3b32423..0000000
--- a/core/vendor/symfony/console/Tests/Helper/LegacyTableHelperTest.php
+++ /dev/null
@@ -1,324 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\TableHelper;
-use Symfony\Component\Console\Output\StreamOutput;
-
-/**
- * @group legacy
- */
-class LegacyTableHelperTest extends \PHPUnit_Framework_TestCase
-{
-    protected $stream;
-
-    protected function setUp()
-    {
-        $this->stream = fopen('php://memory', 'r+');
-    }
-
-    protected function tearDown()
-    {
-        fclose($this->stream);
-        $this->stream = null;
-    }
-
-    /**
-     * @dataProvider testRenderProvider
-     */
-    public function testRender($headers, $rows, $layout, $expected)
-    {
-        $table = new TableHelper();
-        $table
-            ->setHeaders($headers)
-            ->setRows($rows)
-            ->setLayout($layout)
-        ;
-        $table->render($output = $this->getOutputStream());
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    /**
-     * @dataProvider testRenderProvider
-     */
-    public function testRenderAddRows($headers, $rows, $layout, $expected)
-    {
-        $table = new TableHelper();
-        $table
-            ->setHeaders($headers)
-            ->addRows($rows)
-            ->setLayout($layout)
-        ;
-        $table->render($output = $this->getOutputStream());
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    /**
-     * @dataProvider testRenderProvider
-     */
-    public function testRenderAddRowsOneByOne($headers, $rows, $layout, $expected)
-    {
-        $table = new TableHelper();
-        $table
-            ->setHeaders($headers)
-            ->setLayout($layout)
-        ;
-        foreach ($rows as $row) {
-            $table->addRow($row);
-        }
-        $table->render($output = $this->getOutputStream());
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    public function testRenderProvider()
-    {
-        $books = array(
-            array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-            array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'),
-            array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
-            array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
-        );
-
-        return array(
-            array(
-                array('ISBN', 'Title', 'Author'),
-                $books,
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+---------------+--------------------------+------------------+
-| ISBN          | Title                    | Author           |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title', 'Author'),
-                $books,
-                TableHelper::LAYOUT_COMPACT,
-<<<TABLE
- ISBN          Title                    Author           
- 99921-58-10-7 Divine Comedy            Dante Alighieri  
- 9971-5-0210-0 A Tale of Two Cities     Charles Dickens  
- 960-425-059-0 The Lord of the Rings    J. R. R. Tolkien 
- 80-902734-1-6 And Then There Were None Agatha Christie  
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title', 'Author'),
-                $books,
-                TableHelper::LAYOUT_BORDERLESS,
-<<<TABLE
- =============== ========================== ================== 
-  ISBN            Title                      Author            
- =============== ========================== ================== 
-  99921-58-10-7   Divine Comedy              Dante Alighieri   
-  9971-5-0210-0   A Tale of Two Cities       Charles Dickens   
-  960-425-059-0   The Lord of the Rings      J. R. R. Tolkien  
-  80-902734-1-6   And Then There Were None   Agatha Christie   
- =============== ========================== ================== 
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title'),
-                array(
-                    array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-                    array('9971-5-0210-0'),
-                    array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
-                    array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
-                ),
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+---------------+--------------------------+------------------+
-| ISBN          | Title                    |                  |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 |                          |                  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
-
-TABLE
-            ),
-            array(
-                array(),
-                array(
-                    array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-                    array('9971-5-0210-0'),
-                    array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
-                    array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
-                ),
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 |                          |                  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('99921-58-10-7', "Divine\nComedy", 'Dante Alighieri'),
-                    array('9971-5-0210-2', "Harry Potter\nand the Chamber of Secrets", "Rowling\nJoanne K."),
-                    array('9971-5-0210-2', "Harry Potter\nand the Chamber of Secrets", "Rowling\nJoanne K."),
-                    array('960-425-059-0', 'The Lord of the Rings', "J. R. R.\nTolkien"),
-                ),
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+---------------+----------------------------+-----------------+
-| ISBN          | Title                      | Author          |
-+---------------+----------------------------+-----------------+
-| 99921-58-10-7 | Divine                     | Dante Alighieri |
-|               | Comedy                     |                 |
-| 9971-5-0210-2 | Harry Potter               | Rowling         |
-|               | and the Chamber of Secrets | Joanne K.       |
-| 9971-5-0210-2 | Harry Potter               | Rowling         |
-|               | and the Chamber of Secrets | Joanne K.       |
-| 960-425-059-0 | The Lord of the Rings      | J. R. R.        |
-|               |                            | Tolkien         |
-+---------------+----------------------------+-----------------+
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title'),
-                array(),
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+------+-------+
-| ISBN | Title |
-+------+-------+
-
-TABLE
-            ),
-            array(
-                array(),
-                array(),
-                TableHelper::LAYOUT_DEFAULT,
-                '',
-            ),
-            'Cell text with tags used for Output styling' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('<info>99921-58-10-7</info>', '<error>Divine Comedy</error>', '<fg=blue;bg=white>Dante Alighieri</fg=blue;bg=white>'),
-                    array('9971-5-0210-0', 'A Tale of Two Cities', '<info>Charles Dickens</>'),
-                ),
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+---------------+----------------------+-----------------+
-| ISBN          | Title                | Author          |
-+---------------+----------------------+-----------------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
-+---------------+----------------------+-----------------+
-
-TABLE
-            ),
-            'Cell text with tags not used for Output styling' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('<strong>99921-58-10-700</strong>', '<f>Divine Com</f>', 'Dante Alighieri'),
-                    array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'),
-                ),
-                TableHelper::LAYOUT_DEFAULT,
-<<<TABLE
-+----------------------------------+----------------------+-----------------+
-| ISBN                             | Title                | Author          |
-+----------------------------------+----------------------+-----------------+
-| <strong>99921-58-10-700</strong> | <f>Divine Com</f>    | Dante Alighieri |
-| 9971-5-0210-0                    | A Tale of Two Cities | Charles Dickens |
-+----------------------------------+----------------------+-----------------+
-
-TABLE
-            ),
-        );
-    }
-
-    public function testRenderMultiByte()
-    {
-        if (!function_exists('mb_strwidth')) {
-            $this->markTestSkipped('The "mbstring" extension is not available');
-        }
-
-        $table = new TableHelper();
-        $table
-            ->setHeaders(array('■■'))
-            ->setRows(array(array(1234)))
-            ->setLayout(TableHelper::LAYOUT_DEFAULT)
-        ;
-        $table->render($output = $this->getOutputStream());
-
-        $expected =
-<<<TABLE
-+------+
-| ■■   |
-+------+
-| 1234 |
-+------+
-
-TABLE;
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    public function testRenderFullWidthCharacters()
-    {
-        if (!function_exists('mb_strwidth')) {
-            $this->markTestSkipped('The "mbstring" extension is not available');
-        }
-
-        $table = new TableHelper();
-        $table
-            ->setHeaders(array('あいうえお'))
-            ->setRows(array(array(1234567890)))
-            ->setLayout(TableHelper::LAYOUT_DEFAULT)
-        ;
-        $table->render($output = $this->getOutputStream());
-
-        $expected =
-            <<<TABLE
-+------------+
-| あいうえお |
-+------------+
-| 1234567890 |
-+------------+
-
-TABLE;
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    protected function getOutputStream()
-    {
-        return new StreamOutput($this->stream, StreamOutput::VERBOSITY_NORMAL, false);
-    }
-
-    protected function getOutputContent(StreamOutput $output)
-    {
-        rewind($output->getStream());
-
-        return str_replace(PHP_EOL, "\n", stream_get_contents($output->getStream()));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php b/core/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php
deleted file mode 100644
index 9f83885..0000000
--- a/core/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\DebugFormatterHelper;
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Output\StreamOutput;
-use Symfony\Component\Console\Helper\ProcessHelper;
-use Symfony\Component\Process\Process;
-
-class ProcessHelperTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideCommandsAndOutput
-     */
-    public function testVariousProcessRuns($expected, $cmd, $verbosity, $error)
-    {
-        $helper = new ProcessHelper();
-        $helper->setHelperSet(new HelperSet(array(new DebugFormatterHelper())));
-        $output = $this->getOutputStream($verbosity);
-        $helper->run($output, $cmd, $error);
-        $this->assertEquals($expected, $this->getOutput($output));
-    }
-
-    public function testPassedCallbackIsExecuted()
-    {
-        $helper = new ProcessHelper();
-        $helper->setHelperSet(new HelperSet(array(new DebugFormatterHelper())));
-        $output = $this->getOutputStream(StreamOutput::VERBOSITY_NORMAL);
-
-        $executed = false;
-        $callback = function () use (&$executed) { $executed = true; };
-
-        $helper->run($output, 'php -r "echo 42;"', null, $callback);
-        $this->assertTrue($executed);
-    }
-
-    public function provideCommandsAndOutput()
-    {
-        $successOutputVerbose = <<<EOT
-  RUN  php -r "echo 42;"
-  RES  Command ran successfully
-
-EOT;
-        $successOutputDebug = <<<EOT
-  RUN  php -r "echo 42;"
-  OUT  42
-  RES  Command ran successfully
-
-EOT;
-        $successOutputDebugWithTags = <<<EOT
-  RUN  php -r "echo '<info>42</info>';"
-  OUT  <info>42</info>
-  RES  Command ran successfully
-
-EOT;
-        $successOutputProcessDebug = <<<EOT
-  RUN  'php' '-r' 'echo 42;'
-  OUT  42
-  RES  Command ran successfully
-
-EOT;
-        $syntaxErrorOutputVerbose = <<<EOT
-  RUN  php -r "fwrite(STDERR, 'error message');usleep(50000);fwrite(STDOUT, 'out message');exit(252);"
-  RES  252 Command did not run successfully
-
-EOT;
-        $syntaxErrorOutputDebug = <<<EOT
-  RUN  php -r "fwrite(STDERR, 'error message');usleep(50000);fwrite(STDOUT, 'out message');exit(252);"
-  ERR  error message
-  OUT  out message
-  RES  252 Command did not run successfully
-
-EOT;
-
-        $errorMessage = 'An error occurred';
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $successOutputProcessDebug = str_replace("'", '"', $successOutputProcessDebug);
-        }
-
-        return array(
-            array('', 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERBOSE, null),
-            array($successOutputVerbose, 'php -r "echo 42;"', StreamOutput::VERBOSITY_VERY_VERBOSE, null),
-            array($successOutputDebug, 'php -r "echo 42;"', StreamOutput::VERBOSITY_DEBUG, null),
-            array($successOutputDebugWithTags, 'php -r "echo \'<info>42</info>\';"', StreamOutput::VERBOSITY_DEBUG, null),
-            array('', 'php -r "syntax error"', StreamOutput::VERBOSITY_VERBOSE, null),
-            array($syntaxErrorOutputVerbose, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, null),
-            array($syntaxErrorOutputDebug, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, null),
-            array($errorMessage.PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERBOSE, $errorMessage),
-            array($syntaxErrorOutputVerbose.$errorMessage.PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_VERY_VERBOSE, $errorMessage),
-            array($syntaxErrorOutputDebug.$errorMessage.PHP_EOL, 'php -r "fwrite(STDERR, \'error message\');usleep(50000);fwrite(STDOUT, \'out message\');exit(252);"', StreamOutput::VERBOSITY_DEBUG, $errorMessage),
-            array($successOutputProcessDebug, array('php', '-r', 'echo 42;'), StreamOutput::VERBOSITY_DEBUG, null),
-            array($successOutputDebug, new Process('php -r "echo 42;"'), StreamOutput::VERBOSITY_DEBUG, null),
-        );
-    }
-
-    private function getOutputStream($verbosity)
-    {
-        return new StreamOutput(fopen('php://memory', 'r+', false), $verbosity, false);
-    }
-
-    private function getOutput(StreamOutput $output)
-    {
-        rewind($output->getStream());
-
-        return stream_get_contents($output->getStream());
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/ProgressBarTest.php b/core/vendor/symfony/console/Tests/Helper/ProgressBarTest.php
deleted file mode 100644
index 97b99ef..0000000
--- a/core/vendor/symfony/console/Tests/Helper/ProgressBarTest.php
+++ /dev/null
@@ -1,598 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\ProgressBar;
-use Symfony\Component\Console\Helper\Helper;
-use Symfony\Component\Console\Output\StreamOutput;
-
-class ProgressBarTest extends \PHPUnit_Framework_TestCase
-{
-    public function testMultipleStart()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->start();
-        $bar->advance();
-        $bar->start();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('    0 [>---------------------------]').
-            $this->generateOutput('    1 [->--------------------------]').
-            $this->generateOutput('    0 [>---------------------------]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testAdvance()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->start();
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('    0 [>---------------------------]').
-            $this->generateOutput('    1 [->--------------------------]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testAdvanceWithStep()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->start();
-        $bar->advance(5);
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('    0 [>---------------------------]').
-            $this->generateOutput('    5 [----->----------------------]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testAdvanceMultipleTimes()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->start();
-        $bar->advance(3);
-        $bar->advance(2);
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('    0 [>---------------------------]').
-            $this->generateOutput('    3 [--->------------------------]').
-            $this->generateOutput('    5 [----->----------------------]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testAdvanceOverMax()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 10);
-        $bar->setProgress(9);
-        $bar->advance();
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  9/10 [=========================>--]  90%').
-            $this->generateOutput(' 10/10 [============================] 100%').
-            $this->generateOutput(' 11/11 [============================] 100%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testCustomizations()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 10);
-        $bar->setBarWidth(10);
-        $bar->setBarCharacter('_');
-        $bar->setEmptyBarCharacter(' ');
-        $bar->setProgressCharacter('/');
-        $bar->setFormat(' %current%/%max% [%bar%] %percent:3s%%');
-        $bar->start();
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/10 [/         ]   0%').
-            $this->generateOutput('  1/10 [_/        ]  10%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testDisplayWithoutStart()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->display();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testDisplayWithQuietVerbosity()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(true, StreamOutput::VERBOSITY_QUIET), 50);
-        $bar->display();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            '',
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testFinishWithoutStart()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(' 50/50 [============================] 100%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testPercent()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->start();
-        $bar->display();
-        $bar->advance();
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  1/50 [>---------------------------]   2%').
-            $this->generateOutput('  2/50 [=>--------------------------]   4%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testOverwriteWithShorterLine()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->setFormat(' %current%/%max% [%bar%] %percent:3s%%');
-        $bar->start();
-        $bar->display();
-        $bar->advance();
-
-        // set shorter format
-        $bar->setFormat(' %current%/%max% [%bar%]');
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  1/50 [>---------------------------]   2%').
-            $this->generateOutput('  2/50 [=>--------------------------]     '),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testStartWithMax()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->setFormat('%current%/%max% [%bar%]');
-        $bar->start(50);
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(' 0/50 [>---------------------------]').
-            $this->generateOutput(' 1/50 [>---------------------------]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testSetCurrentProgress()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->start();
-        $bar->display();
-        $bar->advance();
-        $bar->setProgress(15);
-        $bar->setProgress(25);
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput('  1/50 [>---------------------------]   2%').
-            $this->generateOutput(' 15/50 [========>-------------------]  30%').
-            $this->generateOutput(' 25/50 [==============>-------------]  50%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    /**
-     */
-    public function testSetCurrentBeforeStarting()
-    {
-        $bar = new ProgressBar($this->getOutputStream());
-        $bar->setProgress(15);
-        $this->assertNotNull($bar->getStartTime());
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage You can't regress the progress bar
-     */
-    public function testRegressProgress()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->start();
-        $bar->setProgress(15);
-        $bar->setProgress(10);
-    }
-
-    public function testRedrawFrequency()
-    {
-        $bar = $this->getMock('Symfony\Component\Console\Helper\ProgressBar', array('display'), array($output = $this->getOutputStream(), 6));
-        $bar->expects($this->exactly(4))->method('display');
-
-        $bar->setRedrawFrequency(2);
-        $bar->start();
-        $bar->setProgress(1);
-        $bar->advance(2);
-        $bar->advance(2);
-        $bar->advance(1);
-    }
-
-    public function testMultiByteSupport()
-    {
-        if (!function_exists('mb_strlen') || (false === $encoding = mb_detect_encoding('■'))) {
-            $this->markTestSkipped('The mbstring extension is needed for multi-byte support');
-        }
-
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->start();
-        $bar->setBarCharacter('■');
-        $bar->advance(3);
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('    0 [>---------------------------]').
-            $this->generateOutput('    3 [■■■>------------------------]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testClear()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 50);
-        $bar->start();
-        $bar->setProgress(25);
-        $bar->clear();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/50 [>---------------------------]   0%').
-            $this->generateOutput(' 25/50 [==============>-------------]  50%').
-            $this->generateOutput('                                          '),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testPercentNotHundredBeforeComplete()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 200);
-        $bar->start();
-        $bar->display();
-        $bar->advance(199);
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('   0/200 [>---------------------------]   0%').
-            $this->generateOutput('   0/200 [>---------------------------]   0%').
-            $this->generateOutput(' 199/200 [===========================>]  99%').
-            $this->generateOutput(' 200/200 [============================] 100%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testNonDecoratedOutput()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(false), 200);
-        $bar->start();
-
-        for ($i = 0; $i < 200; $i++) {
-            $bar->advance();
-        }
-
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            '   0/200 [>---------------------------]   0%'.PHP_EOL.
-            '  20/200 [==>-------------------------]  10%'.PHP_EOL.
-            '  40/200 [=====>----------------------]  20%'.PHP_EOL.
-            '  60/200 [========>-------------------]  30%'.PHP_EOL.
-            '  80/200 [===========>----------------]  40%'.PHP_EOL.
-            ' 100/200 [==============>-------------]  50%'.PHP_EOL.
-            ' 120/200 [================>-----------]  60%'.PHP_EOL.
-            ' 140/200 [===================>--------]  70%'.PHP_EOL.
-            ' 160/200 [======================>-----]  80%'.PHP_EOL.
-            ' 180/200 [=========================>--]  90%'.PHP_EOL.
-            ' 200/200 [============================] 100%',
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testNonDecoratedOutputWithClear()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(false), 50);
-        $bar->start();
-        $bar->setProgress(25);
-        $bar->clear();
-        $bar->setProgress(50);
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            '  0/50 [>---------------------------]   0%'.PHP_EOL.
-            ' 25/50 [==============>-------------]  50%'.PHP_EOL.
-            ' 50/50 [============================] 100%',
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testNonDecoratedOutputWithoutMax()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(false));
-        $bar->start();
-        $bar->advance();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            '    0 [>---------------------------]'.PHP_EOL.
-            '    1 [->--------------------------]',
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testParallelBars()
-    {
-        $output = $this->getOutputStream();
-        $bar1 = new ProgressBar($output, 2);
-        $bar2 = new ProgressBar($output, 3);
-        $bar2->setProgressCharacter('#');
-        $bar3 = new ProgressBar($output);
-
-        $bar1->start();
-        $output->write("\n");
-        $bar2->start();
-        $output->write("\n");
-        $bar3->start();
-
-        for ($i = 1; $i <= 3; $i++) {
-            // up two lines
-            $output->write("\033[2A");
-            if ($i <= 2) {
-                $bar1->advance();
-            }
-            $output->write("\n");
-            $bar2->advance();
-            $output->write("\n");
-            $bar3->advance();
-        }
-        $output->write("\033[2A");
-        $output->write("\n");
-        $output->write("\n");
-        $bar3->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(' 0/2 [>---------------------------]   0%')."\n".
-            $this->generateOutput(' 0/3 [#---------------------------]   0%')."\n".
-            rtrim($this->generateOutput('    0 [>---------------------------]')).
-
-            "\033[2A".
-            $this->generateOutput(' 1/2 [==============>-------------]  50%')."\n".
-            $this->generateOutput(' 1/3 [=========#------------------]  33%')."\n".
-            rtrim($this->generateOutput('    1 [->--------------------------]')).
-
-            "\033[2A".
-            $this->generateOutput(' 2/2 [============================] 100%')."\n".
-            $this->generateOutput(' 2/3 [==================#---------]  66%')."\n".
-            rtrim($this->generateOutput('    2 [-->-------------------------]')).
-
-            "\033[2A".
-            "\n".
-            $this->generateOutput(' 3/3 [============================] 100%')."\n".
-            rtrim($this->generateOutput('    3 [--->------------------------]')).
-
-            "\033[2A".
-            "\n".
-            "\n".
-            rtrim($this->generateOutput('    3 [============================]')),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testWithoutMax()
-    {
-        $output = $this->getOutputStream();
-
-        $bar = new ProgressBar($output);
-        $bar->start();
-        $bar->advance();
-        $bar->advance();
-        $bar->advance();
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            rtrim($this->generateOutput('    0 [>---------------------------]')).
-            rtrim($this->generateOutput('    1 [->--------------------------]')).
-            rtrim($this->generateOutput('    2 [-->-------------------------]')).
-            rtrim($this->generateOutput('    3 [--->------------------------]')).
-            rtrim($this->generateOutput('    3 [============================]')),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testAddingPlaceholderFormatter()
-    {
-        ProgressBar::setPlaceholderFormatterDefinition('remaining_steps', function (ProgressBar $bar) {
-            return $bar->getMaxSteps() - $bar->getProgress();
-        });
-        $bar = new ProgressBar($output = $this->getOutputStream(), 3);
-        $bar->setFormat(' %remaining_steps% [%bar%]');
-
-        $bar->start();
-        $bar->advance();
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(' 3 [>---------------------------]').
-            $this->generateOutput(' 2 [=========>------------------]').
-            $this->generateOutput(' 0 [============================]'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testMultilineFormat()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 3);
-        $bar->setFormat("%bar%\nfoobar");
-
-        $bar->start();
-        $bar->advance();
-        $bar->clear();
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(">---------------------------\nfoobar").
-            $this->generateOutput("=========>------------------\nfoobar                      ").
-            $this->generateOutput("                            \n                            ").
-            $this->generateOutput("============================\nfoobar                      "),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testAnsiColorsAndEmojis()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream(), 15);
-        ProgressBar::setPlaceholderFormatterDefinition('memory', function (ProgressBar $bar) {
-            static $i = 0;
-            $mem = 100000 * $i;
-            $colors = $i++ ? '41;37' : '44;37';
-
-            return "\033[".$colors.'m '.Helper::formatMemory($mem)." \033[0m";
-        });
-        $bar->setFormat(" \033[44;37m %title:-37s% \033[0m\n %current%/%max% %bar% %percent:3s%%\n 🏁  %remaining:-10s% %memory:37s%");
-        $bar->setBarCharacter($done = "\033[32m●\033[0m");
-        $bar->setEmptyBarCharacter($empty = "\033[31m●\033[0m");
-        $bar->setProgressCharacter($progress = "\033[32m➤ \033[0m");
-
-        $bar->setMessage('Starting the demo... fingers crossed', 'title');
-        $bar->start();
-        $bar->setMessage('Looks good to me...', 'title');
-        $bar->advance(4);
-        $bar->setMessage('Thanks, bye', 'title');
-        $bar->finish();
-
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput(
-                " \033[44;37m Starting the demo... fingers crossed  \033[0m\n".
-                '  0/15 '.$progress.str_repeat($empty, 26)."   0%\n".
-                " \xf0\x9f\x8f\x81  1 sec                          \033[44;37m 0 B \033[0m"
-            ).
-            $this->generateOutput(
-                " \033[44;37m Looks good to me...                   \033[0m\n".
-                '  4/15 '.str_repeat($done, 7).$progress.str_repeat($empty, 19)."  26%\n".
-                " \xf0\x9f\x8f\x81  1 sec                       \033[41;37m 97 KiB \033[0m"
-            ).
-            $this->generateOutput(
-                " \033[44;37m Thanks, bye                           \033[0m\n".
-                ' 15/15 '.str_repeat($done, 28)." 100%\n".
-                " \xf0\x9f\x8f\x81  1 sec                      \033[41;37m 195 KiB \033[0m"
-            ),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    public function testSetFormat()
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->setFormat('normal');
-        $bar->start();
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('    0 [>---------------------------]'),
-            stream_get_contents($output->getStream())
-        );
-
-        $bar = new ProgressBar($output = $this->getOutputStream(), 10);
-        $bar->setFormat('normal');
-        $bar->start();
-        rewind($output->getStream());
-        $this->assertEquals(
-            $this->generateOutput('  0/10 [>---------------------------]   0%'),
-            stream_get_contents($output->getStream())
-        );
-    }
-
-    /**
-     * @dataProvider provideFormat
-     */
-    public function testFormatsWithoutMax($format)
-    {
-        $bar = new ProgressBar($output = $this->getOutputStream());
-        $bar->setFormat($format);
-        $bar->start();
-
-        rewind($output->getStream());
-        $this->assertNotEmpty(stream_get_contents($output->getStream()));
-    }
-
-    /**
-     * Provides each defined format.
-     *
-     * @return array
-     */
-    public function provideFormat()
-    {
-        return array(
-            array('normal'),
-            array('verbose'),
-            array('very_verbose'),
-            array('debug'),
-        );
-    }
-
-    protected function getOutputStream($decorated = true, $verbosity = StreamOutput::VERBOSITY_NORMAL)
-    {
-        return new StreamOutput(fopen('php://memory', 'r+', false), $verbosity, $decorated);
-    }
-
-    protected function generateOutput($expected)
-    {
-        $count = substr_count($expected, "\n");
-
-        return "\x0D".($count ? sprintf("\033[%dA", $count) : '').$expected;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php b/core/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php
deleted file mode 100644
index a1f85b1..0000000
--- a/core/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php
+++ /dev/null
@@ -1,383 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\QuestionHelper;
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Helper\FormatterHelper;
-use Symfony\Component\Console\Output\StreamOutput;
-use Symfony\Component\Console\Question\ChoiceQuestion;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
-use Symfony\Component\Console\Question\Question;
-
-/**
- * @group tty
- */
-class QuestionHelperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAskChoice()
-    {
-        $questionHelper = new QuestionHelper();
-
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $questionHelper->setHelperSet($helperSet);
-
-        $heroes = array('Superman', 'Batman', 'Spiderman');
-
-        $questionHelper->setInputStream($this->getInputStream("\n1\n  1  \nFabien\n1\nFabien\n1\n0,2\n 0 , 2  \n\n\n"));
-
-        $question = new ChoiceQuestion('What is your favorite superhero?', $heroes, '2');
-        $question->setMaxAttempts(1);
-        // first answer is an empty answer, we're supposed to receive the default value
-        $this->assertEquals('Spiderman', $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-
-        $question = new ChoiceQuestion('What is your favorite superhero?', $heroes);
-        $question->setMaxAttempts(1);
-        $this->assertEquals('Batman', $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('Batman', $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-
-        $question = new ChoiceQuestion('What is your favorite superhero?', $heroes);
-        $question->setErrorMessage('Input "%s" is not a superhero!');
-        $question->setMaxAttempts(2);
-        $this->assertEquals('Batman', $questionHelper->ask($this->createInputInterfaceMock(), $output = $this->createOutputInterface(), $question));
-
-        rewind($output->getStream());
-        $stream = stream_get_contents($output->getStream());
-        $this->assertContains('Input "Fabien" is not a superhero!', $stream);
-
-        try {
-            $question = new ChoiceQuestion('What is your favorite superhero?', $heroes, '1');
-            $question->setMaxAttempts(1);
-            $questionHelper->ask($this->createInputInterfaceMock(), $output = $this->createOutputInterface(), $question);
-            $this->fail();
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('Value "Fabien" is invalid', $e->getMessage());
-        }
-
-        $question = new ChoiceQuestion('What is your favorite superhero?', $heroes, null);
-        $question->setMaxAttempts(1);
-        $question->setMultiselect(true);
-
-        $this->assertEquals(array('Batman'), $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals(array('Superman', 'Spiderman'), $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals(array('Superman', 'Spiderman'), $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-
-        $question = new ChoiceQuestion('What is your favorite superhero?', $heroes, '0,1');
-        $question->setMaxAttempts(1);
-        $question->setMultiselect(true);
-
-        $this->assertEquals(array('Superman', 'Batman'), $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-
-        $question = new ChoiceQuestion('What is your favorite superhero?', $heroes, ' 0 , 1 ');
-        $question->setMaxAttempts(1);
-        $question->setMultiselect(true);
-
-        $this->assertEquals(array('Superman', 'Batman'), $questionHelper->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-    }
-
-    public function testAsk()
-    {
-        $dialog = new QuestionHelper();
-
-        $dialog->setInputStream($this->getInputStream("\n8AM\n"));
-
-        $question = new Question('What time is it?', '2PM');
-        $this->assertEquals('2PM', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-
-        $question = new Question('What time is it?', '2PM');
-        $this->assertEquals('8AM', $dialog->ask($this->createInputInterfaceMock(), $output = $this->createOutputInterface(), $question));
-
-        rewind($output->getStream());
-        $this->assertEquals('What time is it?', stream_get_contents($output->getStream()));
-    }
-
-    public function testAskWithAutocomplete()
-    {
-        if (!$this->hasSttyAvailable()) {
-            $this->markTestSkipped('`stty` is required to test autocomplete functionality');
-        }
-
-        // Acm<NEWLINE>
-        // Ac<BACKSPACE><BACKSPACE>s<TAB>Test<NEWLINE>
-        // <NEWLINE>
-        // <UP ARROW><UP ARROW><NEWLINE>
-        // <UP ARROW><UP ARROW><UP ARROW><UP ARROW><UP ARROW><TAB>Test<NEWLINE>
-        // <DOWN ARROW><NEWLINE>
-        // S<BACKSPACE><BACKSPACE><DOWN ARROW><DOWN ARROW><NEWLINE>
-        // F00<BACKSPACE><BACKSPACE>oo<TAB><NEWLINE>
-        $inputStream = $this->getInputStream("Acm\nAc\177\177s\tTest\n\n\033[A\033[A\n\033[A\033[A\033[A\033[A\033[A\tTest\n\033[B\nS\177\177\033[B\033[B\nF00\177\177oo\t\n");
-
-        $dialog = new QuestionHelper();
-        $dialog->setInputStream($inputStream);
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $question = new Question('Please select a bundle', 'FrameworkBundle');
-        $question->setAutocompleterValues(array('AcmeDemoBundle', 'AsseticBundle', 'SecurityBundle', 'FooBundle'));
-
-        $this->assertEquals('AcmeDemoBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('AsseticBundleTest', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('FrameworkBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('SecurityBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('FooBundleTest', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('AcmeDemoBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('AsseticBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('FooBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-    }
-
-    public function testAskHiddenResponse()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('This test is not supported on Windows');
-        }
-
-        $dialog = new QuestionHelper();
-        $dialog->setInputStream($this->getInputStream("8AM\n"));
-
-        $question = new Question('What time is it?');
-        $question->setHidden(true);
-
-        $this->assertEquals('8AM', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-    }
-
-    /**
-     * @dataProvider getAskConfirmationData
-     */
-    public function testAskConfirmation($question, $expected, $default = true)
-    {
-        $dialog = new QuestionHelper();
-
-        $dialog->setInputStream($this->getInputStream($question."\n"));
-        $question = new ConfirmationQuestion('Do you like French fries?', $default);
-        $this->assertEquals($expected, $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question), 'confirmation question should '.($expected ? 'pass' : 'cancel'));
-    }
-
-    public function getAskConfirmationData()
-    {
-        return array(
-            array('', true),
-            array('', false, false),
-            array('y', true),
-            array('yes', true),
-            array('n', false),
-            array('no', false),
-        );
-    }
-
-    public function testAskConfirmationWithCustomTrueAnswer()
-    {
-        $dialog = new QuestionHelper();
-
-        $dialog->setInputStream($this->getInputStream("j\ny\n"));
-        $question = new ConfirmationQuestion('Do you like French fries?', false, '/^(j|y)/i');
-        $this->assertTrue($dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $question = new ConfirmationQuestion('Do you like French fries?', false, '/^(j|y)/i');
-        $this->assertTrue($dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-    }
-
-    public function testAskAndValidate()
-    {
-        $dialog = new QuestionHelper();
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $error = 'This is not a color!';
-        $validator = function ($color) use ($error) {
-            if (!in_array($color, array('white', 'black'))) {
-                throw new \InvalidArgumentException($error);
-            }
-
-            return $color;
-        };
-
-        $question = new Question('What color was the white horse of Henry IV?', 'white');
-        $question->setValidator($validator);
-        $question->setMaxAttempts(2);
-
-        $dialog->setInputStream($this->getInputStream("\nblack\n"));
-        $this->assertEquals('white', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-        $this->assertEquals('black', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question));
-
-        $dialog->setInputStream($this->getInputStream("green\nyellow\norange\n"));
-        try {
-            $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question);
-            $this->fail();
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals($error, $e->getMessage());
-        }
-    }
-
-    /**
-     * @dataProvider simpleAnswerProvider
-     */
-    public function testSelectChoiceFromSimpleChoices($providedAnswer, $expectedValue)
-    {
-        $possibleChoices = array(
-            'My environment 1',
-            'My environment 2',
-            'My environment 3',
-        );
-
-        $dialog = new QuestionHelper();
-        $dialog->setInputStream($this->getInputStream($providedAnswer."\n"));
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $question = new ChoiceQuestion('Please select the environment to load', $possibleChoices);
-        $question->setMaxAttempts(1);
-        $answer = $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question);
-
-        $this->assertSame($expectedValue, $answer);
-    }
-
-    public function simpleAnswerProvider()
-    {
-        return array(
-            array(0, 'My environment 1'),
-            array(1, 'My environment 2'),
-            array(2, 'My environment 3'),
-            array('My environment 1', 'My environment 1'),
-            array('My environment 2', 'My environment 2'),
-            array('My environment 3', 'My environment 3'),
-        );
-    }
-
-    /**
-     * @dataProvider mixedKeysChoiceListAnswerProvider
-     */
-    public function testChoiceFromChoicelistWithMixedKeys($providedAnswer, $expectedValue)
-    {
-        $possibleChoices = array(
-            '0' => 'No environment',
-            '1' => 'My environment 1',
-            'env_2' => 'My environment 2',
-            3 => 'My environment 3',
-        );
-
-        $dialog = new QuestionHelper();
-        $dialog->setInputStream($this->getInputStream($providedAnswer."\n"));
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $question = new ChoiceQuestion('Please select the environment to load', $possibleChoices);
-        $question->setMaxAttempts(1);
-        $answer = $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question);
-
-        $this->assertSame($expectedValue, $answer);
-    }
-
-    public function mixedKeysChoiceListAnswerProvider()
-    {
-        return array(
-            array('0', '0'),
-            array('No environment', '0'),
-            array('1', '1'),
-            array('env_2', 'env_2'),
-            array(3, '3'),
-            array('My environment 1', '1'),
-        );
-    }
-
-    /**
-     * @dataProvider answerProvider
-     */
-    public function testSelectChoiceFromChoiceList($providedAnswer, $expectedValue)
-    {
-        $possibleChoices = array(
-            'env_1' => 'My environment 1',
-            'env_2' => 'My environment',
-            'env_3' => 'My environment',
-        );
-
-        $dialog = new QuestionHelper();
-        $dialog->setInputStream($this->getInputStream($providedAnswer."\n"));
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $question = new ChoiceQuestion('Please select the environment to load', $possibleChoices);
-        $question->setMaxAttempts(1);
-        $answer = $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question);
-
-        $this->assertSame($expectedValue, $answer);
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The provided answer is ambiguous. Value should be one of env_2 or env_3.
-     */
-    public function testAmbiguousChoiceFromChoicelist()
-    {
-        $possibleChoices = array(
-            'env_1' => 'My first environment',
-            'env_2' => 'My environment',
-            'env_3' => 'My environment',
-        );
-
-        $dialog = new QuestionHelper();
-        $dialog->setInputStream($this->getInputStream("My environment\n"));
-        $helperSet = new HelperSet(array(new FormatterHelper()));
-        $dialog->setHelperSet($helperSet);
-
-        $question = new ChoiceQuestion('Please select the environment to load', $possibleChoices);
-        $question->setMaxAttempts(1);
-
-        $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question);
-    }
-
-    public function answerProvider()
-    {
-        return array(
-            array('env_1', 'env_1'),
-            array('env_2', 'env_2'),
-            array('env_3', 'env_3'),
-            array('My environment 1', 'env_1'),
-        );
-    }
-
-    public function testNoInteraction()
-    {
-        $dialog = new QuestionHelper();
-        $question = new Question('Do you have a job?', 'not yet');
-        $this->assertEquals('not yet', $dialog->ask($this->createInputInterfaceMock(false), $this->createOutputInterface(), $question));
-    }
-
-    protected function getInputStream($input)
-    {
-        $stream = fopen('php://memory', 'r+', false);
-        fwrite($stream, $input);
-        rewind($stream);
-
-        return $stream;
-    }
-
-    protected function createOutputInterface()
-    {
-        return new StreamOutput(fopen('php://memory', 'r+', false));
-    }
-
-    protected function createInputInterfaceMock($interactive = true)
-    {
-        $mock = $this->getMock('Symfony\Component\Console\Input\InputInterface');
-        $mock->expects($this->any())
-            ->method('isInteractive')
-            ->will($this->returnValue($interactive));
-
-        return $mock;
-    }
-
-    private function hasSttyAvailable()
-    {
-        exec('stty 2>&1', $output, $exitcode);
-
-        return $exitcode === 0;
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/TableStyleTest.php b/core/vendor/symfony/console/Tests/Helper/TableStyleTest.php
deleted file mode 100644
index 587d841..0000000
--- a/core/vendor/symfony/console/Tests/Helper/TableStyleTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\TableStyle;
-
-class TableStyleTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).
-     */
-    public function testSetPadTypeWithInvalidType()
-    {
-        $style = new TableStyle();
-        $style->setPadType('TEST');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Helper/TableTest.php b/core/vendor/symfony/console/Tests/Helper/TableTest.php
deleted file mode 100644
index 2a66caa..0000000
--- a/core/vendor/symfony/console/Tests/Helper/TableTest.php
+++ /dev/null
@@ -1,568 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Helper;
-
-use Symfony\Component\Console\Helper\Table;
-use Symfony\Component\Console\Helper\TableStyle;
-use Symfony\Component\Console\Helper\TableSeparator;
-use Symfony\Component\Console\Helper\TableCell;
-use Symfony\Component\Console\Output\StreamOutput;
-
-class TableTest extends \PHPUnit_Framework_TestCase
-{
-    protected $stream;
-
-    protected function setUp()
-    {
-        $this->stream = fopen('php://memory', 'r+');
-    }
-
-    protected function tearDown()
-    {
-        fclose($this->stream);
-        $this->stream = null;
-    }
-
-    /**
-     * @dataProvider testRenderProvider
-     */
-    public function testRender($headers, $rows, $style, $expected)
-    {
-        $table = new Table($output = $this->getOutputStream());
-        $table
-            ->setHeaders($headers)
-            ->setRows($rows)
-            ->setStyle($style)
-        ;
-        $table->render();
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    /**
-     * @dataProvider testRenderProvider
-     */
-    public function testRenderAddRows($headers, $rows, $style, $expected)
-    {
-        $table = new Table($output = $this->getOutputStream());
-        $table
-            ->setHeaders($headers)
-            ->addRows($rows)
-            ->setStyle($style)
-        ;
-        $table->render();
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    /**
-     * @dataProvider testRenderProvider
-     */
-    public function testRenderAddRowsOneByOne($headers, $rows, $style, $expected)
-    {
-        $table = new Table($output = $this->getOutputStream());
-        $table
-            ->setHeaders($headers)
-            ->setStyle($style)
-        ;
-        foreach ($rows as $row) {
-            $table->addRow($row);
-        }
-        $table->render();
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    public function testRenderProvider()
-    {
-        $books = array(
-            array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-            array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'),
-            array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
-            array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
-        );
-
-        return array(
-            array(
-                array('ISBN', 'Title', 'Author'),
-                $books,
-                'default',
-<<<TABLE
-+---------------+--------------------------+------------------+
-| ISBN          | Title                    | Author           |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 | A Tale of Two Cities     | Charles Dickens  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title', 'Author'),
-                $books,
-                'compact',
-<<<TABLE
- ISBN          Title                    Author           
- 99921-58-10-7 Divine Comedy            Dante Alighieri  
- 9971-5-0210-0 A Tale of Two Cities     Charles Dickens  
- 960-425-059-0 The Lord of the Rings    J. R. R. Tolkien 
- 80-902734-1-6 And Then There Were None Agatha Christie  
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title', 'Author'),
-                $books,
-                'borderless',
-<<<TABLE
- =============== ========================== ================== 
-  ISBN            Title                      Author            
- =============== ========================== ================== 
-  99921-58-10-7   Divine Comedy              Dante Alighieri   
-  9971-5-0210-0   A Tale of Two Cities       Charles Dickens   
-  960-425-059-0   The Lord of the Rings      J. R. R. Tolkien  
-  80-902734-1-6   And Then There Were None   Agatha Christie   
- =============== ========================== ================== 
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title'),
-                array(
-                    array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-                    array('9971-5-0210-0'),
-                    array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
-                    array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
-                ),
-                'default',
-<<<TABLE
-+---------------+--------------------------+------------------+
-| ISBN          | Title                    |                  |
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 |                          |                  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
-
-TABLE
-            ),
-            array(
-                array(),
-                array(
-                    array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-                    array('9971-5-0210-0'),
-                    array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'),
-                    array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'),
-                ),
-                'default',
-<<<TABLE
-+---------------+--------------------------+------------------+
-| 99921-58-10-7 | Divine Comedy            | Dante Alighieri  |
-| 9971-5-0210-0 |                          |                  |
-| 960-425-059-0 | The Lord of the Rings    | J. R. R. Tolkien |
-| 80-902734-1-6 | And Then There Were None | Agatha Christie  |
-+---------------+--------------------------+------------------+
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('99921-58-10-7', "Divine\nComedy", 'Dante Alighieri'),
-                    array('9971-5-0210-2', "Harry Potter\nand the Chamber of Secrets", "Rowling\nJoanne K."),
-                    array('9971-5-0210-2', "Harry Potter\nand the Chamber of Secrets", "Rowling\nJoanne K."),
-                    array('960-425-059-0', 'The Lord of the Rings', "J. R. R.\nTolkien"),
-                ),
-                'default',
-<<<TABLE
-+---------------+----------------------------+-----------------+
-| ISBN          | Title                      | Author          |
-+---------------+----------------------------+-----------------+
-| 99921-58-10-7 | Divine                     | Dante Alighieri |
-|               | Comedy                     |                 |
-| 9971-5-0210-2 | Harry Potter               | Rowling         |
-|               | and the Chamber of Secrets | Joanne K.       |
-| 9971-5-0210-2 | Harry Potter               | Rowling         |
-|               | and the Chamber of Secrets | Joanne K.       |
-| 960-425-059-0 | The Lord of the Rings      | J. R. R.        |
-|               |                            | Tolkien         |
-+---------------+----------------------------+-----------------+
-
-TABLE
-            ),
-            array(
-                array('ISBN', 'Title'),
-                array(),
-                'default',
-<<<TABLE
-+------+-------+
-| ISBN | Title |
-+------+-------+
-
-TABLE
-            ),
-            array(
-                array(),
-                array(),
-                'default',
-                '',
-            ),
-            'Cell text with tags used for Output styling' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('<info>99921-58-10-7</info>', '<error>Divine Comedy</error>', '<fg=blue;bg=white>Dante Alighieri</fg=blue;bg=white>'),
-                    array('9971-5-0210-0', 'A Tale of Two Cities', '<info>Charles Dickens</>'),
-                ),
-                'default',
-<<<TABLE
-+---------------+----------------------+-----------------+
-| ISBN          | Title                | Author          |
-+---------------+----------------------+-----------------+
-| 99921-58-10-7 | Divine Comedy        | Dante Alighieri |
-| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
-+---------------+----------------------+-----------------+
-
-TABLE
-            ),
-            'Cell text with tags not used for Output styling' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('<strong>99921-58-10-700</strong>', '<f>Divine Com</f>', 'Dante Alighieri'),
-                    array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'),
-                ),
-                'default',
-<<<TABLE
-+----------------------------------+----------------------+-----------------+
-| ISBN                             | Title                | Author          |
-+----------------------------------+----------------------+-----------------+
-| <strong>99921-58-10-700</strong> | <f>Divine Com</f>    | Dante Alighieri |
-| 9971-5-0210-0                    | A Tale of Two Cities | Charles Dickens |
-+----------------------------------+----------------------+-----------------+
-
-TABLE
-            ),
-            'Cell with colspan' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'),
-                    new TableSeparator(),
-                    array(new TableCell('Divine Comedy(Dante Alighieri)', array('colspan' => 3))),
-                    new TableSeparator(),
-                    array(
-                        new TableCell('Arduino: A Quick-Start Guide', array('colspan' => 2)),
-                        'Mark Schmidt',
-                    ),
-                    new TableSeparator(),
-                    array(
-                        '9971-5-0210-0',
-                        new TableCell("A Tale of \nTwo Cities", array('colspan' => 2)),
-                    ),
-                ),
-                'default',
-<<<TABLE
-+----------------+---------------+-----------------+
-| ISBN           | Title         | Author          |
-+----------------+---------------+-----------------+
-| 99921-58-10-7  | Divine Comedy | Dante Alighieri |
-+----------------+---------------+-----------------+
-| Divine Comedy(Dante Alighieri)                   |
-+----------------+---------------+-----------------+
-| Arduino: A Quick-Start Guide   | Mark Schmidt    |
-+----------------+---------------+-----------------+
-| 9971-5-0210-0  | A Tale of                       |
-|                | Two Cities                      |
-+----------------+---------------+-----------------+
-
-TABLE
-            ),
-            'Cell with rowspan' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array(
-                        new TableCell('9971-5-0210-0', array('rowspan' => 3)),
-                        'Divine Comedy',
-                        'Dante Alighieri',
-                    ),
-                    array('A Tale of Two Cities', 'Charles Dickens'),
-                    array("The Lord of \nthe Rings", "J. R. \nR. Tolkien"),
-                    new TableSeparator(),
-                    array('80-902734-1-6', new TableCell("And Then \nThere \nWere None", array('rowspan' => 3)), 'Agatha Christie'),
-                    array('80-902734-1-7', 'Test'),
-                ),
-                'default',
-<<<TABLE
-+---------------+----------------------+-----------------+
-| ISBN          | Title                | Author          |
-+---------------+----------------------+-----------------+
-| 9971-5-0210-0 | Divine Comedy        | Dante Alighieri |
-|               | A Tale of Two Cities | Charles Dickens |
-|               | The Lord of          | J. R.           |
-|               | the Rings            | R. Tolkien      |
-+---------------+----------------------+-----------------+
-| 80-902734-1-6 | And Then             | Agatha Christie |
-| 80-902734-1-7 | There                | Test            |
-|               | Were None            |                 |
-+---------------+----------------------+-----------------+
-
-TABLE
-            ),
-            'Cell with rowspan and colspan' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array(
-                        new TableCell('9971-5-0210-0', array('rowspan' => 2, 'colspan' => 2)),
-                        'Dante Alighieri',
-                    ),
-                    array('Charles Dickens'),
-                    new TableSeparator(),
-                    array(
-                        'Dante Alighieri',
-                        new TableCell('9971-5-0210-0', array('rowspan' => 3, 'colspan' => 2)),
-                    ),
-                    array('J. R. R. Tolkien'),
-                    array('J. R. R'),
-                ),
-                'default',
-<<<TABLE
-+------------------+--------+-----------------+
-| ISBN             | Title  | Author          |
-+------------------+--------+-----------------+
-| 9971-5-0210-0             | Dante Alighieri |
-|                           | Charles Dickens |
-+------------------+--------+-----------------+
-| Dante Alighieri  | 9971-5-0210-0            |
-| J. R. R. Tolkien |                          |
-| J. R. R          |                          |
-+------------------+--------+-----------------+
-
-TABLE
-            ),
-            'Cell with rowspan and colspan contains new line break' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array(
-                        new TableCell("9971\n-5-\n021\n0-0", array('rowspan' => 2, 'colspan' => 2)),
-                        'Dante Alighieri',
-                    ),
-                    array('Charles Dickens'),
-                    new TableSeparator(),
-                    array(
-                        'Dante Alighieri',
-                        new TableCell("9971\n-5-\n021\n0-0", array('rowspan' => 2, 'colspan' => 2)),
-                    ),
-                    array('Charles Dickens'),
-                    new TableSeparator(),
-                    array(
-                        new TableCell("9971\n-5-\n021\n0-0", array('rowspan' => 2, 'colspan' => 2)),
-                        new TableCell("Dante \nAlighieri", array('rowspan' => 2, 'colspan' => 1)),
-                    ),
-                ),
-                'default',
-<<<TABLE
-+-----------------+-------+-----------------+
-| ISBN            | Title | Author          |
-+-----------------+-------+-----------------+
-| 9971                    | Dante Alighieri |
-| -5-                     | Charles Dickens |
-| 021                     |                 |
-| 0-0                     |                 |
-+-----------------+-------+-----------------+
-| Dante Alighieri | 9971                    |
-| Charles Dickens | -5-                     |
-|                 | 021                     |
-|                 | 0-0                     |
-+-----------------+-------+-----------------+
-| 9971                    | Dante           |
-| -5-                     | Alighieri       |
-| 021                     |                 |
-| 0-0                     |                 |
-+-----------------+-------+-----------------+
-
-TABLE
-            ),
-            'Cell with rowspan and colspan without using TableSeparator' => array(
-                array('ISBN', 'Title', 'Author'),
-                array(
-                    array(
-                        new TableCell("9971\n-5-\n021\n0-0", array('rowspan' => 2, 'colspan' => 2)),
-                        'Dante Alighieri',
-                    ),
-                    array('Charles Dickens'),
-                    array(
-                        'Dante Alighieri',
-                        new TableCell("9971\n-5-\n021\n0-0", array('rowspan' => 2, 'colspan' => 2)),
-                    ),
-                    array('Charles Dickens'),
-                ),
-                'default',
-<<<TABLE
-+-----------------+-------+-----------------+
-| ISBN            | Title | Author          |
-+-----------------+-------+-----------------+
-| 9971                    | Dante Alighieri |
-| -5-                     | Charles Dickens |
-| 021                     |                 |
-| 0-0                     |                 |
-| Dante Alighieri | 9971                    |
-| Charles Dickens | -5-                     |
-|                 | 021                     |
-|                 | 0-0                     |
-+-----------------+-------+-----------------+
-
-TABLE
-            ),
-            'Cell with rowspan and colspan with separator inside a rowspan' => array(
-                array('ISBN', 'Author'),
-                array(
-                    array(
-                        new TableCell("9971-5-0210-0", array('rowspan' => 3, 'colspan' => 1)),
-                        'Dante Alighieri',
-                    ),
-                    array(new TableSeparator()),
-                    array('Charles Dickens'),
-                ),
-                'default',
-<<<TABLE
-+---------------+-----------------+
-| ISBN          | Author          |
-+---------------+-----------------+
-| 9971-5-0210-0 | Dante Alighieri |
-|               |-----------------|
-|               | Charles Dickens |
-+---------------+-----------------+
-
-TABLE
-            ),
-            'Multiple header lines' => array(
-                array(
-                    array(new TableCell('Main title', array('colspan' => 3))),
-                    array('ISBN', 'Title', 'Author'),
-                ),
-                array(),
-                'default',
-<<<TABLE
-+------+-------+--------+
-| Main title            |
-+------+-------+--------+
-| ISBN | Title | Author |
-+------+-------+--------+
-
-TABLE
-            ),
-        );
-    }
-
-    public function testRenderMultiByte()
-    {
-        if (!function_exists('mb_strlen')) {
-            $this->markTestSkipped('The "mbstring" extension is not available');
-        }
-
-        $table = new Table($output = $this->getOutputStream());
-        $table
-            ->setHeaders(array('■■'))
-            ->setRows(array(array(1234)))
-            ->setStyle('default')
-        ;
-        $table->render();
-
-        $expected =
-<<<TABLE
-+------+
-| ■■   |
-+------+
-| 1234 |
-+------+
-
-TABLE;
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    public function testStyle()
-    {
-        $style = new TableStyle();
-        $style
-            ->setHorizontalBorderChar('.')
-            ->setVerticalBorderChar('.')
-            ->setCrossingChar('.')
-        ;
-
-        Table::setStyleDefinition('dotfull', $style);
-        $table = new Table($output = $this->getOutputStream());
-        $table
-            ->setHeaders(array('Foo'))
-            ->setRows(array(array('Bar')))
-            ->setStyle('dotfull');
-        $table->render();
-
-        $expected =
-<<<TABLE
-.......
-. Foo .
-.......
-. Bar .
-.......
-
-TABLE;
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-    }
-
-    public function testRowSeparator()
-    {
-        $table = new Table($output = $this->getOutputStream());
-        $table
-            ->setHeaders(array('Foo'))
-            ->setRows(array(
-                array('Bar1'),
-                new TableSeparator(),
-                array('Bar2'),
-                new TableSeparator(),
-                array('Bar3'),
-            ));
-        $table->render();
-
-        $expected =
-<<<TABLE
-+------+
-| Foo  |
-+------+
-| Bar1 |
-+------+
-| Bar2 |
-+------+
-| Bar3 |
-+------+
-
-TABLE;
-
-        $this->assertEquals($expected, $this->getOutputContent($output));
-
-        $this->assertEquals($table, $table->addRow(new TableSeparator()), 'fluent interface on addRow() with a single TableSeparator() works');
-    }
-
-    protected function getOutputStream()
-    {
-        return new StreamOutput($this->stream, StreamOutput::VERBOSITY_NORMAL, false);
-    }
-
-    protected function getOutputContent(StreamOutput $output)
-    {
-        rewind($output->getStream());
-
-        return str_replace(PHP_EOL, "\n", stream_get_contents($output->getStream()));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/ArgvInputTest.php b/core/vendor/symfony/console/Tests/Input/ArgvInputTest.php
deleted file mode 100644
index d2c540e..0000000
--- a/core/vendor/symfony/console/Tests/Input/ArgvInputTest.php
+++ /dev/null
@@ -1,317 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-
-class ArgvInputTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $_SERVER['argv'] = array('cli.php', 'foo');
-        $input = new ArgvInput();
-        $r = new \ReflectionObject($input);
-        $p = $r->getProperty('tokens');
-        $p->setAccessible(true);
-
-        $this->assertEquals(array('foo'), $p->getValue($input), '__construct() automatically get its input from the argv server variable');
-    }
-
-    public function testParseArguments()
-    {
-        $input = new ArgvInput(array('cli.php', 'foo'));
-        $input->bind(new InputDefinition(array(new InputArgument('name'))));
-        $this->assertEquals(array('name' => 'foo'), $input->getArguments(), '->parse() parses required arguments');
-
-        $input->bind(new InputDefinition(array(new InputArgument('name'))));
-        $this->assertEquals(array('name' => 'foo'), $input->getArguments(), '->parse() is stateless');
-    }
-
-    /**
-     * @dataProvider provideOptions
-     */
-    public function testParseOptions($input, $options, $expectedOptions, $message)
-    {
-        $input = new ArgvInput($input);
-        $input->bind(new InputDefinition($options));
-
-        $this->assertEquals($expectedOptions, $input->getOptions(), $message);
-    }
-
-    public function provideOptions()
-    {
-        return array(
-            array(
-                array('cli.php', '--foo'),
-                array(new InputOption('foo')),
-                array('foo' => true),
-                '->parse() parses long options without a value',
-            ),
-            array(
-                array('cli.php', '--foo=bar'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED)),
-                array('foo' => 'bar'),
-                '->parse() parses long options with a required value (with a = separator)',
-            ),
-            array(
-                array('cli.php', '--foo', 'bar'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED)),
-                array('foo' => 'bar'),
-                '->parse() parses long options with a required value (with a space separator)',
-            ),
-            array(
-                array('cli.php', '-f'),
-                array(new InputOption('foo', 'f')),
-                array('foo' => true),
-                '->parse() parses short options without a value',
-            ),
-            array(
-                array('cli.php', '-fbar'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED)),
-                array('foo' => 'bar'),
-                '->parse() parses short options with a required value (with no separator)',
-            ),
-            array(
-                array('cli.php', '-f', 'bar'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED)),
-                array('foo' => 'bar'),
-                '->parse() parses short options with a required value (with a space separator)',
-            ),
-            array(
-                array('cli.php', '-f', ''),
-                array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL)),
-                array('foo' => ''),
-                '->parse() parses short options with an optional empty value',
-            ),
-            array(
-                array('cli.php', '-f', '', 'foo'),
-                array(new InputArgument('name'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL)),
-                array('foo' => ''),
-                '->parse() parses short options with an optional empty value followed by an argument',
-            ),
-            array(
-                array('cli.php', '-f', '', '-b'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b')),
-                array('foo' => '', 'bar' => true),
-                '->parse() parses short options with an optional empty value followed by an option',
-            ),
-            array(
-                array('cli.php', '-f', '-b', 'foo'),
-                array(new InputArgument('name'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b')),
-                array('foo' => null, 'bar' => true),
-                '->parse() parses short options with an optional value which is not present',
-            ),
-            array(
-                array('cli.php', '-fb'),
-                array(new InputOption('foo', 'f'), new InputOption('bar', 'b')),
-                array('foo' => true, 'bar' => true),
-                '->parse() parses short options when they are aggregated as a single one',
-            ),
-            array(
-                array('cli.php', '-fb', 'bar'),
-                array(new InputOption('foo', 'f'), new InputOption('bar', 'b', InputOption::VALUE_REQUIRED)),
-                array('foo' => true, 'bar' => 'bar'),
-                '->parse() parses short options when they are aggregated as a single one and the last one has a required value',
-            ),
-            array(
-                array('cli.php', '-fb', 'bar'),
-                array(new InputOption('foo', 'f'), new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL)),
-                array('foo' => true, 'bar' => 'bar'),
-                '->parse() parses short options when they are aggregated as a single one and the last one has an optional value',
-            ),
-            array(
-                array('cli.php', '-fbbar'),
-                array(new InputOption('foo', 'f'), new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL)),
-                array('foo' => true, 'bar' => 'bar'),
-                '->parse() parses short options when they are aggregated as a single one and the last one has an optional value with no separator',
-            ),
-            array(
-                array('cli.php', '-fbbar'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL), new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL)),
-                array('foo' => 'bbar', 'bar' => null),
-                '->parse() parses short options when they are aggregated as a single one and one of them takes a value',
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider provideInvalidInput
-     */
-    public function testInvalidInput($argv, $definition, $expectedExceptionMessage)
-    {
-        $this->setExpectedException('RuntimeException', $expectedExceptionMessage);
-
-        $input = new ArgvInput($argv);
-        $input->bind($definition);
-    }
-
-    public function provideInvalidInput()
-    {
-        return array(
-            array(
-                array('cli.php', '--foo'),
-                new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED))),
-                'The "--foo" option requires a value.',
-            ),
-            array(
-                array('cli.php', '-f'),
-                new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED))),
-                'The "--foo" option requires a value.',
-            ),
-            array(
-                array('cli.php', '-ffoo'),
-                new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_NONE))),
-                'The "-o" option does not exist.',
-            ),
-            array(
-                array('cli.php', '--foo=bar'),
-                new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_NONE))),
-                'The "--foo" option does not accept a value.',
-            ),
-            array(
-                array('cli.php', 'foo', 'bar'),
-                new InputDefinition(),
-                'Too many arguments.',
-            ),
-            array(
-                array('cli.php', '--foo'),
-                new InputDefinition(),
-                'The "--foo" option does not exist.',
-            ),
-            array(
-                array('cli.php', '-f'),
-                new InputDefinition(),
-                'The "-f" option does not exist.',
-            ),
-            array(
-                array('cli.php', '-1'),
-                new InputDefinition(array(new InputArgument('number'))),
-                'The "-1" option does not exist.',
-            ),
-        );
-    }
-
-    public function testParseArrayArgument()
-    {
-        $input = new ArgvInput(array('cli.php', 'foo', 'bar', 'baz', 'bat'));
-        $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::IS_ARRAY))));
-
-        $this->assertEquals(array('name' => array('foo', 'bar', 'baz', 'bat')), $input->getArguments(), '->parse() parses array arguments');
-    }
-
-    public function testParseArrayOption()
-    {
-        $input = new ArgvInput(array('cli.php', '--name=foo', '--name=bar', '--name=baz'));
-        $input->bind(new InputDefinition(array(new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY))));
-
-        $this->assertEquals(array('name' => array('foo', 'bar', 'baz')), $input->getOptions(), '->parse() parses array options ("--option=value" syntax)');
-
-        $input = new ArgvInput(array('cli.php', '--name', 'foo', '--name', 'bar', '--name', 'baz'));
-        $input->bind(new InputDefinition(array(new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY))));
-        $this->assertEquals(array('name' => array('foo', 'bar', 'baz')), $input->getOptions(), '->parse() parses array options ("--option value" syntax)');
-
-        $input = new ArgvInput(array('cli.php', '--name=foo', '--name=bar', '--name='));
-        $input->bind(new InputDefinition(array(new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY))));
-        $this->assertSame(array('name' => array('foo', 'bar', null)), $input->getOptions(), '->parse() parses empty array options as null ("--option=value" syntax)');
-
-        $input = new ArgvInput(array('cli.php', '--name', 'foo', '--name', 'bar', '--name', '--anotherOption'));
-        $input->bind(new InputDefinition(array(
-            new InputOption('name', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY),
-            new InputOption('anotherOption', null, InputOption::VALUE_NONE),
-        )));
-        $this->assertSame(array('name' => array('foo', 'bar', null), 'anotherOption' => true), $input->getOptions(), '->parse() parses empty array options as null ("--option value" syntax)');
-    }
-
-    public function testParseNegativeNumberAfterDoubleDash()
-    {
-        $input = new ArgvInput(array('cli.php', '--', '-1'));
-        $input->bind(new InputDefinition(array(new InputArgument('number'))));
-        $this->assertEquals(array('number' => '-1'), $input->getArguments(), '->parse() parses arguments with leading dashes as arguments after having encountered a double-dash sequence');
-
-        $input = new ArgvInput(array('cli.php', '-f', 'bar', '--', '-1'));
-        $input->bind(new InputDefinition(array(new InputArgument('number'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL))));
-        $this->assertEquals(array('foo' => 'bar'), $input->getOptions(), '->parse() parses arguments with leading dashes as options before having encountered a double-dash sequence');
-        $this->assertEquals(array('number' => '-1'), $input->getArguments(), '->parse() parses arguments with leading dashes as arguments after having encountered a double-dash sequence');
-    }
-
-    public function testParseEmptyStringArgument()
-    {
-        $input = new ArgvInput(array('cli.php', '-f', 'bar', ''));
-        $input->bind(new InputDefinition(array(new InputArgument('empty'), new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL))));
-
-        $this->assertEquals(array('empty' => ''), $input->getArguments(), '->parse() parses empty string arguments');
-    }
-
-    public function testGetFirstArgument()
-    {
-        $input = new ArgvInput(array('cli.php', '-fbbar'));
-        $this->assertNull($input->getFirstArgument(), '->getFirstArgument() returns null when there is no arguments');
-
-        $input = new ArgvInput(array('cli.php', '-fbbar', 'foo'));
-        $this->assertEquals('foo', $input->getFirstArgument(), '->getFirstArgument() returns the first argument from the raw input');
-    }
-
-    public function testHasParameterOption()
-    {
-        $input = new ArgvInput(array('cli.php', '-f', 'foo'));
-        $this->assertTrue($input->hasParameterOption('-f'), '->hasParameterOption() returns true if the given short option is in the raw input');
-
-        $input = new ArgvInput(array('cli.php', '--foo', 'foo'));
-        $this->assertTrue($input->hasParameterOption('--foo'), '->hasParameterOption() returns true if the given short option is in the raw input');
-
-        $input = new ArgvInput(array('cli.php', 'foo'));
-        $this->assertFalse($input->hasParameterOption('--foo'), '->hasParameterOption() returns false if the given short option is not in the raw input');
-
-        $input = new ArgvInput(array('cli.php', '--foo=bar'));
-        $this->assertTrue($input->hasParameterOption('--foo'), '->hasParameterOption() returns true if the given option with provided value is in the raw input');
-    }
-
-    public function testToString()
-    {
-        $input = new ArgvInput(array('cli.php', '-f', 'foo'));
-        $this->assertEquals('-f foo', (string) $input);
-
-        $input = new ArgvInput(array('cli.php', '-f', '--bar=foo', 'a b c d', "A\nB'C"));
-        $this->assertEquals('-f --bar=foo '.escapeshellarg('a b c d').' '.escapeshellarg("A\nB'C"), (string) $input);
-    }
-
-    /**
-     * @dataProvider provideGetParameterOptionValues
-     */
-    public function testGetParameterOptionEqualSign($argv, $key, $expected)
-    {
-        $input = new ArgvInput($argv);
-        $this->assertEquals($expected, $input->getParameterOption($key), '->getParameterOption() returns the expected value');
-    }
-
-    public function provideGetParameterOptionValues()
-    {
-        return array(
-            array(array('app/console', 'foo:bar', '-e', 'dev'), '-e', 'dev'),
-            array(array('app/console', 'foo:bar', '--env=dev'), '--env', 'dev'),
-            array(array('app/console', 'foo:bar', '-e', 'dev'), array('-e', '--env'), 'dev'),
-            array(array('app/console', 'foo:bar', '--env=dev'), array('-e', '--env'), 'dev'),
-            array(array('app/console', 'foo:bar', '--env=dev', '--en=1'), array('--en'), '1'),
-            array(array('app/console', 'foo:bar', '--env=dev', '', '--en=1'), array('--en'), '1'),
-        );
-    }
-
-    public function testParseSingleDashAsArgument()
-    {
-        $input = new ArgvInput(array('cli.php', '-'));
-        $input->bind(new InputDefinition(array(new InputArgument('file'))));
-        $this->assertEquals(array('file' => '-'), $input->getArguments(), '->parse() parses single dash as an argument');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/ArrayInputTest.php b/core/vendor/symfony/console/Tests/Input/ArrayInputTest.php
deleted file mode 100644
index cc89083..0000000
--- a/core/vendor/symfony/console/Tests/Input/ArrayInputTest.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-
-class ArrayInputTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetFirstArgument()
-    {
-        $input = new ArrayInput(array());
-        $this->assertNull($input->getFirstArgument(), '->getFirstArgument() returns null if no argument were passed');
-        $input = new ArrayInput(array('name' => 'Fabien'));
-        $this->assertEquals('Fabien', $input->getFirstArgument(), '->getFirstArgument() returns the first passed argument');
-        $input = new ArrayInput(array('--foo' => 'bar', 'name' => 'Fabien'));
-        $this->assertEquals('Fabien', $input->getFirstArgument(), '->getFirstArgument() returns the first passed argument');
-    }
-
-    public function testHasParameterOption()
-    {
-        $input = new ArrayInput(array('name' => 'Fabien', '--foo' => 'bar'));
-        $this->assertTrue($input->hasParameterOption('--foo'), '->hasParameterOption() returns true if an option is present in the passed parameters');
-        $this->assertFalse($input->hasParameterOption('--bar'), '->hasParameterOption() returns false if an option is not present in the passed parameters');
-
-        $input = new ArrayInput(array('--foo'));
-        $this->assertTrue($input->hasParameterOption('--foo'), '->hasParameterOption() returns true if an option is present in the passed parameters');
-    }
-
-    public function testGetParameterOption()
-    {
-        $input = new ArrayInput(array('name' => 'Fabien', '--foo' => 'bar'));
-        $this->assertEquals('bar', $input->getParameterOption('--foo'), '->getParameterOption() returns the option of specified name');
-
-        $input = new ArrayInput(array('Fabien', '--foo' => 'bar'));
-        $this->assertEquals('bar', $input->getParameterOption('--foo'), '->getParameterOption() returns the option of specified name');
-    }
-
-    public function testParseArguments()
-    {
-        $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'))));
-
-        $this->assertEquals(array('name' => 'foo'), $input->getArguments(), '->parse() parses required arguments');
-    }
-
-    /**
-     * @dataProvider provideOptions
-     */
-    public function testParseOptions($input, $options, $expectedOptions, $message)
-    {
-        $input = new ArrayInput($input, new InputDefinition($options));
-
-        $this->assertEquals($expectedOptions, $input->getOptions(), $message);
-    }
-
-    public function provideOptions()
-    {
-        return array(
-            array(
-                array('--foo' => 'bar'),
-                array(new InputOption('foo')),
-                array('foo' => 'bar'),
-                '->parse() parses long options',
-            ),
-            array(
-                array('--foo' => 'bar'),
-                array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL, '', 'default')),
-                array('foo' => 'bar'),
-                '->parse() parses long options with a default value',
-            ),
-            array(
-                array('--foo' => null),
-                array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL, '', 'default')),
-                array('foo' => 'default'),
-                '->parse() parses long options with a default value',
-            ),
-            array(
-                array('-f' => 'bar'),
-                array(new InputOption('foo', 'f')),
-                array('foo' => 'bar'),
-                '->parse() parses short options',
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider provideInvalidInput
-     */
-    public function testParseInvalidInput($parameters, $definition, $expectedExceptionMessage)
-    {
-        $this->setExpectedException('InvalidArgumentException', $expectedExceptionMessage);
-
-        new ArrayInput($parameters, $definition);
-    }
-
-    public function provideInvalidInput()
-    {
-        return array(
-            array(
-                array('foo' => 'foo'),
-                new InputDefinition(array(new InputArgument('name'))),
-                'The "foo" argument does not exist.',
-            ),
-            array(
-                array('--foo' => null),
-                new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED))),
-                'The "--foo" option requires a value.',
-            ),
-            array(
-                array('--foo' => 'foo'),
-                new InputDefinition(),
-                'The "--foo" option does not exist.',
-            ),
-            array(
-                array('-o' => 'foo'),
-                new InputDefinition(),
-                'The "-o" option does not exist.',
-            ),
-        );
-    }
-
-    public function testToString()
-    {
-        $input = new ArrayInput(array('-f' => null, '-b' => 'bar', '--foo' => 'b a z', '--lala' => null, 'test' => 'Foo', 'test2' => "A\nB'C"));
-        $this->assertEquals('-f -b=bar --foo='.escapeshellarg('b a z').' --lala Foo '.escapeshellarg("A\nB'C"), (string) $input);
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/InputArgumentTest.php b/core/vendor/symfony/console/Tests/Input/InputArgumentTest.php
deleted file mode 100644
index cfb37cd..0000000
--- a/core/vendor/symfony/console/Tests/Input/InputArgumentTest.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\InputArgument;
-
-class InputArgumentTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $argument = new InputArgument('foo');
-        $this->assertEquals('foo', $argument->getName(), '__construct() takes a name as its first argument');
-    }
-
-    public function testModes()
-    {
-        $argument = new InputArgument('foo');
-        $this->assertFalse($argument->isRequired(), '__construct() gives a "InputArgument::OPTIONAL" mode by default');
-
-        $argument = new InputArgument('foo', null);
-        $this->assertFalse($argument->isRequired(), '__construct() can take "InputArgument::OPTIONAL" as its mode');
-
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL);
-        $this->assertFalse($argument->isRequired(), '__construct() can take "InputArgument::OPTIONAL" as its mode');
-
-        $argument = new InputArgument('foo', InputArgument::REQUIRED);
-        $this->assertTrue($argument->isRequired(), '__construct() can take "InputArgument::REQUIRED" as its mode');
-    }
-
-    /**
-     * @dataProvider provideInvalidModes
-     */
-    public function testInvalidModes($mode)
-    {
-        $this->setExpectedException('InvalidArgumentException', sprintf('Argument mode "%s" is not valid.', $mode));
-
-        new InputArgument('foo', $mode);
-    }
-
-    public function provideInvalidModes()
-    {
-        return array(
-            array('ANOTHER_ONE'),
-            array(-1),
-        );
-    }
-
-    public function testIsArray()
-    {
-        $argument = new InputArgument('foo', InputArgument::IS_ARRAY);
-        $this->assertTrue($argument->isArray(), '->isArray() returns true if the argument can be an array');
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL | InputArgument::IS_ARRAY);
-        $this->assertTrue($argument->isArray(), '->isArray() returns true if the argument can be an array');
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL);
-        $this->assertFalse($argument->isArray(), '->isArray() returns false if the argument can not be an array');
-    }
-
-    public function testGetDescription()
-    {
-        $argument = new InputArgument('foo', null, 'Some description');
-        $this->assertEquals('Some description', $argument->getDescription(), '->getDescription() return the message description');
-    }
-
-    public function testGetDefault()
-    {
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL, '', 'default');
-        $this->assertEquals('default', $argument->getDefault(), '->getDefault() return the default value');
-    }
-
-    public function testSetDefault()
-    {
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL, '', 'default');
-        $argument->setDefault(null);
-        $this->assertNull($argument->getDefault(), '->setDefault() can reset the default value by passing null');
-        $argument->setDefault('another');
-        $this->assertEquals('another', $argument->getDefault(), '->setDefault() changes the default value');
-
-        $argument = new InputArgument('foo', InputArgument::OPTIONAL | InputArgument::IS_ARRAY);
-        $argument->setDefault(array(1, 2));
-        $this->assertEquals(array(1, 2), $argument->getDefault(), '->setDefault() changes the default value');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage Cannot set a default value except for InputArgument::OPTIONAL mode.
-     */
-    public function testSetDefaultWithRequiredArgument()
-    {
-        $argument = new InputArgument('foo', InputArgument::REQUIRED);
-        $argument->setDefault('default');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage A default value for an array argument must be an array.
-     */
-    public function testSetDefaultWithArrayArgument()
-    {
-        $argument = new InputArgument('foo', InputArgument::IS_ARRAY);
-        $argument->setDefault('default');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/InputDefinitionTest.php b/core/vendor/symfony/console/Tests/Input/InputDefinitionTest.php
deleted file mode 100644
index 7e0a242..0000000
--- a/core/vendor/symfony/console/Tests/Input/InputDefinitionTest.php
+++ /dev/null
@@ -1,437 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-
-class InputDefinitionTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixtures;
-
-    protected $foo, $bar, $foo1, $foo2;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixtures = __DIR__.'/../Fixtures/';
-    }
-
-    public function testConstructorArguments()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $this->assertEquals(array(), $definition->getArguments(), '__construct() creates a new InputDefinition object');
-
-        $definition = new InputDefinition(array($this->foo, $this->bar));
-        $this->assertEquals(array('foo' => $this->foo, 'bar' => $this->bar), $definition->getArguments(), '__construct() takes an array of InputArgument objects as its first argument');
-    }
-
-    public function testConstructorOptions()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition();
-        $this->assertEquals(array(), $definition->getOptions(), '__construct() creates a new InputDefinition object');
-
-        $definition = new InputDefinition(array($this->foo, $this->bar));
-        $this->assertEquals(array('foo' => $this->foo, 'bar' => $this->bar), $definition->getOptions(), '__construct() takes an array of InputOption objects as its first argument');
-    }
-
-    public function testSetArguments()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->setArguments(array($this->foo));
-        $this->assertEquals(array('foo' => $this->foo), $definition->getArguments(), '->setArguments() sets the array of InputArgument objects');
-        $definition->setArguments(array($this->bar));
-
-        $this->assertEquals(array('bar' => $this->bar), $definition->getArguments(), '->setArguments() clears all InputArgument objects');
-    }
-
-    public function testAddArguments()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArguments(array($this->foo));
-        $this->assertEquals(array('foo' => $this->foo), $definition->getArguments(), '->addArguments() adds an array of InputArgument objects');
-        $definition->addArguments(array($this->bar));
-        $this->assertEquals(array('foo' => $this->foo, 'bar' => $this->bar), $definition->getArguments(), '->addArguments() does not clear existing InputArgument objects');
-    }
-
-    public function testAddArgument()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArgument($this->foo);
-        $this->assertEquals(array('foo' => $this->foo), $definition->getArguments(), '->addArgument() adds a InputArgument object');
-        $definition->addArgument($this->bar);
-        $this->assertEquals(array('foo' => $this->foo, 'bar' => $this->bar), $definition->getArguments(), '->addArgument() adds a InputArgument object');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage An argument with name "foo" already exists.
-     */
-    public function testArgumentsMustHaveDifferentNames()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArgument($this->foo);
-        $definition->addArgument($this->foo1);
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage Cannot add an argument after an array argument.
-     */
-    public function testArrayArgumentHasToBeLast()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArgument(new InputArgument('fooarray', InputArgument::IS_ARRAY));
-        $definition->addArgument(new InputArgument('anotherbar'));
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage Cannot add a required argument after an optional one.
-     */
-    public function testRequiredArgumentCannotFollowAnOptionalOne()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArgument($this->foo);
-        $definition->addArgument($this->foo2);
-    }
-
-    public function testGetArgument()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArguments(array($this->foo));
-        $this->assertEquals($this->foo, $definition->getArgument('foo'), '->getArgument() returns a InputArgument by its name');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "bar" argument does not exist.
-     */
-    public function testGetInvalidArgument()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArguments(array($this->foo));
-        $definition->getArgument('bar');
-    }
-
-    public function testHasArgument()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArguments(array($this->foo));
-
-        $this->assertTrue($definition->hasArgument('foo'), '->hasArgument() returns true if a InputArgument exists for the given name');
-        $this->assertFalse($definition->hasArgument('bar'), '->hasArgument() returns false if a InputArgument exists for the given name');
-    }
-
-    public function testGetArgumentRequiredCount()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArgument($this->foo2);
-        $this->assertEquals(1, $definition->getArgumentRequiredCount(), '->getArgumentRequiredCount() returns the number of required arguments');
-        $definition->addArgument($this->foo);
-        $this->assertEquals(1, $definition->getArgumentRequiredCount(), '->getArgumentRequiredCount() returns the number of required arguments');
-    }
-
-    public function testGetArgumentCount()
-    {
-        $this->initializeArguments();
-
-        $definition = new InputDefinition();
-        $definition->addArgument($this->foo2);
-        $this->assertEquals(1, $definition->getArgumentCount(), '->getArgumentCount() returns the number of arguments');
-        $definition->addArgument($this->foo);
-        $this->assertEquals(2, $definition->getArgumentCount(), '->getArgumentCount() returns the number of arguments');
-    }
-
-    public function testGetArgumentDefaults()
-    {
-        $definition = new InputDefinition(array(
-            new InputArgument('foo1', InputArgument::OPTIONAL),
-            new InputArgument('foo2', InputArgument::OPTIONAL, '', 'default'),
-            new InputArgument('foo3', InputArgument::OPTIONAL | InputArgument::IS_ARRAY),
-        //  new InputArgument('foo4', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, '', array(1, 2)),
-        ));
-        $this->assertEquals(array('foo1' => null, 'foo2' => 'default', 'foo3' => array()), $definition->getArgumentDefaults(), '->getArgumentDefaults() return the default values for each argument');
-
-        $definition = new InputDefinition(array(
-            new InputArgument('foo4', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, '', array(1, 2)),
-        ));
-        $this->assertEquals(array('foo4' => array(1, 2)), $definition->getArgumentDefaults(), '->getArgumentDefaults() return the default values for each argument');
-    }
-
-    public function testSetOptions()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $this->assertEquals(array('foo' => $this->foo), $definition->getOptions(), '->setOptions() sets the array of InputOption objects');
-        $definition->setOptions(array($this->bar));
-        $this->assertEquals(array('bar' => $this->bar), $definition->getOptions(), '->setOptions() clears all InputOption objects');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "-f" option does not exist.
-     */
-    public function testSetOptionsClearsOptions()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $definition->setOptions(array($this->bar));
-        $definition->getOptionForShortcut('f');
-    }
-
-    public function testAddOptions()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $this->assertEquals(array('foo' => $this->foo), $definition->getOptions(), '->addOptions() adds an array of InputOption objects');
-        $definition->addOptions(array($this->bar));
-        $this->assertEquals(array('foo' => $this->foo, 'bar' => $this->bar), $definition->getOptions(), '->addOptions() does not clear existing InputOption objects');
-    }
-
-    public function testAddOption()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition();
-        $definition->addOption($this->foo);
-        $this->assertEquals(array('foo' => $this->foo), $definition->getOptions(), '->addOption() adds a InputOption object');
-        $definition->addOption($this->bar);
-        $this->assertEquals(array('foo' => $this->foo, 'bar' => $this->bar), $definition->getOptions(), '->addOption() adds a InputOption object');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage An option named "foo" already exists.
-     */
-    public function testAddDuplicateOption()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition();
-        $definition->addOption($this->foo);
-        $definition->addOption($this->foo2);
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage An option with shortcut "f" already exists.
-     */
-    public function testAddDuplicateShortcutOption()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition();
-        $definition->addOption($this->foo);
-        $definition->addOption($this->foo1);
-    }
-
-    public function testGetOption()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $this->assertEquals($this->foo, $definition->getOption('foo'), '->getOption() returns a InputOption by its name');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "--bar" option does not exist.
-     */
-    public function testGetInvalidOption()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $definition->getOption('bar');
-    }
-
-    public function testHasOption()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $this->assertTrue($definition->hasOption('foo'), '->hasOption() returns true if a InputOption exists for the given name');
-        $this->assertFalse($definition->hasOption('bar'), '->hasOption() returns false if a InputOption exists for the given name');
-    }
-
-    public function testHasShortcut()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $this->assertTrue($definition->hasShortcut('f'), '->hasShortcut() returns true if a InputOption exists for the given shortcut');
-        $this->assertFalse($definition->hasShortcut('b'), '->hasShortcut() returns false if a InputOption exists for the given shortcut');
-    }
-
-    public function testGetOptionForShortcut()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $this->assertEquals($this->foo, $definition->getOptionForShortcut('f'), '->getOptionForShortcut() returns a InputOption by its shortcut');
-    }
-
-    public function testGetOptionForMultiShortcut()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->multi));
-        $this->assertEquals($this->multi, $definition->getOptionForShortcut('m'), '->getOptionForShortcut() returns a InputOption by its shortcut');
-        $this->assertEquals($this->multi, $definition->getOptionForShortcut('mmm'), '->getOptionForShortcut() returns a InputOption by its shortcut');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "-l" option does not exist.
-     */
-    public function testGetOptionForInvalidShortcut()
-    {
-        $this->initializeOptions();
-
-        $definition = new InputDefinition(array($this->foo));
-        $definition->getOptionForShortcut('l');
-    }
-
-    public function testGetOptionDefaults()
-    {
-        $definition = new InputDefinition(array(
-            new InputOption('foo1', null, InputOption::VALUE_NONE),
-            new InputOption('foo2', null, InputOption::VALUE_REQUIRED),
-            new InputOption('foo3', null, InputOption::VALUE_REQUIRED, '', 'default'),
-            new InputOption('foo4', null, InputOption::VALUE_OPTIONAL),
-            new InputOption('foo5', null, InputOption::VALUE_OPTIONAL, '', 'default'),
-            new InputOption('foo6', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY),
-            new InputOption('foo7', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, '', array(1, 2)),
-        ));
-        $defaults = array(
-            'foo1' => false,
-            'foo2' => null,
-            'foo3' => 'default',
-            'foo4' => null,
-            'foo5' => 'default',
-            'foo6' => array(),
-            'foo7' => array(1, 2),
-        );
-        $this->assertSame($defaults, $definition->getOptionDefaults(), '->getOptionDefaults() returns the default values for all options');
-    }
-
-    /**
-     * @dataProvider getGetSynopsisData
-     */
-    public function testGetSynopsis(InputDefinition $definition, $expectedSynopsis, $message = null)
-    {
-        $this->assertEquals($expectedSynopsis, $definition->getSynopsis(), $message ? '->getSynopsis() '.$message : '');
-    }
-
-    public function getGetSynopsisData()
-    {
-        return array(
-            array(new InputDefinition(array(new InputOption('foo'))), '[--foo]', 'puts optional options in square brackets'),
-            array(new InputDefinition(array(new InputOption('foo', 'f'))), '[-f|--foo]', 'separates shortcut with a pipe'),
-            array(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_REQUIRED))), '[-f|--foo FOO]', 'uses shortcut as value placeholder'),
-            array(new InputDefinition(array(new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL))), '[-f|--foo [FOO]]', 'puts optional values in square brackets'),
-
-            array(new InputDefinition(array(new InputArgument('foo', InputArgument::REQUIRED))), '<foo>', 'puts arguments in angle brackets'),
-            array(new InputDefinition(array(new InputArgument('foo'))), '[<foo>]', 'puts optional arguments in square brackets'),
-            array(new InputDefinition(array(new InputArgument('foo', InputArgument::IS_ARRAY))), '[<foo>]...', 'uses an ellipsis for array arguments'),
-            array(new InputDefinition(array(new InputArgument('foo', InputArgument::REQUIRED | InputArgument::IS_ARRAY))), '<foo> (<foo>)...', 'uses parenthesis and ellipsis for required array arguments'),
-
-            array(new InputDefinition(array(new InputOption('foo'), new InputArgument('foo', InputArgument::REQUIRED))), '[--foo] [--] <foo>', 'puts [--] between options and arguments'),
-        );
-    }
-
-    public function testGetShortSynopsis()
-    {
-        $definition = new InputDefinition(array(new InputOption('foo'), new InputOption('bar'), new InputArgument('cat')));
-        $this->assertEquals('[options] [--] [<cat>]', $definition->getSynopsis(true), '->getSynopsis(true) groups options in [options]');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAsText()
-    {
-        $definition = new InputDefinition(array(
-            new InputArgument('foo', InputArgument::OPTIONAL, 'The foo argument'),
-            new InputArgument('baz', InputArgument::OPTIONAL, 'The baz argument', true),
-            new InputArgument('bar', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'The bar argument', array('http://foo.com/')),
-            new InputOption('foo', 'f', InputOption::VALUE_REQUIRED, 'The foo option'),
-            new InputOption('baz', null, InputOption::VALUE_OPTIONAL, 'The baz option', false),
-            new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL, 'The bar option', 'bar'),
-            new InputOption('qux', '', InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The qux option', array('http://foo.com/', 'bar')),
-            new InputOption('qux2', '', InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The qux2 option', array('foo' => 'bar')),
-        ));
-
-        $this->assertStringEqualsFile(self::$fixtures.'/definition_astext.txt', $definition->asText(), '->asText() returns a textual representation of the InputDefinition');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAsXml()
-    {
-        $definition = new InputDefinition(array(
-            new InputArgument('foo', InputArgument::OPTIONAL, 'The foo argument'),
-            new InputArgument('baz', InputArgument::OPTIONAL, 'The baz argument', true),
-            new InputArgument('bar', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'The bar argument', array('bar')),
-            new InputOption('foo', 'f', InputOption::VALUE_REQUIRED, 'The foo option'),
-            new InputOption('baz', null, InputOption::VALUE_OPTIONAL, 'The baz option', false),
-            new InputOption('bar', 'b', InputOption::VALUE_OPTIONAL, 'The bar option', 'bar'),
-        ));
-        $this->assertXmlStringEqualsXmlFile(self::$fixtures.'/definition_asxml.txt', $definition->asXml(), '->asXml() returns an XML representation of the InputDefinition');
-    }
-
-    protected function initializeArguments()
-    {
-        $this->foo = new InputArgument('foo');
-        $this->bar = new InputArgument('bar');
-        $this->foo1 = new InputArgument('foo');
-        $this->foo2 = new InputArgument('foo2', InputArgument::REQUIRED);
-    }
-
-    protected function initializeOptions()
-    {
-        $this->foo = new InputOption('foo', 'f');
-        $this->bar = new InputOption('bar', 'b');
-        $this->foo1 = new InputOption('fooBis', 'f');
-        $this->foo2 = new InputOption('foo', 'p');
-        $this->multi = new InputOption('multi', 'm|mm|mmm');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/InputOptionTest.php b/core/vendor/symfony/console/Tests/Input/InputOptionTest.php
deleted file mode 100644
index 53ce1df..0000000
--- a/core/vendor/symfony/console/Tests/Input/InputOptionTest.php
+++ /dev/null
@@ -1,204 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\InputOption;
-
-class InputOptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $option = new InputOption('foo');
-        $this->assertEquals('foo', $option->getName(), '__construct() takes a name as its first argument');
-        $option = new InputOption('--foo');
-        $this->assertEquals('foo', $option->getName(), '__construct() removes the leading -- of the option name');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage Impossible to have an option mode VALUE_IS_ARRAY if the option does not accept a value.
-     */
-    public function testArrayModeWithoutValue()
-    {
-        new InputOption('foo', 'f', InputOption::VALUE_IS_ARRAY);
-    }
-
-    public function testShortcut()
-    {
-        $option = new InputOption('foo', 'f');
-        $this->assertEquals('f', $option->getShortcut(), '__construct() can take a shortcut as its second argument');
-        $option = new InputOption('foo', '-f|-ff|fff');
-        $this->assertEquals('f|ff|fff', $option->getShortcut(), '__construct() removes the leading - of the shortcuts');
-        $option = new InputOption('foo', array('f', 'ff', '-fff'));
-        $this->assertEquals('f|ff|fff', $option->getShortcut(), '__construct() removes the leading - of the shortcuts');
-        $option = new InputOption('foo');
-        $this->assertNull($option->getShortcut(), '__construct() makes the shortcut null by default');
-    }
-
-    public function testModes()
-    {
-        $option = new InputOption('foo', 'f');
-        $this->assertFalse($option->acceptValue(), '__construct() gives a "InputOption::VALUE_NONE" mode by default');
-        $this->assertFalse($option->isValueRequired(), '__construct() gives a "InputOption::VALUE_NONE" mode by default');
-        $this->assertFalse($option->isValueOptional(), '__construct() gives a "InputOption::VALUE_NONE" mode by default');
-
-        $option = new InputOption('foo', 'f', null);
-        $this->assertFalse($option->acceptValue(), '__construct() can take "InputOption::VALUE_NONE" as its mode');
-        $this->assertFalse($option->isValueRequired(), '__construct() can take "InputOption::VALUE_NONE" as its mode');
-        $this->assertFalse($option->isValueOptional(), '__construct() can take "InputOption::VALUE_NONE" as its mode');
-
-        $option = new InputOption('foo', 'f', InputOption::VALUE_NONE);
-        $this->assertFalse($option->acceptValue(), '__construct() can take "InputOption::VALUE_NONE" as its mode');
-        $this->assertFalse($option->isValueRequired(), '__construct() can take "InputOption::VALUE_NONE" as its mode');
-        $this->assertFalse($option->isValueOptional(), '__construct() can take "InputOption::VALUE_NONE" as its mode');
-
-        $option = new InputOption('foo', 'f', InputOption::VALUE_REQUIRED);
-        $this->assertTrue($option->acceptValue(), '__construct() can take "InputOption::VALUE_REQUIRED" as its mode');
-        $this->assertTrue($option->isValueRequired(), '__construct() can take "InputOption::VALUE_REQUIRED" as its mode');
-        $this->assertFalse($option->isValueOptional(), '__construct() can take "InputOption::VALUE_REQUIRED" as its mode');
-
-        $option = new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL);
-        $this->assertTrue($option->acceptValue(), '__construct() can take "InputOption::VALUE_OPTIONAL" as its mode');
-        $this->assertFalse($option->isValueRequired(), '__construct() can take "InputOption::VALUE_OPTIONAL" as its mode');
-        $this->assertTrue($option->isValueOptional(), '__construct() can take "InputOption::VALUE_OPTIONAL" as its mode');
-    }
-
-    /**
-     * @dataProvider provideInvalidModes
-     */
-    public function testInvalidModes($mode)
-    {
-        $this->setExpectedException('InvalidArgumentException', sprintf('Option mode "%s" is not valid.', $mode));
-
-        new InputOption('foo', 'f', $mode);
-    }
-
-    public function provideInvalidModes()
-    {
-        return array(
-            array('ANOTHER_ONE'),
-            array(-1),
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testEmptyNameIsInvalid()
-    {
-        new InputOption('');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testDoubleDashNameIsInvalid()
-    {
-        new InputOption('--');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSingleDashOptionIsInvalid()
-    {
-        new InputOption('foo', '-');
-    }
-
-    public function testIsArray()
-    {
-        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY);
-        $this->assertTrue($option->isArray(), '->isArray() returns true if the option can be an array');
-        $option = new InputOption('foo', null, InputOption::VALUE_NONE);
-        $this->assertFalse($option->isArray(), '->isArray() returns false if the option can not be an array');
-    }
-
-    public function testGetDescription()
-    {
-        $option = new InputOption('foo', 'f', null, 'Some description');
-        $this->assertEquals('Some description', $option->getDescription(), '->getDescription() returns the description message');
-    }
-
-    public function testGetDefault()
-    {
-        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL, '', 'default');
-        $this->assertEquals('default', $option->getDefault(), '->getDefault() returns the default value');
-
-        $option = new InputOption('foo', null, InputOption::VALUE_REQUIRED, '', 'default');
-        $this->assertEquals('default', $option->getDefault(), '->getDefault() returns the default value');
-
-        $option = new InputOption('foo', null, InputOption::VALUE_REQUIRED);
-        $this->assertNull($option->getDefault(), '->getDefault() returns null if no default value is configured');
-
-        $option = new InputOption('foo', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY);
-        $this->assertEquals(array(), $option->getDefault(), '->getDefault() returns an empty array if option is an array');
-
-        $option = new InputOption('foo', null, InputOption::VALUE_NONE);
-        $this->assertFalse($option->getDefault(), '->getDefault() returns false if the option does not take a value');
-    }
-
-    public function testSetDefault()
-    {
-        $option = new InputOption('foo', null, InputOption::VALUE_REQUIRED, '', 'default');
-        $option->setDefault(null);
-        $this->assertNull($option->getDefault(), '->setDefault() can reset the default value by passing null');
-        $option->setDefault('another');
-        $this->assertEquals('another', $option->getDefault(), '->setDefault() changes the default value');
-
-        $option = new InputOption('foo', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY);
-        $option->setDefault(array(1, 2));
-        $this->assertEquals(array(1, 2), $option->getDefault(), '->setDefault() changes the default value');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage Cannot set a default value when using InputOption::VALUE_NONE mode.
-     */
-    public function testDefaultValueWithValueNoneMode()
-    {
-        $option = new InputOption('foo', 'f', InputOption::VALUE_NONE);
-        $option->setDefault('default');
-    }
-
-    /**
-     * @expectedException        \LogicException
-     * @expectedExceptionMessage A default value for an array option must be an array.
-     */
-    public function testDefaultValueWithIsArrayMode()
-    {
-        $option = new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY);
-        $option->setDefault('default');
-    }
-
-    public function testEquals()
-    {
-        $option = new InputOption('foo', 'f', null, 'Some description');
-        $option2 = new InputOption('foo', 'f', null, 'Alternative description');
-        $this->assertTrue($option->equals($option2));
-
-        $option = new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL, 'Some description');
-        $option2 = new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL, 'Some description', true);
-        $this->assertFalse($option->equals($option2));
-
-        $option = new InputOption('foo', 'f', null, 'Some description');
-        $option2 = new InputOption('bar', 'f', null, 'Some description');
-        $this->assertFalse($option->equals($option2));
-
-        $option = new InputOption('foo', 'f', null, 'Some description');
-        $option2 = new InputOption('foo', '', null, 'Some description');
-        $this->assertFalse($option->equals($option2));
-
-        $option = new InputOption('foo', 'f', null, 'Some description');
-        $option2 = new InputOption('foo', 'f', InputOption::VALUE_OPTIONAL, 'Some description');
-        $this->assertFalse($option->equals($option2));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/InputTest.php b/core/vendor/symfony/console/Tests/Input/InputTest.php
deleted file mode 100644
index 0b3e38f..0000000
--- a/core/vendor/symfony/console/Tests/Input/InputTest.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
-
-class InputTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'))));
-        $this->assertEquals('foo', $input->getArgument('name'), '->__construct() takes a InputDefinition as an argument');
-    }
-
-    public function testOptions()
-    {
-        $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'))));
-        $this->assertEquals('foo', $input->getOption('name'), '->getOption() returns the value for the given option');
-
-        $input->setOption('name', 'bar');
-        $this->assertEquals('bar', $input->getOption('name'), '->setOption() sets the value for a given option');
-        $this->assertEquals(array('name' => 'bar'), $input->getOptions(), '->getOptions() returns all option values');
-
-        $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default'))));
-        $this->assertEquals('default', $input->getOption('bar'), '->getOption() returns the default value for optional options');
-        $this->assertEquals(array('name' => 'foo', 'bar' => 'default'), $input->getOptions(), '->getOptions() returns all option values, even optional ones');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "foo" option does not exist.
-     */
-    public function testSetInvalidOption()
-    {
-        $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default'))));
-        $input->setOption('foo', 'bar');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "foo" option does not exist.
-     */
-    public function testGetInvalidOption()
-    {
-        $input = new ArrayInput(array('--name' => 'foo'), new InputDefinition(array(new InputOption('name'), new InputOption('bar', '', InputOption::VALUE_OPTIONAL, '', 'default'))));
-        $input->getOption('foo');
-    }
-
-    public function testArguments()
-    {
-        $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'))));
-        $this->assertEquals('foo', $input->getArgument('name'), '->getArgument() returns the value for the given argument');
-
-        $input->setArgument('name', 'bar');
-        $this->assertEquals('bar', $input->getArgument('name'), '->setArgument() sets the value for a given argument');
-        $this->assertEquals(array('name' => 'bar'), $input->getArguments(), '->getArguments() returns all argument values');
-
-        $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'), new InputArgument('bar', InputArgument::OPTIONAL, '', 'default'))));
-        $this->assertEquals('default', $input->getArgument('bar'), '->getArgument() returns the default value for optional arguments');
-        $this->assertEquals(array('name' => 'foo', 'bar' => 'default'), $input->getArguments(), '->getArguments() returns all argument values, even optional ones');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "foo" argument does not exist.
-     */
-    public function testSetInvalidArgument()
-    {
-        $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'), new InputArgument('bar', InputArgument::OPTIONAL, '', 'default'))));
-        $input->setArgument('foo', 'bar');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "foo" argument does not exist.
-     */
-    public function testGetInvalidArgument()
-    {
-        $input = new ArrayInput(array('name' => 'foo'), new InputDefinition(array(new InputArgument('name'), new InputArgument('bar', InputArgument::OPTIONAL, '', 'default'))));
-        $input->getArgument('foo');
-    }
-
-    /**
-     * @expectedException        \RuntimeException
-     * @expectedExceptionMessage Not enough arguments.
-     */
-    public function testValidateWithMissingArguments()
-    {
-        $input = new ArrayInput(array());
-        $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::REQUIRED))));
-        $input->validate();
-    }
-
-    public function testValidate()
-    {
-        $input = new ArrayInput(array('name' => 'foo'));
-        $input->bind(new InputDefinition(array(new InputArgument('name', InputArgument::REQUIRED))));
-
-        $this->assertNull($input->validate());
-    }
-
-    public function testSetGetInteractive()
-    {
-        $input = new ArrayInput(array());
-        $this->assertTrue($input->isInteractive(), '->isInteractive() returns whether the input should be interactive or not');
-        $input->setInteractive(false);
-        $this->assertFalse($input->isInteractive(), '->setInteractive() changes the interactive flag');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Input/StringInputTest.php b/core/vendor/symfony/console/Tests/Input/StringInputTest.php
deleted file mode 100644
index ccf9289..0000000
--- a/core/vendor/symfony/console/Tests/Input/StringInputTest.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Input;
-
-use Symfony\Component\Console\Input\InputDefinition;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Input\StringInput;
-
-class StringInputTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getTokenizeData
-     */
-    public function testTokenize($input, $tokens, $message)
-    {
-        $input = new StringInput($input);
-        $r = new \ReflectionClass('Symfony\Component\Console\Input\ArgvInput');
-        $p = $r->getProperty('tokens');
-        $p->setAccessible(true);
-        $this->assertEquals($tokens, $p->getValue($input), $message);
-    }
-
-    public function testInputOptionWithGivenString()
-    {
-        $definition = new InputDefinition(
-            array(new InputOption('foo', null, InputOption::VALUE_REQUIRED))
-        );
-
-        // call to bind
-        $input = new StringInput('--foo=bar');
-        $input->bind($definition);
-        $this->assertEquals('bar', $input->getOption('foo'));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyInputOptionDefinitionInConstructor()
-    {
-        $definition = new InputDefinition(
-            array(new InputOption('foo', null, InputOption::VALUE_REQUIRED))
-        );
-
-        $input = new StringInput('--foo=bar', $definition);
-        $this->assertEquals('bar', $input->getOption('foo'));
-    }
-
-    public function getTokenizeData()
-    {
-        return array(
-            array('', array(), '->tokenize() parses an empty string'),
-            array('foo', array('foo'), '->tokenize() parses arguments'),
-            array('  foo  bar  ', array('foo', 'bar'), '->tokenize() ignores whitespaces between arguments'),
-            array('"quoted"', array('quoted'), '->tokenize() parses quoted arguments'),
-            array("'quoted'", array('quoted'), '->tokenize() parses quoted arguments'),
-            array("'a\rb\nc\td'", array("a\rb\nc\td"), '->tokenize() parses whitespace chars in strings'),
-            array("'a'\r'b'\n'c'\t'd'", array('a','b','c','d'), '->tokenize() parses whitespace chars between args as spaces'),
-            array('\"quoted\"', array('"quoted"'), '->tokenize() parses escaped-quoted arguments'),
-            array("\'quoted\'", array('\'quoted\''), '->tokenize() parses escaped-quoted arguments'),
-            array('-a', array('-a'), '->tokenize() parses short options'),
-            array('-azc', array('-azc'), '->tokenize() parses aggregated short options'),
-            array('-awithavalue', array('-awithavalue'), '->tokenize() parses short options with a value'),
-            array('-a"foo bar"', array('-afoo bar'), '->tokenize() parses short options with a value'),
-            array('-a"foo bar""foo bar"', array('-afoo barfoo bar'), '->tokenize() parses short options with a value'),
-            array('-a\'foo bar\'', array('-afoo bar'), '->tokenize() parses short options with a value'),
-            array('-a\'foo bar\'\'foo bar\'', array('-afoo barfoo bar'), '->tokenize() parses short options with a value'),
-            array('-a\'foo bar\'"foo bar"', array('-afoo barfoo bar'), '->tokenize() parses short options with a value'),
-            array('--long-option', array('--long-option'), '->tokenize() parses long options'),
-            array('--long-option=foo', array('--long-option=foo'), '->tokenize() parses long options with a value'),
-            array('--long-option="foo bar"', array('--long-option=foo bar'), '->tokenize() parses long options with a value'),
-            array('--long-option="foo bar""another"', array('--long-option=foo baranother'), '->tokenize() parses long options with a value'),
-            array('--long-option=\'foo bar\'', array('--long-option=foo bar'), '->tokenize() parses long options with a value'),
-            array("--long-option='foo bar''another'", array('--long-option=foo baranother'), '->tokenize() parses long options with a value'),
-            array("--long-option='foo bar'\"another\"", array('--long-option=foo baranother'), '->tokenize() parses long options with a value'),
-            array('foo -a -ffoo --long bar', array('foo', '-a', '-ffoo', '--long', 'bar'), '->tokenize() parses when several arguments and options'),
-        );
-    }
-
-    public function testToString()
-    {
-        $input = new StringInput('-f foo');
-        $this->assertEquals('-f foo', (string) $input);
-
-        $input = new StringInput('-f --bar=foo "a b c d"');
-        $this->assertEquals('-f --bar=foo '.escapeshellarg('a b c d'), (string) $input);
-
-        $input = new StringInput('-f --bar=foo \'a b c d\' '."'A\nB\\'C'");
-        $this->assertEquals('-f --bar=foo '.escapeshellarg('a b c d').' '.escapeshellarg("A\nB'C"), (string) $input);
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php b/core/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php
deleted file mode 100644
index 1abc363..0000000
--- a/core/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Logger;
-
-use Psr\Log\Test\LoggerInterfaceTest;
-use Psr\Log\LogLevel;
-use Symfony\Component\Console\Logger\ConsoleLogger;
-use Symfony\Component\Console\Tests\Fixtures\DummyOutput;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Console logger test
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ConsoleLoggerTest extends LoggerInterfaceTest
-{
-    /**
-     * @var DummyOutput
-     */
-    protected $output;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getLogger()
-    {
-        $this->output = new DummyOutput(OutputInterface::VERBOSITY_VERBOSE);
-
-        return new ConsoleLogger($this->output, array(
-            LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::CRITICAL => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::ERROR => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::WARNING => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::NOTICE => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::INFO => OutputInterface::VERBOSITY_NORMAL,
-            LogLevel::DEBUG => OutputInterface::VERBOSITY_NORMAL,
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getLogs()
-    {
-        return $this->output->getLogs();
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php b/core/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php
deleted file mode 100644
index 1afbbb6..0000000
--- a/core/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Output;
-
-use Symfony\Component\Console\Output\ConsoleOutput;
-use Symfony\Component\Console\Output\Output;
-
-class ConsoleOutputTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $output = new ConsoleOutput(Output::VERBOSITY_QUIET, true);
-        $this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '__construct() takes the verbosity as its first argument');
-        $this->assertSame($output->getFormatter(), $output->getErrorOutput()->getFormatter(), '__construct() takes a formatter or null as the third argument');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Output/NullOutputTest.php b/core/vendor/symfony/console/Tests/Output/NullOutputTest.php
deleted file mode 100644
index b20ae4e..0000000
--- a/core/vendor/symfony/console/Tests/Output/NullOutputTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Output;
-
-use Symfony\Component\Console\Output\NullOutput;
-use Symfony\Component\Console\Output\OutputInterface;
-
-class NullOutputTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $output = new NullOutput();
-
-        ob_start();
-        $output->write('foo');
-        $buffer = ob_get_clean();
-
-        $this->assertSame('', $buffer, '->write() does nothing (at least nothing is printed)');
-        $this->assertFalse($output->isDecorated(), '->isDecorated() returns false');
-    }
-
-    public function testVerbosity()
-    {
-        $output = new NullOutput();
-        $this->assertSame(OutputInterface::VERBOSITY_QUIET, $output->getVerbosity(), '->getVerbosity() returns VERBOSITY_QUIET for NullOutput by default');
-
-        $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
-        $this->assertSame(OutputInterface::VERBOSITY_QUIET, $output->getVerbosity(), '->getVerbosity() always returns VERBOSITY_QUIET for NullOutput');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Output/OutputTest.php b/core/vendor/symfony/console/Tests/Output/OutputTest.php
deleted file mode 100644
index cfb4afe..0000000
--- a/core/vendor/symfony/console/Tests/Output/OutputTest.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Output;
-
-use Symfony\Component\Console\Output\Output;
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-
-class OutputTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $output = new TestOutput(Output::VERBOSITY_QUIET, true);
-        $this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '__construct() takes the verbosity as its first argument');
-        $this->assertTrue($output->isDecorated(), '__construct() takes the decorated flag as its second argument');
-    }
-
-    public function testSetIsDecorated()
-    {
-        $output = new TestOutput();
-        $output->setDecorated(true);
-        $this->assertTrue($output->isDecorated(), 'setDecorated() sets the decorated flag');
-    }
-
-    public function testSetGetVerbosity()
-    {
-        $output = new TestOutput();
-        $output->setVerbosity(Output::VERBOSITY_QUIET);
-        $this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '->setVerbosity() sets the verbosity');
-
-        $this->assertTrue($output->isQuiet());
-        $this->assertFalse($output->isVerbose());
-        $this->assertFalse($output->isVeryVerbose());
-        $this->assertFalse($output->isDebug());
-
-        $output->setVerbosity(Output::VERBOSITY_NORMAL);
-        $this->assertFalse($output->isQuiet());
-        $this->assertFalse($output->isVerbose());
-        $this->assertFalse($output->isVeryVerbose());
-        $this->assertFalse($output->isDebug());
-
-        $output->setVerbosity(Output::VERBOSITY_VERBOSE);
-        $this->assertFalse($output->isQuiet());
-        $this->assertTrue($output->isVerbose());
-        $this->assertFalse($output->isVeryVerbose());
-        $this->assertFalse($output->isDebug());
-
-        $output->setVerbosity(Output::VERBOSITY_VERY_VERBOSE);
-        $this->assertFalse($output->isQuiet());
-        $this->assertTrue($output->isVerbose());
-        $this->assertTrue($output->isVeryVerbose());
-        $this->assertFalse($output->isDebug());
-
-        $output->setVerbosity(Output::VERBOSITY_DEBUG);
-        $this->assertFalse($output->isQuiet());
-        $this->assertTrue($output->isVerbose());
-        $this->assertTrue($output->isVeryVerbose());
-        $this->assertTrue($output->isDebug());
-    }
-
-    public function testWriteWithVerbosityQuiet()
-    {
-        $output = new TestOutput(Output::VERBOSITY_QUIET);
-        $output->writeln('foo');
-        $this->assertEquals('', $output->output, '->writeln() outputs nothing if verbosity is set to VERBOSITY_QUIET');
-    }
-
-    public function testWriteAnArrayOfMessages()
-    {
-        $output = new TestOutput();
-        $output->writeln(array('foo', 'bar'));
-        $this->assertEquals("foo\nbar\n", $output->output, '->writeln() can take an array of messages to output');
-    }
-
-    /**
-     * @dataProvider provideWriteArguments
-     */
-    public function testWriteRawMessage($message, $type, $expectedOutput)
-    {
-        $output = new TestOutput();
-        $output->writeln($message, $type);
-        $this->assertEquals($expectedOutput, $output->output);
-    }
-
-    public function provideWriteArguments()
-    {
-        return array(
-            array('<info>foo</info>', Output::OUTPUT_RAW, "<info>foo</info>\n"),
-            array('<info>foo</info>', Output::OUTPUT_PLAIN, "foo\n"),
-        );
-    }
-
-    public function testWriteWithDecorationTurnedOff()
-    {
-        $output = new TestOutput();
-        $output->setDecorated(false);
-        $output->writeln('<info>foo</info>');
-        $this->assertEquals("foo\n", $output->output, '->writeln() strips decoration tags if decoration is set to false');
-    }
-
-    public function testWriteDecoratedMessage()
-    {
-        $fooStyle = new OutputFormatterStyle('yellow', 'red', array('blink'));
-        $output = new TestOutput();
-        $output->getFormatter()->setStyle('FOO', $fooStyle);
-        $output->setDecorated(true);
-        $output->writeln('<foo>foo</foo>');
-        $this->assertEquals("\033[33;41;5mfoo\033[39;49;25m\n", $output->output, '->writeln() decorates the output');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage Unknown output type given (24)
-     */
-    public function testWriteWithInvalidOutputType()
-    {
-        $output = new TestOutput();
-        $output->writeln('<foo>foo</foo>', 24);
-    }
-
-    public function testWriteWithInvalidStyle()
-    {
-        $output = new TestOutput();
-
-        $output->clear();
-        $output->write('<bar>foo</bar>');
-        $this->assertEquals('<bar>foo</bar>', $output->output, '->write() do nothing when a style does not exist');
-
-        $output->clear();
-        $output->writeln('<bar>foo</bar>');
-        $this->assertEquals("<bar>foo</bar>\n", $output->output, '->writeln() do nothing when a style does not exist');
-    }
-}
-
-class TestOutput extends Output
-{
-    public $output = '';
-
-    public function clear()
-    {
-        $this->output = '';
-    }
-
-    protected function doWrite($message, $newline)
-    {
-        $this->output .= $message.($newline ? "\n" : '');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Output/StreamOutputTest.php b/core/vendor/symfony/console/Tests/Output/StreamOutputTest.php
deleted file mode 100644
index 2fd4f61..0000000
--- a/core/vendor/symfony/console/Tests/Output/StreamOutputTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Output;
-
-use Symfony\Component\Console\Output\Output;
-use Symfony\Component\Console\Output\StreamOutput;
-
-class StreamOutputTest extends \PHPUnit_Framework_TestCase
-{
-    protected $stream;
-
-    protected function setUp()
-    {
-        $this->stream = fopen('php://memory', 'a', false);
-    }
-
-    protected function tearDown()
-    {
-        $this->stream = null;
-    }
-
-    public function testConstructor()
-    {
-        $output = new StreamOutput($this->stream, Output::VERBOSITY_QUIET, true);
-        $this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '__construct() takes the verbosity as its first argument');
-        $this->assertTrue($output->isDecorated(), '__construct() takes the decorated flag as its second argument');
-    }
-
-    /**
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The StreamOutput class needs a stream as its first argument.
-     */
-    public function testStreamIsRequired()
-    {
-        new StreamOutput('foo');
-    }
-
-    public function testGetStream()
-    {
-        $output = new StreamOutput($this->stream);
-        $this->assertEquals($this->stream, $output->getStream(), '->getStream() returns the current stream');
-    }
-
-    public function testDoWrite()
-    {
-        $output = new StreamOutput($this->stream);
-        $output->writeln('foo');
-        rewind($output->getStream());
-        $this->assertEquals('foo'.PHP_EOL, stream_get_contents($output->getStream()), '->doWrite() writes to the stream');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php b/core/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php
deleted file mode 100644
index 2df4f40..0000000
--- a/core/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Symfony\Component\Console\Tests\Style;
-
-use PHPUnit_Framework_TestCase;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
-use Symfony\Component\Console\Tester\CommandTester;
-
-class SymfonyStyleTest extends PHPUnit_Framework_TestCase
-{
-    /** @var Command */
-    protected $command;
-    /** @var CommandTester */
-    protected $tester;
-
-    protected function setUp()
-    {
-        $this->command = new Command('sfstyle');
-        $this->tester = new CommandTester($this->command);
-    }
-
-    protected function tearDown()
-    {
-        $this->command = null;
-        $this->tester = null;
-    }
-
-    /**
-     * @dataProvider inputCommandToOutputFilesProvider
-     */
-    public function testOutputs($inputCommandFilepath, $outputFilepath)
-    {
-        $code = require $inputCommandFilepath;
-        $this->command->setCode($code);
-        $this->tester->execute(array(), array('interactive' => false, 'decorated' => false));
-        $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true));
-    }
-
-    public function inputCommandToOutputFilesProvider()
-    {
-        $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle';
-
-        return array_map(null, glob($baseDir.'/command/command_*.php'), glob($baseDir.'/output/output_*.txt'));
-    }
-
-    public function testLongWordsBlockWrapping()
-    {
-        $word = 'Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon';
-        $wordLength = strlen($word);
-        $maxLineLength = SymfonyStyle::MAX_LINE_LENGTH - 3;
-
-        $this->command->setCode(function (InputInterface $input, OutputInterface $output) use ($word) {
-            $sfStyle = new SymfonyStyle($input, $output);
-            $sfStyle->block($word, 'CUSTOM', 'fg=white;bg=blue', ' § ', false);
-        });
-
-        $this->tester->execute(array(), array('interactive' => false, 'decorated' => false));
-        $expectedCount = (int) ceil($wordLength / ($maxLineLength)) + (int) ($wordLength > $maxLineLength - 5);
-        $this->assertSame($expectedCount, substr_count($this->tester->getDisplay(true), ' § '));
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php b/core/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php
deleted file mode 100644
index a8389dd..0000000
--- a/core/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Tester;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Output\Output;
-use Symfony\Component\Console\Tester\ApplicationTester;
-
-class ApplicationTesterTest extends \PHPUnit_Framework_TestCase
-{
-    protected $application;
-    protected $tester;
-
-    protected function setUp()
-    {
-        $this->application = new Application();
-        $this->application->setAutoExit(false);
-        $this->application->register('foo')
-            ->addArgument('foo')
-            ->setCode(function ($input, $output) { $output->writeln('foo'); })
-        ;
-
-        $this->tester = new ApplicationTester($this->application);
-        $this->tester->run(array('command' => 'foo', 'foo' => 'bar'), array('interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));
-    }
-
-    protected function tearDown()
-    {
-        $this->application = null;
-        $this->tester = null;
-    }
-
-    public function testRun()
-    {
-        $this->assertFalse($this->tester->getInput()->isInteractive(), '->execute() takes an interactive option');
-        $this->assertFalse($this->tester->getOutput()->isDecorated(), '->execute() takes a decorated option');
-        $this->assertEquals(Output::VERBOSITY_VERBOSE, $this->tester->getOutput()->getVerbosity(), '->execute() takes a verbosity option');
-    }
-
-    public function testGetInput()
-    {
-        $this->assertEquals('bar', $this->tester->getInput()->getArgument('foo'), '->getInput() returns the current input instance');
-    }
-
-    public function testGetOutput()
-    {
-        rewind($this->tester->getOutput()->getStream());
-        $this->assertEquals('foo'.PHP_EOL, stream_get_contents($this->tester->getOutput()->getStream()), '->getOutput() returns the current output instance');
-    }
-
-    public function testGetDisplay()
-    {
-        $this->assertEquals('foo'.PHP_EOL, $this->tester->getDisplay(), '->getDisplay() returns the display of the last execution');
-    }
-
-    public function testGetStatusCode()
-    {
-        $this->assertSame(0, $this->tester->getStatusCode(), '->getStatusCode() returns the status code');
-    }
-}
diff --git a/core/vendor/symfony/console/Tests/Tester/CommandTesterTest.php b/core/vendor/symfony/console/Tests/Tester/CommandTesterTest.php
deleted file mode 100644
index b54c00e..0000000
--- a/core/vendor/symfony/console/Tests/Tester/CommandTesterTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Tests\Tester;
-
-use Symfony\Component\Console\Application;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Output\Output;
-use Symfony\Component\Console\Tester\CommandTester;
-
-class CommandTesterTest extends \PHPUnit_Framework_TestCase
-{
-    protected $command;
-    protected $tester;
-
-    protected function setUp()
-    {
-        $this->command = new Command('foo');
-        $this->command->addArgument('command');
-        $this->command->addArgument('foo');
-        $this->command->setCode(function ($input, $output) { $output->writeln('foo'); });
-
-        $this->tester = new CommandTester($this->command);
-        $this->tester->execute(array('foo' => 'bar'), array('interactive' => false, 'decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));
-    }
-
-    protected function tearDown()
-    {
-        $this->command = null;
-        $this->tester = null;
-    }
-
-    public function testExecute()
-    {
-        $this->assertFalse($this->tester->getInput()->isInteractive(), '->execute() takes an interactive option');
-        $this->assertFalse($this->tester->getOutput()->isDecorated(), '->execute() takes a decorated option');
-        $this->assertEquals(Output::VERBOSITY_VERBOSE, $this->tester->getOutput()->getVerbosity(), '->execute() takes a verbosity option');
-    }
-
-    public function testGetInput()
-    {
-        $this->assertEquals('bar', $this->tester->getInput()->getArgument('foo'), '->getInput() returns the current input instance');
-    }
-
-    public function testGetOutput()
-    {
-        rewind($this->tester->getOutput()->getStream());
-        $this->assertEquals('foo'.PHP_EOL, stream_get_contents($this->tester->getOutput()->getStream()), '->getOutput() returns the current output instance');
-    }
-
-    public function testGetDisplay()
-    {
-        $this->assertEquals('foo'.PHP_EOL, $this->tester->getDisplay(), '->getDisplay() returns the display of the last execution');
-    }
-
-    public function testGetStatusCode()
-    {
-        $this->assertSame(0, $this->tester->getStatusCode(), '->getStatusCode() returns the status code');
-    }
-
-    public function testCommandFromApplication()
-    {
-        $application = new Application();
-        $application->setAutoExit(false);
-
-        $command = new Command('foo');
-        $command->setCode(function ($input, $output) { $output->writeln('foo'); });
-
-        $application->add($command);
-
-        $tester = new CommandTester($application->find('foo'));
-
-        // check that there is no need to pass the command name here
-        $this->assertEquals(0, $tester->execute(array()));
-    }
-}
diff --git a/core/vendor/symfony/console/composer.json b/core/vendor/symfony/console/composer.json
deleted file mode 100644
index 16b7b81..0000000
--- a/core/vendor/symfony/console/composer.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-    "name": "symfony/console",
-    "type": "library",
-    "description": "Symfony Console Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/event-dispatcher": "~2.1",
-        "symfony/process": "~2.1",
-        "psr/log": "~1.0"
-    },
-    "suggest": {
-        "symfony/event-dispatcher": "",
-        "symfony/process": "",
-        "psr/log": "For using the console logger"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Console\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/console/phpunit.xml.dist b/core/vendor/symfony/console/phpunit.xml.dist
deleted file mode 100644
index ae0dcbe..0000000
--- a/core/vendor/symfony/console/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Console Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/css-selector/.gitignore b/core/vendor/symfony/css-selector/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/css-selector/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/css-selector/CHANGELOG.md b/core/vendor/symfony/css-selector/CHANGELOG.md
deleted file mode 100644
index be10abe..0000000
--- a/core/vendor/symfony/css-selector/CHANGELOG.md
+++ /dev/null
@@ -1,7 +0,0 @@
-CHANGELOG
-=========
-
-2.1.0
------
-
- * none
diff --git a/core/vendor/symfony/css-selector/CssSelector.php b/core/vendor/symfony/css-selector/CssSelector.php
deleted file mode 100644
index 82c9283..0000000
--- a/core/vendor/symfony/css-selector/CssSelector.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector;
-
-use Symfony\Component\CssSelector\Parser\Shortcut\ClassParser;
-use Symfony\Component\CssSelector\Parser\Shortcut\ElementParser;
-use Symfony\Component\CssSelector\Parser\Shortcut\EmptyStringParser;
-use Symfony\Component\CssSelector\Parser\Shortcut\HashParser;
-use Symfony\Component\CssSelector\XPath\Extension\HtmlExtension;
-use Symfony\Component\CssSelector\XPath\Translator;
-
-/**
- * CssSelector is the main entry point of the component and can convert CSS
- * selectors to XPath expressions.
- *
- * $xpath = CssSelector::toXpath('h1.foo');
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * Copyright (c) 2007-2012 Ian Bicking and contributors. See AUTHORS
- * for more details.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. Neither the name of Ian Bicking nor the names of its contributors may
- * be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IAN BICKING OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class CssSelector
-{
-    private static $html = true;
-
-    /**
-     * Translates a CSS expression to its XPath equivalent.
-     * Optionally, a prefix can be added to the resulting XPath
-     * expression with the $prefix parameter.
-     *
-     * @param mixed  $cssExpr The CSS expression.
-     * @param string $prefix  An optional prefix for the XPath expression.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public static function toXPath($cssExpr, $prefix = 'descendant-or-self::')
-    {
-        $translator = new Translator();
-
-        if (self::$html) {
-            $translator->registerExtension(new HtmlExtension($translator));
-        }
-
-        $translator
-            ->registerParserShortcut(new EmptyStringParser())
-            ->registerParserShortcut(new ElementParser())
-            ->registerParserShortcut(new ClassParser())
-            ->registerParserShortcut(new HashParser())
-        ;
-
-        return $translator->cssToXPath($cssExpr, $prefix);
-    }
-
-    /**
-     * Enables the HTML extension.
-     */
-    public static function enableHtmlExtension()
-    {
-        self::$html = true;
-    }
-
-    /**
-     * Disables the HTML extension.
-     */
-    public static function disableHtmlExtension()
-    {
-        self::$html = false;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Exception/ExceptionInterface.php b/core/vendor/symfony/css-selector/Exception/ExceptionInterface.php
deleted file mode 100644
index e4c5ae1..0000000
--- a/core/vendor/symfony/css-selector/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Exception;
-
-/**
- * Interface for exceptions.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/css-selector/Exception/ExpressionErrorException.php b/core/vendor/symfony/css-selector/Exception/ExpressionErrorException.php
deleted file mode 100644
index fd5deea..0000000
--- a/core/vendor/symfony/css-selector/Exception/ExpressionErrorException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Exception;
-
-/**
- * ParseException is thrown when a CSS selector syntax is not valid.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ExpressionErrorException extends ParseException
-{
-}
diff --git a/core/vendor/symfony/css-selector/Exception/InternalErrorException.php b/core/vendor/symfony/css-selector/Exception/InternalErrorException.php
deleted file mode 100644
index e60e5ed..0000000
--- a/core/vendor/symfony/css-selector/Exception/InternalErrorException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Exception;
-
-/**
- * ParseException is thrown when a CSS selector syntax is not valid.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class InternalErrorException extends ParseException
-{
-}
diff --git a/core/vendor/symfony/css-selector/Exception/ParseException.php b/core/vendor/symfony/css-selector/Exception/ParseException.php
deleted file mode 100644
index 3b0b0ee..0000000
--- a/core/vendor/symfony/css-selector/Exception/ParseException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Exception;
-
-/**
- * ParseException is thrown when a CSS selector syntax is not valid.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ParseException extends \Exception implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/css-selector/Exception/SyntaxErrorException.php b/core/vendor/symfony/css-selector/Exception/SyntaxErrorException.php
deleted file mode 100644
index 418bc30..0000000
--- a/core/vendor/symfony/css-selector/Exception/SyntaxErrorException.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Exception;
-
-use Symfony\Component\CssSelector\Parser\Token;
-
-/**
- * ParseException is thrown when a CSS selector syntax is not valid.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class SyntaxErrorException extends ParseException
-{
-    /**
-     * @param string $expectedValue
-     * @param Token  $foundToken
-     *
-     * @return SyntaxErrorException
-     */
-    public static function unexpectedToken($expectedValue, Token $foundToken)
-    {
-        return new self(sprintf('Expected %s, but %s found.', $expectedValue, $foundToken));
-    }
-
-    /**
-     * @param string $pseudoElement
-     * @param string $unexpectedLocation
-     *
-     * @return SyntaxErrorException
-     */
-    public static function pseudoElementFound($pseudoElement, $unexpectedLocation)
-    {
-        return new self(sprintf('Unexpected pseudo-element "::%s" found %s.', $pseudoElement, $unexpectedLocation));
-    }
-
-    /**
-     * @param int $position
-     *
-     * @return SyntaxErrorException
-     */
-    public static function unclosedString($position)
-    {
-        return new self(sprintf('Unclosed/invalid string at %s.', $position));
-    }
-
-    /**
-     * @return SyntaxErrorException
-     */
-    public static function nestedNot()
-    {
-        return new self('Got nested ::not().');
-    }
-
-    /**
-     * @return SyntaxErrorException
-     */
-    public static function stringAsFunctionArgument()
-    {
-        return new self('String not allowed as function argument.');
-    }
-}
diff --git a/core/vendor/symfony/css-selector/LICENSE b/core/vendor/symfony/css-selector/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/css-selector/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/css-selector/Node/AbstractNode.php b/core/vendor/symfony/css-selector/Node/AbstractNode.php
deleted file mode 100644
index b1c8e95..0000000
--- a/core/vendor/symfony/css-selector/Node/AbstractNode.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Abstract base node class.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-abstract class AbstractNode implements NodeInterface
-{
-    /**
-     * @var string
-     */
-    private $nodeName;
-
-    /**
-     * @return string
-     */
-    public function getNodeName()
-    {
-        if (null === $this->nodeName) {
-            $this->nodeName = preg_replace('~.*\\\\([^\\\\]+)Node$~', '$1', get_called_class());
-        }
-
-        return $this->nodeName;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/AttributeNode.php b/core/vendor/symfony/css-selector/Node/AttributeNode.php
deleted file mode 100644
index b10a4dd..0000000
--- a/core/vendor/symfony/css-selector/Node/AttributeNode.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<selector>[<namespace>|<attribute> <operator> <value>]" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class AttributeNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $namespace;
-
-    /**
-     * @var string
-     */
-    private $attribute;
-
-    /**
-     * @var string
-     */
-    private $operator;
-
-    /**
-     * @var string
-     */
-    private $value;
-
-    /**
-     * @param NodeInterface $selector
-     * @param string        $namespace
-     * @param string        $attribute
-     * @param string        $operator
-     * @param string        $value
-     */
-    public function __construct(NodeInterface $selector, $namespace, $attribute, $operator, $value)
-    {
-        $this->selector = $selector;
-        $this->namespace = $namespace;
-        $this->attribute = $attribute;
-        $this->operator = $operator;
-        $this->value = $value;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNamespace()
-    {
-        return $this->namespace;
-    }
-
-    /**
-     * @return string
-     */
-    public function getAttribute()
-    {
-        return $this->attribute;
-    }
-
-    /**
-     * @return string
-     */
-    public function getOperator()
-    {
-        return $this->operator;
-    }
-
-    /**
-     * @return string
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        $attribute = $this->namespace ? $this->namespace.'|'.$this->attribute : $this->attribute;
-
-        return 'exists' === $this->operator
-            ? sprintf('%s[%s[%s]]', $this->getNodeName(), $this->selector, $attribute)
-            : sprintf("%s[%s[%s %s '%s']]", $this->getNodeName(), $this->selector, $attribute, $this->operator, $this->value);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/ClassNode.php b/core/vendor/symfony/css-selector/Node/ClassNode.php
deleted file mode 100644
index 544342f..0000000
--- a/core/vendor/symfony/css-selector/Node/ClassNode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<selector>.<name>" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ClassNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $name;
-
-    /**
-     * @param NodeInterface $selector
-     * @param string        $name
-     */
-    public function __construct(NodeInterface $selector, $name)
-    {
-        $this->selector = $selector;
-        $this->name = $name;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return sprintf('%s[%s.%s]', $this->getNodeName(), $this->selector, $this->name);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/CombinedSelectorNode.php b/core/vendor/symfony/css-selector/Node/CombinedSelectorNode.php
deleted file mode 100644
index 6d00db4..0000000
--- a/core/vendor/symfony/css-selector/Node/CombinedSelectorNode.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a combined node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class CombinedSelectorNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $combinator;
-
-    /**
-     * @var NodeInterface
-     */
-    private $subSelector;
-
-    /**
-     * @param NodeInterface $selector
-     * @param string        $combinator
-     * @param NodeInterface $subSelector
-     */
-    public function __construct(NodeInterface $selector, $combinator, NodeInterface $subSelector)
-    {
-        $this->selector = $selector;
-        $this->combinator = $combinator;
-        $this->subSelector = $subSelector;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return string
-     */
-    public function getCombinator()
-    {
-        return $this->combinator;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSubSelector()
-    {
-        return $this->subSelector;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus($this->subSelector->getSpecificity());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        $combinator = ' ' === $this->combinator ? '<followed>' : $this->combinator;
-
-        return sprintf('%s[%s %s %s]', $this->getNodeName(), $this->selector, $combinator, $this->subSelector);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/ElementNode.php b/core/vendor/symfony/css-selector/Node/ElementNode.php
deleted file mode 100644
index 71ef121..0000000
--- a/core/vendor/symfony/css-selector/Node/ElementNode.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<namespace>|<element>" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ElementNode extends AbstractNode
-{
-    /**
-     * @var string|null
-     */
-    private $namespace;
-
-    /**
-     * @var string|null
-     */
-    private $element;
-
-    /**
-     * @param string|null $namespace
-     * @param string|null $element
-     */
-    public function __construct($namespace = null, $element = null)
-    {
-        $this->namespace = $namespace;
-        $this->element = $element;
-    }
-
-    /**
-     * @return null|string
-     */
-    public function getNamespace()
-    {
-        return $this->namespace;
-    }
-
-    /**
-     * @return null|string
-     */
-    public function getElement()
-    {
-        return $this->element;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return new Specificity(0, 0, $this->element ? 1 : 0);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        $element = $this->element ?: '*';
-
-        return sprintf('%s[%s]', $this->getNodeName(), $this->namespace ? $this->namespace.'|'.$element : $element);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/FunctionNode.php b/core/vendor/symfony/css-selector/Node/FunctionNode.php
deleted file mode 100644
index f94af8d..0000000
--- a/core/vendor/symfony/css-selector/Node/FunctionNode.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-use Symfony\Component\CssSelector\Parser\Token;
-
-/**
- * Represents a "<selector>:<name>(<arguments>)" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class FunctionNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $name;
-
-    /**
-     * @var Token[]
-     */
-    private $arguments;
-
-    /**
-     * @param NodeInterface $selector
-     * @param string        $name
-     * @param Token[]       $arguments
-     */
-    public function __construct(NodeInterface $selector, $name, array $arguments = array())
-    {
-        $this->selector = $selector;
-        $this->name = strtolower($name);
-        $this->arguments = $arguments;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * @return Token[]
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        $arguments = implode(', ', array_map(function (Token $token) {
-            return "'".$token->getValue()."'";
-        }, $this->arguments));
-
-        return sprintf('%s[%s:%s(%s)]', $this->getNodeName(), $this->selector, $this->name, $arguments ? '['.$arguments.']' : '');
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/HashNode.php b/core/vendor/symfony/css-selector/Node/HashNode.php
deleted file mode 100644
index ddbe764..0000000
--- a/core/vendor/symfony/css-selector/Node/HashNode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<selector>#<id>" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class HashNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $id;
-
-    /**
-     * @param NodeInterface $selector
-     * @param string        $id
-     */
-    public function __construct(NodeInterface $selector, $id)
-    {
-        $this->selector = $selector;
-        $this->id = $id;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return string
-     */
-    public function getId()
-    {
-        return $this->id;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus(new Specificity(1, 0, 0));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return sprintf('%s[%s#%s]', $this->getNodeName(), $this->selector, $this->id);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/NegationNode.php b/core/vendor/symfony/css-selector/Node/NegationNode.php
deleted file mode 100644
index 0fafb0a..0000000
--- a/core/vendor/symfony/css-selector/Node/NegationNode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<selector>:not(<identifier>)" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class NegationNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var NodeInterface
-     */
-    private $subSelector;
-
-    /**
-     * @param NodeInterface $selector
-     * @param NodeInterface $subSelector
-     */
-    public function __construct(NodeInterface $selector, NodeInterface $subSelector)
-    {
-        $this->selector = $selector;
-        $this->subSelector = $subSelector;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSubSelector()
-    {
-        return $this->subSelector;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus($this->subSelector->getSpecificity());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return sprintf('%s[%s:not(%s)]', $this->getNodeName(), $this->selector, $this->subSelector);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/NodeInterface.php b/core/vendor/symfony/css-selector/Node/NodeInterface.php
deleted file mode 100644
index dd300e2..0000000
--- a/core/vendor/symfony/css-selector/Node/NodeInterface.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Interface for nodes.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface NodeInterface
-{
-    /**
-     * Returns node's name.
-     *
-     * @return string
-     */
-    public function getNodeName();
-
-    /**
-     * Returns node's specificity.
-     *
-     * @return Specificity
-     */
-    public function getSpecificity();
-
-    /**
-     * Returns node's string representation.
-     *
-     * @return string
-     */
-    public function __toString();
-}
diff --git a/core/vendor/symfony/css-selector/Node/PseudoNode.php b/core/vendor/symfony/css-selector/Node/PseudoNode.php
deleted file mode 100644
index 0e413ad..0000000
--- a/core/vendor/symfony/css-selector/Node/PseudoNode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<selector>:<identifier>" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class PseudoNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $identifier;
-
-    /**
-     * @param NodeInterface $selector
-     * @param string        $identifier
-     */
-    public function __construct(NodeInterface $selector, $identifier)
-    {
-        $this->selector = $selector;
-        $this->identifier = strtolower($identifier);
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getSelector()
-    {
-        return $this->selector;
-    }
-
-    /**
-     * @return string
-     */
-    public function getIdentifier()
-    {
-        return $this->identifier;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return sprintf('%s[%s:%s]', $this->getNodeName(), $this->selector, $this->identifier);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/SelectorNode.php b/core/vendor/symfony/css-selector/Node/SelectorNode.php
deleted file mode 100644
index 4958da5..0000000
--- a/core/vendor/symfony/css-selector/Node/SelectorNode.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a "<selector>(::|:)<pseudoElement>" node.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class SelectorNode extends AbstractNode
-{
-    /**
-     * @var NodeInterface
-     */
-    private $tree;
-
-    /**
-     * @var null|string
-     */
-    private $pseudoElement;
-
-    /**
-     * @param NodeInterface $tree
-     * @param null|string   $pseudoElement
-     */
-    public function __construct(NodeInterface $tree, $pseudoElement = null)
-    {
-        $this->tree = $tree;
-        $this->pseudoElement = $pseudoElement ? strtolower($pseudoElement) : null;
-    }
-
-    /**
-     * @return NodeInterface
-     */
-    public function getTree()
-    {
-        return $this->tree;
-    }
-
-    /**
-     * @return null|string
-     */
-    public function getPseudoElement()
-    {
-        return $this->pseudoElement;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSpecificity()
-    {
-        return $this->tree->getSpecificity()->plus(new Specificity(0, 0, $this->pseudoElement ? 1 : 0));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return sprintf('%s[%s%s]', $this->getNodeName(), $this->tree, $this->pseudoElement ? '::'.$this->pseudoElement : '');
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Node/Specificity.php b/core/vendor/symfony/css-selector/Node/Specificity.php
deleted file mode 100644
index 0dfec3b..0000000
--- a/core/vendor/symfony/css-selector/Node/Specificity.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Node;
-
-/**
- * Represents a node specificity.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @see http://www.w3.org/TR/selectors/#specificity
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class Specificity
-{
-    const A_FACTOR = 100;
-    const B_FACTOR = 10;
-    const C_FACTOR = 1;
-
-    /**
-     * @var int
-     */
-    private $a;
-
-    /**
-     * @var int
-     */
-    private $b;
-
-    /**
-     * @var int
-     */
-    private $c;
-
-    /**
-     * Constructor.
-     *
-     * @param int $a
-     * @param int $b
-     * @param int $c
-     */
-    public function __construct($a, $b, $c)
-    {
-        $this->a = $a;
-        $this->b = $b;
-        $this->c = $c;
-    }
-
-    /**
-     * @param Specificity $specificity
-     *
-     * @return Specificity
-     */
-    public function plus(Specificity $specificity)
-    {
-        return new self($this->a + $specificity->a, $this->b + $specificity->b, $this->c + $specificity->c);
-    }
-
-    /**
-     * Returns global specificity value.
-     *
-     * @return int
-     */
-    public function getValue()
-    {
-        return $this->a * self::A_FACTOR + $this->b * self::B_FACTOR + $this->c * self::C_FACTOR;
-    }
-
-    /**
-     * Returns -1 if the object specificity is lower than the argument,
-     * 0 if they are equal, and 1 if the argument is lower
-     *
-     * @param Specificity $specificity
-     *
-     * @return int
-     */
-    public function compareTo(Specificity $specificity)
-    {
-        if ($this->a !== $specificity->a) {
-            return $this->a > $specificity->a ? 1 : -1;
-        }
-
-        if ($this->b !== $specificity->b) {
-            return $this->b > $specificity->b ? 1 : -1;
-        }
-
-        if ($this->c !== $specificity->c) {
-            return $this->c > $specificity->c ? 1 : -1;
-        }
-
-        return 0;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/CommentHandler.php b/core/vendor/symfony/css-selector/Parser/Handler/CommentHandler.php
deleted file mode 100644
index f480776..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/CommentHandler.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-/**
- * CSS selector comment handler.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class CommentHandler implements HandlerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Reader $reader, TokenStream $stream)
-    {
-        if ('/*' !== $reader->getSubstring(2)) {
-            return false;
-        }
-
-        $offset = $reader->getOffset('*/');
-
-        if (false === $offset) {
-            $reader->moveToEnd();
-        } else {
-            $reader->moveForward($offset + 2);
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/HandlerInterface.php b/core/vendor/symfony/css-selector/Parser/Handler/HandlerInterface.php
deleted file mode 100644
index 049ddd3..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/HandlerInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-/**
- * CSS selector handler interface.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface HandlerInterface
-{
-    /**
-     * @param Reader      $reader
-     * @param TokenStream $stream
-     *
-     * @return bool
-     */
-    public function handle(Reader $reader, TokenStream $stream);
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/HashHandler.php b/core/vendor/symfony/css-selector/Parser/Handler/HashHandler.php
deleted file mode 100644
index b144223..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/HashHandler.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-
-/**
- * CSS selector comment handler.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class HashHandler implements HandlerInterface
-{
-    /**
-     * @var TokenizerPatterns
-     */
-    private $patterns;
-
-    /**
-     * @var TokenizerEscaping
-     */
-    private $escaping;
-
-    /**
-     * @param TokenizerPatterns $patterns
-     * @param TokenizerEscaping $escaping
-     */
-    public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
-    {
-        $this->patterns = $patterns;
-        $this->escaping = $escaping;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Reader $reader, TokenStream $stream)
-    {
-        $match = $reader->findPattern($this->patterns->getHashPattern());
-
-        if (!$match) {
-            return false;
-        }
-
-        $value = $this->escaping->escapeUnicode($match[1]);
-        $stream->push(new Token(Token::TYPE_HASH, $value, $reader->getPosition()));
-        $reader->moveForward(strlen($match[0]));
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php b/core/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
deleted file mode 100644
index 86739ea..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-
-/**
- * CSS selector comment handler.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class IdentifierHandler implements HandlerInterface
-{
-    /**
-     * @var TokenizerPatterns
-     */
-    private $patterns;
-
-    /**
-     * @var TokenizerEscaping
-     */
-    private $escaping;
-
-    /**
-     * @param TokenizerPatterns $patterns
-     * @param TokenizerEscaping $escaping
-     */
-    public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
-    {
-        $this->patterns = $patterns;
-        $this->escaping = $escaping;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Reader $reader, TokenStream $stream)
-    {
-        $match = $reader->findPattern($this->patterns->getIdentifierPattern());
-
-        if (!$match) {
-            return false;
-        }
-
-        $value = $this->escaping->escapeUnicode($match[0]);
-        $stream->push(new Token(Token::TYPE_IDENTIFIER, $value, $reader->getPosition()));
-        $reader->moveForward(strlen($match[0]));
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php b/core/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php
deleted file mode 100644
index 97a9387..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/NumberHandler.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-
-/**
- * CSS selector comment handler.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class NumberHandler implements HandlerInterface
-{
-    /**
-     * @var TokenizerPatterns
-     */
-    private $patterns;
-
-    /**
-     * @param TokenizerPatterns $patterns
-     */
-    public function __construct(TokenizerPatterns $patterns)
-    {
-        $this->patterns = $patterns;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Reader $reader, TokenStream $stream)
-    {
-        $match = $reader->findPattern($this->patterns->getNumberPattern());
-
-        if (!$match) {
-            return false;
-        }
-
-        $stream->push(new Token(Token::TYPE_NUMBER, $match[0], $reader->getPosition()));
-        $reader->moveForward(strlen($match[0]));
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/StringHandler.php b/core/vendor/symfony/css-selector/Parser/Handler/StringHandler.php
deleted file mode 100644
index 9f7a594..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/StringHandler.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Exception\InternalErrorException;
-use Symfony\Component\CssSelector\Exception\SyntaxErrorException;
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-
-/**
- * CSS selector comment handler.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class StringHandler implements HandlerInterface
-{
-    /**
-     * @var TokenizerPatterns
-     */
-    private $patterns;
-
-    /**
-     * @var TokenizerEscaping
-     */
-    private $escaping;
-
-    /**
-     * @param TokenizerPatterns $patterns
-     * @param TokenizerEscaping $escaping
-     */
-    public function __construct(TokenizerPatterns $patterns, TokenizerEscaping $escaping)
-    {
-        $this->patterns = $patterns;
-        $this->escaping = $escaping;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Reader $reader, TokenStream $stream)
-    {
-        $quote = $reader->getSubstring(1);
-
-        if (!in_array($quote, array("'", '"'))) {
-            return false;
-        }
-
-        $reader->moveForward(1);
-        $match = $reader->findPattern($this->patterns->getQuotedStringPattern($quote));
-
-        if (!$match) {
-            throw new InternalErrorException(sprintf('Should have found at least an empty match at %s.', $reader->getPosition()));
-        }
-
-        // check unclosed strings
-        if (strlen($match[0]) === $reader->getRemainingLength()) {
-            throw SyntaxErrorException::unclosedString($reader->getPosition() - 1);
-        }
-
-        // check quotes pairs validity
-        if ($quote !== $reader->getSubstring(1, strlen($match[0]))) {
-            throw SyntaxErrorException::unclosedString($reader->getPosition() - 1);
-        }
-
-        $string = $this->escaping->escapeUnicodeAndNewLine($match[0]);
-        $stream->push(new Token(Token::TYPE_STRING, $string, $reader->getPosition()));
-        $reader->moveForward(strlen($match[0]) + 1);
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Handler/WhitespaceHandler.php b/core/vendor/symfony/css-selector/Parser/Handler/WhitespaceHandler.php
deleted file mode 100644
index 234bbd8..0000000
--- a/core/vendor/symfony/css-selector/Parser/Handler/WhitespaceHandler.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-/**
- * CSS selector whitespace handler.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class WhitespaceHandler implements HandlerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Reader $reader, TokenStream $stream)
-    {
-        $match = $reader->findPattern('~^[ \t\r\n\f]+~');
-
-        if (false === $match) {
-            return false;
-        }
-
-        $stream->push(new Token(Token::TYPE_WHITESPACE, $match[0], $reader->getPosition()));
-        $reader->moveForward(strlen($match[0]));
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Parser.php b/core/vendor/symfony/css-selector/Parser/Parser.php
deleted file mode 100644
index 9625e3e..0000000
--- a/core/vendor/symfony/css-selector/Parser/Parser.php
+++ /dev/null
@@ -1,399 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser;
-
-use Symfony\Component\CssSelector\Exception\SyntaxErrorException;
-use Symfony\Component\CssSelector\Node;
-use Symfony\Component\CssSelector\Parser\Tokenizer\Tokenizer;
-
-/**
- * CSS selector parser.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class Parser implements ParserInterface
-{
-    /**
-     * @var Tokenizer
-     */
-    private $tokenizer;
-
-    /**
-     * Constructor.
-     *
-     * @param null|Tokenizer $tokenizer
-     */
-    public function __construct(Tokenizer $tokenizer = null)
-    {
-        $this->tokenizer = $tokenizer ?: new Tokenizer();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function parse($source)
-    {
-        $reader = new Reader($source);
-        $stream = $this->tokenizer->tokenize($reader);
-
-        return $this->parseSelectorList($stream);
-    }
-
-    /**
-     * Parses the arguments for ":nth-child()" and friends.
-     *
-     * @param Token[] $tokens
-     *
-     * @throws SyntaxErrorException
-     *
-     * @return array
-     */
-    public static function parseSeries(array $tokens)
-    {
-        foreach ($tokens as $token) {
-            if ($token->isString()) {
-                throw SyntaxErrorException::stringAsFunctionArgument();
-            }
-        }
-
-        $joined = trim(implode('', array_map(function (Token $token) {
-            return $token->getValue();
-        }, $tokens)));
-
-        $int = function ($string) {
-            if (!is_numeric($string)) {
-                throw SyntaxErrorException::stringAsFunctionArgument();
-            }
-
-            return (int) $string;
-        };
-
-        switch (true) {
-            case 'odd' === $joined:
-                return array(2, 1);
-            case 'even' === $joined:
-                return array(2, 0);
-            case 'n' === $joined:
-                return array(1, 0);
-            case false === strpos($joined, 'n'):
-                return array(0, $int($joined));
-        }
-
-        $split = explode('n', $joined);
-        $first = isset($split[0]) ? $split[0] : null;
-
-        return array(
-            $first ? ('-' === $first || '+' === $first ? $int($first.'1') : $int($first)) : 1,
-            isset($split[1]) && $split[1] ? $int($split[1]) : 0,
-        );
-    }
-
-    /**
-     * Parses selector nodes.
-     *
-     * @param TokenStream $stream
-     *
-     * @return array
-     */
-    private function parseSelectorList(TokenStream $stream)
-    {
-        $stream->skipWhitespace();
-        $selectors = array();
-
-        while (true) {
-            $selectors[] = $this->parserSelectorNode($stream);
-
-            if ($stream->getPeek()->isDelimiter(array(','))) {
-                $stream->getNext();
-                $stream->skipWhitespace();
-            } else {
-                break;
-            }
-        }
-
-        return $selectors;
-    }
-
-    /**
-     * Parses next selector or combined node.
-     *
-     * @param TokenStream $stream
-     *
-     * @throws SyntaxErrorException
-     *
-     * @return Node\SelectorNode
-     */
-    private function parserSelectorNode(TokenStream $stream)
-    {
-        list($result, $pseudoElement) = $this->parseSimpleSelector($stream);
-
-        while (true) {
-            $stream->skipWhitespace();
-            $peek = $stream->getPeek();
-
-            if ($peek->isFileEnd() || $peek->isDelimiter(array(','))) {
-                break;
-            }
-
-            if (null !== $pseudoElement) {
-                throw SyntaxErrorException::pseudoElementFound($pseudoElement, 'not at the end of a selector');
-            }
-
-            if ($peek->isDelimiter(array('+', '>', '~'))) {
-                $combinator = $stream->getNext()->getValue();
-                $stream->skipWhitespace();
-            } else {
-                $combinator = ' ';
-            }
-
-            list($nextSelector, $pseudoElement) = $this->parseSimpleSelector($stream);
-            $result = new Node\CombinedSelectorNode($result, $combinator, $nextSelector);
-        }
-
-        return new Node\SelectorNode($result, $pseudoElement);
-    }
-
-    /**
-     * Parses next simple node (hash, class, pseudo, negation).
-     *
-     * @param TokenStream $stream
-     * @param bool        $insideNegation
-     *
-     * @throws SyntaxErrorException
-     *
-     * @return array
-     */
-    private function parseSimpleSelector(TokenStream $stream, $insideNegation = false)
-    {
-        $stream->skipWhitespace();
-
-        $selectorStart = count($stream->getUsed());
-        $result = $this->parseElementNode($stream);
-        $pseudoElement = null;
-
-        while (true) {
-            $peek = $stream->getPeek();
-            if ($peek->isWhitespace()
-                || $peek->isFileEnd()
-                || $peek->isDelimiter(array(',', '+', '>', '~'))
-                || ($insideNegation && $peek->isDelimiter(array(')')))
-            ) {
-                break;
-            }
-
-            if (null !== $pseudoElement) {
-                throw SyntaxErrorException::pseudoElementFound($pseudoElement, 'not at the end of a selector');
-            }
-
-            if ($peek->isHash()) {
-                $result = new Node\HashNode($result, $stream->getNext()->getValue());
-            } elseif ($peek->isDelimiter(array('.'))) {
-                $stream->getNext();
-                $result = new Node\ClassNode($result, $stream->getNextIdentifier());
-            } elseif ($peek->isDelimiter(array('['))) {
-                $stream->getNext();
-                $result = $this->parseAttributeNode($result, $stream);
-            } elseif ($peek->isDelimiter(array(':'))) {
-                $stream->getNext();
-
-                if ($stream->getPeek()->isDelimiter(array(':'))) {
-                    $stream->getNext();
-                    $pseudoElement = $stream->getNextIdentifier();
-
-                    continue;
-                }
-
-                $identifier = $stream->getNextIdentifier();
-                if (in_array(strtolower($identifier), array('first-line', 'first-letter', 'before', 'after'))) {
-                    // Special case: CSS 2.1 pseudo-elements can have a single ':'.
-                    // Any new pseudo-element must have two.
-                    $pseudoElement = $identifier;
-
-                    continue;
-                }
-
-                if (!$stream->getPeek()->isDelimiter(array('('))) {
-                    $result = new Node\PseudoNode($result, $identifier);
-
-                    continue;
-                }
-
-                $stream->getNext();
-                $stream->skipWhitespace();
-
-                if ('not' === strtolower($identifier)) {
-                    if ($insideNegation) {
-                        throw SyntaxErrorException::nestedNot();
-                    }
-
-                    list($argument, $argumentPseudoElement) = $this->parseSimpleSelector($stream, true);
-                    $next = $stream->getNext();
-
-                    if (null !== $argumentPseudoElement) {
-                        throw SyntaxErrorException::pseudoElementFound($argumentPseudoElement, 'inside ::not()');
-                    }
-
-                    if (!$next->isDelimiter(array(')'))) {
-                        throw SyntaxErrorException::unexpectedToken('")"', $next);
-                    }
-
-                    $result = new Node\NegationNode($result, $argument);
-                } else {
-                    $arguments = array();
-                    $next = null;
-
-                    while (true) {
-                        $stream->skipWhitespace();
-                        $next = $stream->getNext();
-
-                        if ($next->isIdentifier()
-                            || $next->isString()
-                            || $next->isNumber()
-                            || $next->isDelimiter(array('+', '-'))
-                        ) {
-                            $arguments[] = $next;
-                        } elseif ($next->isDelimiter(array(')'))) {
-                            break;
-                        } else {
-                            throw SyntaxErrorException::unexpectedToken('an argument', $next);
-                        }
-                    }
-
-                    if (empty($arguments)) {
-                        throw SyntaxErrorException::unexpectedToken('at least one argument', $next);
-                    }
-
-                    $result = new Node\FunctionNode($result, $identifier, $arguments);
-                }
-            } else {
-                throw SyntaxErrorException::unexpectedToken('selector', $peek);
-            }
-        }
-
-        if (count($stream->getUsed()) === $selectorStart) {
-            throw SyntaxErrorException::unexpectedToken('selector', $stream->getPeek());
-        }
-
-        return array($result, $pseudoElement);
-    }
-
-    /**
-     * Parses next element node.
-     *
-     * @param TokenStream $stream
-     *
-     * @return Node\ElementNode
-     */
-    private function parseElementNode(TokenStream $stream)
-    {
-        $peek = $stream->getPeek();
-
-        if ($peek->isIdentifier() || $peek->isDelimiter(array('*'))) {
-            if ($peek->isIdentifier()) {
-                $namespace = $stream->getNext()->getValue();
-            } else {
-                $stream->getNext();
-                $namespace = null;
-            }
-
-            if ($stream->getPeek()->isDelimiter(array('|'))) {
-                $stream->getNext();
-                $element = $stream->getNextIdentifierOrStar();
-            } else {
-                $element = $namespace;
-                $namespace = null;
-            }
-        } else {
-            $element = $namespace = null;
-        }
-
-        return new Node\ElementNode($namespace, $element);
-    }
-
-    /**
-     * Parses next attribute node.
-     *
-     * @param Node\NodeInterface $selector
-     * @param TokenStream        $stream
-     *
-     * @throws SyntaxErrorException
-     *
-     * @return Node\AttributeNode
-     */
-    private function parseAttributeNode(Node\NodeInterface $selector, TokenStream $stream)
-    {
-        $stream->skipWhitespace();
-        $attribute = $stream->getNextIdentifierOrStar();
-
-        if (null === $attribute && !$stream->getPeek()->isDelimiter(array('|'))) {
-            throw SyntaxErrorException::unexpectedToken('"|"', $stream->getPeek());
-        }
-
-        if ($stream->getPeek()->isDelimiter(array('|'))) {
-            $stream->getNext();
-
-            if ($stream->getPeek()->isDelimiter(array('='))) {
-                $namespace = null;
-                $stream->getNext();
-                $operator = '|=';
-            } else {
-                $namespace = $attribute;
-                $attribute = $stream->getNextIdentifier();
-                $operator = null;
-            }
-        } else {
-            $namespace = $operator = null;
-        }
-
-        if (null === $operator) {
-            $stream->skipWhitespace();
-            $next = $stream->getNext();
-
-            if ($next->isDelimiter(array(']'))) {
-                return new Node\AttributeNode($selector, $namespace, $attribute, 'exists', null);
-            } elseif ($next->isDelimiter(array('='))) {
-                $operator = '=';
-            } elseif ($next->isDelimiter(array('^', '$', '*', '~', '|', '!'))
-                && $stream->getPeek()->isDelimiter(array('='))
-            ) {
-                $operator = $next->getValue().'=';
-                $stream->getNext();
-            } else {
-                throw SyntaxErrorException::unexpectedToken('operator', $next);
-            }
-        }
-
-        $stream->skipWhitespace();
-        $value = $stream->getNext();
-
-        if ($value->isNumber()) {
-            // if the value is a number, it's casted into a string
-            $value = new Token(Token::TYPE_STRING, (string) $value->getValue(), $value->getPosition());
-        }
-
-        if (!($value->isIdentifier() || $value->isString())) {
-            throw SyntaxErrorException::unexpectedToken('string or identifier', $value);
-        }
-
-        $stream->skipWhitespace();
-        $next = $stream->getNext();
-
-        if (!$next->isDelimiter(array(']'))) {
-            throw SyntaxErrorException::unexpectedToken('"]"', $next);
-        }
-
-        return new Node\AttributeNode($selector, $namespace, $attribute, $operator, $value->getValue());
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/ParserInterface.php b/core/vendor/symfony/css-selector/Parser/ParserInterface.php
deleted file mode 100644
index 3b43a52..0000000
--- a/core/vendor/symfony/css-selector/Parser/ParserInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser;
-
-use Symfony\Component\CssSelector\Node\SelectorNode;
-
-/**
- * CSS selector parser interface.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface ParserInterface
-{
-    /**
-     * Parses given selector source into an array of tokens.
-     *
-     * @param string $source
-     *
-     * @return SelectorNode[]
-     */
-    public function parse($source);
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Reader.php b/core/vendor/symfony/css-selector/Parser/Reader.php
deleted file mode 100644
index ba2a7f0..0000000
--- a/core/vendor/symfony/css-selector/Parser/Reader.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser;
-
-/**
- * CSS selector reader.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class Reader
-{
-    /**
-     * @var string
-     */
-    private $source;
-
-    /**
-     * @var int
-     */
-    private $length;
-
-    /**
-     * @var int
-     */
-    private $position = 0;
-
-    /**
-     * @param string $source
-     */
-    public function __construct($source)
-    {
-        $this->source = $source;
-        $this->length = strlen($source);
-    }
-
-    /**
-     * @return bool
-     */
-    public function isEOF()
-    {
-        return $this->position >= $this->length;
-    }
-
-    /**
-     * @return int
-     */
-    public function getPosition()
-    {
-        return $this->position;
-    }
-
-    /**
-     * @return int
-     */
-    public function getRemainingLength()
-    {
-        return $this->length - $this->position;
-    }
-
-    /**
-     * @param int $length
-     * @param int $offset
-     *
-     * @return string
-     */
-    public function getSubstring($length, $offset = 0)
-    {
-        return substr($this->source, $this->position + $offset, $length);
-    }
-
-    /**
-     * @param string $string
-     *
-     * @return int
-     */
-    public function getOffset($string)
-    {
-        $position = strpos($this->source, $string, $this->position);
-
-        return false === $position ? false : $position - $this->position;
-    }
-
-    /**
-     * @param string $pattern
-     *
-     * @return bool
-     */
-    public function findPattern($pattern)
-    {
-        $source = substr($this->source, $this->position);
-
-        if (preg_match($pattern, $source, $matches)) {
-            return $matches;
-        }
-
-        return false;
-    }
-
-    /**
-     * @param int $length
-     */
-    public function moveForward($length)
-    {
-        $this->position += $length;
-    }
-
-    /**
-     */
-    public function moveToEnd()
-    {
-        $this->position = $this->length;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php b/core/vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php
deleted file mode 100644
index 142bd16..0000000
--- a/core/vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\ClassNode;
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\ParserInterface;
-
-/**
- * CSS selector class parser shortcut.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ClassParser implements ParserInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function parse($source)
-    {
-        // Matches an optional namespace, optional element, and required class
-        // $source = 'test|input.ab6bd_field';
-        // $matches = array (size=5)
-        //     0 => string 'test:input.ab6bd_field' (length=22)
-        //     1 => string 'test:' (length=5)
-        //     2 => string 'test' (length=4)
-        //     3 => string 'input' (length=5)
-        //     4 => string 'ab6bd_field' (length=11)
-        if (preg_match('/^(([a-z]+)\|)?([\w-]+|\*)?\.([\w-]+)$/i', trim($source), $matches)) {
-            return array(
-                new SelectorNode(new ClassNode(new ElementNode($matches[2] ?: null, $matches[3] ?: null), $matches[4])),
-            );
-        }
-
-        return array();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Shortcut/ElementParser.php b/core/vendor/symfony/css-selector/Parser/Shortcut/ElementParser.php
deleted file mode 100644
index f62d259..0000000
--- a/core/vendor/symfony/css-selector/Parser/Shortcut/ElementParser.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\ParserInterface;
-
-/**
- * CSS selector element parser shortcut.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ElementParser implements ParserInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function parse($source)
-    {
-        // Matches an optional namespace, required element or `*`
-        // $source = 'testns|testel';
-        // $matches = array (size=4)
-        //     0 => string 'testns:testel' (length=13)
-        //     1 => string 'testns:' (length=7)
-        //     2 => string 'testns' (length=6)
-        //     3 => string 'testel' (length=6)
-        if (preg_match('/^(([a-z]+)\|)?([\w-]+|\*)$/i', trim($source), $matches)) {
-            return array(new SelectorNode(new ElementNode($matches[2] ?: null, $matches[3])));
-        }
-
-        return array();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php b/core/vendor/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php
deleted file mode 100644
index 98a08fd..0000000
--- a/core/vendor/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\ParserInterface;
-
-/**
- * CSS selector class parser shortcut.
- *
- * This shortcut ensure compatibility with previous version.
- * - The parser fails to parse an empty string.
- * - In the previous version, an empty string matches each tags.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class EmptyStringParser implements ParserInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function parse($source)
-    {
-        // Matches an empty string
-        if ($source == '') {
-            return array(new SelectorNode(new ElementNode(null, '*')));
-        }
-
-        return array();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Shortcut/HashParser.php b/core/vendor/symfony/css-selector/Parser/Shortcut/HashParser.php
deleted file mode 100644
index fde6141..0000000
--- a/core/vendor/symfony/css-selector/Parser/Shortcut/HashParser.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\HashNode;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\ParserInterface;
-
-/**
- * CSS selector hash parser shortcut.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class HashParser implements ParserInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function parse($source)
-    {
-        // Matches an optional namespace, optional element, and required id
-        // $source = 'test|input#ab6bd_field';
-        // $matches = array (size=5)
-        //     0 => string 'test:input#ab6bd_field' (length=22)
-        //     1 => string 'test:' (length=5)
-        //     2 => string 'test' (length=4)
-        //     3 => string 'input' (length=5)
-        //     4 => string 'ab6bd_field' (length=11)
-        if (preg_match('/^(([a-z]+)\|)?([\w-]+|\*)?#([\w-]+)$/i', trim($source), $matches)) {
-            return array(
-                new SelectorNode(new HashNode(new ElementNode($matches[2] ?: null, $matches[3] ?: null), $matches[4])),
-            );
-        }
-
-        return array();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Token.php b/core/vendor/symfony/css-selector/Parser/Token.php
deleted file mode 100644
index 6f7586f..0000000
--- a/core/vendor/symfony/css-selector/Parser/Token.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser;
-
-/**
- * CSS selector token.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class Token
-{
-    const TYPE_FILE_END = 'eof';
-    const TYPE_DELIMITER = 'delimiter';
-    const TYPE_WHITESPACE = 'whitespace';
-    const TYPE_IDENTIFIER = 'identifier';
-    const TYPE_HASH = 'hash';
-    const TYPE_NUMBER = 'number';
-    const TYPE_STRING = 'string';
-
-    /**
-     * @var int
-     */
-    private $type;
-
-    /**
-     * @var string
-     */
-    private $value;
-
-    /**
-     * @var int
-     */
-    private $position;
-
-    /**
-     * @param int    $type
-     * @param string $value
-     * @param int    $position
-     */
-    public function __construct($type, $value, $position)
-    {
-        $this->type = $type;
-        $this->value = $value;
-        $this->position = $position;
-    }
-
-    /**
-     * @return int
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * @return string
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * @return int
-     */
-    public function getPosition()
-    {
-        return $this->position;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isFileEnd()
-    {
-        return self::TYPE_FILE_END === $this->type;
-    }
-
-    /**
-     * @param array $values
-     *
-     * @return bool
-     */
-    public function isDelimiter(array $values = array())
-    {
-        if (self::TYPE_DELIMITER !== $this->type) {
-            return false;
-        }
-
-        if (empty($values)) {
-            return true;
-        }
-
-        return in_array($this->value, $values);
-    }
-
-    /**
-     * @return bool
-     */
-    public function isWhitespace()
-    {
-        return self::TYPE_WHITESPACE === $this->type;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isIdentifier()
-    {
-        return self::TYPE_IDENTIFIER === $this->type;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isHash()
-    {
-        return self::TYPE_HASH === $this->type;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isNumber()
-    {
-        return self::TYPE_NUMBER === $this->type;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isString()
-    {
-        return self::TYPE_STRING === $this->type;
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        if ($this->value) {
-            return sprintf('<%s "%s" at %s>', $this->type, $this->value, $this->position);
-        }
-
-        return sprintf('<%s at %s>', $this->type, $this->position);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/TokenStream.php b/core/vendor/symfony/css-selector/Parser/TokenStream.php
deleted file mode 100644
index c0525d7..0000000
--- a/core/vendor/symfony/css-selector/Parser/TokenStream.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser;
-
-use Symfony\Component\CssSelector\Exception\InternalErrorException;
-use Symfony\Component\CssSelector\Exception\SyntaxErrorException;
-
-/**
- * CSS selector token stream.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class TokenStream
-{
-    /**
-     * @var Token[]
-     */
-    private $tokens = array();
-
-    /**
-     * @var bool
-     */
-    private $frozen = false;
-
-    /**
-     * @var Token[]
-     */
-    private $used = array();
-
-    /**
-     * @var int
-     */
-    private $cursor = 0;
-
-    /**
-     * @var Token|null
-     */
-    private $peeked = null;
-
-    /**
-     * @var bool
-     */
-    private $peeking = false;
-
-    /**
-     * Pushes a token.
-     *
-     * @param Token $token
-     *
-     * @return TokenStream
-     */
-    public function push(Token $token)
-    {
-        $this->tokens[] = $token;
-
-        return $this;
-    }
-
-    /**
-     * Freezes stream.
-     *
-     * @return TokenStream
-     */
-    public function freeze()
-    {
-        $this->frozen = true;
-
-        return $this;
-    }
-
-    /**
-     * Returns next token.
-     *
-     * @throws InternalErrorException If there is no more token
-     *
-     * @return Token
-     */
-    public function getNext()
-    {
-        if ($this->peeking) {
-            $this->peeking = false;
-            $this->used[] = $this->peeked;
-
-            return $this->peeked;
-        }
-
-        if (!isset($this->tokens[$this->cursor])) {
-            throw new InternalErrorException('Unexpected token stream end.');
-        }
-
-        return $this->tokens[$this->cursor++];
-    }
-
-    /**
-     * Returns peeked token.
-     *
-     * @return Token
-     */
-    public function getPeek()
-    {
-        if (!$this->peeking) {
-            $this->peeked = $this->getNext();
-            $this->peeking = true;
-        }
-
-        return $this->peeked;
-    }
-
-    /**
-     * Returns used tokens.
-     *
-     * @return Token[]
-     */
-    public function getUsed()
-    {
-        return $this->used;
-    }
-
-    /**
-     * Returns nex identifier token.
-     *
-     * @throws SyntaxErrorException If next token is not an identifier
-     *
-     * @return string The identifier token value
-     */
-    public function getNextIdentifier()
-    {
-        $next = $this->getNext();
-
-        if (!$next->isIdentifier()) {
-            throw SyntaxErrorException::unexpectedToken('identifier', $next);
-        }
-
-        return $next->getValue();
-    }
-
-    /**
-     * Returns nex identifier or star delimiter token.
-     *
-     * @throws SyntaxErrorException If next token is not an identifier or a star delimiter
-     *
-     * @return null|string The identifier token value or null if star found
-     */
-    public function getNextIdentifierOrStar()
-    {
-        $next = $this->getNext();
-
-        if ($next->isIdentifier()) {
-            return $next->getValue();
-        }
-
-        if ($next->isDelimiter(array('*'))) {
-            return;
-        }
-
-        throw SyntaxErrorException::unexpectedToken('identifier or "*"', $next);
-    }
-
-    /**
-     * Skips next whitespace if any.
-     */
-    public function skipWhitespace()
-    {
-        $peek = $this->getPeek();
-
-        if ($peek->isWhitespace()) {
-            $this->getNext();
-        }
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php b/core/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php
deleted file mode 100644
index 79fa7b7..0000000
--- a/core/vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Tokenizer;
-
-use Symfony\Component\CssSelector\Parser\Handler;
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-/**
- * CSS selector tokenizer.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class Tokenizer
-{
-    /**
-     * @var Handler\HandlerInterface[]
-     */
-    private $handlers;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $patterns = new TokenizerPatterns();
-        $escaping = new TokenizerEscaping($patterns);
-
-        $this->handlers = array(
-            new Handler\WhitespaceHandler(),
-            new Handler\IdentifierHandler($patterns, $escaping),
-            new Handler\HashHandler($patterns, $escaping),
-            new Handler\StringHandler($patterns, $escaping),
-            new Handler\NumberHandler($patterns),
-            new Handler\CommentHandler(),
-        );
-    }
-
-    /**
-     * Tokenize selector source code.
-     *
-     * @param Reader $reader
-     *
-     * @return TokenStream
-     */
-    public function tokenize(Reader $reader)
-    {
-        $stream = new TokenStream();
-
-        while (!$reader->isEOF()) {
-            foreach ($this->handlers as $handler) {
-                if ($handler->handle($reader, $stream)) {
-                    continue 2;
-                }
-            }
-
-            $stream->push(new Token(Token::TYPE_DELIMITER, $reader->getSubstring(1), $reader->getPosition()));
-            $reader->moveForward(1);
-        }
-
-        return $stream
-            ->push(new Token(Token::TYPE_FILE_END, null, $reader->getPosition()))
-            ->freeze();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php b/core/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php
deleted file mode 100644
index bf5096b..0000000
--- a/core/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Tokenizer;
-
-/**
- * CSS selector tokenizer escaping applier.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class TokenizerEscaping
-{
-    /**
-     * @var TokenizerPatterns
-     */
-    private $patterns;
-
-    /**
-     * @param TokenizerPatterns $patterns
-     */
-    public function __construct(TokenizerPatterns $patterns)
-    {
-        $this->patterns = $patterns;
-    }
-
-    /**
-     * @param string $value
-     *
-     * @return string
-     */
-    public function escapeUnicode($value)
-    {
-        $value = $this->replaceUnicodeSequences($value);
-
-        return preg_replace($this->patterns->getSimpleEscapePattern(), '$1', $value);
-    }
-
-    /**
-     * @param string $value
-     *
-     * @return string
-     */
-    public function escapeUnicodeAndNewLine($value)
-    {
-        $value = preg_replace($this->patterns->getNewLineEscapePattern(), '', $value);
-
-        return $this->escapeUnicode($value);
-    }
-
-    /**
-     * @param string $value
-     *
-     * @return string
-     */
-    private function replaceUnicodeSequences($value)
-    {
-        return preg_replace_callback($this->patterns->getUnicodeEscapePattern(), function ($match) {
-            $c = hexdec($match[1]);
-
-            if (0x80 > $c %= 0x200000) {
-                return chr($c);
-            }
-            if (0x800 > $c) {
-                return chr(0xC0 | $c >> 6).chr(0x80 | $c & 0x3F);
-            }
-            if (0x10000 > $c) {
-                return chr(0xE0 | $c >> 12).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F);
-            }
-        }, $value);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php b/core/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php
deleted file mode 100644
index 326f020..0000000
--- a/core/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Parser\Tokenizer;
-
-/**
- * CSS selector tokenizer patterns builder.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class TokenizerPatterns
-{
-    /**
-     * @var string
-     */
-    private $unicodeEscapePattern;
-
-    /**
-     * @var string
-     */
-    private $simpleEscapePattern;
-
-    /**
-     * @var string
-     */
-    private $newLineEscapePattern;
-
-    /**
-     * @var string
-     */
-    private $escapePattern;
-
-    /**
-     * @var string
-     */
-    private $stringEscapePattern;
-
-    /**
-     * @var string
-     */
-    private $nonAsciiPattern;
-
-    /**
-     * @var string
-     */
-    private $nmCharPattern;
-
-    /**
-     * @var string
-     */
-    private $nmStartPattern;
-
-    /**
-     * @var string
-     */
-    private $identifierPattern;
-
-    /**
-     * @var string
-     */
-    private $hashPattern;
-
-    /**
-     * @var string
-     */
-    private $numberPattern;
-
-    /**
-     * @var string
-     */
-    private $quotedStringPattern;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->unicodeEscapePattern = '\\\\([0-9a-f]{1,6})(?:\r\n|[ \n\r\t\f])?';
-        $this->simpleEscapePattern = '\\\\(.)';
-        $this->newLineEscapePattern = '\\\\(?:\n|\r\n|\r|\f)';
-        $this->escapePattern = $this->unicodeEscapePattern.'|\\\\[^\n\r\f0-9a-f]';
-        $this->stringEscapePattern = $this->newLineEscapePattern.'|'.$this->escapePattern;
-        $this->nonAsciiPattern = '[^\x00-\x7F]';
-        $this->nmCharPattern = '[_a-z0-9-]|'.$this->escapePattern.'|'.$this->nonAsciiPattern;
-        $this->nmStartPattern = '[_a-z]|'.$this->escapePattern.'|'.$this->nonAsciiPattern;
-        $this->identifierPattern = '(?:'.$this->nmStartPattern.')(?:'.$this->nmCharPattern.')*';
-        $this->hashPattern = '#((?:'.$this->nmCharPattern.')+)';
-        $this->numberPattern = '[+-]?(?:[0-9]*\.[0-9]+|[0-9]+)';
-        $this->quotedStringPattern = '([^\n\r\f%s]|'.$this->stringEscapePattern.')*';
-    }
-
-    /**
-     * @return string
-     */
-    public function getNewLineEscapePattern()
-    {
-        return '~^'.$this->newLineEscapePattern.'~';
-    }
-
-    /**
-     * @return string
-     */
-    public function getSimpleEscapePattern()
-    {
-        return '~^'.$this->simpleEscapePattern.'~';
-    }
-
-    /**
-     * @return string
-     */
-    public function getUnicodeEscapePattern()
-    {
-        return '~^'.$this->unicodeEscapePattern.'~i';
-    }
-
-    /**
-     * @return string
-     */
-    public function getIdentifierPattern()
-    {
-        return '~^'.$this->identifierPattern.'~i';
-    }
-
-    /**
-     * @return string
-     */
-    public function getHashPattern()
-    {
-        return '~^'.$this->hashPattern.'~i';
-    }
-
-    /**
-     * @return string
-     */
-    public function getNumberPattern()
-    {
-        return '~^'.$this->numberPattern.'~';
-    }
-
-    /**
-     * @param string $quote
-     *
-     * @return string
-     */
-    public function getQuotedStringPattern($quote)
-    {
-        return '~^'.sprintf($this->quotedStringPattern, $quote).'~i';
-    }
-}
diff --git a/core/vendor/symfony/css-selector/README.md b/core/vendor/symfony/css-selector/README.md
deleted file mode 100644
index ffe6c89..0000000
--- a/core/vendor/symfony/css-selector/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-CssSelector Component
-=====================
-
-CssSelector converts CSS selectors to XPath expressions.
-
-The component only goal is to convert CSS selectors to their XPath
-equivalents:
-
-```php
-use Symfony\Component\CssSelector\CssSelector;
-
-print CssSelector::toXPath('div.item > h4 > a');
-```
-
-HTML and XML are different
---------------------------
-
-The `CssSelector` component comes with an `HTML` extension which is enabled by
-default. If you need to use this component with `XML` documents, you have to
-disable this `HTML` extension. That's because, `HTML` tag & attribute names
-are always lower-cased, but case-sensitive in `XML`:
-
-```php
-// disable `HTML` extension:
-CssSelector::disableHtmlExtension();
-
-// re-enable `HTML` extension:
-CssSelector::enableHtmlExtension();
-```
-
-When the `HTML` extension is enabled, tag names are lower-cased, attribute
-names are lower-cased, the following extra pseudo-classes are supported:
-`checked`, `link`, `disabled`, `enabled`, `selected`, `invalid`, `hover`,
-`visited`, and the `lang()` function is also added.
-
-Resources
----------
-
-This component is a port of the Python cssselect library
-[v0.7.1](https://github.com/SimonSapin/cssselect/releases/tag/v0.7.1),
-which is distributed under the BSD license.
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/CssSelector/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/css-selector/Tests/CssSelectorTest.php b/core/vendor/symfony/css-selector/Tests/CssSelectorTest.php
deleted file mode 100644
index 61ab80e..0000000
--- a/core/vendor/symfony/css-selector/Tests/CssSelectorTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests;
-
-use Symfony\Component\CssSelector\CssSelector;
-
-class CssSelectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCssToXPath()
-    {
-        $this->assertEquals('descendant-or-self::*', CssSelector::toXPath(''));
-        $this->assertEquals('descendant-or-self::h1', CssSelector::toXPath('h1'));
-        $this->assertEquals("descendant-or-self::h1[@id = 'foo']", CssSelector::toXPath('h1#foo'));
-        $this->assertEquals("descendant-or-self::h1[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]", CssSelector::toXPath('h1.foo'));
-        $this->assertEquals('descendant-or-self::foo:h1', CssSelector::toXPath('foo|h1'));
-    }
-
-    /** @dataProvider getCssToXPathWithoutPrefixTestData */
-    public function testCssToXPathWithoutPrefix($css, $xpath)
-    {
-        $this->assertEquals($xpath, CssSelector::toXPath($css, ''), '->parse() parses an input string and returns a node');
-    }
-
-    public function testParseExceptions()
-    {
-        try {
-            CssSelector::toXPath('h1:');
-            $this->fail('->parse() throws an Exception if the css selector is not valid');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\Symfony\Component\CssSelector\Exception\ParseException', $e, '->parse() throws an Exception if the css selector is not valid');
-            $this->assertEquals('Expected identifier, but <eof at 3> found.', $e->getMessage(), '->parse() throws an Exception if the css selector is not valid');
-        }
-    }
-
-    public function getCssToXPathWithoutPrefixTestData()
-    {
-        return array(
-            array('h1', 'h1'),
-            array('foo|h1', 'foo:h1'),
-            array('h1, h2, h3', 'h1 | h2 | h3'),
-            array('h1:nth-child(3n+1)', "*/*[name() = 'h1' and (position() - 1 >= 0 and (position() - 1) mod 3 = 0)]"),
-            array('h1 > p', 'h1/p'),
-            array('h1#foo', "h1[@id = 'foo']"),
-            array('h1.foo', "h1[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-            array('h1[class*="foo bar"]', "h1[@class and contains(@class, 'foo bar')]"),
-            array('h1[foo|class*="foo bar"]', "h1[@foo:class and contains(@foo:class, 'foo bar')]"),
-            array('h1[class]', 'h1[@class]'),
-            array('h1 .foo', "h1/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-            array('h1 #foo', "h1/descendant-or-self::*/*[@id = 'foo']"),
-            array('h1 [class*=foo]', "h1/descendant-or-self::*/*[@class and contains(@class, 'foo')]"),
-            array('div>.foo', "div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-            array('div > .foo', "div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]"),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/AbstractNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/AbstractNodeTest.php
deleted file mode 100644
index 16a3a34..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/AbstractNodeTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\NodeInterface;
-
-abstract class AbstractNodeTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getToStringConversionTestData */
-    public function testToStringConversion(NodeInterface $node, $representation)
-    {
-        $this->assertEquals($representation, (string) $node);
-    }
-
-    /** @dataProvider getSpecificityValueTestData */
-    public function testSpecificityValue(NodeInterface $node, $value)
-    {
-        $this->assertEquals($value, $node->getSpecificity()->getValue());
-    }
-
-    abstract public function getToStringConversionTestData();
-    abstract public function getSpecificityValueTestData();
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/AttributeNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/AttributeNodeTest.php
deleted file mode 100644
index 1fd090f..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/AttributeNodeTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\AttributeNode;
-use Symfony\Component\CssSelector\Node\ElementNode;
-
-class AttributeNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new AttributeNode(new ElementNode(), null, 'attribute', 'exists', null), 'Attribute[Element[*][attribute]]'),
-            array(new AttributeNode(new ElementNode(), null, 'attribute', '$=', 'value'), "Attribute[Element[*][attribute $= 'value']]"),
-            array(new AttributeNode(new ElementNode(), 'namespace', 'attribute', '$=', 'value'), "Attribute[Element[*][namespace|attribute $= 'value']]"),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new AttributeNode(new ElementNode(), null, 'attribute', 'exists', null), 10),
-            array(new AttributeNode(new ElementNode(null, 'element'), null, 'attribute', 'exists', null), 11),
-            array(new AttributeNode(new ElementNode(), null, 'attribute', '$=', 'value'), 10),
-            array(new AttributeNode(new ElementNode(), 'namespace', 'attribute', '$=', 'value'), 10),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/ClassNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/ClassNodeTest.php
deleted file mode 100644
index e0ab45a..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/ClassNodeTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\ClassNode;
-use Symfony\Component\CssSelector\Node\ElementNode;
-
-class ClassNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new ClassNode(new ElementNode(), 'class'), 'Class[Element[*].class]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new ClassNode(new ElementNode(), 'class'), 10),
-            array(new ClassNode(new ElementNode(null, 'element'), 'class'), 11),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/CombinedSelectorNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/CombinedSelectorNodeTest.php
deleted file mode 100644
index 9547298..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/CombinedSelectorNodeTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\CombinedSelectorNode;
-use Symfony\Component\CssSelector\Node\ElementNode;
-
-class CombinedSelectorNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new CombinedSelectorNode(new ElementNode(), '>', new ElementNode()), 'CombinedSelector[Element[*] > Element[*]]'),
-            array(new CombinedSelectorNode(new ElementNode(), ' ', new ElementNode()), 'CombinedSelector[Element[*] <followed> Element[*]]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new CombinedSelectorNode(new ElementNode(), '>', new ElementNode()), 0),
-            array(new CombinedSelectorNode(new ElementNode(null, 'element'), '>', new ElementNode()), 1),
-            array(new CombinedSelectorNode(new ElementNode(null, 'element'), '>', new ElementNode(null, 'element')), 2),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/ElementNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/ElementNodeTest.php
deleted file mode 100644
index 1db6a59..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/ElementNodeTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-
-class ElementNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new ElementNode(), 'Element[*]'),
-            array(new ElementNode(null, 'element'), 'Element[element]'),
-            array(new ElementNode('namespace', 'element'), 'Element[namespace|element]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new ElementNode(), 0),
-            array(new ElementNode(null, 'element'), 1),
-            array(new ElementNode('namespace', 'element'),1),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/FunctionNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/FunctionNodeTest.php
deleted file mode 100644
index ee3ce51..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/FunctionNodeTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\FunctionNode;
-use Symfony\Component\CssSelector\Parser\Token;
-
-class FunctionNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new FunctionNode(new ElementNode(), 'function'), 'Function[Element[*]:function()]'),
-            array(new FunctionNode(new ElementNode(), 'function', array(
-                new Token(Token::TYPE_IDENTIFIER, 'value', 0),
-            )), "Function[Element[*]:function(['value'])]"),
-            array(new FunctionNode(new ElementNode(), 'function', array(
-                new Token(Token::TYPE_STRING, 'value1', 0),
-                new Token(Token::TYPE_NUMBER, 'value2', 0),
-            )), "Function[Element[*]:function(['value1', 'value2'])]"),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new FunctionNode(new ElementNode(), 'function'), 10),
-            array(new FunctionNode(new ElementNode(), 'function', array(
-                new Token(Token::TYPE_IDENTIFIER, 'value', 0),
-            )), 10),
-            array(new FunctionNode(new ElementNode(), 'function', array(
-                new Token(Token::TYPE_STRING, 'value1', 0),
-                new Token(Token::TYPE_NUMBER, 'value2', 0),
-            )), 10),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/HashNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/HashNodeTest.php
deleted file mode 100644
index 8554b22..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/HashNodeTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\HashNode;
-use Symfony\Component\CssSelector\Node\ElementNode;
-
-class HashNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new HashNode(new ElementNode(), 'id'), 'Hash[Element[*]#id]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new HashNode(new ElementNode(), 'id'), 100),
-            array(new HashNode(new ElementNode(null, 'id'), 'class'), 101),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/NegationNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/NegationNodeTest.php
deleted file mode 100644
index edf4552..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/NegationNodeTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\ClassNode;
-use Symfony\Component\CssSelector\Node\NegationNode;
-use Symfony\Component\CssSelector\Node\ElementNode;
-
-class NegationNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new NegationNode(new ElementNode(), new ClassNode(new ElementNode(), 'class')), 'Negation[Element[*]:not(Class[Element[*].class])]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new NegationNode(new ElementNode(), new ClassNode(new ElementNode(), 'class')), 10),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/PseudoNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/PseudoNodeTest.php
deleted file mode 100644
index bc57813..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/PseudoNodeTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\PseudoNode;
-
-class PseudoNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new PseudoNode(new ElementNode(), 'pseudo'), 'Pseudo[Element[*]:pseudo]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new PseudoNode(new ElementNode(), 'pseudo'), 10),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/SelectorNodeTest.php b/core/vendor/symfony/css-selector/Tests/Node/SelectorNodeTest.php
deleted file mode 100644
index 5badf71..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/SelectorNodeTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\ElementNode;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-
-class SelectorNodeTest extends AbstractNodeTest
-{
-    public function getToStringConversionTestData()
-    {
-        return array(
-            array(new SelectorNode(new ElementNode()), 'Selector[Element[*]]'),
-            array(new SelectorNode(new ElementNode(), 'pseudo'), 'Selector[Element[*]::pseudo]'),
-        );
-    }
-
-    public function getSpecificityValueTestData()
-    {
-        return array(
-            array(new SelectorNode(new ElementNode()), 0),
-            array(new SelectorNode(new ElementNode(), 'pseudo'), 1),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Node/SpecificityTest.php b/core/vendor/symfony/css-selector/Tests/Node/SpecificityTest.php
deleted file mode 100644
index c34fe5f..0000000
--- a/core/vendor/symfony/css-selector/Tests/Node/SpecificityTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Node;
-
-use Symfony\Component\CssSelector\Node\Specificity;
-
-class SpecificityTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getValueTestData */
-    public function testValue(Specificity $specificity, $value)
-    {
-        $this->assertEquals($value, $specificity->getValue());
-    }
-
-    /** @dataProvider getValueTestData */
-    public function testPlusValue(Specificity $specificity, $value)
-    {
-        $this->assertEquals($value + 123, $specificity->plus(new Specificity(1, 2, 3))->getValue());
-    }
-
-    public function getValueTestData()
-    {
-        return array(
-            array(new Specificity(0, 0, 0), 0),
-            array(new Specificity(0, 0, 2), 2),
-            array(new Specificity(0, 3, 0), 30),
-            array(new Specificity(4, 0, 0), 400),
-            array(new Specificity(4, 3, 2), 432),
-        );
-    }
-
-    /** @dataProvider getCompareTestData */
-    public function testCompareTo(Specificity $a, Specificity $b, $result)
-    {
-        $this->assertEquals($result, $a->compareTo($b));
-    }
-
-    public function getCompareTestData()
-    {
-        return array(
-            array(new Specificity(0, 0, 0), new Specificity(0, 0, 0), 0),
-            array(new Specificity(0, 0, 1), new Specificity(0, 0, 1), 0),
-            array(new Specificity(0, 0, 2), new Specificity(0, 0, 1), 1),
-            array(new Specificity(0, 0, 2), new Specificity(0, 0, 3), -1),
-            array(new Specificity(0, 4, 0), new Specificity(0, 4, 0), 0),
-            array(new Specificity(0, 6, 0), new Specificity(0, 5, 11), 1),
-            array(new Specificity(0, 7, 0), new Specificity(0, 8, 0), -1),
-            array(new Specificity(9, 0, 0), new Specificity(9, 0, 0), 0),
-            array(new Specificity(11, 0, 0), new Specificity(10, 11, 0), 1),
-            array(new Specificity(12, 11, 0), new Specificity(13, 0, 0), -1),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php
deleted file mode 100644
index a06dca0..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-/**
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-abstract class AbstractHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getHandleValueTestData */
-    public function testHandleValue($value, Token $expectedToken, $remainingContent)
-    {
-        $reader = new Reader($value);
-        $stream = new TokenStream();
-
-        $this->assertTrue($this->generateHandler()->handle($reader, $stream));
-        $this->assertEquals($expectedToken, $stream->getNext());
-        $this->assertRemainingContent($reader, $remainingContent);
-    }
-
-    /** @dataProvider getDontHandleValueTestData */
-    public function testDontHandleValue($value)
-    {
-        $reader = new Reader($value);
-        $stream = new TokenStream();
-
-        $this->assertFalse($this->generateHandler()->handle($reader, $stream));
-        $this->assertStreamEmpty($stream);
-        $this->assertRemainingContent($reader, $value);
-    }
-
-    abstract public function getHandleValueTestData();
-    abstract public function getDontHandleValueTestData();
-    abstract protected function generateHandler();
-
-    protected function assertStreamEmpty(TokenStream $stream)
-    {
-        $property = new \ReflectionProperty($stream, 'tokens');
-        $property->setAccessible(true);
-
-        $this->assertEquals(array(), $property->getValue($stream));
-    }
-
-    protected function assertRemainingContent(Reader $reader, $remainingContent)
-    {
-        if ('' === $remainingContent) {
-            $this->assertEquals(0, $reader->getRemainingLength());
-            $this->assertTrue($reader->isEOF());
-        } else {
-            $this->assertEquals(strlen($remainingContent), $reader->getRemainingLength());
-            $this->assertEquals(0, $reader->getOffset($remainingContent));
-        }
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php
deleted file mode 100644
index 3961bf7..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Handler\CommentHandler;
-use Symfony\Component\CssSelector\Parser\Reader;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-class CommentHandlerTest extends AbstractHandlerTest
-{
-    /** @dataProvider getHandleValueTestData */
-    public function testHandleValue($value, Token $unusedArgument, $remainingContent)
-    {
-        $reader = new Reader($value);
-        $stream = new TokenStream();
-
-        $this->assertTrue($this->generateHandler()->handle($reader, $stream));
-        // comments are ignored (not pushed as token in stream)
-        $this->assertStreamEmpty($stream);
-        $this->assertRemainingContent($reader, $remainingContent);
-    }
-
-    public function getHandleValueTestData()
-    {
-        return array(
-            // 2nd argument only exists for inherited method compatibility
-            array('/* comment */', new Token(null, null, null), ''),
-            array('/* comment */foo', new Token(null, null, null), 'foo'),
-        );
-    }
-
-    public function getDontHandleValueTestData()
-    {
-        return array(
-            array('>'),
-            array('+'),
-            array(' '),
-        );
-    }
-
-    protected function generateHandler()
-    {
-        return new CommentHandler();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php
deleted file mode 100644
index b7fa00a..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Handler\HashHandler;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
-
-class HashHandlerTest extends AbstractHandlerTest
-{
-    public function getHandleValueTestData()
-    {
-        return array(
-            array('#id', new Token(Token::TYPE_HASH, 'id', 0), ''),
-            array('#123', new Token(Token::TYPE_HASH, '123', 0), ''),
-
-            array('#id.class', new Token(Token::TYPE_HASH, 'id', 0), '.class'),
-            array('#id element', new Token(Token::TYPE_HASH, 'id', 0), ' element'),
-        );
-    }
-
-    public function getDontHandleValueTestData()
-    {
-        return array(
-            array('id'),
-            array('123'),
-            array('<'),
-            array('<'),
-            array('#'),
-        );
-    }
-
-    protected function generateHandler()
-    {
-        $patterns = new TokenizerPatterns();
-
-        return new HashHandler($patterns, new TokenizerEscaping($patterns));
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php
deleted file mode 100644
index 44d3574..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Handler\IdentifierHandler;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
-
-class IdentifierHandlerTest extends AbstractHandlerTest
-{
-    public function getHandleValueTestData()
-    {
-        return array(
-            array('foo', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), ''),
-            array('foo|bar', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '|bar'),
-            array('foo.class', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '.class'),
-            array('foo[attr]', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), '[attr]'),
-            array('foo bar', new Token(Token::TYPE_IDENTIFIER, 'foo', 0), ' bar'),
-        );
-    }
-
-    public function getDontHandleValueTestData()
-    {
-        return array(
-            array('>'),
-            array('+'),
-            array(' '),
-            array('*|foo'),
-            array('/* comment */'),
-        );
-    }
-
-    protected function generateHandler()
-    {
-        $patterns = new TokenizerPatterns();
-
-        return new IdentifierHandler($patterns, new TokenizerEscaping($patterns));
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/NumberHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/NumberHandlerTest.php
deleted file mode 100644
index 675fd05..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/NumberHandlerTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Handler\NumberHandler;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-
-class NumberHandlerTest extends AbstractHandlerTest
-{
-    public function getHandleValueTestData()
-    {
-        return array(
-            array('12', new Token(Token::TYPE_NUMBER, '12', 0), ''),
-            array('12.34', new Token(Token::TYPE_NUMBER, '12.34', 0), ''),
-            array('+12.34', new Token(Token::TYPE_NUMBER, '+12.34', 0), ''),
-            array('-12.34', new Token(Token::TYPE_NUMBER, '-12.34', 0), ''),
-
-            array('12 arg', new Token(Token::TYPE_NUMBER, '12', 0), ' arg'),
-            array('12]', new Token(Token::TYPE_NUMBER, '12', 0), ']'),
-        );
-    }
-
-    public function getDontHandleValueTestData()
-    {
-        return array(
-            array('hello'),
-            array('>'),
-            array('+'),
-            array(' '),
-            array('/* comment */'),
-        );
-    }
-
-    protected function generateHandler()
-    {
-        $patterns = new TokenizerPatterns();
-
-        return new NumberHandler($patterns);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php
deleted file mode 100644
index 89eff8b..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Handler\StringHandler;
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerPatterns;
-use Symfony\Component\CssSelector\Parser\Tokenizer\TokenizerEscaping;
-
-class StringHandlerTest extends AbstractHandlerTest
-{
-    public function getHandleValueTestData()
-    {
-        return array(
-            array('"hello"', new Token(Token::TYPE_STRING, 'hello', 1), ''),
-            array('"1"', new Token(Token::TYPE_STRING, '1', 1), ''),
-            array('" "', new Token(Token::TYPE_STRING, ' ', 1), ''),
-            array('""', new Token(Token::TYPE_STRING, '', 1), ''),
-            array("'hello'", new Token(Token::TYPE_STRING, 'hello', 1), ''),
-
-            array("'foo'bar", new Token(Token::TYPE_STRING, 'foo', 1), 'bar'),
-        );
-    }
-
-    public function getDontHandleValueTestData()
-    {
-        return array(
-            array('hello'),
-            array('>'),
-            array('1'),
-            array(' '),
-        );
-    }
-
-    protected function generateHandler()
-    {
-        $patterns = new TokenizerPatterns();
-
-        return new StringHandler($patterns, new TokenizerEscaping($patterns));
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Handler/WhitespaceHandlerTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Handler/WhitespaceHandlerTest.php
deleted file mode 100644
index f5f9e71..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Handler/WhitespaceHandlerTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Handler;
-
-use Symfony\Component\CssSelector\Parser\Handler\WhitespaceHandler;
-use Symfony\Component\CssSelector\Parser\Token;
-
-class WhitespaceHandlerTest extends AbstractHandlerTest
-{
-    public function getHandleValueTestData()
-    {
-        return array(
-            array(' ', new Token(Token::TYPE_WHITESPACE, ' ', 0), ''),
-            array("\n", new Token(Token::TYPE_WHITESPACE, "\n", 0), ''),
-            array("\t", new Token(Token::TYPE_WHITESPACE, "\t", 0), ''),
-
-            array(' foo', new Token(Token::TYPE_WHITESPACE, ' ', 0), 'foo'),
-            array(' .foo', new Token(Token::TYPE_WHITESPACE, ' ', 0), '.foo'),
-        );
-    }
-
-    public function getDontHandleValueTestData()
-    {
-        return array(
-            array('>'),
-            array('1'),
-            array('a'),
-        );
-    }
-
-    protected function generateHandler()
-    {
-        return new WhitespaceHandler();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/ParserTest.php b/core/vendor/symfony/css-selector/Tests/Parser/ParserTest.php
deleted file mode 100644
index 0454d9f..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/ParserTest.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser;
-
-use Symfony\Component\CssSelector\Exception\SyntaxErrorException;
-use Symfony\Component\CssSelector\Node\FunctionNode;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\Parser;
-use Symfony\Component\CssSelector\Parser\Token;
-
-class ParserTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getParserTestData */
-    public function testParser($source, $representation)
-    {
-        $parser = new Parser();
-
-        $this->assertEquals($representation, array_map(function (SelectorNode $node) {
-            return (string) $node->getTree();
-        }, $parser->parse($source)));
-    }
-
-    /** @dataProvider getParserExceptionTestData */
-    public function testParserException($source, $message)
-    {
-        $parser = new Parser();
-
-        try {
-            $parser->parse($source);
-            $this->fail('Parser should throw a SyntaxErrorException.');
-        } catch (SyntaxErrorException $e) {
-            $this->assertEquals($message, $e->getMessage());
-        }
-    }
-
-    /** @dataProvider getPseudoElementsTestData */
-    public function testPseudoElements($source, $element, $pseudo)
-    {
-        $parser = new Parser();
-        $selectors = $parser->parse($source);
-        $this->assertCount(1, $selectors);
-
-        /** @var SelectorNode $selector */
-        $selector = $selectors[0];
-        $this->assertEquals($element, (string) $selector->getTree());
-        $this->assertEquals($pseudo, (string) $selector->getPseudoElement());
-    }
-
-    /** @dataProvider getSpecificityTestData */
-    public function testSpecificity($source, $value)
-    {
-        $parser = new Parser();
-        $selectors = $parser->parse($source);
-        $this->assertCount(1, $selectors);
-
-        /** @var SelectorNode $selector */
-        $selector = $selectors[0];
-        $this->assertEquals($value, $selector->getSpecificity()->getValue());
-    }
-
-    /** @dataProvider getParseSeriesTestData */
-    public function testParseSeries($series, $a, $b)
-    {
-        $parser = new Parser();
-        $selectors = $parser->parse(sprintf(':nth-child(%s)', $series));
-        $this->assertCount(1, $selectors);
-
-        /** @var FunctionNode $function */
-        $function = $selectors[0]->getTree();
-        $this->assertEquals(array($a, $b), Parser::parseSeries($function->getArguments()));
-    }
-
-    /** @dataProvider getParseSeriesExceptionTestData */
-    public function testParseSeriesException($series)
-    {
-        $parser = new Parser();
-        $selectors = $parser->parse(sprintf(':nth-child(%s)', $series));
-        $this->assertCount(1, $selectors);
-
-        /** @var FunctionNode $function */
-        $function = $selectors[0]->getTree();
-        $this->setExpectedException('Symfony\Component\CssSelector\Exception\SyntaxErrorException');
-        Parser::parseSeries($function->getArguments());
-    }
-
-    public function getParserTestData()
-    {
-        return array(
-            array('*', array('Element[*]')),
-            array('*|*', array('Element[*]')),
-            array('*|foo', array('Element[foo]')),
-            array('foo|*', array('Element[foo|*]')),
-            array('foo|bar', array('Element[foo|bar]')),
-            array('#foo#bar', array('Hash[Hash[Element[*]#foo]#bar]')),
-            array('div>.foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('div> .foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('div >.foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('div > .foo', array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array("div \n>  \t \t .foo", array('CombinedSelector[Element[div] > Class[Element[*].foo]]')),
-            array('td.foo,.bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('td.foo, .bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array("td.foo\t\r\n\f ,\t\r\n\f .bar", array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('td.foo,.bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('td.foo, .bar', array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array("td.foo\t\r\n\f ,\t\r\n\f .bar", array('Class[Element[td].foo]', 'Class[Element[*].bar]')),
-            array('div, td.foo, div.bar span', array('Element[div]', 'Class[Element[td].foo]', 'CombinedSelector[Class[Element[div].bar] <followed> Element[span]]')),
-            array('div > p', array('CombinedSelector[Element[div] > Element[p]]')),
-            array('td:first', array('Pseudo[Element[td]:first]')),
-            array('td :first', array('CombinedSelector[Element[td] <followed> Pseudo[Element[*]:first]]')),
-            array('a[name]', array('Attribute[Element[a][name]]')),
-            array("a[ name\t]", array('Attribute[Element[a][name]]')),
-            array('a [name]', array('CombinedSelector[Element[a] <followed> Attribute[Element[*][name]]]')),
-            array('a[rel="include"]', array("Attribute[Element[a][rel = 'include']]")),
-            array('a[rel = include]', array("Attribute[Element[a][rel = 'include']]")),
-            array("a[hreflang |= 'en']", array("Attribute[Element[a][hreflang |= 'en']]")),
-            array('a[hreflang|=en]', array("Attribute[Element[a][hreflang |= 'en']]")),
-            array('div:nth-child(10)', array("Function[Element[div]:nth-child(['10'])]")),
-            array(':nth-child(2n+2)', array("Function[Element[*]:nth-child(['2', 'n', '+2'])]")),
-            array('div:nth-of-type(10)', array("Function[Element[div]:nth-of-type(['10'])]")),
-            array('div div:nth-of-type(10) .aclass', array("CombinedSelector[CombinedSelector[Element[div] <followed> Function[Element[div]:nth-of-type(['10'])]] <followed> Class[Element[*].aclass]]")),
-            array('label:only', array('Pseudo[Element[label]:only]')),
-            array('a:lang(fr)', array("Function[Element[a]:lang(['fr'])]")),
-            array('div:contains("foo")', array("Function[Element[div]:contains(['foo'])]")),
-            array('div#foobar', array('Hash[Element[div]#foobar]')),
-            array('div:not(div.foo)', array('Negation[Element[div]:not(Class[Element[div].foo])]')),
-            array('td ~ th', array('CombinedSelector[Element[td] ~ Element[th]]')),
-            array('.foo[data-bar][data-baz=0]', array("Attribute[Attribute[Class[Element[*].foo][data-bar]][data-baz = '0']]")),
-        );
-    }
-
-    public function getParserExceptionTestData()
-    {
-        return array(
-            array('attributes(href)/html/body/a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '(', 10))->getMessage()),
-            array('attributes(href)', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '(', 10))->getMessage()),
-            array('html/body/a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '/', 4))->getMessage()),
-            array(' ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 1))->getMessage()),
-            array('div, ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 5))->getMessage()),
-            array(' , div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, ',', 1))->getMessage()),
-            array('p, , div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, ',', 3))->getMessage()),
-            array('div > ', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_FILE_END, '', 6))->getMessage()),
-            array('  > div', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '>', 2))->getMessage()),
-            array('foo|#bar', SyntaxErrorException::unexpectedToken('identifier or "*"', new Token(Token::TYPE_HASH, 'bar', 4))->getMessage()),
-            array('#.foo', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '#', 0))->getMessage()),
-            array('.#foo', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_HASH, 'foo', 1))->getMessage()),
-            array(':#foo', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_HASH, 'foo', 1))->getMessage()),
-            array('[*]', SyntaxErrorException::unexpectedToken('"|"', new Token(Token::TYPE_DELIMITER, ']', 2))->getMessage()),
-            array('[foo|]', SyntaxErrorException::unexpectedToken('identifier', new Token(Token::TYPE_DELIMITER, ']', 5))->getMessage()),
-            array('[#]', SyntaxErrorException::unexpectedToken('identifier or "*"', new Token(Token::TYPE_DELIMITER, '#', 1))->getMessage()),
-            array('[foo=#]', SyntaxErrorException::unexpectedToken('string or identifier', new Token(Token::TYPE_DELIMITER, '#', 5))->getMessage()),
-            array(':nth-child()', SyntaxErrorException::unexpectedToken('at least one argument', new Token(Token::TYPE_DELIMITER, ')', 11))->getMessage()),
-            array('[href]a', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_IDENTIFIER, 'a', 6))->getMessage()),
-            array('[rel:stylesheet]', SyntaxErrorException::unexpectedToken('operator', new Token(Token::TYPE_DELIMITER, ':', 4))->getMessage()),
-            array('[rel=stylesheet', SyntaxErrorException::unexpectedToken('"]"', new Token(Token::TYPE_FILE_END, '', 15))->getMessage()),
-            array(':lang(fr', SyntaxErrorException::unexpectedToken('an argument', new Token(Token::TYPE_FILE_END, '', 8))->getMessage()),
-            array(':contains("foo', SyntaxErrorException::unclosedString(10)->getMessage()),
-            array('foo!', SyntaxErrorException::unexpectedToken('selector', new Token(Token::TYPE_DELIMITER, '!', 3))->getMessage()),
-        );
-    }
-
-    public function getPseudoElementsTestData()
-    {
-        return array(
-            array('foo', 'Element[foo]', ''),
-            array('*', 'Element[*]', ''),
-            array(':empty', 'Pseudo[Element[*]:empty]', ''),
-            array(':BEfore', 'Element[*]', 'before'),
-            array(':aftER', 'Element[*]', 'after'),
-            array(':First-Line', 'Element[*]', 'first-line'),
-            array(':First-Letter', 'Element[*]', 'first-letter'),
-            array('::befoRE', 'Element[*]', 'before'),
-            array('::AFter', 'Element[*]', 'after'),
-            array('::firsT-linE', 'Element[*]', 'first-line'),
-            array('::firsT-letteR', 'Element[*]', 'first-letter'),
-            array('::Selection', 'Element[*]', 'selection'),
-            array('foo:after', 'Element[foo]', 'after'),
-            array('foo::selection', 'Element[foo]', 'selection'),
-            array('lorem#ipsum ~ a#b.c[href]:empty::selection', 'CombinedSelector[Hash[Element[lorem]#ipsum] ~ Pseudo[Attribute[Class[Hash[Element[a]#b].c][href]]:empty]]', 'selection'),
-        );
-    }
-
-    public function getSpecificityTestData()
-    {
-        return array(
-            array('*', 0),
-            array(' foo', 1),
-            array(':empty ', 10),
-            array(':before', 1),
-            array('*:before', 1),
-            array(':nth-child(2)', 10),
-            array('.bar', 10),
-            array('[baz]', 10),
-            array('[baz="4"]', 10),
-            array('[baz^="4"]', 10),
-            array('#lipsum', 100),
-            array(':not(*)', 0),
-            array(':not(foo)', 1),
-            array(':not(.foo)', 10),
-            array(':not([foo])', 10),
-            array(':not(:empty)', 10),
-            array(':not(#foo)', 100),
-            array('foo:empty', 11),
-            array('foo:before', 2),
-            array('foo::before', 2),
-            array('foo:empty::before', 12),
-            array('#lorem + foo#ipsum:first-child > bar:first-line', 213),
-        );
-    }
-
-    public function getParseSeriesTestData()
-    {
-        return array(
-            array('1n+3', 1, 3),
-            array('1n +3', 1, 3),
-            array('1n + 3', 1, 3),
-            array('1n+ 3', 1, 3),
-            array('1n-3', 1, -3),
-            array('1n -3', 1, -3),
-            array('1n - 3', 1, -3),
-            array('1n- 3', 1, -3),
-            array('n-5', 1, -5),
-            array('odd', 2, 1),
-            array('even', 2, 0),
-            array('3n', 3, 0),
-            array('n', 1, 0),
-            array('+n', 1, 0),
-            array('-n', -1, 0),
-            array('5', 0, 5),
-        );
-    }
-
-    public function getParseSeriesExceptionTestData()
-    {
-        return array(
-            array('foo'),
-            array('n+'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/ReaderTest.php b/core/vendor/symfony/css-selector/Tests/Parser/ReaderTest.php
deleted file mode 100644
index 03c054e..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/ReaderTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser;
-
-use Symfony\Component\CssSelector\Parser\Reader;
-
-class ReaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testIsEOF()
-    {
-        $reader = new Reader('');
-        $this->assertTrue($reader->isEOF());
-
-        $reader = new Reader('hello');
-        $this->assertFalse($reader->isEOF());
-
-        $this->assignPosition($reader, 2);
-        $this->assertFalse($reader->isEOF());
-
-        $this->assignPosition($reader, 5);
-        $this->assertTrue($reader->isEOF());
-    }
-
-    public function testGetRemainingLength()
-    {
-        $reader = new Reader('hello');
-        $this->assertEquals(5, $reader->getRemainingLength());
-
-        $this->assignPosition($reader, 2);
-        $this->assertEquals(3, $reader->getRemainingLength());
-
-        $this->assignPosition($reader, 5);
-        $this->assertEquals(0, $reader->getRemainingLength());
-    }
-
-    public function testGetSubstring()
-    {
-        $reader = new Reader('hello');
-        $this->assertEquals('he', $reader->getSubstring(2));
-        $this->assertEquals('el', $reader->getSubstring(2, 1));
-
-        $this->assignPosition($reader, 2);
-        $this->assertEquals('ll', $reader->getSubstring(2));
-        $this->assertEquals('lo', $reader->getSubstring(2, 1));
-    }
-
-    public function testGetOffset()
-    {
-        $reader = new Reader('hello');
-        $this->assertEquals(2, $reader->getOffset('ll'));
-        $this->assertFalse($reader->getOffset('w'));
-
-        $this->assignPosition($reader, 2);
-        $this->assertEquals(0, $reader->getOffset('ll'));
-        $this->assertFalse($reader->getOffset('he'));
-    }
-
-    public function testFindPattern()
-    {
-        $reader = new Reader('hello');
-
-        $this->assertFalse($reader->findPattern('/world/'));
-        $this->assertEquals(array('hello', 'h'), $reader->findPattern('/^([a-z]).*/'));
-
-        $this->assignPosition($reader, 2);
-        $this->assertFalse($reader->findPattern('/^h.*/'));
-        $this->assertEquals(array('llo'), $reader->findPattern('/^llo$/'));
-    }
-
-    public function testMoveForward()
-    {
-        $reader = new Reader('hello');
-        $this->assertEquals(0, $reader->getPosition());
-
-        $reader->moveForward(2);
-        $this->assertEquals(2, $reader->getPosition());
-    }
-
-    public function testToEnd()
-    {
-        $reader = new Reader('hello');
-        $reader->moveToEnd();
-        $this->assertTrue($reader->isEOF());
-    }
-
-    private function assignPosition(Reader $reader, $value)
-    {
-        $position = new \ReflectionProperty($reader, 'position');
-        $position->setAccessible(true);
-        $position->setValue($reader, $value);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/ClassParserTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/ClassParserTest.php
deleted file mode 100644
index 6efdd67..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/ClassParserTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\Shortcut\ClassParser;
-
-/**
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ClassParserTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getParseTestData */
-    public function testParse($source, $representation)
-    {
-        $parser = new ClassParser();
-        $selectors = $parser->parse($source);
-        $this->assertCount(1, $selectors);
-
-        /** @var SelectorNode $selector */
-        $selector = $selectors[0];
-        $this->assertEquals($representation, (string) $selector->getTree());
-    }
-
-    public function getParseTestData()
-    {
-        return array(
-            array('.testclass', 'Class[Element[*].testclass]'),
-            array('testel.testclass', 'Class[Element[testel].testclass]'),
-            array('testns|.testclass', 'Class[Element[testns|*].testclass]'),
-            array('testns|*.testclass', 'Class[Element[testns|*].testclass]'),
-            array('testns|testel.testclass', 'Class[Element[testns|testel].testclass]'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/ElementParserTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/ElementParserTest.php
deleted file mode 100644
index b30b5ee..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/ElementParserTest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\Shortcut\ElementParser;
-
-/**
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class ElementParserTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getParseTestData */
-    public function testParse($source, $representation)
-    {
-        $parser = new ElementParser();
-        $selectors = $parser->parse($source);
-        $this->assertCount(1, $selectors);
-
-        /** @var SelectorNode $selector */
-        $selector = $selectors[0];
-        $this->assertEquals($representation, (string) $selector->getTree());
-    }
-
-    public function getParseTestData()
-    {
-        return array(
-            array('*', 'Element[*]'),
-            array('testel', 'Element[testel]'),
-            array('testns|*', 'Element[testns|*]'),
-            array('testns|testel', 'Element[testns|testel]'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/EmptyStringParserTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/EmptyStringParserTest.php
deleted file mode 100644
index b7c3539..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/EmptyStringParserTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\Shortcut\EmptyStringParser;
-
-/**
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class EmptyStringParserTest extends \PHPUnit_Framework_TestCase
-{
-    public function testParse()
-    {
-        $parser = new EmptyStringParser();
-        $selectors = $parser->parse('');
-        $this->assertCount(1, $selectors);
-
-        /** @var SelectorNode $selector */
-        $selector = $selectors[0];
-        $this->assertEquals('Element[*]', (string) $selector->getTree());
-
-        $selectors = $parser->parse('this will produce an empty array');
-        $this->assertCount(0, $selectors);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/HashParserTest.php b/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/HashParserTest.php
deleted file mode 100644
index d2ce891..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/Shortcut/HashParserTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser\Shortcut;
-
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\Shortcut\HashParser;
-
-/**
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class HashParserTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getParseTestData */
-    public function testParse($source, $representation)
-    {
-        $parser = new HashParser();
-        $selectors = $parser->parse($source);
-        $this->assertCount(1, $selectors);
-
-        /** @var SelectorNode $selector */
-        $selector = $selectors[0];
-        $this->assertEquals($representation, (string) $selector->getTree());
-    }
-
-    public function getParseTestData()
-    {
-        return array(
-            array('#testid', 'Hash[Element[*]#testid]'),
-            array('testel#testid', 'Hash[Element[testel]#testid]'),
-            array('testns|#testid', 'Hash[Element[testns|*]#testid]'),
-            array('testns|*#testid', 'Hash[Element[testns|*]#testid]'),
-            array('testns|testel#testid', 'Hash[Element[testns|testel]#testid]'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/Parser/TokenStreamTest.php b/core/vendor/symfony/css-selector/Tests/Parser/TokenStreamTest.php
deleted file mode 100644
index 8f3253a..0000000
--- a/core/vendor/symfony/css-selector/Tests/Parser/TokenStreamTest.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\Parser;
-
-use Symfony\Component\CssSelector\Parser\Token;
-use Symfony\Component\CssSelector\Parser\TokenStream;
-
-class TokenStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetNext()
-    {
-        $stream = new TokenStream();
-        $stream->push($t1 = new Token(Token::TYPE_IDENTIFIER, 'h1', 0));
-        $stream->push($t2 = new Token(Token::TYPE_DELIMITER, '.', 2));
-        $stream->push($t3 = new Token(Token::TYPE_IDENTIFIER, 'title', 3));
-
-        $this->assertSame($t1, $stream->getNext());
-        $this->assertSame($t2, $stream->getNext());
-        $this->assertSame($t3, $stream->getNext());
-    }
-
-    public function testGetPeek()
-    {
-        $stream = new TokenStream();
-        $stream->push($t1 = new Token(Token::TYPE_IDENTIFIER, 'h1', 0));
-        $stream->push($t2 = new Token(Token::TYPE_DELIMITER, '.', 2));
-        $stream->push($t3 = new Token(Token::TYPE_IDENTIFIER, 'title', 3));
-
-        $this->assertSame($t1, $stream->getPeek());
-        $this->assertSame($t1, $stream->getNext());
-        $this->assertSame($t2, $stream->getPeek());
-        $this->assertSame($t2, $stream->getPeek());
-        $this->assertSame($t2, $stream->getNext());
-    }
-
-    public function testGetNextIdentifier()
-    {
-        $stream = new TokenStream();
-        $stream->push(new Token(Token::TYPE_IDENTIFIER, 'h1', 0));
-
-        $this->assertEquals('h1', $stream->getNextIdentifier());
-    }
-
-    public function testFailToGetNextIdentifier()
-    {
-        $this->setExpectedException('Symfony\Component\CssSelector\Exception\SyntaxErrorException');
-
-        $stream = new TokenStream();
-        $stream->push(new Token(Token::TYPE_DELIMITER, '.', 2));
-        $stream->getNextIdentifier();
-    }
-
-    public function testGetNextIdentifierOrStar()
-    {
-        $stream = new TokenStream();
-
-        $stream->push(new Token(Token::TYPE_IDENTIFIER, 'h1', 0));
-        $this->assertEquals('h1', $stream->getNextIdentifierOrStar());
-
-        $stream->push(new Token(Token::TYPE_DELIMITER, '*', 0));
-        $this->assertNull($stream->getNextIdentifierOrStar());
-    }
-
-    public function testFailToGetNextIdentifierOrStar()
-    {
-        $this->setExpectedException('Symfony\Component\CssSelector\Exception\SyntaxErrorException');
-
-        $stream = new TokenStream();
-        $stream->push(new Token(Token::TYPE_DELIMITER, '.', 2));
-        $stream->getNextIdentifierOrStar();
-    }
-
-    public function testSkipWhitespace()
-    {
-        $stream = new TokenStream();
-        $stream->push($t1 = new Token(Token::TYPE_IDENTIFIER, 'h1', 0));
-        $stream->push($t2 = new Token(Token::TYPE_WHITESPACE, ' ', 2));
-        $stream->push($t3 = new Token(Token::TYPE_IDENTIFIER, 'h1', 3));
-
-        $stream->skipWhitespace();
-        $this->assertSame($t1, $stream->getNext());
-
-        $stream->skipWhitespace();
-        $this->assertSame($t3, $stream->getNext());
-    }
-}
diff --git a/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/ids.html b/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/ids.html
deleted file mode 100644
index 5799fad..0000000
--- a/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/ids.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<html id="html"><head>
-  <link id="link-href" href="foo" />
-  <link id="link-nohref" />
-</head><body>
-<div id="outer-div">
- <a id="name-anchor" name="foo"></a>
- <a id="tag-anchor" rel="tag" href="http://localhost/foo">link</a>
- <a id="nofollow-anchor" rel="nofollow" href="https://example.org">
-    link</a>
- <ol id="first-ol" class="a b c">
-   <li id="first-li">content</li>
-   <li id="second-li" lang="En-us">
-     <div id="li-div">
-     </div>
-   </li>
-   <li id="third-li" class="ab c"></li>
-   <li id="fourth-li" class="ab
-c"></li>
-   <li id="fifth-li"></li>
-   <li id="sixth-li"></li>
-   <li id="seventh-li">  </li>
- </ol>
- <p id="paragraph">
-   <b id="p-b">hi</b> <em id="p-em">there</em>
-   <b id="p-b2">guy</b>
-   <input type="checkbox" id="checkbox-unchecked" />
-   <input type="checkbox" id="checkbox-disabled" disabled="" />
-   <input type="text" id="text-checked" checked="checked" />
-   <input type="hidden" />
-   <input type="hidden" disabled="disabled" />
-   <input type="checkbox" id="checkbox-checked" checked="checked" />
-   <input type="checkbox" id="checkbox-disabled-checked"
-          disabled="disabled" checked="checked" />
-   <fieldset id="fieldset" disabled="disabled">
-     <input type="checkbox" id="checkbox-fieldset-disabled" />
-     <input type="hidden" />
-   </fieldset>
- </p>
- <ol id="second-ol">
- </ol>
- <map name="dummymap">
-   <area shape="circle" coords="200,250,25" href="foo.html" id="area-href" />
-   <area shape="default" id="area-nohref" />
- </map>
-</div>
-<div id="foobar-div" foobar="ab bc
-cde"><span id="foobar-span"></span></div>
-</body></html>
diff --git a/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/lang.xml b/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/lang.xml
deleted file mode 100644
index 14f8dbe..0000000
--- a/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/lang.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<test>
-  <a id="first" xml:lang="en">a</a>
-  <b id="second" xml:lang="en-US">b</b>
-  <c id="third" xml:lang="en-Nz">c</c>
-  <d id="fourth" xml:lang="En-us">d</d>
-  <e id="fifth" xml:lang="fr">e</e>
-  <f id="sixth" xml:lang="ru">f</f>
-  <g id="seventh" xml:lang="de">
-    <h id="eighth" xml:lang="zh"/>
-  </g>
-</test>
diff --git a/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/shakespear.html b/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/shakespear.html
deleted file mode 100644
index 15d1ad3..0000000
--- a/core/vendor/symfony/css-selector/Tests/XPath/Fixtures/shakespear.html
+++ /dev/null
@@ -1,308 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" debug="true">
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-<body>
-	<div id="test">
-	<div class="dialog">
-	<h2>As You Like It</h2>
-	<div id="playwright">
-	  by William Shakespeare
-	</div>
-	<div class="dialog scene thirdClass" id="scene1">
-	  <h3>ACT I, SCENE III. A room in the palace.</h3>
-	  <div class="dialog">
-	  <div class="direction">Enter CELIA and ROSALIND</div>
-	  </div>
-	  <div id="speech1" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.1">Why, cousin! why, Rosalind! Cupid have mercy! not a word?</div>
-	  </div>
-	  <div id="speech2" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.2">Not one to throw at a dog.</div>
-	  </div>
-	  <div id="speech3" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.3">No, thy words are too precious to be cast away upon</div>
-	  <div id="scene1.3.4">curs; throw some of them at me; come, lame me with reasons.</div>
-	  </div>
-	  <div id="speech4" class="character">ROSALIND</div>
-	  <div id="speech5" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.8">But is all this for your father?</div>
-	  </div>
-	  <div class="dialog">
-	  <div id="scene1.3.5">Then there were two cousins laid up; when the one</div>
-	  <div id="scene1.3.6">should be lamed with reasons and the other mad</div>
-	  <div id="scene1.3.7">without any.</div>
-	  </div>
-	  <div id="speech6" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.9">No, some of it is for my child's father. O, how</div>
-	  <div id="scene1.3.10">full of briers is this working-day world!</div>
-	  </div>
-	  <div id="speech7" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.11">They are but burs, cousin, thrown upon thee in</div>
-	  <div id="scene1.3.12">holiday foolery: if we walk not in the trodden</div>
-	  <div id="scene1.3.13">paths our very petticoats will catch them.</div>
-	  </div>
-	  <div id="speech8" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.14">I could shake them off my coat: these burs are in my heart.</div>
-	  </div>
-	  <div id="speech9" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.15">Hem them away.</div>
-	  </div>
-	  <div id="speech10" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.16">I would try, if I could cry 'hem' and have him.</div>
-	  </div>
-	  <div id="speech11" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.17">Come, come, wrestle with thy affections.</div>
-	  </div>
-	  <div id="speech12" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.18">O, they take the part of a better wrestler than myself!</div>
-	  </div>
-	  <div id="speech13" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.19">O, a good wish upon you! you will try in time, in</div>
-	  <div id="scene1.3.20">despite of a fall. But, turning these jests out of</div>
-	  <div id="scene1.3.21">service, let us talk in good earnest: is it</div>
-	  <div id="scene1.3.22">possible, on such a sudden, you should fall into so</div>
-	  <div id="scene1.3.23">strong a liking with old Sir Rowland's youngest son?</div>
-	  </div>
-	  <div id="speech14" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.24">The duke my father loved his father dearly.</div>
-	  </div>
-	  <div id="speech15" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.25">Doth it therefore ensue that you should love his son</div>
-	  <div id="scene1.3.26">dearly? By this kind of chase, I should hate him,</div>
-	  <div id="scene1.3.27">for my father hated his father dearly; yet I hate</div>
-	  <div id="scene1.3.28">not Orlando.</div>
-	  </div>
-	  <div id="speech16" class="character">ROSALIND</div>
-	  <div title="wtf" class="dialog">
-	  <div id="scene1.3.29">No, faith, hate him not, for my sake.</div>
-	  </div>
-	  <div id="speech17" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.30">Why should I not? doth he not deserve well?</div>
-	  </div>
-	  <div id="speech18" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.31">Let me love him for that, and do you love him</div>
-	  <div id="scene1.3.32">because I do. Look, here comes the duke.</div>
-	  </div>
-	  <div id="speech19" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.33">With his eyes full of anger.</div>
-	  <div class="direction">Enter DUKE FREDERICK, with Lords</div>
-	  </div>
-	  <div id="speech20" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.34">Mistress, dispatch you with your safest haste</div>
-	  <div id="scene1.3.35">And get you from our court.</div>
-	  </div>
-	  <div id="speech21" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.36">Me, uncle?</div>
-	  </div>
-	  <div id="speech22" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.37">You, cousin</div>
-	  <div id="scene1.3.38">Within these ten days if that thou be'st found</div>
-	  <div id="scene1.3.39">So near our public court as twenty miles,</div>
-	  <div id="scene1.3.40">Thou diest for it.</div>
-	  </div>
-	  <div id="speech23" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.41">                  I do beseech your grace,</div>
-	  <div id="scene1.3.42">Let me the knowledge of my fault bear with me:</div>
-	  <div id="scene1.3.43">If with myself I hold intelligence</div>
-	  <div id="scene1.3.44">Or have acquaintance with mine own desires,</div>
-	  <div id="scene1.3.45">If that I do not dream or be not frantic,--</div>
-	  <div id="scene1.3.46">As I do trust I am not--then, dear uncle,</div>
-	  <div id="scene1.3.47">Never so much as in a thought unborn</div>
-	  <div id="scene1.3.48">Did I offend your highness.</div>
-	  </div>
-	  <div id="speech24" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.49">Thus do all traitors:</div>
-	  <div id="scene1.3.50">If their purgation did consist in words,</div>
-	  <div id="scene1.3.51">They are as innocent as grace itself:</div>
-	  <div id="scene1.3.52">Let it suffice thee that I trust thee not.</div>
-	  </div>
-	  <div id="speech25" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.53">Yet your mistrust cannot make me a traitor:</div>
-	  <div id="scene1.3.54">Tell me whereon the likelihood depends.</div>
-	  </div>
-	  <div id="speech26" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.55">Thou art thy father's daughter; there's enough.</div>
-	  </div>
-	  <div id="speech27" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.56">So was I when your highness took his dukedom;</div>
-	  <div id="scene1.3.57">So was I when your highness banish'd him:</div>
-	  <div id="scene1.3.58">Treason is not inherited, my lord;</div>
-	  <div id="scene1.3.59">Or, if we did derive it from our friends,</div>
-	  <div id="scene1.3.60">What's that to me? my father was no traitor:</div>
-	  <div id="scene1.3.61">Then, good my liege, mistake me not so much</div>
-	  <div id="scene1.3.62">To think my poverty is treacherous.</div>
-	  </div>
-	  <div id="speech28" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.63">Dear sovereign, hear me speak.</div>
-	  </div>
-	  <div id="speech29" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.64">Ay, Celia; we stay'd her for your sake,</div>
-	  <div id="scene1.3.65">Else had she with her father ranged along.</div>
-	  </div>
-	  <div id="speech30" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.66">I did not then entreat to have her stay;</div>
-	  <div id="scene1.3.67">It was your pleasure and your own remorse:</div>
-	  <div id="scene1.3.68">I was too young that time to value her;</div>
-	  <div id="scene1.3.69">But now I know her: if she be a traitor,</div>
-	  <div id="scene1.3.70">Why so am I; we still have slept together,</div>
-	  <div id="scene1.3.71">Rose at an instant, learn'd, play'd, eat together,</div>
-	  <div id="scene1.3.72">And wheresoever we went, like Juno's swans,</div>
-	  <div id="scene1.3.73">Still we went coupled and inseparable.</div>
-	  </div>
-	  <div id="speech31" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.74">She is too subtle for thee; and her smoothness,</div>
-	  <div id="scene1.3.75">Her very silence and her patience</div>
-	  <div id="scene1.3.76">Speak to the people, and they pity her.</div>
-	  <div id="scene1.3.77">Thou art a fool: she robs thee of thy name;</div>
-	  <div id="scene1.3.78">And thou wilt show more bright and seem more virtuous</div>
-	  <div id="scene1.3.79">When she is gone. Then open not thy lips:</div>
-	  <div id="scene1.3.80">Firm and irrevocable is my doom</div>
-	  <div id="scene1.3.81">Which I have pass'd upon her; she is banish'd.</div>
-	  </div>
-	  <div id="speech32" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.82">Pronounce that sentence then on me, my liege:</div>
-	  <div id="scene1.3.83">I cannot live out of her company.</div>
-	  </div>
-	  <div id="speech33" class="character">DUKE FREDERICK</div>
-	  <div class="dialog">
-	  <div id="scene1.3.84">You are a fool. You, niece, provide yourself:</div>
-	  <div id="scene1.3.85">If you outstay the time, upon mine honour,</div>
-	  <div id="scene1.3.86">And in the greatness of my word, you die.</div>
-	  <div class="direction">Exeunt DUKE FREDERICK and Lords</div>
-	  </div>
-	  <div id="speech34" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.87">O my poor Rosalind, whither wilt thou go?</div>
-	  <div id="scene1.3.88">Wilt thou change fathers? I will give thee mine.</div>
-	  <div id="scene1.3.89">I charge thee, be not thou more grieved than I am.</div>
-	  </div>
-	  <div id="speech35" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.90">I have more cause.</div>
-	  </div>
-	  <div id="speech36" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.91">                  Thou hast not, cousin;</div>
-	  <div id="scene1.3.92">Prithee be cheerful: know'st thou not, the duke</div>
-	  <div id="scene1.3.93">Hath banish'd me, his daughter?</div>
-	  </div>
-	  <div id="speech37" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.94">That he hath not.</div>
-	  </div>
-	  <div id="speech38" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.95">No, hath not? Rosalind lacks then the love</div>
-	  <div id="scene1.3.96">Which teacheth thee that thou and I am one:</div>
-	  <div id="scene1.3.97">Shall we be sunder'd? shall we part, sweet girl?</div>
-	  <div id="scene1.3.98">No: let my father seek another heir.</div>
-	  <div id="scene1.3.99">Therefore devise with me how we may fly,</div>
-	  <div id="scene1.3.100">Whither to go and what to bear with us;</div>
-	  <div id="scene1.3.101">And do not seek to take your change upon you,</div>
-	  <div id="scene1.3.102">To bear your griefs yourself and leave me out;</div>
-	  <div id="scene1.3.103">For, by this heaven, now at our sorrows pale,</div>
-	  <div id="scene1.3.104">Say what thou canst, I'll go along with thee.</div>
-	  </div>
-	  <div id="speech39" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.105">Why, whither shall we go?</div>
-	  </div>
-	  <div id="speech40" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.106">To seek my uncle in the forest of Arden.</div>
-	  </div>
-	  <div id="speech41" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.107">Alas, what danger will it be to us,</div>
-	  <div id="scene1.3.108">Maids as we are, to travel forth so far!</div>
-	  <div id="scene1.3.109">Beauty provoketh thieves sooner than gold.</div>
-	  </div>
-	  <div id="speech42" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.110">I'll put myself in poor and mean attire</div>
-	  <div id="scene1.3.111">And with a kind of umber smirch my face;</div>
-	  <div id="scene1.3.112">The like do you: so shall we pass along</div>
-	  <div id="scene1.3.113">And never stir assailants.</div>
-	  </div>
-	  <div id="speech43" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.114">Were it not better,</div>
-	  <div id="scene1.3.115">Because that I am more than common tall,</div>
-	  <div id="scene1.3.116">That I did suit me all points like a man?</div>
-	  <div id="scene1.3.117">A gallant curtle-axe upon my thigh,</div>
-	  <div id="scene1.3.118">A boar-spear in my hand; and--in my heart</div>
-	  <div id="scene1.3.119">Lie there what hidden woman's fear there will--</div>
-	  <div id="scene1.3.120">We'll have a swashing and a martial outside,</div>
-	  <div id="scene1.3.121">As many other mannish cowards have</div>
-	  <div id="scene1.3.122">That do outface it with their semblances.</div>
-	  </div>
-	  <div id="speech44" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.123">What shall I call thee when thou art a man?</div>
-	  </div>
-	  <div id="speech45" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.124">I'll have no worse a name than Jove's own page;</div>
-	  <div id="scene1.3.125">And therefore look you call me Ganymede.</div>
-	  <div id="scene1.3.126">But what will you be call'd?</div>
-	  </div>
-	  <div id="speech46" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.127">Something that hath a reference to my state</div>
-	  <div id="scene1.3.128">No longer Celia, but Aliena.</div>
-	  </div>
-	  <div id="speech47" class="character">ROSALIND</div>
-	  <div class="dialog">
-	  <div id="scene1.3.129">But, cousin, what if we assay'd to steal</div>
-	  <div id="scene1.3.130">The clownish fool out of your father's court?</div>
-	  <div id="scene1.3.131">Would he not be a comfort to our travel?</div>
-	  </div>
-	  <div id="speech48" class="character">CELIA</div>
-	  <div class="dialog">
-	  <div id="scene1.3.132">He'll go along o'er the wide world with me;</div>
-	  <div id="scene1.3.133">Leave me alone to woo him. Let's away,</div>
-	  <div id="scene1.3.134">And get our jewels and our wealth together,</div>
-	  <div id="scene1.3.135">Devise the fittest time and safest way</div>
-	  <div id="scene1.3.136">To hide us from pursuit that will be made</div>
-	  <div id="scene1.3.137">After my flight. Now go we in content</div>
-	  <div id="scene1.3.138">To liberty and not to banishment.</div>
-	  <div class="direction">Exeunt</div>
-	  </div>
-	</div>
-	</div>
-</div>
-</body>
-</html>
diff --git a/core/vendor/symfony/css-selector/Tests/XPath/TranslatorTest.php b/core/vendor/symfony/css-selector/Tests/XPath/TranslatorTest.php
deleted file mode 100644
index 143328f..0000000
--- a/core/vendor/symfony/css-selector/Tests/XPath/TranslatorTest.php
+++ /dev/null
@@ -1,324 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\Tests\XPath;
-
-use Symfony\Component\CssSelector\XPath\Extension\HtmlExtension;
-use Symfony\Component\CssSelector\XPath\Translator;
-
-class TranslatorTest extends \PHPUnit_Framework_TestCase
-{
-    /** @dataProvider getXpathLiteralTestData */
-    public function testXpathLiteral($value, $literal)
-    {
-        $this->assertEquals($literal, Translator::getXpathLiteral($value));
-    }
-
-    /** @dataProvider getCssToXPathTestData */
-    public function testCssToXPath($css, $xpath)
-    {
-        $translator = new Translator();
-        $translator->registerExtension(new HtmlExtension($translator));
-        $this->assertEquals($xpath, $translator->cssToXPath($css, ''));
-    }
-
-    /** @dataProvider getXmlLangTestData */
-    public function testXmlLang($css, array $elementsId)
-    {
-        $translator = new Translator();
-        $document = new \SimpleXMLElement(file_get_contents(__DIR__.'/Fixtures/lang.xml'));
-        $elements = $document->xpath($translator->cssToXPath($css));
-        $this->assertEquals(count($elementsId), count($elements));
-        foreach ($elements as $element) {
-            $this->assertTrue(in_array($element->attributes()->id, $elementsId));
-        }
-    }
-
-    /** @dataProvider getHtmlIdsTestData */
-    public function testHtmlIds($css, array $elementsId)
-    {
-        $translator = new Translator();
-        $translator->registerExtension(new HtmlExtension($translator));
-        $document = new \DOMDocument();
-        $document->strictErrorChecking = false;
-        $internalErrors = libxml_use_internal_errors(true);
-        $document->loadHTMLFile(__DIR__.'/Fixtures/ids.html');
-        $document = simplexml_import_dom($document);
-        $elements = $document->xpath($translator->cssToXPath($css));
-        $this->assertCount(count($elementsId), $elementsId);
-        foreach ($elements as $element) {
-            if (null !== $element->attributes()->id) {
-                $this->assertTrue(in_array($element->attributes()->id, $elementsId));
-            }
-        }
-        libxml_clear_errors();
-        libxml_use_internal_errors($internalErrors);
-    }
-
-    /** @dataProvider getHtmlShakespearTestData */
-    public function testHtmlShakespear($css, $count)
-    {
-        $translator = new Translator();
-        $translator->registerExtension(new HtmlExtension($translator));
-        $document = new \DOMDocument();
-        $document->strictErrorChecking = false;
-        $document->loadHTMLFile(__DIR__.'/Fixtures/shakespear.html');
-        $document = simplexml_import_dom($document);
-        $bodies = $document->xpath('//body');
-        $elements = $bodies[0]->xpath($translator->cssToXPath($css));
-        $this->assertEquals($count, count($elements));
-    }
-
-    public function getXpathLiteralTestData()
-    {
-        return array(
-            array('foo', "'foo'"),
-            array("foo's bar", '"foo\'s bar"'),
-            array("foo's \"middle\" bar", 'concat(\'foo\', "\'", \'s "middle" bar\')'),
-            array("foo's 'middle' \"bar\"", 'concat(\'foo\', "\'", \'s \', "\'", \'middle\', "\'", \' "bar"\')'),
-        );
-    }
-
-    public function getCssToXPathTestData()
-    {
-        return array(
-            array('*', '*'),
-            array('e', 'e'),
-            array('*|e', 'e'),
-            array('e|f', 'e:f'),
-            array('e[foo]', 'e[@foo]'),
-            array('e[foo|bar]', 'e[@foo:bar]'),
-            array('e[foo="bar"]', "e[@foo = 'bar']"),
-            array('e[foo~="bar"]', "e[@foo and contains(concat(' ', normalize-space(@foo), ' '), ' bar ')]"),
-            array('e[foo^="bar"]', "e[@foo and starts-with(@foo, 'bar')]"),
-            array('e[foo$="bar"]', "e[@foo and substring(@foo, string-length(@foo)-2) = 'bar']"),
-            array('e[foo*="bar"]', "e[@foo and contains(@foo, 'bar')]"),
-            array('e[hreflang|="en"]', "e[@hreflang and (@hreflang = 'en' or starts-with(@hreflang, 'en-'))]"),
-            array('e:nth-child(1)', "*/*[name() = 'e' and (position() = 1)]"),
-            array('e:nth-last-child(1)', "*/*[name() = 'e' and (position() = last() - 0)]"),
-            array('e:nth-last-child(2n+2)', "*/*[name() = 'e' and (last() - position() - 1 >= 0 and (last() - position() - 1) mod 2 = 0)]"),
-            array('e:nth-of-type(1)', '*/e[position() = 1]'),
-            array('e:nth-last-of-type(1)', '*/e[position() = last() - 0]'),
-            array('div e:nth-last-of-type(1) .aclass', "div/descendant-or-self::*/e[position() = last() - 0]/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' aclass ')]"),
-            array('e:first-child', "*/*[name() = 'e' and (position() = 1)]"),
-            array('e:last-child', "*/*[name() = 'e' and (position() = last())]"),
-            array('e:first-of-type', '*/e[position() = 1]'),
-            array('e:last-of-type', '*/e[position() = last()]'),
-            array('e:only-child', "*/*[name() = 'e' and (last() = 1)]"),
-            array('e:only-of-type', 'e[last() = 1]'),
-            array('e:empty', 'e[not(*) and not(string-length())]'),
-            array('e:EmPTY', 'e[not(*) and not(string-length())]'),
-            array('e:root', 'e[not(parent::*)]'),
-            array('e:hover', 'e[0]'),
-            array('e:contains("foo")', "e[contains(string(.), 'foo')]"),
-            array('e:ConTains(foo)', "e[contains(string(.), 'foo')]"),
-            array('e.warning', "e[@class and contains(concat(' ', normalize-space(@class), ' '), ' warning ')]"),
-            array('e#myid', "e[@id = 'myid']"),
-            array('e:not(:nth-child(odd))', 'e[not(position() - 1 >= 0 and (position() - 1) mod 2 = 0)]'),
-            array('e:nOT(*)', 'e[0]'),
-            array('e f', 'e/descendant-or-self::*/f'),
-            array('e > f', 'e/f'),
-            array('e + f', "e/following-sibling::*[name() = 'f' and (position() = 1)]"),
-            array('e ~ f', 'e/following-sibling::f'),
-            array('div#container p', "div[@id = 'container']/descendant-or-self::*/p"),
-        );
-    }
-
-    public function getXmlLangTestData()
-    {
-        return array(
-            array(':lang("EN")', array('first', 'second', 'third', 'fourth')),
-            array(':lang("en-us")', array('second', 'fourth')),
-            array(':lang(en-nz)', array('third')),
-            array(':lang(fr)', array('fifth')),
-            array(':lang(ru)', array('sixth')),
-            array(":lang('ZH')", array('eighth')),
-            array(':lang(de) :lang(zh)', array('eighth')),
-            array(':lang(en), :lang(zh)', array('first', 'second', 'third', 'fourth', 'eighth')),
-            array(':lang(es)', array()),
-        );
-    }
-
-    public function getHtmlIdsTestData()
-    {
-        return array(
-            array('div', array('outer-div', 'li-div', 'foobar-div')),
-            array('DIV', array('outer-div', 'li-div', 'foobar-div')),  // case-insensitive in HTML
-            array('div div', array('li-div')),
-            array('div, div div', array('outer-div', 'li-div', 'foobar-div')),
-            array('a[name]', array('name-anchor')),
-            array('a[NAme]', array('name-anchor')), // case-insensitive in HTML:
-            array('a[rel]', array('tag-anchor', 'nofollow-anchor')),
-            array('a[rel="tag"]', array('tag-anchor')),
-            array('a[href*="localhost"]', array('tag-anchor')),
-            array('a[href*=""]', array()),
-            array('a[href^="http"]', array('tag-anchor', 'nofollow-anchor')),
-            array('a[href^="http:"]', array('tag-anchor')),
-            array('a[href^=""]', array()),
-            array('a[href$="org"]', array('nofollow-anchor')),
-            array('a[href$=""]', array()),
-            array('div[foobar~="bc"]', array('foobar-div')),
-            array('div[foobar~="cde"]', array('foobar-div')),
-            array('[foobar~="ab bc"]', array('foobar-div')),
-            array('[foobar~=""]', array()),
-            array('[foobar~=" \t"]', array()),
-            array('div[foobar~="cd"]', array()),
-            array('*[lang|="En"]', array('second-li')),
-            array('[lang|="En-us"]', array('second-li')),
-            // Attribute values are case sensitive
-            array('*[lang|="en"]', array()),
-            array('[lang|="en-US"]', array()),
-            array('*[lang|="e"]', array()),
-            // ... :lang() is not.
-            array(':lang("EN")', array('second-li', 'li-div')),
-            array('*:lang(en-US)', array('second-li', 'li-div')),
-            array(':lang("e")', array()),
-            array('li:nth-child(3)', array('third-li')),
-            array('li:nth-child(10)', array()),
-            array('li:nth-child(2n)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-child(even)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-child(2n+0)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-child(+2n+1)', array('first-li', 'third-li', 'fifth-li', 'seventh-li')),
-            array('li:nth-child(odd)', array('first-li', 'third-li', 'fifth-li', 'seventh-li')),
-            array('li:nth-child(2n+4)', array('fourth-li', 'sixth-li')),
-            array('li:nth-child(3n+1)', array('first-li', 'fourth-li', 'seventh-li')),
-            array('li:nth-child(n)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(n-1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(n+1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(n+3)', array('third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-child(-n)', array()),
-            array('li:nth-child(-n-1)', array()),
-            array('li:nth-child(-n+1)', array('first-li')),
-            array('li:nth-child(-n+3)', array('first-li', 'second-li', 'third-li')),
-            array('li:nth-last-child(0)', array()),
-            array('li:nth-last-child(2n)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-last-child(even)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-last-child(2n+2)', array('second-li', 'fourth-li', 'sixth-li')),
-            array('li:nth-last-child(n)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n-1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n-3)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n+1)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li', 'sixth-li', 'seventh-li')),
-            array('li:nth-last-child(n+3)', array('first-li', 'second-li', 'third-li', 'fourth-li', 'fifth-li')),
-            array('li:nth-last-child(-n)', array()),
-            array('li:nth-last-child(-n-1)', array()),
-            array('li:nth-last-child(-n+1)', array('seventh-li')),
-            array('li:nth-last-child(-n+3)', array('fifth-li', 'sixth-li', 'seventh-li')),
-            array('ol:first-of-type', array('first-ol')),
-            array('ol:nth-child(1)', array('first-ol')),
-            array('ol:nth-of-type(2)', array('second-ol')),
-            array('ol:nth-last-of-type(1)', array('second-ol')),
-            array('span:only-child', array('foobar-span')),
-            array('li div:only-child', array('li-div')),
-            array('div *:only-child', array('li-div', 'foobar-span')),
-            array('p:only-of-type', array('paragraph')),
-            array('a:empty', array('name-anchor')),
-            array('a:EMpty', array('name-anchor')),
-            array('li:empty', array('third-li', 'fourth-li', 'fifth-li', 'sixth-li')),
-            array(':root', array('html')),
-            array('html:root', array('html')),
-            array('li:root', array()),
-            array('* :root', array()),
-            array('*:contains("link")', array('html', 'outer-div', 'tag-anchor', 'nofollow-anchor')),
-            array(':CONtains("link")', array('html', 'outer-div', 'tag-anchor', 'nofollow-anchor')),
-            array('*:contains("LInk")', array()),  // case sensitive
-            array('*:contains("e")', array('html', 'nil', 'outer-div', 'first-ol', 'first-li', 'paragraph', 'p-em')),
-            array('*:contains("E")', array()),  // case-sensitive
-            array('.a', array('first-ol')),
-            array('.b', array('first-ol')),
-            array('*.a', array('first-ol')),
-            array('ol.a', array('first-ol')),
-            array('.c', array('first-ol', 'third-li', 'fourth-li')),
-            array('*.c', array('first-ol', 'third-li', 'fourth-li')),
-            array('ol *.c', array('third-li', 'fourth-li')),
-            array('ol li.c', array('third-li', 'fourth-li')),
-            array('li ~ li.c', array('third-li', 'fourth-li')),
-            array('ol > li.c', array('third-li', 'fourth-li')),
-            array('#first-li', array('first-li')),
-            array('li#first-li', array('first-li')),
-            array('*#first-li', array('first-li')),
-            array('li div', array('li-div')),
-            array('li > div', array('li-div')),
-            array('div div', array('li-div')),
-            array('div > div', array()),
-            array('div>.c', array('first-ol')),
-            array('div > .c', array('first-ol')),
-            array('div + div', array('foobar-div')),
-            array('a ~ a', array('tag-anchor', 'nofollow-anchor')),
-            array('a[rel="tag"] ~ a', array('nofollow-anchor')),
-            array('ol#first-ol li:last-child', array('seventh-li')),
-            array('ol#first-ol *:last-child', array('li-div', 'seventh-li')),
-            array('#outer-div:first-child', array('outer-div')),
-            array('#outer-div :first-child', array('name-anchor', 'first-li', 'li-div', 'p-b', 'checkbox-fieldset-disabled', 'area-href')),
-            array('a[href]', array('tag-anchor', 'nofollow-anchor')),
-            array(':not(*)', array()),
-            array('a:not([href])', array('name-anchor')),
-            array('ol :Not(li[class])', array('first-li', 'second-li', 'li-div', 'fifth-li', 'sixth-li', 'seventh-li')),
-            // HTML-specific
-            array(':link', array('link-href', 'tag-anchor', 'nofollow-anchor', 'area-href')),
-            array(':visited', array()),
-            array(':enabled', array('link-href', 'tag-anchor', 'nofollow-anchor', 'checkbox-unchecked', 'text-checked', 'checkbox-checked', 'area-href')),
-            array(':disabled', array('checkbox-disabled', 'checkbox-disabled-checked', 'fieldset', 'checkbox-fieldset-disabled')),
-            array(':checked', array('checkbox-checked', 'checkbox-disabled-checked')),
-        );
-    }
-
-    public function getHtmlShakespearTestData()
-    {
-        return array(
-            array('*', 246),
-            array('div:contains(CELIA)', 26),
-            array('div:only-child', 22), // ?
-            array('div:nth-child(even)', 106),
-            array('div:nth-child(2n)', 106),
-            array('div:nth-child(odd)', 137),
-            array('div:nth-child(2n+1)', 137),
-            array('div:nth-child(n)', 243),
-            array('div:last-child', 53),
-            array('div:first-child', 51),
-            array('div > div', 242),
-            array('div + div', 190),
-            array('div ~ div', 190),
-            array('body', 1),
-            array('body div', 243),
-            array('div', 243),
-            array('div div', 242),
-            array('div div div', 241),
-            array('div, div, div', 243),
-            array('div, a, span', 243),
-            array('.dialog', 51),
-            array('div.dialog', 51),
-            array('div .dialog', 51),
-            array('div.character, div.dialog', 99),
-            array('div.direction.dialog', 0),
-            array('div.dialog.direction', 0),
-            array('div.dialog.scene', 1),
-            array('div.scene.scene', 1),
-            array('div.scene .scene', 0),
-            array('div.direction .dialog ', 0),
-            array('div .dialog .direction', 4),
-            array('div.dialog .dialog .direction', 4),
-            array('#speech5', 1),
-            array('div#speech5', 1),
-            array('div #speech5', 1),
-            array('div.scene div.dialog', 49),
-            array('div#scene1 div.dialog div', 142),
-            array('#scene1 #speech1', 1),
-            array('div[class]', 103),
-            array('div[class=dialog]', 50),
-            array('div[class^=dia]', 51),
-            array('div[class$=log]', 50),
-            array('div[class*=sce]', 1),
-            array('div[class|=dialog]', 50), // ? Seems right
-            array('div[class!=madeup]', 243), // ? Seems right
-            array('div[class~=dialog]', 51), // ? Seems right
-        );
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/AbstractExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/AbstractExtension.php
deleted file mode 100644
index c70609c..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/AbstractExtension.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-/**
- * XPath expression translator abstract extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-abstract class AbstractExtension implements ExtensionInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getNodeTranslators()
-    {
-        return array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCombinationTranslators()
-    {
-        return array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFunctionTranslators()
-    {
-        return array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPseudoClassTranslators()
-    {
-        return array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttributeMatchingTranslators()
-    {
-        return array();
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php
deleted file mode 100644
index cbe48c5..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-use Symfony\Component\CssSelector\XPath\Translator;
-use Symfony\Component\CssSelector\XPath\XPathExpr;
-
-/**
- * XPath expression translator attribute extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class AttributeMatchingExtension extends AbstractExtension
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttributeMatchingTranslators()
-    {
-        return array(
-            'exists' => array($this, 'translateExists'),
-            '=' => array($this, 'translateEquals'),
-            '~=' => array($this, 'translateIncludes'),
-            '|=' => array($this, 'translateDashMatch'),
-            '^=' => array($this, 'translatePrefixMatch'),
-            '$=' => array($this, 'translateSuffixMatch'),
-            '*=' => array($this, 'translateSubstringMatch'),
-            '!=' => array($this, 'translateDifferent'),
-        );
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateExists(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition($attribute);
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateEquals(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition(sprintf('%s = %s', $attribute, Translator::getXpathLiteral($value)));
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateIncludes(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition($value ? sprintf(
-            '%1$s and contains(concat(\' \', normalize-space(%1$s), \' \'), %2$s)',
-            $attribute,
-            Translator::getXpathLiteral(' '.$value.' ')
-        ) : '0');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateDashMatch(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition(sprintf(
-            '%1$s and (%1$s = %2$s or starts-with(%1$s, %3$s))',
-            $attribute,
-            Translator::getXpathLiteral($value),
-            Translator::getXpathLiteral($value.'-')
-        ));
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translatePrefixMatch(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition($value ? sprintf(
-            '%1$s and starts-with(%1$s, %2$s)',
-            $attribute,
-            Translator::getXpathLiteral($value)
-        ) : '0');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateSuffixMatch(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition($value ? sprintf(
-            '%1$s and substring(%1$s, string-length(%1$s)-%2$s) = %3$s',
-            $attribute,
-            strlen($value) - 1,
-            Translator::getXpathLiteral($value)
-        ) : '0');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateSubstringMatch(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition($value ? sprintf(
-            '%1$s and contains(%1$s, %2$s)',
-            $attribute,
-            Translator::getXpathLiteral($value)
-        ) : '0');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @return XPathExpr
-     */
-    public function translateDifferent(XPathExpr $xpath, $attribute, $value)
-    {
-        return $xpath->addCondition(sprintf(
-            $value ? 'not(%1$s) or %1$s != %2$s' : '%s != %s',
-            $attribute,
-            Translator::getXpathLiteral($value)
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'attribute-matching';
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php
deleted file mode 100644
index 9ce018f..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-use Symfony\Component\CssSelector\XPath\XPathExpr;
-
-/**
- * XPath expression translator combination extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class CombinationExtension extends AbstractExtension
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getCombinationTranslators()
-    {
-        return array(
-            ' ' => array($this, 'translateDescendant'),
-            '>' => array($this, 'translateChild'),
-            '+' => array($this, 'translateDirectAdjacent'),
-            '~' => array($this, 'translateIndirectAdjacent'),
-        );
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param XPathExpr $combinedXpath
-     *
-     * @return XPathExpr
-     */
-    public function translateDescendant(XPathExpr $xpath, XPathExpr $combinedXpath)
-    {
-        return $xpath->join('/descendant-or-self::*/', $combinedXpath);
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param XPathExpr $combinedXpath
-     *
-     * @return XPathExpr
-     */
-    public function translateChild(XPathExpr $xpath, XPathExpr $combinedXpath)
-    {
-        return $xpath->join('/', $combinedXpath);
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param XPathExpr $combinedXpath
-     *
-     * @return XPathExpr
-     */
-    public function translateDirectAdjacent(XPathExpr $xpath, XPathExpr $combinedXpath)
-    {
-        return $xpath
-            ->join('/following-sibling::', $combinedXpath)
-            ->addNameTest()
-            ->addCondition('position() = 1');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param XPathExpr $combinedXpath
-     *
-     * @return XPathExpr
-     */
-    public function translateIndirectAdjacent(XPathExpr $xpath, XPathExpr $combinedXpath)
-    {
-        return $xpath->join('/following-sibling::', $combinedXpath);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'combination';
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/ExtensionInterface.php b/core/vendor/symfony/css-selector/XPath/Extension/ExtensionInterface.php
deleted file mode 100644
index 9b47f24..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/ExtensionInterface.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-/**
- * XPath expression translator extension interface.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface ExtensionInterface
-{
-    /**
-     * Returns node translators.
-     *
-     * These callables will receive the node as first argument and the translator as second argument.
-     *
-     * @return callable[]
-     */
-    public function getNodeTranslators();
-
-    /**
-     * Returns combination translators.
-     *
-     * @return callable[]
-     */
-    public function getCombinationTranslators();
-
-    /**
-     * Returns function translators.
-     *
-     * @return callable[]
-     */
-    public function getFunctionTranslators();
-
-    /**
-     * Returns pseudo-class translators.
-     *
-     * @return callable[]
-     */
-    public function getPseudoClassTranslators();
-
-    /**
-     * Returns attribute operation translators.
-     *
-     * @return callable[]
-     */
-    public function getAttributeMatchingTranslators();
-
-    /**
-     * Returns extension name.
-     *
-     * @return string
-     */
-    public function getName();
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php
deleted file mode 100644
index 41ece8a..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-use Symfony\Component\CssSelector\Exception\ExpressionErrorException;
-use Symfony\Component\CssSelector\Exception\SyntaxErrorException;
-use Symfony\Component\CssSelector\Node\FunctionNode;
-use Symfony\Component\CssSelector\Parser\Parser;
-use Symfony\Component\CssSelector\XPath\Translator;
-use Symfony\Component\CssSelector\XPath\XPathExpr;
-
-/**
- * XPath expression translator function extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class FunctionExtension extends AbstractExtension
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getFunctionTranslators()
-    {
-        return array(
-            'nth-child' => array($this, 'translateNthChild'),
-            'nth-last-child' => array($this, 'translateNthLastChild'),
-            'nth-of-type' => array($this, 'translateNthOfType'),
-            'nth-last-of-type' => array($this, 'translateNthLastOfType'),
-            'contains' => array($this, 'translateContains'),
-            'lang' => array($this, 'translateLang'),
-        );
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     * @param bool         $last
-     * @param bool         $addNameTest
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateNthChild(XPathExpr $xpath, FunctionNode $function, $last = false, $addNameTest = true)
-    {
-        try {
-            list($a, $b) = Parser::parseSeries($function->getArguments());
-        } catch (SyntaxErrorException $e) {
-            throw new ExpressionErrorException(sprintf('Invalid series: %s', implode(', ', $function->getArguments())), 0, $e);
-        }
-
-        $xpath->addStarPrefix();
-        if ($addNameTest) {
-            $xpath->addNameTest();
-        }
-
-        if (0 === $a) {
-            return $xpath->addCondition('position() = '.($last ? 'last() - '.($b - 1) : $b));
-        }
-
-        if ($a < 0) {
-            if ($b < 1) {
-                return $xpath->addCondition('false()');
-            }
-
-            $sign = '<=';
-        } else {
-            $sign = '>=';
-        }
-
-        $expr = 'position()';
-
-        if ($last) {
-            $expr = 'last() - '.$expr;
-            --$b;
-        }
-
-        if (0 !== $b) {
-            $expr .= ' - '.$b;
-        }
-
-        $conditions = array(sprintf('%s %s 0', $expr, $sign));
-
-        if (1 !== $a && -1 !== $a) {
-            $conditions[] = sprintf('(%s) mod %d = 0', $expr, $a);
-        }
-
-        return $xpath->addCondition(implode(' and ', $conditions));
-
-        // todo: handle an+b, odd, even
-        // an+b means every-a, plus b, e.g., 2n+1 means odd
-        // 0n+b means b
-        // n+0 means a=1, i.e., all elements
-        // an means every a elements, i.e., 2n means even
-        // -n means -1n
-        // -1n+6 means elements 6 and previous
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     */
-    public function translateNthLastChild(XPathExpr $xpath, FunctionNode $function)
-    {
-        return $this->translateNthChild($xpath, $function, true);
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     */
-    public function translateNthOfType(XPathExpr $xpath, FunctionNode $function)
-    {
-        return $this->translateNthChild($xpath, $function, false, false);
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateNthLastOfType(XPathExpr $xpath, FunctionNode $function)
-    {
-        if ('*' === $xpath->getElement()) {
-            throw new ExpressionErrorException('"*:nth-of-type()" is not implemented.');
-        }
-
-        return $this->translateNthChild($xpath, $function, true, false);
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateContains(XPathExpr $xpath, FunctionNode $function)
-    {
-        $arguments = $function->getArguments();
-        foreach ($arguments as $token) {
-            if (!($token->isString() || $token->isIdentifier())) {
-                throw new ExpressionErrorException(
-                    'Expected a single string or identifier for :contains(), got '
-                    .implode(', ', $arguments)
-                );
-            }
-        }
-
-        return $xpath->addCondition(sprintf(
-            'contains(string(.), %s)',
-            Translator::getXpathLiteral($arguments[0]->getValue())
-        ));
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateLang(XPathExpr $xpath, FunctionNode $function)
-    {
-        $arguments = $function->getArguments();
-        foreach ($arguments as $token) {
-            if (!($token->isString() || $token->isIdentifier())) {
-                throw new ExpressionErrorException(
-                    'Expected a single string or identifier for :lang(), got '
-                    .implode(', ', $arguments)
-                );
-            }
-        }
-
-        return $xpath->addCondition(sprintf(
-            'lang(%s)',
-            Translator::getXpathLiteral($arguments[0]->getValue())
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'function';
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php
deleted file mode 100644
index 0da74d4..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php
+++ /dev/null
@@ -1,238 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-use Symfony\Component\CssSelector\Exception\ExpressionErrorException;
-use Symfony\Component\CssSelector\Node\FunctionNode;
-use Symfony\Component\CssSelector\XPath\Translator;
-use Symfony\Component\CssSelector\XPath\XPathExpr;
-
-/**
- * XPath expression translator HTML extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class HtmlExtension extends AbstractExtension
-{
-    /**
-     * Constructor.
-     *
-     * @param Translator $translator
-     */
-    public function __construct(Translator $translator)
-    {
-        $translator
-            ->getExtension('node')
-            ->setFlag(NodeExtension::ELEMENT_NAME_IN_LOWER_CASE, true)
-            ->setFlag(NodeExtension::ATTRIBUTE_NAME_IN_LOWER_CASE, true);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPseudoClassTranslators()
-    {
-        return array(
-            'checked' => array($this, 'translateChecked'),
-            'link' => array($this, 'translateLink'),
-            'disabled' => array($this, 'translateDisabled'),
-            'enabled' => array($this, 'translateEnabled'),
-            'selected' => array($this, 'translateSelected'),
-            'invalid' => array($this, 'translateInvalid'),
-            'hover' => array($this, 'translateHover'),
-            'visited' => array($this, 'translateVisited'),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFunctionTranslators()
-    {
-        return array(
-            'lang' => array($this, 'translateLang'),
-        );
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateChecked(XPathExpr $xpath)
-    {
-        return $xpath->addCondition(
-            '(@checked '
-            ."and (name(.) = 'input' or name(.) = 'command')"
-            ."and (@type = 'checkbox' or @type = 'radio'))"
-        );
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateLink(XPathExpr $xpath)
-    {
-        return $xpath->addCondition("@href and (name(.) = 'a' or name(.) = 'link' or name(.) = 'area')");
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateDisabled(XPathExpr $xpath)
-    {
-        return $xpath->addCondition(
-            '('
-                .'@disabled and'
-                .'('
-                    ."(name(.) = 'input' and @type != 'hidden')"
-                    ." or name(.) = 'button'"
-                    ." or name(.) = 'select'"
-                    ." or name(.) = 'textarea'"
-                    ." or name(.) = 'command'"
-                    ." or name(.) = 'fieldset'"
-                    ." or name(.) = 'optgroup'"
-                    ." or name(.) = 'option'"
-                .')'
-            .') or ('
-                ."(name(.) = 'input' and @type != 'hidden')"
-                ." or name(.) = 'button'"
-                ." or name(.) = 'select'"
-                ." or name(.) = 'textarea'"
-            .')'
-            .' and ancestor::fieldset[@disabled]'
-        );
-        // todo: in the second half, add "and is not a descendant of that fieldset element's first legend element child, if any."
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateEnabled(XPathExpr $xpath)
-    {
-        return $xpath->addCondition(
-            '('
-                .'@href and ('
-                    ."name(.) = 'a'"
-                    ." or name(.) = 'link'"
-                    ." or name(.) = 'area'"
-                .')'
-            .') or ('
-                .'('
-                    ."name(.) = 'command'"
-                    ." or name(.) = 'fieldset'"
-                    ." or name(.) = 'optgroup'"
-                .')'
-                .' and not(@disabled)'
-            .') or ('
-                .'('
-                    ."(name(.) = 'input' and @type != 'hidden')"
-                    ." or name(.) = 'button'"
-                    ." or name(.) = 'select'"
-                    ." or name(.) = 'textarea'"
-                    ." or name(.) = 'keygen'"
-                .')'
-                .' and not (@disabled or ancestor::fieldset[@disabled])'
-            .') or ('
-                ."name(.) = 'option' and not("
-                    .'@disabled or ancestor::optgroup[@disabled]'
-                .')'
-            .')'
-        );
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateLang(XPathExpr $xpath, FunctionNode $function)
-    {
-        $arguments = $function->getArguments();
-        foreach ($arguments as $token) {
-            if (!($token->isString() || $token->isIdentifier())) {
-                throw new ExpressionErrorException(
-                    'Expected a single string or identifier for :lang(), got '
-                    .implode(', ', $arguments)
-                );
-            }
-        }
-
-        return $xpath->addCondition(sprintf(
-            'ancestor-or-self::*[@lang][1][starts-with(concat('
-            ."translate(@%s, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '-')"
-            .', %s)]',
-            'lang',
-            Translator::getXpathLiteral(strtolower($arguments[0]->getValue()).'-')
-        ));
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateSelected(XPathExpr $xpath)
-    {
-        return $xpath->addCondition("(@selected and name(.) = 'option')");
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateInvalid(XPathExpr $xpath)
-    {
-        return $xpath->addCondition('0');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateHover(XPathExpr $xpath)
-    {
-        return $xpath->addCondition('0');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateVisited(XPathExpr $xpath)
-    {
-        return $xpath->addCondition('0');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'html';
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php
deleted file mode 100644
index 2b8920f..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-use Symfony\Component\CssSelector\Node;
-use Symfony\Component\CssSelector\XPath\Translator;
-use Symfony\Component\CssSelector\XPath\XPathExpr;
-
-/**
- * XPath expression translator node extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class NodeExtension extends AbstractExtension
-{
-    const ELEMENT_NAME_IN_LOWER_CASE = 1;
-    const ATTRIBUTE_NAME_IN_LOWER_CASE = 2;
-    const ATTRIBUTE_VALUE_IN_LOWER_CASE = 4;
-
-    /**
-     * @var int
-     */
-    private $flags;
-
-    /**
-     * Constructor.
-     *
-     * @param int $flags
-     */
-    public function __construct($flags = 0)
-    {
-        $this->flags = $flags;
-    }
-
-    /**
-     * @param int  $flag
-     * @param bool $on
-     *
-     * @return NodeExtension
-     */
-    public function setFlag($flag, $on)
-    {
-        if ($on && !$this->hasFlag($flag)) {
-            $this->flags += $flag;
-        }
-
-        if (!$on && $this->hasFlag($flag)) {
-            $this->flags -= $flag;
-        }
-
-        return $this;
-    }
-
-    /**
-     * @param int $flag
-     *
-     * @return bool
-     */
-    public function hasFlag($flag)
-    {
-        return $this->flags & $flag;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNodeTranslators()
-    {
-        return array(
-            'Selector' => array($this, 'translateSelector'),
-            'CombinedSelector' => array($this, 'translateCombinedSelector'),
-            'Negation' => array($this, 'translateNegation'),
-            'Function' => array($this, 'translateFunction'),
-            'Pseudo' => array($this, 'translatePseudo'),
-            'Attribute' => array($this, 'translateAttribute'),
-            'Class' => array($this, 'translateClass'),
-            'Hash' => array($this, 'translateHash'),
-            'Element' => array($this, 'translateElement'),
-        );
-    }
-
-    /**
-     * @param Node\SelectorNode $node
-     * @param Translator        $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateSelector(Node\SelectorNode $node, Translator $translator)
-    {
-        return $translator->nodeToXPath($node->getTree());
-    }
-
-    /**
-     * @param Node\CombinedSelectorNode $node
-     * @param Translator                $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateCombinedSelector(Node\CombinedSelectorNode $node, Translator $translator)
-    {
-        return $translator->addCombination($node->getCombinator(), $node->getSelector(), $node->getSubSelector());
-    }
-
-    /**
-     * @param Node\NegationNode $node
-     * @param Translator        $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateNegation(Node\NegationNode $node, Translator $translator)
-    {
-        $xpath = $translator->nodeToXPath($node->getSelector());
-        $subXpath = $translator->nodeToXPath($node->getSubSelector());
-        $subXpath->addNameTest();
-
-        if ($subXpath->getCondition()) {
-            return $xpath->addCondition(sprintf('not(%s)', $subXpath->getCondition()));
-        }
-
-        return $xpath->addCondition('0');
-    }
-
-    /**
-     * @param Node\FunctionNode $node
-     * @param Translator        $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateFunction(Node\FunctionNode $node, Translator $translator)
-    {
-        $xpath = $translator->nodeToXPath($node->getSelector());
-
-        return $translator->addFunction($xpath, $node);
-    }
-
-    /**
-     * @param Node\PseudoNode $node
-     * @param Translator      $translator
-     *
-     * @return XPathExpr
-     */
-    public function translatePseudo(Node\PseudoNode $node, Translator $translator)
-    {
-        $xpath = $translator->nodeToXPath($node->getSelector());
-
-        return $translator->addPseudoClass($xpath, $node->getIdentifier());
-    }
-
-    /**
-     * @param Node\AttributeNode $node
-     * @param Translator         $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateAttribute(Node\AttributeNode $node, Translator $translator)
-    {
-        $name = $node->getAttribute();
-        $safe = $this->isSafeName($name);
-
-        if ($this->hasFlag(self::ATTRIBUTE_NAME_IN_LOWER_CASE)) {
-            $name = strtolower($name);
-        }
-
-        if ($node->getNamespace()) {
-            $name = sprintf('%s:%s', $node->getNamespace(), $name);
-            $safe = $safe && $this->isSafeName($node->getNamespace());
-        }
-
-        $attribute = $safe ? '@'.$name : sprintf('attribute::*[name() = %s]', Translator::getXpathLiteral($name));
-        $value = $node->getValue();
-        $xpath = $translator->nodeToXPath($node->getSelector());
-
-        if ($this->hasFlag(self::ATTRIBUTE_VALUE_IN_LOWER_CASE)) {
-            $value = strtolower($value);
-        }
-
-        return $translator->addAttributeMatching($xpath, $node->getOperator(), $attribute, $value);
-    }
-
-    /**
-     * @param Node\ClassNode $node
-     * @param Translator     $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateClass(Node\ClassNode $node, Translator $translator)
-    {
-        $xpath = $translator->nodeToXPath($node->getSelector());
-
-        return $translator->addAttributeMatching($xpath, '~=', '@class', $node->getName());
-    }
-
-    /**
-     * @param Node\HashNode $node
-     * @param Translator    $translator
-     *
-     * @return XPathExpr
-     */
-    public function translateHash(Node\HashNode $node, Translator $translator)
-    {
-        $xpath = $translator->nodeToXPath($node->getSelector());
-
-        return $translator->addAttributeMatching($xpath, '=', '@id', $node->getId());
-    }
-
-    /**
-     * @param Node\ElementNode $node
-     *
-     * @return XPathExpr
-     */
-    public function translateElement(Node\ElementNode $node)
-    {
-        $element = $node->getElement();
-
-        if ($this->hasFlag(self::ELEMENT_NAME_IN_LOWER_CASE)) {
-            $element = strtolower($element);
-        }
-
-        if ($element) {
-            $safe = $this->isSafeName($element);
-        } else {
-            $element = '*';
-            $safe = true;
-        }
-
-        if ($node->getNamespace()) {
-            $element = sprintf('%s:%s', $node->getNamespace(), $element);
-            $safe = $safe && $this->isSafeName($node->getNamespace());
-        }
-
-        $xpath = new XPathExpr('', $element);
-
-        if (!$safe) {
-            $xpath->addNameTest();
-        }
-
-        return $xpath;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'node';
-    }
-
-    /**
-     * Tests if given name is safe.
-     *
-     * @param string $name
-     *
-     * @return bool
-     */
-    private function isSafeName($name)
-    {
-        return 0 < preg_match('~^[a-zA-Z_][a-zA-Z0-9_.-]*$~', $name);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php b/core/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php
deleted file mode 100644
index 008ec2b..0000000
--- a/core/vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath\Extension;
-
-use Symfony\Component\CssSelector\Exception\ExpressionErrorException;
-use Symfony\Component\CssSelector\XPath\XPathExpr;
-
-/**
- * XPath expression translator pseudo-class extension.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class PseudoClassExtension extends AbstractExtension
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getPseudoClassTranslators()
-    {
-        return array(
-            'root' => array($this, 'translateRoot'),
-            'first-child' => array($this, 'translateFirstChild'),
-            'last-child' => array($this, 'translateLastChild'),
-            'first-of-type' => array($this, 'translateFirstOfType'),
-            'last-of-type' => array($this, 'translateLastOfType'),
-            'only-child' => array($this, 'translateOnlyChild'),
-            'only-of-type' => array($this, 'translateOnlyOfType'),
-            'empty' => array($this, 'translateEmpty'),
-        );
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateRoot(XPathExpr $xpath)
-    {
-        return $xpath->addCondition('not(parent::*)');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateFirstChild(XPathExpr $xpath)
-    {
-        return $xpath
-            ->addStarPrefix()
-            ->addNameTest()
-            ->addCondition('position() = 1');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateLastChild(XPathExpr $xpath)
-    {
-        return $xpath
-            ->addStarPrefix()
-            ->addNameTest()
-            ->addCondition('position() = last()');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateFirstOfType(XPathExpr $xpath)
-    {
-        if ('*' === $xpath->getElement()) {
-            throw new ExpressionErrorException('"*:first-of-type" is not implemented.');
-        }
-
-        return $xpath
-            ->addStarPrefix()
-            ->addCondition('position() = 1');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateLastOfType(XPathExpr $xpath)
-    {
-        if ('*' === $xpath->getElement()) {
-            throw new ExpressionErrorException('"*:last-of-type" is not implemented.');
-        }
-
-        return $xpath
-            ->addStarPrefix()
-            ->addCondition('position() = last()');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateOnlyChild(XPathExpr $xpath)
-    {
-        return $xpath
-            ->addStarPrefix()
-            ->addNameTest()
-            ->addCondition('last() = 1');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function translateOnlyOfType(XPathExpr $xpath)
-    {
-        if ('*' === $xpath->getElement()) {
-            throw new ExpressionErrorException('"*:only-of-type" is not implemented.');
-        }
-
-        return $xpath->addCondition('last() = 1');
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     *
-     * @return XPathExpr
-     */
-    public function translateEmpty(XPathExpr $xpath)
-    {
-        return $xpath->addCondition('not(*) and not(string-length())');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'pseudo-class';
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/Translator.php b/core/vendor/symfony/css-selector/XPath/Translator.php
deleted file mode 100644
index 5053793..0000000
--- a/core/vendor/symfony/css-selector/XPath/Translator.php
+++ /dev/null
@@ -1,299 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath;
-
-use Symfony\Component\CssSelector\Exception\ExpressionErrorException;
-use Symfony\Component\CssSelector\Node\FunctionNode;
-use Symfony\Component\CssSelector\Node\NodeInterface;
-use Symfony\Component\CssSelector\Node\SelectorNode;
-use Symfony\Component\CssSelector\Parser\Parser;
-use Symfony\Component\CssSelector\Parser\ParserInterface;
-
-/**
- * XPath expression translator interface.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class Translator implements TranslatorInterface
-{
-    /**
-     * @var ParserInterface
-     */
-    private $mainParser;
-
-    /**
-     * @var ParserInterface[]
-     */
-    private $shortcutParsers = array();
-
-    /**
-     * @var Extension\ExtensionInterface
-     */
-    private $extensions = array();
-
-    /**
-     * @var array
-     */
-    private $nodeTranslators = array();
-
-    /**
-     * @var array
-     */
-    private $combinationTranslators = array();
-
-    /**
-     * @var array
-     */
-    private $functionTranslators = array();
-
-    /**
-     * @var array
-     */
-    private $pseudoClassTranslators = array();
-
-    /**
-     * @var array
-     */
-    private $attributeMatchingTranslators = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct(ParserInterface $parser = null)
-    {
-        $this->mainParser = $parser ?: new Parser();
-
-        $this
-            ->registerExtension(new Extension\NodeExtension())
-            ->registerExtension(new Extension\CombinationExtension())
-            ->registerExtension(new Extension\FunctionExtension())
-            ->registerExtension(new Extension\PseudoClassExtension())
-            ->registerExtension(new Extension\AttributeMatchingExtension())
-        ;
-    }
-
-    /**
-     * @param string $element
-     *
-     * @return string
-     */
-    public static function getXpathLiteral($element)
-    {
-        if (false === strpos($element, "'")) {
-            return "'".$element."'";
-        }
-
-        if (false === strpos($element, '"')) {
-            return '"'.$element.'"';
-        }
-
-        $string = $element;
-        $parts = array();
-        while (true) {
-            if (false !== $pos = strpos($string, "'")) {
-                $parts[] = sprintf("'%s'", substr($string, 0, $pos));
-                $parts[] = "\"'\"";
-                $string = substr($string, $pos + 1);
-            } else {
-                $parts[] = "'$string'";
-                break;
-            }
-        }
-
-        return sprintf('concat(%s)', implode($parts, ', '));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function cssToXPath($cssExpr, $prefix = 'descendant-or-self::')
-    {
-        $selectors = $this->parseSelectors($cssExpr);
-
-        /** @var SelectorNode $selector */
-        foreach ($selectors as $index => $selector) {
-            if (null !== $selector->getPseudoElement()) {
-                throw new ExpressionErrorException('Pseudo-elements are not supported.');
-            }
-
-            $selectors[$index] = $this->selectorToXPath($selector, $prefix);
-        }
-
-        return implode(' | ', $selectors);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function selectorToXPath(SelectorNode $selector, $prefix = 'descendant-or-self::')
-    {
-        return ($prefix ?: '').$this->nodeToXPath($selector);
-    }
-
-    /**
-     * Registers an extension.
-     *
-     * @param Extension\ExtensionInterface $extension
-     *
-     * @return Translator
-     */
-    public function registerExtension(Extension\ExtensionInterface $extension)
-    {
-        $this->extensions[$extension->getName()] = $extension;
-
-        $this->nodeTranslators = array_merge($this->nodeTranslators, $extension->getNodeTranslators());
-        $this->combinationTranslators = array_merge($this->combinationTranslators, $extension->getCombinationTranslators());
-        $this->functionTranslators = array_merge($this->functionTranslators, $extension->getFunctionTranslators());
-        $this->pseudoClassTranslators = array_merge($this->pseudoClassTranslators, $extension->getPseudoClassTranslators());
-        $this->attributeMatchingTranslators = array_merge($this->attributeMatchingTranslators, $extension->getAttributeMatchingTranslators());
-
-        return $this;
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return Extension\ExtensionInterface
-     *
-     * @throws ExpressionErrorException
-     */
-    public function getExtension($name)
-    {
-        if (!isset($this->extensions[$name])) {
-            throw new ExpressionErrorException(sprintf('Extension "%s" not registered.', $name));
-        }
-
-        return $this->extensions[$name];
-    }
-
-    /**
-     * Registers a shortcut parser.
-     *
-     * @param ParserInterface $shortcut
-     *
-     * @return Translator
-     */
-    public function registerParserShortcut(ParserInterface $shortcut)
-    {
-        $this->shortcutParsers[] = $shortcut;
-
-        return $this;
-    }
-
-    /**
-     * @param NodeInterface $node
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function nodeToXPath(NodeInterface $node)
-    {
-        if (!isset($this->nodeTranslators[$node->getNodeName()])) {
-            throw new ExpressionErrorException(sprintf('Node "%s" not supported.', $node->getNodeName()));
-        }
-
-        return call_user_func($this->nodeTranslators[$node->getNodeName()], $node, $this);
-    }
-
-    /**
-     * @param string        $combiner
-     * @param NodeInterface $xpath
-     * @param NodeInterface $combinedXpath
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function addCombination($combiner, NodeInterface $xpath, NodeInterface $combinedXpath)
-    {
-        if (!isset($this->combinationTranslators[$combiner])) {
-            throw new ExpressionErrorException(sprintf('Combiner "%s" not supported.', $combiner));
-        }
-
-        return call_user_func($this->combinationTranslators[$combiner], $this->nodeToXPath($xpath), $this->nodeToXPath($combinedXpath));
-    }
-
-    /**
-     * @param XPathExpr    $xpath
-     * @param FunctionNode $function
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function addFunction(XPathExpr $xpath, FunctionNode $function)
-    {
-        if (!isset($this->functionTranslators[$function->getName()])) {
-            throw new ExpressionErrorException(sprintf('Function "%s" not supported.', $function->getName()));
-        }
-
-        return call_user_func($this->functionTranslators[$function->getName()], $xpath, $function);
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $pseudoClass
-     *
-     * @return XPathExpr
-     *
-     * @throws ExpressionErrorException
-     */
-    public function addPseudoClass(XPathExpr $xpath, $pseudoClass)
-    {
-        if (!isset($this->pseudoClassTranslators[$pseudoClass])) {
-            throw new ExpressionErrorException(sprintf('Pseudo-class "%s" not supported.', $pseudoClass));
-        }
-
-        return call_user_func($this->pseudoClassTranslators[$pseudoClass], $xpath);
-    }
-
-    /**
-     * @param XPathExpr $xpath
-     * @param string    $operator
-     * @param string    $attribute
-     * @param string    $value
-     *
-     * @throws ExpressionErrorException
-     *
-     * @return XPathExpr
-     */
-    public function addAttributeMatching(XPathExpr $xpath, $operator, $attribute, $value)
-    {
-        if (!isset($this->attributeMatchingTranslators[$operator])) {
-            throw new ExpressionErrorException(sprintf('Attribute matcher operator "%s" not supported.', $operator));
-        }
-
-        return call_user_func($this->attributeMatchingTranslators[$operator], $xpath, $attribute, $value);
-    }
-
-    /**
-     * @param string $css
-     *
-     * @return SelectorNode[]
-     */
-    private function parseSelectors($css)
-    {
-        foreach ($this->shortcutParsers as $shortcut) {
-            $tokens = $shortcut->parse($css);
-
-            if (!empty($tokens)) {
-                return $tokens;
-            }
-        }
-
-        return $this->mainParser->parse($css);
-    }
-}
diff --git a/core/vendor/symfony/css-selector/XPath/TranslatorInterface.php b/core/vendor/symfony/css-selector/XPath/TranslatorInterface.php
deleted file mode 100644
index 1d9d1c8..0000000
--- a/core/vendor/symfony/css-selector/XPath/TranslatorInterface.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath;
-
-use Symfony\Component\CssSelector\Node\SelectorNode;
-
-/**
- * XPath expression translator interface.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface TranslatorInterface
-{
-    /**
-     * Translates a CSS selector to an XPath expression.
-     *
-     * @param string $cssExpr
-     * @param string $prefix
-     *
-     * @return XPathExpr
-     */
-    public function cssToXPath($cssExpr, $prefix = 'descendant-or-self::');
-
-    /**
-     * Translates a parsed selector node to an XPath expression.
-     *
-     * @param SelectorNode $selector
-     * @param string       $prefix
-     *
-     * @return XPathExpr
-     */
-    public function selectorToXPath(SelectorNode $selector, $prefix = 'descendant-or-self::');
-}
diff --git a/core/vendor/symfony/css-selector/XPath/XPathExpr.php b/core/vendor/symfony/css-selector/XPath/XPathExpr.php
deleted file mode 100644
index c7ef97c..0000000
--- a/core/vendor/symfony/css-selector/XPath/XPathExpr.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\CssSelector\XPath;
-
-/**
- * XPath expression translator interface.
- *
- * This component is a port of the Python cssselect library,
- * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-class XPathExpr
-{
-    /**
-     * @var string
-     */
-    private $path;
-
-    /**
-     * @var string
-     */
-    private $element;
-
-    /**
-     * @var string
-     */
-    private $condition;
-
-    /**
-     * @param string $path
-     * @param string $element
-     * @param string $condition
-     * @param bool   $starPrefix
-     */
-    public function __construct($path = '', $element = '*', $condition = '', $starPrefix = false)
-    {
-        $this->path = $path;
-        $this->element = $element;
-        $this->condition = $condition;
-
-        if ($starPrefix) {
-            $this->addStarPrefix();
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function getElement()
-    {
-        return $this->element;
-    }
-
-    /**
-     * @param $condition
-     *
-     * @return XPathExpr
-     */
-    public function addCondition($condition)
-    {
-        $this->condition = $this->condition ? sprintf('%s and (%s)', $this->condition, $condition) : $condition;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getCondition()
-    {
-        return $this->condition;
-    }
-
-    /**
-     * @return XPathExpr
-     */
-    public function addNameTest()
-    {
-        if ('*' !== $this->element) {
-            $this->addCondition('name() = '.Translator::getXpathLiteral($this->element));
-            $this->element = '*';
-        }
-
-        return $this;
-    }
-
-    /**
-     * @return XPathExpr
-     */
-    public function addStarPrefix()
-    {
-        $this->path .= '*/';
-
-        return $this;
-    }
-
-    /**
-     * Joins another XPathExpr with a combiner.
-     *
-     * @param string    $combiner
-     * @param XPathExpr $expr
-     *
-     * @return XPathExpr
-     */
-    public function join($combiner, XPathExpr $expr)
-    {
-        $path = $this->__toString().$combiner;
-
-        if ('*/' !== $expr->path) {
-            $path .= $expr->path;
-        }
-
-        $this->path = $path;
-        $this->element = $expr->element;
-        $this->condition = $expr->condition;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        $path = $this->path.$this->element;
-        $condition = null === $this->condition || '' === $this->condition ? '' : '['.$this->condition.']';
-
-        return $path.$condition;
-    }
-}
diff --git a/core/vendor/symfony/css-selector/composer.json b/core/vendor/symfony/css-selector/composer.json
deleted file mode 100644
index c7aebf7..0000000
--- a/core/vendor/symfony/css-selector/composer.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-    "name": "symfony/css-selector",
-    "type": "library",
-    "description": "Symfony CssSelector Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Jean-François Simon",
-            "email": "jeanfrancois.simon@sensiolabs.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\CssSelector\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/css-selector/phpunit.xml.dist b/core/vendor/symfony/css-selector/phpunit.xml.dist
deleted file mode 100644
index 14a320c..0000000
--- a/core/vendor/symfony/css-selector/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony CssSelector Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/debug/.gitignore b/core/vendor/symfony/debug/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/debug/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/debug/CHANGELOG.md b/core/vendor/symfony/debug/CHANGELOG.md
deleted file mode 100644
index 31f0de9..0000000
--- a/core/vendor/symfony/debug/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-CHANGELOG
-=========
-
-2.7.0
------
-
-* added deprecations checking for parent interfaces/classes to DebugClassLoader
-* added ZTS support to symfony_debug extension
-* added symfony_debug_backtrace() to symfony_debug extension
-  to track the backtrace of fatal errors
-
-2.6.0
------
-
-* generalized ErrorHandler and ExceptionHandler,
-  with some new methods and others deprecated
-* enhanced error messages for uncaught exceptions
-
-2.5.0
------
-
-* added ExceptionHandler::setHandler()
-* added UndefinedMethodFatalErrorHandler
-* deprecated DummyException
-
-2.4.0
------
-
- * added a DebugClassLoader able to wrap any autoloader providing a findFile method
- * improved error messages for not found classes and functions
-
-2.3.0
------
-
- * added the component
diff --git a/core/vendor/symfony/debug/Debug.php b/core/vendor/symfony/debug/Debug.php
deleted file mode 100644
index 08b35f4..0000000
--- a/core/vendor/symfony/debug/Debug.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug;
-
-/**
- * Registers all the debug tools.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Debug
-{
-    private static $enabled = false;
-
-    /**
-     * Enables the debug tools.
-     *
-     * This method registers an error handler and an exception handler.
-     *
-     * If the Symfony ClassLoader component is available, a special
-     * class loader is also registered.
-     *
-     * @param int  $errorReportingLevel The level of error reporting you want
-     * @param bool $displayErrors       Whether to display errors (for development) or just log them (for production)
-     */
-    public static function enable($errorReportingLevel = null, $displayErrors = true)
-    {
-        if (static::$enabled) {
-            return;
-        }
-
-        static::$enabled = true;
-
-        if (null !== $errorReportingLevel) {
-            error_reporting($errorReportingLevel);
-        } else {
-            error_reporting(-1);
-        }
-
-        if ('cli' !== php_sapi_name()) {
-            ini_set('display_errors', 0);
-            ExceptionHandler::register();
-        } elseif ($displayErrors && (!ini_get('log_errors') || ini_get('error_log'))) {
-            // CLI - display errors only if they're not already logged to STDERR
-            ini_set('display_errors', 1);
-        }
-        $handler = ErrorHandler::register();
-        if (!$displayErrors) {
-            $handler->throwAt(0, true);
-        }
-
-        DebugClassLoader::enable();
-    }
-}
diff --git a/core/vendor/symfony/debug/DebugClassLoader.php b/core/vendor/symfony/debug/DebugClassLoader.php
deleted file mode 100644
index a2532d3..0000000
--- a/core/vendor/symfony/debug/DebugClassLoader.php
+++ /dev/null
@@ -1,258 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug;
-
-/**
- * Autoloader checking if the class is really defined in the file found.
- *
- * The ClassLoader will wrap all registered autoloaders
- * and will throw an exception if a file is found but does
- * not declare the class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Christophe Coevoet <stof@notk.org>
- * @author Nicolas Grekas <p@tchwork.com>
- *
- * @api
- */
-class DebugClassLoader
-{
-    private $classLoader;
-    private $isFinder;
-    private $wasFinder;
-    private static $caseCheck;
-    private static $deprecated = array();
-    private static $php7Reserved = array('int', 'float', 'bool', 'string', 'true', 'false', 'null');
-
-    /**
-     * Constructor.
-     *
-     * @param callable|object $classLoader Passing an object is @deprecated since version 2.5 and support for it will be removed in 3.0
-     *
-     * @api
-     */
-    public function __construct($classLoader)
-    {
-        $this->wasFinder = is_object($classLoader) && method_exists($classLoader, 'findFile');
-
-        if ($this->wasFinder) {
-            @trigger_error('The '.__METHOD__.' method will no longer support receiving an object into its $classLoader argument in 3.0.', E_USER_DEPRECATED);
-            $this->classLoader = array($classLoader, 'loadClass');
-            $this->isFinder = true;
-        } else {
-            $this->classLoader = $classLoader;
-            $this->isFinder = is_array($classLoader) && method_exists($classLoader[0], 'findFile');
-        }
-
-        if (!isset(self::$caseCheck)) {
-            self::$caseCheck = false !== stripos(PHP_OS, 'win') ? (false !== stripos(PHP_OS, 'darwin') ? 2 : 1) : 0;
-        }
-    }
-
-    /**
-     * Gets the wrapped class loader.
-     *
-     * @return callable|object A class loader. Since version 2.5, returning an object is @deprecated and support for it will be removed in 3.0
-     */
-    public function getClassLoader()
-    {
-        return $this->wasFinder ? $this->classLoader[0] : $this->classLoader;
-    }
-
-    /**
-     * Wraps all autoloaders.
-     */
-    public static function enable()
-    {
-        // Ensures we don't hit https://bugs.php.net/42098
-        class_exists('Symfony\Component\Debug\ErrorHandler');
-        class_exists('Psr\Log\LogLevel');
-
-        if (!is_array($functions = spl_autoload_functions())) {
-            return;
-        }
-
-        foreach ($functions as $function) {
-            spl_autoload_unregister($function);
-        }
-
-        foreach ($functions as $function) {
-            if (!is_array($function) || !$function[0] instanceof self) {
-                $function = array(new static($function), 'loadClass');
-            }
-
-            spl_autoload_register($function);
-        }
-    }
-
-    /**
-     * Disables the wrapping.
-     */
-    public static function disable()
-    {
-        if (!is_array($functions = spl_autoload_functions())) {
-            return;
-        }
-
-        foreach ($functions as $function) {
-            spl_autoload_unregister($function);
-        }
-
-        foreach ($functions as $function) {
-            if (is_array($function) && $function[0] instanceof self) {
-                $function = $function[0]->getClassLoader();
-            }
-
-            spl_autoload_register($function);
-        }
-    }
-
-    /**
-     * Finds a file by class name.
-     *
-     * @param string $class A class name to resolve to file
-     *
-     * @return string|null
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function findFile($class)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if ($this->wasFinder) {
-            return $this->classLoader[0]->findFile($class);
-        }
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param string $class The name of the class
-     *
-     * @return bool|null True, if loaded
-     *
-     * @throws \RuntimeException
-     */
-    public function loadClass($class)
-    {
-        ErrorHandler::stackErrors();
-
-        try {
-            if ($this->isFinder) {
-                if ($file = $this->classLoader[0]->findFile($class)) {
-                    require $file;
-                }
-            } else {
-                call_user_func($this->classLoader, $class);
-                $file = false;
-            }
-        } catch (\Exception $e) {
-            ErrorHandler::unstackErrors();
-
-            throw $e;
-        }
-
-        ErrorHandler::unstackErrors();
-
-        $exists = class_exists($class, false) || interface_exists($class, false) || (function_exists('trait_exists') && trait_exists($class, false));
-
-        if ('\\' === $class[0]) {
-            $class = substr($class, 1);
-        }
-
-        if ($exists) {
-            $refl = new \ReflectionClass($class);
-            $name = $refl->getName();
-
-            if ($name !== $class && 0 === strcasecmp($name, $class)) {
-                throw new \RuntimeException(sprintf('Case mismatch between loaded and declared class names: %s vs %s', $class, $name));
-            }
-
-            if (in_array(strtolower($refl->getShortName()), self::$php7Reserved)) {
-                @trigger_error(sprintf('%s uses a reserved class name (%s) that will break on PHP 7 and higher', $name, $refl->getShortName()), E_USER_DEPRECATED);
-            } elseif (preg_match('#\n \* @deprecated (.*?)\r?\n \*(?: @|/$)#s', $refl->getDocComment(), $notice)) {
-                self::$deprecated[$name] = preg_replace('#\s*\r?\n \* +#', ' ', $notice[1]);
-            } else {
-                if (2 > $len = 1 + (strpos($name, '\\', 1 + strpos($name, '\\')) ?: strpos($name, '_'))) {
-                    $len = 0;
-                    $ns = '';
-                } else {
-                    switch ($ns = substr($name, 0, $len)) {
-                        case 'Symfony\Bridge\\':
-                        case 'Symfony\Bundle\\':
-                        case 'Symfony\Component\\':
-                            $ns = 'Symfony\\';
-                            $len = strlen($ns);
-                            break;
-                    }
-                }
-                $parent = $refl->getParentClass();
-
-                if (!$parent || strncmp($ns, $parent->name, $len)) {
-                    if ($parent && isset(self::$deprecated[$parent->name]) && strncmp($ns, $parent->name, $len)) {
-                        @trigger_error(sprintf('The %s class extends %s that is deprecated %s', $name, $parent->name, self::$deprecated[$parent->name]), E_USER_DEPRECATED);
-                    }
-
-                    foreach ($refl->getInterfaceNames() as $interface) {
-                        if (isset(self::$deprecated[$interface]) && strncmp($ns, $interface, $len) && !($parent && $parent->implementsInterface($interface))) {
-                            @trigger_error(sprintf('The %s %s %s that is deprecated %s', $name, $refl->isInterface() ? 'interface extends' : 'class implements', $interface, self::$deprecated[$interface]), E_USER_DEPRECATED);
-                        }
-                    }
-                }
-            }
-        }
-
-        if ($file) {
-            if (!$exists) {
-                if (false !== strpos($class, '/')) {
-                    throw new \RuntimeException(sprintf('Trying to autoload a class with an invalid name "%s". Be careful that the namespace separator is "\" in PHP, not "/".', $class));
-                }
-
-                throw new \RuntimeException(sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file));
-            }
-            if (self::$caseCheck && preg_match('#([/\\\\][a-zA-Z_\x7F-\xFF][a-zA-Z0-9_\x7F-\xFF]*)+\.(php|hh)$#D', $file, $tail)) {
-                $tail = $tail[0];
-                $real = $refl->getFileName();
-
-                if (2 === self::$caseCheck) {
-                    // realpath() on MacOSX doesn't normalize the case of characters
-                    $cwd = getcwd();
-                    $basename = strrpos($real, '/');
-                    chdir(substr($real, 0, $basename));
-                    $basename = substr($real, $basename + 1);
-                    // glob() patterns are case-sensitive even if the underlying fs is not
-                    if (!in_array($basename, glob($basename.'*', GLOB_NOSORT), true)) {
-                        $real = getcwd().'/';
-                        $h = opendir('.');
-                        while (false !== $f = readdir($h)) {
-                            if (0 === strcasecmp($f, $basename)) {
-                                $real .= $f;
-                                break;
-                            }
-                        }
-                        closedir($h);
-                    }
-                    chdir($cwd);
-                }
-
-                if (0 === substr_compare($real, $tail, -strlen($tail), strlen($tail), true)
-                  && 0 !== substr_compare($real, $tail, -strlen($tail), strlen($tail), false)
-                ) {
-                    throw new \RuntimeException(sprintf('Case mismatch between class and source file names: %s vs %s', $class, $real));
-                }
-            }
-
-            return true;
-        }
-    }
-}
diff --git a/core/vendor/symfony/debug/ErrorHandler.php b/core/vendor/symfony/debug/ErrorHandler.php
deleted file mode 100644
index 2d8a916..0000000
--- a/core/vendor/symfony/debug/ErrorHandler.php
+++ /dev/null
@@ -1,741 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug;
-
-use Psr\Log\LogLevel;
-use Psr\Log\LoggerInterface;
-use Symfony\Component\Debug\Exception\ContextErrorException;
-use Symfony\Component\Debug\Exception\FatalErrorException;
-use Symfony\Component\Debug\Exception\FatalThrowableError;
-use Symfony\Component\Debug\Exception\OutOfMemoryException;
-use Symfony\Component\Debug\FatalErrorHandler\UndefinedFunctionFatalErrorHandler;
-use Symfony\Component\Debug\FatalErrorHandler\UndefinedMethodFatalErrorHandler;
-use Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler;
-use Symfony\Component\Debug\FatalErrorHandler\FatalErrorHandlerInterface;
-
-/**
- * A generic ErrorHandler for the PHP engine.
- *
- * Provides five bit fields that control how errors are handled:
- * - thrownErrors: errors thrown as \ErrorException
- * - loggedErrors: logged errors, when not @-silenced
- * - scopedErrors: errors thrown or logged with their local context
- * - tracedErrors: errors logged with their stack trace, only once for repeated errors
- * - screamedErrors: never @-silenced errors
- *
- * Each error level can be logged by a dedicated PSR-3 logger object.
- * Screaming only applies to logging.
- * Throwing takes precedence over logging.
- * Uncaught exceptions are logged as E_ERROR.
- * E_DEPRECATED and E_USER_DEPRECATED levels never throw.
- * E_RECOVERABLE_ERROR and E_USER_ERROR levels always throw.
- * Non catchable errors that can be detected at shutdown time are logged when the scream bit field allows so.
- * As errors have a performance cost, repeated errors are all logged, so that the developer
- * can see them and weight them as more important to fix than others of the same level.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ErrorHandler
-{
-    /**
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    const TYPE_DEPRECATION = -100;
-
-    private $levels = array(
-        E_DEPRECATED => 'Deprecated',
-        E_USER_DEPRECATED => 'User Deprecated',
-        E_NOTICE => 'Notice',
-        E_USER_NOTICE => 'User Notice',
-        E_STRICT => 'Runtime Notice',
-        E_WARNING => 'Warning',
-        E_USER_WARNING => 'User Warning',
-        E_COMPILE_WARNING => 'Compile Warning',
-        E_CORE_WARNING => 'Core Warning',
-        E_USER_ERROR => 'User Error',
-        E_RECOVERABLE_ERROR => 'Catchable Fatal Error',
-        E_COMPILE_ERROR => 'Compile Error',
-        E_PARSE => 'Parse Error',
-        E_ERROR => 'Error',
-        E_CORE_ERROR => 'Core Error',
-    );
-
-    private $loggers = array(
-        E_DEPRECATED => array(null, LogLevel::INFO),
-        E_USER_DEPRECATED => array(null, LogLevel::INFO),
-        E_NOTICE => array(null, LogLevel::WARNING),
-        E_USER_NOTICE => array(null, LogLevel::WARNING),
-        E_STRICT => array(null, LogLevel::WARNING),
-        E_WARNING => array(null, LogLevel::WARNING),
-        E_USER_WARNING => array(null, LogLevel::WARNING),
-        E_COMPILE_WARNING => array(null, LogLevel::WARNING),
-        E_CORE_WARNING => array(null, LogLevel::WARNING),
-        E_USER_ERROR => array(null, LogLevel::CRITICAL),
-        E_RECOVERABLE_ERROR => array(null, LogLevel::CRITICAL),
-        E_COMPILE_ERROR => array(null, LogLevel::CRITICAL),
-        E_PARSE => array(null, LogLevel::CRITICAL),
-        E_ERROR => array(null, LogLevel::CRITICAL),
-        E_CORE_ERROR => array(null, LogLevel::CRITICAL),
-    );
-
-    private $thrownErrors = 0x1FFF; // E_ALL - E_DEPRECATED - E_USER_DEPRECATED
-    private $scopedErrors = 0x1FFF; // E_ALL - E_DEPRECATED - E_USER_DEPRECATED
-    private $tracedErrors = 0x77FB; // E_ALL - E_STRICT - E_PARSE
-    private $screamedErrors = 0x55; // E_ERROR + E_CORE_ERROR + E_COMPILE_ERROR + E_PARSE
-    private $loggedErrors = 0;
-
-    private $loggedTraces = array();
-    private $isRecursive = 0;
-    private $exceptionHandler;
-
-    private static $reservedMemory;
-    private static $stackedErrors = array();
-    private static $stackedErrorLevels = array();
-
-    /**
-     * Same init value as thrownErrors.
-     *
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    private $displayErrors = 0x1FFF;
-
-    /**
-     * Registers the error handler.
-     *
-     * @param self|null|int $handler The handler to register, or @deprecated (since version 2.6, to be removed in 3.0) bit field of thrown levels
-     * @param bool          $replace Whether to replace or not any existing handler
-     *
-     * @return self The registered error handler
-     */
-    public static function register($handler = null, $replace = true)
-    {
-        if (null === self::$reservedMemory) {
-            self::$reservedMemory = str_repeat('x', 10240);
-            register_shutdown_function(__CLASS__.'::handleFatalError');
-        }
-
-        $levels = -1;
-
-        if ($handlerIsNew = !$handler instanceof self) {
-            // @deprecated polymorphism, to be removed in 3.0
-            if (null !== $handler) {
-                $levels = $replace ? $handler : 0;
-                $replace = true;
-            }
-            $handler = new static();
-        }
-
-        $prev = set_error_handler(array($handler, 'handleError'), $handler->thrownErrors | $handler->loggedErrors);
-
-        if ($handlerIsNew && is_array($prev) && $prev[0] instanceof self) {
-            $handler = $prev[0];
-            $replace = false;
-        }
-        if ($replace || !$prev) {
-            $handler->setExceptionHandler(set_exception_handler(array($handler, 'handleException')));
-        } else {
-            restore_error_handler();
-        }
-
-        $handler->throwAt($levels & $handler->thrownErrors, true);
-
-        return $handler;
-    }
-
-    /**
-     * Sets a logger to non assigned errors levels.
-     *
-     * @param LoggerInterface $logger  A PSR-3 logger to put as default for the given levels
-     * @param array|int       $levels  An array map of E_* to LogLevel::* or an integer bit field of E_* constants
-     * @param bool            $replace Whether to replace or not any existing logger
-     */
-    public function setDefaultLogger(LoggerInterface $logger, $levels = null, $replace = false)
-    {
-        $loggers = array();
-
-        if (is_array($levels)) {
-            foreach ($levels as $type => $logLevel) {
-                if (empty($this->loggers[$type][0]) || $replace) {
-                    $loggers[$type] = array($logger, $logLevel);
-                }
-            }
-        } else {
-            if (null === $levels) {
-                $levels = E_ALL | E_STRICT;
-            }
-            foreach ($this->loggers as $type => $log) {
-                if (($type & $levels) && (empty($log[0]) || $replace)) {
-                    $log[0] = $logger;
-                    $loggers[$type] = $log;
-                }
-            }
-        }
-
-        $this->setLoggers($loggers);
-    }
-
-    /**
-     * Sets a logger for each error level.
-     *
-     * @param array $loggers Error levels to [LoggerInterface|null, LogLevel::*] map
-     *
-     * @return array The previous map
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setLoggers(array $loggers)
-    {
-        $prevLogged = $this->loggedErrors;
-        $prev = $this->loggers;
-
-        foreach ($loggers as $type => $log) {
-            if (!isset($prev[$type])) {
-                throw new \InvalidArgumentException('Unknown error type: '.$type);
-            }
-            if (!is_array($log)) {
-                $log = array($log);
-            } elseif (!array_key_exists(0, $log)) {
-                throw new \InvalidArgumentException('No logger provided');
-            }
-            if (null === $log[0]) {
-                $this->loggedErrors &= ~$type;
-            } elseif ($log[0] instanceof LoggerInterface) {
-                $this->loggedErrors |= $type;
-            } else {
-                throw new \InvalidArgumentException('Invalid logger provided');
-            }
-            $this->loggers[$type] = $log + $prev[$type];
-        }
-        $this->reRegister($prevLogged | $this->thrownErrors);
-
-        return $prev;
-    }
-
-    /**
-     * Sets a user exception handler.
-     *
-     * @param callable $handler A handler that will be called on Exception
-     *
-     * @return callable|null The previous exception handler
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setExceptionHandler($handler)
-    {
-        if (null !== $handler && !is_callable($handler)) {
-            throw new \LogicException('The exception handler must be a valid PHP callable.');
-        }
-        $prev = $this->exceptionHandler;
-        $this->exceptionHandler = $handler;
-
-        return $prev;
-    }
-
-    /**
-     * Sets the PHP error levels that throw an exception when a PHP error occurs.
-     *
-     * @param int  $levels  A bit field of E_* constants for thrown errors
-     * @param bool $replace Replace or amend the previous value
-     *
-     * @return int The previous value
-     */
-    public function throwAt($levels, $replace = false)
-    {
-        $prev = $this->thrownErrors;
-        $this->thrownErrors = ($levels | E_RECOVERABLE_ERROR | E_USER_ERROR) & ~E_USER_DEPRECATED & ~E_DEPRECATED;
-        if (!$replace) {
-            $this->thrownErrors |= $prev;
-        }
-        $this->reRegister($prev | $this->loggedErrors);
-
-        // $this->displayErrors is @deprecated since version 2.6
-        $this->displayErrors = $this->thrownErrors;
-
-        return $prev;
-    }
-
-    /**
-     * Sets the PHP error levels for which local variables are preserved.
-     *
-     * @param int  $levels  A bit field of E_* constants for scoped errors
-     * @param bool $replace Replace or amend the previous value
-     *
-     * @return int The previous value
-     */
-    public function scopeAt($levels, $replace = false)
-    {
-        $prev = $this->scopedErrors;
-        $this->scopedErrors = (int) $levels;
-        if (!$replace) {
-            $this->scopedErrors |= $prev;
-        }
-
-        return $prev;
-    }
-
-    /**
-     * Sets the PHP error levels for which the stack trace is preserved.
-     *
-     * @param int  $levels  A bit field of E_* constants for traced errors
-     * @param bool $replace Replace or amend the previous value
-     *
-     * @return int The previous value
-     */
-    public function traceAt($levels, $replace = false)
-    {
-        $prev = $this->tracedErrors;
-        $this->tracedErrors = (int) $levels;
-        if (!$replace) {
-            $this->tracedErrors |= $prev;
-        }
-
-        return $prev;
-    }
-
-    /**
-     * Sets the error levels where the @-operator is ignored.
-     *
-     * @param int  $levels  A bit field of E_* constants for screamed errors
-     * @param bool $replace Replace or amend the previous value
-     *
-     * @return int The previous value
-     */
-    public function screamAt($levels, $replace = false)
-    {
-        $prev = $this->screamedErrors;
-        $this->screamedErrors = (int) $levels;
-        if (!$replace) {
-            $this->screamedErrors |= $prev;
-        }
-
-        return $prev;
-    }
-
-    /**
-     * Re-registers as a PHP error handler if levels changed.
-     */
-    private function reRegister($prev)
-    {
-        if ($prev !== $this->thrownErrors | $this->loggedErrors) {
-            $handler = set_error_handler('var_dump', 0);
-            $handler = is_array($handler) ? $handler[0] : null;
-            restore_error_handler();
-            if ($handler === $this) {
-                restore_error_handler();
-                set_error_handler(array($this, 'handleError'), $this->thrownErrors | $this->loggedErrors);
-            }
-        }
-    }
-
-    /**
-     * Handles errors by filtering then logging them according to the configured bit fields.
-     *
-     * @param int    $type    One of the E_* constants
-     * @param string $file
-     * @param int    $line
-     * @param array  $context
-     *
-     * @return bool Returns false when no handling happens so that the PHP engine can handle the error itself.
-     *
-     * @throws \ErrorException When $this->thrownErrors requests so
-     *
-     * @internal
-     */
-    public function handleError($type, $message, $file, $line, array $context, array $backtrace = null)
-    {
-        $level = error_reporting() | E_RECOVERABLE_ERROR | E_USER_ERROR;
-        $log = $this->loggedErrors & $type;
-        $throw = $this->thrownErrors & $type & $level;
-        $type &= $level | $this->screamedErrors;
-
-        if (!$type || (!$log && !$throw)) {
-            return $type && $log;
-        }
-
-        if (PHP_VERSION_ID < 50400 && isset($context['GLOBALS']) && ($this->scopedErrors & $type)) {
-            $e = $context;                  // Whatever the signature of the method,
-            unset($e['GLOBALS'], $context); // $context is always a reference in 5.3
-            $context = $e;
-        }
-
-        if (null !== $backtrace && $type & E_ERROR) {
-            // E_ERROR fatal errors are triggered on HHVM when
-            // hhvm.error_handling.call_user_handler_on_fatals=1
-            // which is the way to get their backtrace.
-            $this->handleFatalError(compact('type', 'message', 'file', 'line', 'backtrace'));
-
-            return true;
-        }
-
-        if ($throw) {
-            if (($this->scopedErrors & $type) && class_exists('Symfony\Component\Debug\Exception\ContextErrorException')) {
-                // Checking for class existence is a work around for https://bugs.php.net/42098
-                $throw = new ContextErrorException($this->levels[$type].': '.$message, 0, $type, $file, $line, $context);
-            } else {
-                $throw = new \ErrorException($this->levels[$type].': '.$message, 0, $type, $file, $line);
-            }
-
-            if (PHP_VERSION_ID <= 50407 && (PHP_VERSION_ID >= 50400 || PHP_VERSION_ID <= 50317)) {
-                // Exceptions thrown from error handlers are sometimes not caught by the exception
-                // handler and shutdown handlers are bypassed before 5.4.8/5.3.18.
-                // We temporarily re-enable display_errors to prevent any blank page related to this bug.
-
-                $throw->errorHandlerCanary = new ErrorHandlerCanary();
-            }
-
-            throw $throw;
-        }
-
-        // For duplicated errors, log the trace only once
-        $e = md5("{$type}/{$line}/{$file}\x00{$message}", true);
-        $trace = true;
-
-        if (!($this->tracedErrors & $type) || isset($this->loggedTraces[$e])) {
-            $trace = false;
-        } else {
-            $this->loggedTraces[$e] = 1;
-        }
-
-        $e = compact('type', 'file', 'line', 'level');
-
-        if ($type & $level) {
-            if ($this->scopedErrors & $type) {
-                $e['scope_vars'] = $context;
-                if ($trace) {
-                    $e['stack'] = $backtrace ?: debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT);
-                }
-            } elseif ($trace) {
-                if (null === $backtrace) {
-                    $e['stack'] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
-                } else {
-                    foreach ($backtrace as &$frame) {
-                        unset($frame['args'], $frame);
-                    }
-                    $e['stack'] = $backtrace;
-                }
-            }
-        }
-
-        if ($this->isRecursive) {
-            $log = 0;
-        } elseif (self::$stackedErrorLevels) {
-            self::$stackedErrors[] = array($this->loggers[$type][0], ($type & $level) ? $this->loggers[$type][1] : LogLevel::DEBUG, $message, $e);
-        } else {
-            try {
-                $this->isRecursive = true;
-                $this->loggers[$type][0]->log(($type & $level) ? $this->loggers[$type][1] : LogLevel::DEBUG, $message, $e);
-                $this->isRecursive = false;
-            } catch (\Exception $e) {
-                $this->isRecursive = false;
-
-                throw $e;
-            }
-        }
-
-        return $type && $log;
-    }
-
-    /**
-     * Handles an exception by logging then forwarding it to an other handler.
-     *
-     * @param \Exception|\Throwable $exception An exception to handle
-     * @param array                 $error     An array as returned by error_get_last()
-     *
-     * @internal
-     */
-    public function handleException($exception, array $error = null)
-    {
-        if (!$exception instanceof \Exception) {
-            $exception = new FatalThrowableError($exception);
-        }
-        $type = $exception instanceof FatalErrorException ? $exception->getSeverity() : E_ERROR;
-
-        if ($this->loggedErrors & $type) {
-            $e = array(
-                'type' => $type,
-                'file' => $exception->getFile(),
-                'line' => $exception->getLine(),
-                'level' => error_reporting(),
-                'stack' => $exception->getTrace(),
-            );
-            if ($exception instanceof FatalErrorException) {
-                if ($exception instanceof FatalThrowableError) {
-                    $error = array(
-                        'type' => $type,
-                        'message' => $message = $exception->getMessage(),
-                        'file' => $e['file'],
-                        'line' => $e['line'],
-                    );
-                } else {
-                    $message = 'Fatal '.$exception->getMessage();
-                }
-            } elseif ($exception instanceof \ErrorException) {
-                $message = 'Uncaught '.$exception->getMessage();
-                if ($exception instanceof ContextErrorException) {
-                    $e['context'] = $exception->getContext();
-                }
-            } else {
-                $message = 'Uncaught Exception: '.$exception->getMessage();
-            }
-            if ($this->loggedErrors & $e['type']) {
-                $this->loggers[$e['type']][0]->log($this->loggers[$e['type']][1], $message, $e);
-            }
-        }
-        if ($exception instanceof FatalErrorException && !$exception instanceof OutOfMemoryException && $error) {
-            foreach ($this->getFatalErrorHandlers() as $handler) {
-                if ($e = $handler->handleError($error, $exception)) {
-                    $exception = $e;
-                    break;
-                }
-            }
-        }
-        if (empty($this->exceptionHandler)) {
-            throw $exception; // Give back $exception to the native handler
-        }
-        try {
-            call_user_func($this->exceptionHandler, $exception);
-        } catch (\Exception $handlerException) {
-        } catch (\Throwable $handlerException) {
-        }
-        if (isset($handlerException)) {
-            $this->exceptionHandler = null;
-            $this->handleException($handlerException);
-        }
-    }
-
-    /**
-     * Shutdown registered function for handling PHP fatal errors.
-     *
-     * @param array $error An array as returned by error_get_last()
-     *
-     * @internal
-     */
-    public static function handleFatalError(array $error = null)
-    {
-        if (null === self::$reservedMemory) {
-            return;
-        }
-
-        self::$reservedMemory = null;
-
-        $handler = set_error_handler('var_dump', 0);
-        $handler = is_array($handler) ? $handler[0] : null;
-        restore_error_handler();
-
-        if (!$handler instanceof self) {
-            return;
-        }
-
-        if (null === $error) {
-            $error = error_get_last();
-        }
-
-        try {
-            while (self::$stackedErrorLevels) {
-                static::unstackErrors();
-            }
-        } catch (\Exception $exception) {
-            // Handled below
-        }
-
-        if ($error && $error['type'] &= E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR) {
-            // Let's not throw anymore but keep logging
-            $handler->throwAt(0, true);
-            $trace = isset($error['backtrace']) ? $error['backtrace'] : null;
-
-            if (0 === strpos($error['message'], 'Allowed memory') || 0 === strpos($error['message'], 'Out of memory')) {
-                $exception = new OutOfMemoryException($handler->levels[$error['type']].': '.$error['message'], 0, $error['type'], $error['file'], $error['line'], 2, false, $trace);
-            } else {
-                $exception = new FatalErrorException($handler->levels[$error['type']].': '.$error['message'], 0, $error['type'], $error['file'], $error['line'], 2, true, $trace);
-            }
-        } elseif (!isset($exception)) {
-            return;
-        }
-
-        try {
-            $handler->handleException($exception, $error);
-        } catch (FatalErrorException $e) {
-            // Ignore this re-throw
-        }
-    }
-
-    /**
-     * Configures the error handler for delayed handling.
-     * Ensures also that non-catchable fatal errors are never silenced.
-     *
-     * As shown by http://bugs.php.net/42098 and http://bugs.php.net/60724
-     * PHP has a compile stage where it behaves unusually. To workaround it,
-     * we plug an error handler that only stacks errors for later.
-     *
-     * The most important feature of this is to prevent
-     * autoloading until unstackErrors() is called.
-     */
-    public static function stackErrors()
-    {
-        self::$stackedErrorLevels[] = error_reporting(error_reporting() | E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR);
-    }
-
-    /**
-     * Unstacks stacked errors and forwards to the logger.
-     */
-    public static function unstackErrors()
-    {
-        $level = array_pop(self::$stackedErrorLevels);
-
-        if (null !== $level) {
-            $e = error_reporting($level);
-            if ($e !== ($level | E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR)) {
-                // If the user changed the error level, do not overwrite it
-                error_reporting($e);
-            }
-        }
-
-        if (empty(self::$stackedErrorLevels)) {
-            $errors = self::$stackedErrors;
-            self::$stackedErrors = array();
-
-            foreach ($errors as $e) {
-                $e[0]->log($e[1], $e[2], $e[3]);
-            }
-        }
-    }
-
-    /**
-     * Gets the fatal error handlers.
-     *
-     * Override this method if you want to define more fatal error handlers.
-     *
-     * @return FatalErrorHandlerInterface[] An array of FatalErrorHandlerInterface
-     */
-    protected function getFatalErrorHandlers()
-    {
-        return array(
-            new UndefinedFunctionFatalErrorHandler(),
-            new UndefinedMethodFatalErrorHandler(),
-            new ClassNotFoundFatalErrorHandler(),
-        );
-    }
-
-    /**
-     * Sets the level at which the conversion to Exception is done.
-     *
-     * @param int|null $level The level (null to use the error_reporting() value and 0 to disable)
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use throwAt() instead.
-     */
-    public function setLevel($level)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the throwAt() method instead.', E_USER_DEPRECATED);
-
-        $level = null === $level ? error_reporting() : $level;
-        $this->throwAt($level, true);
-    }
-
-    /**
-     * Sets the display_errors flag value.
-     *
-     * @param int $displayErrors The display_errors flag value
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use throwAt() instead.
-     */
-    public function setDisplayErrors($displayErrors)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the throwAt() method instead.', E_USER_DEPRECATED);
-
-        if ($displayErrors) {
-            $this->throwAt($this->displayErrors, true);
-        } else {
-            $displayErrors = $this->displayErrors;
-            $this->throwAt(0, true);
-            $this->displayErrors = $displayErrors;
-        }
-    }
-
-    /**
-     * Sets a logger for the given channel.
-     *
-     * @param LoggerInterface $logger  A logger interface
-     * @param string          $channel The channel associated with the logger (deprecation, emergency or scream)
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use setLoggers() or setDefaultLogger() instead.
-     */
-    public static function setLogger(LoggerInterface $logger, $channel = 'deprecation')
-    {
-        @trigger_error('The '.__METHOD__.' static method is deprecated since version 2.6 and will be removed in 3.0. Use the setLoggers() or setDefaultLogger() methods instead.', E_USER_DEPRECATED);
-
-        $handler = set_error_handler('var_dump', 0);
-        $handler = is_array($handler) ? $handler[0] : null;
-        restore_error_handler();
-        if (!$handler instanceof self) {
-            return;
-        }
-        if ('deprecation' === $channel) {
-            $handler->setDefaultLogger($logger, E_DEPRECATED | E_USER_DEPRECATED, true);
-            $handler->screamAt(E_DEPRECATED | E_USER_DEPRECATED);
-        } elseif ('scream' === $channel) {
-            $handler->setDefaultLogger($logger, E_ALL | E_STRICT, false);
-            $handler->screamAt(E_ALL | E_STRICT);
-        } elseif ('emergency' === $channel) {
-            $handler->setDefaultLogger($logger, E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR, true);
-            $handler->screamAt(E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR);
-        }
-    }
-
-    /**
-     * @deprecated since version 2.6, to be removed in 3.0. Use handleError() instead.
-     */
-    public function handle($level, $message, $file = 'unknown', $line = 0, $context = array())
-    {
-        $this->handleError(E_USER_DEPRECATED, 'The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the handleError() method instead.', __FILE__, __LINE__, array());
-
-        return $this->handleError($level, $message, $file, $line, (array) $context);
-    }
-
-    /**
-     * Handles PHP fatal errors.
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use handleFatalError() instead.
-     */
-    public function handleFatal()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the handleFatalError() method instead.', E_USER_DEPRECATED);
-
-        static::handleFatalError();
-    }
-}
-
-/**
- * Private class used to work around https://bugs.php.net/54275.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- *
- * @internal
- */
-class ErrorHandlerCanary
-{
-    private static $displayErrors = null;
-
-    public function __construct()
-    {
-        if (null === self::$displayErrors) {
-            self::$displayErrors = ini_set('display_errors', 1);
-        }
-    }
-
-    public function __destruct()
-    {
-        if (null !== self::$displayErrors) {
-            ini_set('display_errors', self::$displayErrors);
-            self::$displayErrors = null;
-        }
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/ClassNotFoundException.php b/core/vendor/symfony/debug/Exception/ClassNotFoundException.php
deleted file mode 100644
index b91bf46..0000000
--- a/core/vendor/symfony/debug/Exception/ClassNotFoundException.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-/**
- * Class (or Trait or Interface) Not Found Exception.
- *
- * @author Konstanton Myakshin <koc-dp@yandex.ru>
- */
-class ClassNotFoundException extends FatalErrorException
-{
-    public function __construct($message, \ErrorException $previous)
-    {
-        parent::__construct(
-            $message,
-            $previous->getCode(),
-            $previous->getSeverity(),
-            $previous->getFile(),
-            $previous->getLine(),
-            $previous->getPrevious()
-        );
-        $this->setTrace($previous->getTrace());
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/ContextErrorException.php b/core/vendor/symfony/debug/Exception/ContextErrorException.php
deleted file mode 100644
index 54f0198..0000000
--- a/core/vendor/symfony/debug/Exception/ContextErrorException.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-/**
- * Error Exception with Variable Context.
- *
- * @author Christian Sciberras <uuf6429@gmail.com>
- */
-class ContextErrorException extends \ErrorException
-{
-    private $context = array();
-
-    public function __construct($message, $code, $severity, $filename, $lineno, $context = array())
-    {
-        parent::__construct($message, $code, $severity, $filename, $lineno);
-        $this->context = $context;
-    }
-
-    /**
-     * @return array Array of variables that existed when the exception occurred
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/DummyException.php b/core/vendor/symfony/debug/Exception/DummyException.php
deleted file mode 100644
index c836f87..0000000
--- a/core/vendor/symfony/debug/Exception/DummyException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-@trigger_error('The '.__NAMESPACE__.'\DummyException class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-class DummyException extends \ErrorException
-{
-}
diff --git a/core/vendor/symfony/debug/Exception/FatalErrorException.php b/core/vendor/symfony/debug/Exception/FatalErrorException.php
deleted file mode 100644
index db2fb43..0000000
--- a/core/vendor/symfony/debug/Exception/FatalErrorException.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * Fatal Error Exception.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Konstanton Myakshin <koc-dp@yandex.ru>
- * @author Nicolas Grekas <p@tchwork.com>
- *
- * @deprecated Deprecated in 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
- */
-class FatalErrorException extends \ErrorException
-{
-}
-
-namespace Symfony\Component\Debug\Exception;
-
-use Symfony\Component\HttpKernel\Exception\FatalErrorException as LegacyFatalErrorException;
-
-/**
- * Fatal Error Exception.
- *
- * @author Konstanton Myakshin <koc-dp@yandex.ru>
- */
-class FatalErrorException extends LegacyFatalErrorException
-{
-    public function __construct($message, $code, $severity, $filename, $lineno, $traceOffset = null, $traceArgs = true, array $trace = null)
-    {
-        parent::__construct($message, $code, $severity, $filename, $lineno);
-
-        if (null !== $trace) {
-            if (!$traceArgs) {
-                foreach ($trace as &$frame) {
-                    unset($frame['args'], $frame['this'], $frame);
-                }
-            }
-
-            $this->setTrace($trace);
-        } elseif (null !== $traceOffset) {
-            if (function_exists('xdebug_get_function_stack')) {
-                $trace = xdebug_get_function_stack();
-                if (0 < $traceOffset) {
-                    array_splice($trace, -$traceOffset);
-                }
-
-                foreach ($trace as &$frame) {
-                    if (!isset($frame['type'])) {
-                        // XDebug pre 2.1.1 doesn't currently set the call type key http://bugs.xdebug.org/view.php?id=695
-                        if (isset($frame['class'])) {
-                            $frame['type'] = '::';
-                        }
-                    } elseif ('dynamic' === $frame['type']) {
-                        $frame['type'] = '->';
-                    } elseif ('static' === $frame['type']) {
-                        $frame['type'] = '::';
-                    }
-
-                    // XDebug also has a different name for the parameters array
-                    if (!$traceArgs) {
-                        unset($frame['params'], $frame['args']);
-                    } elseif (isset($frame['params']) && !isset($frame['args'])) {
-                        $frame['args'] = $frame['params'];
-                        unset($frame['params']);
-                    }
-                }
-
-                unset($frame);
-                $trace = array_reverse($trace);
-            } elseif (function_exists('symfony_debug_backtrace')) {
-                $trace = symfony_debug_backtrace();
-                if (0 < $traceOffset) {
-                    array_splice($trace, 0, $traceOffset);
-                }
-            } else {
-                $trace = array();
-            }
-
-            $this->setTrace($trace);
-        }
-    }
-
-    protected function setTrace($trace)
-    {
-        $traceReflector = new \ReflectionProperty('Exception', 'trace');
-        $traceReflector->setAccessible(true);
-        $traceReflector->setValue($this, $trace);
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/FatalThrowableError.php b/core/vendor/symfony/debug/Exception/FatalThrowableError.php
deleted file mode 100644
index 6ff5ecd..0000000
--- a/core/vendor/symfony/debug/Exception/FatalThrowableError.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-/**
- * Fatal Throwable Error.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class FatalThrowableError extends FatalErrorException
-{
-    public function __construct(\Throwable $e)
-    {
-        if ($e instanceof \ParseError) {
-            $message = 'Parse error: '.$e->getMessage();
-            $severity = E_PARSE;
-        } elseif ($e instanceof \TypeError) {
-            $message = 'Type error: '.$e->getMessage();
-            $severity = E_RECOVERABLE_ERROR;
-        } else {
-            $message = 'Fatal error: '.$e->getMessage();
-            $severity = E_ERROR;
-        }
-
-        \ErrorException::__construct(
-            $message,
-            $e->getCode(),
-            $severity,
-            $e->getFile(),
-            $e->getLine()
-        );
-
-        $this->setTrace($e->getTrace());
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/FlattenException.php b/core/vendor/symfony/debug/Exception/FlattenException.php
deleted file mode 100644
index d8d5c5b..0000000
--- a/core/vendor/symfony/debug/Exception/FlattenException.php
+++ /dev/null
@@ -1,292 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-use Symfony\Component\Debug\Exception\FlattenException as DebugFlattenException;
-
-/**
- * FlattenException wraps a PHP Exception to be able to serialize it.
- *
- * Basically, this class removes all objects from the trace.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated Deprecated in 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
- */
-class FlattenException
-{
-    private $handler;
-
-    public static function __callStatic($method, $args)
-    {
-        if (!method_exists('Symfony\Component\Debug\Exception\FlattenException', $method)) {
-            throw new \BadMethodCallException(sprintf('Call to undefined method %s::%s()', get_called_class(), $method));
-        }
-
-        return call_user_func_array(array('Symfony\Component\Debug\Exception\FlattenException', $method), $args);
-    }
-
-    public function __call($method, $args)
-    {
-        if (!isset($this->handler)) {
-            $this->handler = new DebugFlattenException();
-        }
-
-        if (!method_exists($this->handler, $method)) {
-            throw new \BadMethodCallException(sprintf('Call to undefined method %s::%s()', get_class($this), $method));
-        }
-
-        return call_user_func_array(array($this->handler, $method), $args);
-    }
-}
-
-namespace Symfony\Component\Debug\Exception;
-
-use Symfony\Component\HttpKernel\Exception\FlattenException as LegacyFlattenException;
-use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
-
-/**
- * FlattenException wraps a PHP Exception to be able to serialize it.
- *
- * Basically, this class removes all objects from the trace.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class FlattenException extends LegacyFlattenException
-{
-    private $message;
-    private $code;
-    private $previous;
-    private $trace;
-    private $class;
-    private $statusCode;
-    private $headers;
-    private $file;
-    private $line;
-
-    public static function create(\Exception $exception, $statusCode = null, array $headers = array())
-    {
-        $e = new static();
-        $e->setMessage($exception->getMessage());
-        $e->setCode($exception->getCode());
-
-        if ($exception instanceof HttpExceptionInterface) {
-            $statusCode = $exception->getStatusCode();
-            $headers = array_merge($headers, $exception->getHeaders());
-        }
-
-        if (null === $statusCode) {
-            $statusCode = 500;
-        }
-
-        $e->setStatusCode($statusCode);
-        $e->setHeaders($headers);
-        $e->setTraceFromException($exception);
-        $e->setClass(get_class($exception));
-        $e->setFile($exception->getFile());
-        $e->setLine($exception->getLine());
-        if ($exception->getPrevious()) {
-            $e->setPrevious(static::create($exception->getPrevious()));
-        }
-
-        return $e;
-    }
-
-    public function toArray()
-    {
-        $exceptions = array();
-        foreach (array_merge(array($this), $this->getAllPrevious()) as $exception) {
-            $exceptions[] = array(
-                'message' => $exception->getMessage(),
-                'class' => $exception->getClass(),
-                'trace' => $exception->getTrace(),
-            );
-        }
-
-        return $exceptions;
-    }
-
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    public function setStatusCode($code)
-    {
-        $this->statusCode = $code;
-    }
-
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    public function setHeaders(array $headers)
-    {
-        $this->headers = $headers;
-    }
-
-    public function getClass()
-    {
-        return $this->class;
-    }
-
-    public function setClass($class)
-    {
-        $this->class = $class;
-    }
-
-    public function getFile()
-    {
-        return $this->file;
-    }
-
-    public function setFile($file)
-    {
-        $this->file = $file;
-    }
-
-    public function getLine()
-    {
-        return $this->line;
-    }
-
-    public function setLine($line)
-    {
-        $this->line = $line;
-    }
-
-    public function getMessage()
-    {
-        return $this->message;
-    }
-
-    public function setMessage($message)
-    {
-        $this->message = $message;
-    }
-
-    public function getCode()
-    {
-        return $this->code;
-    }
-
-    public function setCode($code)
-    {
-        $this->code = $code;
-    }
-
-    public function getPrevious()
-    {
-        return $this->previous;
-    }
-
-    public function setPrevious(FlattenException $previous)
-    {
-        $this->previous = $previous;
-    }
-
-    public function getAllPrevious()
-    {
-        $exceptions = array();
-        $e = $this;
-        while ($e = $e->getPrevious()) {
-            $exceptions[] = $e;
-        }
-
-        return $exceptions;
-    }
-
-    public function getTrace()
-    {
-        return $this->trace;
-    }
-
-    public function setTraceFromException(\Exception $exception)
-    {
-        $this->setTrace($exception->getTrace(), $exception->getFile(), $exception->getLine());
-    }
-
-    public function setTrace($trace, $file, $line)
-    {
-        $this->trace = array();
-        $this->trace[] = array(
-            'namespace' => '',
-            'short_class' => '',
-            'class' => '',
-            'type' => '',
-            'function' => '',
-            'file' => $file,
-            'line' => $line,
-            'args' => array(),
-        );
-        foreach ($trace as $entry) {
-            $class = '';
-            $namespace = '';
-            if (isset($entry['class'])) {
-                $parts = explode('\\', $entry['class']);
-                $class = array_pop($parts);
-                $namespace = implode('\\', $parts);
-            }
-
-            $this->trace[] = array(
-                'namespace' => $namespace,
-                'short_class' => $class,
-                'class' => isset($entry['class']) ? $entry['class'] : '',
-                'type' => isset($entry['type']) ? $entry['type'] : '',
-                'function' => isset($entry['function']) ? $entry['function'] : null,
-                'file' => isset($entry['file']) ? $entry['file'] : null,
-                'line' => isset($entry['line']) ? $entry['line'] : null,
-                'args' => isset($entry['args']) ? $this->flattenArgs($entry['args']) : array(),
-            );
-        }
-    }
-
-    private function flattenArgs($args, $level = 0, &$count = 0)
-    {
-        $result = array();
-        foreach ($args as $key => $value) {
-            if (++$count > 1e4) {
-                return array('array', '*SKIPPED over 10000 entries*');
-            }
-            if (is_object($value)) {
-                $result[$key] = array('object', get_class($value));
-            } elseif (is_array($value)) {
-                if ($level > 10) {
-                    $result[$key] = array('array', '*DEEP NESTED ARRAY*');
-                } else {
-                    $result[$key] = array('array', $this->flattenArgs($value, $level + 1, $count));
-                }
-            } elseif (null === $value) {
-                $result[$key] = array('null', null);
-            } elseif (is_bool($value)) {
-                $result[$key] = array('boolean', $value);
-            } elseif (is_resource($value)) {
-                $result[$key] = array('resource', get_resource_type($value));
-            } elseif ($value instanceof \__PHP_Incomplete_Class) {
-                // Special case of object, is_object will return false
-                $result[$key] = array('incomplete-object', $this->getClassNameFromIncomplete($value));
-            } else {
-                $result[$key] = array('string', (string) $value);
-            }
-        }
-
-        return $result;
-    }
-
-    private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value)
-    {
-        $array = new \ArrayObject($value);
-
-        return $array['__PHP_Incomplete_Class_Name'];
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/OutOfMemoryException.php b/core/vendor/symfony/debug/Exception/OutOfMemoryException.php
deleted file mode 100644
index fec1979..0000000
--- a/core/vendor/symfony/debug/Exception/OutOfMemoryException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-/**
- * Out of memory exception.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class OutOfMemoryException extends FatalErrorException
-{
-}
diff --git a/core/vendor/symfony/debug/Exception/UndefinedFunctionException.php b/core/vendor/symfony/debug/Exception/UndefinedFunctionException.php
deleted file mode 100644
index a66ae2a..0000000
--- a/core/vendor/symfony/debug/Exception/UndefinedFunctionException.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-/**
- * Undefined Function Exception.
- *
- * @author Konstanton Myakshin <koc-dp@yandex.ru>
- */
-class UndefinedFunctionException extends FatalErrorException
-{
-    public function __construct($message, \ErrorException $previous)
-    {
-        parent::__construct(
-            $message,
-            $previous->getCode(),
-            $previous->getSeverity(),
-            $previous->getFile(),
-            $previous->getLine(),
-            $previous->getPrevious()
-        );
-        $this->setTrace($previous->getTrace());
-    }
-}
diff --git a/core/vendor/symfony/debug/Exception/UndefinedMethodException.php b/core/vendor/symfony/debug/Exception/UndefinedMethodException.php
deleted file mode 100644
index 350dc31..0000000
--- a/core/vendor/symfony/debug/Exception/UndefinedMethodException.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Exception;
-
-/**
- * Undefined Method Exception.
- *
- * @author Grégoire Pineau <lyrixx@lyrixx.info>
- */
-class UndefinedMethodException extends FatalErrorException
-{
-    public function __construct($message, \ErrorException $previous)
-    {
-        parent::__construct(
-            $message,
-            $previous->getCode(),
-            $previous->getSeverity(),
-            $previous->getFile(),
-            $previous->getLine(),
-            $previous->getPrevious()
-        );
-        $this->setTrace($previous->getTrace());
-    }
-}
diff --git a/core/vendor/symfony/debug/ExceptionHandler.php b/core/vendor/symfony/debug/ExceptionHandler.php
deleted file mode 100644
index c883f15..0000000
--- a/core/vendor/symfony/debug/ExceptionHandler.php
+++ /dev/null
@@ -1,469 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug;
-
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Debug\Exception\FlattenException;
-use Symfony\Component\Debug\Exception\OutOfMemoryException;
-
-/**
- * ExceptionHandler converts an exception to a Response object.
- *
- * It is mostly useful in debug mode to replace the default PHP/XDebug
- * output with something prettier and more useful.
- *
- * As this class is mainly used during Kernel boot, where nothing is yet
- * available, the Response content is always HTML.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ExceptionHandler
-{
-    private $debug;
-    private $charset;
-    private $handler;
-    private $caughtBuffer;
-    private $caughtLength;
-    private $fileLinkFormat;
-
-    public function __construct($debug = true, $charset = null, $fileLinkFormat = null)
-    {
-        if (false !== strpos($charset, '%') xor false === strpos($fileLinkFormat, '%')) {
-            // Swap $charset and $fileLinkFormat for BC reasons
-            $pivot = $fileLinkFormat;
-            $fileLinkFormat = $charset;
-            $charset = $pivot;
-        }
-        $this->debug = $debug;
-        $this->charset = $charset ?: ini_get('default_charset') ?: 'UTF-8';
-        $this->fileLinkFormat = $fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
-    }
-
-    /**
-     * Registers the exception handler.
-     *
-     * @param bool        $debug          Enable/disable debug mode, where the stack trace is displayed
-     * @param string|null $charset        The charset used by exception messages
-     * @param string|null $fileLinkFormat The IDE link template
-     *
-     * @return ExceptionHandler The registered exception handler
-     */
-    public static function register($debug = true, $charset = null, $fileLinkFormat = null)
-    {
-        $handler = new static($debug, $charset, $fileLinkFormat);
-
-        $prev = set_exception_handler(array($handler, 'handle'));
-        if (is_array($prev) && $prev[0] instanceof ErrorHandler) {
-            restore_exception_handler();
-            $prev[0]->setExceptionHandler(array($handler, 'handle'));
-        }
-
-        return $handler;
-    }
-
-    /**
-     * Sets a user exception handler.
-     *
-     * @param callable $handler An handler that will be called on Exception
-     *
-     * @return callable|null The previous exception handler if any
-     */
-    public function setHandler($handler)
-    {
-        if (null !== $handler && !is_callable($handler)) {
-            throw new \LogicException('The exception handler must be a valid PHP callable.');
-        }
-        $old = $this->handler;
-        $this->handler = $handler;
-
-        return $old;
-    }
-
-    /**
-     * Sets the format for links to source files.
-     *
-     * @param string $format The format for links to source files
-     *
-     * @return string The previous file link format.
-     */
-    public function setFileLinkFormat($format)
-    {
-        $old = $this->fileLinkFormat;
-        $this->fileLinkFormat = $format;
-
-        return $old;
-    }
-
-    /**
-     * Sends a response for the given Exception.
-     *
-     * To be as fail-safe as possible, the exception is first handled
-     * by our simple exception handler, then by the user exception handler.
-     * The latter takes precedence and any output from the former is cancelled,
-     * if and only if nothing bad happens in this handling path.
-     */
-    public function handle(\Exception $exception)
-    {
-        if (null === $this->handler || $exception instanceof OutOfMemoryException) {
-            $this->failSafeHandle($exception);
-
-            return;
-        }
-
-        $caughtLength = $this->caughtLength = 0;
-
-        ob_start(array($this, 'catchOutput'));
-        $this->failSafeHandle($exception);
-        while (null === $this->caughtBuffer && ob_end_flush()) {
-            // Empty loop, everything is in the condition
-        }
-        if (isset($this->caughtBuffer[0])) {
-            ob_start(array($this, 'cleanOutput'));
-            echo $this->caughtBuffer;
-            $caughtLength = ob_get_length();
-        }
-        $this->caughtBuffer = null;
-
-        try {
-            call_user_func($this->handler, $exception);
-            $this->caughtLength = $caughtLength;
-        } catch (\Exception $e) {
-            if (!$caughtLength) {
-                // All handlers failed. Let PHP handle that now.
-                throw $exception;
-            }
-        }
-    }
-
-    /**
-     * Sends a response for the given Exception.
-     *
-     * If you have the Symfony HttpFoundation component installed,
-     * this method will use it to create and send the response. If not,
-     * it will fallback to plain PHP functions.
-     *
-     * @param \Exception $exception An \Exception instance
-     *
-     * @see sendPhpResponse()
-     * @see createResponse()
-     */
-    private function failSafeHandle(\Exception $exception)
-    {
-        if (class_exists('Symfony\Component\HttpFoundation\Response', false)) {
-            $response = $this->createResponse($exception);
-            $response->sendHeaders();
-            $response->sendContent();
-        } else {
-            $this->sendPhpResponse($exception);
-        }
-    }
-
-    /**
-     * Sends the error associated with the given Exception as a plain PHP response.
-     *
-     * This method uses plain PHP functions like header() and echo to output
-     * the response.
-     *
-     * @param \Exception|FlattenException $exception An \Exception instance
-     */
-    public function sendPhpResponse($exception)
-    {
-        if (!$exception instanceof FlattenException) {
-            $exception = FlattenException::create($exception);
-        }
-
-        if (!headers_sent()) {
-            header(sprintf('HTTP/1.0 %s', $exception->getStatusCode()));
-            foreach ($exception->getHeaders() as $name => $value) {
-                header($name.': '.$value, false);
-            }
-            header('Content-Type: text/html; charset='.$this->charset);
-        }
-
-        echo $this->decorate($this->getContent($exception), $this->getStylesheet($exception));
-    }
-
-    /**
-     * Creates the error Response associated with the given Exception.
-     *
-     * @param \Exception|FlattenException $exception An \Exception instance
-     *
-     * @return Response A Response instance
-     */
-    public function createResponse($exception)
-    {
-        if (!$exception instanceof FlattenException) {
-            $exception = FlattenException::create($exception);
-        }
-
-        return Response::create($this->decorate($this->getContent($exception), $this->getStylesheet($exception)), $exception->getStatusCode(), $exception->getHeaders())->setCharset($this->charset);
-    }
-
-    /**
-     * Gets the HTML content associated with the given exception.
-     *
-     * @param FlattenException $exception A FlattenException instance
-     *
-     * @return string The content as a string
-     */
-    public function getContent(FlattenException $exception)
-    {
-        switch ($exception->getStatusCode()) {
-            case 404:
-                $title = 'Sorry, the page you are looking for could not be found.';
-                break;
-            default:
-                $title = 'Whoops, looks like something went wrong.';
-        }
-
-        $content = '';
-        if ($this->debug) {
-            try {
-                $count = count($exception->getAllPrevious());
-                $total = $count + 1;
-                foreach ($exception->toArray() as $position => $e) {
-                    $ind = $count - $position + 1;
-                    $class = $this->formatClass($e['class']);
-                    $message = nl2br($this->escapeHtml($e['message']));
-                    $content .= sprintf(<<<EOF
-                        <h2 class="block_exception clear_fix">
-                            <span class="exception_counter">%d/%d</span>
-                            <span class="exception_title">%s%s:</span>
-                            <span class="exception_message">%s</span>
-                        </h2>
-                        <div class="block">
-                            <ol class="traces list_exception">
-
-EOF
-                        , $ind, $total, $class, $this->formatPath($e['trace'][0]['file'], $e['trace'][0]['line']), $message);
-                    foreach ($e['trace'] as $trace) {
-                        $content .= '       <li>';
-                        if ($trace['function']) {
-                            $content .= sprintf('at %s%s%s(%s)', $this->formatClass($trace['class']), $trace['type'], $trace['function'], $this->formatArgs($trace['args']));
-                        }
-                        if (isset($trace['file']) && isset($trace['line'])) {
-                            $content .= $this->formatPath($trace['file'], $trace['line']);
-                        }
-                        $content .= "</li>\n";
-                    }
-
-                    $content .= "    </ol>\n</div>\n";
-                }
-            } catch (\Exception $e) {
-                // something nasty happened and we cannot throw an exception anymore
-                if ($this->debug) {
-                    $title = sprintf('Exception thrown when handling an exception (%s: %s)', get_class($e), $this->escapeHtml($e->getMessage()));
-                } else {
-                    $title = 'Whoops, looks like something went wrong.';
-                }
-            }
-        }
-
-        return <<<EOF
-            <div id="sf-resetcontent" class="sf-reset">
-                <h1>$title</h1>
-                $content
-            </div>
-EOF;
-    }
-
-    /**
-     * Gets the stylesheet associated with the given exception.
-     *
-     * @param FlattenException $exception A FlattenException instance
-     *
-     * @return string The stylesheet as a string
-     */
-    public function getStylesheet(FlattenException $exception)
-    {
-        return <<<EOF
-            .sf-reset { font: 11px Verdana, Arial, sans-serif; color: #333 }
-            .sf-reset .clear { clear:both; height:0; font-size:0; line-height:0; }
-            .sf-reset .clear_fix:after { display:block; height:0; clear:both; visibility:hidden; }
-            .sf-reset .clear_fix { display:inline-block; }
-            .sf-reset * html .clear_fix { height:1%; }
-            .sf-reset .clear_fix { display:block; }
-            .sf-reset, .sf-reset .block { margin: auto }
-            .sf-reset abbr { border-bottom: 1px dotted #000; cursor: help; }
-            .sf-reset p { font-size:14px; line-height:20px; color:#868686; padding-bottom:20px }
-            .sf-reset strong { font-weight:bold; }
-            .sf-reset a { color:#6c6159; cursor: default; }
-            .sf-reset a img { border:none; }
-            .sf-reset a:hover { text-decoration:underline; }
-            .sf-reset em { font-style:italic; }
-            .sf-reset h1, .sf-reset h2 { font: 20px Georgia, "Times New Roman", Times, serif }
-            .sf-reset .exception_counter { background-color: #fff; color: #333; padding: 6px; float: left; margin-right: 10px; float: left; display: block; }
-            .sf-reset .exception_title { margin-left: 3em; margin-bottom: 0.7em; display: block; }
-            .sf-reset .exception_message { margin-left: 3em; display: block; }
-            .sf-reset .traces li { font-size:12px; padding: 2px 4px; list-style-type:decimal; margin-left:20px; }
-            .sf-reset .block { background-color:#FFFFFF; padding:10px 28px; margin-bottom:20px;
-                -webkit-border-bottom-right-radius: 16px;
-                -webkit-border-bottom-left-radius: 16px;
-                -moz-border-radius-bottomright: 16px;
-                -moz-border-radius-bottomleft: 16px;
-                border-bottom-right-radius: 16px;
-                border-bottom-left-radius: 16px;
-                border-bottom:1px solid #ccc;
-                border-right:1px solid #ccc;
-                border-left:1px solid #ccc;
-            }
-            .sf-reset .block_exception { background-color:#ddd; color: #333; padding:20px;
-                -webkit-border-top-left-radius: 16px;
-                -webkit-border-top-right-radius: 16px;
-                -moz-border-radius-topleft: 16px;
-                -moz-border-radius-topright: 16px;
-                border-top-left-radius: 16px;
-                border-top-right-radius: 16px;
-                border-top:1px solid #ccc;
-                border-right:1px solid #ccc;
-                border-left:1px solid #ccc;
-                overflow: hidden;
-                word-wrap: break-word;
-            }
-            .sf-reset a { background:none; color:#868686; text-decoration:none; }
-            .sf-reset a:hover { background:none; color:#313131; text-decoration:underline; }
-            .sf-reset ol { padding: 10px 0; }
-            .sf-reset h1 { background-color:#FFFFFF; padding: 15px 28px; margin-bottom: 20px;
-                -webkit-border-radius: 10px;
-                -moz-border-radius: 10px;
-                border-radius: 10px;
-                border: 1px solid #ccc;
-            }
-EOF;
-    }
-
-    private function decorate($content, $css)
-    {
-        return <<<EOF
-<!DOCTYPE html>
-<html>
-    <head>
-        <meta charset="{$this->charset}" />
-        <meta name="robots" content="noindex,nofollow" />
-        <style>
-            /* Copyright (c) 2010, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html */
-            html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
-
-            html { background: #eee; padding: 10px }
-            img { border: 0; }
-            #sf-resetcontent { width:970px; margin:0 auto; }
-            $css
-        </style>
-    </head>
-    <body>
-        $content
-    </body>
-</html>
-EOF;
-    }
-
-    private function formatClass($class)
-    {
-        $parts = explode('\\', $class);
-
-        return sprintf('<abbr title="%s">%s</abbr>', $class, array_pop($parts));
-    }
-
-    private function formatPath($path, $line)
-    {
-        $path = $this->escapeHtml($path);
-        $file = preg_match('#[^/\\\\]*$#', $path, $file) ? $file[0] : $path;
-
-        if ($linkFormat = $this->fileLinkFormat) {
-            $link = strtr($this->escapeHtml($linkFormat), array('%f' => $path, '%l' => (int) $line));
-
-            return sprintf(' in <a href="%s" title="Go to source">%s line %d</a>', $link, $file, $line);
-        }
-
-        return sprintf(' in <a title="%s line %3$d" ondblclick="var f=this.innerHTML;this.innerHTML=this.title;this.title=f;">%s line %d</a>', $path, $file, $line);
-    }
-
-    /**
-     * Formats an array as a string.
-     *
-     * @param array $args The argument array
-     *
-     * @return string
-     */
-    private function formatArgs(array $args)
-    {
-        $result = array();
-        foreach ($args as $key => $item) {
-            if ('object' === $item[0]) {
-                $formattedValue = sprintf('<em>object</em>(%s)', $this->formatClass($item[1]));
-            } elseif ('array' === $item[0]) {
-                $formattedValue = sprintf('<em>array</em>(%s)', is_array($item[1]) ? $this->formatArgs($item[1]) : $item[1]);
-            } elseif ('string' === $item[0]) {
-                $formattedValue = sprintf("'%s'", $this->escapeHtml($item[1]));
-            } elseif ('null' === $item[0]) {
-                $formattedValue = '<em>null</em>';
-            } elseif ('boolean' === $item[0]) {
-                $formattedValue = '<em>'.strtolower(var_export($item[1], true)).'</em>';
-            } elseif ('resource' === $item[0]) {
-                $formattedValue = '<em>resource</em>';
-            } else {
-                $formattedValue = str_replace("\n", '', var_export($this->escapeHtml((string) $item[1]), true));
-            }
-
-            $result[] = is_int($key) ? $formattedValue : sprintf("'%s' => %s", $key, $formattedValue);
-        }
-
-        return implode(', ', $result);
-    }
-
-    /**
-     * Returns an UTF-8 and HTML encoded string.
-     *
-     * @deprecated since version 2.7, to be removed in 3.0.
-     */
-    protected static function utf8Htmlize($str)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.7 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        return htmlspecialchars($str, ENT_QUOTES | (PHP_VERSION_ID >= 50400 ? ENT_SUBSTITUTE : 0), 'UTF-8');
-    }
-
-    /**
-     * HTML-encodes a string.
-     */
-    private function escapeHtml($str)
-    {
-        return htmlspecialchars($str, ENT_QUOTES | (PHP_VERSION_ID >= 50400 ? ENT_SUBSTITUTE : 0), $this->charset);
-    }
-
-    /**
-     * @internal
-     */
-    public function catchOutput($buffer)
-    {
-        $this->caughtBuffer = $buffer;
-
-        return '';
-    }
-
-    /**
-     * @internal
-     */
-    public function cleanOutput($buffer)
-    {
-        if ($this->caughtLength) {
-            // use substr_replace() instead of substr() for mbstring overloading resistance
-            $cleanBuffer = substr_replace($buffer, '', 0, $this->caughtLength);
-            if (isset($cleanBuffer[0])) {
-                $buffer = $cleanBuffer;
-            }
-        }
-
-        return $buffer;
-    }
-}
diff --git a/core/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php b/core/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
deleted file mode 100644
index abfe90d..0000000
--- a/core/vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\FatalErrorHandler;
-
-use Symfony\Component\Debug\Exception\ClassNotFoundException;
-use Symfony\Component\Debug\Exception\FatalErrorException;
-use Symfony\Component\Debug\DebugClassLoader;
-use Composer\Autoload\ClassLoader as ComposerClassLoader;
-use Symfony\Component\ClassLoader\ClassLoader as SymfonyClassLoader;
-use Symfony\Component\ClassLoader\UniversalClassLoader as SymfonyUniversalClassLoader;
-
-/**
- * ErrorHandler for classes that do not exist.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ClassNotFoundFatalErrorHandler implements FatalErrorHandlerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function handleError(array $error, FatalErrorException $exception)
-    {
-        $messageLen = strlen($error['message']);
-        $notFoundSuffix = '\' not found';
-        $notFoundSuffixLen = strlen($notFoundSuffix);
-        if ($notFoundSuffixLen > $messageLen) {
-            return;
-        }
-
-        if (0 !== substr_compare($error['message'], $notFoundSuffix, -$notFoundSuffixLen)) {
-            return;
-        }
-
-        foreach (array('class', 'interface', 'trait') as $typeName) {
-            $prefix = ucfirst($typeName).' \'';
-            $prefixLen = strlen($prefix);
-            if (0 !== strpos($error['message'], $prefix)) {
-                continue;
-            }
-
-            $fullyQualifiedClassName = substr($error['message'], $prefixLen, -$notFoundSuffixLen);
-            if (false !== $namespaceSeparatorIndex = strrpos($fullyQualifiedClassName, '\\')) {
-                $className = substr($fullyQualifiedClassName, $namespaceSeparatorIndex + 1);
-                $namespacePrefix = substr($fullyQualifiedClassName, 0, $namespaceSeparatorIndex);
-                $message = sprintf('Attempted to load %s "%s" from namespace "%s".', $typeName, $className, $namespacePrefix);
-                $tail = ' for another namespace?';
-            } else {
-                $className = $fullyQualifiedClassName;
-                $message = sprintf('Attempted to load %s "%s" from the global namespace.', $typeName, $className);
-                $tail = '?';
-            }
-
-            if ($candidates = $this->getClassCandidates($className)) {
-                $tail = array_pop($candidates).'"?';
-                if ($candidates) {
-                    $tail = ' for e.g. "'.implode('", "', $candidates).'" or "'.$tail;
-                } else {
-                    $tail = ' for "'.$tail;
-                }
-            }
-            $message .= "\nDid you forget a \"use\" statement".$tail;
-
-            return new ClassNotFoundException($message, $exception);
-        }
-    }
-
-    /**
-     * Tries to guess the full namespace for a given class name.
-     *
-     * By default, it looks for PSR-0 and PSR-4 classes registered via a Symfony or a Composer
-     * autoloader (that should cover all common cases).
-     *
-     * @param string $class A class name (without its namespace)
-     *
-     * @return array An array of possible fully qualified class names
-     */
-    private function getClassCandidates($class)
-    {
-        if (!is_array($functions = spl_autoload_functions())) {
-            return array();
-        }
-
-        // find Symfony and Composer autoloaders
-        $classes = array();
-
-        foreach ($functions as $function) {
-            if (!is_array($function)) {
-                continue;
-            }
-            // get class loaders wrapped by DebugClassLoader
-            if ($function[0] instanceof DebugClassLoader) {
-                $function = $function[0]->getClassLoader();
-
-                // @deprecated since version 2.5. Returning an object from DebugClassLoader::getClassLoader() is deprecated.
-                if (is_object($function)) {
-                    $function = array($function);
-                }
-
-                if (!is_array($function)) {
-                    continue;
-                }
-            }
-
-            if ($function[0] instanceof ComposerClassLoader || $function[0] instanceof SymfonyClassLoader || $function[0] instanceof SymfonyUniversalClassLoader) {
-                foreach ($function[0]->getPrefixes() as $prefix => $paths) {
-                    foreach ($paths as $path) {
-                        $classes = array_merge($classes, $this->findClassInPath($path, $class, $prefix));
-                    }
-                }
-            }
-            if ($function[0] instanceof ComposerClassLoader) {
-                foreach ($function[0]->getPrefixesPsr4() as $prefix => $paths) {
-                    foreach ($paths as $path) {
-                        $classes = array_merge($classes, $this->findClassInPath($path, $class, $prefix));
-                    }
-                }
-            }
-        }
-
-        return array_unique($classes);
-    }
-
-    /**
-     * @param string $path
-     * @param string $class
-     * @param string $prefix
-     *
-     * @return array
-     */
-    private function findClassInPath($path, $class, $prefix)
-    {
-        if (!$path = realpath($path.'/'.strtr($prefix, '\\_', '//')) ?: realpath($path.'/'.dirname(strtr($prefix, '\\_', '//'))) ?: realpath($path)) {
-            return array();
-        }
-
-        $classes = array();
-        $filename = $class.'.php';
-        foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
-            if ($filename == $file->getFileName() && $class = $this->convertFileToClass($path, $file->getPathName(), $prefix)) {
-                $classes[] = $class;
-            }
-        }
-
-        return $classes;
-    }
-
-    /**
-     * @param string $path
-     * @param string $file
-     * @param string $prefix
-     *
-     * @return string|null
-     */
-    private function convertFileToClass($path, $file, $prefix)
-    {
-        $candidates = array(
-            // namespaced class
-            $namespacedClass = str_replace(array($path.DIRECTORY_SEPARATOR, '.php', '/'), array('', '', '\\'), $file),
-            // namespaced class (with target dir)
-            $prefix.$namespacedClass,
-            // namespaced class (with target dir and separator)
-            $prefix.'\\'.$namespacedClass,
-            // PEAR class
-            str_replace('\\', '_', $namespacedClass),
-            // PEAR class (with target dir)
-            str_replace('\\', '_', $prefix.$namespacedClass),
-            // PEAR class (with target dir and separator)
-            str_replace('\\', '_', $prefix.'\\'.$namespacedClass),
-        );
-
-        if ($prefix) {
-            $candidates = array_filter($candidates, function ($candidate) use ($prefix) {return 0 === strpos($candidate, $prefix);});
-        }
-
-        // We cannot use the autoloader here as most of them use require; but if the class
-        // is not found, the new autoloader call will require the file again leading to a
-        // "cannot redeclare class" error.
-        foreach ($candidates as $candidate) {
-            if ($this->classExists($candidate)) {
-                return $candidate;
-            }
-        }
-
-        require_once $file;
-
-        foreach ($candidates as $candidate) {
-            if ($this->classExists($candidate)) {
-                return $candidate;
-            }
-        }
-    }
-
-    /**
-     * @param string $class
-     *
-     * @return bool
-     */
-    private function classExists($class)
-    {
-        return class_exists($class, false) || interface_exists($class, false) || (function_exists('trait_exists') && trait_exists($class, false));
-    }
-}
diff --git a/core/vendor/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php b/core/vendor/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php
deleted file mode 100644
index 6b87eb3..0000000
--- a/core/vendor/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\FatalErrorHandler;
-
-use Symfony\Component\Debug\Exception\FatalErrorException;
-
-/**
- * Attempts to convert fatal errors to exceptions.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface FatalErrorHandlerInterface
-{
-    /**
-     * Attempts to convert an error into an exception.
-     *
-     * @param array               $error     An array as returned by error_get_last()
-     * @param FatalErrorException $exception A FatalErrorException instance
-     *
-     * @return FatalErrorException|null A FatalErrorException instance if the class is able to convert the error, null otherwise
-     */
-    public function handleError(array $error, FatalErrorException $exception);
-}
diff --git a/core/vendor/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php b/core/vendor/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php
deleted file mode 100644
index c6f391a..0000000
--- a/core/vendor/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\FatalErrorHandler;
-
-use Symfony\Component\Debug\Exception\UndefinedFunctionException;
-use Symfony\Component\Debug\Exception\FatalErrorException;
-
-/**
- * ErrorHandler for undefined functions.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class UndefinedFunctionFatalErrorHandler implements FatalErrorHandlerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function handleError(array $error, FatalErrorException $exception)
-    {
-        $messageLen = strlen($error['message']);
-        $notFoundSuffix = '()';
-        $notFoundSuffixLen = strlen($notFoundSuffix);
-        if ($notFoundSuffixLen > $messageLen) {
-            return;
-        }
-
-        if (0 !== substr_compare($error['message'], $notFoundSuffix, -$notFoundSuffixLen)) {
-            return;
-        }
-
-        $prefix = 'Call to undefined function ';
-        $prefixLen = strlen($prefix);
-        if (0 !== strpos($error['message'], $prefix)) {
-            return;
-        }
-
-        $fullyQualifiedFunctionName = substr($error['message'], $prefixLen, -$notFoundSuffixLen);
-        if (false !== $namespaceSeparatorIndex = strrpos($fullyQualifiedFunctionName, '\\')) {
-            $functionName = substr($fullyQualifiedFunctionName, $namespaceSeparatorIndex + 1);
-            $namespacePrefix = substr($fullyQualifiedFunctionName, 0, $namespaceSeparatorIndex);
-            $message = sprintf('Attempted to call function "%s" from namespace "%s".', $functionName, $namespacePrefix);
-        } else {
-            $functionName = $fullyQualifiedFunctionName;
-            $message = sprintf('Attempted to call function "%s" from the global namespace.', $functionName);
-        }
-
-        $candidates = array();
-        foreach (get_defined_functions() as $type => $definedFunctionNames) {
-            foreach ($definedFunctionNames as $definedFunctionName) {
-                if (false !== $namespaceSeparatorIndex = strrpos($definedFunctionName, '\\')) {
-                    $definedFunctionNameBasename = substr($definedFunctionName, $namespaceSeparatorIndex + 1);
-                } else {
-                    $definedFunctionNameBasename = $definedFunctionName;
-                }
-
-                if ($definedFunctionNameBasename === $functionName) {
-                    $candidates[] = '\\'.$definedFunctionName;
-                }
-            }
-        }
-
-        if ($candidates) {
-            sort($candidates);
-            $last = array_pop($candidates).'"?';
-            if ($candidates) {
-                $candidates = 'e.g. "'.implode('", "', $candidates).'" or "'.$last;
-            } else {
-                $candidates = '"'.$last;
-            }
-            $message .= "\nDid you mean to call ".$candidates;
-        }
-
-        return new UndefinedFunctionException($message, $exception);
-    }
-}
diff --git a/core/vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php b/core/vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php
deleted file mode 100644
index f734d6b..0000000
--- a/core/vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\FatalErrorHandler;
-
-use Symfony\Component\Debug\Exception\FatalErrorException;
-use Symfony\Component\Debug\Exception\UndefinedMethodException;
-
-/**
- * ErrorHandler for undefined methods.
- *
- * @author Grégoire Pineau <lyrixx@lyrixx.info>
- */
-class UndefinedMethodFatalErrorHandler implements FatalErrorHandlerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function handleError(array $error, FatalErrorException $exception)
-    {
-        preg_match('/^Call to undefined method (.*)::(.*)\(\)$/', $error['message'], $matches);
-        if (!$matches) {
-            return;
-        }
-
-        $className = $matches[1];
-        $methodName = $matches[2];
-
-        $message = sprintf('Attempted to call an undefined method named "%s" of class "%s".', $methodName, $className);
-
-        $candidates = array();
-        foreach (get_class_methods($className) as $definedMethodName) {
-            $lev = levenshtein($methodName, $definedMethodName);
-            if ($lev <= strlen($methodName) / 3 || false !== strpos($definedMethodName, $methodName)) {
-                $candidates[] = $definedMethodName;
-            }
-        }
-
-        if ($candidates) {
-            sort($candidates);
-            $last = array_pop($candidates).'"?';
-            if ($candidates) {
-                $candidates = 'e.g. "'.implode('", "', $candidates).'" or "'.$last;
-            } else {
-                $candidates = '"'.$last;
-            }
-            $message .= "\nDid you mean to call ".$candidates;
-        }
-
-        return new UndefinedMethodException($message, $exception);
-    }
-}
diff --git a/core/vendor/symfony/debug/LICENSE b/core/vendor/symfony/debug/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/debug/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/debug/README.md b/core/vendor/symfony/debug/README.md
deleted file mode 100644
index 67e6d6c..0000000
--- a/core/vendor/symfony/debug/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-Debug Component
-===============
-
-Debug provides tools to make debugging easier.
-
-Enabling all debug tools is as easy as calling the `enable()` method on the
-main `Debug` class:
-
-```php
-use Symfony\Component\Debug\Debug;
-
-Debug::enable();
-```
-
-You can also use the tools individually:
-
-```php
-use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\Debug\ExceptionHandler;
-
-if ('cli' !== php_sapi_name()) {
-    ini_set('display_errors', 0);
-    ExceptionHandler::register();
-} elseif (!ini_get('log_errors') || ini_get('error_log')) {
-    ini_set('display_errors', 1);
-}
-ErrorHandler::register();
-```
-
-Note that the `Debug::enable()` call also registers the debug class loader
-from the Symfony ClassLoader component when available.
-
-This component can optionally take advantage of the features of the HttpKernel
-and HttpFoundation components.
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Debug/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/debug/Resources/ext/README.md b/core/vendor/symfony/debug/Resources/ext/README.md
deleted file mode 100644
index 0672ef8..0000000
--- a/core/vendor/symfony/debug/Resources/ext/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-Symfony Debug Extension
-=======================
-
-This extension publishes several functions to help building powerful debugging tools.
-
-symfony_zval_info()
--------------------
-
-- exposes zval_hash/refcounts, allowing e.g. efficient exploration of arbitrary structures in PHP,
-- does work with references, preventing memory copying.
-
-Its behavior is about the same as:
-
-```php
-<?php
-
-function symfony_zval_info($key, $array, $options = 0)
-{
-
-    // $options is currently not used, but could be in future version.
-
-    if (!array_key_exists($key, $array)) {
-        return null;
-    }
-
-    $info = array(
-        'type' => gettype($array[$key]),
-        'zval_hash' => /* hashed memory address of $array[$key] */,
-        'zval_refcount' => /* internal zval refcount of $array[$key] */,
-        'zval_isref' => /* is_ref status of $array[$key] */,
-    );
-
-    switch ($info['type']) {
-        case 'object':
-            $info += array(
-                'object_class' => get_class($array[$key]),
-                'object_refcount' => /* internal object refcount of $array[$key] */,
-                'object_hash' => spl_object_hash($array[$key]),
-                'object_handle' => /* internal object handle $array[$key] */,
-            );
-            break;
-
-        case 'resource':
-            $info += array(
-                'resource_handle' => (int) $array[$key],
-                'resource_type' => get_resource_type($array[$key]),
-                'resource_refcount' => /* internal resource refcount of $array[$key] */,
-            );
-            break;
-
-        case 'array':
-            $info += array(
-                'array_count' => count($array[$key]),
-            );
-            break;
-
-        case 'string':
-            $info += array(
-                'strlen' => strlen($array[$key]),
-            );
-            break;
-    }
-
-    return $info;
-}
-```
-
-symfony_debug_backtrace()
--------------------------
-
-This function works like debug_backtrace(), except that it can fetch the full backtrace in case of fatal errors:
-
-```php
-function foo() { fatal(); }
-function bar() { foo(); }
-
-function sd() { var_dump(symfony_debug_backtrace()); }
-
-register_shutdown_function('sd');
-
-bar();
-
-/* Will output
-Fatal error: Call to undefined function fatal() in foo.php on line 42
-array(3) {
-  [0]=>
-  array(2) {
-    ["function"]=>
-    string(2) "sd"
-    ["args"]=>
-    array(0) {
-    }
-  }
-  [1]=>
-  array(4) {
-    ["file"]=>
-    string(7) "foo.php"
-    ["line"]=>
-    int(1)
-    ["function"]=>
-    string(3) "foo"
-    ["args"]=>
-    array(0) {
-    }
-  }
-  [2]=>
-  array(4) {
-    ["file"]=>
-    string(102) "foo.php"
-    ["line"]=>
-    int(2)
-    ["function"]=>
-    string(3) "bar"
-    ["args"]=>
-    array(0) {
-    }
-  }
-}
-*/
-```
-
-Usage
------
-
-The extension is compatible with ZTS mode, and should be supported by PHP5.3, 5.4, 5.5 and 5.6.
-To enable the extension from source, run:
-
-```
-    phpize
-    ./configure
-    make
-    sudo make install
-```
diff --git a/core/vendor/symfony/debug/Resources/ext/config.m4 b/core/vendor/symfony/debug/Resources/ext/config.m4
deleted file mode 100644
index 3c56047..0000000
--- a/core/vendor/symfony/debug/Resources/ext/config.m4
+++ /dev/null
@@ -1,63 +0,0 @@
-dnl $Id$
-dnl config.m4 for extension symfony_debug
-
-dnl Comments in this file start with the string 'dnl'.
-dnl Remove where necessary. This file will not work
-dnl without editing.
-
-dnl If your extension references something external, use with:
-
-dnl PHP_ARG_WITH(symfony_debug, for symfony_debug support,
-dnl Make sure that the comment is aligned:
-dnl [  --with-symfony_debug             Include symfony_debug support])
-
-dnl Otherwise use enable:
-
-PHP_ARG_ENABLE(symfony_debug, whether to enable symfony_debug support,
-dnl Make sure that the comment is aligned:
-[  --enable-symfony_debug           Enable symfony_debug support])
-
-if test "$PHP_SYMFONY_DEBUG" != "no"; then
-  dnl Write more examples of tests here...
-
-  dnl # --with-symfony_debug -> check with-path
-  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
-  dnl SEARCH_FOR="/include/symfony_debug.h"  # you most likely want to change this
-  dnl if test -r $PHP_SYMFONY_DEBUG/$SEARCH_FOR; then # path given as parameter
-  dnl   SYMFONY_DEBUG_DIR=$PHP_SYMFONY_DEBUG
-  dnl else # search default path list
-  dnl   AC_MSG_CHECKING([for symfony_debug files in default path])
-  dnl   for i in $SEARCH_PATH ; do
-  dnl     if test -r $i/$SEARCH_FOR; then
-  dnl       SYMFONY_DEBUG_DIR=$i
-  dnl       AC_MSG_RESULT(found in $i)
-  dnl     fi
-  dnl   done
-  dnl fi
-  dnl
-  dnl if test -z "$SYMFONY_DEBUG_DIR"; then
-  dnl   AC_MSG_RESULT([not found])
-  dnl   AC_MSG_ERROR([Please reinstall the symfony_debug distribution])
-  dnl fi
-
-  dnl # --with-symfony_debug -> add include path
-  dnl PHP_ADD_INCLUDE($SYMFONY_DEBUG_DIR/include)
-
-  dnl # --with-symfony_debug -> check for lib and symbol presence
-  dnl LIBNAME=symfony_debug # you may want to change this
-  dnl LIBSYMBOL=symfony_debug # you most likely want to change this 
-
-  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
-  dnl [
-  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $SYMFONY_DEBUG_DIR/lib, SYMFONY_DEBUG_SHARED_LIBADD)
-  dnl   AC_DEFINE(HAVE_SYMFONY_DEBUGLIB,1,[ ])
-  dnl ],[
-  dnl   AC_MSG_ERROR([wrong symfony_debug lib version or lib not found])
-  dnl ],[
-  dnl   -L$SYMFONY_DEBUG_DIR/lib -lm
-  dnl ])
-  dnl
-  dnl PHP_SUBST(SYMFONY_DEBUG_SHARED_LIBADD)
-
-  PHP_NEW_EXTENSION(symfony_debug, symfony_debug.c, $ext_shared)
-fi
diff --git a/core/vendor/symfony/debug/Resources/ext/config.w32 b/core/vendor/symfony/debug/Resources/ext/config.w32
deleted file mode 100644
index 487e691..0000000
--- a/core/vendor/symfony/debug/Resources/ext/config.w32
+++ /dev/null
@@ -1,13 +0,0 @@
-// $Id$
-// vim:ft=javascript
-
-// If your extension references something external, use ARG_WITH
-// ARG_WITH("symfony_debug", "for symfony_debug support", "no");
-
-// Otherwise, use ARG_ENABLE
-// ARG_ENABLE("symfony_debug", "enable symfony_debug support", "no");
-
-if (PHP_SYMFONY_DEBUG != "no") {
-	EXTENSION("symfony_debug", "symfony_debug.c");
-}
-
diff --git a/core/vendor/symfony/debug/Resources/ext/php_symfony_debug.h b/core/vendor/symfony/debug/Resources/ext/php_symfony_debug.h
deleted file mode 100644
index 26d0e8c..0000000
--- a/core/vendor/symfony/debug/Resources/ext/php_symfony_debug.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-#ifndef PHP_SYMFONY_DEBUG_H
-#define PHP_SYMFONY_DEBUG_H
-
-extern zend_module_entry symfony_debug_module_entry;
-#define phpext_symfony_debug_ptr &symfony_debug_module_entry
-
-#define PHP_SYMFONY_DEBUG_VERSION "2.7"
-
-#ifdef PHP_WIN32
-#	define PHP_SYMFONY_DEBUG_API __declspec(dllexport)
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#	define PHP_SYMFONY_DEBUG_API __attribute__ ((visibility("default")))
-#else
-#	define PHP_SYMFONY_DEBUG_API
-#endif
-
-#ifdef ZTS
-#include "TSRM.h"
-#endif
-
-ZEND_BEGIN_MODULE_GLOBALS(symfony_debug)
-	intptr_t req_rand_init;
-	void (*old_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
-	zval *debug_bt;
-ZEND_END_MODULE_GLOBALS(symfony_debug)
-
-PHP_MINIT_FUNCTION(symfony_debug);
-PHP_MSHUTDOWN_FUNCTION(symfony_debug);
-PHP_RINIT_FUNCTION(symfony_debug);
-PHP_RSHUTDOWN_FUNCTION(symfony_debug);
-PHP_MINFO_FUNCTION(symfony_debug);
-PHP_GINIT_FUNCTION(symfony_debug);
-PHP_GSHUTDOWN_FUNCTION(symfony_debug);
-
-PHP_FUNCTION(symfony_zval_info);
-PHP_FUNCTION(symfony_debug_backtrace);
-
-static char *_symfony_debug_memory_address_hash(void * TSRMLS_DC);
-static const char *_symfony_debug_zval_type(zval *);
-static const char* _symfony_debug_get_resource_type(long TSRMLS_DC);
-static int _symfony_debug_get_resource_refcount(long TSRMLS_DC);
-
-void symfony_debug_error_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
-
-#ifdef ZTS
-#define SYMFONY_DEBUG_G(v) TSRMG(symfony_debug_globals_id, zend_symfony_debug_globals *, v)
-#else
-#define SYMFONY_DEBUG_G(v) (symfony_debug_globals.v)
-#endif
-
-#endif	/* PHP_SYMFONY_DEBUG_H */
diff --git a/core/vendor/symfony/debug/Resources/ext/symfony_debug.c b/core/vendor/symfony/debug/Resources/ext/symfony_debug.c
deleted file mode 100644
index 0d7cb60..0000000
--- a/core/vendor/symfony/debug/Resources/ext/symfony_debug.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "php.h"
-#ifdef ZTS
-#include "TSRM.h"
-#endif
-#include "php_ini.h"
-#include "ext/standard/info.h"
-#include "php_symfony_debug.h"
-#include "ext/standard/php_rand.h"
-#include "ext/standard/php_lcg.h"
-#include "ext/spl/php_spl.h"
-#include "Zend/zend_gc.h"
-#include "Zend/zend_builtin_functions.h"
-#include "Zend/zend_extensions.h" /* for ZEND_EXTENSION_API_NO */
-#include "ext/standard/php_array.h"
-#include "Zend/zend_interfaces.h"
-#include "SAPI.h"
-
-#define IS_PHP_53 ZEND_EXTENSION_API_NO == 220090626
-
-ZEND_DECLARE_MODULE_GLOBALS(symfony_debug)
-
-ZEND_BEGIN_ARG_INFO_EX(symfony_zval_arginfo, 0, 0, 2)
-	ZEND_ARG_INFO(0, key)
-	ZEND_ARG_ARRAY_INFO(0, array, 0)
-	ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-const zend_function_entry symfony_debug_functions[] = {
-	PHP_FE(symfony_zval_info,	symfony_zval_arginfo)
-	PHP_FE(symfony_debug_backtrace, NULL)
-	PHP_FE_END
-};
-
-PHP_FUNCTION(symfony_debug_backtrace)
-{
-	if (zend_parse_parameters_none() == FAILURE) {
-		return;
-	}
-#if IS_PHP_53
-	zend_fetch_debug_backtrace(return_value, 1, 0 TSRMLS_CC);
-#else
-	zend_fetch_debug_backtrace(return_value, 1, 0, 0 TSRMLS_CC);
-#endif
-
-	if (!SYMFONY_DEBUG_G(debug_bt)) {
-		return;
-	}
-
-	php_array_merge(Z_ARRVAL_P(return_value), Z_ARRVAL_P(SYMFONY_DEBUG_G(debug_bt)), 0 TSRMLS_CC);
-}
-
-PHP_FUNCTION(symfony_zval_info)
-{
-	zval *key = NULL, *arg = NULL;
-	zval **data = NULL;
-	HashTable *array = NULL;
-	long options = 0;
-
-	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zh|l", &key, &array, &options) == FAILURE) {
-		return;
-	}
-
-	switch (Z_TYPE_P(key)) {
-		case IS_STRING:
-			if (zend_symtable_find(array, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, (void **)&data) == FAILURE) {
-				return;
-			}
-		break;
-		case IS_LONG:
-			if (zend_hash_index_find(array, Z_LVAL_P(key), (void **)&data)) {
-				return;
-			}
-		break;
-	}
-
-	arg = *data;
-
-	array_init(return_value);
-
-	add_assoc_string(return_value, "type", (char *)_symfony_debug_zval_type(arg), 1);
-	add_assoc_stringl(return_value, "zval_hash", _symfony_debug_memory_address_hash((void *)arg TSRMLS_CC), 16, 0);
-	add_assoc_long(return_value, "zval_refcount", Z_REFCOUNT_P(arg));
-	add_assoc_bool(return_value, "zval_isref", (zend_bool)Z_ISREF_P(arg));
-
-	if (Z_TYPE_P(arg) == IS_OBJECT) {
-		char hash[33] = {0};
-
-		php_spl_object_hash(arg, (char *)hash TSRMLS_CC);
-		add_assoc_stringl(return_value, "object_class", (char *)Z_OBJCE_P(arg)->name, Z_OBJCE_P(arg)->name_length, 1);
-		add_assoc_long(return_value, "object_refcount", EG(objects_store).object_buckets[Z_OBJ_HANDLE_P(arg)].bucket.obj.refcount);
-		add_assoc_string(return_value, "object_hash", hash, 1);
-		add_assoc_long(return_value, "object_handle", Z_OBJ_HANDLE_P(arg));
-	} else if (Z_TYPE_P(arg) == IS_ARRAY) {
-		add_assoc_long(return_value, "array_count", zend_hash_num_elements(Z_ARRVAL_P(arg)));
-	} else if(Z_TYPE_P(arg) == IS_RESOURCE) {
-		add_assoc_long(return_value, "resource_handle", Z_LVAL_P(arg));
-		add_assoc_string(return_value, "resource_type", (char *)_symfony_debug_get_resource_type(Z_LVAL_P(arg) TSRMLS_CC), 1);
-		add_assoc_long(return_value, "resource_refcount", _symfony_debug_get_resource_refcount(Z_LVAL_P(arg) TSRMLS_CC));
-	} else if (Z_TYPE_P(arg) == IS_STRING) {
-		add_assoc_long(return_value, "strlen", Z_STRLEN_P(arg));
-	}
-}
-
-void symfony_debug_error_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args)
-{
-	TSRMLS_FETCH();
-	zval *retval;
-
-	switch (type) {
-		case E_ERROR:
-		case E_PARSE:
-		case E_CORE_ERROR:
-		case E_CORE_WARNING:
-		case E_COMPILE_ERROR:
-		case E_COMPILE_WARNING:
-			ALLOC_INIT_ZVAL(retval);
-#if IS_PHP_53
-			zend_fetch_debug_backtrace(retval, 1, 0 TSRMLS_CC);
-#else
-			zend_fetch_debug_backtrace(retval, 1, 0, 0 TSRMLS_CC);
-#endif
-			SYMFONY_DEBUG_G(debug_bt) = retval;
-	}
-
-	SYMFONY_DEBUG_G(old_error_cb)(type, error_filename, error_lineno, format, args);
-}
-
-static const char* _symfony_debug_get_resource_type(long rsid TSRMLS_DC)
-{
-	const char *res_type;
-	res_type = zend_rsrc_list_get_rsrc_type(rsid TSRMLS_CC);
-
-	if (!res_type) {
-		return "Unknown";
-	}
-
-	return res_type;
-}
-
-static int _symfony_debug_get_resource_refcount(long rsid TSRMLS_DC)
-{
-	zend_rsrc_list_entry *le;
-
-	if (zend_hash_index_find(&EG(regular_list), rsid, (void **) &le)==SUCCESS) {
-		return le->refcount;
-	}
-
-	return 0;
-}
-
-static char *_symfony_debug_memory_address_hash(void *address TSRMLS_DC)
-{
-	char *result = NULL;
-	intptr_t address_rand;
-
-	if (!SYMFONY_DEBUG_G(req_rand_init)) {
-		if (!BG(mt_rand_is_seeded)) {
-			php_mt_srand(GENERATE_SEED() TSRMLS_CC);
-		}
-		SYMFONY_DEBUG_G(req_rand_init) = (intptr_t)php_mt_rand(TSRMLS_C);
-	}
-
-	address_rand = (intptr_t)address ^ SYMFONY_DEBUG_G(req_rand_init);
-
-	spprintf(&result, 17, "%016zx", address_rand);
-
-	return result;
-}
-
-static const char *_symfony_debug_zval_type(zval *zv)
-{
-	switch (Z_TYPE_P(zv)) {
-		case IS_NULL:
-			return "NULL";
-			break;
-
-		case IS_BOOL:
-			return "boolean";
-			break;
-
-		case IS_LONG:
-			return "integer";
-			break;
-
-		case IS_DOUBLE:
-			return "double";
-			break;
-
-		case IS_STRING:
-			return "string";
-			break;
-
-		case IS_ARRAY:
-			return "array";
-			break;
-
-		case IS_OBJECT:
-			return "object";
-
-		case IS_RESOURCE:
-			return "resource";
-
-		default:
-			return "unknown type";
-	}
-}
-
-zend_module_entry symfony_debug_module_entry = {
-	STANDARD_MODULE_HEADER,
-	"symfony_debug",
-	symfony_debug_functions,
-	PHP_MINIT(symfony_debug),
-	PHP_MSHUTDOWN(symfony_debug),
-	PHP_RINIT(symfony_debug),
-	PHP_RSHUTDOWN(symfony_debug),
-	PHP_MINFO(symfony_debug),
-	PHP_SYMFONY_DEBUG_VERSION,
-	PHP_MODULE_GLOBALS(symfony_debug),
-	PHP_GINIT(symfony_debug),
-	PHP_GSHUTDOWN(symfony_debug),
-	NULL,
-	STANDARD_MODULE_PROPERTIES_EX
-};
-
-#ifdef COMPILE_DL_SYMFONY_DEBUG
-ZEND_GET_MODULE(symfony_debug)
-#endif
-
-PHP_GINIT_FUNCTION(symfony_debug)
-{
-	memset(symfony_debug_globals, 0 , sizeof(*symfony_debug_globals));
-}
-
-PHP_GSHUTDOWN_FUNCTION(symfony_debug)
-{
-
-}
-
-PHP_MINIT_FUNCTION(symfony_debug)
-{
-	SYMFONY_DEBUG_G(old_error_cb) = zend_error_cb;
-	zend_error_cb                 = symfony_debug_error_cb;
-
-	return SUCCESS;
-}
-
-PHP_MSHUTDOWN_FUNCTION(symfony_debug)
-{
-	zend_error_cb = SYMFONY_DEBUG_G(old_error_cb);
-
-	return SUCCESS;
-}
-
-PHP_RINIT_FUNCTION(symfony_debug)
-{
-	return SUCCESS;
-}
-
-PHP_RSHUTDOWN_FUNCTION(symfony_debug)
-{
-	return SUCCESS;
-}
-
-PHP_MINFO_FUNCTION(symfony_debug)
-{
-	php_info_print_table_start();
-	php_info_print_table_header(2, "Symfony Debug support", "enabled");
-	php_info_print_table_header(2, "Symfony Debug version", PHP_SYMFONY_DEBUG_VERSION);
-	php_info_print_table_end();
-}
diff --git a/core/vendor/symfony/debug/Resources/ext/tests/001.phpt b/core/vendor/symfony/debug/Resources/ext/tests/001.phpt
deleted file mode 100644
index 4d41417..0000000
--- a/core/vendor/symfony/debug/Resources/ext/tests/001.phpt
+++ /dev/null
@@ -1,151 +0,0 @@
---TEST--
-Test symfony_zval_info API
---SKIPIF--
-<?php if (!extension_loaded("symfony_debug")) print "skip"; ?>
---FILE--
-<?php
-
-$int = 42;
-$float = 42.42;
-$str = "foobar";
-$object = new StdClass;
-$array = array('foo', 'bar');
-$resource = tmpfile();
-$null = null;
-$bool = true;
-
-$anotherint = 42;
-$refcount2 = &$anotherint;
-
-$var = array('int' => $int,
-			 'float' => $float,
-			 'str' => $str,
-			 'object' => $object,
-			 'array' => $array,
-			 'resource' => $resource,
-			 'null' => $null,
-			 'bool' => $bool,
-			 'refcount' => &$refcount2);
-
-var_dump(symfony_zval_info('int', $var));
-var_dump(symfony_zval_info('float', $var));
-var_dump(symfony_zval_info('str', $var));
-var_dump(symfony_zval_info('object', $var));
-var_dump(symfony_zval_info('array', $var));
-var_dump(symfony_zval_info('resource', $var));
-var_dump(symfony_zval_info('null', $var));
-var_dump(symfony_zval_info('bool', $var));
-
-var_dump(symfony_zval_info('refcount', $var));
-var_dump(symfony_zval_info('not-exist', $var));
-?>
---EXPECTF--
-array(4) {
-  ["type"]=>
-  string(7) "integer"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-}
-array(4) {
-  ["type"]=>
-  string(6) "double"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-}
-array(5) {
-  ["type"]=>
-  string(6) "string"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-  ["strlen"]=>
-  int(6)
-}
-array(8) {
-  ["type"]=>
-  string(6) "object"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-  ["object_class"]=>
-  string(8) "stdClass"
-  ["object_refcount"]=>
-  int(1)
-  ["object_hash"]=>
-  string(32) "%s"
-  ["object_handle"]=>
-  int(%d)
-}
-array(5) {
-  ["type"]=>
-  string(5) "array"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-  ["array_count"]=>
-  int(2)
-}
-array(7) {
-  ["type"]=>
-  string(8) "resource"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-  ["resource_handle"]=>
-  int(%d)
-  ["resource_type"]=>
-  string(6) "stream"
-  ["resource_refcount"]=>
-  int(1)
-}
-array(4) {
-  ["type"]=>
-  string(4) "NULL"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-}
-array(4) {
-  ["type"]=>
-  string(7) "boolean"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(2)
-  ["zval_isref"]=>
-  bool(false)
-}
-array(4) {
-  ["type"]=>
-  string(7) "integer"
-  ["zval_hash"]=>
-  string(16) "%s"
-  ["zval_refcount"]=>
-  int(3)
-  ["zval_isref"]=>
-  bool(true)
-}
-NULL
diff --git a/core/vendor/symfony/debug/Resources/ext/tests/002.phpt b/core/vendor/symfony/debug/Resources/ext/tests/002.phpt
deleted file mode 100644
index ebe2f32..0000000
--- a/core/vendor/symfony/debug/Resources/ext/tests/002.phpt
+++ /dev/null
@@ -1,64 +0,0 @@
---TEST--
-Test symfony_debug_backtrace in case of fatal error
---SKIPIF--
-<?php if (!extension_loaded("symfony_debug")) print "skip"; ?>
---FILE--
-<?php
-
-function bar()
-{
-    foo();
-}
-
-function foo()
-{
-    notexist();
-}
-
-function bt()
-{
-    print_r(symfony_debug_backtrace());
-
-}
-
-register_shutdown_function('bt');
-
-bar();
-
-?>
---EXPECTF--
-Fatal error: Call to undefined function notexist() in %s on line %d
-Array
-(
-    [0] => Array
-        (
-            [function] => bt
-            [args] => Array
-                (
-                )
-
-        )
-
-    [1] => Array
-        (
-            [file] => %s
-            [line] => %d
-            [function] => foo
-            [args] => Array
-                (
-                )
-
-        )
-
-    [2] => Array
-        (
-            [file] => %s
-            [line] => %d
-            [function] => bar
-            [args] => Array
-                (
-                )
-
-        )
-
-)
diff --git a/core/vendor/symfony/debug/Resources/ext/tests/002_1.phpt b/core/vendor/symfony/debug/Resources/ext/tests/002_1.phpt
deleted file mode 100644
index 4d52dbf..0000000
--- a/core/vendor/symfony/debug/Resources/ext/tests/002_1.phpt
+++ /dev/null
@@ -1,47 +0,0 @@
---TEST--
-Test symfony_debug_backtrace in case of non fatal error
---SKIPIF--
-<?php if (!extension_loaded("symfony_debug")) print "skip"; ?>
---FILE--
-<?php
-
-function bar()
-{
-    bt();
-}
-
-function bt()
-{
-    print_r(symfony_debug_backtrace());
-
-}
-
-bar();
-
-?>
---EXPECTF--
-Array
-(
-    [0] => Array
-        (
-            [file] => %s
-            [line] => %d
-            [function] => bt
-            [args] => Array
-                (
-                )
-
-        )
-
-    [1] => Array
-        (
-            [file] => %s
-            [line] => %d
-            [function] => bar
-            [args] => Array
-                (
-                )
-
-        )
-
-)
diff --git a/core/vendor/symfony/debug/Resources/ext/tests/003.phpt b/core/vendor/symfony/debug/Resources/ext/tests/003.phpt
deleted file mode 100644
index 1d46472..0000000
--- a/core/vendor/symfony/debug/Resources/ext/tests/003.phpt
+++ /dev/null
@@ -1,85 +0,0 @@
---TEST--
-Test ErrorHandler in case of fatal error
---SKIPIF--
-<?php if (!extension_loaded("symfony_debug")) print "skip"; ?>
---FILE--
-<?php
-
-namespace Psr\Log;
-
-class LogLevel
-{
-    const EMERGENCY = 'emergency';
-    const ALERT = 'alert';
-    const CRITICAL = 'critical';
-    const ERROR = 'error';
-    const WARNING = 'warning';
-    const NOTICE = 'notice';
-    const INFO = 'info';
-    const DEBUG = 'debug';
-}
-
-namespace Symfony\Component\Debug;
-
-$dir = __DIR__.'/../../../';
-require $dir.'ErrorHandler.php';
-require $dir.'Exception/FatalErrorException.php';
-require $dir.'Exception/UndefinedFunctionException.php';
-require $dir.'FatalErrorHandler/FatalErrorHandlerInterface.php';
-require $dir.'FatalErrorHandler/ClassNotFoundFatalErrorHandler.php';
-require $dir.'FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php';
-require $dir.'FatalErrorHandler/UndefinedMethodFatalErrorHandler.php';
-
-function bar()
-{
-    foo();
-}
-
-function foo()
-{
-    notexist();
-}
-
-$handler = ErrorHandler::register();
-$handler->setExceptionHandler('print_r');
-
-if (function_exists('xdebug_disable')) {
-    xdebug_disable();
-}
-
-bar();
-?>
---EXPECTF--
-Fatal error: Call to undefined function Symfony\Component\Debug\notexist() in %s on line %d
-Symfony\Component\Debug\Exception\UndefinedFunctionException Object
-(
-    [message:protected] => Attempted to call function "notexist" from namespace "Symfony\Component\Debug".
-    [string:Exception:private] => 
-    [code:protected] => 0
-    [file:protected] => -
-    [line:protected] => %d
-    [trace:Exception:private] => Array
-        (
-            [0] => Array
-                (
-%A                    [function] => Symfony\Component\Debug\foo
-%A                    [args] => Array
-                        (
-                        )
-
-                )
-
-            [1] => Array
-                (
-%A                    [function] => Symfony\Component\Debug\bar
-%A                    [args] => Array
-                        (
-                        )
-
-                )
-%A
-        )
-
-    [previous:Exception:private] => 
-    [severity:protected] => 1
-)
diff --git a/core/vendor/symfony/debug/Tests/DebugClassLoaderTest.php b/core/vendor/symfony/debug/Tests/DebugClassLoaderTest.php
deleted file mode 100644
index a368a7d..0000000
--- a/core/vendor/symfony/debug/Tests/DebugClassLoaderTest.php
+++ /dev/null
@@ -1,296 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests;
-
-use Symfony\Component\Debug\DebugClassLoader;
-use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\Debug\Exception\ContextErrorException;
-
-class DebugClassLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var int Error reporting level before running tests.
-     */
-    private $errorReporting;
-
-    private $loader;
-
-    protected function setUp()
-    {
-        $this->errorReporting = error_reporting(E_ALL | E_STRICT);
-        $this->loader = new ClassLoader();
-        spl_autoload_register(array($this->loader, 'loadClass'), true, true);
-        DebugClassLoader::enable();
-    }
-
-    protected function tearDown()
-    {
-        DebugClassLoader::disable();
-        spl_autoload_unregister(array($this->loader, 'loadClass'));
-        error_reporting($this->errorReporting);
-    }
-
-    public function testIdempotence()
-    {
-        DebugClassLoader::enable();
-
-        $functions = spl_autoload_functions();
-        foreach ($functions as $function) {
-            if (is_array($function) && $function[0] instanceof DebugClassLoader) {
-                $reflClass = new \ReflectionClass($function[0]);
-                $reflProp = $reflClass->getProperty('classLoader');
-                $reflProp->setAccessible(true);
-
-                $this->assertNotInstanceOf('Symfony\Component\Debug\DebugClassLoader', $reflProp->getValue($function[0]));
-
-                return;
-            }
-        }
-
-        $this->fail('DebugClassLoader did not register');
-    }
-
-    public function testUnsilencing()
-    {
-        if (PHP_VERSION_ID >= 70000) {
-            $this->markTestSkipped('PHP7 throws exceptions, unsilencing is not required anymore.');
-        }
-        if (defined('HHVM_VERSION')) {
-            $this->markTestSkipped('HHVM is not handled in this test case.');
-        }
-
-        ob_start();
-
-        $this->iniSet('log_errors', 0);
-        $this->iniSet('display_errors', 1);
-
-        // See below: this will fail with parse error
-        // but this should not be @-silenced.
-        @class_exists(__NAMESPACE__.'\TestingUnsilencing', true);
-
-        $output = ob_get_clean();
-
-        $this->assertStringMatchesFormat('%aParse error%a', $output);
-    }
-
-    public function testStacking()
-    {
-        // the ContextErrorException must not be loaded to test the workaround
-        // for https://bugs.php.net/65322.
-        if (class_exists('Symfony\Component\Debug\Exception\ContextErrorException', false)) {
-            $this->markTestSkipped('The ContextErrorException class is already loaded.');
-        }
-        if (defined('HHVM_VERSION')) {
-            $this->markTestSkipped('HHVM is not handled in this test case.');
-        }
-
-        ErrorHandler::register();
-
-        try {
-            // Trigger autoloading + E_STRICT at compile time
-            // which in turn triggers $errorHandler->handle()
-            // that again triggers autoloading for ContextErrorException.
-            // Error stacking works around the bug above and everything is fine.
-
-            eval('
-                namespace '.__NAMESPACE__.';
-                class ChildTestingStacking extends TestingStacking { function foo($bar) {} }
-            ');
-            $this->fail('ContextErrorException expected');
-        } catch (\ErrorException $exception) {
-            // if an exception is thrown, the test passed
-            restore_error_handler();
-            restore_exception_handler();
-            $this->assertStringStartsWith(__FILE__, $exception->getFile());
-            if (PHP_VERSION_ID < 70000) {
-                $this->assertRegExp('/^Runtime Notice: Declaration/', $exception->getMessage());
-                $this->assertEquals(E_STRICT, $exception->getSeverity());
-            } else {
-                $this->assertRegExp('/^Warning: Declaration/', $exception->getMessage());
-                $this->assertEquals(E_WARNING, $exception->getSeverity());
-            }
-        } catch (\Exception $exception) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $exception;
-        }
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testNameCaseMismatch()
-    {
-        class_exists(__NAMESPACE__.'\TestingCaseMismatch', true);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Case mismatch between class and source file names
-     */
-    public function testFileCaseMismatch()
-    {
-        if (!file_exists(__DIR__.'/Fixtures/CaseMismatch.php')) {
-            $this->markTestSkipped('Can only be run on case insensitive filesystems');
-        }
-
-        class_exists(__NAMESPACE__.'\Fixtures\CaseMismatch', true);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testPsr4CaseMismatch()
-    {
-        class_exists(__NAMESPACE__.'\Fixtures\Psr4CaseMismatch', true);
-    }
-
-    public function testNotPsr0()
-    {
-        $this->assertTrue(class_exists(__NAMESPACE__.'\Fixtures\NotPSR0', true));
-    }
-
-    public function testNotPsr0Bis()
-    {
-        $this->assertTrue(class_exists(__NAMESPACE__.'\Fixtures\NotPSR0bis', true));
-    }
-
-    public function testClassAlias()
-    {
-        $this->assertTrue(class_exists(__NAMESPACE__.'\Fixtures\ClassAlias', true));
-    }
-
-    /**
-     * @dataProvider provideDeprecatedSuper
-     */
-    public function testDeprecatedSuper($class, $super, $type)
-    {
-        set_error_handler('var_dump', 0);
-        $e = error_reporting(0);
-        trigger_error('', E_USER_DEPRECATED);
-
-        class_exists('Test\\'.__NAMESPACE__.'\\'.$class, true);
-
-        error_reporting($e);
-        restore_error_handler();
-
-        $lastError = error_get_last();
-        unset($lastError['file'], $lastError['line']);
-
-        $xError = array(
-            'type' => E_USER_DEPRECATED,
-            'message' => 'The Test\Symfony\Component\Debug\Tests\\'.$class.' class '.$type.' Symfony\Component\Debug\Tests\Fixtures\\'.$super.' that is deprecated but this is a test deprecation notice.',
-        );
-
-        $this->assertSame($xError, $lastError);
-    }
-
-    public function provideDeprecatedSuper()
-    {
-        return array(
-            array('DeprecatedInterfaceClass', 'DeprecatedInterface', 'implements'),
-            array('DeprecatedParentClass', 'DeprecatedClass', 'extends'),
-        );
-    }
-
-    public function testDeprecatedSuperInSameNamespace()
-    {
-        set_error_handler('var_dump', 0);
-        $e = error_reporting(0);
-        trigger_error('', E_USER_NOTICE);
-
-        class_exists('Symfony\Bridge\Debug\Tests\Fixtures\ExtendsDeprecatedParent', true);
-
-        error_reporting($e);
-        restore_error_handler();
-
-        $lastError = error_get_last();
-        unset($lastError['file'], $lastError['line']);
-
-        $xError = array(
-            'type' => E_USER_NOTICE,
-            'message' => '',
-        );
-
-        $this->assertSame($xError, $lastError);
-    }
-
-    public function testReservedForPhp7()
-    {
-        if (PHP_VERSION_ID >= 70000) {
-            $this->markTestSkipped('PHP7 already prevents using reserved names.');
-        }
-
-        set_error_handler('var_dump', 0);
-        $e = error_reporting(0);
-        trigger_error('', E_USER_NOTICE);
-
-        class_exists('Test\\'.__NAMESPACE__.'\\Float', true);
-
-        error_reporting($e);
-        restore_error_handler();
-
-        $lastError = error_get_last();
-        unset($lastError['file'], $lastError['line']);
-
-        $xError = array(
-            'type' => E_USER_DEPRECATED,
-            'message' => 'Test\Symfony\Component\Debug\Tests\Float uses a reserved class name (Float) that will break on PHP 7 and higher',
-        );
-
-        $this->assertSame($xError, $lastError);
-    }
-}
-
-class ClassLoader
-{
-    public function loadClass($class)
-    {
-    }
-
-    public function getClassMap()
-    {
-        return array(__NAMESPACE__.'\Fixtures\NotPSR0bis' => __DIR__.'/Fixtures/notPsr0Bis.php');
-    }
-
-    public function findFile($class)
-    {
-        $fixtureDir = __DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR;
-
-        if (__NAMESPACE__.'\TestingUnsilencing' === $class) {
-            eval('-- parse error --');
-        } elseif (__NAMESPACE__.'\TestingStacking' === $class) {
-            eval('namespace '.__NAMESPACE__.'; class TestingStacking { function foo() {} }');
-        } elseif (__NAMESPACE__.'\TestingCaseMismatch' === $class) {
-            eval('namespace '.__NAMESPACE__.'; class TestingCaseMisMatch {}');
-        } elseif (__NAMESPACE__.'\Fixtures\CaseMismatch' === $class) {
-            return $fixtureDir.'CaseMismatch.php';
-        } elseif (__NAMESPACE__.'\Fixtures\Psr4CaseMismatch' === $class) {
-            return $fixtureDir.'psr4'.DIRECTORY_SEPARATOR.'Psr4CaseMismatch.php';
-        } elseif (__NAMESPACE__.'\Fixtures\NotPSR0' === $class) {
-            return $fixtureDir.'reallyNotPsr0.php';
-        } elseif (__NAMESPACE__.'\Fixtures\NotPSR0bis' === $class) {
-            return $fixtureDir.'notPsr0Bis.php';
-        } elseif (__NAMESPACE__.'\Fixtures\DeprecatedInterface' === $class) {
-            return $fixtureDir.'DeprecatedInterface.php';
-        } elseif ('Symfony\Bridge\Debug\Tests\Fixtures\ExtendsDeprecatedParent' === $class) {
-            eval('namespace Symfony\Bridge\Debug\Tests\Fixtures; class ExtendsDeprecatedParent extends \\'.__NAMESPACE__.'\Fixtures\DeprecatedClass {}');
-        } elseif ('Test\\'.__NAMESPACE__.'\DeprecatedParentClass' === $class) {
-            eval('namespace Test\\'.__NAMESPACE__.'; class DeprecatedParentClass extends \\'.__NAMESPACE__.'\Fixtures\DeprecatedClass {}');
-        } elseif ('Test\\'.__NAMESPACE__.'\DeprecatedInterfaceClass' === $class) {
-            eval('namespace Test\\'.__NAMESPACE__.'; class DeprecatedInterfaceClass implements \\'.__NAMESPACE__.'\Fixtures\DeprecatedInterface {}');
-        } elseif ('Test\\'.__NAMESPACE__.'\Float' === $class) {
-            eval('namespace Test\\'.__NAMESPACE__.'; class Float {}');
-        }
-    }
-}
diff --git a/core/vendor/symfony/debug/Tests/ErrorHandlerTest.php b/core/vendor/symfony/debug/Tests/ErrorHandlerTest.php
deleted file mode 100644
index 5d521a1..0000000
--- a/core/vendor/symfony/debug/Tests/ErrorHandlerTest.php
+++ /dev/null
@@ -1,481 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests;
-
-use Psr\Log\LogLevel;
-use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\Debug\Exception\ContextErrorException;
-
-/**
- * ErrorHandlerTest.
- *
- * @author Robert Schönthal <seroscho@googlemail.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ErrorHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRegister()
-    {
-        $handler = ErrorHandler::register();
-
-        try {
-            $this->assertInstanceOf('Symfony\Component\Debug\ErrorHandler', $handler);
-            $this->assertSame($handler, ErrorHandler::register());
-
-            $newHandler = new ErrorHandler();
-
-            $this->assertSame($newHandler, ErrorHandler::register($newHandler, false));
-            $h = set_error_handler('var_dump');
-            restore_error_handler();
-            $this->assertSame(array($handler, 'handleError'), $h);
-
-            try {
-                $this->assertSame($newHandler, ErrorHandler::register($newHandler, true));
-                $h = set_error_handler('var_dump');
-                restore_error_handler();
-                $this->assertSame(array($newHandler, 'handleError'), $h);
-            } catch (\Exception $e) {
-            }
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            if (isset($e)) {
-                throw $e;
-            }
-        } catch (\Exception $e) {
-        }
-
-        restore_error_handler();
-        restore_exception_handler();
-
-        if (isset($e)) {
-            throw $e;
-        }
-    }
-
-    public function testNotice()
-    {
-        ErrorHandler::register();
-
-        try {
-            self::triggerNotice($this);
-            $this->fail('ContextErrorException expected');
-        } catch (ContextErrorException $exception) {
-            // if an exception is thrown, the test passed
-            restore_error_handler();
-            restore_exception_handler();
-
-            $this->assertEquals(E_NOTICE, $exception->getSeverity());
-            $this->assertEquals(__FILE__, $exception->getFile());
-            $this->assertRegExp('/^Notice: Undefined variable: (foo|bar)/', $exception->getMessage());
-            $this->assertArrayHasKey('foobar', $exception->getContext());
-
-            $trace = $exception->getTrace();
-            $this->assertEquals(__FILE__, $trace[0]['file']);
-            $this->assertEquals('Symfony\Component\Debug\ErrorHandler', $trace[0]['class']);
-            $this->assertEquals('handleError', $trace[0]['function']);
-            $this->assertEquals('->', $trace[0]['type']);
-
-            $this->assertEquals(__FILE__, $trace[1]['file']);
-            $this->assertEquals(__CLASS__, $trace[1]['class']);
-            $this->assertEquals('triggerNotice', $trace[1]['function']);
-            $this->assertEquals('::', $trace[1]['type']);
-
-            $this->assertEquals(__FILE__, $trace[1]['file']);
-            $this->assertEquals(__CLASS__, $trace[2]['class']);
-            $this->assertEquals(__FUNCTION__, $trace[2]['function']);
-            $this->assertEquals('->', $trace[2]['type']);
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    // dummy function to test trace in error handler.
-    private static function triggerNotice($that)
-    {
-        // dummy variable to check for in error handler.
-        $foobar = 123;
-        $that->assertSame('', $foo.$foo.$bar);
-    }
-
-    public function testConstruct()
-    {
-        try {
-            $handler = ErrorHandler::register();
-            $handler->throwAt(3, true);
-            $this->assertEquals(3 | E_RECOVERABLE_ERROR | E_USER_ERROR, $handler->throwAt(0));
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    public function testDefaultLogger()
-    {
-        try {
-            $handler = ErrorHandler::register();
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $handler->setDefaultLogger($logger, E_NOTICE);
-            $handler->setDefaultLogger($logger, array(E_USER_NOTICE => LogLevel::CRITICAL));
-
-            $loggers = array(
-                E_DEPRECATED => array(null, LogLevel::INFO),
-                E_USER_DEPRECATED => array(null, LogLevel::INFO),
-                E_NOTICE => array($logger, LogLevel::WARNING),
-                E_USER_NOTICE => array($logger, LogLevel::CRITICAL),
-                E_STRICT => array(null, LogLevel::WARNING),
-                E_WARNING => array(null, LogLevel::WARNING),
-                E_USER_WARNING => array(null, LogLevel::WARNING),
-                E_COMPILE_WARNING => array(null, LogLevel::WARNING),
-                E_CORE_WARNING => array(null, LogLevel::WARNING),
-                E_USER_ERROR => array(null, LogLevel::CRITICAL),
-                E_RECOVERABLE_ERROR => array(null, LogLevel::CRITICAL),
-                E_COMPILE_ERROR => array(null, LogLevel::CRITICAL),
-                E_PARSE => array(null, LogLevel::CRITICAL),
-                E_ERROR => array(null, LogLevel::CRITICAL),
-                E_CORE_ERROR => array(null, LogLevel::CRITICAL),
-            );
-            $this->assertSame($loggers, $handler->setLoggers(array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    public function testHandleError()
-    {
-        try {
-            $handler = ErrorHandler::register();
-            $handler->throwAt(0, true);
-            $this->assertFalse($handler->handleError(0, 'foo', 'foo.php', 12, array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $handler = ErrorHandler::register();
-            $handler->throwAt(3, true);
-            $this->assertFalse($handler->handleError(4, 'foo', 'foo.php', 12, array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $handler = ErrorHandler::register();
-            $handler->throwAt(3, true);
-            try {
-                $handler->handleError(4, 'foo', 'foo.php', 12, array());
-            } catch (\ErrorException $e) {
-                $this->assertSame('Parse Error: foo', $e->getMessage());
-                $this->assertSame(4, $e->getSeverity());
-                $this->assertSame('foo.php', $e->getFile());
-                $this->assertSame(12, $e->getLine());
-            }
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $handler = ErrorHandler::register();
-            $handler->throwAt(E_USER_DEPRECATED, true);
-            $this->assertFalse($handler->handleError(E_USER_DEPRECATED, 'foo', 'foo.php', 12, array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $handler = ErrorHandler::register();
-            $handler->throwAt(E_DEPRECATED, true);
-            $this->assertFalse($handler->handleError(E_DEPRECATED, 'foo', 'foo.php', 12, array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $that = $this;
-            $warnArgCheck = function ($logLevel, $message, $context) use ($that) {
-                $that->assertEquals('info', $logLevel);
-                $that->assertEquals('foo', $message);
-                $that->assertArrayHasKey('type', $context);
-                $that->assertEquals($context['type'], E_USER_DEPRECATED);
-                $that->assertArrayHasKey('stack', $context);
-                $that->assertInternalType('array', $context['stack']);
-            };
-
-            $logger
-                ->expects($this->once())
-                ->method('log')
-                ->will($this->returnCallback($warnArgCheck))
-            ;
-
-            $handler = ErrorHandler::register();
-            $handler->setDefaultLogger($logger, E_USER_DEPRECATED);
-            $this->assertTrue($handler->handleError(E_USER_DEPRECATED, 'foo', 'foo.php', 12, array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $that = $this;
-            $logArgCheck = function ($level, $message, $context) use ($that) {
-                $that->assertEquals('Undefined variable: undefVar', $message);
-                $that->assertArrayHasKey('type', $context);
-                $that->assertEquals($context['type'], E_NOTICE);
-            };
-
-            $logger
-                ->expects($this->once())
-                ->method('log')
-                ->will($this->returnCallback($logArgCheck))
-            ;
-
-            $handler = ErrorHandler::register();
-            $handler->setDefaultLogger($logger, E_NOTICE);
-            $handler->screamAt(E_NOTICE);
-            unset($undefVar);
-            @$undefVar++;
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    public function testHandleException()
-    {
-        try {
-            $handler = ErrorHandler::register();
-
-            $exception = new \Exception('foo');
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $that = $this;
-            $logArgCheck = function ($level, $message, $context) use ($that) {
-                $that->assertEquals('Uncaught Exception: foo', $message);
-                $that->assertArrayHasKey('type', $context);
-                $that->assertEquals($context['type'], E_ERROR);
-            };
-
-            $logger
-                ->expects($this->exactly(2))
-                ->method('log')
-                ->will($this->returnCallback($logArgCheck))
-            ;
-
-            $handler->setDefaultLogger($logger, E_ERROR);
-
-            try {
-                $handler->handleException($exception);
-                $this->fail('Exception expected');
-            } catch (\Exception $e) {
-                $this->assertSame($exception, $e);
-            }
-
-            $that = $this;
-            $handler->setExceptionHandler(function ($e) use ($exception, $that) {
-                $that->assertSame($exception, $e);
-            });
-
-            $handler->handleException($exception);
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    public function testErrorStacking()
-    {
-        try {
-            $handler = ErrorHandler::register();
-            $handler->screamAt(E_USER_WARNING);
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $logger
-                ->expects($this->exactly(2))
-                ->method('log')
-                ->withConsecutive(
-                    array($this->equalTo(LogLevel::WARNING), $this->equalTo('Dummy log')),
-                    array($this->equalTo(LogLevel::DEBUG), $this->equalTo('Silenced warning'))
-                )
-            ;
-
-            $handler->setDefaultLogger($logger, array(E_USER_WARNING => LogLevel::WARNING));
-
-            ErrorHandler::stackErrors();
-            @trigger_error('Silenced warning', E_USER_WARNING);
-            $logger->log(LogLevel::WARNING, 'Dummy log');
-            ErrorHandler::unstackErrors();
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    public function testHandleFatalError()
-    {
-        try {
-            $handler = ErrorHandler::register();
-
-            $error = array(
-                'type' => E_PARSE,
-                'message' => 'foo',
-                'file' => 'bar',
-                'line' => 123,
-            );
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $that = $this;
-            $logArgCheck = function ($level, $message, $context) use ($that) {
-                $that->assertEquals('Fatal Parse Error: foo', $message);
-                $that->assertArrayHasKey('type', $context);
-                $that->assertEquals($context['type'], E_PARSE);
-            };
-
-            $logger
-                ->expects($this->once())
-                ->method('log')
-                ->will($this->returnCallback($logArgCheck))
-            ;
-
-            $handler->setDefaultLogger($logger, E_PARSE);
-
-            $handler->handleFatalError($error);
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    public function testHandleFatalErrorOnHHVM()
-    {
-        try {
-            $handler = ErrorHandler::register();
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-            $logger
-                ->expects($this->once())
-                ->method('log')
-                ->with(
-                    $this->equalTo(LogLevel::CRITICAL),
-                    $this->equalTo('Fatal Error: foo'),
-                    $this->equalTo(array(
-                        'type' => 1,
-                        'file' => 'bar',
-                        'line' => 123,
-                        'level' => -1,
-                        'stack' => array(456),
-                    ))
-                )
-            ;
-
-            $handler->setDefaultLogger($logger, E_ERROR);
-
-            $error = array(
-                'type' => E_ERROR + 0x1000000, // This error level is used by HHVM for fatal errors
-                'message' => 'foo',
-                'file' => 'bar',
-                'line' => 123,
-                'context' => array(123),
-                'backtrace' => array(456),
-            );
-
-            call_user_func_array(array($handler, 'handleError'), $error);
-            $handler->handleFatalError($error);
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyInterface()
-    {
-        try {
-            $handler = ErrorHandler::register(0);
-            $this->assertFalse($handler->handle(0, 'foo', 'foo.php', 12, array()));
-
-            restore_error_handler();
-            restore_exception_handler();
-
-            $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-            $that = $this;
-            $logArgCheck = function ($level, $message, $context) use ($that) {
-                $that->assertEquals('Undefined variable: undefVar', $message);
-                $that->assertArrayHasKey('type', $context);
-                $that->assertEquals($context['type'], E_NOTICE);
-            };
-
-            $logger
-                ->expects($this->once())
-                ->method('log')
-                ->will($this->returnCallback($logArgCheck))
-            ;
-
-            $handler = ErrorHandler::register(E_NOTICE);
-            @$handler->setLogger($logger, 'scream');
-            unset($undefVar);
-            @$undefVar++;
-
-            restore_error_handler();
-            restore_exception_handler();
-        } catch (\Exception $e) {
-            restore_error_handler();
-            restore_exception_handler();
-
-            throw $e;
-        }
-    }
-}
diff --git a/core/vendor/symfony/debug/Tests/Exception/FlattenExceptionTest.php b/core/vendor/symfony/debug/Tests/Exception/FlattenExceptionTest.php
deleted file mode 100644
index 99eaf49..0000000
--- a/core/vendor/symfony/debug/Tests/Exception/FlattenExceptionTest.php
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests\Exception;
-
-use Symfony\Component\Debug\Exception\FlattenException;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
-use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
-use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
-use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException;
-use Symfony\Component\HttpKernel\Exception\ConflictHttpException;
-use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
-use Symfony\Component\HttpKernel\Exception\GoneHttpException;
-use Symfony\Component\HttpKernel\Exception\LengthRequiredHttpException;
-use Symfony\Component\HttpKernel\Exception\PreconditionFailedHttpException;
-use Symfony\Component\HttpKernel\Exception\PreconditionRequiredHttpException;
-use Symfony\Component\HttpKernel\Exception\ServiceUnavailableHttpException;
-use Symfony\Component\HttpKernel\Exception\TooManyRequestsHttpException;
-use Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException;
-
-class FlattenExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testStatusCode()
-    {
-        $flattened = FlattenException::create(new \RuntimeException(), 403);
-        $this->assertEquals('403', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new \RuntimeException());
-        $this->assertEquals('500', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new NotFoundHttpException());
-        $this->assertEquals('404', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new UnauthorizedHttpException('Basic realm="My Realm"'));
-        $this->assertEquals('401', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new BadRequestHttpException());
-        $this->assertEquals('400', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new NotAcceptableHttpException());
-        $this->assertEquals('406', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new ConflictHttpException());
-        $this->assertEquals('409', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new MethodNotAllowedHttpException(array('POST')));
-        $this->assertEquals('405', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new AccessDeniedHttpException());
-        $this->assertEquals('403', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new GoneHttpException());
-        $this->assertEquals('410', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new LengthRequiredHttpException());
-        $this->assertEquals('411', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new PreconditionFailedHttpException());
-        $this->assertEquals('412', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new PreconditionRequiredHttpException());
-        $this->assertEquals('428', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new ServiceUnavailableHttpException());
-        $this->assertEquals('503', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new TooManyRequestsHttpException());
-        $this->assertEquals('429', $flattened->getStatusCode());
-
-        $flattened = FlattenException::create(new UnsupportedMediaTypeHttpException());
-        $this->assertEquals('415', $flattened->getStatusCode());
-    }
-
-    public function testHeadersForHttpException()
-    {
-        $flattened = FlattenException::create(new MethodNotAllowedHttpException(array('POST')));
-        $this->assertEquals(array('Allow' => 'POST'), $flattened->getHeaders());
-
-        $flattened = FlattenException::create(new UnauthorizedHttpException('Basic realm="My Realm"'));
-        $this->assertEquals(array('WWW-Authenticate' => 'Basic realm="My Realm"'), $flattened->getHeaders());
-
-        $flattened = FlattenException::create(new ServiceUnavailableHttpException('Fri, 31 Dec 1999 23:59:59 GMT'));
-        $this->assertEquals(array('Retry-After' => 'Fri, 31 Dec 1999 23:59:59 GMT'), $flattened->getHeaders());
-
-        $flattened = FlattenException::create(new ServiceUnavailableHttpException(120));
-        $this->assertEquals(array('Retry-After' => 120), $flattened->getHeaders());
-
-        $flattened = FlattenException::create(new TooManyRequestsHttpException('Fri, 31 Dec 1999 23:59:59 GMT'));
-        $this->assertEquals(array('Retry-After' => 'Fri, 31 Dec 1999 23:59:59 GMT'), $flattened->getHeaders());
-
-        $flattened = FlattenException::create(new TooManyRequestsHttpException(120));
-        $this->assertEquals(array('Retry-After' => 120), $flattened->getHeaders());
-    }
-
-    /**
-     * @dataProvider flattenDataProvider
-     */
-    public function testFlattenHttpException(\Exception $exception, $statusCode)
-    {
-        $flattened = FlattenException::create($exception);
-        $flattened2 = FlattenException::create($exception);
-
-        $flattened->setPrevious($flattened2);
-
-        $this->assertEquals($exception->getMessage(), $flattened->getMessage(), 'The message is copied from the original exception.');
-        $this->assertEquals($exception->getCode(), $flattened->getCode(), 'The code is copied from the original exception.');
-        $this->assertInstanceOf($flattened->getClass(), $exception, 'The class is set to the class of the original exception');
-    }
-
-    /**
-     * @dataProvider flattenDataProvider
-     */
-    public function testPrevious(\Exception $exception, $statusCode)
-    {
-        $flattened = FlattenException::create($exception);
-        $flattened2 = FlattenException::create($exception);
-
-        $flattened->setPrevious($flattened2);
-
-        $this->assertSame($flattened2, $flattened->getPrevious());
-
-        $this->assertSame(array($flattened2), $flattened->getAllPrevious());
-    }
-
-    /**
-     * @dataProvider flattenDataProvider
-     */
-    public function testLine(\Exception $exception)
-    {
-        $flattened = FlattenException::create($exception);
-        $this->assertSame($exception->getLine(), $flattened->getLine());
-    }
-
-    /**
-     * @dataProvider flattenDataProvider
-     */
-    public function testFile(\Exception $exception)
-    {
-        $flattened = FlattenException::create($exception);
-        $this->assertSame($exception->getFile(), $flattened->getFile());
-    }
-
-    /**
-     * @dataProvider flattenDataProvider
-     */
-    public function testToArray(\Exception $exception, $statusCode)
-    {
-        $flattened = FlattenException::create($exception);
-        $flattened->setTrace(array(), 'foo.php', 123);
-
-        $this->assertEquals(array(
-            array(
-                'message' => 'test',
-                'class' => 'Exception',
-                'trace' => array(array(
-                    'namespace' => '', 'short_class' => '', 'class' => '', 'type' => '', 'function' => '', 'file' => 'foo.php', 'line' => 123,
-                    'args' => array(),
-                )),
-            ),
-        ), $flattened->toArray());
-    }
-
-    public function flattenDataProvider()
-    {
-        return array(
-            array(new \Exception('test', 123), 500),
-        );
-    }
-
-    public function testRecursionInArguments()
-    {
-        $a = array('foo', array(2, &$a));
-        $exception = $this->createException($a);
-
-        $flattened = FlattenException::create($exception);
-        $trace = $flattened->getTrace();
-        $this->assertContains('*DEEP NESTED ARRAY*', serialize($trace));
-    }
-
-    public function testTooBigArray()
-    {
-        $a = array();
-        for ($i = 0; $i < 20; ++$i) {
-            for ($j = 0; $j < 50; ++$j) {
-                for ($k = 0; $k < 10; ++$k) {
-                    $a[$i][$j][$k] = 'value';
-                }
-            }
-        }
-        $a[20] = 'value';
-        $a[21] = 'value1';
-        $exception = $this->createException($a);
-
-        $flattened = FlattenException::create($exception);
-        $trace = $flattened->getTrace();
-        $serializeTrace = serialize($trace);
-
-        $this->assertContains('*SKIPPED over 10000 entries*', $serializeTrace);
-        $this->assertNotContains('*value1*', $serializeTrace);
-    }
-
-    private function createException($foo)
-    {
-        return new \Exception();
-    }
-
-    public function testSetTraceIncompleteClass()
-    {
-        $flattened = FlattenException::create(new \Exception('test', 123));
-        $flattened->setTrace(
-            array(
-                array(
-                    'file' => __FILE__,
-                    'line' => 123,
-                    'function' => 'test',
-                    'args' => array(
-                        unserialize('O:14:"BogusTestClass":0:{}'),
-                    ),
-                ),
-            ),
-            'foo.php', 123
-        );
-
-        $this->assertEquals(array(
-            array(
-                'message' => 'test',
-                'class' => 'Exception',
-                'trace' => array(
-                    array(
-                        'namespace' => '', 'short_class' => '', 'class' => '', 'type' => '', 'function' => '',
-                        'file' => 'foo.php', 'line' => 123,
-                        'args' => array(),
-                    ),
-                    array(
-                        'namespace' => '', 'short_class' => '', 'class' => '', 'type' => '', 'function' => 'test',
-                        'file' => __FILE__, 'line' => 123,
-                        'args' => array(
-                            array(
-                                'incomplete-object', 'BogusTestClass',
-                            ),
-                        ),
-                    ),
-                ),
-            ),
-        ), $flattened->toArray());
-    }
-}
diff --git a/core/vendor/symfony/debug/Tests/ExceptionHandlerTest.php b/core/vendor/symfony/debug/Tests/ExceptionHandlerTest.php
deleted file mode 100644
index 26f8892..0000000
--- a/core/vendor/symfony/debug/Tests/ExceptionHandlerTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests;
-
-use Symfony\Component\Debug\ExceptionHandler;
-use Symfony\Component\Debug\Exception\OutOfMemoryException;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
-
-class ExceptionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDebug()
-    {
-        $handler = new ExceptionHandler(false);
-        $response = $handler->createResponse(new \RuntimeException('Foo'));
-
-        $this->assertContains('<h1>Whoops, looks like something went wrong.</h1>', $response->getContent());
-        $this->assertNotContains('<h2 class="block_exception clear_fix">', $response->getContent());
-
-        $handler = new ExceptionHandler(true);
-        $response = $handler->createResponse(new \RuntimeException('Foo'));
-
-        $this->assertContains('<h1>Whoops, looks like something went wrong.</h1>', $response->getContent());
-        $this->assertContains('<h2 class="block_exception clear_fix">', $response->getContent());
-    }
-
-    public function testStatusCode()
-    {
-        $handler = new ExceptionHandler(false);
-
-        $response = $handler->createResponse(new \RuntimeException('Foo'));
-        $this->assertEquals('500', $response->getStatusCode());
-        $this->assertContains('Whoops, looks like something went wrong.', $response->getContent());
-
-        $response = $handler->createResponse(new NotFoundHttpException('Foo'));
-        $this->assertEquals('404', $response->getStatusCode());
-        $this->assertContains('Sorry, the page you are looking for could not be found.', $response->getContent());
-    }
-
-    public function testHeaders()
-    {
-        $handler = new ExceptionHandler(false);
-
-        $response = $handler->createResponse(new MethodNotAllowedHttpException(array('POST')));
-        $this->assertEquals('405', $response->getStatusCode());
-        $this->assertEquals('POST', $response->headers->get('Allow'));
-    }
-
-    public function testNestedExceptions()
-    {
-        $handler = new ExceptionHandler(true);
-        $response = $handler->createResponse(new \RuntimeException('Foo', 0, new \RuntimeException('Bar')));
-    }
-
-    public function testHandle()
-    {
-        $exception = new \Exception('foo');
-
-        if (class_exists('Symfony\Component\HttpFoundation\Response')) {
-            $handler = $this->getMock('Symfony\Component\Debug\ExceptionHandler', array('createResponse'));
-            $handler
-                ->expects($this->exactly(2))
-                ->method('createResponse')
-                ->will($this->returnValue(new Response()));
-        } else {
-            $handler = $this->getMock('Symfony\Component\Debug\ExceptionHandler', array('sendPhpResponse'));
-            $handler
-                ->expects($this->exactly(2))
-                ->method('sendPhpResponse');
-        }
-
-        $handler->handle($exception);
-
-        $that = $this;
-        $handler->setHandler(function ($e) use ($exception, $that) {
-            $that->assertSame($exception, $e);
-        });
-
-        $handler->handle($exception);
-    }
-
-    public function testHandleOutOfMemoryException()
-    {
-        $exception = new OutOfMemoryException('foo', 0, E_ERROR, __FILE__, __LINE__);
-
-        if (class_exists('Symfony\Component\HttpFoundation\Response')) {
-            $handler = $this->getMock('Symfony\Component\Debug\ExceptionHandler', array('createResponse'));
-            $handler
-                ->expects($this->once())
-                ->method('createResponse')
-                ->will($this->returnValue(new Response()));
-        } else {
-            $handler = $this->getMock('Symfony\Component\Debug\ExceptionHandler', array('sendPhpResponse'));
-            $handler
-                ->expects($this->once())
-                ->method('sendPhpResponse');
-        }
-
-        $that = $this;
-        $handler->setHandler(function ($e) use ($that) {
-            $that->fail('OutOfMemoryException should bypass the handler');
-        });
-
-        $handler->handle($exception);
-    }
-}
diff --git a/core/vendor/symfony/debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php b/core/vendor/symfony/debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php
deleted file mode 100644
index c939837..0000000
--- a/core/vendor/symfony/debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests\FatalErrorHandler;
-
-use Symfony\Component\ClassLoader\ClassLoader as SymfonyClassLoader;
-use Symfony\Component\ClassLoader\UniversalClassLoader as SymfonyUniversalClassLoader;
-use Symfony\Component\Debug\Exception\FatalErrorException;
-use Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler;
-use Symfony\Component\Debug\DebugClassLoader;
-use Composer\Autoload\ClassLoader as ComposerClassLoader;
-
-class ClassNotFoundFatalErrorHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public static function setUpBeforeClass()
-    {
-        foreach (spl_autoload_functions() as $function) {
-            if (!is_array($function)) {
-                continue;
-            }
-
-            // get class loaders wrapped by DebugClassLoader
-            if ($function[0] instanceof DebugClassLoader) {
-                $function = $function[0]->getClassLoader();
-            }
-
-            if ($function[0] instanceof ComposerClassLoader) {
-                $function[0]->add('Symfony_Component_Debug_Tests_Fixtures', dirname(dirname(dirname(dirname(dirname(__DIR__))))));
-                break;
-            }
-        }
-    }
-
-    /**
-     * @dataProvider provideClassNotFoundData
-     */
-    public function testHandleClassNotFound($error, $translatedMessage, $autoloader = null)
-    {
-        if ($autoloader) {
-            // Unregister all autoloaders to ensure the custom provided
-            // autoloader is the only one to be used during the test run.
-            $autoloaders = spl_autoload_functions();
-            array_map('spl_autoload_unregister', $autoloaders);
-            spl_autoload_register($autoloader);
-        }
-
-        $handler = new ClassNotFoundFatalErrorHandler();
-
-        $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
-
-        if ($autoloader) {
-            spl_autoload_unregister($autoloader);
-            array_map('spl_autoload_register', $autoloaders);
-        }
-
-        $this->assertInstanceOf('Symfony\Component\Debug\Exception\ClassNotFoundException', $exception);
-        $this->assertSame($translatedMessage, $exception->getMessage());
-        $this->assertSame($error['type'], $exception->getSeverity());
-        $this->assertSame($error['file'], $exception->getFile());
-        $this->assertSame($error['line'], $exception->getLine());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyHandleClassNotFound()
-    {
-        $prefixes = array('Symfony\Component\Debug\Exception\\' => realpath(__DIR__.'/../../Exception'));
-        $symfonyUniversalClassLoader = new SymfonyUniversalClassLoader();
-        $symfonyUniversalClassLoader->registerPrefixes($prefixes);
-
-        $this->testHandleClassNotFound(
-            array(
-                'type' => 1,
-                'line' => 12,
-                'file' => 'foo.php',
-                'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
-            ),
-            "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\Bar\".\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
-            array($symfonyUniversalClassLoader, 'loadClass')
-        );
-    }
-
-    public function provideClassNotFoundData()
-    {
-        $prefixes = array('Symfony\Component\Debug\Exception\\' => realpath(__DIR__.'/../../Exception'));
-
-        $symfonyAutoloader = new SymfonyClassLoader();
-        $symfonyAutoloader->addPrefixes($prefixes);
-
-        $debugClassLoader = new DebugClassLoader(array($symfonyAutoloader, 'loadClass'));
-
-        return array(
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'WhizBangFactory\' not found',
-                ),
-                "Attempted to load class \"WhizBangFactory\" from the global namespace.\nDid you forget a \"use\" statement?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'Foo\\Bar\\WhizBangFactory\' not found',
-                ),
-                "Attempted to load class \"WhizBangFactory\" from namespace \"Foo\\Bar\".\nDid you forget a \"use\" statement for another namespace?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'UndefinedFunctionException\' not found',
-                ),
-                "Attempted to load class \"UndefinedFunctionException\" from the global namespace.\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'PEARClass\' not found',
-                ),
-                "Attempted to load class \"PEARClass\" from the global namespace.\nDid you forget a \"use\" statement for \"Symfony_Component_Debug_Tests_Fixtures_PEARClass\"?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
-                ),
-                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\Bar\".\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
-                ),
-                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\Bar\".\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
-                array($symfonyAutoloader, 'loadClass'),
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
-                ),
-                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\Bar\".\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
-                array($debugClassLoader, 'loadClass'),
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
-                ),
-                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\\Bar\".\nDid you forget a \"use\" statement for another namespace?",
-                function ($className) { /* do nothing here */ },
-            ),
-        );
-    }
-
-    public function testCannotRedeclareClass()
-    {
-        if (!file_exists(__DIR__.'/../FIXTURES2/REQUIREDTWICE.PHP')) {
-            $this->markTestSkipped('Can only be run on case insensitive filesystems');
-        }
-
-        require_once __DIR__.'/../FIXTURES2/REQUIREDTWICE.PHP';
-
-        $error = array(
-            'type' => 1,
-            'line' => 12,
-            'file' => 'foo.php',
-            'message' => 'Class \'Foo\\Bar\\RequiredTwice\' not found',
-        );
-
-        $handler = new ClassNotFoundFatalErrorHandler();
-        $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
-
-        $this->assertInstanceOf('Symfony\Component\Debug\Exception\ClassNotFoundException', $exception);
-    }
-}
diff --git a/core/vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedFunctionFatalErrorHandlerTest.php b/core/vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedFunctionFatalErrorHandlerTest.php
deleted file mode 100644
index 795b747..0000000
--- a/core/vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedFunctionFatalErrorHandlerTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests\FatalErrorHandler;
-
-use Symfony\Component\Debug\Exception\FatalErrorException;
-use Symfony\Component\Debug\FatalErrorHandler\UndefinedFunctionFatalErrorHandler;
-
-class UndefinedFunctionFatalErrorHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideUndefinedFunctionData
-     */
-    public function testUndefinedFunction($error, $translatedMessage)
-    {
-        $handler = new UndefinedFunctionFatalErrorHandler();
-        $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
-
-        $this->assertInstanceOf('Symfony\Component\Debug\Exception\UndefinedFunctionException', $exception);
-        // class names are case insensitive and PHP/HHVM do not return the same
-        $this->assertSame(strtolower($translatedMessage), strtolower($exception->getMessage()));
-        $this->assertSame($error['type'], $exception->getSeverity());
-        $this->assertSame($error['file'], $exception->getFile());
-        $this->assertSame($error['line'], $exception->getLine());
-    }
-
-    public function provideUndefinedFunctionData()
-    {
-        return array(
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined function test_namespaced_function()',
-                ),
-                "Attempted to call function \"test_namespaced_function\" from the global namespace.\nDid you mean to call \"\\symfony\\component\\debug\\tests\\fatalerrorhandler\\test_namespaced_function\"?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined function Foo\\Bar\\Baz\\test_namespaced_function()',
-                ),
-                "Attempted to call function \"test_namespaced_function\" from namespace \"Foo\\Bar\\Baz\".\nDid you mean to call \"\\symfony\\component\\debug\\tests\\fatalerrorhandler\\test_namespaced_function\"?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined function foo()',
-                ),
-                'Attempted to call function "foo" from the global namespace.',
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined function Foo\\Bar\\Baz\\foo()',
-                ),
-                'Attempted to call function "foo" from namespace "Foo\Bar\Baz".',
-            ),
-        );
-    }
-}
-
-function test_namespaced_function()
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedMethodFatalErrorHandlerTest.php b/core/vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedMethodFatalErrorHandlerTest.php
deleted file mode 100644
index de7b21c..0000000
--- a/core/vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedMethodFatalErrorHandlerTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests\FatalErrorHandler;
-
-use Symfony\Component\Debug\Exception\FatalErrorException;
-use Symfony\Component\Debug\FatalErrorHandler\UndefinedMethodFatalErrorHandler;
-
-class UndefinedMethodFatalErrorHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideUndefinedMethodData
-     */
-    public function testUndefinedMethod($error, $translatedMessage)
-    {
-        $handler = new UndefinedMethodFatalErrorHandler();
-        $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
-
-        $this->assertInstanceOf('Symfony\Component\Debug\Exception\UndefinedMethodException', $exception);
-        $this->assertSame($translatedMessage, $exception->getMessage());
-        $this->assertSame($error['type'], $exception->getSeverity());
-        $this->assertSame($error['file'], $exception->getFile());
-        $this->assertSame($error['line'], $exception->getLine());
-    }
-
-    public function provideUndefinedMethodData()
-    {
-        return array(
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined method SplObjectStorage::what()',
-                ),
-                'Attempted to call an undefined method named "what" of class "SplObjectStorage".',
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined method SplObjectStorage::walid()',
-                ),
-                "Attempted to call an undefined method named \"walid\" of class \"SplObjectStorage\".\nDid you mean to call \"valid\"?",
-            ),
-            array(
-                array(
-                    'type' => 1,
-                    'line' => 12,
-                    'file' => 'foo.php',
-                    'message' => 'Call to undefined method SplObjectStorage::offsetFet()',
-                ),
-                "Attempted to call an undefined method named \"offsetFet\" of class \"SplObjectStorage\".\nDid you mean to call e.g. \"offsetGet\", \"offsetSet\" or \"offsetUnset\"?",
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/ClassAlias.php b/core/vendor/symfony/debug/Tests/Fixtures/ClassAlias.php
deleted file mode 100644
index 9d6dbaa..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/ClassAlias.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-class_alias('Symfony\Component\Debug\Tests\Fixtures\NotPSR0bis', 'Symfony\Component\Debug\Tests\Fixtures\ClassAlias');
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/DeprecatedClass.php b/core/vendor/symfony/debug/Tests/Fixtures/DeprecatedClass.php
deleted file mode 100644
index b4c78cd..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/DeprecatedClass.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures;
-
-/**
- * @deprecated but this is a test
- *             deprecation notice.
- * @foobar
- */
-class DeprecatedClass
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/DeprecatedInterface.php b/core/vendor/symfony/debug/Tests/Fixtures/DeprecatedInterface.php
deleted file mode 100644
index 505ecca..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/DeprecatedInterface.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures;
-
-/**
- * @deprecated but this is a test
- *             deprecation notice.
- * @foobar
- */
-interface DeprecatedInterface
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/PEARClass.php b/core/vendor/symfony/debug/Tests/Fixtures/PEARClass.php
deleted file mode 100644
index 39f2281..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/PEARClass.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-class Symfony_Component_Debug_Tests_Fixtures_PEARClass
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/casemismatch.php b/core/vendor/symfony/debug/Tests/Fixtures/casemismatch.php
deleted file mode 100644
index 691d660..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/casemismatch.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures;
-
-class CaseMismatch
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/notPsr0Bis.php b/core/vendor/symfony/debug/Tests/Fixtures/notPsr0Bis.php
deleted file mode 100644
index 4cf5267..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/notPsr0Bis.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures;
-
-class NotPSR0bis
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/psr4/Psr4CaseMismatch.php b/core/vendor/symfony/debug/Tests/Fixtures/psr4/Psr4CaseMismatch.php
deleted file mode 100644
index ec48dd2..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/psr4/Psr4CaseMismatch.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures;
-
-class PSR4CaseMismatch
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures/reallyNotPsr0.php b/core/vendor/symfony/debug/Tests/Fixtures/reallyNotPsr0.php
deleted file mode 100644
index 8554725..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures/reallyNotPsr0.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures;
-
-class NotPSR0
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php b/core/vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php
deleted file mode 100644
index 604bc37..0000000
--- a/core/vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Symfony\Component\Debug\Tests\Fixtures2;
-
-class RequiredTwice
-{
-}
diff --git a/core/vendor/symfony/debug/Tests/MockExceptionHandler.php b/core/vendor/symfony/debug/Tests/MockExceptionHandler.php
deleted file mode 100644
index a85d2d1..0000000
--- a/core/vendor/symfony/debug/Tests/MockExceptionHandler.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Debug\Tests;
-
-use Symfony\Component\Debug\ExceptionHandler;
-
-class MockExceptionHandler extends Exceptionhandler
-{
-    public $e;
-
-    public function handle(\Exception $e)
-    {
-        $this->e = $e;
-    }
-}
diff --git a/core/vendor/symfony/debug/composer.json b/core/vendor/symfony/debug/composer.json
deleted file mode 100644
index 3b15688..0000000
--- a/core/vendor/symfony/debug/composer.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    "name": "symfony/debug",
-    "type": "library",
-    "description": "Symfony Debug Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9",
-        "psr/log": "~1.0"
-    },
-    "conflict": {
-        "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/class-loader": "~2.2",
-        "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
-        "symfony/http-foundation": "~2.1"
-    },
-    "suggest": {
-        "symfony/http-foundation": "",
-        "symfony/http-kernel": ""
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Debug\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/debug/phpunit.xml.dist b/core/vendor/symfony/debug/phpunit.xml.dist
deleted file mode 100644
index e99c4dd..0000000
--- a/core/vendor/symfony/debug/phpunit.xml.dist
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Debug Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-        <testsuite name="Symfony Debug Extension Test Suite">
-            <directory suffix=".phpt">./Resources/ext/tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/dependency-injection/.gitignore b/core/vendor/symfony/dependency-injection/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/dependency-injection/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/dependency-injection/Alias.php b/core/vendor/symfony/dependency-injection/Alias.php
deleted file mode 100644
index 025a2d6..0000000
--- a/core/vendor/symfony/dependency-injection/Alias.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * @api
- */
-class Alias
-{
-    private $id;
-    private $public;
-
-    /**
-     * Constructor.
-     *
-     * @param string $id     Alias identifier
-     * @param bool   $public If this alias is public
-     *
-     * @api
-     */
-    public function __construct($id, $public = true)
-    {
-        $this->id = strtolower($id);
-        $this->public = $public;
-    }
-
-    /**
-     * Checks if this DI Alias should be public or not.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isPublic()
-    {
-        return $this->public;
-    }
-
-    /**
-     * Sets if this Alias is public.
-     *
-     * @param bool $boolean If this Alias should be public
-     *
-     * @api
-     */
-    public function setPublic($boolean)
-    {
-        $this->public = (bool) $boolean;
-    }
-
-    /**
-     * Returns the Id of this alias.
-     *
-     * @return string The alias id
-     *
-     * @api
-     */
-    public function __toString()
-    {
-        return $this->id;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/CHANGELOG.md b/core/vendor/symfony/dependency-injection/CHANGELOG.md
deleted file mode 100644
index 4272943..0000000
--- a/core/vendor/symfony/dependency-injection/CHANGELOG.md
+++ /dev/null
@@ -1,45 +0,0 @@
-CHANGELOG
-=========
-
-2.7.0
------
-
- * deprecated synchronized services
-
-2.6.0
------
-
- * added new factory syntax and deprecated the old one
-
-2.5.0
------
-
-* added DecoratorServicePass and a way to override a service definition (Definition::setDecoratedService())
-* deprecated SimpleXMLElement class.
-
-2.4.0
------
-
- * added support for expressions in service definitions
- * added ContainerAwareTrait to add default container aware behavior to a class
-
-2.2.0
------
-
- * added Extension::isConfigEnabled() to ease working with enableable configurations
- * added an Extension base class with sensible defaults to be used in conjunction
-   with the Config component.
- * added PrependExtensionInterface (to be able to allow extensions to prepend
-   application configuration settings for any Bundle)
-
-2.1.0
------
-
- * added IntrospectableContainerInterface (to be able to check if a service
-   has been initialized or not)
- * added ConfigurationExtensionInterface
- * added Definition::clearTag()
- * component exceptions that inherit base SPL classes are now used exclusively
-   (this includes dumped containers)
- * [BC BREAK] fixed unescaping of class arguments, method
-   ParameterBag::unescapeValue() was made public
diff --git a/core/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php b/core/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php
deleted file mode 100644
index 5120eb6..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Run this pass before passes that need to know more about the relation of
- * your services.
- *
- * This class will populate the ServiceReferenceGraph with information. You can
- * retrieve the graph in other passes from the compiler.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class AnalyzeServiceReferencesPass implements RepeatablePassInterface
-{
-    private $graph;
-    private $container;
-    private $currentId;
-    private $currentDefinition;
-    private $repeatedPass;
-    private $onlyConstructorArguments;
-
-    /**
-     * Constructor.
-     *
-     * @param bool $onlyConstructorArguments Sets this Service Reference pass to ignore method calls
-     */
-    public function __construct($onlyConstructorArguments = false)
-    {
-        $this->onlyConstructorArguments = (bool) $onlyConstructorArguments;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setRepeatedPass(RepeatedPass $repeatedPass)
-    {
-        $this->repeatedPass = $repeatedPass;
-    }
-
-    /**
-     * Processes a ContainerBuilder object to populate the service reference graph.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->container = $container;
-        $this->graph = $container->getCompiler()->getServiceReferenceGraph();
-        $this->graph->clear();
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            if ($definition->isSynthetic() || $definition->isAbstract()) {
-                continue;
-            }
-
-            $this->currentId = $id;
-            $this->currentDefinition = $definition;
-
-            $this->processArguments($definition->getArguments());
-            if ($definition->getFactoryService(false)) {
-                $this->processArguments(array(new Reference($definition->getFactoryService(false))));
-            }
-            if (is_array($definition->getFactory())) {
-                $this->processArguments($definition->getFactory());
-            }
-
-            if (!$this->onlyConstructorArguments) {
-                $this->processArguments($definition->getMethodCalls());
-                $this->processArguments($definition->getProperties());
-                if ($definition->getConfigurator()) {
-                    $this->processArguments(array($definition->getConfigurator()));
-                }
-            }
-        }
-
-        foreach ($container->getAliases() as $id => $alias) {
-            $this->graph->connect($id, $alias, (string) $alias, $this->getDefinition((string) $alias), null);
-        }
-    }
-
-    /**
-     * Processes service definitions for arguments to find relationships for the service graph.
-     *
-     * @param array $arguments An array of Reference or Definition objects relating to service definitions
-     */
-    private function processArguments(array $arguments)
-    {
-        foreach ($arguments as $argument) {
-            if (is_array($argument)) {
-                $this->processArguments($argument);
-            } elseif ($argument instanceof Reference) {
-                $this->graph->connect(
-                    $this->currentId,
-                    $this->currentDefinition,
-                    $this->getDefinitionId((string) $argument),
-                    $this->getDefinition((string) $argument),
-                    $argument
-                );
-            } elseif ($argument instanceof Definition) {
-                $this->processArguments($argument->getArguments());
-                $this->processArguments($argument->getMethodCalls());
-                $this->processArguments($argument->getProperties());
-
-                if (is_array($argument->getFactory())) {
-                    $this->processArguments($argument->getFactory());
-                }
-                if ($argument->getFactoryService(false)) {
-                    $this->processArguments(array(new Reference($argument->getFactoryService(false))));
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns a service definition given the full name or an alias.
-     *
-     * @param string $id A full id or alias for a service definition.
-     *
-     * @return Definition|null The definition related to the supplied id
-     */
-    private function getDefinition($id)
-    {
-        $id = $this->getDefinitionId($id);
-
-        return null === $id ? null : $this->container->getDefinition($id);
-    }
-
-    private function getDefinitionId($id)
-    {
-        while ($this->container->hasAlias($id)) {
-            $id = (string) $this->container->getAlias($id);
-        }
-
-        if (!$this->container->hasDefinition($id)) {
-            return;
-        }
-
-        return $id;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php b/core/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php
deleted file mode 100644
index c1f05e0..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * Sets a service to be an alias of another one, given a format pattern.
- */
-class AutoAliasServicePass implements CompilerPassInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function process(ContainerBuilder $container)
-    {
-        foreach ($container->findTaggedServiceIds('auto_alias') as $serviceId => $tags) {
-            foreach ($tags as $tag) {
-                if (!isset($tag['format'])) {
-                    throw new InvalidArgumentException(sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId));
-                }
-
-                $aliasId = $container->getParameterBag()->resolveValue($tag['format']);
-                if ($container->hasDefinition($aliasId) || $container->hasAlias($aliasId)) {
-                    $container->setAlias($serviceId, new Alias($aliasId));
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php b/core/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php
deleted file mode 100644
index d7570dd..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Checks your services for circular references.
- *
- * References from method calls are ignored since we might be able to resolve
- * these references depending on the order in which services are called.
- *
- * Circular reference from method calls will only be detected at run-time.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckCircularReferencesPass implements CompilerPassInterface
-{
-    private $currentPath;
-    private $checkedNodes;
-
-    /**
-     * Checks the ContainerBuilder object for circular references.
-     *
-     * @param ContainerBuilder $container The ContainerBuilder instances
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $graph = $container->getCompiler()->getServiceReferenceGraph();
-
-        $this->checkedNodes = array();
-        foreach ($graph->getNodes() as $id => $node) {
-            $this->currentPath = array($id);
-
-            $this->checkOutEdges($node->getOutEdges());
-        }
-    }
-
-    /**
-     * Checks for circular references.
-     *
-     * @param ServiceReferenceGraphEdge[] $edges An array of Edges
-     *
-     * @throws ServiceCircularReferenceException When a circular reference is found.
-     */
-    private function checkOutEdges(array $edges)
-    {
-        foreach ($edges as $edge) {
-            $node = $edge->getDestNode();
-            $id = $node->getId();
-
-            if (empty($this->checkedNodes[$id])) {
-                $searchKey = array_search($id, $this->currentPath);
-                $this->currentPath[] = $id;
-
-                if (false !== $searchKey) {
-                    throw new ServiceCircularReferenceException($id, array_slice($this->currentPath, $searchKey));
-                }
-
-                $this->checkOutEdges($node->getOutEdges());
-
-                $this->checkedNodes[$id] = true;
-                array_pop($this->currentPath);
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php b/core/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php
deleted file mode 100644
index 219e663..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * This pass validates each definition individually only taking the information
- * into account which is contained in the definition itself.
- *
- * Later passes can rely on the following, and specifically do not need to
- * perform these checks themselves:
- *
- * - non synthetic, non abstract services always have a class set
- * - synthetic services are always public
- * - synthetic services are always of non-prototype scope
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckDefinitionValidityPass implements CompilerPassInterface
-{
-    /**
-     * Processes the ContainerBuilder to validate the Definition.
-     *
-     * @param ContainerBuilder $container
-     *
-     * @throws RuntimeException When the Definition is invalid
-     */
-    public function process(ContainerBuilder $container)
-    {
-        foreach ($container->getDefinitions() as $id => $definition) {
-            // synthetic service is public
-            if ($definition->isSynthetic() && !$definition->isPublic()) {
-                throw new RuntimeException(sprintf('A synthetic service ("%s") must be public.', $id));
-            }
-
-            // synthetic service has non-prototype scope
-            if ($definition->isSynthetic() && ContainerInterface::SCOPE_PROTOTYPE === $definition->getScope()) {
-                throw new RuntimeException(sprintf('A synthetic service ("%s") cannot be of scope "prototype".', $id));
-            }
-
-            if ($definition->getFactory() && ($definition->getFactoryClass(false) || $definition->getFactoryService(false) || $definition->getFactoryMethod(false))) {
-                throw new RuntimeException(sprintf('A service ("%s") can use either the old or the new factory syntax, not both.', $id));
-            }
-
-            // non-synthetic, non-abstract service has class
-            if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass()) {
-                if ($definition->getFactory() || $definition->getFactoryClass(false) || $definition->getFactoryService(false)) {
-                    throw new RuntimeException(sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id));
-                }
-
-                throw new RuntimeException(sprintf(
-                    'The definition for "%s" has no class. If you intend to inject '
-                   .'this service dynamically at runtime, please mark it as synthetic=true. '
-                   .'If this is an abstract definition solely used by child definitions, '
-                   .'please add abstract=true, otherwise specify a class to get rid of this error.',
-                   $id
-                ));
-            }
-
-            // tag attribute values must be scalars
-            foreach ($definition->getTags() as $name => $tags) {
-                foreach ($tags as $attributes) {
-                    foreach ($attributes as $attribute => $value) {
-                        if (!is_scalar($value) && null !== $value) {
-                            throw new RuntimeException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $name, $attribute));
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/core/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
deleted file mode 100644
index 304f784..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Checks that all references are pointing to a valid service.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckExceptionOnInvalidReferenceBehaviorPass implements CompilerPassInterface
-{
-    private $container;
-    private $sourceId;
-
-    public function process(ContainerBuilder $container)
-    {
-        $this->container = $container;
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            $this->sourceId = $id;
-            $this->processDefinition($definition);
-        }
-    }
-
-    private function processDefinition(Definition $definition)
-    {
-        $this->processReferences($definition->getArguments());
-        $this->processReferences($definition->getMethodCalls());
-        $this->processReferences($definition->getProperties());
-    }
-
-    private function processReferences(array $arguments)
-    {
-        foreach ($arguments as $argument) {
-            if (is_array($argument)) {
-                $this->processReferences($argument);
-            } elseif ($argument instanceof Definition) {
-                $this->processDefinition($argument);
-            } elseif ($argument instanceof Reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE === $argument->getInvalidBehavior()) {
-                $destId = (string) $argument;
-
-                if (!$this->container->has($destId)) {
-                    throw new ServiceNotFoundException($destId, $this->sourceId);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php b/core/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php
deleted file mode 100644
index 3d4988d..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Exception\ScopeCrossingInjectionException;
-use Symfony\Component\DependencyInjection\Exception\ScopeWideningInjectionException;
-
-/**
- * Checks the validity of references.
- *
- * The following checks are performed by this pass:
- * - target definitions are not abstract
- * - target definitions are of equal or wider scope
- * - target definitions are in the same scope hierarchy
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckReferenceValidityPass implements CompilerPassInterface
-{
-    private $container;
-    private $currentId;
-    private $currentScope;
-    private $currentScopeAncestors;
-    private $currentScopeChildren;
-
-    /**
-     * Processes the ContainerBuilder to validate References.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->container = $container;
-
-        $children = $this->container->getScopeChildren();
-        $ancestors = array();
-
-        $scopes = $this->container->getScopes();
-        foreach ($scopes as $name => $parent) {
-            $ancestors[$name] = array($parent);
-
-            while (isset($scopes[$parent])) {
-                $ancestors[$name][] = $parent = $scopes[$parent];
-            }
-        }
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            if ($definition->isSynthetic() || $definition->isAbstract()) {
-                continue;
-            }
-
-            $this->currentId = $id;
-            $this->currentDefinition = $definition;
-            $this->currentScope = $scope = $definition->getScope();
-
-            if (ContainerInterface::SCOPE_CONTAINER === $scope) {
-                $this->currentScopeChildren = array_keys($scopes);
-                $this->currentScopeAncestors = array();
-            } elseif (ContainerInterface::SCOPE_PROTOTYPE !== $scope) {
-                $this->currentScopeChildren = isset($children[$scope]) ? $children[$scope] : array();
-                $this->currentScopeAncestors = isset($ancestors[$scope]) ? $ancestors[$scope] : array();
-            }
-
-            $this->validateReferences($definition->getArguments());
-            $this->validateReferences($definition->getMethodCalls());
-            $this->validateReferences($definition->getProperties());
-        }
-    }
-
-    /**
-     * Validates an array of References.
-     *
-     * @param array $arguments An array of Reference objects
-     *
-     * @throws RuntimeException when there is a reference to an abstract definition.
-     */
-    private function validateReferences(array $arguments)
-    {
-        foreach ($arguments as $argument) {
-            if (is_array($argument)) {
-                $this->validateReferences($argument);
-            } elseif ($argument instanceof Reference) {
-                $targetDefinition = $this->getDefinition((string) $argument);
-
-                if (null !== $targetDefinition && $targetDefinition->isAbstract()) {
-                    throw new RuntimeException(sprintf(
-                        'The definition "%s" has a reference to an abstract definition "%s". '
-                       .'Abstract definitions cannot be the target of references.',
-                       $this->currentId,
-                       $argument
-                    ));
-                }
-
-                $this->validateScope($argument, $targetDefinition);
-            }
-        }
-    }
-
-    /**
-     * Validates the scope of a single Reference.
-     *
-     * @param Reference  $reference
-     * @param Definition $definition
-     *
-     * @throws ScopeWideningInjectionException when the definition references a service of a narrower scope
-     * @throws ScopeCrossingInjectionException when the definition references a service of another scope hierarchy
-     */
-    private function validateScope(Reference $reference, Definition $definition = null)
-    {
-        if (ContainerInterface::SCOPE_PROTOTYPE === $this->currentScope) {
-            return;
-        }
-
-        if (!$reference->isStrict()) {
-            return;
-        }
-
-        if (null === $definition) {
-            return;
-        }
-
-        if ($this->currentScope === $scope = $definition->getScope()) {
-            return;
-        }
-
-        $id = (string) $reference;
-
-        if (in_array($scope, $this->currentScopeChildren, true)) {
-            throw new ScopeWideningInjectionException($this->currentId, $this->currentScope, $id, $scope);
-        }
-
-        if (!in_array($scope, $this->currentScopeAncestors, true)) {
-            throw new ScopeCrossingInjectionException($this->currentId, $this->currentScope, $id, $scope);
-        }
-    }
-
-    /**
-     * Returns the Definition given an id.
-     *
-     * @param string $id Definition identifier
-     *
-     * @return Definition
-     */
-    private function getDefinition($id)
-    {
-        if (!$this->container->hasDefinition($id)) {
-            return;
-        }
-
-        return $this->container->getDefinition($id);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/Compiler.php b/core/vendor/symfony/dependency-injection/Compiler/Compiler.php
deleted file mode 100644
index 4dfa9cf..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/Compiler.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * This class is used to remove circular dependencies between individual passes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class Compiler
-{
-    private $passConfig;
-    private $log = array();
-    private $loggingFormatter;
-    private $serviceReferenceGraph;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->passConfig = new PassConfig();
-        $this->serviceReferenceGraph = new ServiceReferenceGraph();
-        $this->loggingFormatter = new LoggingFormatter();
-    }
-
-    /**
-     * Returns the PassConfig.
-     *
-     * @return PassConfig The PassConfig instance
-     *
-     * @api
-     */
-    public function getPassConfig()
-    {
-        return $this->passConfig;
-    }
-
-    /**
-     * Returns the ServiceReferenceGraph.
-     *
-     * @return ServiceReferenceGraph The ServiceReferenceGraph instance
-     *
-     * @api
-     */
-    public function getServiceReferenceGraph()
-    {
-        return $this->serviceReferenceGraph;
-    }
-
-    /**
-     * Returns the logging formatter which can be used by compilation passes.
-     *
-     * @return LoggingFormatter
-     */
-    public function getLoggingFormatter()
-    {
-        return $this->loggingFormatter;
-    }
-
-    /**
-     * Adds a pass to the PassConfig.
-     *
-     * @param CompilerPassInterface $pass A compiler pass
-     * @param string                $type The type of the pass
-     *
-     * @api
-     */
-    public function addPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)
-    {
-        $this->passConfig->addPass($pass, $type);
-    }
-
-    /**
-     * Adds a log message.
-     *
-     * @param string $string The log message
-     */
-    public function addLogMessage($string)
-    {
-        $this->log[] = $string;
-    }
-
-    /**
-     * Returns the log.
-     *
-     * @return array Log array
-     */
-    public function getLog()
-    {
-        return $this->log;
-    }
-
-    /**
-     * Run the Compiler and process all Passes.
-     *
-     * @param ContainerBuilder $container
-     *
-     * @api
-     */
-    public function compile(ContainerBuilder $container)
-    {
-        foreach ($this->passConfig->getPasses() as $pass) {
-            $pass->process($container);
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php b/core/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php
deleted file mode 100644
index 7648605..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Interface that must be implemented by compilation passes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-interface CompilerPassInterface
-{
-    /**
-     * You can modify the container here before it is dumped to PHP code.
-     *
-     * @param ContainerBuilder $container
-     *
-     * @api
-     */
-    public function process(ContainerBuilder $container);
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php b/core/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php
deleted file mode 100644
index ef0a19c..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Alias;
-
-/**
- * Overwrites a service but keeps the overridden one.
- *
- * @author Christophe Coevoet <stof@notk.org>
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class DecoratorServicePass implements CompilerPassInterface
-{
-    public function process(ContainerBuilder $container)
-    {
-        foreach ($container->getDefinitions() as $id => $definition) {
-            if (!$decorated = $definition->getDecoratedService()) {
-                continue;
-            }
-            $definition->setDecoratedService(null);
-
-            list($inner, $renamedId) = $decorated;
-            if (!$renamedId) {
-                $renamedId = $id.'.inner';
-            }
-
-            // we create a new alias/service for the service we are replacing
-            // to be able to reference it in the new one
-            if ($container->hasAlias($inner)) {
-                $alias = $container->getAlias($inner);
-                $public = $alias->isPublic();
-                $container->setAlias($renamedId, new Alias((string) $alias, false));
-            } else {
-                $definition = $container->getDefinition($inner);
-                $public = $definition->isPublic();
-                $definition->setPublic(false);
-                $container->setDefinition($renamedId, $definition);
-            }
-
-            $container->setAlias($inner, new Alias($id, $public));
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php
deleted file mode 100644
index 026700d..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Inline service definitions where this is possible.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class InlineServiceDefinitionsPass implements RepeatablePassInterface
-{
-    private $repeatedPass;
-    private $graph;
-    private $compiler;
-    private $formatter;
-    private $currentId;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setRepeatedPass(RepeatedPass $repeatedPass)
-    {
-        $this->repeatedPass = $repeatedPass;
-    }
-
-    /**
-     * Processes the ContainerBuilder for inline service definitions.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->compiler = $container->getCompiler();
-        $this->formatter = $this->compiler->getLoggingFormatter();
-        $this->graph = $this->compiler->getServiceReferenceGraph();
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            $this->currentId = $id;
-
-            $definition->setArguments(
-                $this->inlineArguments($container, $definition->getArguments())
-            );
-
-            $definition->setMethodCalls(
-                $this->inlineArguments($container, $definition->getMethodCalls())
-            );
-
-            $definition->setProperties(
-                $this->inlineArguments($container, $definition->getProperties())
-            );
-
-            $configurator = $this->inlineArguments($container, array($definition->getConfigurator()));
-            $definition->setConfigurator($configurator[0]);
-
-            $factory = $this->inlineArguments($container, array($definition->getFactory()));
-            $definition->setFactory($factory[0]);
-        }
-    }
-
-    /**
-     * Processes inline arguments.
-     *
-     * @param ContainerBuilder $container The ContainerBuilder
-     * @param array            $arguments An array of arguments
-     *
-     * @return array
-     */
-    private function inlineArguments(ContainerBuilder $container, array $arguments)
-    {
-        foreach ($arguments as $k => $argument) {
-            if (is_array($argument)) {
-                $arguments[$k] = $this->inlineArguments($container, $argument);
-            } elseif ($argument instanceof Reference) {
-                if (!$container->hasDefinition($id = (string) $argument)) {
-                    continue;
-                }
-
-                if ($this->isInlineableDefinition($container, $id, $definition = $container->getDefinition($id))) {
-                    $this->compiler->addLogMessage($this->formatter->formatInlineService($this, $id, $this->currentId));
-
-                    if (ContainerInterface::SCOPE_PROTOTYPE !== $definition->getScope()) {
-                        $arguments[$k] = $definition;
-                    } else {
-                        $arguments[$k] = clone $definition;
-                    }
-                }
-            } elseif ($argument instanceof Definition) {
-                $argument->setArguments($this->inlineArguments($container, $argument->getArguments()));
-                $argument->setMethodCalls($this->inlineArguments($container, $argument->getMethodCalls()));
-                $argument->setProperties($this->inlineArguments($container, $argument->getProperties()));
-            }
-        }
-
-        return $arguments;
-    }
-
-    /**
-     * Checks if the definition is inlineable.
-     *
-     * @param ContainerBuilder $container
-     * @param string           $id
-     * @param Definition       $definition
-     *
-     * @return bool If the definition is inlineable
-     */
-    private function isInlineableDefinition(ContainerBuilder $container, $id, Definition $definition)
-    {
-        if (ContainerInterface::SCOPE_PROTOTYPE === $definition->getScope()) {
-            return true;
-        }
-
-        if ($definition->isPublic() || $definition->isLazy()) {
-            return false;
-        }
-
-        if (!$this->graph->hasNode($id)) {
-            return true;
-        }
-
-        if ($this->currentId == $id) {
-            return false;
-        }
-
-        $ids = array();
-        foreach ($this->graph->getNode($id)->getInEdges() as $edge) {
-            $ids[] = $edge->getSourceNode()->getId();
-        }
-
-        if (count(array_unique($ids)) > 1) {
-            return false;
-        }
-
-        if (count($ids) > 1 && is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) {
-            return false;
-        }
-
-        if (count($ids) > 1 && $definition->getFactoryService(false)) {
-            return false;
-        }
-
-        return $container->getDefinition(reset($ids))->getScope() === $definition->getScope();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/LoggingFormatter.php b/core/vendor/symfony/dependency-injection/Compiler/LoggingFormatter.php
deleted file mode 100644
index 6bd6161..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/LoggingFormatter.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-/**
- * Used to format logging messages during the compilation.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class LoggingFormatter
-{
-    public function formatRemoveService(CompilerPassInterface $pass, $id, $reason)
-    {
-        return $this->format($pass, sprintf('Removed service "%s"; reason: %s', $id, $reason));
-    }
-
-    public function formatInlineService(CompilerPassInterface $pass, $id, $target)
-    {
-        return $this->format($pass, sprintf('Inlined service "%s" to "%s".', $id, $target));
-    }
-
-    public function formatUpdateReference(CompilerPassInterface $pass, $serviceId, $oldDestId, $newDestId)
-    {
-        return $this->format($pass, sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $serviceId, $oldDestId, $newDestId));
-    }
-
-    public function formatResolveInheritance(CompilerPassInterface $pass, $childId, $parentId)
-    {
-        return $this->format($pass, sprintf('Resolving inheritance for "%s" (parent: %s).', $childId, $parentId));
-    }
-
-    public function format(CompilerPassInterface $pass, $message)
-    {
-        return sprintf('%s: %s', get_class($pass), $message);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php b/core/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php
deleted file mode 100644
index f9e6024..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
-
-/**
- * Merges extension configs into the container builder.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class MergeExtensionConfigurationPass implements CompilerPassInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $parameters = $container->getParameterBag()->all();
-        $definitions = $container->getDefinitions();
-        $aliases = $container->getAliases();
-        $exprLangProviders = $container->getExpressionLanguageProviders();
-
-        foreach ($container->getExtensions() as $extension) {
-            if ($extension instanceof PrependExtensionInterface) {
-                $extension->prepend($container);
-            }
-        }
-
-        foreach ($container->getExtensions() as $name => $extension) {
-            if (!$config = $container->getExtensionConfig($name)) {
-                // this extension was not called
-                continue;
-            }
-            $config = $container->getParameterBag()->resolveValue($config);
-
-            $tmpContainer = new ContainerBuilder($container->getParameterBag());
-            $tmpContainer->setResourceTracking($container->isTrackingResources());
-            $tmpContainer->addObjectResource($extension);
-
-            foreach ($exprLangProviders as $provider) {
-                $tmpContainer->addExpressionLanguageProvider($provider);
-            }
-
-            $extension->load($config, $tmpContainer);
-
-            $container->merge($tmpContainer);
-            $container->getParameterBag()->add($parameters);
-        }
-
-        $container->addDefinitions($definitions);
-        $container->addAliases($aliases);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/PassConfig.php b/core/vendor/symfony/dependency-injection/Compiler/PassConfig.php
deleted file mode 100644
index 044529e..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/PassConfig.php
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * Compiler Pass Configuration.
- *
- * This class has a default configuration embedded.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class PassConfig
-{
-    const TYPE_AFTER_REMOVING = 'afterRemoving';
-    const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization';
-    const TYPE_BEFORE_REMOVING = 'beforeRemoving';
-    const TYPE_OPTIMIZE = 'optimization';
-    const TYPE_REMOVE = 'removing';
-
-    private $mergePass;
-    private $afterRemovingPasses = array();
-    private $beforeOptimizationPasses = array();
-    private $beforeRemovingPasses = array();
-    private $optimizationPasses;
-    private $removingPasses;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->mergePass = new MergeExtensionConfigurationPass();
-
-        $this->optimizationPasses = array(
-            new ResolveDefinitionTemplatesPass(),
-            new DecoratorServicePass(),
-            new ResolveParameterPlaceHoldersPass(),
-            new CheckDefinitionValidityPass(),
-            new ResolveReferencesToAliasesPass(),
-            new ResolveInvalidReferencesPass(),
-            new AnalyzeServiceReferencesPass(true),
-            new CheckCircularReferencesPass(),
-            new CheckReferenceValidityPass(),
-        );
-
-        $this->removingPasses = array(
-            new RemovePrivateAliasesPass(),
-            new RemoveAbstractDefinitionsPass(),
-            new ReplaceAliasByActualDefinitionPass(),
-            new RepeatedPass(array(
-                new AnalyzeServiceReferencesPass(),
-                new InlineServiceDefinitionsPass(),
-                new AnalyzeServiceReferencesPass(),
-                new RemoveUnusedDefinitionsPass(),
-            )),
-            new CheckExceptionOnInvalidReferenceBehaviorPass(),
-        );
-    }
-
-    /**
-     * Returns all passes in order to be processed.
-     *
-     * @return array An array of all passes to process
-     *
-     * @api
-     */
-    public function getPasses()
-    {
-        return array_merge(
-            array($this->mergePass),
-            $this->beforeOptimizationPasses,
-            $this->optimizationPasses,
-            $this->beforeRemovingPasses,
-            $this->removingPasses,
-            $this->afterRemovingPasses
-        );
-    }
-
-    /**
-     * Adds a pass.
-     *
-     * @param CompilerPassInterface $pass A Compiler pass
-     * @param string                $type The pass type
-     *
-     * @throws InvalidArgumentException when a pass type doesn't exist
-     *
-     * @api
-     */
-    public function addPass(CompilerPassInterface $pass, $type = self::TYPE_BEFORE_OPTIMIZATION)
-    {
-        $property = $type.'Passes';
-        if (!isset($this->$property)) {
-            throw new InvalidArgumentException(sprintf('Invalid type "%s".', $type));
-        }
-
-        $passes = &$this->$property;
-        $passes[] = $pass;
-    }
-
-    /**
-     * Gets all passes for the AfterRemoving pass.
-     *
-     * @return array An array of passes
-     *
-     * @api
-     */
-    public function getAfterRemovingPasses()
-    {
-        return $this->afterRemovingPasses;
-    }
-
-    /**
-     * Gets all passes for the BeforeOptimization pass.
-     *
-     * @return array An array of passes
-     *
-     * @api
-     */
-    public function getBeforeOptimizationPasses()
-    {
-        return $this->beforeOptimizationPasses;
-    }
-
-    /**
-     * Gets all passes for the BeforeRemoving pass.
-     *
-     * @return array An array of passes
-     *
-     * @api
-     */
-    public function getBeforeRemovingPasses()
-    {
-        return $this->beforeRemovingPasses;
-    }
-
-    /**
-     * Gets all passes for the Optimization pass.
-     *
-     * @return array An array of passes
-     *
-     * @api
-     */
-    public function getOptimizationPasses()
-    {
-        return $this->optimizationPasses;
-    }
-
-    /**
-     * Gets all passes for the Removing pass.
-     *
-     * @return array An array of passes
-     *
-     * @api
-     */
-    public function getRemovingPasses()
-    {
-        return $this->removingPasses;
-    }
-
-    /**
-     * Gets all passes for the Merge pass.
-     *
-     * @return array An array of passes
-     *
-     * @api
-     */
-    public function getMergePass()
-    {
-        return $this->mergePass;
-    }
-
-    /**
-     * Sets the Merge Pass.
-     *
-     * @param CompilerPassInterface $pass The merge pass
-     *
-     * @api
-     */
-    public function setMergePass(CompilerPassInterface $pass)
-    {
-        $this->mergePass = $pass;
-    }
-
-    /**
-     * Sets the AfterRemoving passes.
-     *
-     * @param array $passes An array of passes
-     *
-     * @api
-     */
-    public function setAfterRemovingPasses(array $passes)
-    {
-        $this->afterRemovingPasses = $passes;
-    }
-
-    /**
-     * Sets the BeforeOptimization passes.
-     *
-     * @param array $passes An array of passes
-     *
-     * @api
-     */
-    public function setBeforeOptimizationPasses(array $passes)
-    {
-        $this->beforeOptimizationPasses = $passes;
-    }
-
-    /**
-     * Sets the BeforeRemoving passes.
-     *
-     * @param array $passes An array of passes
-     *
-     * @api
-     */
-    public function setBeforeRemovingPasses(array $passes)
-    {
-        $this->beforeRemovingPasses = $passes;
-    }
-
-    /**
-     * Sets the Optimization passes.
-     *
-     * @param array $passes An array of passes
-     *
-     * @api
-     */
-    public function setOptimizationPasses(array $passes)
-    {
-        $this->optimizationPasses = $passes;
-    }
-
-    /**
-     * Sets the Removing passes.
-     *
-     * @param array $passes An array of passes
-     *
-     * @api
-     */
-    public function setRemovingPasses(array $passes)
-    {
-        $this->removingPasses = $passes;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php
deleted file mode 100644
index 0ef0af0..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Removes abstract Definitions.
- */
-class RemoveAbstractDefinitionsPass implements CompilerPassInterface
-{
-    /**
-     * Removes abstract definitions from the ContainerBuilder.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $compiler = $container->getCompiler();
-        $formatter = $compiler->getLoggingFormatter();
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            if ($definition->isAbstract()) {
-                $container->removeDefinition($id);
-                $compiler->addLogMessage($formatter->formatRemoveService($this, $id, 'abstract'));
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php b/core/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php
deleted file mode 100644
index 5c53a33..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Remove private aliases from the container. They were only used to establish
- * dependencies between services, and these dependencies have been resolved in
- * one of the previous passes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RemovePrivateAliasesPass implements CompilerPassInterface
-{
-    /**
-     * Removes private aliases from the ContainerBuilder.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $compiler = $container->getCompiler();
-        $formatter = $compiler->getLoggingFormatter();
-
-        foreach ($container->getAliases() as $id => $alias) {
-            if ($alias->isPublic()) {
-                continue;
-            }
-
-            $container->removeAlias($id);
-            $compiler->addLogMessage($formatter->formatRemoveService($this, $id, 'private alias'));
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php
deleted file mode 100644
index 9e18a9e..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Removes unused service definitions from the container.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RemoveUnusedDefinitionsPass implements RepeatablePassInterface
-{
-    private $repeatedPass;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setRepeatedPass(RepeatedPass $repeatedPass)
-    {
-        $this->repeatedPass = $repeatedPass;
-    }
-
-    /**
-     * Processes the ContainerBuilder to remove unused definitions.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $compiler = $container->getCompiler();
-        $formatter = $compiler->getLoggingFormatter();
-        $graph = $compiler->getServiceReferenceGraph();
-
-        $hasChanged = false;
-        foreach ($container->getDefinitions() as $id => $definition) {
-            if ($definition->isPublic()) {
-                continue;
-            }
-
-            if ($graph->hasNode($id)) {
-                $edges = $graph->getNode($id)->getInEdges();
-                $referencingAliases = array();
-                $sourceIds = array();
-                foreach ($edges as $edge) {
-                    $node = $edge->getSourceNode();
-                    $sourceIds[] = $node->getId();
-
-                    if ($node->isAlias()) {
-                        $referencingAliases[] = $node->getValue();
-                    }
-                }
-                $isReferenced = (count(array_unique($sourceIds)) - count($referencingAliases)) > 0;
-            } else {
-                $referencingAliases = array();
-                $isReferenced = false;
-            }
-
-            if (1 === count($referencingAliases) && false === $isReferenced) {
-                $container->setDefinition((string) reset($referencingAliases), $definition);
-                $definition->setPublic(true);
-                $container->removeDefinition($id);
-                $compiler->addLogMessage($formatter->formatRemoveService($this, $id, 'replaces alias '.reset($referencingAliases)));
-            } elseif (0 === count($referencingAliases) && false === $isReferenced) {
-                $container->removeDefinition($id);
-                $compiler->addLogMessage($formatter->formatRemoveService($this, $id, 'unused'));
-                $hasChanged = true;
-            }
-        }
-
-        if ($hasChanged) {
-            $this->repeatedPass->setRepeat();
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php b/core/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php
deleted file mode 100644
index d60ae35..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-/**
- * Interface that must be implemented by passes that are run as part of an
- * RepeatedPass.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface RepeatablePassInterface extends CompilerPassInterface
-{
-    /**
-     * Sets the RepeatedPass interface.
-     *
-     * @param RepeatedPass $repeatedPass
-     */
-    public function setRepeatedPass(RepeatedPass $repeatedPass);
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php b/core/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php
deleted file mode 100644
index e34b068..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * A pass that might be run repeatedly.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RepeatedPass implements CompilerPassInterface
-{
-    /**
-     * @var bool
-     */
-    private $repeat = false;
-
-    /**
-     * @var RepeatablePassInterface[]
-     */
-    private $passes;
-
-    /**
-     * Constructor.
-     *
-     * @param RepeatablePassInterface[] $passes An array of RepeatablePassInterface objects
-     *
-     * @throws InvalidArgumentException when the passes don't implement RepeatablePassInterface
-     */
-    public function __construct(array $passes)
-    {
-        foreach ($passes as $pass) {
-            if (!$pass instanceof RepeatablePassInterface) {
-                throw new InvalidArgumentException('$passes must be an array of RepeatablePassInterface.');
-            }
-
-            $pass->setRepeatedPass($this);
-        }
-
-        $this->passes = $passes;
-    }
-
-    /**
-     * Process the repeatable passes that run more than once.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->repeat = false;
-        foreach ($this->passes as $pass) {
-            $pass->process($container);
-        }
-
-        if ($this->repeat) {
-            $this->process($container);
-        }
-    }
-
-    /**
-     * Sets if the pass should repeat.
-     */
-    public function setRepeat()
-    {
-        $this->repeat = true;
-    }
-
-    /**
-     * Returns the passes.
-     *
-     * @return RepeatablePassInterface[] An array of RepeatablePassInterface objects
-     */
-    public function getPasses()
-    {
-        return $this->passes;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php b/core/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php
deleted file mode 100644
index 972d708..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Replaces aliases with actual service definitions, effectively removing these
- * aliases.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ReplaceAliasByActualDefinitionPass implements CompilerPassInterface
-{
-    private $compiler;
-    private $formatter;
-    private $sourceId;
-
-    /**
-     * Process the Container to replace aliases with service definitions.
-     *
-     * @param ContainerBuilder $container
-     *
-     * @throws InvalidArgumentException if the service definition does not exist
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->compiler = $container->getCompiler();
-        $this->formatter = $this->compiler->getLoggingFormatter();
-
-        foreach ($container->getAliases() as $id => $alias) {
-            $aliasId = (string) $alias;
-
-            try {
-                $definition = $container->getDefinition($aliasId);
-            } catch (InvalidArgumentException $e) {
-                throw new InvalidArgumentException(sprintf('Unable to replace alias "%s" with "%s".', $alias, $id), null, $e);
-            }
-
-            if ($definition->isPublic()) {
-                continue;
-            }
-
-            $definition->setPublic(true);
-            $container->setDefinition($id, $definition);
-            $container->removeDefinition($aliasId);
-
-            $this->updateReferences($container, $aliasId, $id);
-
-            // we have to restart the process due to concurrent modification of
-            // the container
-            $this->process($container);
-
-            break;
-        }
-    }
-
-    /**
-     * Updates references to remove aliases.
-     *
-     * @param ContainerBuilder $container The container
-     * @param string           $currentId The alias identifier being replaced
-     * @param string           $newId     The id of the service the alias points to
-     */
-    private function updateReferences($container, $currentId, $newId)
-    {
-        foreach ($container->getAliases() as $id => $alias) {
-            if ($currentId === (string) $alias) {
-                $container->setAlias($id, $newId);
-            }
-        }
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            $this->sourceId = $id;
-
-            $definition->setArguments(
-                $this->updateArgumentReferences($definition->getArguments(), $currentId, $newId)
-            );
-
-            $definition->setMethodCalls(
-                $this->updateArgumentReferences($definition->getMethodCalls(), $currentId, $newId)
-            );
-
-            $definition->setProperties(
-                $this->updateArgumentReferences($definition->getProperties(), $currentId, $newId)
-            );
-        }
-    }
-
-    /**
-     * Updates argument references.
-     *
-     * @param array  $arguments An array of Arguments
-     * @param string $currentId The alias identifier
-     * @param string $newId     The identifier the alias points to
-     *
-     * @return array
-     */
-    private function updateArgumentReferences(array $arguments, $currentId, $newId)
-    {
-        foreach ($arguments as $k => $argument) {
-            if (is_array($argument)) {
-                $arguments[$k] = $this->updateArgumentReferences($argument, $currentId, $newId);
-            } elseif ($argument instanceof Reference) {
-                if ($currentId === (string) $argument) {
-                    $arguments[$k] = new Reference($newId, $argument->getInvalidBehavior());
-                    $this->compiler->addLogMessage($this->formatter->formatUpdateReference($this, $this->sourceId, $currentId, $newId));
-                }
-            }
-        }
-
-        return $arguments;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ResolveDefinitionTemplatesPass.php b/core/vendor/symfony/dependency-injection/Compiler/ResolveDefinitionTemplatesPass.php
deleted file mode 100644
index 3fc6a11..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ResolveDefinitionTemplatesPass.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\DefinitionDecorator;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * This replaces all DefinitionDecorator instances with their equivalent fully
- * merged Definition instance.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveDefinitionTemplatesPass implements CompilerPassInterface
-{
-    private $container;
-    private $compiler;
-    private $formatter;
-
-    /**
-     * Process the ContainerBuilder to replace DefinitionDecorator instances with their real Definition instances.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->container = $container;
-        $this->compiler = $container->getCompiler();
-        $this->formatter = $this->compiler->getLoggingFormatter();
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            // yes, we are specifically fetching the definition from the
-            // container to ensure we are not operating on stale data
-            $definition = $container->getDefinition($id);
-            if (!$definition instanceof DefinitionDecorator || $definition->isAbstract()) {
-                continue;
-            }
-
-            $this->resolveDefinition($id, $definition);
-        }
-    }
-
-    /**
-     * Resolves the definition.
-     *
-     * @param string              $id         The definition identifier
-     * @param DefinitionDecorator $definition
-     *
-     * @return Definition
-     *
-     * @throws \RuntimeException When the definition is invalid
-     */
-    private function resolveDefinition($id, DefinitionDecorator $definition)
-    {
-        if (!$this->container->hasDefinition($parent = $definition->getParent())) {
-            throw new RuntimeException(sprintf('The parent definition "%s" defined for definition "%s" does not exist.', $parent, $id));
-        }
-
-        $parentDef = $this->container->getDefinition($parent);
-        if ($parentDef instanceof DefinitionDecorator) {
-            $parentDef = $this->resolveDefinition($parent, $parentDef);
-        }
-
-        $this->compiler->addLogMessage($this->formatter->formatResolveInheritance($this, $id, $parent));
-        $def = new Definition();
-
-        // merge in parent definition
-        // purposely ignored attributes: scope, abstract, tags
-        $def->setClass($parentDef->getClass());
-        $def->setArguments($parentDef->getArguments());
-        $def->setMethodCalls($parentDef->getMethodCalls());
-        $def->setProperties($parentDef->getProperties());
-        if ($parentDef->getFactoryClass(false)) {
-            $def->setFactoryClass($parentDef->getFactoryClass(false));
-        }
-        if ($parentDef->getFactoryMethod(false)) {
-            $def->setFactoryMethod($parentDef->getFactoryMethod(false));
-        }
-        if ($parentDef->getFactoryService(false)) {
-            $def->setFactoryService($parentDef->getFactoryService(false));
-        }
-        $def->setFactory($parentDef->getFactory());
-        $def->setConfigurator($parentDef->getConfigurator());
-        $def->setFile($parentDef->getFile());
-        $def->setPublic($parentDef->isPublic());
-        $def->setLazy($parentDef->isLazy());
-
-        // overwrite with values specified in the decorator
-        $changes = $definition->getChanges();
-        if (isset($changes['class'])) {
-            $def->setClass($definition->getClass());
-        }
-        if (isset($changes['factory_class'])) {
-            $def->setFactoryClass($definition->getFactoryClass(false));
-        }
-        if (isset($changes['factory_method'])) {
-            $def->setFactoryMethod($definition->getFactoryMethod(false));
-        }
-        if (isset($changes['factory_service'])) {
-            $def->setFactoryService($definition->getFactoryService(false));
-        }
-        if (isset($changes['factory'])) {
-            $def->setFactory($definition->getFactory());
-        }
-        if (isset($changes['configurator'])) {
-            $def->setConfigurator($definition->getConfigurator());
-        }
-        if (isset($changes['file'])) {
-            $def->setFile($definition->getFile());
-        }
-        if (isset($changes['public'])) {
-            $def->setPublic($definition->isPublic());
-        }
-        if (isset($changes['lazy'])) {
-            $def->setLazy($definition->isLazy());
-        }
-        if (isset($changes['decorated_service'])) {
-            $decoratedService = $definition->getDecoratedService();
-            if (null === $decoratedService) {
-                $def->setDecoratedService($decoratedService);
-            } else {
-                $def->setDecoratedService($decoratedService[0], $decoratedService[1]);
-            }
-        }
-
-        // merge arguments
-        foreach ($definition->getArguments() as $k => $v) {
-            if (is_numeric($k)) {
-                $def->addArgument($v);
-                continue;
-            }
-
-            if (0 !== strpos($k, 'index_')) {
-                throw new RuntimeException(sprintf('Invalid argument key "%s" found.', $k));
-            }
-
-            $index = (int) substr($k, strlen('index_'));
-            $def->replaceArgument($index, $v);
-        }
-
-        // merge properties
-        foreach ($definition->getProperties() as $k => $v) {
-            $def->setProperty($k, $v);
-        }
-
-        // append method calls
-        if (count($calls = $definition->getMethodCalls()) > 0) {
-            $def->setMethodCalls(array_merge($def->getMethodCalls(), $calls));
-        }
-
-        // these attributes are always taken from the child
-        $def->setAbstract($definition->isAbstract());
-        $def->setScope($definition->getScope());
-        $def->setTags($definition->getTags());
-
-        // set new definition on container
-        $this->container->setDefinition($id, $def);
-
-        return $def;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php b/core/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php
deleted file mode 100644
index 85dbceb..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * Emulates the invalid behavior if the reference is not found within the
- * container.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveInvalidReferencesPass implements CompilerPassInterface
-{
-    private $container;
-
-    /**
-     * Process the ContainerBuilder to resolve invalid references.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->container = $container;
-        foreach ($container->getDefinitions() as $definition) {
-            if ($definition->isSynthetic() || $definition->isAbstract()) {
-                continue;
-            }
-
-            $definition->setArguments(
-                $this->processArguments($definition->getArguments())
-            );
-
-            $calls = array();
-            foreach ($definition->getMethodCalls() as $call) {
-                try {
-                    $calls[] = array($call[0], $this->processArguments($call[1], true));
-                } catch (RuntimeException $e) {
-                    // this call is simply removed
-                }
-            }
-            $definition->setMethodCalls($calls);
-
-            $properties = array();
-            foreach ($definition->getProperties() as $name => $value) {
-                try {
-                    $value = $this->processArguments(array($value), true);
-                    $properties[$name] = reset($value);
-                } catch (RuntimeException $e) {
-                    // ignore property
-                }
-            }
-            $definition->setProperties($properties);
-        }
-    }
-
-    /**
-     * Processes arguments to determine invalid references.
-     *
-     * @param array $arguments    An array of Reference objects
-     * @param bool  $inMethodCall
-     *
-     * @return array
-     *
-     * @throws RuntimeException When the config is invalid
-     */
-    private function processArguments(array $arguments, $inMethodCall = false)
-    {
-        foreach ($arguments as $k => $argument) {
-            if (is_array($argument)) {
-                $arguments[$k] = $this->processArguments($argument, $inMethodCall);
-            } elseif ($argument instanceof Reference) {
-                $id = (string) $argument;
-
-                $invalidBehavior = $argument->getInvalidBehavior();
-                $exists = $this->container->has($id);
-
-                // resolve invalid behavior
-                if (!$exists && ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) {
-                    $arguments[$k] = null;
-                } elseif (!$exists && ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) {
-                    if ($inMethodCall) {
-                        throw new RuntimeException('Method shouldn\'t be called.');
-                    }
-
-                    $arguments[$k] = null;
-                }
-            }
-        }
-
-        return $arguments;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php b/core/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php
deleted file mode 100644
index a35f84c..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-
-/**
- * Resolves all parameter placeholders "%somevalue%" to their real values.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveParameterPlaceHoldersPass implements CompilerPassInterface
-{
-    /**
-     * Processes the ContainerBuilder to resolve parameter placeholders.
-     *
-     * @param ContainerBuilder $container
-     *
-     * @throws ParameterNotFoundException
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $parameterBag = $container->getParameterBag();
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            try {
-                $definition->setClass($parameterBag->resolveValue($definition->getClass()));
-                $definition->setFile($parameterBag->resolveValue($definition->getFile()));
-                $definition->setArguments($parameterBag->resolveValue($definition->getArguments()));
-                if ($definition->getFactoryClass(false)) {
-                    $definition->setFactoryClass($parameterBag->resolveValue($definition->getFactoryClass(false)));
-                }
-
-                $factory = $definition->getFactory();
-
-                if (is_array($factory) && isset($factory[0])) {
-                    $factory[0] = $parameterBag->resolveValue($factory[0]);
-                    $definition->setFactory($factory);
-                }
-
-                $calls = array();
-                foreach ($definition->getMethodCalls() as $name => $arguments) {
-                    $calls[$parameterBag->resolveValue($name)] = $parameterBag->resolveValue($arguments);
-                }
-                $definition->setMethodCalls($calls);
-
-                $definition->setProperties($parameterBag->resolveValue($definition->getProperties()));
-            } catch (ParameterNotFoundException $e) {
-                $e->setSourceId($id);
-
-                throw $e;
-            }
-        }
-
-        $aliases = array();
-        foreach ($container->getAliases() as $name => $target) {
-            $aliases[$parameterBag->resolveValue($name)] = $parameterBag->resolveValue($target);
-        }
-        $container->setAliases($aliases);
-
-        $parameterBag->resolve();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php b/core/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php
deleted file mode 100644
index c90d76f..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Replaces all references to aliases with references to the actual service.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveReferencesToAliasesPass implements CompilerPassInterface
-{
-    private $container;
-
-    /**
-     * Processes the ContainerBuilder to replace references to aliases with actual service references.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $this->container = $container;
-
-        foreach ($container->getDefinitions() as $definition) {
-            if ($definition->isSynthetic() || $definition->isAbstract()) {
-                continue;
-            }
-
-            $definition->setArguments($this->processArguments($definition->getArguments()));
-            $definition->setMethodCalls($this->processArguments($definition->getMethodCalls()));
-            $definition->setProperties($this->processArguments($definition->getProperties()));
-        }
-
-        foreach ($container->getAliases() as $id => $alias) {
-            $aliasId = (string) $alias;
-            if ($aliasId !== $defId = $this->getDefinitionId($aliasId)) {
-                $container->setAlias($id, new Alias($defId, $alias->isPublic()));
-            }
-        }
-    }
-
-    /**
-     * Processes the arguments to replace aliases.
-     *
-     * @param array $arguments An array of References
-     *
-     * @return array An array of References
-     */
-    private function processArguments(array $arguments)
-    {
-        foreach ($arguments as $k => $argument) {
-            if (is_array($argument)) {
-                $arguments[$k] = $this->processArguments($argument);
-            } elseif ($argument instanceof Reference) {
-                $defId = $this->getDefinitionId($id = (string) $argument);
-
-                if ($defId !== $id) {
-                    $arguments[$k] = new Reference($defId, $argument->getInvalidBehavior(), $argument->isStrict());
-                }
-            }
-        }
-
-        return $arguments;
-    }
-
-    /**
-     * Resolves an alias into a definition id.
-     *
-     * @param string $id The definition or alias id to resolve
-     *
-     * @return string The definition id with aliases resolved
-     */
-    private function getDefinitionId($id)
-    {
-        $seen = array();
-        while ($this->container->hasAlias($id)) {
-            if (isset($seen[$id])) {
-                throw new ServiceCircularReferenceException($id, array_keys($seen));
-            }
-            $seen[$id] = true;
-            $id = (string) $this->container->getAlias($id);
-        }
-
-        return $id;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php b/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php
deleted file mode 100644
index dc9a1a0..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * This is a directed graph of your services.
- *
- * This information can be used by your compiler passes instead of collecting
- * it themselves which improves performance quite a lot.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceReferenceGraph
-{
-    /**
-     * @var ServiceReferenceGraphNode[]
-     */
-    private $nodes = array();
-
-    /**
-     * Checks if the graph has a specific node.
-     *
-     * @param string $id Id to check
-     *
-     * @return bool
-     */
-    public function hasNode($id)
-    {
-        return isset($this->nodes[$id]);
-    }
-
-    /**
-     * Gets a node by identifier.
-     *
-     * @param string $id The id to retrieve
-     *
-     * @return ServiceReferenceGraphNode The node matching the supplied identifier
-     *
-     * @throws InvalidArgumentException if no node matches the supplied identifier
-     */
-    public function getNode($id)
-    {
-        if (!isset($this->nodes[$id])) {
-            throw new InvalidArgumentException(sprintf('There is no node with id "%s".', $id));
-        }
-
-        return $this->nodes[$id];
-    }
-
-    /**
-     * Returns all nodes.
-     *
-     * @return ServiceReferenceGraphNode[] An array of all ServiceReferenceGraphNode objects
-     */
-    public function getNodes()
-    {
-        return $this->nodes;
-    }
-
-    /**
-     * Clears all nodes.
-     */
-    public function clear()
-    {
-        $this->nodes = array();
-    }
-
-    /**
-     * Connects 2 nodes together in the Graph.
-     *
-     * @param string $sourceId
-     * @param string $sourceValue
-     * @param string $destId
-     * @param string $destValue
-     * @param string $reference
-     */
-    public function connect($sourceId, $sourceValue, $destId, $destValue = null, $reference = null)
-    {
-        $sourceNode = $this->createNode($sourceId, $sourceValue);
-        $destNode = $this->createNode($destId, $destValue);
-        $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference);
-
-        $sourceNode->addOutEdge($edge);
-        $destNode->addInEdge($edge);
-    }
-
-    /**
-     * Creates a graph node.
-     *
-     * @param string $id
-     * @param string $value
-     *
-     * @return ServiceReferenceGraphNode
-     */
-    private function createNode($id, $value)
-    {
-        if (isset($this->nodes[$id]) && $this->nodes[$id]->getValue() === $value) {
-            return $this->nodes[$id];
-        }
-
-        return $this->nodes[$id] = new ServiceReferenceGraphNode($id, $value);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php b/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php
deleted file mode 100644
index 6a3e2ea..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-/**
- * Represents an edge in your service graph.
- *
- * Value is typically a reference.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceReferenceGraphEdge
-{
-    private $sourceNode;
-    private $destNode;
-    private $value;
-
-    /**
-     * Constructor.
-     *
-     * @param ServiceReferenceGraphNode $sourceNode
-     * @param ServiceReferenceGraphNode $destNode
-     * @param string                    $value
-     */
-    public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, $value = null)
-    {
-        $this->sourceNode = $sourceNode;
-        $this->destNode = $destNode;
-        $this->value = $value;
-    }
-
-    /**
-     * Returns the value of the edge.
-     *
-     * @return ServiceReferenceGraphNode
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Returns the source node.
-     *
-     * @return ServiceReferenceGraphNode
-     */
-    public function getSourceNode()
-    {
-        return $this->sourceNode;
-    }
-
-    /**
-     * Returns the destination node.
-     *
-     * @return ServiceReferenceGraphNode
-     */
-    public function getDestNode()
-    {
-        return $this->destNode;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php b/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php
deleted file mode 100644
index c49c932..0000000
--- a/core/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Alias;
-
-/**
- * Represents a node in your service graph.
- *
- * Value is typically a definition, or an alias.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceReferenceGraphNode
-{
-    private $id;
-    private $inEdges = array();
-    private $outEdges = array();
-    private $value;
-
-    /**
-     * Constructor.
-     *
-     * @param string $id    The node identifier
-     * @param mixed  $value The node value
-     */
-    public function __construct($id, $value)
-    {
-        $this->id = $id;
-        $this->value = $value;
-    }
-
-    /**
-     * Adds an in edge to this node.
-     *
-     * @param ServiceReferenceGraphEdge $edge
-     */
-    public function addInEdge(ServiceReferenceGraphEdge $edge)
-    {
-        $this->inEdges[] = $edge;
-    }
-
-    /**
-     * Adds an out edge to this node.
-     *
-     * @param ServiceReferenceGraphEdge $edge
-     */
-    public function addOutEdge(ServiceReferenceGraphEdge $edge)
-    {
-        $this->outEdges[] = $edge;
-    }
-
-    /**
-     * Checks if the value of this node is an Alias.
-     *
-     * @return bool True if the value is an Alias instance
-     */
-    public function isAlias()
-    {
-        return $this->value instanceof Alias;
-    }
-
-    /**
-     * Checks if the value of this node is a Definition.
-     *
-     * @return bool True if the value is a Definition instance
-     */
-    public function isDefinition()
-    {
-        return $this->value instanceof Definition;
-    }
-
-    /**
-     * Returns the identifier.
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        return $this->id;
-    }
-
-    /**
-     * Returns the in edges.
-     *
-     * @return array The in ServiceReferenceGraphEdge array
-     */
-    public function getInEdges()
-    {
-        return $this->inEdges;
-    }
-
-    /**
-     * Returns the out edges.
-     *
-     * @return array The out ServiceReferenceGraphEdge array
-     */
-    public function getOutEdges()
-    {
-        return $this->outEdges;
-    }
-
-    /**
-     * Returns the value of this Node.
-     *
-     * @return mixed The value
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Container.php b/core/vendor/symfony/dependency-injection/Container.php
deleted file mode 100644
index f0db5de..0000000
--- a/core/vendor/symfony/dependency-injection/Container.php
+++ /dev/null
@@ -1,574 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
-
-/**
- * Container is a dependency injection container.
- *
- * It gives access to object instances (services).
- *
- * Services and parameters are simple key/pair stores.
- *
- * Parameter and service keys are case insensitive.
- *
- * A service id can contain lowercased letters, digits, underscores, and dots.
- * Underscores are used to separate words, and dots to group services
- * under namespaces:
- *
- * <ul>
- *   <li>request</li>
- *   <li>mysql_session_storage</li>
- *   <li>symfony.mysql_session_storage</li>
- * </ul>
- *
- * A service can also be defined by creating a method named
- * getXXXService(), where XXX is the camelized version of the id:
- *
- * <ul>
- *   <li>request -> getRequestService()</li>
- *   <li>mysql_session_storage -> getMysqlSessionStorageService()</li>
- *   <li>symfony.mysql_session_storage -> getSymfony_MysqlSessionStorageService()</li>
- * </ul>
- *
- * The container can have three possible behaviors when a service does not exist:
- *
- *  * EXCEPTION_ON_INVALID_REFERENCE: Throws an exception (the default)
- *  * NULL_ON_INVALID_REFERENCE:      Returns null
- *  * IGNORE_ON_INVALID_REFERENCE:    Ignores the wrapping command asking for the reference
- *                                    (for instance, ignore a setter if the service does not exist)
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class Container implements IntrospectableContainerInterface
-{
-    /**
-     * @var ParameterBagInterface
-     */
-    protected $parameterBag;
-
-    protected $services = array();
-    protected $methodMap = array();
-    protected $aliases = array();
-    protected $scopes = array();
-    protected $scopeChildren = array();
-    protected $scopedServices = array();
-    protected $scopeStacks = array();
-    protected $loading = array();
-
-    private $underscoreMap = array('_' => '', '.' => '_', '\\' => '_');
-
-    /**
-     * Constructor.
-     *
-     * @param ParameterBagInterface $parameterBag A ParameterBagInterface instance
-     *
-     * @api
-     */
-    public function __construct(ParameterBagInterface $parameterBag = null)
-    {
-        $this->parameterBag = $parameterBag ?: new ParameterBag();
-    }
-
-    /**
-     * Compiles the container.
-     *
-     * This method does two things:
-     *
-     *  * Parameter values are resolved;
-     *  * The parameter bag is frozen.
-     *
-     * @api
-     */
-    public function compile()
-    {
-        $this->parameterBag->resolve();
-
-        $this->parameterBag = new FrozenParameterBag($this->parameterBag->all());
-    }
-
-    /**
-     * Returns true if the container parameter bag are frozen.
-     *
-     * @return bool true if the container parameter bag are frozen, false otherwise
-     *
-     * @api
-     */
-    public function isFrozen()
-    {
-        return $this->parameterBag instanceof FrozenParameterBag;
-    }
-
-    /**
-     * Gets the service container parameter bag.
-     *
-     * @return ParameterBagInterface A ParameterBagInterface instance
-     *
-     * @api
-     */
-    public function getParameterBag()
-    {
-        return $this->parameterBag;
-    }
-
-    /**
-     * Gets a parameter.
-     *
-     * @param string $name The parameter name
-     *
-     * @return mixed The parameter value
-     *
-     * @throws InvalidArgumentException if the parameter is not defined
-     *
-     * @api
-     */
-    public function getParameter($name)
-    {
-        return $this->parameterBag->get($name);
-    }
-
-    /**
-     * Checks if a parameter exists.
-     *
-     * @param string $name The parameter name
-     *
-     * @return bool The presence of parameter in container
-     *
-     * @api
-     */
-    public function hasParameter($name)
-    {
-        return $this->parameterBag->has($name);
-    }
-
-    /**
-     * Sets a parameter.
-     *
-     * @param string $name  The parameter name
-     * @param mixed  $value The parameter value
-     *
-     * @api
-     */
-    public function setParameter($name, $value)
-    {
-        $this->parameterBag->set($name, $value);
-    }
-
-    /**
-     * Sets a service.
-     *
-     * Setting a service to null resets the service: has() returns false and get()
-     * behaves in the same way as if the service was never created.
-     *
-     * @param string $id      The service identifier
-     * @param object $service The service instance
-     * @param string $scope   The scope of the service
-     *
-     * @throws RuntimeException         When trying to set a service in an inactive scope
-     * @throws InvalidArgumentException When trying to set a service in the prototype scope
-     *
-     * @api
-     */
-    public function set($id, $service, $scope = self::SCOPE_CONTAINER)
-    {
-        if (self::SCOPE_PROTOTYPE === $scope) {
-            throw new InvalidArgumentException(sprintf('You cannot set service "%s" of scope "prototype".', $id));
-        }
-
-        $id = strtolower($id);
-
-        if ('service_container' === $id) {
-            // BC: 'service_container' is no longer a self-reference but always
-            // $this, so ignore this call.
-            // @todo Throw InvalidArgumentException in next major release.
-            return;
-        }
-        if (self::SCOPE_CONTAINER !== $scope) {
-            if (!isset($this->scopedServices[$scope])) {
-                throw new RuntimeException(sprintf('You cannot set service "%s" of inactive scope.', $id));
-            }
-
-            $this->scopedServices[$scope][$id] = $service;
-        }
-
-        $this->services[$id] = $service;
-
-        if (method_exists($this, $method = 'synchronize'.strtr($id, $this->underscoreMap).'Service')) {
-            $this->$method();
-        }
-
-        if (null === $service) {
-            if (self::SCOPE_CONTAINER !== $scope) {
-                unset($this->scopedServices[$scope][$id]);
-            }
-
-            unset($this->services[$id]);
-        }
-    }
-
-    /**
-     * Returns true if the given service is defined.
-     *
-     * @param string $id The service identifier
-     *
-     * @return bool true if the service is defined, false otherwise
-     *
-     * @api
-     */
-    public function has($id)
-    {
-        for ($i = 2;;) {
-            if ('service_container' === $id
-                || isset($this->aliases[$id])
-                || isset($this->services[$id])
-                || array_key_exists($id, $this->services)
-            ) {
-                return true;
-            }
-            if (--$i && $id !== $lcId = strtolower($id)) {
-                $id = $lcId;
-            } else {
-                return method_exists($this, 'get'.strtr($id, $this->underscoreMap).'Service');
-            }
-        }
-    }
-
-    /**
-     * Gets a service.
-     *
-     * If a service is defined both through a set() method and
-     * with a get{$id}Service() method, the former has always precedence.
-     *
-     * @param string $id              The service identifier
-     * @param int    $invalidBehavior The behavior when the service does not exist
-     *
-     * @return object The associated service
-     *
-     * @throws ServiceCircularReferenceException When a circular reference is detected
-     * @throws ServiceNotFoundException          When the service is not defined
-     * @throws \Exception                        if an exception has been thrown when the service has been resolved
-     *
-     * @see Reference
-     *
-     * @api
-     */
-    public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE)
-    {
-        // Attempt to retrieve the service by checking first aliases then
-        // available services. Service IDs are case insensitive, however since
-        // this method can be called thousands of times during a request, avoid
-        // calling strtolower() unless necessary.
-        for ($i = 2;;) {
-            if ('service_container' === $id) {
-                return $this;
-            }
-            if (isset($this->aliases[$id])) {
-                $id = $this->aliases[$id];
-            }
-            // Re-use shared service instance if it exists.
-            if (isset($this->services[$id]) || array_key_exists($id, $this->services)) {
-                return $this->services[$id];
-            }
-
-            if (isset($this->loading[$id])) {
-                throw new ServiceCircularReferenceException($id, array_keys($this->loading));
-            }
-
-            if (isset($this->methodMap[$id])) {
-                $method = $this->methodMap[$id];
-            } elseif (--$i && $id !== $lcId = strtolower($id)) {
-                $id = $lcId;
-                continue;
-            } elseif (method_exists($this, $method = 'get'.strtr($id, $this->underscoreMap).'Service')) {
-                // $method is set to the right value, proceed
-            } else {
-                if (self::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) {
-                    if (!$id) {
-                        throw new ServiceNotFoundException($id);
-                    }
-
-                    $alternatives = array();
-                    foreach ($this->services as $key => $associatedService) {
-                        $lev = levenshtein($id, $key);
-                        if ($lev <= strlen($id) / 3 || false !== strpos($key, $id)) {
-                            $alternatives[] = $key;
-                        }
-                    }
-
-                    throw new ServiceNotFoundException($id, null, null, $alternatives);
-                }
-
-                return;
-            }
-
-            $this->loading[$id] = true;
-
-            try {
-                $service = $this->$method();
-            } catch (\Exception $e) {
-                unset($this->loading[$id]);
-
-                if (array_key_exists($id, $this->services)) {
-                    unset($this->services[$id]);
-                }
-
-                if ($e instanceof InactiveScopeException && self::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) {
-                    return;
-                }
-
-                throw $e;
-            }
-
-            unset($this->loading[$id]);
-
-            return $service;
-        }
-    }
-
-    /**
-     * Returns true if the given service has actually been initialized.
-     *
-     * @param string $id The service identifier
-     *
-     * @return bool true if service has already been initialized, false otherwise
-     */
-    public function initialized($id)
-    {
-        $id = strtolower($id);
-
-        if ('service_container' === $id) {
-            // BC: 'service_container' was a synthetic service previously.
-            // @todo Change to false in next major release.
-            return true;
-        }
-
-        if (isset($this->aliases[$id])) {
-            $id = $this->aliases[$id];
-        }
-
-        return isset($this->services[$id]) || array_key_exists($id, $this->services);
-    }
-
-    /**
-     * Gets all service ids.
-     *
-     * @return array An array of all defined service ids
-     */
-    public function getServiceIds()
-    {
-        $ids = array();
-        $r = new \ReflectionClass($this);
-        foreach ($r->getMethods() as $method) {
-            if (preg_match('/^get(.+)Service$/', $method->name, $match)) {
-                $ids[] = self::underscore($match[1]);
-            }
-        }
-        $ids[] = 'service_container';
-
-        return array_unique(array_merge($ids, array_keys($this->services)));
-    }
-
-    /**
-     * This is called when you enter a scope.
-     *
-     * @param string $name
-     *
-     * @throws RuntimeException         When the parent scope is inactive
-     * @throws InvalidArgumentException When the scope does not exist
-     *
-     * @api
-     */
-    public function enterScope($name)
-    {
-        if (!isset($this->scopes[$name])) {
-            throw new InvalidArgumentException(sprintf('The scope "%s" does not exist.', $name));
-        }
-
-        if (self::SCOPE_CONTAINER !== $this->scopes[$name] && !isset($this->scopedServices[$this->scopes[$name]])) {
-            throw new RuntimeException(sprintf('The parent scope "%s" must be active when entering this scope.', $this->scopes[$name]));
-        }
-
-        // check if a scope of this name is already active, if so we need to
-        // remove all services of this scope, and those of any of its child
-        // scopes from the global services map
-        if (isset($this->scopedServices[$name])) {
-            $services = array($this->services, $name => $this->scopedServices[$name]);
-            unset($this->scopedServices[$name]);
-
-            foreach ($this->scopeChildren[$name] as $child) {
-                if (isset($this->scopedServices[$child])) {
-                    $services[$child] = $this->scopedServices[$child];
-                    unset($this->scopedServices[$child]);
-                }
-            }
-
-            // update global map
-            $this->services = call_user_func_array('array_diff_key', $services);
-            array_shift($services);
-
-            // add stack entry for this scope so we can restore the removed services later
-            if (!isset($this->scopeStacks[$name])) {
-                $this->scopeStacks[$name] = new \SplStack();
-            }
-            $this->scopeStacks[$name]->push($services);
-        }
-
-        $this->scopedServices[$name] = array();
-    }
-
-    /**
-     * This is called to leave the current scope, and move back to the parent
-     * scope.
-     *
-     * @param string $name The name of the scope to leave
-     *
-     * @throws InvalidArgumentException if the scope is not active
-     *
-     * @api
-     */
-    public function leaveScope($name)
-    {
-        if (!isset($this->scopedServices[$name])) {
-            throw new InvalidArgumentException(sprintf('The scope "%s" is not active.', $name));
-        }
-
-        // remove all services of this scope, or any of its child scopes from
-        // the global service map
-        $services = array($this->services, $this->scopedServices[$name]);
-        unset($this->scopedServices[$name]);
-
-        foreach ($this->scopeChildren[$name] as $child) {
-            if (isset($this->scopedServices[$child])) {
-                $services[] = $this->scopedServices[$child];
-                unset($this->scopedServices[$child]);
-            }
-        }
-
-        // update global map
-        $this->services = call_user_func_array('array_diff_key', $services);
-
-        // check if we need to restore services of a previous scope of this type
-        if (isset($this->scopeStacks[$name]) && count($this->scopeStacks[$name]) > 0) {
-            $services = $this->scopeStacks[$name]->pop();
-            $this->scopedServices += $services;
-
-            if ($this->scopeStacks[$name]->isEmpty()) {
-                unset($this->scopeStacks[$name]);
-            }
-
-            foreach ($services as $array) {
-                foreach ($array as $id => $service) {
-                    $this->set($id, $service, $name);
-                }
-            }
-        }
-    }
-
-    /**
-     * Adds a scope to the container.
-     *
-     * @param ScopeInterface $scope
-     *
-     * @throws InvalidArgumentException
-     *
-     * @api
-     */
-    public function addScope(ScopeInterface $scope)
-    {
-        $name = $scope->getName();
-        $parentScope = $scope->getParentName();
-
-        if (self::SCOPE_CONTAINER === $name || self::SCOPE_PROTOTYPE === $name) {
-            throw new InvalidArgumentException(sprintf('The scope "%s" is reserved.', $name));
-        }
-        if (isset($this->scopes[$name])) {
-            throw new InvalidArgumentException(sprintf('A scope with name "%s" already exists.', $name));
-        }
-        if (self::SCOPE_CONTAINER !== $parentScope && !isset($this->scopes[$parentScope])) {
-            throw new InvalidArgumentException(sprintf('The parent scope "%s" does not exist, or is invalid.', $parentScope));
-        }
-
-        $this->scopes[$name] = $parentScope;
-        $this->scopeChildren[$name] = array();
-
-        // normalize the child relations
-        while ($parentScope !== self::SCOPE_CONTAINER) {
-            $this->scopeChildren[$parentScope][] = $name;
-            $parentScope = $this->scopes[$parentScope];
-        }
-    }
-
-    /**
-     * Returns whether this container has a certain scope.
-     *
-     * @param string $name The name of the scope
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasScope($name)
-    {
-        return isset($this->scopes[$name]);
-    }
-
-    /**
-     * Returns whether this scope is currently active.
-     *
-     * This does not actually check if the passed scope actually exists.
-     *
-     * @param string $name
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isScopeActive($name)
-    {
-        return isset($this->scopedServices[$name]);
-    }
-
-    /**
-     * Camelizes a string.
-     *
-     * @param string $id A string to camelize
-     *
-     * @return string The camelized string
-     */
-    public static function camelize($id)
-    {
-        return strtr(ucwords(strtr($id, array('_' => ' ', '.' => '_ ', '\\' => '_ '))), array(' ' => ''));
-    }
-
-    /**
-     * A string to underscore.
-     *
-     * @param string $id The string to underscore
-     *
-     * @return string The underscored string
-     */
-    public static function underscore($id)
-    {
-        return strtolower(preg_replace(array('/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'), array('\\1_\\2', '\\1_\\2'), strtr($id, '_', '.')));
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ContainerAware.php b/core/vendor/symfony/dependency-injection/ContainerAware.php
deleted file mode 100644
index 4096915..0000000
--- a/core/vendor/symfony/dependency-injection/ContainerAware.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * A simple implementation of ContainerAwareInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class ContainerAware implements ContainerAwareInterface
-{
-    /**
-     * @var ContainerInterface
-     *
-     * @api
-     */
-    protected $container;
-
-    /**
-     * Sets the Container associated with this Controller.
-     *
-     * @param ContainerInterface $container A ContainerInterface instance
-     *
-     * @api
-     */
-    public function setContainer(ContainerInterface $container = null)
-    {
-        $this->container = $container;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ContainerAwareInterface.php b/core/vendor/symfony/dependency-injection/ContainerAwareInterface.php
deleted file mode 100644
index e85bb53..0000000
--- a/core/vendor/symfony/dependency-injection/ContainerAwareInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * ContainerAwareInterface should be implemented by classes that depends on a Container.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface ContainerAwareInterface
-{
-    /**
-     * Sets the Container.
-     *
-     * @param ContainerInterface|null $container A ContainerInterface instance or null
-     *
-     * @api
-     */
-    public function setContainer(ContainerInterface $container = null);
-}
diff --git a/core/vendor/symfony/dependency-injection/ContainerAwareTrait.php b/core/vendor/symfony/dependency-injection/ContainerAwareTrait.php
deleted file mode 100644
index 57280aa..0000000
--- a/core/vendor/symfony/dependency-injection/ContainerAwareTrait.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * ContainerAware trait.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-trait ContainerAwareTrait
-{
-    /**
-     * @var ContainerInterface
-     */
-    protected $container;
-
-    /**
-     * Sets the Container associated with this Controller.
-     *
-     * @param ContainerInterface $container A ContainerInterface instance
-     */
-    public function setContainer(ContainerInterface $container = null)
-    {
-        $this->container = $container;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ContainerBuilder.php b/core/vendor/symfony/dependency-injection/ContainerBuilder.php
deleted file mode 100644
index e697814..0000000
--- a/core/vendor/symfony/dependency-injection/ContainerBuilder.php
+++ /dev/null
@@ -1,1203 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Compiler\Compiler;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-use Symfony\Component\DependencyInjection\Compiler\PassConfig;
-use Symfony\Component\DependencyInjection\Exception\BadMethodCallException;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Config\Resource\ResourceInterface;
-use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface;
-use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator;
-use Symfony\Component\ExpressionLanguage\Expression;
-use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
-
-/**
- * ContainerBuilder is a DI container that provides an API to easily describe services.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ContainerBuilder extends Container implements TaggedContainerInterface
-{
-    /**
-     * @var ExtensionInterface[]
-     */
-    private $extensions = array();
-
-    /**
-     * @var ExtensionInterface[]
-     */
-    private $extensionsByNs = array();
-
-    /**
-     * @var Definition[]
-     */
-    private $definitions = array();
-
-    /**
-     * @var Definition[]
-     */
-    private $obsoleteDefinitions = array();
-
-    /**
-     * @var Alias[]
-     */
-    private $aliasDefinitions = array();
-
-    /**
-     * @var ResourceInterface[]
-     */
-    private $resources = array();
-
-    private $extensionConfigs = array();
-
-    /**
-     * @var Compiler
-     */
-    private $compiler;
-
-    private $trackResources = true;
-
-    /**
-     * @var InstantiatorInterface|null
-     */
-    private $proxyInstantiator;
-
-    /**
-     * @var ExpressionLanguage|null
-     */
-    private $expressionLanguage;
-
-    /**
-     * @var ExpressionFunctionProviderInterface[]
-     */
-    private $expressionLanguageProviders = array();
-
-    /**
-     * Sets the track resources flag.
-     *
-     * If you are not using the loaders and therefore don't want
-     * to depend on the Config component, set this flag to false.
-     *
-     * @param bool $track true if you want to track resources, false otherwise
-     */
-    public function setResourceTracking($track)
-    {
-        $this->trackResources = (bool) $track;
-    }
-
-    /**
-     * Checks if resources are tracked.
-     *
-     * @return bool true if resources are tracked, false otherwise
-     */
-    public function isTrackingResources()
-    {
-        return $this->trackResources;
-    }
-
-    /**
-     * Sets the instantiator to be used when fetching proxies.
-     *
-     * @param InstantiatorInterface $proxyInstantiator
-     */
-    public function setProxyInstantiator(InstantiatorInterface $proxyInstantiator)
-    {
-        $this->proxyInstantiator = $proxyInstantiator;
-    }
-
-    /**
-     * Registers an extension.
-     *
-     * @param ExtensionInterface $extension An extension instance
-     *
-     * @api
-     */
-    public function registerExtension(ExtensionInterface $extension)
-    {
-        $this->extensions[$extension->getAlias()] = $extension;
-
-        if (false !== $extension->getNamespace()) {
-            $this->extensionsByNs[$extension->getNamespace()] = $extension;
-        }
-    }
-
-    /**
-     * Returns an extension by alias or namespace.
-     *
-     * @param string $name An alias or a namespace
-     *
-     * @return ExtensionInterface An extension instance
-     *
-     * @throws LogicException if the extension is not registered
-     *
-     * @api
-     */
-    public function getExtension($name)
-    {
-        if (isset($this->extensions[$name])) {
-            return $this->extensions[$name];
-        }
-
-        if (isset($this->extensionsByNs[$name])) {
-            return $this->extensionsByNs[$name];
-        }
-
-        throw new LogicException(sprintf('Container extension "%s" is not registered', $name));
-    }
-
-    /**
-     * Returns all registered extensions.
-     *
-     * @return ExtensionInterface[] An array of ExtensionInterface
-     *
-     * @api
-     */
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    /**
-     * Checks if we have an extension.
-     *
-     * @param string $name The name of the extension
-     *
-     * @return bool If the extension exists
-     *
-     * @api
-     */
-    public function hasExtension($name)
-    {
-        return isset($this->extensions[$name]) || isset($this->extensionsByNs[$name]);
-    }
-
-    /**
-     * Returns an array of resources loaded to build this configuration.
-     *
-     * @return ResourceInterface[] An array of resources
-     *
-     * @api
-     */
-    public function getResources()
-    {
-        return array_unique($this->resources);
-    }
-
-    /**
-     * Adds a resource for this configuration.
-     *
-     * @param ResourceInterface $resource A resource instance
-     *
-     * @return ContainerBuilder The current instance
-     *
-     * @api
-     */
-    public function addResource(ResourceInterface $resource)
-    {
-        if (!$this->trackResources) {
-            return $this;
-        }
-
-        $this->resources[] = $resource;
-
-        return $this;
-    }
-
-    /**
-     * Sets the resources for this configuration.
-     *
-     * @param ResourceInterface[] $resources An array of resources
-     *
-     * @return ContainerBuilder The current instance
-     *
-     * @api
-     */
-    public function setResources(array $resources)
-    {
-        if (!$this->trackResources) {
-            return $this;
-        }
-
-        $this->resources = $resources;
-
-        return $this;
-    }
-
-    /**
-     * Adds the object class hierarchy as resources.
-     *
-     * @param object $object An object instance
-     *
-     * @return ContainerBuilder The current instance
-     *
-     * @api
-     */
-    public function addObjectResource($object)
-    {
-        if ($this->trackResources) {
-            $this->addClassResource(new \ReflectionClass($object));
-        }
-
-        return $this;
-    }
-
-    /**
-     * Adds the given class hierarchy as resources.
-     *
-     * @param \ReflectionClass $class
-     *
-     * @return ContainerBuilder The current instance
-     */
-    public function addClassResource(\ReflectionClass $class)
-    {
-        if (!$this->trackResources) {
-            return $this;
-        }
-
-        do {
-            $this->addResource(new FileResource($class->getFileName()));
-        } while ($class = $class->getParentClass());
-
-        return $this;
-    }
-
-    /**
-     * Loads the configuration for an extension.
-     *
-     * @param string $extension The extension alias or namespace
-     * @param array  $values    An array of values that customizes the extension
-     *
-     * @return ContainerBuilder The current instance
-     *
-     * @throws BadMethodCallException When this ContainerBuilder is frozen
-     * @throws \LogicException        if the container is frozen
-     *
-     * @api
-     */
-    public function loadFromExtension($extension, array $values = array())
-    {
-        if ($this->isFrozen()) {
-            throw new BadMethodCallException('Cannot load from an extension on a frozen container.');
-        }
-
-        $namespace = $this->getExtension($extension)->getAlias();
-
-        $this->extensionConfigs[$namespace][] = $values;
-
-        return $this;
-    }
-
-    /**
-     * Adds a compiler pass.
-     *
-     * @param CompilerPassInterface $pass A compiler pass
-     * @param string                $type The type of compiler pass
-     *
-     * @return ContainerBuilder The current instance
-     *
-     * @api
-     */
-    public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)
-    {
-        $this->getCompiler()->addPass($pass, $type);
-
-        $this->addObjectResource($pass);
-
-        return $this;
-    }
-
-    /**
-     * Returns the compiler pass config which can then be modified.
-     *
-     * @return PassConfig The compiler pass config
-     *
-     * @api
-     */
-    public function getCompilerPassConfig()
-    {
-        return $this->getCompiler()->getPassConfig();
-    }
-
-    /**
-     * Returns the compiler.
-     *
-     * @return Compiler The compiler
-     *
-     * @api
-     */
-    public function getCompiler()
-    {
-        if (null === $this->compiler) {
-            $this->compiler = new Compiler();
-        }
-
-        return $this->compiler;
-    }
-
-    /**
-     * Returns all Scopes.
-     *
-     * @return array An array of scopes
-     *
-     * @api
-     */
-    public function getScopes()
-    {
-        return $this->scopes;
-    }
-
-    /**
-     * Returns all Scope children.
-     *
-     * @return array An array of scope children.
-     *
-     * @api
-     */
-    public function getScopeChildren()
-    {
-        return $this->scopeChildren;
-    }
-
-    /**
-     * Sets a service.
-     *
-     * @param string $id      The service identifier
-     * @param object $service The service instance
-     * @param string $scope   The scope
-     *
-     * @throws BadMethodCallException When this ContainerBuilder is frozen
-     *
-     * @api
-     */
-    public function set($id, $service, $scope = self::SCOPE_CONTAINER)
-    {
-        $id = strtolower($id);
-
-        if ($this->isFrozen()) {
-            // setting a synthetic service on a frozen container is alright
-            if (
-                (!isset($this->definitions[$id]) && !isset($this->obsoleteDefinitions[$id]))
-                    ||
-                (isset($this->definitions[$id]) && !$this->definitions[$id]->isSynthetic())
-                    ||
-                (isset($this->obsoleteDefinitions[$id]) && !$this->obsoleteDefinitions[$id]->isSynthetic())
-            ) {
-                throw new BadMethodCallException(sprintf('Setting service "%s" on a frozen container is not allowed.', $id));
-            }
-        }
-
-        if (isset($this->definitions[$id])) {
-            $this->obsoleteDefinitions[$id] = $this->definitions[$id];
-        }
-
-        unset($this->definitions[$id], $this->aliasDefinitions[$id]);
-
-        parent::set($id, $service, $scope);
-
-        if (isset($this->obsoleteDefinitions[$id]) && $this->obsoleteDefinitions[$id]->isSynchronized(false)) {
-            $this->synchronize($id);
-        }
-    }
-
-    /**
-     * Removes a service definition.
-     *
-     * @param string $id The service identifier
-     *
-     * @api
-     */
-    public function removeDefinition($id)
-    {
-        unset($this->definitions[strtolower($id)]);
-    }
-
-    /**
-     * Returns true if the given service is defined.
-     *
-     * @param string $id The service identifier
-     *
-     * @return bool true if the service is defined, false otherwise
-     *
-     * @api
-     */
-    public function has($id)
-    {
-        $id = strtolower($id);
-
-        return isset($this->definitions[$id]) || isset($this->aliasDefinitions[$id]) || parent::has($id);
-    }
-
-    /**
-     * Gets a service.
-     *
-     * @param string $id              The service identifier
-     * @param int    $invalidBehavior The behavior when the service does not exist
-     *
-     * @return object The associated service
-     *
-     * @throws InvalidArgumentException when no definitions are available
-     * @throws InactiveScopeException   when the current scope is not active
-     * @throws LogicException           when a circular dependency is detected
-     * @throws \Exception
-     *
-     * @see Reference
-     *
-     * @api
-     */
-    public function get($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE)
-    {
-        $id = strtolower($id);
-
-        if ($service = parent::get($id, ContainerInterface::NULL_ON_INVALID_REFERENCE)) {
-            return $service;
-        }
-
-        if (!array_key_exists($id, $this->definitions) && isset($this->aliasDefinitions[$id])) {
-            return $this->get($this->aliasDefinitions[$id]);
-        }
-
-        try {
-            $definition = $this->getDefinition($id);
-        } catch (InvalidArgumentException $e) {
-            if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) {
-                return;
-            }
-
-            throw $e;
-        }
-
-        $this->loading[$id] = true;
-
-        try {
-            $service = $this->createService($definition, $id);
-        } catch (\Exception $e) {
-            unset($this->loading[$id]);
-
-            if ($e instanceof InactiveScopeException && self::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) {
-                return;
-            }
-
-            throw $e;
-        }
-
-        unset($this->loading[$id]);
-
-        return $service;
-    }
-
-    /**
-     * Merges a ContainerBuilder with the current ContainerBuilder configuration.
-     *
-     * Service definitions overrides the current defined ones.
-     *
-     * But for parameters, they are overridden by the current ones. It allows
-     * the parameters passed to the container constructor to have precedence
-     * over the loaded ones.
-     *
-     * $container = new ContainerBuilder(array('foo' => 'bar'));
-     * $loader = new LoaderXXX($container);
-     * $loader->load('resource_name');
-     * $container->register('foo', new stdClass());
-     *
-     * In the above example, even if the loaded resource defines a foo
-     * parameter, the value will still be 'bar' as defined in the ContainerBuilder
-     * constructor.
-     *
-     * @param ContainerBuilder $container The ContainerBuilder instance to merge.
-     *
-     * @throws BadMethodCallException When this ContainerBuilder is frozen
-     *
-     * @api
-     */
-    public function merge(ContainerBuilder $container)
-    {
-        if ($this->isFrozen()) {
-            throw new BadMethodCallException('Cannot merge on a frozen container.');
-        }
-
-        $this->addDefinitions($container->getDefinitions());
-        $this->addAliases($container->getAliases());
-        $this->getParameterBag()->add($container->getParameterBag()->all());
-
-        if ($this->trackResources) {
-            foreach ($container->getResources() as $resource) {
-                $this->addResource($resource);
-            }
-        }
-
-        foreach ($this->extensions as $name => $extension) {
-            if (!isset($this->extensionConfigs[$name])) {
-                $this->extensionConfigs[$name] = array();
-            }
-
-            $this->extensionConfigs[$name] = array_merge($this->extensionConfigs[$name], $container->getExtensionConfig($name));
-        }
-    }
-
-    /**
-     * Returns the configuration array for the given extension.
-     *
-     * @param string $name The name of the extension
-     *
-     * @return array An array of configuration
-     *
-     * @api
-     */
-    public function getExtensionConfig($name)
-    {
-        if (!isset($this->extensionConfigs[$name])) {
-            $this->extensionConfigs[$name] = array();
-        }
-
-        return $this->extensionConfigs[$name];
-    }
-
-    /**
-     * Prepends a config array to the configs of the given extension.
-     *
-     * @param string $name   The name of the extension
-     * @param array  $config The config to set
-     */
-    public function prependExtensionConfig($name, array $config)
-    {
-        if (!isset($this->extensionConfigs[$name])) {
-            $this->extensionConfigs[$name] = array();
-        }
-
-        array_unshift($this->extensionConfigs[$name], $config);
-    }
-
-    /**
-     * Compiles the container.
-     *
-     * This method passes the container to compiler
-     * passes whose job is to manipulate and optimize
-     * the container.
-     *
-     * The main compiler passes roughly do four things:
-     *
-     *  * The extension configurations are merged;
-     *  * Parameter values are resolved;
-     *  * The parameter bag is frozen;
-     *  * Extension loading is disabled.
-     *
-     * @api
-     */
-    public function compile()
-    {
-        $compiler = $this->getCompiler();
-
-        if ($this->trackResources) {
-            foreach ($compiler->getPassConfig()->getPasses() as $pass) {
-                $this->addObjectResource($pass);
-            }
-        }
-
-        $compiler->compile($this);
-
-        if ($this->trackResources) {
-            foreach ($this->definitions as $definition) {
-                if ($definition->isLazy() && ($class = $definition->getClass()) && class_exists($class)) {
-                    $this->addClassResource(new \ReflectionClass($class));
-                }
-            }
-        }
-
-        $this->extensionConfigs = array();
-
-        parent::compile();
-    }
-
-    /**
-     * Gets all service ids.
-     *
-     * @return array An array of all defined service ids
-     */
-    public function getServiceIds()
-    {
-        return array_unique(array_merge(array_keys($this->getDefinitions()), array_keys($this->aliasDefinitions), parent::getServiceIds()));
-    }
-
-    /**
-     * Adds the service aliases.
-     *
-     * @param array $aliases An array of aliases
-     *
-     * @api
-     */
-    public function addAliases(array $aliases)
-    {
-        foreach ($aliases as $alias => $id) {
-            $this->setAlias($alias, $id);
-        }
-    }
-
-    /**
-     * Sets the service aliases.
-     *
-     * @param array $aliases An array of aliases
-     *
-     * @api
-     */
-    public function setAliases(array $aliases)
-    {
-        $this->aliasDefinitions = array();
-        $this->addAliases($aliases);
-    }
-
-    /**
-     * Sets an alias for an existing service.
-     *
-     * @param string       $alias The alias to create
-     * @param string|Alias $id    The service to alias
-     *
-     * @throws InvalidArgumentException if the id is not a string or an Alias
-     * @throws InvalidArgumentException if the alias is for itself
-     *
-     * @api
-     */
-    public function setAlias($alias, $id)
-    {
-        $alias = strtolower($alias);
-
-        if (is_string($id)) {
-            $id = new Alias($id);
-        } elseif (!$id instanceof Alias) {
-            throw new InvalidArgumentException('$id must be a string, or an Alias object.');
-        }
-
-        if ($alias === (string) $id) {
-            throw new InvalidArgumentException(sprintf('An alias can not reference itself, got a circular reference on "%s".', $alias));
-        }
-
-        unset($this->definitions[$alias]);
-
-        $this->aliasDefinitions[$alias] = $id;
-    }
-
-    /**
-     * Removes an alias.
-     *
-     * @param string $alias The alias to remove
-     *
-     * @api
-     */
-    public function removeAlias($alias)
-    {
-        unset($this->aliasDefinitions[strtolower($alias)]);
-    }
-
-    /**
-     * Returns true if an alias exists under the given identifier.
-     *
-     * @param string $id The service identifier
-     *
-     * @return bool true if the alias exists, false otherwise
-     *
-     * @api
-     */
-    public function hasAlias($id)
-    {
-        return isset($this->aliasDefinitions[strtolower($id)]);
-    }
-
-    /**
-     * Gets all defined aliases.
-     *
-     * @return Alias[] An array of aliases
-     *
-     * @api
-     */
-    public function getAliases()
-    {
-        return $this->aliasDefinitions;
-    }
-
-    /**
-     * Gets an alias.
-     *
-     * @param string $id The service identifier
-     *
-     * @return Alias An Alias instance
-     *
-     * @throws InvalidArgumentException if the alias does not exist
-     *
-     * @api
-     */
-    public function getAlias($id)
-    {
-        $id = strtolower($id);
-
-        if (!isset($this->aliasDefinitions[$id])) {
-            throw new InvalidArgumentException(sprintf('The service alias "%s" does not exist.', $id));
-        }
-
-        return $this->aliasDefinitions[$id];
-    }
-
-    /**
-     * Registers a service definition.
-     *
-     * This methods allows for simple registration of service definition
-     * with a fluid interface.
-     *
-     * @param string $id    The service identifier
-     * @param string $class The service class
-     *
-     * @return Definition A Definition instance
-     *
-     * @api
-     */
-    public function register($id, $class = null)
-    {
-        return $this->setDefinition($id, new Definition($class));
-    }
-
-    /**
-     * Adds the service definitions.
-     *
-     * @param Definition[] $definitions An array of service definitions
-     *
-     * @api
-     */
-    public function addDefinitions(array $definitions)
-    {
-        foreach ($definitions as $id => $definition) {
-            $this->setDefinition($id, $definition);
-        }
-    }
-
-    /**
-     * Sets the service definitions.
-     *
-     * @param Definition[] $definitions An array of service definitions
-     *
-     * @api
-     */
-    public function setDefinitions(array $definitions)
-    {
-        $this->definitions = array();
-        $this->addDefinitions($definitions);
-    }
-
-    /**
-     * Gets all service definitions.
-     *
-     * @return Definition[] An array of Definition instances
-     *
-     * @api
-     */
-    public function getDefinitions()
-    {
-        return $this->definitions;
-    }
-
-    /**
-     * Sets a service definition.
-     *
-     * @param string     $id         The service identifier
-     * @param Definition $definition A Definition instance
-     *
-     * @return Definition the service definition
-     *
-     * @throws BadMethodCallException When this ContainerBuilder is frozen
-     *
-     * @api
-     */
-    public function setDefinition($id, Definition $definition)
-    {
-        if ($this->isFrozen()) {
-            throw new BadMethodCallException('Adding definition to a frozen container is not allowed');
-        }
-
-        $id = strtolower($id);
-
-        unset($this->aliasDefinitions[$id]);
-
-        return $this->definitions[$id] = $definition;
-    }
-
-    /**
-     * Returns true if a service definition exists under the given identifier.
-     *
-     * @param string $id The service identifier
-     *
-     * @return bool true if the service definition exists, false otherwise
-     *
-     * @api
-     */
-    public function hasDefinition($id)
-    {
-        return array_key_exists(strtolower($id), $this->definitions);
-    }
-
-    /**
-     * Gets a service definition.
-     *
-     * @param string $id The service identifier
-     *
-     * @return Definition A Definition instance
-     *
-     * @throws InvalidArgumentException if the service definition does not exist
-     *
-     * @api
-     */
-    public function getDefinition($id)
-    {
-        $id = strtolower($id);
-
-        if (!array_key_exists($id, $this->definitions)) {
-            throw new InvalidArgumentException(sprintf('The service definition "%s" does not exist.', $id));
-        }
-
-        return $this->definitions[$id];
-    }
-
-    /**
-     * Gets a service definition by id or alias.
-     *
-     * The method "unaliases" recursively to return a Definition instance.
-     *
-     * @param string $id The service identifier or alias
-     *
-     * @return Definition A Definition instance
-     *
-     * @throws InvalidArgumentException if the service definition does not exist
-     *
-     * @api
-     */
-    public function findDefinition($id)
-    {
-        $id = strtolower($id);
-
-        while (isset($this->aliasDefinitions[$id])) {
-            $id = (string) $this->aliasDefinitions[$id];
-        }
-
-        return $this->getDefinition($id);
-    }
-
-    /**
-     * Creates a service for a service definition.
-     *
-     * @param Definition $definition A service definition instance
-     * @param string     $id         The service identifier
-     * @param bool       $tryProxy   Whether to try proxying the service with a lazy proxy
-     *
-     * @return object The service described by the service definition
-     *
-     * @throws RuntimeException         When the scope is inactive
-     * @throws RuntimeException         When the factory definition is incomplete
-     * @throws RuntimeException         When the service is a synthetic service
-     * @throws InvalidArgumentException When configure callable is not callable
-     *
-     * @internal this method is public because of PHP 5.3 limitations, do not use it explicitly in your code
-     */
-    public function createService(Definition $definition, $id, $tryProxy = true)
-    {
-        if ($definition->isSynthetic()) {
-            throw new RuntimeException(sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id));
-        }
-
-        if ($tryProxy && $definition->isLazy()) {
-            $container = $this;
-
-            $proxy = $this
-                ->getProxyInstantiator()
-                ->instantiateProxy(
-                    $container,
-                    $definition,
-                    $id, function () use ($definition, $id, $container) {
-                        return $container->createService($definition, $id, false);
-                    }
-                );
-            $this->shareService($definition, $proxy, $id);
-
-            return $proxy;
-        }
-
-        $parameterBag = $this->getParameterBag();
-
-        if (null !== $definition->getFile()) {
-            require_once $parameterBag->resolveValue($definition->getFile());
-        }
-
-        $arguments = $this->resolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getArguments())));
-
-        if (null !== $factory = $definition->getFactory()) {
-            if (is_array($factory)) {
-                $factory = array($this->resolveServices($parameterBag->resolveValue($factory[0])), $factory[1]);
-            } elseif (!is_string($factory)) {
-                throw new RuntimeException(sprintf('Cannot create service "%s" because of invalid factory', $id));
-            }
-
-            $service = call_user_func_array($factory, $arguments);
-        } elseif (null !== $definition->getFactoryMethod(false)) {
-            if (null !== $definition->getFactoryClass(false)) {
-                $factory = $parameterBag->resolveValue($definition->getFactoryClass(false));
-            } elseif (null !== $definition->getFactoryService(false)) {
-                $factory = $this->get($parameterBag->resolveValue($definition->getFactoryService(false)));
-            } else {
-                throw new RuntimeException(sprintf('Cannot create service "%s" from factory method without a factory service or factory class.', $id));
-            }
-
-            $service = call_user_func_array(array($factory, $definition->getFactoryMethod(false)), $arguments);
-        } else {
-            $r = new \ReflectionClass($parameterBag->resolveValue($definition->getClass()));
-
-            $service = null === $r->getConstructor() ? $r->newInstance() : $r->newInstanceArgs($arguments);
-        }
-
-        if ($tryProxy || !$definition->isLazy()) {
-            // share only if proxying failed, or if not a proxy
-            $this->shareService($definition, $service, $id);
-        }
-
-        foreach ($definition->getMethodCalls() as $call) {
-            $this->callMethod($service, $call);
-        }
-
-        $properties = $this->resolveServices($parameterBag->resolveValue($definition->getProperties()));
-        foreach ($properties as $name => $value) {
-            $service->$name = $value;
-        }
-
-        if ($callable = $definition->getConfigurator()) {
-            if (is_array($callable)) {
-                $callable[0] = $parameterBag->resolveValue($callable[0]);
-
-                if ($callable[0] instanceof Reference) {
-                    $callable[0] = $this->get((string) $callable[0], $callable[0]->getInvalidBehavior());
-                } elseif ($callable[0] instanceof Definition) {
-                    $callable[0] = $this->createService($callable[0], null);
-                }
-            }
-
-            if (!is_callable($callable)) {
-                throw new InvalidArgumentException(sprintf('The configure callable for class "%s" is not a callable.', get_class($service)));
-            }
-
-            call_user_func($callable, $service);
-        }
-
-        return $service;
-    }
-
-    /**
-     * Replaces service references by the real service instance and evaluates expressions.
-     *
-     * @param mixed $value A value
-     *
-     * @return mixed The same value with all service references replaced by
-     *               the real service instances and all expressions evaluated
-     */
-    public function resolveServices($value)
-    {
-        if (is_array($value)) {
-            $value = array_map(array($this, 'resolveServices'), $value);
-        } elseif ($value instanceof Reference) {
-            $value = $this->get((string) $value, $value->getInvalidBehavior());
-        } elseif ($value instanceof Definition) {
-            $value = $this->createService($value, null);
-        } elseif ($value instanceof Expression) {
-            $value = $this->getExpressionLanguage()->evaluate($value, array('container' => $this));
-        }
-
-        return $value;
-    }
-
-    /**
-     * Returns service ids for a given tag.
-     *
-     * Example:
-     *
-     * $container->register('foo')->addTag('my.tag', array('hello' => 'world'));
-     *
-     * $serviceIds = $container->findTaggedServiceIds('my.tag');
-     * foreach ($serviceIds as $serviceId => $tags) {
-     *     foreach ($tags as $tag) {
-     *         echo $tag['hello'];
-     *     }
-     * }
-     *
-     * @param string $name The tag name
-     *
-     * @return array An array of tags with the tagged service as key, holding a list of attribute arrays.
-     *
-     * @api
-     */
-    public function findTaggedServiceIds($name)
-    {
-        $tags = array();
-        foreach ($this->getDefinitions() as $id => $definition) {
-            if ($definition->hasTag($name)) {
-                $tags[$id] = $definition->getTag($name);
-            }
-        }
-
-        return $tags;
-    }
-
-    /**
-     * Returns all tags the defined services use.
-     *
-     * @return array An array of tags
-     */
-    public function findTags()
-    {
-        $tags = array();
-        foreach ($this->getDefinitions() as $id => $definition) {
-            $tags = array_merge(array_keys($definition->getTags()), $tags);
-        }
-
-        return array_unique($tags);
-    }
-
-    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
-    {
-        $this->expressionLanguageProviders[] = $provider;
-    }
-
-    /**
-     * @return ExpressionFunctionProviderInterface[]
-     */
-    public function getExpressionLanguageProviders()
-    {
-        return $this->expressionLanguageProviders;
-    }
-
-    /**
-     * Returns the Service Conditionals.
-     *
-     * @param mixed $value An array of conditionals to return.
-     *
-     * @return array An array of Service conditionals
-     */
-    public static function getServiceConditionals($value)
-    {
-        $services = array();
-
-        if (is_array($value)) {
-            foreach ($value as $v) {
-                $services = array_unique(array_merge($services, self::getServiceConditionals($v)));
-            }
-        } elseif ($value instanceof Reference && $value->getInvalidBehavior() === ContainerInterface::IGNORE_ON_INVALID_REFERENCE) {
-            $services[] = (string) $value;
-        }
-
-        return $services;
-    }
-
-    /**
-     * Retrieves the currently set proxy instantiator or instantiates one.
-     *
-     * @return InstantiatorInterface
-     */
-    private function getProxyInstantiator()
-    {
-        if (!$this->proxyInstantiator) {
-            $this->proxyInstantiator = new RealServiceInstantiator();
-        }
-
-        return $this->proxyInstantiator;
-    }
-
-    /**
-     * Synchronizes a service change.
-     *
-     * This method updates all services that depend on the given
-     * service by calling all methods referencing it.
-     *
-     * @param string $id A service id
-     *
-     * @deprecated since version 2.7, will be removed in 3.0.
-     */
-    private function synchronize($id)
-    {
-        if ('request' !== $id) {
-            @trigger_error('The '.__METHOD__.' method is deprecated in version 2.7 and will be removed in version 3.0.', E_USER_DEPRECATED);
-        }
-
-        foreach ($this->definitions as $definitionId => $definition) {
-            // only check initialized services
-            if (!$this->initialized($definitionId)) {
-                continue;
-            }
-
-            foreach ($definition->getMethodCalls() as $call) {
-                foreach ($call[1] as $argument) {
-                    if ($argument instanceof Reference && $id == (string) $argument) {
-                        $this->callMethod($this->get($definitionId), $call);
-                    }
-                }
-            }
-        }
-    }
-
-    private function callMethod($service, $call)
-    {
-        $services = self::getServiceConditionals($call[1]);
-
-        foreach ($services as $s) {
-            if (!$this->has($s)) {
-                return;
-            }
-        }
-
-        call_user_func_array(array($service, $call[0]), $this->resolveServices($this->getParameterBag()->resolveValue($call[1])));
-    }
-
-    /**
-     * Shares a given service in the container.
-     *
-     * @param Definition $definition
-     * @param mixed      $service
-     * @param string     $id
-     *
-     * @throws InactiveScopeException
-     */
-    private function shareService(Definition $definition, $service, $id)
-    {
-        if (self::SCOPE_PROTOTYPE !== $scope = $definition->getScope()) {
-            if (self::SCOPE_CONTAINER !== $scope && !isset($this->scopedServices[$scope])) {
-                throw new InactiveScopeException($id, $scope);
-            }
-
-            $this->services[$lowerId = strtolower($id)] = $service;
-
-            if (self::SCOPE_CONTAINER !== $scope) {
-                $this->scopedServices[$scope][$lowerId] = $service;
-            }
-        }
-    }
-
-    private function getExpressionLanguage()
-    {
-        if (null === $this->expressionLanguage) {
-            if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
-                throw new RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
-            }
-            $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders);
-        }
-
-        return $this->expressionLanguage;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ContainerInterface.php b/core/vendor/symfony/dependency-injection/ContainerInterface.php
deleted file mode 100644
index 19e800b..0000000
--- a/core/vendor/symfony/dependency-injection/ContainerInterface.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-
-/**
- * ContainerInterface is the interface implemented by service container classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-interface ContainerInterface
-{
-    const EXCEPTION_ON_INVALID_REFERENCE = 1;
-    const NULL_ON_INVALID_REFERENCE = 2;
-    const IGNORE_ON_INVALID_REFERENCE = 3;
-    const SCOPE_CONTAINER = 'container';
-    const SCOPE_PROTOTYPE = 'prototype';
-
-    /**
-     * Sets a service.
-     *
-     * @param string $id      The service identifier
-     * @param object $service The service instance
-     * @param string $scope   The scope of the service
-     *
-     * @api
-     */
-    public function set($id, $service, $scope = self::SCOPE_CONTAINER);
-
-    /**
-     * Gets a service.
-     *
-     * @param string $id              The service identifier
-     * @param int    $invalidBehavior The behavior when the service does not exist
-     *
-     * @return object The associated service
-     *
-     * @throws ServiceCircularReferenceException When a circular reference is detected
-     * @throws ServiceNotFoundException          When the service is not defined
-     *
-     * @see Reference
-     *
-     * @api
-     */
-    public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE);
-
-    /**
-     * Returns true if the given service is defined.
-     *
-     * @param string $id The service identifier
-     *
-     * @return bool true if the service is defined, false otherwise
-     *
-     * @api
-     */
-    public function has($id);
-
-    /**
-     * Gets a parameter.
-     *
-     * @param string $name The parameter name
-     *
-     * @return mixed The parameter value
-     *
-     * @throws InvalidArgumentException if the parameter is not defined
-     *
-     * @api
-     */
-    public function getParameter($name);
-
-    /**
-     * Checks if a parameter exists.
-     *
-     * @param string $name The parameter name
-     *
-     * @return bool The presence of parameter in container
-     *
-     * @api
-     */
-    public function hasParameter($name);
-
-    /**
-     * Sets a parameter.
-     *
-     * @param string $name  The parameter name
-     * @param mixed  $value The parameter value
-     *
-     * @api
-     */
-    public function setParameter($name, $value);
-
-    /**
-     * Enters the given scope.
-     *
-     * @param string $name
-     *
-     * @api
-     */
-    public function enterScope($name);
-
-    /**
-     * Leaves the current scope, and re-enters the parent scope.
-     *
-     * @param string $name
-     *
-     * @api
-     */
-    public function leaveScope($name);
-
-    /**
-     * Adds a scope to the container.
-     *
-     * @param ScopeInterface $scope
-     *
-     * @api
-     */
-    public function addScope(ScopeInterface $scope);
-
-    /**
-     * Whether this container has the given scope.
-     *
-     * @param string $name
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasScope($name);
-
-    /**
-     * Determines whether the given scope is currently active.
-     *
-     * It does however not check if the scope actually exists.
-     *
-     * @param string $name
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isScopeActive($name);
-}
diff --git a/core/vendor/symfony/dependency-injection/Definition.php b/core/vendor/symfony/dependency-injection/Definition.php
deleted file mode 100644
index 71447fa..0000000
--- a/core/vendor/symfony/dependency-injection/Definition.php
+++ /dev/null
@@ -1,807 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException;
-
-/**
- * Definition represents a service definition.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Definition
-{
-    private $class;
-    private $file;
-    private $factory;
-    private $factoryClass;
-    private $factoryMethod;
-    private $factoryService;
-    private $scope = ContainerInterface::SCOPE_CONTAINER;
-    private $properties = array();
-    private $calls = array();
-    private $configurator;
-    private $tags = array();
-    private $public = true;
-    private $synthetic = false;
-    private $abstract = false;
-    private $synchronized = false;
-    private $lazy = false;
-    private $decoratedService;
-
-    protected $arguments;
-
-    /**
-     * Constructor.
-     *
-     * @param string|null $class     The service class
-     * @param array       $arguments An array of arguments to pass to the service constructor
-     *
-     * @api
-     */
-    public function __construct($class = null, array $arguments = array())
-    {
-        $this->class = $class;
-        $this->arguments = $arguments;
-    }
-
-    /**
-     * Sets a factory.
-     *
-     * @param string|array $factory A PHP function or an array containing a class/Reference and a method to call
-     *
-     * @return Definition The current instance
-     */
-    public function setFactory($factory)
-    {
-        if (is_string($factory) && strpos($factory, '::') !== false) {
-            $factory = explode('::', $factory, 2);
-        }
-
-        $this->factory = $factory;
-
-        return $this;
-    }
-
-    /**
-     * Gets the factory.
-     *
-     * @return string|array The PHP function or an array containing a class/Reference and a method to call
-     */
-    public function getFactory()
-    {
-        return $this->factory;
-    }
-
-    /**
-     * Sets the name of the class that acts as a factory using the factory method,
-     * which will be invoked statically.
-     *
-     * @param string $factoryClass The factory class name
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function setFactoryClass($factoryClass)
-    {
-        @trigger_error(sprintf('%s(%s) is deprecated since version 2.6 and will be removed in 3.0. Use Definition::setFactory() instead.', __METHOD__, $factoryClass), E_USER_DEPRECATED);
-
-        $this->factoryClass = $factoryClass;
-
-        return $this;
-    }
-
-    /**
-     * Gets the factory class.
-     *
-     * @return string|null The factory class name
-     *
-     * @api
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function getFactoryClass($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0.', E_USER_DEPRECATED);
-        }
-
-        return $this->factoryClass;
-    }
-
-    /**
-     * Sets the factory method able to create an instance of this class.
-     *
-     * @param string $factoryMethod The factory method name
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function setFactoryMethod($factoryMethod)
-    {
-        @trigger_error(sprintf('%s(%s) is deprecated since version 2.6 and will be removed in 3.0. Use Definition::setFactory() instead.', __METHOD__, $factoryMethod), E_USER_DEPRECATED);
-
-        $this->factoryMethod = $factoryMethod;
-
-        return $this;
-    }
-
-    /**
-     * Sets the service that this service is decorating.
-     *
-     * @param null|string $id        The decorated service id, use null to remove decoration
-     * @param null|string $renamedId The new decorated service id
-     *
-     * @return Definition The current instance
-     *
-     * @throws InvalidArgumentException In case the decorated service id and the new decorated service id are equals.
-     */
-    public function setDecoratedService($id, $renamedId = null)
-    {
-        if ($renamedId && $id == $renamedId) {
-            throw new \InvalidArgumentException(sprintf('The decorated service inner name for "%s" must be different than the service name itself.', $id));
-        }
-
-        if (null === $id) {
-            $this->decoratedService = null;
-        } else {
-            $this->decoratedService = array($id, $renamedId);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the service that decorates this service.
-     *
-     * @return null|array An array composed of the decorated service id and the new id for it, null if no service is decorated
-     */
-    public function getDecoratedService()
-    {
-        return $this->decoratedService;
-    }
-
-    /**
-     * Gets the factory method.
-     *
-     * @return string|null The factory method name
-     *
-     * @api
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function getFactoryMethod($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0.', E_USER_DEPRECATED);
-        }
-
-        return $this->factoryMethod;
-    }
-
-    /**
-     * Sets the name of the service that acts as a factory using the factory method.
-     *
-     * @param string $factoryService The factory service id
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function setFactoryService($factoryService)
-    {
-        @trigger_error(sprintf('%s(%s) is deprecated since version 2.6 and will be removed in 3.0. Use Definition::setFactory() instead.', __METHOD__, $factoryService), E_USER_DEPRECATED);
-
-        $this->factoryService = $factoryService;
-
-        return $this;
-    }
-
-    /**
-     * Gets the factory service id.
-     *
-     * @return string|null The factory service id
-     *
-     * @api
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function getFactoryService($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0.', E_USER_DEPRECATED);
-        }
-
-        return $this->factoryService;
-    }
-
-    /**
-     * Sets the service class.
-     *
-     * @param string $class The service class
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setClass($class)
-    {
-        $this->class = $class;
-
-        return $this;
-    }
-
-    /**
-     * Gets the service class.
-     *
-     * @return string|null The service class
-     *
-     * @api
-     */
-    public function getClass()
-    {
-        return $this->class;
-    }
-
-    /**
-     * Sets the arguments to pass to the service constructor/factory method.
-     *
-     * @param array $arguments An array of arguments
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setArguments(array $arguments)
-    {
-        $this->arguments = $arguments;
-
-        return $this;
-    }
-
-    /**
-     * @api
-     */
-    public function setProperties(array $properties)
-    {
-        $this->properties = $properties;
-
-        return $this;
-    }
-
-    /**
-     * @api
-     */
-    public function getProperties()
-    {
-        return $this->properties;
-    }
-
-    /**
-     * @api
-     */
-    public function setProperty($name, $value)
-    {
-        $this->properties[$name] = $value;
-
-        return $this;
-    }
-
-    /**
-     * Adds an argument to pass to the service constructor/factory method.
-     *
-     * @param mixed $argument An argument
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function addArgument($argument)
-    {
-        $this->arguments[] = $argument;
-
-        return $this;
-    }
-
-    /**
-     * Sets a specific argument.
-     *
-     * @param int   $index
-     * @param mixed $argument
-     *
-     * @return Definition The current instance
-     *
-     * @throws OutOfBoundsException When the replaced argument does not exist
-     *
-     * @api
-     */
-    public function replaceArgument($index, $argument)
-    {
-        if ($index < 0 || $index > count($this->arguments) - 1) {
-            throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, count($this->arguments) - 1));
-        }
-
-        $this->arguments[$index] = $argument;
-
-        return $this;
-    }
-
-    /**
-     * Gets the arguments to pass to the service constructor/factory method.
-     *
-     * @return array The array of arguments
-     *
-     * @api
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * Gets an argument to pass to the service constructor/factory method.
-     *
-     * @param int $index
-     *
-     * @return mixed The argument value
-     *
-     * @throws OutOfBoundsException When the argument does not exist
-     *
-     * @api
-     */
-    public function getArgument($index)
-    {
-        if ($index < 0 || $index > count($this->arguments) - 1) {
-            throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, count($this->arguments) - 1));
-        }
-
-        return $this->arguments[$index];
-    }
-
-    /**
-     * Sets the methods to call after service initialization.
-     *
-     * @param array $calls An array of method calls
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setMethodCalls(array $calls = array())
-    {
-        $this->calls = array();
-        foreach ($calls as $call) {
-            $this->addMethodCall($call[0], $call[1]);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Adds a method to call after service initialization.
-     *
-     * @param string $method    The method name to call
-     * @param array  $arguments An array of arguments to pass to the method call
-     *
-     * @return Definition The current instance
-     *
-     * @throws InvalidArgumentException on empty $method param
-     *
-     * @api
-     */
-    public function addMethodCall($method, array $arguments = array())
-    {
-        if (empty($method)) {
-            throw new InvalidArgumentException(sprintf('Method name cannot be empty.'));
-        }
-        $this->calls[] = array($method, $arguments);
-
-        return $this;
-    }
-
-    /**
-     * Removes a method to call after service initialization.
-     *
-     * @param string $method The method name to remove
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function removeMethodCall($method)
-    {
-        foreach ($this->calls as $i => $call) {
-            if ($call[0] === $method) {
-                unset($this->calls[$i]);
-                break;
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Check if the current definition has a given method to call after service initialization.
-     *
-     * @param string $method The method name to search for
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasMethodCall($method)
-    {
-        foreach ($this->calls as $call) {
-            if ($call[0] === $method) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Gets the methods to call after service initialization.
-     *
-     * @return array An array of method calls
-     *
-     * @api
-     */
-    public function getMethodCalls()
-    {
-        return $this->calls;
-    }
-
-    /**
-     * Sets tags for this definition.
-     *
-     * @param array $tags
-     *
-     * @return Definition the current instance
-     *
-     * @api
-     */
-    public function setTags(array $tags)
-    {
-        $this->tags = $tags;
-
-        return $this;
-    }
-
-    /**
-     * Returns all tags.
-     *
-     * @return array An array of tags
-     *
-     * @api
-     */
-    public function getTags()
-    {
-        return $this->tags;
-    }
-
-    /**
-     * Gets a tag by name.
-     *
-     * @param string $name The tag name
-     *
-     * @return array An array of attributes
-     *
-     * @api
-     */
-    public function getTag($name)
-    {
-        return isset($this->tags[$name]) ? $this->tags[$name] : array();
-    }
-
-    /**
-     * Adds a tag for this definition.
-     *
-     * @param string $name       The tag name
-     * @param array  $attributes An array of attributes
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function addTag($name, array $attributes = array())
-    {
-        $this->tags[$name][] = $attributes;
-
-        return $this;
-    }
-
-    /**
-     * Whether this definition has a tag with the given name.
-     *
-     * @param string $name
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasTag($name)
-    {
-        return isset($this->tags[$name]);
-    }
-
-    /**
-     * Clears all tags for a given name.
-     *
-     * @param string $name The tag name
-     *
-     * @return Definition
-     */
-    public function clearTag($name)
-    {
-        if (isset($this->tags[$name])) {
-            unset($this->tags[$name]);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Clears the tags for this definition.
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function clearTags()
-    {
-        $this->tags = array();
-
-        return $this;
-    }
-
-    /**
-     * Sets a file to require before creating the service.
-     *
-     * @param string $file A full pathname to include
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setFile($file)
-    {
-        $this->file = $file;
-
-        return $this;
-    }
-
-    /**
-     * Gets the file to require before creating the service.
-     *
-     * @return string|null The full pathname to include
-     *
-     * @api
-     */
-    public function getFile()
-    {
-        return $this->file;
-    }
-
-    /**
-     * Sets the scope of the service.
-     *
-     * @param string $scope Whether the service must be shared or not
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setScope($scope)
-    {
-        $this->scope = $scope;
-
-        return $this;
-    }
-
-    /**
-     * Returns the scope of the service.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getScope()
-    {
-        return $this->scope;
-    }
-
-    /**
-     * Sets the visibility of this service.
-     *
-     * @param bool $boolean
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setPublic($boolean)
-    {
-        $this->public = (bool) $boolean;
-
-        return $this;
-    }
-
-    /**
-     * Whether this service is public facing.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isPublic()
-    {
-        return $this->public;
-    }
-
-    /**
-     * Sets the synchronized flag of this service.
-     *
-     * @param bool $boolean
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     *
-     * @deprecated since version 2.7, will be removed in 3.0.
-     */
-    public function setSynchronized($boolean, $triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__METHOD__.' method is deprecated since version 2.7 and will be removed in 3.0.', E_USER_DEPRECATED);
-        }
-
-        $this->synchronized = (bool) $boolean;
-
-        return $this;
-    }
-
-    /**
-     * Whether this service is synchronized.
-     *
-     * @return bool
-     *
-     * @api
-     *
-     * @deprecated since version 2.7, will be removed in 3.0.
-     */
-    public function isSynchronized($triggerDeprecationError = true)
-    {
-        if ($triggerDeprecationError) {
-            @trigger_error('The '.__METHOD__.' method is deprecated since version 2.7 and will be removed in 3.0.', E_USER_DEPRECATED);
-        }
-
-        return $this->synchronized;
-    }
-
-    /**
-     * Sets the lazy flag of this service.
-     *
-     * @param bool $lazy
-     *
-     * @return Definition The current instance
-     */
-    public function setLazy($lazy)
-    {
-        $this->lazy = (bool) $lazy;
-
-        return $this;
-    }
-
-    /**
-     * Whether this service is lazy.
-     *
-     * @return bool
-     */
-    public function isLazy()
-    {
-        return $this->lazy;
-    }
-
-    /**
-     * Sets whether this definition is synthetic, that is not constructed by the
-     * container, but dynamically injected.
-     *
-     * @param bool $boolean
-     *
-     * @return Definition the current instance
-     *
-     * @api
-     */
-    public function setSynthetic($boolean)
-    {
-        $this->synthetic = (bool) $boolean;
-
-        return $this;
-    }
-
-    /**
-     * Whether this definition is synthetic, that is not constructed by the
-     * container, but dynamically injected.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isSynthetic()
-    {
-        return $this->synthetic;
-    }
-
-    /**
-     * Whether this definition is abstract, that means it merely serves as a
-     * template for other definitions.
-     *
-     * @param bool $boolean
-     *
-     * @return Definition the current instance
-     *
-     * @api
-     */
-    public function setAbstract($boolean)
-    {
-        $this->abstract = (bool) $boolean;
-
-        return $this;
-    }
-
-    /**
-     * Whether this definition is abstract, that means it merely serves as a
-     * template for other definitions.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isAbstract()
-    {
-        return $this->abstract;
-    }
-
-    /**
-     * Sets a configurator to call after the service is fully initialized.
-     *
-     * @param callable $callable A PHP callable
-     *
-     * @return Definition The current instance
-     *
-     * @api
-     */
-    public function setConfigurator($callable)
-    {
-        $this->configurator = $callable;
-
-        return $this;
-    }
-
-    /**
-     * Gets the configurator to call after the service is fully initialized.
-     *
-     * @return callable|null The PHP callable to call
-     *
-     * @api
-     */
-    public function getConfigurator()
-    {
-        return $this->configurator;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/DefinitionDecorator.php b/core/vendor/symfony/dependency-injection/DefinitionDecorator.php
deleted file mode 100644
index f5a1485..0000000
--- a/core/vendor/symfony/dependency-injection/DefinitionDecorator.php
+++ /dev/null
@@ -1,239 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\OutOfBoundsException;
-
-/**
- * This definition decorates another definition.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class DefinitionDecorator extends Definition
-{
-    private $parent;
-    private $changes = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $parent The id of Definition instance to decorate.
-     *
-     * @api
-     */
-    public function __construct($parent)
-    {
-        parent::__construct();
-
-        $this->parent = $parent;
-    }
-
-    /**
-     * Returns the Definition being decorated.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getParent()
-    {
-        return $this->parent;
-    }
-
-    /**
-     * Returns all changes tracked for the Definition object.
-     *
-     * @return array An array of changes for this Definition
-     *
-     * @api
-     */
-    public function getChanges()
-    {
-        return $this->changes;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setClass($class)
-    {
-        $this->changes['class'] = true;
-
-        return parent::setClass($class);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setFactory($callable)
-    {
-        $this->changes['factory'] = true;
-
-        return parent::setFactory($callable);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setFactoryClass($class)
-    {
-        $this->changes['factory_class'] = true;
-
-        return parent::setFactoryClass($class);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setFactoryMethod($method)
-    {
-        $this->changes['factory_method'] = true;
-
-        return parent::setFactoryMethod($method);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setFactoryService($service)
-    {
-        $this->changes['factory_service'] = true;
-
-        return parent::setFactoryService($service);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setConfigurator($callable)
-    {
-        $this->changes['configurator'] = true;
-
-        return parent::setConfigurator($callable);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setFile($file)
-    {
-        $this->changes['file'] = true;
-
-        return parent::setFile($file);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setPublic($boolean)
-    {
-        $this->changes['public'] = true;
-
-        return parent::setPublic($boolean);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setLazy($boolean)
-    {
-        $this->changes['lazy'] = true;
-
-        return parent::setLazy($boolean);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setDecoratedService($id, $renamedId = null)
-    {
-        $this->changes['decorated_service'] = true;
-
-        return parent::setDecoratedService($id, $renamedId);
-    }
-
-    /**
-     * Gets an argument to pass to the service constructor/factory method.
-     *
-     * If replaceArgument() has been used to replace an argument, this method
-     * will return the replacement value.
-     *
-     * @param int $index
-     *
-     * @return mixed The argument value
-     *
-     * @throws OutOfBoundsException When the argument does not exist
-     *
-     * @api
-     */
-    public function getArgument($index)
-    {
-        if (array_key_exists('index_'.$index, $this->arguments)) {
-            return $this->arguments['index_'.$index];
-        }
-
-        $lastIndex = count(array_filter(array_keys($this->arguments), 'is_int')) - 1;
-
-        if ($index < 0 || $index > $lastIndex) {
-            throw new OutOfBoundsException(sprintf('The index "%d" is not in the range [0, %d].', $index, $lastIndex));
-        }
-
-        return $this->arguments[$index];
-    }
-
-    /**
-     * You should always use this method when overwriting existing arguments
-     * of the parent definition.
-     *
-     * If you directly call setArguments() keep in mind that you must follow
-     * certain conventions when you want to overwrite the arguments of the
-     * parent definition, otherwise your arguments will only be appended.
-     *
-     * @param int   $index
-     * @param mixed $value
-     *
-     * @return DefinitionDecorator the current instance
-     *
-     * @throws InvalidArgumentException when $index isn't an integer
-     *
-     * @api
-     */
-    public function replaceArgument($index, $value)
-    {
-        if (!is_int($index)) {
-            throw new InvalidArgumentException('$index must be an integer.');
-        }
-
-        $this->arguments['index_'.$index] = $value;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Dumper/Dumper.php b/core/vendor/symfony/dependency-injection/Dumper/Dumper.php
deleted file mode 100644
index 9892401..0000000
--- a/core/vendor/symfony/dependency-injection/Dumper/Dumper.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Dumper;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Dumper is the abstract class for all built-in dumpers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class Dumper implements DumperInterface
-{
-    protected $container;
-
-    /**
-     * Constructor.
-     *
-     * @param ContainerBuilder $container The service container to dump
-     *
-     * @api
-     */
-    public function __construct(ContainerBuilder $container)
-    {
-        $this->container = $container;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Dumper/DumperInterface.php b/core/vendor/symfony/dependency-injection/Dumper/DumperInterface.php
deleted file mode 100644
index ba146f6..0000000
--- a/core/vendor/symfony/dependency-injection/Dumper/DumperInterface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Dumper;
-
-/**
- * DumperInterface is the interface implemented by service container dumper classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface DumperInterface
-{
-    /**
-     * Dumps the service container.
-     *
-     * @param array $options An array of options
-     *
-     * @return string The representation of the service container
-     *
-     * @api
-     */
-    public function dump(array $options = array());
-}
diff --git a/core/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php b/core/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php
deleted file mode 100644
index 5f35a1e..0000000
--- a/core/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php
+++ /dev/null
@@ -1,302 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Dumper;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Scope;
-
-/**
- * GraphvizDumper dumps a service container as a graphviz file.
- *
- * You can convert the generated dot file with the dot utility (http://www.graphviz.org/):
- *
- *   dot -Tpng container.dot > foo.png
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class GraphvizDumper extends Dumper
-{
-    private $nodes;
-    private $edges;
-    private $options = array(
-            'graph' => array('ratio' => 'compress'),
-            'node' => array('fontsize' => 11, 'fontname' => 'Arial', 'shape' => 'record'),
-            'edge' => array('fontsize' => 9, 'fontname' => 'Arial', 'color' => 'grey', 'arrowhead' => 'open', 'arrowsize' => 0.5),
-            'node.instance' => array('fillcolor' => '#9999ff', 'style' => 'filled'),
-            'node.definition' => array('fillcolor' => '#eeeeee'),
-            'node.missing' => array('fillcolor' => '#ff9999', 'style' => 'filled'),
-        );
-
-    /**
-     * Dumps the service container as a graphviz graph.
-     *
-     * Available options:
-     *
-     *  * graph: The default options for the whole graph
-     *  * node: The default options for nodes
-     *  * edge: The default options for edges
-     *  * node.instance: The default options for services that are defined directly by object instances
-     *  * node.definition: The default options for services that are defined via service definition instances
-     *  * node.missing: The default options for missing services
-     *
-     * @param array $options An array of options
-     *
-     * @return string The dot representation of the service container
-     */
-    public function dump(array $options = array())
-    {
-        foreach (array('graph', 'node', 'edge', 'node.instance', 'node.definition', 'node.missing') as $key) {
-            if (isset($options[$key])) {
-                $this->options[$key] = array_merge($this->options[$key], $options[$key]);
-            }
-        }
-
-        $this->nodes = $this->findNodes();
-
-        $this->edges = array();
-        foreach ($this->container->getDefinitions() as $id => $definition) {
-            $this->edges[$id] = array_merge(
-                $this->findEdges($id, $definition->getArguments(), true, ''),
-                $this->findEdges($id, $definition->getProperties(), false, '')
-            );
-
-            foreach ($definition->getMethodCalls() as $call) {
-                $this->edges[$id] = array_merge(
-                    $this->edges[$id],
-                    $this->findEdges($id, $call[1], false, $call[0].'()')
-                );
-            }
-        }
-
-        return $this->startDot().$this->addNodes().$this->addEdges().$this->endDot();
-    }
-
-    /**
-     * Returns all nodes.
-     *
-     * @return string A string representation of all nodes
-     */
-    private function addNodes()
-    {
-        $code = '';
-        foreach ($this->nodes as $id => $node) {
-            $aliases = $this->getAliases($id);
-
-            $code .= sprintf("  node_%s [label=\"%s\\n%s\\n\", shape=%s%s];\n", $this->dotize($id), $id.($aliases ? ' ('.implode(', ', $aliases).')' : ''), $node['class'], $this->options['node']['shape'], $this->addAttributes($node['attributes']));
-        }
-
-        return $code;
-    }
-
-    /**
-     * Returns all edges.
-     *
-     * @return string A string representation of all edges
-     */
-    private function addEdges()
-    {
-        $code = '';
-        foreach ($this->edges as $id => $edges) {
-            foreach ($edges as $edge) {
-                $code .= sprintf("  node_%s -> node_%s [label=\"%s\" style=\"%s\"];\n", $this->dotize($id), $this->dotize($edge['to']), $edge['name'], $edge['required'] ? 'filled' : 'dashed');
-            }
-        }
-
-        return $code;
-    }
-
-    /**
-     * Finds all edges belonging to a specific service id.
-     *
-     * @param string $id        The service id used to find edges
-     * @param array  $arguments An array of arguments
-     * @param bool   $required
-     * @param string $name
-     *
-     * @return array An array of edges
-     */
-    private function findEdges($id, $arguments, $required, $name)
-    {
-        $edges = array();
-        foreach ($arguments as $argument) {
-            if ($argument instanceof Parameter) {
-                $argument = $this->container->hasParameter($argument) ? $this->container->getParameter($argument) : null;
-            } elseif (is_string($argument) && preg_match('/^%([^%]+)%$/', $argument, $match)) {
-                $argument = $this->container->hasParameter($match[1]) ? $this->container->getParameter($match[1]) : null;
-            }
-
-            if ($argument instanceof Reference) {
-                if (!$this->container->has((string) $argument)) {
-                    $this->nodes[(string) $argument] = array('name' => $name, 'required' => $required, 'class' => '', 'attributes' => $this->options['node.missing']);
-                }
-
-                $edges[] = array('name' => $name, 'required' => $required, 'to' => $argument);
-            } elseif (is_array($argument)) {
-                $edges = array_merge($edges, $this->findEdges($id, $argument, $required, $name));
-            }
-        }
-
-        return $edges;
-    }
-
-    /**
-     * Finds all nodes.
-     *
-     * @return array An array of all nodes
-     */
-    private function findNodes()
-    {
-        $nodes = array();
-
-        $container = $this->cloneContainer();
-
-        foreach ($container->getDefinitions() as $id => $definition) {
-            $className = $definition->getClass();
-
-            try {
-                $className = $this->container->getParameterBag()->resolveValue($className);
-            } catch (ParameterNotFoundException $e) {
-            }
-
-            $nodes[$id] = array('class' => str_replace('\\', '\\\\', $className), 'attributes' => array_merge($this->options['node.definition'], array('style' => ContainerInterface::SCOPE_PROTOTYPE !== $definition->getScope() ? 'filled' : 'dotted')));
-            $container->setDefinition($id, new Definition('stdClass'));
-        }
-
-        foreach ($container->getServiceIds() as $id) {
-            $service = $container->get($id);
-
-            if (array_key_exists($id, $container->getAliases())) {
-                continue;
-            }
-
-            if (!$container->hasDefinition($id)) {
-                $class = ('service_container' === $id) ? get_class($this->container) : get_class($service);
-                $nodes[$id] = array('class' => str_replace('\\', '\\\\', $class), 'attributes' => $this->options['node.instance']);
-            }
-        }
-
-        return $nodes;
-    }
-
-    private function cloneContainer()
-    {
-        $parameterBag = new ParameterBag($this->container->getParameterBag()->all());
-
-        $container = new ContainerBuilder($parameterBag);
-        $container->setDefinitions($this->container->getDefinitions());
-        $container->setAliases($this->container->getAliases());
-        $container->setResources($this->container->getResources());
-        foreach ($this->container->getScopes() as $scope => $parentScope) {
-            $container->addScope(new Scope($scope, $parentScope));
-        }
-        foreach ($this->container->getExtensions() as $extension) {
-            $container->registerExtension($extension);
-        }
-
-        return $container;
-    }
-
-    /**
-     * Returns the start dot.
-     *
-     * @return string The string representation of a start dot
-     */
-    private function startDot()
-    {
-        return sprintf("digraph sc {\n  %s\n  node [%s];\n  edge [%s];\n\n",
-            $this->addOptions($this->options['graph']),
-            $this->addOptions($this->options['node']),
-            $this->addOptions($this->options['edge'])
-        );
-    }
-
-    /**
-     * Returns the end dot.
-     *
-     * @return string
-     */
-    private function endDot()
-    {
-        return "}\n";
-    }
-
-    /**
-     * Adds attributes.
-     *
-     * @param array $attributes An array of attributes
-     *
-     * @return string A comma separated list of attributes
-     */
-    private function addAttributes($attributes)
-    {
-        $code = array();
-        foreach ($attributes as $k => $v) {
-            $code[] = sprintf('%s="%s"', $k, $v);
-        }
-
-        return $code ? ', '.implode(', ', $code) : '';
-    }
-
-    /**
-     * Adds options.
-     *
-     * @param array $options An array of options
-     *
-     * @return string A space separated list of options
-     */
-    private function addOptions($options)
-    {
-        $code = array();
-        foreach ($options as $k => $v) {
-            $code[] = sprintf('%s="%s"', $k, $v);
-        }
-
-        return implode(' ', $code);
-    }
-
-    /**
-     * Dotizes an identifier.
-     *
-     * @param string $id The identifier to dotize
-     *
-     * @return string A dotized string
-     */
-    private function dotize($id)
-    {
-        return strtolower(preg_replace('/\W/i', '_', $id));
-    }
-
-    /**
-     * Compiles an array of aliases for a specified service id.
-     *
-     * @param string $id A service id
-     *
-     * @return array An array of aliases
-     */
-    private function getAliases($id)
-    {
-        $aliases = array();
-        foreach ($this->container->getAliases() as $alias => $origin) {
-            if ($id == $origin) {
-                $aliases[] = $alias;
-            }
-        }
-
-        return $aliases;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Dumper/PhpDumper.php b/core/vendor/symfony/dependency-injection/Dumper/PhpDumper.php
deleted file mode 100644
index c59bc8d..0000000
--- a/core/vendor/symfony/dependency-injection/Dumper/PhpDumper.php
+++ /dev/null
@@ -1,1560 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Dumper;
-
-use Symfony\Component\DependencyInjection\Variable;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface as ProxyDumper;
-use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper;
-use Symfony\Component\DependencyInjection\ExpressionLanguage;
-use Symfony\Component\ExpressionLanguage\Expression;
-use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
-
-/**
- * PhpDumper dumps a service container as a PHP class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class PhpDumper extends Dumper
-{
-    /**
-     * Characters that might appear in the generated variable name as first character.
-     *
-     * @var string
-     */
-    const FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz';
-
-    /**
-     * Characters that might appear in the generated variable name as any but the first character.
-     *
-     * @var string
-     */
-    const NON_FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789_';
-
-    private $inlinedDefinitions;
-    private $definitionVariables;
-    private $referenceVariables;
-    private $variableCount;
-    private $reservedVariables = array('instance', 'class');
-    private $expressionLanguage;
-    private $targetDirRegex;
-    private $targetDirMaxMatches;
-
-    /**
-     * @var ExpressionFunctionProviderInterface[]
-     */
-    private $expressionLanguageProviders = array();
-
-    /**
-     * @var \Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface
-     */
-    private $proxyDumper;
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function __construct(ContainerBuilder $container)
-    {
-        parent::__construct($container);
-
-        $this->inlinedDefinitions = new \SplObjectStorage();
-    }
-
-    /**
-     * Sets the dumper to be used when dumping proxies in the generated container.
-     *
-     * @param ProxyDumper $proxyDumper
-     */
-    public function setProxyDumper(ProxyDumper $proxyDumper)
-    {
-        $this->proxyDumper = $proxyDumper;
-    }
-
-    /**
-     * Dumps the service container as a PHP class.
-     *
-     * Available options:
-     *
-     *  * class:      The class name
-     *  * base_class: The base class name
-     *  * namespace:  The class namespace
-     *
-     * @param array $options An array of options
-     *
-     * @return string A PHP class representing of the service container
-     *
-     * @api
-     */
-    public function dump(array $options = array())
-    {
-        $this->targetDirRegex = null;
-        $options = array_merge(array(
-            'class' => 'ProjectServiceContainer',
-            'base_class' => 'Container',
-            'namespace' => '',
-        ), $options);
-
-        if (!empty($options['file']) && is_dir($dir = dirname($options['file']))) {
-            // Build a regexp where the first root dirs are mandatory,
-            // but every other sub-dir is optional up to the full path in $dir
-            // Mandate at least 2 root dirs and not more that 5 optional dirs.
-
-            $dir = explode(DIRECTORY_SEPARATOR, realpath($dir));
-            $i = count($dir);
-
-            if (3 <= $i) {
-                $regex = '';
-                $lastOptionalDir = $i > 8 ? $i - 5 : 3;
-                $this->targetDirMaxMatches = $i - $lastOptionalDir;
-
-                while (--$i >= $lastOptionalDir) {
-                    $regex = sprintf('(%s%s)?', preg_quote(DIRECTORY_SEPARATOR.$dir[$i], '#'), $regex);
-                }
-
-                do {
-                    $regex = preg_quote(DIRECTORY_SEPARATOR.$dir[$i], '#').$regex;
-                } while (0 < --$i);
-
-                $this->targetDirRegex = '#'.preg_quote($dir[0], '#').$regex.'#';
-            }
-        }
-
-        $code = $this->startClass($options['class'], $options['base_class'], $options['namespace']);
-
-        if ($this->container->isFrozen()) {
-            $code .= $this->addFrozenConstructor();
-            $code .= $this->addFrozenCompile();
-        } else {
-            $code .= $this->addConstructor();
-        }
-
-        $code .=
-            $this->addServices().
-            $this->addDefaultParametersMethod().
-            $this->endClass().
-            $this->addProxyClasses()
-        ;
-        $this->targetDirRegex = null;
-
-        return $code;
-    }
-
-    /**
-     * Retrieves the currently set proxy dumper or instantiates one.
-     *
-     * @return ProxyDumper
-     */
-    private function getProxyDumper()
-    {
-        if (!$this->proxyDumper) {
-            $this->proxyDumper = new NullDumper();
-        }
-
-        return $this->proxyDumper;
-    }
-
-    /**
-     * Generates Service local temp variables.
-     *
-     * @param string $cId
-     * @param string $definition
-     *
-     * @return string
-     */
-    private function addServiceLocalTempVariables($cId, $definition)
-    {
-        static $template = "        \$%s = %s;\n";
-
-        $localDefinitions = array_merge(
-            array($definition),
-            $this->getInlinedDefinitions($definition)
-        );
-
-        $calls = $behavior = array();
-        foreach ($localDefinitions as $iDefinition) {
-            $this->getServiceCallsFromArguments($iDefinition->getArguments(), $calls, $behavior);
-            $this->getServiceCallsFromArguments($iDefinition->getMethodCalls(), $calls, $behavior);
-            $this->getServiceCallsFromArguments($iDefinition->getProperties(), $calls, $behavior);
-            $this->getServiceCallsFromArguments(array($iDefinition->getConfigurator()), $calls, $behavior);
-            $this->getServiceCallsFromArguments(array($iDefinition->getFactory()), $calls, $behavior);
-        }
-
-        $code = '';
-        foreach ($calls as $id => $callCount) {
-            if ('service_container' === $id || $id === $cId) {
-                continue;
-            }
-
-            if ($callCount > 1) {
-                $name = $this->getNextVariableName();
-                $this->referenceVariables[$id] = new Variable($name);
-
-                if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE === $behavior[$id]) {
-                    $code .= sprintf($template, $name, $this->getServiceCall($id));
-                } else {
-                    $code .= sprintf($template, $name, $this->getServiceCall($id, new Reference($id, ContainerInterface::NULL_ON_INVALID_REFERENCE)));
-                }
-            }
-        }
-
-        if ('' !== $code) {
-            $code .= "\n";
-        }
-
-        return $code;
-    }
-
-    /**
-     * Generates code for the proxies to be attached after the container class.
-     *
-     * @return string
-     */
-    private function addProxyClasses()
-    {
-        /* @var $definitions Definition[] */
-        $definitions = array_filter(
-            $this->container->getDefinitions(),
-            array($this->getProxyDumper(), 'isProxyCandidate')
-        );
-        $code = '';
-
-        foreach ($definitions as $definition) {
-            $code .= "\n".$this->getProxyDumper()->getProxyCode($definition);
-        }
-
-        return $code;
-    }
-
-    /**
-     * Generates the require_once statement for service includes.
-     *
-     * @param string     $id         The service id
-     * @param Definition $definition
-     *
-     * @return string
-     */
-    private function addServiceInclude($id, $definition)
-    {
-        $template = "        require_once %s;\n";
-        $code = '';
-
-        if (null !== $file = $definition->getFile()) {
-            $code .= sprintf($template, $this->dumpValue($file));
-        }
-
-        foreach ($this->getInlinedDefinitions($definition) as $definition) {
-            if (null !== $file = $definition->getFile()) {
-                $code .= sprintf($template, $this->dumpValue($file));
-            }
-        }
-
-        if ('' !== $code) {
-            $code .= "\n";
-        }
-
-        return $code;
-    }
-
-    /**
-     * Generates the inline definition of a service.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     *
-     * @return string
-     *
-     * @throws RuntimeException                  When the factory definition is incomplete
-     * @throws ServiceCircularReferenceException When a circular reference is detected
-     */
-    private function addServiceInlinedDefinitions($id, $definition)
-    {
-        $code = '';
-        $variableMap = $this->definitionVariables;
-        $nbOccurrences = new \SplObjectStorage();
-        $processed = new \SplObjectStorage();
-        $inlinedDefinitions = $this->getInlinedDefinitions($definition);
-
-        foreach ($inlinedDefinitions as $definition) {
-            if (false === $nbOccurrences->contains($definition)) {
-                $nbOccurrences->offsetSet($definition, 1);
-            } else {
-                $i = $nbOccurrences->offsetGet($definition);
-                $nbOccurrences->offsetSet($definition, $i + 1);
-            }
-        }
-
-        foreach ($inlinedDefinitions as $sDefinition) {
-            if ($processed->contains($sDefinition)) {
-                continue;
-            }
-            $processed->offsetSet($sDefinition);
-
-            $class = $this->dumpValue($sDefinition->getClass());
-            if ($nbOccurrences->offsetGet($sDefinition) > 1 || $sDefinition->getMethodCalls() || $sDefinition->getProperties() || null !== $sDefinition->getConfigurator() || false !== strpos($class, '$')) {
-                $name = $this->getNextVariableName();
-                $variableMap->offsetSet($sDefinition, new Variable($name));
-
-                // a construct like:
-                // $a = new ServiceA(ServiceB $b); $b = new ServiceB(ServiceA $a);
-                // this is an indication for a wrong implementation, you can circumvent this problem
-                // by setting up your service structure like this:
-                // $b = new ServiceB();
-                // $a = new ServiceA(ServiceB $b);
-                // $b->setServiceA(ServiceA $a);
-                if ($this->hasReference($id, $sDefinition->getArguments())) {
-                    throw new ServiceCircularReferenceException($id, array($id));
-                }
-
-                $code .= $this->addNewInstance($id, $sDefinition, '$'.$name, ' = ');
-
-                if (!$this->hasReference($id, $sDefinition->getMethodCalls(), true) && !$this->hasReference($id, $sDefinition->getProperties(), true)) {
-                    $code .= $this->addServiceMethodCalls(null, $sDefinition, $name);
-                    $code .= $this->addServiceProperties(null, $sDefinition, $name);
-                    $code .= $this->addServiceConfigurator(null, $sDefinition, $name);
-                }
-
-                $code .= "\n";
-            }
-        }
-
-        return $code;
-    }
-
-    /**
-     * Adds the service return statement.
-     *
-     * @param string     $id         Service id
-     * @param Definition $definition
-     *
-     * @return string
-     */
-    private function addServiceReturn($id, $definition)
-    {
-        if ($this->isSimpleInstance($id, $definition)) {
-            return "    }\n";
-        }
-
-        return "\n        return \$instance;\n    }\n";
-    }
-
-    /**
-     * Generates the service instance.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     *
-     * @return string
-     *
-     * @throws InvalidArgumentException
-     * @throws RuntimeException
-     */
-    private function addServiceInstance($id, $definition)
-    {
-        $class = $this->dumpValue($definition->getClass());
-
-        if (0 === strpos($class, "'") && !preg_match('/^\'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) {
-            throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
-        }
-
-        $simple = $this->isSimpleInstance($id, $definition);
-        $isProxyCandidate = $this->getProxyDumper()->isProxyCandidate($definition);
-        $instantiation = '';
-
-        if (!$isProxyCandidate && ContainerInterface::SCOPE_CONTAINER === $definition->getScope()) {
-            $instantiation = "\$this->services['$id'] = ".($simple ? '' : '$instance');
-        } elseif (!$isProxyCandidate && ContainerInterface::SCOPE_PROTOTYPE !== $scope = $definition->getScope()) {
-            $instantiation = "\$this->services['$id'] = \$this->scopedServices['$scope']['$id'] = ".($simple ? '' : '$instance');
-        } elseif (!$simple) {
-            $instantiation = '$instance';
-        }
-
-        $return = '';
-        if ($simple) {
-            $return = 'return ';
-        } else {
-            $instantiation .= ' = ';
-        }
-
-        $code = $this->addNewInstance($id, $definition, $return, $instantiation);
-
-        if (!$simple) {
-            $code .= "\n";
-        }
-
-        return $code;
-    }
-
-    /**
-     * Checks if the definition is a simple instance.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     *
-     * @return bool
-     */
-    private function isSimpleInstance($id, $definition)
-    {
-        foreach (array_merge(array($definition), $this->getInlinedDefinitions($definition)) as $sDefinition) {
-            if ($definition !== $sDefinition && !$this->hasReference($id, $sDefinition->getMethodCalls())) {
-                continue;
-            }
-
-            if ($sDefinition->getMethodCalls() || $sDefinition->getProperties() || $sDefinition->getConfigurator()) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Adds method calls to a service definition.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     * @param string     $variableName
-     *
-     * @return string
-     */
-    private function addServiceMethodCalls($id, $definition, $variableName = 'instance')
-    {
-        $calls = '';
-        foreach ($definition->getMethodCalls() as $call) {
-            $arguments = array();
-            foreach ($call[1] as $value) {
-                $arguments[] = $this->dumpValue($value);
-            }
-
-            $calls .= $this->wrapServiceConditionals($call[1], sprintf("        \$%s->%s(%s);\n", $variableName, $call[0], implode(', ', $arguments)));
-        }
-
-        return $calls;
-    }
-
-    private function addServiceProperties($id, $definition, $variableName = 'instance')
-    {
-        $code = '';
-        foreach ($definition->getProperties() as $name => $value) {
-            $code .= sprintf("        \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value));
-        }
-
-        return $code;
-    }
-
-    /**
-     * Generates the inline definition setup.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     *
-     * @return string
-     *
-     * @throws ServiceCircularReferenceException when the container contains a circular reference
-     */
-    private function addServiceInlinedDefinitionsSetup($id, $definition)
-    {
-        $this->referenceVariables[$id] = new Variable('instance');
-
-        $code = '';
-        $processed = new \SplObjectStorage();
-        foreach ($this->getInlinedDefinitions($definition) as $iDefinition) {
-            if ($processed->contains($iDefinition)) {
-                continue;
-            }
-            $processed->offsetSet($iDefinition);
-
-            if (!$this->hasReference($id, $iDefinition->getMethodCalls(), true) && !$this->hasReference($id, $iDefinition->getProperties(), true)) {
-                continue;
-            }
-
-            // if the instance is simple, the return statement has already been generated
-            // so, the only possible way to get there is because of a circular reference
-            if ($this->isSimpleInstance($id, $definition)) {
-                throw new ServiceCircularReferenceException($id, array($id));
-            }
-
-            $name = (string) $this->definitionVariables->offsetGet($iDefinition);
-            $code .= $this->addServiceMethodCalls(null, $iDefinition, $name);
-            $code .= $this->addServiceProperties(null, $iDefinition, $name);
-            $code .= $this->addServiceConfigurator(null, $iDefinition, $name);
-        }
-
-        if ('' !== $code) {
-            $code .= "\n";
-        }
-
-        return $code;
-    }
-
-    /**
-     * Adds configurator definition.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     * @param string     $variableName
-     *
-     * @return string
-     */
-    private function addServiceConfigurator($id, $definition, $variableName = 'instance')
-    {
-        if (!$callable = $definition->getConfigurator()) {
-            return '';
-        }
-
-        if (is_array($callable)) {
-            if ($callable[0] instanceof Reference
-                || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0]))) {
-                return sprintf("        %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
-            }
-
-            $class = $this->dumpValue($callable[0]);
-            // If the class is a string we can optimize call_user_func away
-            if (strpos($class, "'") === 0) {
-                return sprintf("        %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName);
-            }
-
-            return sprintf("        call_user_func(array(%s, '%s'), \$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName);
-        }
-
-        return sprintf("        %s(\$%s);\n", $callable, $variableName);
-    }
-
-    /**
-     * Adds a service.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     *
-     * @return string
-     */
-    private function addService($id, $definition)
-    {
-        $this->definitionVariables = new \SplObjectStorage();
-        $this->referenceVariables = array();
-        $this->variableCount = 0;
-
-        $return = array();
-
-        if ($definition->isSynthetic()) {
-            $return[] = '@throws RuntimeException always since this service is expected to be injected dynamically';
-        } elseif ($class = $definition->getClass()) {
-            $return[] = sprintf('@return %s A %s instance.', 0 === strpos($class, '%') ? 'object' : '\\'.$class, $class);
-        } elseif ($definition->getFactory()) {
-            $factory = $definition->getFactory();
-            if (is_string($factory)) {
-                $return[] = sprintf('@return object An instance returned by %s().', $factory);
-            } elseif (is_array($factory) && (is_string($factory[0]) || $factory[0] instanceof Definition || $factory[0] instanceof Reference)) {
-                if (is_string($factory[0]) || $factory[0] instanceof Reference) {
-                    $return[] = sprintf('@return object An instance returned by %s::%s().', (string) $factory[0], $factory[1]);
-                } elseif ($factory[0] instanceof Definition) {
-                    $return[] = sprintf('@return object An instance returned by %s::%s().', $factory[0]->getClass(), $factory[1]);
-                }
-            }
-        } elseif ($definition->getFactoryClass(false)) {
-            $return[] = sprintf('@return object An instance returned by %s::%s().', $definition->getFactoryClass(false), $definition->getFactoryMethod(false));
-        } elseif ($definition->getFactoryService(false)) {
-            $return[] = sprintf('@return object An instance returned by %s::%s().', $definition->getFactoryService(false), $definition->getFactoryMethod(false));
-        }
-
-        $scope = $definition->getScope();
-        if (!in_array($scope, array(ContainerInterface::SCOPE_CONTAINER, ContainerInterface::SCOPE_PROTOTYPE))) {
-            if ($return && 0 === strpos($return[count($return) - 1], '@return')) {
-                $return[] = '';
-            }
-            $return[] = sprintf("@throws InactiveScopeException when the '%s' service is requested while the '%s' scope is not active", $id, $scope);
-        }
-
-        $return = implode("\n     * ", $return);
-
-        $doc = '';
-        if (ContainerInterface::SCOPE_PROTOTYPE !== $scope) {
-            $doc .= <<<EOF
-
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-EOF;
-        }
-
-        if (!$definition->isPublic()) {
-            $doc .= <<<EOF
-
-     *
-     * This service is private.
-     * If you want to be able to request this service from the container directly,
-     * make it public, otherwise you might end up with broken code.
-EOF;
-        }
-
-        if ($definition->isLazy()) {
-            $lazyInitialization = '$lazyLoad = true';
-            $lazyInitializationDoc = "\n     * @param bool    \$lazyLoad whether to try lazy-loading the service with a proxy\n     *";
-        } else {
-            $lazyInitialization = '';
-            $lazyInitializationDoc = '';
-        }
-
-        // with proxies, for 5.3.3 compatibility, the getter must be public to be accessible to the initializer
-        $isProxyCandidate = $this->getProxyDumper()->isProxyCandidate($definition);
-        $visibility = $isProxyCandidate ? 'public' : 'protected';
-        $code = <<<EOF
-
-    /**
-     * Gets the '$id' service.$doc
-     *$lazyInitializationDoc
-     * $return
-     */
-    {$visibility} function get{$this->camelize($id)}Service($lazyInitialization)
-    {
-
-EOF;
-
-        $code .= $isProxyCandidate ? $this->getProxyDumper()->getProxyFactoryCode($definition, $id) : '';
-
-        if (!in_array($scope, array(ContainerInterface::SCOPE_CONTAINER, ContainerInterface::SCOPE_PROTOTYPE))) {
-            $code .= <<<EOF
-        if (!isset(\$this->scopedServices['$scope'])) {
-            throw new InactiveScopeException('$id', '$scope');
-        }
-
-
-EOF;
-        }
-
-        if ($definition->isSynthetic()) {
-            $code .= sprintf("        throw new RuntimeException('You have requested a synthetic service (\"%s\"). The DIC does not know how to construct this service.');\n    }\n", $id);
-        } else {
-            $code .=
-                $this->addServiceInclude($id, $definition).
-                $this->addServiceLocalTempVariables($id, $definition).
-                $this->addServiceInlinedDefinitions($id, $definition).
-                $this->addServiceInstance($id, $definition).
-                $this->addServiceInlinedDefinitionsSetup($id, $definition).
-                $this->addServiceMethodCalls($id, $definition).
-                $this->addServiceProperties($id, $definition).
-                $this->addServiceConfigurator($id, $definition).
-                $this->addServiceReturn($id, $definition)
-            ;
-        }
-
-        $this->definitionVariables = null;
-        $this->referenceVariables = null;
-
-        return $code;
-    }
-
-    /**
-     * Adds multiple services.
-     *
-     * @return string
-     */
-    private function addServices()
-    {
-        $publicServices = $privateServices = $synchronizers = '';
-        $definitions = $this->container->getDefinitions();
-        ksort($definitions);
-        foreach ($definitions as $id => $definition) {
-            if ($definition->isPublic()) {
-                $publicServices .= $this->addService($id, $definition);
-            } else {
-                $privateServices .= $this->addService($id, $definition);
-            }
-
-            $synchronizers .= $this->addServiceSynchronizer($id, $definition);
-        }
-
-        return $publicServices.$synchronizers.$privateServices;
-    }
-
-    /**
-     * Adds synchronizer methods.
-     *
-     * @param string     $id         A service identifier
-     * @param Definition $definition A Definition instance
-     *
-     * @return string|null
-     *
-     * @deprecated since version 2.7, will be removed in 3.0.
-     */
-    private function addServiceSynchronizer($id, Definition $definition)
-    {
-        if (!$definition->isSynchronized(false)) {
-            return;
-        }
-
-        if ('request' !== $id) {
-            @trigger_error('Synchronized services were deprecated in version 2.7 and won\'t work anymore in 3.0.', E_USER_DEPRECATED);
-        }
-
-        $code = '';
-        foreach ($this->container->getDefinitions() as $definitionId => $definition) {
-            foreach ($definition->getMethodCalls() as $call) {
-                foreach ($call[1] as $argument) {
-                    if ($argument instanceof Reference && $id == (string) $argument) {
-                        $arguments = array();
-                        foreach ($call[1] as $value) {
-                            $arguments[] = $this->dumpValue($value);
-                        }
-
-                        $call = $this->wrapServiceConditionals($call[1], sprintf("\$this->get('%s')->%s(%s);", $definitionId, $call[0], implode(', ', $arguments)));
-
-                        $code .= <<<EOF
-        if (\$this->initialized('$definitionId')) {
-            $call
-        }
-
-EOF;
-                    }
-                }
-            }
-        }
-
-        if (!$code) {
-            return;
-        }
-
-        return <<<EOF
-
-    /**
-     * Updates the '$id' service.
-     */
-    protected function synchronize{$this->camelize($id)}Service()
-    {
-$code    }
-
-EOF;
-    }
-
-    private function addNewInstance($id, Definition $definition, $return, $instantiation)
-    {
-        $class = $this->dumpValue($definition->getClass());
-
-        $arguments = array();
-        foreach ($definition->getArguments() as $value) {
-            $arguments[] = $this->dumpValue($value);
-        }
-
-        if (null !== $definition->getFactory()) {
-            $callable = $definition->getFactory();
-            if (is_array($callable)) {
-                if ($callable[0] instanceof Reference
-                    || ($callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0]))) {
-                    return sprintf("        $return{$instantiation}%s->%s(%s);\n", $this->dumpValue($callable[0]), $callable[1], $arguments ? implode(', ', $arguments) : '');
-                }
-
-                $class = $this->dumpValue($callable[0]);
-                // If the class is a string we can optimize call_user_func away
-                if (strpos($class, "'") === 0) {
-                    return sprintf("        $return{$instantiation}%s::%s(%s);\n", $this->dumpLiteralClass($class), $callable[1], $arguments ? implode(', ', $arguments) : '');
-                }
-
-                return sprintf("        $return{$instantiation}call_user_func(array(%s, '%s')%s);\n", $this->dumpValue($callable[0]), $callable[1], $arguments ? ', '.implode(', ', $arguments) : '');
-            }
-
-            return sprintf("        $return{$instantiation}\\%s(%s);\n", $callable, $arguments ? implode(', ', $arguments) : '');
-        } elseif (null !== $definition->getFactoryMethod(false)) {
-            if (null !== $definition->getFactoryClass(false)) {
-                $class = $this->dumpValue($definition->getFactoryClass(false));
-
-                // If the class is a string we can optimize call_user_func away
-                if (strpos($class, "'") === 0) {
-                    return sprintf("        $return{$instantiation}%s::%s(%s);\n", $this->dumpLiteralClass($class), $definition->getFactoryMethod(false), $arguments ? implode(', ', $arguments) : '');
-                }
-
-                return sprintf("        $return{$instantiation}call_user_func(array(%s, '%s')%s);\n", $this->dumpValue($definition->getFactoryClass(false)), $definition->getFactoryMethod(false), $arguments ? ', '.implode(', ', $arguments) : '');
-            }
-
-            if (null !== $definition->getFactoryService(false)) {
-                return sprintf("        $return{$instantiation}%s->%s(%s);\n", $this->getServiceCall($definition->getFactoryService(false)), $definition->getFactoryMethod(false), implode(', ', $arguments));
-            }
-
-            throw new RuntimeException(sprintf('Factory method requires a factory service or factory class in service definition for %s', $id));
-        }
-
-        if (false !== strpos($class, '$')) {
-            return sprintf("        \$class = %s;\n\n        $return{$instantiation}new \$class(%s);\n", $class, implode(', ', $arguments));
-        }
-
-        return sprintf("        $return{$instantiation}new %s(%s);\n", $this->dumpLiteralClass($class), implode(', ', $arguments));
-    }
-
-    /**
-     * Adds the class headers.
-     *
-     * @param string $class     Class name
-     * @param string $baseClass The name of the base class
-     * @param string $namespace The class namespace
-     *
-     * @return string
-     */
-    private function startClass($class, $baseClass, $namespace)
-    {
-        $bagClass = $this->container->isFrozen() ? 'use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;' : 'use Symfony\Component\DependencyInjection\ParameterBag\\ParameterBag;';
-        $namespaceLine = $namespace ? "namespace $namespace;\n" : '';
-
-        return <<<EOF
-<?php
-$namespaceLine
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-$bagClass
-
-/**
- * $class.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class $class extends $baseClass
-{
-    private \$parameters;
-    private \$targetDirs = array();
-
-EOF;
-    }
-
-    /**
-     * Adds the constructor.
-     *
-     * @return string
-     */
-    private function addConstructor()
-    {
-        $targetDirs = $this->exportTargetDirs();
-        $arguments = $this->container->getParameterBag()->all() ? 'new ParameterBag($this->getDefaultParameters())' : null;
-
-        $code = <<<EOF
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {{$targetDirs}
-        parent::__construct($arguments);
-
-EOF;
-
-        if (count($scopes = $this->container->getScopes()) > 0) {
-            $code .= "\n";
-            $code .= '        $this->scopes = '.$this->dumpValue($scopes).";\n";
-            $code .= '        $this->scopeChildren = '.$this->dumpValue($this->container->getScopeChildren()).";\n";
-        }
-
-        $code .= $this->addMethodMap();
-        $code .= $this->addAliases();
-
-        $code .= <<<EOF
-    }
-
-EOF;
-
-        return $code;
-    }
-
-    /**
-     * Adds the constructor for a frozen container.
-     *
-     * @return string
-     */
-    private function addFrozenConstructor()
-    {
-        $targetDirs = $this->exportTargetDirs();
-
-        $code = <<<EOF
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {{$targetDirs}
-EOF;
-
-        if ($this->container->getParameterBag()->all()) {
-            $code .= "\n        \$this->parameters = \$this->getDefaultParameters();\n";
-        }
-
-        $code .= <<<EOF
-
-        \$this->services =
-        \$this->scopedServices =
-        \$this->scopeStacks = array();
-EOF;
-
-        $code .= "\n";
-        if (count($scopes = $this->container->getScopes()) > 0) {
-            $code .= '        $this->scopes = '.$this->dumpValue($scopes).";\n";
-            $code .= '        $this->scopeChildren = '.$this->dumpValue($this->container->getScopeChildren()).";\n";
-        } else {
-            $code .= "        \$this->scopes = array();\n";
-            $code .= "        \$this->scopeChildren = array();\n";
-        }
-
-        $code .= $this->addMethodMap();
-        $code .= $this->addAliases();
-
-        $code .= <<<EOF
-    }
-
-EOF;
-
-        return $code;
-    }
-
-    /**
-     * Adds the constructor for a frozen container.
-     *
-     * @return string
-     */
-    private function addFrozenCompile()
-    {
-        return <<<EOF
-
-    /**
-     * {@inheritdoc}
-     */
-    public function compile()
-    {
-        throw new LogicException('You cannot compile a dumped frozen container.');
-    }
-
-EOF;
-    }
-
-    /**
-     * Adds the methodMap property definition.
-     *
-     * @return string
-     */
-    private function addMethodMap()
-    {
-        if (!$definitions = $this->container->getDefinitions()) {
-            return '';
-        }
-
-        $code = "        \$this->methodMap = array(\n";
-        ksort($definitions);
-        foreach ($definitions as $id => $definition) {
-            $code .= '            '.var_export($id, true).' => '.var_export('get'.$this->camelize($id).'Service', true).",\n";
-        }
-
-        return $code."        );\n";
-    }
-
-    /**
-     * Adds the aliases property definition.
-     *
-     * @return string
-     */
-    private function addAliases()
-    {
-        if (!$aliases = $this->container->getAliases()) {
-            if ($this->container->isFrozen()) {
-                return "\n        \$this->aliases = array();\n";
-            } else {
-                return '';
-            }
-        }
-
-        $code = "        \$this->aliases = array(\n";
-        ksort($aliases);
-        foreach ($aliases as $alias => $id) {
-            $id = (string) $id;
-            while (isset($aliases[$id])) {
-                $id = (string) $aliases[$id];
-            }
-            $code .= '            '.var_export($alias, true).' => '.var_export($id, true).",\n";
-        }
-
-        return $code."        );\n";
-    }
-
-    /**
-     * Adds default parameters method.
-     *
-     * @return string
-     */
-    private function addDefaultParametersMethod()
-    {
-        if (!$this->container->getParameterBag()->all()) {
-            return '';
-        }
-
-        $parameters = $this->exportParameters($this->container->getParameterBag()->all());
-
-        $code = '';
-        if ($this->container->isFrozen()) {
-            $code .= <<<EOF
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameter(\$name)
-    {
-        \$name = strtolower(\$name);
-
-        if (!(isset(\$this->parameters[\$name]) || array_key_exists(\$name, \$this->parameters))) {
-            throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', \$name));
-        }
-
-        return \$this->parameters[\$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasParameter(\$name)
-    {
-        \$name = strtolower(\$name);
-
-        return isset(\$this->parameters[\$name]) || array_key_exists(\$name, \$this->parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameter(\$name, \$value)
-    {
-        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameterBag()
-    {
-        if (null === \$this->parameterBag) {
-            \$this->parameterBag = new FrozenParameterBag(\$this->parameters);
-        }
-
-        return \$this->parameterBag;
-    }
-
-EOF;
-        }
-
-        $code .= <<<EOF
-
-    /**
-     * Gets the default parameters.
-     *
-     * @return array An array of the default parameters
-     */
-    protected function getDefaultParameters()
-    {
-        return $parameters;
-    }
-
-EOF;
-
-        return $code;
-    }
-
-    /**
-     * Exports parameters.
-     *
-     * @param array  $parameters
-     * @param string $path
-     * @param int    $indent
-     *
-     * @return string
-     *
-     * @throws InvalidArgumentException
-     */
-    private function exportParameters($parameters, $path = '', $indent = 12)
-    {
-        $php = array();
-        foreach ($parameters as $key => $value) {
-            if (is_array($value)) {
-                $value = $this->exportParameters($value, $path.'/'.$key, $indent + 4);
-            } elseif ($value instanceof Variable) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain variable references. Variable "%s" found in "%s".', $value, $path.'/'.$key));
-            } elseif ($value instanceof Definition) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain service definitions. Definition for "%s" found in "%s".', $value->getClass(), $path.'/'.$key));
-            } elseif ($value instanceof Reference) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain references to other services (reference to service "%s" found in "%s").', $value, $path.'/'.$key));
-            } elseif ($value instanceof Expression) {
-                throw new InvalidArgumentException(sprintf('You cannot dump a container with parameters that contain expressions. Expression "%s" found in "%s".', $value, $path.'/'.$key));
-            } else {
-                $value = $this->export($value);
-            }
-
-            $php[] = sprintf('%s%s => %s,', str_repeat(' ', $indent), var_export($key, true), $value);
-        }
-
-        return sprintf("array(\n%s\n%s)", implode("\n", $php), str_repeat(' ', $indent - 4));
-    }
-
-    /**
-     * Ends the class definition.
-     *
-     * @return string
-     */
-    private function endClass()
-    {
-        return <<<EOF
-}
-
-EOF;
-    }
-
-    /**
-     * Wraps the service conditionals.
-     *
-     * @param string $value
-     * @param string $code
-     *
-     * @return string
-     */
-    private function wrapServiceConditionals($value, $code)
-    {
-        if (!$services = ContainerBuilder::getServiceConditionals($value)) {
-            return $code;
-        }
-
-        $conditions = array();
-        foreach ($services as $service) {
-            $conditions[] = sprintf("\$this->has('%s')", $service);
-        }
-
-        // re-indent the wrapped code
-        $code = implode("\n", array_map(function ($line) { return $line ? '    '.$line : $line; }, explode("\n", $code)));
-
-        return sprintf("        if (%s) {\n%s        }\n", implode(' && ', $conditions), $code);
-    }
-
-    /**
-     * Builds service calls from arguments.
-     *
-     * @param array $arguments
-     * @param array &$calls    By reference
-     * @param array &$behavior By reference
-     */
-    private function getServiceCallsFromArguments(array $arguments, array &$calls, array &$behavior)
-    {
-        foreach ($arguments as $argument) {
-            if (is_array($argument)) {
-                $this->getServiceCallsFromArguments($argument, $calls, $behavior);
-            } elseif ($argument instanceof Reference) {
-                $id = (string) $argument;
-
-                if (!isset($calls[$id])) {
-                    $calls[$id] = 0;
-                }
-                if (!isset($behavior[$id])) {
-                    $behavior[$id] = $argument->getInvalidBehavior();
-                } elseif (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $behavior[$id]) {
-                    $behavior[$id] = $argument->getInvalidBehavior();
-                }
-
-                ++$calls[$id];
-            }
-        }
-    }
-
-    /**
-     * Returns the inline definition.
-     *
-     * @param Definition $definition
-     *
-     * @return array
-     */
-    private function getInlinedDefinitions(Definition $definition)
-    {
-        if (false === $this->inlinedDefinitions->contains($definition)) {
-            $definitions = array_merge(
-                $this->getDefinitionsFromArguments($definition->getArguments()),
-                $this->getDefinitionsFromArguments($definition->getMethodCalls()),
-                $this->getDefinitionsFromArguments($definition->getProperties()),
-                $this->getDefinitionsFromArguments(array($definition->getConfigurator())),
-                $this->getDefinitionsFromArguments(array($definition->getFactory()))
-            );
-
-            $this->inlinedDefinitions->offsetSet($definition, $definitions);
-
-            return $definitions;
-        }
-
-        return $this->inlinedDefinitions->offsetGet($definition);
-    }
-
-    /**
-     * Gets the definition from arguments.
-     *
-     * @param array $arguments
-     *
-     * @return array
-     */
-    private function getDefinitionsFromArguments(array $arguments)
-    {
-        $definitions = array();
-        foreach ($arguments as $argument) {
-            if (is_array($argument)) {
-                $definitions = array_merge($definitions, $this->getDefinitionsFromArguments($argument));
-            } elseif ($argument instanceof Definition) {
-                $definitions = array_merge(
-                    $definitions,
-                    $this->getInlinedDefinitions($argument),
-                    array($argument)
-                );
-            }
-        }
-
-        return $definitions;
-    }
-
-    /**
-     * Checks if a service id has a reference.
-     *
-     * @param string $id
-     * @param array  $arguments
-     * @param bool   $deep
-     * @param array  $visited
-     *
-     * @return bool
-     */
-    private function hasReference($id, array $arguments, $deep = false, array &$visited = array())
-    {
-        foreach ($arguments as $argument) {
-            if (is_array($argument)) {
-                if ($this->hasReference($id, $argument, $deep, $visited)) {
-                    return true;
-                }
-            } elseif ($argument instanceof Reference) {
-                $argumentId = (string) $argument;
-                if ($id === $argumentId) {
-                    return true;
-                }
-
-                if ($deep && !isset($visited[$argumentId])) {
-                    $visited[$argumentId] = true;
-
-                    $service = $this->container->getDefinition($argumentId);
-                    $arguments = array_merge($service->getMethodCalls(), $service->getArguments(), $service->getProperties());
-
-                    if ($this->hasReference($id, $arguments, $deep, $visited)) {
-                        return true;
-                    }
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Dumps values.
-     *
-     * @param mixed $value
-     * @param bool  $interpolate
-     *
-     * @return string
-     *
-     * @throws RuntimeException
-     */
-    private function dumpValue($value, $interpolate = true)
-    {
-        if (is_array($value)) {
-            $code = array();
-            foreach ($value as $k => $v) {
-                $code[] = sprintf('%s => %s', $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate));
-            }
-
-            return sprintf('array(%s)', implode(', ', $code));
-        } elseif ($value instanceof Definition) {
-            if (null !== $this->definitionVariables && $this->definitionVariables->contains($value)) {
-                return $this->dumpValue($this->definitionVariables->offsetGet($value), $interpolate);
-            }
-            if (count($value->getMethodCalls()) > 0) {
-                throw new RuntimeException('Cannot dump definitions which have method calls.');
-            }
-            if (null !== $value->getConfigurator()) {
-                throw new RuntimeException('Cannot dump definitions which have a configurator.');
-            }
-
-            $arguments = array();
-            foreach ($value->getArguments() as $argument) {
-                $arguments[] = $this->dumpValue($argument);
-            }
-
-            if (null !== $value->getFactory()) {
-                $factory = $value->getFactory();
-
-                if (is_string($factory)) {
-                    return sprintf('\\%s(%s)', $factory, implode(', ', $arguments));
-                }
-
-                if (is_array($factory)) {
-                    if (is_string($factory[0])) {
-                        return sprintf('\\%s::%s(%s)', $factory[0], $factory[1], implode(', ', $arguments));
-                    }
-
-                    if ($factory[0] instanceof Definition) {
-                        return sprintf("call_user_func(array(%s, '%s')%s)", $this->dumpValue($factory[0]), $factory[1], count($arguments) > 0 ? ', '.implode(', ', $arguments) : '');
-                    }
-
-                    if ($factory[0] instanceof Reference) {
-                        return sprintf('%s->%s(%s)', $this->dumpValue($factory[0]), $factory[1], implode(', ', $arguments));
-                    }
-                }
-
-                throw new RuntimeException('Cannot dump definition because of invalid factory');
-            }
-
-            if (null !== $value->getFactoryMethod(false)) {
-                if (null !== $value->getFactoryClass(false)) {
-                    return sprintf("call_user_func(array(%s, '%s')%s)", $this->dumpValue($value->getFactoryClass(false)), $value->getFactoryMethod(false), count($arguments) > 0 ? ', '.implode(', ', $arguments) : '');
-                } elseif (null !== $value->getFactoryService(false)) {
-                    $service = $this->dumpValue($value->getFactoryService(false));
-
-                    return sprintf('%s->%s(%s)', 0 === strpos($service, '$') ? sprintf('$this->get(%s)', $service) : $this->getServiceCall($value->getFactoryService(false)), $value->getFactoryMethod(false), implode(', ', $arguments));
-                } else {
-                    throw new RuntimeException('Cannot dump definitions which have factory method without factory service or factory class.');
-                }
-            }
-
-            $class = $value->getClass();
-            if (null === $class) {
-                throw new RuntimeException('Cannot dump definitions which have no class nor factory.');
-            }
-            $class = $this->dumpValue($class);
-            if (false !== strpos($class, '$')) {
-                throw new RuntimeException('Cannot dump definitions which have a variable class name.');
-            }
-
-            return sprintf('new \\%s(%s)', substr(str_replace('\\\\', '\\', $class), 1, -1), implode(', ', $arguments));
-        } elseif ($value instanceof Variable) {
-            return '$'.$value;
-        } elseif ($value instanceof Reference) {
-            if (null !== $this->referenceVariables && isset($this->referenceVariables[$id = (string) $value])) {
-                return $this->dumpValue($this->referenceVariables[$id], $interpolate);
-            }
-
-            return $this->getServiceCall((string) $value, $value);
-        } elseif ($value instanceof Expression) {
-            return $this->getExpressionLanguage()->compile((string) $value, array('this' => 'container'));
-        } elseif ($value instanceof Parameter) {
-            return $this->dumpParameter($value);
-        } elseif (true === $interpolate && is_string($value)) {
-            if (preg_match('/^%([^%]+)%$/', $value, $match)) {
-                // we do this to deal with non string values (Boolean, integer, ...)
-                // the preg_replace_callback converts them to strings
-                return $this->dumpParameter(strtolower($match[1]));
-            } else {
-                $that = $this;
-                $replaceParameters = function ($match) use ($that) {
-                    return "'.".$that->dumpParameter(strtolower($match[2])).".'";
-                };
-
-                $code = str_replace('%%', '%', preg_replace_callback('/(?<!%)(%)([^%]+)\1/', $replaceParameters, $this->export($value)));
-
-                return $code;
-            }
-        } elseif (is_object($value) || is_resource($value)) {
-            throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.');
-        } else {
-            return $this->export($value);
-        }
-    }
-
-    /**
-     * Dumps a string to a literal (aka PHP Code) class value.
-     *
-     * @param string $class
-     *
-     * @return string
-     */
-    private function dumpLiteralClass($class)
-    {
-        return '\\'.substr(str_replace('\\\\', '\\', $class), 1, -1);
-    }
-
-    /**
-     * Dumps a parameter.
-     *
-     * @param string $name
-     *
-     * @return string
-     */
-    public function dumpParameter($name)
-    {
-        if ($this->container->isFrozen() && $this->container->hasParameter($name)) {
-            return $this->dumpValue($this->container->getParameter($name), false);
-        }
-
-        return sprintf("\$this->getParameter('%s')", strtolower($name));
-    }
-
-    /**
-     * @deprecated since version 2.6.2, to be removed in 3.0.
-     *             Use \Symfony\Component\DependencyInjection\ContainerBuilder::addExpressionLanguageProvider instead.
-     *
-     * @param ExpressionFunctionProviderInterface $provider
-     */
-    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6.2 and will be removed in 3.0. Use the Symfony\Component\DependencyInjection\ContainerBuilder::addExpressionLanguageProvider method instead.', E_USER_DEPRECATED);
-
-        $this->expressionLanguageProviders[] = $provider;
-    }
-
-    /**
-     * Gets a service call.
-     *
-     * @param string    $id
-     * @param Reference $reference
-     *
-     * @return string
-     */
-    private function getServiceCall($id, Reference $reference = null)
-    {
-        if ('service_container' === $id) {
-            return '$this';
-        }
-
-        if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $reference->getInvalidBehavior()) {
-            return sprintf('$this->get(\'%s\', ContainerInterface::NULL_ON_INVALID_REFERENCE)', $id);
-        } else {
-            if ($this->container->hasAlias($id)) {
-                $id = (string) $this->container->getAlias($id);
-            }
-
-            return sprintf('$this->get(\'%s\')', $id);
-        }
-    }
-
-    /**
-     * Convert a service id to a valid PHP method name.
-     *
-     * @param string $id
-     *
-     * @return string
-     *
-     * @throws InvalidArgumentException
-     */
-    private function camelize($id)
-    {
-        $name = Container::camelize($id);
-
-        if (!preg_match('/^[a-zA-Z0-9_\x7f-\xff]+$/', $name)) {
-            throw new InvalidArgumentException(sprintf('Service id "%s" cannot be converted to a valid PHP method name.', $id));
-        }
-
-        return $name;
-    }
-
-    /**
-     * Returns the next name to use.
-     *
-     * @return string
-     */
-    private function getNextVariableName()
-    {
-        $firstChars = self::FIRST_CHARS;
-        $firstCharsLength = strlen($firstChars);
-        $nonFirstChars = self::NON_FIRST_CHARS;
-        $nonFirstCharsLength = strlen($nonFirstChars);
-
-        while (true) {
-            $name = '';
-            $i = $this->variableCount;
-
-            if ('' === $name) {
-                $name .= $firstChars[$i % $firstCharsLength];
-                $i = (int) ($i / $firstCharsLength);
-            }
-
-            while ($i > 0) {
-                --$i;
-                $name .= $nonFirstChars[$i % $nonFirstCharsLength];
-                $i = (int) ($i / $nonFirstCharsLength);
-            }
-
-            ++$this->variableCount;
-
-            // check that the name is not reserved
-            if (in_array($name, $this->reservedVariables, true)) {
-                continue;
-            }
-
-            return $name;
-        }
-    }
-
-    private function getExpressionLanguage()
-    {
-        if (null === $this->expressionLanguage) {
-            if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
-                throw new RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
-            }
-            $providers = array_merge($this->container->getExpressionLanguageProviders(), $this->expressionLanguageProviders);
-            $this->expressionLanguage = new ExpressionLanguage(null, $providers);
-
-            if ($this->container->isTrackingResources()) {
-                foreach ($providers as $provider) {
-                    $this->container->addObjectResource($provider);
-                }
-            }
-        }
-
-        return $this->expressionLanguage;
-    }
-
-    private function exportTargetDirs()
-    {
-        return null === $this->targetDirRegex ? '' : <<<EOF
-
-        \$dir = __DIR__;
-        for (\$i = 1; \$i <= {$this->targetDirMaxMatches}; ++\$i) {
-            \$this->targetDirs[\$i] = \$dir = dirname(\$dir);
-        }
-EOF;
-    }
-
-    private function export($value)
-    {
-        if (null !== $this->targetDirRegex && is_string($value) && preg_match($this->targetDirRegex, $value, $matches, PREG_OFFSET_CAPTURE)) {
-            $prefix = $matches[0][1] ? var_export(substr($value, 0, $matches[0][1]), true).'.' : '';
-            $suffix = $matches[0][1] + strlen($matches[0][0]);
-            $suffix = isset($value[$suffix]) ? '.'.var_export(substr($value, $suffix), true) : '';
-            $dirname = '__DIR__';
-
-            if (0 < $offset = 1 + $this->targetDirMaxMatches - count($matches)) {
-                $dirname = sprintf('$this->targetDirs[%d]', $offset);
-            }
-
-            if ($prefix || $suffix) {
-                return sprintf('(%s%s%s)', $prefix, $dirname, $suffix);
-            }
-
-            return $dirname;
-        }
-
-        return var_export($value, true);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Dumper/XmlDumper.php b/core/vendor/symfony/dependency-injection/Dumper/XmlDumper.php
deleted file mode 100644
index 40486c4..0000000
--- a/core/vendor/symfony/dependency-injection/Dumper/XmlDumper.php
+++ /dev/null
@@ -1,356 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Dumper;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * XmlDumper dumps a service container as an XML string.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Martin Hasoň <martin.hason@gmail.com>
- *
- * @api
- */
-class XmlDumper extends Dumper
-{
-    /**
-     * @var \DOMDocument
-     */
-    private $document;
-
-    /**
-     * Dumps the service container as an XML string.
-     *
-     * @param array $options An array of options
-     *
-     * @return string An xml string representing of the service container
-     *
-     * @api
-     */
-    public function dump(array $options = array())
-    {
-        $this->document = new \DOMDocument('1.0', 'utf-8');
-        $this->document->formatOutput = true;
-
-        $container = $this->document->createElementNS('http://symfony.com/schema/dic/services', 'container');
-        $container->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
-        $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd');
-
-        $this->addParameters($container);
-        $this->addServices($container);
-
-        $this->document->appendChild($container);
-        $xml = $this->document->saveXML();
-        $this->document = null;
-
-        return $xml;
-    }
-
-    /**
-     * Adds parameters.
-     *
-     * @param \DOMElement $parent
-     */
-    private function addParameters(\DOMElement $parent)
-    {
-        $data = $this->container->getParameterBag()->all();
-        if (!$data) {
-            return;
-        }
-
-        if ($this->container->isFrozen()) {
-            $data = $this->escape($data);
-        }
-
-        $parameters = $this->document->createElement('parameters');
-        $parent->appendChild($parameters);
-        $this->convertParameters($data, 'parameter', $parameters);
-    }
-
-    /**
-     * Adds method calls.
-     *
-     * @param array       $methodcalls
-     * @param \DOMElement $parent
-     */
-    private function addMethodCalls(array $methodcalls, \DOMElement $parent)
-    {
-        foreach ($methodcalls as $methodcall) {
-            $call = $this->document->createElement('call');
-            $call->setAttribute('method', $methodcall[0]);
-            if (count($methodcall[1])) {
-                $this->convertParameters($methodcall[1], 'argument', $call);
-            }
-            $parent->appendChild($call);
-        }
-    }
-
-    /**
-     * Adds a service.
-     *
-     * @param Definition  $definition
-     * @param string      $id
-     * @param \DOMElement $parent
-     */
-    private function addService($definition, $id, \DOMElement $parent)
-    {
-        $service = $this->document->createElement('service');
-        if (null !== $id) {
-            $service->setAttribute('id', $id);
-        }
-        if ($definition->getClass()) {
-            $service->setAttribute('class', $definition->getClass());
-        }
-        if ($definition->getFactoryMethod(false)) {
-            $service->setAttribute('factory-method', $definition->getFactoryMethod(false));
-        }
-        if ($definition->getFactoryClass(false)) {
-            $service->setAttribute('factory-class', $definition->getFactoryClass(false));
-        }
-        if ($definition->getFactoryService(false)) {
-            $service->setAttribute('factory-service', $definition->getFactoryService(false));
-        }
-        if (ContainerInterface::SCOPE_CONTAINER !== $scope = $definition->getScope()) {
-            $service->setAttribute('scope', $scope);
-        }
-        if (!$definition->isPublic()) {
-            $service->setAttribute('public', 'false');
-        }
-        if ($definition->isSynthetic()) {
-            $service->setAttribute('synthetic', 'true');
-        }
-        if ($definition->isSynchronized(false)) {
-            $service->setAttribute('synchronized', 'true');
-        }
-        if ($definition->isLazy()) {
-            $service->setAttribute('lazy', 'true');
-        }
-        if (null !== $decorated = $definition->getDecoratedService()) {
-            list($decorated, $renamedId) = $decorated;
-            $service->setAttribute('decorates', $decorated);
-            if (null !== $renamedId) {
-                $service->setAttribute('decoration-inner-name', $renamedId);
-            }
-        }
-
-        foreach ($definition->getTags() as $name => $tags) {
-            foreach ($tags as $attributes) {
-                $tag = $this->document->createElement('tag');
-                $tag->setAttribute('name', $name);
-                foreach ($attributes as $key => $value) {
-                    $tag->setAttribute($key, $value);
-                }
-                $service->appendChild($tag);
-            }
-        }
-
-        if ($definition->getFile()) {
-            $file = $this->document->createElement('file');
-            $file->appendChild($this->document->createTextNode($definition->getFile()));
-            $service->appendChild($file);
-        }
-
-        if ($parameters = $definition->getArguments()) {
-            $this->convertParameters($parameters, 'argument', $service);
-        }
-
-        if ($parameters = $definition->getProperties()) {
-            $this->convertParameters($parameters, 'property', $service, 'name');
-        }
-
-        $this->addMethodCalls($definition->getMethodCalls(), $service);
-
-        if ($callable = $definition->getFactory()) {
-            $factory = $this->document->createElement('factory');
-
-            if (is_array($callable) && $callable[0] instanceof Definition) {
-                $this->addService($callable[0], null, $factory);
-                $factory->setAttribute('method', $callable[1]);
-            } elseif (is_array($callable)) {
-                $factory->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]);
-                $factory->setAttribute('method', $callable[1]);
-            } else {
-                $factory->setAttribute('function', $callable);
-            }
-            $service->appendChild($factory);
-        }
-
-        if ($callable = $definition->getConfigurator()) {
-            $configurator = $this->document->createElement('configurator');
-
-            if (is_array($callable) && $callable[0] instanceof Definition) {
-                $this->addService($callable[0], null, $configurator);
-                $configurator->setAttribute('method', $callable[1]);
-            } elseif (is_array($callable)) {
-                $configurator->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]);
-                $configurator->setAttribute('method', $callable[1]);
-            } else {
-                $configurator->setAttribute('function', $callable);
-            }
-            $service->appendChild($configurator);
-        }
-
-        $parent->appendChild($service);
-    }
-
-    /**
-     * Adds a service alias.
-     *
-     * @param string      $alias
-     * @param Alias       $id
-     * @param \DOMElement $parent
-     */
-    private function addServiceAlias($alias, Alias $id, \DOMElement $parent)
-    {
-        $service = $this->document->createElement('service');
-        $service->setAttribute('id', $alias);
-        $service->setAttribute('alias', $id);
-        if (!$id->isPublic()) {
-            $service->setAttribute('public', 'false');
-        }
-        $parent->appendChild($service);
-    }
-
-    /**
-     * Adds services.
-     *
-     * @param \DOMElement $parent
-     */
-    private function addServices(\DOMElement $parent)
-    {
-        $definitions = $this->container->getDefinitions();
-        if (!$definitions) {
-            return;
-        }
-
-        $services = $this->document->createElement('services');
-        foreach ($definitions as $id => $definition) {
-            $this->addService($definition, $id, $services);
-        }
-
-        $aliases = $this->container->getAliases();
-        foreach ($aliases as $alias => $id) {
-            while (isset($aliases[(string) $id])) {
-                $id = $aliases[(string) $id];
-            }
-            $this->addServiceAlias($alias, $id, $services);
-        }
-        $parent->appendChild($services);
-    }
-
-    /**
-     * Converts parameters.
-     *
-     * @param array       $parameters
-     * @param string      $type
-     * @param \DOMElement $parent
-     * @param string      $keyAttribute
-     */
-    private function convertParameters($parameters, $type, \DOMElement $parent, $keyAttribute = 'key')
-    {
-        $withKeys = array_keys($parameters) !== range(0, count($parameters) - 1);
-        foreach ($parameters as $key => $value) {
-            $element = $this->document->createElement($type);
-            if ($withKeys) {
-                $element->setAttribute($keyAttribute, $key);
-            }
-
-            if (is_array($value)) {
-                $element->setAttribute('type', 'collection');
-                $this->convertParameters($value, $type, $element, 'key');
-            } elseif ($value instanceof Reference) {
-                $element->setAttribute('type', 'service');
-                $element->setAttribute('id', (string) $value);
-                $behaviour = $value->getInvalidBehavior();
-                if ($behaviour == ContainerInterface::NULL_ON_INVALID_REFERENCE) {
-                    $element->setAttribute('on-invalid', 'null');
-                } elseif ($behaviour == ContainerInterface::IGNORE_ON_INVALID_REFERENCE) {
-                    $element->setAttribute('on-invalid', 'ignore');
-                }
-                if (!$value->isStrict()) {
-                    $element->setAttribute('strict', 'false');
-                }
-            } elseif ($value instanceof Definition) {
-                $element->setAttribute('type', 'service');
-                $this->addService($value, null, $element);
-            } elseif ($value instanceof Expression) {
-                $element->setAttribute('type', 'expression');
-                $text = $this->document->createTextNode(self::phpToXml((string) $value));
-                $element->appendChild($text);
-            } else {
-                if (in_array($value, array('null', 'true', 'false'), true)) {
-                    $element->setAttribute('type', 'string');
-                }
-                $text = $this->document->createTextNode(self::phpToXml($value));
-                $element->appendChild($text);
-            }
-            $parent->appendChild($element);
-        }
-    }
-
-    /**
-     * Escapes arguments.
-     *
-     * @param array $arguments
-     *
-     * @return array
-     */
-    private function escape($arguments)
-    {
-        $args = array();
-        foreach ($arguments as $k => $v) {
-            if (is_array($v)) {
-                $args[$k] = $this->escape($v);
-            } elseif (is_string($v)) {
-                $args[$k] = str_replace('%', '%%', $v);
-            } else {
-                $args[$k] = $v;
-            }
-        }
-
-        return $args;
-    }
-
-    /**
-     * Converts php types to xml types.
-     *
-     * @param mixed $value Value to convert
-     *
-     * @return string
-     *
-     * @throws RuntimeException When trying to dump object or resource
-     */
-    public static function phpToXml($value)
-    {
-        switch (true) {
-            case null === $value:
-                return 'null';
-            case true === $value:
-                return 'true';
-            case false === $value:
-                return 'false';
-            case $value instanceof Parameter:
-                return '%'.$value.'%';
-            case is_object($value) || is_resource($value):
-                throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.');
-            default:
-                return (string) $value;
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Dumper/YamlDumper.php b/core/vendor/symfony/dependency-injection/Dumper/YamlDumper.php
deleted file mode 100644
index 832929c..0000000
--- a/core/vendor/symfony/dependency-injection/Dumper/YamlDumper.php
+++ /dev/null
@@ -1,345 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Dumper;
-
-use Symfony\Component\Yaml\Dumper as YmlDumper;
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * YamlDumper dumps a service container as a YAML string.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class YamlDumper extends Dumper
-{
-    private $dumper;
-
-    /**
-     * Dumps the service container as an YAML string.
-     *
-     * @param array $options An array of options
-     *
-     * @return string A YAML string representing of the service container
-     *
-     * @api
-     */
-    public function dump(array $options = array())
-    {
-        if (!class_exists('Symfony\Component\Yaml\Dumper')) {
-            throw new RuntimeException('Unable to dump the container as the Symfony Yaml Component is not installed.');
-        }
-
-        if (null === $this->dumper) {
-            $this->dumper = new YmlDumper();
-        }
-
-        return $this->addParameters()."\n".$this->addServices();
-    }
-
-    /**
-     * Adds a service.
-     *
-     * @param string     $id
-     * @param Definition $definition
-     *
-     * @return string
-     */
-    private function addService($id, $definition)
-    {
-        $code = "    $id:\n";
-        if ($definition->getClass()) {
-            $code .= sprintf("        class: %s\n", $definition->getClass());
-        }
-
-        if (!$definition->isPublic()) {
-            $code .= "        public: false\n";
-        }
-
-        $tagsCode = '';
-        foreach ($definition->getTags() as $name => $tags) {
-            foreach ($tags as $attributes) {
-                $att = array();
-                foreach ($attributes as $key => $value) {
-                    $att[] = sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value));
-                }
-                $att = $att ? ', '.implode(', ', $att) : '';
-
-                $tagsCode .= sprintf("            - { name: %s%s }\n", $this->dumper->dump($name), $att);
-            }
-        }
-        if ($tagsCode) {
-            $code .= "        tags:\n".$tagsCode;
-        }
-
-        if ($definition->getFile()) {
-            $code .= sprintf("        file: %s\n", $definition->getFile());
-        }
-
-        if ($definition->isSynthetic()) {
-            $code .= sprintf("        synthetic: true\n");
-        }
-
-        if ($definition->isSynchronized(false)) {
-            $code .= sprintf("        synchronized: true\n");
-        }
-
-        if ($definition->getFactoryClass(false)) {
-            $code .= sprintf("        factory_class: %s\n", $definition->getFactoryClass(false));
-        }
-
-        if ($definition->isLazy()) {
-            $code .= sprintf("        lazy: true\n");
-        }
-
-        if ($definition->getFactoryMethod(false)) {
-            $code .= sprintf("        factory_method: %s\n", $definition->getFactoryMethod(false));
-        }
-
-        if ($definition->getFactoryService(false)) {
-            $code .= sprintf("        factory_service: %s\n", $definition->getFactoryService(false));
-        }
-
-        if ($definition->getArguments()) {
-            $code .= sprintf("        arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0));
-        }
-
-        if ($definition->getProperties()) {
-            $code .= sprintf("        properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0));
-        }
-
-        if ($definition->getMethodCalls()) {
-            $code .= sprintf("        calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12));
-        }
-
-        if (ContainerInterface::SCOPE_CONTAINER !== $scope = $definition->getScope()) {
-            $code .= sprintf("        scope: %s\n", $scope);
-        }
-
-        if (null !== $decorated = $definition->getDecoratedService()) {
-            list($decorated, $renamedId) = $decorated;
-            $code .= sprintf("        decorates: %s\n", $decorated);
-            if (null !== $renamedId) {
-                $code .= sprintf("        decoration_inner_name: %s\n", $renamedId);
-            }
-        }
-
-        if ($callable = $definition->getFactory()) {
-            $code .= sprintf("        factory: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0));
-        }
-
-        if ($callable = $definition->getConfigurator()) {
-            $code .= sprintf("        configurator: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0));
-        }
-
-        return $code;
-    }
-
-    /**
-     * Adds a service alias.
-     *
-     * @param string $alias
-     * @param Alias  $id
-     *
-     * @return string
-     */
-    private function addServiceAlias($alias, $id)
-    {
-        if ($id->isPublic()) {
-            return sprintf("    %s: @%s\n", $alias, $id);
-        } else {
-            return sprintf("    %s:\n        alias: %s\n        public: false", $alias, $id);
-        }
-    }
-
-    /**
-     * Adds services.
-     *
-     * @return string
-     */
-    private function addServices()
-    {
-        if (!$this->container->getDefinitions()) {
-            return '';
-        }
-
-        $code = "services:\n";
-        foreach ($this->container->getDefinitions() as $id => $definition) {
-            $code .= $this->addService($id, $definition);
-        }
-
-        $aliases = $this->container->getAliases();
-        foreach ($aliases as $alias => $id) {
-            while (isset($aliases[(string) $id])) {
-                $id = $aliases[(string) $id];
-            }
-            $code .= $this->addServiceAlias($alias, $id);
-        }
-
-        return $code;
-    }
-
-    /**
-     * Adds parameters.
-     *
-     * @return string
-     */
-    private function addParameters()
-    {
-        if (!$this->container->getParameterBag()->all()) {
-            return '';
-        }
-
-        $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isFrozen());
-
-        return $this->dumper->dump(array('parameters' => $parameters), 2);
-    }
-
-    /**
-     * Dumps callable to YAML format
-     *
-     * @param callable $callable
-     *
-     * @return callable
-     */
-    private function dumpCallable($callable)
-    {
-        if (is_array($callable)) {
-            if ($callable[0] instanceof Reference) {
-                $callable = array($this->getServiceCall((string) $callable[0], $callable[0]), $callable[1]);
-            } else {
-                $callable = array($callable[0], $callable[1]);
-            }
-        }
-
-        return $callable;
-    }
-
-    /**
-     * Dumps the value to YAML format.
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     *
-     * @throws RuntimeException When trying to dump object or resource
-     */
-    private function dumpValue($value)
-    {
-        if (is_array($value)) {
-            $code = array();
-            foreach ($value as $k => $v) {
-                $code[$k] = $this->dumpValue($v);
-            }
-
-            return $code;
-        } elseif ($value instanceof Reference) {
-            return $this->getServiceCall((string) $value, $value);
-        } elseif ($value instanceof Parameter) {
-            return $this->getParameterCall((string) $value);
-        } elseif ($value instanceof Expression) {
-            return $this->getExpressionCall((string) $value);
-        } elseif (is_object($value) || is_resource($value)) {
-            throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.');
-        }
-
-        return $value;
-    }
-
-    /**
-     * Gets the service call.
-     *
-     * @param string    $id
-     * @param Reference $reference
-     *
-     * @return string
-     */
-    private function getServiceCall($id, Reference $reference = null)
-    {
-        if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $reference->getInvalidBehavior()) {
-            return sprintf('@?%s', $id);
-        }
-
-        return sprintf('@%s', $id);
-    }
-
-    /**
-     * Gets parameter call.
-     *
-     * @param string $id
-     *
-     * @return string
-     */
-    private function getParameterCall($id)
-    {
-        return sprintf('%%%s%%', $id);
-    }
-
-    private function getExpressionCall($expression)
-    {
-        return sprintf('@=%s', $expression);
-    }
-
-    /**
-     * Prepares parameters.
-     *
-     * @param array $parameters
-     * @param bool  $escape
-     *
-     * @return array
-     */
-    private function prepareParameters($parameters, $escape = true)
-    {
-        $filtered = array();
-        foreach ($parameters as $key => $value) {
-            if (is_array($value)) {
-                $value = $this->prepareParameters($value, $escape);
-            } elseif ($value instanceof Reference || is_string($value) && 0 === strpos($value, '@')) {
-                $value = '@'.$value;
-            }
-
-            $filtered[$key] = $value;
-        }
-
-        return $escape ? $this->escape($filtered) : $filtered;
-    }
-
-    /**
-     * Escapes arguments.
-     *
-     * @param array $arguments
-     *
-     * @return array
-     */
-    private function escape($arguments)
-    {
-        $args = array();
-        foreach ($arguments as $k => $v) {
-            if (is_array($v)) {
-                $args[$k] = $this->escape($v);
-            } elseif (is_string($v)) {
-                $args[$k] = str_replace('%', '%%', $v);
-            } else {
-                $args[$k] = $v;
-            }
-        }
-
-        return $args;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php b/core/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php
deleted file mode 100644
index 959238e..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Base BadMethodCallException for Dependency Injection component.
- */
-class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php b/core/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php
deleted file mode 100644
index f5e9099..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Base ExceptionInterface for Dependency Injection component.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bulat Shakirzyanov <bulat@theopenskyproject.com>
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/InactiveScopeException.php b/core/vendor/symfony/dependency-injection/Exception/InactiveScopeException.php
deleted file mode 100644
index 6b3dd3e..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/InactiveScopeException.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * This exception is thrown when you try to create a service of an inactive scope.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class InactiveScopeException extends RuntimeException
-{
-    private $serviceId;
-    private $scope;
-
-    public function __construct($serviceId, $scope, \Exception $previous = null)
-    {
-        parent::__construct(sprintf('You cannot create a service ("%s") of an inactive scope ("%s").', $serviceId, $scope), 0, $previous);
-
-        $this->serviceId = $serviceId;
-        $this->scope = $scope;
-    }
-
-    public function getServiceId()
-    {
-        return $this->serviceId;
-    }
-
-    public function getScope()
-    {
-        return $this->scope;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php b/core/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php
deleted file mode 100644
index 119bb7d..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Base InvalidArgumentException for Dependency Injection component.
- *
- * @author Bulat Shakirzyanov <bulat@theopenskyproject.com>
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/LogicException.php b/core/vendor/symfony/dependency-injection/Exception/LogicException.php
deleted file mode 100644
index 17a070c..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/LogicException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Base LogicException for Dependency Injection component.
- */
-class LogicException extends \LogicException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php b/core/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php
deleted file mode 100644
index a61f143..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Base OutOfBoundsException for Dependency Injection component.
- */
-class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php b/core/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php
deleted file mode 100644
index 2915176..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * This exception is thrown when a circular reference in a parameter is detected.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ParameterCircularReferenceException extends RuntimeException
-{
-    private $parameters;
-
-    public function __construct($parameters, \Exception $previous = null)
-    {
-        parent::__construct(sprintf('Circular reference detected for parameter "%s" ("%s" > "%s").', $parameters[0], implode('" > "', $parameters), $parameters[0]), 0, $previous);
-
-        $this->parameters = $parameters;
-    }
-
-    public function getParameters()
-    {
-        return $this->parameters;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php b/core/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php
deleted file mode 100644
index b529f0f..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * This exception is thrown when a non-existent parameter is used.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ParameterNotFoundException extends InvalidArgumentException
-{
-    private $key;
-    private $sourceId;
-    private $sourceKey;
-    private $alternatives;
-
-    /**
-     * Constructor.
-     *
-     * @param string     $key          The requested parameter key
-     * @param string     $sourceId     The service id that references the non-existent parameter
-     * @param string     $sourceKey    The parameter key that references the non-existent parameter
-     * @param \Exception $previous     The previous exception
-     * @param string[]   $alternatives Some parameter name alternatives
-     */
-    public function __construct($key, $sourceId = null, $sourceKey = null, \Exception $previous = null, array $alternatives = array())
-    {
-        $this->key = $key;
-        $this->sourceId = $sourceId;
-        $this->sourceKey = $sourceKey;
-        $this->alternatives = $alternatives;
-
-        parent::__construct('', 0, $previous);
-
-        $this->updateRepr();
-    }
-
-    public function updateRepr()
-    {
-        if (null !== $this->sourceId) {
-            $this->message = sprintf('The service "%s" has a dependency on a non-existent parameter "%s".', $this->sourceId, $this->key);
-        } elseif (null !== $this->sourceKey) {
-            $this->message = sprintf('The parameter "%s" has a dependency on a non-existent parameter "%s".', $this->sourceKey, $this->key);
-        } else {
-            $this->message = sprintf('You have requested a non-existent parameter "%s".', $this->key);
-        }
-
-        if ($this->alternatives) {
-            if (1 == count($this->alternatives)) {
-                $this->message .= ' Did you mean this: "';
-            } else {
-                $this->message .= ' Did you mean one of these: "';
-            }
-            $this->message .= implode('", "', $this->alternatives).'"?';
-        }
-    }
-
-    public function getKey()
-    {
-        return $this->key;
-    }
-
-    public function getSourceId()
-    {
-        return $this->sourceId;
-    }
-
-    public function getSourceKey()
-    {
-        return $this->sourceKey;
-    }
-
-    public function setSourceId($sourceId)
-    {
-        $this->sourceId = $sourceId;
-
-        $this->updateRepr();
-    }
-
-    public function setSourceKey($sourceKey)
-    {
-        $this->sourceKey = $sourceKey;
-
-        $this->updateRepr();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/RuntimeException.php b/core/vendor/symfony/dependency-injection/Exception/RuntimeException.php
deleted file mode 100644
index 5c24541..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/RuntimeException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Base RuntimeException for Dependency Injection component.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ScopeCrossingInjectionException.php b/core/vendor/symfony/dependency-injection/Exception/ScopeCrossingInjectionException.php
deleted file mode 100644
index 661fbab..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ScopeCrossingInjectionException.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * This exception is thrown when the a scope crossing injection is detected.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ScopeCrossingInjectionException extends RuntimeException
-{
-    private $sourceServiceId;
-    private $sourceScope;
-    private $destServiceId;
-    private $destScope;
-
-    public function __construct($sourceServiceId, $sourceScope, $destServiceId, $destScope, \Exception $previous = null)
-    {
-        parent::__construct(sprintf(
-            'Scope Crossing Injection detected: The definition "%s" references the service "%s" which belongs to another scope hierarchy. '
-           .'This service might not be available consistently. Generally, it is safer to either move the definition "%s" to scope "%s", or '
-           .'declare "%s" as a child scope of "%s". If you can be sure that the other scope is always active, you can set the reference to strict=false to get rid of this error.',
-           $sourceServiceId,
-           $destServiceId,
-           $sourceServiceId,
-           $destScope,
-           $sourceScope,
-           $destScope
-        ), 0, $previous);
-
-        $this->sourceServiceId = $sourceServiceId;
-        $this->sourceScope = $sourceScope;
-        $this->destServiceId = $destServiceId;
-        $this->destScope = $destScope;
-    }
-
-    public function getSourceServiceId()
-    {
-        return $this->sourceServiceId;
-    }
-
-    public function getSourceScope()
-    {
-        return $this->sourceScope;
-    }
-
-    public function getDestServiceId()
-    {
-        return $this->destServiceId;
-    }
-
-    public function getDestScope()
-    {
-        return $this->destScope;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ScopeWideningInjectionException.php b/core/vendor/symfony/dependency-injection/Exception/ScopeWideningInjectionException.php
deleted file mode 100644
index 86a6684..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ScopeWideningInjectionException.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * Thrown when a scope widening injection is detected.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ScopeWideningInjectionException extends RuntimeException
-{
-    private $sourceServiceId;
-    private $sourceScope;
-    private $destServiceId;
-    private $destScope;
-
-    public function __construct($sourceServiceId, $sourceScope, $destServiceId, $destScope, \Exception $previous = null)
-    {
-        parent::__construct(sprintf(
-            'Scope Widening Injection detected: The definition "%s" references the service "%s" which belongs to a narrower scope. '
-           .'Generally, it is safer to either move "%s" to scope "%s" or alternatively rely on the provider pattern by injecting the container itself, and requesting the service "%s" each time it is needed. '
-           .'In rare, special cases however that might not be necessary, then you can set the reference to strict=false to get rid of this error.',
-           $sourceServiceId,
-           $destServiceId,
-           $sourceServiceId,
-           $destScope,
-           $destServiceId
-        ), 0, $previous);
-
-        $this->sourceServiceId = $sourceServiceId;
-        $this->sourceScope = $sourceScope;
-        $this->destServiceId = $destServiceId;
-        $this->destScope = $destScope;
-    }
-
-    public function getSourceServiceId()
-    {
-        return $this->sourceServiceId;
-    }
-
-    public function getSourceScope()
-    {
-        return $this->sourceScope;
-    }
-
-    public function getDestServiceId()
-    {
-        return $this->destServiceId;
-    }
-
-    public function getDestScope()
-    {
-        return $this->destScope;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php b/core/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php
deleted file mode 100644
index 26e3fb3..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * This exception is thrown when a circular reference is detected.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceCircularReferenceException extends RuntimeException
-{
-    private $serviceId;
-    private $path;
-
-    public function __construct($serviceId, array $path, \Exception $previous = null)
-    {
-        parent::__construct(sprintf('Circular reference detected for service "%s", path: "%s".', $serviceId, implode(' -> ', $path)), 0, $previous);
-
-        $this->serviceId = $serviceId;
-        $this->path = $path;
-    }
-
-    public function getServiceId()
-    {
-        return $this->serviceId;
-    }
-
-    public function getPath()
-    {
-        return $this->path;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php b/core/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php
deleted file mode 100644
index e65da50..0000000
--- a/core/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Exception;
-
-/**
- * This exception is thrown when a non-existent service is requested.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceNotFoundException extends InvalidArgumentException
-{
-    private $id;
-    private $sourceId;
-
-    public function __construct($id, $sourceId = null, \Exception $previous = null, array $alternatives = array())
-    {
-        if (null === $sourceId) {
-            $msg = sprintf('You have requested a non-existent service "%s".', $id);
-        } else {
-            $msg = sprintf('The service "%s" has a dependency on a non-existent service "%s".', $sourceId, $id);
-        }
-
-        if ($alternatives) {
-            if (1 == count($alternatives)) {
-                $msg .= ' Did you mean this: "';
-            } else {
-                $msg .= ' Did you mean one of these: "';
-            }
-            $msg .= implode('", "', $alternatives).'"?';
-        }
-
-        parent::__construct($msg, 0, $previous);
-
-        $this->id = $id;
-        $this->sourceId = $sourceId;
-    }
-
-    public function getId()
-    {
-        return $this->id;
-    }
-
-    public function getSourceId()
-    {
-        return $this->sourceId;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ExpressionLanguage.php b/core/vendor/symfony/dependency-injection/ExpressionLanguage.php
deleted file mode 100644
index acc97bc..0000000
--- a/core/vendor/symfony/dependency-injection/ExpressionLanguage.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage;
-use Symfony\Component\ExpressionLanguage\ParserCache\ParserCacheInterface;
-
-/**
- * Adds some function to the default ExpressionLanguage.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @see ExpressionLanguageProvider
- */
-class ExpressionLanguage extends BaseExpressionLanguage
-{
-    public function __construct(ParserCacheInterface $cache = null, array $providers = array())
-    {
-        // prepend the default provider to let users override it easily
-        array_unshift($providers, new ExpressionLanguageProvider());
-
-        parent::__construct($cache, $providers);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php b/core/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php
deleted file mode 100644
index ce6d695..0000000
--- a/core/vendor/symfony/dependency-injection/ExpressionLanguageProvider.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-use Symfony\Component\ExpressionLanguage\ExpressionFunction;
-use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
-
-/**
- * Define some ExpressionLanguage functions.
- *
- * To get a service, use service('request').
- * To get a parameter, use parameter('kernel.debug').
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ExpressionLanguageProvider implements ExpressionFunctionProviderInterface
-{
-    public function getFunctions()
-    {
-        return array(
-            new ExpressionFunction('service', function ($arg) {
-                return sprintf('$this->get(%s)', $arg);
-            }, function (array $variables, $value) {
-                return $variables['container']->get($value);
-            }),
-
-            new ExpressionFunction('parameter', function ($arg) {
-                return sprintf('$this->getParameter(%s)', $arg);
-            }, function (array $variables, $value) {
-                return $variables['container']->getParameter($value);
-            }),
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php b/core/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php
deleted file mode 100644
index 705ba38..0000000
--- a/core/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Extension;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\Config\Definition\ConfigurationInterface;
-
-/**
- * ConfigurationExtensionInterface is the interface implemented by container extension classes.
- *
- * @author Kevin Bond <kevinbond@gmail.com>
- */
-interface ConfigurationExtensionInterface
-{
-    /**
-     * Returns extension configuration.
-     *
-     * @param array            $config    An array of configuration values
-     * @param ContainerBuilder $container A ContainerBuilder instance
-     *
-     * @return ConfigurationInterface|null The configuration or null
-     */
-    public function getConfiguration(array $config, ContainerBuilder $container);
-}
diff --git a/core/vendor/symfony/dependency-injection/Extension/Extension.php b/core/vendor/symfony/dependency-injection/Extension/Extension.php
deleted file mode 100644
index f8e058b..0000000
--- a/core/vendor/symfony/dependency-injection/Extension/Extension.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Extension;
-
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\BadMethodCallException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\Config\Definition\Processor;
-use Symfony\Component\Config\Definition\ConfigurationInterface;
-
-/**
- * Provides useful features shared by many extensions.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Extension implements ExtensionInterface, ConfigurationExtensionInterface
-{
-    /**
-     * Returns the base path for the XSD files.
-     *
-     * @return string The XSD base path
-     */
-    public function getXsdValidationBasePath()
-    {
-        return false;
-    }
-
-    /**
-     * Returns the namespace to be used for this extension (XML namespace).
-     *
-     * @return string The XML namespace
-     */
-    public function getNamespace()
-    {
-        return 'http://example.org/schema/dic/'.$this->getAlias();
-    }
-
-    /**
-     * Returns the recommended alias to use in XML.
-     *
-     * This alias is also the mandatory prefix to use when using YAML.
-     *
-     * This convention is to remove the "Extension" postfix from the class
-     * name and then lowercase and underscore the result. So:
-     *
-     *     AcmeHelloExtension
-     *
-     * becomes
-     *
-     *     acme_hello
-     *
-     * This can be overridden in a sub-class to specify the alias manually.
-     *
-     * @return string The alias
-     *
-     * @throws BadMethodCallException When the extension name does not follow conventions
-     */
-    public function getAlias()
-    {
-        $className = get_class($this);
-        if (substr($className, -9) != 'Extension') {
-            throw new BadMethodCallException('This extension does not follow the naming convention; you must overwrite the getAlias() method.');
-        }
-        $classBaseName = substr(strrchr($className, '\\'), 1, -9);
-
-        return Container::underscore($classBaseName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getConfiguration(array $config, ContainerBuilder $container)
-    {
-        $reflected = new \ReflectionClass($this);
-        $namespace = $reflected->getNamespaceName();
-
-        $class = $namespace.'\\Configuration';
-        if (class_exists($class)) {
-            $r = new \ReflectionClass($class);
-            $container->addResource(new FileResource($r->getFileName()));
-
-            if (!method_exists($class, '__construct')) {
-                $configuration = new $class();
-
-                return $configuration;
-            }
-        }
-    }
-
-    final protected function processConfiguration(ConfigurationInterface $configuration, array $configs)
-    {
-        $processor = new Processor();
-
-        return $processor->processConfiguration($configuration, $configs);
-    }
-
-    /**
-     * @param ContainerBuilder $container
-     * @param array            $config
-     *
-     * @return bool Whether the configuration is enabled
-     *
-     * @throws InvalidArgumentException When the config is not enableable
-     */
-    protected function isConfigEnabled(ContainerBuilder $container, array $config)
-    {
-        if (!array_key_exists('enabled', $config)) {
-            throw new InvalidArgumentException("The config array has no 'enabled' key.");
-        }
-
-        return (bool) $container->getParameterBag()->resolveValue($config['enabled']);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php b/core/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php
deleted file mode 100644
index 424f020..0000000
--- a/core/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Extension;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * ExtensionInterface is the interface implemented by container extension classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface ExtensionInterface
-{
-    /**
-     * Loads a specific configuration.
-     *
-     * @param array            $config    An array of configuration values
-     * @param ContainerBuilder $container A ContainerBuilder instance
-     *
-     * @throws \InvalidArgumentException When provided tag is not defined in this extension
-     *
-     * @api
-     */
-    public function load(array $config, ContainerBuilder $container);
-
-    /**
-     * Returns the namespace to be used for this extension (XML namespace).
-     *
-     * @return string The XML namespace
-     *
-     * @api
-     */
-    public function getNamespace();
-
-    /**
-     * Returns the base path for the XSD files.
-     *
-     * @return string The XSD base path
-     *
-     * @api
-     */
-    public function getXsdValidationBasePath();
-
-    /**
-     * Returns the recommended alias to use in XML.
-     *
-     * This alias is also the mandatory prefix to use when using YAML.
-     *
-     * @return string The alias
-     *
-     * @api
-     */
-    public function getAlias();
-}
diff --git a/core/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php b/core/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php
deleted file mode 100644
index c666bdb..0000000
--- a/core/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Extension;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-interface PrependExtensionInterface
-{
-    /**
-     * Allow an extension to prepend the extension configurations.
-     *
-     * @param ContainerBuilder $container
-     */
-    public function prepend(ContainerBuilder $container);
-}
diff --git a/core/vendor/symfony/dependency-injection/IntrospectableContainerInterface.php b/core/vendor/symfony/dependency-injection/IntrospectableContainerInterface.php
deleted file mode 100644
index e630a1e..0000000
--- a/core/vendor/symfony/dependency-injection/IntrospectableContainerInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * IntrospectableContainerInterface defines additional introspection functionality
- * for containers, allowing logic to be implemented based on a Container's state.
- *
- * @author Evan Villemez <evillemez@gmail.com>
- */
-interface IntrospectableContainerInterface extends ContainerInterface
-{
-    /**
-     * Check for whether or not a service has been initialized.
-     *
-     * @param string $id
-     *
-     * @return bool true if the service has been initialized, false otherwise
-     */
-    public function initialized($id);
-}
diff --git a/core/vendor/symfony/dependency-injection/LICENSE b/core/vendor/symfony/dependency-injection/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/dependency-injection/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php b/core/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php
deleted file mode 100644
index a8dd525..0000000
--- a/core/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * Lazy proxy instantiator, capable of instantiating a proxy given a container, the
- * service definitions and a callback that produces the real service instance.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-interface InstantiatorInterface
-{
-    /**
-     * Instantiates a proxy object.
-     *
-     * @param ContainerInterface $container        the container from which the service is being requested
-     * @param Definition         $definition       the definition of the requested service
-     * @param string             $id               identifier of the requested service
-     * @param callable           $realInstantiator zero-argument callback that is capable of producing the real
-     *                                             service instance
-     *
-     * @return object
-     */
-    public function instantiateProxy(ContainerInterface $container, Definition $definition, $id, $realInstantiator);
-}
diff --git a/core/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php b/core/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php
deleted file mode 100644
index cad9320..0000000
--- a/core/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\LazyProxy\Instantiator;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * {@inheritdoc}
- *
- * Noop proxy instantiator - simply produces the real service instead of a proxy instance.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class RealServiceInstantiator implements InstantiatorInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function instantiateProxy(ContainerInterface $container, Definition $definition, $id, $realInstantiator)
-    {
-        return call_user_func($realInstantiator);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php b/core/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php
deleted file mode 100644
index 878d965..0000000
--- a/core/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper;
-
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * Lazy proxy dumper capable of generating the instantiation logic PHP code for proxied services.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-interface DumperInterface
-{
-    /**
-     * Inspects whether the given definitions should produce proxy instantiation logic in the dumped container.
-     *
-     * @param Definition $definition
-     *
-     * @return bool
-     */
-    public function isProxyCandidate(Definition $definition);
-
-    /**
-     * Generates the code to be used to instantiate a proxy in the dumped factory code.
-     *
-     * @param Definition $definition
-     * @param string     $id         service identifier
-     *
-     * @return string
-     */
-    public function getProxyFactoryCode(Definition $definition, $id);
-
-    /**
-     * Generates the code for the lazy proxy.
-     *
-     * @param Definition $definition
-     *
-     * @return string
-     */
-    public function getProxyCode(Definition $definition);
-}
diff --git a/core/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php b/core/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php
deleted file mode 100644
index 30911d3..0000000
--- a/core/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\LazyProxy\PhpDumper;
-
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * Null dumper, negates any proxy code generation for any given service definition.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- */
-class NullDumper implements DumperInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function isProxyCandidate(Definition $definition)
-    {
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getProxyFactoryCode(Definition $definition, $id)
-    {
-        return '';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getProxyCode(Definition $definition)
-    {
-        return '';
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/ClosureLoader.php b/core/vendor/symfony/dependency-injection/Loader/ClosureLoader.php
deleted file mode 100644
index a5b4e5a..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/ClosureLoader.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\Config\Loader\Loader;
-
-/**
- * ClosureLoader loads service definitions from a PHP closure.
- *
- * The Closure has access to the container as its first argument.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ClosureLoader extends Loader
-{
-    private $container;
-
-    /**
-     * Constructor.
-     *
-     * @param ContainerBuilder $container A ContainerBuilder instance
-     */
-    public function __construct(ContainerBuilder $container)
-    {
-        $this->container = $container;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $type = null)
-    {
-        call_user_func($resource, $this->container);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return $resource instanceof \Closure;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/FileLoader.php b/core/vendor/symfony/dependency-injection/Loader/FileLoader.php
deleted file mode 100644
index d71eecf..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/FileLoader.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\Config\Loader\FileLoader as BaseFileLoader;
-use Symfony\Component\Config\FileLocatorInterface;
-
-/**
- * FileLoader is the abstract class used by all built-in loaders that are file based.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class FileLoader extends BaseFileLoader
-{
-    protected $container;
-
-    /**
-     * Constructor.
-     *
-     * @param ContainerBuilder     $container A ContainerBuilder instance
-     * @param FileLocatorInterface $locator   A FileLocator instance
-     */
-    public function __construct(ContainerBuilder $container, FileLocatorInterface $locator)
-    {
-        $this->container = $container;
-
-        parent::__construct($locator);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/IniFileLoader.php b/core/vendor/symfony/dependency-injection/Loader/IniFileLoader.php
deleted file mode 100644
index 16ddf87..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/IniFileLoader.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Loader;
-
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * IniFileLoader loads parameters from INI files.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class IniFileLoader extends FileLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $type = null)
-    {
-        $path = $this->locator->locate($resource);
-
-        $this->container->addResource(new FileResource($path));
-
-        $result = parse_ini_file($path, true);
-        if (false === $result || array() === $result) {
-            throw new InvalidArgumentException(sprintf('The "%s" file is not valid.', $resource));
-        }
-
-        if (isset($result['parameters']) && is_array($result['parameters'])) {
-            foreach ($result['parameters'] as $key => $value) {
-                $this->container->setParameter($key, $value);
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && 'ini' === pathinfo($resource, PATHINFO_EXTENSION);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php b/core/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php
deleted file mode 100644
index 08c1d9a..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Loader;
-
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * PhpFileLoader loads service definitions from a PHP file.
- *
- * The PHP file is required and the $container variable can be
- * used within the file to change the container.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class PhpFileLoader extends FileLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $type = null)
-    {
-        // the container and loader variables are exposed to the included file below
-        $container = $this->container;
-        $loader = $this;
-
-        $path = $this->locator->locate($resource);
-        $this->setCurrentDir(dirname($path));
-        $this->container->addResource(new FileResource($path));
-
-        include $path;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && 'php' === pathinfo($resource, PATHINFO_EXTENSION);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php b/core/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php
deleted file mode 100644
index ebe330b..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php
+++ /dev/null
@@ -1,568 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Loader;
-
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\DependencyInjection\DefinitionDecorator;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * XmlFileLoader loads XML files service definitions.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class XmlFileLoader extends FileLoader
-{
-    const NS = 'http://symfony.com/schema/dic/services';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $type = null)
-    {
-        $path = $this->locator->locate($resource);
-
-        $xml = $this->parseFileToDOM($path);
-
-        $this->container->addResource(new FileResource($path));
-
-        // anonymous services
-        $this->processAnonymousServices($xml, $path);
-
-        // imports
-        $this->parseImports($xml, $path);
-
-        // parameters
-        $this->parseParameters($xml);
-
-        // extensions
-        $this->loadFromExtensions($xml);
-
-        // services
-        $this->parseDefinitions($xml, $path);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && 'xml' === pathinfo($resource, PATHINFO_EXTENSION);
-    }
-
-    /**
-     * Parses parameters.
-     *
-     * @param \DOMDocument $xml
-     */
-    private function parseParameters(\DOMDocument $xml)
-    {
-        if ($parameters = $this->getChildren($xml->documentElement, 'parameters')) {
-            $this->container->getParameterBag()->add($this->getArgumentsAsPhp($parameters[0], 'parameter'));
-        }
-    }
-
-    /**
-     * Parses imports.
-     *
-     * @param \DOMDocument $xml
-     * @param string       $file
-     */
-    private function parseImports(\DOMDocument $xml, $file)
-    {
-        $xpath = new \DOMXPath($xml);
-        $xpath->registerNamespace('container', self::NS);
-
-        if (false === $imports = $xpath->query('//container:imports/container:import')) {
-            return;
-        }
-
-        foreach ($imports as $import) {
-            $this->setCurrentDir(dirname($file));
-            $this->import($import->getAttribute('resource'), null, (bool) XmlUtils::phpize($import->getAttribute('ignore-errors')), $file);
-        }
-    }
-
-    /**
-     * Parses multiple definitions.
-     *
-     * @param \DOMDocument $xml
-     * @param string       $file
-     */
-    private function parseDefinitions(\DOMDocument $xml, $file)
-    {
-        $xpath = new \DOMXPath($xml);
-        $xpath->registerNamespace('container', self::NS);
-
-        if (false === $services = $xpath->query('//container:services/container:service')) {
-            return;
-        }
-
-        foreach ($services as $service) {
-            if (null !== $definition = $this->parseDefinition($service, $file)) {
-                $this->container->setDefinition((string) $service->getAttribute('id'), $definition);
-            }
-        }
-    }
-
-    /**
-     * Parses an individual Definition.
-     *
-     * @param \DOMElement $service
-     * @param string      $file
-     *
-     * @return Definition|null
-     */
-    private function parseDefinition(\DOMElement $service, $file)
-    {
-        if ($alias = $service->getAttribute('alias')) {
-            $public = true;
-            if ($publicAttr = $service->getAttribute('public')) {
-                $public = XmlUtils::phpize($publicAttr);
-            }
-            $this->container->setAlias((string) $service->getAttribute('id'), new Alias($alias, $public));
-
-            return;
-        }
-
-        if ($parent = $service->getAttribute('parent')) {
-            $definition = new DefinitionDecorator($parent);
-        } else {
-            $definition = new Definition();
-        }
-
-        foreach (array('class', 'scope', 'public', 'factory-class', 'factory-method', 'factory-service', 'synthetic', 'lazy', 'abstract') as $key) {
-            if ($value = $service->getAttribute($key)) {
-                if (in_array($key, array('factory-class', 'factory-method', 'factory-service'))) {
-                    @trigger_error(sprintf('The "%s" attribute of service "%s" in file "%s" is deprecated since version 2.6 and will be removed in 3.0. Use the "factory" element instead.', $key, (string) $service->getAttribute('id'), $file), E_USER_DEPRECATED);
-                }
-                $method = 'set'.str_replace('-', '', $key);
-                $definition->$method(XmlUtils::phpize($value));
-            }
-        }
-
-        if ($value = $service->getAttribute('synchronized')) {
-            $triggerDeprecation = 'request' !== (string) $service->getAttribute('id');
-
-            if ($triggerDeprecation) {
-                @trigger_error(sprintf('The "synchronized" attribute of service "%s" in file "%s" is deprecated since version 2.7 and will be removed in 3.0.', (string) $service->getAttribute('id'), $file), E_USER_DEPRECATED);
-            }
-
-            $definition->setSynchronized(XmlUtils::phpize($value), $triggerDeprecation);
-        }
-
-        if ($files = $this->getChildren($service, 'file')) {
-            $definition->setFile($files[0]->nodeValue);
-        }
-
-        $definition->setArguments($this->getArgumentsAsPhp($service, 'argument'));
-        $definition->setProperties($this->getArgumentsAsPhp($service, 'property'));
-
-        if ($factories = $this->getChildren($service, 'factory')) {
-            $factory = $factories[0];
-            if ($function = $factory->getAttribute('function')) {
-                $definition->setFactory($function);
-            } else {
-                $factoryService = $this->getChildren($factory, 'service');
-
-                if (isset($factoryService[0])) {
-                    $class = $this->parseDefinition($factoryService[0], $file);
-                } elseif ($childService = $factory->getAttribute('service')) {
-                    $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false);
-                } else {
-                    $class = $factory->getAttribute('class');
-                }
-
-                $definition->setFactory(array($class, $factory->getAttribute('method')));
-            }
-        }
-
-        if ($configurators = $this->getChildren($service, 'configurator')) {
-            $configurator = $configurators[0];
-            if ($function = $configurator->getAttribute('function')) {
-                $definition->setConfigurator($function);
-            } else {
-                $configuratorService = $this->getChildren($configurator, 'service');
-
-                if (isset($configuratorService[0])) {
-                    $class = $this->parseDefinition($configuratorService[0], $file);
-                } elseif ($childService = $configurator->getAttribute('service')) {
-                    $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false);
-                } else {
-                    $class = $configurator->getAttribute('class');
-                }
-
-                $definition->setConfigurator(array($class, $configurator->getAttribute('method')));
-            }
-        }
-
-        foreach ($this->getChildren($service, 'call') as $call) {
-            $definition->addMethodCall($call->getAttribute('method'), $this->getArgumentsAsPhp($call, 'argument'));
-        }
-
-        foreach ($this->getChildren($service, 'tag') as $tag) {
-            $parameters = array();
-            foreach ($tag->attributes as $name => $node) {
-                if ('name' === $name) {
-                    continue;
-                }
-
-                if (false !== strpos($name, '-') && false === strpos($name, '_') && !array_key_exists($normalizedName = str_replace('-', '_', $name), $parameters)) {
-                    $parameters[$normalizedName] = XmlUtils::phpize($node->nodeValue);
-                }
-                // keep not normalized key for BC too
-                $parameters[$name] = XmlUtils::phpize($node->nodeValue);
-            }
-
-            $definition->addTag($tag->getAttribute('name'), $parameters);
-        }
-
-        if ($value = $service->getAttribute('decorates')) {
-            $renameId = $service->hasAttribute('decoration-inner-name') ? $service->getAttribute('decoration-inner-name') : null;
-            $definition->setDecoratedService($value, $renameId);
-        }
-
-        return $definition;
-    }
-
-    /**
-     * Parses a XML file to a \DOMDocument.
-     *
-     * @param string $file Path to a file
-     *
-     * @return \DOMDocument
-     *
-     * @throws InvalidArgumentException When loading of XML file returns error
-     */
-    private function parseFileToDOM($file)
-    {
-        try {
-            $dom = XmlUtils::loadFile($file, array($this, 'validateSchema'));
-        } catch (\InvalidArgumentException $e) {
-            throw new InvalidArgumentException(sprintf('Unable to parse file "%s".', $file), $e->getCode(), $e);
-        }
-
-        $this->validateExtensions($dom, $file);
-
-        return $dom;
-    }
-
-    /**
-     * Processes anonymous services.
-     *
-     * @param \DOMDocument $xml
-     * @param string       $file
-     */
-    private function processAnonymousServices(\DOMDocument $xml, $file)
-    {
-        $definitions = array();
-        $count = 0;
-
-        $xpath = new \DOMXPath($xml);
-        $xpath->registerNamespace('container', self::NS);
-
-        // anonymous services as arguments/properties
-        if (false !== $nodes = $xpath->query('//container:argument[@type="service"][not(@id)]|//container:property[@type="service"][not(@id)]')) {
-            foreach ($nodes as $node) {
-                // give it a unique name
-                $id = sprintf('%s_%d', hash('sha256', $file), ++$count);
-                $node->setAttribute('id', $id);
-
-                if ($services = $this->getChildren($node, 'service')) {
-                    $definitions[$id] = array($services[0], $file, false);
-                    $services[0]->setAttribute('id', $id);
-                }
-            }
-        }
-
-        // anonymous services "in the wild"
-        if (false !== $nodes = $xpath->query('//container:services/container:service[not(@id)]')) {
-            foreach ($nodes as $node) {
-                // give it a unique name
-                $id = sprintf('%s_%d', hash('sha256', $file), ++$count);
-                $node->setAttribute('id', $id);
-
-                if ($services = $this->getChildren($node, 'service')) {
-                    $definitions[$id] = array($node, $file, true);
-                    $services[0]->setAttribute('id', $id);
-                }
-            }
-        }
-
-        // resolve definitions
-        krsort($definitions);
-        foreach ($definitions as $id => $def) {
-            list($domElement, $file, $wild) = $def;
-
-            // anonymous services are always private
-            // we could not use the constant false here, because of XML parsing
-            $domElement->setAttribute('public', 'false');
-
-            if (null !== $definition = $this->parseDefinition($domElement, $file)) {
-                $this->container->setDefinition($id, $definition);
-            }
-
-            if (true === $wild) {
-                $tmpDomElement = new \DOMElement('_services', null, self::NS);
-                $domElement->parentNode->replaceChild($tmpDomElement, $domElement);
-                $tmpDomElement->setAttribute('id', $id);
-            } else {
-                $domElement->parentNode->removeChild($domElement);
-            }
-        }
-    }
-
-    /**
-     * Returns arguments as valid php types.
-     *
-     * @param \DOMElement $node
-     * @param string      $name
-     * @param bool        $lowercase
-     *
-     * @return mixed
-     */
-    private function getArgumentsAsPhp(\DOMElement $node, $name, $lowercase = true)
-    {
-        $arguments = array();
-        foreach ($this->getChildren($node, $name) as $arg) {
-            if ($arg->hasAttribute('name')) {
-                $arg->setAttribute('key', $arg->getAttribute('name'));
-            }
-
-            if (!$arg->hasAttribute('key')) {
-                $key = !$arguments ? 0 : max(array_keys($arguments)) + 1;
-            } else {
-                $key = $arg->getAttribute('key');
-            }
-
-            // parameter keys are case insensitive
-            if ('parameter' == $name && $lowercase) {
-                $key = strtolower($key);
-            }
-
-            // this is used by DefinitionDecorator to overwrite a specific
-            // argument of the parent definition
-            if ($arg->hasAttribute('index')) {
-                $key = 'index_'.$arg->getAttribute('index');
-            }
-
-            switch ($arg->getAttribute('type')) {
-                case 'service':
-                    $onInvalid = $arg->getAttribute('on-invalid');
-                    $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
-                    if ('ignore' == $onInvalid) {
-                        $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
-                    } elseif ('null' == $onInvalid) {
-                        $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
-                    }
-
-                    if ($strict = $arg->getAttribute('strict')) {
-                        $strict = XmlUtils::phpize($strict);
-                    } else {
-                        $strict = true;
-                    }
-
-                    $arguments[$key] = new Reference($arg->getAttribute('id'), $invalidBehavior, $strict);
-                    break;
-                case 'expression':
-                    $arguments[$key] = new Expression($arg->nodeValue);
-                    break;
-                case 'collection':
-                    $arguments[$key] = $this->getArgumentsAsPhp($arg, $name, false);
-                    break;
-                case 'string':
-                    $arguments[$key] = $arg->nodeValue;
-                    break;
-                case 'constant':
-                    $arguments[$key] = constant($arg->nodeValue);
-                    break;
-                default:
-                    $arguments[$key] = XmlUtils::phpize($arg->nodeValue);
-            }
-        }
-
-        return $arguments;
-    }
-
-    /**
-     * Get child elements by name.
-     *
-     * @param \DOMNode $node
-     * @param mixed    $name
-     *
-     * @return array
-     */
-    private function getChildren(\DOMNode $node, $name)
-    {
-        $children = array();
-        foreach ($node->childNodes as $child) {
-            if ($child instanceof \DOMElement && $child->localName === $name && $child->namespaceURI === self::NS) {
-                $children[] = $child;
-            }
-        }
-
-        return $children;
-    }
-
-    /**
-     * Validates a documents XML schema.
-     *
-     * @param \DOMDocument $dom
-     *
-     * @return bool
-     *
-     * @throws RuntimeException When extension references a non-existent XSD file
-     */
-    public function validateSchema(\DOMDocument $dom)
-    {
-        $schemaLocations = array('http://symfony.com/schema/dic/services' => str_replace('\\', '/', __DIR__.'/schema/dic/services/services-1.0.xsd'));
-
-        if ($element = $dom->documentElement->getAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation')) {
-            $items = preg_split('/\s+/', $element);
-            for ($i = 0, $nb = count($items); $i < $nb; $i += 2) {
-                if (!$this->container->hasExtension($items[$i])) {
-                    continue;
-                }
-
-                if (($extension = $this->container->getExtension($items[$i])) && false !== $extension->getXsdValidationBasePath()) {
-                    $path = str_replace($extension->getNamespace(), str_replace('\\', '/', $extension->getXsdValidationBasePath()).'/', $items[$i + 1]);
-
-                    if (!is_file($path)) {
-                        throw new RuntimeException(sprintf('Extension "%s" references a non-existent XSD file "%s"', get_class($extension), $path));
-                    }
-
-                    $schemaLocations[$items[$i]] = $path;
-                }
-            }
-        }
-
-        $tmpfiles = array();
-        $imports = '';
-        foreach ($schemaLocations as $namespace => $location) {
-            $parts = explode('/', $location);
-            if (0 === stripos($location, 'phar://')) {
-                $tmpfile = tempnam(sys_get_temp_dir(), 'sf2');
-                if ($tmpfile) {
-                    copy($location, $tmpfile);
-                    $tmpfiles[] = $tmpfile;
-                    $parts = explode('/', str_replace('\\', '/', $tmpfile));
-                }
-            }
-            $drive = '\\' === DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
-            $location = 'file:///'.$drive.implode('/', array_map('rawurlencode', $parts));
-
-            $imports .= sprintf('  <xsd:import namespace="%s" schemaLocation="%s" />'."\n", $namespace, $location);
-        }
-
-        $source = <<<EOF
-<?xml version="1.0" encoding="utf-8" ?>
-<xsd:schema xmlns="http://symfony.com/schema"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    targetNamespace="http://symfony.com/schema"
-    elementFormDefault="qualified">
-
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
-$imports
-</xsd:schema>
-EOF
-        ;
-
-        $valid = @$dom->schemaValidateSource($source);
-
-        foreach ($tmpfiles as $tmpfile) {
-            @unlink($tmpfile);
-        }
-
-        return $valid;
-    }
-
-    /**
-     * Validates an extension.
-     *
-     * @param \DOMDocument $dom
-     * @param string       $file
-     *
-     * @throws InvalidArgumentException When no extension is found corresponding to a tag
-     */
-    private function validateExtensions(\DOMDocument $dom, $file)
-    {
-        foreach ($dom->documentElement->childNodes as $node) {
-            if (!$node instanceof \DOMElement || 'http://symfony.com/schema/dic/services' === $node->namespaceURI) {
-                continue;
-            }
-
-            // can it be handled by an extension?
-            if (!$this->container->hasExtension($node->namespaceURI)) {
-                $extensionNamespaces = array_filter(array_map(function ($ext) { return $ext->getNamespace(); }, $this->container->getExtensions()));
-                throw new InvalidArgumentException(sprintf(
-                    'There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s',
-                    $node->tagName,
-                    $file,
-                    $node->namespaceURI,
-                    $extensionNamespaces ? sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none'
-                ));
-            }
-        }
-    }
-
-    /**
-     * Loads from an extension.
-     *
-     * @param \DOMDocument $xml
-     */
-    private function loadFromExtensions(\DOMDocument $xml)
-    {
-        foreach ($xml->documentElement->childNodes as $node) {
-            if (!$node instanceof \DOMElement || $node->namespaceURI === self::NS) {
-                continue;
-            }
-
-            $values = static::convertDomElementToArray($node);
-            if (!is_array($values)) {
-                $values = array();
-            }
-
-            $this->container->loadFromExtension($node->namespaceURI, $values);
-        }
-    }
-
-    /**
-     * Converts a \DomElement object to a PHP array.
-     *
-     * The following rules applies during the conversion:
-     *
-     *  * Each tag is converted to a key value or an array
-     *    if there is more than one "value"
-     *
-     *  * The content of a tag is set under a "value" key (<foo>bar</foo>)
-     *    if the tag also has some nested tags
-     *
-     *  * The attributes are converted to keys (<foo foo="bar"/>)
-     *
-     *  * The nested-tags are converted to keys (<foo><foo>bar</foo></foo>)
-     *
-     * @param \DomElement $element A \DomElement instance
-     *
-     * @return array A PHP array
-     */
-    public static function convertDomElementToArray(\DomElement $element)
-    {
-        return XmlUtils::convertDomElementToArray($element);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php b/core/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php
deleted file mode 100644
index be2d3f1..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php
+++ /dev/null
@@ -1,421 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Loader;
-
-use Symfony\Component\DependencyInjection\DefinitionDecorator;
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Yaml\Parser as YamlParser;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * YamlFileLoader loads YAML files service definitions.
- *
- * The YAML format does not support anonymous services (cf. the XML loader).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class YamlFileLoader extends FileLoader
-{
-    private $yamlParser;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $type = null)
-    {
-        $path = $this->locator->locate($resource);
-
-        $content = $this->loadFile($path);
-
-        $this->container->addResource(new FileResource($path));
-
-        // empty file
-        if (null === $content) {
-            return;
-        }
-
-        // imports
-        $this->parseImports($content, $path);
-
-        // parameters
-        if (isset($content['parameters'])) {
-            if (!is_array($content['parameters'])) {
-                throw new InvalidArgumentException(sprintf('The "parameters" key should contain an array in %s. Check your YAML syntax.', $resource));
-            }
-
-            foreach ($content['parameters'] as $key => $value) {
-                $this->container->setParameter($key, $this->resolveServices($value));
-            }
-        }
-
-        // extensions
-        $this->loadFromExtensions($content);
-
-        // services
-        $this->parseDefinitions($content, $resource);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && in_array(pathinfo($resource, PATHINFO_EXTENSION), array('yml', 'yaml'), true);
-    }
-
-    /**
-     * Parses all imports.
-     *
-     * @param array  $content
-     * @param string $file
-     */
-    private function parseImports($content, $file)
-    {
-        if (!isset($content['imports'])) {
-            return;
-        }
-
-        if (!is_array($content['imports'])) {
-            throw new InvalidArgumentException(sprintf('The "imports" key should contain an array in %s. Check your YAML syntax.', $file));
-        }
-
-        foreach ($content['imports'] as $import) {
-            if (!is_array($import)) {
-                throw new InvalidArgumentException(sprintf('The values in the "imports" key should be arrays in %s. Check your YAML syntax.', $file));
-            }
-
-            $this->setCurrentDir(dirname($file));
-            $this->import($import['resource'], null, isset($import['ignore_errors']) ? (bool) $import['ignore_errors'] : false, $file);
-        }
-    }
-
-    /**
-     * Parses definitions.
-     *
-     * @param array  $content
-     * @param string $file
-     */
-    private function parseDefinitions($content, $file)
-    {
-        if (!isset($content['services'])) {
-            return;
-        }
-
-        if (!is_array($content['services'])) {
-            throw new InvalidArgumentException(sprintf('The "services" key should contain an array in %s. Check your YAML syntax.', $file));
-        }
-
-        foreach ($content['services'] as $id => $service) {
-            $this->parseDefinition($id, $service, $file);
-        }
-    }
-
-    /**
-     * Parses a definition.
-     *
-     * @param string $id
-     * @param array  $service
-     * @param string $file
-     *
-     * @throws InvalidArgumentException When tags are invalid
-     */
-    private function parseDefinition($id, $service, $file)
-    {
-        if (is_string($service) && 0 === strpos($service, '@')) {
-            $this->container->setAlias($id, substr($service, 1));
-
-            return;
-        }
-
-        if (!is_array($service)) {
-            throw new InvalidArgumentException(sprintf('A service definition must be an array or a string starting with "@" but %s found for service "%s" in %s. Check your YAML syntax.', gettype($service), $id, $file));
-        }
-
-        if (isset($service['alias'])) {
-            $public = !array_key_exists('public', $service) || (bool) $service['public'];
-            $this->container->setAlias($id, new Alias($service['alias'], $public));
-
-            return;
-        }
-
-        if (isset($service['parent'])) {
-            $definition = new DefinitionDecorator($service['parent']);
-        } else {
-            $definition = new Definition();
-        }
-
-        if (isset($service['class'])) {
-            $definition->setClass($service['class']);
-        }
-
-        if (isset($service['scope'])) {
-            $definition->setScope($service['scope']);
-        }
-
-        if (isset($service['synthetic'])) {
-            $definition->setSynthetic($service['synthetic']);
-        }
-
-        if (isset($service['synchronized'])) {
-            @trigger_error(sprintf('The "synchronized" key of service "%s" in file "%s" is deprecated since version 2.7 and will be removed in 3.0.', $id, $file), E_USER_DEPRECATED);
-            $definition->setSynchronized($service['synchronized'], 'request' !== $id);
-        }
-
-        if (isset($service['lazy'])) {
-            $definition->setLazy($service['lazy']);
-        }
-
-        if (isset($service['public'])) {
-            $definition->setPublic($service['public']);
-        }
-
-        if (isset($service['abstract'])) {
-            $definition->setAbstract($service['abstract']);
-        }
-
-        if (isset($service['factory'])) {
-            if (is_string($service['factory'])) {
-                if (strpos($service['factory'], ':') !== false && strpos($service['factory'], '::') === false) {
-                    $parts = explode(':', $service['factory']);
-                    $definition->setFactory(array($this->resolveServices('@'.$parts[0]), $parts[1]));
-                } else {
-                    $definition->setFactory($service['factory']);
-                }
-            } else {
-                $definition->setFactory(array($this->resolveServices($service['factory'][0]), $service['factory'][1]));
-            }
-        }
-
-        if (isset($service['factory_class'])) {
-            @trigger_error(sprintf('The "factory_class" key of service "%s" in file "%s" is deprecated since version 2.6 and will be removed in 3.0. Use "factory" instead.', $id, $file), E_USER_DEPRECATED);
-            $definition->setFactoryClass($service['factory_class']);
-        }
-
-        if (isset($service['factory_method'])) {
-            @trigger_error(sprintf('The "factory_method" key of service "%s" in file "%s" is deprecated since version 2.6 and will be removed in 3.0. Use "factory" instead.', $id, $file), E_USER_DEPRECATED);
-            $definition->setFactoryMethod($service['factory_method']);
-        }
-
-        if (isset($service['factory_service'])) {
-            @trigger_error(sprintf('The "factory_service" key of service "%s" in file "%s" is deprecated since version 2.6 and will be removed in 3.0. Use "factory" instead.', $id, $file), E_USER_DEPRECATED);
-            $definition->setFactoryService($service['factory_service']);
-        }
-
-        if (isset($service['file'])) {
-            $definition->setFile($service['file']);
-        }
-
-        if (isset($service['arguments'])) {
-            $definition->setArguments($this->resolveServices($service['arguments']));
-        }
-
-        if (isset($service['properties'])) {
-            $definition->setProperties($this->resolveServices($service['properties']));
-        }
-
-        if (isset($service['configurator'])) {
-            if (is_string($service['configurator'])) {
-                $definition->setConfigurator($service['configurator']);
-            } else {
-                $definition->setConfigurator(array($this->resolveServices($service['configurator'][0]), $service['configurator'][1]));
-            }
-        }
-
-        if (isset($service['calls'])) {
-            if (!is_array($service['calls'])) {
-                throw new InvalidArgumentException(sprintf('Parameter "calls" must be an array for service "%s" in %s. Check your YAML syntax.', $id, $file));
-            }
-
-            foreach ($service['calls'] as $call) {
-                if (isset($call['method'])) {
-                    $method = $call['method'];
-                    $args = isset($call['arguments']) ? $this->resolveServices($call['arguments']) : array();
-                } else {
-                    $method = $call[0];
-                    $args = isset($call[1]) ? $this->resolveServices($call[1]) : array();
-                }
-
-                $definition->addMethodCall($method, $args);
-            }
-        }
-
-        if (isset($service['tags'])) {
-            if (!is_array($service['tags'])) {
-                throw new InvalidArgumentException(sprintf('Parameter "tags" must be an array for service "%s" in %s. Check your YAML syntax.', $id, $file));
-            }
-
-            foreach ($service['tags'] as $tag) {
-                if (!is_array($tag)) {
-                    throw new InvalidArgumentException(sprintf('A "tags" entry must be an array for service "%s" in %s. Check your YAML syntax.', $id, $file));
-                }
-
-                if (!isset($tag['name'])) {
-                    throw new InvalidArgumentException(sprintf('A "tags" entry is missing a "name" key for service "%s" in %s.', $id, $file));
-                }
-
-                $name = $tag['name'];
-                unset($tag['name']);
-
-                foreach ($tag as $attribute => $value) {
-                    if (!is_scalar($value) && null !== $value) {
-                        throw new InvalidArgumentException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s" in %s. Check your YAML syntax.', $id, $name, $attribute, $file));
-                    }
-                }
-
-                $definition->addTag($name, $tag);
-            }
-        }
-
-        if (isset($service['decorates'])) {
-            $renameId = isset($service['decoration_inner_name']) ? $service['decoration_inner_name'] : null;
-            $definition->setDecoratedService($service['decorates'], $renameId);
-        }
-
-        $this->container->setDefinition($id, $definition);
-    }
-
-    /**
-     * Loads a YAML file.
-     *
-     * @param string $file
-     *
-     * @return array The file content
-     *
-     * @throws InvalidArgumentException when the given file is not a local file or when it does not exist
-     */
-    protected function loadFile($file)
-    {
-        if (!class_exists('Symfony\Component\Yaml\Parser')) {
-            throw new RuntimeException('Unable to load YAML config files as the Symfony Yaml Component is not installed.');
-        }
-
-        if (!stream_is_local($file)) {
-            throw new InvalidArgumentException(sprintf('This is not a local file "%s".', $file));
-        }
-
-        if (!file_exists($file)) {
-            throw new InvalidArgumentException(sprintf('The service file "%s" is not valid.', $file));
-        }
-
-        if (null === $this->yamlParser) {
-            $this->yamlParser = new YamlParser();
-        }
-
-        return $this->validate($this->yamlParser->parse(file_get_contents($file)), $file);
-    }
-
-    /**
-     * Validates a YAML file.
-     *
-     * @param mixed  $content
-     * @param string $file
-     *
-     * @return array
-     *
-     * @throws InvalidArgumentException When service file is not valid
-     */
-    private function validate($content, $file)
-    {
-        if (null === $content) {
-            return $content;
-        }
-
-        if (!is_array($content)) {
-            throw new InvalidArgumentException(sprintf('The service file "%s" is not valid. It should contain an array. Check your YAML syntax.', $file));
-        }
-
-        foreach ($content as $namespace => $data) {
-            if (in_array($namespace, array('imports', 'parameters', 'services'))) {
-                continue;
-            }
-
-            if (!$this->container->hasExtension($namespace)) {
-                $extensionNamespaces = array_filter(array_map(function ($ext) { return $ext->getAlias(); }, $this->container->getExtensions()));
-                throw new InvalidArgumentException(sprintf(
-                    'There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s',
-                    $namespace,
-                    $file,
-                    $namespace,
-                    $extensionNamespaces ? sprintf('"%s"', implode('", "', $extensionNamespaces)) : 'none'
-                ));
-            }
-        }
-
-        return $content;
-    }
-
-    /**
-     * Resolves services.
-     *
-     * @param string|array $value
-     *
-     * @return array|string|Reference
-     */
-    private function resolveServices($value)
-    {
-        if (is_array($value)) {
-            $value = array_map(array($this, 'resolveServices'), $value);
-        } elseif (is_string($value) &&  0 === strpos($value, '@=')) {
-            return new Expression(substr($value, 2));
-        } elseif (is_string($value) &&  0 === strpos($value, '@')) {
-            if (0 === strpos($value, '@@')) {
-                $value = substr($value, 1);
-                $invalidBehavior = null;
-            } elseif (0 === strpos($value, '@?')) {
-                $value = substr($value, 2);
-                $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
-            } else {
-                $value = substr($value, 1);
-                $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
-            }
-
-            if ('=' === substr($value, -1)) {
-                $value = substr($value, 0, -1);
-                $strict = false;
-            } else {
-                $strict = true;
-            }
-
-            if (null !== $invalidBehavior) {
-                $value = new Reference($value, $invalidBehavior, $strict);
-            }
-        }
-
-        return $value;
-    }
-
-    /**
-     * Loads from Extensions.
-     *
-     * @param array $content
-     */
-    private function loadFromExtensions($content)
-    {
-        foreach ($content as $namespace => $values) {
-            if (in_array($namespace, array('imports', 'parameters', 'services'))) {
-                continue;
-            }
-
-            if (!is_array($values)) {
-                $values = array();
-            }
-
-            $this->container->loadFromExtension($namespace, $values);
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd b/core/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd
deleted file mode 100644
index ac2cba7..0000000
--- a/core/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<xsd:schema xmlns="http://symfony.com/schema/dic/services"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-     targetNamespace="http://symfony.com/schema/dic/services"
-     elementFormDefault="qualified">
-
-  <xsd:annotation>
-    <xsd:documentation><![CDATA[
-      Symfony XML Services Schema, version 1.0
-      Authors: Fabien Potencier
-
-      This defines a way to describe PHP objects (services) and their
-      dependencies.
-    ]]></xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:element name="container" type="container" />
-
-  <xsd:complexType name="container">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        The root element of a service file.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="imports" type="imports" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="parameters" type="parameters" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="services" type="services" minOccurs="0" maxOccurs="1" />
-      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <xsd:complexType name="services">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Enclosing element for the definition of all services
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="1" maxOccurs="unbounded">
-      <xsd:element name="service" type="service" />
-    </xsd:choice>
-  </xsd:complexType>
-
-  <xsd:complexType name="imports">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Enclosing element for the import elements
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="1" maxOccurs="unbounded">
-      <xsd:element name="import" type="import" />
-    </xsd:choice>
-  </xsd:complexType>
-
-  <xsd:complexType name="import">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Import an external resource defining other services or parameters
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="resource" type="xsd:string" use="required" />
-    <xsd:attribute name="ignore-errors" type="boolean" />
-  </xsd:complexType>
-
-  <xsd:complexType name="callable">
-    <xsd:choice minOccurs="0" maxOccurs="1">
-      <xsd:element name="service" type="service" minOccurs="0" maxOccurs="1" />
-    </xsd:choice>
-    <xsd:attribute name="id" type="xsd:string" />
-    <xsd:attribute name="service" type="xsd:string" />
-    <xsd:attribute name="class" type="xsd:string" />
-    <xsd:attribute name="method" type="xsd:string" />
-    <xsd:attribute name="function" type="xsd:string" />
-  </xsd:complexType>
-
-  <xsd:complexType name="service">
-    <xsd:choice maxOccurs="unbounded">
-      <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="configurator" type="callable" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="factory" type="callable" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="call" type="call" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
-    </xsd:choice>
-    <xsd:attribute name="id" type="xsd:string" />
-    <xsd:attribute name="class" type="xsd:string" />
-    <xsd:attribute name="scope" type="xsd:string" />
-    <xsd:attribute name="public" type="boolean" />
-    <xsd:attribute name="synthetic" type="boolean" />
-    <xsd:attribute name="synchronized" type="boolean" />
-    <xsd:attribute name="lazy" type="boolean" />
-    <xsd:attribute name="abstract" type="boolean" />
-    <xsd:attribute name="factory-class" type="xsd:string" />
-    <xsd:attribute name="factory-method" type="xsd:string" />
-    <xsd:attribute name="factory-service" type="xsd:string" />
-    <xsd:attribute name="alias" type="xsd:string" />
-    <xsd:attribute name="parent" type="xsd:string" />
-    <xsd:attribute name="decorates" type="xsd:string" />
-    <xsd:attribute name="decoration-inner-name" type="xsd:string" />
-  </xsd:complexType>
-
-  <xsd:complexType name="tag">
-    <xsd:attribute name="name" type="xsd:string" />
-    <xsd:anyAttribute namespace="##any" processContents="lax" />
-  </xsd:complexType>
-
-  <xsd:complexType name="parameters">
-    <xsd:choice minOccurs="1" maxOccurs="unbounded">
-      <xsd:element name="parameter" type="parameter" />
-    </xsd:choice>
-    <xsd:attribute name="type" type="parameter_type" />
-    <xsd:attribute name="key" type="xsd:string" />
-  </xsd:complexType>
-
-  <xsd:complexType name="parameter" mixed="true">
-    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-      <xsd:element name="parameter" type="parameter" />
-    </xsd:choice>
-    <xsd:attribute name="type" type="parameter_type" />
-    <xsd:attribute name="id" type="xsd:string" />
-    <xsd:attribute name="key" type="xsd:string" />
-    <xsd:attribute name="on-invalid" type="invalid_sequence" />
-  </xsd:complexType>
-
-  <xsd:complexType name="property" mixed="true">
-    <xsd:choice minOccurs="0" maxOccurs="1">
-      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="service" type="service" />
-    </xsd:choice>
-    <xsd:attribute name="type" type="argument_type" />
-    <xsd:attribute name="id" type="xsd:string" />
-    <xsd:attribute name="key" type="xsd:string" />
-    <xsd:attribute name="name" type="xsd:string" />
-    <xsd:attribute name="on-invalid" type="xsd:string" />
-    <xsd:attribute name="strict" type="boolean" />
-  </xsd:complexType>
-
-  <xsd:complexType name="argument" mixed="true">
-    <xsd:choice maxOccurs="unbounded">
-      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="service" type="service" />
-    </xsd:choice>
-    <xsd:attribute name="type" type="argument_type" />
-    <xsd:attribute name="id" type="xsd:string" />
-    <xsd:attribute name="key" type="xsd:string" />
-    <xsd:attribute name="index" type="xsd:integer" />
-    <xsd:attribute name="on-invalid" type="xsd:string" />
-    <xsd:attribute name="strict" type="boolean" />
-  </xsd:complexType>
-
-  <xsd:complexType name="call" mixed="true">
-    <xsd:choice maxOccurs="unbounded">
-      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="service" type="service" />
-    </xsd:choice>
-    <xsd:attribute name="method" type="xsd:string" />
-  </xsd:complexType>
-
-  <xsd:simpleType name="parameter_type">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="collection" />
-      <xsd:enumeration value="string" />
-      <xsd:enumeration value="constant" />
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="argument_type">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="collection" />
-      <xsd:enumeration value="service" />
-      <xsd:enumeration value="expression" />
-      <xsd:enumeration value="string" />
-      <xsd:enumeration value="constant" />
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="invalid_sequence">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="null" />
-      <xsd:enumeration value="ignore" />
-      <xsd:enumeration value="exception" />
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="boolean">
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="(%.+%|true|false)" />
-    </xsd:restriction>
-  </xsd:simpleType>
-</xsd:schema>
diff --git a/core/vendor/symfony/dependency-injection/Parameter.php b/core/vendor/symfony/dependency-injection/Parameter.php
deleted file mode 100644
index 7ba8c3a..0000000
--- a/core/vendor/symfony/dependency-injection/Parameter.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * Parameter represents a parameter reference.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Parameter
-{
-    private $id;
-
-    /**
-     * Constructor.
-     *
-     * @param string $id The parameter key
-     */
-    public function __construct($id)
-    {
-        $this->id = $id;
-    }
-
-    /**
-     * __toString.
-     *
-     * @return string The parameter key
-     */
-    public function __toString()
-    {
-        return (string) $this->id;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php b/core/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php
deleted file mode 100644
index 3ea6d96..0000000
--- a/core/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\ParameterBag;
-
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-
-/**
- * Holds read-only parameters.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class FrozenParameterBag extends ParameterBag
-{
-    /**
-     * Constructor.
-     *
-     * For performance reasons, the constructor assumes that
-     * all keys are already lowercased.
-     *
-     * This is always the case when used internally.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @api
-     */
-    public function __construct(array $parameters = array())
-    {
-        $this->parameters = $parameters;
-        $this->resolved = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function clear()
-    {
-        throw new LogicException('Impossible to call clear() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function add(array $parameters)
-    {
-        throw new LogicException('Impossible to call add() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function set($name, $value)
-    {
-        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function remove($name)
-    {
-        throw new LogicException('Impossible to call remove() on a frozen ParameterBag.');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php b/core/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php
deleted file mode 100644
index e4f4da1..0000000
--- a/core/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php
+++ /dev/null
@@ -1,304 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\ParameterBag;
-
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * Holds parameters.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ParameterBag implements ParameterBagInterface
-{
-    protected $parameters = array();
-    protected $resolved = false;
-
-    /**
-     * Constructor.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @api
-     */
-    public function __construct(array $parameters = array())
-    {
-        $this->add($parameters);
-    }
-
-    /**
-     * Clears all parameters.
-     *
-     * @api
-     */
-    public function clear()
-    {
-        $this->parameters = array();
-    }
-
-    /**
-     * Adds parameters to the service container parameters.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @api
-     */
-    public function add(array $parameters)
-    {
-        foreach ($parameters as $key => $value) {
-            $this->parameters[strtolower($key)] = $value;
-        }
-    }
-
-    /**
-     * Gets the service container parameters.
-     *
-     * @return array An array of parameters
-     *
-     * @api
-     */
-    public function all()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Gets a service container parameter.
-     *
-     * @param string $name The parameter name
-     *
-     * @return mixed The parameter value
-     *
-     * @throws ParameterNotFoundException if the parameter is not defined
-     *
-     * @api
-     */
-    public function get($name)
-    {
-        $name = strtolower($name);
-
-        if (!array_key_exists($name, $this->parameters)) {
-            if (!$name) {
-                throw new ParameterNotFoundException($name);
-            }
-
-            $alternatives = array();
-            foreach ($this->parameters as $key => $parameterValue) {
-                $lev = levenshtein($name, $key);
-                if ($lev <= strlen($name) / 3 || false !== strpos($key, $name)) {
-                    $alternatives[] = $key;
-                }
-            }
-
-            throw new ParameterNotFoundException($name, null, null, null, $alternatives);
-        }
-
-        return $this->parameters[$name];
-    }
-
-    /**
-     * Sets a service container parameter.
-     *
-     * @param string $name  The parameter name
-     * @param mixed  $value The parameter value
-     *
-     * @api
-     */
-    public function set($name, $value)
-    {
-        $this->parameters[strtolower($name)] = $value;
-    }
-
-    /**
-     * Returns true if a parameter name is defined.
-     *
-     * @param string $name The parameter name
-     *
-     * @return bool true if the parameter name is defined, false otherwise
-     *
-     * @api
-     */
-    public function has($name)
-    {
-        return array_key_exists(strtolower($name), $this->parameters);
-    }
-
-    /**
-     * Removes a parameter.
-     *
-     * @param string $name The parameter name
-     *
-     * @api
-     */
-    public function remove($name)
-    {
-        unset($this->parameters[strtolower($name)]);
-    }
-
-    /**
-     * Replaces parameter placeholders (%name%) by their values for all parameters.
-     */
-    public function resolve()
-    {
-        if ($this->resolved) {
-            return;
-        }
-
-        $parameters = array();
-        foreach ($this->parameters as $key => $value) {
-            try {
-                $value = $this->resolveValue($value);
-                $parameters[$key] = $this->unescapeValue($value);
-            } catch (ParameterNotFoundException $e) {
-                $e->setSourceKey($key);
-
-                throw $e;
-            }
-        }
-
-        $this->parameters = $parameters;
-        $this->resolved = true;
-    }
-
-    /**
-     * Replaces parameter placeholders (%name%) by their values.
-     *
-     * @param mixed $value     A value
-     * @param array $resolving An array of keys that are being resolved (used internally to detect circular references)
-     *
-     * @return mixed The resolved value
-     *
-     * @throws ParameterNotFoundException          if a placeholder references a parameter that does not exist
-     * @throws ParameterCircularReferenceException if a circular reference if detected
-     * @throws RuntimeException                    when a given parameter has a type problem.
-     */
-    public function resolveValue($value, array $resolving = array())
-    {
-        if (is_array($value)) {
-            $args = array();
-            foreach ($value as $k => $v) {
-                $args[$this->resolveValue($k, $resolving)] = $this->resolveValue($v, $resolving);
-            }
-
-            return $args;
-        }
-
-        if (!is_string($value)) {
-            return $value;
-        }
-
-        return $this->resolveString($value, $resolving);
-    }
-
-    /**
-     * Resolves parameters inside a string.
-     *
-     * @param string $value     The string to resolve
-     * @param array  $resolving An array of keys that are being resolved (used internally to detect circular references)
-     *
-     * @return string The resolved string
-     *
-     * @throws ParameterNotFoundException          if a placeholder references a parameter that does not exist
-     * @throws ParameterCircularReferenceException if a circular reference if detected
-     * @throws RuntimeException                    when a given parameter has a type problem.
-     */
-    public function resolveString($value, array $resolving = array())
-    {
-        // we do this to deal with non string values (Boolean, integer, ...)
-        // as the preg_replace_callback throw an exception when trying
-        // a non-string in a parameter value
-        if (preg_match('/^%([^%\s]+)%$/', $value, $match)) {
-            $key = strtolower($match[1]);
-
-            if (isset($resolving[$key])) {
-                throw new ParameterCircularReferenceException(array_keys($resolving));
-            }
-
-            $resolving[$key] = true;
-
-            return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving);
-        }
-
-        $self = $this;
-
-        return preg_replace_callback('/%%|%([^%\s]+)%/', function ($match) use ($self, $resolving, $value) {
-            // skip %%
-            if (!isset($match[1])) {
-                return '%%';
-            }
-
-            $key = strtolower($match[1]);
-            if (isset($resolving[$key])) {
-                throw new ParameterCircularReferenceException(array_keys($resolving));
-            }
-
-            $resolved = $self->get($key);
-
-            if (!is_string($resolved) && !is_numeric($resolved)) {
-                throw new RuntimeException(sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type %s inside string value "%s".', $key, gettype($resolved), $value));
-            }
-
-            $resolved = (string) $resolved;
-            $resolving[$key] = true;
-
-            return $self->isResolved() ? $resolved : $self->resolveString($resolved, $resolving);
-        }, $value);
-    }
-
-    public function isResolved()
-    {
-        return $this->resolved;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function escapeValue($value)
-    {
-        if (is_string($value)) {
-            return str_replace('%', '%%', $value);
-        }
-
-        if (is_array($value)) {
-            $result = array();
-            foreach ($value as $k => $v) {
-                $result[$k] = $this->escapeValue($v);
-            }
-
-            return $result;
-        }
-
-        return $value;
-    }
-
-    public function unescapeValue($value)
-    {
-        if (is_string($value)) {
-            return str_replace('%%', '%', $value);
-        }
-
-        if (is_array($value)) {
-            $result = array();
-            foreach ($value as $k => $v) {
-                $result[$k] = $this->unescapeValue($v);
-            }
-
-            return $result;
-        }
-
-        return $value;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php b/core/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php
deleted file mode 100644
index ead76d7..0000000
--- a/core/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\ParameterBag;
-
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-
-/**
- * ParameterBagInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface ParameterBagInterface
-{
-    /**
-     * Clears all parameters.
-     *
-     * @throws LogicException if the ParameterBagInterface can not be cleared
-     *
-     * @api
-     */
-    public function clear();
-
-    /**
-     * Adds parameters to the service container parameters.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @throws LogicException if the parameter can not be added
-     *
-     * @api
-     */
-    public function add(array $parameters);
-
-    /**
-     * Gets the service container parameters.
-     *
-     * @return array An array of parameters
-     *
-     * @api
-     */
-    public function all();
-
-    /**
-     * Gets a service container parameter.
-     *
-     * @param string $name The parameter name
-     *
-     * @return mixed The parameter value
-     *
-     * @throws ParameterNotFoundException if the parameter is not defined
-     *
-     * @api
-     */
-    public function get($name);
-
-    /**
-     * Sets a service container parameter.
-     *
-     * @param string $name  The parameter name
-     * @param mixed  $value The parameter value
-     *
-     * @throws LogicException if the parameter can not be set
-     *
-     * @api
-     */
-    public function set($name, $value);
-
-    /**
-     * Returns true if a parameter name is defined.
-     *
-     * @param string $name The parameter name
-     *
-     * @return bool true if the parameter name is defined, false otherwise
-     *
-     * @api
-     */
-    public function has($name);
-
-    /**
-     * Replaces parameter placeholders (%name%) by their values for all parameters.
-     */
-    public function resolve();
-
-    /**
-     * Replaces parameter placeholders (%name%) by their values.
-     *
-     * @param mixed $value A value
-     *
-     * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist
-     */
-    public function resolveValue($value);
-
-    /**
-     * Escape parameter placeholders %.
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     */
-    public function escapeValue($value);
-
-    /**
-     * Unescape parameter placeholders %.
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     */
-    public function unescapeValue($value);
-}
diff --git a/core/vendor/symfony/dependency-injection/README.md b/core/vendor/symfony/dependency-injection/README.md
deleted file mode 100644
index 19a1142..0000000
--- a/core/vendor/symfony/dependency-injection/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-DependencyInjection Component
-=============================
-
-DependencyInjection manages your services via a robust and flexible Dependency
-Injection Container.
-
-Here is a simple example that shows how to register services and parameters:
-
-```php
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-
-$sc = new ContainerBuilder();
-$sc
-    ->register('foo', '%foo.class%')
-    ->addArgument(new Reference('bar'))
-;
-$sc->setParameter('foo.class', 'Foo');
-
-$sc->get('foo');
-```
-
-Method Calls (Setter Injection):
-
-```php
-$sc = new ContainerBuilder();
-
-$sc
-    ->register('bar', '%bar.class%')
-    ->addMethodCall('setFoo', array(new Reference('foo')))
-;
-$sc->setParameter('bar.class', 'Bar');
-
-$sc->get('bar');
-```
-
-Factory Class:
-
-If your service is retrieved by calling a static method:
-
-```php
-$sc = new ContainerBuilder();
-
-$sc
-    ->register('bar', '%bar.class%')
-    ->setFactory(array('%bar.class%', 'getInstance'))
-    ->addArgument('Aarrg!!!')
-;
-$sc->setParameter('bar.class', 'Bar');
-
-$sc->get('bar');
-```
-
-File Include:
-
-For some services, especially those that are difficult or impossible to
-autoload, you may need the container to include a file before
-instantiating your class.
-
-```php
-$sc = new ContainerBuilder();
-
-$sc
-    ->register('bar', '%bar.class%')
-    ->setFile('/path/to/file')
-    ->addArgument('Aarrg!!!')
-;
-$sc->setParameter('bar.class', 'Bar');
-
-$sc->get('bar');
-```
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/DependencyInjection/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/dependency-injection/Reference.php b/core/vendor/symfony/dependency-injection/Reference.php
deleted file mode 100644
index 8808488..0000000
--- a/core/vendor/symfony/dependency-injection/Reference.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * Reference represents a service reference.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Reference
-{
-    private $id;
-    private $invalidBehavior;
-    private $strict;
-
-    /**
-     * Constructor.
-     *
-     * @param string $id              The service identifier
-     * @param int    $invalidBehavior The behavior when the service does not exist
-     * @param bool   $strict          Sets how this reference is validated
-     *
-     * @see Container
-     */
-    public function __construct($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $strict = true)
-    {
-        $this->id = strtolower($id);
-        $this->invalidBehavior = $invalidBehavior;
-        $this->strict = $strict;
-    }
-
-    /**
-     * __toString.
-     *
-     * @return string The service identifier
-     */
-    public function __toString()
-    {
-        return $this->id;
-    }
-
-    /**
-     * Returns the behavior to be used when the service does not exist.
-     *
-     * @return int
-     */
-    public function getInvalidBehavior()
-    {
-        return $this->invalidBehavior;
-    }
-
-    /**
-     * Returns true when this Reference is strict.
-     *
-     * @return bool
-     */
-    public function isStrict()
-    {
-        return $this->strict;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Scope.php b/core/vendor/symfony/dependency-injection/Scope.php
deleted file mode 100644
index 161229e..0000000
--- a/core/vendor/symfony/dependency-injection/Scope.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * Scope class.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class Scope implements ScopeInterface
-{
-    private $name;
-    private $parentName;
-
-    /**
-     * @api
-     */
-    public function __construct($name, $parentName = ContainerInterface::SCOPE_CONTAINER)
-    {
-        $this->name = $name;
-        $this->parentName = $parentName;
-    }
-
-    /**
-     * @api
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * @api
-     */
-    public function getParentName()
-    {
-        return $this->parentName;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/ScopeInterface.php b/core/vendor/symfony/dependency-injection/ScopeInterface.php
deleted file mode 100644
index 81ac67c..0000000
--- a/core/vendor/symfony/dependency-injection/ScopeInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * Scope Interface.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-interface ScopeInterface
-{
-    /**
-     * @api
-     */
-    public function getName();
-
-    /**
-     * @api
-     */
-    public function getParentName();
-}
diff --git a/core/vendor/symfony/dependency-injection/SimpleXMLElement.php b/core/vendor/symfony/dependency-injection/SimpleXMLElement.php
deleted file mode 100644
index 63d44ea..0000000
--- a/core/vendor/symfony/dependency-injection/SimpleXMLElement.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-@trigger_error('The '.__NAMESPACE__.'\SimpleXMLElement method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * SimpleXMLElement class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-class SimpleXMLElement extends \SimpleXMLElement
-{
-    /**
-     * Converts an attribute as a PHP type.
-     *
-     * @param string $name
-     *
-     * @return mixed
-     */
-    public function getAttributeAsPhp($name)
-    {
-        return self::phpize($this[$name]);
-    }
-
-    /**
-     * Returns arguments as valid PHP types.
-     *
-     * @param string $name
-     * @param bool   $lowercase
-     *
-     * @return mixed
-     */
-    public function getArgumentsAsPhp($name, $lowercase = true)
-    {
-        $arguments = array();
-        foreach ($this->$name as $arg) {
-            if (isset($arg['name'])) {
-                $arg['key'] = (string) $arg['name'];
-            }
-            $key = isset($arg['key']) ? (string) $arg['key'] : (!$arguments ? 0 : max(array_keys($arguments)) + 1);
-
-            // parameter keys are case insensitive
-            if ('parameter' == $name && $lowercase) {
-                $key = strtolower($key);
-            }
-
-            // this is used by DefinitionDecorator to overwrite a specific
-            // argument of the parent definition
-            if (isset($arg['index'])) {
-                $key = 'index_'.$arg['index'];
-            }
-
-            switch ($arg['type']) {
-                case 'service':
-                    $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
-                    if (isset($arg['on-invalid']) && 'ignore' == $arg['on-invalid']) {
-                        $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
-                    } elseif (isset($arg['on-invalid']) && 'null' == $arg['on-invalid']) {
-                        $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
-                    }
-
-                    if (isset($arg['strict'])) {
-                        $strict = self::phpize($arg['strict']);
-                    } else {
-                        $strict = true;
-                    }
-
-                    $arguments[$key] = new Reference((string) $arg['id'], $invalidBehavior, $strict);
-                    break;
-                case 'expression':
-                    $arguments[$key] = new Expression((string) $arg);
-                    break;
-                case 'collection':
-                    $arguments[$key] = $arg->getArgumentsAsPhp($name, false);
-                    break;
-                case 'string':
-                    $arguments[$key] = (string) $arg;
-                    break;
-                case 'constant':
-                    $arguments[$key] = constant((string) $arg);
-                    break;
-                default:
-                    $arguments[$key] = self::phpize($arg);
-            }
-        }
-
-        return $arguments;
-    }
-
-    /**
-     * Converts an xml value to a PHP type.
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     */
-    public static function phpize($value)
-    {
-        return XmlUtils::phpize($value);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/TaggedContainerInterface.php b/core/vendor/symfony/dependency-injection/TaggedContainerInterface.php
deleted file mode 100644
index 3b48817..0000000
--- a/core/vendor/symfony/dependency-injection/TaggedContainerInterface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * TaggedContainerInterface is the interface implemented when a container knows how to deals with tags.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface TaggedContainerInterface extends ContainerInterface
-{
-    /**
-     * Returns service ids for a given tag.
-     *
-     * @param string $name The tag name
-     *
-     * @return array An array of tags
-     *
-     * @api
-     */
-    public function findTaggedServiceIds($name);
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
deleted file mode 100644
index 04fe7c2..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
-use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class AnalyzeServiceReferencesPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-
-        $a = $container
-            ->register('a')
-            ->addArgument($ref1 = new Reference('b'))
-        ;
-
-        $b = $container
-            ->register('b')
-            ->addMethodCall('setA', array($ref2 = new Reference('a')))
-        ;
-
-        $c = $container
-            ->register('c')
-            ->addArgument($ref3 = new Reference('a'))
-            ->addArgument($ref4 = new Reference('b'))
-        ;
-
-        $d = $container
-            ->register('d')
-            ->setProperty('foo', $ref5 = new Reference('b'))
-        ;
-
-        $e = $container
-            ->register('e')
-            ->setConfigurator(array($ref6 = new Reference('b'), 'methodName'))
-        ;
-
-        $graph = $this->process($container);
-
-        $this->assertCount(4, $edges = $graph->getNode('b')->getInEdges());
-
-        $this->assertSame($ref1, $edges[0]->getValue());
-        $this->assertSame($ref4, $edges[1]->getValue());
-        $this->assertSame($ref5, $edges[2]->getValue());
-        $this->assertSame($ref6, $edges[3]->getValue());
-    }
-
-    public function testProcessDetectsReferencesFromInlinedDefinitions()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('a')
-        ;
-
-        $container
-            ->register('b')
-            ->addArgument(new Definition(null, array($ref = new Reference('a'))))
-        ;
-
-        $graph = $this->process($container);
-
-        $this->assertCount(1, $refs = $graph->getNode('a')->getInEdges());
-        $this->assertSame($ref, $refs[0]->getValue());
-    }
-
-    public function testProcessDetectsReferencesFromInlinedFactoryDefinitions()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('a')
-        ;
-
-        $factory = new Definition();
-        $factory->setFactory(array(new Reference('a'), 'a'));
-
-        $container
-            ->register('b')
-            ->addArgument($factory)
-        ;
-
-        $graph = $this->process($container);
-
-        $this->assertTrue($graph->hasNode('a'));
-        $this->assertCount(1, $refs = $graph->getNode('a')->getInEdges());
-    }
-
-    public function testProcessDoesNotSaveDuplicateReferences()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('a')
-        ;
-        $container
-            ->register('b')
-            ->addArgument(new Definition(null, array($ref1 = new Reference('a'))))
-            ->addArgument(new Definition(null, array($ref2 = new Reference('a'))))
-        ;
-
-        $graph = $this->process($container);
-
-        $this->assertCount(2, $graph->getNode('a')->getInEdges());
-    }
-
-    public function testProcessDetectsFactoryReferences()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('foo', 'stdClass')
-            ->setFactory(array('stdClass', 'getInstance'));
-
-        $container
-            ->register('bar', 'stdClass')
-            ->setFactory(array(new Reference('foo'), 'getInstance'));
-
-        $graph = $this->process($container);
-
-        $this->assertTrue($graph->hasNode('foo'));
-        $this->assertCount(1, $graph->getNode('foo')->getInEdges());
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new RepeatedPass(array(new AnalyzeServiceReferencesPass()));
-        $pass->process($container);
-
-        return $container->getCompiler()->getServiceReferenceGraph();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/AutoAliasServicePassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/AutoAliasServicePassTest.php
deleted file mode 100644
index 368ec3c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/AutoAliasServicePassTest.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\AutoAliasServicePass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class AutoAliasServicePassTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException
-     */
-    public function testProcessWithMissingParameter()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('example')
-          ->addTag('auto_alias', array('format' => '%non_existing%.example'));
-
-        $pass = new AutoAliasServicePass();
-        $pass->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
-     */
-    public function testProcessWithMissingFormat()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('example')
-          ->addTag('auto_alias', array());
-        $container->setParameter('existing', 'mysql');
-
-        $pass = new AutoAliasServicePass();
-        $pass->process($container);
-    }
-
-    public function testProcessWithNonExistingAlias()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('example', 'Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassDefault')
-          ->addTag('auto_alias', array('format' => '%existing%.example'));
-        $container->setParameter('existing', 'mysql');
-
-        $pass = new AutoAliasServicePass();
-        $pass->process($container);
-
-        $this->assertEquals('Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassDefault', $container->getDefinition('example')->getClass());
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassDefault', $container->get('example'));
-    }
-
-    public function testProcessWithExistingAlias()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('example', 'Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassDefault')
-          ->addTag('auto_alias', array('format' => '%existing%.example'));
-
-        $container->register('mysql.example', 'Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassMysql');
-        $container->setParameter('existing', 'mysql');
-
-        $pass = new AutoAliasServicePass();
-        $pass->process($container);
-
-        $this->assertTrue($container->hasAlias('example'));
-        $this->assertEquals('mysql.example', $container->getAlias('example'));
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassMysql', $container->get('example'));
-    }
-
-    public function testProcessWithManualAlias()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('example', 'Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassDefault')
-          ->addTag('auto_alias', array('format' => '%existing%.example'));
-
-        $container->register('mysql.example', 'Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassMysql');
-        $container->register('mariadb.example', 'Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassMariadb');
-        $container->setAlias('example', 'mariadb.example');
-        $container->setParameter('existing', 'mysql');
-
-        $pass = new AutoAliasServicePass();
-        $pass->process($container);
-
-        $this->assertTrue($container->hasAlias('example'));
-        $this->assertEquals('mariadb.example', $container->getAlias('example'));
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Tests\Compiler\ServiceClassMariaDb', $container->get('example'));
-    }
-}
-
-class ServiceClassDefault
-{
-}
-
-class ServiceClassMysql extends ServiceClassDefault
-{
-}
-
-class ServiceClassMariaDb extends ServiceClassMysql
-{
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckCircularReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckCircularReferencesPassTest.php
deleted file mode 100644
index 55351e5..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckCircularReferencesPassTest.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass;
-use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
-use Symfony\Component\DependencyInjection\Compiler\Compiler;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class CheckCircularReferencesPassTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->register('b')->addArgument(new Reference('a'));
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testProcessWithAliases()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->setAlias('b', 'c');
-        $container->setAlias('c', 'a');
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testProcessWithFactory()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('a', 'stdClass')
-            ->setFactory(array(new Reference('b'), 'getInstance'));
-
-        $container
-            ->register('b', 'stdClass')
-            ->setFactory(array(new Reference('a'), 'getInstance'));
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testProcessDetectsIndirectCircularReference()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->register('b')->addArgument(new Reference('c'));
-        $container->register('c')->addArgument(new Reference('a'));
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testProcessDetectsIndirectCircularReferenceWithFactory()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('a')->addArgument(new Reference('b'));
-
-        $container
-            ->register('b', 'stdClass')
-            ->setFactory(array(new Reference('c'), 'getInstance'));
-
-        $container->register('c')->addArgument(new Reference('a'));
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testDeepCircularReference()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->register('b')->addArgument(new Reference('c'));
-        $container->register('c')->addArgument(new Reference('b'));
-
-        $this->process($container);
-    }
-
-    public function testProcessIgnoresMethodCalls()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->register('b')->addMethodCall('setA', array(new Reference('a')));
-
-        $this->process($container);
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $compiler = new Compiler();
-        $passConfig = $compiler->getPassConfig();
-        $passConfig->setOptimizationPasses(array(
-            new AnalyzeServiceReferencesPass(true),
-            new CheckCircularReferencesPass(),
-        ));
-        $passConfig->setRemovingPasses(array());
-
-        $compiler->compile($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckDefinitionValidityPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckDefinitionValidityPassTest.php
deleted file mode 100644
index 4e8efdc..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckDefinitionValidityPassTest.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\CheckDefinitionValidityPass;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class CheckDefinitionValidityPassTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
-     */
-    public function testProcessDetectsSyntheticNonPublicDefinitions()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->setSynthetic(true)->setPublic(false);
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
-     */
-    public function testProcessDetectsSyntheticPrototypeDefinitions()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->setSynthetic(true)->setScope(ContainerInterface::SCOPE_PROTOTYPE);
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
-     */
-    public function testProcessDetectsNonSyntheticNonAbstractDefinitionWithoutClass()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->setSynthetic(false)->setAbstract(false);
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
-     * @group legacy
-     */
-    public function testLegacyProcessDetectsBothFactorySyntaxesUsed()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->setFactory(array('a', 'b'))->setFactoryClass('a');
-
-        $this->process($container);
-    }
-
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a', 'class');
-        $container->register('b', 'class')->setSynthetic(true)->setPublic(true);
-        $container->register('c', 'class')->setAbstract(true);
-        $container->register('d', 'class')->setSynthetic(true);
-
-        $this->process($container);
-    }
-
-    public function testValidTags()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a', 'class')->addTag('foo', array('bar' => 'baz'));
-        $container->register('b', 'class')->addTag('foo', array('bar' => null));
-        $container->register('c', 'class')->addTag('foo', array('bar' => 1));
-        $container->register('d', 'class')->addTag('foo', array('bar' => 1.1));
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
-     */
-    public function testInvalidTags()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a', 'class')->addTag('foo', array('bar' => array('baz' => 'baz')));
-
-        $this->process($container);
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new CheckDefinitionValidityPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
deleted file mode 100644
index 18b605b..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class CheckExceptionOnInvalidReferenceBehaviorPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('a', '\stdClass')
-            ->addArgument(new Reference('b'))
-        ;
-        $container->register('b', '\stdClass');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException
-     */
-    public function testProcessThrowsExceptionOnInvalidReference()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('a', '\stdClass')
-            ->addArgument(new Reference('b'))
-        ;
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException
-     */
-    public function testProcessThrowsExceptionOnInvalidReferenceFromInlinedDefinition()
-    {
-        $container = new ContainerBuilder();
-
-        $def = new Definition();
-        $def->addArgument(new Reference('b'));
-
-        $container
-            ->register('a', '\stdClass')
-            ->addArgument($def)
-        ;
-
-        $this->process($container);
-    }
-
-    private function process(ContainerBuilder $container)
-    {
-        $pass = new CheckExceptionOnInvalidReferenceBehaviorPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckReferenceValidityPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckReferenceValidityPassTest.php
deleted file mode 100644
index cd4448a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/CheckReferenceValidityPassTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Scope;
-use Symfony\Component\DependencyInjection\Compiler\CheckReferenceValidityPass;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class CheckReferenceValidityPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcessIgnoresScopeWideningIfNonStrictReference()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false));
-        $container->register('b')->setScope('prototype');
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testProcessDetectsScopeWidening()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->register('b')->setScope('prototype');
-
-        $this->process($container);
-    }
-
-    public function testProcessIgnoresCrossScopeHierarchyReferenceIfNotStrict()
-    {
-        $container = new ContainerBuilder();
-        $container->addScope(new Scope('a'));
-        $container->addScope(new Scope('b'));
-
-        $container->register('a')->setScope('a')->addArgument(new Reference('b', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false));
-        $container->register('b')->setScope('b');
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testProcessDetectsCrossScopeHierarchyReference()
-    {
-        $container = new ContainerBuilder();
-        $container->addScope(new Scope('a'));
-        $container->addScope(new Scope('b'));
-
-        $container->register('a')->setScope('a')->addArgument(new Reference('b'));
-        $container->register('b')->setScope('b');
-
-        $this->process($container);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testProcessDetectsReferenceToAbstractDefinition()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('a')->setAbstract(true);
-        $container->register('b')->addArgument(new Reference('a'));
-
-        $this->process($container);
-    }
-
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container->register('a')->addArgument(new Reference('b'));
-        $container->register('b');
-
-        $this->process($container);
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new CheckReferenceValidityPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/DecoratorServicePassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/DecoratorServicePassTest.php
deleted file mode 100644
index e17961a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/DecoratorServicePassTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Compiler\DecoratorServicePass;
-
-class DecoratorServicePassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcessWithoutAlias()
-    {
-        $container = new ContainerBuilder();
-        $fooDefinition = $container
-            ->register('foo')
-            ->setPublic(false)
-        ;
-        $fooExtendedDefinition = $container
-            ->register('foo.extended')
-            ->setPublic(true)
-            ->setDecoratedService('foo')
-        ;
-        $barDefinition = $container
-            ->register('bar')
-            ->setPublic(true)
-        ;
-        $barExtendedDefinition = $container
-            ->register('bar.extended')
-            ->setPublic(true)
-            ->setDecoratedService('bar', 'bar.yoo')
-        ;
-
-        $this->process($container);
-
-        $this->assertEquals('foo.extended', $container->getAlias('foo'));
-        $this->assertFalse($container->getAlias('foo')->isPublic());
-
-        $this->assertEquals('bar.extended', $container->getAlias('bar'));
-        $this->assertTrue($container->getAlias('bar')->isPublic());
-
-        $this->assertSame($fooDefinition, $container->getDefinition('foo.extended.inner'));
-        $this->assertFalse($container->getDefinition('foo.extended.inner')->isPublic());
-
-        $this->assertSame($barDefinition, $container->getDefinition('bar.yoo'));
-        $this->assertFalse($container->getDefinition('bar.yoo')->isPublic());
-
-        $this->assertNull($fooExtendedDefinition->getDecoratedService());
-        $this->assertNull($barExtendedDefinition->getDecoratedService());
-    }
-
-    public function testProcessWithAlias()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(true)
-        ;
-        $container->setAlias('foo.alias', new Alias('foo', false));
-        $fooExtendedDefinition = $container
-            ->register('foo.extended')
-            ->setPublic(true)
-            ->setDecoratedService('foo.alias')
-        ;
-
-        $this->process($container);
-
-        $this->assertEquals('foo.extended', $container->getAlias('foo.alias'));
-        $this->assertFalse($container->getAlias('foo.alias')->isPublic());
-
-        $this->assertEquals('foo', $container->getAlias('foo.extended.inner'));
-        $this->assertFalse($container->getAlias('foo.extended.inner')->isPublic());
-
-        $this->assertNull($fooExtendedDefinition->getDecoratedService());
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $repeatedPass = new DecoratorServicePass();
-        $repeatedPass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/InlineServiceDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
deleted file mode 100644
index 590ca4c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Scope;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
-use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
-use Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class InlineServiceDefinitionsPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('inlinable.service')
-            ->setPublic(false)
-        ;
-
-        $container
-            ->register('service')
-            ->setArguments(array(new Reference('inlinable.service')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $container->getDefinition('service')->getArguments();
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $arguments[0]);
-        $this->assertSame($container->getDefinition('inlinable.service'), $arguments[0]);
-    }
-
-    public function testProcessDoesNotInlineWhenAliasedServiceIsNotOfPrototypeScope()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(false)
-        ;
-        $container->setAlias('moo', 'foo');
-
-        $container
-            ->register('service')
-            ->setArguments(array($ref = new Reference('foo')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $container->getDefinition('service')->getArguments();
-        $this->assertSame($ref, $arguments[0]);
-    }
-
-    public function testProcessDoesInlineServiceOfPrototypeScope()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setScope('prototype')
-        ;
-        $container
-            ->register('bar')
-            ->setPublic(false)
-            ->setScope('prototype')
-        ;
-        $container->setAlias('moo', 'bar');
-
-        $container
-            ->register('service')
-            ->setArguments(array(new Reference('foo'), $ref = new Reference('moo'), new Reference('bar')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $container->getDefinition('service')->getArguments();
-        $this->assertEquals($container->getDefinition('foo'), $arguments[0]);
-        $this->assertNotSame($container->getDefinition('foo'), $arguments[0]);
-        $this->assertSame($ref, $arguments[1]);
-        $this->assertEquals($container->getDefinition('bar'), $arguments[2]);
-        $this->assertNotSame($container->getDefinition('bar'), $arguments[2]);
-    }
-
-    public function testProcessInlinesIfMultipleReferencesButAllFromTheSameDefinition()
-    {
-        $container = new ContainerBuilder();
-
-        $a = $container->register('a')->setPublic(false);
-        $b = $container
-            ->register('b')
-            ->addArgument(new Reference('a'))
-            ->addArgument(new Definition(null, array(new Reference('a'))))
-        ;
-
-        $this->process($container);
-
-        $arguments = $b->getArguments();
-        $this->assertSame($a, $arguments[0]);
-
-        $inlinedArguments = $arguments[1]->getArguments();
-        $this->assertSame($a, $inlinedArguments[0]);
-    }
-
-    public function testProcessInlinesPrivateFactoryReference()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('a')->setPublic(false);
-        $b = $container
-            ->register('b')
-            ->setPublic(false)
-            ->setFactory(array(new Reference('a'), 'a'))
-        ;
-
-        $container
-            ->register('foo')
-            ->setArguments(array(
-                $ref = new Reference('b'),
-            ));
-
-        $this->process($container);
-
-        $inlinedArguments = $container->getDefinition('foo')->getArguments();
-        $this->assertSame($b, $inlinedArguments[0]);
-    }
-
-    public function testProcessDoesNotInlinePrivateFactoryIfReferencedMultipleTimesWithinTheSameDefinition()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('a')
-        ;
-        $container
-            ->register('b')
-            ->setPublic(false)
-            ->setFactory(array(new Reference('a'), 'a'))
-        ;
-
-        $container
-            ->register('foo')
-            ->setArguments(array(
-                    $ref1 = new Reference('b'),
-                    $ref2 = new Reference('b'),
-                ))
-        ;
-        $this->process($container);
-
-        $args = $container->getDefinition('foo')->getArguments();
-        $this->assertSame($ref1, $args[0]);
-        $this->assertSame($ref2, $args[1]);
-    }
-
-    public function testProcessDoesNotInlineReferenceWhenUsedByInlineFactory()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('a')
-        ;
-        $container
-            ->register('b')
-            ->setPublic(false)
-            ->setFactory(array(new Reference('a'), 'a'))
-        ;
-
-        $inlineFactory = new Definition();
-        $inlineFactory->setPublic(false);
-        $inlineFactory->setFactory(array(new Reference('b'), 'b'));
-
-        $container
-            ->register('foo')
-            ->setArguments(array(
-                    $ref = new Reference('b'),
-                    $inlineFactory,
-                ))
-        ;
-        $this->process($container);
-
-        $args = $container->getDefinition('foo')->getArguments();
-        $this->assertSame($ref, $args[0]);
-    }
-
-    public function testProcessInlinesOnlyIfSameScope()
-    {
-        $container = new ContainerBuilder();
-
-        $container->addScope(new Scope('foo'));
-        $a = $container->register('a')->setPublic(false)->setScope('foo');
-        $b = $container->register('b')->addArgument(new Reference('a'));
-
-        $this->process($container);
-        $arguments = $b->getArguments();
-        $this->assertEquals(new Reference('a'), $arguments[0]);
-        $this->assertTrue($container->hasDefinition('a'));
-    }
-
-    public function testProcessDoesNotInlineWhenServiceIsPrivateButLazy()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(false)
-            ->setLazy(true)
-        ;
-
-        $container
-            ->register('service')
-            ->setArguments(array($ref = new Reference('foo')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $container->getDefinition('service')->getArguments();
-        $this->assertSame($ref, $arguments[0]);
-    }
-
-    public function testProcessDoesNotInlineWhenServiceReferencesItself()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(false)
-            ->addMethodCall('foo', array($ref = new Reference('foo')))
-        ;
-
-        $this->process($container);
-
-        $calls = $container->getDefinition('foo')->getMethodCalls();
-        $this->assertSame($ref, $calls[0][1][0]);
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $repeatedPass = new RepeatedPass(array(new AnalyzeServiceReferencesPass(), new InlineServiceDefinitionsPass()));
-        $repeatedPass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/IntegrationTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/IntegrationTest.php
deleted file mode 100644
index c447940..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/IntegrationTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * This class tests the integration of the different compiler passes.
- */
-class IntegrationTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * This tests that dependencies are correctly processed.
-     *
-     * We're checking that:
-     *
-     *   * A is public, B/C are private
-     *   * A -> C
-     *   * B -> C
-     */
-    public function testProcessRemovesAndInlinesRecursively()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-
-        $a = $container
-            ->register('a', '\stdClass')
-            ->addArgument(new Reference('c'))
-        ;
-
-        $b = $container
-            ->register('b', '\stdClass')
-            ->addArgument(new Reference('c'))
-            ->setPublic(false)
-        ;
-
-        $c = $container
-            ->register('c', '\stdClass')
-            ->setPublic(false)
-        ;
-
-        $container->compile();
-
-        $this->assertTrue($container->hasDefinition('a'));
-        $arguments = $a->getArguments();
-        $this->assertSame($c, $arguments[0]);
-        $this->assertFalse($container->hasDefinition('b'));
-        $this->assertFalse($container->hasDefinition('c'));
-    }
-
-    public function testProcessInlinesReferencesToAliases()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-
-        $a = $container
-            ->register('a', '\stdClass')
-            ->addArgument(new Reference('b'))
-        ;
-
-        $container->setAlias('b', new Alias('c', false));
-
-        $c = $container
-            ->register('c', '\stdClass')
-            ->setPublic(false)
-        ;
-
-        $container->compile();
-
-        $this->assertTrue($container->hasDefinition('a'));
-        $arguments = $a->getArguments();
-        $this->assertSame($c, $arguments[0]);
-        $this->assertFalse($container->hasAlias('b'));
-        $this->assertFalse($container->hasDefinition('c'));
-    }
-
-    public function testProcessInlinesWhenThereAreMultipleReferencesButFromTheSameDefinition()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-
-        $container
-            ->register('a', '\stdClass')
-            ->addArgument(new Reference('b'))
-            ->addMethodCall('setC', array(new Reference('c')))
-        ;
-
-        $container
-            ->register('b', '\stdClass')
-            ->addArgument(new Reference('c'))
-            ->setPublic(false)
-        ;
-
-        $container
-            ->register('c', '\stdClass')
-            ->setPublic(false)
-        ;
-
-        $container->compile();
-
-        $this->assertTrue($container->hasDefinition('a'));
-        $this->assertFalse($container->hasDefinition('b'));
-        $this->assertFalse($container->hasDefinition('c'), 'Service C was not inlined.');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/LegacyResolveParameterPlaceHoldersPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/LegacyResolveParameterPlaceHoldersPassTest.php
deleted file mode 100644
index e730a1a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/LegacyResolveParameterPlaceHoldersPassTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\ResolveParameterPlaceHoldersPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * @group legacy
- */
-class LegacyResolveParameterPlaceHoldersPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testFactoryClassParametersShouldBeResolved()
-    {
-        $compilerPass = new ResolveParameterPlaceHoldersPass();
-
-        $container = new ContainerBuilder();
-        $container->setParameter('foo.factory.class', 'FooFactory');
-        $fooDefinition = $container->register('foo', '%foo.factory.class%');
-        $fooDefinition->setFactoryClass('%foo.factory.class%');
-        $compilerPass->process($container);
-        $fooDefinition = $container->getDefinition('foo');
-
-        $this->assertSame('FooFactory', $fooDefinition->getFactoryClass());
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/MergeExtensionConfigurationPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/MergeExtensionConfigurationPassTest.php
deleted file mode 100644
index 1f91b37..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/MergeExtensionConfigurationPassTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-class MergeExtensionConfigurationPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExpressionLanguageProviderForwarding()
-    {
-        if (true !== class_exists('Symfony\\Component\\ExpressionLanguage\\ExpressionLanguage')) {
-            $this->markTestSkipped('The ExpressionLanguage component isn\'t available!');
-        }
-
-        $tmpProviders = array();
-
-        $extension = $this->getMock('Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface');
-        $extension->expects($this->any())
-            ->method('getXsdValidationBasePath')
-            ->will($this->returnValue(false));
-        $extension->expects($this->any())
-            ->method('getNamespace')
-            ->will($this->returnValue('http://example.org/schema/dic/foo'));
-        $extension->expects($this->any())
-            ->method('getAlias')
-            ->will($this->returnValue('foo'));
-        $extension->expects($this->once())
-            ->method('load')
-            ->will($this->returnCallback(function (array $config, ContainerBuilder $container) use (&$tmpProviders) {
-                $tmpProviders = $container->getExpressionLanguageProviders();
-            }));
-
-        $provider = $this->getMock('Symfony\\Component\\ExpressionLanguage\\ExpressionFunctionProviderInterface');
-        $container = new ContainerBuilder(new ParameterBag());
-        $container->registerExtension($extension);
-        $container->prependExtensionConfig('foo', array('bar' => true ));
-        $container->addExpressionLanguageProvider($provider);
-
-        $pass = new MergeExtensionConfigurationPass();
-        $pass->process($container);
-
-        $this->assertEquals(array($provider), $tmpProviders);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
deleted file mode 100644
index 82149eb..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
-use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
-use Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class RemoveUnusedDefinitionsPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(false)
-        ;
-        $container
-            ->register('bar')
-            ->setPublic(false)
-        ;
-        $container
-            ->register('moo')
-            ->setArguments(array(new Reference('bar')))
-        ;
-
-        $this->process($container);
-
-        $this->assertFalse($container->hasDefinition('foo'));
-        $this->assertTrue($container->hasDefinition('bar'));
-        $this->assertTrue($container->hasDefinition('moo'));
-    }
-
-    public function testProcessRemovesUnusedDefinitionsRecursively()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(false)
-        ;
-        $container
-            ->register('bar')
-            ->setArguments(array(new Reference('foo')))
-            ->setPublic(false)
-        ;
-
-        $this->process($container);
-
-        $this->assertFalse($container->hasDefinition('foo'));
-        $this->assertFalse($container->hasDefinition('bar'));
-    }
-
-    public function testProcessWorksWithInlinedDefinitions()
-    {
-        $container = new ContainerBuilder();
-        $container
-            ->register('foo')
-            ->setPublic(false)
-        ;
-        $container
-            ->register('bar')
-            ->setArguments(array(new Definition(null, array(new Reference('foo')))))
-        ;
-
-        $this->process($container);
-
-        $this->assertTrue($container->hasDefinition('foo'));
-        $this->assertTrue($container->hasDefinition('bar'));
-    }
-
-    public function testProcessWontRemovePrivateFactory()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('foo', 'stdClass')
-            ->setFactory(array('stdClass', 'getInstance'))
-            ->setPublic(false);
-
-        $container
-            ->register('bar', 'stdClass')
-            ->setFactory(array(new Reference('foo'), 'getInstance'))
-            ->setPublic(false);
-
-        $container
-            ->register('foobar')
-            ->addArgument(new Reference('bar'));
-
-        $this->process($container);
-
-        $this->assertTrue($container->hasDefinition('foo'));
-        $this->assertTrue($container->hasDefinition('bar'));
-        $this->assertTrue($container->hasDefinition('foobar'));
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $repeatedPass = new RepeatedPass(array(new AnalyzeServiceReferencesPass(), new RemoveUnusedDefinitionsPass()));
-        $repeatedPass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
deleted file mode 100644
index e4d2240..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('a', '\stdClass');
-
-        $bDefinition = new Definition('\stdClass');
-        $bDefinition->setPublic(false);
-        $container->setDefinition('b', $bDefinition);
-
-        $container->setAlias('a_alias', 'a');
-        $container->setAlias('b_alias', 'b');
-
-        $this->process($container);
-
-        $this->assertTrue($container->has('a'), '->process() does nothing to public definitions.');
-        $this->assertTrue($container->hasAlias('a_alias'));
-        $this->assertFalse($container->has('b'), '->process() removes non-public definitions.');
-        $this->assertTrue(
-            $container->has('b_alias') && !$container->hasAlias('b_alias'),
-            '->process() replaces alias to actual.'
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testProcessWithInvalidAlias()
-    {
-        $container = new ContainerBuilder();
-        $container->setAlias('a_alias', 'a');
-        $this->process($container);
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new ReplaceAliasByActualDefinitionPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php
deleted file mode 100644
index 845edd2..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveDefinitionTemplatesPassTest.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\DefinitionDecorator;
-use Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class ResolveDefinitionTemplatesPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container->register('parent', 'foo')->setArguments(array('moo', 'b'))->setProperty('foo', 'moo');
-        $container->setDefinition('child', new DefinitionDecorator('parent'))
-            ->replaceArgument(0, 'a')
-            ->setProperty('foo', 'bar')
-            ->setClass('bar')
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child');
-        $this->assertNotInstanceOf('Symfony\Component\DependencyInjection\DefinitionDecorator', $def);
-        $this->assertEquals('bar', $def->getClass());
-        $this->assertEquals(array('a', 'b'), $def->getArguments());
-        $this->assertEquals(array('foo' => 'bar'), $def->getProperties());
-    }
-
-    public function testProcessAppendsMethodCallsAlways()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('parent')
-            ->addMethodCall('foo', array('bar'))
-        ;
-
-        $container
-            ->setDefinition('child', new DefinitionDecorator('parent'))
-            ->addMethodCall('bar', array('foo'))
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child');
-        $this->assertEquals(array(
-            array('foo', array('bar')),
-            array('bar', array('foo')),
-        ), $def->getMethodCalls());
-    }
-
-    public function testProcessDoesNotCopyAbstract()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('parent')
-            ->setAbstract(true)
-        ;
-
-        $container
-            ->setDefinition('child', new DefinitionDecorator('parent'))
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child');
-        $this->assertFalse($def->isAbstract());
-    }
-
-    public function testProcessDoesNotCopyScope()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('parent')
-            ->setScope('foo')
-        ;
-
-        $container
-            ->setDefinition('child', new DefinitionDecorator('parent'))
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child');
-        $this->assertEquals(ContainerInterface::SCOPE_CONTAINER, $def->getScope());
-    }
-
-    public function testProcessDoesNotCopyTags()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('parent')
-            ->addTag('foo')
-        ;
-
-        $container
-            ->setDefinition('child', new DefinitionDecorator('parent'))
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child');
-        $this->assertEquals(array(), $def->getTags());
-    }
-
-    public function testProcessDoesNotCopyDecoratedService()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('parent')
-            ->setDecoratedService('foo')
-        ;
-
-        $container
-            ->setDefinition('child', new DefinitionDecorator('parent'))
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child');
-        $this->assertNull($def->getDecoratedService());
-    }
-
-    public function testProcessHandlesMultipleInheritance()
-    {
-        $container = new ContainerBuilder();
-
-        $container
-            ->register('parent', 'foo')
-            ->setArguments(array('foo', 'bar', 'c'))
-        ;
-
-        $container
-            ->setDefinition('child2', new DefinitionDecorator('child1'))
-            ->replaceArgument(1, 'b')
-        ;
-
-        $container
-            ->setDefinition('child1', new DefinitionDecorator('parent'))
-            ->replaceArgument(0, 'a')
-        ;
-
-        $this->process($container);
-
-        $def = $container->getDefinition('child2');
-        $this->assertEquals(array('a', 'b', 'c'), $def->getArguments());
-        $this->assertEquals('foo', $def->getClass());
-    }
-
-    public function testSetLazyOnServiceHasParent()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('parent', 'stdClass');
-
-        $container->setDefinition('child1', new DefinitionDecorator('parent'))
-            ->setLazy(true)
-        ;
-
-        $this->process($container);
-
-        $this->assertTrue($container->getDefinition('child1')->isLazy());
-    }
-
-    public function testSetLazyOnServiceIsParent()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('parent', 'stdClass')
-            ->setLazy(true)
-        ;
-
-        $container->setDefinition('child1', new DefinitionDecorator('parent'));
-
-        $this->process($container);
-
-        $this->assertTrue($container->getDefinition('child1')->isLazy());
-    }
-
-    public function testSetDecoratedServiceOnServiceHasParent()
-    {
-        $container = new ContainerBuilder();
-
-        $container->register('parent', 'stdClass');
-
-        $container->setDefinition('child1', new DefinitionDecorator('parent'))
-            ->setDecoratedService('foo', 'foo_inner')
-        ;
-
-        $this->process($container);
-
-        $this->assertEquals(array('foo', 'foo_inner'), $container->getDefinition('child1')->getDecoratedService());
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new ResolveDefinitionTemplatesPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveInvalidReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveInvalidReferencesPassTest.php
deleted file mode 100644
index 7205886..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveInvalidReferencesPassTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Compiler\ResolveInvalidReferencesPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class ResolveInvalidReferencesPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $def = $container
-            ->register('foo')
-            ->setArguments(array(new Reference('bar', ContainerInterface::NULL_ON_INVALID_REFERENCE)))
-            ->addMethodCall('foo', array(new Reference('moo', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
-        ;
-
-        $this->process($container);
-
-        $arguments = $def->getArguments();
-        $this->assertNull($arguments[0]);
-        $this->assertCount(0, $def->getMethodCalls());
-    }
-
-    public function testProcessIgnoreNonExistentServices()
-    {
-        $container = new ContainerBuilder();
-        $def = $container
-            ->register('foo')
-            ->setArguments(array(new Reference('bar')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $def->getArguments();
-        $this->assertEquals('bar', (string) $arguments[0]);
-    }
-
-    public function testProcessRemovesPropertiesOnInvalid()
-    {
-        $container = new ContainerBuilder();
-        $def = $container
-            ->register('foo')
-            ->setProperty('foo', new Reference('bar', ContainerInterface::IGNORE_ON_INVALID_REFERENCE))
-        ;
-
-        $this->process($container);
-
-        $this->assertEquals(array(), $def->getProperties());
-    }
-
-    public function testStrictFlagIsPreserved()
-    {
-        $container = new ContainerBuilder();
-        $container->register('bar');
-        $def = $container
-            ->register('foo')
-            ->addArgument(new Reference('bar', ContainerInterface::NULL_ON_INVALID_REFERENCE, false))
-        ;
-
-        $this->process($container);
-
-        $this->assertFalse($def->getArgument(0)->isStrict());
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new ResolveInvalidReferencesPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveParameterPlaceHoldersPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveParameterPlaceHoldersPassTest.php
deleted file mode 100644
index 1f604c2..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveParameterPlaceHoldersPassTest.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\ResolveParameterPlaceHoldersPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class ResolveParameterPlaceHoldersPassTest extends \PHPUnit_Framework_TestCase
-{
-    private $compilerPass;
-    private $container;
-    private $fooDefinition;
-
-    protected function setUp()
-    {
-        $this->compilerPass = new ResolveParameterPlaceHoldersPass();
-        $this->container = $this->createContainerBuilder();
-        $this->compilerPass->process($this->container);
-        $this->fooDefinition = $this->container->getDefinition('foo');
-    }
-
-    public function testClassParametersShouldBeResolved()
-    {
-        $this->assertSame('Foo', $this->fooDefinition->getClass());
-    }
-
-    public function testFactoryParametersShouldBeResolved()
-    {
-        $this->assertSame(array('FooFactory', 'getFoo'), $this->fooDefinition->getFactory());
-    }
-
-    public function testArgumentParametersShouldBeResolved()
-    {
-        $this->assertSame(array('bar', 'baz'), $this->fooDefinition->getArguments());
-    }
-
-    public function testMethodCallParametersShouldBeResolved()
-    {
-        $this->assertSame(array(array('foobar', array('bar', 'baz'))), $this->fooDefinition->getMethodCalls());
-    }
-
-    public function testPropertyParametersShouldBeResolved()
-    {
-        $this->assertSame(array('bar' => 'baz'), $this->fooDefinition->getProperties());
-    }
-
-    public function testFileParametersShouldBeResolved()
-    {
-        $this->assertSame('foo.php', $this->fooDefinition->getFile());
-    }
-
-    public function testAliasParametersShouldBeResolved()
-    {
-        $this->assertSame('foo', $this->container->getAlias('bar')->__toString());
-    }
-
-    private function createContainerBuilder()
-    {
-        $containerBuilder = new ContainerBuilder();
-
-        $containerBuilder->setParameter('foo.class', 'Foo');
-        $containerBuilder->setParameter('foo.factory.class', 'FooFactory');
-        $containerBuilder->setParameter('foo.arg1', 'bar');
-        $containerBuilder->setParameter('foo.arg2', 'baz');
-        $containerBuilder->setParameter('foo.method', 'foobar');
-        $containerBuilder->setParameter('foo.property.name', 'bar');
-        $containerBuilder->setParameter('foo.property.value', 'baz');
-        $containerBuilder->setParameter('foo.file', 'foo.php');
-        $containerBuilder->setParameter('alias.id', 'bar');
-
-        $fooDefinition = $containerBuilder->register('foo', '%foo.class%');
-        $fooDefinition->setFactory(array('%foo.factory.class%', 'getFoo'));
-        $fooDefinition->setArguments(array('%foo.arg1%', '%foo.arg2%'));
-        $fooDefinition->addMethodCall('%foo.method%', array('%foo.arg1%', '%foo.arg2%'));
-        $fooDefinition->setProperty('%foo.property.name%', '%foo.property.value%');
-        $fooDefinition->setFile('%foo.file%');
-
-        $containerBuilder->setAlias('%alias.id%', 'foo');
-
-        return $containerBuilder;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php b/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php
deleted file mode 100644
index 6fdc233..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Compiler/ResolveReferencesToAliasesPassTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Compiler;
-
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Compiler\ResolveReferencesToAliasesPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-class ResolveReferencesToAliasesPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testProcess()
-    {
-        $container = new ContainerBuilder();
-        $container->setAlias('bar', 'foo');
-        $def = $container
-            ->register('moo')
-            ->setArguments(array(new Reference('bar')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $def->getArguments();
-        $this->assertEquals('foo', (string) $arguments[0]);
-    }
-
-    public function testProcessRecursively()
-    {
-        $container = new ContainerBuilder();
-        $container->setAlias('bar', 'foo');
-        $container->setAlias('moo', 'bar');
-        $def = $container
-            ->register('foobar')
-            ->setArguments(array(new Reference('moo')))
-        ;
-
-        $this->process($container);
-
-        $arguments = $def->getArguments();
-        $this->assertEquals('foo', (string) $arguments[0]);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testAliasCircularReference()
-    {
-        $container = new ContainerBuilder();
-        $container->setAlias('bar', 'foo');
-        $container->setAlias('foo', 'bar');
-        $this->process($container);
-    }
-
-    protected function process(ContainerBuilder $container)
-    {
-        $pass = new ResolveReferencesToAliasesPass();
-        $pass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php
deleted file mode 100644
index 8155e0b..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/ContainerBuilderTest.php
+++ /dev/null
@@ -1,858 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-require_once __DIR__.'/Fixtures/includes/classes.php';
-require_once __DIR__.'/Fixtures/includes/ProjectExtension.php';
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Scope;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-class ContainerBuilderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::setDefinitions
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getDefinitions
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::setDefinition
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getDefinition
-     */
-    public function testDefinitions()
-    {
-        $builder = new ContainerBuilder();
-        $definitions = array(
-            'foo' => new Definition('Bar\FooClass'),
-            'bar' => new Definition('BarClass'),
-        );
-        $builder->setDefinitions($definitions);
-        $this->assertEquals($definitions, $builder->getDefinitions(), '->setDefinitions() sets the service definitions');
-        $this->assertTrue($builder->hasDefinition('foo'), '->hasDefinition() returns true if a service definition exists');
-        $this->assertFalse($builder->hasDefinition('foobar'), '->hasDefinition() returns false if a service definition does not exist');
-
-        $builder->setDefinition('foobar', $foo = new Definition('FooBarClass'));
-        $this->assertEquals($foo, $builder->getDefinition('foobar'), '->getDefinition() returns a service definition if defined');
-        $this->assertTrue($builder->setDefinition('foobar', $foo = new Definition('FooBarClass')) === $foo, '->setDefinition() implements a fluid interface by returning the service reference');
-
-        $builder->addDefinitions($defs = array('foobar' => new Definition('FooBarClass')));
-        $this->assertEquals(array_merge($definitions, $defs), $builder->getDefinitions(), '->addDefinitions() adds the service definitions');
-
-        try {
-            $builder->getDefinition('baz');
-            $this->fail('->getDefinition() throws an InvalidArgumentException if the service definition does not exist');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('The service definition "baz" does not exist.', $e->getMessage(), '->getDefinition() throws an InvalidArgumentException if the service definition does not exist');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::register
-     */
-    public function testRegister()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'Bar\FooClass');
-        $this->assertTrue($builder->hasDefinition('foo'), '->register() registers a new service definition');
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $builder->getDefinition('foo'), '->register() returns the newly created Definition instance');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::has
-     */
-    public function testHas()
-    {
-        $builder = new ContainerBuilder();
-        $this->assertFalse($builder->has('foo'), '->has() returns false if the service does not exist');
-        $builder->register('foo', 'Bar\FooClass');
-        $this->assertTrue($builder->has('foo'), '->has() returns true if a service definition exists');
-        $builder->set('bar', new \stdClass());
-        $this->assertTrue($builder->has('bar'), '->has() returns true if a service exists');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::get
-     */
-    public function testGet()
-    {
-        $builder = new ContainerBuilder();
-        try {
-            $builder->get('foo');
-            $this->fail('->get() throws an InvalidArgumentException if the service does not exist');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('The service definition "foo" does not exist.', $e->getMessage(), '->get() throws an InvalidArgumentException if the service does not exist');
-        }
-
-        $this->assertNull($builder->get('foo', ContainerInterface::NULL_ON_INVALID_REFERENCE), '->get() returns null if the service does not exist and NULL_ON_INVALID_REFERENCE is passed as a second argument');
-
-        $builder->register('foo', 'stdClass');
-        $this->assertInternalType('object', $builder->get('foo'), '->get() returns the service definition associated with the id');
-        $builder->set('bar', $bar = new \stdClass());
-        $this->assertEquals($bar, $builder->get('bar'), '->get() returns the service associated with the id');
-        $builder->register('bar', 'stdClass');
-        $this->assertEquals($bar, $builder->get('bar'), '->get() returns the service associated with the id even if a definition has been defined');
-
-        $builder->register('baz', 'stdClass')->setArguments(array(new Reference('baz')));
-        try {
-            @$builder->get('baz');
-            $this->fail('->get() throws a ServiceCircularReferenceException if the service has a circular reference to itself');
-        } catch (\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException $e) {
-            $this->assertEquals('Circular reference detected for service "baz", path: "baz".', $e->getMessage(), '->get() throws a LogicException if the service has a circular reference to itself');
-        }
-
-        $builder->register('foobar', 'stdClass')->setScope('container');
-        $this->assertTrue($builder->get('bar') === $builder->get('bar'), '->get() always returns the same instance if the service is shared');
-    }
-
-    /**
-     * @covers                   \Symfony\Component\DependencyInjection\ContainerBuilder::get
-     * @expectedException        \Symfony\Component\DependencyInjection\Exception\RuntimeException
-     * @expectedExceptionMessage You have requested a synthetic service ("foo"). The DIC does not know how to construct this service.
-     */
-    public function testGetUnsetLoadingServiceWhenCreateServiceThrowsAnException()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'stdClass')->setSynthetic(true);
-
-        // we expect a RuntimeException here as foo is synthetic
-        try {
-            $builder->get('foo');
-        } catch (RuntimeException $e) {
-        }
-
-        // we must also have the same RuntimeException here
-        $builder->get('foo');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::get
-     */
-    public function testGetReturnsNullOnInactiveScope()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'stdClass')->setScope('request');
-
-        $this->assertNull($builder->get('foo', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::get
-     */
-    public function testGetReturnsNullOnInactiveScopeWhenServiceIsCreatedByAMethod()
-    {
-        $builder = new ProjectContainer();
-
-        $this->assertNull($builder->get('foobaz', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getServiceIds
-     */
-    public function testGetServiceIds()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'stdClass');
-        $builder->bar = $bar = new \stdClass();
-        $builder->register('bar', 'stdClass');
-        $this->assertEquals(array('foo', 'bar', 'service_container'), $builder->getServiceIds(), '->getServiceIds() returns all defined service ids');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::setAlias
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::hasAlias
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getAlias
-     */
-    public function testAliases()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'stdClass');
-        $builder->setAlias('bar', 'foo');
-        $this->assertTrue($builder->hasAlias('bar'), '->hasAlias() returns true if the alias exists');
-        $this->assertFalse($builder->hasAlias('foobar'), '->hasAlias() returns false if the alias does not exist');
-        $this->assertEquals('foo', (string) $builder->getAlias('bar'), '->getAlias() returns the aliased service');
-        $this->assertTrue($builder->has('bar'), '->setAlias() defines a new service');
-        $this->assertTrue($builder->get('bar') === $builder->get('foo'), '->setAlias() creates a service that is an alias to another one');
-
-        try {
-            $builder->setAlias('foobar', 'foobar');
-            $this->fail('->setAlias() throws an InvalidArgumentException if the alias references itself');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('An alias can not reference itself, got a circular reference on "foobar".', $e->getMessage(), '->setAlias() throws an InvalidArgumentException if the alias references itself');
-        }
-
-        try {
-            $builder->getAlias('foobar');
-            $this->fail('->getAlias() throws an InvalidArgumentException if the alias does not exist');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('The service alias "foobar" does not exist.', $e->getMessage(), '->getAlias() throws an InvalidArgumentException if the alias does not exist');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getAliases
-     */
-    public function testGetAliases()
-    {
-        $builder = new ContainerBuilder();
-        $builder->setAlias('bar', 'foo');
-        $builder->setAlias('foobar', 'foo');
-        $builder->setAlias('moo', new Alias('foo', false));
-
-        $aliases = $builder->getAliases();
-        $this->assertEquals('foo', (string) $aliases['bar']);
-        $this->assertTrue($aliases['bar']->isPublic());
-        $this->assertEquals('foo', (string) $aliases['foobar']);
-        $this->assertEquals('foo', (string) $aliases['moo']);
-        $this->assertFalse($aliases['moo']->isPublic());
-
-        $builder->register('bar', 'stdClass');
-        $this->assertFalse($builder->hasAlias('bar'));
-
-        $builder->set('foobar', 'stdClass');
-        $builder->set('moo', 'stdClass');
-        $this->assertCount(0, $builder->getAliases(), '->getAliases() does not return aliased services that have been overridden');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::setAliases
-     */
-    public function testSetAliases()
-    {
-        $builder = new ContainerBuilder();
-        $builder->setAliases(array('bar' => 'foo', 'foobar' => 'foo'));
-
-        $aliases = $builder->getAliases();
-        $this->assertTrue(isset($aliases['bar']));
-        $this->assertTrue(isset($aliases['foobar']));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::addAliases
-     */
-    public function testAddAliases()
-    {
-        $builder = new ContainerBuilder();
-        $builder->setAliases(array('bar' => 'foo'));
-        $builder->addAliases(array('foobar' => 'foo'));
-
-        $aliases = $builder->getAliases();
-        $this->assertTrue(isset($aliases['bar']));
-        $this->assertTrue(isset($aliases['foobar']));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::addCompilerPass
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getCompilerPassConfig
-     */
-    public function testAddGetCompilerPass()
-    {
-        $builder = new ContainerBuilder();
-        $builder->setResourceTracking(false);
-        $builderCompilerPasses = $builder->getCompiler()->getPassConfig()->getPasses();
-        $builder->addCompilerPass($this->getMock('Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface'));
-
-        $this->assertCount(count($builder->getCompiler()->getPassConfig()->getPasses()) - 1, $builderCompilerPasses);
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateService()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo1', 'Bar\FooClass')->setFile(__DIR__.'/Fixtures/includes/foo.php');
-        $this->assertInstanceOf('\Bar\FooClass', $builder->get('foo1'), '->createService() requires the file defined by the service definition');
-        $builder->register('foo2', 'Bar\FooClass')->setFile(__DIR__.'/Fixtures/includes/%file%.php');
-        $builder->setParameter('file', 'foo');
-        $this->assertInstanceOf('\Bar\FooClass', $builder->get('foo2'), '->createService() replaces parameters in the file provided by the service definition');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateProxyWithRealServiceInstantiator()
-    {
-        $builder = new ContainerBuilder();
-
-        $builder->register('foo1', 'Bar\FooClass')->setFile(__DIR__.'/Fixtures/includes/foo.php');
-        $builder->getDefinition('foo1')->setLazy(true);
-
-        $foo1 = $builder->get('foo1');
-
-        $this->assertSame($foo1, $builder->get('foo1'), 'The same proxy is retrieved on multiple subsequent calls');
-        $this->assertSame('Bar\FooClass', get_class($foo1));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceClass()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo1', '%class%');
-        $builder->setParameter('class', 'stdClass');
-        $this->assertInstanceOf('\stdClass', $builder->get('foo1'), '->createService() replaces parameters in the class provided by the service definition');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceArguments()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('bar', 'stdClass');
-        $builder->register('foo1', 'Bar\FooClass')->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar'), '%%unescape_it%%'));
-        $builder->setParameter('value', 'bar');
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'foo', $builder->get('bar'), '%unescape_it%'), $builder->get('foo1')->arguments, '->createService() replaces parameters and service references in the arguments provided by the service definition');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceFactory()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'Bar\FooClass')->setFactory('Bar\FooClass::getInstance');
-        $builder->register('qux', 'Bar\FooClass')->setFactory(array('Bar\FooClass', 'getInstance'));
-        $builder->register('bar', 'Bar\FooClass')->setFactory(array(new Definition('Bar\FooClass'), 'getInstance'));
-        $builder->register('baz', 'Bar\FooClass')->setFactory(array(new Reference('bar'), 'getInstance'));
-
-        $this->assertTrue($builder->get('foo')->called, '->createService() calls the factory method to create the service instance');
-        $this->assertTrue($builder->get('qux')->called, '->createService() calls the factory method to create the service instance');
-        $this->assertTrue($builder->get('bar')->called, '->createService() uses anonymous service as factory');
-        $this->assertTrue($builder->get('baz')->called, '->createService() uses another service as factory');
-    }
-
-    public function testLegacyCreateServiceFactory()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('bar', 'Bar\FooClass');
-        $builder
-            ->register('foo1', 'Bar\FooClass')
-            ->setFactoryClass('%foo_class%')
-            ->setFactoryMethod('getInstance')
-            ->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar')))
-        ;
-        $builder->setParameter('value', 'bar');
-        $builder->setParameter('foo_class', 'Bar\FooClass');
-        $this->assertTrue($builder->get('foo1')->called, '->createService() calls the factory method to create the service instance');
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'foo', $builder->get('bar')), $builder->get('foo1')->arguments, '->createService() passes the arguments to the factory method');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testLegacyCreateServiceFactoryService()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo_service', 'Bar\FooClass');
-        $builder
-            ->register('foo', 'Bar\FooClass')
-            ->setFactoryService('%foo_service%')
-            ->setFactoryMethod('getInstance')
-        ;
-        $builder->setParameter('foo_service', 'foo_service');
-        $this->assertTrue($builder->get('foo')->called, '->createService() calls the factory method to create the service instance');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceMethodCalls()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('bar', 'stdClass');
-        $builder->register('foo1', 'Bar\FooClass')->addMethodCall('setBar', array(array('%value%', new Reference('bar'))));
-        $builder->setParameter('value', 'bar');
-        $this->assertEquals(array('bar', $builder->get('bar')), $builder->get('foo1')->bar, '->createService() replaces the values in the method calls arguments');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceConfigurator()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo1', 'Bar\FooClass')->setConfigurator('sc_configure');
-        $this->assertTrue($builder->get('foo1')->configured, '->createService() calls the configurator');
-
-        $builder->register('foo2', 'Bar\FooClass')->setConfigurator(array('%class%', 'configureStatic'));
-        $builder->setParameter('class', 'BazClass');
-        $this->assertTrue($builder->get('foo2')->configured, '->createService() calls the configurator');
-
-        $builder->register('baz', 'BazClass');
-        $builder->register('foo3', 'Bar\FooClass')->setConfigurator(array(new Reference('baz'), 'configure'));
-        $this->assertTrue($builder->get('foo3')->configured, '->createService() calls the configurator');
-
-        $builder->register('foo4', 'Bar\FooClass')->setConfigurator(array($builder->getDefinition('baz'), 'configure'));
-        $this->assertTrue($builder->get('foo4')->configured, '->createService() calls the configurator');
-
-        $builder->register('foo5', 'Bar\FooClass')->setConfigurator('foo');
-        try {
-            $builder->get('foo5');
-            $this->fail('->createService() throws an InvalidArgumentException if the configure callable is not a valid callable');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertEquals('The configure callable for class "Bar\FooClass" is not a callable.', $e->getMessage(), '->createService() throws an InvalidArgumentException if the configure callable is not a valid callable');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     * @expectedException \RuntimeException
-     */
-    public function testCreateSyntheticService()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'Bar\FooClass')->setSynthetic(true);
-        $builder->get('foo');
-    }
-
-    public function testCreateServiceWithExpression()
-    {
-        $builder = new ContainerBuilder();
-        $builder->setParameter('bar', 'bar');
-        $builder->register('bar', 'BarClass');
-        $builder->register('foo', 'Bar\FooClass')->addArgument(array('foo' => new Expression('service("bar").foo ~ parameter("bar")')));
-        $this->assertEquals('foobar', $builder->get('foo')->arguments['foo']);
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::resolveServices
-     */
-    public function testResolveServices()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('foo', 'Bar\FooClass');
-        $this->assertEquals($builder->get('foo'), $builder->resolveServices(new Reference('foo')), '->resolveServices() resolves service references to service instances');
-        $this->assertEquals(array('foo' => array('foo', $builder->get('foo'))), $builder->resolveServices(array('foo' => array('foo', new Reference('foo')))), '->resolveServices() resolves service references to service instances in nested arrays');
-        $this->assertEquals($builder->get('foo'), $builder->resolveServices(new Expression('service("foo")')), '->resolveServices() resolves expressions');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::merge
-     */
-    public function testMerge()
-    {
-        $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo')));
-        $container->setResourceTracking(false);
-        $config = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
-        $container->merge($config);
-        $this->assertEquals(array('bar' => 'foo', 'foo' => 'bar'), $container->getParameterBag()->all(), '->merge() merges current parameters with the loaded ones');
-
-        $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo')));
-        $container->setResourceTracking(false);
-        $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%')));
-        $container->merge($config);
-        $container->compile();
-        $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones');
-
-        $container = new ContainerBuilder(new ParameterBag(array('bar' => 'foo')));
-        $container->setResourceTracking(false);
-        $config = new ContainerBuilder(new ParameterBag(array('foo' => '%bar%', 'baz' => '%foo%')));
-        $container->merge($config);
-        $container->compile();
-        $this->assertEquals(array('bar' => 'foo', 'foo' => 'foo', 'baz' => 'foo'), $container->getParameterBag()->all(), '->merge() evaluates the values of the parameters towards already defined ones');
-
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->register('foo', 'Bar\FooClass');
-        $container->register('bar', 'BarClass');
-        $config = new ContainerBuilder();
-        $config->setDefinition('baz', new Definition('BazClass'));
-        $config->setAlias('alias_for_foo', 'foo');
-        $container->merge($config);
-        $this->assertEquals(array('foo', 'bar', 'baz'), array_keys($container->getDefinitions()), '->merge() merges definitions already defined ones');
-
-        $aliases = $container->getAliases();
-        $this->assertTrue(isset($aliases['alias_for_foo']));
-        $this->assertEquals('foo', (string) $aliases['alias_for_foo']);
-
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->register('foo', 'Bar\FooClass');
-        $config->setDefinition('foo', new Definition('BazClass'));
-        $container->merge($config);
-        $this->assertEquals('BazClass', $container->getDefinition('foo')->getClass(), '->merge() overrides already defined services');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::merge
-     * @expectedException \LogicException
-     */
-    public function testMergeLogicException()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->compile();
-        $container->merge(new ContainerBuilder());
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::findTaggedServiceIds
-     */
-    public function testfindTaggedServiceIds()
-    {
-        $builder = new ContainerBuilder();
-        $builder
-            ->register('foo', 'Bar\FooClass')
-            ->addTag('foo', array('foo' => 'foo'))
-            ->addTag('bar', array('bar' => 'bar'))
-            ->addTag('foo', array('foofoo' => 'foofoo'))
-        ;
-        $this->assertEquals($builder->findTaggedServiceIds('foo'), array(
-            'foo' => array(
-                array('foo' => 'foo'),
-                array('foofoo' => 'foofoo'),
-            ),
-        ), '->findTaggedServiceIds() returns an array of service ids and its tag attributes');
-        $this->assertEquals(array(), $builder->findTaggedServiceIds('foobar'), '->findTaggedServiceIds() returns an empty array if there is annotated services');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::findDefinition
-     */
-    public function testFindDefinition()
-    {
-        $container = new ContainerBuilder();
-        $container->setDefinition('foo', $definition = new Definition('Bar\FooClass'));
-        $container->setAlias('bar', 'foo');
-        $container->setAlias('foobar', 'bar');
-        $this->assertEquals($definition, $container->findDefinition('foobar'), '->findDefinition() returns a Definition');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::addObjectResource
-     */
-    public function testAddObjectResource()
-    {
-        $container = new ContainerBuilder();
-
-        $container->setResourceTracking(false);
-        $container->addObjectResource(new \BarClass());
-
-        $this->assertEmpty($container->getResources(), 'No resources get registered without resource tracking');
-
-        $container->setResourceTracking(true);
-        $container->addObjectResource(new \BarClass());
-
-        $resources = $container->getResources();
-
-        $this->assertCount(1, $resources, '1 resource was registered');
-
-        /* @var $resource \Symfony\Component\Config\Resource\FileResource */
-        $resource = end($resources);
-
-        $this->assertInstanceOf('Symfony\Component\Config\Resource\FileResource', $resource);
-        $this->assertSame(realpath(__DIR__.'/Fixtures/includes/classes.php'), realpath($resource->getResource()));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::addClassResource
-     */
-    public function testAddClassResource()
-    {
-        $container = new ContainerBuilder();
-
-        $container->setResourceTracking(false);
-        $container->addClassResource(new \ReflectionClass('BarClass'));
-
-        $this->assertEmpty($container->getResources(), 'No resources get registered without resource tracking');
-
-        $container->setResourceTracking(true);
-        $container->addClassResource(new \ReflectionClass('BarClass'));
-
-        $resources = $container->getResources();
-
-        $this->assertCount(1, $resources, '1 resource was registered');
-
-        /* @var $resource \Symfony\Component\Config\Resource\FileResource */
-        $resource = end($resources);
-
-        $this->assertInstanceOf('Symfony\Component\Config\Resource\FileResource', $resource);
-        $this->assertSame(realpath(__DIR__.'/Fixtures/includes/classes.php'), realpath($resource->getResource()));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::compile
-     */
-    public function testCompilesClassDefinitionsOfLazyServices()
-    {
-        $container = new ContainerBuilder();
-
-        $this->assertEmpty($container->getResources(), 'No resources get registered without resource tracking');
-
-        $container->register('foo', 'BarClass');
-        $container->getDefinition('foo')->setLazy(true);
-
-        $container->compile();
-
-        $classesPath = realpath(__DIR__.'/Fixtures/includes/classes.php');
-        $matchingResources = array_filter(
-            $container->getResources(),
-            function (ResourceInterface $resource) use ($classesPath) {
-                return $resource instanceof FileResource && $classesPath === realpath($resource->getResource());
-            }
-        );
-
-        $this->assertNotEmpty($matchingResources);
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getResources
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::addResource
-     */
-    public function testResources()
-    {
-        $container = new ContainerBuilder();
-        $container->addResource($a = new FileResource(__DIR__.'/Fixtures/xml/services1.xml'));
-        $container->addResource($b = new FileResource(__DIR__.'/Fixtures/xml/services2.xml'));
-        $resources = array();
-        foreach ($container->getResources() as $resource) {
-            if (false === strpos($resource, '.php')) {
-                $resources[] = $resource;
-            }
-        }
-        $this->assertEquals(array($a, $b), $resources, '->getResources() returns an array of resources read for the current configuration');
-        $this->assertSame($container, $container->setResources(array()));
-        $this->assertEquals(array(), $container->getResources());
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::registerExtension
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getExtension
-     */
-    public function testExtension()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-
-        $container->registerExtension($extension = new \ProjectExtension());
-        $this->assertTrue($container->getExtension('project') === $extension, '->registerExtension() registers an extension');
-
-        $this->setExpectedException('LogicException');
-        $container->getExtension('no_registered');
-    }
-
-    public function testRegisteredButNotLoadedExtension()
-    {
-        $extension = $this->getMock('Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface');
-        $extension->expects($this->once())->method('getAlias')->will($this->returnValue('project'));
-        $extension->expects($this->never())->method('load');
-
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->registerExtension($extension);
-        $container->compile();
-    }
-
-    public function testRegisteredAndLoadedExtension()
-    {
-        $extension = $this->getMock('Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface');
-        $extension->expects($this->exactly(2))->method('getAlias')->will($this->returnValue('project'));
-        $extension->expects($this->once())->method('load')->with(array(array('foo' => 'bar')));
-
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->registerExtension($extension);
-        $container->loadFromExtension('project', array('foo' => 'bar'));
-        $container->compile();
-    }
-
-    public function testPrivateServiceUser()
-    {
-        $fooDefinition = new Definition('BarClass');
-        $fooUserDefinition = new Definition('BarUserClass', array(new Reference('bar')));
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-
-        $fooDefinition->setPublic(false);
-
-        $container->addDefinitions(array(
-            'bar' => $fooDefinition,
-            'bar_user' => $fooUserDefinition,
-        ));
-
-        $container->compile();
-        $this->assertInstanceOf('BarClass', $container->get('bar_user')->bar);
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testThrowsExceptionWhenSetServiceOnAFrozenContainer()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->setDefinition('a', new Definition('stdClass'));
-        $container->compile();
-        $container->set('a', new \stdClass());
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testThrowsExceptionWhenAddServiceOnAFrozenContainer()
-    {
-        $container = new ContainerBuilder();
-        $container->compile();
-        $container->set('a', new \stdClass());
-    }
-
-    public function testNoExceptionWhenSetSyntheticServiceOnAFrozenContainer()
-    {
-        $container = new ContainerBuilder();
-        $def = new Definition('stdClass');
-        $def->setSynthetic(true);
-        $container->setDefinition('a', $def);
-        $container->compile();
-        $container->set('a', $a = new \stdClass());
-        $this->assertEquals($a, $container->get('a'));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySetOnSynchronizedService()
-    {
-        $container = new ContainerBuilder();
-        $container->register('baz', 'BazClass')
-            ->setSynchronized(true)
-        ;
-        $container->register('bar', 'BarClass')
-            ->addMethodCall('setBaz', array(new Reference('baz')))
-        ;
-
-        $container->set('baz', $baz = new \BazClass());
-        $this->assertSame($baz, $container->get('bar')->getBaz());
-
-        $container->set('baz', $baz = new \BazClass());
-        $this->assertSame($baz, $container->get('bar')->getBaz());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySynchronizedServiceWithScopes()
-    {
-        $container = new ContainerBuilder();
-        $container->addScope(new Scope('foo'));
-        $container->register('baz', 'BazClass')
-            ->setSynthetic(true)
-            ->setSynchronized(true)
-            ->setScope('foo')
-        ;
-        $container->register('bar', 'BarClass')
-            ->addMethodCall('setBaz', array(new Reference('baz', ContainerInterface::NULL_ON_INVALID_REFERENCE, false)))
-        ;
-        $container->compile();
-
-        $container->enterScope('foo');
-        $container->set('baz', $outerBaz = new \BazClass(), 'foo');
-        $this->assertSame($outerBaz, $container->get('bar')->getBaz());
-
-        $container->enterScope('foo');
-        $container->set('baz', $innerBaz = new \BazClass(), 'foo');
-        $this->assertSame($innerBaz, $container->get('bar')->getBaz());
-        $container->leaveScope('foo');
-
-        $this->assertNotSame($innerBaz, $container->get('bar')->getBaz());
-        $this->assertSame($outerBaz, $container->get('bar')->getBaz());
-
-        $container->leaveScope('foo');
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testThrowsExceptionWhenSetDefinitionOnAFrozenContainer()
-    {
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->compile();
-        $container->setDefinition('a', new Definition());
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::getExtensionConfig
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::prependExtensionConfig
-     */
-    public function testExtensionConfig()
-    {
-        $container = new ContainerBuilder();
-
-        $configs = $container->getExtensionConfig('foo');
-        $this->assertEmpty($configs);
-
-        $first = array('foo' => 'bar');
-        $container->prependExtensionConfig('foo', $first);
-        $configs = $container->getExtensionConfig('foo');
-        $this->assertEquals(array($first), $configs);
-
-        $second = array('ding' => 'dong');
-        $container->prependExtensionConfig('foo', $second);
-        $configs = $container->getExtensionConfig('foo');
-        $this->assertEquals(array($second, $first), $configs);
-    }
-
-    public function testLazyLoadedService()
-    {
-        $loader = new ClosureLoader($container = new ContainerBuilder());
-        $loader->load(function (ContainerBuilder $container) {
-                $container->set('a', new \BazClass());
-                $definition = new Definition('BazClass');
-                $definition->setLazy(true);
-                $container->setDefinition('a', $definition);
-            }
-        );
-
-        $container->setResourceTracking(true);
-
-        $container->compile();
-
-        $class = new \BazClass();
-        $reflectionClass = new \ReflectionClass($class);
-
-        $r = new \ReflectionProperty($container, 'resources');
-        $r->setAccessible(true);
-        $resources = $r->getValue($container);
-
-        $classInList = false;
-        foreach ($resources as $resource) {
-            if ($resource->getResource() === $reflectionClass->getFileName()) {
-                $classInList = true;
-                break;
-            }
-        }
-
-        $this->assertTrue($classInList);
-    }
-}
-
-class FooClass
-{
-}
-
-class ProjectContainer extends ContainerBuilder
-{
-    public function getFoobazService()
-    {
-        throw new InactiveScopeException('foo', 'request');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/ContainerTest.php b/core/vendor/symfony/dependency-injection/Tests/ContainerTest.php
deleted file mode 100644
index dd8358e..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/ContainerTest.php
+++ /dev/null
@@ -1,713 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\Scope;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-
-class ContainerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::__construct
-     */
-    public function testConstructor()
-    {
-        $sc = new Container();
-        $this->assertSame($sc, $sc->get('service_container'), '__construct() automatically registers itself as a service');
-
-        $sc = new Container(new ParameterBag(array('foo' => 'bar')));
-        $this->assertEquals(array('foo' => 'bar'), $sc->getParameterBag()->all(), '__construct() takes an array of parameters as its first argument');
-    }
-
-    /**
-     * @dataProvider dataForTestCamelize
-     */
-    public function testCamelize($id, $expected)
-    {
-        $this->assertEquals($expected, Container::camelize($id), sprintf('Container::camelize("%s")', $id));
-    }
-
-    public function dataForTestCamelize()
-    {
-        return array(
-            array('foo_bar', 'FooBar'),
-            array('foo.bar', 'Foo_Bar'),
-            array('foo.bar_baz', 'Foo_BarBaz'),
-            array('foo._bar', 'Foo_Bar'),
-            array('foo_.bar', 'Foo_Bar'),
-            array('_foo', 'Foo'),
-            array('.foo', '_Foo'),
-            array('foo_', 'Foo'),
-            array('foo.', 'Foo_'),
-            array('foo\bar', 'Foo_Bar'),
-        );
-    }
-
-    /**
-     * @dataProvider dataForTestUnderscore
-     */
-    public function testUnderscore($id, $expected)
-    {
-        $this->assertEquals($expected, Container::underscore($id), sprintf('Container::underscore("%s")', $id));
-    }
-
-    public function dataForTestUnderscore()
-    {
-        return array(
-            array('FooBar', 'foo_bar'),
-            array('Foo_Bar', 'foo.bar'),
-            array('Foo_BarBaz', 'foo.bar_baz'),
-            array('FooBar_BazQux', 'foo_bar.baz_qux'),
-            array('_Foo', '.foo'),
-            array('Foo_', 'foo.'),
-        );
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::compile
-     */
-    public function testCompile()
-    {
-        $sc = new Container(new ParameterBag(array('foo' => 'bar')));
-        $this->assertFalse($sc->getParameterBag()->isResolved(), '->compile() resolves the parameter bag');
-        $sc->compile();
-        $this->assertTrue($sc->getParameterBag()->isResolved(), '->compile() resolves the parameter bag');
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag', $sc->getParameterBag(), '->compile() changes the parameter bag to a FrozenParameterBag instance');
-        $this->assertEquals(array('foo' => 'bar'), $sc->getParameterBag()->all(), '->compile() copies the current parameters to the new parameter bag');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::isFrozen
-     */
-    public function testIsFrozen()
-    {
-        $sc = new Container(new ParameterBag(array('foo' => 'bar')));
-        $this->assertFalse($sc->isFrozen(), '->isFrozen() returns false if the parameters are not frozen');
-        $sc->compile();
-        $this->assertTrue($sc->isFrozen(), '->isFrozen() returns true if the parameters are frozen');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::getParameterBag
-     */
-    public function testGetParameterBag()
-    {
-        $sc = new Container();
-        $this->assertEquals(array(), $sc->getParameterBag()->all(), '->getParameterBag() returns an empty array if no parameter has been defined');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::setParameter
-     * @covers Symfony\Component\DependencyInjection\Container::getParameter
-     */
-    public function testGetSetParameter()
-    {
-        $sc = new Container(new ParameterBag(array('foo' => 'bar')));
-        $sc->setParameter('bar', 'foo');
-        $this->assertEquals('foo', $sc->getParameter('bar'), '->setParameter() sets the value of a new parameter');
-
-        $sc->setParameter('foo', 'baz');
-        $this->assertEquals('baz', $sc->getParameter('foo'), '->setParameter() overrides previously set parameter');
-
-        $sc->setParameter('Foo', 'baz1');
-        $this->assertEquals('baz1', $sc->getParameter('foo'), '->setParameter() converts the key to lowercase');
-        $this->assertEquals('baz1', $sc->getParameter('FOO'), '->getParameter() converts the key to lowercase');
-
-        try {
-            $sc->getParameter('baba');
-            $this->fail('->getParameter() thrown an \InvalidArgumentException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->getParameter() thrown an \InvalidArgumentException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent parameter "baba".', $e->getMessage(), '->getParameter() thrown an \InvalidArgumentException if the key does not exist');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::getServiceIds
-     */
-    public function testGetServiceIds()
-    {
-        $sc = new Container();
-        $sc->set('foo', $obj = new \stdClass());
-        $sc->set('bar', $obj = new \stdClass());
-        $this->assertEquals(array('service_container', 'foo', 'bar'), $sc->getServiceIds(), '->getServiceIds() returns all defined service ids');
-
-        $sc = new ProjectServiceContainer();
-        $sc->set('foo', $obj = new \stdClass());
-        $this->assertEquals(array('scoped', 'scoped_foo', 'scoped_synchronized_foo', 'inactive', 'bar', 'foo_bar', 'foo.baz', 'circular', 'throw_exception', 'throws_exception_on_service_configuration', 'service_container', 'foo'), $sc->getServiceIds(), '->getServiceIds() returns defined service ids by getXXXService() methods, followed by service ids defined by set()');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::set
-     */
-    public function testSet()
-    {
-        $sc = new Container();
-        $sc->set('foo', $foo = new \stdClass());
-        $this->assertEquals($foo, $sc->get('foo'), '->set() sets a service');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::set
-     */
-    public function testSetWithNullResetTheService()
-    {
-        $sc = new Container();
-        $sc->set('foo', null);
-        $this->assertFalse($sc->has('foo'), '->set() with null service resets the service');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetDoesNotAllowPrototypeScope()
-    {
-        $c = new Container();
-        $c->set('foo', new \stdClass(), Container::SCOPE_PROTOTYPE);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testSetDoesNotAllowInactiveScope()
-    {
-        $c = new Container();
-        $c->addScope(new Scope('foo'));
-        $c->set('foo', new \stdClass(), 'foo');
-    }
-
-    public function testSetAlsoSetsScopedService()
-    {
-        $c = new Container();
-        $c->addScope(new Scope('foo'));
-        $c->enterScope('foo');
-        $c->set('foo', $foo = new \stdClass(), 'foo');
-
-        $scoped = $this->getField($c, 'scopedServices');
-        $this->assertTrue(isset($scoped['foo']['foo']), '->set() sets a scoped service');
-        $this->assertSame($foo, $scoped['foo']['foo'], '->set() sets a scoped service');
-    }
-
-    public function testSetAlsoCallsSynchronizeService()
-    {
-        $c = new ProjectServiceContainer();
-        $c->addScope(new Scope('foo'));
-        $c->enterScope('foo');
-        $c->set('scoped_synchronized_foo', $bar = new \stdClass(), 'foo');
-        $this->assertTrue($c->synchronized, '->set() calls synchronize*Service() if it is defined for the service');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::get
-     */
-    public function testGet()
-    {
-        $sc = new ProjectServiceContainer();
-        $sc->set('foo', $foo = new \stdClass());
-        $this->assertEquals($foo, $sc->get('foo'), '->get() returns the service for the given id');
-        $this->assertEquals($foo, $sc->get('Foo'), '->get() returns the service for the given id, and converts id to lowercase');
-        $this->assertEquals($sc->__bar, $sc->get('bar'), '->get() returns the service for the given id');
-        $this->assertEquals($sc->__foo_bar, $sc->get('foo_bar'), '->get() returns the service if a get*Method() is defined');
-        $this->assertEquals($sc->__foo_baz, $sc->get('foo.baz'), '->get() returns the service if a get*Method() is defined');
-        $this->assertEquals($sc->__foo_baz, $sc->get('foo\\baz'), '->get() returns the service if a get*Method() is defined');
-
-        $sc->set('bar', $bar = new \stdClass());
-        $this->assertEquals($bar, $sc->get('bar'), '->get() prefers to return a service defined with set() than one defined with a getXXXMethod()');
-
-        try {
-            $sc->get('');
-            $this->fail('->get() throws a \InvalidArgumentException exception if the service is empty');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException', $e, '->get() throws a ServiceNotFoundException exception if the service is empty');
-        }
-        $this->assertNull($sc->get('', ContainerInterface::NULL_ON_INVALID_REFERENCE), '->get() returns null if the service is empty');
-    }
-
-    public function testGetThrowServiceNotFoundException()
-    {
-        $sc = new ProjectServiceContainer();
-        $sc->set('foo', $foo = new \stdClass());
-        $sc->set('bar', $foo = new \stdClass());
-        $sc->set('baz', $foo = new \stdClass());
-
-        try {
-            $sc->get('foo1');
-            $this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException', $e, '->get() throws an Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent service "foo1". Did you mean this: "foo"?', $e->getMessage(), '->get() throws an Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException with some advices');
-        }
-
-        try {
-            $sc->get('bag');
-            $this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException', $e, '->get() throws an Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent service "bag". Did you mean one of these: "bar", "baz"?', $e->getMessage(), '->get() throws an Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException with some advices');
-        }
-    }
-
-    public function testGetCircularReference()
-    {
-        $sc = new ProjectServiceContainer();
-        try {
-            $sc->get('circular');
-            $this->fail('->get() throws a ServiceCircularReferenceException if it contains circular reference');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException', $e, '->get() throws a ServiceCircularReferenceException if it contains circular reference');
-            $this->assertStringStartsWith('Circular reference detected for service "circular"', $e->getMessage(), '->get() throws a \LogicException if it contains circular reference');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::get
-     */
-    public function testGetReturnsNullOnInactiveScope()
-    {
-        $sc = new ProjectServiceContainer();
-        $this->assertNull($sc->get('inactive', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::has
-     */
-    public function testHas()
-    {
-        $sc = new ProjectServiceContainer();
-        $sc->set('foo', new \stdClass());
-        $this->assertFalse($sc->has('foo1'), '->has() returns false if the service does not exist');
-        $this->assertTrue($sc->has('foo'), '->has() returns true if the service exists');
-        $this->assertTrue($sc->has('bar'), '->has() returns true if a get*Method() is defined');
-        $this->assertTrue($sc->has('foo_bar'), '->has() returns true if a get*Method() is defined');
-        $this->assertTrue($sc->has('foo.baz'), '->has() returns true if a get*Method() is defined');
-        $this->assertTrue($sc->has('foo\\baz'), '->has() returns true if a get*Method() is defined');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Container::initialized
-     */
-    public function testInitialized()
-    {
-        $sc = new ProjectServiceContainer();
-        $sc->set('foo', new \stdClass());
-        $this->assertTrue($sc->initialized('foo'), '->initialized() returns true if service is loaded');
-        $this->assertFalse($sc->initialized('foo1'), '->initialized() returns false if service is not loaded');
-        $this->assertFalse($sc->initialized('bar'), '->initialized() returns false if a service is defined, but not currently loaded');
-        $this->assertFalse($sc->initialized('alias'), '->initialized() returns false if an aliased service is not initialized');
-
-        $sc->set('bar', new \stdClass());
-        $this->assertTrue($sc->initialized('alias'), '->initialized() returns true for alias if aliased service is initialized');
-    }
-
-    public function testEnterLeaveCurrentScope()
-    {
-        $container = new ProjectServiceContainer();
-        $container->addScope(new Scope('foo'));
-
-        $container->enterScope('foo');
-        $scoped1 = $container->get('scoped');
-        $scopedFoo1 = $container->get('scoped_foo');
-
-        $container->enterScope('foo');
-        $scoped2 = $container->get('scoped');
-        $scoped3 = $container->get('SCOPED');
-        $scopedFoo2 = $container->get('scoped_foo');
-
-        $container->leaveScope('foo');
-        $scoped4 = $container->get('scoped');
-        $scopedFoo3 = $container->get('scoped_foo');
-
-        $this->assertNotSame($scoped1, $scoped2);
-        $this->assertSame($scoped2, $scoped3);
-        $this->assertSame($scoped1, $scoped4);
-        $this->assertNotSame($scopedFoo1, $scopedFoo2);
-        $this->assertSame($scopedFoo1, $scopedFoo3);
-    }
-
-    public function testEnterLeaveScopeWithChildScopes()
-    {
-        $container = new Container();
-        $container->addScope(new Scope('foo'));
-        $container->addScope(new Scope('bar', 'foo'));
-
-        $this->assertFalse($container->isScopeActive('foo'));
-
-        $container->enterScope('foo');
-        $container->enterScope('bar');
-
-        $this->assertTrue($container->isScopeActive('foo'));
-        $this->assertFalse($container->has('a'));
-
-        $a = new \stdClass();
-        $container->set('a', $a, 'bar');
-
-        $scoped = $this->getField($container, 'scopedServices');
-        $this->assertTrue(isset($scoped['bar']['a']));
-        $this->assertSame($a, $scoped['bar']['a']);
-        $this->assertTrue($container->has('a'));
-
-        $container->leaveScope('foo');
-
-        $scoped = $this->getField($container, 'scopedServices');
-        $this->assertFalse(isset($scoped['bar']));
-        $this->assertFalse($container->isScopeActive('foo'));
-        $this->assertFalse($container->has('a'));
-    }
-
-    public function testEnterScopeRecursivelyWithInactiveChildScopes()
-    {
-        $container = new Container();
-        $container->addScope(new Scope('foo'));
-        $container->addScope(new Scope('bar', 'foo'));
-
-        $this->assertFalse($container->isScopeActive('foo'));
-
-        $container->enterScope('foo');
-
-        $this->assertTrue($container->isScopeActive('foo'));
-        $this->assertFalse($container->isScopeActive('bar'));
-        $this->assertFalse($container->has('a'));
-
-        $a = new \stdClass();
-        $container->set('a', $a, 'foo');
-
-        $scoped = $this->getField($container, 'scopedServices');
-        $this->assertTrue(isset($scoped['foo']['a']));
-        $this->assertSame($a, $scoped['foo']['a']);
-        $this->assertTrue($container->has('a'));
-
-        $container->enterScope('foo');
-
-        $scoped = $this->getField($container, 'scopedServices');
-        $this->assertFalse(isset($scoped['a']));
-        $this->assertTrue($container->isScopeActive('foo'));
-        $this->assertFalse($container->isScopeActive('bar'));
-        $this->assertFalse($container->has('a'));
-
-        $container->enterScope('bar');
-
-        $this->assertTrue($container->isScopeActive('bar'));
-
-        $container->leaveScope('foo');
-
-        $this->assertTrue($container->isScopeActive('foo'));
-        $this->assertFalse($container->isScopeActive('bar'));
-        $this->assertTrue($container->has('a'));
-    }
-
-    public function testEnterChildScopeRecursively()
-    {
-        $container = new Container();
-        $container->addScope(new Scope('foo'));
-        $container->addScope(new Scope('bar', 'foo'));
-
-        $container->enterScope('foo');
-        $container->enterScope('bar');
-
-        $this->assertTrue($container->isScopeActive('bar'));
-        $this->assertFalse($container->has('a'));
-
-        $a = new \stdClass();
-        $container->set('a', $a, 'bar');
-
-        $scoped = $this->getField($container, 'scopedServices');
-        $this->assertTrue(isset($scoped['bar']['a']));
-        $this->assertSame($a, $scoped['bar']['a']);
-        $this->assertTrue($container->has('a'));
-
-        $container->enterScope('bar');
-
-        $scoped = $this->getField($container, 'scopedServices');
-        $this->assertFalse(isset($scoped['a']));
-        $this->assertTrue($container->isScopeActive('foo'));
-        $this->assertTrue($container->isScopeActive('bar'));
-        $this->assertFalse($container->has('a'));
-
-        $container->leaveScope('bar');
-
-        $this->assertTrue($container->isScopeActive('foo'));
-        $this->assertTrue($container->isScopeActive('bar'));
-        $this->assertTrue($container->has('a'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testEnterScopeNotAdded()
-    {
-        $container = new Container();
-        $container->enterScope('foo');
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testEnterScopeDoesNotAllowInactiveParentScope()
-    {
-        $container = new Container();
-        $container->addScope(new Scope('foo'));
-        $container->addScope(new Scope('bar', 'foo'));
-        $container->enterScope('bar');
-    }
-
-    public function testLeaveScopeNotActive()
-    {
-        $container = new Container();
-        $container->addScope(new Scope('foo'));
-
-        try {
-            $container->leaveScope('foo');
-            $this->fail('->leaveScope() throws a \LogicException if the scope is not active yet');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\LogicException', $e, '->leaveScope() throws a \LogicException if the scope is not active yet');
-            $this->assertEquals('The scope "foo" is not active.', $e->getMessage(), '->leaveScope() throws a \LogicException if the scope is not active yet');
-        }
-
-        try {
-            $container->leaveScope('bar');
-            $this->fail('->leaveScope() throws a \LogicException if the scope does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\LogicException', $e, '->leaveScope() throws a \LogicException if the scope does not exist');
-            $this->assertEquals('The scope "bar" is not active.', $e->getMessage(), '->leaveScope() throws a \LogicException if the scope does not exist');
-        }
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @dataProvider getBuiltInScopes
-     */
-    public function testAddScopeDoesNotAllowBuiltInScopes($scope)
-    {
-        $container = new Container();
-        $container->addScope(new Scope($scope));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testAddScopeDoesNotAllowExistingScope()
-    {
-        $container = new Container();
-        $container->addScope(new Scope('foo'));
-        $container->addScope(new Scope('foo'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @dataProvider getInvalidParentScopes
-     */
-    public function testAddScopeDoesNotAllowInvalidParentScope($scope)
-    {
-        $c = new Container();
-        $c->addScope(new Scope('foo', $scope));
-    }
-
-    public function testAddScope()
-    {
-        $c = new Container();
-        $c->addScope(new Scope('foo'));
-        $c->addScope(new Scope('bar', 'foo'));
-
-        $this->assertSame(array('foo' => 'container', 'bar' => 'foo'), $this->getField($c, 'scopes'));
-        $this->assertSame(array('foo' => array('bar'), 'bar' => array()), $this->getField($c, 'scopeChildren'));
-
-        $c->addScope(new Scope('baz', 'bar'));
-
-        $this->assertSame(array('foo' => 'container', 'bar' => 'foo', 'baz' => 'bar'), $this->getField($c, 'scopes'));
-        $this->assertSame(array('foo' => array('bar', 'baz'), 'bar' => array('baz'), 'baz' => array()), $this->getField($c, 'scopeChildren'));
-    }
-
-    public function testHasScope()
-    {
-        $c = new Container();
-
-        $this->assertFalse($c->hasScope('foo'));
-        $c->addScope(new Scope('foo'));
-        $this->assertTrue($c->hasScope('foo'));
-    }
-
-    /**
-     * @expectedException Exception
-     * @expectedExceptionMessage Something went terribly wrong!
-     */
-    public function testGetThrowsException()
-    {
-        $c = new ProjectServiceContainer();
-
-        try {
-            $c->get('throw_exception');
-        } catch (\Exception $e) {
-            // Do nothing.
-        }
-
-        // Retry, to make sure that get*Service() will be called.
-        $c->get('throw_exception');
-    }
-
-    public function testGetThrowsExceptionOnServiceConfiguration()
-    {
-        $c = new ProjectServiceContainer();
-
-        try {
-            $c->get('throws_exception_on_service_configuration');
-        } catch (\Exception $e) {
-            // Do nothing.
-        }
-
-        $this->assertFalse($c->initialized('throws_exception_on_service_configuration'));
-
-        // Retry, to make sure that get*Service() will be called.
-        try {
-            $c->get('throws_exception_on_service_configuration');
-        } catch (\Exception $e) {
-            // Do nothing.
-        }
-        $this->assertFalse($c->initialized('throws_exception_on_service_configuration'));
-    }
-
-    public function testIsScopeActive()
-    {
-        $c = new Container();
-
-        $this->assertFalse($c->isScopeActive('foo'));
-        $c->addScope(new Scope('foo'));
-
-        $this->assertFalse($c->isScopeActive('foo'));
-        $c->enterScope('foo');
-
-        $this->assertTrue($c->isScopeActive('foo'));
-        $c->leaveScope('foo');
-
-        $this->assertFalse($c->isScopeActive('foo'));
-    }
-
-    public function getInvalidParentScopes()
-    {
-        return array(
-            array(ContainerInterface::SCOPE_PROTOTYPE),
-            array('bar'),
-        );
-    }
-
-    public function getBuiltInScopes()
-    {
-        return array(
-            array(ContainerInterface::SCOPE_CONTAINER),
-            array(ContainerInterface::SCOPE_PROTOTYPE),
-        );
-    }
-
-    protected function getField($obj, $field)
-    {
-        $reflection = new \ReflectionProperty($obj, $field);
-        $reflection->setAccessible(true);
-
-        return $reflection->getValue($obj);
-    }
-
-    public function testAlias()
-    {
-        $c = new ProjectServiceContainer();
-
-        $this->assertTrue($c->has('alias'));
-        $this->assertSame($c->get('alias'), $c->get('bar'));
-    }
-}
-
-class ProjectServiceContainer extends Container
-{
-    public $__bar, $__foo_bar, $__foo_baz;
-    public $synchronized;
-
-    public function __construct()
-    {
-        parent::__construct();
-
-        $this->__bar = new \stdClass();
-        $this->__foo_bar = new \stdClass();
-        $this->__foo_baz = new \stdClass();
-        $this->synchronized = false;
-        $this->aliases = array('alias' => 'bar');
-    }
-
-    protected function getScopedService()
-    {
-        if (!$this->isScopeActive('foo')) {
-            throw new \RuntimeException('Invalid call');
-        }
-
-        return $this->services['scoped'] = $this->scopedServices['foo']['scoped'] = new \stdClass();
-    }
-
-    protected function getScopedFooService()
-    {
-        if (!$this->isScopeActive('foo')) {
-            throw new \RuntimeException('invalid call');
-        }
-
-        return $this->services['scoped_foo'] = $this->scopedServices['foo']['scoped_foo'] = new \stdClass();
-    }
-
-    protected function getScopedSynchronizedFooService()
-    {
-        if (!$this->isScopeActive('foo')) {
-            throw new \RuntimeException('invalid call');
-        }
-
-        return $this->services['scoped_bar'] = $this->scopedServices['foo']['scoped_bar'] = new \stdClass();
-    }
-
-    protected function synchronizeScopedSynchronizedFooService()
-    {
-        $this->synchronized = true;
-    }
-
-    protected function getInactiveService()
-    {
-        throw new InactiveScopeException('request', 'request');
-    }
-
-    protected function getBarService()
-    {
-        return $this->__bar;
-    }
-
-    protected function getFooBarService()
-    {
-        return $this->__foo_bar;
-    }
-
-    protected function getFoo_BazService()
-    {
-        return $this->__foo_baz;
-    }
-
-    protected function getCircularService()
-    {
-        return $this->get('circular');
-    }
-
-    protected function getThrowExceptionService()
-    {
-        throw new \Exception('Something went terribly wrong!');
-    }
-
-    protected function getThrowsExceptionOnServiceConfigurationService()
-    {
-        $this->services['throws_exception_on_service_configuration'] = $instance = new \stdClass();
-
-        throw new \Exception('Something was terribly wrong while trying to configure the service!');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/CrossCheckTest.php b/core/vendor/symfony/dependency-injection/Tests/CrossCheckTest.php
deleted file mode 100644
index 692d73d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/CrossCheckTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\Config\FileLocator;
-
-class CrossCheckTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = __DIR__.'/Fixtures/';
-
-        require_once self::$fixturesPath.'/includes/classes.php';
-        require_once self::$fixturesPath.'/includes/foo.php';
-    }
-
-    /**
-     * @dataProvider crossCheckLoadersDumpers
-     */
-    public function testCrossCheck($fixture, $type)
-    {
-        $loaderClass = 'Symfony\\Component\\DependencyInjection\\Loader\\'.ucfirst($type).'FileLoader';
-        $dumperClass = 'Symfony\\Component\\DependencyInjection\\Dumper\\'.ucfirst($type).'Dumper';
-
-        $tmp = tempnam('sf_service_container', 'sf');
-
-        file_put_contents($tmp, file_get_contents(self::$fixturesPath.'/'.$type.'/'.$fixture));
-
-        $container1 = new ContainerBuilder();
-        $loader1 = new $loaderClass($container1, new FileLocator());
-        $loader1->load($tmp);
-
-        $dumper = new $dumperClass($container1);
-        file_put_contents($tmp, $dumper->dump());
-
-        $container2 = new ContainerBuilder();
-        $loader2 = new $loaderClass($container2, new FileLocator());
-        $loader2->load($tmp);
-
-        unlink($tmp);
-
-        $this->assertEquals($container2->getAliases(), $container1->getAliases(), 'loading a dump from a previously loaded container returns the same container');
-        $this->assertEquals($container2->getDefinitions(), $container1->getDefinitions(), 'loading a dump from a previously loaded container returns the same container');
-        $this->assertEquals($container2->getParameterBag()->all(), $container1->getParameterBag()->all(), '->getParameterBag() returns the same value for both containers');
-
-        $this->assertEquals(serialize($container2), serialize($container1), 'loading a dump from a previously loaded container returns the same container');
-
-        $services1 = array();
-        foreach ($container1 as $id => $service) {
-            $services1[$id] = serialize($service);
-        }
-        $services2 = array();
-        foreach ($container2 as $id => $service) {
-            $services2[$id] = serialize($service);
-        }
-
-        unset($services1['service_container'], $services2['service_container']);
-
-        $this->assertEquals($services2, $services1, 'Iterator on the containers returns the same services');
-    }
-
-    public function crossCheckLoadersDumpers()
-    {
-        $tests = array(
-            array('services1.xml', 'xml'),
-            array('services2.xml', 'xml'),
-            array('services6.xml', 'xml'),
-            array('services8.xml', 'xml'),
-            array('services9.xml', 'xml'),
-        );
-
-        if (class_exists('Symfony\Component\Yaml\Yaml')) {
-            $tests = array_merge($tests, array(
-                array('services1.yml', 'yaml'),
-                array('services2.yml', 'yaml'),
-                array('services6.yml', 'yaml'),
-                array('services8.yml', 'yaml'),
-                array('services9.yml', 'yaml'),
-            ));
-        }
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/DefinitionDecoratorTest.php b/core/vendor/symfony/dependency-injection/Tests/DefinitionDecoratorTest.php
deleted file mode 100644
index 732eead..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/DefinitionDecoratorTest.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\DefinitionDecorator;
-
-class DefinitionDecoratorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $this->assertEquals('foo', $def->getParent());
-        $this->assertEquals(array(), $def->getChanges());
-    }
-
-    /**
-     * @dataProvider getPropertyTests
-     */
-    public function testSetProperty($property, $changeKey)
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $getter = 'get'.ucfirst($property);
-        $setter = 'set'.ucfirst($property);
-
-        $this->assertNull($def->$getter());
-        $this->assertSame($def, $def->$setter('foo'));
-        $this->assertEquals('foo', $def->$getter());
-        $this->assertEquals(array($changeKey => true), $def->getChanges());
-    }
-
-    public function getPropertyTests()
-    {
-        return array(
-            array('class', 'class'),
-            array('factory', 'factory'),
-            array('configurator', 'configurator'),
-            array('file', 'file'),
-        );
-    }
-
-    /**
-     * @dataProvider provideLegacyPropertyTests
-     * @group legacy
-     */
-    public function testLegacySetProperty($property, $changeKey)
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $getter = 'get'.ucfirst($property);
-        $setter = 'set'.ucfirst($property);
-
-        $this->assertNull($def->$getter());
-        $this->assertSame($def, $def->$setter('foo'));
-        $this->assertEquals('foo', $def->$getter());
-        $this->assertEquals(array($changeKey => true), $def->getChanges());
-    }
-
-    public function provideLegacyPropertyTests()
-    {
-        return array(
-            array('factoryClass', 'factory_class'),
-            array('factoryMethod', 'factory_method'),
-            array('factoryService', 'factory_service'),
-        );
-    }
-
-    public function testSetPublic()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $this->assertTrue($def->isPublic());
-        $this->assertSame($def, $def->setPublic(false));
-        $this->assertFalse($def->isPublic());
-        $this->assertEquals(array('public' => true), $def->getChanges());
-    }
-
-    public function testSetLazy()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $this->assertFalse($def->isLazy());
-        $this->assertSame($def, $def->setLazy(false));
-        $this->assertFalse($def->isLazy());
-        $this->assertEquals(array('lazy' => true), $def->getChanges());
-    }
-
-    public function testSetArgument()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $this->assertEquals(array(), $def->getArguments());
-        $this->assertSame($def, $def->replaceArgument(0, 'foo'));
-        $this->assertEquals(array('index_0' => 'foo'), $def->getArguments());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testReplaceArgumentShouldRequireIntegerIndex()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $def->replaceArgument('0', 'foo');
-    }
-
-    public function testReplaceArgument()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $def->setArguments(array(0 => 'foo', 1 => 'bar'));
-        $this->assertEquals('foo', $def->getArgument(0));
-        $this->assertEquals('bar', $def->getArgument(1));
-
-        $this->assertSame($def, $def->replaceArgument(1, 'baz'));
-        $this->assertEquals('foo', $def->getArgument(0));
-        $this->assertEquals('baz', $def->getArgument(1));
-
-        $this->assertEquals(array(0 => 'foo', 1 => 'bar', 'index_1' => 'baz'), $def->getArguments());
-    }
-
-    /**
-     * @expectedException \OutOfBoundsException
-     */
-    public function testGetArgumentShouldCheckBounds()
-    {
-        $def = new DefinitionDecorator('foo');
-
-        $def->setArguments(array(0 => 'foo'));
-        $def->replaceArgument(0, 'foo');
-
-        $def->getArgument(1);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/DefinitionTest.php b/core/vendor/symfony/dependency-injection/Tests/DefinitionTest.php
deleted file mode 100644
index b501f11..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/DefinitionTest.php
+++ /dev/null
@@ -1,328 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\Definition;
-
-class DefinitionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::__construct
-     */
-    public function testConstructor()
-    {
-        $def = new Definition('stdClass');
-        $this->assertEquals('stdClass', $def->getClass(), '__construct() takes the class name as its first argument');
-
-        $def = new Definition('stdClass', array('foo'));
-        $this->assertEquals(array('foo'), $def->getArguments(), '__construct() takes an optional array of arguments as its second argument');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setFactory
-     * @covers Symfony\Component\DependencyInjection\Definition::getFactory
-     */
-    public function testSetGetFactory()
-    {
-        $def = new Definition('stdClass');
-
-        $this->assertSame($def, $def->setFactory('foo'), '->setFactory() implements a fluent interface');
-        $this->assertEquals('foo', $def->getFactory(), '->getFactory() returns the factory');
-
-        $def->setFactory('Foo::bar');
-        $this->assertEquals(array('Foo', 'bar'), $def->getFactory(), '->setFactory() converts string static method call to the array');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setClass
-     * @covers Symfony\Component\DependencyInjection\Definition::getClass
-     */
-    public function testSetGetClass()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->setClass('foo'), '->setClass() implements a fluent interface');
-        $this->assertEquals('foo', $def->getClass(), '->getClass() returns the class name');
-    }
-
-    public function testSetGetDecoratedService()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getDecoratedService());
-        $def->setDecoratedService('foo', 'foo.renamed');
-        $this->assertEquals(array('foo', 'foo.renamed'), $def->getDecoratedService());
-        $def->setDecoratedService(null);
-        $this->assertNull($def->getDecoratedService());
-
-        $def = new Definition('stdClass');
-        $def->setDecoratedService('foo');
-        $this->assertEquals(array('foo', null), $def->getDecoratedService());
-        $def->setDecoratedService(null);
-        $this->assertNull($def->getDecoratedService());
-
-        $def = new Definition('stdClass');
-        $this->setExpectedException('InvalidArgumentException', 'The decorated service inner name for "foo" must be different than the service name itself.');
-        $def->setDecoratedService('foo', 'foo');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setArguments
-     * @covers Symfony\Component\DependencyInjection\Definition::getArguments
-     * @covers Symfony\Component\DependencyInjection\Definition::addArgument
-     */
-    public function testArguments()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->setArguments(array('foo')), '->setArguments() implements a fluent interface');
-        $this->assertEquals(array('foo'), $def->getArguments(), '->getArguments() returns the arguments');
-        $this->assertSame($def, $def->addArgument('bar'), '->addArgument() implements a fluent interface');
-        $this->assertEquals(array('foo', 'bar'), $def->getArguments(), '->addArgument() adds an argument');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setMethodCalls
-     * @covers Symfony\Component\DependencyInjection\Definition::addMethodCall
-     * @covers Symfony\Component\DependencyInjection\Definition::hasMethodCall
-     * @covers Symfony\Component\DependencyInjection\Definition::removeMethodCall
-     */
-    public function testMethodCalls()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->setMethodCalls(array(array('foo', array('foo')))), '->setMethodCalls() implements a fluent interface');
-        $this->assertEquals(array(array('foo', array('foo'))), $def->getMethodCalls(), '->getMethodCalls() returns the methods to call');
-        $this->assertSame($def, $def->addMethodCall('bar', array('bar')), '->addMethodCall() implements a fluent interface');
-        $this->assertEquals(array(array('foo', array('foo')), array('bar', array('bar'))), $def->getMethodCalls(), '->addMethodCall() adds a method to call');
-        $this->assertTrue($def->hasMethodCall('bar'), '->hasMethodCall() returns true if first argument is a method to call registered');
-        $this->assertFalse($def->hasMethodCall('no_registered'), '->hasMethodCall() returns false if first argument is not a method to call registered');
-        $this->assertSame($def, $def->removeMethodCall('bar'), '->removeMethodCall() implements a fluent interface');
-        $this->assertEquals(array(array('foo', array('foo'))), $def->getMethodCalls(), '->removeMethodCall() removes a method to call');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
-     * @expectedExceptionMessage Method name cannot be empty.
-     */
-    public function testExceptionOnEmptyMethodCall()
-    {
-        $def = new Definition('stdClass');
-        $def->addMethodCall('');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setFile
-     * @covers Symfony\Component\DependencyInjection\Definition::getFile
-     */
-    public function testSetGetFile()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->setFile('foo'), '->setFile() implements a fluent interface');
-        $this->assertEquals('foo', $def->getFile(), '->getFile() returns the file to include');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setScope
-     * @covers Symfony\Component\DependencyInjection\Definition::getScope
-     */
-    public function testSetGetScope()
-    {
-        $def = new Definition('stdClass');
-        $this->assertEquals('container', $def->getScope());
-        $this->assertSame($def, $def->setScope('foo'));
-        $this->assertEquals('foo', $def->getScope());
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setPublic
-     * @covers Symfony\Component\DependencyInjection\Definition::isPublic
-     */
-    public function testSetIsPublic()
-    {
-        $def = new Definition('stdClass');
-        $this->assertTrue($def->isPublic(), '->isPublic() returns true by default');
-        $this->assertSame($def, $def->setPublic(false), '->setPublic() implements a fluent interface');
-        $this->assertFalse($def->isPublic(), '->isPublic() returns false if the instance must not be public.');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setSynthetic
-     * @covers Symfony\Component\DependencyInjection\Definition::isSynthetic
-     */
-    public function testSetIsSynthetic()
-    {
-        $def = new Definition('stdClass');
-        $this->assertFalse($def->isSynthetic(), '->isSynthetic() returns false by default');
-        $this->assertSame($def, $def->setSynthetic(true), '->setSynthetic() implements a fluent interface');
-        $this->assertTrue($def->isSynthetic(), '->isSynthetic() returns true if the service is synthetic.');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setSynchronized
-     * @covers Symfony\Component\DependencyInjection\Definition::isSynchronized
-     * @group legacy
-     */
-    public function testLegacySetIsSynchronized()
-    {
-        $def = new Definition('stdClass');
-        $this->assertFalse($def->isSynchronized(), '->isSynchronized() returns false by default');
-        $this->assertSame($def, $def->setSynchronized(true), '->setSynchronized() implements a fluent interface');
-        $this->assertTrue($def->isSynchronized(), '->isSynchronized() returns true if the service is synchronized.');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setLazy
-     * @covers Symfony\Component\DependencyInjection\Definition::isLazy
-     */
-    public function testSetIsLazy()
-    {
-        $def = new Definition('stdClass');
-        $this->assertFalse($def->isLazy(), '->isLazy() returns false by default');
-        $this->assertSame($def, $def->setLazy(true), '->setLazy() implements a fluent interface');
-        $this->assertTrue($def->isLazy(), '->isLazy() returns true if the service is lazy.');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setAbstract
-     * @covers Symfony\Component\DependencyInjection\Definition::isAbstract
-     */
-    public function testSetIsAbstract()
-    {
-        $def = new Definition('stdClass');
-        $this->assertFalse($def->isAbstract(), '->isAbstract() returns false by default');
-        $this->assertSame($def, $def->setAbstract(true), '->setAbstract() implements a fluent interface');
-        $this->assertTrue($def->isAbstract(), '->isAbstract() returns true if the instance must not be public.');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::setConfigurator
-     * @covers Symfony\Component\DependencyInjection\Definition::getConfigurator
-     */
-    public function testSetGetConfigurator()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->setConfigurator('foo'), '->setConfigurator() implements a fluent interface');
-        $this->assertEquals('foo', $def->getConfigurator(), '->getConfigurator() returns the configurator');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::clearTags
-     */
-    public function testClearTags()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->clearTags(), '->clearTags() implements a fluent interface');
-        $def->addTag('foo', array('foo' => 'bar'));
-        $def->clearTags();
-        $this->assertEquals(array(), $def->getTags(), '->clearTags() removes all current tags');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::clearTags
-     */
-    public function testClearTag()
-    {
-        $def = new Definition('stdClass');
-        $this->assertSame($def, $def->clearTags(), '->clearTags() implements a fluent interface');
-        $def->addTag('1foo1', array('foo1' => 'bar1'));
-        $def->addTag('2foo2', array('foo2' => 'bar2'));
-        $def->addTag('3foo3', array('foo3' => 'bar3'));
-        $def->clearTag('2foo2');
-        $this->assertTrue($def->hasTag('1foo1'));
-        $this->assertFalse($def->hasTag('2foo2'));
-        $this->assertTrue($def->hasTag('3foo3'));
-        $def->clearTag('1foo1');
-        $this->assertFalse($def->hasTag('1foo1'));
-        $this->assertTrue($def->hasTag('3foo3'));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::addTag
-     * @covers Symfony\Component\DependencyInjection\Definition::getTag
-     * @covers Symfony\Component\DependencyInjection\Definition::getTags
-     * @covers Symfony\Component\DependencyInjection\Definition::hasTag
-     */
-    public function testTags()
-    {
-        $def = new Definition('stdClass');
-        $this->assertEquals(array(), $def->getTag('foo'), '->getTag() returns an empty array if the tag is not defined');
-        $this->assertFalse($def->hasTag('foo'));
-        $this->assertSame($def, $def->addTag('foo'), '->addTag() implements a fluent interface');
-        $this->assertTrue($def->hasTag('foo'));
-        $this->assertEquals(array(array()), $def->getTag('foo'), '->getTag() returns attributes for a tag name');
-        $def->addTag('foo', array('foo' => 'bar'));
-        $this->assertEquals(array(array(), array('foo' => 'bar')), $def->getTag('foo'), '->addTag() can adds the same tag several times');
-        $def->addTag('bar', array('bar' => 'bar'));
-        $this->assertEquals($def->getTags(), array(
-            'foo' => array(array(), array('foo' => 'bar')),
-            'bar' => array(array('bar' => 'bar')),
-        ), '->getTags() returns all tags');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Definition::replaceArgument
-     */
-    public function testSetArgument()
-    {
-        $def = new Definition('stdClass');
-
-        $def->addArgument('foo');
-        $this->assertSame(array('foo'), $def->getArguments());
-
-        $this->assertSame($def, $def->replaceArgument(0, 'moo'));
-        $this->assertSame(array('moo'), $def->getArguments());
-
-        $def->addArgument('moo');
-        $def
-            ->replaceArgument(0, 'foo')
-            ->replaceArgument(1, 'bar')
-        ;
-        $this->assertSame(array('foo', 'bar'), $def->getArguments());
-    }
-
-    /**
-     * @expectedException \OutOfBoundsException
-     */
-    public function testGetArgumentShouldCheckBounds()
-    {
-        $def = new Definition('stdClass');
-
-        $def->addArgument('foo');
-        $def->getArgument(1);
-    }
-
-    /**
-     * @expectedException \OutOfBoundsException
-     */
-    public function testReplaceArgumentShouldCheckBounds()
-    {
-        $def = new Definition('stdClass');
-
-        $def->addArgument('foo');
-        $def->replaceArgument(1, 'bar');
-    }
-
-    public function testSetGetProperties()
-    {
-        $def = new Definition('stdClass');
-
-        $this->assertEquals(array(), $def->getProperties());
-        $this->assertSame($def, $def->setProperties(array('foo' => 'bar')));
-        $this->assertEquals(array('foo' => 'bar'), $def->getProperties());
-    }
-
-    public function testSetProperty()
-    {
-        $def = new Definition('stdClass');
-
-        $this->assertEquals(array(), $def->getProperties());
-        $this->assertSame($def, $def->setProperty('foo', 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $def->getProperties());
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Dumper/GraphvizDumperTest.php b/core/vendor/symfony/dependency-injection/Tests/Dumper/GraphvizDumperTest.php
deleted file mode 100644
index 5da1135..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Dumper/GraphvizDumperTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Dumper;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Dumper\GraphvizDumper;
-
-class GraphvizDumperTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = __DIR__.'/../Fixtures/';
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyDump()
-    {
-        $container = include self::$fixturesPath.'/containers/legacy-container9.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/legacy-services9.dot')), $dumper->dump(), '->dump() dumps services');
-    }
-
-    public function testDump()
-    {
-        $dumper = new GraphvizDumper($container = new ContainerBuilder());
-
-        $this->assertStringEqualsFile(self::$fixturesPath.'/graphviz/services1.dot', $dumper->dump(), '->dump() dumps an empty container as an empty dot file');
-
-        $container = include self::$fixturesPath.'/containers/container9.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services9.dot')), $dumper->dump(), '->dump() dumps services');
-
-        $container = include self::$fixturesPath.'/containers/container10.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services10.dot')), $dumper->dump(), '->dump() dumps services');
-
-        $container = include self::$fixturesPath.'/containers/container10.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals($dumper->dump(array(
-            'graph' => array('ratio' => 'normal'),
-            'node' => array('fontsize' => 13, 'fontname' => 'Verdana', 'shape' => 'square'),
-            'edge' => array('fontsize' => 12, 'fontname' => 'Verdana', 'color' => 'white', 'arrowhead' => 'closed', 'arrowsize' => 1),
-            'node.instance' => array('fillcolor' => 'green', 'style' => 'empty'),
-            'node.definition' => array('fillcolor' => 'grey'),
-            'node.missing' => array('fillcolor' => 'red', 'style' => 'empty'),
-        )), str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services10-1.dot')), '->dump() dumps services');
-    }
-
-    public function testDumpWithFrozenContainer()
-    {
-        $container = include self::$fixturesPath.'/containers/container13.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services13.dot')), $dumper->dump(), '->dump() dumps services');
-    }
-
-    public function testDumpWithFrozenCustomClassContainer()
-    {
-        $container = include self::$fixturesPath.'/containers/container14.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services14.dot')), $dumper->dump(), '->dump() dumps services');
-    }
-
-    public function testDumpWithUnresolvedParameter()
-    {
-        $container = include self::$fixturesPath.'/containers/container17.php';
-        $dumper = new GraphvizDumper($container);
-
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services17.dot')), $dumper->dump(), '->dump() dumps services');
-    }
-
-    public function testDumpWithScopes()
-    {
-        $container = include self::$fixturesPath.'/containers/container18.php';
-        $dumper = new GraphvizDumper($container);
-        $this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services18.dot')), $dumper->dump(), '->dump() dumps services');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php b/core/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php
deleted file mode 100644
index 063007e..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Dumper;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Definition;
-
-class PhpDumperTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
-    }
-
-    public function testDump()
-    {
-        $dumper = new PhpDumper($container = new ContainerBuilder());
-
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services1.php', $dumper->dump(), '->dump() dumps an empty container as an empty PHP class');
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services1-1.php', $dumper->dump(array('class' => 'Container', 'base_class' => 'AbstractContainer', 'namespace' => 'Symfony\Component\DependencyInjection\Dump')), '->dump() takes a class and a base_class options');
-
-        $container = new ContainerBuilder();
-        new PhpDumper($container);
-    }
-
-    public function testDumpOptimizationString()
-    {
-        $definition = new Definition();
-        $definition->setClass('stdClass');
-        $definition->addArgument(array(
-            'only dot' => '.',
-            'concatenation as value' => '.\'\'.',
-            'concatenation from the start value' => '\'\'.',
-            '.' => 'dot as a key',
-            '.\'\'.' => 'concatenation as a key',
-            '\'\'.' => 'concatenation from the start key',
-            'optimize concatenation' => 'string1%some_string%string2',
-            'optimize concatenation with empty string' => 'string1%empty_value%string2',
-            'optimize concatenation from the start' => '%empty_value%start',
-            'optimize concatenation at the end' => 'end%empty_value%',
-        ));
-
-        $container = new ContainerBuilder();
-        $container->setResourceTracking(false);
-        $container->setDefinition('test', $definition);
-        $container->setParameter('empty_value', '');
-        $container->setParameter('some_string', '-');
-        $container->compile();
-
-        $dumper = new PhpDumper($container);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services10.php', $dumper->dump(), '->dump() dumps an empty container as an empty PHP class');
-    }
-
-    public function testDumpRelativeDir()
-    {
-        $definition = new Definition();
-        $definition->setClass('stdClass');
-        $definition->addArgument('%foo%');
-        $definition->addArgument(array('%foo%' => '%buz%/'));
-
-        $container = new ContainerBuilder();
-        $container->setDefinition('test', $definition);
-        $container->setParameter('foo', 'wiz'.dirname(__DIR__));
-        $container->setParameter('bar', __DIR__);
-        $container->setParameter('baz', '%bar%/PhpDumperTest.php');
-        $container->setParameter('buz', dirname(dirname(__DIR__)));
-        $container->compile();
-
-        $dumper = new PhpDumper($container);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services12.php', $dumper->dump(array('file' => __FILE__)), '->dump() dumps __DIR__ relative strings');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testExportParameters()
-    {
-        $dumper = new PhpDumper(new ContainerBuilder(new ParameterBag(array('foo' => new Reference('foo')))));
-        $dumper->dump();
-    }
-
-    public function testAddParameters()
-    {
-        $container = include self::$fixturesPath.'/containers/container8.php';
-        $dumper = new PhpDumper($container);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services8.php', $dumper->dump(), '->dump() dumps parameters');
-    }
-
-    public function testAddService()
-    {
-        // without compilation
-        $container = include self::$fixturesPath.'/containers/container9.php';
-        $dumper = new PhpDumper($container);
-        $this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9.php')), $dumper->dump(), '->dump() dumps services');
-
-        // with compilation
-        $container = include self::$fixturesPath.'/containers/container9.php';
-        $container->compile();
-        $dumper = new PhpDumper($container);
-        $this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9_compiled.php')), $dumper->dump(), '->dump() dumps services');
-
-        $dumper = new PhpDumper($container = new ContainerBuilder());
-        $container->register('foo', 'FooClass')->addArgument(new \stdClass());
-        try {
-            $dumper->dump();
-            $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\Symfony\Component\DependencyInjection\Exception\RuntimeException', $e, '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-            $this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.', $e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        }
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySynchronizedServices()
-    {
-        $container = include self::$fixturesPath.'/containers/container20.php';
-        $dumper = new PhpDumper($container);
-        $this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services20.php')), $dumper->dump(), '->dump() dumps services');
-    }
-
-    public function testServicesWithAnonymousFactories()
-    {
-        $container = include self::$fixturesPath.'/containers/container19.php';
-        $dumper = new PhpDumper($container);
-
-        $this->assertStringEqualsFile(self::$fixturesPath.'/php/services19.php', $dumper->dump(), '->dump() dumps services with anonymous factories');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Service id "bar$" cannot be converted to a valid PHP method name.
-     */
-    public function testAddServiceInvalidServiceId()
-    {
-        $container = new ContainerBuilder();
-        $container->register('bar$', 'FooClass');
-        $dumper = new PhpDumper($container);
-        $dumper->dump();
-    }
-
-    public function testAliases()
-    {
-        $container = include self::$fixturesPath.'/containers/container9.php';
-        $container->compile();
-        $dumper = new PhpDumper($container);
-        eval('?>'.$dumper->dump(array('class' => 'Symfony_DI_PhpDumper_Test_Aliases')));
-
-        $container = new \Symfony_DI_PhpDumper_Test_Aliases();
-        $container->set('foo', $foo = new \stdClass());
-        $this->assertSame($foo, $container->get('foo'));
-        $this->assertSame($foo, $container->get('alias_for_foo'));
-        $this->assertSame($foo, $container->get('alias_for_alias'));
-    }
-
-    public function testFrozenContainerWithoutAliases()
-    {
-        $container = new ContainerBuilder();
-        $container->compile();
-
-        $dumper = new PhpDumper($container);
-        eval('?>'.$dumper->dump(array('class' => 'Symfony_DI_PhpDumper_Test_Frozen_No_Aliases')));
-
-        $container = new \Symfony_DI_PhpDumper_Test_Frozen_No_Aliases();
-        $this->assertFalse($container->has('foo'));
-    }
-
-    public function testOverrideServiceWhenUsingADumpedContainer()
-    {
-        require_once self::$fixturesPath.'/php/services9.php';
-        require_once self::$fixturesPath.'/includes/foo.php';
-
-        $container = new \ProjectServiceContainer();
-        $container->set('bar', $bar = new \stdClass());
-        $container->setParameter('foo_bar', 'foo_bar');
-
-        $this->assertEquals($bar, $container->get('bar'), '->set() overrides an already defined service');
-    }
-
-    public function testOverrideServiceWhenUsingADumpedContainerAndServiceIsUsedFromAnotherOne()
-    {
-        require_once self::$fixturesPath.'/php/services9.php';
-        require_once self::$fixturesPath.'/includes/foo.php';
-        require_once self::$fixturesPath.'/includes/classes.php';
-
-        $container = new \ProjectServiceContainer();
-        $container->set('bar', $bar = new \stdClass());
-
-        $this->assertSame($bar, $container->get('foo')->bar, '->set() overrides an already defined service');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
-     */
-    public function testCircularReference()
-    {
-        $container = new ContainerBuilder();
-        $container->register('foo', 'stdClass')->addArgument(new Reference('bar'));
-        $container->register('bar', 'stdClass')->setPublic(false)->addMethodCall('setA', array(new Reference('baz')));
-        $container->register('baz', 'stdClass')->addMethodCall('setA', array(new Reference('foo')));
-        $container->compile();
-
-        $dumper = new PhpDumper($container);
-        $dumper->dump();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php b/core/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php
deleted file mode 100644
index 8aa544c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Dumper/XmlDumperTest.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Dumper;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Dumper\XmlDumper;
-
-class XmlDumperTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
-    }
-
-    public function testDump()
-    {
-        $dumper = new XmlDumper(new ContainerBuilder());
-
-        $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/xml/services1.xml', $dumper->dump(), '->dump() dumps an empty container as an empty XML file');
-    }
-
-    public function testExportParameters()
-    {
-        $container = include self::$fixturesPath.'//containers/container8.php';
-        $dumper = new XmlDumper($container);
-        $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/xml/services8.xml', $dumper->dump(), '->dump() dumps parameters');
-    }
-
-    public function testAddParameters()
-    {
-        $container = include self::$fixturesPath.'//containers/container8.php';
-        $dumper = new XmlDumper($container);
-        $this->assertXmlStringEqualsXmlFile(self::$fixturesPath.'/xml/services8.xml', $dumper->dump(), '->dump() dumps parameters');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAddService()
-    {
-        $container = include self::$fixturesPath.'/containers/legacy-container9.php';
-        $dumper = new XmlDumper($container);
-
-        $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/xml/legacy-services9.xml')), $dumper->dump(), '->dump() dumps services');
-
-        $dumper = new XmlDumper($container = new ContainerBuilder());
-        $container->register('foo', 'FooClass')->addArgument(new \stdClass());
-        try {
-            $dumper->dump();
-            $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\RuntimeException', $e, '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-            $this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.', $e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        }
-    }
-
-    public function testAddService()
-    {
-        $container = include self::$fixturesPath.'/containers/container9.php';
-        $dumper = new XmlDumper($container);
-
-        $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/xml/services9.xml')), $dumper->dump(), '->dump() dumps services');
-
-        $dumper = new XmlDumper($container = new ContainerBuilder());
-        $container->register('foo', 'FooClass')->addArgument(new \stdClass());
-        try {
-            $dumper->dump();
-            $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\RuntimeException', $e, '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-            $this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.', $e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        }
-    }
-
-    public function testDumpAnonymousServices()
-    {
-        $container = include self::$fixturesPath.'/containers/container11.php';
-        $dumper = new XmlDumper($container);
-        $this->assertEquals('<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="foo" class="FooClass">
-      <argument type="service">
-        <service class="BarClass">
-          <argument type="service">
-            <service class="BazClass"/>
-          </argument>
-        </service>
-      </argument>
-    </service>
-  </services>
-</container>
-', $dumper->dump());
-    }
-
-    public function testDumpEntities()
-    {
-        $container = include self::$fixturesPath.'/containers/container12.php';
-        $dumper = new XmlDumper($container);
-        $this->assertEquals("<?xml version=\"1.0\" encoding=\"utf-8\"?>
-<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd\">
-  <services>
-    <service id=\"foo\" class=\"FooClass\Foo\">
-      <tag name=\"foo&quot;bar\bar\" foo=\"foo&quot;barřž€\"/>
-      <argument>foo&lt;&gt;&amp;bar</argument>
-    </service>
-  </services>
-</container>
-", $dumper->dump());
-    }
-
-    /**
-     * @dataProvider provideDecoratedServicesData
-     */
-    public function testDumpDecoratedServices($expectedXmlDump, $container)
-    {
-        $dumper = new XmlDumper($container);
-        $this->assertEquals($expectedXmlDump, $dumper->dump());
-    }
-
-    public function provideDecoratedServicesData()
-    {
-        $fixturesPath = realpath(__DIR__.'/../Fixtures/');
-
-        return array(
-            array("<?xml version=\"1.0\" encoding=\"utf-8\"?>
-<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd\">
-  <services>
-    <service id=\"foo\" class=\"FooClass\Foo\" decorates=\"bar\" decoration-inner-name=\"bar.woozy\"/>
-  </services>
-</container>
-", include $fixturesPath.'/containers/container15.php'),
-            array("<?xml version=\"1.0\" encoding=\"utf-8\"?>
-<container xmlns=\"http://symfony.com/schema/dic/services\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd\">
-  <services>
-    <service id=\"foo\" class=\"FooClass\Foo\" decorates=\"bar\"/>
-  </services>
-</container>
-", include $fixturesPath.'/containers/container16.php'),
-        );
-    }
-
-    /**
-     * @dataProvider provideCompiledContainerData
-     */
-    public function testCompiledContainerCanBeDumped($containerFile)
-    {
-        $fixturesPath = __DIR__.'/../Fixtures';
-        $container = require $fixturesPath.'/containers/'.$containerFile.'.php';
-        $container->compile();
-        $dumper = new XmlDumper($container);
-        $dumper->dump();
-    }
-
-    public function provideCompiledContainerData()
-    {
-        return array(
-            array('container8'),
-            array('container9'),
-            array('container11'),
-            array('container12'),
-            array('container14'),
-        );
-    }
-
-    public function testDumpInlinedServices()
-    {
-        $container = include self::$fixturesPath.'/containers/container21.php';
-        $dumper = new XmlDumper($container);
-
-        $this->assertEquals(file_get_contents(self::$fixturesPath.'/xml/services21.xml'), $dumper->dump());
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Dumper/YamlDumperTest.php b/core/vendor/symfony/dependency-injection/Tests/Dumper/YamlDumperTest.php
deleted file mode 100644
index 8e9f117..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Dumper/YamlDumperTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Dumper;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Dumper\YamlDumper;
-
-class YamlDumperTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
-    }
-
-    public function testDump()
-    {
-        $dumper = new YamlDumper($container = new ContainerBuilder());
-
-        $this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services1.yml', $dumper->dump(), '->dump() dumps an empty container as an empty YAML file');
-
-        $container = new ContainerBuilder();
-        $dumper = new YamlDumper($container);
-    }
-
-    public function testAddParameters()
-    {
-        $container = include self::$fixturesPath.'/containers/container8.php';
-        $dumper = new YamlDumper($container);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services8.yml', $dumper->dump(), '->dump() dumps parameters');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAddService()
-    {
-        $container = include self::$fixturesPath.'/containers/legacy-container9.php';
-        $dumper = new YamlDumper($container);
-
-        $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/yaml/legacy-services9.yml')), $dumper->dump(), '->dump() dumps services');
-
-        $dumper = new YamlDumper($container = new ContainerBuilder());
-        $container->register('foo', 'FooClass')->addArgument(new \stdClass());
-        try {
-            $dumper->dump();
-            $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\RuntimeException', $e, '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-            $this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.', $e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        }
-    }
-
-    public function testAddService()
-    {
-        $container = include self::$fixturesPath.'/containers/container9.php';
-        $dumper = new YamlDumper($container);
-        $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/yaml/services9.yml')), $dumper->dump(), '->dump() dumps services');
-
-        $dumper = new YamlDumper($container = new ContainerBuilder());
-        $container->register('foo', 'FooClass')->addArgument(new \stdClass());
-        try {
-            $dumper->dump();
-            $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\RuntimeException', $e, '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-            $this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.', $e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Extension/ExtensionTest.php b/core/vendor/symfony/dependency-injection/Tests/Extension/ExtensionTest.php
deleted file mode 100644
index e7f19a6..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Extension/ExtensionTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Extension;
-
-class ExtensionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getResolvedEnabledFixtures
-     */
-    public function testIsConfigEnabledReturnsTheResolvedValue($enabled)
-    {
-        $pb = $this->getMockBuilder('Symfony\Component\DependencyInjection\ParameterBag\ParameterBag')
-            ->setMethods(array('resolveValue'))
-            ->getMock()
-        ;
-
-        $container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')
-            ->setMethods(array('getParameterBag'))
-            ->getMock()
-        ;
-
-        $pb->expects($this->once())
-            ->method('resolveValue')
-            ->with($this->equalTo($enabled))
-            ->will($this->returnValue($enabled))
-        ;
-
-        $container->expects($this->once())
-            ->method('getParameterBag')
-            ->will($this->returnValue($pb))
-        ;
-
-        $extension = $this->getMockBuilder('Symfony\Component\DependencyInjection\Extension\Extension')
-            ->setMethods(array())
-            ->getMockForAbstractClass()
-        ;
-
-        $r = new \ReflectionMethod('Symfony\Component\DependencyInjection\Extension\Extension', 'isConfigEnabled');
-        $r->setAccessible(true);
-
-        $r->invoke($extension, $container, array('enabled' => $enabled));
-    }
-
-    public function getResolvedEnabledFixtures()
-    {
-        return array(
-            array(true),
-            array(false),
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
-     * @expectedExceptionMessage The config array has no 'enabled' key.
-     */
-    public function testIsConfigEnabledOnNonEnableableConfig()
-    {
-        $container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')
-            ->getMock()
-        ;
-
-        $extension = $this->getMockBuilder('Symfony\Component\DependencyInjection\Extension\Extension')
-            ->setMethods(array())
-            ->getMockForAbstractClass()
-        ;
-
-        $r = new \ReflectionMethod('Symfony\Component\DependencyInjection\Extension\Extension', 'isConfigEnabled');
-        $r->setAccessible(true);
-
-        $r->invoke($extension, $container, array());
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container10.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container10.php
deleted file mode 100644
index a16ca9f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container10.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-require_once __DIR__.'/../includes/classes.php';
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-
-$container = new ContainerBuilder();
-$container->
-    register('foo', 'FooClass')->
-    addArgument(new Reference('bar'))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container11.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container11.php
deleted file mode 100644
index 3e6cafc..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container11.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-$container = new ContainerBuilder();
-$container->
-    register('foo', 'FooClass')->
-    addArgument(new Definition('BarClass', array(new Definition('BazClass'))))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container12.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container12.php
deleted file mode 100644
index 73c5b4e..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container12.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-$container = new ContainerBuilder();
-$container->
-    register('foo', 'FooClass\\Foo')->
-    addArgument('foo<>&bar')->
-    addTag('foo"bar\\bar', array('foo' => 'foo"barřž€'))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container13.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container13.php
deleted file mode 100644
index cc716c7..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container13.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-
-$container = new ContainerBuilder();
-$container->
-    register('foo', 'FooClass')->
-    addArgument(new Reference('bar'))
-;
-$container->
-    register('bar', 'BarClass')
-;
-$container->compile();
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container14.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container14.php
deleted file mode 100644
index 56ea6c1..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container14.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Container14;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * This file is included in Tests\Dumper\GraphvizDumperTest::testDumpWithFrozenCustomClassContainer
- * and Tests\Dumper\XmlDumperTest::testCompiledContainerCanBeDumped.
- */
-if (!class_exists('Container14\ProjectServiceContainer')) {
-    class ProjectServiceContainer extends ContainerBuilder
-    {
-    }
-}
-
-return new ProjectServiceContainer();
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container15.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container15.php
deleted file mode 100644
index bb41ea3..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container15.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-$container = new ContainerBuilder();
-$container
-    ->register('foo', 'FooClass\\Foo')
-    ->setDecoratedService('bar', 'bar.woozy')
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container16.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container16.php
deleted file mode 100644
index 67b4d35..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container16.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-$container = new ContainerBuilder();
-$container
-    ->register('foo', 'FooClass\\Foo')
-    ->setDecoratedService('bar')
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container17.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container17.php
deleted file mode 100644
index d902ec2..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container17.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-$container = new ContainerBuilder();
-$container
-    ->register('foo', '%foo.class%')
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container18.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container18.php
deleted file mode 100644
index 0248ed4..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container18.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Scope;
-
-$container = new ContainerBuilder();
-$container->addScope(new Scope('request'));
-$container->
-    register('foo', 'FooClass')->
-    setScope('request')
-;
-$container->compile();
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container19.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container19.php
deleted file mode 100644
index 64b8f06..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container19.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-require_once __DIR__.'/../includes/classes.php';
-
-$container = new ContainerBuilder();
-
-$container
-    ->register('service_from_anonymous_factory', 'Bar\FooClass')
-    ->setFactory(array(new Definition('Bar\FooClass'), 'getInstance'))
-;
-
-$anonymousServiceWithFactory = new Definition('Bar\FooClass');
-$anonymousServiceWithFactory->setFactory('Bar\FooClass::getInstance');
-$container
-    ->register('service_with_method_call_and_factory', 'Bar\FooClass')
-    ->addMethodCall('setBar', array($anonymousServiceWithFactory))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container20.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container20.php
deleted file mode 100644
index a40a0e8..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container20.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-require_once __DIR__.'/../includes/classes.php';
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-
-$container = new ContainerBuilder();
-$container
-    ->register('request', 'Request')
-    ->setSynchronized(true)
-;
-$container
-    ->register('depends_on_request', 'stdClass')
-    ->addMethodCall('setRequest', array(new Reference('request', ContainerInterface::NULL_ON_INVALID_REFERENCE, false)))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container21.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container21.php
deleted file mode 100644
index d046738..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container21.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-$container = new ContainerBuilder();
-
-$bar = new Definition('Bar');
-$bar->setConfigurator(array(new Definition('Baz'), 'configureBar'));
-
-$fooFactory = new Definition('FooFactory');
-$fooFactory->setFactory(array(new Definition('Foobar'), 'createFooFactory'));
-
-$container
-    ->register('foo', 'Foo')
-    ->setFactory(array($fooFactory, 'createFoo'))
-    ->setConfigurator(array($bar, 'configureFoo'))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container8.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container8.php
deleted file mode 100644
index f0b4ca9..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container8.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-$container = new ContainerBuilder(new ParameterBag(array(
-    'FOO' => '%baz%',
-    'baz' => 'bar',
-    'bar' => 'foo is %%foo bar',
-    'escape' => '@escapeme',
-    'values' => array(true, false, null, 0, 1000.3, 'true', 'false', 'null'),
-)));
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container9.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container9.php
deleted file mode 100644
index e97a2dd..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/container9.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-require_once __DIR__.'/../includes/classes.php';
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-$container = new ContainerBuilder();
-$container
-    ->register('foo', 'Bar\FooClass')
-    ->addTag('foo', array('foo' => 'foo'))
-    ->addTag('foo', array('bar' => 'bar', 'baz' => 'baz'))
-    ->setFactory(array('Bar\\FooClass', 'getInstance'))
-    ->setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))
-    ->setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz'), 'qux' => array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%')))
-    ->addMethodCall('setBar', array(new Reference('bar')))
-    ->addMethodCall('initialize')
-    ->setConfigurator('sc_configure')
-;
-$container
-    ->register('foo.baz', '%baz_class%')
-    ->setFactory(array('%baz_class%', 'getInstance'))
-    ->setConfigurator(array('%baz_class%', 'configureStatic1'))
-;
-$container
-    ->register('bar', 'Bar\FooClass')
-    ->setArguments(array('foo', new Reference('foo.baz'), new Parameter('foo_bar')))
-    ->setScope('container')
-    ->setConfigurator(array(new Reference('foo.baz'), 'configure'))
-;
-$container
-    ->register('foo_bar', '%foo_class%')
-    ->setScope('prototype')
-;
-$container->getParameterBag()->clear();
-$container->getParameterBag()->add(array(
-    'baz_class' => 'BazClass',
-    'foo_class' => 'Bar\FooClass',
-    'foo' => 'bar',
-));
-$container->setAlias('alias_for_foo', 'foo');
-$container->setAlias('alias_for_alias', 'alias_for_foo');
-$container
-    ->register('method_call1', 'Bar\FooClass')
-    ->setFile(realpath(__DIR__.'/../includes/foo.php'))
-    ->addMethodCall('setBar', array(new Reference('foo')))
-    ->addMethodCall('setBar', array(new Reference('foo2', ContainerInterface::NULL_ON_INVALID_REFERENCE)))
-    ->addMethodCall('setBar', array(new Reference('foo3', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
-    ->addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE)))
-    ->addMethodCall('setBar', array(new Expression('service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")')))
-;
-$container
-    ->register('foo_with_inline', 'Foo')
-    ->addMethodCall('setBar', array(new Reference('inlined')))
-;
-$container
-    ->register('inlined', 'Bar')
-    ->setProperty('pub', 'pub')
-    ->addMethodCall('setBaz', array(new Reference('baz')))
-    ->setPublic(false)
-;
-$container
-    ->register('baz', 'Baz')
-    ->addMethodCall('setFoo', array(new Reference('foo_with_inline')))
-;
-$container
-    ->register('request', 'Request')
-    ->setSynthetic(true)
-;
-$container
-    ->register('configurator_service', 'ConfClass')
-    ->setPublic(false)
-    ->addMethodCall('setFoo', array(new Reference('baz')))
-;
-$container
-    ->register('configured_service', 'stdClass')
-    ->setConfigurator(array(new Reference('configurator_service'), 'configureStdClass'))
-;
-$container
-    ->register('decorated', 'stdClass')
-;
-$container
-    ->register('decorator_service', 'stdClass')
-    ->setDecoratedService('decorated')
-;
-$container
-    ->register('decorator_service_with_name', 'stdClass')
-    ->setDecoratedService('decorated', 'decorated.pif-pouf')
-;
-$container
-    ->register('new_factory', 'FactoryClass')
-    ->setProperty('foo', 'bar')
-    ->setScope('container')
-    ->setPublic(false)
-;
-$container
-    ->register('factory_service', 'Bar')
-    ->setFactory(array(new Reference('foo.baz'), 'getInstance'))
-;
-$container
-    ->register('new_factory_service', 'FooBarBaz')
-    ->setProperty('foo', 'bar')
-    ->setFactory(array(new Reference('new_factory'), 'getInstance'))
-;
-$container
-    ->register('service_from_static_method', 'Bar\FooClass')
-    ->setFactory(array('Bar\FooClass', 'getInstance'))
-;
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/legacy-container9.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/legacy-container9.php
deleted file mode 100644
index 9f4210c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/containers/legacy-container9.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-require_once __DIR__.'/../includes/classes.php';
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-$container = new ContainerBuilder();
-$container->
-    register('foo', 'Bar\FooClass')->
-    addTag('foo', array('foo' => 'foo'))->
-    addTag('foo', array('bar' => 'bar'))->
-    setFactoryClass('Bar\\FooClass')->
-    setFactoryMethod('getInstance')->
-    setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))->
-    setProperties(array('foo' => 'bar', 'moo' => new Reference('foo.baz'), 'qux' => array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%')))->
-    addMethodCall('setBar', array(new Reference('bar')))->
-    addMethodCall('initialize')->
-    setConfigurator('sc_configure')
-;
-$container->
-    register('foo.baz', '%baz_class%')->
-    setFactoryClass('%baz_class%')->
-    setFactoryMethod('getInstance')->
-    setConfigurator(array('%baz_class%', 'configureStatic1'))
-;
-$container->
-    register('factory_service', 'Bar')->
-    setFactoryService('foo.baz')->
-    setFactoryMethod('getInstance')
-;
-$container->getParameterBag()->clear();
-$container->getParameterBag()->add(array(
-    'baz_class' => 'BazClass',
-    'foo' => 'bar',
-));
-
-return $container;
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/legacy-services9.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/legacy-services9.dot
deleted file mode 100644
index 4e8dfb9..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/legacy-services9.dot
+++ /dev/null
@@ -1,15 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_foo [label="foo\nBar\\FooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_foo_baz [label="foo.baz\nBazClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_factory_service [label="factory_service\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-  node_bar [label="bar\n\n", shape=record, fillcolor="#ff9999", style="filled"];
-  node_foo -> node_foo_baz [label="" style="filled"];
-  node_foo -> node_service_container [label="" style="filled"];
-  node_foo -> node_foo_baz [label="" style="dashed"];
-  node_foo -> node_bar [label="setBar()" style="dashed"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services1.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services1.dot
deleted file mode 100644
index 1bb7c30..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services1.dot
+++ /dev/null
@@ -1,7 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services10-1.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services10-1.dot
deleted file mode 100644
index 0e578b1..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services10-1.dot
+++ /dev/null
@@ -1,10 +0,0 @@
-digraph sc {
-  ratio="normal"
-  node [fontsize="13" fontname="Verdana" shape="square"];
-  edge [fontsize="12" fontname="Verdana" color="white" arrowhead="closed" arrowsize="1"];
-
-  node_foo [label="foo\nFooClass\n", shape=square, fillcolor="grey", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=square, fillcolor="green", style="empty"];
-  node_bar [label="bar\n\n", shape=square, fillcolor="red", style="empty"];
-  node_foo -> node_bar [label="" style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services10.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services10.dot
deleted file mode 100644
index f17857f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services10.dot
+++ /dev/null
@@ -1,10 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_foo [label="foo\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-  node_bar [label="bar\n\n", shape=record, fillcolor="#ff9999", style="filled"];
-  node_foo -> node_bar [label="" style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services13.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services13.dot
deleted file mode 100644
index bc7f813..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services13.dot
+++ /dev/null
@@ -1,10 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_foo [label="foo\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_bar [label="bar\nBarClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-  node_foo -> node_bar [label="" style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services14.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services14.dot
deleted file mode 100644
index d07dc38..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services14.dot
+++ /dev/null
@@ -1,7 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_service_container [label="service_container\nContainer14\\ProjectServiceContainer\n", shape=record, fillcolor="#9999ff", style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services17.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services17.dot
deleted file mode 100644
index a6d04bf..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services17.dot
+++ /dev/null
@@ -1,8 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_foo [label="foo\n%foo.class%\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services18.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services18.dot
deleted file mode 100644
index 4fbccee..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services18.dot
+++ /dev/null
@@ -1,8 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_foo [label="foo\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services9.dot b/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services9.dot
deleted file mode 100644
index b3b424e..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/graphviz/services9.dot
+++ /dev/null
@@ -1,41 +0,0 @@
-digraph sc {
-  ratio="compress"
-  node [fontsize="11" fontname="Arial" shape="record"];
-  edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
-
-  node_foo [label="foo (alias_for_foo)\nBar\\FooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_foo_baz [label="foo.baz\nBazClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_bar [label="bar\nBar\\FooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_foo_bar [label="foo_bar\nBar\\FooClass\n", shape=record, fillcolor="#eeeeee", style="dotted"];
-  node_method_call1 [label="method_call1\nBar\\FooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_foo_with_inline [label="foo_with_inline\nFoo\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_inlined [label="inlined\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_baz [label="baz\nBaz\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_request [label="request\nRequest\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_configurator_service [label="configurator_service\nConfClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_configured_service [label="configured_service\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_decorated [label="decorated\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_decorator_service [label="decorator_service\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_decorator_service_with_name [label="decorator_service_with_name\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_new_factory [label="new_factory\nFactoryClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_factory_service [label="factory_service\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_new_factory_service [label="new_factory_service\nFooBarBaz\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_from_static_method [label="service_from_static_method\nBar\\FooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
-  node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
-  node_foo2 [label="foo2\n\n", shape=record, fillcolor="#ff9999", style="filled"];
-  node_foo3 [label="foo3\n\n", shape=record, fillcolor="#ff9999", style="filled"];
-  node_foobaz [label="foobaz\n\n", shape=record, fillcolor="#ff9999", style="filled"];
-  node_foo -> node_foo_baz [label="" style="filled"];
-  node_foo -> node_service_container [label="" style="filled"];
-  node_foo -> node_foo_baz [label="" style="dashed"];
-  node_foo -> node_bar [label="setBar()" style="dashed"];
-  node_bar -> node_foo_baz [label="" style="filled"];
-  node_method_call1 -> node_foo [label="setBar()" style="dashed"];
-  node_method_call1 -> node_foo2 [label="setBar()" style="dashed"];
-  node_method_call1 -> node_foo3 [label="setBar()" style="dashed"];
-  node_method_call1 -> node_foobaz [label="setBar()" style="dashed"];
-  node_foo_with_inline -> node_inlined [label="setBar()" style="dashed"];
-  node_inlined -> node_baz [label="setBaz()" style="dashed"];
-  node_baz -> node_foo_with_inline [label="setFoo()" style="dashed"];
-  node_configurator_service -> node_baz [label="setFoo()" style="dashed"];
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectExtension.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectExtension.php
deleted file mode 100644
index c9f8010..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectExtension.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
-
-class ProjectExtension implements ExtensionInterface
-{
-    public function load(array $configs, ContainerBuilder $configuration)
-    {
-        $config = call_user_func_array('array_merge', $configs);
-
-        $configuration->setDefinition('project.service.bar', new Definition('FooClass'));
-        $configuration->setParameter('project.parameter.bar', isset($config['foo']) ? $config['foo'] : 'foobar');
-
-        $configuration->setDefinition('project.service.foo', new Definition('FooClass'));
-        $configuration->setParameter('project.parameter.foo', isset($config['foo']) ? $config['foo'] : 'foobar');
-
-        return $configuration;
-    }
-
-    public function getXsdValidationBasePath()
-    {
-        return false;
-    }
-
-    public function getNamespace()
-    {
-        return 'http://www.example.com/schema/project';
-    }
-
-    public function getAlias()
-    {
-        return 'project';
-    }
-
-    public function getConfiguration(array $config, ContainerBuilder $container)
-    {
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectWithXsdExtension.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectWithXsdExtension.php
deleted file mode 100644
index 2ee2f12..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/ProjectWithXsdExtension.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-class ProjectWithXsdExtension extends ProjectExtension
-{
-    public function getXsdValidationBasePath()
-    {
-        return __DIR__.'/schema';
-    }
-
-    public function getNamespace()
-    {
-        return 'http://www.example.com/schema/projectwithxsd';
-    }
-
-    public function getAlias()
-    {
-        return 'projectwithxsd';
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/classes.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/classes.php
deleted file mode 100644
index 70c3d27..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/classes.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-function sc_configure($instance)
-{
-    $instance->configure();
-}
-
-class BarClass
-{
-    protected $baz;
-    public $foo = 'foo';
-
-    public function setBaz(BazClass $baz)
-    {
-        $this->baz = $baz;
-    }
-
-    public function getBaz()
-    {
-        return $this->baz;
-    }
-}
-
-class BazClass
-{
-    protected $foo;
-
-    public function setFoo(Foo $foo)
-    {
-        $this->foo = $foo;
-    }
-
-    public function configure($instance)
-    {
-        $instance->configure();
-    }
-
-    public static function getInstance()
-    {
-        return new self();
-    }
-
-    public static function configureStatic($instance)
-    {
-        $instance->configure();
-    }
-
-    public static function configureStatic1()
-    {
-    }
-}
-
-class BarUserClass
-{
-    public $bar;
-
-    public function __construct(BarClass $bar)
-    {
-        $this->bar = $bar;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/createphar.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/createphar.php
deleted file mode 100644
index 5fa06a0..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/createphar.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-$file = __DIR__.'/ProjectWithXsdExtensionInPhar.phar';
-if (is_file($file)) {
-    @unlink($file);
-}
-
-$phar = new Phar($file, 0, 'ProjectWithXsdExtensionInPhar.phar');
-$phar->addFromString('ProjectWithXsdExtensionInPhar.php', <<<EOT
-<?php
-
-class ProjectWithXsdExtensionInPhar extends ProjectExtension
-{
-    public function getXsdValidationBasePath()
-    {
-        return __DIR__.'/schema';
-    }
-
-    public function getNamespace()
-    {
-        return 'http://www.example.com/schema/projectwithxsdinphar';
-    }
-
-    public function getAlias()
-    {
-        return 'projectwithxsdinphar';
-    }
-}
-EOT
-);
-$phar->addFromString('schema/project-1.0.xsd', <<<EOT
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<xsd:schema xmlns="http://www.example.com/schema/projectwithxsdinphar"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    targetNamespace="http://www.example.com/schema/projectwithxsdinphar"
-    elementFormDefault="qualified">
-
-  <xsd:element name="bar" type="bar" />
-
-  <xsd:complexType name="bar">
-    <xsd:attribute name="foo" type="xsd:string" />
-  </xsd:complexType>
-</xsd:schema>
-EOT
-);
-$phar->setStub('<?php Phar::mapPhar("ProjectWithXsdExtensionInPhar.phar"); require_once "phar://ProjectWithXsdExtensionInPhar.phar/ProjectWithXsdExtensionInPhar.php"; __HALT_COMPILER(); ?>');
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/foo.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/foo.php
deleted file mode 100644
index 55968af..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/foo.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Bar;
-
-class FooClass
-{
-    public $foo, $moo;
-
-    public $bar = null, $initialized = false, $configured = false, $called = false, $arguments = array();
-
-    public function __construct($arguments = array())
-    {
-        $this->arguments = $arguments;
-    }
-
-    public static function getInstance($arguments = array())
-    {
-        $obj = new self($arguments);
-        $obj->called = true;
-
-        return $obj;
-    }
-
-    public function initialize()
-    {
-        $this->initialized = true;
-    }
-
-    public function configure()
-    {
-        $this->configured = true;
-    }
-
-    public function setBar($value = null)
-    {
-        $this->bar = $value;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/schema/project-1.0.xsd b/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/schema/project-1.0.xsd
deleted file mode 100644
index 282884e..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/includes/schema/project-1.0.xsd
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<xsd:schema xmlns="http://www.example.com/schema/projectwithxsd"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    targetNamespace="http://www.example.com/schema/projectwithxsd"
-    elementFormDefault="qualified">
-
-  <xsd:element name="bar" type="bar" />
-
-  <xsd:complexType name="bar">
-    <xsd:attribute name="foo" type="xsd:string" />
-  </xsd:complexType>
-</xsd:schema>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/nonvalid.ini b/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/nonvalid.ini
deleted file mode 100644
index 9f84a60..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/nonvalid.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-{NOT AN INI FILE}
-{JUST A PLAIN TEXT FILE}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters.ini b/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters.ini
deleted file mode 100644
index df92f75..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[parameters]
-  foo = bar
-  bar = %foo%
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters1.ini b/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters1.ini
deleted file mode 100644
index e50f722..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters1.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[parameters]
-  FOO = foo
-  baz = baz
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters2.ini b/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters2.ini
deleted file mode 100644
index 75fbac6..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/ini/parameters2.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[parameters]
-  imported_from_ini = true
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services1-1.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services1-1.php
deleted file mode 100644
index f157711..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services1-1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-namespace Symfony\Component\DependencyInjection\Dump;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * Container.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class Container extends AbstractContainer
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        parent::__construct();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services1.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services1.php
deleted file mode 100644
index 5497a75..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services1.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        parent::__construct();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services10.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services10.php
deleted file mode 100644
index b9b8d5b..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services10.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->parameters = $this->getDefaultParameters();
-
-        $this->services =
-        $this->scopedServices =
-        $this->scopeStacks = array();
-        $this->scopes = array();
-        $this->scopeChildren = array();
-        $this->methodMap = array(
-            'test' => 'getTestService',
-        );
-
-        $this->aliases = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function compile()
-    {
-        throw new LogicException('You cannot compile a dumped frozen container.');
-    }
-
-    /**
-     * Gets the 'test' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getTestService()
-    {
-        return $this->services['test'] = new \stdClass(array('only dot' => '.', 'concatenation as value' => '.\'\'.', 'concatenation from the start value' => '\'\'.', '.' => 'dot as a key', '.\'\'.' => 'concatenation as a key', '\'\'.' => 'concatenation from the start key', 'optimize concatenation' => 'string1-string2', 'optimize concatenation with empty string' => 'string1string2', 'optimize concatenation from the start' => 'start', 'optimize concatenation at the end' => 'end'));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameter($name)
-    {
-        $name = strtolower($name);
-
-        if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters))) {
-            throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
-        }
-
-        return $this->parameters[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasParameter($name)
-    {
-        $name = strtolower($name);
-
-        return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameter($name, $value)
-    {
-        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameterBag()
-    {
-        if (null === $this->parameterBag) {
-            $this->parameterBag = new FrozenParameterBag($this->parameters);
-        }
-
-        return $this->parameterBag;
-    }
-
-    /**
-     * Gets the default parameters.
-     *
-     * @return array An array of the default parameters
-     */
-    protected function getDefaultParameters()
-    {
-        return array(
-            'empty_value' => '',
-            'some_string' => '-',
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services12.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services12.php
deleted file mode 100644
index a53f3a3..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services12.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $dir = __DIR__;
-        for ($i = 1; $i <= 5; ++$i) {
-            $this->targetDirs[$i] = $dir = dirname($dir);
-        }
-        $this->parameters = $this->getDefaultParameters();
-
-        $this->services =
-        $this->scopedServices =
-        $this->scopeStacks = array();
-        $this->scopes = array();
-        $this->scopeChildren = array();
-        $this->methodMap = array(
-            'test' => 'getTestService',
-        );
-
-        $this->aliases = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function compile()
-    {
-        throw new LogicException('You cannot compile a dumped frozen container.');
-    }
-
-    /**
-     * Gets the 'test' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getTestService()
-    {
-        return $this->services['test'] = new \stdClass(('wiz'.$this->targetDirs[1]), array(('wiz'.$this->targetDirs[1]) => ($this->targetDirs[2].'/')));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameter($name)
-    {
-        $name = strtolower($name);
-
-        if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters))) {
-            throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
-        }
-
-        return $this->parameters[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasParameter($name)
-    {
-        $name = strtolower($name);
-
-        return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameter($name, $value)
-    {
-        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameterBag()
-    {
-        if (null === $this->parameterBag) {
-            $this->parameterBag = new FrozenParameterBag($this->parameters);
-        }
-
-        return $this->parameterBag;
-    }
-
-    /**
-     * Gets the default parameters.
-     *
-     * @return array An array of the default parameters
-     */
-    protected function getDefaultParameters()
-    {
-        return array(
-            'foo' => ('wiz'.$this->targetDirs[1]),
-            'bar' => __DIR__,
-            'baz' => (__DIR__.'/PhpDumperTest.php'),
-            'buz' => $this->targetDirs[2],
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services19.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services19.php
deleted file mode 100644
index 455600d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services19.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        parent::__construct();
-        $this->methodMap = array(
-            'service_from_anonymous_factory' => 'getServiceFromAnonymousFactoryService',
-            'service_with_method_call_and_factory' => 'getServiceWithMethodCallAndFactoryService',
-        );
-    }
-
-    /**
-     * Gets the 'service_from_anonymous_factory' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getServiceFromAnonymousFactoryService()
-    {
-        return $this->services['service_from_anonymous_factory'] = call_user_func(array(new \Bar\FooClass(), 'getInstance'));
-    }
-
-    /**
-     * Gets the 'service_with_method_call_and_factory' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getServiceWithMethodCallAndFactoryService()
-    {
-        $this->services['service_with_method_call_and_factory'] = $instance = new \Bar\FooClass();
-
-        $instance->setBar(\Bar\FooClass::getInstance());
-
-        return $instance;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services20.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services20.php
deleted file mode 100644
index 83f6dc7..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services20.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        parent::__construct();
-        $this->methodMap = array(
-            'depends_on_request' => 'getDependsOnRequestService',
-            'request' => 'getRequestService',
-        );
-    }
-
-    /**
-     * Gets the 'depends_on_request' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getDependsOnRequestService()
-    {
-        $this->services['depends_on_request'] = $instance = new \stdClass();
-
-        $instance->setRequest($this->get('request', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'request' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Request A Request instance.
-     */
-    protected function getRequestService()
-    {
-        return $this->services['request'] = new \Request();
-    }
-
-    /**
-     * Updates the 'request' service.
-     */
-    protected function synchronizeRequestService()
-    {
-        if ($this->initialized('depends_on_request')) {
-            $this->get('depends_on_request')->setRequest($this->get('request', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services8.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services8.php
deleted file mode 100644
index c2c52fe..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services8.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        parent::__construct(new ParameterBag($this->getDefaultParameters()));
-    }
-
-    /**
-     * Gets the default parameters.
-     *
-     * @return array An array of the default parameters
-     */
-    protected function getDefaultParameters()
-    {
-        return array(
-            'foo' => '%baz%',
-            'baz' => 'bar',
-            'bar' => 'foo is %%foo bar',
-            'escape' => '@escapeme',
-            'values' => array(
-                0 => true,
-                1 => false,
-                2 => NULL,
-                3 => 0,
-                4 => 1000.3,
-                5 => 'true',
-                6 => 'false',
-                7 => 'null',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services9.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services9.php
deleted file mode 100644
index 5977c1c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services9.php
+++ /dev/null
@@ -1,376 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        parent::__construct(new ParameterBag($this->getDefaultParameters()));
-        $this->methodMap = array(
-            'bar' => 'getBarService',
-            'baz' => 'getBazService',
-            'configurator_service' => 'getConfiguratorServiceService',
-            'configured_service' => 'getConfiguredServiceService',
-            'decorated' => 'getDecoratedService',
-            'decorator_service' => 'getDecoratorServiceService',
-            'decorator_service_with_name' => 'getDecoratorServiceWithNameService',
-            'factory_service' => 'getFactoryServiceService',
-            'foo' => 'getFooService',
-            'foo.baz' => 'getFoo_BazService',
-            'foo_bar' => 'getFooBarService',
-            'foo_with_inline' => 'getFooWithInlineService',
-            'inlined' => 'getInlinedService',
-            'method_call1' => 'getMethodCall1Service',
-            'new_factory' => 'getNewFactoryService',
-            'new_factory_service' => 'getNewFactoryServiceService',
-            'request' => 'getRequestService',
-            'service_from_static_method' => 'getServiceFromStaticMethodService',
-        );
-        $this->aliases = array(
-            'alias_for_alias' => 'foo',
-            'alias_for_foo' => 'foo',
-        );
-    }
-
-    /**
-     * Gets the 'bar' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getBarService()
-    {
-        $a = $this->get('foo.baz');
-
-        $this->services['bar'] = $instance = new \Bar\FooClass('foo', $a, $this->getParameter('foo_bar'));
-
-        $a->configure($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'baz' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Baz A Baz instance.
-     */
-    protected function getBazService()
-    {
-        $this->services['baz'] = $instance = new \Baz();
-
-        $instance->setFoo($this->get('foo_with_inline'));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'configured_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getConfiguredServiceService()
-    {
-        $this->services['configured_service'] = $instance = new \stdClass();
-
-        $this->get('configurator_service')->configureStdClass($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'decorated' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getDecoratedService()
-    {
-        return $this->services['decorated'] = new \stdClass();
-    }
-
-    /**
-     * Gets the 'decorator_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getDecoratorServiceService()
-    {
-        return $this->services['decorator_service'] = new \stdClass();
-    }
-
-    /**
-     * Gets the 'decorator_service_with_name' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getDecoratorServiceWithNameService()
-    {
-        return $this->services['decorator_service_with_name'] = new \stdClass();
-    }
-
-    /**
-     * Gets the 'factory_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar A Bar instance.
-     */
-    protected function getFactoryServiceService()
-    {
-        return $this->services['factory_service'] = $this->get('foo.baz')->getInstance();
-    }
-
-    /**
-     * Gets the 'foo' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getFooService()
-    {
-        $a = $this->get('foo.baz');
-
-        $this->services['foo'] = $instance = \Bar\FooClass::getInstance('foo', $a, array($this->getParameter('foo') => 'foo is '.$this->getParameter('foo').'', 'foobar' => $this->getParameter('foo')), true, $this);
-
-        $instance->setBar($this->get('bar'));
-        $instance->initialize();
-        $instance->foo = 'bar';
-        $instance->moo = $a;
-        $instance->qux = array($this->getParameter('foo') => 'foo is '.$this->getParameter('foo').'', 'foobar' => $this->getParameter('foo'));
-        sc_configure($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'foo.baz' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return object A %baz_class% instance.
-     */
-    protected function getFoo_BazService()
-    {
-        $this->services['foo.baz'] = $instance = call_user_func(array($this->getParameter('baz_class'), 'getInstance'));
-
-        call_user_func(array($this->getParameter('baz_class'), 'configureStatic1'), $instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'foo_bar' service.
-     *
-     * @return object A %foo_class% instance.
-     */
-    protected function getFooBarService()
-    {
-        $class = $this->getParameter('foo_class');
-
-        return new $class();
-    }
-
-    /**
-     * Gets the 'foo_with_inline' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Foo A Foo instance.
-     */
-    protected function getFooWithInlineService()
-    {
-        $this->services['foo_with_inline'] = $instance = new \Foo();
-
-        $instance->setBar($this->get('inlined'));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'method_call1' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getMethodCall1Service()
-    {
-        require_once '%path%foo.php';
-
-        $this->services['method_call1'] = $instance = new \Bar\FooClass();
-
-        $instance->setBar($this->get('foo'));
-        $instance->setBar($this->get('foo2', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-        if ($this->has('foo3')) {
-            $instance->setBar($this->get('foo3', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-        }
-        if ($this->has('foobaz')) {
-            $instance->setBar($this->get('foobaz', ContainerInterface::NULL_ON_INVALID_REFERENCE));
-        }
-        $instance->setBar(($this->get("foo")->foo() . (($this->hasparameter("foo")) ? ($this->getParameter("foo")) : ("default"))));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'new_factory_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \FooBarBaz A FooBarBaz instance.
-     */
-    protected function getNewFactoryServiceService()
-    {
-        $this->services['new_factory_service'] = $instance = $this->get('new_factory')->getInstance();
-
-        $instance->foo = 'bar';
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'request' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @throws RuntimeException always since this service is expected to be injected dynamically
-     */
-    protected function getRequestService()
-    {
-        throw new RuntimeException('You have requested a synthetic service ("request"). The DIC does not know how to construct this service.');
-    }
-
-    /**
-     * Gets the 'service_from_static_method' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getServiceFromStaticMethodService()
-    {
-        return $this->services['service_from_static_method'] = \Bar\FooClass::getInstance();
-    }
-
-    /**
-     * Gets the 'configurator_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * This service is private.
-     * If you want to be able to request this service from the container directly,
-     * make it public, otherwise you might end up with broken code.
-     *
-     * @return \ConfClass A ConfClass instance.
-     */
-    protected function getConfiguratorServiceService()
-    {
-        $this->services['configurator_service'] = $instance = new \ConfClass();
-
-        $instance->setFoo($this->get('baz'));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'inlined' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * This service is private.
-     * If you want to be able to request this service from the container directly,
-     * make it public, otherwise you might end up with broken code.
-     *
-     * @return \Bar A Bar instance.
-     */
-    protected function getInlinedService()
-    {
-        $this->services['inlined'] = $instance = new \Bar();
-
-        $instance->setBaz($this->get('baz'));
-        $instance->pub = 'pub';
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'new_factory' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * This service is private.
-     * If you want to be able to request this service from the container directly,
-     * make it public, otherwise you might end up with broken code.
-     *
-     * @return \FactoryClass A FactoryClass instance.
-     */
-    protected function getNewFactoryService()
-    {
-        $this->services['new_factory'] = $instance = new \FactoryClass();
-
-        $instance->foo = 'bar';
-
-        return $instance;
-    }
-
-    /**
-     * Gets the default parameters.
-     *
-     * @return array An array of the default parameters
-     */
-    protected function getDefaultParameters()
-    {
-        return array(
-            'baz_class' => 'BazClass',
-            'foo_class' => 'Bar\\FooClass',
-            'foo' => 'bar',
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services9_compiled.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services9_compiled.php
deleted file mode 100644
index 8c1e71f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/services9_compiled.php
+++ /dev/null
@@ -1,357 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
-
-/**
- * ProjectServiceContainer.
- *
- * This class has been auto-generated
- * by the Symfony Dependency Injection Component.
- */
-class ProjectServiceContainer extends Container
-{
-    private $parameters;
-    private $targetDirs = array();
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        $this->parameters = $this->getDefaultParameters();
-
-        $this->services =
-        $this->scopedServices =
-        $this->scopeStacks = array();
-        $this->scopes = array();
-        $this->scopeChildren = array();
-        $this->methodMap = array(
-            'bar' => 'getBarService',
-            'baz' => 'getBazService',
-            'configured_service' => 'getConfiguredServiceService',
-            'decorator_service' => 'getDecoratorServiceService',
-            'decorator_service_with_name' => 'getDecoratorServiceWithNameService',
-            'factory_service' => 'getFactoryServiceService',
-            'foo' => 'getFooService',
-            'foo.baz' => 'getFoo_BazService',
-            'foo_bar' => 'getFooBarService',
-            'foo_with_inline' => 'getFooWithInlineService',
-            'method_call1' => 'getMethodCall1Service',
-            'new_factory_service' => 'getNewFactoryServiceService',
-            'request' => 'getRequestService',
-            'service_from_static_method' => 'getServiceFromStaticMethodService',
-        );
-        $this->aliases = array(
-            'alias_for_alias' => 'foo',
-            'alias_for_foo' => 'foo',
-            'decorated' => 'decorator_service_with_name',
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function compile()
-    {
-        throw new LogicException('You cannot compile a dumped frozen container.');
-    }
-
-    /**
-     * Gets the 'bar' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getBarService()
-    {
-        $a = $this->get('foo.baz');
-
-        $this->services['bar'] = $instance = new \Bar\FooClass('foo', $a, $this->getParameter('foo_bar'));
-
-        $a->configure($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'baz' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Baz A Baz instance.
-     */
-    protected function getBazService()
-    {
-        $this->services['baz'] = $instance = new \Baz();
-
-        $instance->setFoo($this->get('foo_with_inline'));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'configured_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getConfiguredServiceService()
-    {
-        $a = new \ConfClass();
-        $a->setFoo($this->get('baz'));
-
-        $this->services['configured_service'] = $instance = new \stdClass();
-
-        $a->configureStdClass($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'decorator_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getDecoratorServiceService()
-    {
-        return $this->services['decorator_service'] = new \stdClass();
-    }
-
-    /**
-     * Gets the 'decorator_service_with_name' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \stdClass A stdClass instance.
-     */
-    protected function getDecoratorServiceWithNameService()
-    {
-        return $this->services['decorator_service_with_name'] = new \stdClass();
-    }
-
-    /**
-     * Gets the 'factory_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar A Bar instance.
-     */
-    protected function getFactoryServiceService()
-    {
-        return $this->services['factory_service'] = $this->get('foo.baz')->getInstance();
-    }
-
-    /**
-     * Gets the 'foo' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getFooService()
-    {
-        $a = $this->get('foo.baz');
-
-        $this->services['foo'] = $instance = \Bar\FooClass::getInstance('foo', $a, array('bar' => 'foo is bar', 'foobar' => 'bar'), true, $this);
-
-        $instance->setBar($this->get('bar'));
-        $instance->initialize();
-        $instance->foo = 'bar';
-        $instance->moo = $a;
-        $instance->qux = array('bar' => 'foo is bar', 'foobar' => 'bar');
-        sc_configure($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'foo.baz' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \BazClass A BazClass instance.
-     */
-    protected function getFoo_BazService()
-    {
-        $this->services['foo.baz'] = $instance = \BazClass::getInstance();
-
-        \BazClass::configureStatic1($instance);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'foo_bar' service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getFooBarService()
-    {
-        return new \Bar\FooClass();
-    }
-
-    /**
-     * Gets the 'foo_with_inline' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Foo A Foo instance.
-     */
-    protected function getFooWithInlineService()
-    {
-        $a = new \Bar();
-
-        $this->services['foo_with_inline'] = $instance = new \Foo();
-
-        $a->setBaz($this->get('baz'));
-        $a->pub = 'pub';
-
-        $instance->setBar($a);
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'method_call1' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getMethodCall1Service()
-    {
-        require_once '%path%foo.php';
-
-        $this->services['method_call1'] = $instance = new \Bar\FooClass();
-
-        $instance->setBar($this->get('foo'));
-        $instance->setBar(NULL);
-        $instance->setBar(($this->get("foo")->foo() . (($this->hasparameter("foo")) ? ($this->getParameter("foo")) : ("default"))));
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'new_factory_service' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \FooBarBaz A FooBarBaz instance.
-     */
-    protected function getNewFactoryServiceService()
-    {
-        $a = new \FactoryClass();
-        $a->foo = 'bar';
-
-        $this->services['new_factory_service'] = $instance = $a->getInstance();
-
-        $instance->foo = 'bar';
-
-        return $instance;
-    }
-
-    /**
-     * Gets the 'request' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @throws RuntimeException always since this service is expected to be injected dynamically
-     */
-    protected function getRequestService()
-    {
-        throw new RuntimeException('You have requested a synthetic service ("request"). The DIC does not know how to construct this service.');
-    }
-
-    /**
-     * Gets the 'service_from_static_method' service.
-     *
-     * This service is shared.
-     * This method always returns the same instance of the service.
-     *
-     * @return \Bar\FooClass A Bar\FooClass instance.
-     */
-    protected function getServiceFromStaticMethodService()
-    {
-        return $this->services['service_from_static_method'] = \Bar\FooClass::getInstance();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameter($name)
-    {
-        $name = strtolower($name);
-
-        if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters))) {
-            throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
-        }
-
-        return $this->parameters[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasParameter($name)
-    {
-        $name = strtolower($name);
-
-        return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameter($name, $value)
-    {
-        throw new LogicException('Impossible to call set() on a frozen ParameterBag.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParameterBag()
-    {
-        if (null === $this->parameterBag) {
-            $this->parameterBag = new FrozenParameterBag($this->parameters);
-        }
-
-        return $this->parameterBag;
-    }
-
-    /**
-     * Gets the default parameters.
-     *
-     * @return array An array of the default parameters
-     */
-    protected function getDefaultParameters()
-    {
-        return array(
-            'baz_class' => 'BazClass',
-            'foo_class' => 'Bar\\FooClass',
-            'foo' => 'bar',
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/simple.php b/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/simple.php
deleted file mode 100644
index aa4df99..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/php/simple.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$container->setParameter('foo', 'foo');
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml
deleted file mode 100644
index 52df38d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension1/services.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="extension1.foo" class="FooClass1">
-      <argument type="service">
-        <service class="BarClass1">
-        </service>
-      </argument>
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml
deleted file mode 100644
index 21a7ef5..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extension2/services.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="extension2.foo" class="FooClass2">
-      <argument type="service">
-        <service class="BarClass2">
-        </service>
-      </argument>
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services1.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services1.xml
deleted file mode 100644
index 792fa07..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services1.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:project="http://www.example.com/schema/project">
-
-    <parameters>
-        <parameter key="project.parameter.foo">BAR</parameter>
-    </parameters>
-
-    <services>
-        <service id="project.service.foo" class="BAR" />
-    </services>
-
-    <project:bar babar="babar">
-        <another />
-        <another2>%project.parameter.foo%</another2>
-    </project:bar>
-
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml
deleted file mode 100644
index 67d462b..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services2.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:project="http://www.example.com/schema/projectwithxsd"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
-                        http://www.example.com/schema/projectwithxsd http://www.example.com/schema/projectwithxsd/project-1.0.xsd">
-
-    <parameters>
-        <parameter key="project.parameter.foo">BAR</parameter>
-    </parameters>
-
-    <services>
-        <service id="project.service.foo" class="BAR" />
-    </services>
-
-    <project:bar />
-
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml
deleted file mode 100644
index c23f02a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services3.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:project="http://www.example.com/schema/projectwithxsd"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
-                        http://www.example.com/schema/projectwithxsd http://www.example.com/schema/projectwithxsd/project-1.0.xsd">
-
-    <parameters>
-        <parameter key="project.parameter.foo">BAR</parameter>
-    </parameters>
-
-    <services>
-        <service id="project.service.foo" class="BAR" />
-    </services>
-
-    <project:bar bar="bar" />
-
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services4.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services4.xml
deleted file mode 100644
index 2c33c3a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services4.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:project="http://www.example.com/schema/not_registered_extension">
-  <project:bar />
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml
deleted file mode 100644
index 0eaaff2..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services5.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:project="http://www.example.com/schema/projectwithxsd"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
-                        http://www.example.com/schema/projectwithxsd http://www.example.com/schema/projectwithxsd/project-1.0.xsd">
-
-    <project:foobar />
-
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml
deleted file mode 100644
index a9c0103..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services6.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:project="http://www.example.com/schema/projectwithxsdinphar"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
-                        http://www.example.com/schema/projectwithxsdinphar http://www.example.com/schema/projectwithxsdinphar/project-1.0.xsd">
-
-    <project:bar />
-
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml
deleted file mode 100644
index e77780d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/extensions/services7.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:project="http://www.example.com/schema/projectwithxsdinphar"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
-                        http://www.example.com/schema/projectwithxsdinphar http://www.example.com/schema/projectwithxsdinphar/project-1.0.xsd">
-
-    <project:bar bar="foo" />
-
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy-services6.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy-services6.xml
deleted file mode 100644
index 708e10f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy-services6.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="constructor" class="FooClass" factory-method="getInstance" />
-    <service id="factory_service" factory-method="getInstance" factory-service="baz_factory" />
-    <service id="request" class="Request" synthetic="true" synchronized="true" lazy="true"/>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy-services9.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy-services9.xml
deleted file mode 100644
index 5692ba1..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/legacy-services9.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <parameters>
-    <parameter key="baz_class">BazClass</parameter>
-    <parameter key="foo">bar</parameter>
-  </parameters>
-  <services>
-    <service id="foo" class="Bar\FooClass" factory-method="getInstance" factory-class="Bar\FooClass">
-      <tag name="foo" foo="foo"/>
-      <tag name="foo" bar="bar"/>
-      <argument>foo</argument>
-      <argument type="service" id="foo.baz"/>
-      <argument type="collection">
-        <argument key="%foo%">foo is %foo%</argument>
-        <argument key="foobar">%foo%</argument>
-      </argument>
-      <argument>true</argument>
-      <argument type="service" id="service_container"/>
-      <property name="foo">bar</property>
-      <property name="moo" type="service" id="foo.baz"/>
-      <property name="qux" type="collection">
-        <property key="%foo%">foo is %foo%</property>
-        <property key="foobar">%foo%</property>
-      </property>
-      <call method="setBar">
-        <argument type="service" id="bar"/>
-      </call>
-      <call method="initialize"/>
-      <configurator function="sc_configure"/>
-    </service>
-    <service id="foo.baz" class="%baz_class%" factory-method="getInstance" factory-class="%baz_class%">
-      <configurator class="%baz_class%" method="configureStatic1"/>
-    </service>
-    <service id="factory_service" class="Bar" factory-method="getInstance" factory-service="foo.baz"/>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml
deleted file mode 100644
index 5a05ced..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/namespaces.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" ?>
-
-<srv:container xmlns="http://symfony.com/schema/dic/doctrine"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:srv="http://symfony.com/schema/dic/services"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
-                        http://symfony.com/schema/dic/doctrine http://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd">
-
-    <srv:services>
-        <srv:service id="foo" class="FooClass">
-            <srv:tag name="foo.tag" />
-            <srv:call method="setBar">
-                <srv:argument>foo</srv:argument>
-            </srv:call>
-        </srv:service>
-    </srv:services>
-</srv:container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nonvalid.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nonvalid.xml
deleted file mode 100644
index e7b5bc9..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/nonvalid.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" ?>
-
-<nonvalid />
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml
deleted file mode 100644
index 6aa5732..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services1.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"/>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml
deleted file mode 100644
index a4da1bf..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services10.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="foo" class="BarClass">
-        <tag name="foo_tag"
-            some-option="cat"
-            some_option="ciz"
-            other-option="lorem"
-            an_other-option="ipsum"
-        />
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml
deleted file mode 100644
index 1ac4938..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services13.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <parameters>
-    <parameter key="imported_from_xml">true</parameter>
-  </parameters>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml
deleted file mode 100644
index 7344621..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services14.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services"
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-    <services>
-        <service id="monolog.logger" parent="monolog.logger_prototype" public="false">
-            <argument index="0">app</argument>
-        </service>
-
-        <service id="logger" alias="monolog.logger" />
-
-        <service id="monolog.logger" parent="monolog.logger_prototype" public="false">
-            <argument index="0">app</argument>
-        </service>
-        <service id="monolog.logger_prototype" class="Symfony\Bridge\Monolog\Logger" abstract="true">
-            <argument /><!-- Channel -->
-        </service>
-    </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml
deleted file mode 100644
index f1ac14d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services2.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <parameters>
-    <parameter>a string</parameter>
-    <parameter key="FOO">bar</parameter>
-    <parameter key="values" type="collection">
-      <parameter>0</parameter>
-      <parameter key="integer">4</parameter>
-      <parameter key="100">null</parameter>
-      <parameter type="string">true</parameter>
-      <parameter>true</parameter>
-      <parameter>false</parameter>
-      <parameter>on</parameter>
-      <parameter>off</parameter>
-      <parameter key="float">1.3</parameter>
-      <parameter>1000.3</parameter>
-      <parameter>a string</parameter>
-      <parameter type="collection">
-        <parameter>foo</parameter>
-        <parameter>bar</parameter>
-      </parameter>
-    </parameter>
-    <parameter key="MixedCase" type="collection"> <!-- Should be lower cased -->
-      <parameter key="MixedCaseKey">value</parameter> <!-- Should stay mixed case -->
-    </parameter>
-    <parameter key="constant" type="constant">PHP_EOL</parameter>
-  </parameters>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services20.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services20.xml
deleted file mode 100644
index 5d799fc..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services20.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="request" class="Request" synthetic="true" synchronized="true"/>
-    <service id="depends_on_request" class="stdClass">
-      <call method="setRequest">
-        <argument type="service" id="request" on-invalid="null" strict="false"/>
-      </call>
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml
deleted file mode 100644
index 329bc3d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services21.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="foo" class="Foo">
-      <factory method="createFoo">
-        <service class="FooFactory">
-          <factory method="createFooFactory">
-            <service class="Foobar"/>
-          </factory>
-        </service>
-      </factory>
-      <configurator method="configureFoo">
-        <service class="Bar">
-          <configurator method="configureBar">
-            <service class="Baz"/>
-          </configurator>
-        </service>
-      </configurator>
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml
deleted file mode 100644
index 87bf183..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services3.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <parameters>
-    <parameter key="foo">foo</parameter>
-    <parameter key="values" type="collection">
-      <parameter>true</parameter>
-      <parameter>false</parameter>
-    </parameter>
-  </parameters>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml
deleted file mode 100644
index 03ad9f8..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <imports>
-    <import resource="services2.xml" />
-    <import resource="services3.xml" />
-    <import resource="../ini/parameters.ini" />
-    <import resource="../ini/parameters2.ini" />
-    <import resource="../yaml/services13.yml" />
-  </imports>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml
deleted file mode 100644
index 0b7f10a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services4_bad_import.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <imports>
-    <import resource="foo_fake.xml" ignore-errors="true" />
-  </imports>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml
deleted file mode 100644
index acb93e7..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services5.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="foo" class="FooClass">
-      <argument type="service">
-        <service class="BarClass">
-          <argument type="service">
-            <service class="BazClass">
-            </service>
-          </argument>
-        </service>
-      </argument>
-      <property name="p" type="service">
-        <service class="BazClass" />
-      </property>
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml
deleted file mode 100644
index 9eb7b89..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services6.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="foo" class="FooClass" />
-    <service id="baz" class="BazClass" />
-    <service id="scope.container" class="FooClass" scope="container" />
-    <service id="scope.custom" class="FooClass" scope="custom" />
-    <service id="scope.prototype" class="FooClass" scope="prototype" />
-    <service id="file" class="FooClass">
-      <file>%path%/foo.php</file>
-    </service>
-    <service id="arguments" class="FooClass">
-      <argument>foo</argument>
-      <argument type="service" id="foo" />
-      <argument type="collection">
-        <argument>true</argument>
-        <argument>false</argument>
-      </argument>
-    </service>
-    <service id="configurator1" class="FooClass">
-      <configurator function="sc_configure" />
-    </service>
-    <service id="configurator2" class="FooClass">
-      <configurator service="baz" method="configure" />
-    </service>
-    <service id="configurator3" class="FooClass">
-      <configurator class="BazClass" method="configureStatic" />
-    </service>
-    <service id="method_call1" class="FooClass">
-      <call method="setBar" />
-      <call method="setBar">
-        <argument type="expression">service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")</argument>
-      </call>
-    </service>
-    <service id="method_call2" class="FooClass">
-      <call method="setBar">
-        <argument>foo</argument>
-        <argument type="service" id="foo" />
-        <argument type="collection">
-          <argument>true</argument>
-          <argument>false</argument>
-        </argument>
-      </call>
-    </service>
-    <service id="alias_for_foo" alias="foo" />
-    <service id="another_alias_for_foo" alias="foo" public="false" />
-    <service id="decorator_service" decorates="decorated" />
-    <service id="decorator_service_with_name" decorates="decorated" decoration-inner-name="decorated.pif-pouf"/>
-    <service id="new_factory1" class="FooBarClass">
-      <factory function="factory" />
-    </service>
-    <service id="new_factory2" class="FooBarClass">
-      <factory service="baz" method="getClass" />
-    </service>
-    <service id="new_factory3" class="FooBarClass">
-      <factory class="BazClass" method="getInstance" />
-    </service>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml
deleted file mode 100644
index 824d8b5..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services7.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" ?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <services>
-    <service id="foo" class="BarClass" />
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml
deleted file mode 100644
index b17e500..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services8.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<container xmlns="http://symfony.com/schema/dic/services"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <parameters>
-    <parameter key="foo">%baz%</parameter>
-    <parameter key="baz">bar</parameter>
-    <parameter key="bar">foo is %%foo bar</parameter>
-    <parameter key="escape">@escapeme</parameter>
-    <parameter key="values" type="collection">
-      <parameter>true</parameter>
-      <parameter>false</parameter>
-      <parameter>null</parameter>
-      <parameter>0</parameter>
-      <parameter>1000.3</parameter>
-      <parameter type="string">true</parameter>
-      <parameter type="string">false</parameter>
-      <parameter type="string">null</parameter>
-    </parameter>
-  </parameters>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml
deleted file mode 100644
index c4ddc41..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/services9.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
-  <parameters>
-    <parameter key="baz_class">BazClass</parameter>
-    <parameter key="foo_class">Bar\FooClass</parameter>
-    <parameter key="foo">bar</parameter>
-  </parameters>
-  <services>
-    <service id="foo" class="Bar\FooClass">
-      <tag name="foo" foo="foo"/>
-      <tag name="foo" bar="bar" baz="baz"/>
-      <argument>foo</argument>
-      <argument type="service" id="foo.baz"/>
-      <argument type="collection">
-        <argument key="%foo%">foo is %foo%</argument>
-        <argument key="foobar">%foo%</argument>
-      </argument>
-      <argument>true</argument>
-      <argument type="service" id="service_container"/>
-      <property name="foo">bar</property>
-      <property name="moo" type="service" id="foo.baz"/>
-      <property name="qux" type="collection">
-        <property key="%foo%">foo is %foo%</property>
-        <property key="foobar">%foo%</property>
-      </property>
-      <call method="setBar">
-        <argument type="service" id="bar"/>
-      </call>
-      <call method="initialize"/>
-      <factory class="Bar\FooClass" method="getInstance"/>
-      <configurator function="sc_configure"/>
-    </service>
-    <service id="foo.baz" class="%baz_class%">
-      <factory class="%baz_class%" method="getInstance"/>
-      <configurator class="%baz_class%" method="configureStatic1"/>
-    </service>
-    <service id="bar" class="Bar\FooClass">
-      <argument>foo</argument>
-      <argument type="service" id="foo.baz"/>
-      <argument>%foo_bar%</argument>
-      <configurator service="foo.baz" method="configure"/>
-    </service>
-    <service id="foo_bar" class="%foo_class%" scope="prototype"/>
-    <service id="method_call1" class="Bar\FooClass">
-      <file>%path%foo.php</file>
-      <call method="setBar">
-        <argument type="service" id="foo"/>
-      </call>
-      <call method="setBar">
-        <argument type="service" id="foo2" on-invalid="null"/>
-      </call>
-      <call method="setBar">
-        <argument type="service" id="foo3" on-invalid="ignore"/>
-      </call>
-      <call method="setBar">
-        <argument type="service" id="foobaz" on-invalid="ignore"/>
-      </call>
-      <call method="setBar">
-        <argument type="expression">service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")</argument>
-      </call>
-    </service>
-    <service id="foo_with_inline" class="Foo">
-      <call method="setBar">
-        <argument type="service" id="inlined"/>
-      </call>
-    </service>
-    <service id="inlined" class="Bar" public="false">
-      <property name="pub">pub</property>
-      <call method="setBaz">
-        <argument type="service" id="baz"/>
-      </call>
-    </service>
-    <service id="baz" class="Baz">
-      <call method="setFoo">
-        <argument type="service" id="foo_with_inline"/>
-      </call>
-    </service>
-    <service id="request" class="Request" synthetic="true"/>
-    <service id="configurator_service" class="ConfClass" public="false">
-      <call method="setFoo">
-        <argument type="service" id="baz"/>
-      </call>
-    </service>
-    <service id="configured_service" class="stdClass">
-      <configurator service="configurator_service" method="configureStdClass"/>
-    </service>
-    <service id="decorated" class="stdClass"/>
-    <service id="decorator_service" class="stdClass" decorates="decorated"/>
-    <service id="decorator_service_with_name" class="stdClass" decorates="decorated" decoration-inner-name="decorated.pif-pouf"/>
-    <service id="new_factory" class="FactoryClass" public="false">
-      <property name="foo">bar</property>
-    </service>
-    <service id="factory_service" class="Bar">
-      <factory service="foo.baz" method="getInstance"/>
-    </service>
-    <service id="new_factory_service" class="FooBarBaz">
-      <property name="foo">bar</property>
-      <factory service="new_factory" method="getInstance"/>
-    </service>
-    <service id="service_from_static_method" class="Bar\FooClass">
-      <factory class="Bar\FooClass" method="getInstance"/>
-    </service>
-    <service id="alias_for_foo" alias="foo"/>
-    <service id="alias_for_alias" alias="foo"/>
-  </services>
-</container>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/withdoctype.xml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/withdoctype.xml
deleted file mode 100644
index f217d5b..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/xml/withdoctype.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE foo>
-<foo></foo>
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_calls.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_calls.yml
deleted file mode 100644
index 3f34b07..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_calls.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-services:
-    method_call1:
-        class: FooClass
-        calls: foo
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_import.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_import.yml
deleted file mode 100644
index 0765dc8..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_import.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
-    - foo.yml
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_imports.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_imports.yml
deleted file mode 100644
index 1ce9d57..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_imports.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
-    foo:bar
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_parameters.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_parameters.yml
deleted file mode 100644
index bbd13ac..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_parameters.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-parameters:
-    foo:bar
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_service.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_service.yml
deleted file mode 100644
index 811af3c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_service.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-services:
-    foo: bar
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_services.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_services.yml
deleted file mode 100644
index cfbf17c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/bad_services.yml
+++ /dev/null
@@ -1 +0,0 @@
-services: foo
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag1.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag1.yml
deleted file mode 100644
index 14536fd..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag1.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
-    foo_service:
-        class:    FooClass
-        # tags is not an array
-        tags:     string
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag2.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag2.yml
deleted file mode 100644
index 9028814..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag2.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
-    foo_service:
-        class:    FooClass
-        tags:
-          # tag is missing the name key
-          foo_tag:   { foo: bar }
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag3.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag3.yml
deleted file mode 100644
index 72ec4e8..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag3.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
-    foo_service:
-        class:    FooClass
-        tags:
-          # tag-attribute is not a scalar
-          - { name: foo, bar: { foo: foo, bar: bar } }
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag4.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag4.yml
deleted file mode 100644
index e8e9939..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/badtag4.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
-    foo_service:
-        class:    FooClass
-        tags:
-          # tag is not an array
-          - foo
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/legacy-services6.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/legacy-services6.yml
deleted file mode 100644
index 46ac679..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/legacy-services6.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
-    constructor: { class: FooClass, factory_method: getInstance }
-    factory_service: { class: BazClass, factory_method: getInstance, factory_service: baz_factory }
-    request:
-        class: Request
-        synthetic: true
-        synchronized: true
-        lazy: true
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/legacy-services9.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/legacy-services9.yml
deleted file mode 100644
index 64d1726..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/legacy-services9.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-parameters:
-    baz_class: BazClass
-    foo: bar
-
-services:
-    foo:
-        class: Bar\FooClass
-        tags:
-            - { name: foo, foo: foo }
-            - { name: foo, bar: bar }
-        factory_class: Bar\FooClass
-        factory_method: getInstance
-        arguments: [foo, '@foo.baz', { '%foo%': 'foo is %foo%', foobar: '%foo%' }, true, '@service_container']
-        properties: { foo: bar, moo: '@foo.baz', qux: { '%foo%': 'foo is %foo%', foobar: '%foo%' } }
-        calls:
-            - [setBar, ['@bar']]
-            - [initialize, {  }]
-
-        configurator: sc_configure
-    foo.baz:
-        class: %baz_class%
-        factory_class: %baz_class%
-        factory_method: getInstance
-        configurator: ['%baz_class%', configureStatic1]
-    factory_service:
-        class: Bar
-        factory_method: getInstance
-        factory_service: foo.baz
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/nonvalid1.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/nonvalid1.yml
deleted file mode 100644
index 4eddb87..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/nonvalid1.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-foo:
-  bar
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/nonvalid2.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/nonvalid2.yml
deleted file mode 100644
index c508d53..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/nonvalid2.yml
+++ /dev/null
@@ -1 +0,0 @@
-false
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services1.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services1.yml
deleted file mode 100644
index 8b13789..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services1.yml
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services10.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services10.yml
deleted file mode 100644
index f2f8d95..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services10.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-parameters:
-    project.parameter.foo: BAR
-
-services:
-    project.service.foo:
-        class: BAR
-
-project:
-    test: %project.parameter.foo%
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services11.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services11.yml
deleted file mode 100644
index 40126f0..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services11.yml
+++ /dev/null
@@ -1 +0,0 @@
-foobarfoobar: {}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services13.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services13.yml
deleted file mode 100644
index d52d355..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services13.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-# used to test imports in XML
-parameters:
-    imported_from_yaml: true
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services14.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services14.yml
deleted file mode 100644
index 4c188c5..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services14.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-services:
-    factory: { class: FooBarClass, factory: baz:getClass}
-    factory_with_static_call: { class: FooBarClass, factory: FooBacFactory::createFooBar}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services2.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services2.yml
deleted file mode 100644
index 3c12746..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services2.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-parameters:
-    FOO: bar
-    values:
-        - true
-        - false
-        - 0
-        - 1000.3
-    bar: foo
-    escape: @@escapeme
-    foo_bar: @foo_bar
-    MixedCase:
-        MixedCaseKey: value
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services20.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services20.yml
deleted file mode 100644
index 847f656..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services20.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-services:
-    request:
-        class: Request
-        synthetic: true
-        synchronized: true
-    depends_on_request:
-        class: stdClass
-        calls:
-            - [setRequest, ['@?request']]
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services21.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services21.yml
deleted file mode 100644
index da717a8..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services21.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-services:
-    manager:
-        class: UserManager
-        arguments:
-          - true
-        calls:
-          - method: setLogger
-            arguments:
-              - @logger
-          - method: setClass
-            arguments:
-              - User
-        tags:
-          - name: manager
-            alias: user
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services3.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services3.yml
deleted file mode 100644
index 0e92cdf..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services3.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-parameters:
-    foo: foo
-    values:
-        - true
-        - false
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services4.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services4.yml
deleted file mode 100644
index 8e0987f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services4.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-imports:
-    - { resource: services2.yml }
-    - { resource: services3.yml }
-    - { resource: "../php/simple.php" }
-    - { resource: "../ini/parameters.ini", class: Symfony\Component\DependencyInjection\Loader\IniFileLoader }
-    - { resource: "../ini/parameters2.ini" }
-    - { resource: "../xml/services13.xml" }
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services4_bad_import.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services4_bad_import.yml
deleted file mode 100644
index f7089fc..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services4_bad_import.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
-    - { resource: foo_fake.yml, ignore_errors: true }
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services6.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services6.yml
deleted file mode 100644
index 78abf4d..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services6.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-services:
-    foo: { class: FooClass }
-    baz: { class: BazClass }
-    scope.container: { class: FooClass, scope: container }
-    scope.custom: { class: FooClass, scope: custom }
-    scope.prototype: { class: FooClass, scope: prototype }
-    file: { class: FooClass, file: %path%/foo.php }
-    arguments: { class: FooClass, arguments: [foo, @foo, [true, false]] }
-    configurator1: { class: FooClass, configurator: sc_configure }
-    configurator2: { class: FooClass, configurator: [@baz, configure] }
-    configurator3: { class: FooClass, configurator: [BazClass, configureStatic] }
-    method_call1:
-        class: FooClass
-        calls:
-            - [ setBar, [] ]
-            - [ setBar ]
-            - [ setBar, ['@=service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")'] ]
-    method_call2:
-        class: FooClass
-        calls:
-            - [ setBar, [ foo, @foo, [true, false] ] ]
-    alias_for_foo: @foo
-    another_alias_for_foo:
-        alias: foo
-        public: false
-    decorator_service:
-        decorates: decorated
-    decorator_service_with_name:
-        decorates: decorated
-        decoration_inner_name: decorated.pif-pouf
-    new_factory1: { class: FooBarClass, factory: factory}
-    new_factory2: { class: FooBarClass, factory: [@baz, getClass]}
-    new_factory3: { class: FooBarClass, factory: [BazClass, getInstance]}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services7.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services7.yml
deleted file mode 100644
index 09064f2..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services7.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-services:
-    foo: { class: BarClass }
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services8.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services8.yml
deleted file mode 100644
index a1fb590..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services8.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-parameters:
-    foo: '%baz%'
-    baz: bar
-    bar: 'foo is %%foo bar'
-    escape: '@@escapeme'
-    values: [true, false, null, 0, 1000.3, 'true', 'false', 'null']
-
diff --git a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services9.yml b/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services9.yml
deleted file mode 100644
index fdab85f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Fixtures/yaml/services9.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-parameters:
-    baz_class: BazClass
-    foo_class: Bar\FooClass
-    foo: bar
-
-services:
-    foo:
-        class: Bar\FooClass
-        tags:
-            - { name: foo, foo: foo }
-            - { name: foo, bar: bar, baz: baz }
-        arguments: [foo, '@foo.baz', { '%foo%': 'foo is %foo%', foobar: '%foo%' }, true, '@service_container']
-        properties: { foo: bar, moo: '@foo.baz', qux: { '%foo%': 'foo is %foo%', foobar: '%foo%' } }
-        calls:
-            - [setBar, ['@bar']]
-            - [initialize, {  }]
-
-        factory: [Bar\FooClass, getInstance]
-        configurator: sc_configure
-    foo.baz:
-        class: %baz_class%
-        factory: ['%baz_class%', getInstance]
-        configurator: ['%baz_class%', configureStatic1]
-    bar:
-        class: Bar\FooClass
-        arguments: [foo, '@foo.baz', '%foo_bar%']
-        configurator: ['@foo.baz', configure]
-    foo_bar:
-        class: %foo_class%
-        scope: prototype
-    method_call1:
-        class: Bar\FooClass
-        file: %path%foo.php
-        calls:
-            - [setBar, ['@foo']]
-            - [setBar, ['@?foo2']]
-            - [setBar, ['@?foo3']]
-            - [setBar, ['@?foobaz']]
-            - [setBar, ['@=service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")']]
-
-    foo_with_inline:
-        class: Foo
-        calls:
-            - [setBar, ['@inlined']]
-
-    inlined:
-        class: Bar
-        public: false
-        properties: { pub: pub }
-        calls:
-            - [setBaz, ['@baz']]
-
-    baz:
-        class: Baz
-        calls:
-            - [setFoo, ['@foo_with_inline']]
-
-    request:
-        class: Request
-        synthetic: true
-    configurator_service:
-        class: ConfClass
-        public: false
-        calls:
-            - [setFoo, ['@baz']]
-
-    configured_service:
-        class: stdClass
-        configurator: ['@configurator_service', configureStdClass]
-    decorated:
-        class: stdClass
-    decorator_service:
-        class: stdClass
-        decorates: decorated
-    decorator_service_with_name:
-        class: stdClass
-        decorates: decorated
-        decoration_inner_name: decorated.pif-pouf
-    new_factory:
-        class: FactoryClass
-        public: false
-        properties: { foo: bar }
-    factory_service:
-        class: Bar
-        factory: ['@foo.baz', getInstance]
-    new_factory_service:
-        class: FooBarBaz
-        properties: { foo: bar }
-        factory: ['@new_factory', getInstance]
-    service_from_static_method:
-        class: Bar\FooClass
-        factory: [Bar\FooClass, getInstance]
-    alias_for_foo: @foo
-    alias_for_alias: @foo
diff --git a/core/vendor/symfony/dependency-injection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php b/core/vendor/symfony/dependency-injection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php
deleted file mode 100644
index cb44024..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\LazyProxy\Instantiator;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator;
-
-/**
- * Tests for {@see \Symfony\Component\DependencyInjection\Instantiator\RealServiceInstantiator}.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- *
- * @covers \Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator
- */
-class RealServiceInstantiatorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInstantiateProxy()
-    {
-        $instantiator = new RealServiceInstantiator();
-        $instance = new \stdClass();
-        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
-        $callback = function () use ($instance) {
-            return $instance;
-        };
-
-        $this->assertSame($instance, $instantiator->instantiateProxy($container, new Definition(), 'foo', $callback));
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/LazyProxy/PhpDumper/NullDumperTest.php b/core/vendor/symfony/dependency-injection/Tests/LazyProxy/PhpDumper/NullDumperTest.php
deleted file mode 100644
index 2081ebc..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/LazyProxy/PhpDumper/NullDumperTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\LazyProxy\PhpDumper;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper;
-
-/**
- * Tests for {@see \Symfony\Component\DependencyInjection\PhpDumper\NullDumper}.
- *
- * @author Marco Pivetta <ocramius@gmail.com>
- *
- * @covers \Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper
- */
-class NullDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testNullDumper()
-    {
-        $dumper = new NullDumper();
-        $definition = new Definition('stdClass');
-
-        $this->assertFalse($dumper->isProxyCandidate($definition));
-        $this->assertSame('', $dumper->getProxyFactoryCode($definition, 'foo'));
-        $this->assertSame('', $dumper->getProxyCode($definition));
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/LegacyContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Tests/LegacyContainerBuilderTest.php
deleted file mode 100644
index 40aec20..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/LegacyContainerBuilderTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * @group legacy
- */
-class LegacyContainerBuilderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceFactoryMethod()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('bar', 'stdClass');
-        $builder->register('foo1', 'Bar\FooClass')->setFactoryClass('Bar\FooClass')->setFactoryMethod('getInstance')->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar')));
-        $builder->setParameter('value', 'bar');
-        $this->assertTrue($builder->get('foo1')->called, '->createService() calls the factory method to create the service instance');
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'foo', $builder->get('bar')), $builder->get('foo1')->arguments, '->createService() passes the arguments to the factory method');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceFactoryService()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('baz_service')->setFactoryService('baz_factory')->setFactoryMethod('getInstance');
-        $builder->register('baz_factory', 'BazClass');
-
-        $this->assertInstanceOf('BazClass', $builder->get('baz_service'));
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/LegacyDefinitionTest.php b/core/vendor/symfony/dependency-injection/Tests/LegacyDefinitionTest.php
deleted file mode 100644
index b85d81f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/LegacyDefinitionTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * @group legacy
- */
-class LegacyDefinitionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSetGetFactoryClass()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getFactoryClass());
-        $this->assertSame($def, $def->setFactoryClass('stdClass2'), "->setFactoryClass() implements a fluent interface.");
-        $this->assertEquals('stdClass2', $def->getFactoryClass(), "->getFactoryClass() returns current class to construct this service.");
-    }
-
-    public function testSetGetFactoryMethod()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getFactoryMethod());
-        $this->assertSame($def, $def->setFactoryMethod('foo'), '->setFactoryMethod() implements a fluent interface');
-        $this->assertEquals('foo', $def->getFactoryMethod(), '->getFactoryMethod() returns the factory method name');
-    }
-
-    public function testSetGetFactoryService()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getFactoryService());
-        $this->assertSame($def, $def->setFactoryService('foo.bar'), "->setFactoryService() implements a fluent interface.");
-        $this->assertEquals('foo.bar', $def->getFactoryService(), "->getFactoryService() returns current service to construct this service.");
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Loader/ClosureLoaderTest.php b/core/vendor/symfony/dependency-injection/Tests/Loader/ClosureLoaderTest.php
deleted file mode 100644
index 483e30b..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Loader/ClosureLoaderTest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
-
-class ClosureLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\ClosureLoader::supports
-     */
-    public function testSupports()
-    {
-        $loader = new ClosureLoader(new ContainerBuilder());
-
-        $this->assertTrue($loader->supports(function ($container) {}), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\ClosureLoader::load
-     */
-    public function testLoad()
-    {
-        $loader = new ClosureLoader($container = new ContainerBuilder());
-
-        $loader->load(function ($container) {
-            $container->setParameter('foo', 'foo');
-        });
-
-        $this->assertEquals('foo', $container->getParameter('foo'), '->load() loads a \Closure resource');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Loader/IniFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Tests/Loader/IniFileLoaderTest.php
deleted file mode 100644
index 9188018..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Loader/IniFileLoaderTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
-use Symfony\Component\Config\FileLocator;
-
-class IniFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    protected $container;
-    protected $loader;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
-    }
-
-    protected function setUp()
-    {
-        $this->container = new ContainerBuilder();
-        $this->loader = new IniFileLoader($this->container, new FileLocator(self::$fixturesPath.'/ini'));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::__construct
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::load
-     */
-    public function testIniFileCanBeLoaded()
-    {
-        $this->loader->load('parameters.ini');
-        $this->assertEquals(array('foo' => 'bar', 'bar' => '%foo%'), $this->container->getParameterBag()->all(), '->load() takes a single file name as its first argument');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::__construct
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::load
-     *
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The file "foo.ini" does not exist (in:
-     */
-    public function testExceptionIsRaisedWhenIniFileDoesNotExist()
-    {
-        $this->loader->load('foo.ini');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::__construct
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::load
-     *
-     * @expectedException        \InvalidArgumentException
-     * @expectedExceptionMessage The "nonvalid.ini" file is not valid.
-     */
-    public function testExceptionIsRaisedWhenIniFileCannotBeParsed()
-    {
-        @$this->loader->load('nonvalid.ini');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\IniFileLoader::supports
-     */
-    public function testSupports()
-    {
-        $loader = new IniFileLoader(new ContainerBuilder(), new FileLocator());
-
-        $this->assertTrue($loader->supports('foo.ini'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Tests/Loader/PhpFileLoaderTest.php
deleted file mode 100644
index 5ae097c..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Loader/PhpFileLoaderTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
-use Symfony\Component\Config\FileLocator;
-
-class PhpFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\PhpFileLoader::supports
-     */
-    public function testSupports()
-    {
-        $loader = new PhpFileLoader(new ContainerBuilder(), new FileLocator());
-
-        $this->assertTrue($loader->supports('foo.php'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\PhpFileLoader::load
-     */
-    public function testLoad()
-    {
-        $loader = new PhpFileLoader($container = new ContainerBuilder(), new FileLocator());
-
-        $loader->load(__DIR__.'/../Fixtures/php/simple.php');
-
-        $this->assertEquals('foo', $container->getParameter('foo'), '->load() loads a PHP file resource');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php
deleted file mode 100644
index 8bf524a..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Loader/XmlFileLoaderTest.php
+++ /dev/null
@@ -1,495 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
-use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
-use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
-use Symfony\Component\Config\Loader\LoaderResolver;
-use Symfony\Component\Config\FileLocator;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
-        require_once self::$fixturesPath.'/includes/foo.php';
-        require_once self::$fixturesPath.'/includes/ProjectExtension.php';
-        require_once self::$fixturesPath.'/includes/ProjectWithXsdExtension.php';
-    }
-
-    public function testLoad()
-    {
-        $loader = new XmlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/ini'));
-
-        try {
-            $loader->load('foo.xml');
-            $this->fail('->load() throws an InvalidArgumentException if the loaded file does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the loaded file does not exist');
-            $this->assertStringStartsWith('The file "foo.xml" does not exist (in:', $e->getMessage(), '->load() throws an InvalidArgumentException if the loaded file does not exist');
-        }
-    }
-
-    public function testParseFile()
-    {
-        $loader = new XmlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/ini'));
-        $r = new \ReflectionObject($loader);
-        $m = $r->getMethod('parseFileToDOM');
-        $m->setAccessible(true);
-
-        try {
-            $m->invoke($loader, self::$fixturesPath.'/ini/parameters.ini');
-            $this->fail('->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'parameters.ini'), $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-
-            $e = $e->getPrevious();
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-            $this->assertStringStartsWith('[ERROR 4] Start tag expected, \'<\' not found (in', $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-        }
-
-        $loader = new XmlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/xml'));
-
-        try {
-            $m->invoke($loader, self::$fixturesPath.'/xml/nonvalid.xml');
-            $this->fail('->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
-            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'nonvalid.xml'), $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file is not a valid XML file');
-
-            $e = $e->getPrevious();
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
-            $this->assertStringStartsWith('[ERROR 1845] Element \'nonvalid\': No matching global declaration available for the validation root. (in', $e->getMessage(), '->parseFileToDOM() throws an InvalidArgumentException if the loaded file does not validate the XSD');
-        }
-
-        $xml = $m->invoke($loader, self::$fixturesPath.'/xml/services1.xml');
-        $this->assertInstanceOf('DOMDocument', $xml, '->parseFileToDOM() returns an SimpleXMLElement object');
-    }
-
-    public function testLoadParameters()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('services2.xml');
-
-        $actual = $container->getParameterBag()->all();
-        $expected = array(
-            'a string',
-            'foo' => 'bar',
-            'values' => array(
-                0,
-                'integer' => 4,
-                100 => null,
-                'true',
-                true,
-                false,
-                'on',
-                'off',
-                'float' => 1.3,
-                1000.3,
-                'a string',
-                array('foo', 'bar'),
-            ),
-            'mixedcase' => array('MixedCaseKey' => 'value'),
-            'constant' => PHP_EOL,
-        );
-
-        $this->assertEquals($expected, $actual, '->load() converts XML values to PHP ones');
-    }
-
-    public function testLoadImports()
-    {
-        $container = new ContainerBuilder();
-        $resolver = new LoaderResolver(array(
-            new IniFileLoader($container, new FileLocator(self::$fixturesPath.'/xml')),
-            new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml')),
-            $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml')),
-        ));
-        $loader->setResolver($resolver);
-        $loader->load('services4.xml');
-
-        $actual = $container->getParameterBag()->all();
-        $expected = array(
-            'a string',
-            'foo' => 'bar',
-            'values' => array(
-                0,
-                'integer' => 4,
-                100 => null,
-                'true',
-                true,
-                false,
-                'on',
-                'off',
-                'float' => 1.3,
-                1000.3,
-                'a string',
-                array('foo', 'bar'),
-            ),
-            'mixedcase' => array('MixedCaseKey' => 'value'),
-            'constant' => PHP_EOL,
-            'bar' => '%foo%',
-            'imported_from_ini' => true,
-            'imported_from_yaml' => true,
-        );
-
-        $this->assertEquals(array_keys($expected), array_keys($actual), '->load() imports and merges imported files');
-
-        // Bad import throws no exception due to ignore_errors value.
-        $loader->load('services4_bad_import.xml');
-    }
-
-    public function testLoadAnonymousServices()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('services5.xml');
-        $services = $container->getDefinitions();
-        $this->assertCount(4, $services, '->load() attributes unique ids to anonymous services');
-
-        // anonymous service as an argument
-        $args = $services['foo']->getArguments();
-        $this->assertCount(1, $args, '->load() references anonymous services as "normal" ones');
-        $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $args[0], '->load() converts anonymous services to references to "normal" services');
-        $this->assertTrue(isset($services[(string) $args[0]]), '->load() makes a reference to the created ones');
-        $inner = $services[(string) $args[0]];
-        $this->assertEquals('BarClass', $inner->getClass(), '->load() uses the same configuration as for the anonymous ones');
-
-        // inner anonymous services
-        $args = $inner->getArguments();
-        $this->assertCount(1, $args, '->load() references anonymous services as "normal" ones');
-        $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $args[0], '->load() converts anonymous services to references to "normal" services');
-        $this->assertTrue(isset($services[(string) $args[0]]), '->load() makes a reference to the created ones');
-        $inner = $services[(string) $args[0]];
-        $this->assertEquals('BazClass', $inner->getClass(), '->load() uses the same configuration as for the anonymous ones');
-        $this->assertFalse($inner->isPublic());
-
-        // anonymous service as a property
-        $properties = $services['foo']->getProperties();
-        $property = $properties['p'];
-        $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Reference', $property, '->load() converts anonymous services to references to "normal" services');
-        $this->assertTrue(isset($services[(string) $property]), '->load() makes a reference to the created ones');
-        $inner = $services[(string) $property];
-        $this->assertEquals('BazClass', $inner->getClass(), '->load() uses the same configuration as for the anonymous ones');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyLoadServices()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('legacy-services6.xml');
-        $services = $container->getDefinitions();
-        $this->assertEquals('FooClass', $services['constructor']->getClass());
-        $this->assertEquals('getInstance', $services['constructor']->getFactoryMethod());
-        $this->assertNull($services['factory_service']->getClass());
-        $this->assertEquals('baz_factory', $services['factory_service']->getFactoryService());
-        $this->assertEquals('getInstance', $services['factory_service']->getFactoryMethod());
-        $this->assertTrue($services['request']->isSynthetic(), '->load() parses the synthetic flag');
-        $this->assertTrue($services['request']->isSynchronized(), '->load() parses the synchronized flag');
-        $this->assertTrue($services['request']->isLazy(), '->load() parses the lazy flag');
-        $this->assertNull($services['request']->getDecoratedService());
-    }
-
-    public function testLoadServices()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('services6.xml');
-        $services = $container->getDefinitions();
-        $this->assertTrue(isset($services['foo']), '->load() parses <service> elements');
-        $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Definition', $services['foo'], '->load() converts <service> element to Definition instances');
-        $this->assertEquals('FooClass', $services['foo']->getClass(), '->load() parses the class attribute');
-        $this->assertEquals('container', $services['scope.container']->getScope());
-        $this->assertEquals('custom', $services['scope.custom']->getScope());
-        $this->assertEquals('prototype', $services['scope.prototype']->getScope());
-        $this->assertEquals('%path%/foo.php', $services['file']->getFile(), '->load() parses the file tag');
-        $this->assertEquals(array('foo', new Reference('foo'), array(true, false)), $services['arguments']->getArguments(), '->load() parses the argument tags');
-        $this->assertEquals('sc_configure', $services['configurator1']->getConfigurator(), '->load() parses the configurator tag');
-        $this->assertEquals(array(new Reference('baz', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false), 'configure'), $services['configurator2']->getConfigurator(), '->load() parses the configurator tag');
-        $this->assertEquals(array('BazClass', 'configureStatic'), $services['configurator3']->getConfigurator(), '->load() parses the configurator tag');
-        $this->assertEquals(array(array('setBar', array()), array('setBar', array(new Expression('service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")')))), $services['method_call1']->getMethodCalls(), '->load() parses the method_call tag');
-        $this->assertEquals(array(array('setBar', array('foo', new Reference('foo'), array(true, false)))), $services['method_call2']->getMethodCalls(), '->load() parses the method_call tag');
-        $this->assertEquals('factory', $services['new_factory1']->getFactory(), '->load() parses the factory tag');
-        $this->assertEquals(array(new Reference('baz', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false), 'getClass'), $services['new_factory2']->getFactory(), '->load() parses the factory tag');
-        $this->assertEquals(array('BazClass', 'getInstance'), $services['new_factory3']->getFactory(), '->load() parses the factory tag');
-
-        $aliases = $container->getAliases();
-        $this->assertTrue(isset($aliases['alias_for_foo']), '->load() parses <service> elements');
-        $this->assertEquals('foo', (string) $aliases['alias_for_foo'], '->load() parses aliases');
-        $this->assertTrue($aliases['alias_for_foo']->isPublic());
-        $this->assertTrue(isset($aliases['another_alias_for_foo']));
-        $this->assertEquals('foo', (string) $aliases['another_alias_for_foo']);
-        $this->assertFalse($aliases['another_alias_for_foo']->isPublic());
-
-        $this->assertEquals(array('decorated', null), $services['decorator_service']->getDecoratedService());
-        $this->assertEquals(array('decorated', 'decorated.pif-pouf'), $services['decorator_service_with_name']->getDecoratedService());
-    }
-
-    public function testParsesTags()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('services10.xml');
-
-        $services = $container->findTaggedServiceIds('foo_tag');
-        $this->assertCount(1, $services);
-
-        foreach ($services as $id => $tagAttributes) {
-            foreach ($tagAttributes as $attributes) {
-                $this->assertArrayHasKey('other_option', $attributes);
-                $this->assertEquals('lorem', $attributes['other_option']);
-                $this->assertArrayHasKey('other-option', $attributes, 'unnormalized tag attributes should not be removed');
-
-                $this->assertEquals('ciz', $attributes['some_option'], 'no overriding should be done when normalizing');
-                $this->assertEquals('cat', $attributes['some-option']);
-
-                $this->assertArrayNotHasKey('an_other_option', $attributes, 'normalization should not be done when an underscore is already found');
-            }
-        }
-    }
-
-    public function testConvertDomElementToArray()
-    {
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo>bar</foo>');
-        $this->assertEquals('bar', XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo foo="bar" />');
-        $this->assertEquals(array('foo' => 'bar'), XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo><foo>bar</foo></foo>');
-        $this->assertEquals(array('foo' => 'bar'), XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo><foo>bar<foo>bar</foo></foo></foo>');
-        $this->assertEquals(array('foo' => array('value' => 'bar', 'foo' => 'bar')), XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo><foo></foo></foo>');
-        $this->assertEquals(array('foo' => null), XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo><foo><!-- foo --></foo></foo>');
-        $this->assertEquals(array('foo' => null), XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-
-        $doc = new \DOMDocument('1.0');
-        $doc->loadXML('<foo><foo foo="bar"/><foo foo="bar"/></foo>');
-        $this->assertEquals(array('foo' => array(array('foo' => 'bar'), array('foo' => 'bar'))), XmlFileLoader::convertDomElementToArray($doc->documentElement), '::convertDomElementToArray() converts a \DomElement to an array');
-    }
-
-    public function testExtensions()
-    {
-        $container = new ContainerBuilder();
-        $container->registerExtension(new \ProjectExtension());
-        $container->registerExtension(new \ProjectWithXsdExtension());
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-
-        // extension without an XSD
-        $loader->load('extensions/services1.xml');
-        $container->compile();
-        $services = $container->getDefinitions();
-        $parameters = $container->getParameterBag()->all();
-
-        $this->assertTrue(isset($services['project.service.bar']), '->load() parses extension elements');
-        $this->assertTrue(isset($parameters['project.parameter.bar']), '->load() parses extension elements');
-
-        $this->assertEquals('BAR', $services['project.service.foo']->getClass(), '->load() parses extension elements');
-        $this->assertEquals('BAR', $parameters['project.parameter.foo'], '->load() parses extension elements');
-
-        // extension with an XSD
-        $container = new ContainerBuilder();
-        $container->registerExtension(new \ProjectExtension());
-        $container->registerExtension(new \ProjectWithXsdExtension());
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('extensions/services2.xml');
-        $container->compile();
-        $services = $container->getDefinitions();
-        $parameters = $container->getParameterBag()->all();
-
-        $this->assertTrue(isset($services['project.service.bar']), '->load() parses extension elements');
-        $this->assertTrue(isset($parameters['project.parameter.bar']), '->load() parses extension elements');
-
-        $this->assertEquals('BAR', $services['project.service.foo']->getClass(), '->load() parses extension elements');
-        $this->assertEquals('BAR', $parameters['project.parameter.foo'], '->load() parses extension elements');
-
-        $container = new ContainerBuilder();
-        $container->registerExtension(new \ProjectExtension());
-        $container->registerExtension(new \ProjectWithXsdExtension());
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-
-        // extension with an XSD (does not validate)
-        try {
-            $loader->load('extensions/services3.xml');
-            $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'services3.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-
-            $e = $e->getPrevious();
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertContains('The attribute \'bar\' is not allowed', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-        }
-
-        // non-registered extension
-        try {
-            $loader->load('extensions/services4.xml');
-            $this->fail('->load() throws an InvalidArgumentException if the tag is not valid');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the tag is not valid');
-            $this->assertStringStartsWith('There is no extension able to load the configuration for "project:bar" (in', $e->getMessage(), '->load() throws an InvalidArgumentException if the tag is not valid');
-        }
-    }
-
-    public function testExtensionInPhar()
-    {
-        if (extension_loaded('suhosin') && false === strpos(ini_get('suhosin.executor.include.whitelist'), 'phar')) {
-            $this->markTestSkipped('To run this test, add "phar" to the "suhosin.executor.include.whitelist" settings in your php.ini file.');
-        }
-
-        require_once self::$fixturesPath.'/includes/ProjectWithXsdExtensionInPhar.phar';
-
-        // extension with an XSD in PHAR archive
-        $container = new ContainerBuilder();
-        $container->registerExtension(new \ProjectWithXsdExtensionInPhar());
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('extensions/services6.xml');
-
-        // extension with an XSD in PHAR archive (does not validate)
-        try {
-            $loader->load('extensions/services7.xml');
-            $this->fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'services7.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-
-            $e = $e->getPrevious();
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-            $this->assertContains('The attribute \'bar\' is not allowed', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\XmlFileLoader::supports
-     */
-    public function testSupports()
-    {
-        $loader = new XmlFileLoader(new ContainerBuilder(), new FileLocator());
-
-        $this->assertTrue($loader->supports('foo.xml'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-    }
-
-    public function testNoNamingConflictsForAnonymousServices()
-    {
-        $container = new ContainerBuilder();
-
-        $loader1 = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml/extension1'));
-        $loader1->load('services.xml');
-        $services = $container->getDefinitions();
-        $this->assertCount(2, $services, '->load() attributes unique ids to anonymous services');
-        $loader2 = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml/extension2'));
-        $loader2->load('services.xml');
-        $services = $container->getDefinitions();
-        $this->assertCount(4, $services, '->load() attributes unique ids to anonymous services');
-
-        $services = $container->getDefinitions();
-        $args1 = $services['extension1.foo']->getArguments();
-        $inner1 = $services[(string) $args1[0]];
-        $this->assertEquals('BarClass1', $inner1->getClass(), '->load() uses the same configuration as for the anonymous ones');
-        $args2 = $services['extension2.foo']->getArguments();
-        $inner2 = $services[(string) $args2[0]];
-        $this->assertEquals('BarClass2', $inner2->getClass(), '->load() uses the same configuration as for the anonymous ones');
-    }
-
-    public function testDocTypeIsNotAllowed()
-    {
-        $container = new ContainerBuilder();
-
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-
-        // document types are not allowed.
-        try {
-            $loader->load('withdoctype.xml');
-            $this->fail('->load() throws an InvalidArgumentException if the configuration contains a document type');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration contains a document type');
-            $this->assertRegExp(sprintf('#^Unable to parse file ".+%s".$#', 'withdoctype.xml'), $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration contains a document type');
-
-            $e = $e->getPrevious();
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the configuration contains a document type');
-            $this->assertSame('Document types are not allowed.', $e->getMessage(), '->load() throws an InvalidArgumentException if the configuration contains a document type');
-        }
-    }
-
-    public function testXmlNamespaces()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('namespaces.xml');
-        $services = $container->getDefinitions();
-
-        $this->assertTrue(isset($services['foo']), '->load() parses <srv:service> elements');
-        $this->assertEquals(1, count($services['foo']->getTag('foo.tag')), '->load parses <srv:tag> elements');
-        $this->assertEquals(array(array('setBar', array('foo'))), $services['foo']->getMethodCalls(), '->load() parses the <srv:call> tag');
-    }
-
-    public function testLoadIndexedArguments()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('services14.xml');
-
-        $this->assertEquals(array('index_0' => 'app'), $container->findDefinition('logger')->getArguments());
-    }
-
-    public function testLoadInlinedServices()
-    {
-        $container = new ContainerBuilder();
-        $loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
-        $loader->load('services21.xml');
-
-        $foo = $container->getDefinition('foo');
-
-        $fooFactory = $foo->getFactory();
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $fooFactory[0]);
-        $this->assertSame('FooFactory', $fooFactory[0]->getClass());
-        $this->assertSame('createFoo', $fooFactory[1]);
-
-        $fooFactoryFactory = $fooFactory[0]->getFactory();
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $fooFactoryFactory[0]);
-        $this->assertSame('Foobar', $fooFactoryFactory[0]->getClass());
-        $this->assertSame('createFooFactory', $fooFactoryFactory[1]);
-
-        $fooConfigurator = $foo->getConfigurator();
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $fooConfigurator[0]);
-        $this->assertSame('Bar', $fooConfigurator[0]->getClass());
-        $this->assertSame('configureFoo', $fooConfigurator[1]);
-
-        $barConfigurator = $fooConfigurator[0]->getConfigurator();
-        $this->assertInstanceOf('Symfony\Component\DependencyInjection\Definition', $barConfigurator[0]);
-        $this->assertSame('Baz', $barConfigurator[0]->getClass());
-        $this->assertSame('configureBar', $barConfigurator[1]);
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php
deleted file mode 100644
index 28cf0eb..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/Loader/YamlFileLoaderTest.php
+++ /dev/null
@@ -1,282 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\Loader;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
-use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
-use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
-use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
-use Symfony\Component\Config\Loader\LoaderResolver;
-use Symfony\Component\Config\FileLocator;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../Fixtures/');
-        require_once self::$fixturesPath.'/includes/foo.php';
-        require_once self::$fixturesPath.'/includes/ProjectExtension.php';
-    }
-
-    public function testLoadFile()
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/ini'));
-        $r = new \ReflectionObject($loader);
-        $m = $r->getMethod('loadFile');
-        $m->setAccessible(true);
-
-        try {
-            $m->invoke($loader, 'foo.yml');
-            $this->fail('->load() throws an InvalidArgumentException if the loaded file does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the loaded file does not exist');
-            $this->assertEquals('The service file "foo.yml" is not valid.', $e->getMessage(), '->load() throws an InvalidArgumentException if the loaded file does not exist');
-        }
-
-        try {
-            $m->invoke($loader, 'parameters.ini');
-            $this->fail('->load() throws an InvalidArgumentException if the loaded file is not a valid YAML file');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the loaded file is not a valid YAML file');
-            $this->assertEquals('The service file "parameters.ini" is not valid.', $e->getMessage(), '->load() throws an InvalidArgumentException if the loaded file is not a valid YAML file');
-        }
-
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/yaml'));
-
-        foreach (array('nonvalid1', 'nonvalid2') as $fixture) {
-            try {
-                $m->invoke($loader, $fixture.'.yml');
-                $this->fail('->load() throws an InvalidArgumentException if the loaded file does not validate');
-            } catch (\Exception $e) {
-                $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the loaded file does not validate');
-                $this->assertStringMatchesFormat('The service file "nonvalid%d.yml" is not valid.', $e->getMessage(), '->load() throws an InvalidArgumentException if the loaded file does not validate');
-            }
-        }
-    }
-
-    /**
-     * @dataProvider provideInvalidFiles
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
-     */
-    public function testLoadInvalidFile($file)
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/yaml'));
-
-        $loader->load($file.'.yml');
-    }
-
-    public function provideInvalidFiles()
-    {
-        return array(
-            array('bad_parameters'),
-            array('bad_imports'),
-            array('bad_import'),
-            array('bad_services'),
-            array('bad_service'),
-            array('bad_calls'),
-        );
-    }
-
-    public function testLoadParameters()
-    {
-        $container = new ContainerBuilder();
-        $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('services2.yml');
-        $this->assertEquals(array('foo' => 'bar', 'mixedcase' => array('MixedCaseKey' => 'value'), 'values' => array(true, false, 0, 1000.3), 'bar' => 'foo', 'escape' => '@escapeme', 'foo_bar' => new Reference('foo_bar')), $container->getParameterBag()->all(), '->load() converts YAML keys to lowercase');
-    }
-
-    public function testLoadImports()
-    {
-        $container = new ContainerBuilder();
-        $resolver = new LoaderResolver(array(
-            new IniFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml')),
-            new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml')),
-            new PhpFileLoader($container, new FileLocator(self::$fixturesPath.'/php')),
-            $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml')),
-        ));
-        $loader->setResolver($resolver);
-        $loader->load('services4.yml');
-
-        $actual = $container->getParameterBag()->all();
-        $expected = array('foo' => 'bar', 'values' => array(true, false), 'bar' => '%foo%', 'escape' => '@escapeme', 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'), 'imported_from_ini' => true, 'imported_from_xml' => true);
-        $this->assertEquals(array_keys($expected), array_keys($actual), '->load() imports and merges imported files');
-
-        // Bad import throws no exception due to ignore_errors value.
-        $loader->load('services4_bad_import.yml');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyLoadServices()
-    {
-        $container = new ContainerBuilder();
-        $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('legacy-services6.yml');
-        $services = $container->getDefinitions();
-        $this->assertEquals('FooClass', $services['constructor']->getClass());
-        $this->assertEquals('getInstance', $services['constructor']->getFactoryMethod());
-        $this->assertEquals('BazClass', $services['factory_service']->getClass());
-        $this->assertEquals('baz_factory', $services['factory_service']->getFactoryService());
-        $this->assertEquals('getInstance', $services['factory_service']->getFactoryMethod());
-        $this->assertTrue($services['request']->isSynthetic(), '->load() parses the synthetic flag');
-        $this->assertTrue($services['request']->isSynchronized(), '->load() parses the synchronized flag');
-        $this->assertTrue($services['request']->isLazy(), '->load() parses the lazy flag');
-        $this->assertNull($services['request']->getDecoratedService());
-    }
-
-    public function testLoadServices()
-    {
-        $container = new ContainerBuilder();
-        $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('services6.yml');
-        $services = $container->getDefinitions();
-        $this->assertTrue(isset($services['foo']), '->load() parses service elements');
-        $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Definition', $services['foo'], '->load() converts service element to Definition instances');
-        $this->assertEquals('FooClass', $services['foo']->getClass(), '->load() parses the class attribute');
-        $this->assertEquals('container', $services['scope.container']->getScope());
-        $this->assertEquals('custom', $services['scope.custom']->getScope());
-        $this->assertEquals('prototype', $services['scope.prototype']->getScope());
-        $this->assertEquals('%path%/foo.php', $services['file']->getFile(), '->load() parses the file tag');
-        $this->assertEquals(array('foo', new Reference('foo'), array(true, false)), $services['arguments']->getArguments(), '->load() parses the argument tags');
-        $this->assertEquals('sc_configure', $services['configurator1']->getConfigurator(), '->load() parses the configurator tag');
-        $this->assertEquals(array(new Reference('baz'), 'configure'), $services['configurator2']->getConfigurator(), '->load() parses the configurator tag');
-        $this->assertEquals(array('BazClass', 'configureStatic'), $services['configurator3']->getConfigurator(), '->load() parses the configurator tag');
-        $this->assertEquals(array(array('setBar', array()), array('setBar', array()), array('setBar', array(new Expression('service("foo").foo() ~ (container.hasparameter("foo") ? parameter("foo") : "default")')))), $services['method_call1']->getMethodCalls(), '->load() parses the method_call tag');
-        $this->assertEquals(array(array('setBar', array('foo', new Reference('foo'), array(true, false)))), $services['method_call2']->getMethodCalls(), '->load() parses the method_call tag');
-        $this->assertEquals('factory', $services['new_factory1']->getFactory(), '->load() parses the factory tag');
-        $this->assertEquals(array(new Reference('baz'), 'getClass'), $services['new_factory2']->getFactory(), '->load() parses the factory tag');
-        $this->assertEquals(array('BazClass', 'getInstance'), $services['new_factory3']->getFactory(), '->load() parses the factory tag');
-
-        $aliases = $container->getAliases();
-        $this->assertTrue(isset($aliases['alias_for_foo']), '->load() parses aliases');
-        $this->assertEquals('foo', (string) $aliases['alias_for_foo'], '->load() parses aliases');
-        $this->assertTrue($aliases['alias_for_foo']->isPublic());
-        $this->assertTrue(isset($aliases['another_alias_for_foo']));
-        $this->assertEquals('foo', (string) $aliases['another_alias_for_foo']);
-        $this->assertFalse($aliases['another_alias_for_foo']->isPublic());
-
-        $this->assertEquals(array('decorated', null), $services['decorator_service']->getDecoratedService());
-        $this->assertEquals(array('decorated', 'decorated.pif-pouf'), $services['decorator_service_with_name']->getDecoratedService());
-    }
-
-    public function testLoadFactoryShortSyntax()
-    {
-        $container = new ContainerBuilder();
-        $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('services14.yml');
-        $services = $container->getDefinitions();
-
-        $this->assertEquals(array(new Reference('baz'), 'getClass'), $services['factory']->getFactory(), '->load() parses the factory tag with service:method');
-        $this->assertEquals(array('FooBacFactory', 'createFooBar'), $services['factory_with_static_call']->getFactory(), '->load() parses the factory tag with Class::method');
-    }
-
-    public function testExtensions()
-    {
-        $container = new ContainerBuilder();
-        $container->registerExtension(new \ProjectExtension());
-        $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('services10.yml');
-        $container->compile();
-        $services = $container->getDefinitions();
-        $parameters = $container->getParameterBag()->all();
-
-        $this->assertTrue(isset($services['project.service.bar']), '->load() parses extension elements');
-        $this->assertTrue(isset($parameters['project.parameter.bar']), '->load() parses extension elements');
-
-        $this->assertEquals('BAR', $services['project.service.foo']->getClass(), '->load() parses extension elements');
-        $this->assertEquals('BAR', $parameters['project.parameter.foo'], '->load() parses extension elements');
-
-        try {
-            $loader->load('services11.yml');
-            $this->fail('->load() throws an InvalidArgumentException if the tag is not valid');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the tag is not valid');
-            $this->assertStringStartsWith('There is no extension able to load the configuration for "foobarfoobar" (in', $e->getMessage(), '->load() throws an InvalidArgumentException if the tag is not valid');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\Loader\YamlFileLoader::supports
-     */
-    public function testSupports()
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator());
-
-        $this->assertTrue($loader->supports('foo.yml'), '->supports() returns true if the resource is loadable');
-        $this->assertTrue($loader->supports('foo.yaml'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-    }
-
-    public function testNonArrayTagsThrowsException()
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/yaml'));
-        try {
-            $loader->load('badtag1.yml');
-            $this->fail('->load() should throw an exception when the tags key of a service is not an array');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if the tags key is not an array');
-            $this->assertStringStartsWith('Parameter "tags" must be an array for service', $e->getMessage(), '->load() throws an InvalidArgumentException if the tags key is not an array');
-        }
-    }
-
-    /**
-     * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
-     * @expectedExceptionMessage A "tags" entry must be an array for service
-     */
-    public function testNonArrayTagThrowsException()
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('badtag4.yml');
-    }
-
-    public function testTagWithoutNameThrowsException()
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/yaml'));
-        try {
-            $loader->load('badtag2.yml');
-            $this->fail('->load() should throw an exception when a tag is missing the name key');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if a tag is missing the name key');
-            $this->assertStringStartsWith('A "tags" entry is missing a "name" key for service ', $e->getMessage(), '->load() throws an InvalidArgumentException if a tag is missing the name key');
-        }
-    }
-
-    public function testTagWithAttributeArrayThrowsException()
-    {
-        $loader = new YamlFileLoader(new ContainerBuilder(), new FileLocator(self::$fixturesPath.'/yaml'));
-        try {
-            $loader->load('badtag3.yml');
-            $this->fail('->load() should throw an exception when a tag-attribute is not a scalar');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\InvalidArgumentException', $e, '->load() throws an InvalidArgumentException if a tag-attribute is not a scalar');
-            $this->assertStringStartsWith('A "tags" attribute must be of a scalar-type for service "foo_service", tag "foo", attribute "bar"', $e->getMessage(), '->load() throws an InvalidArgumentException if a tag-attribute is not a scalar');
-        }
-    }
-
-    public function testLoadYamlOnlyWithKeys()
-    {
-        $container = new ContainerBuilder();
-        $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
-        $loader->load('services21.yml');
-
-        $definition = $container->getDefinition('manager');
-        $this->assertEquals(array(array('setLogger', array(new Reference('logger'))), array('setClass', array('User'))), $definition->getMethodCalls());
-        $this->assertEquals(array(true), $definition->getArguments());
-        $this->assertEquals(array('manager' => array(array('alias' => 'user'))), $definition->getTags());
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/ParameterBag/FrozenParameterBagTest.php b/core/vendor/symfony/dependency-injection/Tests/ParameterBag/FrozenParameterBagTest.php
deleted file mode 100644
index 6d963dc..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/ParameterBag/FrozenParameterBagTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\ParameterBag;
-
-use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
-
-class FrozenParameterBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag::__construct
-     */
-    public function testConstructor()
-    {
-        $parameters = array(
-            'foo' => 'foo',
-            'bar' => 'bar',
-        );
-        $bag = new FrozenParameterBag($parameters);
-        $this->assertEquals($parameters, $bag->all(), '__construct() takes an array of parameters as its first argument');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag::clear
-     * @expectedException \LogicException
-     */
-    public function testClear()
-    {
-        $bag = new FrozenParameterBag(array());
-        $bag->clear();
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag::set
-     * @expectedException \LogicException
-     */
-    public function testSet()
-    {
-        $bag = new FrozenParameterBag(array());
-        $bag->set('foo', 'bar');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag::add
-     * @expectedException \LogicException
-     */
-    public function testAdd()
-    {
-        $bag = new FrozenParameterBag(array());
-        $bag->add(array());
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testRemove()
-    {
-        $bag = new FrozenParameterBag(array('foo' => 'bar'));
-        $bag->remove('foo');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/ParameterBag/ParameterBagTest.php b/core/vendor/symfony/dependency-injection/Tests/ParameterBag/ParameterBagTest.php
deleted file mode 100644
index e1f8169..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/ParameterBag/ParameterBagTest.php
+++ /dev/null
@@ -1,279 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests\ParameterBag;
-
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-class ParameterBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::__construct
-     */
-    public function testConstructor()
-    {
-        $bag = new ParameterBag($parameters = array(
-            'foo' => 'foo',
-            'bar' => 'bar',
-        ));
-        $this->assertEquals($parameters, $bag->all(), '__construct() takes an array of parameters as its first argument');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::clear
-     */
-    public function testClear()
-    {
-        $bag = new ParameterBag($parameters = array(
-            'foo' => 'foo',
-            'bar' => 'bar',
-        ));
-        $bag->clear();
-        $this->assertEquals(array(), $bag->all(), '->clear() removes all parameters');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::remove
-     */
-    public function testRemove()
-    {
-        $bag = new ParameterBag(array(
-            'foo' => 'foo',
-            'bar' => 'bar',
-        ));
-        $bag->remove('foo');
-        $this->assertEquals(array('bar' => 'bar'), $bag->all(), '->remove() removes a parameter');
-        $bag->remove('BAR');
-        $this->assertEquals(array(), $bag->all(), '->remove() converts key to lowercase before removing');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::get
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::set
-     */
-    public function testGetSet()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $bag->set('bar', 'foo');
-        $this->assertEquals('foo', $bag->get('bar'), '->set() sets the value of a new parameter');
-
-        $bag->set('foo', 'baz');
-        $this->assertEquals('baz', $bag->get('foo'), '->set() overrides previously set parameter');
-
-        $bag->set('Foo', 'baz1');
-        $this->assertEquals('baz1', $bag->get('foo'), '->set() converts the key to lowercase');
-        $this->assertEquals('baz1', $bag->get('FOO'), '->get() converts the key to lowercase');
-
-        try {
-            $bag->get('baba');
-            $this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException', $e, '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent parameter "baba".', $e->getMessage(), '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-        }
-    }
-
-    public function testGetThrowParameterNotFoundException()
-    {
-        $bag = new ParameterBag(array(
-            'foo' => 'foo',
-            'bar' => 'bar',
-            'baz' => 'baz',
-        ));
-
-        try {
-            $bag->get('foo1');
-            $this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException', $e, '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent parameter "foo1". Did you mean this: "foo"?', $e->getMessage(), '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException with some advices');
-        }
-
-        try {
-            $bag->get('bag');
-            $this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException', $e, '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent parameter "bag". Did you mean one of these: "bar", "baz"?', $e->getMessage(), '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException with some advices');
-        }
-
-        try {
-            $bag->get('');
-            $this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException', $e, '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
-            $this->assertEquals('You have requested a non-existent parameter "".', $e->getMessage(), '->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException with some advices');
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::has
-     */
-    public function testHas()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $this->assertTrue($bag->has('foo'), '->has() returns true if a parameter is defined');
-        $this->assertTrue($bag->has('Foo'), '->has() converts the key to lowercase');
-        $this->assertFalse($bag->has('bar'), '->has() returns false if a parameter is not defined');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolveValue
-     */
-    public function testResolveValue()
-    {
-        $bag = new ParameterBag(array());
-        $this->assertEquals('foo', $bag->resolveValue('foo'), '->resolveValue() returns its argument unmodified if no placeholders are found');
-
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $this->assertEquals('I\'m a bar', $bag->resolveValue('I\'m a %foo%'), '->resolveValue() replaces placeholders by their values');
-        $this->assertEquals(array('bar' => 'bar'), $bag->resolveValue(array('%foo%' => '%foo%')), '->resolveValue() replaces placeholders in keys and values of arrays');
-        $this->assertEquals(array('bar' => array('bar' => array('bar' => 'bar'))), $bag->resolveValue(array('%foo%' => array('%foo%' => array('%foo%' => '%foo%')))), '->resolveValue() replaces placeholders in nested arrays');
-        $this->assertEquals('I\'m a %%foo%%', $bag->resolveValue('I\'m a %%foo%%'), '->resolveValue() supports % escaping by doubling it');
-        $this->assertEquals('I\'m a bar %%foo bar', $bag->resolveValue('I\'m a %foo% %%foo %foo%'), '->resolveValue() supports % escaping by doubling it');
-        $this->assertEquals(array('foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar'))), $bag->resolveValue(array('foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar')))), '->resolveValue() supports % escaping by doubling it');
-
-        $bag = new ParameterBag(array('foo' => true));
-        $this->assertTrue($bag->resolveValue('%foo%'), '->resolveValue() replaces arguments that are just a placeholder by their value without casting them to strings');
-        $bag = new ParameterBag(array('foo' => null));
-        $this->assertNull($bag->resolveValue('%foo%'), '->resolveValue() replaces arguments that are just a placeholder by their value without casting them to strings');
-
-        $bag = new ParameterBag(array('foo' => 'bar', 'baz' => '%%%foo% %foo%%% %%foo%% %%%foo%%%'));
-        $this->assertEquals('%%bar bar%% %%foo%% %%bar%%', $bag->resolveValue('%baz%'), '->resolveValue() replaces params placed besides escaped %');
-
-        $bag = new ParameterBag(array('baz' => '%%s?%%s'));
-        $this->assertEquals('%%s?%%s', $bag->resolveValue('%baz%'), '->resolveValue() is not replacing greedily');
-
-        $bag = new ParameterBag(array());
-        try {
-            $bag->resolveValue('%foobar%');
-            $this->fail('->resolveValue() throws an InvalidArgumentException if a placeholder references a non-existent parameter');
-        } catch (ParameterNotFoundException $e) {
-            $this->assertEquals('You have requested a non-existent parameter "foobar".', $e->getMessage(), '->resolveValue() throws a ParameterNotFoundException if a placeholder references a non-existent parameter');
-        }
-
-        try {
-            $bag->resolveValue('foo %foobar% bar');
-            $this->fail('->resolveValue() throws a ParameterNotFoundException if a placeholder references a non-existent parameter');
-        } catch (ParameterNotFoundException $e) {
-            $this->assertEquals('You have requested a non-existent parameter "foobar".', $e->getMessage(), '->resolveValue() throws a ParameterNotFoundException if a placeholder references a non-existent parameter');
-        }
-
-        $bag = new ParameterBag(array('foo' => 'a %bar%', 'bar' => array()));
-        try {
-            $bag->resolveValue('%foo%');
-            $this->fail('->resolveValue() throws a RuntimeException when a parameter embeds another non-string parameter');
-        } catch (RuntimeException $e) {
-            $this->assertEquals('A string value must be composed of strings and/or numbers, but found parameter "bar" of type array inside string value "a %bar%".', $e->getMessage(), '->resolveValue() throws a RuntimeException when a parameter embeds another non-string parameter');
-        }
-
-        $bag = new ParameterBag(array('foo' => '%bar%', 'bar' => '%foobar%', 'foobar' => '%foo%'));
-        try {
-            $bag->resolveValue('%foo%');
-            $this->fail('->resolveValue() throws a ParameterCircularReferenceException when a parameter has a circular reference');
-        } catch (ParameterCircularReferenceException $e) {
-            $this->assertEquals('Circular reference detected for parameter "foo" ("foo" > "bar" > "foobar" > "foo").', $e->getMessage(), '->resolveValue() throws a ParameterCircularReferenceException when a parameter has a circular reference');
-        }
-
-        $bag = new ParameterBag(array('foo' => 'a %bar%', 'bar' => 'a %foobar%', 'foobar' => 'a %foo%'));
-        try {
-            $bag->resolveValue('%foo%');
-            $this->fail('->resolveValue() throws a ParameterCircularReferenceException when a parameter has a circular reference');
-        } catch (ParameterCircularReferenceException $e) {
-            $this->assertEquals('Circular reference detected for parameter "foo" ("foo" > "bar" > "foobar" > "foo").', $e->getMessage(), '->resolveValue() throws a ParameterCircularReferenceException when a parameter has a circular reference');
-        }
-
-        $bag = new ParameterBag(array('host' => 'foo.bar', 'port' => 1337));
-        $this->assertEquals('foo.bar:1337', $bag->resolveValue('%host%:%port%'));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
-     */
-    public function testResolveIndicatesWhyAParameterIsNeeded()
-    {
-        $bag = new ParameterBag(array('foo' => '%bar%'));
-
-        try {
-            $bag->resolve();
-        } catch (ParameterNotFoundException $e) {
-            $this->assertEquals('The parameter "foo" has a dependency on a non-existent parameter "bar".', $e->getMessage());
-        }
-
-        $bag = new ParameterBag(array('foo' => '%bar%'));
-
-        try {
-            $bag->resolve();
-        } catch (ParameterNotFoundException $e) {
-            $this->assertEquals('The parameter "foo" has a dependency on a non-existent parameter "bar".', $e->getMessage());
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
-     */
-    public function testResolveUnescapesValue()
-    {
-        $bag = new ParameterBag(array(
-            'foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar')),
-            'bar' => 'I\'m a %%foo%%',
-        ));
-
-        $bag->resolve();
-
-        $this->assertEquals('I\'m a %foo%', $bag->get('bar'), '->resolveValue() supports % escaping by doubling it');
-        $this->assertEquals(array('bar' => array('ding' => 'I\'m a bar %foo %bar')), $bag->get('foo'), '->resolveValue() supports % escaping by doubling it');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::escapeValue
-     */
-    public function testEscapeValue()
-    {
-        $bag = new ParameterBag();
-
-        $bag->add(array(
-            'foo' => $bag->escapeValue(array('bar' => array('ding' => 'I\'m a bar %foo %bar', 'zero' => null))),
-            'bar' => $bag->escapeValue('I\'m a %foo%'),
-        ));
-
-        $this->assertEquals('I\'m a %%foo%%', $bag->get('bar'), '->escapeValue() escapes % by doubling it');
-        $this->assertEquals(array('bar' => array('ding' => 'I\'m a bar %%foo %%bar', 'zero' => null)), $bag->get('foo'), '->escapeValue() escapes % by doubling it');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
-     * @dataProvider stringsWithSpacesProvider
-     */
-    public function testResolveStringWithSpacesReturnsString($expected, $test, $description)
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-
-        try {
-            $this->assertEquals($expected, $bag->resolveString($test), $description);
-        } catch (ParameterNotFoundException $e) {
-            $this->fail(sprintf('%s - "%s"', $description, $expected));
-        }
-    }
-
-    public function stringsWithSpacesProvider()
-    {
-        return array(
-            array('bar', '%foo%', 'Parameters must be wrapped by %.'),
-            array('% foo %', '% foo %', 'Parameters should not have spaces.'),
-            array('{% set my_template = "foo" %}', '{% set my_template = "foo" %}', 'Twig-like strings are not parameters.'),
-            array('50% is less than 100%', '50% is less than 100%', 'Text between % signs is allowed, if there are spaces.'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/ParameterTest.php b/core/vendor/symfony/dependency-injection/Tests/ParameterTest.php
deleted file mode 100644
index bed188e..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/ParameterTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\Parameter;
-
-class ParameterTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\Parameter::__construct
-     */
-    public function testConstructor()
-    {
-        $ref = new Parameter('foo');
-        $this->assertEquals('foo', (string) $ref, '__construct() sets the id of the parameter, which is used for the __toString() method');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Tests/ReferenceTest.php b/core/vendor/symfony/dependency-injection/Tests/ReferenceTest.php
deleted file mode 100644
index f14e99f..0000000
--- a/core/vendor/symfony/dependency-injection/Tests/ReferenceTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Tests;
-
-use Symfony\Component\DependencyInjection\Reference;
-
-class ReferenceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\DependencyInjection\Reference::__construct
-     */
-    public function testConstructor()
-    {
-        $ref = new Reference('foo');
-        $this->assertEquals('foo', (string) $ref, '__construct() sets the id of the reference, which is used for the __toString() method');
-    }
-
-    public function testCaseInsensitive()
-    {
-        $ref = new Reference('FooBar');
-        $this->assertEquals('foobar', (string) $ref, 'the id is lowercased as the container is case insensitive');
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Variable.php b/core/vendor/symfony/dependency-injection/Variable.php
deleted file mode 100644
index e502356..0000000
--- a/core/vendor/symfony/dependency-injection/Variable.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection;
-
-/**
- * Represents a variable.
- *
- *     $var = new Variable('a');
- *
- * will be dumped as
- *
- *     $a
- *
- * by the PHP dumper.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class Variable
-{
-    private $name;
-
-    /**
-     * Constructor.
-     *
-     * @param string $name
-     */
-    public function __construct($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * Converts the object to a string.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->name;
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/composer.json b/core/vendor/symfony/dependency-injection/composer.json
deleted file mode 100644
index bbfed43..0000000
--- a/core/vendor/symfony/dependency-injection/composer.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    "name": "symfony/dependency-injection",
-    "type": "library",
-    "description": "Symfony DependencyInjection Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/yaml": "~2.1",
-        "symfony/config": "~2.2",
-        "symfony/expression-language": "~2.6"
-    },
-    "conflict": {
-        "symfony/expression-language": "<2.6"
-    },
-    "suggest": {
-        "symfony/yaml": "",
-        "symfony/config": "",
-        "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/phpunit.xml.dist b/core/vendor/symfony/dependency-injection/phpunit.xml.dist
deleted file mode 100644
index 86252d0..0000000
--- a/core/vendor/symfony/dependency-injection/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony DependencyInjection Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/dom-crawler/.gitignore b/core/vendor/symfony/dom-crawler/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/dom-crawler/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/dom-crawler/CHANGELOG.md b/core/vendor/symfony/dom-crawler/CHANGELOG.md
deleted file mode 100644
index 48fd323..0000000
--- a/core/vendor/symfony/dom-crawler/CHANGELOG.md
+++ /dev/null
@@ -1,45 +0,0 @@
-CHANGELOG
-=========
-
-2.5.0
------
-
-* [BC BREAK] The default value for checkbox and radio inputs without a value attribute have changed
-  from '1' to 'on' to match the HTML specification.
-* [BC BREAK] The typehints on the `Link`, `Form` and `FormField` classes have been changed from
-  `\DOMNode` to `DOMElement`. Using any other type of `DOMNode` was triggering fatal errors in previous
-  versions. Code extending these classes will need to update the typehints when overwriting these methods.
-
-2.4.0
------
-
- * `Crawler::addXmlContent()` removes the default document namespace again if it's an only namespace.
- * added support for automatic discovery and explicit registration of document
-   namespaces for `Crawler::filterXPath()` and `Crawler::filter()`
- * improved content type guessing in `Crawler::addContent()`
- * [BC BREAK] `Crawler::addXmlContent()` no longer removes the default document
-   namespace
-
-2.3.0
------
-
- * added Crawler::html()
- * [BC BREAK] Crawler::each() and Crawler::reduce() now return Crawler instances instead of DomElement instances
- * added schema relative URL support to links
- * added support for HTML5 'form' attribute
-
-2.2.0
------
-
- * added a way to set raw path to the file in FileFormField - necessary for
-   simulating HTTP requests
-
-2.1.0
------
-
- * added support for the HTTP PATCH method
- * refactored the Form class internals to support multi-dimensional fields
-   (the public API is backward compatible)
- * added a way to get parsing errors for Crawler::addHtmlContent() and
-   Crawler::addXmlContent() via libxml functions
- * added support for submitting a form without a submit button
diff --git a/core/vendor/symfony/dom-crawler/Crawler.php b/core/vendor/symfony/dom-crawler/Crawler.php
deleted file mode 100644
index 3fd87bd..0000000
--- a/core/vendor/symfony/dom-crawler/Crawler.php
+++ /dev/null
@@ -1,1028 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler;
-
-use Symfony\Component\CssSelector\CssSelector;
-
-/**
- * Crawler eases navigation of a list of \DOMElement objects.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Crawler extends \SplObjectStorage
-{
-    /**
-     * @var string The current URI
-     */
-    protected $uri;
-
-    /**
-     * @var string The default namespace prefix to be used with XPath and CSS expressions
-     */
-    private $defaultNamespacePrefix = 'default';
-
-    /**
-     * @var array A map of manually registered namespaces
-     */
-    private $namespaces = array();
-
-    /**
-     * @var string The base href value
-     */
-    private $baseHref;
-
-    /**
-     * Constructor.
-     *
-     * @param mixed  $node       A Node to use as the base for the crawling
-     * @param string $currentUri The current URI
-     * @param string $baseHref   The base href value
-     *
-     * @api
-     */
-    public function __construct($node = null, $currentUri = null, $baseHref = null)
-    {
-        $this->uri = $currentUri;
-        $this->baseHref = $baseHref ?: $currentUri;
-
-        $this->add($node);
-    }
-
-    /**
-     * Removes all the nodes.
-     *
-     * @api
-     */
-    public function clear()
-    {
-        $this->removeAll($this);
-    }
-
-    /**
-     * Adds a node to the current list of nodes.
-     *
-     * This method uses the appropriate specialized add*() method based
-     * on the type of the argument.
-     *
-     * @param \DOMNodeList|\DOMNode|array|string|null $node A node
-     *
-     * @throws \InvalidArgumentException When node is not the expected type.
-     *
-     * @api
-     */
-    public function add($node)
-    {
-        if ($node instanceof \DOMNodeList) {
-            $this->addNodeList($node);
-        } elseif ($node instanceof \DOMNode) {
-            $this->addNode($node);
-        } elseif (is_array($node)) {
-            $this->addNodes($node);
-        } elseif (is_string($node)) {
-            $this->addContent($node);
-        } elseif (null !== $node) {
-            throw new \InvalidArgumentException(sprintf('Expecting a DOMNodeList or DOMNode instance, an array, a string, or null, but got "%s".', is_object($node) ? get_class($node) : gettype($node)));
-        }
-    }
-
-    /**
-     * Adds HTML/XML content.
-     *
-     * If the charset is not set via the content type, it is assumed
-     * to be ISO-8859-1, which is the default charset defined by the
-     * HTTP 1.1 specification.
-     *
-     * @param string      $content A string to parse as HTML/XML
-     * @param null|string $type    The content type of the string
-     */
-    public function addContent($content, $type = null)
-    {
-        if (empty($type)) {
-            $type = 0 === strpos($content, '<?xml') ? 'application/xml' : 'text/html';
-        }
-
-        // DOM only for HTML/XML content
-        if (!preg_match('/(x|ht)ml/i', $type, $xmlMatches)) {
-            return;
-        }
-
-        $charset = null;
-        if (false !== $pos = stripos($type, 'charset=')) {
-            $charset = substr($type, $pos + 8);
-            if (false !== $pos = strpos($charset, ';')) {
-                $charset = substr($charset, 0, $pos);
-            }
-        }
-
-        // http://www.w3.org/TR/encoding/#encodings
-        // http://www.w3.org/TR/REC-xml/#NT-EncName
-        if (null === $charset &&
-            preg_match('/\<meta[^\>]+charset *= *["\']?([a-zA-Z\-0-9_:.]+)/i', $content, $matches)) {
-            $charset = $matches[1];
-        }
-
-        if (null === $charset) {
-            $charset = 'ISO-8859-1';
-        }
-
-        if ('x' === $xmlMatches[1]) {
-            $this->addXmlContent($content, $charset);
-        } else {
-            $this->addHtmlContent($content, $charset);
-        }
-    }
-
-    /**
-     * Adds an HTML content to the list of nodes.
-     *
-     * The libxml errors are disabled when the content is parsed.
-     *
-     * If you want to get parsing errors, be sure to enable
-     * internal errors via libxml_use_internal_errors(true)
-     * and then, get the errors via libxml_get_errors(). Be
-     * sure to clear errors with libxml_clear_errors() afterward.
-     *
-     * @param string $content The HTML content
-     * @param string $charset The charset
-     *
-     * @api
-     */
-    public function addHtmlContent($content, $charset = 'UTF-8')
-    {
-        $internalErrors = libxml_use_internal_errors(true);
-        $disableEntities = libxml_disable_entity_loader(true);
-
-        $dom = new \DOMDocument('1.0', $charset);
-        $dom->validateOnParse = true;
-
-        if (function_exists('mb_convert_encoding')) {
-            $hasError = false;
-            set_error_handler(function () use (&$hasError) {
-                $hasError = true;
-            });
-            $tmpContent = @mb_convert_encoding($content, 'HTML-ENTITIES', $charset);
-
-            restore_error_handler();
-
-            if (!$hasError) {
-                $content = $tmpContent;
-            }
-        }
-
-        if ('' !== trim($content)) {
-            @$dom->loadHTML($content);
-        }
-
-        libxml_use_internal_errors($internalErrors);
-        libxml_disable_entity_loader($disableEntities);
-
-        $this->addDocument($dom);
-
-        $base = $this->filterRelativeXPath('descendant-or-self::base')->extract(array('href'));
-
-        $baseHref = current($base);
-        if (count($base) && !empty($baseHref)) {
-            if ($this->baseHref) {
-                $linkNode = $dom->createElement('a');
-                $linkNode->setAttribute('href', $baseHref);
-                $link = new Link($linkNode, $this->baseHref);
-                $this->baseHref = $link->getUri();
-            } else {
-                $this->baseHref = $baseHref;
-            }
-        }
-    }
-
-    /**
-     * Adds an XML content to the list of nodes.
-     *
-     * The libxml errors are disabled when the content is parsed.
-     *
-     * If you want to get parsing errors, be sure to enable
-     * internal errors via libxml_use_internal_errors(true)
-     * and then, get the errors via libxml_get_errors(). Be
-     * sure to clear errors with libxml_clear_errors() afterward.
-     *
-     * @param string $content The XML content
-     * @param string $charset The charset
-     *
-     * @api
-     */
-    public function addXmlContent($content, $charset = 'UTF-8')
-    {
-        // remove the default namespace if it's the only namespace to make XPath expressions simpler
-        if (!preg_match('/xmlns:/', $content)) {
-            $content = str_replace('xmlns', 'ns', $content);
-        }
-
-        $internalErrors = libxml_use_internal_errors(true);
-        $disableEntities = libxml_disable_entity_loader(true);
-
-        $dom = new \DOMDocument('1.0', $charset);
-        $dom->validateOnParse = true;
-
-        if ('' !== trim($content)) {
-            @$dom->loadXML($content, LIBXML_NONET);
-        }
-
-        libxml_use_internal_errors($internalErrors);
-        libxml_disable_entity_loader($disableEntities);
-
-        $this->addDocument($dom);
-    }
-
-    /**
-     * Adds a \DOMDocument to the list of nodes.
-     *
-     * @param \DOMDocument $dom A \DOMDocument instance
-     *
-     * @api
-     */
-    public function addDocument(\DOMDocument $dom)
-    {
-        if ($dom->documentElement) {
-            $this->addNode($dom->documentElement);
-        }
-    }
-
-    /**
-     * Adds a \DOMNodeList to the list of nodes.
-     *
-     * @param \DOMNodeList $nodes A \DOMNodeList instance
-     *
-     * @api
-     */
-    public function addNodeList(\DOMNodeList $nodes)
-    {
-        foreach ($nodes as $node) {
-            if ($node instanceof \DOMNode) {
-                $this->addNode($node);
-            }
-        }
-    }
-
-    /**
-     * Adds an array of \DOMNode instances to the list of nodes.
-     *
-     * @param \DOMNode[] $nodes An array of \DOMNode instances
-     *
-     * @api
-     */
-    public function addNodes(array $nodes)
-    {
-        foreach ($nodes as $node) {
-            $this->add($node);
-        }
-    }
-
-    /**
-     * Adds a \DOMNode instance to the list of nodes.
-     *
-     * @param \DOMNode $node A \DOMNode instance
-     *
-     * @api
-     */
-    public function addNode(\DOMNode $node)
-    {
-        if ($node instanceof \DOMDocument) {
-            $this->attach($node->documentElement);
-        } else {
-            $this->attach($node);
-        }
-    }
-
-    /**
-     * Returns a node given its position in the node list.
-     *
-     * @param int $position The position
-     *
-     * @return Crawler A new instance of the Crawler with the selected node, or an empty Crawler if it does not exist.
-     *
-     * @api
-     */
-    public function eq($position)
-    {
-        foreach ($this as $i => $node) {
-            if ($i == $position) {
-                return new static($node, $this->uri, $this->baseHref);
-            }
-        }
-
-        return new static(null, $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Calls an anonymous function on each node of the list.
-     *
-     * The anonymous function receives the position and the node wrapped
-     * in a Crawler instance as arguments.
-     *
-     * Example:
-     *
-     *     $crawler->filter('h1')->each(function ($node, $i) {
-     *         return $node->text();
-     *     });
-     *
-     * @param \Closure $closure An anonymous function
-     *
-     * @return array An array of values returned by the anonymous function
-     *
-     * @api
-     */
-    public function each(\Closure $closure)
-    {
-        $data = array();
-        foreach ($this as $i => $node) {
-            $data[] = $closure(new static($node, $this->uri, $this->baseHref), $i);
-        }
-
-        return $data;
-    }
-
-    /**
-     * Slices the list of nodes by $offset and $length.
-     *
-     * @param int $offset
-     * @param int $length
-     *
-     * @return Crawler A Crawler instance with the sliced nodes
-     */
-    public function slice($offset = 0, $length = -1)
-    {
-        return new static(iterator_to_array(new \LimitIterator($this, $offset, $length)), $this->uri);
-    }
-
-    /**
-     * Reduces the list of nodes by calling an anonymous function.
-     *
-     * To remove a node from the list, the anonymous function must return false.
-     *
-     * @param \Closure $closure An anonymous function
-     *
-     * @return Crawler A Crawler instance with the selected nodes.
-     *
-     * @api
-     */
-    public function reduce(\Closure $closure)
-    {
-        $nodes = array();
-        foreach ($this as $i => $node) {
-            if (false !== $closure(new static($node, $this->uri, $this->baseHref), $i)) {
-                $nodes[] = $node;
-            }
-        }
-
-        return new static($nodes, $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Returns the first node of the current selection.
-     *
-     * @return Crawler A Crawler instance with the first selected node
-     *
-     * @api
-     */
-    public function first()
-    {
-        return $this->eq(0);
-    }
-
-    /**
-     * Returns the last node of the current selection.
-     *
-     * @return Crawler A Crawler instance with the last selected node
-     *
-     * @api
-     */
-    public function last()
-    {
-        return $this->eq(count($this) - 1);
-    }
-
-    /**
-     * Returns the siblings nodes of the current selection.
-     *
-     * @return Crawler A Crawler instance with the sibling nodes
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     *
-     * @api
-     */
-    public function siblings()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        return new static($this->sibling($this->getNode(0)->parentNode->firstChild), $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Returns the next siblings nodes of the current selection.
-     *
-     * @return Crawler A Crawler instance with the next sibling nodes
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     *
-     * @api
-     */
-    public function nextAll()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        return new static($this->sibling($this->getNode(0)), $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Returns the previous sibling nodes of the current selection.
-     *
-     * @return Crawler A Crawler instance with the previous sibling nodes
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function previousAll()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        return new static($this->sibling($this->getNode(0), 'previousSibling'), $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Returns the parents nodes of the current selection.
-     *
-     * @return Crawler A Crawler instance with the parents nodes of the current selection
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     *
-     * @api
-     */
-    public function parents()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        $node = $this->getNode(0);
-        $nodes = array();
-
-        while ($node = $node->parentNode) {
-            if (1 === $node->nodeType) {
-                $nodes[] = $node;
-            }
-        }
-
-        return new static($nodes, $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Returns the children nodes of the current selection.
-     *
-     * @return Crawler A Crawler instance with the children nodes
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     *
-     * @api
-     */
-    public function children()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        $node = $this->getNode(0)->firstChild;
-
-        return new static($node ? $this->sibling($node) : array(), $this->uri, $this->baseHref);
-    }
-
-    /**
-     * Returns the attribute value of the first node of the list.
-     *
-     * @param string $attribute The attribute name
-     *
-     * @return string|null The attribute value or null if the attribute does not exist
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     *
-     * @api
-     */
-    public function attr($attribute)
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        $node = $this->getNode(0);
-
-        return $node->hasAttribute($attribute) ? $node->getAttribute($attribute) : null;
-    }
-
-    /**
-     * Returns the node name of the first node of the list.
-     *
-     * @return string The node name
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     */
-    public function nodeName()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        return $this->getNode(0)->nodeName;
-    }
-
-    /**
-     * Returns the node value of the first node of the list.
-     *
-     * @return string The node value
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     *
-     * @api
-     */
-    public function text()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        return $this->getNode(0)->nodeValue;
-    }
-
-    /**
-     * Returns the first node of the list as HTML.
-     *
-     * @return string The node html
-     *
-     * @throws \InvalidArgumentException When current node is empty
-     */
-    public function html()
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        $html = '';
-        foreach ($this->getNode(0)->childNodes as $child) {
-            $html .= $child->ownerDocument->saveHTML($child);
-        }
-
-        return $html;
-    }
-
-    /**
-     * Extracts information from the list of nodes.
-     *
-     * You can extract attributes or/and the node value (_text).
-     *
-     * Example:
-     *
-     * $crawler->filter('h1 a')->extract(array('_text', 'href'));
-     *
-     * @param array $attributes An array of attributes
-     *
-     * @return array An array of extracted values
-     *
-     * @api
-     */
-    public function extract($attributes)
-    {
-        $attributes = (array) $attributes;
-        $count = count($attributes);
-
-        $data = array();
-        foreach ($this as $node) {
-            $elements = array();
-            foreach ($attributes as $attribute) {
-                if ('_text' === $attribute) {
-                    $elements[] = $node->nodeValue;
-                } else {
-                    $elements[] = $node->getAttribute($attribute);
-                }
-            }
-
-            $data[] = $count > 1 ? $elements : $elements[0];
-        }
-
-        return $data;
-    }
-
-    /**
-     * Filters the list of nodes with an XPath expression.
-     *
-     * The XPath expression is evaluated in the context of the crawler, which
-     * is considered as a fake parent of the elements inside it.
-     * This means that a child selector "div" or "./div" will match only
-     * the div elements of the current crawler, not their children.
-     *
-     * @param string $xpath An XPath expression
-     *
-     * @return Crawler A new instance of Crawler with the filtered list of nodes
-     *
-     * @api
-     */
-    public function filterXPath($xpath)
-    {
-        $xpath = $this->relativize($xpath);
-
-        // If we dropped all expressions in the XPath while preparing it, there would be no match
-        if ('' === $xpath) {
-            return new static(null, $this->uri, $this->baseHref);
-        }
-
-        return $this->filterRelativeXPath($xpath);
-    }
-
-    /**
-     * Filters the list of nodes with a CSS selector.
-     *
-     * This method only works if you have installed the CssSelector Symfony Component.
-     *
-     * @param string $selector A CSS selector
-     *
-     * @return Crawler A new instance of Crawler with the filtered list of nodes
-     *
-     * @throws \RuntimeException if the CssSelector Component is not available
-     *
-     * @api
-     */
-    public function filter($selector)
-    {
-        if (!class_exists('Symfony\\Component\\CssSelector\\CssSelector')) {
-            throw new \RuntimeException('Unable to filter with a CSS selector as the Symfony CssSelector is not installed (you can use filterXPath instead).');
-        }
-
-        // The CssSelector already prefixes the selector with descendant-or-self::
-        return $this->filterRelativeXPath(CssSelector::toXPath($selector));
-    }
-
-    /**
-     * Selects links by name or alt value for clickable images.
-     *
-     * @param string $value The link text
-     *
-     * @return Crawler A new instance of Crawler with the filtered list of nodes
-     *
-     * @api
-     */
-    public function selectLink($value)
-    {
-        $xpath = sprintf('descendant-or-self::a[contains(concat(\' \', normalize-space(string(.)), \' \'), %s) ', static::xpathLiteral(' '.$value.' ')).
-                            sprintf('or ./img[contains(concat(\' \', normalize-space(string(@alt)), \' \'), %s)]]', static::xpathLiteral(' '.$value.' '));
-
-        return $this->filterRelativeXPath($xpath);
-    }
-
-    /**
-     * Selects a button by name or alt value for images.
-     *
-     * @param string $value The button text
-     *
-     * @return Crawler A new instance of Crawler with the filtered list of nodes
-     *
-     * @api
-     */
-    public function selectButton($value)
-    {
-        $translate = 'translate(@type, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")';
-        $xpath = sprintf('descendant-or-self::input[((contains(%s, "submit") or contains(%s, "button")) and contains(concat(\' \', normalize-space(string(@value)), \' \'), %s)) ', $translate, $translate, static::xpathLiteral(' '.$value.' ')).
-                         sprintf('or (contains(%s, "image") and contains(concat(\' \', normalize-space(string(@alt)), \' \'), %s)) or @id=%s or @name=%s] ', $translate, static::xpathLiteral(' '.$value.' '), static::xpathLiteral($value), static::xpathLiteral($value)).
-                         sprintf('| descendant-or-self::button[contains(concat(\' \', normalize-space(string(.)), \' \'), %s) or @id=%s or @name=%s]', static::xpathLiteral(' '.$value.' '), static::xpathLiteral($value), static::xpathLiteral($value));
-
-        return $this->filterRelativeXPath($xpath);
-    }
-
-    /**
-     * Returns a Link object for the first node in the list.
-     *
-     * @param string $method The method for the link (get by default)
-     *
-     * @return Link A Link instance
-     *
-     * @throws \InvalidArgumentException If the current node list is empty
-     *
-     * @api
-     */
-    public function link($method = 'get')
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        $node = $this->getNode(0);
-
-        return new Link($node, $this->baseHref, $method);
-    }
-
-    /**
-     * Returns an array of Link objects for the nodes in the list.
-     *
-     * @return Link[] An array of Link instances
-     *
-     * @api
-     */
-    public function links()
-    {
-        $links = array();
-        foreach ($this as $node) {
-            $links[] = new Link($node, $this->baseHref, 'get');
-        }
-
-        return $links;
-    }
-
-    /**
-     * Returns a Form object for the first node in the list.
-     *
-     * @param array  $values An array of values for the form fields
-     * @param string $method The method for the form
-     *
-     * @return Form A Form instance
-     *
-     * @throws \InvalidArgumentException If the current node list is empty
-     *
-     * @api
-     */
-    public function form(array $values = null, $method = null)
-    {
-        if (!count($this)) {
-            throw new \InvalidArgumentException('The current node list is empty.');
-        }
-
-        $form = new Form($this->getNode(0), $this->uri, $method);
-
-        if (null !== $values) {
-            $form->setValues($values);
-        }
-
-        return $form;
-    }
-
-    /**
-     * Overloads a default namespace prefix to be used with XPath and CSS expressions.
-     *
-     * @param string $prefix
-     */
-    public function setDefaultNamespacePrefix($prefix)
-    {
-        $this->defaultNamespacePrefix = $prefix;
-    }
-
-    /**
-     * @param string $prefix
-     * @param string $namespace
-     */
-    public function registerNamespace($prefix, $namespace)
-    {
-        $this->namespaces[$prefix] = $namespace;
-    }
-
-    /**
-     * Converts string for XPath expressions.
-     *
-     * Escaped characters are: quotes (") and apostrophe (').
-     *
-     *  Examples:
-     *  <code>
-     *     echo Crawler::xpathLiteral('foo " bar');
-     *     //prints 'foo " bar'
-     *
-     *     echo Crawler::xpathLiteral("foo ' bar");
-     *     //prints "foo ' bar"
-     *
-     *     echo Crawler::xpathLiteral('a\'b"c');
-     *     //prints concat('a', "'", 'b"c')
-     *  </code>
-     *
-     * @param string $s String to be escaped
-     *
-     * @return string Converted string
-     */
-    public static function xpathLiteral($s)
-    {
-        if (false === strpos($s, "'")) {
-            return sprintf("'%s'", $s);
-        }
-
-        if (false === strpos($s, '"')) {
-            return sprintf('"%s"', $s);
-        }
-
-        $string = $s;
-        $parts = array();
-        while (true) {
-            if (false !== $pos = strpos($string, "'")) {
-                $parts[] = sprintf("'%s'", substr($string, 0, $pos));
-                $parts[] = "\"'\"";
-                $string = substr($string, $pos + 1);
-            } else {
-                $parts[] = "'$string'";
-                break;
-            }
-        }
-
-        return sprintf('concat(%s)', implode($parts, ', '));
-    }
-
-    /**
-     * Filters the list of nodes with an XPath expression.
-     *
-     * The XPath expression should already be processed to apply it in the context of each node.
-     *
-     * @param string $xpath
-     *
-     * @return Crawler
-     */
-    private function filterRelativeXPath($xpath)
-    {
-        $prefixes = $this->findNamespacePrefixes($xpath);
-
-        $crawler = new static(null, $this->uri, $this->baseHref);
-
-        foreach ($this as $node) {
-            $domxpath = $this->createDOMXPath($node->ownerDocument, $prefixes);
-            $crawler->add($domxpath->query($xpath, $node));
-        }
-
-        return $crawler;
-    }
-
-    /**
-     * Make the XPath relative to the current context.
-     *
-     * The returned XPath will match elements matching the XPath inside the current crawler
-     * when running in the context of a node of the crawler.
-     *
-     * @param string $xpath
-     *
-     * @return string
-     */
-    private function relativize($xpath)
-    {
-        $expressions = array();
-
-        $unionPattern = '/\|(?![^\[]*\])/';
-        // An expression which will never match to replace expressions which cannot match in the crawler
-        // We cannot simply drop
-        $nonMatchingExpression = 'a[name() = "b"]';
-
-        // Split any unions into individual expressions.
-        foreach (preg_split($unionPattern, $xpath) as $expression) {
-            $expression = trim($expression);
-            $parenthesis = '';
-
-            // If the union is inside some braces, we need to preserve the opening braces and apply
-            // the change only inside it.
-            if (preg_match('/^[\(\s*]+/', $expression, $matches)) {
-                $parenthesis = $matches[0];
-                $expression = substr($expression, strlen($parenthesis));
-            }
-
-            // BC for Symfony 2.4 and lower were elements were adding in a fake _root parent
-            if (0 === strpos($expression, '/_root/')) {
-                $expression = './'.substr($expression, 7);
-            } elseif (0 === strpos($expression, 'self::*/')) {
-                $expression = './'.substr($expression, 8);
-            }
-
-            // add prefix before absolute element selector
-            if (empty($expression)) {
-                $expression = $nonMatchingExpression;
-            } elseif (0 === strpos($expression, '//')) {
-                $expression = 'descendant-or-self::'.substr($expression, 2);
-            } elseif (0 === strpos($expression, './/')) {
-                $expression = 'descendant-or-self::'.substr($expression, 3);
-            } elseif (0 === strpos($expression, './')) {
-                $expression = 'self::'.substr($expression, 2);
-            } elseif (0 === strpos($expression, 'child::')) {
-                $expression = 'self::'.substr($expression, 7);
-            } elseif ('/' === $expression[0] || 0 === strpos($expression, 'self::')) {
-                // the only direct child in Symfony 2.4 and lower is _root, which is already handled previously
-                // so let's drop the expression entirely
-                $expression = $nonMatchingExpression;
-            } elseif ('.' === $expression[0]) {
-                // '.' is the fake root element in Symfony 2.4 and lower, which is excluded from results
-                $expression = $nonMatchingExpression;
-            } elseif (0 === strpos($expression, 'descendant::')) {
-                $expression = 'descendant-or-self::'.substr($expression, strlen('descendant::'));
-            } elseif (preg_match('/^(ancestor|ancestor-or-self|attribute|following|following-sibling|namespace|parent|preceding|preceding-sibling)::/', $expression)) {
-                // the fake root has no parent, preceding or following nodes and also no attributes (even no namespace attributes)
-                $expression = $nonMatchingExpression;
-            } elseif (0 !== strpos($expression, 'descendant-or-self::')) {
-                $expression = 'self::'.$expression;
-            }
-            $expressions[] = $parenthesis.$expression;
-        }
-
-        return implode(' | ', $expressions);
-    }
-
-    /**
-     * @param int $position
-     *
-     * @return \DOMElement|null
-     */
-    public function getNode($position)
-    {
-        foreach ($this as $i => $node) {
-            if ($i == $position) {
-                return $node;
-            }
-        }
-    }
-
-    /**
-     * @param \DOMElement $node
-     * @param string      $siblingDir
-     *
-     * @return array
-     */
-    protected function sibling($node, $siblingDir = 'nextSibling')
-    {
-        $nodes = array();
-
-        do {
-            if ($node !== $this->getNode(0) && $node->nodeType === 1) {
-                $nodes[] = $node;
-            }
-        } while ($node = $node->$siblingDir);
-
-        return $nodes;
-    }
-
-    /**
-     * @param \DOMDocument $document
-     * @param array        $prefixes
-     *
-     * @return \DOMXPath
-     *
-     * @throws \InvalidArgumentException
-     */
-    private function createDOMXPath(\DOMDocument $document, array $prefixes = array())
-    {
-        $domxpath = new \DOMXPath($document);
-
-        foreach ($prefixes as $prefix) {
-            $namespace = $this->discoverNamespace($domxpath, $prefix);
-            if (null !== $namespace) {
-                $domxpath->registerNamespace($prefix, $namespace);
-            }
-        }
-
-        return $domxpath;
-    }
-
-    /**
-     * @param \DOMXPath $domxpath
-     * @param string    $prefix
-     *
-     * @return string
-     *
-     * @throws \InvalidArgumentException
-     */
-    private function discoverNamespace(\DOMXPath $domxpath, $prefix)
-    {
-        if (isset($this->namespaces[$prefix])) {
-            return $this->namespaces[$prefix];
-        }
-
-        // ask for one namespace, otherwise we'd get a collection with an item for each node
-        $namespaces = $domxpath->query(sprintf('(//namespace::*[name()="%s"])[last()]', $this->defaultNamespacePrefix === $prefix ? '' : $prefix));
-
-        if ($node = $namespaces->item(0)) {
-            return $node->nodeValue;
-        }
-    }
-
-    /**
-     * @param $xpath
-     *
-     * @return array
-     */
-    private function findNamespacePrefixes($xpath)
-    {
-        if (preg_match_all('/(?P<prefix>[a-z_][a-z_0-9\-\.]*):[^"\/:]/i', $xpath, $matches)) {
-            return array_unique($matches['prefix']);
-        }
-
-        return array();
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Field/ChoiceFormField.php b/core/vendor/symfony/dom-crawler/Field/ChoiceFormField.php
deleted file mode 100644
index ae7f4d1..0000000
--- a/core/vendor/symfony/dom-crawler/Field/ChoiceFormField.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Field;
-
-/**
- * ChoiceFormField represents a choice form field.
- *
- * It is constructed from a HTML select tag, or a HTML checkbox, or radio inputs.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ChoiceFormField extends FormField
-{
-    /**
-     * @var string
-     */
-    private $type;
-    /**
-     * @var bool
-     */
-    private $multiple;
-    /**
-     * @var array
-     */
-    private $options;
-    /**
-     * @var bool
-     */
-    private $validationDisabled = false;
-
-    /**
-     * Returns true if the field should be included in the submitted values.
-     *
-     * @return bool true if the field should be included in the submitted values, false otherwise
-     */
-    public function hasValue()
-    {
-        // don't send a value for unchecked checkboxes
-        if (in_array($this->type, array('checkbox', 'radio')) && null === $this->value) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Check if the current selected option is disabled.
-     *
-     * @return bool
-     */
-    public function isDisabled()
-    {
-        foreach ($this->options as $option) {
-            if ($option['value'] == $this->value && $option['disabled']) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Sets the value of the field.
-     *
-     * @param string $value The value of the field
-     *
-     * @api
-     */
-    public function select($value)
-    {
-        $this->setValue($value);
-    }
-
-    /**
-     * Ticks a checkbox.
-     *
-     * @throws \LogicException When the type provided is not correct
-     *
-     * @api
-     */
-    public function tick()
-    {
-        if ('checkbox' !== $this->type) {
-            throw new \LogicException(sprintf('You cannot tick "%s" as it is not a checkbox (%s).', $this->name, $this->type));
-        }
-
-        $this->setValue(true);
-    }
-
-    /**
-     * Ticks a checkbox.
-     *
-     * @throws \LogicException When the type provided is not correct
-     *
-     * @api
-     */
-    public function untick()
-    {
-        if ('checkbox' !== $this->type) {
-            throw new \LogicException(sprintf('You cannot tick "%s" as it is not a checkbox (%s).', $this->name, $this->type));
-        }
-
-        $this->setValue(false);
-    }
-
-    /**
-     * Sets the value of the field.
-     *
-     * @param string $value The value of the field
-     *
-     * @throws \InvalidArgumentException When value type provided is not correct
-     */
-    public function setValue($value)
-    {
-        if ('checkbox' === $this->type && false === $value) {
-            // uncheck
-            $this->value = null;
-        } elseif ('checkbox' === $this->type && true === $value) {
-            // check
-            $this->value = $this->options[0]['value'];
-        } else {
-            if (is_array($value)) {
-                if (!$this->multiple) {
-                    throw new \InvalidArgumentException(sprintf('The value for "%s" cannot be an array.', $this->name));
-                }
-
-                foreach ($value as $v) {
-                    if (!$this->containsOption($v, $this->options)) {
-                        throw new \InvalidArgumentException(sprintf('Input "%s" cannot take "%s" as a value (possible values: %s).', $this->name, $v, implode(', ', $this->availableOptionValues())));
-                    }
-                }
-            } elseif (!$this->containsOption($value, $this->options)) {
-                throw new \InvalidArgumentException(sprintf('Input "%s" cannot take "%s" as a value (possible values: %s).', $this->name, $value, implode(', ', $this->availableOptionValues())));
-            }
-
-            if ($this->multiple) {
-                $value = (array) $value;
-            }
-
-            if (is_array($value)) {
-                $this->value = $value;
-            } else {
-                parent::setValue($value);
-            }
-        }
-    }
-
-    /**
-     * Adds a choice to the current ones.
-     *
-     * This method should only be used internally.
-     *
-     * @param \DOMElement $node
-     *
-     * @throws \LogicException When choice provided is not multiple nor radio
-     */
-    public function addChoice(\DOMElement $node)
-    {
-        if (!$this->multiple && 'radio' !== $this->type) {
-            throw new \LogicException(sprintf('Unable to add a choice for "%s" as it is not multiple or is not a radio button.', $this->name));
-        }
-
-        $option = $this->buildOptionValue($node);
-        $this->options[] = $option;
-
-        if ($node->hasAttribute('checked')) {
-            $this->value = $option['value'];
-        }
-    }
-
-    /**
-     * Returns the type of the choice field (radio, select, or checkbox).
-     *
-     * @return string The type
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Returns true if the field accepts multiple values.
-     *
-     * @return bool true if the field accepts multiple values, false otherwise
-     */
-    public function isMultiple()
-    {
-        return $this->multiple;
-    }
-
-    /**
-     * Initializes the form field.
-     *
-     * @throws \LogicException When node type is incorrect
-     */
-    protected function initialize()
-    {
-        if ('input' !== $this->node->nodeName && 'select' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('A ChoiceFormField can only be created from an input or select tag (%s given).', $this->node->nodeName));
-        }
-
-        if ('input' === $this->node->nodeName && 'checkbox' !== strtolower($this->node->getAttribute('type')) && 'radio' !== strtolower($this->node->getAttribute('type'))) {
-            throw new \LogicException(sprintf('A ChoiceFormField can only be created from an input tag with a type of checkbox or radio (given type is %s).', $this->node->getAttribute('type')));
-        }
-
-        $this->value = null;
-        $this->options = array();
-        $this->multiple = false;
-
-        if ('input' == $this->node->nodeName) {
-            $this->type = strtolower($this->node->getAttribute('type'));
-            $optionValue = $this->buildOptionValue($this->node);
-            $this->options[] = $optionValue;
-
-            if ($this->node->hasAttribute('checked')) {
-                $this->value = $optionValue['value'];
-            }
-        } else {
-            $this->type = 'select';
-            if ($this->node->hasAttribute('multiple')) {
-                $this->multiple = true;
-                $this->value = array();
-                $this->name = str_replace('[]', '', $this->name);
-            }
-
-            $found = false;
-            foreach ($this->xpath->query('descendant::option', $this->node) as $option) {
-                $optionValue = $this->buildOptionValue($option);
-                $this->options[] = $optionValue;
-
-                if ($option->hasAttribute('selected')) {
-                    $found = true;
-                    if ($this->multiple) {
-                        $this->value[] = $optionValue['value'];
-                    } else {
-                        $this->value = $optionValue['value'];
-                    }
-                }
-            }
-
-            // if no option is selected and if it is a simple select box, take the first option as the value
-            if (!$found && !$this->multiple && !empty($this->options)) {
-                $this->value = $this->options[0]['value'];
-            }
-        }
-    }
-
-    /**
-     * Returns option value with associated disabled flag.
-     *
-     * @param \DOMElement $node
-     *
-     * @return array
-     */
-    private function buildOptionValue(\DOMElement $node)
-    {
-        $option = array();
-
-        $defaultValue = (isset($node->nodeValue) && !empty($node->nodeValue)) ? $node->nodeValue : 'on';
-        $option['value'] = $node->hasAttribute('value') ? $node->getAttribute('value') : $defaultValue;
-        $option['disabled'] = $node->hasAttribute('disabled');
-
-        return $option;
-    }
-
-    /**
-     * Checks whether given value is in the existing options.
-     *
-     * @param string $optionValue
-     * @param array  $options
-     *
-     * @return bool
-     */
-    public function containsOption($optionValue, $options)
-    {
-        if ($this->validationDisabled) {
-            return true;
-        }
-
-        foreach ($options as $option) {
-            if ($option['value'] == $optionValue) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns list of available field options.
-     *
-     * @return array
-     */
-    public function availableOptionValues()
-    {
-        $values = array();
-
-        foreach ($this->options as $option) {
-            $values[] = $option['value'];
-        }
-
-        return $values;
-    }
-
-    /**
-     * Disables the internal validation of the field.
-     *
-     * @return self
-     */
-    public function disableValidation()
-    {
-        $this->validationDisabled = true;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Field/FileFormField.php b/core/vendor/symfony/dom-crawler/Field/FileFormField.php
deleted file mode 100644
index c3423b2..0000000
--- a/core/vendor/symfony/dom-crawler/Field/FileFormField.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Field;
-
-/**
- * FileFormField represents a file form field (an HTML file input tag).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class FileFormField extends FormField
-{
-    /**
-     * Sets the PHP error code associated with the field.
-     *
-     * @param int $error The error code (one of UPLOAD_ERR_INI_SIZE, UPLOAD_ERR_FORM_SIZE, UPLOAD_ERR_PARTIAL, UPLOAD_ERR_NO_FILE, UPLOAD_ERR_NO_TMP_DIR, UPLOAD_ERR_CANT_WRITE, or UPLOAD_ERR_EXTENSION)
-     *
-     * @throws \InvalidArgumentException When error code doesn't exist
-     */
-    public function setErrorCode($error)
-    {
-        $codes = array(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);
-        if (!in_array($error, $codes)) {
-            throw new \InvalidArgumentException(sprintf('The error code %s is not valid.', $error));
-        }
-
-        $this->value = array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => $error, 'size' => 0);
-    }
-
-    /**
-     * Sets the value of the field.
-     *
-     * @param string $value The value of the field
-     *
-     * @api
-     */
-    public function upload($value)
-    {
-        $this->setValue($value);
-    }
-
-    /**
-     * Sets the value of the field.
-     *
-     * @param string $value The value of the field
-     */
-    public function setValue($value)
-    {
-        if (null !== $value && is_readable($value)) {
-            $error = UPLOAD_ERR_OK;
-            $size = filesize($value);
-            $info = pathinfo($value);
-            $name = $info['basename'];
-
-            // copy to a tmp location
-            $tmp = sys_get_temp_dir().'/'.sha1(uniqid(mt_rand(), true));
-            if (array_key_exists('extension', $info)) {
-                $tmp .= '.'.$info['extension'];
-            }
-            if (is_file($tmp)) {
-                unlink($tmp);
-            }
-            copy($value, $tmp);
-            $value = $tmp;
-        } else {
-            $error = UPLOAD_ERR_NO_FILE;
-            $size = 0;
-            $name = '';
-            $value = '';
-        }
-
-        $this->value = array('name' => $name, 'type' => '', 'tmp_name' => $value, 'error' => $error, 'size' => $size);
-    }
-
-    /**
-     * Sets path to the file as string for simulating HTTP request.
-     *
-     * @param string $path The path to the file
-     */
-    public function setFilePath($path)
-    {
-        parent::setValue($path);
-    }
-
-    /**
-     * Initializes the form field.
-     *
-     * @throws \LogicException When node type is incorrect
-     */
-    protected function initialize()
-    {
-        if ('input' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('A FileFormField can only be created from an input tag (%s given).', $this->node->nodeName));
-        }
-
-        if ('file' !== strtolower($this->node->getAttribute('type'))) {
-            throw new \LogicException(sprintf('A FileFormField can only be created from an input tag with a type of file (given type is %s).', $this->node->getAttribute('type')));
-        }
-
-        $this->setValue(null);
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Field/FormField.php b/core/vendor/symfony/dom-crawler/Field/FormField.php
deleted file mode 100644
index 5d70292..0000000
--- a/core/vendor/symfony/dom-crawler/Field/FormField.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Field;
-
-/**
- * FormField is the abstract class for all form fields.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class FormField
-{
-    /**
-     * @var \DOMElement
-     */
-    protected $node;
-    /**
-     * @var string
-     */
-    protected $name;
-    /**
-     * @var string
-     */
-    protected $value;
-    /**
-     * @var \DOMDocument
-     */
-    protected $document;
-    /**
-     * @var \DOMXPath
-     */
-    protected $xpath;
-    /**
-     * @var bool
-     */
-    protected $disabled;
-
-    /**
-     * Constructor.
-     *
-     * @param \DOMElement $node The node associated with this field
-     */
-    public function __construct(\DOMElement $node)
-    {
-        $this->node = $node;
-        $this->name = $node->getAttribute('name');
-        $this->xpath = new \DOMXPath($node->ownerDocument);
-
-        $this->initialize();
-    }
-
-    /**
-     * Returns the name of the field.
-     *
-     * @return string The name of the field
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Gets the value of the field.
-     *
-     * @return string|array The value of the field
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Sets the value of the field.
-     *
-     * @param string $value The value of the field
-     *
-     * @api
-     */
-    public function setValue($value)
-    {
-        $this->value = (string) $value;
-    }
-
-    /**
-     * Returns true if the field should be included in the submitted values.
-     *
-     * @return bool true if the field should be included in the submitted values, false otherwise
-     */
-    public function hasValue()
-    {
-        return true;
-    }
-
-    /**
-     * Check if the current field is disabled.
-     *
-     * @return bool
-     */
-    public function isDisabled()
-    {
-        return $this->node->hasAttribute('disabled');
-    }
-
-    /**
-     * Initializes the form field.
-     */
-    abstract protected function initialize();
-}
diff --git a/core/vendor/symfony/dom-crawler/Field/InputFormField.php b/core/vendor/symfony/dom-crawler/Field/InputFormField.php
deleted file mode 100644
index b9bd0a4..0000000
--- a/core/vendor/symfony/dom-crawler/Field/InputFormField.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Field;
-
-/**
- * InputFormField represents an input form field (an HTML input tag).
- *
- * For inputs with type of file, checkbox, or radio, there are other more
- * specialized classes (cf. FileFormField and ChoiceFormField).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class InputFormField extends FormField
-{
-    /**
-     * Initializes the form field.
-     *
-     * @throws \LogicException When node type is incorrect
-     */
-    protected function initialize()
-    {
-        if ('input' !== $this->node->nodeName && 'button' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('An InputFormField can only be created from an input or button tag (%s given).', $this->node->nodeName));
-        }
-
-        if ('checkbox' === strtolower($this->node->getAttribute('type'))) {
-            throw new \LogicException('Checkboxes should be instances of ChoiceFormField.');
-        }
-
-        if ('file' === strtolower($this->node->getAttribute('type'))) {
-            throw new \LogicException('File inputs should be instances of FileFormField.');
-        }
-
-        $this->value = $this->node->getAttribute('value');
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Field/TextareaFormField.php b/core/vendor/symfony/dom-crawler/Field/TextareaFormField.php
deleted file mode 100644
index a14e707..0000000
--- a/core/vendor/symfony/dom-crawler/Field/TextareaFormField.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Field;
-
-/**
- * TextareaFormField represents a textarea form field (an HTML textarea tag).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class TextareaFormField extends FormField
-{
-    /**
-     * Initializes the form field.
-     *
-     * @throws \LogicException When node type is incorrect
-     */
-    protected function initialize()
-    {
-        if ('textarea' !== $this->node->nodeName) {
-            throw new \LogicException(sprintf('A TextareaFormField can only be created from a textarea tag (%s given).', $this->node->nodeName));
-        }
-
-        $this->value = '';
-        foreach ($this->node->childNodes as $node) {
-            $this->value .= $node->wholeText;
-        }
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Form.php b/core/vendor/symfony/dom-crawler/Form.php
deleted file mode 100644
index acf62e6..0000000
--- a/core/vendor/symfony/dom-crawler/Form.php
+++ /dev/null
@@ -1,488 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler;
-
-use Symfony\Component\DomCrawler\Field\ChoiceFormField;
-use Symfony\Component\DomCrawler\Field\FormField;
-
-/**
- * Form represents an HTML form.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Form extends Link implements \ArrayAccess
-{
-    /**
-     * @var \DOMElement
-     */
-    private $button;
-
-    /**
-     * @var FormFieldRegistry
-     */
-    private $fields;
-
-    /**
-     * Constructor.
-     *
-     * @param \DOMElement $node       A \DOMElement instance
-     * @param string      $currentUri The URI of the page where the form is embedded
-     * @param string      $method     The method to use for the link (if null, it defaults to the method defined by the form)
-     *
-     * @throws \LogicException if the node is not a button inside a form tag
-     *
-     * @api
-     */
-    public function __construct(\DOMElement $node, $currentUri, $method = null)
-    {
-        parent::__construct($node, $currentUri, $method);
-
-        $this->initialize();
-    }
-
-    /**
-     * Gets the form node associated with this form.
-     *
-     * @return \DOMElement A \DOMElement instance
-     */
-    public function getFormNode()
-    {
-        return $this->node;
-    }
-
-    /**
-     * Sets the value of the fields.
-     *
-     * @param array $values An array of field values
-     *
-     * @return Form
-     *
-     * @api
-     */
-    public function setValues(array $values)
-    {
-        foreach ($values as $name => $value) {
-            $this->fields->set($name, $value);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the field values.
-     *
-     * The returned array does not include file fields (@see getFiles).
-     *
-     * @return array An array of field values.
-     *
-     * @api
-     */
-    public function getValues()
-    {
-        $values = array();
-        foreach ($this->fields->all() as $name => $field) {
-            if ($field->isDisabled()) {
-                continue;
-            }
-
-            if (!$field instanceof Field\FileFormField && $field->hasValue()) {
-                $values[$name] = $field->getValue();
-            }
-        }
-
-        return $values;
-    }
-
-    /**
-     * Gets the file field values.
-     *
-     * @return array An array of file field values.
-     *
-     * @api
-     */
-    public function getFiles()
-    {
-        if (!in_array($this->getMethod(), array('POST', 'PUT', 'DELETE', 'PATCH'))) {
-            return array();
-        }
-
-        $files = array();
-
-        foreach ($this->fields->all() as $name => $field) {
-            if ($field->isDisabled()) {
-                continue;
-            }
-
-            if ($field instanceof Field\FileFormField) {
-                $files[$name] = $field->getValue();
-            }
-        }
-
-        return $files;
-    }
-
-    /**
-     * Gets the field values as PHP.
-     *
-     * This method converts fields with the array notation
-     * (like foo[bar] to arrays) like PHP does.
-     *
-     * @return array An array of field values.
-     *
-     * @api
-     */
-    public function getPhpValues()
-    {
-        $values = array();
-        foreach ($this->getValues() as $name => $value) {
-            $qs = http_build_query(array($name => $value), '', '&');
-            if (!empty($qs)) {
-                parse_str($qs, $expandedValue);
-                $varName = substr($name, 0, strlen(key($expandedValue)));
-                $values = array_replace_recursive($values, array($varName => current($expandedValue)));
-            }
-        }
-
-        return $values;
-    }
-
-    /**
-     * Gets the file field values as PHP.
-     *
-     * This method converts fields with the array notation
-     * (like foo[bar] to arrays) like PHP does.
-     *
-     * @return array An array of field values.
-     *
-     * @api
-     */
-    public function getPhpFiles()
-    {
-        $values = array();
-        foreach ($this->getFiles() as $name => $value) {
-            $qs = http_build_query(array($name => $value), '', '&');
-            if (!empty($qs)) {
-                parse_str($qs, $expandedValue);
-                $varName = substr($name, 0, strlen(key($expandedValue)));
-                $values = array_replace_recursive($values, array($varName => current($expandedValue)));
-            }
-        }
-
-        return $values;
-    }
-
-    /**
-     * Gets the URI of the form.
-     *
-     * The returned URI is not the same as the form "action" attribute.
-     * This method merges the value if the method is GET to mimics
-     * browser behavior.
-     *
-     * @return string The URI
-     *
-     * @api
-     */
-    public function getUri()
-    {
-        $uri = parent::getUri();
-
-        if (!in_array($this->getMethod(), array('POST', 'PUT', 'DELETE', 'PATCH'))) {
-            $query = parse_url($uri, PHP_URL_QUERY);
-            $currentParameters = array();
-            if ($query) {
-                parse_str($query, $currentParameters);
-            }
-
-            $queryString = http_build_query(array_merge($currentParameters, $this->getValues()), null, '&');
-
-            $pos = strpos($uri, '?');
-            $base = false === $pos ? $uri : substr($uri, 0, $pos);
-            $uri = rtrim($base.'?'.$queryString, '?');
-        }
-
-        return $uri;
-    }
-
-    protected function getRawUri()
-    {
-        return $this->node->getAttribute('action');
-    }
-
-    /**
-     * Gets the form method.
-     *
-     * If no method is defined in the form, GET is returned.
-     *
-     * @return string The method
-     *
-     * @api
-     */
-    public function getMethod()
-    {
-        if (null !== $this->method) {
-            return $this->method;
-        }
-
-        return $this->node->getAttribute('method') ? strtoupper($this->node->getAttribute('method')) : 'GET';
-    }
-
-    /**
-     * Returns true if the named field exists.
-     *
-     * @param string $name The field name
-     *
-     * @return bool true if the field exists, false otherwise
-     *
-     * @api
-     */
-    public function has($name)
-    {
-        return $this->fields->has($name);
-    }
-
-    /**
-     * Removes a field from the form.
-     *
-     * @param string $name The field name
-     *
-     * @throws \InvalidArgumentException when the name is malformed
-     *
-     * @api
-     */
-    public function remove($name)
-    {
-        $this->fields->remove($name);
-    }
-
-    /**
-     * Gets a named field.
-     *
-     * @param string $name The field name
-     *
-     * @return FormField The field instance
-     *
-     * @throws \InvalidArgumentException When field is not present in this form
-     *
-     * @api
-     */
-    public function get($name)
-    {
-        return $this->fields->get($name);
-    }
-
-    /**
-     * Sets a named field.
-     *
-     * @param FormField $field The field
-     *
-     * @api
-     */
-    public function set(FormField $field)
-    {
-        $this->fields->add($field);
-    }
-
-    /**
-     * Gets all fields.
-     *
-     * @return FormField[] An array of fields
-     *
-     * @api
-     */
-    public function all()
-    {
-        return $this->fields->all();
-    }
-
-    /**
-     * Returns true if the named field exists.
-     *
-     * @param string $name The field name
-     *
-     * @return bool true if the field exists, false otherwise
-     */
-    public function offsetExists($name)
-    {
-        return $this->has($name);
-    }
-
-    /**
-     * Gets the value of a field.
-     *
-     * @param string $name The field name
-     *
-     * @return FormField The associated Field instance
-     *
-     * @throws \InvalidArgumentException if the field does not exist
-     */
-    public function offsetGet($name)
-    {
-        return $this->fields->get($name);
-    }
-
-    /**
-     * Sets the value of a field.
-     *
-     * @param string       $name  The field name
-     * @param string|array $value The value of the field
-     *
-     * @throws \InvalidArgumentException if the field does not exist
-     */
-    public function offsetSet($name, $value)
-    {
-        $this->fields->set($name, $value);
-    }
-
-    /**
-     * Removes a field from the form.
-     *
-     * @param string $name The field name
-     */
-    public function offsetUnset($name)
-    {
-        $this->fields->remove($name);
-    }
-
-    /**
-     * Disables validation
-     *
-     * @return self
-     */
-    public function disableValidation()
-    {
-        foreach ($this->fields->all() as $field) {
-            if ($field instanceof Field\ChoiceFormField) {
-                $field->disableValidation();
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Sets the node for the form.
-     *
-     * Expects a 'submit' button \DOMElement and finds the corresponding form element, or the form element itself.
-     *
-     * @param \DOMElement $node A \DOMElement instance
-     *
-     * @throws \LogicException If given node is not a button or input or does not have a form ancestor
-     */
-    protected function setNode(\DOMElement $node)
-    {
-        $this->button = $node;
-        if ('button' === $node->nodeName || ('input' === $node->nodeName && in_array(strtolower($node->getAttribute('type')), array('submit', 'button', 'image')))) {
-            if ($node->hasAttribute('form')) {
-                // if the node has the HTML5-compliant 'form' attribute, use it
-                $formId = $node->getAttribute('form');
-                $form = $node->ownerDocument->getElementById($formId);
-                if (null === $form) {
-                    throw new \LogicException(sprintf('The selected node has an invalid form attribute (%s).', $formId));
-                }
-                $this->node = $form;
-
-                return;
-            }
-            // we loop until we find a form ancestor
-            do {
-                if (null === $node = $node->parentNode) {
-                    throw new \LogicException('The selected node does not have a form ancestor.');
-                }
-            } while ('form' !== $node->nodeName);
-        } elseif ('form' !== $node->nodeName) {
-            throw new \LogicException(sprintf('Unable to submit on a "%s" tag.', $node->nodeName));
-        }
-
-        $this->node = $node;
-    }
-
-    /**
-     * Adds form elements related to this form.
-     *
-     * Creates an internal copy of the submitted 'button' element and
-     * the form node or the entire document depending on whether we need
-     * to find non-descendant elements through HTML5 'form' attribute.
-     */
-    private function initialize()
-    {
-        $this->fields = new FormFieldRegistry();
-
-        $xpath = new \DOMXPath($this->node->ownerDocument);
-
-        // add submitted button if it has a valid name
-        if ('form' !== $this->button->nodeName && $this->button->hasAttribute('name') && $this->button->getAttribute('name')) {
-            if ('input' == $this->button->nodeName && 'image' == strtolower($this->button->getAttribute('type'))) {
-                $name = $this->button->getAttribute('name');
-                $this->button->setAttribute('value', '0');
-
-                // temporarily change the name of the input node for the x coordinate
-                $this->button->setAttribute('name', $name.'.x');
-                $this->set(new Field\InputFormField($this->button));
-
-                // temporarily change the name of the input node for the y coordinate
-                $this->button->setAttribute('name', $name.'.y');
-                $this->set(new Field\InputFormField($this->button));
-
-                // restore the original name of the input node
-                $this->button->setAttribute('name', $name);
-            } else {
-                $this->set(new Field\InputFormField($this->button));
-            }
-        }
-
-        // find form elements corresponding to the current form
-        if ($this->node->hasAttribute('id')) {
-            // corresponding elements are either descendants or have a matching HTML5 form attribute
-            $formId = Crawler::xpathLiteral($this->node->getAttribute('id'));
-
-            $fieldNodes = $xpath->query(sprintf('descendant::input[@form=%s] | descendant::button[@form=%s] | descendant::textarea[@form=%s] | descendant::select[@form=%s] | //form[@id=%s]//input[not(@form)] | //form[@id=%s]//button[not(@form)] | //form[@id=%s]//textarea[not(@form)] | //form[@id=%s]//select[not(@form)]', $formId, $formId, $formId, $formId, $formId, $formId, $formId, $formId));
-            foreach ($fieldNodes as $node) {
-                $this->addField($node);
-            }
-        } else {
-            // do the xpath query with $this->node as the context node, to only find descendant elements
-            // however, descendant elements with form attribute are not part of this form
-            $fieldNodes = $xpath->query('descendant::input[not(@form)] | descendant::button[not(@form)] | descendant::textarea[not(@form)] | descendant::select[not(@form)]', $this->node);
-            foreach ($fieldNodes as $node) {
-                $this->addField($node);
-            }
-        }
-    }
-
-    private function addField(\DOMElement $node)
-    {
-        if (!$node->hasAttribute('name') || !$node->getAttribute('name')) {
-            return;
-        }
-
-        $nodeName = $node->nodeName;
-        if ('select' == $nodeName || 'input' == $nodeName && 'checkbox' == strtolower($node->getAttribute('type'))) {
-            $this->set(new Field\ChoiceFormField($node));
-        } elseif ('input' == $nodeName && 'radio' == strtolower($node->getAttribute('type'))) {
-            // there may be other fields with the same name that are no choice
-            // fields already registered (see https://github.com/symfony/symfony/issues/11689)
-            if ($this->has($node->getAttribute('name')) && $this->get($node->getAttribute('name')) instanceof ChoiceFormField) {
-                $this->get($node->getAttribute('name'))->addChoice($node);
-            } else {
-                $this->set(new Field\ChoiceFormField($node));
-            }
-        } elseif ('input' == $nodeName && 'file' == strtolower($node->getAttribute('type'))) {
-            $this->set(new Field\FileFormField($node));
-        } elseif ('input' == $nodeName && !in_array(strtolower($node->getAttribute('type')), array('submit', 'button', 'image'))) {
-            $this->set(new Field\InputFormField($node));
-        } elseif ('textarea' == $nodeName) {
-            $this->set(new Field\TextareaFormField($node));
-        }
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/FormFieldRegistry.php b/core/vendor/symfony/dom-crawler/FormFieldRegistry.php
deleted file mode 100644
index edb2788..0000000
--- a/core/vendor/symfony/dom-crawler/FormFieldRegistry.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler;
-
-use Symfony\Component\DomCrawler\Field\FormField;
-
-/**
- * This is an internal class that must not be used directly.
- */
-class FormFieldRegistry
-{
-    private $fields = array();
-
-    private $base;
-
-    /**
-     * Adds a field to the registry.
-     *
-     * @param FormField $field The field
-     *
-     * @throws \InvalidArgumentException when the name is malformed
-     */
-    public function add(FormField $field)
-    {
-        $segments = $this->getSegments($field->getName());
-
-        $target = &$this->fields;
-        while ($segments) {
-            if (!is_array($target)) {
-                $target = array();
-            }
-            $path = array_shift($segments);
-            if ('' === $path) {
-                $target = &$target[];
-            } else {
-                $target = &$target[$path];
-            }
-        }
-        $target = $field;
-    }
-
-    /**
-     * Removes a field and its children from the registry.
-     *
-     * @param string $name The fully qualified name of the base field
-     *
-     * @throws \InvalidArgumentException when the name is malformed
-     */
-    public function remove($name)
-    {
-        $segments = $this->getSegments($name);
-        $target = &$this->fields;
-        while (count($segments) > 1) {
-            $path = array_shift($segments);
-            if (!array_key_exists($path, $target)) {
-                return;
-            }
-            $target = &$target[$path];
-        }
-        unset($target[array_shift($segments)]);
-    }
-
-    /**
-     * Returns the value of the field and its children.
-     *
-     * @param string $name The fully qualified name of the field
-     *
-     * @return mixed The value of the field
-     *
-     * @throws \InvalidArgumentException when the name is malformed
-     * @throws \InvalidArgumentException if the field does not exist
-     */
-    public function &get($name)
-    {
-        $segments = $this->getSegments($name);
-        $target = &$this->fields;
-        while ($segments) {
-            $path = array_shift($segments);
-            if (!array_key_exists($path, $target)) {
-                throw new \InvalidArgumentException(sprintf('Unreachable field "%s"', $path));
-            }
-            $target = &$target[$path];
-        }
-
-        return $target;
-    }
-
-    /**
-     * Tests whether the form has the given field.
-     *
-     * @param string $name The fully qualified name of the field
-     *
-     * @return bool Whether the form has the given field
-     */
-    public function has($name)
-    {
-        try {
-            $this->get($name);
-
-            return true;
-        } catch (\InvalidArgumentException $e) {
-            return false;
-        }
-    }
-
-    /**
-     * Set the value of a field and its children.
-     *
-     * @param string $name  The fully qualified name of the field
-     * @param mixed  $value The value
-     *
-     * @throws \InvalidArgumentException when the name is malformed
-     * @throws \InvalidArgumentException if the field does not exist
-     */
-    public function set($name, $value)
-    {
-        $target = &$this->get($name);
-        if ((!is_array($value) && $target instanceof Field\FormField) || $target instanceof Field\ChoiceFormField) {
-            $target->setValue($value);
-        } elseif (is_array($value)) {
-            $fields = self::create($name, $value);
-            foreach ($fields->all() as $k => $v) {
-                $this->set($k, $v);
-            }
-        } else {
-            throw new \InvalidArgumentException(sprintf('Cannot set value on a compound field "%s".', $name));
-        }
-    }
-
-    /**
-     * Returns the list of field with their value.
-     *
-     * @return FormField[] The list of fields as array((string) Fully qualified name => (mixed) value)
-     */
-    public function all()
-    {
-        return $this->walk($this->fields, $this->base);
-    }
-
-    /**
-     * Creates an instance of the class.
-     *
-     * This function is made private because it allows overriding the $base and
-     * the $values properties without any type checking.
-     *
-     * @param string $base   The fully qualified name of the base field
-     * @param array  $values The values of the fields
-     *
-     * @return FormFieldRegistry
-     */
-    private static function create($base, array $values)
-    {
-        $registry = new static();
-        $registry->base = $base;
-        $registry->fields = $values;
-
-        return $registry;
-    }
-
-    /**
-     * Transforms a PHP array in a list of fully qualified name / value.
-     *
-     * @param array  $array  The PHP array
-     * @param string $base   The name of the base field
-     * @param array  $output The initial values
-     *
-     * @return array The list of fields as array((string) Fully qualified name => (mixed) value)
-     */
-    private function walk(array $array, $base = '', array &$output = array())
-    {
-        foreach ($array as $k => $v) {
-            $path = empty($base) ? $k : sprintf('%s[%s]', $base, $k);
-            if (is_array($v)) {
-                $this->walk($v, $path, $output);
-            } else {
-                $output[$path] = $v;
-            }
-        }
-
-        return $output;
-    }
-
-    /**
-     * Splits a field name into segments as a web browser would do.
-     *
-     * <code>
-     *     getSegments('base[foo][3][]') = array('base', 'foo, '3', '');
-     * </code>
-     *
-     * @param string $name The name of the field
-     *
-     * @return string[] The list of segments
-     *
-     * @throws \InvalidArgumentException when the name is malformed
-     */
-    private function getSegments($name)
-    {
-        if (preg_match('/^(?P<base>[^[]+)(?P<extra>(\[.*)|$)/', $name, $m)) {
-            $segments = array($m['base']);
-            while (!empty($m['extra'])) {
-                if (preg_match('/^\[(?P<segment>.*?)\](?P<extra>.*)$/', $m['extra'], $m)) {
-                    $segments[] = $m['segment'];
-                } else {
-                    throw new \InvalidArgumentException(sprintf('Malformed field path "%s"', $name));
-                }
-            }
-
-            return $segments;
-        }
-
-        throw new \InvalidArgumentException(sprintf('Malformed field path "%s"', $name));
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/LICENSE b/core/vendor/symfony/dom-crawler/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/dom-crawler/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/dom-crawler/Link.php b/core/vendor/symfony/dom-crawler/Link.php
deleted file mode 100644
index a81db36..0000000
--- a/core/vendor/symfony/dom-crawler/Link.php
+++ /dev/null
@@ -1,232 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler;
-
-/**
- * Link represents an HTML link (an HTML a, area or link tag).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Link
-{
-    /**
-     * @var \DOMElement
-     */
-    protected $node;
-
-    /**
-     * @var string The method to use for the link
-     */
-    protected $method;
-
-    /**
-     * @var string The URI of the page where the link is embedded (or the base href)
-     */
-    protected $currentUri;
-
-    /**
-     * Constructor.
-     *
-     * @param \DOMElement $node       A \DOMElement instance
-     * @param string      $currentUri The URI of the page where the link is embedded (or the base href)
-     * @param string      $method     The method to use for the link (get by default)
-     *
-     * @throws \InvalidArgumentException if the node is not a link
-     *
-     * @api
-     */
-    public function __construct(\DOMElement $node, $currentUri, $method = 'GET')
-    {
-        if (!in_array(strtolower(substr($currentUri, 0, 4)), array('http', 'file'))) {
-            throw new \InvalidArgumentException(sprintf('Current URI must be an absolute URL ("%s").', $currentUri));
-        }
-
-        $this->setNode($node);
-        $this->method = $method ? strtoupper($method) : null;
-        $this->currentUri = $currentUri;
-    }
-
-    /**
-     * Gets the node associated with this link.
-     *
-     * @return \DOMElement A \DOMElement instance
-     */
-    public function getNode()
-    {
-        return $this->node;
-    }
-
-    /**
-     * Gets the method associated with this link.
-     *
-     * @return string The method
-     *
-     * @api
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * Gets the URI associated with this link.
-     *
-     * @return string The URI
-     *
-     * @api
-     */
-    public function getUri()
-    {
-        $uri = trim($this->getRawUri());
-
-        // absolute URL?
-        if (null !== parse_url($uri, PHP_URL_SCHEME)) {
-            return $uri;
-        }
-
-        // empty URI
-        if (!$uri) {
-            return $this->currentUri;
-        }
-
-        // an anchor
-        if ('#' === $uri[0]) {
-            return $this->cleanupAnchor($this->currentUri).$uri;
-        }
-
-        $baseUri = $this->cleanupUri($this->currentUri);
-
-        if ('?' === $uri[0]) {
-            return $baseUri.$uri;
-        }
-
-        // absolute URL with relative schema
-        if (0 === strpos($uri, '//')) {
-            return preg_replace('#^([^/]*)//.*$#', '$1', $baseUri).$uri;
-        }
-
-        $baseUri = preg_replace('#^(.*?//[^/]*)(?:\/.*)?$#', '$1', $baseUri);
-
-        // absolute path
-        if ('/' === $uri[0]) {
-            return $baseUri.$uri;
-        }
-
-        // relative path
-        $path = parse_url(substr($this->currentUri, strlen($baseUri)), PHP_URL_PATH);
-        $path = $this->canonicalizePath(substr($path, 0, strrpos($path, '/')).'/'.$uri);
-
-        return $baseUri.('' === $path || '/' !== $path[0] ? '/' : '').$path;
-    }
-
-    /**
-     * Returns raw URI data.
-     *
-     * @return string
-     */
-    protected function getRawUri()
-    {
-        return $this->node->getAttribute('href');
-    }
-
-    /**
-     * Returns the canonicalized URI path (see RFC 3986, section 5.2.4).
-     *
-     * @param string $path URI path
-     *
-     * @return string
-     */
-    protected function canonicalizePath($path)
-    {
-        if ('' === $path || '/' === $path) {
-            return $path;
-        }
-
-        if ('.' === substr($path, -1)) {
-            $path .= '/';
-        }
-
-        $output = array();
-
-        foreach (explode('/', $path) as $segment) {
-            if ('..' === $segment) {
-                array_pop($output);
-            } elseif ('.' !== $segment) {
-                $output[] = $segment;
-            }
-        }
-
-        return implode('/', $output);
-    }
-
-    /**
-     * Sets current \DOMElement instance.
-     *
-     * @param \DOMElement $node A \DOMElement instance
-     *
-     * @throws \LogicException If given node is not an anchor
-     */
-    protected function setNode(\DOMElement $node)
-    {
-        if ('a' !== $node->nodeName && 'area' !== $node->nodeName && 'link' !== $node->nodeName) {
-            throw new \LogicException(sprintf('Unable to navigate from a "%s" tag.', $node->nodeName));
-        }
-
-        $this->node = $node;
-    }
-
-    /**
-     * Removes the query string and the anchor from the given uri.
-     *
-     * @param string $uri The uri to clean
-     *
-     * @return string
-     */
-    private function cleanupUri($uri)
-    {
-        return $this->cleanupQuery($this->cleanupAnchor($uri));
-    }
-
-    /**
-     * Remove the query string from the uri.
-     *
-     * @param string $uri
-     *
-     * @return string
-     */
-    private function cleanupQuery($uri)
-    {
-        if (false !== $pos = strpos($uri, '?')) {
-            return substr($uri, 0, $pos);
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Remove the anchor from the uri.
-     *
-     * @param string $uri
-     *
-     * @return string
-     */
-    private function cleanupAnchor($uri)
-    {
-        if (false !== $pos = strpos($uri, '#')) {
-            return substr($uri, 0, $pos);
-        }
-
-        return $uri;
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/README.md b/core/vendor/symfony/dom-crawler/README.md
deleted file mode 100644
index d2c8de5..0000000
--- a/core/vendor/symfony/dom-crawler/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-DomCrawler Component
-====================
-
-DomCrawler eases DOM navigation for HTML and XML documents.
-
-If you are familiar with jQuery, DomCrawler is a PHP equivalent:
-
-```php
-use Symfony\Component\DomCrawler\Crawler;
-
-$crawler = new Crawler();
-$crawler->addContent('<html><body><p>Hello World!</p></body></html>');
-
-print $crawler->filterXPath('descendant-or-self::body/p')->text();
-```
-
-If you are also using the CssSelector component, you can use CSS Selectors
-instead of XPath expressions:
-
-```php
-use Symfony\Component\DomCrawler\Crawler;
-
-$crawler = new Crawler();
-$crawler->addContent('<html><body><p>Hello World!</p></body></html>');
-
-print $crawler->filter('body > p')->text();
-```
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/DomCrawler/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/dom-crawler/Tests/CrawlerTest.php b/core/vendor/symfony/dom-crawler/Tests/CrawlerTest.php
deleted file mode 100755
index 3c281eb..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/CrawlerTest.php
+++ /dev/null
@@ -1,1079 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests;
-
-use Symfony\Component\CssSelector\CssSelector;
-use Symfony\Component\DomCrawler\Crawler;
-
-class CrawlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $crawler = new Crawler();
-        $this->assertCount(0, $crawler, '__construct() returns an empty crawler');
-
-        $crawler = new Crawler(new \DOMNode());
-        $this->assertCount(1, $crawler, '__construct() takes a node as a first argument');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::add
-     */
-    public function testAdd()
-    {
-        $crawler = new Crawler();
-        $crawler->add($this->createDomDocument());
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->add() adds nodes from a \DOMDocument');
-
-        $crawler = new Crawler();
-        $crawler->add($this->createNodeList());
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->add() adds nodes from a \DOMNodeList');
-
-        foreach ($this->createNodeList() as $node) {
-            $list[] = $node;
-        }
-        $crawler = new Crawler();
-        $crawler->add($list);
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->add() adds nodes from an array of nodes');
-
-        $crawler = new Crawler();
-        $crawler->add($this->createNodeList()->item(0));
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->add() adds nodes from a \DOMElement');
-
-        $crawler = new Crawler();
-        $crawler->add('<html><body>Foo</body></html>');
-        $this->assertEquals('Foo', $crawler->filterXPath('//body')->text(), '->add() adds nodes from a string');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testAddInvalidNode()
-    {
-        $crawler = new Crawler();
-        $crawler->add(1);
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addHtmlContent
-     */
-    public function testAddHtmlContent()
-    {
-        $crawler = new Crawler();
-        $crawler->addHtmlContent('<html><div class="foo"></html>', 'UTF-8');
-
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addHtmlContent() adds nodes from an HTML string');
-
-        $crawler->addHtmlContent('<html><head><base href="http://symfony.com"></head><a href="/contact"></a></html>', 'UTF-8');
-
-        $this->assertEquals('http://symfony.com', $crawler->filterXPath('//base')->attr('href'), '->addHtmlContent() adds nodes from an HTML string');
-        $this->assertEquals('http://symfony.com/contact', $crawler->filterXPath('//a')->link()->getUri(), '->addHtmlContent() adds nodes from an HTML string');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addHtmlContent
-     */
-    public function testAddHtmlContentCharset()
-    {
-        $crawler = new Crawler();
-        $crawler->addHtmlContent('<html><div class="foo">Tiếng Việt</html>', 'UTF-8');
-
-        $this->assertEquals('Tiếng Việt', $crawler->filterXPath('//div')->text());
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addHtmlContent
-     */
-    public function testAddHtmlContentInvalidBaseTag()
-    {
-        $crawler = new Crawler(null, 'http://symfony.com');
-
-        $crawler->addHtmlContent('<html><head><base target="_top"></head><a href="/contact"></a></html>', 'UTF-8');
-
-        $this->assertEquals('http://symfony.com/contact', current($crawler->filterXPath('//a')->links())->getUri(), '->addHtmlContent() correctly handles a non-existent base tag href attribute');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addHtmlContent
-     */
-    public function testAddHtmlContentUnsupportedCharset()
-    {
-        $crawler = new Crawler();
-        $crawler->addHtmlContent(file_get_contents(__DIR__.'/Fixtures/windows-1250.html'), 'Windows-1250');
-
-        $this->assertEquals('Žťčýů', $crawler->filterXPath('//p')->text());
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addHtmlContent
-     */
-    public function testAddHtmlContentCharsetGbk()
-    {
-        $crawler = new Crawler();
-        //gbk encode of <html><p>中文</p></html>
-        $crawler->addHtmlContent(base64_decode('PGh0bWw+PHA+1tDOxDwvcD48L2h0bWw+'), 'gbk');
-
-        $this->assertEquals('中文', $crawler->filterXPath('//p')->text());
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addHtmlContent
-     */
-    public function testAddHtmlContentWithErrors()
-    {
-        $internalErrors = libxml_use_internal_errors(true);
-
-        $crawler = new Crawler();
-        $crawler->addHtmlContent(<<<EOF
-<!DOCTYPE html>
-<html>
-    <head>
-    </head>
-    <body>
-        <nav><a href="#"><a href="#"></nav>
-    </body>
-</html>
-EOF
-        , 'UTF-8');
-
-        $errors = libxml_get_errors();
-        $this->assertCount(1, $errors);
-        $this->assertEquals("Tag nav invalid\n", $errors[0]->message);
-
-        libxml_clear_errors();
-        libxml_use_internal_errors($internalErrors);
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addXmlContent
-     */
-    public function testAddXmlContent()
-    {
-        $crawler = new Crawler();
-        $crawler->addXmlContent('<html><div class="foo"></div></html>', 'UTF-8');
-
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addXmlContent() adds nodes from an XML string');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addXmlContent
-     */
-    public function testAddXmlContentCharset()
-    {
-        $crawler = new Crawler();
-        $crawler->addXmlContent('<html><div class="foo">Tiếng Việt</div></html>', 'UTF-8');
-
-        $this->assertEquals('Tiếng Việt', $crawler->filterXPath('//div')->text());
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addXmlContent
-     */
-    public function testAddXmlContentWithErrors()
-    {
-        $internalErrors = libxml_use_internal_errors(true);
-
-        $crawler = new Crawler();
-        $crawler->addXmlContent(<<<EOF
-<!DOCTYPE html>
-<html>
-    <head>
-    </head>
-    <body>
-        <nav><a href="#"><a href="#"></nav>
-    </body>
-</html>
-EOF
-        , 'UTF-8');
-
-        $this->assertTrue(count(libxml_get_errors()) > 1);
-
-        libxml_clear_errors();
-        libxml_use_internal_errors($internalErrors);
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addContent
-     */
-    public function testAddContent()
-    {
-        $crawler = new Crawler();
-        $crawler->addContent('<html><div class="foo"></html>', 'text/html; charset=UTF-8');
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addContent() adds nodes from an HTML string');
-
-        $crawler = new Crawler();
-        $crawler->addContent('<html><div class="foo"></html>', 'text/html; charset=UTF-8; dir=RTL');
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addContent() adds nodes from an HTML string with extended content type');
-
-        $crawler = new Crawler();
-        $crawler->addContent('<html><div class="foo"></html>');
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addContent() uses text/html as the default type');
-
-        $crawler = new Crawler();
-        $crawler->addContent('<html><div class="foo"></div></html>', 'text/xml; charset=UTF-8');
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addContent() adds nodes from an XML string');
-
-        $crawler = new Crawler();
-        $crawler->addContent('<html><div class="foo"></div></html>', 'text/xml');
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addContent() adds nodes from an XML string');
-
-        $crawler = new Crawler();
-        $crawler->addContent('foo bar', 'text/plain');
-        $this->assertCount(0, $crawler, '->addContent() does nothing if the type is not (x|ht)ml');
-
-        $crawler = new Crawler();
-        $crawler->addContent('<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><span>中文</span></html>');
-        $this->assertEquals('中文', $crawler->filterXPath('//span')->text(), '->addContent() guess wrong charset');
-
-        $crawler = new Crawler();
-        $crawler->addContent(mb_convert_encoding('<html><head><meta charset="Shift_JIS"></head><body>日本語</body></html>', 'SJIS', 'UTF-8'));
-        $this->assertEquals('日本語', $crawler->filterXPath('//body')->text(), '->addContent() can recognize "Shift_JIS" in html5 meta charset tag');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addDocument
-     */
-    public function testAddDocument()
-    {
-        $crawler = new Crawler();
-        $crawler->addDocument($this->createDomDocument());
-
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addDocument() adds nodes from a \DOMDocument');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addNodeList
-     */
-    public function testAddNodeList()
-    {
-        $crawler = new Crawler();
-        $crawler->addNodeList($this->createNodeList());
-
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addNodeList() adds nodes from a \DOMNodeList');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addNodes
-     */
-    public function testAddNodes()
-    {
-        foreach ($this->createNodeList() as $node) {
-            $list[] = $node;
-        }
-
-        $crawler = new Crawler();
-        $crawler->addNodes($list);
-
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addNodes() adds nodes from an array of nodes');
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::addNode
-     */
-    public function testAddNode()
-    {
-        $crawler = new Crawler();
-        $crawler->addNode($this->createNodeList()->item(0));
-
-        $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addNode() adds nodes from a \DOMElement');
-    }
-
-    public function testClear()
-    {
-        $crawler = new Crawler(new \DOMNode());
-        $crawler->clear();
-        $this->assertCount(0, $crawler, '->clear() removes all the nodes from the crawler');
-    }
-
-    public function testEq()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//li');
-        $this->assertNotSame($crawler, $crawler->eq(0), '->eq() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->eq() returns a new instance of a crawler');
-
-        $this->assertEquals('Two', $crawler->eq(1)->text(), '->eq() returns the nth node of the list');
-        $this->assertCount(0, $crawler->eq(100), '->eq() returns an empty crawler if the nth node does not exist');
-    }
-
-    public function testEach()
-    {
-        $data = $this->createTestCrawler()->filterXPath('//ul[1]/li')->each(function ($node, $i) {
-            return $i.'-'.$node->text();
-        });
-
-        $this->assertEquals(array('0-One', '1-Two', '2-Three'), $data, '->each() executes an anonymous function on each node of the list');
-    }
-
-    public function testSlice()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
-        $this->assertNotSame($crawler->slice(), $crawler, '->slice() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler->slice(), '->slice() returns a new instance of a crawler');
-
-        $this->assertCount(3, $crawler->slice(), '->slice() does not slice the nodes in the list if any param is entered');
-        $this->assertCount(1, $crawler->slice(1, 1), '->slice() slices the nodes in the list');
-    }
-
-    public function testReduce()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
-        $nodes = $crawler->reduce(function ($node, $i) {
-            return $i !== 1;
-        });
-        $this->assertNotSame($nodes, $crawler, '->reduce() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $nodes, '->reduce() returns a new instance of a crawler');
-
-        $this->assertCount(2, $nodes, '->reduce() filters the nodes in the list');
-    }
-
-    public function testAttr()
-    {
-        $this->assertEquals('first', $this->createTestCrawler()->filterXPath('//li')->attr('class'), '->attr() returns the attribute of the first element of the node list');
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->attr('class');
-            $this->fail('->attr() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->attr() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testMissingAttrValueIsNull()
-    {
-        $crawler = new Crawler();
-        $crawler->addContent('<html><div non-empty-attr="sample value" empty-attr=""></div></html>', 'text/html; charset=UTF-8');
-        $div = $crawler->filterXPath('//div');
-
-        $this->assertEquals('sample value', $div->attr('non-empty-attr'), '->attr() reads non-empty attributes correctly');
-        $this->assertEquals('', $div->attr('empty-attr'), '->attr() reads empty attributes correctly');
-        $this->assertNull($div->attr('missing-attr'), '->attr() reads missing attributes correctly');
-    }
-
-    public function testNodeName()
-    {
-        $this->assertEquals('li', $this->createTestCrawler()->filterXPath('//li')->nodeName(), '->nodeName() returns the node name of the first element of the node list');
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->nodeName();
-            $this->fail('->nodeName() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->nodeName() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testText()
-    {
-        $this->assertEquals('One', $this->createTestCrawler()->filterXPath('//li')->text(), '->text() returns the node value of the first element of the node list');
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->text();
-            $this->fail('->text() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->text() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testHtml()
-    {
-        $this->assertEquals('<img alt="Bar">', $this->createTestCrawler()->filterXPath('//a[5]')->html());
-        $this->assertEquals('<input type="text" value="TextValue" name="TextName"><input type="submit" value="FooValue" name="FooName" id="FooId"><input type="button" value="BarValue" name="BarName" id="BarId"><button value="ButtonValue" name="ButtonName" id="ButtonId"></button>', trim($this->createTestCrawler()->filterXPath('//form[@id="FooFormId"]')->html()));
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->html();
-            $this->fail('->html() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->html() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testExtract()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
-
-        $this->assertEquals(array('One', 'Two', 'Three'), $crawler->extract('_text'), '->extract() returns an array of extracted data from the node list');
-        $this->assertEquals(array(array('One', 'first'), array('Two', ''), array('Three', '')), $crawler->extract(array('_text', 'class')), '->extract() returns an array of extracted data from the node list');
-
-        $this->assertEquals(array(), $this->createTestCrawler()->filterXPath('//ol')->extract('_text'), '->extract() returns an empty array if the node list is empty');
-    }
-
-    public function testFilterXpathComplexQueries()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//body');
-
-        $this->assertCount(0, $crawler->filterXPath('/input'));
-        $this->assertCount(0, $crawler->filterXPath('/body'));
-        $this->assertCount(1, $crawler->filterXPath('/_root/body'));
-        $this->assertCount(1, $crawler->filterXPath('./body'));
-        $this->assertCount(1, $crawler->filterXPath('.//body'));
-        $this->assertCount(5, $crawler->filterXPath('.//input'));
-        $this->assertCount(4, $crawler->filterXPath('//form')->filterXPath('//button | //input'));
-        $this->assertCount(1, $crawler->filterXPath('body'));
-        $this->assertCount(6, $crawler->filterXPath('//button | //input'));
-        $this->assertCount(1, $crawler->filterXPath('//body'));
-        $this->assertCount(1, $crawler->filterXPath('descendant-or-self::body'));
-        $this->assertCount(1, $crawler->filterXPath('//div[@id="parent"]')->filterXPath('./div'), 'A child selection finds only the current div');
-        $this->assertCount(3, $crawler->filterXPath('//div[@id="parent"]')->filterXPath('descendant::div'), 'A descendant selector matches the current div and its child');
-        $this->assertCount(3, $crawler->filterXPath('//div[@id="parent"]')->filterXPath('//div'), 'A descendant selector matches the current div and its child');
-        $this->assertCount(5, $crawler->filterXPath('(//a | //div)//img'));
-        $this->assertCount(7, $crawler->filterXPath('((//a | //div)//img | //ul)'));
-        $this->assertCount(7, $crawler->filterXPath('( ( //a | //div )//img | //ul )'));
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::filterXPath
-     */
-    public function testFilterXPath()
-    {
-        $crawler = $this->createTestCrawler();
-        $this->assertNotSame($crawler, $crawler->filterXPath('//li'), '->filterXPath() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->filterXPath() returns a new instance of a crawler');
-
-        $crawler = $this->createTestCrawler()->filterXPath('//ul');
-        $this->assertCount(6, $crawler->filterXPath('//li'), '->filterXPath() filters the node list with the XPath expression');
-
-        $crawler = $this->createTestCrawler();
-        $this->assertCount(3, $crawler->filterXPath('//body')->filterXPath('//button')->parents(), '->filterXpath() preserves parents when chained');
-    }
-
-    public function testFilterXPathWithDefaultNamespace()
-    {
-        $crawler = $this->createTestXmlCrawler()->filterXPath('//default:entry/default:id');
-        $this->assertCount(1, $crawler, '->filterXPath() automatically registers a namespace');
-        $this->assertSame('tag:youtube.com,2008:video:kgZRZmEc9j4', $crawler->text());
-    }
-
-    public function testFilterXPathWithCustomDefaultNamespace()
-    {
-        $crawler = $this->createTestXmlCrawler();
-        $crawler->setDefaultNamespacePrefix('x');
-        $crawler = $crawler->filterXPath('//x:entry/x:id');
-
-        $this->assertCount(1, $crawler, '->filterXPath() lets to override the default namespace prefix');
-        $this->assertSame('tag:youtube.com,2008:video:kgZRZmEc9j4', $crawler->text());
-    }
-
-    public function testFilterXPathWithNamespace()
-    {
-        $crawler = $this->createTestXmlCrawler()->filterXPath('//yt:accessControl');
-        $this->assertCount(2, $crawler, '->filterXPath() automatically registers a namespace');
-    }
-
-    public function testFilterXPathWithMultipleNamespaces()
-    {
-        $crawler = $this->createTestXmlCrawler()->filterXPath('//media:group/yt:aspectRatio');
-        $this->assertCount(1, $crawler, '->filterXPath() automatically registers multiple namespaces');
-        $this->assertSame('widescreen', $crawler->text());
-    }
-
-    public function testFilterXPathWithManuallyRegisteredNamespace()
-    {
-        $crawler = $this->createTestXmlCrawler();
-        $crawler->registerNamespace('m', 'http://search.yahoo.com/mrss/');
-
-        $crawler = $crawler->filterXPath('//m:group/yt:aspectRatio');
-        $this->assertCount(1, $crawler, '->filterXPath() uses manually registered namespace');
-        $this->assertSame('widescreen', $crawler->text());
-    }
-
-    public function testFilterXPathWithAnUrl()
-    {
-        $crawler = $this->createTestXmlCrawler();
-
-        $crawler = $crawler->filterXPath('//media:category[@scheme="http://gdata.youtube.com/schemas/2007/categories.cat"]');
-        $this->assertCount(1, $crawler);
-        $this->assertSame('Music', $crawler->text());
-    }
-
-    public function testFilterXPathWithFakeRoot()
-    {
-        $crawler = $this->createTestCrawler();
-        $this->assertCount(0, $crawler->filterXPath('.'), '->filterXPath() returns an empty result if the XPath references the fake root node');
-        $this->assertCount(0, $crawler->filterXPath('/_root'), '->filterXPath() returns an empty result if the XPath references the fake root node');
-        $this->assertCount(0, $crawler->filterXPath('self::*'), '->filterXPath() returns an empty result if the XPath references the fake root node');
-        $this->assertCount(0, $crawler->filterXPath('self::_root'), '->filterXPath() returns an empty result if the XPath references the fake root node');
-    }
-
-    public function testFilterXPathWithAncestorAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//form');
-
-        $this->assertCount(0, $crawler->filterXPath('ancestor::*'), 'The fake root node has no ancestor nodes');
-    }
-
-    public function testFilterXPathWithAncestorOrSelfAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//form');
-
-        $this->assertCount(0, $crawler->filterXPath('ancestor-or-self::*'), 'The fake root node has no ancestor nodes');
-    }
-
-    public function testFilterXPathWithAttributeAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//form');
-
-        $this->assertCount(0, $crawler->filterXPath('attribute::*'), 'The fake root node has no attribute nodes');
-    }
-
-    public function testFilterXPathWithAttributeAxisAfterElementAxis()
-    {
-        $this->assertCount(3, $this->createTestCrawler()->filterXPath('//form/button/attribute::*'), '->filterXPath() handles attribute axes properly when they are preceded by an element filtering axis');
-    }
-
-    public function testFilterXPathWithChildAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//div[@id="parent"]');
-
-        $this->assertCount(1, $crawler->filterXPath('child::div'), 'A child selection finds only the current div');
-    }
-
-    public function testFilterXPathWithFollowingAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//a');
-
-        $this->assertCount(0, $crawler->filterXPath('following::div'), 'The fake root node has no following nodes');
-    }
-
-    public function testFilterXPathWithFollowingSiblingAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//a');
-
-        $this->assertCount(0, $crawler->filterXPath('following-sibling::div'), 'The fake root node has no following nodes');
-    }
-
-    public function testFilterXPathWithNamespaceAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//button');
-
-        $this->assertCount(0, $crawler->filterXPath('namespace::*'), 'The fake root node has no namespace nodes');
-    }
-
-    public function testFilterXPathWithNamespaceAxisAfterElementAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//div[@id="parent"]/namespace::*');
-
-        $this->assertCount(0, $crawler->filterXPath('namespace::*'), 'Namespace axes cannot be requested');
-    }
-
-    public function testFilterXPathWithParentAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//button');
-
-        $this->assertCount(0, $crawler->filterXPath('parent::*'), 'The fake root node has no parent nodes');
-    }
-
-    public function testFilterXPathWithPrecedingAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//form');
-
-        $this->assertCount(0, $crawler->filterXPath('preceding::*'), 'The fake root node has no preceding nodes');
-    }
-
-    public function testFilterXPathWithPrecedingSiblingAxis()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//form');
-
-        $this->assertCount(0, $crawler->filterXPath('preceding-sibling::*'), 'The fake root node has no preceding nodes');
-    }
-
-    public function testFilterXPathWithSelfAxes()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//a');
-
-        $this->assertCount(0, $crawler->filterXPath('self::a'), 'The fake root node has no "real" element name');
-        $this->assertCount(0, $crawler->filterXPath('self::a/img'), 'The fake root node has no "real" element name');
-        $this->assertCount(9, $crawler->filterXPath('self::*/a'));
-    }
-
-    /**
-     * @covers Symfony\Component\DomCrawler\Crawler::filter
-     */
-    public function testFilter()
-    {
-        $crawler = $this->createTestCrawler();
-        $this->assertNotSame($crawler, $crawler->filter('li'), '->filter() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->filter() returns a new instance of a crawler');
-
-        $crawler = $this->createTestCrawler()->filter('ul');
-
-        $this->assertCount(6, $crawler->filter('li'), '->filter() filters the node list with the CSS selector');
-    }
-
-    public function testFilterWithDefaultNamespace()
-    {
-        $crawler = $this->createTestXmlCrawler()->filter('default|entry default|id');
-        $this->assertCount(1, $crawler, '->filter() automatically registers namespaces');
-        $this->assertSame('tag:youtube.com,2008:video:kgZRZmEc9j4', $crawler->text());
-    }
-
-    public function testFilterWithNamespace()
-    {
-        CssSelector::disableHtmlExtension();
-
-        $crawler = $this->createTestXmlCrawler()->filter('yt|accessControl');
-        $this->assertCount(2, $crawler, '->filter() automatically registers namespaces');
-    }
-
-    public function testFilterWithMultipleNamespaces()
-    {
-        CssSelector::disableHtmlExtension();
-
-        $crawler = $this->createTestXmlCrawler()->filter('media|group yt|aspectRatio');
-        $this->assertCount(1, $crawler, '->filter() automatically registers namespaces');
-        $this->assertSame('widescreen', $crawler->text());
-    }
-
-    public function testFilterWithDefaultNamespaceOnly()
-    {
-        $crawler = new Crawler('<?xml version="1.0" encoding="UTF-8"?>
-            <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-                <url>
-                    <loc>http://localhost/foo</loc>
-                    <changefreq>weekly</changefreq>
-                    <priority>0.5</priority>
-                    <lastmod>2012-11-16</lastmod>
-               </url>
-               <url>
-                    <loc>http://localhost/bar</loc>
-                    <changefreq>weekly</changefreq>
-                    <priority>0.5</priority>
-                    <lastmod>2012-11-16</lastmod>
-                </url>
-            </urlset>
-        ');
-
-        $this->assertEquals(2, $crawler->filter('url')->count());
-    }
-
-    public function testSelectLink()
-    {
-        $crawler = $this->createTestCrawler();
-        $this->assertNotSame($crawler, $crawler->selectLink('Foo'), '->selectLink() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->selectLink() returns a new instance of a crawler');
-
-        $this->assertCount(1, $crawler->selectLink('Fabien\'s Foo'), '->selectLink() selects links by the node values');
-        $this->assertCount(1, $crawler->selectLink('Fabien\'s Bar'), '->selectLink() selects links by the alt attribute of a clickable image');
-
-        $this->assertCount(2, $crawler->selectLink('Fabien"s Foo'), '->selectLink() selects links by the node values');
-        $this->assertCount(2, $crawler->selectLink('Fabien"s Bar'), '->selectLink() selects links by the alt attribute of a clickable image');
-
-        $this->assertCount(1, $crawler->selectLink('\' Fabien"s Foo'), '->selectLink() selects links by the node values');
-        $this->assertCount(1, $crawler->selectLink('\' Fabien"s Bar'), '->selectLink() selects links by the alt attribute of a clickable image');
-
-        $this->assertCount(4, $crawler->selectLink('Foo'), '->selectLink() selects links by the node values');
-        $this->assertCount(4, $crawler->selectLink('Bar'), '->selectLink() selects links by the node values');
-    }
-
-    public function testSelectButton()
-    {
-        $crawler = $this->createTestCrawler();
-        $this->assertNotSame($crawler, $crawler->selectButton('FooValue'), '->selectButton() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->selectButton() returns a new instance of a crawler');
-
-        $this->assertEquals(1, $crawler->selectButton('FooValue')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('FooName')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('FooId')->count(), '->selectButton() selects buttons');
-
-        $this->assertEquals(1, $crawler->selectButton('BarValue')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('BarName')->count(), '->selectButton() selects buttons');
-        $this->assertEquals(1, $crawler->selectButton('BarId')->count(), '->selectButton() selects buttons');
-
-        $this->assertEquals(1, $crawler->selectButton('FooBarValue')->count(), '->selectButton() selects buttons with form attribute too');
-        $this->assertEquals(1, $crawler->selectButton('FooBarName')->count(), '->selectButton() selects buttons with form attribute too');
-    }
-
-    public function testSelectButtonWithSingleQuotesInNameAttribute()
-    {
-        $html = <<<HTML
-<!DOCTYPE html>
-<html lang="en">
-<body>
-    <div id="action">
-        <a href="/index.php?r=site/login">Login</a>
-    </div>
-    <form id="login-form" action="/index.php?r=site/login" method="post">
-        <button type="submit" name="Click 'Here'">Submit</button>
-    </form>
-</body>
-</html>
-HTML;
-
-        $crawler = new Crawler($html);
-
-        $this->assertCount(1, $crawler->selectButton('Click \'Here\''));
-    }
-
-    public function testSelectButtonWithDoubleQuotesInNameAttribute()
-    {
-        $html = <<<HTML
-<!DOCTYPE html>
-<html lang="en">
-<body>
-    <div id="action">
-        <a href="/index.php?r=site/login">Login</a>
-    </div>
-    <form id="login-form" action="/index.php?r=site/login" method="post">
-        <button type="submit" name='Click "Here"'>Submit</button>
-    </form>
-</body>
-</html>
-HTML;
-
-        $crawler = new Crawler($html);
-
-        $this->assertCount(1, $crawler->selectButton('Click "Here"'));
-    }
-
-    public function testLink()
-    {
-        $crawler = $this->createTestCrawler('http://example.com/bar/')->selectLink('Foo');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Link', $crawler->link(), '->link() returns a Link instance');
-
-        $this->assertEquals('POST', $crawler->link('post')->getMethod(), '->link() takes a method as its argument');
-
-        $crawler = $this->createTestCrawler('http://example.com/bar')->selectLink('GetLink');
-        $this->assertEquals('http://example.com/bar?get=param', $crawler->link()->getUri(), '->link() returns a Link instance');
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->link();
-            $this->fail('->link() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->link() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testSelectLinkAndLinkFiltered()
-    {
-        $html = <<<HTML
-<!DOCTYPE html>
-<html lang="en">
-<body>
-    <div id="action">
-        <a href="/index.php?r=site/login">Login</a>
-    </div>
-    <form id="login-form" action="/index.php?r=site/login" method="post">
-        <button type="submit">Submit</button>
-    </form>
-</body>
-</html>
-HTML;
-
-        $crawler = new Crawler($html);
-        $filtered = $crawler->filterXPath("descendant-or-self::*[@id = 'login-form']");
-
-        $this->assertCount(0, $filtered->selectLink('Login'));
-        $this->assertCount(1, $filtered->selectButton('Submit'));
-
-        $filtered = $crawler->filterXPath("descendant-or-self::*[@id = 'action']");
-
-        $this->assertCount(1, $filtered->selectLink('Login'));
-        $this->assertCount(0, $filtered->selectButton('Submit'));
-
-        $this->assertCount(1, $crawler->selectLink('Login')->selectLink('Login'));
-        $this->assertCount(1, $crawler->selectButton('Submit')->selectButton('Submit'));
-    }
-
-    public function testChaining()
-    {
-        $crawler = new Crawler('<div name="a"><div name="b"><div name="c"></div></div></div>');
-
-        $this->assertEquals('a', $crawler->filterXPath('//div')->filterXPath('div')->filterXPath('div')->attr('name'));
-    }
-
-    public function testLinks()
-    {
-        $crawler = $this->createTestCrawler('http://example.com/bar/')->selectLink('Foo');
-        $this->assertInternalType('array', $crawler->links(), '->links() returns an array');
-
-        $this->assertCount(4, $crawler->links(), '->links() returns an array');
-        $links = $crawler->links();
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Link', $links[0], '->links() returns an array of Link instances');
-
-        $this->assertEquals(array(), $this->createTestCrawler()->filterXPath('//ol')->links(), '->links() returns an empty array if the node selection is empty');
-    }
-
-    public function testForm()
-    {
-        $testCrawler = $this->createTestCrawler('http://example.com/bar/');
-        $crawler = $testCrawler->selectButton('FooValue');
-        $crawler2 = $testCrawler->selectButton('FooBarValue');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Form', $crawler->form(), '->form() returns a Form instance');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Form', $crawler2->form(), '->form() returns a Form instance');
-
-        $this->assertEquals($crawler->form()->getFormNode()->getAttribute('id'), $crawler2->form()->getFormNode()->getAttribute('id'), '->form() works on elements with form attribute');
-
-        $this->assertEquals(array('FooName' => 'FooBar', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler->form(array('FooName' => 'FooBar'))->getValues(), '->form() takes an array of values to submit as its first argument');
-        $this->assertEquals(array('FooName' => 'FooValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler->form()->getValues(), '->getValues() returns correct form values');
-        $this->assertEquals(array('FooBarName' => 'FooBarValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler2->form()->getValues(), '->getValues() returns correct form values');
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->form();
-            $this->fail('->form() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->form() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testLast()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
-        $this->assertNotSame($crawler, $crawler->last(), '->last() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->last() returns a new instance of a crawler');
-
-        $this->assertEquals('Three', $crawler->last()->text());
-    }
-
-    public function testFirst()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//li');
-        $this->assertNotSame($crawler, $crawler->first(), '->first() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->first() returns a new instance of a crawler');
-
-        $this->assertEquals('One', $crawler->first()->text());
-    }
-
-    public function testSiblings()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//li')->eq(1);
-        $this->assertNotSame($crawler, $crawler->siblings(), '->siblings() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->siblings() returns a new instance of a crawler');
-
-        $nodes = $crawler->siblings();
-        $this->assertEquals(2, $nodes->count());
-        $this->assertEquals('One', $nodes->eq(0)->text());
-        $this->assertEquals('Three', $nodes->eq(1)->text());
-
-        $nodes = $this->createTestCrawler()->filterXPath('//li')->eq(0)->siblings();
-        $this->assertEquals(2, $nodes->count());
-        $this->assertEquals('Two', $nodes->eq(0)->text());
-        $this->assertEquals('Three', $nodes->eq(1)->text());
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->siblings();
-            $this->fail('->siblings() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->siblings() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testNextAll()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//li')->eq(1);
-        $this->assertNotSame($crawler, $crawler->nextAll(), '->nextAll() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->nextAll() returns a new instance of a crawler');
-
-        $nodes = $crawler->nextAll();
-        $this->assertEquals(1, $nodes->count());
-        $this->assertEquals('Three', $nodes->eq(0)->text());
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->nextAll();
-            $this->fail('->nextAll() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->nextAll() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testPreviousAll()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//li')->eq(2);
-        $this->assertNotSame($crawler, $crawler->previousAll(), '->previousAll() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->previousAll() returns a new instance of a crawler');
-
-        $nodes = $crawler->previousAll();
-        $this->assertEquals(2, $nodes->count());
-        $this->assertEquals('Two', $nodes->eq(0)->text());
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->previousAll();
-            $this->fail('->previousAll() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->previousAll() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    public function testChildren()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//ul');
-        $this->assertNotSame($crawler, $crawler->children(), '->children() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->children() returns a new instance of a crawler');
-
-        $nodes = $crawler->children();
-        $this->assertEquals(3, $nodes->count());
-        $this->assertEquals('One', $nodes->eq(0)->text());
-        $this->assertEquals('Two', $nodes->eq(1)->text());
-        $this->assertEquals('Three', $nodes->eq(2)->text());
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->children();
-            $this->fail('->children() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->children() throws an \InvalidArgumentException if the node list is empty');
-        }
-
-        try {
-            $crawler = new Crawler('<p></p>');
-            $crawler->filter('p')->children();
-            $this->assertTrue(true, '->children() does not trigger a notice if the node has no children');
-        } catch (\PHPUnit_Framework_Error_Notice $e) {
-            $this->fail('->children() does not trigger a notice if the node has no children');
-        }
-    }
-
-    public function testParents()
-    {
-        $crawler = $this->createTestCrawler()->filterXPath('//li[1]');
-        $this->assertNotSame($crawler, $crawler->parents(), '->parents() returns a new instance of a crawler');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $crawler, '->parents() returns a new instance of a crawler');
-
-        $nodes = $crawler->parents();
-        $this->assertEquals(3, $nodes->count());
-
-        $nodes = $this->createTestCrawler()->filterXPath('//html')->parents();
-        $this->assertEquals(0, $nodes->count());
-
-        try {
-            $this->createTestCrawler()->filterXPath('//ol')->parents();
-            $this->fail('->parents() throws an \InvalidArgumentException if the node list is empty');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->parents() throws an \InvalidArgumentException if the node list is empty');
-        }
-    }
-
-    /**
-     * @dataProvider getBaseTagData
-     */
-    public function testBaseTag($baseValue, $linkValue, $expectedUri, $currentUri = null, $description = null)
-    {
-        $crawler = new Crawler('<html><base href="'.$baseValue.'"><a href="'.$linkValue.'"></a></html>', $currentUri);
-        $this->assertEquals($expectedUri, $crawler->filterXPath('//a')->link()->getUri(), $description);
-    }
-
-    public function getBaseTagData()
-    {
-        return array(
-            array('http://base.com', 'link', 'http://base.com/link'),
-            array('//base.com', 'link', 'https://base.com/link', 'https://domain.com', '<base> tag can use a schema-less URL'),
-            array('path/', 'link', 'https://domain.com/path/link', 'https://domain.com', '<base> tag can set a path'),
-            array('http://base.com', '#', 'http://base.com#', 'http://domain.com/path/link', '<base> tag does work with links to an anchor'),
-            array('http://base.com', '', 'http://base.com', 'http://domain.com/path/link', '<base> tag does work with empty links'),
-        );
-    }
-
-    /**
-     * @dataProvider getBaseTagWithFormData
-     */
-    public function testBaseTagWithForm($baseValue, $actionValue, $expectedUri, $currentUri = null, $description = null)
-    {
-        $crawler = new Crawler('<html><base href="'.$baseValue.'"><form method="post" action="'.$actionValue.'"><button type="submit" name="submit"/></form></html>', $currentUri);
-        $this->assertEquals($expectedUri, $crawler->filterXPath('//button')->form()->getUri(), $description);
-    }
-
-    public function getBaseTagWithFormData()
-    {
-        return array(
-            array('/basepath', '/registration', 'http://domain.com/registration', 'http://domain.com/registration', '<base> tag does work with a path and form action'),
-            array('/basepath', '', 'http://domain.com/registration', 'http://domain.com/registration', '<base> tag does work with a path and empty form action'),
-            array('http://base.com', '', 'http://domain.com/path/form', 'http://domain.com/path/form', '<base> tag does work with a URL and an empty form action'),
-        );
-    }
-
-    public function testCountOfNestedElements()
-    {
-        $crawler = new Crawler('<html><body><ul><li>List item 1<ul><li>Sublist item 1</li><li>Sublist item 2</ul></li></ul></body></html>');
-
-        $this->assertCount(1, $crawler->filter('li:contains("List item 1")'));
-    }
-
-    public function createTestCrawler($uri = null)
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-            <html>
-                <body>
-                    <a href="foo">Foo</a>
-                    <a href="/foo">   Fabien\'s Foo   </a>
-                    <a href="/foo">Fabien"s Foo</a>
-                    <a href="/foo">\' Fabien"s Foo</a>
-
-                    <a href="/bar"><img alt="Bar"/></a>
-                    <a href="/bar"><img alt="   Fabien\'s Bar   "/></a>
-                    <a href="/bar"><img alt="Fabien&quot;s Bar"/></a>
-                    <a href="/bar"><img alt="\' Fabien&quot;s Bar"/></a>
-
-                    <a href="?get=param">GetLink</a>
-
-                    <form action="foo" id="FooFormId">
-                        <input type="text" value="TextValue" name="TextName" />
-                        <input type="submit" value="FooValue" name="FooName" id="FooId" />
-                        <input type="button" value="BarValue" name="BarName" id="BarId" />
-                        <button value="ButtonValue" name="ButtonName" id="ButtonId" />
-                    </form>
-
-                    <input type="submit" value="FooBarValue" name="FooBarName" form="FooFormId" />
-                    <input type="text" value="FooTextValue" name="FooTextName" form="FooFormId" />
-
-                    <ul class="first">
-                        <li class="first">One</li>
-                        <li>Two</li>
-                        <li>Three</li>
-                    </ul>
-                    <ul>
-                        <li>One Bis</li>
-                        <li>Two Bis</li>
-                        <li>Three Bis</li>
-                    </ul>
-                    <div id="parent">
-                        <div id="child"></div>
-                        <div id="child2" xmlns:foo="http://example.com"></div>
-                    </div>
-                    <div id="sibling"><img /></div>
-                </body>
-            </html>
-        ');
-
-        return new Crawler($dom, $uri);
-    }
-
-    protected function createTestXmlCrawler($uri = null)
-    {
-        $xml = '<?xml version="1.0" encoding="UTF-8"?>
-            <entry xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007">
-                <id>tag:youtube.com,2008:video:kgZRZmEc9j4</id>
-                <yt:accessControl action="comment" permission="allowed"/>
-                <yt:accessControl action="videoRespond" permission="moderated"/>
-                <media:group>
-                    <media:title type="plain">Chordates - CrashCourse Biology #24</media:title>
-                    <yt:aspectRatio>widescreen</yt:aspectRatio>
-                </media:group>
-                <media:category label="Music" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Music</media:category>
-            </entry>';
-
-        return new Crawler($xml, $uri);
-    }
-
-    protected function createDomDocument()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadXML('<html><div class="foo"></div></html>');
-
-        return $dom;
-    }
-
-    protected function createNodeList()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadXML('<html><div class="foo"></div></html>');
-        $domxpath = new \DOMXPath($dom);
-
-        return $domxpath->query('//div');
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Field/ChoiceFormFieldTest.php b/core/vendor/symfony/dom-crawler/Tests/Field/ChoiceFormFieldTest.php
deleted file mode 100644
index 9b31945..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Field/ChoiceFormFieldTest.php
+++ /dev/null
@@ -1,388 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests\Field;
-
-use Symfony\Component\DomCrawler\Field\ChoiceFormField;
-
-class ChoiceFormFieldTest extends FormFieldTestCase
-{
-    public function testInitialize()
-    {
-        $node = $this->createNode('textarea', '');
-        try {
-            $field = new ChoiceFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is not an input or a select');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is not an input or a select');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'text'));
-        try {
-            $field = new ChoiceFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is an input with a type different from checkbox or radio');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is an input with a type different from checkbox or radio');
-        }
-    }
-
-    public function testGetType()
-    {
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals('radio', $field->getType(), '->getType() returns radio for radio buttons');
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals('checkbox', $field->getType(), '->getType() returns radio for a checkbox');
-
-        $node = $this->createNode('select', '');
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals('select', $field->getType(), '->getType() returns radio for a select');
-    }
-
-    public function testIsMultiple()
-    {
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertFalse($field->isMultiple(), '->isMultiple() returns false for radio buttons');
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertFalse($field->isMultiple(), '->isMultiple() returns false for checkboxes');
-
-        $node = $this->createNode('select', '');
-        $field = new ChoiceFormField($node);
-
-        $this->assertFalse($field->isMultiple(), '->isMultiple() returns false for selects without the multiple attribute');
-
-        $node = $this->createNode('select', '', array('multiple' => 'multiple'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertTrue($field->isMultiple(), '->isMultiple() returns true for selects with the multiple attribute');
-
-        $node = $this->createNode('select', '', array('multiple' => ''));
-        $field = new ChoiceFormField($node);
-
-        $this->assertTrue($field->isMultiple(), '->isMultiple() returns true for selects with an empty multiple attribute');
-    }
-
-    public function testSelects()
-    {
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false));
-        $field = new ChoiceFormField($node);
-
-        $this->assertTrue($field->hasValue(), '->hasValue() returns true for selects');
-        $this->assertEquals('foo', $field->getValue(), '->getValue() returns the first option if none are selected');
-        $this->assertFalse($field->isMultiple(), '->isMultiple() returns false when no multiple attribute is defined');
-
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => true));
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals('bar', $field->getValue(), '->getValue() returns the selected option');
-
-        $field->setValue('foo');
-        $this->assertEquals('foo', $field->getValue(), '->setValue() changes the selected option');
-
-        try {
-            $field->setValue('foobar');
-            $this->fail('->setValue() throws an \InvalidArgumentException if the value is not one of the selected options');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->setValue() throws an \InvalidArgumentException if the value is not one of the selected options');
-        }
-
-        try {
-            $field->setValue(array('foobar'));
-            $this->fail('->setValue() throws an \InvalidArgumentException if the value is an array');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->setValue() throws an \InvalidArgumentException if the value is an array');
-        }
-    }
-
-    public function testSelectWithEmptyBooleanAttribute()
-    {
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => true), array(), '');
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals('bar', $field->getValue());
-    }
-
-    public function testMultipleSelects()
-    {
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false), array('multiple' => 'multiple'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals(array(), $field->getValue(), '->setValue() returns an empty array if multiple is true and no option is selected');
-
-        $field->setValue('foo');
-        $this->assertEquals(array('foo'), $field->getValue(), '->setValue() returns an array of options if multiple is true');
-
-        $field->setValue('bar');
-        $this->assertEquals(array('bar'), $field->getValue(), '->setValue() returns an array of options if multiple is true');
-
-        $field->setValue(array('foo', 'bar'));
-        $this->assertEquals(array('foo', 'bar'), $field->getValue(), '->setValue() returns an array of options if multiple is true');
-
-        $node = $this->createSelectNode(array('foo' => true, 'bar' => true), array('multiple' => 'multiple'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals(array('foo', 'bar'), $field->getValue(), '->getValue() returns the selected options');
-
-        try {
-            $field->setValue(array('foobar'));
-            $this->fail('->setValue() throws an \InvalidArgumentException if the value is not one of the options');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->setValue() throws an \InvalidArgumentException if the value is not one of the options');
-        }
-    }
-
-    public function testRadioButtons()
-    {
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'bar'));
-        $field->addChoice($node);
-
-        $this->assertFalse($field->hasValue(), '->hasValue() returns false when no radio button is selected');
-        $this->assertNull($field->getValue(), '->getValue() returns null if no radio button is selected');
-        $this->assertFalse($field->isMultiple(), '->isMultiple() returns false for radio buttons');
-
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'bar', 'checked' => 'checked'));
-        $field->addChoice($node);
-
-        $this->assertTrue($field->hasValue(), '->hasValue() returns true when a radio button is selected');
-        $this->assertEquals('bar', $field->getValue(), '->getValue() returns the value attribute of the selected radio button');
-
-        $field->setValue('foo');
-        $this->assertEquals('foo', $field->getValue(), '->setValue() changes the selected radio button');
-
-        try {
-            $field->setValue('foobar');
-            $this->fail('->setValue() throws an \InvalidArgumentException if the value is not one of the radio button values');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->setValue() throws an \InvalidArgumentException if the value is not one of the radio button values');
-        }
-    }
-
-    public function testRadioButtonsWithEmptyBooleanAttribute()
-    {
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'bar', 'checked' => ''));
-        $field->addChoice($node);
-
-        $this->assertTrue($field->hasValue(), '->hasValue() returns true when a radio button is selected');
-        $this->assertEquals('bar', $field->getValue(), '->getValue() returns the value attribute of the selected radio button');
-    }
-
-    public function testRadioButtonIsDisabled()
-    {
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'foo', 'disabled' => 'disabled'));
-        $field = new ChoiceFormField($node);
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'bar'));
-        $field->addChoice($node);
-        $node = $this->createNode('input', '', array('type' => 'radio', 'name' => 'name', 'value' => 'baz', 'disabled' => ''));
-        $field->addChoice($node);
-
-        $field->select('foo');
-        $this->assertEquals('foo', $field->getValue(), '->getValue() returns the value attribute of the selected radio button');
-        $this->assertTrue($field->isDisabled());
-
-        $field->select('bar');
-        $this->assertEquals('bar', $field->getValue(), '->getValue() returns the value attribute of the selected radio button');
-        $this->assertFalse($field->isDisabled());
-
-        $field->select('baz');
-        $this->assertEquals('baz', $field->getValue(), '->getValue() returns the value attribute of the selected radio button');
-        $this->assertTrue($field->isDisabled());
-    }
-
-    public function testCheckboxes()
-    {
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertFalse($field->hasValue(), '->hasValue() returns false when the checkbox is not checked');
-        $this->assertNull($field->getValue(), '->getValue() returns null if the checkbox is not checked');
-        $this->assertFalse($field->isMultiple(), '->hasValue() returns false for checkboxes');
-        try {
-            $field->addChoice(new \DOMElement('input'));
-            $this->fail('->addChoice() throws a \LogicException for checkboxes');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException for checkboxes');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'checked' => 'checked'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertTrue($field->hasValue(), '->hasValue() returns true when the checkbox is checked');
-        $this->assertEquals('on', $field->getValue(), '->getValue() returns 1 if the checkbox is checked and has no value attribute');
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'checked' => 'checked', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-
-        $this->assertEquals('foo', $field->getValue(), '->getValue() returns the value attribute if the checkbox is checked');
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'checked' => 'checked', 'value' => 'foo'));
-        $field = new ChoiceFormField($node);
-
-        $field->setValue(false);
-        $this->assertNull($field->getValue(), '->setValue() unchecks the checkbox is value is false');
-
-        $field->setValue(true);
-        $this->assertEquals('foo', $field->getValue(), '->setValue() checks the checkbox is value is true');
-
-        try {
-            $field->setValue('bar');
-            $this->fail('->setValue() throws an \InvalidArgumentException if the value is not one from the value attribute');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->setValue() throws an \InvalidArgumentException if the value is not one from the value attribute');
-        }
-    }
-
-    public function testCheckboxWithEmptyBooleanAttribute()
-    {
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'value' => 'foo', 'checked' => ''));
-        $field = new ChoiceFormField($node);
-
-        $this->assertTrue($field->hasValue(), '->hasValue() returns true when the checkbox is checked');
-        $this->assertEquals('foo', $field->getValue());
-    }
-
-    public function testTick()
-    {
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false));
-        $field = new ChoiceFormField($node);
-
-        try {
-            $field->tick();
-            $this->fail('->tick() throws a \LogicException for select boxes');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->tick() throws a \LogicException for select boxes');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name'));
-        $field = new ChoiceFormField($node);
-        $field->tick();
-        $this->assertEquals('on', $field->getValue(), '->tick() ticks checkboxes');
-    }
-
-    public function testUntick()
-    {
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false));
-        $field = new ChoiceFormField($node);
-
-        try {
-            $field->untick();
-            $this->fail('->untick() throws a \LogicException for select boxes');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->untick() throws a \LogicException for select boxes');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'checked' => 'checked'));
-        $field = new ChoiceFormField($node);
-        $field->untick();
-        $this->assertNull($field->getValue(), '->untick() unticks checkboxes');
-    }
-
-    public function testSelect()
-    {
-        $node = $this->createNode('input', '', array('type' => 'checkbox', 'name' => 'name', 'checked' => 'checked'));
-        $field = new ChoiceFormField($node);
-        $field->select(true);
-        $this->assertEquals('on', $field->getValue(), '->select() changes the value of the field');
-        $field->select(false);
-        $this->assertNull($field->getValue(), '->select() changes the value of the field');
-
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false));
-        $field = new ChoiceFormField($node);
-        $field->select('foo');
-        $this->assertEquals('foo', $field->getValue(), '->select() changes the selected option');
-    }
-
-    public function testOptionWithNoValue()
-    {
-        $node = $this->createSelectNodeWithEmptyOption(array('foo' => false, 'bar' => false));
-        $field = new ChoiceFormField($node);
-        $this->assertEquals('foo', $field->getValue());
-
-        $node = $this->createSelectNodeWithEmptyOption(array('foo' => false, 'bar' => true));
-        $field = new ChoiceFormField($node);
-        $this->assertEquals('bar', $field->getValue());
-        $field->select('foo');
-        $this->assertEquals('foo', $field->getValue(), '->select() changes the selected option');
-    }
-
-    public function testDisableValidation()
-    {
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false));
-        $field = new ChoiceFormField($node);
-        $field->disableValidation();
-        $field->setValue('foobar');
-        $this->assertEquals('foobar', $field->getValue(), '->disableValidation() allows to set a value which is not in the selected options.');
-
-        $node = $this->createSelectNode(array('foo' => false, 'bar' => false), array('multiple' => 'multiple'));
-        $field = new ChoiceFormField($node);
-        $field->disableValidation();
-        $field->setValue(array('foobar'));
-        $this->assertEquals(array('foobar'), $field->getValue(), '->disableValidation() allows to set a value which is not in the selected options.');
-    }
-
-    protected function createSelectNode($options, $attributes = array(), $selectedAttrText = 'selected')
-    {
-        $document = new \DOMDocument();
-        $node = $document->createElement('select');
-
-        foreach ($attributes as $name => $value) {
-            $node->setAttribute($name, $value);
-        }
-        $node->setAttribute('name', 'name');
-
-        foreach ($options as $value => $selected) {
-            $option = $document->createElement('option', $value);
-            $option->setAttribute('value', $value);
-            if ($selected) {
-                $option->setAttribute('selected', $selectedAttrText);
-            }
-            $node->appendChild($option);
-        }
-
-        return $node;
-    }
-
-    protected function createSelectNodeWithEmptyOption($options, $attributes = array())
-    {
-        $document = new \DOMDocument();
-        $node = $document->createElement('select');
-
-        foreach ($attributes as $name => $value) {
-            $node->setAttribute($name, $value);
-        }
-        $node->setAttribute('name', 'name');
-
-        foreach ($options as $value => $selected) {
-            $option = $document->createElement('option', $value);
-            if ($selected) {
-                $option->setAttribute('selected', 'selected');
-            }
-            $node->appendChild($option);
-        }
-
-        return $node;
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Field/FileFormFieldTest.php b/core/vendor/symfony/dom-crawler/Tests/Field/FileFormFieldTest.php
deleted file mode 100644
index 3ce49a4..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Field/FileFormFieldTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests\Field;
-
-use Symfony\Component\DomCrawler\Field\FileFormField;
-
-class FileFormFieldTest extends FormFieldTestCase
-{
-    public function testInitialize()
-    {
-        $node = $this->createNode('input', '', array('type' => 'file'));
-        $field = new FileFormField($node);
-
-        $this->assertEquals(array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => UPLOAD_ERR_NO_FILE, 'size' => 0), $field->getValue(), '->initialize() sets the value of the field to no file uploaded');
-
-        $node = $this->createNode('textarea', '');
-        try {
-            $field = new FileFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is not an input field');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is not an input field');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'text'));
-        try {
-            $field = new FileFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is not a file input field');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is not a file input field');
-        }
-    }
-
-    /**
-     * @dataProvider getSetValueMethods
-     */
-    public function testSetValue($method)
-    {
-        $node = $this->createNode('input', '', array('type' => 'file'));
-        $field = new FileFormField($node);
-
-        $field->$method(null);
-        $this->assertEquals(array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => UPLOAD_ERR_NO_FILE, 'size' => 0), $field->getValue(), "->$method() clears the uploaded file if the value is null");
-
-        $field->$method(__FILE__);
-        $value = $field->getValue();
-
-        $this->assertEquals(basename(__FILE__), $value['name'], "->$method() sets the name of the file field");
-        $this->assertEquals('', $value['type'], "->$method() sets the type of the file field");
-        $this->assertInternalType('string', $value['tmp_name'], "->$method() sets the tmp_name of the file field");
-        $this->assertFileExists($value['tmp_name'], "->$method() creates a copy of the file at the tmp_name path");
-        $this->assertEquals(0, $value['error'], "->$method() sets the error of the file field");
-        $this->assertEquals(filesize(__FILE__), $value['size'], "->$method() sets the size of the file field");
-
-        $origInfo = pathinfo(__FILE__);
-        $tmpInfo = pathinfo($value['tmp_name']);
-        $this->assertEquals(
-            $origInfo['extension'],
-            $tmpInfo['extension'],
-            "->$method() keeps the same file extension in the tmp_name copy"
-        );
-
-        $field->$method(__DIR__.'/../Fixtures/no-extension');
-        $value = $field->getValue();
-
-        $this->assertArrayNotHasKey(
-            'extension',
-            pathinfo($value['tmp_name']),
-            "->$method() does not add a file extension in the tmp_name copy"
-        );
-    }
-
-    public function getSetValueMethods()
-    {
-        return array(
-            array('setValue'),
-            array('upload'),
-        );
-    }
-
-    public function testSetErrorCode()
-    {
-        $node = $this->createNode('input', '', array('type' => 'file'));
-        $field = new FileFormField($node);
-
-        $field->setErrorCode(UPLOAD_ERR_FORM_SIZE);
-        $value = $field->getValue();
-        $this->assertEquals(UPLOAD_ERR_FORM_SIZE, $value['error'], '->setErrorCode() sets the file input field error code');
-
-        try {
-            $field->setErrorCode('foobar');
-            $this->fail('->setErrorCode() throws a \InvalidArgumentException if the error code is not valid');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->setErrorCode() throws a \InvalidArgumentException if the error code is not valid');
-        }
-    }
-
-    public function testSetRawFilePath()
-    {
-        $node = $this->createNode('input', '', array('type' => 'file'));
-        $field = new FileFormField($node);
-        $field->setFilePath(__FILE__);
-
-        $this->assertEquals(__FILE__, $field->getValue());
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Field/FormFieldTest.php b/core/vendor/symfony/dom-crawler/Tests/Field/FormFieldTest.php
deleted file mode 100644
index 510f762..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Field/FormFieldTest.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests\Field;
-
-use Symfony\Component\DomCrawler\Field\InputFormField;
-
-class FormFieldTest extends FormFieldTestCase
-{
-    public function testGetName()
-    {
-        $node = $this->createNode('input', '', array('type' => 'text', 'name' => 'name', 'value' => 'value'));
-        $field = new InputFormField($node);
-
-        $this->assertEquals('name', $field->getName(), '->getName() returns the name of the field');
-    }
-
-    public function testGetSetHasValue()
-    {
-        $node = $this->createNode('input', '', array('type' => 'text', 'name' => 'name', 'value' => 'value'));
-        $field = new InputFormField($node);
-
-        $this->assertEquals('value', $field->getValue(), '->getValue() returns the value of the field');
-
-        $field->setValue('foo');
-        $this->assertEquals('foo', $field->getValue(), '->setValue() sets the value of the field');
-
-        $this->assertTrue($field->hasValue(), '->hasValue() always returns true');
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Field/FormFieldTestCase.php b/core/vendor/symfony/dom-crawler/Tests/Field/FormFieldTestCase.php
deleted file mode 100644
index 26b1b0e..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Field/FormFieldTestCase.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests\Field;
-
-class FormFieldTestCase extends \PHPUnit_Framework_TestCase
-{
-    protected function createNode($tag, $value, $attributes = array())
-    {
-        $document = new \DOMDocument();
-        $node = $document->createElement($tag, $value);
-
-        foreach ($attributes as $name => $value) {
-            $node->setAttribute($name, $value);
-        }
-
-        return $node;
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Field/InputFormFieldTest.php b/core/vendor/symfony/dom-crawler/Tests/Field/InputFormFieldTest.php
deleted file mode 100644
index 193d301..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Field/InputFormFieldTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests\Field;
-
-use Symfony\Component\DomCrawler\Field\InputFormField;
-
-class InputFormFieldTest extends FormFieldTestCase
-{
-    public function testInitialize()
-    {
-        $node = $this->createNode('input', '', array('type' => 'text', 'name' => 'name', 'value' => 'value'));
-        $field = new InputFormField($node);
-
-        $this->assertEquals('value', $field->getValue(), '->initialize() sets the value of the field to the value attribute value');
-
-        $node = $this->createNode('textarea', '');
-        try {
-            $field = new InputFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is not an input');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is not an input');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'checkbox'));
-        try {
-            $field = new InputFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is a checkbox');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is a checkbox');
-        }
-
-        $node = $this->createNode('input', '', array('type' => 'file'));
-        try {
-            $field = new InputFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is a file');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is a file');
-        }
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Field/TextareaFormFieldTest.php b/core/vendor/symfony/dom-crawler/Tests/Field/TextareaFormFieldTest.php
deleted file mode 100644
index 5d4d003..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Field/TextareaFormFieldTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests\Field;
-
-use Symfony\Component\DomCrawler\Field\TextareaFormField;
-
-class TextareaFormFieldTest extends FormFieldTestCase
-{
-    public function testInitialize()
-    {
-        $node = $this->createNode('textarea', 'foo bar');
-        $field = new TextareaFormField($node);
-
-        $this->assertEquals('foo bar', $field->getValue(), '->initialize() sets the value of the field to the textarea node value');
-
-        $node = $this->createNode('input', '');
-        try {
-            $field = new TextareaFormField($node);
-            $this->fail('->initialize() throws a \LogicException if the node is not a textarea');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '->initialize() throws a \LogicException if the node is not a textarea');
-        }
-
-        // Ensure that valid HTML can be used on a textarea.
-        $node = $this->createNode('textarea', 'foo bar <h1>Baz</h1>');
-        $field = new TextareaFormField($node);
-
-        $this->assertEquals('foo bar <h1>Baz</h1>', $field->getValue(), '->initialize() sets the value of the field to the textarea node value');
-
-        // Ensure that we don't do any DOM manipulation/validation by passing in
-        // "invalid" HTML.
-        $node = $this->createNode('textarea', 'foo bar <h1>Baz</h2>');
-        $field = new TextareaFormField($node);
-
-        $this->assertEquals('foo bar <h1>Baz</h2>', $field->getValue(), '->initialize() sets the value of the field to the textarea node value');
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/Fixtures/no-extension b/core/vendor/symfony/dom-crawler/Tests/Fixtures/no-extension
deleted file mode 100644
index 345e6ae..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Fixtures/no-extension
+++ /dev/null
@@ -1 +0,0 @@
-Test
diff --git a/core/vendor/symfony/dom-crawler/Tests/Fixtures/windows-1250.html b/core/vendor/symfony/dom-crawler/Tests/Fixtures/windows-1250.html
deleted file mode 100644
index c26dc77..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/Fixtures/windows-1250.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-    <head>
-        <meta http-equiv="content-type" content="text/html;charset=windows-1250">
-    </head>
-    <body>
-        <p></p>
-    </body>
-</html>
diff --git a/core/vendor/symfony/dom-crawler/Tests/FormTest.php b/core/vendor/symfony/dom-crawler/Tests/FormTest.php
deleted file mode 100644
index 59c3c76..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/FormTest.php
+++ /dev/null
@@ -1,973 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests;
-
-use Symfony\Component\DomCrawler\Form;
-use Symfony\Component\DomCrawler\FormFieldRegistry;
-use Symfony\Component\DomCrawler\Field;
-
-class FormTest extends \PHPUnit_Framework_TestCase
-{
-    public static function setUpBeforeClass()
-    {
-        // Ensure that the private helper class FormFieldRegistry is loaded
-        class_exists('Symfony\\Component\\DomCrawler\\Form');
-    }
-
-    public function testConstructorThrowsExceptionIfTheNodeHasNoFormAncestor()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-            <html>
-                <input type="submit" />
-                <form>
-                    <input type="foo" />
-                </form>
-                <button />
-            </html>
-        ');
-
-        $nodes = $dom->getElementsByTagName('input');
-
-        try {
-            $form = new Form($nodes->item(0), 'http://example.com');
-            $this->fail('__construct() throws a \\LogicException if the node has no form ancestor');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '__construct() throws a \\LogicException if the node has no form ancestor');
-        }
-
-        try {
-            $form = new Form($nodes->item(1), 'http://example.com');
-            $this->fail('__construct() throws a \\LogicException if the input type is not submit, button, or image');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '__construct() throws a \\LogicException if the input type is not submit, button, or image');
-        }
-
-        $nodes = $dom->getElementsByTagName('button');
-
-        try {
-            $form = new Form($nodes->item(0), 'http://example.com');
-            $this->fail('__construct() throws a \\LogicException if the node has no form ancestor');
-        } catch (\LogicException $e) {
-            $this->assertTrue(true, '__construct() throws a \\LogicException if the node has no form ancestor');
-        }
-    }
-
-    /**
-     * __construct() should throw \\LogicException if the form attribute is invalid.
-     *
-     * @expectedException \LogicException
-     */
-    public function testConstructorThrowsExceptionIfNoRelatedForm()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-            <html>
-                <form id="bar">
-                    <input type="submit" form="nonexistent" />
-                </form>
-                <input type="text" form="nonexistent" />
-                <button />
-            </html>
-        ');
-
-        $nodes = $dom->getElementsByTagName('input');
-
-        $form = new Form($nodes->item(0), 'http://example.com');
-        $form = new Form($nodes->item(1), 'http://example.com');
-    }
-
-    public function testConstructorLoadsOnlyFieldsOfTheRightForm()
-    {
-        $dom = $this->createTestMultipleForm();
-
-        $nodes = $dom->getElementsByTagName('form');
-        $buttonElements = $dom->getElementsByTagName('button');
-
-        $form = new Form($nodes->item(0), 'http://example.com');
-        $this->assertCount(3, $form->all());
-
-        $form = new Form($buttonElements->item(1), 'http://example.com');
-        $this->assertCount(5, $form->all());
-    }
-
-    public function testConstructorHandlesFormAttribute()
-    {
-        $dom = $this->createTestHtml5Form();
-
-        $inputElements = $dom->getElementsByTagName('input');
-        $buttonElements = $dom->getElementsByTagName('button');
-
-        // Tests if submit buttons are correctly assigned to forms
-        $form1 = new Form($buttonElements->item(1), 'http://example.com');
-        $this->assertSame($dom->getElementsByTagName('form')->item(0), $form1->getFormNode(), 'HTML5-compliant form attribute handled incorrectly');
-
-        $form1 = new Form($inputElements->item(3), 'http://example.com');
-        $this->assertSame($dom->getElementsByTagName('form')->item(0), $form1->getFormNode(), 'HTML5-compliant form attribute handled incorrectly');
-
-        $form2 = new Form($buttonElements->item(0), 'http://example.com');
-        $this->assertSame($dom->getElementsByTagName('form')->item(1), $form2->getFormNode(), 'HTML5-compliant form attribute handled incorrectly');
-    }
-
-    public function testConstructorHandlesFormValues()
-    {
-        $dom = $this->createTestHtml5Form();
-
-        $inputElements = $dom->getElementsByTagName('input');
-        $buttonElements = $dom->getElementsByTagName('button');
-
-        $form1 = new Form($inputElements->item(3), 'http://example.com');
-        $form2 = new Form($buttonElements->item(0), 'http://example.com');
-
-        // Tests if form values are correctly assigned to forms
-        $values1 = array(
-            'apples' => array('1', '2'),
-            'form_name' => 'form-1',
-            'button_1' => 'Capture fields',
-            'outer_field' => 'success',
-        );
-        $values2 = array(
-            'oranges' => array('1', '2', '3'),
-            'form_name' => 'form_2',
-            'button_2' => '',
-            'app_frontend_form_type_contact_form_type' => array('contactType' => '', 'firstName' => 'John'),
-        );
-
-        $this->assertEquals($values1, $form1->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly');
-        $this->assertEquals($values2, $form2->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly');
-    }
-
-    public function testMultiValuedFields()
-    {
-        $form = $this->createForm('<form>
-            <input type="text" name="foo[4]" value="foo" disabled="disabled" />
-            <input type="text" name="foo" value="foo" disabled="disabled" />
-            <input type="text" name="foo[2]" value="foo" disabled="disabled" />
-            <input type="text" name="foo[]" value="foo" disabled="disabled" />
-            <input type="text" name="bar[foo][]" value="foo" disabled="disabled" />
-            <input type="text" name="bar[foo][foobar]" value="foo" disabled="disabled" />
-            <input type="submit" />
-        </form>
-        ');
-
-        $this->assertEquals(
-            array_keys($form->all()),
-            array('foo[2]', 'foo[3]', 'bar[foo][0]', 'bar[foo][foobar]')
-        );
-
-        $this->assertEquals($form->get('foo[2]')->getValue(), 'foo');
-        $this->assertEquals($form->get('foo[3]')->getValue(), 'foo');
-        $this->assertEquals($form->get('bar[foo][0]')->getValue(), 'foo');
-        $this->assertEquals($form->get('bar[foo][foobar]')->getValue(), 'foo');
-
-        $form['foo[2]'] = 'bar';
-        $form['foo[3]'] = 'bar';
-
-        $this->assertEquals($form->get('foo[2]')->getValue(), 'bar');
-        $this->assertEquals($form->get('foo[3]')->getValue(), 'bar');
-
-        $form['bar'] = array('foo' => array('0' => 'bar', 'foobar' => 'foobar'));
-
-        $this->assertEquals($form->get('bar[foo][0]')->getValue(), 'bar');
-        $this->assertEquals($form->get('bar[foo][foobar]')->getValue(), 'foobar');
-    }
-
-    /**
-     * @dataProvider provideInitializeValues
-     */
-    public function testConstructor($message, $form, $values)
-    {
-        $form = $this->createForm('<form>'.$form.'</form>');
-        $this->assertEquals(
-            $values,
-            array_map(function ($field) {
-                    $class = get_class($field);
-
-                    return array(substr($class, strrpos($class, '\\') + 1), $field->getValue());
-                },
-                $form->all()
-            ),
-            '->getDefaultValues() '.$message
-        );
-    }
-
-    public function provideInitializeValues()
-    {
-        return array(
-            array(
-                'does not take into account input fields without a name attribute',
-                '<input type="text" value="foo" />
-                 <input type="submit" />',
-                array(),
-            ),
-            array(
-                'does not take into account input fields with an empty name attribute value',
-                '<input type="text" name="" value="foo" />
-                 <input type="submit" />',
-                array(),
-            ),
-            array(
-                'takes into account disabled input fields',
-                '<input type="text" name="foo" value="foo" disabled="disabled" />
-                 <input type="submit" />',
-                array('foo' => array('InputFormField', 'foo')),
-            ),
-            array(
-                'appends the submitted button value',
-                '<input type="submit" name="bar" value="bar" />',
-                array('bar' => array('InputFormField', 'bar')),
-            ),
-            array(
-                'appends the submitted button value for Button element',
-                '<button type="submit" name="bar" value="bar">Bar</button>',
-                array('bar' => array('InputFormField', 'bar')),
-            ),
-            array(
-                'appends the submitted button value but not other submit buttons',
-                '<input type="submit" name="bar" value="bar" />
-                 <input type="submit" name="foobar" value="foobar" />',
-                 array('foobar' => array('InputFormField', 'foobar')),
-            ),
-            array(
-                'turns an image input into x and y fields',
-                '<input type="image" name="bar" />',
-                array('bar.x' => array('InputFormField', '0'), 'bar.y' => array('InputFormField', '0')),
-            ),
-            array(
-                'returns textareas',
-                '<textarea name="foo">foo</textarea>
-                 <input type="submit" />',
-                 array('foo' => array('TextareaFormField', 'foo')),
-            ),
-            array(
-                'returns inputs',
-                '<input type="text" name="foo" value="foo" />
-                 <input type="submit" />',
-                 array('foo' => array('InputFormField', 'foo')),
-            ),
-            array(
-                'returns checkboxes',
-                '<input type="checkbox" name="foo" value="foo" checked="checked" />
-                 <input type="submit" />',
-                 array('foo' => array('ChoiceFormField', 'foo')),
-            ),
-            array(
-                'returns not-checked checkboxes',
-                '<input type="checkbox" name="foo" value="foo" />
-                 <input type="submit" />',
-                 array('foo' => array('ChoiceFormField', false)),
-            ),
-            array(
-                'returns radio buttons',
-                '<input type="radio" name="foo" value="foo" />
-                 <input type="radio" name="foo" value="bar" checked="bar" />
-                 <input type="submit" />',
-                 array('foo' => array('ChoiceFormField', 'bar')),
-            ),
-            array(
-                'returns file inputs',
-                '<input type="file" name="foo" />
-                 <input type="submit" />',
-                 array('foo' => array('FileFormField', array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0))),
-            ),
-        );
-    }
-
-    public function testGetFormNode()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html><form><input type="submit" /></form></html>');
-
-        $form = new Form($dom->getElementsByTagName('input')->item(0), 'http://example.com');
-
-        $this->assertSame($dom->getElementsByTagName('form')->item(0), $form->getFormNode(), '->getFormNode() returns the form node associated with this form');
-    }
-
-    public function testGetFormNodeFromNamedForm()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html><form name="my_form"><input type="submit" /></form></html>');
-
-        $form = new Form($dom->getElementsByTagName('form')->item(0), 'http://example.com');
-
-        $this->assertSame($dom->getElementsByTagName('form')->item(0), $form->getFormNode(), '->getFormNode() returns the form node associated with this form');
-    }
-
-    public function testGetMethod()
-    {
-        $form = $this->createForm('<form><input type="submit" /></form>');
-        $this->assertEquals('GET', $form->getMethod(), '->getMethod() returns get if no method is defined');
-
-        $form = $this->createForm('<form method="post"><input type="submit" /></form>');
-        $this->assertEquals('POST', $form->getMethod(), '->getMethod() returns the method attribute value of the form');
-
-        $form = $this->createForm('<form method="post"><input type="submit" /></form>', 'put');
-        $this->assertEquals('PUT', $form->getMethod(), '->getMethod() returns the method defined in the constructor if provided');
-
-        $form = $this->createForm('<form method="post"><input type="submit" /></form>', 'delete');
-        $this->assertEquals('DELETE', $form->getMethod(), '->getMethod() returns the method defined in the constructor if provided');
-
-        $form = $this->createForm('<form method="post"><input type="submit" /></form>', 'patch');
-        $this->assertEquals('PATCH', $form->getMethod(), '->getMethod() returns the method defined in the constructor if provided');
-    }
-
-    public function testGetSetValue()
-    {
-        $form = $this->createForm('<form><input type="text" name="foo" value="foo" /><input type="submit" /></form>');
-
-        $this->assertEquals('foo', $form['foo']->getValue(), '->offsetGet() returns the value of a form field');
-
-        $form['foo'] = 'bar';
-
-        $this->assertEquals('bar', $form['foo']->getValue(), '->offsetSet() changes the value of a form field');
-
-        try {
-            $form['foobar'] = 'bar';
-            $this->fail('->offsetSet() throws an \InvalidArgumentException exception if the field does not exist');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->offsetSet() throws an \InvalidArgumentException exception if the field does not exist');
-        }
-
-        try {
-            $form['foobar'];
-            $this->fail('->offsetSet() throws an \InvalidArgumentException exception if the field does not exist');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->offsetSet() throws an \InvalidArgumentException exception if the field does not exist');
-        }
-    }
-
-    public function testSetValueOnMultiValuedFieldsWithMalformedName()
-    {
-        $form = $this->createForm('<form><input type="text" name="foo[bar]" value="bar" /><input type="text" name="foo[baz]" value="baz" /><input type="submit" /></form>');
-
-        try {
-            $form['foo[bar'] = 'bar';
-            $this->fail('->offsetSet() throws an \InvalidArgumentException exception if the name is malformed.');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->offsetSet() throws an \InvalidArgumentException exception if the name is malformed.');
-        }
-    }
-
-    public function testDisableValidation()
-    {
-        $form = $this->createForm('<form>
-            <select name="foo[bar]">
-                <option value="bar">bar</option>
-            </select>
-            <select name="foo[baz]">
-                <option value="foo">foo</option>
-            </select>
-            <input type="submit" />
-        </form>');
-
-        $form->disableValidation();
-
-        $form['foo[bar]']->select('foo');
-        $form['foo[baz]']->select('bar');
-        $this->assertEquals('foo', $form['foo[bar]']->getValue(), '->disableValidation() disables validation of all ChoiceFormField.');
-        $this->assertEquals('bar', $form['foo[baz]']->getValue(), '->disableValidation() disables validation of all ChoiceFormField.');
-    }
-
-    public function testOffsetUnset()
-    {
-        $form = $this->createForm('<form><input type="text" name="foo" value="foo" /><input type="submit" /></form>');
-        unset($form['foo']);
-        $this->assertFalse(isset($form['foo']), '->offsetUnset() removes a field');
-    }
-
-    public function testOffsetExists()
-    {
-        $form = $this->createForm('<form><input type="text" name="foo" value="foo" /><input type="submit" /></form>');
-
-        $this->assertTrue(isset($form['foo']), '->offsetExists() return true if the field exists');
-        $this->assertFalse(isset($form['bar']), '->offsetExists() return false if the field does not exist');
-    }
-
-    public function testGetValues()
-    {
-        $form = $this->createForm('<form><input type="text" name="foo[bar]" value="foo" /><input type="text" name="bar" value="bar" /><select multiple="multiple" name="baz[]"></select><input type="submit" /></form>');
-        $this->assertEquals(array('foo[bar]' => 'foo', 'bar' => 'bar', 'baz' => array()), $form->getValues(), '->getValues() returns all form field values');
-
-        $form = $this->createForm('<form><input type="checkbox" name="foo" value="foo" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('bar' => 'bar'), $form->getValues(), '->getValues() does not include not-checked checkboxes');
-
-        $form = $this->createForm('<form><input type="file" name="foo" value="foo" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('bar' => 'bar'), $form->getValues(), '->getValues() does not include file input fields');
-
-        $form = $this->createForm('<form><input type="text" name="foo" value="foo" disabled="disabled" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('bar' => 'bar'), $form->getValues(), '->getValues() does not include disabled fields');
-    }
-
-    public function testSetValues()
-    {
-        $form = $this->createForm('<form><input type="checkbox" name="foo" value="foo" checked="checked" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $form->setValues(array('foo' => false, 'bar' => 'foo'));
-        $this->assertEquals(array('bar' => 'foo'), $form->getValues(), '->setValues() sets the values of fields');
-    }
-
-    public function testMultiselectSetValues()
-    {
-        $form = $this->createForm('<form><select multiple="multiple" name="multi"><option value="foo">foo</option><option value="bar">bar</option></select><input type="submit" /></form>');
-        $form->setValues(array('multi' => array('foo', 'bar')));
-        $this->assertEquals(array('multi' => array('foo', 'bar')), $form->getValues(), '->setValue() sets the values of select');
-    }
-
-    public function testGetPhpValues()
-    {
-        $form = $this->createForm('<form><input type="text" name="foo[bar]" value="foo" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('foo' => array('bar' => 'foo'), 'bar' => 'bar'), $form->getPhpValues(), '->getPhpValues() converts keys with [] to arrays');
-
-        $form = $this->createForm('<form><input type="text" name="fo.o[ba.r]" value="foo" /><input type="text" name="ba r" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('fo.o' => array('ba.r' => 'foo'), 'ba r' => 'bar'), $form->getPhpValues(), '->getPhpValues() preserves periods and spaces in names');
-
-        $form = $this->createForm('<form><input type="text" name="fo.o[ba.r][]" value="foo" /><input type="text" name="fo.o[ba.r][ba.z]" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('fo.o' => array('ba.r' => array('foo', 'ba.z' => 'bar'))), $form->getPhpValues(), '->getPhpValues() preserves periods and spaces in names recursively');
-
-        $form = $this->createForm('<form><input type="text" name="foo[bar]" value="foo" /><input type="text" name="bar" value="bar" /><select multiple="multiple" name="baz[]"></select><input type="submit" /></form>');
-        $this->assertEquals(array('foo' => array('bar' => 'foo'), 'bar' => 'bar'), $form->getPhpValues(), "->getPhpValues() doesn't return empty values");
-    }
-
-    public function testGetFiles()
-    {
-        $form = $this->createForm('<form><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array(), $form->getFiles(), '->getFiles() returns an empty array if method is get');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('foo[bar]' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0)), $form->getFiles(), '->getFiles() only returns file fields for POST');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>', 'put');
-        $this->assertEquals(array('foo[bar]' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0)), $form->getFiles(), '->getFiles() only returns file fields for PUT');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>', 'delete');
-        $this->assertEquals(array('foo[bar]' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0)), $form->getFiles(), '->getFiles() only returns file fields for DELETE');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>', 'patch');
-        $this->assertEquals(array('foo[bar]' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0)), $form->getFiles(), '->getFiles() only returns file fields for PATCH');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" disabled="disabled" /><input type="submit" /></form>');
-        $this->assertEquals(array(), $form->getFiles(), '->getFiles() does not include disabled file fields');
-    }
-
-    public function testGetPhpFiles()
-    {
-        $form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('foo' => array('bar' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0))), $form->getPhpFiles(), '->getPhpFiles() converts keys with [] to arrays');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="f.o o[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('f.o o' => array('bar' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0))), $form->getPhpFiles(), '->getPhpFiles() preserves periods and spaces in names');
-
-        $form = $this->createForm('<form method="post"><input type="file" name="f.o o[bar][ba.z]" /><input type="file" name="f.o o[bar][]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $this->assertEquals(array('f.o o' => array('bar' => array('ba.z' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0), array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0)))), $form->getPhpFiles(), '->getPhpFiles() preserves periods and spaces in names recursively');
-    }
-
-    /**
-     * @dataProvider provideGetUriValues
-     */
-    public function testGetUri($message, $form, $values, $uri, $method = null)
-    {
-        $form = $this->createForm($form, $method);
-        $form->setValues($values);
-
-        $this->assertEquals('http://example.com'.$uri, $form->getUri(), '->getUri() '.$message);
-    }
-
-    public function testGetBaseUri()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<form method="post" action="foo.php"><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-
-        $nodes = $dom->getElementsByTagName('input');
-        $form = new Form($nodes->item($nodes->length - 1), 'http://www.foo.com/');
-        $this->assertEquals('http://www.foo.com/foo.php', $form->getUri());
-    }
-
-    public function testGetUriWithAnchor()
-    {
-        $form = $this->createForm('<form action="#foo"><input type="submit" /></form>', null, 'http://example.com/id/123');
-
-        $this->assertEquals('http://example.com/id/123#foo', $form->getUri());
-    }
-
-    public function testGetUriActionAbsolute()
-    {
-        $formHtml = '<form id="login_form" action="https://login.foo.com/login.php?login_attempt=1" method="POST"><input type="text" name="foo" value="foo" /><input type="submit" /></form>';
-
-        $form = $this->createForm($formHtml);
-        $this->assertEquals('https://login.foo.com/login.php?login_attempt=1', $form->getUri(), '->getUri() returns absolute URIs set in the action form');
-
-        $form = $this->createForm($formHtml, null, 'https://login.foo.com');
-        $this->assertEquals('https://login.foo.com/login.php?login_attempt=1', $form->getUri(), '->getUri() returns absolute URIs set in the action form');
-
-        $form = $this->createForm($formHtml, null, 'https://login.foo.com/bar/');
-        $this->assertEquals('https://login.foo.com/login.php?login_attempt=1', $form->getUri(), '->getUri() returns absolute URIs set in the action form');
-
-        // The action URI haven't the same domain Host have an another domain as Host
-        $form = $this->createForm($formHtml, null, 'https://www.foo.com');
-        $this->assertEquals('https://login.foo.com/login.php?login_attempt=1', $form->getUri(), '->getUri() returns absolute URIs set in the action form');
-
-        $form = $this->createForm($formHtml, null, 'https://www.foo.com/bar/');
-        $this->assertEquals('https://login.foo.com/login.php?login_attempt=1', $form->getUri(), '->getUri() returns absolute URIs set in the action form');
-    }
-
-    public function testGetUriAbsolute()
-    {
-        $form = $this->createForm('<form action="foo"><input type="submit" /></form>', null, 'http://localhost/foo/');
-        $this->assertEquals('http://localhost/foo/foo', $form->getUri(), '->getUri() returns absolute URIs');
-
-        $form = $this->createForm('<form action="/foo"><input type="submit" /></form>', null, 'http://localhost/foo/');
-        $this->assertEquals('http://localhost/foo', $form->getUri(), '->getUri() returns absolute URIs');
-    }
-
-    public function testGetUriWithOnlyQueryString()
-    {
-        $form = $this->createForm('<form action="?get=param"><input type="submit" /></form>', null, 'http://localhost/foo/bar');
-        $this->assertEquals('http://localhost/foo/bar?get=param', $form->getUri(), '->getUri() returns absolute URIs only if the host has been defined in the constructor');
-    }
-
-    public function testGetUriWithoutAction()
-    {
-        $form = $this->createForm('<form><input type="submit" /></form>', null, 'http://localhost/foo/bar');
-        $this->assertEquals('http://localhost/foo/bar', $form->getUri(), '->getUri() returns path if no action defined');
-    }
-
-    public function provideGetUriValues()
-    {
-        return array(
-            array(
-                'returns the URI of the form',
-                '<form action="/foo"><input type="submit" /></form>',
-                array(),
-                '/foo',
-            ),
-            array(
-                'appends the form values if the method is get',
-                '<form action="/foo"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo?foo=foo',
-            ),
-            array(
-                'appends the form values and merges the submitted values',
-                '<form action="/foo"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array('foo' => 'bar'),
-                '/foo?foo=bar',
-            ),
-            array(
-                'does not append values if the method is post',
-                '<form action="/foo" method="post"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo',
-            ),
-            array(
-                'does not append values if the method is patch',
-                '<form action="/foo" method="post"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo',
-                'PUT',
-            ),
-            array(
-                'does not append values if the method is delete',
-                '<form action="/foo" method="post"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo',
-                'DELETE',
-            ),
-            array(
-                'does not append values if the method is put',
-                '<form action="/foo" method="post"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo',
-                'PATCH',
-            ),
-            array(
-                'appends the form values to an existing query string',
-                '<form action="/foo?bar=bar"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo?bar=bar&foo=foo',
-            ),
-            array(
-                'replaces query values with the form values',
-                '<form action="/foo?bar=bar"><input type="text" name="bar" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/foo?bar=foo',
-            ),
-            array(
-                'returns an empty URI if the action is empty',
-                '<form><input type="submit" /></form>',
-                array(),
-                '/',
-            ),
-            array(
-                'appends the form values even if the action is empty',
-                '<form><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/?foo=foo',
-            ),
-            array(
-                'chooses the path if the action attribute value is a sharp (#)',
-                '<form action="#" method="post"><input type="text" name="foo" value="foo" /><input type="submit" /></form>',
-                array(),
-                '/#',
-            ),
-        );
-    }
-
-    public function testHas()
-    {
-        $form = $this->createForm('<form method="post"><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-
-        $this->assertFalse($form->has('foo'), '->has() returns false if a field is not in the form');
-        $this->assertTrue($form->has('bar'), '->has() returns true if a field is in the form');
-    }
-
-    public function testRemove()
-    {
-        $form = $this->createForm('<form method="post"><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-        $form->remove('bar');
-        $this->assertFalse($form->has('bar'), '->remove() removes a field');
-    }
-
-    public function testGet()
-    {
-        $form = $this->createForm('<form method="post"><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Field\\InputFormField', $form->get('bar'), '->get() returns the field object associated with the given name');
-
-        try {
-            $form->get('foo');
-            $this->fail('->get() throws an \InvalidArgumentException if the field does not exist');
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue(true, '->get() throws an \InvalidArgumentException if the field does not exist');
-        }
-    }
-
-    public function testAll()
-    {
-        $form = $this->createForm('<form method="post"><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
-
-        $fields = $form->all();
-        $this->assertCount(1, $fields, '->all() return an array of form field objects');
-        $this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Field\\InputFormField', $fields['bar'], '->all() return an array of form field objects');
-    }
-
-    public function testSubmitWithoutAFormButton()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-            <html>
-                <form>
-                    <input type="foo" />
-                </form>
-            </html>
-        ');
-
-        $nodes = $dom->getElementsByTagName('form');
-        $form = new Form($nodes->item(0), 'http://example.com');
-        $this->assertSame($nodes->item(0), $form->getFormNode(), '->getFormNode() returns the form node associated with this form');
-    }
-
-    public function testTypeAttributeIsCaseInsensitive()
-    {
-        $form = $this->createForm('<form method="post"><input type="IMAGE" name="example" /></form>');
-        $this->assertTrue($form->has('example.x'), '->has() returns true if the image input was correctly turned into an x and a y fields');
-        $this->assertTrue($form->has('example.y'), '->has() returns true if the image input was correctly turned into an x and a y fields');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFormFieldRegistryAddThrowAnExceptionWhenTheNameIsMalformed()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($this->getFormFieldMock('[foo]'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFormFieldRegistryRemoveThrowAnExceptionWhenTheNameIsMalformed()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->remove('[foo]');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFormFieldRegistryGetThrowAnExceptionWhenTheNameIsMalformed()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->get('[foo]');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFormFieldRegistryGetThrowAnExceptionWhenTheFieldDoesNotExist()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->get('foo');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFormFieldRegistrySetThrowAnExceptionWhenTheNameIsMalformed()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->set('[foo]', null);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFormFieldRegistrySetThrowAnExceptionWhenTheFieldDoesNotExist()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->set('foo', null);
-    }
-
-    public function testFormFieldRegistryHasReturnsTrueWhenTheFQNExists()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($this->getFormFieldMock('foo[bar]'));
-
-        $this->assertTrue($registry->has('foo'));
-        $this->assertTrue($registry->has('foo[bar]'));
-        $this->assertFalse($registry->has('bar'));
-        $this->assertFalse($registry->has('foo[foo]'));
-    }
-
-    public function testFormRegistryFieldsCanBeRemoved()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($this->getFormFieldMock('foo'));
-        $registry->remove('foo');
-        $this->assertFalse($registry->has('foo'));
-    }
-
-    public function testFormRegistrySupportsMultivaluedFields()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($this->getFormFieldMock('foo[]'));
-        $registry->add($this->getFormFieldMock('foo[]'));
-        $registry->add($this->getFormFieldMock('bar[5]'));
-        $registry->add($this->getFormFieldMock('bar[]'));
-        $registry->add($this->getFormFieldMock('bar[baz]'));
-
-        $this->assertEquals(
-            array('foo[0]', 'foo[1]', 'bar[5]', 'bar[6]', 'bar[baz]'),
-            array_keys($registry->all())
-        );
-    }
-
-    public function testFormRegistrySetValues()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($f2 = $this->getFormFieldMock('foo[2]'));
-        $registry->add($f3 = $this->getFormFieldMock('foo[3]'));
-        $registry->add($fbb = $this->getFormFieldMock('foo[bar][baz]'));
-
-        $f2
-            ->expects($this->exactly(2))
-            ->method('setValue')
-            ->with(2)
-        ;
-
-        $f3
-            ->expects($this->exactly(2))
-            ->method('setValue')
-            ->with(3)
-        ;
-
-        $fbb
-            ->expects($this->exactly(2))
-            ->method('setValue')
-            ->with('fbb')
-        ;
-
-        $registry->set('foo[2]', 2);
-        $registry->set('foo[3]', 3);
-        $registry->set('foo[bar][baz]', 'fbb');
-
-        $registry->set('foo', array(
-            2 => 2,
-            3 => 3,
-            'bar' => array(
-                'baz' => 'fbb',
-             ),
-        ));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Cannot set value on a compound field "foo[bar]".
-     */
-    public function testFormRegistrySetValueOnCompoundField()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($this->getFormFieldMock('foo[bar][baz]'));
-
-        $registry->set('foo[bar]', 'fbb');
-    }
-
-    /**
-     * @expectedException InvalidArgumentException
-     * @expectedExceptionMessage Unreachable field "0"
-     */
-    public function testFormRegistrySetArrayOnNotCompoundField()
-    {
-        $registry = new FormFieldRegistry();
-        $registry->add($this->getFormFieldMock('bar'));
-
-        $registry->set('bar', array('baz'));
-    }
-
-    public function testDifferentFieldTypesWithSameName()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-            <html>
-                <body>
-                    <form action="/">
-                        <input type="hidden" name="option" value="default">
-                        <input type="radio" name="option" value="A">
-                        <input type="radio" name="option" value="B">
-                        <input type="hidden" name="settings[1]" value="0">
-                        <input type="checkbox" name="settings[1]" value="1" id="setting-1">
-                        <button>klickme</button>
-                    </form>
-                </body>
-            </html>
-        ');
-        $form = new Form($dom->getElementsByTagName('form')->item(0), 'http://example.com');
-
-        $this->assertInstanceOf('Symfony\Component\DomCrawler\Field\ChoiceFormField', $form->get('option'));
-    }
-
-    protected function getFormFieldMock($name, $value = null)
-    {
-        $field = $this
-            ->getMockBuilder('Symfony\\Component\\DomCrawler\\Field\\FormField')
-            ->setMethods(array('getName', 'getValue', 'setValue', 'initialize'))
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        $field
-            ->expects($this->any())
-            ->method('getName')
-            ->will($this->returnValue($name))
-        ;
-
-        $field
-            ->expects($this->any())
-            ->method('getValue')
-            ->will($this->returnValue($value))
-        ;
-
-        return $field;
-    }
-
-    protected function createForm($form, $method = null, $currentUri = null)
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html>'.$form.'</html>');
-
-        $xPath = new \DOMXPath($dom);
-        $nodes = $xPath->query('//input | //button');
-
-        if (null === $currentUri) {
-            $currentUri = 'http://example.com/';
-        }
-
-        return new Form($nodes->item($nodes->length - 1), $currentUri, $method);
-    }
-
-    protected function createTestHtml5Form()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-        <html>
-            <h1>Hello form</h1>
-            <form id="form-1" action="" method="POST">
-                <div><input type="checkbox" name="apples[]" value="1" checked /></div>
-                <input form="form_2" type="checkbox" name="oranges[]" value="1" checked />
-                <div><label></label><input form="form-1" type="hidden" name="form_name" value="form-1" /></div>
-                <input form="form-1" type="submit" name="button_1" value="Capture fields" />
-                <button form="form_2" type="submit" name="button_2">Submit form_2</button>
-            </form>
-            <input form="form-1" type="checkbox" name="apples[]" value="2" checked />
-            <form id="form_2" action="" method="POST">
-                <div><div><input type="checkbox" name="oranges[]" value="2" checked />
-                <input type="checkbox" name="oranges[]" value="3" checked /></div></div>
-                <input form="form_2" type="hidden" name="form_name" value="form_2" />
-                <input form="form-1" type="hidden" name="outer_field" value="success" />
-                <button form="form-1" type="submit" name="button_3">Submit from outside the form</button>
-                <div>
-                    <label for="app_frontend_form_type_contact_form_type_contactType">Message subject</label>
-                    <div>
-                        <select name="app_frontend_form_type_contact_form_type[contactType]" id="app_frontend_form_type_contact_form_type_contactType"><option selected="selected" value="">Please select subject</option><option id="1">Test type</option></select>
-                    </div>
-                </div>
-                <div>
-                    <label for="app_frontend_form_type_contact_form_type_firstName">Firstname</label>
-                    <input type="text" name="app_frontend_form_type_contact_form_type[firstName]" value="John" id="app_frontend_form_type_contact_form_type_firstName"/>
-                </div>
-            </form>
-            <button />
-        </html>');
-
-        return $dom;
-    }
-
-    protected function createTestMultipleForm()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-        <html>
-            <h1>Hello form</h1>
-            <form action="" method="POST">
-                <div><input type="checkbox" name="apples[]" value="1" checked /></div>
-                <input type="checkbox" name="oranges[]" value="1" checked />
-                <div><label></label><input type="hidden" name="form_name" value="form-1" /></div>
-                <input type="submit" name="button_1" value="Capture fields" />
-                <button type="submit" name="button_2">Submit form_2</button>
-            </form>
-            <form action="" method="POST">
-                <div><div><input type="checkbox" name="oranges[]" value="2" checked />
-                <input type="checkbox" name="oranges[]" value="3" checked /></div></div>
-                <input type="hidden" name="form_name" value="form_2" />
-                <input type="hidden" name="outer_field" value="success" />
-                <button type="submit" name="button_3">Submit from outside the form</button>
-            </form>
-            <button />
-        </html>');
-
-        return $dom;
-    }
-
-    public function testgetPhpValuesWithEmptyTextarea()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('
-              <html>
-                  <form>
-                      <textarea name="example"></textarea>
-                  </form>
-              </html>
-          ');
-
-        $nodes = $dom->getElementsByTagName('form');
-        $form = new Form($nodes->item(0), 'http://example.com');
-        $this->assertEquals($form->getPhpValues(), array('example' => ''));
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/Tests/LinkTest.php b/core/vendor/symfony/dom-crawler/Tests/LinkTest.php
deleted file mode 100644
index 98a45a3..0000000
--- a/core/vendor/symfony/dom-crawler/Tests/LinkTest.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DomCrawler\Tests;
-
-use Symfony\Component\DomCrawler\Link;
-
-class LinkTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \LogicException
-     */
-    public function testConstructorWithANonATag()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html><div><div></html>');
-
-        new Link($dom->getElementsByTagName('div')->item(0), 'http://www.example.com/');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructorWithAnInvalidCurrentUri()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html><a href="/foo">foo</a></html>');
-
-        new Link($dom->getElementsByTagName('a')->item(0), 'example.com');
-    }
-
-    public function testGetNode()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html><a href="/foo">foo</a></html>');
-
-        $node = $dom->getElementsByTagName('a')->item(0);
-        $link = new Link($node, 'http://example.com/');
-
-        $this->assertEquals($node, $link->getNode(), '->getNode() returns the node associated with the link');
-    }
-
-    public function testGetMethod()
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML('<html><a href="/foo">foo</a></html>');
-
-        $node = $dom->getElementsByTagName('a')->item(0);
-        $link = new Link($node, 'http://example.com/');
-
-        $this->assertEquals('GET', $link->getMethod(), '->getMethod() returns the method of the link');
-
-        $link = new Link($node, 'http://example.com/', 'post');
-        $this->assertEquals('POST', $link->getMethod(), '->getMethod() returns the method of the link');
-    }
-
-    /**
-     * @dataProvider getGetUriTests
-     */
-    public function testGetUri($url, $currentUri, $expected)
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><a href="%s">foo</a></html>', $url));
-        $link = new Link($dom->getElementsByTagName('a')->item(0), $currentUri);
-
-        $this->assertEquals($expected, $link->getUri());
-    }
-
-    /**
-     * @dataProvider getGetUriTests
-     */
-    public function testGetUriOnArea($url, $currentUri, $expected)
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><map><area href="%s" /></map></html>', $url));
-        $link = new Link($dom->getElementsByTagName('area')->item(0), $currentUri);
-
-        $this->assertEquals($expected, $link->getUri());
-    }
-
-    /**
-     * @dataProvider getGetUriTests
-     */
-    public function testGetUriOnLink($url, $currentUri, $expected)
-    {
-        $dom = new \DOMDocument();
-        $dom->loadHTML(sprintf('<html><head><link href="%s" /></head></html>', $url));
-        $link = new Link($dom->getElementsByTagName('link')->item(0), $currentUri);
-
-        $this->assertEquals($expected, $link->getUri());
-    }
-
-    public function getGetUriTests()
-    {
-        return array(
-            array('/foo', 'http://localhost/bar/foo/', 'http://localhost/foo'),
-            array('/foo', 'http://localhost/bar/foo', 'http://localhost/foo'),
-            array('
-            /foo', 'http://localhost/bar/foo/', 'http://localhost/foo'),
-            array('/foo
-            ', 'http://localhost/bar/foo', 'http://localhost/foo'),
-
-            array('foo', 'http://localhost/bar/foo/', 'http://localhost/bar/foo/foo'),
-            array('foo', 'http://localhost/bar/foo', 'http://localhost/bar/foo'),
-
-            array('', 'http://localhost/bar/', 'http://localhost/bar/'),
-            array('#', 'http://localhost/bar/', 'http://localhost/bar/#'),
-            array('#bar', 'http://localhost/bar?a=b', 'http://localhost/bar?a=b#bar'),
-            array('#bar', 'http://localhost/bar/#foo', 'http://localhost/bar/#bar'),
-            array('?a=b', 'http://localhost/bar#foo', 'http://localhost/bar?a=b'),
-            array('?a=b', 'http://localhost/bar/', 'http://localhost/bar/?a=b'),
-
-            array('http://login.foo.com/foo', 'http://localhost/bar/', 'http://login.foo.com/foo'),
-            array('https://login.foo.com/foo', 'https://localhost/bar/', 'https://login.foo.com/foo'),
-            array('mailto:foo@bar.com', 'http://localhost/foo', 'mailto:foo@bar.com'),
-
-            // tests schema relative URL (issue #7169)
-            array('//login.foo.com/foo', 'http://localhost/bar/', 'http://login.foo.com/foo'),
-            array('//login.foo.com/foo', 'https://localhost/bar/', 'https://login.foo.com/foo'),
-
-            array('?foo=2', 'http://localhost?foo=1', 'http://localhost?foo=2'),
-            array('?foo=2', 'http://localhost/?foo=1', 'http://localhost/?foo=2'),
-            array('?foo=2', 'http://localhost/bar?foo=1', 'http://localhost/bar?foo=2'),
-            array('?foo=2', 'http://localhost/bar/?foo=1', 'http://localhost/bar/?foo=2'),
-            array('?bar=2', 'http://localhost?foo=1', 'http://localhost?bar=2'),
-
-            array('foo', 'http://login.foo.com/bar/baz?/query/string', 'http://login.foo.com/bar/foo'),
-
-            array('.', 'http://localhost/foo/bar/baz', 'http://localhost/foo/bar/'),
-            array('./', 'http://localhost/foo/bar/baz', 'http://localhost/foo/bar/'),
-            array('./foo', 'http://localhost/foo/bar/baz', 'http://localhost/foo/bar/foo'),
-            array('..', 'http://localhost/foo/bar/baz', 'http://localhost/foo/'),
-            array('../', 'http://localhost/foo/bar/baz', 'http://localhost/foo/'),
-            array('../foo', 'http://localhost/foo/bar/baz', 'http://localhost/foo/foo'),
-            array('../..', 'http://localhost/foo/bar/baz', 'http://localhost/'),
-            array('../../', 'http://localhost/foo/bar/baz', 'http://localhost/'),
-            array('../../foo', 'http://localhost/foo/bar/baz', 'http://localhost/foo'),
-            array('../../foo', 'http://localhost/bar/foo/', 'http://localhost/foo'),
-            array('../bar/../../foo', 'http://localhost/bar/foo/', 'http://localhost/foo'),
-            array('../bar/./../../foo', 'http://localhost/bar/foo/', 'http://localhost/foo'),
-            array('../../', 'http://localhost/', 'http://localhost/'),
-            array('../../', 'http://localhost', 'http://localhost/'),
-
-            array('/foo', 'http://localhost?bar=1', 'http://localhost/foo'),
-            array('/foo', 'http://localhost#bar', 'http://localhost/foo'),
-            array('/foo', 'file:///', 'file:///foo'),
-            array('/foo', 'file:///bar/baz', 'file:///foo'),
-            array('foo', 'file:///', 'file:///foo'),
-            array('foo', 'file:///bar/baz', 'file:///bar/foo'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/composer.json b/core/vendor/symfony/dom-crawler/composer.json
deleted file mode 100644
index f3dc8c9..0000000
--- a/core/vendor/symfony/dom-crawler/composer.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-    "name": "symfony/dom-crawler",
-    "type": "library",
-    "description": "Symfony DomCrawler Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/css-selector": "~2.3"
-    },
-    "suggest": {
-        "symfony/css-selector": ""
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\DomCrawler\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/dom-crawler/phpunit.xml.dist b/core/vendor/symfony/dom-crawler/phpunit.xml.dist
deleted file mode 100644
index d15dd6a..0000000
--- a/core/vendor/symfony/dom-crawler/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony DomCrawler Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/event-dispatcher/.gitignore b/core/vendor/symfony/event-dispatcher/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/event-dispatcher/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/event-dispatcher/CHANGELOG.md b/core/vendor/symfony/event-dispatcher/CHANGELOG.md
deleted file mode 100644
index bb42ee1..0000000
--- a/core/vendor/symfony/event-dispatcher/CHANGELOG.md
+++ /dev/null
@@ -1,23 +0,0 @@
-CHANGELOG
-=========
-
-2.5.0
------
-
- * added Debug\TraceableEventDispatcher (originally in HttpKernel)
- * changed Debug\TraceableEventDispatcherInterface to extend EventDispatcherInterface
- * added RegisterListenersPass (originally in HttpKernel)
-
-2.1.0
------
-
- * added TraceableEventDispatcherInterface
- * added ContainerAwareEventDispatcher
- * added a reference to the EventDispatcher on the Event
- * added a reference to the Event name on the event
- * added fluid interface to the dispatch() method which now returns the Event
-   object
- * added GenericEvent event class
- * added the possibility for subscribers to subscribe several times for the
-   same event
- * added ImmutableEventDispatcher
diff --git a/core/vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php b/core/vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php
deleted file mode 100644
index 76f0e38..0000000
--- a/core/vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
-/**
- * Lazily loads listeners and subscribers from the dependency injection
- * container.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Jordan Alliot <jordan.alliot@gmail.com>
- */
-class ContainerAwareEventDispatcher extends EventDispatcher
-{
-    /**
-     * The container from where services are loaded.
-     *
-     * @var ContainerInterface
-     */
-    private $container;
-
-    /**
-     * The service IDs of the event listeners and subscribers.
-     *
-     * @var array
-     */
-    private $listenerIds = array();
-
-    /**
-     * The services registered as listeners.
-     *
-     * @var array
-     */
-    private $listeners = array();
-
-    /**
-     * Constructor.
-     *
-     * @param ContainerInterface $container A ContainerInterface instance
-     */
-    public function __construct(ContainerInterface $container)
-    {
-        $this->container = $container;
-    }
-
-    /**
-     * Adds a service as event listener.
-     *
-     * @param string $eventName Event for which the listener is added
-     * @param array  $callback  The service ID of the listener service & the method
-     *                          name that has to be called
-     * @param int    $priority  The higher this value, the earlier an event listener
-     *                          will be triggered in the chain.
-     *                          Defaults to 0.
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function addListenerService($eventName, $callback, $priority = 0)
-    {
-        if (!is_array($callback) || 2 !== count($callback)) {
-            throw new \InvalidArgumentException('Expected an array("service", "method") argument');
-        }
-
-        $this->listenerIds[$eventName][] = array($callback[0], $callback[1], $priority);
-    }
-
-    public function removeListener($eventName, $listener)
-    {
-        $this->lazyLoad($eventName);
-
-        if (isset($this->listenerIds[$eventName])) {
-            foreach ($this->listenerIds[$eventName] as $i => $args) {
-                list($serviceId, $method, $priority) = $args;
-                $key = $serviceId.'.'.$method;
-                if (isset($this->listeners[$eventName][$key]) && $listener === array($this->listeners[$eventName][$key], $method)) {
-                    unset($this->listeners[$eventName][$key]);
-                    if (empty($this->listeners[$eventName])) {
-                        unset($this->listeners[$eventName]);
-                    }
-                    unset($this->listenerIds[$eventName][$i]);
-                    if (empty($this->listenerIds[$eventName])) {
-                        unset($this->listenerIds[$eventName]);
-                    }
-                }
-            }
-        }
-
-        parent::removeListener($eventName, $listener);
-    }
-
-    /**
-     * @see EventDispatcherInterface::hasListeners()
-     */
-    public function hasListeners($eventName = null)
-    {
-        if (null === $eventName) {
-            return (bool) count($this->listenerIds) || (bool) count($this->listeners);
-        }
-
-        if (isset($this->listenerIds[$eventName])) {
-            return true;
-        }
-
-        return parent::hasListeners($eventName);
-    }
-
-    /**
-     * @see EventDispatcherInterface::getListeners()
-     */
-    public function getListeners($eventName = null)
-    {
-        if (null === $eventName) {
-            foreach ($this->listenerIds as $serviceEventName => $args) {
-                $this->lazyLoad($serviceEventName);
-            }
-        } else {
-            $this->lazyLoad($eventName);
-        }
-
-        return parent::getListeners($eventName);
-    }
-
-    /**
-     * Adds a service as event subscriber.
-     *
-     * @param string $serviceId The service ID of the subscriber service
-     * @param string $class     The service's class name (which must implement EventSubscriberInterface)
-     */
-    public function addSubscriberService($serviceId, $class)
-    {
-        foreach ($class::getSubscribedEvents() as $eventName => $params) {
-            if (is_string($params)) {
-                $this->listenerIds[$eventName][] = array($serviceId, $params, 0);
-            } elseif (is_string($params[0])) {
-                $this->listenerIds[$eventName][] = array($serviceId, $params[0], isset($params[1]) ? $params[1] : 0);
-            } else {
-                foreach ($params as $listener) {
-                    $this->listenerIds[$eventName][] = array($serviceId, $listener[0], isset($listener[1]) ? $listener[1] : 0);
-                }
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Lazily loads listeners for this event from the dependency injection
-     * container.
-     *
-     * @throws \InvalidArgumentException if the service is not defined
-     */
-    public function dispatch($eventName, Event $event = null)
-    {
-        $this->lazyLoad($eventName);
-
-        return parent::dispatch($eventName, $event);
-    }
-
-    public function getContainer()
-    {
-        return $this->container;
-    }
-
-    /**
-     * Lazily loads listeners for this event from the dependency injection
-     * container.
-     *
-     * @param string $eventName The name of the event to dispatch. The name of
-     *                          the event is the name of the method that is
-     *                          invoked on listeners.
-     */
-    protected function lazyLoad($eventName)
-    {
-        if (isset($this->listenerIds[$eventName])) {
-            foreach ($this->listenerIds[$eventName] as $args) {
-                list($serviceId, $method, $priority) = $args;
-                $listener = $this->container->get($serviceId);
-
-                $key = $serviceId.'.'.$method;
-                if (!isset($this->listeners[$eventName][$key])) {
-                    $this->addListener($eventName, array($listener, $method), $priority);
-                } elseif ($listener !== $this->listeners[$eventName][$key]) {
-                    parent::removeListener($eventName, array($this->listeners[$eventName][$key], $method));
-                    $this->addListener($eventName, array($listener, $method), $priority);
-                }
-
-                $this->listeners[$eventName][$key] = $listener;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php b/core/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
deleted file mode 100644
index 7653ccf..0000000
--- a/core/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
+++ /dev/null
@@ -1,335 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Debug;
-
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\Stopwatch\Stopwatch;
-use Psr\Log\LoggerInterface;
-
-/**
- * Collects some data about event listeners.
- *
- * This event dispatcher delegates the dispatching to another one.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TraceableEventDispatcher implements TraceableEventDispatcherInterface
-{
-    protected $logger;
-    protected $stopwatch;
-
-    private $called;
-    private $dispatcher;
-    private $wrappedListeners;
-
-    /**
-     * Constructor.
-     *
-     * @param EventDispatcherInterface $dispatcher An EventDispatcherInterface instance
-     * @param Stopwatch                $stopwatch  A Stopwatch instance
-     * @param LoggerInterface          $logger     A LoggerInterface instance
-     */
-    public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $stopwatch, LoggerInterface $logger = null)
-    {
-        $this->dispatcher = $dispatcher;
-        $this->stopwatch = $stopwatch;
-        $this->logger = $logger;
-        $this->called = array();
-        $this->wrappedListeners = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addListener($eventName, $listener, $priority = 0)
-    {
-        $this->dispatcher->addListener($eventName, $listener, $priority);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addSubscriber(EventSubscriberInterface $subscriber)
-    {
-        $this->dispatcher->addSubscriber($subscriber);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function removeListener($eventName, $listener)
-    {
-        if (isset($this->wrappedListeners[$eventName])) {
-            foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) {
-                if ($wrappedListener->getWrappedListener() === $listener) {
-                    $listener = $wrappedListener;
-                    unset($this->wrappedListeners[$eventName][$index]);
-                    break;
-                }
-            }
-        }
-
-        return $this->dispatcher->removeListener($eventName, $listener);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function removeSubscriber(EventSubscriberInterface $subscriber)
-    {
-        return $this->dispatcher->removeSubscriber($subscriber);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getListeners($eventName = null)
-    {
-        return $this->dispatcher->getListeners($eventName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasListeners($eventName = null)
-    {
-        return $this->dispatcher->hasListeners($eventName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function dispatch($eventName, Event $event = null)
-    {
-        if (null === $event) {
-            $event = new Event();
-        }
-
-        $this->preProcess($eventName);
-        $this->preDispatch($eventName, $event);
-
-        $e = $this->stopwatch->start($eventName, 'section');
-
-        $this->dispatcher->dispatch($eventName, $event);
-
-        if ($e->isStarted()) {
-            $e->stop();
-        }
-
-        $this->postDispatch($eventName, $event);
-        $this->postProcess($eventName);
-
-        return $event;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCalledListeners()
-    {
-        $called = array();
-        foreach ($this->called as $eventName => $listeners) {
-            foreach ($listeners as $listener) {
-                $info = $this->getListenerInfo($listener->getWrappedListener(), $eventName);
-                $called[$eventName.'.'.$info['pretty']] = $info;
-            }
-        }
-
-        return $called;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNotCalledListeners()
-    {
-        try {
-            $allListeners = $this->getListeners();
-        } catch (\Exception $e) {
-            if (null !== $this->logger) {
-                $this->logger->info('An exception was thrown while getting the uncalled listeners.', array('exception' => $e));
-            }
-
-            // unable to retrieve the uncalled listeners
-            return array();
-        }
-
-        $notCalled = array();
-        foreach ($allListeners as $eventName => $listeners) {
-            foreach ($listeners as $listener) {
-                $called = false;
-                if (isset($this->called[$eventName])) {
-                    foreach ($this->called[$eventName] as $l) {
-                        if ($l->getWrappedListener() === $listener) {
-                            $called = true;
-
-                            break;
-                        }
-                    }
-                }
-
-                if (!$called) {
-                    $info = $this->getListenerInfo($listener, $eventName);
-                    $notCalled[$eventName.'.'.$info['pretty']] = $info;
-                }
-            }
-        }
-
-        return $notCalled;
-    }
-
-    /**
-     * Proxies all method calls to the original event dispatcher.
-     *
-     * @param string $method    The method name
-     * @param array  $arguments The method arguments
-     *
-     * @return mixed
-     */
-    public function __call($method, $arguments)
-    {
-        return call_user_func_array(array($this->dispatcher, $method), $arguments);
-    }
-
-    /**
-     * Called before dispatching the event.
-     *
-     * @param string $eventName The event name
-     * @param Event  $event     The event
-     */
-    protected function preDispatch($eventName, Event $event)
-    {
-    }
-
-    /**
-     * Called after dispatching the event.
-     *
-     * @param string $eventName The event name
-     * @param Event  $event     The event
-     */
-    protected function postDispatch($eventName, Event $event)
-    {
-    }
-
-    private function preProcess($eventName)
-    {
-        foreach ($this->dispatcher->getListeners($eventName) as $listener) {
-            $this->dispatcher->removeListener($eventName, $listener);
-            $info = $this->getListenerInfo($listener, $eventName);
-            $name = isset($info['class']) ? $info['class'] : $info['type'];
-            $wrappedListener = new WrappedListener($listener, $name, $this->stopwatch, $this);
-            $this->wrappedListeners[$eventName][] = $wrappedListener;
-            $this->dispatcher->addListener($eventName, $wrappedListener);
-        }
-    }
-
-    private function postProcess($eventName)
-    {
-        unset($this->wrappedListeners[$eventName]);
-        $skipped = false;
-        foreach ($this->dispatcher->getListeners($eventName) as $listener) {
-            if (!$listener instanceof WrappedListener) { // #12845: a new listener was added during dispatch.
-                continue;
-            }
-            // Unwrap listener
-            $this->dispatcher->removeListener($eventName, $listener);
-            $this->dispatcher->addListener($eventName, $listener->getWrappedListener());
-
-            $info = $this->getListenerInfo($listener->getWrappedListener(), $eventName);
-            if ($listener->wasCalled()) {
-                if (null !== $this->logger) {
-                    $this->logger->debug(sprintf('Notified event "%s" to listener "%s".', $eventName, $info['pretty']));
-                }
-
-                if (!isset($this->called[$eventName])) {
-                    $this->called[$eventName] = new \SplObjectStorage();
-                }
-
-                $this->called[$eventName]->attach($listener);
-            }
-
-            if (null !== $this->logger && $skipped) {
-                $this->logger->debug(sprintf('Listener "%s" was not called for event "%s".', $info['pretty'], $eventName));
-            }
-
-            if ($listener->stoppedPropagation()) {
-                if (null !== $this->logger) {
-                    $this->logger->debug(sprintf('Listener "%s" stopped propagation of the event "%s".', $info['pretty'], $eventName));
-                }
-
-                $skipped = true;
-            }
-        }
-    }
-
-    /**
-     * Returns information about the listener.
-     *
-     * @param object $listener  The listener
-     * @param string $eventName The event name
-     *
-     * @return array Information about the listener
-     */
-    private function getListenerInfo($listener, $eventName)
-    {
-        $info = array(
-            'event' => $eventName,
-        );
-        if ($listener instanceof \Closure) {
-            $info += array(
-                'type' => 'Closure',
-                'pretty' => 'closure',
-            );
-        } elseif (is_string($listener)) {
-            try {
-                $r = new \ReflectionFunction($listener);
-                $file = $r->getFileName();
-                $line = $r->getStartLine();
-            } catch (\ReflectionException $e) {
-                $file = null;
-                $line = null;
-            }
-            $info += array(
-                'type' => 'Function',
-                'function' => $listener,
-                'file' => $file,
-                'line' => $line,
-                'pretty' => $listener,
-            );
-        } elseif (is_array($listener) || (is_object($listener) && is_callable($listener))) {
-            if (!is_array($listener)) {
-                $listener = array($listener, '__invoke');
-            }
-            $class = is_object($listener[0]) ? get_class($listener[0]) : $listener[0];
-            try {
-                $r = new \ReflectionMethod($class, $listener[1]);
-                $file = $r->getFileName();
-                $line = $r->getStartLine();
-            } catch (\ReflectionException $e) {
-                $file = null;
-                $line = null;
-            }
-            $info += array(
-                'type' => 'Method',
-                'class' => $class,
-                'method' => $listener[1],
-                'file' => $file,
-                'line' => $line,
-                'pretty' => $class.'::'.$listener[1],
-            );
-        }
-
-        return $info;
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php b/core/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php
deleted file mode 100644
index 5483e81..0000000
--- a/core/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Debug;
-
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface TraceableEventDispatcherInterface extends EventDispatcherInterface
-{
-    /**
-     * Gets the called listeners.
-     *
-     * @return array An array of called listeners
-     */
-    public function getCalledListeners();
-
-    /**
-     * Gets the not called listeners.
-     *
-     * @return array An array of not called listeners
-     */
-    public function getNotCalledListeners();
-}
diff --git a/core/vendor/symfony/event-dispatcher/Debug/WrappedListener.php b/core/vendor/symfony/event-dispatcher/Debug/WrappedListener.php
deleted file mode 100644
index e16627d..0000000
--- a/core/vendor/symfony/event-dispatcher/Debug/WrappedListener.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Debug;
-
-use Symfony\Component\Stopwatch\Stopwatch;
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class WrappedListener
-{
-    private $listener;
-    private $name;
-    private $called;
-    private $stoppedPropagation;
-    private $stopwatch;
-    private $dispatcher;
-
-    public function __construct($listener, $name, Stopwatch $stopwatch, EventDispatcherInterface $dispatcher = null)
-    {
-        $this->listener = $listener;
-        $this->name = $name;
-        $this->stopwatch = $stopwatch;
-        $this->dispatcher = $dispatcher;
-        $this->called = false;
-        $this->stoppedPropagation = false;
-    }
-
-    public function getWrappedListener()
-    {
-        return $this->listener;
-    }
-
-    public function wasCalled()
-    {
-        return $this->called;
-    }
-
-    public function stoppedPropagation()
-    {
-        return $this->stoppedPropagation;
-    }
-
-    public function __invoke(Event $event, $eventName, EventDispatcherInterface $dispatcher)
-    {
-        $this->called = true;
-
-        $e = $this->stopwatch->start($this->name, 'event_listener');
-
-        call_user_func($this->listener, $event, $eventName, $this->dispatcher ?: $dispatcher);
-
-        if ($e->isStarted()) {
-            $e->stop();
-        }
-
-        if ($event->isPropagationStopped()) {
-            $this->stoppedPropagation = true;
-        }
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php b/core/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php
deleted file mode 100644
index 7e74a37..0000000
--- a/core/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-/**
- * Compiler pass to register tagged services for an event dispatcher.
- */
-class RegisterListenersPass implements CompilerPassInterface
-{
-    /**
-     * @var string
-     */
-    protected $dispatcherService;
-
-    /**
-     * @var string
-     */
-    protected $listenerTag;
-
-    /**
-     * @var string
-     */
-    protected $subscriberTag;
-
-    /**
-     * Constructor.
-     *
-     * @param string $dispatcherService Service name of the event dispatcher in processed container
-     * @param string $listenerTag       Tag name used for listener
-     * @param string $subscriberTag     Tag name used for subscribers
-     */
-    public function __construct($dispatcherService = 'event_dispatcher', $listenerTag = 'kernel.event_listener', $subscriberTag = 'kernel.event_subscriber')
-    {
-        $this->dispatcherService = $dispatcherService;
-        $this->listenerTag = $listenerTag;
-        $this->subscriberTag = $subscriberTag;
-    }
-
-    public function process(ContainerBuilder $container)
-    {
-        if (!$container->hasDefinition($this->dispatcherService) && !$container->hasAlias($this->dispatcherService)) {
-            return;
-        }
-
-        $definition = $container->findDefinition($this->dispatcherService);
-
-        foreach ($container->findTaggedServiceIds($this->listenerTag) as $id => $events) {
-            $def = $container->getDefinition($id);
-            if (!$def->isPublic()) {
-                throw new \InvalidArgumentException(sprintf('The service "%s" must be public as event listeners are lazy-loaded.', $id));
-            }
-
-            if ($def->isAbstract()) {
-                throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as event listeners are lazy-loaded.', $id));
-            }
-
-            foreach ($events as $event) {
-                $priority = isset($event['priority']) ? $event['priority'] : 0;
-
-                if (!isset($event['event'])) {
-                    throw new \InvalidArgumentException(sprintf('Service "%s" must define the "event" attribute on "%s" tags.', $id, $this->listenerTag));
-                }
-
-                if (!isset($event['method'])) {
-                    $event['method'] = 'on'.preg_replace_callback(array(
-                        '/(?<=\b)[a-z]/i',
-                        '/[^a-z0-9]/i',
-                    ), function ($matches) { return strtoupper($matches[0]); }, $event['event']);
-                    $event['method'] = preg_replace('/[^a-z0-9]/i', '', $event['method']);
-                }
-
-                $definition->addMethodCall('addListenerService', array($event['event'], array($id, $event['method']), $priority));
-            }
-        }
-
-        foreach ($container->findTaggedServiceIds($this->subscriberTag) as $id => $attributes) {
-            $def = $container->getDefinition($id);
-            if (!$def->isPublic()) {
-                throw new \InvalidArgumentException(sprintf('The service "%s" must be public as event subscribers are lazy-loaded.', $id));
-            }
-
-            if ($def->isAbstract()) {
-                throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as event subscribers are lazy-loaded.', $id));
-            }
-
-            // We must assume that the class value has been correctly filled, even if the service is created by a factory
-            $class = $container->getParameterBag()->resolveValue($def->getClass());
-
-            $refClass = new \ReflectionClass($class);
-            $interface = 'Symfony\Component\EventDispatcher\EventSubscriberInterface';
-            if (!$refClass->implementsInterface($interface)) {
-                throw new \InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, $interface));
-            }
-
-            $definition->addMethodCall('addSubscriberService', array($id, $class));
-        }
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Event.php b/core/vendor/symfony/event-dispatcher/Event.php
deleted file mode 100644
index 048bf0a..0000000
--- a/core/vendor/symfony/event-dispatcher/Event.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-/**
- * Event is the base class for classes containing event data.
- *
- * This class contains no event data. It is used by events that do not pass
- * state information to an event handler when an event is raised.
- *
- * You can call the method stopPropagation() to abort the execution of
- * further listeners in your event listener.
- *
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Event
-{
-    /**
-     * @var bool Whether no further event listeners should be triggered
-     */
-    private $propagationStopped = false;
-
-    /**
-     * @var EventDispatcher Dispatcher that dispatched this event
-     */
-    private $dispatcher;
-
-    /**
-     * @var string This event's name
-     */
-    private $name;
-
-    /**
-     * Returns whether further event listeners should be triggered.
-     *
-     * @see Event::stopPropagation()
-     *
-     * @return bool Whether propagation was already stopped for this event.
-     *
-     * @api
-     */
-    public function isPropagationStopped()
-    {
-        return $this->propagationStopped;
-    }
-
-    /**
-     * Stops the propagation of the event to further event listeners.
-     *
-     * If multiple event listeners are connected to the same event, no
-     * further event listener will be triggered once any trigger calls
-     * stopPropagation().
-     *
-     * @api
-     */
-    public function stopPropagation()
-    {
-        $this->propagationStopped = true;
-    }
-
-    /**
-     * Stores the EventDispatcher that dispatches this Event.
-     *
-     * @param EventDispatcherInterface $dispatcher
-     *
-     * @deprecated since version 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call.
-     *
-     * @api
-     */
-    public function setDispatcher(EventDispatcherInterface $dispatcher)
-    {
-        $this->dispatcher = $dispatcher;
-    }
-
-    /**
-     * Returns the EventDispatcher that dispatches this Event.
-     *
-     * @return EventDispatcherInterface
-     *
-     * @deprecated since version 2.4, to be removed in 3.0. The event dispatcher is passed to the listener call.
-     *
-     * @api
-     */
-    public function getDispatcher()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0. The event dispatcher instance can be received in the listener call instead.', E_USER_DEPRECATED);
-
-        return $this->dispatcher;
-    }
-
-    /**
-     * Gets the event's name.
-     *
-     * @return string
-     *
-     * @deprecated since version 2.4, to be removed in 3.0. The event name is passed to the listener call.
-     *
-     * @api
-     */
-    public function getName()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0. The event name can be received in the listener call instead.', E_USER_DEPRECATED);
-
-        return $this->name;
-    }
-
-    /**
-     * Sets the event's name property.
-     *
-     * @param string $name The event name.
-     *
-     * @deprecated since version 2.4, to be removed in 3.0. The event name is passed to the listener call.
-     *
-     * @api
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/EventDispatcher.php b/core/vendor/symfony/event-dispatcher/EventDispatcher.php
deleted file mode 100644
index 46c1110..0000000
--- a/core/vendor/symfony/event-dispatcher/EventDispatcher.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-/**
- * The EventDispatcherInterface is the central point of Symfony's event listener system.
- *
- * Listeners are registered on the manager and events are dispatched through the
- * manager.
- *
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @author Jordan Alliot <jordan.alliot@gmail.com>
- *
- * @api
- */
-class EventDispatcher implements EventDispatcherInterface
-{
-    private $listeners = array();
-    private $sorted = array();
-
-    /**
-     * @see EventDispatcherInterface::dispatch()
-     *
-     * @api
-     */
-    public function dispatch($eventName, Event $event = null)
-    {
-        if (null === $event) {
-            $event = new Event();
-        }
-
-        $event->setDispatcher($this);
-        $event->setName($eventName);
-
-        if (!isset($this->listeners[$eventName])) {
-            return $event;
-        }
-
-        $this->doDispatch($this->getListeners($eventName), $eventName, $event);
-
-        return $event;
-    }
-
-    /**
-     * @see EventDispatcherInterface::getListeners()
-     */
-    public function getListeners($eventName = null)
-    {
-        if (null !== $eventName) {
-            if (!isset($this->sorted[$eventName])) {
-                $this->sortListeners($eventName);
-            }
-
-            return $this->sorted[$eventName];
-        }
-
-        foreach ($this->listeners as $eventName => $eventListeners) {
-            if (!isset($this->sorted[$eventName])) {
-                $this->sortListeners($eventName);
-            }
-        }
-
-        return array_filter($this->sorted);
-    }
-
-    /**
-     * @see EventDispatcherInterface::hasListeners()
-     */
-    public function hasListeners($eventName = null)
-    {
-        return (bool) count($this->getListeners($eventName));
-    }
-
-    /**
-     * @see EventDispatcherInterface::addListener()
-     *
-     * @api
-     */
-    public function addListener($eventName, $listener, $priority = 0)
-    {
-        $this->listeners[$eventName][$priority][] = $listener;
-        unset($this->sorted[$eventName]);
-    }
-
-    /**
-     * @see EventDispatcherInterface::removeListener()
-     */
-    public function removeListener($eventName, $listener)
-    {
-        if (!isset($this->listeners[$eventName])) {
-            return;
-        }
-
-        foreach ($this->listeners[$eventName] as $priority => $listeners) {
-            if (false !== ($key = array_search($listener, $listeners, true))) {
-                unset($this->listeners[$eventName][$priority][$key], $this->sorted[$eventName]);
-            }
-        }
-    }
-
-    /**
-     * @see EventDispatcherInterface::addSubscriber()
-     *
-     * @api
-     */
-    public function addSubscriber(EventSubscriberInterface $subscriber)
-    {
-        foreach ($subscriber->getSubscribedEvents() as $eventName => $params) {
-            if (is_string($params)) {
-                $this->addListener($eventName, array($subscriber, $params));
-            } elseif (is_string($params[0])) {
-                $this->addListener($eventName, array($subscriber, $params[0]), isset($params[1]) ? $params[1] : 0);
-            } else {
-                foreach ($params as $listener) {
-                    $this->addListener($eventName, array($subscriber, $listener[0]), isset($listener[1]) ? $listener[1] : 0);
-                }
-            }
-        }
-    }
-
-    /**
-     * @see EventDispatcherInterface::removeSubscriber()
-     */
-    public function removeSubscriber(EventSubscriberInterface $subscriber)
-    {
-        foreach ($subscriber->getSubscribedEvents() as $eventName => $params) {
-            if (is_array($params) && is_array($params[0])) {
-                foreach ($params as $listener) {
-                    $this->removeListener($eventName, array($subscriber, $listener[0]));
-                }
-            } else {
-                $this->removeListener($eventName, array($subscriber, is_string($params) ? $params : $params[0]));
-            }
-        }
-    }
-
-    /**
-     * Triggers the listeners of an event.
-     *
-     * This method can be overridden to add functionality that is executed
-     * for each listener.
-     *
-     * @param callable[] $listeners The event listeners.
-     * @param string     $eventName The name of the event to dispatch.
-     * @param Event      $event     The event object to pass to the event handlers/listeners.
-     */
-    protected function doDispatch($listeners, $eventName, Event $event)
-    {
-        foreach ($listeners as $listener) {
-            call_user_func($listener, $event, $eventName, $this);
-            if ($event->isPropagationStopped()) {
-                break;
-            }
-        }
-    }
-
-    /**
-     * Sorts the internal list of listeners for the given event by priority.
-     *
-     * @param string $eventName The name of the event.
-     */
-    private function sortListeners($eventName)
-    {
-        $this->sorted[$eventName] = array();
-
-        if (isset($this->listeners[$eventName])) {
-            krsort($this->listeners[$eventName]);
-            $this->sorted[$eventName] = call_user_func_array('array_merge', $this->listeners[$eventName]);
-        }
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/EventDispatcherInterface.php b/core/vendor/symfony/event-dispatcher/EventDispatcherInterface.php
deleted file mode 100644
index 9d9fc4d..0000000
--- a/core/vendor/symfony/event-dispatcher/EventDispatcherInterface.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-/**
- * The EventDispatcherInterface is the central point of Symfony's event listener system.
- * Listeners are registered on the manager and events are dispatched through the
- * manager.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-interface EventDispatcherInterface
-{
-    /**
-     * Dispatches an event to all registered listeners.
-     *
-     * @param string $eventName The name of the event to dispatch. The name of
-     *                          the event is the name of the method that is
-     *                          invoked on listeners.
-     * @param Event  $event     The event to pass to the event handlers/listeners.
-     *                          If not supplied, an empty Event instance is created.
-     *
-     * @return Event
-     *
-     * @api
-     */
-    public function dispatch($eventName, Event $event = null);
-
-    /**
-     * Adds an event listener that listens on the specified events.
-     *
-     * @param string   $eventName The event to listen on
-     * @param callable $listener  The listener
-     * @param int      $priority  The higher this value, the earlier an event
-     *                            listener will be triggered in the chain (defaults to 0)
-     *
-     * @api
-     */
-    public function addListener($eventName, $listener, $priority = 0);
-
-    /**
-     * Adds an event subscriber.
-     *
-     * The subscriber is asked for all the events he is
-     * interested in and added as a listener for these events.
-     *
-     * @param EventSubscriberInterface $subscriber The subscriber.
-     *
-     * @api
-     */
-    public function addSubscriber(EventSubscriberInterface $subscriber);
-
-    /**
-     * Removes an event listener from the specified events.
-     *
-     * @param string   $eventName The event to remove a listener from
-     * @param callable $listener  The listener to remove
-     */
-    public function removeListener($eventName, $listener);
-
-    /**
-     * Removes an event subscriber.
-     *
-     * @param EventSubscriberInterface $subscriber The subscriber
-     */
-    public function removeSubscriber(EventSubscriberInterface $subscriber);
-
-    /**
-     * Gets the listeners of a specific event or all listeners sorted by descending priority.
-     *
-     * @param string $eventName The name of the event
-     *
-     * @return array The event listeners for the specified event, or all event listeners by event name
-     */
-    public function getListeners($eventName = null);
-
-    /**
-     * Checks whether an event has any registered listeners.
-     *
-     * @param string $eventName The name of the event
-     *
-     * @return bool true if the specified event has any listeners, false otherwise
-     */
-    public function hasListeners($eventName = null);
-}
diff --git a/core/vendor/symfony/event-dispatcher/EventSubscriberInterface.php b/core/vendor/symfony/event-dispatcher/EventSubscriberInterface.php
deleted file mode 100644
index ff7e305..0000000
--- a/core/vendor/symfony/event-dispatcher/EventSubscriberInterface.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-/**
- * An EventSubscriber knows himself what events he is interested in.
- * If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes
- * {@link getSubscribedEvents} and registers the subscriber as a listener for all
- * returned events.
- *
- * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author Jonathan Wage <jonwage@gmail.com>
- * @author Roman Borschel <roman@code-factory.org>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-interface EventSubscriberInterface
-{
-    /**
-     * Returns an array of event names this subscriber wants to listen to.
-     *
-     * The array keys are event names and the value can be:
-     *
-     *  * The method name to call (priority defaults to 0)
-     *  * An array composed of the method name to call and the priority
-     *  * An array of arrays composed of the method names to call and respective
-     *    priorities, or 0 if unset
-     *
-     * For instance:
-     *
-     *  * array('eventName' => 'methodName')
-     *  * array('eventName' => array('methodName', $priority))
-     *  * array('eventName' => array(array('methodName1', $priority), array('methodName2'))
-     *
-     * @return array The event names to listen to
-     *
-     * @api
-     */
-    public static function getSubscribedEvents();
-}
diff --git a/core/vendor/symfony/event-dispatcher/GenericEvent.php b/core/vendor/symfony/event-dispatcher/GenericEvent.php
deleted file mode 100644
index 6458180..0000000
--- a/core/vendor/symfony/event-dispatcher/GenericEvent.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-/**
- * Event encapsulation class.
- *
- * Encapsulates events thus decoupling the observer from the subject they encapsulate.
- *
- * @author Drak <drak@zikula.org>
- */
-class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
-{
-    /**
-     * Event subject.
-     *
-     * @var mixed usually object or callable
-     */
-    protected $subject;
-
-    /**
-     * Array of arguments.
-     *
-     * @var array
-     */
-    protected $arguments;
-
-    /**
-     * Encapsulate an event with $subject and $args.
-     *
-     * @param mixed $subject   The subject of the event, usually an object.
-     * @param array $arguments Arguments to store in the event.
-     */
-    public function __construct($subject = null, array $arguments = array())
-    {
-        $this->subject = $subject;
-        $this->arguments = $arguments;
-    }
-
-    /**
-     * Getter for subject property.
-     *
-     * @return mixed $subject The observer subject.
-     */
-    public function getSubject()
-    {
-        return $this->subject;
-    }
-
-    /**
-     * Get argument by key.
-     *
-     * @param string $key Key.
-     *
-     * @throws \InvalidArgumentException If key is not found.
-     *
-     * @return mixed Contents of array key.
-     */
-    public function getArgument($key)
-    {
-        if ($this->hasArgument($key)) {
-            return $this->arguments[$key];
-        }
-
-        throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key));
-    }
-
-    /**
-     * Add argument to event.
-     *
-     * @param string $key   Argument name.
-     * @param mixed  $value Value.
-     *
-     * @return GenericEvent
-     */
-    public function setArgument($key, $value)
-    {
-        $this->arguments[$key] = $value;
-
-        return $this;
-    }
-
-    /**
-     * Getter for all arguments.
-     *
-     * @return array
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * Set args property.
-     *
-     * @param array $args Arguments.
-     *
-     * @return GenericEvent
-     */
-    public function setArguments(array $args = array())
-    {
-        $this->arguments = $args;
-
-        return $this;
-    }
-
-    /**
-     * Has argument.
-     *
-     * @param string $key Key of arguments array.
-     *
-     * @return bool
-     */
-    public function hasArgument($key)
-    {
-        return array_key_exists($key, $this->arguments);
-    }
-
-    /**
-     * ArrayAccess for argument getter.
-     *
-     * @param string $key Array key.
-     *
-     * @throws \InvalidArgumentException If key does not exist in $this->args.
-     *
-     * @return mixed
-     */
-    public function offsetGet($key)
-    {
-        return $this->getArgument($key);
-    }
-
-    /**
-     * ArrayAccess for argument setter.
-     *
-     * @param string $key   Array key to set.
-     * @param mixed  $value Value.
-     */
-    public function offsetSet($key, $value)
-    {
-        $this->setArgument($key, $value);
-    }
-
-    /**
-     * ArrayAccess for unset argument.
-     *
-     * @param string $key Array key.
-     */
-    public function offsetUnset($key)
-    {
-        if ($this->hasArgument($key)) {
-            unset($this->arguments[$key]);
-        }
-    }
-
-    /**
-     * ArrayAccess has argument.
-     *
-     * @param string $key Array key.
-     *
-     * @return bool
-     */
-    public function offsetExists($key)
-    {
-        return $this->hasArgument($key);
-    }
-
-    /**
-     * IteratorAggregate for iterating over the object like an array.
-     *
-     * @return \ArrayIterator
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->arguments);
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php b/core/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php
deleted file mode 100644
index 7ef9ece..0000000
--- a/core/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher;
-
-/**
- * A read-only proxy for an event dispatcher.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ImmutableEventDispatcher implements EventDispatcherInterface
-{
-    /**
-     * The proxied dispatcher.
-     *
-     * @var EventDispatcherInterface
-     */
-    private $dispatcher;
-
-    /**
-     * Creates an unmodifiable proxy for an event dispatcher.
-     *
-     * @param EventDispatcherInterface $dispatcher The proxied event dispatcher.
-     */
-    public function __construct(EventDispatcherInterface $dispatcher)
-    {
-        $this->dispatcher = $dispatcher;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function dispatch($eventName, Event $event = null)
-    {
-        return $this->dispatcher->dispatch($eventName, $event);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addListener($eventName, $listener, $priority = 0)
-    {
-        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addSubscriber(EventSubscriberInterface $subscriber)
-    {
-        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function removeListener($eventName, $listener)
-    {
-        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function removeSubscriber(EventSubscriberInterface $subscriber)
-    {
-        throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getListeners($eventName = null)
-    {
-        return $this->dispatcher->getListeners($eventName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasListeners($eventName = null)
-    {
-        return $this->dispatcher->hasListeners($eventName);
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/LICENSE b/core/vendor/symfony/event-dispatcher/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/event-dispatcher/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/event-dispatcher/README.md b/core/vendor/symfony/event-dispatcher/README.md
deleted file mode 100644
index 8031f4d..0000000
--- a/core/vendor/symfony/event-dispatcher/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-EventDispatcher Component
-=========================
-
-The Symfony EventDispatcher component implements the Mediator pattern in a
-simple and effective way to make your projects truly extensible.
-
-```php
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\Event;
-
-$dispatcher = new EventDispatcher();
-
-$dispatcher->addListener('event_name', function (Event $event) {
-    // ...
-});
-
-$dispatcher->dispatch('event_name');
-```
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/EventDispatcher/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php
deleted file mode 100644
index f9c7e0e..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php
+++ /dev/null
@@ -1,381 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests;
-
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-abstract class AbstractEventDispatcherTest extends \PHPUnit_Framework_TestCase
-{
-    /* Some pseudo events */
-    const preFoo = 'pre.foo';
-    const postFoo = 'post.foo';
-    const preBar = 'pre.bar';
-    const postBar = 'post.bar';
-
-    /**
-     * @var EventDispatcher
-     */
-    private $dispatcher;
-
-    private $listener;
-
-    protected function setUp()
-    {
-        $this->dispatcher = $this->createEventDispatcher();
-        $this->listener = new TestEventListener();
-    }
-
-    protected function tearDown()
-    {
-        $this->dispatcher = null;
-        $this->listener = null;
-    }
-
-    abstract protected function createEventDispatcher();
-
-    public function testInitialState()
-    {
-        $this->assertEquals(array(), $this->dispatcher->getListeners());
-        $this->assertFalse($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertFalse($this->dispatcher->hasListeners(self::postFoo));
-    }
-
-    public function testAddListener()
-    {
-        $this->dispatcher->addListener('pre.foo', array($this->listener, 'preFoo'));
-        $this->dispatcher->addListener('post.foo', array($this->listener, 'postFoo'));
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertTrue($this->dispatcher->hasListeners(self::postFoo));
-        $this->assertCount(1, $this->dispatcher->getListeners(self::preFoo));
-        $this->assertCount(1, $this->dispatcher->getListeners(self::postFoo));
-        $this->assertCount(2, $this->dispatcher->getListeners());
-    }
-
-    public function testGetListenersSortsByPriority()
-    {
-        $listener1 = new TestEventListener();
-        $listener2 = new TestEventListener();
-        $listener3 = new TestEventListener();
-        $listener1->name = '1';
-        $listener2->name = '2';
-        $listener3->name = '3';
-
-        $this->dispatcher->addListener('pre.foo', array($listener1, 'preFoo'), -10);
-        $this->dispatcher->addListener('pre.foo', array($listener2, 'preFoo'), 10);
-        $this->dispatcher->addListener('pre.foo', array($listener3, 'preFoo'));
-
-        $expected = array(
-            array($listener2, 'preFoo'),
-            array($listener3, 'preFoo'),
-            array($listener1, 'preFoo'),
-        );
-
-        $this->assertSame($expected, $this->dispatcher->getListeners('pre.foo'));
-    }
-
-    public function testGetAllListenersSortsByPriority()
-    {
-        $listener1 = new TestEventListener();
-        $listener2 = new TestEventListener();
-        $listener3 = new TestEventListener();
-        $listener4 = new TestEventListener();
-        $listener5 = new TestEventListener();
-        $listener6 = new TestEventListener();
-
-        $this->dispatcher->addListener('pre.foo', $listener1, -10);
-        $this->dispatcher->addListener('pre.foo', $listener2);
-        $this->dispatcher->addListener('pre.foo', $listener3, 10);
-        $this->dispatcher->addListener('post.foo', $listener4, -10);
-        $this->dispatcher->addListener('post.foo', $listener5);
-        $this->dispatcher->addListener('post.foo', $listener6, 10);
-
-        $expected = array(
-            'pre.foo' => array($listener3, $listener2, $listener1),
-            'post.foo' => array($listener6, $listener5, $listener4),
-        );
-
-        $this->assertSame($expected, $this->dispatcher->getListeners());
-    }
-
-    public function testDispatch()
-    {
-        $this->dispatcher->addListener('pre.foo', array($this->listener, 'preFoo'));
-        $this->dispatcher->addListener('post.foo', array($this->listener, 'postFoo'));
-        $this->dispatcher->dispatch(self::preFoo);
-        $this->assertTrue($this->listener->preFooInvoked);
-        $this->assertFalse($this->listener->postFooInvoked);
-        $this->assertInstanceOf('Symfony\Component\EventDispatcher\Event', $this->dispatcher->dispatch('noevent'));
-        $this->assertInstanceOf('Symfony\Component\EventDispatcher\Event', $this->dispatcher->dispatch(self::preFoo));
-        $event = new Event();
-        $return = $this->dispatcher->dispatch(self::preFoo, $event);
-        $this->assertSame($event, $return);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyDispatch()
-    {
-        $event = new Event();
-        $return = $this->dispatcher->dispatch(self::preFoo, $event);
-        $this->assertEquals('pre.foo', $event->getName());
-    }
-
-    public function testDispatchForClosure()
-    {
-        $invoked = 0;
-        $listener = function () use (&$invoked) {
-            $invoked++;
-        };
-        $this->dispatcher->addListener('pre.foo', $listener);
-        $this->dispatcher->addListener('post.foo', $listener);
-        $this->dispatcher->dispatch(self::preFoo);
-        $this->assertEquals(1, $invoked);
-    }
-
-    public function testStopEventPropagation()
-    {
-        $otherListener = new TestEventListener();
-
-        // postFoo() stops the propagation, so only one listener should
-        // be executed
-        // Manually set priority to enforce $this->listener to be called first
-        $this->dispatcher->addListener('post.foo', array($this->listener, 'postFoo'), 10);
-        $this->dispatcher->addListener('post.foo', array($otherListener, 'preFoo'));
-        $this->dispatcher->dispatch(self::postFoo);
-        $this->assertTrue($this->listener->postFooInvoked);
-        $this->assertFalse($otherListener->postFooInvoked);
-    }
-
-    public function testDispatchByPriority()
-    {
-        $invoked = array();
-        $listener1 = function () use (&$invoked) {
-            $invoked[] = '1';
-        };
-        $listener2 = function () use (&$invoked) {
-            $invoked[] = '2';
-        };
-        $listener3 = function () use (&$invoked) {
-            $invoked[] = '3';
-        };
-        $this->dispatcher->addListener('pre.foo', $listener1, -10);
-        $this->dispatcher->addListener('pre.foo', $listener2);
-        $this->dispatcher->addListener('pre.foo', $listener3, 10);
-        $this->dispatcher->dispatch(self::preFoo);
-        $this->assertEquals(array('3', '2', '1'), $invoked);
-    }
-
-    public function testRemoveListener()
-    {
-        $this->dispatcher->addListener('pre.bar', $this->listener);
-        $this->assertTrue($this->dispatcher->hasListeners(self::preBar));
-        $this->dispatcher->removeListener('pre.bar', $this->listener);
-        $this->assertFalse($this->dispatcher->hasListeners(self::preBar));
-        $this->dispatcher->removeListener('notExists', $this->listener);
-    }
-
-    public function testAddSubscriber()
-    {
-        $eventSubscriber = new TestEventSubscriber();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertTrue($this->dispatcher->hasListeners(self::postFoo));
-    }
-
-    public function testAddSubscriberWithPriorities()
-    {
-        $eventSubscriber = new TestEventSubscriber();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-
-        $eventSubscriber = new TestEventSubscriberWithPriorities();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-
-        $listeners = $this->dispatcher->getListeners('pre.foo');
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertCount(2, $listeners);
-        $this->assertInstanceOf('Symfony\Component\EventDispatcher\Tests\TestEventSubscriberWithPriorities', $listeners[0][0]);
-    }
-
-    public function testAddSubscriberWithMultipleListeners()
-    {
-        $eventSubscriber = new TestEventSubscriberWithMultipleListeners();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-
-        $listeners = $this->dispatcher->getListeners('pre.foo');
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertCount(2, $listeners);
-        $this->assertEquals('preFoo2', $listeners[0][1]);
-    }
-
-    public function testRemoveSubscriber()
-    {
-        $eventSubscriber = new TestEventSubscriber();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertTrue($this->dispatcher->hasListeners(self::postFoo));
-        $this->dispatcher->removeSubscriber($eventSubscriber);
-        $this->assertFalse($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertFalse($this->dispatcher->hasListeners(self::postFoo));
-    }
-
-    public function testRemoveSubscriberWithPriorities()
-    {
-        $eventSubscriber = new TestEventSubscriberWithPriorities();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->dispatcher->removeSubscriber($eventSubscriber);
-        $this->assertFalse($this->dispatcher->hasListeners(self::preFoo));
-    }
-
-    public function testRemoveSubscriberWithMultipleListeners()
-    {
-        $eventSubscriber = new TestEventSubscriberWithMultipleListeners();
-        $this->dispatcher->addSubscriber($eventSubscriber);
-        $this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
-        $this->assertCount(2, $this->dispatcher->getListeners(self::preFoo));
-        $this->dispatcher->removeSubscriber($eventSubscriber);
-        $this->assertFalse($this->dispatcher->hasListeners(self::preFoo));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyEventReceivesTheDispatcherInstance()
-    {
-        $dispatcher = null;
-        $this->dispatcher->addListener('test', function ($event) use (&$dispatcher) {
-            $dispatcher = $event->getDispatcher();
-        });
-        $this->dispatcher->dispatch('test');
-        $this->assertSame($this->dispatcher, $dispatcher);
-    }
-
-    public function testEventReceivesTheDispatcherInstanceAsArgument()
-    {
-        $listener = new TestWithDispatcher();
-        $this->dispatcher->addListener('test', array($listener, 'foo'));
-        $this->assertNull($listener->name);
-        $this->assertNull($listener->dispatcher);
-        $this->dispatcher->dispatch('test');
-        $this->assertEquals('test', $listener->name);
-        $this->assertSame($this->dispatcher, $listener->dispatcher);
-    }
-
-    /**
-     * @see https://bugs.php.net/bug.php?id=62976
-     *
-     * This bug affects:
-     *  - The PHP 5.3 branch for versions < 5.3.18
-     *  - The PHP 5.4 branch for versions < 5.4.8
-     *  - The PHP 5.5 branch is not affected
-     */
-    public function testWorkaroundForPhpBug62976()
-    {
-        $dispatcher = $this->createEventDispatcher();
-        $dispatcher->addListener('bug.62976', new CallableClass());
-        $dispatcher->removeListener('bug.62976', function () {});
-        $this->assertTrue($dispatcher->hasListeners('bug.62976'));
-    }
-
-    public function testHasListenersWhenAddedCallbackListenerIsRemoved()
-    {
-        $listener = function () {};
-        $this->dispatcher->addListener('foo', $listener);
-        $this->dispatcher->removeListener('foo', $listener);
-        $this->assertFalse($this->dispatcher->hasListeners());
-    }
-
-    public function testGetListenersWhenAddedCallbackListenerIsRemoved()
-    {
-        $listener = function () {};
-        $this->dispatcher->addListener('foo', $listener);
-        $this->dispatcher->removeListener('foo', $listener);
-        $this->assertSame(array(), $this->dispatcher->getListeners());
-    }
-
-    public function testHasListenersWithoutEventsReturnsFalseAfterHasListenersWithEventHasBeenCalled()
-    {
-        $this->assertFalse($this->dispatcher->hasListeners('foo'));
-        $this->assertFalse($this->dispatcher->hasListeners());
-    }
-}
-
-class CallableClass
-{
-    public function __invoke()
-    {
-    }
-}
-
-class TestEventListener
-{
-    public $preFooInvoked = false;
-    public $postFooInvoked = false;
-
-    /* Listener methods */
-
-    public function preFoo(Event $e)
-    {
-        $this->preFooInvoked = true;
-    }
-
-    public function postFoo(Event $e)
-    {
-        $this->postFooInvoked = true;
-
-        $e->stopPropagation();
-    }
-}
-
-class TestWithDispatcher
-{
-    public $name;
-    public $dispatcher;
-
-    public function foo(Event $e, $name, $dispatcher)
-    {
-        $this->name = $name;
-        $this->dispatcher = $dispatcher;
-    }
-}
-
-class TestEventSubscriber implements EventSubscriberInterface
-{
-    public static function getSubscribedEvents()
-    {
-        return array('pre.foo' => 'preFoo', 'post.foo' => 'postFoo');
-    }
-}
-
-class TestEventSubscriberWithPriorities implements EventSubscriberInterface
-{
-    public static function getSubscribedEvents()
-    {
-        return array(
-            'pre.foo' => array('preFoo', 10),
-            'post.foo' => array('postFoo'),
-            );
-    }
-}
-
-class TestEventSubscriberWithMultipleListeners implements EventSubscriberInterface
-{
-    public static function getSubscribedEvents()
-    {
-        return array('pre.foo' => array(
-            array('preFoo1'),
-            array('preFoo2', 10),
-        ));
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php
deleted file mode 100644
index 6f2fbcb..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php
+++ /dev/null
@@ -1,249 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests;
-
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Scope;
-use Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher;
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-class ContainerAwareEventDispatcherTest extends AbstractEventDispatcherTest
-{
-    protected function createEventDispatcher()
-    {
-        $container = new Container();
-
-        return new ContainerAwareEventDispatcher($container);
-    }
-
-    public function testAddAListenerService()
-    {
-        $event = new Event();
-
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $service
-            ->expects($this->once())
-            ->method('onEvent')
-            ->with($event)
-        ;
-
-        $container = new Container();
-        $container->set('service.listener', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-
-        $dispatcher->dispatch('onEvent', $event);
-    }
-
-    public function testAddASubscriberService()
-    {
-        $event = new Event();
-
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\SubscriberService');
-
-        $service
-            ->expects($this->once())
-            ->method('onEvent')
-            ->with($event)
-        ;
-
-        $container = new Container();
-        $container->set('service.subscriber', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addSubscriberService('service.subscriber', 'Symfony\Component\EventDispatcher\Tests\SubscriberService');
-
-        $dispatcher->dispatch('onEvent', $event);
-    }
-
-    public function testPreventDuplicateListenerService()
-    {
-        $event = new Event();
-
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $service
-            ->expects($this->once())
-            ->method('onEvent')
-            ->with($event)
-        ;
-
-        $container = new Container();
-        $container->set('service.listener', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'), 5);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'), 10);
-
-        $dispatcher->dispatch('onEvent', $event);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testTriggerAListenerServiceOutOfScope()
-    {
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $scope = new Scope('scope');
-        $container = new Container();
-        $container->addScope($scope);
-        $container->enterScope('scope');
-
-        $container->set('service.listener', $service, 'scope');
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-
-        $container->leaveScope('scope');
-        $dispatcher->dispatch('onEvent');
-    }
-
-    public function testReEnteringAScope()
-    {
-        $event = new Event();
-
-        $service1 = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $service1
-            ->expects($this->exactly(2))
-            ->method('onEvent')
-            ->with($event)
-        ;
-
-        $scope = new Scope('scope');
-        $container = new Container();
-        $container->addScope($scope);
-        $container->enterScope('scope');
-
-        $container->set('service.listener', $service1, 'scope');
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-        $dispatcher->dispatch('onEvent', $event);
-
-        $service2 = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $service2
-            ->expects($this->once())
-            ->method('onEvent')
-            ->with($event)
-        ;
-
-        $container->enterScope('scope');
-        $container->set('service.listener', $service2, 'scope');
-
-        $dispatcher->dispatch('onEvent', $event);
-
-        $container->leaveScope('scope');
-
-        $dispatcher->dispatch('onEvent');
-    }
-
-    public function testHasListenersOnLazyLoad()
-    {
-        $event = new Event();
-
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $container = new Container();
-        $container->set('service.listener', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-
-        $event->setDispatcher($dispatcher);
-        $event->setName('onEvent');
-
-        $service
-            ->expects($this->once())
-            ->method('onEvent')
-            ->with($event)
-        ;
-
-        $this->assertTrue($dispatcher->hasListeners());
-
-        if ($dispatcher->hasListeners('onEvent')) {
-            $dispatcher->dispatch('onEvent');
-        }
-    }
-
-    public function testGetListenersOnLazyLoad()
-    {
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $container = new Container();
-        $container->set('service.listener', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-
-        $listeners = $dispatcher->getListeners();
-
-        $this->assertTrue(isset($listeners['onEvent']));
-
-        $this->assertCount(1, $dispatcher->getListeners('onEvent'));
-    }
-
-    public function testRemoveAfterDispatch()
-    {
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $container = new Container();
-        $container->set('service.listener', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-
-        $dispatcher->dispatch('onEvent', new Event());
-        $dispatcher->removeListener('onEvent', array($container->get('service.listener'), 'onEvent'));
-        $this->assertFalse($dispatcher->hasListeners('onEvent'));
-    }
-
-    public function testRemoveBeforeDispatch()
-    {
-        $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service');
-
-        $container = new Container();
-        $container->set('service.listener', $service);
-
-        $dispatcher = new ContainerAwareEventDispatcher($container);
-        $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'));
-
-        $dispatcher->removeListener('onEvent', array($container->get('service.listener'), 'onEvent'));
-        $this->assertFalse($dispatcher->hasListeners('onEvent'));
-    }
-}
-
-class Service
-{
-    public function onEvent(Event $e)
-    {
-    }
-}
-
-class SubscriberService implements EventSubscriberInterface
-{
-    public static function getSubscribedEvents()
-    {
-        return array(
-            'onEvent' => array('onEvent'),
-        );
-    }
-
-    public function onEvent(Event $e)
-    {
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php
deleted file mode 100644
index 24e6002..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests\Debug;
-
-use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\Stopwatch\Stopwatch;
-
-class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAddRemoveListener()
-    {
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-
-        $tdispatcher->addListener('foo', $listener = function () {; });
-        $listeners = $dispatcher->getListeners('foo');
-        $this->assertCount(1, $listeners);
-        $this->assertSame($listener, $listeners[0]);
-
-        $tdispatcher->removeListener('foo', $listener);
-        $this->assertCount(0, $dispatcher->getListeners('foo'));
-    }
-
-    public function testGetListeners()
-    {
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-
-        $tdispatcher->addListener('foo', $listener = function () {; });
-        $this->assertSame($dispatcher->getListeners('foo'), $tdispatcher->getListeners('foo'));
-    }
-
-    public function testHasListeners()
-    {
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-
-        $this->assertFalse($dispatcher->hasListeners('foo'));
-        $this->assertFalse($tdispatcher->hasListeners('foo'));
-
-        $tdispatcher->addListener('foo', $listener = function () {; });
-        $this->assertTrue($dispatcher->hasListeners('foo'));
-        $this->assertTrue($tdispatcher->hasListeners('foo'));
-    }
-
-    public function testAddRemoveSubscriber()
-    {
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-
-        $subscriber = new EventSubscriber();
-
-        $tdispatcher->addSubscriber($subscriber);
-        $listeners = $dispatcher->getListeners('foo');
-        $this->assertCount(1, $listeners);
-        $this->assertSame(array($subscriber, 'call'), $listeners[0]);
-
-        $tdispatcher->removeSubscriber($subscriber);
-        $this->assertCount(0, $dispatcher->getListeners('foo'));
-    }
-
-    public function testGetCalledListeners()
-    {
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-        $tdispatcher->addListener('foo', $listener = function () {; });
-
-        $this->assertEquals(array(), $tdispatcher->getCalledListeners());
-        $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getNotCalledListeners());
-
-        $tdispatcher->dispatch('foo');
-
-        $this->assertEquals(array('foo.closure' => array('event' => 'foo', 'type' => 'Closure', 'pretty' => 'closure')), $tdispatcher->getCalledListeners());
-        $this->assertEquals(array(), $tdispatcher->getNotCalledListeners());
-    }
-
-    public function testGetCalledListenersNested()
-    {
-        $tdispatcher = null;
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $dispatcher->addListener('foo', function (Event $event, $eventName, $dispatcher) use (&$tdispatcher) {
-            $tdispatcher = $dispatcher;
-            $dispatcher->dispatch('bar');
-        });
-        $dispatcher->addListener('bar', function (Event $event) {});
-        $dispatcher->dispatch('foo');
-        $this->assertSame($dispatcher, $tdispatcher);
-        $this->assertCount(2, $dispatcher->getCalledListeners());
-    }
-
-    public function testLogger()
-    {
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger);
-        $tdispatcher->addListener('foo', $listener1 = function () {; });
-        $tdispatcher->addListener('foo', $listener2 = function () {; });
-
-        $logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\".");
-        $logger->expects($this->at(1))->method('debug')->with("Notified event \"foo\" to listener \"closure\".");
-
-        $tdispatcher->dispatch('foo');
-    }
-
-    public function testLoggerWithStoppedEvent()
-    {
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch(), $logger);
-        $tdispatcher->addListener('foo', $listener1 = function (Event $event) { $event->stopPropagation(); });
-        $tdispatcher->addListener('foo', $listener2 = function () {; });
-
-        $logger->expects($this->at(0))->method('debug')->with("Notified event \"foo\" to listener \"closure\".");
-        $logger->expects($this->at(1))->method('debug')->with("Listener \"closure\" stopped propagation of the event \"foo\".");
-        $logger->expects($this->at(2))->method('debug')->with("Listener \"closure\" was not called for event \"foo\".");
-
-        $tdispatcher->dispatch('foo');
-    }
-
-    public function testDispatchCallListeners()
-    {
-        $called = array();
-
-        $dispatcher = new EventDispatcher();
-        $tdispatcher = new TraceableEventDispatcher($dispatcher, new Stopwatch());
-        $tdispatcher->addListener('foo', $listener1 = function () use (&$called) { $called[] = 'foo1'; });
-        $tdispatcher->addListener('foo', $listener2 = function () use (&$called) { $called[] = 'foo2'; });
-
-        $tdispatcher->dispatch('foo');
-
-        $this->assertEquals(array('foo1', 'foo2'), $called);
-    }
-
-    public function testDispatchNested()
-    {
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $loop = 1;
-        $dispatcher->addListener('foo', $listener1 = function () use ($dispatcher, &$loop) {
-            ++$loop;
-            if (2 == $loop) {
-                $dispatcher->dispatch('foo');
-            }
-        });
-
-        $dispatcher->dispatch('foo');
-    }
-
-    public function testDispatchReusedEventNested()
-    {
-        $nestedCall = false;
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $dispatcher->addListener('foo', function (Event $e) use ($dispatcher) {
-            $dispatcher->dispatch('bar', $e);
-        });
-        $dispatcher->addListener('bar', function (Event $e) use (&$nestedCall) {
-            $nestedCall = true;
-        });
-
-        $this->assertFalse($nestedCall);
-        $dispatcher->dispatch('foo');
-        $this->assertTrue($nestedCall);
-    }
-
-    public function testListenerCanRemoveItselfWhenExecuted()
-    {
-        $eventDispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $listener1 = function ($event, $eventName, EventDispatcherInterface $dispatcher) use (&$listener1) {
-            $dispatcher->removeListener('foo', $listener1);
-        };
-        $eventDispatcher->addListener('foo', $listener1);
-        $eventDispatcher->addListener('foo', function () {});
-        $eventDispatcher->dispatch('foo');
-
-        $this->assertCount(1, $eventDispatcher->getListeners('foo'), 'expected listener1 to be removed');
-    }
-}
-
-class EventSubscriber implements EventSubscriberInterface
-{
-    public static function getSubscribedEvents()
-    {
-        return array('foo' => 'call');
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php b/core/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
deleted file mode 100644
index 0fdd637..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass;
-
-class RegisterListenersPassTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Tests that event subscribers not implementing EventSubscriberInterface
-     * trigger an exception.
-     *
-     * @expectedException \InvalidArgumentException
-     */
-    public function testEventSubscriberWithoutInterface()
-    {
-        // one service, not implementing any interface
-        $services = array(
-            'my_event_subscriber' => array(0 => array()),
-        );
-
-        $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $definition->expects($this->atLeastOnce())
-            ->method('isPublic')
-            ->will($this->returnValue(true));
-        $definition->expects($this->atLeastOnce())
-            ->method('getClass')
-            ->will($this->returnValue('stdClass'));
-
-        $builder = $this->getMock(
-            'Symfony\Component\DependencyInjection\ContainerBuilder',
-            array('hasDefinition', 'findTaggedServiceIds', 'getDefinition')
-        );
-        $builder->expects($this->any())
-            ->method('hasDefinition')
-            ->will($this->returnValue(true));
-
-        // We don't test kernel.event_listener here
-        $builder->expects($this->atLeastOnce())
-            ->method('findTaggedServiceIds')
-            ->will($this->onConsecutiveCalls(array(), $services));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('getDefinition')
-            ->will($this->returnValue($definition));
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($builder);
-    }
-
-    public function testValidEventSubscriber()
-    {
-        $services = array(
-            'my_event_subscriber' => array(0 => array()),
-        );
-
-        $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $definition->expects($this->atLeastOnce())
-            ->method('isPublic')
-            ->will($this->returnValue(true));
-        $definition->expects($this->atLeastOnce())
-            ->method('getClass')
-            ->will($this->returnValue('Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService'));
-
-        $builder = $this->getMock(
-            'Symfony\Component\DependencyInjection\ContainerBuilder',
-            array('hasDefinition', 'findTaggedServiceIds', 'getDefinition', 'findDefinition')
-        );
-        $builder->expects($this->any())
-            ->method('hasDefinition')
-            ->will($this->returnValue(true));
-
-        // We don't test kernel.event_listener here
-        $builder->expects($this->atLeastOnce())
-            ->method('findTaggedServiceIds')
-            ->will($this->onConsecutiveCalls(array(), $services));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('getDefinition')
-            ->will($this->returnValue($definition));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('findDefinition')
-            ->will($this->returnValue($definition));
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($builder);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The service "foo" must be public as event listeners are lazy-loaded.
-     */
-    public function testPrivateEventListener()
-    {
-        $container = new ContainerBuilder();
-        $container->register('foo', 'stdClass')->setPublic(false)->addTag('kernel.event_listener', array());
-        $container->register('event_dispatcher', 'stdClass');
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($container);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The service "foo" must be public as event subscribers are lazy-loaded.
-     */
-    public function testPrivateEventSubscriber()
-    {
-        $container = new ContainerBuilder();
-        $container->register('foo', 'stdClass')->setPublic(false)->addTag('kernel.event_subscriber', array());
-        $container->register('event_dispatcher', 'stdClass');
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($container);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The service "foo" must not be abstract as event listeners are lazy-loaded.
-     */
-    public function testAbstractEventListener()
-    {
-        $container = new ContainerBuilder();
-        $container->register('foo', 'stdClass')->setAbstract(true)->addTag('kernel.event_listener', array());
-        $container->register('event_dispatcher', 'stdClass');
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($container);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The service "foo" must not be abstract as event subscribers are lazy-loaded.
-     */
-    public function testAbstractEventSubscriber()
-    {
-        $container = new ContainerBuilder();
-        $container->register('foo', 'stdClass')->setAbstract(true)->addTag('kernel.event_subscriber', array());
-        $container->register('event_dispatcher', 'stdClass');
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($container);
-    }
-
-    public function testEventSubscriberResolvableClassName()
-    {
-        $container = new ContainerBuilder();
-
-        $container->setParameter('subscriber.class', 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService');
-        $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array());
-        $container->register('event_dispatcher', 'stdClass');
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($container);
-
-        $definition = $container->getDefinition('event_dispatcher');
-        $expected_calls = array(
-            array(
-                'addSubscriberService',
-                array(
-                    'foo',
-                    'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService',
-                ),
-            ),
-        );
-        $this->assertSame($expected_calls, $definition->getMethodCalls());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage You have requested a non-existent parameter "subscriber.class"
-     */
-    public function testEventSubscriberUnresolvableClassName()
-    {
-        $container = new ContainerBuilder();
-        $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array());
-        $container->register('event_dispatcher', 'stdClass');
-
-        $registerListenersPass = new RegisterListenersPass();
-        $registerListenersPass->process($container);
-    }
-}
-
-class SubscriberService implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
-{
-    public static function getSubscribedEvents()
-    {
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php
deleted file mode 100644
index 5faa5c8..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests;
-
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class EventDispatcherTest extends AbstractEventDispatcherTest
-{
-    protected function createEventDispatcher()
-    {
-        return new EventDispatcher();
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/EventTest.php b/core/vendor/symfony/event-dispatcher/Tests/EventTest.php
deleted file mode 100644
index 9a82267..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/EventTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests;
-
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-/**
- * Test class for Event.
- */
-class EventTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Symfony\Component\EventDispatcher\Event
-     */
-    protected $event;
-
-    /**
-     * @var \Symfony\Component\EventDispatcher\EventDispatcher
-     */
-    protected $dispatcher;
-
-    /**
-     * Sets up the fixture, for example, opens a network connection.
-     * This method is called before a test is executed.
-     */
-    protected function setUp()
-    {
-        $this->event = new Event();
-        $this->dispatcher = new EventDispatcher();
-    }
-
-    /**
-     * Tears down the fixture, for example, closes a network connection.
-     * This method is called after a test is executed.
-     */
-    protected function tearDown()
-    {
-        $this->event = null;
-        $this->dispatcher = null;
-    }
-
-    public function testIsPropagationStopped()
-    {
-        $this->assertFalse($this->event->isPropagationStopped());
-    }
-
-    public function testStopPropagationAndIsPropagationStopped()
-    {
-        $this->event->stopPropagation();
-        $this->assertTrue($this->event->isPropagationStopped());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySetDispatcher()
-    {
-        $this->event->setDispatcher($this->dispatcher);
-        $this->assertSame($this->dispatcher, $this->event->getDispatcher());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyGetDispatcher()
-    {
-        $this->assertNull($this->event->getDispatcher());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyGetName()
-    {
-        $this->assertNull($this->event->getName());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySetName()
-    {
-        $this->event->setName('foo');
-        $this->assertEquals('foo', $this->event->getName());
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/GenericEventTest.php b/core/vendor/symfony/event-dispatcher/Tests/GenericEventTest.php
deleted file mode 100644
index aebd82d..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/GenericEventTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests;
-
-use Symfony\Component\EventDispatcher\GenericEvent;
-
-/**
- * Test class for Event.
- */
-class GenericEventTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var GenericEvent
-     */
-    private $event;
-
-    private $subject;
-
-    /**
-     * Prepares the environment before running a test.
-     */
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->subject = new \stdClass();
-        $this->event = new GenericEvent($this->subject, array('name' => 'Event'));
-    }
-
-    /**
-     * Cleans up the environment after running a test.
-     */
-    protected function tearDown()
-    {
-        $this->subject = null;
-        $this->event = null;
-
-        parent::tearDown();
-    }
-
-    public function testConstruct()
-    {
-        $this->assertEquals($this->event, new GenericEvent($this->subject, array('name' => 'Event')));
-    }
-
-    /**
-     * Tests Event->getArgs().
-     */
-    public function testGetArguments()
-    {
-        // test getting all
-        $this->assertSame(array('name' => 'Event'), $this->event->getArguments());
-    }
-
-    public function testSetArguments()
-    {
-        $result = $this->event->setArguments(array('foo' => 'bar'));
-        $this->assertAttributeSame(array('foo' => 'bar'), 'arguments', $this->event);
-        $this->assertSame($this->event, $result);
-    }
-
-    public function testSetArgument()
-    {
-        $result = $this->event->setArgument('foo2', 'bar2');
-        $this->assertAttributeSame(array('name' => 'Event', 'foo2' => 'bar2'), 'arguments', $this->event);
-        $this->assertEquals($this->event, $result);
-    }
-
-    public function testGetArgument()
-    {
-        // test getting key
-        $this->assertEquals('Event', $this->event->getArgument('name'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testGetArgException()
-    {
-        $this->event->getArgument('nameNotExist');
-    }
-
-    public function testOffsetGet()
-    {
-        // test getting key
-        $this->assertEquals('Event', $this->event['name']);
-
-        // test getting invalid arg
-        $this->setExpectedException('InvalidArgumentException');
-        $this->assertFalse($this->event['nameNotExist']);
-    }
-
-    public function testOffsetSet()
-    {
-        $this->event['foo2'] = 'bar2';
-        $this->assertAttributeSame(array('name' => 'Event', 'foo2' => 'bar2'), 'arguments', $this->event);
-    }
-
-    public function testOffsetUnset()
-    {
-        unset($this->event['name']);
-        $this->assertAttributeSame(array(), 'arguments', $this->event);
-    }
-
-    public function testOffsetIsset()
-    {
-        $this->assertTrue(isset($this->event['name']));
-        $this->assertFalse(isset($this->event['nameNotExist']));
-    }
-
-    public function testHasArgument()
-    {
-        $this->assertTrue($this->event->hasArgument('name'));
-        $this->assertFalse($this->event->hasArgument('nameNotExist'));
-    }
-
-    public function testGetSubject()
-    {
-        $this->assertSame($this->subject, $this->event->getSubject());
-    }
-
-    public function testHasIterator()
-    {
-        $data = array();
-        foreach ($this->event as $key => $value) {
-            $data[$key] = $value;
-        }
-        $this->assertEquals(array('name' => 'Event'), $data);
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php
deleted file mode 100644
index 80a7e43..0000000
--- a/core/vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\EventDispatcher\Tests;
-
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\EventDispatcher\ImmutableEventDispatcher;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ImmutableEventDispatcherTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    private $innerDispatcher;
-
-    /**
-     * @var ImmutableEventDispatcher
-     */
-    private $dispatcher;
-
-    protected function setUp()
-    {
-        $this->innerDispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
-        $this->dispatcher = new ImmutableEventDispatcher($this->innerDispatcher);
-    }
-
-    public function testDispatchDelegates()
-    {
-        $event = new Event();
-
-        $this->innerDispatcher->expects($this->once())
-            ->method('dispatch')
-            ->with('event', $event)
-            ->will($this->returnValue('result'));
-
-        $this->assertSame('result', $this->dispatcher->dispatch('event', $event));
-    }
-
-    public function testGetListenersDelegates()
-    {
-        $this->innerDispatcher->expects($this->once())
-            ->method('getListeners')
-            ->with('event')
-            ->will($this->returnValue('result'));
-
-        $this->assertSame('result', $this->dispatcher->getListeners('event'));
-    }
-
-    public function testHasListenersDelegates()
-    {
-        $this->innerDispatcher->expects($this->once())
-            ->method('hasListeners')
-            ->with('event')
-            ->will($this->returnValue('result'));
-
-        $this->assertSame('result', $this->dispatcher->hasListeners('event'));
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testAddListenerDisallowed()
-    {
-        $this->dispatcher->addListener('event', function () { return 'foo'; });
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testAddSubscriberDisallowed()
-    {
-        $subscriber = $this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface');
-
-        $this->dispatcher->addSubscriber($subscriber);
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testRemoveListenerDisallowed()
-    {
-        $this->dispatcher->removeListener('event', function () { return 'foo'; });
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testRemoveSubscriberDisallowed()
-    {
-        $subscriber = $this->getMock('Symfony\Component\EventDispatcher\EventSubscriberInterface');
-
-        $this->dispatcher->removeSubscriber($subscriber);
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/composer.json b/core/vendor/symfony/event-dispatcher/composer.json
deleted file mode 100644
index d705862..0000000
--- a/core/vendor/symfony/event-dispatcher/composer.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-    "name": "symfony/event-dispatcher",
-    "type": "library",
-    "description": "Symfony EventDispatcher Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/dependency-injection": "~2.6",
-        "symfony/expression-language": "~2.6",
-        "symfony/config": "~2.0,>=2.0.5",
-        "symfony/stopwatch": "~2.3",
-        "psr/log": "~1.0"
-    },
-    "suggest": {
-        "symfony/dependency-injection": "",
-        "symfony/http-kernel": ""
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/event-dispatcher/phpunit.xml.dist b/core/vendor/symfony/event-dispatcher/phpunit.xml.dist
deleted file mode 100644
index ae0586e..0000000
--- a/core/vendor/symfony/event-dispatcher/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony EventDispatcher Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/http-foundation/.gitignore b/core/vendor/symfony/http-foundation/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/http-foundation/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/http-foundation/AcceptHeader.php b/core/vendor/symfony/http-foundation/AcceptHeader.php
deleted file mode 100644
index 2260787..0000000
--- a/core/vendor/symfony/http-foundation/AcceptHeader.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Represents an Accept-* header.
- *
- * An accept header is compound with a list of items,
- * sorted by descending quality.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class AcceptHeader
-{
-    /**
-     * @var AcceptHeaderItem[]
-     */
-    private $items = array();
-
-    /**
-     * @var bool
-     */
-    private $sorted = true;
-
-    /**
-     * Constructor.
-     *
-     * @param AcceptHeaderItem[] $items
-     */
-    public function __construct(array $items)
-    {
-        foreach ($items as $item) {
-            $this->add($item);
-        }
-    }
-
-    /**
-     * Builds an AcceptHeader instance from a string.
-     *
-     * @param string $headerValue
-     *
-     * @return AcceptHeader
-     */
-    public static function fromString($headerValue)
-    {
-        $index = 0;
-
-        return new self(array_map(function ($itemValue) use (&$index) {
-            $item = AcceptHeaderItem::fromString($itemValue);
-            $item->setIndex($index++);
-
-            return $item;
-        }, preg_split('/\s*(?:,*("[^"]+"),*|,*(\'[^\']+\'),*|,+)\s*/', $headerValue, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE)));
-    }
-
-    /**
-     * Returns header value's string representation.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return implode(',', $this->items);
-    }
-
-    /**
-     * Tests if header has given value.
-     *
-     * @param string $value
-     *
-     * @return bool
-     */
-    public function has($value)
-    {
-        return isset($this->items[$value]);
-    }
-
-    /**
-     * Returns given value's item, if exists.
-     *
-     * @param string $value
-     *
-     * @return AcceptHeaderItem|null
-     */
-    public function get($value)
-    {
-        return isset($this->items[$value]) ? $this->items[$value] : null;
-    }
-
-    /**
-     * Adds an item.
-     *
-     * @param AcceptHeaderItem $item
-     *
-     * @return AcceptHeader
-     */
-    public function add(AcceptHeaderItem $item)
-    {
-        $this->items[$item->getValue()] = $item;
-        $this->sorted = false;
-
-        return $this;
-    }
-
-    /**
-     * Returns all items.
-     *
-     * @return AcceptHeaderItem[]
-     */
-    public function all()
-    {
-        $this->sort();
-
-        return $this->items;
-    }
-
-    /**
-     * Filters items on their value using given regex.
-     *
-     * @param string $pattern
-     *
-     * @return AcceptHeader
-     */
-    public function filter($pattern)
-    {
-        return new self(array_filter($this->items, function (AcceptHeaderItem $item) use ($pattern) {
-            return preg_match($pattern, $item->getValue());
-        }));
-    }
-
-    /**
-     * Returns first item.
-     *
-     * @return AcceptHeaderItem|null
-     */
-    public function first()
-    {
-        $this->sort();
-
-        return !empty($this->items) ? reset($this->items) : null;
-    }
-
-    /**
-     * Sorts items by descending quality.
-     */
-    private function sort()
-    {
-        if (!$this->sorted) {
-            uasort($this->items, function ($a, $b) {
-                $qA = $a->getQuality();
-                $qB = $b->getQuality();
-
-                if ($qA === $qB) {
-                    return $a->getIndex() > $b->getIndex() ? 1 : -1;
-                }
-
-                return $qA > $qB ? -1 : 1;
-            });
-
-            $this->sorted = true;
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/AcceptHeaderItem.php b/core/vendor/symfony/http-foundation/AcceptHeaderItem.php
deleted file mode 100644
index 21a5d15..0000000
--- a/core/vendor/symfony/http-foundation/AcceptHeaderItem.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Represents an Accept-* header item.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class AcceptHeaderItem
-{
-    /**
-     * @var string
-     */
-    private $value;
-
-    /**
-     * @var float
-     */
-    private $quality = 1.0;
-
-    /**
-     * @var int
-     */
-    private $index = 0;
-
-    /**
-     * @var array
-     */
-    private $attributes = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $value
-     * @param array  $attributes
-     */
-    public function __construct($value, array $attributes = array())
-    {
-        $this->value = $value;
-        foreach ($attributes as $name => $value) {
-            $this->setAttribute($name, $value);
-        }
-    }
-
-    /**
-     * Builds an AcceptHeaderInstance instance from a string.
-     *
-     * @param string $itemValue
-     *
-     * @return AcceptHeaderItem
-     */
-    public static function fromString($itemValue)
-    {
-        $bits = preg_split('/\s*(?:;*("[^"]+");*|;*(\'[^\']+\');*|;+)\s*/', $itemValue, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
-        $value = array_shift($bits);
-        $attributes = array();
-
-        $lastNullAttribute = null;
-        foreach ($bits as $bit) {
-            if (($start = substr($bit, 0, 1)) === ($end = substr($bit, -1)) && ($start === '"' || $start === '\'')) {
-                $attributes[$lastNullAttribute] = substr($bit, 1, -1);
-            } elseif ('=' === $end) {
-                $lastNullAttribute = $bit = substr($bit, 0, -1);
-                $attributes[$bit] = null;
-            } else {
-                $parts = explode('=', $bit);
-                $attributes[$parts[0]] = isset($parts[1]) && strlen($parts[1]) > 0 ? $parts[1] : '';
-            }
-        }
-
-        return new self(($start = substr($value, 0, 1)) === ($end = substr($value, -1)) && ($start === '"' || $start === '\'') ? substr($value, 1, -1) : $value, $attributes);
-    }
-
-    /**
-     * Returns header  value's string representation.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        $string = $this->value.($this->quality < 1 ? ';q='.$this->quality : '');
-        if (count($this->attributes) > 0) {
-            $string .= ';'.implode(';', array_map(function ($name, $value) {
-                return sprintf(preg_match('/[,;=]/', $value) ? '%s="%s"' : '%s=%s', $name, $value);
-            }, array_keys($this->attributes), $this->attributes));
-        }
-
-        return $string;
-    }
-
-    /**
-     * Set the item value.
-     *
-     * @param string $value
-     *
-     * @return AcceptHeaderItem
-     */
-    public function setValue($value)
-    {
-        $this->value = $value;
-
-        return $this;
-    }
-
-    /**
-     * Returns the item value.
-     *
-     * @return string
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Set the item quality.
-     *
-     * @param float $quality
-     *
-     * @return AcceptHeaderItem
-     */
-    public function setQuality($quality)
-    {
-        $this->quality = $quality;
-
-        return $this;
-    }
-
-    /**
-     * Returns the item quality.
-     *
-     * @return float
-     */
-    public function getQuality()
-    {
-        return $this->quality;
-    }
-
-    /**
-     * Set the item index.
-     *
-     * @param int $index
-     *
-     * @return AcceptHeaderItem
-     */
-    public function setIndex($index)
-    {
-        $this->index = $index;
-
-        return $this;
-    }
-
-    /**
-     * Returns the item index.
-     *
-     * @return int
-     */
-    public function getIndex()
-    {
-        return $this->index;
-    }
-
-    /**
-     * Tests if an attribute exists.
-     *
-     * @param string $name
-     *
-     * @return bool
-     */
-    public function hasAttribute($name)
-    {
-        return isset($this->attributes[$name]);
-    }
-
-    /**
-     * Returns an attribute by its name.
-     *
-     * @param string $name
-     * @param mixed  $default
-     *
-     * @return mixed
-     */
-    public function getAttribute($name, $default = null)
-    {
-        return isset($this->attributes[$name]) ? $this->attributes[$name] : $default;
-    }
-
-    /**
-     * Returns all attributes.
-     *
-     * @return array
-     */
-    public function getAttributes()
-    {
-        return $this->attributes;
-    }
-
-    /**
-     * Set an attribute.
-     *
-     * @param string $name
-     * @param string $value
-     *
-     * @return AcceptHeaderItem
-     */
-    public function setAttribute($name, $value)
-    {
-        if ('q' === $name) {
-            $this->quality = (float) $value;
-        } else {
-            $this->attributes[$name] = (string) $value;
-        }
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/ApacheRequest.php b/core/vendor/symfony/http-foundation/ApacheRequest.php
deleted file mode 100644
index 84803eb..0000000
--- a/core/vendor/symfony/http-foundation/ApacheRequest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Request represents an HTTP request from an Apache server.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ApacheRequest extends Request
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function prepareRequestUri()
-    {
-        return $this->server->get('REQUEST_URI');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function prepareBaseUrl()
-    {
-        $baseUrl = $this->server->get('SCRIPT_NAME');
-
-        if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
-            // assume mod_rewrite
-            return rtrim(dirname($baseUrl), '/\\');
-        }
-
-        return $baseUrl;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/BinaryFileResponse.php b/core/vendor/symfony/http-foundation/BinaryFileResponse.php
deleted file mode 100644
index ac41c8f..0000000
--- a/core/vendor/symfony/http-foundation/BinaryFileResponse.php
+++ /dev/null
@@ -1,321 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-use Symfony\Component\HttpFoundation\File\File;
-use Symfony\Component\HttpFoundation\File\Exception\FileException;
-
-/**
- * BinaryFileResponse represents an HTTP response delivering a file.
- *
- * @author Niklas Fiekas <niklas.fiekas@tu-clausthal.de>
- * @author stealth35 <stealth35-php@live.fr>
- * @author Igor Wiedler <igor@wiedler.ch>
- * @author Jordan Alliot <jordan.alliot@gmail.com>
- * @author Sergey Linnik <linniksa@gmail.com>
- */
-class BinaryFileResponse extends Response
-{
-    protected static $trustXSendfileTypeHeader = false;
-
-    protected $file;
-    protected $offset;
-    protected $maxlen;
-    protected $deleteFileAfterSend = false;
-
-    /**
-     * Constructor.
-     *
-     * @param \SplFileInfo|string $file               The file to stream
-     * @param int                 $status             The response status code
-     * @param array               $headers            An array of response headers
-     * @param bool                $public             Files are public by default
-     * @param null|string         $contentDisposition The type of Content-Disposition to set automatically with the filename
-     * @param bool                $autoEtag           Whether the ETag header should be automatically set
-     * @param bool                $autoLastModified   Whether the Last-Modified header should be automatically set
-     */
-    public function __construct($file, $status = 200, $headers = array(), $public = true, $contentDisposition = null, $autoEtag = false, $autoLastModified = true)
-    {
-        parent::__construct(null, $status, $headers);
-
-        $this->setFile($file, $contentDisposition, $autoEtag, $autoLastModified);
-
-        if ($public) {
-            $this->setPublic();
-        }
-    }
-
-    /**
-     * @param \SplFileInfo|string $file               The file to stream
-     * @param int                 $status             The response status code
-     * @param array               $headers            An array of response headers
-     * @param bool                $public             Files are public by default
-     * @param null|string         $contentDisposition The type of Content-Disposition to set automatically with the filename
-     * @param bool                $autoEtag           Whether the ETag header should be automatically set
-     * @param bool                $autoLastModified   Whether the Last-Modified header should be automatically set
-     *
-     * @return BinaryFileResponse The created response
-     */
-    public static function create($file = null, $status = 200, $headers = array(), $public = true, $contentDisposition = null, $autoEtag = false, $autoLastModified = true)
-    {
-        return new static($file, $status, $headers, $public, $contentDisposition, $autoEtag, $autoLastModified);
-    }
-
-    /**
-     * Sets the file to stream.
-     *
-     * @param \SplFileInfo|string $file               The file to stream
-     * @param string              $contentDisposition
-     * @param bool                $autoEtag
-     * @param bool                $autoLastModified
-     *
-     * @return BinaryFileResponse
-     *
-     * @throws FileException
-     */
-    public function setFile($file, $contentDisposition = null, $autoEtag = false, $autoLastModified = true)
-    {
-        if (!$file instanceof File) {
-            if ($file instanceof \SplFileInfo) {
-                $file = new File($file->getPathname());
-            } else {
-                $file = new File((string) $file);
-            }
-        }
-
-        if (!$file->isReadable()) {
-            throw new FileException('File must be readable.');
-        }
-
-        $this->file = $file;
-
-        if ($autoEtag) {
-            $this->setAutoEtag();
-        }
-
-        if ($autoLastModified) {
-            $this->setAutoLastModified();
-        }
-
-        if ($contentDisposition) {
-            $this->setContentDisposition($contentDisposition);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the file.
-     *
-     * @return File The file to stream
-     */
-    public function getFile()
-    {
-        return $this->file;
-    }
-
-    /**
-     * Automatically sets the Last-Modified header according the file modification date.
-     */
-    public function setAutoLastModified()
-    {
-        $this->setLastModified(\DateTime::createFromFormat('U', $this->file->getMTime()));
-
-        return $this;
-    }
-
-    /**
-     * Automatically sets the ETag header according to the checksum of the file.
-     */
-    public function setAutoEtag()
-    {
-        $this->setEtag(sha1_file($this->file->getPathname()));
-
-        return $this;
-    }
-
-    /**
-     * Sets the Content-Disposition header with the given filename.
-     *
-     * @param string $disposition      ResponseHeaderBag::DISPOSITION_INLINE or ResponseHeaderBag::DISPOSITION_ATTACHMENT
-     * @param string $filename         Optionally use this filename instead of the real name of the file
-     * @param string $filenameFallback A fallback filename, containing only ASCII characters. Defaults to an automatically encoded filename
-     *
-     * @return BinaryFileResponse
-     */
-    public function setContentDisposition($disposition, $filename = '', $filenameFallback = '')
-    {
-        if ($filename === '') {
-            $filename = $this->file->getFilename();
-        }
-
-        $dispositionHeader = $this->headers->makeDisposition($disposition, $filename, $filenameFallback);
-        $this->headers->set('Content-Disposition', $dispositionHeader);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function prepare(Request $request)
-    {
-        $this->headers->set('Content-Length', $this->file->getSize());
-
-        if (!$this->headers->has('Accept-Ranges')) {
-            // Only accept ranges on safe HTTP methods
-            $this->headers->set('Accept-Ranges', $request->isMethodSafe() ? 'bytes' : 'none');
-        }
-
-        if (!$this->headers->has('Content-Type')) {
-            $this->headers->set('Content-Type', $this->file->getMimeType() ?: 'application/octet-stream');
-        }
-
-        if ('HTTP/1.0' != $request->server->get('SERVER_PROTOCOL')) {
-            $this->setProtocolVersion('1.1');
-        }
-
-        $this->ensureIEOverSSLCompatibility($request);
-
-        $this->offset = 0;
-        $this->maxlen = -1;
-
-        if (self::$trustXSendfileTypeHeader && $request->headers->has('X-Sendfile-Type')) {
-            // Use X-Sendfile, do not send any content.
-            $type = $request->headers->get('X-Sendfile-Type');
-            $path = $this->file->getRealPath();
-            if (strtolower($type) == 'x-accel-redirect') {
-                // Do X-Accel-Mapping substitutions.
-                // @link http://wiki.nginx.org/X-accel#X-Accel-Redirect
-                foreach (explode(',', $request->headers->get('X-Accel-Mapping', '')) as $mapping) {
-                    $mapping = explode('=', $mapping, 2);
-
-                    if (2 == count($mapping)) {
-                        $pathPrefix = trim($mapping[0]);
-                        $location = trim($mapping[1]);
-
-                        if (substr($path, 0, strlen($pathPrefix)) == $pathPrefix) {
-                            $path = $location.substr($path, strlen($pathPrefix));
-                            break;
-                        }
-                    }
-                }
-            }
-            $this->headers->set($type, $path);
-            $this->maxlen = 0;
-        } elseif ($request->headers->has('Range')) {
-            // Process the range headers.
-            if (!$request->headers->has('If-Range') || $this->getEtag() == $request->headers->get('If-Range')) {
-                $range = $request->headers->get('Range');
-                $fileSize = $this->file->getSize();
-
-                list($start, $end) = explode('-', substr($range, 6), 2) + array(0);
-
-                $end = ('' === $end) ? $fileSize - 1 : (int) $end;
-
-                if ('' === $start) {
-                    $start = $fileSize - $end;
-                    $end = $fileSize - 1;
-                } else {
-                    $start = (int) $start;
-                }
-
-                if ($start <= $end) {
-                    if ($start < 0 || $end > $fileSize - 1) {
-                        $this->setStatusCode(416);
-                    } elseif ($start !== 0 || $end !== $fileSize - 1) {
-                        $this->maxlen = $end < $fileSize ? $end - $start + 1 : -1;
-                        $this->offset = $start;
-
-                        $this->setStatusCode(206);
-                        $this->headers->set('Content-Range', sprintf('bytes %s-%s/%s', $start, $end, $fileSize));
-                        $this->headers->set('Content-Length', $end - $start + 1);
-                    }
-                }
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Sends the file.
-     */
-    public function sendContent()
-    {
-        if (!$this->isSuccessful()) {
-            parent::sendContent();
-
-            return;
-        }
-
-        if (0 === $this->maxlen) {
-            return;
-        }
-
-        $out = fopen('php://output', 'wb');
-        $file = fopen($this->file->getPathname(), 'rb');
-
-        stream_copy_to_stream($file, $out, $this->maxlen, $this->offset);
-
-        fclose($out);
-        fclose($file);
-
-        if ($this->deleteFileAfterSend) {
-            unlink($this->file->getPathname());
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws \LogicException when the content is not null
-     */
-    public function setContent($content)
-    {
-        if (null !== $content) {
-            throw new \LogicException('The content cannot be set on a BinaryFileResponse instance.');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return false
-     */
-    public function getContent()
-    {
-        return false;
-    }
-
-    /**
-     * Trust X-Sendfile-Type header.
-     */
-    public static function trustXSendfileTypeHeader()
-    {
-        self::$trustXSendfileTypeHeader = true;
-    }
-
-    /**
-     * If this is set to true, the file will be unlinked after the request is send
-     * Note: If the X-Sendfile header is used, the deleteFileAfterSend setting will not be used.
-     * @param bool $shouldDelete
-     *
-     * @return BinaryFileResponse
-     */
-    public function deleteFileAfterSend($shouldDelete)
-    {
-        $this->deleteFileAfterSend = $shouldDelete;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/CHANGELOG.md b/core/vendor/symfony/http-foundation/CHANGELOG.md
deleted file mode 100644
index dcdeb4e..0000000
--- a/core/vendor/symfony/http-foundation/CHANGELOG.md
+++ /dev/null
@@ -1,122 +0,0 @@
-CHANGELOG
-=========
-
-2.6.0
------
-
- * PdoSessionHandler changes
-   - implemented different session locking strategies to prevent loss of data by concurrent access to the same session
-   - [BC BREAK] save session data in a binary column without base64_encode
-   - [BC BREAK] added lifetime column to the session table which allows to have different lifetimes for each session
-   - implemented lazy connections that are only opened when a session is used by either passing a dsn string
-     explicitly or falling back to session.save_path ini setting
-   - added a createTable method that initializes a correctly defined table depending on the database vendor
-
-2.5.0
------
-
- * added `JsonResponse::setEncodingOptions()` & `JsonResponse::getEncodingOptions()` for easier manipulation
-   of the options used while encoding data to JSON format.
-
-2.4.0
------
-
- * added RequestStack
- * added Request::getEncodings()
- * added accessors methods to session handlers
-
-2.3.0
------
-
- * added support for ranges of IPs in trusted proxies
- * `UploadedFile::isValid` now returns false if the file was not uploaded via HTTP (in a non-test mode)
- * Improved error-handling of `\Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler`
-   to ensure the supplied PDO handler throws Exceptions on error (as the class expects). Added related test cases
-   to verify that Exceptions are properly thrown when the PDO queries fail.
-
-2.2.0
------
-
- * fixed the Request::create() precedence (URI information always take precedence now)
- * added Request::getTrustedProxies()
- * deprecated Request::isProxyTrusted()
- * [BC BREAK] JsonResponse does not turn a top level empty array to an object anymore, use an ArrayObject to enforce objects
- * added a IpUtils class to check if an IP belongs to a CIDR
- * added Request::getRealMethod() to get the "real" HTTP method (getMethod() returns the "intended" HTTP method)
- * disabled _method request parameter support by default (call Request::enableHttpMethodParameterOverride() to
-   enable it, and Request::getHttpMethodParameterOverride() to check if it is supported)
- * Request::splitHttpAcceptHeader() method is deprecated and will be removed in 2.3
- * Deprecated Flashbag::count() and \Countable interface, will be removed in 2.3
-
-2.1.0
------
-
- * added Request::getSchemeAndHttpHost() and Request::getUserInfo()
- * added a fluent interface to the Response class
- * added Request::isProxyTrusted()
- * added JsonResponse
- * added a getTargetUrl method to RedirectResponse
- * added support for streamed responses
- * made Response::prepare() method the place to enforce HTTP specification
- * [BC BREAK] moved management of the locale from the Session class to the Request class
- * added a generic access to the PHP built-in filter mechanism: ParameterBag::filter()
- * made FileBinaryMimeTypeGuesser command configurable
- * added Request::getUser() and Request::getPassword()
- * added support for the PATCH method in Request
- * removed the ContentTypeMimeTypeGuesser class as it is deprecated and never used on PHP 5.3
- * added ResponseHeaderBag::makeDisposition() (implements RFC 6266)
- * made mimetype to extension conversion configurable
- * [BC BREAK] Moved all session related classes and interfaces into own namespace, as
-   `Symfony\Component\HttpFoundation\Session` and renamed classes accordingly.
-   Session handlers are located in the subnamespace `Symfony\Component\HttpFoundation\Session\Handler`.
- * SessionHandlers must implement `\SessionHandlerInterface` or extend from the
-   `Symfony\Component\HttpFoundation\Storage\Handler\NativeSessionHandler` base class.
- * Added internal storage driver proxy mechanism for forward compatibility with
-   PHP 5.4 `\SessionHandler` class.
- * Added session handlers for custom Memcache, Memcached and Null session save handlers.
- * [BC BREAK] Removed `NativeSessionStorage` and replaced with `NativeFileSessionHandler`.
- * [BC BREAK] `SessionStorageInterface` methods removed: `write()`, `read()` and
-   `remove()`.  Added `getBag()`, `registerBag()`.  The `NativeSessionStorage` class
-   is a mediator for the session storage internals including the session handlers
-   which do the real work of participating in the internal PHP session workflow.
- * [BC BREAK] Introduced mock implementations of `SessionStorage` to enable unit
-   and functional testing without starting real PHP sessions.  Removed
-   `ArraySessionStorage`, and replaced with `MockArraySessionStorage` for unit
-   tests; removed `FilesystemSessionStorage`, and replaced with`MockFileSessionStorage`
-   for functional tests.  These do not interact with global session ini
-   configuration values, session functions or `$_SESSION` superglobal. This means
-   they can be configured directly allowing multiple instances to work without
-   conflicting in the same PHP process.
- * [BC BREAK] Removed the `close()` method from the `Session` class, as this is
-   now redundant.
- * Deprecated the following methods from the Session class: `setFlash()`, `setFlashes()`
-   `getFlash()`, `hasFlash()`, and `removeFlash()`. Use `getFlashBag()` instead
-   which returns a `FlashBagInterface`.
- * `Session->clear()` now only clears session attributes as before it cleared
-   flash messages and attributes. `Session->getFlashBag()->all()` clears flashes now.
- * Session data is now managed by `SessionBagInterface` to better encapsulate
-   session data.
- * Refactored session attribute and flash messages system to their own
-  `SessionBagInterface` implementations.
- * Added `FlashBag`. Flashes expire when retrieved by `get()` or `all()`. This
-   implementation is ESI compatible.
- * Added `AutoExpireFlashBag` (default) to replicate Symfony 2.0.x auto expire
-   behaviour of messages auto expiring after one page page load.  Messages must
-   be retrieved by `get()` or `all()`.
- * Added `Symfony\Component\HttpFoundation\Attribute\AttributeBag` to replicate
-   attributes storage behaviour from 2.0.x (default).
- * Added `Symfony\Component\HttpFoundation\Attribute\NamespacedAttributeBag` for
-   namespace session attributes.
- * Flash API can stores messages in an array so there may be multiple messages
-   per flash type.  The old `Session` class API remains without BC break as it
-   will allow single messages as before.
- * Added basic session meta-data to the session to record session create time,
-   last updated time, and the lifetime of the session cookie that was provided
-   to the client.
- * Request::getClientIp() method doesn't take a parameter anymore but bases
-   itself on the trustProxy parameter.
- * Added isMethod() to Request object.
- * [BC BREAK] The methods `getPathInfo()`, `getBaseUrl()` and `getBasePath()` of
-   a `Request` now all return a raw value (vs a urldecoded value before). Any call
-   to one of these methods must be checked and wrapped in a `rawurldecode()` if
-   needed.
diff --git a/core/vendor/symfony/http-foundation/Cookie.php b/core/vendor/symfony/http-foundation/Cookie.php
deleted file mode 100644
index 466d020..0000000
--- a/core/vendor/symfony/http-foundation/Cookie.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Represents a cookie.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @api
- */
-class Cookie
-{
-    protected $name;
-    protected $value;
-    protected $domain;
-    protected $expire;
-    protected $path;
-    protected $secure;
-    protected $httpOnly;
-
-    /**
-     * Constructor.
-     *
-     * @param string               $name     The name of the cookie
-     * @param string               $value    The value of the cookie
-     * @param int|string|\DateTime $expire   The time the cookie expires
-     * @param string               $path     The path on the server in which the cookie will be available on
-     * @param string               $domain   The domain that the cookie is available to
-     * @param bool                 $secure   Whether the cookie should only be transmitted over a secure HTTPS connection from the client
-     * @param bool                 $httpOnly Whether the cookie will be made accessible only through the HTTP protocol
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function __construct($name, $value = null, $expire = 0, $path = '/', $domain = null, $secure = false, $httpOnly = true)
-    {
-        // from PHP source code
-        if (preg_match("/[=,; \t\r\n\013\014]/", $name)) {
-            throw new \InvalidArgumentException(sprintf('The cookie name "%s" contains invalid characters.', $name));
-        }
-
-        if (empty($name)) {
-            throw new \InvalidArgumentException('The cookie name cannot be empty.');
-        }
-
-        // convert expiration time to a Unix timestamp
-        if ($expire instanceof \DateTime) {
-            $expire = $expire->format('U');
-        } elseif (!is_numeric($expire)) {
-            $expire = strtotime($expire);
-
-            if (false === $expire || -1 === $expire) {
-                throw new \InvalidArgumentException('The cookie expiration time is not valid.');
-            }
-        }
-
-        $this->name = $name;
-        $this->value = $value;
-        $this->domain = $domain;
-        $this->expire = $expire;
-        $this->path = empty($path) ? '/' : $path;
-        $this->secure = (bool) $secure;
-        $this->httpOnly = (bool) $httpOnly;
-    }
-
-    /**
-     * Returns the cookie as a string.
-     *
-     * @return string The cookie
-     */
-    public function __toString()
-    {
-        $str = urlencode($this->getName()).'=';
-
-        if ('' === (string) $this->getValue()) {
-            $str .= 'deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001);
-        } else {
-            $str .= urlencode($this->getValue());
-
-            if ($this->getExpiresTime() !== 0) {
-                $str .= '; expires='.gmdate('D, d-M-Y H:i:s T', $this->getExpiresTime());
-            }
-        }
-
-        if ($this->path) {
-            $str .= '; path='.$this->path;
-        }
-
-        if ($this->getDomain()) {
-            $str .= '; domain='.$this->getDomain();
-        }
-
-        if (true === $this->isSecure()) {
-            $str .= '; secure';
-        }
-
-        if (true === $this->isHttpOnly()) {
-            $str .= '; httponly';
-        }
-
-        return $str;
-    }
-
-    /**
-     * Gets the name of the cookie.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Gets the value of the cookie.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Gets the domain that the cookie is available to.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getDomain()
-    {
-        return $this->domain;
-    }
-
-    /**
-     * Gets the time the cookie expires.
-     *
-     * @return int
-     *
-     * @api
-     */
-    public function getExpiresTime()
-    {
-        return $this->expire;
-    }
-
-    /**
-     * Gets the path on the server in which the cookie will be available on.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * Checks whether the cookie should only be transmitted over a secure HTTPS connection from the client.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isSecure()
-    {
-        return $this->secure;
-    }
-
-    /**
-     * Checks whether the cookie will be made accessible only through the HTTP protocol.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isHttpOnly()
-    {
-        return $this->httpOnly;
-    }
-
-    /**
-     * Whether this cookie is about to be cleared.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isCleared()
-    {
-        return $this->expire < time();
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/ExpressionRequestMatcher.php b/core/vendor/symfony/http-foundation/ExpressionRequestMatcher.php
deleted file mode 100644
index e9c8441..0000000
--- a/core/vendor/symfony/http-foundation/ExpressionRequestMatcher.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-
-/**
- * ExpressionRequestMatcher uses an expression to match a Request.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ExpressionRequestMatcher extends RequestMatcher
-{
-    private $language;
-    private $expression;
-
-    public function setExpression(ExpressionLanguage $language, $expression)
-    {
-        $this->language = $language;
-        $this->expression = $expression;
-    }
-
-    public function matches(Request $request)
-    {
-        if (!$this->language) {
-            throw new \LogicException('Unable to match the request as the expression language is not available.');
-        }
-
-        return $this->language->evaluate($this->expression, array(
-            'request' => $request,
-            'method' => $request->getMethod(),
-            'path' => rawurldecode($request->getPathInfo()),
-            'host' => $request->getHost(),
-            'ip' => $request->getClientIp(),
-            'attributes' => $request->attributes->all(),
-        )) && parent::matches($request);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php b/core/vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php
deleted file mode 100644
index 41f7a46..0000000
--- a/core/vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\Exception;
-
-/**
- * Thrown when the access on a file was denied.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class AccessDeniedException extends FileException
-{
-    /**
-     * Constructor.
-     *
-     * @param string $path The path to the accessed file
-     */
-    public function __construct($path)
-    {
-        parent::__construct(sprintf('The file %s could not be accessed', $path));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/Exception/FileException.php b/core/vendor/symfony/http-foundation/File/Exception/FileException.php
deleted file mode 100644
index fad5133..0000000
--- a/core/vendor/symfony/http-foundation/File/Exception/FileException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\Exception;
-
-/**
- * Thrown when an error occurred in the component File.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class FileException extends \RuntimeException
-{
-}
diff --git a/core/vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php b/core/vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php
deleted file mode 100644
index ac90d40..0000000
--- a/core/vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\Exception;
-
-/**
- * Thrown when a file was not found.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class FileNotFoundException extends FileException
-{
-    /**
-     * Constructor.
-     *
-     * @param string $path The path to the file that was not found
-     */
-    public function __construct($path)
-    {
-        parent::__construct(sprintf('The file "%s" does not exist', $path));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php b/core/vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php
deleted file mode 100644
index 0444b87..0000000
--- a/core/vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\Exception;
-
-class UnexpectedTypeException extends FileException
-{
-    public function __construct($value, $expectedType)
-    {
-        parent::__construct(sprintf('Expected argument of type %s, %s given', $expectedType, is_object($value) ? get_class($value) : gettype($value)));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/Exception/UploadException.php b/core/vendor/symfony/http-foundation/File/Exception/UploadException.php
deleted file mode 100644
index 7074e76..0000000
--- a/core/vendor/symfony/http-foundation/File/Exception/UploadException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\Exception;
-
-/**
- * Thrown when an error occurred during file upload.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class UploadException extends FileException
-{
-}
diff --git a/core/vendor/symfony/http-foundation/File/File.php b/core/vendor/symfony/http-foundation/File/File.php
deleted file mode 100644
index b575c85..0000000
--- a/core/vendor/symfony/http-foundation/File/File.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileException;
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
-use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesser;
-
-/**
- * A file in the file system.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class File extends \SplFileInfo
-{
-    /**
-     * Constructs a new file from the given path.
-     *
-     * @param string $path      The path to the file
-     * @param bool   $checkPath Whether to check the path or not
-     *
-     * @throws FileNotFoundException If the given path is not a file
-     *
-     * @api
-     */
-    public function __construct($path, $checkPath = true)
-    {
-        if ($checkPath && !is_file($path)) {
-            throw new FileNotFoundException($path);
-        }
-
-        parent::__construct($path);
-    }
-
-    /**
-     * Returns the extension based on the mime type.
-     *
-     * If the mime type is unknown, returns null.
-     *
-     * This method uses the mime type as guessed by getMimeType()
-     * to guess the file extension.
-     *
-     * @return string|null The guessed extension or null if it cannot be guessed
-     *
-     * @api
-     *
-     * @see ExtensionGuesser
-     * @see getMimeType()
-     */
-    public function guessExtension()
-    {
-        $type = $this->getMimeType();
-        $guesser = ExtensionGuesser::getInstance();
-
-        return $guesser->guess($type);
-    }
-
-    /**
-     * Returns the mime type of the file.
-     *
-     * The mime type is guessed using a MimeTypeGuesser instance, which uses finfo(),
-     * mime_content_type() and the system binary "file" (in this order), depending on
-     * which of those are available.
-     *
-     * @return string|null The guessed mime type (i.e. "application/pdf")
-     *
-     * @see MimeTypeGuesser
-     *
-     * @api
-     */
-    public function getMimeType()
-    {
-        $guesser = MimeTypeGuesser::getInstance();
-
-        return $guesser->guess($this->getPathname());
-    }
-
-    /**
-     * Moves the file to a new location.
-     *
-     * @param string $directory The destination folder
-     * @param string $name      The new file name
-     *
-     * @return File A File object representing the new file
-     *
-     * @throws FileException if the target file could not be created
-     *
-     * @api
-     */
-    public function move($directory, $name = null)
-    {
-        $target = $this->getTargetFile($directory, $name);
-
-        if (!@rename($this->getPathname(), $target)) {
-            $error = error_get_last();
-            throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error['message'])));
-        }
-
-        @chmod($target, 0666 & ~umask());
-
-        return $target;
-    }
-
-    protected function getTargetFile($directory, $name = null)
-    {
-        if (!is_dir($directory)) {
-            if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) {
-                throw new FileException(sprintf('Unable to create the "%s" directory', $directory));
-            }
-        } elseif (!is_writable($directory)) {
-            throw new FileException(sprintf('Unable to write in the "%s" directory', $directory));
-        }
-
-        $target = rtrim($directory, '/\\').DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name));
-
-        return new self($target, false);
-    }
-
-    /**
-     * Returns locale independent base name of the given path.
-     *
-     * @param string $name The new file name
-     *
-     * @return string containing
-     */
-    protected function getName($name)
-    {
-        $originalName = str_replace('\\', '/', $name);
-        $pos = strrpos($originalName, '/');
-        $originalName = false === $pos ? $originalName : substr($originalName, $pos + 1);
-
-        return $originalName;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php b/core/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php
deleted file mode 100644
index ec9b78a..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-/**
- * A singleton mime type to file extension guesser.
- *
- * A default guesser is provided.
- * You can register custom guessers by calling the register()
- * method on the singleton instance:
- *
- *     $guesser = ExtensionGuesser::getInstance();
- *     $guesser->register(new MyCustomExtensionGuesser());
- *
- * The last registered guesser is preferred over previously registered ones.
- */
-class ExtensionGuesser implements ExtensionGuesserInterface
-{
-    /**
-     * The singleton instance.
-     *
-     * @var ExtensionGuesser
-     */
-    private static $instance = null;
-
-    /**
-     * All registered ExtensionGuesserInterface instances.
-     *
-     * @var array
-     */
-    protected $guessers = array();
-
-    /**
-     * Returns the singleton instance.
-     *
-     * @return ExtensionGuesser
-     */
-    public static function getInstance()
-    {
-        if (null === self::$instance) {
-            self::$instance = new self();
-        }
-
-        return self::$instance;
-    }
-
-    /**
-     * Registers all natively provided extension guessers.
-     */
-    private function __construct()
-    {
-        $this->register(new MimeTypeExtensionGuesser());
-    }
-
-    /**
-     * Registers a new extension guesser.
-     *
-     * When guessing, this guesser is preferred over previously registered ones.
-     *
-     * @param ExtensionGuesserInterface $guesser
-     */
-    public function register(ExtensionGuesserInterface $guesser)
-    {
-        array_unshift($this->guessers, $guesser);
-    }
-
-    /**
-     * Tries to guess the extension.
-     *
-     * The mime type is passed to each registered mime type guesser in reverse order
-     * of their registration (last registered is queried first). Once a guesser
-     * returns a value that is not NULL, this method terminates and returns the
-     * value.
-     *
-     * @param string $mimeType The mime type
-     *
-     * @return string The guessed extension or NULL, if none could be guessed
-     */
-    public function guess($mimeType)
-    {
-        foreach ($this->guessers as $guesser) {
-            if (null !== $extension = $guesser->guess($mimeType)) {
-                return $extension;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php b/core/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php
deleted file mode 100644
index d19a0e5..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-/**
- * Guesses the file extension corresponding to a given mime type.
- */
-interface ExtensionGuesserInterface
-{
-    /**
-     * Makes a best guess for a file extension, given a mime type.
-     *
-     * @param string $mimeType The mime type
-     *
-     * @return string The guessed extension or NULL, if none could be guessed
-     */
-    public function guess($mimeType);
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php b/core/vendor/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php
deleted file mode 100644
index f917a06..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
-
-/**
- * Guesses the mime type with the binary "file" (only available on *nix).
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class FileBinaryMimeTypeGuesser implements MimeTypeGuesserInterface
-{
-    private $cmd;
-
-    /**
-     * Constructor.
-     *
-     * The $cmd pattern must contain a "%s" string that will be replaced
-     * with the file name to guess.
-     *
-     * The command output must start with the mime type of the file.
-     *
-     * @param string $cmd The command to run to get the mime type of a file
-     */
-    public function __construct($cmd = 'file -b --mime %s 2>/dev/null')
-    {
-        $this->cmd = $cmd;
-    }
-
-    /**
-     * Returns whether this guesser is supported on the current OS.
-     *
-     * @return bool
-     */
-    public static function isSupported()
-    {
-        return '\\' !== DIRECTORY_SEPARATOR && function_exists('passthru') && function_exists('escapeshellarg');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function guess($path)
-    {
-        if (!is_file($path)) {
-            throw new FileNotFoundException($path);
-        }
-
-        if (!is_readable($path)) {
-            throw new AccessDeniedException($path);
-        }
-
-        if (!self::isSupported()) {
-            return;
-        }
-
-        ob_start();
-
-        // need to use --mime instead of -i. see #6641
-        passthru(sprintf($this->cmd, escapeshellarg($path)), $return);
-        if ($return > 0) {
-            ob_end_clean();
-
-            return;
-        }
-
-        $type = trim(ob_get_clean());
-
-        if (!preg_match('#^([a-z0-9\-]+/[a-z0-9\-\.]+)#i', $type, $match)) {
-            // it's not a type, but an error message
-            return;
-        }
-
-        return $match[1];
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php b/core/vendor/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php
deleted file mode 100644
index a7e4ae2..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
-
-/**
- * Guesses the mime type using the PECL extension FileInfo.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class FileinfoMimeTypeGuesser implements MimeTypeGuesserInterface
-{
-    private $magicFile;
-
-    /**
-     * Constructor.
-     *
-     * @param string $magicFile A magic file to use with the finfo instance
-     *
-     * @link http://www.php.net/manual/en/function.finfo-open.php
-     */
-    public function __construct($magicFile = null)
-    {
-        $this->magicFile = $magicFile;
-    }
-
-    /**
-     * Returns whether this guesser is supported on the current OS/PHP setup.
-     *
-     * @return bool
-     */
-    public static function isSupported()
-    {
-        return function_exists('finfo_open');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function guess($path)
-    {
-        if (!is_file($path)) {
-            throw new FileNotFoundException($path);
-        }
-
-        if (!is_readable($path)) {
-            throw new AccessDeniedException($path);
-        }
-
-        if (!self::isSupported()) {
-            return;
-        }
-
-        if (!$finfo = new \finfo(FILEINFO_MIME_TYPE, $this->magicFile)) {
-            return;
-        }
-
-        return $finfo->file($path);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php b/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php
deleted file mode 100644
index 75eeefb..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php
+++ /dev/null
@@ -1,807 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-/**
- * Provides a best-guess mapping of mime type to file extension.
- */
-class MimeTypeExtensionGuesser implements ExtensionGuesserInterface
-{
-    /**
-     * A map of mime types and their default extensions.
-     *
-     * This list has been placed under the public domain by the Apache HTTPD project.
-     * This list has been updated from upstream on 2013-04-23.
-     *
-     * @see http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
-     *
-     * @var array
-     */
-    protected $defaultExtensions = array(
-        'application/andrew-inset' => 'ez',
-        'application/applixware' => 'aw',
-        'application/atom+xml' => 'atom',
-        'application/atomcat+xml' => 'atomcat',
-        'application/atomsvc+xml' => 'atomsvc',
-        'application/ccxml+xml' => 'ccxml',
-        'application/cdmi-capability' => 'cdmia',
-        'application/cdmi-container' => 'cdmic',
-        'application/cdmi-domain' => 'cdmid',
-        'application/cdmi-object' => 'cdmio',
-        'application/cdmi-queue' => 'cdmiq',
-        'application/cu-seeme' => 'cu',
-        'application/davmount+xml' => 'davmount',
-        'application/docbook+xml' => 'dbk',
-        'application/dssc+der' => 'dssc',
-        'application/dssc+xml' => 'xdssc',
-        'application/ecmascript' => 'ecma',
-        'application/emma+xml' => 'emma',
-        'application/epub+zip' => 'epub',
-        'application/exi' => 'exi',
-        'application/font-tdpfr' => 'pfr',
-        'application/gml+xml' => 'gml',
-        'application/gpx+xml' => 'gpx',
-        'application/gxf' => 'gxf',
-        'application/hyperstudio' => 'stk',
-        'application/inkml+xml' => 'ink',
-        'application/ipfix' => 'ipfix',
-        'application/java-archive' => 'jar',
-        'application/java-serialized-object' => 'ser',
-        'application/java-vm' => 'class',
-        'application/javascript' => 'js',
-        'application/json' => 'json',
-        'application/jsonml+json' => 'jsonml',
-        'application/lost+xml' => 'lostxml',
-        'application/mac-binhex40' => 'hqx',
-        'application/mac-compactpro' => 'cpt',
-        'application/mads+xml' => 'mads',
-        'application/marc' => 'mrc',
-        'application/marcxml+xml' => 'mrcx',
-        'application/mathematica' => 'ma',
-        'application/mathml+xml' => 'mathml',
-        'application/mbox' => 'mbox',
-        'application/mediaservercontrol+xml' => 'mscml',
-        'application/metalink+xml' => 'metalink',
-        'application/metalink4+xml' => 'meta4',
-        'application/mets+xml' => 'mets',
-        'application/mods+xml' => 'mods',
-        'application/mp21' => 'm21',
-        'application/mp4' => 'mp4s',
-        'application/msword' => 'doc',
-        'application/mxf' => 'mxf',
-        'application/octet-stream' => 'bin',
-        'application/oda' => 'oda',
-        'application/oebps-package+xml' => 'opf',
-        'application/ogg' => 'ogx',
-        'application/omdoc+xml' => 'omdoc',
-        'application/onenote' => 'onetoc',
-        'application/oxps' => 'oxps',
-        'application/patch-ops-error+xml' => 'xer',
-        'application/pdf' => 'pdf',
-        'application/pgp-encrypted' => 'pgp',
-        'application/pgp-signature' => 'asc',
-        'application/pics-rules' => 'prf',
-        'application/pkcs10' => 'p10',
-        'application/pkcs7-mime' => 'p7m',
-        'application/pkcs7-signature' => 'p7s',
-        'application/pkcs8' => 'p8',
-        'application/pkix-attr-cert' => 'ac',
-        'application/pkix-cert' => 'cer',
-        'application/pkix-crl' => 'crl',
-        'application/pkix-pkipath' => 'pkipath',
-        'application/pkixcmp' => 'pki',
-        'application/pls+xml' => 'pls',
-        'application/postscript' => 'ai',
-        'application/prs.cww' => 'cww',
-        'application/pskc+xml' => 'pskcxml',
-        'application/rdf+xml' => 'rdf',
-        'application/reginfo+xml' => 'rif',
-        'application/relax-ng-compact-syntax' => 'rnc',
-        'application/resource-lists+xml' => 'rl',
-        'application/resource-lists-diff+xml' => 'rld',
-        'application/rls-services+xml' => 'rs',
-        'application/rpki-ghostbusters' => 'gbr',
-        'application/rpki-manifest' => 'mft',
-        'application/rpki-roa' => 'roa',
-        'application/rsd+xml' => 'rsd',
-        'application/rss+xml' => 'rss',
-        'application/rtf' => 'rtf',
-        'application/sbml+xml' => 'sbml',
-        'application/scvp-cv-request' => 'scq',
-        'application/scvp-cv-response' => 'scs',
-        'application/scvp-vp-request' => 'spq',
-        'application/scvp-vp-response' => 'spp',
-        'application/sdp' => 'sdp',
-        'application/set-payment-initiation' => 'setpay',
-        'application/set-registration-initiation' => 'setreg',
-        'application/shf+xml' => 'shf',
-        'application/smil+xml' => 'smi',
-        'application/sparql-query' => 'rq',
-        'application/sparql-results+xml' => 'srx',
-        'application/srgs' => 'gram',
-        'application/srgs+xml' => 'grxml',
-        'application/sru+xml' => 'sru',
-        'application/ssdl+xml' => 'ssdl',
-        'application/ssml+xml' => 'ssml',
-        'application/tei+xml' => 'tei',
-        'application/thraud+xml' => 'tfi',
-        'application/timestamped-data' => 'tsd',
-        'application/vnd.3gpp.pic-bw-large' => 'plb',
-        'application/vnd.3gpp.pic-bw-small' => 'psb',
-        'application/vnd.3gpp.pic-bw-var' => 'pvb',
-        'application/vnd.3gpp2.tcap' => 'tcap',
-        'application/vnd.3m.post-it-notes' => 'pwn',
-        'application/vnd.accpac.simply.aso' => 'aso',
-        'application/vnd.accpac.simply.imp' => 'imp',
-        'application/vnd.acucobol' => 'acu',
-        'application/vnd.acucorp' => 'atc',
-        'application/vnd.adobe.air-application-installer-package+zip' => 'air',
-        'application/vnd.adobe.formscentral.fcdt' => 'fcdt',
-        'application/vnd.adobe.fxp' => 'fxp',
-        'application/vnd.adobe.xdp+xml' => 'xdp',
-        'application/vnd.adobe.xfdf' => 'xfdf',
-        'application/vnd.ahead.space' => 'ahead',
-        'application/vnd.airzip.filesecure.azf' => 'azf',
-        'application/vnd.airzip.filesecure.azs' => 'azs',
-        'application/vnd.amazon.ebook' => 'azw',
-        'application/vnd.americandynamics.acc' => 'acc',
-        'application/vnd.amiga.ami' => 'ami',
-        'application/vnd.android.package-archive' => 'apk',
-        'application/vnd.anser-web-certificate-issue-initiation' => 'cii',
-        'application/vnd.anser-web-funds-transfer-initiation' => 'fti',
-        'application/vnd.antix.game-component' => 'atx',
-        'application/vnd.apple.installer+xml' => 'mpkg',
-        'application/vnd.apple.mpegurl' => 'm3u8',
-        'application/vnd.aristanetworks.swi' => 'swi',
-        'application/vnd.astraea-software.iota' => 'iota',
-        'application/vnd.audiograph' => 'aep',
-        'application/vnd.blueice.multipass' => 'mpm',
-        'application/vnd.bmi' => 'bmi',
-        'application/vnd.businessobjects' => 'rep',
-        'application/vnd.chemdraw+xml' => 'cdxml',
-        'application/vnd.chipnuts.karaoke-mmd' => 'mmd',
-        'application/vnd.cinderella' => 'cdy',
-        'application/vnd.claymore' => 'cla',
-        'application/vnd.cloanto.rp9' => 'rp9',
-        'application/vnd.clonk.c4group' => 'c4g',
-        'application/vnd.cluetrust.cartomobile-config' => 'c11amc',
-        'application/vnd.cluetrust.cartomobile-config-pkg' => 'c11amz',
-        'application/vnd.commonspace' => 'csp',
-        'application/vnd.contact.cmsg' => 'cdbcmsg',
-        'application/vnd.cosmocaller' => 'cmc',
-        'application/vnd.crick.clicker' => 'clkx',
-        'application/vnd.crick.clicker.keyboard' => 'clkk',
-        'application/vnd.crick.clicker.palette' => 'clkp',
-        'application/vnd.crick.clicker.template' => 'clkt',
-        'application/vnd.crick.clicker.wordbank' => 'clkw',
-        'application/vnd.criticaltools.wbs+xml' => 'wbs',
-        'application/vnd.ctc-posml' => 'pml',
-        'application/vnd.cups-ppd' => 'ppd',
-        'application/vnd.curl.car' => 'car',
-        'application/vnd.curl.pcurl' => 'pcurl',
-        'application/vnd.dart' => 'dart',
-        'application/vnd.data-vision.rdz' => 'rdz',
-        'application/vnd.dece.data' => 'uvf',
-        'application/vnd.dece.ttml+xml' => 'uvt',
-        'application/vnd.dece.unspecified' => 'uvx',
-        'application/vnd.dece.zip' => 'uvz',
-        'application/vnd.denovo.fcselayout-link' => 'fe_launch',
-        'application/vnd.dna' => 'dna',
-        'application/vnd.dolby.mlp' => 'mlp',
-        'application/vnd.dpgraph' => 'dpg',
-        'application/vnd.dreamfactory' => 'dfac',
-        'application/vnd.ds-keypoint' => 'kpxx',
-        'application/vnd.dvb.ait' => 'ait',
-        'application/vnd.dvb.service' => 'svc',
-        'application/vnd.dynageo' => 'geo',
-        'application/vnd.ecowin.chart' => 'mag',
-        'application/vnd.enliven' => 'nml',
-        'application/vnd.epson.esf' => 'esf',
-        'application/vnd.epson.msf' => 'msf',
-        'application/vnd.epson.quickanime' => 'qam',
-        'application/vnd.epson.salt' => 'slt',
-        'application/vnd.epson.ssf' => 'ssf',
-        'application/vnd.eszigno3+xml' => 'es3',
-        'application/vnd.ezpix-album' => 'ez2',
-        'application/vnd.ezpix-package' => 'ez3',
-        'application/vnd.fdf' => 'fdf',
-        'application/vnd.fdsn.mseed' => 'mseed',
-        'application/vnd.fdsn.seed' => 'seed',
-        'application/vnd.flographit' => 'gph',
-        'application/vnd.fluxtime.clip' => 'ftc',
-        'application/vnd.framemaker' => 'fm',
-        'application/vnd.frogans.fnc' => 'fnc',
-        'application/vnd.frogans.ltf' => 'ltf',
-        'application/vnd.fsc.weblaunch' => 'fsc',
-        'application/vnd.fujitsu.oasys' => 'oas',
-        'application/vnd.fujitsu.oasys2' => 'oa2',
-        'application/vnd.fujitsu.oasys3' => 'oa3',
-        'application/vnd.fujitsu.oasysgp' => 'fg5',
-        'application/vnd.fujitsu.oasysprs' => 'bh2',
-        'application/vnd.fujixerox.ddd' => 'ddd',
-        'application/vnd.fujixerox.docuworks' => 'xdw',
-        'application/vnd.fujixerox.docuworks.binder' => 'xbd',
-        'application/vnd.fuzzysheet' => 'fzs',
-        'application/vnd.genomatix.tuxedo' => 'txd',
-        'application/vnd.geogebra.file' => 'ggb',
-        'application/vnd.geogebra.tool' => 'ggt',
-        'application/vnd.geometry-explorer' => 'gex',
-        'application/vnd.geonext' => 'gxt',
-        'application/vnd.geoplan' => 'g2w',
-        'application/vnd.geospace' => 'g3w',
-        'application/vnd.gmx' => 'gmx',
-        'application/vnd.google-earth.kml+xml' => 'kml',
-        'application/vnd.google-earth.kmz' => 'kmz',
-        'application/vnd.grafeq' => 'gqf',
-        'application/vnd.groove-account' => 'gac',
-        'application/vnd.groove-help' => 'ghf',
-        'application/vnd.groove-identity-message' => 'gim',
-        'application/vnd.groove-injector' => 'grv',
-        'application/vnd.groove-tool-message' => 'gtm',
-        'application/vnd.groove-tool-template' => 'tpl',
-        'application/vnd.groove-vcard' => 'vcg',
-        'application/vnd.hal+xml' => 'hal',
-        'application/vnd.handheld-entertainment+xml' => 'zmm',
-        'application/vnd.hbci' => 'hbci',
-        'application/vnd.hhe.lesson-player' => 'les',
-        'application/vnd.hp-hpgl' => 'hpgl',
-        'application/vnd.hp-hpid' => 'hpid',
-        'application/vnd.hp-hps' => 'hps',
-        'application/vnd.hp-jlyt' => 'jlt',
-        'application/vnd.hp-pcl' => 'pcl',
-        'application/vnd.hp-pclxl' => 'pclxl',
-        'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx',
-        'application/vnd.ibm.minipay' => 'mpy',
-        'application/vnd.ibm.modcap' => 'afp',
-        'application/vnd.ibm.rights-management' => 'irm',
-        'application/vnd.ibm.secure-container' => 'sc',
-        'application/vnd.iccprofile' => 'icc',
-        'application/vnd.igloader' => 'igl',
-        'application/vnd.immervision-ivp' => 'ivp',
-        'application/vnd.immervision-ivu' => 'ivu',
-        'application/vnd.insors.igm' => 'igm',
-        'application/vnd.intercon.formnet' => 'xpw',
-        'application/vnd.intergeo' => 'i2g',
-        'application/vnd.intu.qbo' => 'qbo',
-        'application/vnd.intu.qfx' => 'qfx',
-        'application/vnd.ipunplugged.rcprofile' => 'rcprofile',
-        'application/vnd.irepository.package+xml' => 'irp',
-        'application/vnd.is-xpr' => 'xpr',
-        'application/vnd.isac.fcs' => 'fcs',
-        'application/vnd.jam' => 'jam',
-        'application/vnd.jcp.javame.midlet-rms' => 'rms',
-        'application/vnd.jisp' => 'jisp',
-        'application/vnd.joost.joda-archive' => 'joda',
-        'application/vnd.kahootz' => 'ktz',
-        'application/vnd.kde.karbon' => 'karbon',
-        'application/vnd.kde.kchart' => 'chrt',
-        'application/vnd.kde.kformula' => 'kfo',
-        'application/vnd.kde.kivio' => 'flw',
-        'application/vnd.kde.kontour' => 'kon',
-        'application/vnd.kde.kpresenter' => 'kpr',
-        'application/vnd.kde.kspread' => 'ksp',
-        'application/vnd.kde.kword' => 'kwd',
-        'application/vnd.kenameaapp' => 'htke',
-        'application/vnd.kidspiration' => 'kia',
-        'application/vnd.kinar' => 'kne',
-        'application/vnd.koan' => 'skp',
-        'application/vnd.kodak-descriptor' => 'sse',
-        'application/vnd.las.las+xml' => 'lasxml',
-        'application/vnd.llamagraphics.life-balance.desktop' => 'lbd',
-        'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe',
-        'application/vnd.lotus-1-2-3' => '123',
-        'application/vnd.lotus-approach' => 'apr',
-        'application/vnd.lotus-freelance' => 'pre',
-        'application/vnd.lotus-notes' => 'nsf',
-        'application/vnd.lotus-organizer' => 'org',
-        'application/vnd.lotus-screencam' => 'scm',
-        'application/vnd.lotus-wordpro' => 'lwp',
-        'application/vnd.macports.portpkg' => 'portpkg',
-        'application/vnd.mcd' => 'mcd',
-        'application/vnd.medcalcdata' => 'mc1',
-        'application/vnd.mediastation.cdkey' => 'cdkey',
-        'application/vnd.mfer' => 'mwf',
-        'application/vnd.mfmp' => 'mfm',
-        'application/vnd.micrografx.flo' => 'flo',
-        'application/vnd.micrografx.igx' => 'igx',
-        'application/vnd.mif' => 'mif',
-        'application/vnd.mobius.daf' => 'daf',
-        'application/vnd.mobius.dis' => 'dis',
-        'application/vnd.mobius.mbk' => 'mbk',
-        'application/vnd.mobius.mqy' => 'mqy',
-        'application/vnd.mobius.msl' => 'msl',
-        'application/vnd.mobius.plc' => 'plc',
-        'application/vnd.mobius.txf' => 'txf',
-        'application/vnd.mophun.application' => 'mpn',
-        'application/vnd.mophun.certificate' => 'mpc',
-        'application/vnd.mozilla.xul+xml' => 'xul',
-        'application/vnd.ms-artgalry' => 'cil',
-        'application/vnd.ms-cab-compressed' => 'cab',
-        'application/vnd.ms-excel' => 'xls',
-        'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam',
-        'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb',
-        'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm',
-        'application/vnd.ms-excel.template.macroenabled.12' => 'xltm',
-        'application/vnd.ms-fontobject' => 'eot',
-        'application/vnd.ms-htmlhelp' => 'chm',
-        'application/vnd.ms-ims' => 'ims',
-        'application/vnd.ms-lrm' => 'lrm',
-        'application/vnd.ms-officetheme' => 'thmx',
-        'application/vnd.ms-pki.seccat' => 'cat',
-        'application/vnd.ms-pki.stl' => 'stl',
-        'application/vnd.ms-powerpoint' => 'ppt',
-        'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam',
-        'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm',
-        'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm',
-        'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm',
-        'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm',
-        'application/vnd.ms-project' => 'mpp',
-        'application/vnd.ms-word.document.macroenabled.12' => 'docm',
-        'application/vnd.ms-word.template.macroenabled.12' => 'dotm',
-        'application/vnd.ms-works' => 'wps',
-        'application/vnd.ms-wpl' => 'wpl',
-        'application/vnd.ms-xpsdocument' => 'xps',
-        'application/vnd.mseq' => 'mseq',
-        'application/vnd.musician' => 'mus',
-        'application/vnd.muvee.style' => 'msty',
-        'application/vnd.mynfc' => 'taglet',
-        'application/vnd.neurolanguage.nlu' => 'nlu',
-        'application/vnd.nitf' => 'ntf',
-        'application/vnd.noblenet-directory' => 'nnd',
-        'application/vnd.noblenet-sealer' => 'nns',
-        'application/vnd.noblenet-web' => 'nnw',
-        'application/vnd.nokia.n-gage.data' => 'ngdat',
-        'application/vnd.nokia.n-gage.symbian.install' => 'n-gage',
-        'application/vnd.nokia.radio-preset' => 'rpst',
-        'application/vnd.nokia.radio-presets' => 'rpss',
-        'application/vnd.novadigm.edm' => 'edm',
-        'application/vnd.novadigm.edx' => 'edx',
-        'application/vnd.novadigm.ext' => 'ext',
-        'application/vnd.oasis.opendocument.chart' => 'odc',
-        'application/vnd.oasis.opendocument.chart-template' => 'otc',
-        'application/vnd.oasis.opendocument.database' => 'odb',
-        'application/vnd.oasis.opendocument.formula' => 'odf',
-        'application/vnd.oasis.opendocument.formula-template' => 'odft',
-        'application/vnd.oasis.opendocument.graphics' => 'odg',
-        'application/vnd.oasis.opendocument.graphics-template' => 'otg',
-        'application/vnd.oasis.opendocument.image' => 'odi',
-        'application/vnd.oasis.opendocument.image-template' => 'oti',
-        'application/vnd.oasis.opendocument.presentation' => 'odp',
-        'application/vnd.oasis.opendocument.presentation-template' => 'otp',
-        'application/vnd.oasis.opendocument.spreadsheet' => 'ods',
-        'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots',
-        'application/vnd.oasis.opendocument.text' => 'odt',
-        'application/vnd.oasis.opendocument.text-master' => 'odm',
-        'application/vnd.oasis.opendocument.text-template' => 'ott',
-        'application/vnd.oasis.opendocument.text-web' => 'oth',
-        'application/vnd.olpc-sugar' => 'xo',
-        'application/vnd.oma.dd2+xml' => 'dd2',
-        'application/vnd.openofficeorg.extension' => 'oxt',
-        'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx',
-        'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx',
-        'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx',
-        'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx',
-        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx',
-        'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx',
-        'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx',
-        'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx',
-        'application/vnd.osgeo.mapguide.package' => 'mgp',
-        'application/vnd.osgi.dp' => 'dp',
-        'application/vnd.osgi.subsystem' => 'esa',
-        'application/vnd.palm' => 'pdb',
-        'application/vnd.pawaafile' => 'paw',
-        'application/vnd.pg.format' => 'str',
-        'application/vnd.pg.osasli' => 'ei6',
-        'application/vnd.picsel' => 'efif',
-        'application/vnd.pmi.widget' => 'wg',
-        'application/vnd.pocketlearn' => 'plf',
-        'application/vnd.powerbuilder6' => 'pbd',
-        'application/vnd.previewsystems.box' => 'box',
-        'application/vnd.proteus.magazine' => 'mgz',
-        'application/vnd.publishare-delta-tree' => 'qps',
-        'application/vnd.pvi.ptid1' => 'ptid',
-        'application/vnd.quark.quarkxpress' => 'qxd',
-        'application/vnd.realvnc.bed' => 'bed',
-        'application/vnd.recordare.musicxml' => 'mxl',
-        'application/vnd.recordare.musicxml+xml' => 'musicxml',
-        'application/vnd.rig.cryptonote' => 'cryptonote',
-        'application/vnd.rim.cod' => 'cod',
-        'application/vnd.rn-realmedia' => 'rm',
-        'application/vnd.rn-realmedia-vbr' => 'rmvb',
-        'application/vnd.route66.link66+xml' => 'link66',
-        'application/vnd.sailingtracker.track' => 'st',
-        'application/vnd.seemail' => 'see',
-        'application/vnd.sema' => 'sema',
-        'application/vnd.semd' => 'semd',
-        'application/vnd.semf' => 'semf',
-        'application/vnd.shana.informed.formdata' => 'ifm',
-        'application/vnd.shana.informed.formtemplate' => 'itp',
-        'application/vnd.shana.informed.interchange' => 'iif',
-        'application/vnd.shana.informed.package' => 'ipk',
-        'application/vnd.simtech-mindmapper' => 'twd',
-        'application/vnd.smaf' => 'mmf',
-        'application/vnd.smart.teacher' => 'teacher',
-        'application/vnd.solent.sdkm+xml' => 'sdkm',
-        'application/vnd.spotfire.dxp' => 'dxp',
-        'application/vnd.spotfire.sfs' => 'sfs',
-        'application/vnd.stardivision.calc' => 'sdc',
-        'application/vnd.stardivision.draw' => 'sda',
-        'application/vnd.stardivision.impress' => 'sdd',
-        'application/vnd.stardivision.math' => 'smf',
-        'application/vnd.stardivision.writer' => 'sdw',
-        'application/vnd.stardivision.writer-global' => 'sgl',
-        'application/vnd.stepmania.package' => 'smzip',
-        'application/vnd.stepmania.stepchart' => 'sm',
-        'application/vnd.sun.xml.calc' => 'sxc',
-        'application/vnd.sun.xml.calc.template' => 'stc',
-        'application/vnd.sun.xml.draw' => 'sxd',
-        'application/vnd.sun.xml.draw.template' => 'std',
-        'application/vnd.sun.xml.impress' => 'sxi',
-        'application/vnd.sun.xml.impress.template' => 'sti',
-        'application/vnd.sun.xml.math' => 'sxm',
-        'application/vnd.sun.xml.writer' => 'sxw',
-        'application/vnd.sun.xml.writer.global' => 'sxg',
-        'application/vnd.sun.xml.writer.template' => 'stw',
-        'application/vnd.sus-calendar' => 'sus',
-        'application/vnd.svd' => 'svd',
-        'application/vnd.symbian.install' => 'sis',
-        'application/vnd.syncml+xml' => 'xsm',
-        'application/vnd.syncml.dm+wbxml' => 'bdm',
-        'application/vnd.syncml.dm+xml' => 'xdm',
-        'application/vnd.tao.intent-module-archive' => 'tao',
-        'application/vnd.tcpdump.pcap' => 'pcap',
-        'application/vnd.tmobile-livetv' => 'tmo',
-        'application/vnd.trid.tpt' => 'tpt',
-        'application/vnd.triscape.mxs' => 'mxs',
-        'application/vnd.trueapp' => 'tra',
-        'application/vnd.ufdl' => 'ufd',
-        'application/vnd.uiq.theme' => 'utz',
-        'application/vnd.umajin' => 'umj',
-        'application/vnd.unity' => 'unityweb',
-        'application/vnd.uoml+xml' => 'uoml',
-        'application/vnd.vcx' => 'vcx',
-        'application/vnd.visio' => 'vsd',
-        'application/vnd.visionary' => 'vis',
-        'application/vnd.vsf' => 'vsf',
-        'application/vnd.wap.wbxml' => 'wbxml',
-        'application/vnd.wap.wmlc' => 'wmlc',
-        'application/vnd.wap.wmlscriptc' => 'wmlsc',
-        'application/vnd.webturbo' => 'wtb',
-        'application/vnd.wolfram.player' => 'nbp',
-        'application/vnd.wordperfect' => 'wpd',
-        'application/vnd.wqd' => 'wqd',
-        'application/vnd.wt.stf' => 'stf',
-        'application/vnd.xara' => 'xar',
-        'application/vnd.xfdl' => 'xfdl',
-        'application/vnd.yamaha.hv-dic' => 'hvd',
-        'application/vnd.yamaha.hv-script' => 'hvs',
-        'application/vnd.yamaha.hv-voice' => 'hvp',
-        'application/vnd.yamaha.openscoreformat' => 'osf',
-        'application/vnd.yamaha.openscoreformat.osfpvg+xml' => 'osfpvg',
-        'application/vnd.yamaha.smaf-audio' => 'saf',
-        'application/vnd.yamaha.smaf-phrase' => 'spf',
-        'application/vnd.yellowriver-custom-menu' => 'cmp',
-        'application/vnd.zul' => 'zir',
-        'application/vnd.zzazz.deck+xml' => 'zaz',
-        'application/voicexml+xml' => 'vxml',
-        'application/widget' => 'wgt',
-        'application/winhlp' => 'hlp',
-        'application/wsdl+xml' => 'wsdl',
-        'application/wspolicy+xml' => 'wspolicy',
-        'application/x-7z-compressed' => '7z',
-        'application/x-abiword' => 'abw',
-        'application/x-ace-compressed' => 'ace',
-        'application/x-apple-diskimage' => 'dmg',
-        'application/x-authorware-bin' => 'aab',
-        'application/x-authorware-map' => 'aam',
-        'application/x-authorware-seg' => 'aas',
-        'application/x-bcpio' => 'bcpio',
-        'application/x-bittorrent' => 'torrent',
-        'application/x-blorb' => 'blb',
-        'application/x-bzip' => 'bz',
-        'application/x-bzip2' => 'bz2',
-        'application/x-cbr' => 'cbr',
-        'application/x-cdlink' => 'vcd',
-        'application/x-cfs-compressed' => 'cfs',
-        'application/x-chat' => 'chat',
-        'application/x-chess-pgn' => 'pgn',
-        'application/x-conference' => 'nsc',
-        'application/x-cpio' => 'cpio',
-        'application/x-csh' => 'csh',
-        'application/x-debian-package' => 'deb',
-        'application/x-dgc-compressed' => 'dgc',
-        'application/x-director' => 'dir',
-        'application/x-doom' => 'wad',
-        'application/x-dtbncx+xml' => 'ncx',
-        'application/x-dtbook+xml' => 'dtb',
-        'application/x-dtbresource+xml' => 'res',
-        'application/x-dvi' => 'dvi',
-        'application/x-envoy' => 'evy',
-        'application/x-eva' => 'eva',
-        'application/x-font-bdf' => 'bdf',
-        'application/x-font-ghostscript' => 'gsf',
-        'application/x-font-linux-psf' => 'psf',
-        'application/x-font-otf' => 'otf',
-        'application/x-font-pcf' => 'pcf',
-        'application/x-font-snf' => 'snf',
-        'application/x-font-ttf' => 'ttf',
-        'application/x-font-type1' => 'pfa',
-        'application/x-font-woff' => 'woff',
-        'application/x-freearc' => 'arc',
-        'application/x-futuresplash' => 'spl',
-        'application/x-gca-compressed' => 'gca',
-        'application/x-glulx' => 'ulx',
-        'application/x-gnumeric' => 'gnumeric',
-        'application/x-gramps-xml' => 'gramps',
-        'application/x-gtar' => 'gtar',
-        'application/x-hdf' => 'hdf',
-        'application/x-install-instructions' => 'install',
-        'application/x-iso9660-image' => 'iso',
-        'application/x-java-jnlp-file' => 'jnlp',
-        'application/x-latex' => 'latex',
-        'application/x-lzh-compressed' => 'lzh',
-        'application/x-mie' => 'mie',
-        'application/x-mobipocket-ebook' => 'prc',
-        'application/x-ms-application' => 'application',
-        'application/x-ms-shortcut' => 'lnk',
-        'application/x-ms-wmd' => 'wmd',
-        'application/x-ms-wmz' => 'wmz',
-        'application/x-ms-xbap' => 'xbap',
-        'application/x-msaccess' => 'mdb',
-        'application/x-msbinder' => 'obd',
-        'application/x-mscardfile' => 'crd',
-        'application/x-msclip' => 'clp',
-        'application/x-msdownload' => 'exe',
-        'application/x-msmediaview' => 'mvb',
-        'application/x-msmetafile' => 'wmf',
-        'application/x-msmoney' => 'mny',
-        'application/x-mspublisher' => 'pub',
-        'application/x-msschedule' => 'scd',
-        'application/x-msterminal' => 'trm',
-        'application/x-mswrite' => 'wri',
-        'application/x-netcdf' => 'nc',
-        'application/x-nzb' => 'nzb',
-        'application/x-pkcs12' => 'p12',
-        'application/x-pkcs7-certificates' => 'p7b',
-        'application/x-pkcs7-certreqresp' => 'p7r',
-        'application/x-rar-compressed' => 'rar',
-        'application/x-rar' => 'rar',
-        'application/x-research-info-systems' => 'ris',
-        'application/x-sh' => 'sh',
-        'application/x-shar' => 'shar',
-        'application/x-shockwave-flash' => 'swf',
-        'application/x-silverlight-app' => 'xap',
-        'application/x-sql' => 'sql',
-        'application/x-stuffit' => 'sit',
-        'application/x-stuffitx' => 'sitx',
-        'application/x-subrip' => 'srt',
-        'application/x-sv4cpio' => 'sv4cpio',
-        'application/x-sv4crc' => 'sv4crc',
-        'application/x-t3vm-image' => 't3',
-        'application/x-tads' => 'gam',
-        'application/x-tar' => 'tar',
-        'application/x-tcl' => 'tcl',
-        'application/x-tex' => 'tex',
-        'application/x-tex-tfm' => 'tfm',
-        'application/x-texinfo' => 'texinfo',
-        'application/x-tgif' => 'obj',
-        'application/x-ustar' => 'ustar',
-        'application/x-wais-source' => 'src',
-        'application/x-x509-ca-cert' => 'der',
-        'application/x-xfig' => 'fig',
-        'application/x-xliff+xml' => 'xlf',
-        'application/x-xpinstall' => 'xpi',
-        'application/x-xz' => 'xz',
-        'application/x-zmachine' => 'z1',
-        'application/xaml+xml' => 'xaml',
-        'application/xcap-diff+xml' => 'xdf',
-        'application/xenc+xml' => 'xenc',
-        'application/xhtml+xml' => 'xhtml',
-        'application/xml' => 'xml',
-        'application/xml-dtd' => 'dtd',
-        'application/xop+xml' => 'xop',
-        'application/xproc+xml' => 'xpl',
-        'application/xslt+xml' => 'xslt',
-        'application/xspf+xml' => 'xspf',
-        'application/xv+xml' => 'mxml',
-        'application/yang' => 'yang',
-        'application/yin+xml' => 'yin',
-        'application/zip' => 'zip',
-        'audio/adpcm' => 'adp',
-        'audio/basic' => 'au',
-        'audio/midi' => 'mid',
-        'audio/mp4' => 'mp4a',
-        'audio/mpeg' => 'mpga',
-        'audio/ogg' => 'oga',
-        'audio/s3m' => 's3m',
-        'audio/silk' => 'sil',
-        'audio/vnd.dece.audio' => 'uva',
-        'audio/vnd.digital-winds' => 'eol',
-        'audio/vnd.dra' => 'dra',
-        'audio/vnd.dts' => 'dts',
-        'audio/vnd.dts.hd' => 'dtshd',
-        'audio/vnd.lucent.voice' => 'lvp',
-        'audio/vnd.ms-playready.media.pya' => 'pya',
-        'audio/vnd.nuera.ecelp4800' => 'ecelp4800',
-        'audio/vnd.nuera.ecelp7470' => 'ecelp7470',
-        'audio/vnd.nuera.ecelp9600' => 'ecelp9600',
-        'audio/vnd.rip' => 'rip',
-        'audio/webm' => 'weba',
-        'audio/x-aac' => 'aac',
-        'audio/x-aiff' => 'aif',
-        'audio/x-caf' => 'caf',
-        'audio/x-flac' => 'flac',
-        'audio/x-matroska' => 'mka',
-        'audio/x-mpegurl' => 'm3u',
-        'audio/x-ms-wax' => 'wax',
-        'audio/x-ms-wma' => 'wma',
-        'audio/x-pn-realaudio' => 'ram',
-        'audio/x-pn-realaudio-plugin' => 'rmp',
-        'audio/x-wav' => 'wav',
-        'audio/xm' => 'xm',
-        'chemical/x-cdx' => 'cdx',
-        'chemical/x-cif' => 'cif',
-        'chemical/x-cmdf' => 'cmdf',
-        'chemical/x-cml' => 'cml',
-        'chemical/x-csml' => 'csml',
-        'chemical/x-xyz' => 'xyz',
-        'image/bmp' => 'bmp',
-        'image/x-ms-bmp' => 'bmp',
-        'image/cgm' => 'cgm',
-        'image/g3fax' => 'g3',
-        'image/gif' => 'gif',
-        'image/ief' => 'ief',
-        'image/jpeg' => 'jpeg',
-        'image/ktx' => 'ktx',
-        'image/png' => 'png',
-        'image/prs.btif' => 'btif',
-        'image/sgi' => 'sgi',
-        'image/svg+xml' => 'svg',
-        'image/tiff' => 'tiff',
-        'image/vnd.adobe.photoshop' => 'psd',
-        'image/vnd.dece.graphic' => 'uvi',
-        'image/vnd.dvb.subtitle' => 'sub',
-        'image/vnd.djvu' => 'djvu',
-        'image/vnd.dwg' => 'dwg',
-        'image/vnd.dxf' => 'dxf',
-        'image/vnd.fastbidsheet' => 'fbs',
-        'image/vnd.fpx' => 'fpx',
-        'image/vnd.fst' => 'fst',
-        'image/vnd.fujixerox.edmics-mmr' => 'mmr',
-        'image/vnd.fujixerox.edmics-rlc' => 'rlc',
-        'image/vnd.ms-modi' => 'mdi',
-        'image/vnd.ms-photo' => 'wdp',
-        'image/vnd.net-fpx' => 'npx',
-        'image/vnd.wap.wbmp' => 'wbmp',
-        'image/vnd.xiff' => 'xif',
-        'image/webp' => 'webp',
-        'image/x-3ds' => '3ds',
-        'image/x-cmu-raster' => 'ras',
-        'image/x-cmx' => 'cmx',
-        'image/x-freehand' => 'fh',
-        'image/x-icon' => 'ico',
-        'image/x-mrsid-image' => 'sid',
-        'image/x-pcx' => 'pcx',
-        'image/x-pict' => 'pic',
-        'image/x-portable-anymap' => 'pnm',
-        'image/x-portable-bitmap' => 'pbm',
-        'image/x-portable-graymap' => 'pgm',
-        'image/x-portable-pixmap' => 'ppm',
-        'image/x-rgb' => 'rgb',
-        'image/x-tga' => 'tga',
-        'image/x-xbitmap' => 'xbm',
-        'image/x-xpixmap' => 'xpm',
-        'image/x-xwindowdump' => 'xwd',
-        'message/rfc822' => 'eml',
-        'model/iges' => 'igs',
-        'model/mesh' => 'msh',
-        'model/vnd.collada+xml' => 'dae',
-        'model/vnd.dwf' => 'dwf',
-        'model/vnd.gdl' => 'gdl',
-        'model/vnd.gtw' => 'gtw',
-        'model/vnd.mts' => 'mts',
-        'model/vnd.vtu' => 'vtu',
-        'model/vrml' => 'wrl',
-        'model/x3d+binary' => 'x3db',
-        'model/x3d+vrml' => 'x3dv',
-        'model/x3d+xml' => 'x3d',
-        'text/cache-manifest' => 'appcache',
-        'text/calendar' => 'ics',
-        'text/css' => 'css',
-        'text/csv' => 'csv',
-        'text/html' => 'html',
-        'text/n3' => 'n3',
-        'text/plain' => 'txt',
-        'text/prs.lines.tag' => 'dsc',
-        'text/richtext' => 'rtx',
-        'text/rtf' => 'rtf',
-        'text/sgml' => 'sgml',
-        'text/tab-separated-values' => 'tsv',
-        'text/troff' => 't',
-        'text/turtle' => 'ttl',
-        'text/uri-list' => 'uri',
-        'text/vcard' => 'vcard',
-        'text/vnd.curl' => 'curl',
-        'text/vnd.curl.dcurl' => 'dcurl',
-        'text/vnd.curl.scurl' => 'scurl',
-        'text/vnd.curl.mcurl' => 'mcurl',
-        'text/vnd.dvb.subtitle' => 'sub',
-        'text/vnd.fly' => 'fly',
-        'text/vnd.fmi.flexstor' => 'flx',
-        'text/vnd.graphviz' => 'gv',
-        'text/vnd.in3d.3dml' => '3dml',
-        'text/vnd.in3d.spot' => 'spot',
-        'text/vnd.sun.j2me.app-descriptor' => 'jad',
-        'text/vnd.wap.wml' => 'wml',
-        'text/vnd.wap.wmlscript' => 'wmls',
-        'text/x-asm' => 's',
-        'text/x-c' => 'c',
-        'text/x-fortran' => 'f',
-        'text/x-pascal' => 'p',
-        'text/x-java-source' => 'java',
-        'text/x-opml' => 'opml',
-        'text/x-nfo' => 'nfo',
-        'text/x-setext' => 'etx',
-        'text/x-sfv' => 'sfv',
-        'text/x-uuencode' => 'uu',
-        'text/x-vcalendar' => 'vcs',
-        'text/x-vcard' => 'vcf',
-        'video/3gpp' => '3gp',
-        'video/3gpp2' => '3g2',
-        'video/h261' => 'h261',
-        'video/h263' => 'h263',
-        'video/h264' => 'h264',
-        'video/jpeg' => 'jpgv',
-        'video/jpm' => 'jpm',
-        'video/mj2' => 'mj2',
-        'video/mp4' => 'mp4',
-        'video/mpeg' => 'mpeg',
-        'video/ogg' => 'ogv',
-        'video/quicktime' => 'qt',
-        'video/vnd.dece.hd' => 'uvh',
-        'video/vnd.dece.mobile' => 'uvm',
-        'video/vnd.dece.pd' => 'uvp',
-        'video/vnd.dece.sd' => 'uvs',
-        'video/vnd.dece.video' => 'uvv',
-        'video/vnd.dvb.file' => 'dvb',
-        'video/vnd.fvt' => 'fvt',
-        'video/vnd.mpegurl' => 'mxu',
-        'video/vnd.ms-playready.media.pyv' => 'pyv',
-        'video/vnd.uvvu.mp4' => 'uvu',
-        'video/vnd.vivo' => 'viv',
-        'video/webm' => 'webm',
-        'video/x-f4v' => 'f4v',
-        'video/x-fli' => 'fli',
-        'video/x-flv' => 'flv',
-        'video/x-m4v' => 'm4v',
-        'video/x-matroska' => 'mkv',
-        'video/x-mng' => 'mng',
-        'video/x-ms-asf' => 'asf',
-        'video/x-ms-vob' => 'vob',
-        'video/x-ms-wm' => 'wm',
-        'video/x-ms-wmv' => 'wmv',
-        'video/x-ms-wmx' => 'wmx',
-        'video/x-ms-wvx' => 'wvx',
-        'video/x-msvideo' => 'avi',
-        'video/x-sgi-movie' => 'movie',
-        'video/x-smv' => 'smv',
-        'x-conference/x-cooltalk' => 'ice',
-    );
-
-    /**
-     * {@inheritdoc}
-     */
-    public function guess($mimeType)
-    {
-        return isset($this->defaultExtensions[$mimeType]) ? $this->defaultExtensions[$mimeType] : null;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php b/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
deleted file mode 100644
index ecc8a30..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
-
-/**
- * A singleton mime type guesser.
- *
- * By default, all mime type guessers provided by the framework are installed
- * (if available on the current OS/PHP setup).
- *
- * You can register custom guessers by calling the register() method on the
- * singleton instance. Custom guessers are always called before any default ones.
- *
- *     $guesser = MimeTypeGuesser::getInstance();
- *     $guesser->register(new MyCustomMimeTypeGuesser());
- *
- * If you want to change the order of the default guessers, just re-register your
- * preferred one as a custom one. The last registered guesser is preferred over
- * previously registered ones.
- *
- * Re-registering a built-in guesser also allows you to configure it:
- *
- *     $guesser = MimeTypeGuesser::getInstance();
- *     $guesser->register(new FileinfoMimeTypeGuesser('/path/to/magic/file'));
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class MimeTypeGuesser implements MimeTypeGuesserInterface
-{
-    /**
-     * The singleton instance.
-     *
-     * @var MimeTypeGuesser
-     */
-    private static $instance = null;
-
-    /**
-     * All registered MimeTypeGuesserInterface instances.
-     *
-     * @var array
-     */
-    protected $guessers = array();
-
-    /**
-     * Returns the singleton instance.
-     *
-     * @return MimeTypeGuesser
-     */
-    public static function getInstance()
-    {
-        if (null === self::$instance) {
-            self::$instance = new self();
-        }
-
-        return self::$instance;
-    }
-
-    /**
-     * Resets the singleton instance.
-     */
-    public static function reset()
-    {
-        self::$instance = null;
-    }
-
-    /**
-     * Registers all natively provided mime type guessers.
-     */
-    private function __construct()
-    {
-        if (FileBinaryMimeTypeGuesser::isSupported()) {
-            $this->register(new FileBinaryMimeTypeGuesser());
-        }
-
-        if (FileinfoMimeTypeGuesser::isSupported()) {
-            $this->register(new FileinfoMimeTypeGuesser());
-        }
-    }
-
-    /**
-     * Registers a new mime type guesser.
-     *
-     * When guessing, this guesser is preferred over previously registered ones.
-     *
-     * @param MimeTypeGuesserInterface $guesser
-     */
-    public function register(MimeTypeGuesserInterface $guesser)
-    {
-        array_unshift($this->guessers, $guesser);
-    }
-
-    /**
-     * Tries to guess the mime type of the given file.
-     *
-     * The file is passed to each registered mime type guesser in reverse order
-     * of their registration (last registered is queried first). Once a guesser
-     * returns a value that is not NULL, this method terminates and returns the
-     * value.
-     *
-     * @param string $path The path to the file
-     *
-     * @return string The mime type or NULL, if none could be guessed
-     *
-     * @throws \LogicException
-     * @throws FileNotFoundException
-     * @throws AccessDeniedException
-     */
-    public function guess($path)
-    {
-        if (!is_file($path)) {
-            throw new FileNotFoundException($path);
-        }
-
-        if (!is_readable($path)) {
-            throw new AccessDeniedException($path);
-        }
-
-        if (!$this->guessers) {
-            $msg = 'Unable to guess the mime type as no guessers are available';
-            if (!FileinfoMimeTypeGuesser::isSupported()) {
-                $msg .= ' (Did you enable the php_fileinfo extension?)';
-            }
-            throw new \LogicException($msg);
-        }
-
-        foreach ($this->guessers as $guesser) {
-            if (null !== $mimeType = $guesser->guess($path)) {
-                return $mimeType;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php b/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php
deleted file mode 100644
index f8c3ad2..0000000
--- a/core/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File\MimeType;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
-
-/**
- * Guesses the mime type of a file.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface MimeTypeGuesserInterface
-{
-    /**
-     * Guesses the mime type of the file with the given path.
-     *
-     * @param string $path The path to the file
-     *
-     * @return string The mime type or NULL, if none could be guessed
-     *
-     * @throws FileNotFoundException If the file does not exist
-     * @throws AccessDeniedException If the file could not be read
-     */
-    public function guess($path);
-}
diff --git a/core/vendor/symfony/http-foundation/File/UploadedFile.php b/core/vendor/symfony/http-foundation/File/UploadedFile.php
deleted file mode 100644
index 0f3f802..0000000
--- a/core/vendor/symfony/http-foundation/File/UploadedFile.php
+++ /dev/null
@@ -1,309 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\File;
-
-use Symfony\Component\HttpFoundation\File\Exception\FileException;
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesser;
-
-/**
- * A file uploaded through a form.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Florian Eckerstorfer <florian@eckerstorfer.org>
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class UploadedFile extends File
-{
-    /**
-     * Whether the test mode is activated.
-     *
-     * Local files are used in test mode hence the code should not enforce HTTP uploads.
-     *
-     * @var bool
-     */
-    private $test = false;
-
-    /**
-     * The original name of the uploaded file.
-     *
-     * @var string
-     */
-    private $originalName;
-
-    /**
-     * The mime type provided by the uploader.
-     *
-     * @var string
-     */
-    private $mimeType;
-
-    /**
-     * The file size provided by the uploader.
-     *
-     * @var string
-     */
-    private $size;
-
-    /**
-     * The UPLOAD_ERR_XXX constant provided by the uploader.
-     *
-     * @var int
-     */
-    private $error;
-
-    /**
-     * Accepts the information of the uploaded file as provided by the PHP global $_FILES.
-     *
-     * The file object is only created when the uploaded file is valid (i.e. when the
-     * isValid() method returns true). Otherwise the only methods that could be called
-     * on an UploadedFile instance are:
-     *
-     *   * getClientOriginalName,
-     *   * getClientMimeType,
-     *   * isValid,
-     *   * getError.
-     *
-     * Calling any other method on an non-valid instance will cause an unpredictable result.
-     *
-     * @param string $path         The full temporary path to the file
-     * @param string $originalName The original file name
-     * @param string $mimeType     The type of the file as provided by PHP
-     * @param int    $size         The file size
-     * @param int    $error        The error constant of the upload (one of PHP's UPLOAD_ERR_XXX constants)
-     * @param bool   $test         Whether the test mode is active
-     *
-     * @throws FileException         If file_uploads is disabled
-     * @throws FileNotFoundException If the file does not exist
-     *
-     * @api
-     */
-    public function __construct($path, $originalName, $mimeType = null, $size = null, $error = null, $test = false)
-    {
-        $this->originalName = $this->getName($originalName);
-        $this->mimeType = $mimeType ?: 'application/octet-stream';
-        $this->size = $size;
-        $this->error = $error ?: UPLOAD_ERR_OK;
-        $this->test = (bool) $test;
-
-        parent::__construct($path, UPLOAD_ERR_OK === $this->error);
-    }
-
-    /**
-     * Returns the original file name.
-     *
-     * It is extracted from the request from which the file has been uploaded.
-     * Then it should not be considered as a safe value.
-     *
-     * @return string|null The original name
-     *
-     * @api
-     */
-    public function getClientOriginalName()
-    {
-        return $this->originalName;
-    }
-
-    /**
-     * Returns the original file extension.
-     *
-     * It is extracted from the original file name that was uploaded.
-     * Then it should not be considered as a safe value.
-     *
-     * @return string The extension
-     */
-    public function getClientOriginalExtension()
-    {
-        return pathinfo($this->originalName, PATHINFO_EXTENSION);
-    }
-
-    /**
-     * Returns the file mime type.
-     *
-     * The client mime type is extracted from the request from which the file
-     * was uploaded, so it should not be considered as a safe value.
-     *
-     * For a trusted mime type, use getMimeType() instead (which guesses the mime
-     * type based on the file content).
-     *
-     * @return string|null The mime type
-     *
-     * @see getMimeType()
-     *
-     * @api
-     */
-    public function getClientMimeType()
-    {
-        return $this->mimeType;
-    }
-
-    /**
-     * Returns the extension based on the client mime type.
-     *
-     * If the mime type is unknown, returns null.
-     *
-     * This method uses the mime type as guessed by getClientMimeType()
-     * to guess the file extension. As such, the extension returned
-     * by this method cannot be trusted.
-     *
-     * For a trusted extension, use guessExtension() instead (which guesses
-     * the extension based on the guessed mime type for the file).
-     *
-     * @return string|null The guessed extension or null if it cannot be guessed
-     *
-     * @see guessExtension()
-     * @see getClientMimeType()
-     */
-    public function guessClientExtension()
-    {
-        $type = $this->getClientMimeType();
-        $guesser = ExtensionGuesser::getInstance();
-
-        return $guesser->guess($type);
-    }
-
-    /**
-     * Returns the file size.
-     *
-     * It is extracted from the request from which the file has been uploaded.
-     * Then it should not be considered as a safe value.
-     *
-     * @return int|null The file size
-     *
-     * @api
-     */
-    public function getClientSize()
-    {
-        return $this->size;
-    }
-
-    /**
-     * Returns the upload error.
-     *
-     * If the upload was successful, the constant UPLOAD_ERR_OK is returned.
-     * Otherwise one of the other UPLOAD_ERR_XXX constants is returned.
-     *
-     * @return int The upload error
-     *
-     * @api
-     */
-    public function getError()
-    {
-        return $this->error;
-    }
-
-    /**
-     * Returns whether the file was uploaded successfully.
-     *
-     * @return bool True if the file has been uploaded with HTTP and no error occurred.
-     *
-     * @api
-     */
-    public function isValid()
-    {
-        $isOk = $this->error === UPLOAD_ERR_OK;
-
-        return $this->test ? $isOk : $isOk && is_uploaded_file($this->getPathname());
-    }
-
-    /**
-     * Moves the file to a new location.
-     *
-     * @param string $directory The destination folder
-     * @param string $name      The new file name
-     *
-     * @return File A File object representing the new file
-     *
-     * @throws FileException if, for any reason, the file could not have been moved
-     *
-     * @api
-     */
-    public function move($directory, $name = null)
-    {
-        if ($this->isValid()) {
-            if ($this->test) {
-                return parent::move($directory, $name);
-            }
-
-            $target = $this->getTargetFile($directory, $name);
-
-            if (!@move_uploaded_file($this->getPathname(), $target)) {
-                $error = error_get_last();
-                throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error['message'])));
-            }
-
-            @chmod($target, 0666 & ~umask());
-
-            return $target;
-        }
-
-        throw new FileException($this->getErrorMessage());
-    }
-
-    /**
-     * Returns the maximum size of an uploaded file as configured in php.ini.
-     *
-     * @return int The maximum size of an uploaded file in bytes
-     */
-    public static function getMaxFilesize()
-    {
-        $iniMax = strtolower(ini_get('upload_max_filesize'));
-
-        if ('' === $iniMax) {
-            return PHP_INT_MAX;
-        }
-
-        $max = ltrim($iniMax, '+');
-        if (0 === strpos($max, '0x')) {
-            $max = intval($max, 16);
-        } elseif (0 === strpos($max, '0')) {
-            $max = intval($max, 8);
-        } else {
-            $max = (int) $max;
-        }
-
-        switch (substr($iniMax, -1)) {
-            case 't': $max *= 1024;
-            case 'g': $max *= 1024;
-            case 'm': $max *= 1024;
-            case 'k': $max *= 1024;
-        }
-
-        return $max;
-    }
-
-    /**
-     * Returns an informative upload error message.
-     *
-     * @return string The error message regarding the specified error code
-     */
-    public function getErrorMessage()
-    {
-        static $errors = array(
-            UPLOAD_ERR_INI_SIZE => 'The file "%s" exceeds your upload_max_filesize ini directive (limit is %d KiB).',
-            UPLOAD_ERR_FORM_SIZE => 'The file "%s" exceeds the upload limit defined in your form.',
-            UPLOAD_ERR_PARTIAL => 'The file "%s" was only partially uploaded.',
-            UPLOAD_ERR_NO_FILE => 'No file was uploaded.',
-            UPLOAD_ERR_CANT_WRITE => 'The file "%s" could not be written on disk.',
-            UPLOAD_ERR_NO_TMP_DIR => 'File could not be uploaded: missing temporary directory.',
-            UPLOAD_ERR_EXTENSION => 'File upload was stopped by a PHP extension.',
-        );
-
-        $errorCode = $this->error;
-        $maxFilesize = $errorCode === UPLOAD_ERR_INI_SIZE ? self::getMaxFilesize() / 1024 : 0;
-        $message = isset($errors[$errorCode]) ? $errors[$errorCode] : 'The file "%s" was not uploaded due to an unknown error.';
-
-        return sprintf($message, $this->getClientOriginalName(), $maxFilesize);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/FileBag.php b/core/vendor/symfony/http-foundation/FileBag.php
deleted file mode 100644
index 43b8af3..0000000
--- a/core/vendor/symfony/http-foundation/FileBag.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-
-/**
- * FileBag is a container for uploaded files.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- *
- * @api
- */
-class FileBag extends ParameterBag
-{
-    private static $fileKeys = array('error', 'name', 'size', 'tmp_name', 'type');
-
-    /**
-     * Constructor.
-     *
-     * @param array $parameters An array of HTTP files
-     *
-     * @api
-     */
-    public function __construct(array $parameters = array())
-    {
-        $this->replace($parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function replace(array $files = array())
-    {
-        $this->parameters = array();
-        $this->add($files);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function set($key, $value)
-    {
-        if (!is_array($value) && !$value instanceof UploadedFile) {
-            throw new \InvalidArgumentException('An uploaded file must be an array or an instance of UploadedFile.');
-        }
-
-        parent::set($key, $this->convertFileInformation($value));
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function add(array $files = array())
-    {
-        foreach ($files as $key => $file) {
-            $this->set($key, $file);
-        }
-    }
-
-    /**
-     * Converts uploaded files to UploadedFile instances.
-     *
-     * @param array|UploadedFile $file A (multi-dimensional) array of uploaded file information
-     *
-     * @return array A (multi-dimensional) array of UploadedFile instances
-     */
-    protected function convertFileInformation($file)
-    {
-        if ($file instanceof UploadedFile) {
-            return $file;
-        }
-
-        $file = $this->fixPhpFilesArray($file);
-        if (is_array($file)) {
-            $keys = array_keys($file);
-            sort($keys);
-
-            if ($keys == self::$fileKeys) {
-                if (UPLOAD_ERR_NO_FILE == $file['error']) {
-                    $file = null;
-                } else {
-                    $file = new UploadedFile($file['tmp_name'], $file['name'], $file['type'], $file['size'], $file['error']);
-                }
-            } else {
-                $file = array_map(array($this, 'convertFileInformation'), $file);
-            }
-        }
-
-        return $file;
-    }
-
-    /**
-     * Fixes a malformed PHP $_FILES array.
-     *
-     * PHP has a bug that the format of the $_FILES array differs, depending on
-     * whether the uploaded file fields had normal field names or array-like
-     * field names ("normal" vs. "parent[child]").
-     *
-     * This method fixes the array to look like the "normal" $_FILES array.
-     *
-     * It's safe to pass an already converted array, in which case this method
-     * just returns the original array unmodified.
-     *
-     * @param array $data
-     *
-     * @return array
-     */
-    protected function fixPhpFilesArray($data)
-    {
-        if (!is_array($data)) {
-            return $data;
-        }
-
-        $keys = array_keys($data);
-        sort($keys);
-
-        if (self::$fileKeys != $keys || !isset($data['name']) || !is_array($data['name'])) {
-            return $data;
-        }
-
-        $files = $data;
-        foreach (self::$fileKeys as $k) {
-            unset($files[$k]);
-        }
-
-        foreach ($data['name'] as $key => $name) {
-            $files[$key] = $this->fixPhpFilesArray(array(
-                'error' => $data['error'][$key],
-                'name' => $name,
-                'type' => $data['type'][$key],
-                'tmp_name' => $data['tmp_name'][$key],
-                'size' => $data['size'][$key],
-            ));
-        }
-
-        return $files;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/HeaderBag.php b/core/vendor/symfony/http-foundation/HeaderBag.php
deleted file mode 100644
index d3adffa..0000000
--- a/core/vendor/symfony/http-foundation/HeaderBag.php
+++ /dev/null
@@ -1,348 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * HeaderBag is a container for HTTP headers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class HeaderBag implements \IteratorAggregate, \Countable
-{
-    protected $headers = array();
-    protected $cacheControl = array();
-
-    /**
-     * Constructor.
-     *
-     * @param array $headers An array of HTTP headers
-     *
-     * @api
-     */
-    public function __construct(array $headers = array())
-    {
-        foreach ($headers as $key => $values) {
-            $this->set($key, $values);
-        }
-    }
-
-    /**
-     * Returns the headers as a string.
-     *
-     * @return string The headers
-     */
-    public function __toString()
-    {
-        if (!$this->headers) {
-            return '';
-        }
-
-        $max = max(array_map('strlen', array_keys($this->headers))) + 1;
-        $content = '';
-        ksort($this->headers);
-        foreach ($this->headers as $name => $values) {
-            $name = implode('-', array_map('ucfirst', explode('-', $name)));
-            foreach ($values as $value) {
-                $content .= sprintf("%-{$max}s %s\r\n", $name.':', $value);
-            }
-        }
-
-        return $content;
-    }
-
-    /**
-     * Returns the headers.
-     *
-     * @return array An array of headers
-     *
-     * @api
-     */
-    public function all()
-    {
-        return $this->headers;
-    }
-
-    /**
-     * Returns the parameter keys.
-     *
-     * @return array An array of parameter keys
-     *
-     * @api
-     */
-    public function keys()
-    {
-        return array_keys($this->headers);
-    }
-
-    /**
-     * Replaces the current HTTP headers by a new set.
-     *
-     * @param array $headers An array of HTTP headers
-     *
-     * @api
-     */
-    public function replace(array $headers = array())
-    {
-        $this->headers = array();
-        $this->add($headers);
-    }
-
-    /**
-     * Adds new headers the current HTTP headers set.
-     *
-     * @param array $headers An array of HTTP headers
-     *
-     * @api
-     */
-    public function add(array $headers)
-    {
-        foreach ($headers as $key => $values) {
-            $this->set($key, $values);
-        }
-    }
-
-    /**
-     * Returns a header value by name.
-     *
-     * @param string $key     The header name
-     * @param mixed  $default The default value
-     * @param bool   $first   Whether to return the first value or all header values
-     *
-     * @return string|array The first header value if $first is true, an array of values otherwise
-     *
-     * @api
-     */
-    public function get($key, $default = null, $first = true)
-    {
-        $key = strtr(strtolower($key), '_', '-');
-
-        if (!array_key_exists($key, $this->headers)) {
-            if (null === $default) {
-                return $first ? null : array();
-            }
-
-            return $first ? $default : array($default);
-        }
-
-        if ($first) {
-            return count($this->headers[$key]) ? $this->headers[$key][0] : $default;
-        }
-
-        return $this->headers[$key];
-    }
-
-    /**
-     * Sets a header by name.
-     *
-     * @param string       $key     The key
-     * @param string|array $values  The value or an array of values
-     * @param bool         $replace Whether to replace the actual value or not (true by default)
-     *
-     * @api
-     */
-    public function set($key, $values, $replace = true)
-    {
-        $key = strtr(strtolower($key), '_', '-');
-
-        $values = array_values((array) $values);
-
-        if (true === $replace || !isset($this->headers[$key])) {
-            $this->headers[$key] = $values;
-        } else {
-            $this->headers[$key] = array_merge($this->headers[$key], $values);
-        }
-
-        if ('cache-control' === $key) {
-            $this->cacheControl = $this->parseCacheControl($values[0]);
-        }
-    }
-
-    /**
-     * Returns true if the HTTP header is defined.
-     *
-     * @param string $key The HTTP header
-     *
-     * @return bool true if the parameter exists, false otherwise
-     *
-     * @api
-     */
-    public function has($key)
-    {
-        return array_key_exists(strtr(strtolower($key), '_', '-'), $this->headers);
-    }
-
-    /**
-     * Returns true if the given HTTP header contains the given value.
-     *
-     * @param string $key   The HTTP header name
-     * @param string $value The HTTP value
-     *
-     * @return bool true if the value is contained in the header, false otherwise
-     *
-     * @api
-     */
-    public function contains($key, $value)
-    {
-        return in_array($value, $this->get($key, null, false));
-    }
-
-    /**
-     * Removes a header.
-     *
-     * @param string $key The HTTP header name
-     *
-     * @api
-     */
-    public function remove($key)
-    {
-        $key = strtr(strtolower($key), '_', '-');
-
-        unset($this->headers[$key]);
-
-        if ('cache-control' === $key) {
-            $this->cacheControl = array();
-        }
-    }
-
-    /**
-     * Returns the HTTP header value converted to a date.
-     *
-     * @param string    $key     The parameter key
-     * @param \DateTime $default The default value
-     *
-     * @return null|\DateTime The parsed DateTime or the default value if the header does not exist
-     *
-     * @throws \RuntimeException When the HTTP header is not parseable
-     *
-     * @api
-     */
-    public function getDate($key, \DateTime $default = null)
-    {
-        if (null === $value = $this->get($key)) {
-            return $default;
-        }
-
-        if (false === $date = \DateTime::createFromFormat(DATE_RFC2822, $value)) {
-            throw new \RuntimeException(sprintf('The %s HTTP header is not parseable (%s).', $key, $value));
-        }
-
-        return $date;
-    }
-
-    /**
-     * Adds a custom Cache-Control directive.
-     *
-     * @param string $key   The Cache-Control directive name
-     * @param mixed  $value The Cache-Control directive value
-     */
-    public function addCacheControlDirective($key, $value = true)
-    {
-        $this->cacheControl[$key] = $value;
-
-        $this->set('Cache-Control', $this->getCacheControlHeader());
-    }
-
-    /**
-     * Returns true if the Cache-Control directive is defined.
-     *
-     * @param string $key The Cache-Control directive
-     *
-     * @return bool true if the directive exists, false otherwise
-     */
-    public function hasCacheControlDirective($key)
-    {
-        return array_key_exists($key, $this->cacheControl);
-    }
-
-    /**
-     * Returns a Cache-Control directive value by name.
-     *
-     * @param string $key The directive name
-     *
-     * @return mixed|null The directive value if defined, null otherwise
-     */
-    public function getCacheControlDirective($key)
-    {
-        return array_key_exists($key, $this->cacheControl) ? $this->cacheControl[$key] : null;
-    }
-
-    /**
-     * Removes a Cache-Control directive.
-     *
-     * @param string $key The Cache-Control directive
-     */
-    public function removeCacheControlDirective($key)
-    {
-        unset($this->cacheControl[$key]);
-
-        $this->set('Cache-Control', $this->getCacheControlHeader());
-    }
-
-    /**
-     * Returns an iterator for headers.
-     *
-     * @return \ArrayIterator An \ArrayIterator instance
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->headers);
-    }
-
-    /**
-     * Returns the number of headers.
-     *
-     * @return int The number of headers
-     */
-    public function count()
-    {
-        return count($this->headers);
-    }
-
-    protected function getCacheControlHeader()
-    {
-        $parts = array();
-        ksort($this->cacheControl);
-        foreach ($this->cacheControl as $key => $value) {
-            if (true === $value) {
-                $parts[] = $key;
-            } else {
-                if (preg_match('#[^a-zA-Z0-9._-]#', $value)) {
-                    $value = '"'.$value.'"';
-                }
-
-                $parts[] = "$key=$value";
-            }
-        }
-
-        return implode(', ', $parts);
-    }
-
-    /**
-     * Parses a Cache-Control HTTP header.
-     *
-     * @param string $header The value of the Cache-Control HTTP header
-     *
-     * @return array An array representing the attribute values
-     */
-    protected function parseCacheControl($header)
-    {
-        $cacheControl = array();
-        preg_match_all('#([a-zA-Z][a-zA-Z_-]*)\s*(?:=(?:"([^"]*)"|([^ \t",;]*)))?#', $header, $matches, PREG_SET_ORDER);
-        foreach ($matches as $match) {
-            $cacheControl[strtolower($match[1])] = isset($match[3]) ? $match[3] : (isset($match[2]) ? $match[2] : true);
-        }
-
-        return $cacheControl;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/IpUtils.php b/core/vendor/symfony/http-foundation/IpUtils.php
deleted file mode 100644
index fb906b6..0000000
--- a/core/vendor/symfony/http-foundation/IpUtils.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Http utility functions.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class IpUtils
-{
-    /**
-     * This class should not be instantiated.
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Checks if an IPv4 or IPv6 address is contained in the list of given IPs or subnets.
-     *
-     * @param string       $requestIp IP to check
-     * @param string|array $ips       List of IPs or subnets (can be a string if only a single one)
-     *
-     * @return bool Whether the IP is valid
-     */
-    public static function checkIp($requestIp, $ips)
-    {
-        if (!is_array($ips)) {
-            $ips = array($ips);
-        }
-
-        $method = substr_count($requestIp, ':') > 1 ? 'checkIp6' : 'checkIp4';
-
-        foreach ($ips as $ip) {
-            if (self::$method($requestIp, $ip)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Compares two IPv4 addresses.
-     * In case a subnet is given, it checks if it contains the request IP.
-     *
-     * @param string $requestIp IPv4 address to check
-     * @param string $ip        IPv4 address or subnet in CIDR notation
-     *
-     * @return bool Whether the IP is valid
-     */
-    public static function checkIp4($requestIp, $ip)
-    {
-        if (false !== strpos($ip, '/')) {
-            if ('0.0.0.0/0' === $ip) {
-                return true;
-            }
-
-            list($address, $netmask) = explode('/', $ip, 2);
-
-            if ($netmask < 1 || $netmask > 32) {
-                return false;
-            }
-        } else {
-            $address = $ip;
-            $netmask = 32;
-        }
-
-        return 0 === substr_compare(sprintf('%032b', ip2long($requestIp)), sprintf('%032b', ip2long($address)), 0, $netmask);
-    }
-
-    /**
-     * Compares two IPv6 addresses.
-     * In case a subnet is given, it checks if it contains the request IP.
-     *
-     * @author David Soria Parra <dsp at php dot net>
-     *
-     * @see https://github.com/dsp/v6tools
-     *
-     * @param string $requestIp IPv6 address to check
-     * @param string $ip        IPv6 address or subnet in CIDR notation
-     *
-     * @return bool Whether the IP is valid
-     *
-     * @throws \RuntimeException When IPV6 support is not enabled
-     */
-    public static function checkIp6($requestIp, $ip)
-    {
-        if (!((extension_loaded('sockets') && defined('AF_INET6')) || @inet_pton('::1'))) {
-            throw new \RuntimeException('Unable to check Ipv6. Check that PHP was not compiled with option "disable-ipv6".');
-        }
-
-        if (false !== strpos($ip, '/')) {
-            list($address, $netmask) = explode('/', $ip, 2);
-
-            if ($netmask < 1 || $netmask > 128) {
-                return false;
-            }
-        } else {
-            $address = $ip;
-            $netmask = 128;
-        }
-
-        $bytesAddr = unpack('n*', inet_pton($address));
-        $bytesTest = unpack('n*', inet_pton($requestIp));
-
-        for ($i = 1, $ceil = ceil($netmask / 16); $i <= $ceil; ++$i) {
-            $left = $netmask - 16 * ($i - 1);
-            $left = ($left <= 16) ? $left : 16;
-            $mask = ~(0xffff >> $left) & 0xffff;
-            if (($bytesAddr[$i] & $mask) != ($bytesTest[$i] & $mask)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/JsonResponse.php b/core/vendor/symfony/http-foundation/JsonResponse.php
deleted file mode 100644
index 5399d1b..0000000
--- a/core/vendor/symfony/http-foundation/JsonResponse.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Response represents an HTTP response in JSON format.
- *
- * Note that this class does not force the returned JSON content to be an
- * object. It is however recommended that you do return an object as it
- * protects yourself against XSSI and JSON-JavaScript Hijacking.
- *
- * @see https://www.owasp.org/index.php/OWASP_AJAX_Security_Guidelines#Always_return_JSON_with_an_Object_on_the_outside
- *
- * @author Igor Wiedler <igor@wiedler.ch>
- */
-class JsonResponse extends Response
-{
-    protected $data;
-    protected $callback;
-
-    // Encode <, >, ', &, and " for RFC4627-compliant JSON, which may also be embedded into HTML.
-    // 15 === JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT
-    protected $encodingOptions = 15;
-
-    /**
-     * Constructor.
-     *
-     * @param mixed $data    The response data
-     * @param int   $status  The response status code
-     * @param array $headers An array of response headers
-     */
-    public function __construct($data = null, $status = 200, $headers = array())
-    {
-        parent::__construct('', $status, $headers);
-
-        if (null === $data) {
-            $data = new \ArrayObject();
-        }
-
-        $this->setData($data);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public static function create($data = null, $status = 200, $headers = array())
-    {
-        return new static($data, $status, $headers);
-    }
-
-    /**
-     * Sets the JSONP callback.
-     *
-     * @param string|null $callback The JSONP callback or null to use none
-     *
-     * @return JsonResponse
-     *
-     * @throws \InvalidArgumentException When the callback name is not valid
-     */
-    public function setCallback($callback = null)
-    {
-        if (null !== $callback) {
-            // taken from http://www.geekality.net/2011/08/03/valid-javascript-identifier/
-            $pattern = '/^[$_\p{L}][$_\p{L}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{200C}\x{200D}]*+$/u';
-            $parts = explode('.', $callback);
-            foreach ($parts as $part) {
-                if (!preg_match($pattern, $part)) {
-                    throw new \InvalidArgumentException('The callback name is not valid.');
-                }
-            }
-        }
-
-        $this->callback = $callback;
-
-        return $this->update();
-    }
-
-    /**
-     * Sets the data to be sent as JSON.
-     *
-     * @param mixed $data
-     *
-     * @return JsonResponse
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setData($data = array())
-    {
-        if (defined('HHVM_VERSION')) {
-            // HHVM does not trigger any warnings and let exceptions
-            // thrown from a JsonSerializable object pass through.
-            // If only PHP did the same...
-            $data = json_encode($data, $this->encodingOptions);
-        } else {
-            try {
-                if (PHP_VERSION_ID < 50400) {
-                    // PHP 5.3 triggers annoying warnings for some
-                    // types that can't be serialized as JSON (INF, resources, etc.)
-                    // but doesn't provide the JsonSerializable interface.
-                    set_error_handler('var_dump', 0);
-                    $data = @json_encode($data, $this->encodingOptions);
-                } else {
-                    // PHP 5.4 and up wrap exceptions thrown by JsonSerializable
-                    // objects in a new exception that needs to be removed.
-                    // Fortunately, PHP 5.5 and up do not trigger any warning anymore.
-                    if (PHP_VERSION_ID < 50500) {
-                        // Clear json_last_error()
-                        json_encode(null);
-                        $errorHandler = set_error_handler('var_dump');
-                        restore_error_handler();
-                        set_error_handler(function () use ($errorHandler) {
-                            if (JSON_ERROR_NONE === json_last_error()) {
-                                return $errorHandler && false !== call_user_func_array($errorHandler, func_get_args());
-                            }
-                        });
-                    }
-
-                    $data = json_encode($data, $this->encodingOptions);
-                }
-
-                if (PHP_VERSION_ID < 50500) {
-                    restore_error_handler();
-                }
-            } catch (\Exception $e) {
-                if (PHP_VERSION_ID < 50500) {
-                    restore_error_handler();
-                }
-                if (PHP_VERSION_ID >= 50400 && 'Exception' === get_class($e) && 0 === strpos($e->getMessage(), 'Failed calling ')) {
-                    throw $e->getPrevious() ?: $e;
-                }
-                throw $e;
-            }
-        }
-
-        if (JSON_ERROR_NONE !== json_last_error()) {
-            throw new \InvalidArgumentException($this->transformJsonError());
-        }
-
-        $this->data = $data;
-
-        return $this->update();
-    }
-
-    /**
-     * Returns options used while encoding data to JSON.
-     *
-     * @return int
-     */
-    public function getEncodingOptions()
-    {
-        return $this->encodingOptions;
-    }
-
-    /**
-     * Sets options used while encoding data to JSON.
-     *
-     * @param int $encodingOptions
-     *
-     * @return JsonResponse
-     */
-    public function setEncodingOptions($encodingOptions)
-    {
-        $this->encodingOptions = (int) $encodingOptions;
-
-        return $this->setData(json_decode($this->data));
-    }
-
-    /**
-     * Updates the content and headers according to the JSON data and callback.
-     *
-     * @return JsonResponse
-     */
-    protected function update()
-    {
-        if (null !== $this->callback) {
-            // Not using application/javascript for compatibility reasons with older browsers.
-            $this->headers->set('Content-Type', 'text/javascript');
-
-            return $this->setContent(sprintf('/**/%s(%s);', $this->callback, $this->data));
-        }
-
-        // Only set the header when there is none or when it equals 'text/javascript' (from a previous update with callback)
-        // in order to not overwrite a custom definition.
-        if (!$this->headers->has('Content-Type') || 'text/javascript' === $this->headers->get('Content-Type')) {
-            $this->headers->set('Content-Type', 'application/json');
-        }
-
-        return $this->setContent($this->data);
-    }
-
-    private function transformJsonError()
-    {
-        if (function_exists('json_last_error_msg')) {
-            return json_last_error_msg();
-        }
-
-        switch (json_last_error()) {
-            case JSON_ERROR_DEPTH:
-                return 'Maximum stack depth exceeded.';
-
-            case JSON_ERROR_STATE_MISMATCH:
-                return 'Underflow or the modes mismatch.';
-
-            case JSON_ERROR_CTRL_CHAR:
-                return 'Unexpected control character found.';
-
-            case JSON_ERROR_SYNTAX:
-                return 'Syntax error, malformed JSON.';
-
-            case JSON_ERROR_UTF8:
-                return 'Malformed UTF-8 characters, possibly incorrectly encoded.';
-
-            default:
-                return 'Unknown error.';
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/LICENSE b/core/vendor/symfony/http-foundation/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/http-foundation/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/http-foundation/ParameterBag.php b/core/vendor/symfony/http-foundation/ParameterBag.php
deleted file mode 100644
index 6081f3f..0000000
--- a/core/vendor/symfony/http-foundation/ParameterBag.php
+++ /dev/null
@@ -1,319 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * ParameterBag is a container for key/value pairs.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ParameterBag implements \IteratorAggregate, \Countable
-{
-    /**
-     * Parameter storage.
-     *
-     * @var array
-     */
-    protected $parameters;
-
-    /**
-     * Constructor.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @api
-     */
-    public function __construct(array $parameters = array())
-    {
-        $this->parameters = $parameters;
-    }
-
-    /**
-     * Returns the parameters.
-     *
-     * @return array An array of parameters
-     *
-     * @api
-     */
-    public function all()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Returns the parameter keys.
-     *
-     * @return array An array of parameter keys
-     *
-     * @api
-     */
-    public function keys()
-    {
-        return array_keys($this->parameters);
-    }
-
-    /**
-     * Replaces the current parameters by a new set.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @api
-     */
-    public function replace(array $parameters = array())
-    {
-        $this->parameters = $parameters;
-    }
-
-    /**
-     * Adds parameters.
-     *
-     * @param array $parameters An array of parameters
-     *
-     * @api
-     */
-    public function add(array $parameters = array())
-    {
-        $this->parameters = array_replace($this->parameters, $parameters);
-    }
-
-    /**
-     * Returns a parameter by name.
-     *
-     * @param string $path    The key
-     * @param mixed  $default The default value if the parameter key does not exist
-     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
-     *
-     * @return mixed
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function get($path, $default = null, $deep = false)
-    {
-        if (!$deep || false === $pos = strpos($path, '[')) {
-            return array_key_exists($path, $this->parameters) ? $this->parameters[$path] : $default;
-        }
-
-        $root = substr($path, 0, $pos);
-        if (!array_key_exists($root, $this->parameters)) {
-            return $default;
-        }
-
-        $value = $this->parameters[$root];
-        $currentKey = null;
-        for ($i = $pos, $c = strlen($path); $i < $c; ++$i) {
-            $char = $path[$i];
-
-            if ('[' === $char) {
-                if (null !== $currentKey) {
-                    throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "[" at position %d.', $i));
-                }
-
-                $currentKey = '';
-            } elseif (']' === $char) {
-                if (null === $currentKey) {
-                    throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "]" at position %d.', $i));
-                }
-
-                if (!is_array($value) || !array_key_exists($currentKey, $value)) {
-                    return $default;
-                }
-
-                $value = $value[$currentKey];
-                $currentKey = null;
-            } else {
-                if (null === $currentKey) {
-                    throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "%s" at position %d.', $char, $i));
-                }
-
-                $currentKey .= $char;
-            }
-        }
-
-        if (null !== $currentKey) {
-            throw new \InvalidArgumentException(sprintf('Malformed path. Path must end with "]".'));
-        }
-
-        return $value;
-    }
-
-    /**
-     * Sets a parameter by name.
-     *
-     * @param string $key   The key
-     * @param mixed  $value The value
-     *
-     * @api
-     */
-    public function set($key, $value)
-    {
-        $this->parameters[$key] = $value;
-    }
-
-    /**
-     * Returns true if the parameter is defined.
-     *
-     * @param string $key The key
-     *
-     * @return bool true if the parameter exists, false otherwise
-     *
-     * @api
-     */
-    public function has($key)
-    {
-        return array_key_exists($key, $this->parameters);
-    }
-
-    /**
-     * Removes a parameter.
-     *
-     * @param string $key The key
-     *
-     * @api
-     */
-    public function remove($key)
-    {
-        unset($this->parameters[$key]);
-    }
-
-    /**
-     * Returns the alphabetic characters of the parameter value.
-     *
-     * @param string $key     The parameter key
-     * @param mixed  $default The default value if the parameter key does not exist
-     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
-     *
-     * @return string The filtered value
-     *
-     * @api
-     */
-    public function getAlpha($key, $default = '', $deep = false)
-    {
-        return preg_replace('/[^[:alpha:]]/', '', $this->get($key, $default, $deep));
-    }
-
-    /**
-     * Returns the alphabetic characters and digits of the parameter value.
-     *
-     * @param string $key     The parameter key
-     * @param mixed  $default The default value if the parameter key does not exist
-     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
-     *
-     * @return string The filtered value
-     *
-     * @api
-     */
-    public function getAlnum($key, $default = '', $deep = false)
-    {
-        return preg_replace('/[^[:alnum:]]/', '', $this->get($key, $default, $deep));
-    }
-
-    /**
-     * Returns the digits of the parameter value.
-     *
-     * @param string $key     The parameter key
-     * @param mixed  $default The default value if the parameter key does not exist
-     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
-     *
-     * @return string The filtered value
-     *
-     * @api
-     */
-    public function getDigits($key, $default = '', $deep = false)
-    {
-        // we need to remove - and + because they're allowed in the filter
-        return str_replace(array('-', '+'), '', $this->filter($key, $default, $deep, FILTER_SANITIZE_NUMBER_INT));
-    }
-
-    /**
-     * Returns the parameter value converted to integer.
-     *
-     * @param string $key     The parameter key
-     * @param mixed  $default The default value if the parameter key does not exist
-     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
-     *
-     * @return int The filtered value
-     *
-     * @api
-     */
-    public function getInt($key, $default = 0, $deep = false)
-    {
-        return (int) $this->get($key, $default, $deep);
-    }
-
-    /**
-     * Returns the parameter value converted to boolean.
-     *
-     * @param string $key     The parameter key
-     * @param mixed  $default The default value if the parameter key does not exist
-     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
-     *
-     * @return bool The filtered value
-     */
-    public function getBoolean($key, $default = false, $deep = false)
-    {
-        return $this->filter($key, $default, $deep, FILTER_VALIDATE_BOOLEAN);
-    }
-
-    /**
-     * Filter key.
-     *
-     * @param string $key     Key.
-     * @param mixed  $default Default = null.
-     * @param bool   $deep    Default = false.
-     * @param int    $filter  FILTER_* constant.
-     * @param mixed  $options Filter options.
-     *
-     * @see http://php.net/manual/en/function.filter-var.php
-     *
-     * @return mixed
-     */
-    public function filter($key, $default = null, $deep = false, $filter = FILTER_DEFAULT, $options = array())
-    {
-        $value = $this->get($key, $default, $deep);
-
-        // Always turn $options into an array - this allows filter_var option shortcuts.
-        if (!is_array($options) && $options) {
-            $options = array('flags' => $options);
-        }
-
-        // Add a convenience check for arrays.
-        if (is_array($value) && !isset($options['flags'])) {
-            $options['flags'] = FILTER_REQUIRE_ARRAY;
-        }
-
-        return filter_var($value, $filter, $options);
-    }
-
-    /**
-     * Returns an iterator for parameters.
-     *
-     * @return \ArrayIterator An \ArrayIterator instance
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->parameters);
-    }
-
-    /**
-     * Returns the number of parameters.
-     *
-     * @return int The number of parameters
-     */
-    public function count()
-    {
-        return count($this->parameters);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/README.md b/core/vendor/symfony/http-foundation/README.md
deleted file mode 100644
index 11ad6ee..0000000
--- a/core/vendor/symfony/http-foundation/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-HttpFoundation Component
-========================
-
-HttpFoundation defines an object-oriented layer for the HTTP specification.
-
-It provides an abstraction for requests, responses, uploaded files, cookies,
-sessions, ...
-
-In this example, we get a Request object from the current PHP global
-variables:
-
-```php
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-$request = Request::createFromGlobals();
-echo $request->getPathInfo();
-```
-
-You can also create a Request directly -- that's interesting for unit testing:
-
-```php
-$request = Request::create('/?foo=bar', 'GET');
-echo $request->getPathInfo();
-```
-
-And here is how to create and send a Response:
-
-```php
-$response = new Response('Not Found', 404, array('Content-Type' => 'text/plain'));
-$response->send();
-```
-
-The Request and the Response classes have many other methods that implement
-the HTTP specification.
-
-Loading
--------
-
-If you are not using Composer but are using PHP 5.3.x, you must add the following to your autoloader:
-
-```php
-// SessionHandlerInterface
-if (!interface_exists('SessionHandlerInterface')) {
-    $loader->registerPrefixFallback(__DIR__.'/../vendor/symfony/src/Symfony/Component/HttpFoundation/Resources/stubs');
-}
-```
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/HttpFoundation/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/http-foundation/RedirectResponse.php b/core/vendor/symfony/http-foundation/RedirectResponse.php
deleted file mode 100644
index 5dc0b9e..0000000
--- a/core/vendor/symfony/http-foundation/RedirectResponse.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * RedirectResponse represents an HTTP response doing a redirect.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class RedirectResponse extends Response
-{
-    protected $targetUrl;
-
-    /**
-     * Creates a redirect response so that it conforms to the rules defined for a redirect status code.
-     *
-     * @param string $url     The URL to redirect to
-     * @param int    $status  The status code (302 by default)
-     * @param array  $headers The headers (Location is always set to the given URL)
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @see http://tools.ietf.org/html/rfc2616#section-10.3
-     *
-     * @api
-     */
-    public function __construct($url, $status = 302, $headers = array())
-    {
-        if (empty($url)) {
-            throw new \InvalidArgumentException('Cannot redirect to an empty URL.');
-        }
-
-        parent::__construct('', $status, $headers);
-
-        $this->setTargetUrl($url);
-
-        if (!$this->isRedirect()) {
-            throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $status));
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public static function create($url = '', $status = 302, $headers = array())
-    {
-        return new static($url, $status, $headers);
-    }
-
-    /**
-     * Returns the target URL.
-     *
-     * @return string target URL
-     */
-    public function getTargetUrl()
-    {
-        return $this->targetUrl;
-    }
-
-    /**
-     * Sets the redirect target of this response.
-     *
-     * @param string $url The URL to redirect to
-     *
-     * @return RedirectResponse The current response.
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setTargetUrl($url)
-    {
-        if (empty($url)) {
-            throw new \InvalidArgumentException('Cannot redirect to an empty URL.');
-        }
-
-        $this->targetUrl = $url;
-
-        $this->setContent(
-            sprintf('<!DOCTYPE html>
-<html>
-    <head>
-        <meta charset="UTF-8" />
-        <meta http-equiv="refresh" content="1;url=%1$s" />
-
-        <title>Redirecting to %1$s</title>
-    </head>
-    <body>
-        Redirecting to <a href="%1$s">%1$s</a>.
-    </body>
-</html>', htmlspecialchars($url, ENT_QUOTES, 'UTF-8')));
-
-        $this->headers->set('Location', $url);
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Request.php b/core/vendor/symfony/http-foundation/Request.php
deleted file mode 100644
index c6d1e31..0000000
--- a/core/vendor/symfony/http-foundation/Request.php
+++ /dev/null
@@ -1,2018 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-use Symfony\Component\HttpFoundation\Session\SessionInterface;
-
-/**
- * Request represents an HTTP request.
- *
- * The methods dealing with URL accept / return a raw path (% encoded):
- *   * getBasePath
- *   * getBaseUrl
- *   * getPathInfo
- *   * getRequestUri
- *   * getUri
- *   * getUriForPath
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Request
-{
-    const HEADER_FORWARDED = 'forwarded';
-    const HEADER_CLIENT_IP = 'client_ip';
-    const HEADER_CLIENT_HOST = 'client_host';
-    const HEADER_CLIENT_PROTO = 'client_proto';
-    const HEADER_CLIENT_PORT = 'client_port';
-
-    const METHOD_HEAD = 'HEAD';
-    const METHOD_GET = 'GET';
-    const METHOD_POST = 'POST';
-    const METHOD_PUT = 'PUT';
-    const METHOD_PATCH = 'PATCH';
-    const METHOD_DELETE = 'DELETE';
-    const METHOD_PURGE = 'PURGE';
-    const METHOD_OPTIONS = 'OPTIONS';
-    const METHOD_TRACE = 'TRACE';
-    const METHOD_CONNECT = 'CONNECT';
-
-    /**
-     * @var string[]
-     */
-    protected static $trustedProxies = array();
-
-    /**
-     * @var string[]
-     */
-    protected static $trustedHostPatterns = array();
-
-    /**
-     * @var string[]
-     */
-    protected static $trustedHosts = array();
-
-    /**
-     * Names for headers that can be trusted when
-     * using trusted proxies.
-     *
-     * The FORWARDED header is the standard as of rfc7239.
-     *
-     * The other headers are non-standard, but widely used
-     * by popular reverse proxies (like Apache mod_proxy or Amazon EC2).
-     */
-    protected static $trustedHeaders = array(
-        self::HEADER_FORWARDED => 'FORWARDED',
-        self::HEADER_CLIENT_IP => 'X_FORWARDED_FOR',
-        self::HEADER_CLIENT_HOST => 'X_FORWARDED_HOST',
-        self::HEADER_CLIENT_PROTO => 'X_FORWARDED_PROTO',
-        self::HEADER_CLIENT_PORT => 'X_FORWARDED_PORT',
-    );
-
-    protected static $httpMethodParameterOverride = false;
-
-    /**
-     * Custom parameters.
-     *
-     * @var \Symfony\Component\HttpFoundation\ParameterBag
-     *
-     * @api
-     */
-    public $attributes;
-
-    /**
-     * Request body parameters ($_POST).
-     *
-     * @var \Symfony\Component\HttpFoundation\ParameterBag
-     *
-     * @api
-     */
-    public $request;
-
-    /**
-     * Query string parameters ($_GET).
-     *
-     * @var \Symfony\Component\HttpFoundation\ParameterBag
-     *
-     * @api
-     */
-    public $query;
-
-    /**
-     * Server and execution environment parameters ($_SERVER).
-     *
-     * @var \Symfony\Component\HttpFoundation\ServerBag
-     *
-     * @api
-     */
-    public $server;
-
-    /**
-     * Uploaded files ($_FILES).
-     *
-     * @var \Symfony\Component\HttpFoundation\FileBag
-     *
-     * @api
-     */
-    public $files;
-
-    /**
-     * Cookies ($_COOKIE).
-     *
-     * @var \Symfony\Component\HttpFoundation\ParameterBag
-     *
-     * @api
-     */
-    public $cookies;
-
-    /**
-     * Headers (taken from the $_SERVER).
-     *
-     * @var \Symfony\Component\HttpFoundation\HeaderBag
-     *
-     * @api
-     */
-    public $headers;
-
-    /**
-     * @var string
-     */
-    protected $content;
-
-    /**
-     * @var array
-     */
-    protected $languages;
-
-    /**
-     * @var array
-     */
-    protected $charsets;
-
-    /**
-     * @var array
-     */
-    protected $encodings;
-
-    /**
-     * @var array
-     */
-    protected $acceptableContentTypes;
-
-    /**
-     * @var string
-     */
-    protected $pathInfo;
-
-    /**
-     * @var string
-     */
-    protected $requestUri;
-
-    /**
-     * @var string
-     */
-    protected $baseUrl;
-
-    /**
-     * @var string
-     */
-    protected $basePath;
-
-    /**
-     * @var string
-     */
-    protected $method;
-
-    /**
-     * @var string
-     */
-    protected $format;
-
-    /**
-     * @var \Symfony\Component\HttpFoundation\Session\SessionInterface
-     */
-    protected $session;
-
-    /**
-     * @var string
-     */
-    protected $locale;
-
-    /**
-     * @var string
-     */
-    protected $defaultLocale = 'en';
-
-    /**
-     * @var array
-     */
-    protected static $formats;
-
-    protected static $requestFactory;
-
-    /**
-     * Constructor.
-     *
-     * @param array           $query      The GET parameters
-     * @param array           $request    The POST parameters
-     * @param array           $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
-     * @param array           $cookies    The COOKIE parameters
-     * @param array           $files      The FILES parameters
-     * @param array           $server     The SERVER parameters
-     * @param string|resource $content    The raw body data
-     *
-     * @api
-     */
-    public function __construct(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
-    {
-        $this->initialize($query, $request, $attributes, $cookies, $files, $server, $content);
-    }
-
-    /**
-     * Sets the parameters for this request.
-     *
-     * This method also re-initializes all properties.
-     *
-     * @param array           $query      The GET parameters
-     * @param array           $request    The POST parameters
-     * @param array           $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
-     * @param array           $cookies    The COOKIE parameters
-     * @param array           $files      The FILES parameters
-     * @param array           $server     The SERVER parameters
-     * @param string|resource $content    The raw body data
-     *
-     * @api
-     */
-    public function initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
-    {
-        $this->request = new ParameterBag($request);
-        $this->query = new ParameterBag($query);
-        $this->attributes = new ParameterBag($attributes);
-        $this->cookies = new ParameterBag($cookies);
-        $this->files = new FileBag($files);
-        $this->server = new ServerBag($server);
-        $this->headers = new HeaderBag($this->server->getHeaders());
-
-        $this->content = $content;
-        $this->languages = null;
-        $this->charsets = null;
-        $this->encodings = null;
-        $this->acceptableContentTypes = null;
-        $this->pathInfo = null;
-        $this->requestUri = null;
-        $this->baseUrl = null;
-        $this->basePath = null;
-        $this->method = null;
-        $this->format = null;
-    }
-
-    /**
-     * Creates a new request with values from PHP's super globals.
-     *
-     * @return Request A new request
-     *
-     * @api
-     */
-    public static function createFromGlobals()
-    {
-        // With the php's bug #66606, the php's built-in web server
-        // stores the Content-Type and Content-Length header values in
-        // HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH fields.
-        $server = $_SERVER;
-        if ('cli-server' === php_sapi_name()) {
-            if (array_key_exists('HTTP_CONTENT_LENGTH', $_SERVER)) {
-                $server['CONTENT_LENGTH'] = $_SERVER['HTTP_CONTENT_LENGTH'];
-            }
-            if (array_key_exists('HTTP_CONTENT_TYPE', $_SERVER)) {
-                $server['CONTENT_TYPE'] = $_SERVER['HTTP_CONTENT_TYPE'];
-            }
-        }
-
-        $request = self::createRequestFromFactory($_GET, $_POST, array(), $_COOKIE, $_FILES, $server);
-
-        if (0 === strpos($request->headers->get('CONTENT_TYPE'), 'application/x-www-form-urlencoded')
-            && in_array(strtoupper($request->server->get('REQUEST_METHOD', 'GET')), array('PUT', 'DELETE', 'PATCH'))
-        ) {
-            parse_str($request->getContent(), $data);
-            $request->request = new ParameterBag($data);
-        }
-
-        return $request;
-    }
-
-    /**
-     * Creates a Request based on a given URI and configuration.
-     *
-     * The information contained in the URI always take precedence
-     * over the other information (server and parameters).
-     *
-     * @param string $uri        The URI
-     * @param string $method     The HTTP method
-     * @param array  $parameters The query (GET) or request (POST) parameters
-     * @param array  $cookies    The request cookies ($_COOKIE)
-     * @param array  $files      The request files ($_FILES)
-     * @param array  $server     The server parameters ($_SERVER)
-     * @param string $content    The raw body data
-     *
-     * @return Request A Request instance
-     *
-     * @api
-     */
-    public static function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null)
-    {
-        $server = array_replace(array(
-            'SERVER_NAME' => 'localhost',
-            'SERVER_PORT' => 80,
-            'HTTP_HOST' => 'localhost',
-            'HTTP_USER_AGENT' => 'Symfony/2.X',
-            'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
-            'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
-            'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
-            'REMOTE_ADDR' => '127.0.0.1',
-            'SCRIPT_NAME' => '',
-            'SCRIPT_FILENAME' => '',
-            'SERVER_PROTOCOL' => 'HTTP/1.1',
-            'REQUEST_TIME' => time(),
-        ), $server);
-
-        $server['PATH_INFO'] = '';
-        $server['REQUEST_METHOD'] = strtoupper($method);
-
-        $components = parse_url($uri);
-        if (isset($components['host'])) {
-            $server['SERVER_NAME'] = $components['host'];
-            $server['HTTP_HOST'] = $components['host'];
-        }
-
-        if (isset($components['scheme'])) {
-            if ('https' === $components['scheme']) {
-                $server['HTTPS'] = 'on';
-                $server['SERVER_PORT'] = 443;
-            } else {
-                unset($server['HTTPS']);
-                $server['SERVER_PORT'] = 80;
-            }
-        }
-
-        if (isset($components['port'])) {
-            $server['SERVER_PORT'] = $components['port'];
-            $server['HTTP_HOST'] = $server['HTTP_HOST'].':'.$components['port'];
-        }
-
-        if (isset($components['user'])) {
-            $server['PHP_AUTH_USER'] = $components['user'];
-        }
-
-        if (isset($components['pass'])) {
-            $server['PHP_AUTH_PW'] = $components['pass'];
-        }
-
-        if (!isset($components['path'])) {
-            $components['path'] = '/';
-        }
-
-        switch (strtoupper($method)) {
-            case 'POST':
-            case 'PUT':
-            case 'DELETE':
-                if (!isset($server['CONTENT_TYPE'])) {
-                    $server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
-                }
-                // no break
-            case 'PATCH':
-                $request = $parameters;
-                $query = array();
-                break;
-            default:
-                $request = array();
-                $query = $parameters;
-                break;
-        }
-
-        $queryString = '';
-        if (isset($components['query'])) {
-            parse_str(html_entity_decode($components['query']), $qs);
-
-            if ($query) {
-                $query = array_replace($qs, $query);
-                $queryString = http_build_query($query, '', '&');
-            } else {
-                $query = $qs;
-                $queryString = $components['query'];
-            }
-        } elseif ($query) {
-            $queryString = http_build_query($query, '', '&');
-        }
-
-        $server['REQUEST_URI'] = $components['path'].('' !== $queryString ? '?'.$queryString : '');
-        $server['QUERY_STRING'] = $queryString;
-
-        return self::createRequestFromFactory($query, $request, array(), $cookies, $files, $server, $content);
-    }
-
-    /**
-     * Sets a callable able to create a Request instance.
-     *
-     * This is mainly useful when you need to override the Request class
-     * to keep BC with an existing system. It should not be used for any
-     * other purpose.
-     *
-     * @param callable|null $callable A PHP callable
-     */
-    public static function setFactory($callable)
-    {
-        self::$requestFactory = $callable;
-    }
-
-    /**
-     * Clones a request and overrides some of its parameters.
-     *
-     * @param array $query      The GET parameters
-     * @param array $request    The POST parameters
-     * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
-     * @param array $cookies    The COOKIE parameters
-     * @param array $files      The FILES parameters
-     * @param array $server     The SERVER parameters
-     *
-     * @return Request The duplicated request
-     *
-     * @api
-     */
-    public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)
-    {
-        $dup = clone $this;
-        if ($query !== null) {
-            $dup->query = new ParameterBag($query);
-        }
-        if ($request !== null) {
-            $dup->request = new ParameterBag($request);
-        }
-        if ($attributes !== null) {
-            $dup->attributes = new ParameterBag($attributes);
-        }
-        if ($cookies !== null) {
-            $dup->cookies = new ParameterBag($cookies);
-        }
-        if ($files !== null) {
-            $dup->files = new FileBag($files);
-        }
-        if ($server !== null) {
-            $dup->server = new ServerBag($server);
-            $dup->headers = new HeaderBag($dup->server->getHeaders());
-        }
-        $dup->languages = null;
-        $dup->charsets = null;
-        $dup->encodings = null;
-        $dup->acceptableContentTypes = null;
-        $dup->pathInfo = null;
-        $dup->requestUri = null;
-        $dup->baseUrl = null;
-        $dup->basePath = null;
-        $dup->method = null;
-        $dup->format = null;
-
-        if (!$dup->get('_format') && $this->get('_format')) {
-            $dup->attributes->set('_format', $this->get('_format'));
-        }
-
-        if (!$dup->getRequestFormat(null)) {
-            $dup->setRequestFormat($this->getRequestFormat(null));
-        }
-
-        return $dup;
-    }
-
-    /**
-     * Clones the current request.
-     *
-     * Note that the session is not cloned as duplicated requests
-     * are most of the time sub-requests of the main one.
-     */
-    public function __clone()
-    {
-        $this->query = clone $this->query;
-        $this->request = clone $this->request;
-        $this->attributes = clone $this->attributes;
-        $this->cookies = clone $this->cookies;
-        $this->files = clone $this->files;
-        $this->server = clone $this->server;
-        $this->headers = clone $this->headers;
-    }
-
-    /**
-     * Returns the request as a string.
-     *
-     * @return string The request
-     */
-    public function __toString()
-    {
-        try {
-            $content = $this->getContent();
-        } catch (\LogicException $e) {
-            return trigger_error($e, E_USER_ERROR);
-        }
-
-        return
-            sprintf('%s %s %s', $this->getMethod(), $this->getRequestUri(), $this->server->get('SERVER_PROTOCOL'))."\r\n".
-            $this->headers."\r\n".
-            $content;
-    }
-
-    /**
-     * Overrides the PHP global variables according to this request instance.
-     *
-     * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.
-     * $_FILES is never overridden, see rfc1867
-     *
-     * @api
-     */
-    public function overrideGlobals()
-    {
-        $this->server->set('QUERY_STRING', static::normalizeQueryString(http_build_query($this->query->all(), null, '&')));
-
-        $_GET = $this->query->all();
-        $_POST = $this->request->all();
-        $_SERVER = $this->server->all();
-        $_COOKIE = $this->cookies->all();
-
-        foreach ($this->headers->all() as $key => $value) {
-            $key = strtoupper(str_replace('-', '_', $key));
-            if (in_array($key, array('CONTENT_TYPE', 'CONTENT_LENGTH'))) {
-                $_SERVER[$key] = implode(', ', $value);
-            } else {
-                $_SERVER['HTTP_'.$key] = implode(', ', $value);
-            }
-        }
-
-        $request = array('g' => $_GET, 'p' => $_POST, 'c' => $_COOKIE);
-
-        $requestOrder = ini_get('request_order') ?: ini_get('variables_order');
-        $requestOrder = preg_replace('#[^cgp]#', '', strtolower($requestOrder)) ?: 'gp';
-
-        $_REQUEST = array();
-        foreach (str_split($requestOrder) as $order) {
-            $_REQUEST = array_merge($_REQUEST, $request[$order]);
-        }
-    }
-
-    /**
-     * Sets a list of trusted proxies.
-     *
-     * You should only list the reverse proxies that you manage directly.
-     *
-     * @param array $proxies A list of trusted proxies
-     *
-     * @api
-     */
-    public static function setTrustedProxies(array $proxies)
-    {
-        self::$trustedProxies = $proxies;
-    }
-
-    /**
-     * Gets the list of trusted proxies.
-     *
-     * @return array An array of trusted proxies.
-     */
-    public static function getTrustedProxies()
-    {
-        return self::$trustedProxies;
-    }
-
-    /**
-     * Sets a list of trusted host patterns.
-     *
-     * You should only list the hosts you manage using regexs.
-     *
-     * @param array $hostPatterns A list of trusted host patterns
-     */
-    public static function setTrustedHosts(array $hostPatterns)
-    {
-        self::$trustedHostPatterns = array_map(function ($hostPattern) {
-            return sprintf('#%s#i', $hostPattern);
-        }, $hostPatterns);
-        // we need to reset trusted hosts on trusted host patterns change
-        self::$trustedHosts = array();
-    }
-
-    /**
-     * Gets the list of trusted host patterns.
-     *
-     * @return array An array of trusted host patterns.
-     */
-    public static function getTrustedHosts()
-    {
-        return self::$trustedHostPatterns;
-    }
-
-    /**
-     * Sets the name for trusted headers.
-     *
-     * The following header keys are supported:
-     *
-     *  * Request::HEADER_CLIENT_IP:    defaults to X-Forwarded-For   (see getClientIp())
-     *  * Request::HEADER_CLIENT_HOST:  defaults to X-Forwarded-Host  (see getHost())
-     *  * Request::HEADER_CLIENT_PORT:  defaults to X-Forwarded-Port  (see getPort())
-     *  * Request::HEADER_CLIENT_PROTO: defaults to X-Forwarded-Proto (see getScheme() and isSecure())
-     *
-     * Setting an empty value allows to disable the trusted header for the given key.
-     *
-     * @param string $key   The header key
-     * @param string $value The header name
-     *
-     * @throws \InvalidArgumentException
-     */
-    public static function setTrustedHeaderName($key, $value)
-    {
-        if (!array_key_exists($key, self::$trustedHeaders)) {
-            throw new \InvalidArgumentException(sprintf('Unable to set the trusted header name for key "%s".', $key));
-        }
-
-        self::$trustedHeaders[$key] = $value;
-    }
-
-    /**
-     * Gets the trusted proxy header name.
-     *
-     * @param string $key The header key
-     *
-     * @return string The header name
-     *
-     * @throws \InvalidArgumentException
-     */
-    public static function getTrustedHeaderName($key)
-    {
-        if (!array_key_exists($key, self::$trustedHeaders)) {
-            throw new \InvalidArgumentException(sprintf('Unable to get the trusted header name for key "%s".', $key));
-        }
-
-        return self::$trustedHeaders[$key];
-    }
-
-    /**
-     * Normalizes a query string.
-     *
-     * It builds a normalized query string, where keys/value pairs are alphabetized,
-     * have consistent escaping and unneeded delimiters are removed.
-     *
-     * @param string $qs Query string
-     *
-     * @return string A normalized query string for the Request
-     */
-    public static function normalizeQueryString($qs)
-    {
-        if ('' == $qs) {
-            return '';
-        }
-
-        $parts = array();
-        $order = array();
-
-        foreach (explode('&', $qs) as $param) {
-            if ('' === $param || '=' === $param[0]) {
-                // Ignore useless delimiters, e.g. "x=y&".
-                // Also ignore pairs with empty key, even if there was a value, e.g. "=value", as such nameless values cannot be retrieved anyway.
-                // PHP also does not include them when building _GET.
-                continue;
-            }
-
-            $keyValuePair = explode('=', $param, 2);
-
-            // GET parameters, that are submitted from a HTML form, encode spaces as "+" by default (as defined in enctype application/x-www-form-urlencoded).
-            // PHP also converts "+" to spaces when filling the global _GET or when using the function parse_str. This is why we use urldecode and then normalize to
-            // RFC 3986 with rawurlencode.
-            $parts[] = isset($keyValuePair[1]) ?
-                rawurlencode(urldecode($keyValuePair[0])).'='.rawurlencode(urldecode($keyValuePair[1])) :
-                rawurlencode(urldecode($keyValuePair[0]));
-            $order[] = urldecode($keyValuePair[0]);
-        }
-
-        array_multisort($order, SORT_ASC, $parts);
-
-        return implode('&', $parts);
-    }
-
-    /**
-     * Enables support for the _method request parameter to determine the intended HTTP method.
-     *
-     * Be warned that enabling this feature might lead to CSRF issues in your code.
-     * Check that you are using CSRF tokens when required.
-     * If the HTTP method parameter override is enabled, an html-form with method "POST" can be altered
-     * and used to send a "PUT" or "DELETE" request via the _method request parameter.
-     * If these methods are not protected against CSRF, this presents a possible vulnerability.
-     *
-     * The HTTP method can only be overridden when the real HTTP method is POST.
-     */
-    public static function enableHttpMethodParameterOverride()
-    {
-        self::$httpMethodParameterOverride = true;
-    }
-
-    /**
-     * Checks whether support for the _method request parameter is enabled.
-     *
-     * @return bool True when the _method request parameter is enabled, false otherwise
-     */
-    public static function getHttpMethodParameterOverride()
-    {
-        return self::$httpMethodParameterOverride;
-    }
-
-    /**
-     * Gets a "parameter" value.
-     *
-     * This method is mainly useful for libraries that want to provide some flexibility.
-     *
-     * Order of precedence: GET, PATH, POST
-     *
-     * Avoid using this method in controllers:
-     *
-     *  * slow
-     *  * prefer to get from a "named" source
-     *
-     * It is better to explicitly get request parameters from the appropriate
-     * public property instead (query, attributes, request).
-     *
-     * @param string $key     the key
-     * @param mixed  $default the default value
-     * @param bool   $deep    is parameter deep in multidimensional array
-     *
-     * @return mixed
-     */
-    public function get($key, $default = null, $deep = false)
-    {
-        if ($this !== $result = $this->query->get($key, $this, $deep)) {
-            return $result;
-        }
-
-        if ($this !== $result = $this->attributes->get($key, $this, $deep)) {
-            return $result;
-        }
-
-        if ($this !== $result = $this->request->get($key, $this, $deep)) {
-            return $result;
-        }
-
-        return $default;
-    }
-
-    /**
-     * Gets the Session.
-     *
-     * @return SessionInterface|null The session
-     *
-     * @api
-     */
-    public function getSession()
-    {
-        return $this->session;
-    }
-
-    /**
-     * Whether the request contains a Session which was started in one of the
-     * previous requests.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function hasPreviousSession()
-    {
-        // the check for $this->session avoids malicious users trying to fake a session cookie with proper name
-        return $this->hasSession() && $this->cookies->has($this->session->getName());
-    }
-
-    /**
-     * Whether the request contains a Session object.
-     *
-     * This method does not give any information about the state of the session object,
-     * like whether the session is started or not. It is just a way to check if this Request
-     * is associated with a Session instance.
-     *
-     * @return bool true when the Request contains a Session object, false otherwise
-     *
-     * @api
-     */
-    public function hasSession()
-    {
-        return null !== $this->session;
-    }
-
-    /**
-     * Sets the Session.
-     *
-     * @param SessionInterface $session The Session
-     *
-     * @api
-     */
-    public function setSession(SessionInterface $session)
-    {
-        $this->session = $session;
-    }
-
-    /**
-     * Returns the client IP addresses.
-     *
-     * In the returned array the most trusted IP address is first, and the
-     * least trusted one last. The "real" client IP address is the last one,
-     * but this is also the least trusted one. Trusted proxies are stripped.
-     *
-     * Use this method carefully; you should use getClientIp() instead.
-     *
-     * @return array The client IP addresses
-     *
-     * @see getClientIp()
-     */
-    public function getClientIps()
-    {
-        $clientIps = array();
-        $ip = $this->server->get('REMOTE_ADDR');
-
-        if (!$this->isFromTrustedProxy()) {
-            return array($ip);
-        }
-
-        if (self::$trustedHeaders[self::HEADER_FORWARDED] && $this->headers->has(self::$trustedHeaders[self::HEADER_FORWARDED])) {
-            $forwardedHeader = $this->headers->get(self::$trustedHeaders[self::HEADER_FORWARDED]);
-            preg_match_all('{(for)=("?\[?)([a-z0-9\.:_\-/]*)}', $forwardedHeader, $matches);
-            $clientIps = $matches[3];
-        } elseif (self::$trustedHeaders[self::HEADER_CLIENT_IP] && $this->headers->has(self::$trustedHeaders[self::HEADER_CLIENT_IP])) {
-            $clientIps = array_map('trim', explode(',', $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_IP])));
-        }
-
-        $clientIps[] = $ip; // Complete the IP chain with the IP the request actually came from
-        $ip = $clientIps[0]; // Fallback to this when the client IP falls into the range of trusted proxies
-
-        foreach ($clientIps as $key => $clientIp) {
-            // Remove port (unfortunately, it does happen)
-            if (preg_match('{((?:\d+\.){3}\d+)\:\d+}', $clientIp, $match)) {
-                $clientIps[$key] = $clientIp = $match[1];
-            }
-
-            if (IpUtils::checkIp($clientIp, self::$trustedProxies)) {
-                unset($clientIps[$key]);
-            }
-        }
-
-        // Now the IP chain contains only untrusted proxies and the client IP
-        return $clientIps ? array_reverse($clientIps) : array($ip);
-    }
-
-    /**
-     * Returns the client IP address.
-     *
-     * This method can read the client IP address from the "X-Forwarded-For" header
-     * when trusted proxies were set via "setTrustedProxies()". The "X-Forwarded-For"
-     * header value is a comma+space separated list of IP addresses, the left-most
-     * being the original client, and each successive proxy that passed the request
-     * adding the IP address where it received the request from.
-     *
-     * If your reverse proxy uses a different header name than "X-Forwarded-For",
-     * ("Client-Ip" for instance), configure it via "setTrustedHeaderName()" with
-     * the "client-ip" key.
-     *
-     * @return string The client IP address
-     *
-     * @see getClientIps()
-     * @see http://en.wikipedia.org/wiki/X-Forwarded-For
-     *
-     * @api
-     */
-    public function getClientIp()
-    {
-        $ipAddresses = $this->getClientIps();
-
-        return $ipAddresses[0];
-    }
-
-    /**
-     * Returns current script name.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getScriptName()
-    {
-        return $this->server->get('SCRIPT_NAME', $this->server->get('ORIG_SCRIPT_NAME', ''));
-    }
-
-    /**
-     * Returns the path being requested relative to the executed script.
-     *
-     * The path info always starts with a /.
-     *
-     * Suppose this request is instantiated from /mysite on localhost:
-     *
-     *  * http://localhost/mysite              returns an empty string
-     *  * http://localhost/mysite/about        returns '/about'
-     *  * http://localhost/mysite/enco%20ded   returns '/enco%20ded'
-     *  * http://localhost/mysite/about?var=1  returns '/about'
-     *
-     * @return string The raw path (i.e. not urldecoded)
-     *
-     * @api
-     */
-    public function getPathInfo()
-    {
-        if (null === $this->pathInfo) {
-            $this->pathInfo = $this->preparePathInfo();
-        }
-
-        return $this->pathInfo;
-    }
-
-    /**
-     * Returns the root path from which this request is executed.
-     *
-     * Suppose that an index.php file instantiates this request object:
-     *
-     *  * http://localhost/index.php         returns an empty string
-     *  * http://localhost/index.php/page    returns an empty string
-     *  * http://localhost/web/index.php     returns '/web'
-     *  * http://localhost/we%20b/index.php  returns '/we%20b'
-     *
-     * @return string The raw path (i.e. not urldecoded)
-     *
-     * @api
-     */
-    public function getBasePath()
-    {
-        if (null === $this->basePath) {
-            $this->basePath = $this->prepareBasePath();
-        }
-
-        return $this->basePath;
-    }
-
-    /**
-     * Returns the root URL from which this request is executed.
-     *
-     * The base URL never ends with a /.
-     *
-     * This is similar to getBasePath(), except that it also includes the
-     * script filename (e.g. index.php) if one exists.
-     *
-     * @return string The raw URL (i.e. not urldecoded)
-     *
-     * @api
-     */
-    public function getBaseUrl()
-    {
-        if (null === $this->baseUrl) {
-            $this->baseUrl = $this->prepareBaseUrl();
-        }
-
-        return $this->baseUrl;
-    }
-
-    /**
-     * Gets the request's scheme.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getScheme()
-    {
-        return $this->isSecure() ? 'https' : 'http';
-    }
-
-    /**
-     * Returns the port on which the request is made.
-     *
-     * This method can read the client port from the "X-Forwarded-Port" header
-     * when trusted proxies were set via "setTrustedProxies()".
-     *
-     * The "X-Forwarded-Port" header must contain the client port.
-     *
-     * If your reverse proxy uses a different header name than "X-Forwarded-Port",
-     * configure it via "setTrustedHeaderName()" with the "client-port" key.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getPort()
-    {
-        if ($this->isFromTrustedProxy()) {
-            if (self::$trustedHeaders[self::HEADER_CLIENT_PORT] && $port = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PORT])) {
-                return $port;
-            }
-
-            if (self::$trustedHeaders[self::HEADER_CLIENT_PROTO] && 'https' === $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PROTO], 'http')) {
-                return 443;
-            }
-        }
-
-        if ($host = $this->headers->get('HOST')) {
-            if ($host[0] === '[') {
-                $pos = strpos($host, ':', strrpos($host, ']'));
-            } else {
-                $pos = strrpos($host, ':');
-            }
-
-            if (false !== $pos) {
-                return (int) substr($host, $pos + 1);
-            }
-
-            return 'https' === $this->getScheme() ? 443 : 80;
-        }
-
-        return $this->server->get('SERVER_PORT');
-    }
-
-    /**
-     * Returns the user.
-     *
-     * @return string|null
-     */
-    public function getUser()
-    {
-        return $this->headers->get('PHP_AUTH_USER');
-    }
-
-    /**
-     * Returns the password.
-     *
-     * @return string|null
-     */
-    public function getPassword()
-    {
-        return $this->headers->get('PHP_AUTH_PW');
-    }
-
-    /**
-     * Gets the user info.
-     *
-     * @return string A user name and, optionally, scheme-specific information about how to gain authorization to access the server
-     */
-    public function getUserInfo()
-    {
-        $userinfo = $this->getUser();
-
-        $pass = $this->getPassword();
-        if ('' != $pass) {
-            $userinfo .= ":$pass";
-        }
-
-        return $userinfo;
-    }
-
-    /**
-     * Returns the HTTP host being requested.
-     *
-     * The port name will be appended to the host if it's non-standard.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function getHttpHost()
-    {
-        $scheme = $this->getScheme();
-        $port = $this->getPort();
-
-        if (('http' == $scheme && $port == 80) || ('https' == $scheme && $port == 443)) {
-            return $this->getHost();
-        }
-
-        return $this->getHost().':'.$port;
-    }
-
-    /**
-     * Returns the requested URI (path and query string).
-     *
-     * @return string The raw URI (i.e. not URI decoded)
-     *
-     * @api
-     */
-    public function getRequestUri()
-    {
-        if (null === $this->requestUri) {
-            $this->requestUri = $this->prepareRequestUri();
-        }
-
-        return $this->requestUri;
-    }
-
-    /**
-     * Gets the scheme and HTTP host.
-     *
-     * If the URL was called with basic authentication, the user
-     * and the password are not added to the generated string.
-     *
-     * @return string The scheme and HTTP host
-     */
-    public function getSchemeAndHttpHost()
-    {
-        return $this->getScheme().'://'.$this->getHttpHost();
-    }
-
-    /**
-     * Generates a normalized URI (URL) for the Request.
-     *
-     * @return string A normalized URI (URL) for the Request
-     *
-     * @see getQueryString()
-     *
-     * @api
-     */
-    public function getUri()
-    {
-        if (null !== $qs = $this->getQueryString()) {
-            $qs = '?'.$qs;
-        }
-
-        return $this->getSchemeAndHttpHost().$this->getBaseUrl().$this->getPathInfo().$qs;
-    }
-
-    /**
-     * Generates a normalized URI for the given path.
-     *
-     * @param string $path A path to use instead of the current one
-     *
-     * @return string The normalized URI for the path
-     *
-     * @api
-     */
-    public function getUriForPath($path)
-    {
-        return $this->getSchemeAndHttpHost().$this->getBaseUrl().$path;
-    }
-
-    /**
-     * Returns the path as relative reference from the current Request path.
-     *
-     * Only the URIs path component (no schema, host etc.) is relevant and must be given.
-     * Both paths must be absolute and not contain relative parts.
-     * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives.
-     * Furthermore, they can be used to reduce the link size in documents.
-     *
-     * Example target paths, given a base path of "/a/b/c/d":
-     * - "/a/b/c/d"     -> ""
-     * - "/a/b/c/"      -> "./"
-     * - "/a/b/"        -> "../"
-     * - "/a/b/c/other" -> "other"
-     * - "/a/x/y"       -> "../../x/y"
-     *
-     * @param string $path The target path
-     *
-     * @return string The relative target path
-     */
-    public function getRelativeUriForPath($path)
-    {
-        // be sure that we are dealing with an absolute path
-        if (!isset($path[0]) || '/' !== $path[0]) {
-            return $path;
-        }
-
-        if ($path === $basePath = $this->getPathInfo()) {
-            return '';
-        }
-
-        $sourceDirs = explode('/', isset($basePath[0]) && '/' === $basePath[0] ? substr($basePath, 1) : $basePath);
-        $targetDirs = explode('/', isset($path[0]) && '/' === $path[0] ? substr($path, 1) : $path);
-        array_pop($sourceDirs);
-        $targetFile = array_pop($targetDirs);
-
-        foreach ($sourceDirs as $i => $dir) {
-            if (isset($targetDirs[$i]) && $dir === $targetDirs[$i]) {
-                unset($sourceDirs[$i], $targetDirs[$i]);
-            } else {
-                break;
-            }
-        }
-
-        $targetDirs[] = $targetFile;
-        $path = str_repeat('../', count($sourceDirs)).implode('/', $targetDirs);
-
-        // A reference to the same base directory or an empty subdirectory must be prefixed with "./".
-        // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used
-        // as the first segment of a relative-path reference, as it would be mistaken for a scheme name
-        // (see http://tools.ietf.org/html/rfc3986#section-4.2).
-        return !isset($path[0]) || '/' === $path[0]
-            || false !== ($colonPos = strpos($path, ':')) && ($colonPos < ($slashPos = strpos($path, '/')) || false === $slashPos)
-            ? "./$path" : $path;
-    }
-
-    /**
-     * Generates the normalized query string for the Request.
-     *
-     * It builds a normalized query string, where keys/value pairs are alphabetized
-     * and have consistent escaping.
-     *
-     * @return string|null A normalized query string for the Request
-     *
-     * @api
-     */
-    public function getQueryString()
-    {
-        $qs = static::normalizeQueryString($this->server->get('QUERY_STRING'));
-
-        return '' === $qs ? null : $qs;
-    }
-
-    /**
-     * Checks whether the request is secure or not.
-     *
-     * This method can read the client port from the "X-Forwarded-Proto" header
-     * when trusted proxies were set via "setTrustedProxies()".
-     *
-     * The "X-Forwarded-Proto" header must contain the protocol: "https" or "http".
-     *
-     * If your reverse proxy uses a different header name than "X-Forwarded-Proto"
-     * ("SSL_HTTPS" for instance), configure it via "setTrustedHeaderName()" with
-     * the "client-proto" key.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isSecure()
-    {
-        if ($this->isFromTrustedProxy() && self::$trustedHeaders[self::HEADER_CLIENT_PROTO] && $proto = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PROTO])) {
-            return in_array(strtolower(current(explode(',', $proto))), array('https', 'on', 'ssl', '1'));
-        }
-
-        $https = $this->server->get('HTTPS');
-
-        return !empty($https) && 'off' !== strtolower($https);
-    }
-
-    /**
-     * Returns the host name.
-     *
-     * This method can read the client port from the "X-Forwarded-Host" header
-     * when trusted proxies were set via "setTrustedProxies()".
-     *
-     * The "X-Forwarded-Host" header must contain the client host name.
-     *
-     * If your reverse proxy uses a different header name than "X-Forwarded-Host",
-     * configure it via "setTrustedHeaderName()" with the "client-host" key.
-     *
-     * @return string
-     *
-     * @throws \UnexpectedValueException when the host name is invalid
-     *
-     * @api
-     */
-    public function getHost()
-    {
-        if ($this->isFromTrustedProxy() && self::$trustedHeaders[self::HEADER_CLIENT_HOST] && $host = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_HOST])) {
-            $elements = explode(',', $host);
-
-            $host = $elements[count($elements) - 1];
-        } elseif (!$host = $this->headers->get('HOST')) {
-            if (!$host = $this->server->get('SERVER_NAME')) {
-                $host = $this->server->get('SERVER_ADDR', '');
-            }
-        }
-
-        // trim and remove port number from host
-        // host is lowercase as per RFC 952/2181
-        $host = strtolower(preg_replace('/:\d+$/', '', trim($host)));
-
-        // as the host can come from the user (HTTP_HOST and depending on the configuration, SERVER_NAME too can come from the user)
-        // check that it does not contain forbidden characters (see RFC 952 and RFC 2181)
-        // use preg_replace() instead of preg_match() to prevent DoS attacks with long host names
-        if ($host && '' !== preg_replace('/(?:^\[)?[a-zA-Z0-9-:\]_]+\.?/', '', $host)) {
-            throw new \UnexpectedValueException(sprintf('Invalid Host "%s"', $host));
-        }
-
-        if (count(self::$trustedHostPatterns) > 0) {
-            // to avoid host header injection attacks, you should provide a list of trusted host patterns
-
-            if (in_array($host, self::$trustedHosts)) {
-                return $host;
-            }
-
-            foreach (self::$trustedHostPatterns as $pattern) {
-                if (preg_match($pattern, $host)) {
-                    self::$trustedHosts[] = $host;
-
-                    return $host;
-                }
-            }
-
-            throw new \UnexpectedValueException(sprintf('Untrusted Host "%s"', $host));
-        }
-
-        return $host;
-    }
-
-    /**
-     * Sets the request method.
-     *
-     * @param string $method
-     *
-     * @api
-     */
-    public function setMethod($method)
-    {
-        $this->method = null;
-        $this->server->set('REQUEST_METHOD', $method);
-    }
-
-    /**
-     * Gets the request "intended" method.
-     *
-     * If the X-HTTP-Method-Override header is set, and if the method is a POST,
-     * then it is used to determine the "real" intended HTTP method.
-     *
-     * The _method request parameter can also be used to determine the HTTP method,
-     * but only if enableHttpMethodParameterOverride() has been called.
-     *
-     * The method is always an uppercased string.
-     *
-     * @return string The request method
-     *
-     * @api
-     *
-     * @see getRealMethod()
-     */
-    public function getMethod()
-    {
-        if (null === $this->method) {
-            $this->method = strtoupper($this->server->get('REQUEST_METHOD', 'GET'));
-
-            if ('POST' === $this->method) {
-                if ($method = $this->headers->get('X-HTTP-METHOD-OVERRIDE')) {
-                    $this->method = strtoupper($method);
-                } elseif (self::$httpMethodParameterOverride) {
-                    $this->method = strtoupper($this->request->get('_method', $this->query->get('_method', 'POST')));
-                }
-            }
-        }
-
-        return $this->method;
-    }
-
-    /**
-     * Gets the "real" request method.
-     *
-     * @return string The request method
-     *
-     * @see getMethod()
-     */
-    public function getRealMethod()
-    {
-        return strtoupper($this->server->get('REQUEST_METHOD', 'GET'));
-    }
-
-    /**
-     * Gets the mime type associated with the format.
-     *
-     * @param string $format The format
-     *
-     * @return string The associated mime type (null if not found)
-     *
-     * @api
-     */
-    public function getMimeType($format)
-    {
-        if (null === static::$formats) {
-            static::initializeFormats();
-        }
-
-        return isset(static::$formats[$format]) ? static::$formats[$format][0] : null;
-    }
-
-    /**
-     * Gets the format associated with the mime type.
-     *
-     * @param string $mimeType The associated mime type
-     *
-     * @return string|null The format (null if not found)
-     *
-     * @api
-     */
-    public function getFormat($mimeType)
-    {
-        if (false !== $pos = strpos($mimeType, ';')) {
-            $mimeType = substr($mimeType, 0, $pos);
-        }
-
-        if (null === static::$formats) {
-            static::initializeFormats();
-        }
-
-        foreach (static::$formats as $format => $mimeTypes) {
-            if (in_array($mimeType, (array) $mimeTypes)) {
-                return $format;
-            }
-        }
-    }
-
-    /**
-     * Associates a format with mime types.
-     *
-     * @param string       $format    The format
-     * @param string|array $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type)
-     *
-     * @api
-     */
-    public function setFormat($format, $mimeTypes)
-    {
-        if (null === static::$formats) {
-            static::initializeFormats();
-        }
-
-        static::$formats[$format] = is_array($mimeTypes) ? $mimeTypes : array($mimeTypes);
-    }
-
-    /**
-     * Gets the request format.
-     *
-     * Here is the process to determine the format:
-     *
-     *  * format defined by the user (with setRequestFormat())
-     *  * _format request parameter
-     *  * $default
-     *
-     * @param string $default The default format
-     *
-     * @return string The request format
-     *
-     * @api
-     */
-    public function getRequestFormat($default = 'html')
-    {
-        if (null === $this->format) {
-            $this->format = $this->get('_format', $default);
-        }
-
-        return $this->format;
-    }
-
-    /**
-     * Sets the request format.
-     *
-     * @param string $format The request format.
-     *
-     * @api
-     */
-    public function setRequestFormat($format)
-    {
-        $this->format = $format;
-    }
-
-    /**
-     * Gets the format associated with the request.
-     *
-     * @return string|null The format (null if no content type is present)
-     *
-     * @api
-     */
-    public function getContentType()
-    {
-        return $this->getFormat($this->headers->get('CONTENT_TYPE'));
-    }
-
-    /**
-     * Sets the default locale.
-     *
-     * @param string $locale
-     *
-     * @api
-     */
-    public function setDefaultLocale($locale)
-    {
-        $this->defaultLocale = $locale;
-
-        if (null === $this->locale) {
-            $this->setPhpDefaultLocale($locale);
-        }
-    }
-
-    /**
-     * Get the default locale.
-     *
-     * @return string
-     */
-    public function getDefaultLocale()
-    {
-        return $this->defaultLocale;
-    }
-
-    /**
-     * Sets the locale.
-     *
-     * @param string $locale
-     *
-     * @api
-     */
-    public function setLocale($locale)
-    {
-        $this->setPhpDefaultLocale($this->locale = $locale);
-    }
-
-    /**
-     * Get the locale.
-     *
-     * @return string
-     */
-    public function getLocale()
-    {
-        return null === $this->locale ? $this->defaultLocale : $this->locale;
-    }
-
-    /**
-     * Checks if the request method is of specified type.
-     *
-     * @param string $method Uppercase request method (GET, POST etc).
-     *
-     * @return bool
-     */
-    public function isMethod($method)
-    {
-        return $this->getMethod() === strtoupper($method);
-    }
-
-    /**
-     * Checks whether the method is safe or not.
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isMethodSafe()
-    {
-        return in_array($this->getMethod(), array('GET', 'HEAD'));
-    }
-
-    /**
-     * Returns the request body content.
-     *
-     * @param bool $asResource If true, a resource will be returned
-     *
-     * @return string|resource The request body content or a resource to read the body stream.
-     *
-     * @throws \LogicException
-     */
-    public function getContent($asResource = false)
-    {
-        $currentContentIsResource = is_resource($this->content);
-        if (PHP_VERSION_ID < 50600 && false === $this->content) {
-            throw new \LogicException('getContent() can only be called once when using the resource return type and PHP below 5.6.');
-        }
-
-        if (true === $asResource) {
-            if ($currentContentIsResource) {
-                rewind($this->content);
-
-                return $this->content;
-            }
-
-            // Content passed in parameter (test)
-            if (is_string($this->content)) {
-                $resource = fopen('php://temp','r+');
-                fwrite($resource, $this->content);
-                rewind($resource);
-
-                return $resource;
-            }
-
-            $this->content = false;
-
-            return fopen('php://input', 'rb');
-        }
-
-        if ($currentContentIsResource) {
-            rewind($this->content);
-
-            return stream_get_contents($this->content);
-        }
-
-        if (null === $this->content) {
-            $this->content = file_get_contents('php://input');
-        }
-
-        return $this->content;
-    }
-
-    /**
-     * Gets the Etags.
-     *
-     * @return array The entity tags
-     */
-    public function getETags()
-    {
-        return preg_split('/\s*,\s*/', $this->headers->get('if_none_match'), null, PREG_SPLIT_NO_EMPTY);
-    }
-
-    /**
-     * @return bool
-     */
-    public function isNoCache()
-    {
-        return $this->headers->hasCacheControlDirective('no-cache') || 'no-cache' == $this->headers->get('Pragma');
-    }
-
-    /**
-     * Returns the preferred language.
-     *
-     * @param array $locales An array of ordered available locales
-     *
-     * @return string|null The preferred locale
-     *
-     * @api
-     */
-    public function getPreferredLanguage(array $locales = null)
-    {
-        $preferredLanguages = $this->getLanguages();
-
-        if (empty($locales)) {
-            return isset($preferredLanguages[0]) ? $preferredLanguages[0] : null;
-        }
-
-        if (!$preferredLanguages) {
-            return $locales[0];
-        }
-
-        $extendedPreferredLanguages = array();
-        foreach ($preferredLanguages as $language) {
-            $extendedPreferredLanguages[] = $language;
-            if (false !== $position = strpos($language, '_')) {
-                $superLanguage = substr($language, 0, $position);
-                if (!in_array($superLanguage, $preferredLanguages)) {
-                    $extendedPreferredLanguages[] = $superLanguage;
-                }
-            }
-        }
-
-        $preferredLanguages = array_values(array_intersect($extendedPreferredLanguages, $locales));
-
-        return isset($preferredLanguages[0]) ? $preferredLanguages[0] : $locales[0];
-    }
-
-    /**
-     * Gets a list of languages acceptable by the client browser.
-     *
-     * @return array Languages ordered in the user browser preferences
-     *
-     * @api
-     */
-    public function getLanguages()
-    {
-        if (null !== $this->languages) {
-            return $this->languages;
-        }
-
-        $languages = AcceptHeader::fromString($this->headers->get('Accept-Language'))->all();
-        $this->languages = array();
-        foreach ($languages as $lang => $acceptHeaderItem) {
-            if (false !== strpos($lang, '-')) {
-                $codes = explode('-', $lang);
-                if ('i' === $codes[0]) {
-                    // Language not listed in ISO 639 that are not variants
-                    // of any listed language, which can be registered with the
-                    // i-prefix, such as i-cherokee
-                    if (count($codes) > 1) {
-                        $lang = $codes[1];
-                    }
-                } else {
-                    for ($i = 0, $max = count($codes); $i < $max; ++$i) {
-                        if ($i === 0) {
-                            $lang = strtolower($codes[0]);
-                        } else {
-                            $lang .= '_'.strtoupper($codes[$i]);
-                        }
-                    }
-                }
-            }
-
-            $this->languages[] = $lang;
-        }
-
-        return $this->languages;
-    }
-
-    /**
-     * Gets a list of charsets acceptable by the client browser.
-     *
-     * @return array List of charsets in preferable order
-     *
-     * @api
-     */
-    public function getCharsets()
-    {
-        if (null !== $this->charsets) {
-            return $this->charsets;
-        }
-
-        return $this->charsets = array_keys(AcceptHeader::fromString($this->headers->get('Accept-Charset'))->all());
-    }
-
-    /**
-     * Gets a list of encodings acceptable by the client browser.
-     *
-     * @return array List of encodings in preferable order
-     */
-    public function getEncodings()
-    {
-        if (null !== $this->encodings) {
-            return $this->encodings;
-        }
-
-        return $this->encodings = array_keys(AcceptHeader::fromString($this->headers->get('Accept-Encoding'))->all());
-    }
-
-    /**
-     * Gets a list of content types acceptable by the client browser.
-     *
-     * @return array List of content types in preferable order
-     *
-     * @api
-     */
-    public function getAcceptableContentTypes()
-    {
-        if (null !== $this->acceptableContentTypes) {
-            return $this->acceptableContentTypes;
-        }
-
-        return $this->acceptableContentTypes = array_keys(AcceptHeader::fromString($this->headers->get('Accept'))->all());
-    }
-
-    /**
-     * Returns true if the request is a XMLHttpRequest.
-     *
-     * It works if your JavaScript library sets an X-Requested-With HTTP header.
-     * It is known to work with common JavaScript frameworks:
-     *
-     * @link http://en.wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript
-     *
-     * @return bool true if the request is an XMLHttpRequest, false otherwise
-     *
-     * @api
-     */
-    public function isXmlHttpRequest()
-    {
-        return 'XMLHttpRequest' == $this->headers->get('X-Requested-With');
-    }
-
-    /*
-     * The following methods are derived from code of the Zend Framework (1.10dev - 2010-01-24)
-     *
-     * Code subject to the new BSD license (http://framework.zend.com/license/new-bsd).
-     *
-     * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
-     */
-
-    protected function prepareRequestUri()
-    {
-        $requestUri = '';
-
-        if ($this->headers->has('X_ORIGINAL_URL')) {
-            // IIS with Microsoft Rewrite Module
-            $requestUri = $this->headers->get('X_ORIGINAL_URL');
-            $this->headers->remove('X_ORIGINAL_URL');
-            $this->server->remove('HTTP_X_ORIGINAL_URL');
-            $this->server->remove('UNENCODED_URL');
-            $this->server->remove('IIS_WasUrlRewritten');
-        } elseif ($this->headers->has('X_REWRITE_URL')) {
-            // IIS with ISAPI_Rewrite
-            $requestUri = $this->headers->get('X_REWRITE_URL');
-            $this->headers->remove('X_REWRITE_URL');
-        } elseif ($this->server->get('IIS_WasUrlRewritten') == '1' && $this->server->get('UNENCODED_URL') != '') {
-            // IIS7 with URL Rewrite: make sure we get the unencoded URL (double slash problem)
-            $requestUri = $this->server->get('UNENCODED_URL');
-            $this->server->remove('UNENCODED_URL');
-            $this->server->remove('IIS_WasUrlRewritten');
-        } elseif ($this->server->has('REQUEST_URI')) {
-            $requestUri = $this->server->get('REQUEST_URI');
-            // HTTP proxy reqs setup request URI with scheme and host [and port] + the URL path, only use URL path
-            $schemeAndHttpHost = $this->getSchemeAndHttpHost();
-            if (strpos($requestUri, $schemeAndHttpHost) === 0) {
-                $requestUri = substr($requestUri, strlen($schemeAndHttpHost));
-            }
-        } elseif ($this->server->has('ORIG_PATH_INFO')) {
-            // IIS 5.0, PHP as CGI
-            $requestUri = $this->server->get('ORIG_PATH_INFO');
-            if ('' != $this->server->get('QUERY_STRING')) {
-                $requestUri .= '?'.$this->server->get('QUERY_STRING');
-            }
-            $this->server->remove('ORIG_PATH_INFO');
-        }
-
-        // normalize the request URI to ease creating sub-requests from this request
-        $this->server->set('REQUEST_URI', $requestUri);
-
-        return $requestUri;
-    }
-
-    /**
-     * Prepares the base URL.
-     *
-     * @return string
-     */
-    protected function prepareBaseUrl()
-    {
-        $filename = basename($this->server->get('SCRIPT_FILENAME'));
-
-        if (basename($this->server->get('SCRIPT_NAME')) === $filename) {
-            $baseUrl = $this->server->get('SCRIPT_NAME');
-        } elseif (basename($this->server->get('PHP_SELF')) === $filename) {
-            $baseUrl = $this->server->get('PHP_SELF');
-        } elseif (basename($this->server->get('ORIG_SCRIPT_NAME')) === $filename) {
-            $baseUrl = $this->server->get('ORIG_SCRIPT_NAME'); // 1and1 shared hosting compatibility
-        } else {
-            // Backtrack up the script_filename to find the portion matching
-            // php_self
-            $path = $this->server->get('PHP_SELF', '');
-            $file = $this->server->get('SCRIPT_FILENAME', '');
-            $segs = explode('/', trim($file, '/'));
-            $segs = array_reverse($segs);
-            $index = 0;
-            $last = count($segs);
-            $baseUrl = '';
-            do {
-                $seg = $segs[$index];
-                $baseUrl = '/'.$seg.$baseUrl;
-                ++$index;
-            } while ($last > $index && (false !== $pos = strpos($path, $baseUrl)) && 0 != $pos);
-        }
-
-        // Does the baseUrl have anything in common with the request_uri?
-        $requestUri = $this->getRequestUri();
-
-        if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, $baseUrl)) {
-            // full $baseUrl matches
-            return $prefix;
-        }
-
-        if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, rtrim(dirname($baseUrl), '/').'/')) {
-            // directory portion of $baseUrl matches
-            return rtrim($prefix, '/');
-        }
-
-        $truncatedRequestUri = $requestUri;
-        if (false !== $pos = strpos($requestUri, '?')) {
-            $truncatedRequestUri = substr($requestUri, 0, $pos);
-        }
-
-        $basename = basename($baseUrl);
-        if (empty($basename) || !strpos(rawurldecode($truncatedRequestUri), $basename)) {
-            // no match whatsoever; set it blank
-            return '';
-        }
-
-        // If using mod_rewrite or ISAPI_Rewrite strip the script filename
-        // out of baseUrl. $pos !== 0 makes sure it is not matching a value
-        // from PATH_INFO or QUERY_STRING
-        if (strlen($requestUri) >= strlen($baseUrl) && (false !== $pos = strpos($requestUri, $baseUrl)) && $pos !== 0) {
-            $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));
-        }
-
-        return rtrim($baseUrl, '/');
-    }
-
-    /**
-     * Prepares the base path.
-     *
-     * @return string base path
-     */
-    protected function prepareBasePath()
-    {
-        $filename = basename($this->server->get('SCRIPT_FILENAME'));
-        $baseUrl = $this->getBaseUrl();
-        if (empty($baseUrl)) {
-            return '';
-        }
-
-        if (basename($baseUrl) === $filename) {
-            $basePath = dirname($baseUrl);
-        } else {
-            $basePath = $baseUrl;
-        }
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $basePath = str_replace('\\', '/', $basePath);
-        }
-
-        return rtrim($basePath, '/');
-    }
-
-    /**
-     * Prepares the path info.
-     *
-     * @return string path info
-     */
-    protected function preparePathInfo()
-    {
-        $baseUrl = $this->getBaseUrl();
-
-        if (null === ($requestUri = $this->getRequestUri())) {
-            return '/';
-        }
-
-        $pathInfo = '/';
-
-        // Remove the query string from REQUEST_URI
-        if ($pos = strpos($requestUri, '?')) {
-            $requestUri = substr($requestUri, 0, $pos);
-        }
-
-        $pathInfo = substr($requestUri, strlen($baseUrl));
-        if (null !== $baseUrl && (false === $pathInfo || '' === $pathInfo)) {
-            // If substr() returns false then PATH_INFO is set to an empty string
-            return '/';
-        } elseif (null === $baseUrl) {
-            return $requestUri;
-        }
-
-        return (string) $pathInfo;
-    }
-
-    /**
-     * Initializes HTTP request formats.
-     */
-    protected static function initializeFormats()
-    {
-        static::$formats = array(
-            'html' => array('text/html', 'application/xhtml+xml'),
-            'txt' => array('text/plain'),
-            'js' => array('application/javascript', 'application/x-javascript', 'text/javascript'),
-            'css' => array('text/css'),
-            'json' => array('application/json', 'application/x-json'),
-            'xml' => array('text/xml', 'application/xml', 'application/x-xml'),
-            'rdf' => array('application/rdf+xml'),
-            'atom' => array('application/atom+xml'),
-            'rss' => array('application/rss+xml'),
-            'form' => array('application/x-www-form-urlencoded'),
-        );
-    }
-
-    /**
-     * Sets the default PHP locale.
-     *
-     * @param string $locale
-     */
-    private function setPhpDefaultLocale($locale)
-    {
-        // if either the class Locale doesn't exist, or an exception is thrown when
-        // setting the default locale, the intl module is not installed, and
-        // the call can be ignored:
-        try {
-            if (class_exists('Locale', false)) {
-                \Locale::setDefault($locale);
-            }
-        } catch (\Exception $e) {
-        }
-    }
-
-    /*
-     * Returns the prefix as encoded in the string when the string starts with
-     * the given prefix, false otherwise.
-     *
-     * @param string $string The urlencoded string
-     * @param string $prefix The prefix not encoded
-     *
-     * @return string|false The prefix as it is encoded in $string, or false
-     */
-    private function getUrlencodedPrefix($string, $prefix)
-    {
-        if (0 !== strpos(rawurldecode($string), $prefix)) {
-            return false;
-        }
-
-        $len = strlen($prefix);
-
-        if (preg_match(sprintf('#^(%%[[:xdigit:]]{2}|.){%d}#', $len), $string, $match)) {
-            return $match[0];
-        }
-
-        return false;
-    }
-
-    private static function createRequestFromFactory(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
-    {
-        if (self::$requestFactory) {
-            $request = call_user_func(self::$requestFactory, $query, $request, $attributes, $cookies, $files, $server, $content);
-
-            if (!$request instanceof Request) {
-                throw new \LogicException('The Request factory must return an instance of Symfony\Component\HttpFoundation\Request.');
-            }
-
-            return $request;
-        }
-
-        return new static($query, $request, $attributes, $cookies, $files, $server, $content);
-    }
-
-    private function isFromTrustedProxy()
-    {
-        return self::$trustedProxies && IpUtils::checkIp($this->server->get('REMOTE_ADDR'), self::$trustedProxies);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/RequestMatcher.php b/core/vendor/symfony/http-foundation/RequestMatcher.php
deleted file mode 100644
index c571c60..0000000
--- a/core/vendor/symfony/http-foundation/RequestMatcher.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * RequestMatcher compares a pre-defined set of checks against a Request instance.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class RequestMatcher implements RequestMatcherInterface
-{
-    /**
-     * @var string
-     */
-    private $path;
-
-    /**
-     * @var string
-     */
-    private $host;
-
-    /**
-     * @var array
-     */
-    private $methods = array();
-
-    /**
-     * @var string
-     */
-    private $ips = array();
-
-    /**
-     * @var array
-     */
-    private $attributes = array();
-
-    /**
-     * @var string[]
-     */
-    private $schemes = array();
-
-    /**
-     * @param string|null          $path
-     * @param string|null          $host
-     * @param string|string[]|null $methods
-     * @param string|string[]|null $ips
-     * @param array                $attributes
-     * @param string|string[]|null $schemes
-     */
-    public function __construct($path = null, $host = null, $methods = null, $ips = null, array $attributes = array(), $schemes = null)
-    {
-        $this->matchPath($path);
-        $this->matchHost($host);
-        $this->matchMethod($methods);
-        $this->matchIps($ips);
-        $this->matchScheme($schemes);
-
-        foreach ($attributes as $k => $v) {
-            $this->matchAttribute($k, $v);
-        }
-    }
-
-    /**
-     * Adds a check for the HTTP scheme.
-     *
-     * @param string|string[]|null $scheme An HTTP scheme or an array of HTTP schemes
-     */
-    public function matchScheme($scheme)
-    {
-        $this->schemes = array_map('strtolower', (array) $scheme);
-    }
-
-    /**
-     * Adds a check for the URL host name.
-     *
-     * @param string $regexp A Regexp
-     */
-    public function matchHost($regexp)
-    {
-        $this->host = $regexp;
-    }
-
-    /**
-     * Adds a check for the URL path info.
-     *
-     * @param string $regexp A Regexp
-     */
-    public function matchPath($regexp)
-    {
-        $this->path = $regexp;
-    }
-
-    /**
-     * Adds a check for the client IP.
-     *
-     * @param string $ip A specific IP address or a range specified using IP/netmask like 192.168.1.0/24
-     */
-    public function matchIp($ip)
-    {
-        $this->matchIps($ip);
-    }
-
-    /**
-     * Adds a check for the client IP.
-     *
-     * @param string|string[] $ips A specific IP address or a range specified using IP/netmask like 192.168.1.0/24
-     */
-    public function matchIps($ips)
-    {
-        $this->ips = (array) $ips;
-    }
-
-    /**
-     * Adds a check for the HTTP method.
-     *
-     * @param string|string[] $method An HTTP method or an array of HTTP methods
-     */
-    public function matchMethod($method)
-    {
-        $this->methods = array_map('strtoupper', (array) $method);
-    }
-
-    /**
-     * Adds a check for request attribute.
-     *
-     * @param string $key    The request attribute name
-     * @param string $regexp A Regexp
-     */
-    public function matchAttribute($key, $regexp)
-    {
-        $this->attributes[$key] = $regexp;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function matches(Request $request)
-    {
-        if ($this->schemes && !in_array($request->getScheme(), $this->schemes)) {
-            return false;
-        }
-
-        if ($this->methods && !in_array($request->getMethod(), $this->methods)) {
-            return false;
-        }
-
-        foreach ($this->attributes as $key => $pattern) {
-            if (!preg_match('{'.$pattern.'}', $request->attributes->get($key))) {
-                return false;
-            }
-        }
-
-        if (null !== $this->path && !preg_match('{'.$this->path.'}', rawurldecode($request->getPathInfo()))) {
-            return false;
-        }
-
-        if (null !== $this->host && !preg_match('{'.$this->host.'}i', $request->getHost())) {
-            return false;
-        }
-
-        if (IpUtils::checkIp($request->getClientIp(), $this->ips)) {
-            return true;
-        }
-
-        // Note to future implementors: add additional checks above the
-        // foreach above or else your check might not be run!
-        return count($this->ips) === 0;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/RequestMatcherInterface.php b/core/vendor/symfony/http-foundation/RequestMatcherInterface.php
deleted file mode 100644
index b45f80c..0000000
--- a/core/vendor/symfony/http-foundation/RequestMatcherInterface.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * RequestMatcherInterface is an interface for strategies to match a Request.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface RequestMatcherInterface
-{
-    /**
-     * Decides whether the rule(s) implemented by the strategy matches the supplied request.
-     *
-     * @param Request $request The request to check for a match
-     *
-     * @return bool true if the request matches, false otherwise
-     *
-     * @api
-     */
-    public function matches(Request $request);
-}
diff --git a/core/vendor/symfony/http-foundation/RequestStack.php b/core/vendor/symfony/http-foundation/RequestStack.php
deleted file mode 100644
index 3d9cfd0..0000000
--- a/core/vendor/symfony/http-foundation/RequestStack.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Request stack that controls the lifecycle of requests.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class RequestStack
-{
-    /**
-     * @var Request[]
-     */
-    private $requests = array();
-
-    /**
-     * Pushes a Request on the stack.
-     *
-     * This method should generally not be called directly as the stack
-     * management should be taken care of by the application itself.
-     */
-    public function push(Request $request)
-    {
-        $this->requests[] = $request;
-    }
-
-    /**
-     * Pops the current request from the stack.
-     *
-     * This operation lets the current request go out of scope.
-     *
-     * This method should generally not be called directly as the stack
-     * management should be taken care of by the application itself.
-     *
-     * @return Request|null
-     */
-    public function pop()
-    {
-        if (!$this->requests) {
-            return;
-        }
-
-        return array_pop($this->requests);
-    }
-
-    /**
-     * @return Request|null
-     */
-    public function getCurrentRequest()
-    {
-        return end($this->requests) ?: null;
-    }
-
-    /**
-     * Gets the master Request.
-     *
-     * Be warned that making your code aware of the master request
-     * might make it un-compatible with other features of your framework
-     * like ESI support.
-     *
-     * @return Request|null
-     */
-    public function getMasterRequest()
-    {
-        if (!$this->requests) {
-            return;
-        }
-
-        return $this->requests[0];
-    }
-
-    /**
-     * Returns the parent request of the current.
-     *
-     * Be warned that making your code aware of the parent request
-     * might make it un-compatible with other features of your framework
-     * like ESI support.
-     *
-     * If current Request is the master request, it returns null.
-     *
-     * @return Request|null
-     */
-    public function getParentRequest()
-    {
-        $pos = count($this->requests) - 2;
-
-        if (!isset($this->requests[$pos])) {
-            return;
-        }
-
-        return $this->requests[$pos];
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Resources/stubs/SessionHandlerInterface.php b/core/vendor/symfony/http-foundation/Resources/stubs/SessionHandlerInterface.php
deleted file mode 100644
index 9baa7bc..0000000
--- a/core/vendor/symfony/http-foundation/Resources/stubs/SessionHandlerInterface.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * SessionHandlerInterface for PHP < 5.4.
- *
- * The order in which these methods are invoked by PHP are:
- * 1. open [session_start]
- * 2. read
- * 3. gc [optional depending on probability settings: gc_probability / gc_divisor]
- * 4. destroy [optional when session_regenerate_id(true) is used]
- * 5. write [session_write_close] or destroy [session_destroy]
- * 6. close
- *
- * Extensive documentation can be found at php.net, see links:
- *
- * @see http://php.net/sessionhandlerinterface
- * @see http://php.net/session.customhandler
- * @see http://php.net/session-set-save-handler
- *
- * @author Drak <drak@zikula.org>
- * @author Tobias Schultze <http://tobion.de>
- */
-interface SessionHandlerInterface
-{
-    /**
-     * Re-initializes existing session, or creates a new one.
-     *
-     * @see http://php.net/sessionhandlerinterface.open
-     *
-     * @param string $savePath    Save path
-     * @param string $sessionName Session name, see http://php.net/function.session-name.php
-     *
-     * @return bool true on success, false on failure
-     */
-    public function open($savePath, $sessionName);
-
-    /**
-     * Closes the current session.
-     *
-     * @see http://php.net/sessionhandlerinterface.close
-     *
-     * @return bool true on success, false on failure
-     */
-    public function close();
-
-    /**
-     * Reads the session data.
-     *
-     * @see http://php.net/sessionhandlerinterface.read
-     *
-     * @param string $sessionId Session ID, see http://php.net/function.session-id
-     *
-     * @return string Same session data as passed in write() or empty string when non-existent or on failure
-     */
-    public function read($sessionId);
-
-    /**
-     * Writes the session data to the storage.
-     *
-     * Care, the session ID passed to write() can be different from the one previously
-     * received in read() when the session ID changed due to session_regenerate_id().
-     *
-     * @see http://php.net/sessionhandlerinterface.write
-     *
-     * @param string $sessionId Session ID , see http://php.net/function.session-id
-     * @param string $data      Serialized session data to save
-     *
-     * @return bool true on success, false on failure
-     */
-    public function write($sessionId, $data);
-
-    /**
-     * Destroys a session.
-     *
-     * @see http://php.net/sessionhandlerinterface.destroy
-     *
-     * @param string $sessionId Session ID, see http://php.net/function.session-id
-     *
-     * @return bool true on success, false on failure
-     */
-    public function destroy($sessionId);
-
-    /**
-     * Cleans up expired sessions (garbage collection).
-     *
-     * @see http://php.net/sessionhandlerinterface.gc
-     *
-     * @param string|int $maxlifetime Sessions that have not updated for the last maxlifetime seconds will be removed
-     *
-     * @return bool true on success, false on failure
-     */
-    public function gc($maxlifetime);
-}
diff --git a/core/vendor/symfony/http-foundation/Response.php b/core/vendor/symfony/http-foundation/Response.php
deleted file mode 100644
index 17fb981..0000000
--- a/core/vendor/symfony/http-foundation/Response.php
+++ /dev/null
@@ -1,1269 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * Response represents an HTTP response.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Response
-{
-    const HTTP_CONTINUE = 100;
-    const HTTP_SWITCHING_PROTOCOLS = 101;
-    const HTTP_PROCESSING = 102;            // RFC2518
-    const HTTP_OK = 200;
-    const HTTP_CREATED = 201;
-    const HTTP_ACCEPTED = 202;
-    const HTTP_NON_AUTHORITATIVE_INFORMATION = 203;
-    const HTTP_NO_CONTENT = 204;
-    const HTTP_RESET_CONTENT = 205;
-    const HTTP_PARTIAL_CONTENT = 206;
-    const HTTP_MULTI_STATUS = 207;          // RFC4918
-    const HTTP_ALREADY_REPORTED = 208;      // RFC5842
-    const HTTP_IM_USED = 226;               // RFC3229
-    const HTTP_MULTIPLE_CHOICES = 300;
-    const HTTP_MOVED_PERMANENTLY = 301;
-    const HTTP_FOUND = 302;
-    const HTTP_SEE_OTHER = 303;
-    const HTTP_NOT_MODIFIED = 304;
-    const HTTP_USE_PROXY = 305;
-    const HTTP_RESERVED = 306;
-    const HTTP_TEMPORARY_REDIRECT = 307;
-    const HTTP_PERMANENTLY_REDIRECT = 308;  // RFC7238
-    const HTTP_BAD_REQUEST = 400;
-    const HTTP_UNAUTHORIZED = 401;
-    const HTTP_PAYMENT_REQUIRED = 402;
-    const HTTP_FORBIDDEN = 403;
-    const HTTP_NOT_FOUND = 404;
-    const HTTP_METHOD_NOT_ALLOWED = 405;
-    const HTTP_NOT_ACCEPTABLE = 406;
-    const HTTP_PROXY_AUTHENTICATION_REQUIRED = 407;
-    const HTTP_REQUEST_TIMEOUT = 408;
-    const HTTP_CONFLICT = 409;
-    const HTTP_GONE = 410;
-    const HTTP_LENGTH_REQUIRED = 411;
-    const HTTP_PRECONDITION_FAILED = 412;
-    const HTTP_REQUEST_ENTITY_TOO_LARGE = 413;
-    const HTTP_REQUEST_URI_TOO_LONG = 414;
-    const HTTP_UNSUPPORTED_MEDIA_TYPE = 415;
-    const HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
-    const HTTP_EXPECTATION_FAILED = 417;
-    const HTTP_I_AM_A_TEAPOT = 418;                                               // RFC2324
-    const HTTP_UNPROCESSABLE_ENTITY = 422;                                        // RFC4918
-    const HTTP_LOCKED = 423;                                                      // RFC4918
-    const HTTP_FAILED_DEPENDENCY = 424;                                           // RFC4918
-    const HTTP_RESERVED_FOR_WEBDAV_ADVANCED_COLLECTIONS_EXPIRED_PROPOSAL = 425;   // RFC2817
-    const HTTP_UPGRADE_REQUIRED = 426;                                            // RFC2817
-    const HTTP_PRECONDITION_REQUIRED = 428;                                       // RFC6585
-    const HTTP_TOO_MANY_REQUESTS = 429;                                           // RFC6585
-    const HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;                             // RFC6585
-    const HTTP_INTERNAL_SERVER_ERROR = 500;
-    const HTTP_NOT_IMPLEMENTED = 501;
-    const HTTP_BAD_GATEWAY = 502;
-    const HTTP_SERVICE_UNAVAILABLE = 503;
-    const HTTP_GATEWAY_TIMEOUT = 504;
-    const HTTP_VERSION_NOT_SUPPORTED = 505;
-    const HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL = 506;                        // RFC2295
-    const HTTP_INSUFFICIENT_STORAGE = 507;                                        // RFC4918
-    const HTTP_LOOP_DETECTED = 508;                                               // RFC5842
-    const HTTP_NOT_EXTENDED = 510;                                                // RFC2774
-    const HTTP_NETWORK_AUTHENTICATION_REQUIRED = 511;                             // RFC6585
-
-    /**
-     * @var \Symfony\Component\HttpFoundation\ResponseHeaderBag
-     */
-    public $headers;
-
-    /**
-     * @var string
-     */
-    protected $content;
-
-    /**
-     * @var string
-     */
-    protected $version;
-
-    /**
-     * @var int
-     */
-    protected $statusCode;
-
-    /**
-     * @var string
-     */
-    protected $statusText;
-
-    /**
-     * @var string
-     */
-    protected $charset;
-
-    /**
-     * Status codes translation table.
-     *
-     * The list of codes is complete according to the
-     * {@link http://www.iana.org/assignments/http-status-codes/ Hypertext Transfer Protocol (HTTP) Status Code Registry}
-     * (last updated 2012-02-13).
-     *
-     * Unless otherwise noted, the status code is defined in RFC2616.
-     *
-     * @var array
-     */
-    public static $statusTexts = array(
-        100 => 'Continue',
-        101 => 'Switching Protocols',
-        102 => 'Processing',            // RFC2518
-        200 => 'OK',
-        201 => 'Created',
-        202 => 'Accepted',
-        203 => 'Non-Authoritative Information',
-        204 => 'No Content',
-        205 => 'Reset Content',
-        206 => 'Partial Content',
-        207 => 'Multi-Status',          // RFC4918
-        208 => 'Already Reported',      // RFC5842
-        226 => 'IM Used',               // RFC3229
-        300 => 'Multiple Choices',
-        301 => 'Moved Permanently',
-        302 => 'Found',
-        303 => 'See Other',
-        304 => 'Not Modified',
-        305 => 'Use Proxy',
-        306 => 'Reserved',
-        307 => 'Temporary Redirect',
-        308 => 'Permanent Redirect',    // RFC7238
-        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 Timeout',
-        409 => 'Conflict',
-        410 => 'Gone',
-        411 => 'Length Required',
-        412 => 'Precondition Failed',
-        413 => 'Request Entity Too Large',
-        414 => 'Request-URI Too Long',
-        415 => 'Unsupported Media Type',
-        416 => 'Requested Range Not Satisfiable',
-        417 => 'Expectation Failed',
-        418 => 'I\'m a teapot',                                               // RFC2324
-        422 => 'Unprocessable Entity',                                        // RFC4918
-        423 => 'Locked',                                                      // RFC4918
-        424 => 'Failed Dependency',                                           // RFC4918
-        425 => 'Reserved for WebDAV advanced collections expired proposal',   // RFC2817
-        426 => 'Upgrade Required',                                            // RFC2817
-        428 => 'Precondition Required',                                       // RFC6585
-        429 => 'Too Many Requests',                                           // RFC6585
-        431 => 'Request Header Fields Too Large',                             // RFC6585
-        500 => 'Internal Server Error',
-        501 => 'Not Implemented',
-        502 => 'Bad Gateway',
-        503 => 'Service Unavailable',
-        504 => 'Gateway Timeout',
-        505 => 'HTTP Version Not Supported',
-        506 => 'Variant Also Negotiates (Experimental)',                      // RFC2295
-        507 => 'Insufficient Storage',                                        // RFC4918
-        508 => 'Loop Detected',                                               // RFC5842
-        510 => 'Not Extended',                                                // RFC2774
-        511 => 'Network Authentication Required',                             // RFC6585
-    );
-
-    /**
-     * Constructor.
-     *
-     * @param mixed $content The response content, see setContent()
-     * @param int   $status  The response status code
-     * @param array $headers An array of response headers
-     *
-     * @throws \InvalidArgumentException When the HTTP status code is not valid
-     *
-     * @api
-     */
-    public function __construct($content = '', $status = 200, $headers = array())
-    {
-        $this->headers = new ResponseHeaderBag($headers);
-        $this->setContent($content);
-        $this->setStatusCode($status);
-        $this->setProtocolVersion('1.0');
-        if (!$this->headers->has('Date')) {
-            $this->setDate(new \DateTime(null, new \DateTimeZone('UTC')));
-        }
-    }
-
-    /**
-     * Factory method for chainability.
-     *
-     * Example:
-     *
-     *     return Response::create($body, 200)
-     *         ->setSharedMaxAge(300);
-     *
-     * @param mixed $content The response content, see setContent()
-     * @param int   $status  The response status code
-     * @param array $headers An array of response headers
-     *
-     * @return Response
-     */
-    public static function create($content = '', $status = 200, $headers = array())
-    {
-        return new static($content, $status, $headers);
-    }
-
-    /**
-     * Returns the Response as an HTTP string.
-     *
-     * The string representation of the Response is the same as the
-     * one that will be sent to the client only if the prepare() method
-     * has been called before.
-     *
-     * @return string The Response as an HTTP string
-     *
-     * @see prepare()
-     */
-    public function __toString()
-    {
-        return
-            sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)."\r\n".
-            $this->headers."\r\n".
-            $this->getContent();
-    }
-
-    /**
-     * Clones the current Response instance.
-     */
-    public function __clone()
-    {
-        $this->headers = clone $this->headers;
-    }
-
-    /**
-     * Prepares the Response before it is sent to the client.
-     *
-     * This method tweaks the Response to ensure that it is
-     * compliant with RFC 2616. Most of the changes are based on
-     * the Request that is "associated" with this Response.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return Response The current response.
-     */
-    public function prepare(Request $request)
-    {
-        $headers = $this->headers;
-
-        if ($this->isInformational() || $this->isEmpty()) {
-            $this->setContent(null);
-            $headers->remove('Content-Type');
-            $headers->remove('Content-Length');
-        } else {
-            // Content-type based on the Request
-            if (!$headers->has('Content-Type')) {
-                $format = $request->getRequestFormat();
-                if (null !== $format && $mimeType = $request->getMimeType($format)) {
-                    $headers->set('Content-Type', $mimeType);
-                }
-            }
-
-            // Fix Content-Type
-            $charset = $this->charset ?: 'UTF-8';
-            if (!$headers->has('Content-Type')) {
-                $headers->set('Content-Type', 'text/html; charset='.$charset);
-            } elseif (0 === stripos($headers->get('Content-Type'), 'text/') && false === stripos($headers->get('Content-Type'), 'charset')) {
-                // add the charset
-                $headers->set('Content-Type', $headers->get('Content-Type').'; charset='.$charset);
-            }
-
-            // Fix Content-Length
-            if ($headers->has('Transfer-Encoding')) {
-                $headers->remove('Content-Length');
-            }
-
-            if ($request->isMethod('HEAD')) {
-                // cf. RFC2616 14.13
-                $length = $headers->get('Content-Length');
-                $this->setContent(null);
-                if ($length) {
-                    $headers->set('Content-Length', $length);
-                }
-            }
-        }
-
-        // Fix protocol
-        if ('HTTP/1.0' != $request->server->get('SERVER_PROTOCOL')) {
-            $this->setProtocolVersion('1.1');
-        }
-
-        // Check if we need to send extra expire info headers
-        if ('1.0' == $this->getProtocolVersion() && 'no-cache' == $this->headers->get('Cache-Control')) {
-            $this->headers->set('pragma', 'no-cache');
-            $this->headers->set('expires', -1);
-        }
-
-        $this->ensureIEOverSSLCompatibility($request);
-
-        return $this;
-    }
-
-    /**
-     * Sends HTTP headers.
-     *
-     * @return Response
-     */
-    public function sendHeaders()
-    {
-        // headers have already been sent by the developer
-        if (headers_sent()) {
-            return $this;
-        }
-
-        // status
-        header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText), true, $this->statusCode);
-
-        // headers
-        foreach ($this->headers->allPreserveCase() as $name => $values) {
-            foreach ($values as $value) {
-                header($name.': '.$value, false, $this->statusCode);
-            }
-        }
-
-        // cookies
-        foreach ($this->headers->getCookies() as $cookie) {
-            setcookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
-        }
-
-        return $this;
-    }
-
-    /**
-     * Sends content for the current web response.
-     *
-     * @return Response
-     */
-    public function sendContent()
-    {
-        echo $this->content;
-
-        return $this;
-    }
-
-    /**
-     * Sends HTTP headers and content.
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function send()
-    {
-        $this->sendHeaders();
-        $this->sendContent();
-
-        if (function_exists('fastcgi_finish_request')) {
-            fastcgi_finish_request();
-        } elseif ('cli' !== PHP_SAPI) {
-            static::closeOutputBuffers(0, true);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Sets the response content.
-     *
-     * Valid types are strings, numbers, null, and objects that implement a __toString() method.
-     *
-     * @param mixed $content Content that can be cast to string
-     *
-     * @return Response
-     *
-     * @throws \UnexpectedValueException
-     *
-     * @api
-     */
-    public function setContent($content)
-    {
-        if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable(array($content, '__toString'))) {
-            throw new \UnexpectedValueException(sprintf('The Response content must be a string or object implementing __toString(), "%s" given.', gettype($content)));
-        }
-
-        $this->content = (string) $content;
-
-        return $this;
-    }
-
-    /**
-     * Gets the current response content.
-     *
-     * @return string Content
-     *
-     * @api
-     */
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    /**
-     * Sets the HTTP protocol version (1.0 or 1.1).
-     *
-     * @param string $version The HTTP protocol version
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setProtocolVersion($version)
-    {
-        $this->version = $version;
-
-        return $this;
-    }
-
-    /**
-     * Gets the HTTP protocol version.
-     *
-     * @return string The HTTP protocol version
-     *
-     * @api
-     */
-    public function getProtocolVersion()
-    {
-        return $this->version;
-    }
-
-    /**
-     * Sets the response status code.
-     *
-     * @param int   $code HTTP status code
-     * @param mixed $text HTTP status text
-     *
-     * If the status text is null it will be automatically populated for the known
-     * status codes and left empty otherwise.
-     *
-     * @return Response
-     *
-     * @throws \InvalidArgumentException When the HTTP status code is not valid
-     *
-     * @api
-     */
-    public function setStatusCode($code, $text = null)
-    {
-        $this->statusCode = $code = (int) $code;
-        if ($this->isInvalid()) {
-            throw new \InvalidArgumentException(sprintf('The HTTP status code "%s" is not valid.', $code));
-        }
-
-        if (null === $text) {
-            $this->statusText = isset(self::$statusTexts[$code]) ? self::$statusTexts[$code] : '';
-
-            return $this;
-        }
-
-        if (false === $text) {
-            $this->statusText = '';
-
-            return $this;
-        }
-
-        $this->statusText = $text;
-
-        return $this;
-    }
-
-    /**
-     * Retrieves the status code for the current web response.
-     *
-     * @return int Status code
-     *
-     * @api
-     */
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    /**
-     * Sets the response charset.
-     *
-     * @param string $charset Character set
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setCharset($charset)
-    {
-        $this->charset = $charset;
-
-        return $this;
-    }
-
-    /**
-     * Retrieves the response charset.
-     *
-     * @return string Character set
-     *
-     * @api
-     */
-    public function getCharset()
-    {
-        return $this->charset;
-    }
-
-    /**
-     * Returns true if the response is worth caching under any circumstance.
-     *
-     * Responses marked "private" with an explicit Cache-Control directive are
-     * considered uncacheable.
-     *
-     * Responses with neither a freshness lifetime (Expires, max-age) nor cache
-     * validator (Last-Modified, ETag) are considered uncacheable.
-     *
-     * @return bool true if the response is worth caching, false otherwise
-     *
-     * @api
-     */
-    public function isCacheable()
-    {
-        if (!in_array($this->statusCode, array(200, 203, 300, 301, 302, 404, 410))) {
-            return false;
-        }
-
-        if ($this->headers->hasCacheControlDirective('no-store') || $this->headers->getCacheControlDirective('private')) {
-            return false;
-        }
-
-        return $this->isValidateable() || $this->isFresh();
-    }
-
-    /**
-     * Returns true if the response is "fresh".
-     *
-     * Fresh responses may be served from cache without any interaction with the
-     * origin. A response is considered fresh when it includes a Cache-Control/max-age
-     * indicator or Expires header and the calculated age is less than the freshness lifetime.
-     *
-     * @return bool true if the response is fresh, false otherwise
-     *
-     * @api
-     */
-    public function isFresh()
-    {
-        return $this->getTtl() > 0;
-    }
-
-    /**
-     * Returns true if the response includes headers that can be used to validate
-     * the response with the origin server using a conditional GET request.
-     *
-     * @return bool true if the response is validateable, false otherwise
-     *
-     * @api
-     */
-    public function isValidateable()
-    {
-        return $this->headers->has('Last-Modified') || $this->headers->has('ETag');
-    }
-
-    /**
-     * Marks the response as "private".
-     *
-     * It makes the response ineligible for serving other clients.
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setPrivate()
-    {
-        $this->headers->removeCacheControlDirective('public');
-        $this->headers->addCacheControlDirective('private');
-
-        return $this;
-    }
-
-    /**
-     * Marks the response as "public".
-     *
-     * It makes the response eligible for serving other clients.
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setPublic()
-    {
-        $this->headers->addCacheControlDirective('public');
-        $this->headers->removeCacheControlDirective('private');
-
-        return $this;
-    }
-
-    /**
-     * Returns true if the response must be revalidated by caches.
-     *
-     * This method indicates that the response must not be served stale by a
-     * cache in any circumstance without first revalidating with the origin.
-     * When present, the TTL of the response should not be overridden to be
-     * greater than the value provided by the origin.
-     *
-     * @return bool true if the response must be revalidated by a cache, false otherwise
-     *
-     * @api
-     */
-    public function mustRevalidate()
-    {
-        return $this->headers->hasCacheControlDirective('must-revalidate') || $this->headers->has('proxy-revalidate');
-    }
-
-    /**
-     * Returns the Date header as a DateTime instance.
-     *
-     * @return \DateTime A \DateTime instance
-     *
-     * @throws \RuntimeException When the header is not parseable
-     *
-     * @api
-     */
-    public function getDate()
-    {
-        return $this->headers->getDate('Date', new \DateTime());
-    }
-
-    /**
-     * Sets the Date header.
-     *
-     * @param \DateTime $date A \DateTime instance
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setDate(\DateTime $date)
-    {
-        $date->setTimezone(new \DateTimeZone('UTC'));
-        $this->headers->set('Date', $date->format('D, d M Y H:i:s').' GMT');
-
-        return $this;
-    }
-
-    /**
-     * Returns the age of the response.
-     *
-     * @return int The age of the response in seconds
-     */
-    public function getAge()
-    {
-        if (null !== $age = $this->headers->get('Age')) {
-            return (int) $age;
-        }
-
-        return max(time() - $this->getDate()->format('U'), 0);
-    }
-
-    /**
-     * Marks the response stale by setting the Age header to be equal to the maximum age of the response.
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function expire()
-    {
-        if ($this->isFresh()) {
-            $this->headers->set('Age', $this->getMaxAge());
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns the value of the Expires header as a DateTime instance.
-     *
-     * @return \DateTime|null A DateTime instance or null if the header does not exist
-     *
-     * @api
-     */
-    public function getExpires()
-    {
-        try {
-            return $this->headers->getDate('Expires');
-        } catch (\RuntimeException $e) {
-            // according to RFC 2616 invalid date formats (e.g. "0" and "-1") must be treated as in the past
-            return \DateTime::createFromFormat(DATE_RFC2822, 'Sat, 01 Jan 00 00:00:00 +0000');
-        }
-    }
-
-    /**
-     * Sets the Expires HTTP header with a DateTime instance.
-     *
-     * Passing null as value will remove the header.
-     *
-     * @param \DateTime|null $date A \DateTime instance or null to remove the header
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setExpires(\DateTime $date = null)
-    {
-        if (null === $date) {
-            $this->headers->remove('Expires');
-        } else {
-            $date = clone $date;
-            $date->setTimezone(new \DateTimeZone('UTC'));
-            $this->headers->set('Expires', $date->format('D, d M Y H:i:s').' GMT');
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns the number of seconds after the time specified in the response's Date
-     * header when the response should no longer be considered fresh.
-     *
-     * First, it checks for a s-maxage directive, then a max-age directive, and then it falls
-     * back on an expires header. It returns null when no maximum age can be established.
-     *
-     * @return int|null Number of seconds
-     *
-     * @api
-     */
-    public function getMaxAge()
-    {
-        if ($this->headers->hasCacheControlDirective('s-maxage')) {
-            return (int) $this->headers->getCacheControlDirective('s-maxage');
-        }
-
-        if ($this->headers->hasCacheControlDirective('max-age')) {
-            return (int) $this->headers->getCacheControlDirective('max-age');
-        }
-
-        if (null !== $this->getExpires()) {
-            return $this->getExpires()->format('U') - $this->getDate()->format('U');
-        }
-    }
-
-    /**
-     * Sets the number of seconds after which the response should no longer be considered fresh.
-     *
-     * This methods sets the Cache-Control max-age directive.
-     *
-     * @param int $value Number of seconds
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setMaxAge($value)
-    {
-        $this->headers->addCacheControlDirective('max-age', $value);
-
-        return $this;
-    }
-
-    /**
-     * Sets the number of seconds after which the response should no longer be considered fresh by shared caches.
-     *
-     * This methods sets the Cache-Control s-maxage directive.
-     *
-     * @param int $value Number of seconds
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setSharedMaxAge($value)
-    {
-        $this->setPublic();
-        $this->headers->addCacheControlDirective('s-maxage', $value);
-
-        return $this;
-    }
-
-    /**
-     * Returns the response's time-to-live in seconds.
-     *
-     * It returns null when no freshness information is present in the response.
-     *
-     * When the responses TTL is <= 0, the response may not be served from cache without first
-     * revalidating with the origin.
-     *
-     * @return int|null The TTL in seconds
-     *
-     * @api
-     */
-    public function getTtl()
-    {
-        if (null !== $maxAge = $this->getMaxAge()) {
-            return $maxAge - $this->getAge();
-        }
-    }
-
-    /**
-     * Sets the response's time-to-live for shared caches.
-     *
-     * This method adjusts the Cache-Control/s-maxage directive.
-     *
-     * @param int $seconds Number of seconds
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setTtl($seconds)
-    {
-        $this->setSharedMaxAge($this->getAge() + $seconds);
-
-        return $this;
-    }
-
-    /**
-     * Sets the response's time-to-live for private/client caches.
-     *
-     * This method adjusts the Cache-Control/max-age directive.
-     *
-     * @param int $seconds Number of seconds
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setClientTtl($seconds)
-    {
-        $this->setMaxAge($this->getAge() + $seconds);
-
-        return $this;
-    }
-
-    /**
-     * Returns the Last-Modified HTTP header as a DateTime instance.
-     *
-     * @return \DateTime|null A DateTime instance or null if the header does not exist
-     *
-     * @throws \RuntimeException When the HTTP header is not parseable
-     *
-     * @api
-     */
-    public function getLastModified()
-    {
-        return $this->headers->getDate('Last-Modified');
-    }
-
-    /**
-     * Sets the Last-Modified HTTP header with a DateTime instance.
-     *
-     * Passing null as value will remove the header.
-     *
-     * @param \DateTime|null $date A \DateTime instance or null to remove the header
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setLastModified(\DateTime $date = null)
-    {
-        if (null === $date) {
-            $this->headers->remove('Last-Modified');
-        } else {
-            $date = clone $date;
-            $date->setTimezone(new \DateTimeZone('UTC'));
-            $this->headers->set('Last-Modified', $date->format('D, d M Y H:i:s').' GMT');
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns the literal value of the ETag HTTP header.
-     *
-     * @return string|null The ETag HTTP header or null if it does not exist
-     *
-     * @api
-     */
-    public function getEtag()
-    {
-        return $this->headers->get('ETag');
-    }
-
-    /**
-     * Sets the ETag value.
-     *
-     * @param string|null $etag The ETag unique identifier or null to remove the header
-     * @param bool        $weak Whether you want a weak ETag or not
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setEtag($etag = null, $weak = false)
-    {
-        if (null === $etag) {
-            $this->headers->remove('Etag');
-        } else {
-            if (0 !== strpos($etag, '"')) {
-                $etag = '"'.$etag.'"';
-            }
-
-            $this->headers->set('ETag', (true === $weak ? 'W/' : '').$etag);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Sets the response's cache headers (validation and/or expiration).
-     *
-     * Available options are: etag, last_modified, max_age, s_maxage, private, and public.
-     *
-     * @param array $options An array of cache options
-     *
-     * @return Response
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function setCache(array $options)
-    {
-        if ($diff = array_diff(array_keys($options), array('etag', 'last_modified', 'max_age', 's_maxage', 'private', 'public'))) {
-            throw new \InvalidArgumentException(sprintf('Response does not support the following options: "%s".', implode('", "', array_values($diff))));
-        }
-
-        if (isset($options['etag'])) {
-            $this->setEtag($options['etag']);
-        }
-
-        if (isset($options['last_modified'])) {
-            $this->setLastModified($options['last_modified']);
-        }
-
-        if (isset($options['max_age'])) {
-            $this->setMaxAge($options['max_age']);
-        }
-
-        if (isset($options['s_maxage'])) {
-            $this->setSharedMaxAge($options['s_maxage']);
-        }
-
-        if (isset($options['public'])) {
-            if ($options['public']) {
-                $this->setPublic();
-            } else {
-                $this->setPrivate();
-            }
-        }
-
-        if (isset($options['private'])) {
-            if ($options['private']) {
-                $this->setPrivate();
-            } else {
-                $this->setPublic();
-            }
-        }
-
-        return $this;
-    }
-
-    /**
-     * Modifies the response so that it conforms to the rules defined for a 304 status code.
-     *
-     * This sets the status, removes the body, and discards any headers
-     * that MUST NOT be included in 304 responses.
-     *
-     * @return Response
-     *
-     * @see http://tools.ietf.org/html/rfc2616#section-10.3.5
-     *
-     * @api
-     */
-    public function setNotModified()
-    {
-        $this->setStatusCode(304);
-        $this->setContent(null);
-
-        // remove headers that MUST NOT be included with 304 Not Modified responses
-        foreach (array('Allow', 'Content-Encoding', 'Content-Language', 'Content-Length', 'Content-MD5', 'Content-Type', 'Last-Modified') as $header) {
-            $this->headers->remove($header);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns true if the response includes a Vary header.
-     *
-     * @return bool true if the response includes a Vary header, false otherwise
-     *
-     * @api
-     */
-    public function hasVary()
-    {
-        return null !== $this->headers->get('Vary');
-    }
-
-    /**
-     * Returns an array of header names given in the Vary header.
-     *
-     * @return array An array of Vary names
-     *
-     * @api
-     */
-    public function getVary()
-    {
-        if (!$vary = $this->headers->get('Vary', null, false)) {
-            return array();
-        }
-
-        $ret = array();
-        foreach ($vary as $item) {
-            $ret = array_merge($ret, preg_split('/[\s,]+/', $item));
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Sets the Vary header.
-     *
-     * @param string|array $headers
-     * @param bool         $replace Whether to replace the actual value of not (true by default)
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function setVary($headers, $replace = true)
-    {
-        $this->headers->set('Vary', $headers, $replace);
-
-        return $this;
-    }
-
-    /**
-     * Determines if the Response validators (ETag, Last-Modified) match
-     * a conditional value specified in the Request.
-     *
-     * If the Response is not modified, it sets the status code to 304 and
-     * removes the actual content by calling the setNotModified() method.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool true if the Response validators match the Request, false otherwise
-     *
-     * @api
-     */
-    public function isNotModified(Request $request)
-    {
-        if (!$request->isMethodSafe()) {
-            return false;
-        }
-
-        $notModified = false;
-        $lastModified = $this->headers->get('Last-Modified');
-        $modifiedSince = $request->headers->get('If-Modified-Since');
-
-        if ($etags = $request->getETags()) {
-            $notModified = in_array($this->getEtag(), $etags) || in_array('*', $etags);
-        }
-
-        if ($modifiedSince && $lastModified) {
-            $notModified = strtotime($modifiedSince) >= strtotime($lastModified) && (!$etags || $notModified);
-        }
-
-        if ($notModified) {
-            $this->setNotModified();
-        }
-
-        return $notModified;
-    }
-
-    // http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
-    /**
-     * Is response invalid?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isInvalid()
-    {
-        return $this->statusCode < 100 || $this->statusCode >= 600;
-    }
-
-    /**
-     * Is response informative?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isInformational()
-    {
-        return $this->statusCode >= 100 && $this->statusCode < 200;
-    }
-
-    /**
-     * Is response successful?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isSuccessful()
-    {
-        return $this->statusCode >= 200 && $this->statusCode < 300;
-    }
-
-    /**
-     * Is the response a redirect?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isRedirection()
-    {
-        return $this->statusCode >= 300 && $this->statusCode < 400;
-    }
-
-    /**
-     * Is there a client error?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isClientError()
-    {
-        return $this->statusCode >= 400 && $this->statusCode < 500;
-    }
-
-    /**
-     * Was there a server side error?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isServerError()
-    {
-        return $this->statusCode >= 500 && $this->statusCode < 600;
-    }
-
-    /**
-     * Is the response OK?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isOk()
-    {
-        return 200 === $this->statusCode;
-    }
-
-    /**
-     * Is the response forbidden?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isForbidden()
-    {
-        return 403 === $this->statusCode;
-    }
-
-    /**
-     * Is the response a not found error?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isNotFound()
-    {
-        return 404 === $this->statusCode;
-    }
-
-    /**
-     * Is the response a redirect of some form?
-     *
-     * @param string $location
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isRedirect($location = null)
-    {
-        return in_array($this->statusCode, array(201, 301, 302, 303, 307, 308)) && (null === $location ?: $location == $this->headers->get('Location'));
-    }
-
-    /**
-     * Is the response empty?
-     *
-     * @return bool
-     *
-     * @api
-     */
-    public function isEmpty()
-    {
-        return in_array($this->statusCode, array(204, 304));
-    }
-
-    /**
-     * Cleans or flushes output buffers up to target level.
-     *
-     * Resulting level can be greater than target level if a non-removable buffer has been encountered.
-     *
-     * @param int  $targetLevel The target output buffering level
-     * @param bool $flush       Whether to flush or clean the buffers
-     */
-    public static function closeOutputBuffers($targetLevel, $flush)
-    {
-        $status = ob_get_status(true);
-        $level = count($status);
-        $flags = defined('PHP_OUTPUT_HANDLER_REMOVABLE') ? PHP_OUTPUT_HANDLER_REMOVABLE | ($flush ? PHP_OUTPUT_HANDLER_FLUSHABLE : PHP_OUTPUT_HANDLER_CLEANABLE) : -1;
-
-        while ($level-- > $targetLevel && ($s = $status[$level]) && (!isset($s['del']) ? !isset($s['flags']) || $flags === ($s['flags'] & $flags) : $s['del'])) {
-            if ($flush) {
-                ob_end_flush();
-            } else {
-                ob_end_clean();
-            }
-        }
-    }
-
-    /**
-     * Checks if we need to remove Cache-Control for SSL encrypted downloads when using IE < 9.
-     *
-     * @link http://support.microsoft.com/kb/323308
-     */
-    protected function ensureIEOverSSLCompatibility(Request $request)
-    {
-        if (false !== stripos($this->headers->get('Content-Disposition'), 'attachment') && preg_match('/MSIE (.*?);/i', $request->server->get('HTTP_USER_AGENT'), $match) == 1 && true === $request->isSecure()) {
-            if ((int) preg_replace('/(MSIE )(.*?);/', '$2', $match[0]) < 9) {
-                $this->headers->remove('Cache-Control');
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/ResponseHeaderBag.php b/core/vendor/symfony/http-foundation/ResponseHeaderBag.php
deleted file mode 100644
index 375d191..0000000
--- a/core/vendor/symfony/http-foundation/ResponseHeaderBag.php
+++ /dev/null
@@ -1,322 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * ResponseHeaderBag is a container for Response HTTP headers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ResponseHeaderBag extends HeaderBag
-{
-    const COOKIES_FLAT = 'flat';
-    const COOKIES_ARRAY = 'array';
-
-    const DISPOSITION_ATTACHMENT = 'attachment';
-    const DISPOSITION_INLINE = 'inline';
-
-    /**
-     * @var array
-     */
-    protected $computedCacheControl = array();
-
-    /**
-     * @var array
-     */
-    protected $cookies = array();
-
-    /**
-     * @var array
-     */
-    protected $headerNames = array();
-
-    /**
-     * Constructor.
-     *
-     * @param array $headers An array of HTTP headers
-     *
-     * @api
-     */
-    public function __construct(array $headers = array())
-    {
-        parent::__construct($headers);
-
-        if (!isset($this->headers['cache-control'])) {
-            $this->set('Cache-Control', '');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        $cookies = '';
-        foreach ($this->getCookies() as $cookie) {
-            $cookies .= 'Set-Cookie: '.$cookie."\r\n";
-        }
-
-        ksort($this->headerNames);
-
-        return parent::__toString().$cookies;
-    }
-
-    /**
-     * Returns the headers, with original capitalizations.
-     *
-     * @return array An array of headers
-     */
-    public function allPreserveCase()
-    {
-        return array_combine($this->headerNames, $this->headers);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function replace(array $headers = array())
-    {
-        $this->headerNames = array();
-
-        parent::replace($headers);
-
-        if (!isset($this->headers['cache-control'])) {
-            $this->set('Cache-Control', '');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function set($key, $values, $replace = true)
-    {
-        parent::set($key, $values, $replace);
-
-        $uniqueKey = strtr(strtolower($key), '_', '-');
-        $this->headerNames[$uniqueKey] = $key;
-
-        // ensure the cache-control header has sensible defaults
-        if (in_array($uniqueKey, array('cache-control', 'etag', 'last-modified', 'expires'))) {
-            $computed = $this->computeCacheControlValue();
-            $this->headers['cache-control'] = array($computed);
-            $this->headerNames['cache-control'] = 'Cache-Control';
-            $this->computedCacheControl = $this->parseCacheControl($computed);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function remove($key)
-    {
-        parent::remove($key);
-
-        $uniqueKey = strtr(strtolower($key), '_', '-');
-        unset($this->headerNames[$uniqueKey]);
-
-        if ('cache-control' === $uniqueKey) {
-            $this->computedCacheControl = array();
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasCacheControlDirective($key)
-    {
-        return array_key_exists($key, $this->computedCacheControl);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCacheControlDirective($key)
-    {
-        return array_key_exists($key, $this->computedCacheControl) ? $this->computedCacheControl[$key] : null;
-    }
-
-    /**
-     * Sets a cookie.
-     *
-     * @param Cookie $cookie
-     *
-     * @api
-     */
-    public function setCookie(Cookie $cookie)
-    {
-        $this->cookies[$cookie->getDomain()][$cookie->getPath()][$cookie->getName()] = $cookie;
-    }
-
-    /**
-     * Removes a cookie from the array, but does not unset it in the browser.
-     *
-     * @param string $name
-     * @param string $path
-     * @param string $domain
-     *
-     * @api
-     */
-    public function removeCookie($name, $path = '/', $domain = null)
-    {
-        if (null === $path) {
-            $path = '/';
-        }
-
-        unset($this->cookies[$domain][$path][$name]);
-
-        if (empty($this->cookies[$domain][$path])) {
-            unset($this->cookies[$domain][$path]);
-
-            if (empty($this->cookies[$domain])) {
-                unset($this->cookies[$domain]);
-            }
-        }
-    }
-
-    /**
-     * Returns an array with all cookies.
-     *
-     * @param string $format
-     *
-     * @throws \InvalidArgumentException When the $format is invalid
-     *
-     * @return array
-     *
-     * @api
-     */
-    public function getCookies($format = self::COOKIES_FLAT)
-    {
-        if (!in_array($format, array(self::COOKIES_FLAT, self::COOKIES_ARRAY))) {
-            throw new \InvalidArgumentException(sprintf('Format "%s" invalid (%s).', $format, implode(', ', array(self::COOKIES_FLAT, self::COOKIES_ARRAY))));
-        }
-
-        if (self::COOKIES_ARRAY === $format) {
-            return $this->cookies;
-        }
-
-        $flattenedCookies = array();
-        foreach ($this->cookies as $path) {
-            foreach ($path as $cookies) {
-                foreach ($cookies as $cookie) {
-                    $flattenedCookies[] = $cookie;
-                }
-            }
-        }
-
-        return $flattenedCookies;
-    }
-
-    /**
-     * Clears a cookie in the browser.
-     *
-     * @param string $name
-     * @param string $path
-     * @param string $domain
-     * @param bool   $secure
-     * @param bool   $httpOnly
-     *
-     * @api
-     */
-    public function clearCookie($name, $path = '/', $domain = null, $secure = false, $httpOnly = true)
-    {
-        $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly));
-    }
-
-    /**
-     * Generates a HTTP Content-Disposition field-value.
-     *
-     * @param string $disposition      One of "inline" or "attachment"
-     * @param string $filename         A unicode string
-     * @param string $filenameFallback A string containing only ASCII characters that
-     *                                 is semantically equivalent to $filename. If the filename is already ASCII,
-     *                                 it can be omitted, or just copied from $filename
-     *
-     * @return string A string suitable for use as a Content-Disposition field-value.
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @see RFC 6266
-     */
-    public function makeDisposition($disposition, $filename, $filenameFallback = '')
-    {
-        if (!in_array($disposition, array(self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE))) {
-            throw new \InvalidArgumentException(sprintf('The disposition must be either "%s" or "%s".', self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE));
-        }
-
-        if ('' == $filenameFallback) {
-            $filenameFallback = $filename;
-        }
-
-        // filenameFallback is not ASCII.
-        if (!preg_match('/^[\x20-\x7e]*$/', $filenameFallback)) {
-            throw new \InvalidArgumentException('The filename fallback must only contain ASCII characters.');
-        }
-
-        // percent characters aren't safe in fallback.
-        if (false !== strpos($filenameFallback, '%')) {
-            throw new \InvalidArgumentException('The filename fallback cannot contain the "%" character.');
-        }
-
-        // path separators aren't allowed in either.
-        if (false !== strpos($filename, '/') || false !== strpos($filename, '\\') || false !== strpos($filenameFallback, '/') || false !== strpos($filenameFallback, '\\')) {
-            throw new \InvalidArgumentException('The filename and the fallback cannot contain the "/" and "\\" characters.');
-        }
-
-        $output = sprintf('%s; filename="%s"', $disposition, str_replace('"', '\\"', $filenameFallback));
-
-        if ($filename !== $filenameFallback) {
-            $output .= sprintf("; filename*=utf-8''%s", rawurlencode($filename));
-        }
-
-        return $output;
-    }
-
-    /**
-     * Returns the calculated value of the cache-control header.
-     *
-     * This considers several other headers and calculates or modifies the
-     * cache-control header to a sensible, conservative value.
-     *
-     * @return string
-     */
-    protected function computeCacheControlValue()
-    {
-        if (!$this->cacheControl && !$this->has('ETag') && !$this->has('Last-Modified') && !$this->has('Expires')) {
-            return 'no-cache';
-        }
-
-        if (!$this->cacheControl) {
-            // conservative by default
-            return 'private, must-revalidate';
-        }
-
-        $header = $this->getCacheControlHeader();
-        if (isset($this->cacheControl['public']) || isset($this->cacheControl['private'])) {
-            return $header;
-        }
-
-        // public if s-maxage is defined, private otherwise
-        if (!isset($this->cacheControl['s-maxage'])) {
-            return $header.', private';
-        }
-
-        return $header;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/ServerBag.php b/core/vendor/symfony/http-foundation/ServerBag.php
deleted file mode 100644
index fa1cb2f..0000000
--- a/core/vendor/symfony/http-foundation/ServerBag.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * ServerBag is a container for HTTP headers from the $_SERVER variable.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- * @author Robert Kiss <kepten@gmail.com>
- */
-class ServerBag extends ParameterBag
-{
-    /**
-     * Gets the HTTP headers.
-     *
-     * @return array
-     */
-    public function getHeaders()
-    {
-        $headers = array();
-        $contentHeaders = array('CONTENT_LENGTH' => true, 'CONTENT_MD5' => true, 'CONTENT_TYPE' => true);
-        foreach ($this->parameters as $key => $value) {
-            if (0 === strpos($key, 'HTTP_')) {
-                $headers[substr($key, 5)] = $value;
-            }
-            // CONTENT_* are not prefixed with HTTP_
-            elseif (isset($contentHeaders[$key])) {
-                $headers[$key] = $value;
-            }
-        }
-
-        if (isset($this->parameters['PHP_AUTH_USER'])) {
-            $headers['PHP_AUTH_USER'] = $this->parameters['PHP_AUTH_USER'];
-            $headers['PHP_AUTH_PW'] = isset($this->parameters['PHP_AUTH_PW']) ? $this->parameters['PHP_AUTH_PW'] : '';
-        } else {
-            /*
-             * php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default
-             * For this workaround to work, add these lines to your .htaccess file:
-             * RewriteCond %{HTTP:Authorization} ^(.+)$
-             * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
-             *
-             * A sample .htaccess file:
-             * RewriteEngine On
-             * RewriteCond %{HTTP:Authorization} ^(.+)$
-             * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
-             * RewriteCond %{REQUEST_FILENAME} !-f
-             * RewriteRule ^(.*)$ app.php [QSA,L]
-             */
-
-            $authorizationHeader = null;
-            if (isset($this->parameters['HTTP_AUTHORIZATION'])) {
-                $authorizationHeader = $this->parameters['HTTP_AUTHORIZATION'];
-            } elseif (isset($this->parameters['REDIRECT_HTTP_AUTHORIZATION'])) {
-                $authorizationHeader = $this->parameters['REDIRECT_HTTP_AUTHORIZATION'];
-            }
-
-            if (null !== $authorizationHeader) {
-                if (0 === stripos($authorizationHeader, 'basic ')) {
-                    // Decode AUTHORIZATION header into PHP_AUTH_USER and PHP_AUTH_PW when authorization header is basic
-                    $exploded = explode(':', base64_decode(substr($authorizationHeader, 6)), 2);
-                    if (count($exploded) == 2) {
-                        list($headers['PHP_AUTH_USER'], $headers['PHP_AUTH_PW']) = $exploded;
-                    }
-                } elseif (empty($this->parameters['PHP_AUTH_DIGEST']) && (0 === stripos($authorizationHeader, 'digest '))) {
-                    // In some circumstances PHP_AUTH_DIGEST needs to be set
-                    $headers['PHP_AUTH_DIGEST'] = $authorizationHeader;
-                    $this->parameters['PHP_AUTH_DIGEST'] = $authorizationHeader;
-                } elseif (0 === stripos($authorizationHeader, 'bearer ')) {
-                    /*
-                     * XXX: Since there is no PHP_AUTH_BEARER in PHP predefined variables,
-                     *      I'll just set $headers['AUTHORIZATION'] here.
-                     *      http://php.net/manual/en/reserved.variables.server.php
-                     */
-                    $headers['AUTHORIZATION'] = $authorizationHeader;
-                }
-            }
-        }
-
-        // PHP_AUTH_USER/PHP_AUTH_PW
-        if (isset($headers['PHP_AUTH_USER'])) {
-            $headers['AUTHORIZATION'] = 'Basic '.base64_encode($headers['PHP_AUTH_USER'].':'.$headers['PHP_AUTH_PW']);
-        } elseif (isset($headers['PHP_AUTH_DIGEST'])) {
-            $headers['AUTHORIZATION'] = $headers['PHP_AUTH_DIGEST'];
-        }
-
-        return $headers;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php b/core/vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php
deleted file mode 100644
index af292e3..0000000
--- a/core/vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Attribute;
-
-/**
- * This class relates to session attribute storage.
- */
-class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Countable
-{
-    private $name = 'attributes';
-
-    /**
-     * @var string
-     */
-    private $storageKey;
-
-    /**
-     * @var array
-     */
-    protected $attributes = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $storageKey The key used to store attributes in the session
-     */
-    public function __construct($storageKey = '_sf2_attributes')
-    {
-        $this->storageKey = $storageKey;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function initialize(array &$attributes)
-    {
-        $this->attributes = &$attributes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStorageKey()
-    {
-        return $this->storageKey;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($name)
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function get($name, $default = null)
-    {
-        return array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function set($name, $value)
-    {
-        $this->attributes[$name] = $value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function all()
-    {
-        return $this->attributes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function replace(array $attributes)
-    {
-        $this->attributes = array();
-        foreach ($attributes as $key => $value) {
-            $this->set($key, $value);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function remove($name)
-    {
-        $retval = null;
-        if (array_key_exists($name, $this->attributes)) {
-            $retval = $this->attributes[$name];
-            unset($this->attributes[$name]);
-        }
-
-        return $retval;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        $return = $this->attributes;
-        $this->attributes = array();
-
-        return $return;
-    }
-
-    /**
-     * Returns an iterator for attributes.
-     *
-     * @return \ArrayIterator An \ArrayIterator instance
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->attributes);
-    }
-
-    /**
-     * Returns the number of attributes.
-     *
-     * @return int The number of attributes
-     */
-    public function count()
-    {
-        return count($this->attributes);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php b/core/vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php
deleted file mode 100644
index 0d8d179..0000000
--- a/core/vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Attribute;
-
-use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
-
-/**
- * Attributes store.
- *
- * @author Drak <drak@zikula.org>
- */
-interface AttributeBagInterface extends SessionBagInterface
-{
-    /**
-     * Checks if an attribute is defined.
-     *
-     * @param string $name The attribute name
-     *
-     * @return bool true if the attribute is defined, false otherwise
-     */
-    public function has($name);
-
-    /**
-     * Returns an attribute.
-     *
-     * @param string $name    The attribute name
-     * @param mixed  $default The default value if not found
-     *
-     * @return mixed
-     */
-    public function get($name, $default = null);
-
-    /**
-     * Sets an attribute.
-     *
-     * @param string $name
-     * @param mixed  $value
-     */
-    public function set($name, $value);
-
-    /**
-     * Returns attributes.
-     *
-     * @return array Attributes
-     */
-    public function all();
-
-    /**
-     * Sets attributes.
-     *
-     * @param array $attributes Attributes
-     */
-    public function replace(array $attributes);
-
-    /**
-     * Removes an attribute.
-     *
-     * @param string $name
-     *
-     * @return mixed The removed value or null when it does not exist
-     */
-    public function remove($name);
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php b/core/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php
deleted file mode 100644
index 68cecf6..0000000
--- a/core/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Attribute;
-
-/**
- * This class provides structured storage of session attributes using
- * a name spacing character in the key.
- *
- * @author Drak <drak@zikula.org>
- */
-class NamespacedAttributeBag extends AttributeBag
-{
-    /**
-     * Namespace character.
-     *
-     * @var string
-     */
-    private $namespaceCharacter;
-
-    /**
-     * Constructor.
-     *
-     * @param string $storageKey         Session storage key.
-     * @param string $namespaceCharacter Namespace character to use in keys.
-     */
-    public function __construct($storageKey = '_sf2_attributes', $namespaceCharacter = '/')
-    {
-        $this->namespaceCharacter = $namespaceCharacter;
-        parent::__construct($storageKey);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($name)
-    {
-        // reference mismatch: if fixed, re-introduced in array_key_exists; keep as it is
-        $attributes = $this->resolveAttributePath($name);
-        $name = $this->resolveKey($name);
-
-        if (null === $attributes) {
-            return false;
-        }
-
-        return array_key_exists($name, $attributes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function get($name, $default = null)
-    {
-        // reference mismatch: if fixed, re-introduced in array_key_exists; keep as it is
-        $attributes = $this->resolveAttributePath($name);
-        $name = $this->resolveKey($name);
-
-        if (null === $attributes) {
-            return $default;
-        }
-
-        return array_key_exists($name, $attributes) ? $attributes[$name] : $default;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function set($name, $value)
-    {
-        $attributes = &$this->resolveAttributePath($name, true);
-        $name = $this->resolveKey($name);
-        $attributes[$name] = $value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function remove($name)
-    {
-        $retval = null;
-        $attributes = &$this->resolveAttributePath($name);
-        $name = $this->resolveKey($name);
-        if (null !== $attributes && array_key_exists($name, $attributes)) {
-            $retval = $attributes[$name];
-            unset($attributes[$name]);
-        }
-
-        return $retval;
-    }
-
-    /**
-     * Resolves a path in attributes property and returns it as a reference.
-     *
-     * This method allows structured namespacing of session attributes.
-     *
-     * @param string $name         Key name
-     * @param bool   $writeContext Write context, default false
-     *
-     * @return array
-     */
-    protected function &resolveAttributePath($name, $writeContext = false)
-    {
-        $array = &$this->attributes;
-        $name = (strpos($name, $this->namespaceCharacter) === 0) ? substr($name, 1) : $name;
-
-        // Check if there is anything to do, else return
-        if (!$name) {
-            return $array;
-        }
-
-        $parts = explode($this->namespaceCharacter, $name);
-        if (count($parts) < 2) {
-            if (!$writeContext) {
-                return $array;
-            }
-
-            $array[$parts[0]] = array();
-
-            return $array;
-        }
-
-        unset($parts[count($parts) - 1]);
-
-        foreach ($parts as $part) {
-            if (null !== $array && !array_key_exists($part, $array)) {
-                $array[$part] = $writeContext ? array() : null;
-            }
-
-            $array = &$array[$part];
-        }
-
-        return $array;
-    }
-
-    /**
-     * Resolves the key from the name.
-     *
-     * This is the last part in a dot separated string.
-     *
-     * @param string $name
-     *
-     * @return string
-     */
-    protected function resolveKey($name)
-    {
-        if (false !== $pos = strrpos($name, $this->namespaceCharacter)) {
-            $name = substr($name, $pos + 1);
-        }
-
-        return $name;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php b/core/vendor/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php
deleted file mode 100644
index b9de5ce..0000000
--- a/core/vendor/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Flash;
-
-/**
- * AutoExpireFlashBag flash message container.
- *
- * @author Drak <drak@zikula.org>
- */
-class AutoExpireFlashBag implements FlashBagInterface
-{
-    private $name = 'flashes';
-
-    /**
-     * Flash messages.
-     *
-     * @var array
-     */
-    private $flashes = array('display' => array(), 'new' => array());
-
-    /**
-     * The storage key for flashes in the session.
-     *
-     * @var string
-     */
-    private $storageKey;
-
-    /**
-     * Constructor.
-     *
-     * @param string $storageKey The key used to store flashes in the session.
-     */
-    public function __construct($storageKey = '_sf2_flashes')
-    {
-        $this->storageKey = $storageKey;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function initialize(array &$flashes)
-    {
-        $this->flashes = &$flashes;
-
-        // The logic: messages from the last request will be stored in new, so we move them to previous
-        // This request we will show what is in 'display'.  What is placed into 'new' this time round will
-        // be moved to display next time round.
-        $this->flashes['display'] = array_key_exists('new', $this->flashes) ? $this->flashes['new'] : array();
-        $this->flashes['new'] = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function add($type, $message)
-    {
-        $this->flashes['new'][$type][] = $message;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function peek($type, array $default = array())
-    {
-        return $this->has($type) ? $this->flashes['display'][$type] : $default;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function peekAll()
-    {
-        return array_key_exists('display', $this->flashes) ? (array) $this->flashes['display'] : array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function get($type, array $default = array())
-    {
-        $return = $default;
-
-        if (!$this->has($type)) {
-            return $return;
-        }
-
-        if (isset($this->flashes['display'][$type])) {
-            $return = $this->flashes['display'][$type];
-            unset($this->flashes['display'][$type]);
-        }
-
-        return $return;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function all()
-    {
-        $return = $this->flashes['display'];
-        $this->flashes = array('new' => array(), 'display' => array());
-
-        return $return;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setAll(array $messages)
-    {
-        $this->flashes['new'] = $messages;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function set($type, $messages)
-    {
-        $this->flashes['new'][$type] = (array) $messages;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($type)
-    {
-        return array_key_exists($type, $this->flashes['display']) && $this->flashes['display'][$type];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function keys()
-    {
-        return array_keys($this->flashes['display']);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStorageKey()
-    {
-        return $this->storageKey;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        return $this->all();
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Flash/FlashBag.php b/core/vendor/symfony/http-foundation/Session/Flash/FlashBag.php
deleted file mode 100644
index 0da7715..0000000
--- a/core/vendor/symfony/http-foundation/Session/Flash/FlashBag.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Flash;
-
-/**
- * FlashBag flash message container.
- *
- * \IteratorAggregate implementation is deprecated and will be removed in 3.0.
- *
- * @author Drak <drak@zikula.org>
- */
-class FlashBag implements FlashBagInterface, \IteratorAggregate
-{
-    private $name = 'flashes';
-
-    /**
-     * Flash messages.
-     *
-     * @var array
-     */
-    private $flashes = array();
-
-    /**
-     * The storage key for flashes in the session.
-     *
-     * @var string
-     */
-    private $storageKey;
-
-    /**
-     * Constructor.
-     *
-     * @param string $storageKey The key used to store flashes in the session.
-     */
-    public function __construct($storageKey = '_sf2_flashes')
-    {
-        $this->storageKey = $storageKey;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function initialize(array &$flashes)
-    {
-        $this->flashes = &$flashes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function add($type, $message)
-    {
-        $this->flashes[$type][] = $message;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function peek($type, array $default = array())
-    {
-        return $this->has($type) ? $this->flashes[$type] : $default;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function peekAll()
-    {
-        return $this->flashes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function get($type, array $default = array())
-    {
-        if (!$this->has($type)) {
-            return $default;
-        }
-
-        $return = $this->flashes[$type];
-
-        unset($this->flashes[$type]);
-
-        return $return;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function all()
-    {
-        $return = $this->peekAll();
-        $this->flashes = array();
-
-        return $return;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function set($type, $messages)
-    {
-        $this->flashes[$type] = (array) $messages;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setAll(array $messages)
-    {
-        $this->flashes = $messages;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($type)
-    {
-        return array_key_exists($type, $this->flashes) && $this->flashes[$type];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function keys()
-    {
-        return array_keys($this->flashes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStorageKey()
-    {
-        return $this->storageKey;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        return $this->all();
-    }
-
-    /**
-     * Returns an iterator for flashes.
-     *
-     * @deprecated since version 2.4, to be removed in 3.0.
-     *
-     * @return \ArrayIterator An \ArrayIterator instance
-     */
-    public function getIterator()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        return new \ArrayIterator($this->all());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Flash/FlashBagInterface.php b/core/vendor/symfony/http-foundation/Session/Flash/FlashBagInterface.php
deleted file mode 100644
index be79d9d..0000000
--- a/core/vendor/symfony/http-foundation/Session/Flash/FlashBagInterface.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Flash;
-
-use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
-
-/**
- * FlashBagInterface.
- *
- * @author Drak <drak@zikula.org>
- */
-interface FlashBagInterface extends SessionBagInterface
-{
-    /**
-     * Adds a flash message for type.
-     *
-     * @param string $type
-     * @param string $message
-     */
-    public function add($type, $message);
-
-    /**
-     * Registers a message for a given type.
-     *
-     * @param string       $type
-     * @param string|array $message
-     */
-    public function set($type, $message);
-
-    /**
-     * Gets flash messages for a given type.
-     *
-     * @param string $type    Message category type.
-     * @param array  $default Default value if $type does not exist.
-     *
-     * @return array
-     */
-    public function peek($type, array $default = array());
-
-    /**
-     * Gets all flash messages.
-     *
-     * @return array
-     */
-    public function peekAll();
-
-    /**
-     * Gets and clears flash from the stack.
-     *
-     * @param string $type
-     * @param array  $default Default value if $type does not exist.
-     *
-     * @return array
-     */
-    public function get($type, array $default = array());
-
-    /**
-     * Gets and clears flashes from the stack.
-     *
-     * @return array
-     */
-    public function all();
-
-    /**
-     * Sets all flash messages.
-     */
-    public function setAll(array $messages);
-
-    /**
-     * Has flash messages for a given type?
-     *
-     * @param string $type
-     *
-     * @return bool
-     */
-    public function has($type);
-
-    /**
-     * Returns a list of all defined types.
-     *
-     * @return array
-     */
-    public function keys();
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Session.php b/core/vendor/symfony/http-foundation/Session/Session.php
deleted file mode 100644
index ac626fd..0000000
--- a/core/vendor/symfony/http-foundation/Session/Session.php
+++ /dev/null
@@ -1,251 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session;
-
-use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface;
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
-use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
-
-/**
- * Session.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Drak <drak@zikula.org>
- *
- * @api
- */
-class Session implements SessionInterface, \IteratorAggregate, \Countable
-{
-    /**
-     * Storage driver.
-     *
-     * @var SessionStorageInterface
-     */
-    protected $storage;
-
-    /**
-     * @var string
-     */
-    private $flashName;
-
-    /**
-     * @var string
-     */
-    private $attributeName;
-
-    /**
-     * Constructor.
-     *
-     * @param SessionStorageInterface $storage    A SessionStorageInterface instance.
-     * @param AttributeBagInterface   $attributes An AttributeBagInterface instance, (defaults null for default AttributeBag)
-     * @param FlashBagInterface       $flashes    A FlashBagInterface instance (defaults null for default FlashBag)
-     */
-    public function __construct(SessionStorageInterface $storage = null, AttributeBagInterface $attributes = null, FlashBagInterface $flashes = null)
-    {
-        $this->storage = $storage ?: new NativeSessionStorage();
-
-        $attributes = $attributes ?: new AttributeBag();
-        $this->attributeName = $attributes->getName();
-        $this->registerBag($attributes);
-
-        $flashes = $flashes ?: new FlashBag();
-        $this->flashName = $flashes->getName();
-        $this->registerBag($flashes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        return $this->storage->start();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($name)
-    {
-        return $this->storage->getBag($this->attributeName)->has($name);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function get($name, $default = null)
-    {
-        return $this->storage->getBag($this->attributeName)->get($name, $default);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function set($name, $value)
-    {
-        $this->storage->getBag($this->attributeName)->set($name, $value);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function all()
-    {
-        return $this->storage->getBag($this->attributeName)->all();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function replace(array $attributes)
-    {
-        $this->storage->getBag($this->attributeName)->replace($attributes);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function remove($name)
-    {
-        return $this->storage->getBag($this->attributeName)->remove($name);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        $this->storage->getBag($this->attributeName)->clear();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isStarted()
-    {
-        return $this->storage->isStarted();
-    }
-
-    /**
-     * Returns an iterator for attributes.
-     *
-     * @return \ArrayIterator An \ArrayIterator instance
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->storage->getBag($this->attributeName)->all());
-    }
-
-    /**
-     * Returns the number of attributes.
-     *
-     * @return int The number of attributes
-     */
-    public function count()
-    {
-        return count($this->storage->getBag($this->attributeName)->all());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function invalidate($lifetime = null)
-    {
-        $this->storage->clear();
-
-        return $this->migrate(true, $lifetime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function migrate($destroy = false, $lifetime = null)
-    {
-        return $this->storage->regenerate($destroy, $lifetime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function save()
-    {
-        $this->storage->save();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getId()
-    {
-        return $this->storage->getId();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setId($id)
-    {
-        $this->storage->setId($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->storage->getName();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setName($name)
-    {
-        $this->storage->setName($name);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataBag()
-    {
-        return $this->storage->getMetadataBag();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function registerBag(SessionBagInterface $bag)
-    {
-        $this->storage->registerBag($bag);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getBag($name)
-    {
-        return $this->storage->getBag($name);
-    }
-
-    /**
-     * Gets the flashbag interface.
-     *
-     * @return FlashBagInterface
-     */
-    public function getFlashBag()
-    {
-        return $this->getBag($this->flashName);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/SessionBagInterface.php b/core/vendor/symfony/http-foundation/Session/SessionBagInterface.php
deleted file mode 100644
index 182a47d..0000000
--- a/core/vendor/symfony/http-foundation/Session/SessionBagInterface.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session;
-
-/**
- * Session Bag store.
- *
- * @author Drak <drak@zikula.org>
- */
-interface SessionBagInterface
-{
-    /**
-     * Gets this bag's name.
-     *
-     * @return string
-     */
-    public function getName();
-
-    /**
-     * Initializes the Bag.
-     *
-     * @param array $array
-     */
-    public function initialize(array &$array);
-
-    /**
-     * Gets the storage key for this bag.
-     *
-     * @return string
-     */
-    public function getStorageKey();
-
-    /**
-     * Clears out data from bag.
-     *
-     * @return mixed Whatever data was contained.
-     */
-    public function clear();
-}
diff --git a/core/vendor/symfony/http-foundation/Session/SessionInterface.php b/core/vendor/symfony/http-foundation/Session/SessionInterface.php
deleted file mode 100644
index 773dc7a..0000000
--- a/core/vendor/symfony/http-foundation/Session/SessionInterface.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session;
-
-use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
-
-/**
- * Interface for the session.
- *
- * @author Drak <drak@zikula.org>
- */
-interface SessionInterface
-{
-    /**
-     * Starts the session storage.
-     *
-     * @return bool True if session started.
-     *
-     * @throws \RuntimeException If session fails to start.
-     *
-     * @api
-     */
-    public function start();
-
-    /**
-     * Returns the session ID.
-     *
-     * @return string The session ID.
-     *
-     * @api
-     */
-    public function getId();
-
-    /**
-     * Sets the session ID.
-     *
-     * @param string $id
-     *
-     * @api
-     */
-    public function setId($id);
-
-    /**
-     * Returns the session name.
-     *
-     * @return mixed The session name.
-     *
-     * @api
-     */
-    public function getName();
-
-    /**
-     * Sets the session name.
-     *
-     * @param string $name
-     *
-     * @api
-     */
-    public function setName($name);
-
-    /**
-     * Invalidates the current session.
-     *
-     * Clears all session attributes and flashes and regenerates the
-     * session and deletes the old session from persistence.
-     *
-     * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
-     *                      will leave the system settings unchanged, 0 sets the cookie
-     *                      to expire with browser session. Time is in seconds, and is
-     *                      not a Unix timestamp.
-     *
-     * @return bool True if session invalidated, false if error.
-     *
-     * @api
-     */
-    public function invalidate($lifetime = null);
-
-    /**
-     * Migrates the current session to a new session id while maintaining all
-     * session attributes.
-     *
-     * @param bool $destroy  Whether to delete the old session or leave it to garbage collection.
-     * @param int  $lifetime Sets the cookie lifetime for the session cookie. A null value
-     *                       will leave the system settings unchanged, 0 sets the cookie
-     *                       to expire with browser session. Time is in seconds, and is
-     *                       not a Unix timestamp.
-     *
-     * @return bool True if session migrated, false if error.
-     *
-     * @api
-     */
-    public function migrate($destroy = false, $lifetime = null);
-
-    /**
-     * Force the session to be saved and closed.
-     *
-     * This method is generally not required for real sessions as
-     * the session will be automatically saved at the end of
-     * code execution.
-     */
-    public function save();
-
-    /**
-     * Checks if an attribute is defined.
-     *
-     * @param string $name The attribute name
-     *
-     * @return bool true if the attribute is defined, false otherwise
-     *
-     * @api
-     */
-    public function has($name);
-
-    /**
-     * Returns an attribute.
-     *
-     * @param string $name    The attribute name
-     * @param mixed  $default The default value if not found.
-     *
-     * @return mixed
-     *
-     * @api
-     */
-    public function get($name, $default = null);
-
-    /**
-     * Sets an attribute.
-     *
-     * @param string $name
-     * @param mixed  $value
-     *
-     * @api
-     */
-    public function set($name, $value);
-
-    /**
-     * Returns attributes.
-     *
-     * @return array Attributes
-     *
-     * @api
-     */
-    public function all();
-
-    /**
-     * Sets attributes.
-     *
-     * @param array $attributes Attributes
-     */
-    public function replace(array $attributes);
-
-    /**
-     * Removes an attribute.
-     *
-     * @param string $name
-     *
-     * @return mixed The removed value or null when it does not exist
-     *
-     * @api
-     */
-    public function remove($name);
-
-    /**
-     * Clears all attributes.
-     *
-     * @api
-     */
-    public function clear();
-
-    /**
-     * Checks if the session was started.
-     *
-     * @return bool
-     */
-    public function isStarted();
-
-    /**
-     * Registers a SessionBagInterface with the session.
-     *
-     * @param SessionBagInterface $bag
-     */
-    public function registerBag(SessionBagInterface $bag);
-
-    /**
-     * Gets a bag instance by name.
-     *
-     * @param string $name
-     *
-     * @return SessionBagInterface
-     */
-    public function getBag($name);
-
-    /**
-     * Gets session meta.
-     *
-     * @return MetadataBag
-     */
-    public function getMetadataBag();
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/LegacyPdoSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/LegacyPdoSessionHandler.php
deleted file mode 100644
index eefaf8d..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/LegacyPdoSessionHandler.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-@trigger_error('The '.__NAMESPACE__.'\LegacyPdoSessionHandler class is deprecated since version 2.6 and will be removed in 3.0. Use the Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler class instead.', E_USER_DEPRECATED);
-
-/**
- * Session handler using a PDO connection to read and write data.
- *
- * Session data is a binary string that can contain non-printable characters like the null byte.
- * For this reason this handler base64 encodes the data to be able to save it in a character column.
- *
- * This version of the PdoSessionHandler does NOT implement locking. So concurrent requests to the
- * same session can result in data loss due to race conditions.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Michael Williams <michael.williams@funsational.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @deprecated since version 2.6, to be removed in 3.0. Use
- *             {@link PdoSessionHandler} instead.
- */
-class LegacyPdoSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * @var \PDO PDO instance
-     */
-    private $pdo;
-
-    /**
-     * @var string Table name
-     */
-    private $table;
-
-    /**
-     * @var string Column for session id
-     */
-    private $idCol;
-
-    /**
-     * @var string Column for session data
-     */
-    private $dataCol;
-
-    /**
-     * @var string Column for timestamp
-     */
-    private $timeCol;
-
-    /**
-     * Constructor.
-     *
-     * List of available options:
-     *  * db_table: The name of the table [required]
-     *  * db_id_col: The column where to store the session id [default: sess_id]
-     *  * db_data_col: The column where to store the session data [default: sess_data]
-     *  * db_time_col: The column where to store the timestamp [default: sess_time]
-     *
-     * @param \PDO  $pdo       A \PDO instance
-     * @param array $dbOptions An associative array of DB options
-     *
-     * @throws \InvalidArgumentException When "db_table" option is not provided
-     */
-    public function __construct(\PDO $pdo, array $dbOptions = array())
-    {
-        if (!array_key_exists('db_table', $dbOptions)) {
-            throw new \InvalidArgumentException('You must provide the "db_table" option for a PdoSessionStorage.');
-        }
-        if (\PDO::ERRMODE_EXCEPTION !== $pdo->getAttribute(\PDO::ATTR_ERRMODE)) {
-            throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION))', __CLASS__));
-        }
-
-        $this->pdo = $pdo;
-        $dbOptions = array_merge(array(
-            'db_id_col' => 'sess_id',
-            'db_data_col' => 'sess_data',
-            'db_time_col' => 'sess_time',
-        ), $dbOptions);
-
-        $this->table = $dbOptions['db_table'];
-        $this->idCol = $dbOptions['db_id_col'];
-        $this->dataCol = $dbOptions['db_data_col'];
-        $this->timeCol = $dbOptions['db_time_col'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        // delete the record associated with this id
-        $sql = "DELETE FROM $this->table WHERE $this->idCol = :id";
-
-        try {
-            $stmt = $this->pdo->prepare($sql);
-            $stmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-            $stmt->execute();
-        } catch (\PDOException $e) {
-            throw new \RuntimeException(sprintf('PDOException was thrown when trying to delete a session: %s', $e->getMessage()), 0, $e);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        // delete the session records that have expired
-        $sql = "DELETE FROM $this->table WHERE $this->timeCol < :time";
-
-        try {
-            $stmt = $this->pdo->prepare($sql);
-            $stmt->bindValue(':time', time() - $maxlifetime, \PDO::PARAM_INT);
-            $stmt->execute();
-        } catch (\PDOException $e) {
-            throw new \RuntimeException(sprintf('PDOException was thrown when trying to delete expired sessions: %s', $e->getMessage()), 0, $e);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        $sql = "SELECT $this->dataCol FROM $this->table WHERE $this->idCol = :id";
-
-        try {
-            $stmt = $this->pdo->prepare($sql);
-            $stmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-            $stmt->execute();
-
-            // We use fetchAll instead of fetchColumn to make sure the DB cursor gets closed
-            $sessionRows = $stmt->fetchAll(\PDO::FETCH_NUM);
-
-            if ($sessionRows) {
-                return base64_decode($sessionRows[0][0]);
-            }
-
-            return '';
-        } catch (\PDOException $e) {
-            throw new \RuntimeException(sprintf('PDOException was thrown when trying to read the session data: %s', $e->getMessage()), 0, $e);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        $encoded = base64_encode($data);
-
-        try {
-            // We use a single MERGE SQL query when supported by the database.
-            $mergeSql = $this->getMergeSql();
-
-            if (null !== $mergeSql) {
-                $mergeStmt = $this->pdo->prepare($mergeSql);
-                $mergeStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-                $mergeStmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
-                $mergeStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-                $mergeStmt->execute();
-
-                return true;
-            }
-
-            $updateStmt = $this->pdo->prepare(
-                "UPDATE $this->table SET $this->dataCol = :data, $this->timeCol = :time WHERE $this->idCol = :id"
-            );
-            $updateStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-            $updateStmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
-            $updateStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-            $updateStmt->execute();
-
-            // When MERGE is not supported, like in Postgres, we have to use this approach that can result in
-            // duplicate key errors when the same session is written simultaneously. We can just catch such an
-            // error and re-execute the update. This is similar to a serializable transaction with retry logic
-            // on serialization failures but without the overhead and without possible false positives due to
-            // longer gap locking.
-            if (!$updateStmt->rowCount()) {
-                try {
-                    $insertStmt = $this->pdo->prepare(
-                        "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time)"
-                    );
-                    $insertStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-                    $insertStmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
-                    $insertStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-                    $insertStmt->execute();
-                } catch (\PDOException $e) {
-                    // Handle integrity violation SQLSTATE 23000 (or a subclass like 23505 in Postgres) for duplicate keys
-                    if (0 === strpos($e->getCode(), '23')) {
-                        $updateStmt->execute();
-                    } else {
-                        throw $e;
-                    }
-                }
-            }
-        } catch (\PDOException $e) {
-            throw new \RuntimeException(sprintf('PDOException was thrown when trying to write the session data: %s', $e->getMessage()), 0, $e);
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns a merge/upsert (i.e. insert or update) SQL query when supported by the database.
-     *
-     * @return string|null The SQL string or null when not supported
-     */
-    private function getMergeSql()
-    {
-        $driver = $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME);
-
-        switch ($driver) {
-            case 'mysql':
-                return "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) ".
-                "ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->timeCol = VALUES($this->timeCol)";
-            case 'oci':
-                // DUAL is Oracle specific dummy table
-                return "MERGE INTO $this->table USING DUAL ON ($this->idCol = :id) ".
-                "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) ".
-                "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->timeCol = :time";
-            case 'sqlsrv' === $driver && version_compare($this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), '10', '>='):
-                // MERGE is only available since SQL Server 2008 and must be terminated by semicolon
-                // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx
-                return "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = :id) ".
-                "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) ".
-                "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->timeCol = :time;";
-            case 'sqlite':
-                return "INSERT OR REPLACE INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time)";
-        }
-    }
-
-    /**
-     * Return a PDO instance
-     *
-     * @return \PDO
-     */
-    protected function getConnection()
-    {
-        return $this->pdo;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php
deleted file mode 100644
index 183093f..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/MemcacheSessionHandler.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * MemcacheSessionHandler.
- *
- * @author Drak <drak@zikula.org>
- */
-class MemcacheSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * @var \Memcache Memcache driver.
-     */
-    private $memcache;
-
-    /**
-     * @var int Time to live in seconds
-     */
-    private $ttl;
-
-    /**
-     * @var string Key prefix for shared environments.
-     */
-    private $prefix;
-
-    /**
-     * Constructor.
-     *
-     * List of available options:
-     *  * prefix: The prefix to use for the memcache keys in order to avoid collision
-     *  * expiretime: The time to live in seconds
-     *
-     * @param \Memcache $memcache A \Memcache instance
-     * @param array     $options  An associative array of Memcache options
-     *
-     * @throws \InvalidArgumentException When unsupported options are passed
-     */
-    public function __construct(\Memcache $memcache, array $options = array())
-    {
-        if ($diff = array_diff(array_keys($options), array('prefix', 'expiretime'))) {
-            throw new \InvalidArgumentException(sprintf(
-                'The following options are not supported "%s"', implode(', ', $diff)
-            ));
-        }
-
-        $this->memcache = $memcache;
-        $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400;
-        $this->prefix = isset($options['prefix']) ? $options['prefix'] : 'sf2s';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return $this->memcache->close();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        return $this->memcache->get($this->prefix.$sessionId) ?: '';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        return $this->memcache->set($this->prefix.$sessionId, $data, 0, time() + $this->ttl);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return $this->memcache->delete($this->prefix.$sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        // not required here because memcache will auto expire the records anyhow.
-        return true;
-    }
-
-    /**
-     * Return a Memcache instance
-     *
-     * @return \Memcache
-     */
-    protected function getMemcache()
-    {
-        return $this->memcache;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
deleted file mode 100644
index 1f9d97e..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * MemcachedSessionHandler.
- *
- * Memcached based session storage handler based on the Memcached class
- * provided by the PHP memcached extension.
- *
- * @see http://php.net/memcached
- *
- * @author Drak <drak@zikula.org>
- */
-class MemcachedSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * @var \Memcached Memcached driver.
-     */
-    private $memcached;
-
-    /**
-     * @var int Time to live in seconds
-     */
-    private $ttl;
-
-    /**
-     * @var string Key prefix for shared environments.
-     */
-    private $prefix;
-
-    /**
-     * Constructor.
-     *
-     * List of available options:
-     *  * prefix: The prefix to use for the memcached keys in order to avoid collision
-     *  * expiretime: The time to live in seconds
-     *
-     * @param \Memcached $memcached A \Memcached instance
-     * @param array      $options   An associative array of Memcached options
-     *
-     * @throws \InvalidArgumentException When unsupported options are passed
-     */
-    public function __construct(\Memcached $memcached, array $options = array())
-    {
-        $this->memcached = $memcached;
-
-        if ($diff = array_diff(array_keys($options), array('prefix', 'expiretime'))) {
-            throw new \InvalidArgumentException(sprintf(
-                'The following options are not supported "%s"', implode(', ', $diff)
-            ));
-        }
-
-        $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400;
-        $this->prefix = isset($options['prefix']) ? $options['prefix'] : 'sf2s';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        return $this->memcached->get($this->prefix.$sessionId) ?: '';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        return $this->memcached->set($this->prefix.$sessionId, $data, time() + $this->ttl);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return $this->memcached->delete($this->prefix.$sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        // not required here because memcached will auto expire the records anyhow.
-        return true;
-    }
-
-    /**
-     * Return a Memcached instance
-     *
-     * @return \Memcached
-     */
-    protected function getMemcached()
-    {
-        return $this->memcached;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
deleted file mode 100644
index fa4ecfb..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * MongoDB session handler.
- *
- * @author Markus Bachmann <markus.bachmann@bachi.biz>
- */
-class MongoDbSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * @var \Mongo
-     */
-    private $mongo;
-
-    /**
-     * @var \MongoCollection
-     */
-    private $collection;
-
-    /**
-     * @var array
-     */
-    private $options;
-
-    /**
-     * Constructor.
-     *
-     * List of available options:
-     *  * database: The name of the database [required]
-     *  * collection: The name of the collection [required]
-     *  * id_field: The field name for storing the session id [default: _id]
-     *  * data_field: The field name for storing the session data [default: data]
-     *  * time_field: The field name for storing the timestamp [default: time]
-     *  * expiry_field: The field name for storing the expiry-timestamp [default: expires_at]
-     *
-     * It is strongly recommended to put an index on the `expiry_field` for
-     * garbage-collection. Alternatively it's possible to automatically expire
-     * the sessions in the database as described below:
-     *
-     * A TTL collections can be used on MongoDB 2.2+ to cleanup expired sessions
-     * automatically. Such an index can for example look like this:
-     *
-     *     db.<session-collection>.ensureIndex(
-     *         { "<expiry-field>": 1 },
-     *         { "expireAfterSeconds": 0 }
-     *     )
-     *
-     * More details on: http://docs.mongodb.org/manual/tutorial/expire-data/
-     *
-     * If you use such an index, you can drop `gc_probability` to 0 since
-     * no garbage-collection is required.
-     *
-     * @param \Mongo|\MongoClient $mongo   A MongoClient or Mongo instance
-     * @param array               $options An associative array of field options
-     *
-     * @throws \InvalidArgumentException When MongoClient or Mongo instance not provided
-     * @throws \InvalidArgumentException When "database" or "collection" not provided
-     */
-    public function __construct($mongo, array $options)
-    {
-        if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo)) {
-            throw new \InvalidArgumentException('MongoClient or Mongo instance required');
-        }
-
-        if (!isset($options['database']) || !isset($options['collection'])) {
-            throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler');
-        }
-
-        $this->mongo = $mongo;
-
-        $this->options = array_merge(array(
-            'id_field' => '_id',
-            'data_field' => 'data',
-            'time_field' => 'time',
-            'expiry_field' => 'expires_at',
-        ), $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        $this->getCollection()->remove(array(
-            $this->options['id_field'] => $sessionId,
-        ));
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        $this->getCollection()->remove(array(
-            $this->options['expiry_field'] => array('$lt' => new \MongoDate()),
-        ));
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        $expiry = new \MongoDate(time() + (int) ini_get('session.gc_maxlifetime'));
-
-        $fields = array(
-            $this->options['data_field'] => new \MongoBinData($data, \MongoBinData::BYTE_ARRAY),
-            $this->options['time_field'] => new \MongoDate(),
-            $this->options['expiry_field'] => $expiry,
-        );
-
-        $this->getCollection()->update(
-            array($this->options['id_field'] => $sessionId),
-            array('$set' => $fields),
-            array('upsert' => true, 'multiple' => false)
-        );
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        $dbData = $this->getCollection()->findOne(array(
-            $this->options['id_field'] => $sessionId,
-            $this->options['expiry_field'] => array('$gte' => new \MongoDate()),
-        ));
-
-        return null === $dbData ? '' : $dbData[$this->options['data_field']]->bin;
-    }
-
-    /**
-     * Return a "MongoCollection" instance.
-     *
-     * @return \MongoCollection
-     */
-    private function getCollection()
-    {
-        if (null === $this->collection) {
-            $this->collection = $this->mongo->selectCollection($this->options['database'], $this->options['collection']);
-        }
-
-        return $this->collection;
-    }
-
-    /**
-     * Return a Mongo instance
-     *
-     * @return \Mongo
-     */
-    protected function getMongo()
-    {
-        return $this->mongo;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
deleted file mode 100644
index f39235c..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * NativeFileSessionHandler.
- *
- * Native session handler using PHP's built in file storage.
- *
- * @author Drak <drak@zikula.org>
- */
-class NativeFileSessionHandler extends NativeSessionHandler
-{
-    /**
-     * Constructor.
-     *
-     * @param string $savePath Path of directory to save session files.
-     *                         Default null will leave setting as defined by PHP.
-     *                         '/path', 'N;/path', or 'N;octal-mode;/path
-     *
-     * @see http://php.net/session.configuration.php#ini.session.save-path for further details.
-     *
-     * @throws \InvalidArgumentException On invalid $savePath
-     */
-    public function __construct($savePath = null)
-    {
-        if (null === $savePath) {
-            $savePath = ini_get('session.save_path');
-        }
-
-        $baseDir = $savePath;
-
-        if ($count = substr_count($savePath, ';')) {
-            if ($count > 2) {
-                throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath));
-            }
-
-            // characters after last ';' are the path
-            $baseDir = ltrim(strrchr($savePath, ';'), ';');
-        }
-
-        if ($baseDir && !is_dir($baseDir)) {
-            mkdir($baseDir, 0777, true);
-        }
-
-        ini_set('session.save_path', $savePath);
-        ini_set('session.save_handler', 'files');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php
deleted file mode 100644
index 95d5cdb..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/NativeSessionHandler.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-// Adds SessionHandler functionality if available.
-// @see http://php.net/sessionhandler
-if (PHP_VERSION_ID >= 50400) {
-    class NativeSessionHandler extends \SessionHandler
-    {
-    }
-} else {
-    class NativeSessionHandler
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php
deleted file mode 100644
index d88ce89..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * NullSessionHandler.
- *
- * Can be used in unit testing or in a situations where persisted sessions are not desired.
- *
- * @author Drak <drak@zikula.org>
- *
- * @api
- */
-class NullSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        return '';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
deleted file mode 100644
index 48e81ee..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
+++ /dev/null
@@ -1,695 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * Session handler using a PDO connection to read and write data.
- *
- * It works with MySQL, PostgreSQL, Oracle, SQL Server and SQLite and implements
- * different locking strategies to handle concurrent access to the same session.
- * Locking is necessary to prevent loss of data due to race conditions and to keep
- * the session data consistent between read() and write(). With locking, requests
- * for the same session will wait until the other one finished writing. For this
- * reason it's best practice to close a session as early as possible to improve
- * concurrency. PHPs internal files session handler also implements locking.
- *
- * Attention: Since SQLite does not support row level locks but locks the whole database,
- * it means only one session can be accessed at a time. Even different sessions would wait
- * for another to finish. So saving session in SQLite should only be considered for
- * development or prototypes.
- *
- * Session data is a binary string that can contain non-printable characters like the null byte.
- * For this reason it must be saved in a binary column in the database like BLOB in MySQL.
- * Saving it in a character column could corrupt the data. You can use createTable()
- * to initialize a correctly defined table.
- *
- * @see http://php.net/sessionhandlerinterface
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Michael Williams <michael.williams@funsational.com>
- * @author Tobias Schultze <http://tobion.de>
- */
-class PdoSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * No locking is done. This means sessions are prone to loss of data due to
-     * race conditions of concurrent requests to the same session. The last session
-     * write will win in this case. It might be useful when you implement your own
-     * logic to deal with this like an optimistic approach.
-     */
-    const LOCK_NONE = 0;
-
-    /**
-     * Creates an application-level lock on a session. The disadvantage is that the
-     * lock is not enforced by the database and thus other, unaware parts of the
-     * application could still concurrently modify the session. The advantage is it
-     * does not require a transaction.
-     * This mode is not available for SQLite and not yet implemented for oci and sqlsrv.
-     */
-    const LOCK_ADVISORY = 1;
-
-    /**
-     * Issues a real row lock. Since it uses a transaction between opening and
-     * closing a session, you have to be careful when you use same database connection
-     * that you also use for your application logic. This mode is the default because
-     * it's the only reliable solution across DBMSs.
-     */
-    const LOCK_TRANSACTIONAL = 2;
-
-    /**
-     * @var \PDO|null PDO instance or null when not connected yet
-     */
-    private $pdo;
-
-    /**
-     * @var string|null|false DSN string or null for session.save_path or false when lazy connection disabled
-     */
-    private $dsn = false;
-
-    /**
-     * @var string Database driver
-     */
-    private $driver;
-
-    /**
-     * @var string Table name
-     */
-    private $table = 'sessions';
-
-    /**
-     * @var string Column for session id
-     */
-    private $idCol = 'sess_id';
-
-    /**
-     * @var string Column for session data
-     */
-    private $dataCol = 'sess_data';
-
-    /**
-     * @var string Column for lifetime
-     */
-    private $lifetimeCol = 'sess_lifetime';
-
-    /**
-     * @var string Column for timestamp
-     */
-    private $timeCol = 'sess_time';
-
-    /**
-     * @var string Username when lazy-connect
-     */
-    private $username = '';
-
-    /**
-     * @var string Password when lazy-connect
-     */
-    private $password = '';
-
-    /**
-     * @var array Connection options when lazy-connect
-     */
-    private $connectionOptions = array();
-
-    /**
-     * @var int The strategy for locking, see constants
-     */
-    private $lockMode = self::LOCK_TRANSACTIONAL;
-
-    /**
-     * It's an array to support multiple reads before closing which is manual, non-standard usage.
-     *
-     * @var \PDOStatement[] An array of statements to release advisory locks
-     */
-    private $unlockStatements = array();
-
-    /**
-     * @var bool True when the current session exists but expired according to session.gc_maxlifetime
-     */
-    private $sessionExpired = false;
-
-    /**
-     * @var bool Whether a transaction is active
-     */
-    private $inTransaction = false;
-
-    /**
-     * @var bool Whether gc() has been called
-     */
-    private $gcCalled = false;
-
-    /**
-     * Constructor.
-     *
-     * You can either pass an existing database connection as PDO instance or
-     * pass a DSN string that will be used to lazy-connect to the database
-     * when the session is actually used. Furthermore it's possible to pass null
-     * which will then use the session.save_path ini setting as PDO DSN parameter.
-     *
-     * List of available options:
-     *  * db_table: The name of the table [default: sessions]
-     *  * db_id_col: The column where to store the session id [default: sess_id]
-     *  * db_data_col: The column where to store the session data [default: sess_data]
-     *  * db_lifetime_col: The column where to store the lifetime [default: sess_lifetime]
-     *  * db_time_col: The column where to store the timestamp [default: sess_time]
-     *  * db_username: The username when lazy-connect [default: '']
-     *  * db_password: The password when lazy-connect [default: '']
-     *  * db_connection_options: An array of driver-specific connection options [default: array()]
-     *  * lock_mode: The strategy for locking, see constants [default: LOCK_TRANSACTIONAL]
-     *
-     * @param \PDO|string|null $pdoOrDsn A \PDO instance or DSN string or null
-     * @param array            $options  An associative array of options
-     *
-     * @throws \InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION
-     */
-    public function __construct($pdoOrDsn = null, array $options = array())
-    {
-        if ($pdoOrDsn instanceof \PDO) {
-            if (\PDO::ERRMODE_EXCEPTION !== $pdoOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
-                throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION))', __CLASS__));
-            }
-
-            $this->pdo = $pdoOrDsn;
-            $this->driver = $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME);
-        } else {
-            $this->dsn = $pdoOrDsn;
-        }
-
-        $this->table = isset($options['db_table']) ? $options['db_table'] : $this->table;
-        $this->idCol = isset($options['db_id_col']) ? $options['db_id_col'] : $this->idCol;
-        $this->dataCol = isset($options['db_data_col']) ? $options['db_data_col'] : $this->dataCol;
-        $this->lifetimeCol = isset($options['db_lifetime_col']) ? $options['db_lifetime_col'] : $this->lifetimeCol;
-        $this->timeCol = isset($options['db_time_col']) ? $options['db_time_col'] : $this->timeCol;
-        $this->username = isset($options['db_username']) ? $options['db_username'] : $this->username;
-        $this->password = isset($options['db_password']) ? $options['db_password'] : $this->password;
-        $this->connectionOptions = isset($options['db_connection_options']) ? $options['db_connection_options'] : $this->connectionOptions;
-        $this->lockMode = isset($options['lock_mode']) ? $options['lock_mode'] : $this->lockMode;
-    }
-
-    /**
-     * Creates the table to store sessions which can be called once for setup.
-     *
-     * Session ID is saved in a column of maximum length 128 because that is enough even
-     * for a 512 bit configured session.hash_function like Whirlpool. Session data is
-     * saved in a BLOB. One could also use a shorter inlined varbinary column
-     * if one was sure the data fits into it.
-     *
-     * @throws \PDOException    When the table already exists
-     * @throws \DomainException When an unsupported PDO driver is used
-     */
-    public function createTable()
-    {
-        // connect if we are not yet
-        $this->getConnection();
-
-        switch ($this->driver) {
-            case 'mysql':
-                // We use varbinary for the ID column because it prevents unwanted conversions:
-                // - character set conversions between server and client
-                // - trailing space removal
-                // - case-insensitivity
-                // - language processing like é == e
-                $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol MEDIUMINT NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8_bin, ENGINE = InnoDB";
-                break;
-            case 'sqlite':
-                $sql = "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)";
-                break;
-            case 'pgsql':
-                $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)";
-                break;
-            case 'oci':
-                $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR2(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)";
-                break;
-            case 'sqlsrv':
-                $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)";
-                break;
-            default:
-                throw new \DomainException(sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver));
-        }
-
-        try {
-            $this->pdo->exec($sql);
-        } catch (\PDOException $e) {
-            $this->rollback();
-
-            throw $e;
-        }
-    }
-
-    /**
-     * Returns true when the current session exists but expired according to session.gc_maxlifetime.
-     *
-     * Can be used to distinguish between a new session and one that expired due to inactivity.
-     *
-     * @return bool Whether current session expired
-     */
-    public function isSessionExpired()
-    {
-        return $this->sessionExpired;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        if (null === $this->pdo) {
-            $this->connect($this->dsn ?: $savePath);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        try {
-            return $this->doRead($sessionId);
-        } catch (\PDOException $e) {
-            $this->rollback();
-
-            throw $e;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        // We delay gc() to close() so that it is executed outside the transactional and blocking read-write process.
-        // This way, pruning expired sessions does not block them from being started while the current session is used.
-        $this->gcCalled = true;
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        // delete the record associated with this id
-        $sql = "DELETE FROM $this->table WHERE $this->idCol = :id";
-
-        try {
-            $stmt = $this->pdo->prepare($sql);
-            $stmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-            $stmt->execute();
-        } catch (\PDOException $e) {
-            $this->rollback();
-
-            throw $e;
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        $maxlifetime = (int) ini_get('session.gc_maxlifetime');
-
-        try {
-            // We use a single MERGE SQL query when supported by the database.
-            $mergeSql = $this->getMergeSql();
-
-            if (null !== $mergeSql) {
-                $mergeStmt = $this->pdo->prepare($mergeSql);
-                $mergeStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-                $mergeStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
-                $mergeStmt->bindParam(':lifetime', $maxlifetime, \PDO::PARAM_INT);
-                $mergeStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-                $mergeStmt->execute();
-
-                return true;
-            }
-
-            $updateStmt = $this->pdo->prepare(
-                "UPDATE $this->table SET $this->dataCol = :data, $this->lifetimeCol = :lifetime, $this->timeCol = :time WHERE $this->idCol = :id"
-            );
-            $updateStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-            $updateStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
-            $updateStmt->bindParam(':lifetime', $maxlifetime, \PDO::PARAM_INT);
-            $updateStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-            $updateStmt->execute();
-
-            // When MERGE is not supported, like in Postgres, we have to use this approach that can result in
-            // duplicate key errors when the same session is written simultaneously (given the LOCK_NONE behavior).
-            // We can just catch such an error and re-execute the update. This is similar to a serializable
-            // transaction with retry logic on serialization failures but without the overhead and without possible
-            // false positives due to longer gap locking.
-            if (!$updateStmt->rowCount()) {
-                try {
-                    $insertStmt = $this->pdo->prepare(
-                        "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time)"
-                    );
-                    $insertStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-                    $insertStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
-                    $insertStmt->bindParam(':lifetime', $maxlifetime, \PDO::PARAM_INT);
-                    $insertStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-                    $insertStmt->execute();
-                } catch (\PDOException $e) {
-                    // Handle integrity violation SQLSTATE 23000 (or a subclass like 23505 in Postgres) for duplicate keys
-                    if (0 === strpos($e->getCode(), '23')) {
-                        $updateStmt->execute();
-                    } else {
-                        throw $e;
-                    }
-                }
-            }
-        } catch (\PDOException $e) {
-            $this->rollback();
-
-            throw $e;
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        $this->commit();
-
-        while ($unlockStmt = array_shift($this->unlockStatements)) {
-            $unlockStmt->execute();
-        }
-
-        if ($this->gcCalled) {
-            $this->gcCalled = false;
-
-            // delete the session records that have expired
-            $sql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol < :time";
-
-            $stmt = $this->pdo->prepare($sql);
-            $stmt->bindValue(':time', time(), \PDO::PARAM_INT);
-            $stmt->execute();
-        }
-
-        if (false !== $this->dsn) {
-            $this->pdo = null; // only close lazy-connection
-        }
-
-        return true;
-    }
-
-    /**
-     * Lazy-connects to the database.
-     *
-     * @param string $dsn DSN string
-     */
-    private function connect($dsn)
-    {
-        $this->pdo = new \PDO($dsn, $this->username, $this->password, $this->connectionOptions);
-        $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
-        $this->driver = $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME);
-    }
-
-    /**
-     * Helper method to begin a transaction.
-     *
-     * Since SQLite does not support row level locks, we have to acquire a reserved lock
-     * on the database immediately. Because of https://bugs.php.net/42766 we have to create
-     * such a transaction manually which also means we cannot use PDO::commit or
-     * PDO::rollback or PDO::inTransaction for SQLite.
-     *
-     * Also MySQLs default isolation, REPEATABLE READ, causes deadlock for different sessions
-     * due to http://www.mysqlperformanceblog.com/2013/12/12/one-more-innodb-gap-lock-to-avoid/ .
-     * So we change it to READ COMMITTED.
-     */
-    private function beginTransaction()
-    {
-        if (!$this->inTransaction) {
-            if ('sqlite' === $this->driver) {
-                $this->pdo->exec('BEGIN IMMEDIATE TRANSACTION');
-            } else {
-                if ('mysql' === $this->driver) {
-                    $this->pdo->exec('SET TRANSACTION ISOLATION LEVEL READ COMMITTED');
-                }
-                $this->pdo->beginTransaction();
-            }
-            $this->inTransaction = true;
-        }
-    }
-
-    /**
-     * Helper method to commit a transaction.
-     */
-    private function commit()
-    {
-        if ($this->inTransaction) {
-            try {
-                // commit read-write transaction which also releases the lock
-                if ('sqlite' === $this->driver) {
-                    $this->pdo->exec('COMMIT');
-                } else {
-                    $this->pdo->commit();
-                }
-                $this->inTransaction = false;
-            } catch (\PDOException $e) {
-                $this->rollback();
-
-                throw $e;
-            }
-        }
-    }
-
-    /**
-     * Helper method to rollback a transaction.
-     */
-    private function rollback()
-    {
-        // We only need to rollback if we are in a transaction. Otherwise the resulting
-        // error would hide the real problem why rollback was called. We might not be
-        // in a transaction when not using the transactional locking behavior or when
-        // two callbacks (e.g. destroy and write) are invoked that both fail.
-        if ($this->inTransaction) {
-            if ('sqlite' === $this->driver) {
-                $this->pdo->exec('ROLLBACK');
-            } else {
-                $this->pdo->rollBack();
-            }
-            $this->inTransaction = false;
-        }
-    }
-
-    /**
-     * Reads the session data in respect to the different locking strategies.
-     *
-     * We need to make sure we do not return session data that is already considered garbage according
-     * to the session.gc_maxlifetime setting because gc() is called after read() and only sometimes.
-     *
-     * @param string $sessionId Session ID
-     *
-     * @return string The session data
-     */
-    private function doRead($sessionId)
-    {
-        $this->sessionExpired = false;
-
-        if (self::LOCK_ADVISORY === $this->lockMode) {
-            $this->unlockStatements[] = $this->doAdvisoryLock($sessionId);
-        }
-
-        $selectSql = $this->getSelectSql();
-        $selectStmt = $this->pdo->prepare($selectSql);
-        $selectStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-        $selectStmt->execute();
-
-        $sessionRows = $selectStmt->fetchAll(\PDO::FETCH_NUM);
-
-        if ($sessionRows) {
-            if ($sessionRows[0][1] + $sessionRows[0][2] < time()) {
-                $this->sessionExpired = true;
-
-                return '';
-            }
-
-            return is_resource($sessionRows[0][0]) ? stream_get_contents($sessionRows[0][0]) : $sessionRows[0][0];
-        }
-
-        if (self::LOCK_TRANSACTIONAL === $this->lockMode && 'sqlite' !== $this->driver) {
-            // Exclusive-reading of non-existent rows does not block, so we need to do an insert to block
-            // until other connections to the session are committed.
-            try {
-                $insertStmt = $this->pdo->prepare(
-                    "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time)"
-                );
-                $insertStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
-                $insertStmt->bindValue(':data', '', \PDO::PARAM_LOB);
-                $insertStmt->bindValue(':lifetime', 0, \PDO::PARAM_INT);
-                $insertStmt->bindValue(':time', time(), \PDO::PARAM_INT);
-                $insertStmt->execute();
-            } catch (\PDOException $e) {
-                // Catch duplicate key error because other connection created the session already.
-                // It would only not be the case when the other connection destroyed the session.
-                if (0 === strpos($e->getCode(), '23')) {
-                    // Retrieve finished session data written by concurrent connection. SELECT
-                    // FOR UPDATE is necessary to avoid deadlock of connection that starts reading
-                    // before we write (transform intention to real lock).
-                    $selectStmt->execute();
-                    $sessionRows = $selectStmt->fetchAll(\PDO::FETCH_NUM);
-
-                    if ($sessionRows) {
-                        return is_resource($sessionRows[0][0]) ? stream_get_contents($sessionRows[0][0]) : $sessionRows[0][0];
-                    }
-
-                    return '';
-                }
-
-                throw $e;
-            }
-        }
-
-        return '';
-    }
-
-    /**
-     * Executes an application-level lock on the database.
-     *
-     * @param string $sessionId Session ID
-     *
-     * @return \PDOStatement The statement that needs to be executed later to release the lock
-     *
-     * @throws \DomainException When an unsupported PDO driver is used
-     *
-     * @todo implement missing advisory locks
-     *       - for oci using DBMS_LOCK.REQUEST
-     *       - for sqlsrv using sp_getapplock with LockOwner = Session
-     */
-    private function doAdvisoryLock($sessionId)
-    {
-        switch ($this->driver) {
-            case 'mysql':
-                // should we handle the return value? 0 on timeout, null on error
-                // we use a timeout of 50 seconds which is also the default for innodb_lock_wait_timeout
-                $stmt = $this->pdo->prepare('SELECT GET_LOCK(:key, 50)');
-                $stmt->bindValue(':key', $sessionId, \PDO::PARAM_STR);
-                $stmt->execute();
-
-                $releaseStmt = $this->pdo->prepare('DO RELEASE_LOCK(:key)');
-                $releaseStmt->bindValue(':key', $sessionId, \PDO::PARAM_STR);
-
-                return $releaseStmt;
-            case 'pgsql':
-                // Obtaining an exclusive session level advisory lock requires an integer key.
-                // So we convert the HEX representation of the session id to an integer.
-                // Since integers are signed, we have to skip one hex char to fit in the range.
-                if (4 === PHP_INT_SIZE) {
-                    $sessionInt1 = hexdec(substr($sessionId, 0, 7));
-                    $sessionInt2 = hexdec(substr($sessionId, 7, 7));
-
-                    $stmt = $this->pdo->prepare('SELECT pg_advisory_lock(:key1, :key2)');
-                    $stmt->bindValue(':key1', $sessionInt1, \PDO::PARAM_INT);
-                    $stmt->bindValue(':key2', $sessionInt2, \PDO::PARAM_INT);
-                    $stmt->execute();
-
-                    $releaseStmt = $this->pdo->prepare('SELECT pg_advisory_unlock(:key1, :key2)');
-                    $releaseStmt->bindValue(':key1', $sessionInt1, \PDO::PARAM_INT);
-                    $releaseStmt->bindValue(':key2', $sessionInt2, \PDO::PARAM_INT);
-                } else {
-                    $sessionBigInt = hexdec(substr($sessionId, 0, 15));
-
-                    $stmt = $this->pdo->prepare('SELECT pg_advisory_lock(:key)');
-                    $stmt->bindValue(':key', $sessionBigInt, \PDO::PARAM_INT);
-                    $stmt->execute();
-
-                    $releaseStmt = $this->pdo->prepare('SELECT pg_advisory_unlock(:key)');
-                    $releaseStmt->bindValue(':key', $sessionBigInt, \PDO::PARAM_INT);
-                }
-
-                return $releaseStmt;
-            case 'sqlite':
-                throw new \DomainException('SQLite does not support advisory locks.');
-            default:
-                throw new \DomainException(sprintf('Advisory locks are currently not implemented for PDO driver "%s".', $this->driver));
-        }
-    }
-
-    /**
-     * Return a locking or nonlocking SQL query to read session information.
-     *
-     * @return string The SQL string
-     *
-     * @throws \DomainException When an unsupported PDO driver is used
-     */
-    private function getSelectSql()
-    {
-        if (self::LOCK_TRANSACTIONAL === $this->lockMode) {
-            $this->beginTransaction();
-
-            switch ($this->driver) {
-                case 'mysql':
-                case 'oci':
-                case 'pgsql':
-                    return "SELECT $this->dataCol, $this->lifetimeCol, $this->timeCol FROM $this->table WHERE $this->idCol = :id FOR UPDATE";
-                case 'sqlsrv':
-                    return "SELECT $this->dataCol, $this->lifetimeCol, $this->timeCol FROM $this->table WITH (UPDLOCK, ROWLOCK) WHERE $this->idCol = :id";
-                case 'sqlite':
-                    // we already locked when starting transaction
-                    break;
-                default:
-                    throw new \DomainException(sprintf('Transactional locks are currently not implemented for PDO driver "%s".', $this->driver));
-            }
-        }
-
-        return "SELECT $this->dataCol, $this->lifetimeCol, $this->timeCol FROM $this->table WHERE $this->idCol = :id";
-    }
-
-    /**
-     * Returns a merge/upsert (i.e. insert or update) SQL query when supported by the database for writing session data.
-     *
-     * @return string|null The SQL string or null when not supported
-     */
-    private function getMergeSql()
-    {
-        switch ($this->driver) {
-            case 'mysql':
-                return "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time) ".
-                    "ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->lifetimeCol = VALUES($this->lifetimeCol), $this->timeCol = VALUES($this->timeCol)";
-            case 'oci':
-                // DUAL is Oracle specific dummy table
-                return "MERGE INTO $this->table USING DUAL ON ($this->idCol = :id) ".
-                    "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time) ".
-                    "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->lifetimeCol = :lifetime, $this->timeCol = :time";
-            case 'sqlsrv' === $this->driver && version_compare($this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), '10', '>='):
-                // MERGE is only available since SQL Server 2008 and must be terminated by semicolon
-                // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx
-                return "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = :id) ".
-                    "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time) ".
-                    "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->lifetimeCol = :lifetime, $this->timeCol = :time;";
-            case 'sqlite':
-                return "INSERT OR REPLACE INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time)";
-        }
-    }
-
-    /**
-     * Return a PDO instance.
-     *
-     * @return \PDO
-     */
-    protected function getConnection()
-    {
-        if (null === $this->pdo) {
-            $this->connect($this->dsn ?: ini_get('session.save_path'));
-        }
-
-        return $this->pdo;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php b/core/vendor/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php
deleted file mode 100644
index d49c36c..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Handler/WriteCheckSessionHandler.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
-
-/**
- * Wraps another SessionHandlerInterface to only write the session when it has been modified.
- *
- * @author Adrien Brault <adrien.brault@gmail.com>
- */
-class WriteCheckSessionHandler implements \SessionHandlerInterface
-{
-    /**
-     * @var \SessionHandlerInterface
-     */
-    private $wrappedSessionHandler;
-
-    /**
-     * @var array sessionId => session
-     */
-    private $readSessions;
-
-    public function __construct(\SessionHandlerInterface $wrappedSessionHandler)
-    {
-        $this->wrappedSessionHandler = $wrappedSessionHandler;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        return $this->wrappedSessionHandler->close();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return $this->wrappedSessionHandler->destroy($sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        return $this->wrappedSessionHandler->gc($maxlifetime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        return $this->wrappedSessionHandler->open($savePath, $sessionName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        $session = $this->wrappedSessionHandler->read($sessionId);
-
-        $this->readSessions[$sessionId] = $session;
-
-        return $session;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        if (isset($this->readSessions[$sessionId]) && $data === $this->readSessions[$sessionId]) {
-            return true;
-        }
-
-        return $this->wrappedSessionHandler->write($sessionId, $data);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php b/core/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php
deleted file mode 100644
index ec7b267..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
-
-/**
- * Metadata container.
- *
- * Adds metadata to the session.
- *
- * @author Drak <drak@zikula.org>
- */
-class MetadataBag implements SessionBagInterface
-{
-    const CREATED = 'c';
-    const UPDATED = 'u';
-    const LIFETIME = 'l';
-
-    /**
-     * @var string
-     */
-    private $name = '__metadata';
-
-    /**
-     * @var string
-     */
-    private $storageKey;
-
-    /**
-     * @var array
-     */
-    protected $meta = array(self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0);
-
-    /**
-     * Unix timestamp.
-     *
-     * @var int
-     */
-    private $lastUsed;
-
-    /**
-     * @var int
-     */
-    private $updateThreshold;
-
-    /**
-     * Constructor.
-     *
-     * @param string $storageKey      The key used to store bag in the session.
-     * @param int    $updateThreshold The time to wait between two UPDATED updates
-     */
-    public function __construct($storageKey = '_sf2_meta', $updateThreshold = 0)
-    {
-        $this->storageKey = $storageKey;
-        $this->updateThreshold = $updateThreshold;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function initialize(array &$array)
-    {
-        $this->meta = &$array;
-
-        if (isset($array[self::CREATED])) {
-            $this->lastUsed = $this->meta[self::UPDATED];
-
-            $timeStamp = time();
-            if ($timeStamp - $array[self::UPDATED] >= $this->updateThreshold) {
-                $this->meta[self::UPDATED] = $timeStamp;
-            }
-        } else {
-            $this->stampCreated();
-        }
-    }
-
-    /**
-     * Gets the lifetime that the session cookie was set with.
-     *
-     * @return int
-     */
-    public function getLifetime()
-    {
-        return $this->meta[self::LIFETIME];
-    }
-
-    /**
-     * Stamps a new session's metadata.
-     *
-     * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
-     *                      will leave the system settings unchanged, 0 sets the cookie
-     *                      to expire with browser session. Time is in seconds, and is
-     *                      not a Unix timestamp.
-     */
-    public function stampNew($lifetime = null)
-    {
-        $this->stampCreated($lifetime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStorageKey()
-    {
-        return $this->storageKey;
-    }
-
-    /**
-     * Gets the created timestamp metadata.
-     *
-     * @return int Unix timestamp
-     */
-    public function getCreated()
-    {
-        return $this->meta[self::CREATED];
-    }
-
-    /**
-     * Gets the last used metadata.
-     *
-     * @return int Unix timestamp
-     */
-    public function getLastUsed()
-    {
-        return $this->lastUsed;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        // nothing to do
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Sets name.
-     *
-     * @param string $name
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    private function stampCreated($lifetime = null)
-    {
-        $timeStamp = time();
-        $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp;
-        $this->meta[self::LIFETIME] = (null === $lifetime) ? ini_get('session.cookie_lifetime') : $lifetime;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php b/core/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
deleted file mode 100644
index bc13737..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php
+++ /dev/null
@@ -1,268 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
-
-/**
- * MockArraySessionStorage mocks the session for unit tests.
- *
- * No PHP session is actually started since a session can be initialized
- * and shutdown only once per PHP execution cycle.
- *
- * When doing functional testing, you should use MockFileSessionStorage instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- * @author Drak <drak@zikula.org>
- */
-class MockArraySessionStorage implements SessionStorageInterface
-{
-    /**
-     * @var string
-     */
-    protected $id = '';
-
-    /**
-     * @var string
-     */
-    protected $name;
-
-    /**
-     * @var bool
-     */
-    protected $started = false;
-
-    /**
-     * @var bool
-     */
-    protected $closed = false;
-
-    /**
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * @var MetadataBag
-     */
-    protected $metadataBag;
-
-    /**
-     * @var array
-     */
-    protected $bags;
-
-    /**
-     * Constructor.
-     *
-     * @param string      $name    Session name
-     * @param MetadataBag $metaBag MetadataBag instance.
-     */
-    public function __construct($name = 'MOCKSESSID', MetadataBag $metaBag = null)
-    {
-        $this->name = $name;
-        $this->setMetadataBag($metaBag);
-    }
-
-    /**
-     * Sets the session data.
-     *
-     * @param array $array
-     */
-    public function setSessionData(array $array)
-    {
-        $this->data = $array;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        if ($this->started) {
-            return true;
-        }
-
-        if (empty($this->id)) {
-            $this->id = $this->generateId();
-        }
-
-        $this->loadSession();
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function regenerate($destroy = false, $lifetime = null)
-    {
-        if (!$this->started) {
-            $this->start();
-        }
-
-        $this->metadataBag->stampNew($lifetime);
-        $this->id = $this->generateId();
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getId()
-    {
-        return $this->id;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setId($id)
-    {
-        if ($this->started) {
-            throw new \LogicException('Cannot set session ID after the session has started.');
-        }
-
-        $this->id = $id;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function save()
-    {
-        if (!$this->started || $this->closed) {
-            throw new \RuntimeException('Trying to save a session that was not started yet or was already closed');
-        }
-        // nothing to do since we don't persist the session data
-        $this->closed = false;
-        $this->started = false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        // clear out the bags
-        foreach ($this->bags as $bag) {
-            $bag->clear();
-        }
-
-        // clear out the session
-        $this->data = array();
-
-        // reconnect the bags to the session
-        $this->loadSession();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function registerBag(SessionBagInterface $bag)
-    {
-        $this->bags[$bag->getName()] = $bag;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getBag($name)
-    {
-        if (!isset($this->bags[$name])) {
-            throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name));
-        }
-
-        if (!$this->started) {
-            $this->start();
-        }
-
-        return $this->bags[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isStarted()
-    {
-        return $this->started;
-    }
-
-    /**
-     * Sets the MetadataBag.
-     *
-     * @param MetadataBag $bag
-     */
-    public function setMetadataBag(MetadataBag $bag = null)
-    {
-        if (null === $bag) {
-            $bag = new MetadataBag();
-        }
-
-        $this->metadataBag = $bag;
-    }
-
-    /**
-     * Gets the MetadataBag.
-     *
-     * @return MetadataBag
-     */
-    public function getMetadataBag()
-    {
-        return $this->metadataBag;
-    }
-
-    /**
-     * Generates a session ID.
-     *
-     * This doesn't need to be particularly cryptographically secure since this is just
-     * a mock.
-     *
-     * @return string
-     */
-    protected function generateId()
-    {
-        return hash('sha256', uniqid('ss_mock_', true));
-    }
-
-    protected function loadSession()
-    {
-        $bags = array_merge($this->bags, array($this->metadataBag));
-
-        foreach ($bags as $bag) {
-            $key = $bag->getStorageKey();
-            $this->data[$key] = isset($this->data[$key]) ? $this->data[$key] : array();
-            $bag->initialize($this->data[$key]);
-        }
-
-        $this->started = true;
-        $this->closed = false;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php b/core/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php
deleted file mode 100644
index 1f4117b..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage;
-
-/**
- * MockFileSessionStorage is used to mock sessions for
- * functional testing when done in a single PHP process.
- *
- * No PHP session is actually started since a session can be initialized
- * and shutdown only once per PHP execution cycle and this class does
- * not pollute any session related globals, including session_*() functions
- * or session.* PHP ini directives.
- *
- * @author Drak <drak@zikula.org>
- */
-class MockFileSessionStorage extends MockArraySessionStorage
-{
-    /**
-     * @var string
-     */
-    private $savePath;
-
-    /**
-     * Constructor.
-     *
-     * @param string      $savePath Path of directory to save session files.
-     * @param string      $name     Session name.
-     * @param MetadataBag $metaBag  MetadataBag instance.
-     */
-    public function __construct($savePath = null, $name = 'MOCKSESSID', MetadataBag $metaBag = null)
-    {
-        if (null === $savePath) {
-            $savePath = sys_get_temp_dir();
-        }
-
-        if (!is_dir($savePath)) {
-            mkdir($savePath, 0777, true);
-        }
-
-        $this->savePath = $savePath;
-
-        parent::__construct($name, $metaBag);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        if ($this->started) {
-            return true;
-        }
-
-        if (!$this->id) {
-            $this->id = $this->generateId();
-        }
-
-        $this->read();
-
-        $this->started = true;
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function regenerate($destroy = false, $lifetime = null)
-    {
-        if (!$this->started) {
-            $this->start();
-        }
-
-        if ($destroy) {
-            $this->destroy();
-        }
-
-        return parent::regenerate($destroy, $lifetime);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function save()
-    {
-        if (!$this->started) {
-            throw new \RuntimeException('Trying to save a session that was not started yet or was already closed');
-        }
-
-        file_put_contents($this->getFilePath(), serialize($this->data));
-
-        // this is needed for Silex, where the session object is re-used across requests
-        // in functional tests. In Symfony, the container is rebooted, so we don't have
-        // this issue
-        $this->started = false;
-    }
-
-    /**
-     * Deletes a session from persistent storage.
-     * Deliberately leaves session data in memory intact.
-     */
-    private function destroy()
-    {
-        if (is_file($this->getFilePath())) {
-            unlink($this->getFilePath());
-        }
-    }
-
-    /**
-     * Calculate path to file.
-     *
-     * @return string File path
-     */
-    private function getFilePath()
-    {
-        return $this->savePath.'/'.$this->id.'.mocksess';
-    }
-
-    /**
-     * Reads session from storage and loads session.
-     */
-    private function read()
-    {
-        $filePath = $this->getFilePath();
-        $this->data = is_readable($filePath) && is_file($filePath) ? unserialize(file_get_contents($filePath)) : array();
-
-        $this->loadSession();
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php b/core/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
deleted file mode 100644
index db705db..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
+++ /dev/null
@@ -1,420 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy;
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
-
-/**
- * This provides a base class for session attribute storage.
- *
- * @author Drak <drak@zikula.org>
- */
-class NativeSessionStorage implements SessionStorageInterface
-{
-    /**
-     * Array of SessionBagInterface.
-     *
-     * @var SessionBagInterface[]
-     */
-    protected $bags;
-
-    /**
-     * @var bool
-     */
-    protected $started = false;
-
-    /**
-     * @var bool
-     */
-    protected $closed = false;
-
-    /**
-     * @var AbstractProxy
-     */
-    protected $saveHandler;
-
-    /**
-     * @var MetadataBag
-     */
-    protected $metadataBag;
-
-    /**
-     * Constructor.
-     *
-     * Depending on how you want the storage driver to behave you probably
-     * want to override this constructor entirely.
-     *
-     * List of options for $options array with their defaults.
-     *
-     * @see http://php.net/session.configuration for options
-     * but we omit 'session.' from the beginning of the keys for convenience.
-     *
-     * ("auto_start", is not supported as it tells PHP to start a session before
-     * PHP starts to execute user-land code. Setting during runtime has no effect).
-     *
-     * cache_limiter, "nocache" (use "0" to prevent headers from being sent entirely).
-     * cookie_domain, ""
-     * cookie_httponly, ""
-     * cookie_lifetime, "0"
-     * cookie_path, "/"
-     * cookie_secure, ""
-     * entropy_file, ""
-     * entropy_length, "0"
-     * gc_divisor, "100"
-     * gc_maxlifetime, "1440"
-     * gc_probability, "1"
-     * hash_bits_per_character, "4"
-     * hash_function, "0"
-     * name, "PHPSESSID"
-     * referer_check, ""
-     * serialize_handler, "php"
-     * use_cookies, "1"
-     * use_only_cookies, "1"
-     * use_trans_sid, "0"
-     * upload_progress.enabled, "1"
-     * upload_progress.cleanup, "1"
-     * upload_progress.prefix, "upload_progress_"
-     * upload_progress.name, "PHP_SESSION_UPLOAD_PROGRESS"
-     * upload_progress.freq, "1%"
-     * upload_progress.min-freq, "1"
-     * url_rewriter.tags, "a=href,area=href,frame=src,form=,fieldset="
-     *
-     * @param array                                                            $options Session configuration options.
-     * @param AbstractProxy|NativeSessionHandler|\SessionHandlerInterface|null $handler
-     * @param MetadataBag                                                      $metaBag MetadataBag.
-     */
-    public function __construct(array $options = array(), $handler = null, MetadataBag $metaBag = null)
-    {
-        session_cache_limiter(''); // disable by default because it's managed by HeaderBag (if used)
-        ini_set('session.use_cookies', 1);
-
-        if (PHP_VERSION_ID >= 50400) {
-            session_register_shutdown();
-        } else {
-            register_shutdown_function('session_write_close');
-        }
-
-        $this->setMetadataBag($metaBag);
-        $this->setOptions($options);
-        $this->setSaveHandler($handler);
-    }
-
-    /**
-     * Gets the save handler instance.
-     *
-     * @return AbstractProxy
-     */
-    public function getSaveHandler()
-    {
-        return $this->saveHandler;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        if ($this->started) {
-            return true;
-        }
-
-        if (PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE === session_status()) {
-            throw new \RuntimeException('Failed to start the session: already started by PHP.');
-        }
-
-        if (PHP_VERSION_ID < 50400 && !$this->closed && isset($_SESSION) && session_id()) {
-            // not 100% fool-proof, but is the most reliable way to determine if a session is active in PHP 5.3
-            throw new \RuntimeException('Failed to start the session: already started by PHP ($_SESSION is set).');
-        }
-
-        if (ini_get('session.use_cookies') && headers_sent($file, $line)) {
-            throw new \RuntimeException(sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line));
-        }
-
-        // ok to try and start the session
-        if (!session_start()) {
-            throw new \RuntimeException('Failed to start the session');
-        }
-
-        $this->loadSession();
-        if (!$this->saveHandler->isWrapper() && !$this->saveHandler->isSessionHandlerInterface()) {
-            // This condition matches only PHP 5.3 with internal save handlers
-            $this->saveHandler->setActive(true);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getId()
-    {
-        return $this->saveHandler->getId();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setId($id)
-    {
-        $this->saveHandler->setId($id);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->saveHandler->getName();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setName($name)
-    {
-        $this->saveHandler->setName($name);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function regenerate($destroy = false, $lifetime = null)
-    {
-        if (null !== $lifetime) {
-            ini_set('session.cookie_lifetime', $lifetime);
-        }
-
-        if ($destroy) {
-            $this->metadataBag->stampNew();
-        }
-
-        $isRegenerated = session_regenerate_id($destroy);
-
-        // The reference to $_SESSION in session bags is lost in PHP7 and we need to re-create it.
-        // @see https://bugs.php.net/bug.php?id=70013
-        $this->loadSession();
-
-        return $isRegenerated;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function save()
-    {
-        session_write_close();
-
-        if (!$this->saveHandler->isWrapper() && !$this->saveHandler->isSessionHandlerInterface()) {
-            // This condition matches only PHP 5.3 with internal save handlers
-            $this->saveHandler->setActive(false);
-        }
-
-        $this->closed = true;
-        $this->started = false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        // clear out the bags
-        foreach ($this->bags as $bag) {
-            $bag->clear();
-        }
-
-        // clear out the session
-        $_SESSION = array();
-
-        // reconnect the bags to the session
-        $this->loadSession();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function registerBag(SessionBagInterface $bag)
-    {
-        $this->bags[$bag->getName()] = $bag;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getBag($name)
-    {
-        if (!isset($this->bags[$name])) {
-            throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name));
-        }
-
-        if ($this->saveHandler->isActive() && !$this->started) {
-            $this->loadSession();
-        } elseif (!$this->started) {
-            $this->start();
-        }
-
-        return $this->bags[$name];
-    }
-
-    /**
-     * Sets the MetadataBag.
-     *
-     * @param MetadataBag $metaBag
-     */
-    public function setMetadataBag(MetadataBag $metaBag = null)
-    {
-        if (null === $metaBag) {
-            $metaBag = new MetadataBag();
-        }
-
-        $this->metadataBag = $metaBag;
-    }
-
-    /**
-     * Gets the MetadataBag.
-     *
-     * @return MetadataBag
-     */
-    public function getMetadataBag()
-    {
-        return $this->metadataBag;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isStarted()
-    {
-        return $this->started;
-    }
-
-    /**
-     * Sets session.* ini variables.
-     *
-     * For convenience we omit 'session.' from the beginning of the keys.
-     * Explicitly ignores other ini keys.
-     *
-     * @param array $options Session ini directives array(key => value).
-     *
-     * @see http://php.net/session.configuration
-     */
-    public function setOptions(array $options)
-    {
-        $validOptions = array_flip(array(
-            'cache_limiter', 'cookie_domain', 'cookie_httponly',
-            'cookie_lifetime', 'cookie_path', 'cookie_secure',
-            'entropy_file', 'entropy_length', 'gc_divisor',
-            'gc_maxlifetime', 'gc_probability', 'hash_bits_per_character',
-            'hash_function', 'name', 'referer_check',
-            'serialize_handler', 'use_cookies',
-            'use_only_cookies', 'use_trans_sid', 'upload_progress.enabled',
-            'upload_progress.cleanup', 'upload_progress.prefix', 'upload_progress.name',
-            'upload_progress.freq', 'upload_progress.min-freq', 'url_rewriter.tags',
-        ));
-
-        foreach ($options as $key => $value) {
-            if (isset($validOptions[$key])) {
-                ini_set('session.'.$key, $value);
-            }
-        }
-    }
-
-    /**
-     * Registers session save handler as a PHP session handler.
-     *
-     * To use internal PHP session save handlers, override this method using ini_set with
-     * session.save_handler and session.save_path e.g.
-     *
-     *     ini_set('session.save_handler', 'files');
-     *     ini_set('session.save_path', /tmp');
-     *
-     * or pass in a NativeSessionHandler instance which configures session.save_handler in the
-     * constructor, for a template see NativeFileSessionHandler or use handlers in
-     * composer package drak/native-session
-     *
-     * @see http://php.net/session-set-save-handler
-     * @see http://php.net/sessionhandlerinterface
-     * @see http://php.net/sessionhandler
-     * @see http://github.com/drak/NativeSession
-     *
-     * @param AbstractProxy|NativeSessionHandler|\SessionHandlerInterface|null $saveHandler
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setSaveHandler($saveHandler = null)
-    {
-        if (!$saveHandler instanceof AbstractProxy &&
-            !$saveHandler instanceof NativeSessionHandler &&
-            !$saveHandler instanceof \SessionHandlerInterface &&
-            null !== $saveHandler) {
-            throw new \InvalidArgumentException('Must be instance of AbstractProxy or NativeSessionHandler; implement \SessionHandlerInterface; or be null.');
-        }
-
-        // Wrap $saveHandler in proxy and prevent double wrapping of proxy
-        if (!$saveHandler instanceof AbstractProxy && $saveHandler instanceof \SessionHandlerInterface) {
-            $saveHandler = new SessionHandlerProxy($saveHandler);
-        } elseif (!$saveHandler instanceof AbstractProxy) {
-            $saveHandler = PHP_VERSION_ID >= 50400 ?
-                new SessionHandlerProxy(new \SessionHandler()) : new NativeProxy();
-        }
-        $this->saveHandler = $saveHandler;
-
-        if ($this->saveHandler instanceof \SessionHandlerInterface) {
-            if (PHP_VERSION_ID >= 50400) {
-                session_set_save_handler($this->saveHandler, false);
-            } else {
-                session_set_save_handler(
-                    array($this->saveHandler, 'open'),
-                    array($this->saveHandler, 'close'),
-                    array($this->saveHandler, 'read'),
-                    array($this->saveHandler, 'write'),
-                    array($this->saveHandler, 'destroy'),
-                    array($this->saveHandler, 'gc')
-                );
-            }
-        }
-    }
-
-    /**
-     * Load the session with attributes.
-     *
-     * After starting the session, PHP retrieves the session from whatever handlers
-     * are set to (either PHP's internal, or a custom save handler set with session_set_save_handler()).
-     * PHP takes the return value from the read() handler, unserializes it
-     * and populates $_SESSION with the result automatically.
-     *
-     * @param array|null $session
-     */
-    protected function loadSession(array &$session = null)
-    {
-        if (null === $session) {
-            $session = &$_SESSION;
-        }
-
-        $bags = array_merge($this->bags, array($this->metadataBag));
-
-        foreach ($bags as $bag) {
-            $key = $bag->getStorageKey();
-            $session[$key] = isset($session[$key]) ? $session[$key] : array();
-            $bag->initialize($session[$key]);
-        }
-
-        $this->started = true;
-        $this->closed = false;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php b/core/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php
deleted file mode 100644
index ced706f..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
-
-/**
- * Allows session to be started by PHP and managed by Symfony.
- *
- * @author Drak <drak@zikula.org>
- */
-class PhpBridgeSessionStorage extends NativeSessionStorage
-{
-    /**
-     * Constructor.
-     *
-     * @param AbstractProxy|NativeSessionHandler|\SessionHandlerInterface|null $handler
-     * @param MetadataBag                                                      $metaBag MetadataBag
-     */
-    public function __construct($handler = null, MetadataBag $metaBag = null)
-    {
-        $this->setMetadataBag($metaBag);
-        $this->setSaveHandler($handler);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start()
-    {
-        if ($this->started) {
-            return true;
-        }
-
-        $this->loadSession();
-        if (!$this->saveHandler->isWrapper() && !$this->saveHandler->isSessionHandlerInterface()) {
-            // This condition matches only PHP 5.3 + internal save handlers
-            $this->saveHandler->setActive(true);
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear()
-    {
-        // clear out the bags and nothing else that may be set
-        // since the purpose of this driver is to share a handler
-        foreach ($this->bags as $bag) {
-            $bag->clear();
-        }
-
-        // reconnect the bags to the session
-        $this->loadSession();
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php b/core/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
deleted file mode 100644
index 1036818..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Proxy;
-
-/**
- * AbstractProxy.
- *
- * @author Drak <drak@zikula.org>
- */
-abstract class AbstractProxy
-{
-    /**
-     * Flag if handler wraps an internal PHP session handler (using \SessionHandler).
-     *
-     * @var bool
-     */
-    protected $wrapper = false;
-
-    /**
-     * @var bool
-     */
-    protected $active = false;
-
-    /**
-     * @var string
-     */
-    protected $saveHandlerName;
-
-    /**
-     * Gets the session.save_handler name.
-     *
-     * @return string
-     */
-    public function getSaveHandlerName()
-    {
-        return $this->saveHandlerName;
-    }
-
-    /**
-     * Is this proxy handler and instance of \SessionHandlerInterface.
-     *
-     * @return bool
-     */
-    public function isSessionHandlerInterface()
-    {
-        return ($this instanceof \SessionHandlerInterface);
-    }
-
-    /**
-     * Returns true if this handler wraps an internal PHP session save handler using \SessionHandler.
-     *
-     * @return bool
-     */
-    public function isWrapper()
-    {
-        return $this->wrapper;
-    }
-
-    /**
-     * Has a session started?
-     *
-     * @return bool
-     */
-    public function isActive()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            return $this->active = \PHP_SESSION_ACTIVE === session_status();
-        }
-
-        return $this->active;
-    }
-
-    /**
-     * Sets the active flag.
-     *
-     * Has no effect under PHP 5.4+ as status is detected
-     * automatically in isActive()
-     *
-     * @internal
-     *
-     * @param bool $flag
-     *
-     * @throws \LogicException
-     */
-    public function setActive($flag)
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            throw new \LogicException('This method is disabled in PHP 5.4.0+');
-        }
-
-        $this->active = (bool) $flag;
-    }
-
-    /**
-     * Gets the session ID.
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        return session_id();
-    }
-
-    /**
-     * Sets the session ID.
-     *
-     * @param string $id
-     *
-     * @throws \LogicException
-     */
-    public function setId($id)
-    {
-        if ($this->isActive()) {
-            throw new \LogicException('Cannot change the ID of an active session');
-        }
-
-        session_id($id);
-    }
-
-    /**
-     * Gets the session name.
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return session_name();
-    }
-
-    /**
-     * Sets the session name.
-     *
-     * @param string $name
-     *
-     * @throws \LogicException
-     */
-    public function setName($name)
-    {
-        if ($this->isActive()) {
-            throw new \LogicException('Cannot change the name of an active session');
-        }
-
-        session_name($name);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php b/core/vendor/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php
deleted file mode 100644
index 5bb2c71..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Proxy/NativeProxy.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Proxy;
-
-/**
- * NativeProxy.
- *
- * This proxy is built-in session handlers in PHP 5.3.x
- *
- * @author Drak <drak@zikula.org>
- */
-class NativeProxy extends AbstractProxy
-{
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        // this makes an educated guess as to what the handler is since it should already be set.
-        $this->saveHandlerName = ini_get('session.save_handler');
-    }
-
-    /**
-     * Returns true if this handler wraps an internal PHP session save handler using \SessionHandler.
-     *
-     * @return bool False.
-     */
-    public function isWrapper()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php b/core/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php
deleted file mode 100644
index 81643c7..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage\Proxy;
-
-/**
- * SessionHandler proxy.
- *
- * @author Drak <drak@zikula.org>
- */
-class SessionHandlerProxy extends AbstractProxy implements \SessionHandlerInterface
-{
-    /**
-     * @var \SessionHandlerInterface
-     */
-    protected $handler;
-
-    /**
-     * Constructor.
-     *
-     * @param \SessionHandlerInterface $handler
-     */
-    public function __construct(\SessionHandlerInterface $handler)
-    {
-        $this->handler = $handler;
-        $this->wrapper = ($handler instanceof \SessionHandler);
-        $this->saveHandlerName = $this->wrapper ? ini_get('session.save_handler') : 'user';
-    }
-
-    // \SessionHandlerInterface
-
-    /**
-     * {@inheritdoc}
-     */
-    public function open($savePath, $sessionName)
-    {
-        $return = (bool) $this->handler->open($savePath, $sessionName);
-
-        if (true === $return) {
-            $this->active = true;
-        }
-
-        return $return;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        $this->active = false;
-
-        return (bool) $this->handler->close();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($sessionId)
-    {
-        return (string) $this->handler->read($sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($sessionId, $data)
-    {
-        return (bool) $this->handler->write($sessionId, $data);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function destroy($sessionId)
-    {
-        return (bool) $this->handler->destroy($sessionId);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function gc($maxlifetime)
-    {
-        return (bool) $this->handler->gc($maxlifetime);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php b/core/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php
deleted file mode 100644
index 5dd309c..0000000
--- a/core/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
-
-/**
- * StorageInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Drak <drak@zikula.org>
- *
- * @api
- */
-interface SessionStorageInterface
-{
-    /**
-     * Starts the session.
-     *
-     * @throws \RuntimeException If something goes wrong starting the session.
-     *
-     * @return bool True if started.
-     *
-     * @api
-     */
-    public function start();
-
-    /**
-     * Checks if the session is started.
-     *
-     * @return bool True if started, false otherwise.
-     */
-    public function isStarted();
-
-    /**
-     * Returns the session ID.
-     *
-     * @return string The session ID or empty.
-     *
-     * @api
-     */
-    public function getId();
-
-    /**
-     * Sets the session ID.
-     *
-     * @param string $id
-     *
-     * @api
-     */
-    public function setId($id);
-
-    /**
-     * Returns the session name.
-     *
-     * @return mixed The session name.
-     *
-     * @api
-     */
-    public function getName();
-
-    /**
-     * Sets the session name.
-     *
-     * @param string $name
-     *
-     * @api
-     */
-    public function setName($name);
-
-    /**
-     * Regenerates id that represents this storage.
-     *
-     * This method must invoke session_regenerate_id($destroy) unless
-     * this interface is used for a storage object designed for unit
-     * or functional testing where a real PHP session would interfere
-     * with testing.
-     *
-     * Note regenerate+destroy should not clear the session data in memory
-     * only delete the session data from persistent storage.
-     *
-     * Care: When regenerating the session ID no locking is involved in PHPs
-     * session design. See https://bugs.php.net/bug.php?id=61470 for a discussion.
-     * So you must make sure the regenerated session is saved BEFORE sending the
-     * headers with the new ID. Symfonys HttpKernel offers a listener for this.
-     * See Symfony\Component\HttpKernel\EventListener\SaveSessionListener.
-     * Otherwise session data could get lost again for concurrent requests with the
-     * new ID. One result could be that you get logged out after just logging in.
-     *
-     * @param bool $destroy  Destroy session when regenerating?
-     * @param int  $lifetime Sets the cookie lifetime for the session cookie. A null value
-     *                       will leave the system settings unchanged, 0 sets the cookie
-     *                       to expire with browser session. Time is in seconds, and is
-     *                       not a Unix timestamp.
-     *
-     * @return bool True if session regenerated, false if error
-     *
-     * @throws \RuntimeException If an error occurs while regenerating this storage
-     *
-     * @api
-     */
-    public function regenerate($destroy = false, $lifetime = null);
-
-    /**
-     * Force the session to be saved and closed.
-     *
-     * This method must invoke session_write_close() unless this interface is
-     * used for a storage object design for unit or functional testing where
-     * a real PHP session would interfere with testing, in which case it
-     * it should actually persist the session data if required.
-     *
-     * @throws \RuntimeException If the session is saved without being started, or if the session
-     *                           is already closed.
-     */
-    public function save();
-
-    /**
-     * Clear all session data in memory.
-     */
-    public function clear();
-
-    /**
-     * Gets a SessionBagInterface by name.
-     *
-     * @param string $name
-     *
-     * @return SessionBagInterface
-     *
-     * @throws \InvalidArgumentException If the bag does not exist
-     */
-    public function getBag($name);
-
-    /**
-     * Registers a SessionBagInterface for use.
-     *
-     * @param SessionBagInterface $bag
-     */
-    public function registerBag(SessionBagInterface $bag);
-
-    /**
-     * @return MetadataBag
-     */
-    public function getMetadataBag();
-}
diff --git a/core/vendor/symfony/http-foundation/StreamedResponse.php b/core/vendor/symfony/http-foundation/StreamedResponse.php
deleted file mode 100644
index 38986e8..0000000
--- a/core/vendor/symfony/http-foundation/StreamedResponse.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-/**
- * StreamedResponse represents a streamed HTTP response.
- *
- * A StreamedResponse uses a callback for its content.
- *
- * The callback should use the standard PHP functions like echo
- * to stream the response back to the client. The flush() method
- * can also be used if needed.
- *
- * @see flush()
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class StreamedResponse extends Response
-{
-    protected $callback;
-    protected $streamed;
-
-    /**
-     * Constructor.
-     *
-     * @param callable|null $callback A valid PHP callback or null to set it later
-     * @param int           $status   The response status code
-     * @param array         $headers  An array of response headers
-     *
-     * @api
-     */
-    public function __construct($callback = null, $status = 200, $headers = array())
-    {
-        parent::__construct(null, $status, $headers);
-
-        if (null !== $callback) {
-            $this->setCallback($callback);
-        }
-        $this->streamed = false;
-    }
-
-    /**
-     * Factory method for chainability
-     *
-     * @param callable|null $callback A valid PHP callback or null to set it later
-     * @param int           $status   The response status code
-     * @param array         $headers  An array of response headers
-     *
-     * @return StreamedResponse
-     */
-    public static function create($callback = null, $status = 200, $headers = array())
-    {
-        return new static($callback, $status, $headers);
-    }
-
-    /**
-     * Sets the PHP callback associated with this Response.
-     *
-     * @param callable $callback A valid PHP callback
-     *
-     * @throws \LogicException
-     */
-    public function setCallback($callback)
-    {
-        if (!is_callable($callback)) {
-            throw new \LogicException('The Response callback must be a valid PHP callable.');
-        }
-        $this->callback = $callback;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * This method only sends the content once.
-     */
-    public function sendContent()
-    {
-        if ($this->streamed) {
-            return;
-        }
-
-        $this->streamed = true;
-
-        if (null === $this->callback) {
-            throw new \LogicException('The Response callback must not be null.');
-        }
-
-        call_user_func($this->callback);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws \LogicException when the content is not null
-     */
-    public function setContent($content)
-    {
-        if (null !== $content) {
-            throw new \LogicException('The content cannot be set on a StreamedResponse instance.');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return false
-     */
-    public function getContent()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/AcceptHeaderItemTest.php b/core/vendor/symfony/http-foundation/Tests/AcceptHeaderItemTest.php
deleted file mode 100644
index e4f354f..0000000
--- a/core/vendor/symfony/http-foundation/Tests/AcceptHeaderItemTest.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\AcceptHeaderItem;
-
-class AcceptHeaderItemTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideFromStringData
-     */
-    public function testFromString($string, $value, array $attributes)
-    {
-        $item = AcceptHeaderItem::fromString($string);
-        $this->assertEquals($value, $item->getValue());
-        $this->assertEquals($attributes, $item->getAttributes());
-    }
-
-    public function provideFromStringData()
-    {
-        return array(
-            array(
-                'text/html',
-                'text/html', array(),
-            ),
-            array(
-                '"this;should,not=matter"',
-                'this;should,not=matter', array(),
-            ),
-            array(
-                "text/plain; charset=utf-8;param=\"this;should,not=matter\";\tfootnotes=true",
-                'text/plain', array('charset' => 'utf-8', 'param' => 'this;should,not=matter', 'footnotes' => 'true'),
-            ),
-            array(
-                '"this;should,not=matter";charset=utf-8',
-                'this;should,not=matter', array('charset' => 'utf-8'),
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider provideToStringData
-     */
-    public function testToString($value, array $attributes, $string)
-    {
-        $item = new AcceptHeaderItem($value, $attributes);
-        $this->assertEquals($string, (string) $item);
-    }
-
-    public function provideToStringData()
-    {
-        return array(
-            array(
-                'text/html', array(),
-                'text/html',
-            ),
-            array(
-                'text/plain', array('charset' => 'utf-8', 'param' => 'this;should,not=matter', 'footnotes' => 'true'),
-                'text/plain;charset=utf-8;param="this;should,not=matter";footnotes=true',
-            ),
-        );
-    }
-
-    public function testValue()
-    {
-        $item = new AcceptHeaderItem('value', array());
-        $this->assertEquals('value', $item->getValue());
-
-        $item->setValue('new value');
-        $this->assertEquals('new value', $item->getValue());
-
-        $item->setValue(1);
-        $this->assertEquals('1', $item->getValue());
-    }
-
-    public function testQuality()
-    {
-        $item = new AcceptHeaderItem('value', array());
-        $this->assertEquals(1.0, $item->getQuality());
-
-        $item->setQuality(0.5);
-        $this->assertEquals(0.5, $item->getQuality());
-
-        $item->setAttribute('q', 0.75);
-        $this->assertEquals(0.75, $item->getQuality());
-        $this->assertFalse($item->hasAttribute('q'));
-    }
-
-    public function testAttribute()
-    {
-        $item = new AcceptHeaderItem('value', array());
-        $this->assertEquals(array(), $item->getAttributes());
-        $this->assertFalse($item->hasAttribute('test'));
-        $this->assertNull($item->getAttribute('test'));
-        $this->assertEquals('default', $item->getAttribute('test', 'default'));
-
-        $item->setAttribute('test', 'value');
-        $this->assertEquals(array('test' => 'value'), $item->getAttributes());
-        $this->assertTrue($item->hasAttribute('test'));
-        $this->assertEquals('value', $item->getAttribute('test'));
-        $this->assertEquals('value', $item->getAttribute('test', 'default'));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/AcceptHeaderTest.php b/core/vendor/symfony/http-foundation/Tests/AcceptHeaderTest.php
deleted file mode 100644
index 9b3b58e..0000000
--- a/core/vendor/symfony/http-foundation/Tests/AcceptHeaderTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\AcceptHeader;
-use Symfony\Component\HttpFoundation\AcceptHeaderItem;
-
-class AcceptHeaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testFirst()
-    {
-        $header = AcceptHeader::fromString('text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c');
-        $this->assertSame('text/html', $header->first()->getValue());
-    }
-
-    /**
-     * @dataProvider provideFromStringData
-     */
-    public function testFromString($string, array $items)
-    {
-        $header = AcceptHeader::fromString($string);
-        $parsed = array_values($header->all());
-        // reset index since the fixtures don't have them set
-        foreach ($parsed as $item) {
-            $item->setIndex(0);
-        }
-        $this->assertEquals($items, $parsed);
-    }
-
-    public function provideFromStringData()
-    {
-        return array(
-            array('', array()),
-            array('gzip', array(new AcceptHeaderItem('gzip'))),
-            array('gzip,deflate,sdch', array(new AcceptHeaderItem('gzip'), new AcceptHeaderItem('deflate'), new AcceptHeaderItem('sdch'))),
-            array("gzip, deflate\t,sdch", array(new AcceptHeaderItem('gzip'), new AcceptHeaderItem('deflate'), new AcceptHeaderItem('sdch'))),
-            array('"this;should,not=matter"', array(new AcceptHeaderItem('this;should,not=matter'))),
-        );
-    }
-
-    /**
-     * @dataProvider provideToStringData
-     */
-    public function testToString(array $items, $string)
-    {
-        $header = new AcceptHeader($items);
-        $this->assertEquals($string, (string) $header);
-    }
-
-    public function provideToStringData()
-    {
-        return array(
-            array(array(), ''),
-            array(array(new AcceptHeaderItem('gzip')), 'gzip'),
-            array(array(new AcceptHeaderItem('gzip'), new AcceptHeaderItem('deflate'), new AcceptHeaderItem('sdch')), 'gzip,deflate,sdch'),
-            array(array(new AcceptHeaderItem('this;should,not=matter')), 'this;should,not=matter'),
-        );
-    }
-
-    /**
-     * @dataProvider provideFilterData
-     */
-    public function testFilter($string, $filter, array $values)
-    {
-        $header = AcceptHeader::fromString($string)->filter($filter);
-        $this->assertEquals($values, array_keys($header->all()));
-    }
-
-    public function provideFilterData()
-    {
-        return array(
-            array('fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4', '/fr.*/', array('fr-FR', 'fr')),
-        );
-    }
-
-    /**
-     * @dataProvider provideSortingData
-     */
-    public function testSorting($string, array $values)
-    {
-        $header = AcceptHeader::fromString($string);
-        $this->assertEquals($values, array_keys($header->all()));
-    }
-
-    public function provideSortingData()
-    {
-        return array(
-            'quality has priority' => array('*;q=0.3,ISO-8859-1,utf-8;q=0.7',  array('ISO-8859-1', 'utf-8', '*')),
-            'order matters when q is equal' => array('*;q=0.3,ISO-8859-1;q=0.7,utf-8;q=0.7',  array('ISO-8859-1', 'utf-8', '*')),
-            'order matters when q is equal2' => array('*;q=0.3,utf-8;q=0.7,ISO-8859-1;q=0.7',  array('utf-8', 'ISO-8859-1', '*')),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ApacheRequestTest.php b/core/vendor/symfony/http-foundation/Tests/ApacheRequestTest.php
deleted file mode 100644
index 6845118..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ApacheRequestTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\ApacheRequest;
-
-class ApacheRequestTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideServerVars
-     */
-    public function testUriMethods($server, $expectedRequestUri, $expectedBaseUrl, $expectedPathInfo)
-    {
-        $request = new ApacheRequest();
-        $request->server->replace($server);
-
-        $this->assertEquals($expectedRequestUri, $request->getRequestUri(), '->getRequestUri() is correct');
-        $this->assertEquals($expectedBaseUrl, $request->getBaseUrl(), '->getBaseUrl() is correct');
-        $this->assertEquals($expectedPathInfo, $request->getPathInfo(), '->getPathInfo() is correct');
-    }
-
-    public function provideServerVars()
-    {
-        return array(
-            array(
-                array(
-                    'REQUEST_URI' => '/foo/app_dev.php/bar',
-                    'SCRIPT_NAME' => '/foo/app_dev.php',
-                    'PATH_INFO' => '/bar',
-                ),
-                '/foo/app_dev.php/bar',
-                '/foo/app_dev.php',
-                '/bar',
-            ),
-            array(
-                array(
-                    'REQUEST_URI' => '/foo/bar',
-                    'SCRIPT_NAME' => '/foo/app_dev.php',
-                ),
-                '/foo/bar',
-                '/foo',
-                '/bar',
-            ),
-            array(
-                array(
-                    'REQUEST_URI' => '/app_dev.php/foo/bar',
-                    'SCRIPT_NAME' => '/app_dev.php',
-                    'PATH_INFO' => '/foo/bar',
-                ),
-                '/app_dev.php/foo/bar',
-                '/app_dev.php',
-                '/foo/bar',
-            ),
-            array(
-                array(
-                    'REQUEST_URI' => '/foo/bar',
-                    'SCRIPT_NAME' => '/app_dev.php',
-                ),
-                '/foo/bar',
-                '',
-                '/foo/bar',
-            ),
-            array(
-                array(
-                    'REQUEST_URI' => '/app_dev.php',
-                    'SCRIPT_NAME' => '/app_dev.php',
-                ),
-                '/app_dev.php',
-                '/app_dev.php',
-                '/',
-            ),
-            array(
-                array(
-                    'REQUEST_URI' => '/',
-                    'SCRIPT_NAME' => '/app_dev.php',
-                ),
-                '/',
-                '',
-                '/',
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/BinaryFileResponseTest.php b/core/vendor/symfony/http-foundation/Tests/BinaryFileResponseTest.php
deleted file mode 100644
index 47e4d4f..0000000
--- a/core/vendor/symfony/http-foundation/Tests/BinaryFileResponseTest.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\BinaryFileResponse;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\ResponseHeaderBag;
-use Symfony\Component\HttpFoundation\Tests\File\FakeFile;
-
-class BinaryFileResponseTest extends ResponseTestCase
-{
-    public function testConstruction()
-    {
-        $file = __DIR__.'/../README.md';
-        $response = new BinaryFileResponse($file, 404, array('X-Header' => 'Foo'), true, null, true, true);
-        $this->assertEquals(404, $response->getStatusCode());
-        $this->assertEquals('Foo', $response->headers->get('X-Header'));
-        $this->assertTrue($response->headers->has('ETag'));
-        $this->assertTrue($response->headers->has('Last-Modified'));
-        $this->assertFalse($response->headers->has('Content-Disposition'));
-
-        $response = BinaryFileResponse::create($file, 404, array(), true, ResponseHeaderBag::DISPOSITION_INLINE);
-        $this->assertEquals(404, $response->getStatusCode());
-        $this->assertFalse($response->headers->has('ETag'));
-        $this->assertEquals('inline; filename="README.md"', $response->headers->get('Content-Disposition'));
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testSetContent()
-    {
-        $response = new BinaryFileResponse(__FILE__);
-        $response->setContent('foo');
-    }
-
-    public function testGetContent()
-    {
-        $response = new BinaryFileResponse(__FILE__);
-        $this->assertFalse($response->getContent());
-    }
-
-    /**
-     * @dataProvider provideRanges
-     */
-    public function testRequests($requestRange, $offset, $length, $responseRange)
-    {
-        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif')->setAutoEtag();
-
-        // do a request to get the ETag
-        $request = Request::create('/');
-        $response->prepare($request);
-        $etag = $response->headers->get('ETag');
-
-        // prepare a request for a range of the testing file
-        $request = Request::create('/');
-        $request->headers->set('If-Range', $etag);
-        $request->headers->set('Range', $requestRange);
-
-        $file = fopen(__DIR__.'/File/Fixtures/test.gif', 'r');
-        fseek($file, $offset);
-        $data = fread($file, $length);
-        fclose($file);
-
-        $this->expectOutputString($data);
-        $response = clone $response;
-        $response->prepare($request);
-        $response->sendContent();
-
-        $this->assertEquals(206, $response->getStatusCode());
-        $this->assertEquals($responseRange, $response->headers->get('Content-Range'));
-    }
-
-    public function provideRanges()
-    {
-        return array(
-            array('bytes=1-4', 1, 4, 'bytes 1-4/35'),
-            array('bytes=-5', 30, 5, 'bytes 30-34/35'),
-            array('bytes=30-', 30, 5, 'bytes 30-34/35'),
-            array('bytes=30-30', 30, 1, 'bytes 30-30/35'),
-            array('bytes=30-34', 30, 5, 'bytes 30-34/35'),
-        );
-    }
-
-    /**
-     * @dataProvider provideFullFileRanges
-     */
-    public function testFullFileRequests($requestRange)
-    {
-        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif')->setAutoEtag();
-
-        // prepare a request for a range of the testing file
-        $request = Request::create('/');
-        $request->headers->set('Range', $requestRange);
-
-        $file = fopen(__DIR__.'/File/Fixtures/test.gif', 'r');
-        $data = fread($file, 35);
-        fclose($file);
-
-        $this->expectOutputString($data);
-        $response = clone $response;
-        $response->prepare($request);
-        $response->sendContent();
-
-        $this->assertEquals(200, $response->getStatusCode());
-    }
-
-    public function provideFullFileRanges()
-    {
-        return array(
-            array('bytes=0-'),
-            array('bytes=0-34'),
-            array('bytes=-35'),
-            // Syntactical invalid range-request should also return the full resource
-            array('bytes=20-10'),
-            array('bytes=50-40'),
-        );
-    }
-
-    /**
-     * @dataProvider provideInvalidRanges
-     */
-    public function testInvalidRequests($requestRange)
-    {
-        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif')->setAutoEtag();
-
-        // prepare a request for a range of the testing file
-        $request = Request::create('/');
-        $request->headers->set('Range', $requestRange);
-
-        $response = clone $response;
-        $response->prepare($request);
-        $response->sendContent();
-
-        $this->assertEquals(416, $response->getStatusCode());
-        #$this->assertEquals('', $response->headers->get('Content-Range'));
-    }
-
-    public function provideInvalidRanges()
-    {
-        return array(
-            array('bytes=-40'),
-            array('bytes=30-40'),
-        );
-    }
-
-    public function testXSendfile()
-    {
-        $request = Request::create('/');
-        $request->headers->set('X-Sendfile-Type', 'X-Sendfile');
-
-        BinaryFileResponse::trustXSendfileTypeHeader();
-        $response = BinaryFileResponse::create(__DIR__.'/../README.md');
-        $response->prepare($request);
-
-        $this->expectOutputString('');
-        $response->sendContent();
-
-        $this->assertContains('README.md', $response->headers->get('X-Sendfile'));
-    }
-
-    /**
-     * @dataProvider getSampleXAccelMappings
-     */
-    public function testXAccelMapping($realpath, $mapping, $virtual)
-    {
-        $request = Request::create('/');
-        $request->headers->set('X-Sendfile-Type', 'X-Accel-Redirect');
-        $request->headers->set('X-Accel-Mapping', $mapping);
-
-        $file = new FakeFile($realpath, __DIR__.'/File/Fixtures/test');
-
-        BinaryFileResponse::trustXSendfileTypeHeader();
-        $response = new BinaryFileResponse($file);
-        $reflection = new \ReflectionObject($response);
-        $property = $reflection->getProperty('file');
-        $property->setAccessible(true);
-        $property->setValue($response, $file);
-
-        $response->prepare($request);
-        $this->assertEquals($virtual, $response->headers->get('X-Accel-Redirect'));
-    }
-
-    public function testDeleteFileAfterSend()
-    {
-        $request = Request::create('/');
-
-        $path = __DIR__.'/File/Fixtures/to_delete';
-        touch($path);
-        $realPath = realpath($path);
-        $this->assertFileExists($realPath);
-
-        $response = new BinaryFileResponse($realPath);
-        $response->deleteFileAfterSend(true);
-
-        $response->prepare($request);
-        $response->sendContent();
-
-        $this->assertFileNotExists($path);
-    }
-
-    public function testAcceptRangeOnUnsafeMethods()
-    {
-        $request = Request::create('/', 'POST');
-        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif');
-        $response->prepare($request);
-
-        $this->assertEquals('none', $response->headers->get('Accept-Ranges'));
-    }
-
-    public function testAcceptRangeNotOverriden()
-    {
-        $request = Request::create('/', 'POST');
-        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif');
-        $response->headers->set('Accept-Ranges', 'foo');
-        $response->prepare($request);
-
-        $this->assertEquals('foo', $response->headers->get('Accept-Ranges'));
-    }
-
-    public function getSampleXAccelMappings()
-    {
-        return array(
-            array('/var/www/var/www/files/foo.txt', '/var/www/=/files/', '/files/var/www/files/foo.txt'),
-            array('/home/foo/bar.txt', '/var/www/=/files/,/home/foo/=/baz/', '/baz/bar.txt'),
-        );
-    }
-
-    protected function provideResponse()
-    {
-        return new BinaryFileResponse(__DIR__.'/../README.md');
-    }
-
-    public static function tearDownAfterClass()
-    {
-        $path = __DIR__.'/../Fixtures/to_delete';
-        if (file_exists($path)) {
-            @unlink($path);
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ClockMock.php b/core/vendor/symfony/http-foundation/Tests/ClockMock.php
deleted file mode 100644
index 04a842d..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ClockMock.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation;
-
-function time($asFloat = false)
-{
-    return Tests\time();
-}
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-function time()
-{
-    return $_SERVER['REQUEST_TIME'];
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/CookieTest.php b/core/vendor/symfony/http-foundation/Tests/CookieTest.php
deleted file mode 100644
index b8474db..0000000
--- a/core/vendor/symfony/http-foundation/Tests/CookieTest.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\Cookie;
-
-require_once __DIR__.'/ClockMock.php';
-
-/**
- * CookieTest.
- *
- * @author John Kary <john@johnkary.net>
- * @author Hugo Hamon <hugo.hamon@sensio.com>
- */
-class CookieTest extends \PHPUnit_Framework_TestCase
-{
-    public function invalidNames()
-    {
-        return array(
-            array(''),
-            array(',MyName'),
-            array(';MyName'),
-            array(' MyName'),
-            array("\tMyName"),
-            array("\rMyName"),
-            array("\nMyName"),
-            array("\013MyName"),
-            array("\014MyName"),
-        );
-    }
-
-    /**
-     * @dataProvider invalidNames
-     * @expectedException \InvalidArgumentException
-     * @covers Symfony\Component\HttpFoundation\Cookie::__construct
-     */
-    public function testInstantiationThrowsExceptionIfCookieNameContainsInvalidCharacters($name)
-    {
-        new Cookie($name);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testInvalidExpiration()
-    {
-        $cookie = new Cookie('MyCookie', 'foo', 'bar');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Cookie::getValue
-     */
-    public function testGetValue()
-    {
-        $value = 'MyValue';
-        $cookie = new Cookie('MyCookie', $value);
-
-        $this->assertSame($value, $cookie->getValue(), '->getValue() returns the proper value');
-    }
-
-    public function testGetPath()
-    {
-        $cookie = new Cookie('foo', 'bar');
-
-        $this->assertSame('/', $cookie->getPath(), '->getPath() returns / as the default path');
-    }
-
-    public function testGetExpiresTime()
-    {
-        $cookie = new Cookie('foo', 'bar', 3600);
-
-        $this->assertEquals(3600, $cookie->getExpiresTime(), '->getExpiresTime() returns the expire date');
-    }
-
-    public function testConstructorWithDateTime()
-    {
-        $expire = new \DateTime();
-        $cookie = new Cookie('foo', 'bar', $expire);
-
-        $this->assertEquals($expire->format('U'), $cookie->getExpiresTime(), '->getExpiresTime() returns the expire date');
-    }
-
-    public function testGetExpiresTimeWithStringValue()
-    {
-        $value = '+1 day';
-        $cookie = new Cookie('foo', 'bar', $value);
-        $expire = strtotime($value);
-
-        $this->assertEquals($expire, $cookie->getExpiresTime(), '->getExpiresTime() returns the expire date');
-    }
-
-    public function testGetDomain()
-    {
-        $cookie = new Cookie('foo', 'bar', 3600, '/', '.myfoodomain.com');
-
-        $this->assertEquals('.myfoodomain.com', $cookie->getDomain(), '->getDomain() returns the domain name on which the cookie is valid');
-    }
-
-    public function testIsSecure()
-    {
-        $cookie = new Cookie('foo', 'bar', 3600, '/', '.myfoodomain.com', true);
-
-        $this->assertTrue($cookie->isSecure(), '->isSecure() returns whether the cookie is transmitted over HTTPS');
-    }
-
-    public function testIsHttpOnly()
-    {
-        $cookie = new Cookie('foo', 'bar', 3600, '/', '.myfoodomain.com', false, true);
-
-        $this->assertTrue($cookie->isHttpOnly(), '->isHttpOnly() returns whether the cookie is only transmitted over HTTP');
-    }
-
-    public function testCookieIsNotCleared()
-    {
-        $cookie = new Cookie('foo', 'bar', time() + 3600 * 24);
-
-        $this->assertFalse($cookie->isCleared(), '->isCleared() returns false if the cookie did not expire yet');
-    }
-
-    public function testCookieIsCleared()
-    {
-        $cookie = new Cookie('foo', 'bar', time() - 20);
-
-        $this->assertTrue($cookie->isCleared(), '->isCleared() returns true if the cookie has expired');
-    }
-
-    public function testToString()
-    {
-        $cookie = new Cookie('foo', 'bar', strtotime('Fri, 20-May-2011 15:25:52 GMT'), '/', '.myfoodomain.com', true);
-        $this->assertEquals('foo=bar; expires=Fri, 20-May-2011 15:25:52 GMT; path=/; domain=.myfoodomain.com; secure; httponly', $cookie->__toString(), '->__toString() returns string representation of the cookie');
-
-        $cookie = new Cookie('foo', null, 1, '/admin/', '.myfoodomain.com');
-        $this->assertEquals('foo=deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001).'; path=/admin/; domain=.myfoodomain.com; httponly', $cookie->__toString(), '->__toString() returns string representation of a cleared cookie if value is NULL');
-
-        $cookie = new Cookie('foo', 'bar', 0, '/', '');
-        $this->assertEquals('foo=bar; path=/; httponly', $cookie->__toString());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ExpressionRequestMatcherTest.php b/core/vendor/symfony/http-foundation/Tests/ExpressionRequestMatcherTest.php
deleted file mode 100644
index fda372f..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ExpressionRequestMatcherTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-use Symfony\Component\HttpFoundation\ExpressionRequestMatcher;
-use Symfony\Component\HttpFoundation\Request;
-
-class ExpressionRequestMatcherTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \LogicException
-     */
-    public function testWhenNoExpressionIsSet()
-    {
-        $expressionRequestMatcher = new ExpressionRequestMatcher();
-        $expressionRequestMatcher->matches(new Request());
-    }
-
-    /**
-     * @dataProvider provideExpressions
-     */
-    public function testMatchesWhenParentMatchesIsTrue($expression, $expected)
-    {
-        $request = Request::create('/foo');
-        $expressionRequestMatcher = new ExpressionRequestMatcher();
-
-        $expressionRequestMatcher->setExpression(new ExpressionLanguage(), $expression);
-        $this->assertSame($expected, $expressionRequestMatcher->matches($request));
-    }
-
-    /**
-     * @dataProvider provideExpressions
-     */
-    public function testMatchesWhenParentMatchesIsFalse($expression)
-    {
-        $request = Request::create('/foo');
-        $request->attributes->set('foo', 'foo');
-        $expressionRequestMatcher = new ExpressionRequestMatcher();
-        $expressionRequestMatcher->matchAttribute('foo', 'bar');
-
-        $expressionRequestMatcher->setExpression(new ExpressionLanguage(), $expression);
-        $this->assertFalse($expressionRequestMatcher->matches($request));
-    }
-
-    public function provideExpressions()
-    {
-        return array(
-            array('request.getMethod() == method', true),
-            array('request.getPathInfo() == path', true),
-            array('request.getHost() == host', true),
-            array('request.getClientIp() == ip', true),
-            array('request.attributes.all() == attributes', true),
-            array('request.getMethod() == method && request.getPathInfo() == path && request.getHost() == host && request.getClientIp() == ip &&  request.attributes.all() == attributes', true),
-            array('request.getMethod() != method', false),
-            array('request.getMethod() != method && request.getPathInfo() == path && request.getHost() == host && request.getClientIp() == ip &&  request.attributes.all() == attributes', false),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/File/FakeFile.php b/core/vendor/symfony/http-foundation/Tests/File/FakeFile.php
deleted file mode 100644
index c415989..0000000
--- a/core/vendor/symfony/http-foundation/Tests/File/FakeFile.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\File;
-
-use Symfony\Component\HttpFoundation\File\File as OrigFile;
-
-class FakeFile extends OrigFile
-{
-    private $realpath;
-
-    public function __construct($realpath, $path)
-    {
-        $this->realpath = $realpath;
-        parent::__construct($path, false);
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function getRealpath()
-    {
-        return $this->realpath;
-    }
-
-    public function getSize()
-    {
-        return 42;
-    }
-
-    public function getMTime()
-    {
-        return time();
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/File/FileTest.php b/core/vendor/symfony/http-foundation/Tests/File/FileTest.php
deleted file mode 100644
index 6777849..0000000
--- a/core/vendor/symfony/http-foundation/Tests/File/FileTest.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\File;
-
-use Symfony\Component\HttpFoundation\File\File;
-use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
-
-class FileTest extends \PHPUnit_Framework_TestCase
-{
-    protected $file;
-
-    public function testGetMimeTypeUsesMimeTypeGuessers()
-    {
-        $file = new File(__DIR__.'/Fixtures/test.gif');
-        $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif');
-
-        MimeTypeGuesser::getInstance()->register($guesser);
-
-        $this->assertEquals('image/gif', $file->getMimeType());
-    }
-
-    public function testGuessExtensionWithoutGuesser()
-    {
-        $file = new File(__DIR__.'/Fixtures/directory/.empty');
-
-        $this->assertNull($file->guessExtension());
-    }
-
-    public function testGuessExtensionIsBasedOnMimeType()
-    {
-        $file = new File(__DIR__.'/Fixtures/test');
-        $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif');
-
-        MimeTypeGuesser::getInstance()->register($guesser);
-
-        $this->assertEquals('gif', $file->guessExtension());
-    }
-
-    public function testGuessExtensionWithReset()
-    {
-        $file = new File(__DIR__.'/Fixtures/other-file.example');
-        $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif');
-        MimeTypeGuesser::getInstance()->register($guesser);
-
-        $this->assertEquals('gif', $file->guessExtension());
-
-        MimeTypeGuesser::reset();
-
-        $this->assertNull($file->guessExtension());
-    }
-
-    public function testConstructWhenFileNotExists()
-    {
-        $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException');
-
-        new File(__DIR__.'/Fixtures/not_here');
-    }
-
-    public function testMove()
-    {
-        $path = __DIR__.'/Fixtures/test.copy.gif';
-        $targetDir = __DIR__.'/Fixtures/directory';
-        $targetPath = $targetDir.'/test.copy.gif';
-        @unlink($path);
-        @unlink($targetPath);
-        copy(__DIR__.'/Fixtures/test.gif', $path);
-
-        $file = new File($path);
-        $movedFile = $file->move($targetDir);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\File\File', $movedFile);
-
-        $this->assertTrue(file_exists($targetPath));
-        $this->assertFalse(file_exists($path));
-        $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
-
-        @unlink($targetPath);
-    }
-
-    public function testMoveWithNewName()
-    {
-        $path = __DIR__.'/Fixtures/test.copy.gif';
-        $targetDir = __DIR__.'/Fixtures/directory';
-        $targetPath = $targetDir.'/test.newname.gif';
-        @unlink($path);
-        @unlink($targetPath);
-        copy(__DIR__.'/Fixtures/test.gif', $path);
-
-        $file = new File($path);
-        $movedFile = $file->move($targetDir, 'test.newname.gif');
-
-        $this->assertTrue(file_exists($targetPath));
-        $this->assertFalse(file_exists($path));
-        $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
-
-        @unlink($targetPath);
-    }
-
-    public function getFilenameFixtures()
-    {
-        return array(
-            array('original.gif', 'original.gif'),
-            array('..\\..\\original.gif', 'original.gif'),
-            array('../../original.gif', 'original.gif'),
-            array('файлfile.gif', 'файлfile.gif'),
-            array('..\\..\\файлfile.gif', 'файлfile.gif'),
-            array('../../файлfile.gif', 'файлfile.gif'),
-        );
-    }
-
-    /**
-     * @dataProvider getFilenameFixtures
-     */
-    public function testMoveWithNonLatinName($filename, $sanitizedFilename)
-    {
-        $path = __DIR__.'/Fixtures/'.$sanitizedFilename;
-        $targetDir = __DIR__.'/Fixtures/directory/';
-        $targetPath = $targetDir.$sanitizedFilename;
-        @unlink($path);
-        @unlink($targetPath);
-        copy(__DIR__.'/Fixtures/test.gif', $path);
-
-        $file = new File($path);
-        $movedFile = $file->move($targetDir, $filename);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\File\File', $movedFile);
-
-        $this->assertTrue(file_exists($targetPath));
-        $this->assertFalse(file_exists($path));
-        $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
-
-        @unlink($targetPath);
-    }
-
-    public function testMoveToAnUnexistentDirectory()
-    {
-        $sourcePath = __DIR__.'/Fixtures/test.copy.gif';
-        $targetDir = __DIR__.'/Fixtures/directory/sub';
-        $targetPath = $targetDir.'/test.copy.gif';
-        @unlink($sourcePath);
-        @unlink($targetPath);
-        @rmdir($targetDir);
-        copy(__DIR__.'/Fixtures/test.gif', $sourcePath);
-
-        $file = new File($sourcePath);
-        $movedFile = $file->move($targetDir);
-
-        $this->assertFileExists($targetPath);
-        $this->assertFileNotExists($sourcePath);
-        $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
-
-        @unlink($sourcePath);
-        @unlink($targetPath);
-        @rmdir($targetDir);
-    }
-
-    protected function createMockGuesser($path, $mimeType)
-    {
-        $guesser = $this->getMock('Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface');
-        $guesser
-            ->expects($this->once())
-            ->method('guess')
-            ->with($this->equalTo($path))
-            ->will($this->returnValue($mimeType))
-        ;
-
-        return $guesser;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/.unknownextension b/core/vendor/symfony/http-foundation/Tests/File/Fixtures/.unknownextension
deleted file mode 100644
index 4d1ae35..0000000
--- a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/.unknownextension
+++ /dev/null
@@ -1 +0,0 @@
-f
\ No newline at end of file
diff --git a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/directory/.empty b/core/vendor/symfony/http-foundation/Tests/File/Fixtures/directory/.empty
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/other-file.example b/core/vendor/symfony/http-foundation/Tests/File/Fixtures/other-file.example
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/test b/core/vendor/symfony/http-foundation/Tests/File/Fixtures/test
deleted file mode 100644
index b636f4b..0000000
Binary files a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/test and /dev/null differ
diff --git a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/test.gif b/core/vendor/symfony/http-foundation/Tests/File/Fixtures/test.gif
deleted file mode 100644
index b636f4b..0000000
--- a/core/vendor/symfony/http-foundation/Tests/File/Fixtures/test.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF87a    ,       D ;
\ No newline at end of file
diff --git a/core/vendor/symfony/http-foundation/Tests/File/MimeType/MimeTypeTest.php b/core/vendor/symfony/http-foundation/Tests/File/MimeType/MimeTypeTest.php
deleted file mode 100644
index b2a573e..0000000
--- a/core/vendor/symfony/http-foundation/Tests/File/MimeType/MimeTypeTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\File\MimeType;
-
-use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
-use Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser;
-
-class MimeTypeTest extends \PHPUnit_Framework_TestCase
-{
-    protected $path;
-
-    public function testGuessImageWithoutExtension()
-    {
-        if (extension_loaded('fileinfo')) {
-            $this->assertEquals('image/gif', MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test'));
-        } else {
-            $this->assertNull(MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test'));
-        }
-    }
-
-    public function testGuessImageWithDirectory()
-    {
-        $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException');
-
-        MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/directory');
-    }
-
-    public function testGuessImageWithFileBinaryMimeTypeGuesser()
-    {
-        $guesser = MimeTypeGuesser::getInstance();
-        $guesser->register(new FileBinaryMimeTypeGuesser());
-        if (extension_loaded('fileinfo')) {
-            $this->assertEquals('image/gif', MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test'));
-        } else {
-            $this->assertNull(MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test'));
-        }
-    }
-
-    public function testGuessImageWithKnownExtension()
-    {
-        if (extension_loaded('fileinfo')) {
-            $this->assertEquals('image/gif', MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test.gif'));
-        } else {
-            $this->assertNull(MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test.gif'));
-        }
-    }
-
-    public function testGuessFileWithUnknownExtension()
-    {
-        if (extension_loaded('fileinfo')) {
-            $this->assertEquals('application/octet-stream', MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/.unknownextension'));
-        } else {
-            $this->assertNull(MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/.unknownextension'));
-        }
-    }
-
-    public function testGuessWithIncorrectPath()
-    {
-        $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException');
-        MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/not_here');
-    }
-
-    public function testGuessWithNonReadablePath()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Can not verify chmod operations on Windows');
-        }
-
-        if ('root' === get_current_user()) {
-            $this->markTestSkipped('This test will fail if run under superuser');
-        }
-
-        $path = __DIR__.'/../Fixtures/to_delete';
-        touch($path);
-        @chmod($path, 0333);
-
-        if (get_current_user() != 'root' && substr(sprintf('%o', fileperms($path)), -4) == '0333') {
-            $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException');
-            MimeTypeGuesser::getInstance()->guess($path);
-        } else {
-            $this->markTestSkipped('Can not verify chmod operations, change of file permissions failed');
-        }
-    }
-
-    public static function tearDownAfterClass()
-    {
-        $path = __DIR__.'/../Fixtures/to_delete';
-        if (file_exists($path)) {
-            @chmod($path, 0666);
-            @unlink($path);
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php b/core/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php
deleted file mode 100644
index 5b48970..0000000
--- a/core/vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php
+++ /dev/null
@@ -1,272 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\File;
-
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-
-class UploadedFileTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!ini_get('file_uploads')) {
-            $this->markTestSkipped('file_uploads is disabled in php.ini');
-        }
-    }
-
-    public function testConstructWhenFileNotExists()
-    {
-        $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException');
-
-        new UploadedFile(
-            __DIR__.'/Fixtures/not_here',
-            'original.gif',
-            null
-        );
-    }
-
-    public function testFileUploadsWithNoMimeType()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            null,
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            UPLOAD_ERR_OK
-        );
-
-        $this->assertEquals('application/octet-stream', $file->getClientMimeType());
-
-        if (extension_loaded('fileinfo')) {
-            $this->assertEquals('image/gif', $file->getMimeType());
-        }
-    }
-
-    public function testFileUploadsWithUnknownMimeType()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/.unknownextension',
-            'original.gif',
-            null,
-            filesize(__DIR__.'/Fixtures/.unknownextension'),
-            UPLOAD_ERR_OK
-        );
-
-        $this->assertEquals('application/octet-stream', $file->getClientMimeType());
-    }
-
-    public function testGuessClientExtension()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals('gif', $file->guessClientExtension());
-    }
-
-    public function testGuessClientExtensionWithIncorrectMimeType()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/jpeg',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals('jpeg', $file->guessClientExtension());
-    }
-
-    public function testErrorIsOkByDefault()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals(UPLOAD_ERR_OK, $file->getError());
-    }
-
-    public function testGetClientOriginalName()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals('original.gif', $file->getClientOriginalName());
-    }
-
-    public function testGetClientOriginalExtension()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals('gif', $file->getClientOriginalExtension());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\HttpFoundation\File\Exception\FileException
-     */
-    public function testMoveLocalFileIsNotAllowed()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            UPLOAD_ERR_OK
-        );
-
-        $movedFile = $file->move(__DIR__.'/Fixtures/directory');
-    }
-
-    public function testMoveLocalFileIsAllowedInTestMode()
-    {
-        $path = __DIR__.'/Fixtures/test.copy.gif';
-        $targetDir = __DIR__.'/Fixtures/directory';
-        $targetPath = $targetDir.'/test.copy.gif';
-        @unlink($path);
-        @unlink($targetPath);
-        copy(__DIR__.'/Fixtures/test.gif', $path);
-
-        $file = new UploadedFile(
-            $path,
-            'original.gif',
-            'image/gif',
-            filesize($path),
-            UPLOAD_ERR_OK,
-            true
-        );
-
-        $movedFile = $file->move(__DIR__.'/Fixtures/directory');
-
-        $this->assertTrue(file_exists($targetPath));
-        $this->assertFalse(file_exists($path));
-        $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
-
-        @unlink($targetPath);
-    }
-
-    public function testGetClientOriginalNameSanitizeFilename()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            '../../original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals('original.gif', $file->getClientOriginalName());
-    }
-
-    public function testGetSize()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            'image/gif',
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            null
-        );
-
-        $this->assertEquals(filesize(__DIR__.'/Fixtures/test.gif'), $file->getSize());
-
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test',
-            'original.gif',
-            'image/gif'
-        );
-
-        $this->assertEquals(filesize(__DIR__.'/Fixtures/test'), $file->getSize());
-    }
-
-    public function testGetExtension()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            null
-        );
-
-        $this->assertEquals('gif', $file->getExtension());
-    }
-
-    public function testIsValid()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            null,
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            UPLOAD_ERR_OK,
-            true
-        );
-
-        $this->assertTrue($file->isValid());
-    }
-
-    /**
-     * @dataProvider uploadedFileErrorProvider
-     */
-    public function testIsInvalidOnUploadError($error)
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            null,
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            $error
-        );
-
-        $this->assertFalse($file->isValid());
-    }
-
-    public function uploadedFileErrorProvider()
-    {
-        return array(
-            array(UPLOAD_ERR_INI_SIZE),
-            array(UPLOAD_ERR_FORM_SIZE),
-            array(UPLOAD_ERR_PARTIAL),
-            array(UPLOAD_ERR_NO_TMP_DIR),
-            array(UPLOAD_ERR_EXTENSION),
-        );
-    }
-
-    public function testIsInvalidIfNotHttpUpload()
-    {
-        $file = new UploadedFile(
-            __DIR__.'/Fixtures/test.gif',
-            'original.gif',
-            null,
-            filesize(__DIR__.'/Fixtures/test.gif'),
-            UPLOAD_ERR_OK
-        );
-
-        $this->assertFalse($file->isValid());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/FileBagTest.php b/core/vendor/symfony/http-foundation/Tests/FileBagTest.php
deleted file mode 100644
index 738604b..0000000
--- a/core/vendor/symfony/http-foundation/Tests/FileBagTest.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpFoundation\FileBag;
-
-/**
- * FileBagTest.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- */
-class FileBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testFileMustBeAnArrayOrUploadedFile()
-    {
-        new FileBag(array('file' => 'foo'));
-    }
-
-    public function testShouldConvertsUploadedFiles()
-    {
-        $tmpFile = $this->createTempFile();
-        $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
-
-        $bag = new FileBag(array('file' => array(
-            'name' => basename($tmpFile),
-            'type' => 'text/plain',
-            'tmp_name' => $tmpFile,
-            'error' => 0,
-            'size' => 100,
-        )));
-
-        $this->assertEquals($file, $bag->get('file'));
-    }
-
-    public function testShouldSetEmptyUploadedFilesToNull()
-    {
-        $bag = new FileBag(array('file' => array(
-            'name' => '',
-            'type' => '',
-            'tmp_name' => '',
-            'error' => UPLOAD_ERR_NO_FILE,
-            'size' => 0,
-        )));
-
-        $this->assertNull($bag->get('file'));
-    }
-
-    public function testShouldConvertUploadedFilesWithPhpBug()
-    {
-        $tmpFile = $this->createTempFile();
-        $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
-
-        $bag = new FileBag(array(
-            'child' => array(
-                'name' => array(
-                    'file' => basename($tmpFile),
-                ),
-                'type' => array(
-                    'file' => 'text/plain',
-                ),
-                'tmp_name' => array(
-                    'file' => $tmpFile,
-                ),
-                'error' => array(
-                    'file' => 0,
-                ),
-                'size' => array(
-                    'file' => 100,
-                ),
-            ),
-        ));
-
-        $files = $bag->all();
-        $this->assertEquals($file, $files['child']['file']);
-    }
-
-    public function testShouldConvertNestedUploadedFilesWithPhpBug()
-    {
-        $tmpFile = $this->createTempFile();
-        $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
-
-        $bag = new FileBag(array(
-            'child' => array(
-                'name' => array(
-                    'sub' => array('file' => basename($tmpFile)),
-                ),
-                'type' => array(
-                    'sub' => array('file' => 'text/plain'),
-                ),
-                'tmp_name' => array(
-                    'sub' => array('file' => $tmpFile),
-                ),
-                'error' => array(
-                    'sub' => array('file' => 0),
-                ),
-                'size' => array(
-                    'sub' => array('file' => 100),
-                ),
-            ),
-        ));
-
-        $files = $bag->all();
-        $this->assertEquals($file, $files['child']['sub']['file']);
-    }
-
-    public function testShouldNotConvertNestedUploadedFiles()
-    {
-        $tmpFile = $this->createTempFile();
-        $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
-        $bag = new FileBag(array('image' => array('file' => $file)));
-
-        $files = $bag->all();
-        $this->assertEquals($file, $files['image']['file']);
-    }
-
-    protected function createTempFile()
-    {
-        return tempnam(sys_get_temp_dir().'/form_test', 'FormTest');
-    }
-
-    protected function setUp()
-    {
-        mkdir(sys_get_temp_dir().'/form_test', 0777, true);
-    }
-
-    protected function tearDown()
-    {
-        foreach (glob(sys_get_temp_dir().'/form_test/*') as $file) {
-            unlink($file);
-        }
-
-        rmdir(sys_get_temp_dir().'/form_test');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/HeaderBagTest.php b/core/vendor/symfony/http-foundation/Tests/HeaderBagTest.php
deleted file mode 100644
index ada9ac0..0000000
--- a/core/vendor/symfony/http-foundation/Tests/HeaderBagTest.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\HeaderBag;
-
-class HeaderBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::__construct
-     */
-    public function testConstructor()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar'));
-        $this->assertTrue($bag->has('foo'));
-    }
-
-    public function testToStringNull()
-    {
-        $bag = new HeaderBag();
-        $this->assertEquals('', $bag->__toString());
-    }
-
-    public function testToStringNotNull()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar'));
-        $this->assertEquals("Foo: bar\r\n", $bag->__toString());
-    }
-
-    public function testKeys()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar'));
-        $keys = $bag->keys();
-        $this->assertEquals('foo', $keys[0]);
-    }
-
-    public function testGetDate()
-    {
-        $bag = new HeaderBag(array('foo' => 'Tue, 4 Sep 2012 20:00:00 +0200'));
-        $headerDate = $bag->getDate('foo');
-        $this->assertInstanceOf('DateTime', $headerDate);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testGetDateException()
-    {
-        $bag = new HeaderBag(array('foo' => 'Tue'));
-        $headerDate = $bag->getDate('foo');
-    }
-
-    public function testGetCacheControlHeader()
-    {
-        $bag = new HeaderBag();
-        $bag->addCacheControlDirective('public', '#a');
-        $this->assertTrue($bag->hasCacheControlDirective('public'));
-        $this->assertEquals('#a', $bag->getCacheControlDirective('public'));
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::all
-     */
-    public function testAll()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => array('bar')), $bag->all(), '->all() gets all the input');
-
-        $bag = new HeaderBag(array('FOO' => 'BAR'));
-        $this->assertEquals(array('foo' => array('BAR')), $bag->all(), '->all() gets all the input key are lower case');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::replace
-     */
-    public function testReplace()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar'));
-
-        $bag->replace(array('NOPE' => 'BAR'));
-        $this->assertEquals(array('nope' => array('BAR')), $bag->all(), '->replace() replaces the input with the argument');
-        $this->assertFalse($bag->has('foo'), '->replace() overrides previously set the input');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::get
-     */
-    public function testGet()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar', 'fuzz' => 'bizz'));
-        $this->assertEquals('bar', $bag->get('foo'), '->get return current value');
-        $this->assertEquals('bar', $bag->get('FoO'), '->get key in case insensitive');
-        $this->assertEquals(array('bar'), $bag->get('foo', 'nope', false), '->get return the value as array');
-
-        // defaults
-        $this->assertNull($bag->get('none'), '->get unknown values returns null');
-        $this->assertEquals('default', $bag->get('none', 'default'), '->get unknown values returns default');
-        $this->assertEquals(array('default'), $bag->get('none', 'default', false), '->get unknown values returns default as array');
-
-        $bag->set('foo', 'bor', false);
-        $this->assertEquals('bar', $bag->get('foo'), '->get return first value');
-        $this->assertEquals(array('bar', 'bor'), $bag->get('foo', 'nope', false), '->get return all values as array');
-    }
-
-    public function testSetAssociativeArray()
-    {
-        $bag = new HeaderBag();
-        $bag->set('foo', array('bad-assoc-index' => 'value'));
-        $this->assertSame('value', $bag->get('foo'));
-        $this->assertEquals(array('value'), $bag->get('foo', 'nope', false), 'assoc indices of multi-valued headers are ignored');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::contains
-     */
-    public function testContains()
-    {
-        $bag = new HeaderBag(array('foo' => 'bar', 'fuzz' => 'bizz'));
-        $this->assertTrue($bag->contains('foo', 'bar'), '->contains first value');
-        $this->assertTrue($bag->contains('fuzz', 'bizz'), '->contains second value');
-        $this->assertFalse($bag->contains('nope', 'nope'), '->contains unknown value');
-        $this->assertFalse($bag->contains('foo', 'nope'), '->contains unknown value');
-
-        // Multiple values
-        $bag->set('foo', 'bor', false);
-        $this->assertTrue($bag->contains('foo', 'bar'), '->contains first value');
-        $this->assertTrue($bag->contains('foo', 'bor'), '->contains second value');
-        $this->assertFalse($bag->contains('foo', 'nope'), '->contains unknown value');
-    }
-
-    public function testCacheControlDirectiveAccessors()
-    {
-        $bag = new HeaderBag();
-        $bag->addCacheControlDirective('public');
-
-        $this->assertTrue($bag->hasCacheControlDirective('public'));
-        $this->assertTrue($bag->getCacheControlDirective('public'));
-        $this->assertEquals('public', $bag->get('cache-control'));
-
-        $bag->addCacheControlDirective('max-age', 10);
-        $this->assertTrue($bag->hasCacheControlDirective('max-age'));
-        $this->assertEquals(10, $bag->getCacheControlDirective('max-age'));
-        $this->assertEquals('max-age=10, public', $bag->get('cache-control'));
-
-        $bag->removeCacheControlDirective('max-age');
-        $this->assertFalse($bag->hasCacheControlDirective('max-age'));
-    }
-
-    public function testCacheControlDirectiveParsing()
-    {
-        $bag = new HeaderBag(array('cache-control' => 'public, max-age=10'));
-        $this->assertTrue($bag->hasCacheControlDirective('public'));
-        $this->assertTrue($bag->getCacheControlDirective('public'));
-
-        $this->assertTrue($bag->hasCacheControlDirective('max-age'));
-        $this->assertEquals(10, $bag->getCacheControlDirective('max-age'));
-
-        $bag->addCacheControlDirective('s-maxage', 100);
-        $this->assertEquals('max-age=10, public, s-maxage=100', $bag->get('cache-control'));
-    }
-
-    public function testCacheControlDirectiveParsingQuotedZero()
-    {
-        $bag = new HeaderBag(array('cache-control' => 'max-age="0"'));
-        $this->assertTrue($bag->hasCacheControlDirective('max-age'));
-        $this->assertEquals(0, $bag->getCacheControlDirective('max-age'));
-    }
-
-    public function testCacheControlDirectiveOverrideWithReplace()
-    {
-        $bag = new HeaderBag(array('cache-control' => 'private, max-age=100'));
-        $bag->replace(array('cache-control' => 'public, max-age=10'));
-        $this->assertTrue($bag->hasCacheControlDirective('public'));
-        $this->assertTrue($bag->getCacheControlDirective('public'));
-
-        $this->assertTrue($bag->hasCacheControlDirective('max-age'));
-        $this->assertEquals(10, $bag->getCacheControlDirective('max-age'));
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::getIterator
-     */
-    public function testGetIterator()
-    {
-        $headers = array('foo' => 'bar', 'hello' => 'world', 'third' => 'charm');
-        $headerBag = new HeaderBag($headers);
-
-        $i = 0;
-        foreach ($headerBag as $key => $val) {
-            ++$i;
-            $this->assertEquals(array($headers[$key]), $val);
-        }
-
-        $this->assertEquals(count($headers), $i);
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\HeaderBag::count
-     */
-    public function testCount()
-    {
-        $headers = array('foo' => 'bar', 'HELLO' => 'WORLD');
-        $headerBag = new HeaderBag($headers);
-
-        $this->assertEquals(count($headers), count($headerBag));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/IpUtilsTest.php b/core/vendor/symfony/http-foundation/Tests/IpUtilsTest.php
deleted file mode 100644
index 0002478..0000000
--- a/core/vendor/symfony/http-foundation/Tests/IpUtilsTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\IpUtils;
-
-class IpUtilsTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider testIpv4Provider
-     */
-    public function testIpv4($matches, $remoteAddr, $cidr)
-    {
-        $this->assertSame($matches, IpUtils::checkIp($remoteAddr, $cidr));
-    }
-
-    public function testIpv4Provider()
-    {
-        return array(
-            array(true, '192.168.1.1', '192.168.1.1'),
-            array(true, '192.168.1.1', '192.168.1.1/1'),
-            array(true, '192.168.1.1', '192.168.1.0/24'),
-            array(false, '192.168.1.1', '1.2.3.4/1'),
-            array(false, '192.168.1.1', '192.168.1/33'),
-            array(true, '192.168.1.1', array('1.2.3.4/1', '192.168.1.0/24')),
-            array(true, '192.168.1.1', array('192.168.1.0/24', '1.2.3.4/1')),
-            array(false, '192.168.1.1', array('1.2.3.4/1', '4.3.2.1/1')),
-            array(true, '1.2.3.4', '0.0.0.0/0'),
-            array(false, '1.2.3.4', '256.256.256/0'),
-            array(false, '1.2.3.4', '192.168.1.0/0'),
-        );
-    }
-
-    /**
-     * @dataProvider testIpv6Provider
-     */
-    public function testIpv6($matches, $remoteAddr, $cidr)
-    {
-        if (!defined('AF_INET6')) {
-            $this->markTestSkipped('Only works when PHP is compiled without the option "disable-ipv6".');
-        }
-
-        $this->assertSame($matches, IpUtils::checkIp($remoteAddr, $cidr));
-    }
-
-    public function testIpv6Provider()
-    {
-        return array(
-            array(true, '2a01:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65'),
-            array(false, '2a00:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65'),
-            array(false, '2a01:198:603:0:396e:4789:8e99:890f', '::1'),
-            array(true, '0:0:0:0:0:0:0:1', '::1'),
-            array(false, '0:0:603:0:396e:4789:8e99:0001', '::1'),
-            array(true, '2a01:198:603:0:396e:4789:8e99:890f', array('::1', '2a01:198:603:0::/65')),
-            array(true, '2a01:198:603:0:396e:4789:8e99:890f', array('2a01:198:603:0::/65', '::1')),
-            array(false, '2a01:198:603:0:396e:4789:8e99:890f', array('::1', '1a01:198:603:0::/65')),
-        );
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testAnIpv6WithOptionDisabledIpv6()
-    {
-        if (!extension_loaded('sockets')) {
-            $this->markTestSkipped('Only works when the socket extension is enabled');
-        }
-
-        if (defined('AF_INET6')) {
-            $this->markTestSkipped('Only works when PHP is compiled with the option "disable-ipv6".');
-        }
-
-        IpUtils::checkIp('2a01:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/JsonResponseTest.php b/core/vendor/symfony/http-foundation/Tests/JsonResponseTest.php
deleted file mode 100644
index f1ea565..0000000
--- a/core/vendor/symfony/http-foundation/Tests/JsonResponseTest.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\JsonResponse;
-
-class JsonResponseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructorEmptyCreatesJsonObject()
-    {
-        $response = new JsonResponse();
-        $this->assertSame('{}', $response->getContent());
-    }
-
-    public function testConstructorWithArrayCreatesJsonArray()
-    {
-        $response = new JsonResponse(array(0, 1, 2, 3));
-        $this->assertSame('[0,1,2,3]', $response->getContent());
-    }
-
-    public function testConstructorWithAssocArrayCreatesJsonObject()
-    {
-        $response = new JsonResponse(array('foo' => 'bar'));
-        $this->assertSame('{"foo":"bar"}', $response->getContent());
-    }
-
-    public function testConstructorWithSimpleTypes()
-    {
-        $response = new JsonResponse('foo');
-        $this->assertSame('"foo"', $response->getContent());
-
-        $response = new JsonResponse(0);
-        $this->assertSame('0', $response->getContent());
-
-        $response = new JsonResponse(0.1);
-        $this->assertSame('0.1', $response->getContent());
-
-        $response = new JsonResponse(true);
-        $this->assertSame('true', $response->getContent());
-    }
-
-    public function testConstructorWithCustomStatus()
-    {
-        $response = new JsonResponse(array(), 202);
-        $this->assertSame(202, $response->getStatusCode());
-    }
-
-    public function testConstructorAddsContentTypeHeader()
-    {
-        $response = new JsonResponse();
-        $this->assertSame('application/json', $response->headers->get('Content-Type'));
-    }
-
-    public function testConstructorWithCustomHeaders()
-    {
-        $response = new JsonResponse(array(), 200, array('ETag' => 'foo'));
-        $this->assertSame('application/json', $response->headers->get('Content-Type'));
-        $this->assertSame('foo', $response->headers->get('ETag'));
-    }
-
-    public function testConstructorWithCustomContentType()
-    {
-        $headers = array('Content-Type' => 'application/vnd.acme.blog-v1+json');
-
-        $response = new JsonResponse(array(), 200, $headers);
-        $this->assertSame('application/vnd.acme.blog-v1+json', $response->headers->get('Content-Type'));
-    }
-
-    public function testCreate()
-    {
-        $response = JsonResponse::create(array('foo' => 'bar'), 204);
-
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertEquals('{"foo":"bar"}', $response->getContent());
-        $this->assertEquals(204, $response->getStatusCode());
-    }
-
-    public function testStaticCreateEmptyJsonObject()
-    {
-        $response = JsonResponse::create();
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('{}', $response->getContent());
-    }
-
-    public function testStaticCreateJsonArray()
-    {
-        $response = JsonResponse::create(array(0, 1, 2, 3));
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('[0,1,2,3]', $response->getContent());
-    }
-
-    public function testStaticCreateJsonObject()
-    {
-        $response = JsonResponse::create(array('foo' => 'bar'));
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('{"foo":"bar"}', $response->getContent());
-    }
-
-    public function testStaticCreateWithSimpleTypes()
-    {
-        $response = JsonResponse::create('foo');
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('"foo"', $response->getContent());
-
-        $response = JsonResponse::create(0);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('0', $response->getContent());
-
-        $response = JsonResponse::create(0.1);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('0.1', $response->getContent());
-
-        $response = JsonResponse::create(true);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
-        $this->assertSame('true', $response->getContent());
-    }
-
-    public function testStaticCreateWithCustomStatus()
-    {
-        $response = JsonResponse::create(array(), 202);
-        $this->assertSame(202, $response->getStatusCode());
-    }
-
-    public function testStaticCreateAddsContentTypeHeader()
-    {
-        $response = JsonResponse::create();
-        $this->assertSame('application/json', $response->headers->get('Content-Type'));
-    }
-
-    public function testStaticCreateWithCustomHeaders()
-    {
-        $response = JsonResponse::create(array(), 200, array('ETag' => 'foo'));
-        $this->assertSame('application/json', $response->headers->get('Content-Type'));
-        $this->assertSame('foo', $response->headers->get('ETag'));
-    }
-
-    public function testStaticCreateWithCustomContentType()
-    {
-        $headers = array('Content-Type' => 'application/vnd.acme.blog-v1+json');
-
-        $response = JsonResponse::create(array(), 200, $headers);
-        $this->assertSame('application/vnd.acme.blog-v1+json', $response->headers->get('Content-Type'));
-    }
-
-    public function testSetCallback()
-    {
-        $response = JsonResponse::create(array('foo' => 'bar'))->setCallback('callback');
-
-        $this->assertEquals('/**/callback({"foo":"bar"});', $response->getContent());
-        $this->assertEquals('text/javascript', $response->headers->get('Content-Type'));
-    }
-
-    public function testJsonEncodeFlags()
-    {
-        $response = new JsonResponse('<>\'&"');
-
-        $this->assertEquals('"\u003C\u003E\u0027\u0026\u0022"', $response->getContent());
-    }
-
-    public function testGetEncodingOptions()
-    {
-        $response = new JsonResponse();
-
-        $this->assertEquals(JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT, $response->getEncodingOptions());
-    }
-
-    public function testSetEncodingOptions()
-    {
-        $response = new JsonResponse();
-        $response->setData(array(array(1, 2, 3)));
-
-        $this->assertEquals('[[1,2,3]]', $response->getContent());
-
-        $response->setEncodingOptions(JSON_FORCE_OBJECT);
-
-        $this->assertEquals('{"0":{"0":1,"1":2,"2":3}}', $response->getContent());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetCallbackInvalidIdentifier()
-    {
-        $response = new JsonResponse('foo');
-        $response->setCallback('+invalid');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetContent()
-    {
-        JsonResponse::create("\xB1\x31");
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage This error is expected
-     */
-    public function testSetContentJsonSerializeError()
-    {
-        if (!interface_exists('JsonSerializable')) {
-            $this->markTestSkipped('Interface JsonSerializable is available in PHP 5.4+');
-        }
-
-        $serializable = new JsonSerializableObject();
-
-        JsonResponse::create($serializable);
-    }
-}
-
-if (interface_exists('JsonSerializable')) {
-    class JsonSerializableObject implements \JsonSerializable
-    {
-        public function jsonSerialize()
-        {
-            throw new \Exception('This error is expected');
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ParameterBagTest.php b/core/vendor/symfony/http-foundation/Tests/ParameterBagTest.php
deleted file mode 100644
index 16fedbf..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ParameterBagTest.php
+++ /dev/null
@@ -1,266 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\ParameterBag;
-
-class ParameterBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::__construct
-     */
-    public function testConstructor()
-    {
-        $this->testAll();
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::all
-     */
-    public function testAll()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $bag->all(), '->all() gets all the input');
-    }
-
-    public function testKeys()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $this->assertEquals(array('foo'), $bag->keys());
-    }
-
-    public function testAdd()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $bag->add(array('bar' => 'bas'));
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'bas'), $bag->all());
-    }
-
-    public function testRemove()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-        $bag->add(array('bar' => 'bas'));
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'bas'), $bag->all());
-        $bag->remove('bar');
-        $this->assertEquals(array('foo' => 'bar'), $bag->all());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::replace
-     */
-    public function testReplace()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-
-        $bag->replace(array('FOO' => 'BAR'));
-        $this->assertEquals(array('FOO' => 'BAR'), $bag->all(), '->replace() replaces the input with the argument');
-        $this->assertFalse($bag->has('foo'), '->replace() overrides previously set the input');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::get
-     */
-    public function testGet()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar', 'null' => null));
-
-        $this->assertEquals('bar', $bag->get('foo'), '->get() gets the value of a parameter');
-        $this->assertEquals('default', $bag->get('unknown', 'default'), '->get() returns second argument as default if a parameter is not defined');
-        $this->assertNull($bag->get('null', 'default'), '->get() returns null if null is set');
-    }
-
-    public function testGetDoesNotUseDeepByDefault()
-    {
-        $bag = new ParameterBag(array('foo' => array('bar' => 'moo')));
-
-        $this->assertNull($bag->get('foo[bar]'));
-    }
-
-    /**
-     * @dataProvider getInvalidPaths
-     * @expectedException \InvalidArgumentException
-     */
-    public function testGetDeepWithInvalidPaths($path)
-    {
-        $bag = new ParameterBag(array('foo' => array('bar' => 'moo')));
-
-        $bag->get($path, null, true);
-    }
-
-    public function getInvalidPaths()
-    {
-        return array(
-            array('foo[['),
-            array('foo[d'),
-            array('foo[bar]]'),
-            array('foo[bar]d'),
-        );
-    }
-
-    public function testGetDeep()
-    {
-        $bag = new ParameterBag(array('foo' => array('bar' => array('moo' => 'boo'))));
-
-        $this->assertEquals(array('moo' => 'boo'), $bag->get('foo[bar]', null, true));
-        $this->assertEquals('boo', $bag->get('foo[bar][moo]', null, true));
-        $this->assertEquals('default', $bag->get('foo[bar][foo]', 'default', true));
-        $this->assertEquals('default', $bag->get('bar[moo][foo]', 'default', true));
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::set
-     */
-    public function testSet()
-    {
-        $bag = new ParameterBag(array());
-
-        $bag->set('foo', 'bar');
-        $this->assertEquals('bar', $bag->get('foo'), '->set() sets the value of parameter');
-
-        $bag->set('foo', 'baz');
-        $this->assertEquals('baz', $bag->get('foo'), '->set() overrides previously set parameter');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::has
-     */
-    public function testHas()
-    {
-        $bag = new ParameterBag(array('foo' => 'bar'));
-
-        $this->assertTrue($bag->has('foo'), '->has() returns true if a parameter is defined');
-        $this->assertFalse($bag->has('unknown'), '->has() return false if a parameter is not defined');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::getAlpha
-     */
-    public function testGetAlpha()
-    {
-        $bag = new ParameterBag(array('word' => 'foo_BAR_012'));
-
-        $this->assertEquals('fooBAR', $bag->getAlpha('word'), '->getAlpha() gets only alphabetic characters');
-        $this->assertEquals('', $bag->getAlpha('unknown'), '->getAlpha() returns empty string if a parameter is not defined');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::getAlnum
-     */
-    public function testGetAlnum()
-    {
-        $bag = new ParameterBag(array('word' => 'foo_BAR_012'));
-
-        $this->assertEquals('fooBAR012', $bag->getAlnum('word'), '->getAlnum() gets only alphanumeric characters');
-        $this->assertEquals('', $bag->getAlnum('unknown'), '->getAlnum() returns empty string if a parameter is not defined');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::getDigits
-     */
-    public function testGetDigits()
-    {
-        $bag = new ParameterBag(array('word' => 'foo_BAR_012'));
-
-        $this->assertEquals('012', $bag->getDigits('word'), '->getDigits() gets only digits as string');
-        $this->assertEquals('', $bag->getDigits('unknown'), '->getDigits() returns empty string if a parameter is not defined');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::getInt
-     */
-    public function testGetInt()
-    {
-        $bag = new ParameterBag(array('digits' => '0123'));
-
-        $this->assertEquals(123, $bag->getInt('digits'), '->getInt() gets a value of parameter as integer');
-        $this->assertEquals(0, $bag->getInt('unknown'), '->getInt() returns zero if a parameter is not defined');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::filter
-     */
-    public function testFilter()
-    {
-        $bag = new ParameterBag(array(
-            'digits' => '0123ab',
-            'email' => 'example@example.com',
-            'url' => 'http://example.com/foo',
-            'dec' => '256',
-            'hex' => '0x100',
-            'array' => array('bang'),
-            ));
-
-        $this->assertEmpty($bag->filter('nokey'), '->filter() should return empty by default if no key is found');
-
-        $this->assertEquals('0123', $bag->filter('digits', '', false, FILTER_SANITIZE_NUMBER_INT), '->filter() gets a value of parameter as integer filtering out invalid characters');
-
-        $this->assertEquals('example@example.com', $bag->filter('email', '', false, FILTER_VALIDATE_EMAIL), '->filter() gets a value of parameter as email');
-
-        $this->assertEquals('http://example.com/foo', $bag->filter('url', '', false, FILTER_VALIDATE_URL, array('flags' => FILTER_FLAG_PATH_REQUIRED)), '->filter() gets a value of parameter as URL with a path');
-
-        // This test is repeated for code-coverage
-        $this->assertEquals('http://example.com/foo', $bag->filter('url', '', false, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED), '->filter() gets a value of parameter as URL with a path');
-
-        $this->assertFalse($bag->filter('dec', '', false, FILTER_VALIDATE_INT, array(
-            'flags' => FILTER_FLAG_ALLOW_HEX,
-            'options' => array('min_range' => 1, 'max_range' => 0xff),
-        )), '->filter() gets a value of parameter as integer between boundaries');
-
-        $this->assertFalse($bag->filter('hex', '', false, FILTER_VALIDATE_INT, array(
-            'flags' => FILTER_FLAG_ALLOW_HEX,
-            'options' => array('min_range' => 1, 'max_range' => 0xff),
-        )), '->filter() gets a value of parameter as integer between boundaries');
-
-        $this->assertEquals(array('bang'), $bag->filter('array', '', false), '->filter() gets a value of parameter as an array');
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::getIterator
-     */
-    public function testGetIterator()
-    {
-        $parameters = array('foo' => 'bar', 'hello' => 'world');
-        $bag = new ParameterBag($parameters);
-
-        $i = 0;
-        foreach ($bag as $key => $val) {
-            ++$i;
-            $this->assertEquals($parameters[$key], $val);
-        }
-
-        $this->assertEquals(count($parameters), $i);
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::count
-     */
-    public function testCount()
-    {
-        $parameters = array('foo' => 'bar', 'hello' => 'world');
-        $bag = new ParameterBag($parameters);
-
-        $this->assertEquals(count($parameters), count($bag));
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\ParameterBag::getBoolean
-     */
-    public function testGetBoolean()
-    {
-        $parameters = array('string_true' => 'true', 'string_false' => 'false');
-        $bag = new ParameterBag($parameters);
-
-        $this->assertTrue($bag->getBoolean('string_true'), '->getBoolean() gets the string true as boolean true');
-        $this->assertFalse($bag->getBoolean('string_false'), '->getBoolean() gets the string false as boolean false');
-        $this->assertFalse($bag->getBoolean('unknown'), '->getBoolean() returns false if a parameter is not defined');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/RedirectResponseTest.php b/core/vendor/symfony/http-foundation/Tests/RedirectResponseTest.php
deleted file mode 100644
index 2a097d6..0000000
--- a/core/vendor/symfony/http-foundation/Tests/RedirectResponseTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\RedirectResponse;
-
-class RedirectResponseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGenerateMetaRedirect()
-    {
-        $response = new RedirectResponse('foo.bar');
-
-        $this->assertEquals(1, preg_match(
-            '#<meta http-equiv="refresh" content="\d+;url=foo\.bar" />#',
-            preg_replace(array('/\s+/', '/\'/'), array(' ', '"'), $response->getContent())
-        ));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testRedirectResponseConstructorNullUrl()
-    {
-        $response = new RedirectResponse(null);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testRedirectResponseConstructorWrongStatusCode()
-    {
-        $response = new RedirectResponse('foo.bar', 404);
-    }
-
-    public function testGenerateLocationHeader()
-    {
-        $response = new RedirectResponse('foo.bar');
-
-        $this->assertTrue($response->headers->has('Location'));
-        $this->assertEquals('foo.bar', $response->headers->get('Location'));
-    }
-
-    public function testGetTargetUrl()
-    {
-        $response = new RedirectResponse('foo.bar');
-
-        $this->assertEquals('foo.bar', $response->getTargetUrl());
-    }
-
-    public function testSetTargetUrl()
-    {
-        $response = new RedirectResponse('foo.bar');
-        $response->setTargetUrl('baz.beep');
-
-        $this->assertEquals('baz.beep', $response->getTargetUrl());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetTargetUrlNull()
-    {
-        $response = new RedirectResponse('foo.bar');
-        $response->setTargetUrl(null);
-    }
-
-    public function testCreate()
-    {
-        $response = RedirectResponse::create('foo', 301);
-
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\RedirectResponse', $response);
-        $this->assertEquals(301, $response->getStatusCode());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/RequestMatcherTest.php b/core/vendor/symfony/http-foundation/Tests/RequestMatcherTest.php
deleted file mode 100644
index cee9bcc..0000000
--- a/core/vendor/symfony/http-foundation/Tests/RequestMatcherTest.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\RequestMatcher;
-use Symfony\Component\HttpFoundation\Request;
-
-class RequestMatcherTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider testMethodFixtures
-     */
-    public function testMethod($requestMethod, $matcherMethod, $isMatch)
-    {
-        $matcher = new RequestMatcher();
-        $matcher->matchMethod($matcherMethod);
-        $request = Request::create('', $requestMethod);
-        $this->assertSame($isMatch, $matcher->matches($request));
-
-        $matcher = new RequestMatcher(null, null, $matcherMethod);
-        $request = Request::create('', $requestMethod);
-        $this->assertSame($isMatch, $matcher->matches($request));
-    }
-
-    public function testMethodFixtures()
-    {
-        return array(
-            array('get', 'get', true),
-            array('get', array('get', 'post'), true),
-            array('get', 'post', false),
-            array('get', 'GET', true),
-            array('get', array('GET', 'POST'), true),
-            array('get', 'POST', false),
-        );
-    }
-
-    public function testScheme()
-    {
-        $httpRequest = $request = $request = Request::create('');
-        $httpsRequest = $request = $request = Request::create('', 'get', array(), array(), array(), array('HTTPS' => 'on'));
-
-        $matcher = new RequestMatcher();
-        $matcher->matchScheme('https');
-        $this->assertFalse($matcher->matches($httpRequest));
-        $this->assertTrue($matcher->matches($httpsRequest));
-
-        $matcher->matchScheme('http');
-        $this->assertFalse($matcher->matches($httpsRequest));
-        $this->assertTrue($matcher->matches($httpRequest));
-
-        $matcher = new RequestMatcher();
-        $this->assertTrue($matcher->matches($httpsRequest));
-        $this->assertTrue($matcher->matches($httpRequest));
-    }
-
-    /**
-     * @dataProvider testHostFixture
-     */
-    public function testHost($pattern, $isMatch)
-    {
-        $matcher = new RequestMatcher();
-        $request = Request::create('', 'get', array(), array(), array(), array('HTTP_HOST' => 'foo.example.com'));
-
-        $matcher->matchHost($pattern);
-        $this->assertSame($isMatch, $matcher->matches($request));
-
-        $matcher = new RequestMatcher(null, $pattern);
-        $this->assertSame($isMatch, $matcher->matches($request));
-    }
-
-    public function testHostFixture()
-    {
-        return array(
-            array('.*\.example\.com', true),
-            array('\.example\.com$', true),
-            array('^.*\.example\.com$', true),
-            array('.*\.sensio\.com', false),
-            array('.*\.example\.COM', true),
-            array('\.example\.COM$', true),
-            array('^.*\.example\.COM$', true),
-            array('.*\.sensio\.COM', false),
-        );
-    }
-
-    public function testPath()
-    {
-        $matcher = new RequestMatcher();
-
-        $request = Request::create('/admin/foo');
-
-        $matcher->matchPath('/admin/.*');
-        $this->assertTrue($matcher->matches($request));
-
-        $matcher->matchPath('/admin');
-        $this->assertTrue($matcher->matches($request));
-
-        $matcher->matchPath('^/admin/.*$');
-        $this->assertTrue($matcher->matches($request));
-
-        $matcher->matchMethod('/blog/.*');
-        $this->assertFalse($matcher->matches($request));
-    }
-
-    public function testPathWithLocaleIsNotSupported()
-    {
-        $matcher = new RequestMatcher();
-        $request = Request::create('/en/login');
-        $request->setLocale('en');
-
-        $matcher->matchPath('^/{_locale}/login$');
-        $this->assertFalse($matcher->matches($request));
-    }
-
-    public function testPathWithEncodedCharacters()
-    {
-        $matcher = new RequestMatcher();
-        $request = Request::create('/admin/fo%20o');
-        $matcher->matchPath('^/admin/fo o*$');
-        $this->assertTrue($matcher->matches($request));
-    }
-
-    public function testAttributes()
-    {
-        $matcher = new RequestMatcher();
-
-        $request = Request::create('/admin/foo');
-        $request->attributes->set('foo', 'foo_bar');
-
-        $matcher->matchAttribute('foo', 'foo_.*');
-        $this->assertTrue($matcher->matches($request));
-
-        $matcher->matchAttribute('foo', 'foo');
-        $this->assertTrue($matcher->matches($request));
-
-        $matcher->matchAttribute('foo', '^foo_bar$');
-        $this->assertTrue($matcher->matches($request));
-
-        $matcher->matchAttribute('foo', 'babar');
-        $this->assertFalse($matcher->matches($request));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/RequestStackTest.php b/core/vendor/symfony/http-foundation/Tests/RequestStackTest.php
deleted file mode 100644
index e26b806..0000000
--- a/core/vendor/symfony/http-foundation/Tests/RequestStackTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
-
-class RequestStackTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetCurrentRequest()
-    {
-        $requestStack = new RequestStack();
-        $this->assertNull($requestStack->getCurrentRequest());
-
-        $request = Request::create('/foo');
-
-        $requestStack->push($request);
-        $this->assertSame($request, $requestStack->getCurrentRequest());
-
-        $this->assertSame($request, $requestStack->pop());
-        $this->assertNull($requestStack->getCurrentRequest());
-
-        $this->assertNull($requestStack->pop());
-    }
-
-    public function testGetMasterRequest()
-    {
-        $requestStack = new RequestStack();
-        $this->assertNull($requestStack->getMasterRequest());
-
-        $masterRequest = Request::create('/foo');
-        $subRequest = Request::create('/bar');
-
-        $requestStack->push($masterRequest);
-        $requestStack->push($subRequest);
-
-        $this->assertSame($masterRequest, $requestStack->getMasterRequest());
-    }
-
-    public function testGetParentRequest()
-    {
-        $requestStack = new RequestStack();
-        $this->assertNull($requestStack->getParentRequest());
-
-        $masterRequest = Request::create('/foo');
-
-        $requestStack->push($masterRequest);
-        $this->assertNull($requestStack->getParentRequest());
-
-        $firstSubRequest = Request::create('/bar');
-
-        $requestStack->push($firstSubRequest);
-        $this->assertSame($masterRequest, $requestStack->getParentRequest());
-
-        $secondSubRequest = Request::create('/baz');
-
-        $requestStack->push($secondSubRequest);
-        $this->assertSame($firstSubRequest, $requestStack->getParentRequest());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/RequestTest.php b/core/vendor/symfony/http-foundation/Tests/RequestTest.php
deleted file mode 100644
index ed46999..0000000
--- a/core/vendor/symfony/http-foundation/Tests/RequestTest.php
+++ /dev/null
@@ -1,1890 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
-use Symfony\Component\HttpFoundation\Session\Session;
-use Symfony\Component\HttpFoundation\Request;
-
-class RequestTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::__construct
-     */
-    public function testConstructor()
-    {
-        $this->testInitialize();
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::initialize
-     */
-    public function testInitialize()
-    {
-        $request = new Request();
-
-        $request->initialize(array('foo' => 'bar'));
-        $this->assertEquals('bar', $request->query->get('foo'), '->initialize() takes an array of query parameters as its first argument');
-
-        $request->initialize(array(), array('foo' => 'bar'));
-        $this->assertEquals('bar', $request->request->get('foo'), '->initialize() takes an array of request parameters as its second argument');
-
-        $request->initialize(array(), array(), array('foo' => 'bar'));
-        $this->assertEquals('bar', $request->attributes->get('foo'), '->initialize() takes an array of attributes as its third argument');
-
-        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_FOO' => 'bar'));
-        $this->assertEquals('bar', $request->headers->get('FOO'), '->initialize() takes an array of HTTP headers as its sixth argument');
-    }
-
-    public function testGetLocale()
-    {
-        $request = new Request();
-        $request->setLocale('pl');
-        $locale = $request->getLocale();
-        $this->assertEquals('pl', $locale);
-    }
-
-    public function testGetUser()
-    {
-        $request = Request::create('http://user_test:password_test@test.com/');
-        $user = $request->getUser();
-
-        $this->assertEquals('user_test', $user);
-    }
-
-    public function testGetPassword()
-    {
-        $request = Request::create('http://user_test:password_test@test.com/');
-        $password = $request->getPassword();
-
-        $this->assertEquals('password_test', $password);
-    }
-
-    public function testIsNoCache()
-    {
-        $request = new Request();
-        $isNoCache = $request->isNoCache();
-
-        $this->assertFalse($isNoCache);
-    }
-
-    public function testGetContentType()
-    {
-        $request = new Request();
-        $contentType = $request->getContentType();
-
-        $this->assertNull($contentType);
-    }
-
-    public function testSetDefaultLocale()
-    {
-        $request = new Request();
-        $request->setDefaultLocale('pl');
-        $locale = $request->getLocale();
-
-        $this->assertEquals('pl', $locale);
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::create
-     */
-    public function testCreate()
-    {
-        $request = Request::create('http://test.com/foo?bar=baz');
-        $this->assertEquals('http://test.com/foo?bar=baz', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('bar=baz', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://test.com/foo', 'GET', array('bar' => 'baz'));
-        $this->assertEquals('http://test.com/foo?bar=baz', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('bar=baz', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://test.com/foo?bar=foo', 'GET', array('bar' => 'baz'));
-        $this->assertEquals('http://test.com/foo?bar=baz', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('bar=baz', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('https://test.com/foo?bar=baz');
-        $this->assertEquals('https://test.com/foo?bar=baz', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('bar=baz', $request->getQueryString());
-        $this->assertEquals(443, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertTrue($request->isSecure());
-
-        $request = Request::create('test.com:90/foo');
-        $this->assertEquals('http://test.com:90/foo', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('test.com', $request->getHost());
-        $this->assertEquals('test.com:90', $request->getHttpHost());
-        $this->assertEquals(90, $request->getPort());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('https://test.com:90/foo');
-        $this->assertEquals('https://test.com:90/foo', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('test.com', $request->getHost());
-        $this->assertEquals('test.com:90', $request->getHttpHost());
-        $this->assertEquals(90, $request->getPort());
-        $this->assertTrue($request->isSecure());
-
-        $request = Request::create('https://127.0.0.1:90/foo');
-        $this->assertEquals('https://127.0.0.1:90/foo', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('127.0.0.1', $request->getHost());
-        $this->assertEquals('127.0.0.1:90', $request->getHttpHost());
-        $this->assertEquals(90, $request->getPort());
-        $this->assertTrue($request->isSecure());
-
-        $request = Request::create('https://[::1]:90/foo');
-        $this->assertEquals('https://[::1]:90/foo', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('[::1]', $request->getHost());
-        $this->assertEquals('[::1]:90', $request->getHttpHost());
-        $this->assertEquals(90, $request->getPort());
-        $this->assertTrue($request->isSecure());
-
-        $request = Request::create('https://[::1]/foo');
-        $this->assertEquals('https://[::1]/foo', $request->getUri());
-        $this->assertEquals('/foo', $request->getPathInfo());
-        $this->assertEquals('[::1]', $request->getHost());
-        $this->assertEquals('[::1]', $request->getHttpHost());
-        $this->assertEquals(443, $request->getPort());
-        $this->assertTrue($request->isSecure());
-
-        $json = '{"jsonrpc":"2.0","method":"echo","id":7,"params":["Hello World"]}';
-        $request = Request::create('http://example.com/jsonrpc', 'POST', array(), array(), array(), array(), $json);
-        $this->assertEquals($json, $request->getContent());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://test.com');
-        $this->assertEquals('http://test.com/', $request->getUri());
-        $this->assertEquals('/', $request->getPathInfo());
-        $this->assertEquals('', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://test.com?test=1');
-        $this->assertEquals('http://test.com/?test=1', $request->getUri());
-        $this->assertEquals('/', $request->getPathInfo());
-        $this->assertEquals('test=1', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://test.com:90/?test=1');
-        $this->assertEquals('http://test.com:90/?test=1', $request->getUri());
-        $this->assertEquals('/', $request->getPathInfo());
-        $this->assertEquals('test=1', $request->getQueryString());
-        $this->assertEquals(90, $request->getPort());
-        $this->assertEquals('test.com:90', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://username:password@test.com');
-        $this->assertEquals('http://test.com/', $request->getUri());
-        $this->assertEquals('/', $request->getPathInfo());
-        $this->assertEquals('', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertEquals('username', $request->getUser());
-        $this->assertEquals('password', $request->getPassword());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://username@test.com');
-        $this->assertEquals('http://test.com/', $request->getUri());
-        $this->assertEquals('/', $request->getPathInfo());
-        $this->assertEquals('', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertEquals('username', $request->getUser());
-        $this->assertSame('', $request->getPassword());
-        $this->assertFalse($request->isSecure());
-
-        $request = Request::create('http://test.com/?foo');
-        $this->assertEquals('/?foo', $request->getRequestUri());
-        $this->assertEquals(array('foo' => ''), $request->query->all());
-
-        ## assume rewrite rule: (.*) --> app/app.php ; app/ is a symlink to a symfony web/ directory
-        $request = Request::create('http://test.com/apparthotel-1234', 'GET', array(), array(), array(),
-            array(
-                'DOCUMENT_ROOT' => '/var/www/www.test.com',
-                'SCRIPT_FILENAME' => '/var/www/www.test.com/app/app.php',
-                'SCRIPT_NAME' => '/app/app.php',
-                'PHP_SELF' => '/app/app.php/apparthotel-1234',
-            ));
-        $this->assertEquals('http://test.com/apparthotel-1234', $request->getUri());
-        $this->assertEquals('/apparthotel-1234', $request->getPathInfo());
-        $this->assertEquals('', $request->getQueryString());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertEquals('test.com', $request->getHttpHost());
-        $this->assertFalse($request->isSecure());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::create
-     */
-    public function testCreateCheckPrecedence()
-    {
-        // server is used by default
-        $request = Request::create('/', 'DELETE', array(), array(), array(), array(
-            'HTTP_HOST' => 'example.com',
-            'HTTPS' => 'on',
-            'SERVER_PORT' => 443,
-            'PHP_AUTH_USER' => 'fabien',
-            'PHP_AUTH_PW' => 'pa$$',
-            'QUERY_STRING' => 'foo=bar',
-            'CONTENT_TYPE' => 'application/json',
-        ));
-        $this->assertEquals('example.com', $request->getHost());
-        $this->assertEquals(443, $request->getPort());
-        $this->assertTrue($request->isSecure());
-        $this->assertEquals('fabien', $request->getUser());
-        $this->assertEquals('pa$$', $request->getPassword());
-        $this->assertEquals('', $request->getQueryString());
-        $this->assertEquals('application/json', $request->headers->get('CONTENT_TYPE'));
-
-        // URI has precedence over server
-        $request = Request::create('http://thomas:pokemon@example.net:8080/?foo=bar', 'GET', array(), array(), array(), array(
-            'HTTP_HOST' => 'example.com',
-            'HTTPS' => 'on',
-            'SERVER_PORT' => 443,
-        ));
-        $this->assertEquals('example.net', $request->getHost());
-        $this->assertEquals(8080, $request->getPort());
-        $this->assertFalse($request->isSecure());
-        $this->assertEquals('thomas', $request->getUser());
-        $this->assertEquals('pokemon', $request->getPassword());
-        $this->assertEquals('foo=bar', $request->getQueryString());
-    }
-
-    public function testDuplicate()
-    {
-        $request = new Request(array('foo' => 'bar'), array('foo' => 'bar'), array('foo' => 'bar'), array(), array(), array('HTTP_FOO' => 'bar'));
-        $dup = $request->duplicate();
-
-        $this->assertEquals($request->query->all(), $dup->query->all(), '->duplicate() duplicates a request an copy the current query parameters');
-        $this->assertEquals($request->request->all(), $dup->request->all(), '->duplicate() duplicates a request an copy the current request parameters');
-        $this->assertEquals($request->attributes->all(), $dup->attributes->all(), '->duplicate() duplicates a request an copy the current attributes');
-        $this->assertEquals($request->headers->all(), $dup->headers->all(), '->duplicate() duplicates a request an copy the current HTTP headers');
-
-        $dup = $request->duplicate(array('foo' => 'foobar'), array('foo' => 'foobar'), array('foo' => 'foobar'), array(), array(), array('HTTP_FOO' => 'foobar'));
-
-        $this->assertEquals(array('foo' => 'foobar'), $dup->query->all(), '->duplicate() overrides the query parameters if provided');
-        $this->assertEquals(array('foo' => 'foobar'), $dup->request->all(), '->duplicate() overrides the request parameters if provided');
-        $this->assertEquals(array('foo' => 'foobar'), $dup->attributes->all(), '->duplicate() overrides the attributes if provided');
-        $this->assertEquals(array('foo' => array('foobar')), $dup->headers->all(), '->duplicate() overrides the HTTP header if provided');
-    }
-
-    public function testDuplicateWithFormat()
-    {
-        $request = new Request(array(), array(), array('_format' => 'json'));
-        $dup = $request->duplicate();
-
-        $this->assertEquals('json', $dup->getRequestFormat());
-        $this->assertEquals('json', $dup->attributes->get('_format'));
-
-        $request = new Request();
-        $request->setRequestFormat('xml');
-        $dup = $request->duplicate();
-
-        $this->assertEquals('xml', $dup->getRequestFormat());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getFormat
-     * @covers Symfony\Component\HttpFoundation\Request::setFormat
-     * @dataProvider getFormatToMimeTypeMapProvider
-     */
-    public function testGetFormatFromMimeType($format, $mimeTypes)
-    {
-        $request = new Request();
-        foreach ($mimeTypes as $mime) {
-            $this->assertEquals($format, $request->getFormat($mime));
-        }
-        $request->setFormat($format, $mimeTypes);
-        foreach ($mimeTypes as $mime) {
-            $this->assertEquals($format, $request->getFormat($mime));
-        }
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getFormat
-     */
-    public function testGetFormatFromMimeTypeWithParameters()
-    {
-        $request = new Request();
-        $this->assertEquals('json', $request->getFormat('application/json; charset=utf-8'));
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getMimeType
-     * @dataProvider getFormatToMimeTypeMapProvider
-     */
-    public function testGetMimeTypeFromFormat($format, $mimeTypes)
-    {
-        if (null !== $format) {
-            $request = new Request();
-            $this->assertEquals($mimeTypes[0], $request->getMimeType($format));
-        }
-    }
-
-    public function getFormatToMimeTypeMapProvider()
-    {
-        return array(
-            array(null, array(null, 'unexistent-mime-type')),
-            array('txt', array('text/plain')),
-            array('js', array('application/javascript', 'application/x-javascript', 'text/javascript')),
-            array('css', array('text/css')),
-            array('json', array('application/json', 'application/x-json')),
-            array('xml', array('text/xml', 'application/xml', 'application/x-xml')),
-            array('rdf', array('application/rdf+xml')),
-            array('atom',array('application/atom+xml')),
-        );
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getUri
-     */
-    public function testGetUri()
-    {
-        $server = array();
-
-        // Standard Request on non default PORT
-        // http://host:8080/index.php/path/info?query=string
-
-        $server['HTTP_HOST'] = 'host:8080';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '8080';
-
-        $server['QUERY_STRING'] = 'query=string';
-        $server['REQUEST_URI'] = '/index.php/path/info?query=string';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['PATH_INFO'] = '/path/info';
-        $server['PATH_TRANSLATED'] = 'redirect:/index.php/path/info';
-        $server['PHP_SELF'] = '/index_dev.php/path/info';
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-
-        $request = new Request();
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://host:8080/index.php/path/info?query=string', $request->getUri(), '->getUri() with non default port');
-
-        // Use std port number
-        $server['HTTP_HOST'] = 'host';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://host/index.php/path/info?query=string', $request->getUri(), '->getUri() with default port');
-
-        // Without HOST HEADER
-        unset($server['HTTP_HOST']);
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://servername/index.php/path/info?query=string', $request->getUri(), '->getUri() with default port without HOST_HEADER');
-
-        // Request with URL REWRITING (hide index.php)
-        //   RewriteCond %{REQUEST_FILENAME} !-f
-        //   RewriteRule ^(.*)$ index.php [QSA,L]
-        // http://host:8080/path/info?query=string
-        $server = array();
-        $server['HTTP_HOST'] = 'host:8080';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '8080';
-
-        $server['REDIRECT_QUERY_STRING'] = 'query=string';
-        $server['REDIRECT_URL'] = '/path/info';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['QUERY_STRING'] = 'query=string';
-        $server['REQUEST_URI'] = '/path/info?toto=test&1=1';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['PHP_SELF'] = '/index.php';
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://host:8080/path/info?query=string', $request->getUri(), '->getUri() with rewrite');
-
-        // Use std port number
-        //  http://host/path/info?query=string
-        $server['HTTP_HOST'] = 'host';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://host/path/info?query=string', $request->getUri(), '->getUri() with rewrite and default port');
-
-        // Without HOST HEADER
-        unset($server['HTTP_HOST']);
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://servername/path/info?query=string', $request->getUri(), '->getUri() with rewrite, default port without HOST_HEADER');
-
-        // With encoded characters
-
-        $server = array(
-            'HTTP_HOST' => 'host:8080',
-            'SERVER_NAME' => 'servername',
-            'SERVER_PORT' => '8080',
-            'QUERY_STRING' => 'query=string',
-            'REQUEST_URI' => '/ba%20se/index_dev.php/foo%20bar/in+fo?query=string',
-            'SCRIPT_NAME' => '/ba se/index_dev.php',
-            'PATH_TRANSLATED' => 'redirect:/index.php/foo bar/in+fo',
-            'PHP_SELF' => '/ba se/index_dev.php/path/info',
-            'SCRIPT_FILENAME' => '/some/where/ba se/index_dev.php',
-        );
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals(
-            'http://host:8080/ba%20se/index_dev.php/foo%20bar/in+fo?query=string',
-            $request->getUri()
-        );
-
-        // with user info
-
-        $server['PHP_AUTH_USER'] = 'fabien';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://host:8080/ba%20se/index_dev.php/foo%20bar/in+fo?query=string', $request->getUri());
-
-        $server['PHP_AUTH_PW'] = 'symfony';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://host:8080/ba%20se/index_dev.php/foo%20bar/in+fo?query=string', $request->getUri());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getUriForPath
-     */
-    public function testGetUriForPath()
-    {
-        $request = Request::create('http://test.com/foo?bar=baz');
-        $this->assertEquals('http://test.com/some/path', $request->getUriForPath('/some/path'));
-
-        $request = Request::create('http://test.com:90/foo?bar=baz');
-        $this->assertEquals('http://test.com:90/some/path', $request->getUriForPath('/some/path'));
-
-        $request = Request::create('https://test.com/foo?bar=baz');
-        $this->assertEquals('https://test.com/some/path', $request->getUriForPath('/some/path'));
-
-        $request = Request::create('https://test.com:90/foo?bar=baz');
-        $this->assertEquals('https://test.com:90/some/path', $request->getUriForPath('/some/path'));
-
-        $server = array();
-
-        // Standard Request on non default PORT
-        // http://host:8080/index.php/path/info?query=string
-
-        $server['HTTP_HOST'] = 'host:8080';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '8080';
-
-        $server['QUERY_STRING'] = 'query=string';
-        $server['REQUEST_URI'] = '/index.php/path/info?query=string';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['PATH_INFO'] = '/path/info';
-        $server['PATH_TRANSLATED'] = 'redirect:/index.php/path/info';
-        $server['PHP_SELF'] = '/index_dev.php/path/info';
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-
-        $request = new Request();
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://host:8080/index.php/some/path', $request->getUriForPath('/some/path'), '->getUriForPath() with non default port');
-
-        // Use std port number
-        $server['HTTP_HOST'] = 'host';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://host/index.php/some/path', $request->getUriForPath('/some/path'), '->getUriForPath() with default port');
-
-        // Without HOST HEADER
-        unset($server['HTTP_HOST']);
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://servername/index.php/some/path', $request->getUriForPath('/some/path'), '->getUriForPath() with default port without HOST_HEADER');
-
-        // Request with URL REWRITING (hide index.php)
-        //   RewriteCond %{REQUEST_FILENAME} !-f
-        //   RewriteRule ^(.*)$ index.php [QSA,L]
-        // http://host:8080/path/info?query=string
-        $server = array();
-        $server['HTTP_HOST'] = 'host:8080';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '8080';
-
-        $server['REDIRECT_QUERY_STRING'] = 'query=string';
-        $server['REDIRECT_URL'] = '/path/info';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['QUERY_STRING'] = 'query=string';
-        $server['REQUEST_URI'] = '/path/info?toto=test&1=1';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['PHP_SELF'] = '/index.php';
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://host:8080/some/path', $request->getUriForPath('/some/path'), '->getUri() with rewrite');
-
-        // Use std port number
-        //  http://host/path/info?query=string
-        $server['HTTP_HOST'] = 'host';
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://host/some/path', $request->getUriForPath('/some/path'), '->getUriForPath() with rewrite and default port');
-
-        // Without HOST HEADER
-        unset($server['HTTP_HOST']);
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '80';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('http://servername/some/path', $request->getUriForPath('/some/path'), '->getUriForPath() with rewrite, default port without HOST_HEADER');
-        $this->assertEquals('servername', $request->getHttpHost());
-
-        // with user info
-
-        $server['PHP_AUTH_USER'] = 'fabien';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://servername/some/path', $request->getUriForPath('/some/path'));
-
-        $server['PHP_AUTH_PW'] = 'symfony';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://servername/some/path', $request->getUriForPath('/some/path'));
-    }
-
-    /**
-     * @dataProvider getRelativeUriForPathData()
-     */
-    public function testGetRelativeUriForPath($expected, $pathinfo, $path)
-    {
-        $this->assertEquals($expected, Request::create($pathinfo)->getRelativeUriForPath($path));
-    }
-
-    public function getRelativeUriForPathData()
-    {
-        return array(
-            array('me.png', '/foo', '/me.png'),
-            array('../me.png', '/foo/bar', '/me.png'),
-            array('me.png', '/foo/bar', '/foo/me.png'),
-            array('../baz/me.png', '/foo/bar/b', '/foo/baz/me.png'),
-            array('../../fooz/baz/me.png', '/foo/bar/b', '/fooz/baz/me.png'),
-            array('baz/me.png', '/foo/bar/b', 'baz/me.png'),
-        );
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getUserInfo
-     */
-    public function testGetUserInfo()
-    {
-        $request = new Request();
-
-        $server['PHP_AUTH_USER'] = 'fabien';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('fabien', $request->getUserInfo());
-
-        $server['PHP_AUTH_USER'] = '0';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('0', $request->getUserInfo());
-
-        $server['PHP_AUTH_PW'] = '0';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('0:0', $request->getUserInfo());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getSchemeAndHttpHost
-     */
-    public function testGetSchemeAndHttpHost()
-    {
-        $request = new Request();
-
-        $server = array();
-        $server['SERVER_NAME'] = 'servername';
-        $server['SERVER_PORT'] = '90';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://servername:90', $request->getSchemeAndHttpHost());
-
-        $server['PHP_AUTH_USER'] = 'fabien';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://servername:90', $request->getSchemeAndHttpHost());
-
-        $server['PHP_AUTH_USER'] = '0';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://servername:90', $request->getSchemeAndHttpHost());
-
-        $server['PHP_AUTH_PW'] = '0';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('http://servername:90', $request->getSchemeAndHttpHost());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::getQueryString
-     * @covers Symfony\Component\HttpFoundation\Request::normalizeQueryString
-     * @dataProvider getQueryStringNormalizationData
-     */
-    public function testGetQueryString($query, $expectedQuery, $msg)
-    {
-        $request = new Request();
-
-        $request->server->set('QUERY_STRING', $query);
-        $this->assertSame($expectedQuery, $request->getQueryString(), $msg);
-    }
-
-    public function getQueryStringNormalizationData()
-    {
-        return array(
-            array('foo', 'foo', 'works with valueless parameters'),
-            array('foo=', 'foo=', 'includes a dangling equal sign'),
-            array('bar=&foo=bar', 'bar=&foo=bar', '->works with empty parameters'),
-            array('foo=bar&bar=', 'bar=&foo=bar', 'sorts keys alphabetically'),
-
-            // GET parameters, that are submitted from a HTML form, encode spaces as "+" by default (as defined in enctype application/x-www-form-urlencoded).
-            // PHP also converts "+" to spaces when filling the global _GET or when using the function parse_str.
-            array('him=John%20Doe&her=Jane+Doe', 'her=Jane%20Doe&him=John%20Doe', 'normalizes spaces in both encodings "%20" and "+"'),
-
-            array('foo[]=1&foo[]=2', 'foo%5B%5D=1&foo%5B%5D=2', 'allows array notation'),
-            array('foo=1&foo=2', 'foo=1&foo=2', 'allows repeated parameters'),
-            array('pa%3Dram=foo%26bar%3Dbaz&test=test', 'pa%3Dram=foo%26bar%3Dbaz&test=test', 'works with encoded delimiters'),
-            array('0', '0', 'allows "0"'),
-            array('Jane Doe&John%20Doe', 'Jane%20Doe&John%20Doe', 'normalizes encoding in keys'),
-            array('her=Jane Doe&him=John%20Doe', 'her=Jane%20Doe&him=John%20Doe', 'normalizes encoding in values'),
-            array('foo=bar&&&test&&', 'foo=bar&test', 'removes unneeded delimiters'),
-            array('formula=e=m*c^2', 'formula=e%3Dm%2Ac%5E2', 'correctly treats only the first "=" as delimiter and the next as value'),
-
-            // Ignore pairs with empty key, even if there was a value, e.g. "=value", as such nameless values cannot be retrieved anyway.
-            // PHP also does not include them when building _GET.
-            array('foo=bar&=a=b&=x=y', 'foo=bar', 'removes params with empty key'),
-        );
-    }
-
-    public function testGetQueryStringReturnsNull()
-    {
-        $request = new Request();
-
-        $this->assertNull($request->getQueryString(), '->getQueryString() returns null for non-existent query string');
-
-        $request->server->set('QUERY_STRING', '');
-        $this->assertNull($request->getQueryString(), '->getQueryString() returns null for empty query string');
-    }
-
-    public function testGetHost()
-    {
-        $request = new Request();
-
-        $request->initialize(array('foo' => 'bar'));
-        $this->assertEquals('', $request->getHost(), '->getHost() return empty string if not initialized');
-
-        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.example.com'));
-        $this->assertEquals('www.example.com', $request->getHost(), '->getHost() from Host Header');
-
-        // Host header with port number
-        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.example.com:8080'));
-        $this->assertEquals('www.example.com', $request->getHost(), '->getHost() from Host Header with port number');
-
-        // Server values
-        $request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.example.com'));
-        $this->assertEquals('www.example.com', $request->getHost(), '->getHost() from server name');
-
-        $request->initialize(array(), array(), array(), array(), array(), array('SERVER_NAME' => 'www.example.com', 'HTTP_HOST' => 'www.host.com'));
-        $this->assertEquals('www.host.com', $request->getHost(), '->getHost() value from Host header has priority over SERVER_NAME ');
-    }
-
-    public function testGetPort()
-    {
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'https',
-            'HTTP_X_FORWARDED_PORT' => '443',
-        ));
-        $port = $request->getPort();
-
-        $this->assertEquals(80, $port, 'Without trusted proxies FORWARDED_PROTO and FORWARDED_PORT are ignored.');
-
-        Request::setTrustedProxies(array('1.1.1.1'));
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'https',
-            'HTTP_X_FORWARDED_PORT' => '8443',
-        ));
-        $this->assertEquals(80, $request->getPort(), 'With PROTO and PORT on untrusted connection server value takes precedence.');
-        $request->server->set('REMOTE_ADDR', '1.1.1.1');
-        $this->assertEquals(8443, $request->getPort(), 'With PROTO and PORT set PORT takes precedence.');
-
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'https',
-        ));
-        $this->assertEquals(80, $request->getPort(), 'With only PROTO set getPort() ignores trusted headers on untrusted connection.');
-        $request->server->set('REMOTE_ADDR', '1.1.1.1');
-        $this->assertEquals(443, $request->getPort(), 'With only PROTO set getPort() defaults to 443.');
-
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'http',
-        ));
-        $this->assertEquals(80, $request->getPort(), 'If X_FORWARDED_PROTO is set to HTTP getPort() ignores trusted headers on untrusted connection.');
-        $request->server->set('REMOTE_ADDR', '1.1.1.1');
-        $this->assertEquals(80, $request->getPort(), 'If X_FORWARDED_PROTO is set to HTTP getPort() returns port of the original request.');
-
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'On',
-        ));
-        $this->assertEquals(80, $request->getPort(), 'With only PROTO set and value is On, getPort() ignores trusted headers on untrusted connection.');
-        $request->server->set('REMOTE_ADDR', '1.1.1.1');
-        $this->assertEquals(443, $request->getPort(), 'With only PROTO set and value is On, getPort() defaults to 443.');
-
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => '1',
-        ));
-        $this->assertEquals(80, $request->getPort(), 'With only PROTO set and value is 1, getPort() ignores trusted headers on untrusted connection.');
-        $request->server->set('REMOTE_ADDR', '1.1.1.1');
-        $this->assertEquals(443, $request->getPort(), 'With only PROTO set and value is 1, getPort() defaults to 443.');
-
-        $request = Request::create('http://example.com', 'GET', array(), array(), array(), array(
-            'HTTP_X_FORWARDED_PROTO' => 'something-else',
-        ));
-        $port = $request->getPort();
-        $this->assertEquals(80, $port, 'With only PROTO set and value is not recognized, getPort() defaults to 80.');
-
-        Request::setTrustedProxies(array());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testGetHostWithFakeHttpHostValue()
-    {
-        $request = new Request();
-        $request->initialize(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'www.host.com?query=string'));
-        $request->getHost();
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Request::setMethod
-     * @covers Symfony\Component\HttpFoundation\Request::getMethod
-     */
-    public function testGetSetMethod()
-    {
-        $request = new Request();
-
-        $this->assertEquals('GET', $request->getMethod(), '->getMethod() returns GET if no method is defined');
-
-        $request->setMethod('get');
-        $this->assertEquals('GET', $request->getMethod(), '->getMethod() returns an uppercased string');
-
-        $request->setMethod('PURGE');
-        $this->assertEquals('PURGE', $request->getMethod(), '->getMethod() returns the method even if it is not a standard one');
-
-        $request->setMethod('POST');
-        $this->assertEquals('POST', $request->getMethod(), '->getMethod() returns the method POST if no _method is defined');
-
-        $request->setMethod('POST');
-        $request->request->set('_method', 'purge');
-        $this->assertEquals('POST', $request->getMethod(), '->getMethod() does not return the method from _method if defined and POST but support not enabled');
-
-        $request = new Request();
-        $request->setMethod('POST');
-        $request->request->set('_method', 'purge');
-
-        $this->assertFalse(Request::getHttpMethodParameterOverride(), 'httpMethodParameterOverride should be disabled by default');
-
-        Request::enableHttpMethodParameterOverride();
-
-        $this->assertTrue(Request::getHttpMethodParameterOverride(), 'httpMethodParameterOverride should be enabled now but it is not');
-
-        $this->assertEquals('PURGE', $request->getMethod(), '->getMethod() returns the method from _method if defined and POST');
-        $this->disableHttpMethodParameterOverride();
-
-        $request = new Request();
-        $request->setMethod('POST');
-        $request->query->set('_method', 'purge');
-        $this->assertEquals('POST', $request->getMethod(), '->getMethod() does not return the method from _method if defined and POST but support not enabled');
-
-        $request = new Request();
-        $request->setMethod('POST');
-        $request->query->set('_method', 'purge');
-        Request::enableHttpMethodParameterOverride();
-        $this->assertEquals('PURGE', $request->getMethod(), '->getMethod() returns the method from _method if defined and POST');
-        $this->disableHttpMethodParameterOverride();
-
-        $request = new Request();
-        $request->setMethod('POST');
-        $request->headers->set('X-HTTP-METHOD-OVERRIDE', 'delete');
-        $this->assertEquals('DELETE', $request->getMethod(), '->getMethod() returns the method from X-HTTP-Method-Override even though _method is set if defined and POST');
-
-        $request = new Request();
-        $request->setMethod('POST');
-        $request->headers->set('X-HTTP-METHOD-OVERRIDE', 'delete');
-        $this->assertEquals('DELETE', $request->getMethod(), '->getMethod() returns the method from X-HTTP-Method-Override if defined and POST');
-    }
-
-    /**
-     * @dataProvider testGetClientIpsProvider
-     */
-    public function testGetClientIp($expected, $remoteAddr, $httpForwardedFor, $trustedProxies)
-    {
-        $request = $this->getRequestInstanceForClientIpTests($remoteAddr, $httpForwardedFor, $trustedProxies);
-
-        $this->assertEquals($expected[0], $request->getClientIp());
-
-        Request::setTrustedProxies(array());
-    }
-
-    /**
-     * @dataProvider testGetClientIpsProvider
-     */
-    public function testGetClientIps($expected, $remoteAddr, $httpForwardedFor, $trustedProxies)
-    {
-        $request = $this->getRequestInstanceForClientIpTests($remoteAddr, $httpForwardedFor, $trustedProxies);
-
-        $this->assertEquals($expected, $request->getClientIps());
-
-        Request::setTrustedProxies(array());
-    }
-
-    /**
-     * @dataProvider testGetClientIpsForwardedProvider
-     */
-    public function testGetClientIpsForwarded($expected, $remoteAddr, $httpForwarded, $trustedProxies)
-    {
-        $request = $this->getRequestInstanceForClientIpsForwardedTests($remoteAddr, $httpForwarded, $trustedProxies);
-
-        $this->assertEquals($expected, $request->getClientIps());
-
-        Request::setTrustedProxies(array());
-    }
-
-    public function testGetClientIpsForwardedProvider()
-    {
-        //              $expected                                  $remoteAddr  $httpForwarded                                       $trustedProxies
-        return array(
-            array(array('127.0.0.1'),                              '127.0.0.1', 'for="_gazonk"',                                      null),
-            array(array('_gazonk'),                                '127.0.0.1', 'for="_gazonk"',                                      array('127.0.0.1')),
-            array(array('88.88.88.88'),                            '127.0.0.1', 'for="88.88.88.88:80"',                               array('127.0.0.1')),
-            array(array('192.0.2.60'),                             '::1',       'for=192.0.2.60;proto=http;by=203.0.113.43',          array('::1')),
-            array(array('2620:0:1cfe:face:b00c::3', '192.0.2.43'), '::1',       'for=192.0.2.43, for=2620:0:1cfe:face:b00c::3',       array('::1')),
-            array(array('2001:db8:cafe::17'),                      '::1',       'for="[2001:db8:cafe::17]:4711',                      array('::1')),
-        );
-    }
-
-    public function testGetClientIpsProvider()
-    {
-        //        $expected                   $remoteAddr                $httpForwardedFor            $trustedProxies
-        return array(
-            // simple IPv4
-            array(array('88.88.88.88'),              '88.88.88.88',              null,                        null),
-            // trust the IPv4 remote addr
-            array(array('88.88.88.88'),              '88.88.88.88',              null,                        array('88.88.88.88')),
-
-            // simple IPv6
-            array(array('::1'),                      '::1',                      null,                        null),
-            // trust the IPv6 remote addr
-            array(array('::1'),                      '::1',                      null,                        array('::1')),
-
-            // forwarded for with remote IPv4 addr not trusted
-            array(array('127.0.0.1'),                '127.0.0.1',                '88.88.88.88',               null),
-            // forwarded for with remote IPv4 addr trusted
-            array(array('88.88.88.88'),              '127.0.0.1',                '88.88.88.88',               array('127.0.0.1')),
-            // forwarded for with remote IPv4 and all FF addrs trusted
-            array(array('88.88.88.88'),              '127.0.0.1',                '88.88.88.88',               array('127.0.0.1', '88.88.88.88')),
-            // forwarded for with remote IPv4 range trusted
-            array(array('88.88.88.88'),              '123.45.67.89',             '88.88.88.88',               array('123.45.67.0/24')),
-
-            // forwarded for with remote IPv6 addr not trusted
-            array(array('1620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '2620:0:1cfe:face:b00c::3',  null),
-            // forwarded for with remote IPv6 addr trusted
-            array(array('2620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '2620:0:1cfe:face:b00c::3',  array('1620:0:1cfe:face:b00c::3')),
-            // forwarded for with remote IPv6 range trusted
-            array(array('88.88.88.88'),              '2a01:198:603:0:396e:4789:8e99:890f', '88.88.88.88',     array('2a01:198:603:0::/65')),
-
-            // multiple forwarded for with remote IPv4 addr trusted
-            array(array('88.88.88.88', '87.65.43.21', '127.0.0.1'), '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89')),
-            // multiple forwarded for with remote IPv4 addr and some reverse proxies trusted
-            array(array('87.65.43.21', '127.0.0.1'), '123.45.67.89',             '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '88.88.88.88')),
-            // multiple forwarded for with remote IPv4 addr and some reverse proxies trusted but in the middle
-            array(array('88.88.88.88', '127.0.0.1'), '123.45.67.89',             '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '87.65.43.21')),
-            // multiple forwarded for with remote IPv4 addr and all reverse proxies trusted
-            array(array('127.0.0.1'),                '123.45.67.89',             '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '87.65.43.21', '88.88.88.88', '127.0.0.1')),
-
-            // multiple forwarded for with remote IPv6 addr trusted
-            array(array('2620:0:1cfe:face:b00c::3', '3620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '3620:0:1cfe:face:b00c::3,2620:0:1cfe:face:b00c::3', array('1620:0:1cfe:face:b00c::3')),
-            // multiple forwarded for with remote IPv6 addr and some reverse proxies trusted
-            array(array('3620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '3620:0:1cfe:face:b00c::3,2620:0:1cfe:face:b00c::3', array('1620:0:1cfe:face:b00c::3', '2620:0:1cfe:face:b00c::3')),
-            // multiple forwarded for with remote IPv4 addr and some reverse proxies trusted but in the middle
-            array(array('2620:0:1cfe:face:b00c::3', '4620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '4620:0:1cfe:face:b00c::3,3620:0:1cfe:face:b00c::3,2620:0:1cfe:face:b00c::3', array('1620:0:1cfe:face:b00c::3', '3620:0:1cfe:face:b00c::3')),
-
-            // client IP with port
-            array(array('88.88.88.88'), '127.0.0.1', '88.88.88.88:12345, 127.0.0.1', array('127.0.0.1')),
-        );
-    }
-
-    public function testGetContentWorksTwiceInDefaultMode()
-    {
-        $req = new Request();
-        $this->assertEquals('', $req->getContent());
-        $this->assertEquals('', $req->getContent());
-    }
-
-    public function testGetContentReturnsResource()
-    {
-        $req = new Request();
-        $retval = $req->getContent(true);
-        $this->assertInternalType('resource', $retval);
-        $this->assertEquals('', fread($retval, 1));
-        $this->assertTrue(feof($retval));
-    }
-
-    public function testGetContentReturnsResourceWhenContentSetInConstructor()
-    {
-        $req = new Request(array(), array(), array(), array(), array(), array(), 'MyContent');
-        $resource = $req->getContent(true);
-
-        $this->assertTrue(is_resource($resource));
-        $this->assertEquals('MyContent', stream_get_contents($resource));
-    }
-
-    public function testContentAsResource()
-    {
-        $resource = fopen('php://memory','r+');
-        fwrite($resource, 'My other content');
-        rewind($resource);
-
-        $req = new Request(array(), array(), array(), array(), array(), array(), $resource);
-        $this->assertEquals('My other content', stream_get_contents($req->getContent(true)));
-        $this->assertEquals('My other content', $req->getContent());
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @dataProvider getContentCantBeCalledTwiceWithResourcesProvider
-     */
-    public function testGetContentCantBeCalledTwiceWithResources($first, $second)
-    {
-        if (PHP_VERSION_ID >= 50600) {
-            $this->markTestSkipped('PHP >= 5.6 allows to open php://input several times.');
-        }
-
-        $req = new Request();
-        $req->getContent($first);
-        $req->getContent($second);
-    }
-
-    /**
-     * @dataProvider getContentCantBeCalledTwiceWithResourcesProvider
-     */
-    public function testGetContentCanBeCalledTwiceWithResources($first, $second)
-    {
-        if (PHP_VERSION_ID < 50600) {
-            $this->markTestSkipped('PHP < 5.6 does not allow to open php://input several times.');
-        }
-
-        $req = new Request();
-        $a = $req->getContent($first);
-        $b = $req->getContent($second);
-
-        if ($first) {
-            $a = stream_get_contents($a);
-        }
-
-        if ($second) {
-            $b = stream_get_contents($b);
-        }
-
-        $this->assertEquals($a, $b);
-    }
-
-    public function getContentCantBeCalledTwiceWithResourcesProvider()
-    {
-        return array(
-            'Resource then fetch' => array(true, false),
-            'Resource then resource' => array(true, true),
-        );
-    }
-
-    public function provideOverloadedMethods()
-    {
-        return array(
-            array('PUT'),
-            array('DELETE'),
-            array('PATCH'),
-            array('put'),
-            array('delete'),
-            array('patch'),
-
-        );
-    }
-
-    /**
-     * @dataProvider provideOverloadedMethods
-     */
-    public function testCreateFromGlobals($method)
-    {
-        $normalizedMethod = strtoupper($method);
-
-        $_GET['foo1'] = 'bar1';
-        $_POST['foo2'] = 'bar2';
-        $_COOKIE['foo3'] = 'bar3';
-        $_FILES['foo4'] = array('bar4');
-        $_SERVER['foo5'] = 'bar5';
-
-        $request = Request::createFromGlobals();
-        $this->assertEquals('bar1', $request->query->get('foo1'), '::fromGlobals() uses values from $_GET');
-        $this->assertEquals('bar2', $request->request->get('foo2'), '::fromGlobals() uses values from $_POST');
-        $this->assertEquals('bar3', $request->cookies->get('foo3'), '::fromGlobals() uses values from $_COOKIE');
-        $this->assertEquals(array('bar4'), $request->files->get('foo4'), '::fromGlobals() uses values from $_FILES');
-        $this->assertEquals('bar5', $request->server->get('foo5'), '::fromGlobals() uses values from $_SERVER');
-
-        unset($_GET['foo1'], $_POST['foo2'], $_COOKIE['foo3'], $_FILES['foo4'], $_SERVER['foo5']);
-
-        $_SERVER['REQUEST_METHOD'] = $method;
-        $_SERVER['CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
-        $request = RequestContentProxy::createFromGlobals();
-        $this->assertEquals($normalizedMethod, $request->getMethod());
-        $this->assertEquals('mycontent', $request->request->get('content'));
-
-        unset($_SERVER['REQUEST_METHOD'], $_SERVER['CONTENT_TYPE']);
-
-        Request::createFromGlobals();
-        Request::enableHttpMethodParameterOverride();
-        $_POST['_method'] = $method;
-        $_POST['foo6'] = 'bar6';
-        $_SERVER['REQUEST_METHOD'] = 'PoSt';
-        $request = Request::createFromGlobals();
-        $this->assertEquals($normalizedMethod, $request->getMethod());
-        $this->assertEquals('POST', $request->getRealMethod());
-        $this->assertEquals('bar6', $request->request->get('foo6'));
-
-        unset($_POST['_method'], $_POST['foo6'], $_SERVER['REQUEST_METHOD']);
-        $this->disableHttpMethodParameterOverride();
-    }
-
-    public function testOverrideGlobals()
-    {
-        $request = new Request();
-        $request->initialize(array('foo' => 'bar'));
-
-        // as the Request::overrideGlobals really work, it erase $_SERVER, so we must backup it
-        $server = $_SERVER;
-
-        $request->overrideGlobals();
-
-        $this->assertEquals(array('foo' => 'bar'), $_GET);
-
-        $request->initialize(array(), array('foo' => 'bar'));
-        $request->overrideGlobals();
-
-        $this->assertEquals(array('foo' => 'bar'), $_POST);
-
-        $this->assertArrayNotHasKey('HTTP_X_FORWARDED_PROTO', $_SERVER);
-
-        $request->headers->set('X_FORWARDED_PROTO', 'https');
-
-        Request::setTrustedProxies(array('1.1.1.1'));
-        $this->assertFalse($request->isSecure());
-        $request->server->set('REMOTE_ADDR', '1.1.1.1');
-        $this->assertTrue($request->isSecure());
-        Request::setTrustedProxies(array());
-
-        $request->overrideGlobals();
-
-        $this->assertArrayHasKey('HTTP_X_FORWARDED_PROTO', $_SERVER);
-
-        $request->headers->set('CONTENT_TYPE', 'multipart/form-data');
-        $request->headers->set('CONTENT_LENGTH', 12345);
-
-        $request->overrideGlobals();
-
-        $this->assertArrayHasKey('CONTENT_TYPE', $_SERVER);
-        $this->assertArrayHasKey('CONTENT_LENGTH', $_SERVER);
-
-        $request->initialize(array('foo' => 'bar', 'baz' => 'foo'));
-        $request->query->remove('baz');
-
-        $request->overrideGlobals();
-
-        $this->assertEquals(array('foo' => 'bar'), $_GET);
-        $this->assertEquals('foo=bar', $_SERVER['QUERY_STRING']);
-        $this->assertEquals('foo=bar', $request->server->get('QUERY_STRING'));
-
-        // restore initial $_SERVER array
-        $_SERVER = $server;
-    }
-
-    public function testGetScriptName()
-    {
-        $request = new Request();
-        $this->assertEquals('', $request->getScriptName());
-
-        $server = array();
-        $server['SCRIPT_NAME'] = '/index.php';
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('/index.php', $request->getScriptName());
-
-        $server = array();
-        $server['ORIG_SCRIPT_NAME'] = '/frontend.php';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('/frontend.php', $request->getScriptName());
-
-        $server = array();
-        $server['SCRIPT_NAME'] = '/index.php';
-        $server['ORIG_SCRIPT_NAME'] = '/frontend.php';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('/index.php', $request->getScriptName());
-    }
-
-    public function testGetBasePath()
-    {
-        $request = new Request();
-        $this->assertEquals('', $request->getBasePath());
-
-        $server = array();
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-        $this->assertEquals('', $request->getBasePath());
-
-        $server = array();
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-        $server['SCRIPT_NAME'] = '/index.php';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('', $request->getBasePath());
-
-        $server = array();
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-        $server['PHP_SELF'] = '/index.php';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('', $request->getBasePath());
-
-        $server = array();
-        $server['SCRIPT_FILENAME'] = '/some/where/index.php';
-        $server['ORIG_SCRIPT_NAME'] = '/index.php';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('', $request->getBasePath());
-    }
-
-    public function testGetPathInfo()
-    {
-        $request = new Request();
-        $this->assertEquals('/', $request->getPathInfo());
-
-        $server = array();
-        $server['REQUEST_URI'] = '/path/info';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('/path/info', $request->getPathInfo());
-
-        $server = array();
-        $server['REQUEST_URI'] = '/path%20test/info';
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        $this->assertEquals('/path%20test/info', $request->getPathInfo());
-    }
-
-    public function testGetPreferredLanguage()
-    {
-        $request = new Request();
-        $this->assertNull($request->getPreferredLanguage());
-        $this->assertNull($request->getPreferredLanguage(array()));
-        $this->assertEquals('fr', $request->getPreferredLanguage(array('fr')));
-        $this->assertEquals('fr', $request->getPreferredLanguage(array('fr', 'en')));
-        $this->assertEquals('en', $request->getPreferredLanguage(array('en', 'fr')));
-        $this->assertEquals('fr-ch', $request->getPreferredLanguage(array('fr-ch', 'fr-fr')));
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.8, en; q=0.6');
-        $this->assertEquals('en', $request->getPreferredLanguage(array('en', 'en-us')));
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.8, en; q=0.6');
-        $this->assertEquals('en', $request->getPreferredLanguage(array('fr', 'en')));
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.8');
-        $this->assertEquals('en', $request->getPreferredLanguage(array('fr', 'en')));
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.8, fr-fr; q=0.6, fr; q=0.5');
-        $this->assertEquals('en', $request->getPreferredLanguage(array('fr', 'en')));
-    }
-
-    public function testIsXmlHttpRequest()
-    {
-        $request = new Request();
-        $this->assertFalse($request->isXmlHttpRequest());
-
-        $request->headers->set('X-Requested-With', 'XMLHttpRequest');
-        $this->assertTrue($request->isXmlHttpRequest());
-
-        $request->headers->remove('X-Requested-With');
-        $this->assertFalse($request->isXmlHttpRequest());
-    }
-
-    public function testIntlLocale()
-    {
-        if (!extension_loaded('intl')) {
-            $this->markTestSkipped('The intl extension is needed to run this test.');
-        }
-
-        $request = new Request();
-
-        $request->setDefaultLocale('fr');
-        $this->assertEquals('fr', $request->getLocale());
-        $this->assertEquals('fr', \Locale::getDefault());
-
-        $request->setLocale('en');
-        $this->assertEquals('en', $request->getLocale());
-        $this->assertEquals('en', \Locale::getDefault());
-
-        $request->setDefaultLocale('de');
-        $this->assertEquals('en', $request->getLocale());
-        $this->assertEquals('en', \Locale::getDefault());
-    }
-
-    public function testGetCharsets()
-    {
-        $request = new Request();
-        $this->assertEquals(array(), $request->getCharsets());
-        $request->headers->set('Accept-Charset', 'ISO-8859-1, US-ASCII, UTF-8; q=0.8, ISO-10646-UCS-2; q=0.6');
-        $this->assertEquals(array(), $request->getCharsets()); // testing caching
-
-        $request = new Request();
-        $request->headers->set('Accept-Charset', 'ISO-8859-1, US-ASCII, UTF-8; q=0.8, ISO-10646-UCS-2; q=0.6');
-        $this->assertEquals(array('ISO-8859-1', 'US-ASCII', 'UTF-8', 'ISO-10646-UCS-2'), $request->getCharsets());
-
-        $request = new Request();
-        $request->headers->set('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7');
-        $this->assertEquals(array('ISO-8859-1', 'utf-8', '*'), $request->getCharsets());
-    }
-
-    public function testGetEncodings()
-    {
-        $request = new Request();
-        $this->assertEquals(array(), $request->getEncodings());
-        $request->headers->set('Accept-Encoding', 'gzip,deflate,sdch');
-        $this->assertEquals(array(), $request->getEncodings()); // testing caching
-
-        $request = new Request();
-        $request->headers->set('Accept-Encoding', 'gzip,deflate,sdch');
-        $this->assertEquals(array('gzip', 'deflate', 'sdch'), $request->getEncodings());
-
-        $request = new Request();
-        $request->headers->set('Accept-Encoding', 'gzip;q=0.4,deflate;q=0.9,compress;q=0.7');
-        $this->assertEquals(array('deflate', 'compress', 'gzip'), $request->getEncodings());
-    }
-
-    public function testGetAcceptableContentTypes()
-    {
-        $request = new Request();
-        $this->assertEquals(array(), $request->getAcceptableContentTypes());
-        $request->headers->set('Accept', 'application/vnd.wap.wmlscriptc, text/vnd.wap.wml, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/html, multipart/mixed, */*');
-        $this->assertEquals(array(), $request->getAcceptableContentTypes()); // testing caching
-
-        $request = new Request();
-        $request->headers->set('Accept', 'application/vnd.wap.wmlscriptc, text/vnd.wap.wml, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/html, multipart/mixed, */*');
-        $this->assertEquals(array('application/vnd.wap.wmlscriptc', 'text/vnd.wap.wml', 'application/vnd.wap.xhtml+xml', 'application/xhtml+xml', 'text/html', 'multipart/mixed', '*/*'), $request->getAcceptableContentTypes());
-    }
-
-    public function testGetLanguages()
-    {
-        $request = new Request();
-        $this->assertEquals(array(), $request->getLanguages());
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.8, en; q=0.6');
-        $this->assertEquals(array('zh', 'en_US', 'en'), $request->getLanguages());
-        $this->assertEquals(array('zh', 'en_US', 'en'), $request->getLanguages());
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.6, en; q=0.8');
-        $this->assertEquals(array('zh', 'en', 'en_US'), $request->getLanguages()); // Test out of order qvalues
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, en, en-us');
-        $this->assertEquals(array('zh', 'en', 'en_US'), $request->getLanguages()); // Test equal weighting without qvalues
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh; q=0.6, en, en-us; q=0.6');
-        $this->assertEquals(array('en', 'zh', 'en_US'), $request->getLanguages()); // Test equal weighting with qvalues
-
-        $request = new Request();
-        $request->headers->set('Accept-language', 'zh, i-cherokee; q=0.6');
-        $this->assertEquals(array('zh', 'cherokee'), $request->getLanguages());
-    }
-
-    public function testGetRequestFormat()
-    {
-        $request = new Request();
-        $this->assertEquals('html', $request->getRequestFormat());
-
-        $request = new Request();
-        $this->assertNull($request->getRequestFormat(null));
-
-        $request = new Request();
-        $this->assertNull($request->setRequestFormat('foo'));
-        $this->assertEquals('foo', $request->getRequestFormat(null));
-    }
-
-    public function testHasSession()
-    {
-        $request = new Request();
-
-        $this->assertFalse($request->hasSession());
-        $request->setSession(new Session(new MockArraySessionStorage()));
-        $this->assertTrue($request->hasSession());
-    }
-
-    public function testGetSession()
-    {
-        $request = new Request();
-
-        $request->setSession(new Session(new MockArraySessionStorage()));
-        $this->assertTrue($request->hasSession());
-
-        $session = $request->getSession();
-        $this->assertObjectHasAttribute('storage', $session);
-        $this->assertObjectHasAttribute('flashName', $session);
-        $this->assertObjectHasAttribute('attributeName', $session);
-    }
-
-    public function testHasPreviousSession()
-    {
-        $request = new Request();
-
-        $this->assertFalse($request->hasPreviousSession());
-        $request->cookies->set('MOCKSESSID', 'foo');
-        $this->assertFalse($request->hasPreviousSession());
-        $request->setSession(new Session(new MockArraySessionStorage()));
-        $this->assertTrue($request->hasPreviousSession());
-    }
-
-    public function testToString()
-    {
-        $request = new Request();
-
-        $request->headers->set('Accept-language', 'zh, en-us; q=0.8, en; q=0.6');
-
-        $this->assertContains('Accept-Language: zh, en-us; q=0.8, en; q=0.6', $request->__toString());
-    }
-
-    public function testIsMethod()
-    {
-        $request = new Request();
-        $request->setMethod('POST');
-        $this->assertTrue($request->isMethod('POST'));
-        $this->assertTrue($request->isMethod('post'));
-        $this->assertFalse($request->isMethod('GET'));
-        $this->assertFalse($request->isMethod('get'));
-
-        $request->setMethod('GET');
-        $this->assertTrue($request->isMethod('GET'));
-        $this->assertTrue($request->isMethod('get'));
-        $this->assertFalse($request->isMethod('POST'));
-        $this->assertFalse($request->isMethod('post'));
-    }
-
-    /**
-     * @dataProvider getBaseUrlData
-     */
-    public function testGetBaseUrl($uri, $server, $expectedBaseUrl, $expectedPathInfo)
-    {
-        $request = Request::create($uri, 'GET', array(), array(), array(), $server);
-
-        $this->assertSame($expectedBaseUrl, $request->getBaseUrl(), 'baseUrl');
-        $this->assertSame($expectedPathInfo, $request->getPathInfo(), 'pathInfo');
-    }
-
-    public function getBaseUrlData()
-    {
-        return array(
-            array(
-                '/fruit/strawberry/1234index.php/blah',
-                array(
-                    'SCRIPT_FILENAME' => 'E:/Sites/cc-new/public_html/fruit/index.php',
-                    'SCRIPT_NAME' => '/fruit/index.php',
-                    'PHP_SELF' => '/fruit/index.php',
-                ),
-                '/fruit',
-                '/strawberry/1234index.php/blah',
-            ),
-            array(
-                '/fruit/strawberry/1234index.php/blah',
-                array(
-                    'SCRIPT_FILENAME' => 'E:/Sites/cc-new/public_html/index.php',
-                    'SCRIPT_NAME' => '/index.php',
-                    'PHP_SELF' => '/index.php',
-                ),
-                '',
-                '/fruit/strawberry/1234index.php/blah',
-            ),
-            array(
-                '/foo%20bar/',
-                array(
-                    'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo bar/app.php',
-                    'SCRIPT_NAME' => '/foo bar/app.php',
-                    'PHP_SELF' => '/foo bar/app.php',
-                ),
-                '/foo%20bar',
-                '/',
-            ),
-            array(
-                '/foo%20bar/home',
-                array(
-                    'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo bar/app.php',
-                    'SCRIPT_NAME' => '/foo bar/app.php',
-                    'PHP_SELF' => '/foo bar/app.php',
-                ),
-                '/foo%20bar',
-                '/home',
-            ),
-            array(
-                '/foo%20bar/app.php/home',
-                array(
-                    'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo bar/app.php',
-                    'SCRIPT_NAME' => '/foo bar/app.php',
-                    'PHP_SELF' => '/foo bar/app.php',
-                ),
-                '/foo%20bar/app.php',
-                '/home',
-            ),
-            array(
-                '/foo%20bar/app.php/home%3Dbaz',
-                array(
-                    'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo bar/app.php',
-                    'SCRIPT_NAME' => '/foo bar/app.php',
-                    'PHP_SELF' => '/foo bar/app.php',
-                ),
-                '/foo%20bar/app.php',
-                '/home%3Dbaz',
-            ),
-            array(
-                '/foo/bar+baz',
-                array(
-                    'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo/app.php',
-                    'SCRIPT_NAME' => '/foo/app.php',
-                    'PHP_SELF' => '/foo/app.php',
-                ),
-                '/foo',
-                '/bar+baz',
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider urlencodedStringPrefixData
-     */
-    public function testUrlencodedStringPrefix($string, $prefix, $expect)
-    {
-        $request = new Request();
-
-        $me = new \ReflectionMethod($request, 'getUrlencodedPrefix');
-        $me->setAccessible(true);
-
-        $this->assertSame($expect, $me->invoke($request, $string, $prefix));
-    }
-
-    public function urlencodedStringPrefixData()
-    {
-        return array(
-            array('foo', 'foo', 'foo'),
-            array('fo%6f', 'foo', 'fo%6f'),
-            array('foo/bar', 'foo', 'foo'),
-            array('fo%6f/bar', 'foo', 'fo%6f'),
-            array('f%6f%6f/bar', 'foo', 'f%6f%6f'),
-            array('%66%6F%6F/bar', 'foo', '%66%6F%6F'),
-            array('fo+o/bar', 'fo+o', 'fo+o'),
-            array('fo%2Bo/bar', 'fo+o', 'fo%2Bo'),
-        );
-    }
-
-    private function disableHttpMethodParameterOverride()
-    {
-        $class = new \ReflectionClass('Symfony\\Component\\HttpFoundation\\Request');
-        $property = $class->getProperty('httpMethodParameterOverride');
-        $property->setAccessible(true);
-        $property->setValue(false);
-    }
-
-    private function getRequestInstanceForClientIpTests($remoteAddr, $httpForwardedFor, $trustedProxies)
-    {
-        $request = new Request();
-
-        $server = array('REMOTE_ADDR' => $remoteAddr);
-        if (null !== $httpForwardedFor) {
-            $server['HTTP_X_FORWARDED_FOR'] = $httpForwardedFor;
-        }
-
-        if ($trustedProxies) {
-            Request::setTrustedProxies($trustedProxies);
-        }
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        return $request;
-    }
-
-    private function getRequestInstanceForClientIpsForwardedTests($remoteAddr, $httpForwarded, $trustedProxies)
-    {
-        $request = new Request();
-
-        $server = array('REMOTE_ADDR' => $remoteAddr);
-
-        if (null !== $httpForwarded) {
-            $server['HTTP_FORWARDED'] = $httpForwarded;
-        }
-
-        if ($trustedProxies) {
-            Request::setTrustedProxies($trustedProxies);
-        }
-
-        $request->initialize(array(), array(), array(), array(), array(), $server);
-
-        return $request;
-    }
-
-    public function testTrustedProxies()
-    {
-        $request = Request::create('http://example.com/');
-        $request->server->set('REMOTE_ADDR', '3.3.3.3');
-        $request->headers->set('X_FORWARDED_FOR', '1.1.1.1, 2.2.2.2');
-        $request->headers->set('X_FORWARDED_HOST', 'foo.example.com, real.example.com:8080');
-        $request->headers->set('X_FORWARDED_PROTO', 'https');
-        $request->headers->set('X_FORWARDED_PORT', 443);
-        $request->headers->set('X_MY_FOR', '3.3.3.3, 4.4.4.4');
-        $request->headers->set('X_MY_HOST', 'my.example.com');
-        $request->headers->set('X_MY_PROTO', 'http');
-        $request->headers->set('X_MY_PORT', 81);
-
-        // no trusted proxies
-        $this->assertEquals('3.3.3.3', $request->getClientIp());
-        $this->assertEquals('example.com', $request->getHost());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertFalse($request->isSecure());
-
-        // disabling proxy trusting
-        Request::setTrustedProxies(array());
-        $this->assertEquals('3.3.3.3', $request->getClientIp());
-        $this->assertEquals('example.com', $request->getHost());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertFalse($request->isSecure());
-
-        // trusted proxy via setTrustedProxies()
-        Request::setTrustedProxies(array('3.3.3.3', '2.2.2.2'));
-        $this->assertEquals('1.1.1.1', $request->getClientIp());
-        $this->assertEquals('real.example.com', $request->getHost());
-        $this->assertEquals(443, $request->getPort());
-        $this->assertTrue($request->isSecure());
-
-        // trusted proxy via setTrustedProxies()
-        Request::setTrustedProxies(array('3.3.3.4', '2.2.2.2'));
-        $this->assertEquals('3.3.3.3', $request->getClientIp());
-        $this->assertEquals('example.com', $request->getHost());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertFalse($request->isSecure());
-
-        // check various X_FORWARDED_PROTO header values
-        Request::setTrustedProxies(array('3.3.3.3', '2.2.2.2'));
-        $request->headers->set('X_FORWARDED_PROTO', 'ssl');
-        $this->assertTrue($request->isSecure());
-
-        $request->headers->set('X_FORWARDED_PROTO', 'https, http');
-        $this->assertTrue($request->isSecure());
-
-        // custom header names
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, 'X_MY_FOR');
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_HOST, 'X_MY_HOST');
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_PORT, 'X_MY_PORT');
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_PROTO, 'X_MY_PROTO');
-        $this->assertEquals('4.4.4.4', $request->getClientIp());
-        $this->assertEquals('my.example.com', $request->getHost());
-        $this->assertEquals(81, $request->getPort());
-        $this->assertFalse($request->isSecure());
-
-        // disabling via empty header names
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, null);
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_HOST, null);
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_PORT, null);
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_PROTO, null);
-        $this->assertEquals('3.3.3.3', $request->getClientIp());
-        $this->assertEquals('example.com', $request->getHost());
-        $this->assertEquals(80, $request->getPort());
-        $this->assertFalse($request->isSecure());
-
-        // reset
-        Request::setTrustedProxies(array());
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, 'X_FORWARDED_FOR');
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_HOST, 'X_FORWARDED_HOST');
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_PORT, 'X_FORWARDED_PORT');
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_PROTO, 'X_FORWARDED_PROTO');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetTrustedProxiesInvalidHeaderName()
-    {
-        Request::create('http://example.com/');
-        Request::setTrustedHeaderName('bogus name', 'X_MY_FOR');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testGetTrustedProxiesInvalidHeaderName()
-    {
-        Request::create('http://example.com/');
-        Request::getTrustedHeaderName('bogus name');
-    }
-
-    /**
-     * @dataProvider iisRequestUriProvider
-     */
-    public function testIISRequestUri($headers, $server, $expectedRequestUri)
-    {
-        $request = new Request();
-        $request->headers->replace($headers);
-        $request->server->replace($server);
-
-        $this->assertEquals($expectedRequestUri, $request->getRequestUri(), '->getRequestUri() is correct');
-
-        $subRequestUri = '/bar/foo';
-        $subRequest = Request::create($subRequestUri, 'get', array(), array(), array(), $request->server->all());
-        $this->assertEquals($subRequestUri, $subRequest->getRequestUri(), '->getRequestUri() is correct in sub request');
-    }
-
-    public function iisRequestUriProvider()
-    {
-        return array(
-            array(
-                array(
-                    'X_ORIGINAL_URL' => '/foo/bar',
-                ),
-                array(),
-                '/foo/bar',
-            ),
-            array(
-                array(
-                    'X_REWRITE_URL' => '/foo/bar',
-                ),
-                array(),
-                '/foo/bar',
-            ),
-            array(
-                array(),
-                array(
-                    'IIS_WasUrlRewritten' => '1',
-                    'UNENCODED_URL' => '/foo/bar',
-                ),
-                '/foo/bar',
-            ),
-            array(
-                array(
-                    'X_ORIGINAL_URL' => '/foo/bar',
-                ),
-                array(
-                    'HTTP_X_ORIGINAL_URL' => '/foo/bar',
-                ),
-                '/foo/bar',
-            ),
-            array(
-                array(
-                    'X_ORIGINAL_URL' => '/foo/bar',
-                ),
-                array(
-                    'IIS_WasUrlRewritten' => '1',
-                    'UNENCODED_URL' => '/foo/bar',
-                ),
-                '/foo/bar',
-            ),
-            array(
-                array(
-                    'X_ORIGINAL_URL' => '/foo/bar',
-                ),
-                array(
-                    'HTTP_X_ORIGINAL_URL' => '/foo/bar',
-                    'IIS_WasUrlRewritten' => '1',
-                    'UNENCODED_URL' => '/foo/bar',
-                ),
-                '/foo/bar',
-            ),
-            array(
-                array(),
-                array(
-                    'ORIG_PATH_INFO' => '/foo/bar',
-                ),
-                '/foo/bar',
-            ),
-            array(
-                array(),
-                array(
-                    'ORIG_PATH_INFO' => '/foo/bar',
-                    'QUERY_STRING' => 'foo=bar',
-                ),
-                '/foo/bar?foo=bar',
-            ),
-        );
-    }
-
-    public function testTrustedHosts()
-    {
-        // create a request
-        $request = Request::create('/');
-
-        // no trusted host set -> no host check
-        $request->headers->set('host', 'evil.com');
-        $this->assertEquals('evil.com', $request->getHost());
-
-        // add a trusted domain and all its subdomains
-        Request::setTrustedHosts(array('^([a-z]{9}\.)?trusted\.com$'));
-
-        // untrusted host
-        $request->headers->set('host', 'evil.com');
-        try {
-            $request->getHost();
-            $this->fail('Request::getHost() should throw an exception when host is not trusted.');
-        } catch (\UnexpectedValueException $e) {
-            $this->assertEquals('Untrusted Host "evil.com"', $e->getMessage());
-        }
-
-        // trusted hosts
-        $request->headers->set('host', 'trusted.com');
-        $this->assertEquals('trusted.com', $request->getHost());
-        $this->assertEquals(80, $request->getPort());
-
-        $request->server->set('HTTPS', true);
-        $request->headers->set('host', 'trusted.com');
-        $this->assertEquals('trusted.com', $request->getHost());
-        $this->assertEquals(443, $request->getPort());
-        $request->server->set('HTTPS', false);
-
-        $request->headers->set('host', 'trusted.com:8000');
-        $this->assertEquals('trusted.com', $request->getHost());
-        $this->assertEquals(8000, $request->getPort());
-
-        $request->headers->set('host', 'subdomain.trusted.com');
-        $this->assertEquals('subdomain.trusted.com', $request->getHost());
-
-        // reset request for following tests
-        Request::setTrustedHosts(array());
-    }
-
-    public function testFactory()
-    {
-        Request::setFactory(function (array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null) {
-            return new NewRequest();
-        });
-
-        $this->assertEquals('foo', Request::create('/')->getFoo());
-
-        Request::setFactory(null);
-    }
-
-    /**
-     * @dataProvider getLongHostNames
-     */
-    public function testVeryLongHosts($host)
-    {
-        $start = microtime(true);
-
-        $request = Request::create('/');
-        $request->headers->set('host', $host);
-        $this->assertEquals($host, $request->getHost());
-        $this->assertLessThan(1, microtime(true) - $start);
-    }
-
-    /**
-     * @dataProvider getHostValidities
-     */
-    public function testHostValidity($host, $isValid, $expectedHost = null, $expectedPort = null)
-    {
-        $request = Request::create('/');
-        $request->headers->set('host', $host);
-
-        if ($isValid) {
-            $this->assertSame($expectedHost ?: $host, $request->getHost());
-            if ($expectedPort) {
-                $this->assertSame($expectedPort, $request->getPort());
-            }
-        } else {
-            $this->setExpectedException('UnexpectedValueException', 'Invalid Host');
-            $request->getHost();
-        }
-    }
-
-    public function getHostValidities()
-    {
-        return array(
-            array('.a', false),
-            array('a..', false),
-            array('a.', true),
-            array("\xE9", false),
-            array('[::1]', true),
-            array('[::1]:80', true, '[::1]', 80),
-            array(str_repeat('.', 101), false),
-        );
-    }
-
-    public function getLongHostNames()
-    {
-        return array(
-            array('a'.str_repeat('.a', 40000)),
-            array(str_repeat(':', 101)),
-        );
-    }
-}
-
-class RequestContentProxy extends Request
-{
-    public function getContent($asResource = false)
-    {
-        return http_build_query(array('_method' => 'PUT', 'content' => 'mycontent'));
-    }
-}
-
-class NewRequest extends Request
-{
-    public function getFoo()
-    {
-        return 'foo';
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ResponseHeaderBagTest.php b/core/vendor/symfony/http-foundation/Tests/ResponseHeaderBagTest.php
deleted file mode 100644
index 0fa198e..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ResponseHeaderBagTest.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\ResponseHeaderBag;
-use Symfony\Component\HttpFoundation\Cookie;
-
-require_once __DIR__.'/ClockMock.php';
-
-class ResponseHeaderBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @covers Symfony\Component\HttpFoundation\ResponseHeaderBag::allPreserveCase
-     * @dataProvider provideAllPreserveCase
-     */
-    public function testAllPreserveCase($headers, $expected)
-    {
-        $bag = new ResponseHeaderBag($headers);
-
-        $this->assertEquals($expected, $bag->allPreserveCase(), '->allPreserveCase() gets all input keys in original case');
-    }
-
-    public function provideAllPreserveCase()
-    {
-        return array(
-            array(
-                array('fOo' => 'BAR'),
-                array('fOo' => array('BAR'), 'Cache-Control' => array('no-cache')),
-            ),
-            array(
-                array('ETag' => 'xyzzy'),
-                array('ETag' => array('xyzzy'), 'Cache-Control' => array('private, must-revalidate')),
-            ),
-            array(
-                array('Content-MD5' => 'Q2hlY2sgSW50ZWdyaXR5IQ=='),
-                array('Content-MD5' => array('Q2hlY2sgSW50ZWdyaXR5IQ=='), 'Cache-Control' => array('no-cache')),
-            ),
-            array(
-                array('P3P' => 'CP="CAO PSA OUR"'),
-                array('P3P' => array('CP="CAO PSA OUR"'), 'Cache-Control' => array('no-cache')),
-            ),
-            array(
-                array('WWW-Authenticate' => 'Basic realm="WallyWorld"'),
-                array('WWW-Authenticate' => array('Basic realm="WallyWorld"'), 'Cache-Control' => array('no-cache')),
-            ),
-            array(
-                array('X-UA-Compatible' => 'IE=edge,chrome=1'),
-                array('X-UA-Compatible' => array('IE=edge,chrome=1'), 'Cache-Control' => array('no-cache')),
-            ),
-            array(
-                array('X-XSS-Protection' => '1; mode=block'),
-                array('X-XSS-Protection' => array('1; mode=block'), 'Cache-Control' => array('no-cache')),
-            ),
-        );
-    }
-
-    public function testCacheControlHeader()
-    {
-        $bag = new ResponseHeaderBag(array());
-        $this->assertEquals('no-cache', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('no-cache'));
-
-        $bag = new ResponseHeaderBag(array('Cache-Control' => 'public'));
-        $this->assertEquals('public', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('public'));
-
-        $bag = new ResponseHeaderBag(array('ETag' => 'abcde'));
-        $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('private'));
-        $this->assertTrue($bag->hasCacheControlDirective('must-revalidate'));
-        $this->assertFalse($bag->hasCacheControlDirective('max-age'));
-
-        $bag = new ResponseHeaderBag(array('Expires' => 'Wed, 16 Feb 2011 14:17:43 GMT'));
-        $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array(
-            'Expires' => 'Wed, 16 Feb 2011 14:17:43 GMT',
-            'Cache-Control' => 'max-age=3600',
-        ));
-        $this->assertEquals('max-age=3600, private', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array('Last-Modified' => 'abcde'));
-        $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array('Etag' => 'abcde', 'Last-Modified' => 'abcde'));
-        $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array('cache-control' => 'max-age=100'));
-        $this->assertEquals('max-age=100, private', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array('cache-control' => 's-maxage=100'));
-        $this->assertEquals('s-maxage=100', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array('cache-control' => 'private, max-age=100'));
-        $this->assertEquals('max-age=100, private', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag(array('cache-control' => 'public, max-age=100'));
-        $this->assertEquals('max-age=100, public', $bag->get('Cache-Control'));
-
-        $bag = new ResponseHeaderBag();
-        $bag->set('Last-Modified', 'abcde');
-        $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control'));
-    }
-
-    public function testToStringIncludesCookieHeaders()
-    {
-        $bag = new ResponseHeaderBag(array());
-        $bag->setCookie(new Cookie('foo', 'bar'));
-
-        $this->assertContains('Set-Cookie: foo=bar; path=/; httponly', explode("\r\n", $bag->__toString()));
-
-        $bag->clearCookie('foo');
-
-        $this->assertRegExp('#^Set-Cookie: foo=deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001).'; path=/; httponly#m', $bag->__toString());
-    }
-
-    public function testClearCookieSecureNotHttpOnly()
-    {
-        $bag = new ResponseHeaderBag(array());
-
-        $bag->clearCookie('foo', '/', null, true, false);
-
-        $this->assertRegExp('#^Set-Cookie: foo=deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001).'; path=/; secure#m', $bag->__toString());
-    }
-
-    public function testReplace()
-    {
-        $bag = new ResponseHeaderBag(array());
-        $this->assertEquals('no-cache', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('no-cache'));
-
-        $bag->replace(array('Cache-Control' => 'public'));
-        $this->assertEquals('public', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('public'));
-    }
-
-    public function testReplaceWithRemove()
-    {
-        $bag = new ResponseHeaderBag(array());
-        $this->assertEquals('no-cache', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('no-cache'));
-
-        $bag->remove('Cache-Control');
-        $bag->replace(array());
-        $this->assertEquals('no-cache', $bag->get('Cache-Control'));
-        $this->assertTrue($bag->hasCacheControlDirective('no-cache'));
-    }
-
-    public function testCookiesWithSameNames()
-    {
-        $bag = new ResponseHeaderBag();
-        $bag->setCookie(new Cookie('foo', 'bar', 0, '/path/foo', 'foo.bar'));
-        $bag->setCookie(new Cookie('foo', 'bar', 0, '/path/bar', 'foo.bar'));
-        $bag->setCookie(new Cookie('foo', 'bar', 0, '/path/bar', 'bar.foo'));
-        $bag->setCookie(new Cookie('foo', 'bar'));
-
-        $this->assertCount(4, $bag->getCookies());
-
-        $headers = explode("\r\n", $bag->__toString());
-        $this->assertContains('Set-Cookie: foo=bar; path=/path/foo; domain=foo.bar; httponly', $headers);
-        $this->assertContains('Set-Cookie: foo=bar; path=/path/foo; domain=foo.bar; httponly', $headers);
-        $this->assertContains('Set-Cookie: foo=bar; path=/path/bar; domain=bar.foo; httponly', $headers);
-        $this->assertContains('Set-Cookie: foo=bar; path=/; httponly', $headers);
-
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertTrue(isset($cookies['foo.bar']['/path/foo']['foo']));
-        $this->assertTrue(isset($cookies['foo.bar']['/path/bar']['foo']));
-        $this->assertTrue(isset($cookies['bar.foo']['/path/bar']['foo']));
-        $this->assertTrue(isset($cookies['']['/']['foo']));
-    }
-
-    public function testRemoveCookie()
-    {
-        $bag = new ResponseHeaderBag();
-        $bag->setCookie(new Cookie('foo', 'bar', 0, '/path/foo', 'foo.bar'));
-        $bag->setCookie(new Cookie('bar', 'foo', 0, '/path/bar', 'foo.bar'));
-
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertTrue(isset($cookies['foo.bar']['/path/foo']));
-
-        $bag->removeCookie('foo', '/path/foo', 'foo.bar');
-
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertFalse(isset($cookies['foo.bar']['/path/foo']));
-
-        $bag->removeCookie('bar', '/path/bar', 'foo.bar');
-
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertFalse(isset($cookies['foo.bar']));
-    }
-
-    public function testRemoveCookieWithNullRemove()
-    {
-        $bag = new ResponseHeaderBag();
-        $bag->setCookie(new Cookie('foo', 'bar', 0));
-        $bag->setCookie(new Cookie('bar', 'foo', 0));
-
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertTrue(isset($cookies['']['/']));
-
-        $bag->removeCookie('foo', null);
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertFalse(isset($cookies['']['/']['foo']));
-
-        $bag->removeCookie('bar', null);
-        $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY);
-        $this->assertFalse(isset($cookies['']['/']['bar']));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testGetCookiesWithInvalidArgument()
-    {
-        $bag = new ResponseHeaderBag();
-
-        $cookies = $bag->getCookies('invalid_argument');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testMakeDispositionInvalidDisposition()
-    {
-        $headers = new ResponseHeaderBag();
-
-        $headers->makeDisposition('invalid', 'foo.html');
-    }
-
-    /**
-     * @dataProvider provideMakeDisposition
-     */
-    public function testMakeDisposition($disposition, $filename, $filenameFallback, $expected)
-    {
-        $headers = new ResponseHeaderBag();
-
-        $this->assertEquals($expected, $headers->makeDisposition($disposition, $filename, $filenameFallback));
-    }
-
-    public function testToStringDoesntMessUpHeaders()
-    {
-        $headers = new ResponseHeaderBag();
-
-        $headers->set('Location', 'http://www.symfony.com');
-        $headers->set('Content-type', 'text/html');
-
-        (string) $headers;
-
-        $allHeaders = $headers->allPreserveCase();
-        $this->assertEquals(array('http://www.symfony.com'), $allHeaders['Location']);
-        $this->assertEquals(array('text/html'), $allHeaders['Content-type']);
-    }
-
-    public function provideMakeDisposition()
-    {
-        return array(
-            array('attachment', 'foo.html', 'foo.html', 'attachment; filename="foo.html"'),
-            array('attachment', 'foo.html', '', 'attachment; filename="foo.html"'),
-            array('attachment', 'foo bar.html', '', 'attachment; filename="foo bar.html"'),
-            array('attachment', 'foo "bar".html', '', 'attachment; filename="foo \\"bar\\".html"'),
-            array('attachment', 'foo%20bar.html', 'foo bar.html', 'attachment; filename="foo bar.html"; filename*=utf-8\'\'foo%2520bar.html'),
-            array('attachment', 'föö.html', 'foo.html', 'attachment; filename="foo.html"; filename*=utf-8\'\'f%C3%B6%C3%B6.html'),
-        );
-    }
-
-    /**
-     * @dataProvider provideMakeDispositionFail
-     * @expectedException \InvalidArgumentException
-     */
-    public function testMakeDispositionFail($disposition, $filename)
-    {
-        $headers = new ResponseHeaderBag();
-
-        $headers->makeDisposition($disposition, $filename);
-    }
-
-    public function provideMakeDispositionFail()
-    {
-        return array(
-            array('attachment', 'foo%20bar.html'),
-            array('attachment', 'foo/bar.html'),
-            array('attachment', '/foo.html'),
-            array('attachment', 'foo\bar.html'),
-            array('attachment', '\foo.html'),
-            array('attachment', 'föö.html'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ResponseTest.php b/core/vendor/symfony/http-foundation/Tests/ResponseTest.php
deleted file mode 100644
index 4319a39..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ResponseTest.php
+++ /dev/null
@@ -1,874 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class ResponseTest extends ResponseTestCase
-{
-    public function testCreate()
-    {
-        $response = Response::create('foo', 301, array('Foo' => 'bar'));
-
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
-        $this->assertEquals(301, $response->getStatusCode());
-        $this->assertEquals('bar', $response->headers->get('foo'));
-    }
-
-    public function testToString()
-    {
-        $response = new Response();
-        $response = explode("\r\n", $response);
-        $this->assertEquals('HTTP/1.0 200 OK', $response[0]);
-        $this->assertEquals('Cache-Control: no-cache', $response[1]);
-    }
-
-    public function testClone()
-    {
-        $response = new Response();
-        $responseClone = clone $response;
-        $this->assertEquals($response, $responseClone);
-    }
-
-    public function testSendHeaders()
-    {
-        $response = new Response();
-        $headers = $response->sendHeaders();
-        $this->assertObjectHasAttribute('headers', $headers);
-        $this->assertObjectHasAttribute('content', $headers);
-        $this->assertObjectHasAttribute('version', $headers);
-        $this->assertObjectHasAttribute('statusCode', $headers);
-        $this->assertObjectHasAttribute('statusText', $headers);
-        $this->assertObjectHasAttribute('charset', $headers);
-    }
-
-    public function testSend()
-    {
-        $response = new Response();
-        $responseSend = $response->send();
-        $this->assertObjectHasAttribute('headers', $responseSend);
-        $this->assertObjectHasAttribute('content', $responseSend);
-        $this->assertObjectHasAttribute('version', $responseSend);
-        $this->assertObjectHasAttribute('statusCode', $responseSend);
-        $this->assertObjectHasAttribute('statusText', $responseSend);
-        $this->assertObjectHasAttribute('charset', $responseSend);
-    }
-
-    public function testGetCharset()
-    {
-        $response = new Response();
-        $charsetOrigin = 'UTF-8';
-        $response->setCharset($charsetOrigin);
-        $charset = $response->getCharset();
-        $this->assertEquals($charsetOrigin, $charset);
-    }
-
-    public function testIsCacheable()
-    {
-        $response = new Response();
-        $this->assertFalse($response->isCacheable());
-    }
-
-    public function testIsCacheableWithErrorCode()
-    {
-        $response = new Response('', 500);
-        $this->assertFalse($response->isCacheable());
-    }
-
-    public function testIsCacheableWithNoStoreDirective()
-    {
-        $response = new Response();
-        $response->headers->set('cache-control', 'private');
-        $this->assertFalse($response->isCacheable());
-    }
-
-    public function testIsCacheableWithSetTtl()
-    {
-        $response = new Response();
-        $response->setTtl(10);
-        $this->assertTrue($response->isCacheable());
-    }
-
-    public function testMustRevalidate()
-    {
-        $response = new Response();
-        $this->assertFalse($response->mustRevalidate());
-    }
-
-    public function testSetNotModified()
-    {
-        $response = new Response();
-        $modified = $response->setNotModified();
-        $this->assertObjectHasAttribute('headers', $modified);
-        $this->assertObjectHasAttribute('content', $modified);
-        $this->assertObjectHasAttribute('version', $modified);
-        $this->assertObjectHasAttribute('statusCode', $modified);
-        $this->assertObjectHasAttribute('statusText', $modified);
-        $this->assertObjectHasAttribute('charset', $modified);
-        $this->assertEquals(304, $modified->getStatusCode());
-    }
-
-    public function testIsSuccessful()
-    {
-        $response = new Response();
-        $this->assertTrue($response->isSuccessful());
-    }
-
-    public function testIsNotModified()
-    {
-        $response = new Response();
-        $modified = $response->isNotModified(new Request());
-        $this->assertFalse($modified);
-    }
-
-    public function testIsNotModifiedNotSafe()
-    {
-        $request = Request::create('/homepage', 'POST');
-
-        $response = new Response();
-        $this->assertFalse($response->isNotModified($request));
-    }
-
-    public function testIsNotModifiedLastModified()
-    {
-        $before = 'Sun, 25 Aug 2013 18:32:31 GMT';
-        $modified = 'Sun, 25 Aug 2013 18:33:31 GMT';
-        $after = 'Sun, 25 Aug 2013 19:33:31 GMT';
-
-        $request = new Request();
-        $request->headers->set('If-Modified-Since', $modified);
-
-        $response = new Response();
-
-        $response->headers->set('Last-Modified', $modified);
-        $this->assertTrue($response->isNotModified($request));
-
-        $response->headers->set('Last-Modified', $before);
-        $this->assertTrue($response->isNotModified($request));
-
-        $response->headers->set('Last-Modified', $after);
-        $this->assertFalse($response->isNotModified($request));
-
-        $response->headers->set('Last-Modified', '');
-        $this->assertFalse($response->isNotModified($request));
-    }
-
-    public function testIsNotModifiedEtag()
-    {
-        $etagOne = 'randomly_generated_etag';
-        $etagTwo = 'randomly_generated_etag_2';
-
-        $request = new Request();
-        $request->headers->set('if_none_match', sprintf('%s, %s, %s', $etagOne, $etagTwo, 'etagThree'));
-
-        $response = new Response();
-
-        $response->headers->set('ETag', $etagOne);
-        $this->assertTrue($response->isNotModified($request));
-
-        $response->headers->set('ETag', $etagTwo);
-        $this->assertTrue($response->isNotModified($request));
-
-        $response->headers->set('ETag', '');
-        $this->assertFalse($response->isNotModified($request));
-    }
-
-    public function testIsNotModifiedLastModifiedAndEtag()
-    {
-        $before = 'Sun, 25 Aug 2013 18:32:31 GMT';
-        $modified = 'Sun, 25 Aug 2013 18:33:31 GMT';
-        $after = 'Sun, 25 Aug 2013 19:33:31 GMT';
-        $etag = 'randomly_generated_etag';
-
-        $request = new Request();
-        $request->headers->set('if_none_match', sprintf('%s, %s', $etag, 'etagThree'));
-        $request->headers->set('If-Modified-Since', $modified);
-
-        $response = new Response();
-
-        $response->headers->set('ETag', $etag);
-        $response->headers->set('Last-Modified', $after);
-        $this->assertFalse($response->isNotModified($request));
-
-        $response->headers->set('ETag', 'non-existent-etag');
-        $response->headers->set('Last-Modified', $before);
-        $this->assertFalse($response->isNotModified($request));
-
-        $response->headers->set('ETag', $etag);
-        $response->headers->set('Last-Modified', $modified);
-        $this->assertTrue($response->isNotModified($request));
-    }
-
-    public function testIsNotModifiedIfModifiedSinceAndEtagWithoutLastModified()
-    {
-        $modified = 'Sun, 25 Aug 2013 18:33:31 GMT';
-        $etag = 'randomly_generated_etag';
-
-        $request = new Request();
-        $request->headers->set('if_none_match', sprintf('%s, %s', $etag, 'etagThree'));
-        $request->headers->set('If-Modified-Since', $modified);
-
-        $response = new Response();
-
-        $response->headers->set('ETag', $etag);
-        $this->assertTrue($response->isNotModified($request));
-
-        $response->headers->set('ETag', 'non-existent-etag');
-        $this->assertFalse($response->isNotModified($request));
-    }
-
-    public function testIsValidateable()
-    {
-        $response = new Response('', 200, array('Last-Modified' => $this->createDateTimeOneHourAgo()->format(DATE_RFC2822)));
-        $this->assertTrue($response->isValidateable(), '->isValidateable() returns true if Last-Modified is present');
-
-        $response = new Response('', 200, array('ETag' => '"12345"'));
-        $this->assertTrue($response->isValidateable(), '->isValidateable() returns true if ETag is present');
-
-        $response = new Response();
-        $this->assertFalse($response->isValidateable(), '->isValidateable() returns false when no validator is present');
-    }
-
-    public function testGetDate()
-    {
-        $oneHourAgo = $this->createDateTimeOneHourAgo();
-        $response = new Response('', 200, array('Date' => $oneHourAgo->format(DATE_RFC2822)));
-        $this->assertEquals(0, $oneHourAgo->diff($response->getDate())->format('%s'), '->getDate() returns the Date header if present');
-
-        $response = new Response();
-        $date = $response->getDate();
-        $this->assertLessThan(1, $date->diff(new \DateTime(), true)->format('%s'), '->getDate() returns the current Date if no Date header present');
-
-        $response = new Response('', 200, array('Date' => $this->createDateTimeOneHourAgo()->format(DATE_RFC2822)));
-        $now = $this->createDateTimeNow();
-        $response->headers->set('Date', $now->format(DATE_RFC2822));
-        $this->assertLessThanOrEqual(1, $now->diff($response->getDate())->format('%s'), '->getDate() returns the date when the header has been modified');
-
-        $response = new Response('', 200);
-        $response->headers->remove('Date');
-        $this->assertInstanceOf('\DateTime', $response->getDate());
-    }
-
-    public function testGetMaxAge()
-    {
-        $response = new Response();
-        $response->headers->set('Cache-Control', 's-maxage=600, max-age=0');
-        $this->assertEquals(600, $response->getMaxAge(), '->getMaxAge() uses s-maxage cache control directive when present');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'max-age=600');
-        $this->assertEquals(600, $response->getMaxAge(), '->getMaxAge() falls back to max-age when no s-maxage directive present');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'must-revalidate');
-        $response->headers->set('Expires', $this->createDateTimeOneHourLater()->format(DATE_RFC2822));
-        $this->assertLessThanOrEqual(1, $response->getMaxAge() - 3600, '->getMaxAge() falls back to Expires when no max-age or s-maxage directive present');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'must-revalidate');
-        $response->headers->set('Expires', -1);
-        $this->assertEquals('Sat, 01 Jan 00 00:00:00 +0000', $response->getExpires()->format(DATE_RFC822));
-
-        $response = new Response();
-        $this->assertNull($response->getMaxAge(), '->getMaxAge() returns null if no freshness information available');
-    }
-
-    public function testSetSharedMaxAge()
-    {
-        $response = new Response();
-        $response->setSharedMaxAge(20);
-
-        $cacheControl = $response->headers->get('Cache-Control');
-        $this->assertEquals('public, s-maxage=20', $cacheControl);
-    }
-
-    public function testIsPrivate()
-    {
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'max-age=100');
-        $response->setPrivate();
-        $this->assertEquals(100, $response->headers->getCacheControlDirective('max-age'), '->isPrivate() adds the private Cache-Control directive when set to true');
-        $this->assertTrue($response->headers->getCacheControlDirective('private'), '->isPrivate() adds the private Cache-Control directive when set to true');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'public, max-age=100');
-        $response->setPrivate();
-        $this->assertEquals(100, $response->headers->getCacheControlDirective('max-age'), '->isPrivate() adds the private Cache-Control directive when set to true');
-        $this->assertTrue($response->headers->getCacheControlDirective('private'), '->isPrivate() adds the private Cache-Control directive when set to true');
-        $this->assertFalse($response->headers->hasCacheControlDirective('public'), '->isPrivate() removes the public Cache-Control directive');
-    }
-
-    public function testExpire()
-    {
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'max-age=100');
-        $response->expire();
-        $this->assertEquals(100, $response->headers->get('Age'), '->expire() sets the Age to max-age when present');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'max-age=100, s-maxage=500');
-        $response->expire();
-        $this->assertEquals(500, $response->headers->get('Age'), '->expire() sets the Age to s-maxage when both max-age and s-maxage are present');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'max-age=5, s-maxage=500');
-        $response->headers->set('Age', '1000');
-        $response->expire();
-        $this->assertEquals(1000, $response->headers->get('Age'), '->expire() does nothing when the response is already stale/expired');
-
-        $response = new Response();
-        $response->expire();
-        $this->assertFalse($response->headers->has('Age'), '->expire() does nothing when the response does not include freshness information');
-
-        $response = new Response();
-        $response->headers->set('Expires', -1);
-        $response->expire();
-        $this->assertNull($response->headers->get('Age'), '->expire() does not set the Age when the response is expired');
-    }
-
-    public function testGetTtl()
-    {
-        $response = new Response();
-        $this->assertNull($response->getTtl(), '->getTtl() returns null when no Expires or Cache-Control headers are present');
-
-        $response = new Response();
-        $response->headers->set('Expires', $this->createDateTimeOneHourLater()->format(DATE_RFC2822));
-        $this->assertLessThanOrEqual(1, 3600 - $response->getTtl(), '->getTtl() uses the Expires header when no max-age is present');
-
-        $response = new Response();
-        $response->headers->set('Expires', $this->createDateTimeOneHourAgo()->format(DATE_RFC2822));
-        $this->assertLessThan(0, $response->getTtl(), '->getTtl() returns negative values when Expires is in past');
-
-        $response = new Response();
-        $response->headers->set('Expires', $response->getDate()->format(DATE_RFC2822));
-        $response->headers->set('Age', 0);
-        $this->assertSame(0, $response->getTtl(), '->getTtl() correctly handles zero');
-
-        $response = new Response();
-        $response->headers->set('Cache-Control', 'max-age=60');
-        $this->assertLessThan(1, 60 - $response->getTtl(), '->getTtl() uses Cache-Control max-age when present');
-    }
-
-    public function testSetClientTtl()
-    {
-        $response = new Response();
-        $response->setClientTtl(10);
-
-        $this->assertEquals($response->getMaxAge(), $response->getAge() + 10);
-    }
-
-    public function testGetSetProtocolVersion()
-    {
-        $response = new Response();
-
-        $this->assertEquals('1.0', $response->getProtocolVersion());
-
-        $response->setProtocolVersion('1.1');
-
-        $this->assertEquals('1.1', $response->getProtocolVersion());
-    }
-
-    public function testGetVary()
-    {
-        $response = new Response();
-        $this->assertEquals(array(), $response->getVary(), '->getVary() returns an empty array if no Vary header is present');
-
-        $response = new Response();
-        $response->headers->set('Vary', 'Accept-Language');
-        $this->assertEquals(array('Accept-Language'), $response->getVary(), '->getVary() parses a single header name value');
-
-        $response = new Response();
-        $response->headers->set('Vary', 'Accept-Language User-Agent    X-Foo');
-        $this->assertEquals(array('Accept-Language', 'User-Agent', 'X-Foo'), $response->getVary(), '->getVary() parses multiple header name values separated by spaces');
-
-        $response = new Response();
-        $response->headers->set('Vary', 'Accept-Language,User-Agent,    X-Foo');
-        $this->assertEquals(array('Accept-Language', 'User-Agent', 'X-Foo'), $response->getVary(), '->getVary() parses multiple header name values separated by commas');
-
-        $vary = array('Accept-Language', 'User-Agent', 'X-foo');
-
-        $response = new Response();
-        $response->headers->set('Vary', $vary);
-        $this->assertEquals($vary, $response->getVary(), '->getVary() parses multiple header name values in arrays');
-
-        $response = new Response();
-        $response->headers->set('Vary', 'Accept-Language, User-Agent, X-foo');
-        $this->assertEquals($vary, $response->getVary(), '->getVary() parses multiple header name values in arrays');
-    }
-
-    public function testSetVary()
-    {
-        $response = new Response();
-        $response->setVary('Accept-Language');
-        $this->assertEquals(array('Accept-Language'), $response->getVary());
-
-        $response->setVary('Accept-Language, User-Agent');
-        $this->assertEquals(array('Accept-Language', 'User-Agent'), $response->getVary(), '->setVary() replace the vary header by default');
-
-        $response->setVary('X-Foo', false);
-        $this->assertEquals(array('Accept-Language', 'User-Agent', 'X-Foo'), $response->getVary(), '->setVary() doesn\'t wipe out earlier Vary headers if replace is set to false');
-    }
-
-    public function testDefaultContentType()
-    {
-        $headerMock = $this->getMock('Symfony\Component\HttpFoundation\ResponseHeaderBag', array('set'));
-        $headerMock->expects($this->at(0))
-            ->method('set')
-            ->with('Content-Type', 'text/html');
-        $headerMock->expects($this->at(1))
-            ->method('set')
-            ->with('Content-Type', 'text/html; charset=UTF-8');
-
-        $response = new Response('foo');
-        $response->headers = $headerMock;
-
-        $response->prepare(new Request());
-    }
-
-    public function testContentTypeCharset()
-    {
-        $response = new Response();
-        $response->headers->set('Content-Type', 'text/css');
-
-        // force fixContentType() to be called
-        $response->prepare(new Request());
-
-        $this->assertEquals('text/css; charset=UTF-8', $response->headers->get('Content-Type'));
-    }
-
-    public function testPrepareDoesNothingIfContentTypeIsSet()
-    {
-        $response = new Response('foo');
-        $response->headers->set('Content-Type', 'text/plain');
-
-        $response->prepare(new Request());
-
-        $this->assertEquals('text/plain; charset=UTF-8', $response->headers->get('content-type'));
-    }
-
-    public function testPrepareDoesNothingIfRequestFormatIsNotDefined()
-    {
-        $response = new Response('foo');
-
-        $response->prepare(new Request());
-
-        $this->assertEquals('text/html; charset=UTF-8', $response->headers->get('content-type'));
-    }
-
-    public function testPrepareSetContentType()
-    {
-        $response = new Response('foo');
-        $request = Request::create('/');
-        $request->setRequestFormat('json');
-
-        $response->prepare($request);
-
-        $this->assertEquals('application/json', $response->headers->get('content-type'));
-    }
-
-    public function testPrepareRemovesContentForHeadRequests()
-    {
-        $response = new Response('foo');
-        $request = Request::create('/', 'HEAD');
-
-        $length = 12345;
-        $response->headers->set('Content-Length', $length);
-        $response->prepare($request);
-
-        $this->assertEquals('', $response->getContent());
-        $this->assertEquals($length, $response->headers->get('Content-Length'), 'Content-Length should be as if it was GET; see RFC2616 14.13');
-    }
-
-    public function testPrepareRemovesContentForInformationalResponse()
-    {
-        $response = new Response('foo');
-        $request = Request::create('/');
-
-        $response->setContent('content');
-        $response->setStatusCode(101);
-        $response->prepare($request);
-        $this->assertEquals('', $response->getContent());
-        $this->assertFalse($response->headers->has('Content-Type'));
-        $this->assertFalse($response->headers->has('Content-Type'));
-
-        $response->setContent('content');
-        $response->setStatusCode(304);
-        $response->prepare($request);
-        $this->assertEquals('', $response->getContent());
-        $this->assertFalse($response->headers->has('Content-Type'));
-        $this->assertFalse($response->headers->has('Content-Length'));
-    }
-
-    public function testPrepareRemovesContentLength()
-    {
-        $response = new Response('foo');
-        $request = Request::create('/');
-
-        $response->headers->set('Content-Length', 12345);
-        $response->prepare($request);
-        $this->assertEquals(12345, $response->headers->get('Content-Length'));
-
-        $response->headers->set('Transfer-Encoding', 'chunked');
-        $response->prepare($request);
-        $this->assertFalse($response->headers->has('Content-Length'));
-    }
-
-    public function testPrepareSetsPragmaOnHttp10Only()
-    {
-        $request = Request::create('/', 'GET');
-        $request->server->set('SERVER_PROTOCOL', 'HTTP/1.0');
-
-        $response = new Response('foo');
-        $response->prepare($request);
-        $this->assertEquals('no-cache', $response->headers->get('pragma'));
-        $this->assertEquals('-1', $response->headers->get('expires'));
-
-        $request->server->set('SERVER_PROTOCOL', 'HTTP/1.1');
-        $response = new Response('foo');
-        $response->prepare($request);
-        $this->assertFalse($response->headers->has('pragma'));
-        $this->assertFalse($response->headers->has('expires'));
-    }
-
-    public function testSetCache()
-    {
-        $response = new Response();
-        //array('etag', 'last_modified', 'max_age', 's_maxage', 'private', 'public')
-        try {
-            $response->setCache(array('wrong option' => 'value'));
-            $this->fail('->setCache() throws an InvalidArgumentException if an option is not supported');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('InvalidArgumentException', $e, '->setCache() throws an InvalidArgumentException if an option is not supported');
-            $this->assertContains('"wrong option"', $e->getMessage());
-        }
-
-        $options = array('etag' => '"whatever"');
-        $response->setCache($options);
-        $this->assertEquals($response->getEtag(), '"whatever"');
-
-        $now = new \DateTime();
-        $options = array('last_modified' => $now);
-        $response->setCache($options);
-        $this->assertEquals($response->getLastModified()->getTimestamp(), $now->getTimestamp());
-
-        $options = array('max_age' => 100);
-        $response->setCache($options);
-        $this->assertEquals($response->getMaxAge(), 100);
-
-        $options = array('s_maxage' => 200);
-        $response->setCache($options);
-        $this->assertEquals($response->getMaxAge(), 200);
-
-        $this->assertTrue($response->headers->hasCacheControlDirective('public'));
-        $this->assertFalse($response->headers->hasCacheControlDirective('private'));
-
-        $response->setCache(array('public' => true));
-        $this->assertTrue($response->headers->hasCacheControlDirective('public'));
-        $this->assertFalse($response->headers->hasCacheControlDirective('private'));
-
-        $response->setCache(array('public' => false));
-        $this->assertFalse($response->headers->hasCacheControlDirective('public'));
-        $this->assertTrue($response->headers->hasCacheControlDirective('private'));
-
-        $response->setCache(array('private' => true));
-        $this->assertFalse($response->headers->hasCacheControlDirective('public'));
-        $this->assertTrue($response->headers->hasCacheControlDirective('private'));
-
-        $response->setCache(array('private' => false));
-        $this->assertTrue($response->headers->hasCacheControlDirective('public'));
-        $this->assertFalse($response->headers->hasCacheControlDirective('private'));
-    }
-
-    public function testSendContent()
-    {
-        $response = new Response('test response rendering', 200);
-
-        ob_start();
-        $response->sendContent();
-        $string = ob_get_clean();
-        $this->assertContains('test response rendering', $string);
-    }
-
-    public function testSetPublic()
-    {
-        $response = new Response();
-        $response->setPublic();
-
-        $this->assertTrue($response->headers->hasCacheControlDirective('public'));
-        $this->assertFalse($response->headers->hasCacheControlDirective('private'));
-    }
-
-    public function testSetExpires()
-    {
-        $response = new Response();
-        $response->setExpires(null);
-
-        $this->assertNull($response->getExpires(), '->setExpires() remove the header when passed null');
-
-        $now = new \DateTime();
-        $response->setExpires($now);
-
-        $this->assertEquals($response->getExpires()->getTimestamp(), $now->getTimestamp());
-    }
-
-    public function testSetLastModified()
-    {
-        $response = new Response();
-        $response->setLastModified(new \DateTime());
-        $this->assertNotNull($response->getLastModified());
-
-        $response->setLastModified(null);
-        $this->assertNull($response->getLastModified());
-    }
-
-    public function testIsInvalid()
-    {
-        $response = new Response();
-
-        try {
-            $response->setStatusCode(99);
-            $this->fail();
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue($response->isInvalid());
-        }
-
-        try {
-            $response->setStatusCode(650);
-            $this->fail();
-        } catch (\InvalidArgumentException $e) {
-            $this->assertTrue($response->isInvalid());
-        }
-
-        $response = new Response('', 200);
-        $this->assertFalse($response->isInvalid());
-    }
-
-    /**
-     * @dataProvider getStatusCodeFixtures
-     */
-    public function testSetStatusCode($code, $text, $expectedText)
-    {
-        $response = new Response();
-
-        $response->setStatusCode($code, $text);
-
-        $statusText = new \ReflectionProperty($response, 'statusText');
-        $statusText->setAccessible(true);
-
-        $this->assertEquals($expectedText, $statusText->getValue($response));
-    }
-
-    public function getStatusCodeFixtures()
-    {
-        return array(
-            array('200', null, 'OK'),
-            array('200', false, ''),
-            array('200', 'foo', 'foo'),
-            array('199', null, ''),
-            array('199', false, ''),
-            array('199', 'foo', 'foo'),
-        );
-    }
-
-    public function testIsInformational()
-    {
-        $response = new Response('', 100);
-        $this->assertTrue($response->isInformational());
-
-        $response = new Response('', 200);
-        $this->assertFalse($response->isInformational());
-    }
-
-    public function testIsRedirectRedirection()
-    {
-        foreach (array(301, 302, 303, 307) as $code) {
-            $response = new Response('', $code);
-            $this->assertTrue($response->isRedirection());
-            $this->assertTrue($response->isRedirect());
-        }
-
-        $response = new Response('', 304);
-        $this->assertTrue($response->isRedirection());
-        $this->assertFalse($response->isRedirect());
-
-        $response = new Response('', 200);
-        $this->assertFalse($response->isRedirection());
-        $this->assertFalse($response->isRedirect());
-
-        $response = new Response('', 404);
-        $this->assertFalse($response->isRedirection());
-        $this->assertFalse($response->isRedirect());
-
-        $response = new Response('', 301, array('Location' => '/good-uri'));
-        $this->assertFalse($response->isRedirect('/bad-uri'));
-        $this->assertTrue($response->isRedirect('/good-uri'));
-    }
-
-    public function testIsNotFound()
-    {
-        $response = new Response('', 404);
-        $this->assertTrue($response->isNotFound());
-
-        $response = new Response('', 200);
-        $this->assertFalse($response->isNotFound());
-    }
-
-    public function testIsEmpty()
-    {
-        foreach (array(204, 304) as $code) {
-            $response = new Response('', $code);
-            $this->assertTrue($response->isEmpty());
-        }
-
-        $response = new Response('', 200);
-        $this->assertFalse($response->isEmpty());
-    }
-
-    public function testIsForbidden()
-    {
-        $response = new Response('', 403);
-        $this->assertTrue($response->isForbidden());
-
-        $response = new Response('', 200);
-        $this->assertFalse($response->isForbidden());
-    }
-
-    public function testIsOk()
-    {
-        $response = new Response('', 200);
-        $this->assertTrue($response->isOk());
-
-        $response = new Response('', 404);
-        $this->assertFalse($response->isOk());
-    }
-
-    public function testIsServerOrClientError()
-    {
-        $response = new Response('', 404);
-        $this->assertTrue($response->isClientError());
-        $this->assertFalse($response->isServerError());
-
-        $response = new Response('', 500);
-        $this->assertFalse($response->isClientError());
-        $this->assertTrue($response->isServerError());
-    }
-
-    public function testHasVary()
-    {
-        $response = new Response();
-        $this->assertFalse($response->hasVary());
-
-        $response->setVary('User-Agent');
-        $this->assertTrue($response->hasVary());
-    }
-
-    public function testSetEtag()
-    {
-        $response = new Response('', 200, array('ETag' => '"12345"'));
-        $response->setEtag();
-
-        $this->assertNull($response->headers->get('Etag'), '->setEtag() removes Etags when call with null');
-    }
-
-    /**
-     * @dataProvider validContentProvider
-     */
-    public function testSetContent($content)
-    {
-        $response = new Response();
-        $response->setContent($content);
-        $this->assertEquals((string) $content, $response->getContent());
-    }
-
-    /**
-     * @expectedException \UnexpectedValueException
-     * @dataProvider invalidContentProvider
-     */
-    public function testSetContentInvalid($content)
-    {
-        $response = new Response();
-        $response->setContent($content);
-    }
-
-    public function testSettersAreChainable()
-    {
-        $response = new Response();
-
-        $setters = array(
-            'setProtocolVersion' => '1.0',
-            'setCharset' => 'UTF-8',
-            'setPublic' => null,
-            'setPrivate' => null,
-            'setDate' => new \DateTime(),
-            'expire' => null,
-            'setMaxAge' => 1,
-            'setSharedMaxAge' => 1,
-            'setTtl' => 1,
-            'setClientTtl' => 1,
-        );
-
-        foreach ($setters as $setter => $arg) {
-            $this->assertEquals($response, $response->{$setter}($arg));
-        }
-    }
-
-    public function validContentProvider()
-    {
-        return array(
-            'obj' => array(new StringableObject()),
-            'string' => array('Foo'),
-            'int' => array(2),
-        );
-    }
-
-    public function invalidContentProvider()
-    {
-        return array(
-            'obj' => array(new \stdClass()),
-            'array' => array(array()),
-            'bool' => array(true, '1'),
-        );
-    }
-
-    protected function createDateTimeOneHourAgo()
-    {
-        $date = new \DateTime();
-
-        return $date->sub(new \DateInterval('PT1H'));
-    }
-
-    protected function createDateTimeOneHourLater()
-    {
-        $date = new \DateTime();
-
-        return $date->add(new \DateInterval('PT1H'));
-    }
-
-    protected function createDateTimeNow()
-    {
-        return new \DateTime();
-    }
-
-    protected function provideResponse()
-    {
-        return new Response();
-    }
-}
-
-class StringableObject
-{
-    public function __toString()
-    {
-        return 'Foo';
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ResponseTestCase.php b/core/vendor/symfony/http-foundation/Tests/ResponseTestCase.php
deleted file mode 100644
index 94c770a..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ResponseTestCase.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\Request;
-
-abstract class ResponseTestCase extends \PHPUnit_Framework_TestCase
-{
-    public function testNoCacheControlHeaderOnAttachmentUsingHTTPSAndMSIE()
-    {
-        // Check for HTTPS and IE 8
-        $request = new Request();
-        $request->server->set('HTTPS', true);
-        $request->server->set('HTTP_USER_AGENT', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)');
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertFalse($response->headers->has('Cache-Control'));
-
-        // Check for IE 10 and HTTPS
-        $request->server->set('HTTP_USER_AGENT', 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)');
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertTrue($response->headers->has('Cache-Control'));
-
-        // Check for IE 9 and HTTPS
-        $request->server->set('HTTP_USER_AGENT', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)');
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertTrue($response->headers->has('Cache-Control'));
-
-        // Check for IE 9 and HTTP
-        $request->server->set('HTTPS', false);
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertTrue($response->headers->has('Cache-Control'));
-
-        // Check for IE 8 and HTTP
-        $request->server->set('HTTP_USER_AGENT', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)');
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertTrue($response->headers->has('Cache-Control'));
-
-        // Check for non-IE and HTTPS
-        $request->server->set('HTTPS', true);
-        $request->server->set('HTTP_USER_AGENT', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17');
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertTrue($response->headers->has('Cache-Control'));
-
-        // Check for non-IE and HTTP
-        $request->server->set('HTTPS', false);
-
-        $response = $this->provideResponse();
-        $response->headers->set('Content-Disposition', 'attachment; filename="fname.ext"');
-        $response->prepare($request);
-
-        $this->assertTrue($response->headers->has('Cache-Control'));
-    }
-
-    abstract protected function provideResponse();
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/ServerBagTest.php b/core/vendor/symfony/http-foundation/Tests/ServerBagTest.php
deleted file mode 100644
index 20773c4..0000000
--- a/core/vendor/symfony/http-foundation/Tests/ServerBagTest.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\ServerBag;
-
-/**
- * ServerBagTest.
- *
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- */
-class ServerBagTest extends \PHPUnit_Framework_TestCase
-{
-    public function testShouldExtractHeadersFromServerArray()
-    {
-        $server = array(
-            'SOME_SERVER_VARIABLE' => 'value',
-            'SOME_SERVER_VARIABLE2' => 'value',
-            'ROOT' => 'value',
-            'HTTP_CONTENT_TYPE' => 'text/html',
-            'HTTP_CONTENT_LENGTH' => '0',
-            'HTTP_ETAG' => 'asdf',
-            'PHP_AUTH_USER' => 'foo',
-            'PHP_AUTH_PW' => 'bar',
-        );
-
-        $bag = new ServerBag($server);
-
-        $this->assertEquals(array(
-            'CONTENT_TYPE' => 'text/html',
-            'CONTENT_LENGTH' => '0',
-            'ETAG' => 'asdf',
-            'AUTHORIZATION' => 'Basic '.base64_encode('foo:bar'),
-            'PHP_AUTH_USER' => 'foo',
-            'PHP_AUTH_PW' => 'bar',
-        ), $bag->getHeaders());
-    }
-
-    public function testHttpPasswordIsOptional()
-    {
-        $bag = new ServerBag(array('PHP_AUTH_USER' => 'foo'));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => 'Basic '.base64_encode('foo:'),
-            'PHP_AUTH_USER' => 'foo',
-            'PHP_AUTH_PW' => '',
-        ), $bag->getHeaders());
-    }
-
-    public function testHttpBasicAuthWithPhpCgi()
-    {
-        $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic '.base64_encode('foo:bar')));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => 'Basic '.base64_encode('foo:bar'),
-            'PHP_AUTH_USER' => 'foo',
-            'PHP_AUTH_PW' => 'bar',
-        ), $bag->getHeaders());
-    }
-
-    public function testHttpBasicAuthWithPhpCgiBogus()
-    {
-        $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic_'.base64_encode('foo:bar')));
-
-        // Username and passwords should not be set as the header is bogus
-        $headers = $bag->getHeaders();
-        $this->assertFalse(isset($headers['PHP_AUTH_USER']));
-        $this->assertFalse(isset($headers['PHP_AUTH_PW']));
-    }
-
-    public function testHttpBasicAuthWithPhpCgiRedirect()
-    {
-        $bag = new ServerBag(array('REDIRECT_HTTP_AUTHORIZATION' => 'Basic '.base64_encode('username:pass:word')));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => 'Basic '.base64_encode('username:pass:word'),
-            'PHP_AUTH_USER' => 'username',
-            'PHP_AUTH_PW' => 'pass:word',
-        ), $bag->getHeaders());
-    }
-
-    public function testHttpBasicAuthWithPhpCgiEmptyPassword()
-    {
-        $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic '.base64_encode('foo:')));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => 'Basic '.base64_encode('foo:'),
-            'PHP_AUTH_USER' => 'foo',
-            'PHP_AUTH_PW' => '',
-        ), $bag->getHeaders());
-    }
-
-    public function testHttpDigestAuthWithPhpCgi()
-    {
-        $digest = 'Digest username="foo", realm="acme", nonce="'.md5('secret').'", uri="/protected, qop="auth"';
-        $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $digest));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => $digest,
-            'PHP_AUTH_DIGEST' => $digest,
-        ), $bag->getHeaders());
-    }
-
-    public function testHttpDigestAuthWithPhpCgiBogus()
-    {
-        $digest = 'Digest_username="foo", realm="acme", nonce="'.md5('secret').'", uri="/protected, qop="auth"';
-        $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $digest));
-
-        // Username and passwords should not be set as the header is bogus
-        $headers = $bag->getHeaders();
-        $this->assertFalse(isset($headers['PHP_AUTH_USER']));
-        $this->assertFalse(isset($headers['PHP_AUTH_PW']));
-    }
-
-    public function testHttpDigestAuthWithPhpCgiRedirect()
-    {
-        $digest = 'Digest username="foo", realm="acme", nonce="'.md5('secret').'", uri="/protected, qop="auth"';
-        $bag = new ServerBag(array('REDIRECT_HTTP_AUTHORIZATION' => $digest));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => $digest,
-            'PHP_AUTH_DIGEST' => $digest,
-        ), $bag->getHeaders());
-    }
-
-    public function testOAuthBearerAuth()
-    {
-        $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
-        $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $headerContent));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => $headerContent,
-        ), $bag->getHeaders());
-    }
-
-    public function testOAuthBearerAuthWithRedirect()
-    {
-        $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
-        $bag = new ServerBag(array('REDIRECT_HTTP_AUTHORIZATION' => $headerContent));
-
-        $this->assertEquals(array(
-            'AUTHORIZATION' => $headerContent,
-        ), $bag->getHeaders());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Attribute/AttributeBagTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Attribute/AttributeBagTest.php
deleted file mode 100644
index 5515003..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Attribute/AttributeBagTest.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Attribute;
-
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-
-/**
- * Tests AttributeBag.
- *
- * @author Drak <drak@zikula.org>
- */
-class AttributeBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var array
-     */
-    private $array;
-
-    /**
-     * @var AttributeBag
-     */
-    private $bag;
-
-    protected function setUp()
-    {
-        $this->array = array(
-            'hello' => 'world',
-            'always' => 'be happy',
-            'user.login' => 'drak',
-            'csrf.token' => array(
-                'a' => '1234',
-                'b' => '4321',
-            ),
-            'category' => array(
-                'fishing' => array(
-                    'first' => 'cod',
-                    'second' => 'sole',),
-                ),
-        );
-        $this->bag = new AttributeBag('_sf2');
-        $this->bag->initialize($this->array);
-    }
-
-    protected function tearDown()
-    {
-        $this->bag = null;
-        $this->array = array();
-    }
-
-    public function testInitialize()
-    {
-        $bag = new AttributeBag();
-        $bag->initialize($this->array);
-        $this->assertEquals($this->array, $bag->all());
-        $array = array('should' => 'change');
-        $bag->initialize($array);
-        $this->assertEquals($array, $bag->all());
-    }
-
-    public function testGetStorageKey()
-    {
-        $this->assertEquals('_sf2', $this->bag->getStorageKey());
-        $attributeBag = new AttributeBag('test');
-        $this->assertEquals('test', $attributeBag->getStorageKey());
-    }
-
-    public function testGetSetName()
-    {
-        $this->assertEquals('attributes', $this->bag->getName());
-        $this->bag->setName('foo');
-        $this->assertEquals('foo', $this->bag->getName());
-    }
-
-    /**
-     * @dataProvider attributesProvider
-     */
-    public function testHas($key, $value, $exists)
-    {
-        $this->assertEquals($exists, $this->bag->has($key));
-    }
-
-    /**
-     * @dataProvider attributesProvider
-     */
-    public function testGet($key, $value, $expected)
-    {
-        $this->assertEquals($value, $this->bag->get($key));
-    }
-
-    public function testGetDefaults()
-    {
-        $this->assertNull($this->bag->get('user2.login'));
-        $this->assertEquals('default', $this->bag->get('user2.login', 'default'));
-    }
-
-    /**
-     * @dataProvider attributesProvider
-     */
-    public function testSet($key, $value, $expected)
-    {
-        $this->bag->set($key, $value);
-        $this->assertEquals($value, $this->bag->get($key));
-    }
-
-    public function testAll()
-    {
-        $this->assertEquals($this->array, $this->bag->all());
-
-        $this->bag->set('hello', 'fabien');
-        $array = $this->array;
-        $array['hello'] = 'fabien';
-        $this->assertEquals($array, $this->bag->all());
-    }
-
-    public function testReplace()
-    {
-        $array = array();
-        $array['name'] = 'jack';
-        $array['foo.bar'] = 'beep';
-        $this->bag->replace($array);
-        $this->assertEquals($array, $this->bag->all());
-        $this->assertNull($this->bag->get('hello'));
-        $this->assertNull($this->bag->get('always'));
-        $this->assertNull($this->bag->get('user.login'));
-    }
-
-    public function testRemove()
-    {
-        $this->assertEquals('world', $this->bag->get('hello'));
-        $this->bag->remove('hello');
-        $this->assertNull($this->bag->get('hello'));
-
-        $this->assertEquals('be happy', $this->bag->get('always'));
-        $this->bag->remove('always');
-        $this->assertNull($this->bag->get('always'));
-
-        $this->assertEquals('drak', $this->bag->get('user.login'));
-        $this->bag->remove('user.login');
-        $this->assertNull($this->bag->get('user.login'));
-    }
-
-    public function testClear()
-    {
-        $this->bag->clear();
-        $this->assertEquals(array(), $this->bag->all());
-    }
-
-    public function attributesProvider()
-    {
-        return array(
-            array('hello', 'world', true),
-            array('always', 'be happy', true),
-            array('user.login', 'drak', true),
-            array('csrf.token', array('a' => '1234', 'b' => '4321'), true),
-            array('category', array('fishing' => array('first' => 'cod', 'second' => 'sole')), true),
-            array('user2.login', null, false),
-            array('never', null, false),
-            array('bye', null, false),
-            array('bye/for/now', null, false),
-        );
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag::getIterator
-     */
-    public function testGetIterator()
-    {
-        $i = 0;
-        foreach ($this->bag as $key => $val) {
-            $this->assertEquals($this->array[$key], $val);
-            ++$i;
-        }
-
-        $this->assertEquals(count($this->array), $i);
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag::count
-     */
-    public function testCount()
-    {
-        $this->assertEquals(count($this->array), count($this->bag));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
deleted file mode 100644
index b8261da..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Attribute;
-
-use Symfony\Component\HttpFoundation\Session\Attribute\NamespacedAttributeBag;
-
-/**
- * Tests NamespacedAttributeBag.
- *
- * @author Drak <drak@zikula.org>
- */
-class NamespacedAttributeBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var array
-     */
-    private $array;
-
-    /**
-     * @var NamespacedAttributeBag
-     */
-    private $bag;
-
-    protected function setUp()
-    {
-        $this->array = array(
-            'hello' => 'world',
-            'always' => 'be happy',
-            'user.login' => 'drak',
-            'csrf.token' => array(
-                'a' => '1234',
-                'b' => '4321',
-            ),
-            'category' => array(
-                'fishing' => array(
-                    'first' => 'cod',
-                    'second' => 'sole',),
-                ),
-        );
-        $this->bag = new NamespacedAttributeBag('_sf2', '/');
-        $this->bag->initialize($this->array);
-    }
-
-    protected function tearDown()
-    {
-        $this->bag = null;
-        $this->array = array();
-    }
-
-    public function testInitialize()
-    {
-        $bag = new NamespacedAttributeBag();
-        $bag->initialize($this->array);
-        $this->assertEquals($this->array, $this->bag->all());
-        $array = array('should' => 'not stick');
-        $bag->initialize($array);
-
-        // should have remained the same
-        $this->assertEquals($this->array, $this->bag->all());
-    }
-
-    public function testGetStorageKey()
-    {
-        $this->assertEquals('_sf2', $this->bag->getStorageKey());
-        $attributeBag = new NamespacedAttributeBag('test');
-        $this->assertEquals('test', $attributeBag->getStorageKey());
-    }
-
-    /**
-     * @dataProvider attributesProvider
-     */
-    public function testHas($key, $value, $exists)
-    {
-        $this->assertEquals($exists, $this->bag->has($key));
-    }
-
-    /**
-     * @dataProvider attributesProvider
-     */
-    public function testGet($key, $value, $expected)
-    {
-        $this->assertEquals($value, $this->bag->get($key));
-    }
-
-    public function testGetDefaults()
-    {
-        $this->assertNull($this->bag->get('user2.login'));
-        $this->assertEquals('default', $this->bag->get('user2.login', 'default'));
-    }
-
-    /**
-     * @dataProvider attributesProvider
-     */
-    public function testSet($key, $value, $expected)
-    {
-        $this->bag->set($key, $value);
-        $this->assertEquals($value, $this->bag->get($key));
-    }
-
-    public function testAll()
-    {
-        $this->assertEquals($this->array, $this->bag->all());
-
-        $this->bag->set('hello', 'fabien');
-        $array = $this->array;
-        $array['hello'] = 'fabien';
-        $this->assertEquals($array, $this->bag->all());
-    }
-
-    public function testReplace()
-    {
-        $array = array();
-        $array['name'] = 'jack';
-        $array['foo.bar'] = 'beep';
-        $this->bag->replace($array);
-        $this->assertEquals($array, $this->bag->all());
-        $this->assertNull($this->bag->get('hello'));
-        $this->assertNull($this->bag->get('always'));
-        $this->assertNull($this->bag->get('user.login'));
-    }
-
-    public function testRemove()
-    {
-        $this->assertEquals('world', $this->bag->get('hello'));
-        $this->bag->remove('hello');
-        $this->assertNull($this->bag->get('hello'));
-
-        $this->assertEquals('be happy', $this->bag->get('always'));
-        $this->bag->remove('always');
-        $this->assertNull($this->bag->get('always'));
-
-        $this->assertEquals('drak', $this->bag->get('user.login'));
-        $this->bag->remove('user.login');
-        $this->assertNull($this->bag->get('user.login'));
-    }
-
-    public function testRemoveExistingNamespacedAttribute()
-    {
-        $this->assertSame('cod', $this->bag->remove('category/fishing/first'));
-    }
-
-    public function testRemoveNonexistingNamespacedAttribute()
-    {
-        $this->assertNull($this->bag->remove('foo/bar/baz'));
-    }
-
-    public function testClear()
-    {
-        $this->bag->clear();
-        $this->assertEquals(array(), $this->bag->all());
-    }
-
-    public function attributesProvider()
-    {
-        return array(
-            array('hello', 'world', true),
-            array('always', 'be happy', true),
-            array('user.login', 'drak', true),
-            array('csrf.token', array('a' => '1234', 'b' => '4321'), true),
-            array('csrf.token/a', '1234', true),
-            array('csrf.token/b', '4321', true),
-            array('category', array('fishing' => array('first' => 'cod', 'second' => 'sole')), true),
-            array('category/fishing', array('first' => 'cod', 'second' => 'sole'), true),
-            array('category/fishing/missing/first', null, false),
-            array('category/fishing/first', 'cod', true),
-            array('category/fishing/second', 'sole', true),
-            array('category/fishing/missing/second', null, false),
-            array('user2.login', null, false),
-            array('never', null, false),
-            array('bye', null, false),
-            array('bye/for/now', null, false),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Flash/AutoExpireFlashBagTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
deleted file mode 100644
index 852158f..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Flash;
-
-use Symfony\Component\HttpFoundation\Session\Flash\AutoExpireFlashBag as FlashBag;
-
-/**
- * AutoExpireFlashBagTest.
- *
- * @author Drak <drak@zikula.org>
- */
-class AutoExpireFlashBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Symfony\Component\HttpFoundation\Session\Flash\AutoExpireFlashBag
-     */
-    private $bag;
-
-    /**
-     * @var array
-     */
-    protected $array = array();
-
-    protected function setUp()
-    {
-        parent::setUp();
-        $this->bag = new FlashBag();
-        $this->array = array('new' => array('notice' => array('A previous flash message')));
-        $this->bag->initialize($this->array);
-    }
-
-    protected function tearDown()
-    {
-        $this->bag = null;
-        parent::tearDown();
-    }
-
-    public function testInitialize()
-    {
-        $bag = new FlashBag();
-        $array = array('new' => array('notice' => array('A previous flash message')));
-        $bag->initialize($array);
-        $this->assertEquals(array('A previous flash message'), $bag->peek('notice'));
-        $array = array('new' => array(
-                'notice' => array('Something else'),
-                'error' => array('a'),
-            ));
-        $bag->initialize($array);
-        $this->assertEquals(array('Something else'), $bag->peek('notice'));
-        $this->assertEquals(array('a'), $bag->peek('error'));
-    }
-
-    public function testGetStorageKey()
-    {
-        $this->assertEquals('_sf2_flashes', $this->bag->getStorageKey());
-        $attributeBag = new FlashBag('test');
-        $this->assertEquals('test', $attributeBag->getStorageKey());
-    }
-
-    public function testGetSetName()
-    {
-        $this->assertEquals('flashes', $this->bag->getName());
-        $this->bag->setName('foo');
-        $this->assertEquals('foo', $this->bag->getName());
-    }
-
-    public function testPeek()
-    {
-        $this->assertEquals(array(), $this->bag->peek('non_existing'));
-        $this->assertEquals(array('default'), $this->bag->peek('non_existing', array('default')));
-        $this->assertEquals(array('A previous flash message'), $this->bag->peek('notice'));
-        $this->assertEquals(array('A previous flash message'), $this->bag->peek('notice'));
-    }
-
-    public function testSet()
-    {
-        $this->bag->set('notice', 'Foo');
-        $this->assertEquals(array('A previous flash message'), $this->bag->peek('notice'));
-    }
-
-    public function testHas()
-    {
-        $this->assertFalse($this->bag->has('nothing'));
-        $this->assertTrue($this->bag->has('notice'));
-    }
-
-    public function testKeys()
-    {
-        $this->assertEquals(array('notice'), $this->bag->keys());
-    }
-
-    public function testPeekAll()
-    {
-        $array = array(
-            'new' => array(
-                'notice' => 'Foo',
-                'error' => 'Bar',
-            ),
-        );
-
-        $this->bag->initialize($array);
-        $this->assertEquals(array(
-            'notice' => 'Foo',
-            'error' => 'Bar',
-            ), $this->bag->peekAll()
-        );
-
-        $this->assertEquals(array(
-            'notice' => 'Foo',
-            'error' => 'Bar',
-            ), $this->bag->peekAll()
-        );
-    }
-
-    public function testGet()
-    {
-        $this->assertEquals(array(), $this->bag->get('non_existing'));
-        $this->assertEquals(array('default'), $this->bag->get('non_existing', array('default')));
-        $this->assertEquals(array('A previous flash message'), $this->bag->get('notice'));
-        $this->assertEquals(array(), $this->bag->get('notice'));
-    }
-
-    public function testSetAll()
-    {
-        $this->bag->setAll(array('a' => 'first', 'b' => 'second'));
-        $this->assertFalse($this->bag->has('a'));
-        $this->assertFalse($this->bag->has('b'));
-    }
-
-    public function testAll()
-    {
-        $this->bag->set('notice', 'Foo');
-        $this->bag->set('error', 'Bar');
-        $this->assertEquals(array(
-            'notice' => array('A previous flash message'),
-            ), $this->bag->all()
-        );
-
-        $this->assertEquals(array(), $this->bag->all());
-    }
-
-    public function testClear()
-    {
-        $this->assertEquals(array('notice' => array('A previous flash message')), $this->bag->clear());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Flash/FlashBagTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Flash/FlashBagTest.php
deleted file mode 100644
index 44ad61b..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Flash/FlashBagTest.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Flash;
-
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-
-/**
- * FlashBagTest.
- *
- * @author Drak <drak@zikula.org>
- */
-class FlashBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface
-     */
-    private $bag;
-
-    /**
-     * @var array
-     */
-    protected $array = array();
-
-    protected function setUp()
-    {
-        parent::setUp();
-        $this->bag = new FlashBag();
-        $this->array = array('notice' => array('A previous flash message'));
-        $this->bag->initialize($this->array);
-    }
-
-    protected function tearDown()
-    {
-        $this->bag = null;
-        parent::tearDown();
-    }
-
-    public function testInitialize()
-    {
-        $bag = new FlashBag();
-        $bag->initialize($this->array);
-        $this->assertEquals($this->array, $bag->peekAll());
-        $array = array('should' => array('change'));
-        $bag->initialize($array);
-        $this->assertEquals($array, $bag->peekAll());
-    }
-
-    public function testGetStorageKey()
-    {
-        $this->assertEquals('_sf2_flashes', $this->bag->getStorageKey());
-        $attributeBag = new FlashBag('test');
-        $this->assertEquals('test', $attributeBag->getStorageKey());
-    }
-
-    public function testGetSetName()
-    {
-        $this->assertEquals('flashes', $this->bag->getName());
-        $this->bag->setName('foo');
-        $this->assertEquals('foo', $this->bag->getName());
-    }
-
-    public function testPeek()
-    {
-        $this->assertEquals(array(), $this->bag->peek('non_existing'));
-        $this->assertEquals(array('default'), $this->bag->peek('not_existing', array('default')));
-        $this->assertEquals(array('A previous flash message'), $this->bag->peek('notice'));
-        $this->assertEquals(array('A previous flash message'), $this->bag->peek('notice'));
-    }
-
-    public function testGet()
-    {
-        $this->assertEquals(array(), $this->bag->get('non_existing'));
-        $this->assertEquals(array('default'), $this->bag->get('not_existing', array('default')));
-        $this->assertEquals(array('A previous flash message'), $this->bag->get('notice'));
-        $this->assertEquals(array(), $this->bag->get('notice'));
-    }
-
-    public function testAll()
-    {
-        $this->bag->set('notice', 'Foo');
-        $this->bag->set('error', 'Bar');
-        $this->assertEquals(array(
-            'notice' => array('Foo'),
-            'error' => array('Bar'), ), $this->bag->all()
-        );
-
-        $this->assertEquals(array(), $this->bag->all());
-    }
-
-    public function testSet()
-    {
-        $this->bag->set('notice', 'Foo');
-        $this->bag->set('notice', 'Bar');
-        $this->assertEquals(array('Bar'), $this->bag->peek('notice'));
-    }
-
-    public function testHas()
-    {
-        $this->assertFalse($this->bag->has('nothing'));
-        $this->assertTrue($this->bag->has('notice'));
-    }
-
-    public function testKeys()
-    {
-        $this->assertEquals(array('notice'), $this->bag->keys());
-    }
-
-    public function testPeekAll()
-    {
-        $this->bag->set('notice', 'Foo');
-        $this->bag->set('error', 'Bar');
-        $this->assertEquals(array(
-            'notice' => array('Foo'),
-            'error' => array('Bar'),
-            ), $this->bag->peekAll()
-        );
-        $this->assertTrue($this->bag->has('notice'));
-        $this->assertTrue($this->bag->has('error'));
-        $this->assertEquals(array(
-            'notice' => array('Foo'),
-            'error' => array('Bar'),
-            ), $this->bag->peekAll()
-        );
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Session\Flash\FlashBag::getIterator
-     * @group legacy
-     */
-    public function testLegacyGetIterator()
-    {
-        $flashes = array('hello' => 'world', 'beep' => 'boop', 'notice' => 'nope');
-        foreach ($flashes as $key => $val) {
-            $this->bag->set($key, $val);
-        }
-
-        $i = 0;
-        foreach ($this->bag as $key => $val) {
-            $this->assertEquals(array($flashes[$key]), $val);
-            ++$i;
-        }
-
-        $this->assertEquals(count($flashes), $i);
-        $this->assertCount(0, $this->bag->all());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/SessionTest.php b/core/vendor/symfony/http-foundation/Tests/Session/SessionTest.php
deleted file mode 100644
index 385df1e..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/SessionTest.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session;
-
-use Symfony\Component\HttpFoundation\Session\Session;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
-
-/**
- * SessionTest.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Robert Schönthal <seroscho@googlemail.com>
- * @author Drak <drak@zikula.org>
- */
-class SessionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface
-     */
-    protected $storage;
-
-    /**
-     * @var \Symfony\Component\HttpFoundation\Session\SessionInterface
-     */
-    protected $session;
-
-    protected function setUp()
-    {
-        $this->storage = new MockArraySessionStorage();
-        $this->session = new Session($this->storage, new AttributeBag(), new FlashBag());
-    }
-
-    protected function tearDown()
-    {
-        $this->storage = null;
-        $this->session = null;
-    }
-
-    public function testStart()
-    {
-        $this->assertEquals('', $this->session->getId());
-        $this->assertTrue($this->session->start());
-        $this->assertNotEquals('', $this->session->getId());
-    }
-
-    public function testIsStarted()
-    {
-        $this->assertFalse($this->session->isStarted());
-        $this->session->start();
-        $this->assertTrue($this->session->isStarted());
-    }
-
-    public function testSetId()
-    {
-        $this->assertEquals('', $this->session->getId());
-        $this->session->setId('0123456789abcdef');
-        $this->session->start();
-        $this->assertEquals('0123456789abcdef', $this->session->getId());
-    }
-
-    public function testSetName()
-    {
-        $this->assertEquals('MOCKSESSID', $this->session->getName());
-        $this->session->setName('session.test.com');
-        $this->session->start();
-        $this->assertEquals('session.test.com', $this->session->getName());
-    }
-
-    public function testGet()
-    {
-        // tests defaults
-        $this->assertNull($this->session->get('foo'));
-        $this->assertEquals(1, $this->session->get('foo', 1));
-    }
-
-    /**
-     * @dataProvider setProvider
-     */
-    public function testSet($key, $value)
-    {
-        $this->session->set($key, $value);
-        $this->assertEquals($value, $this->session->get($key));
-    }
-
-    /**
-     * @dataProvider setProvider
-     */
-    public function testHas($key, $value)
-    {
-        $this->session->set($key, $value);
-        $this->assertTrue($this->session->has($key));
-        $this->assertFalse($this->session->has($key.'non_value'));
-    }
-
-    public function testReplace()
-    {
-        $this->session->replace(array('happiness' => 'be good', 'symfony' => 'awesome'));
-        $this->assertEquals(array('happiness' => 'be good', 'symfony' => 'awesome'), $this->session->all());
-        $this->session->replace(array());
-        $this->assertEquals(array(), $this->session->all());
-    }
-
-    /**
-     * @dataProvider setProvider
-     */
-    public function testAll($key, $value, $result)
-    {
-        $this->session->set($key, $value);
-        $this->assertEquals($result, $this->session->all());
-    }
-
-    /**
-     * @dataProvider setProvider
-     */
-    public function testClear($key, $value)
-    {
-        $this->session->set('hi', 'fabien');
-        $this->session->set($key, $value);
-        $this->session->clear();
-        $this->assertEquals(array(), $this->session->all());
-    }
-
-    public function setProvider()
-    {
-        return array(
-            array('foo', 'bar', array('foo' => 'bar')),
-            array('foo.bar', 'too much beer', array('foo.bar' => 'too much beer')),
-            array('great', 'symfony is great', array('great' => 'symfony is great')),
-        );
-    }
-
-    /**
-     * @dataProvider setProvider
-     */
-    public function testRemove($key, $value)
-    {
-        $this->session->set('hi.world', 'have a nice day');
-        $this->session->set($key, $value);
-        $this->session->remove($key);
-        $this->assertEquals(array('hi.world' => 'have a nice day'), $this->session->all());
-    }
-
-    public function testInvalidate()
-    {
-        $this->session->set('invalidate', 123);
-        $this->session->invalidate();
-        $this->assertEquals(array(), $this->session->all());
-    }
-
-    public function testMigrate()
-    {
-        $this->session->set('migrate', 321);
-        $this->session->migrate();
-        $this->assertEquals(321, $this->session->get('migrate'));
-    }
-
-    public function testMigrateDestroy()
-    {
-        $this->session->set('migrate', 333);
-        $this->session->migrate(true);
-        $this->assertEquals(333, $this->session->get('migrate'));
-    }
-
-    public function testSave()
-    {
-        $this->session->start();
-        $this->session->save();
-    }
-
-    public function testGetId()
-    {
-        $this->assertEquals('', $this->session->getId());
-        $this->session->start();
-        $this->assertNotEquals('', $this->session->getId());
-    }
-
-    public function testGetFlashBag()
-    {
-        $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface', $this->session->getFlashBag());
-    }
-
-    /**
-     * @covers Symfony\Component\HttpFoundation\Session\Session::getIterator
-     */
-    public function testGetIterator()
-    {
-        $attributes = array('hello' => 'world', 'symfony' => 'rocks');
-        foreach ($attributes as $key => $val) {
-            $this->session->set($key, $val);
-        }
-
-        $i = 0;
-        foreach ($this->session as $key => $val) {
-            $this->assertEquals($attributes[$key], $val);
-            ++$i;
-        }
-
-        $this->assertEquals(count($attributes), $i);
-    }
-
-    /**
-     * @covers \Symfony\Component\HttpFoundation\Session\Session::count
-     */
-    public function testGetCount()
-    {
-        $this->session->set('hello', 'world');
-        $this->session->set('symfony', 'rocks');
-
-        $this->assertCount(2, $this->session);
-    }
-
-    public function testGetMeta()
-    {
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\MetadataBag', $this->session->getMetadataBag());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/LegacyPdoSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/LegacyPdoSessionHandlerTest.php
deleted file mode 100644
index 7a1e491..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/LegacyPdoSessionHandlerTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\LegacyPdoSessionHandler;
-
-/**
- * @group legacy
- */
-class LegacyPdoSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    private $pdo;
-
-    protected function setUp()
-    {
-        if (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers())) {
-            $this->markTestSkipped('This test requires SQLite support in your environment');
-        }
-
-        $this->pdo = new \PDO('sqlite::memory:');
-        $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
-        $sql = 'CREATE TABLE sessions (sess_id VARCHAR(128) PRIMARY KEY, sess_data TEXT, sess_time INTEGER)';
-        $this->pdo->exec($sql);
-    }
-
-    public function testIncompleteOptions()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $storage = new LegacyPdoSessionHandler($this->pdo, array());
-    }
-
-    public function testWrongPdoErrMode()
-    {
-        $pdo = new \PDO('sqlite::memory:');
-        $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_SILENT);
-        $pdo->exec('CREATE TABLE sessions (sess_id VARCHAR(128) PRIMARY KEY, sess_data TEXT, sess_time INTEGER)');
-
-        $this->setExpectedException('InvalidArgumentException');
-        $storage = new LegacyPdoSessionHandler($pdo, array('db_table' => 'sessions'));
-    }
-
-    public function testWrongTableOptionsWrite()
-    {
-        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'bad_name'));
-        $this->setExpectedException('RuntimeException');
-        $storage->write('foo', 'bar');
-    }
-
-    public function testWrongTableOptionsRead()
-    {
-        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'bad_name'));
-        $this->setExpectedException('RuntimeException');
-        $storage->read('foo', 'bar');
-    }
-
-    public function testWriteRead()
-    {
-        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
-        $storage->write('foo', 'bar');
-        $this->assertEquals('bar', $storage->read('foo'), 'written value can be read back correctly');
-    }
-
-    public function testMultipleInstances()
-    {
-        $storage1 = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
-        $storage1->write('foo', 'bar');
-
-        $storage2 = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
-        $this->assertEquals('bar', $storage2->read('foo'), 'values persist between instances');
-    }
-
-    public function testSessionDestroy()
-    {
-        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
-        $storage->write('foo', 'bar');
-        $this->assertCount(1, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
-
-        $storage->destroy('foo');
-
-        $this->assertCount(0, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
-    }
-
-    public function testSessionGC()
-    {
-        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
-
-        $storage->write('foo', 'bar');
-        $storage->write('baz', 'bar');
-
-        $this->assertCount(2, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
-
-        $storage->gc(-1);
-        $this->assertCount(0, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
-    }
-
-    public function testGetConnection()
-    {
-        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'), array());
-
-        $method = new \ReflectionMethod($storage, 'getConnection');
-        $method->setAccessible(true);
-
-        $this->assertInstanceOf('\PDO', $method->invoke($storage));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
deleted file mode 100644
index 8d38ab3..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler;
-
-class MemcacheSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    const PREFIX = 'prefix_';
-    const TTL = 1000;
-    /**
-     * @var MemcacheSessionHandler
-     */
-    protected $storage;
-
-    protected $memcache;
-
-    protected function setUp()
-    {
-        if (!class_exists('Memcache')) {
-            $this->markTestSkipped('Skipped tests Memcache class is not present');
-        }
-
-        $this->memcache = $this->getMock('Memcache');
-        $this->storage = new MemcacheSessionHandler(
-            $this->memcache,
-            array('prefix' => self::PREFIX, 'expiretime' => self::TTL)
-        );
-    }
-
-    protected function tearDown()
-    {
-        $this->memcache = null;
-        $this->storage = null;
-    }
-
-    public function testOpenSession()
-    {
-        $this->assertTrue($this->storage->open('', ''));
-    }
-
-    public function testCloseSession()
-    {
-        $this->memcache
-            ->expects($this->once())
-            ->method('close')
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($this->storage->close());
-    }
-
-    public function testReadSession()
-    {
-        $this->memcache
-            ->expects($this->once())
-            ->method('get')
-            ->with(self::PREFIX.'id')
-        ;
-
-        $this->assertEquals('', $this->storage->read('id'));
-    }
-
-    public function testWriteSession()
-    {
-        $this->memcache
-            ->expects($this->once())
-            ->method('set')
-            ->with(self::PREFIX.'id', 'data', 0, $this->equalTo(time() + self::TTL, 2))
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($this->storage->write('id', 'data'));
-    }
-
-    public function testDestroySession()
-    {
-        $this->memcache
-            ->expects($this->once())
-            ->method('delete')
-            ->with(self::PREFIX.'id')
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($this->storage->destroy('id'));
-    }
-
-    public function testGcSession()
-    {
-        $this->assertTrue($this->storage->gc(123));
-    }
-
-    /**
-     * @dataProvider getOptionFixtures
-     */
-    public function testSupportedOptions($options, $supported)
-    {
-        try {
-            new MemcacheSessionHandler($this->memcache, $options);
-            $this->assertTrue($supported);
-        } catch (\InvalidArgumentException $e) {
-            $this->assertFalse($supported);
-        }
-    }
-
-    public function getOptionFixtures()
-    {
-        return array(
-            array(array('prefix' => 'session'), true),
-            array(array('expiretime' => 100), true),
-            array(array('prefix' => 'session', 'expiretime' => 200), true),
-            array(array('expiretime' => 100, 'foo' => 'bar'), false),
-        );
-    }
-
-    public function testGetConnection()
-    {
-        $method = new \ReflectionMethod($this->storage, 'getMemcache');
-        $method->setAccessible(true);
-
-        $this->assertInstanceOf('\Memcache', $method->invoke($this->storage));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
deleted file mode 100644
index a7e5908..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcachedSessionHandler;
-
-class MemcachedSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    const PREFIX = 'prefix_';
-    const TTL = 1000;
-
-    /**
-     * @var MemcachedSessionHandler
-     */
-    protected $storage;
-
-    protected $memcached;
-
-    protected function setUp()
-    {
-        if (!class_exists('Memcached')) {
-            $this->markTestSkipped('Skipped tests Memcached class is not present');
-        }
-
-        if (version_compare(phpversion('memcached'), '2.2.0', '>=')) {
-            $this->markTestSkipped('Tests can only be run with memcached extension 2.1.0 or lower');
-        }
-
-        $this->memcached = $this->getMock('Memcached');
-        $this->storage = new MemcachedSessionHandler(
-            $this->memcached,
-            array('prefix' => self::PREFIX, 'expiretime' => self::TTL)
-        );
-    }
-
-    protected function tearDown()
-    {
-        $this->memcached = null;
-        $this->storage = null;
-    }
-
-    public function testOpenSession()
-    {
-        $this->assertTrue($this->storage->open('', ''));
-    }
-
-    public function testCloseSession()
-    {
-        $this->assertTrue($this->storage->close());
-    }
-
-    public function testReadSession()
-    {
-        $this->memcached
-            ->expects($this->once())
-            ->method('get')
-            ->with(self::PREFIX.'id')
-        ;
-
-        $this->assertEquals('', $this->storage->read('id'));
-    }
-
-    public function testWriteSession()
-    {
-        $this->memcached
-            ->expects($this->once())
-            ->method('set')
-            ->with(self::PREFIX.'id', 'data', $this->equalTo(time() + self::TTL, 2))
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($this->storage->write('id', 'data'));
-    }
-
-    public function testDestroySession()
-    {
-        $this->memcached
-            ->expects($this->once())
-            ->method('delete')
-            ->with(self::PREFIX.'id')
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($this->storage->destroy('id'));
-    }
-
-    public function testGcSession()
-    {
-        $this->assertTrue($this->storage->gc(123));
-    }
-
-    /**
-     * @dataProvider getOptionFixtures
-     */
-    public function testSupportedOptions($options, $supported)
-    {
-        try {
-            new MemcachedSessionHandler($this->memcached, $options);
-            $this->assertTrue($supported);
-        } catch (\InvalidArgumentException $e) {
-            $this->assertFalse($supported);
-        }
-    }
-
-    public function getOptionFixtures()
-    {
-        return array(
-            array(array('prefix' => 'session'), true),
-            array(array('expiretime' => 100), true),
-            array(array('prefix' => 'session', 'expiretime' => 200), true),
-            array(array('expiretime' => 100, 'foo' => 'bar'), false),
-        );
-    }
-
-    public function testGetConnection()
-    {
-        $method = new \ReflectionMethod($this->storage, 'getMemcached');
-        $method->setAccessible(true);
-
-        $this->assertInstanceOf('\Memcached', $method->invoke($this->storage));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
deleted file mode 100644
index 0bc012a..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
+++ /dev/null
@@ -1,255 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler;
-
-/**
- * @author Markus Bachmann <markus.bachmann@bachi.biz>
- */
-class MongoDbSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    private $mongo;
-    private $storage;
-    public $options;
-
-    protected function setUp()
-    {
-        if (!extension_loaded('mongo')) {
-            $this->markTestSkipped('MongoDbSessionHandler requires the PHP "mongo" extension.');
-        }
-
-        $mongoClass = version_compare(phpversion('mongo'), '1.3.0', '<') ? 'Mongo' : 'MongoClient';
-
-        $this->mongo = $this->getMockBuilder($mongoClass)
-            ->getMock();
-
-        $this->options = array(
-            'id_field' => '_id',
-            'data_field' => 'data',
-            'time_field' => 'time',
-            'expiry_field' => 'expires_at',
-            'database' => 'sf2-test',
-            'collection' => 'session-test',
-        );
-
-        $this->storage = new MongoDbSessionHandler($this->mongo, $this->options);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructorShouldThrowExceptionForInvalidMongo()
-    {
-        new MongoDbSessionHandler(new \stdClass(), $this->options);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructorShouldThrowExceptionForMissingOptions()
-    {
-        new MongoDbSessionHandler($this->mongo, array());
-    }
-
-    public function testOpenMethodAlwaysReturnTrue()
-    {
-        $this->assertTrue($this->storage->open('test', 'test'), 'The "open" method should always return true');
-    }
-
-    public function testCloseMethodAlwaysReturnTrue()
-    {
-        $this->assertTrue($this->storage->close(), 'The "close" method should always return true');
-    }
-
-    public function testRead()
-    {
-        $collection = $this->createMongoCollectionMock();
-
-        $this->mongo->expects($this->once())
-            ->method('selectCollection')
-            ->with($this->options['database'], $this->options['collection'])
-            ->will($this->returnValue($collection));
-
-        $that = $this;
-
-        // defining the timeout before the actual method call
-        // allows to test for "greater than" values in the $criteria
-        $testTimeout = time() + 1;
-
-        $collection->expects($this->once())
-            ->method('findOne')
-            ->will($this->returnCallback(function ($criteria) use ($that, $testTimeout) {
-                $that->assertArrayHasKey($that->options['id_field'], $criteria);
-                $that->assertEquals($criteria[$that->options['id_field']], 'foo');
-
-                $that->assertArrayHasKey($that->options['expiry_field'], $criteria);
-                $that->assertArrayHasKey('$gte', $criteria[$that->options['expiry_field']]);
-                $that->assertInstanceOf('MongoDate', $criteria[$that->options['expiry_field']]['$gte']);
-                $that->assertGreaterThanOrEqual($criteria[$that->options['expiry_field']]['$gte']->sec, $testTimeout);
-
-                return array(
-                    $that->options['id_field'] => 'foo',
-                    $that->options['data_field'] => new \MongoBinData('bar', \MongoBinData::BYTE_ARRAY),
-                    $that->options['id_field'] => new \MongoDate(),
-                );
-            }));
-
-        $this->assertEquals('bar', $this->storage->read('foo'));
-    }
-
-    public function testWrite()
-    {
-        $collection = $this->createMongoCollectionMock();
-
-        $this->mongo->expects($this->once())
-            ->method('selectCollection')
-            ->with($this->options['database'], $this->options['collection'])
-            ->will($this->returnValue($collection));
-
-        $that = $this;
-        $data = array();
-
-        $collection->expects($this->once())
-            ->method('update')
-            ->will($this->returnCallback(function ($criteria, $updateData, $options) use ($that, &$data) {
-                $that->assertEquals(array($that->options['id_field'] => 'foo'), $criteria);
-                $that->assertEquals(array('upsert' => true, 'multiple' => false), $options);
-
-                $data = $updateData['$set'];
-            }));
-
-        $expectedExpiry = time() + (int) ini_get('session.gc_maxlifetime');
-        $this->assertTrue($this->storage->write('foo', 'bar'));
-
-        $this->assertEquals('bar', $data[$this->options['data_field']]->bin);
-        $that->assertInstanceOf('MongoDate', $data[$this->options['time_field']]);
-        $this->assertInstanceOf('MongoDate', $data[$this->options['expiry_field']]);
-        $this->assertGreaterThanOrEqual($expectedExpiry, $data[$this->options['expiry_field']]->sec);
-    }
-
-    public function testWriteWhenUsingExpiresField()
-    {
-        $this->options = array(
-            'id_field' => '_id',
-            'data_field' => 'data',
-            'time_field' => 'time',
-            'database' => 'sf2-test',
-            'collection' => 'session-test',
-            'expiry_field' => 'expiresAt',
-        );
-
-        $this->storage = new MongoDbSessionHandler($this->mongo, $this->options);
-
-        $collection = $this->createMongoCollectionMock();
-
-        $this->mongo->expects($this->once())
-            ->method('selectCollection')
-            ->with($this->options['database'], $this->options['collection'])
-            ->will($this->returnValue($collection));
-
-        $that = $this;
-        $data = array();
-
-        $collection->expects($this->once())
-            ->method('update')
-            ->will($this->returnCallback(function ($criteria, $updateData, $options) use ($that, &$data) {
-                $that->assertEquals(array($that->options['id_field'] => 'foo'), $criteria);
-                $that->assertEquals(array('upsert' => true, 'multiple' => false), $options);
-
-                $data = $updateData['$set'];
-            }));
-
-        $this->assertTrue($this->storage->write('foo', 'bar'));
-
-        $this->assertEquals('bar', $data[$this->options['data_field']]->bin);
-        $that->assertInstanceOf('MongoDate', $data[$this->options['time_field']]);
-        $that->assertInstanceOf('MongoDate', $data[$this->options['expiry_field']]);
-    }
-
-    public function testReplaceSessionData()
-    {
-        $collection = $this->createMongoCollectionMock();
-
-        $this->mongo->expects($this->once())
-            ->method('selectCollection')
-            ->with($this->options['database'], $this->options['collection'])
-            ->will($this->returnValue($collection));
-
-        $data = array();
-
-        $collection->expects($this->exactly(2))
-            ->method('update')
-            ->will($this->returnCallback(function ($criteria, $updateData, $options) use (&$data) {
-                $data = $updateData;
-            }));
-
-        $this->storage->write('foo', 'bar');
-        $this->storage->write('foo', 'foobar');
-
-        $this->assertEquals('foobar', $data['$set'][$this->options['data_field']]->bin);
-    }
-
-    public function testDestroy()
-    {
-        $collection = $this->createMongoCollectionMock();
-
-        $this->mongo->expects($this->once())
-            ->method('selectCollection')
-            ->with($this->options['database'], $this->options['collection'])
-            ->will($this->returnValue($collection));
-
-        $collection->expects($this->once())
-            ->method('remove')
-            ->with(array($this->options['id_field'] => 'foo'));
-
-        $this->assertTrue($this->storage->destroy('foo'));
-    }
-
-    public function testGc()
-    {
-        $collection = $this->createMongoCollectionMock();
-
-        $this->mongo->expects($this->once())
-            ->method('selectCollection')
-            ->with($this->options['database'], $this->options['collection'])
-            ->will($this->returnValue($collection));
-
-        $that = $this;
-
-        $collection->expects($this->once())
-            ->method('remove')
-            ->will($this->returnCallback(function ($criteria) use ($that) {
-                $that->assertInstanceOf('MongoDate', $criteria[$that->options['expiry_field']]['$lt']);
-                $that->assertGreaterThanOrEqual(time() - 1, $criteria[$that->options['expiry_field']]['$lt']->sec);
-            }));
-
-        $this->assertTrue($this->storage->gc(1));
-    }
-
-    private function createMongoCollectionMock()
-    {
-        $mongoClient = $this->getMockBuilder('MongoClient')
-            ->getMock();
-        $mongoDb = $this->getMockBuilder('MongoDB')
-            ->setConstructorArgs(array($mongoClient, 'database-name'))
-            ->getMock();
-        $collection = $this->getMockBuilder('MongoCollection')
-            ->setConstructorArgs(array($mongoDb, 'collection-name'))
-            ->getMock();
-
-        return $collection;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
deleted file mode 100644
index ab848b6..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler;
-use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
-
-/**
- * Test class for NativeFileSessionHandler.
- *
- * @author Drak <drak@zikula.org>
- *
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
-class NativeFileSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstruct()
-    {
-        $storage = new NativeSessionStorage(array('name' => 'TESTING'), new NativeFileSessionHandler(sys_get_temp_dir()));
-
-        if (PHP_VERSION_ID < 50400) {
-            $this->assertEquals('files', $storage->getSaveHandler()->getSaveHandlerName());
-            $this->assertEquals('files', ini_get('session.save_handler'));
-        } else {
-            $this->assertEquals('files', $storage->getSaveHandler()->getSaveHandlerName());
-            $this->assertEquals('user', ini_get('session.save_handler'));
-        }
-
-        $this->assertEquals(sys_get_temp_dir(), ini_get('session.save_path'));
-        $this->assertEquals('TESTING', ini_get('session.name'));
-    }
-
-    /**
-     * @dataProvider savePathDataProvider
-     */
-    public function testConstructSavePath($savePath, $expectedSavePath, $path)
-    {
-        $handler = new NativeFileSessionHandler($savePath);
-        $this->assertEquals($expectedSavePath, ini_get('session.save_path'));
-        $this->assertTrue(is_dir(realpath($path)));
-
-        rmdir($path);
-    }
-
-    public function savePathDataProvider()
-    {
-        $base = sys_get_temp_dir();
-
-        return array(
-            array("$base/foo", "$base/foo", "$base/foo"),
-            array("5;$base/foo", "5;$base/foo", "$base/foo"),
-            array("5;0600;$base/foo", "5;0600;$base/foo", "$base/foo"),
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructException()
-    {
-        $handler = new NativeFileSessionHandler('something;invalid;with;too-many-args');
-    }
-
-    public function testConstructDefault()
-    {
-        $path = ini_get('session.save_path');
-        $storage = new NativeSessionStorage(array('name' => 'TESTING'), new NativeFileSessionHandler());
-
-        $this->assertEquals($path, ini_get('session.save_path'));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php
deleted file mode 100644
index 3437cf0..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
-
-/**
- * Test class for NativeSessionHandler.
- *
- * @author Drak <drak@zikula.org>
- *
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
-class NativeSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstruct()
-    {
-        $handler = new NativeSessionHandler();
-
-        // note for PHPUnit optimisers - the use of assertTrue/False
-        // here is deliberate since the tests do not require the classes to exist - drak
-        if (PHP_VERSION_ID < 50400) {
-            $this->assertFalse($handler instanceof \SessionHandler);
-            $this->assertTrue($handler instanceof NativeSessionHandler);
-        } else {
-            $this->assertTrue($handler instanceof \SessionHandler);
-            $this->assertTrue($handler instanceof NativeSessionHandler);
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
deleted file mode 100644
index 35823d6..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NullSessionHandler;
-use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
-use Symfony\Component\HttpFoundation\Session\Session;
-
-/**
- * Test class for NullSessionHandler.
- *
- * @author Drak <drak@zikula.org>
- *
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
-class NullSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSaveHandlers()
-    {
-        $storage = $this->getStorage();
-        $this->assertEquals('user', ini_get('session.save_handler'));
-    }
-
-    public function testSession()
-    {
-        session_id('nullsessionstorage');
-        $storage = $this->getStorage();
-        $session = new Session($storage);
-        $this->assertNull($session->get('something'));
-        $session->set('something', 'unique');
-        $this->assertEquals('unique', $session->get('something'));
-    }
-
-    public function testNothingIsPersisted()
-    {
-        session_id('nullsessionstorage');
-        $storage = $this->getStorage();
-        $session = new Session($storage);
-        $session->start();
-        $this->assertEquals('nullsessionstorage', $session->getId());
-        $this->assertNull($session->get('something'));
-    }
-
-    public function getStorage()
-    {
-        return new NativeSessionStorage(array(), new NullSessionHandler());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
deleted file mode 100644
index ba06fcc..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php
+++ /dev/null
@@ -1,359 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler;
-
-class PdoSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    private $dbFile;
-
-    protected function setUp()
-    {
-        if (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers())) {
-            $this->markTestSkipped('This test requires SQLite support in your environment');
-        }
-    }
-
-    protected function tearDown()
-    {
-        // make sure the temporary database file is deleted when it has been created (even when a test fails)
-        if ($this->dbFile) {
-            @unlink($this->dbFile);
-        }
-    }
-
-    protected function getPersistentSqliteDsn()
-    {
-        $this->dbFile = tempnam(sys_get_temp_dir(), 'sf2_sqlite_sessions');
-
-        return 'sqlite:'.$this->dbFile;
-    }
-
-    protected function getMemorySqlitePdo()
-    {
-        $pdo = new \PDO('sqlite::memory:');
-        $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
-        $storage = new PdoSessionHandler($pdo);
-        $storage->createTable();
-
-        return $pdo;
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testWrongPdoErrMode()
-    {
-        $pdo = $this->getMemorySqlitePdo();
-        $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_SILENT);
-
-        $storage = new PdoSessionHandler($pdo);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testInexistentTable()
-    {
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo(), array('db_table' => 'inexistent_table'));
-        $storage->open('', 'sid');
-        $storage->read('id');
-        $storage->write('id', 'data');
-        $storage->close();
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testCreateTableTwice()
-    {
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $storage->createTable();
-    }
-
-    public function testWithLazyDsnConnection()
-    {
-        $dsn = $this->getPersistentSqliteDsn();
-
-        $storage = new PdoSessionHandler($dsn);
-        $storage->createTable();
-        $storage->open('', 'sid');
-        $data = $storage->read('id');
-        $storage->write('id', 'data');
-        $storage->close();
-        $this->assertSame('', $data, 'New session returns empty string data');
-
-        $storage->open('', 'sid');
-        $data = $storage->read('id');
-        $storage->close();
-        $this->assertSame('data', $data, 'Written value can be read back correctly');
-    }
-
-    public function testWithLazySavePathConnection()
-    {
-        $dsn = $this->getPersistentSqliteDsn();
-
-        // Open is called with what ini_set('session.save_path', $dsn) would mean
-        $storage = new PdoSessionHandler(null);
-        $storage->open($dsn, 'sid');
-        $storage->createTable();
-        $data = $storage->read('id');
-        $storage->write('id', 'data');
-        $storage->close();
-        $this->assertSame('', $data, 'New session returns empty string data');
-
-        $storage->open($dsn, 'sid');
-        $data = $storage->read('id');
-        $storage->close();
-        $this->assertSame('data', $data, 'Written value can be read back correctly');
-    }
-
-    public function testReadWriteReadWithNullByte()
-    {
-        $sessionData = 'da'."\0".'ta';
-
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $storage->open('', 'sid');
-        $readData = $storage->read('id');
-        $storage->write('id', $sessionData);
-        $storage->close();
-        $this->assertSame('', $readData, 'New session returns empty string data');
-
-        $storage->open('', 'sid');
-        $readData = $storage->read('id');
-        $storage->close();
-        $this->assertSame($sessionData, $readData, 'Written value can be read back correctly');
-    }
-
-    public function testReadConvertsStreamToString()
-    {
-        $pdo = new MockPdo('pgsql');
-        $pdo->prepareResult = $this->getMock('PDOStatement');
-
-        $content = 'foobar';
-        $stream = $this->createStream($content);
-
-        $pdo->prepareResult->expects($this->once())->method('fetchAll')
-            ->will($this->returnValue(array(array($stream, 42, time()))));
-
-        $storage = new PdoSessionHandler($pdo);
-        $result = $storage->read('foo');
-
-        $this->assertSame($content, $result);
-    }
-
-    public function testReadLockedConvertsStreamToString()
-    {
-        $pdo = new MockPdo('pgsql');
-        $selectStmt = $this->getMock('PDOStatement');
-        $insertStmt = $this->getMock('PDOStatement');
-
-        $pdo->prepareResult = function ($statement) use ($selectStmt, $insertStmt) {
-            return 0 === strpos($statement, 'INSERT') ? $insertStmt : $selectStmt;
-        };
-
-        $content = 'foobar';
-        $stream = $this->createStream($content);
-        $exception = null;
-
-        $selectStmt->expects($this->atLeast(2))->method('fetchAll')
-            ->will($this->returnCallback(function () use (&$exception, $stream) {
-                return $exception ? array(array($stream, 42, time())) : array();
-            }));
-
-        $insertStmt->expects($this->once())->method('execute')
-            ->will($this->returnCallback(function () use (&$exception) {
-                throw $exception = new \PDOException('', '23');
-            }));
-
-        $storage = new PdoSessionHandler($pdo);
-        $result = $storage->read('foo');
-
-        $this->assertSame($content, $result);
-    }
-
-    public function testReadingRequiresExactlySameId()
-    {
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $storage->open('', 'sid');
-        $storage->write('id', 'data');
-        $storage->write('test', 'data');
-        $storage->write('space ', 'data');
-        $storage->close();
-
-        $storage->open('', 'sid');
-        $readDataCaseSensitive = $storage->read('ID');
-        $readDataNoCharFolding = $storage->read('tést');
-        $readDataKeepSpace = $storage->read('space ');
-        $readDataExtraSpace = $storage->read('space  ');
-        $storage->close();
-
-        $this->assertSame('', $readDataCaseSensitive, 'Retrieval by ID should be case-sensitive (collation setting)');
-        $this->assertSame('', $readDataNoCharFolding, 'Retrieval by ID should not do character folding (collation setting)');
-        $this->assertSame('data', $readDataKeepSpace, 'Retrieval by ID requires spaces as-is');
-        $this->assertSame('', $readDataExtraSpace, 'Retrieval by ID requires spaces as-is');
-    }
-
-    /**
-     * Simulates session_regenerate_id(true) which will require an INSERT or UPDATE (replace)
-     */
-    public function testWriteDifferentSessionIdThanRead()
-    {
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $storage->open('', 'sid');
-        $storage->read('id');
-        $storage->destroy('id');
-        $storage->write('new_id', 'data_of_new_session_id');
-        $storage->close();
-
-        $storage->open('', 'sid');
-        $data = $storage->read('new_id');
-        $storage->close();
-
-        $this->assertSame('data_of_new_session_id', $data, 'Data of regenerated session id is available');
-    }
-
-    public function testWrongUsageStillWorks()
-    {
-        // wrong method sequence that should no happen, but still works
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo());
-        $storage->write('id', 'data');
-        $storage->write('other_id', 'other_data');
-        $storage->destroy('inexistent');
-        $storage->open('', 'sid');
-        $data = $storage->read('id');
-        $otherData = $storage->read('other_id');
-        $storage->close();
-
-        $this->assertSame('data', $data);
-        $this->assertSame('other_data', $otherData);
-    }
-
-    public function testSessionDestroy()
-    {
-        $pdo = $this->getMemorySqlitePdo();
-        $storage = new PdoSessionHandler($pdo);
-
-        $storage->open('', 'sid');
-        $storage->read('id');
-        $storage->write('id', 'data');
-        $storage->close();
-        $this->assertEquals(1, $pdo->query('SELECT COUNT(*) FROM sessions')->fetchColumn());
-
-        $storage->open('', 'sid');
-        $storage->read('id');
-        $storage->destroy('id');
-        $storage->close();
-        $this->assertEquals(0, $pdo->query('SELECT COUNT(*) FROM sessions')->fetchColumn());
-
-        $storage->open('', 'sid');
-        $data = $storage->read('id');
-        $storage->close();
-        $this->assertSame('', $data, 'Destroyed session returns empty string');
-    }
-
-    public function testSessionGC()
-    {
-        $previousLifeTime = ini_set('session.gc_maxlifetime', 1000);
-        $pdo = $this->getMemorySqlitePdo();
-        $storage = new PdoSessionHandler($pdo);
-
-        $storage->open('', 'sid');
-        $storage->read('id');
-        $storage->write('id', 'data');
-        $storage->close();
-
-        $storage->open('', 'sid');
-        $storage->read('gc_id');
-        ini_set('session.gc_maxlifetime', -1); // test that you can set lifetime of a session after it has been read
-        $storage->write('gc_id', 'data');
-        $storage->close();
-        $this->assertEquals(2, $pdo->query('SELECT COUNT(*) FROM sessions')->fetchColumn(), 'No session pruned because gc not called');
-
-        $storage->open('', 'sid');
-        $data = $storage->read('gc_id');
-        $storage->gc(-1);
-        $storage->close();
-
-        ini_set('session.gc_maxlifetime', $previousLifeTime);
-
-        $this->assertSame('', $data, 'Session already considered garbage, so not returning data even if it is not pruned yet');
-        $this->assertEquals(1, $pdo->query('SELECT COUNT(*) FROM sessions')->fetchColumn(), 'Expired session is pruned');
-    }
-
-    public function testGetConnection()
-    {
-        $storage = new PdoSessionHandler($this->getMemorySqlitePdo());
-
-        $method = new \ReflectionMethod($storage, 'getConnection');
-        $method->setAccessible(true);
-
-        $this->assertInstanceOf('\PDO', $method->invoke($storage));
-    }
-
-    public function testGetConnectionConnectsIfNeeded()
-    {
-        $storage = new PdoSessionHandler('sqlite::memory:');
-
-        $method = new \ReflectionMethod($storage, 'getConnection');
-        $method->setAccessible(true);
-
-        $this->assertInstanceOf('\PDO', $method->invoke($storage));
-    }
-
-    private function createStream($content)
-    {
-        $stream = tmpfile();
-        fwrite($stream, $content);
-        fseek($stream, 0);
-
-        return $stream;
-    }
-}
-
-class MockPdo extends \PDO
-{
-    public $prepareResult;
-    private $driverName;
-    private $errorMode;
-
-    public function __construct($driverName = null, $errorMode = null)
-    {
-        $this->driverName = $driverName;
-        $this->errorMode = null !== $errorMode ?: \PDO::ERRMODE_EXCEPTION;
-    }
-
-    public function getAttribute($attribute)
-    {
-        if (\PDO::ATTR_ERRMODE === $attribute) {
-            return $this->errorMode;
-        }
-
-        if (\PDO::ATTR_DRIVER_NAME === $attribute) {
-            return $this->driverName;
-        }
-
-        return parent::getAttribute($attribute);
-    }
-
-    public function prepare($statement, $driverOptions = array())
-    {
-        return is_callable($this->prepareResult)
-            ? call_user_func($this->prepareResult, $statement, $driverOptions)
-            : $this->prepareResult;
-    }
-
-    public function beginTransaction()
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/WriteCheckSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/WriteCheckSessionHandlerTest.php
deleted file mode 100644
index 069c887..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/WriteCheckSessionHandlerTest.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\WriteCheckSessionHandler;
-
-/**
- * @author Adrien Brault <adrien.brault@gmail.com>
- */
-class WriteCheckSessionHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function test()
-    {
-        $wrappedSessionHandlerMock = $this->getMock('SessionHandlerInterface');
-        $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock);
-
-        $wrappedSessionHandlerMock
-            ->expects($this->once())
-            ->method('close')
-            ->with()
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($writeCheckSessionHandler->close());
-    }
-
-    public function testWrite()
-    {
-        $wrappedSessionHandlerMock = $this->getMock('SessionHandlerInterface');
-        $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock);
-
-        $wrappedSessionHandlerMock
-            ->expects($this->once())
-            ->method('write')
-            ->with('foo', 'bar')
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertTrue($writeCheckSessionHandler->write('foo', 'bar'));
-    }
-
-    public function testSkippedWrite()
-    {
-        $wrappedSessionHandlerMock = $this->getMock('SessionHandlerInterface');
-        $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock);
-
-        $wrappedSessionHandlerMock
-            ->expects($this->once())
-            ->method('read')
-            ->with('foo')
-            ->will($this->returnValue('bar'))
-        ;
-
-        $wrappedSessionHandlerMock
-            ->expects($this->never())
-            ->method('write')
-        ;
-
-        $this->assertEquals('bar', $writeCheckSessionHandler->read('foo'));
-        $this->assertTrue($writeCheckSessionHandler->write('foo', 'bar'));
-    }
-
-    public function testNonSkippedWrite()
-    {
-        $wrappedSessionHandlerMock = $this->getMock('SessionHandlerInterface');
-        $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock);
-
-        $wrappedSessionHandlerMock
-            ->expects($this->once())
-            ->method('read')
-            ->with('foo')
-            ->will($this->returnValue('bar'))
-        ;
-
-        $wrappedSessionHandlerMock
-            ->expects($this->once())
-            ->method('write')
-            ->with('foo', 'baZZZ')
-            ->will($this->returnValue(true))
-        ;
-
-        $this->assertEquals('bar', $writeCheckSessionHandler->read('foo'));
-        $this->assertTrue($writeCheckSessionHandler->write('foo', 'baZZZ'));
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/MetadataBagTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/MetadataBagTest.php
deleted file mode 100644
index fb632a8..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/MetadataBagTest.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
-
-/**
- * Test class for MetadataBag.
- */
-class MetadataBagTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var MetadataBag
-     */
-    protected $bag;
-
-    /**
-     * @var array
-     */
-    protected $array = array();
-
-    protected function setUp()
-    {
-        $this->bag = new MetadataBag();
-        $this->array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 0);
-        $this->bag->initialize($this->array);
-    }
-
-    protected function tearDown()
-    {
-        $this->array = array();
-        $this->bag = null;
-    }
-
-    public function testInitialize()
-    {
-        $sessionMetadata = array();
-
-        $bag1 = new MetadataBag();
-        $bag1->initialize($sessionMetadata);
-        $this->assertGreaterThanOrEqual(time(), $bag1->getCreated());
-        $this->assertEquals($bag1->getCreated(), $bag1->getLastUsed());
-
-        sleep(1);
-        $bag2 = new MetadataBag();
-        $bag2->initialize($sessionMetadata);
-        $this->assertEquals($bag1->getCreated(), $bag2->getCreated());
-        $this->assertEquals($bag1->getLastUsed(), $bag2->getLastUsed());
-        $this->assertEquals($bag2->getCreated(), $bag2->getLastUsed());
-
-        sleep(1);
-        $bag3 = new MetadataBag();
-        $bag3->initialize($sessionMetadata);
-        $this->assertEquals($bag1->getCreated(), $bag3->getCreated());
-        $this->assertGreaterThan($bag2->getLastUsed(), $bag3->getLastUsed());
-        $this->assertNotEquals($bag3->getCreated(), $bag3->getLastUsed());
-    }
-
-    public function testGetSetName()
-    {
-        $this->assertEquals('__metadata', $this->bag->getName());
-        $this->bag->setName('foo');
-        $this->assertEquals('foo', $this->bag->getName());
-    }
-
-    public function testGetStorageKey()
-    {
-        $this->assertEquals('_sf2_meta', $this->bag->getStorageKey());
-    }
-
-    public function testGetLifetime()
-    {
-        $bag = new MetadataBag();
-        $array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 1000);
-        $bag->initialize($array);
-        $this->assertEquals(1000, $bag->getLifetime());
-    }
-
-    public function testGetCreated()
-    {
-        $this->assertEquals(1234567, $this->bag->getCreated());
-    }
-
-    public function testGetLastUsed()
-    {
-        $this->assertLessThanOrEqual(time(), $this->bag->getLastUsed());
-    }
-
-    public function testClear()
-    {
-        $this->bag->clear();
-    }
-
-    public function testSkipLastUsedUpdate()
-    {
-        $bag = new MetadataBag('', 30);
-        $timeStamp = time();
-
-        $created = $timeStamp - 15;
-        $sessionMetadata = array(
-            MetadataBag::CREATED => $created,
-            MetadataBag::UPDATED => $created,
-            MetadataBag::LIFETIME => 1000,
-        );
-        $bag->initialize($sessionMetadata);
-
-        $this->assertEquals($created, $sessionMetadata[MetadataBag::UPDATED]);
-    }
-
-    public function testDoesNotSkipLastUsedUpdate()
-    {
-        $bag = new MetadataBag('', 30);
-        $timeStamp = time();
-
-        $created = $timeStamp - 45;
-        $sessionMetadata = array(
-            MetadataBag::CREATED => $created,
-            MetadataBag::UPDATED => $created,
-            MetadataBag::LIFETIME => 1000,
-        );
-        $bag->initialize($sessionMetadata);
-
-        $this->assertEquals($timeStamp, $sessionMetadata[MetadataBag::UPDATED]);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/MockArraySessionStorageTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/MockArraySessionStorageTest.php
deleted file mode 100644
index c56ea4a..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/MockArraySessionStorageTest.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-
-/**
- * Test class for MockArraySessionStorage.
- *
- * @author Drak <drak@zikula.org>
- */
-class MockArraySessionStorageTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var MockArraySessionStorage
-     */
-    private $storage;
-
-    /**
-     * @var AttributeBag
-     */
-    private $attributes;
-
-    /**
-     * @var FlashBag
-     */
-    private $flashes;
-
-    private $data;
-
-    protected function setUp()
-    {
-        $this->attributes = new AttributeBag();
-        $this->flashes = new FlashBag();
-
-        $this->data = array(
-            $this->attributes->getStorageKey() => array('foo' => 'bar'),
-            $this->flashes->getStorageKey() => array('notice' => 'hello'),
-            );
-
-        $this->storage = new MockArraySessionStorage();
-        $this->storage->registerBag($this->flashes);
-        $this->storage->registerBag($this->attributes);
-        $this->storage->setSessionData($this->data);
-    }
-
-    protected function tearDown()
-    {
-        $this->data = null;
-        $this->flashes = null;
-        $this->attributes = null;
-        $this->storage = null;
-    }
-
-    public function testStart()
-    {
-        $this->assertEquals('', $this->storage->getId());
-        $this->storage->start();
-        $id = $this->storage->getId();
-        $this->assertNotEquals('', $id);
-        $this->storage->start();
-        $this->assertEquals($id, $this->storage->getId());
-    }
-
-    public function testRegenerate()
-    {
-        $this->storage->start();
-        $id = $this->storage->getId();
-        $this->storage->regenerate();
-        $this->assertNotEquals($id, $this->storage->getId());
-        $this->assertEquals(array('foo' => 'bar'), $this->storage->getBag('attributes')->all());
-        $this->assertEquals(array('notice' => 'hello'), $this->storage->getBag('flashes')->peekAll());
-
-        $id = $this->storage->getId();
-        $this->storage->regenerate(true);
-        $this->assertNotEquals($id, $this->storage->getId());
-        $this->assertEquals(array('foo' => 'bar'), $this->storage->getBag('attributes')->all());
-        $this->assertEquals(array('notice' => 'hello'), $this->storage->getBag('flashes')->peekAll());
-    }
-
-    public function testGetId()
-    {
-        $this->assertEquals('', $this->storage->getId());
-        $this->storage->start();
-        $this->assertNotEquals('', $this->storage->getId());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testUnstartedSave()
-    {
-        $this->storage->save();
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/MockFileSessionStorageTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/MockFileSessionStorageTest.php
deleted file mode 100644
index 54321ea..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/MockFileSessionStorageTest.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-
-/**
- * Test class for MockFileSessionStorage.
- *
- * @author Drak <drak@zikula.org>
- */
-class MockFileSessionStorageTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var string
-     */
-    private $sessionDir;
-
-    /**
-     * @var MockFileSessionStorage
-     */
-    protected $storage;
-
-    protected function setUp()
-    {
-        $this->sessionDir = sys_get_temp_dir().'/sf2test';
-        $this->storage = $this->getStorage();
-    }
-
-    protected function tearDown()
-    {
-        $this->sessionDir = null;
-        $this->storage = null;
-        array_map('unlink', glob($this->sessionDir.'/*.session'));
-        if (is_dir($this->sessionDir)) {
-            rmdir($this->sessionDir);
-        }
-    }
-
-    public function testStart()
-    {
-        $this->assertEquals('', $this->storage->getId());
-        $this->assertTrue($this->storage->start());
-        $id = $this->storage->getId();
-        $this->assertNotEquals('', $this->storage->getId());
-        $this->assertTrue($this->storage->start());
-        $this->assertEquals($id, $this->storage->getId());
-    }
-
-    public function testRegenerate()
-    {
-        $this->storage->start();
-        $this->storage->getBag('attributes')->set('regenerate', 1234);
-        $this->storage->regenerate();
-        $this->assertEquals(1234, $this->storage->getBag('attributes')->get('regenerate'));
-        $this->storage->regenerate(true);
-        $this->assertEquals(1234, $this->storage->getBag('attributes')->get('regenerate'));
-    }
-
-    public function testGetId()
-    {
-        $this->assertEquals('', $this->storage->getId());
-        $this->storage->start();
-        $this->assertNotEquals('', $this->storage->getId());
-    }
-
-    public function testSave()
-    {
-        $this->storage->start();
-        $id = $this->storage->getId();
-        $this->assertNotEquals('108', $this->storage->getBag('attributes')->get('new'));
-        $this->assertFalse($this->storage->getBag('flashes')->has('newkey'));
-        $this->storage->getBag('attributes')->set('new', '108');
-        $this->storage->getBag('flashes')->set('newkey', 'test');
-        $this->storage->save();
-
-        $storage = $this->getStorage();
-        $storage->setId($id);
-        $storage->start();
-        $this->assertEquals('108', $storage->getBag('attributes')->get('new'));
-        $this->assertTrue($storage->getBag('flashes')->has('newkey'));
-        $this->assertEquals(array('test'), $storage->getBag('flashes')->peek('newkey'));
-    }
-
-    public function testMultipleInstances()
-    {
-        $storage1 = $this->getStorage();
-        $storage1->start();
-        $storage1->getBag('attributes')->set('foo', 'bar');
-        $storage1->save();
-
-        $storage2 = $this->getStorage();
-        $storage2->setId($storage1->getId());
-        $storage2->start();
-        $this->assertEquals('bar', $storage2->getBag('attributes')->get('foo'), 'values persist between instances');
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testSaveWithoutStart()
-    {
-        $storage1 = $this->getStorage();
-        $storage1->save();
-    }
-
-    private function getStorage()
-    {
-        $storage = new MockFileSessionStorage($this->sessionDir);
-        $storage->registerBag(new FlashBag());
-        $storage->registerBag(new AttributeBag());
-
-        return $storage;
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/NativeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/NativeSessionStorageTest.php
deleted file mode 100644
index c8743ab..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/NativeSessionStorageTest.php
+++ /dev/null
@@ -1,258 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
-use Symfony\Component\HttpFoundation\Session\Storage\Handler\NullSessionHandler;
-use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy;
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
-
-/**
- * Test class for NativeSessionStorage.
- *
- * @author Drak <drak@zikula.org>
- *
- * These tests require separate processes.
- *
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
-class NativeSessionStorageTest extends \PHPUnit_Framework_TestCase
-{
-    private $savePath;
-
-    protected function setUp()
-    {
-        $this->iniSet('session.save_handler', 'files');
-        $this->iniSet('session.save_path', $this->savePath = sys_get_temp_dir().'/sf2test');
-        if (!is_dir($this->savePath)) {
-            mkdir($this->savePath);
-        }
-    }
-
-    protected function tearDown()
-    {
-        session_write_close();
-        array_map('unlink', glob($this->savePath.'/*'));
-        if (is_dir($this->savePath)) {
-            rmdir($this->savePath);
-        }
-
-        $this->savePath = null;
-    }
-
-    /**
-     * @param array $options
-     *
-     * @return NativeSessionStorage
-     */
-    protected function getStorage(array $options = array())
-    {
-        $storage = new NativeSessionStorage($options);
-        $storage->registerBag(new AttributeBag());
-
-        return $storage;
-    }
-
-    public function testBag()
-    {
-        $storage = $this->getStorage();
-        $bag = new FlashBag();
-        $storage->registerBag($bag);
-        $this->assertSame($bag, $storage->getBag($bag->getName()));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testRegisterBagException()
-    {
-        $storage = $this->getStorage();
-        $storage->getBag('non_existing');
-    }
-
-    public function testGetId()
-    {
-        $storage = $this->getStorage();
-        $this->assertSame('', $storage->getId(), 'Empty ID before starting session');
-
-        $storage->start();
-        $id = $storage->getId();
-        $this->assertInternalType('string', $id);
-        $this->assertNotSame('', $id);
-
-        $storage->save();
-        $this->assertSame($id, $storage->getId(), 'ID stays after saving session');
-    }
-
-    public function testRegenerate()
-    {
-        $storage = $this->getStorage();
-        $storage->start();
-        $id = $storage->getId();
-        $storage->getBag('attributes')->set('lucky', 7);
-        $storage->regenerate();
-        $this->assertNotEquals($id, $storage->getId());
-        $this->assertEquals(7, $storage->getBag('attributes')->get('lucky'));
-    }
-
-    public function testRegenerateDestroy()
-    {
-        $storage = $this->getStorage();
-        $storage->start();
-        $id = $storage->getId();
-        $storage->getBag('attributes')->set('legs', 11);
-        $storage->regenerate(true);
-        $this->assertNotEquals($id, $storage->getId());
-        $this->assertEquals(11, $storage->getBag('attributes')->get('legs'));
-    }
-
-    public function testSessionGlobalIsUpToDateAfterIdRegeneration()
-    {
-        $storage = $this->getStorage();
-        $storage->start();
-        $storage->getBag('attributes')->set('lucky', 7);
-        $storage->regenerate();
-        $storage->getBag('attributes')->set('lucky', 42);
-
-        $this->assertEquals(42, $_SESSION['_sf2_attributes']['lucky']);
-    }
-
-    public function testDefaultSessionCacheLimiter()
-    {
-        $this->iniSet('session.cache_limiter', 'nocache');
-
-        $storage = new NativeSessionStorage();
-        $this->assertEquals('', ini_get('session.cache_limiter'));
-    }
-
-    public function testExplicitSessionCacheLimiter()
-    {
-        $this->iniSet('session.cache_limiter', 'nocache');
-
-        $storage = new NativeSessionStorage(array('cache_limiter' => 'public'));
-        $this->assertEquals('public', ini_get('session.cache_limiter'));
-    }
-
-    public function testCookieOptions()
-    {
-        $options = array(
-            'cookie_lifetime' => 123456,
-            'cookie_path' => '/my/cookie/path',
-            'cookie_domain' => 'symfony.example.com',
-            'cookie_secure' => true,
-            'cookie_httponly' => false,
-        );
-
-        $this->getStorage($options);
-        $temp = session_get_cookie_params();
-        $gco = array();
-
-        foreach ($temp as $key => $value) {
-            $gco['cookie_'.$key] = $value;
-        }
-
-        $this->assertEquals($options, $gco);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetSaveHandlerException()
-    {
-        $storage = $this->getStorage();
-        $storage->setSaveHandler(new \stdClass());
-    }
-
-    public function testSetSaveHandler53()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
-        $this->iniSet('session.save_handler', 'files');
-        $storage = $this->getStorage();
-        $storage->setSaveHandler();
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(null);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new NativeSessionHandler());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new SessionHandlerProxy(new NullSessionHandler()));
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new NullSessionHandler());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new NativeProxy());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy', $storage->getSaveHandler());
-    }
-
-    public function testSetSaveHandler54()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
-        $this->iniSet('session.save_handler', 'files');
-        $storage = $this->getStorage();
-        $storage->setSaveHandler();
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(null);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new SessionHandlerProxy(new NativeSessionHandler()));
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new NativeSessionHandler());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new SessionHandlerProxy(new NullSessionHandler()));
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-        $storage->setSaveHandler(new NullSessionHandler());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testStartedOutside()
-    {
-        $storage = $this->getStorage();
-
-        $this->assertFalse($storage->getSaveHandler()->isActive());
-        $this->assertFalse($storage->isStarted());
-
-        session_start();
-        $this->assertTrue(isset($_SESSION));
-        if (PHP_VERSION_ID >= 50400) {
-            // this only works in PHP >= 5.4 where session_status is available
-            $this->assertTrue($storage->getSaveHandler()->isActive());
-        }
-        // PHP session might have started, but the storage driver has not, so false is correct here
-        $this->assertFalse($storage->isStarted());
-
-        $key = $storage->getMetadataBag()->getStorageKey();
-        $this->assertFalse(isset($_SESSION[$key]));
-        $storage->start();
-    }
-
-    public function testRestart()
-    {
-        $storage = $this->getStorage();
-        $storage->start();
-        $id = $storage->getId();
-        $storage->getBag('attributes')->set('lucky', 7);
-        $storage->save();
-        $storage->start();
-        $this->assertSame($id, $storage->getId(), 'Same session ID after restarting');
-        $this->assertSame(7, $storage->getBag('attributes')->get('lucky'), 'Data still available');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
deleted file mode 100644
index 07d560f..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage;
-
-use Symfony\Component\HttpFoundation\Session\Storage\PhpBridgeSessionStorage;
-use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
-
-/**
- * Test class for PhpSessionStorage.
- *
- * @author Drak <drak@zikula.org>
- *
- * These tests require separate processes.
- *
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
-class PhpBridgeSessionStorageTest extends \PHPUnit_Framework_TestCase
-{
-    private $savePath;
-
-    protected function setUp()
-    {
-        $this->iniSet('session.save_handler', 'files');
-        $this->iniSet('session.save_path', $this->savePath = sys_get_temp_dir().'/sf2test');
-        if (!is_dir($this->savePath)) {
-            mkdir($this->savePath);
-        }
-    }
-
-    protected function tearDown()
-    {
-        session_write_close();
-        array_map('unlink', glob($this->savePath.'/*'));
-        if (is_dir($this->savePath)) {
-            rmdir($this->savePath);
-        }
-
-        $this->savePath = null;
-    }
-
-    /**
-     * @return PhpBridgeSessionStorage
-     */
-    protected function getStorage()
-    {
-        $storage = new PhpBridgeSessionStorage();
-        $storage->registerBag(new AttributeBag());
-
-        return $storage;
-    }
-
-    public function testPhpSession53()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
-        $storage = $this->getStorage();
-
-        $this->assertFalse(isset($_SESSION));
-        $this->assertFalse($storage->getSaveHandler()->isActive());
-
-        session_start();
-        $this->assertTrue(isset($_SESSION));
-        // in PHP 5.3 we cannot reliably tell if a session has started
-        $this->assertFalse($storage->getSaveHandler()->isActive());
-        // PHP session might have started, but the storage driver has not, so false is correct here
-        $this->assertFalse($storage->isStarted());
-
-        $key = $storage->getMetadataBag()->getStorageKey();
-        $this->assertFalse(isset($_SESSION[$key]));
-        $storage->start();
-        $this->assertTrue(isset($_SESSION[$key]));
-    }
-
-    public function testPhpSession54()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
-        $storage = $this->getStorage();
-
-        $this->assertFalse($storage->getSaveHandler()->isActive());
-        $this->assertFalse($storage->isStarted());
-
-        session_start();
-        $this->assertTrue(isset($_SESSION));
-        // in PHP 5.4 we can reliably detect a session started
-        $this->assertTrue($storage->getSaveHandler()->isActive());
-        // PHP session might have started, but the storage driver has not, so false is correct here
-        $this->assertFalse($storage->isStarted());
-
-        $key = $storage->getMetadataBag()->getStorageKey();
-        $this->assertFalse(isset($_SESSION[$key]));
-        $storage->start();
-        $this->assertTrue(isset($_SESSION[$key]));
-    }
-
-    public function testClear()
-    {
-        $storage = $this->getStorage();
-        session_start();
-        $_SESSION['drak'] = 'loves symfony';
-        $storage->getBag('attributes')->set('symfony', 'greatness');
-        $key = $storage->getBag('attributes')->getStorageKey();
-        $this->assertEquals($_SESSION[$key], array('symfony' => 'greatness'));
-        $this->assertEquals($_SESSION['drak'], 'loves symfony');
-        $storage->clear();
-        $this->assertEquals($_SESSION[$key], array());
-        $this->assertEquals($_SESSION['drak'], 'loves symfony');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
deleted file mode 100644
index ee476a8..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
-
-// Note until PHPUnit_Mock_Objects 1.2 is released you cannot mock abstracts due to
-// https://github.com/sebastianbergmann/phpunit-mock-objects/issues/73
-class ConcreteProxy extends AbstractProxy
-{
-}
-
-class ConcreteSessionHandlerInterfaceProxy extends AbstractProxy implements \SessionHandlerInterface
-{
-    public function open($savePath, $sessionName)
-    {
-    }
-
-    public function close()
-    {
-    }
-
-    public function read($id)
-    {
-    }
-
-    public function write($id, $data)
-    {
-    }
-
-    public function destroy($id)
-    {
-    }
-
-    public function gc($maxlifetime)
-    {
-    }
-}
-
-/**
- * Test class for AbstractProxy.
- *
- * @author Drak <drak@zikula.org>
- */
-class AbstractProxyTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var AbstractProxy
-     */
-    protected $proxy;
-
-    protected function setUp()
-    {
-        $this->proxy = new ConcreteProxy();
-    }
-
-    protected function tearDown()
-    {
-        $this->proxy = null;
-    }
-
-    public function testGetSaveHandlerName()
-    {
-        $this->assertNull($this->proxy->getSaveHandlerName());
-    }
-
-    public function testIsSessionHandlerInterface()
-    {
-        $this->assertFalse($this->proxy->isSessionHandlerInterface());
-        $sh = new ConcreteSessionHandlerInterfaceProxy();
-        $this->assertTrue($sh->isSessionHandlerInterface());
-    }
-
-    public function testIsWrapper()
-    {
-        $this->assertFalse($this->proxy->isWrapper());
-    }
-
-    public function testIsActivePhp53()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
-        $this->assertFalse($this->proxy->isActive());
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     */
-    public function testIsActivePhp54()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
-        $this->assertFalse($this->proxy->isActive());
-        session_start();
-        $this->assertTrue($this->proxy->isActive());
-    }
-
-    public function testSetActivePhp53()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
-        $this->proxy->setActive(true);
-        $this->assertTrue($this->proxy->isActive());
-        $this->proxy->setActive(false);
-        $this->assertFalse($this->proxy->isActive());
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     * @expectedException \LogicException
-     */
-    public function testSetActivePhp54()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
-        $this->proxy->setActive(true);
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     */
-    public function testName()
-    {
-        $this->assertEquals(session_name(), $this->proxy->getName());
-        $this->proxy->setName('foo');
-        $this->assertEquals('foo', $this->proxy->getName());
-        $this->assertEquals(session_name(), $this->proxy->getName());
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testNameExceptionPhp53()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
-        $this->proxy->setActive(true);
-        $this->proxy->setName('foo');
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     * @expectedException \LogicException
-     */
-    public function testNameExceptionPhp54()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
-        session_start();
-        $this->proxy->setName('foo');
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     */
-    public function testId()
-    {
-        $this->assertEquals(session_id(), $this->proxy->getId());
-        $this->proxy->setId('foo');
-        $this->assertEquals('foo', $this->proxy->getId());
-        $this->assertEquals(session_id(), $this->proxy->getId());
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testIdExceptionPhp53()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
-        $this->proxy->setActive(true);
-        $this->proxy->setId('foo');
-    }
-
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     * @expectedException \LogicException
-     */
-    public function testIdExceptionPhp54()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
-        session_start();
-        $this->proxy->setId('foo');
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/NativeProxyTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/NativeProxyTest.php
deleted file mode 100644
index e9184ce..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/NativeProxyTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy;
-
-/**
- * Test class for NativeProxy.
- *
- * @author Drak <drak@zikula.org>
- */
-class NativeProxyTest extends \PHPUnit_Framework_TestCase
-{
-    public function testIsWrapper()
-    {
-        $proxy = new NativeProxy();
-        $this->assertFalse($proxy->isWrapper());
-    }
-
-    public function testGetSaveHandlerName()
-    {
-        $name = ini_get('session.save_handler');
-        $proxy = new NativeProxy();
-        $this->assertEquals($name, $proxy->getSaveHandlerName());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php b/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
deleted file mode 100644
index d2775a8..0000000
--- a/core/vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Proxy;
-
-use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
-
-/**
- * Tests for SessionHandlerProxy class.
- *
- * @author Drak <drak@zikula.org>
- *
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
-class SessionHandlerProxyTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_Matcher
-     */
-    private $mock;
-
-    /**
-     * @var SessionHandlerProxy
-     */
-    private $proxy;
-
-    protected function setUp()
-    {
-        $this->mock = $this->getMock('SessionHandlerInterface');
-        $this->proxy = new SessionHandlerProxy($this->mock);
-    }
-
-    protected function tearDown()
-    {
-        $this->mock = null;
-        $this->proxy = null;
-    }
-
-    public function testOpen()
-    {
-        $this->mock->expects($this->once())
-            ->method('open')
-            ->will($this->returnValue(true));
-
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->open('name', 'id');
-        if (PHP_VERSION_ID < 50400) {
-            $this->assertTrue($this->proxy->isActive());
-        } else {
-            $this->assertFalse($this->proxy->isActive());
-        }
-    }
-
-    public function testOpenFalse()
-    {
-        $this->mock->expects($this->once())
-            ->method('open')
-            ->will($this->returnValue(false));
-
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->open('name', 'id');
-        $this->assertFalse($this->proxy->isActive());
-    }
-
-    public function testClose()
-    {
-        $this->mock->expects($this->once())
-            ->method('close')
-            ->will($this->returnValue(true));
-
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->close();
-        $this->assertFalse($this->proxy->isActive());
-    }
-
-    public function testCloseFalse()
-    {
-        $this->mock->expects($this->once())
-            ->method('close')
-            ->will($this->returnValue(false));
-
-        $this->assertFalse($this->proxy->isActive());
-        $this->proxy->close();
-        $this->assertFalse($this->proxy->isActive());
-    }
-
-    public function testRead()
-    {
-        $this->mock->expects($this->once())
-            ->method('read');
-
-        $this->proxy->read('id');
-    }
-
-    public function testWrite()
-    {
-        $this->mock->expects($this->once())
-            ->method('write');
-
-        $this->proxy->write('id', 'data');
-    }
-
-    public function testDestroy()
-    {
-        $this->mock->expects($this->once())
-            ->method('destroy');
-
-        $this->proxy->destroy('id');
-    }
-
-    public function testGc()
-    {
-        $this->mock->expects($this->once())
-            ->method('gc');
-
-        $this->proxy->gc(86400);
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/Tests/StreamedResponseTest.php b/core/vendor/symfony/http-foundation/Tests/StreamedResponseTest.php
deleted file mode 100644
index 940f17c..0000000
--- a/core/vendor/symfony/http-foundation/Tests/StreamedResponseTest.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpFoundation\Tests;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\StreamedResponse;
-
-class StreamedResponseTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; }, 404, array('Content-Type' => 'text/plain'));
-
-        $this->assertEquals(404, $response->getStatusCode());
-        $this->assertEquals('text/plain', $response->headers->get('Content-Type'));
-    }
-
-    public function testPrepareWith11Protocol()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; });
-        $request = Request::create('/');
-        $request->server->set('SERVER_PROTOCOL', 'HTTP/1.1');
-
-        $response->prepare($request);
-
-        $this->assertEquals('1.1', $response->getProtocolVersion());
-        $this->assertNotEquals('chunked', $response->headers->get('Transfer-Encoding'), 'Apache assumes responses with a Transfer-Encoding header set to chunked to already be encoded.');
-    }
-
-    public function testPrepareWith10Protocol()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; });
-        $request = Request::create('/');
-        $request->server->set('SERVER_PROTOCOL', 'HTTP/1.0');
-
-        $response->prepare($request);
-
-        $this->assertEquals('1.0', $response->getProtocolVersion());
-        $this->assertNull($response->headers->get('Transfer-Encoding'));
-    }
-
-    public function testPrepareWithHeadRequest()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; });
-        $request = Request::create('/', 'HEAD');
-
-        $response->prepare($request);
-    }
-
-    public function testPrepareWithCacheHeaders()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; }, 200, array('Cache-Control' => 'max-age=600, public'));
-        $request = Request::create('/', 'GET');
-
-        $response->prepare($request);
-        $this->assertEquals('max-age=600, public', $response->headers->get('Cache-Control'));
-    }
-
-    public function testSendContent()
-    {
-        $called = 0;
-
-        $response = new StreamedResponse(function () use (&$called) { ++$called; });
-
-        $response->sendContent();
-        $this->assertEquals(1, $called);
-
-        $response->sendContent();
-        $this->assertEquals(1, $called);
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testSendContentWithNonCallable()
-    {
-        $response = new StreamedResponse(null);
-        $response->sendContent();
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testSetCallbackNonCallable()
-    {
-        $response = new StreamedResponse(null);
-        $response->setCallback(null);
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testSetContent()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; });
-        $response->setContent('foo');
-    }
-
-    public function testGetContent()
-    {
-        $response = new StreamedResponse(function () { echo 'foo'; });
-        $this->assertFalse($response->getContent());
-    }
-
-    public function testCreate()
-    {
-        $response = StreamedResponse::create(function () {}, 204);
-
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response);
-        $this->assertEquals(204, $response->getStatusCode());
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/composer.json b/core/vendor/symfony/http-foundation/composer.json
deleted file mode 100644
index 80f4436..0000000
--- a/core/vendor/symfony/http-foundation/composer.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "name": "symfony/http-foundation",
-    "type": "library",
-    "description": "Symfony HttpFoundation Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/expression-language": "~2.4"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" },
-        "classmap": [ "Resources/stubs" ]
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-foundation/phpunit.xml.dist b/core/vendor/symfony/http-foundation/phpunit.xml.dist
deleted file mode 100644
index 9ffdb43..0000000
--- a/core/vendor/symfony/http-foundation/phpunit.xml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony HttpFoundation Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/http-kernel/.gitignore b/core/vendor/symfony/http-kernel/.gitignore
deleted file mode 100644
index 94a6a25..0000000
--- a/core/vendor/symfony/http-kernel/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
-Tests/Fixtures/cache/
-Tests/Fixtures/logs/
diff --git a/core/vendor/symfony/http-kernel/Bundle/Bundle.php b/core/vendor/symfony/http-kernel/Bundle/Bundle.php
deleted file mode 100644
index c58f0f0..0000000
--- a/core/vendor/symfony/http-kernel/Bundle/Bundle.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Bundle;
-
-use Symfony\Component\DependencyInjection\ContainerAware;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\Console\Application;
-use Symfony\Component\Finder\Finder;
-use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
-
-/**
- * An implementation of BundleInterface that adds a few conventions
- * for DependencyInjection extensions and Console commands.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class Bundle extends ContainerAware implements BundleInterface
-{
-    protected $name;
-    protected $extension;
-    protected $path;
-
-    /**
-     * Boots the Bundle.
-     */
-    public function boot()
-    {
-    }
-
-    /**
-     * Shutdowns the Bundle.
-     */
-    public function shutdown()
-    {
-    }
-
-    /**
-     * Builds the bundle.
-     *
-     * It is only ever called once when the cache is empty.
-     *
-     * This method can be overridden to register compilation passes,
-     * other extensions, ...
-     *
-     * @param ContainerBuilder $container A ContainerBuilder instance
-     */
-    public function build(ContainerBuilder $container)
-    {
-    }
-
-    /**
-     * Returns the bundle's container extension.
-     *
-     * @return ExtensionInterface|null The container extension
-     *
-     * @throws \LogicException
-     *
-     * @api
-     */
-    public function getContainerExtension()
-    {
-        if (null === $this->extension) {
-            $class = $this->getContainerExtensionClass();
-            if (class_exists($class)) {
-                $extension = new $class();
-
-                if (!$extension instanceof ExtensionInterface) {
-                    throw new \LogicException(sprintf('Extension %s must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface.', $class));
-                }
-
-                // check naming convention
-                $basename = preg_replace('/Bundle$/', '', $this->getName());
-                $expectedAlias = Container::underscore($basename);
-                if ($expectedAlias != $extension->getAlias()) {
-                    throw new \LogicException(sprintf(
-                        'Users will expect the alias of the default extension of a bundle to be the underscored version of the bundle name ("%s"). You can override "Bundle::getContainerExtension()" if you want to use "%s" or another alias.',
-                        $expectedAlias, $extension->getAlias()
-                    ));
-                }
-
-                $this->extension = $extension;
-            } else {
-                $this->extension = false;
-            }
-        }
-
-        if ($this->extension) {
-            return $this->extension;
-        }
-    }
-
-    /**
-     * Gets the Bundle namespace.
-     *
-     * @return string The Bundle namespace
-     *
-     * @api
-     */
-    public function getNamespace()
-    {
-        $class = get_class($this);
-
-        return substr($class, 0, strrpos($class, '\\'));
-    }
-
-    /**
-     * Gets the Bundle directory path.
-     *
-     * @return string The Bundle absolute path
-     *
-     * @api
-     */
-    public function getPath()
-    {
-        if (null === $this->path) {
-            $reflected = new \ReflectionObject($this);
-            $this->path = dirname($reflected->getFileName());
-        }
-
-        return $this->path;
-    }
-
-    /**
-     * Returns the bundle parent name.
-     *
-     * @return string The Bundle parent name it overrides or null if no parent
-     *
-     * @api
-     */
-    public function getParent()
-    {
-    }
-
-    /**
-     * Returns the bundle name (the class short name).
-     *
-     * @return string The Bundle name
-     *
-     * @api
-     */
-    final public function getName()
-    {
-        if (null !== $this->name) {
-            return $this->name;
-        }
-
-        $name = get_class($this);
-        $pos = strrpos($name, '\\');
-
-        return $this->name = false === $pos ? $name : substr($name, $pos + 1);
-    }
-
-    /**
-     * Finds and registers Commands.
-     *
-     * Override this method if your bundle commands do not follow the conventions:
-     *
-     * * Commands are in the 'Command' sub-directory
-     * * Commands extend Symfony\Component\Console\Command\Command
-     *
-     * @param Application $application An Application instance
-     */
-    public function registerCommands(Application $application)
-    {
-        if (!is_dir($dir = $this->getPath().'/Command')) {
-            return;
-        }
-
-        $finder = new Finder();
-        $finder->files()->name('*Command.php')->in($dir);
-
-        $prefix = $this->getNamespace().'\\Command';
-        foreach ($finder as $file) {
-            $ns = $prefix;
-            if ($relativePath = $file->getRelativePath()) {
-                $ns .= '\\'.strtr($relativePath, '/', '\\');
-            }
-            $class = $ns.'\\'.$file->getBasename('.php');
-            if ($this->container) {
-                $alias = 'console.command.'.strtolower(str_replace('\\', '_', $class));
-                if ($this->container->has($alias)) {
-                    continue;
-                }
-            }
-            $r = new \ReflectionClass($class);
-            if ($r->isSubclassOf('Symfony\\Component\\Console\\Command\\Command') && !$r->isAbstract() && !$r->getConstructor()->getNumberOfRequiredParameters()) {
-                $application->add($r->newInstance());
-            }
-        }
-    }
-
-    /**
-     * Returns the bundle's container extension class.
-     *
-     * @return string
-     */
-    protected function getContainerExtensionClass()
-    {
-        $basename = preg_replace('/Bundle$/', '', $this->getName());
-
-        return $this->getNamespace().'\\DependencyInjection\\'.$basename.'Extension';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Bundle/BundleInterface.php b/core/vendor/symfony/http-kernel/Bundle/BundleInterface.php
deleted file mode 100644
index 3203d84..0000000
--- a/core/vendor/symfony/http-kernel/Bundle/BundleInterface.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Bundle;
-
-use Symfony\Component\DependencyInjection\ContainerAwareInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
-
-/**
- * BundleInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface BundleInterface extends ContainerAwareInterface
-{
-    /**
-     * Boots the Bundle.
-     *
-     * @api
-     */
-    public function boot();
-
-    /**
-     * Shutdowns the Bundle.
-     *
-     * @api
-     */
-    public function shutdown();
-
-    /**
-     * Builds the bundle.
-     *
-     * It is only ever called once when the cache is empty.
-     *
-     * @param ContainerBuilder $container A ContainerBuilder instance
-     *
-     * @api
-     */
-    public function build(ContainerBuilder $container);
-
-    /**
-     * Returns the container extension that should be implicitly loaded.
-     *
-     * @return ExtensionInterface|null The default extension or null if there is none
-     *
-     * @api
-     */
-    public function getContainerExtension();
-
-    /**
-     * Returns the bundle name that this bundle overrides.
-     *
-     * Despite its name, this method does not imply any parent/child relationship
-     * between the bundles, just a way to extend and override an existing
-     * bundle.
-     *
-     * @return string The Bundle name it overrides or null if no parent
-     *
-     * @api
-     */
-    public function getParent();
-
-    /**
-     * Returns the bundle name (the class short name).
-     *
-     * @return string The Bundle name
-     *
-     * @api
-     */
-    public function getName();
-
-    /**
-     * Gets the Bundle namespace.
-     *
-     * @return string The Bundle namespace
-     *
-     * @api
-     */
-    public function getNamespace();
-
-    /**
-     * Gets the Bundle directory path.
-     *
-     * The path should always be returned as a Unix path (with /).
-     *
-     * @return string The Bundle absolute path
-     *
-     * @api
-     */
-    public function getPath();
-}
diff --git a/core/vendor/symfony/http-kernel/CHANGELOG.md b/core/vendor/symfony/http-kernel/CHANGELOG.md
deleted file mode 100644
index ad27886..0000000
--- a/core/vendor/symfony/http-kernel/CHANGELOG.md
+++ /dev/null
@@ -1,73 +0,0 @@
-CHANGELOG
-=========
-
-2.7.0
------
-
- * added the HTTP status code to profiles
-
-2.6.0
------
-
- * deprecated `Symfony\Component\HttpKernel\EventListener\ErrorsLoggerListener`, use `Symfony\Component\HttpKernel\EventListener\DebugHandlersListener` instead
- * deprecated unused method `Symfony\Component\HttpKernel\Kernel::isClassInActiveBundle` and `Symfony\Component\HttpKernel\KernelInterface::isClassInActiveBundle`
-
-2.5.0
------
-
- * deprecated `Symfony\Component\HttpKernel\DependencyInjection\RegisterListenersPass`, use `Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass` instead
-
-2.4.0
------
-
- * added event listeners for the session
- * added the KernelEvents::FINISH_REQUEST event
-
-2.3.0
------
-
- * [BC BREAK] renamed `Symfony\Component\HttpKernel\EventListener\DeprecationLoggerListener` to `Symfony\Component\HttpKernel\EventListener\ErrorsLoggerListener` and changed its constructor
- * deprecated `Symfony\Component\HttpKernel\Debug\ErrorHandler`, `Symfony\Component\HttpKernel\Debug\ExceptionHandler`,
-   `Symfony\Component\HttpKernel\Exception\FatalErrorException` and `Symfony\Component\HttpKernel\Exception\FlattenException`
- * deprecated `Symfony\Component\HttpKernel\Kernel::init()``
- * added the possibility to specify an id an extra attributes to hinclude tags
- * added the collect of data if a controller is a Closure in the Request collector
- * pass exceptions from the ExceptionListener to the logger using the logging context to allow for more
-   detailed messages
-
-2.2.0
------
-
- * [BC BREAK] the path info for sub-request is now always _fragment (or whatever you configured instead of the default)
- * added Symfony\Component\HttpKernel\EventListener\FragmentListener
- * added Symfony\Component\HttpKernel\UriSigner
- * added Symfony\Component\HttpKernel\FragmentRenderer and rendering strategies (in Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface)
- * added Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel
- * added ControllerReference to create reference of Controllers (used in the FragmentRenderer class)
- * [BC BREAK] renamed TimeDataCollector::getTotalTime() to
-   TimeDataCollector::getDuration()
- * updated the MemoryDataCollector to include the memory used in the
-   kernel.terminate event listeners
- * moved the Stopwatch classes to a new component
- * added TraceableControllerResolver
- * added TraceableEventDispatcher (removed ContainerAwareTraceableEventDispatcher)
- * added support for WinCache opcode cache in ConfigDataCollector
-
-2.1.0
------
-
- * [BC BREAK] the charset is now configured via the Kernel::getCharset() method
- * [BC BREAK] the current locale for the user is not stored anymore in the session
- * added the HTTP method to the profiler storage
- * updated all listeners to implement EventSubscriberInterface
- * added TimeDataCollector
- * added ContainerAwareTraceableEventDispatcher
- * moved TraceableEventDispatcherInterface to the EventDispatcher component
- * added RouterListener, LocaleListener, and StreamedResponseListener
- * added CacheClearerInterface (and ChainCacheClearer)
- * added a kernel.terminate event (via TerminableInterface and PostResponseEvent)
- * added a Stopwatch class
- * added WarmableInterface
- * improved extensibility between bundles
- * added profiler storages for Memcache(d), File-based, MongoDB, Redis
- * moved Filesystem class to its own component
diff --git a/core/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php b/core/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php
deleted file mode 100644
index d4a2db3..0000000
--- a/core/vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\CacheClearer;
-
-/**
- * CacheClearerInterface.
- *
- * @author Dustin Dobervich <ddobervich@gmail.com>
- */
-interface CacheClearerInterface
-{
-    /**
-     * Clears any caches necessary.
-     *
-     * @param string $cacheDir The cache directory.
-     */
-    public function clear($cacheDir);
-}
diff --git a/core/vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php b/core/vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php
deleted file mode 100644
index 81c43b6..0000000
--- a/core/vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\CacheClearer;
-
-/**
- * ChainCacheClearer.
- *
- * @author Dustin Dobervich <ddobervich@gmail.com>
- */
-class ChainCacheClearer implements CacheClearerInterface
-{
-    /**
-     * @var array
-     */
-    protected $clearers;
-
-    /**
-     * Constructs a new instance of ChainCacheClearer.
-     *
-     * @param array $clearers The initial clearers.
-     */
-    public function __construct(array $clearers = array())
-    {
-        $this->clearers = $clearers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function clear($cacheDir)
-    {
-        foreach ($this->clearers as $clearer) {
-            $clearer->clear($cacheDir);
-        }
-    }
-
-    /**
-     * Adds a cache clearer to the aggregate.
-     *
-     * @param CacheClearerInterface $clearer
-     */
-    public function add(CacheClearerInterface $clearer)
-    {
-        $this->clearers[] = $clearer;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmer.php b/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmer.php
deleted file mode 100644
index 948b3ff..0000000
--- a/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmer.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\CacheWarmer;
-
-/**
- * Abstract cache warmer that knows how to write a file to the cache.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class CacheWarmer implements CacheWarmerInterface
-{
-    protected function writeCacheFile($file, $content)
-    {
-        $tmpFile = tempnam(dirname($file), basename($file));
-        if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) {
-            @chmod($file, 0666 & ~umask());
-
-            return;
-        }
-
-        throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $file));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php b/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php
deleted file mode 100644
index e5f4e4f..0000000
--- a/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\CacheWarmer;
-
-/**
- * Aggregates several cache warmers into a single one.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class CacheWarmerAggregate implements CacheWarmerInterface
-{
-    protected $warmers = array();
-    protected $optionalsEnabled = false;
-
-    public function __construct(array $warmers = array())
-    {
-        foreach ($warmers as $warmer) {
-            $this->add($warmer);
-        }
-    }
-
-    public function enableOptionalWarmers()
-    {
-        $this->optionalsEnabled = true;
-    }
-
-    /**
-     * Warms up the cache.
-     *
-     * @param string $cacheDir The cache directory
-     */
-    public function warmUp($cacheDir)
-    {
-        foreach ($this->warmers as $warmer) {
-            if (!$this->optionalsEnabled && $warmer->isOptional()) {
-                continue;
-            }
-
-            $warmer->warmUp($cacheDir);
-        }
-    }
-
-    /**
-     * Checks whether this warmer is optional or not.
-     *
-     * @return bool always false
-     */
-    public function isOptional()
-    {
-        return false;
-    }
-
-    public function setWarmers(array $warmers)
-    {
-        $this->warmers = array();
-        foreach ($warmers as $warmer) {
-            $this->add($warmer);
-        }
-    }
-
-    public function add(CacheWarmerInterface $warmer)
-    {
-        $this->warmers[] = $warmer;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php b/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php
deleted file mode 100644
index 8fece5e..0000000
--- a/core/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\CacheWarmer;
-
-/**
- * Interface for classes able to warm up the cache.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface CacheWarmerInterface extends WarmableInterface
-{
-    /**
-     * Checks whether this warmer is optional or not.
-     *
-     * Optional warmers can be ignored on certain conditions.
-     *
-     * A warmer should return true if the cache can be
-     * generated incrementally and on-demand.
-     *
-     * @return bool true if the warmer is optional, false otherwise
-     */
-    public function isOptional();
-}
diff --git a/core/vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php b/core/vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php
deleted file mode 100644
index 25d8ee8..0000000
--- a/core/vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\CacheWarmer;
-
-/**
- * Interface for classes that support warming their cache.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface WarmableInterface
-{
-    /**
-     * Warms up the cache.
-     *
-     * @param string $cacheDir The cache directory
-     */
-    public function warmUp($cacheDir);
-}
diff --git a/core/vendor/symfony/http-kernel/Client.php b/core/vendor/symfony/http-kernel/Client.php
deleted file mode 100644
index 50895e7..0000000
--- a/core/vendor/symfony/http-kernel/Client.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-use Symfony\Component\BrowserKit\Client as BaseClient;
-use Symfony\Component\BrowserKit\Request as DomRequest;
-use Symfony\Component\BrowserKit\Response as DomResponse;
-use Symfony\Component\BrowserKit\Cookie as DomCookie;
-use Symfony\Component\BrowserKit\History;
-use Symfony\Component\BrowserKit\CookieJar;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Client simulates a browser and makes requests to a Kernel object.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Client extends BaseClient
-{
-    protected $kernel;
-
-    /**
-     * Constructor.
-     *
-     * @param HttpKernelInterface $kernel    An HttpKernel instance
-     * @param array               $server    The server parameters (equivalent of $_SERVER)
-     * @param History             $history   A History instance to store the browser history
-     * @param CookieJar           $cookieJar A CookieJar instance to store the cookies
-     */
-    public function __construct(HttpKernelInterface $kernel, array $server = array(), History $history = null, CookieJar $cookieJar = null)
-    {
-        // These class properties must be set before calling the parent constructor, as it may depend on it.
-        $this->kernel = $kernel;
-        $this->followRedirects = false;
-
-        parent::__construct($server, $history, $cookieJar);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return Request|null A Request instance
-     */
-    public function getRequest()
-    {
-        return parent::getRequest();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return Response|null A Response instance
-     */
-    public function getResponse()
-    {
-        return parent::getResponse();
-    }
-
-    /**
-     * Makes a request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return Response A Response instance
-     */
-    protected function doRequest($request)
-    {
-        $response = $this->kernel->handle($request);
-
-        if ($this->kernel instanceof TerminableInterface) {
-            $this->kernel->terminate($request, $response);
-        }
-
-        return $response;
-    }
-
-    /**
-     * Returns the script to execute when the request must be insulated.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return string
-     */
-    protected function getScript($request)
-    {
-        $kernel = str_replace("'", "\\'", serialize($this->kernel));
-        $request = str_replace("'", "\\'", serialize($request));
-
-        $r = new \ReflectionClass('\\Symfony\\Component\\ClassLoader\\ClassLoader');
-        $requirePath = str_replace("'", "\\'", $r->getFileName());
-        $symfonyPath = str_replace("'", "\\'", dirname(dirname(dirname(__DIR__))));
-        $errorReporting = error_reporting();
-
-        $code = <<<EOF
-<?php
-
-error_reporting($errorReporting & ~E_USER_DEPRECATED);
-
-require_once '$requirePath';
-
-\$loader = new Symfony\Component\ClassLoader\ClassLoader();
-\$loader->addPrefix('Symfony', '$symfonyPath');
-\$loader->register();
-
-\$kernel = unserialize('$kernel');
-\$request = unserialize('$request');
-EOF;
-
-        return $code.$this->getHandleScript();
-    }
-
-    protected function getHandleScript()
-    {
-        return <<<'EOF'
-$response = $kernel->handle($request);
-
-if ($kernel instanceof Symfony\Component\HttpKernel\TerminableInterface) {
-    $kernel->terminate($request, $response);
-}
-
-echo serialize($response);
-EOF;
-    }
-
-    /**
-     * Converts the BrowserKit request to a HttpKernel request.
-     *
-     * @param DomRequest $request A DomRequest instance
-     *
-     * @return Request A Request instance
-     */
-    protected function filterRequest(DomRequest $request)
-    {
-        $httpRequest = Request::create($request->getUri(), $request->getMethod(), $request->getParameters(), $request->getCookies(), $request->getFiles(), $request->getServer(), $request->getContent());
-
-        foreach ($this->filterFiles($httpRequest->files->all()) as $key => $value) {
-            $httpRequest->files->set($key, $value);
-        }
-
-        return $httpRequest;
-    }
-
-    /**
-     * Filters an array of files.
-     *
-     * This method created test instances of UploadedFile so that the move()
-     * method can be called on those instances.
-     *
-     * If the size of a file is greater than the allowed size (from php.ini) then
-     * an invalid UploadedFile is returned with an error set to UPLOAD_ERR_INI_SIZE.
-     *
-     * @see UploadedFile
-     *
-     * @param array $files An array of files
-     *
-     * @return array An array with all uploaded files marked as already moved
-     */
-    protected function filterFiles(array $files)
-    {
-        $filtered = array();
-        foreach ($files as $key => $value) {
-            if (is_array($value)) {
-                $filtered[$key] = $this->filterFiles($value);
-            } elseif ($value instanceof UploadedFile) {
-                if ($value->isValid() && $value->getSize() > UploadedFile::getMaxFilesize()) {
-                    $filtered[$key] = new UploadedFile(
-                        '',
-                        $value->getClientOriginalName(),
-                        $value->getClientMimeType(),
-                        0,
-                        UPLOAD_ERR_INI_SIZE,
-                        true
-                    );
-                } else {
-                    $filtered[$key] = new UploadedFile(
-                        $value->getPathname(),
-                        $value->getClientOriginalName(),
-                        $value->getClientMimeType(),
-                        $value->getClientSize(),
-                        $value->getError(),
-                        true
-                    );
-                }
-            }
-        }
-
-        return $filtered;
-    }
-
-    /**
-     * Converts the HttpKernel response to a BrowserKit response.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return DomResponse A DomResponse instance
-     */
-    protected function filterResponse($response)
-    {
-        $headers = $response->headers->all();
-        if ($response->headers->getCookies()) {
-            $cookies = array();
-            foreach ($response->headers->getCookies() as $cookie) {
-                $cookies[] = new DomCookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
-            }
-            $headers['Set-Cookie'] = $cookies;
-        }
-
-        // this is needed to support StreamedResponse
-        ob_start();
-        $response->sendContent();
-        $content = ob_get_clean();
-
-        return new DomResponse($content, $response->getStatusCode(), $headers);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Config/EnvParametersResource.php b/core/vendor/symfony/http-kernel/Config/EnvParametersResource.php
deleted file mode 100644
index 5f54450..0000000
--- a/core/vendor/symfony/http-kernel/Config/EnvParametersResource.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Config;
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-
-/**
- * EnvParametersResource represents resources stored in prefixed environment variables.
- *
- * @author Chris Wilkinson <chriswilkinson84@gmail.com>
- */
-class EnvParametersResource implements ResourceInterface, \Serializable
-{
-    /**
-     * @var string
-     */
-    private $prefix;
-
-    /**
-     * @var string
-     */
-    private $variables;
-
-    /**
-     * Constructor.
-     *
-     * @param string $prefix
-     */
-    public function __construct($prefix)
-    {
-        $this->prefix = $prefix;
-        $this->variables = $this->findVariables();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        return serialize($this->getResource());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getResource()
-    {
-        return array('prefix' => $this->prefix, 'variables' => $this->variables);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isFresh($timestamp)
-    {
-        return $this->findVariables() === $this->variables;
-    }
-
-    public function serialize()
-    {
-        return serialize(array('prefix' => $this->prefix, 'variables' => $this->variables));
-    }
-
-    public function unserialize($serialized)
-    {
-        $unserialized = unserialize($serialized);
-
-        $this->prefix = $unserialized['prefix'];
-        $this->variables = $unserialized['variables'];
-    }
-
-    private function findVariables()
-    {
-        $variables = array();
-
-        foreach ($_SERVER as $key => $value) {
-            if (0 === strpos($key, $this->prefix)) {
-                $variables[$key] = $value;
-            }
-        }
-
-        ksort($variables);
-
-        return $variables;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Config/FileLocator.php b/core/vendor/symfony/http-kernel/Config/FileLocator.php
deleted file mode 100644
index 169c9ad..0000000
--- a/core/vendor/symfony/http-kernel/Config/FileLocator.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Config;
-
-use Symfony\Component\Config\FileLocator as BaseFileLocator;
-use Symfony\Component\HttpKernel\KernelInterface;
-
-/**
- * FileLocator uses the KernelInterface to locate resources in bundles.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class FileLocator extends BaseFileLocator
-{
-    private $kernel;
-    private $path;
-
-    /**
-     * Constructor.
-     *
-     * @param KernelInterface $kernel A KernelInterface instance
-     * @param null|string     $path   The path the global resource directory
-     * @param array           $paths  An array of paths where to look for resources
-     */
-    public function __construct(KernelInterface $kernel, $path = null, array $paths = array())
-    {
-        $this->kernel = $kernel;
-        if (null !== $path) {
-            $this->path = $path;
-            $paths[] = $path;
-        }
-
-        parent::__construct($paths);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function locate($file, $currentPath = null, $first = true)
-    {
-        if (isset($file[0]) && '@' === $file[0]) {
-            return $this->kernel->locateResource($file, $this->path, $first);
-        }
-
-        return parent::locate($file, $currentPath, $first);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Controller/ControllerReference.php b/core/vendor/symfony/http-kernel/Controller/ControllerReference.php
deleted file mode 100644
index 3d1592e..0000000
--- a/core/vendor/symfony/http-kernel/Controller/ControllerReference.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Controller;
-
-use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface;
-
-/**
- * Acts as a marker and a data holder for a Controller.
- *
- * Some methods in Symfony accept both a URI (as a string) or a controller as
- * an argument. In the latter case, instead of passing an array representing
- * the controller, you can use an instance of this class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @see FragmentRendererInterface
- */
-class ControllerReference
-{
-    public $controller;
-    public $attributes = array();
-    public $query = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $controller The controller name
-     * @param array  $attributes An array of parameters to add to the Request attributes
-     * @param array  $query      An array of parameters to add to the Request query string
-     */
-    public function __construct($controller, array $attributes = array(), array $query = array())
-    {
-        $this->controller = $controller;
-        $this->attributes = $attributes;
-        $this->query = $query;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Controller/ControllerResolver.php b/core/vendor/symfony/http-kernel/Controller/ControllerResolver.php
deleted file mode 100644
index 94df05e..0000000
--- a/core/vendor/symfony/http-kernel/Controller/ControllerResolver.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Controller;
-
-use Psr\Log\LoggerInterface;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * ControllerResolver.
- *
- * This implementation uses the '_controller' request attribute to determine
- * the controller to execute and uses the request attributes to determine
- * the controller method arguments.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ControllerResolver implements ControllerResolverInterface
-{
-    private $logger;
-
-    /**
-     * Constructor.
-     *
-     * @param LoggerInterface $logger A LoggerInterface instance
-     */
-    public function __construct(LoggerInterface $logger = null)
-    {
-        $this->logger = $logger;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * This method looks for a '_controller' request attribute that represents
-     * the controller name (a string like ClassName::MethodName).
-     *
-     * @api
-     */
-    public function getController(Request $request)
-    {
-        if (!$controller = $request->attributes->get('_controller')) {
-            if (null !== $this->logger) {
-                $this->logger->warning('Unable to look for the controller as the "_controller" parameter is missing.');
-            }
-
-            return false;
-        }
-
-        if (is_array($controller)) {
-            return $controller;
-        }
-
-        if (is_object($controller)) {
-            if (method_exists($controller, '__invoke')) {
-                return $controller;
-            }
-
-            throw new \InvalidArgumentException(sprintf('Controller "%s" for URI "%s" is not callable.', get_class($controller), $request->getPathInfo()));
-        }
-
-        if (false === strpos($controller, ':')) {
-            if (method_exists($controller, '__invoke')) {
-                return $this->instantiateController($controller);
-            } elseif (function_exists($controller)) {
-                return $controller;
-            }
-        }
-
-        $callable = $this->createController($controller);
-
-        if (!is_callable($callable)) {
-            throw new \InvalidArgumentException(sprintf('Controller "%s" for URI "%s" is not callable.', $controller, $request->getPathInfo()));
-        }
-
-        return $callable;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getArguments(Request $request, $controller)
-    {
-        if (is_array($controller)) {
-            $r = new \ReflectionMethod($controller[0], $controller[1]);
-        } elseif (is_object($controller) && !$controller instanceof \Closure) {
-            $r = new \ReflectionObject($controller);
-            $r = $r->getMethod('__invoke');
-        } else {
-            $r = new \ReflectionFunction($controller);
-        }
-
-        return $this->doGetArguments($request, $controller, $r->getParameters());
-    }
-
-    protected function doGetArguments(Request $request, $controller, array $parameters)
-    {
-        $attributes = $request->attributes->all();
-        $arguments = array();
-        foreach ($parameters as $param) {
-            if (array_key_exists($param->name, $attributes)) {
-                $arguments[] = $attributes[$param->name];
-            } elseif ($param->getClass() && $param->getClass()->isInstance($request)) {
-                $arguments[] = $request;
-            } elseif ($param->isDefaultValueAvailable()) {
-                $arguments[] = $param->getDefaultValue();
-            } else {
-                if (is_array($controller)) {
-                    $repr = sprintf('%s::%s()', get_class($controller[0]), $controller[1]);
-                } elseif (is_object($controller)) {
-                    $repr = get_class($controller);
-                } else {
-                    $repr = $controller;
-                }
-
-                throw new \RuntimeException(sprintf('Controller "%s" requires that you provide a value for the "$%s" argument (because there is no default value or because there is a non optional argument after this one).', $repr, $param->name));
-            }
-        }
-
-        return $arguments;
-    }
-
-    /**
-     * Returns a callable for the given controller.
-     *
-     * @param string $controller A Controller string
-     *
-     * @return mixed A PHP callable
-     *
-     * @throws \InvalidArgumentException
-     */
-    protected function createController($controller)
-    {
-        if (false === strpos($controller, '::')) {
-            throw new \InvalidArgumentException(sprintf('Unable to find controller "%s".', $controller));
-        }
-
-        list($class, $method) = explode('::', $controller, 2);
-
-        if (!class_exists($class)) {
-            throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
-        }
-
-        return array($this->instantiateController($class), $method);
-    }
-
-    /**
-     * Returns an instantiated controller
-     *
-     * @param string $class A class name
-     *
-     * @return object
-     */
-    protected function instantiateController($class)
-    {
-        return new $class();
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php b/core/vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php
deleted file mode 100644
index 6f805ed..0000000
--- a/core/vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Controller;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * A ControllerResolverInterface implementation knows how to determine the
- * controller to execute based on a Request object.
- *
- * It can also determine the arguments to pass to the Controller.
- *
- * A Controller can be any valid PHP callable.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface ControllerResolverInterface
-{
-    /**
-     * Returns the Controller instance associated with a Request.
-     *
-     * As several resolvers can exist for a single application, a resolver must
-     * return false when it is not able to determine the controller.
-     *
-     * The resolver must only throw an exception when it should be able to load
-     * controller but cannot because of some errors made by the developer.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return callable|false A PHP callable representing the Controller,
-     *                        or false if this resolver is not able to determine the controller
-     *
-     * @throws \LogicException If the controller can't be found
-     *
-     * @api
-     */
-    public function getController(Request $request);
-
-    /**
-     * Returns the arguments to pass to the controller.
-     *
-     * @param Request  $request    A Request instance
-     * @param callable $controller A PHP callable
-     *
-     * @return array An array of arguments to pass to the controller
-     *
-     * @throws \RuntimeException When value for argument given is not provided
-     *
-     * @api
-     */
-    public function getArguments(Request $request, $controller);
-}
diff --git a/core/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php b/core/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php
deleted file mode 100644
index f8de31c..0000000
--- a/core/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Controller;
-
-use Symfony\Component\Stopwatch\Stopwatch;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * TraceableControllerResolver.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TraceableControllerResolver implements ControllerResolverInterface
-{
-    private $resolver;
-    private $stopwatch;
-
-    /**
-     * Constructor.
-     *
-     * @param ControllerResolverInterface $resolver  A ControllerResolverInterface instance
-     * @param Stopwatch                   $stopwatch A Stopwatch instance
-     */
-    public function __construct(ControllerResolverInterface $resolver, Stopwatch $stopwatch)
-    {
-        $this->resolver = $resolver;
-        $this->stopwatch = $stopwatch;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getController(Request $request)
-    {
-        $e = $this->stopwatch->start('controller.get_callable');
-
-        $ret = $this->resolver->getController($request);
-
-        $e->stop();
-
-        return $ret;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getArguments(Request $request, $controller)
-    {
-        $e = $this->stopwatch->start('controller.get_arguments');
-
-        $ret = $this->resolver->getArguments($request, $controller);
-
-        $e->stop();
-
-        return $ret;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php
deleted file mode 100644
index 853adcb..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpKernel\KernelInterface;
-use Symfony\Component\HttpKernel\Kernel;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * ConfigDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ConfigDataCollector extends DataCollector
-{
-    /**
-     * @var KernelInterface
-     */
-    private $kernel;
-    private $name;
-    private $version;
-    private $cacheVersionInfo = true;
-
-    /**
-     * Constructor.
-     *
-     * @param string $name    The name of the application using the web profiler
-     * @param string $version The version of the application using the web profiler
-     */
-    public function __construct($name = null, $version = null)
-    {
-        $this->name = $name;
-        $this->version = $version;
-    }
-
-    /**
-     * Sets the Kernel associated with this Request.
-     *
-     * @param KernelInterface $kernel A KernelInterface instance
-     */
-    public function setKernel(KernelInterface $kernel = null)
-    {
-        $this->kernel = $kernel;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        $this->data = array(
-            'app_name' => $this->name,
-            'app_version' => $this->version,
-            'token' => $response->headers->get('X-Debug-Token'),
-            'symfony_version' => Kernel::VERSION,
-            'symfony_state' => 'unknown',
-            'name' => isset($this->kernel) ? $this->kernel->getName() : 'n/a',
-            'env' => isset($this->kernel) ? $this->kernel->getEnvironment() : 'n/a',
-            'debug' => isset($this->kernel) ? $this->kernel->isDebug() : 'n/a',
-            'php_version' => PHP_VERSION,
-            'xdebug_enabled' => extension_loaded('xdebug'),
-            'eaccel_enabled' => extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'),
-            'apc_enabled' => extension_loaded('apc') && ini_get('apc.enabled'),
-            'xcache_enabled' => extension_loaded('xcache') && ini_get('xcache.cacher'),
-            'wincache_enabled' => extension_loaded('wincache') && ini_get('wincache.ocenabled'),
-            'zend_opcache_enabled' => extension_loaded('Zend OPcache') && ini_get('opcache.enable'),
-            'bundles' => array(),
-            'sapi_name' => php_sapi_name(),
-        );
-
-        if (isset($this->kernel)) {
-            foreach ($this->kernel->getBundles() as $name => $bundle) {
-                $this->data['bundles'][$name] = $bundle->getPath();
-            }
-
-            $this->data['symfony_state'] = $this->determineSymfonyState();
-        }
-    }
-
-    public function getApplicationName()
-    {
-        return $this->data['app_name'];
-    }
-
-    public function getApplicationVersion()
-    {
-        return $this->data['app_version'];
-    }
-
-    /**
-     * Gets the token.
-     *
-     * @return string The token
-     */
-    public function getToken()
-    {
-        return $this->data['token'];
-    }
-
-    /**
-     * Gets the Symfony version.
-     *
-     * @return string The Symfony version
-     */
-    public function getSymfonyVersion()
-    {
-        return $this->data['symfony_version'];
-    }
-
-    /**
-     * Returns the state of the current Symfony release.
-     *
-     * @return string One of: unknown, dev, stable, eom, eol
-     */
-    public function getSymfonyState()
-    {
-        return $this->data['symfony_state'];
-    }
-
-    public function setCacheVersionInfo($cacheVersionInfo)
-    {
-        $this->cacheVersionInfo = $cacheVersionInfo;
-    }
-
-    /**
-     * Gets the PHP version.
-     *
-     * @return string The PHP version
-     */
-    public function getPhpVersion()
-    {
-        return $this->data['php_version'];
-    }
-
-    /**
-     * Gets the application name.
-     *
-     * @return string The application name
-     */
-    public function getAppName()
-    {
-        return $this->data['name'];
-    }
-
-    /**
-     * Gets the environment.
-     *
-     * @return string The environment
-     */
-    public function getEnv()
-    {
-        return $this->data['env'];
-    }
-
-    /**
-     * Returns true if the debug is enabled.
-     *
-     * @return bool true if debug is enabled, false otherwise
-     */
-    public function isDebug()
-    {
-        return $this->data['debug'];
-    }
-
-    /**
-     * Returns true if the XDebug is enabled.
-     *
-     * @return bool true if XDebug is enabled, false otherwise
-     */
-    public function hasXDebug()
-    {
-        return $this->data['xdebug_enabled'];
-    }
-
-    /**
-     * Returns true if EAccelerator is enabled.
-     *
-     * @return bool true if EAccelerator is enabled, false otherwise
-     */
-    public function hasEAccelerator()
-    {
-        return $this->data['eaccel_enabled'];
-    }
-
-    /**
-     * Returns true if APC is enabled.
-     *
-     * @return bool true if APC is enabled, false otherwise
-     */
-    public function hasApc()
-    {
-        return $this->data['apc_enabled'];
-    }
-
-    /**
-     * Returns true if Zend OPcache is enabled.
-     *
-     * @return bool true if Zend OPcache is enabled, false otherwise
-     */
-    public function hasZendOpcache()
-    {
-        return $this->data['zend_opcache_enabled'];
-    }
-
-    /**
-     * Returns true if XCache is enabled.
-     *
-     * @return bool true if XCache is enabled, false otherwise
-     */
-    public function hasXCache()
-    {
-        return $this->data['xcache_enabled'];
-    }
-
-    /**
-     * Returns true if WinCache is enabled.
-     *
-     * @return bool true if WinCache is enabled, false otherwise
-     */
-    public function hasWinCache()
-    {
-        return $this->data['wincache_enabled'];
-    }
-
-    /**
-     * Returns true if any accelerator is enabled.
-     *
-     * @return bool true if any accelerator is enabled, false otherwise
-     */
-    public function hasAccelerator()
-    {
-        return $this->hasApc() || $this->hasZendOpcache() || $this->hasEAccelerator() || $this->hasXCache() || $this->hasWinCache();
-    }
-
-    public function getBundles()
-    {
-        return $this->data['bundles'];
-    }
-
-    /**
-     * Gets the PHP SAPI name.
-     *
-     * @return string The environment
-     */
-    public function getSapiName()
-    {
-        return $this->data['sapi_name'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'config';
-    }
-
-    /**
-     * Tries to retrieve information about the current Symfony version.
-     *
-     * @return string One of: dev, stable, eom, eol
-     */
-    private function determineSymfonyState()
-    {
-        $now = new \DateTime();
-        $eom = \DateTime::createFromFormat('m/Y', Kernel::END_OF_MAINTENANCE)->modify('last day of this month');
-        $eol = \DateTime::createFromFormat('m/Y', Kernel::END_OF_LIFE)->modify('last day of this month');
-
-        if ($now > $eol) {
-            $versionState = 'eol';
-        } elseif ($now > $eom) {
-            $versionState = 'eom';
-        } elseif ('' !== Kernel::EXTRA_VERSION) {
-            $versionState = 'dev';
-        } else {
-            $versionState = 'stable';
-        }
-
-        return $versionState;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/DataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/DataCollector.php
deleted file mode 100644
index 5dca652..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/DataCollector.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpKernel\DataCollector\Util\ValueExporter;
-
-/**
- * DataCollector.
- *
- * Children of this class must store the collected data in the data property.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@symfony.com>
- */
-abstract class DataCollector implements DataCollectorInterface, \Serializable
-{
-    protected $data = array();
-
-    /**
-     * @var ValueExporter
-     */
-    private $valueExporter;
-
-    public function serialize()
-    {
-        return serialize($this->data);
-    }
-
-    public function unserialize($data)
-    {
-        $this->data = unserialize($data);
-    }
-
-    /**
-     * Converts a PHP variable to a string.
-     *
-     * @param mixed $var A PHP variable
-     *
-     * @return string The string representation of the variable
-     */
-    protected function varToString($var)
-    {
-        if (null === $this->valueExporter) {
-            $this->valueExporter = new ValueExporter();
-        }
-
-        return $this->valueExporter->exportValue($var);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php b/core/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php
deleted file mode 100644
index cf4cdfd..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * DataCollectorInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface DataCollectorInterface
-{
-    /**
-     * Collects data for the given Request and Response.
-     *
-     * @param Request    $request   A Request instance
-     * @param Response   $response  A Response instance
-     * @param \Exception $exception An Exception instance
-     *
-     * @api
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null);
-
-    /**
-     * Returns the name of the collector.
-     *
-     * @return string The collector name
-     *
-     * @api
-     */
-    public function getName();
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
deleted file mode 100644
index 09abfb1..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php
+++ /dev/null
@@ -1,303 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Stopwatch\Stopwatch;
-use Symfony\Component\VarDumper\Cloner\Data;
-use Symfony\Component\VarDumper\Cloner\VarCloner;
-use Symfony\Component\VarDumper\Dumper\CliDumper;
-use Symfony\Component\VarDumper\Dumper\HtmlDumper;
-use Symfony\Component\VarDumper\Dumper\DataDumperInterface;
-
-/**
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class DumpDataCollector extends DataCollector implements DataDumperInterface
-{
-    private $stopwatch;
-    private $fileLinkFormat;
-    private $dataCount = 0;
-    private $isCollected = true;
-    private $clonesCount = 0;
-    private $clonesIndex = 0;
-    private $rootRefs;
-    private $charset;
-    private $dumper;
-    private $dumperIsInjected;
-
-    public function __construct(Stopwatch $stopwatch = null, $fileLinkFormat = null, $charset = null, RequestStack $requestStack = null, DataDumperInterface $dumper = null)
-    {
-        $this->stopwatch = $stopwatch;
-        $this->fileLinkFormat = $fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
-        $this->charset = $charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8';
-        $this->requestStack = $requestStack;
-        $this->dumper = $dumper;
-        $this->dumperIsInjected = null !== $dumper;
-
-        // All clones share these properties by reference:
-        $this->rootRefs = array(
-            &$this->data,
-            &$this->dataCount,
-            &$this->isCollected,
-            &$this->clonesCount,
-        );
-    }
-
-    public function __clone()
-    {
-        $this->clonesIndex = ++$this->clonesCount;
-    }
-
-    public function dump(Data $data)
-    {
-        if ($this->stopwatch) {
-            $this->stopwatch->start('dump');
-        }
-        if ($this->isCollected) {
-            $this->isCollected = false;
-        }
-
-        $trace = DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS;
-        if (PHP_VERSION_ID >= 50400) {
-            $trace = debug_backtrace($trace, 7);
-        } else {
-            $trace = debug_backtrace($trace);
-        }
-
-        $file = $trace[0]['file'];
-        $line = $trace[0]['line'];
-        $name = false;
-        $fileExcerpt = false;
-
-        for ($i = 1; $i < 7; ++$i) {
-            if (isset($trace[$i]['class'], $trace[$i]['function'])
-                && 'dump' === $trace[$i]['function']
-                && 'Symfony\Component\VarDumper\VarDumper' === $trace[$i]['class']
-            ) {
-                $file = $trace[$i]['file'];
-                $line = $trace[$i]['line'];
-
-                while (++$i < 7) {
-                    if (isset($trace[$i]['function'], $trace[$i]['file']) && empty($trace[$i]['class']) && 0 !== strpos($trace[$i]['function'], 'call_user_func')) {
-                        $file = $trace[$i]['file'];
-                        $line = $trace[$i]['line'];
-
-                        break;
-                    } elseif (isset($trace[$i]['object']) && $trace[$i]['object'] instanceof \Twig_Template) {
-                        $info = $trace[$i]['object'];
-                        $name = $info->getTemplateName();
-                        $src = $info->getEnvironment()->getLoader()->getSource($name);
-                        $info = $info->getDebugInfo();
-                        if (isset($info[$trace[$i - 1]['line']])) {
-                            $file = false;
-                            $line = $info[$trace[$i - 1]['line']];
-                            $src = explode("\n", $src);
-                            $fileExcerpt = array();
-
-                            for ($i = max($line - 3, 1), $max = min($line + 3, count($src)); $i <= $max; ++$i) {
-                                $fileExcerpt[] = '<li'.($i === $line ? ' class="selected"' : '').'><code>'.$this->htmlEncode($src[$i - 1]).'</code></li>';
-                            }
-
-                            $fileExcerpt = '<ol start="'.max($line - 3, 1).'">'.implode("\n", $fileExcerpt).'</ol>';
-                        }
-                        break;
-                    }
-                }
-                break;
-            }
-        }
-
-        if (false === $name) {
-            $name = strtr($file, '\\', '/');
-            $name = substr($name, strrpos($name, '/') + 1);
-        }
-
-        if ($this->dumper) {
-            $this->doDump($data, $name, $file, $line);
-        }
-
-        $this->data[] = compact('data', 'name', 'file', 'line', 'fileExcerpt');
-        ++$this->dataCount;
-
-        if ($this->stopwatch) {
-            $this->stopwatch->stop('dump');
-        }
-    }
-
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        // Sub-requests and programmatic calls stay in the collected profile.
-        if ($this->dumper || ($this->requestStack && $this->requestStack->getMasterRequest() !== $request) || $request->isXmlHttpRequest() || $request->headers->has('Origin')) {
-            return;
-        }
-
-        // In all other conditions that remove the web debug toolbar, dumps are written on the output.
-        if (!$this->requestStack
-            || !$response->headers->has('X-Debug-Token')
-            || $response->isRedirection()
-            || ($response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html'))
-            || 'html' !== $request->getRequestFormat()
-            || false === strripos($response->getContent(), '</body>')
-        ) {
-            if ($response->headers->has('Content-Type') && false !== strpos($response->headers->get('Content-Type'), 'html')) {
-                $this->dumper = new HtmlDumper('php://output', $this->charset);
-            } else {
-                $this->dumper = new CliDumper('php://output', $this->charset);
-            }
-
-            foreach ($this->data as $dump) {
-                $this->doDump($dump['data'], $dump['name'], $dump['file'], $dump['line']);
-            }
-        }
-    }
-
-    public function serialize()
-    {
-        if ($this->clonesCount !== $this->clonesIndex) {
-            return 'a:0:{}';
-        }
-
-        $ser = serialize($this->data);
-        $this->data = array();
-        $this->dataCount = 0;
-        $this->isCollected = true;
-        if (!$this->dumperIsInjected) {
-            $this->dumper = null;
-        }
-
-        return $ser;
-    }
-
-    public function unserialize($data)
-    {
-        parent::unserialize($data);
-        $this->dataCount = count($this->data);
-        self::__construct($this->stopwatch);
-    }
-
-    public function getDumpsCount()
-    {
-        return $this->dataCount;
-    }
-
-    public function getDumps($format, $maxDepthLimit = -1, $maxItemsPerDepth = -1)
-    {
-        $data = fopen('php://memory', 'r+b');
-
-        if ('html' === $format) {
-            $dumper = new HtmlDumper($data, $this->charset);
-        } else {
-            throw new \InvalidArgumentException(sprintf('Invalid dump format: %s', $format));
-        }
-        $dumps = array();
-
-        foreach ($this->data as $dump) {
-            if (method_exists($dump['data'], 'withMaxDepth')) {
-                $dumper->dump($dump['data']->withMaxDepth($maxDepthLimit)->withMaxItemsPerDepth($maxItemsPerDepth));
-            } else {
-                // getLimitedClone is @deprecated, to be removed in 3.0
-                $dumper->dump($dump['data']->getLimitedClone($maxDepthLimit, $maxItemsPerDepth));
-            }
-            rewind($data);
-            $dump['data'] = stream_get_contents($data);
-            ftruncate($data, 0);
-            rewind($data);
-            $dumps[] = $dump;
-        }
-
-        return $dumps;
-    }
-
-    public function getName()
-    {
-        return 'dump';
-    }
-
-    public function __destruct()
-    {
-        if (0 === $this->clonesCount-- && !$this->isCollected && $this->data) {
-            $this->clonesCount = 0;
-            $this->isCollected = true;
-
-            $h = headers_list();
-            $i = count($h);
-            array_unshift($h, 'Content-Type: '.ini_get('default_mimetype'));
-            while (0 !== stripos($h[$i], 'Content-Type:')) {
-                --$i;
-            }
-
-            if ('cli' !== PHP_SAPI && stripos($h[$i], 'html')) {
-                $this->dumper = new HtmlDumper('php://output', $this->charset);
-            } else {
-                $this->dumper = new CliDumper('php://output', $this->charset);
-            }
-
-            foreach ($this->data as $i => $dump) {
-                $this->data[$i] = null;
-                $this->doDump($dump['data'], $dump['name'], $dump['file'], $dump['line']);
-            }
-
-            $this->data = array();
-            $this->dataCount = 0;
-        }
-    }
-
-    private function doDump($data, $name, $file, $line)
-    {
-        if (PHP_VERSION_ID >= 50400 && $this->dumper instanceof CliDumper) {
-            $contextDumper = function ($name, $file, $line, $fileLinkFormat) {
-                if ($this instanceof HtmlDumper) {
-                    if ('' !== $file) {
-                        $s = $this->style('meta', '%s');
-                        $name = strip_tags($this->style('', $name));
-                        $file = strip_tags($this->style('', $file));
-                        if ($fileLinkFormat) {
-                            $link = strtr(strip_tags($this->style('', $fileLinkFormat)), array('%f' => $file, '%l' => (int) $line));
-                            $name = sprintf('<a href="%s" title="%s">'.$s.'</a>', $link, $file, $name);
-                        } else {
-                            $name = sprintf('<abbr title="%s">'.$s.'</abbr>', $file, $name);
-                        }
-                    } else {
-                        $name = $this->style('meta', $name);
-                    }
-                    $this->line = $name.' on line '.$this->style('meta', $line).':';
-                } else {
-                    $this->line = $this->style('meta', $name).' on line '.$this->style('meta', $line).':';
-                }
-                $this->dumpLine(0);
-            };
-            $contextDumper = $contextDumper->bindTo($this->dumper, $this->dumper);
-            $contextDumper($name, $file, $line, $this->fileLinkFormat);
-        } else {
-            $cloner = new VarCloner();
-            $this->dumper->dump($cloner->cloneVar($name.' on line '.$line.':'));
-        }
-        $this->dumper->dump($data);
-    }
-
-    private function htmlEncode($s)
-    {
-        $html = '';
-
-        $dumper = new HtmlDumper(function ($line) use (&$html) {$html .= $line;}, $this->charset);
-        $dumper->setDumpHeader('');
-        $dumper->setDumpBoundaries('', '');
-
-        $cloner = new VarCloner();
-        $dumper->dump($cloner->cloneVar($s));
-
-        return substr(strip_tags($html), 1, -1);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php
deleted file mode 100644
index 0a87bc3..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcherInterface;
-
-/**
- * EventDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class EventDataCollector extends DataCollector implements LateDataCollectorInterface
-{
-    protected $dispatcher;
-
-    public function __construct(EventDispatcherInterface $dispatcher = null)
-    {
-        $this->dispatcher = $dispatcher;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        $this->data = array(
-            'called_listeners' => array(),
-            'not_called_listeners' => array(),
-        );
-    }
-
-    public function lateCollect()
-    {
-        if ($this->dispatcher instanceof TraceableEventDispatcherInterface) {
-            $this->setCalledListeners($this->dispatcher->getCalledListeners());
-            $this->setNotCalledListeners($this->dispatcher->getNotCalledListeners());
-        }
-    }
-
-    /**
-     * Sets the called listeners.
-     *
-     * @param array $listeners An array of called listeners
-     *
-     * @see TraceableEventDispatcherInterface
-     */
-    public function setCalledListeners(array $listeners)
-    {
-        $this->data['called_listeners'] = $listeners;
-    }
-
-    /**
-     * Gets the called listeners.
-     *
-     * @return array An array of called listeners
-     *
-     * @see TraceableEventDispatcherInterface
-     */
-    public function getCalledListeners()
-    {
-        return $this->data['called_listeners'];
-    }
-
-    /**
-     * Sets the not called listeners.
-     *
-     * @param array $listeners An array of not called listeners
-     *
-     * @see TraceableEventDispatcherInterface
-     */
-    public function setNotCalledListeners(array $listeners)
-    {
-        $this->data['not_called_listeners'] = $listeners;
-    }
-
-    /**
-     * Gets the not called listeners.
-     *
-     * @return array An array of not called listeners
-     *
-     * @see TraceableEventDispatcherInterface
-     */
-    public function getNotCalledListeners()
-    {
-        return $this->data['not_called_listeners'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'events';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php
deleted file mode 100644
index 9fe8264..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\Debug\Exception\FlattenException;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * ExceptionDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ExceptionDataCollector extends DataCollector
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        if (null !== $exception) {
-            $this->data = array(
-                'exception' => FlattenException::create($exception),
-            );
-        }
-    }
-
-    /**
-     * Checks if the exception is not null.
-     *
-     * @return bool true if the exception is not null, false otherwise
-     */
-    public function hasException()
-    {
-        return isset($this->data['exception']);
-    }
-
-    /**
-     * Gets the exception.
-     *
-     * @return \Exception The exception
-     */
-    public function getException()
-    {
-        return $this->data['exception'];
-    }
-
-    /**
-     * Gets the exception message.
-     *
-     * @return string The exception message
-     */
-    public function getMessage()
-    {
-        return $this->data['exception']->getMessage();
-    }
-
-    /**
-     * Gets the exception code.
-     *
-     * @return int The exception code
-     */
-    public function getCode()
-    {
-        return $this->data['exception']->getCode();
-    }
-
-    /**
-     * Gets the status code.
-     *
-     * @return int The status code
-     */
-    public function getStatusCode()
-    {
-        return $this->data['exception']->getStatusCode();
-    }
-
-    /**
-     * Gets the exception trace.
-     *
-     * @return array The exception trace
-     */
-    public function getTrace()
-    {
-        return $this->data['exception']->getTrace();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'exception';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php b/core/vendor/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php
deleted file mode 100644
index 012332d..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-/**
- * LateDataCollectorInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface LateDataCollectorInterface
-{
-    /**
-     * Collects data as late as possible.
-     */
-    public function lateCollect();
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php
deleted file mode 100644
index 0d1decd..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
-
-/**
- * LogDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class LoggerDataCollector extends DataCollector implements LateDataCollectorInterface
-{
-    private $logger;
-
-    public function __construct($logger = null)
-    {
-        if (null !== $logger && $logger instanceof DebugLoggerInterface) {
-            $this->logger = $logger;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        // everything is done as late as possible
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function lateCollect()
-    {
-        if (null !== $this->logger) {
-            $this->data = $this->computeErrorsCount();
-            $this->data['logs'] = $this->sanitizeLogs($this->logger->getLogs());
-        }
-    }
-
-    /**
-     * Gets the called events.
-     *
-     * @return array An array of called events
-     *
-     * @see TraceableEventDispatcherInterface
-     */
-    public function countErrors()
-    {
-        return isset($this->data['error_count']) ? $this->data['error_count'] : 0;
-    }
-
-    /**
-     * Gets the logs.
-     *
-     * @return array An array of logs
-     */
-    public function getLogs()
-    {
-        return isset($this->data['logs']) ? $this->data['logs'] : array();
-    }
-
-    public function getPriorities()
-    {
-        return isset($this->data['priorities']) ? $this->data['priorities'] : array();
-    }
-
-    public function countDeprecations()
-    {
-        return isset($this->data['deprecation_count']) ? $this->data['deprecation_count'] : 0;
-    }
-
-    public function countScreams()
-    {
-        return isset($this->data['scream_count']) ? $this->data['scream_count'] : 0;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'logger';
-    }
-
-    private function sanitizeLogs($logs)
-    {
-        foreach ($logs as $i => $log) {
-            $context = $this->sanitizeContext($log['context']);
-            if (isset($context['type'], $context['level']) && !($context['type'] & $context['level'])) {
-                $context['scream'] = true;
-            }
-            $logs[$i]['context'] = $context;
-        }
-
-        return $logs;
-    }
-
-    private function sanitizeContext($context)
-    {
-        if (is_array($context)) {
-            foreach ($context as $key => $value) {
-                $context[$key] = $this->sanitizeContext($value);
-            }
-
-            return $context;
-        }
-
-        if (is_resource($context)) {
-            return sprintf('Resource(%s)', get_resource_type($context));
-        }
-
-        if (is_object($context)) {
-            return sprintf('Object(%s)', get_class($context));
-        }
-
-        return $context;
-    }
-
-    private function computeErrorsCount()
-    {
-        $count = array(
-            'error_count' => $this->logger->countErrors(),
-            'deprecation_count' => 0,
-            'scream_count' => 0,
-            'priorities' => array(),
-        );
-
-        foreach ($this->logger->getLogs() as $log) {
-            if (isset($count['priorities'][$log['priority']])) {
-                ++$count['priorities'][$log['priority']]['count'];
-            } else {
-                $count['priorities'][$log['priority']] = array(
-                    'count' => 1,
-                    'name' => $log['priorityName'],
-                );
-            }
-
-            if (isset($log['context']['type'], $log['context']['level'])) {
-                if (E_DEPRECATED === $log['context']['type'] || E_USER_DEPRECATED === $log['context']['type']) {
-                    ++$count['deprecation_count'];
-                } elseif (!($log['context']['type'] & $log['context']['level'])) {
-                    ++$count['scream_count'];
-                }
-            }
-        }
-
-        ksort($count['priorities']);
-
-        return $count;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php
deleted file mode 100644
index 9385010..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * MemoryDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class MemoryDataCollector extends DataCollector implements LateDataCollectorInterface
-{
-    public function __construct()
-    {
-        $this->data = array(
-            'memory' => 0,
-            'memory_limit' => $this->convertToBytes(ini_get('memory_limit')),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        $this->updateMemoryUsage();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function lateCollect()
-    {
-        $this->updateMemoryUsage();
-    }
-
-    /**
-     * Gets the memory.
-     *
-     * @return int The memory
-     */
-    public function getMemory()
-    {
-        return $this->data['memory'];
-    }
-
-    /**
-     * Gets the PHP memory limit.
-     *
-     * @return int The memory limit
-     */
-    public function getMemoryLimit()
-    {
-        return $this->data['memory_limit'];
-    }
-
-    /**
-     * Updates the memory usage data.
-     */
-    public function updateMemoryUsage()
-    {
-        $this->data['memory'] = memory_get_peak_usage(true);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'memory';
-    }
-
-    private function convertToBytes($memoryLimit)
-    {
-        if ('-1' === $memoryLimit) {
-            return -1;
-        }
-
-        $memoryLimit = strtolower($memoryLimit);
-        $max = strtolower(ltrim($memoryLimit, '+'));
-        if (0 === strpos($max, '0x')) {
-            $max = intval($max, 16);
-        } elseif (0 === strpos($max, '0')) {
-            $max = intval($max, 8);
-        } else {
-            $max = (int) $max;
-        }
-
-        switch (substr($memoryLimit, -1)) {
-            case 't': $max *= 1024;
-            case 'g': $max *= 1024;
-            case 'm': $max *= 1024;
-            case 'k': $max *= 1024;
-        }
-
-        return $max;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php
deleted file mode 100644
index 9a499a7..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php
+++ /dev/null
@@ -1,342 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\ParameterBag;
-use Symfony\Component\HttpFoundation\HeaderBag;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\ResponseHeaderBag;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * RequestDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class RequestDataCollector extends DataCollector implements EventSubscriberInterface
-{
-    protected $controllers;
-
-    public function __construct()
-    {
-        $this->controllers = new \SplObjectStorage();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        $responseHeaders = $response->headers->all();
-        $cookies = array();
-        foreach ($response->headers->getCookies() as $cookie) {
-            $cookies[] = $this->getCookieHeader($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
-        }
-        if (count($cookies) > 0) {
-            $responseHeaders['Set-Cookie'] = $cookies;
-        }
-
-        // attributes are serialized and as they can be anything, they need to be converted to strings.
-        $attributes = array();
-        foreach ($request->attributes->all() as $key => $value) {
-            if ('_route' === $key && is_object($value)) {
-                $attributes[$key] = $this->varToString($value->getPath());
-            } elseif ('_route_params' === $key) {
-                // we need to keep route params as an array (see getRouteParams())
-                foreach ($value as $k => $v) {
-                    $value[$k] = $this->varToString($v);
-                }
-                $attributes[$key] = $value;
-            } else {
-                $attributes[$key] = $this->varToString($value);
-            }
-        }
-
-        $content = null;
-        try {
-            $content = $request->getContent();
-        } catch (\LogicException $e) {
-            // the user already got the request content as a resource
-            $content = false;
-        }
-
-        $sessionMetadata = array();
-        $sessionAttributes = array();
-        $flashes = array();
-        if ($request->hasSession()) {
-            $session = $request->getSession();
-            if ($session->isStarted()) {
-                $sessionMetadata['Created'] = date(DATE_RFC822, $session->getMetadataBag()->getCreated());
-                $sessionMetadata['Last used'] = date(DATE_RFC822, $session->getMetadataBag()->getLastUsed());
-                $sessionMetadata['Lifetime'] = $session->getMetadataBag()->getLifetime();
-                $sessionAttributes = $session->all();
-                $flashes = $session->getFlashBag()->peekAll();
-            }
-        }
-
-        $statusCode = $response->getStatusCode();
-
-        $this->data = array(
-            'format' => $request->getRequestFormat(),
-            'content' => $content,
-            'content_type' => $response->headers->get('Content-Type', 'text/html'),
-            'status_text' => isset(Response::$statusTexts[$statusCode]) ? Response::$statusTexts[$statusCode] : '',
-            'status_code' => $statusCode,
-            'request_query' => $request->query->all(),
-            'request_request' => $request->request->all(),
-            'request_headers' => $request->headers->all(),
-            'request_server' => $request->server->all(),
-            'request_cookies' => $request->cookies->all(),
-            'request_attributes' => $attributes,
-            'response_headers' => $responseHeaders,
-            'session_metadata' => $sessionMetadata,
-            'session_attributes' => $sessionAttributes,
-            'flashes' => $flashes,
-            'path_info' => $request->getPathInfo(),
-            'controller' => 'n/a',
-            'locale' => $request->getLocale(),
-        );
-
-        if (isset($this->data['request_headers']['php-auth-pw'])) {
-            $this->data['request_headers']['php-auth-pw'] = '******';
-        }
-
-        if (isset($this->data['request_server']['PHP_AUTH_PW'])) {
-            $this->data['request_server']['PHP_AUTH_PW'] = '******';
-        }
-
-        if (isset($this->data['request_request']['_password'])) {
-            $this->data['request_request']['_password'] = '******';
-        }
-
-        if (isset($this->controllers[$request])) {
-            $controller = $this->controllers[$request];
-            if (is_array($controller)) {
-                try {
-                    $r = new \ReflectionMethod($controller[0], $controller[1]);
-                    $this->data['controller'] = array(
-                        'class' => is_object($controller[0]) ? get_class($controller[0]) : $controller[0],
-                        'method' => $controller[1],
-                        'file' => $r->getFileName(),
-                        'line' => $r->getStartLine(),
-                    );
-                } catch (\ReflectionException $e) {
-                    if (is_callable($controller)) {
-                        // using __call or  __callStatic
-                        $this->data['controller'] = array(
-                            'class' => is_object($controller[0]) ? get_class($controller[0]) : $controller[0],
-                            'method' => $controller[1],
-                            'file' => 'n/a',
-                            'line' => 'n/a',
-                        );
-                    }
-                }
-            } elseif ($controller instanceof \Closure) {
-                $r = new \ReflectionFunction($controller);
-                $this->data['controller'] = array(
-                    'class' => $r->getName(),
-                    'method' => null,
-                    'file' => $r->getFileName(),
-                    'line' => $r->getStartLine(),
-                );
-            } elseif (is_object($controller)) {
-                $r = new \ReflectionClass($controller);
-                $this->data['controller'] = array(
-                    'class' => $r->getName(),
-                    'method' => null,
-                    'file' => $r->getFileName(),
-                    'line' => $r->getStartLine(),
-                );
-            } else {
-                $this->data['controller'] = (string) $controller ?: 'n/a';
-            }
-            unset($this->controllers[$request]);
-        }
-    }
-
-    public function getPathInfo()
-    {
-        return $this->data['path_info'];
-    }
-
-    public function getRequestRequest()
-    {
-        return new ParameterBag($this->data['request_request']);
-    }
-
-    public function getRequestQuery()
-    {
-        return new ParameterBag($this->data['request_query']);
-    }
-
-    public function getRequestHeaders()
-    {
-        return new HeaderBag($this->data['request_headers']);
-    }
-
-    public function getRequestServer()
-    {
-        return new ParameterBag($this->data['request_server']);
-    }
-
-    public function getRequestCookies()
-    {
-        return new ParameterBag($this->data['request_cookies']);
-    }
-
-    public function getRequestAttributes()
-    {
-        return new ParameterBag($this->data['request_attributes']);
-    }
-
-    public function getResponseHeaders()
-    {
-        return new ResponseHeaderBag($this->data['response_headers']);
-    }
-
-    public function getSessionMetadata()
-    {
-        return $this->data['session_metadata'];
-    }
-
-    public function getSessionAttributes()
-    {
-        return $this->data['session_attributes'];
-    }
-
-    public function getFlashes()
-    {
-        return $this->data['flashes'];
-    }
-
-    public function getContent()
-    {
-        return $this->data['content'];
-    }
-
-    public function getContentType()
-    {
-        return $this->data['content_type'];
-    }
-
-    public function getStatusText()
-    {
-        return $this->data['status_text'];
-    }
-
-    public function getStatusCode()
-    {
-        return $this->data['status_code'];
-    }
-
-    public function getFormat()
-    {
-        return $this->data['format'];
-    }
-
-    public function getLocale()
-    {
-        return $this->data['locale'];
-    }
-
-    /**
-     * Gets the route name.
-     *
-     * The _route request attributes is automatically set by the Router Matcher.
-     *
-     * @return string The route
-     */
-    public function getRoute()
-    {
-        return isset($this->data['request_attributes']['_route']) ? $this->data['request_attributes']['_route'] : '';
-    }
-
-    /**
-     * Gets the route parameters.
-     *
-     * The _route_params request attributes is automatically set by the RouterListener.
-     *
-     * @return array The parameters
-     */
-    public function getRouteParams()
-    {
-        return isset($this->data['request_attributes']['_route_params']) ? $this->data['request_attributes']['_route_params'] : array();
-    }
-
-    /**
-     * Gets the controller.
-     *
-     * @return string The controller as a string
-     */
-    public function getController()
-    {
-        return $this->data['controller'];
-    }
-
-    public function onKernelController(FilterControllerEvent $event)
-    {
-        $this->controllers[$event->getRequest()] = $event->getController();
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(KernelEvents::CONTROLLER => 'onKernelController');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'request';
-    }
-
-    private function getCookieHeader($name, $value, $expires, $path, $domain, $secure, $httponly)
-    {
-        $cookie = sprintf('%s=%s', $name, urlencode($value));
-
-        if (0 !== $expires) {
-            if (is_numeric($expires)) {
-                $expires = (int) $expires;
-            } elseif ($expires instanceof \DateTime) {
-                $expires = $expires->getTimestamp();
-            } else {
-                $tmp = strtotime($expires);
-                if (false === $tmp || -1 == $tmp) {
-                    throw new \InvalidArgumentException(sprintf('The "expires" cookie parameter is not valid (%s).', $expires));
-                }
-                $expires = $tmp;
-            }
-
-            $cookie .= '; expires='.str_replace('+0000', '', \DateTime::createFromFormat('U', $expires, new \DateTimeZone('GMT'))->format('D, d-M-Y H:i:s T'));
-        }
-
-        if ($domain) {
-            $cookie .= '; domain='.$domain;
-        }
-
-        $cookie .= '; path='.$path;
-
-        if ($secure) {
-            $cookie .= '; secure';
-        }
-
-        if ($httponly) {
-            $cookie .= '; httponly';
-        }
-
-        return $cookie;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php
deleted file mode 100644
index 76d9623..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\RedirectResponse;
-use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
-
-/**
- * RouterDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class RouterDataCollector extends DataCollector
-{
-    protected $controllers;
-
-    public function __construct()
-    {
-        $this->controllers = new \SplObjectStorage();
-
-        $this->data = array(
-            'redirect' => false,
-            'url' => null,
-            'route' => null,
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        if ($response instanceof RedirectResponse) {
-            $this->data['redirect'] = true;
-            $this->data['url'] = $response->getTargetUrl();
-
-            if ($this->controllers->contains($request)) {
-                $this->data['route'] = $this->guessRoute($request, $this->controllers[$request]);
-            }
-        }
-
-        unset($this->controllers[$request]);
-    }
-
-    protected function guessRoute(Request $request, $controller)
-    {
-        return 'n/a';
-    }
-
-    /**
-     * Remembers the controller associated to each request.
-     *
-     * @param FilterControllerEvent $event The filter controller event
-     */
-    public function onKernelController(FilterControllerEvent $event)
-    {
-        $this->controllers[$event->getRequest()] = $event->getController();
-    }
-
-    /**
-     * @return bool Whether this request will result in a redirect
-     */
-    public function getRedirect()
-    {
-        return $this->data['redirect'];
-    }
-
-    /**
-     * @return string|null The target URL
-     */
-    public function getTargetUrl()
-    {
-        return $this->data['url'];
-    }
-
-    /**
-     * @return string|null The target route
-     */
-    public function getTargetRoute()
-    {
-        return $this->data['route'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'router';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php b/core/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php
deleted file mode 100644
index 4ccaafa..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\KernelInterface;
-
-/**
- * TimeDataCollector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TimeDataCollector extends DataCollector implements LateDataCollectorInterface
-{
-    protected $kernel;
-    protected $stopwatch;
-
-    public function __construct(KernelInterface $kernel = null, $stopwatch = null)
-    {
-        $this->kernel = $kernel;
-        $this->stopwatch = $stopwatch;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        if (null !== $this->kernel) {
-            $startTime = $this->kernel->getStartTime();
-        } else {
-            $startTime = $request->server->get('REQUEST_TIME_FLOAT', $request->server->get('REQUEST_TIME'));
-        }
-
-        $this->data = array(
-            'token' => $response->headers->get('X-Debug-Token'),
-            'start_time' => $startTime * 1000,
-            'events' => array(),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function lateCollect()
-    {
-        if (null !== $this->stopwatch && isset($this->data['token'])) {
-            $this->setEvents($this->stopwatch->getSectionEvents($this->data['token']));
-        }
-        unset($this->data['token']);
-    }
-
-    /**
-     * Sets the request events.
-     *
-     * @param array $events The request events
-     */
-    public function setEvents(array $events)
-    {
-        foreach ($events as $event) {
-            $event->ensureStopped();
-        }
-
-        $this->data['events'] = $events;
-    }
-
-    /**
-     * Gets the request events.
-     *
-     * @return array The request events
-     */
-    public function getEvents()
-    {
-        return $this->data['events'];
-    }
-
-    /**
-     * Gets the request elapsed time.
-     *
-     * @return float The elapsed time
-     */
-    public function getDuration()
-    {
-        if (!isset($this->data['events']['__section__'])) {
-            return 0;
-        }
-
-        $lastEvent = $this->data['events']['__section__'];
-
-        return $lastEvent->getOrigin() + $lastEvent->getDuration() - $this->getStartTime();
-    }
-
-    /**
-     * Gets the initialization time.
-     *
-     * This is the time spent until the beginning of the request handling.
-     *
-     * @return float The elapsed time
-     */
-    public function getInitTime()
-    {
-        if (!isset($this->data['events']['__section__'])) {
-            return 0;
-        }
-
-        return $this->data['events']['__section__']->getOrigin() - $this->getStartTime();
-    }
-
-    /**
-     * Gets the request time.
-     *
-     * @return int The time
-     */
-    public function getStartTime()
-    {
-        return $this->data['start_time'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'time';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php b/core/vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php
deleted file mode 100644
index 20d6074..0000000
--- a/core/vendor/symfony/http-kernel/DataCollector/Util/ValueExporter.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DataCollector\Util;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ValueExporter
-{
-    /**
-     * Converts a PHP value to a string.
-     *
-     * @param mixed $value The PHP value
-     * @param int   $depth only for internal usage
-     * @param bool  $deep  only for internal usage
-     *
-     * @return string The string representation of the given value
-     */
-    public function exportValue($value, $depth = 1, $deep = false)
-    {
-        if (is_object($value)) {
-            if ($value instanceof \DateTime || $value instanceof \DateTimeInterface) {
-                return sprintf('Object(%s) - %s', get_class($value), $value->format(\DateTime::ISO8601));
-            }
-
-            return sprintf('Object(%s)', get_class($value));
-        }
-
-        if (is_array($value)) {
-            if (empty($value)) {
-                return '[]';
-            }
-
-            $indent = str_repeat('  ', $depth);
-
-            $a = array();
-            foreach ($value as $k => $v) {
-                if (is_array($v)) {
-                    $deep = true;
-                }
-                $a[] = sprintf('%s => %s', $k, $this->exportValue($v, $depth + 1, $deep));
-            }
-
-            if ($deep) {
-                return sprintf("[\n%s%s\n%s]", $indent, implode(sprintf(", \n%s", $indent), $a), str_repeat('  ', $depth - 1));
-            }
-
-            return sprintf("[%s]", implode(', ', $a));
-        }
-
-        if (is_resource($value)) {
-            return sprintf('Resource(%s#%d)', get_resource_type($value), $value);
-        }
-
-        if (null === $value) {
-            return 'null';
-        }
-
-        if (false === $value) {
-            return 'false';
-        }
-
-        if (true === $value) {
-            return 'true';
-        }
-
-        return (string) $value;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Debug/ErrorHandler.php b/core/vendor/symfony/http-kernel/Debug/ErrorHandler.php
deleted file mode 100644
index af714a3..0000000
--- a/core/vendor/symfony/http-kernel/Debug/ErrorHandler.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Debug;
-
-@trigger_error('The '.__NAMESPACE__.'\ErrorHandler class is deprecated since version 2.3 and will be removed in 3.0. Use the Symfony\Component\Debug\ErrorHandler class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Debug\ErrorHandler as DebugErrorHandler;
-
-/**
- * ErrorHandler.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
- */
-class ErrorHandler extends DebugErrorHandler
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Debug/ExceptionHandler.php b/core/vendor/symfony/http-kernel/Debug/ExceptionHandler.php
deleted file mode 100644
index 50755d9..0000000
--- a/core/vendor/symfony/http-kernel/Debug/ExceptionHandler.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Debug;
-
-@trigger_error('The '.__NAMESPACE__.'\ExceptionHandler class is deprecated since version 2.3 and will be removed in 3.0. Use the Symfony\Component\Debug\ExceptionHandler class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Debug\ExceptionHandler as DebugExceptionHandler;
-
-/**
- * ExceptionHandler converts an exception to a Response object.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
- */
-class ExceptionHandler extends DebugExceptionHandler
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php b/core/vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php
deleted file mode 100644
index eb1d8a8..0000000
--- a/core/vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Debug;
-
-use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher as BaseTraceableEventDispatcher;
-use Symfony\Component\HttpKernel\Profiler\Profiler;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\EventDispatcher\Event;
-
-/**
- * Collects some data about event listeners.
- *
- * This event dispatcher delegates the dispatching to another one.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TraceableEventDispatcher extends BaseTraceableEventDispatcher
-{
-    /**
-     * Sets the profiler.
-     *
-     * The traceable event dispatcher does not use the profiler anymore.
-     * The job is now done directly by the Profiler listener and the
-     * data collectors themselves.
-     *
-     * @param Profiler|null $profiler A Profiler instance
-     *
-     * @deprecated since version 2.4, to be removed in 3.0.
-     */
-    public function setProfiler(Profiler $profiler = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0.', E_USER_DEPRECATED);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function preDispatch($eventName, Event $event)
-    {
-        switch ($eventName) {
-            case KernelEvents::REQUEST:
-                $this->stopwatch->openSection();
-                break;
-            case KernelEvents::VIEW:
-            case KernelEvents::RESPONSE:
-                // stop only if a controller has been executed
-                if ($this->stopwatch->isStarted('controller')) {
-                    $this->stopwatch->stop('controller');
-                }
-                break;
-            case KernelEvents::TERMINATE:
-                $token = $event->getResponse()->headers->get('X-Debug-Token');
-                // There is a very special case when using built-in AppCache class as kernel wrapper, in the case
-                // of an ESI request leading to a `stale` response [B]  inside a `fresh` cached response [A].
-                // In this case, `$token` contains the [B] debug token, but the  open `stopwatch` section ID
-                // is equal to the [A] debug token. Trying to reopen section with the [B] token throws an exception
-                // which must be caught.
-                try {
-                    $this->stopwatch->openSection($token);
-                } catch (\LogicException $e) {
-                }
-                break;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function postDispatch($eventName, Event $event)
-    {
-        switch ($eventName) {
-            case KernelEvents::CONTROLLER:
-                $this->stopwatch->start('controller', 'section');
-                break;
-            case KernelEvents::RESPONSE:
-                $token = $event->getResponse()->headers->get('X-Debug-Token');
-                $this->stopwatch->stopSection($token);
-                break;
-            case KernelEvents::TERMINATE:
-                // In the special case described in the `preDispatch` method above, the `$token` section
-                // does not exist, then closing it throws an exception which must be caught.
-                $token = $event->getResponse()->headers->get('X-Debug-Token');
-                try {
-                    $this->stopwatch->stopSection($token);
-                } catch (\LogicException $e) {
-                }
-                break;
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php b/core/vendor/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php
deleted file mode 100644
index 09af6bd..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/AddClassesToCachePass.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-use Symfony\Component\HttpKernel\Kernel;
-
-/**
- * Sets the classes to compile in the cache for the container.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class AddClassesToCachePass implements CompilerPassInterface
-{
-    private $kernel;
-
-    public function __construct(Kernel $kernel)
-    {
-        $this->kernel = $kernel;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function process(ContainerBuilder $container)
-    {
-        $classes = array();
-        foreach ($container->getExtensions() as $extension) {
-            if ($extension instanceof Extension) {
-                $classes = array_merge($classes, $extension->getClassesToCompile());
-            }
-        }
-
-        $this->kernel->setClassCache(array_unique($container->getParameterBag()->resolveValue($classes)));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php b/core/vendor/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php
deleted file mode 100644
index 3ec454b..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * This extension sub-class provides first-class integration with the
- * Config/Definition Component.
- *
- * You can use this as base class if you
- *
- *    a) use the Config/Definition component for configuration
- *    b) your configuration class is named "Configuration" and
- *    c) the configuration class resides in the DependencyInjection sub-folder
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-abstract class ConfigurableExtension extends Extension
-{
-    /**
-     * {@inheritdoc}
-     */
-    final public function load(array $configs, ContainerBuilder $container)
-    {
-        $this->loadInternal($this->processConfiguration($this->getConfiguration($configs, $container), $configs), $container);
-    }
-
-    /**
-     * Configures the passed container according to the merged configuration.
-     *
-     * @param array            $mergedConfig
-     * @param ContainerBuilder $container
-     */
-    abstract protected function loadInternal(array $mergedConfig, ContainerBuilder $container);
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/ContainerAwareHttpKernel.php b/core/vendor/symfony/http-kernel/DependencyInjection/ContainerAwareHttpKernel.php
deleted file mode 100644
index 97aa740..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/ContainerAwareHttpKernel.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Scope;
-
-/**
- * Adds a managed request scope.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0.
- */
-class ContainerAwareHttpKernel extends HttpKernel
-{
-    protected $container;
-
-    /**
-     * Constructor.
-     *
-     * @param EventDispatcherInterface    $dispatcher         An EventDispatcherInterface instance
-     * @param ContainerInterface          $container          A ContainerInterface instance
-     * @param ControllerResolverInterface $controllerResolver A ControllerResolverInterface instance
-     * @param RequestStack                $requestStack       A stack for master/sub requests
-     * @param bool                        $triggerDeprecation Whether or not to trigger the deprecation warning for the ContainerAwareHttpKernel
-     */
-    public function __construct(EventDispatcherInterface $dispatcher, ContainerInterface $container, ControllerResolverInterface $controllerResolver, RequestStack $requestStack = null, $triggerDeprecation = true)
-    {
-        parent::__construct($dispatcher, $controllerResolver, $requestStack);
-
-        if ($triggerDeprecation) {
-            @trigger_error('The '.__CLASS__.' class is deprecated since version 2.7 and will be removed in 3.0. Use the Symfony\Component\HttpKernel\HttpKernel class instead.', E_USER_DEPRECATED);
-        }
-
-        $this->container = $container;
-
-        // the request scope might have been created before (see FrameworkBundle)
-        if (!$container->hasScope('request')) {
-            $container->addScope(new Scope('request'));
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        $this->container->enterScope('request');
-        $this->container->set('request', $request, 'request');
-
-        try {
-            $response = parent::handle($request, $type, $catch);
-        } catch (\Exception $e) {
-            $this->container->set('request', null, 'request');
-            $this->container->leaveScope('request');
-
-            throw $e;
-        }
-
-        $this->container->set('request', null, 'request');
-        $this->container->leaveScope('request');
-
-        return $response;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/Extension.php b/core/vendor/symfony/http-kernel/DependencyInjection/Extension.php
deleted file mode 100644
index 2ca0f13..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/Extension.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Extension\Extension as BaseExtension;
-
-/**
- * Allow adding classes to the class cache.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Extension extends BaseExtension
-{
-    private $classes = array();
-
-    /**
-     * Gets the classes to cache.
-     *
-     * @return array An array of classes
-     */
-    public function getClassesToCompile()
-    {
-        return $this->classes;
-    }
-
-    /**
-     * Adds classes to the class cache.
-     *
-     * @param array $classes An array of classes
-     */
-    public function addClassesToCompile(array $classes)
-    {
-        $this->classes = array_merge($this->classes, $classes);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php b/core/vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php
deleted file mode 100644
index dc44b2d..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-/**
- * Adds services tagged kernel.fragment_renderer as HTTP content rendering strategies.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class FragmentRendererPass implements CompilerPassInterface
-{
-    private $handlerService;
-    private $rendererTag;
-
-    /**
-     * @param string $handlerService Service name of the fragment handler in the container
-     * @param string $rendererTag    Tag name used for fragments
-     */
-    public function __construct($handlerService = 'fragment.handler', $rendererTag = 'kernel.fragment_renderer')
-    {
-        $this->handlerService = $handlerService;
-        $this->rendererTag = $rendererTag;
-    }
-
-    public function process(ContainerBuilder $container)
-    {
-        if (!$container->hasDefinition($this->handlerService)) {
-            return;
-        }
-
-        $definition = $container->getDefinition($this->handlerService);
-        foreach ($container->findTaggedServiceIds($this->rendererTag) as $id => $tags) {
-            $def = $container->getDefinition($id);
-            if (!$def->isPublic()) {
-                throw new \InvalidArgumentException(sprintf('The service "%s" must be public as fragment renderer are lazy-loaded.', $id));
-            }
-
-            if ($def->isAbstract()) {
-                throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as fragment renderer are lazy-loaded.', $id));
-            }
-
-            $refClass = new \ReflectionClass($container->getParameterBag()->resolveValue($def->getClass()));
-            $interface = 'Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface';
-            if (!$refClass->implementsInterface($interface)) {
-                throw new \InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, $interface));
-            }
-
-            foreach ($tags as $tag) {
-                if (!isset($tag['alias'])) {
-                    @trigger_error(sprintf('Service "%s" will have to define the "alias" attribute on the "%s" tag as of Symfony 3.0.', $id, $this->rendererTag), E_USER_DEPRECATED);
-
-                    // register the handler as a non-lazy-loaded one
-                    $definition->addMethodCall('addRenderer', array(new Reference($id)));
-                } else {
-                    $definition->addMethodCall('addRendererService', array($tag['alias'], $id));
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php b/core/vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php
deleted file mode 100644
index 4efe7cb..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpKernel\Fragment\FragmentHandler;
-
-/**
- * Lazily loads fragment renderers from the dependency injection container.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class LazyLoadingFragmentHandler extends FragmentHandler
-{
-    private $container;
-    private $rendererIds = array();
-
-    public function __construct(ContainerInterface $container, $debug = false, RequestStack $requestStack = null)
-    {
-        $this->container = $container;
-
-        parent::__construct(array(), $debug, $requestStack);
-    }
-
-    /**
-     * Adds a service as a fragment renderer.
-     *
-     * @param string $renderer The render service id
-     */
-    public function addRendererService($name, $renderer)
-    {
-        $this->rendererIds[$name] = $renderer;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function render($uri, $renderer = 'inline', array $options = array())
-    {
-        if (isset($this->rendererIds[$renderer])) {
-            $this->addRenderer($this->container->get($this->rendererIds[$renderer]));
-
-            unset($this->rendererIds[$renderer]);
-        }
-
-        return parent::render($uri, $renderer, $options);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php b/core/vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php
deleted file mode 100644
index dcd7382..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass as BaseMergeExtensionConfigurationPass;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Ensures certain extensions are always loaded.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- */
-class MergeExtensionConfigurationPass extends BaseMergeExtensionConfigurationPass
-{
-    private $extensions;
-
-    public function __construct(array $extensions)
-    {
-        $this->extensions = $extensions;
-    }
-
-    public function process(ContainerBuilder $container)
-    {
-        foreach ($this->extensions as $extension) {
-            if (!count($container->getExtensionConfig($extension))) {
-                $container->loadFromExtension($extension, array());
-            }
-        }
-
-        parent::process($container);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/DependencyInjection/RegisterListenersPass.php b/core/vendor/symfony/http-kernel/DependencyInjection/RegisterListenersPass.php
deleted file mode 100644
index f1c2247..0000000
--- a/core/vendor/symfony/http-kernel/DependencyInjection/RegisterListenersPass.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\DependencyInjection;
-
-@trigger_error('The '.__NAMESPACE__.'\RegisterListenersPass is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass as BaseRegisterListenersPass;
-
-/**
- * Compiler pass to register tagged services for an event dispatcher.
- *
- * @deprecated since version 2.5, to be removed in 3.0. Use the Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass class instead.
- */
-class RegisterListenersPass extends BaseRegisterListenersPass
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Event/FilterControllerEvent.php b/core/vendor/symfony/http-kernel/Event/FilterControllerEvent.php
deleted file mode 100644
index e33a011..0000000
--- a/core/vendor/symfony/http-kernel/Event/FilterControllerEvent.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Allows filtering of a controller callable.
- *
- * You can call getController() to retrieve the current controller. With
- * setController() you can set a new controller that is used in the processing
- * of the request.
- *
- * Controllers should be callables.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class FilterControllerEvent extends KernelEvent
-{
-    /**
-     * The current controller.
-     *
-     * @var callable
-     */
-    private $controller;
-
-    public function __construct(HttpKernelInterface $kernel, $controller, Request $request, $requestType)
-    {
-        parent::__construct($kernel, $request, $requestType);
-
-        $this->setController($controller);
-    }
-
-    /**
-     * Returns the current controller.
-     *
-     * @return callable
-     *
-     * @api
-     */
-    public function getController()
-    {
-        return $this->controller;
-    }
-
-    /**
-     * Sets a new controller.
-     *
-     * @param callable $controller
-     *
-     * @throws \LogicException
-     *
-     * @api
-     */
-    public function setController($controller)
-    {
-        // controller must be a callable
-        if (!is_callable($controller)) {
-            throw new \LogicException(sprintf('The controller must be a callable (%s given).', $this->varToString($controller)));
-        }
-
-        $this->controller = $controller;
-    }
-
-    private function varToString($var)
-    {
-        if (is_object($var)) {
-            return sprintf('Object(%s)', get_class($var));
-        }
-
-        if (is_array($var)) {
-            $a = array();
-            foreach ($var as $k => $v) {
-                $a[] = sprintf('%s => %s', $k, $this->varToString($v));
-            }
-
-            return sprintf('Array(%s)', implode(', ', $a));
-        }
-
-        if (is_resource($var)) {
-            return sprintf('Resource(%s)', get_resource_type($var));
-        }
-
-        if (null === $var) {
-            return 'null';
-        }
-
-        if (false === $var) {
-            return 'false';
-        }
-
-        if (true === $var) {
-            return 'true';
-        }
-
-        return (string) $var;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Event/FilterResponseEvent.php b/core/vendor/symfony/http-kernel/Event/FilterResponseEvent.php
deleted file mode 100644
index fd88f87..0000000
--- a/core/vendor/symfony/http-kernel/Event/FilterResponseEvent.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Allows to filter a Response object.
- *
- * You can call getResponse() to retrieve the current response. With
- * setResponse() you can set a new response that will be returned to the
- * browser.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class FilterResponseEvent extends KernelEvent
-{
-    /**
-     * The current response object.
-     *
-     * @var Response
-     */
-    private $response;
-
-    public function __construct(HttpKernelInterface $kernel, Request $request, $requestType, Response $response)
-    {
-        parent::__construct($kernel, $request, $requestType);
-
-        $this->setResponse($response);
-    }
-
-    /**
-     * Returns the current response object.
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function getResponse()
-    {
-        return $this->response;
-    }
-
-    /**
-     * Sets a new response object.
-     *
-     * @param Response $response
-     *
-     * @api
-     */
-    public function setResponse(Response $response)
-    {
-        $this->response = $response;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Event/FinishRequestEvent.php b/core/vendor/symfony/http-kernel/Event/FinishRequestEvent.php
deleted file mode 100644
index ee72484..0000000
--- a/core/vendor/symfony/http-kernel/Event/FinishRequestEvent.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-/**
- * Triggered whenever a request is fully processed.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class FinishRequestEvent extends KernelEvent
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Event/GetResponseEvent.php b/core/vendor/symfony/http-kernel/Event/GetResponseEvent.php
deleted file mode 100644
index b9310fa..0000000
--- a/core/vendor/symfony/http-kernel/Event/GetResponseEvent.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Allows to create a response for a request.
- *
- * Call setResponse() to set the response that will be returned for the
- * current request. The propagation of this event is stopped as soon as a
- * response is set.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class GetResponseEvent extends KernelEvent
-{
-    /**
-     * The response object.
-     *
-     * @var Response
-     */
-    private $response;
-
-    /**
-     * Returns the response object.
-     *
-     * @return Response
-     *
-     * @api
-     */
-    public function getResponse()
-    {
-        return $this->response;
-    }
-
-    /**
-     * Sets a response and stops event propagation.
-     *
-     * @param Response $response
-     *
-     * @api
-     */
-    public function setResponse(Response $response)
-    {
-        $this->response = $response;
-
-        $this->stopPropagation();
-    }
-
-    /**
-     * Returns whether a response was set.
-     *
-     * @return bool Whether a response was set
-     *
-     * @api
-     */
-    public function hasResponse()
-    {
-        return null !== $this->response;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php b/core/vendor/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php
deleted file mode 100644
index afb1c45..0000000
--- a/core/vendor/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Allows to create a response for the return value of a controller.
- *
- * Call setResponse() to set the response that will be returned for the
- * current request. The propagation of this event is stopped as soon as a
- * response is set.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class GetResponseForControllerResultEvent extends GetResponseEvent
-{
-    /**
-     * The return value of the controller.
-     *
-     * @var mixed
-     */
-    private $controllerResult;
-
-    public function __construct(HttpKernelInterface $kernel, Request $request, $requestType, $controllerResult)
-    {
-        parent::__construct($kernel, $request, $requestType);
-
-        $this->controllerResult = $controllerResult;
-    }
-
-    /**
-     * Returns the return value of the controller.
-     *
-     * @return mixed The controller return value
-     *
-     * @api
-     */
-    public function getControllerResult()
-    {
-        return $this->controllerResult;
-    }
-
-    /**
-     * Assigns the return value of the controller.
-     *
-     * @param mixed $controllerResult The controller return value
-     *
-     * @api
-     */
-    public function setControllerResult($controllerResult)
-    {
-        $this->controllerResult = $controllerResult;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Event/GetResponseForExceptionEvent.php b/core/vendor/symfony/http-kernel/Event/GetResponseForExceptionEvent.php
deleted file mode 100644
index 3b5957e..0000000
--- a/core/vendor/symfony/http-kernel/Event/GetResponseForExceptionEvent.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Allows to create a response for a thrown exception.
- *
- * Call setResponse() to set the response that will be returned for the
- * current request. The propagation of this event is stopped as soon as a
- * response is set.
- *
- * You can also call setException() to replace the thrown exception. This
- * exception will be thrown if no response is set during processing of this
- * event.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class GetResponseForExceptionEvent extends GetResponseEvent
-{
-    /**
-     * The exception object.
-     *
-     * @var \Exception
-     */
-    private $exception;
-
-    public function __construct(HttpKernelInterface $kernel, Request $request, $requestType, \Exception $e)
-    {
-        parent::__construct($kernel, $request, $requestType);
-
-        $this->setException($e);
-    }
-
-    /**
-     * Returns the thrown exception.
-     *
-     * @return \Exception The thrown exception
-     *
-     * @api
-     */
-    public function getException()
-    {
-        return $this->exception;
-    }
-
-    /**
-     * Replaces the thrown exception.
-     *
-     * This exception will be thrown if no response is set in the event.
-     *
-     * @param \Exception $exception The thrown exception
-     *
-     * @api
-     */
-    public function setException(\Exception $exception)
-    {
-        $this->exception = $exception;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Event/KernelEvent.php b/core/vendor/symfony/http-kernel/Event/KernelEvent.php
deleted file mode 100644
index 1d97ead..0000000
--- a/core/vendor/symfony/http-kernel/Event/KernelEvent.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\EventDispatcher\Event;
-
-/**
- * Base class for events thrown in the HttpKernel component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class KernelEvent extends Event
-{
-    /**
-     * The kernel in which this event was thrown.
-     *
-     * @var HttpKernelInterface
-     */
-    private $kernel;
-
-    /**
-     * The request the kernel is currently processing.
-     *
-     * @var Request
-     */
-    private $request;
-
-    /**
-     * The request type the kernel is currently processing.  One of
-     * HttpKernelInterface::MASTER_REQUEST and HttpKernelInterface::SUB_REQUEST.
-     *
-     * @var int
-     */
-    private $requestType;
-
-    public function __construct(HttpKernelInterface $kernel, Request $request, $requestType)
-    {
-        $this->kernel = $kernel;
-        $this->request = $request;
-        $this->requestType = $requestType;
-    }
-
-    /**
-     * Returns the kernel in which this event was thrown.
-     *
-     * @return HttpKernelInterface
-     *
-     * @api
-     */
-    public function getKernel()
-    {
-        return $this->kernel;
-    }
-
-    /**
-     * Returns the request the kernel is currently processing.
-     *
-     * @return Request
-     *
-     * @api
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    /**
-     * Returns the request type the kernel is currently processing.
-     *
-     * @return int One of HttpKernelInterface::MASTER_REQUEST and
-     *             HttpKernelInterface::SUB_REQUEST
-     *
-     * @api
-     */
-    public function getRequestType()
-    {
-        return $this->requestType;
-    }
-
-    /**
-     * Checks if this is a master request.
-     *
-     * @return bool True if the request is a master request
-     *
-     * @api
-     */
-    public function isMasterRequest()
-    {
-        return HttpKernelInterface::MASTER_REQUEST === $this->requestType;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Event/PostResponseEvent.php b/core/vendor/symfony/http-kernel/Event/PostResponseEvent.php
deleted file mode 100644
index 5d4450b..0000000
--- a/core/vendor/symfony/http-kernel/Event/PostResponseEvent.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Event;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Allows to execute logic after a response was sent.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class PostResponseEvent extends Event
-{
-    /**
-     * The kernel in which this event was thrown.
-     *
-     * @var HttpKernelInterface
-     */
-    private $kernel;
-
-    private $request;
-
-    private $response;
-
-    public function __construct(HttpKernelInterface $kernel, Request $request, Response $response)
-    {
-        $this->kernel = $kernel;
-        $this->request = $request;
-        $this->response = $response;
-    }
-
-    /**
-     * Returns the kernel in which this event was thrown.
-     *
-     * @return HttpKernelInterface
-     */
-    public function getKernel()
-    {
-        return $this->kernel;
-    }
-
-    /**
-     * Returns the request for which this event was thrown.
-     *
-     * @return Request
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    /**
-     * Returns the response for which this event was thrown.
-     *
-     * @return Response
-     */
-    public function getResponse()
-    {
-        return $this->response;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php b/core/vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php
deleted file mode 100644
index c37a537..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-
-/**
- * Adds configured formats to each request
- *
- * @author Gildas Quemener <gildas.quemener@gmail.com>
- */
-class AddRequestFormatsListener implements EventSubscriberInterface
-{
-    /**
-     * @var array
-     */
-    protected $formats;
-
-    /**
-     * @param array $formats
-     */
-    public function __construct(array $formats)
-    {
-        $this->formats = $formats;
-    }
-
-    /**
-     * Adds request formats
-     *
-     * @param GetResponseEvent $event
-     */
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        foreach ($this->formats as $format => $mimeTypes) {
-            $event->getRequest()->setFormat($format, $mimeTypes);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public static function getSubscribedEvents()
-    {
-        return array(KernelEvents::REQUEST => 'onKernelRequest');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php b/core/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php
deleted file mode 100644
index f50e4d6..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Psr\Log\LoggerInterface;
-use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\Debug\ExceptionHandler;
-use Symfony\Component\EventDispatcher\Event;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpKernel\Event\KernelEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\Console\ConsoleEvents;
-use Symfony\Component\Console\Event\ConsoleEvent;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
-
-/**
- * Configures errors and exceptions handlers.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class DebugHandlersListener implements EventSubscriberInterface
-{
-    private $exceptionHandler;
-    private $logger;
-    private $levels;
-    private $throwAt;
-    private $scream;
-    private $fileLinkFormat;
-    private $firstCall = true;
-
-    /**
-     * @param callable|null        $exceptionHandler A handler that will be called on Exception
-     * @param LoggerInterface|null $logger           A PSR-3 logger
-     * @param array|int            $levels           An array map of E_* to LogLevel::* or an integer bit field of E_* constants
-     * @param int|null             $throwAt          Thrown errors in a bit field of E_* constants, or null to keep the current value
-     * @param bool                 $scream           Enables/disables screaming mode, where even silenced errors are logged
-     * @param string               $fileLinkFormat   The format for links to source files
-     */
-    public function __construct($exceptionHandler, LoggerInterface $logger = null, $levels = null, $throwAt = -1, $scream = true, $fileLinkFormat = null)
-    {
-        $this->exceptionHandler = $exceptionHandler;
-        $this->logger = $logger;
-        $this->levels = $levels;
-        $this->throwAt = is_numeric($throwAt) ? (int) $throwAt : (null === $throwAt ? null : ($throwAt ? -1 : null));
-        $this->scream = (bool) $scream;
-        $this->fileLinkFormat = $fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
-    }
-
-    /**
-     * Configures the error handler.
-     *
-     * @param Event|null $event The triggering event
-     */
-    public function configure(Event $event = null)
-    {
-        if (!$this->firstCall) {
-            return;
-        }
-        $this->firstCall = false;
-        if ($this->logger || null !== $this->throwAt) {
-            $handler = set_error_handler('var_dump', 0);
-            $handler = is_array($handler) ? $handler[0] : null;
-            restore_error_handler();
-            if ($handler instanceof ErrorHandler) {
-                if ($this->logger) {
-                    $handler->setDefaultLogger($this->logger, $this->levels);
-                    if (is_array($this->levels)) {
-                        $scream = 0;
-                        foreach ($this->levels as $type => $log) {
-                            $scream |= $type;
-                        }
-                    } else {
-                        $scream = null === $this->levels ? E_ALL | E_STRICT : $this->levels;
-                    }
-                    if ($this->scream) {
-                        $handler->screamAt($scream);
-                    }
-                    $this->logger = $this->levels = null;
-                }
-                if (null !== $this->throwAt) {
-                    $handler->throwAt($this->throwAt, true);
-                }
-            }
-        }
-        if (!$this->exceptionHandler) {
-            if ($event instanceof KernelEvent) {
-                $this->exceptionHandler = array($event->getKernel(), 'terminateWithException');
-            } elseif ($event instanceof ConsoleEvent && $app = $event->getCommand()->getApplication()) {
-                $output = $event->getOutput();
-                if ($output instanceof ConsoleOutputInterface) {
-                    $output = $output->getErrorOutput();
-                }
-                $this->exceptionHandler = function ($e) use ($app, $output) {
-                    $app->renderException($e, $output);
-                };
-            }
-        }
-        if ($this->exceptionHandler) {
-            $handler = set_exception_handler('var_dump');
-            $handler = is_array($handler) ? $handler[0] : null;
-            restore_exception_handler();
-            if ($handler instanceof ErrorHandler) {
-                $h = $handler->setExceptionHandler('var_dump') ?: $this->exceptionHandler;
-                $handler->setExceptionHandler($h);
-                $handler = is_array($h) ? $h[0] : null;
-            }
-            if ($handler instanceof ExceptionHandler) {
-                $handler->setHandler($this->exceptionHandler);
-                if (null !== $this->fileLinkFormat) {
-                    $handler->setFileLinkFormat($this->fileLinkFormat);
-                }
-            }
-            $this->exceptionHandler = null;
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        $events = array(KernelEvents::REQUEST => array('configure', 2048));
-
-        if (defined('Symfony\Component\Console\ConsoleEvents::COMMAND')) {
-            $events[ConsoleEvents::COMMAND] = array('configure', 2048);
-        }
-
-        return $events;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/DumpListener.php b/core/vendor/symfony/http-kernel/EventListener/DumpListener.php
deleted file mode 100644
index bccde8e..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/DumpListener.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\VarDumper\Cloner\ClonerInterface;
-use Symfony\Component\VarDumper\Dumper\DataDumperInterface;
-use Symfony\Component\VarDumper\VarDumper;
-
-/**
- * Configures dump() handler.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class DumpListener implements EventSubscriberInterface
-{
-    private $cloner;
-    private $dumper;
-
-    /**
-     * @param ClonerInterface     $cloner Cloner service.
-     * @param DataDumperInterface $dumper Dumper service.
-     */
-    public function __construct(ClonerInterface $cloner, DataDumperInterface $dumper)
-    {
-        $this->cloner = $cloner;
-        $this->dumper = $dumper;
-    }
-
-    public function configure()
-    {
-        $cloner = $this->cloner;
-        $dumper = $this->dumper;
-
-        VarDumper::setHandler(function ($var) use ($cloner, $dumper) {
-            $dumper->dump($cloner->cloneVar($var));
-        });
-    }
-
-    public static function getSubscribedEvents()
-    {
-        // Register early to have a working dump() as early as possible
-        return array(KernelEvents::REQUEST => array('configure', 1024));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/ErrorsLoggerListener.php b/core/vendor/symfony/http-kernel/EventListener/ErrorsLoggerListener.php
deleted file mode 100644
index 80c3fe5..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/ErrorsLoggerListener.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-@trigger_error('The '.__NAMESPACE__.'\ErrorsLoggerListener class is deprecated since version 2.6 and will be removed in 3.0. Use the Symfony\Component\HttpKernel\EventListener\DebugHandlersListener class instead.', E_USER_DEPRECATED);
-
-use Psr\Log\LoggerInterface;
-use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpKernel\KernelEvents;
-
-/**
- * Injects the logger into the ErrorHandler, so that it can log various errors.
- *
- * @author Colin Frei <colin@colinfrei.com>
- * @author Konstantin Myakshin <koc-dp@yandex.ru>
- *
- * @deprecated since version 2.6, to be removed in 3.0. Use the DebugHandlersListener class instead.
- */
-class ErrorsLoggerListener implements EventSubscriberInterface
-{
-    private $channel;
-    private $logger;
-
-    public function __construct($channel, LoggerInterface $logger = null)
-    {
-        $this->channel = $channel;
-        $this->logger = $logger;
-    }
-
-    public function injectLogger()
-    {
-        if (null !== $this->logger) {
-            ErrorHandler::setLogger($this->logger, $this->channel);
-            $this->logger = null;
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(KernelEvents::REQUEST => array('injectLogger', 2048));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/EsiListener.php b/core/vendor/symfony/http-kernel/EventListener/EsiListener.php
deleted file mode 100644
index bceb672..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/EsiListener.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-@trigger_error('The '.__NAMESPACE__.'\EsiListener class is deprecated since version 2.6 and will be removed in 3.0. Use the Symfony\Component\HttpKernel\EventListener\SurrogateListener class instead.', E_USER_DEPRECATED);
-
-/**
- * EsiListener adds a Surrogate-Control HTTP header when the Response needs to be parsed for ESI.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.6, to be removed in 3.0. Use SurrogateListener instead
- */
-class EsiListener extends SurrogateListener
-{
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/ExceptionListener.php b/core/vendor/symfony/http-kernel/EventListener/ExceptionListener.php
deleted file mode 100644
index fc2efed..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/ExceptionListener.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Psr\Log\LoggerInterface;
-use Symfony\Component\Debug\Exception\FlattenException;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * ExceptionListener.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ExceptionListener implements EventSubscriberInterface
-{
-    protected $controller;
-    protected $logger;
-
-    public function __construct($controller, LoggerInterface $logger = null)
-    {
-        $this->controller = $controller;
-        $this->logger = $logger;
-    }
-
-    public function onKernelException(GetResponseForExceptionEvent $event)
-    {
-        $exception = $event->getException();
-        $request = $event->getRequest();
-
-        $this->logException($exception, sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine()));
-
-        $request = $this->duplicateRequest($exception, $request);
-
-        try {
-            $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false);
-        } catch (\Exception $e) {
-            $this->logException($e, sprintf('Exception thrown when handling an exception (%s: %s at %s line %s)', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), false);
-
-            $wrapper = $e;
-
-            while ($prev = $wrapper->getPrevious()) {
-                if ($exception === $wrapper = $prev) {
-                    throw $e;
-                }
-            }
-
-            $prev = new \ReflectionProperty('Exception', 'previous');
-            $prev->setAccessible(true);
-            $prev->setValue($wrapper, $exception);
-
-            throw $e;
-        }
-
-        $event->setResponse($response);
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::EXCEPTION => array('onKernelException', -128),
-        );
-    }
-
-    /**
-     * Logs an exception.
-     *
-     * @param \Exception $exception The \Exception instance
-     * @param string     $message   The error message to log
-     */
-    protected function logException(\Exception $exception, $message)
-    {
-        if (null !== $this->logger) {
-            if (!$exception instanceof HttpExceptionInterface || $exception->getStatusCode() >= 500) {
-                $this->logger->critical($message, array('exception' => $exception));
-            } else {
-                $this->logger->error($message, array('exception' => $exception));
-            }
-        }
-    }
-
-    /**
-     * Clones the request for the exception.
-     *
-     * @param \Exception $exception The thrown exception.
-     * @param Request    $request   The original request.
-     *
-     * @return Request $request The cloned request.
-     */
-    protected function duplicateRequest(\Exception $exception, Request $request)
-    {
-        $attributes = array(
-            '_controller' => $this->controller,
-            'exception' => FlattenException::create($exception),
-            'logger' => $this->logger instanceof DebugLoggerInterface ? $this->logger : null,
-            // keep for BC -- as $format can be an argument of the controller callable
-            // see src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php
-            // @deprecated since version 2.4, to be removed in 3.0
-            'format' => $request->getRequestFormat(),
-        );
-        $request = $request->duplicate(null, null, $attributes);
-        $request->setMethod('GET');
-
-        return $request;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/FragmentListener.php b/core/vendor/symfony/http-kernel/EventListener/FragmentListener.php
deleted file mode 100644
index 302faa1..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/FragmentListener.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
-use Symfony\Component\HttpKernel\UriSigner;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Handles content fragments represented by special URIs.
- *
- * All URL paths starting with /_fragment are handled as
- * content fragments by this listener.
- *
- * If throws an AccessDeniedHttpException exception if the request
- * is not signed or if it is not an internal sub-request.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class FragmentListener implements EventSubscriberInterface
-{
-    private $signer;
-    private $fragmentPath;
-
-    /**
-     * Constructor.
-     *
-     * @param UriSigner $signer       A UriSigner instance
-     * @param string    $fragmentPath The path that triggers this listener
-     */
-    public function __construct(UriSigner $signer, $fragmentPath = '/_fragment')
-    {
-        $this->signer = $signer;
-        $this->fragmentPath = $fragmentPath;
-    }
-
-    /**
-     * Fixes request attributes when the path is '/_fragment'.
-     *
-     * @param GetResponseEvent $event A GetResponseEvent instance
-     *
-     * @throws AccessDeniedHttpException if the request does not come from a trusted IP.
-     */
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        $request = $event->getRequest();
-
-        if ($request->attributes->has('_controller') || $this->fragmentPath !== rawurldecode($request->getPathInfo())) {
-            return;
-        }
-
-        if ($event->isMasterRequest()) {
-            $this->validateRequest($request);
-        }
-
-        parse_str($request->query->get('_path', ''), $attributes);
-        $request->attributes->add($attributes);
-        $request->attributes->set('_route_params', array_replace($request->attributes->get('_route_params', array()), $attributes));
-        $request->query->remove('_path');
-    }
-
-    protected function validateRequest(Request $request)
-    {
-        // is the Request safe?
-        if (!$request->isMethodSafe()) {
-            throw new AccessDeniedHttpException();
-        }
-
-        // is the Request signed?
-        // we cannot use $request->getUri() here as we want to work with the original URI (no query string reordering)
-        if ($this->signer->check($request->getSchemeAndHttpHost().$request->getBaseUrl().$request->getPathInfo().(null !== ($qs = $request->server->get('QUERY_STRING')) ? '?'.$qs : ''))) {
-            return;
-        }
-
-        throw new AccessDeniedHttpException();
-    }
-
-    /**
-     * @deprecated since version 2.3.19, to be removed in 3.0.
-     *
-     * @return string[]
-     */
-    protected function getLocalIpAddresses()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3.19 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        return array('127.0.0.1', 'fe80::1', '::1');
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::REQUEST => array(array('onKernelRequest', 48)),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/LocaleListener.php b/core/vendor/symfony/http-kernel/EventListener/LocaleListener.php
deleted file mode 100644
index 564f6dc..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/LocaleListener.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\RequestContextAwareInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Initializes the locale based on the current request.
- *
- * This listener works in 2 modes:
- *
- *  * 2.3 compatibility mode where you must call setRequest whenever the Request changes.
- *  * 2.4+ mode where you must pass a RequestStack instance in the constructor.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class LocaleListener implements EventSubscriberInterface
-{
-    private $router;
-    private $defaultLocale;
-    private $requestStack;
-
-    /**
-     * RequestStack will become required in 3.0.
-     */
-    public function __construct($defaultLocale = 'en', RequestContextAwareInterface $router = null, RequestStack $requestStack = null)
-    {
-        $this->defaultLocale = $defaultLocale;
-        $this->requestStack = $requestStack;
-        $this->router = $router;
-    }
-
-    /**
-     * Sets the current Request.
-     *
-     * This method was used to synchronize the Request, but as the HttpKernel
-     * is doing that automatically now, you should never call it directly.
-     * It is kept public for BC with the 2.3 version.
-     *
-     * @param Request|null $request A Request instance
-     *
-     * @deprecated since version 2.4, to be removed in 3.0.
-     */
-    public function setRequest(Request $request = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if (null === $request) {
-            return;
-        }
-
-        $this->setLocale($request);
-        $this->setRouterContext($request);
-    }
-
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        $request = $event->getRequest();
-        $request->setDefaultLocale($this->defaultLocale);
-
-        $this->setLocale($request);
-        $this->setRouterContext($request);
-    }
-
-    public function onKernelFinishRequest(FinishRequestEvent $event)
-    {
-        if (null === $this->requestStack) {
-            return; // removed when requestStack is required
-        }
-
-        if (null !== $parentRequest = $this->requestStack->getParentRequest()) {
-            $this->setRouterContext($parentRequest);
-        }
-    }
-
-    private function setLocale(Request $request)
-    {
-        if ($locale = $request->attributes->get('_locale')) {
-            $request->setLocale($locale);
-        }
-    }
-
-    private function setRouterContext(Request $request)
-    {
-        if (null !== $this->router) {
-            $this->router->getContext()->setParameter('_locale', $request->getLocale());
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            // must be registered after the Router to have access to the _locale
-            KernelEvents::REQUEST => array(array('onKernelRequest', 16)),
-            KernelEvents::FINISH_REQUEST => array(array('onKernelFinishRequest', 0)),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/ProfilerListener.php b/core/vendor/symfony/http-kernel/EventListener/ProfilerListener.php
deleted file mode 100644
index 06a5bbf..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/ProfilerListener.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\Event\PostResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Profiler\Profiler;
-use Symfony\Component\HttpFoundation\RequestMatcherInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * ProfilerListener collects data for the current request by listening to the kernel events.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ProfilerListener implements EventSubscriberInterface
-{
-    protected $profiler;
-    protected $matcher;
-    protected $onlyException;
-    protected $onlyMasterRequests;
-    protected $exception;
-    protected $requests = array();
-    protected $profiles;
-    protected $requestStack;
-    protected $parents;
-
-    /**
-     * Constructor.
-     *
-     * @param Profiler                     $profiler           A Profiler instance
-     * @param RequestMatcherInterface|null $matcher            A RequestMatcher instance
-     * @param bool                         $onlyException      true if the profiler only collects data when an exception occurs, false otherwise
-     * @param bool                         $onlyMasterRequests true if the profiler only collects data when the request is a master request, false otherwise
-     * @param RequestStack|null            $requestStack       A RequestStack instance
-     */
-    public function __construct(Profiler $profiler, RequestMatcherInterface $matcher = null, $onlyException = false, $onlyMasterRequests = false, RequestStack $requestStack = null)
-    {
-        if (null === $requestStack) {
-            // Prevent the deprecation notice to be triggered all the time.
-            // The onKernelRequest() method fires some logic only when the
-            // RequestStack instance is not provided as a dependency.
-            @trigger_error('Since version 2.4, the '.__METHOD__.' method must accept a RequestStack instance to get the request instead of using the '.__CLASS__.'::onKernelRequest method that will be removed in 3.0.', E_USER_DEPRECATED);
-        }
-
-        $this->profiler = $profiler;
-        $this->matcher = $matcher;
-        $this->onlyException = (bool) $onlyException;
-        $this->onlyMasterRequests = (bool) $onlyMasterRequests;
-        $this->profiles = new \SplObjectStorage();
-        $this->parents = new \SplObjectStorage();
-        $this->requestStack = $requestStack;
-    }
-
-    /**
-     * Handles the onKernelException event.
-     *
-     * @param GetResponseForExceptionEvent $event A GetResponseForExceptionEvent instance
-     */
-    public function onKernelException(GetResponseForExceptionEvent $event)
-    {
-        if ($this->onlyMasterRequests && !$event->isMasterRequest()) {
-            return;
-        }
-
-        $this->exception = $event->getException();
-    }
-
-    /**
-     * @deprecated since version 2.4, to be removed in 3.0.
-     */
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        if (null === $this->requestStack) {
-            $this->requests[] = $event->getRequest();
-        }
-    }
-
-    /**
-     * Handles the onKernelResponse event.
-     *
-     * @param FilterResponseEvent $event A FilterResponseEvent instance
-     */
-    public function onKernelResponse(FilterResponseEvent $event)
-    {
-        $master = $event->isMasterRequest();
-        if ($this->onlyMasterRequests && !$master) {
-            return;
-        }
-
-        if ($this->onlyException && null === $this->exception) {
-            return;
-        }
-
-        $request = $event->getRequest();
-        $exception = $this->exception;
-        $this->exception = null;
-
-        if (null !== $this->matcher && !$this->matcher->matches($request)) {
-            return;
-        }
-
-        if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) {
-            return;
-        }
-
-        $this->profiles[$request] = $profile;
-
-        if (null !== $this->requestStack) {
-            $this->parents[$request] = $this->requestStack->getParentRequest();
-        } elseif (!$master) {
-            // to be removed when requestStack is required
-            array_pop($this->requests);
-
-            $this->parents[$request] = end($this->requests);
-        }
-    }
-
-    public function onKernelTerminate(PostResponseEvent $event)
-    {
-        // attach children to parents
-        foreach ($this->profiles as $request) {
-            // isset call should be removed when requestStack is required
-            if (isset($this->parents[$request]) && null !== $parentRequest = $this->parents[$request]) {
-                if (isset($this->profiles[$parentRequest])) {
-                    $this->profiles[$parentRequest]->addChild($this->profiles[$request]);
-                }
-            }
-        }
-
-        // save profiles
-        foreach ($this->profiles as $request) {
-            $this->profiler->saveProfile($this->profiles[$request]);
-        }
-
-        $this->profiles = new \SplObjectStorage();
-        $this->parents = new \SplObjectStorage();
-        $this->requests = array();
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            // kernel.request must be registered as early as possible to not break
-            // when an exception is thrown in any other kernel.request listener
-            KernelEvents::REQUEST => array('onKernelRequest', 1024),
-            KernelEvents::RESPONSE => array('onKernelResponse', -100),
-            KernelEvents::EXCEPTION => 'onKernelException',
-            KernelEvents::TERMINATE => array('onKernelTerminate', -1024),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/ResponseListener.php b/core/vendor/symfony/http-kernel/EventListener/ResponseListener.php
deleted file mode 100644
index eeb2b0f..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/ResponseListener.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * ResponseListener fixes the Response headers based on the Request.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ResponseListener implements EventSubscriberInterface
-{
-    private $charset;
-
-    public function __construct($charset)
-    {
-        $this->charset = $charset;
-    }
-
-    /**
-     * Filters the Response.
-     *
-     * @param FilterResponseEvent $event A FilterResponseEvent instance
-     */
-    public function onKernelResponse(FilterResponseEvent $event)
-    {
-        if (!$event->isMasterRequest()) {
-            return;
-        }
-
-        $response = $event->getResponse();
-
-        if (null === $response->getCharset()) {
-            $response->setCharset($this->charset);
-        }
-
-        $response->prepare($event->getRequest());
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::RESPONSE => 'onKernelResponse',
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/RouterListener.php b/core/vendor/symfony/http-kernel/EventListener/RouterListener.php
deleted file mode 100644
index 297aab6..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/RouterListener.php
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Psr\Log\LoggerInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\RequestContextAwareInterface;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Initializes the context from the request and sets request attributes based on a matching route.
- *
- * This listener works in 2 modes:
- *
- *  * 2.3 compatibility mode where you must call setRequest whenever the Request changes.
- *  * 2.4+ mode where you must pass a RequestStack instance in the constructor.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class RouterListener implements EventSubscriberInterface
-{
-    private $matcher;
-    private $context;
-    private $logger;
-    private $request;
-    private $requestStack;
-
-    /**
-     * Constructor.
-     *
-     * RequestStack will become required in 3.0.
-     *
-     * @param UrlMatcherInterface|RequestMatcherInterface $matcher      The Url or Request matcher
-     * @param RequestContext|null                         $context      The RequestContext (can be null when $matcher implements RequestContextAwareInterface)
-     * @param LoggerInterface|null                        $logger       The logger
-     * @param RequestStack|null                           $requestStack A RequestStack instance
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function __construct($matcher, RequestContext $context = null, LoggerInterface $logger = null, RequestStack $requestStack = null)
-    {
-        if (!$matcher instanceof UrlMatcherInterface && !$matcher instanceof RequestMatcherInterface) {
-            throw new \InvalidArgumentException('Matcher must either implement UrlMatcherInterface or RequestMatcherInterface.');
-        }
-
-        if (null === $context && !$matcher instanceof RequestContextAwareInterface) {
-            throw new \InvalidArgumentException('You must either pass a RequestContext or the matcher must implement RequestContextAwareInterface.');
-        }
-
-        if (!$requestStack instanceof RequestStack) {
-            @trigger_error('The '.__METHOD__.' method now requires a RequestStack instance as '.__CLASS__.'::setRequest method will not be supported anymore in 3.0.', E_USER_DEPRECATED);
-        }
-
-        $this->matcher = $matcher;
-        $this->context = $context ?: $matcher->getContext();
-        $this->requestStack = $requestStack;
-        $this->logger = $logger;
-    }
-
-    /**
-     * Sets the current Request.
-     *
-     * This method was used to synchronize the Request, but as the HttpKernel
-     * is doing that automatically now, you should never call it directly.
-     * It is kept public for BC with the 2.3 version.
-     *
-     * @param Request|null $request A Request instance
-     *
-     * @deprecated since version 2.4, to be removed in 3.0.
-     */
-    public function setRequest(Request $request = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be made private in 3.0.', E_USER_DEPRECATED);
-
-        $this->setCurrentRequest($request);
-    }
-
-    private function setCurrentRequest(Request $request = null)
-    {
-        if (null !== $request && $this->request !== $request) {
-            $this->context->fromRequest($request);
-        }
-
-        $this->request = $request;
-    }
-
-    public function onKernelFinishRequest(FinishRequestEvent $event)
-    {
-        if (null === $this->requestStack) {
-            return; // removed when requestStack is required
-        }
-
-        $this->setCurrentRequest($this->requestStack->getParentRequest());
-    }
-
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        $request = $event->getRequest();
-
-        // initialize the context that is also used by the generator (assuming matcher and generator share the same context instance)
-        // we call setCurrentRequest even if most of the time, it has already been done to keep compatibility
-        // with frameworks which do not use the Symfony service container
-        // when we have a RequestStack, no need to do it
-        if (null !== $this->requestStack) {
-            $this->setCurrentRequest($request);
-        }
-
-        if ($request->attributes->has('_controller')) {
-            // routing is already done
-            return;
-        }
-
-        // add attributes based on the request (routing)
-        try {
-            // matching a request is more powerful than matching a URL path + context, so try that first
-            if ($this->matcher instanceof RequestMatcherInterface) {
-                $parameters = $this->matcher->matchRequest($request);
-            } else {
-                $parameters = $this->matcher->match($request->getPathInfo());
-            }
-
-            if (null !== $this->logger) {
-                $this->logger->info(sprintf('Matched route "%s".', isset($parameters['_route']) ? $parameters['_route'] : 'n/a'), array(
-                    'route_parameters' => $parameters,
-                    'request_uri' => $request->getUri(),
-                ));
-            }
-
-            $request->attributes->add($parameters);
-            unset($parameters['_route'], $parameters['_controller']);
-            $request->attributes->set('_route_params', $parameters);
-        } catch (ResourceNotFoundException $e) {
-            $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo());
-
-            if ($referer = $request->headers->get('referer')) {
-                $message .= sprintf(' (from "%s")', $referer);
-            }
-
-            throw new NotFoundHttpException($message, $e);
-        } catch (MethodNotAllowedException $e) {
-            $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), implode(', ', $e->getAllowedMethods()));
-
-            throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::REQUEST => array(array('onKernelRequest', 32)),
-            KernelEvents::FINISH_REQUEST => array(array('onKernelFinishRequest', 0)),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/SaveSessionListener.php b/core/vendor/symfony/http-kernel/EventListener/SaveSessionListener.php
deleted file mode 100644
index 36809b5..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/SaveSessionListener.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-
-/**
- * Saves the session, in case it is still open, before sending the response/headers.
- *
- * This ensures several things in case the developer did not save the session explicitly:
- *
- *  * If a session save handler without locking is used, it ensures the data is available
- *    on the next request, e.g. after a redirect. PHPs auto-save at script end via
- *    session_register_shutdown is executed after fastcgi_finish_request. So in this case
- *    the data could be missing the next request because it might not be saved the moment
- *    the new request is processed.
- *  * A locking save handler (e.g. the native 'files') circumvents concurrency problems like
- *    the one above. But by saving the session before long-running things in the terminate event,
- *    we ensure the session is not blocked longer than needed.
- *  * When regenerating the session ID no locking is involved in PHPs session design. See
- *    https://bugs.php.net/bug.php?id=61470 for a discussion. So in this case, the session must
- *    be saved anyway before sending the headers with the new session ID. Otherwise session
- *    data could get lost again for concurrent requests with the new ID. One result could be
- *    that you get logged out after just logging in.
- *
- * This listener should be executed as one of the last listeners, so that previous listeners
- * can still operate on the open session. This prevents the overhead of restarting it.
- * Listeners after closing the session can still work with the session as usual because
- * Symfonys session implementation starts the session on demand. So writing to it after
- * it is saved will just restart it.
- *
- * @author Tobias Schultze <http://tobion.de>
- */
-class SaveSessionListener implements EventSubscriberInterface
-{
-    public function onKernelResponse(FilterResponseEvent $event)
-    {
-        if (!$event->isMasterRequest()) {
-            return;
-        }
-
-        $session = $event->getRequest()->getSession();
-        if ($session && $session->isStarted()) {
-            $session->save();
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            // low priority but higher than StreamedResponseListener
-            KernelEvents::RESPONSE => array(array('onKernelResponse', -1000)),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/SessionListener.php b/core/vendor/symfony/http-kernel/EventListener/SessionListener.php
deleted file mode 100644
index ecf065f..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/SessionListener.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * Sets the session in the request.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-abstract class SessionListener implements EventSubscriberInterface
-{
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        if (!$event->isMasterRequest()) {
-            return;
-        }
-
-        $request = $event->getRequest();
-        $session = $this->getSession();
-        if (null === $session || $request->hasSession()) {
-            return;
-        }
-
-        $request->setSession($session);
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::REQUEST => array('onKernelRequest', 128),
-        );
-    }
-
-    /**
-     * Gets the session object.
-     *
-     * @return SessionInterface|null A SessionInterface instance or null if no session is available
-     */
-    abstract protected function getSession();
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/StreamedResponseListener.php b/core/vendor/symfony/http-kernel/EventListener/StreamedResponseListener.php
deleted file mode 100644
index 571cd74..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/StreamedResponseListener.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpFoundation\StreamedResponse;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * StreamedResponseListener is responsible for sending the Response
- * to the client.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class StreamedResponseListener implements EventSubscriberInterface
-{
-    /**
-     * Filters the Response.
-     *
-     * @param FilterResponseEvent $event A FilterResponseEvent instance
-     */
-    public function onKernelResponse(FilterResponseEvent $event)
-    {
-        if (!$event->isMasterRequest()) {
-            return;
-        }
-
-        $response = $event->getResponse();
-
-        if ($response instanceof StreamedResponse) {
-            $response->send();
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::RESPONSE => array('onKernelResponse', -1024),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/SurrogateListener.php b/core/vendor/symfony/http-kernel/EventListener/SurrogateListener.php
deleted file mode 100644
index 00f4fbf..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/SurrogateListener.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\HttpCache\SurrogateInterface;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * SurrogateListener adds a Surrogate-Control HTTP header when the Response needs to be parsed for Surrogates
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class SurrogateListener implements EventSubscriberInterface
-{
-    private $surrogate;
-
-    /**
-     * Constructor.
-     *
-     * @param SurrogateInterface $surrogate An SurrogateInterface instance
-     */
-    public function __construct(SurrogateInterface $surrogate = null)
-    {
-        $this->surrogate = $surrogate;
-    }
-
-    /**
-     * Filters the Response.
-     *
-     * @param FilterResponseEvent $event A FilterResponseEvent instance
-     */
-    public function onKernelResponse(FilterResponseEvent $event)
-    {
-        if (!$event->isMasterRequest() || null === $this->surrogate) {
-            return;
-        }
-
-        $this->surrogate->addSurrogateControl($event->getResponse());
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::RESPONSE => 'onKernelResponse',
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/TestSessionListener.php b/core/vendor/symfony/http-kernel/EventListener/TestSessionListener.php
deleted file mode 100644
index 42a0f20..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/TestSessionListener.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-
-/**
- * TestSessionListener.
- *
- * Saves session in test environment.
- *
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class TestSessionListener implements EventSubscriberInterface
-{
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        if (!$event->isMasterRequest()) {
-            return;
-        }
-
-        // bootstrap the session
-        $session = $this->getSession();
-        if (!$session) {
-            return;
-        }
-
-        $cookies = $event->getRequest()->cookies;
-
-        if ($cookies->has($session->getName())) {
-            $session->setId($cookies->get($session->getName()));
-        }
-    }
-
-    /**
-     * Checks if session was initialized and saves if current request is master
-     * Runs on 'kernel.response' in test environment
-     *
-     * @param FilterResponseEvent $event
-     */
-    public function onKernelResponse(FilterResponseEvent $event)
-    {
-        if (!$event->isMasterRequest()) {
-            return;
-        }
-
-        $session = $event->getRequest()->getSession();
-        if ($session && $session->isStarted()) {
-            $session->save();
-            $params = session_get_cookie_params();
-            $event->getResponse()->headers->setCookie(new Cookie($session->getName(), $session->getId(), 0 === $params['lifetime'] ? 0 : time() + $params['lifetime'], $params['path'], $params['domain'], $params['secure'], $params['httponly']));
-        }
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            KernelEvents::REQUEST => array('onKernelRequest', 192),
-            KernelEvents::RESPONSE => array('onKernelResponse', -128),
-        );
-    }
-
-    /**
-     * Gets the session object.
-     *
-     * @return SessionInterface|null A SessionInterface instance or null if no session is available
-     */
-    abstract protected function getSession();
-}
diff --git a/core/vendor/symfony/http-kernel/EventListener/TranslatorListener.php b/core/vendor/symfony/http-kernel/EventListener/TranslatorListener.php
deleted file mode 100644
index 6967ad0..0000000
--- a/core/vendor/symfony/http-kernel/EventListener/TranslatorListener.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\EventListener;
-
-use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\Translation\TranslatorInterface;
-
-/**
- * Synchronizes the locale between the request and the translator.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TranslatorListener implements EventSubscriberInterface
-{
-    private $translator;
-    private $requestStack;
-
-    public function __construct(TranslatorInterface $translator, RequestStack $requestStack)
-    {
-        $this->translator = $translator;
-        $this->requestStack = $requestStack;
-    }
-
-    public function onKernelRequest(GetResponseEvent $event)
-    {
-        $this->setLocale($event->getRequest());
-    }
-
-    public function onKernelFinishRequest(FinishRequestEvent $event)
-    {
-        if (null === $parentRequest = $this->requestStack->getParentRequest()) {
-            return;
-        }
-
-        $this->setLocale($parentRequest);
-    }
-
-    public static function getSubscribedEvents()
-    {
-        return array(
-            // must be registered after the Locale listener
-            KernelEvents::REQUEST => array(array('onKernelRequest', 10)),
-            KernelEvents::FINISH_REQUEST => array(array('onKernelFinishRequest', 0)),
-        );
-    }
-
-    private function setLocale(Request $request)
-    {
-        try {
-            $this->translator->setLocale($request->getLocale());
-        } catch (\InvalidArgumentException $e) {
-            $this->translator->setLocale($request->getDefaultLocale());
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php b/core/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php
deleted file mode 100644
index 79d8639..0000000
--- a/core/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * AccessDeniedHttpException.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Christophe Coevoet <stof@notk.org>
- */
-class AccessDeniedHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(403, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php b/core/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php
deleted file mode 100644
index 5f68172..0000000
--- a/core/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * BadRequestHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class BadRequestHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(400, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/ConflictHttpException.php b/core/vendor/symfony/http-kernel/Exception/ConflictHttpException.php
deleted file mode 100644
index 34d738e..0000000
--- a/core/vendor/symfony/http-kernel/Exception/ConflictHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * ConflictHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class ConflictHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(409, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/FatalErrorException.php b/core/vendor/symfony/http-kernel/Exception/FatalErrorException.php
deleted file mode 100644
index 0d2b4f9..0000000
--- a/core/vendor/symfony/http-kernel/Exception/FatalErrorException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-@trigger_error('The '.__NAMESPACE__.'\FatalErrorException class is deprecated since version 2.3 and will be removed in 3.0. Use the Symfony\Component\Debug\Exception\FatalErrorException class instead.', E_USER_DEPRECATED);
-
-/*
- * Fatal Error Exception.
- *
- * @author Konstanton Myakshin <koc-dp@yandex.ru>
- *
- * @deprecated since version 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
- */
-class_exists('Symfony\Component\Debug\Exception\FatalErrorException');
diff --git a/core/vendor/symfony/http-kernel/Exception/FlattenException.php b/core/vendor/symfony/http-kernel/Exception/FlattenException.php
deleted file mode 100644
index 599aa95..0000000
--- a/core/vendor/symfony/http-kernel/Exception/FlattenException.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-@trigger_error('The '.__NAMESPACE__.'\FlattenException class is deprecated since version 2.3 and will be removed in 3.0. Use the Symfony\Component\Debug\Exception\FlattenException class instead.', E_USER_DEPRECATED);
-
-/*
- * FlattenException wraps a PHP Exception to be able to serialize it.
- *
- * Basically, this class removes all objects from the trace.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
- */
-class_exists('Symfony\Component\Debug\Exception\FlattenException');
diff --git a/core/vendor/symfony/http-kernel/Exception/GoneHttpException.php b/core/vendor/symfony/http-kernel/Exception/GoneHttpException.php
deleted file mode 100644
index 16ea223..0000000
--- a/core/vendor/symfony/http-kernel/Exception/GoneHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * GoneHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class GoneHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(410, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/HttpException.php b/core/vendor/symfony/http-kernel/Exception/HttpException.php
deleted file mode 100644
index 4e1b526..0000000
--- a/core/vendor/symfony/http-kernel/Exception/HttpException.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * HttpException.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- */
-class HttpException extends \RuntimeException implements HttpExceptionInterface
-{
-    private $statusCode;
-    private $headers;
-
-    public function __construct($statusCode, $message = null, \Exception $previous = null, array $headers = array(), $code = 0)
-    {
-        $this->statusCode = $statusCode;
-        $this->headers = $headers;
-
-        parent::__construct($message, $code, $previous);
-    }
-
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/HttpExceptionInterface.php b/core/vendor/symfony/http-kernel/Exception/HttpExceptionInterface.php
deleted file mode 100644
index 8aa50a9..0000000
--- a/core/vendor/symfony/http-kernel/Exception/HttpExceptionInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * Interface for HTTP error exceptions.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- */
-interface HttpExceptionInterface
-{
-    /**
-     * Returns the status code.
-     *
-     * @return int An HTTP response status code
-     */
-    public function getStatusCode();
-
-    /**
-     * Returns response headers.
-     *
-     * @return array Response headers
-     */
-    public function getHeaders();
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php b/core/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php
deleted file mode 100644
index 0c4b943..0000000
--- a/core/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * LengthRequiredHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class LengthRequiredHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(411, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php b/core/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php
deleted file mode 100644
index 78dd26b..0000000
--- a/core/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * MethodNotAllowedHttpException.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- */
-class MethodNotAllowedHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param array      $allow    An array of allowed methods
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct(array $allow, $message = null, \Exception $previous = null, $code = 0)
-    {
-        $headers = array('Allow' => strtoupper(implode(', ', $allow)));
-
-        parent::__construct(405, $message, $previous, $headers, $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php b/core/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php
deleted file mode 100644
index cc6be4b..0000000
--- a/core/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * NotAcceptableHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class NotAcceptableHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(406, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php b/core/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php
deleted file mode 100644
index 4639e37..0000000
--- a/core/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * NotFoundHttpException.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class NotFoundHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(404, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php b/core/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php
deleted file mode 100644
index 9df0e7b..0000000
--- a/core/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * PreconditionFailedHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class PreconditionFailedHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(412, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php b/core/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php
deleted file mode 100644
index 08ebca2..0000000
--- a/core/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * PreconditionRequiredHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- *
- * @see http://tools.ietf.org/html/rfc6585
- */
-class PreconditionRequiredHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(428, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php b/core/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php
deleted file mode 100644
index 32b9e2d..0000000
--- a/core/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * ServiceUnavailableHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class ServiceUnavailableHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param int|string $retryAfter The number of seconds or HTTP-date after which the request may be retried
-     * @param string     $message    The internal exception message
-     * @param \Exception $previous   The previous exception
-     * @param int        $code       The internal exception code
-     */
-    public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0)
-    {
-        $headers = array();
-        if ($retryAfter) {
-            $headers = array('Retry-After' => $retryAfter);
-        }
-
-        parent::__construct(503, $message, $previous, $headers, $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php b/core/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php
deleted file mode 100644
index ab86e09..0000000
--- a/core/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * TooManyRequestsHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- *
- * @see http://tools.ietf.org/html/rfc6585
- */
-class TooManyRequestsHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param int|string $retryAfter The number of seconds or HTTP-date after which the request may be retried
-     * @param string     $message    The internal exception message
-     * @param \Exception $previous   The previous exception
-     * @param int        $code       The internal exception code
-     */
-    public function __construct($retryAfter = null, $message = null, \Exception $previous = null, $code = 0)
-    {
-        $headers = array();
-        if ($retryAfter) {
-            $headers = array('Retry-After' => $retryAfter);
-        }
-
-        parent::__construct(429, $message, $previous, $headers, $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php b/core/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php
deleted file mode 100644
index 0dfe42d..0000000
--- a/core/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * UnauthorizedHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class UnauthorizedHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $challenge WWW-Authenticate challenge string
-     * @param string     $message   The internal exception message
-     * @param \Exception $previous  The previous exception
-     * @param int        $code      The internal exception code
-     */
-    public function __construct($challenge, $message = null, \Exception $previous = null, $code = 0)
-    {
-        $headers = array('WWW-Authenticate' => $challenge);
-
-        parent::__construct(401, $message, $previous, $headers, $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php b/core/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php
deleted file mode 100644
index eb13f56..0000000
--- a/core/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * UnprocessableEntityHttpException.
- *
- * @author Steve Hutchins <hutchinsteve@gmail.com>
- */
-class UnprocessableEntityHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(422, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php b/core/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php
deleted file mode 100644
index a9d8fa0..0000000
--- a/core/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Exception;
-
-/**
- * UnsupportedMediaTypeHttpException.
- *
- * @author Ben Ramsey <ben@benramsey.com>
- */
-class UnsupportedMediaTypeHttpException extends HttpException
-{
-    /**
-     * Constructor.
-     *
-     * @param string     $message  The internal exception message
-     * @param \Exception $previous The previous exception
-     * @param int        $code     The internal exception code
-     */
-    public function __construct($message = null, \Exception $previous = null, $code = 0)
-    {
-        parent::__construct(415, $message, $previous, array(), $code);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php b/core/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php
deleted file mode 100644
index 1968001..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\HttpCache\SurrogateInterface;
-use Symfony\Component\HttpKernel\UriSigner;
-
-/**
- * Implements Surrogate rendering strategy.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class AbstractSurrogateFragmentRenderer extends RoutableFragmentRenderer
-{
-    private $surrogate;
-    private $inlineStrategy;
-    private $signer;
-
-    /**
-     * Constructor.
-     *
-     * The "fallback" strategy when surrogate is not available should always be an
-     * instance of InlineFragmentRenderer.
-     *
-     * @param SurrogateInterface        $surrogate      An Surrogate instance
-     * @param FragmentRendererInterface $inlineStrategy The inline strategy to use when the surrogate is not supported
-     * @param UriSigner                 $signer
-     */
-    public function __construct(SurrogateInterface $surrogate = null, FragmentRendererInterface $inlineStrategy, UriSigner $signer = null)
-    {
-        $this->surrogate = $surrogate;
-        $this->inlineStrategy = $inlineStrategy;
-        $this->signer = $signer;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Note that if the current Request has no surrogate capability, this method
-     * falls back to use the inline rendering strategy.
-     *
-     * Additional available options:
-     *
-     *  * alt: an alternative URI to render in case of an error
-     *  * comment: a comment to add when returning the surrogate tag
-     *
-     * Note, that not all surrogate strategies support all options. For now
-     * 'alt' and 'comment' are only supported by ESI.
-     *
-     * @see Symfony\Component\HttpKernel\HttpCache\SurrogateInterface
-     */
-    public function render($uri, Request $request, array $options = array())
-    {
-        if (!$this->surrogate || !$this->surrogate->hasSurrogateCapability($request)) {
-            return $this->inlineStrategy->render($uri, $request, $options);
-        }
-
-        if ($uri instanceof ControllerReference) {
-            $uri = $this->generateSignedFragmentUri($uri, $request);
-        }
-
-        $alt = isset($options['alt']) ? $options['alt'] : null;
-        if ($alt instanceof ControllerReference) {
-            $alt = $this->generateSignedFragmentUri($alt, $request);
-        }
-
-        $tag = $this->surrogate->renderIncludeTag($uri, $alt, isset($options['ignore_errors']) ? $options['ignore_errors'] : false, isset($options['comment']) ? $options['comment'] : '');
-
-        return new Response($tag);
-    }
-
-    private function generateSignedFragmentUri($uri, Request $request)
-    {
-        if (null === $this->signer) {
-            throw new \LogicException('You must use a URI when using the ESI rendering strategy or set a URL signer.');
-        }
-
-        // we need to sign the absolute URI, but want to return the path only.
-        $fragmentUri = $this->signer->sign($this->generateFragmentUri($uri, $request, true));
-
-        return substr($fragmentUri, strlen($request->getSchemeAndHttpHost()));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/EsiFragmentRenderer.php b/core/vendor/symfony/http-kernel/Fragment/EsiFragmentRenderer.php
deleted file mode 100644
index a4570e3..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/EsiFragmentRenderer.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-/**
- * Implements the ESI rendering strategy.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class EsiFragmentRenderer extends AbstractSurrogateFragmentRenderer
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'esi';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/FragmentHandler.php b/core/vendor/symfony/http-kernel/Fragment/FragmentHandler.php
deleted file mode 100644
index 774870a..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/FragmentHandler.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\StreamedResponse;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-
-/**
- * Renders a URI that represents a resource fragment.
- *
- * This class handles the rendering of resource fragments that are included into
- * a main resource. The handling of the rendering is managed by specialized renderers.
- *
- * This listener works in 2 modes:
- *
- *  * 2.3 compatibility mode where you must call setRequest whenever the Request changes.
- *  * 2.4+ mode where you must pass a RequestStack instance in the constructor.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @see FragmentRendererInterface
- */
-class FragmentHandler
-{
-    private $debug;
-    private $renderers = array();
-    private $request;
-    private $requestStack;
-
-    /**
-     * Constructor.
-     *
-     * RequestStack will become required in 3.0.
-     *
-     * @param FragmentRendererInterface[] $renderers    An array of FragmentRendererInterface instances
-     * @param bool                        $debug        Whether the debug mode is enabled or not
-     * @param RequestStack|null           $requestStack The Request stack that controls the lifecycle of requests
-     */
-    public function __construct(array $renderers = array(), $debug = false, RequestStack $requestStack = null)
-    {
-        $this->requestStack = $requestStack;
-        foreach ($renderers as $renderer) {
-            $this->addRenderer($renderer);
-        }
-        $this->debug = $debug;
-    }
-
-    /**
-     * Adds a renderer.
-     *
-     * @param FragmentRendererInterface $renderer A FragmentRendererInterface instance
-     */
-    public function addRenderer(FragmentRendererInterface $renderer)
-    {
-        $this->renderers[$renderer->getName()] = $renderer;
-    }
-
-    /**
-     * Sets the current Request.
-     *
-     * This method was used to synchronize the Request, but as the HttpKernel
-     * is doing that automatically now, you should never call it directly.
-     * It is kept public for BC with the 2.3 version.
-     *
-     * @param Request|null $request A Request instance
-     *
-     * @deprecated since version 2.4, to be removed in 3.0.
-     */
-    public function setRequest(Request $request = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.4 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $this->request = $request;
-    }
-
-    /**
-     * Renders a URI and returns the Response content.
-     *
-     * Available options:
-     *
-     *  * ignore_errors: true to return an empty string in case of an error
-     *
-     * @param string|ControllerReference $uri      A URI as a string or a ControllerReference instance
-     * @param string                     $renderer The renderer name
-     * @param array                      $options  An array of options
-     *
-     * @return string|null The Response content or null when the Response is streamed
-     *
-     * @throws \InvalidArgumentException when the renderer does not exist
-     * @throws \LogicException           when no master request is being handled
-     */
-    public function render($uri, $renderer = 'inline', array $options = array())
-    {
-        if (!isset($options['ignore_errors'])) {
-            $options['ignore_errors'] = !$this->debug;
-        }
-
-        if (!isset($this->renderers[$renderer])) {
-            throw new \InvalidArgumentException(sprintf('The "%s" renderer does not exist.', $renderer));
-        }
-
-        if (!$request = $this->getRequest()) {
-            throw new \LogicException('Rendering a fragment can only be done when handling a Request.');
-        }
-
-        return $this->deliver($this->renderers[$renderer]->render($uri, $request, $options));
-    }
-
-    /**
-     * Delivers the Response as a string.
-     *
-     * When the Response is a StreamedResponse, the content is streamed immediately
-     * instead of being returned.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return string|null The Response content or null when the Response is streamed
-     *
-     * @throws \RuntimeException when the Response is not successful
-     */
-    protected function deliver(Response $response)
-    {
-        if (!$response->isSuccessful()) {
-            throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $this->getRequest()->getUri(), $response->getStatusCode()));
-        }
-
-        if (!$response instanceof StreamedResponse) {
-            return $response->getContent();
-        }
-
-        $response->sendContent();
-    }
-
-    private function getRequest()
-    {
-        return $this->requestStack ? $this->requestStack->getCurrentRequest() : $this->request;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/FragmentRendererInterface.php b/core/vendor/symfony/http-kernel/Fragment/FragmentRendererInterface.php
deleted file mode 100644
index b177c3a..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/FragmentRendererInterface.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Interface implemented by all rendering strategies.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface FragmentRendererInterface
-{
-    /**
-     * Renders a URI and returns the Response content.
-     *
-     * @param string|ControllerReference $uri     A URI as a string or a ControllerReference instance
-     * @param Request                    $request A Request instance
-     * @param array                      $options An array of options
-     *
-     * @return Response A Response instance
-     */
-    public function render($uri, Request $request, array $options = array());
-
-    /**
-     * Gets the name of the strategy.
-     *
-     * @return string The strategy name
-     */
-    public function getName();
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php b/core/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php
deleted file mode 100644
index 56c96b3..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Templating\EngineInterface;
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\UriSigner;
-
-/**
- * Implements the Hinclude rendering strategy.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class HIncludeFragmentRenderer extends RoutableFragmentRenderer
-{
-    private $globalDefaultTemplate;
-    private $signer;
-    private $templating;
-    private $charset;
-
-    /**
-     * Constructor.
-     *
-     * @param EngineInterface|\Twig_Environment $templating            An EngineInterface or a \Twig_Environment instance
-     * @param UriSigner                         $signer                A UriSigner instance
-     * @param string                            $globalDefaultTemplate The global default content (it can be a template name or the content)
-     * @param string                            $charset
-     */
-    public function __construct($templating = null, UriSigner $signer = null, $globalDefaultTemplate = null, $charset = 'utf-8')
-    {
-        $this->setTemplating($templating);
-        $this->globalDefaultTemplate = $globalDefaultTemplate;
-        $this->signer = $signer;
-        $this->charset = $charset;
-    }
-
-    /**
-     * Sets the templating engine to use to render the default content.
-     *
-     * @param EngineInterface|\Twig_Environment|null $templating An EngineInterface or a \Twig_Environment instance
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setTemplating($templating)
-    {
-        if (null !== $templating && !$templating instanceof EngineInterface && !$templating instanceof \Twig_Environment) {
-            throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of \Twig_Environment or Symfony\Component\Templating\EngineInterface');
-        }
-
-        $this->templating = $templating;
-    }
-
-    /**
-     * Checks if a templating engine has been set.
-     *
-     * @return bool true if the templating engine has been set, false otherwise
-     */
-    public function hasTemplating()
-    {
-        return null !== $this->templating;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Additional available options:
-     *
-     *  * default:    The default content (it can be a template name or the content)
-     *  * id:         An optional hx:include tag id attribute
-     *  * attributes: An optional array of hx:include tag attributes
-     */
-    public function render($uri, Request $request, array $options = array())
-    {
-        if ($uri instanceof ControllerReference) {
-            if (null === $this->signer) {
-                throw new \LogicException('You must use a proper URI when using the Hinclude rendering strategy or set a URL signer.');
-            }
-
-            // we need to sign the absolute URI, but want to return the path only.
-            $uri = substr($this->signer->sign($this->generateFragmentUri($uri, $request, true)), strlen($request->getSchemeAndHttpHost()));
-        }
-
-        // We need to replace ampersands in the URI with the encoded form in order to return valid html/xml content.
-        $uri = str_replace('&', '&amp;', $uri);
-
-        $template = isset($options['default']) ? $options['default'] : $this->globalDefaultTemplate;
-        if (null !== $this->templating && $template && $this->templateExists($template)) {
-            $content = $this->templating->render($template);
-        } else {
-            $content = $template;
-        }
-
-        $attributes = isset($options['attributes']) && is_array($options['attributes']) ? $options['attributes'] : array();
-        if (isset($options['id']) && $options['id']) {
-            $attributes['id'] = $options['id'];
-        }
-        $renderedAttributes = '';
-        if (count($attributes) > 0) {
-            if (PHP_VERSION_ID >= 50400) {
-                $flags = ENT_QUOTES | ENT_SUBSTITUTE;
-            } else {
-                $flags = ENT_QUOTES;
-            }
-            foreach ($attributes as $attribute => $value) {
-                $renderedAttributes .= sprintf(
-                    ' %s="%s"',
-                    htmlspecialchars($attribute, $flags, $this->charset, false),
-                    htmlspecialchars($value, $flags, $this->charset, false)
-                );
-            }
-        }
-
-        return new Response(sprintf('<hx:include src="%s"%s>%s</hx:include>', $uri, $renderedAttributes, $content));
-    }
-
-    /**
-     * @param string $template
-     *
-     * @return bool
-     */
-    private function templateExists($template)
-    {
-        if ($this->templating instanceof EngineInterface) {
-            try {
-                return $this->templating->exists($template);
-            } catch (\InvalidArgumentException $e) {
-                return false;
-            }
-        }
-
-        $loader = $this->templating->getLoader();
-        if ($loader instanceof \Twig_ExistsLoaderInterface) {
-            return $loader->exists($template);
-        }
-
-        try {
-            $loader->getSource($template);
-
-            return true;
-        } catch (\Twig_Error_Loader $e) {
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'hinclude';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php b/core/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php
deleted file mode 100644
index a6ab82e..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * Implements the inline rendering strategy where the Request is rendered by the current HTTP kernel.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class InlineFragmentRenderer extends RoutableFragmentRenderer
-{
-    private $kernel;
-    private $dispatcher;
-
-    /**
-     * Constructor.
-     *
-     * @param HttpKernelInterface      $kernel     A HttpKernelInterface instance
-     * @param EventDispatcherInterface $dispatcher A EventDispatcherInterface instance
-     */
-    public function __construct(HttpKernelInterface $kernel, EventDispatcherInterface $dispatcher = null)
-    {
-        $this->kernel = $kernel;
-        $this->dispatcher = $dispatcher;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Additional available options:
-     *
-     *  * alt: an alternative URI to render in case of an error
-     */
-    public function render($uri, Request $request, array $options = array())
-    {
-        $reference = null;
-        if ($uri instanceof ControllerReference) {
-            $reference = $uri;
-
-            // Remove attributes from the generated URI because if not, the Symfony
-            // routing system will use them to populate the Request attributes. We don't
-            // want that as we want to preserve objects (so we manually set Request attributes
-            // below instead)
-            $attributes = $reference->attributes;
-            $reference->attributes = array();
-
-            // The request format and locale might have been overridden by the user
-            foreach (array('_format', '_locale') as $key) {
-                if (isset($attributes[$key])) {
-                    $reference->attributes[$key] = $attributes[$key];
-                }
-            }
-
-            $uri = $this->generateFragmentUri($uri, $request, false, false);
-
-            $reference->attributes = array_merge($attributes, $reference->attributes);
-        }
-
-        $subRequest = $this->createSubRequest($uri, $request);
-
-        // override Request attributes as they can be objects (which are not supported by the generated URI)
-        if (null !== $reference) {
-            $subRequest->attributes->add($reference->attributes);
-        }
-
-        $level = ob_get_level();
-        try {
-            return $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);
-        } catch (\Exception $e) {
-            // we dispatch the exception event to trigger the logging
-            // the response that comes back is simply ignored
-            if (isset($options['ignore_errors']) && $options['ignore_errors'] && $this->dispatcher) {
-                $event = new GetResponseForExceptionEvent($this->kernel, $request, HttpKernelInterface::SUB_REQUEST, $e);
-
-                $this->dispatcher->dispatch(KernelEvents::EXCEPTION, $event);
-            }
-
-            // let's clean up the output buffers that were created by the sub-request
-            Response::closeOutputBuffers($level, false);
-
-            if (isset($options['alt'])) {
-                $alt = $options['alt'];
-                unset($options['alt']);
-
-                return $this->render($alt, $request, $options);
-            }
-
-            if (!isset($options['ignore_errors']) || !$options['ignore_errors']) {
-                throw $e;
-            }
-
-            return new Response();
-        }
-    }
-
-    protected function createSubRequest($uri, Request $request)
-    {
-        $cookies = $request->cookies->all();
-        $server = $request->server->all();
-
-        // Override the arguments to emulate a sub-request.
-        // Sub-request object will point to localhost as client ip and real client ip
-        // will be included into trusted header for client ip
-        try {
-            if ($trustedHeaderName = Request::getTrustedHeaderName(Request::HEADER_CLIENT_IP)) {
-                $currentXForwardedFor = $request->headers->get($trustedHeaderName, '');
-
-                $server['HTTP_'.$trustedHeaderName] = ($currentXForwardedFor ? $currentXForwardedFor.', ' : '').$request->getClientIp();
-            }
-        } catch (\InvalidArgumentException $e) {
-            // Do nothing
-        }
-
-        $server['REMOTE_ADDR'] = '127.0.0.1';
-
-        $subRequest = Request::create($uri, 'get', array(), $cookies, array(), $server);
-        if ($request->headers->has('Surrogate-Capability')) {
-            $subRequest->headers->set('Surrogate-Capability', $request->headers->get('Surrogate-Capability'));
-        }
-
-        if ($session = $request->getSession()) {
-            $subRequest->setSession($session);
-        }
-
-        return $subRequest;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'inline';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php b/core/vendor/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php
deleted file mode 100644
index d7eeb89..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\EventListener\FragmentListener;
-
-/**
- * Adds the possibility to generate a fragment URI for a given Controller.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class RoutableFragmentRenderer implements FragmentRendererInterface
-{
-    private $fragmentPath = '/_fragment';
-
-    /**
-     * Sets the fragment path that triggers the fragment listener.
-     *
-     * @param string $path The path
-     *
-     * @see FragmentListener
-     */
-    public function setFragmentPath($path)
-    {
-        $this->fragmentPath = $path;
-    }
-
-    /**
-     * Generates a fragment URI for a given controller.
-     *
-     * @param ControllerReference $reference A ControllerReference instance
-     * @param Request             $request   A Request instance
-     * @param bool                $absolute  Whether to generate an absolute URL or not
-     * @param bool                $strict    Whether to allow non-scalar attributes or not
-     *
-     * @return string A fragment URI
-     */
-    protected function generateFragmentUri(ControllerReference $reference, Request $request, $absolute = false, $strict = true)
-    {
-        if ($strict) {
-            $this->checkNonScalar($reference->attributes);
-        }
-
-        // We need to forward the current _format and _locale values as we don't have
-        // a proper routing pattern to do the job for us.
-        // This makes things inconsistent if you switch from rendering a controller
-        // to rendering a route if the route pattern does not contain the special
-        // _format and _locale placeholders.
-        if (!isset($reference->attributes['_format'])) {
-            $reference->attributes['_format'] = $request->getRequestFormat();
-        }
-        if (!isset($reference->attributes['_locale'])) {
-            $reference->attributes['_locale'] = $request->getLocale();
-        }
-
-        $reference->attributes['_controller'] = $reference->controller;
-
-        $reference->query['_path'] = http_build_query($reference->attributes, '', '&');
-
-        $path = $this->fragmentPath.'?'.http_build_query($reference->query, '', '&');
-
-        if ($absolute) {
-            return $request->getUriForPath($path);
-        }
-
-        return $request->getBaseUrl().$path;
-    }
-
-    private function checkNonScalar($values)
-    {
-        foreach ($values as $key => $value) {
-            if (is_array($value)) {
-                $this->checkNonScalar($value);
-            } elseif (!is_scalar($value) && null !== $value) {
-                throw new \LogicException(sprintf('Controller attributes cannot contain non-scalar/non-null values (value for key "%s" is not a scalar or null).', $key));
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Fragment/SsiFragmentRenderer.php b/core/vendor/symfony/http-kernel/Fragment/SsiFragmentRenderer.php
deleted file mode 100644
index 45e7122..0000000
--- a/core/vendor/symfony/http-kernel/Fragment/SsiFragmentRenderer.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Fragment;
-
-/**
- * Implements the SSI rendering strategy.
- *
- * @author Sebastian Krebs <krebs.seb@gmail.com>
- */
-class SsiFragmentRenderer extends AbstractSurrogateFragmentRenderer
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'ssi';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/Esi.php b/core/vendor/symfony/http-kernel/HttpCache/Esi.php
deleted file mode 100644
index e4e0a4b..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/Esi.php
+++ /dev/null
@@ -1,296 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-
-/**
- * Esi implements the ESI capabilities to Request and Response instances.
- *
- * For more information, read the following W3C notes:
- *
- *  * ESI Language Specification 1.0 (http://www.w3.org/TR/esi-lang)
- *
- *  * Edge Architecture Specification (http://www.w3.org/TR/edge-arch)
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Esi implements SurrogateInterface
-{
-    private $contentTypes;
-    private $phpEscapeMap = array(
-        array('<?', '<%', '<s', '<S'),
-        array('<?php echo "<?"; ?>', '<?php echo "<%"; ?>', '<?php echo "<s"; ?>', '<?php echo "<S"; ?>'),
-    );
-
-    /**
-     * Constructor.
-     *
-     * @param array $contentTypes An array of content-type that should be parsed for ESI information.
-     *                            (default: text/html, text/xml, application/xhtml+xml, and application/xml)
-     */
-    public function __construct(array $contentTypes = array('text/html', 'text/xml', 'application/xhtml+xml', 'application/xml'))
-    {
-        $this->contentTypes = $contentTypes;
-    }
-
-    public function getName()
-    {
-        return 'esi';
-    }
-
-    /**
-     * Returns a new cache strategy instance.
-     *
-     * @return ResponseCacheStrategyInterface A ResponseCacheStrategyInterface instance
-     */
-    public function createCacheStrategy()
-    {
-        return new ResponseCacheStrategy();
-    }
-
-    /**
-     * Checks that at least one surrogate has ESI/1.0 capability.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool true if one surrogate has ESI/1.0 capability, false otherwise
-     */
-    public function hasSurrogateCapability(Request $request)
-    {
-        if (null === $value = $request->headers->get('Surrogate-Capability')) {
-            return false;
-        }
-
-        return false !== strpos($value, 'ESI/1.0');
-    }
-
-    /**
-     * Checks that at least one surrogate has ESI/1.0 capability.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool true if one surrogate has ESI/1.0 capability, false otherwise
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use hasSurrogateCapability() instead
-     */
-    public function hasSurrogateEsiCapability(Request $request)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the hasSurrogateCapability() method instead.', E_USER_DEPRECATED);
-
-        return $this->hasSurrogateCapability($request);
-    }
-
-    /**
-     * Adds ESI/1.0 capability to the given Request.
-     *
-     * @param Request $request A Request instance
-     */
-    public function addSurrogateCapability(Request $request)
-    {
-        $current = $request->headers->get('Surrogate-Capability');
-        $new = 'symfony2="ESI/1.0"';
-
-        $request->headers->set('Surrogate-Capability', $current ? $current.', '.$new : $new);
-    }
-
-    /**
-     * Adds ESI/1.0 capability to the given Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use addSurrogateCapability() instead
-     */
-    public function addSurrogateEsiCapability(Request $request)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the addSurrogateCapability() method instead.', E_USER_DEPRECATED);
-
-        $this->addSurrogateCapability($request);
-    }
-
-    /**
-     * Adds HTTP headers to specify that the Response needs to be parsed for ESI.
-     *
-     * This method only adds an ESI HTTP header if the Response has some ESI tags.
-     *
-     * @param Response $response A Response instance
-     */
-    public function addSurrogateControl(Response $response)
-    {
-        if (false !== strpos($response->getContent(), '<esi:include')) {
-            $response->headers->set('Surrogate-Control', 'content="ESI/1.0"');
-        }
-    }
-
-    /**
-     * Checks that the Response needs to be parsed for ESI tags.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return bool true if the Response needs to be parsed, false otherwise
-     */
-    public function needsParsing(Response $response)
-    {
-        if (!$control = $response->headers->get('Surrogate-Control')) {
-            return false;
-        }
-
-        return (bool) preg_match('#content="[^"]*ESI/1.0[^"]*"#', $control);
-    }
-
-    /**
-     * Checks that the Response needs to be parsed for ESI tags.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return bool true if the Response needs to be parsed, false otherwise
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use needsParsing() instead
-     */
-    public function needsEsiParsing(Response $response)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the needsParsing() method instead.', E_USER_DEPRECATED);
-
-        return $this->needsParsing($response);
-    }
-
-    /**
-     * Renders an ESI tag.
-     *
-     * @param string $uri          A URI
-     * @param string $alt          An alternate URI
-     * @param bool   $ignoreErrors Whether to ignore errors or not
-     * @param string $comment      A comment to add as an esi:include tag
-     *
-     * @return string
-     */
-    public function renderIncludeTag($uri, $alt = null, $ignoreErrors = true, $comment = '')
-    {
-        $html = sprintf('<esi:include src="%s"%s%s />',
-            $uri,
-            $ignoreErrors ? ' onerror="continue"' : '',
-            $alt ? sprintf(' alt="%s"', $alt) : ''
-        );
-
-        if (!empty($comment)) {
-            return sprintf("<esi:comment text=\"%s\" />\n%s", $comment, $html);
-        }
-
-        return $html;
-    }
-
-    /**
-     * Replaces a Response ESI tags with the included resource content.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     *
-     * @return Response
-     */
-    public function process(Request $request, Response $response)
-    {
-        $this->request = $request;
-        $type = $response->headers->get('Content-Type');
-        if (empty($type)) {
-            $type = 'text/html';
-        }
-
-        $parts = explode(';', $type);
-        if (!in_array($parts[0], $this->contentTypes)) {
-            return $response;
-        }
-
-        // we don't use a proper XML parser here as we can have ESI tags in a plain text response
-        $content = $response->getContent();
-        $content = preg_replace('#<esi\:remove>.*?</esi\:remove>#', '', $content);
-        $content = preg_replace('#<esi\:comment[^>]*(?:/|</esi\:comment)>#', '', $content);
-
-        $chunks = preg_split('#<esi\:include\s+(.*?)\s*(?:/|</esi\:include)>#', $content, -1, PREG_SPLIT_DELIM_CAPTURE);
-        $chunks[0] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[0]);
-
-        $i = 1;
-        while (isset($chunks[$i])) {
-            $options = array();
-            preg_match_all('/(src|onerror|alt)="([^"]*?)"/', $chunks[$i], $matches, PREG_SET_ORDER);
-            foreach ($matches as $set) {
-                $options[$set[1]] = $set[2];
-            }
-
-            if (!isset($options['src'])) {
-                throw new \RuntimeException('Unable to process an ESI tag without a "src" attribute.');
-            }
-
-            $chunks[$i] = sprintf('<?php echo $this->surrogate->handle($this, %s, %s, %s) ?>'."\n",
-                var_export($options['src'], true),
-                var_export(isset($options['alt']) ? $options['alt'] : '', true),
-                isset($options['onerror']) && 'continue' === $options['onerror'] ? 'true' : 'false'
-            );
-            ++$i;
-            $chunks[$i] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[$i]);
-            ++$i;
-        }
-        $content = implode('', $chunks);
-
-        $response->setContent($content);
-        $response->headers->set('X-Body-Eval', 'ESI');
-
-        // remove ESI/1.0 from the Surrogate-Control header
-        if ($response->headers->has('Surrogate-Control')) {
-            $value = $response->headers->get('Surrogate-Control');
-            if ('content="ESI/1.0"' == $value) {
-                $response->headers->remove('Surrogate-Control');
-            } elseif (preg_match('#,\s*content="ESI/1.0"#', $value)) {
-                $response->headers->set('Surrogate-Control', preg_replace('#,\s*content="ESI/1.0"#', '', $value));
-            } elseif (preg_match('#content="ESI/1.0",\s*#', $value)) {
-                $response->headers->set('Surrogate-Control', preg_replace('#content="ESI/1.0",\s*#', '', $value));
-            }
-        }
-    }
-
-    /**
-     * Handles an ESI from the cache.
-     *
-     * @param HttpCache $cache        An HttpCache instance
-     * @param string    $uri          The main URI
-     * @param string    $alt          An alternative URI
-     * @param bool      $ignoreErrors Whether to ignore errors or not
-     *
-     * @return string
-     *
-     * @throws \RuntimeException
-     * @throws \Exception
-     */
-    public function handle(HttpCache $cache, $uri, $alt, $ignoreErrors)
-    {
-        $subRequest = Request::create($uri, 'get', array(), $cache->getRequest()->cookies->all(), array(), $cache->getRequest()->server->all());
-
-        try {
-            $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
-
-            if (!$response->isSuccessful()) {
-                throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $subRequest->getUri(), $response->getStatusCode()));
-            }
-
-            return $response->getContent();
-        } catch (\Exception $e) {
-            if ($alt) {
-                return $this->handle($cache, $alt, '', $ignoreErrors);
-            }
-
-            if (!$ignoreErrors) {
-                throw $e;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/EsiResponseCacheStrategy.php b/core/vendor/symfony/http-kernel/HttpCache/EsiResponseCacheStrategy.php
deleted file mode 100644
index 636f60e..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/EsiResponseCacheStrategy.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- * (based on commit 02d2b48d75bcb63cf1c0c7149c077ad256542801)
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-@trigger_error('The '.__NAMESPACE__.'\EsiResponseCacheStrategy class is deprecated since version 2.6 and will be removed in 3.0. Use the Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategy class instead.', E_USER_DEPRECATED);
-
-/**
- * EsiResponseCacheStrategy knows how to compute the Response cache HTTP header
- * based on the different ESI response cache headers.
- *
- * This implementation changes the master response TTL to the smallest TTL received
- * or force validation if one of the ESI has validation cache strategy.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.6, to be removed in 3.0. Use ResponseCacheStrategy instead
- */
-class EsiResponseCacheStrategy extends ResponseCacheStrategy implements EsiResponseCacheStrategyInterface
-{
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/EsiResponseCacheStrategyInterface.php b/core/vendor/symfony/http-kernel/HttpCache/EsiResponseCacheStrategyInterface.php
deleted file mode 100644
index 2320867..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/EsiResponseCacheStrategyInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- * (based on commit 02d2b48d75bcb63cf1c0c7149c077ad256542801)
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-@trigger_error('The '.__NAMESPACE__.'\EsiResponseCacheStrategyInterface class is deprecated since version 2.6 and will be removed in 3.0. Use the Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategyInterface class instead.', E_USER_DEPRECATED);
-
-/**
- * ResponseCacheStrategyInterface implementations know how to compute the
- * Response cache HTTP header based on the different response cache headers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.6, to be removed in 3.0. Use ResponseCacheStrategyInterface instead.
- */
-interface EsiResponseCacheStrategyInterface extends ResponseCacheStrategyInterface
-{
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/HttpCache.php b/core/vendor/symfony/http-kernel/HttpCache/HttpCache.php
deleted file mode 100644
index da90600..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/HttpCache.php
+++ /dev/null
@@ -1,711 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- * (based on commit 02d2b48d75bcb63cf1c0c7149c077ad256542801)
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\TerminableInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Cache provides HTTP caching.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class HttpCache implements HttpKernelInterface, TerminableInterface
-{
-    private $kernel;
-    private $store;
-    private $request;
-    private $surrogate;
-    private $surrogateCacheStrategy;
-    private $options = array();
-    private $traces = array();
-
-    /**
-     * Constructor.
-     *
-     * The available options are:
-     *
-     *   * debug:                 If true, the traces are added as a HTTP header to ease debugging
-     *
-     *   * default_ttl            The number of seconds that a cache entry should be considered
-     *                            fresh when no explicit freshness information is provided in
-     *                            a response. Explicit Cache-Control or Expires headers
-     *                            override this value. (default: 0)
-     *
-     *   * private_headers        Set of request headers that trigger "private" cache-control behavior
-     *                            on responses that don't explicitly state whether the response is
-     *                            public or private via a Cache-Control directive. (default: Authorization and Cookie)
-     *
-     *   * allow_reload           Specifies whether the client can force a cache reload by including a
-     *                            Cache-Control "no-cache" directive in the request. Set it to ``true``
-     *                            for compliance with RFC 2616. (default: false)
-     *
-     *   * allow_revalidate       Specifies whether the client can force a cache revalidate by including
-     *                            a Cache-Control "max-age=0" directive in the request. Set it to ``true``
-     *                            for compliance with RFC 2616. (default: false)
-     *
-     *   * stale_while_revalidate Specifies the default number of seconds (the granularity is the second as the
-     *                            Response TTL precision is a second) during which the cache can immediately return
-     *                            a stale response while it revalidates it in the background (default: 2).
-     *                            This setting is overridden by the stale-while-revalidate HTTP Cache-Control
-     *                            extension (see RFC 5861).
-     *
-     *   * stale_if_error         Specifies the default number of seconds (the granularity is the second) during which
-     *                            the cache can serve a stale response when an error is encountered (default: 60).
-     *                            This setting is overridden by the stale-if-error HTTP Cache-Control extension
-     *                            (see RFC 5861).
-     *
-     * @param HttpKernelInterface $kernel    An HttpKernelInterface instance
-     * @param StoreInterface      $store     A Store instance
-     * @param SurrogateInterface  $surrogate A SurrogateInterface instance
-     * @param array               $options   An array of options
-     */
-    public function __construct(HttpKernelInterface $kernel, StoreInterface $store, SurrogateInterface $surrogate = null, array $options = array())
-    {
-        $this->store = $store;
-        $this->kernel = $kernel;
-        $this->surrogate = $surrogate;
-
-        // needed in case there is a fatal error because the backend is too slow to respond
-        register_shutdown_function(array($this->store, 'cleanup'));
-
-        $this->options = array_merge(array(
-            'debug' => false,
-            'default_ttl' => 0,
-            'private_headers' => array('Authorization', 'Cookie'),
-            'allow_reload' => false,
-            'allow_revalidate' => false,
-            'stale_while_revalidate' => 2,
-            'stale_if_error' => 60,
-        ), $options);
-    }
-
-    /**
-     * Gets the current store.
-     *
-     * @return StoreInterface $store A StoreInterface instance
-     */
-    public function getStore()
-    {
-        return $this->store;
-    }
-
-    /**
-     * Returns an array of events that took place during processing of the last request.
-     *
-     * @return array An array of events
-     */
-    public function getTraces()
-    {
-        return $this->traces;
-    }
-
-    /**
-     * Returns a log message for the events of the last request processing.
-     *
-     * @return string A log message
-     */
-    public function getLog()
-    {
-        $log = array();
-        foreach ($this->traces as $request => $traces) {
-            $log[] = sprintf('%s: %s', $request, implode(', ', $traces));
-        }
-
-        return implode('; ', $log);
-    }
-
-    /**
-     * Gets the Request instance associated with the master request.
-     *
-     * @return Request A Request instance
-     */
-    public function getRequest()
-    {
-        return $this->request;
-    }
-
-    /**
-     * Gets the Kernel instance.
-     *
-     * @return HttpKernelInterface An HttpKernelInterface instance
-     */
-    public function getKernel()
-    {
-        return $this->kernel;
-    }
-
-    /**
-     * Gets the Surrogate instance.
-     *
-     * @throws \LogicException
-     * @return SurrogateInterface A Surrogate instance
-     */
-    public function getSurrogate()
-    {
-        if (!$this->surrogate instanceof Esi) {
-            throw new \LogicException('This instance of HttpCache was not set up to use ESI as surrogate handler. You must overwrite and use createSurrogate');
-        }
-
-        return $this->surrogate;
-    }
-
-    /**
-     * Gets the Esi instance.
-     *
-     * @throws \LogicException
-     *
-     * @return Esi An Esi instance
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use getSurrogate() instead
-     */
-    public function getEsi()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the getSurrogate() method instead.', E_USER_DEPRECATED);
-
-        return $this->getSurrogate();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        // FIXME: catch exceptions and implement a 500 error page here? -> in Varnish, there is a built-in error page mechanism
-        if (HttpKernelInterface::MASTER_REQUEST === $type) {
-            $this->traces = array();
-            $this->request = $request;
-            if (null !== $this->surrogate) {
-                $this->surrogateCacheStrategy = $this->surrogate->createCacheStrategy();
-            }
-        }
-
-        $path = $request->getPathInfo();
-        if ($qs = $request->getQueryString()) {
-            $path .= '?'.$qs;
-        }
-        $this->traces[$request->getMethod().' '.$path] = array();
-
-        if (!$request->isMethodSafe()) {
-            $response = $this->invalidate($request, $catch);
-        } elseif ($request->headers->has('expect')) {
-            $response = $this->pass($request, $catch);
-        } else {
-            $response = $this->lookup($request, $catch);
-        }
-
-        $this->restoreResponseBody($request, $response);
-
-        $response->setDate(new \DateTime(null, new \DateTimeZone('UTC')));
-
-        if (HttpKernelInterface::MASTER_REQUEST === $type && $this->options['debug']) {
-            $response->headers->set('X-Symfony-Cache', $this->getLog());
-        }
-
-        if (null !== $this->surrogate) {
-            if (HttpKernelInterface::MASTER_REQUEST === $type) {
-                $this->surrogateCacheStrategy->update($response);
-            } else {
-                $this->surrogateCacheStrategy->add($response);
-            }
-        }
-
-        $response->prepare($request);
-
-        $response->isNotModified($request);
-
-        return $response;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function terminate(Request $request, Response $response)
-    {
-        if ($this->getKernel() instanceof TerminableInterface) {
-            $this->getKernel()->terminate($request, $response);
-        }
-    }
-
-    /**
-     * Forwards the Request to the backend without storing the Response in the cache.
-     *
-     * @param Request $request A Request instance
-     * @param bool    $catch   Whether to process exceptions
-     *
-     * @return Response A Response instance
-     */
-    protected function pass(Request $request, $catch = false)
-    {
-        $this->record($request, 'pass');
-
-        return $this->forward($request, $catch);
-    }
-
-    /**
-     * Invalidates non-safe methods (like POST, PUT, and DELETE).
-     *
-     * @param Request $request A Request instance
-     * @param bool    $catch   Whether to process exceptions
-     *
-     * @return Response A Response instance
-     *
-     * @throws \Exception
-     *
-     * @see RFC2616 13.10
-     */
-    protected function invalidate(Request $request, $catch = false)
-    {
-        $response = $this->pass($request, $catch);
-
-        // invalidate only when the response is successful
-        if ($response->isSuccessful() || $response->isRedirect()) {
-            try {
-                $this->store->invalidate($request, $catch);
-
-                // As per the RFC, invalidate Location and Content-Location URLs if present
-                foreach (array('Location', 'Content-Location') as $header) {
-                    if ($uri = $response->headers->get($header)) {
-                        $subRequest = Request::create($uri, 'get', array(), array(), array(), $request->server->all());
-
-                        $this->store->invalidate($subRequest);
-                    }
-                }
-
-                $this->record($request, 'invalidate');
-            } catch (\Exception $e) {
-                $this->record($request, 'invalidate-failed');
-
-                if ($this->options['debug']) {
-                    throw $e;
-                }
-            }
-        }
-
-        return $response;
-    }
-
-    /**
-     * Lookups a Response from the cache for the given Request.
-     *
-     * When a matching cache entry is found and is fresh, it uses it as the
-     * response without forwarding any request to the backend. When a matching
-     * cache entry is found but is stale, it attempts to "validate" the entry with
-     * the backend using conditional GET. When no matching cache entry is found,
-     * it triggers "miss" processing.
-     *
-     * @param Request $request A Request instance
-     * @param bool    $catch   whether to process exceptions
-     *
-     * @return Response A Response instance
-     *
-     * @throws \Exception
-     */
-    protected function lookup(Request $request, $catch = false)
-    {
-        // if allow_reload and no-cache Cache-Control, allow a cache reload
-        if ($this->options['allow_reload'] && $request->isNoCache()) {
-            $this->record($request, 'reload');
-
-            return $this->fetch($request, $catch);
-        }
-
-        try {
-            $entry = $this->store->lookup($request);
-        } catch (\Exception $e) {
-            $this->record($request, 'lookup-failed');
-
-            if ($this->options['debug']) {
-                throw $e;
-            }
-
-            return $this->pass($request, $catch);
-        }
-
-        if (null === $entry) {
-            $this->record($request, 'miss');
-
-            return $this->fetch($request, $catch);
-        }
-
-        if (!$this->isFreshEnough($request, $entry)) {
-            $this->record($request, 'stale');
-
-            return $this->validate($request, $entry, $catch);
-        }
-
-        $this->record($request, 'fresh');
-
-        $entry->headers->set('Age', $entry->getAge());
-
-        return $entry;
-    }
-
-    /**
-     * Validates that a cache entry is fresh.
-     *
-     * The original request is used as a template for a conditional
-     * GET request with the backend.
-     *
-     * @param Request  $request A Request instance
-     * @param Response $entry   A Response instance to validate
-     * @param bool     $catch   Whether to process exceptions
-     *
-     * @return Response A Response instance
-     */
-    protected function validate(Request $request, Response $entry, $catch = false)
-    {
-        $subRequest = clone $request;
-
-        // send no head requests because we want content
-        $subRequest->setMethod('GET');
-
-        // add our cached last-modified validator
-        $subRequest->headers->set('if_modified_since', $entry->headers->get('Last-Modified'));
-
-        // Add our cached etag validator to the environment.
-        // We keep the etags from the client to handle the case when the client
-        // has a different private valid entry which is not cached here.
-        $cachedEtags = $entry->getEtag() ? array($entry->getEtag()) : array();
-        $requestEtags = $request->getETags();
-        if ($etags = array_unique(array_merge($cachedEtags, $requestEtags))) {
-            $subRequest->headers->set('if_none_match', implode(', ', $etags));
-        }
-
-        $response = $this->forward($subRequest, $catch, $entry);
-
-        if (304 == $response->getStatusCode()) {
-            $this->record($request, 'valid');
-
-            // return the response and not the cache entry if the response is valid but not cached
-            $etag = $response->getEtag();
-            if ($etag && in_array($etag, $requestEtags) && !in_array($etag, $cachedEtags)) {
-                return $response;
-            }
-
-            $entry = clone $entry;
-            $entry->headers->remove('Date');
-
-            foreach (array('Date', 'Expires', 'Cache-Control', 'ETag', 'Last-Modified') as $name) {
-                if ($response->headers->has($name)) {
-                    $entry->headers->set($name, $response->headers->get($name));
-                }
-            }
-
-            $response = $entry;
-        } else {
-            $this->record($request, 'invalid');
-        }
-
-        if ($response->isCacheable()) {
-            $this->store($request, $response);
-        }
-
-        return $response;
-    }
-
-    /**
-     * Forwards the Request to the backend and determines whether the response should be stored.
-     *
-     * This methods is triggered when the cache missed or a reload is required.
-     *
-     * @param Request $request A Request instance
-     * @param bool    $catch   whether to process exceptions
-     *
-     * @return Response A Response instance
-     */
-    protected function fetch(Request $request, $catch = false)
-    {
-        $subRequest = clone $request;
-
-        // send no head requests because we want content
-        $subRequest->setMethod('GET');
-
-        // avoid that the backend sends no content
-        $subRequest->headers->remove('if_modified_since');
-        $subRequest->headers->remove('if_none_match');
-
-        $response = $this->forward($subRequest, $catch);
-
-        if ($response->isCacheable()) {
-            $this->store($request, $response);
-        }
-
-        return $response;
-    }
-
-    /**
-     * Forwards the Request to the backend and returns the Response.
-     *
-     * @param Request  $request A Request instance
-     * @param bool     $catch   Whether to catch exceptions or not
-     * @param Response $entry   A Response instance (the stale entry if present, null otherwise)
-     *
-     * @return Response A Response instance
-     */
-    protected function forward(Request $request, $catch = false, Response $entry = null)
-    {
-        if ($this->surrogate) {
-            $this->surrogate->addSurrogateCapability($request);
-        }
-
-        // modify the X-Forwarded-For header if needed
-        $forwardedFor = $request->headers->get('X-Forwarded-For');
-        if ($forwardedFor) {
-            $request->headers->set('X-Forwarded-For', $forwardedFor.', '.$request->server->get('REMOTE_ADDR'));
-        } else {
-            $request->headers->set('X-Forwarded-For', $request->server->get('REMOTE_ADDR'));
-        }
-
-        // fix the client IP address by setting it to 127.0.0.1 as HttpCache
-        // is always called from the same process as the backend.
-        $request->server->set('REMOTE_ADDR', '127.0.0.1');
-
-        // make sure HttpCache is a trusted proxy
-        if (!in_array('127.0.0.1', $trustedProxies = Request::getTrustedProxies())) {
-            $trustedProxies[] = '127.0.0.1';
-            Request::setTrustedProxies($trustedProxies);
-        }
-
-        // always a "master" request (as the real master request can be in cache)
-        $response = $this->kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, $catch);
-        // FIXME: we probably need to also catch exceptions if raw === true
-
-        // we don't implement the stale-if-error on Requests, which is nonetheless part of the RFC
-        if (null !== $entry && in_array($response->getStatusCode(), array(500, 502, 503, 504))) {
-            if (null === $age = $entry->headers->getCacheControlDirective('stale-if-error')) {
-                $age = $this->options['stale_if_error'];
-            }
-
-            if (abs($entry->getTtl()) < $age) {
-                $this->record($request, 'stale-if-error');
-
-                return $entry;
-            }
-        }
-
-        $this->processResponseBody($request, $response);
-
-        if ($this->isPrivateRequest($request) && !$response->headers->hasCacheControlDirective('public')) {
-            $response->setPrivate(true);
-        } elseif ($this->options['default_ttl'] > 0 && null === $response->getTtl() && !$response->headers->getCacheControlDirective('must-revalidate')) {
-            $response->setTtl($this->options['default_ttl']);
-        }
-
-        return $response;
-    }
-
-    /**
-     * Checks whether the cache entry is "fresh enough" to satisfy the Request.
-     *
-     * @param Request  $request A Request instance
-     * @param Response $entry   A Response instance
-     *
-     * @return bool true if the cache entry if fresh enough, false otherwise
-     */
-    protected function isFreshEnough(Request $request, Response $entry)
-    {
-        if (!$entry->isFresh()) {
-            return $this->lock($request, $entry);
-        }
-
-        if ($this->options['allow_revalidate'] && null !== $maxAge = $request->headers->getCacheControlDirective('max-age')) {
-            return $maxAge > 0 && $maxAge >= $entry->getAge();
-        }
-
-        return true;
-    }
-
-    /**
-     * Locks a Request during the call to the backend.
-     *
-     * @param Request  $request A Request instance
-     * @param Response $entry   A Response instance
-     *
-     * @return bool true if the cache entry can be returned even if it is staled, false otherwise
-     */
-    protected function lock(Request $request, Response $entry)
-    {
-        // try to acquire a lock to call the backend
-        $lock = $this->store->lock($request);
-
-        // there is already another process calling the backend
-        if (true !== $lock) {
-            // check if we can serve the stale entry
-            if (null === $age = $entry->headers->getCacheControlDirective('stale-while-revalidate')) {
-                $age = $this->options['stale_while_revalidate'];
-            }
-
-            if (abs($entry->getTtl()) < $age) {
-                $this->record($request, 'stale-while-revalidate');
-
-                // server the stale response while there is a revalidation
-                return true;
-            }
-
-            // wait for the lock to be released
-            $wait = 0;
-            while ($this->store->isLocked($request) && $wait < 5000000) {
-                usleep(50000);
-                $wait += 50000;
-            }
-
-            if ($wait < 2000000) {
-                // replace the current entry with the fresh one
-                $new = $this->lookup($request);
-                $entry->headers = $new->headers;
-                $entry->setContent($new->getContent());
-                $entry->setStatusCode($new->getStatusCode());
-                $entry->setProtocolVersion($new->getProtocolVersion());
-                foreach ($new->headers->getCookies() as $cookie) {
-                    $entry->headers->setCookie($cookie);
-                }
-            } else {
-                // backend is slow as hell, send a 503 response (to avoid the dog pile effect)
-                $entry->setStatusCode(503);
-                $entry->setContent('503 Service Unavailable');
-                $entry->headers->set('Retry-After', 10);
-            }
-
-            return true;
-        }
-
-        // we have the lock, call the backend
-        return false;
-    }
-
-    /**
-     * Writes the Response to the cache.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     *
-     * @throws \Exception
-     */
-    protected function store(Request $request, Response $response)
-    {
-        try {
-            $this->store->write($request, $response);
-
-            $this->record($request, 'store');
-
-            $response->headers->set('Age', $response->getAge());
-        } catch (\Exception $e) {
-            $this->record($request, 'store-failed');
-
-            if ($this->options['debug']) {
-                throw $e;
-            }
-        }
-
-        // now that the response is cached, release the lock
-        $this->store->unlock($request);
-    }
-
-    /**
-     * Restores the Response body.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     */
-    private function restoreResponseBody(Request $request, Response $response)
-    {
-        if ($request->isMethod('HEAD') || 304 === $response->getStatusCode()) {
-            $response->setContent(null);
-            $response->headers->remove('X-Body-Eval');
-            $response->headers->remove('X-Body-File');
-
-            return;
-        }
-
-        if ($response->headers->has('X-Body-Eval')) {
-            ob_start();
-
-            if ($response->headers->has('X-Body-File')) {
-                include $response->headers->get('X-Body-File');
-            } else {
-                eval('; ?>'.$response->getContent().'<?php ;');
-            }
-
-            $response->setContent(ob_get_clean());
-            $response->headers->remove('X-Body-Eval');
-            if (!$response->headers->has('Transfer-Encoding')) {
-                $response->headers->set('Content-Length', strlen($response->getContent()));
-            }
-        } elseif ($response->headers->has('X-Body-File')) {
-            $response->setContent(file_get_contents($response->headers->get('X-Body-File')));
-        } else {
-            return;
-        }
-
-        $response->headers->remove('X-Body-File');
-    }
-
-    protected function processResponseBody(Request $request, Response $response)
-    {
-        if (null !== $this->surrogate && $this->surrogate->needsParsing($response)) {
-            $this->surrogate->process($request, $response);
-        }
-    }
-
-    /**
-     * Checks if the Request includes authorization or other sensitive information
-     * that should cause the Response to be considered private by default.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool true if the Request is private, false otherwise
-     */
-    private function isPrivateRequest(Request $request)
-    {
-        foreach ($this->options['private_headers'] as $key) {
-            $key = strtolower(str_replace('HTTP_', '', $key));
-
-            if ('cookie' === $key) {
-                if (count($request->cookies->all())) {
-                    return true;
-                }
-            } elseif ($request->headers->has($key)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Records that an event took place.
-     *
-     * @param Request $request A Request instance
-     * @param string  $event   The event name
-     */
-    private function record(Request $request, $event)
-    {
-        $path = $request->getPathInfo();
-        if ($qs = $request->getQueryString()) {
-            $path .= '?'.$qs;
-        }
-        $this->traces[$request->getMethod().' '.$path][] = $event;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php b/core/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php
deleted file mode 100644
index d22dff1..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- * (based on commit 02d2b48d75bcb63cf1c0c7149c077ad256542801)
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * ResponseCacheStrategy knows how to compute the Response cache HTTP header
- * based on the different response cache headers.
- *
- * This implementation changes the master response TTL to the smallest TTL received
- * or force validation if one of the surrogates has validation cache strategy.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ResponseCacheStrategy implements ResponseCacheStrategyInterface
-{
-    private $cacheable = true;
-    private $embeddedResponses = 0;
-    private $ttls = array();
-    private $maxAges = array();
-
-    /**
-     * {@inheritdoc}
-     */
-    public function add(Response $response)
-    {
-        if ($response->isValidateable()) {
-            $this->cacheable = false;
-        } else {
-            $this->ttls[] = $response->getTtl();
-            $this->maxAges[] = $response->getMaxAge();
-        }
-
-        $this->embeddedResponses++;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function update(Response $response)
-    {
-        // if we have no embedded Response, do nothing
-        if (0 === $this->embeddedResponses) {
-            return;
-        }
-
-        // Remove validation related headers in order to avoid browsers using
-        // their own cache, because some of the response content comes from
-        // at least one embedded response (which likely has a different caching strategy).
-        if ($response->isValidateable()) {
-            $response->setEtag(null);
-            $response->setLastModified(null);
-            $this->cacheable = false;
-        }
-
-        if (!$this->cacheable) {
-            $response->headers->set('Cache-Control', 'no-cache, must-revalidate');
-
-            return;
-        }
-
-        $this->ttls[] = $response->getTtl();
-        $this->maxAges[] = $response->getMaxAge();
-
-        if (null !== $maxAge = min($this->maxAges)) {
-            $response->setSharedMaxAge($maxAge);
-            $response->headers->set('Age', $maxAge - min($this->ttls));
-        }
-        $response->setMaxAge(0);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php b/core/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php
deleted file mode 100644
index d70c2e0..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- * (based on commit 02d2b48d75bcb63cf1c0c7149c077ad256542801)
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * ResponseCacheStrategyInterface implementations know how to compute the
- * Response cache HTTP header based on the different response cache headers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface ResponseCacheStrategyInterface
-{
-    /**
-     * Adds a Response.
-     *
-     * @param Response $response
-     */
-    public function add(Response $response);
-
-    /**
-     * Updates the Response HTTP headers based on the embedded Responses.
-     *
-     * @param Response $response
-     */
-    public function update(Response $response);
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/Ssi.php b/core/vendor/symfony/http-kernel/HttpCache/Ssi.php
deleted file mode 100644
index 7bb54cf..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/Ssi.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-
-/**
- * Ssi implements the SSI capabilities to Request and Response instances.
- *
- * @author Sebastian Krebs <krebs.seb@gmail.com>
- */
-class Ssi implements SurrogateInterface
-{
-    private $contentTypes;
-    private $phpEscapeMap = array(
-        array('<?', '<%', '<s', '<S'),
-        array('<?php echo "<?"; ?>', '<?php echo "<%"; ?>', '<?php echo "<s"; ?>', '<?php echo "<S"; ?>'),
-    );
-
-    /**
-     * Constructor.
-     *
-     * @param array $contentTypes An array of content-type that should be parsed for SSI information.
-     *                            (default: text/html, text/xml, application/xhtml+xml, and application/xml)
-     */
-    public function __construct(array $contentTypes = array('text/html', 'text/xml', 'application/xhtml+xml', 'application/xml'))
-    {
-        $this->contentTypes = $contentTypes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'ssi';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createCacheStrategy()
-    {
-        return new ResponseCacheStrategy();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasSurrogateCapability(Request $request)
-    {
-        if (null === $value = $request->headers->get('Surrogate-Capability')) {
-            return false;
-        }
-
-        return false !== strpos($value, 'SSI/1.0');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addSurrogateCapability(Request $request)
-    {
-        $current = $request->headers->get('Surrogate-Capability');
-        $new = 'symfony2="SSI/1.0"';
-
-        $request->headers->set('Surrogate-Capability', $current ? $current.', '.$new : $new);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addSurrogateControl(Response $response)
-    {
-        if (false !== strpos($response->getContent(), '<!--#include')) {
-            $response->headers->set('Surrogate-Control', 'content="SSI/1.0"');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function needsParsing(Response $response)
-    {
-        if (!$control = $response->headers->get('Surrogate-Control')) {
-            return false;
-        }
-
-        return (bool) preg_match('#content="[^"]*SSI/1.0[^"]*"#', $control);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function renderIncludeTag($uri, $alt = null, $ignoreErrors = true, $comment = '')
-    {
-        return sprintf('<!--#include virtual="%s" -->', $uri);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function process(Request $request, Response $response)
-    {
-        $this->request = $request;
-        $type = $response->headers->get('Content-Type');
-        if (empty($type)) {
-            $type = 'text/html';
-        }
-
-        $parts = explode(';', $type);
-        if (!in_array($parts[0], $this->contentTypes)) {
-            return $response;
-        }
-
-        // we don't use a proper XML parser here as we can have SSI tags in a plain text response
-        $content = $response->getContent();
-
-        $chunks = preg_split('#<!--\#include\s+(.*?)\s*-->#', $content, -1, PREG_SPLIT_DELIM_CAPTURE);
-        $chunks[0] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[0]);
-
-        $i = 1;
-        while (isset($chunks[$i])) {
-            $options = array();
-            preg_match_all('/(virtual)="([^"]*?)"/', $chunks[$i], $matches, PREG_SET_ORDER);
-            foreach ($matches as $set) {
-                $options[$set[1]] = $set[2];
-            }
-
-            if (!isset($options['virtual'])) {
-                throw new \RuntimeException('Unable to process an SSI tag without a "virtual" attribute.');
-            }
-
-            $chunks[$i] = sprintf('<?php echo $this->surrogate->handle($this, %s, \'\', false) ?>'."\n",
-                var_export($options['virtual'], true)
-            );
-            ++$i;
-            $chunks[$i] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[$i]);
-            ++$i;
-        }
-        $content = implode('', $chunks);
-
-        $response->setContent($content);
-        $response->headers->set('X-Body-Eval', 'SSI');
-
-        // remove SSI/1.0 from the Surrogate-Control header
-        if ($response->headers->has('Surrogate-Control')) {
-            $value = $response->headers->get('Surrogate-Control');
-            if ('content="SSI/1.0"' == $value) {
-                $response->headers->remove('Surrogate-Control');
-            } elseif (preg_match('#,\s*content="SSI/1.0"#', $value)) {
-                $response->headers->set('Surrogate-Control', preg_replace('#,\s*content="SSI/1.0"#', '', $value));
-            } elseif (preg_match('#content="SSI/1.0",\s*#', $value)) {
-                $response->headers->set('Surrogate-Control', preg_replace('#content="SSI/1.0",\s*#', '', $value));
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function handle(HttpCache $cache, $uri, $alt, $ignoreErrors)
-    {
-        $subRequest = Request::create($uri, 'get', array(), $cache->getRequest()->cookies->all(), array(), $cache->getRequest()->server->all());
-
-        try {
-            $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
-
-            if (!$response->isSuccessful()) {
-                throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $subRequest->getUri(), $response->getStatusCode()));
-            }
-
-            return $response->getContent();
-        } catch (\Exception $e) {
-            if ($alt) {
-                return $this->handle($cache, $alt, '', $ignoreErrors);
-            }
-
-            if (!$ignoreErrors) {
-                throw $e;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/Store.php b/core/vendor/symfony/http-kernel/HttpCache/Store.php
deleted file mode 100644
index 044d14e..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/Store.php
+++ /dev/null
@@ -1,449 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Store implements all the logic for storing cache metadata (Request and Response headers).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Store implements StoreInterface
-{
-    protected $root;
-    private $keyCache;
-    private $locks;
-
-    /**
-     * Constructor.
-     *
-     * @param string $root The path to the cache directory
-     */
-    public function __construct($root)
-    {
-        $this->root = $root;
-        if (!is_dir($this->root)) {
-            mkdir($this->root, 0777, true);
-        }
-        $this->keyCache = new \SplObjectStorage();
-        $this->locks = array();
-    }
-
-    /**
-     * Cleanups storage.
-     */
-    public function cleanup()
-    {
-        // unlock everything
-        foreach ($this->locks as $lock) {
-            if (file_exists($lock)) {
-                @unlink($lock);
-            }
-        }
-
-        $error = error_get_last();
-        if (1 === $error['type'] && false === headers_sent()) {
-            // send a 503
-            header('HTTP/1.0 503 Service Unavailable');
-            header('Retry-After: 10');
-            echo '503 Service Unavailable';
-        }
-    }
-
-    /**
-     * Locks the cache for a given Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool|string true if the lock is acquired, the path to the current lock otherwise
-     */
-    public function lock(Request $request)
-    {
-        $path = $this->getPath($this->getCacheKey($request).'.lck');
-        if (!is_dir(dirname($path)) && false === @mkdir(dirname($path), 0777, true)) {
-            return false;
-        }
-
-        $lock = @fopen($path, 'x');
-        if (false !== $lock) {
-            fclose($lock);
-
-            $this->locks[] = $path;
-
-            return true;
-        }
-
-        return !file_exists($path) ?: $path;
-    }
-
-    /**
-     * Releases the lock for the given Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool False if the lock file does not exist or cannot be unlocked, true otherwise
-     */
-    public function unlock(Request $request)
-    {
-        $file = $this->getPath($this->getCacheKey($request).'.lck');
-
-        return is_file($file) ? @unlink($file) : false;
-    }
-
-    public function isLocked(Request $request)
-    {
-        return is_file($this->getPath($this->getCacheKey($request).'.lck'));
-    }
-
-    /**
-     * Locates a cached Response for the Request provided.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return Response|null A Response instance, or null if no cache entry was found
-     */
-    public function lookup(Request $request)
-    {
-        $key = $this->getCacheKey($request);
-
-        if (!$entries = $this->getMetadata($key)) {
-            return;
-        }
-
-        // find a cached entry that matches the request.
-        $match = null;
-        foreach ($entries as $entry) {
-            if ($this->requestsMatch(isset($entry[1]['vary'][0]) ? implode(', ', $entry[1]['vary']) : '', $request->headers->all(), $entry[0])) {
-                $match = $entry;
-
-                break;
-            }
-        }
-
-        if (null === $match) {
-            return;
-        }
-
-        list($req, $headers) = $match;
-        if (is_file($body = $this->getPath($headers['x-content-digest'][0]))) {
-            return $this->restoreResponse($headers, $body);
-        }
-
-        // TODO the metaStore referenced an entity that doesn't exist in
-        // the entityStore. We definitely want to return nil but we should
-        // also purge the entry from the meta-store when this is detected.
-    }
-
-    /**
-     * Writes a cache entry to the store for the given Request and Response.
-     *
-     * Existing entries are read and any that match the response are removed. This
-     * method calls write with the new list of cache entries.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     *
-     * @return string The key under which the response is stored
-     *
-     * @throws \RuntimeException
-     */
-    public function write(Request $request, Response $response)
-    {
-        $key = $this->getCacheKey($request);
-        $storedEnv = $this->persistRequest($request);
-
-        // write the response body to the entity store if this is the original response
-        if (!$response->headers->has('X-Content-Digest')) {
-            $digest = $this->generateContentDigest($response);
-
-            if (false === $this->save($digest, $response->getContent())) {
-                throw new \RuntimeException('Unable to store the entity.');
-            }
-
-            $response->headers->set('X-Content-Digest', $digest);
-
-            if (!$response->headers->has('Transfer-Encoding')) {
-                $response->headers->set('Content-Length', strlen($response->getContent()));
-            }
-        }
-
-        // read existing cache entries, remove non-varying, and add this one to the list
-        $entries = array();
-        $vary = $response->headers->get('vary');
-        foreach ($this->getMetadata($key) as $entry) {
-            if (!isset($entry[1]['vary'][0])) {
-                $entry[1]['vary'] = array('');
-            }
-
-            if ($vary != $entry[1]['vary'][0] || !$this->requestsMatch($vary, $entry[0], $storedEnv)) {
-                $entries[] = $entry;
-            }
-        }
-
-        $headers = $this->persistResponse($response);
-        unset($headers['age']);
-
-        array_unshift($entries, array($storedEnv, $headers));
-
-        if (false === $this->save($key, serialize($entries))) {
-            throw new \RuntimeException('Unable to store the metadata.');
-        }
-
-        return $key;
-    }
-
-    /**
-     * Returns content digest for $response.
-     *
-     * @param Response $response
-     *
-     * @return string
-     */
-    protected function generateContentDigest(Response $response)
-    {
-        return 'en'.hash('sha256', $response->getContent());
-    }
-
-    /**
-     * Invalidates all cache entries that match the request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @throws \RuntimeException
-     */
-    public function invalidate(Request $request)
-    {
-        $modified = false;
-        $key = $this->getCacheKey($request);
-
-        $entries = array();
-        foreach ($this->getMetadata($key) as $entry) {
-            $response = $this->restoreResponse($entry[1]);
-            if ($response->isFresh()) {
-                $response->expire();
-                $modified = true;
-                $entries[] = array($entry[0], $this->persistResponse($response));
-            } else {
-                $entries[] = $entry;
-            }
-        }
-
-        if ($modified) {
-            if (false === $this->save($key, serialize($entries))) {
-                throw new \RuntimeException('Unable to store the metadata.');
-            }
-        }
-    }
-
-    /**
-     * Determines whether two Request HTTP header sets are non-varying based on
-     * the vary response header value provided.
-     *
-     * @param string $vary A Response vary header
-     * @param array  $env1 A Request HTTP header array
-     * @param array  $env2 A Request HTTP header array
-     *
-     * @return bool true if the two environments match, false otherwise
-     */
-    private function requestsMatch($vary, $env1, $env2)
-    {
-        if (empty($vary)) {
-            return true;
-        }
-
-        foreach (preg_split('/[\s,]+/', $vary) as $header) {
-            $key = strtr(strtolower($header), '_', '-');
-            $v1 = isset($env1[$key]) ? $env1[$key] : null;
-            $v2 = isset($env2[$key]) ? $env2[$key] : null;
-            if ($v1 !== $v2) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Gets all data associated with the given key.
-     *
-     * Use this method only if you know what you are doing.
-     *
-     * @param string $key The store key
-     *
-     * @return array An array of data associated with the key
-     */
-    private function getMetadata($key)
-    {
-        if (false === $entries = $this->load($key)) {
-            return array();
-        }
-
-        return unserialize($entries);
-    }
-
-    /**
-     * Purges data for the given URL.
-     *
-     * @param string $url A URL
-     *
-     * @return bool true if the URL exists and has been purged, false otherwise
-     */
-    public function purge($url)
-    {
-        if (is_file($path = $this->getPath($this->getCacheKey(Request::create($url))))) {
-            unlink($path);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Loads data for the given key.
-     *
-     * @param string $key The store key
-     *
-     * @return string The data associated with the key
-     */
-    private function load($key)
-    {
-        $path = $this->getPath($key);
-
-        return is_file($path) ? file_get_contents($path) : false;
-    }
-
-    /**
-     * Save data for the given key.
-     *
-     * @param string $key  The store key
-     * @param string $data The data to store
-     *
-     * @return bool
-     */
-    private function save($key, $data)
-    {
-        $path = $this->getPath($key);
-        if (!is_dir(dirname($path)) && false === @mkdir(dirname($path), 0777, true)) {
-            return false;
-        }
-
-        $tmpFile = tempnam(dirname($path), basename($path));
-        if (false === $fp = @fopen($tmpFile, 'wb')) {
-            return false;
-        }
-        @fwrite($fp, $data);
-        @fclose($fp);
-
-        if ($data != file_get_contents($tmpFile)) {
-            return false;
-        }
-
-        if (false === @rename($tmpFile, $path)) {
-            return false;
-        }
-
-        @chmod($path, 0666 & ~umask());
-    }
-
-    public function getPath($key)
-    {
-        return $this->root.DIRECTORY_SEPARATOR.substr($key, 0, 2).DIRECTORY_SEPARATOR.substr($key, 2, 2).DIRECTORY_SEPARATOR.substr($key, 4, 2).DIRECTORY_SEPARATOR.substr($key, 6);
-    }
-
-    /**
-     * Generates a cache key for the given Request.
-     *
-     * This method should return a key that must only depend on a
-     * normalized version of the request URI.
-     *
-     * If the same URI can have more than one representation, based on some
-     * headers, use a Vary header to indicate them, and each representation will
-     * be stored independently under the same cache key.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return string A key for the given Request
-     */
-    protected function generateCacheKey(Request $request)
-    {
-        return 'md'.hash('sha256', $request->getUri());
-    }
-
-    /**
-     * Returns a cache key for the given Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return string A key for the given Request
-     */
-    private function getCacheKey(Request $request)
-    {
-        if (isset($this->keyCache[$request])) {
-            return $this->keyCache[$request];
-        }
-
-        return $this->keyCache[$request] = $this->generateCacheKey($request);
-    }
-
-    /**
-     * Persists the Request HTTP headers.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return array An array of HTTP headers
-     */
-    private function persistRequest(Request $request)
-    {
-        return $request->headers->all();
-    }
-
-    /**
-     * Persists the Response HTTP headers.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return array An array of HTTP headers
-     */
-    private function persistResponse(Response $response)
-    {
-        $headers = $response->headers->all();
-        $headers['X-Status'] = array($response->getStatusCode());
-
-        return $headers;
-    }
-
-    /**
-     * Restores a Response from the HTTP headers and body.
-     *
-     * @param array  $headers An array of HTTP headers for the Response
-     * @param string $body    The Response body
-     *
-     * @return Response
-     */
-    private function restoreResponse($headers, $body = null)
-    {
-        $status = $headers['X-Status'][0];
-        unset($headers['X-Status']);
-
-        if (null !== $body) {
-            $headers['X-Body-File'] = array($body);
-        }
-
-        return new Response($body, $status, $headers);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/StoreInterface.php b/core/vendor/symfony/http-kernel/HttpCache/StoreInterface.php
deleted file mode 100644
index ddc0c04..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/StoreInterface.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * This code is partially based on the Rack-Cache library by Ryan Tomayko,
- * which is released under the MIT license.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Interface implemented by HTTP cache stores.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface StoreInterface
-{
-    /**
-     * Locates a cached Response for the Request provided.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return Response|null A Response instance, or null if no cache entry was found
-     */
-    public function lookup(Request $request);
-
-    /**
-     * Writes a cache entry to the store for the given Request and Response.
-     *
-     * Existing entries are read and any that match the response are removed. This
-     * method calls write with the new list of cache entries.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     *
-     * @return string The key under which the response is stored
-     */
-    public function write(Request $request, Response $response);
-
-    /**
-     * Invalidates all cache entries that match the request.
-     *
-     * @param Request $request A Request instance
-     */
-    public function invalidate(Request $request);
-
-    /**
-     * Locks the cache for a given Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool|string true if the lock is acquired, the path to the current lock otherwise
-     */
-    public function lock(Request $request);
-
-    /**
-     * Releases the lock for the given Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool False if the lock file does not exist or cannot be unlocked, true otherwise
-     */
-    public function unlock(Request $request);
-
-    /**
-     * Returns whether or not a lock exists.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool true if lock exists, false otherwise
-     */
-    public function isLocked(Request $request);
-
-    /**
-     * Purges data for the given URL.
-     *
-     * @param string $url A URL
-     *
-     * @return bool true if the URL exists and has been purged, false otherwise
-     */
-    public function purge($url);
-
-    /**
-     * Cleanups storage.
-     */
-    public function cleanup();
-}
diff --git a/core/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php b/core/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php
deleted file mode 100644
index 46b788d..0000000
--- a/core/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-interface SurrogateInterface
-{
-    /**
-     * Returns surrogate name
-     *
-     * @return string
-     */
-    public function getName();
-
-    /**
-     * Returns a new cache strategy instance.
-     *
-     * @return ResponseCacheStrategyInterface A ResponseCacheStrategyInterface instance
-     */
-    public function createCacheStrategy();
-
-    /**
-     * Checks that at least one surrogate has Surrogate capability.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return bool true if one surrogate has Surrogate capability, false otherwise
-     */
-    public function hasSurrogateCapability(Request $request);
-
-    /**
-     * Adds Surrogate-capability to the given Request.
-     *
-     * @param Request $request A Request instance
-     */
-    public function addSurrogateCapability(Request $request);
-
-    /**
-     * Adds HTTP headers to specify that the Response needs to be parsed for Surrogate.
-     *
-     * This method only adds an Surrogate HTTP header if the Response has some Surrogate tags.
-     *
-     * @param Response $response A Response instance
-     */
-    public function addSurrogateControl(Response $response);
-
-    /**
-     * Checks that the Response needs to be parsed for Surrogate tags.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return bool true if the Response needs to be parsed, false otherwise
-     */
-    public function needsParsing(Response $response);
-
-    /**
-     * Renders a Surrogate tag.
-     *
-     * @param string $uri          A URI
-     * @param string $alt          An alternate URI
-     * @param bool   $ignoreErrors Whether to ignore errors or not
-     * @param string $comment      A comment to add as an esi:include tag
-     *
-     * @return string
-     */
-    public function renderIncludeTag($uri, $alt = null, $ignoreErrors = true, $comment = '');
-
-    /**
-     * Replaces a Response Surrogate tags with the included resource content.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     *
-     * @return Response
-     */
-    public function process(Request $request, Response $response);
-
-    /**
-     * Handles a Surrogate from the cache.
-     *
-     * @param HttpCache $cache        An HttpCache instance
-     * @param string    $uri          The main URI
-     * @param string    $alt          An alternative URI
-     * @param bool      $ignoreErrors Whether to ignore errors or not
-     *
-     * @return string
-     *
-     * @throws \RuntimeException
-     * @throws \Exception
-     */
-    public function handle(HttpCache $cache, $uri, $alt, $ignoreErrors);
-}
diff --git a/core/vendor/symfony/http-kernel/HttpKernel.php b/core/vendor/symfony/http-kernel/HttpKernel.php
deleted file mode 100644
index 473f780..0000000
--- a/core/vendor/symfony/http-kernel/HttpKernel.php
+++ /dev/null
@@ -1,293 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
-use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
-use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
-use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\HttpKernel\Event\PostResponseEvent;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-/**
- * HttpKernel notifies events to convert a Request object to a Response one.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class HttpKernel implements HttpKernelInterface, TerminableInterface
-{
-    protected $dispatcher;
-    protected $resolver;
-    protected $requestStack;
-
-    /**
-     * Constructor.
-     *
-     * @param EventDispatcherInterface    $dispatcher   An EventDispatcherInterface instance
-     * @param ControllerResolverInterface $resolver     A ControllerResolverInterface instance
-     * @param RequestStack                $requestStack A stack for master/sub requests
-     *
-     * @api
-     */
-    public function __construct(EventDispatcherInterface $dispatcher, ControllerResolverInterface $resolver, RequestStack $requestStack = null)
-    {
-        $this->dispatcher = $dispatcher;
-        $this->resolver = $resolver;
-        $this->requestStack = $requestStack ?: new RequestStack();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        $request->headers->set('X-Php-Ob-Level', ob_get_level());
-
-        try {
-            return $this->handleRaw($request, $type);
-        } catch (\Exception $e) {
-            if (false === $catch) {
-                $this->finishRequest($request, $type);
-
-                throw $e;
-            }
-
-            return $this->handleException($e, $request, $type);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function terminate(Request $request, Response $response)
-    {
-        $this->dispatcher->dispatch(KernelEvents::TERMINATE, new PostResponseEvent($this, $request, $response));
-    }
-
-    /**
-     * @throws \LogicException If the request stack is empty
-     *
-     * @internal
-     */
-    public function terminateWithException(\Exception $exception)
-    {
-        if (!$request = $this->requestStack->getMasterRequest()) {
-            throw new \LogicException('Request stack is empty', 0, $exception);
-        }
-
-        $response = $this->handleException($exception, $request, self::MASTER_REQUEST);
-
-        $response->sendHeaders();
-        $response->sendContent();
-
-        $this->terminate($request, $response);
-    }
-
-    /**
-     * Handles a request to convert it to a response.
-     *
-     * Exceptions are not caught.
-     *
-     * @param Request $request A Request instance
-     * @param int     $type    The type of the request (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)
-     *
-     * @return Response A Response instance
-     *
-     * @throws \LogicException       If one of the listener does not behave as expected
-     * @throws NotFoundHttpException When controller cannot be found
-     */
-    private function handleRaw(Request $request, $type = self::MASTER_REQUEST)
-    {
-        $this->requestStack->push($request);
-
-        // request
-        $event = new GetResponseEvent($this, $request, $type);
-        $this->dispatcher->dispatch(KernelEvents::REQUEST, $event);
-
-        if ($event->hasResponse()) {
-            return $this->filterResponse($event->getResponse(), $request, $type);
-        }
-
-        // load controller
-        if (false === $controller = $this->resolver->getController($request)) {
-            throw new NotFoundHttpException(sprintf('Unable to find the controller for path "%s". The route is wrongly configured.', $request->getPathInfo()));
-        }
-
-        $event = new FilterControllerEvent($this, $controller, $request, $type);
-        $this->dispatcher->dispatch(KernelEvents::CONTROLLER, $event);
-        $controller = $event->getController();
-
-        // controller arguments
-        $arguments = $this->resolver->getArguments($request, $controller);
-
-        // call controller
-        $response = call_user_func_array($controller, $arguments);
-
-        // view
-        if (!$response instanceof Response) {
-            $event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
-            $this->dispatcher->dispatch(KernelEvents::VIEW, $event);
-
-            if ($event->hasResponse()) {
-                $response = $event->getResponse();
-            }
-
-            if (!$response instanceof Response) {
-                $msg = sprintf('The controller must return a response (%s given).', $this->varToString($response));
-
-                // the user may have forgotten to return something
-                if (null === $response) {
-                    $msg .= ' Did you forget to add a return statement somewhere in your controller?';
-                }
-                throw new \LogicException($msg);
-            }
-        }
-
-        return $this->filterResponse($response, $request, $type);
-    }
-
-    /**
-     * Filters a response object.
-     *
-     * @param Response $response A Response instance
-     * @param Request  $request  An error message in case the response is not a Response object
-     * @param int      $type     The type of the request (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)
-     *
-     * @return Response The filtered Response instance
-     *
-     * @throws \RuntimeException if the passed object is not a Response instance
-     */
-    private function filterResponse(Response $response, Request $request, $type)
-    {
-        $event = new FilterResponseEvent($this, $request, $type, $response);
-
-        $this->dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->finishRequest($request, $type);
-
-        return $event->getResponse();
-    }
-
-    /**
-     * Publishes the finish request event, then pop the request from the stack.
-     *
-     * Note that the order of the operations is important here, otherwise
-     * operations such as {@link RequestStack::getParentRequest()} can lead to
-     * weird results.
-     *
-     * @param Request $request
-     * @param int     $type
-     */
-    private function finishRequest(Request $request, $type)
-    {
-        $this->dispatcher->dispatch(KernelEvents::FINISH_REQUEST, new FinishRequestEvent($this, $request, $type));
-        $this->requestStack->pop();
-    }
-
-    /**
-     * Handles an exception by trying to convert it to a Response.
-     *
-     * @param \Exception $e       An \Exception instance
-     * @param Request    $request A Request instance
-     * @param int        $type    The type of the request
-     *
-     * @return Response A Response instance
-     *
-     * @throws \Exception
-     */
-    private function handleException(\Exception $e, $request, $type)
-    {
-        $event = new GetResponseForExceptionEvent($this, $request, $type, $e);
-        $this->dispatcher->dispatch(KernelEvents::EXCEPTION, $event);
-
-        // a listener might have replaced the exception
-        $e = $event->getException();
-
-        if (!$event->hasResponse()) {
-            $this->finishRequest($request, $type);
-
-            throw $e;
-        }
-
-        $response = $event->getResponse();
-
-        // the developer asked for a specific status code
-        if ($response->headers->has('X-Status-Code')) {
-            $response->setStatusCode($response->headers->get('X-Status-Code'));
-
-            $response->headers->remove('X-Status-Code');
-        } elseif (!$response->isClientError() && !$response->isServerError() && !$response->isRedirect()) {
-            // ensure that we actually have an error response
-            if ($e instanceof HttpExceptionInterface) {
-                // keep the HTTP status code and headers
-                $response->setStatusCode($e->getStatusCode());
-                $response->headers->add($e->getHeaders());
-            } else {
-                $response->setStatusCode(500);
-            }
-        }
-
-        try {
-            return $this->filterResponse($response, $request, $type);
-        } catch (\Exception $e) {
-            return $response;
-        }
-    }
-
-    private function varToString($var)
-    {
-        if (is_object($var)) {
-            return sprintf('Object(%s)', get_class($var));
-        }
-
-        if (is_array($var)) {
-            $a = array();
-            foreach ($var as $k => $v) {
-                $a[] = sprintf('%s => %s', $k, $this->varToString($v));
-            }
-
-            return sprintf('Array(%s)', implode(', ', $a));
-        }
-
-        if (is_resource($var)) {
-            return sprintf('Resource(%s)', get_resource_type($var));
-        }
-
-        if (null === $var) {
-            return 'null';
-        }
-
-        if (false === $var) {
-            return 'false';
-        }
-
-        if (true === $var) {
-            return 'true';
-        }
-
-        return (string) $var;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/HttpKernelInterface.php b/core/vendor/symfony/http-kernel/HttpKernelInterface.php
deleted file mode 100644
index d09da6b..0000000
--- a/core/vendor/symfony/http-kernel/HttpKernelInterface.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * HttpKernelInterface handles a Request to convert it to a Response.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface HttpKernelInterface
-{
-    const MASTER_REQUEST = 1;
-    const SUB_REQUEST = 2;
-
-    /**
-     * Handles a Request to convert it to a Response.
-     *
-     * When $catch is true, the implementation must catch all exceptions
-     * and do its best to convert them to a Response instance.
-     *
-     * @param Request $request A Request instance
-     * @param int     $type    The type of the request
-     *                         (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)
-     * @param bool    $catch   Whether to catch exceptions or not
-     *
-     * @return Response A Response instance
-     *
-     * @throws \Exception When an Exception occurs during processing
-     *
-     * @api
-     */
-    public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true);
-}
diff --git a/core/vendor/symfony/http-kernel/Kernel.php b/core/vendor/symfony/http-kernel/Kernel.php
deleted file mode 100644
index ccb89da..0000000
--- a/core/vendor/symfony/http-kernel/Kernel.php
+++ /dev/null
@@ -1,797 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-use Symfony\Bridge\ProxyManager\LazyProxy\Instantiator\RuntimeInstantiator;
-use Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\ProxyDumper;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
-use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
-use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
-use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
-use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Bundle\BundleInterface;
-use Symfony\Component\HttpKernel\Config\EnvParametersResource;
-use Symfony\Component\HttpKernel\Config\FileLocator;
-use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
-use Symfony\Component\HttpKernel\DependencyInjection\AddClassesToCachePass;
-use Symfony\Component\Config\Loader\LoaderResolver;
-use Symfony\Component\Config\Loader\DelegatingLoader;
-use Symfony\Component\Config\ConfigCache;
-use Symfony\Component\ClassLoader\ClassCollectionLoader;
-
-/**
- * The Kernel is the heart of the Symfony system.
- *
- * It manages an environment made of bundles.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class Kernel implements KernelInterface, TerminableInterface
-{
-    /**
-     * @var BundleInterface[]
-     */
-    protected $bundles = array();
-
-    protected $bundleMap;
-    protected $container;
-    protected $rootDir;
-    protected $environment;
-    protected $debug;
-    protected $booted = false;
-    protected $name;
-    protected $startTime;
-    protected $loadClassCache;
-
-    const VERSION = '2.7.3';
-    const VERSION_ID = '20703';
-    const MAJOR_VERSION = '2';
-    const MINOR_VERSION = '7';
-    const RELEASE_VERSION = '3';
-    const EXTRA_VERSION = '';
-
-    const END_OF_MAINTENANCE = '05/2018';
-    const END_OF_LIFE = '05/2019';
-
-    /**
-     * Constructor.
-     *
-     * @param string $environment The environment
-     * @param bool   $debug       Whether to enable debugging or not
-     *
-     * @api
-     */
-    public function __construct($environment, $debug)
-    {
-        $this->environment = $environment;
-        $this->debug = (bool) $debug;
-        $this->rootDir = $this->getRootDir();
-        $this->name = $this->getName();
-
-        if ($this->debug) {
-            $this->startTime = microtime(true);
-        }
-
-        $defClass = new \ReflectionMethod($this, 'init');
-        $defClass = $defClass->getDeclaringClass()->name;
-
-        if (__CLASS__ !== $defClass) {
-            @trigger_error(sprintf('Calling the %s::init() method is deprecated since version 2.3 and will be removed in 3.0. Move your logic to the constructor method instead.', $defClass), E_USER_DEPRECATED);
-            $this->init();
-        }
-    }
-
-    /**
-     * @deprecated since version 2.3, to be removed in 3.0. Move your logic in the constructor instead.
-     */
-    public function init()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0. Move your logic to the constructor method instead.', E_USER_DEPRECATED);
-    }
-
-    public function __clone()
-    {
-        if ($this->debug) {
-            $this->startTime = microtime(true);
-        }
-
-        $this->booted = false;
-        $this->container = null;
-    }
-
-    /**
-     * Boots the current kernel.
-     *
-     * @api
-     */
-    public function boot()
-    {
-        if (true === $this->booted) {
-            return;
-        }
-
-        if ($this->loadClassCache) {
-            $this->doLoadClassCache($this->loadClassCache[0], $this->loadClassCache[1]);
-        }
-
-        // init bundles
-        $this->initializeBundles();
-
-        // init container
-        $this->initializeContainer();
-
-        foreach ($this->getBundles() as $bundle) {
-            $bundle->setContainer($this->container);
-            $bundle->boot();
-        }
-
-        $this->booted = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function terminate(Request $request, Response $response)
-    {
-        if (false === $this->booted) {
-            return;
-        }
-
-        if ($this->getHttpKernel() instanceof TerminableInterface) {
-            $this->getHttpKernel()->terminate($request, $response);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function shutdown()
-    {
-        if (false === $this->booted) {
-            return;
-        }
-
-        $this->booted = false;
-
-        foreach ($this->getBundles() as $bundle) {
-            $bundle->shutdown();
-            $bundle->setContainer(null);
-        }
-
-        $this->container = null;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
-    {
-        if (false === $this->booted) {
-            $this->boot();
-        }
-
-        return $this->getHttpKernel()->handle($request, $type, $catch);
-    }
-
-    /**
-     * Gets a HTTP kernel from the container.
-     *
-     * @return HttpKernel
-     */
-    protected function getHttpKernel()
-    {
-        return $this->container->get('http_kernel');
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getBundles()
-    {
-        return $this->bundles;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     *
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function isClassInActiveBundle($class)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in version 3.0.', E_USER_DEPRECATED);
-
-        foreach ($this->getBundles() as $bundle) {
-            if (0 === strpos($class, $bundle->getNamespace())) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getBundle($name, $first = true)
-    {
-        if (!isset($this->bundleMap[$name])) {
-            throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() method of your %s.php file?', $name, get_class($this)));
-        }
-
-        if (true === $first) {
-            return $this->bundleMap[$name][0];
-        }
-
-        return $this->bundleMap[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws \RuntimeException if a custom resource is hidden by a resource in a derived bundle
-     */
-    public function locateResource($name, $dir = null, $first = true)
-    {
-        if ('@' !== $name[0]) {
-            throw new \InvalidArgumentException(sprintf('A resource name must start with @ ("%s" given).', $name));
-        }
-
-        if (false !== strpos($name, '..')) {
-            throw new \RuntimeException(sprintf('File name "%s" contains invalid characters (..).', $name));
-        }
-
-        $bundleName = substr($name, 1);
-        $path = '';
-        if (false !== strpos($bundleName, '/')) {
-            list($bundleName, $path) = explode('/', $bundleName, 2);
-        }
-
-        $isResource = 0 === strpos($path, 'Resources') && null !== $dir;
-        $overridePath = substr($path, 9);
-        $resourceBundle = null;
-        $bundles = $this->getBundle($bundleName, false);
-        $files = array();
-
-        foreach ($bundles as $bundle) {
-            if ($isResource && file_exists($file = $dir.'/'.$bundle->getName().$overridePath)) {
-                if (null !== $resourceBundle) {
-                    throw new \RuntimeException(sprintf('"%s" resource is hidden by a resource from the "%s" derived bundle. Create a "%s" file to override the bundle resource.',
-                        $file,
-                        $resourceBundle,
-                        $dir.'/'.$bundles[0]->getName().$overridePath
-                    ));
-                }
-
-                if ($first) {
-                    return $file;
-                }
-                $files[] = $file;
-            }
-
-            if (file_exists($file = $bundle->getPath().'/'.$path)) {
-                if ($first && !$isResource) {
-                    return $file;
-                }
-                $files[] = $file;
-                $resourceBundle = $bundle->getName();
-            }
-        }
-
-        if (count($files) > 0) {
-            return $first && $isResource ? $files[0] : $files;
-        }
-
-        throw new \InvalidArgumentException(sprintf('Unable to find file "%s".', $name));
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getName()
-    {
-        if (null === $this->name) {
-            $this->name = preg_replace('/[^a-zA-Z0-9_]+/', '', basename($this->rootDir));
-        }
-
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getEnvironment()
-    {
-        return $this->environment;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function isDebug()
-    {
-        return $this->debug;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getRootDir()
-    {
-        if (null === $this->rootDir) {
-            $r = new \ReflectionObject($this);
-            $this->rootDir = str_replace('\\', '/', dirname($r->getFileName()));
-        }
-
-        return $this->rootDir;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getContainer()
-    {
-        return $this->container;
-    }
-
-    /**
-     * Loads the PHP class cache.
-     *
-     * This methods only registers the fact that you want to load the cache classes.
-     * The cache will actually only be loaded when the Kernel is booted.
-     *
-     * That optimization is mainly useful when using the HttpCache class in which
-     * case the class cache is not loaded if the Response is in the cache.
-     *
-     * @param string $name      The cache name prefix
-     * @param string $extension File extension of the resulting file
-     */
-    public function loadClassCache($name = 'classes', $extension = '.php')
-    {
-        $this->loadClassCache = array($name, $extension);
-    }
-
-    /**
-     * Used internally.
-     */
-    public function setClassCache(array $classes)
-    {
-        file_put_contents($this->getCacheDir().'/classes.map', sprintf('<?php return %s;', var_export($classes, true)));
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getStartTime()
-    {
-        return $this->debug ? $this->startTime : -INF;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getCacheDir()
-    {
-        return $this->rootDir.'/cache/'.$this->environment;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getLogDir()
-    {
-        return $this->rootDir.'/logs';
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getCharset()
-    {
-        return 'UTF-8';
-    }
-
-    protected function doLoadClassCache($name, $extension)
-    {
-        if (!$this->booted && is_file($this->getCacheDir().'/classes.map')) {
-            ClassCollectionLoader::load(include($this->getCacheDir().'/classes.map'), $this->getCacheDir(), $name, $this->debug, false, $extension);
-        }
-    }
-
-    /**
-     * Initializes the data structures related to the bundle management.
-     *
-     *  - the bundles property maps a bundle name to the bundle instance,
-     *  - the bundleMap property maps a bundle name to the bundle inheritance hierarchy (most derived bundle first).
-     *
-     * @throws \LogicException if two bundles share a common name
-     * @throws \LogicException if a bundle tries to extend a non-registered bundle
-     * @throws \LogicException if a bundle tries to extend itself
-     * @throws \LogicException if two bundles extend the same ancestor
-     */
-    protected function initializeBundles()
-    {
-        // init bundles
-        $this->bundles = array();
-        $topMostBundles = array();
-        $directChildren = array();
-
-        foreach ($this->registerBundles() as $bundle) {
-            $name = $bundle->getName();
-            if (isset($this->bundles[$name])) {
-                throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s"', $name));
-            }
-            $this->bundles[$name] = $bundle;
-
-            if ($parentName = $bundle->getParent()) {
-                if (isset($directChildren[$parentName])) {
-                    throw new \LogicException(sprintf('Bundle "%s" is directly extended by two bundles "%s" and "%s".', $parentName, $name, $directChildren[$parentName]));
-                }
-                if ($parentName == $name) {
-                    throw new \LogicException(sprintf('Bundle "%s" can not extend itself.', $name));
-                }
-                $directChildren[$parentName] = $name;
-            } else {
-                $topMostBundles[$name] = $bundle;
-            }
-        }
-
-        // look for orphans
-        if (!empty($directChildren) && count($diff = array_diff_key($directChildren, $this->bundles))) {
-            $diff = array_keys($diff);
-
-            throw new \LogicException(sprintf('Bundle "%s" extends bundle "%s", which is not registered.', $directChildren[$diff[0]], $diff[0]));
-        }
-
-        // inheritance
-        $this->bundleMap = array();
-        foreach ($topMostBundles as $name => $bundle) {
-            $bundleMap = array($bundle);
-            $hierarchy = array($name);
-
-            while (isset($directChildren[$name])) {
-                $name = $directChildren[$name];
-                array_unshift($bundleMap, $this->bundles[$name]);
-                $hierarchy[] = $name;
-            }
-
-            foreach ($hierarchy as $bundle) {
-                $this->bundleMap[$bundle] = $bundleMap;
-                array_pop($bundleMap);
-            }
-        }
-    }
-
-    /**
-     * Gets the container class.
-     *
-     * @return string The container class
-     */
-    protected function getContainerClass()
-    {
-        return $this->name.ucfirst($this->environment).($this->debug ? 'Debug' : '').'ProjectContainer';
-    }
-
-    /**
-     * Gets the container's base class.
-     *
-     * All names except Container must be fully qualified.
-     *
-     * @return string
-     */
-    protected function getContainerBaseClass()
-    {
-        return 'Container';
-    }
-
-    /**
-     * Initializes the service container.
-     *
-     * The cached version of the service container is used when fresh, otherwise the
-     * container is built.
-     */
-    protected function initializeContainer()
-    {
-        $class = $this->getContainerClass();
-        $cache = new ConfigCache($this->getCacheDir().'/'.$class.'.php', $this->debug);
-        $fresh = true;
-        if (!$cache->isFresh()) {
-            $container = $this->buildContainer();
-            $container->compile();
-            $this->dumpContainer($cache, $container, $class, $this->getContainerBaseClass());
-
-            $fresh = false;
-        }
-
-        require_once $cache->getPath();
-
-        $this->container = new $class();
-        $this->container->set('kernel', $this);
-
-        if (!$fresh && $this->container->has('cache_warmer')) {
-            $this->container->get('cache_warmer')->warmUp($this->container->getParameter('kernel.cache_dir'));
-        }
-    }
-
-    /**
-     * Returns the kernel parameters.
-     *
-     * @return array An array of kernel parameters
-     */
-    protected function getKernelParameters()
-    {
-        $bundles = array();
-        foreach ($this->bundles as $name => $bundle) {
-            $bundles[$name] = get_class($bundle);
-        }
-
-        return array_merge(
-            array(
-                'kernel.root_dir' => realpath($this->rootDir) ?: $this->rootDir,
-                'kernel.environment' => $this->environment,
-                'kernel.debug' => $this->debug,
-                'kernel.name' => $this->name,
-                'kernel.cache_dir' => realpath($this->getCacheDir()) ?: $this->getCacheDir(),
-                'kernel.logs_dir' => realpath($this->getLogDir()) ?: $this->getLogDir(),
-                'kernel.bundles' => $bundles,
-                'kernel.charset' => $this->getCharset(),
-                'kernel.container_class' => $this->getContainerClass(),
-            ),
-            $this->getEnvParameters()
-        );
-    }
-
-    /**
-     * Gets the environment parameters.
-     *
-     * Only the parameters starting with "SYMFONY__" are considered.
-     *
-     * @return array An array of parameters
-     */
-    protected function getEnvParameters()
-    {
-        $parameters = array();
-        foreach ($_SERVER as $key => $value) {
-            if (0 === strpos($key, 'SYMFONY__')) {
-                $parameters[strtolower(str_replace('__', '.', substr($key, 9)))] = $value;
-            }
-        }
-
-        return $parameters;
-    }
-
-    /**
-     * Builds the service container.
-     *
-     * @return ContainerBuilder The compiled service container
-     *
-     * @throws \RuntimeException
-     */
-    protected function buildContainer()
-    {
-        foreach (array('cache' => $this->getCacheDir(), 'logs' => $this->getLogDir()) as $name => $dir) {
-            if (!is_dir($dir)) {
-                if (false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
-                    throw new \RuntimeException(sprintf("Unable to create the %s directory (%s)\n", $name, $dir));
-                }
-            } elseif (!is_writable($dir)) {
-                throw new \RuntimeException(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
-            }
-        }
-
-        $container = $this->getContainerBuilder();
-        $container->addObjectResource($this);
-        $this->prepareContainer($container);
-
-        if (null !== $cont = $this->registerContainerConfiguration($this->getContainerLoader($container))) {
-            $container->merge($cont);
-        }
-
-        $container->addCompilerPass(new AddClassesToCachePass($this));
-        $container->addResource(new EnvParametersResource('SYMFONY__'));
-
-        return $container;
-    }
-
-    /**
-     * Prepares the ContainerBuilder before it is compiled.
-     *
-     * @param ContainerBuilder $container A ContainerBuilder instance
-     */
-    protected function prepareContainer(ContainerBuilder $container)
-    {
-        $extensions = array();
-        foreach ($this->bundles as $bundle) {
-            if ($extension = $bundle->getContainerExtension()) {
-                $container->registerExtension($extension);
-                $extensions[] = $extension->getAlias();
-            }
-
-            if ($this->debug) {
-                $container->addObjectResource($bundle);
-            }
-        }
-        foreach ($this->bundles as $bundle) {
-            $bundle->build($container);
-        }
-
-        // ensure these extensions are implicitly loaded
-        $container->getCompilerPassConfig()->setMergePass(new MergeExtensionConfigurationPass($extensions));
-    }
-
-    /**
-     * Gets a new ContainerBuilder instance used to build the service container.
-     *
-     * @return ContainerBuilder
-     */
-    protected function getContainerBuilder()
-    {
-        $container = new ContainerBuilder(new ParameterBag($this->getKernelParameters()));
-
-        if (class_exists('ProxyManager\Configuration') && class_exists('Symfony\Bridge\ProxyManager\LazyProxy\Instantiator\RuntimeInstantiator')) {
-            $container->setProxyInstantiator(new RuntimeInstantiator());
-        }
-
-        return $container;
-    }
-
-    /**
-     * Dumps the service container to PHP code in the cache.
-     *
-     * @param ConfigCache      $cache     The config cache
-     * @param ContainerBuilder $container The service container
-     * @param string           $class     The name of the class to generate
-     * @param string           $baseClass The name of the container's base class
-     */
-    protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container, $class, $baseClass)
-    {
-        // cache the container
-        $dumper = new PhpDumper($container);
-
-        if (class_exists('ProxyManager\Configuration') && class_exists('Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\ProxyDumper')) {
-            $dumper->setProxyDumper(new ProxyDumper(md5($cache->getPath())));
-        }
-
-        $content = $dumper->dump(array('class' => $class, 'base_class' => $baseClass, 'file' => $cache->getPath()));
-        if (!$this->debug) {
-            $content = static::stripComments($content);
-        }
-
-        $cache->write($content, $container->getResources());
-    }
-
-    /**
-     * Returns a loader for the container.
-     *
-     * @param ContainerInterface $container The service container
-     *
-     * @return DelegatingLoader The loader
-     */
-    protected function getContainerLoader(ContainerInterface $container)
-    {
-        $locator = new FileLocator($this);
-        $resolver = new LoaderResolver(array(
-            new XmlFileLoader($container, $locator),
-            new YamlFileLoader($container, $locator),
-            new IniFileLoader($container, $locator),
-            new PhpFileLoader($container, $locator),
-            new ClosureLoader($container),
-        ));
-
-        return new DelegatingLoader($resolver);
-    }
-
-    /**
-     * Removes comments from a PHP source string.
-     *
-     * We don't use the PHP php_strip_whitespace() function
-     * as we want the content to be readable and well-formatted.
-     *
-     * @param string $source A PHP string
-     *
-     * @return string The PHP string with the comments removed
-     */
-    public static function stripComments($source)
-    {
-        if (!function_exists('token_get_all')) {
-            return $source;
-        }
-
-        $rawChunk = '';
-        $output = '';
-        $tokens = token_get_all($source);
-        $ignoreSpace = false;
-        for (reset($tokens); false !== $token = current($tokens); next($tokens)) {
-            if (is_string($token)) {
-                $rawChunk .= $token;
-            } elseif (T_START_HEREDOC === $token[0]) {
-                $output .= $rawChunk.$token[1];
-                do {
-                    $token = next($tokens);
-                    $output .= $token[1];
-                } while ($token[0] !== T_END_HEREDOC);
-                $rawChunk = '';
-            } elseif (T_WHITESPACE === $token[0]) {
-                if ($ignoreSpace) {
-                    $ignoreSpace = false;
-
-                    continue;
-                }
-
-                // replace multiple new lines with a single newline
-                $rawChunk .= preg_replace(array('/\n{2,}/S'), "\n", $token[1]);
-            } elseif (in_array($token[0], array(T_COMMENT, T_DOC_COMMENT))) {
-                $ignoreSpace = true;
-            } else {
-                $rawChunk .= $token[1];
-
-                // The PHP-open tag already has a new-line
-                if (T_OPEN_TAG === $token[0]) {
-                    $ignoreSpace = true;
-                }
-            }
-        }
-
-        $output .= $rawChunk;
-
-        return $output;
-    }
-
-    public function serialize()
-    {
-        return serialize(array($this->environment, $this->debug));
-    }
-
-    public function unserialize($data)
-    {
-        list($environment, $debug) = unserialize($data);
-
-        $this->__construct($environment, $debug);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/KernelEvents.php b/core/vendor/symfony/http-kernel/KernelEvents.php
deleted file mode 100644
index e259af5..0000000
--- a/core/vendor/symfony/http-kernel/KernelEvents.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-/**
- * Contains all events thrown in the HttpKernel component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-final class KernelEvents
-{
-    /**
-     * The REQUEST event occurs at the very beginning of request
-     * dispatching.
-     *
-     * This event allows you to create a response for a request before any
-     * other code in the framework is executed. The event listener method
-     * receives a Symfony\Component\HttpKernel\Event\GetResponseEvent
-     * instance.
-     *
-     * @Event
-     *
-     * @var string
-     *
-     * @api
-     */
-    const REQUEST = 'kernel.request';
-
-    /**
-     * The EXCEPTION event occurs when an uncaught exception appears.
-     *
-     * This event allows you to create a response for a thrown exception or
-     * to modify the thrown exception. The event listener method receives
-     * a Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent
-     * instance.
-     *
-     * @Event
-     *
-     * @var string
-     *
-     * @api
-     */
-    const EXCEPTION = 'kernel.exception';
-
-    /**
-     * The VIEW event occurs when the return value of a controller
-     * is not a Response instance.
-     *
-     * This event allows you to create a response for the return value of the
-     * controller. The event listener method receives a
-     * Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent
-     * instance.
-     *
-     * @Event
-     *
-     * @var string
-     *
-     * @api
-     */
-    const VIEW = 'kernel.view';
-
-    /**
-     * The CONTROLLER event occurs once a controller was found for
-     * handling a request.
-     *
-     * This event allows you to change the controller that will handle the
-     * request. The event listener method receives a
-     * Symfony\Component\HttpKernel\Event\FilterControllerEvent instance.
-     *
-     * @Event
-     *
-     * @var string
-     *
-     * @api
-     */
-    const CONTROLLER = 'kernel.controller';
-
-    /**
-     * The RESPONSE event occurs once a response was created for
-     * replying to a request.
-     *
-     * This event allows you to modify or replace the response that will be
-     * replied. The event listener method receives a
-     * Symfony\Component\HttpKernel\Event\FilterResponseEvent instance.
-     *
-     * @Event
-     *
-     * @var string
-     *
-     * @api
-     */
-    const RESPONSE = 'kernel.response';
-
-    /**
-     * The TERMINATE event occurs once a response was sent.
-     *
-     * This event allows you to run expensive post-response jobs.
-     * The event listener method receives a
-     * Symfony\Component\HttpKernel\Event\PostResponseEvent instance.
-     *
-     * @Event
-     *
-     * @var string
-     */
-    const TERMINATE = 'kernel.terminate';
-
-    /**
-     * The FINISH_REQUEST event occurs when a response was generated for a request.
-     *
-     * This event allows you to reset the global and environmental state of
-     * the application, when it was changed during the request.
-     *
-     * @var string
-     */
-    const FINISH_REQUEST = 'kernel.finish_request';
-}
diff --git a/core/vendor/symfony/http-kernel/KernelInterface.php b/core/vendor/symfony/http-kernel/KernelInterface.php
deleted file mode 100644
index 06c3c0c..0000000
--- a/core/vendor/symfony/http-kernel/KernelInterface.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\HttpKernel\Bundle\BundleInterface;
-use Symfony\Component\Config\Loader\LoaderInterface;
-
-/**
- * The Kernel is the heart of the Symfony system.
- *
- * It manages an environment made of bundles.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface KernelInterface extends HttpKernelInterface, \Serializable
-{
-    /**
-     * Returns an array of bundles to register.
-     *
-     * @return BundleInterface[] An array of bundle instances.
-     *
-     * @api
-     */
-    public function registerBundles();
-
-    /**
-     * Loads the container configuration.
-     *
-     * @param LoaderInterface $loader A LoaderInterface instance
-     *
-     * @api
-     */
-    public function registerContainerConfiguration(LoaderInterface $loader);
-
-    /**
-     * Boots the current kernel.
-     *
-     * @api
-     */
-    public function boot();
-
-    /**
-     * Shutdowns the kernel.
-     *
-     * This method is mainly useful when doing functional testing.
-     *
-     * @api
-     */
-    public function shutdown();
-
-    /**
-     * Gets the registered bundle instances.
-     *
-     * @return BundleInterface[] An array of registered bundle instances
-     *
-     * @api
-     */
-    public function getBundles();
-
-    /**
-     * Checks if a given class name belongs to an active bundle.
-     *
-     * @param string $class A class name
-     *
-     * @return bool true if the class belongs to an active bundle, false otherwise
-     *
-     * @api
-     *
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    public function isClassInActiveBundle($class);
-
-    /**
-     * Returns a bundle and optionally its descendants by its name.
-     *
-     * @param string $name  Bundle name
-     * @param bool   $first Whether to return the first bundle only or together with its descendants
-     *
-     * @return BundleInterface|BundleInterface[] A BundleInterface instance or an array of BundleInterface instances if $first is false
-     *
-     * @throws \InvalidArgumentException when the bundle is not enabled
-     *
-     * @api
-     */
-    public function getBundle($name, $first = true);
-
-    /**
-     * Returns the file path for a given resource.
-     *
-     * A Resource can be a file or a directory.
-     *
-     * The resource name must follow the following pattern:
-     *
-     *     "@BundleName/path/to/a/file.something"
-     *
-     * where BundleName is the name of the bundle
-     * and the remaining part is the relative path in the bundle.
-     *
-     * If $dir is passed, and the first segment of the path is "Resources",
-     * this method will look for a file named:
-     *
-     *     $dir/<BundleName>/path/without/Resources
-     *
-     * before looking in the bundle resource folder.
-     *
-     * @param string $name  A resource name to locate
-     * @param string $dir   A directory where to look for the resource first
-     * @param bool   $first Whether to return the first path or paths for all matching bundles
-     *
-     * @return string|array The absolute path of the resource or an array if $first is false
-     *
-     * @throws \InvalidArgumentException if the file cannot be found or the name is not valid
-     * @throws \RuntimeException         if the name contains invalid/unsafe characters
-     *
-     * @api
-     */
-    public function locateResource($name, $dir = null, $first = true);
-
-    /**
-     * Gets the name of the kernel.
-     *
-     * @return string The kernel name
-     *
-     * @api
-     */
-    public function getName();
-
-    /**
-     * Gets the environment.
-     *
-     * @return string The current environment
-     *
-     * @api
-     */
-    public function getEnvironment();
-
-    /**
-     * Checks if debug mode is enabled.
-     *
-     * @return bool true if debug mode is enabled, false otherwise
-     *
-     * @api
-     */
-    public function isDebug();
-
-    /**
-     * Gets the application root dir.
-     *
-     * @return string The application root dir
-     *
-     * @api
-     */
-    public function getRootDir();
-
-    /**
-     * Gets the current container.
-     *
-     * @return ContainerInterface A ContainerInterface instance
-     *
-     * @api
-     */
-    public function getContainer();
-
-    /**
-     * Gets the request start time (not available if debug is disabled).
-     *
-     * @return int The request start timestamp
-     *
-     * @api
-     */
-    public function getStartTime();
-
-    /**
-     * Gets the cache directory.
-     *
-     * @return string The cache directory
-     *
-     * @api
-     */
-    public function getCacheDir();
-
-    /**
-     * Gets the log directory.
-     *
-     * @return string The log directory
-     *
-     * @api
-     */
-    public function getLogDir();
-
-    /**
-     * Gets the charset of the application.
-     *
-     * @return string The charset
-     *
-     * @api
-     */
-    public function getCharset();
-}
diff --git a/core/vendor/symfony/http-kernel/LICENSE b/core/vendor/symfony/http-kernel/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/http-kernel/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php b/core/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php
deleted file mode 100644
index 5635a21..0000000
--- a/core/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Log;
-
-/**
- * DebugLoggerInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface DebugLoggerInterface
-{
-    /**
-     * Returns an array of logs.
-     *
-     * A log is an array with the following mandatory keys:
-     * timestamp, message, priority, and priorityName.
-     * It can also have an optional context key containing an array.
-     *
-     * @return array An array of logs
-     */
-    public function getLogs();
-
-    /**
-     * Returns the number of errors.
-     *
-     * @return int The number of errors
-     */
-    public function countErrors();
-}
diff --git a/core/vendor/symfony/http-kernel/Log/LoggerInterface.php b/core/vendor/symfony/http-kernel/Log/LoggerInterface.php
deleted file mode 100644
index 737ba4e..0000000
--- a/core/vendor/symfony/http-kernel/Log/LoggerInterface.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Log;
-
-use Psr\Log\LoggerInterface as PsrLogger;
-
-/**
- * LoggerInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.2, to be removed in 3.0. Type-hint \Psr\Log\LoggerInterface instead.
- *
- * @api
- */
-interface LoggerInterface extends PsrLogger
-{
-    /**
-     * @api
-     *
-     * @deprecated since version 2.2, to be removed in 3.0. Use emergency() which is PSR-3 compatible.
-     */
-    public function emerg($message, array $context = array());
-
-    /**
-     * @api
-     *
-     * @deprecated since version 2.2, to be removed in 3.0. Use critical() which is PSR-3 compatible.
-     */
-    public function crit($message, array $context = array());
-
-    /**
-     * @api
-     *
-     * @deprecated since version 2.2, to be removed in 3.0. Use error() which is PSR-3 compatible.
-     */
-    public function err($message, array $context = array());
-
-    /**
-     * @api
-     *
-     * @deprecated since version 2.2, to be removed in 3.0. Use warning() which is PSR-3 compatible.
-     */
-    public function warn($message, array $context = array());
-}
diff --git a/core/vendor/symfony/http-kernel/Log/NullLogger.php b/core/vendor/symfony/http-kernel/Log/NullLogger.php
deleted file mode 100644
index b9e3ac4..0000000
--- a/core/vendor/symfony/http-kernel/Log/NullLogger.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Log;
-
-@trigger_error('The '.__NAMESPACE__.'\NullLogger class is deprecated since version 2.2 and will be removed in 3.0. Use the Psr\Log\NullLogger class instead from the psr/log Composer package.', E_USER_DEPRECATED);
-
-use Psr\Log\NullLogger as PsrNullLogger;
-
-/**
- * NullLogger.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class NullLogger extends PsrNullLogger implements LoggerInterface
-{
-    /**
-     * @api
-     */
-    public function emerg($message, array $context = array())
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. You should use the new emergency() method instead, which is PSR-3 compatible.', E_USER_DEPRECATED);
-    }
-
-    /**
-     * @api
-     */
-    public function crit($message, array $context = array())
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. You should use the new critical() method instead, which is PSR-3 compatible.', E_USER_DEPRECATED);
-    }
-
-    /**
-     * @api
-     */
-    public function err($message, array $context = array())
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. You should use the new error() method instead, which is PSR-3 compatible.', E_USER_DEPRECATED);
-    }
-
-    /**
-     * @api
-     */
-    public function warn($message, array $context = array())
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. You should use the new warning() method instead, which is PSR-3 compatible.', E_USER_DEPRECATED);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/BaseMemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/BaseMemcacheProfilerStorage.php
deleted file mode 100644
index c6395bd..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/BaseMemcacheProfilerStorage.php
+++ /dev/null
@@ -1,310 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * Base Memcache storage for profiling information in a Memcache.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-abstract class BaseMemcacheProfilerStorage implements ProfilerStorageInterface
-{
-    const TOKEN_PREFIX = 'sf_profiler_';
-
-    protected $dsn;
-    protected $lifetime;
-
-    /**
-     * Constructor.
-     *
-     * @param string $dsn      A data source name
-     * @param string $username
-     * @param string $password
-     * @param int    $lifetime The lifetime to use for the purge
-     */
-    public function __construct($dsn, $username = '', $password = '', $lifetime = 86400)
-    {
-        $this->dsn = $dsn;
-        $this->lifetime = (int) $lifetime;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($ip, $url, $limit, $method, $start = null, $end = null)
-    {
-        $indexName = $this->getIndexName();
-
-        $indexContent = $this->getValue($indexName);
-        if (!$indexContent) {
-            return array();
-        }
-
-        $profileList = explode("\n", $indexContent);
-        $result = array();
-
-        foreach ($profileList as $item) {
-            if ($limit === 0) {
-                break;
-            }
-
-            if ($item == '') {
-                continue;
-            }
-
-            $values = explode("\t", $item, 7);
-            list($itemToken, $itemIp, $itemMethod, $itemUrl, $itemTime, $itemParent) = $values;
-            $statusCode = isset($values[6]) ? $values[6] : null;
-
-            $itemTime = (int) $itemTime;
-
-            if ($ip && false === strpos($itemIp, $ip) || $url && false === strpos($itemUrl, $url) || $method && false === strpos($itemMethod, $method)) {
-                continue;
-            }
-
-            if (!empty($start) && $itemTime < $start) {
-                continue;
-            }
-
-            if (!empty($end) && $itemTime > $end) {
-                continue;
-            }
-
-            $result[$itemToken] = array(
-                'token' => $itemToken,
-                'ip' => $itemIp,
-                'method' => $itemMethod,
-                'url' => $itemUrl,
-                'time' => $itemTime,
-                'parent' => $itemParent,
-                'status_code' => $statusCode,
-            );
-            --$limit;
-        }
-
-        usort($result, function ($a, $b) {
-            if ($a['time'] === $b['time']) {
-                return 0;
-            }
-
-            return $a['time'] > $b['time'] ? -1 : 1;
-        });
-
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function purge()
-    {
-        // delete only items from index
-        $indexName = $this->getIndexName();
-
-        $indexContent = $this->getValue($indexName);
-
-        if (!$indexContent) {
-            return false;
-        }
-
-        $profileList = explode("\n", $indexContent);
-
-        foreach ($profileList as $item) {
-            if ($item == '') {
-                continue;
-            }
-
-            if (false !== $pos = strpos($item, "\t")) {
-                $this->delete($this->getItemName(substr($item, 0, $pos)));
-            }
-        }
-
-        return $this->delete($indexName);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($token)
-    {
-        if (empty($token)) {
-            return false;
-        }
-
-        $profile = $this->getValue($this->getItemName($token));
-
-        if (false !== $profile) {
-            $profile = $this->createProfileFromData($token, $profile);
-        }
-
-        return $profile;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write(Profile $profile)
-    {
-        $data = array(
-            'token' => $profile->getToken(),
-            'parent' => $profile->getParentToken(),
-            'children' => array_map(function ($p) { return $p->getToken(); }, $profile->getChildren()),
-            'data' => $profile->getCollectors(),
-            'ip' => $profile->getIp(),
-            'method' => $profile->getMethod(),
-            'url' => $profile->getUrl(),
-            'time' => $profile->getTime(),
-        );
-
-        $profileIndexed = false !== $this->getValue($this->getItemName($profile->getToken()));
-
-        if ($this->setValue($this->getItemName($profile->getToken()), $data, $this->lifetime)) {
-            if (!$profileIndexed) {
-                // Add to index
-                $indexName = $this->getIndexName();
-
-                $indexRow = implode("\t", array(
-                    $profile->getToken(),
-                    $profile->getIp(),
-                    $profile->getMethod(),
-                    $profile->getUrl(),
-                    $profile->getTime(),
-                    $profile->getParentToken(),
-                    $profile->getStatusCode(),
-                ))."\n";
-
-                return $this->appendValue($indexName, $indexRow, $this->lifetime);
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Retrieve item from the memcache server.
-     *
-     * @param string $key
-     *
-     * @return mixed
-     */
-    abstract protected function getValue($key);
-
-    /**
-     * Store an item on the memcache server under the specified key.
-     *
-     * @param string $key
-     * @param mixed  $value
-     * @param int    $expiration
-     *
-     * @return bool
-     */
-    abstract protected function setValue($key, $value, $expiration = 0);
-
-    /**
-     * Delete item from the memcache server.
-     *
-     * @param string $key
-     *
-     * @return bool
-     */
-    abstract protected function delete($key);
-
-    /**
-     * Append data to an existing item on the memcache server.
-     *
-     * @param string $key
-     * @param string $value
-     * @param int    $expiration
-     *
-     * @return bool
-     */
-    abstract protected function appendValue($key, $value, $expiration = 0);
-
-    private function createProfileFromData($token, $data, $parent = null)
-    {
-        $profile = new Profile($token);
-        $profile->setIp($data['ip']);
-        $profile->setMethod($data['method']);
-        $profile->setUrl($data['url']);
-        $profile->setTime($data['time']);
-        $profile->setCollectors($data['data']);
-
-        if (!$parent && $data['parent']) {
-            $parent = $this->read($data['parent']);
-        }
-
-        if ($parent) {
-            $profile->setParent($parent);
-        }
-
-        foreach ($data['children'] as $token) {
-            if (!$token) {
-                continue;
-            }
-
-            if (!$childProfileData = $this->getValue($this->getItemName($token))) {
-                continue;
-            }
-
-            $profile->addChild($this->createProfileFromData($token, $childProfileData, $profile));
-        }
-
-        return $profile;
-    }
-
-    /**
-     * Get item name.
-     *
-     * @param string $token
-     *
-     * @return string
-     */
-    private function getItemName($token)
-    {
-        $name = self::TOKEN_PREFIX.$token;
-
-        if ($this->isItemNameValid($name)) {
-            return $name;
-        }
-
-        return false;
-    }
-
-    /**
-     * Get name of index.
-     *
-     * @return string
-     */
-    private function getIndexName()
-    {
-        $name = self::TOKEN_PREFIX.'index';
-
-        if ($this->isItemNameValid($name)) {
-            return $name;
-        }
-
-        return false;
-    }
-
-    private function isItemNameValid($name)
-    {
-        $length = strlen($name);
-
-        if ($length > 250) {
-            throw new \RuntimeException(sprintf('The memcache item key "%s" is too long (%s bytes). Allowed maximum size is 250 bytes.', $name, $length));
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php
deleted file mode 100644
index 581ab64..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php
+++ /dev/null
@@ -1,282 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * Storage for profiler using files.
- *
- * @author Alexandre Salomé <alexandre.salome@gmail.com>
- */
-class FileProfilerStorage implements ProfilerStorageInterface
-{
-    /**
-     * Folder where profiler data are stored.
-     *
-     * @var string
-     */
-    private $folder;
-
-    /**
-     * Constructs the file storage using a "dsn-like" path.
-     *
-     * Example : "file:/path/to/the/storage/folder"
-     *
-     * @param string $dsn The DSN
-     *
-     * @throws \RuntimeException
-     */
-    public function __construct($dsn)
-    {
-        if (0 !== strpos($dsn, 'file:')) {
-            throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use FileStorage with an invalid dsn "%s". The expected format is "file:/path/to/the/storage/folder".', $dsn));
-        }
-        $this->folder = substr($dsn, 5);
-
-        if (!is_dir($this->folder)) {
-            mkdir($this->folder, 0777, true);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($ip, $url, $limit, $method, $start = null, $end = null)
-    {
-        $file = $this->getIndexFilename();
-
-        if (!file_exists($file)) {
-            return array();
-        }
-
-        $file = fopen($file, 'r');
-        fseek($file, 0, SEEK_END);
-
-        $result = array();
-        while (count($result) < $limit && $line = $this->readLineFromFile($file)) {
-            $values = str_getcsv($line);
-            list($csvToken, $csvIp, $csvMethod, $csvUrl, $csvTime, $csvParent) = $values;
-            $csvStatusCode = isset($values[6]) ? $values[6] : null;
-
-            $csvTime = (int) $csvTime;
-
-            if ($ip && false === strpos($csvIp, $ip) || $url && false === strpos($csvUrl, $url) || $method && false === strpos($csvMethod, $method)) {
-                continue;
-            }
-
-            if (!empty($start) && $csvTime < $start) {
-                continue;
-            }
-
-            if (!empty($end) && $csvTime > $end) {
-                continue;
-            }
-
-            $result[$csvToken] = array(
-                'token' => $csvToken,
-                'ip' => $csvIp,
-                'method' => $csvMethod,
-                'url' => $csvUrl,
-                'time' => $csvTime,
-                'parent' => $csvParent,
-                'status_code' => $csvStatusCode,
-            );
-        }
-
-        fclose($file);
-
-        return array_values($result);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function purge()
-    {
-        $flags = \FilesystemIterator::SKIP_DOTS;
-        $iterator = new \RecursiveDirectoryIterator($this->folder, $flags);
-        $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::CHILD_FIRST);
-
-        foreach ($iterator as $file) {
-            if (is_file($file)) {
-                unlink($file);
-            } else {
-                rmdir($file);
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($token)
-    {
-        if (!$token || !file_exists($file = $this->getFilename($token))) {
-            return;
-        }
-
-        return $this->createProfileFromData($token, unserialize(file_get_contents($file)));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write(Profile $profile)
-    {
-        $file = $this->getFilename($profile->getToken());
-
-        $profileIndexed = is_file($file);
-        if (!$profileIndexed) {
-            // Create directory
-            $dir = dirname($file);
-            if (!is_dir($dir)) {
-                mkdir($dir, 0777, true);
-            }
-        }
-
-        // Store profile
-        $data = array(
-            'token' => $profile->getToken(),
-            'parent' => $profile->getParentToken(),
-            'children' => array_map(function ($p) { return $p->getToken(); }, $profile->getChildren()),
-            'data' => $profile->getCollectors(),
-            'ip' => $profile->getIp(),
-            'method' => $profile->getMethod(),
-            'url' => $profile->getUrl(),
-            'time' => $profile->getTime(),
-        );
-
-        if (false === file_put_contents($file, serialize($data))) {
-            return false;
-        }
-
-        if (!$profileIndexed) {
-            // Add to index
-            if (false === $file = fopen($this->getIndexFilename(), 'a')) {
-                return false;
-            }
-
-            fputcsv($file, array(
-                $profile->getToken(),
-                $profile->getIp(),
-                $profile->getMethod(),
-                $profile->getUrl(),
-                $profile->getTime(),
-                $profile->getParentToken(),
-                $profile->getStatusCode(),
-            ));
-            fclose($file);
-        }
-
-        return true;
-    }
-
-    /**
-     * Gets filename to store data, associated to the token.
-     *
-     * @param string $token
-     *
-     * @return string The profile filename
-     */
-    protected function getFilename($token)
-    {
-        // Uses 4 last characters, because first are mostly the same.
-        $folderA = substr($token, -2, 2);
-        $folderB = substr($token, -4, 2);
-
-        return $this->folder.'/'.$folderA.'/'.$folderB.'/'.$token;
-    }
-
-    /**
-     * Gets the index filename.
-     *
-     * @return string The index filename
-     */
-    protected function getIndexFilename()
-    {
-        return $this->folder.'/index.csv';
-    }
-
-    /**
-     * Reads a line in the file, backward.
-     *
-     * This function automatically skips the empty lines and do not include the line return in result value.
-     *
-     * @param resource $file The file resource, with the pointer placed at the end of the line to read
-     *
-     * @return mixed A string representing the line or null if beginning of file is reached
-     */
-    protected function readLineFromFile($file)
-    {
-        $line = '';
-        $position = ftell($file);
-
-        if (0 === $position) {
-            return;
-        }
-
-        while (true) {
-            $chunkSize = min($position, 1024);
-            $position -= $chunkSize;
-            fseek($file, $position);
-
-            if (0 === $chunkSize) {
-                // bof reached
-                break;
-            }
-
-            $buffer = fread($file, $chunkSize);
-
-            if (false === ($upTo = strrpos($buffer, "\n"))) {
-                $line = $buffer.$line;
-                continue;
-            }
-
-            $position += $upTo;
-            $line = substr($buffer, $upTo + 1).$line;
-            fseek($file, max(0, $position), SEEK_SET);
-
-            if ('' !== $line) {
-                break;
-            }
-        }
-
-        return '' === $line ? null : $line;
-    }
-
-    protected function createProfileFromData($token, $data, $parent = null)
-    {
-        $profile = new Profile($token);
-        $profile->setIp($data['ip']);
-        $profile->setMethod($data['method']);
-        $profile->setUrl($data['url']);
-        $profile->setTime($data['time']);
-        $profile->setCollectors($data['data']);
-
-        if (!$parent && $data['parent']) {
-            $parent = $this->read($data['parent']);
-        }
-
-        if ($parent) {
-            $profile->setParent($parent);
-        }
-
-        foreach ($data['children'] as $token) {
-            if (!$token || !file_exists($file = $this->getFilename($token))) {
-                continue;
-            }
-
-            $profile->addChild($this->createProfileFromData($token, unserialize(file_get_contents($file)), $profile));
-        }
-
-        return $profile;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/MemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/MemcacheProfilerStorage.php
deleted file mode 100644
index 2727405..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/MemcacheProfilerStorage.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * Memcache Profiler Storage.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-class MemcacheProfilerStorage extends BaseMemcacheProfilerStorage
-{
-    /**
-     * @var \Memcache
-     */
-    private $memcache;
-
-    /**
-     * Internal convenience method that returns the instance of the Memcache.
-     *
-     * @return \Memcache
-     *
-     * @throws \RuntimeException
-     */
-    protected function getMemcache()
-    {
-        if (null === $this->memcache) {
-            if (!preg_match('#^memcache://(?(?=\[.*\])\[(.*)\]|(.*)):(.*)$#', $this->dsn, $matches)) {
-                throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use Memcache with an invalid dsn "%s". The expected format is "memcache://[host]:port".', $this->dsn));
-            }
-
-            $host = $matches[1] ?: $matches[2];
-            $port = $matches[3];
-
-            $memcache = new \Memcache();
-            $memcache->addserver($host, $port);
-
-            $this->memcache = $memcache;
-        }
-
-        return $this->memcache;
-    }
-
-    /**
-     * Set instance of the Memcache.
-     *
-     * @param \Memcache $memcache
-     */
-    public function setMemcache($memcache)
-    {
-        $this->memcache = $memcache;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getValue($key)
-    {
-        return $this->getMemcache()->get($key);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function setValue($key, $value, $expiration = 0)
-    {
-        return $this->getMemcache()->set($key, $value, false, time() + $expiration);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function delete($key)
-    {
-        return $this->getMemcache()->delete($key);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function appendValue($key, $value, $expiration = 0)
-    {
-        $memcache = $this->getMemcache();
-
-        if (method_exists($memcache, 'append')) {
-            // Memcache v3.0
-            if (!$result = $memcache->append($key, $value, false, $expiration)) {
-                return $memcache->set($key, $value, false, $expiration);
-            }
-
-            return $result;
-        }
-
-        // simulate append in Memcache <3.0
-        $content = $memcache->get($key);
-
-        return $memcache->set($key, $content.$value, false, $expiration);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/MemcachedProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/MemcachedProfilerStorage.php
deleted file mode 100644
index 0c57373..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/MemcachedProfilerStorage.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * Memcached Profiler Storage.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-class MemcachedProfilerStorage extends BaseMemcacheProfilerStorage
-{
-    /**
-     * @var \Memcached
-     */
-    private $memcached;
-
-    /**
-     * Internal convenience method that returns the instance of the Memcached.
-     *
-     * @return \Memcached
-     *
-     * @throws \RuntimeException
-     */
-    protected function getMemcached()
-    {
-        if (null === $this->memcached) {
-            if (!preg_match('#^memcached://(?(?=\[.*\])\[(.*)\]|(.*)):(.*)$#', $this->dsn, $matches)) {
-                throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use Memcached with an invalid dsn "%s". The expected format is "memcached://[host]:port".', $this->dsn));
-            }
-
-            $host = $matches[1] ?: $matches[2];
-            $port = $matches[3];
-
-            $memcached = new \Memcached();
-
-            // disable compression to allow appending
-            $memcached->setOption(\Memcached::OPT_COMPRESSION, false);
-
-            $memcached->addServer($host, $port);
-
-            $this->memcached = $memcached;
-        }
-
-        return $this->memcached;
-    }
-
-    /**
-     * Set instance of the Memcached.
-     *
-     * @param \Memcached $memcached
-     */
-    public function setMemcached($memcached)
-    {
-        $this->memcached = $memcached;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getValue($key)
-    {
-        return $this->getMemcached()->get($key);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function setValue($key, $value, $expiration = 0)
-    {
-        return $this->getMemcached()->set($key, $value, time() + $expiration);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function delete($key)
-    {
-        return $this->getMemcached()->delete($key);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function appendValue($key, $value, $expiration = 0)
-    {
-        $memcached = $this->getMemcached();
-
-        if (!$result = $memcached->append($key, $value)) {
-            return $memcached->set($key, $value, $expiration);
-        }
-
-        return $result;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/MongoDbProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/MongoDbProfilerStorage.php
deleted file mode 100644
index f35a7f7..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/MongoDbProfilerStorage.php
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-class MongoDbProfilerStorage implements ProfilerStorageInterface
-{
-    protected $dsn;
-    protected $lifetime;
-    private $mongo;
-
-    /**
-     * Constructor.
-     *
-     * @param string $dsn      A data source name
-     * @param string $username Not used
-     * @param string $password Not used
-     * @param int    $lifetime The lifetime to use for the purge
-     */
-    public function __construct($dsn, $username = '', $password = '', $lifetime = 86400)
-    {
-        $this->dsn = $dsn;
-        $this->lifetime = (int) $lifetime;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($ip, $url, $limit, $method, $start = null, $end = null)
-    {
-        $cursor = $this->getMongo()->find($this->buildQuery($ip, $url, $method, $start, $end), array('_id', 'parent', 'ip', 'method', 'url', 'time', 'status_code'))->sort(array('time' => -1))->limit($limit);
-
-        $tokens = array();
-        foreach ($cursor as $profile) {
-            $tokens[] = $this->getData($profile);
-        }
-
-        return $tokens;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function purge()
-    {
-        $this->getMongo()->remove(array());
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($token)
-    {
-        $profile = $this->getMongo()->findOne(array('_id' => $token, 'data' => array('$exists' => true)));
-
-        if (null !== $profile) {
-            $profile = $this->createProfileFromData($this->getData($profile));
-        }
-
-        return $profile;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write(Profile $profile)
-    {
-        $this->cleanup();
-
-        $record = array(
-            '_id' => $profile->getToken(),
-            'parent' => $profile->getParentToken(),
-            'data' => base64_encode(serialize($profile->getCollectors())),
-            'ip' => $profile->getIp(),
-            'method' => $profile->getMethod(),
-            'url' => $profile->getUrl(),
-            'time' => $profile->getTime(),
-            'status_code' => $profile->getStatusCode(),
-        );
-
-        $result = $this->getMongo()->update(array('_id' => $profile->getToken()), array_filter($record, function ($v) { return !empty($v); }), array('upsert' => true));
-
-        return (bool) (isset($result['ok']) ? $result['ok'] : $result);
-    }
-
-    /**
-     * Internal convenience method that returns the instance of the MongoDB Collection.
-     *
-     * @return \MongoCollection
-     *
-     * @throws \RuntimeException
-     */
-    protected function getMongo()
-    {
-        if (null !== $this->mongo) {
-            return $this->mongo;
-        }
-
-        if (!$parsedDsn = $this->parseDsn($this->dsn)) {
-            throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use MongoDB with an invalid dsn "%s". The expected format is "mongodb://[user:pass@]host/database/collection"', $this->dsn));
-        }
-
-        list($server, $database, $collection) = $parsedDsn;
-        $mongoClass = version_compare(phpversion('mongo'), '1.3.0', '<') ? '\Mongo' : '\MongoClient';
-        $mongo = new $mongoClass($server);
-
-        return $this->mongo = $mongo->selectCollection($database, $collection);
-    }
-
-    /**
-     * @param array $data
-     *
-     * @return Profile
-     */
-    protected function createProfileFromData(array $data)
-    {
-        $profile = $this->getProfile($data);
-
-        if ($data['parent']) {
-            $parent = $this->getMongo()->findOne(array('_id' => $data['parent'], 'data' => array('$exists' => true)));
-            if ($parent) {
-                $profile->setParent($this->getProfile($this->getData($parent)));
-            }
-        }
-
-        $profile->setChildren($this->readChildren($data['token']));
-
-        return $profile;
-    }
-
-    /**
-     * @param string $token
-     *
-     * @return Profile[] An array of Profile instances
-     */
-    protected function readChildren($token)
-    {
-        $profiles = array();
-
-        $cursor = $this->getMongo()->find(array('parent' => $token, 'data' => array('$exists' => true)));
-        foreach ($cursor as $d) {
-            $profiles[] = $this->getProfile($this->getData($d));
-        }
-
-        return $profiles;
-    }
-
-    protected function cleanup()
-    {
-        $this->getMongo()->remove(array('time' => array('$lt' => time() - $this->lifetime)));
-    }
-
-    /**
-     * @param string $ip
-     * @param string $url
-     * @param string $method
-     * @param int    $start
-     * @param int    $end
-     *
-     * @return array
-     */
-    private function buildQuery($ip, $url, $method, $start, $end)
-    {
-        $query = array();
-
-        if (!empty($ip)) {
-            $query['ip'] = $ip;
-        }
-
-        if (!empty($url)) {
-            $query['url'] = $url;
-        }
-
-        if (!empty($method)) {
-            $query['method'] = $method;
-        }
-
-        if (!empty($start) || !empty($end)) {
-            $query['time'] = array();
-        }
-
-        if (!empty($start)) {
-            $query['time']['$gte'] = $start;
-        }
-
-        if (!empty($end)) {
-            $query['time']['$lte'] = $end;
-        }
-
-        return $query;
-    }
-
-    /**
-     * @param array $data
-     *
-     * @return array
-     */
-    private function getData(array $data)
-    {
-        return array(
-            'token' => $data['_id'],
-            'parent' => isset($data['parent']) ? $data['parent'] : null,
-            'ip' => isset($data['ip']) ? $data['ip'] : null,
-            'method' => isset($data['method']) ? $data['method'] : null,
-            'url' => isset($data['url']) ? $data['url'] : null,
-            'time' => isset($data['time']) ? $data['time'] : null,
-            'data' => isset($data['data']) ? $data['data'] : null,
-            'status_code' => isset($data['status_code']) ? $data['status_code'] : null,
-        );
-    }
-
-    /**
-     * @param array $data
-     *
-     * @return Profile
-     */
-    private function getProfile(array $data)
-    {
-        $profile = new Profile($data['token']);
-        $profile->setIp($data['ip']);
-        $profile->setMethod($data['method']);
-        $profile->setUrl($data['url']);
-        $profile->setTime($data['time']);
-        $profile->setCollectors(unserialize(base64_decode($data['data'])));
-
-        return $profile;
-    }
-
-    /**
-     * @param string $dsn
-     *
-     * @return null|array Array($server, $database, $collection)
-     */
-    private function parseDsn($dsn)
-    {
-        if (!preg_match('#^(mongodb://.*)/(.*)/(.*)$#', $dsn, $matches)) {
-            return;
-        }
-
-        $server = $matches[1];
-        $database = $matches[2];
-        $collection = $matches[3];
-        preg_match('#^mongodb://(([^:]+):?(.*)(?=@))?@?([^/]*)(.*)$#', $server, $matchesServer);
-
-        if ('' == $matchesServer[5] && '' != $matches[2]) {
-            $server .= '/'.$matches[2];
-        }
-
-        return array($server, $database, $collection);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/MysqlProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/MysqlProfilerStorage.php
deleted file mode 100644
index 92e8a1b..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/MysqlProfilerStorage.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * A ProfilerStorage for Mysql.
- *
- * @author Jan Schumann <js@schumann-it.com>
- */
-class MysqlProfilerStorage extends PdoProfilerStorage
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function initDb()
-    {
-        if (null === $this->db) {
-            if (0 !== strpos($this->dsn, 'mysql')) {
-                throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use Mysql with an invalid dsn "%s". The expected format is "mysql:dbname=database_name;host=host_name".', $this->dsn));
-            }
-
-            if (!class_exists('PDO') || !in_array('mysql', \PDO::getAvailableDrivers(), true)) {
-                throw new \RuntimeException('You need to enable PDO_Mysql extension for the profiler to run properly.');
-            }
-
-            $db = new \PDO($this->dsn, $this->username, $this->password);
-            $db->exec('CREATE TABLE IF NOT EXISTS sf_profiler_data (token VARCHAR(255) PRIMARY KEY, data LONGTEXT, ip VARCHAR(64), method VARCHAR(6), url VARCHAR(255), time INTEGER UNSIGNED, parent VARCHAR(255), created_at INTEGER UNSIGNED, status_code SMALLINT UNSIGNED, KEY (created_at), KEY (ip), KEY (method), KEY (url), KEY (parent))');
-
-            $this->db = $db;
-        }
-
-        return $this->db;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function buildCriteria($ip, $url, $start, $end, $limit, $method)
-    {
-        $criteria = array();
-        $args = array();
-
-        if ($ip = preg_replace('/[^\d\.]/', '', $ip)) {
-            $criteria[] = 'ip LIKE :ip';
-            $args[':ip'] = '%'.$ip.'%';
-        }
-
-        if ($url) {
-            $criteria[] = 'url LIKE :url';
-            $args[':url'] = '%'.addcslashes($url, '%_\\').'%';
-        }
-
-        if ($method) {
-            $criteria[] = 'method = :method';
-            $args[':method'] = $method;
-        }
-
-        if (!empty($start)) {
-            $criteria[] = 'time >= :start';
-            $args[':start'] = $start;
-        }
-
-        if (!empty($end)) {
-            $criteria[] = 'time <= :end';
-            $args[':end'] = $end;
-        }
-
-        return array($criteria, $args);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/PdoProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/PdoProfilerStorage.php
deleted file mode 100644
index 48f813f..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/PdoProfilerStorage.php
+++ /dev/null
@@ -1,263 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * Base PDO storage for profiling information in a PDO database.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jan Schumann <js@schumann-it.com>
- */
-abstract class PdoProfilerStorage implements ProfilerStorageInterface
-{
-    protected $dsn;
-    protected $username;
-    protected $password;
-    protected $lifetime;
-    protected $db;
-
-    /**
-     * Constructor.
-     *
-     * @param string $dsn      A data source name
-     * @param string $username The username for the database
-     * @param string $password The password for the database
-     * @param int    $lifetime The lifetime to use for the purge
-     */
-    public function __construct($dsn, $username = '', $password = '', $lifetime = 86400)
-    {
-        $this->dsn = $dsn;
-        $this->username = $username;
-        $this->password = $password;
-        $this->lifetime = (int) $lifetime;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($ip, $url, $limit, $method, $start = null, $end = null)
-    {
-        if (null === $start) {
-            $start = 0;
-        }
-
-        if (null === $end) {
-            $end = time();
-        }
-
-        list($criteria, $args) = $this->buildCriteria($ip, $url, $start, $end, $limit, $method);
-
-        $criteria = $criteria ? 'WHERE '.implode(' AND ', $criteria) : '';
-
-        $db = $this->initDb();
-        $tokens = $this->fetch($db, 'SELECT token, ip, method, url, time, parent, status_code FROM sf_profiler_data '.$criteria.' ORDER BY time DESC LIMIT '.((int) $limit), $args);
-        $this->close($db);
-
-        return $tokens;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($token)
-    {
-        $db = $this->initDb();
-        $args = array(':token' => $token);
-        $data = $this->fetch($db, 'SELECT data, parent, ip, method, url, time FROM sf_profiler_data WHERE token = :token LIMIT 1', $args);
-        $this->close($db);
-        if (isset($data[0]['data'])) {
-            return $this->createProfileFromData($token, $data[0]);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write(Profile $profile)
-    {
-        $db = $this->initDb();
-        $args = array(
-            ':token' => $profile->getToken(),
-            ':parent' => $profile->getParentToken(),
-            ':data' => base64_encode(serialize($profile->getCollectors())),
-            ':ip' => $profile->getIp(),
-            ':method' => $profile->getMethod(),
-            ':url' => $profile->getUrl(),
-            ':time' => $profile->getTime(),
-            ':created_at' => time(),
-            ':status_code' => $profile->getStatusCode(),
-        );
-
-        try {
-            if ($this->has($profile->getToken())) {
-                $this->exec($db, 'UPDATE sf_profiler_data SET parent = :parent, data = :data, ip = :ip, method = :method, url = :url, time = :time, created_at = :created_at, status_code = :status_code WHERE token = :token', $args);
-            } else {
-                $this->exec($db, 'INSERT INTO sf_profiler_data (token, parent, data, ip, method, url, time, created_at, status_code) VALUES (:token, :parent, :data, :ip, :method, :url, :time, :created_at, :status_code)', $args);
-            }
-            $this->cleanup();
-            $status = true;
-        } catch (\Exception $e) {
-            $status = false;
-        }
-
-        $this->close($db);
-
-        return $status;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function purge()
-    {
-        $db = $this->initDb();
-        $this->exec($db, 'DELETE FROM sf_profiler_data');
-        $this->close($db);
-    }
-
-    /**
-     * Build SQL criteria to fetch records by ip and url.
-     *
-     * @param string $ip     The IP
-     * @param string $url    The URL
-     * @param string $start  The start period to search from
-     * @param string $end    The end period to search to
-     * @param string $limit  The maximum number of tokens to return
-     * @param string $method The request method
-     *
-     * @return array An array with (criteria, args)
-     */
-    abstract protected function buildCriteria($ip, $url, $start, $end, $limit, $method);
-
-    /**
-     * Initializes the database.
-     *
-     * @throws \RuntimeException When the requested database driver is not installed
-     */
-    abstract protected function initDb();
-
-    protected function cleanup()
-    {
-        $db = $this->initDb();
-        $this->exec($db, 'DELETE FROM sf_profiler_data WHERE created_at < :time', array(':time' => time() - $this->lifetime));
-        $this->close($db);
-    }
-
-    protected function exec($db, $query, array $args = array())
-    {
-        $stmt = $this->prepareStatement($db, $query);
-
-        foreach ($args as $arg => $val) {
-            $stmt->bindValue($arg, $val, is_int($val) ? \PDO::PARAM_INT : \PDO::PARAM_STR);
-        }
-        $success = $stmt->execute();
-        if (!$success) {
-            throw new \RuntimeException(sprintf('Error executing query "%s"', $query));
-        }
-    }
-
-    protected function prepareStatement($db, $query)
-    {
-        try {
-            $stmt = $db->prepare($query);
-        } catch (\Exception $e) {
-            $stmt = false;
-        }
-
-        if (false === $stmt) {
-            throw new \RuntimeException('The database cannot successfully prepare the statement');
-        }
-
-        return $stmt;
-    }
-
-    protected function fetch($db, $query, array $args = array())
-    {
-        $stmt = $this->prepareStatement($db, $query);
-
-        foreach ($args as $arg => $val) {
-            $stmt->bindValue($arg, $val, is_int($val) ? \PDO::PARAM_INT : \PDO::PARAM_STR);
-        }
-        $stmt->execute();
-        $return = $stmt->fetchAll(\PDO::FETCH_ASSOC);
-
-        return $return;
-    }
-
-    protected function close($db)
-    {
-    }
-
-    protected function createProfileFromData($token, $data, $parent = null)
-    {
-        $profile = new Profile($token);
-        $profile->setIp($data['ip']);
-        $profile->setMethod($data['method']);
-        $profile->setUrl($data['url']);
-        $profile->setTime($data['time']);
-        $profile->setCollectors(unserialize(base64_decode($data['data'])));
-
-        if (!$parent && !empty($data['parent'])) {
-            $parent = $this->read($data['parent']);
-        }
-
-        if ($parent) {
-            $profile->setParent($parent);
-        }
-
-        $profile->setChildren($this->readChildren($token, $profile));
-
-        return $profile;
-    }
-
-    /**
-     * Reads the child profiles for the given token.
-     *
-     * @param string $token  The parent token
-     * @param string $parent The parent instance
-     *
-     * @return Profile[] An array of Profile instance
-     */
-    protected function readChildren($token, $parent)
-    {
-        $db = $this->initDb();
-        $data = $this->fetch($db, 'SELECT token, data, ip, method, url, time FROM sf_profiler_data WHERE parent = :token', array(':token' => $token));
-        $this->close($db);
-
-        if (!$data) {
-            return array();
-        }
-
-        $profiles = array();
-        foreach ($data as $d) {
-            $profiles[] = $this->createProfileFromData($d['token'], $d, $parent);
-        }
-
-        return $profiles;
-    }
-
-    /**
-     * Returns whether data for the given token already exists in storage.
-     *
-     * @param string $token The profile token
-     *
-     * @return string
-     */
-    protected function has($token)
-    {
-        $db = $this->initDb();
-        $tokenExists = $this->fetch($db, 'SELECT 1 FROM sf_profiler_data WHERE token = :token LIMIT 1', array(':token' => $token));
-        $this->close($db);
-
-        return !empty($tokenExists);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/Profile.php b/core/vendor/symfony/http-kernel/Profiler/Profile.php
deleted file mode 100644
index a4e4ba6..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/Profile.php
+++ /dev/null
@@ -1,292 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
-
-/**
- * Profile.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Profile
-{
-    private $token;
-
-    /**
-     * @var DataCollectorInterface[]
-     */
-    private $collectors = array();
-
-    private $ip;
-    private $method;
-    private $url;
-    private $time;
-    private $statusCode;
-
-    /**
-     * @var Profile
-     */
-    private $parent;
-
-    /**
-     * @var Profile[]
-     */
-    private $children = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $token The token
-     */
-    public function __construct($token)
-    {
-        $this->token = $token;
-    }
-
-    /**
-     * Sets the token.
-     *
-     * @param string $token The token
-     */
-    public function setToken($token)
-    {
-        $this->token = $token;
-    }
-
-    /**
-     * Gets the token.
-     *
-     * @return string The token
-     */
-    public function getToken()
-    {
-        return $this->token;
-    }
-
-    /**
-     * Sets the parent token.
-     *
-     * @param Profile $parent The parent Profile
-     */
-    public function setParent(Profile $parent)
-    {
-        $this->parent = $parent;
-    }
-
-    /**
-     * Returns the parent profile.
-     *
-     * @return Profile The parent profile
-     */
-    public function getParent()
-    {
-        return $this->parent;
-    }
-
-    /**
-     * Returns the parent token.
-     *
-     * @return null|string The parent token
-     */
-    public function getParentToken()
-    {
-        return $this->parent ? $this->parent->getToken() : null;
-    }
-
-    /**
-     * Returns the IP.
-     *
-     * @return string The IP
-     */
-    public function getIp()
-    {
-        return $this->ip;
-    }
-
-    /**
-     * Sets the IP.
-     *
-     * @param string $ip
-     */
-    public function setIp($ip)
-    {
-        $this->ip = $ip;
-    }
-
-    /**
-     * Returns the request method.
-     *
-     * @return string The request method
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    public function setMethod($method)
-    {
-        $this->method = $method;
-    }
-
-    /**
-     * Returns the URL.
-     *
-     * @return string The URL
-     */
-    public function getUrl()
-    {
-        return $this->url;
-    }
-
-    public function setUrl($url)
-    {
-        $this->url = $url;
-    }
-
-    /**
-     * Returns the time.
-     *
-     * @return string The time
-     */
-    public function getTime()
-    {
-        if (null === $this->time) {
-            return 0;
-        }
-
-        return $this->time;
-    }
-
-    public function setTime($time)
-    {
-        $this->time = $time;
-    }
-
-    /**
-     * @param int $statusCode
-     */
-    public function setStatusCode($statusCode)
-    {
-        $this->statusCode = $statusCode;
-    }
-
-    /**
-     * @return int
-     */
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    /**
-     * Finds children profilers.
-     *
-     * @return Profile[] An array of Profile
-     */
-    public function getChildren()
-    {
-        return $this->children;
-    }
-
-    /**
-     * Sets children profiler.
-     *
-     * @param Profile[] $children An array of Profile
-     */
-    public function setChildren(array $children)
-    {
-        $this->children = array();
-        foreach ($children as $child) {
-            $this->addChild($child);
-        }
-    }
-
-    /**
-     * Adds the child token.
-     *
-     * @param Profile $child The child Profile
-     */
-    public function addChild(Profile $child)
-    {
-        $this->children[] = $child;
-        $child->setParent($this);
-    }
-
-    /**
-     * Gets a Collector by name.
-     *
-     * @param string $name A collector name
-     *
-     * @return DataCollectorInterface A DataCollectorInterface instance
-     *
-     * @throws \InvalidArgumentException if the collector does not exist
-     */
-    public function getCollector($name)
-    {
-        if (!isset($this->collectors[$name])) {
-            throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name));
-        }
-
-        return $this->collectors[$name];
-    }
-
-    /**
-     * Gets the Collectors associated with this profile.
-     *
-     * @return DataCollectorInterface[]
-     */
-    public function getCollectors()
-    {
-        return $this->collectors;
-    }
-
-    /**
-     * Sets the Collectors associated with this profile.
-     *
-     * @param DataCollectorInterface[] $collectors
-     */
-    public function setCollectors(array $collectors)
-    {
-        $this->collectors = array();
-        foreach ($collectors as $collector) {
-            $this->addCollector($collector);
-        }
-    }
-
-    /**
-     * Adds a Collector.
-     *
-     * @param DataCollectorInterface $collector A DataCollectorInterface instance
-     */
-    public function addCollector(DataCollectorInterface $collector)
-    {
-        $this->collectors[$collector->getName()] = $collector;
-    }
-
-    /**
-     * Returns true if a Collector for the given name exists.
-     *
-     * @param string $name A collector name
-     *
-     * @return bool
-     */
-    public function hasCollector($name)
-    {
-        return isset($this->collectors[$name]);
-    }
-
-    public function __sleep()
-    {
-        return array('token', 'parent', 'children', 'collectors', 'ip', 'method', 'url', 'time');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/Profiler.php b/core/vendor/symfony/http-kernel/Profiler/Profiler.php
deleted file mode 100644
index 864f624..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/Profiler.php
+++ /dev/null
@@ -1,296 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
-use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface;
-use Psr\Log\LoggerInterface;
-
-/**
- * Profiler.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Profiler
-{
-    /**
-     * @var ProfilerStorageInterface
-     */
-    private $storage;
-
-    /**
-     * @var DataCollectorInterface[]
-     */
-    private $collectors = array();
-
-    /**
-     * @var LoggerInterface
-     */
-    private $logger;
-
-    /**
-     * @var bool
-     */
-    private $enabled = true;
-
-    /**
-     * Constructor.
-     *
-     * @param ProfilerStorageInterface $storage A ProfilerStorageInterface instance
-     * @param LoggerInterface          $logger  A LoggerInterface instance
-     */
-    public function __construct(ProfilerStorageInterface $storage, LoggerInterface $logger = null)
-    {
-        $this->storage = $storage;
-        $this->logger = $logger;
-    }
-
-    /**
-     * Disables the profiler.
-     */
-    public function disable()
-    {
-        $this->enabled = false;
-    }
-
-    /**
-     * Enables the profiler.
-     */
-    public function enable()
-    {
-        $this->enabled = true;
-    }
-
-    /**
-     * Loads the Profile for the given Response.
-     *
-     * @param Response $response A Response instance
-     *
-     * @return Profile A Profile instance
-     */
-    public function loadProfileFromResponse(Response $response)
-    {
-        if (!$token = $response->headers->get('X-Debug-Token')) {
-            return false;
-        }
-
-        return $this->loadProfile($token);
-    }
-
-    /**
-     * Loads the Profile for the given token.
-     *
-     * @param string $token A token
-     *
-     * @return Profile A Profile instance
-     */
-    public function loadProfile($token)
-    {
-        return $this->storage->read($token);
-    }
-
-    /**
-     * Saves a Profile.
-     *
-     * @param Profile $profile A Profile instance
-     *
-     * @return bool
-     */
-    public function saveProfile(Profile $profile)
-    {
-        // late collect
-        foreach ($profile->getCollectors() as $collector) {
-            if ($collector instanceof LateDataCollectorInterface) {
-                $collector->lateCollect();
-            }
-        }
-
-        if (!($ret = $this->storage->write($profile)) && null !== $this->logger) {
-            $this->logger->warning('Unable to store the profiler information.', array('configured_storage' => get_class($this->storage)));
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Purges all data from the storage.
-     */
-    public function purge()
-    {
-        $this->storage->purge();
-    }
-
-    /**
-     * Exports the current profiler data.
-     *
-     * @param Profile $profile A Profile instance
-     *
-     * @return string The exported data
-     */
-    public function export(Profile $profile)
-    {
-        return base64_encode(serialize($profile));
-    }
-
-    /**
-     * Imports data into the profiler storage.
-     *
-     * @param string $data A data string as exported by the export() method
-     *
-     * @return Profile A Profile instance
-     */
-    public function import($data)
-    {
-        $profile = unserialize(base64_decode($data));
-
-        if ($this->storage->read($profile->getToken())) {
-            return false;
-        }
-
-        $this->saveProfile($profile);
-
-        return $profile;
-    }
-
-    /**
-     * Finds profiler tokens for the given criteria.
-     *
-     * @param string $ip     The IP
-     * @param string $url    The URL
-     * @param string $limit  The maximum number of tokens to return
-     * @param string $method The request method
-     * @param string $start  The start date to search from
-     * @param string $end    The end date to search to
-     *
-     * @return array An array of tokens
-     *
-     * @see http://php.net/manual/en/datetime.formats.php for the supported date/time formats
-     */
-    public function find($ip, $url, $limit, $method, $start, $end)
-    {
-        return $this->storage->find($ip, $url, $limit, $method, $this->getTimestamp($start), $this->getTimestamp($end));
-    }
-
-    /**
-     * Collects data for the given Response.
-     *
-     * @param Request    $request   A Request instance
-     * @param Response   $response  A Response instance
-     * @param \Exception $exception An exception instance if the request threw one
-     *
-     * @return Profile|null A Profile instance or null if the profiler is disabled
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-        if (false === $this->enabled) {
-            return;
-        }
-
-        $profile = new Profile(substr(hash('sha256', uniqid(mt_rand(), true)), 0, 6));
-        $profile->setTime(time());
-        $profile->setUrl($request->getUri());
-        $profile->setIp($request->getClientIp());
-        $profile->setMethod($request->getMethod());
-        $profile->setStatusCode($response->getStatusCode());
-
-        $response->headers->set('X-Debug-Token', $profile->getToken());
-
-        foreach ($this->collectors as $collector) {
-            $collector->collect($request, $response, $exception);
-
-            // we need to clone for sub-requests
-            $profile->addCollector(clone $collector);
-        }
-
-        return $profile;
-    }
-
-    /**
-     * Gets the Collectors associated with this profiler.
-     *
-     * @return array An array of collectors
-     */
-    public function all()
-    {
-        return $this->collectors;
-    }
-
-    /**
-     * Sets the Collectors associated with this profiler.
-     *
-     * @param DataCollectorInterface[] $collectors An array of collectors
-     */
-    public function set(array $collectors = array())
-    {
-        $this->collectors = array();
-        foreach ($collectors as $collector) {
-            $this->add($collector);
-        }
-    }
-
-    /**
-     * Adds a Collector.
-     *
-     * @param DataCollectorInterface $collector A DataCollectorInterface instance
-     */
-    public function add(DataCollectorInterface $collector)
-    {
-        $this->collectors[$collector->getName()] = $collector;
-    }
-
-    /**
-     * Returns true if a Collector for the given name exists.
-     *
-     * @param string $name A collector name
-     *
-     * @return bool
-     */
-    public function has($name)
-    {
-        return isset($this->collectors[$name]);
-    }
-
-    /**
-     * Gets a Collector by name.
-     *
-     * @param string $name A collector name
-     *
-     * @return DataCollectorInterface A DataCollectorInterface instance
-     *
-     * @throws \InvalidArgumentException if the collector does not exist
-     */
-    public function get($name)
-    {
-        if (!isset($this->collectors[$name])) {
-            throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name));
-        }
-
-        return $this->collectors[$name];
-    }
-
-    private function getTimestamp($value)
-    {
-        if (null === $value || '' == $value) {
-            return;
-        }
-
-        try {
-            $value = new \DateTime(is_numeric($value) ? '@'.$value : $value);
-        } catch (\Exception $e) {
-            return;
-        }
-
-        return $value->getTimestamp();
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php b/core/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php
deleted file mode 100644
index ea72af2..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * ProfilerStorageInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface ProfilerStorageInterface
-{
-    /**
-     * Finds profiler tokens for the given criteria.
-     *
-     * @param string   $ip     The IP
-     * @param string   $url    The URL
-     * @param string   $limit  The maximum number of tokens to return
-     * @param string   $method The request method
-     * @param int|null $start  The start date to search from
-     * @param int|null $end    The end date to search to
-     *
-     * @return array An array of tokens
-     */
-    public function find($ip, $url, $limit, $method, $start = null, $end = null);
-
-    /**
-     * Reads data associated with the given token.
-     *
-     * The method returns false if the token does not exist in the storage.
-     *
-     * @param string $token A token
-     *
-     * @return Profile The profile associated with token
-     */
-    public function read($token);
-
-    /**
-     * Saves a Profile.
-     *
-     * @param Profile $profile A Profile instance
-     *
-     * @return bool Write operation successful
-     */
-    public function write(Profile $profile);
-
-    /**
-     * Purges all data from the database.
-     */
-    public function purge();
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/RedisProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/RedisProfilerStorage.php
deleted file mode 100644
index b0e14ea..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/RedisProfilerStorage.php
+++ /dev/null
@@ -1,394 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * RedisProfilerStorage stores profiling information in Redis.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- * @author Stephane PY <py.stephane1@gmail.com>
- */
-class RedisProfilerStorage implements ProfilerStorageInterface
-{
-    const TOKEN_PREFIX = 'sf_profiler_';
-
-    const REDIS_OPT_SERIALIZER = 1;
-    const REDIS_OPT_PREFIX = 2;
-    const REDIS_SERIALIZER_NONE = 0;
-    const REDIS_SERIALIZER_PHP = 1;
-
-    protected $dsn;
-    protected $lifetime;
-
-    /**
-     * @var \Redis
-     */
-    private $redis;
-
-    /**
-     * Constructor.
-     *
-     * @param string $dsn      A data source name
-     * @param string $username Not used
-     * @param string $password Not used
-     * @param int    $lifetime The lifetime to use for the purge
-     */
-    public function __construct($dsn, $username = '', $password = '', $lifetime = 86400)
-    {
-        $this->dsn = $dsn;
-        $this->lifetime = (int) $lifetime;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function find($ip, $url, $limit, $method, $start = null, $end = null)
-    {
-        $indexName = $this->getIndexName();
-
-        if (!$indexContent = $this->getValue($indexName, self::REDIS_SERIALIZER_NONE)) {
-            return array();
-        }
-
-        $profileList = array_reverse(explode("\n", $indexContent));
-        $result = array();
-
-        foreach ($profileList as $item) {
-            if ($limit === 0) {
-                break;
-            }
-
-            if ($item == '') {
-                continue;
-            }
-
-            $values = explode("\t", $item, 7);
-            list($itemToken, $itemIp, $itemMethod, $itemUrl, $itemTime, $itemParent) = $values;
-            $statusCode = isset($values[6]) ? $values[6] : null;
-
-            $itemTime = (int) $itemTime;
-
-            if ($ip && false === strpos($itemIp, $ip) || $url && false === strpos($itemUrl, $url) || $method && false === strpos($itemMethod, $method)) {
-                continue;
-            }
-
-            if (!empty($start) && $itemTime < $start) {
-                continue;
-            }
-
-            if (!empty($end) && $itemTime > $end) {
-                continue;
-            }
-
-            $result[] = array(
-                'token' => $itemToken,
-                'ip' => $itemIp,
-                'method' => $itemMethod,
-                'url' => $itemUrl,
-                'time' => $itemTime,
-                'parent' => $itemParent,
-                'status_code' => $statusCode,
-            );
-            --$limit;
-        }
-
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function purge()
-    {
-        // delete only items from index
-        $indexName = $this->getIndexName();
-
-        $indexContent = $this->getValue($indexName, self::REDIS_SERIALIZER_NONE);
-
-        if (!$indexContent) {
-            return false;
-        }
-
-        $profileList = explode("\n", $indexContent);
-
-        $result = array();
-
-        foreach ($profileList as $item) {
-            if ($item == '') {
-                continue;
-            }
-
-            if (false !== $pos = strpos($item, "\t")) {
-                $result[] = $this->getItemName(substr($item, 0, $pos));
-            }
-        }
-
-        $result[] = $indexName;
-
-        return $this->delete($result);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($token)
-    {
-        if (empty($token)) {
-            return false;
-        }
-
-        $profile = $this->getValue($this->getItemName($token), self::REDIS_SERIALIZER_PHP);
-
-        if (false !== $profile) {
-            $profile = $this->createProfileFromData($token, $profile);
-        }
-
-        return $profile;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write(Profile $profile)
-    {
-        $data = array(
-            'token' => $profile->getToken(),
-            'parent' => $profile->getParentToken(),
-            'children' => array_map(function ($p) { return $p->getToken(); }, $profile->getChildren()),
-            'data' => $profile->getCollectors(),
-            'ip' => $profile->getIp(),
-            'method' => $profile->getMethod(),
-            'url' => $profile->getUrl(),
-            'time' => $profile->getTime(),
-        );
-
-        $profileIndexed = false !== $this->getValue($this->getItemName($profile->getToken()));
-
-        if ($this->setValue($this->getItemName($profile->getToken()), $data, $this->lifetime, self::REDIS_SERIALIZER_PHP)) {
-            if (!$profileIndexed) {
-                // Add to index
-                $indexName = $this->getIndexName();
-
-                $indexRow = implode("\t", array(
-                    $profile->getToken(),
-                    $profile->getIp(),
-                    $profile->getMethod(),
-                    $profile->getUrl(),
-                    $profile->getTime(),
-                    $profile->getParentToken(),
-                    $profile->getStatusCode(),
-                ))."\n";
-
-                return $this->appendValue($indexName, $indexRow, $this->lifetime);
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Internal convenience method that returns the instance of Redis.
-     *
-     * @return \Redis
-     *
-     * @throws \RuntimeException
-     */
-    protected function getRedis()
-    {
-        if (null === $this->redis) {
-            $data = parse_url($this->dsn);
-
-            if (false === $data || !isset($data['scheme']) || $data['scheme'] !== 'redis' || !isset($data['host']) || !isset($data['port'])) {
-                throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use Redis with an invalid dsn "%s". The minimal expected format is "redis://[host]:port".', $this->dsn));
-            }
-
-            if (!extension_loaded('redis')) {
-                throw new \RuntimeException('RedisProfilerStorage requires that the redis extension is loaded.');
-            }
-
-            $redis = new \Redis();
-            $redis->connect($data['host'], $data['port']);
-
-            if (isset($data['path'])) {
-                $redis->select(substr($data['path'], 1));
-            }
-
-            if (isset($data['pass'])) {
-                $redis->auth($data['pass']);
-            }
-
-            $redis->setOption(self::REDIS_OPT_PREFIX, self::TOKEN_PREFIX);
-
-            $this->redis = $redis;
-        }
-
-        return $this->redis;
-    }
-
-    /**
-     * Set instance of the Redis.
-     *
-     * @param \Redis $redis
-     */
-    public function setRedis($redis)
-    {
-        $this->redis = $redis;
-    }
-
-    private function createProfileFromData($token, $data, $parent = null)
-    {
-        $profile = new Profile($token);
-        $profile->setIp($data['ip']);
-        $profile->setMethod($data['method']);
-        $profile->setUrl($data['url']);
-        $profile->setTime($data['time']);
-        $profile->setCollectors($data['data']);
-
-        if (!$parent && $data['parent']) {
-            $parent = $this->read($data['parent']);
-        }
-
-        if ($parent) {
-            $profile->setParent($parent);
-        }
-
-        foreach ($data['children'] as $token) {
-            if (!$token) {
-                continue;
-            }
-
-            if (!$childProfileData = $this->getValue($this->getItemName($token), self::REDIS_SERIALIZER_PHP)) {
-                continue;
-            }
-
-            $profile->addChild($this->createProfileFromData($token, $childProfileData, $profile));
-        }
-
-        return $profile;
-    }
-
-    /**
-     * Gets the item name.
-     *
-     * @param string $token
-     *
-     * @return string
-     */
-    private function getItemName($token)
-    {
-        $name = $token;
-
-        if ($this->isItemNameValid($name)) {
-            return $name;
-        }
-
-        return false;
-    }
-
-    /**
-     * Gets the name of the index.
-     *
-     * @return string
-     */
-    private function getIndexName()
-    {
-        $name = 'index';
-
-        if ($this->isItemNameValid($name)) {
-            return $name;
-        }
-
-        return false;
-    }
-
-    private function isItemNameValid($name)
-    {
-        $length = strlen($name);
-
-        if ($length > 2147483648) {
-            throw new \RuntimeException(sprintf('The Redis item key "%s" is too long (%s bytes). Allowed maximum size is 2^31 bytes.', $name, $length));
-        }
-
-        return true;
-    }
-
-    /**
-     * Retrieves an item from the Redis server.
-     *
-     * @param string $key
-     * @param int    $serializer
-     *
-     * @return mixed
-     */
-    private function getValue($key, $serializer = self::REDIS_SERIALIZER_NONE)
-    {
-        $redis = $this->getRedis();
-        $redis->setOption(self::REDIS_OPT_SERIALIZER, $serializer);
-
-        return $redis->get($key);
-    }
-
-    /**
-     * Stores an item on the Redis server under the specified key.
-     *
-     * @param string $key
-     * @param mixed  $value
-     * @param int    $expiration
-     * @param int    $serializer
-     *
-     * @return bool
-     */
-    private function setValue($key, $value, $expiration = 0, $serializer = self::REDIS_SERIALIZER_NONE)
-    {
-        $redis = $this->getRedis();
-        $redis->setOption(self::REDIS_OPT_SERIALIZER, $serializer);
-
-        return $redis->setex($key, $expiration, $value);
-    }
-
-    /**
-     * Appends data to an existing item on the Redis server.
-     *
-     * @param string $key
-     * @param string $value
-     * @param int    $expiration
-     *
-     * @return bool
-     */
-    private function appendValue($key, $value, $expiration = 0)
-    {
-        $redis = $this->getRedis();
-        $redis->setOption(self::REDIS_OPT_SERIALIZER, self::REDIS_SERIALIZER_NONE);
-
-        if ($redis->exists($key)) {
-            $redis->append($key, $value);
-
-            return $redis->setTimeout($key, $expiration);
-        }
-
-        return $redis->setex($key, $expiration, $value);
-    }
-
-    /**
-     * Removes the specified keys.
-     *
-     * @param array $keys
-     *
-     * @return bool
-     */
-    private function delete(array $keys)
-    {
-        return (bool) $this->getRedis()->delete($keys);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Profiler/SqliteProfilerStorage.php b/core/vendor/symfony/http-kernel/Profiler/SqliteProfilerStorage.php
deleted file mode 100644
index 4a996fd..0000000
--- a/core/vendor/symfony/http-kernel/Profiler/SqliteProfilerStorage.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Profiler;
-
-/**
- * SqliteProfilerStorage stores profiling information in a SQLite database.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class SqliteProfilerStorage extends PdoProfilerStorage
-{
-    /**
-     * @throws \RuntimeException When neither of SQLite3 or PDO_SQLite extension is enabled
-     */
-    protected function initDb()
-    {
-        if (null === $this->db || $this->db instanceof \SQLite3) {
-            if (0 !== strpos($this->dsn, 'sqlite')) {
-                throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use Sqlite with an invalid dsn "%s". The expected format is "sqlite:/path/to/the/db/file".', $this->dsn));
-            }
-            if (class_exists('SQLite3')) {
-                $db = new \SQLite3(substr($this->dsn, 7, strlen($this->dsn)), \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE);
-                if (method_exists($db, 'busyTimeout')) {
-                    // busyTimeout only exists for PHP >= 5.3.3
-                    $db->busyTimeout(1000);
-                }
-            } elseif (class_exists('PDO') && in_array('sqlite', \PDO::getAvailableDrivers(), true)) {
-                $db = new \PDO($this->dsn);
-            } else {
-                throw new \RuntimeException('You need to enable either the SQLite3 or PDO_SQLite extension for the profiler to run properly.');
-            }
-
-            $db->exec('PRAGMA temp_store=MEMORY; PRAGMA journal_mode=MEMORY;');
-            $db->exec('CREATE TABLE IF NOT EXISTS sf_profiler_data (token STRING, data STRING, ip STRING, method STRING, url STRING, time INTEGER, parent STRING, created_at INTEGER, status_code INTEGER)');
-            $db->exec('CREATE INDEX IF NOT EXISTS data_created_at ON sf_profiler_data (created_at)');
-            $db->exec('CREATE INDEX IF NOT EXISTS data_ip ON sf_profiler_data (ip)');
-            $db->exec('CREATE INDEX IF NOT EXISTS data_method ON sf_profiler_data (method)');
-            $db->exec('CREATE INDEX IF NOT EXISTS data_url ON sf_profiler_data (url)');
-            $db->exec('CREATE INDEX IF NOT EXISTS data_parent ON sf_profiler_data (parent)');
-            $db->exec('CREATE UNIQUE INDEX IF NOT EXISTS data_token ON sf_profiler_data (token)');
-
-            $this->db = $db;
-        }
-
-        return $this->db;
-    }
-
-    protected function exec($db, $query, array $args = array())
-    {
-        if ($db instanceof \SQLite3) {
-            $stmt = $this->prepareStatement($db, $query);
-            foreach ($args as $arg => $val) {
-                $stmt->bindValue($arg, $val, is_int($val) ? \SQLITE3_INTEGER : \SQLITE3_TEXT);
-            }
-
-            $res = $stmt->execute();
-            if (false === $res) {
-                throw new \RuntimeException(sprintf('Error executing SQLite query "%s"', $query));
-            }
-            $res->finalize();
-        } else {
-            parent::exec($db, $query, $args);
-        }
-    }
-
-    protected function fetch($db, $query, array $args = array())
-    {
-        $return = array();
-
-        if ($db instanceof \SQLite3) {
-            $stmt = $this->prepareStatement($db, $query, true);
-            foreach ($args as $arg => $val) {
-                $stmt->bindValue($arg, $val, is_int($val) ? \SQLITE3_INTEGER : \SQLITE3_TEXT);
-            }
-            $res = $stmt->execute();
-            while ($row = $res->fetchArray(\SQLITE3_ASSOC)) {
-                $return[] = $row;
-            }
-            $res->finalize();
-            $stmt->close();
-        } else {
-            $return = parent::fetch($db, $query, $args);
-        }
-
-        return $return;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function buildCriteria($ip, $url, $start, $end, $limit, $method)
-    {
-        $criteria = array();
-        $args = array();
-
-        if ($ip = preg_replace('/[^\d\.]/', '', $ip)) {
-            $criteria[] = 'ip LIKE :ip';
-            $args[':ip'] = '%'.$ip.'%';
-        }
-
-        if ($url) {
-            $criteria[] = 'url LIKE :url ESCAPE "\"';
-            $args[':url'] = '%'.addcslashes($url, '%_\\').'%';
-        }
-
-        if ($method) {
-            $criteria[] = 'method = :method';
-            $args[':method'] = $method;
-        }
-
-        if (!empty($start)) {
-            $criteria[] = 'time >= :start';
-            $args[':start'] = $start;
-        }
-
-        if (!empty($end)) {
-            $criteria[] = 'time <= :end';
-            $args[':end'] = $end;
-        }
-
-        return array($criteria, $args);
-    }
-
-    protected function close($db)
-    {
-        if ($db instanceof \SQLite3) {
-            $db->close();
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/README.md b/core/vendor/symfony/http-kernel/README.md
deleted file mode 100644
index 9ec8c04..0000000
--- a/core/vendor/symfony/http-kernel/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-HttpKernel Component
-====================
-
-HttpKernel provides the building blocks to create flexible and fast HTTP-based
-frameworks.
-
-``HttpKernelInterface`` is the core interface of the Symfony full-stack
-framework:
-
-```php
-interface HttpKernelInterface
-{
-    /**
-     * Handles a Request to convert it to a Response.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return Response A Response instance
-     */
-    function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true);
-}
-```
-
-It takes a ``Request`` as an input and should return a ``Response`` as an
-output. Using this interface makes your code compatible with all frameworks
-using the Symfony components. And this will give you many cool features for
-free.
-
-Creating a framework based on the Symfony components is really easy. Here is
-a very simple, but fully-featured framework based on the Symfony components:
-
-```php
-$routes = new RouteCollection();
-$routes->add('hello', new Route('/hello', array('_controller' =>
-    function (Request $request) {
-        return new Response(sprintf("Hello %s", $request->get('name')));
-    }
-)));
-
-$request = Request::createFromGlobals();
-
-$context = new RequestContext();
-$context->fromRequest($request);
-
-$matcher = new UrlMatcher($routes, $context);
-
-$dispatcher = new EventDispatcher();
-$dispatcher->addSubscriber(new RouterListener($matcher));
-
-$resolver = new ControllerResolver();
-
-$kernel = new HttpKernel($dispatcher, $resolver);
-
-$kernel->handle($request)->send();
-```
-
-This is all you need to create a flexible framework with the Symfony
-components.
-
-Want to add an HTTP reverse proxy and benefit from HTTP caching and Edge Side
-Includes?
-
-```php
-$kernel = new HttpKernel($dispatcher, $resolver);
-
-$kernel = new HttpCache($kernel, new Store(__DIR__.'/cache'));
-```
-
-Want to functional test this small framework?
-
-```php
-$client = new Client($kernel);
-$crawler = $client->request('GET', '/hello/Fabien');
-
-$this->assertEquals('Fabien', $crawler->filter('p > span')->text());
-```
-
-Want nice error pages instead of ugly PHP exceptions?
-
-```php
-$dispatcher->addSubscriber(new ExceptionListener(function (Request $request) {
-    $msg = 'Something went wrong! ('.$request->get('exception')->getMessage().')';
-
-    return new Response($msg, 500);
-}));
-```
-
-And that's why the simple looking ``HttpKernelInterface`` is so powerful. It
-gives you access to a lot of cool features, ready to be used out of the box,
-with no efforts.
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/HttpKernel/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/http-kernel/TerminableInterface.php b/core/vendor/symfony/http-kernel/TerminableInterface.php
deleted file mode 100644
index fc0e580..0000000
--- a/core/vendor/symfony/http-kernel/TerminableInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Terminable extends the Kernel request/response cycle with dispatching a post
- * response event after sending the response and before shutting down the kernel.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @author Pierre Minnieur <pierre.minnieur@sensiolabs.de>
- *
- * @api
- */
-interface TerminableInterface
-{
-    /**
-     * Terminates a request/response cycle.
-     *
-     * Should be called after sending the response and before shutting down the kernel.
-     *
-     * @param Request  $request  A Request instance
-     * @param Response $response A Response instance
-     *
-     * @api
-     */
-    public function terminate(Request $request, Response $response);
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php b/core/vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php
deleted file mode 100644
index c9059a7..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Bundle;
-
-use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\ExtensionNotValidBundle;
-use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\ExtensionPresentBundle;
-use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle\ExtensionAbsentBundle;
-use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command\FooCommand;
-
-class BundleTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRegisterCommands()
-    {
-        $cmd = new FooCommand();
-        $app = $this->getMock('Symfony\Component\Console\Application');
-        $app->expects($this->once())->method('add')->with($this->equalTo($cmd));
-
-        $bundle = new ExtensionPresentBundle();
-        $bundle->registerCommands($app);
-
-        $bundle2 = new ExtensionAbsentBundle();
-
-        $this->assertNull($bundle2->registerCommands($app));
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage must implement Symfony\Component\DependencyInjection\Extension\ExtensionInterface
-     */
-    public function testGetContainerExtensionWithInvalidClass()
-    {
-        $bundle = new ExtensionNotValidBundle();
-        $bundle->getContainerExtension();
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php b/core/vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php
deleted file mode 100644
index b54d169..0000000
--- a/core/vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\CacheClearer;
-
-use Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer;
-
-class ChainCacheClearerTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $cacheDir;
-
-    public static function setUpBeforeClass()
-    {
-        self::$cacheDir = tempnam(sys_get_temp_dir(), 'sf2_cache_clearer_dir');
-    }
-
-    public static function tearDownAfterClass()
-    {
-        @unlink(self::$cacheDir);
-    }
-
-    public function testInjectClearersInConstructor()
-    {
-        $clearer = $this->getMockClearer();
-        $clearer
-            ->expects($this->once())
-            ->method('clear');
-
-        $chainClearer = new ChainCacheClearer(array($clearer));
-        $chainClearer->clear(self::$cacheDir);
-    }
-
-    public function testInjectClearerUsingAdd()
-    {
-        $clearer = $this->getMockClearer();
-        $clearer
-            ->expects($this->once())
-            ->method('clear');
-
-        $chainClearer = new ChainCacheClearer();
-        $chainClearer->add($clearer);
-        $chainClearer->clear(self::$cacheDir);
-    }
-
-    protected function getMockClearer()
-    {
-        return $this->getMock('Symfony\Component\HttpKernel\CacheClearer\CacheClearerInterface');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php b/core/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
deleted file mode 100644
index e78c8d1..0000000
--- a/core/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\CacheWarmer;
-
-use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate;
-
-class CacheWarmerAggregateTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $cacheDir;
-
-    public static function setUpBeforeClass()
-    {
-        self::$cacheDir = tempnam(sys_get_temp_dir(), 'sf2_cache_warmer_dir');
-    }
-
-    public static function tearDownAfterClass()
-    {
-        @unlink(self::$cacheDir);
-    }
-
-    public function testInjectWarmersUsingConstructor()
-    {
-        $warmer = $this->getCacheWarmerMock();
-        $warmer
-            ->expects($this->once())
-            ->method('warmUp');
-        $aggregate = new CacheWarmerAggregate(array($warmer));
-        $aggregate->warmUp(self::$cacheDir);
-    }
-
-    public function testInjectWarmersUsingAdd()
-    {
-        $warmer = $this->getCacheWarmerMock();
-        $warmer
-            ->expects($this->once())
-            ->method('warmUp');
-        $aggregate = new CacheWarmerAggregate();
-        $aggregate->add($warmer);
-        $aggregate->warmUp(self::$cacheDir);
-    }
-
-    public function testInjectWarmersUsingSetWarmers()
-    {
-        $warmer = $this->getCacheWarmerMock();
-        $warmer
-            ->expects($this->once())
-            ->method('warmUp');
-        $aggregate = new CacheWarmerAggregate();
-        $aggregate->setWarmers(array($warmer));
-        $aggregate->warmUp(self::$cacheDir);
-    }
-
-    public function testWarmupDoesCallWarmupOnOptionalWarmersWhenEnableOptionalWarmersIsEnabled()
-    {
-        $warmer = $this->getCacheWarmerMock();
-        $warmer
-            ->expects($this->never())
-            ->method('isOptional');
-        $warmer
-            ->expects($this->once())
-            ->method('warmUp');
-
-        $aggregate = new CacheWarmerAggregate(array($warmer));
-        $aggregate->enableOptionalWarmers();
-        $aggregate->warmUp(self::$cacheDir);
-    }
-
-    public function testWarmupDoesNotCallWarmupOnOptionalWarmersWhenEnableOptionalWarmersIsNotEnabled()
-    {
-        $warmer = $this->getCacheWarmerMock();
-        $warmer
-            ->expects($this->once())
-            ->method('isOptional')
-            ->will($this->returnValue(true));
-        $warmer
-            ->expects($this->never())
-            ->method('warmUp');
-
-        $aggregate = new CacheWarmerAggregate(array($warmer));
-        $aggregate->warmUp(self::$cacheDir);
-    }
-
-    protected function getCacheWarmerMock()
-    {
-        $warmer = $this->getMockBuilder('Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        return $warmer;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerTest.php b/core/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerTest.php
deleted file mode 100644
index f0ab05d..0000000
--- a/core/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\CacheWarmer;
-
-use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmer;
-
-class CacheWarmerTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $cacheFile;
-
-    public static function setUpBeforeClass()
-    {
-        self::$cacheFile = tempnam(sys_get_temp_dir(), 'sf2_cache_warmer_dir');
-    }
-
-    public static function tearDownAfterClass()
-    {
-        @unlink(self::$cacheFile);
-    }
-
-    public function testWriteCacheFileCreatesTheFile()
-    {
-        $warmer = new TestCacheWarmer(self::$cacheFile);
-        $warmer->warmUp(dirname(self::$cacheFile));
-
-        $this->assertTrue(file_exists(self::$cacheFile));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testWriteNonWritableCacheFileThrowsARuntimeException()
-    {
-        $nonWritableFile = '/this/file/is/very/probably/not/writable';
-        $warmer = new TestCacheWarmer($nonWritableFile);
-        $warmer->warmUp(dirname($nonWritableFile));
-    }
-}
-
-class TestCacheWarmer extends CacheWarmer
-{
-    protected $file;
-
-    public function __construct($file)
-    {
-        $this->file = $file;
-    }
-
-    public function warmUp($cacheDir)
-    {
-        $this->writeCacheFile($this->file, 'content');
-    }
-
-    public function isOptional()
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/ClientTest.php b/core/vendor/symfony/http-kernel/Tests/ClientTest.php
deleted file mode 100644
index b5d2c9c..0000000
--- a/core/vendor/symfony/http-kernel/Tests/ClientTest.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests;
-
-use Symfony\Component\HttpKernel\Client;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\StreamedResponse;
-use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpKernel\Tests\Fixtures\TestClient;
-
-class ClientTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDoRequest()
-    {
-        $client = new Client(new TestHttpKernel());
-
-        $client->request('GET', '/');
-        $this->assertEquals('Request: /', $client->getResponse()->getContent(), '->doRequest() uses the request handler to make the request');
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Request', $client->getInternalRequest());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Request', $client->getRequest());
-        $this->assertInstanceOf('Symfony\Component\BrowserKit\Response', $client->getInternalResponse());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $client->getResponse());
-
-        $client->request('GET', 'http://www.example.com/');
-        $this->assertEquals('Request: /', $client->getResponse()->getContent(), '->doRequest() uses the request handler to make the request');
-        $this->assertEquals('www.example.com', $client->getRequest()->getHost(), '->doRequest() uses the request handler to make the request');
-
-        $client->request('GET', 'http://www.example.com/?parameter=http://google.com');
-        $this->assertEquals('http://www.example.com/?parameter='.urlencode('http://google.com'), $client->getRequest()->getUri(), '->doRequest() uses the request handler to make the request');
-    }
-
-    public function testGetScript()
-    {
-        $client = new TestClient(new TestHttpKernel());
-        $client->insulate();
-        $client->request('GET', '/');
-
-        $this->assertEquals('Request: /', $client->getResponse()->getContent(), '->getScript() returns a script that uses the request handler to make the request');
-    }
-
-    public function testFilterResponseConvertsCookies()
-    {
-        $client = new Client(new TestHttpKernel());
-
-        $r = new \ReflectionObject($client);
-        $m = $r->getMethod('filterResponse');
-        $m->setAccessible(true);
-
-        $expected = array(
-            'foo=bar; expires=Sun, 15 Feb 2009 20:00:00 GMT; domain=http://example.com; path=/foo; secure; httponly',
-            'foo1=bar1; expires=Sun, 15 Feb 2009 20:00:00 GMT; domain=http://example.com; path=/foo; secure; httponly',
-        );
-
-        $response = new Response();
-        $response->headers->setCookie(new Cookie('foo', 'bar', \DateTime::createFromFormat('j-M-Y H:i:s T', '15-Feb-2009 20:00:00 GMT')->format('U'), '/foo', 'http://example.com', true, true));
-        $domResponse = $m->invoke($client, $response);
-        $this->assertEquals($expected[0], $domResponse->getHeader('Set-Cookie'));
-
-        $response = new Response();
-        $response->headers->setCookie(new Cookie('foo', 'bar', \DateTime::createFromFormat('j-M-Y H:i:s T', '15-Feb-2009 20:00:00 GMT')->format('U'), '/foo', 'http://example.com', true, true));
-        $response->headers->setCookie(new Cookie('foo1', 'bar1', \DateTime::createFromFormat('j-M-Y H:i:s T', '15-Feb-2009 20:00:00 GMT')->format('U'), '/foo', 'http://example.com', true, true));
-        $domResponse = $m->invoke($client, $response);
-        $this->assertEquals($expected[0], $domResponse->getHeader('Set-Cookie'));
-        $this->assertEquals($expected, $domResponse->getHeader('Set-Cookie', false));
-    }
-
-    public function testFilterResponseSupportsStreamedResponses()
-    {
-        $client = new Client(new TestHttpKernel());
-
-        $r = new \ReflectionObject($client);
-        $m = $r->getMethod('filterResponse');
-        $m->setAccessible(true);
-
-        $response = new StreamedResponse(function () {
-            echo 'foo';
-        });
-
-        $domResponse = $m->invoke($client, $response);
-        $this->assertEquals('foo', $domResponse->getContent());
-    }
-
-    public function testUploadedFile()
-    {
-        $source = tempnam(sys_get_temp_dir(), 'source');
-        $target = sys_get_temp_dir().'/sf.moved.file';
-        @unlink($target);
-
-        $kernel = new TestHttpKernel();
-        $client = new Client($kernel);
-
-        $files = array(
-            array('tmp_name' => $source, 'name' => 'original', 'type' => 'mime/original', 'size' => 123, 'error' => UPLOAD_ERR_OK),
-            new UploadedFile($source, 'original', 'mime/original', 123, UPLOAD_ERR_OK, true),
-        );
-
-        $file = null;
-        foreach ($files as $file) {
-            $client->request('POST', '/', array(), array('foo' => $file));
-
-            $files = $client->getRequest()->files->all();
-
-            $this->assertCount(1, $files);
-
-            $file = $files['foo'];
-
-            $this->assertEquals('original', $file->getClientOriginalName());
-            $this->assertEquals('mime/original', $file->getClientMimeType());
-            $this->assertEquals('123', $file->getClientSize());
-            $this->assertTrue($file->isValid());
-        }
-
-        $file->move(dirname($target), basename($target));
-
-        $this->assertFileExists($target);
-        unlink($target);
-    }
-
-    public function testUploadedFileWhenNoFileSelected()
-    {
-        $kernel = new TestHttpKernel();
-        $client = new Client($kernel);
-
-        $file = array('tmp_name' => '', 'name' => '', 'type' => '', 'size' => 0, 'error' => UPLOAD_ERR_NO_FILE);
-
-        $client->request('POST', '/', array(), array('foo' => $file));
-
-        $files = $client->getRequest()->files->all();
-
-        $this->assertCount(1, $files);
-        $this->assertNull($files['foo']);
-    }
-
-    public function testUploadedFileWhenSizeExceedsUploadMaxFileSize()
-    {
-        $source = tempnam(sys_get_temp_dir(), 'source');
-
-        $kernel = new TestHttpKernel();
-        $client = new Client($kernel);
-
-        $file = $this
-            ->getMockBuilder('Symfony\Component\HttpFoundation\File\UploadedFile')
-            ->setConstructorArgs(array($source, 'original', 'mime/original', 123, UPLOAD_ERR_OK, true))
-            ->setMethods(array('getSize'))
-            ->getMock()
-        ;
-
-        $file->expects($this->once())
-            ->method('getSize')
-            ->will($this->returnValue(INF))
-        ;
-
-        $client->request('POST', '/', array(), array($file));
-
-        $files = $client->getRequest()->files->all();
-
-        $this->assertCount(1, $files);
-
-        $file = $files[0];
-
-        $this->assertFalse($file->isValid());
-        $this->assertEquals(UPLOAD_ERR_INI_SIZE, $file->getError());
-        $this->assertEquals('mime/original', $file->getClientMimeType());
-        $this->assertEquals('original', $file->getClientOriginalName());
-        $this->assertEquals(0, $file->getClientSize());
-
-        unlink($source);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Config/EnvParametersResourceTest.php b/core/vendor/symfony/http-kernel/Tests/Config/EnvParametersResourceTest.php
deleted file mode 100644
index ee5ecce..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Config/EnvParametersResourceTest.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Config;
-
-use Symfony\Component\HttpKernel\Config\EnvParametersResource;
-
-class EnvParametersResourceTest extends \PHPUnit_Framework_TestCase
-{
-    protected $prefix = '__DUMMY_';
-    protected $initialEnv;
-    protected $resource;
-
-    protected function setUp()
-    {
-        $this->initialEnv = array(
-            $this->prefix.'1' => 'foo',
-            $this->prefix.'2' => 'bar',
-        );
-
-        foreach ($this->initialEnv as $key => $value) {
-            $_SERVER[$key] = $value;
-        }
-
-        $this->resource = new EnvParametersResource($this->prefix);
-    }
-
-    protected function tearDown()
-    {
-        foreach ($_SERVER as $key => $value) {
-            if (0 === strpos($key, $this->prefix)) {
-                unset($_SERVER[$key]);
-            }
-        }
-    }
-
-    public function testGetResource()
-    {
-        $this->assertSame(
-            array('prefix' => $this->prefix, 'variables' => $this->initialEnv),
-            $this->resource->getResource(),
-            '->getResource() returns the resource'
-        );
-    }
-
-    public function testToString()
-    {
-        $this->assertSame(
-            serialize(array('prefix' => $this->prefix, 'variables' => $this->initialEnv)),
-            (string) $this->resource
-        );
-    }
-
-    public function testIsFreshNotChanged()
-    {
-        $this->assertTrue(
-            $this->resource->isFresh(time()),
-            '->isFresh() returns true if the variables have not changed'
-        );
-    }
-
-    public function testIsFreshValueChanged()
-    {
-        reset($this->initialEnv);
-        $_SERVER[key($this->initialEnv)] = 'baz';
-
-        $this->assertFalse(
-            $this->resource->isFresh(time()),
-            '->isFresh() returns false if a variable has been changed'
-        );
-    }
-
-    public function testIsFreshValueRemoved()
-    {
-        reset($this->initialEnv);
-        unset($_SERVER[key($this->initialEnv)]);
-
-        $this->assertFalse(
-            $this->resource->isFresh(time()),
-            '->isFresh() returns false if a variable has been removed'
-        );
-    }
-
-    public function testIsFreshValueAdded()
-    {
-        $_SERVER[$this->prefix.'3'] = 'foo';
-
-        $this->assertFalse(
-            $this->resource->isFresh(time()),
-            '->isFresh() returns false if a variable has been added'
-        );
-    }
-
-    public function testSerializeUnserialize()
-    {
-        $this->assertEquals($this->resource, unserialize(serialize($this->resource)));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php b/core/vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php
deleted file mode 100644
index be59486..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Config;
-
-use Symfony\Component\HttpKernel\Config\FileLocator;
-
-class FileLocatorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLocate()
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\KernelInterface');
-        $kernel
-            ->expects($this->atLeastOnce())
-            ->method('locateResource')
-            ->with('@BundleName/some/path', null, true)
-            ->will($this->returnValue('/bundle-name/some/path'));
-        $locator = new FileLocator($kernel);
-        $this->assertEquals('/bundle-name/some/path', $locator->locate('@BundleName/some/path'));
-
-        $kernel
-            ->expects($this->never())
-            ->method('locateResource');
-        $this->setExpectedException('LogicException');
-        $locator->locate('/some/path');
-    }
-
-    public function testLocateWithGlobalResourcePath()
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\KernelInterface');
-        $kernel
-            ->expects($this->atLeastOnce())
-            ->method('locateResource')
-            ->with('@BundleName/some/path', '/global/resource/path', false);
-
-        $locator = new FileLocator($kernel, '/global/resource/path');
-        $locator->locate('@BundleName/some/path', null, false);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php b/core/vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php
deleted file mode 100644
index 32db4e4..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Controller;
-
-use Psr\Log\LoggerInterface;
-use Symfony\Component\HttpKernel\Controller\ControllerResolver;
-use Symfony\Component\HttpFoundation\Request;
-
-class ControllerResolverTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetControllerWithoutControllerParameter()
-    {
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $logger->expects($this->once())->method('warning')->with('Unable to look for the controller as the "_controller" parameter is missing.');
-        $resolver = $this->createControllerResolver($logger);
-
-        $request = Request::create('/');
-        $this->assertFalse($resolver->getController($request), '->getController() returns false when the request has no _controller attribute');
-    }
-
-    public function testGetControllerWithLambda()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', $lambda = function () {});
-        $controller = $resolver->getController($request);
-        $this->assertSame($lambda, $controller);
-    }
-
-    public function testGetControllerWithObjectAndInvokeMethod()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', $this);
-        $controller = $resolver->getController($request);
-        $this->assertSame($this, $controller);
-    }
-
-    public function testGetControllerWithObjectAndMethod()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', array($this, 'controllerMethod1'));
-        $controller = $resolver->getController($request);
-        $this->assertSame(array($this, 'controllerMethod1'), $controller);
-    }
-
-    public function testGetControllerWithClassAndMethod()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', array('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', 'controllerMethod4'));
-        $controller = $resolver->getController($request);
-        $this->assertSame(array('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', 'controllerMethod4'), $controller);
-    }
-
-    public function testGetControllerWithObjectAndMethodAsString()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest::controllerMethod1');
-        $controller = $resolver->getController($request);
-        $this->assertInstanceOf('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', $controller[0], '->getController() returns a PHP callable');
-    }
-
-    public function testGetControllerWithClassAndInvokeMethod()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest');
-        $controller = $resolver->getController($request);
-        $this->assertInstanceOf('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest', $controller);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testGetControllerOnObjectWithoutInvokeMethod()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', new \stdClass());
-        $resolver->getController($request);
-    }
-
-    public function testGetControllerWithFunction()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', 'Symfony\Component\HttpKernel\Tests\Controller\some_controller_function');
-        $controller = $resolver->getController($request);
-        $this->assertSame('Symfony\Component\HttpKernel\Tests\Controller\some_controller_function', $controller);
-    }
-
-    /**
-     * @dataProvider      getUndefinedControllers
-     * @expectedException \InvalidArgumentException
-     */
-    public function testGetControllerOnNonUndefinedFunction($controller)
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', $controller);
-        $resolver->getController($request);
-    }
-
-    public function getUndefinedControllers()
-    {
-        return array(
-            array('foo'),
-            array('foo::bar'),
-            array('stdClass'),
-            array('Symfony\Component\HttpKernel\Tests\Controller\ControllerResolverTest::bar'),
-        );
-    }
-
-    public function testGetArguments()
-    {
-        $resolver = $this->createControllerResolver();
-
-        $request = Request::create('/');
-        $controller = array(new self(), 'testGetArguments');
-        $this->assertEquals(array(), $resolver->getArguments($request, $controller), '->getArguments() returns an empty array if the method takes no arguments');
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $controller = array(new self(), 'controllerMethod1');
-        $this->assertEquals(array('foo'), $resolver->getArguments($request, $controller), '->getArguments() returns an array of arguments for the controller method');
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $controller = array(new self(), 'controllerMethod2');
-        $this->assertEquals(array('foo', null), $resolver->getArguments($request, $controller), '->getArguments() uses default values if present');
-
-        $request->attributes->set('bar', 'bar');
-        $this->assertEquals(array('foo', 'bar'), $resolver->getArguments($request, $controller), '->getArguments() overrides default values if provided in the request attributes');
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $controller = function ($foo) {};
-        $this->assertEquals(array('foo'), $resolver->getArguments($request, $controller));
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $controller = function ($foo, $bar = 'bar') {};
-        $this->assertEquals(array('foo', 'bar'), $resolver->getArguments($request, $controller));
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $controller = new self();
-        $this->assertEquals(array('foo', null), $resolver->getArguments($request, $controller));
-        $request->attributes->set('bar', 'bar');
-        $this->assertEquals(array('foo', 'bar'), $resolver->getArguments($request, $controller));
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $request->attributes->set('foobar', 'foobar');
-        $controller = 'Symfony\Component\HttpKernel\Tests\Controller\some_controller_function';
-        $this->assertEquals(array('foo', 'foobar'), $resolver->getArguments($request, $controller));
-
-        $request = Request::create('/');
-        $request->attributes->set('foo', 'foo');
-        $request->attributes->set('foobar', 'foobar');
-        $controller = array(new self(), 'controllerMethod3');
-
-        if (PHP_VERSION_ID === 50316) {
-            $this->markTestSkipped('PHP 5.3.16 has a major bug in the Reflection sub-system');
-        } else {
-            try {
-                $resolver->getArguments($request, $controller);
-                $this->fail('->getArguments() throws a \RuntimeException exception if it cannot determine the argument value');
-            } catch (\Exception $e) {
-                $this->assertInstanceOf('\RuntimeException', $e, '->getArguments() throws a \RuntimeException exception if it cannot determine the argument value');
-            }
-        }
-
-        $request = Request::create('/');
-        $controller = array(new self(), 'controllerMethod5');
-        $this->assertEquals(array($request), $resolver->getArguments($request, $controller), '->getArguments() injects the request');
-    }
-
-    public function testCreateControllerCanReturnAnyCallable()
-    {
-        $mock = $this->getMock('Symfony\Component\HttpKernel\Controller\ControllerResolver', array('createController'));
-        $mock->expects($this->once())->method('createController')->will($this->returnValue('Symfony\Component\HttpKernel\Tests\Controller\some_controller_function'));
-
-        $request = Request::create('/');
-        $request->attributes->set('_controller', 'foobar');
-        $mock->getController($request);
-    }
-
-    protected function createControllerResolver(LoggerInterface $logger = null)
-    {
-        return new ControllerResolver($logger);
-    }
-
-    public function __invoke($foo, $bar = null)
-    {
-    }
-
-    public function controllerMethod1($foo)
-    {
-    }
-
-    protected function controllerMethod2($foo, $bar = null)
-    {
-    }
-
-    protected function controllerMethod3($foo, $bar = null, $foobar)
-    {
-    }
-
-    protected static function controllerMethod4()
-    {
-    }
-
-    protected function controllerMethod5(Request $request)
-    {
-    }
-}
-
-function some_controller_function($foo, $foobar)
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php
deleted file mode 100644
index 4a0dc26..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector;
-use Symfony\Component\HttpKernel\Kernel;
-use Symfony\Component\Config\Loader\LoaderInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class ConfigDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCollect()
-    {
-        $kernel = new KernelForTest('test', true);
-        $c = new ConfigDataCollector();
-        $c->setCacheVersionInfo(false);
-        $c->setKernel($kernel);
-        $c->collect(new Request(), new Response());
-
-        $this->assertSame('test', $c->getEnv());
-        $this->assertTrue($c->isDebug());
-        $this->assertSame('config', $c->getName());
-        $this->assertSame('testkernel', $c->getAppName());
-        $this->assertSame(PHP_VERSION, $c->getPhpVersion());
-        $this->assertSame(Kernel::VERSION, $c->getSymfonyVersion());
-        $this->assertNull($c->getToken());
-
-        // if else clause because we don't know it
-        if (extension_loaded('xdebug')) {
-            $this->assertTrue($c->hasXDebug());
-        } else {
-            $this->assertFalse($c->hasXDebug());
-        }
-
-        // if else clause because we don't know it
-        if (((extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'))
-                ||
-                (extension_loaded('apc') && ini_get('apc.enabled'))
-                ||
-                (extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
-                ||
-                (extension_loaded('xcache') && ini_get('xcache.cacher'))
-                ||
-                (extension_loaded('wincache') && ini_get('wincache.ocenabled')))) {
-            $this->assertTrue($c->hasAccelerator());
-        } else {
-            $this->assertFalse($c->hasAccelerator());
-        }
-    }
-}
-
-class KernelForTest extends Kernel
-{
-    public function getName()
-    {
-        return 'testkernel';
-    }
-
-    public function registerBundles()
-    {
-    }
-
-    public function getBundles()
-    {
-        return array();
-    }
-
-    public function registerContainerConfiguration(LoaderInterface $loader)
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
deleted file mode 100644
index e9b8433..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\HttpKernel\DataCollector\DumpDataCollector;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\VarDumper\Cloner\Data;
-
-/**
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class DumpDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $data = new Data(array(array(123)));
-
-        $collector = new DumpDataCollector();
-
-        $this->assertSame('dump', $collector->getName());
-
-        $collector->dump($data);
-        $line = __LINE__ - 1;
-        $this->assertSame(1, $collector->getDumpsCount());
-
-        $dump = $collector->getDumps('html');
-        $this->assertTrue(isset($dump[0]['data']));
-        $dump[0]['data'] = preg_replace('/^.*?<pre/', '<pre', $dump[0]['data']);
-        $dump[0]['data'] = preg_replace('/sf-dump-\d+/', 'sf-dump', $dump[0]['data']);
-
-        $xDump = array(
-            array(
-                'data' => "<pre class=sf-dump id=sf-dump data-indent-pad=\"  \"><span class=sf-dump-num>123</span>\n</pre><script>Sfdump(\"sf-dump\")</script>\n",
-                'name' => 'DumpDataCollectorTest.php',
-                'file' => __FILE__,
-                'line' => $line,
-                'fileExcerpt' => false,
-            ),
-        );
-        $this->assertSame($xDump, $dump);
-
-        $this->assertStringMatchesFormat(
-            'a:1:{i:0;a:5:{s:4:"data";O:39:"Symfony\Component\VarDumper\Cloner\Data":4:{s:45:"Symfony\Component\VarDumper\Cloner\Datadata";a:1:{i:0;a:1:{i:0;i:123;}}s:49:"Symfony\Component\VarDumper\Cloner\DatamaxDepth";i:%i;s:57:"Symfony\Component\VarDumper\Cloner\DatamaxItemsPerDepth";i:%i;s:54:"Symfony\Component\VarDumper\Cloner\DatauseRefHandles";i:%i;}s:4:"name";s:25:"DumpDataCollectorTest.php";s:4:"file";s:%a',
-            str_replace("\0", '', $collector->serialize())
-        );
-
-        $this->assertSame(0, $collector->getDumpsCount());
-        $this->assertSame('a:0:{}', $collector->serialize());
-    }
-
-    public function testCollectDefault()
-    {
-        $data = new Data(array(array(123)));
-
-        $collector = new DumpDataCollector();
-
-        $collector->dump($data);
-        $line = __LINE__ - 1;
-
-        ob_start();
-        $collector->collect(new Request(), new Response());
-        $output = ob_get_clean();
-
-        if (PHP_VERSION_ID >= 50400) {
-            $this->assertSame("DumpDataCollectorTest.php on line {$line}:\n123\n", $output);
-        } else {
-            $this->assertSame("\"DumpDataCollectorTest.php on line {$line}:\"\n123\n", $output);
-        }
-        $this->assertSame(1, $collector->getDumpsCount());
-        $collector->serialize();
-    }
-
-    public function testCollectHtml()
-    {
-        $data = new Data(array(array(123)));
-
-        $collector = new DumpDataCollector(null, 'test://%f:%l');
-
-        $collector->dump($data);
-        $line = __LINE__ - 1;
-        $file = __FILE__;
-        if (PHP_VERSION_ID >= 50400) {
-            $xOutput = <<<EOTXT
- <pre class=sf-dump id=sf-dump data-indent-pad="  "><a href="test://{$file}:{$line}" title="{$file}"><span class=sf-dump-meta>DumpDataCollectorTest.php</span></a> on line <span class=sf-dump-meta>{$line}</span>:
-<span class=sf-dump-num>123</span>
-</pre>
-
-EOTXT;
-        } else {
-            $len = strlen("DumpDataCollectorTest.php on line {$line}:");
-            $xOutput = <<<EOTXT
- <pre class=sf-dump id=sf-dump data-indent-pad="  ">"<span class=sf-dump-str title="{$len} characters">DumpDataCollectorTest.php on line {$line}:</span>"
-</pre>
-<pre class=sf-dump id=sf-dump data-indent-pad="  "><span class=sf-dump-num>123</span>
-</pre>
-
-EOTXT;
-        }
-
-        ob_start();
-        $response = new Response();
-        $response->headers->set('Content-Type', 'text/html');
-        $collector->collect(new Request(), $response);
-        $output = ob_get_clean();
-        $output = preg_replace('#<(script|style).*?</\1>#s', '', $output);
-        $output = preg_replace('/sf-dump-\d+/', 'sf-dump', $output);
-
-        $this->assertSame($xOutput, $output);
-        $this->assertSame(1, $collector->getDumpsCount());
-        $collector->serialize();
-    }
-
-    public function testFlush()
-    {
-        $data = new Data(array(array(456)));
-        $collector = new DumpDataCollector();
-        $collector->dump($data);
-        $line = __LINE__ - 1;
-
-        ob_start();
-        $collector = null;
-        if (PHP_VERSION_ID >= 50400) {
-            $this->assertSame("DumpDataCollectorTest.php on line {$line}:\n456\n", ob_get_clean());
-        } else {
-            $this->assertSame("\"DumpDataCollectorTest.php on line {$line}:\"\n456\n", ob_get_clean());
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php
deleted file mode 100644
index 6c71f4c..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\Debug\Exception\FlattenException;
-use Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class ExceptionDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCollect()
-    {
-        $e = new \Exception('foo', 500);
-        $c = new ExceptionDataCollector();
-        $flattened = FlattenException::create($e);
-        $trace = $flattened->getTrace();
-
-        $this->assertFalse($c->hasException());
-
-        $c->collect(new Request(), new Response(), $e);
-
-        $this->assertTrue($c->hasException());
-        $this->assertEquals($flattened, $c->getException());
-        $this->assertSame('foo', $c->getMessage());
-        $this->assertSame(500, $c->getCode());
-        $this->assertSame('exception', $c->getName());
-        $this->assertSame($trace, $c->getTrace());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php
deleted file mode 100644
index 4303ab1..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector;
-
-class LoggerDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getCollectTestData
-     */
-    public function testCollect($nb, $logs, $expectedLogs, $expectedDeprecationCount, $expectedScreamCount, $expectedPriorities = null)
-    {
-        $logger = $this->getMock('Symfony\Component\HttpKernel\Log\DebugLoggerInterface');
-        $logger->expects($this->once())->method('countErrors')->will($this->returnValue($nb));
-        $logger->expects($this->exactly(2))->method('getLogs')->will($this->returnValue($logs));
-
-        $c = new LoggerDataCollector($logger);
-        $c->lateCollect();
-
-        $this->assertSame('logger', $c->getName());
-        $this->assertSame($nb, $c->countErrors());
-        $this->assertSame($expectedLogs ?: $logs, $c->getLogs());
-        $this->assertSame($expectedDeprecationCount, $c->countDeprecations());
-        $this->assertSame($expectedScreamCount, $c->countScreams());
-
-        if (isset($expectedPriorities)) {
-            $this->assertSame($expectedPriorities, $c->getPriorities());
-        }
-    }
-
-    public function getCollectTestData()
-    {
-        return array(
-            array(
-                1,
-                array(array('message' => 'foo', 'context' => array(), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                null,
-                0,
-                0,
-            ),
-            array(
-                1,
-                array(array('message' => 'foo', 'context' => array('foo' => fopen(__FILE__, 'r')), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                array(array('message' => 'foo', 'context' => array('foo' => 'Resource(stream)'), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                0,
-                0,
-            ),
-            array(
-                1,
-                array(array('message' => 'foo', 'context' => array('foo' => new \stdClass()), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                array(array('message' => 'foo', 'context' => array('foo' => 'Object(stdClass)'), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                0,
-                0,
-            ),
-            array(
-                1,
-                array(
-                    array('message' => 'foo', 'context' => array('type' => E_DEPRECATED, 'level' => E_ALL), 'priority' => 100, 'priorityName' => 'DEBUG'),
-                    array('message' => 'foo2', 'context' => array('type' => E_USER_DEPRECATED, 'level' => E_ALL), 'priority' => 100, 'priorityName' => 'DEBUG'),
-                ),
-                null,
-                2,
-                0,
-                array(100 => array('count' => 2, 'name' => 'DEBUG')),
-            ),
-            array(
-                1,
-                array(array('message' => 'foo3', 'context' => array('type' => E_USER_WARNING, 'level' => 0), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                array(array('message' => 'foo3', 'context' => array('type' => E_USER_WARNING, 'level' => 0, 'scream' => true), 'priority' => 100, 'priorityName' => 'DEBUG')),
-                0,
-                1,
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php
deleted file mode 100644
index 340b428..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class MemoryDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCollect()
-    {
-        $collector = new MemoryDataCollector();
-        $collector->collect(new Request(), new Response());
-
-        $this->assertInternalType('integer', $collector->getMemory());
-        $this->assertInternalType('integer', $collector->getMemoryLimit());
-        $this->assertSame('memory', $collector->getName());
-    }
-
-    /** @dataProvider getBytesConversionTestData */
-    public function testBytesConversion($limit, $bytes)
-    {
-        $collector = new MemoryDataCollector();
-        $method = new \ReflectionMethod($collector, 'convertToBytes');
-        $method->setAccessible(true);
-        $this->assertEquals($bytes, $method->invoke($collector, $limit));
-    }
-
-    public function getBytesConversionTestData()
-    {
-        return array(
-            array('2k', 2048),
-            array('2 k', 2048),
-            array('8m', 8 * 1024 * 1024),
-            array('+2 k', 2048),
-            array('+2???k', 2048),
-            array('0x10', 16),
-            array('0xf', 15),
-            array('010', 8),
-            array('+0x10 k', 16 * 1024),
-            array('1g', 1024 * 1024 * 1024),
-            array('1G', 1024 * 1024 * 1024),
-            array('-1', -1),
-            array('0', 0),
-            array('2mk', 2048), // the unit must be the last char, so in this case 'k', not 'm'
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php
deleted file mode 100644
index 2eb1c41..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\DataCollector\RequestDataCollector;
-use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class RequestDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCollect()
-    {
-        $c = new RequestDataCollector();
-
-        $c->collect($this->createRequest(), $this->createResponse());
-
-        $attributes = $c->getRequestAttributes();
-
-        $this->assertSame('request', $c->getName());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\HeaderBag', $c->getRequestHeaders());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestServer());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestCookies());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $attributes);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestRequest());
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\ParameterBag', $c->getRequestQuery());
-        $this->assertSame('html', $c->getFormat());
-        $this->assertSame('foobar', $c->getRoute());
-        $this->assertSame(array('name' => 'foo'), $c->getRouteParams());
-        $this->assertSame(array(), $c->getSessionAttributes());
-        $this->assertSame('en', $c->getLocale());
-        $this->assertRegExp('/Resource\(stream#\d+\)/', $attributes->get('resource'));
-        $this->assertSame('Object(stdClass)', $attributes->get('object'));
-
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\HeaderBag', $c->getResponseHeaders());
-        $this->assertSame('OK', $c->getStatusText());
-        $this->assertSame(200, $c->getStatusCode());
-        $this->assertSame('application/json', $c->getContentType());
-    }
-
-    /**
-     * Test various types of controller callables.
-     */
-    public function testControllerInspection()
-    {
-        // make sure we always match the line number
-        $r1 = new \ReflectionMethod($this, 'testControllerInspection');
-        $r2 = new \ReflectionMethod($this, 'staticControllerMethod');
-        $r3 = new \ReflectionClass($this);
-        // test name, callable, expected
-        $controllerTests = array(
-            array(
-                '"Regular" callable',
-                array($this, 'testControllerInspection'),
-                array(
-                    'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
-                    'method' => 'testControllerInspection',
-                    'file' => __FILE__,
-                    'line' => $r1->getStartLine(),
-                ),
-            ),
-
-            array(
-                'Closure',
-                function () { return 'foo'; },
-                array(
-                    'class' => __NAMESPACE__.'\{closure}',
-                    'method' => null,
-                    'file' => __FILE__,
-                    'line' => __LINE__ - 5,
-                ),
-            ),
-
-            array(
-                'Static callback as string',
-                'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest::staticControllerMethod',
-                'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest::staticControllerMethod',
-            ),
-
-            array(
-                'Static callable with instance',
-                array($this, 'staticControllerMethod'),
-                array(
-                    'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
-                    'method' => 'staticControllerMethod',
-                    'file' => __FILE__,
-                    'line' => $r2->getStartLine(),
-                ),
-            ),
-
-            array(
-                'Static callable with class name',
-                array('Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest', 'staticControllerMethod'),
-                array(
-                    'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
-                    'method' => 'staticControllerMethod',
-                    'file' => __FILE__,
-                    'line' => $r2->getStartLine(),
-                ),
-            ),
-
-            array(
-                'Callable with instance depending on __call()',
-                array($this, 'magicMethod'),
-                array(
-                    'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
-                    'method' => 'magicMethod',
-                    'file' => 'n/a',
-                    'line' => 'n/a',
-                ),
-            ),
-
-            array(
-                'Callable with class name depending on __callStatic()',
-                array('Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest', 'magicMethod'),
-                array(
-                    'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
-                    'method' => 'magicMethod',
-                    'file' => 'n/a',
-                    'line' => 'n/a',
-                ),
-            ),
-
-            array(
-                'Invokable controller',
-                $this,
-                array(
-                    'class' => 'Symfony\Component\HttpKernel\Tests\DataCollector\RequestDataCollectorTest',
-                    'method' => null,
-                    'file' => __FILE__,
-                    'line' => $r3->getStartLine(),
-                ),
-            ),
-        );
-
-        $c = new RequestDataCollector();
-        $request = $this->createRequest();
-        $response = $this->createResponse();
-        foreach ($controllerTests as $controllerTest) {
-            $this->injectController($c, $controllerTest[1], $request);
-            $c->collect($request, $response);
-            $this->assertSame($controllerTest[2], $c->getController(), sprintf('Testing: %s', $controllerTest[0]));
-        }
-    }
-
-    protected function createRequest()
-    {
-        $request = Request::create('http://test.com/foo?bar=baz');
-        $request->attributes->set('foo', 'bar');
-        $request->attributes->set('_route', 'foobar');
-        $request->attributes->set('_route_params', array('name' => 'foo'));
-        $request->attributes->set('resource', fopen(__FILE__, 'r'));
-        $request->attributes->set('object', new \stdClass());
-
-        return $request;
-    }
-
-    protected function createResponse()
-    {
-        $response = new Response();
-        $response->setStatusCode(200);
-        $response->headers->set('Content-Type', 'application/json');
-        $response->headers->setCookie(new Cookie('foo', 'bar', 1, '/foo', 'localhost', true, true));
-        $response->headers->setCookie(new Cookie('bar', 'foo', new \DateTime('@946684800')));
-        $response->headers->setCookie(new Cookie('bazz', 'foo', '2000-12-12'));
-
-        return $response;
-    }
-
-    /**
-     * Inject the given controller callable into the data collector.
-     */
-    protected function injectController($collector, $controller, $request)
-    {
-        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
-        $httpKernel = new HttpKernel(new EventDispatcher(), $resolver);
-        $event = new FilterControllerEvent($httpKernel, $controller, $request, HttpKernelInterface::MASTER_REQUEST);
-        $collector->onKernelController($event);
-    }
-
-    /**
-     * Dummy method used as controller callable.
-     */
-    public static function staticControllerMethod()
-    {
-        throw new \LogicException('Unexpected method call');
-    }
-
-    /**
-     * Magic method to allow non existing methods to be called and delegated.
-     */
-    public function __call($method, $args)
-    {
-        throw new \LogicException('Unexpected method call');
-    }
-
-    /**
-     * Magic method to allow non existing methods to be called and delegated.
-     */
-    public static function __callStatic($method, $args)
-    {
-        throw new \LogicException('Unexpected method call');
-    }
-
-    public function __invoke()
-    {
-        throw new \LogicException('Unexpected method call');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php
deleted file mode 100644
index b5d64bf..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector;
-
-use Symfony\Component\HttpKernel\DataCollector\TimeDataCollector;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class TimeDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCollect()
-    {
-        $c = new TimeDataCollector();
-
-        $request = new Request();
-        $request->server->set('REQUEST_TIME', 1);
-
-        $c->collect($request, new Response());
-
-        $this->assertEquals(1000, $c->getStartTime());
-
-        $request->server->set('REQUEST_TIME_FLOAT', 2);
-
-        $c->collect($request, new Response());
-
-        $this->assertEquals(2000, $c->getStartTime());
-
-        $request = new Request();
-        $c->collect($request, new Response());
-        $this->assertEquals(0, $c->getStartTime());
-
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\KernelInterface');
-        $kernel->expects($this->once())->method('getStartTime')->will($this->returnValue(123456));
-
-        $c = new TimeDataCollector($kernel);
-        $request = new Request();
-        $request->server->set('REQUEST_TIME', 1);
-
-        $c->collect($request, new Response());
-        $this->assertEquals(123456000, $c->getStartTime());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DataCollector/Util/ValueExporterTest.php b/core/vendor/symfony/http-kernel/Tests/DataCollector/Util/ValueExporterTest.php
deleted file mode 100644
index 8d3ddb4..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DataCollector/Util/ValueExporterTest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DataCollector\Util;
-
-use Symfony\Component\HttpKernel\DataCollector\Util\ValueExporter;
-
-class ValueExporterTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var ValueExporter
-     */
-    private $valueExporter;
-
-    protected function setUp()
-    {
-        $this->valueExporter = new ValueExporter();
-    }
-
-    public function testDateTime()
-    {
-        $dateTime = new \DateTime('2014-06-10 07:35:40', new \DateTimeZone('UTC'));
-        $this->assertSame('Object(DateTime) - 2014-06-10T07:35:40+0000', $this->valueExporter->exportValue($dateTime));
-    }
-
-    public function testDateTimeImmutable()
-    {
-        if (!class_exists('DateTimeImmutable', false)) {
-            $this->markTestSkipped('Test skipped, class DateTimeImmutable does not exist.');
-        }
-
-        $dateTime = new \DateTimeImmutable('2014-06-10 07:35:40', new \DateTimeZone('UTC'));
-        $this->assertSame('Object(DateTimeImmutable) - 2014-06-10T07:35:40+0000', $this->valueExporter->exportValue($dateTime));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Debug/TraceableEventDispatcherTest.php b/core/vendor/symfony/http-kernel/Tests/Debug/TraceableEventDispatcherTest.php
deleted file mode 100644
index f64d724..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Debug/TraceableEventDispatcherTest.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Debug;
-
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher;
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Stopwatch\Stopwatch;
-
-class TraceableEventDispatcherTest extends \PHPUnit_Framework_TestCase
-{
-    public function testStopwatchSections()
-    {
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), $stopwatch = new Stopwatch());
-        $kernel = $this->getHttpKernel($dispatcher, function () { return new Response(); });
-        $request = Request::create('/');
-        $response = $kernel->handle($request);
-        $kernel->terminate($request, $response);
-
-        $events = $stopwatch->getSectionEvents($response->headers->get('X-Debug-Token'));
-        $this->assertEquals(array(
-            '__section__',
-            'kernel.request',
-            'kernel.controller',
-            'controller',
-            'kernel.response',
-            'kernel.terminate',
-        ), array_keys($events));
-    }
-
-    public function testStopwatchCheckControllerOnRequestEvent()
-    {
-        $stopwatch = $this->getMockBuilder('Symfony\Component\Stopwatch\Stopwatch')
-            ->setMethods(array('isStarted'))
-            ->getMock();
-        $stopwatch->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), $stopwatch);
-
-        $kernel = $this->getHttpKernel($dispatcher, function () { return new Response(); });
-        $request = Request::create('/');
-        $kernel->handle($request);
-    }
-
-    public function testStopwatchStopControllerOnRequestEvent()
-    {
-        $stopwatch = $this->getMockBuilder('Symfony\Component\Stopwatch\Stopwatch')
-            ->setMethods(array('isStarted', 'stop', 'stopSection'))
-            ->getMock();
-        $stopwatch->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-        $stopwatch->expects($this->once())
-            ->method('stop');
-        $stopwatch->expects($this->once())
-            ->method('stopSection');
-
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), $stopwatch);
-
-        $kernel = $this->getHttpKernel($dispatcher, function () { return new Response(); });
-        $request = Request::create('/');
-        $kernel->handle($request);
-    }
-
-    public function testAddListenerNested()
-    {
-        $called1 = false;
-        $called2 = false;
-        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $dispatcher->addListener('my-event', function () use ($dispatcher, &$called1, &$called2) {
-            $called1 = true;
-            $dispatcher->addListener('my-event', function () use (&$called2) {
-                $called2 = true;
-            });
-        });
-        $dispatcher->dispatch('my-event');
-        $this->assertTrue($called1);
-        $this->assertFalse($called2);
-        $dispatcher->dispatch('my-event');
-        $this->assertTrue($called2);
-    }
-
-    public function testListenerCanRemoveItselfWhenExecuted()
-    {
-        $eventDispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
-        $listener1 = function () use ($eventDispatcher, &$listener1) {
-            $eventDispatcher->removeListener('foo', $listener1);
-        };
-        $eventDispatcher->addListener('foo', $listener1);
-        $eventDispatcher->addListener('foo', function () {});
-        $eventDispatcher->dispatch('foo');
-
-        $this->assertCount(1, $eventDispatcher->getListeners('foo'), 'expected listener1 to be removed');
-    }
-
-    protected function getHttpKernel($dispatcher, $controller)
-    {
-        $resolver = $this->getMock('Symfony\Component\HttpKernel\Controller\ControllerResolverInterface');
-        $resolver->expects($this->once())->method('getController')->will($this->returnValue($controller));
-        $resolver->expects($this->once())->method('getArguments')->will($this->returnValue(array()));
-
-        return new HttpKernel($dispatcher, $resolver);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php b/core/vendor/symfony/http-kernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php
deleted file mode 100644
index c32f5bb..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/ContainerAwareHttpKernelTest.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel;
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-/**
- * @group legacy
- */
-class ContainerAwareHttpKernelTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getProviderTypes
-     */
-    public function testHandle($type)
-    {
-        $request = new Request();
-        $expected = new Response();
-        $controller = function () use ($expected) {
-            return $expected;
-        };
-
-        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
-        $this
-            ->expectsEnterScopeOnce($container)
-            ->expectsLeaveScopeOnce($container)
-            ->expectsSetRequestWithAt($container, $request, 3)
-            ->expectsSetRequestWithAt($container, null, 4)
-        ;
-
-        $dispatcher = new EventDispatcher();
-        $resolver = $this->getResolverMockFor($controller, $request);
-        $stack = new RequestStack();
-        $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
-
-        $actual = $kernel->handle($request, $type);
-
-        $this->assertSame($expected, $actual, '->handle() returns the response');
-    }
-
-    /**
-     * @dataProvider getProviderTypes
-     */
-    public function testVerifyRequestStackPushPopDuringHandle($type)
-    {
-        $request = new Request();
-        $expected = new Response();
-        $controller = function () use ($expected) {
-            return $expected;
-        };
-
-        $stack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack', array('push', 'pop'));
-        $stack->expects($this->at(0))->method('push')->with($this->equalTo($request));
-        $stack->expects($this->at(1))->method('pop');
-
-        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
-        $dispatcher = new EventDispatcher();
-        $resolver = $this->getResolverMockFor($controller, $request);
-        $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
-
-        $kernel->handle($request, $type);
-    }
-
-    /**
-     * @dataProvider getProviderTypes
-     */
-    public function testHandleRestoresThePreviousRequestOnException($type)
-    {
-        $request = new Request();
-        $expected = new \Exception();
-        $controller = function () use ($expected) {
-            throw $expected;
-        };
-
-        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
-        $this
-            ->expectsEnterScopeOnce($container)
-            ->expectsLeaveScopeOnce($container)
-            ->expectsSetRequestWithAt($container, $request, 3)
-            ->expectsSetRequestWithAt($container, null, 4)
-        ;
-
-        $dispatcher = new EventDispatcher();
-        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
-        $resolver = $this->getResolverMockFor($controller, $request);
-        $stack = new RequestStack();
-        $kernel = new ContainerAwareHttpKernel($dispatcher, $container, $resolver, $stack);
-
-        try {
-            $kernel->handle($request, $type);
-            $this->fail('->handle() suppresses the controller exception');
-        } catch (\PHPUnit_Framework_Exception $e) {
-            throw $e;
-        } catch (\Exception $e) {
-            $this->assertSame($expected, $e, '->handle() throws the controller exception');
-        }
-    }
-
-    public function getProviderTypes()
-    {
-        return array(
-            array(HttpKernelInterface::MASTER_REQUEST),
-            array(HttpKernelInterface::SUB_REQUEST),
-        );
-    }
-
-    private function getResolverMockFor($controller, $request)
-    {
-        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
-        $resolver->expects($this->once())
-            ->method('getController')
-            ->with($request)
-            ->will($this->returnValue($controller));
-        $resolver->expects($this->once())
-            ->method('getArguments')
-            ->with($request, $controller)
-            ->will($this->returnValue(array()));
-
-        return $resolver;
-    }
-
-    private function expectsSetRequestWithAt($container, $with, $at)
-    {
-        $container
-            ->expects($this->at($at))
-            ->method('set')
-            ->with($this->equalTo('request'), $this->equalTo($with), $this->equalTo('request'))
-        ;
-
-        return $this;
-    }
-
-    private function expectsEnterScopeOnce($container)
-    {
-        $container
-            ->expects($this->once())
-            ->method('enterScope')
-            ->with($this->equalTo('request'))
-        ;
-
-        return $this;
-    }
-
-    private function expectsLeaveScopeOnce($container)
-    {
-        $container
-            ->expects($this->once())
-            ->method('leaveScope')
-            ->with($this->equalTo('request'))
-        ;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php b/core/vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php
deleted file mode 100644
index 3e2bfd0..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\DependencyInjection\FragmentRendererPass;
-use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface;
-
-class FragmentRendererPassTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @group legacy
-     */
-    public function testLegacyFragmentRedererWithoutAlias()
-    {
-        // no alias
-        $services = array(
-            'my_content_renderer' => array(array()),
-        );
-
-        $renderer = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $renderer
-            ->expects($this->once())
-            ->method('addMethodCall')
-            ->with('addRenderer', array(new Reference('my_content_renderer')))
-        ;
-
-        $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $definition->expects($this->atLeastOnce())
-            ->method('getClass')
-            ->will($this->returnValue('Symfony\Component\HttpKernel\Tests\DependencyInjection\RendererService'));
-        $definition
-            ->expects($this->once())
-            ->method('isPublic')
-            ->will($this->returnValue(true))
-        ;
-
-        $builder = $this->getMock(
-            'Symfony\Component\DependencyInjection\ContainerBuilder',
-            array('hasDefinition', 'findTaggedServiceIds', 'getDefinition')
-        );
-        $builder->expects($this->any())
-            ->method('hasDefinition')
-            ->will($this->returnValue(true));
-
-        // We don't test kernel.fragment_renderer here
-        $builder->expects($this->atLeastOnce())
-            ->method('findTaggedServiceIds')
-            ->will($this->returnValue($services));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('getDefinition')
-            ->will($this->onConsecutiveCalls($renderer, $definition));
-
-        $pass = new FragmentRendererPass();
-        $pass->process($builder);
-    }
-
-    /**
-     * Tests that content rendering not implementing FragmentRendererInterface
-     * trigger an exception.
-     *
-     * @expectedException \InvalidArgumentException
-     */
-    public function testContentRendererWithoutInterface()
-    {
-        // one service, not implementing any interface
-        $services = array(
-            'my_content_renderer' => array(array('alias' => 'foo')),
-        );
-
-        $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-
-        $builder = $this->getMock(
-            'Symfony\Component\DependencyInjection\ContainerBuilder',
-            array('hasDefinition', 'findTaggedServiceIds', 'getDefinition')
-        );
-        $builder->expects($this->any())
-            ->method('hasDefinition')
-            ->will($this->returnValue(true));
-
-        // We don't test kernel.fragment_renderer here
-        $builder->expects($this->atLeastOnce())
-            ->method('findTaggedServiceIds')
-            ->will($this->returnValue($services));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('getDefinition')
-            ->will($this->returnValue($definition));
-
-        $pass = new FragmentRendererPass();
-        $pass->process($builder);
-    }
-
-    public function testValidContentRenderer()
-    {
-        $services = array(
-            'my_content_renderer' => array(array('alias' => 'foo')),
-        );
-
-        $renderer = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $renderer
-            ->expects($this->once())
-            ->method('addMethodCall')
-            ->with('addRendererService', array('foo', 'my_content_renderer'))
-        ;
-
-        $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition');
-        $definition->expects($this->atLeastOnce())
-            ->method('getClass')
-            ->will($this->returnValue('Symfony\Component\HttpKernel\Tests\DependencyInjection\RendererService'));
-        $definition
-            ->expects($this->once())
-            ->method('isPublic')
-            ->will($this->returnValue(true))
-        ;
-
-        $builder = $this->getMock(
-            'Symfony\Component\DependencyInjection\ContainerBuilder',
-            array('hasDefinition', 'findTaggedServiceIds', 'getDefinition')
-        );
-        $builder->expects($this->any())
-            ->method('hasDefinition')
-            ->will($this->returnValue(true));
-
-        // We don't test kernel.fragment_renderer here
-        $builder->expects($this->atLeastOnce())
-            ->method('findTaggedServiceIds')
-            ->will($this->returnValue($services));
-
-        $builder->expects($this->atLeastOnce())
-            ->method('getDefinition')
-            ->will($this->onConsecutiveCalls($renderer, $definition));
-
-        $pass = new FragmentRendererPass();
-        $pass->process($builder);
-    }
-}
-
-class RendererService implements FragmentRendererInterface
-{
-    public function render($uri, Request $request = null, array $options = array())
-    {
-    }
-
-    public function getName()
-    {
-        return 'test';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php b/core/vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php
deleted file mode 100644
index 581db45..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
-
-use Symfony\Component\HttpKernel\DependencyInjection\LazyLoadingFragmentHandler;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class LazyLoadingFragmentHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function test()
-    {
-        $renderer = $this->getMock('Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface');
-        $renderer->expects($this->once())->method('getName')->will($this->returnValue('foo'));
-        $renderer->expects($this->any())->method('render')->will($this->returnValue(new Response()));
-
-        $requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack');
-        $requestStack->expects($this->any())->method('getCurrentRequest')->will($this->returnValue(Request::create('/')));
-
-        $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
-        $container->expects($this->once())->method('get')->will($this->returnValue($renderer));
-
-        $handler = new LazyLoadingFragmentHandler($container, false, $requestStack);
-        $handler->addRendererService('foo', 'foo');
-
-        $handler->render('/foo', 'foo');
-
-        // second call should not lazy-load anymore (see once() above on the get() method)
-        $handler->render('/foo', 'foo');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php b/core/vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
deleted file mode 100644
index 3426f6f..0000000
--- a/core/vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
-
-use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
-
-class MergeExtensionConfigurationPassTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAutoloadMainExtension()
-    {
-        $container = $this->getMock(
-            'Symfony\\Component\\DependencyInjection\\ContainerBuilder',
-            array('getExtensionConfig', 'loadFromExtension', 'getParameterBag')
-        );
-        $params = $this->getMock('Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag');
-
-        $container->expects($this->at(0))
-            ->method('getExtensionConfig')
-            ->with('loaded')
-            ->will($this->returnValue(array(array())));
-        $container->expects($this->at(1))
-            ->method('getExtensionConfig')
-            ->with('notloaded')
-            ->will($this->returnValue(array()));
-        $container->expects($this->once())
-            ->method('loadFromExtension')
-            ->with('notloaded', array());
-
-        $container->expects($this->any())
-            ->method('getParameterBag')
-            ->will($this->returnValue($params));
-        $params->expects($this->any())
-            ->method('all')
-            ->will($this->returnValue(array()));
-        $container->expects($this->any())
-            ->method('getDefinitions')
-            ->will($this->returnValue(array()));
-        $container->expects($this->any())
-            ->method('getAliases')
-            ->will($this->returnValue(array()));
-        $container->expects($this->any())
-            ->method('getExtensions')
-            ->will($this->returnValue(array()));
-
-        $configPass = new MergeExtensionConfigurationPass(array('loaded', 'notloaded'));
-        $configPass->process($container);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php
deleted file mode 100644
index 26bdf70..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\EventListener\AddRequestFormatsListener;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\KernelEvents;
-
-/**
- * Test AddRequestFormatsListener class
- *
- * @author Gildas Quemener <gildas.quemener@gmail.com>
- */
-class AddRequestFormatsListenerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var AddRequestFormatsListener
-     */
-    private $listener;
-
-    protected function setUp()
-    {
-        $this->listener = new AddRequestFormatsListener(array('csv' => array('text/csv', 'text/plain')));
-    }
-
-    protected function tearDown()
-    {
-        $this->listener = null;
-    }
-
-    public function testIsAnEventSubscriber()
-    {
-        $this->assertInstanceOf('Symfony\Component\EventDispatcher\EventSubscriberInterface', $this->listener);
-    }
-
-    public function testRegisteredEvent()
-    {
-        $this->assertEquals(
-            array(KernelEvents::REQUEST => 'onKernelRequest'),
-            AddRequestFormatsListener::getSubscribedEvents()
-        );
-    }
-
-    public function testSetAdditionalFormats()
-    {
-        $request = $this->getRequestMock();
-        $event = $this->getGetResponseEventMock($request);
-
-        $request->expects($this->once())
-            ->method('setFormat')
-            ->with('csv', array('text/csv', 'text/plain'));
-
-        $this->listener->onKernelRequest($event);
-    }
-
-    protected function getRequestMock()
-    {
-        return $this->getMock('Symfony\Component\HttpFoundation\Request');
-    }
-
-    protected function getGetResponseEventMock(Request $request)
-    {
-        $event = $this
-            ->getMockBuilder('Symfony\Component\HttpKernel\Event\GetResponseEvent')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $event->expects($this->any())
-            ->method('getRequest')
-            ->will($this->returnValue($request));
-
-        return $event;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php
deleted file mode 100644
index f3cd05e..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Psr\Log\LogLevel;
-use Symfony\Component\Console\Event\ConsoleEvent;
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\ConsoleEvents;
-use Symfony\Component\Console\Helper\HelperSet;
-use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\Console\Output\ConsoleOutput;
-use Symfony\Component\Debug\ErrorHandler;
-use Symfony\Component\Debug\ExceptionHandler;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\HttpKernel\EventListener\DebugHandlersListener;
-use Symfony\Component\HttpKernel\KernelEvents;
-
-/**
- * DebugHandlersListenerTest
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class DebugHandlersListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConfigure()
-    {
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $userHandler = function () {};
-        $listener = new DebugHandlersListener($userHandler, $logger);
-        $xHandler = new ExceptionHandler();
-        $eHandler = new ErrorHandler();
-        $eHandler->setExceptionHandler(array($xHandler, 'handle'));
-
-        $exception = null;
-        set_error_handler(array($eHandler, 'handleError'));
-        set_exception_handler(array($eHandler, 'handleException'));
-        try {
-            $listener->configure();
-        } catch (\Exception $exception) {
-        }
-        restore_exception_handler();
-        restore_error_handler();
-
-        if (null !== $exception) {
-            throw $exception;
-        }
-
-        $this->assertSame($userHandler, $xHandler->setHandler('var_dump'));
-
-        $loggers = $eHandler->setLoggers(array());
-
-        $this->assertArrayHasKey(E_DEPRECATED, $loggers);
-        $this->assertSame(array($logger, LogLevel::INFO), $loggers[E_DEPRECATED]);
-    }
-
-    public function testConsoleEvent()
-    {
-        $dispatcher = new EventDispatcher();
-        $listener = new DebugHandlersListener(null);
-        $app = $this->getMock('Symfony\Component\Console\Application');
-        $app->expects($this->once())->method('getHelperSet')->will($this->returnValue(new HelperSet()));
-        $command = new Command(__FUNCTION__);
-        $command->setApplication($app);
-        $event = new ConsoleEvent($command, new ArgvInput(), new ConsoleOutput());
-
-        $dispatcher->addSubscriber($listener);
-
-        $xListeners = array(
-            KernelEvents::REQUEST => array(array($listener, 'configure')),
-            ConsoleEvents::COMMAND => array(array($listener, 'configure')),
-        );
-        $this->assertSame($xListeners, $dispatcher->getListeners());
-
-        $exception = null;
-        $eHandler = new ErrorHandler();
-        set_error_handler(array($eHandler, 'handleError'));
-        set_exception_handler(array($eHandler, 'handleException'));
-        try {
-            $dispatcher->dispatch(ConsoleEvents::COMMAND, $event);
-        } catch (\Exception $exception) {
-        }
-        restore_exception_handler();
-        restore_error_handler();
-
-        if (null !== $exception) {
-            throw $exception;
-        }
-
-        $xHandler = $eHandler->setExceptionHandler('var_dump');
-        $this->assertInstanceOf('Closure', $xHandler);
-
-        $app->expects($this->once())
-            ->method('renderException');
-
-        $xHandler(new \Exception());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/DumpListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/DumpListenerTest.php
deleted file mode 100644
index a9b715b..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/DumpListenerTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\EventListener\DumpListener;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\VarDumper\Cloner\ClonerInterface;
-use Symfony\Component\VarDumper\Cloner\Data;
-use Symfony\Component\VarDumper\Dumper\DataDumperInterface;
-use Symfony\Component\VarDumper\VarDumper;
-
-/**
- * DumpListenerTest
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class DumpListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSubscribedEvents()
-    {
-        $this->assertSame(
-            array(KernelEvents::REQUEST => array('configure', 1024)),
-            DumpListener::getSubscribedEvents()
-        );
-    }
-
-    public function testConfigure()
-    {
-        $prevDumper = VarDumper::setHandler('var_dump');
-        VarDumper::setHandler($prevDumper);
-
-        $cloner = new MockCloner();
-        $dumper = new MockDumper();
-
-        ob_start();
-        $exception = null;
-        $listener = new DumpListener($cloner, $dumper);
-
-        try {
-            $listener->configure();
-
-            VarDumper::dump('foo');
-            VarDumper::dump('bar');
-
-            $this->assertSame('+foo-+bar-', ob_get_clean());
-        } catch (\Exception $exception) {
-        }
-
-        VarDumper::setHandler($prevDumper);
-
-        if (null !== $exception) {
-            throw $exception;
-        }
-    }
-}
-
-class MockCloner implements ClonerInterface
-{
-    public function cloneVar($var)
-    {
-        return new Data(array($var.'-'));
-    }
-}
-
-class MockDumper implements DataDumperInterface
-{
-    public function dump(Data $data)
-    {
-        $rawData = $data->getRawData();
-
-        echo '+'.$rawData[0];
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/ExceptionListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/ExceptionListenerTest.php
deleted file mode 100644
index 8fb00f5..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/ExceptionListenerTest.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\EventListener\ExceptionListener;
-use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Tests\Logger;
-
-/**
- * ExceptionListenerTest.
- *
- * @author Robert Schönthal <seroscho@googlemail.com>
- */
-class ExceptionListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstruct()
-    {
-        $logger = new TestLogger();
-        $l = new ExceptionListener('foo', $logger);
-
-        $_logger = new \ReflectionProperty(get_class($l), 'logger');
-        $_logger->setAccessible(true);
-        $_controller = new \ReflectionProperty(get_class($l), 'controller');
-        $_controller->setAccessible(true);
-
-        $this->assertSame($logger, $_logger->getValue($l));
-        $this->assertSame('foo', $_controller->getValue($l));
-    }
-
-    /**
-     * @dataProvider provider
-     */
-    public function testHandleWithoutLogger($event, $event2)
-    {
-        $this->iniSet('error_log', file_exists('/dev/null') ? '/dev/null' : 'nul');
-
-        $l = new ExceptionListener('foo');
-        $l->onKernelException($event);
-
-        $this->assertEquals(new Response('foo'), $event->getResponse());
-
-        try {
-            $l->onKernelException($event2);
-            $this->fail('RuntimeException expected');
-        } catch (\RuntimeException $e) {
-            $this->assertSame('bar', $e->getMessage());
-            $this->assertSame('foo', $e->getPrevious()->getMessage());
-        }
-    }
-
-    /**
-     * @dataProvider provider
-     */
-    public function testHandleWithLogger($event, $event2)
-    {
-        $logger = new TestLogger();
-
-        $l = new ExceptionListener('foo', $logger);
-        $l->onKernelException($event);
-
-        $this->assertEquals(new Response('foo'), $event->getResponse());
-
-        try {
-            $l->onKernelException($event2);
-            $this->fail('RuntimeException expected');
-        } catch (\RuntimeException $e) {
-            $this->assertSame('bar', $e->getMessage());
-            $this->assertSame('foo', $e->getPrevious()->getMessage());
-        }
-
-        $this->assertEquals(3, $logger->countErrors());
-        $this->assertCount(3, $logger->getLogs('critical'));
-    }
-
-    public function provider()
-    {
-        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
-            return array(array(null, null));
-        }
-
-        $request = new Request();
-        $exception = new \Exception('foo');
-        $event = new GetResponseForExceptionEvent(new TestKernel(), $request, 'foo', $exception);
-        $event2 = new GetResponseForExceptionEvent(new TestKernelThatThrowsException(), $request, 'foo', $exception);
-
-        return array(
-            array($event, $event2),
-        );
-    }
-
-    public function testSubRequestFormat()
-    {
-        $listener = new ExceptionListener('foo', $this->getMock('Psr\Log\LoggerInterface'));
-
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $kernel->expects($this->once())->method('handle')->will($this->returnCallback(function (Request $request) {
-            return new Response($request->getRequestFormat());
-        }));
-
-        $request = Request::create('/');
-        $request->setRequestFormat('xml');
-
-        $event = new GetResponseForExceptionEvent($kernel, $request, 'foo', new \Exception('foo'));
-        $listener->onKernelException($event);
-
-        $response = $event->getResponse();
-        $this->assertEquals('xml', $response->getContent());
-    }
-}
-
-class TestLogger extends Logger implements DebugLoggerInterface
-{
-    public function countErrors()
-    {
-        return count($this->logs['critical']);
-    }
-}
-
-class TestKernel implements HttpKernelInterface
-{
-    public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true)
-    {
-        return new Response('foo');
-    }
-}
-
-class TestKernelThatThrowsException implements HttpKernelInterface
-{
-    public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true)
-    {
-        throw new \RuntimeException('bar');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/FragmentListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/FragmentListenerTest.php
deleted file mode 100644
index fd5d63b..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/FragmentListenerTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\EventListener\FragmentListener;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\UriSigner;
-
-class FragmentListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testOnlyTriggeredOnFragmentRoute()
-    {
-        $request = Request::create('http://example.com/foo?_path=foo%3Dbar%26_controller%3Dfoo');
-
-        $listener = new FragmentListener(new UriSigner('foo'));
-        $event = $this->createGetResponseEvent($request);
-
-        $expected = $request->attributes->all();
-
-        $listener->onKernelRequest($event);
-
-        $this->assertEquals($expected, $request->attributes->all());
-        $this->assertTrue($request->query->has('_path'));
-    }
-
-    public function testOnlyTriggeredIfControllerWasNotDefinedYet()
-    {
-        $request = Request::create('http://example.com/_fragment?_path=foo%3Dbar%26_controller%3Dfoo');
-        $request->attributes->set('_controller', 'bar');
-
-        $listener = new FragmentListener(new UriSigner('foo'));
-        $event = $this->createGetResponseEvent($request, HttpKernelInterface::SUB_REQUEST);
-
-        $expected = $request->attributes->all();
-
-        $listener->onKernelRequest($event);
-
-        $this->assertEquals($expected, $request->attributes->all());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
-     */
-    public function testAccessDeniedWithNonSafeMethods()
-    {
-        $request = Request::create('http://example.com/_fragment', 'POST');
-
-        $listener = new FragmentListener(new UriSigner('foo'));
-        $event = $this->createGetResponseEvent($request);
-
-        $listener->onKernelRequest($event);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
-     */
-    public function testAccessDeniedWithWrongSignature()
-    {
-        $request = Request::create('http://example.com/_fragment', 'GET', array(), array(), array(), array('REMOTE_ADDR' => '10.0.0.1'));
-
-        $listener = new FragmentListener(new UriSigner('foo'));
-        $event = $this->createGetResponseEvent($request);
-
-        $listener->onKernelRequest($event);
-    }
-
-    public function testWithSignature()
-    {
-        $signer = new UriSigner('foo');
-        $request = Request::create($signer->sign('http://example.com/_fragment?_path=foo%3Dbar%26_controller%3Dfoo'), 'GET', array(), array(), array(), array('REMOTE_ADDR' => '10.0.0.1'));
-
-        $listener = new FragmentListener($signer);
-        $event = $this->createGetResponseEvent($request);
-
-        $listener->onKernelRequest($event);
-
-        $this->assertEquals(array('foo' => 'bar', '_controller' => 'foo'), $request->attributes->get('_route_params'));
-        $this->assertFalse($request->query->has('_path'));
-    }
-
-    private function createGetResponseEvent(Request $request, $requestType = HttpKernelInterface::MASTER_REQUEST)
-    {
-        return new GetResponseEvent($this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'), $request, $requestType);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/LocaleListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/LocaleListenerTest.php
deleted file mode 100644
index ecc4eb0..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/LocaleListenerTest.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\EventListener\LocaleListener;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-
-class LocaleListenerTest extends \PHPUnit_Framework_TestCase
-{
-    private $requestStack;
-
-    protected function setUp()
-    {
-        $this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack', array(), array(), '', false);
-    }
-
-    public function testDefaultLocaleWithoutSession()
-    {
-        $listener = new LocaleListener('fr', null, $this->requestStack);
-        $event = $this->getEvent($request = Request::create('/'));
-
-        $listener->onKernelRequest($event);
-        $this->assertEquals('fr', $request->getLocale());
-    }
-
-    public function testLocaleFromRequestAttribute()
-    {
-        $request = Request::create('/');
-        session_name('foo');
-        $request->cookies->set('foo', 'value');
-
-        $request->attributes->set('_locale', 'es');
-        $listener = new LocaleListener('fr', null, $this->requestStack);
-        $event = $this->getEvent($request);
-
-        $listener->onKernelRequest($event);
-        $this->assertEquals('es', $request->getLocale());
-    }
-
-    public function testLocaleSetForRoutingContext()
-    {
-        // the request context is updated
-        $context = $this->getMock('Symfony\Component\Routing\RequestContext');
-        $context->expects($this->once())->method('setParameter')->with('_locale', 'es');
-
-        $router = $this->getMock('Symfony\Component\Routing\Router', array('getContext'), array(), '', false);
-        $router->expects($this->once())->method('getContext')->will($this->returnValue($context));
-
-        $request = Request::create('/');
-
-        $request->attributes->set('_locale', 'es');
-        $listener = new LocaleListener('fr', $router, $this->requestStack);
-        $listener->onKernelRequest($this->getEvent($request));
-    }
-
-    public function testRouterResetWithParentRequestOnKernelFinishRequest()
-    {
-        // the request context is updated
-        $context = $this->getMock('Symfony\Component\Routing\RequestContext');
-        $context->expects($this->once())->method('setParameter')->with('_locale', 'es');
-
-        $router = $this->getMock('Symfony\Component\Routing\Router', array('getContext'), array(), '', false);
-        $router->expects($this->once())->method('getContext')->will($this->returnValue($context));
-
-        $parentRequest = Request::create('/');
-        $parentRequest->setLocale('es');
-
-        $this->requestStack->expects($this->once())->method('getParentRequest')->will($this->returnValue($parentRequest));
-
-        $event = $this->getMock('Symfony\Component\HttpKernel\Event\FinishRequestEvent', array(), array(), '', false);
-
-        $listener = new LocaleListener('fr', $router, $this->requestStack);
-        $listener->onKernelFinishRequest($event);
-    }
-
-    public function testRequestLocaleIsNotOverridden()
-    {
-        $request = Request::create('/');
-        $request->setLocale('de');
-        $listener = new LocaleListener('fr', null, $this->requestStack);
-        $event = $this->getEvent($request);
-
-        $listener->onKernelRequest($event);
-        $this->assertEquals('de', $request->getLocale());
-    }
-
-    private function getEvent(Request $request)
-    {
-        return new GetResponseEvent($this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'), $request, HttpKernelInterface::MASTER_REQUEST);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/ProfilerListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/ProfilerListenerTest.php
deleted file mode 100644
index 84ff0d6..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/ProfilerListenerTest.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpKernel\EventListener\ProfilerListener;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\HttpKernel\Event\PostResponseEvent;
-use Symfony\Component\HttpKernel\Exception\HttpException;
-use Symfony\Component\HttpKernel\Kernel;
-
-class ProfilerListenerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Test to ensure BC without RequestStack
-     *
-     * @group legacy
-     */
-    public function testLegacyEventsWithoutRequestStack()
-    {
-        $profile = $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profile')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $profiler = $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profiler')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $profiler->expects($this->once())
-            ->method('collect')
-            ->will($this->returnValue($profile));
-
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-
-        $request = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $response = $this->getMockBuilder('Symfony\Component\HttpFoundation\Response')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $listener = new ProfilerListener($profiler);
-        $listener->onKernelRequest(new GetResponseEvent($kernel, $request, Kernel::MASTER_REQUEST));
-        $listener->onKernelResponse(new FilterResponseEvent($kernel, $request, Kernel::MASTER_REQUEST, $response));
-        $listener->onKernelTerminate(new PostResponseEvent($kernel, $request, $response));
-    }
-
-    /**
-     * Test a master and sub request with an exception and `onlyException` profiler option enabled.
-     */
-    public function testKernelTerminate()
-    {
-        $profile = $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profile')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $profiler = $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profiler')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $profiler->expects($this->once())
-            ->method('collect')
-            ->will($this->returnValue($profile));
-
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-
-        $masterRequest = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $subRequest =  $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $response = $this->getMockBuilder('Symfony\Component\HttpFoundation\Response')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $requestStack = new RequestStack();
-        $requestStack->push($masterRequest);
-
-        $onlyException = true;
-        $listener = new ProfilerListener($profiler, null, $onlyException, false, $requestStack);
-
-        // master request
-        $listener->onKernelResponse(new FilterResponseEvent($kernel, $masterRequest, Kernel::MASTER_REQUEST, $response));
-
-        // sub request
-        $listener->onKernelException(new GetResponseForExceptionEvent($kernel, $subRequest, Kernel::SUB_REQUEST, new HttpException(404)));
-        $listener->onKernelResponse(new FilterResponseEvent($kernel, $subRequest, Kernel::SUB_REQUEST, $response));
-
-        $listener->onKernelTerminate(new PostResponseEvent($kernel, $masterRequest, $response));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/ResponseListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/ResponseListenerTest.php
deleted file mode 100644
index 821688e..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/ResponseListenerTest.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\EventListener\ResponseListener;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class ResponseListenerTest extends \PHPUnit_Framework_TestCase
-{
-    private $dispatcher;
-
-    private $kernel;
-
-    protected function setUp()
-    {
-        $this->dispatcher = new EventDispatcher();
-        $listener = new ResponseListener('UTF-8');
-        $this->dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'));
-
-        $this->kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-    }
-
-    protected function tearDown()
-    {
-        $this->dispatcher = null;
-        $this->kernel = null;
-    }
-
-    public function testFilterDoesNothingForSubRequests()
-    {
-        $response = new Response('foo');
-
-        $event = new FilterResponseEvent($this->kernel, new Request(), HttpKernelInterface::SUB_REQUEST, $response);
-        $this->dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('', $event->getResponse()->headers->get('content-type'));
-    }
-
-    public function testFilterSetsNonDefaultCharsetIfNotOverridden()
-    {
-        $listener = new ResponseListener('ISO-8859-15');
-        $this->dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'), 1);
-
-        $response = new Response('foo');
-
-        $event = new FilterResponseEvent($this->kernel, Request::create('/'), HttpKernelInterface::MASTER_REQUEST, $response);
-        $this->dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('ISO-8859-15', $response->getCharset());
-    }
-
-    public function testFilterDoesNothingIfCharsetIsOverridden()
-    {
-        $listener = new ResponseListener('ISO-8859-15');
-        $this->dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'), 1);
-
-        $response = new Response('foo');
-        $response->setCharset('ISO-8859-1');
-
-        $event = new FilterResponseEvent($this->kernel, Request::create('/'), HttpKernelInterface::MASTER_REQUEST, $response);
-        $this->dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('ISO-8859-1', $response->getCharset());
-    }
-
-    public function testFiltersSetsNonDefaultCharsetIfNotOverriddenOnNonTextContentType()
-    {
-        $listener = new ResponseListener('ISO-8859-15');
-        $this->dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'), 1);
-
-        $response = new Response('foo');
-        $request = Request::create('/');
-        $request->setRequestFormat('application/json');
-
-        $event = new FilterResponseEvent($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response);
-        $this->dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('ISO-8859-15', $response->getCharset());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/RouterListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/RouterListenerTest.php
deleted file mode 100644
index 245b53a..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/RouterListenerTest.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpFoundation\RequestStack;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\EventListener\RouterListener;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\Routing\RequestContext;
-
-class RouterListenerTest extends \PHPUnit_Framework_TestCase
-{
-    private $requestStack;
-
-    protected function setUp()
-    {
-        $this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack', array(), array(), '', false);
-    }
-
-    /**
-     * @dataProvider getPortData
-     */
-    public function testPort($defaultHttpPort, $defaultHttpsPort, $uri, $expectedHttpPort, $expectedHttpsPort)
-    {
-        $urlMatcher = $this->getMockBuilder('Symfony\Component\Routing\Matcher\UrlMatcherInterface')
-                             ->disableOriginalConstructor()
-                             ->getMock();
-        $context = new RequestContext();
-        $context->setHttpPort($defaultHttpPort);
-        $context->setHttpsPort($defaultHttpsPort);
-        $urlMatcher->expects($this->any())
-                     ->method('getContext')
-                     ->will($this->returnValue($context));
-
-        $listener = new RouterListener($urlMatcher, null, null, $this->requestStack);
-        $event = $this->createGetResponseEventForUri($uri);
-        $listener->onKernelRequest($event);
-
-        $this->assertEquals($expectedHttpPort, $context->getHttpPort());
-        $this->assertEquals($expectedHttpsPort, $context->getHttpsPort());
-        $this->assertEquals(0 === strpos($uri, 'https') ? 'https' : 'http', $context->getScheme());
-    }
-
-    public function getPortData()
-    {
-        return array(
-            array(80, 443, 'http://localhost/', 80, 443),
-            array(80, 443, 'http://localhost:90/', 90, 443),
-            array(80, 443, 'https://localhost/', 80, 443),
-            array(80, 443, 'https://localhost:90/', 80, 90),
-        );
-    }
-
-    /**
-     * @param string $uri
-     *
-     * @return GetResponseEvent
-     */
-    private function createGetResponseEventForUri($uri)
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $request = Request::create($uri);
-        $request->attributes->set('_controller', null); // Prevents going in to routing process
-
-        return new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testInvalidMatcher()
-    {
-        new RouterListener(new \stdClass(), null, null, $this->requestStack);
-    }
-
-    public function testRequestMatcher()
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $request = Request::create('http://localhost/');
-        $event = new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
-
-        $requestMatcher = $this->getMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface');
-        $requestMatcher->expects($this->once())
-                       ->method('matchRequest')
-                       ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
-                       ->will($this->returnValue(array()));
-
-        $listener = new RouterListener($requestMatcher, new RequestContext(), null, $this->requestStack);
-        $listener->onKernelRequest($event);
-    }
-
-    public function testSubRequestWithDifferentMethod()
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $request = Request::create('http://localhost/', 'post');
-        $event = new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
-
-        $requestMatcher = $this->getMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface');
-        $requestMatcher->expects($this->any())
-                       ->method('matchRequest')
-                       ->with($this->isInstanceOf('Symfony\Component\HttpFoundation\Request'))
-                       ->will($this->returnValue(array()));
-
-        $context = new RequestContext();
-        $requestMatcher->expects($this->any())
-                       ->method('getContext')
-                       ->will($this->returnValue($context));
-
-        $listener = new RouterListener($requestMatcher, new RequestContext(), null, $this->requestStack);
-        $listener->onKernelRequest($event);
-
-        // sub-request with another HTTP method
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $request = Request::create('http://localhost/', 'get');
-        $event = new GetResponseEvent($kernel, $request, HttpKernelInterface::SUB_REQUEST);
-
-        $listener->onKernelRequest($event);
-
-        $this->assertEquals('GET', $context->getMethod());
-    }
-
-    /**
-     * @dataProvider getLoggingParameterData
-     */
-    public function testLoggingParameter($parameter, $log)
-    {
-        $requestMatcher = $this->getMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface');
-        $requestMatcher->expects($this->once())
-          ->method('matchRequest')
-          ->will($this->returnValue($parameter));
-
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $logger->expects($this->once())
-          ->method('info')
-          ->with($this->equalTo($log));
-
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $request = Request::create('http://localhost/');
-
-        $listener = new RouterListener($requestMatcher, new RequestContext(), $logger, $this->requestStack);
-        $listener->onKernelRequest(new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST));
-    }
-
-    public function getLoggingParameterData()
-    {
-        return array(
-            array(array('_route' => 'foo'), 'Matched route "foo".'),
-            array(array(), 'Matched route "n/a".'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/SurrogateListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/SurrogateListenerTest.php
deleted file mode 100644
index 1a0acf9..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/SurrogateListenerTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpKernel\HttpCache\Esi;
-use Symfony\Component\HttpKernel\EventListener\SurrogateListener;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class SurrogateListenerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testFilterDoesNothingForSubRequests()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $response = new Response('foo <esi:include src="" />');
-        $listener = new SurrogateListener(new Esi());
-
-        $dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'));
-        $event = new FilterResponseEvent($kernel, new Request(), HttpKernelInterface::SUB_REQUEST, $response);
-        $dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('', $event->getResponse()->headers->get('Surrogate-Control'));
-    }
-
-    public function testFilterWhenThereIsSomeEsiIncludes()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $response = new Response('foo <esi:include src="" />');
-        $listener = new SurrogateListener(new Esi());
-
-        $dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'));
-        $event = new FilterResponseEvent($kernel, new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
-        $dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('content="ESI/1.0"', $event->getResponse()->headers->get('Surrogate-Control'));
-    }
-
-    public function testFilterWhenThereIsNoEsiIncludes()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $response = new Response('foo');
-        $listener = new SurrogateListener(new Esi());
-
-        $dispatcher->addListener(KernelEvents::RESPONSE, array($listener, 'onKernelResponse'));
-        $event = new FilterResponseEvent($kernel, new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
-        $dispatcher->dispatch(KernelEvents::RESPONSE, $event);
-
-        $this->assertEquals('', $event->getResponse()->headers->get('Surrogate-Control'));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php
deleted file mode 100644
index cbaaf5f..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpFoundation\Session\SessionInterface;
-
-/**
- * SessionListenerTest.
- *
- * Tests SessionListener.
- *
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- */
-class TestSessionListenerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var TestSessionListener
-     */
-    private $listener;
-
-    /**
-     * @var SessionInterface
-     */
-    private $session;
-
-    protected function setUp()
-    {
-        $this->listener = $this->getMockForAbstractClass('Symfony\Component\HttpKernel\EventListener\TestSessionListener');
-        $this->session = $this->getSession();
-    }
-
-    public function testShouldSaveMasterRequestSession()
-    {
-        $this->sessionHasBeenStarted();
-        $this->sessionMustBeSaved();
-
-        $this->filterResponse(new Request());
-    }
-
-    public function testShouldNotSaveSubRequestSession()
-    {
-        $this->sessionMustNotBeSaved();
-
-        $this->filterResponse(new Request(), HttpKernelInterface::SUB_REQUEST);
-    }
-
-    public function testDoesNotDeleteCookieIfUsingSessionLifetime()
-    {
-        $this->sessionHasBeenStarted();
-
-        $params = session_get_cookie_params();
-        session_set_cookie_params(0, $params['path'], $params['domain'], $params['secure'], $params['httponly']);
-
-        $response = $this->filterResponse(new Request(), HttpKernelInterface::MASTER_REQUEST);
-        $cookies = $response->headers->getCookies();
-
-        $this->assertEquals(0, reset($cookies)->getExpiresTime());
-    }
-
-    public function testUnstartedSessionIsNotSave()
-    {
-        $this->sessionHasNotBeenStarted();
-        $this->sessionMustNotBeSaved();
-
-        $this->filterResponse(new Request());
-    }
-
-    private function filterResponse(Request $request, $type = HttpKernelInterface::MASTER_REQUEST)
-    {
-        $request->setSession($this->session);
-        $response = new Response();
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $event = new FilterResponseEvent($kernel, $request, $type, $response);
-
-        $this->listener->onKernelResponse($event);
-
-        $this->assertSame($response, $event->getResponse());
-
-        return $response;
-    }
-
-    private function sessionMustNotBeSaved()
-    {
-        $this->session->expects($this->never())
-            ->method('save');
-    }
-
-    private function sessionMustBeSaved()
-    {
-        $this->session->expects($this->once())
-            ->method('save');
-    }
-
-    private function sessionHasBeenStarted()
-    {
-        $this->session->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(true));
-    }
-
-    private function sessionHasNotBeenStarted()
-    {
-        $this->session->expects($this->once())
-            ->method('isStarted')
-            ->will($this->returnValue(false));
-    }
-
-    private function getSession()
-    {
-        $mock = $this->getMockBuilder('Symfony\Component\HttpFoundation\Session\Session')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        // set return value for getName()
-        $mock->expects($this->any())->method('getName')->will($this->returnValue('MOCKSESSID'));
-
-        return $mock;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php b/core/vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php
deleted file mode 100644
index c37d647..0000000
--- a/core/vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\EventListener;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
-use Symfony\Component\HttpKernel\Event\GetResponseEvent;
-use Symfony\Component\HttpKernel\EventListener\TranslatorListener;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-
-class TranslatorListenerTest extends \PHPUnit_Framework_TestCase
-{
-    private $listener;
-    private $translator;
-    private $requestStack;
-
-    protected function setUp()
-    {
-        $this->translator = $this->getMock('Symfony\Component\Translation\TranslatorInterface');
-        $this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack');
-        $this->listener = new TranslatorListener($this->translator, $this->requestStack);
-    }
-
-    public function testLocaleIsSetInOnKernelRequest()
-    {
-        $this->translator
-            ->expects($this->once())
-            ->method('setLocale')
-            ->with($this->equalTo('fr'));
-
-        $event = new GetResponseEvent($this->createHttpKernel(), $this->createRequest('fr'), HttpKernelInterface::MASTER_REQUEST);
-        $this->listener->onKernelRequest($event);
-    }
-
-    public function testDefaultLocaleIsUsedOnExceptionsInOnKernelRequest()
-    {
-        $this->translator
-            ->expects($this->at(0))
-            ->method('setLocale')
-            ->will($this->throwException(new \InvalidArgumentException()));
-        $this->translator
-            ->expects($this->at(1))
-            ->method('setLocale')
-            ->with($this->equalTo('en'));
-
-        $event = new GetResponseEvent($this->createHttpKernel(), $this->createRequest('fr'), HttpKernelInterface::MASTER_REQUEST);
-        $this->listener->onKernelRequest($event);
-    }
-
-    public function testLocaleIsSetInOnKernelFinishRequestWhenParentRequestExists()
-    {
-        $this->translator
-            ->expects($this->once())
-            ->method('setLocale')
-            ->with($this->equalTo('fr'));
-
-        $this->setMasterRequest($this->createRequest('fr'));
-        $event = new FinishRequestEvent($this->createHttpKernel(), $this->createRequest('de'), HttpKernelInterface::SUB_REQUEST);
-        $this->listener->onKernelFinishRequest($event);
-    }
-
-    public function testLocaleIsNotSetInOnKernelFinishRequestWhenParentRequestDoesNotExist()
-    {
-        $this->translator
-            ->expects($this->never())
-            ->method('setLocale');
-
-        $event = new FinishRequestEvent($this->createHttpKernel(), $this->createRequest('de'), HttpKernelInterface::SUB_REQUEST);
-        $this->listener->onKernelFinishRequest($event);
-    }
-
-    public function testDefaultLocaleIsUsedOnExceptionsInOnKernelFinishRequest()
-    {
-        $this->translator
-            ->expects($this->at(0))
-            ->method('setLocale')
-            ->will($this->throwException(new \InvalidArgumentException()));
-        $this->translator
-            ->expects($this->at(1))
-            ->method('setLocale')
-            ->with($this->equalTo('en'));
-
-        $this->setMasterRequest($this->createRequest('fr'));
-        $event = new FinishRequestEvent($this->createHttpKernel(), $this->createRequest('de'), HttpKernelInterface::SUB_REQUEST);
-        $this->listener->onKernelFinishRequest($event);
-    }
-
-    private function createHttpKernel()
-    {
-        return $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-    }
-
-    private function createRequest($locale)
-    {
-        $request = new Request();
-        $request->setLocale($locale);
-
-        return $request;
-    }
-
-    private function setMasterRequest($request)
-    {
-        $this->requestStack
-            ->expects($this->any())
-            ->method('getParentRequest')
-            ->will($this->returnValue($request));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/hide.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/hide.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/bar.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/bar.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle2Bundle/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Bundle2Bundle/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/hide.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/hide.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php
deleted file mode 100644
index c8bfd36..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle;
-
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-
-class ExtensionAbsentBundle extends Bundle
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php
deleted file mode 100644
index 3b31781..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\HttpKernel\DependencyInjection\Extension;
-
-class ExtensionLoadedExtension extends Extension
-{
-    public function load(array $configs, ContainerBuilder $container)
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php
deleted file mode 100644
index 3af81cb..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionLoadedBundle;
-
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-
-class ExtensionLoadedBundle extends Bundle
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/DependencyInjection/ExtensionNotValidExtension.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/DependencyInjection/ExtensionNotValidExtension.php
deleted file mode 100644
index 0fd6431..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/DependencyInjection/ExtensionNotValidExtension.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\DependencyInjection;
-
-class ExtensionNotValidExtension
-{
-    public function getAlias()
-    {
-        return 'extension_not_valid';
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/ExtensionNotValidBundle.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/ExtensionNotValidBundle.php
deleted file mode 100644
index 34e2920..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/ExtensionNotValidBundle.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle;
-
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-
-class ExtensionNotValidBundle extends Bundle
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php
deleted file mode 100644
index f3fd14b..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command;
-
-use Symfony\Component\Console\Command\Command;
-use Symfony\Component\HttpKernel\Bundle;
-
-/**
- * This command has a required parameter on the constructor and will be ignored by the default Bundle implementation.
- *
- * @see Bundle::registerCommands()
- */
-class BarCommand extends Command
-{
-    public function __construct($example, $name = 'bar')
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php
deleted file mode 100644
index c6570aa..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command;
-
-use Symfony\Component\Console\Command\Command;
-
-class FooCommand extends Command
-{
-    protected function configure()
-    {
-        $this->setName('foo');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php
deleted file mode 100644
index e42f816..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\DependencyInjection;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\HttpKernel\DependencyInjection\Extension;
-
-class ExtensionPresentExtension extends Extension
-{
-    public function load(array $configs, ContainerBuilder $container)
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php
deleted file mode 100644
index 36a7ad4..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle;
-
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-
-class ExtensionPresentBundle extends Bundle
-{
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/FooBarBundle.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/FooBarBundle.php
deleted file mode 100644
index f940f83..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/FooBarBundle.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures;
-
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-
-class FooBarBundle extends Bundle
-{
-    // We need a full namespaced bundle instance to test isClassInActiveBundle
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php
deleted file mode 100644
index a1102ab..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures;
-
-use Symfony\Component\HttpKernel\Kernel;
-use Symfony\Component\Config\Loader\LoaderInterface;
-
-class KernelForOverrideName extends Kernel
-{
-    protected $name = 'overridden';
-
-    public function registerBundles()
-    {
-    }
-
-    public function registerContainerConfiguration(LoaderInterface $loader)
-    {
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php
deleted file mode 100644
index 5fd61bb..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures;
-
-use Symfony\Component\HttpKernel\Kernel;
-use Symfony\Component\Config\Loader\LoaderInterface;
-
-class KernelForTest extends Kernel
-{
-    public function getBundleMap()
-    {
-        return $this->bundleMap;
-    }
-
-    public function registerBundles()
-    {
-        return array();
-    }
-
-    public function registerContainerConfiguration(LoaderInterface $loader)
-    {
-    }
-
-    public function isBooted()
-    {
-        return $this->booted;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/BaseBundle/hide.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/BaseBundle/hide.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/ChildBundle/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/ChildBundle/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/FooBundle/foo.txt b/core/vendor/symfony/http-kernel/Tests/Fixtures/Resources/FooBundle/foo.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/TestClient.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/TestClient.php
deleted file mode 100644
index e7d60cf..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/TestClient.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures;
-
-use Symfony\Component\HttpKernel\Client;
-
-class TestClient extends Client
-{
-    protected function getScript($request)
-    {
-        $script = parent::getScript($request);
-
-        $autoload = file_exists(__DIR__.'/../../vendor/autoload.php')
-            ? __DIR__.'/../../vendor/autoload.php'
-            : __DIR__.'/../../../../../../vendor/autoload.php'
-        ;
-
-        $script = preg_replace('/(\->register\(\);)/', "$0\nrequire_once '$autoload';\n", $script);
-
-        return $script;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fixtures/TestEventDispatcher.php b/core/vendor/symfony/http-kernel/Tests/Fixtures/TestEventDispatcher.php
deleted file mode 100644
index da7ef5b..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fixtures/TestEventDispatcher.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fixtures;
-
-use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcherInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class TestEventDispatcher extends EventDispatcher implements TraceableEventDispatcherInterface
-{
-    public function getCalledListeners()
-    {
-        return array('foo');
-    }
-
-    public function getNotCalledListeners()
-    {
-        return array('bar');
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fragment/EsiFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Tests/Fragment/EsiFragmentRendererTest.php
deleted file mode 100644
index 90768f9..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fragment/EsiFragmentRendererTest.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
-
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer;
-use Symfony\Component\HttpKernel\HttpCache\Esi;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\UriSigner;
-
-class EsiFragmentRendererTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRenderFallbackToInlineStrategyIfNoRequest()
-    {
-        $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(true));
-        $strategy->render('/', Request::create('/'));
-    }
-
-    public function testRenderFallbackToInlineStrategyIfEsiNotSupported()
-    {
-        $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(true));
-        $strategy->render('/', Request::create('/'));
-    }
-
-    public function testRender()
-    {
-        $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy());
-
-        $request = Request::create('/');
-        $request->setLocale('fr');
-        $request->headers->set('Surrogate-Capability', 'ESI/1.0');
-
-        $this->assertEquals('<esi:include src="/" />', $strategy->render('/', $request)->getContent());
-        $this->assertEquals("<esi:comment text=\"This is a comment\" />\n<esi:include src=\"/\" />", $strategy->render('/', $request, array('comment' => 'This is a comment'))->getContent());
-        $this->assertEquals('<esi:include src="/" alt="foo" />', $strategy->render('/', $request, array('alt' => 'foo'))->getContent());
-    }
-
-    public function testRenderControllerReference()
-    {
-        $signer = new UriSigner('foo');
-        $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(), $signer);
-
-        $request = Request::create('/');
-        $request->setLocale('fr');
-        $request->headers->set('Surrogate-Capability', 'ESI/1.0');
-
-        $reference = new ControllerReference('main_controller', array(), array());
-        $altReference = new ControllerReference('alt_controller', array(), array());
-
-        $this->assertEquals(
-            '<esi:include src="/_fragment?_path=_format%3Dhtml%26_locale%3Dfr%26_controller%3Dmain_controller&_hash=Jz1P8NErmhKTeI6onI1EdAXTB85359MY3RIk5mSJ60w%3D" alt="/_fragment?_path=_format%3Dhtml%26_locale%3Dfr%26_controller%3Dalt_controller&_hash=iPJEdRoUpGrM1ztqByiorpfMPtiW%2FOWwdH1DBUXHhEc%3D" />',
-            $strategy->render($reference, $request, array('alt' => $altReference))->getContent()
-        );
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testRenderControllerReferenceWithoutSignerThrowsException()
-    {
-        $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy());
-
-        $request = Request::create('/');
-        $request->setLocale('fr');
-        $request->headers->set('Surrogate-Capability', 'ESI/1.0');
-
-        $strategy->render(new ControllerReference('main_controller'), $request);
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testRenderAltControllerReferenceWithoutSignerThrowsException()
-    {
-        $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy());
-
-        $request = Request::create('/');
-        $request->setLocale('fr');
-        $request->headers->set('Surrogate-Capability', 'ESI/1.0');
-
-        $strategy->render('/', $request, array('alt' => new ControllerReference('alt_controller')));
-    }
-
-    private function getInlineStrategy($called = false)
-    {
-        $inline = $this->getMockBuilder('Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer')->disableOriginalConstructor()->getMock();
-
-        if ($called) {
-            $inline->expects($this->once())->method('render');
-        }
-
-        return $inline;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fragment/FragmentHandlerTest.php b/core/vendor/symfony/http-kernel/Tests/Fragment/FragmentHandlerTest.php
deleted file mode 100644
index b2903b8..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fragment/FragmentHandlerTest.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
-
-use Symfony\Component\HttpKernel\Fragment\FragmentHandler;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class FragmentHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    private $requestStack;
-
-    protected function setUp()
-    {
-        $this->requestStack = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\RequestStack')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-        $this->requestStack
-            ->expects($this->any())
-            ->method('getCurrentRequest')
-            ->will($this->returnValue(Request::create('/')))
-        ;
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testRenderWhenRendererDoesNotExist()
-    {
-        $handler = new FragmentHandler(array(), null, $this->requestStack);
-        $handler->render('/', 'foo');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testRenderWithUnknownRenderer()
-    {
-        $handler = $this->getHandler($this->returnValue(new Response('foo')));
-
-        $handler->render('/', 'bar');
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Error when rendering "http://localhost/" (Status code is 404).
-     */
-    public function testDeliverWithUnsuccessfulResponse()
-    {
-        $handler = $this->getHandler($this->returnValue(new Response('foo', 404)));
-
-        $handler->render('/', 'foo');
-    }
-
-    public function testRender()
-    {
-        $handler = $this->getHandler($this->returnValue(new Response('foo')), array('/', Request::create('/'), array('foo' => 'foo', 'ignore_errors' => true)));
-
-        $this->assertEquals('foo', $handler->render('/', 'foo', array('foo' => 'foo')));
-    }
-
-    protected function getHandler($returnValue, $arguments = array())
-    {
-        $renderer = $this->getMock('Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface');
-        $renderer
-            ->expects($this->any())
-            ->method('getName')
-            ->will($this->returnValue('foo'))
-        ;
-        $e = $renderer
-            ->expects($this->any())
-            ->method('render')
-            ->will($returnValue)
-        ;
-
-        if ($arguments) {
-            call_user_func_array(array($e, 'with'), $arguments);
-        }
-
-        $handler = new FragmentHandler(array(), null, $this->requestStack);
-        $handler->addRenderer($renderer);
-
-        return $handler;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fragment/HIncludeFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Tests/Fragment/HIncludeFragmentRendererTest.php
deleted file mode 100644
index 2f266db..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fragment/HIncludeFragmentRendererTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
-
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\Fragment\HIncludeFragmentRenderer;
-use Symfony\Component\HttpKernel\UriSigner;
-use Symfony\Component\HttpFoundation\Request;
-
-class HIncludeFragmentRendererTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \LogicException
-     */
-    public function testRenderExceptionWhenControllerAndNoSigner()
-    {
-        $strategy = new HIncludeFragmentRenderer();
-        $strategy->render(new ControllerReference('main_controller', array(), array()), Request::create('/'));
-    }
-
-    public function testRenderWithControllerAndSigner()
-    {
-        $strategy = new HIncludeFragmentRenderer(null, new UriSigner('foo'));
-
-        $this->assertEquals('<hx:include src="/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dmain_controller&amp;_hash=BP%2BOzCD5MRUI%2BHJpgPDOmoju00FnzLhP3TGcSHbbBLs%3D"></hx:include>', $strategy->render(new ControllerReference('main_controller', array(), array()), Request::create('/'))->getContent());
-    }
-
-    public function testRenderWithUri()
-    {
-        $strategy = new HIncludeFragmentRenderer();
-        $this->assertEquals('<hx:include src="/foo"></hx:include>', $strategy->render('/foo', Request::create('/'))->getContent());
-
-        $strategy = new HIncludeFragmentRenderer(null, new UriSigner('foo'));
-        $this->assertEquals('<hx:include src="/foo"></hx:include>', $strategy->render('/foo', Request::create('/'))->getContent());
-    }
-
-    public function testRenderWithDefault()
-    {
-        // only default
-        $strategy = new HIncludeFragmentRenderer();
-        $this->assertEquals('<hx:include src="/foo">default</hx:include>', $strategy->render('/foo', Request::create('/'), array('default' => 'default'))->getContent());
-
-        // only global default
-        $strategy = new HIncludeFragmentRenderer(null, null, 'global_default');
-        $this->assertEquals('<hx:include src="/foo">global_default</hx:include>', $strategy->render('/foo', Request::create('/'), array())->getContent());
-
-        // global default and default
-        $strategy = new HIncludeFragmentRenderer(null, null, 'global_default');
-        $this->assertEquals('<hx:include src="/foo">default</hx:include>', $strategy->render('/foo', Request::create('/'), array('default' => 'default'))->getContent());
-    }
-
-    public function testRenderWithAttributesOptions()
-    {
-        // with id
-        $strategy = new HIncludeFragmentRenderer();
-        $this->assertEquals('<hx:include src="/foo" id="bar">default</hx:include>', $strategy->render('/foo', Request::create('/'), array('default' => 'default', 'id' => 'bar'))->getContent());
-
-        // with attributes
-        $strategy = new HIncludeFragmentRenderer();
-        $this->assertEquals('<hx:include src="/foo" p1="v1" p2="v2">default</hx:include>', $strategy->render('/foo', Request::create('/'), array('default' => 'default', 'attributes' => array('p1' => 'v1', 'p2' => 'v2')))->getContent());
-
-        // with id & attributes
-        $strategy = new HIncludeFragmentRenderer();
-        $this->assertEquals('<hx:include src="/foo" p1="v1" p2="v2" id="bar">default</hx:include>', $strategy->render('/foo', Request::create('/'), array('default' => 'default', 'id' => 'bar', 'attributes' => array('p1' => 'v1', 'p2' => 'v2')))->getContent());
-    }
-
-    public function testRenderWithDefaultText()
-    {
-        $engine = $this->getMock('Symfony\\Component\\Templating\\EngineInterface');
-        $engine->expects($this->once())
-            ->method('exists')
-            ->with('default')
-            ->will($this->throwException(new \InvalidArgumentException()));
-
-        // only default
-        $strategy = new HIncludeFragmentRenderer($engine);
-        $this->assertEquals('<hx:include src="/foo">default</hx:include>', $strategy->render('/foo', Request::create('/'), array('default' => 'default'))->getContent());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fragment/InlineFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Tests/Fragment/InlineFragmentRendererTest.php
deleted file mode 100644
index 4e487a4..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fragment/InlineFragmentRendererTest.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
-
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class InlineFragmentRendererTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRender()
-    {
-        $strategy = new InlineFragmentRenderer($this->getKernel($this->returnValue(new Response('foo'))));
-
-        $this->assertEquals('foo', $strategy->render('/', Request::create('/'))->getContent());
-    }
-
-    public function testRenderWithControllerReference()
-    {
-        $strategy = new InlineFragmentRenderer($this->getKernel($this->returnValue(new Response('foo'))));
-
-        $this->assertEquals('foo', $strategy->render(new ControllerReference('main_controller', array(), array()), Request::create('/'))->getContent());
-    }
-
-    public function testRenderWithObjectsAsAttributes()
-    {
-        $object = new \stdClass();
-
-        $subRequest = Request::create('/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dmain_controller');
-        $subRequest->attributes->replace(array('object' => $object, '_format' => 'html', '_controller' => 'main_controller', '_locale' => 'en'));
-        $subRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
-        $subRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
-
-        $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($subRequest));
-
-        $strategy->render(new ControllerReference('main_controller', array('object' => $object), array()), Request::create('/'));
-    }
-
-    public function testRenderWithObjectsAsAttributesPassedAsObjectsInTheController()
-    {
-        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver', array('getController'));
-        $resolver
-            ->expects($this->once())
-            ->method('getController')
-            ->will($this->returnValue(function (\stdClass $object, Bar $object1) {
-                return new Response($object1->getBar());
-            }))
-        ;
-
-        $kernel = new HttpKernel(new EventDispatcher(), $resolver);
-        $renderer = new InlineFragmentRenderer($kernel);
-
-        $response = $renderer->render(new ControllerReference('main_controller', array('object' => new \stdClass(), 'object1' => new Bar()), array()), Request::create('/'));
-        $this->assertEquals('bar', $response->getContent());
-    }
-
-    public function testRenderWithTrustedHeaderDisabled()
-    {
-        $trustedHeaderName = Request::getTrustedHeaderName(Request::HEADER_CLIENT_IP);
-
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, '');
-
-        $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest(Request::create('/')));
-        $strategy->render('/', Request::create('/'));
-
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, $trustedHeaderName);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testRenderExceptionNoIgnoreErrors()
-    {
-        $dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
-        $dispatcher->expects($this->never())->method('dispatch');
-
-        $strategy = new InlineFragmentRenderer($this->getKernel($this->throwException(new \RuntimeException('foo'))), $dispatcher);
-
-        $this->assertEquals('foo', $strategy->render('/', Request::create('/'))->getContent());
-    }
-
-    public function testRenderExceptionIgnoreErrors()
-    {
-        $dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
-        $dispatcher->expects($this->once())->method('dispatch')->with(KernelEvents::EXCEPTION);
-
-        $strategy = new InlineFragmentRenderer($this->getKernel($this->throwException(new \RuntimeException('foo'))), $dispatcher);
-
-        $this->assertEmpty($strategy->render('/', Request::create('/'), array('ignore_errors' => true))->getContent());
-    }
-
-    public function testRenderExceptionIgnoreErrorsWithAlt()
-    {
-        $strategy = new InlineFragmentRenderer($this->getKernel($this->onConsecutiveCalls(
-            $this->throwException(new \RuntimeException('foo')),
-            $this->returnValue(new Response('bar'))
-        )));
-
-        $this->assertEquals('bar', $strategy->render('/', Request::create('/'), array('ignore_errors' => true, 'alt' => '/foo'))->getContent());
-    }
-
-    private function getKernel($returnValue)
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $kernel
-            ->expects($this->any())
-            ->method('handle')
-            ->will($returnValue)
-        ;
-
-        return $kernel;
-    }
-
-    /**
-     * Creates a Kernel expecting a request equals to $request
-     * Allows delta in comparison in case REQUEST_TIME changed by 1 second.
-     */
-    private function getKernelExpectingRequest(Request $request)
-    {
-        $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
-        $kernel
-            ->expects($this->any())
-            ->method('handle')
-            ->with($this->equalTo($request, 1))
-        ;
-
-        return $kernel;
-    }
-
-    public function testExceptionInSubRequestsDoesNotMangleOutputBuffers()
-    {
-        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
-        $resolver
-            ->expects($this->once())
-            ->method('getController')
-            ->will($this->returnValue(function () {
-                ob_start();
-                echo 'bar';
-                throw new \RuntimeException();
-            }))
-        ;
-        $resolver
-            ->expects($this->once())
-            ->method('getArguments')
-            ->will($this->returnValue(array()))
-        ;
-
-        $kernel = new HttpKernel(new EventDispatcher(), $resolver);
-        $renderer = new InlineFragmentRenderer($kernel);
-
-        // simulate a main request with output buffering
-        ob_start();
-        echo 'Foo';
-
-        // simulate a sub-request with output buffering and an exception
-        $renderer->render('/', Request::create('/'), array('ignore_errors' => true));
-
-        $this->assertEquals('Foo', ob_get_clean());
-    }
-
-    public function testESIHeaderIsKeptInSubrequest()
-    {
-        $expectedSubRequest = Request::create('/');
-        $expectedSubRequest->headers->set('Surrogate-Capability', 'abc="ESI/1.0"');
-
-        if (Request::getTrustedHeaderName(Request::HEADER_CLIENT_IP)) {
-            $expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1'));
-            $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');
-        }
-
-        $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));
-
-        $request = Request::create('/');
-        $request->headers->set('Surrogate-Capability', 'abc="ESI/1.0"');
-        $strategy->render('/', $request);
-    }
-
-    public function testESIHeaderIsKeptInSubrequestWithTrustedHeaderDisabled()
-    {
-        $trustedHeaderName = Request::getTrustedHeaderName(Request::HEADER_CLIENT_IP);
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, '');
-
-        $this->testESIHeaderIsKeptInSubrequest();
-
-        Request::setTrustedHeaderName(Request::HEADER_CLIENT_IP, $trustedHeaderName);
-    }
-}
-
-class Bar
-{
-    public $bar = 'bar';
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Fragment/RoutableFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Tests/Fragment/RoutableFragmentRendererTest.php
deleted file mode 100644
index 184175c..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Fragment/RoutableFragmentRendererTest.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Fragment;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Controller\ControllerReference;
-
-class RoutableFragmentRendererTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getGenerateFragmentUriData
-     */
-    public function testGenerateFragmentUri($uri, $controller)
-    {
-        $this->assertEquals($uri, $this->callGenerateFragmentUriMethod($controller, Request::create('/')));
-    }
-
-    /**
-     * @dataProvider getGenerateFragmentUriData
-     */
-    public function testGenerateAbsoluteFragmentUri($uri, $controller)
-    {
-        $this->assertEquals('http://localhost'.$uri, $this->callGenerateFragmentUriMethod($controller, Request::create('/'), true));
-    }
-
-    public function getGenerateFragmentUriData()
-    {
-        return array(
-            array('/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array(), array())),
-            array('/_fragment?_path=_format%3Dxml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('_format' => 'xml'), array())),
-            array('/_fragment?_path=foo%3Dfoo%26_format%3Djson%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => 'foo', '_format' => 'json'), array())),
-            array('/_fragment?bar=bar&_path=foo%3Dfoo%26_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => 'foo'), array('bar' => 'bar'))),
-            array('/_fragment?foo=foo&_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array(), array('foo' => 'foo'))),
-            array('/_fragment?_path=foo%255B0%255D%3Dfoo%26foo%255B1%255D%3Dbar%26_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => array('foo', 'bar')), array())),
-        );
-    }
-
-    public function testGenerateFragmentUriWithARequest()
-    {
-        $request = Request::create('/');
-        $request->attributes->set('_format', 'json');
-        $request->setLocale('fr');
-        $controller = new ControllerReference('controller', array(), array());
-
-        $this->assertEquals('/_fragment?_path=_format%3Djson%26_locale%3Dfr%26_controller%3Dcontroller', $this->callGenerateFragmentUriMethod($controller, $request));
-    }
-
-    /**
-     * @expectedException LogicException
-     * @dataProvider      getGenerateFragmentUriDataWithNonScalar
-     */
-    public function testGenerateFragmentUriWithNonScalar($controller)
-    {
-        $this->callGenerateFragmentUriMethod($controller, Request::create('/'));
-    }
-
-    public function getGenerateFragmentUriDataWithNonScalar()
-    {
-        return array(
-            array(new ControllerReference('controller', array('foo' => new Foo(), 'bar' => 'bar'), array())),
-            array(new ControllerReference('controller', array('foo' => array('foo' => 'foo'), 'bar' => array('bar' => new Foo())), array())),
-        );
-    }
-
-    private function callGenerateFragmentUriMethod(ControllerReference $reference, Request $request, $absolute = false)
-    {
-        $renderer = $this->getMockForAbstractClass('Symfony\Component\HttpKernel\Fragment\RoutableFragmentRenderer');
-        $r = new \ReflectionObject($renderer);
-        $m = $r->getMethod('generateFragmentUri');
-        $m->setAccessible(true);
-
-        return $m->invoke($renderer, $reference, $request, $absolute);
-    }
-}
-
-class Foo
-{
-    public $foo;
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/EsiTest.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/EsiTest.php
deleted file mode 100644
index 00a9367..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/EsiTest.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpKernel\HttpCache\Esi;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class EsiTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasSurrogateEsiCapability()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $request->headers->set('Surrogate-Capability', 'abc="ESI/1.0"');
-        $this->assertTrue($esi->hasSurrogateCapability($request));
-
-        $request = Request::create('/');
-        $request->headers->set('Surrogate-Capability', 'foobar');
-        $this->assertFalse($esi->hasSurrogateCapability($request));
-
-        $request = Request::create('/');
-        $this->assertFalse($esi->hasSurrogateCapability($request));
-    }
-
-    public function testAddSurrogateEsiCapability()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $esi->addSurrogateCapability($request);
-        $this->assertEquals('symfony2="ESI/1.0"', $request->headers->get('Surrogate-Capability'));
-
-        $esi->addSurrogateCapability($request);
-        $this->assertEquals('symfony2="ESI/1.0", symfony2="ESI/1.0"', $request->headers->get('Surrogate-Capability'));
-    }
-
-    public function testAddSurrogateControl()
-    {
-        $esi = new Esi();
-
-        $response = new Response('foo <esi:include src="" />');
-        $esi->addSurrogateControl($response);
-        $this->assertEquals('content="ESI/1.0"', $response->headers->get('Surrogate-Control'));
-
-        $response = new Response('foo');
-        $esi->addSurrogateControl($response);
-        $this->assertEquals('', $response->headers->get('Surrogate-Control'));
-    }
-
-    public function testNeedsEsiParsing()
-    {
-        $esi = new Esi();
-
-        $response = new Response();
-        $response->headers->set('Surrogate-Control', 'content="ESI/1.0"');
-        $this->assertTrue($esi->needsParsing($response));
-
-        $response = new Response();
-        $this->assertFalse($esi->needsParsing($response));
-    }
-
-    public function testRenderIncludeTag()
-    {
-        $esi = new Esi();
-
-        $this->assertEquals('<esi:include src="/" onerror="continue" alt="/alt" />', $esi->renderIncludeTag('/', '/alt', true));
-        $this->assertEquals('<esi:include src="/" alt="/alt" />', $esi->renderIncludeTag('/', '/alt', false));
-        $this->assertEquals('<esi:include src="/" onerror="continue" />', $esi->renderIncludeTag('/'));
-        $this->assertEquals('<esi:comment text="some comment" />'."\n".'<esi:include src="/" onerror="continue" alt="/alt" />', $esi->renderIncludeTag('/', '/alt', true, 'some comment'));
-    }
-
-    public function testProcessDoesNothingIfContentTypeIsNotHtml()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $response = new Response();
-        $response->headers->set('Content-Type', 'text/plain');
-        $esi->process($request, $response);
-
-        $this->assertFalse($response->headers->has('x-body-eval'));
-    }
-
-    public function testProcess()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $response = new Response('foo <esi:comment text="some comment" /><esi:include src="..." alt="alt" onerror="continue" />');
-        $esi->process($request, $response);
-
-        $this->assertEquals('foo <?php echo $this->surrogate->handle($this, \'...\', \'alt\', true) ?>'."\n", $response->getContent());
-        $this->assertEquals('ESI', $response->headers->get('x-body-eval'));
-
-        $response = new Response('foo <esi:comment text="some comment" /><esi:include src="foo\'" alt="bar\'" onerror="continue" />');
-        $esi->process($request, $response);
-
-        $this->assertEquals('foo <?php echo $this->surrogate->handle($this, \'foo\\\'\', \'bar\\\'\', true) ?>'."\n", $response->getContent());
-
-        $response = new Response('foo <esi:include src="..." />');
-        $esi->process($request, $response);
-
-        $this->assertEquals('foo <?php echo $this->surrogate->handle($this, \'...\', \'\', false) ?>'."\n", $response->getContent());
-
-        $response = new Response('foo <esi:include src="..."></esi:include>');
-        $esi->process($request, $response);
-
-        $this->assertEquals('foo <?php echo $this->surrogate->handle($this, \'...\', \'\', false) ?>'."\n", $response->getContent());
-    }
-
-    public function testProcessEscapesPhpTags()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $response = new Response('<?php <? <% <script language=php>');
-        $esi->process($request, $response);
-
-        $this->assertEquals('<?php echo "<?"; ?>php <?php echo "<?"; ?> <?php echo "<%"; ?> <?php echo "<s"; ?>cript language=php>', $response->getContent());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testProcessWhenNoSrcInAnEsi()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $response = new Response('foo <esi:include />');
-        $esi->process($request, $response);
-    }
-
-    public function testProcessRemoveSurrogateControlHeader()
-    {
-        $esi = new Esi();
-
-        $request = Request::create('/');
-        $response = new Response('foo <esi:include src="..." />');
-        $response->headers->set('Surrogate-Control', 'content="ESI/1.0"');
-        $esi->process($request, $response);
-        $this->assertEquals('ESI', $response->headers->get('x-body-eval'));
-
-        $response->headers->set('Surrogate-Control', 'no-store, content="ESI/1.0"');
-        $esi->process($request, $response);
-        $this->assertEquals('ESI', $response->headers->get('x-body-eval'));
-        $this->assertEquals('no-store', $response->headers->get('surrogate-control'));
-
-        $response->headers->set('Surrogate-Control', 'content="ESI/1.0", no-store');
-        $esi->process($request, $response);
-        $this->assertEquals('ESI', $response->headers->get('x-body-eval'));
-        $this->assertEquals('no-store', $response->headers->get('surrogate-control'));
-    }
-
-    public function testHandle()
-    {
-        $esi = new Esi();
-        $cache = $this->getCache(Request::create('/'), new Response('foo'));
-        $this->assertEquals('foo', $esi->handle($cache, '/', '/alt', true));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testHandleWhenResponseIsNot200()
-    {
-        $esi = new Esi();
-        $response = new Response('foo');
-        $response->setStatusCode(404);
-        $cache = $this->getCache(Request::create('/'), $response);
-        $esi->handle($cache, '/', '/alt', false);
-    }
-
-    public function testHandleWhenResponseIsNot200AndErrorsAreIgnored()
-    {
-        $esi = new Esi();
-        $response = new Response('foo');
-        $response->setStatusCode(404);
-        $cache = $this->getCache(Request::create('/'), $response);
-        $this->assertEquals('', $esi->handle($cache, '/', '/alt', true));
-    }
-
-    public function testHandleWhenResponseIsNot200AndAltIsPresent()
-    {
-        $esi = new Esi();
-        $response1 = new Response('foo');
-        $response1->setStatusCode(404);
-        $response2 = new Response('bar');
-        $cache = $this->getCache(Request::create('/'), array($response1, $response2));
-        $this->assertEquals('bar', $esi->handle($cache, '/', '/alt', false));
-    }
-
-    protected function getCache($request, $response)
-    {
-        $cache = $this->getMock('Symfony\Component\HttpKernel\HttpCache\HttpCache', array('getRequest', 'handle'), array(), '', false);
-        $cache->expects($this->any())
-              ->method('getRequest')
-              ->will($this->returnValue($request))
-        ;
-        if (is_array($response)) {
-            $cache->expects($this->any())
-                  ->method('handle')
-                  ->will(call_user_func_array(array($this, 'onConsecutiveCalls'), $response))
-            ;
-        } else {
-            $cache->expects($this->any())
-                  ->method('handle')
-                  ->will($this->returnValue($response))
-            ;
-        }
-
-        return $cache;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTest.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTest.php
deleted file mode 100644
index 97fde8d..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTest.php
+++ /dev/null
@@ -1,1225 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpKernel\HttpCache\HttpCache;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class HttpCacheTest extends HttpCacheTestCase
-{
-    public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
-    {
-        $storeMock = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        // does not implement TerminableInterface
-        $kernelMock = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\HttpKernelInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $kernelMock->expects($this->never())
-            ->method('terminate');
-
-        $kernel = new HttpCache($kernelMock, $storeMock);
-        $kernel->terminate(Request::create('/'), new Response());
-
-        // implements TerminableInterface
-        $kernelMock = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Kernel')
-            ->disableOriginalConstructor()
-            ->setMethods(array('terminate', 'registerBundles', 'registerContainerConfiguration'))
-            ->getMock();
-
-        $kernelMock->expects($this->once())
-            ->method('terminate');
-
-        $kernel = new HttpCache($kernelMock, $storeMock);
-        $kernel->terminate(Request::create('/'), new Response());
-    }
-
-    public function testPassesOnNonGetHeadRequests()
-    {
-        $this->setNextResponse(200);
-        $this->request('POST', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertResponseOk();
-        $this->assertTraceContains('pass');
-        $this->assertFalse($this->response->headers->has('Age'));
-    }
-
-    public function testInvalidatesOnPostPutDeleteRequests()
-    {
-        foreach (array('post', 'put', 'delete') as $method) {
-            $this->setNextResponse(200);
-            $this->request($method, '/');
-
-            $this->assertHttpKernelIsCalled();
-            $this->assertResponseOk();
-            $this->assertTraceContains('invalidate');
-            $this->assertTraceContains('pass');
-        }
-    }
-
-    public function testDoesNotCacheWithAuthorizationRequestHeaderAndNonPublicResponse()
-    {
-        $this->setNextResponse(200, array('ETag' => '"Foo"'));
-        $this->request('GET', '/', array('HTTP_AUTHORIZATION' => 'basic foobarbaz'));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertResponseOk();
-        $this->assertEquals('private', $this->response->headers->get('Cache-Control'));
-
-        $this->assertTraceContains('miss');
-        $this->assertTraceNotContains('store');
-        $this->assertFalse($this->response->headers->has('Age'));
-    }
-
-    public function testDoesCacheWithAuthorizationRequestHeaderAndPublicResponse()
-    {
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'ETag' => '"Foo"'));
-        $this->request('GET', '/', array('HTTP_AUTHORIZATION' => 'basic foobarbaz'));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertResponseOk();
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertTrue($this->response->headers->has('Age'));
-        $this->assertEquals('public', $this->response->headers->get('Cache-Control'));
-    }
-
-    public function testDoesNotCacheWithCookieHeaderAndNonPublicResponse()
-    {
-        $this->setNextResponse(200, array('ETag' => '"Foo"'));
-        $this->request('GET', '/', array(), array('foo' => 'bar'));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertResponseOk();
-        $this->assertEquals('private', $this->response->headers->get('Cache-Control'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceNotContains('store');
-        $this->assertFalse($this->response->headers->has('Age'));
-    }
-
-    public function testDoesNotCacheRequestsWithACookieHeader()
-    {
-        $this->setNextResponse(200);
-        $this->request('GET', '/', array(), array('foo' => 'bar'));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertResponseOk();
-        $this->assertEquals('private', $this->response->headers->get('Cache-Control'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceNotContains('store');
-        $this->assertFalse($this->response->headers->has('Age'));
-    }
-
-    public function testRespondsWith304WhenIfModifiedSinceMatchesLastModified()
-    {
-        $time = new \DateTime();
-
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Last-Modified' => $time->format(DATE_RFC2822), 'Content-Type' => 'text/plain'), 'Hello World');
-        $this->request('GET', '/', array('HTTP_IF_MODIFIED_SINCE' => $time->format(DATE_RFC2822)));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(304, $this->response->getStatusCode());
-        $this->assertEquals('', $this->response->headers->get('Content-Type'));
-        $this->assertEmpty($this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-    }
-
-    public function testRespondsWith304WhenIfNoneMatchMatchesETag()
-    {
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'ETag' => '12345', 'Content-Type' => 'text/plain'), 'Hello World');
-        $this->request('GET', '/', array('HTTP_IF_NONE_MATCH' => '12345'));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(304, $this->response->getStatusCode());
-        $this->assertEquals('', $this->response->headers->get('Content-Type'));
-        $this->assertTrue($this->response->headers->has('ETag'));
-        $this->assertEmpty($this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-    }
-
-    public function testRespondsWith304OnlyIfIfNoneMatchAndIfModifiedSinceBothMatch()
-    {
-        $time = new \DateTime();
-
-        $this->setNextResponse(200, array(), '', function ($request, $response) use ($time) {
-            $response->setStatusCode(200);
-            $response->headers->set('ETag', '12345');
-            $response->headers->set('Last-Modified', $time->format(DATE_RFC2822));
-            $response->headers->set('Content-Type', 'text/plain');
-            $response->setContent('Hello World');
-        });
-
-        // only ETag matches
-        $t = \DateTime::createFromFormat('U', time() - 3600);
-        $this->request('GET', '/', array('HTTP_IF_NONE_MATCH' => '12345', 'HTTP_IF_MODIFIED_SINCE' => $t->format(DATE_RFC2822)));
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-
-        // only Last-Modified matches
-        $this->request('GET', '/', array('HTTP_IF_NONE_MATCH' => '1234', 'HTTP_IF_MODIFIED_SINCE' => $time->format(DATE_RFC2822)));
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-
-        // Both matches
-        $this->request('GET', '/', array('HTTP_IF_NONE_MATCH' => '12345', 'HTTP_IF_MODIFIED_SINCE' => $time->format(DATE_RFC2822)));
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(304, $this->response->getStatusCode());
-    }
-
-    public function testValidatesPrivateResponsesCachedOnTheClient()
-    {
-        $this->setNextResponse(200, array(), '', function ($request, $response) {
-            $etags = preg_split('/\s*,\s*/', $request->headers->get('IF_NONE_MATCH'));
-            if ($request->cookies->has('authenticated')) {
-                $response->headers->set('Cache-Control', 'private, no-store');
-                $response->setETag('"private tag"');
-                if (in_array('"private tag"', $etags)) {
-                    $response->setStatusCode(304);
-                } else {
-                    $response->setStatusCode(200);
-                    $response->headers->set('Content-Type', 'text/plain');
-                    $response->setContent('private data');
-                }
-            } else {
-                $response->headers->set('Cache-Control', 'public');
-                $response->setETag('"public tag"');
-                if (in_array('"public tag"', $etags)) {
-                    $response->setStatusCode(304);
-                } else {
-                    $response->setStatusCode(200);
-                    $response->headers->set('Content-Type', 'text/plain');
-                    $response->setContent('public data');
-                }
-            }
-        });
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('"public tag"', $this->response->headers->get('ETag'));
-        $this->assertEquals('public data', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        $this->request('GET', '/', array(), array('authenticated' => ''));
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('"private tag"', $this->response->headers->get('ETag'));
-        $this->assertEquals('private data', $this->response->getContent());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('invalid');
-        $this->assertTraceNotContains('store');
-    }
-
-    public function testStoresResponsesWhenNoCacheRequestDirectivePresent()
-    {
-        $time = \DateTime::createFromFormat('U', time() + 5);
-
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Expires' => $time->format(DATE_RFC2822)));
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'no-cache'));
-
-        $this->assertHttpKernelIsCalled();
-        $this->assertTraceContains('store');
-        $this->assertTrue($this->response->headers->has('Age'));
-    }
-
-    public function testReloadsResponsesWhenCacheHitsButNoCacheRequestDirectivePresentWhenAllowReloadIsSetTrue()
-    {
-        $count = 0;
-
-        $this->setNextResponse(200, array('Cache-Control' => 'public, max-age=10000'), '', function ($request, $response) use (&$count) {
-            ++$count;
-            $response->setContent(1 == $count ? 'Hello World' : 'Goodbye World');
-        });
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('store');
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('fresh');
-
-        $this->cacheConfig['allow_reload'] = true;
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'no-cache'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Goodbye World', $this->response->getContent());
-        $this->assertTraceContains('reload');
-        $this->assertTraceContains('store');
-    }
-
-    public function testDoesNotReloadResponsesWhenAllowReloadIsSetFalseDefault()
-    {
-        $count = 0;
-
-        $this->setNextResponse(200, array('Cache-Control' => 'public, max-age=10000'), '', function ($request, $response) use (&$count) {
-            ++$count;
-            $response->setContent(1 == $count ? 'Hello World' : 'Goodbye World');
-        });
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('store');
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('fresh');
-
-        $this->cacheConfig['allow_reload'] = false;
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'no-cache'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceNotContains('reload');
-
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'no-cache'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceNotContains('reload');
-    }
-
-    public function testRevalidatesFreshCacheEntryWhenMaxAgeRequestDirectiveIsExceededWhenAllowRevalidateOptionIsSetTrue()
-    {
-        $count = 0;
-
-        $this->setNextResponse(200, array(), '', function ($request, $response) use (&$count) {
-            ++$count;
-            $response->headers->set('Cache-Control', 'public, max-age=10000');
-            $response->setETag($count);
-            $response->setContent(1 == $count ? 'Hello World' : 'Goodbye World');
-        });
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('store');
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('fresh');
-
-        $this->cacheConfig['allow_revalidate'] = true;
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'max-age=0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Goodbye World', $this->response->getContent());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('invalid');
-        $this->assertTraceContains('store');
-    }
-
-    public function testDoesNotRevalidateFreshCacheEntryWhenEnableRevalidateOptionIsSetFalseDefault()
-    {
-        $count = 0;
-
-        $this->setNextResponse(200, array(), '', function ($request, $response) use (&$count) {
-            ++$count;
-            $response->headers->set('Cache-Control', 'public, max-age=10000');
-            $response->setETag($count);
-            $response->setContent(1 == $count ? 'Hello World' : 'Goodbye World');
-        });
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('store');
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('fresh');
-
-        $this->cacheConfig['allow_revalidate'] = false;
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'max-age=0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceNotContains('stale');
-        $this->assertTraceNotContains('invalid');
-        $this->assertTraceContains('fresh');
-
-        $this->request('GET', '/', array('HTTP_CACHE_CONTROL' => 'max-age=0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceNotContains('stale');
-        $this->assertTraceNotContains('invalid');
-        $this->assertTraceContains('fresh');
-    }
-
-    public function testFetchesResponseFromBackendWhenCacheMisses()
-    {
-        $time = \DateTime::createFromFormat('U', time() + 5);
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Expires' => $time->format(DATE_RFC2822)));
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('miss');
-        $this->assertTrue($this->response->headers->has('Age'));
-    }
-
-    public function testDoesNotCacheSomeStatusCodeResponses()
-    {
-        foreach (array_merge(range(201, 202), range(204, 206), range(303, 305), range(400, 403), range(405, 409), range(411, 417), range(500, 505)) as $code) {
-            $time = \DateTime::createFromFormat('U', time() + 5);
-            $this->setNextResponse($code, array('Expires' => $time->format(DATE_RFC2822)));
-
-            $this->request('GET', '/');
-            $this->assertEquals($code, $this->response->getStatusCode());
-            $this->assertTraceNotContains('store');
-            $this->assertFalse($this->response->headers->has('Age'));
-        }
-    }
-
-    public function testDoesNotCacheResponsesWithExplicitNoStoreDirective()
-    {
-        $time = \DateTime::createFromFormat('U', time() + 5);
-        $this->setNextResponse(200, array('Expires' => $time->format(DATE_RFC2822), 'Cache-Control' => 'no-store'));
-
-        $this->request('GET', '/');
-        $this->assertTraceNotContains('store');
-        $this->assertFalse($this->response->headers->has('Age'));
-    }
-
-    public function testDoesNotCacheResponsesWithoutFreshnessInformationOrAValidator()
-    {
-        $this->setNextResponse();
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceNotContains('store');
-    }
-
-    public function testCachesResponsesWithExplicitNoCacheDirective()
-    {
-        $time = \DateTime::createFromFormat('U', time() + 5);
-        $this->setNextResponse(200, array('Expires' => $time->format(DATE_RFC2822), 'Cache-Control' => 'public, no-cache'));
-
-        $this->request('GET', '/');
-        $this->assertTraceContains('store');
-        $this->assertTrue($this->response->headers->has('Age'));
-    }
-
-    public function testCachesResponsesWithAnExpirationHeader()
-    {
-        $time = \DateTime::createFromFormat('U', time() + 5);
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Expires' => $time->format(DATE_RFC2822)));
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        $values = $this->getMetaStorageValues();
-        $this->assertCount(1, $values);
-    }
-
-    public function testCachesResponsesWithAMaxAgeDirective()
-    {
-        $this->setNextResponse(200, array('Cache-Control' => 'public, max-age=5'));
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        $values = $this->getMetaStorageValues();
-        $this->assertCount(1, $values);
-    }
-
-    public function testCachesResponsesWithASMaxAgeDirective()
-    {
-        $this->setNextResponse(200, array('Cache-Control' => 's-maxage=5'));
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        $values = $this->getMetaStorageValues();
-        $this->assertCount(1, $values);
-    }
-
-    public function testCachesResponsesWithALastModifiedValidatorButNoFreshnessInformation()
-    {
-        $time = \DateTime::createFromFormat('U', time());
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Last-Modified' => $time->format(DATE_RFC2822)));
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-    }
-
-    public function testCachesResponsesWithAnETagValidatorButNoFreshnessInformation()
-    {
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'ETag' => '"123456"'));
-
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-    }
-
-    public function testHitsCachedResponsesWithExpiresHeader()
-    {
-        $time1 = \DateTime::createFromFormat('U', time() - 5);
-        $time2 = \DateTime::createFromFormat('U', time() + 5);
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Date' => $time1->format(DATE_RFC2822), 'Expires' => $time2->format(DATE_RFC2822)));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTrue(strtotime($this->responses[0]->headers->get('Date')) - strtotime($this->response->headers->get('Date')) < 2);
-        $this->assertTrue($this->response->headers->get('Age') > 0);
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-    }
-
-    public function testHitsCachedResponseWithMaxAgeDirective()
-    {
-        $time = \DateTime::createFromFormat('U', time() - 5);
-        $this->setNextResponse(200, array('Date' => $time->format(DATE_RFC2822), 'Cache-Control' => 'public, max-age=10'));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTrue(strtotime($this->responses[0]->headers->get('Date')) - strtotime($this->response->headers->get('Date')) < 2);
-        $this->assertTrue($this->response->headers->get('Age') > 0);
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-    }
-
-    public function testHitsCachedResponseWithSMaxAgeDirective()
-    {
-        $time = \DateTime::createFromFormat('U', time() - 5);
-        $this->setNextResponse(200, array('Date' => $time->format(DATE_RFC2822), 'Cache-Control' => 's-maxage=10, max-age=0'));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTrue(strtotime($this->responses[0]->headers->get('Date')) - strtotime($this->response->headers->get('Date')) < 2);
-        $this->assertTrue($this->response->headers->get('Age') > 0);
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-    }
-
-    public function testAssignsDefaultTtlWhenResponseHasNoFreshnessInformation()
-    {
-        $this->setNextResponse();
-
-        $this->cacheConfig['default_ttl'] = 10;
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=10/', $this->response->headers->get('Cache-Control'));
-
-        $this->cacheConfig['default_ttl'] = 10;
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=10/', $this->response->headers->get('Cache-Control'));
-    }
-
-    public function testAssignsDefaultTtlWhenResponseHasNoFreshnessInformationAndAfterTtlWasExpired()
-    {
-        $this->setNextResponse();
-
-        $this->cacheConfig['default_ttl'] = 2;
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=(?:2|3)/', $this->response->headers->get('Cache-Control'));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=2/', $this->response->headers->get('Cache-Control'));
-
-        // expires the cache
-        $values = $this->getMetaStorageValues();
-        $this->assertCount(1, $values);
-        $tmp = unserialize($values[0]);
-        $tmp[0][1]['date'] = \DateTime::createFromFormat('U', time() - 5)->format(DATE_RFC2822);
-        $r = new \ReflectionObject($this->store);
-        $m = $r->getMethod('save');
-        $m->setAccessible(true);
-        $m->invoke($this->store, 'md'.hash('sha256', 'http://localhost/'), serialize($tmp));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('invalid');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=2/', $this->response->headers->get('Cache-Control'));
-
-        $this->setNextResponse();
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=2/', $this->response->headers->get('Cache-Control'));
-    }
-
-    public function testAssignsDefaultTtlWhenResponseHasNoFreshnessInformationAndAfterTtlWasExpiredWithStatus304()
-    {
-        $this->setNextResponse();
-
-        $this->cacheConfig['default_ttl'] = 2;
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=2/', $this->response->headers->get('Cache-Control'));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        // expires the cache
-        $values = $this->getMetaStorageValues();
-        $this->assertCount(1, $values);
-        $tmp = unserialize($values[0]);
-        $tmp[0][1]['date'] = \DateTime::createFromFormat('U', time() - 5)->format(DATE_RFC2822);
-        $r = new \ReflectionObject($this->store);
-        $m = $r->getMethod('save');
-        $m->setAccessible(true);
-        $m->invoke($this->store, 'md'.hash('sha256', 'http://localhost/'), serialize($tmp));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('valid');
-        $this->assertTraceContains('store');
-        $this->assertTraceNotContains('miss');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=2/', $this->response->headers->get('Cache-Control'));
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertRegExp('/s-maxage=2/', $this->response->headers->get('Cache-Control'));
-    }
-
-    public function testDoesNotAssignDefaultTtlWhenResponseHasMustRevalidateDirective()
-    {
-        $this->setNextResponse(200, array('Cache-Control' => 'must-revalidate'));
-
-        $this->cacheConfig['default_ttl'] = 10;
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('miss');
-        $this->assertTraceNotContains('store');
-        $this->assertNotRegExp('/s-maxage/', $this->response->headers->get('Cache-Control'));
-        $this->assertEquals('Hello World', $this->response->getContent());
-    }
-
-    public function testFetchesFullResponseWhenCacheStaleAndNoValidatorsPresent()
-    {
-        $time = \DateTime::createFromFormat('U', time() + 5);
-        $this->setNextResponse(200, array('Cache-Control' => 'public', 'Expires' => $time->format(DATE_RFC2822)));
-
-        // build initial request
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('Date'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertNotNull($this->response->headers->get('Age'));
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        # go in and play around with the cached metadata directly ...
-        $values = $this->getMetaStorageValues();
-        $this->assertCount(1, $values);
-        $tmp = unserialize($values[0]);
-        $time = \DateTime::createFromFormat('U', time());
-        $tmp[0][1]['expires'] = $time->format(DATE_RFC2822);
-        $r = new \ReflectionObject($this->store);
-        $m = $r->getMethod('save');
-        $m->setAccessible(true);
-        $m->invoke($this->store, 'md'.hash('sha256', 'http://localhost/'), serialize($tmp));
-
-        // build subsequent request; should be found but miss due to freshness
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTrue($this->response->headers->get('Age') <= 1);
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTraceContains('stale');
-        $this->assertTraceNotContains('fresh');
-        $this->assertTraceNotContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Hello World', $this->response->getContent());
-    }
-
-    public function testValidatesCachedResponsesWithLastModifiedAndNoFreshnessInformation()
-    {
-        $time = \DateTime::createFromFormat('U', time());
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) use ($time) {
-            $response->headers->set('Cache-Control', 'public');
-            $response->headers->set('Last-Modified', $time->format(DATE_RFC2822));
-            if ($time->format(DATE_RFC2822) == $request->headers->get('IF_MODIFIED_SINCE')) {
-                $response->setStatusCode(304);
-                $response->setContent('');
-            }
-        });
-
-        // build initial request
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('Last-Modified'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertTraceNotContains('stale');
-
-        // build subsequent request; should be found but miss due to freshness
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('Last-Modified'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTrue($this->response->headers->get('Age') <= 1);
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('valid');
-        $this->assertTraceContains('store');
-        $this->assertTraceNotContains('miss');
-    }
-
-    public function testValidatesCachedResponsesWithETagAndNoFreshnessInformation()
-    {
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) {
-            $response->headers->set('Cache-Control', 'public');
-            $response->headers->set('ETag', '"12345"');
-            if ($response->getETag() == $request->headers->get('IF_NONE_MATCH')) {
-                $response->setStatusCode(304);
-                $response->setContent('');
-            }
-        });
-
-        // build initial request
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('ETag'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        // build subsequent request; should be found but miss due to freshness
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertNotNull($this->response->headers->get('ETag'));
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $this->assertTrue($this->response->headers->get('Age') <= 1);
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('valid');
-        $this->assertTraceContains('store');
-        $this->assertTraceNotContains('miss');
-    }
-
-    public function testReplacesCachedResponsesWhenValidationResultsInNon304Response()
-    {
-        $time = \DateTime::createFromFormat('U', time());
-        $count = 0;
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) use ($time, &$count) {
-            $response->headers->set('Last-Modified', $time->format(DATE_RFC2822));
-            $response->headers->set('Cache-Control', 'public');
-            switch (++$count) {
-                case 1:
-                    $response->setContent('first response');
-                    break;
-                case 2:
-                    $response->setContent('second response');
-                    break;
-                case 3:
-                    $response->setContent('');
-                    $response->setStatusCode(304);
-                    break;
-            }
-        });
-
-        // first request should fetch from backend and store in cache
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('first response', $this->response->getContent());
-
-        // second request is validated, is invalid, and replaces cached entry
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('second response', $this->response->getContent());
-
-        // third response is validated, valid, and returns cached entry
-        $this->request('GET', '/');
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('second response', $this->response->getContent());
-
-        $this->assertEquals(3, $count);
-    }
-
-    public function testPassesHeadRequestsThroughDirectlyOnPass()
-    {
-        $that = $this;
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) use ($that) {
-            $response->setContent('');
-            $response->setStatusCode(200);
-            $that->assertEquals('HEAD', $request->getMethod());
-        });
-
-        $this->request('HEAD', '/', array('HTTP_EXPECT' => 'something ...'));
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals('', $this->response->getContent());
-    }
-
-    public function testUsesCacheToRespondToHeadRequestsWhenFresh()
-    {
-        $that = $this;
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) use ($that) {
-            $response->headers->set('Cache-Control', 'public, max-age=10');
-            $response->setContent('Hello World');
-            $response->setStatusCode(200);
-            $that->assertNotEquals('HEAD', $request->getMethod());
-        });
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        $this->request('HEAD', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('', $this->response->getContent());
-        $this->assertEquals(strlen('Hello World'), $this->response->headers->get('Content-Length'));
-    }
-
-    public function testSendsNoContentWhenFresh()
-    {
-        $time = \DateTime::createFromFormat('U', time());
-        $that = $this;
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) use ($that, $time) {
-            $response->headers->set('Cache-Control', 'public, max-age=10');
-            $response->headers->set('Last-Modified', $time->format(DATE_RFC2822));
-        });
-
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals('Hello World', $this->response->getContent());
-
-        $this->request('GET', '/', array('HTTP_IF_MODIFIED_SINCE' => $time->format(DATE_RFC2822)));
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(304, $this->response->getStatusCode());
-        $this->assertEquals('', $this->response->getContent());
-    }
-
-    public function testInvalidatesCachedResponsesOnPost()
-    {
-        $this->setNextResponse(200, array(), 'Hello World', function ($request, $response) {
-            if ('GET' == $request->getMethod()) {
-                $response->setStatusCode(200);
-                $response->headers->set('Cache-Control', 'public, max-age=500');
-                $response->setContent('Hello World');
-            } elseif ('POST' == $request->getMethod()) {
-                $response->setStatusCode(303);
-                $response->headers->set('Location', '/');
-                $response->headers->remove('Cache-Control');
-                $response->setContent('');
-            }
-        });
-
-        // build initial request to enter into the cache
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        // make sure it is valid
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsNotCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('fresh');
-
-        // now POST to same URL
-        $this->request('POST', '/helloworld');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals('/', $this->response->headers->get('Location'));
-        $this->assertTraceContains('invalidate');
-        $this->assertTraceContains('pass');
-        $this->assertEquals('', $this->response->getContent());
-
-        // now make sure it was actually invalidated
-        $this->request('GET', '/');
-        $this->assertHttpKernelIsCalled();
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Hello World', $this->response->getContent());
-        $this->assertTraceContains('stale');
-        $this->assertTraceContains('invalid');
-        $this->assertTraceContains('store');
-    }
-
-    public function testServesFromCacheWhenHeadersMatch()
-    {
-        $count = 0;
-        $this->setNextResponse(200, array('Cache-Control' => 'max-age=10000'), '', function ($request, $response) use (&$count) {
-            $response->headers->set('Vary', 'Accept User-Agent Foo');
-            $response->headers->set('Cache-Control', 'public, max-age=10');
-            $response->headers->set('X-Response-Count', ++$count);
-            $response->setContent($request->headers->get('USER_AGENT'));
-        });
-
-        $this->request('GET', '/', array('HTTP_ACCEPT' => 'text/html', 'HTTP_USER_AGENT' => 'Bob/1.0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Bob/1.0', $this->response->getContent());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-
-        $this->request('GET', '/', array('HTTP_ACCEPT' => 'text/html', 'HTTP_USER_AGENT' => 'Bob/1.0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Bob/1.0', $this->response->getContent());
-        $this->assertTraceContains('fresh');
-        $this->assertTraceNotContains('store');
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-    }
-
-    public function testStoresMultipleResponsesWhenHeadersDiffer()
-    {
-        $count = 0;
-        $this->setNextResponse(200, array('Cache-Control' => 'max-age=10000'), '', function ($request, $response) use (&$count) {
-            $response->headers->set('Vary', 'Accept User-Agent Foo');
-            $response->headers->set('Cache-Control', 'public, max-age=10');
-            $response->headers->set('X-Response-Count', ++$count);
-            $response->setContent($request->headers->get('USER_AGENT'));
-        });
-
-        $this->request('GET', '/', array('HTTP_ACCEPT' => 'text/html', 'HTTP_USER_AGENT' => 'Bob/1.0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertEquals('Bob/1.0', $this->response->getContent());
-        $this->assertEquals(1, $this->response->headers->get('X-Response-Count'));
-
-        $this->request('GET', '/', array('HTTP_ACCEPT' => 'text/html', 'HTTP_USER_AGENT' => 'Bob/2.0'));
-        $this->assertEquals(200, $this->response->getStatusCode());
-        $this->assertTraceContains('miss');
-        $this->assertTraceContains('store');
-        $this->assertEquals('Bob/2.0', $this->response->getContent());
-        $this->assertEquals(2, $this->response->headers->get('X-Response-Count'));
-
-        $this->request('GET', '/', array('HTTP_ACCEPT' => 'text/html', 'HTTP_USER_AGENT' => 'Bob/1.0'));
-        $this->assertTraceContains('fresh');
-        $this->assertEquals('Bob/1.0', $this->response->getContent());
-        $this->assertEquals(1, $this->response->headers->get('X-Response-Count'));
-
-        $this->request('GET', '/', array('HTTP_ACCEPT' => 'text/html', 'HTTP_USER_AGENT' => 'Bob/2.0'));
-        $this->assertTraceContains('fresh');
-        $this->assertEquals('Bob/2.0', $this->response->getContent());
-        $this->assertEquals(2, $this->response->headers->get('X-Response-Count'));
-
-        $this->request('GET', '/', array('HTTP_USER_AGENT' => 'Bob/2.0'));
-        $this->assertTraceContains('miss');
-        $this->assertEquals('Bob/2.0', $this->response->getContent());
-        $this->assertEquals(3, $this->response->headers->get('X-Response-Count'));
-    }
-
-    public function testShouldCatchExceptions()
-    {
-        $this->catchExceptions();
-
-        $this->setNextResponse();
-        $this->request('GET', '/');
-
-        $this->assertExceptionsAreCaught();
-    }
-
-    public function testShouldCatchExceptionsWhenReloadingAndNoCacheRequest()
-    {
-        $this->catchExceptions();
-
-        $this->setNextResponse();
-        $this->cacheConfig['allow_reload'] = true;
-        $this->request('GET', '/', array(), array(), false, array('Pragma' => 'no-cache'));
-
-        $this->assertExceptionsAreCaught();
-    }
-
-    public function testShouldNotCatchExceptions()
-    {
-        $this->catchExceptions(false);
-
-        $this->setNextResponse();
-        $this->request('GET', '/');
-
-        $this->assertExceptionsAreNotCaught();
-    }
-
-    public function testEsiCacheSendsTheLowestTtl()
-    {
-        $responses = array(
-            array(
-                'status' => 200,
-                'body' => '<esi:include src="/foo" /> <esi:include src="/bar" />',
-                'headers' => array(
-                    'Cache-Control' => 's-maxage=300',
-                    'Surrogate-Control' => 'content="ESI/1.0"',
-                ),
-            ),
-            array(
-                'status' => 200,
-                'body' => 'Hello World!',
-                'headers' => array('Cache-Control' => 's-maxage=300'),
-            ),
-            array(
-                'status' => 200,
-                'body' => 'My name is Bobby.',
-                'headers' => array('Cache-Control' => 's-maxage=100'),
-            ),
-        );
-
-        $this->setNextResponses($responses);
-
-        $this->request('GET', '/', array(), array(), true);
-        $this->assertEquals('Hello World! My name is Bobby.', $this->response->getContent());
-
-        // check for 100 or 99 as the test can be executed after a second change
-        $this->assertTrue(in_array($this->response->getTtl(), array(99, 100)));
-    }
-
-    public function testEsiCacheForceValidation()
-    {
-        $responses = array(
-            array(
-                'status' => 200,
-                'body' => '<esi:include src="/foo" /> <esi:include src="/bar" />',
-                'headers' => array(
-                    'Cache-Control' => 's-maxage=300',
-                    'Surrogate-Control' => 'content="ESI/1.0"',
-                ),
-            ),
-            array(
-                'status' => 200,
-                'body' => 'Hello World!',
-                'headers' => array('ETag' => 'foobar'),
-            ),
-            array(
-                'status' => 200,
-                'body' => 'My name is Bobby.',
-                'headers' => array('Cache-Control' => 's-maxage=100'),
-            ),
-        );
-
-        $this->setNextResponses($responses);
-
-        $this->request('GET', '/', array(), array(), true);
-        $this->assertEquals('Hello World! My name is Bobby.', $this->response->getContent());
-        $this->assertNull($this->response->getTtl());
-        $this->assertTrue($this->response->mustRevalidate());
-        $this->assertTrue($this->response->headers->hasCacheControlDirective('private'));
-        $this->assertTrue($this->response->headers->hasCacheControlDirective('no-cache'));
-    }
-
-    public function testEsiRecalculateContentLengthHeader()
-    {
-        $responses = array(
-            array(
-                'status' => 200,
-                'body' => '<esi:include src="/foo" />',
-                'headers' => array(
-                    'Content-Length' => 26,
-                    'Cache-Control' => 's-maxage=300',
-                    'Surrogate-Control' => 'content="ESI/1.0"',
-                ),
-            ),
-            array(
-                'status' => 200,
-                'body' => 'Hello World!',
-                'headers' => array(),
-            ),
-        );
-
-        $this->setNextResponses($responses);
-
-        $this->request('GET', '/', array(), array(), true);
-        $this->assertEquals('Hello World!', $this->response->getContent());
-        $this->assertEquals(12, $this->response->headers->get('Content-Length'));
-    }
-
-    public function testClientIpIsAlwaysLocalhostForForwardedRequests()
-    {
-        $this->setNextResponse();
-        $this->request('GET', '/', array('REMOTE_ADDR' => '10.0.0.1'));
-
-        $this->assertEquals('127.0.0.1', $this->kernel->getBackendRequest()->server->get('REMOTE_ADDR'));
-    }
-
-    /**
-     * @dataProvider getTrustedProxyData
-     */
-    public function testHttpCacheIsSetAsATrustedProxy(array $existing, array $expected)
-    {
-        Request::setTrustedProxies($existing);
-
-        $this->setNextResponse();
-        $this->request('GET', '/', array('REMOTE_ADDR' => '10.0.0.1'));
-
-        $this->assertEquals($expected, Request::getTrustedProxies());
-    }
-
-    public function getTrustedProxyData()
-    {
-        return array(
-            array(array(), array('127.0.0.1')),
-            array(array('10.0.0.2'), array('10.0.0.2', '127.0.0.1')),
-            array(array('10.0.0.2', '127.0.0.1'), array('10.0.0.2', '127.0.0.1')),
-        );
-    }
-
-    /**
-     * @dataProvider getXForwardedForData
-     */
-    public function testXForwarderForHeaderForForwardedRequests($xForwardedFor, $expected)
-    {
-        $this->setNextResponse();
-        $server = array('REMOTE_ADDR' => '10.0.0.1');
-        if (false !== $xForwardedFor) {
-            $server['HTTP_X_FORWARDED_FOR'] = $xForwardedFor;
-        }
-        $this->request('GET', '/', $server);
-
-        $this->assertEquals($expected, $this->kernel->getBackendRequest()->headers->get('X-Forwarded-For'));
-    }
-
-    public function getXForwardedForData()
-    {
-        return array(
-            array(false, '10.0.0.1'),
-            array('10.0.0.2', '10.0.0.2, 10.0.0.1'),
-            array('10.0.0.2, 10.0.0.3', '10.0.0.2, 10.0.0.3, 10.0.0.1'),
-        );
-    }
-
-    public function testXForwarderForHeaderForPassRequests()
-    {
-        $this->setNextResponse();
-        $server = array('REMOTE_ADDR' => '10.0.0.1');
-        $this->request('POST', '/', $server);
-
-        $this->assertEquals('10.0.0.1', $this->kernel->getBackendRequest()->headers->get('X-Forwarded-For'));
-    }
-
-    public function testEsiCacheRemoveValidationHeadersIfEmbeddedResponses()
-    {
-        $time = new \DateTime();
-
-        $responses = array(
-            array(
-                'status' => 200,
-                'body' => '<esi:include src="/hey" />',
-                'headers' => array(
-                    'Surrogate-Control' => 'content="ESI/1.0"',
-                    'ETag' => 'hey',
-                    'Last-Modified' => $time->format(DATE_RFC2822),
-                ),
-            ),
-            array(
-                'status' => 200,
-                'body' => 'Hey!',
-                'headers' => array(),
-            ),
-        );
-
-        $this->setNextResponses($responses);
-
-        $this->request('GET', '/', array(), array(), true);
-        $this->assertNull($this->response->getETag());
-        $this->assertNull($this->response->getLastModified());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTestCase.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTestCase.php
deleted file mode 100644
index 766e2b1..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTestCase.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\HttpCache\Esi;
-use Symfony\Component\HttpKernel\HttpCache\HttpCache;
-use Symfony\Component\HttpKernel\HttpCache\Store;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-
-class HttpCacheTestCase extends \PHPUnit_Framework_TestCase
-{
-    protected $kernel;
-    protected $cache;
-    protected $caches;
-    protected $cacheConfig;
-    protected $request;
-    protected $response;
-    protected $responses;
-    protected $catch;
-    protected $esi;
-
-    protected function setUp()
-    {
-        $this->kernel = null;
-
-        $this->cache = null;
-        $this->esi = null;
-        $this->caches = array();
-        $this->cacheConfig = array();
-
-        $this->request = null;
-        $this->response = null;
-        $this->responses = array();
-
-        $this->catch = false;
-
-        $this->clearDirectory(sys_get_temp_dir().'/http_cache');
-    }
-
-    protected function tearDown()
-    {
-        $this->kernel = null;
-        $this->cache = null;
-        $this->caches = null;
-        $this->request = null;
-        $this->response = null;
-        $this->responses = null;
-        $this->cacheConfig = null;
-        $this->catch = null;
-        $this->esi = null;
-
-        $this->clearDirectory(sys_get_temp_dir().'/http_cache');
-    }
-
-    public function assertHttpKernelIsCalled()
-    {
-        $this->assertTrue($this->kernel->hasBeenCalled());
-    }
-
-    public function assertHttpKernelIsNotCalled()
-    {
-        $this->assertFalse($this->kernel->hasBeenCalled());
-    }
-
-    public function assertResponseOk()
-    {
-        $this->assertEquals(200, $this->response->getStatusCode());
-    }
-
-    public function assertTraceContains($trace)
-    {
-        $traces = $this->cache->getTraces();
-        $traces = current($traces);
-
-        $this->assertRegExp('/'.$trace.'/', implode(', ', $traces));
-    }
-
-    public function assertTraceNotContains($trace)
-    {
-        $traces = $this->cache->getTraces();
-        $traces = current($traces);
-
-        $this->assertNotRegExp('/'.$trace.'/', implode(', ', $traces));
-    }
-
-    public function assertExceptionsAreCaught()
-    {
-        $this->assertTrue($this->kernel->isCatchingExceptions());
-    }
-
-    public function assertExceptionsAreNotCaught()
-    {
-        $this->assertFalse($this->kernel->isCatchingExceptions());
-    }
-
-    public function request($method, $uri = '/', $server = array(), $cookies = array(), $esi = false, $headers = array())
-    {
-        if (null === $this->kernel) {
-            throw new \LogicException('You must call setNextResponse() before calling request().');
-        }
-
-        $this->kernel->reset();
-
-        $this->store = new Store(sys_get_temp_dir().'/http_cache');
-
-        $this->cacheConfig['debug'] = true;
-
-        $this->esi = $esi ? new Esi() : null;
-        $this->cache = new HttpCache($this->kernel, $this->store, $this->esi, $this->cacheConfig);
-        $this->request = Request::create($uri, $method, array(), $cookies, array(), $server);
-        $this->request->headers->add($headers);
-
-        $this->response = $this->cache->handle($this->request, HttpKernelInterface::MASTER_REQUEST, $this->catch);
-
-        $this->responses[] = $this->response;
-    }
-
-    public function getMetaStorageValues()
-    {
-        $values = array();
-        foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator(sys_get_temp_dir().'/http_cache/md', \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
-            $values[] = file_get_contents($file);
-        }
-
-        return $values;
-    }
-
-    // A basic response with 200 status code and a tiny body.
-    public function setNextResponse($statusCode = 200, array $headers = array(), $body = 'Hello World', \Closure $customizer = null)
-    {
-        $this->kernel = new TestHttpKernel($body, $statusCode, $headers, $customizer);
-    }
-
-    public function setNextResponses($responses)
-    {
-        $this->kernel = new TestMultipleHttpKernel($responses);
-    }
-
-    public function catchExceptions($catch = true)
-    {
-        $this->catch = $catch;
-    }
-
-    public static function clearDirectory($directory)
-    {
-        if (!is_dir($directory)) {
-            return;
-        }
-
-        $fp = opendir($directory);
-        while (false !== $file = readdir($fp)) {
-            if (!in_array($file, array('.', '..'))) {
-                if (is_link($directory.'/'.$file)) {
-                    unlink($directory.'/'.$file);
-                } elseif (is_dir($directory.'/'.$file)) {
-                    self::clearDirectory($directory.'/'.$file);
-                    rmdir($directory.'/'.$file);
-                } else {
-                    unlink($directory.'/'.$file);
-                }
-            }
-        }
-
-        closedir($fp);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/SsiTest.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/SsiTest.php
deleted file mode 100644
index 07b70dc..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/SsiTest.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpCache\Ssi;
-
-class SsiTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasSurrogateSsiCapability()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $request->headers->set('Surrogate-Capability', 'abc="SSI/1.0"');
-        $this->assertTrue($ssi->hasSurrogateCapability($request));
-
-        $request = Request::create('/');
-        $request->headers->set('Surrogate-Capability', 'foobar');
-        $this->assertFalse($ssi->hasSurrogateCapability($request));
-
-        $request = Request::create('/');
-        $this->assertFalse($ssi->hasSurrogateCapability($request));
-    }
-
-    public function testAddSurrogateSsiCapability()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $ssi->addSurrogateCapability($request);
-        $this->assertEquals('symfony2="SSI/1.0"', $request->headers->get('Surrogate-Capability'));
-
-        $ssi->addSurrogateCapability($request);
-        $this->assertEquals('symfony2="SSI/1.0", symfony2="SSI/1.0"', $request->headers->get('Surrogate-Capability'));
-    }
-
-    public function testAddSurrogateControl()
-    {
-        $ssi = new Ssi();
-
-        $response = new Response('foo <!--#include virtual="" -->');
-        $ssi->addSurrogateControl($response);
-        $this->assertEquals('content="SSI/1.0"', $response->headers->get('Surrogate-Control'));
-
-        $response = new Response('foo');
-        $ssi->addSurrogateControl($response);
-        $this->assertEquals('', $response->headers->get('Surrogate-Control'));
-    }
-
-    public function testNeedsSsiParsing()
-    {
-        $ssi = new Ssi();
-
-        $response = new Response();
-        $response->headers->set('Surrogate-Control', 'content="SSI/1.0"');
-        $this->assertTrue($ssi->needsParsing($response));
-
-        $response = new Response();
-        $this->assertFalse($ssi->needsParsing($response));
-    }
-
-    public function testRenderIncludeTag()
-    {
-        $ssi = new Ssi();
-
-        $this->assertEquals('<!--#include virtual="/" -->', $ssi->renderIncludeTag('/', '/alt', true));
-        $this->assertEquals('<!--#include virtual="/" -->', $ssi->renderIncludeTag('/', '/alt', false));
-        $this->assertEquals('<!--#include virtual="/" -->', $ssi->renderIncludeTag('/'));
-    }
-
-    public function testProcessDoesNothingIfContentTypeIsNotHtml()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $response = new Response();
-        $response->headers->set('Content-Type', 'text/plain');
-        $ssi->process($request, $response);
-
-        $this->assertFalse($response->headers->has('x-body-eval'));
-    }
-
-    public function testProcess()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $response = new Response('foo <!--#include virtual="..." -->');
-        $ssi->process($request, $response);
-
-        $this->assertEquals('foo <?php echo $this->surrogate->handle($this, \'...\', \'\', false) ?>'."\n", $response->getContent());
-        $this->assertEquals('SSI', $response->headers->get('x-body-eval'));
-
-        $response = new Response('foo <!--#include virtual="foo\'" -->');
-        $ssi->process($request, $response);
-
-        $this->assertEquals("foo <?php echo \$this->surrogate->handle(\$this, 'foo\\'', '', false) ?>"."\n", $response->getContent());
-    }
-
-    public function testProcessEscapesPhpTags()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $response = new Response('<?php <? <% <script language=php>');
-        $ssi->process($request, $response);
-
-        $this->assertEquals('<?php echo "<?"; ?>php <?php echo "<?"; ?> <?php echo "<%"; ?> <?php echo "<s"; ?>cript language=php>', $response->getContent());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testProcessWhenNoSrcInAnSsi()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $response = new Response('foo <!--#include -->');
-        $ssi->process($request, $response);
-    }
-
-    public function testProcessRemoveSurrogateControlHeader()
-    {
-        $ssi = new Ssi();
-
-        $request = Request::create('/');
-        $response = new Response('foo <!--#include virtual="..." -->');
-        $response->headers->set('Surrogate-Control', 'content="SSI/1.0"');
-        $ssi->process($request, $response);
-        $this->assertEquals('SSI', $response->headers->get('x-body-eval'));
-
-        $response->headers->set('Surrogate-Control', 'no-store, content="SSI/1.0"');
-        $ssi->process($request, $response);
-        $this->assertEquals('SSI', $response->headers->get('x-body-eval'));
-        $this->assertEquals('no-store', $response->headers->get('surrogate-control'));
-
-        $response->headers->set('Surrogate-Control', 'content="SSI/1.0", no-store');
-        $ssi->process($request, $response);
-        $this->assertEquals('SSI', $response->headers->get('x-body-eval'));
-        $this->assertEquals('no-store', $response->headers->get('surrogate-control'));
-    }
-
-    public function testHandle()
-    {
-        $ssi = new Ssi();
-        $cache = $this->getCache(Request::create('/'), new Response('foo'));
-        $this->assertEquals('foo', $ssi->handle($cache, '/', '/alt', true));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testHandleWhenResponseIsNot200()
-    {
-        $ssi = new Ssi();
-        $response = new Response('foo');
-        $response->setStatusCode(404);
-        $cache = $this->getCache(Request::create('/'), $response);
-        $ssi->handle($cache, '/', '/alt', false);
-    }
-
-    public function testHandleWhenResponseIsNot200AndErrorsAreIgnored()
-    {
-        $ssi = new Ssi();
-        $response = new Response('foo');
-        $response->setStatusCode(404);
-        $cache = $this->getCache(Request::create('/'), $response);
-        $this->assertEquals('', $ssi->handle($cache, '/', '/alt', true));
-    }
-
-    public function testHandleWhenResponseIsNot200AndAltIsPresent()
-    {
-        $ssi = new Ssi();
-        $response1 = new Response('foo');
-        $response1->setStatusCode(404);
-        $response2 = new Response('bar');
-        $cache = $this->getCache(Request::create('/'), array($response1, $response2));
-        $this->assertEquals('bar', $ssi->handle($cache, '/', '/alt', false));
-    }
-
-    protected function getCache($request, $response)
-    {
-        $cache = $this->getMock('Symfony\Component\HttpKernel\HttpCache\HttpCache', array('getRequest', 'handle'), array(), '', false);
-        $cache->expects($this->any())
-              ->method('getRequest')
-              ->will($this->returnValue($request))
-        ;
-        if (is_array($response)) {
-            $cache->expects($this->any())
-                  ->method('handle')
-                  ->will(call_user_func_array(array($this, 'onConsecutiveCalls'), $response))
-            ;
-        } else {
-            $cache->expects($this->any())
-                  ->method('handle')
-                  ->will($this->returnValue($response))
-            ;
-        }
-
-        return $cache;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/StoreTest.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/StoreTest.php
deleted file mode 100644
index 4198ce4..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/StoreTest.php
+++ /dev/null
@@ -1,269 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpCache\Store;
-
-class StoreTest extends \PHPUnit_Framework_TestCase
-{
-    protected $request;
-    protected $response;
-    protected $store;
-
-    protected function setUp()
-    {
-        $this->request = Request::create('/');
-        $this->response = new Response('hello world', 200, array());
-
-        HttpCacheTestCase::clearDirectory(sys_get_temp_dir().'/http_cache');
-
-        $this->store = new Store(sys_get_temp_dir().'/http_cache');
-    }
-
-    protected function tearDown()
-    {
-        $this->store = null;
-        $this->request = null;
-        $this->response = null;
-
-        HttpCacheTestCase::clearDirectory(sys_get_temp_dir().'/http_cache');
-    }
-
-    public function testReadsAnEmptyArrayWithReadWhenNothingCachedAtKey()
-    {
-        $this->assertEmpty($this->getStoreMetadata('/nothing'));
-    }
-
-    public function testUnlockFileThatDoesExist()
-    {
-        $cacheKey = $this->storeSimpleEntry();
-        $this->store->lock($this->request);
-
-        $this->assertTrue($this->store->unlock($this->request));
-    }
-
-    public function testUnlockFileThatDoesNotExist()
-    {
-        $this->assertFalse($this->store->unlock($this->request));
-    }
-
-    public function testRemovesEntriesForKeyWithPurge()
-    {
-        $request = Request::create('/foo');
-        $this->store->write($request, new Response('foo'));
-
-        $metadata = $this->getStoreMetadata($request);
-        $this->assertNotEmpty($metadata);
-
-        $this->assertTrue($this->store->purge('/foo'));
-        $this->assertEmpty($this->getStoreMetadata($request));
-
-        // cached content should be kept after purging
-        $path = $this->store->getPath($metadata[0][1]['x-content-digest'][0]);
-        $this->assertTrue(is_file($path));
-
-        $this->assertFalse($this->store->purge('/bar'));
-    }
-
-    public function testStoresACacheEntry()
-    {
-        $cacheKey = $this->storeSimpleEntry();
-
-        $this->assertNotEmpty($this->getStoreMetadata($cacheKey));
-    }
-
-    public function testSetsTheXContentDigestResponseHeaderBeforeStoring()
-    {
-        $cacheKey = $this->storeSimpleEntry();
-        $entries = $this->getStoreMetadata($cacheKey);
-        list($req, $res) = $entries[0];
-
-        $this->assertEquals('en9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', $res['x-content-digest'][0]);
-    }
-
-    public function testFindsAStoredEntryWithLookup()
-    {
-        $this->storeSimpleEntry();
-        $response = $this->store->lookup($this->request);
-
-        $this->assertNotNull($response);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
-    }
-
-    public function testDoesNotFindAnEntryWithLookupWhenNoneExists()
-    {
-        $request = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-
-        $this->assertNull($this->store->lookup($request));
-    }
-
-    public function testCanonizesUrlsForCacheKeys()
-    {
-        $this->storeSimpleEntry($path = '/test?x=y&p=q');
-        $hitsReq = Request::create($path);
-        $missReq = Request::create('/test?p=x');
-
-        $this->assertNotNull($this->store->lookup($hitsReq));
-        $this->assertNull($this->store->lookup($missReq));
-    }
-
-    public function testDoesNotFindAnEntryWithLookupWhenTheBodyDoesNotExist()
-    {
-        $this->storeSimpleEntry();
-        $this->assertNotNull($this->response->headers->get('X-Content-Digest'));
-        $path = $this->getStorePath($this->response->headers->get('X-Content-Digest'));
-        @unlink($path);
-        $this->assertNull($this->store->lookup($this->request));
-    }
-
-    public function testRestoresResponseHeadersProperlyWithLookup()
-    {
-        $this->storeSimpleEntry();
-        $response = $this->store->lookup($this->request);
-
-        $this->assertEquals($response->headers->all(), array_merge(array('content-length' => 4, 'x-body-file' => array($this->getStorePath($response->headers->get('X-Content-Digest')))), $this->response->headers->all()));
-    }
-
-    public function testRestoresResponseContentFromEntityStoreWithLookup()
-    {
-        $this->storeSimpleEntry();
-        $response = $this->store->lookup($this->request);
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test')), $response->getContent());
-    }
-
-    public function testInvalidatesMetaAndEntityStoreEntriesWithInvalidate()
-    {
-        $this->storeSimpleEntry();
-        $this->store->invalidate($this->request);
-        $response = $this->store->lookup($this->request);
-        $this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
-        $this->assertFalse($response->isFresh());
-    }
-
-    public function testSucceedsQuietlyWhenInvalidateCalledWithNoMatchingEntries()
-    {
-        $req = Request::create('/test');
-        $this->store->invalidate($req);
-        $this->assertNull($this->store->lookup($this->request));
-    }
-
-    public function testDoesNotReturnEntriesThatVaryWithLookup()
-    {
-        $req1 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-        $req2 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Bling', 'HTTP_BAR' => 'Bam'));
-        $res = new Response('test', 200, array('Vary' => 'Foo Bar'));
-        $this->store->write($req1, $res);
-
-        $this->assertNull($this->store->lookup($req2));
-    }
-
-    public function testDoesNotReturnEntriesThatSlightlyVaryWithLookup()
-    {
-        $req1 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-        $req2 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bam'));
-        $res = new Response('test', 200, array('Vary' => array('Foo', 'Bar')));
-        $this->store->write($req1, $res);
-
-        $this->assertNull($this->store->lookup($req2));
-    }
-
-    public function testStoresMultipleResponsesForEachVaryCombination()
-    {
-        $req1 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-        $res1 = new Response('test 1', 200, array('Vary' => 'Foo Bar'));
-        $key = $this->store->write($req1, $res1);
-
-        $req2 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Bling', 'HTTP_BAR' => 'Bam'));
-        $res2 = new Response('test 2', 200, array('Vary' => 'Foo Bar'));
-        $this->store->write($req2, $res2);
-
-        $req3 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Baz', 'HTTP_BAR' => 'Boom'));
-        $res3 = new Response('test 3', 200, array('Vary' => 'Foo Bar'));
-        $this->store->write($req3, $res3);
-
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test 3')), $this->store->lookup($req3)->getContent());
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test 2')), $this->store->lookup($req2)->getContent());
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test 1')), $this->store->lookup($req1)->getContent());
-
-        $this->assertCount(3, $this->getStoreMetadata($key));
-    }
-
-    public function testOverwritesNonVaryingResponseWithStore()
-    {
-        $req1 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-        $res1 = new Response('test 1', 200, array('Vary' => 'Foo Bar'));
-        $key = $this->store->write($req1, $res1);
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test 1')), $this->store->lookup($req1)->getContent());
-
-        $req2 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Bling', 'HTTP_BAR' => 'Bam'));
-        $res2 = new Response('test 2', 200, array('Vary' => 'Foo Bar'));
-        $this->store->write($req2, $res2);
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test 2')), $this->store->lookup($req2)->getContent());
-
-        $req3 = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-        $res3 = new Response('test 3', 200, array('Vary' => 'Foo Bar'));
-        $key = $this->store->write($req3, $res3);
-        $this->assertEquals($this->getStorePath('en'.hash('sha256', 'test 3')), $this->store->lookup($req3)->getContent());
-
-        $this->assertCount(2, $this->getStoreMetadata($key));
-    }
-
-    public function testLocking()
-    {
-        $req = Request::create('/test', 'get', array(), array(), array(), array('HTTP_FOO' => 'Foo', 'HTTP_BAR' => 'Bar'));
-        $this->assertTrue($this->store->lock($req));
-
-        $path = $this->store->lock($req);
-        $this->assertTrue($this->store->isLocked($req));
-
-        $this->store->unlock($req);
-        $this->assertFalse($this->store->isLocked($req));
-    }
-
-    protected function storeSimpleEntry($path = null, $headers = array())
-    {
-        if (null === $path) {
-            $path = '/test';
-        }
-
-        $this->request = Request::create($path, 'get', array(), array(), array(), $headers);
-        $this->response = new Response('test', 200, array('Cache-Control' => 'max-age=420'));
-
-        return $this->store->write($this->request, $this->response);
-    }
-
-    protected function getStoreMetadata($key)
-    {
-        $r = new \ReflectionObject($this->store);
-        $m = $r->getMethod('getMetadata');
-        $m->setAccessible(true);
-
-        if ($key instanceof Request) {
-            $m1 = $r->getMethod('getCacheKey');
-            $m1->setAccessible(true);
-            $key = $m1->invoke($this->store, $key);
-        }
-
-        return $m->invoke($this->store, $key);
-    }
-
-    protected function getStorePath($key)
-    {
-        $r = new \ReflectionObject($this->store);
-        $m = $r->getMethod('getPath');
-        $m->setAccessible(true);
-
-        return $m->invoke($this->store, $key);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/TestHttpKernel.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/TestHttpKernel.php
deleted file mode 100644
index 5546ba2..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/TestHttpKernel.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class TestHttpKernel extends HttpKernel implements ControllerResolverInterface
-{
-    protected $body;
-    protected $status;
-    protected $headers;
-    protected $called = false;
-    protected $customizer;
-    protected $catch = false;
-    protected $backendRequest;
-
-    public function __construct($body, $status, $headers, \Closure $customizer = null)
-    {
-        $this->body = $body;
-        $this->status = $status;
-        $this->headers = $headers;
-        $this->customizer = $customizer;
-
-        parent::__construct(new EventDispatcher(), $this);
-    }
-
-    public function getBackendRequest()
-    {
-        return $this->backendRequest;
-    }
-
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = false)
-    {
-        $this->catch = $catch;
-        $this->backendRequest = $request;
-
-        return parent::handle($request, $type, $catch);
-    }
-
-    public function isCatchingExceptions()
-    {
-        return $this->catch;
-    }
-
-    public function getController(Request $request)
-    {
-        return array($this, 'callController');
-    }
-
-    public function getArguments(Request $request, $controller)
-    {
-        return array($request);
-    }
-
-    public function callController(Request $request)
-    {
-        $this->called = true;
-
-        $response = new Response($this->body, $this->status, $this->headers);
-
-        if (null !== $customizer = $this->customizer) {
-            $customizer($request, $response);
-        }
-
-        return $response;
-    }
-
-    public function hasBeenCalled()
-    {
-        return $this->called;
-    }
-
-    public function reset()
-    {
-        $this->called = false;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php b/core/vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php
deleted file mode 100644
index 773e221..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\HttpCache;
-
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class TestMultipleHttpKernel extends HttpKernel implements ControllerResolverInterface
-{
-    protected $bodies = array();
-    protected $statuses = array();
-    protected $headers = array();
-    protected $call = false;
-    protected $backendRequest;
-
-    public function __construct($responses)
-    {
-        foreach ($responses as $response) {
-            $this->bodies[] = $response['body'];
-            $this->statuses[] = $response['status'];
-            $this->headers[] = $response['headers'];
-        }
-
-        parent::__construct(new EventDispatcher(), $this);
-    }
-
-    public function getBackendRequest()
-    {
-        return $this->backendRequest;
-    }
-
-    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = false)
-    {
-        $this->backendRequest = $request;
-
-        return parent::handle($request, $type, $catch);
-    }
-
-    public function getController(Request $request)
-    {
-        return array($this, 'callController');
-    }
-
-    public function getArguments(Request $request, $controller)
-    {
-        return array($request);
-    }
-
-    public function callController(Request $request)
-    {
-        $this->called = true;
-
-        $response = new Response(array_shift($this->bodies), array_shift($this->statuses), array_shift($this->headers));
-
-        return $response;
-    }
-
-    public function hasBeenCalled()
-    {
-        return $this->called;
-    }
-
-    public function reset()
-    {
-        $this->call = false;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/HttpKernelTest.php b/core/vendor/symfony/http-kernel/Tests/HttpKernelTest.php
deleted file mode 100644
index 97e68f6..0000000
--- a/core/vendor/symfony/http-kernel/Tests/HttpKernelTest.php
+++ /dev/null
@@ -1,319 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests;
-
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\KernelEvents;
-use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
-use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\RedirectResponse;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class HttpKernelTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testHandleWhenControllerThrowsAnExceptionAndCatchIsTrue()
-    {
-        $kernel = new HttpKernel(new EventDispatcher(), $this->getResolver(function () { throw new \RuntimeException(); }));
-
-        $kernel->handle(new Request(), HttpKernelInterface::MASTER_REQUEST, true);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testHandleWhenControllerThrowsAnExceptionAndCatchIsFalseAndNoListenerIsRegistered()
-    {
-        $kernel = new HttpKernel(new EventDispatcher(), $this->getResolver(function () { throw new \RuntimeException(); }));
-
-        $kernel->handle(new Request(), HttpKernelInterface::MASTER_REQUEST, false);
-    }
-
-    public function testHandleWhenControllerThrowsAnExceptionAndCatchIsTrueWithAHandlingListener()
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
-            $event->setResponse(new Response($event->getException()->getMessage()));
-        });
-
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () { throw new \RuntimeException('foo'); }));
-        $response = $kernel->handle(new Request(), HttpKernelInterface::MASTER_REQUEST, true);
-
-        $this->assertEquals('500', $response->getStatusCode());
-        $this->assertEquals('foo', $response->getContent());
-    }
-
-    public function testHandleWhenControllerThrowsAnExceptionAndCatchIsTrueWithANonHandlingListener()
-    {
-        $exception = new \RuntimeException();
-
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
-            // should set a response, but does not
-        });
-
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () use ($exception) { throw $exception; }));
-
-        try {
-            $kernel->handle(new Request(), HttpKernelInterface::MASTER_REQUEST, true);
-            $this->fail('LogicException expected');
-        } catch (\RuntimeException $e) {
-            $this->assertSame($exception, $e);
-        }
-    }
-
-    public function testHandleExceptionWithARedirectionResponse()
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
-            $event->setResponse(new RedirectResponse('/login', 301));
-        });
-
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () { throw new AccessDeniedHttpException(); }));
-        $response = $kernel->handle(new Request());
-
-        $this->assertEquals('301', $response->getStatusCode());
-        $this->assertEquals('/login', $response->headers->get('Location'));
-    }
-
-    public function testHandleHttpException()
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) {
-            $event->setResponse(new Response($event->getException()->getMessage()));
-        });
-
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () { throw new MethodNotAllowedHttpException(array('POST')); }));
-        $response = $kernel->handle(new Request());
-
-        $this->assertEquals('405', $response->getStatusCode());
-        $this->assertEquals('POST', $response->headers->get('Allow'));
-    }
-
-    /**
-     * @dataProvider getStatusCodes
-     */
-    public function testHandleWhenAnExceptionIsHandledWithASpecificStatusCode($responseStatusCode, $expectedStatusCode)
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::EXCEPTION, function ($event) use ($responseStatusCode, $expectedStatusCode) {
-            $event->setResponse(new Response('', $responseStatusCode, array('X-Status-Code' => $expectedStatusCode)));
-        });
-
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () { throw new \RuntimeException(); }));
-        $response = $kernel->handle(new Request());
-
-        $this->assertEquals($expectedStatusCode, $response->getStatusCode());
-        $this->assertFalse($response->headers->has('X-Status-Code'));
-    }
-
-    public function getStatusCodes()
-    {
-        return array(
-            array(200, 404),
-            array(404, 200),
-            array(301, 200),
-            array(500, 200),
-        );
-    }
-
-    public function testHandleWhenAListenerReturnsAResponse()
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::REQUEST, function ($event) {
-            $event->setResponse(new Response('hello'));
-        });
-
-        $kernel = new HttpKernel($dispatcher, $this->getResolver());
-
-        $this->assertEquals('hello', $kernel->handle(new Request())->getContent());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
-     */
-    public function testHandleWhenNoControllerIsFound()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(false));
-
-        $kernel->handle(new Request());
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testHandleWhenTheControllerIsNotACallable()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver('foobar'));
-
-        $kernel->handle(new Request());
-    }
-
-    public function testHandleWhenTheControllerIsAClosure()
-    {
-        $response = new Response('foo');
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () use ($response) { return $response; }));
-
-        $this->assertSame($response, $kernel->handle(new Request()));
-    }
-
-    public function testHandleWhenTheControllerIsAnObjectWithInvoke()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(new Controller()));
-
-        $this->assertResponseEquals(new Response('foo'), $kernel->handle(new Request()));
-    }
-
-    public function testHandleWhenTheControllerIsAFunction()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver('Symfony\Component\HttpKernel\Tests\controller_func'));
-
-        $this->assertResponseEquals(new Response('foo'), $kernel->handle(new Request()));
-    }
-
-    public function testHandleWhenTheControllerIsAnArray()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(array(new Controller(), 'controller')));
-
-        $this->assertResponseEquals(new Response('foo'), $kernel->handle(new Request()));
-    }
-
-    public function testHandleWhenTheControllerIsAStaticArray()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(array('Symfony\Component\HttpKernel\Tests\Controller', 'staticcontroller')));
-
-        $this->assertResponseEquals(new Response('foo'), $kernel->handle(new Request()));
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testHandleWhenTheControllerDoesNotReturnAResponse()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () { return 'foo'; }));
-
-        $kernel->handle(new Request());
-    }
-
-    public function testHandleWhenTheControllerDoesNotReturnAResponseButAViewIsRegistered()
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::VIEW, function ($event) {
-            $event->setResponse(new Response($event->getControllerResult()));
-        });
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(function () { return 'foo'; }));
-
-        $this->assertEquals('foo', $kernel->handle(new Request())->getContent());
-    }
-
-    public function testHandleWithAResponseListener()
-    {
-        $dispatcher = new EventDispatcher();
-        $dispatcher->addListener(KernelEvents::RESPONSE, function ($event) {
-            $event->setResponse(new Response('foo'));
-        });
-        $kernel = new HttpKernel($dispatcher, $this->getResolver());
-
-        $this->assertEquals('foo', $kernel->handle(new Request())->getContent());
-    }
-
-    public function testTerminate()
-    {
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver());
-        $dispatcher->addListener(KernelEvents::TERMINATE, function ($event) use (&$called, &$capturedKernel, &$capturedRequest, &$capturedResponse) {
-            $called = true;
-            $capturedKernel = $event->getKernel();
-            $capturedRequest = $event->getRequest();
-            $capturedResponse = $event->getResponse();
-        });
-
-        $kernel->terminate($request = Request::create('/'), $response = new Response());
-        $this->assertTrue($called);
-        $this->assertEquals($kernel, $capturedKernel);
-        $this->assertEquals($request, $capturedRequest);
-        $this->assertEquals($response, $capturedResponse);
-    }
-
-    public function testVerifyRequestStackPushPopDuringHandle()
-    {
-        $request = new Request();
-
-        $stack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack', array('push', 'pop'));
-        $stack->expects($this->at(0))->method('push')->with($this->equalTo($request));
-        $stack->expects($this->at(1))->method('pop');
-
-        $dispatcher = new EventDispatcher();
-        $kernel = new HttpKernel($dispatcher, $this->getResolver(), $stack);
-
-        $kernel->handle($request, HttpKernelInterface::MASTER_REQUEST);
-    }
-
-    protected function getResolver($controller = null)
-    {
-        if (null === $controller) {
-            $controller = function () { return new Response('Hello'); };
-        }
-
-        $resolver = $this->getMock('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface');
-        $resolver->expects($this->any())
-            ->method('getController')
-            ->will($this->returnValue($controller));
-        $resolver->expects($this->any())
-            ->method('getArguments')
-            ->will($this->returnValue(array()));
-
-        return $resolver;
-    }
-
-    protected function assertResponseEquals(Response $expected, Response $actual)
-    {
-        $expected->setDate($actual->getDate());
-        $this->assertEquals($expected, $actual);
-    }
-}
-
-class Controller
-{
-    public function __invoke()
-    {
-        return new Response('foo');
-    }
-
-    public function controller()
-    {
-        return new Response('foo');
-    }
-
-    public static function staticController()
-    {
-        return new Response('foo');
-    }
-}
-
-function controller_func()
-{
-    return new Response('foo');
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/KernelTest.php b/core/vendor/symfony/http-kernel/Tests/KernelTest.php
deleted file mode 100644
index c9e00dd..0000000
--- a/core/vendor/symfony/http-kernel/Tests/KernelTest.php
+++ /dev/null
@@ -1,848 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\HttpKernel\Config\EnvParametersResource;
-use Symfony\Component\HttpKernel\Kernel;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest;
-use Symfony\Component\HttpKernel\Tests\Fixtures\KernelForOverrideName;
-use Symfony\Component\HttpKernel\Tests\Fixtures\FooBarBundle;
-
-class KernelTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $env = 'test_env';
-        $debug = true;
-        $kernel = new KernelForTest($env, $debug);
-
-        $this->assertEquals($env, $kernel->getEnvironment());
-        $this->assertEquals($debug, $kernel->isDebug());
-        $this->assertFalse($kernel->isBooted());
-        $this->assertLessThanOrEqual(microtime(true), $kernel->getStartTime());
-        $this->assertNull($kernel->getContainer());
-    }
-
-    public function testClone()
-    {
-        $env = 'test_env';
-        $debug = true;
-        $kernel = new KernelForTest($env, $debug);
-
-        $clone = clone $kernel;
-
-        $this->assertEquals($env, $clone->getEnvironment());
-        $this->assertEquals($debug, $clone->isDebug());
-        $this->assertFalse($clone->isBooted());
-        $this->assertLessThanOrEqual(microtime(true), $clone->getStartTime());
-        $this->assertNull($clone->getContainer());
-    }
-
-    public function testBootInitializesBundlesAndContainer()
-    {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
-        $kernel->expects($this->once())
-            ->method('initializeBundles');
-        $kernel->expects($this->once())
-            ->method('initializeContainer');
-
-        $kernel->boot();
-    }
-
-    public function testBootSetsTheContainerToTheBundles()
-    {
-        $bundle = $this->getMock('Symfony\Component\HttpKernel\Bundle\Bundle');
-        $bundle->expects($this->once())
-            ->method('setContainer');
-
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer', 'getBundles'));
-        $kernel->expects($this->once())
-            ->method('getBundles')
-            ->will($this->returnValue(array($bundle)));
-
-        $kernel->boot();
-    }
-
-    public function testBootSetsTheBootedFlagToTrue()
-    {
-        // use test kernel to access isBooted()
-        $kernel = $this->getKernelForTest(array('initializeBundles', 'initializeContainer'));
-        $kernel->boot();
-
-        $this->assertTrue($kernel->isBooted());
-    }
-
-    public function testClassCacheIsLoaded()
-    {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer', 'doLoadClassCache'));
-        $kernel->loadClassCache('name', '.extension');
-        $kernel->expects($this->once())
-            ->method('doLoadClassCache')
-            ->with('name', '.extension');
-
-        $kernel->boot();
-    }
-
-    public function testClassCacheIsNotLoadedByDefault()
-    {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
-        $kernel->expects($this->never())
-            ->method('doLoadClassCache');
-
-        $kernel->boot();
-    }
-
-    public function testClassCacheIsNotLoadedWhenKernelIsNotBooted()
-    {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer', 'doLoadClassCache'));
-        $kernel->loadClassCache();
-        $kernel->expects($this->never())
-            ->method('doLoadClassCache');
-    }
-
-    public function testEnvParametersResourceIsAdded()
-    {
-        $container = new ContainerBuilder();
-        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getContainerBuilder', 'prepareContainer', 'getCacheDir', 'getLogDir'))
-            ->getMock();
-        $kernel->expects($this->any())
-            ->method('getContainerBuilder')
-            ->will($this->returnValue($container));
-        $kernel->expects($this->any())
-            ->method('prepareContainer')
-            ->will($this->returnValue(null));
-        $kernel->expects($this->any())
-            ->method('getCacheDir')
-            ->will($this->returnValue(sys_get_temp_dir()));
-        $kernel->expects($this->any())
-            ->method('getLogDir')
-            ->will($this->returnValue(sys_get_temp_dir()));
-
-        $reflection = new \ReflectionClass(get_class($kernel));
-        $method = $reflection->getMethod('buildContainer');
-        $method->setAccessible(true);
-        $method->invoke($kernel);
-
-        $found = false;
-        foreach ($container->getResources() as $resource) {
-            if ($resource instanceof EnvParametersResource) {
-                $found = true;
-                break;
-            }
-        }
-
-        $this->assertTrue($found);
-    }
-
-    public function testBootKernelSeveralTimesOnlyInitializesBundlesOnce()
-    {
-        $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
-        $kernel->expects($this->once())
-            ->method('initializeBundles');
-
-        $kernel->boot();
-        $kernel->boot();
-    }
-
-    public function testShutdownCallsShutdownOnAllBundles()
-    {
-        $bundle = $this->getMock('Symfony\Component\HttpKernel\Bundle\Bundle');
-        $bundle->expects($this->once())
-            ->method('shutdown');
-
-        $kernel = $this->getKernel(array(), array($bundle));
-
-        $kernel->boot();
-        $kernel->shutdown();
-    }
-
-    public function testShutdownGivesNullContainerToAllBundles()
-    {
-        $bundle = $this->getMock('Symfony\Component\HttpKernel\Bundle\Bundle');
-        $bundle->expects($this->at(3))
-            ->method('setContainer')
-            ->with(null);
-
-        $kernel = $this->getKernel(array('getBundles'));
-        $kernel->expects($this->any())
-            ->method('getBundles')
-            ->will($this->returnValue(array($bundle)));
-
-        $kernel->boot();
-        $kernel->shutdown();
-    }
-
-    public function testHandleCallsHandleOnHttpKernel()
-    {
-        $type = HttpKernelInterface::MASTER_REQUEST;
-        $catch = true;
-        $request = new Request();
-
-        $httpKernelMock = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernel')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $httpKernelMock
-            ->expects($this->once())
-            ->method('handle')
-            ->with($request, $type, $catch);
-
-        $kernel = $this->getKernel(array('getHttpKernel'));
-        $kernel->expects($this->once())
-            ->method('getHttpKernel')
-            ->will($this->returnValue($httpKernelMock));
-
-        $kernel->handle($request, $type, $catch);
-    }
-
-    public function testHandleBootsTheKernel()
-    {
-        $type = HttpKernelInterface::MASTER_REQUEST;
-        $catch = true;
-        $request = new Request();
-
-        $httpKernelMock = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernel')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $kernel = $this->getKernel(array('getHttpKernel', 'boot'));
-        $kernel->expects($this->once())
-            ->method('getHttpKernel')
-            ->will($this->returnValue($httpKernelMock));
-
-        $kernel->expects($this->once())
-            ->method('boot');
-
-        $kernel->handle($request, $type, $catch);
-    }
-
-    public function testStripComments()
-    {
-        $source = <<<'EOF'
-<?php
-
-$string = 'string should not be   modified';
-
-$string = 'string should not be
-
-modified';
-
-
-$heredoc = <<<HD
-
-
-Heredoc should not be   modified
-
-
-HD;
-
-$nowdoc = <<<'ND'
-
-
-Nowdoc should not be   modified
-
-
-ND;
-
-/**
- * some class comments to strip
- */
-class TestClass
-{
-    /**
-     * some method comments to strip
-     */
-    public function doStuff()
-    {
-        // inline comment
-    }
-}
-EOF;
-        $expected = <<<'EOF'
-<?php
-$string = 'string should not be   modified';
-$string = 'string should not be
-
-modified';
-$heredoc = <<<HD
-
-
-Heredoc should not be   modified
-
-
-HD;
-$nowdoc = <<<'ND'
-
-
-Nowdoc should not be   modified
-
-
-ND;
-class TestClass
-{
-    public function doStuff()
-    {
-        }
-}
-EOF;
-
-        $output = Kernel::stripComments($source);
-
-        // Heredocs are preserved, making the output mixing Unix and Windows line
-        // endings, switching to "\n" everywhere on Windows to avoid failure.
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $expected = str_replace("\r\n", "\n", $expected);
-            $output = str_replace("\r\n", "\n", $output);
-        }
-
-        $this->assertEquals($expected, $output);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyIsClassInActiveBundleFalse()
-    {
-        $kernel = $this->getKernelMockForIsClassInActiveBundleTest();
-
-        $this->assertFalse($kernel->isClassInActiveBundle('Not\In\Active\Bundle'));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyIsClassInActiveBundleFalseNoNamespace()
-    {
-        $kernel = $this->getKernelMockForIsClassInActiveBundleTest();
-
-        $this->assertFalse($kernel->isClassInActiveBundle('NotNamespacedClass'));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyIsClassInActiveBundleTrue()
-    {
-        $kernel = $this->getKernelMockForIsClassInActiveBundleTest();
-
-        $this->assertTrue($kernel->isClassInActiveBundle(__NAMESPACE__.'\Fixtures\FooBarBundle\SomeClass'));
-    }
-
-    protected function getKernelMockForIsClassInActiveBundleTest()
-    {
-        $bundle = new FooBarBundle();
-
-        $kernel = $this->getKernel(array('getBundles'));
-        $kernel->expects($this->once())
-            ->method('getBundles')
-            ->will($this->returnValue(array($bundle)));
-
-        return $kernel;
-    }
-
-    public function testGetRootDir()
-    {
-        $kernel = new KernelForTest('test', true);
-
-        $this->assertEquals(__DIR__.DIRECTORY_SEPARATOR.'Fixtures', realpath($kernel->getRootDir()));
-    }
-
-    public function testGetName()
-    {
-        $kernel = new KernelForTest('test', true);
-
-        $this->assertEquals('Fixtures', $kernel->getName());
-    }
-
-    public function testOverrideGetName()
-    {
-        $kernel = new KernelForOverrideName('test', true);
-
-        $this->assertEquals('overridden', $kernel->getName());
-    }
-
-    public function testSerialize()
-    {
-        $env = 'test_env';
-        $debug = true;
-        $kernel = new KernelForTest($env, $debug);
-
-        $expected = serialize(array($env, $debug));
-        $this->assertEquals($expected, $kernel->serialize());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testLocateResourceThrowsExceptionWhenNameIsNotValid()
-    {
-        $this->getKernel()->locateResource('Foo');
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testLocateResourceThrowsExceptionWhenNameIsUnsafe()
-    {
-        $this->getKernel()->locateResource('@FooBundle/../bar');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testLocateResourceThrowsExceptionWhenBundleDoesNotExist()
-    {
-        $this->getKernel()->locateResource('@FooBundle/config/routing.xml');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testLocateResourceThrowsExceptionWhenResourceDoesNotExist()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle'))))
-        ;
-
-        $kernel->locateResource('@Bundle1Bundle/config/routing.xml');
-    }
-
-    public function testLocateResourceReturnsTheFirstThatMatches()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle'))))
-        ;
-
-        $this->assertEquals(__DIR__.'/Fixtures/Bundle1Bundle/foo.txt', $kernel->locateResource('@Bundle1Bundle/foo.txt'));
-    }
-
-    public function testLocateResourceReturnsTheFirstThatMatchesWithParent()
-    {
-        $parent = $this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle');
-        $child = $this->getBundle(__DIR__.'/Fixtures/Bundle2Bundle');
-
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->exactly(2))
-            ->method('getBundle')
-            ->will($this->returnValue(array($child, $parent)))
-        ;
-
-        $this->assertEquals(__DIR__.'/Fixtures/Bundle2Bundle/foo.txt', $kernel->locateResource('@ParentAABundle/foo.txt'));
-        $this->assertEquals(__DIR__.'/Fixtures/Bundle1Bundle/bar.txt', $kernel->locateResource('@ParentAABundle/bar.txt'));
-    }
-
-    public function testLocateResourceReturnsAllMatches()
-    {
-        $parent = $this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle');
-        $child = $this->getBundle(__DIR__.'/Fixtures/Bundle2Bundle');
-
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array($child, $parent)))
-        ;
-
-        $this->assertEquals(array(
-            __DIR__.'/Fixtures/Bundle2Bundle/foo.txt',
-            __DIR__.'/Fixtures/Bundle1Bundle/foo.txt', ),
-            $kernel->locateResource('@Bundle1Bundle/foo.txt', null, false));
-    }
-
-    public function testLocateResourceReturnsAllMatchesBis()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array(
-                $this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle'),
-                $this->getBundle(__DIR__.'/Foobar'),
-            )))
-        ;
-
-        $this->assertEquals(
-            array(__DIR__.'/Fixtures/Bundle1Bundle/foo.txt'),
-            $kernel->locateResource('@Bundle1Bundle/foo.txt', null, false)
-        );
-    }
-
-    public function testLocateResourceIgnoresDirOnNonResource()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle'))))
-        ;
-
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Bundle1Bundle/foo.txt',
-            $kernel->locateResource('@Bundle1Bundle/foo.txt', __DIR__.'/Fixtures')
-        );
-    }
-
-    public function testLocateResourceReturnsTheDirOneForResources()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/FooBundle', null, null, 'FooBundle'))))
-        ;
-
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Resources/FooBundle/foo.txt',
-            $kernel->locateResource('@FooBundle/Resources/foo.txt', __DIR__.'/Fixtures/Resources')
-        );
-    }
-
-    public function testLocateResourceReturnsTheDirOneForResourcesAndBundleOnes()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->once())
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle', null, null, 'Bundle1Bundle'))))
-        ;
-
-        $this->assertEquals(array(
-            __DIR__.'/Fixtures/Resources/Bundle1Bundle/foo.txt',
-            __DIR__.'/Fixtures/Bundle1Bundle/Resources/foo.txt', ),
-            $kernel->locateResource('@Bundle1Bundle/Resources/foo.txt', __DIR__.'/Fixtures/Resources', false)
-        );
-    }
-
-    public function testLocateResourceOverrideBundleAndResourcesFolders()
-    {
-        $parent = $this->getBundle(__DIR__.'/Fixtures/BaseBundle', null, 'BaseBundle', 'BaseBundle');
-        $child = $this->getBundle(__DIR__.'/Fixtures/ChildBundle', 'ParentBundle', 'ChildBundle', 'ChildBundle');
-
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->exactly(4))
-            ->method('getBundle')
-            ->will($this->returnValue(array($child, $parent)))
-        ;
-
-        $this->assertEquals(array(
-            __DIR__.'/Fixtures/Resources/ChildBundle/foo.txt',
-            __DIR__.'/Fixtures/ChildBundle/Resources/foo.txt',
-            __DIR__.'/Fixtures/BaseBundle/Resources/foo.txt',
-            ),
-            $kernel->locateResource('@BaseBundle/Resources/foo.txt', __DIR__.'/Fixtures/Resources', false)
-        );
-
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Resources/ChildBundle/foo.txt',
-            $kernel->locateResource('@BaseBundle/Resources/foo.txt', __DIR__.'/Fixtures/Resources')
-        );
-
-        try {
-            $kernel->locateResource('@BaseBundle/Resources/hide.txt', __DIR__.'/Fixtures/Resources', false);
-            $this->fail('Hidden resources should raise an exception when returning an array of matching paths');
-        } catch (\RuntimeException $e) {
-        }
-
-        try {
-            $kernel->locateResource('@BaseBundle/Resources/hide.txt', __DIR__.'/Fixtures/Resources', true);
-            $this->fail('Hidden resources should raise an exception when returning the first matching path');
-        } catch (\RuntimeException $e) {
-        }
-    }
-
-    public function testLocateResourceOnDirectories()
-    {
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->exactly(2))
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/FooBundle', null, null, 'FooBundle'))))
-        ;
-
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Resources/FooBundle/',
-            $kernel->locateResource('@FooBundle/Resources/', __DIR__.'/Fixtures/Resources')
-        );
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Resources/FooBundle',
-            $kernel->locateResource('@FooBundle/Resources', __DIR__.'/Fixtures/Resources')
-        );
-
-        $kernel = $this->getKernel(array('getBundle'));
-        $kernel
-            ->expects($this->exactly(2))
-            ->method('getBundle')
-            ->will($this->returnValue(array($this->getBundle(__DIR__.'/Fixtures/Bundle1Bundle', null, null, 'Bundle1Bundle'))))
-        ;
-
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Bundle1Bundle/Resources/',
-            $kernel->locateResource('@Bundle1Bundle/Resources/')
-        );
-        $this->assertEquals(
-            __DIR__.'/Fixtures/Bundle1Bundle/Resources',
-            $kernel->locateResource('@Bundle1Bundle/Resources')
-        );
-    }
-
-    public function testInitializeBundles()
-    {
-        $parent = $this->getBundle(null, null, 'ParentABundle');
-        $child = $this->getBundle(null, 'ParentABundle', 'ChildABundle');
-
-        // use test kernel so we can access getBundleMap()
-        $kernel = $this->getKernelForTest(array('registerBundles'));
-        $kernel
-            ->expects($this->once())
-            ->method('registerBundles')
-            ->will($this->returnValue(array($parent, $child)))
-        ;
-        $kernel->boot();
-
-        $map = $kernel->getBundleMap();
-        $this->assertEquals(array($child, $parent), $map['ParentABundle']);
-    }
-
-    public function testInitializeBundlesSupportInheritanceCascade()
-    {
-        $grandparent = $this->getBundle(null, null, 'GrandParentBBundle');
-        $parent = $this->getBundle(null, 'GrandParentBBundle', 'ParentBBundle');
-        $child = $this->getBundle(null, 'ParentBBundle', 'ChildBBundle');
-
-        // use test kernel so we can access getBundleMap()
-        $kernel = $this->getKernelForTest(array('registerBundles'));
-        $kernel
-            ->expects($this->once())
-            ->method('registerBundles')
-            ->will($this->returnValue(array($grandparent, $parent, $child)))
-        ;
-        $kernel->boot();
-
-        $map = $kernel->getBundleMap();
-        $this->assertEquals(array($child, $parent, $grandparent), $map['GrandParentBBundle']);
-        $this->assertEquals(array($child, $parent), $map['ParentBBundle']);
-        $this->assertEquals(array($child), $map['ChildBBundle']);
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Bundle "ChildCBundle" extends bundle "FooBar", which is not registered.
-     */
-    public function testInitializeBundlesThrowsExceptionWhenAParentDoesNotExists()
-    {
-        $child = $this->getBundle(null, 'FooBar', 'ChildCBundle');
-        $kernel = $this->getKernel(array(), array($child));
-        $kernel->boot();
-    }
-
-    public function testInitializeBundlesSupportsArbitraryBundleRegistrationOrder()
-    {
-        $grandparent = $this->getBundle(null, null, 'GrandParentCBundle');
-        $parent = $this->getBundle(null, 'GrandParentCBundle', 'ParentCBundle');
-        $child = $this->getBundle(null, 'ParentCBundle', 'ChildCBundle');
-
-        // use test kernel so we can access getBundleMap()
-        $kernel = $this->getKernelForTest(array('registerBundles'));
-        $kernel
-            ->expects($this->once())
-            ->method('registerBundles')
-            ->will($this->returnValue(array($parent, $grandparent, $child)))
-        ;
-        $kernel->boot();
-
-        $map = $kernel->getBundleMap();
-        $this->assertEquals(array($child, $parent, $grandparent), $map['GrandParentCBundle']);
-        $this->assertEquals(array($child, $parent), $map['ParentCBundle']);
-        $this->assertEquals(array($child), $map['ChildCBundle']);
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Bundle "ParentCBundle" is directly extended by two bundles "ChildC2Bundle" and "ChildC1Bundle".
-     */
-    public function testInitializeBundlesThrowsExceptionWhenABundleIsDirectlyExtendedByTwoBundles()
-    {
-        $parent = $this->getBundle(null, null, 'ParentCBundle');
-        $child1 = $this->getBundle(null, 'ParentCBundle', 'ChildC1Bundle');
-        $child2 = $this->getBundle(null, 'ParentCBundle', 'ChildC2Bundle');
-
-        $kernel = $this->getKernel(array(), array($parent, $child1, $child2));
-        $kernel->boot();
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Trying to register two bundles with the same name "DuplicateName"
-     */
-    public function testInitializeBundleThrowsExceptionWhenRegisteringTwoBundlesWithTheSameName()
-    {
-        $fooBundle = $this->getBundle(null, null, 'FooBundle', 'DuplicateName');
-        $barBundle = $this->getBundle(null, null, 'BarBundle', 'DuplicateName');
-
-        $kernel = $this->getKernel(array(), array($fooBundle, $barBundle));
-        $kernel->boot();
-    }
-
-    /**
-     * @expectedException \LogicException
-     * @expectedExceptionMessage Bundle "CircularRefBundle" can not extend itself.
-     */
-    public function testInitializeBundleThrowsExceptionWhenABundleExtendsItself()
-    {
-        $circularRef = $this->getBundle(null, 'CircularRefBundle', 'CircularRefBundle');
-
-        $kernel = $this->getKernel(array(), array($circularRef));
-        $kernel->boot();
-    }
-
-    public function testTerminateReturnsSilentlyIfKernelIsNotBooted()
-    {
-        $kernel = $this->getKernel(array('getHttpKernel'));
-        $kernel->expects($this->never())
-            ->method('getHttpKernel');
-
-        $kernel->terminate(Request::create('/'), new Response());
-    }
-
-    public function testTerminateDelegatesTerminationOnlyForTerminableInterface()
-    {
-        // does not implement TerminableInterface
-        $httpKernelMock = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $httpKernelMock
-            ->expects($this->never())
-            ->method('terminate');
-
-        $kernel = $this->getKernel(array('getHttpKernel'));
-        $kernel->expects($this->once())
-            ->method('getHttpKernel')
-            ->will($this->returnValue($httpKernelMock));
-
-        $kernel->boot();
-        $kernel->terminate(Request::create('/'), new Response());
-
-        // implements TerminableInterface
-        $httpKernelMock = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernel')
-            ->disableOriginalConstructor()
-            ->setMethods(array('terminate'))
-            ->getMock();
-
-        $httpKernelMock
-            ->expects($this->once())
-            ->method('terminate');
-
-        $kernel = $this->getKernel(array('getHttpKernel'));
-        $kernel->expects($this->exactly(2))
-            ->method('getHttpKernel')
-            ->will($this->returnValue($httpKernelMock));
-
-        $kernel->boot();
-        $kernel->terminate(Request::create('/'), new Response());
-    }
-
-    /**
-     * Returns a mock for the BundleInterface
-     *
-     * @return BundleInterface
-     */
-    protected function getBundle($dir = null, $parent = null, $className = null, $bundleName = null)
-    {
-        $bundle = $this
-            ->getMockBuilder('Symfony\Component\HttpKernel\Bundle\BundleInterface')
-            ->setMethods(array('getPath', 'getParent', 'getName'))
-            ->disableOriginalConstructor()
-        ;
-
-        if ($className) {
-            $bundle->setMockClassName($className);
-        }
-
-        $bundle = $bundle->getMockForAbstractClass();
-
-        $bundle
-            ->expects($this->any())
-            ->method('getName')
-            ->will($this->returnValue(null === $bundleName ? get_class($bundle) : $bundleName))
-        ;
-
-        $bundle
-            ->expects($this->any())
-            ->method('getPath')
-            ->will($this->returnValue($dir))
-        ;
-
-        $bundle
-            ->expects($this->any())
-            ->method('getParent')
-            ->will($this->returnValue($parent))
-        ;
-
-        return $bundle;
-    }
-
-    /**
-     * Returns a mock for the abstract kernel.
-     *
-     * @param array $methods Additional methods to mock (besides the abstract ones)
-     * @param array $bundles Bundles to register
-     *
-     * @return Kernel
-     */
-    protected function getKernel(array $methods = array(), array $bundles = array())
-    {
-        $methods[] = 'registerBundles';
-
-        $kernel = $this
-            ->getMockBuilder('Symfony\Component\HttpKernel\Kernel')
-            ->setMethods($methods)
-            ->setConstructorArgs(array('test', false))
-            ->getMockForAbstractClass()
-        ;
-        $kernel->expects($this->any())
-            ->method('registerBundles')
-            ->will($this->returnValue($bundles))
-        ;
-        $p = new \ReflectionProperty($kernel, 'rootDir');
-        $p->setAccessible(true);
-        $p->setValue($kernel, __DIR__.'/Fixtures');
-
-        return $kernel;
-    }
-
-    protected function getKernelForTest(array $methods = array())
-    {
-        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
-            ->setConstructorArgs(array('test', false))
-            ->setMethods($methods)
-            ->getMock();
-        $p = new \ReflectionProperty($kernel, 'rootDir');
-        $p->setAccessible(true);
-        $p->setValue($kernel, __DIR__.'/Fixtures');
-
-        return $kernel;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Logger.php b/core/vendor/symfony/http-kernel/Tests/Logger.php
deleted file mode 100644
index 5430096..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Logger.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests;
-
-use Psr\Log\LoggerInterface;
-
-class Logger implements LoggerInterface
-{
-    protected $logs;
-
-    public function __construct()
-    {
-        $this->clear();
-    }
-
-    public function getLogs($level = false)
-    {
-        return false === $level ? $this->logs : $this->logs[$level];
-    }
-
-    public function clear()
-    {
-        $this->logs = array(
-            'emergency' => array(),
-            'alert' => array(),
-            'critical' => array(),
-            'error' => array(),
-            'warning' => array(),
-            'notice' => array(),
-            'info' => array(),
-            'debug' => array(),
-        );
-    }
-
-    public function log($level, $message, array $context = array())
-    {
-        $this->logs[$level][] = $message;
-    }
-
-    public function emergency($message, array $context = array())
-    {
-        $this->log('emergency', $message, $context);
-    }
-
-    public function alert($message, array $context = array())
-    {
-        $this->log('alert', $message, $context);
-    }
-
-    public function critical($message, array $context = array())
-    {
-        $this->log('critical', $message, $context);
-    }
-
-    public function error($message, array $context = array())
-    {
-        $this->log('error', $message, $context);
-    }
-
-    public function warning($message, array $context = array())
-    {
-        $this->log('warning', $message, $context);
-    }
-
-    public function notice($message, array $context = array())
-    {
-        $this->log('notice', $message, $context);
-    }
-
-    public function info($message, array $context = array())
-    {
-        $this->log('info', $message, $context);
-    }
-
-    public function debug($message, array $context = array())
-    {
-        $this->log('debug', $message, $context);
-    }
-
-    /**
-     * @deprecated
-     */
-    public function emerg($message, array $context = array())
-    {
-        @trigger_error('Use emergency() which is PSR-3 compatible', E_USER_DEPRECATED);
-
-        $this->log('emergency', $message, $context);
-    }
-
-    /**
-     * @deprecated
-     */
-    public function crit($message, array $context = array())
-    {
-        @trigger_error('Use critical() which is PSR-3 compatible', E_USER_DEPRECATED);
-
-        $this->log('critical', $message, $context);
-    }
-
-    /**
-     * @deprecated
-     */
-    public function err($message, array $context = array())
-    {
-        @trigger_error('Use error() which is PSR-3 compatible', E_USER_DEPRECATED);
-
-        $this->log('error', $message, $context);
-    }
-
-    /**
-     * @deprecated
-     */
-    public function warn($message, array $context = array())
-    {
-        @trigger_error('Use warning() which is PSR-3 compatible', E_USER_DEPRECATED);
-
-        $this->log('warning', $message, $context);
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/AbstractProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/AbstractProfilerStorageTest.php
deleted file mode 100644
index dc361ed..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/AbstractProfilerStorageTest.php
+++ /dev/null
@@ -1,270 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\Profile;
-
-abstract class AbstractProfilerStorageTest extends \PHPUnit_Framework_TestCase
-{
-    public function testStore()
-    {
-        for ($i = 0; $i < 10; ++$i) {
-            $profile = new Profile('token_'.$i);
-            $profile->setIp('127.0.0.1');
-            $profile->setUrl('http://foo.bar');
-            $profile->setMethod('GET');
-            $this->getStorage()->write($profile);
-        }
-        $this->assertCount(10, $this->getStorage()->find('127.0.0.1', 'http://foo.bar', 20, 'GET'), '->write() stores data in the storage');
-    }
-
-    public function testChildren()
-    {
-        $parentProfile = new Profile('token_parent');
-        $parentProfile->setIp('127.0.0.1');
-        $parentProfile->setUrl('http://foo.bar/parent');
-
-        $childProfile = new Profile('token_child');
-        $childProfile->setIp('127.0.0.1');
-        $childProfile->setUrl('http://foo.bar/child');
-
-        $parentProfile->addChild($childProfile);
-
-        $this->getStorage()->write($parentProfile);
-        $this->getStorage()->write($childProfile);
-
-        // Load them from storage
-        $parentProfile = $this->getStorage()->read('token_parent');
-        $childProfile = $this->getStorage()->read('token_child');
-
-        // Check child has link to parent
-        $this->assertNotNull($childProfile->getParent());
-        $this->assertEquals($parentProfile->getToken(), $childProfile->getParentToken());
-
-        // Check parent has child
-        $children = $parentProfile->getChildren();
-        $this->assertCount(1, $children);
-        $this->assertEquals($childProfile->getToken(), $children[0]->getToken());
-    }
-
-    public function testStoreSpecialCharsInUrl()
-    {
-        // The storage accepts special characters in URLs (Even though URLs are not
-        // supposed to contain them)
-        $profile = new Profile('simple_quote');
-        $profile->setUrl('http://foo.bar/\'');
-        $this->getStorage()->write($profile);
-        $this->assertTrue(false !== $this->getStorage()->read('simple_quote'), '->write() accepts single quotes in URL');
-
-        $profile = new Profile('double_quote');
-        $profile->setUrl('http://foo.bar/"');
-        $this->getStorage()->write($profile);
-        $this->assertTrue(false !== $this->getStorage()->read('double_quote'), '->write() accepts double quotes in URL');
-
-        $profile = new Profile('backslash');
-        $profile->setUrl('http://foo.bar/\\');
-        $this->getStorage()->write($profile);
-        $this->assertTrue(false !== $this->getStorage()->read('backslash'), '->write() accepts backslash in URL');
-
-        $profile = new Profile('comma');
-        $profile->setUrl('http://foo.bar/,');
-        $this->getStorage()->write($profile);
-        $this->assertTrue(false !== $this->getStorage()->read('comma'), '->write() accepts comma in URL');
-    }
-
-    public function testStoreDuplicateToken()
-    {
-        $profile = new Profile('token');
-        $profile->setUrl('http://example.com/');
-
-        $this->assertTrue($this->getStorage()->write($profile), '->write() returns true when the token is unique');
-
-        $profile->setUrl('http://example.net/');
-
-        $this->assertTrue($this->getStorage()->write($profile), '->write() returns true when the token is already present in the storage');
-        $this->assertEquals('http://example.net/', $this->getStorage()->read('token')->getUrl(), '->write() overwrites the current profile data');
-
-        $this->assertCount(1, $this->getStorage()->find('', '', 1000, ''), '->find() does not return the same profile twice');
-    }
-
-    public function testRetrieveByIp()
-    {
-        $profile = new Profile('token');
-        $profile->setIp('127.0.0.1');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', '', 10, 'GET'), '->find() retrieve a record by IP');
-        $this->assertCount(0, $this->getStorage()->find('127.0.%.1', '', 10, 'GET'), '->find() does not interpret a "%" as a wildcard in the IP');
-        $this->assertCount(0, $this->getStorage()->find('127.0._.1', '', 10, 'GET'), '->find() does not interpret a "_" as a wildcard in the IP');
-    }
-
-    public function testRetrieveByUrl()
-    {
-        $profile = new Profile('simple_quote');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://foo.bar/\'');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $profile = new Profile('double_quote');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://foo.bar/"');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $profile = new Profile('backslash');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://foo\\bar/');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $profile = new Profile('percent');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://foo.bar/%');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $profile = new Profile('underscore');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://foo.bar/_');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $profile = new Profile('semicolon');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://foo.bar/;');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', 'http://foo.bar/\'', 10, 'GET'), '->find() accepts single quotes in URLs');
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', 'http://foo.bar/"', 10, 'GET'), '->find() accepts double quotes in URLs');
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', 'http://foo\\bar/', 10, 'GET'), '->find() accepts backslash in URLs');
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', 'http://foo.bar/;', 10, 'GET'), '->find() accepts semicolon in URLs');
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', 'http://foo.bar/%', 10, 'GET'), '->find() does not interpret a "%" as a wildcard in the URL');
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', 'http://foo.bar/_', 10, 'GET'), '->find() does not interpret a "_" as a wildcard in the URL');
-    }
-
-    public function testStoreTime()
-    {
-        $dt = new \DateTime('now');
-        $start = $dt->getTimestamp();
-
-        for ($i = 0; $i < 3; ++$i) {
-            $dt->modify('+1 minute');
-            $profile = new Profile('time_'.$i);
-            $profile->setIp('127.0.0.1');
-            $profile->setUrl('http://foo.bar');
-            $profile->setTime($dt->getTimestamp());
-            $profile->setMethod('GET');
-            $this->getStorage()->write($profile);
-        }
-
-        $records = $this->getStorage()->find('', '', 3, 'GET', $start, time() + 3 * 60);
-        $this->assertCount(3, $records, '->find() returns all previously added records');
-        $this->assertEquals($records[0]['token'], 'time_2', '->find() returns records ordered by time in descendant order');
-        $this->assertEquals($records[1]['token'], 'time_1', '->find() returns records ordered by time in descendant order');
-        $this->assertEquals($records[2]['token'], 'time_0', '->find() returns records ordered by time in descendant order');
-
-        $records = $this->getStorage()->find('', '', 3, 'GET', $start, time() + 2 * 60);
-        $this->assertCount(2, $records, '->find() should return only first two of the previously added records');
-    }
-
-    public function testRetrieveByEmptyUrlAndIp()
-    {
-        for ($i = 0; $i < 5; ++$i) {
-            $profile = new Profile('token_'.$i);
-            $profile->setMethod('GET');
-            $this->getStorage()->write($profile);
-        }
-        $this->assertCount(5, $this->getStorage()->find('', '', 10, 'GET'), '->find() returns all previously added records');
-        $this->getStorage()->purge();
-    }
-
-    public function testRetrieveByMethodAndLimit()
-    {
-        foreach (array('POST', 'GET') as $method) {
-            for ($i = 0; $i < 5; ++$i) {
-                $profile = new Profile('token_'.$i.$method);
-                $profile->setMethod($method);
-                $this->getStorage()->write($profile);
-            }
-        }
-
-        $this->assertCount(5, $this->getStorage()->find('', '', 5, 'POST'));
-
-        $this->getStorage()->purge();
-    }
-
-    public function testPurge()
-    {
-        $profile = new Profile('token1');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://example.com/');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $this->assertTrue(false !== $this->getStorage()->read('token1'));
-        $this->assertCount(1, $this->getStorage()->find('127.0.0.1', '', 10, 'GET'));
-
-        $profile = new Profile('token2');
-        $profile->setIp('127.0.0.1');
-        $profile->setUrl('http://example.net/');
-        $profile->setMethod('GET');
-        $this->getStorage()->write($profile);
-
-        $this->assertTrue(false !== $this->getStorage()->read('token2'));
-        $this->assertCount(2, $this->getStorage()->find('127.0.0.1', '', 10, 'GET'));
-
-        $this->getStorage()->purge();
-
-        $this->assertEmpty($this->getStorage()->read('token'), '->purge() removes all data stored by profiler');
-        $this->assertCount(0, $this->getStorage()->find('127.0.0.1', '', 10, 'GET'), '->purge() removes all items from index');
-    }
-
-    public function testDuplicates()
-    {
-        for ($i = 1; $i <= 5; ++$i) {
-            $profile = new Profile('foo'.$i);
-            $profile->setIp('127.0.0.1');
-            $profile->setUrl('http://example.net/');
-            $profile->setMethod('GET');
-
-            ///three duplicates
-            $this->getStorage()->write($profile);
-            $this->getStorage()->write($profile);
-            $this->getStorage()->write($profile);
-        }
-        $this->assertCount(3, $this->getStorage()->find('127.0.0.1', 'http://example.net/', 3, 'GET'), '->find() method returns incorrect number of entries');
-    }
-
-    public function testStatusCode()
-    {
-        $profile = new Profile('token1');
-        $profile->setStatusCode(200);
-        $this->getStorage()->write($profile);
-
-        $profile = new Profile('token2');
-        $profile->setStatusCode(404);
-        $this->getStorage()->write($profile);
-
-        $tokens = $this->getStorage()->find('', '', 10, '');
-        $this->assertCount(2, $tokens);
-        $this->assertContains($tokens[0]['status_code'], array(200, 404));
-        $this->assertContains($tokens[1]['status_code'], array(200, 404));
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    abstract protected function getStorage();
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php
deleted file mode 100644
index d5edc70..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\FileProfilerStorage;
-use Symfony\Component\HttpKernel\Profiler\Profile;
-
-class FileProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $tmpDir;
-    protected static $storage;
-
-    protected static function cleanDir()
-    {
-        $flags = \FilesystemIterator::SKIP_DOTS;
-        $iterator = new \RecursiveDirectoryIterator(self::$tmpDir, $flags);
-        $iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);
-
-        foreach ($iterator as $file) {
-            if (is_file($file)) {
-                unlink($file);
-            }
-        }
-    }
-
-    public static function setUpBeforeClass()
-    {
-        self::$tmpDir = sys_get_temp_dir().'/sf2_profiler_file_storage';
-        if (is_dir(self::$tmpDir)) {
-            self::cleanDir();
-        }
-        self::$storage = new FileProfilerStorage('file:'.self::$tmpDir);
-    }
-
-    public static function tearDownAfterClass()
-    {
-        self::cleanDir();
-    }
-
-    protected function setUp()
-    {
-        self::$storage->purge();
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-
-    public function testMultiRowIndexFile()
-    {
-        $iteration = 3;
-        for ($i = 0; $i < $iteration; ++$i) {
-            $profile = new Profile('token'.$i);
-            $profile->setIp('127.0.0.'.$i);
-            $profile->setUrl('http://foo.bar/'.$i);
-            $storage = $this->getStorage();
-
-            $storage->write($profile);
-            $storage->write($profile);
-            $storage->write($profile);
-        }
-
-        $handle = fopen(self::$tmpDir.'/index.csv', 'r');
-        for ($i = 0; $i < $iteration; ++$i) {
-            $row = fgetcsv($handle);
-            $this->assertEquals('token'.$i, $row[0]);
-            $this->assertEquals('127.0.0.'.$i, $row[1]);
-            $this->assertEquals('http://foo.bar/'.$i, $row[3]);
-        }
-        $this->assertFalse(fgetcsv($handle));
-    }
-
-    public function testReadLineFromFile()
-    {
-        $r = new \ReflectionMethod(self::$storage, 'readLineFromFile');
-
-        $r->setAccessible(true);
-
-        $h = tmpfile();
-
-        fwrite($h, "line1\n\n\nline2\n");
-        fseek($h, 0, SEEK_END);
-
-        $this->assertEquals('line2', $r->invoke(self::$storage, $h));
-        $this->assertEquals('line1', $r->invoke(self::$storage, $h));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/MemcacheProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/MemcacheProfilerStorageTest.php
deleted file mode 100644
index f582dff..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/MemcacheProfilerStorageTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\MemcacheProfilerStorage;
-use Symfony\Component\HttpKernel\Tests\Profiler\Mock\MemcacheMock;
-
-class MemcacheProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $storage;
-
-    protected function setUp()
-    {
-        $memcacheMock = new MemcacheMock();
-        $memcacheMock->addServer('127.0.0.1', 11211);
-
-        self::$storage = new MemcacheProfilerStorage('memcache://127.0.0.1:11211', '', '', 86400);
-        self::$storage->setMemcache($memcacheMock);
-
-        if (self::$storage) {
-            self::$storage->purge();
-        }
-    }
-
-    protected function tearDown()
-    {
-        if (self::$storage) {
-            self::$storage->purge();
-            self::$storage = false;
-        }
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/MemcachedProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/MemcachedProfilerStorageTest.php
deleted file mode 100644
index 565ac35..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/MemcachedProfilerStorageTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\MemcachedProfilerStorage;
-use Symfony\Component\HttpKernel\Tests\Profiler\Mock\MemcachedMock;
-
-class MemcachedProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $storage;
-
-    protected function setUp()
-    {
-        $memcachedMock = new MemcachedMock();
-        $memcachedMock->addServer('127.0.0.1', 11211);
-
-        self::$storage = new MemcachedProfilerStorage('memcached://127.0.0.1:11211', '', '', 86400);
-        self::$storage->setMemcached($memcachedMock);
-
-        if (self::$storage) {
-            self::$storage->purge();
-        }
-    }
-
-    protected function tearDown()
-    {
-        if (self::$storage) {
-            self::$storage->purge();
-            self::$storage = false;
-        }
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/MemcacheMock.php b/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/MemcacheMock.php
deleted file mode 100644
index 9ca9816..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/MemcacheMock.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler\Mock;
-
-/**
- * MemcacheMock for simulating Memcache extension in tests.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-class MemcacheMock
-{
-    private $connected = false;
-    private $storage = array();
-
-    /**
-     * Open memcached server connection.
-     *
-     * @param string $host
-     * @param int    $port
-     * @param int    $timeout
-     *
-     * @return bool
-     */
-    public function connect($host, $port = null, $timeout = null)
-    {
-        if ('127.0.0.1' == $host && 11211 == $port) {
-            $this->connected = true;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Open memcached server persistent connection.
-     *
-     * @param string $host
-     * @param int    $port
-     * @param int    $timeout
-     *
-     * @return bool
-     */
-    public function pconnect($host, $port = null, $timeout = null)
-    {
-        if ('127.0.0.1' == $host && 11211 == $port) {
-            $this->connected = true;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Add a memcached server to connection pool.
-     *
-     * @param string   $host
-     * @param int      $port
-     * @param bool     $persistent
-     * @param int      $weight
-     * @param int      $timeout
-     * @param int      $retry_interval
-     * @param bool     $status
-     * @param callable $failure_callback
-     * @param int      $timeoutms
-     *
-     * @return bool
-     */
-    public function addServer($host, $port = 11211, $persistent = null, $weight = null, $timeout = null, $retry_interval = null, $status = null, $failure_callback = null, $timeoutms = null)
-    {
-        if ('127.0.0.1' == $host && 11211 == $port) {
-            $this->connected = true;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Add an item to the server only if such key doesn't exist at the server yet.
-     *
-     * @param string $key
-     * @param mixed  $var
-     * @param int    $flag
-     * @param int    $expire
-     *
-     * @return bool
-     */
-    public function add($key, $var, $flag = null, $expire = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (!isset($this->storage[$key])) {
-            $this->storeData($key, $var);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Store data at the server.
-     *
-     * @param string $key
-     * @param string $var
-     * @param int    $flag
-     * @param int    $expire
-     *
-     * @return bool
-     */
-    public function set($key, $var, $flag = null, $expire = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        $this->storeData($key, $var);
-
-        return true;
-    }
-
-    /**
-     * Replace value of the existing item.
-     *
-     * @param string $key
-     * @param mixed  $var
-     * @param int    $flag
-     * @param int    $expire
-     *
-     * @return bool
-     */
-    public function replace($key, $var, $flag = null, $expire = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            $this->storeData($key, $var);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Retrieve item from the server.
-     *
-     * @param string|array $key
-     * @param int|array    $flags
-     *
-     * @return mixed
-     */
-    public function get($key, &$flags = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (is_array($key)) {
-            $result = array();
-            foreach ($key as $k) {
-                if (isset($this->storage[$k])) {
-                    $result[] = $this->getData($k);
-                }
-            }
-
-            return $result;
-        }
-
-        return $this->getData($key);
-    }
-
-    /**
-     * Delete item from the server.
-     *
-     * @param string $key
-     *
-     * @return bool
-     */
-    public function delete($key)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            unset($this->storage[$key]);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Flush all existing items at the server.
-     *
-     * @return bool
-     */
-    public function flush()
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        $this->storage = array();
-
-        return true;
-    }
-
-    /**
-     * Close memcached server connection.
-     *
-     * @return bool
-     */
-    public function close()
-    {
-        $this->connected = false;
-
-        return true;
-    }
-
-    private function getData($key)
-    {
-        if (isset($this->storage[$key])) {
-            return unserialize($this->storage[$key]);
-        }
-
-        return false;
-    }
-
-    private function storeData($key, $value)
-    {
-        $this->storage[$key] = serialize($value);
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/MemcachedMock.php b/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/MemcachedMock.php
deleted file mode 100644
index da98a12..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/MemcachedMock.php
+++ /dev/null
@@ -1,219 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler\Mock;
-
-/**
- * MemcachedMock for simulating Memcached extension in tests.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-class MemcachedMock
-{
-    private $connected = false;
-    private $storage = array();
-
-    /**
-     * Set a Memcached option.
-     *
-     * @param int   $option
-     * @param mixed $value
-     *
-     * @return bool
-     */
-    public function setOption($option, $value)
-    {
-        return true;
-    }
-
-    /**
-     * Add a memcached server to connection pool.
-     *
-     * @param string $host
-     * @param int    $port
-     * @param int    $weight
-     *
-     * @return bool
-     */
-    public function addServer($host, $port = 11211, $weight = 0)
-    {
-        if ('127.0.0.1' == $host && 11211 == $port) {
-            $this->connected = true;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Add an item to the server only if such key doesn't exist at the server yet.
-     *
-     * @param string $key
-     * @param mixed  $value
-     * @param int    $expiration
-     *
-     * @return bool
-     */
-    public function add($key, $value, $expiration = 0)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (!isset($this->storage[$key])) {
-            $this->storeData($key, $value);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Store data at the server.
-     *
-     * @param string $key
-     * @param mixed  $value
-     * @param int    $expiration
-     *
-     * @return bool
-     */
-    public function set($key, $value, $expiration = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        $this->storeData($key, $value);
-
-        return true;
-    }
-
-    /**
-     * Replace value of the existing item.
-     *
-     * @param string $key
-     * @param mixed  $value
-     * @param int    $expiration
-     *
-     * @return bool
-     */
-    public function replace($key, $value, $expiration = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            $this->storeData($key, $value);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Retrieve item from the server.
-     *
-     * @param string   $key
-     * @param callable $cache_cb
-     * @param float    $cas_token
-     *
-     * @return bool
-     */
-    public function get($key, $cache_cb = null, &$cas_token = null)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        return $this->getData($key);
-    }
-
-    /**
-     * Append data to an existing item.
-     *
-     * @param string $key
-     * @param string $value
-     *
-     * @return bool
-     */
-    public function append($key, $value)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            $this->storeData($key, $this->getData($key).$value);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Delete item from the server.
-     *
-     * @param string $key
-     *
-     * @return bool
-     */
-    public function delete($key)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            unset($this->storage[$key]);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Flush all existing items at the server.
-     *
-     * @return bool
-     */
-    public function flush()
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        $this->storage = array();
-
-        return true;
-    }
-
-    private function getData($key)
-    {
-        if (isset($this->storage[$key])) {
-            return unserialize($this->storage[$key]);
-        }
-
-        return false;
-    }
-
-    private function storeData($key, $value)
-    {
-        $this->storage[$key] = serialize($value);
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/RedisMock.php b/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/RedisMock.php
deleted file mode 100644
index 694dc1e..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/Mock/RedisMock.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler\Mock;
-
-/**
- * RedisMock for simulating Redis extension in tests.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-class RedisMock
-{
-    private $connected = false;
-    private $storage = array();
-
-    /**
-     * Add a server to connection pool.
-     *
-     * @param string $host
-     * @param int    $port
-     * @param float  $timeout
-     *
-     * @return bool
-     */
-    public function connect($host, $port = 6379, $timeout = 0)
-    {
-        if ('127.0.0.1' == $host && 6379 == $port) {
-            $this->connected = true;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Set client option.
-     *
-     * @param int $name
-     * @param int $value
-     *
-     * @return bool
-     */
-    public function setOption($name, $value)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Verify if the specified key exists.
-     *
-     * @param string $key
-     *
-     * @return bool
-     */
-    public function exists($key)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        return isset($this->storage[$key]);
-    }
-
-    /**
-     * Store data at the server with expiration time.
-     *
-     * @param string $key
-     * @param int    $ttl
-     * @param mixed  $value
-     *
-     * @return bool
-     */
-    public function setex($key, $ttl, $value)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        $this->storeData($key, $value);
-
-        return true;
-    }
-
-    /**
-     * Sets an expiration time on an item.
-     *
-     * @param string $key
-     * @param int    $ttl
-     *
-     * @return bool
-     */
-    public function setTimeout($key, $ttl)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Retrieve item from the server.
-     *
-     * @param string $key
-     *
-     * @return bool
-     */
-    public function get($key)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        return $this->getData($key);
-    }
-
-    /**
-     * Append data to an existing item.
-     *
-     * @param string $key
-     * @param string $value
-     *
-     * @return int Size of the value after the append.
-     */
-    public function append($key, $value)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (isset($this->storage[$key])) {
-            $this->storeData($key, $this->getData($key).$value);
-
-            return strlen($this->storage[$key]);
-        }
-
-        return false;
-    }
-
-    /**
-     * Remove specified keys.
-     *
-     * @param string|array $key
-     *
-     * @return int
-     */
-    public function delete($key)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (is_array($key)) {
-            $result = 0;
-            foreach ($key as $k) {
-                if (isset($this->storage[$k])) {
-                    unset($this->storage[$k]);
-                    ++$result;
-                }
-            }
-
-            return $result;
-        }
-
-        if (isset($this->storage[$key])) {
-            unset($this->storage[$key]);
-
-            return 1;
-        }
-
-        return 0;
-    }
-
-    /**
-     * Flush all existing items from all databases at the server.
-     *
-     * @return bool
-     */
-    public function flushAll()
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        $this->storage = array();
-
-        return true;
-    }
-
-    /**
-     * Close Redis server connection.
-     *
-     * @return bool
-     */
-    public function close()
-    {
-        $this->connected = false;
-
-        return true;
-    }
-
-    private function getData($key)
-    {
-        if (isset($this->storage[$key])) {
-            return unserialize($this->storage[$key]);
-        }
-
-        return false;
-    }
-
-    private function storeData($key, $value)
-    {
-        $this->storage[$key] = serialize($value);
-
-        return true;
-    }
-
-    public function select($dbnum)
-    {
-        if (!$this->connected) {
-            return false;
-        }
-
-        if (0 > $dbnum) {
-            return false;
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/MongoDbProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/MongoDbProfilerStorageTest.php
deleted file mode 100644
index 29525fe..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/MongoDbProfilerStorageTest.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\MongoDbProfilerStorage;
-use Symfony\Component\HttpKernel\Profiler\Profile;
-use Symfony\Component\HttpKernel\DataCollector\DataCollector;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class DummyMongoDbProfilerStorage extends MongoDbProfilerStorage
-{
-    public function getMongo()
-    {
-        return parent::getMongo();
-    }
-}
-
-class MongoDbProfilerStorageTestDataCollector extends DataCollector
-{
-    public function setData($data)
-    {
-        $this->data = $data;
-    }
-
-    public function getData()
-    {
-        return $this->data;
-    }
-
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-    }
-
-    public function getName()
-    {
-        return 'test_data_collector';
-    }
-}
-
-class MongoDbProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $storage;
-
-    public static function setUpBeforeClass()
-    {
-        if (extension_loaded('mongo')) {
-            self::$storage = new DummyMongoDbProfilerStorage('mongodb://localhost/symfony_tests/profiler_data', '', '', 86400);
-            try {
-                self::$storage->getMongo();
-            } catch (\MongoConnectionException $e) {
-                self::$storage = null;
-            }
-        }
-    }
-
-    public static function tearDownAfterClass()
-    {
-        if (self::$storage) {
-            self::$storage->purge();
-            self::$storage = null;
-        }
-    }
-
-    public function getDsns()
-    {
-        return array(
-            array('mongodb://localhost/symfony_tests/profiler_data', array(
-                'mongodb://localhost/symfony_tests',
-                'symfony_tests',
-                'profiler_data',
-            )),
-            array('mongodb://user:password@localhost/symfony_tests/profiler_data', array(
-                'mongodb://user:password@localhost/symfony_tests',
-                'symfony_tests',
-                'profiler_data',
-            )),
-            array('mongodb://user:password@localhost/admin/symfony_tests/profiler_data', array(
-                'mongodb://user:password@localhost/admin',
-                'symfony_tests',
-                'profiler_data',
-            )),
-            array('mongodb://user:password@localhost:27009,localhost:27010/?replicaSet=rs-name&authSource=admin/symfony_tests/profiler_data', array(
-                'mongodb://user:password@localhost:27009,localhost:27010/?replicaSet=rs-name&authSource=admin',
-                'symfony_tests',
-                'profiler_data',
-            )),
-        );
-    }
-
-    public function testCleanup()
-    {
-        $dt = new \DateTime('-2 day');
-        for ($i = 0; $i < 3; ++$i) {
-            $dt->modify('-1 day');
-            $profile = new Profile('time_'.$i);
-            $profile->setTime($dt->getTimestamp());
-            $profile->setMethod('GET');
-            self::$storage->write($profile);
-        }
-        $records = self::$storage->find('', '', 3, 'GET');
-        $this->assertCount(1, $records, '->find() returns only one record');
-        $this->assertEquals($records[0]['token'], 'time_2', '->find() returns the latest added record');
-        self::$storage->purge();
-    }
-
-    /**
-     * @dataProvider getDsns
-     */
-    public function testDsnParser($dsn, $expected)
-    {
-        $m = new \ReflectionMethod(self::$storage, 'parseDsn');
-        $m->setAccessible(true);
-
-        $this->assertEquals($expected, $m->invoke(self::$storage, $dsn));
-    }
-
-    public function testUtf8()
-    {
-        $profile = new Profile('utf8_test_profile');
-
-        $data = 'HЁʃʃϿ, ϢorЃd!';
-        $nonUtf8Data = mb_convert_encoding($data, 'UCS-2');
-
-        $collector = new MongoDbProfilerStorageTestDataCollector();
-        $collector->setData($nonUtf8Data);
-
-        $profile->setCollectors(array($collector));
-
-        self::$storage->write($profile);
-
-        $readProfile = self::$storage->read('utf8_test_profile');
-        $collectors = $readProfile->getCollectors();
-
-        $this->assertCount(1, $collectors);
-        $this->assertArrayHasKey('test_data_collector', $collectors);
-        $this->assertEquals($nonUtf8Data, $collectors['test_data_collector']->getData(), 'Non-UTF8 data is properly encoded/decoded');
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-
-    protected function setUp()
-    {
-        if (self::$storage) {
-            self::$storage->purge();
-        } else {
-            $this->markTestSkipped('MongoDbProfilerStorageTest requires the mongo PHP extension and a MongoDB server on localhost');
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php
deleted file mode 100644
index 023ed18..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\DataCollector\RequestDataCollector;
-use Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage;
-use Symfony\Component\HttpKernel\Profiler\Profiler;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-class ProfilerTest extends \PHPUnit_Framework_TestCase
-{
-    private $tmp;
-    private $storage;
-
-    public function testCollect()
-    {
-        $request = new Request();
-        $request->query->set('foo', 'bar');
-        $response = new Response('', 204);
-        $collector = new RequestDataCollector();
-
-        $profiler = new Profiler($this->storage);
-        $profiler->add($collector);
-        $profile = $profiler->collect($request, $response);
-
-        $this->assertSame(204, $profile->getStatusCode());
-        $this->assertSame('GET', $profile->getMethod());
-        $this->assertEquals(array('foo' => 'bar'), $profiler->get('request')->getRequestQuery()->all());
-    }
-
-    public function testFindWorksWithDates()
-    {
-        $profiler = new Profiler($this->storage);
-
-        $this->assertCount(0, $profiler->find(null, null, null, null, '7th April 2014', '9th April 2014'));
-    }
-
-    public function testFindWorksWithTimestamps()
-    {
-        $profiler = new Profiler($this->storage);
-
-        $this->assertCount(0, $profiler->find(null, null, null, null, '1396828800', '1397001600'));
-    }
-
-    public function testFindWorksWithInvalidDates()
-    {
-        $profiler = new Profiler($this->storage);
-
-        $this->assertCount(0, $profiler->find(null, null, null, null, 'some string', ''));
-    }
-
-    protected function setUp()
-    {
-        if (!class_exists('SQLite3') && (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers()))) {
-            $this->markTestSkipped('This test requires SQLite support in your environment');
-        }
-
-        $this->tmp = tempnam(sys_get_temp_dir(), 'sf2_profiler');
-        if (file_exists($this->tmp)) {
-            @unlink($this->tmp);
-        }
-
-        $this->storage = new SqliteProfilerStorage('sqlite:'.$this->tmp);
-        $this->storage->purge();
-    }
-
-    protected function tearDown()
-    {
-        if (null !== $this->storage) {
-            $this->storage->purge();
-            $this->storage = null;
-
-            @unlink($this->tmp);
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/RedisProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/RedisProfilerStorageTest.php
deleted file mode 100644
index 91354ae..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/RedisProfilerStorageTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\RedisProfilerStorage;
-use Symfony\Component\HttpKernel\Tests\Profiler\Mock\RedisMock;
-
-class RedisProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $storage;
-
-    protected function setUp()
-    {
-        $redisMock = new RedisMock();
-        $redisMock->connect('127.0.0.1', 6379);
-
-        self::$storage = new RedisProfilerStorage('redis://127.0.0.1:6379', '', '', 86400);
-        self::$storage->setRedis($redisMock);
-
-        if (self::$storage) {
-            self::$storage->purge();
-        }
-    }
-
-    protected function tearDown()
-    {
-        if (self::$storage) {
-            self::$storage->purge();
-            self::$storage = false;
-        }
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/Profiler/SqliteProfilerStorageTest.php b/core/vendor/symfony/http-kernel/Tests/Profiler/SqliteProfilerStorageTest.php
deleted file mode 100644
index 43546c1..0000000
--- a/core/vendor/symfony/http-kernel/Tests/Profiler/SqliteProfilerStorageTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests\Profiler;
-
-use Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage;
-
-class SqliteProfilerStorageTest extends AbstractProfilerStorageTest
-{
-    protected static $dbFile;
-    protected static $storage;
-
-    public static function setUpBeforeClass()
-    {
-        self::$dbFile = tempnam(sys_get_temp_dir(), 'sf2_sqlite_storage');
-        if (file_exists(self::$dbFile)) {
-            @unlink(self::$dbFile);
-        }
-        self::$storage = new SqliteProfilerStorage('sqlite:'.self::$dbFile);
-    }
-
-    public static function tearDownAfterClass()
-    {
-        @unlink(self::$dbFile);
-    }
-
-    protected function setUp()
-    {
-        if (!class_exists('SQLite3') && (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers()))) {
-            $this->markTestSkipped('This test requires SQLite support in your environment');
-        }
-        self::$storage->purge();
-    }
-
-    /**
-     * @return \Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface
-     */
-    protected function getStorage()
-    {
-        return self::$storage;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/TestHttpKernel.php b/core/vendor/symfony/http-kernel/Tests/TestHttpKernel.php
deleted file mode 100644
index d526c4d..0000000
--- a/core/vendor/symfony/http-kernel/Tests/TestHttpKernel.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests;
-
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-
-class TestHttpKernel extends HttpKernel implements ControllerResolverInterface
-{
-    public function __construct()
-    {
-        parent::__construct(new EventDispatcher(), $this);
-    }
-
-    public function getController(Request $request)
-    {
-        return array($this, 'callController');
-    }
-
-    public function getArguments(Request $request, $controller)
-    {
-        return array($request);
-    }
-
-    public function callController(Request $request)
-    {
-        return new Response('Request: '.$request->getRequestUri());
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/Tests/UriSignerTest.php b/core/vendor/symfony/http-kernel/Tests/UriSignerTest.php
deleted file mode 100644
index f4d0728..0000000
--- a/core/vendor/symfony/http-kernel/Tests/UriSignerTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel\Tests;
-
-use Symfony\Component\HttpKernel\UriSigner;
-
-class UriSignerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSign()
-    {
-        $signer = new UriSigner('foobar');
-
-        $this->assertContains('?_hash=', $signer->sign('http://example.com/foo'));
-        $this->assertContains('&_hash=', $signer->sign('http://example.com/foo?foo=bar'));
-    }
-
-    public function testCheck()
-    {
-        $signer = new UriSigner('foobar');
-
-        $this->assertFalse($signer->check('http://example.com/foo?_hash=foo'));
-        $this->assertFalse($signer->check('http://example.com/foo?foo=bar&_hash=foo'));
-        $this->assertFalse($signer->check('http://example.com/foo?foo=bar&_hash=foo&bar=foo'));
-
-        $this->assertTrue($signer->check($signer->sign('http://example.com/foo')));
-        $this->assertTrue($signer->check($signer->sign('http://example.com/foo?foo=bar')));
-
-        $this->assertTrue($signer->sign('http://example.com/foo?foo=bar&bar=foo') === $signer->sign('http://example.com/foo?bar=foo&foo=bar'));
-    }
-
-    public function testCheckWithDifferentArgSeparator()
-    {
-        $this->iniSet('arg_separator.output', '&amp;');
-        $signer = new UriSigner('foobar');
-
-        $this->assertSame(
-            "http://example.com/foo?baz=bay&foo=bar&_hash=rIOcC%2FF3DoEGo%2FvnESjSp7uU9zA9S%2F%2BOLhxgMexoPUM%3D",
-            $signer->sign('http://example.com/foo?foo=bar&baz=bay')
-        );
-        $this->assertTrue($signer->check($signer->sign('http://example.com/foo?foo=bar&baz=bay')));
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/UriSigner.php b/core/vendor/symfony/http-kernel/UriSigner.php
deleted file mode 100644
index 6ddce87..0000000
--- a/core/vendor/symfony/http-kernel/UriSigner.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\HttpKernel;
-
-/**
- * Signs URIs.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class UriSigner
-{
-    private $secret;
-
-    /**
-     * Constructor.
-     *
-     * @param string $secret A secret
-     */
-    public function __construct($secret)
-    {
-        $this->secret = $secret;
-    }
-
-    /**
-     * Signs a URI.
-     *
-     * The given URI is signed by adding a _hash query string parameter
-     * which value depends on the URI and the secret.
-     *
-     * @param string $uri A URI to sign
-     *
-     * @return string The signed URI
-     */
-    public function sign($uri)
-    {
-        $url = parse_url($uri);
-        if (isset($url['query'])) {
-            parse_str($url['query'], $params);
-        } else {
-            $params = array();
-        }
-
-        $uri = $this->buildUrl($url, $params);
-
-        return $uri.(false === (strpos($uri, '?')) ? '?' : '&').'_hash='.$this->computeHash($uri);
-    }
-
-    /**
-     * Checks that a URI contains the correct hash.
-     *
-     * The _hash query string parameter must be the last one
-     * (as it is generated that way by the sign() method, it should
-     * never be a problem).
-     *
-     * @param string $uri A signed URI
-     *
-     * @return bool True if the URI is signed correctly, false otherwise
-     */
-    public function check($uri)
-    {
-        $url = parse_url($uri);
-        if (isset($url['query'])) {
-            parse_str($url['query'], $params);
-        } else {
-            $params = array();
-        }
-
-        if (empty($params['_hash'])) {
-            return false;
-        }
-
-        $hash = urlencode($params['_hash']);
-        unset($params['_hash']);
-
-        return $this->computeHash($this->buildUrl($url, $params)) === $hash;
-    }
-
-    private function computeHash($uri)
-    {
-        return urlencode(base64_encode(hash_hmac('sha256', $uri, $this->secret, true)));
-    }
-
-    private function buildUrl(array $url, array $params = array())
-    {
-        ksort($params);
-        $url['query'] = http_build_query($params, '', '&');
-
-        $scheme = isset($url['scheme']) ? $url['scheme'].'://' : '';
-        $host = isset($url['host']) ? $url['host'] : '';
-        $port = isset($url['port']) ? ':'.$url['port'] : '';
-        $user = isset($url['user']) ? $url['user'] : '';
-        $pass = isset($url['pass']) ? ':'.$url['pass']  : '';
-        $pass = ($user || $pass) ? "$pass@" : '';
-        $path = isset($url['path']) ? $url['path'] : '';
-        $query = isset($url['query']) && $url['query'] ? '?'.$url['query'] : '';
-        $fragment = isset($url['fragment']) ? '#'.$url['fragment'] : '';
-
-        return $scheme.$user.$pass.$host.$port.$path.$query.$fragment;
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/composer.json b/core/vendor/symfony/http-kernel/composer.json
deleted file mode 100644
index a63b6b3..0000000
--- a/core/vendor/symfony/http-kernel/composer.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-    "name": "symfony/http-kernel",
-    "type": "library",
-    "description": "Symfony HttpKernel Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9",
-        "symfony/event-dispatcher": "~2.6,>=2.6.7",
-        "symfony/http-foundation": "~2.5,>=2.5.4",
-        "symfony/debug": "~2.6,>=2.6.2",
-        "psr/log": "~1.0"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/browser-kit": "~2.3",
-        "symfony/class-loader": "~2.1",
-        "symfony/config": "~2.7",
-        "symfony/console": "~2.3",
-        "symfony/css-selector": "~2.0,>=2.0.5",
-        "symfony/dependency-injection": "~2.2",
-        "symfony/dom-crawler": "~2.0,>=2.0.5",
-        "symfony/expression-language": "~2.4",
-        "symfony/finder": "~2.0,>=2.0.5",
-        "symfony/process": "~2.0,>=2.0.5",
-        "symfony/routing": "~2.2",
-        "symfony/stopwatch": "~2.3",
-        "symfony/templating": "~2.2",
-        "symfony/translation": "~2.0,>=2.0.5",
-        "symfony/var-dumper": "~2.6"
-    },
-    "conflict": {
-        "symfony/config": "<2.7"
-    },
-    "suggest": {
-        "symfony/browser-kit": "",
-        "symfony/class-loader": "",
-        "symfony/config": "",
-        "symfony/console": "",
-        "symfony/dependency-injection": "",
-        "symfony/finder": "",
-        "symfony/var-dumper": ""
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\HttpKernel\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/http-kernel/phpunit.xml.dist b/core/vendor/symfony/http-kernel/phpunit.xml.dist
deleted file mode 100644
index 1314966..0000000
--- a/core/vendor/symfony/http-kernel/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony HttpKernel Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/process/.gitignore b/core/vendor/symfony/process/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/process/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/process/CHANGELOG.md b/core/vendor/symfony/process/CHANGELOG.md
deleted file mode 100644
index 2f3c1be..0000000
--- a/core/vendor/symfony/process/CHANGELOG.md
+++ /dev/null
@@ -1,40 +0,0 @@
-CHANGELOG
-=========
-
-2.5.0
------
-
- * added support for PTY mode
- * added the convenience method "mustRun"
- * deprecation: Process::setStdin() is deprecated in favor of Process::setInput()
- * deprecation: Process::getStdin() is deprecated in favor of Process::getInput()
- * deprecation: Process::setInput() and ProcessBuilder::setInput() do not accept non-scalar types
-
-2.4.0
------
-
- * added the ability to define an idle timeout
-
-2.3.0
------
-
- * added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows
- * added Process::signal()
- * added Process::getPid()
- * added support for a TTY mode
-
-2.2.0
------
-
- * added ProcessBuilder::setArguments() to reset the arguments on a builder
- * added a way to retrieve the standard and error output incrementally
- * added Process:restart()
-
-2.1.0
------
-
- * added support for non-blocking processes (start(), wait(), isRunning(), stop())
- * enhanced Windows compatibility
- * added Process::getExitCodeText() that returns a string representation for
-   the exit code returned by the process
- * added ProcessBuilder
diff --git a/core/vendor/symfony/process/Exception/ExceptionInterface.php b/core/vendor/symfony/process/Exception/ExceptionInterface.php
deleted file mode 100644
index 75c1c9e..0000000
--- a/core/vendor/symfony/process/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Exception;
-
-/**
- * Marker Interface for the Process Component.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/process/Exception/InvalidArgumentException.php b/core/vendor/symfony/process/Exception/InvalidArgumentException.php
deleted file mode 100644
index 926ee21..0000000
--- a/core/vendor/symfony/process/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Exception;
-
-/**
- * InvalidArgumentException for the Process Component.
- *
- * @author Romain Neutron <imprec@gmail.com>
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/process/Exception/LogicException.php b/core/vendor/symfony/process/Exception/LogicException.php
deleted file mode 100644
index be3d490..0000000
--- a/core/vendor/symfony/process/Exception/LogicException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Exception;
-
-/**
- * LogicException for the Process Component.
- *
- * @author Romain Neutron <imprec@gmail.com>
- */
-class LogicException extends \LogicException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/process/Exception/ProcessFailedException.php b/core/vendor/symfony/process/Exception/ProcessFailedException.php
deleted file mode 100644
index 7523a5e..0000000
--- a/core/vendor/symfony/process/Exception/ProcessFailedException.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Exception;
-
-use Symfony\Component\Process\Process;
-
-/**
- * Exception for failed processes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ProcessFailedException extends RuntimeException
-{
-    private $process;
-
-    public function __construct(Process $process)
-    {
-        if ($process->isSuccessful()) {
-            throw new InvalidArgumentException('Expected a failed process, but the given process was successful.');
-        }
-
-        $error = sprintf('The command "%s" failed.'."\nExit Code: %s(%s)",
-            $process->getCommandLine(),
-            $process->getExitCode(),
-            $process->getExitCodeText()
-        );
-
-        if (!$process->isOutputDisabled()) {
-            $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s",
-                $process->getOutput(),
-                $process->getErrorOutput()
-            );
-        }
-
-        parent::__construct($error);
-
-        $this->process = $process;
-    }
-
-    public function getProcess()
-    {
-        return $this->process;
-    }
-}
diff --git a/core/vendor/symfony/process/Exception/ProcessTimedOutException.php b/core/vendor/symfony/process/Exception/ProcessTimedOutException.php
deleted file mode 100644
index d451146..0000000
--- a/core/vendor/symfony/process/Exception/ProcessTimedOutException.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Exception;
-
-use Symfony\Component\Process\Process;
-
-/**
- * Exception that is thrown when a process times out.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ProcessTimedOutException extends RuntimeException
-{
-    const TYPE_GENERAL = 1;
-    const TYPE_IDLE = 2;
-
-    private $process;
-    private $timeoutType;
-
-    public function __construct(Process $process, $timeoutType)
-    {
-        $this->process = $process;
-        $this->timeoutType = $timeoutType;
-
-        parent::__construct(sprintf(
-            'The process "%s" exceeded the timeout of %s seconds.',
-            $process->getCommandLine(),
-            $this->getExceededTimeout()
-        ));
-    }
-
-    public function getProcess()
-    {
-        return $this->process;
-    }
-
-    public function isGeneralTimeout()
-    {
-        return $this->timeoutType === self::TYPE_GENERAL;
-    }
-
-    public function isIdleTimeout()
-    {
-        return $this->timeoutType === self::TYPE_IDLE;
-    }
-
-    public function getExceededTimeout()
-    {
-        switch ($this->timeoutType) {
-            case self::TYPE_GENERAL:
-                return $this->process->getTimeout();
-
-            case self::TYPE_IDLE:
-                return $this->process->getIdleTimeout();
-
-            default:
-                throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType));
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/Exception/RuntimeException.php b/core/vendor/symfony/process/Exception/RuntimeException.php
deleted file mode 100644
index adead25..0000000
--- a/core/vendor/symfony/process/Exception/RuntimeException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Exception;
-
-/**
- * RuntimeException for the Process Component.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/process/ExecutableFinder.php b/core/vendor/symfony/process/ExecutableFinder.php
deleted file mode 100644
index a9c0a5c..0000000
--- a/core/vendor/symfony/process/ExecutableFinder.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process;
-
-/**
- * Generic executable finder.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ExecutableFinder
-{
-    private $suffixes = array('.exe', '.bat', '.cmd', '.com');
-
-    /**
-     * Replaces default suffixes of executable.
-     *
-     * @param array $suffixes
-     */
-    public function setSuffixes(array $suffixes)
-    {
-        $this->suffixes = $suffixes;
-    }
-
-    /**
-     * Adds new possible suffix to check for executable.
-     *
-     * @param string $suffix
-     */
-    public function addSuffix($suffix)
-    {
-        $this->suffixes[] = $suffix;
-    }
-
-    /**
-     * Finds an executable by name.
-     *
-     * @param string $name      The executable name (without the extension)
-     * @param string $default   The default to return if no executable is found
-     * @param array  $extraDirs Additional dirs to check into
-     *
-     * @return string The executable path or default value
-     */
-    public function find($name, $default = null, array $extraDirs = array())
-    {
-        if (ini_get('open_basedir')) {
-            $searchPath = explode(PATH_SEPARATOR, ini_get('open_basedir'));
-            $dirs = array();
-            foreach ($searchPath as $path) {
-                if (is_dir($path)) {
-                    $dirs[] = $path;
-                } else {
-                    if (basename($path) == $name && is_executable($path)) {
-                        return $path;
-                    }
-                }
-            }
-        } else {
-            $dirs = array_merge(
-                explode(PATH_SEPARATOR, getenv('PATH') ?: getenv('Path')),
-                $extraDirs
-            );
-        }
-
-        $suffixes = array('');
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $pathExt = getenv('PATHEXT');
-            $suffixes = $pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes;
-        }
-        foreach ($suffixes as $suffix) {
-            foreach ($dirs as $dir) {
-                if (is_file($file = $dir.DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === DIRECTORY_SEPARATOR || is_executable($file))) {
-                    return $file;
-                }
-            }
-        }
-
-        return $default;
-    }
-}
diff --git a/core/vendor/symfony/process/LICENSE b/core/vendor/symfony/process/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/process/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/process/PhpExecutableFinder.php b/core/vendor/symfony/process/PhpExecutableFinder.php
deleted file mode 100644
index f8f57cc..0000000
--- a/core/vendor/symfony/process/PhpExecutableFinder.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process;
-
-/**
- * An executable finder specifically designed for the PHP executable.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class PhpExecutableFinder
-{
-    private $executableFinder;
-
-    public function __construct()
-    {
-        $this->executableFinder = new ExecutableFinder();
-    }
-
-    /**
-     * Finds The PHP executable.
-     *
-     * @param bool $includeArgs Whether or not include command arguments
-     *
-     * @return string|false The PHP executable path or false if it cannot be found
-     */
-    public function find($includeArgs = true)
-    {
-        // HHVM support
-        if (defined('HHVM_VERSION')) {
-            return (getenv('PHP_BINARY') ?: PHP_BINARY).($includeArgs ? ' '.implode(' ', $this->findArguments()) : '');
-        }
-
-        // PHP_BINARY return the current sapi executable
-        if (defined('PHP_BINARY') && PHP_BINARY && in_array(PHP_SAPI, array('cli', 'cli-server')) && is_file(PHP_BINARY)) {
-            return PHP_BINARY;
-        }
-
-        if ($php = getenv('PHP_PATH')) {
-            if (!is_executable($php)) {
-                return false;
-            }
-
-            return $php;
-        }
-
-        if ($php = getenv('PHP_PEAR_PHP_BIN')) {
-            if (is_executable($php)) {
-                return $php;
-            }
-        }
-
-        $dirs = array(PHP_BINDIR);
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $dirs[] = 'C:\xampp\php\\';
-        }
-
-        return $this->executableFinder->find('php', false, $dirs);
-    }
-
-    /**
-     * Finds the PHP executable arguments.
-     *
-     * @return array The PHP executable arguments
-     */
-    public function findArguments()
-    {
-        $arguments = array();
-
-        // HHVM support
-        if (defined('HHVM_VERSION')) {
-            $arguments[] = '--php';
-        }
-
-        return $arguments;
-    }
-}
diff --git a/core/vendor/symfony/process/PhpProcess.php b/core/vendor/symfony/process/PhpProcess.php
deleted file mode 100644
index 6a58587..0000000
--- a/core/vendor/symfony/process/PhpProcess.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process;
-
-use Symfony\Component\Process\Exception\RuntimeException;
-
-/**
- * PhpProcess runs a PHP script in an independent process.
- *
- * $p = new PhpProcess('<?php echo "foo"; ?>');
- * $p->run();
- * print $p->getOutput()."\n";
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class PhpProcess extends Process
-{
-    /**
-     * Constructor.
-     *
-     * @param string $script  The PHP script to run (as a string)
-     * @param string $cwd     The working directory
-     * @param array  $env     The environment variables
-     * @param int    $timeout The timeout in seconds
-     * @param array  $options An array of options for proc_open
-     *
-     * @api
-     */
-    public function __construct($script, $cwd = null, array $env = array(), $timeout = 60, array $options = array())
-    {
-        $executableFinder = new PhpExecutableFinder();
-        if (false === $php = $executableFinder->find()) {
-            $php = null;
-        }
-
-        parent::__construct($php, $cwd, $env, $script, $timeout, $options);
-    }
-
-    /**
-     * Sets the path to the PHP binary to use.
-     *
-     * @api
-     */
-    public function setPhpBinary($php)
-    {
-        $this->setCommandLine($php);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function start($callback = null)
-    {
-        if (null === $this->getCommandLine()) {
-            throw new RuntimeException('Unable to find the PHP executable.');
-        }
-
-        parent::start($callback);
-    }
-}
diff --git a/core/vendor/symfony/process/Pipes/AbstractPipes.php b/core/vendor/symfony/process/Pipes/AbstractPipes.php
deleted file mode 100644
index d8b57d0..0000000
--- a/core/vendor/symfony/process/Pipes/AbstractPipes.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Pipes;
-
-/**
- * @author Romain Neutron <imprec@gmail.com>
- *
- * @internal
- */
-abstract class AbstractPipes implements PipesInterface
-{
-    /** @var array */
-    public $pipes = array();
-
-    /** @var string */
-    protected $inputBuffer = '';
-    /** @var resource|null */
-    protected $input;
-
-    /** @var bool */
-    private $blocked = true;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        foreach ($this->pipes as $pipe) {
-            fclose($pipe);
-        }
-        $this->pipes = array();
-    }
-
-    /**
-     * Returns true if a system call has been interrupted.
-     *
-     * @return bool
-     */
-    protected function hasSystemCallBeenInterrupted()
-    {
-        $lastError = error_get_last();
-
-        // stream_select returns false when the `select` system call is interrupted by an incoming signal
-        return isset($lastError['message']) && false !== stripos($lastError['message'], 'interrupted system call');
-    }
-
-    /**
-     * Unblocks streams
-     */
-    protected function unblock()
-    {
-        if (!$this->blocked) {
-            return;
-        }
-
-        foreach ($this->pipes as $pipe) {
-            stream_set_blocking($pipe, 0);
-        }
-        if (null !== $this->input) {
-            stream_set_blocking($this->input, 0);
-        }
-
-        $this->blocked = false;
-    }
-}
diff --git a/core/vendor/symfony/process/Pipes/PipesInterface.php b/core/vendor/symfony/process/Pipes/PipesInterface.php
deleted file mode 100644
index 09d3f61..0000000
--- a/core/vendor/symfony/process/Pipes/PipesInterface.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Pipes;
-
-/**
- * PipesInterface manages descriptors and pipes for the use of proc_open.
- *
- * @author Romain Neutron <imprec@gmail.com>
- *
- * @internal
- */
-interface PipesInterface
-{
-    const CHUNK_SIZE = 16384;
-
-    /**
-     * Returns an array of descriptors for the use of proc_open.
-     *
-     * @return array
-     */
-    public function getDescriptors();
-
-    /**
-     * Returns an array of filenames indexed by their related stream in case these pipes use temporary files.
-     *
-     * @return string[]
-     */
-    public function getFiles();
-
-    /**
-     * Reads data in file handles and pipes.
-     *
-     * @param bool $blocking Whether to use blocking calls or not.
-     * @param bool $close    Whether to close pipes if they've reached EOF.
-     *
-     * @return string[] An array of read data indexed by their fd.
-     */
-    public function readAndWrite($blocking, $close = false);
-
-    /**
-     * Returns if the current state has open file handles or pipes.
-     *
-     * @return bool
-     */
-    public function areOpen();
-
-    /**
-     * Closes file handles and pipes.
-     */
-    public function close();
-}
diff --git a/core/vendor/symfony/process/Pipes/UnixPipes.php b/core/vendor/symfony/process/Pipes/UnixPipes.php
deleted file mode 100644
index b384103..0000000
--- a/core/vendor/symfony/process/Pipes/UnixPipes.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Pipes;
-
-use Symfony\Component\Process\Process;
-
-/**
- * UnixPipes implementation uses unix pipes as handles.
- *
- * @author Romain Neutron <imprec@gmail.com>
- *
- * @internal
- */
-class UnixPipes extends AbstractPipes
-{
-    /** @var bool */
-    private $ttyMode;
-    /** @var bool */
-    private $ptyMode;
-    /** @var bool */
-    private $disableOutput;
-
-    public function __construct($ttyMode, $ptyMode, $input, $disableOutput)
-    {
-        $this->ttyMode = (bool) $ttyMode;
-        $this->ptyMode = (bool) $ptyMode;
-        $this->disableOutput = (bool) $disableOutput;
-
-        if (is_resource($input)) {
-            $this->input = $input;
-        } else {
-            $this->inputBuffer = (string) $input;
-        }
-    }
-
-    public function __destruct()
-    {
-        $this->close();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDescriptors()
-    {
-        if ($this->disableOutput) {
-            $nullstream = fopen('/dev/null', 'c');
-
-            return array(
-                array('pipe', 'r'),
-                $nullstream,
-                $nullstream,
-            );
-        }
-
-        if ($this->ttyMode) {
-            return array(
-                array('file', '/dev/tty', 'r'),
-                array('file', '/dev/tty', 'w'),
-                array('file', '/dev/tty', 'w'),
-            );
-        }
-
-        if ($this->ptyMode && Process::isPtySupported()) {
-            return array(
-                array('pty'),
-                array('pty'),
-                array('pty'),
-            );
-        }
-
-        return array(
-            array('pipe', 'r'),
-            array('pipe', 'w'), // stdout
-            array('pipe', 'w'), // stderr
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFiles()
-    {
-        return array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function readAndWrite($blocking, $close = false)
-    {
-        // only stdin is left open, job has been done !
-        // we can now close it
-        if (1 === count($this->pipes) && array(0) === array_keys($this->pipes)) {
-            fclose($this->pipes[0]);
-            unset($this->pipes[0]);
-        }
-
-        if (empty($this->pipes)) {
-            return array();
-        }
-
-        $this->unblock();
-
-        $read = array();
-
-        if (null !== $this->input) {
-            // if input is a resource, let's add it to stream_select argument to
-            // fill a buffer
-            $r = array_merge($this->pipes, array('input' => $this->input));
-        } else {
-            $r = $this->pipes;
-        }
-        // discard read on stdin
-        unset($r[0]);
-
-        $w = isset($this->pipes[0]) ? array($this->pipes[0]) : null;
-        $e = null;
-
-        // let's have a look if something changed in streams
-        if (false === $n = @stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) {
-            // if a system call has been interrupted, forget about it, let's try again
-            // otherwise, an error occurred, let's reset pipes
-            if (!$this->hasSystemCallBeenInterrupted()) {
-                $this->pipes = array();
-            }
-
-            return $read;
-        }
-
-        // nothing has changed
-        if (0 === $n) {
-            return $read;
-        }
-
-        foreach ($r as $pipe) {
-            // prior PHP 5.4 the array passed to stream_select is modified and
-            // lose key association, we have to find back the key
-            $type = (false !== $found = array_search($pipe, $this->pipes)) ? $found : 'input';
-            $data = '';
-            while ('' !== $dataread = (string) fread($pipe, self::CHUNK_SIZE)) {
-                $data .= $dataread;
-            }
-
-            if ('' !== $data) {
-                if ($type === 'input') {
-                    $this->inputBuffer .= $data;
-                } else {
-                    $read[$type] = $data;
-                }
-            }
-
-            if (false === $data || (true === $close && feof($pipe) && '' === $data)) {
-                if ($type === 'input') {
-                    // no more data to read on input resource
-                    // use an empty buffer in the next reads
-                    $this->input = null;
-                } else {
-                    fclose($this->pipes[$type]);
-                    unset($this->pipes[$type]);
-                }
-            }
-        }
-
-        if (null !== $w && 0 < count($w)) {
-            while (strlen($this->inputBuffer)) {
-                $written = fwrite($w[0], $this->inputBuffer, 2 << 18); // write 512k
-                if ($written > 0) {
-                    $this->inputBuffer = (string) substr($this->inputBuffer, $written);
-                } else {
-                    break;
-                }
-            }
-        }
-
-        // no input to read on resource, buffer is empty and stdin still open
-        if ('' === $this->inputBuffer && null === $this->input && isset($this->pipes[0])) {
-            fclose($this->pipes[0]);
-            unset($this->pipes[0]);
-        }
-
-        return $read;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function areOpen()
-    {
-        return (bool) $this->pipes;
-    }
-
-    /**
-     * Creates a new UnixPipes instance
-     *
-     * @param Process         $process
-     * @param string|resource $input
-     *
-     * @return UnixPipes
-     */
-    public static function create(Process $process, $input)
-    {
-        return new static($process->isTty(), $process->isPty(), $input, $process->isOutputDisabled());
-    }
-}
diff --git a/core/vendor/symfony/process/Pipes/WindowsPipes.php b/core/vendor/symfony/process/Pipes/WindowsPipes.php
deleted file mode 100644
index 01dd5d0..0000000
--- a/core/vendor/symfony/process/Pipes/WindowsPipes.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Pipes;
-
-use Symfony\Component\Process\Process;
-use Symfony\Component\Process\Exception\RuntimeException;
-
-/**
- * WindowsPipes implementation uses temporary files as handles.
- *
- * @see https://bugs.php.net/bug.php?id=51800
- * @see https://bugs.php.net/bug.php?id=65650
- *
- * @author Romain Neutron <imprec@gmail.com>
- *
- * @internal
- */
-class WindowsPipes extends AbstractPipes
-{
-    /** @var array */
-    private $files = array();
-    /** @var array */
-    private $fileHandles = array();
-    /** @var array */
-    private $readBytes = array(
-        Process::STDOUT => 0,
-        Process::STDERR => 0,
-    );
-    /** @var bool */
-    private $disableOutput;
-
-    public function __construct($disableOutput, $input)
-    {
-        $this->disableOutput = (bool) $disableOutput;
-
-        if (!$this->disableOutput) {
-            // Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big.
-            // Workaround for this problem is to use temporary files instead of pipes on Windows platform.
-            //
-            // @see https://bugs.php.net/bug.php?id=51800
-            $this->files = array(
-                Process::STDOUT => tempnam(sys_get_temp_dir(), 'sf_proc_stdout'),
-                Process::STDERR => tempnam(sys_get_temp_dir(), 'sf_proc_stderr'),
-            );
-            foreach ($this->files as $offset => $file) {
-                $this->fileHandles[$offset] = fopen($this->files[$offset], 'rb');
-                if (false === $this->fileHandles[$offset]) {
-                    throw new RuntimeException('A temporary file could not be opened to write the process output to, verify that your TEMP environment variable is writable');
-                }
-            }
-        }
-
-        if (is_resource($input)) {
-            $this->input = $input;
-        } else {
-            $this->inputBuffer = $input;
-        }
-    }
-
-    public function __destruct()
-    {
-        $this->close();
-        $this->removeFiles();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDescriptors()
-    {
-        if ($this->disableOutput) {
-            $nullstream = fopen('NUL', 'c');
-
-            return array(
-                array('pipe', 'r'),
-                $nullstream,
-                $nullstream,
-            );
-        }
-
-        // We're not using pipe on Windows platform as it hangs (https://bugs.php.net/bug.php?id=51800)
-        // We're not using file handles as it can produce corrupted output https://bugs.php.net/bug.php?id=65650
-        // So we redirect output within the commandline and pass the nul device to the process
-        return array(
-            array('pipe', 'r'),
-            array('file', 'NUL', 'w'),
-            array('file', 'NUL', 'w'),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFiles()
-    {
-        return $this->files;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function readAndWrite($blocking, $close = false)
-    {
-        $this->write($blocking, $close);
-
-        $read = array();
-        $fh = $this->fileHandles;
-        foreach ($fh as $type => $fileHandle) {
-            if (0 !== fseek($fileHandle, $this->readBytes[$type])) {
-                continue;
-            }
-            $data = '';
-            $dataread = null;
-            while (!feof($fileHandle)) {
-                if (false !== $dataread = fread($fileHandle, self::CHUNK_SIZE)) {
-                    $data .= $dataread;
-                }
-            }
-            if (0 < $length = strlen($data)) {
-                $this->readBytes[$type] += $length;
-                $read[$type] = $data;
-            }
-
-            if (false === $dataread || (true === $close && feof($fileHandle) && '' === $data)) {
-                fclose($this->fileHandles[$type]);
-                unset($this->fileHandles[$type]);
-            }
-        }
-
-        return $read;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function areOpen()
-    {
-        return (bool) $this->pipes && (bool) $this->fileHandles;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        parent::close();
-        foreach ($this->fileHandles as $handle) {
-            fclose($handle);
-        }
-        $this->fileHandles = array();
-    }
-
-    /**
-     * Creates a new WindowsPipes instance.
-     *
-     * @param Process $process The process
-     * @param $input
-     *
-     * @return WindowsPipes
-     */
-    public static function create(Process $process, $input)
-    {
-        return new static($process->isOutputDisabled(), $input);
-    }
-
-    /**
-     * Removes temporary files
-     */
-    private function removeFiles()
-    {
-        foreach ($this->files as $filename) {
-            if (file_exists($filename)) {
-                @unlink($filename);
-            }
-        }
-        $this->files = array();
-    }
-
-    /**
-     * Writes input to stdin
-     *
-     * @param bool $blocking
-     * @param bool $close
-     */
-    private function write($blocking, $close)
-    {
-        if (empty($this->pipes)) {
-            return;
-        }
-
-        $this->unblock();
-
-        $r = null !== $this->input ? array('input' => $this->input) : null;
-        $w = isset($this->pipes[0]) ? array($this->pipes[0]) : null;
-        $e = null;
-
-        // let's have a look if something changed in streams
-        if (false === $n = @stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) {
-            // if a system call has been interrupted, forget about it, let's try again
-            // otherwise, an error occurred, let's reset pipes
-            if (!$this->hasSystemCallBeenInterrupted()) {
-                $this->pipes = array();
-            }
-
-            return;
-        }
-
-        // nothing has changed
-        if (0 === $n) {
-            return;
-        }
-
-        if (null !== $w && 0 < count($r)) {
-            $data = '';
-            while ($dataread = fread($r['input'], self::CHUNK_SIZE)) {
-                $data .= $dataread;
-            }
-
-            $this->inputBuffer .= $data;
-
-            if (false === $data || (true === $close && feof($r['input']) && '' === $data)) {
-                // no more data to read on input resource
-                // use an empty buffer in the next reads
-                $this->input = null;
-            }
-        }
-
-        if (null !== $w && 0 < count($w)) {
-            while (strlen($this->inputBuffer)) {
-                $written = fwrite($w[0], $this->inputBuffer, 2 << 18);
-                if ($written > 0) {
-                    $this->inputBuffer = (string) substr($this->inputBuffer, $written);
-                } else {
-                    break;
-                }
-            }
-        }
-
-        // no input to read on resource, buffer is empty and stdin still open
-        if ('' === $this->inputBuffer && null === $this->input && isset($this->pipes[0])) {
-            fclose($this->pipes[0]);
-            unset($this->pipes[0]);
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/Process.php b/core/vendor/symfony/process/Process.php
deleted file mode 100644
index 1474d69..0000000
--- a/core/vendor/symfony/process/Process.php
+++ /dev/null
@@ -1,1526 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process;
-
-use Symfony\Component\Process\Exception\InvalidArgumentException;
-use Symfony\Component\Process\Exception\LogicException;
-use Symfony\Component\Process\Exception\ProcessFailedException;
-use Symfony\Component\Process\Exception\ProcessTimedOutException;
-use Symfony\Component\Process\Exception\RuntimeException;
-use Symfony\Component\Process\Pipes\PipesInterface;
-use Symfony\Component\Process\Pipes\UnixPipes;
-use Symfony\Component\Process\Pipes\WindowsPipes;
-
-/**
- * Process is a thin wrapper around proc_* functions to easily
- * start independent PHP processes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Romain Neutron <imprec@gmail.com>
- *
- * @api
- */
-class Process
-{
-    const ERR = 'err';
-    const OUT = 'out';
-
-    const STATUS_READY = 'ready';
-    const STATUS_STARTED = 'started';
-    const STATUS_TERMINATED = 'terminated';
-
-    const STDIN = 0;
-    const STDOUT = 1;
-    const STDERR = 2;
-
-    // Timeout Precision in seconds.
-    const TIMEOUT_PRECISION = 0.2;
-
-    private $callback;
-    private $commandline;
-    private $cwd;
-    private $env;
-    private $input;
-    private $starttime;
-    private $lastOutputTime;
-    private $timeout;
-    private $idleTimeout;
-    private $options;
-    private $exitcode;
-    private $fallbackExitcode;
-    private $processInformation;
-    private $outputDisabled = false;
-    private $stdout;
-    private $stderr;
-    private $enhanceWindowsCompatibility = true;
-    private $enhanceSigchildCompatibility;
-    private $process;
-    private $status = self::STATUS_READY;
-    private $incrementalOutputOffset = 0;
-    private $incrementalErrorOutputOffset = 0;
-    private $tty;
-    private $pty;
-
-    private $useFileHandles = false;
-    /** @var PipesInterface */
-    private $processPipes;
-
-    private $latestSignal;
-
-    private static $sigchild;
-
-    /**
-     * Exit codes translation table.
-     *
-     * User-defined errors must use exit codes in the 64-113 range.
-     *
-     * @var array
-     */
-    public static $exitCodes = array(
-        0 => 'OK',
-        1 => 'General error',
-        2 => 'Misuse of shell builtins',
-
-        126 => 'Invoked command cannot execute',
-        127 => 'Command not found',
-        128 => 'Invalid exit argument',
-
-        // signals
-        129 => 'Hangup',
-        130 => 'Interrupt',
-        131 => 'Quit and dump core',
-        132 => 'Illegal instruction',
-        133 => 'Trace/breakpoint trap',
-        134 => 'Process aborted',
-        135 => 'Bus error: "access to undefined portion of memory object"',
-        136 => 'Floating point exception: "erroneous arithmetic operation"',
-        137 => 'Kill (terminate immediately)',
-        138 => 'User-defined 1',
-        139 => 'Segmentation violation',
-        140 => 'User-defined 2',
-        141 => 'Write to pipe with no one reading',
-        142 => 'Signal raised by alarm',
-        143 => 'Termination (request to terminate)',
-        // 144 - not defined
-        145 => 'Child process terminated, stopped (or continued*)',
-        146 => 'Continue if stopped',
-        147 => 'Stop executing temporarily',
-        148 => 'Terminal stop signal',
-        149 => 'Background process attempting to read from tty ("in")',
-        150 => 'Background process attempting to write to tty ("out")',
-        151 => 'Urgent data available on socket',
-        152 => 'CPU time limit exceeded',
-        153 => 'File size limit exceeded',
-        154 => 'Signal raised by timer counting virtual time: "virtual timer expired"',
-        155 => 'Profiling timer expired',
-        // 156 - not defined
-        157 => 'Pollable event',
-        // 158 - not defined
-        159 => 'Bad syscall',
-    );
-
-    /**
-     * Constructor.
-     *
-     * @param string         $commandline The command line to run
-     * @param string|null    $cwd         The working directory or null to use the working dir of the current PHP process
-     * @param array|null     $env         The environment variables or null to inherit
-     * @param string|null    $input       The input
-     * @param int|float|null $timeout     The timeout in seconds or null to disable
-     * @param array          $options     An array of options for proc_open
-     *
-     * @throws RuntimeException When proc_open is not installed
-     *
-     * @api
-     */
-    public function __construct($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = array())
-    {
-        if (!function_exists('proc_open')) {
-            throw new RuntimeException('The Process class relies on proc_open, which is not available on your PHP installation.');
-        }
-
-        $this->commandline = $commandline;
-        $this->cwd = $cwd;
-
-        // on Windows, if the cwd changed via chdir(), proc_open defaults to the dir where PHP was started
-        // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected
-        // @see : https://bugs.php.net/bug.php?id=51800
-        // @see : https://bugs.php.net/bug.php?id=50524
-        if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || '\\' === DIRECTORY_SEPARATOR)) {
-            $this->cwd = getcwd();
-        }
-        if (null !== $env) {
-            $this->setEnv($env);
-        }
-
-        $this->input = $input;
-        $this->setTimeout($timeout);
-        $this->useFileHandles = '\\' === DIRECTORY_SEPARATOR;
-        $this->pty = false;
-        $this->enhanceWindowsCompatibility = true;
-        $this->enhanceSigchildCompatibility = '\\' !== DIRECTORY_SEPARATOR && $this->isSigchildEnabled();
-        $this->options = array_replace(array('suppress_errors' => true, 'binary_pipes' => true), $options);
-    }
-
-    public function __destruct()
-    {
-        // stop() will check if we have a process running.
-        $this->stop();
-    }
-
-    public function __clone()
-    {
-        $this->resetProcessData();
-    }
-
-    /**
-     * Runs the process.
-     *
-     * The callback receives the type of output (out or err) and
-     * some bytes from the output in real-time. It allows to have feedback
-     * from the independent process during execution.
-     *
-     * The STDOUT and STDERR are also available after the process is finished
-     * via the getOutput() and getErrorOutput() methods.
-     *
-     * @param callable|null $callback A PHP callback to run whenever there is some
-     *                                output available on STDOUT or STDERR
-     *
-     * @return int The exit status code
-     *
-     * @throws RuntimeException When process can't be launched
-     * @throws RuntimeException When process stopped after receiving signal
-     * @throws LogicException   In case a callback is provided and output has been disabled
-     *
-     * @api
-     */
-    public function run($callback = null)
-    {
-        $this->start($callback);
-
-        return $this->wait();
-    }
-
-    /**
-     * Runs the process.
-     *
-     * This is identical to run() except that an exception is thrown if the process
-     * exits with a non-zero exit code.
-     *
-     * @param callable|null $callback
-     *
-     * @return self
-     *
-     * @throws RuntimeException       if PHP was compiled with --enable-sigchild and the enhanced sigchild compatibility mode is not enabled
-     * @throws ProcessFailedException if the process didn't terminate successfully
-     */
-    public function mustRun($callback = null)
-    {
-        if ($this->isSigchildEnabled() && !$this->enhanceSigchildCompatibility) {
-            throw new RuntimeException('This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.');
-        }
-
-        if (0 !== $this->run($callback)) {
-            throw new ProcessFailedException($this);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Starts the process and returns after writing the input to STDIN.
-     *
-     * This method blocks until all STDIN data is sent to the process then it
-     * returns while the process runs in the background.
-     *
-     * The termination of the process can be awaited with wait().
-     *
-     * The callback receives the type of output (out or err) and some bytes from
-     * the output in real-time while writing the standard input to the process.
-     * It allows to have feedback from the independent process during execution.
-     * If there is no callback passed, the wait() method can be called
-     * with true as a second parameter then the callback will get all data occurred
-     * in (and since) the start call.
-     *
-     * @param callable|null $callback A PHP callback to run whenever there is some
-     *                                output available on STDOUT or STDERR
-     *
-     * @throws RuntimeException When process can't be launched
-     * @throws RuntimeException When process is already running
-     * @throws LogicException   In case a callback is provided and output has been disabled
-     */
-    public function start($callback = null)
-    {
-        if ($this->isRunning()) {
-            throw new RuntimeException('Process is already running');
-        }
-        if ($this->outputDisabled && null !== $callback) {
-            throw new LogicException('Output has been disabled, enable it to allow the use of a callback.');
-        }
-
-        $this->resetProcessData();
-        $this->starttime = $this->lastOutputTime = microtime(true);
-        $this->callback = $this->buildCallback($callback);
-        $descriptors = $this->getDescriptors();
-
-        $commandline = $this->commandline;
-
-        if ('\\' === DIRECTORY_SEPARATOR && $this->enhanceWindowsCompatibility) {
-            $commandline = 'cmd /V:ON /E:ON /C "('.$commandline.')';
-            foreach ($this->processPipes->getFiles() as $offset => $filename) {
-                $commandline .= ' '.$offset.'>'.ProcessUtils::escapeArgument($filename);
-            }
-            $commandline .= '"';
-
-            if (!isset($this->options['bypass_shell'])) {
-                $this->options['bypass_shell'] = true;
-            }
-        }
-
-        $this->process = proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $this->env, $this->options);
-
-        if (!is_resource($this->process)) {
-            throw new RuntimeException('Unable to launch a new process.');
-        }
-        $this->status = self::STATUS_STARTED;
-
-        if ($this->tty) {
-            return;
-        }
-
-        $this->updateStatus(false);
-        $this->checkTimeout();
-    }
-
-    /**
-     * Restarts the process.
-     *
-     * Be warned that the process is cloned before being started.
-     *
-     * @param callable|null $callback A PHP callback to run whenever there is some
-     *                                output available on STDOUT or STDERR
-     *
-     * @return Process The new process
-     *
-     * @throws RuntimeException When process can't be launched
-     * @throws RuntimeException When process is already running
-     *
-     * @see start()
-     */
-    public function restart($callback = null)
-    {
-        if ($this->isRunning()) {
-            throw new RuntimeException('Process is already running');
-        }
-
-        $process = clone $this;
-        $process->start($callback);
-
-        return $process;
-    }
-
-    /**
-     * Waits for the process to terminate.
-     *
-     * The callback receives the type of output (out or err) and some bytes
-     * from the output in real-time while writing the standard input to the process.
-     * It allows to have feedback from the independent process during execution.
-     *
-     * @param callable|null $callback A valid PHP callback
-     *
-     * @return int The exitcode of the process
-     *
-     * @throws RuntimeException When process timed out
-     * @throws RuntimeException When process stopped after receiving signal
-     * @throws LogicException   When process is not yet started
-     */
-    public function wait($callback = null)
-    {
-        $this->requireProcessIsStarted(__FUNCTION__);
-
-        $this->updateStatus(false);
-        if (null !== $callback) {
-            $this->callback = $this->buildCallback($callback);
-        }
-
-        do {
-            $this->checkTimeout();
-            $running = '\\' === DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
-            $close = '\\' !== DIRECTORY_SEPARATOR || !$running;
-            $this->readPipes(true, $close);
-        } while ($running);
-
-        while ($this->isRunning()) {
-            usleep(1000);
-        }
-
-        if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) {
-            throw new RuntimeException(sprintf('The process has been signaled with signal "%s".', $this->processInformation['termsig']));
-        }
-
-        return $this->exitcode;
-    }
-
-    /**
-     * Returns the Pid (process identifier), if applicable.
-     *
-     * @return int|null The process id if running, null otherwise
-     *
-     * @throws RuntimeException In case --enable-sigchild is activated
-     */
-    public function getPid()
-    {
-        if ($this->isSigchildEnabled()) {
-            throw new RuntimeException('This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.');
-        }
-
-        $this->updateStatus(false);
-
-        return $this->isRunning() ? $this->processInformation['pid'] : null;
-    }
-
-    /**
-     * Sends a POSIX signal to the process.
-     *
-     * @param int $signal A valid POSIX signal (see http://www.php.net/manual/en/pcntl.constants.php)
-     *
-     * @return Process
-     *
-     * @throws LogicException   In case the process is not running
-     * @throws RuntimeException In case --enable-sigchild is activated
-     * @throws RuntimeException In case of failure
-     */
-    public function signal($signal)
-    {
-        $this->doSignal($signal, true);
-
-        return $this;
-    }
-
-    /**
-     * Disables fetching output and error output from the underlying process.
-     *
-     * @return Process
-     *
-     * @throws RuntimeException In case the process is already running
-     * @throws LogicException   if an idle timeout is set
-     */
-    public function disableOutput()
-    {
-        if ($this->isRunning()) {
-            throw new RuntimeException('Disabling output while the process is running is not possible.');
-        }
-        if (null !== $this->idleTimeout) {
-            throw new LogicException('Output can not be disabled while an idle timeout is set.');
-        }
-
-        $this->outputDisabled = true;
-
-        return $this;
-    }
-
-    /**
-     * Enables fetching output and error output from the underlying process.
-     *
-     * @return Process
-     *
-     * @throws RuntimeException In case the process is already running
-     */
-    public function enableOutput()
-    {
-        if ($this->isRunning()) {
-            throw new RuntimeException('Enabling output while the process is running is not possible.');
-        }
-
-        $this->outputDisabled = false;
-
-        return $this;
-    }
-
-    /**
-     * Returns true in case the output is disabled, false otherwise.
-     *
-     * @return bool
-     */
-    public function isOutputDisabled()
-    {
-        return $this->outputDisabled;
-    }
-
-    /**
-     * Returns the current output of the process (STDOUT).
-     *
-     * @return string The process output
-     *
-     * @throws LogicException in case the output has been disabled
-     * @throws LogicException In case the process is not started
-     *
-     * @api
-     */
-    public function getOutput()
-    {
-        if ($this->outputDisabled) {
-            throw new LogicException('Output has been disabled.');
-        }
-
-        $this->requireProcessIsStarted(__FUNCTION__);
-
-        $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
-
-        return $this->stdout;
-    }
-
-    /**
-     * Returns the output incrementally.
-     *
-     * In comparison with the getOutput method which always return the whole
-     * output, this one returns the new output since the last call.
-     *
-     * @throws LogicException in case the output has been disabled
-     * @throws LogicException In case the process is not started
-     *
-     * @return string The process output since the last call
-     */
-    public function getIncrementalOutput()
-    {
-        $this->requireProcessIsStarted(__FUNCTION__);
-
-        $data = $this->getOutput();
-
-        $latest = substr($data, $this->incrementalOutputOffset);
-
-        if (false === $latest) {
-            return '';
-        }
-
-        $this->incrementalOutputOffset = strlen($data);
-
-        return $latest;
-    }
-
-    /**
-     * Clears the process output.
-     *
-     * @return Process
-     */
-    public function clearOutput()
-    {
-        $this->stdout = '';
-        $this->incrementalOutputOffset = 0;
-
-        return $this;
-    }
-
-    /**
-     * Returns the current error output of the process (STDERR).
-     *
-     * @return string The process error output
-     *
-     * @throws LogicException in case the output has been disabled
-     * @throws LogicException In case the process is not started
-     *
-     * @api
-     */
-    public function getErrorOutput()
-    {
-        if ($this->outputDisabled) {
-            throw new LogicException('Output has been disabled.');
-        }
-
-        $this->requireProcessIsStarted(__FUNCTION__);
-
-        $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
-
-        return $this->stderr;
-    }
-
-    /**
-     * Returns the errorOutput incrementally.
-     *
-     * In comparison with the getErrorOutput method which always return the
-     * whole error output, this one returns the new error output since the last
-     * call.
-     *
-     * @throws LogicException in case the output has been disabled
-     * @throws LogicException In case the process is not started
-     *
-     * @return string The process error output since the last call
-     */
-    public function getIncrementalErrorOutput()
-    {
-        $this->requireProcessIsStarted(__FUNCTION__);
-
-        $data = $this->getErrorOutput();
-
-        $latest = substr($data, $this->incrementalErrorOutputOffset);
-
-        if (false === $latest) {
-            return '';
-        }
-
-        $this->incrementalErrorOutputOffset = strlen($data);
-
-        return $latest;
-    }
-
-    /**
-     * Clears the process output.
-     *
-     * @return Process
-     */
-    public function clearErrorOutput()
-    {
-        $this->stderr = '';
-        $this->incrementalErrorOutputOffset = 0;
-
-        return $this;
-    }
-
-    /**
-     * Returns the exit code returned by the process.
-     *
-     * @return null|int The exit status code, null if the Process is not terminated
-     *
-     * @throws RuntimeException In case --enable-sigchild is activated and the sigchild compatibility mode is disabled
-     *
-     * @api
-     */
-    public function getExitCode()
-    {
-        if ($this->isSigchildEnabled() && !$this->enhanceSigchildCompatibility) {
-            throw new RuntimeException('This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.');
-        }
-
-        $this->updateStatus(false);
-
-        return $this->exitcode;
-    }
-
-    /**
-     * Returns a string representation for the exit code returned by the process.
-     *
-     * This method relies on the Unix exit code status standardization
-     * and might not be relevant for other operating systems.
-     *
-     * @return null|string A string representation for the exit status code, null if the Process is not terminated.
-     *
-     * @throws RuntimeException In case --enable-sigchild is activated and the sigchild compatibility mode is disabled
-     *
-     * @see http://tldp.org/LDP/abs/html/exitcodes.html
-     * @see http://en.wikipedia.org/wiki/Unix_signal
-     */
-    public function getExitCodeText()
-    {
-        if (null === $exitcode = $this->getExitCode()) {
-            return;
-        }
-
-        return isset(self::$exitCodes[$exitcode]) ? self::$exitCodes[$exitcode] : 'Unknown error';
-    }
-
-    /**
-     * Checks if the process ended successfully.
-     *
-     * @return bool true if the process ended successfully, false otherwise
-     *
-     * @api
-     */
-    public function isSuccessful()
-    {
-        return 0 === $this->getExitCode();
-    }
-
-    /**
-     * Returns true if the child process has been terminated by an uncaught signal.
-     *
-     * It always returns false on Windows.
-     *
-     * @return bool
-     *
-     * @throws RuntimeException In case --enable-sigchild is activated
-     * @throws LogicException   In case the process is not terminated
-     *
-     * @api
-     */
-    public function hasBeenSignaled()
-    {
-        $this->requireProcessIsTerminated(__FUNCTION__);
-
-        if ($this->isSigchildEnabled()) {
-            throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.');
-        }
-
-        $this->updateStatus(false);
-
-        return $this->processInformation['signaled'];
-    }
-
-    /**
-     * Returns the number of the signal that caused the child process to terminate its execution.
-     *
-     * It is only meaningful if hasBeenSignaled() returns true.
-     *
-     * @return int
-     *
-     * @throws RuntimeException In case --enable-sigchild is activated
-     * @throws LogicException   In case the process is not terminated
-     *
-     * @api
-     */
-    public function getTermSignal()
-    {
-        $this->requireProcessIsTerminated(__FUNCTION__);
-
-        if ($this->isSigchildEnabled()) {
-            throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.');
-        }
-
-        $this->updateStatus(false);
-
-        return $this->processInformation['termsig'];
-    }
-
-    /**
-     * Returns true if the child process has been stopped by a signal.
-     *
-     * It always returns false on Windows.
-     *
-     * @return bool
-     *
-     * @throws LogicException In case the process is not terminated
-     *
-     * @api
-     */
-    public function hasBeenStopped()
-    {
-        $this->requireProcessIsTerminated(__FUNCTION__);
-
-        $this->updateStatus(false);
-
-        return $this->processInformation['stopped'];
-    }
-
-    /**
-     * Returns the number of the signal that caused the child process to stop its execution.
-     *
-     * It is only meaningful if hasBeenStopped() returns true.
-     *
-     * @return int
-     *
-     * @throws LogicException In case the process is not terminated
-     *
-     * @api
-     */
-    public function getStopSignal()
-    {
-        $this->requireProcessIsTerminated(__FUNCTION__);
-
-        $this->updateStatus(false);
-
-        return $this->processInformation['stopsig'];
-    }
-
-    /**
-     * Checks if the process is currently running.
-     *
-     * @return bool true if the process is currently running, false otherwise
-     */
-    public function isRunning()
-    {
-        if (self::STATUS_STARTED !== $this->status) {
-            return false;
-        }
-
-        $this->updateStatus(false);
-
-        return $this->processInformation['running'];
-    }
-
-    /**
-     * Checks if the process has been started with no regard to the current state.
-     *
-     * @return bool true if status is ready, false otherwise
-     */
-    public function isStarted()
-    {
-        return $this->status != self::STATUS_READY;
-    }
-
-    /**
-     * Checks if the process is terminated.
-     *
-     * @return bool true if process is terminated, false otherwise
-     */
-    public function isTerminated()
-    {
-        $this->updateStatus(false);
-
-        return $this->status == self::STATUS_TERMINATED;
-    }
-
-    /**
-     * Gets the process status.
-     *
-     * The status is one of: ready, started, terminated.
-     *
-     * @return string The current process status
-     */
-    public function getStatus()
-    {
-        $this->updateStatus(false);
-
-        return $this->status;
-    }
-
-    /**
-     * Stops the process.
-     *
-     * @param int|float $timeout The timeout in seconds
-     * @param int       $signal  A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL
-     *
-     * @return int The exit-code of the process
-     *
-     * @throws RuntimeException if the process got signaled
-     */
-    public function stop($timeout = 10, $signal = null)
-    {
-        $timeoutMicro = microtime(true) + $timeout;
-        if ($this->isRunning()) {
-            if ('\\' === DIRECTORY_SEPARATOR && !$this->isSigchildEnabled()) {
-                exec(sprintf('taskkill /F /T /PID %d 2>&1', $this->getPid()), $output, $exitCode);
-                if ($exitCode > 0) {
-                    throw new RuntimeException('Unable to kill the process');
-                }
-            }
-            // given `SIGTERM` may not be defined and that `proc_terminate` uses the constant value and not the constant itself, we use the same here
-            $this->doSignal(15, false);
-            do {
-                usleep(1000);
-            } while ($this->isRunning() && microtime(true) < $timeoutMicro);
-
-            if ($this->isRunning() && !$this->isSigchildEnabled()) {
-                if (null !== $signal || defined('SIGKILL')) {
-                    // avoid exception here :
-                    // process is supposed to be running, but it might have stop
-                    // just after this line.
-                    // in any case, let's silently discard the error, we can not do anything
-                    $this->doSignal($signal ?: SIGKILL, false);
-                }
-            }
-        }
-
-        $this->updateStatus(false);
-        if ($this->processInformation['running']) {
-            $this->close();
-        }
-
-        return $this->exitcode;
-    }
-
-    /**
-     * Adds a line to the STDOUT stream.
-     *
-     * @param string $line The line to append
-     */
-    public function addOutput($line)
-    {
-        $this->lastOutputTime = microtime(true);
-        $this->stdout .= $line;
-    }
-
-    /**
-     * Adds a line to the STDERR stream.
-     *
-     * @param string $line The line to append
-     */
-    public function addErrorOutput($line)
-    {
-        $this->lastOutputTime = microtime(true);
-        $this->stderr .= $line;
-    }
-
-    /**
-     * Gets the command line to be executed.
-     *
-     * @return string The command to execute
-     */
-    public function getCommandLine()
-    {
-        return $this->commandline;
-    }
-
-    /**
-     * Sets the command line to be executed.
-     *
-     * @param string $commandline The command to execute
-     *
-     * @return self The current Process instance
-     */
-    public function setCommandLine($commandline)
-    {
-        $this->commandline = $commandline;
-
-        return $this;
-    }
-
-    /**
-     * Gets the process timeout (max. runtime).
-     *
-     * @return float|null The timeout in seconds or null if it's disabled
-     */
-    public function getTimeout()
-    {
-        return $this->timeout;
-    }
-
-    /**
-     * Gets the process idle timeout (max. time since last output).
-     *
-     * @return float|null The timeout in seconds or null if it's disabled
-     */
-    public function getIdleTimeout()
-    {
-        return $this->idleTimeout;
-    }
-
-    /**
-     * Sets the process timeout (max. runtime).
-     *
-     * To disable the timeout, set this value to null.
-     *
-     * @param int|float|null $timeout The timeout in seconds
-     *
-     * @return self The current Process instance
-     *
-     * @throws InvalidArgumentException if the timeout is negative
-     */
-    public function setTimeout($timeout)
-    {
-        $this->timeout = $this->validateTimeout($timeout);
-
-        return $this;
-    }
-
-    /**
-     * Sets the process idle timeout (max. time since last output).
-     *
-     * To disable the timeout, set this value to null.
-     *
-     * @param int|float|null $timeout The timeout in seconds
-     *
-     * @return self The current Process instance.
-     *
-     * @throws LogicException           if the output is disabled
-     * @throws InvalidArgumentException if the timeout is negative
-     */
-    public function setIdleTimeout($timeout)
-    {
-        if (null !== $timeout && $this->outputDisabled) {
-            throw new LogicException('Idle timeout can not be set while the output is disabled.');
-        }
-
-        $this->idleTimeout = $this->validateTimeout($timeout);
-
-        return $this;
-    }
-
-    /**
-     * Enables or disables the TTY mode.
-     *
-     * @param bool $tty True to enabled and false to disable
-     *
-     * @return self The current Process instance
-     *
-     * @throws RuntimeException In case the TTY mode is not supported
-     */
-    public function setTty($tty)
-    {
-        if ('\\' === DIRECTORY_SEPARATOR && $tty) {
-            throw new RuntimeException('TTY mode is not supported on Windows platform.');
-        }
-        if ($tty && (!file_exists('/dev/tty') || !is_readable('/dev/tty'))) {
-            throw new RuntimeException('TTY mode requires /dev/tty to be readable.');
-        }
-
-        $this->tty = (bool) $tty;
-
-        return $this;
-    }
-
-    /**
-     * Checks if the TTY mode is enabled.
-     *
-     * @return bool true if the TTY mode is enabled, false otherwise
-     */
-    public function isTty()
-    {
-        return $this->tty;
-    }
-
-    /**
-     * Sets PTY mode.
-     *
-     * @param bool $bool
-     *
-     * @return self
-     */
-    public function setPty($bool)
-    {
-        $this->pty = (bool) $bool;
-
-        return $this;
-    }
-
-    /**
-     * Returns PTY state.
-     *
-     * @return bool
-     */
-    public function isPty()
-    {
-        return $this->pty;
-    }
-
-    /**
-     * Gets the working directory.
-     *
-     * @return string|null The current working directory or null on failure
-     */
-    public function getWorkingDirectory()
-    {
-        if (null === $this->cwd) {
-            // getcwd() will return false if any one of the parent directories does not have
-            // the readable or search mode set, even if the current directory does
-            return getcwd() ?: null;
-        }
-
-        return $this->cwd;
-    }
-
-    /**
-     * Sets the current working directory.
-     *
-     * @param string $cwd The new working directory
-     *
-     * @return self The current Process instance
-     */
-    public function setWorkingDirectory($cwd)
-    {
-        $this->cwd = $cwd;
-
-        return $this;
-    }
-
-    /**
-     * Gets the environment variables.
-     *
-     * @return array The current environment variables
-     */
-    public function getEnv()
-    {
-        return $this->env;
-    }
-
-    /**
-     * Sets the environment variables.
-     *
-     * An environment variable value should be a string.
-     * If it is an array, the variable is ignored.
-     *
-     * That happens in PHP when 'argv' is registered into
-     * the $_ENV array for instance.
-     *
-     * @param array $env The new environment variables
-     *
-     * @return self The current Process instance
-     */
-    public function setEnv(array $env)
-    {
-        // Process can not handle env values that are arrays
-        $env = array_filter($env, function ($value) {
-            return !is_array($value);
-        });
-
-        $this->env = array();
-        foreach ($env as $key => $value) {
-            $this->env[(binary) $key] = (binary) $value;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Gets the contents of STDIN.
-     *
-     * @return string|null The current contents
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use setInput() instead.
-     *             This method is deprecated in favor of getInput.
-     */
-    public function getStdin()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the getInput() method instead.', E_USER_DEPRECATED);
-
-        return $this->getInput();
-    }
-
-    /**
-     * Gets the Process input.
-     *
-     * @return null|string The Process input
-     */
-    public function getInput()
-    {
-        return $this->input;
-    }
-
-    /**
-     * Sets the contents of STDIN.
-     *
-     * @param string|null $stdin The new contents
-     *
-     * @return self The current Process instance
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use setInput() instead.
-     *
-     * @throws LogicException           In case the process is running
-     * @throws InvalidArgumentException In case the argument is invalid
-     */
-    public function setStdin($stdin)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the setInput() method instead.', E_USER_DEPRECATED);
-
-        return $this->setInput($stdin);
-    }
-
-    /**
-     * Sets the input.
-     *
-     * This content will be passed to the underlying process standard input.
-     *
-     * @param mixed $input The content
-     *
-     * @return self The current Process instance
-     *
-     * @throws LogicException In case the process is running
-     *
-     * Passing an object as an input is deprecated since version 2.5 and will be removed in 3.0.
-     */
-    public function setInput($input)
-    {
-        if ($this->isRunning()) {
-            throw new LogicException('Input can not be set while the process is running.');
-        }
-
-        $this->input = ProcessUtils::validateInput(sprintf('%s::%s', __CLASS__, __FUNCTION__), $input);
-
-        return $this;
-    }
-
-    /**
-     * Gets the options for proc_open.
-     *
-     * @return array The current options
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    /**
-     * Sets the options for proc_open.
-     *
-     * @param array $options The new options
-     *
-     * @return self The current Process instance
-     */
-    public function setOptions(array $options)
-    {
-        $this->options = $options;
-
-        return $this;
-    }
-
-    /**
-     * Gets whether or not Windows compatibility is enabled.
-     *
-     * This is true by default.
-     *
-     * @return bool
-     */
-    public function getEnhanceWindowsCompatibility()
-    {
-        return $this->enhanceWindowsCompatibility;
-    }
-
-    /**
-     * Sets whether or not Windows compatibility is enabled.
-     *
-     * @param bool $enhance
-     *
-     * @return self The current Process instance
-     */
-    public function setEnhanceWindowsCompatibility($enhance)
-    {
-        $this->enhanceWindowsCompatibility = (bool) $enhance;
-
-        return $this;
-    }
-
-    /**
-     * Returns whether sigchild compatibility mode is activated or not.
-     *
-     * @return bool
-     */
-    public function getEnhanceSigchildCompatibility()
-    {
-        return $this->enhanceSigchildCompatibility;
-    }
-
-    /**
-     * Activates sigchild compatibility mode.
-     *
-     * Sigchild compatibility mode is required to get the exit code and
-     * determine the success of a process when PHP has been compiled with
-     * the --enable-sigchild option
-     *
-     * @param bool $enhance
-     *
-     * @return self The current Process instance
-     */
-    public function setEnhanceSigchildCompatibility($enhance)
-    {
-        $this->enhanceSigchildCompatibility = (bool) $enhance;
-
-        return $this;
-    }
-
-    /**
-     * Performs a check between the timeout definition and the time the process started.
-     *
-     * In case you run a background process (with the start method), you should
-     * trigger this method regularly to ensure the process timeout
-     *
-     * @throws ProcessTimedOutException In case the timeout was reached
-     */
-    public function checkTimeout()
-    {
-        if ($this->status !== self::STATUS_STARTED) {
-            return;
-        }
-
-        if (null !== $this->timeout && $this->timeout < microtime(true) - $this->starttime) {
-            $this->stop(0);
-
-            throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_GENERAL);
-        }
-
-        if (null !== $this->idleTimeout && $this->idleTimeout < microtime(true) - $this->lastOutputTime) {
-            $this->stop(0);
-
-            throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_IDLE);
-        }
-    }
-
-    /**
-     * Returns whether PTY is supported on the current operating system.
-     *
-     * @return bool
-     */
-    public static function isPtySupported()
-    {
-        static $result;
-
-        if (null !== $result) {
-            return $result;
-        }
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            return $result = false;
-        }
-
-        $proc = @proc_open('echo 1', array(array('pty'), array('pty'), array('pty')), $pipes);
-        if (is_resource($proc)) {
-            proc_close($proc);
-
-            return $result = true;
-        }
-
-        return $result = false;
-    }
-
-    /**
-     * Creates the descriptors needed by the proc_open.
-     *
-     * @return array
-     */
-    private function getDescriptors()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->processPipes = WindowsPipes::create($this, $this->input);
-        } else {
-            $this->processPipes = UnixPipes::create($this, $this->input);
-        }
-        $descriptors = $this->processPipes->getDescriptors($this->outputDisabled);
-
-        if (!$this->useFileHandles && $this->enhanceSigchildCompatibility && $this->isSigchildEnabled()) {
-            // last exit code is output on the fourth pipe and caught to work around --enable-sigchild
-            $descriptors = array_merge($descriptors, array(array('pipe', 'w')));
-
-            $this->commandline = '('.$this->commandline.') 3>/dev/null; code=$?; echo $code >&3; exit $code';
-        }
-
-        return $descriptors;
-    }
-
-    /**
-     * Builds up the callback used by wait().
-     *
-     * The callbacks adds all occurred output to the specific buffer and calls
-     * the user callback (if present) with the received output.
-     *
-     * @param callable|null $callback The user defined PHP callback
-     *
-     * @return callable A PHP callable
-     */
-    protected function buildCallback($callback)
-    {
-        $that = $this;
-        $out = self::OUT;
-        $callback = function ($type, $data) use ($that, $callback, $out) {
-            if ($out == $type) {
-                $that->addOutput($data);
-            } else {
-                $that->addErrorOutput($data);
-            }
-
-            if (null !== $callback) {
-                call_user_func($callback, $type, $data);
-            }
-        };
-
-        return $callback;
-    }
-
-    /**
-     * Updates the status of the process, reads pipes.
-     *
-     * @param bool $blocking Whether to use a blocking read call.
-     */
-    protected function updateStatus($blocking)
-    {
-        if (self::STATUS_STARTED !== $this->status) {
-            return;
-        }
-
-        $this->processInformation = proc_get_status($this->process);
-        $this->captureExitCode();
-
-        $this->readPipes($blocking, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
-
-        if (!$this->processInformation['running']) {
-            $this->close();
-        }
-    }
-
-    /**
-     * Returns whether PHP has been compiled with the '--enable-sigchild' option or not.
-     *
-     * @return bool
-     */
-    protected function isSigchildEnabled()
-    {
-        if (null !== self::$sigchild) {
-            return self::$sigchild;
-        }
-
-        if (!function_exists('phpinfo')) {
-            return self::$sigchild = false;
-        }
-
-        ob_start();
-        phpinfo(INFO_GENERAL);
-
-        return self::$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
-    }
-
-    /**
-     * Validates and returns the filtered timeout.
-     *
-     * @param int|float|null $timeout
-     *
-     * @return float|null
-     *
-     * @throws InvalidArgumentException if the given timeout is a negative number
-     */
-    private function validateTimeout($timeout)
-    {
-        $timeout = (float) $timeout;
-
-        if (0.0 === $timeout) {
-            $timeout = null;
-        } elseif ($timeout < 0) {
-            throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.');
-        }
-
-        return $timeout;
-    }
-
-    /**
-     * Reads pipes, executes callback.
-     *
-     * @param bool $blocking Whether to use blocking calls or not.
-     * @param bool $close    Whether to close file handles or not.
-     */
-    private function readPipes($blocking, $close)
-    {
-        $result = $this->processPipes->readAndWrite($blocking, $close);
-
-        $callback = $this->callback;
-        foreach ($result as $type => $data) {
-            if (3 == $type) {
-                $this->fallbackExitcode = (int) $data;
-            } else {
-                $callback($type === self::STDOUT ? self::OUT : self::ERR, $data);
-            }
-        }
-    }
-
-    /**
-     * Captures the exitcode if mentioned in the process information.
-     */
-    private function captureExitCode()
-    {
-        if (isset($this->processInformation['exitcode']) && -1 != $this->processInformation['exitcode']) {
-            $this->exitcode = $this->processInformation['exitcode'];
-        }
-    }
-
-    /**
-     * Closes process resource, closes file handles, sets the exitcode.
-     *
-     * @return int The exitcode
-     */
-    private function close()
-    {
-        $this->processPipes->close();
-        if (is_resource($this->process)) {
-            $exitcode = proc_close($this->process);
-        } else {
-            $exitcode = -1;
-        }
-
-        $this->exitcode = -1 !== $exitcode ? $exitcode : (null !== $this->exitcode ? $this->exitcode : -1);
-        $this->status = self::STATUS_TERMINATED;
-
-        if (-1 === $this->exitcode && null !== $this->fallbackExitcode) {
-            $this->exitcode = $this->fallbackExitcode;
-        } elseif (-1 === $this->exitcode && $this->processInformation['signaled'] && 0 < $this->processInformation['termsig']) {
-            // if process has been signaled, no exitcode but a valid termsig, apply Unix convention
-            $this->exitcode = 128 + $this->processInformation['termsig'];
-        }
-
-        return $this->exitcode;
-    }
-
-    /**
-     * Resets data related to the latest run of the process.
-     */
-    private function resetProcessData()
-    {
-        $this->starttime = null;
-        $this->callback = null;
-        $this->exitcode = null;
-        $this->fallbackExitcode = null;
-        $this->processInformation = null;
-        $this->stdout = null;
-        $this->stderr = null;
-        $this->process = null;
-        $this->latestSignal = null;
-        $this->status = self::STATUS_READY;
-        $this->incrementalOutputOffset = 0;
-        $this->incrementalErrorOutputOffset = 0;
-    }
-
-    /**
-     * Sends a POSIX signal to the process.
-     *
-     * @param int  $signal         A valid POSIX signal (see http://www.php.net/manual/en/pcntl.constants.php)
-     * @param bool $throwException Whether to throw exception in case signal failed
-     *
-     * @return bool True if the signal was sent successfully, false otherwise
-     *
-     * @throws LogicException   In case the process is not running
-     * @throws RuntimeException In case --enable-sigchild is activated
-     * @throws RuntimeException In case of failure
-     */
-    private function doSignal($signal, $throwException)
-    {
-        if (!$this->isRunning()) {
-            if ($throwException) {
-                throw new LogicException('Can not send signal on a non running process.');
-            }
-
-            return false;
-        }
-
-        if ($this->isSigchildEnabled()) {
-            if ($throwException) {
-                throw new RuntimeException('This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-            }
-
-            return false;
-        }
-
-        if (true !== @proc_terminate($this->process, $signal)) {
-            if ($throwException) {
-                throw new RuntimeException(sprintf('Error while sending signal `%s`.', $signal));
-            }
-
-            return false;
-        }
-
-        $this->latestSignal = $signal;
-
-        return true;
-    }
-
-    /**
-     * Ensures the process is running or terminated, throws a LogicException if the process has a not started.
-     *
-     * @param string $functionName The function name that was called.
-     *
-     * @throws LogicException If the process has not run.
-     */
-    private function requireProcessIsStarted($functionName)
-    {
-        if (!$this->isStarted()) {
-            throw new LogicException(sprintf('Process must be started before calling %s.', $functionName));
-        }
-    }
-
-    /**
-     * Ensures the process is terminated, throws a LogicException if the process has a status different than `terminated`.
-     *
-     * @param string $functionName The function name that was called.
-     *
-     * @throws LogicException If the process is not yet terminated.
-     */
-    private function requireProcessIsTerminated($functionName)
-    {
-        if (!$this->isTerminated()) {
-            throw new LogicException(sprintf('Process must be terminated before calling %s.', $functionName));
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/ProcessBuilder.php b/core/vendor/symfony/process/ProcessBuilder.php
deleted file mode 100644
index a782fd6..0000000
--- a/core/vendor/symfony/process/ProcessBuilder.php
+++ /dev/null
@@ -1,287 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process;
-
-use Symfony\Component\Process\Exception\InvalidArgumentException;
-use Symfony\Component\Process\Exception\LogicException;
-
-/**
- * Process builder.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- */
-class ProcessBuilder
-{
-    private $arguments;
-    private $cwd;
-    private $env = array();
-    private $input;
-    private $timeout = 60;
-    private $options = array();
-    private $inheritEnv = true;
-    private $prefix = array();
-    private $outputDisabled = false;
-
-    /**
-     * Constructor.
-     *
-     * @param string[] $arguments An array of arguments
-     */
-    public function __construct(array $arguments = array())
-    {
-        $this->arguments = $arguments;
-    }
-
-    /**
-     * Creates a process builder instance.
-     *
-     * @param string[] $arguments An array of arguments
-     *
-     * @return ProcessBuilder
-     */
-    public static function create(array $arguments = array())
-    {
-        return new static($arguments);
-    }
-
-    /**
-     * Adds an unescaped argument to the command string.
-     *
-     * @param string $argument A command argument
-     *
-     * @return ProcessBuilder
-     */
-    public function add($argument)
-    {
-        $this->arguments[] = $argument;
-
-        return $this;
-    }
-
-    /**
-     * Adds a prefix to the command string.
-     *
-     * The prefix is preserved when resetting arguments.
-     *
-     * @param string|array $prefix A command prefix or an array of command prefixes
-     *
-     * @return ProcessBuilder
-     */
-    public function setPrefix($prefix)
-    {
-        $this->prefix = is_array($prefix) ? $prefix : array($prefix);
-
-        return $this;
-    }
-
-    /**
-     * Sets the arguments of the process.
-     *
-     * Arguments must not be escaped.
-     * Previous arguments are removed.
-     *
-     * @param string[] $arguments
-     *
-     * @return ProcessBuilder
-     */
-    public function setArguments(array $arguments)
-    {
-        $this->arguments = $arguments;
-
-        return $this;
-    }
-
-    /**
-     * Sets the working directory.
-     *
-     * @param null|string $cwd The working directory
-     *
-     * @return ProcessBuilder
-     */
-    public function setWorkingDirectory($cwd)
-    {
-        $this->cwd = $cwd;
-
-        return $this;
-    }
-
-    /**
-     * Sets whether environment variables will be inherited or not.
-     *
-     * @param bool $inheritEnv
-     *
-     * @return ProcessBuilder
-     */
-    public function inheritEnvironmentVariables($inheritEnv = true)
-    {
-        $this->inheritEnv = $inheritEnv;
-
-        return $this;
-    }
-
-    /**
-     * Sets an environment variable.
-     *
-     * Setting a variable overrides its previous value. Use `null` to unset a
-     * defined environment variable.
-     *
-     * @param string      $name  The variable name
-     * @param null|string $value The variable value
-     *
-     * @return ProcessBuilder
-     */
-    public function setEnv($name, $value)
-    {
-        $this->env[$name] = $value;
-
-        return $this;
-    }
-
-    /**
-     * Adds a set of environment variables.
-     *
-     * Already existing environment variables with the same name will be
-     * overridden by the new values passed to this method. Pass `null` to unset
-     * a variable.
-     *
-     * @param array $variables The variables
-     *
-     * @return ProcessBuilder
-     */
-    public function addEnvironmentVariables(array $variables)
-    {
-        $this->env = array_replace($this->env, $variables);
-
-        return $this;
-    }
-
-    /**
-     * Sets the input of the process.
-     *
-     * @param mixed $input The input as a string
-     *
-     * @return ProcessBuilder
-     *
-     * @throws InvalidArgumentException In case the argument is invalid
-     *
-     * Passing an object as an input is deprecated since version 2.5 and will be removed in 3.0.
-     */
-    public function setInput($input)
-    {
-        $this->input = ProcessUtils::validateInput(sprintf('%s::%s', __CLASS__, __FUNCTION__), $input);
-
-        return $this;
-    }
-
-    /**
-     * Sets the process timeout.
-     *
-     * To disable the timeout, set this value to null.
-     *
-     * @param float|null $timeout
-     *
-     * @return ProcessBuilder
-     *
-     * @throws InvalidArgumentException
-     */
-    public function setTimeout($timeout)
-    {
-        if (null === $timeout) {
-            $this->timeout = null;
-
-            return $this;
-        }
-
-        $timeout = (float) $timeout;
-
-        if ($timeout < 0) {
-            throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.');
-        }
-
-        $this->timeout = $timeout;
-
-        return $this;
-    }
-
-    /**
-     * Adds a proc_open option.
-     *
-     * @param string $name  The option name
-     * @param string $value The option value
-     *
-     * @return ProcessBuilder
-     */
-    public function setOption($name, $value)
-    {
-        $this->options[$name] = $value;
-
-        return $this;
-    }
-
-    /**
-     * Disables fetching output and error output from the underlying process.
-     *
-     * @return ProcessBuilder
-     */
-    public function disableOutput()
-    {
-        $this->outputDisabled = true;
-
-        return $this;
-    }
-
-    /**
-     * Enables fetching output and error output from the underlying process.
-     *
-     * @return ProcessBuilder
-     */
-    public function enableOutput()
-    {
-        $this->outputDisabled = false;
-
-        return $this;
-    }
-
-    /**
-     * Creates a Process instance and returns it.
-     *
-     * @return Process
-     *
-     * @throws LogicException In case no arguments have been provided
-     */
-    public function getProcess()
-    {
-        if (0 === count($this->prefix) && 0 === count($this->arguments)) {
-            throw new LogicException('You must add() command arguments before calling getProcess().');
-        }
-
-        $options = $this->options;
-
-        $arguments = array_merge($this->prefix, $this->arguments);
-        $script = implode(' ', array_map(array(__NAMESPACE__.'\\ProcessUtils', 'escapeArgument'), $arguments));
-
-        if ($this->inheritEnv) {
-            // include $_ENV for BC purposes
-            $env = array_replace($_ENV, $_SERVER, $this->env);
-        } else {
-            $env = $this->env;
-        }
-
-        $process = new Process($script, $this->cwd, $env, $this->input, $this->timeout, $options);
-
-        if ($this->outputDisabled) {
-            $process->disableOutput();
-        }
-
-        return $process;
-    }
-}
diff --git a/core/vendor/symfony/process/ProcessUtils.php b/core/vendor/symfony/process/ProcessUtils.php
deleted file mode 100644
index 4f30b63..0000000
--- a/core/vendor/symfony/process/ProcessUtils.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process;
-
-use Symfony\Component\Process\Exception\InvalidArgumentException;
-
-/**
- * ProcessUtils is a bunch of utility methods.
- *
- * This class contains static methods only and is not meant to be instantiated.
- *
- * @author Martin Hasoň <martin.hason@gmail.com>
- */
-class ProcessUtils
-{
-    /**
-     * This class should not be instantiated.
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Escapes a string to be used as a shell argument.
-     *
-     * @param string $argument The argument that will be escaped
-     *
-     * @return string The escaped argument
-     */
-    public static function escapeArgument($argument)
-    {
-        //Fix for PHP bug #43784 escapeshellarg removes % from given string
-        //Fix for PHP bug #49446 escapeshellarg doesn't work on Windows
-        //@see https://bugs.php.net/bug.php?id=43784
-        //@see https://bugs.php.net/bug.php?id=49446
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            if ('' === $argument) {
-                return escapeshellarg($argument);
-            }
-
-            $escapedArgument = '';
-            $quote = false;
-            foreach (preg_split('/(")/', $argument, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $part) {
-                if ('"' === $part) {
-                    $escapedArgument .= '\\"';
-                } elseif (self::isSurroundedBy($part, '%')) {
-                    // Avoid environment variable expansion
-                    $escapedArgument .= '^%"'.substr($part, 1, -1).'"^%';
-                } else {
-                    // escape trailing backslash
-                    if ('\\' === substr($part, -1)) {
-                        $part .= '\\';
-                    }
-                    $quote = true;
-                    $escapedArgument .= $part;
-                }
-            }
-            if ($quote) {
-                $escapedArgument = '"'.$escapedArgument.'"';
-            }
-
-            return $escapedArgument;
-        }
-
-        return escapeshellarg($argument);
-    }
-
-    /**
-     * Validates and normalizes a Process input.
-     *
-     * @param string $caller The name of method call that validates the input
-     * @param mixed  $input  The input to validate
-     *
-     * @return string The validated input
-     *
-     * @throws InvalidArgumentException In case the input is not valid
-     *
-     * Passing an object as an input is deprecated since version 2.5 and will be removed in 3.0.
-     */
-    public static function validateInput($caller, $input)
-    {
-        if (null !== $input) {
-            if (is_resource($input)) {
-                return $input;
-            }
-            if (is_scalar($input)) {
-                return (string) $input;
-            }
-            // deprecated as of Symfony 2.5, to be removed in 3.0
-            if (is_object($input) && method_exists($input, '__toString')) {
-                @trigger_error('Passing an object as an input is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-                return (string) $input;
-            }
-
-            throw new InvalidArgumentException(sprintf('%s only accepts strings or stream resources.', $caller));
-        }
-
-        return $input;
-    }
-
-    private static function isSurroundedBy($arg, $char)
-    {
-        return 2 < strlen($arg) && $char === $arg[0] && $char === $arg[strlen($arg) - 1];
-    }
-}
diff --git a/core/vendor/symfony/process/README.md b/core/vendor/symfony/process/README.md
deleted file mode 100644
index 7c83ed4..0000000
--- a/core/vendor/symfony/process/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-Process Component
-=================
-
-Process executes commands in sub-processes.
-
-In this example, we run a simple directory listing and get the result back:
-
-```php
-use Symfony\Component\Process\Process;
-
-$process = new Process('ls -lsa');
-$process->setTimeout(3600);
-$process->run();
-if (!$process->isSuccessful()) {
-    throw new RuntimeException($process->getErrorOutput());
-}
-
-print $process->getOutput();
-```
-
-You can think that this is easy to achieve with plain PHP but it's not especially
-if you want to take care of the subtle differences between the different platforms.
-
-And if you want to be able to get some feedback in real-time, just pass an
-anonymous function to the ``run()`` method and you will get the output buffer
-as it becomes available:
-
-```php
-use Symfony\Component\Process\Process;
-
-$process = new Process('ls -lsa');
-$process->run(function ($type, $buffer) {
-    if (Process::ERR === $type) {
-        echo 'ERR > '.$buffer;
-    } else {
-        echo 'OUT > '.$buffer;
-    }
-});
-```
-
-That's great if you want to execute a long running command (like rsync-ing files to a
-remote server) and give feedback to the user in real-time.
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Process/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/process/Tests/AbstractProcessTest.php b/core/vendor/symfony/process/Tests/AbstractProcessTest.php
deleted file mode 100644
index 2add8cc..0000000
--- a/core/vendor/symfony/process/Tests/AbstractProcessTest.php
+++ /dev/null
@@ -1,1205 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\Exception\LogicException;
-use Symfony\Component\Process\Exception\ProcessTimedOutException;
-use Symfony\Component\Process\Exception\RuntimeException;
-use Symfony\Component\Process\PhpExecutableFinder;
-use Symfony\Component\Process\Pipes\PipesInterface;
-use Symfony\Component\Process\Process;
-
-/**
- * @author Robert Schönthal <seroscho@googlemail.com>
- */
-abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $phpBin;
-
-    public static function setUpBeforeClass()
-    {
-        $phpBin = new PhpExecutableFinder();
-        self::$phpBin = $phpBin->find();
-    }
-
-    public function testThatProcessDoesNotThrowWarningDuringRun()
-    {
-        @trigger_error('Test Error', E_USER_NOTICE);
-        $process = $this->getProcess(self::$phpBin." -r 'sleep(3)'");
-        $process->run();
-        $actualError = error_get_last();
-        $this->assertEquals('Test Error', $actualError['message']);
-        $this->assertEquals(E_USER_NOTICE, $actualError['type']);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
-     */
-    public function testNegativeTimeoutFromConstructor()
-    {
-        $this->getProcess('', null, null, null, -1);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
-     */
-    public function testNegativeTimeoutFromSetter()
-    {
-        $p = $this->getProcess('');
-        $p->setTimeout(-1);
-    }
-
-    public function testFloatAndNullTimeout()
-    {
-        $p = $this->getProcess('');
-
-        $p->setTimeout(10);
-        $this->assertSame(10.0, $p->getTimeout());
-
-        $p->setTimeout(null);
-        $this->assertNull($p->getTimeout());
-
-        $p->setTimeout(0.0);
-        $this->assertNull($p->getTimeout());
-    }
-
-    public function testStopWithTimeoutIsActuallyWorking()
-    {
-        $this->verifyPosixIsEnabled();
-
-        // exec is mandatory here since we send a signal to the process
-        // see https://github.com/symfony/symfony/issues/5030 about prepending
-        // command with exec
-        $p = $this->getProcess('exec php '.__DIR__.'/NonStopableProcess.php 3');
-        $p->start();
-        usleep(100000);
-        $start = microtime(true);
-        $p->stop(1.1, SIGKILL);
-        while ($p->isRunning()) {
-            usleep(1000);
-        }
-        $duration = microtime(true) - $start;
-
-        $this->assertLessThan(4, $duration);
-    }
-
-    public function testAllOutputIsActuallyReadOnTermination()
-    {
-        // this code will result in a maximum of 2 reads of 8192 bytes by calling
-        // start() and isRunning().  by the time getOutput() is called the process
-        // has terminated so the internal pipes array is already empty. normally
-        // the call to start() will not read any data as the process will not have
-        // generated output, but this is non-deterministic so we must count it as
-        // a possibility.  therefore we need 2 * PipesInterface::CHUNK_SIZE plus
-        // another byte which will never be read.
-        $expectedOutputSize = PipesInterface::CHUNK_SIZE * 2 + 2;
-
-        $code = sprintf('echo str_repeat(\'*\', %d);', $expectedOutputSize);
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg($code)));
-
-        $p->start();
-        // Let's wait enough time for process to finish...
-        // Here we don't call Process::run or Process::wait to avoid any read of pipes
-        usleep(500000);
-
-        if ($p->isRunning()) {
-            $this->markTestSkipped('Process execution did not complete in the required time frame');
-        }
-
-        $o = $p->getOutput();
-
-        $this->assertEquals($expectedOutputSize, strlen($o));
-    }
-
-    public function testCallbacksAreExecutedWithStart()
-    {
-        $data = '';
-
-        $process = $this->getProcess('echo foo && php -r "sleep(1);" && echo foo');
-        $process->start(function ($type, $buffer) use (&$data) {
-            $data .= $buffer;
-        });
-
-        while ($process->isRunning()) {
-            usleep(10000);
-        }
-
-        $this->assertEquals(2, preg_match_all('/foo/', $data, $matches));
-    }
-
-    /**
-     * tests results from sub processes.
-     *
-     * @dataProvider responsesCodeProvider
-     */
-    public function testProcessResponses($expected, $getter, $code)
-    {
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg($code)));
-        $p->run();
-
-        $this->assertSame($expected, $p->$getter());
-    }
-
-    /**
-     * tests results from sub processes.
-     *
-     * @dataProvider pipesCodeProvider
-     */
-    public function testProcessPipes($code, $size)
-    {
-        $expected = str_repeat(str_repeat('*', 1024), $size).'!';
-        $expectedLength = (1024 * $size) + 1;
-
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg($code)));
-        $p->setInput($expected);
-        $p->run();
-
-        $this->assertEquals($expectedLength, strlen($p->getOutput()));
-        $this->assertEquals($expectedLength, strlen($p->getErrorOutput()));
-    }
-
-    /**
-     * @dataProvider pipesCodeProvider
-     */
-    public function testSetStreamAsInput($code, $size)
-    {
-        $expected = str_repeat(str_repeat('*', 1024), $size).'!';
-        $expectedLength = (1024 * $size) + 1;
-
-        $stream = fopen('php://temporary', 'w+');
-        fwrite($stream, $expected);
-        rewind($stream);
-
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg($code)));
-        $p->setInput($stream);
-        $p->run();
-
-        fclose($stream);
-
-        $this->assertEquals($expectedLength, strlen($p->getOutput()));
-        $this->assertEquals($expectedLength, strlen($p->getErrorOutput()));
-    }
-
-    public function testSetInputWhileRunningThrowsAnException()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $process->start();
-        try {
-            $process->setInput('foobar');
-            $process->stop();
-            $this->fail('A LogicException should have been raised.');
-        } catch (LogicException $e) {
-            $this->assertEquals('Input can not be set while the process is running.', $e->getMessage());
-        }
-        $process->stop();
-    }
-
-    /**
-     * @dataProvider provideInvalidInputValues
-     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
-     * @expectedExceptionMessage Symfony\Component\Process\Process::setInput only accepts strings or stream resources.
-     */
-    public function testInvalidInput($value)
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->setInput($value);
-    }
-
-    public function provideInvalidInputValues()
-    {
-        return array(
-            array(array()),
-            array(new NonStringifiable()),
-        );
-    }
-
-    /**
-     * @dataProvider provideInputValues
-     */
-    public function testValidInput($expected, $value)
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->setInput($value);
-        $this->assertSame($expected, $process->getInput());
-    }
-
-    public function provideInputValues()
-    {
-        return array(
-            array(null, null),
-            array('24.5', 24.5),
-            array('input data', 'input data'),
-        );
-    }
-
-    /**
-     * @dataProvider provideLegacyInputValues
-     * @group legacy
-     */
-    public function testLegacyValidInput($expected, $value)
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->setInput($value);
-        $this->assertSame($expected, $process->getInput());
-    }
-
-    public function provideLegacyInputValues()
-    {
-        return array(
-            array('stringifiable', new Stringifiable()),
-        );
-    }
-
-    public function chainedCommandsOutputProvider()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            return array(
-                array("2 \r\n2\r\n", '&&', '2'),
-            );
-        }
-
-        return array(
-            array("1\n1\n", ';', '1'),
-            array("2\n2\n", '&&', '2'),
-        );
-    }
-
-    /**
-     * @dataProvider chainedCommandsOutputProvider
-     */
-    public function testChainedCommandsOutput($expected, $operator, $input)
-    {
-        $process = $this->getProcess(sprintf('echo %s %s echo %s', $input, $operator, $input));
-        $process->run();
-        $this->assertEquals($expected, $process->getOutput());
-    }
-
-    public function testCallbackIsExecutedForOutput()
-    {
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('echo \'foo\';')));
-
-        $called = false;
-        $p->run(function ($type, $buffer) use (&$called) {
-            $called = $buffer === 'foo';
-        });
-
-        $this->assertTrue($called, 'The callback should be executed with the output');
-    }
-
-    public function testGetErrorOutput()
-    {
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; }')));
-
-        $p->run();
-        $this->assertEquals(3, preg_match_all('/ERROR/', $p->getErrorOutput(), $matches));
-    }
-
-    public function testGetIncrementalErrorOutput()
-    {
-        // use a lock file to toggle between writing ("W") and reading ("R") the
-        // error stream
-        $lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
-        file_put_contents($lock, 'W');
-
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
-
-        $p->start();
-        while ($p->isRunning()) {
-            if ('R' === file_get_contents($lock)) {
-                $this->assertLessThanOrEqual(1, preg_match_all('/ERROR/', $p->getIncrementalErrorOutput(), $matches));
-                file_put_contents($lock, 'W');
-            }
-            usleep(100);
-        }
-
-        unlink($lock);
-    }
-
-    public function testFlushErrorOutput()
-    {
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; }')));
-
-        $p->run();
-        $p->clearErrorOutput();
-        $this->assertEmpty($p->getErrorOutput());
-    }
-
-    public function testGetEmptyIncrementalErrorOutput()
-    {
-        // use a lock file to toggle between writing ("W") and reading ("R") the
-        // output stream
-        $lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
-        file_put_contents($lock, 'W');
-
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
-
-        $p->start();
-
-        $shouldWrite = false;
-
-        while ($p->isRunning()) {
-            if ('R' === file_get_contents($lock)) {
-                if (!$shouldWrite) {
-                    $this->assertLessThanOrEqual(1, preg_match_all('/ERROR/', $p->getIncrementalOutput(), $matches));
-                    $shouldWrite = true;
-                } else {
-                    $this->assertSame('', $p->getIncrementalOutput());
-
-                    file_put_contents($lock, 'W');
-                    $shouldWrite = false;
-                }
-            }
-            usleep(100);
-        }
-
-        unlink($lock);
-    }
-
-    public function testGetOutput()
-    {
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { echo \' foo \'; $n++; }')));
-
-        $p->run();
-        $this->assertEquals(3, preg_match_all('/foo/', $p->getOutput(), $matches));
-    }
-
-    public function testGetIncrementalOutput()
-    {
-        // use a lock file to toggle between writing ("W") and reading ("R") the
-        // output stream
-        $lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
-        file_put_contents($lock, 'W');
-
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { echo \' foo \'; $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
-
-        $p->start();
-        while ($p->isRunning()) {
-            if ('R' === file_get_contents($lock)) {
-                $this->assertLessThanOrEqual(1, preg_match_all('/foo/', $p->getIncrementalOutput(), $matches));
-                file_put_contents($lock, 'W');
-            }
-            usleep(100);
-        }
-
-        unlink($lock);
-    }
-
-    public function testFlushOutput()
-    {
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n=0;while ($n<3) {echo \' foo \';$n++;}')));
-
-        $p->run();
-        $p->clearOutput();
-        $this->assertEmpty($p->getOutput());
-    }
-
-    public function testGetEmptyIncrementalOutput()
-    {
-        // use a lock file to toggle between writing ("W") and reading ("R") the
-        // output stream
-        $lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
-        file_put_contents($lock, 'W');
-
-        $p = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { echo \' foo \'; $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
-
-        $p->start();
-
-        $shouldWrite = false;
-
-        while ($p->isRunning()) {
-            if ('R' === file_get_contents($lock)) {
-                if (!$shouldWrite) {
-                    $this->assertLessThanOrEqual(1, preg_match_all('/foo/', $p->getIncrementalOutput(), $matches));
-                    $shouldWrite = true;
-                } else {
-                    $this->assertSame('', $p->getIncrementalOutput());
-
-                    file_put_contents($lock, 'W');
-                    $shouldWrite = false;
-                }
-            }
-            usleep(100);
-        }
-
-        unlink($lock);
-    }
-
-    public function testZeroAsOutput()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            // see http://stackoverflow.com/questions/7105433/windows-batch-echo-without-new-line
-            $p = $this->getProcess('echo | set /p dummyName=0');
-        } else {
-            $p = $this->getProcess('printf 0');
-        }
-
-        $p->run();
-        $this->assertSame('0', $p->getOutput());
-    }
-
-    public function testExitCodeCommandFailed()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX exit code');
-        }
-
-        // such command run in bash return an exitcode 127
-        $process = $this->getProcess('nonexistingcommandIhopeneversomeonewouldnameacommandlikethis');
-        $process->run();
-
-        $this->assertGreaterThan(0, $process->getExitCode());
-    }
-
-    public function testTTYCommand()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does have /dev/tty support');
-        }
-
-        $process = $this->getProcess('echo "foo" >> /dev/null && php -r "usleep(100000);"');
-        $process->setTty(true);
-        $process->start();
-        $this->assertTrue($process->isRunning());
-        $process->wait();
-
-        $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
-    }
-
-    public function testTTYCommandExitCode()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does have /dev/tty support');
-        }
-
-        $process = $this->getProcess('echo "foo" >> /dev/null');
-        $process->setTty(true);
-        $process->run();
-
-        $this->assertTrue($process->isSuccessful());
-    }
-
-    public function testTTYInWindowsEnvironment()
-    {
-        if ('\\' !== DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('This test is for Windows platform only');
-        }
-
-        $process = $this->getProcess('echo "foo" >> /dev/null');
-        $process->setTty(false);
-        $this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'TTY mode is not supported on Windows platform.');
-        $process->setTty(true);
-    }
-
-    public function testExitCodeTextIsNullWhenExitCodeIsNull()
-    {
-        $process = $this->getProcess('');
-        $this->assertNull($process->getExitCodeText());
-    }
-
-    public function testPTYCommand()
-    {
-        if (!Process::isPtySupported()) {
-            $this->markTestSkipped('PTY is not supported on this operating system.');
-        }
-
-        $process = $this->getProcess('echo "foo"');
-        $process->setPty(true);
-        $process->run();
-
-        $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
-        $this->assertEquals("foo\r\n", $process->getOutput());
-    }
-
-    public function testMustRun()
-    {
-        $process = $this->getProcess('echo foo');
-
-        $this->assertSame($process, $process->mustRun());
-        $this->assertEquals("foo".PHP_EOL, $process->getOutput());
-    }
-
-    public function testSuccessfulMustRunHasCorrectExitCode()
-    {
-        $process = $this->getProcess('echo foo')->mustRun();
-        $this->assertEquals(0, $process->getExitCode());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\ProcessFailedException
-     */
-    public function testMustRunThrowsException()
-    {
-        $process = $this->getProcess('exit 1');
-        $process->mustRun();
-    }
-
-    public function testExitCodeText()
-    {
-        $process = $this->getProcess('');
-        $r = new \ReflectionObject($process);
-        $p = $r->getProperty('exitcode');
-        $p->setAccessible(true);
-
-        $p->setValue($process, 2);
-        $this->assertEquals('Misuse of shell builtins', $process->getExitCodeText());
-    }
-
-    public function testStartIsNonBlocking()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $start = microtime(true);
-        $process->start();
-        $end = microtime(true);
-        $this->assertLessThan(0.2, $end-$start);
-        $process->wait();
-    }
-
-    public function testUpdateStatus()
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertTrue(strlen($process->getOutput()) > 0);
-    }
-
-    public function testGetExitCodeIsNullOnStart()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(200000);"');
-        $this->assertNull($process->getExitCode());
-        $process->start();
-        $this->assertNull($process->getExitCode());
-        $process->wait();
-        $this->assertEquals(0, $process->getExitCode());
-    }
-
-    public function testGetExitCodeIsNullOnWhenStartingAgain()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(200000);"');
-        $process->run();
-        $this->assertEquals(0, $process->getExitCode());
-        $process->start();
-        $this->assertNull($process->getExitCode());
-        $process->wait();
-        $this->assertEquals(0, $process->getExitCode());
-    }
-
-    public function testGetExitCode()
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertSame(0, $process->getExitCode());
-    }
-
-    public function testStatus()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $this->assertFalse($process->isRunning());
-        $this->assertFalse($process->isStarted());
-        $this->assertFalse($process->isTerminated());
-        $this->assertSame(Process::STATUS_READY, $process->getStatus());
-        $process->start();
-        $this->assertTrue($process->isRunning());
-        $this->assertTrue($process->isStarted());
-        $this->assertFalse($process->isTerminated());
-        $this->assertSame(Process::STATUS_STARTED, $process->getStatus());
-        $process->wait();
-        $this->assertFalse($process->isRunning());
-        $this->assertTrue($process->isStarted());
-        $this->assertTrue($process->isTerminated());
-        $this->assertSame(Process::STATUS_TERMINATED, $process->getStatus());
-    }
-
-    public function testStop()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(4);"');
-        $process->start();
-        $this->assertTrue($process->isRunning());
-        $process->stop();
-        $this->assertFalse($process->isRunning());
-    }
-
-    public function testIsSuccessful()
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertTrue($process->isSuccessful());
-    }
-
-    public function testIsSuccessfulOnlyAfterTerminated()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(1);"');
-        $process->start();
-        while ($process->isRunning()) {
-            $this->assertFalse($process->isSuccessful());
-            usleep(300000);
-        }
-
-        $this->assertTrue($process->isSuccessful());
-    }
-
-    public function testIsNotSuccessful()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(500000);throw new \Exception(\'BOUM\');"');
-        $process->start();
-        $this->assertTrue($process->isRunning());
-        $process->wait();
-        $this->assertFalse($process->isSuccessful());
-    }
-
-    public function testProcessIsNotSignaled()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX signals');
-        }
-
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertFalse($process->hasBeenSignaled());
-    }
-
-    public function testProcessWithoutTermSignalIsNotSignaled()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX signals');
-        }
-
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertFalse($process->hasBeenSignaled());
-    }
-
-    public function testProcessWithoutTermSignal()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX signals');
-        }
-
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertEquals(0, $process->getTermSignal());
-    }
-
-    public function testProcessIsSignaledIfStopped()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX signals');
-        }
-
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(4);"');
-        $process->start();
-        $process->stop();
-        $this->assertTrue($process->hasBeenSignaled());
-    }
-
-    public function testProcessWithTermSignal()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX signals');
-        }
-
-        // SIGTERM is only defined if pcntl extension is present
-        $termSignal = defined('SIGTERM') ? SIGTERM : 15;
-
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(4);"');
-        $process->start();
-        $process->stop();
-
-        $this->assertEquals($termSignal, $process->getTermSignal());
-    }
-
-    public function testProcessThrowsExceptionWhenExternallySignaled()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Windows does not support POSIX signals');
-        }
-
-        if (!function_exists('posix_kill')) {
-            $this->markTestSkipped('posix_kill is required for this test');
-        }
-
-        $termSignal = defined('SIGKILL') ? SIGKILL : 9;
-
-        $process = $this->getProcess('exec php -r "while (true) {}"');
-        $process->start();
-        posix_kill($process->getPid(), $termSignal);
-
-        $this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'The process has been signaled with signal "9".');
-        $process->wait();
-    }
-
-    public function testRestart()
-    {
-        $process1 = $this->getProcess(self::$phpBin.' -r "echo getmypid();"');
-        $process1->run();
-        $process2 = $process1->restart();
-
-        $process2->wait(); // wait for output
-
-        // Ensure that both processed finished and the output is numeric
-        $this->assertFalse($process1->isRunning());
-        $this->assertFalse($process2->isRunning());
-        $this->assertTrue(is_numeric($process1->getOutput()));
-        $this->assertTrue(is_numeric($process2->getOutput()));
-
-        // Ensure that restart returned a new process by check that the output is different
-        $this->assertNotEquals($process1->getOutput(), $process2->getOutput());
-    }
-
-    public function testPhpDeadlock()
-    {
-        $this->markTestSkipped('Can cause PHP to hang');
-
-        // Sleep doesn't work as it will allow the process to handle signals and close
-        // file handles from the other end.
-        $process = $this->getProcess(self::$phpBin.' -r "while (true) {}"');
-        $process->start();
-
-        // PHP will deadlock when it tries to cleanup $process
-    }
-
-    public function testRunProcessWithTimeout()
-    {
-        $timeout = 0.5;
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(600000);"');
-        $process->setTimeout($timeout);
-        $start = microtime(true);
-        try {
-            $process->run();
-            $this->fail('A RuntimeException should have been raised');
-        } catch (RuntimeException $e) {
-        }
-        $duration = microtime(true) - $start;
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            // Windows is a bit slower as it read file handles, then allow twice the precision
-            $maxDuration = $timeout + 2 * Process::TIMEOUT_PRECISION;
-        } else {
-            $maxDuration = $timeout + Process::TIMEOUT_PRECISION;
-        }
-
-        $this->assertLessThan($maxDuration, $duration);
-    }
-
-    public function testCheckTimeoutOnNonStartedProcess()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
-        $process->checkTimeout();
-    }
-
-    public function testCheckTimeoutOnTerminatedProcess()
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $process->checkTimeout();
-    }
-
-    public function testCheckTimeoutOnStartedProcess()
-    {
-        $timeout = 0.5;
-        $precision = 100000;
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
-        $process->setTimeout($timeout);
-        $start = microtime(true);
-
-        $process->start();
-
-        try {
-            while ($process->isRunning()) {
-                $process->checkTimeout();
-                usleep($precision);
-            }
-            $this->fail('A RuntimeException should have been raised');
-        } catch (RuntimeException $e) {
-        }
-        $duration = microtime(true) - $start;
-
-        $this->assertLessThan($timeout + $precision, $duration);
-        $this->assertFalse($process->isSuccessful());
-    }
-
-    public function testIdleTimeout()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
-        $process->setTimeout(10);
-        $process->setIdleTimeout(0.5);
-
-        try {
-            $process->run();
-
-            $this->fail('A timeout exception was expected.');
-        } catch (ProcessTimedOutException $ex) {
-            $this->assertTrue($ex->isIdleTimeout());
-            $this->assertFalse($ex->isGeneralTimeout());
-            $this->assertEquals(0.5, $ex->getExceededTimeout());
-        }
-    }
-
-    public function testIdleTimeoutNotExceededWhenOutputIsSent()
-    {
-        $process = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 30; while ($n--) {echo "foo\n"; usleep(100000); }')));
-        $process->setTimeout(2);
-        $process->setIdleTimeout(1);
-
-        try {
-            $process->run();
-            $this->fail('A timeout exception was expected.');
-        } catch (ProcessTimedOutException $ex) {
-            $this->assertTrue($ex->isGeneralTimeout(), 'A general timeout is expected.');
-            $this->assertFalse($ex->isIdleTimeout(), 'No idle timeout is expected.');
-            $this->assertEquals(2, $ex->getExceededTimeout());
-        }
-    }
-
-    public function testStartAfterATimeout()
-    {
-        $process = $this->getProcess(sprintf('%s -r %s', self::$phpBin, escapeshellarg('$n = 1000; while ($n--) {echo \'\'; usleep(1000); }')));
-        $process->setTimeout(0.1);
-
-        try {
-            $process->run();
-            $this->fail('A RuntimeException should have been raised.');
-        } catch (RuntimeException $e) {
-        }
-        $process->start();
-        usleep(1000);
-        $process->stop();
-    }
-
-    public function testGetPid()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $process->start();
-        $this->assertGreaterThan(0, $process->getPid());
-        $process->wait();
-    }
-
-    public function testGetPidIsNullBeforeStart()
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(1);"');
-        $this->assertNull($process->getPid());
-    }
-
-    public function testGetPidIsNullAfterRun()
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->run();
-        $this->assertNull($process->getPid());
-    }
-
-    public function testSignal()
-    {
-        $this->verifyPosixIsEnabled();
-
-        $process = $this->getProcess('exec php -f '.__DIR__.'/SignalListener.php');
-        $process->start();
-        usleep(500000);
-        $process->signal(SIGUSR1);
-
-        while ($process->isRunning() && false === strpos($process->getOutput(), 'Caught SIGUSR1')) {
-            usleep(10000);
-        }
-
-        $this->assertEquals('Caught SIGUSR1', $process->getOutput());
-    }
-
-    public function testExitCodeIsAvailableAfterSignal()
-    {
-        $this->verifyPosixIsEnabled();
-
-        $process = $this->getProcess('sleep 4');
-        $process->start();
-        $process->signal(SIGKILL);
-
-        while ($process->isRunning()) {
-            usleep(10000);
-        }
-
-        $this->assertFalse($process->isRunning());
-        $this->assertTrue($process->hasBeenSignaled());
-        $this->assertFalse($process->isSuccessful());
-        $this->assertEquals(137, $process->getExitCode());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\LogicException
-     */
-    public function testSignalProcessNotRunning()
-    {
-        $this->verifyPosixIsEnabled();
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $process->signal(SIGHUP);
-    }
-
-    /**
-     * @dataProvider provideMethodsThatNeedARunningProcess
-     */
-    public function testMethodsThatNeedARunningProcess($method)
-    {
-        $process = $this->getProcess(self::$phpBin.' -v');
-        $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', sprintf('Process must be started before calling %s.', $method));
-        $process->{$method}();
-    }
-
-    public function provideMethodsThatNeedARunningProcess()
-    {
-        return array(
-            array('getOutput'),
-            array('getIncrementalOutput'),
-            array('getErrorOutput'),
-            array('getIncrementalErrorOutput'),
-            array('wait'),
-        );
-    }
-
-    /**
-     * @dataProvider provideMethodsThatNeedATerminatedProcess
-     */
-    public function testMethodsThatNeedATerminatedProcess($method)
-    {
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(1);"');
-        $process->start();
-        try {
-            $process->{$method}();
-            $process->stop(0);
-            $this->fail('A LogicException must have been thrown');
-        } catch (\Exception $e) {
-            $this->assertInstanceOf('Symfony\Component\Process\Exception\LogicException', $e);
-            $this->assertEquals(sprintf('Process must be terminated before calling %s.', $method), $e->getMessage());
-        }
-        $process->stop(0);
-    }
-
-    public function provideMethodsThatNeedATerminatedProcess()
-    {
-        return array(
-            array('hasBeenSignaled'),
-            array('getTermSignal'),
-            array('hasBeenStopped'),
-            array('getStopSignal'),
-        );
-    }
-
-    private function verifyPosixIsEnabled()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('POSIX signals do not work on Windows');
-        }
-        if (!defined('SIGUSR1')) {
-            $this->markTestSkipped('The pcntl extension is not enabled');
-        }
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     */
-    public function testSignalWithWrongIntSignal()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('POSIX signals do not work on Windows');
-        }
-
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
-        $process->start();
-        $process->signal(-4);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     */
-    public function testSignalWithWrongNonIntSignal()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('POSIX signals do not work on Windows');
-        }
-
-        $process = $this->getProcess(self::$phpBin.' -r "sleep(3);"');
-        $process->start();
-        $process->signal('Céphalopodes');
-    }
-
-    public function testDisableOutputDisablesTheOutput()
-    {
-        $p = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $this->assertFalse($p->isOutputDisabled());
-        $p->disableOutput();
-        $this->assertTrue($p->isOutputDisabled());
-        $p->enableOutput();
-        $this->assertFalse($p->isOutputDisabled());
-    }
-
-    public function testDisableOutputWhileRunningThrowsException()
-    {
-        $p = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $p->start();
-        $this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'Disabling output while the process is running is not possible.');
-        $p->disableOutput();
-    }
-
-    public function testEnableOutputWhileRunningThrowsException()
-    {
-        $p = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $p->disableOutput();
-        $p->start();
-        $this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'Enabling output while the process is running is not possible.');
-        $p->enableOutput();
-    }
-
-    public function testEnableOrDisableOutputAfterRunDoesNotThrowException()
-    {
-        $p = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $p->disableOutput();
-        $p->start();
-        $p->wait();
-        $p->enableOutput();
-        $p->disableOutput();
-    }
-
-    public function testDisableOutputWhileIdleTimeoutIsSet()
-    {
-        $process = $this->getProcess('sleep 3');
-        $process->setIdleTimeout(1);
-        $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', 'Output can not be disabled while an idle timeout is set.');
-        $process->disableOutput();
-    }
-
-    public function testSetIdleTimeoutWhileOutputIsDisabled()
-    {
-        $process = $this->getProcess('sleep 3');
-        $process->disableOutput();
-        $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', 'Idle timeout can not be set while the output is disabled.');
-        $process->setIdleTimeout(1);
-    }
-
-    public function testSetNullIdleTimeoutWhileOutputIsDisabled()
-    {
-        $process = $this->getProcess('sleep 3');
-        $process->disableOutput();
-        $process->setIdleTimeout(null);
-    }
-
-    /**
-     * @dataProvider provideStartMethods
-     */
-    public function testStartWithACallbackAndDisabledOutput($startMethod, $exception, $exceptionMessage)
-    {
-        $p = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $p->disableOutput();
-        $this->setExpectedException($exception, $exceptionMessage);
-        $p->{$startMethod}(function () {});
-    }
-
-    public function provideStartMethods()
-    {
-        return array(
-            array('start', 'Symfony\Component\Process\Exception\LogicException', 'Output has been disabled, enable it to allow the use of a callback.'),
-            array('run', 'Symfony\Component\Process\Exception\LogicException', 'Output has been disabled, enable it to allow the use of a callback.'),
-            array('mustRun', 'Symfony\Component\Process\Exception\LogicException', 'Output has been disabled, enable it to allow the use of a callback.'),
-        );
-    }
-
-    /**
-     * @dataProvider provideOutputFetchingMethods
-     */
-    public function testGetOutputWhileDisabled($fetchMethod)
-    {
-        $p = $this->getProcess(self::$phpBin.' -r "usleep(500000);"');
-        $p->disableOutput();
-        $p->start();
-        $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', 'Output has been disabled.');
-        $p->{$fetchMethod}();
-    }
-
-    public function provideOutputFetchingMethods()
-    {
-        return array(
-            array('getOutput'),
-            array('getIncrementalOutput'),
-            array('getErrorOutput'),
-            array('getIncrementalErrorOutput'),
-        );
-    }
-
-    public function responsesCodeProvider()
-    {
-        return array(
-            //expected output / getter / code to execute
-            //array(1,'getExitCode','exit(1);'),
-            //array(true,'isSuccessful','exit();'),
-            array('output', 'getOutput', 'echo \'output\';'),
-        );
-    }
-
-    public function pipesCodeProvider()
-    {
-        $variations = array(
-            'fwrite(STDOUT, $in = file_get_contents(\'php://stdin\')); fwrite(STDERR, $in);',
-            'include \''.__DIR__.'/PipeStdinInStdoutStdErrStreamSelect.php\';',
-        );
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            // Avoid XL buffers on Windows because of https://bugs.php.net/bug.php?id=65650
-            $sizes = array(1, 2, 4, 8);
-        } else {
-            $sizes = array(1, 16, 64, 1024, 4096);
-        }
-
-        $codes = array();
-        foreach ($sizes as $size) {
-            foreach ($variations as $code) {
-                $codes[] = array($code, $size);
-            }
-        }
-
-        return $codes;
-    }
-
-    /**
-     * provides default method names for simple getter/setter.
-     */
-    public function methodProvider()
-    {
-        $defaults = array(
-            array('CommandLine'),
-            array('Timeout'),
-            array('WorkingDirectory'),
-            array('Env'),
-            array('Stdin'),
-            array('Input'),
-            array('Options'),
-        );
-
-        return $defaults;
-    }
-
-    /**
-     * @param string      $commandline
-     * @param null|string $cwd
-     * @param null|array  $env
-     * @param null|string $input
-     * @param int         $timeout
-     * @param array       $options
-     *
-     * @return Process
-     */
-    abstract protected function getProcess($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = array());
-}
-
-class Stringifiable
-{
-    public function __toString()
-    {
-        return 'stringifiable';
-    }
-}
-
-class NonStringifiable
-{
-}
diff --git a/core/vendor/symfony/process/Tests/ExecutableFinderTest.php b/core/vendor/symfony/process/Tests/ExecutableFinderTest.php
deleted file mode 100644
index 61a471b..0000000
--- a/core/vendor/symfony/process/Tests/ExecutableFinderTest.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\ExecutableFinder;
-
-/**
- * @author Chris Smith <chris@cs278.org>
- */
-class ExecutableFinderTest extends \PHPUnit_Framework_TestCase
-{
-    private $path;
-
-    protected function tearDown()
-    {
-        if ($this->path) {
-            // Restore path if it was changed.
-            putenv('PATH='.$this->path);
-        }
-    }
-
-    private function setPath($path)
-    {
-        $this->path = getenv('PATH');
-        putenv('PATH='.$path);
-    }
-
-    public function testFind()
-    {
-        if (!defined('PHP_BINARY')) {
-            $this->markTestSkipped('Requires the PHP_BINARY constant');
-        }
-
-        if (ini_get('open_basedir')) {
-            $this->markTestSkipped('Cannot test when open_basedir is set');
-        }
-
-        $this->setPath(dirname(PHP_BINARY));
-
-        $finder = new ExecutableFinder();
-        $result = $finder->find($this->getPhpBinaryName());
-
-        $this->assertSamePath(PHP_BINARY, $result);
-    }
-
-    public function testFindWithDefault()
-    {
-        if (ini_get('open_basedir')) {
-            $this->markTestSkipped('Cannot test when open_basedir is set');
-        }
-
-        $expected = 'defaultValue';
-
-        $this->setPath('');
-
-        $finder = new ExecutableFinder();
-        $result = $finder->find('foo', $expected);
-
-        $this->assertEquals($expected, $result);
-    }
-
-    public function testFindWithExtraDirs()
-    {
-        if (!defined('PHP_BINARY')) {
-            $this->markTestSkipped('Requires the PHP_BINARY constant');
-        }
-
-        if (ini_get('open_basedir')) {
-            $this->markTestSkipped('Cannot test when open_basedir is set');
-        }
-
-        $this->setPath('');
-
-        $extraDirs = array(dirname(PHP_BINARY));
-
-        $finder = new ExecutableFinder();
-        $result = $finder->find($this->getPhpBinaryName(), null, $extraDirs);
-
-        $this->assertSamePath(PHP_BINARY, $result);
-    }
-
-    public function testFindWithOpenBaseDir()
-    {
-        if (!defined('PHP_BINARY')) {
-            $this->markTestSkipped('Requires the PHP_BINARY constant');
-        }
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Cannot run test on windows');
-        }
-
-        if (ini_get('open_basedir')) {
-            $this->markTestSkipped('Cannot test when open_basedir is set');
-        }
-
-        $this->iniSet('open_basedir', dirname(PHP_BINARY).(!defined('HHVM_VERSION') ? PATH_SEPARATOR.'/' : ''));
-
-        $finder = new ExecutableFinder();
-        $result = $finder->find($this->getPhpBinaryName());
-
-        $this->assertSamePath(PHP_BINARY, $result);
-    }
-
-    public function testFindProcessInOpenBasedir()
-    {
-        if (ini_get('open_basedir')) {
-            $this->markTestSkipped('Cannot test when open_basedir is set');
-        }
-
-        if (!defined('PHP_BINARY')) {
-            $this->markTestSkipped('Requires the PHP_BINARY constant');
-        }
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Cannot run test on windows');
-        }
-
-        $this->setPath('');
-        $this->iniSet('open_basedir', PHP_BINARY.(!defined('HHVM_VERSION') ? PATH_SEPARATOR.'/' : ''));
-
-        $finder = new ExecutableFinder();
-        $result = $finder->find($this->getPhpBinaryName(), false);
-
-        $this->assertSamePath(PHP_BINARY, $result);
-    }
-
-    private function assertSamePath($expected, $tested)
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals(strtolower($expected), strtolower($tested));
-        } else {
-            $this->assertEquals($expected, $tested);
-        }
-    }
-
-    private function getPhpBinaryName()
-    {
-        return basename(PHP_BINARY, '\\' === DIRECTORY_SEPARATOR ? '.exe' : '');
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/NonStopableProcess.php b/core/vendor/symfony/process/Tests/NonStopableProcess.php
deleted file mode 100644
index 692feeb..0000000
--- a/core/vendor/symfony/process/Tests/NonStopableProcess.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * Runs a PHP script that can be stopped only with a SIGKILL (9) signal for 3 seconds.
- *
- * @args duration Run this script with a custom duration
- *
- * @example `php NonStopableProcess.php 42` will run the script for 42 seconds
- */
-function handleSignal($signal)
-{
-    switch ($signal) {
-        case SIGTERM:
-            $name = 'SIGTERM';
-            break;
-        case SIGINT:
-            $name = 'SIGINT';
-            break;
-        default:
-            $name = $signal.' (unknown)';
-            break;
-    }
-
-    echo "received signal $name\n";
-}
-
-declare (ticks = 1);
-pcntl_signal(SIGTERM, 'handleSignal');
-pcntl_signal(SIGINT, 'handleSignal');
-
-$duration = isset($argv[1]) ? (int) $argv[1] : 3;
-$start = microtime(true);
-
-while ($duration > (microtime(true) - $start)) {
-    usleep(1000);
-}
diff --git a/core/vendor/symfony/process/Tests/PhpExecutableFinderTest.php b/core/vendor/symfony/process/Tests/PhpExecutableFinderTest.php
deleted file mode 100644
index cd4abed..0000000
--- a/core/vendor/symfony/process/Tests/PhpExecutableFinderTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\PhpExecutableFinder;
-
-/**
- * @author Robert Schönthal <seroscho@googlemail.com>
- */
-class PhpExecutableFinderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * tests find() with the env var PHP_PATH.
-     */
-    public function testFindWithPhpPath()
-    {
-        if (defined('PHP_BINARY')) {
-            $this->markTestSkipped('The PHP binary is easily available as of PHP 5.4');
-        }
-
-        $f = new PhpExecutableFinder();
-
-        $current = $f->find();
-
-        //not executable PHP_PATH
-        putenv('PHP_PATH=/not/executable/php');
-        $this->assertFalse($f->find(), '::find() returns false for not executable PHP');
-        $this->assertFalse($f->find(false), '::find() returns false for not executable PHP');
-
-        //executable PHP_PATH
-        putenv('PHP_PATH='.$current);
-        $this->assertEquals($f->find(), $current, '::find() returns the executable PHP');
-        $this->assertEquals($f->find(false), $current, '::find() returns the executable PHP');
-    }
-
-    /**
-     * tests find() with the env var PHP_PATH.
-     */
-    public function testFindWithHHVM()
-    {
-        if (!defined('HHVM_VERSION')) {
-            $this->markTestSkipped('Should be executed in HHVM context.');
-        }
-
-        $f = new PhpExecutableFinder();
-
-        $current = getenv('PHP_BINARY') ?: PHP_BINARY;
-
-        $this->assertEquals($current.' --php', $f->find(), '::find() returns the executable PHP');
-        $this->assertEquals($current, $f->find(false), '::find() returns the executable PHP');
-    }
-
-    /**
-     * tests find() with the env var PHP_PATH.
-     */
-    public function testFindArguments()
-    {
-        $f = new PhpExecutableFinder();
-
-        if (defined('HHVM_VERSION')) {
-            $this->assertEquals($f->findArguments(), array('--php'), '::findArguments() returns HHVM arguments');
-        } else {
-            $this->assertEquals($f->findArguments(), array(), '::findArguments() returns no arguments');
-        }
-    }
-
-    /**
-     * tests find() with default executable.
-     */
-    public function testFindWithSuffix()
-    {
-        if (defined('PHP_BINARY')) {
-            $this->markTestSkipped('The PHP binary is easily available as of PHP 5.4');
-        }
-
-        putenv('PHP_PATH=');
-        putenv('PHP_PEAR_PHP_BIN=');
-        $f = new PhpExecutableFinder();
-
-        $current = $f->find();
-
-        //TODO maybe php executable is custom or even Windows
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertTrue(is_executable($current));
-            $this->assertTrue((bool) preg_match('/'.addslashes(DIRECTORY_SEPARATOR).'php\.(exe|bat|cmd|com)$/i', $current), '::find() returns the executable PHP with suffixes');
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/PhpProcessTest.php b/core/vendor/symfony/process/Tests/PhpProcessTest.php
deleted file mode 100644
index 5dc546c..0000000
--- a/core/vendor/symfony/process/Tests/PhpProcessTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\PhpExecutableFinder;
-use Symfony\Component\Process\PhpProcess;
-
-class PhpProcessTest extends \PHPUnit_Framework_TestCase
-{
-    public function testNonBlockingWorks()
-    {
-        $expected = 'hello world!';
-        $process = new PhpProcess(<<<PHP
-<?php echo '$expected';
-PHP
-        );
-        $process->start();
-        $process->wait();
-        $this->assertEquals($expected, $process->getOutput());
-    }
-
-    public function testCommandLine()
-    {
-        $process = new PhpProcess(<<<PHP
-<?php echo 'foobar';
-PHP
-        );
-
-        $f = new PhpExecutableFinder();
-        $commandLine = $f->find();
-
-        $this->assertSame($commandLine, $process->getCommandLine(), '::getCommandLine() returns the command line of PHP before start');
-
-        $process->start();
-        $this->assertSame($commandLine, $process->getCommandLine(), '::getCommandLine() returns the command line of PHP after start');
-
-        $process->wait();
-        $this->assertSame($commandLine, $process->getCommandLine(), '::getCommandLine() returns the command line of PHP after wait');
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php b/core/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php
deleted file mode 100644
index 26673ea..0000000
--- a/core/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-define('ERR_SELECT_FAILED', 1);
-define('ERR_TIMEOUT', 2);
-define('ERR_READ_FAILED', 3);
-define('ERR_WRITE_FAILED', 4);
-
-$read = array(STDIN);
-$write = array(STDOUT, STDERR);
-
-stream_set_blocking(STDIN, 0);
-stream_set_blocking(STDOUT, 0);
-stream_set_blocking(STDERR, 0);
-
-$out = $err = '';
-while ($read || $write) {
-    $r = $read;
-    $w = $write;
-    $e = null;
-    $n = stream_select($r, $w, $e, 5);
-
-    if (false === $n) {
-        die(ERR_SELECT_FAILED);
-    } elseif ($n < 1) {
-        die(ERR_TIMEOUT);
-    }
-
-    if (in_array(STDOUT, $w) && strlen($out) > 0) {
-        $written = fwrite(STDOUT, (binary) $out, 32768);
-        if (false === $written) {
-            die(ERR_WRITE_FAILED);
-        }
-        $out = (binary) substr($out, $written);
-    }
-    if (null === $read && '' === $out) {
-        $write = array_diff($write, array(STDOUT));
-    }
-
-    if (in_array(STDERR, $w) && strlen($err) > 0) {
-        $written = fwrite(STDERR, (binary) $err, 32768);
-        if (false === $written) {
-            die(ERR_WRITE_FAILED);
-        }
-        $err = (binary) substr($err, $written);
-    }
-    if (null === $read && '' === $err) {
-        $write = array_diff($write, array(STDERR));
-    }
-
-    if ($r) {
-        $str = fread(STDIN, 32768);
-        if (false !== $str) {
-            $out .= $str;
-            $err .= $str;
-        }
-        if (false === $str || feof(STDIN)) {
-            $read = null;
-            if (!feof(STDIN)) {
-                die(ERR_READ_FAILED);
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/ProcessBuilderTest.php b/core/vendor/symfony/process/Tests/ProcessBuilderTest.php
deleted file mode 100644
index 1b5056d..0000000
--- a/core/vendor/symfony/process/Tests/ProcessBuilderTest.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\ProcessBuilder;
-
-class ProcessBuilderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInheritEnvironmentVars()
-    {
-        $_ENV['MY_VAR_1'] = 'foo';
-
-        $proc = ProcessBuilder::create()
-            ->add('foo')
-            ->getProcess();
-
-        unset($_ENV['MY_VAR_1']);
-
-        $env = $proc->getEnv();
-        $this->assertArrayHasKey('MY_VAR_1', $env);
-        $this->assertEquals('foo', $env['MY_VAR_1']);
-    }
-
-    public function testAddEnvironmentVariables()
-    {
-        $pb = new ProcessBuilder();
-        $env = array(
-            'foo' => 'bar',
-            'foo2' => 'bar2',
-        );
-        $proc = $pb
-            ->add('command')
-            ->setEnv('foo', 'bar2')
-            ->addEnvironmentVariables($env)
-            ->inheritEnvironmentVariables(false)
-            ->getProcess()
-        ;
-
-        $this->assertSame($env, $proc->getEnv());
-    }
-
-    public function testProcessShouldInheritAndOverrideEnvironmentVars()
-    {
-        $_ENV['MY_VAR_1'] = 'foo';
-
-        $proc = ProcessBuilder::create()
-            ->setEnv('MY_VAR_1', 'bar')
-            ->add('foo')
-            ->getProcess();
-
-        unset($_ENV['MY_VAR_1']);
-
-        $env = $proc->getEnv();
-        $this->assertArrayHasKey('MY_VAR_1', $env);
-        $this->assertEquals('bar', $env['MY_VAR_1']);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
-     */
-    public function testNegativeTimeoutFromSetter()
-    {
-        $pb = new ProcessBuilder();
-        $pb->setTimeout(-1);
-    }
-
-    public function testNullTimeout()
-    {
-        $pb = new ProcessBuilder();
-        $pb->setTimeout(10);
-        $pb->setTimeout(null);
-
-        $r = new \ReflectionObject($pb);
-        $p = $r->getProperty('timeout');
-        $p->setAccessible(true);
-
-        $this->assertNull($p->getValue($pb));
-    }
-
-    public function testShouldSetArguments()
-    {
-        $pb = new ProcessBuilder(array('initial'));
-        $pb->setArguments(array('second'));
-
-        $proc = $pb->getProcess();
-
-        $this->assertContains('second', $proc->getCommandLine());
-    }
-
-    public function testPrefixIsPrependedToAllGeneratedProcess()
-    {
-        $pb = new ProcessBuilder();
-        $pb->setPrefix('/usr/bin/php');
-
-        $proc = $pb->setArguments(array('-v'))->getProcess();
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals('"/usr/bin/php" "-v"', $proc->getCommandLine());
-        } else {
-            $this->assertEquals("'/usr/bin/php' '-v'", $proc->getCommandLine());
-        }
-
-        $proc = $pb->setArguments(array('-i'))->getProcess();
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals('"/usr/bin/php" "-i"', $proc->getCommandLine());
-        } else {
-            $this->assertEquals("'/usr/bin/php' '-i'", $proc->getCommandLine());
-        }
-    }
-
-    public function testArrayPrefixesArePrependedToAllGeneratedProcess()
-    {
-        $pb = new ProcessBuilder();
-        $pb->setPrefix(array('/usr/bin/php', 'composer.phar'));
-
-        $proc = $pb->setArguments(array('-v'))->getProcess();
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals('"/usr/bin/php" "composer.phar" "-v"', $proc->getCommandLine());
-        } else {
-            $this->assertEquals("'/usr/bin/php' 'composer.phar' '-v'", $proc->getCommandLine());
-        }
-
-        $proc = $pb->setArguments(array('-i'))->getProcess();
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals('"/usr/bin/php" "composer.phar" "-i"', $proc->getCommandLine());
-        } else {
-            $this->assertEquals("'/usr/bin/php' 'composer.phar' '-i'", $proc->getCommandLine());
-        }
-    }
-
-    public function testShouldEscapeArguments()
-    {
-        $pb = new ProcessBuilder(array('%path%', 'foo " bar', '%baz%baz'));
-        $proc = $pb->getProcess();
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertSame('^%"path"^% "foo \\" bar" "%baz%baz"', $proc->getCommandLine());
-        } else {
-            $this->assertSame("'%path%' 'foo \" bar' '%baz%baz'", $proc->getCommandLine());
-        }
-    }
-
-    public function testShouldEscapeArgumentsAndPrefix()
-    {
-        $pb = new ProcessBuilder(array('arg'));
-        $pb->setPrefix('%prefix%');
-        $proc = $pb->getProcess();
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertSame('^%"prefix"^% "arg"', $proc->getCommandLine());
-        } else {
-            $this->assertSame("'%prefix%' 'arg'", $proc->getCommandLine());
-        }
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\LogicException
-     */
-    public function testShouldThrowALogicExceptionIfNoPrefixAndNoArgument()
-    {
-        ProcessBuilder::create()->getProcess();
-    }
-
-    public function testShouldNotThrowALogicExceptionIfNoArgument()
-    {
-        $process = ProcessBuilder::create()
-            ->setPrefix('/usr/bin/php')
-            ->getProcess();
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
-        } else {
-            $this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
-        }
-    }
-
-    public function testShouldNotThrowALogicExceptionIfNoPrefix()
-    {
-        $process = ProcessBuilder::create(array('/usr/bin/php'))
-            ->getProcess();
-
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
-        } else {
-            $this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
-        }
-    }
-
-    public function testShouldReturnProcessWithDisabledOutput()
-    {
-        $process = ProcessBuilder::create(array('/usr/bin/php'))
-            ->disableOutput()
-            ->getProcess();
-
-        $this->assertTrue($process->isOutputDisabled());
-    }
-
-    public function testShouldReturnProcessWithEnabledOutput()
-    {
-        $process = ProcessBuilder::create(array('/usr/bin/php'))
-            ->disableOutput()
-            ->enableOutput()
-            ->getProcess();
-
-        $this->assertFalse($process->isOutputDisabled());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\InvalidArgumentException
-     * @expectedExceptionMessage Symfony\Component\Process\ProcessBuilder::setInput only accepts strings or stream resources.
-     */
-    public function testInvalidInput()
-    {
-        $builder = ProcessBuilder::create();
-        $builder->setInput(array());
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php b/core/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php
deleted file mode 100644
index b028395..0000000
--- a/core/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\Exception\ProcessFailedException;
-
-/**
- * @author Sebastian Marek <proofek@gmail.com>
- */
-class ProcessFailedExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * tests ProcessFailedException throws exception if the process was successful.
-     */
-    public function testProcessFailedExceptionThrowsException()
-    {
-        $process = $this->getMock(
-            'Symfony\Component\Process\Process',
-            array('isSuccessful'),
-            array('php')
-        );
-        $process->expects($this->once())
-            ->method('isSuccessful')
-            ->will($this->returnValue(true));
-
-        $this->setExpectedException(
-            '\InvalidArgumentException',
-            'Expected a failed process, but the given process was successful.'
-        );
-
-        new ProcessFailedException($process);
-    }
-
-    /**
-     * tests ProcessFailedException uses information from process output
-     * to generate exception message.
-     */
-    public function testProcessFailedExceptionPopulatesInformationFromProcessOutput()
-    {
-        $cmd = 'php';
-        $exitCode = 1;
-        $exitText = 'General error';
-        $output = 'Command output';
-        $errorOutput = 'FATAL: Unexpected error';
-
-        $process = $this->getMock(
-            'Symfony\Component\Process\Process',
-            array('isSuccessful', 'getOutput', 'getErrorOutput', 'getExitCode', 'getExitCodeText', 'isOutputDisabled'),
-            array($cmd)
-        );
-        $process->expects($this->once())
-            ->method('isSuccessful')
-            ->will($this->returnValue(false));
-
-        $process->expects($this->once())
-            ->method('getOutput')
-            ->will($this->returnValue($output));
-
-        $process->expects($this->once())
-            ->method('getErrorOutput')
-            ->will($this->returnValue($errorOutput));
-
-        $process->expects($this->once())
-            ->method('getExitCode')
-            ->will($this->returnValue($exitCode));
-
-        $process->expects($this->once())
-            ->method('getExitCodeText')
-            ->will($this->returnValue($exitText));
-
-        $process->expects($this->once())
-            ->method('isOutputDisabled')
-            ->will($this->returnValue(false));
-
-        $exception = new ProcessFailedException($process);
-
-        $this->assertEquals(
-            "The command \"$cmd\" failed.\nExit Code: $exitCode($exitText)\n\nOutput:\n================\n{$output}\n\nError Output:\n================\n{$errorOutput}",
-            $exception->getMessage()
-        );
-    }
-
-    /**
-     * Tests that ProcessFailedException does not extract information from
-     * process output if it was previously disabled
-     */
-    public function testDisabledOutputInFailedExceptionDoesNotPopulateOutput()
-    {
-        $cmd = 'php';
-        $exitCode = 1;
-        $exitText = 'General error';
-
-        $process = $this->getMock(
-            'Symfony\Component\Process\Process',
-            array('isSuccessful', 'isOutputDisabled', 'getExitCode', 'getExitCodeText', 'getOutput', 'getErrorOutput'),
-            array($cmd)
-        );
-        $process->expects($this->once())
-            ->method('isSuccessful')
-            ->will($this->returnValue(false));
-
-        $process->expects($this->never())
-            ->method('getOutput');
-
-        $process->expects($this->never())
-            ->method('getErrorOutput');
-
-        $process->expects($this->once())
-            ->method('getExitCode')
-            ->will($this->returnValue($exitCode));
-
-        $process->expects($this->once())
-            ->method('getExitCodeText')
-            ->will($this->returnValue($exitText));
-
-        $process->expects($this->once())
-            ->method('isOutputDisabled')
-            ->will($this->returnValue(true));
-
-        $exception = new ProcessFailedException($process);
-
-        $this->assertEquals(
-            "The command \"$cmd\" failed.\nExit Code: $exitCode($exitText)",
-            $exception->getMessage()
-        );
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/ProcessInSigchildEnvironment.php b/core/vendor/symfony/process/Tests/ProcessInSigchildEnvironment.php
deleted file mode 100644
index 3977bcd..0000000
--- a/core/vendor/symfony/process/Tests/ProcessInSigchildEnvironment.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\Process;
-
-class ProcessInSigchildEnvironment extends Process
-{
-    protected function isSigchildEnabled()
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/ProcessUtilsTest.php b/core/vendor/symfony/process/Tests/ProcessUtilsTest.php
deleted file mode 100644
index e6564cd..0000000
--- a/core/vendor/symfony/process/Tests/ProcessUtilsTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\ProcessUtils;
-
-class ProcessUtilsTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider dataArguments
-     */
-    public function testEscapeArgument($result, $argument)
-    {
-        $this->assertSame($result, ProcessUtils::escapeArgument($argument));
-    }
-
-    public function dataArguments()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            return array(
-                array('"\"php\" \"-v\""', '"php" "-v"'),
-                array('"foo bar"', 'foo bar'),
-                array('^%"path"^%', '%path%'),
-                array('"<|>\\" \\"\'f"', '<|>" "\'f'),
-                array('""', ''),
-                array('"with\trailingbs\\\\"', 'with\trailingbs\\'),
-            );
-        }
-
-        return array(
-            array("'\"php\" \"-v\"'", '"php" "-v"'),
-            array("'foo bar'", 'foo bar'),
-            array("'%path%'", '%path%'),
-            array("'<|>\" \"'\\''f'", '<|>" "\'f'),
-            array("''", ''),
-            array("'with\\trailingbs\\'", 'with\trailingbs\\'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/SigchildDisabledProcessTest.php b/core/vendor/symfony/process/Tests/SigchildDisabledProcessTest.php
deleted file mode 100644
index fdae5ec..0000000
--- a/core/vendor/symfony/process/Tests/SigchildDisabledProcessTest.php
+++ /dev/null
@@ -1,263 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-class SigchildDisabledProcessTest extends AbstractProcessTest
-{
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testGetExitCode()
-    {
-        parent::testGetExitCode();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testGetExitCodeIsNullOnStart()
-    {
-        parent::testGetExitCodeIsNullOnStart();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testGetExitCodeIsNullOnWhenStartingAgain()
-    {
-        parent::testGetExitCodeIsNullOnWhenStartingAgain();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testExitCodeCommandFailed()
-    {
-        parent::testExitCodeCommandFailed();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testMustRun()
-    {
-        parent::testMustRun();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testSuccessfulMustRunHasCorrectExitCode()
-    {
-        parent::testSuccessfulMustRunHasCorrectExitCode();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     */
-    public function testMustRunThrowsException()
-    {
-        parent::testMustRunThrowsException();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     */
-    public function testProcessIsSignaledIfStopped()
-    {
-        parent::testProcessIsSignaledIfStopped();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessWithTermSignal()
-    {
-        parent::testProcessWithTermSignal();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessIsNotSignaled()
-    {
-        parent::testProcessIsNotSignaled();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessWithoutTermSignal()
-    {
-        parent::testProcessWithoutTermSignal();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testCheckTimeoutOnStartedProcess()
-    {
-        parent::testCheckTimeoutOnStartedProcess();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.
-     */
-    public function testGetPid()
-    {
-        parent::testGetPid();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.
-     */
-    public function testGetPidIsNullBeforeStart()
-    {
-        parent::testGetPidIsNullBeforeStart();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.
-     */
-    public function testGetPidIsNullAfterRun()
-    {
-        parent::testGetPidIsNullAfterRun();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testExitCodeText()
-    {
-        $process = $this->getProcess('qdfsmfkqsdfmqmsd');
-        $process->run();
-
-        $process->getExitCodeText();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testExitCodeTextIsNullWhenExitCodeIsNull()
-    {
-        parent::testExitCodeTextIsNullWhenExitCodeIsNull();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testIsSuccessful()
-    {
-        parent::testIsSuccessful();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testIsSuccessfulOnlyAfterTerminated()
-    {
-        parent::testIsSuccessfulOnlyAfterTerminated();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testIsNotSuccessful()
-    {
-        parent::testIsNotSuccessful();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.
-     */
-    public function testTTYCommandExitCode()
-    {
-        parent::testTTYCommandExitCode();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process can not be signaled.
-     */
-    public function testSignal()
-    {
-        parent::testSignal();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessWithoutTermSignalIsNotSignaled()
-    {
-        parent::testProcessWithoutTermSignalIsNotSignaled();
-    }
-
-    public function testStopWithTimeoutIsActuallyWorking()
-    {
-        $this->markTestSkipped('Stopping with signal is not supported in sigchild environment');
-    }
-
-    public function testProcessThrowsExceptionWhenExternallySignaled()
-    {
-        $this->markTestSkipped('Retrieving Pid is not supported in sigchild environment');
-    }
-
-    public function testExitCodeIsAvailableAfterSignal()
-    {
-        $this->markTestSkipped('Signal is not supported in sigchild environment');
-    }
-
-    public function testRunProcessWithTimeout()
-    {
-        $this->markTestSkipped('Signal (required for timeout) is not supported in sigchild environment');
-    }
-
-    public function provideStartMethods()
-    {
-        return array(
-            array('start', 'Symfony\Component\Process\Exception\LogicException', 'Output has been disabled, enable it to allow the use of a callback.'),
-            array('run', 'Symfony\Component\Process\Exception\LogicException', 'Output has been disabled, enable it to allow the use of a callback.'),
-            array('mustRun', 'Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. You must use setEnhanceSigchildCompatibility() to use this method.'),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getProcess($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = array())
-    {
-        $process = new ProcessInSigchildEnvironment($commandline, $cwd, $env, $input, $timeout, $options);
-        $process->setEnhanceSigchildCompatibility(false);
-
-        return $process;
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/SigchildEnabledProcessTest.php b/core/vendor/symfony/process/Tests/SigchildEnabledProcessTest.php
deleted file mode 100644
index 2668a9b..0000000
--- a/core/vendor/symfony/process/Tests/SigchildEnabledProcessTest.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-class SigchildEnabledProcessTest extends AbstractProcessTest
-{
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessIsSignaledIfStopped()
-    {
-        parent::testProcessIsSignaledIfStopped();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessWithTermSignal()
-    {
-        parent::testProcessWithTermSignal();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessIsNotSignaled()
-    {
-        parent::testProcessIsNotSignaled();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessWithoutTermSignal()
-    {
-        parent::testProcessWithoutTermSignal();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.
-     */
-    public function testGetPid()
-    {
-        parent::testGetPid();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.
-     */
-    public function testGetPidIsNullBeforeStart()
-    {
-        parent::testGetPidIsNullBeforeStart();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process identifier can not be retrieved.
-     */
-    public function testGetPidIsNullAfterRun()
-    {
-        parent::testGetPidIsNullAfterRun();
-    }
-
-    public function testExitCodeText()
-    {
-        $process = $this->getProcess('qdfsmfkqsdfmqmsd');
-        $process->run();
-
-        $this->assertInternalType('string', $process->getExitCodeText());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. The process can not be signaled.
-     */
-    public function testSignal()
-    {
-        parent::testSignal();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Process\Exception\RuntimeException
-     * @expectedExceptionMessage This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.
-     */
-    public function testProcessWithoutTermSignalIsNotSignaled()
-    {
-        parent::testProcessWithoutTermSignalIsNotSignaled();
-    }
-
-    public function testProcessThrowsExceptionWhenExternallySignaled()
-    {
-        $this->markTestSkipped('Retrieving Pid is not supported in sigchild environment');
-    }
-
-    public function testExitCodeIsAvailableAfterSignal()
-    {
-        $this->markTestSkipped('Signal is not supported in sigchild environment');
-    }
-
-    public function testStartAfterATimeout()
-    {
-        if ('\\' === DIRECTORY_SEPARATOR) {
-            $this->markTestSkipped('Restarting a timed-out process on Windows is not supported in sigchild environment');
-        }
-        parent::testStartAfterATimeout();
-    }
-
-    public function testStopWithTimeoutIsActuallyWorking()
-    {
-        $this->markTestSkipped('Stopping with signal is not supported in sigchild environment');
-    }
-
-    public function testRunProcessWithTimeout()
-    {
-        $this->markTestSkipped('Signal (required for timeout) is not supported in sigchild environment');
-    }
-
-    public function testCheckTimeoutOnStartedProcess()
-    {
-        $this->markTestSkipped('Signal (required for timeout) is not supported in sigchild environment');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getProcess($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = array())
-    {
-        $process = new ProcessInSigchildEnvironment($commandline, $cwd, $env, $input, $timeout, $options);
-        $process->setEnhanceSigchildCompatibility(true);
-
-        return $process;
-    }
-}
diff --git a/core/vendor/symfony/process/Tests/SignalListener.php b/core/vendor/symfony/process/Tests/SignalListener.php
deleted file mode 100644
index bd4d138..0000000
--- a/core/vendor/symfony/process/Tests/SignalListener.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-// required for signal handling
-declare (ticks = 1);
-
-pcntl_signal(SIGUSR1, function () {echo 'Caught SIGUSR1'; exit;});
-
-$n = 0;
-
-// ticks require activity to work - sleep(4); does not work
-while ($n < 400) {
-    usleep(10000);
-    ++$n;
-}
-
-return;
diff --git a/core/vendor/symfony/process/Tests/SimpleProcessTest.php b/core/vendor/symfony/process/Tests/SimpleProcessTest.php
deleted file mode 100644
index 98eeb0e..0000000
--- a/core/vendor/symfony/process/Tests/SimpleProcessTest.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Process\Tests;
-
-use Symfony\Component\Process\Process;
-
-class SimpleProcessTest extends AbstractProcessTest
-{
-    private $enabledSigchild = false;
-
-    protected function setUp()
-    {
-        ob_start();
-        phpinfo(INFO_GENERAL);
-
-        $this->enabledSigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
-    }
-
-    public function testGetExitCode()
-    {
-        $this->skipIfPHPSigchild(); // This test use exitcode that is not available in this case
-        parent::testGetExitCode();
-    }
-
-    public function testExitCodeCommandFailed()
-    {
-        $this->skipIfPHPSigchild(); // This test use exitcode that is not available in this case
-        parent::testExitCodeCommandFailed();
-    }
-
-    public function testProcessIsSignaledIfStopped()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved');
-        parent::testProcessIsSignaledIfStopped();
-    }
-
-    public function testProcessWithTermSignal()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved');
-        parent::testProcessWithTermSignal();
-    }
-
-    public function testProcessIsNotSignaled()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved');
-        parent::testProcessIsNotSignaled();
-    }
-
-    public function testProcessWithoutTermSignal()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved');
-        parent::testProcessWithoutTermSignal();
-    }
-
-    public function testExitCodeText()
-    {
-        $this->skipIfPHPSigchild(); // This test use exitcode that is not available in this case
-        parent::testExitCodeText();
-    }
-
-    public function testIsSuccessful()
-    {
-        $this->skipIfPHPSigchild(); // This test use PID that is not available in this case
-        parent::testIsSuccessful();
-    }
-
-    public function testIsNotSuccessful()
-    {
-        $this->skipIfPHPSigchild(); // This test use PID that is not available in this case
-        parent::testIsNotSuccessful();
-    }
-
-    public function testGetPid()
-    {
-        $this->skipIfPHPSigchild(); // This test use PID that is not available in this case
-        parent::testGetPid();
-    }
-
-    public function testGetPidIsNullBeforeStart()
-    {
-        $this->skipIfPHPSigchild(); // This test use PID that is not available in this case
-        parent::testGetPidIsNullBeforeStart();
-    }
-
-    public function testGetPidIsNullAfterRun()
-    {
-        $this->skipIfPHPSigchild(); // This test use PID that is not available in this case
-        parent::testGetPidIsNullAfterRun();
-    }
-
-    public function testSignal()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-        parent::testSignal();
-    }
-
-    public function testProcessWithoutTermSignalIsNotSignaled()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved');
-        parent::testProcessWithoutTermSignalIsNotSignaled();
-    }
-
-    public function testProcessThrowsExceptionWhenExternallySignaled()
-    {
-        $this->skipIfPHPSigchild(); // This test use PID that is not available in this case
-        parent::testProcessThrowsExceptionWhenExternallySignaled();
-    }
-
-    public function testExitCodeIsAvailableAfterSignal()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-        parent::testExitCodeIsAvailableAfterSignal();
-    }
-
-    public function testSignalProcessNotRunning()
-    {
-        $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', 'Can not send signal on a non running process.');
-        parent::testSignalProcessNotRunning();
-    }
-
-    public function testSignalWithWrongIntSignal()
-    {
-        if ($this->enabledSigchild) {
-            $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-        } else {
-            $this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'Error while sending signal `-4`.');
-        }
-        parent::testSignalWithWrongIntSignal();
-    }
-
-    public function testSignalWithWrongNonIntSignal()
-    {
-        if ($this->enabledSigchild) {
-            $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-        } else {
-            $this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'Error while sending signal `Céphalopodes`.');
-        }
-        parent::testSignalWithWrongNonIntSignal();
-    }
-
-    public function testStopTerminatesProcessCleanly()
-    {
-        try {
-            $process = $this->getProcess(self::$phpBin.' -r "echo \'foo\'; sleep(1); echo \'bar\';"');
-            $process->run(function () use ($process) {
-                $process->stop();
-            });
-        } catch (\RuntimeException $e) {
-            $this->fail('A call to stop() is not expected to cause wait() to throw a RuntimeException');
-        }
-    }
-
-    public function testKillSignalTerminatesProcessCleanly()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-
-        try {
-            $process = $this->getProcess(self::$phpBin.' -r "echo \'foo\'; sleep(1); echo \'bar\';"');
-            $process->run(function () use ($process) {
-                if ($process->isRunning()) {
-                    $process->signal(defined('SIGKILL') ? SIGKILL : 9);
-                }
-            });
-        } catch (\RuntimeException $e) {
-            $this->fail('A call to signal() is not expected to cause wait() to throw a RuntimeException');
-        }
-    }
-
-    public function testTermSignalTerminatesProcessCleanly()
-    {
-        $this->expectExceptionIfPHPSigchild('Symfony\Component\Process\Exception\RuntimeException', 'This PHP has been compiled with --enable-sigchild. The process can not be signaled.');
-
-        try {
-            $process = $this->getProcess(self::$phpBin.' -r "echo \'foo\'; sleep(1); echo \'bar\';"');
-            $process->run(function () use ($process) {
-                if ($process->isRunning()) {
-                    $process->signal(defined('SIGTERM') ? SIGTERM : 15);
-                }
-            });
-        } catch (\RuntimeException $e) {
-            $this->fail('A call to signal() is not expected to cause wait() to throw a RuntimeException');
-        }
-    }
-
-    public function testStopWithTimeoutIsActuallyWorking()
-    {
-        $this->skipIfPHPSigchild();
-
-        parent::testStopWithTimeoutIsActuallyWorking();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getProcess($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = array())
-    {
-        return new Process($commandline, $cwd, $env, $input, $timeout, $options);
-    }
-
-    private function skipIfPHPSigchild()
-    {
-        if ($this->enabledSigchild) {
-            $this->markTestSkipped('Your PHP has been compiled with --enable-sigchild, this test can not be executed');
-        }
-    }
-
-    private function expectExceptionIfPHPSigchild($classname, $message)
-    {
-        if ($this->enabledSigchild) {
-            $this->setExpectedException($classname, $message);
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/composer.json b/core/vendor/symfony/process/composer.json
deleted file mode 100644
index d0cae4d..0000000
--- a/core/vendor/symfony/process/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "name": "symfony/process",
-    "type": "library",
-    "description": "Symfony Process Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Process\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/process/phpunit.xml.dist b/core/vendor/symfony/process/phpunit.xml.dist
deleted file mode 100644
index b5d605c..0000000
--- a/core/vendor/symfony/process/phpunit.xml.dist
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Process Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Tests</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/psr-http-message-bridge/.travis.yml b/core/vendor/symfony/psr-http-message-bridge/.travis.yml
deleted file mode 100644
index 39e7eb6..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/.travis.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-language: php
-
-sudo: false
-
-matrix:
-    include:
-        - php: 5.3
-        - php: 5.4
-        - php: 5.5
-        - php: 5.6
-        - php: 5.3
-          env: deps=low
-        - php: 5.6
-          env: deps=high
-        - php: nightly
-        - php: hhvm
-    allow_failures:
-        - php: nightly
-        - php: hhvm
-    fast_finish: true
-
-env:
-    global:
-        - deps=no
-        - SYMFONY_DEPRECATIONS_HELPER=weak
-
-before_install:
-    - composer self-update
-    - if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]] && [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then phpenv config-rm xdebug.ini; fi;
-    - if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]] && [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]] && [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
-    - if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]] && [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then php -i; fi;
-    # Set the COMPOSER_ROOT_VERSION to the right version according to the branch being built
-    - if [ "$TRAVIS_BRANCH" = "master" ]; then export COMPOSER_ROOT_VERSION=dev-master; else export COMPOSER_ROOT_VERSION="$TRAVIS_BRANCH".x-dev; fi;
-
-install:
-    - if [[ "$TRAVIS_PHP_VERSION" != "5.3" ]] && [[ "$TRAVIS_PHP_VERSION" != "5.4" ]]; then composer require --no-update zendframework/zend-diactoros; fi;
-    - if [ "$deps" = "no" ]; then export SYMFONY_DEPRECATIONS_HELPER=strict; fi;
-    - if [ "$deps" = "no" ]; then composer --prefer-source install; fi;
-    - if [ "$deps" = "high" ]; then composer --prefer-source update; fi;
-    - if [ "$deps" = "low" ]; then composer --prefer-source --prefer-lowest --prefer-stable update; fi;
-
-script:
-    - phpunit
diff --git a/core/vendor/symfony/psr-http-message-bridge/CHANGELOG.md b/core/vendor/symfony/psr-http-message-bridge/CHANGELOG.md
deleted file mode 100644
index 569522f..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/CHANGELOG.md
+++ /dev/null
@@ -1,7 +0,0 @@
-CHANGELOG
-=========
-
-2.8.0
------
-
- * added the component
diff --git a/core/vendor/symfony/psr-http-message-bridge/Factory/DiactorosFactory.php b/core/vendor/symfony/psr-http-message-bridge/Factory/DiactorosFactory.php
deleted file mode 100644
index 31726f1..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Factory/DiactorosFactory.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Factory;
-
-use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface;
-use Symfony\Component\HttpFoundation\BinaryFileResponse;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\StreamedResponse;
-use Zend\Diactoros\Response as DiactorosResponse;
-use Zend\Diactoros\ServerRequest;
-use Zend\Diactoros\ServerRequestFactory as DiactorosRequestFactory;
-use Zend\Diactoros\Stream as DiactorosStream;
-use Zend\Diactoros\UploadedFile as DiactorosUploadedFile;
-
-/**
- * Builds Psr\HttpMessage instances using the Zend Diactoros implementation.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class DiactorosFactory implements HttpMessageFactoryInterface
-{
-    public function __construct()
-    {
-        if (!class_exists('Zend\Diactoros\ServerRequestFactory')) {
-            throw new \RuntimeException('Zend Diactoros must be installed to use the DiactorosFactory.');
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createRequest(Request $symfonyRequest)
-    {
-        $server = DiactorosRequestFactory::normalizeServer($symfonyRequest->server->all());
-        $headers = $symfonyRequest->headers->all();
-
-        try {
-            $body = new DiactorosStream($symfonyRequest->getContent(true));
-        } catch (\LogicException $e) {
-            $body = new DiactorosStream('php://temp', 'wb+');
-            $body->write($symfonyRequest->getContent());
-        }
-
-        $request = new ServerRequest(
-            $server,
-            DiactorosRequestFactory::normalizeFiles($this->getFiles($symfonyRequest->files->all())),
-            $symfonyRequest->getUri(),
-            $symfonyRequest->getMethod(),
-            $body,
-            $headers
-        );
-
-        $request = $request
-            ->withCookieParams($symfonyRequest->cookies->all())
-            ->withQueryParams($symfonyRequest->query->all())
-            ->withParsedBody($symfonyRequest->request->all())
-        ;
-
-        foreach ($symfonyRequest->attributes->all() as $key => $value) {
-            $request = $request->withAttribute($key, $value);
-        }
-
-        return $request;
-    }
-
-    /**
-     * Converts Symfony uploaded files array to the PSR one.
-     *
-     * @param array $uploadedFiles
-     *
-     * @return array
-     */
-    private function getFiles(array $uploadedFiles)
-    {
-        $files = array();
-
-        foreach ($uploadedFiles as $key => $value) {
-            if ($value instanceof UploadedFile) {
-                $files[$key] = $this->createUploadedFile($value);
-            } else {
-                $files[$key] = $this->getFiles($value);
-            }
-        }
-
-        return $files;
-    }
-
-    /**
-     * Creates a PSR-7 UploadedFile instance from a Symfony one.
-     *
-     * @param UploadedFile $symfonyUploadedFile
-     *
-     * @return UploadedFileInterface
-     */
-    private function createUploadedFile(UploadedFile $symfonyUploadedFile)
-    {
-        return new DiactorosUploadedFile(
-            $symfonyUploadedFile->getRealPath(),
-            $symfonyUploadedFile->getSize(),
-            $symfonyUploadedFile->getError(),
-            $symfonyUploadedFile->getClientOriginalName(),
-            $symfonyUploadedFile->getClientMimeType()
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createResponse(Response $symfonyResponse)
-    {
-        if ($symfonyResponse instanceof BinaryFileResponse) {
-            $stream = new DiactorosStream($symfonyResponse->getFile()->getPathname(), 'r');
-        } else {
-            $stream = new DiactorosStream('php://temp', 'wb+');
-            if ($symfonyResponse instanceof StreamedResponse) {
-                ob_start(function ($buffer) use ($stream) {
-                    $stream->write($buffer);
-
-                    return false;
-                });
-
-                $symfonyResponse->sendContent();
-                ob_end_clean();
-            } else {
-                $stream->write($symfonyResponse->getContent());
-            }
-        }
-
-        $headers = $symfonyResponse->headers->all();
-
-        $cookies = $symfonyResponse->headers->getCookies();
-        if (!empty($cookies)) {
-            $headers['Set-Cookie'] = array();
-
-            foreach ($cookies as $cookie) {
-                $headers['Set-Cookie'][] = $cookie->__toString();
-            }
-        }
-
-        $response = new DiactorosResponse(
-            $stream,
-            $symfonyResponse->getStatusCode(),
-            $headers
-        );
-
-        $protocolVersion = $symfonyResponse->getProtocolVersion();
-        if ('1.1' !== $protocolVersion) {
-            $response = $response->withProtocolVersion($protocolVersion);
-        }
-
-        return $response;
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php b/core/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php
deleted file mode 100644
index 2c356fd..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Factory;
-
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\UploadedFileInterface;
-use Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface;
-use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * {@inheritdoc}
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class HttpFoundationFactory implements HttpFoundationFactoryInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function createRequest(ServerRequestInterface $psrRequest)
-    {
-        $parsedBody = $psrRequest->getParsedBody();
-        $parsedBody = is_array($parsedBody) ? $parsedBody : array();
-
-        $request = new Request(
-            $psrRequest->getQueryParams(),
-            $parsedBody,
-            $psrRequest->getAttributes(),
-            $psrRequest->getCookieParams(),
-            $this->getFiles($psrRequest->getUploadedFiles()),
-            $psrRequest->getServerParams(),
-            $psrRequest->getBody()->__toString()
-        );
-        $request->headers->replace($psrRequest->getHeaders());
-
-        return $request;
-    }
-
-    /**
-     * Converts to the input array to $_FILES structure.
-     *
-     * @param array $uploadedFiles
-     *
-     * @return array
-     */
-    private function getFiles(array $uploadedFiles)
-    {
-        $files = array();
-
-        foreach ($uploadedFiles as $key => $value) {
-            if ($value instanceof UploadedFileInterface) {
-                $files[$key] = $this->createUploadedFile($value);
-            } else {
-                $files[$key] = $this->getFiles($value);
-            }
-        }
-
-        return $files;
-    }
-
-    /**
-     * Creates Symfony UploadedFile instance from PSR-7 ones.
-     *
-     * @param UploadedFileInterface $psrUploadedFile
-     *
-     * @return UploadedFile
-     */
-    private function createUploadedFile(UploadedFileInterface $psrUploadedFile)
-    {
-        $temporaryPath = $this->getTemporaryPath();
-        $psrUploadedFile->moveTo($temporaryPath);
-
-        $clientFileName = $psrUploadedFile->getClientFilename();
-
-        return new UploadedFile(
-            $temporaryPath,
-            null === $clientFileName ? '' : $clientFileName,
-            $psrUploadedFile->getClientMediaType(),
-            $psrUploadedFile->getSize(),
-            $psrUploadedFile->getError(),
-            true
-        );
-    }
-
-    /**
-     * Gets a temporary file path.
-     *
-     * @return string
-     */
-    protected function getTemporaryPath()
-    {
-        return tempnam(sys_get_temp_dir(), uniqid('symfony', true));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createResponse(ResponseInterface $psrResponse)
-    {
-        $response = new Response(
-            $psrResponse->getBody()->__toString(),
-            $psrResponse->getStatusCode(),
-            $psrResponse->getHeaders()
-        );
-        $response->setProtocolVersion($psrResponse->getProtocolVersion());
-
-        foreach ($psrResponse->getHeader('Set-Cookie') as $cookie) {
-            $response->headers->setCookie($this->createCookie($cookie));
-        }
-
-        return $response;
-    }
-
-    /**
-     * Creates a Cookie instance from a cookie string.
-     *
-     * Some snippets have been taken from the Guzzle project: https://github.com/guzzle/guzzle/blob/5.3/src/Cookie/SetCookie.php#L34
-     *
-     * @param string $cookie
-     *
-     * @return Cookie
-     *
-     * @throws \InvalidArgumentException
-     */
-    private function createCookie($cookie)
-    {
-        foreach (explode(';', $cookie) as $part) {
-            $part = trim($part);
-
-            $data = explode('=', $part, 2);
-            $name = $data[0];
-            $value = isset($data[1]) ? trim($data[1], " \n\r\t\0\x0B\"") : null;
-
-            if (!isset($cookieName)) {
-                $cookieName = $name;
-                $cookieValue = $value;
-
-                continue;
-            }
-
-            if ('expires' === strtolower($name) && null !== $value) {
-                $cookieExpire = new \DateTime($value);
-
-                continue;
-            }
-
-            if ('path' === strtolower($name) && null !== $value) {
-                $cookiePath = $value;
-
-                continue;
-            }
-
-            if ('domain' === strtolower($name) && null !== $value) {
-                $cookieDomain = $value;
-
-                continue;
-            }
-
-            if ('secure' === strtolower($name)) {
-                $cookieSecure = true;
-
-                continue;
-            }
-
-            if ('httponly' === strtolower($name)) {
-                $cookieHttpOnly = true;
-
-                continue;
-            }
-        }
-
-        if (!isset($cookieName)) {
-            throw new \InvalidArgumentException('The value of the Set-Cookie header is malformed.');
-        }
-
-        return new Cookie(
-            $cookieName,
-            $cookieValue,
-            isset($cookieExpire) ? $cookieExpire : 0,
-            isset($cookiePath) ? $cookiePath : '/',
-            isset($cookieDomain) ? $cookieDomain : null,
-            isset($cookieSecure),
-            isset($cookieHttpOnly)
-        );
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/HttpFoundationFactoryInterface.php b/core/vendor/symfony/psr-http-message-bridge/HttpFoundationFactoryInterface.php
deleted file mode 100644
index 32ec456..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/HttpFoundationFactoryInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage;
-
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Creates Symfony Request and Response instances from PSR-7 ones.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface HttpFoundationFactoryInterface
-{
-    /**
-     * Creates a Symfony Request instance from a PSR-7 one.
-     *
-     * @param ServerRequestInterface $psrRequest
-     *
-     * @return Request
-     */
-    public function createRequest(ServerRequestInterface $psrRequest);
-
-    /**
-     * Creates a Symfony Response instance from a PSR-7 one.
-     *
-     * @param ResponseInterface $psrResponse
-     *
-     * @return Response
-     */
-    public function createResponse(ResponseInterface $psrResponse);
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/HttpMessageFactoryInterface.php b/core/vendor/symfony/psr-http-message-bridge/HttpMessageFactoryInterface.php
deleted file mode 100644
index 1367c8c..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/HttpMessageFactoryInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage;
-
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\ResponseInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-
-/**
- * Creates PSR HTTP Request and Response instances from Symfony ones.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface HttpMessageFactoryInterface
-{
-    /**
-     * Creates a PSR-7 Request instance from a Symfony one.
-     *
-     * @param Request $symfonyRequest
-     *
-     * @return ServerRequestInterface
-     */
-    public function createRequest(Request $symfonyRequest);
-
-    /**
-     * Creates a PSR-7 Response instance from a Symfony one.
-     *
-     * @param Response $symfonyResponse
-     *
-     * @return ResponseInterface
-     */
-    public function createResponse(Response $symfonyResponse);
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/LICENSE b/core/vendor/symfony/psr-http-message-bridge/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/psr-http-message-bridge/README.md b/core/vendor/symfony/psr-http-message-bridge/README.md
deleted file mode 100644
index d2b2d37..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-PSR-7 Bridge
-============
-
-Provides integration for PSR7.
-
-Resources
----------
-
-If you want to run the unit tests, install dev dependencies before
-running PHPUnit:
-
-    $ cd path/to/Symfony/Bridge/PsrHttpMessage/
-    $ composer.phar install
-    $ phpunit
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Factory/DiactorosFactoryTest.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Factory/DiactorosFactoryTest.php
deleted file mode 100644
index a4c32bd..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Factory/DiactorosFactoryTest.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Factory;
-
-use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
-use Symfony\Component\HttpFoundation\BinaryFileResponse;
-use Symfony\Component\HttpFoundation\Cookie;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\StreamedResponse;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class DiactorosFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    private $factory;
-    private $tmpDir;
-
-    public function setup()
-    {
-        if (!class_exists('Zend\Diactoros\ServerRequestFactory')) {
-            $this->markTestSkipped('Zend Diactoros is not installed.');
-        }
-
-        $this->factory = new DiactorosFactory();
-        $this->tmpDir = sys_get_temp_dir();
-    }
-
-    public function testCreateRequest()
-    {
-        $stdClass = new \stdClass();
-        $request = new Request(
-            array(
-                'foo' => '1',
-                'bar' => array('baz' => '42'),
-            ),
-            array(
-                'twitter' => array(
-                    '@dunglas' => 'Kévin Dunglas',
-                    '@coopTilleuls' => 'Les-Tilleuls.coop',
-                ),
-                'baz' => '2',
-            ),
-            array(
-                'a1' => $stdClass,
-                'a2' => array('foo' => 'bar'),
-            ),
-            array(
-                'c1' => 'foo',
-                'c2' => array('c3' => 'bar'),
-            ),
-            array(
-                'f1' => $this->createUploadedFile('F1', 'f1.txt', 'text/plain', UPLOAD_ERR_OK),
-                'foo' => array('f2' => $this->createUploadedFile('F2', 'f2.txt', 'text/plain', UPLOAD_ERR_OK)),
-            ),
-            array(
-                'REQUEST_METHOD' => 'POST',
-                'HTTP_HOST' => 'dunglas.fr',
-                'HTTP_X_SYMFONY' => '2.8',
-            ),
-            'Content'
-        );
-
-        $psrRequest = $this->factory->createRequest($request);
-
-        $this->assertEquals('Content', $psrRequest->getBody()->__toString());
-
-        $queryParams = $psrRequest->getQueryParams();
-        $this->assertEquals('1', $queryParams['foo']);
-        $this->assertEquals('42', $queryParams['bar']['baz']);
-
-        $parsedBody = $psrRequest->getParsedBody();
-        $this->assertEquals('Kévin Dunglas', $parsedBody['twitter']['@dunglas']);
-        $this->assertEquals('Les-Tilleuls.coop', $parsedBody['twitter']['@coopTilleuls']);
-        $this->assertEquals('2', $parsedBody['baz']);
-
-        $attributes = $psrRequest->getAttributes();
-        $this->assertEquals($stdClass, $attributes['a1']);
-        $this->assertEquals('bar', $attributes['a2']['foo']);
-
-        $cookies = $psrRequest->getCookieParams();
-        $this->assertEquals('foo', $cookies['c1']);
-        $this->assertEquals('bar', $cookies['c2']['c3']);
-
-        $uploadedFiles = $psrRequest->getUploadedFiles();
-        $this->assertEquals('F1', $uploadedFiles['f1']->getStream()->__toString());
-        $this->assertEquals('f1.txt', $uploadedFiles['f1']->getClientFilename());
-        $this->assertEquals('text/plain', $uploadedFiles['f1']->getClientMediaType());
-        $this->assertEquals(UPLOAD_ERR_OK, $uploadedFiles['f1']->getError());
-
-        $this->assertEquals('F2', $uploadedFiles['foo']['f2']->getStream()->__toString());
-        $this->assertEquals('f2.txt', $uploadedFiles['foo']['f2']->getClientFilename());
-        $this->assertEquals('text/plain', $uploadedFiles['foo']['f2']->getClientMediaType());
-        $this->assertEquals(UPLOAD_ERR_OK, $uploadedFiles['foo']['f2']->getError());
-
-        $serverParams = $psrRequest->getServerParams();
-        $this->assertEquals('POST', $serverParams['REQUEST_METHOD']);
-        $this->assertEquals('2.8', $serverParams['HTTP_X_SYMFONY']);
-        $this->assertEquals('POST', $psrRequest->getMethod());
-        $this->assertEquals(array('2.8'), $psrRequest->getHeader('X-Symfony'));
-    }
-
-    private function createUploadedFile($content, $originalName, $mimeType, $error)
-    {
-        $path = tempnam($this->tmpDir, uniqid());
-        file_put_contents($path, $content);
-
-        return new UploadedFile($path, $originalName, $mimeType, filesize($path), $error, true);
-    }
-
-    public function testCreateResponse()
-    {
-        $response = new Response(
-            'Response content.',
-            202,
-            array('X-Symfony' => array('2.8'))
-        );
-        $response->headers->setCookie(new Cookie('city', 'Lille', new \DateTime('Wed, 13 Jan 2021 22:23:01 GMT')));
-
-        $psrResponse = $this->factory->createResponse($response);
-        $this->assertEquals('Response content.', $psrResponse->getBody()->__toString());
-        $this->assertEquals(202, $psrResponse->getStatusCode());
-        $this->assertEquals(array('2.8'), $psrResponse->getHeader('X-Symfony'));
-        $this->assertEquals(array('city=Lille; expires=Wed, 13-Jan-2021 22:23:01 GMT; path=/; httponly'), $psrResponse->getHeader('Set-Cookie'));
-    }
-
-    public function testCreateResponseFromStreamed()
-    {
-        $response = new StreamedResponse(function () {
-            echo "Line 1\n";
-            flush();
-
-            echo "Line 2\n";
-            flush();
-        });
-
-        $psrResponse = $this->factory->createResponse($response);
-
-        $this->assertEquals("Line 1\nLine 2\n", $psrResponse->getBody()->__toString());
-    }
-
-    public function testCreateResponseFromBinaryFile()
-    {
-        $path = tempnam($this->tmpDir, uniqid());
-        file_put_contents($path, 'Binary');
-
-        $response = new BinaryFileResponse($path);
-
-        $psrResponse = $this->factory->createResponse($response);
-
-        $this->assertEquals('Binary', $psrResponse->getBody()->__toString());
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Factory/HttpFoundationFactoryTest.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Factory/HttpFoundationFactoryTest.php
deleted file mode 100644
index 412e287..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Factory/HttpFoundationFactoryTest.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Factory;
-
-use Psr\Http\Message\UploadedFileInterface;
-use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory;
-use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\Response;
-use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\ServerRequest;
-use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\Stream;
-use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\UploadedFile;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class HttpFoundationFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    private $factory;
-    private $tmpDir;
-
-    public function setup()
-    {
-        $this->factory = new HttpFoundationFactory();
-        $this->tmpDir = sys_get_temp_dir();
-    }
-
-    public function testCreateRequest()
-    {
-        $stdClass = new \stdClass();
-        $serverRequest = new ServerRequest(
-            '1.1',
-            array(
-                'X-Dunglas-API-Platform' => '1.0',
-                'X-data' => array('a', 'b'),
-            ),
-            new Stream('The body'),
-            '/about/kevin',
-            'GET',
-            'http://les-tilleuls.coop/about/kevin',
-            array('country' => 'France'),
-            array('city' => 'Lille'),
-            array('url' => 'http://les-tilleuls.coop'),
-            array(
-                'doc1' => $this->createUploadedFile('Doc 1', UPLOAD_ERR_OK, 'doc1.txt', 'text/plain'),
-                'nested' => array(
-                    'docs' => array(
-                        $this->createUploadedFile('Doc 2', UPLOAD_ERR_OK, 'doc2.txt', 'text/plain'),
-                        $this->createUploadedFile('Doc 3', UPLOAD_ERR_OK, 'doc3.txt', 'text/plain'),
-                    ),
-                ),
-            ),
-            array('url' => 'http://dunglas.fr'),
-            array('custom' => $stdClass)
-        );
-
-        $symfonyRequest = $this->factory->createRequest($serverRequest);
-
-        $this->assertEquals('http://les-tilleuls.coop', $symfonyRequest->query->get('url'));
-        $this->assertEquals('doc1.txt', $symfonyRequest->files->get('doc1')->getClientOriginalName());
-        $this->assertEquals('doc2.txt', $symfonyRequest->files->get('nested[docs][0]', null, true)->getClientOriginalName());
-        $this->assertEquals('doc3.txt', $symfonyRequest->files->get('nested[docs][1]', null, true)->getClientOriginalName());
-        $this->assertEquals('http://dunglas.fr', $symfonyRequest->request->get('url'));
-        $this->assertEquals($stdClass, $symfonyRequest->attributes->get('custom'));
-        $this->assertEquals('Lille', $symfonyRequest->cookies->get('city'));
-        $this->assertEquals('France', $symfonyRequest->server->get('country'));
-        $this->assertEquals('The body', $symfonyRequest->getContent());
-        $this->assertEquals('1.0', $symfonyRequest->headers->get('X-Dunglas-API-Platform'));
-        $this->assertEquals(array('a', 'b'), $symfonyRequest->headers->get('X-data', null, false));
-    }
-
-    public function testCreateRequestWithNullParsedBody()
-    {
-        $serverRequest = new ServerRequest(
-            '1.1',
-            array(),
-            new Stream(),
-            '/',
-            'GET',
-            null,
-            array(),
-            array(),
-            array(),
-            array(),
-            null,
-            array()
-        );
-
-        $this->assertCount(0, $this->factory->createRequest($serverRequest)->request);
-    }
-
-    public function testCreateRequestWithObjectParsedBody()
-    {
-        $serverRequest = new ServerRequest(
-            '1.1',
-            array(),
-            new Stream(),
-            '/',
-            'GET',
-            null,
-            array(),
-            array(),
-            array(),
-            array(),
-            new \stdClass(),
-            array()
-        );
-
-        $this->assertCount(0, $this->factory->createRequest($serverRequest)->request);
-    }
-
-    public function testCreateUploadedFile()
-    {
-        $uploadedFile = $this->createUploadedFile('An uploaded file.', UPLOAD_ERR_OK, 'myfile.txt', 'text/plain');
-        $symfonyUploadedFile = $this->callCreateUploadedFile($uploadedFile);
-
-        $uniqid = uniqid();
-        $symfonyUploadedFile->move($this->tmpDir, $uniqid);
-
-        $this->assertEquals($uploadedFile->getSize(), $symfonyUploadedFile->getClientSize());
-        $this->assertEquals(UPLOAD_ERR_OK, $symfonyUploadedFile->getError());
-        $this->assertEquals('myfile.txt', $symfonyUploadedFile->getClientOriginalName());
-        $this->assertEquals('txt', $symfonyUploadedFile->getClientOriginalExtension());
-        $this->assertEquals('text/plain', $symfonyUploadedFile->getClientMimeType());
-        $this->assertEquals('An uploaded file.', file_get_contents($this->tmpDir.'/'.$uniqid));
-    }
-
-    /**
-     * @expectedException        \Symfony\Component\HttpFoundation\File\Exception\FileException
-     * @expectedExceptionMessage The file "e" could not be written on disk.
-     */
-    public function testCreateUploadedFileWithError()
-    {
-        $uploadedFile = $this->createUploadedFile('Error.', UPLOAD_ERR_CANT_WRITE, 'e', 'text/plain');
-        $symfonyUploadedFile = $this->callCreateUploadedFile($uploadedFile);
-
-        $this->assertEquals(UPLOAD_ERR_CANT_WRITE, $symfonyUploadedFile->getError());
-
-        $symfonyUploadedFile->move($this->tmpDir, 'shouldFail.txt');
-    }
-
-    private function createUploadedFile($content, $error, $clientFileName, $clientMediaType)
-    {
-        $filePath = tempnam($this->tmpDir, uniqid());
-        file_put_contents($filePath, $content);
-
-        return new UploadedFile($filePath, filesize($filePath), $error, $clientFileName, $clientMediaType);
-    }
-
-    private function callCreateUploadedFile(UploadedFileInterface $uploadedFile)
-    {
-        $reflection = new \ReflectionClass($this->factory);
-        $createUploadedFile = $reflection->getMethod('createUploadedFile');
-        $createUploadedFile->setAccessible(true);
-
-        return $createUploadedFile->invokeArgs($this->factory, array($uploadedFile));
-    }
-
-    public function testCreateResponse()
-    {
-        $response = new Response(
-            '1.0',
-            array(
-                'X-Symfony' => array('2.8'),
-                'Set-Cookie' => array(
-                    'theme=light',
-                    'test',
-                    'ABC=AeD; Domain=dunglas.fr; Path=/kevin; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly',
-
-                ),
-            ),
-            new Stream('The response body'),
-            200
-        );
-
-        $symfonyResponse = $this->factory->createResponse($response);
-
-        $this->assertEquals('1.0', $symfonyResponse->getProtocolVersion());
-        $this->assertEquals('2.8', $symfonyResponse->headers->get('X-Symfony'));
-
-        $cookies = $symfonyResponse->headers->getCookies();
-        $this->assertEquals('theme', $cookies[0]->getName());
-        $this->assertEquals('light', $cookies[0]->getValue());
-        $this->assertEquals(0, $cookies[0]->getExpiresTime());
-        $this->assertNull($cookies[0]->getDomain());
-        $this->assertEquals('/', $cookies[0]->getPath());
-        $this->assertFalse($cookies[0]->isSecure());
-        $this->assertFalse($cookies[0]->isHttpOnly());
-
-        $this->assertEquals('test', $cookies[1]->getName());
-        $this->assertNull($cookies[1]->getValue());
-
-        $this->assertEquals('ABC', $cookies[2]->getName());
-        $this->assertEquals('AeD', $cookies[2]->getValue());
-        $this->assertEquals(strtotime('Wed, 13 Jan 2021 22:23:01 GMT'), $cookies[2]->getExpiresTime());
-        $this->assertEquals('dunglas.fr', $cookies[2]->getDomain());
-        $this->assertEquals('/kevin', $cookies[2]->getPath());
-        $this->assertTrue($cookies[2]->isSecure());
-        $this->assertTrue($cookies[2]->isHttpOnly());
-
-        $this->assertEquals('The response body', $symfonyResponse->getContent());
-        $this->assertEquals(200, $symfonyResponse->getStatusCode());
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php
deleted file mode 100644
index 5cd0999..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures;
-
-use Psr\Http\Message\MessageInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Message.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class Message implements MessageInterface
-{
-    private $version = '1.1';
-    private $headers = array();
-    private $body;
-
-    public function __construct($version = '1.1', array $headers = array(), StreamInterface $body = null)
-    {
-        $this->version = $version;
-        $this->headers = $headers;
-        $this->body = null === $body ? new Stream() : $body;
-    }
-
-    public function getProtocolVersion()
-    {
-        return $this->version;
-    }
-
-    public function withProtocolVersion($version)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    public function hasHeader($name)
-    {
-        return isset($this->headers[$name]);
-    }
-
-    public function getHeader($name)
-    {
-        return $this->hasHeader($name) ? $this->headers[$name] : array();
-    }
-
-    public function getHeaderLine($name)
-    {
-        return $this->hasHeader($name) ? implode(',', $this->headers[$name]) : '';
-    }
-
-    public function withHeader($name, $value)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function withAddedHeader($name, $value)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function withoutHeader($name)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getBody()
-    {
-        return $this->body;
-    }
-
-    public function withBody(StreamInterface $body)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Response.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Response.php
deleted file mode 100644
index 0fd85c2..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Response.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures;
-
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class Response extends Message implements ResponseInterface
-{
-    private $statusCode;
-
-    public function __construct($version = '1.1', array $headers = array(), StreamInterface $body = null, $statusCode = 200)
-    {
-        parent::__construct($version, $headers, $body);
-
-        $this->statusCode = $statusCode;
-    }
-
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    public function withStatus($code, $reasonPhrase = '')
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getReasonPhrase()
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/ServerRequest.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/ServerRequest.php
deleted file mode 100644
index 63b8c06..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/ServerRequest.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures;
-
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ServerRequest extends Message implements ServerRequestInterface
-{
-    private $requestTarget;
-    private $method;
-    private $uri;
-    private $server;
-    private $cookies;
-    private $query;
-    private $uploadedFiles;
-    private $data;
-    private $attributes;
-
-    public function __construct($version = '1.1', array $headers = array(), StreamInterface $body = null, $requestTarget = '/', $method = 'GET', $uri = null, array $server = array(), array $cookies = array(), array $query = array(), array $uploadedFiles = array(), $data = null, array $attributes = array())
-    {
-        parent::__construct($version, $headers, $body);
-
-        $this->requestTarget = $requestTarget;
-        $this->method = $method;
-        $this->uri = $uri;
-        $this->server = $server;
-        $this->cookies = $cookies;
-        $this->query = $query;
-        $this->uploadedFiles = $uploadedFiles;
-        $this->data = $data;
-        $this->attributes = $attributes;
-    }
-
-    public function getRequestTarget()
-    {
-        return $this->requestTarget;
-    }
-
-    public function withRequestTarget($requestTarget)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    public function withMethod($method)
-    {
-    }
-
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    public function withUri(UriInterface $uri, $preserveHost = false)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getServerParams()
-    {
-        return $this->server;
-    }
-
-    public function getCookieParams()
-    {
-        return $this->cookies;
-    }
-
-    public function withCookieParams(array $cookies)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getQueryParams()
-    {
-        return $this->query;
-    }
-
-    public function withQueryParams(array $query)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getUploadedFiles()
-    {
-        return $this->uploadedFiles;
-    }
-
-    public function withUploadedFiles(array $uploadedFiles)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getParsedBody()
-    {
-        return $this->data;
-    }
-
-    public function withParsedBody($data)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function getAttributes()
-    {
-        return $this->attributes;
-    }
-
-    public function getAttribute($name, $default = null)
-    {
-        return isset($this->attributes[$name]) ? $this->attributes[$name] : $default;
-    }
-
-    public function withAttribute($name, $value)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-
-    public function withoutAttribute($name)
-    {
-        throw new \BadMethodCallException('Not implemented.');
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Stream.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Stream.php
deleted file mode 100644
index aeca3d8..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Stream.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class Stream implements StreamInterface
-{
-    private $stringContent;
-
-    public function __construct($stringContent = '')
-    {
-        $this->stringContent = $stringContent;
-    }
-
-    public function __toString()
-    {
-        return $this->stringContent;
-    }
-
-    public function close()
-    {
-    }
-
-    public function detach()
-    {
-    }
-
-    public function getSize()
-    {
-    }
-
-    public function tell()
-    {
-        return 0;
-    }
-
-    public function eof()
-    {
-        return true;
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-    }
-
-    public function rewind()
-    {
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    public function write($string)
-    {
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function read($length)
-    {
-        return $this->stringContent;
-    }
-
-    public function getContents()
-    {
-        return $this->stringContent;
-    }
-
-    public function getMetadata($key = null)
-    {
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/UploadedFile.php b/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/UploadedFile.php
deleted file mode 100644
index 4cfa98b..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/UploadedFile.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures;
-
-use Psr\Http\Message\UploadedFileInterface;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class UploadedFile implements UploadedFileInterface
-{
-    private $filePath;
-    private $size;
-    private $error;
-    private $clientFileName;
-    private $clientMediaType;
-
-    public function __construct($filePath, $size = null, $error = UPLOAD_ERR_OK, $clientFileName = null, $clientMediaType = null)
-    {
-        $this->filePath = $filePath;
-        $this->size = $size;
-        $this->error = $error;
-        $this->clientFileName = $clientFileName;
-        $this->clientMediaType = $clientMediaType;
-    }
-
-    public function getStream()
-    {
-        throw new \RuntimeException('No stream is available.');
-    }
-
-    public function moveTo($targetPath)
-    {
-        rename($this->filePath, $targetPath);
-    }
-
-    public function getSize()
-    {
-        return $this->size;
-    }
-
-    public function getError()
-    {
-        return $this->error;
-    }
-
-    public function getClientFilename()
-    {
-        return $this->clientFileName;
-    }
-
-    public function getClientMediaType()
-    {
-        return $this->clientMediaType;
-    }
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/composer.json b/core/vendor/symfony/psr-http-message-bridge/composer.json
deleted file mode 100644
index 9dc9ce7..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "name": "symfony/psr-http-message-bridge",
-    "type": "symfony-bridge",
-    "description": "PSR HTTP message bridge",
-    "keywords": ["http", "psr-7", "http-message"],
-    "homepage": "http://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "http://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.3",
-        "psr/http-message": "~1.0",
-        "symfony/http-foundation": "~2.3|~3.0"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7|~3.0"
-    },
-    "suggest": {
-        "zendframework/zend-diactoros": "To use the Zend Diactoros factory"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Bridge\\PsrHttpMessage\\": "" }
-    },
-    "minimum-stability": "dev"
-}
diff --git a/core/vendor/symfony/psr-http-message-bridge/phpunit.xml.dist b/core/vendor/symfony/psr-http-message-bridge/phpunit.xml.dist
deleted file mode 100644
index 9a6e477..0000000
--- a/core/vendor/symfony/psr-http-message-bridge/phpunit.xml.dist
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="vendor/autoload.php"
->
-    <testsuites>
-        <testsuite name="Symfony PSR-7 HTTP message Bridge Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/routing/.gitignore b/core/vendor/symfony/routing/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/routing/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/routing/Annotation/Route.php b/core/vendor/symfony/routing/Annotation/Route.php
deleted file mode 100644
index 7e7e056..0000000
--- a/core/vendor/symfony/routing/Annotation/Route.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Annotation;
-
-/**
- * Annotation class for @Route().
- *
- * @Annotation
- * @Target({"CLASS", "METHOD"})
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Route
-{
-    private $path;
-    private $name;
-    private $requirements = array();
-    private $options = array();
-    private $defaults = array();
-    private $host;
-    private $methods = array();
-    private $schemes = array();
-    private $condition;
-
-    /**
-     * Constructor.
-     *
-     * @param array $data An array of key/value parameters.
-     *
-     * @throws \BadMethodCallException
-     */
-    public function __construct(array $data)
-    {
-        if (isset($data['value'])) {
-            $data['path'] = $data['value'];
-            unset($data['value']);
-        }
-
-        foreach ($data as $key => $value) {
-            $method = 'set'.str_replace('_', '', $key);
-            if (!method_exists($this, $method)) {
-                throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, get_class($this)));
-            }
-            $this->$method($value);
-        }
-    }
-
-    /**
-     * @deprecated since version 2.2, to be removed in 3.0. Use setPath instead.
-     */
-    public function setPattern($pattern)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the setPath() method instead and use the "path" option instead of the "pattern" option in the route definition.', E_USER_DEPRECATED);
-
-        $this->path = $pattern;
-    }
-
-    /**
-     * @deprecated since version 2.2, to be removed in 3.0. Use getPath instead.
-     */
-    public function getPattern()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the getPath() method instead and use the "path" option instead of the "pattern" option in the route definition.', E_USER_DEPRECATED);
-
-        return $this->path;
-    }
-
-    public function setPath($path)
-    {
-        $this->path = $path;
-    }
-
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    public function setHost($pattern)
-    {
-        $this->host = $pattern;
-    }
-
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function setRequirements($requirements)
-    {
-        if (isset($requirements['_method'])) {
-            if (0 === count($this->methods)) {
-                $this->methods = explode('|', $requirements['_method']);
-            }
-
-            @trigger_error('The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the "methods" option instead.', E_USER_DEPRECATED);
-        }
-
-        if (isset($requirements['_scheme'])) {
-            if (0 === count($this->schemes)) {
-                $this->schemes = explode('|', $requirements['_scheme']);
-            }
-
-            @trigger_error('The "_scheme" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the "schemes" option instead.', E_USER_DEPRECATED);
-        }
-
-        $this->requirements = $requirements;
-    }
-
-    public function getRequirements()
-    {
-        return $this->requirements;
-    }
-
-    public function setOptions($options)
-    {
-        $this->options = $options;
-    }
-
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    public function setDefaults($defaults)
-    {
-        $this->defaults = $defaults;
-    }
-
-    public function getDefaults()
-    {
-        return $this->defaults;
-    }
-
-    public function setSchemes($schemes)
-    {
-        $this->schemes = is_array($schemes) ? $schemes : array($schemes);
-    }
-
-    public function getSchemes()
-    {
-        return $this->schemes;
-    }
-
-    public function setMethods($methods)
-    {
-        $this->methods = is_array($methods) ? $methods : array($methods);
-    }
-
-    public function getMethods()
-    {
-        return $this->methods;
-    }
-
-    public function setCondition($condition)
-    {
-        $this->condition = $condition;
-    }
-
-    public function getCondition()
-    {
-        return $this->condition;
-    }
-}
diff --git a/core/vendor/symfony/routing/CHANGELOG.md b/core/vendor/symfony/routing/CHANGELOG.md
deleted file mode 100644
index b5fd9db..0000000
--- a/core/vendor/symfony/routing/CHANGELOG.md
+++ /dev/null
@@ -1,177 +0,0 @@
-CHANGELOG
-=========
-
-2.5.0
------
-
- * [DEPRECATION] The `ApacheMatcherDumper` and `ApacheUrlMatcher` were deprecated and
-   will be removed in Symfony 3.0, since the performance gains were minimal and
-   it's hard to replicate the behaviour of PHP implementation.
-
-2.3.0
------
-
- * added RequestContext::getQueryString()
-
-2.2.0
------
-
- * [DEPRECATION] Several route settings have been renamed (the old ones will be removed in 3.0):
-
-    * The `pattern` setting for a route has been deprecated in favor of `path`
-    * The `_scheme` and `_method` requirements have been moved to the `schemes` and `methods` settings
-
-   Before:
-
-   ```yaml
-   article_edit:
-       pattern: /article/{id}
-       requirements: { '_method': 'POST|PUT', '_scheme': 'https', 'id': '\d+' }
-   ```
-
-   ```xml
-   <route id="article_edit" pattern="/article/{id}">
-       <requirement key="_method">POST|PUT</requirement>
-       <requirement key="_scheme">https</requirement>
-       <requirement key="id">\d+</requirement>
-   </route>
-   ```
-
-   ```php
-   $route = new Route();
-   $route->setPattern('/article/{id}');
-   $route->setRequirement('_method', 'POST|PUT');
-   $route->setRequirement('_scheme', 'https');
-   ```
-
-   After:
-
-   ```yaml
-   article_edit:
-       path: /article/{id}
-       methods: [POST, PUT]
-       schemes: https
-       requirements: { 'id': '\d+' }
-   ```
-
-   ```xml
-   <route id="article_edit" pattern="/article/{id}" methods="POST PUT" schemes="https">
-       <requirement key="id">\d+</requirement>
-   </route>
-   ```
-
-   ```php
-   $route = new Route();
-   $route->setPath('/article/{id}');
-   $route->setMethods(array('POST', 'PUT'));
-   $route->setSchemes('https');
-   ```
-
- * [BC BREAK] RouteCollection does not behave like a tree structure anymore but as
-   a flat array of Routes. So when using PHP to build the RouteCollection, you must
-   make sure to add routes to the sub-collection before adding it to the parent
-   collection (this is not relevant when using YAML or XML for Route definitions).
-
-   Before:
-
-   ```php
-   $rootCollection = new RouteCollection();
-   $subCollection = new RouteCollection();
-   $rootCollection->addCollection($subCollection);
-   $subCollection->add('foo', new Route('/foo'));
-   ```
-
-   After:
-
-   ```php
-   $rootCollection = new RouteCollection();
-   $subCollection = new RouteCollection();
-   $subCollection->add('foo', new Route('/foo'));
-   $rootCollection->addCollection($subCollection);
-   ```
-
-   Also one must call `addCollection` from the bottom to the top hierarchy.
-   So the correct sequence is the following (and not the reverse):
-
-   ```php
-   $childCollection->addCollection($grandchildCollection);
-   $rootCollection->addCollection($childCollection);
-   ```
-
- * [DEPRECATION] The methods `RouteCollection::getParent()` and `RouteCollection::getRoot()`
-   have been deprecated and will be removed in Symfony 2.3.
- * [BC BREAK] Misusing the `RouteCollection::addPrefix` method to add defaults, requirements
-   or options without adding a prefix is not supported anymore. So if you called `addPrefix`
-   with an empty prefix or `/` only (both have no relevance), like
-   `addPrefix('', $defaultsArray, $requirementsArray, $optionsArray)`
-   you need to use the new dedicated methods `addDefaults($defaultsArray)`,
-   `addRequirements($requirementsArray)` or `addOptions($optionsArray)` instead.
- * [DEPRECATION] The `$options` parameter to `RouteCollection::addPrefix()` has been deprecated
-   because adding options has nothing to do with adding a path prefix. If you want to add options
-   to all child routes of a RouteCollection, you can use `addOptions()`.
- * [DEPRECATION] The method `RouteCollection::getPrefix()` has been deprecated
-   because it suggested that all routes in the collection would have this prefix, which is
-   not necessarily true. On top of that, since there is no tree structure anymore, this method
-   is also useless. Don't worry about performance, prefix optimization for matching is still done
-   in the dumper, which was also improved in 2.2.0 to find even more grouping possibilities.
- * [DEPRECATION] `RouteCollection::addCollection(RouteCollection $collection)` should now only be
-   used with a single parameter. The other params `$prefix`, `$default`, `$requirements` and `$options`
-   will still work, but have been deprecated. The `addPrefix` method should be used for this
-   use-case instead.
-   Before: `$parentCollection->addCollection($collection, '/prefix', array(...), array(...))`
-   After:
-   ```php
-   $collection->addPrefix('/prefix', array(...), array(...));
-   $parentCollection->addCollection($collection);
-   ```
- * added support for the method default argument values when defining a @Route
- * Adjacent placeholders without separator work now, e.g. `/{x}{y}{z}.{_format}`.
- * Characters that function as separator between placeholders are now whitelisted
-   to fix routes with normal text around a variable, e.g. `/prefix{var}suffix`.
- * [BC BREAK] The default requirement of a variable has been changed slightly.
-   Previously it disallowed the previous and the next char around a variable. Now
-   it disallows the slash (`/`) and the next char. Using the previous char added
-   no value and was problematic because the route `/index.{_format}` would be
-   matched by `/index.ht/ml`.
- * The default requirement now uses possessive quantifiers when possible which
-   improves matching performance by up to 20% because it prevents backtracking
-   when it's not needed.
- * The ConfigurableRequirementsInterface can now also be used to disable the requirements
-   check on URL generation completely by calling `setStrictRequirements(null)`. It
-   improves performance in production environment as you should know that params always
-   pass the requirements (otherwise it would break your link anyway).
- * There is no restriction on the route name anymore. So non-alphanumeric characters
-   are now also allowed.
- * [BC BREAK] `RouteCompilerInterface::compile(Route $route)` was made static
-   (only relevant if you implemented your own RouteCompiler).
- * Added possibility to generate relative paths and network paths in the UrlGenerator, e.g.
-   "../parent-file" and "//example.com/dir/file". The third parameter in
-   `UrlGeneratorInterface::generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)`
-   now accepts more values and you should use the constants defined in `UrlGeneratorInterface` for
-   claritiy. The old method calls with a Boolean parameter will continue to work because they
-   equal the signature using the constants.
-
-2.1.0
------
-
- * added RequestMatcherInterface
- * added RequestContext::fromRequest()
- * the UrlMatcher does not throw a \LogicException anymore when the required
-   scheme is not the current one
- * added TraceableUrlMatcher
- * added the possibility to define options, default values and requirements
-   for placeholders in prefix, including imported routes
- * added RouterInterface::getRouteCollection
- * [BC BREAK] the UrlMatcher urldecodes the route parameters only once, they
-   were decoded twice before. Note that the `urldecode()` calls have been
-   changed for a single `rawurldecode()` in order to support `+` for input
-   paths.
- * added RouteCollection::getRoot method to retrieve the root of a
-   RouteCollection tree
- * [BC BREAK] made RouteCollection::setParent private which could not have
-   been used anyway without creating inconsistencies
- * [BC BREAK] RouteCollection::remove also removes a route from parent
-   collections (not only from its children)
- * added ConfigurableRequirementsInterface that allows to disable exceptions
-   (and generate empty URLs instead) when generating a route with an invalid
-   parameter value
diff --git a/core/vendor/symfony/routing/CompiledRoute.php b/core/vendor/symfony/routing/CompiledRoute.php
deleted file mode 100644
index 3eca9ec..0000000
--- a/core/vendor/symfony/routing/CompiledRoute.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-/**
- * CompiledRoutes are returned by the RouteCompiler class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class CompiledRoute implements \Serializable
-{
-    private $variables;
-    private $tokens;
-    private $staticPrefix;
-    private $regex;
-    private $pathVariables;
-    private $hostVariables;
-    private $hostRegex;
-    private $hostTokens;
-
-    /**
-     * Constructor.
-     *
-     * @param string      $staticPrefix  The static prefix of the compiled route
-     * @param string      $regex         The regular expression to use to match this route
-     * @param array       $tokens        An array of tokens to use to generate URL for this route
-     * @param array       $pathVariables An array of path variables
-     * @param string|null $hostRegex     Host regex
-     * @param array       $hostTokens    Host tokens
-     * @param array       $hostVariables An array of host variables
-     * @param array       $variables     An array of variables (variables defined in the path and in the host patterns)
-     */
-    public function __construct($staticPrefix, $regex, array $tokens, array $pathVariables, $hostRegex = null, array $hostTokens = array(), array $hostVariables = array(), array $variables = array())
-    {
-        $this->staticPrefix = (string) $staticPrefix;
-        $this->regex = $regex;
-        $this->tokens = $tokens;
-        $this->pathVariables = $pathVariables;
-        $this->hostRegex = $hostRegex;
-        $this->hostTokens = $hostTokens;
-        $this->hostVariables = $hostVariables;
-        $this->variables = $variables;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function serialize()
-    {
-        return serialize(array(
-            'vars' => $this->variables,
-            'path_prefix' => $this->staticPrefix,
-            'path_regex' => $this->regex,
-            'path_tokens' => $this->tokens,
-            'path_vars' => $this->pathVariables,
-            'host_regex' => $this->hostRegex,
-            'host_tokens' => $this->hostTokens,
-            'host_vars' => $this->hostVariables,
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function unserialize($serialized)
-    {
-        $data = unserialize($serialized);
-        $this->variables = $data['vars'];
-        $this->staticPrefix = $data['path_prefix'];
-        $this->regex = $data['path_regex'];
-        $this->tokens = $data['path_tokens'];
-        $this->pathVariables = $data['path_vars'];
-        $this->hostRegex = $data['host_regex'];
-        $this->hostTokens = $data['host_tokens'];
-        $this->hostVariables = $data['host_vars'];
-    }
-
-    /**
-     * Returns the static prefix.
-     *
-     * @return string The static prefix
-     */
-    public function getStaticPrefix()
-    {
-        return $this->staticPrefix;
-    }
-
-    /**
-     * Returns the regex.
-     *
-     * @return string The regex
-     */
-    public function getRegex()
-    {
-        return $this->regex;
-    }
-
-    /**
-     * Returns the host regex.
-     *
-     * @return string|null The host regex or null
-     */
-    public function getHostRegex()
-    {
-        return $this->hostRegex;
-    }
-
-    /**
-     * Returns the tokens.
-     *
-     * @return array The tokens
-     */
-    public function getTokens()
-    {
-        return $this->tokens;
-    }
-
-    /**
-     * Returns the host tokens.
-     *
-     * @return array The tokens
-     */
-    public function getHostTokens()
-    {
-        return $this->hostTokens;
-    }
-
-    /**
-     * Returns the variables.
-     *
-     * @return array The variables
-     */
-    public function getVariables()
-    {
-        return $this->variables;
-    }
-
-    /**
-     * Returns the path variables.
-     *
-     * @return array The variables
-     */
-    public function getPathVariables()
-    {
-        return $this->pathVariables;
-    }
-
-    /**
-     * Returns the host variables.
-     *
-     * @return array The variables
-     */
-    public function getHostVariables()
-    {
-        return $this->hostVariables;
-    }
-}
diff --git a/core/vendor/symfony/routing/Exception/ExceptionInterface.php b/core/vendor/symfony/routing/Exception/ExceptionInterface.php
deleted file mode 100644
index 9fcd224..0000000
--- a/core/vendor/symfony/routing/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Exception;
-
-/**
- * ExceptionInterface.
- *
- * @author Alexandre Salomé <alexandre.salome@gmail.com>
- *
- * @api
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/routing/Exception/InvalidParameterException.php b/core/vendor/symfony/routing/Exception/InvalidParameterException.php
deleted file mode 100644
index ae37c34..0000000
--- a/core/vendor/symfony/routing/Exception/InvalidParameterException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Exception;
-
-/**
- * Exception thrown when a parameter is not valid.
- *
- * @author Alexandre Salomé <alexandre.salome@gmail.com>
- *
- * @api
- */
-class InvalidParameterException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/routing/Exception/MethodNotAllowedException.php b/core/vendor/symfony/routing/Exception/MethodNotAllowedException.php
deleted file mode 100644
index 32f1091..0000000
--- a/core/vendor/symfony/routing/Exception/MethodNotAllowedException.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Exception;
-
-/**
- * The resource was found but the request method is not allowed.
- *
- * This exception should trigger an HTTP 405 response in your application code.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- *
- * @api
- */
-class MethodNotAllowedException extends \RuntimeException implements ExceptionInterface
-{
-    /**
-     * @var array
-     */
-    protected $allowedMethods = array();
-
-    public function __construct(array $allowedMethods, $message = null, $code = 0, \Exception $previous = null)
-    {
-        $this->allowedMethods = array_map('strtoupper', $allowedMethods);
-
-        parent::__construct($message, $code, $previous);
-    }
-
-    /**
-     * Gets the allowed HTTP methods.
-     *
-     * @return array
-     */
-    public function getAllowedMethods()
-    {
-        return $this->allowedMethods;
-    }
-}
diff --git a/core/vendor/symfony/routing/Exception/MissingMandatoryParametersException.php b/core/vendor/symfony/routing/Exception/MissingMandatoryParametersException.php
deleted file mode 100644
index 5a523fa..0000000
--- a/core/vendor/symfony/routing/Exception/MissingMandatoryParametersException.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Exception;
-
-/**
- * Exception thrown when a route cannot be generated because of missing
- * mandatory parameters.
- *
- * @author Alexandre Salomé <alexandre.salome@gmail.com>
- *
- * @api
- */
-class MissingMandatoryParametersException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/routing/Exception/ResourceNotFoundException.php b/core/vendor/symfony/routing/Exception/ResourceNotFoundException.php
deleted file mode 100644
index 362a0d6..0000000
--- a/core/vendor/symfony/routing/Exception/ResourceNotFoundException.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Exception;
-
-/**
- * The resource was not found.
- *
- * This exception should trigger an HTTP 404 response in your application code.
- *
- * @author Kris Wallsmith <kris@symfony.com>
- *
- * @api
- */
-class ResourceNotFoundException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/routing/Exception/RouteNotFoundException.php b/core/vendor/symfony/routing/Exception/RouteNotFoundException.php
deleted file mode 100644
index 8059e45..0000000
--- a/core/vendor/symfony/routing/Exception/RouteNotFoundException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Exception;
-
-/**
- * Exception thrown when a route does not exist.
- *
- * @author Alexandre Salomé <alexandre.salome@gmail.com>
- *
- * @api
- */
-class RouteNotFoundException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/routing/Generator/ConfigurableRequirementsInterface.php b/core/vendor/symfony/routing/Generator/ConfigurableRequirementsInterface.php
deleted file mode 100644
index dc97b7e..0000000
--- a/core/vendor/symfony/routing/Generator/ConfigurableRequirementsInterface.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Generator;
-
-/**
- * ConfigurableRequirementsInterface must be implemented by URL generators that
- * can be configured whether an exception should be generated when the parameters
- * do not match the requirements. It is also possible to disable the requirements
- * check for URL generation completely.
- *
- * The possible configurations and use-cases:
- * - setStrictRequirements(true): Throw an exception for mismatching requirements. This
- *   is mostly useful in development environment.
- * - setStrictRequirements(false): Don't throw an exception but return null as URL for
- *   mismatching requirements and log the problem. Useful when you cannot control all
- *   params because they come from third party libs but don't want to have a 404 in
- *   production environment. It should log the mismatch so one can review it.
- * - setStrictRequirements(null): Return the URL with the given parameters without
- *   checking the requirements at all. When generating a URL you should either trust
- *   your params or you validated them beforehand because otherwise it would break your
- *   link anyway. So in production environment you should know that params always pass
- *   the requirements. Thus this option allows to disable the check on URL generation for
- *   performance reasons (saving a preg_match for each requirement every time a URL is
- *   generated).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- */
-interface ConfigurableRequirementsInterface
-{
-    /**
-     * Enables or disables the exception on incorrect parameters.
-     * Passing null will deactivate the requirements check completely.
-     *
-     * @param bool|null $enabled
-     */
-    public function setStrictRequirements($enabled);
-
-    /**
-     * Returns whether to throw an exception on incorrect parameters.
-     * Null means the requirements check is deactivated completely.
-     *
-     * @return bool|null
-     */
-    public function isStrictRequirements();
-}
diff --git a/core/vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php b/core/vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php
deleted file mode 100644
index 4739bd8..0000000
--- a/core/vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Generator\Dumper;
-
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * GeneratorDumper is the base class for all built-in generator dumpers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class GeneratorDumper implements GeneratorDumperInterface
-{
-    /**
-     * @var RouteCollection
-     */
-    private $routes;
-
-    /**
-     * Constructor.
-     *
-     * @param RouteCollection $routes The RouteCollection to dump
-     */
-    public function __construct(RouteCollection $routes)
-    {
-        $this->routes = $routes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRoutes()
-    {
-        return $this->routes;
-    }
-}
diff --git a/core/vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php b/core/vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php
deleted file mode 100644
index deb0c0a..0000000
--- a/core/vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Generator\Dumper;
-
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * GeneratorDumperInterface is the interface that all generator dumper classes must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface GeneratorDumperInterface
-{
-    /**
-     * Dumps a set of routes to a string representation of executable code
-     * that can then be used to generate a URL of such a route.
-     *
-     * @param array $options An array of options
-     *
-     * @return string Executable code
-     */
-    public function dump(array $options = array());
-
-    /**
-     * Gets the routes to dump.
-     *
-     * @return RouteCollection A RouteCollection instance
-     */
-    public function getRoutes();
-}
diff --git a/core/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php b/core/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php
deleted file mode 100644
index 9b7e483..0000000
--- a/core/vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Generator\Dumper;
-
-/**
- * PhpGeneratorDumper creates a PHP class able to generate URLs for a given set of routes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class PhpGeneratorDumper extends GeneratorDumper
-{
-    /**
-     * Dumps a set of routes to a PHP class.
-     *
-     * Available options:
-     *
-     *  * class:      The class name
-     *  * base_class: The base class name
-     *
-     * @param array $options An array of options
-     *
-     * @return string A PHP class representing the generator class
-     *
-     * @api
-     */
-    public function dump(array $options = array())
-    {
-        $options = array_merge(array(
-            'class' => 'ProjectUrlGenerator',
-            'base_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
-        ), $options);
-
-        return <<<EOF
-<?php
-
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Psr\Log\LoggerInterface;
-
-/**
- * {$options['class']}
- *
- * This class has been auto-generated
- * by the Symfony Routing Component.
- */
-class {$options['class']} extends {$options['base_class']}
-{
-    private static \$declaredRoutes = {$this->generateDeclaredRoutes()};
-
-    /**
-     * Constructor.
-     */
-    public function __construct(RequestContext \$context, LoggerInterface \$logger = null)
-    {
-        \$this->context = \$context;
-        \$this->logger = \$logger;
-    }
-
-{$this->generateGenerateMethod()}
-}
-
-EOF;
-    }
-
-    /**
-     * Generates PHP code representing an array of defined routes
-     * together with the routes properties (e.g. requirements).
-     *
-     * @return string PHP code
-     */
-    private function generateDeclaredRoutes()
-    {
-        $routes = "array(\n";
-        foreach ($this->getRoutes()->all() as $name => $route) {
-            $compiledRoute = $route->compile();
-
-            $properties = array();
-            $properties[] = $compiledRoute->getVariables();
-            $properties[] = $route->getDefaults();
-            $properties[] = $route->getRequirements();
-            $properties[] = $compiledRoute->getTokens();
-            $properties[] = $compiledRoute->getHostTokens();
-            $properties[] = $route->getSchemes();
-
-            $routes .= sprintf("        '%s' => %s,\n", $name, str_replace("\n", '', var_export($properties, true)));
-        }
-        $routes .= '    )';
-
-        return $routes;
-    }
-
-    /**
-     * Generates PHP code representing the `generate` method that implements the UrlGeneratorInterface.
-     *
-     * @return string PHP code
-     */
-    private function generateGenerateMethod()
-    {
-        return <<<EOF
-    public function generate(\$name, \$parameters = array(), \$referenceType = self::ABSOLUTE_PATH)
-    {
-        if (!isset(self::\$declaredRoutes[\$name])) {
-            throw new RouteNotFoundException(sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', \$name));
-        }
-
-        list(\$variables, \$defaults, \$requirements, \$tokens, \$hostTokens, \$requiredSchemes) = self::\$declaredRoutes[\$name];
-
-        return \$this->doGenerate(\$variables, \$defaults, \$requirements, \$tokens, \$parameters, \$name, \$referenceType, \$hostTokens, \$requiredSchemes);
-    }
-EOF;
-    }
-}
diff --git a/core/vendor/symfony/routing/Generator/UrlGenerator.php b/core/vendor/symfony/routing/Generator/UrlGenerator.php
deleted file mode 100644
index 5fe943b..0000000
--- a/core/vendor/symfony/routing/Generator/UrlGenerator.php
+++ /dev/null
@@ -1,340 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Generator;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Exception\InvalidParameterException;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\Exception\MissingMandatoryParametersException;
-use Psr\Log\LoggerInterface;
-
-/**
- * UrlGenerator can generate a URL or a path for any route in the RouteCollection
- * based on the passed parameters.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInterface
-{
-    /**
-     * @var RouteCollection
-     */
-    protected $routes;
-
-    /**
-     * @var RequestContext
-     */
-    protected $context;
-
-    /**
-     * @var bool|null
-     */
-    protected $strictRequirements = true;
-
-    /**
-     * @var LoggerInterface|null
-     */
-    protected $logger;
-
-    /**
-     * This array defines the characters (besides alphanumeric ones) that will not be percent-encoded in the path segment of the generated URL.
-     *
-     * PHP's rawurlencode() encodes all chars except "a-zA-Z0-9-._~" according to RFC 3986. But we want to allow some chars
-     * to be used in their literal form (reasons below). Other chars inside the path must of course be encoded, e.g.
-     * "?" and "#" (would be interpreted wrongly as query and fragment identifier),
-     * "'" and """ (are used as delimiters in HTML).
-     */
-    protected $decodedChars = array(
-        // the slash can be used to designate a hierarchical structure and we want allow using it with this meaning
-        // some webservers don't allow the slash in encoded form in the path for security reasons anyway
-        // see http://stackoverflow.com/questions/4069002/http-400-if-2f-part-of-get-url-in-jboss
-        '%2F' => '/',
-        // the following chars are general delimiters in the URI specification but have only special meaning in the authority component
-        // so they can safely be used in the path in unencoded form
-        '%40' => '@',
-        '%3A' => ':',
-        // these chars are only sub-delimiters that have no predefined meaning and can therefore be used literally
-        // so URI producing applications can use these chars to delimit subcomponents in a path segment without being encoded for better readability
-        '%3B' => ';',
-        '%2C' => ',',
-        '%3D' => '=',
-        '%2B' => '+',
-        '%21' => '!',
-        '%2A' => '*',
-        '%7C' => '|',
-    );
-
-    /**
-     * Constructor.
-     *
-     * @param RouteCollection      $routes  A RouteCollection instance
-     * @param RequestContext       $context The context
-     * @param LoggerInterface|null $logger  A logger instance
-     *
-     * @api
-     */
-    public function __construct(RouteCollection $routes, RequestContext $context, LoggerInterface $logger = null)
-    {
-        $this->routes = $routes;
-        $this->context = $context;
-        $this->logger = $logger;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContext(RequestContext $context)
-    {
-        $this->context = $context;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setStrictRequirements($enabled)
-    {
-        $this->strictRequirements = null === $enabled ? null : (bool) $enabled;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isStrictRequirements()
-    {
-        return $this->strictRequirements;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)
-    {
-        if (null === $route = $this->routes->get($name)) {
-            throw new RouteNotFoundException(sprintf('Unable to generate a URL for the named route "%s" as such route does not exist.', $name));
-        }
-
-        // the Route has a cache of its own and is not recompiled as long as it does not get modified
-        $compiledRoute = $route->compile();
-
-        return $this->doGenerate($compiledRoute->getVariables(), $route->getDefaults(), $route->getRequirements(), $compiledRoute->getTokens(), $parameters, $name, $referenceType, $compiledRoute->getHostTokens(), $route->getSchemes());
-    }
-
-    /**
-     * @throws MissingMandatoryParametersException When some parameters are missing that are mandatory for the route
-     * @throws InvalidParameterException           When a parameter value for a placeholder is not correct because
-     *                                             it does not match the requirement
-     */
-    protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
-    {
-        $variables = array_flip($variables);
-        $mergedParams = array_replace($defaults, $this->context->getParameters(), $parameters);
-
-        // all params must be given
-        if ($diff = array_diff_key($variables, $mergedParams)) {
-            throw new MissingMandatoryParametersException(sprintf('Some mandatory parameters are missing ("%s") to generate a URL for route "%s".', implode('", "', array_keys($diff)), $name));
-        }
-
-        $url = '';
-        $optional = true;
-        foreach ($tokens as $token) {
-            if ('variable' === $token[0]) {
-                if (!$optional || !array_key_exists($token[3], $defaults) || null !== $mergedParams[$token[3]] && (string) $mergedParams[$token[3]] !== (string) $defaults[$token[3]]) {
-                    // check requirement
-                    if (null !== $this->strictRequirements && !preg_match('#^'.$token[2].'$#', $mergedParams[$token[3]])) {
-                        $message = sprintf('Parameter "%s" for route "%s" must match "%s" ("%s" given) to generate a corresponding URL.', $token[3], $name, $token[2], $mergedParams[$token[3]]);
-                        if ($this->strictRequirements) {
-                            throw new InvalidParameterException($message);
-                        }
-
-                        if ($this->logger) {
-                            $this->logger->error($message);
-                        }
-
-                        return;
-                    }
-
-                    $url = $token[1].$mergedParams[$token[3]].$url;
-                    $optional = false;
-                }
-            } else {
-                // static text
-                $url = $token[1].$url;
-                $optional = false;
-            }
-        }
-
-        if ('' === $url) {
-            $url = '/';
-        }
-
-        // the contexts base URL is already encoded (see Symfony\Component\HttpFoundation\Request)
-        $url = strtr(rawurlencode($url), $this->decodedChars);
-
-        // the path segments "." and ".." are interpreted as relative reference when resolving a URI; see http://tools.ietf.org/html/rfc3986#section-3.3
-        // so we need to encode them as they are not used for this purpose here
-        // otherwise we would generate a URI that, when followed by a user agent (e.g. browser), does not match this route
-        $url = strtr($url, array('/../' => '/%2E%2E/', '/./' => '/%2E/'));
-        if ('/..' === substr($url, -3)) {
-            $url = substr($url, 0, -2).'%2E%2E';
-        } elseif ('/.' === substr($url, -2)) {
-            $url = substr($url, 0, -1).'%2E';
-        }
-
-        $schemeAuthority = '';
-        if ($host = $this->context->getHost()) {
-            $scheme = $this->context->getScheme();
-
-            if ($requiredSchemes) {
-                $schemeMatched = false;
-                foreach ($requiredSchemes as $requiredScheme) {
-                    if ($scheme === $requiredScheme) {
-                        $schemeMatched = true;
-
-                        break;
-                    }
-                }
-
-                if (!$schemeMatched) {
-                    $referenceType = self::ABSOLUTE_URL;
-                    $scheme = current($requiredSchemes);
-                }
-            } elseif (isset($requirements['_scheme']) && ($req = strtolower($requirements['_scheme'])) && $scheme !== $req) {
-                // We do this for BC; to be removed if _scheme is not supported anymore
-                $referenceType = self::ABSOLUTE_URL;
-                $scheme = $req;
-            }
-
-            if ($hostTokens) {
-                $routeHost = '';
-                foreach ($hostTokens as $token) {
-                    if ('variable' === $token[0]) {
-                        if (null !== $this->strictRequirements && !preg_match('#^'.$token[2].'$#i', $mergedParams[$token[3]])) {
-                            $message = sprintf('Parameter "%s" for route "%s" must match "%s" ("%s" given) to generate a corresponding URL.', $token[3], $name, $token[2], $mergedParams[$token[3]]);
-
-                            if ($this->strictRequirements) {
-                                throw new InvalidParameterException($message);
-                            }
-
-                            if ($this->logger) {
-                                $this->logger->error($message);
-                            }
-
-                            return;
-                        }
-
-                        $routeHost = $token[1].$mergedParams[$token[3]].$routeHost;
-                    } else {
-                        $routeHost = $token[1].$routeHost;
-                    }
-                }
-
-                if ($routeHost !== $host) {
-                    $host = $routeHost;
-                    if (self::ABSOLUTE_URL !== $referenceType) {
-                        $referenceType = self::NETWORK_PATH;
-                    }
-                }
-            }
-
-            if (self::ABSOLUTE_URL === $referenceType || self::NETWORK_PATH === $referenceType) {
-                $port = '';
-                if ('http' === $scheme && 80 != $this->context->getHttpPort()) {
-                    $port = ':'.$this->context->getHttpPort();
-                } elseif ('https' === $scheme && 443 != $this->context->getHttpsPort()) {
-                    $port = ':'.$this->context->getHttpsPort();
-                }
-
-                $schemeAuthority = self::NETWORK_PATH === $referenceType ? '//' : "$scheme://";
-                $schemeAuthority .= $host.$port;
-            }
-        }
-
-        if (self::RELATIVE_PATH === $referenceType) {
-            $url = self::getRelativePath($this->context->getPathInfo(), $url);
-        } else {
-            $url = $schemeAuthority.$this->context->getBaseUrl().$url;
-        }
-
-        // add a query string if needed
-        $extra = array_diff_key($parameters, $variables, $defaults);
-        if ($extra && $query = http_build_query($extra, '', '&')) {
-            // "/" and "?" can be left decoded for better user experience, see
-            // http://tools.ietf.org/html/rfc3986#section-3.4
-            $url .= '?'.strtr($query, array('%2F' => '/'));
-        }
-
-        return $url;
-    }
-
-    /**
-     * Returns the target path as relative reference from the base path.
-     *
-     * Only the URIs path component (no schema, host etc.) is relevant and must be given, starting with a slash.
-     * Both paths must be absolute and not contain relative parts.
-     * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives.
-     * Furthermore, they can be used to reduce the link size in documents.
-     *
-     * Example target paths, given a base path of "/a/b/c/d":
-     * - "/a/b/c/d"     -> ""
-     * - "/a/b/c/"      -> "./"
-     * - "/a/b/"        -> "../"
-     * - "/a/b/c/other" -> "other"
-     * - "/a/x/y"       -> "../../x/y"
-     *
-     * @param string $basePath   The base path
-     * @param string $targetPath The target path
-     *
-     * @return string The relative target path
-     */
-    public static function getRelativePath($basePath, $targetPath)
-    {
-        if ($basePath === $targetPath) {
-            return '';
-        }
-
-        $sourceDirs = explode('/', isset($basePath[0]) && '/' === $basePath[0] ? substr($basePath, 1) : $basePath);
-        $targetDirs = explode('/', isset($targetPath[0]) && '/' === $targetPath[0] ? substr($targetPath, 1) : $targetPath);
-        array_pop($sourceDirs);
-        $targetFile = array_pop($targetDirs);
-
-        foreach ($sourceDirs as $i => $dir) {
-            if (isset($targetDirs[$i]) && $dir === $targetDirs[$i]) {
-                unset($sourceDirs[$i], $targetDirs[$i]);
-            } else {
-                break;
-            }
-        }
-
-        $targetDirs[] = $targetFile;
-        $path = str_repeat('../', count($sourceDirs)).implode('/', $targetDirs);
-
-        // A reference to the same base directory or an empty subdirectory must be prefixed with "./".
-        // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used
-        // as the first segment of a relative-path reference, as it would be mistaken for a scheme name
-        // (see http://tools.ietf.org/html/rfc3986#section-4.2).
-        return '' === $path || '/' === $path[0]
-            || false !== ($colonPos = strpos($path, ':')) && ($colonPos < ($slashPos = strpos($path, '/')) || false === $slashPos)
-            ? "./$path" : $path;
-    }
-}
diff --git a/core/vendor/symfony/routing/Generator/UrlGeneratorInterface.php b/core/vendor/symfony/routing/Generator/UrlGeneratorInterface.php
deleted file mode 100644
index a70c90a..0000000
--- a/core/vendor/symfony/routing/Generator/UrlGeneratorInterface.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Generator;
-
-use Symfony\Component\Routing\Exception\InvalidParameterException;
-use Symfony\Component\Routing\Exception\MissingMandatoryParametersException;
-use Symfony\Component\Routing\Exception\RouteNotFoundException;
-use Symfony\Component\Routing\RequestContextAwareInterface;
-
-/**
- * UrlGeneratorInterface is the interface that all URL generator classes must implement.
- *
- * The constants in this interface define the different types of resource references that
- * are declared in RFC 3986: http://tools.ietf.org/html/rfc3986
- * We are using the term "URL" instead of "URI" as this is more common in web applications
- * and we do not need to distinguish them as the difference is mostly semantical and
- * less technical. Generating URIs, i.e. representation-independent resource identifiers,
- * is also possible.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-interface UrlGeneratorInterface extends RequestContextAwareInterface
-{
-    /**
-     * Generates an absolute URL, e.g. "http://example.com/dir/file".
-     */
-    const ABSOLUTE_URL = true;
-
-    /**
-     * Generates an absolute path, e.g. "/dir/file".
-     */
-    const ABSOLUTE_PATH = false;
-
-    /**
-     * Generates a relative path based on the current request path, e.g. "../parent-file".
-     *
-     * @see UrlGenerator::getRelativePath()
-     */
-    const RELATIVE_PATH = 'relative';
-
-    /**
-     * Generates a network path, e.g. "//example.com/dir/file".
-     * Such reference reuses the current scheme but specifies the host.
-     */
-    const NETWORK_PATH = 'network';
-
-    /**
-     * Generates a URL or path for a specific route based on the given parameters.
-     *
-     * Parameters that reference placeholders in the route pattern will substitute them in the
-     * path or host. Extra params are added as query string to the URL.
-     *
-     * When the passed reference type cannot be generated for the route because it requires a different
-     * host or scheme than the current one, the method will return a more comprehensive reference
-     * that includes the required params. For example, when you call this method with $referenceType = ABSOLUTE_PATH
-     * but the route requires the https scheme whereas the current scheme is http, it will instead return an
-     * ABSOLUTE_URL with the https scheme and the current host. This makes sure the generated URL matches
-     * the route in any case.
-     *
-     * If there is no route with the given name, the generator must throw the RouteNotFoundException.
-     *
-     * @param string      $name          The name of the route
-     * @param mixed       $parameters    An array of parameters
-     * @param bool|string $referenceType The type of reference to be generated (one of the constants)
-     *
-     * @return string The generated URL
-     *
-     * @throws RouteNotFoundException              If the named route doesn't exist
-     * @throws MissingMandatoryParametersException When some parameters are missing that are mandatory for the route
-     * @throws InvalidParameterException           When a parameter value for a placeholder is not correct because
-     *                                             it does not match the requirement
-     *
-     * @api
-     */
-    public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH);
-}
diff --git a/core/vendor/symfony/routing/LICENSE b/core/vendor/symfony/routing/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/routing/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/routing/Loader/AnnotationClassLoader.php b/core/vendor/symfony/routing/Loader/AnnotationClassLoader.php
deleted file mode 100644
index da881ef..0000000
--- a/core/vendor/symfony/routing/Loader/AnnotationClassLoader.php
+++ /dev/null
@@ -1,268 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Doctrine\Common\Annotations\Reader;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Config\Loader\LoaderInterface;
-use Symfony\Component\Config\Loader\LoaderResolverInterface;
-
-/**
- * AnnotationClassLoader loads routing information from a PHP class and its methods.
- *
- * You need to define an implementation for the getRouteDefaults() method. Most of the
- * time, this method should define some PHP callable to be called for the route
- * (a controller in MVC speak).
- *
- * The @Route annotation can be set on the class (for global parameters),
- * and on each method.
- *
- * The @Route annotation main value is the route path. The annotation also
- * recognizes several parameters: requirements, options, defaults, schemes,
- * methods, host, and name. The name parameter is mandatory.
- * Here is an example of how you should be able to use it:
- *
- *     /**
- *      * @Route("/Blog")
- *      * /
- *     class Blog
- *     {
- *         /**
- *          * @Route("/", name="blog_index")
- *          * /
- *         public function index()
- *         {
- *         }
- *
- *         /**
- *          * @Route("/{id}", name="blog_post", requirements = {"id" = "\d+"})
- *          * /
- *         public function show()
- *         {
- *         }
- *     }
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class AnnotationClassLoader implements LoaderInterface
-{
-    /**
-     * @var Reader
-     */
-    protected $reader;
-
-    /**
-     * @var string
-     */
-    protected $routeAnnotationClass = 'Symfony\\Component\\Routing\\Annotation\\Route';
-
-    /**
-     * @var int
-     */
-    protected $defaultRouteIndex = 0;
-
-    /**
-     * Constructor.
-     *
-     * @param Reader $reader
-     */
-    public function __construct(Reader $reader)
-    {
-        $this->reader = $reader;
-    }
-
-    /**
-     * Sets the annotation class to read route properties from.
-     *
-     * @param string $class A fully-qualified class name
-     */
-    public function setRouteAnnotationClass($class)
-    {
-        $this->routeAnnotationClass = $class;
-    }
-
-    /**
-     * Loads from annotations from a class.
-     *
-     * @param string      $class A class name
-     * @param string|null $type  The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @throws \InvalidArgumentException When route can't be parsed
-     */
-    public function load($class, $type = null)
-    {
-        if (!class_exists($class)) {
-            throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
-        }
-
-        $class = new \ReflectionClass($class);
-        if ($class->isAbstract()) {
-            throw new \InvalidArgumentException(sprintf('Annotations from class "%s" cannot be read as it is abstract.', $class));
-        }
-
-        $globals = $this->getGlobals($class);
-
-        $collection = new RouteCollection();
-        $collection->addResource(new FileResource($class->getFileName()));
-
-        foreach ($class->getMethods() as $method) {
-            $this->defaultRouteIndex = 0;
-            foreach ($this->reader->getMethodAnnotations($method) as $annot) {
-                if ($annot instanceof $this->routeAnnotationClass) {
-                    $this->addRoute($collection, $annot, $globals, $class, $method);
-                }
-            }
-        }
-
-        return $collection;
-    }
-
-    protected function addRoute(RouteCollection $collection, $annot, $globals, \ReflectionClass $class, \ReflectionMethod $method)
-    {
-        $name = $annot->getName();
-        if (null === $name) {
-            $name = $this->getDefaultRouteName($class, $method);
-        }
-
-        $defaults = array_replace($globals['defaults'], $annot->getDefaults());
-        foreach ($method->getParameters() as $param) {
-            if (!isset($defaults[$param->getName()]) && $param->isOptional()) {
-                $defaults[$param->getName()] = $param->getDefaultValue();
-            }
-        }
-        $requirements = array_replace($globals['requirements'], $annot->getRequirements());
-        $options = array_replace($globals['options'], $annot->getOptions());
-        $schemes = array_merge($globals['schemes'], $annot->getSchemes());
-        $methods = array_merge($globals['methods'], $annot->getMethods());
-
-        $host = $annot->getHost();
-        if (null === $host) {
-            $host = $globals['host'];
-        }
-
-        $condition = $annot->getCondition();
-        if (null === $condition) {
-            $condition = $globals['condition'];
-        }
-
-        $route = $this->createRoute($globals['path'].$annot->getPath(), $defaults, $requirements, $options, $host, $schemes, $methods, $condition);
-
-        $this->configureRoute($route, $class, $method, $annot);
-
-        $collection->add($name, $route);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && preg_match('/^(?:\\\\?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)+$/', $resource) && (!$type || 'annotation' === $type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setResolver(LoaderResolverInterface $resolver)
-    {
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getResolver()
-    {
-    }
-
-    /**
-     * Gets the default route name for a class method.
-     *
-     * @param \ReflectionClass  $class
-     * @param \ReflectionMethod $method
-     *
-     * @return string
-     */
-    protected function getDefaultRouteName(\ReflectionClass $class, \ReflectionMethod $method)
-    {
-        $name = strtolower(str_replace('\\', '_', $class->name).'_'.$method->name);
-        if ($this->defaultRouteIndex > 0) {
-            $name .= '_'.$this->defaultRouteIndex;
-        }
-        ++$this->defaultRouteIndex;
-
-        return $name;
-    }
-
-    protected function getGlobals(\ReflectionClass $class)
-    {
-        $globals = array(
-            'path' => '',
-            'requirements' => array(),
-            'options' => array(),
-            'defaults' => array(),
-            'schemes' => array(),
-            'methods' => array(),
-            'host' => '',
-            'condition' => '',
-        );
-
-        if ($annot = $this->reader->getClassAnnotation($class, $this->routeAnnotationClass)) {
-            // for BC reasons
-            if (null !== $annot->getPath()) {
-                $globals['path'] = $annot->getPath();
-            } elseif (null !== $annot->getPattern()) {
-                $globals['path'] = $annot->getPattern();
-            }
-
-            if (null !== $annot->getRequirements()) {
-                $globals['requirements'] = $annot->getRequirements();
-            }
-
-            if (null !== $annot->getOptions()) {
-                $globals['options'] = $annot->getOptions();
-            }
-
-            if (null !== $annot->getDefaults()) {
-                $globals['defaults'] = $annot->getDefaults();
-            }
-
-            if (null !== $annot->getSchemes()) {
-                $globals['schemes'] = $annot->getSchemes();
-            }
-
-            if (null !== $annot->getMethods()) {
-                $globals['methods'] = $annot->getMethods();
-            }
-
-            if (null !== $annot->getHost()) {
-                $globals['host'] = $annot->getHost();
-            }
-
-            if (null !== $annot->getCondition()) {
-                $globals['condition'] = $annot->getCondition();
-            }
-        }
-
-        return $globals;
-    }
-
-    protected function createRoute($path, $defaults, $requirements, $options, $host, $schemes, $methods, $condition)
-    {
-        return new Route($path, $defaults, $requirements, $options, $host, $schemes, $methods, $condition);
-    }
-
-    abstract protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, $annot);
-}
diff --git a/core/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php b/core/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php
deleted file mode 100644
index abd68ed..0000000
--- a/core/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Config\Resource\DirectoryResource;
-
-/**
- * AnnotationDirectoryLoader loads routing information from annotations set
- * on PHP classes and methods.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class AnnotationDirectoryLoader extends AnnotationFileLoader
-{
-    /**
-     * Loads from annotations from a directory.
-     *
-     * @param string      $path A directory path
-     * @param string|null $type The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @throws \InvalidArgumentException When the directory does not exist or its routes cannot be parsed
-     */
-    public function load($path, $type = null)
-    {
-        $dir = $this->locator->locate($path);
-
-        $collection = new RouteCollection();
-        $collection->addResource(new DirectoryResource($dir, '/\.php$/'));
-        $files = iterator_to_array(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir), \RecursiveIteratorIterator::LEAVES_ONLY));
-        usort($files, function (\SplFileInfo $a, \SplFileInfo $b) {
-            return (string) $a > (string) $b ? 1 : -1;
-        });
-
-        foreach ($files as $file) {
-            if (!$file->isFile() || '.php' !== substr($file->getFilename(), -4)) {
-                continue;
-            }
-
-            if ($class = $this->findClass($file)) {
-                $refl = new \ReflectionClass($class);
-                if ($refl->isAbstract()) {
-                    continue;
-                }
-
-                $collection->addCollection($this->loader->load($class, $type));
-            }
-        }
-
-        return $collection;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        try {
-            $path = $this->locator->locate($resource);
-        } catch (\Exception $e) {
-            return false;
-        }
-
-        return is_string($resource) && is_dir($path) && (!$type || 'annotation' === $type);
-    }
-}
diff --git a/core/vendor/symfony/routing/Loader/AnnotationFileLoader.php b/core/vendor/symfony/routing/Loader/AnnotationFileLoader.php
deleted file mode 100644
index 8ce57ac..0000000
--- a/core/vendor/symfony/routing/Loader/AnnotationFileLoader.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Config\Loader\FileLoader;
-use Symfony\Component\Config\FileLocatorInterface;
-
-/**
- * AnnotationFileLoader loads routing information from annotations set
- * on a PHP class and its methods.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class AnnotationFileLoader extends FileLoader
-{
-    protected $loader;
-
-    /**
-     * Constructor.
-     *
-     * @param FileLocatorInterface  $locator A FileLocator instance
-     * @param AnnotationClassLoader $loader  An AnnotationClassLoader instance
-     *
-     * @throws \RuntimeException
-     */
-    public function __construct(FileLocatorInterface $locator, AnnotationClassLoader $loader)
-    {
-        if (!function_exists('token_get_all')) {
-            throw new \RuntimeException('The Tokenizer extension is required for the routing annotation loaders.');
-        }
-
-        parent::__construct($locator);
-
-        $this->loader = $loader;
-    }
-
-    /**
-     * Loads from annotations from a file.
-     *
-     * @param string      $file A PHP file path
-     * @param string|null $type The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @throws \InvalidArgumentException When the file does not exist or its routes cannot be parsed
-     */
-    public function load($file, $type = null)
-    {
-        $path = $this->locator->locate($file);
-
-        $collection = new RouteCollection();
-        if ($class = $this->findClass($path)) {
-            $collection->addResource(new FileResource($path));
-            $collection->addCollection($this->loader->load($class, $type));
-        }
-
-        return $collection;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && 'php' === pathinfo($resource, PATHINFO_EXTENSION) && (!$type || 'annotation' === $type);
-    }
-
-    /**
-     * Returns the full class name for the first class in the file.
-     *
-     * @param string $file A PHP file path
-     *
-     * @return string|false Full class name if found, false otherwise
-     */
-    protected function findClass($file)
-    {
-        $class = false;
-        $namespace = false;
-        $tokens = token_get_all(file_get_contents($file));
-        for ($i = 0, $count = count($tokens); $i < $count; ++$i) {
-            $token = $tokens[$i];
-
-            if (!is_array($token)) {
-                continue;
-            }
-
-            if (true === $class && T_STRING === $token[0]) {
-                return $namespace.'\\'.$token[1];
-            }
-
-            if (true === $namespace && T_STRING === $token[0]) {
-                $namespace = '';
-                do {
-                    $namespace .= $token[1];
-                    $token = $tokens[++$i];
-                } while ($i < $count && is_array($token) && in_array($token[0], array(T_NS_SEPARATOR, T_STRING)));
-            }
-
-            if (T_CLASS === $token[0]) {
-                $class = true;
-            }
-
-            if (T_NAMESPACE === $token[0]) {
-                $namespace = true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/routing/Loader/ClosureLoader.php b/core/vendor/symfony/routing/Loader/ClosureLoader.php
deleted file mode 100644
index 9edab1e..0000000
--- a/core/vendor/symfony/routing/Loader/ClosureLoader.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Symfony\Component\Config\Loader\Loader;
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * ClosureLoader loads routes from a PHP closure.
- *
- * The Closure must return a RouteCollection instance.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ClosureLoader extends Loader
-{
-    /**
-     * Loads a Closure.
-     *
-     * @param \Closure    $closure A Closure
-     * @param string|null $type    The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @api
-     */
-    public function load($closure, $type = null)
-    {
-        return $closure();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function supports($resource, $type = null)
-    {
-        return $resource instanceof \Closure && (!$type || 'closure' === $type);
-    }
-}
diff --git a/core/vendor/symfony/routing/Loader/PhpFileLoader.php b/core/vendor/symfony/routing/Loader/PhpFileLoader.php
deleted file mode 100644
index d1970e5..0000000
--- a/core/vendor/symfony/routing/Loader/PhpFileLoader.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Symfony\Component\Config\Loader\FileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * PhpFileLoader loads routes from a PHP file.
- *
- * The file must return a RouteCollection instance.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class PhpFileLoader extends FileLoader
-{
-    /**
-     * Loads a PHP file.
-     *
-     * @param string      $file A PHP file path
-     * @param string|null $type The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @api
-     */
-    public function load($file, $type = null)
-    {
-        $path = $this->locator->locate($file);
-        $this->setCurrentDir(dirname($path));
-
-        $collection = self::includeFile($path, $this);
-        $collection->addResource(new FileResource($path));
-
-        return $collection;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && 'php' === pathinfo($resource, PATHINFO_EXTENSION) && (!$type || 'php' === $type);
-    }
-
-    /**
-     * Safe include. Used for scope isolation.
-     *
-     * @param string        $file   File to include
-     * @param PhpFileLoader $loader the loader variable is exposed to the included file below
-     *
-     * @return RouteCollection
-     */
-    private static function includeFile($file, PhpFileLoader $loader)
-    {
-        return include $file;
-    }
-}
diff --git a/core/vendor/symfony/routing/Loader/XmlFileLoader.php b/core/vendor/symfony/routing/Loader/XmlFileLoader.php
deleted file mode 100644
index e8c7f6b..0000000
--- a/core/vendor/symfony/routing/Loader/XmlFileLoader.php
+++ /dev/null
@@ -1,276 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Config\Loader\FileLoader;
-use Symfony\Component\Config\Util\XmlUtils;
-
-/**
- * XmlFileLoader loads XML routing files.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class XmlFileLoader extends FileLoader
-{
-    const NAMESPACE_URI = 'http://symfony.com/schema/routing';
-    const SCHEME_PATH = '/schema/routing/routing-1.0.xsd';
-
-    /**
-     * Loads an XML file.
-     *
-     * @param string      $file An XML file path
-     * @param string|null $type The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @throws \InvalidArgumentException When the file cannot be loaded or when the XML cannot be
-     *                                   parsed because it does not validate against the scheme.
-     *
-     * @api
-     */
-    public function load($file, $type = null)
-    {
-        $path = $this->locator->locate($file);
-
-        $xml = $this->loadFile($path);
-
-        $collection = new RouteCollection();
-        $collection->addResource(new FileResource($path));
-
-        // process routes and imports
-        foreach ($xml->documentElement->childNodes as $node) {
-            if (!$node instanceof \DOMElement) {
-                continue;
-            }
-
-            $this->parseNode($collection, $node, $path, $file);
-        }
-
-        return $collection;
-    }
-
-    /**
-     * Parses a node from a loaded XML file.
-     *
-     * @param RouteCollection $collection Collection to associate with the node
-     * @param \DOMElement     $node       Element to parse
-     * @param string          $path       Full path of the XML file being processed
-     * @param string          $file       Loaded file name
-     *
-     * @throws \InvalidArgumentException When the XML is invalid
-     */
-    protected function parseNode(RouteCollection $collection, \DOMElement $node, $path, $file)
-    {
-        if (self::NAMESPACE_URI !== $node->namespaceURI) {
-            return;
-        }
-
-        switch ($node->localName) {
-            case 'route':
-                $this->parseRoute($collection, $node, $path);
-                break;
-            case 'import':
-                $this->parseImport($collection, $node, $path, $file);
-                break;
-            default:
-                throw new \InvalidArgumentException(sprintf('Unknown tag "%s" used in file "%s". Expected "route" or "import".', $node->localName, $path));
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && 'xml' === pathinfo($resource, PATHINFO_EXTENSION) && (!$type || 'xml' === $type);
-    }
-
-    /**
-     * Parses a route and adds it to the RouteCollection.
-     *
-     * @param RouteCollection $collection RouteCollection instance
-     * @param \DOMElement     $node       Element to parse that represents a Route
-     * @param string          $path       Full path of the XML file being processed
-     *
-     * @throws \InvalidArgumentException When the XML is invalid
-     */
-    protected function parseRoute(RouteCollection $collection, \DOMElement $node, $path)
-    {
-        if ('' === ($id = $node->getAttribute('id')) || (!$node->hasAttribute('pattern') && !$node->hasAttribute('path'))) {
-            throw new \InvalidArgumentException(sprintf('The <route> element in file "%s" must have an "id" and a "path" attribute.', $path));
-        }
-
-        if ($node->hasAttribute('pattern')) {
-            if ($node->hasAttribute('path')) {
-                throw new \InvalidArgumentException(sprintf('The <route> element in file "%s" cannot define both a "path" and a "pattern" attribute. Use only "path".', $path));
-            }
-
-            @trigger_error(sprintf('The "pattern" option in file "%s" is deprecated since version 2.2 and will be removed in 3.0. Use the "path" option in the route definition instead.', $path), E_USER_DEPRECATED);
-
-            $node->setAttribute('path', $node->getAttribute('pattern'));
-            $node->removeAttribute('pattern');
-        }
-
-        $schemes = preg_split('/[\s,\|]++/', $node->getAttribute('schemes'), -1, PREG_SPLIT_NO_EMPTY);
-        $methods = preg_split('/[\s,\|]++/', $node->getAttribute('methods'), -1, PREG_SPLIT_NO_EMPTY);
-
-        list($defaults, $requirements, $options, $condition) = $this->parseConfigs($node, $path);
-
-        if (isset($requirements['_method'])) {
-            if (0 === count($methods)) {
-                $methods = explode('|', $requirements['_method']);
-            }
-
-            unset($requirements['_method']);
-            @trigger_error(sprintf('The "_method" requirement of route "%s" in file "%s" is deprecated since version 2.2 and will be removed in 3.0. Use the "methods" attribute instead.', $id, $path), E_USER_DEPRECATED);
-        }
-
-        if (isset($requirements['_scheme'])) {
-            if (0 === count($schemes)) {
-                $schemes = explode('|', $requirements['_scheme']);
-            }
-
-            unset($requirements['_scheme']);
-            @trigger_error(sprintf('The "_scheme" requirement of route "%s" in file "%s" is deprecated since version 2.2 and will be removed in 3.0. Use the "schemes" attribute instead.', $id, $path), E_USER_DEPRECATED);
-        }
-
-        $route = new Route($node->getAttribute('path'), $defaults, $requirements, $options, $node->getAttribute('host'), $schemes, $methods, $condition);
-        $collection->add($id, $route);
-    }
-
-    /**
-     * Parses an import and adds the routes in the resource to the RouteCollection.
-     *
-     * @param RouteCollection $collection RouteCollection instance
-     * @param \DOMElement     $node       Element to parse that represents a Route
-     * @param string          $path       Full path of the XML file being processed
-     * @param string          $file       Loaded file name
-     *
-     * @throws \InvalidArgumentException When the XML is invalid
-     */
-    protected function parseImport(RouteCollection $collection, \DOMElement $node, $path, $file)
-    {
-        if ('' === $resource = $node->getAttribute('resource')) {
-            throw new \InvalidArgumentException(sprintf('The <import> element in file "%s" must have a "resource" attribute.', $path));
-        }
-
-        $type = $node->getAttribute('type');
-        $prefix = $node->getAttribute('prefix');
-        $host = $node->hasAttribute('host') ? $node->getAttribute('host') : null;
-        $schemes = $node->hasAttribute('schemes') ? preg_split('/[\s,\|]++/', $node->getAttribute('schemes'), -1, PREG_SPLIT_NO_EMPTY) : null;
-        $methods = $node->hasAttribute('methods') ? preg_split('/[\s,\|]++/', $node->getAttribute('methods'), -1, PREG_SPLIT_NO_EMPTY) : null;
-
-        list($defaults, $requirements, $options, $condition) = $this->parseConfigs($node, $path);
-
-        $this->setCurrentDir(dirname($path));
-
-        $subCollection = $this->import($resource, ('' !== $type ? $type : null), false, $file);
-        /* @var $subCollection RouteCollection */
-        $subCollection->addPrefix($prefix);
-        if (null !== $host) {
-            $subCollection->setHost($host);
-        }
-        if (null !== $condition) {
-            $subCollection->setCondition($condition);
-        }
-        if (null !== $schemes) {
-            $subCollection->setSchemes($schemes);
-        }
-        if (null !== $methods) {
-            $subCollection->setMethods($methods);
-        }
-        $subCollection->addDefaults($defaults);
-        $subCollection->addRequirements($requirements);
-        $subCollection->addOptions($options);
-
-        $collection->addCollection($subCollection);
-    }
-
-    /**
-     * Loads an XML file.
-     *
-     * @param string $file An XML file path
-     *
-     * @return \DOMDocument
-     *
-     * @throws \InvalidArgumentException When loading of XML file fails because of syntax errors
-     *                                   or when the XML structure is not as expected by the scheme -
-     *                                   see validate()
-     */
-    protected function loadFile($file)
-    {
-        return XmlUtils::loadFile($file, __DIR__.static::SCHEME_PATH);
-    }
-
-    /**
-     * Parses the config elements (default, requirement, option).
-     *
-     * @param \DOMElement $node Element to parse that contains the configs
-     * @param string      $path Full path of the XML file being processed
-     *
-     * @return array An array with the defaults as first item, requirements as second and options as third.
-     *
-     * @throws \InvalidArgumentException When the XML is invalid
-     */
-    private function parseConfigs(\DOMElement $node, $path)
-    {
-        $defaults = array();
-        $requirements = array();
-        $options = array();
-        $condition = null;
-
-        foreach ($node->getElementsByTagNameNS(self::NAMESPACE_URI, '*') as $n) {
-            switch ($n->localName) {
-                case 'default':
-                    if ($this->isElementValueNull($n)) {
-                        $defaults[$n->getAttribute('key')] = null;
-                    } else {
-                        $defaults[$n->getAttribute('key')] = trim($n->textContent);
-                    }
-
-                    break;
-                case 'requirement':
-                    $requirements[$n->getAttribute('key')] = trim($n->textContent);
-                    break;
-                case 'option':
-                    $options[$n->getAttribute('key')] = trim($n->textContent);
-                    break;
-                case 'condition':
-                    $condition = trim($n->textContent);
-                    break;
-                default:
-                    throw new \InvalidArgumentException(sprintf('Unknown tag "%s" used in file "%s". Expected "default", "requirement" or "option".', $n->localName, $path));
-            }
-        }
-
-        return array($defaults, $requirements, $options, $condition);
-    }
-
-    private function isElementValueNull(\DOMElement $element)
-    {
-        $namespaceUri = 'http://www.w3.org/2001/XMLSchema-instance';
-
-        if (!$element->hasAttributeNS($namespaceUri, 'nil')) {
-            return false;
-        }
-
-        return 'true' === $element->getAttributeNS($namespaceUri, 'nil') || '1' === $element->getAttributeNS($namespaceUri, 'nil');
-    }
-}
diff --git a/core/vendor/symfony/routing/Loader/YamlFileLoader.php b/core/vendor/symfony/routing/Loader/YamlFileLoader.php
deleted file mode 100644
index d30da91..0000000
--- a/core/vendor/symfony/routing/Loader/YamlFileLoader.php
+++ /dev/null
@@ -1,237 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Loader;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Yaml\Parser as YamlParser;
-use Symfony\Component\Config\Loader\FileLoader;
-
-/**
- * YamlFileLoader loads Yaml routing files.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class YamlFileLoader extends FileLoader
-{
-    private static $availableKeys = array(
-        'resource', 'type', 'prefix', 'pattern', 'path', 'host', 'schemes', 'methods', 'defaults', 'requirements', 'options', 'condition',
-    );
-    private $yamlParser;
-
-    /**
-     * Loads a Yaml file.
-     *
-     * @param string      $file A Yaml file path
-     * @param string|null $type The resource type
-     *
-     * @return RouteCollection A RouteCollection instance
-     *
-     * @throws \InvalidArgumentException When a route can't be parsed because YAML is invalid
-     *
-     * @api
-     */
-    public function load($file, $type = null)
-    {
-        $path = $this->locator->locate($file);
-
-        if (!stream_is_local($path)) {
-            throw new \InvalidArgumentException(sprintf('This is not a local file "%s".', $path));
-        }
-
-        if (!file_exists($path)) {
-            throw new \InvalidArgumentException(sprintf('File "%s" not found.', $path));
-        }
-
-        if (null === $this->yamlParser) {
-            $this->yamlParser = new YamlParser();
-        }
-
-        $config = $this->yamlParser->parse(file_get_contents($path));
-
-        $collection = new RouteCollection();
-        $collection->addResource(new FileResource($path));
-
-        // empty file
-        if (null === $config) {
-            return $collection;
-        }
-
-        // not an array
-        if (!is_array($config)) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" must contain a YAML array.', $path));
-        }
-
-        foreach ($config as $name => $config) {
-            if (isset($config['pattern'])) {
-                if (isset($config['path'])) {
-                    throw new \InvalidArgumentException(sprintf('The file "%s" cannot define both a "path" and a "pattern" attribute. Use only "path".', $path));
-                }
-
-                @trigger_error(sprintf('The "pattern" option in file "%s" is deprecated since version 2.2 and will be removed in 3.0. Use the "path" option in the route definition instead.', $path), E_USER_DEPRECATED);
-
-                $config['path'] = $config['pattern'];
-                unset($config['pattern']);
-            }
-
-            $this->validate($config, $name, $path);
-
-            if (isset($config['resource'])) {
-                $this->parseImport($collection, $config, $path, $file);
-            } else {
-                $this->parseRoute($collection, $name, $config, $path);
-            }
-        }
-
-        return $collection;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function supports($resource, $type = null)
-    {
-        return is_string($resource) && in_array(pathinfo($resource, PATHINFO_EXTENSION), array('yml', 'yaml'), true) && (!$type || 'yaml' === $type);
-    }
-
-    /**
-     * Parses a route and adds it to the RouteCollection.
-     *
-     * @param RouteCollection $collection A RouteCollection instance
-     * @param string          $name       Route name
-     * @param array           $config     Route definition
-     * @param string          $path       Full path of the YAML file being processed
-     */
-    protected function parseRoute(RouteCollection $collection, $name, array $config, $path)
-    {
-        $defaults = isset($config['defaults']) ? $config['defaults'] : array();
-        $requirements = isset($config['requirements']) ? $config['requirements'] : array();
-        $options = isset($config['options']) ? $config['options'] : array();
-        $host = isset($config['host']) ? $config['host'] : '';
-        $schemes = isset($config['schemes']) ? $config['schemes'] : array();
-        $methods = isset($config['methods']) ? $config['methods'] : array();
-        $condition = isset($config['condition']) ? $config['condition'] : null;
-
-        if (isset($requirements['_method'])) {
-            if (0 === count($methods)) {
-                $methods = explode('|', $requirements['_method']);
-            }
-
-            unset($requirements['_method']);
-            @trigger_error(sprintf('The "_method" requirement of route "%s" in file "%s" is deprecated since version 2.2 and will be removed in 3.0. Use the "methods" option instead.', $name, $path), E_USER_DEPRECATED);
-        }
-
-        if (isset($requirements['_scheme'])) {
-            if (0 === count($schemes)) {
-                $schemes = explode('|', $requirements['_scheme']);
-            }
-
-            unset($requirements['_scheme']);
-            @trigger_error(sprintf('The "_scheme" requirement of route "%s" in file "%s" is deprecated since version 2.2 and will be removed in 3.0. Use the "schemes" option instead.', $name, $path), E_USER_DEPRECATED);
-        }
-
-        $route = new Route($config['path'], $defaults, $requirements, $options, $host, $schemes, $methods, $condition);
-
-        $collection->add($name, $route);
-    }
-
-    /**
-     * Parses an import and adds the routes in the resource to the RouteCollection.
-     *
-     * @param RouteCollection $collection A RouteCollection instance
-     * @param array           $config     Route definition
-     * @param string          $path       Full path of the YAML file being processed
-     * @param string          $file       Loaded file name
-     */
-    protected function parseImport(RouteCollection $collection, array $config, $path, $file)
-    {
-        $type = isset($config['type']) ? $config['type'] : null;
-        $prefix = isset($config['prefix']) ? $config['prefix'] : '';
-        $defaults = isset($config['defaults']) ? $config['defaults'] : array();
-        $requirements = isset($config['requirements']) ? $config['requirements'] : array();
-        $options = isset($config['options']) ? $config['options'] : array();
-        $host = isset($config['host']) ? $config['host'] : null;
-        $condition = isset($config['condition']) ? $config['condition'] : null;
-        $schemes = isset($config['schemes']) ? $config['schemes'] : null;
-        $methods = isset($config['methods']) ? $config['methods'] : null;
-
-        $this->setCurrentDir(dirname($path));
-
-        $subCollection = $this->import($config['resource'], $type, false, $file);
-        /* @var $subCollection RouteCollection */
-        $subCollection->addPrefix($prefix);
-        if (null !== $host) {
-            $subCollection->setHost($host);
-        }
-        if (null !== $condition) {
-            $subCollection->setCondition($condition);
-        }
-        if (null !== $schemes) {
-            $subCollection->setSchemes($schemes);
-        }
-        if (null !== $methods) {
-            $subCollection->setMethods($methods);
-        }
-        $subCollection->addDefaults($defaults);
-        $subCollection->addRequirements($requirements);
-        $subCollection->addOptions($options);
-
-        $collection->addCollection($subCollection);
-    }
-
-    /**
-     * Validates the route configuration.
-     *
-     * @param array  $config A resource config
-     * @param string $name   The config key
-     * @param string $path   The loaded file path
-     *
-     * @throws \InvalidArgumentException If one of the provided config keys is not supported,
-     *                                   something is missing or the combination is nonsense
-     */
-    protected function validate($config, $name, $path)
-    {
-        if (!is_array($config)) {
-            throw new \InvalidArgumentException(sprintf('The definition of "%s" in "%s" must be a YAML array.', $name, $path));
-        }
-        if ($extraKeys = array_diff(array_keys($config), self::$availableKeys)) {
-            throw new \InvalidArgumentException(sprintf(
-                'The routing file "%s" contains unsupported keys for "%s": "%s". Expected one of: "%s".',
-                $path, $name, implode('", "', $extraKeys), implode('", "', self::$availableKeys)
-            ));
-        }
-        if (isset($config['resource']) && isset($config['path'])) {
-            throw new \InvalidArgumentException(sprintf(
-                'The routing file "%s" must not specify both the "resource" key and the "path" key for "%s". Choose between an import and a route definition.',
-                $path, $name
-            ));
-        }
-        if (!isset($config['resource']) && isset($config['type'])) {
-            throw new \InvalidArgumentException(sprintf(
-                'The "type" key for the route definition "%s" in "%s" is unsupported. It is only available for imports in combination with the "resource" key.',
-                $name, $path
-            ));
-        }
-        if (!isset($config['resource']) && !isset($config['path'])) {
-            throw new \InvalidArgumentException(sprintf(
-                'You must define a "path" for the route "%s" in file "%s".',
-                $name, $path
-            ));
-        }
-    }
-}
diff --git a/core/vendor/symfony/routing/Loader/schema/routing/routing-1.0.xsd b/core/vendor/symfony/routing/Loader/schema/routing/routing-1.0.xsd
deleted file mode 100644
index d40aa42..0000000
--- a/core/vendor/symfony/routing/Loader/schema/routing/routing-1.0.xsd
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<xsd:schema xmlns="http://symfony.com/schema/routing"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    targetNamespace="http://symfony.com/schema/routing"
-    elementFormDefault="qualified">
-
-  <xsd:annotation>
-    <xsd:documentation><![CDATA[
-      Symfony XML Routing Schema, version 1.0
-      Authors: Fabien Potencier, Tobias Schultze
-
-      This scheme defines the elements and attributes that can be used to define
-      routes. A route maps an HTTP request to a set of configuration variables.
-    ]]></xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:element name="routes" type="routes" />
-
-  <xsd:complexType name="routes">
-    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-      <xsd:element name="import" type="import" />
-      <xsd:element name="route" type="route" />
-    </xsd:choice>
-  </xsd:complexType>
-
-  <xsd:group name="configs">
-    <xsd:choice>
-      <xsd:element name="default" nillable="true" type="element" />
-      <xsd:element name="requirement" type="element" />
-      <xsd:element name="option" type="element" />
-      <xsd:element name="condition" type="xsd:string" />
-    </xsd:choice>
-  </xsd:group>
-
-  <xsd:complexType name="route">
-    <xsd:group ref="configs" minOccurs="0" maxOccurs="unbounded" />
-
-    <xsd:attribute name="id" type="xsd:string" use="required" />
-    <xsd:attribute name="path" type="xsd:string" />
-    <xsd:attribute name="pattern" type="xsd:string" />
-    <xsd:attribute name="host" type="xsd:string" />
-    <xsd:attribute name="schemes" type="xsd:string" />
-    <xsd:attribute name="methods" type="xsd:string" />
-  </xsd:complexType>
-
-  <xsd:complexType name="import">
-    <xsd:group ref="configs" minOccurs="0" maxOccurs="unbounded" />
-
-    <xsd:attribute name="resource" type="xsd:string" use="required" />
-    <xsd:attribute name="type" type="xsd:string" />
-    <xsd:attribute name="prefix" type="xsd:string" />
-    <xsd:attribute name="host" type="xsd:string" />
-    <xsd:attribute name="schemes" type="xsd:string" />
-    <xsd:attribute name="methods" type="xsd:string" />
-  </xsd:complexType>
-
-  <xsd:complexType name="element">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute name="key" type="xsd:string" use="required" />
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-</xsd:schema>
diff --git a/core/vendor/symfony/routing/Matcher/ApacheUrlMatcher.php b/core/vendor/symfony/routing/Matcher/ApacheUrlMatcher.php
deleted file mode 100644
index c0474f2..0000000
--- a/core/vendor/symfony/routing/Matcher/ApacheUrlMatcher.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-@trigger_error('The '.__NAMESPACE__.'\ApacheUrlMatcher class is deprecated since version 2.5 and will be removed in 3.0. It\'s hard to replicate the behaviour of the PHP implementation and the performance gains are minimal.', E_USER_DEPRECATED);
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-
-/**
- * ApacheUrlMatcher matches URL based on Apache mod_rewrite matching (see ApacheMatcherDumper).
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             The performance gains are minimal and it's very hard to replicate
- *             the behavior of PHP implementation.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- */
-class ApacheUrlMatcher extends UrlMatcher
-{
-    /**
-     * Tries to match a URL based on Apache mod_rewrite matching.
-     *
-     * Returns false if no route matches the URL.
-     *
-     * @param string $pathinfo The pathinfo to be parsed
-     *
-     * @return array An array of parameters
-     *
-     * @throws MethodNotAllowedException If the current method is not allowed
-     */
-    public function match($pathinfo)
-    {
-        $parameters = array();
-        $defaults = array();
-        $allow = array();
-        $route = null;
-
-        foreach ($this->denormalizeValues($_SERVER) as $key => $value) {
-            $name = $key;
-
-            // skip non-routing variables
-            // this improves performance when $_SERVER contains many usual
-            // variables like HTTP_*, DOCUMENT_ROOT, REQUEST_URI, ...
-            if (false === strpos($name, '_ROUTING_')) {
-                continue;
-            }
-
-            while (0 === strpos($name, 'REDIRECT_')) {
-                $name = substr($name, 9);
-            }
-
-            // expect _ROUTING_<type>_<name>
-            // or _ROUTING_<type>
-
-            if (0 !== strpos($name, '_ROUTING_')) {
-                continue;
-            }
-            if (false !== $pos = strpos($name, '_', 9)) {
-                $type = substr($name, 9, $pos - 9);
-                $name = substr($name, $pos + 1);
-            } else {
-                $type = substr($name, 9);
-            }
-
-            if ('param' === $type) {
-                if ('' !== $value) {
-                    $parameters[$name] = $value;
-                }
-            } elseif ('default' === $type) {
-                $defaults[$name] = $value;
-            } elseif ('route' === $type) {
-                $route = $value;
-            } elseif ('allow' === $type) {
-                $allow[] = $name;
-            }
-
-            unset($_SERVER[$key]);
-        }
-
-        if (null !== $route) {
-            $parameters['_route'] = $route;
-
-            return $this->mergeDefaults($parameters, $defaults);
-        } elseif (0 < count($allow)) {
-            throw new MethodNotAllowedException($allow);
-        } else {
-            return parent::match($pathinfo);
-        }
-    }
-
-    /**
-     * Denormalizes an array of values.
-     *
-     * @param string[] $values
-     *
-     * @return array
-     */
-    private function denormalizeValues(array $values)
-    {
-        $normalizedValues = array();
-        foreach ($values as $key => $value) {
-            if (preg_match('~^(.*)\[(\d+)\]$~', $key, $matches)) {
-                if (!isset($normalizedValues[$matches[1]])) {
-                    $normalizedValues[$matches[1]] = array();
-                }
-                $normalizedValues[$matches[1]][(int) $matches[2]] = $value;
-            } else {
-                $normalizedValues[$key] = $value;
-            }
-        }
-
-        return $normalizedValues;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/ApacheMatcherDumper.php b/core/vendor/symfony/routing/Matcher/Dumper/ApacheMatcherDumper.php
deleted file mode 100644
index 1eb5185..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/ApacheMatcherDumper.php
+++ /dev/null
@@ -1,278 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-@trigger_error('The '.__NAMESPACE__.'\ApacheMatcherDumper class is deprecated since version 2.5 and will be removed in 3.0. It\'s hard to replicate the behaviour of the PHP implementation and the performance gains are minimal.', E_USER_DEPRECATED);
-
-use Symfony\Component\Routing\Route;
-
-/**
- * Dumps a set of Apache mod_rewrite rules.
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             The performance gains are minimal and it's very hard to replicate
- *             the behavior of PHP implementation.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Kris Wallsmith <kris@symfony.com>
- */
-class ApacheMatcherDumper extends MatcherDumper
-{
-    /**
-     * Dumps a set of Apache mod_rewrite rules.
-     *
-     * Available options:
-     *
-     *  * script_name: The script name (app.php by default)
-     *  * base_uri:    The base URI ("" by default)
-     *
-     * @param array $options An array of options
-     *
-     * @return string A string to be used as Apache rewrite rules
-     *
-     * @throws \LogicException When the route regex is invalid
-     */
-    public function dump(array $options = array())
-    {
-        $options = array_merge(array(
-            'script_name' => 'app.php',
-            'base_uri' => '',
-        ), $options);
-
-        $options['script_name'] = self::escape($options['script_name'], ' ', '\\');
-
-        $rules = array("# skip \"real\" requests\nRewriteCond %{REQUEST_FILENAME} -f\nRewriteRule .* - [QSA,L]");
-        $methodVars = array();
-        $hostRegexUnique = 0;
-        $prevHostRegex = '';
-
-        foreach ($this->getRoutes()->all() as $name => $route) {
-            if ($route->getCondition()) {
-                throw new \LogicException(sprintf('Unable to dump the routes for Apache as route "%s" has a condition.', $name));
-            }
-
-            $compiledRoute = $route->compile();
-            $hostRegex = $compiledRoute->getHostRegex();
-
-            if (null !== $hostRegex && $prevHostRegex !== $hostRegex) {
-                $prevHostRegex = $hostRegex;
-                ++$hostRegexUnique;
-
-                $rule = array();
-
-                $regex = $this->regexToApacheRegex($hostRegex);
-                $regex = self::escape($regex, ' ', '\\');
-
-                $rule[] = sprintf('RewriteCond %%{HTTP:Host} %s', $regex);
-
-                $variables = array();
-                $variables[] = sprintf('E=__ROUTING_host_%s:1', $hostRegexUnique);
-
-                foreach ($compiledRoute->getHostVariables() as $i => $variable) {
-                    $variables[] = sprintf('E=__ROUTING_host_%s_%s:%%%d', $hostRegexUnique, $variable, $i + 1);
-                }
-
-                $variables = implode(',', $variables);
-
-                $rule[] = sprintf('RewriteRule .? - [%s]', $variables);
-
-                $rules[] = implode("\n", $rule);
-            }
-
-            $rules[] = $this->dumpRoute($name, $route, $options, $hostRegexUnique);
-
-            $methodVars = array_merge($methodVars, $route->getMethods());
-        }
-        if (0 < count($methodVars)) {
-            $rule = array('# 405 Method Not Allowed');
-            $methodVars = array_values(array_unique($methodVars));
-            if (in_array('GET', $methodVars) && !in_array('HEAD', $methodVars)) {
-                $methodVars[] = 'HEAD';
-            }
-            foreach ($methodVars as $i => $methodVar) {
-                $rule[] = sprintf('RewriteCond %%{ENV:_ROUTING__allow_%s} =1%s', $methodVar, isset($methodVars[$i + 1]) ? ' [OR]' : '');
-            }
-            $rule[] = sprintf('RewriteRule .* %s [QSA,L]', $options['script_name']);
-
-            $rules[] = implode("\n", $rule);
-        }
-
-        return implode("\n\n", $rules)."\n";
-    }
-
-    /**
-     * Dumps a single route.
-     *
-     * @param string $name            Route name
-     * @param Route  $route           The route
-     * @param array  $options         Options
-     * @param bool   $hostRegexUnique Unique identifier for the host regex
-     *
-     * @return string The compiled route
-     */
-    private function dumpRoute($name, $route, array $options, $hostRegexUnique)
-    {
-        $compiledRoute = $route->compile();
-
-        // prepare the apache regex
-        $regex = $this->regexToApacheRegex($compiledRoute->getRegex());
-        $regex = '^'.self::escape(preg_quote($options['base_uri']).substr($regex, 1), ' ', '\\');
-
-        $methods = $this->getRouteMethods($route);
-
-        $hasTrailingSlash = (!$methods || in_array('HEAD', $methods)) && '/$' === substr($regex, -2) && '^/$' !== $regex;
-
-        $variables = array('E=_ROUTING_route:'.$name);
-        foreach ($compiledRoute->getHostVariables() as $variable) {
-            $variables[] = sprintf('E=_ROUTING_param_%s:%%{ENV:__ROUTING_host_%s_%s}', $variable, $hostRegexUnique, $variable);
-        }
-        foreach ($compiledRoute->getPathVariables() as $i => $variable) {
-            $variables[] = 'E=_ROUTING_param_'.$variable.':%'.($i + 1);
-        }
-        foreach ($this->normalizeValues($route->getDefaults()) as $key => $value) {
-            $variables[] = 'E=_ROUTING_default_'.$key.':'.strtr($value, array(
-                ':' => '\\:',
-                '=' => '\\=',
-                '\\' => '\\\\',
-                ' ' => '\\ ',
-            ));
-        }
-        $variables = implode(',', $variables);
-
-        $rule = array("# $name");
-
-        // method mismatch
-        if (0 < count($methods)) {
-            $allow = array();
-            foreach ($methods as $method) {
-                $allow[] = 'E=_ROUTING_allow_'.$method.':1';
-            }
-
-            if ($compiledRoute->getHostRegex()) {
-                $rule[] = sprintf('RewriteCond %%{ENV:__ROUTING_host_%s} =1', $hostRegexUnique);
-            }
-
-            $rule[] = "RewriteCond %{REQUEST_URI} $regex";
-            $rule[] = sprintf('RewriteCond %%{REQUEST_METHOD} !^(%s)$ [NC]', implode('|', $methods));
-            $rule[] = sprintf('RewriteRule .* - [S=%d,%s]', $hasTrailingSlash ? 2 : 1, implode(',', $allow));
-        }
-
-        // redirect with trailing slash appended
-        if ($hasTrailingSlash) {
-            if ($compiledRoute->getHostRegex()) {
-                $rule[] = sprintf('RewriteCond %%{ENV:__ROUTING_host_%s} =1', $hostRegexUnique);
-            }
-
-            $rule[] = 'RewriteCond %{REQUEST_URI} '.substr($regex, 0, -2).'$';
-            $rule[] = 'RewriteRule .* $0/ [QSA,L,R=301]';
-        }
-
-        // the main rule
-
-        if ($compiledRoute->getHostRegex()) {
-            $rule[] = sprintf('RewriteCond %%{ENV:__ROUTING_host_%s} =1', $hostRegexUnique);
-        }
-
-        $rule[] = "RewriteCond %{REQUEST_URI} $regex";
-        $rule[] = "RewriteRule .* {$options['script_name']} [QSA,L,$variables]";
-
-        return implode("\n", $rule);
-    }
-
-    /**
-     * Returns methods allowed for a route.
-     *
-     * @param Route $route The route
-     *
-     * @return array The methods
-     */
-    private function getRouteMethods(Route $route)
-    {
-        $methods = $route->getMethods();
-
-        // GET and HEAD are equivalent
-        if (in_array('GET', $methods) && !in_array('HEAD', $methods)) {
-            $methods[] = 'HEAD';
-        }
-
-        return $methods;
-    }
-
-    /**
-     * Converts a regex to make it suitable for mod_rewrite.
-     *
-     * @param string $regex The regex
-     *
-     * @return string The converted regex
-     */
-    private function regexToApacheRegex($regex)
-    {
-        $regexPatternEnd = strrpos($regex, $regex[0]);
-
-        return preg_replace('/\?P<.+?>/', '', substr($regex, 1, $regexPatternEnd - 1));
-    }
-
-    /**
-     * Escapes a string.
-     *
-     * @param string $string The string to be escaped
-     * @param string $char   The character to be escaped
-     * @param string $with   The character to be used for escaping
-     *
-     * @return string The escaped string
-     */
-    private static function escape($string, $char, $with)
-    {
-        $escaped = false;
-        $output = '';
-        foreach (str_split($string) as $symbol) {
-            if ($escaped) {
-                $output .= $symbol;
-                $escaped = false;
-                continue;
-            }
-            if ($symbol === $char) {
-                $output .= $with.$char;
-                continue;
-            }
-            if ($symbol === $with) {
-                $escaped = true;
-            }
-            $output .= $symbol;
-        }
-
-        return $output;
-    }
-
-    /**
-     * Normalizes an array of values.
-     *
-     * @param array $values
-     *
-     * @return string[]
-     */
-    private function normalizeValues(array $values)
-    {
-        $normalizedValues = array();
-        foreach ($values as $key => $value) {
-            if (is_array($value)) {
-                foreach ($value as $index => $bit) {
-                    $normalizedValues[sprintf('%s[%s]', $key, $index)] = $bit;
-                }
-            } else {
-                $normalizedValues[$key] = (string) $value;
-            }
-        }
-
-        return $normalizedValues;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/DumperCollection.php b/core/vendor/symfony/routing/Matcher/Dumper/DumperCollection.php
deleted file mode 100644
index f91df98..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/DumperCollection.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-/**
- * Collection of routes.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- */
-class DumperCollection implements \IteratorAggregate
-{
-    /**
-     * @var DumperCollection|null
-     */
-    private $parent;
-
-    /**
-     * @var (DumperCollection|DumperRoute)[]
-     */
-    private $children = array();
-
-    /**
-     * @var array
-     */
-    private $attributes = array();
-
-    /**
-     * Returns the children routes and collections.
-     *
-     * @return (DumperCollection|DumperRoute)[] Array of DumperCollection|DumperRoute
-     */
-    public function all()
-    {
-        return $this->children;
-    }
-
-    /**
-     * Adds a route or collection.
-     *
-     * @param DumperRoute|DumperCollection The route or collection
-     */
-    public function add($child)
-    {
-        if ($child instanceof self) {
-            $child->setParent($this);
-        }
-        $this->children[] = $child;
-    }
-
-    /**
-     * Sets children.
-     *
-     * @param array $children The children
-     */
-    public function setAll(array $children)
-    {
-        foreach ($children as $child) {
-            if ($child instanceof self) {
-                $child->setParent($this);
-            }
-        }
-        $this->children = $children;
-    }
-
-    /**
-     * Returns an iterator over the children.
-     *
-     * @return \Iterator The iterator
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->children);
-    }
-
-    /**
-     * Returns the root of the collection.
-     *
-     * @return DumperCollection The root collection
-     */
-    public function getRoot()
-    {
-        return (null !== $this->parent) ? $this->parent->getRoot() : $this;
-    }
-
-    /**
-     * Returns the parent collection.
-     *
-     * @return DumperCollection|null The parent collection or null if the collection has no parent
-     */
-    protected function getParent()
-    {
-        return $this->parent;
-    }
-
-    /**
-     * Sets the parent collection.
-     *
-     * @param DumperCollection $parent The parent collection
-     */
-    protected function setParent(DumperCollection $parent)
-    {
-        $this->parent = $parent;
-    }
-
-    /**
-     * Returns true if the attribute is defined.
-     *
-     * @param string $name The attribute name
-     *
-     * @return bool true if the attribute is defined, false otherwise
-     */
-    public function hasAttribute($name)
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    /**
-     * Returns an attribute by name.
-     *
-     * @param string $name    The attribute name
-     * @param mixed  $default Default value is the attribute doesn't exist
-     *
-     * @return mixed The attribute value
-     */
-    public function getAttribute($name, $default = null)
-    {
-        return $this->hasAttribute($name) ? $this->attributes[$name] : $default;
-    }
-
-    /**
-     * Sets an attribute by name.
-     *
-     * @param string $name  The attribute name
-     * @param mixed  $value The attribute value
-     */
-    public function setAttribute($name, $value)
-    {
-        $this->attributes[$name] = $value;
-    }
-
-    /**
-     * Sets multiple attributes.
-     *
-     * @param array $attributes The attributes
-     */
-    public function setAttributes($attributes)
-    {
-        $this->attributes = $attributes;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/DumperPrefixCollection.php b/core/vendor/symfony/routing/Matcher/Dumper/DumperPrefixCollection.php
deleted file mode 100644
index 6a615f2..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/DumperPrefixCollection.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-/**
- * Prefix tree of routes preserving routes order.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- */
-class DumperPrefixCollection extends DumperCollection
-{
-    /**
-     * @var string
-     */
-    private $prefix = '';
-
-    /**
-     * Returns the prefix.
-     *
-     * @return string The prefix
-     */
-    public function getPrefix()
-    {
-        return $this->prefix;
-    }
-
-    /**
-     * Sets the prefix.
-     *
-     * @param string $prefix The prefix
-     */
-    public function setPrefix($prefix)
-    {
-        $this->prefix = $prefix;
-    }
-
-    /**
-     * Adds a route in the tree.
-     *
-     * @param DumperRoute $route The route
-     *
-     * @return DumperPrefixCollection The node the route was added to
-     *
-     * @throws \LogicException
-     */
-    public function addPrefixRoute(DumperRoute $route)
-    {
-        $prefix = $route->getRoute()->compile()->getStaticPrefix();
-
-        for ($collection = $this; null !== $collection; $collection = $collection->getParent()) {
-            // Same prefix, add to current leave
-            if ($collection->prefix === $prefix) {
-                $collection->add($route);
-
-                return $collection;
-            }
-
-            // Prefix starts with route's prefix
-            if ('' === $collection->prefix || 0 === strpos($prefix, $collection->prefix)) {
-                $child = new self();
-                $child->setPrefix(substr($prefix, 0, strlen($collection->prefix) + 1));
-                $collection->add($child);
-
-                return $child->addPrefixRoute($route);
-            }
-        }
-
-        // Reached only if the root has a non empty prefix
-        throw new \LogicException('The collection root must not have a prefix');
-    }
-
-    /**
-     * Merges nodes whose prefix ends with a slash.
-     *
-     * Children of a node whose prefix ends with a slash are moved to the parent node
-     */
-    public function mergeSlashNodes()
-    {
-        $children = array();
-
-        foreach ($this as $child) {
-            if ($child instanceof self) {
-                $child->mergeSlashNodes();
-                if ('/' === substr($child->prefix, -1)) {
-                    $children = array_merge($children, $child->all());
-                } else {
-                    $children[] = $child;
-                }
-            } else {
-                $children[] = $child;
-            }
-        }
-
-        $this->setAll($children);
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/DumperRoute.php b/core/vendor/symfony/routing/Matcher/Dumper/DumperRoute.php
deleted file mode 100644
index 2928cdc..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/DumperRoute.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-use Symfony\Component\Routing\Route;
-
-/**
- * Container for a Route.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- */
-class DumperRoute
-{
-    /**
-     * @var string
-     */
-    private $name;
-
-    /**
-     * @var Route
-     */
-    private $route;
-
-    /**
-     * Constructor.
-     *
-     * @param string $name  The route name
-     * @param Route  $route The route
-     */
-    public function __construct($name, Route $route)
-    {
-        $this->name = $name;
-        $this->route = $route;
-    }
-
-    /**
-     * Returns the route name.
-     *
-     * @return string The route name
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Returns the route.
-     *
-     * @return Route The route
-     */
-    public function getRoute()
-    {
-        return $this->route;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php b/core/vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php
deleted file mode 100644
index 52edc01..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * MatcherDumper is the abstract class for all built-in matcher dumpers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class MatcherDumper implements MatcherDumperInterface
-{
-    /**
-     * @var RouteCollection
-     */
-    private $routes;
-
-    /**
-     * Constructor.
-     *
-     * @param RouteCollection $routes The RouteCollection to dump
-     */
-    public function __construct(RouteCollection $routes)
-    {
-        $this->routes = $routes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRoutes()
-    {
-        return $this->routes;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php b/core/vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php
deleted file mode 100644
index 5e7c134..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * MatcherDumperInterface is the interface that all matcher dumper classes must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface MatcherDumperInterface
-{
-    /**
-     * Dumps a set of routes to a string representation of executable code
-     * that can then be used to match a request against these routes.
-     *
-     * @param array $options An array of options
-     *
-     * @return string Executable code
-     */
-    public function dump(array $options = array());
-
-    /**
-     * Gets the routes to dump.
-     *
-     * @return RouteCollection A RouteCollection instance
-     */
-    public function getRoutes();
-}
diff --git a/core/vendor/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php b/core/vendor/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php
deleted file mode 100644
index aa7df8a..0000000
--- a/core/vendor/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php
+++ /dev/null
@@ -1,409 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher\Dumper;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
-
-/**
- * PhpMatcherDumper creates a PHP class able to match URLs for a given set of routes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- */
-class PhpMatcherDumper extends MatcherDumper
-{
-    private $expressionLanguage;
-
-    /**
-     * @var ExpressionFunctionProviderInterface[]
-     */
-    private $expressionLanguageProviders = array();
-
-    /**
-     * Dumps a set of routes to a PHP class.
-     *
-     * Available options:
-     *
-     *  * class:      The class name
-     *  * base_class: The base class name
-     *
-     * @param array $options An array of options
-     *
-     * @return string A PHP class representing the matcher class
-     */
-    public function dump(array $options = array())
-    {
-        $options = array_replace(array(
-            'class' => 'ProjectUrlMatcher',
-            'base_class' => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher',
-        ), $options);
-
-        // trailing slash support is only enabled if we know how to redirect the user
-        $interfaces = class_implements($options['base_class']);
-        $supportsRedirections = isset($interfaces['Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface']);
-
-        return <<<EOF
-<?php
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\RequestContext;
-
-/**
- * {$options['class']}.
- *
- * This class has been auto-generated
- * by the Symfony Routing Component.
- */
-class {$options['class']} extends {$options['base_class']}
-{
-    /**
-     * Constructor.
-     */
-    public function __construct(RequestContext \$context)
-    {
-        \$this->context = \$context;
-    }
-
-{$this->generateMatchMethod($supportsRedirections)}
-}
-
-EOF;
-    }
-
-    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
-    {
-        $this->expressionLanguageProviders[] = $provider;
-    }
-
-    /**
-     * Generates the code for the match method implementing UrlMatcherInterface.
-     *
-     * @param bool $supportsRedirections Whether redirections are supported by the base class
-     *
-     * @return string Match method as PHP code
-     */
-    private function generateMatchMethod($supportsRedirections)
-    {
-        $code = rtrim($this->compileRoutes($this->getRoutes(), $supportsRedirections), "\n");
-
-        return <<<EOF
-    public function match(\$pathinfo)
-    {
-        \$allow = array();
-        \$pathinfo = rawurldecode(\$pathinfo);
-        \$context = \$this->context;
-        \$request = \$this->request;
-
-$code
-
-        throw 0 < count(\$allow) ? new MethodNotAllowedException(array_unique(\$allow)) : new ResourceNotFoundException();
-    }
-EOF;
-    }
-
-    /**
-     * Generates PHP code to match a RouteCollection with all its routes.
-     *
-     * @param RouteCollection $routes               A RouteCollection instance
-     * @param bool            $supportsRedirections Whether redirections are supported by the base class
-     *
-     * @return string PHP code
-     */
-    private function compileRoutes(RouteCollection $routes, $supportsRedirections)
-    {
-        $fetchedHost = false;
-
-        $groups = $this->groupRoutesByHostRegex($routes);
-        $code = '';
-
-        foreach ($groups as $collection) {
-            if (null !== $regex = $collection->getAttribute('host_regex')) {
-                if (!$fetchedHost) {
-                    $code .= "        \$host = \$this->context->getHost();\n\n";
-                    $fetchedHost = true;
-                }
-
-                $code .= sprintf("        if (preg_match(%s, \$host, \$hostMatches)) {\n", var_export($regex, true));
-            }
-
-            $tree = $this->buildPrefixTree($collection);
-            $groupCode = $this->compilePrefixRoutes($tree, $supportsRedirections);
-
-            if (null !== $regex) {
-                // apply extra indention at each line (except empty ones)
-                $groupCode = preg_replace('/^.{2,}$/m', '    $0', $groupCode);
-                $code .= $groupCode;
-                $code .= "        }\n\n";
-            } else {
-                $code .= $groupCode;
-            }
-        }
-
-        return $code;
-    }
-
-    /**
-     * Generates PHP code recursively to match a tree of routes.
-     *
-     * @param DumperPrefixCollection $collection           A DumperPrefixCollection instance
-     * @param bool                   $supportsRedirections Whether redirections are supported by the base class
-     * @param string                 $parentPrefix         Prefix of the parent collection
-     *
-     * @return string PHP code
-     */
-    private function compilePrefixRoutes(DumperPrefixCollection $collection, $supportsRedirections, $parentPrefix = '')
-    {
-        $code = '';
-        $prefix = $collection->getPrefix();
-        $optimizable = 1 < strlen($prefix) && 1 < count($collection->all());
-        $optimizedPrefix = $parentPrefix;
-
-        if ($optimizable) {
-            $optimizedPrefix = $prefix;
-
-            $code .= sprintf("    if (0 === strpos(\$pathinfo, %s)) {\n", var_export($prefix, true));
-        }
-
-        foreach ($collection as $route) {
-            if ($route instanceof DumperCollection) {
-                $code .= $this->compilePrefixRoutes($route, $supportsRedirections, $optimizedPrefix);
-            } else {
-                $code .= $this->compileRoute($route->getRoute(), $route->getName(), $supportsRedirections, $optimizedPrefix)."\n";
-            }
-        }
-
-        if ($optimizable) {
-            $code .= "    }\n\n";
-            // apply extra indention at each line (except empty ones)
-            $code = preg_replace('/^.{2,}$/m', '    $0', $code);
-        }
-
-        return $code;
-    }
-
-    /**
-     * Compiles a single Route to PHP code used to match it against the path info.
-     *
-     * @param Route       $route                A Route instance
-     * @param string      $name                 The name of the Route
-     * @param bool        $supportsRedirections Whether redirections are supported by the base class
-     * @param string|null $parentPrefix         The prefix of the parent collection used to optimize the code
-     *
-     * @return string PHP code
-     *
-     * @throws \LogicException
-     */
-    private function compileRoute(Route $route, $name, $supportsRedirections, $parentPrefix = null)
-    {
-        $code = '';
-        $compiledRoute = $route->compile();
-        $conditions = array();
-        $hasTrailingSlash = false;
-        $matches = false;
-        $hostMatches = false;
-        $methods = $route->getMethods();
-
-        // GET and HEAD are equivalent
-        if (in_array('GET', $methods) && !in_array('HEAD', $methods)) {
-            $methods[] = 'HEAD';
-        }
-
-        $supportsTrailingSlash = $supportsRedirections && (!$methods || in_array('HEAD', $methods));
-
-        if (!count($compiledRoute->getPathVariables()) && false !== preg_match('#^(.)\^(?P<url>.*?)\$\1#', $compiledRoute->getRegex(), $m)) {
-            if ($supportsTrailingSlash && substr($m['url'], -1) === '/') {
-                $conditions[] = sprintf("rtrim(\$pathinfo, '/') === %s", var_export(rtrim(str_replace('\\', '', $m['url']), '/'), true));
-                $hasTrailingSlash = true;
-            } else {
-                $conditions[] = sprintf('$pathinfo === %s', var_export(str_replace('\\', '', $m['url']), true));
-            }
-        } else {
-            if ($compiledRoute->getStaticPrefix() && $compiledRoute->getStaticPrefix() !== $parentPrefix) {
-                $conditions[] = sprintf('0 === strpos($pathinfo, %s)', var_export($compiledRoute->getStaticPrefix(), true));
-            }
-
-            $regex = $compiledRoute->getRegex();
-            if ($supportsTrailingSlash && $pos = strpos($regex, '/$')) {
-                $regex = substr($regex, 0, $pos).'/?$'.substr($regex, $pos + 2);
-                $hasTrailingSlash = true;
-            }
-            $conditions[] = sprintf('preg_match(%s, $pathinfo, $matches)', var_export($regex, true));
-
-            $matches = true;
-        }
-
-        if ($compiledRoute->getHostVariables()) {
-            $hostMatches = true;
-        }
-
-        if ($route->getCondition()) {
-            $conditions[] = $this->getExpressionLanguage()->compile($route->getCondition(), array('context', 'request'));
-        }
-
-        $conditions = implode(' && ', $conditions);
-
-        $code .= <<<EOF
-        // $name
-        if ($conditions) {
-
-EOF;
-
-        $gotoname = 'not_'.preg_replace('/[^A-Za-z0-9_]/', '', $name);
-        if ($methods) {
-            if (1 === count($methods)) {
-                $code .= <<<EOF
-            if (\$this->context->getMethod() != '$methods[0]') {
-                \$allow[] = '$methods[0]';
-                goto $gotoname;
-            }
-
-
-EOF;
-            } else {
-                $methods = implode("', '", $methods);
-                $code .= <<<EOF
-            if (!in_array(\$this->context->getMethod(), array('$methods'))) {
-                \$allow = array_merge(\$allow, array('$methods'));
-                goto $gotoname;
-            }
-
-
-EOF;
-            }
-        }
-
-        if ($hasTrailingSlash) {
-            $code .= <<<EOF
-            if (substr(\$pathinfo, -1) !== '/') {
-                return \$this->redirect(\$pathinfo.'/', '$name');
-            }
-
-
-EOF;
-        }
-
-        if ($schemes = $route->getSchemes()) {
-            if (!$supportsRedirections) {
-                throw new \LogicException('The "schemes" requirement is only supported for URL matchers that implement RedirectableUrlMatcherInterface.');
-            }
-            $schemes = str_replace("\n", '', var_export(array_flip($schemes), true));
-            $code .= <<<EOF
-            \$requiredSchemes = $schemes;
-            if (!isset(\$requiredSchemes[\$this->context->getScheme()])) {
-                return \$this->redirect(\$pathinfo, '$name', key(\$requiredSchemes));
-            }
-
-
-EOF;
-        }
-
-        // optimize parameters array
-        if ($matches || $hostMatches) {
-            $vars = array();
-            if ($hostMatches) {
-                $vars[] = '$hostMatches';
-            }
-            if ($matches) {
-                $vars[] = '$matches';
-            }
-            $vars[] = "array('_route' => '$name')";
-
-            $code .= sprintf(
-                "            return \$this->mergeDefaults(array_replace(%s), %s);\n",
-                implode(', ', $vars),
-                str_replace("\n", '', var_export($route->getDefaults(), true))
-            );
-        } elseif ($route->getDefaults()) {
-            $code .= sprintf("            return %s;\n", str_replace("\n", '', var_export(array_replace($route->getDefaults(), array('_route' => $name)), true)));
-        } else {
-            $code .= sprintf("            return array('_route' => '%s');\n", $name);
-        }
-        $code .= "        }\n";
-
-        if ($methods) {
-            $code .= "        $gotoname:\n";
-        }
-
-        return $code;
-    }
-
-    /**
-     * Groups consecutive routes having the same host regex.
-     *
-     * The result is a collection of collections of routes having the same host regex.
-     *
-     * @param RouteCollection $routes A flat RouteCollection
-     *
-     * @return DumperCollection A collection with routes grouped by host regex in sub-collections
-     */
-    private function groupRoutesByHostRegex(RouteCollection $routes)
-    {
-        $groups = new DumperCollection();
-
-        $currentGroup = new DumperCollection();
-        $currentGroup->setAttribute('host_regex', null);
-        $groups->add($currentGroup);
-
-        foreach ($routes as $name => $route) {
-            $hostRegex = $route->compile()->getHostRegex();
-            if ($currentGroup->getAttribute('host_regex') !== $hostRegex) {
-                $currentGroup = new DumperCollection();
-                $currentGroup->setAttribute('host_regex', $hostRegex);
-                $groups->add($currentGroup);
-            }
-            $currentGroup->add(new DumperRoute($name, $route));
-        }
-
-        return $groups;
-    }
-
-    /**
-     * Organizes the routes into a prefix tree.
-     *
-     * Routes order is preserved such that traversing the tree will traverse the
-     * routes in the origin order.
-     *
-     * @param DumperCollection $collection A collection of routes
-     *
-     * @return DumperPrefixCollection
-     */
-    private function buildPrefixTree(DumperCollection $collection)
-    {
-        $tree = new DumperPrefixCollection();
-        $current = $tree;
-
-        foreach ($collection as $route) {
-            $current = $current->addPrefixRoute($route);
-        }
-
-        $tree->mergeSlashNodes();
-
-        return $tree;
-    }
-
-    private function getExpressionLanguage()
-    {
-        if (null === $this->expressionLanguage) {
-            if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
-                throw new \RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
-            }
-            $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders);
-        }
-
-        return $this->expressionLanguage;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/RedirectableUrlMatcher.php b/core/vendor/symfony/routing/Matcher/RedirectableUrlMatcher.php
deleted file mode 100644
index 236f55a..0000000
--- a/core/vendor/symfony/routing/Matcher/RedirectableUrlMatcher.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Route;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-abstract class RedirectableUrlMatcher extends UrlMatcher implements RedirectableUrlMatcherInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function match($pathinfo)
-    {
-        try {
-            $parameters = parent::match($pathinfo);
-        } catch (ResourceNotFoundException $e) {
-            if ('/' === substr($pathinfo, -1) || !in_array($this->context->getMethod(), array('HEAD', 'GET'))) {
-                throw $e;
-            }
-
-            try {
-                parent::match($pathinfo.'/');
-
-                return $this->redirect($pathinfo.'/', null);
-            } catch (ResourceNotFoundException $e2) {
-                throw $e;
-            }
-        }
-
-        return $parameters;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function handleRouteRequirements($pathinfo, $name, Route $route)
-    {
-        // expression condition
-        if ($route->getCondition() && !$this->getExpressionLanguage()->evaluate($route->getCondition(), array('context' => $this->context, 'request' => $this->request))) {
-            return array(self::REQUIREMENT_MISMATCH, null);
-        }
-
-        // check HTTP scheme requirement
-        $scheme = $this->context->getScheme();
-        $schemes = $route->getSchemes();
-        if ($schemes && !$route->hasScheme($scheme)) {
-            return array(self::ROUTE_MATCH, $this->redirect($pathinfo, $name, current($schemes)));
-        }
-
-        return array(self::REQUIREMENT_MATCH, null);
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php b/core/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php
deleted file mode 100644
index ea91e07..0000000
--- a/core/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-/**
- * RedirectableUrlMatcherInterface knows how to redirect the user.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface RedirectableUrlMatcherInterface
-{
-    /**
-     * Redirects the user to another URL.
-     *
-     * @param string      $path   The path info to redirect to.
-     * @param string      $route  The route name that matched
-     * @param string|null $scheme The URL scheme (null to keep the current one)
-     *
-     * @return array An array of parameters
-     *
-     * @api
-     */
-    public function redirect($path, $route, $scheme = null);
-}
diff --git a/core/vendor/symfony/routing/Matcher/RequestMatcherInterface.php b/core/vendor/symfony/routing/Matcher/RequestMatcherInterface.php
deleted file mode 100644
index b5def3d..0000000
--- a/core/vendor/symfony/routing/Matcher/RequestMatcherInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-
-/**
- * RequestMatcherInterface is the interface that all request matcher classes must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface RequestMatcherInterface
-{
-    /**
-     * Tries to match a request with a set of routes.
-     *
-     * If the matcher can not find information, it must throw one of the exceptions documented
-     * below.
-     *
-     * @param Request $request The request to match
-     *
-     * @return array An array of parameters
-     *
-     * @throws ResourceNotFoundException If no matching resource could be found
-     * @throws MethodNotAllowedException If a matching resource was found but the request method is not allowed
-     */
-    public function matchRequest(Request $request);
-}
diff --git a/core/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php b/core/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php
deleted file mode 100644
index ef4f24c..0000000
--- a/core/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-use Symfony\Component\Routing\Exception\ExceptionInterface;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-
-/**
- * TraceableUrlMatcher helps debug path info matching by tracing the match.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class TraceableUrlMatcher extends UrlMatcher
-{
-    const ROUTE_DOES_NOT_MATCH = 0;
-    const ROUTE_ALMOST_MATCHES = 1;
-    const ROUTE_MATCHES = 2;
-
-    protected $traces;
-
-    public function getTraces($pathinfo)
-    {
-        $this->traces = array();
-
-        try {
-            $this->match($pathinfo);
-        } catch (ExceptionInterface $e) {
-        }
-
-        return $this->traces;
-    }
-
-    protected function matchCollection($pathinfo, RouteCollection $routes)
-    {
-        foreach ($routes as $name => $route) {
-            $compiledRoute = $route->compile();
-
-            if (!preg_match($compiledRoute->getRegex(), $pathinfo, $matches)) {
-                // does it match without any requirements?
-                $r = new Route($route->getPath(), $route->getDefaults(), array(), $route->getOptions());
-                $cr = $r->compile();
-                if (!preg_match($cr->getRegex(), $pathinfo)) {
-                    $this->addTrace(sprintf('Path "%s" does not match', $route->getPath()), self::ROUTE_DOES_NOT_MATCH, $name, $route);
-
-                    continue;
-                }
-
-                foreach ($route->getRequirements() as $n => $regex) {
-                    $r = new Route($route->getPath(), $route->getDefaults(), array($n => $regex), $route->getOptions());
-                    $cr = $r->compile();
-
-                    if (in_array($n, $cr->getVariables()) && !preg_match($cr->getRegex(), $pathinfo)) {
-                        $this->addTrace(sprintf('Requirement for "%s" does not match (%s)', $n, $regex), self::ROUTE_ALMOST_MATCHES, $name, $route);
-
-                        continue 2;
-                    }
-                }
-
-                continue;
-            }
-
-            // check host requirement
-            $hostMatches = array();
-            if ($compiledRoute->getHostRegex() && !preg_match($compiledRoute->getHostRegex(), $this->context->getHost(), $hostMatches)) {
-                $this->addTrace(sprintf('Host "%s" does not match the requirement ("%s")', $this->context->getHost(), $route->getHost()), self::ROUTE_ALMOST_MATCHES, $name, $route);
-
-                continue;
-            }
-
-            // check HTTP method requirement
-            if ($requiredMethods = $route->getMethods()) {
-                // HEAD and GET are equivalent as per RFC
-                if ('HEAD' === $method = $this->context->getMethod()) {
-                    $method = 'GET';
-                }
-
-                if (!in_array($method, $requiredMethods)) {
-                    $this->allow = array_merge($this->allow, $requiredMethods);
-
-                    $this->addTrace(sprintf('Method "%s" does not match any of the required methods (%s)', $this->context->getMethod(), implode(', ', $requiredMethods)), self::ROUTE_ALMOST_MATCHES, $name, $route);
-
-                    continue;
-                }
-            }
-
-            // check condition
-            if ($condition = $route->getCondition()) {
-                if (!$this->getExpressionLanguage()->evaluate($condition, array('context' => $this->context, 'request' => $this->request))) {
-                    $this->addTrace(sprintf('Condition "%s" does not evaluate to "true"', $condition), self::ROUTE_ALMOST_MATCHES, $name, $route);
-
-                    continue;
-                }
-            }
-
-            // check HTTP scheme requirement
-            if ($requiredSchemes = $route->getSchemes()) {
-                $scheme = $this->context->getScheme();
-
-                if (!$route->hasScheme($scheme)) {
-                    $this->addTrace(sprintf('Scheme "%s" does not match any of the required schemes (%s); the user will be redirected to first required scheme', $scheme, implode(', ', $requiredSchemes)), self::ROUTE_ALMOST_MATCHES, $name, $route);
-
-                    return true;
-                }
-            }
-
-            $this->addTrace('Route matches!', self::ROUTE_MATCHES, $name, $route);
-
-            return true;
-        }
-    }
-
-    private function addTrace($log, $level = self::ROUTE_DOES_NOT_MATCH, $name = null, $route = null)
-    {
-        $this->traces[] = array(
-            'log' => $log,
-            'name' => $name,
-            'level' => $level,
-            'path' => null !== $route ? $route->getPath() : null,
-        );
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/UrlMatcher.php b/core/vendor/symfony/routing/Matcher/UrlMatcher.php
deleted file mode 100644
index c754144..0000000
--- a/core/vendor/symfony/routing/Matcher/UrlMatcher.php
+++ /dev/null
@@ -1,255 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
-
-/**
- * UrlMatcher matches URL based on a set of routes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class UrlMatcher implements UrlMatcherInterface, RequestMatcherInterface
-{
-    const REQUIREMENT_MATCH = 0;
-    const REQUIREMENT_MISMATCH = 1;
-    const ROUTE_MATCH = 2;
-
-    /**
-     * @var RequestContext
-     */
-    protected $context;
-
-    /**
-     * @var array
-     */
-    protected $allow = array();
-
-    /**
-     * @var RouteCollection
-     */
-    protected $routes;
-
-    protected $request;
-    protected $expressionLanguage;
-
-    /**
-     * @var ExpressionFunctionProviderInterface[]
-     */
-    protected $expressionLanguageProviders = array();
-
-    /**
-     * Constructor.
-     *
-     * @param RouteCollection $routes  A RouteCollection instance
-     * @param RequestContext  $context The context
-     *
-     * @api
-     */
-    public function __construct(RouteCollection $routes, RequestContext $context)
-    {
-        $this->routes = $routes;
-        $this->context = $context;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContext(RequestContext $context)
-    {
-        $this->context = $context;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function match($pathinfo)
-    {
-        $this->allow = array();
-
-        if ($ret = $this->matchCollection(rawurldecode($pathinfo), $this->routes)) {
-            return $ret;
-        }
-
-        throw 0 < count($this->allow)
-            ? new MethodNotAllowedException(array_unique($this->allow))
-            : new ResourceNotFoundException(sprintf('No routes found for "%s".', $pathinfo));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function matchRequest(Request $request)
-    {
-        $this->request = $request;
-
-        $ret = $this->match($request->getPathInfo());
-
-        $this->request = null;
-
-        return $ret;
-    }
-
-    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
-    {
-        $this->expressionLanguageProviders[] = $provider;
-    }
-
-    /**
-     * Tries to match a URL with a set of routes.
-     *
-     * @param string          $pathinfo The path info to be parsed
-     * @param RouteCollection $routes   The set of routes
-     *
-     * @return array An array of parameters
-     *
-     * @throws ResourceNotFoundException If the resource could not be found
-     * @throws MethodNotAllowedException If the resource was found but the request method is not allowed
-     */
-    protected function matchCollection($pathinfo, RouteCollection $routes)
-    {
-        foreach ($routes as $name => $route) {
-            $compiledRoute = $route->compile();
-
-            // check the static prefix of the URL first. Only use the more expensive preg_match when it matches
-            if ('' !== $compiledRoute->getStaticPrefix() && 0 !== strpos($pathinfo, $compiledRoute->getStaticPrefix())) {
-                continue;
-            }
-
-            if (!preg_match($compiledRoute->getRegex(), $pathinfo, $matches)) {
-                continue;
-            }
-
-            $hostMatches = array();
-            if ($compiledRoute->getHostRegex() && !preg_match($compiledRoute->getHostRegex(), $this->context->getHost(), $hostMatches)) {
-                continue;
-            }
-
-            // check HTTP method requirement
-            if ($requiredMethods = $route->getMethods()) {
-                // HEAD and GET are equivalent as per RFC
-                if ('HEAD' === $method = $this->context->getMethod()) {
-                    $method = 'GET';
-                }
-
-                if (!in_array($method, $requiredMethods)) {
-                    $this->allow = array_merge($this->allow, $requiredMethods);
-
-                    continue;
-                }
-            }
-
-            $status = $this->handleRouteRequirements($pathinfo, $name, $route);
-
-            if (self::ROUTE_MATCH === $status[0]) {
-                return $status[1];
-            }
-
-            if (self::REQUIREMENT_MISMATCH === $status[0]) {
-                continue;
-            }
-
-            return $this->getAttributes($route, $name, array_replace($matches, $hostMatches));
-        }
-    }
-
-    /**
-     * Returns an array of values to use as request attributes.
-     *
-     * As this method requires the Route object, it is not available
-     * in matchers that do not have access to the matched Route instance
-     * (like the PHP and Apache matcher dumpers).
-     *
-     * @param Route  $route      The route we are matching against
-     * @param string $name       The name of the route
-     * @param array  $attributes An array of attributes from the matcher
-     *
-     * @return array An array of parameters
-     */
-    protected function getAttributes(Route $route, $name, array $attributes)
-    {
-        $attributes['_route'] = $name;
-
-        return $this->mergeDefaults($attributes, $route->getDefaults());
-    }
-
-    /**
-     * Handles specific route requirements.
-     *
-     * @param string $pathinfo The path
-     * @param string $name     The route name
-     * @param Route  $route    The route
-     *
-     * @return array The first element represents the status, the second contains additional information
-     */
-    protected function handleRouteRequirements($pathinfo, $name, Route $route)
-    {
-        // expression condition
-        if ($route->getCondition() && !$this->getExpressionLanguage()->evaluate($route->getCondition(), array('context' => $this->context, 'request' => $this->request))) {
-            return array(self::REQUIREMENT_MISMATCH, null);
-        }
-
-        // check HTTP scheme requirement
-        $scheme = $this->context->getScheme();
-        $status = $route->getSchemes() && !$route->hasScheme($scheme) ? self::REQUIREMENT_MISMATCH : self::REQUIREMENT_MATCH;
-
-        return array($status, null);
-    }
-
-    /**
-     * Get merged default parameters.
-     *
-     * @param array $params   The parameters
-     * @param array $defaults The defaults
-     *
-     * @return array Merged default parameters
-     */
-    protected function mergeDefaults($params, $defaults)
-    {
-        foreach ($params as $key => $value) {
-            if (!is_int($key)) {
-                $defaults[$key] = $value;
-            }
-        }
-
-        return $defaults;
-    }
-
-    protected function getExpressionLanguage()
-    {
-        if (null === $this->expressionLanguage) {
-            if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
-                throw new \RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
-            }
-            $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders);
-        }
-
-        return $this->expressionLanguage;
-    }
-}
diff --git a/core/vendor/symfony/routing/Matcher/UrlMatcherInterface.php b/core/vendor/symfony/routing/Matcher/UrlMatcherInterface.php
deleted file mode 100644
index dd718b1..0000000
--- a/core/vendor/symfony/routing/Matcher/UrlMatcherInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Matcher;
-
-use Symfony\Component\Routing\RequestContextAwareInterface;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-
-/**
- * UrlMatcherInterface is the interface that all URL matcher classes must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface UrlMatcherInterface extends RequestContextAwareInterface
-{
-    /**
-     * Tries to match a URL path with a set of routes.
-     *
-     * If the matcher can not find information, it must throw one of the exceptions documented
-     * below.
-     *
-     * @param string $pathinfo The path info to be parsed (raw format, i.e. not urldecoded)
-     *
-     * @return array An array of parameters
-     *
-     * @throws ResourceNotFoundException If the resource could not be found
-     * @throws MethodNotAllowedException If the resource was found but the request method is not allowed
-     *
-     * @api
-     */
-    public function match($pathinfo);
-}
diff --git a/core/vendor/symfony/routing/README.md b/core/vendor/symfony/routing/README.md
deleted file mode 100644
index 1a94583..0000000
--- a/core/vendor/symfony/routing/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-Routing Component
-=================
-
-Routing associates a request with the code that will convert it to a response.
-
-The example below demonstrates how you can set up a fully working routing
-system:
-
-```php
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\Matcher\UrlMatcher;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-
-$routes = new RouteCollection();
-$routes->add('hello', new Route('/hello', array('controller' => 'foo')));
-
-$context = new RequestContext();
-
-// this is optional and can be done without a Request instance
-$context->fromRequest(Request::createFromGlobals());
-
-$matcher = new UrlMatcher($routes, $context);
-
-$parameters = $matcher->match('/hello');
-```
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Routing/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/routing/RequestContext.php b/core/vendor/symfony/routing/RequestContext.php
deleted file mode 100644
index 577d1d0..0000000
--- a/core/vendor/symfony/routing/RequestContext.php
+++ /dev/null
@@ -1,364 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Holds information about the current request.
- *
- * This class implements a fluent interface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class RequestContext
-{
-    private $baseUrl;
-    private $pathInfo;
-    private $method;
-    private $host;
-    private $scheme;
-    private $httpPort;
-    private $httpsPort;
-    private $queryString;
-
-    /**
-     * @var array
-     */
-    private $parameters = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $baseUrl     The base URL
-     * @param string $method      The HTTP method
-     * @param string $host        The HTTP host name
-     * @param string $scheme      The HTTP scheme
-     * @param int    $httpPort    The HTTP port
-     * @param int    $httpsPort   The HTTPS port
-     * @param string $path        The path
-     * @param string $queryString The query string
-     *
-     * @api
-     */
-    public function __construct($baseUrl = '', $method = 'GET', $host = 'localhost', $scheme = 'http', $httpPort = 80, $httpsPort = 443, $path = '/', $queryString = '')
-    {
-        $this->setBaseUrl($baseUrl);
-        $this->setMethod($method);
-        $this->setHost($host);
-        $this->setScheme($scheme);
-        $this->setHttpPort($httpPort);
-        $this->setHttpsPort($httpsPort);
-        $this->setPathInfo($path);
-        $this->setQueryString($queryString);
-    }
-
-    /**
-     * Updates the RequestContext information based on a HttpFoundation Request.
-     *
-     * @param Request $request A Request instance
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     */
-    public function fromRequest(Request $request)
-    {
-        $this->setBaseUrl($request->getBaseUrl());
-        $this->setPathInfo($request->getPathInfo());
-        $this->setMethod($request->getMethod());
-        $this->setHost($request->getHost());
-        $this->setScheme($request->getScheme());
-        $this->setHttpPort($request->isSecure() ? $this->httpPort : $request->getPort());
-        $this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->httpsPort);
-        $this->setQueryString($request->server->get('QUERY_STRING', ''));
-
-        return $this;
-    }
-
-    /**
-     * Gets the base URL.
-     *
-     * @return string The base URL
-     */
-    public function getBaseUrl()
-    {
-        return $this->baseUrl;
-    }
-
-    /**
-     * Sets the base URL.
-     *
-     * @param string $baseUrl The base URL
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setBaseUrl($baseUrl)
-    {
-        $this->baseUrl = $baseUrl;
-
-        return $this;
-    }
-
-    /**
-     * Gets the path info.
-     *
-     * @return string The path info
-     */
-    public function getPathInfo()
-    {
-        return $this->pathInfo;
-    }
-
-    /**
-     * Sets the path info.
-     *
-     * @param string $pathInfo The path info
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     */
-    public function setPathInfo($pathInfo)
-    {
-        $this->pathInfo = $pathInfo;
-
-        return $this;
-    }
-
-    /**
-     * Gets the HTTP method.
-     *
-     * The method is always an uppercased string.
-     *
-     * @return string The HTTP method
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * Sets the HTTP method.
-     *
-     * @param string $method The HTTP method
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setMethod($method)
-    {
-        $this->method = strtoupper($method);
-
-        return $this;
-    }
-
-    /**
-     * Gets the HTTP host.
-     *
-     * The host is always lowercased because it must be treated case-insensitive.
-     *
-     * @return string The HTTP host
-     */
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    /**
-     * Sets the HTTP host.
-     *
-     * @param string $host The HTTP host
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setHost($host)
-    {
-        $this->host = strtolower($host);
-
-        return $this;
-    }
-
-    /**
-     * Gets the HTTP scheme.
-     *
-     * @return string The HTTP scheme
-     */
-    public function getScheme()
-    {
-        return $this->scheme;
-    }
-
-    /**
-     * Sets the HTTP scheme.
-     *
-     * @param string $scheme The HTTP scheme
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setScheme($scheme)
-    {
-        $this->scheme = strtolower($scheme);
-
-        return $this;
-    }
-
-    /**
-     * Gets the HTTP port.
-     *
-     * @return int The HTTP port
-     */
-    public function getHttpPort()
-    {
-        return $this->httpPort;
-    }
-
-    /**
-     * Sets the HTTP port.
-     *
-     * @param int $httpPort The HTTP port
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setHttpPort($httpPort)
-    {
-        $this->httpPort = (int) $httpPort;
-
-        return $this;
-    }
-
-    /**
-     * Gets the HTTPS port.
-     *
-     * @return int The HTTPS port
-     */
-    public function getHttpsPort()
-    {
-        return $this->httpsPort;
-    }
-
-    /**
-     * Sets the HTTPS port.
-     *
-     * @param int $httpsPort The HTTPS port
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setHttpsPort($httpsPort)
-    {
-        $this->httpsPort = (int) $httpsPort;
-
-        return $this;
-    }
-
-    /**
-     * Gets the query string.
-     *
-     * @return string The query string without the "?"
-     */
-    public function getQueryString()
-    {
-        return $this->queryString;
-    }
-
-    /**
-     * Sets the query string.
-     *
-     * @param string $queryString The query string (after "?")
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setQueryString($queryString)
-    {
-        // string cast to be fault-tolerant, accepting null
-        $this->queryString = (string) $queryString;
-
-        return $this;
-    }
-
-    /**
-     * Returns the parameters.
-     *
-     * @return array The parameters
-     */
-    public function getParameters()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Sets the parameters.
-     *
-     * @param array $parameters The parameters
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     */
-    public function setParameters(array $parameters)
-    {
-        $this->parameters = $parameters;
-
-        return $this;
-    }
-
-    /**
-     * Gets a parameter value.
-     *
-     * @param string $name A parameter name
-     *
-     * @return mixed The parameter value or null if nonexistent
-     */
-    public function getParameter($name)
-    {
-        return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
-    }
-
-    /**
-     * Checks if a parameter value is set for the given parameter.
-     *
-     * @param string $name A parameter name
-     *
-     * @return bool True if the parameter value is set, false otherwise
-     */
-    public function hasParameter($name)
-    {
-        return array_key_exists($name, $this->parameters);
-    }
-
-    /**
-     * Sets a parameter value.
-     *
-     * @param string $name      A parameter name
-     * @param mixed  $parameter The parameter value
-     *
-     * @return RequestContext The current instance, implementing a fluent interface
-     *
-     * @api
-     */
-    public function setParameter($name, $parameter)
-    {
-        $this->parameters[$name] = $parameter;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/routing/RequestContextAwareInterface.php b/core/vendor/symfony/routing/RequestContextAwareInterface.php
deleted file mode 100644
index daf5254..0000000
--- a/core/vendor/symfony/routing/RequestContextAwareInterface.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-/**
- * @api
- */
-interface RequestContextAwareInterface
-{
-    /**
-     * Sets the request context.
-     *
-     * @param RequestContext $context The context
-     *
-     * @api
-     */
-    public function setContext(RequestContext $context);
-
-    /**
-     * Gets the request context.
-     *
-     * @return RequestContext The context
-     *
-     * @api
-     */
-    public function getContext();
-}
diff --git a/core/vendor/symfony/routing/Route.php b/core/vendor/symfony/routing/Route.php
deleted file mode 100644
index 19a48f1..0000000
--- a/core/vendor/symfony/routing/Route.php
+++ /dev/null
@@ -1,669 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-/**
- * A Route describes a route and its parameters.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class Route implements \Serializable
-{
-    /**
-     * @var string
-     */
-    private $path = '/';
-
-    /**
-     * @var string
-     */
-    private $host = '';
-
-    /**
-     * @var array
-     */
-    private $schemes = array();
-
-    /**
-     * @var array
-     */
-    private $methods = array();
-
-    /**
-     * @var array
-     */
-    private $defaults = array();
-
-    /**
-     * @var array
-     */
-    private $requirements = array();
-
-    /**
-     * @var array
-     */
-    private $options = array();
-
-    /**
-     * @var null|CompiledRoute
-     */
-    private $compiled;
-
-    /**
-     * @var string
-     */
-    private $condition = '';
-
-    /**
-     * Constructor.
-     *
-     * Available options:
-     *
-     *  * compiler_class: A class name able to compile this route instance (RouteCompiler by default)
-     *
-     * @param string       $path         The path pattern to match
-     * @param array        $defaults     An array of default parameter values
-     * @param array        $requirements An array of requirements for parameters (regexes)
-     * @param array        $options      An array of options
-     * @param string       $host         The host pattern to match
-     * @param string|array $schemes      A required URI scheme or an array of restricted schemes
-     * @param string|array $methods      A required HTTP method or an array of restricted methods
-     * @param string       $condition    A condition that should evaluate to true for the route to match
-     *
-     * @api
-     */
-    public function __construct($path, array $defaults = array(), array $requirements = array(), array $options = array(), $host = '', $schemes = array(), $methods = array(), $condition = '')
-    {
-        $this->setPath($path);
-        $this->setDefaults($defaults);
-        $this->setRequirements($requirements);
-        $this->setOptions($options);
-        $this->setHost($host);
-        // The conditions make sure that an initial empty $schemes/$methods does not override the corresponding requirement.
-        // They can be removed when the BC layer is removed.
-        if ($schemes) {
-            $this->setSchemes($schemes);
-        }
-        if ($methods) {
-            $this->setMethods($methods);
-        }
-        $this->setCondition($condition);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function serialize()
-    {
-        return serialize(array(
-            'path' => $this->path,
-            'host' => $this->host,
-            'defaults' => $this->defaults,
-            'requirements' => $this->requirements,
-            'options' => $this->options,
-            'schemes' => $this->schemes,
-            'methods' => $this->methods,
-            'condition' => $this->condition,
-            'compiled' => $this->compiled,
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function unserialize($serialized)
-    {
-        $data = unserialize($serialized);
-        $this->path = $data['path'];
-        $this->host = $data['host'];
-        $this->defaults = $data['defaults'];
-        $this->requirements = $data['requirements'];
-        $this->options = $data['options'];
-        $this->schemes = $data['schemes'];
-        $this->methods = $data['methods'];
-
-        if (isset($data['condition'])) {
-            $this->condition = $data['condition'];
-        }
-        if (isset($data['compiled'])) {
-            $this->compiled = $data['compiled'];
-        }
-    }
-
-    /**
-     * Returns the pattern for the path.
-     *
-     * @return string The pattern
-     *
-     * @deprecated since version 2.2, to be removed in 3.0. Use getPath instead.
-     */
-    public function getPattern()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the getPath() method instead.', E_USER_DEPRECATED);
-
-        return $this->path;
-    }
-
-    /**
-     * Sets the pattern for the path.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string $pattern The path pattern
-     *
-     * @return Route The current Route instance
-     *
-     * @deprecated since version 2.2, to be removed in 3.0. Use setPath instead.
-     */
-    public function setPattern($pattern)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the setPath() method instead.', E_USER_DEPRECATED);
-
-        return $this->setPath($pattern);
-    }
-
-    /**
-     * Returns the pattern for the path.
-     *
-     * @return string The path pattern
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * Sets the pattern for the path.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string $pattern The path pattern
-     *
-     * @return Route The current Route instance
-     */
-    public function setPath($pattern)
-    {
-        // A pattern must start with a slash and must not have multiple slashes at the beginning because the
-        // generated path for this route would be confused with a network path, e.g. '//domain.com/path'.
-        $this->path = '/'.ltrim(trim($pattern), '/');
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the pattern for the host.
-     *
-     * @return string The host pattern
-     */
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    /**
-     * Sets the pattern for the host.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string $pattern The host pattern
-     *
-     * @return Route The current Route instance
-     */
-    public function setHost($pattern)
-    {
-        $this->host = (string) $pattern;
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the lowercased schemes this route is restricted to.
-     * So an empty array means that any scheme is allowed.
-     *
-     * @return array The schemes
-     */
-    public function getSchemes()
-    {
-        return $this->schemes;
-    }
-
-    /**
-     * Sets the schemes (e.g. 'https') this route is restricted to.
-     * So an empty array means that any scheme is allowed.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string|array $schemes The scheme or an array of schemes
-     *
-     * @return Route The current Route instance
-     */
-    public function setSchemes($schemes)
-    {
-        $this->schemes = array_map('strtolower', (array) $schemes);
-
-        // this is to keep BC and will be removed in a future version
-        if ($this->schemes) {
-            $this->requirements['_scheme'] = implode('|', $this->schemes);
-        } else {
-            unset($this->requirements['_scheme']);
-        }
-
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Checks if a scheme requirement has been set.
-     *
-     * @param string $scheme
-     *
-     * @return bool true if the scheme requirement exists, otherwise false
-     */
-    public function hasScheme($scheme)
-    {
-        return in_array(strtolower($scheme), $this->schemes, true);
-    }
-
-    /**
-     * Returns the uppercased HTTP methods this route is restricted to.
-     * So an empty array means that any method is allowed.
-     *
-     * @return array The methods
-     */
-    public function getMethods()
-    {
-        return $this->methods;
-    }
-
-    /**
-     * Sets the HTTP methods (e.g. 'POST') this route is restricted to.
-     * So an empty array means that any method is allowed.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string|array $methods The method or an array of methods
-     *
-     * @return Route The current Route instance
-     */
-    public function setMethods($methods)
-    {
-        $this->methods = array_map('strtoupper', (array) $methods);
-
-        // this is to keep BC and will be removed in a future version
-        if ($this->methods) {
-            $this->requirements['_method'] = implode('|', $this->methods);
-        } else {
-            unset($this->requirements['_method']);
-        }
-
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the options.
-     *
-     * @return array The options
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    /**
-     * Sets the options.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param array $options The options
-     *
-     * @return Route The current Route instance
-     */
-    public function setOptions(array $options)
-    {
-        $this->options = array(
-            'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
-        );
-
-        return $this->addOptions($options);
-    }
-
-    /**
-     * Adds options.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param array $options The options
-     *
-     * @return Route The current Route instance
-     */
-    public function addOptions(array $options)
-    {
-        foreach ($options as $name => $option) {
-            $this->options[$name] = $option;
-        }
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Sets an option value.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string $name  An option name
-     * @param mixed  $value The option value
-     *
-     * @return Route The current Route instance
-     *
-     * @api
-     */
-    public function setOption($name, $value)
-    {
-        $this->options[$name] = $value;
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Get an option value.
-     *
-     * @param string $name An option name
-     *
-     * @return mixed The option value or null when not given
-     */
-    public function getOption($name)
-    {
-        return isset($this->options[$name]) ? $this->options[$name] : null;
-    }
-
-    /**
-     * Checks if an option has been set.
-     *
-     * @param string $name An option name
-     *
-     * @return bool true if the option is set, false otherwise
-     */
-    public function hasOption($name)
-    {
-        return array_key_exists($name, $this->options);
-    }
-
-    /**
-     * Returns the defaults.
-     *
-     * @return array The defaults
-     */
-    public function getDefaults()
-    {
-        return $this->defaults;
-    }
-
-    /**
-     * Sets the defaults.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param array $defaults The defaults
-     *
-     * @return Route The current Route instance
-     */
-    public function setDefaults(array $defaults)
-    {
-        $this->defaults = array();
-
-        return $this->addDefaults($defaults);
-    }
-
-    /**
-     * Adds defaults.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param array $defaults The defaults
-     *
-     * @return Route The current Route instance
-     */
-    public function addDefaults(array $defaults)
-    {
-        foreach ($defaults as $name => $default) {
-            $this->defaults[$name] = $default;
-        }
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Gets a default value.
-     *
-     * @param string $name A variable name
-     *
-     * @return mixed The default value or null when not given
-     */
-    public function getDefault($name)
-    {
-        return isset($this->defaults[$name]) ? $this->defaults[$name] : null;
-    }
-
-    /**
-     * Checks if a default value is set for the given variable.
-     *
-     * @param string $name A variable name
-     *
-     * @return bool true if the default value is set, false otherwise
-     */
-    public function hasDefault($name)
-    {
-        return array_key_exists($name, $this->defaults);
-    }
-
-    /**
-     * Sets a default value.
-     *
-     * @param string $name    A variable name
-     * @param mixed  $default The default value
-     *
-     * @return Route The current Route instance
-     *
-     * @api
-     */
-    public function setDefault($name, $default)
-    {
-        $this->defaults[$name] = $default;
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the requirements.
-     *
-     * @return array The requirements
-     */
-    public function getRequirements()
-    {
-        return $this->requirements;
-    }
-
-    /**
-     * Sets the requirements.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param array $requirements The requirements
-     *
-     * @return Route The current Route instance
-     */
-    public function setRequirements(array $requirements)
-    {
-        $this->requirements = array();
-
-        return $this->addRequirements($requirements);
-    }
-
-    /**
-     * Adds requirements.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param array $requirements The requirements
-     *
-     * @return Route The current Route instance
-     */
-    public function addRequirements(array $requirements)
-    {
-        foreach ($requirements as $key => $regex) {
-            $this->requirements[$key] = $this->sanitizeRequirement($key, $regex);
-        }
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the requirement for the given key.
-     *
-     * @param string $key The key
-     *
-     * @return string|null The regex or null when not given
-     */
-    public function getRequirement($key)
-    {
-        if ('_scheme' === $key) {
-            @trigger_error('The "_scheme" requirement is deprecated since version 2.2 and will be removed in 3.0. Use getSchemes() instead.', E_USER_DEPRECATED);
-        } elseif ('_method' === $key) {
-            @trigger_error('The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use getMethods() instead.', E_USER_DEPRECATED);
-        }
-
-        return isset($this->requirements[$key]) ? $this->requirements[$key] : null;
-    }
-
-    /**
-     * Checks if a requirement is set for the given key.
-     *
-     * @param string $key A variable name
-     *
-     * @return bool true if a requirement is specified, false otherwise
-     */
-    public function hasRequirement($key)
-    {
-        return array_key_exists($key, $this->requirements);
-    }
-
-    /**
-     * Sets a requirement for the given key.
-     *
-     * @param string $key   The key
-     * @param string $regex The regex
-     *
-     * @return Route The current Route instance
-     *
-     * @api
-     */
-    public function setRequirement($key, $regex)
-    {
-        $this->requirements[$key] = $this->sanitizeRequirement($key, $regex);
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the condition.
-     *
-     * @return string The condition
-     */
-    public function getCondition()
-    {
-        return $this->condition;
-    }
-
-    /**
-     * Sets the condition.
-     *
-     * This method implements a fluent interface.
-     *
-     * @param string $condition The condition
-     *
-     * @return Route The current Route instance
-     */
-    public function setCondition($condition)
-    {
-        $this->condition = (string) $condition;
-        $this->compiled = null;
-
-        return $this;
-    }
-
-    /**
-     * Compiles the route.
-     *
-     * @return CompiledRoute A CompiledRoute instance
-     *
-     * @throws \LogicException If the Route cannot be compiled because the
-     *                         path or host pattern is invalid
-     *
-     * @see RouteCompiler which is responsible for the compilation process
-     */
-    public function compile()
-    {
-        if (null !== $this->compiled) {
-            return $this->compiled;
-        }
-
-        $class = $this->getOption('compiler_class');
-
-        return $this->compiled = $class::compile($this);
-    }
-
-    private function sanitizeRequirement($key, $regex)
-    {
-        if (!is_string($regex)) {
-            throw new \InvalidArgumentException(sprintf('Routing requirement for "%s" must be a string.', $key));
-        }
-
-        if ('' !== $regex && '^' === $regex[0]) {
-            $regex = (string) substr($regex, 1); // returns false for a single character
-        }
-
-        if ('$' === substr($regex, -1)) {
-            $regex = substr($regex, 0, -1);
-        }
-
-        if ('' === $regex) {
-            throw new \InvalidArgumentException(sprintf('Routing requirement for "%s" cannot be empty.', $key));
-        }
-
-        // this is to keep BC and will be removed in a future version
-        if ('_scheme' === $key) {
-            @trigger_error('The "_scheme" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the setSchemes() method instead.', E_USER_DEPRECATED);
-
-            $this->setSchemes(explode('|', $regex));
-        } elseif ('_method' === $key) {
-            @trigger_error('The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the setMethods() method instead.', E_USER_DEPRECATED);
-
-            $this->setMethods(explode('|', $regex));
-        }
-
-        return $regex;
-    }
-}
diff --git a/core/vendor/symfony/routing/RouteCollection.php b/core/vendor/symfony/routing/RouteCollection.php
deleted file mode 100644
index df37f36..0000000
--- a/core/vendor/symfony/routing/RouteCollection.php
+++ /dev/null
@@ -1,285 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-
-/**
- * A RouteCollection represents a set of Route instances.
- *
- * When adding a route at the end of the collection, an existing route
- * with the same name is removed first. So there can only be one route
- * with a given name.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- *
- * @api
- */
-class RouteCollection implements \IteratorAggregate, \Countable
-{
-    /**
-     * @var Route[]
-     */
-    private $routes = array();
-
-    /**
-     * @var array
-     */
-    private $resources = array();
-
-    public function __clone()
-    {
-        foreach ($this->routes as $name => $route) {
-            $this->routes[$name] = clone $route;
-        }
-    }
-
-    /**
-     * Gets the current RouteCollection as an Iterator that includes all routes.
-     *
-     * It implements \IteratorAggregate.
-     *
-     * @see all()
-     *
-     * @return \ArrayIterator An \ArrayIterator object for iterating over routes
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->routes);
-    }
-
-    /**
-     * Gets the number of Routes in this collection.
-     *
-     * @return int The number of routes
-     */
-    public function count()
-    {
-        return count($this->routes);
-    }
-
-    /**
-     * Adds a route.
-     *
-     * @param string $name  The route name
-     * @param Route  $route A Route instance
-     *
-     * @api
-     */
-    public function add($name, Route $route)
-    {
-        unset($this->routes[$name]);
-
-        $this->routes[$name] = $route;
-    }
-
-    /**
-     * Returns all routes in this collection.
-     *
-     * @return Route[] An array of routes
-     */
-    public function all()
-    {
-        return $this->routes;
-    }
-
-    /**
-     * Gets a route by name.
-     *
-     * @param string $name The route name
-     *
-     * @return Route|null A Route instance or null when not found
-     */
-    public function get($name)
-    {
-        return isset($this->routes[$name]) ? $this->routes[$name] : null;
-    }
-
-    /**
-     * Removes a route or an array of routes by name from the collection.
-     *
-     * @param string|array $name The route name or an array of route names
-     */
-    public function remove($name)
-    {
-        foreach ((array) $name as $n) {
-            unset($this->routes[$n]);
-        }
-    }
-
-    /**
-     * Adds a route collection at the end of the current set by appending all
-     * routes of the added collection.
-     *
-     * @param RouteCollection $collection A RouteCollection instance
-     *
-     * @api
-     */
-    public function addCollection(RouteCollection $collection)
-    {
-        // we need to remove all routes with the same names first because just replacing them
-        // would not place the new route at the end of the merged array
-        foreach ($collection->all() as $name => $route) {
-            unset($this->routes[$name]);
-            $this->routes[$name] = $route;
-        }
-
-        $this->resources = array_merge($this->resources, $collection->getResources());
-    }
-
-    /**
-     * Adds a prefix to the path of all child routes.
-     *
-     * @param string $prefix       An optional prefix to add before each pattern of the route collection
-     * @param array  $defaults     An array of default values
-     * @param array  $requirements An array of requirements
-     *
-     * @api
-     */
-    public function addPrefix($prefix, array $defaults = array(), array $requirements = array())
-    {
-        $prefix = trim(trim($prefix), '/');
-
-        if ('' === $prefix) {
-            return;
-        }
-
-        foreach ($this->routes as $route) {
-            $route->setPath('/'.$prefix.$route->getPath());
-            $route->addDefaults($defaults);
-            $route->addRequirements($requirements);
-        }
-    }
-
-    /**
-     * Sets the host pattern on all routes.
-     *
-     * @param string $pattern      The pattern
-     * @param array  $defaults     An array of default values
-     * @param array  $requirements An array of requirements
-     */
-    public function setHost($pattern, array $defaults = array(), array $requirements = array())
-    {
-        foreach ($this->routes as $route) {
-            $route->setHost($pattern);
-            $route->addDefaults($defaults);
-            $route->addRequirements($requirements);
-        }
-    }
-
-    /**
-     * Sets a condition on all routes.
-     *
-     * Existing conditions will be overridden.
-     *
-     * @param string $condition The condition
-     */
-    public function setCondition($condition)
-    {
-        foreach ($this->routes as $route) {
-            $route->setCondition($condition);
-        }
-    }
-
-    /**
-     * Adds defaults to all routes.
-     *
-     * An existing default value under the same name in a route will be overridden.
-     *
-     * @param array $defaults An array of default values
-     */
-    public function addDefaults(array $defaults)
-    {
-        if ($defaults) {
-            foreach ($this->routes as $route) {
-                $route->addDefaults($defaults);
-            }
-        }
-    }
-
-    /**
-     * Adds requirements to all routes.
-     *
-     * An existing requirement under the same name in a route will be overridden.
-     *
-     * @param array $requirements An array of requirements
-     */
-    public function addRequirements(array $requirements)
-    {
-        if ($requirements) {
-            foreach ($this->routes as $route) {
-                $route->addRequirements($requirements);
-            }
-        }
-    }
-
-    /**
-     * Adds options to all routes.
-     *
-     * An existing option value under the same name in a route will be overridden.
-     *
-     * @param array $options An array of options
-     */
-    public function addOptions(array $options)
-    {
-        if ($options) {
-            foreach ($this->routes as $route) {
-                $route->addOptions($options);
-            }
-        }
-    }
-
-    /**
-     * Sets the schemes (e.g. 'https') all child routes are restricted to.
-     *
-     * @param string|array $schemes The scheme or an array of schemes
-     */
-    public function setSchemes($schemes)
-    {
-        foreach ($this->routes as $route) {
-            $route->setSchemes($schemes);
-        }
-    }
-
-    /**
-     * Sets the HTTP methods (e.g. 'POST') all child routes are restricted to.
-     *
-     * @param string|array $methods The method or an array of methods
-     */
-    public function setMethods($methods)
-    {
-        foreach ($this->routes as $route) {
-            $route->setMethods($methods);
-        }
-    }
-
-    /**
-     * Returns an array of resources loaded to build this collection.
-     *
-     * @return ResourceInterface[] An array of resources
-     */
-    public function getResources()
-    {
-        return array_unique($this->resources);
-    }
-
-    /**
-     * Adds a resource for this collection.
-     *
-     * @param ResourceInterface $resource A resource instance
-     */
-    public function addResource(ResourceInterface $resource)
-    {
-        $this->resources[] = $resource;
-    }
-}
diff --git a/core/vendor/symfony/routing/RouteCompiler.php b/core/vendor/symfony/routing/RouteCompiler.php
deleted file mode 100644
index f6637da..0000000
--- a/core/vendor/symfony/routing/RouteCompiler.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-/**
- * RouteCompiler compiles Route instances to CompiledRoute instances.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Tobias Schultze <http://tobion.de>
- */
-class RouteCompiler implements RouteCompilerInterface
-{
-    const REGEX_DELIMITER = '#';
-
-    /**
-     * This string defines the characters that are automatically considered separators in front of
-     * optional placeholders (with default and no static text following). Such a single separator
-     * can be left out together with the optional placeholder from matching and generating URLs.
-     */
-    const SEPARATORS = '/,;.:-_~+*=@|';
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws \LogicException  If a variable is referenced more than once
-     * @throws \DomainException If a variable name is numeric because PHP raises an error for such
-     *                          subpatterns in PCRE and thus would break matching, e.g. "(?P<123>.+)".
-     */
-    public static function compile(Route $route)
-    {
-        $hostVariables = array();
-        $variables = array();
-        $hostRegex = null;
-        $hostTokens = array();
-
-        if ('' !== $host = $route->getHost()) {
-            $result = self::compilePattern($route, $host, true);
-
-            $hostVariables = $result['variables'];
-            $variables = $hostVariables;
-
-            $hostTokens = $result['tokens'];
-            $hostRegex = $result['regex'];
-        }
-
-        $path = $route->getPath();
-
-        $result = self::compilePattern($route, $path, false);
-
-        $staticPrefix = $result['staticPrefix'];
-
-        $pathVariables = $result['variables'];
-        $variables = array_merge($variables, $pathVariables);
-
-        $tokens = $result['tokens'];
-        $regex = $result['regex'];
-
-        return new CompiledRoute(
-            $staticPrefix,
-            $regex,
-            $tokens,
-            $pathVariables,
-            $hostRegex,
-            $hostTokens,
-            $hostVariables,
-            array_unique($variables)
-        );
-    }
-
-    private static function compilePattern(Route $route, $pattern, $isHost)
-    {
-        $tokens = array();
-        $variables = array();
-        $matches = array();
-        $pos = 0;
-        $defaultSeparator = $isHost ? '.' : '/';
-
-        // Match all variables enclosed in "{}" and iterate over them. But we only want to match the innermost variable
-        // in case of nested "{}", e.g. {foo{bar}}. This in ensured because \w does not match "{" or "}" itself.
-        preg_match_all('#\{\w+\}#', $pattern, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
-        foreach ($matches as $match) {
-            $varName = substr($match[0][0], 1, -1);
-            // get all static text preceding the current variable
-            $precedingText = substr($pattern, $pos, $match[0][1] - $pos);
-            $pos = $match[0][1] + strlen($match[0][0]);
-            $precedingChar = strlen($precedingText) > 0 ? substr($precedingText, -1) : '';
-            $isSeparator = '' !== $precedingChar && false !== strpos(static::SEPARATORS, $precedingChar);
-
-            if (is_numeric($varName)) {
-                throw new \DomainException(sprintf('Variable name "%s" cannot be numeric in route pattern "%s". Please use a different name.', $varName, $pattern));
-            }
-            if (in_array($varName, $variables)) {
-                throw new \LogicException(sprintf('Route pattern "%s" cannot reference variable name "%s" more than once.', $pattern, $varName));
-            }
-
-            if ($isSeparator && strlen($precedingText) > 1) {
-                $tokens[] = array('text', substr($precedingText, 0, -1));
-            } elseif (!$isSeparator && strlen($precedingText) > 0) {
-                $tokens[] = array('text', $precedingText);
-            }
-
-            $regexp = $route->getRequirement($varName);
-            if (null === $regexp) {
-                $followingPattern = (string) substr($pattern, $pos);
-                // Find the next static character after the variable that functions as a separator. By default, this separator and '/'
-                // are disallowed for the variable. This default requirement makes sure that optional variables can be matched at all
-                // and that the generating-matching-combination of URLs unambiguous, i.e. the params used for generating the URL are
-                // the same that will be matched. Example: new Route('/{page}.{_format}', array('_format' => 'html'))
-                // If {page} would also match the separating dot, {_format} would never match as {page} will eagerly consume everything.
-                // Also even if {_format} was not optional the requirement prevents that {page} matches something that was originally
-                // part of {_format} when generating the URL, e.g. _format = 'mobile.html'.
-                $nextSeparator = self::findNextSeparator($followingPattern);
-                $regexp = sprintf(
-                    '[^%s%s]+',
-                    preg_quote($defaultSeparator, self::REGEX_DELIMITER),
-                    $defaultSeparator !== $nextSeparator && '' !== $nextSeparator ? preg_quote($nextSeparator, self::REGEX_DELIMITER) : ''
-                );
-                if (('' !== $nextSeparator && !preg_match('#^\{\w+\}#', $followingPattern)) || '' === $followingPattern) {
-                    // When we have a separator, which is disallowed for the variable, we can optimize the regex with a possessive
-                    // quantifier. This prevents useless backtracking of PCRE and improves performance by 20% for matching those patterns.
-                    // Given the above example, there is no point in backtracking into {page} (that forbids the dot) when a dot must follow
-                    // after it. This optimization cannot be applied when the next char is no real separator or when the next variable is
-                    // directly adjacent, e.g. '/{x}{y}'.
-                    $regexp .= '+';
-                }
-            }
-
-            $tokens[] = array('variable', $isSeparator ? $precedingChar : '', $regexp, $varName);
-            $variables[] = $varName;
-        }
-
-        if ($pos < strlen($pattern)) {
-            $tokens[] = array('text', substr($pattern, $pos));
-        }
-
-        // find the first optional token
-        $firstOptional = PHP_INT_MAX;
-        if (!$isHost) {
-            for ($i = count($tokens) - 1; $i >= 0; --$i) {
-                $token = $tokens[$i];
-                if ('variable' === $token[0] && $route->hasDefault($token[3])) {
-                    $firstOptional = $i;
-                } else {
-                    break;
-                }
-            }
-        }
-
-        // compute the matching regexp
-        $regexp = '';
-        for ($i = 0, $nbToken = count($tokens); $i < $nbToken; ++$i) {
-            $regexp .= self::computeRegexp($tokens, $i, $firstOptional);
-        }
-
-        return array(
-            'staticPrefix' => 'text' === $tokens[0][0] ? $tokens[0][1] : '',
-            'regex' => self::REGEX_DELIMITER.'^'.$regexp.'$'.self::REGEX_DELIMITER.'s'.($isHost ? 'i' : ''),
-            'tokens' => array_reverse($tokens),
-            'variables' => $variables,
-        );
-    }
-
-    /**
-     * Returns the next static character in the Route pattern that will serve as a separator.
-     *
-     * @param string $pattern The route pattern
-     *
-     * @return string The next static character that functions as separator (or empty string when none available)
-     */
-    private static function findNextSeparator($pattern)
-    {
-        if ('' == $pattern) {
-            // return empty string if pattern is empty or false (false which can be returned by substr)
-            return '';
-        }
-        // first remove all placeholders from the pattern so we can find the next real static character
-        $pattern = preg_replace('#\{\w+\}#', '', $pattern);
-
-        return isset($pattern[0]) && false !== strpos(static::SEPARATORS, $pattern[0]) ? $pattern[0] : '';
-    }
-
-    /**
-     * Computes the regexp used to match a specific token. It can be static text or a subpattern.
-     *
-     * @param array $tokens        The route tokens
-     * @param int   $index         The index of the current token
-     * @param int   $firstOptional The index of the first optional token
-     *
-     * @return string The regexp pattern for a single token
-     */
-    private static function computeRegexp(array $tokens, $index, $firstOptional)
-    {
-        $token = $tokens[$index];
-        if ('text' === $token[0]) {
-            // Text tokens
-            return preg_quote($token[1], self::REGEX_DELIMITER);
-        } else {
-            // Variable tokens
-            if (0 === $index && 0 === $firstOptional) {
-                // When the only token is an optional variable token, the separator is required
-                return sprintf('%s(?P<%s>%s)?', preg_quote($token[1], self::REGEX_DELIMITER), $token[3], $token[2]);
-            } else {
-                $regexp = sprintf('%s(?P<%s>%s)', preg_quote($token[1], self::REGEX_DELIMITER), $token[3], $token[2]);
-                if ($index >= $firstOptional) {
-                    // Enclose each optional token in a subpattern to make it optional.
-                    // "?:" means it is non-capturing, i.e. the portion of the subject string that
-                    // matched the optional subpattern is not passed back.
-                    $regexp = "(?:$regexp";
-                    $nbTokens = count($tokens);
-                    if ($nbTokens - 1 == $index) {
-                        // Close the optional subpatterns
-                        $regexp .= str_repeat(')?', $nbTokens - $firstOptional - (0 === $firstOptional ? 1 : 0));
-                    }
-                }
-
-                return $regexp;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/routing/RouteCompilerInterface.php b/core/vendor/symfony/routing/RouteCompilerInterface.php
deleted file mode 100644
index e6f8ee6d..0000000
--- a/core/vendor/symfony/routing/RouteCompilerInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-/**
- * RouteCompilerInterface is the interface that all RouteCompiler classes must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface RouteCompilerInterface
-{
-    /**
-     * Compiles the current route instance.
-     *
-     * @param Route $route A Route instance
-     *
-     * @return CompiledRoute A CompiledRoute instance
-     *
-     * @throws \LogicException If the Route cannot be compiled because the
-     *                         path or host pattern is invalid
-     */
-    public static function compile(Route $route);
-}
diff --git a/core/vendor/symfony/routing/Router.php b/core/vendor/symfony/routing/Router.php
deleted file mode 100644
index e2651ef..0000000
--- a/core/vendor/symfony/routing/Router.php
+++ /dev/null
@@ -1,390 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-use Symfony\Component\Config\Loader\LoaderInterface;
-use Symfony\Component\Config\ConfigCacheInterface;
-use Symfony\Component\Config\ConfigCacheFactoryInterface;
-use Symfony\Component\Config\ConfigCacheFactory;
-use Psr\Log\LoggerInterface;
-use Symfony\Component\Routing\Generator\ConfigurableRequirementsInterface;
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Routing\Generator\Dumper\GeneratorDumperInterface;
-use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
-use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
-use Symfony\Component\Routing\Matcher\Dumper\MatcherDumperInterface;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
-
-/**
- * The Router class is an example of the integration of all pieces of the
- * routing system for easier use.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Router implements RouterInterface, RequestMatcherInterface
-{
-    /**
-     * @var UrlMatcherInterface|null
-     */
-    protected $matcher;
-
-    /**
-     * @var UrlGeneratorInterface|null
-     */
-    protected $generator;
-
-    /**
-     * @var RequestContext
-     */
-    protected $context;
-
-    /**
-     * @var LoaderInterface
-     */
-    protected $loader;
-
-    /**
-     * @var RouteCollection|null
-     */
-    protected $collection;
-
-    /**
-     * @var mixed
-     */
-    protected $resource;
-
-    /**
-     * @var array
-     */
-    protected $options = array();
-
-    /**
-     * @var LoggerInterface|null
-     */
-    protected $logger;
-
-    /**
-     * @var ConfigCacheFactoryInterface|null
-     */
-    private $configCacheFactory;
-
-    /**
-     * @var ExpressionFunctionProviderInterface[]
-     */
-    private $expressionLanguageProviders = array();
-
-    /**
-     * Constructor.
-     *
-     * @param LoaderInterface $loader   A LoaderInterface instance
-     * @param mixed           $resource The main resource to load
-     * @param array           $options  An array of options
-     * @param RequestContext  $context  The context
-     * @param LoggerInterface $logger   A logger instance
-     */
-    public function __construct(LoaderInterface $loader, $resource, array $options = array(), RequestContext $context = null, LoggerInterface $logger = null)
-    {
-        $this->loader = $loader;
-        $this->resource = $resource;
-        $this->logger = $logger;
-        $this->context = $context ?: new RequestContext();
-        $this->setOptions($options);
-    }
-
-    /**
-     * Sets options.
-     *
-     * Available options:
-     *
-     *   * cache_dir:     The cache directory (or null to disable caching)
-     *   * debug:         Whether to enable debugging or not (false by default)
-     *   * resource_type: Type hint for the main resource (optional)
-     *
-     * @param array $options An array of options
-     *
-     * @throws \InvalidArgumentException When unsupported option is provided
-     */
-    public function setOptions(array $options)
-    {
-        $this->options = array(
-            'cache_dir' => null,
-            'debug' => false,
-            'generator_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
-            'generator_base_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
-            'generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper',
-            'generator_cache_class' => 'ProjectUrlGenerator',
-            'matcher_class' => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher',
-            'matcher_base_class' => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher',
-            'matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper',
-            'matcher_cache_class' => 'ProjectUrlMatcher',
-            'resource_type' => null,
-            'strict_requirements' => true,
-        );
-
-        // check option names and live merge, if errors are encountered Exception will be thrown
-        $invalid = array();
-        foreach ($options as $key => $value) {
-            if (array_key_exists($key, $this->options)) {
-                $this->options[$key] = $value;
-            } else {
-                $invalid[] = $key;
-            }
-        }
-
-        if ($invalid) {
-            throw new \InvalidArgumentException(sprintf('The Router does not support the following options: "%s".', implode('", "', $invalid)));
-        }
-    }
-
-    /**
-     * Sets an option.
-     *
-     * @param string $key   The key
-     * @param mixed  $value The value
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setOption($key, $value)
-    {
-        if (!array_key_exists($key, $this->options)) {
-            throw new \InvalidArgumentException(sprintf('The Router does not support the "%s" option.', $key));
-        }
-
-        $this->options[$key] = $value;
-    }
-
-    /**
-     * Gets an option value.
-     *
-     * @param string $key The key
-     *
-     * @return mixed The value
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function getOption($key)
-    {
-        if (!array_key_exists($key, $this->options)) {
-            throw new \InvalidArgumentException(sprintf('The Router does not support the "%s" option.', $key));
-        }
-
-        return $this->options[$key];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRouteCollection()
-    {
-        if (null === $this->collection) {
-            $this->collection = $this->loader->load($this->resource, $this->options['resource_type']);
-        }
-
-        return $this->collection;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setContext(RequestContext $context)
-    {
-        $this->context = $context;
-
-        if (null !== $this->matcher) {
-            $this->getMatcher()->setContext($context);
-        }
-        if (null !== $this->generator) {
-            $this->getGenerator()->setContext($context);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContext()
-    {
-        return $this->context;
-    }
-
-    /**
-     * Sets the ConfigCache factory to use.
-     *
-     * @param ConfigCacheFactoryInterface $configCacheFactory The factory to use.
-     */
-    public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory)
-    {
-        $this->configCacheFactory = $configCacheFactory;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)
-    {
-        return $this->getGenerator()->generate($name, $parameters, $referenceType);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function match($pathinfo)
-    {
-        return $this->getMatcher()->match($pathinfo);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function matchRequest(Request $request)
-    {
-        $matcher = $this->getMatcher();
-        if (!$matcher instanceof RequestMatcherInterface) {
-            // fallback to the default UrlMatcherInterface
-            return $matcher->match($request->getPathInfo());
-        }
-
-        return $matcher->matchRequest($request);
-    }
-
-    /**
-     * Gets the UrlMatcher instance associated with this Router.
-     *
-     * @return UrlMatcherInterface A UrlMatcherInterface instance
-     */
-    public function getMatcher()
-    {
-        if (null !== $this->matcher) {
-            return $this->matcher;
-        }
-
-        if (null === $this->options['cache_dir'] || null === $this->options['matcher_cache_class']) {
-            $this->matcher = new $this->options['matcher_class']($this->getRouteCollection(), $this->context);
-            if (method_exists($this->matcher, 'addExpressionLanguageProvider')) {
-                foreach ($this->expressionLanguageProviders as $provider) {
-                    $this->matcher->addExpressionLanguageProvider($provider);
-                }
-            }
-
-            return $this->matcher;
-        }
-
-        $class = $this->options['matcher_cache_class'];
-        $baseClass = $this->options['matcher_base_class'];
-        $expressionLanguageProviders = $this->expressionLanguageProviders;
-        $that = $this; // required for PHP 5.3 where "$this" cannot be use()d in anonymous functions. Change in Symfony 3.0.
-
-        $cache = $this->getConfigCacheFactory()->cache($this->options['cache_dir'].'/'.$class.'.php',
-            function (ConfigCacheInterface $cache) use ($that, $class, $baseClass, $expressionLanguageProviders) {
-                $dumper = $that->getMatcherDumperInstance();
-                if (method_exists($dumper, 'addExpressionLanguageProvider')) {
-                    foreach ($expressionLanguageProviders as $provider) {
-                        $dumper->addExpressionLanguageProvider($provider);
-                    }
-                }
-
-                $options = array(
-                    'class' => $class,
-                    'base_class' => $baseClass,
-                );
-
-                $cache->write($dumper->dump($options), $that->getRouteCollection()->getResources());
-            }
-        );
-
-        require_once $cache->getPath();
-
-        return $this->matcher = new $class($this->context);
-    }
-
-    /**
-     * Gets the UrlGenerator instance associated with this Router.
-     *
-     * @return UrlGeneratorInterface A UrlGeneratorInterface instance
-     */
-    public function getGenerator()
-    {
-        if (null !== $this->generator) {
-            return $this->generator;
-        }
-
-        if (null === $this->options['cache_dir'] || null === $this->options['generator_cache_class']) {
-            $this->generator = new $this->options['generator_class']($this->getRouteCollection(), $this->context, $this->logger);
-        } else {
-            $class = $this->options['generator_cache_class'];
-            $baseClass = $this->options['generator_base_class'];
-            $that = $this; // required for PHP 5.3 where "$this" cannot be use()d in anonymous functions. Change in Symfony 3.0.
-            $cache = $this->getConfigCacheFactory()->cache($this->options['cache_dir'].'/'.$class.'.php',
-                function (ConfigCacheInterface $cache) use ($that, $class, $baseClass) {
-                    $dumper = $that->getGeneratorDumperInstance();
-
-                    $options = array(
-                        'class' => $class,
-                        'base_class' => $baseClass,
-                    );
-
-                    $cache->write($dumper->dump($options), $that->getRouteCollection()->getResources());
-                }
-            );
-
-            require_once $cache->getPath();
-
-            $this->generator = new $class($this->context, $this->logger);
-        }
-
-        if ($this->generator instanceof ConfigurableRequirementsInterface) {
-            $this->generator->setStrictRequirements($this->options['strict_requirements']);
-        }
-
-        return $this->generator;
-    }
-
-    public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
-    {
-        $this->expressionLanguageProviders[] = $provider;
-    }
-
-    /**
-     * This method is public because it needs to be callable from a closure in PHP 5.3. It should be converted back to protected in 3.0.
-     * @internal
-     * @return GeneratorDumperInterface
-     */
-    public function getGeneratorDumperInstance()
-    {
-        return new $this->options['generator_dumper_class']($this->getRouteCollection());
-    }
-
-    /**
-     * This method is public because it needs to be callable from a closure in PHP 5.3. It should be converted back to protected in 3.0.
-     * @internal
-     * @return MatcherDumperInterface
-     */
-    public function getMatcherDumperInstance()
-    {
-        return new $this->options['matcher_dumper_class']($this->getRouteCollection());
-    }
-
-    /**
-     * Provides the ConfigCache factory implementation, falling back to a
-     * default implementation if necessary.
-     *
-     * @return ConfigCacheFactoryInterface $configCacheFactory
-     */
-    private function getConfigCacheFactory()
-    {
-        if (null === $this->configCacheFactory) {
-            $this->configCacheFactory = new ConfigCacheFactory($this->options['debug']);
-        }
-
-        return $this->configCacheFactory;
-    }
-}
diff --git a/core/vendor/symfony/routing/RouterInterface.php b/core/vendor/symfony/routing/RouterInterface.php
deleted file mode 100644
index a10ae34..0000000
--- a/core/vendor/symfony/routing/RouterInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing;
-
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
-
-/**
- * RouterInterface is the interface that all Router classes must implement.
- *
- * This interface is the concatenation of UrlMatcherInterface and UrlGeneratorInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface RouterInterface extends UrlMatcherInterface, UrlGeneratorInterface
-{
-    /**
-     * Gets the RouteCollection instance associated with this Router.
-     *
-     * @return RouteCollection A RouteCollection instance
-     */
-    public function getRouteCollection();
-}
diff --git a/core/vendor/symfony/routing/Tests/Annotation/RouteTest.php b/core/vendor/symfony/routing/Tests/Annotation/RouteTest.php
deleted file mode 100644
index 3b340b3..0000000
--- a/core/vendor/symfony/routing/Tests/Annotation/RouteTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Annotation;
-
-use Symfony\Component\Routing\Annotation\Route;
-
-class RouteTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testInvalidRouteParameter()
-    {
-        $route = new Route(array('foo' => 'bar'));
-    }
-
-    /**
-     * @dataProvider getValidParameters
-     */
-    public function testRouteParameters($parameter, $value, $getter)
-    {
-        $route = new Route(array($parameter => $value));
-        $this->assertEquals($route->$getter(), $value);
-    }
-
-    public function getValidParameters()
-    {
-        return array(
-            array('value', '/Blog', 'getPath'),
-            array('requirements', array('locale' => 'en'), 'getRequirements'),
-            array('options', array('compiler_class' => 'RouteCompiler'), 'getOptions'),
-            array('name', 'blog_index', 'getName'),
-            array('defaults', array('_controller' => 'MyBlogBundle:Blog:index'), 'getDefaults'),
-            array('schemes', array('https'), 'getSchemes'),
-            array('methods', array('GET', 'POST'), 'getMethods'),
-            array('host', '{locale}.example.com', 'getHost'),
-            array('condition', 'context.getMethod() == "GET"', 'getCondition'),
-        );
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyGetPattern()
-    {
-        $route = new Route(array('value' => '/Blog'));
-        $this->assertEquals($route->getPattern(), '/Blog');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/CompiledRouteTest.php b/core/vendor/symfony/routing/Tests/CompiledRouteTest.php
deleted file mode 100644
index 215ebb7..0000000
--- a/core/vendor/symfony/routing/Tests/CompiledRouteTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests;
-
-use Symfony\Component\Routing\CompiledRoute;
-
-class CompiledRouteTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAccessors()
-    {
-        $compiled = new CompiledRoute('prefix', 'regex', array('tokens'), array(), array(), array(), array(), array('variables'));
-        $this->assertEquals('prefix', $compiled->getStaticPrefix(), '__construct() takes a static prefix as its second argument');
-        $this->assertEquals('regex', $compiled->getRegex(), '__construct() takes a regexp as its third argument');
-        $this->assertEquals(array('tokens'), $compiled->getTokens(), '__construct() takes an array of tokens as its fourth argument');
-        $this->assertEquals(array('variables'), $compiled->getVariables(), '__construct() takes an array of variables as its ninth argument');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php b/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php
deleted file mode 100644
index 56bcab2..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses;
-
-abstract class AbstractClass
-{
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BarClass.php b/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BarClass.php
deleted file mode 100644
index a388277..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BarClass.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses;
-
-class BarClass
-{
-    public function routeAction($arg1, $arg2 = 'defaultValue2', $arg3 = 'defaultValue3')
-    {
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooClass.php b/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooClass.php
deleted file mode 100644
index 320dc35..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooClass.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses;
-
-class FooClass
-{
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/CustomXmlFileLoader.php b/core/vendor/symfony/routing/Tests/Fixtures/CustomXmlFileLoader.php
deleted file mode 100644
index 9fd5754..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/CustomXmlFileLoader.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Fixtures;
-
-use Symfony\Component\Routing\Loader\XmlFileLoader;
-use Symfony\Component\Config\Util\XmlUtils;
-
-/**
- * XmlFileLoader with schema validation turned off.
- */
-class CustomXmlFileLoader extends XmlFileLoader
-{
-    protected function loadFile($file)
-    {
-        return XmlUtils::loadFile($file, function () { return true; });
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/RedirectableUrlMatcher.php b/core/vendor/symfony/routing/Tests/Fixtures/RedirectableUrlMatcher.php
deleted file mode 100644
index 15937bc..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/RedirectableUrlMatcher.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Fixtures;
-
-use Symfony\Component\Routing\Matcher\UrlMatcher;
-use Symfony\Component\Routing\Matcher\RedirectableUrlMatcherInterface;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class RedirectableUrlMatcher extends UrlMatcher implements RedirectableUrlMatcherInterface
-{
-    public function redirect($path, $route, $scheme = null)
-    {
-        return array(
-            '_controller' => 'Some controller reference...',
-            'path' => $path,
-            'scheme' => $scheme,
-        );
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/annotated.php b/core/vendor/symfony/routing/Tests/Fixtures/annotated.php
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.apache b/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.apache
deleted file mode 100644
index 26a561c..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.apache
+++ /dev/null
@@ -1,163 +0,0 @@
-# skip "real" requests
-RewriteCond %{REQUEST_FILENAME} -f
-RewriteRule .* - [QSA,L]
-
-# foo
-RewriteCond %{REQUEST_URI} ^/foo/(baz|symfony)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:foo,E=_ROUTING_param_bar:%1,E=_ROUTING_default_def:test]
-
-# foobar
-RewriteCond %{REQUEST_URI} ^/foo(?:/([^/]++))?$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:foobar,E=_ROUTING_param_bar:%1,E=_ROUTING_default_bar:toto]
-
-# bar
-RewriteCond %{REQUEST_URI} ^/bar/([^/]++)$
-RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [NC]
-RewriteRule .* - [S=1,E=_ROUTING_allow_GET:1,E=_ROUTING_allow_HEAD:1]
-RewriteCond %{REQUEST_URI} ^/bar/([^/]++)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:bar,E=_ROUTING_param_foo:%1]
-
-# baragain
-RewriteCond %{REQUEST_URI} ^/baragain/([^/]++)$
-RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD)$ [NC]
-RewriteRule .* - [S=1,E=_ROUTING_allow_GET:1,E=_ROUTING_allow_POST:1,E=_ROUTING_allow_HEAD:1]
-RewriteCond %{REQUEST_URI} ^/baragain/([^/]++)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baragain,E=_ROUTING_param_foo:%1]
-
-# baz
-RewriteCond %{REQUEST_URI} ^/test/baz$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz]
-
-# baz2
-RewriteCond %{REQUEST_URI} ^/test/baz\.html$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz2]
-
-# baz3
-RewriteCond %{REQUEST_URI} ^/test/baz3$
-RewriteRule .* $0/ [QSA,L,R=301]
-RewriteCond %{REQUEST_URI} ^/test/baz3/$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz3]
-
-# baz4
-RewriteCond %{REQUEST_URI} ^/test/([^/]++)$
-RewriteRule .* $0/ [QSA,L,R=301]
-RewriteCond %{REQUEST_URI} ^/test/([^/]++)/$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz4,E=_ROUTING_param_foo:%1]
-
-# baz5
-RewriteCond %{REQUEST_URI} ^/test/([^/]++)/$
-RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [NC]
-RewriteRule .* - [S=2,E=_ROUTING_allow_GET:1,E=_ROUTING_allow_HEAD:1]
-RewriteCond %{REQUEST_URI} ^/test/([^/]++)$
-RewriteRule .* $0/ [QSA,L,R=301]
-RewriteCond %{REQUEST_URI} ^/test/([^/]++)/$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz5,E=_ROUTING_param_foo:%1]
-
-# baz5unsafe
-RewriteCond %{REQUEST_URI} ^/testunsafe/([^/]++)/$
-RewriteCond %{REQUEST_METHOD} !^(POST)$ [NC]
-RewriteRule .* - [S=1,E=_ROUTING_allow_POST:1]
-RewriteCond %{REQUEST_URI} ^/testunsafe/([^/]++)/$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz5unsafe,E=_ROUTING_param_foo:%1]
-
-# baz6
-RewriteCond %{REQUEST_URI} ^/test/baz$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz6,E=_ROUTING_default_foo:bar\ baz]
-
-# baz7
-RewriteCond %{REQUEST_URI} ^/te\ st/baz$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz7]
-
-# baz8
-RewriteCond %{REQUEST_URI} ^/te\\\ st/baz$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz8]
-
-# baz9
-RewriteCond %{REQUEST_URI} ^/test/(te\\\ st)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:baz9,E=_ROUTING_param_baz:%1]
-
-RewriteCond %{HTTP:Host} ^a\.example\.com$
-RewriteRule .? - [E=__ROUTING_host_1:1]
-
-# route1
-RewriteCond %{ENV:__ROUTING_host_1} =1
-RewriteCond %{REQUEST_URI} ^/route1$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route1]
-
-# route2
-RewriteCond %{ENV:__ROUTING_host_1} =1
-RewriteCond %{REQUEST_URI} ^/c2/route2$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route2]
-
-RewriteCond %{HTTP:Host} ^b\.example\.com$
-RewriteRule .? - [E=__ROUTING_host_2:1]
-
-# route3
-RewriteCond %{ENV:__ROUTING_host_2} =1
-RewriteCond %{REQUEST_URI} ^/c2/route3$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route3]
-
-RewriteCond %{HTTP:Host} ^a\.example\.com$
-RewriteRule .? - [E=__ROUTING_host_3:1]
-
-# route4
-RewriteCond %{ENV:__ROUTING_host_3} =1
-RewriteCond %{REQUEST_URI} ^/route4$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route4]
-
-RewriteCond %{HTTP:Host} ^c\.example\.com$
-RewriteRule .? - [E=__ROUTING_host_4:1]
-
-# route5
-RewriteCond %{ENV:__ROUTING_host_4} =1
-RewriteCond %{REQUEST_URI} ^/route5$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route5]
-
-# route6
-RewriteCond %{REQUEST_URI} ^/route6$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route6]
-
-RewriteCond %{HTTP:Host} ^([^\.]++)\.example\.com$
-RewriteRule .? - [E=__ROUTING_host_5:1,E=__ROUTING_host_5_var1:%1]
-
-# route11
-RewriteCond %{ENV:__ROUTING_host_5} =1
-RewriteCond %{REQUEST_URI} ^/route11$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route11,E=_ROUTING_param_var1:%{ENV:__ROUTING_host_5_var1}]
-
-# route12
-RewriteCond %{ENV:__ROUTING_host_5} =1
-RewriteCond %{REQUEST_URI} ^/route12$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route12,E=_ROUTING_param_var1:%{ENV:__ROUTING_host_5_var1},E=_ROUTING_default_var1:val]
-
-# route13
-RewriteCond %{ENV:__ROUTING_host_5} =1
-RewriteCond %{REQUEST_URI} ^/route13/([^/]++)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route13,E=_ROUTING_param_var1:%{ENV:__ROUTING_host_5_var1},E=_ROUTING_param_name:%1]
-
-# route14
-RewriteCond %{ENV:__ROUTING_host_5} =1
-RewriteCond %{REQUEST_URI} ^/route14/([^/]++)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route14,E=_ROUTING_param_var1:%{ENV:__ROUTING_host_5_var1},E=_ROUTING_param_name:%1,E=_ROUTING_default_var1:val]
-
-RewriteCond %{HTTP:Host} ^c\.example\.com$
-RewriteRule .? - [E=__ROUTING_host_6:1]
-
-# route15
-RewriteCond %{ENV:__ROUTING_host_6} =1
-RewriteCond %{REQUEST_URI} ^/route15/([^/]++)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route15,E=_ROUTING_param_name:%1]
-
-# route16
-RewriteCond %{REQUEST_URI} ^/route16/([^/]++)$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route16,E=_ROUTING_param_name:%1,E=_ROUTING_default_var1:val]
-
-# route17
-RewriteCond %{REQUEST_URI} ^/route17$
-RewriteRule .* app.php [QSA,L,E=_ROUTING_route:route17]
-
-# 405 Method Not Allowed
-RewriteCond %{ENV:_ROUTING__allow_GET} =1 [OR]
-RewriteCond %{ENV:_ROUTING__allow_HEAD} =1 [OR]
-RewriteCond %{ENV:_ROUTING__allow_POST} =1
-RewriteRule .* app.php [QSA,L]
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.php b/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.php
deleted file mode 100644
index 4ea0b8a..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.php
+++ /dev/null
@@ -1,312 +0,0 @@
-<?php
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\RequestContext;
-
-/**
- * ProjectUrlMatcher.
- *
- * This class has been auto-generated
- * by the Symfony Routing Component.
- */
-class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
-{
-    /**
-     * Constructor.
-     */
-    public function __construct(RequestContext $context)
-    {
-        $this->context = $context;
-    }
-
-    public function match($pathinfo)
-    {
-        $allow = array();
-        $pathinfo = rawurldecode($pathinfo);
-        $context = $this->context;
-        $request = $this->request;
-
-        // foo
-        if (0 === strpos($pathinfo, '/foo') && preg_match('#^/foo/(?P<bar>baz|symfony)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo')), array (  'def' => 'test',));
-        }
-
-        if (0 === strpos($pathinfo, '/bar')) {
-            // bar
-            if (preg_match('#^/bar/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
-                    $allow = array_merge($allow, array('GET', 'HEAD'));
-                    goto not_bar;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar')), array ());
-            }
-            not_bar:
-
-            // barhead
-            if (0 === strpos($pathinfo, '/barhead') && preg_match('#^/barhead/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
-                    $allow = array_merge($allow, array('GET', 'HEAD'));
-                    goto not_barhead;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'barhead')), array ());
-            }
-            not_barhead:
-
-        }
-
-        if (0 === strpos($pathinfo, '/test')) {
-            if (0 === strpos($pathinfo, '/test/baz')) {
-                // baz
-                if ($pathinfo === '/test/baz') {
-                    return array('_route' => 'baz');
-                }
-
-                // baz2
-                if ($pathinfo === '/test/baz.html') {
-                    return array('_route' => 'baz2');
-                }
-
-                // baz3
-                if ($pathinfo === '/test/baz3/') {
-                    return array('_route' => 'baz3');
-                }
-
-            }
-
-            // baz4
-            if (preg_match('#^/test/(?P<foo>[^/]++)/$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'baz4')), array ());
-            }
-
-            // baz5
-            if (preg_match('#^/test/(?P<foo>[^/]++)/$#s', $pathinfo, $matches)) {
-                if ($this->context->getMethod() != 'POST') {
-                    $allow[] = 'POST';
-                    goto not_baz5;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'baz5')), array ());
-            }
-            not_baz5:
-
-            // baz.baz6
-            if (preg_match('#^/test/(?P<foo>[^/]++)/$#s', $pathinfo, $matches)) {
-                if ($this->context->getMethod() != 'PUT') {
-                    $allow[] = 'PUT';
-                    goto not_bazbaz6;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'baz.baz6')), array ());
-            }
-            not_bazbaz6:
-
-        }
-
-        // foofoo
-        if ($pathinfo === '/foofoo') {
-            return array (  'def' => 'test',  '_route' => 'foofoo',);
-        }
-
-        // quoter
-        if (preg_match('#^/(?P<quoter>[\']+)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'quoter')), array ());
-        }
-
-        // space
-        if ($pathinfo === '/spa ce') {
-            return array('_route' => 'space');
-        }
-
-        if (0 === strpos($pathinfo, '/a')) {
-            if (0 === strpos($pathinfo, '/a/b\'b')) {
-                // foo1
-                if (preg_match('#^/a/b\'b/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo1')), array ());
-                }
-
-                // bar1
-                if (preg_match('#^/a/b\'b/(?P<bar>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar1')), array ());
-                }
-
-            }
-
-            // overridden
-            if (preg_match('#^/a/(?P<var>.*)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'overridden')), array ());
-            }
-
-            if (0 === strpos($pathinfo, '/a/b\'b')) {
-                // foo2
-                if (preg_match('#^/a/b\'b/(?P<foo1>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo2')), array ());
-                }
-
-                // bar2
-                if (preg_match('#^/a/b\'b/(?P<bar1>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar2')), array ());
-                }
-
-            }
-
-        }
-
-        if (0 === strpos($pathinfo, '/multi')) {
-            // helloWorld
-            if (0 === strpos($pathinfo, '/multi/hello') && preg_match('#^/multi/hello(?:/(?P<who>[^/]++))?$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'helloWorld')), array (  'who' => 'World!',));
-            }
-
-            // overridden2
-            if ($pathinfo === '/multi/new') {
-                return array('_route' => 'overridden2');
-            }
-
-            // hey
-            if ($pathinfo === '/multi/hey/') {
-                return array('_route' => 'hey');
-            }
-
-        }
-
-        // foo3
-        if (preg_match('#^/(?P<_locale>[^/]++)/b/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo3')), array ());
-        }
-
-        // bar3
-        if (preg_match('#^/(?P<_locale>[^/]++)/b/(?P<bar>[^/]++)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar3')), array ());
-        }
-
-        if (0 === strpos($pathinfo, '/aba')) {
-            // ababa
-            if ($pathinfo === '/ababa') {
-                return array('_route' => 'ababa');
-            }
-
-            // foo4
-            if (preg_match('#^/aba/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo4')), array ());
-            }
-
-        }
-
-        $host = $this->context->getHost();
-
-        if (preg_match('#^a\\.example\\.com$#si', $host, $hostMatches)) {
-            // route1
-            if ($pathinfo === '/route1') {
-                return array('_route' => 'route1');
-            }
-
-            // route2
-            if ($pathinfo === '/c2/route2') {
-                return array('_route' => 'route2');
-            }
-
-        }
-
-        if (preg_match('#^b\\.example\\.com$#si', $host, $hostMatches)) {
-            // route3
-            if ($pathinfo === '/c2/route3') {
-                return array('_route' => 'route3');
-            }
-
-        }
-
-        if (preg_match('#^a\\.example\\.com$#si', $host, $hostMatches)) {
-            // route4
-            if ($pathinfo === '/route4') {
-                return array('_route' => 'route4');
-            }
-
-        }
-
-        if (preg_match('#^c\\.example\\.com$#si', $host, $hostMatches)) {
-            // route5
-            if ($pathinfo === '/route5') {
-                return array('_route' => 'route5');
-            }
-
-        }
-
-        // route6
-        if ($pathinfo === '/route6') {
-            return array('_route' => 'route6');
-        }
-
-        if (preg_match('#^(?P<var1>[^\\.]++)\\.example\\.com$#si', $host, $hostMatches)) {
-            if (0 === strpos($pathinfo, '/route1')) {
-                // route11
-                if ($pathinfo === '/route11') {
-                    return $this->mergeDefaults(array_replace($hostMatches, array('_route' => 'route11')), array ());
-                }
-
-                // route12
-                if ($pathinfo === '/route12') {
-                    return $this->mergeDefaults(array_replace($hostMatches, array('_route' => 'route12')), array (  'var1' => 'val',));
-                }
-
-                // route13
-                if (0 === strpos($pathinfo, '/route13') && preg_match('#^/route13/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($hostMatches, $matches, array('_route' => 'route13')), array ());
-                }
-
-                // route14
-                if (0 === strpos($pathinfo, '/route14') && preg_match('#^/route14/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($hostMatches, $matches, array('_route' => 'route14')), array (  'var1' => 'val',));
-                }
-
-            }
-
-        }
-
-        if (preg_match('#^c\\.example\\.com$#si', $host, $hostMatches)) {
-            // route15
-            if (0 === strpos($pathinfo, '/route15') && preg_match('#^/route15/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'route15')), array ());
-            }
-
-        }
-
-        if (0 === strpos($pathinfo, '/route1')) {
-            // route16
-            if (0 === strpos($pathinfo, '/route16') && preg_match('#^/route16/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'route16')), array (  'var1' => 'val',));
-            }
-
-            // route17
-            if ($pathinfo === '/route17') {
-                return array('_route' => 'route17');
-            }
-
-        }
-
-        if (0 === strpos($pathinfo, '/a')) {
-            // a
-            if ($pathinfo === '/a/a...') {
-                return array('_route' => 'a');
-            }
-
-            if (0 === strpos($pathinfo, '/a/b')) {
-                // b
-                if (preg_match('#^/a/b/(?P<var>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'b')), array ());
-                }
-
-                // c
-                if (0 === strpos($pathinfo, '/a/b/c') && preg_match('#^/a/b/c/(?P<var>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'c')), array ());
-                }
-
-            }
-
-        }
-
-        throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException();
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.apache b/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.apache
deleted file mode 100644
index 309f2ff..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.apache
+++ /dev/null
@@ -1,7 +0,0 @@
-# skip "real" requests
-RewriteCond %{REQUEST_FILENAME} -f
-RewriteRule .* - [QSA,L]
-
-# foo
-RewriteCond %{REQUEST_URI} ^/foo$
-RewriteRule .* ap\ p_d\ ev.php [QSA,L,E=_ROUTING_route:foo]
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.php b/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.php
deleted file mode 100644
index f9d3fa2..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.php
+++ /dev/null
@@ -1,344 +0,0 @@
-<?php
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\RequestContext;
-
-/**
- * ProjectUrlMatcher.
- *
- * This class has been auto-generated
- * by the Symfony Routing Component.
- */
-class ProjectUrlMatcher extends Symfony\Component\Routing\Tests\Fixtures\RedirectableUrlMatcher
-{
-    /**
-     * Constructor.
-     */
-    public function __construct(RequestContext $context)
-    {
-        $this->context = $context;
-    }
-
-    public function match($pathinfo)
-    {
-        $allow = array();
-        $pathinfo = rawurldecode($pathinfo);
-        $context = $this->context;
-        $request = $this->request;
-
-        // foo
-        if (0 === strpos($pathinfo, '/foo') && preg_match('#^/foo/(?P<bar>baz|symfony)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo')), array (  'def' => 'test',));
-        }
-
-        if (0 === strpos($pathinfo, '/bar')) {
-            // bar
-            if (preg_match('#^/bar/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
-                    $allow = array_merge($allow, array('GET', 'HEAD'));
-                    goto not_bar;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar')), array ());
-            }
-            not_bar:
-
-            // barhead
-            if (0 === strpos($pathinfo, '/barhead') && preg_match('#^/barhead/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                if (!in_array($this->context->getMethod(), array('GET', 'HEAD'))) {
-                    $allow = array_merge($allow, array('GET', 'HEAD'));
-                    goto not_barhead;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'barhead')), array ());
-            }
-            not_barhead:
-
-        }
-
-        if (0 === strpos($pathinfo, '/test')) {
-            if (0 === strpos($pathinfo, '/test/baz')) {
-                // baz
-                if ($pathinfo === '/test/baz') {
-                    return array('_route' => 'baz');
-                }
-
-                // baz2
-                if ($pathinfo === '/test/baz.html') {
-                    return array('_route' => 'baz2');
-                }
-
-                // baz3
-                if (rtrim($pathinfo, '/') === '/test/baz3') {
-                    if (substr($pathinfo, -1) !== '/') {
-                        return $this->redirect($pathinfo.'/', 'baz3');
-                    }
-
-                    return array('_route' => 'baz3');
-                }
-
-            }
-
-            // baz4
-            if (preg_match('#^/test/(?P<foo>[^/]++)/?$#s', $pathinfo, $matches)) {
-                if (substr($pathinfo, -1) !== '/') {
-                    return $this->redirect($pathinfo.'/', 'baz4');
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'baz4')), array ());
-            }
-
-            // baz5
-            if (preg_match('#^/test/(?P<foo>[^/]++)/$#s', $pathinfo, $matches)) {
-                if ($this->context->getMethod() != 'POST') {
-                    $allow[] = 'POST';
-                    goto not_baz5;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'baz5')), array ());
-            }
-            not_baz5:
-
-            // baz.baz6
-            if (preg_match('#^/test/(?P<foo>[^/]++)/$#s', $pathinfo, $matches)) {
-                if ($this->context->getMethod() != 'PUT') {
-                    $allow[] = 'PUT';
-                    goto not_bazbaz6;
-                }
-
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'baz.baz6')), array ());
-            }
-            not_bazbaz6:
-
-        }
-
-        // foofoo
-        if ($pathinfo === '/foofoo') {
-            return array (  'def' => 'test',  '_route' => 'foofoo',);
-        }
-
-        // quoter
-        if (preg_match('#^/(?P<quoter>[\']+)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'quoter')), array ());
-        }
-
-        // space
-        if ($pathinfo === '/spa ce') {
-            return array('_route' => 'space');
-        }
-
-        if (0 === strpos($pathinfo, '/a')) {
-            if (0 === strpos($pathinfo, '/a/b\'b')) {
-                // foo1
-                if (preg_match('#^/a/b\'b/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo1')), array ());
-                }
-
-                // bar1
-                if (preg_match('#^/a/b\'b/(?P<bar>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar1')), array ());
-                }
-
-            }
-
-            // overridden
-            if (preg_match('#^/a/(?P<var>.*)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'overridden')), array ());
-            }
-
-            if (0 === strpos($pathinfo, '/a/b\'b')) {
-                // foo2
-                if (preg_match('#^/a/b\'b/(?P<foo1>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo2')), array ());
-                }
-
-                // bar2
-                if (preg_match('#^/a/b\'b/(?P<bar1>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar2')), array ());
-                }
-
-            }
-
-        }
-
-        if (0 === strpos($pathinfo, '/multi')) {
-            // helloWorld
-            if (0 === strpos($pathinfo, '/multi/hello') && preg_match('#^/multi/hello(?:/(?P<who>[^/]++))?$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'helloWorld')), array (  'who' => 'World!',));
-            }
-
-            // overridden2
-            if ($pathinfo === '/multi/new') {
-                return array('_route' => 'overridden2');
-            }
-
-            // hey
-            if (rtrim($pathinfo, '/') === '/multi/hey') {
-                if (substr($pathinfo, -1) !== '/') {
-                    return $this->redirect($pathinfo.'/', 'hey');
-                }
-
-                return array('_route' => 'hey');
-            }
-
-        }
-
-        // foo3
-        if (preg_match('#^/(?P<_locale>[^/]++)/b/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo3')), array ());
-        }
-
-        // bar3
-        if (preg_match('#^/(?P<_locale>[^/]++)/b/(?P<bar>[^/]++)$#s', $pathinfo, $matches)) {
-            return $this->mergeDefaults(array_replace($matches, array('_route' => 'bar3')), array ());
-        }
-
-        if (0 === strpos($pathinfo, '/aba')) {
-            // ababa
-            if ($pathinfo === '/ababa') {
-                return array('_route' => 'ababa');
-            }
-
-            // foo4
-            if (preg_match('#^/aba/(?P<foo>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'foo4')), array ());
-            }
-
-        }
-
-        $host = $this->context->getHost();
-
-        if (preg_match('#^a\\.example\\.com$#si', $host, $hostMatches)) {
-            // route1
-            if ($pathinfo === '/route1') {
-                return array('_route' => 'route1');
-            }
-
-            // route2
-            if ($pathinfo === '/c2/route2') {
-                return array('_route' => 'route2');
-            }
-
-        }
-
-        if (preg_match('#^b\\.example\\.com$#si', $host, $hostMatches)) {
-            // route3
-            if ($pathinfo === '/c2/route3') {
-                return array('_route' => 'route3');
-            }
-
-        }
-
-        if (preg_match('#^a\\.example\\.com$#si', $host, $hostMatches)) {
-            // route4
-            if ($pathinfo === '/route4') {
-                return array('_route' => 'route4');
-            }
-
-        }
-
-        if (preg_match('#^c\\.example\\.com$#si', $host, $hostMatches)) {
-            // route5
-            if ($pathinfo === '/route5') {
-                return array('_route' => 'route5');
-            }
-
-        }
-
-        // route6
-        if ($pathinfo === '/route6') {
-            return array('_route' => 'route6');
-        }
-
-        if (preg_match('#^(?P<var1>[^\\.]++)\\.example\\.com$#si', $host, $hostMatches)) {
-            if (0 === strpos($pathinfo, '/route1')) {
-                // route11
-                if ($pathinfo === '/route11') {
-                    return $this->mergeDefaults(array_replace($hostMatches, array('_route' => 'route11')), array ());
-                }
-
-                // route12
-                if ($pathinfo === '/route12') {
-                    return $this->mergeDefaults(array_replace($hostMatches, array('_route' => 'route12')), array (  'var1' => 'val',));
-                }
-
-                // route13
-                if (0 === strpos($pathinfo, '/route13') && preg_match('#^/route13/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($hostMatches, $matches, array('_route' => 'route13')), array ());
-                }
-
-                // route14
-                if (0 === strpos($pathinfo, '/route14') && preg_match('#^/route14/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($hostMatches, $matches, array('_route' => 'route14')), array (  'var1' => 'val',));
-                }
-
-            }
-
-        }
-
-        if (preg_match('#^c\\.example\\.com$#si', $host, $hostMatches)) {
-            // route15
-            if (0 === strpos($pathinfo, '/route15') && preg_match('#^/route15/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'route15')), array ());
-            }
-
-        }
-
-        if (0 === strpos($pathinfo, '/route1')) {
-            // route16
-            if (0 === strpos($pathinfo, '/route16') && preg_match('#^/route16/(?P<name>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'route16')), array (  'var1' => 'val',));
-            }
-
-            // route17
-            if ($pathinfo === '/route17') {
-                return array('_route' => 'route17');
-            }
-
-        }
-
-        if (0 === strpos($pathinfo, '/a')) {
-            // a
-            if ($pathinfo === '/a/a...') {
-                return array('_route' => 'a');
-            }
-
-            if (0 === strpos($pathinfo, '/a/b')) {
-                // b
-                if (preg_match('#^/a/b/(?P<var>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'b')), array ());
-                }
-
-                // c
-                if (0 === strpos($pathinfo, '/a/b/c') && preg_match('#^/a/b/c/(?P<var>[^/]++)$#s', $pathinfo, $matches)) {
-                    return $this->mergeDefaults(array_replace($matches, array('_route' => 'c')), array ());
-                }
-
-            }
-
-        }
-
-        // secure
-        if ($pathinfo === '/secure') {
-            $requiredSchemes = array (  'https' => 0,);
-            if (!isset($requiredSchemes[$this->context->getScheme()])) {
-                return $this->redirect($pathinfo, 'secure', key($requiredSchemes));
-            }
-
-            return array('_route' => 'secure');
-        }
-
-        // nonsecure
-        if ($pathinfo === '/nonsecure') {
-            $requiredSchemes = array (  'http' => 0,);
-            if (!isset($requiredSchemes[$this->context->getScheme()])) {
-                return $this->redirect($pathinfo, 'nonsecure', key($requiredSchemes));
-            }
-
-            return array('_route' => 'nonsecure');
-        }
-
-        throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException();
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher3.php b/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher3.php
deleted file mode 100644
index d9da7b0..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher3.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\RequestContext;
-
-/**
- * ProjectUrlMatcher.
- *
- * This class has been auto-generated
- * by the Symfony Routing Component.
- */
-class ProjectUrlMatcher extends Symfony\Component\Routing\Matcher\UrlMatcher
-{
-    /**
-     * Constructor.
-     */
-    public function __construct(RequestContext $context)
-    {
-        $this->context = $context;
-    }
-
-    public function match($pathinfo)
-    {
-        $allow = array();
-        $pathinfo = rawurldecode($pathinfo);
-        $context = $this->context;
-        $request = $this->request;
-
-        if (0 === strpos($pathinfo, '/rootprefix')) {
-            // static
-            if ($pathinfo === '/rootprefix/test') {
-                return array('_route' => 'static');
-            }
-
-            // dynamic
-            if (preg_match('#^/rootprefix/(?P<var>[^/]++)$#s', $pathinfo, $matches)) {
-                return $this->mergeDefaults(array_replace($matches, array('_route' => 'dynamic')), array ());
-            }
-
-        }
-
-        // with-condition
-        if ($pathinfo === '/with-condition' && ($context->getMethod() == "GET")) {
-            return array('_route' => 'with-condition');
-        }
-
-        throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException();
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/empty.yml b/core/vendor/symfony/routing/Tests/Fixtures/empty.yml
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/foo.xml b/core/vendor/symfony/routing/Tests/Fixtures/foo.xml
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/foo1.xml b/core/vendor/symfony/routing/Tests/Fixtures/foo1.xml
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/incomplete.yml b/core/vendor/symfony/routing/Tests/Fixtures/incomplete.yml
deleted file mode 100644
index df64d32..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/incomplete.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-blog_show:
-    defaults:  { _controller: MyBlogBundle:Blog:show }
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/legacy_validpattern.xml b/core/vendor/symfony/routing/Tests/Fixtures/legacy_validpattern.xml
deleted file mode 100644
index a01ebca..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/legacy_validpattern.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route id="blog_show_legacy" pattern="/blog/{slug}" host="{locale}.example.com">
-        <default key="_controller">MyBundle:Blog:show</default>
-        <default key="slug" xsi:nil="true" />
-        <requirement key="_method">GET|POST|put|OpTiOnS</requirement>
-        <requirement key="_scheme">hTTps</requirement>
-        <requirement key="locale">\w+</requirement>
-        <option key="compiler_class">RouteCompiler</option>
-        <condition>context.getMethod() == "GET"</condition>
-    </route>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/legacy_validpattern.yml b/core/vendor/symfony/routing/Tests/Fixtures/legacy_validpattern.yml
deleted file mode 100644
index ada65f0..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/legacy_validpattern.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-blog_show_legacy:
-    pattern:      /blog/{slug}
-    defaults:     { _controller: "MyBundle:Blog:show" }
-    host:         "{locale}.example.com"
-    requirements: { '_method': 'GET|POST|put|OpTiOnS', _scheme: https, 'locale': '\w+' }
-    condition:    'context.getMethod() == "GET"'
-    options:
-        compiler_class: RouteCompiler
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/missing_id.xml b/core/vendor/symfony/routing/Tests/Fixtures/missing_id.xml
deleted file mode 100644
index 4ea4115..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/missing_id.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route path="/test"></route>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/missing_path.xml b/core/vendor/symfony/routing/Tests/Fixtures/missing_path.xml
deleted file mode 100644
index ef5bc08..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/missing_path.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route id="myroute"></route>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml b/core/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml
deleted file mode 100644
index bdd6a47..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<r:routes xmlns:r="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <r:route id="blog_show" path="/blog/{slug}" host="{_locale}.example.com">
-        <r:default key="_controller">MyBundle:Blog:show</r:default>
-        <requirement xmlns="http://symfony.com/schema/routing" key="slug">\w+</requirement>
-        <r2:requirement xmlns:r2="http://symfony.com/schema/routing" key="_locale">en|fr|de</r2:requirement>
-        <r:option key="compiler_class">RouteCompiler</r:option>
-    </r:route>
-</r:routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonesense_resource_plus_path.yml b/core/vendor/symfony/routing/Tests/Fixtures/nonesense_resource_plus_path.yml
deleted file mode 100644
index a3e9473..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonesense_resource_plus_path.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-blog_show:
-    resource: validpattern.yml
-    path:     /test
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonesense_type_without_resource.yml b/core/vendor/symfony/routing/Tests/Fixtures/nonesense_type_without_resource.yml
deleted file mode 100644
index 547cda3..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonesense_type_without_resource.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-blog_show:
-    path:    /blog/{slug}
-    type:    custom
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml b/core/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml
deleted file mode 100644
index dc147d2..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonvalid.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route id="blog_show" path="/blog/{slug}">
-        <default key="_controller">MyBundle:Blog:show</default>
-    <!-- </route> -->
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonvalid.yml b/core/vendor/symfony/routing/Tests/Fixtures/nonvalid.yml
deleted file mode 100644
index 257cc56..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonvalid.yml
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonvalid2.yml b/core/vendor/symfony/routing/Tests/Fixtures/nonvalid2.yml
deleted file mode 100644
index cfa9992..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonvalid2.yml
+++ /dev/null
@@ -1 +0,0 @@
-route: string
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonvalidkeys.yml b/core/vendor/symfony/routing/Tests/Fixtures/nonvalidkeys.yml
deleted file mode 100644
index 015e270..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonvalidkeys.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-someroute:
-  resource: path/to/some.yml
-  name_prefix: test_
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml b/core/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml
deleted file mode 100644
index 863ef03..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <foo>bar</foo>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml b/core/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml
deleted file mode 100644
index 908958c..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route id="blog_show" path="/blog/{slug}">
-        <default key="_controller">MyBundle:Blog:show</default>
-        <option key="compiler_class">RouteCompiler</option>
-        <foo key="bar">baz</foo>
-    </route>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/null_values.xml b/core/vendor/symfony/routing/Tests/Fixtures/null_values.xml
deleted file mode 100644
index f9e2aa2..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/null_values.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route id="blog_show" path="/blog/{slug}">
-        <default key="foo" xsi:nil="true" />
-        <default key="bar" xsi:nil="1" />
-        <default key="foobar" xsi:nil="false">foo</default>
-        <default key="baz" xsi:nil="0">bar</default>
-    </route>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/special_route_name.yml b/core/vendor/symfony/routing/Tests/Fixtures/special_route_name.yml
deleted file mode 100644
index 78be239..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/special_route_name.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-"#$péß^a|":
-    path: "true"
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/validpattern.php b/core/vendor/symfony/routing/Tests/Fixtures/validpattern.php
deleted file mode 100644
index edc16d8..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/validpattern.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-
-$collection = new RouteCollection();
-$collection->add('blog_show', new Route(
-    '/blog/{slug}',
-    array('_controller' => 'MyBlogBundle:Blog:show'),
-    array('locale' => '\w+'),
-    array('compiler_class' => 'RouteCompiler'),
-    '{locale}.example.com',
-    array('https'),
-    array('GET', 'POST', 'put', 'OpTiOnS'),
-    'context.getMethod() == "GET"'
-));
-
-return $collection;
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/validpattern.xml b/core/vendor/symfony/routing/Tests/Fixtures/validpattern.xml
deleted file mode 100644
index dbc72e4..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/validpattern.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <route id="blog_show" path="/blog/{slug}" host="{locale}.example.com" methods="GET|POST  put,OpTiOnS" schemes="hTTps">
-        <default key="_controller">MyBundle:Blog:show</default>
-        <requirement key="locale">\w+</requirement>
-        <option key="compiler_class">RouteCompiler</option>
-        <condition>context.getMethod() == "GET"</condition>
-    </route>
-
-    <route id="blog_show_inherited" path="/blog/{slug}" />
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/validpattern.yml b/core/vendor/symfony/routing/Tests/Fixtures/validpattern.yml
deleted file mode 100644
index 565abaa..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/validpattern.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-blog_show:
-    path:         /blog/{slug}
-    defaults:     { _controller: "MyBundle:Blog:show" }
-    host:         "{locale}.example.com"
-    requirements: { 'locale': '\w+' }
-    methods:      ['GET','POST','put','OpTiOnS']
-    schemes:      ['https']
-    condition:    'context.getMethod() == "GET"'
-    options:
-        compiler_class: RouteCompiler
-
-blog_show_inherited:
-    path:      /blog/{slug}
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/validresource.php b/core/vendor/symfony/routing/Tests/Fixtures/validresource.php
deleted file mode 100644
index 482c80b..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/validresource.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/** @var $loader \Symfony\Component\Routing\Loader\PhpFileLoader */
-/** @var \Symfony\Component\Routing\RouteCollection $collection */
-$collection = $loader->import('validpattern.php');
-$collection->addDefaults(array(
-    'foo' => 123,
-));
-$collection->addRequirements(array(
-    'foo' => '\d+',
-));
-$collection->addOptions(array(
-    'foo' => 'bar',
-));
-$collection->setCondition('context.getMethod() == "POST"');
-$collection->addPrefix('/prefix');
-
-return $collection;
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/validresource.xml b/core/vendor/symfony/routing/Tests/Fixtures/validresource.xml
deleted file mode 100644
index b7a15dd..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/validresource.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<routes xmlns="http://symfony.com/schema/routing"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
-
-    <import resource="validpattern.xml" prefix="/{foo}" host="">
-        <default key="foo">123</default>
-        <requirement key="foo">\d+</requirement>
-        <option key="foo">bar</option>
-        <condition>context.getMethod() == "POST"</condition>
-    </import>
-</routes>
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/validresource.yml b/core/vendor/symfony/routing/Tests/Fixtures/validresource.yml
deleted file mode 100644
index faf2263..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/validresource.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-_blog:
-    resource:     validpattern.yml
-    prefix:       /{foo}
-    defaults:     { 'foo': '123' }
-    requirements: { 'foo': '\d+' }
-    options:      { 'foo': 'bar' }
-    host:         ""
-    condition:    'context.getMethod() == "POST"'
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/with_define_path_variable.php b/core/vendor/symfony/routing/Tests/Fixtures/with_define_path_variable.php
deleted file mode 100644
index 5871420..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/with_define_path_variable.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-$path = '/1/2/3';
-
-return new \Symfony\Component\Routing\RouteCollection();
diff --git a/core/vendor/symfony/routing/Tests/Fixtures/withdoctype.xml b/core/vendor/symfony/routing/Tests/Fixtures/withdoctype.xml
deleted file mode 100644
index f217d5b..0000000
--- a/core/vendor/symfony/routing/Tests/Fixtures/withdoctype.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE foo>
-<foo></foo>
diff --git a/core/vendor/symfony/routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php b/core/vendor/symfony/routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
deleted file mode 100644
index 525b9f5..0000000
--- a/core/vendor/symfony/routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Generator\Dumper;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\Generator\Dumper\PhpGeneratorDumper;
-use Symfony\Component\Routing\RequestContext;
-
-class PhpGeneratorDumperTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var RouteCollection
-     */
-    private $routeCollection;
-
-    /**
-     * @var PhpGeneratorDumper
-     */
-    private $generatorDumper;
-
-    /**
-     * @var string
-     */
-    private $testTmpFilepath;
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->routeCollection = new RouteCollection();
-        $this->generatorDumper = new PhpGeneratorDumper($this->routeCollection);
-        $this->testTmpFilepath = sys_get_temp_dir().DIRECTORY_SEPARATOR.'php_generator.'.$this->getName().'.php';
-        @unlink($this->testTmpFilepath);
-    }
-
-    protected function tearDown()
-    {
-        parent::tearDown();
-
-        @unlink($this->testTmpFilepath);
-
-        $this->routeCollection = null;
-        $this->generatorDumper = null;
-        $this->testTmpFilepath = null;
-    }
-
-    public function testDumpWithRoutes()
-    {
-        $this->routeCollection->add('Test', new Route('/testing/{foo}'));
-        $this->routeCollection->add('Test2', new Route('/testing2'));
-
-        file_put_contents($this->testTmpFilepath, $this->generatorDumper->dump());
-        include $this->testTmpFilepath;
-
-        $projectUrlGenerator = new \ProjectUrlGenerator(new RequestContext('/app.php'));
-
-        $absoluteUrlWithParameter = $projectUrlGenerator->generate('Test', array('foo' => 'bar'), true);
-        $absoluteUrlWithoutParameter = $projectUrlGenerator->generate('Test2', array(), true);
-        $relativeUrlWithParameter = $projectUrlGenerator->generate('Test', array('foo' => 'bar'), false);
-        $relativeUrlWithoutParameter = $projectUrlGenerator->generate('Test2', array(), false);
-
-        $this->assertEquals($absoluteUrlWithParameter, 'http://localhost/app.php/testing/bar');
-        $this->assertEquals($absoluteUrlWithoutParameter, 'http://localhost/app.php/testing2');
-        $this->assertEquals($relativeUrlWithParameter, '/app.php/testing/bar');
-        $this->assertEquals($relativeUrlWithoutParameter, '/app.php/testing2');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testDumpWithoutRoutes()
-    {
-        file_put_contents($this->testTmpFilepath, $this->generatorDumper->dump(array('class' => 'WithoutRoutesUrlGenerator')));
-        include $this->testTmpFilepath;
-
-        $projectUrlGenerator = new \WithoutRoutesUrlGenerator(new RequestContext('/app.php'));
-
-        $projectUrlGenerator->generate('Test', array());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateNonExistingRoute()
-    {
-        $this->routeCollection->add('Test', new Route('/test'));
-
-        file_put_contents($this->testTmpFilepath, $this->generatorDumper->dump(array('class' => 'NonExistingRoutesUrlGenerator')));
-        include $this->testTmpFilepath;
-
-        $projectUrlGenerator = new \NonExistingRoutesUrlGenerator(new RequestContext());
-        $url = $projectUrlGenerator->generate('NonExisting', array());
-    }
-
-    public function testDumpForRouteWithDefaults()
-    {
-        $this->routeCollection->add('Test', new Route('/testing/{foo}', array('foo' => 'bar')));
-
-        file_put_contents($this->testTmpFilepath, $this->generatorDumper->dump(array('class' => 'DefaultRoutesUrlGenerator')));
-        include $this->testTmpFilepath;
-
-        $projectUrlGenerator = new \DefaultRoutesUrlGenerator(new RequestContext());
-        $url = $projectUrlGenerator->generate('Test', array());
-
-        $this->assertEquals($url, '/testing');
-    }
-
-    public function testDumpWithSchemeRequirement()
-    {
-        $this->routeCollection->add('Test1', new Route('/testing', array(), array(), array(), '', array('ftp', 'https')));
-
-        file_put_contents($this->testTmpFilepath, $this->generatorDumper->dump(array('class' => 'SchemeUrlGenerator')));
-        include $this->testTmpFilepath;
-
-        $projectUrlGenerator = new \SchemeUrlGenerator(new RequestContext('/app.php'));
-
-        $absoluteUrl = $projectUrlGenerator->generate('Test1', array(), true);
-        $relativeUrl = $projectUrlGenerator->generate('Test1', array(), false);
-
-        $this->assertEquals($absoluteUrl, 'ftp://localhost/app.php/testing');
-        $this->assertEquals($relativeUrl, 'ftp://localhost/app.php/testing');
-
-        $projectUrlGenerator = new \SchemeUrlGenerator(new RequestContext('/app.php', 'GET', 'localhost', 'https'));
-
-        $absoluteUrl = $projectUrlGenerator->generate('Test1', array(), true);
-        $relativeUrl = $projectUrlGenerator->generate('Test1', array(), false);
-
-        $this->assertEquals($absoluteUrl, 'https://localhost/app.php/testing');
-        $this->assertEquals($relativeUrl, '/app.php/testing');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Generator/UrlGeneratorTest.php b/core/vendor/symfony/routing/Tests/Generator/UrlGeneratorTest.php
deleted file mode 100644
index 29460c7..0000000
--- a/core/vendor/symfony/routing/Tests/Generator/UrlGeneratorTest.php
+++ /dev/null
@@ -1,665 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Generator;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\Generator\UrlGenerator;
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-use Symfony\Component\Routing\RequestContext;
-
-class UrlGeneratorTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAbsoluteUrlWithPort80()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes)->generate('test', array(), true);
-
-        $this->assertEquals('http://localhost/app.php/testing', $url);
-    }
-
-    public function testAbsoluteSecureUrlWithPort443()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes, array('scheme' => 'https'))->generate('test', array(), true);
-
-        $this->assertEquals('https://localhost/app.php/testing', $url);
-    }
-
-    public function testAbsoluteUrlWithNonStandardPort()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes, array('httpPort' => 8080))->generate('test', array(), true);
-
-        $this->assertEquals('http://localhost:8080/app.php/testing', $url);
-    }
-
-    public function testAbsoluteSecureUrlWithNonStandardPort()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes, array('httpsPort' => 8080, 'scheme' => 'https'))->generate('test', array(), true);
-
-        $this->assertEquals('https://localhost:8080/app.php/testing', $url);
-    }
-
-    public function testRelativeUrlWithoutParameters()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes)->generate('test', array(), false);
-
-        $this->assertEquals('/app.php/testing', $url);
-    }
-
-    public function testRelativeUrlWithParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}'));
-        $url = $this->getGenerator($routes)->generate('test', array('foo' => 'bar'), false);
-
-        $this->assertEquals('/app.php/testing/bar', $url);
-    }
-
-    public function testRelativeUrlWithNullParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing.{format}', array('format' => null)));
-        $url = $this->getGenerator($routes)->generate('test', array(), false);
-
-        $this->assertEquals('/app.php/testing', $url);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testRelativeUrlWithNullParameterButNotOptional()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}/bar', array('foo' => null)));
-        // This must raise an exception because the default requirement for "foo" is "[^/]+" which is not met with these params.
-        // Generating path "/testing//bar" would be wrong as matching this route would fail.
-        $this->getGenerator($routes)->generate('test', array(), false);
-    }
-
-    public function testRelativeUrlWithOptionalZeroParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{page}'));
-        $url = $this->getGenerator($routes)->generate('test', array('page' => 0), false);
-
-        $this->assertEquals('/app.php/testing/0', $url);
-    }
-
-    public function testNotPassedOptionalParameterInBetween()
-    {
-        $routes = $this->getRoutes('test', new Route('/{slug}/{page}', array('slug' => 'index', 'page' => 0)));
-        $this->assertSame('/app.php/index/1', $this->getGenerator($routes)->generate('test', array('page' => 1)));
-        $this->assertSame('/app.php/', $this->getGenerator($routes)->generate('test'));
-    }
-
-    public function testRelativeUrlWithExtraParameters()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes)->generate('test', array('foo' => 'bar'), false);
-
-        $this->assertEquals('/app.php/testing?foo=bar', $url);
-    }
-
-    public function testAbsoluteUrlWithExtraParameters()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes)->generate('test', array('foo' => 'bar'), true);
-
-        $this->assertEquals('http://localhost/app.php/testing?foo=bar', $url);
-    }
-
-    public function testUrlWithNullExtraParameters()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $url = $this->getGenerator($routes)->generate('test', array('foo' => null), true);
-
-        $this->assertEquals('http://localhost/app.php/testing', $url);
-    }
-
-    public function testUrlWithExtraParametersFromGlobals()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing'));
-        $generator = $this->getGenerator($routes);
-        $context = new RequestContext('/app.php');
-        $context->setParameter('bar', 'bar');
-        $generator->setContext($context);
-        $url = $generator->generate('test', array('foo' => 'bar'));
-
-        $this->assertEquals('/app.php/testing?foo=bar', $url);
-    }
-
-    public function testUrlWithGlobalParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}'));
-        $generator = $this->getGenerator($routes);
-        $context = new RequestContext('/app.php');
-        $context->setParameter('foo', 'bar');
-        $generator->setContext($context);
-        $url = $generator->generate('test', array());
-
-        $this->assertEquals('/app.php/testing/bar', $url);
-    }
-
-    public function testGlobalParameterHasHigherPriorityThanDefault()
-    {
-        $routes = $this->getRoutes('test', new Route('/{_locale}', array('_locale' => 'en')));
-        $generator = $this->getGenerator($routes);
-        $context = new RequestContext('/app.php');
-        $context->setParameter('_locale', 'de');
-        $generator->setContext($context);
-        $url = $generator->generate('test', array());
-
-        $this->assertSame('/app.php/de', $url);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\RouteNotFoundException
-     */
-    public function testGenerateWithoutRoutes()
-    {
-        $routes = $this->getRoutes('foo', new Route('/testing/{foo}'));
-        $this->getGenerator($routes)->generate('test', array(), true);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\MissingMandatoryParametersException
-     */
-    public function testGenerateForRouteWithoutMandatoryParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}'));
-        $this->getGenerator($routes)->generate('test', array(), true);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testGenerateForRouteWithInvalidOptionalParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}', array('foo' => '1'), array('foo' => 'd+')));
-        $this->getGenerator($routes)->generate('test', array('foo' => 'bar'), true);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testGenerateForRouteWithInvalidParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}', array(), array('foo' => '1|2')));
-        $this->getGenerator($routes)->generate('test', array('foo' => '0'), true);
-    }
-
-    public function testGenerateForRouteWithInvalidOptionalParameterNonStrict()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}', array('foo' => '1'), array('foo' => 'd+')));
-        $generator = $this->getGenerator($routes);
-        $generator->setStrictRequirements(false);
-        $this->assertNull($generator->generate('test', array('foo' => 'bar'), true));
-    }
-
-    public function testGenerateForRouteWithInvalidOptionalParameterNonStrictWithLogger()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}', array('foo' => '1'), array('foo' => 'd+')));
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $logger->expects($this->once())
-            ->method('error');
-        $generator = $this->getGenerator($routes, array(), $logger);
-        $generator->setStrictRequirements(false);
-        $this->assertNull($generator->generate('test', array('foo' => 'bar'), true));
-    }
-
-    public function testGenerateForRouteWithInvalidParameterButDisabledRequirementsCheck()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}', array('foo' => '1'), array('foo' => 'd+')));
-        $generator = $this->getGenerator($routes);
-        $generator->setStrictRequirements(null);
-        $this->assertSame('/app.php/testing/bar', $generator->generate('test', array('foo' => 'bar')));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testGenerateForRouteWithInvalidMandatoryParameter()
-    {
-        $routes = $this->getRoutes('test', new Route('/testing/{foo}', array(), array('foo' => 'd+')));
-        $this->getGenerator($routes)->generate('test', array('foo' => 'bar'), true);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testRequiredParamAndEmptyPassed()
-    {
-        $routes = $this->getRoutes('test', new Route('/{slug}', array(), array('slug' => '.+')));
-        $this->getGenerator($routes)->generate('test', array('slug' => ''));
-    }
-
-    public function testSchemeRequirementDoesNothingIfSameCurrentScheme()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('http')));
-        $this->assertEquals('/app.php/', $this->getGenerator($routes)->generate('test'));
-
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('https')));
-        $this->assertEquals('/app.php/', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test'));
-    }
-
-    public function testSchemeRequirementForcesAbsoluteUrl()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('https')));
-        $this->assertEquals('https://localhost/app.php/', $this->getGenerator($routes)->generate('test'));
-
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('http')));
-        $this->assertEquals('http://localhost/app.php/', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test'));
-    }
-
-    public function testSchemeRequirementCreatesUrlForFirstRequiredScheme()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array(), array(), array(), '', array('Ftp', 'https')));
-        $this->assertEquals('ftp://localhost/app.php/', $this->getGenerator($routes)->generate('test'));
-    }
-
-    public function testPathWithTwoStartingSlashes()
-    {
-        $routes = $this->getRoutes('test', new Route('//path-and-not-domain'));
-
-        // this must not generate '//path-and-not-domain' because that would be a network path
-        $this->assertSame('/path-and-not-domain', $this->getGenerator($routes, array('BaseUrl' => ''))->generate('test'));
-    }
-
-    public function testNoTrailingSlashForMultipleOptionalParameters()
-    {
-        $routes = $this->getRoutes('test', new Route('/category/{slug1}/{slug2}/{slug3}', array('slug2' => null, 'slug3' => null)));
-
-        $this->assertEquals('/app.php/category/foo', $this->getGenerator($routes)->generate('test', array('slug1' => 'foo')));
-    }
-
-    public function testWithAnIntegerAsADefaultValue()
-    {
-        $routes = $this->getRoutes('test', new Route('/{default}', array('default' => 0)));
-
-        $this->assertEquals('/app.php/foo', $this->getGenerator($routes)->generate('test', array('default' => 'foo')));
-    }
-
-    public function testNullForOptionalParameterIsIgnored()
-    {
-        $routes = $this->getRoutes('test', new Route('/test/{default}', array('default' => 0)));
-
-        $this->assertEquals('/app.php/test', $this->getGenerator($routes)->generate('test', array('default' => null)));
-    }
-
-    public function testQueryParamSameAsDefault()
-    {
-        $routes = $this->getRoutes('test', new Route('/test', array('default' => 'value')));
-
-        $this->assertSame('/app.php/test', $this->getGenerator($routes)->generate('test', array('default' => 'foo')));
-        $this->assertSame('/app.php/test', $this->getGenerator($routes)->generate('test', array('default' => 'value')));
-        $this->assertSame('/app.php/test', $this->getGenerator($routes)->generate('test'));
-    }
-
-    public function testGenerateWithSpecialRouteName()
-    {
-        $routes = $this->getRoutes('$péß^a|', new Route('/bar'));
-
-        $this->assertSame('/app.php/bar', $this->getGenerator($routes)->generate('$péß^a|'));
-    }
-
-    public function testUrlEncoding()
-    {
-        // This tests the encoding of reserved characters that are used for delimiting of URI components (defined in RFC 3986)
-        // and other special ASCII chars. These chars are tested as static text path, variable path and query param.
-        $chars = '@:[]/()*\'" +,;-._~&$<>|{}%\\^`!?foo=bar#id';
-        $routes = $this->getRoutes('test', new Route("/$chars/{varpath}", array(), array('varpath' => '.+')));
-        $this->assertSame('/app.php/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id'
-           .'/@:%5B%5D/%28%29*%27%22%20+,;-._~%26%24%3C%3E|%7B%7D%25%5C%5E%60!%3Ffoo=bar%23id'
-           .'?query=%40%3A%5B%5D/%28%29%2A%27%22+%2B%2C%3B-._%7E%26%24%3C%3E%7C%7B%7D%25%5C%5E%60%21%3Ffoo%3Dbar%23id',
-            $this->getGenerator($routes)->generate('test', array(
-                'varpath' => $chars,
-                'query' => $chars,
-            ))
-        );
-    }
-
-    public function testEncodingOfRelativePathSegments()
-    {
-        $routes = $this->getRoutes('test', new Route('/dir/../dir/..'));
-        $this->assertSame('/app.php/dir/%2E%2E/dir/%2E%2E', $this->getGenerator($routes)->generate('test'));
-        $routes = $this->getRoutes('test', new Route('/dir/./dir/.'));
-        $this->assertSame('/app.php/dir/%2E/dir/%2E', $this->getGenerator($routes)->generate('test'));
-        $routes = $this->getRoutes('test', new Route('/a./.a/a../..a/...'));
-        $this->assertSame('/app.php/a./.a/a../..a/...', $this->getGenerator($routes)->generate('test'));
-    }
-
-    public function testAdjacentVariables()
-    {
-        $routes = $this->getRoutes('test', new Route('/{x}{y}{z}.{_format}', array('z' => 'default-z', '_format' => 'html'), array('y' => '\d+')));
-        $generator = $this->getGenerator($routes);
-        $this->assertSame('/app.php/foo123', $generator->generate('test', array('x' => 'foo', 'y' => '123')));
-        $this->assertSame('/app.php/foo123bar.xml', $generator->generate('test', array('x' => 'foo', 'y' => '123', 'z' => 'bar', '_format' => 'xml')));
-
-        // The default requirement for 'x' should not allow the separator '.' in this case because it would otherwise match everything
-        // and following optional variables like _format could never match.
-        $this->setExpectedException('Symfony\Component\Routing\Exception\InvalidParameterException');
-        $generator->generate('test', array('x' => 'do.t', 'y' => '123', 'z' => 'bar', '_format' => 'xml'));
-    }
-
-    public function testOptionalVariableWithNoRealSeparator()
-    {
-        $routes = $this->getRoutes('test', new Route('/get{what}', array('what' => 'All')));
-        $generator = $this->getGenerator($routes);
-
-        $this->assertSame('/app.php/get', $generator->generate('test'));
-        $this->assertSame('/app.php/getSites', $generator->generate('test', array('what' => 'Sites')));
-    }
-
-    public function testRequiredVariableWithNoRealSeparator()
-    {
-        $routes = $this->getRoutes('test', new Route('/get{what}Suffix'));
-        $generator = $this->getGenerator($routes);
-
-        $this->assertSame('/app.php/getSitesSuffix', $generator->generate('test', array('what' => 'Sites')));
-    }
-
-    public function testDefaultRequirementOfVariable()
-    {
-        $routes = $this->getRoutes('test', new Route('/{page}.{_format}'));
-        $generator = $this->getGenerator($routes);
-
-        $this->assertSame('/app.php/index.mobile.html', $generator->generate('test', array('page' => 'index', '_format' => 'mobile.html')));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testDefaultRequirementOfVariableDisallowsSlash()
-    {
-        $routes = $this->getRoutes('test', new Route('/{page}.{_format}'));
-        $this->getGenerator($routes)->generate('test', array('page' => 'index', '_format' => 'sl/ash'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testDefaultRequirementOfVariableDisallowsNextSeparator()
-    {
-        $routes = $this->getRoutes('test', new Route('/{page}.{_format}'));
-        $this->getGenerator($routes)->generate('test', array('page' => 'do.t', '_format' => 'html'));
-    }
-
-    public function testWithHostDifferentFromContext()
-    {
-        $routes = $this->getRoutes('test', new Route('/{name}', array(), array(), array(), '{locale}.example.com'));
-
-        $this->assertEquals('//fr.example.com/app.php/Fabien', $this->getGenerator($routes)->generate('test', array('name' => 'Fabien', 'locale' => 'fr')));
-    }
-
-    public function testWithHostSameAsContext()
-    {
-        $routes = $this->getRoutes('test', new Route('/{name}', array(), array(), array(), '{locale}.example.com'));
-
-        $this->assertEquals('/app.php/Fabien', $this->getGenerator($routes, array('host' => 'fr.example.com'))->generate('test', array('name' => 'Fabien', 'locale' => 'fr')));
-    }
-
-    public function testWithHostSameAsContextAndAbsolute()
-    {
-        $routes = $this->getRoutes('test', new Route('/{name}', array(), array(), array(), '{locale}.example.com'));
-
-        $this->assertEquals('http://fr.example.com/app.php/Fabien', $this->getGenerator($routes, array('host' => 'fr.example.com'))->generate('test', array('name' => 'Fabien', 'locale' => 'fr'), true));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testUrlWithInvalidParameterInHost()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array(), array('foo' => 'bar'), array(), '{foo}.example.com'));
-        $this->getGenerator($routes)->generate('test', array('foo' => 'baz'), false);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testUrlWithInvalidParameterInHostWhenParamHasADefaultValue()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array('foo' => 'bar'), array('foo' => 'bar'), array(), '{foo}.example.com'));
-        $this->getGenerator($routes)->generate('test', array('foo' => 'baz'), false);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\InvalidParameterException
-     */
-    public function testUrlWithInvalidParameterEqualsDefaultValueInHost()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array('foo' => 'baz'), array('foo' => 'bar'), array(), '{foo}.example.com'));
-        $this->getGenerator($routes)->generate('test', array('foo' => 'baz'), false);
-    }
-
-    public function testUrlWithInvalidParameterInHostInNonStrictMode()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array(), array('foo' => 'bar'), array(), '{foo}.example.com'));
-        $generator = $this->getGenerator($routes);
-        $generator->setStrictRequirements(false);
-        $this->assertNull($generator->generate('test', array('foo' => 'baz'), false));
-    }
-
-    public function testHostIsCaseInsensitive()
-    {
-        $routes = $this->getRoutes('test', new Route('/', array(), array('locale' => 'en|de|fr'), array(), '{locale}.FooBar.com'));
-        $generator = $this->getGenerator($routes);
-        $this->assertSame('//EN.FooBar.com/app.php/', $generator->generate('test', array('locale' => 'EN'), UrlGeneratorInterface::NETWORK_PATH));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyGenerateNetworkPath()
-    {
-        $routes = $this->getRoutes('test', new Route('/{name}', array(), array('_scheme' => 'http'), array(), '{locale}.example.com'));
-
-        $this->assertSame('//fr.example.com/app.php/Fabien', $this->getGenerator($routes)->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr'), UrlGeneratorInterface::NETWORK_PATH), 'network path with different host'
-        );
-        $this->assertSame('//fr.example.com/app.php/Fabien?query=string', $this->getGenerator($routes, array('host' => 'fr.example.com'))->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr', 'query' => 'string'), UrlGeneratorInterface::NETWORK_PATH), 'network path although host same as context'
-        );
-        $this->assertSame('http://fr.example.com/app.php/Fabien', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr'), UrlGeneratorInterface::NETWORK_PATH), 'absolute URL because scheme requirement does not match context'
-        );
-        $this->assertSame('http://fr.example.com/app.php/Fabien', $this->getGenerator($routes)->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr'), UrlGeneratorInterface::ABSOLUTE_URL), 'absolute URL with same scheme because it is requested'
-        );
-    }
-
-    public function testGenerateNetworkPath()
-    {
-        $routes = $this->getRoutes('test', new Route('/{name}', array(), array(), array(), '{locale}.example.com', array('http')));
-
-        $this->assertSame('//fr.example.com/app.php/Fabien', $this->getGenerator($routes)->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr'), UrlGeneratorInterface::NETWORK_PATH), 'network path with different host'
-        );
-        $this->assertSame('//fr.example.com/app.php/Fabien?query=string', $this->getGenerator($routes, array('host' => 'fr.example.com'))->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr', 'query' => 'string'), UrlGeneratorInterface::NETWORK_PATH), 'network path although host same as context'
-        );
-        $this->assertSame('http://fr.example.com/app.php/Fabien', $this->getGenerator($routes, array('scheme' => 'https'))->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr'), UrlGeneratorInterface::NETWORK_PATH), 'absolute URL because scheme requirement does not match context'
-        );
-        $this->assertSame('http://fr.example.com/app.php/Fabien', $this->getGenerator($routes)->generate('test',
-            array('name' => 'Fabien', 'locale' => 'fr'), UrlGeneratorInterface::ABSOLUTE_URL), 'absolute URL with same scheme because it is requested'
-        );
-    }
-
-    public function testGenerateRelativePath()
-    {
-        $routes = new RouteCollection();
-        $routes->add('article', new Route('/{author}/{article}/'));
-        $routes->add('comments', new Route('/{author}/{article}/comments'));
-        $routes->add('host', new Route('/{article}', array(), array(), array(), '{author}.example.com'));
-        $routes->add('scheme', new Route('/{author}/blog', array(), array(), array(), '', array('https')));
-        $routes->add('unrelated', new Route('/about'));
-
-        $generator = $this->getGenerator($routes, array('host' => 'example.com', 'pathInfo' => '/fabien/symfony-is-great/'));
-
-        $this->assertSame('comments', $generator->generate('comments',
-            array('author' => 'fabien', 'article' => 'symfony-is-great'), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-        $this->assertSame('comments?page=2', $generator->generate('comments',
-            array('author' => 'fabien', 'article' => 'symfony-is-great', 'page' => 2), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-        $this->assertSame('../twig-is-great/', $generator->generate('article',
-            array('author' => 'fabien', 'article' => 'twig-is-great'), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-        $this->assertSame('../../bernhard/forms-are-great/', $generator->generate('article',
-            array('author' => 'bernhard', 'article' => 'forms-are-great'), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-        $this->assertSame('//bernhard.example.com/app.php/forms-are-great', $generator->generate('host',
-            array('author' => 'bernhard', 'article' => 'forms-are-great'), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-        $this->assertSame('https://example.com/app.php/bernhard/blog', $generator->generate('scheme',
-                array('author' => 'bernhard'), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-        $this->assertSame('../../about', $generator->generate('unrelated',
-            array(), UrlGeneratorInterface::RELATIVE_PATH)
-        );
-    }
-
-    /**
-     * @dataProvider provideRelativePaths
-     */
-    public function testGetRelativePath($sourcePath, $targetPath, $expectedPath)
-    {
-        $this->assertSame($expectedPath, UrlGenerator::getRelativePath($sourcePath, $targetPath));
-    }
-
-    public function provideRelativePaths()
-    {
-        return array(
-            array(
-                '/same/dir/',
-                '/same/dir/',
-                '',
-            ),
-            array(
-                '/same/file',
-                '/same/file',
-                '',
-            ),
-            array(
-                '/',
-                '/file',
-                'file',
-            ),
-            array(
-                '/',
-                '/dir/file',
-                'dir/file',
-            ),
-            array(
-                '/dir/file.html',
-                '/dir/different-file.html',
-                'different-file.html',
-            ),
-            array(
-                '/same/dir/extra-file',
-                '/same/dir/',
-                './',
-            ),
-            array(
-                '/parent/dir/',
-                '/parent/',
-                '../',
-            ),
-            array(
-                '/parent/dir/extra-file',
-                '/parent/',
-                '../',
-            ),
-            array(
-                '/a/b/',
-                '/x/y/z/',
-                '../../x/y/z/',
-            ),
-            array(
-                '/a/b/c/d/e',
-                '/a/c/d',
-                '../../../c/d',
-            ),
-            array(
-                '/a/b/c//',
-                '/a/b/c/',
-                '../',
-            ),
-            array(
-                '/a/b/c/',
-                '/a/b/c//',
-                './/',
-            ),
-            array(
-                '/root/a/b/c/',
-                '/root/x/b/c/',
-                '../../../x/b/c/',
-            ),
-            array(
-                '/a/b/c/d/',
-                '/a',
-                '../../../../a',
-            ),
-            array(
-                '/special-chars/sp%20ce/1€/mäh/e=mc²',
-                '/special-chars/sp%20ce/1€/<µ>/e=mc²',
-                '../<µ>/e=mc²',
-            ),
-            array(
-                'not-rooted',
-                'dir/file',
-                'dir/file',
-            ),
-            array(
-                '//dir/',
-                '',
-                '../../',
-            ),
-            array(
-                '/dir/',
-                '/dir/file:with-colon',
-                './file:with-colon',
-            ),
-            array(
-                '/dir/',
-                '/dir/subdir/file:with-colon',
-                'subdir/file:with-colon',
-            ),
-            array(
-                '/dir/',
-                '/dir/:subdir/',
-                './:subdir/',
-            ),
-        );
-    }
-
-    protected function getGenerator(RouteCollection $routes, array $parameters = array(), $logger = null)
-    {
-        $context = new RequestContext('/app.php');
-        foreach ($parameters as $key => $value) {
-            $method = 'set'.$key;
-            $context->$method($value);
-        }
-        $generator = new UrlGenerator($routes, $context, $logger);
-
-        return $generator;
-    }
-
-    protected function getRoutes($name, Route $route)
-    {
-        $routes = new RouteCollection();
-        $routes->add($name, $route);
-
-        return $routes;
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/AbstractAnnotationLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/AbstractAnnotationLoaderTest.php
deleted file mode 100644
index 288bf64..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/AbstractAnnotationLoaderTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-abstract class AbstractAnnotationLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function getReader()
-    {
-        return $this->getMockBuilder('Doctrine\Common\Annotations\Reader')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-    }
-
-    public function getClassLoader($reader)
-    {
-        return $this->getMockBuilder('Symfony\Component\Routing\Loader\AnnotationClassLoader')
-            ->setConstructorArgs(array($reader))
-            ->getMockForAbstractClass()
-        ;
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/AnnotationClassLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/AnnotationClassLoaderTest.php
deleted file mode 100644
index 5f8f494..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/AnnotationClassLoaderTest.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Routing\Annotation\Route;
-
-class AnnotationClassLoaderTest extends AbstractAnnotationLoaderTest
-{
-    protected $loader;
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->reader = $this->getReader();
-        $this->loader = $this->getClassLoader($this->reader);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testLoadMissingClass()
-    {
-        $this->loader->load('MissingClass');
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testLoadAbstractClass()
-    {
-        $this->loader->load('Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\AbstractClass');
-    }
-
-    /**
-     * @dataProvider provideTestSupportsChecksResource
-     */
-    public function testSupportsChecksResource($resource, $expectedSupports)
-    {
-        $this->assertSame($expectedSupports, $this->loader->supports($resource), '->supports() returns true if the resource is loadable');
-    }
-
-    public function provideTestSupportsChecksResource()
-    {
-        return array(
-            array('class', true),
-            array('\fully\qualified\class\name', true),
-            array('namespaced\class\without\leading\slash', true),
-            array('ÿClassWithLegalSpecialCharacters', true),
-            array('5', false),
-            array('foo.foo', false),
-            array(null, false),
-        );
-    }
-
-    public function testSupportsChecksTypeIfSpecified()
-    {
-        $this->assertTrue($this->loader->supports('class', 'annotation'), '->supports() checks the resource type if specified');
-        $this->assertFalse($this->loader->supports('class', 'foo'), '->supports() checks the resource type if specified');
-    }
-
-    public function getLoadTests()
-    {
-        return array(
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('name' => 'route1', 'path' => '/path'),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3'),
-            ),
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('defaults' => array('arg2' => 'foo'), 'requirements' => array('arg3' => '\w+')),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3'),
-            ),
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('options' => array('foo' => 'bar')),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3'),
-            ),
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('schemes' => array('https'), 'methods' => array('GET')),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3'),
-            ),
-            array(
-                'Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass',
-                array('condition' => 'context.getMethod() == "GET"'),
-                array('arg2' => 'defaultValue2', 'arg3' => 'defaultValue3'),
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider getLoadTests
-     */
-    public function testLoad($className, $routeData = array(), $methodArgs = array())
-    {
-        $routeData = array_replace(array(
-            'name' => 'route',
-            'path' => '/',
-            'requirements' => array(),
-            'options' => array(),
-            'defaults' => array(),
-            'schemes' => array(),
-            'methods' => array(),
-            'condition' => '',
-        ), $routeData);
-
-        $this->reader
-            ->expects($this->once())
-            ->method('getMethodAnnotations')
-            ->will($this->returnValue(array($this->getAnnotatedRoute($routeData))))
-        ;
-
-        $routeCollection = $this->loader->load($className);
-        $route = $routeCollection->get($routeData['name']);
-
-        $this->assertSame($routeData['path'], $route->getPath(), '->load preserves path annotation');
-        $this->assertCount(
-            count($routeData['requirements']),
-            array_intersect_assoc($routeData['requirements'], $route->getRequirements()),
-            '->load preserves requirements annotation'
-        );
-        $this->assertCount(
-            count($routeData['options']),
-            array_intersect_assoc($routeData['options'], $route->getOptions()),
-            '->load preserves options annotation'
-        );
-        $defaults = array_replace($methodArgs, $routeData['defaults']);
-        $this->assertCount(
-            count($defaults),
-            array_intersect_assoc($defaults, $route->getDefaults()),
-            '->load preserves defaults annotation and merges them with default arguments in method signature'
-        );
-        $this->assertEquals($routeData['schemes'], $route->getSchemes(), '->load preserves schemes annotation');
-        $this->assertEquals($routeData['methods'], $route->getMethods(), '->load preserves methods annotation');
-        $this->assertSame($routeData['condition'], $route->getCondition(), '->load preserves condition annotation');
-    }
-
-    public function testClassRouteLoad()
-    {
-        $classRouteData = array(
-            'path' => '/prefix',
-            'schemes' => array('https'),
-            'methods' => array('GET')
-        );
-
-        $methodRouteData = array(
-            'name' => 'route1',
-            'path' => '/path',
-            'schemes' => array('http'),
-            'methods' => array('POST', 'PUT')
-        );
-
-        $this->reader
-            ->expects($this->once())
-            ->method('getClassAnnotation')
-            ->will($this->returnValue($this->getAnnotatedRoute($classRouteData)))
-        ;
-        $this->reader
-            ->expects($this->once())
-            ->method('getMethodAnnotations')
-            ->will($this->returnValue(array($this->getAnnotatedRoute($methodRouteData))))
-        ;
-
-        $routeCollection = $this->loader->load('Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses\BarClass');
-        $route = $routeCollection->get($methodRouteData['name']);
-
-        $this->assertSame($classRouteData['path'].$methodRouteData['path'], $route->getPath(), '->load concatenates class and method route path');
-        $this->assertEquals(array_merge($classRouteData['schemes'], $methodRouteData['schemes']), $route->getSchemes(), '->load merges class and method route schemes');
-        $this->assertEquals(array_merge($classRouteData['methods'], $methodRouteData['methods']), $route->getMethods(), '->load merges class and method route methods');
-    }
-
-    private function getAnnotatedRoute($data)
-    {
-        return new Route($data);
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/AnnotationDirectoryLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/AnnotationDirectoryLoaderTest.php
deleted file mode 100644
index 29126ba..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/AnnotationDirectoryLoaderTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Routing\Loader\AnnotationDirectoryLoader;
-use Symfony\Component\Config\FileLocator;
-
-class AnnotationDirectoryLoaderTest extends AbstractAnnotationLoaderTest
-{
-    protected $loader;
-    protected $reader;
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->reader = $this->getReader();
-        $this->loader = new AnnotationDirectoryLoader(new FileLocator(), $this->getClassLoader($this->reader));
-    }
-
-    public function testLoad()
-    {
-        $this->reader->expects($this->exactly(2))->method('getClassAnnotation');
-
-        $this->reader
-            ->expects($this->any())
-            ->method('getMethodAnnotations')
-            ->will($this->returnValue(array()))
-        ;
-
-        $this->loader->load(__DIR__.'/../Fixtures/AnnotatedClasses');
-    }
-
-    public function testSupports()
-    {
-        $fixturesDir = __DIR__.'/../Fixtures';
-
-        $this->assertTrue($this->loader->supports($fixturesDir), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($this->loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-
-        $this->assertTrue($this->loader->supports($fixturesDir, 'annotation'), '->supports() checks the resource type if specified');
-        $this->assertFalse($this->loader->supports($fixturesDir, 'foo'), '->supports() checks the resource type if specified');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php
deleted file mode 100644
index f0a8a0e..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Routing\Loader\AnnotationFileLoader;
-use Symfony\Component\Config\FileLocator;
-
-class AnnotationFileLoaderTest extends AbstractAnnotationLoaderTest
-{
-    protected $loader;
-    protected $reader;
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->reader = $this->getReader();
-        $this->loader = new AnnotationFileLoader(new FileLocator(), $this->getClassLoader($this->reader));
-    }
-
-    public function testLoad()
-    {
-        $this->reader->expects($this->once())->method('getClassAnnotation');
-
-        $this->loader->load(__DIR__.'/../Fixtures/AnnotatedClasses/FooClass.php');
-    }
-
-    public function testSupports()
-    {
-        $fixture = __DIR__.'/../Fixtures/annotated.php';
-
-        $this->assertTrue($this->loader->supports($fixture), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($this->loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-
-        $this->assertTrue($this->loader->supports($fixture, 'annotation'), '->supports() checks the resource type if specified');
-        $this->assertFalse($this->loader->supports($fixture, 'foo'), '->supports() checks the resource type if specified');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/ClosureLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/ClosureLoaderTest.php
deleted file mode 100644
index d34fa87..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/ClosureLoaderTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Routing\Loader\ClosureLoader;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-
-class ClosureLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSupports()
-    {
-        $loader = new ClosureLoader();
-
-        $closure = function () {};
-
-        $this->assertTrue($loader->supports($closure), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-
-        $this->assertTrue($loader->supports($closure, 'closure'), '->supports() checks the resource type if specified');
-        $this->assertFalse($loader->supports($closure, 'foo'), '->supports() checks the resource type if specified');
-    }
-
-    public function testLoad()
-    {
-        $loader = new ClosureLoader();
-
-        $route = new Route('/');
-        $routes = $loader->load(function () use ($route) {
-            $routes = new RouteCollection();
-
-            $routes->add('foo', $route);
-
-            return $routes;
-        });
-
-        $this->assertEquals($route, $routes->get('foo'), '->load() loads a \Closure resource');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/PhpFileLoaderTest.php
deleted file mode 100644
index 5d66446..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/PhpFileLoaderTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Config\FileLocator;
-use Symfony\Component\Routing\Loader\PhpFileLoader;
-
-class PhpFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSupports()
-    {
-        $loader = new PhpFileLoader($this->getMock('Symfony\Component\Config\FileLocator'));
-
-        $this->assertTrue($loader->supports('foo.php'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-
-        $this->assertTrue($loader->supports('foo.php', 'php'), '->supports() checks the resource type if specified');
-        $this->assertFalse($loader->supports('foo.php', 'foo'), '->supports() checks the resource type if specified');
-    }
-
-    public function testLoadWithRoute()
-    {
-        $loader = new PhpFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('validpattern.php');
-        $routes = $routeCollection->all();
-
-        $this->assertCount(1, $routes, 'One route is loaded');
-        $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
-
-        foreach ($routes as $route) {
-            $this->assertSame('/blog/{slug}', $route->getPath());
-            $this->assertSame('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
-            $this->assertSame('{locale}.example.com', $route->getHost());
-            $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-            $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-            $this->assertEquals(array('https'), $route->getSchemes());
-        }
-    }
-
-    public function testLoadWithImport()
-    {
-        $loader = new PhpFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('validresource.php');
-        $routes = $routeCollection->all();
-
-        $this->assertCount(1, $routes, 'One route is loaded');
-        $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
-
-        foreach ($routes as $route) {
-            $this->assertSame('/prefix/blog/{slug}', $route->getPath());
-            $this->assertSame('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
-            $this->assertSame('{locale}.example.com', $route->getHost());
-            $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-            $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-            $this->assertEquals(array('https'), $route->getSchemes());
-        }
-    }
-
-    public function testThatDefiningVariableInConfigFileHasNoSideEffects()
-    {
-        $locator = new FileLocator(array(__DIR__.'/../Fixtures'));
-        $loader = new PhpFileLoader($locator);
-        $routeCollection = $loader->load('with_define_path_variable.php');
-        $resources = $routeCollection->getResources();
-        $this->assertCount(1, $resources);
-        $this->assertContainsOnly('Symfony\Component\Config\Resource\ResourceInterface', $resources);
-        $fileResource = reset($resources);
-        $this->assertSame(
-            realpath($locator->locate('with_define_path_variable.php')),
-            (string) $fileResource
-        );
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php
deleted file mode 100644
index 7806507..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Config\FileLocator;
-use Symfony\Component\Routing\Loader\XmlFileLoader;
-use Symfony\Component\Routing\Tests\Fixtures\CustomXmlFileLoader;
-
-class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSupports()
-    {
-        $loader = new XmlFileLoader($this->getMock('Symfony\Component\Config\FileLocator'));
-
-        $this->assertTrue($loader->supports('foo.xml'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-
-        $this->assertTrue($loader->supports('foo.xml', 'xml'), '->supports() checks the resource type if specified');
-        $this->assertFalse($loader->supports('foo.xml', 'foo'), '->supports() checks the resource type if specified');
-    }
-
-    public function testLoadWithRoute()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('validpattern.xml');
-        $route = $routeCollection->get('blog_show');
-
-        $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-        $this->assertSame('/blog/{slug}', $route->getPath());
-        $this->assertSame('{locale}.example.com', $route->getHost());
-        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertSame('\w+', $route->getRequirement('locale'));
-        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-        $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-        $this->assertEquals(array('https'), $route->getSchemes());
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyRouteDefinitionLoading()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('legacy_validpattern.xml');
-        $route = $routeCollection->get('blog_show_legacy');
-
-        $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-        $this->assertSame('/blog/{slug}', $route->getPath());
-        $this->assertSame('{locale}.example.com', $route->getHost());
-        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertSame('\w+', $route->getRequirement('locale'));
-        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-        $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-        $this->assertEquals(array('https'), $route->getSchemes());
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
-    }
-
-    public function testLoadWithNamespacePrefix()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('namespaceprefix.xml');
-
-        $this->assertCount(1, $routeCollection->all(), 'One route is loaded');
-
-        $route = $routeCollection->get('blog_show');
-        $this->assertSame('/blog/{slug}', $route->getPath());
-        $this->assertSame('{_locale}.example.com', $route->getHost());
-        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertSame('\w+', $route->getRequirement('slug'));
-        $this->assertSame('en|fr|de', $route->getRequirement('_locale'));
-        $this->assertNull($route->getDefault('slug'));
-        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-    }
-
-    public function testLoadWithImport()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('validresource.xml');
-        $routes = $routeCollection->all();
-
-        $this->assertCount(2, $routes, 'Two routes are loaded');
-        $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
-
-        foreach ($routes as $route) {
-            $this->assertSame('/{foo}/blog/{slug}', $route->getPath());
-            $this->assertSame('123', $route->getDefault('foo'));
-            $this->assertSame('\d+', $route->getRequirement('foo'));
-            $this->assertSame('bar', $route->getOption('foo'));
-            $this->assertSame('', $route->getHost());
-            $this->assertSame('context.getMethod() == "POST"', $route->getCondition());
-        }
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @dataProvider getPathsToInvalidFiles
-     */
-    public function testLoadThrowsExceptionWithInvalidFile($filePath)
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $loader->load($filePath);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @dataProvider getPathsToInvalidFiles
-     */
-    public function testLoadThrowsExceptionWithInvalidFileEvenWithoutSchemaValidation($filePath)
-    {
-        $loader = new CustomXmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $loader->load($filePath);
-    }
-
-    public function getPathsToInvalidFiles()
-    {
-        return array(array('nonvalidnode.xml'), array('nonvalidroute.xml'), array('nonvalid.xml'), array('missing_id.xml'), array('missing_path.xml'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Document types are not allowed.
-     */
-    public function testDocTypeIsNotAllowed()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $loader->load('withdoctype.xml');
-    }
-
-    public function testNullValues()
-    {
-        $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('null_values.xml');
-        $route = $routeCollection->get('blog_show');
-
-        $this->assertTrue($route->hasDefault('foo'));
-        $this->assertNull($route->getDefault('foo'));
-        $this->assertTrue($route->hasDefault('bar'));
-        $this->assertNull($route->getDefault('bar'));
-        $this->assertEquals('foo', $route->getDefault('foobar'));
-        $this->assertEquals('bar', $route->getDefault('baz'));
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/routing/Tests/Loader/YamlFileLoaderTest.php
deleted file mode 100644
index 17e07da..0000000
--- a/core/vendor/symfony/routing/Tests/Loader/YamlFileLoaderTest.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Loader;
-
-use Symfony\Component\Config\FileLocator;
-use Symfony\Component\Routing\Loader\YamlFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSupports()
-    {
-        $loader = new YamlFileLoader($this->getMock('Symfony\Component\Config\FileLocator'));
-
-        $this->assertTrue($loader->supports('foo.yml'), '->supports() returns true if the resource is loadable');
-        $this->assertTrue($loader->supports('foo.yaml'), '->supports() returns true if the resource is loadable');
-        $this->assertFalse($loader->supports('foo.foo'), '->supports() returns true if the resource is loadable');
-
-        $this->assertTrue($loader->supports('foo.yml', 'yaml'), '->supports() checks the resource type if specified');
-        $this->assertTrue($loader->supports('foo.yaml', 'yaml'), '->supports() checks the resource type if specified');
-        $this->assertFalse($loader->supports('foo.yml', 'foo'), '->supports() checks the resource type if specified');
-    }
-
-    public function testLoadDoesNothingIfEmpty()
-    {
-        $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $collection = $loader->load('empty.yml');
-
-        $this->assertEquals(array(), $collection->all());
-        $this->assertEquals(array(new FileResource(realpath(__DIR__.'/../Fixtures/empty.yml'))), $collection->getResources());
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @dataProvider getPathsToInvalidFiles
-     */
-    public function testLoadThrowsExceptionWithInvalidFile($filePath)
-    {
-        $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $loader->load($filePath);
-    }
-
-    public function getPathsToInvalidFiles()
-    {
-        return array(array('nonvalid.yml'), array('nonvalid2.yml'), array('incomplete.yml'), array('nonvalidkeys.yml'), array('nonesense_resource_plus_path.yml'), array('nonesense_type_without_resource.yml'));
-    }
-
-    public function testLoadSpecialRouteName()
-    {
-        $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('special_route_name.yml');
-        $route = $routeCollection->get('#$péß^a|');
-
-        $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-        $this->assertSame('/true', $route->getPath());
-    }
-
-    public function testLoadWithRoute()
-    {
-        $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('validpattern.yml');
-        $route = $routeCollection->get('blog_show');
-
-        $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-        $this->assertSame('/blog/{slug}', $route->getPath());
-        $this->assertSame('{locale}.example.com', $route->getHost());
-        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertSame('\w+', $route->getRequirement('locale'));
-        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-        $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-        $this->assertEquals(array('https'), $route->getSchemes());
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyRouteDefinitionLoading()
-    {
-        $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('legacy_validpattern.yml');
-        $route = $routeCollection->get('blog_show_legacy');
-
-        $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
-        $this->assertSame('/blog/{slug}', $route->getPath());
-        $this->assertSame('{locale}.example.com', $route->getHost());
-        $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller'));
-        $this->assertSame('\w+', $route->getRequirement('locale'));
-        $this->assertSame('RouteCompiler', $route->getOption('compiler_class'));
-        $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods());
-        $this->assertEquals(array('https'), $route->getSchemes());
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
-    }
-
-    public function testLoadWithResource()
-    {
-        $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures')));
-        $routeCollection = $loader->load('validresource.yml');
-        $routes = $routeCollection->all();
-
-        $this->assertCount(2, $routes, 'Two routes are loaded');
-        $this->assertContainsOnly('Symfony\Component\Routing\Route', $routes);
-
-        foreach ($routes as $route) {
-            $this->assertSame('/{foo}/blog/{slug}', $route->getPath());
-            $this->assertSame('123', $route->getDefault('foo'));
-            $this->assertSame('\d+', $route->getRequirement('foo'));
-            $this->assertSame('bar', $route->getOption('foo'));
-            $this->assertSame('', $route->getHost());
-            $this->assertSame('context.getMethod() == "POST"', $route->getCondition());
-        }
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/Dumper/DumperCollectionTest.php b/core/vendor/symfony/routing/Tests/Matcher/Dumper/DumperCollectionTest.php
deleted file mode 100644
index 7b6001c..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/Dumper/DumperCollectionTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher\Dumper;
-
-use Symfony\Component\Routing\Matcher\Dumper\DumperCollection;
-
-class DumperCollectionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetRoot()
-    {
-        $a = new DumperCollection();
-
-        $b = new DumperCollection();
-        $a->add($b);
-
-        $c = new DumperCollection();
-        $b->add($c);
-
-        $d = new DumperCollection();
-        $c->add($d);
-
-        $this->assertSame($a, $c->getRoot());
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php b/core/vendor/symfony/routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php
deleted file mode 100644
index de01a75..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/Dumper/DumperPrefixCollectionTest.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher\Dumper;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\Matcher\Dumper\DumperPrefixCollection;
-use Symfony\Component\Routing\Matcher\Dumper\DumperRoute;
-use Symfony\Component\Routing\Matcher\Dumper\DumperCollection;
-
-class DumperPrefixCollectionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAddPrefixRoute()
-    {
-        $coll = new DumperPrefixCollection();
-        $coll->setPrefix('');
-
-        $route = new DumperRoute('bar', new Route('/foo/bar'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('bar2', new Route('/foo/bar'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('qux', new Route('/foo/qux'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('bar3', new Route('/foo/bar'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('bar4', new Route(''));
-        $result = $coll->addPrefixRoute($route);
-
-        $expect = <<<'EOF'
-            |-coll /
-            | |-coll /f
-            | | |-coll /fo
-            | | | |-coll /foo
-            | | | | |-coll /foo/
-            | | | | | |-coll /foo/b
-            | | | | | | |-coll /foo/ba
-            | | | | | | | |-coll /foo/bar
-            | | | | | | | | |-route bar /foo/bar
-            | | | | | | | | |-route bar2 /foo/bar
-            | | | | | |-coll /foo/q
-            | | | | | | |-coll /foo/qu
-            | | | | | | | |-coll /foo/qux
-            | | | | | | | | |-route qux /foo/qux
-            | | | | | |-coll /foo/b
-            | | | | | | |-coll /foo/ba
-            | | | | | | | |-coll /foo/bar
-            | | | | | | | | |-route bar3 /foo/bar
-            | |-route bar4 /
-
-EOF;
-
-        $this->assertSame($expect, $this->collectionToString($result->getRoot(), '            '));
-    }
-
-    public function testMergeSlashNodes()
-    {
-        $coll = new DumperPrefixCollection();
-        $coll->setPrefix('');
-
-        $route = new DumperRoute('bar', new Route('/foo/bar'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('bar2', new Route('/foo/bar'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('qux', new Route('/foo/qux'));
-        $coll = $coll->addPrefixRoute($route);
-
-        $route = new DumperRoute('bar3', new Route('/foo/bar'));
-        $result = $coll->addPrefixRoute($route);
-
-        $result->getRoot()->mergeSlashNodes();
-
-        $expect = <<<'EOF'
-            |-coll /f
-            | |-coll /fo
-            | | |-coll /foo
-            | | | |-coll /foo/b
-            | | | | |-coll /foo/ba
-            | | | | | |-coll /foo/bar
-            | | | | | | |-route bar /foo/bar
-            | | | | | | |-route bar2 /foo/bar
-            | | | |-coll /foo/q
-            | | | | |-coll /foo/qu
-            | | | | | |-coll /foo/qux
-            | | | | | | |-route qux /foo/qux
-            | | | |-coll /foo/b
-            | | | | |-coll /foo/ba
-            | | | | | |-coll /foo/bar
-            | | | | | | |-route bar3 /foo/bar
-
-EOF;
-
-        $this->assertSame($expect, $this->collectionToString($result->getRoot(), '            '));
-    }
-
-    private function collectionToString(DumperCollection $collection, $prefix)
-    {
-        $string = '';
-        foreach ($collection as $route) {
-            if ($route instanceof DumperCollection) {
-                $string .= sprintf("%s|-coll %s\n", $prefix, $route->getPrefix());
-                $string .= $this->collectionToString($route, $prefix.'| ');
-            } else {
-                $string .= sprintf("%s|-route %s %s\n", $prefix, $route->getName(), $route->getRoute()->getPath());
-            }
-        }
-
-        return $string;
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/Dumper/LegacyApacheMatcherDumperTest.php b/core/vendor/symfony/routing/Tests/Matcher/Dumper/LegacyApacheMatcherDumperTest.php
deleted file mode 100644
index 4bf513e..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/Dumper/LegacyApacheMatcherDumperTest.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher\Dumper;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Matcher\Dumper\ApacheMatcherDumper;
-
-/**
- * @group legacy
- */
-class LegacyApacheMatcherDumperTest extends \PHPUnit_Framework_TestCase
-{
-    protected static $fixturesPath;
-
-    public static function setUpBeforeClass()
-    {
-        self::$fixturesPath = realpath(__DIR__.'/../../Fixtures/');
-    }
-
-    public function testDump()
-    {
-        $dumper = new ApacheMatcherDumper($this->getRouteCollection());
-
-        $this->assertStringEqualsFile(self::$fixturesPath.'/dumper/url_matcher1.apache', $dumper->dump(), '->dump() dumps basic routes to the correct apache format.');
-    }
-
-    /**
-     * @dataProvider provideEscapeFixtures
-     */
-    public function testEscapePattern($src, $dest, $char, $with, $message)
-    {
-        $r = new \ReflectionMethod(new ApacheMatcherDumper($this->getRouteCollection()), 'escape');
-        $r->setAccessible(true);
-        $this->assertEquals($dest, $r->invoke(null, $src, $char, $with), $message);
-    }
-
-    public function provideEscapeFixtures()
-    {
-        return array(
-            array('foo', 'foo', ' ', '-', 'Preserve string that should not be escaped'),
-            array('fo-o', 'fo-o', ' ', '-', 'Preserve string that should not be escaped'),
-            array('fo o', 'fo- o', ' ', '-', 'Escape special characters'),
-            array('fo-- o', 'fo--- o', ' ', '-', 'Escape special characters'),
-            array('fo- o', 'fo- o', ' ', '-', 'Do not escape already escaped string'),
-        );
-    }
-
-    public function testEscapeScriptName()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-        $dumper = new ApacheMatcherDumper($collection);
-        $this->assertStringEqualsFile(self::$fixturesPath.'/dumper/url_matcher2.apache', $dumper->dump(array('script_name' => 'ap p_d\ ev.php')));
-    }
-
-    private function getRouteCollection()
-    {
-        $collection = new RouteCollection();
-
-        // defaults and requirements
-        $collection->add('foo', new Route(
-            '/foo/{bar}',
-            array('def' => 'test'),
-            array('bar' => 'baz|symfony')
-        ));
-        // defaults parameters in pattern
-        $collection->add('foobar', new Route(
-            '/foo/{bar}',
-            array('bar' => 'toto')
-        ));
-        // method requirement
-        $collection->add('bar', new Route(
-            '/bar/{foo}',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('GET', 'head')
-        ));
-        // method requirement (again)
-        $collection->add('baragain', new Route(
-            '/baragain/{foo}',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('get', 'post')
-        ));
-        // simple
-        $collection->add('baz', new Route(
-            '/test/baz'
-        ));
-        // simple with extension
-        $collection->add('baz2', new Route(
-            '/test/baz.html'
-        ));
-        // trailing slash
-        $collection->add('baz3', new Route(
-            '/test/baz3/'
-        ));
-        // trailing slash with variable
-        $collection->add('baz4', new Route(
-            '/test/{foo}/'
-        ));
-        // trailing slash and safe method
-        $collection->add('baz5', new Route(
-            '/test/{foo}/',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('GET')
-        ));
-        // trailing slash and unsafe method
-        $collection->add('baz5unsafe', new Route(
-            '/testunsafe/{foo}/',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('post')
-        ));
-        // complex
-        $collection->add('baz6', new Route(
-            '/test/baz',
-            array('foo' => 'bar baz')
-        ));
-        // space in path
-        $collection->add('baz7', new Route(
-            '/te st/baz'
-        ));
-        // space preceded with \ in path
-        $collection->add('baz8', new Route(
-            '/te\\ st/baz'
-        ));
-        // space preceded with \ in requirement
-        $collection->add('baz9', new Route(
-            '/test/{baz}',
-            array(),
-            array(
-                'baz' => 'te\\\\ st',
-            )
-        ));
-
-        $collection1 = new RouteCollection();
-
-        $route1 = new Route('/route1', array(), array(), array(), 'a.example.com');
-        $collection1->add('route1', $route1);
-
-        $collection2 = new RouteCollection();
-
-        $route2 = new Route('/route2', array(), array(), array(), 'a.example.com');
-        $collection2->add('route2', $route2);
-
-        $route3 = new Route('/route3', array(), array(), array(), 'b.example.com');
-        $collection2->add('route3', $route3);
-
-        $collection2->addPrefix('/c2');
-        $collection1->addCollection($collection2);
-
-        $route4 = new Route('/route4', array(), array(), array(), 'a.example.com');
-        $collection1->add('route4', $route4);
-
-        $route5 = new Route('/route5', array(), array(), array(), 'c.example.com');
-        $collection1->add('route5', $route5);
-
-        $route6 = new Route('/route6', array(), array(), array(), null);
-        $collection1->add('route6', $route6);
-
-        $collection->addCollection($collection1);
-
-        // host and variables
-
-        $collection1 = new RouteCollection();
-
-        $route11 = new Route('/route11', array(), array(), array(), '{var1}.example.com');
-        $collection1->add('route11', $route11);
-
-        $route12 = new Route('/route12', array('var1' => 'val'), array(), array(), '{var1}.example.com');
-        $collection1->add('route12', $route12);
-
-        $route13 = new Route('/route13/{name}', array(), array(), array(), '{var1}.example.com');
-        $collection1->add('route13', $route13);
-
-        $route14 = new Route('/route14/{name}', array('var1' => 'val'), array(), array(), '{var1}.example.com');
-        $collection1->add('route14', $route14);
-
-        $route15 = new Route('/route15/{name}', array(), array(), array(), 'c.example.com');
-        $collection1->add('route15', $route15);
-
-        $route16 = new Route('/route16/{name}', array('var1' => 'val'), array(), array(), null);
-        $collection1->add('route16', $route16);
-
-        $route17 = new Route('/route17', array(), array(), array(), null);
-        $collection1->add('route17', $route17);
-
-        $collection->addCollection($collection1);
-
-        return $collection;
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php b/core/vendor/symfony/routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
deleted file mode 100644
index 2571877..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher\Dumper;
-
-use Symfony\Component\Routing\Matcher\Dumper\PhpMatcherDumper;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-
-class PhpMatcherDumperTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \LogicException
-     */
-    public function testDumpWhenSchemeIsUsedWithoutAProperDumper()
-    {
-        $collection = new RouteCollection();
-        $collection->add('secure', new Route(
-            '/secure',
-            array(),
-            array(),
-            array(),
-            '',
-            array('https')
-        ));
-        $dumper = new PhpMatcherDumper($collection);
-        $dumper->dump();
-    }
-
-    /**
-     * @dataProvider getRouteCollections
-     */
-    public function testDump(RouteCollection $collection, $fixture, $options = array())
-    {
-        $basePath = __DIR__.'/../../Fixtures/dumper/';
-
-        $dumper = new PhpMatcherDumper($collection);
-        $this->assertStringEqualsFile($basePath.$fixture, $dumper->dump($options), '->dump() correctly dumps routes as optimized PHP code.');
-    }
-
-    public function getRouteCollections()
-    {
-        /* test case 1 */
-
-        $collection = new RouteCollection();
-
-        $collection->add('overridden', new Route('/overridden'));
-
-        // defaults and requirements
-        $collection->add('foo', new Route(
-            '/foo/{bar}',
-            array('def' => 'test'),
-            array('bar' => 'baz|symfony')
-        ));
-        // method requirement
-        $collection->add('bar', new Route(
-            '/bar/{foo}',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('GET', 'head')
-        ));
-        // GET method requirement automatically adds HEAD as valid
-        $collection->add('barhead', new Route(
-            '/barhead/{foo}',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('GET')
-        ));
-        // simple
-        $collection->add('baz', new Route(
-            '/test/baz'
-        ));
-        // simple with extension
-        $collection->add('baz2', new Route(
-            '/test/baz.html'
-        ));
-        // trailing slash
-        $collection->add('baz3', new Route(
-            '/test/baz3/'
-        ));
-        // trailing slash with variable
-        $collection->add('baz4', new Route(
-            '/test/{foo}/'
-        ));
-        // trailing slash and method
-        $collection->add('baz5', new Route(
-            '/test/{foo}/',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('post')
-        ));
-        // complex name
-        $collection->add('baz.baz6', new Route(
-            '/test/{foo}/',
-            array(),
-            array(),
-            array(),
-            '',
-            array(),
-            array('put')
-        ));
-        // defaults without variable
-        $collection->add('foofoo', new Route(
-            '/foofoo',
-            array('def' => 'test')
-        ));
-        // pattern with quotes
-        $collection->add('quoter', new Route(
-            '/{quoter}',
-            array(),
-            array('quoter' => '[\']+')
-        ));
-        // space in pattern
-        $collection->add('space', new Route(
-            '/spa ce'
-        ));
-
-        // prefixes
-        $collection1 = new RouteCollection();
-        $collection1->add('overridden', new Route('/overridden1'));
-        $collection1->add('foo1', new Route('/{foo}'));
-        $collection1->add('bar1', new Route('/{bar}'));
-        $collection1->addPrefix('/b\'b');
-        $collection2 = new RouteCollection();
-        $collection2->addCollection($collection1);
-        $collection2->add('overridden', new Route('/{var}', array(), array('var' => '.*')));
-        $collection1 = new RouteCollection();
-        $collection1->add('foo2', new Route('/{foo1}'));
-        $collection1->add('bar2', new Route('/{bar1}'));
-        $collection1->addPrefix('/b\'b');
-        $collection2->addCollection($collection1);
-        $collection2->addPrefix('/a');
-        $collection->addCollection($collection2);
-
-        // overridden through addCollection() and multiple sub-collections with no own prefix
-        $collection1 = new RouteCollection();
-        $collection1->add('overridden2', new Route('/old'));
-        $collection1->add('helloWorld', new Route('/hello/{who}', array('who' => 'World!')));
-        $collection2 = new RouteCollection();
-        $collection3 = new RouteCollection();
-        $collection3->add('overridden2', new Route('/new'));
-        $collection3->add('hey', new Route('/hey/'));
-        $collection2->addCollection($collection3);
-        $collection1->addCollection($collection2);
-        $collection1->addPrefix('/multi');
-        $collection->addCollection($collection1);
-
-        // "dynamic" prefix
-        $collection1 = new RouteCollection();
-        $collection1->add('foo3', new Route('/{foo}'));
-        $collection1->add('bar3', new Route('/{bar}'));
-        $collection1->addPrefix('/b');
-        $collection1->addPrefix('{_locale}');
-        $collection->addCollection($collection1);
-
-        // route between collections
-        $collection->add('ababa', new Route('/ababa'));
-
-        // collection with static prefix but only one route
-        $collection1 = new RouteCollection();
-        $collection1->add('foo4', new Route('/{foo}'));
-        $collection1->addPrefix('/aba');
-        $collection->addCollection($collection1);
-
-        // prefix and host
-
-        $collection1 = new RouteCollection();
-
-        $route1 = new Route('/route1', array(), array(), array(), 'a.example.com');
-        $collection1->add('route1', $route1);
-
-        $collection2 = new RouteCollection();
-
-        $route2 = new Route('/c2/route2', array(), array(), array(), 'a.example.com');
-        $collection1->add('route2', $route2);
-
-        $route3 = new Route('/c2/route3', array(), array(), array(), 'b.example.com');
-        $collection1->add('route3', $route3);
-
-        $route4 = new Route('/route4', array(), array(), array(), 'a.example.com');
-        $collection1->add('route4', $route4);
-
-        $route5 = new Route('/route5', array(), array(), array(), 'c.example.com');
-        $collection1->add('route5', $route5);
-
-        $route6 = new Route('/route6', array(), array(), array(), null);
-        $collection1->add('route6', $route6);
-
-        $collection->addCollection($collection1);
-
-        // host and variables
-
-        $collection1 = new RouteCollection();
-
-        $route11 = new Route('/route11', array(), array(), array(), '{var1}.example.com');
-        $collection1->add('route11', $route11);
-
-        $route12 = new Route('/route12', array('var1' => 'val'), array(), array(), '{var1}.example.com');
-        $collection1->add('route12', $route12);
-
-        $route13 = new Route('/route13/{name}', array(), array(), array(), '{var1}.example.com');
-        $collection1->add('route13', $route13);
-
-        $route14 = new Route('/route14/{name}', array('var1' => 'val'), array(), array(), '{var1}.example.com');
-        $collection1->add('route14', $route14);
-
-        $route15 = new Route('/route15/{name}', array(), array(), array(), 'c.example.com');
-        $collection1->add('route15', $route15);
-
-        $route16 = new Route('/route16/{name}', array('var1' => 'val'), array(), array(), null);
-        $collection1->add('route16', $route16);
-
-        $route17 = new Route('/route17', array(), array(), array(), null);
-        $collection1->add('route17', $route17);
-
-        $collection->addCollection($collection1);
-
-        // multiple sub-collections with a single route and a prefix each
-        $collection1 = new RouteCollection();
-        $collection1->add('a', new Route('/a...'));
-        $collection2 = new RouteCollection();
-        $collection2->add('b', new Route('/{var}'));
-        $collection3 = new RouteCollection();
-        $collection3->add('c', new Route('/{var}'));
-        $collection3->addPrefix('/c');
-        $collection2->addCollection($collection3);
-        $collection2->addPrefix('/b');
-        $collection1->addCollection($collection2);
-        $collection1->addPrefix('/a');
-        $collection->addCollection($collection1);
-
-        /* test case 2 */
-
-        $redirectCollection = clone $collection;
-
-        // force HTTPS redirection
-        $redirectCollection->add('secure', new Route(
-            '/secure',
-            array(),
-            array(),
-            array(),
-            '',
-            array('https')
-        ));
-
-        // force HTTP redirection
-        $redirectCollection->add('nonsecure', new Route(
-            '/nonsecure',
-            array(),
-            array(),
-            array(),
-            '',
-            array('http')
-        ));
-
-        /* test case 3 */
-
-        $rootprefixCollection = new RouteCollection();
-        $rootprefixCollection->add('static', new Route('/test'));
-        $rootprefixCollection->add('dynamic', new Route('/{var}'));
-        $rootprefixCollection->addPrefix('rootprefix');
-        $route = new Route('/with-condition');
-        $route->setCondition('context.getMethod() == "GET"');
-        $rootprefixCollection->add('with-condition', $route);
-
-        return array(
-           array($collection, 'url_matcher1.php', array()),
-           array($redirectCollection, 'url_matcher2.php', array('base_class' => 'Symfony\Component\Routing\Tests\Fixtures\RedirectableUrlMatcher')),
-           array($rootprefixCollection, 'url_matcher3.php', array()),
-        );
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php b/core/vendor/symfony/routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php
deleted file mode 100644
index 931f910..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Matcher\ApacheUrlMatcher;
-
-/**
- * @group legacy
- */
-class LegacyApacheUrlMatcherTest extends \PHPUnit_Framework_TestCase
-{
-    protected $server;
-
-    protected function setUp()
-    {
-        $this->server = $_SERVER;
-    }
-
-    protected function tearDown()
-    {
-        $_SERVER = $this->server;
-    }
-
-    /**
-     * @dataProvider getMatchData
-     */
-    public function testMatch($name, $pathinfo, $server, $expect)
-    {
-        $collection = new RouteCollection();
-        $context = new RequestContext();
-        $matcher = new ApacheUrlMatcher($collection, $context);
-
-        $_SERVER = $server;
-
-        $result = $matcher->match($pathinfo);
-        $this->assertSame(var_export($expect, true), var_export($result, true));
-    }
-
-    public function getMatchData()
-    {
-        return array(
-            array(
-                'Simple route',
-                '/hello/world',
-                array(
-                    '_ROUTING_route' => 'hello',
-                    '_ROUTING_param__controller' => 'AcmeBundle:Default:index',
-                    '_ROUTING_param_name' => 'world',
-                ),
-                array(
-                    '_controller' => 'AcmeBundle:Default:index',
-                    'name' => 'world',
-                    '_route' => 'hello',
-                ),
-            ),
-            array(
-                'Route with params and defaults',
-                '/hello/hugo',
-                array(
-                    '_ROUTING_route' => 'hello',
-                    '_ROUTING_param__controller' => 'AcmeBundle:Default:index',
-                    '_ROUTING_param_name' => 'hugo',
-                    '_ROUTING_default_name' => 'world',
-                ),
-                array(
-                    'name' => 'hugo',
-                    '_controller' => 'AcmeBundle:Default:index',
-                    '_route' => 'hello',
-                ),
-            ),
-            array(
-                'Route with defaults only',
-                '/hello',
-                array(
-                    '_ROUTING_route' => 'hello',
-                    '_ROUTING_param__controller' => 'AcmeBundle:Default:index',
-                    '_ROUTING_default_name' => 'world',
-                ),
-                array(
-                    'name' => 'world',
-                    '_controller' => 'AcmeBundle:Default:index',
-                    '_route' => 'hello',
-                ),
-            ),
-            array(
-                'Redirect with many ignored attributes',
-                '/legacy/{cat1}/{cat2}/{id}.html',
-                array(
-                    '_ROUTING_route' => 'product_view',
-                    '_ROUTING_param__controller' => 'FrameworkBundle:Redirect:redirect',
-                    '_ROUTING_default_ignoreAttributes[0]' => 'attr_a',
-                    '_ROUTING_default_ignoreAttributes[1]' => 'attr_b',
-                ),
-                array(
-                    'ignoreAttributes' => array('attr_a', 'attr_b'),
-                    '_controller' => 'FrameworkBundle:Redirect:redirect',
-                    '_route' => 'product_view',
-                ),
-            ),
-            array(
-                'REDIRECT_ envs',
-                '/hello/world',
-                array(
-                    'REDIRECT__ROUTING_route' => 'hello',
-                    'REDIRECT__ROUTING_param__controller' => 'AcmeBundle:Default:index',
-                    'REDIRECT__ROUTING_param_name' => 'world',
-                ),
-                array(
-                    '_controller' => 'AcmeBundle:Default:index',
-                    'name' => 'world',
-                    '_route' => 'hello',
-                ),
-            ),
-            array(
-                'REDIRECT_REDIRECT_ envs',
-                '/hello/world',
-                array(
-                    'REDIRECT_REDIRECT__ROUTING_route' => 'hello',
-                    'REDIRECT_REDIRECT__ROUTING_param__controller' => 'AcmeBundle:Default:index',
-                    'REDIRECT_REDIRECT__ROUTING_param_name' => 'world',
-                ),
-                array(
-                    '_controller' => 'AcmeBundle:Default:index',
-                    'name' => 'world',
-                    '_route' => 'hello',
-                ),
-            ),
-            array(
-                'REDIRECT_REDIRECT_ envs',
-                '/hello/world',
-                array(
-                    'REDIRECT_REDIRECT__ROUTING_route' => 'hello',
-                    'REDIRECT_REDIRECT__ROUTING_param__controller' => 'AcmeBundle:Default:index',
-                    'REDIRECT_REDIRECT__ROUTING_param_name' => 'world',
-                ),
-                array(
-                    '_controller' => 'AcmeBundle:Default:index',
-                    'name' => 'world',
-                    '_route' => 'hello',
-                ),
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/RedirectableUrlMatcherTest.php b/core/vendor/symfony/routing/Tests/Matcher/RedirectableUrlMatcherTest.php
deleted file mode 100644
index b6c5a3e..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/RedirectableUrlMatcherTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RequestContext;
-
-class RedirectableUrlMatcherTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRedirectWhenNoSlash()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/'));
-
-        $matcher = $this->getMockForAbstractClass('Symfony\Component\Routing\Matcher\RedirectableUrlMatcher', array($coll, new RequestContext()));
-        $matcher->expects($this->once())->method('redirect');
-        $matcher->match('/foo');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testRedirectWhenNoSlashForNonSafeMethod()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/'));
-
-        $context = new RequestContext();
-        $context->setMethod('POST');
-        $matcher = $this->getMockForAbstractClass('Symfony\Component\Routing\Matcher\RedirectableUrlMatcher', array($coll, $context));
-        $matcher->match('/foo');
-    }
-
-    public function testSchemeRedirectRedirectsToFirstScheme()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array(), array(), '', array('FTP', 'HTTPS')));
-
-        $matcher = $this->getMockForAbstractClass('Symfony\Component\Routing\Matcher\RedirectableUrlMatcher', array($coll, new RequestContext()));
-        $matcher
-            ->expects($this->once())
-            ->method('redirect')
-            ->with('/foo', 'foo', 'ftp')
-            ->will($this->returnValue(array('_route' => 'foo')))
-        ;
-        $matcher->match('/foo');
-    }
-
-    public function testNoSchemaRedirectIfOnOfMultipleSchemesMatches()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array(), array(), '', array('https', 'http')));
-
-        $matcher = $this->getMockForAbstractClass('Symfony\Component\Routing\Matcher\RedirectableUrlMatcher', array($coll, new RequestContext()));
-        $matcher
-            ->expects($this->never())
-            ->method('redirect')
-        ;
-        $matcher->match('/foo');
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/TraceableUrlMatcherTest.php b/core/vendor/symfony/routing/Tests/Matcher/TraceableUrlMatcherTest.php
deleted file mode 100644
index 20b30d7..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/TraceableUrlMatcherTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher;
-
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RequestContext;
-use Symfony\Component\Routing\Matcher\TraceableUrlMatcher;
-
-class TraceableUrlMatcherTest extends \PHPUnit_Framework_TestCase
-{
-    public function test()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array(), array(), '', array(), array('POST')));
-        $coll->add('bar', new Route('/bar/{id}', array(), array('id' => '\d+')));
-        $coll->add('bar1', new Route('/bar/{name}', array(), array('id' => '\w+'), array(), '', array(), array('POST')));
-        $coll->add('bar2', new Route('/foo', array(), array(), array(), 'baz'));
-        $coll->add('bar3', new Route('/foo1', array(), array(), array(), 'baz'));
-        $coll->add('bar4', new Route('/foo2', array(), array(), array(), 'baz', array(), array(), 'context.getMethod() == "GET"'));
-
-        $context = new RequestContext();
-        $context->setHost('baz');
-
-        $matcher = new TraceableUrlMatcher($coll, $context);
-        $traces = $matcher->getTraces('/babar');
-        $this->assertSame(array(0, 0, 0, 0, 0, 0), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/foo');
-        $this->assertSame(array(1, 0, 0, 2), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/bar/12');
-        $this->assertSame(array(0, 2), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/bar/dd');
-        $this->assertSame(array(0, 1, 1, 0, 0, 0), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/foo1');
-        $this->assertSame(array(0, 0, 0, 0, 2), $this->getLevels($traces));
-
-        $context->setMethod('POST');
-        $traces = $matcher->getTraces('/foo');
-        $this->assertSame(array(2), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/bar/dd');
-        $this->assertSame(array(0, 1, 2), $this->getLevels($traces));
-
-        $traces = $matcher->getTraces('/foo2');
-        $this->assertSame(array(0, 0, 0, 0, 0, 1), $this->getLevels($traces));
-    }
-
-    public function testMatchRouteOnMultipleHosts()
-    {
-        $routes = new RouteCollection();
-        $routes->add('first', new Route(
-            '/mypath/',
-            array('_controller' => 'MainBundle:Info:first'),
-            array(),
-            array(),
-            'some.example.com'
-        ));
-
-        $routes->add('second', new Route(
-            '/mypath/',
-            array('_controller' => 'MainBundle:Info:second'),
-            array(),
-            array(),
-            'another.example.com'
-        ));
-
-        $context = new RequestContext();
-        $context->setHost('baz');
-
-        $matcher = new TraceableUrlMatcher($routes, $context);
-
-        $traces = $matcher->getTraces('/mypath/');
-        $this->assertSame(
-            array(TraceableUrlMatcher::ROUTE_ALMOST_MATCHES, TraceableUrlMatcher::ROUTE_ALMOST_MATCHES),
-            $this->getLevels($traces)
-        );
-    }
-
-    public function getLevels($traces)
-    {
-        $levels = array();
-        foreach ($traces as $trace) {
-            $levels[] = $trace['level'];
-        }
-
-        return $levels;
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/Matcher/UrlMatcherTest.php b/core/vendor/symfony/routing/Tests/Matcher/UrlMatcherTest.php
deleted file mode 100644
index bf82fb7..0000000
--- a/core/vendor/symfony/routing/Tests/Matcher/UrlMatcherTest.php
+++ /dev/null
@@ -1,419 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests\Matcher;
-
-use Symfony\Component\Routing\Exception\MethodNotAllowedException;
-use Symfony\Component\Routing\Exception\ResourceNotFoundException;
-use Symfony\Component\Routing\Matcher\UrlMatcher;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\RequestContext;
-
-class UrlMatcherTest extends \PHPUnit_Framework_TestCase
-{
-    public function testNoMethodSoAllowed()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $this->assertInternalType('array', $matcher->match('/foo'));
-    }
-
-    public function testMethodNotAllowed()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array(), array(), '', array(), array('post')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        try {
-            $matcher->match('/foo');
-            $this->fail();
-        } catch (MethodNotAllowedException $e) {
-            $this->assertEquals(array('POST'), $e->getAllowedMethods());
-        }
-    }
-
-    public function testHeadAllowedWhenRequirementContainsGet()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array(), array(), '', array(), array('get')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext('', 'head'));
-        $this->assertInternalType('array', $matcher->match('/foo'));
-    }
-
-    public function testMethodNotAllowedAggregatesAllowedMethods()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo1', new Route('/foo', array(), array(), array(), '', array(), array('post')));
-        $coll->add('foo2', new Route('/foo', array(), array(), array(), '', array(), array('put', 'delete')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        try {
-            $matcher->match('/foo');
-            $this->fail();
-        } catch (MethodNotAllowedException $e) {
-            $this->assertEquals(array('POST', 'PUT', 'DELETE'), $e->getAllowedMethods());
-        }
-    }
-
-    public function testMatch()
-    {
-        // test the patterns are matched and parameters are returned
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo/{bar}'));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        try {
-            $matcher->match('/no-match');
-            $this->fail();
-        } catch (ResourceNotFoundException $e) {
-        }
-        $this->assertEquals(array('_route' => 'foo', 'bar' => 'baz'), $matcher->match('/foo/baz'));
-
-        // test that defaults are merged
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo/{bar}', array('def' => 'test')));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'foo', 'bar' => 'baz', 'def' => 'test'), $matcher->match('/foo/baz'));
-
-        // test that route "method" is ignored if no method is given in the context
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo', array(), array(), array(), '', array(), array('get', 'head')));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertInternalType('array', $matcher->match('/foo'));
-
-        // route does not match with POST method context
-        $matcher = new UrlMatcher($collection, new RequestContext('', 'post'));
-        try {
-            $matcher->match('/foo');
-            $this->fail();
-        } catch (MethodNotAllowedException $e) {
-        }
-
-        // route does match with GET or HEAD method context
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertInternalType('array', $matcher->match('/foo'));
-        $matcher = new UrlMatcher($collection, new RequestContext('', 'head'));
-        $this->assertInternalType('array', $matcher->match('/foo'));
-
-        // route with an optional variable as the first segment
-        $collection = new RouteCollection();
-        $collection->add('bar', new Route('/{bar}/foo', array('bar' => 'bar'), array('bar' => 'foo|bar')));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'bar', 'bar' => 'bar'), $matcher->match('/bar/foo'));
-        $this->assertEquals(array('_route' => 'bar', 'bar' => 'foo'), $matcher->match('/foo/foo'));
-
-        $collection = new RouteCollection();
-        $collection->add('bar', new Route('/{bar}', array('bar' => 'bar'), array('bar' => 'foo|bar')));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'bar', 'bar' => 'foo'), $matcher->match('/foo'));
-        $this->assertEquals(array('_route' => 'bar', 'bar' => 'bar'), $matcher->match('/'));
-
-        // route with only optional variables
-        $collection = new RouteCollection();
-        $collection->add('bar', new Route('/{foo}/{bar}', array('foo' => 'foo', 'bar' => 'bar'), array()));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'bar', 'foo' => 'foo', 'bar' => 'bar'), $matcher->match('/'));
-        $this->assertEquals(array('_route' => 'bar', 'foo' => 'a', 'bar' => 'bar'), $matcher->match('/a'));
-        $this->assertEquals(array('_route' => 'bar', 'foo' => 'a', 'bar' => 'b'), $matcher->match('/a/b'));
-    }
-
-    public function testMatchWithPrefixes()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/{foo}'));
-        $collection->addPrefix('/b');
-        $collection->addPrefix('/a');
-
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'foo', 'foo' => 'foo'), $matcher->match('/a/b/foo'));
-    }
-
-    public function testMatchWithDynamicPrefix()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/{foo}'));
-        $collection->addPrefix('/b');
-        $collection->addPrefix('/{_locale}');
-
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_locale' => 'fr', '_route' => 'foo', 'foo' => 'foo'), $matcher->match('/fr/b/foo'));
-    }
-
-    public function testMatchSpecialRouteName()
-    {
-        $collection = new RouteCollection();
-        $collection->add('$péß^a|', new Route('/bar'));
-
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => '$péß^a|'), $matcher->match('/bar'));
-    }
-
-    public function testMatchNonAlpha()
-    {
-        $collection = new RouteCollection();
-        $chars = '!"$%éà &\'()*+,./:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ\\[]^_`abcdefghijklmnopqrstuvwxyz{|}~-';
-        $collection->add('foo', new Route('/{foo}/bar', array(), array('foo' => '['.preg_quote($chars).']+')));
-
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'foo', 'foo' => $chars), $matcher->match('/'.rawurlencode($chars).'/bar'));
-        $this->assertEquals(array('_route' => 'foo', 'foo' => $chars), $matcher->match('/'.strtr($chars, array('%' => '%25')).'/bar'));
-    }
-
-    public function testMatchWithDotMetacharacterInRequirements()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/{foo}/bar', array(), array('foo' => '.+')));
-
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        $this->assertEquals(array('_route' => 'foo', 'foo' => "\n"), $matcher->match('/'.urlencode("\n").'/bar'), 'linefeed character is matched');
-    }
-
-    public function testMatchOverriddenRoute()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-
-        $collection1 = new RouteCollection();
-        $collection1->add('foo', new Route('/foo1'));
-
-        $collection->addCollection($collection1);
-
-        $matcher = new UrlMatcher($collection, new RequestContext());
-
-        $this->assertEquals(array('_route' => 'foo'), $matcher->match('/foo1'));
-        $this->setExpectedException('Symfony\Component\Routing\Exception\ResourceNotFoundException');
-        $this->assertEquals(array(), $matcher->match('/foo'));
-    }
-
-    public function testMatchRegression()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/{foo}'));
-        $coll->add('bar', new Route('/foo/bar/{foo}'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $this->assertEquals(array('foo' => 'bar', '_route' => 'bar'), $matcher->match('/foo/bar/bar'));
-
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/{bar}'));
-        $matcher = new UrlMatcher($collection, new RequestContext());
-        try {
-            $matcher->match('/');
-            $this->fail();
-        } catch (ResourceNotFoundException $e) {
-        }
-    }
-
-    public function testDefaultRequirementForOptionalVariables()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/{page}.{_format}', array('page' => 'index', '_format' => 'html')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $this->assertEquals(array('page' => 'my-page', '_format' => 'xml', '_route' => 'test'), $matcher->match('/my-page.xml'));
-    }
-
-    public function testMatchingIsEager()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/{foo}-{bar}-', array(), array('foo' => '.+', 'bar' => '.+')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $this->assertEquals(array('foo' => 'text1-text2-text3', 'bar' => 'text4', '_route' => 'test'), $matcher->match('/text1-text2-text3-text4-'));
-    }
-
-    public function testAdjacentVariables()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/{w}{x}{y}{z}.{_format}', array('z' => 'default-z', '_format' => 'html'), array('y' => 'y|Y')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        // 'w' eagerly matches as much as possible and the other variables match the remaining chars.
-        // This also shows that the variables w-z must all exclude the separating char (the dot '.' in this case) by default requirement.
-        // Otherwise they would also consume '.xml' and _format would never match as it's an optional variable.
-        $this->assertEquals(array('w' => 'wwwww', 'x' => 'x', 'y' => 'Y', 'z' => 'Z', '_format' => 'xml', '_route' => 'test'), $matcher->match('/wwwwwxYZ.xml'));
-        // As 'y' has custom requirement and can only be of value 'y|Y', it will leave  'ZZZ' to variable z.
-        // So with carefully chosen requirements adjacent variables, can be useful.
-        $this->assertEquals(array('w' => 'wwwww', 'x' => 'x', 'y' => 'y', 'z' => 'ZZZ', '_format' => 'html', '_route' => 'test'), $matcher->match('/wwwwwxyZZZ'));
-        // z and _format are optional.
-        $this->assertEquals(array('w' => 'wwwww', 'x' => 'x', 'y' => 'y', 'z' => 'default-z', '_format' => 'html', '_route' => 'test'), $matcher->match('/wwwwwxy'));
-
-        $this->setExpectedException('Symfony\Component\Routing\Exception\ResourceNotFoundException');
-        $matcher->match('/wxy.html');
-    }
-
-    public function testOptionalVariableWithNoRealSeparator()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/get{what}', array('what' => 'All')));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        $this->assertEquals(array('what' => 'All', '_route' => 'test'), $matcher->match('/get'));
-        $this->assertEquals(array('what' => 'Sites', '_route' => 'test'), $matcher->match('/getSites'));
-
-        // Usually the character in front of an optional parameter can be left out, e.g. with pattern '/get/{what}' just '/get' would match.
-        // But here the 't' in 'get' is not a separating character, so it makes no sense to match without it.
-        $this->setExpectedException('Symfony\Component\Routing\Exception\ResourceNotFoundException');
-        $matcher->match('/ge');
-    }
-
-    public function testRequiredVariableWithNoRealSeparator()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/get{what}Suffix'));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        $this->assertEquals(array('what' => 'Sites', '_route' => 'test'), $matcher->match('/getSitesSuffix'));
-    }
-
-    public function testDefaultRequirementOfVariable()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/{page}.{_format}'));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        $this->assertEquals(array('page' => 'index', '_format' => 'mobile.html', '_route' => 'test'), $matcher->match('/index.mobile.html'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testDefaultRequirementOfVariableDisallowsSlash()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/{page}.{_format}'));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        $matcher->match('/index.sl/ash');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testDefaultRequirementOfVariableDisallowsNextSeparator()
-    {
-        $coll = new RouteCollection();
-        $coll->add('test', new Route('/{page}.{_format}', array(), array('_format' => 'html|xml')));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-
-        $matcher->match('/do.t.html');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testSchemeRequirement()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo', array(), array(), array(), '', array('https')));
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $matcher->match('/foo');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testCondition()
-    {
-        $coll = new RouteCollection();
-        $route = new Route('/foo');
-        $route->setCondition('context.getMethod() == "POST"');
-        $coll->add('foo', $route);
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $matcher->match('/foo');
-    }
-
-    public function testDecodeOnce()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/{foo}'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $this->assertEquals(array('foo' => 'bar%23', '_route' => 'foo'), $matcher->match('/foo/bar%2523'));
-    }
-
-    public function testCannotRelyOnPrefix()
-    {
-        $coll = new RouteCollection();
-
-        $subColl = new RouteCollection();
-        $subColl->add('bar', new Route('/bar'));
-        $subColl->addPrefix('/prefix');
-        // overwrite the pattern, so the prefix is not valid anymore for this route in the collection
-        $subColl->get('bar')->setPath('/new');
-
-        $coll->addCollection($subColl);
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $this->assertEquals(array('_route' => 'bar'), $matcher->match('/new'));
-    }
-
-    public function testWithHost()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/{foo}', array(), array(), array(), '{locale}.example.com'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext('', 'GET', 'en.example.com'));
-        $this->assertEquals(array('foo' => 'bar', '_route' => 'foo', 'locale' => 'en'), $matcher->match('/foo/bar'));
-    }
-
-    public function testWithHostOnRouteCollection()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/{foo}'));
-        $coll->add('bar', new Route('/bar/{foo}', array(), array(), array(), '{locale}.example.net'));
-        $coll->setHost('{locale}.example.com');
-
-        $matcher = new UrlMatcher($coll, new RequestContext('', 'GET', 'en.example.com'));
-        $this->assertEquals(array('foo' => 'bar', '_route' => 'foo', 'locale' => 'en'), $matcher->match('/foo/bar'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext('', 'GET', 'en.example.com'));
-        $this->assertEquals(array('foo' => 'bar', '_route' => 'bar', 'locale' => 'en'), $matcher->match('/bar/bar'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testWithOutHostHostDoesNotMatch()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/foo/{foo}', array(), array(), array(), '{locale}.example.com'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext('', 'GET', 'example.com'));
-        $matcher->match('/foo/bar');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Routing\Exception\ResourceNotFoundException
-     */
-    public function testPathIsCaseSensitive()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/locale', array(), array('locale' => 'EN|FR|DE')));
-
-        $matcher = new UrlMatcher($coll, new RequestContext());
-        $matcher->match('/en');
-    }
-
-    public function testHostIsCaseInsensitive()
-    {
-        $coll = new RouteCollection();
-        $coll->add('foo', new Route('/', array(), array('locale' => 'EN|FR|DE'), array(), '{locale}.example.com'));
-
-        $matcher = new UrlMatcher($coll, new RequestContext('', 'GET', 'en.example.com'));
-        $this->assertEquals(array('_route' => 'foo', 'locale' => 'en'), $matcher->match('/'));
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/RequestContextTest.php b/core/vendor/symfony/routing/Tests/RequestContextTest.php
deleted file mode 100644
index 5861268..0000000
--- a/core/vendor/symfony/routing/Tests/RequestContextTest.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Routing\RequestContext;
-
-class RequestContextTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstruct()
-    {
-        $requestContext = new RequestContext(
-            'foo',
-            'post',
-            'foo.bar',
-            'HTTPS',
-            8080,
-            444,
-            '/baz',
-            'bar=foobar'
-        );
-
-        $this->assertEquals('foo', $requestContext->getBaseUrl());
-        $this->assertEquals('POST', $requestContext->getMethod());
-        $this->assertEquals('foo.bar', $requestContext->getHost());
-        $this->assertEquals('https', $requestContext->getScheme());
-        $this->assertSame(8080, $requestContext->getHttpPort());
-        $this->assertSame(444, $requestContext->getHttpsPort());
-        $this->assertEquals('/baz', $requestContext->getPathInfo());
-        $this->assertEquals('bar=foobar', $requestContext->getQueryString());
-    }
-
-    public function testFromRequest()
-    {
-        $request = Request::create('https://test.com:444/foo?bar=baz');
-        $requestContext = new RequestContext();
-        $requestContext->setHttpPort(123);
-        $requestContext->fromRequest($request);
-
-        $this->assertEquals('', $requestContext->getBaseUrl());
-        $this->assertEquals('GET', $requestContext->getMethod());
-        $this->assertEquals('test.com', $requestContext->getHost());
-        $this->assertEquals('https', $requestContext->getScheme());
-        $this->assertEquals('/foo', $requestContext->getPathInfo());
-        $this->assertEquals('bar=baz', $requestContext->getQueryString());
-        $this->assertSame(123, $requestContext->getHttpPort());
-        $this->assertSame(444, $requestContext->getHttpsPort());
-
-        $request = Request::create('http://test.com:8080/foo?bar=baz');
-        $requestContext = new RequestContext();
-        $requestContext->setHttpsPort(567);
-        $requestContext->fromRequest($request);
-
-        $this->assertSame(8080, $requestContext->getHttpPort());
-        $this->assertSame(567, $requestContext->getHttpsPort());
-    }
-
-    public function testGetParameters()
-    {
-        $requestContext = new RequestContext();
-        $this->assertEquals(array(), $requestContext->getParameters());
-
-        $requestContext->setParameters(array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $requestContext->getParameters());
-    }
-
-    public function testHasParameter()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setParameters(array('foo' => 'bar'));
-
-        $this->assertTrue($requestContext->hasParameter('foo'));
-        $this->assertFalse($requestContext->hasParameter('baz'));
-    }
-
-    public function testGetParameter()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setParameters(array('foo' => 'bar'));
-
-        $this->assertEquals('bar', $requestContext->getParameter('foo'));
-        $this->assertNull($requestContext->getParameter('baz'));
-    }
-
-    public function testSetParameter()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setParameter('foo', 'bar');
-
-        $this->assertEquals('bar', $requestContext->getParameter('foo'));
-    }
-
-    public function testMethod()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setMethod('post');
-
-        $this->assertSame('POST', $requestContext->getMethod());
-    }
-
-    public function testScheme()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setScheme('HTTPS');
-
-        $this->assertSame('https', $requestContext->getScheme());
-    }
-
-    public function testHost()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setHost('eXampLe.com');
-
-        $this->assertSame('example.com', $requestContext->getHost());
-    }
-
-    public function testQueryString()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setQueryString(null);
-
-        $this->assertSame('', $requestContext->getQueryString());
-    }
-
-    public function testPort()
-    {
-        $requestContext = new RequestContext();
-        $requestContext->setHttpPort('123');
-        $requestContext->setHttpsPort('456');
-
-        $this->assertSame(123, $requestContext->getHttpPort());
-        $this->assertSame(456, $requestContext->getHttpsPort());
-    }
-
-    public function testFluentInterface()
-    {
-        $requestContext = new RequestContext();
-
-        $this->assertSame($requestContext, $requestContext->setBaseUrl('/app.php'));
-        $this->assertSame($requestContext, $requestContext->setPathInfo('/index'));
-        $this->assertSame($requestContext, $requestContext->setMethod('POST'));
-        $this->assertSame($requestContext, $requestContext->setScheme('https'));
-        $this->assertSame($requestContext, $requestContext->setHost('example.com'));
-        $this->assertSame($requestContext, $requestContext->setQueryString('foo=bar'));
-        $this->assertSame($requestContext, $requestContext->setHttpPort(80));
-        $this->assertSame($requestContext, $requestContext->setHttpsPort(443));
-        $this->assertSame($requestContext, $requestContext->setParameters(array()));
-        $this->assertSame($requestContext, $requestContext->setParameter('foo', 'bar'));
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/RouteCollectionTest.php b/core/vendor/symfony/routing/Tests/RouteCollectionTest.php
deleted file mode 100644
index 376b8db..0000000
--- a/core/vendor/symfony/routing/Tests/RouteCollectionTest.php
+++ /dev/null
@@ -1,304 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests;
-
-use Symfony\Component\Routing\RouteCollection;
-use Symfony\Component\Routing\Route;
-use Symfony\Component\Config\Resource\FileResource;
-
-class RouteCollectionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testRoute()
-    {
-        $collection = new RouteCollection();
-        $route = new Route('/foo');
-        $collection->add('foo', $route);
-        $this->assertEquals(array('foo' => $route), $collection->all(), '->add() adds a route');
-        $this->assertEquals($route, $collection->get('foo'), '->get() returns a route by name');
-        $this->assertNull($collection->get('bar'), '->get() returns null if a route does not exist');
-    }
-
-    public function testOverriddenRoute()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-        $collection->add('foo', new Route('/foo1'));
-
-        $this->assertEquals('/foo1', $collection->get('foo')->getPath());
-    }
-
-    public function testDeepOverriddenRoute()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-
-        $collection1 = new RouteCollection();
-        $collection1->add('foo', new Route('/foo1'));
-
-        $collection2 = new RouteCollection();
-        $collection2->add('foo', new Route('/foo2'));
-
-        $collection1->addCollection($collection2);
-        $collection->addCollection($collection1);
-
-        $this->assertEquals('/foo2', $collection1->get('foo')->getPath());
-        $this->assertEquals('/foo2', $collection->get('foo')->getPath());
-    }
-
-    public function testIterator()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-
-        $collection1 = new RouteCollection();
-        $collection1->add('bar', $bar = new Route('/bar'));
-        $collection1->add('foo', $foo = new Route('/foo-new'));
-        $collection->addCollection($collection1);
-        $collection->add('last', $last = new Route('/last'));
-
-        $this->assertInstanceOf('\ArrayIterator', $collection->getIterator());
-        $this->assertSame(array('bar' => $bar, 'foo' => $foo, 'last' => $last), $collection->getIterator()->getArrayCopy());
-    }
-
-    public function testCount()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-
-        $collection1 = new RouteCollection();
-        $collection1->add('bar', new Route('/bar'));
-        $collection->addCollection($collection1);
-
-        $this->assertCount(2, $collection);
-    }
-
-    public function testAddCollection()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/foo'));
-
-        $collection1 = new RouteCollection();
-        $collection1->add('bar', $bar = new Route('/bar'));
-        $collection1->add('foo', $foo = new Route('/foo-new'));
-
-        $collection2 = new RouteCollection();
-        $collection2->add('grandchild', $grandchild = new Route('/grandchild'));
-
-        $collection1->addCollection($collection2);
-        $collection->addCollection($collection1);
-        $collection->add('last', $last = new Route('/last'));
-
-        $this->assertSame(array('bar' => $bar, 'foo' => $foo, 'grandchild' => $grandchild, 'last' => $last), $collection->all(),
-            '->addCollection() imports routes of another collection, overrides if necessary and adds them at the end');
-    }
-
-    public function testAddCollectionWithResources()
-    {
-        $collection = new RouteCollection();
-        $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
-        $collection1 = new RouteCollection();
-        $collection1->addResource($foo1 = new FileResource(__DIR__.'/Fixtures/foo1.xml'));
-        $collection->addCollection($collection1);
-        $this->assertEquals(array($foo, $foo1), $collection->getResources(), '->addCollection() merges resources');
-    }
-
-    public function testAddDefaultsAndRequirementsAndOptions()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', new Route('/{placeholder}'));
-        $collection1 = new RouteCollection();
-        $collection1->add('bar', new Route('/{placeholder}',
-            array('_controller' => 'fixed', 'placeholder' => 'default'), array('placeholder' => '.+'), array('option' => 'value'))
-        );
-        $collection->addCollection($collection1);
-
-        $collection->addDefaults(array('placeholder' => 'new-default'));
-        $this->assertEquals(array('placeholder' => 'new-default'), $collection->get('foo')->getDefaults(), '->addDefaults() adds defaults to all routes');
-        $this->assertEquals(array('_controller' => 'fixed', 'placeholder' => 'new-default'), $collection->get('bar')->getDefaults(),
-            '->addDefaults() adds defaults to all routes and overwrites existing ones');
-
-        $collection->addRequirements(array('placeholder' => '\d+'));
-        $this->assertEquals(array('placeholder' => '\d+'), $collection->get('foo')->getRequirements(), '->addRequirements() adds requirements to all routes');
-        $this->assertEquals(array('placeholder' => '\d+'), $collection->get('bar')->getRequirements(),
-            '->addRequirements() adds requirements to all routes and overwrites existing ones');
-
-        $collection->addOptions(array('option' => 'new-value'));
-        $this->assertEquals(
-            array('option' => 'new-value', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
-            $collection->get('bar')->getOptions(), '->addOptions() adds options to all routes and overwrites existing ones'
-        );
-    }
-
-    public function testAddPrefix()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', $foo = new Route('/foo'));
-        $collection2 = new RouteCollection();
-        $collection2->add('bar', $bar = new Route('/bar'));
-        $collection->addCollection($collection2);
-        $collection->addPrefix(' / ');
-        $this->assertSame('/foo', $collection->get('foo')->getPath(), '->addPrefix() trims the prefix and a single slash has no effect');
-        $collection->addPrefix('/{admin}', array('admin' => 'admin'), array('admin' => '\d+'));
-        $this->assertEquals('/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() adds a prefix to all routes');
-        $this->assertEquals('/{admin}/bar', $collection->get('bar')->getPath(), '->addPrefix() adds a prefix to all routes');
-        $this->assertEquals(array('admin' => 'admin'), $collection->get('foo')->getDefaults(), '->addPrefix() adds defaults to all routes');
-        $this->assertEquals(array('admin' => 'admin'), $collection->get('bar')->getDefaults(), '->addPrefix() adds defaults to all routes');
-        $this->assertEquals(array('admin' => '\d+'), $collection->get('foo')->getRequirements(), '->addPrefix() adds requirements to all routes');
-        $this->assertEquals(array('admin' => '\d+'), $collection->get('bar')->getRequirements(), '->addPrefix() adds requirements to all routes');
-        $collection->addPrefix('0');
-        $this->assertEquals('/0/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
-        $collection->addPrefix('/ /');
-        $this->assertSame('/ /0/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() can handle spaces if desired');
-        $this->assertSame('/ /0/{admin}/bar', $collection->get('bar')->getPath(), 'the route pattern of an added collection is in synch with the added prefix');
-    }
-
-    public function testAddPrefixOverridesDefaultsAndRequirements()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', $foo = new Route('/foo.{_format}'));
-        $collection->add('bar', $bar = new Route('/bar.{_format}', array(), array('_format' => 'json')));
-        $collection->addPrefix('/admin', array(), array('_format' => 'html'));
-
-        $this->assertEquals('html', $collection->get('foo')->getRequirement('_format'), '->addPrefix() overrides existing requirements');
-        $this->assertEquals('html', $collection->get('bar')->getRequirement('_format'), '->addPrefix() overrides existing requirements');
-    }
-
-    public function testResource()
-    {
-        $collection = new RouteCollection();
-        $collection->addResource($foo = new FileResource(__DIR__.'/Fixtures/foo.xml'));
-        $collection->addResource($bar = new FileResource(__DIR__.'/Fixtures/bar.xml'));
-        $collection->addResource(new FileResource(__DIR__.'/Fixtures/foo.xml'));
-
-        $this->assertEquals(array($foo, $bar), $collection->getResources(),
-            '->addResource() adds a resource and getResources() only returns unique ones by comparing the string representation');
-    }
-
-    public function testUniqueRouteWithGivenName()
-    {
-        $collection1 = new RouteCollection();
-        $collection1->add('foo', new Route('/old'));
-        $collection2 = new RouteCollection();
-        $collection3 = new RouteCollection();
-        $collection3->add('foo', $new = new Route('/new'));
-
-        $collection2->addCollection($collection3);
-        $collection1->addCollection($collection2);
-
-        $this->assertSame($new, $collection1->get('foo'), '->get() returns new route that overrode previous one');
-        // size of 1 because collection1 contains /new but not /old anymore
-        $this->assertCount(1, $collection1->getIterator(), '->addCollection() removes previous routes when adding new routes with the same name');
-    }
-
-    public function testGet()
-    {
-        $collection1 = new RouteCollection();
-        $collection1->add('a', $a = new Route('/a'));
-        $collection2 = new RouteCollection();
-        $collection2->add('b', $b = new Route('/b'));
-        $collection1->addCollection($collection2);
-        $collection1->add('$péß^a|', $c = new Route('/special'));
-
-        $this->assertSame($b, $collection1->get('b'), '->get() returns correct route in child collection');
-        $this->assertSame($c, $collection1->get('$péß^a|'), '->get() can handle special characters');
-        $this->assertNull($collection2->get('a'), '->get() does not return the route defined in parent collection');
-        $this->assertNull($collection1->get('non-existent'), '->get() returns null when route does not exist');
-        $this->assertNull($collection1->get(0), '->get() does not disclose internal child RouteCollection');
-    }
-
-    public function testRemove()
-    {
-        $collection = new RouteCollection();
-        $collection->add('foo', $foo = new Route('/foo'));
-
-        $collection1 = new RouteCollection();
-        $collection1->add('bar', $bar = new Route('/bar'));
-        $collection->addCollection($collection1);
-        $collection->add('last', $last = new Route('/last'));
-
-        $collection->remove('foo');
-        $this->assertSame(array('bar' => $bar, 'last' => $last), $collection->all(), '->remove() can remove a single route');
-        $collection->remove(array('bar', 'last'));
-        $this->assertSame(array(), $collection->all(), '->remove() accepts an array and can remove multiple routes at once');
-    }
-
-    public function testSetHost()
-    {
-        $collection = new RouteCollection();
-        $routea = new Route('/a');
-        $routeb = new Route('/b', array(), array(), array(), '{locale}.example.net');
-        $collection->add('a', $routea);
-        $collection->add('b', $routeb);
-
-        $collection->setHost('{locale}.example.com');
-
-        $this->assertEquals('{locale}.example.com', $routea->getHost());
-        $this->assertEquals('{locale}.example.com', $routeb->getHost());
-    }
-
-    public function testSetCondition()
-    {
-        $collection = new RouteCollection();
-        $routea = new Route('/a');
-        $routeb = new Route('/b', array(), array(), array(), '{locale}.example.net', array(), array(), 'context.getMethod() == "GET"');
-        $collection->add('a', $routea);
-        $collection->add('b', $routeb);
-
-        $collection->setCondition('context.getMethod() == "POST"');
-
-        $this->assertEquals('context.getMethod() == "POST"', $routea->getCondition());
-        $this->assertEquals('context.getMethod() == "POST"', $routeb->getCondition());
-    }
-
-    public function testClone()
-    {
-        $collection = new RouteCollection();
-        $collection->add('a', new Route('/a'));
-        $collection->add('b', new Route('/b', array('placeholder' => 'default'), array('placeholder' => '.+')));
-
-        $clonedCollection = clone $collection;
-
-        $this->assertCount(2, $clonedCollection);
-        $this->assertEquals($collection->get('a'), $clonedCollection->get('a'));
-        $this->assertNotSame($collection->get('a'), $clonedCollection->get('a'));
-        $this->assertEquals($collection->get('b'), $clonedCollection->get('b'));
-        $this->assertNotSame($collection->get('b'), $clonedCollection->get('b'));
-    }
-
-    public function testSetSchemes()
-    {
-        $collection = new RouteCollection();
-        $routea = new Route('/a', array(), array(), array(), '', 'http');
-        $routeb = new Route('/b');
-        $collection->add('a', $routea);
-        $collection->add('b', $routeb);
-
-        $collection->setSchemes(array('http', 'https'));
-
-        $this->assertEquals(array('http', 'https'), $routea->getSchemes());
-        $this->assertEquals(array('http', 'https'), $routeb->getSchemes());
-    }
-
-    public function testSetMethods()
-    {
-        $collection = new RouteCollection();
-        $routea = new Route('/a', array(), array(), array(), '', array(), array('GET', 'POST'));
-        $routeb = new Route('/b');
-        $collection->add('a', $routea);
-        $collection->add('b', $routeb);
-
-        $collection->setMethods('PUT');
-
-        $this->assertEquals(array('PUT'), $routea->getMethods());
-        $this->assertEquals(array('PUT'), $routeb->getMethods());
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/RouteCompilerTest.php b/core/vendor/symfony/routing/Tests/RouteCompilerTest.php
deleted file mode 100644
index 2b7c17f..0000000
--- a/core/vendor/symfony/routing/Tests/RouteCompilerTest.php
+++ /dev/null
@@ -1,253 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests;
-
-use Symfony\Component\Routing\Route;
-
-class RouteCompilerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideCompileData
-     */
-    public function testCompile($name, $arguments, $prefix, $regex, $variables, $tokens)
-    {
-        $r = new \ReflectionClass('Symfony\\Component\\Routing\\Route');
-        $route = $r->newInstanceArgs($arguments);
-
-        $compiled = $route->compile();
-        $this->assertEquals($prefix, $compiled->getStaticPrefix(), $name.' (static prefix)');
-        $this->assertEquals($regex, $compiled->getRegex(), $name.' (regex)');
-        $this->assertEquals($variables, $compiled->getVariables(), $name.' (variables)');
-        $this->assertEquals($tokens, $compiled->getTokens(), $name.' (tokens)');
-    }
-
-    public function provideCompileData()
-    {
-        return array(
-            array(
-                'Static route',
-                array('/foo'),
-                '/foo', '#^/foo$#s', array(), array(
-                    array('text', '/foo'),
-                ),),
-
-            array(
-                'Route with a variable',
-                array('/foo/{bar}'),
-                '/foo', '#^/foo/(?P<bar>[^/]++)$#s', array('bar'), array(
-                    array('variable', '/', '[^/]++', 'bar'),
-                    array('text', '/foo'),
-                ),),
-
-            array(
-                'Route with a variable that has a default value',
-                array('/foo/{bar}', array('bar' => 'bar')),
-                '/foo', '#^/foo(?:/(?P<bar>[^/]++))?$#s', array('bar'), array(
-                    array('variable', '/', '[^/]++', 'bar'),
-                    array('text', '/foo'),
-                ),),
-
-            array(
-                'Route with several variables',
-                array('/foo/{bar}/{foobar}'),
-                '/foo', '#^/foo/(?P<bar>[^/]++)/(?P<foobar>[^/]++)$#s', array('bar', 'foobar'), array(
-                    array('variable', '/', '[^/]++', 'foobar'),
-                    array('variable', '/', '[^/]++', 'bar'),
-                    array('text', '/foo'),
-                ),),
-
-            array(
-                'Route with several variables that have default values',
-                array('/foo/{bar}/{foobar}', array('bar' => 'bar', 'foobar' => '')),
-                '/foo', '#^/foo(?:/(?P<bar>[^/]++)(?:/(?P<foobar>[^/]++))?)?$#s', array('bar', 'foobar'), array(
-                    array('variable', '/', '[^/]++', 'foobar'),
-                    array('variable', '/', '[^/]++', 'bar'),
-                    array('text', '/foo'),
-                ),),
-
-            array(
-                'Route with several variables but some of them have no default values',
-                array('/foo/{bar}/{foobar}', array('bar' => 'bar')),
-                '/foo', '#^/foo/(?P<bar>[^/]++)/(?P<foobar>[^/]++)$#s', array('bar', 'foobar'), array(
-                    array('variable', '/', '[^/]++', 'foobar'),
-                    array('variable', '/', '[^/]++', 'bar'),
-                    array('text', '/foo'),
-                ),),
-
-            array(
-                'Route with an optional variable as the first segment',
-                array('/{bar}', array('bar' => 'bar')),
-                '', '#^/(?P<bar>[^/]++)?$#s', array('bar'), array(
-                    array('variable', '/', '[^/]++', 'bar'),
-                ),),
-
-            array(
-                'Route with a requirement of 0',
-                array('/{bar}', array('bar' => null), array('bar' => '0')),
-                '', '#^/(?P<bar>0)?$#s', array('bar'), array(
-                    array('variable', '/', '0', 'bar'),
-                ),),
-
-            array(
-                'Route with an optional variable as the first segment with requirements',
-                array('/{bar}', array('bar' => 'bar'), array('bar' => '(foo|bar)')),
-                '', '#^/(?P<bar>(foo|bar))?$#s', array('bar'), array(
-                    array('variable', '/', '(foo|bar)', 'bar'),
-                ),),
-
-            array(
-                'Route with only optional variables',
-                array('/{foo}/{bar}', array('foo' => 'foo', 'bar' => 'bar')),
-                '', '#^/(?P<foo>[^/]++)?(?:/(?P<bar>[^/]++))?$#s', array('foo', 'bar'), array(
-                    array('variable', '/', '[^/]++', 'bar'),
-                    array('variable', '/', '[^/]++', 'foo'),
-                ),),
-
-            array(
-                'Route with a variable in last position',
-                array('/foo-{bar}'),
-                '/foo', '#^/foo\-(?P<bar>[^/]++)$#s', array('bar'), array(
-                array('variable', '-', '[^/]++', 'bar'),
-                array('text', '/foo'),
-            ),),
-
-            array(
-                'Route with nested placeholders',
-                array('/{static{var}static}'),
-                '/{static', '#^/\{static(?P<var>[^/]+)static\}$#s', array('var'), array(
-                array('text', 'static}'),
-                array('variable', '', '[^/]+', 'var'),
-                array('text', '/{static'),
-            ),),
-
-            array(
-                'Route without separator between variables',
-                array('/{w}{x}{y}{z}.{_format}', array('z' => 'default-z', '_format' => 'html'), array('y' => '(y|Y)')),
-                '', '#^/(?P<w>[^/\.]+)(?P<x>[^/\.]+)(?P<y>(y|Y))(?:(?P<z>[^/\.]++)(?:\.(?P<_format>[^/]++))?)?$#s', array('w', 'x', 'y', 'z', '_format'), array(
-                array('variable', '.', '[^/]++', '_format'),
-                array('variable', '', '[^/\.]++', 'z'),
-                array('variable', '', '(y|Y)', 'y'),
-                array('variable', '', '[^/\.]+', 'x'),
-                array('variable', '/', '[^/\.]+', 'w'),
-            ),),
-
-            array(
-                'Route with a format',
-                array('/foo/{bar}.{_format}'),
-                '/foo', '#^/foo/(?P<bar>[^/\.]++)\.(?P<_format>[^/]++)$#s', array('bar', '_format'), array(
-                array('variable', '.', '[^/]++', '_format'),
-                array('variable', '/', '[^/\.]++', 'bar'),
-                array('text', '/foo'),
-            ),),
-        );
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testRouteWithSameVariableTwice()
-    {
-        $route = new Route('/{name}/{name}');
-
-        $compiled = $route->compile();
-    }
-
-    /**
-     * @dataProvider getNumericVariableNames
-     * @expectedException \DomainException
-     */
-    public function testRouteWithNumericVariableName($name)
-    {
-        $route = new Route('/{'.$name.'}');
-        $route->compile();
-    }
-
-    public function getNumericVariableNames()
-    {
-        return array(
-           array('09'),
-           array('123'),
-           array('1e2'),
-        );
-    }
-
-    /**
-     * @dataProvider provideCompileWithHostData
-     */
-    public function testCompileWithHost($name, $arguments, $prefix, $regex, $variables, $pathVariables, $tokens, $hostRegex, $hostVariables, $hostTokens)
-    {
-        $r = new \ReflectionClass('Symfony\\Component\\Routing\\Route');
-        $route = $r->newInstanceArgs($arguments);
-
-        $compiled = $route->compile();
-        $this->assertEquals($prefix, $compiled->getStaticPrefix(), $name.' (static prefix)');
-        $this->assertEquals($regex, str_replace(array("\n", ' '), '', $compiled->getRegex()), $name.' (regex)');
-        $this->assertEquals($variables, $compiled->getVariables(), $name.' (variables)');
-        $this->assertEquals($pathVariables, $compiled->getPathVariables(), $name.' (path variables)');
-        $this->assertEquals($tokens, $compiled->getTokens(), $name.' (tokens)');
-        $this->assertEquals($hostRegex, str_replace(array("\n", ' '), '', $compiled->getHostRegex()), $name.' (host regex)');
-        $this->assertEquals($hostVariables, $compiled->getHostVariables(), $name.' (host variables)');
-        $this->assertEquals($hostTokens, $compiled->getHostTokens(), $name.' (host tokens)');
-    }
-
-    public function provideCompileWithHostData()
-    {
-        return array(
-            array(
-                'Route with host pattern',
-                array('/hello', array(), array(), array(), 'www.example.com'),
-                '/hello', '#^/hello$#s', array(), array(), array(
-                    array('text', '/hello'),
-                ),
-                '#^www\.example\.com$#si', array(), array(
-                    array('text', 'www.example.com'),
-                ),
-            ),
-            array(
-                'Route with host pattern and some variables',
-                array('/hello/{name}', array(), array(), array(), 'www.example.{tld}'),
-                '/hello', '#^/hello/(?P<name>[^/]++)$#s', array('tld', 'name'), array('name'), array(
-                    array('variable', '/', '[^/]++', 'name'),
-                    array('text', '/hello'),
-                ),
-                '#^www\.example\.(?P<tld>[^\.]++)$#si', array('tld'), array(
-                    array('variable', '.', '[^\.]++', 'tld'),
-                    array('text', 'www.example'),
-                ),
-            ),
-            array(
-                'Route with variable at beginning of host',
-                array('/hello', array(), array(), array(), '{locale}.example.{tld}'),
-                '/hello', '#^/hello$#s', array('locale', 'tld'), array(), array(
-                    array('text', '/hello'),
-                ),
-                '#^(?P<locale>[^\.]++)\.example\.(?P<tld>[^\.]++)$#si', array('locale', 'tld'), array(
-                    array('variable', '.', '[^\.]++', 'tld'),
-                    array('text', '.example'),
-                    array('variable', '', '[^\.]++', 'locale'),
-                ),
-            ),
-            array(
-                'Route with host variables that has a default value',
-                array('/hello', array('locale' => 'a', 'tld' => 'b'), array(), array(), '{locale}.example.{tld}'),
-                '/hello', '#^/hello$#s', array('locale', 'tld'), array(), array(
-                    array('text', '/hello'),
-                ),
-                '#^(?P<locale>[^\.]++)\.example\.(?P<tld>[^\.]++)$#si', array('locale', 'tld'), array(
-                    array('variable', '.', '[^\.]++', 'tld'),
-                    array('text', '.example'),
-                    array('variable', '', '[^\.]++', 'locale'),
-                ),
-            ),
-        );
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/RouteTest.php b/core/vendor/symfony/routing/Tests/RouteTest.php
deleted file mode 100644
index 85273a6..0000000
--- a/core/vendor/symfony/routing/Tests/RouteTest.php
+++ /dev/null
@@ -1,284 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests;
-
-use Symfony\Component\Routing\Route;
-
-class RouteTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $route = new Route('/{foo}', array('foo' => 'bar'), array('foo' => '\d+'), array('foo' => 'bar'), '{locale}.example.com');
-        $this->assertEquals('/{foo}', $route->getPath(), '__construct() takes a path as its first argument');
-        $this->assertEquals(array('foo' => 'bar'), $route->getDefaults(), '__construct() takes defaults as its second argument');
-        $this->assertEquals(array('foo' => '\d+'), $route->getRequirements(), '__construct() takes requirements as its third argument');
-        $this->assertEquals('bar', $route->getOption('foo'), '__construct() takes options as its fourth argument');
-        $this->assertEquals('{locale}.example.com', $route->getHost(), '__construct() takes a host pattern as its fifth argument');
-
-        $route = new Route('/', array(), array(), array(), '', array('Https'), array('POST', 'put'), 'context.getMethod() == "GET"');
-        $this->assertEquals(array('https'), $route->getSchemes(), '__construct() takes schemes as its sixth argument and lowercases it');
-        $this->assertEquals(array('POST', 'PUT'), $route->getMethods(), '__construct() takes methods as its seventh argument and uppercases it');
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition(), '__construct() takes a condition as its eight argument');
-
-        $route = new Route('/', array(), array(), array(), '', 'Https', 'Post');
-        $this->assertEquals(array('https'), $route->getSchemes(), '__construct() takes a single scheme as its sixth argument');
-        $this->assertEquals(array('POST'), $route->getMethods(), '__construct() takes a single method as its seventh argument');
-    }
-
-    public function testPath()
-    {
-        $route = new Route('/{foo}');
-        $route->setPath('/{bar}');
-        $this->assertEquals('/{bar}', $route->getPath(), '->setPath() sets the path');
-        $route->setPath('');
-        $this->assertEquals('/', $route->getPath(), '->setPath() adds a / at the beginning of the path if needed');
-        $route->setPath('bar');
-        $this->assertEquals('/bar', $route->getPath(), '->setPath() adds a / at the beginning of the path if needed');
-        $this->assertEquals($route, $route->setPath(''), '->setPath() implements a fluent interface');
-        $route->setPath('//path');
-        $this->assertEquals('/path', $route->getPath(), '->setPath() does not allow two slashes "//" at the beginning of the path as it would be confused with a network path when generating the path from the route');
-    }
-
-    public function testOptions()
-    {
-        $route = new Route('/{foo}');
-        $route->setOptions(array('foo' => 'bar'));
-        $this->assertEquals(array_merge(array(
-        'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler',
-        ), array('foo' => 'bar')), $route->getOptions(), '->setOptions() sets the options');
-        $this->assertEquals($route, $route->setOptions(array()), '->setOptions() implements a fluent interface');
-
-        $route->setOptions(array('foo' => 'foo'));
-        $route->addOptions(array('bar' => 'bar'));
-        $this->assertEquals($route, $route->addOptions(array()), '->addOptions() implements a fluent interface');
-        $this->assertEquals(array('foo' => 'foo', 'bar' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'), $route->getOptions(), '->addDefaults() keep previous defaults');
-    }
-
-    public function testOption()
-    {
-        $route = new Route('/{foo}');
-        $this->assertFalse($route->hasOption('foo'), '->hasOption() return false if option is not set');
-        $this->assertEquals($route, $route->setOption('foo', 'bar'), '->setOption() implements a fluent interface');
-        $this->assertEquals('bar', $route->getOption('foo'), '->setOption() sets the option');
-        $this->assertTrue($route->hasOption('foo'), '->hasOption() return true if option is set');
-    }
-
-    public function testDefaults()
-    {
-        $route = new Route('/{foo}');
-        $route->setDefaults(array('foo' => 'bar'));
-        $this->assertEquals(array('foo' => 'bar'), $route->getDefaults(), '->setDefaults() sets the defaults');
-        $this->assertEquals($route, $route->setDefaults(array()), '->setDefaults() implements a fluent interface');
-
-        $route->setDefault('foo', 'bar');
-        $this->assertEquals('bar', $route->getDefault('foo'), '->setDefault() sets a default value');
-
-        $route->setDefault('foo2', 'bar2');
-        $this->assertEquals('bar2', $route->getDefault('foo2'), '->getDefault() return the default value');
-        $this->assertNull($route->getDefault('not_defined'), '->getDefault() return null if default value is not set');
-
-        $route->setDefault('_controller', $closure = function () { return 'Hello'; });
-        $this->assertEquals($closure, $route->getDefault('_controller'), '->setDefault() sets a default value');
-
-        $route->setDefaults(array('foo' => 'foo'));
-        $route->addDefaults(array('bar' => 'bar'));
-        $this->assertEquals($route, $route->addDefaults(array()), '->addDefaults() implements a fluent interface');
-        $this->assertEquals(array('foo' => 'foo', 'bar' => 'bar'), $route->getDefaults(), '->addDefaults() keep previous defaults');
-    }
-
-    public function testRequirements()
-    {
-        $route = new Route('/{foo}');
-        $route->setRequirements(array('foo' => '\d+'));
-        $this->assertEquals(array('foo' => '\d+'), $route->getRequirements(), '->setRequirements() sets the requirements');
-        $this->assertEquals('\d+', $route->getRequirement('foo'), '->getRequirement() returns a requirement');
-        $this->assertNull($route->getRequirement('bar'), '->getRequirement() returns null if a requirement is not defined');
-        $route->setRequirements(array('foo' => '^\d+$'));
-        $this->assertEquals('\d+', $route->getRequirement('foo'), '->getRequirement() removes ^ and $ from the path');
-        $this->assertEquals($route, $route->setRequirements(array()), '->setRequirements() implements a fluent interface');
-
-        $route->setRequirements(array('foo' => '\d+'));
-        $route->addRequirements(array('bar' => '\d+'));
-        $this->assertEquals($route, $route->addRequirements(array()), '->addRequirements() implements a fluent interface');
-        $this->assertEquals(array('foo' => '\d+', 'bar' => '\d+'), $route->getRequirements(), '->addRequirement() keep previous requirements');
-    }
-
-    public function testRequirement()
-    {
-        $route = new Route('/{foo}');
-        $this->assertFalse($route->hasRequirement('foo'), '->hasRequirement() return false if requirement is not set');
-        $route->setRequirement('foo', '^\d+$');
-        $this->assertEquals('\d+', $route->getRequirement('foo'), '->setRequirement() removes ^ and $ from the path');
-        $this->assertTrue($route->hasRequirement('foo'), '->hasRequirement() return true if requirement is set');
-    }
-
-    /**
-     * @dataProvider getInvalidRequirements
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetInvalidRequirement($req)
-    {
-        $route = new Route('/{foo}');
-        $route->setRequirement('foo', $req);
-    }
-
-    public function getInvalidRequirements()
-    {
-        return array(
-           array(''),
-           array(array()),
-           array('^$'),
-           array('^'),
-           array('$'),
-        );
-    }
-
-    public function testHost()
-    {
-        $route = new Route('/');
-        $route->setHost('{locale}.example.net');
-        $this->assertEquals('{locale}.example.net', $route->getHost(), '->setHost() sets the host pattern');
-    }
-
-    public function testScheme()
-    {
-        $route = new Route('/');
-        $this->assertEquals(array(), $route->getSchemes(), 'schemes is initialized with array()');
-        $this->assertFalse($route->hasScheme('http'));
-        $route->setSchemes('hTTp');
-        $this->assertEquals(array('http'), $route->getSchemes(), '->setSchemes() accepts a single scheme string and lowercases it');
-        $this->assertTrue($route->hasScheme('htTp'));
-        $this->assertFalse($route->hasScheme('httpS'));
-        $route->setSchemes(array('HttpS', 'hTTp'));
-        $this->assertEquals(array('https', 'http'), $route->getSchemes(), '->setSchemes() accepts an array of schemes and lowercases them');
-        $this->assertTrue($route->hasScheme('htTp'));
-        $this->assertTrue($route->hasScheme('httpS'));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySchemeRequirement()
-    {
-        $route = new Route('/');
-        $route->setRequirement('_scheme', 'http|https');
-        $this->assertEquals('http|https', $route->getRequirement('_scheme'));
-        $this->assertEquals(array('http', 'https'), $route->getSchemes());
-        $this->assertTrue($route->hasScheme('https'));
-        $this->assertTrue($route->hasScheme('http'));
-        $this->assertFalse($route->hasScheme('ftp'));
-        $route->setSchemes(array('hTTp'));
-        $this->assertEquals('http', $route->getRequirement('_scheme'));
-        $route->setSchemes(array());
-        $this->assertNull($route->getRequirement('_scheme'));
-    }
-
-    public function testMethod()
-    {
-        $route = new Route('/');
-        $this->assertEquals(array(), $route->getMethods(), 'methods is initialized with array()');
-        $route->setMethods('gEt');
-        $this->assertEquals(array('GET'), $route->getMethods(), '->setMethods() accepts a single method string and uppercases it');
-        $route->setMethods(array('gEt', 'PosT'));
-        $this->assertEquals(array('GET', 'POST'), $route->getMethods(), '->setMethods() accepts an array of methods and uppercases them');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyMethodRequirement()
-    {
-        $route = new Route('/');
-        $route->setRequirement('_method', 'GET|POST');
-        $this->assertEquals('GET|POST', $route->getRequirement('_method'));
-        $this->assertEquals(array('GET', 'POST'), $route->getMethods());
-        $route->setMethods(array('gEt'));
-        $this->assertEquals('GET', $route->getRequirement('_method'));
-        $route->setMethods(array());
-        $this->assertNull($route->getRequirement('_method'));
-    }
-
-    public function testCondition()
-    {
-        $route = new Route('/');
-        $this->assertSame('', $route->getCondition());
-        $route->setCondition('context.getMethod() == "GET"');
-        $this->assertSame('context.getMethod() == "GET"', $route->getCondition());
-    }
-
-    public function testCompile()
-    {
-        $route = new Route('/{foo}');
-        $this->assertInstanceOf('Symfony\Component\Routing\CompiledRoute', $compiled = $route->compile(), '->compile() returns a compiled route');
-        $this->assertSame($compiled, $route->compile(), '->compile() only compiled the route once if unchanged');
-        $route->setRequirement('foo', '.*');
-        $this->assertNotSame($compiled, $route->compile(), '->compile() recompiles if the route was modified');
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyPattern()
-    {
-        $route = new Route('/{foo}');
-        $this->assertEquals('/{foo}', $route->getPattern());
-
-        $route->setPattern('/bar');
-        $this->assertEquals('/bar', $route->getPattern());
-    }
-
-    public function testSerialize()
-    {
-        $route = new Route('/prefix/{foo}', array('foo' => 'default'), array('foo' => '\d+'));
-
-        $serialized = serialize($route);
-        $unserialized = unserialize($serialized);
-
-        $this->assertEquals($route, $unserialized);
-        $this->assertNotSame($route, $unserialized);
-    }
-
-    /**
-     * Tests that the compiled version is also serialized to prevent the overhead
-     * of compiling it again after unserialize.
-     */
-    public function testSerializeWhenCompiled()
-    {
-        $route = new Route('/prefix/{foo}', array('foo' => 'default'), array('foo' => '\d+'));
-        $route->setHost('{locale}.example.net');
-        $route->compile();
-
-        $serialized = serialize($route);
-        $unserialized = unserialize($serialized);
-
-        $this->assertEquals($route, $unserialized);
-        $this->assertNotSame($route, $unserialized);
-    }
-
-    /**
-     * Tests that the serialized representation of a route in one symfony version
-     * also works in later symfony versions, i.e. the unserialized route is in the
-     * same state as another, semantically equivalent, route.
-     */
-    public function testSerializedRepresentationKeepsWorking()
-    {
-        $serialized = 'C:31:"Symfony\Component\Routing\Route":934:{a:8:{s:4:"path";s:13:"/prefix/{foo}";s:4:"host";s:20:"{locale}.example.net";s:8:"defaults";a:1:{s:3:"foo";s:7:"default";}s:12:"requirements";a:1:{s:3:"foo";s:3:"\d+";}s:7:"options";a:1:{s:14:"compiler_class";s:39:"Symfony\Component\Routing\RouteCompiler";}s:7:"schemes";a:0:{}s:7:"methods";a:0:{}s:8:"compiled";C:39:"Symfony\Component\Routing\CompiledRoute":569:{a:8:{s:4:"vars";a:2:{i:0;s:6:"locale";i:1;s:3:"foo";}s:11:"path_prefix";s:7:"/prefix";s:10:"path_regex";s:30:"#^/prefix(?:/(?P<foo>\d+))?$#s";s:11:"path_tokens";a:2:{i:0;a:4:{i:0;s:8:"variable";i:1;s:1:"/";i:2;s:3:"\d+";i:3;s:3:"foo";}i:1;a:2:{i:0;s:4:"text";i:1;s:7:"/prefix";}}s:9:"path_vars";a:1:{i:0;s:3:"foo";}s:10:"host_regex";s:39:"#^(?P<locale>[^\.]++)\.example\.net$#si";s:11:"host_tokens";a:2:{i:0;a:2:{i:0;s:4:"text";i:1;s:12:".example.net";}i:1;a:4:{i:0;s:8:"variable";i:1;s:0:"";i:2;s:7:"[^\.]++";i:3;s:6:"locale";}}s:9:"host_vars";a:1:{i:0;s:6:"locale";}}}}}';
-        $unserialized = unserialize($serialized);
-
-        $route = new Route('/prefix/{foo}', array('foo' => 'default'), array('foo' => '\d+'));
-        $route->setHost('{locale}.example.net');
-        $route->compile();
-
-        $this->assertEquals($route, $unserialized);
-        $this->assertNotSame($route, $unserialized);
-    }
-}
diff --git a/core/vendor/symfony/routing/Tests/RouterTest.php b/core/vendor/symfony/routing/Tests/RouterTest.php
deleted file mode 100644
index 9a1c568..0000000
--- a/core/vendor/symfony/routing/Tests/RouterTest.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Routing\Tests;
-
-use Symfony\Component\Routing\Router;
-use Symfony\Component\HttpFoundation\Request;
-
-class RouterTest extends \PHPUnit_Framework_TestCase
-{
-    private $router = null;
-
-    private $loader = null;
-
-    protected function setUp()
-    {
-        $this->loader = $this->getMock('Symfony\Component\Config\Loader\LoaderInterface');
-        $this->router = new Router($this->loader, 'routing.yml');
-    }
-
-    public function testSetOptionsWithSupportedOptions()
-    {
-        $this->router->setOptions(array(
-            'cache_dir' => './cache',
-            'debug' => true,
-            'resource_type' => 'ResourceType',
-        ));
-
-        $this->assertSame('./cache', $this->router->getOption('cache_dir'));
-        $this->assertTrue($this->router->getOption('debug'));
-        $this->assertSame('ResourceType', $this->router->getOption('resource_type'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The Router does not support the following options: "option_foo", "option_bar"
-     */
-    public function testSetOptionsWithUnsupportedOptions()
-    {
-        $this->router->setOptions(array(
-            'cache_dir' => './cache',
-            'option_foo' => true,
-            'option_bar' => 'baz',
-            'resource_type' => 'ResourceType',
-        ));
-    }
-
-    public function testSetOptionWithSupportedOption()
-    {
-        $this->router->setOption('cache_dir', './cache');
-
-        $this->assertSame('./cache', $this->router->getOption('cache_dir'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The Router does not support the "option_foo" option
-     */
-    public function testSetOptionWithUnsupportedOption()
-    {
-        $this->router->setOption('option_foo', true);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage The Router does not support the "option_foo" option
-     */
-    public function testGetOptionWithUnsupportedOption()
-    {
-        $this->router->getOption('option_foo', true);
-    }
-
-    public function testThatRouteCollectionIsLoaded()
-    {
-        $this->router->setOption('resource_type', 'ResourceType');
-
-        $routeCollection = $this->getMock('Symfony\Component\Routing\RouteCollection');
-
-        $this->loader->expects($this->once())
-            ->method('load')->with('routing.yml', 'ResourceType')
-            ->will($this->returnValue($routeCollection));
-
-        $this->assertSame($routeCollection, $this->router->getRouteCollection());
-    }
-
-    /**
-     * @dataProvider provideMatcherOptionsPreventingCaching
-     */
-    public function testMatcherIsCreatedIfCacheIsNotConfigured($option)
-    {
-        $this->router->setOption($option, null);
-
-        $this->loader->expects($this->once())
-            ->method('load')->with('routing.yml', null)
-            ->will($this->returnValue($this->getMock('Symfony\Component\Routing\RouteCollection')));
-
-        $this->assertInstanceOf('Symfony\\Component\\Routing\\Matcher\\UrlMatcher', $this->router->getMatcher());
-    }
-
-    public function provideMatcherOptionsPreventingCaching()
-    {
-        return array(
-            array('cache_dir'),
-            array('matcher_cache_class'),
-        );
-    }
-
-    /**
-     * @dataProvider provideGeneratorOptionsPreventingCaching
-     */
-    public function testGeneratorIsCreatedIfCacheIsNotConfigured($option)
-    {
-        $this->router->setOption($option, null);
-
-        $this->loader->expects($this->once())
-            ->method('load')->with('routing.yml', null)
-            ->will($this->returnValue($this->getMock('Symfony\Component\Routing\RouteCollection')));
-
-        $this->assertInstanceOf('Symfony\\Component\\Routing\\Generator\\UrlGenerator', $this->router->getGenerator());
-    }
-
-    public function provideGeneratorOptionsPreventingCaching()
-    {
-        return array(
-            array('cache_dir'),
-            array('generator_cache_class'),
-        );
-    }
-
-    public function testMatchRequestWithUrlMatcherInterface()
-    {
-        $matcher = $this->getMock('Symfony\Component\Routing\Matcher\UrlMatcherInterface');
-        $matcher->expects($this->once())->method('match');
-
-        $p = new \ReflectionProperty($this->router, 'matcher');
-        $p->setAccessible(true);
-        $p->setValue($this->router, $matcher);
-
-        $this->router->matchRequest(Request::create('/'));
-    }
-
-    public function testMatchRequestWithRequestMatcherInterface()
-    {
-        $matcher = $this->getMock('Symfony\Component\Routing\Matcher\RequestMatcherInterface');
-        $matcher->expects($this->once())->method('matchRequest');
-
-        $p = new \ReflectionProperty($this->router, 'matcher');
-        $p->setAccessible(true);
-        $p->setValue($this->router, $matcher);
-
-        $this->router->matchRequest(Request::create('/'));
-    }
-}
diff --git a/core/vendor/symfony/routing/composer.json b/core/vendor/symfony/routing/composer.json
deleted file mode 100644
index 31b63ae..0000000
--- a/core/vendor/symfony/routing/composer.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
-    "name": "symfony/routing",
-    "type": "library",
-    "description": "Symfony Routing Component",
-    "keywords": ["routing", "router", "URL", "URI"],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/config": "~2.7",
-        "symfony/http-foundation": "~2.3",
-        "symfony/yaml": "~2.0,>=2.0.5",
-        "symfony/expression-language": "~2.4",
-        "doctrine/annotations": "~1.0",
-        "doctrine/common": "~2.2",
-        "psr/log": "~1.0"
-    },
-    "conflict": {
-        "symfony/config": "<2.7"
-    },
-    "suggest": {
-        "symfony/config": "For using the all-in-one router or any loader",
-        "symfony/yaml": "For using the YAML loader",
-        "symfony/expression-language": "For using expression matching",
-        "doctrine/annotations": "For using the annotation loader"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Routing\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/routing/phpunit.xml.dist b/core/vendor/symfony/routing/phpunit.xml.dist
deleted file mode 100644
index a908308..0000000
--- a/core/vendor/symfony/routing/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Routing Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./vendor</directory>
-                <directory>./Tests</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/serializer/.gitignore b/core/vendor/symfony/serializer/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/serializer/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/serializer/Annotation/Groups.php b/core/vendor/symfony/serializer/Annotation/Groups.php
deleted file mode 100644
index 519837a..0000000
--- a/core/vendor/symfony/serializer/Annotation/Groups.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Annotation;
-
-use Symfony\Component\Serializer\Exception\InvalidArgumentException;
-
-/**
- * Annotation class for @Groups().
- *
- * @Annotation
- * @Target({"PROPERTY", "METHOD"})
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class Groups
-{
-    /**
-     * @var array
-     */
-    private $groups;
-
-    /**
-     * @param array $data
-     *
-     * @throws InvalidArgumentException
-     */
-    public function __construct(array $data)
-    {
-        if (!isset($data['value']) || !$data['value']) {
-            throw new InvalidArgumentException(sprintf('Parameter of annotation "%s" cannot be empty.', get_class($this)));
-        }
-
-        if (!is_array($data['value'])) {
-            throw new InvalidArgumentException(sprintf('Parameter of annotation "%s" must be an array of strings.', get_class($this)));
-        }
-
-        foreach ($data['value'] as $group) {
-            if (!is_string($group)) {
-                throw new InvalidArgumentException(sprintf('Parameter of annotation "%s" must be an array of strings.', get_class($this)));
-            }
-        }
-
-        $this->groups = $data['value'];
-    }
-
-    /**
-     * Gets groups.
-     *
-     * @return array
-     */
-    public function getGroups()
-    {
-        return $this->groups;
-    }
-}
diff --git a/core/vendor/symfony/serializer/CHANGELOG.md b/core/vendor/symfony/serializer/CHANGELOG.md
deleted file mode 100644
index ceeeeb1..0000000
--- a/core/vendor/symfony/serializer/CHANGELOG.md
+++ /dev/null
@@ -1,96 +0,0 @@
-CHANGELOG
-=========
-
-2.7.0
------
-
- * added support for serialization and deserialization groups including
-   annotations, XML and YAML mapping.
- * added `AbstractNormalizer` to factorise code and ease normalizers development
- * added circular references handling for `PropertyNormalizer`
- * added support for a context key called `object_to_populate` in `AbstractNormalizer`
-   to reuse existing objects in the deserialization process
- * added `NameConverterInterface` and `CamelCaseToSnakeCaseNameConverter`
- * [DEPRECATION] `GetSetMethodNormalizer::setCamelizedAttributes()` and
-   `PropertyNormalizer::setCamelizedAttributes()` are replaced by
-   `CamelCaseToSnakeCaseNameConverter`
- * [DEPRECATION] the `Exception` interface has been renamed to `ExceptionInterface`
- * added `ObjectNormalizer` leveraging the `PropertyAccess` component to normalize
-   objects containing both properties and getters / setters / issers / hassers methods.
-
-2.6.0
------
-
- * added a new serializer: `PropertyNormalizer`. Like `GetSetMethodNormalizer`,
-   this normalizer will map an object's properties to an array.
- * added circular references handling for `GetSetMethodNormalizer`
-
-2.5.0
------
-
- * added support for `is.*` getters in `GetSetMethodNormalizer`
-
-2.4.0
------
-
- * added `$context` support for XMLEncoder.
- * [DEPRECATION] JsonEncode and JsonDecode where modified to throw
-   an exception if error found. No need for get*Error() functions
-
-2.3.0
------
-
- * added `GetSetMethodNormalizer::setCamelizedAttributes` to allow calling
-   camel cased methods for underscored properties
-
-2.2.0
------
-
- * [BC BREAK] All Serializer, Normalizer and Encoder interfaces have been
-   modified to include an optional `$context` array parameter.
- * The XML Root name can now be configured with the `xml_root_name`
-   parameter in the context option to the `XmlEncoder`.
- * Options to `json_encode` and `json_decode` can be passed through
-   the context options of `JsonEncode` and `JsonDecode` encoder/decoders.
-
-2.1.0
------
-
- * added DecoderInterface::supportsDecoding(),
-   EncoderInterface::supportsEncoding()
- * removed NormalizableInterface::denormalize(),
-   NormalizerInterface::denormalize(),
-   NormalizerInterface::supportsDenormalization()
- * removed normalize() denormalize() encode() decode() supportsSerialization()
-   supportsDeserialization() supportsEncoding() supportsDecoding()
-   getEncoder() from SerializerInterface
- * Serializer now implements NormalizerInterface, DenormalizerInterface,
-   EncoderInterface, DecoderInterface in addition to SerializerInterface
- * added DenormalizableInterface and DenormalizerInterface
- * [BC BREAK] changed `GetSetMethodNormalizer`'s key names from all lowercased
-   to camelCased (e.g. `mypropertyvalue` to `myPropertyValue`)
- * [BC BREAK] convert the `item` XML tag to an array
-
-    ``` xml
-    <?xml version="1.0"?>
-    <response>
-        <item><title><![CDATA[title1]]></title></item><item><title><![CDATA[title2]]></title></item>
-    </response>
-    ```
-
-    Before:
-
-        Array()
-
-    After:
-
-        Array(
-            [item] => Array(
-                [0] => Array(
-                    [title] => title1
-                )
-                [1] => Array(
-                    [title] => title2
-                )
-            )
-        )
diff --git a/core/vendor/symfony/serializer/Encoder/ChainDecoder.php b/core/vendor/symfony/serializer/Encoder/ChainDecoder.php
deleted file mode 100644
index f8f17b4..0000000
--- a/core/vendor/symfony/serializer/Encoder/ChainDecoder.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\RuntimeException;
-
-/**
- * Decoder delegating the decoding to a chain of decoders.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-class ChainDecoder implements DecoderInterface
-{
-    protected $decoders = array();
-    protected $decoderByFormat = array();
-
-    public function __construct(array $decoders = array())
-    {
-        $this->decoders = $decoders;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function decode($data, $format, array $context = array())
-    {
-        return $this->getDecoder($format)->decode($data, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDecoding($format)
-    {
-        try {
-            $this->getDecoder($format);
-        } catch (RuntimeException $e) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Gets the decoder supporting the format.
-     *
-     * @param string $format
-     *
-     * @return DecoderInterface
-     *
-     * @throws RuntimeException if no decoder is found
-     */
-    private function getDecoder($format)
-    {
-        if (isset($this->decoderByFormat[$format])
-            && isset($this->decoders[$this->decoderByFormat[$format]])
-        ) {
-            return $this->decoders[$this->decoderByFormat[$format]];
-        }
-
-        foreach ($this->decoders as $i => $decoder) {
-            if ($decoder->supportsDecoding($format)) {
-                $this->decoderByFormat[$format] = $i;
-
-                return $decoder;
-            }
-        }
-
-        throw new RuntimeException(sprintf('No decoder found for format "%s".', $format));
-    }
-}
diff --git a/core/vendor/symfony/serializer/Encoder/ChainEncoder.php b/core/vendor/symfony/serializer/Encoder/ChainEncoder.php
deleted file mode 100644
index 5ee352a..0000000
--- a/core/vendor/symfony/serializer/Encoder/ChainEncoder.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\RuntimeException;
-
-/**
- * Encoder delegating the decoding to a chain of encoders.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-class ChainEncoder implements EncoderInterface
-{
-    protected $encoders = array();
-    protected $encoderByFormat = array();
-
-    public function __construct(array $encoders = array())
-    {
-        $this->encoders = $encoders;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function encode($data, $format, array $context = array())
-    {
-        return $this->getEncoder($format)->encode($data, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsEncoding($format)
-    {
-        try {
-            $this->getEncoder($format);
-        } catch (RuntimeException $e) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Checks whether the normalization is needed for the given format.
-     *
-     * @param string $format
-     *
-     * @return bool
-     */
-    public function needsNormalization($format)
-    {
-        $encoder = $this->getEncoder($format);
-
-        if (!$encoder instanceof NormalizationAwareInterface) {
-            return true;
-        }
-
-        if ($encoder instanceof self) {
-            return $encoder->needsNormalization($format);
-        }
-
-        return false;
-    }
-
-    /**
-     * Gets the encoder supporting the format.
-     *
-     * @param string $format
-     *
-     * @return EncoderInterface
-     *
-     * @throws RuntimeException if no encoder is found
-     */
-    private function getEncoder($format)
-    {
-        if (isset($this->encoderByFormat[$format])
-            && isset($this->encoders[$this->encoderByFormat[$format]])
-        ) {
-            return $this->encoders[$this->encoderByFormat[$format]];
-        }
-
-        foreach ($this->encoders as $i => $encoder) {
-            if ($encoder->supportsEncoding($format)) {
-                $this->encoderByFormat[$format] = $i;
-
-                return $encoder;
-            }
-        }
-
-        throw new RuntimeException(sprintf('No encoder found for format "%s".', $format));
-    }
-}
diff --git a/core/vendor/symfony/serializer/Encoder/DecoderInterface.php b/core/vendor/symfony/serializer/Encoder/DecoderInterface.php
deleted file mode 100644
index 910f4ce..0000000
--- a/core/vendor/symfony/serializer/Encoder/DecoderInterface.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-
-/**
- * Defines the interface of decoders.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface DecoderInterface
-{
-    /**
-     * Decodes a string into PHP data.
-     *
-     * @param string $data    Data to decode
-     * @param string $format  Format name
-     * @param array  $context options that decoders have access to.
-     *
-     * The format parameter specifies which format the data is in; valid values
-     * depend on the specific implementation. Authors implementing this interface
-     * are encouraged to document which formats they support in a non-inherited
-     * phpdoc comment.
-     *
-     * @return mixed
-     *
-     * @throws UnexpectedValueException
-     */
-    public function decode($data, $format, array $context = array());
-
-    /**
-     * Checks whether the deserializer can decode from given format.
-     *
-     * @param string $format format name
-     *
-     * @return bool
-     */
-    public function supportsDecoding($format);
-}
diff --git a/core/vendor/symfony/serializer/Encoder/EncoderInterface.php b/core/vendor/symfony/serializer/Encoder/EncoderInterface.php
deleted file mode 100644
index fe7e777..0000000
--- a/core/vendor/symfony/serializer/Encoder/EncoderInterface.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-
-/**
- * Defines the interface of encoders.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface EncoderInterface
-{
-    /**
-     * Encodes data into the given format.
-     *
-     * @param mixed  $data    Data to encode
-     * @param string $format  Format name
-     * @param array  $context options that normalizers/encoders have access to.
-     *
-     * @return scalar
-     *
-     * @throws UnexpectedValueException
-     */
-    public function encode($data, $format, array $context = array());
-
-    /**
-     * Checks whether the serializer can encode to given format.
-     *
-     * @param string $format format name
-     *
-     * @return bool
-     */
-    public function supportsEncoding($format);
-}
diff --git a/core/vendor/symfony/serializer/Encoder/JsonDecode.php b/core/vendor/symfony/serializer/Encoder/JsonDecode.php
deleted file mode 100644
index 1067296..0000000
--- a/core/vendor/symfony/serializer/Encoder/JsonDecode.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-
-/**
- * Decodes JSON data.
- *
- * @author Sander Coolen <sander@jibber.nl>
- */
-class JsonDecode implements DecoderInterface
-{
-    /**
-     * Specifies if the returned result should be an associative array or a nested stdClass object hierarchy.
-     *
-     * @var bool
-     */
-    private $associative;
-
-    /**
-     * Specifies the recursion depth.
-     *
-     * @var int
-     */
-    private $recursionDepth;
-
-    private $lastError = JSON_ERROR_NONE;
-
-    protected $serializer;
-
-    /**
-     * Constructs a new JsonDecode instance.
-     *
-     * @param bool $associative True to return the result associative array, false for a nested stdClass hierarchy
-     * @param int  $depth       Specifies the recursion depth
-     */
-    public function __construct($associative = false, $depth = 512)
-    {
-        $this->associative = $associative;
-        $this->recursionDepth = (int) $depth;
-    }
-
-    /**
-     * Returns the last decoding error (if any).
-     *
-     * @return int
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             The {@self decode()} method throws an exception if error found.
-     *
-     * @see http://php.net/manual/en/function.json-last-error.php json_last_error
-     */
-    public function getLastError()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Catch the exception raised by the decode() method instead to get the last JSON decoding error.', E_USER_DEPRECATED);
-
-        return $this->lastError;
-    }
-
-    /**
-     * Decodes data.
-     *
-     * @param string $data    The encoded JSON string to decode
-     * @param string $format  Must be set to JsonEncoder::FORMAT
-     * @param array  $context An optional set of options for the JSON decoder; see below
-     *
-     * The $context array is a simple key=>value array, with the following supported keys:
-     *
-     * json_decode_associative: boolean
-     *      If true, returns the object as associative array.
-     *      If false, returns the object as nested stdClass
-     *      If not specified, this method will use the default set in JsonDecode::__construct
-     *
-     * json_decode_recursion_depth: integer
-     *      Specifies the maximum recursion depth
-     *      If not specified, this method will use the default set in JsonDecode::__construct
-     *
-     * json_decode_options: integer
-     *      Specifies additional options as per documentation for json_decode. Only supported with PHP 5.4.0 and higher
-     *
-     * @return mixed
-     *
-     * @throws UnexpectedValueException
-     *
-     * @see http://php.net/json_decode json_decode
-     */
-    public function decode($data, $format, array $context = array())
-    {
-        $context = $this->resolveContext($context);
-
-        $associative = $context['json_decode_associative'];
-        $recursionDepth = $context['json_decode_recursion_depth'];
-        $options = $context['json_decode_options'];
-
-        if (PHP_VERSION_ID >= 50400) {
-            $decodedData = json_decode($data, $associative, $recursionDepth, $options);
-        } else {
-            $decodedData = json_decode($data, $associative, $recursionDepth);
-        }
-
-        if (JSON_ERROR_NONE !== $this->lastError = json_last_error()) {
-            throw new UnexpectedValueException(JsonEncoder::getLastErrorMessage());
-        }
-
-        return $decodedData;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDecoding($format)
-    {
-        return JsonEncoder::FORMAT === $format;
-    }
-
-    /**
-     * Merges the default options of the Json Decoder with the passed context.
-     *
-     * @param array $context
-     *
-     * @return array
-     */
-    private function resolveContext(array $context)
-    {
-        $defaultOptions = array(
-            'json_decode_associative' => $this->associative,
-            'json_decode_recursion_depth' => $this->recursionDepth,
-            'json_decode_options' => 0,
-        );
-
-        return array_merge($defaultOptions, $context);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Encoder/JsonEncode.php b/core/vendor/symfony/serializer/Encoder/JsonEncode.php
deleted file mode 100644
index 37f384b..0000000
--- a/core/vendor/symfony/serializer/Encoder/JsonEncode.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-
-/**
- * Encodes JSON data.
- *
- * @author Sander Coolen <sander@jibber.nl>
- */
-class JsonEncode implements EncoderInterface
-{
-    private $options;
-    private $lastError = JSON_ERROR_NONE;
-
-    public function __construct($bitmask = 0)
-    {
-        $this->options = $bitmask;
-    }
-
-    /**
-     * Returns the last encoding error (if any).
-     *
-     * @return int
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             The {@self encode()} throws an exception if error found.
-     *
-     * @see http://php.net/manual/en/function.json-last-error.php json_last_error
-     */
-    public function getLastError()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Catch the exception raised by the encode() method instead to get the last JSON encoding error.', E_USER_DEPRECATED);
-
-        return $this->lastError;
-    }
-
-    /**
-     * Encodes PHP data to a JSON string.
-     *
-     * {@inheritdoc}
-     */
-    public function encode($data, $format, array $context = array())
-    {
-        $context = $this->resolveContext($context);
-
-        $encodedJson = json_encode($data, $context['json_encode_options']);
-
-        if (JSON_ERROR_NONE !== $this->lastError = json_last_error()) {
-            throw new UnexpectedValueException(JsonEncoder::getLastErrorMessage());
-        }
-
-        return $encodedJson;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsEncoding($format)
-    {
-        return JsonEncoder::FORMAT === $format;
-    }
-
-    /**
-     * Merge default json encode options with context.
-     *
-     * @param array $context
-     *
-     * @return array
-     */
-    private function resolveContext(array $context = array())
-    {
-        return array_merge(array('json_encode_options' => $this->options), $context);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Encoder/JsonEncoder.php b/core/vendor/symfony/serializer/Encoder/JsonEncoder.php
deleted file mode 100644
index 284f579..0000000
--- a/core/vendor/symfony/serializer/Encoder/JsonEncoder.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-/**
- * Encodes JSON data.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class JsonEncoder implements EncoderInterface, DecoderInterface
-{
-    const FORMAT = 'json';
-
-    /**
-     * @var JsonEncode
-     */
-    protected $encodingImpl;
-
-    /**
-     * @var JsonDecode
-     */
-    protected $decodingImpl;
-
-    public function __construct(JsonEncode $encodingImpl = null, JsonDecode $decodingImpl = null)
-    {
-        $this->encodingImpl = $encodingImpl ?: new JsonEncode();
-        $this->decodingImpl = $decodingImpl ?: new JsonDecode(true);
-    }
-
-    /**
-     * Returns the last encoding error (if any).
-     *
-     * @return int
-     *
-     * @deprecated since version 2.5, to be removed in 3.0. JsonEncode throws exception if an error is found.
-     */
-    public function getLastEncodingError()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Catch the exception raised by the Symfony\Component\Serializer\Encoder\JsonEncode::encode() method instead to get the last JSON encoding error.', E_USER_DEPRECATED);
-
-        return $this->encodingImpl->getLastError();
-    }
-
-    /**
-     * Returns the last decoding error (if any).
-     *
-     * @return int
-     *
-     * @deprecated since version 2.5, to be removed in 3.0. JsonDecode throws exception if an error is found.
-     */
-    public function getLastDecodingError()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Catch the exception raised by the Symfony\Component\Serializer\Encoder\JsonDecode::decode() method instead to get the last JSON decoding error.', E_USER_DEPRECATED);
-
-        return $this->decodingImpl->getLastError();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function encode($data, $format, array $context = array())
-    {
-        return $this->encodingImpl->encode($data, self::FORMAT, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function decode($data, $format, array $context = array())
-    {
-        return $this->decodingImpl->decode($data, self::FORMAT, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsEncoding($format)
-    {
-        return self::FORMAT === $format;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDecoding($format)
-    {
-        return self::FORMAT === $format;
-    }
-
-    /**
-     * Resolves json_last_error message.
-     *
-     * @return string
-     */
-    public static function getLastErrorMessage()
-    {
-        if (function_exists('json_last_error_msg')) {
-            return json_last_error_msg();
-        }
-
-        switch (json_last_error()) {
-            case JSON_ERROR_DEPTH:
-                return 'Maximum stack depth exceeded';
-            case JSON_ERROR_STATE_MISMATCH:
-                return 'Underflow or the modes mismatch';
-            case JSON_ERROR_CTRL_CHAR:
-                return 'Unexpected control character found';
-            case JSON_ERROR_SYNTAX:
-                return 'Syntax error, malformed JSON';
-            case JSON_ERROR_UTF8:
-                return 'Malformed UTF-8 characters, possibly incorrectly encoded';
-            default:
-                return 'Unknown error';
-        }
-    }
-}
diff --git a/core/vendor/symfony/serializer/Encoder/NormalizationAwareInterface.php b/core/vendor/symfony/serializer/Encoder/NormalizationAwareInterface.php
deleted file mode 100644
index c066bd7..0000000
--- a/core/vendor/symfony/serializer/Encoder/NormalizationAwareInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-/**
- * Defines the interface of encoders that will normalize data themselves.
- *
- * Implementing this interface essentially just tells the Serializer that the
- * data should not be pre-normalized before being passed to this Encoder.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface NormalizationAwareInterface
-{
-}
diff --git a/core/vendor/symfony/serializer/Encoder/SerializerAwareEncoder.php b/core/vendor/symfony/serializer/Encoder/SerializerAwareEncoder.php
deleted file mode 100644
index a3d8ff3..0000000
--- a/core/vendor/symfony/serializer/Encoder/SerializerAwareEncoder.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\SerializerInterface;
-use Symfony\Component\Serializer\SerializerAwareInterface;
-
-/**
- * SerializerAware Encoder implementation.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-abstract class SerializerAwareEncoder implements SerializerAwareInterface
-{
-    protected $serializer;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setSerializer(SerializerInterface $serializer)
-    {
-        $this->serializer = $serializer;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Encoder/XmlEncoder.php b/core/vendor/symfony/serializer/Encoder/XmlEncoder.php
deleted file mode 100644
index ce0c475..0000000
--- a/core/vendor/symfony/serializer/Encoder/XmlEncoder.php
+++ /dev/null
@@ -1,536 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Encoder;
-
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-
-/**
- * Encodes XML data.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @author John Wards <jwards@whiteoctober.co.uk>
- * @author Fabian Vogler <fabian@equivalence.ch>
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, DecoderInterface, NormalizationAwareInterface
-{
-    /**
-     * @var \DOMDocument
-     */
-    private $dom;
-    private $format;
-    private $context;
-    private $rootNodeName = 'response';
-
-    /**
-     * Construct new XmlEncoder and allow to change the root node element name.
-     *
-     * @param string $rootNodeName
-     */
-    public function __construct($rootNodeName = 'response')
-    {
-        $this->rootNodeName = $rootNodeName;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function encode($data, $format, array $context = array())
-    {
-        if ($data instanceof \DOMDocument) {
-            return $data->saveXML();
-        }
-
-        $xmlRootNodeName = $this->resolveXmlRootName($context);
-
-        $this->dom = $this->createDomDocument($context);
-        $this->format = $format;
-        $this->context = $context;
-
-        if (null !== $data && !is_scalar($data)) {
-            $root = $this->dom->createElement($xmlRootNodeName);
-            $this->dom->appendChild($root);
-            $this->buildXml($root, $data, $xmlRootNodeName);
-        } else {
-            $this->appendNode($this->dom, $data, $xmlRootNodeName);
-        }
-
-        return $this->dom->saveXML();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function decode($data, $format, array $context = array())
-    {
-        if ('' === trim($data)) {
-            throw new UnexpectedValueException('Invalid XML data, it can not be empty.');
-        }
-
-        $internalErrors = libxml_use_internal_errors(true);
-        $disableEntities = libxml_disable_entity_loader(true);
-        libxml_clear_errors();
-
-        $dom = new \DOMDocument();
-        $dom->loadXML($data, LIBXML_NONET | LIBXML_NOBLANKS);
-
-        libxml_use_internal_errors($internalErrors);
-        libxml_disable_entity_loader($disableEntities);
-
-        if ($error = libxml_get_last_error()) {
-            libxml_clear_errors();
-
-            throw new UnexpectedValueException($error->message);
-        }
-
-        foreach ($dom->childNodes as $child) {
-            if ($child->nodeType === XML_DOCUMENT_TYPE_NODE) {
-                throw new UnexpectedValueException('Document types are not allowed.');
-            }
-        }
-
-        $rootNode = $dom->firstChild;
-
-        // todo: throw an exception if the root node name is not correctly configured (bc)
-
-        if ($rootNode->hasChildNodes()) {
-            $xpath = new \DOMXPath($dom);
-            $data = array();
-            foreach ($xpath->query('namespace::*', $dom->documentElement) as $nsNode) {
-                $data['@'.$nsNode->nodeName] = $nsNode->nodeValue;
-            }
-
-            unset($data['@xmlns:xml']);
-
-            if (empty($data)) {
-                return $this->parseXml($rootNode);
-            }
-
-            return array_merge($data, (array) $this->parseXml($rootNode));
-        }
-
-        if (!$rootNode->hasAttributes()) {
-            return $rootNode->nodeValue;
-        }
-
-        $data = array();
-
-        foreach ($rootNode->attributes as $attrKey => $attr) {
-            $data['@'.$attrKey] = $attr->nodeValue;
-        }
-
-        $data['#'] = $rootNode->nodeValue;
-
-        return $data;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsEncoding($format)
-    {
-        return 'xml' === $format;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDecoding($format)
-    {
-        return 'xml' === $format;
-    }
-
-    /**
-     * Sets the root node name.
-     *
-     * @param string $name root node name
-     */
-    public function setRootNodeName($name)
-    {
-        $this->rootNodeName = $name;
-    }
-
-    /**
-     * Returns the root node name.
-     *
-     * @return string
-     */
-    public function getRootNodeName()
-    {
-        return $this->rootNodeName;
-    }
-
-    /**
-     * @param \DOMNode $node
-     * @param string   $val
-     *
-     * @return bool
-     */
-    final protected function appendXMLString(\DOMNode $node, $val)
-    {
-        if (strlen($val) > 0) {
-            $frag = $this->dom->createDocumentFragment();
-            $frag->appendXML($val);
-            $node->appendChild($frag);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * @param \DOMNode $node
-     * @param string   $val
-     *
-     * @return bool
-     */
-    final protected function appendText(\DOMNode $node, $val)
-    {
-        $nodeText = $this->dom->createTextNode($val);
-        $node->appendChild($nodeText);
-
-        return true;
-    }
-
-    /**
-     * @param \DOMNode $node
-     * @param string   $val
-     *
-     * @return bool
-     */
-    final protected function appendCData(\DOMNode $node, $val)
-    {
-        $nodeText = $this->dom->createCDATASection($val);
-        $node->appendChild($nodeText);
-
-        return true;
-    }
-
-    /**
-     * @param \DOMNode             $node
-     * @param \DOMDocumentFragment $fragment
-     *
-     * @return bool
-     */
-    final protected function appendDocumentFragment(\DOMNode $node, $fragment)
-    {
-        if ($fragment instanceof \DOMDocumentFragment) {
-            $node->appendChild($fragment);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Checks the name is a valid xml element name.
-     *
-     * @param string $name
-     *
-     * @return bool
-     */
-    final protected function isElementNameValid($name)
-    {
-        return $name &&
-            false === strpos($name, ' ') &&
-            preg_match('#^[\pL_][\pL0-9._:-]*$#ui', $name);
-    }
-
-    /**
-     * Parse the input DOMNode into an array or a string.
-     *
-     * @param \DOMNode $node xml to parse
-     *
-     * @return array|string
-     */
-    private function parseXml(\DOMNode $node)
-    {
-        $data = $this->parseXmlAttributes($node);
-
-        $value = $this->parseXmlValue($node);
-
-        if (!count($data)) {
-            return $value;
-        }
-
-        if (!is_array($value)) {
-            $data['#'] = $value;
-
-            return $data;
-        }
-
-        if (1 === count($value) && key($value)) {
-            $data[key($value)] = current($value);
-
-            return $data;
-        }
-
-        foreach ($value as $key => $val) {
-            $data[$key] = $val;
-        }
-
-        return $data;
-    }
-
-    /**
-     * Parse the input DOMNode attributes into an array.
-     *
-     * @param \DOMNode $node xml to parse
-     *
-     * @return array
-     */
-    private function parseXmlAttributes(\DOMNode $node)
-    {
-        if (!$node->hasAttributes()) {
-            return array();
-        }
-
-        $data = array();
-
-        foreach ($node->attributes as $attr) {
-            if (ctype_digit($attr->nodeValue)) {
-                $data['@'.$attr->nodeName] = (int) $attr->nodeValue;
-            } else {
-                $data['@'.$attr->nodeName] = $attr->nodeValue;
-            }
-        }
-
-        return $data;
-    }
-
-    /**
-     * Parse the input DOMNode value (content and children) into an array or a string.
-     *
-     * @param \DOMNode $node xml to parse
-     *
-     * @return array|string
-     */
-    private function parseXmlValue(\DOMNode $node)
-    {
-        if (!$node->hasChildNodes()) {
-            return $node->nodeValue;
-        }
-
-        if (1 === $node->childNodes->length && in_array($node->firstChild->nodeType, array(XML_TEXT_NODE, XML_CDATA_SECTION_NODE))) {
-            return $node->firstChild->nodeValue;
-        }
-
-        $value = array();
-
-        foreach ($node->childNodes as $subnode) {
-            $val = $this->parseXml($subnode);
-
-            if ('item' === $subnode->nodeName && isset($val['@key'])) {
-                if (isset($val['#'])) {
-                    $value[$val['@key']] = $val['#'];
-                } else {
-                    $value[$val['@key']] = $val;
-                }
-            } else {
-                $value[$subnode->nodeName][] = $val;
-            }
-        }
-
-        foreach ($value as $key => $val) {
-            if (is_array($val) && 1 === count($val)) {
-                $value[$key] = current($val);
-            }
-        }
-
-        return $value;
-    }
-
-    /**
-     * Parse the data and convert it to DOMElements.
-     *
-     * @param \DOMNode     $parentNode
-     * @param array|object $data
-     * @param string|null  $xmlRootNodeName
-     *
-     * @return bool
-     *
-     * @throws UnexpectedValueException
-     */
-    private function buildXml(\DOMNode $parentNode, $data, $xmlRootNodeName = null)
-    {
-        $append = true;
-
-        if (is_array($data) || $data instanceof \Traversable) {
-            foreach ($data as $key => $data) {
-                //Ah this is the magic @ attribute types.
-                if (0 === strpos($key, '@') && is_scalar($data) && $this->isElementNameValid($attributeName = substr($key, 1))) {
-                    $parentNode->setAttribute($attributeName, $data);
-                } elseif ($key === '#') {
-                    $append = $this->selectNodeType($parentNode, $data);
-                } elseif (is_array($data) && false === is_numeric($key)) {
-                    // Is this array fully numeric keys?
-                    if (ctype_digit(implode('', array_keys($data)))) {
-                        /*
-                         * Create nodes to append to $parentNode based on the $key of this array
-                         * Produces <xml><item>0</item><item>1</item></xml>
-                         * From array("item" => array(0,1));.
-                         */
-                        foreach ($data as $subData) {
-                            $append = $this->appendNode($parentNode, $subData, $key);
-                        }
-                    } else {
-                        $append = $this->appendNode($parentNode, $data, $key);
-                    }
-                } elseif (is_numeric($key) || !$this->isElementNameValid($key)) {
-                    $append = $this->appendNode($parentNode, $data, 'item', $key);
-                } else {
-                    $append = $this->appendNode($parentNode, $data, $key);
-                }
-            }
-
-            return $append;
-        }
-
-        if (is_object($data)) {
-            $data = $this->serializer->normalize($data, $this->format, $this->context);
-            if (null !== $data && !is_scalar($data)) {
-                return $this->buildXml($parentNode, $data, $xmlRootNodeName);
-            }
-
-            // top level data object was normalized into a scalar
-            if (!$parentNode->parentNode->parentNode) {
-                $root = $parentNode->parentNode;
-                $root->removeChild($parentNode);
-
-                return $this->appendNode($root, $data, $xmlRootNodeName);
-            }
-
-            return $this->appendNode($parentNode, $data, 'data');
-        }
-
-        throw new UnexpectedValueException(sprintf('An unexpected value could not be serialized: %s', var_export($data, true)));
-    }
-
-    /**
-     * Selects the type of node to create and appends it to the parent.
-     *
-     * @param \DOMNode     $parentNode
-     * @param array|object $data
-     * @param string       $nodeName
-     * @param string       $key
-     *
-     * @return bool
-     */
-    private function appendNode(\DOMNode $parentNode, $data, $nodeName, $key = null)
-    {
-        $node = $this->dom->createElement($nodeName);
-        if (null !== $key) {
-            $node->setAttribute('key', $key);
-        }
-        $appendNode = $this->selectNodeType($node, $data);
-        // we may have decided not to append this node, either in error or if its $nodeName is not valid
-        if ($appendNode) {
-            $parentNode->appendChild($node);
-        }
-
-        return $appendNode;
-    }
-
-    /**
-     * Checks if a value contains any characters which would require CDATA wrapping.
-     *
-     * @param string $val
-     *
-     * @return bool
-     */
-    private function needsCdataWrapping($val)
-    {
-        return preg_match('/[<>&]/', $val);
-    }
-
-    /**
-     * Tests the value being passed and decide what sort of element to create.
-     *
-     * @param \DOMNode $node
-     * @param mixed    $val
-     *
-     * @return bool
-     */
-    private function selectNodeType(\DOMNode $node, $val)
-    {
-        if (is_array($val)) {
-            return $this->buildXml($node, $val);
-        } elseif ($val instanceof \SimpleXMLElement) {
-            $child = $this->dom->importNode(dom_import_simplexml($val), true);
-            $node->appendChild($child);
-        } elseif ($val instanceof \Traversable) {
-            $this->buildXml($node, $val);
-        } elseif (is_object($val)) {
-            return $this->buildXml($node, $this->serializer->normalize($val, $this->format, $this->context));
-        } elseif (is_numeric($val)) {
-            return $this->appendText($node, (string) $val);
-        } elseif (is_string($val) && $this->needsCdataWrapping($val)) {
-            return $this->appendCData($node, $val);
-        } elseif (is_string($val)) {
-            return $this->appendText($node, $val);
-        } elseif (is_bool($val)) {
-            return $this->appendText($node, (int) $val);
-        } elseif ($val instanceof \DOMNode) {
-            $child = $this->dom->importNode($val, true);
-            $node->appendChild($child);
-        }
-
-        return true;
-    }
-
-    /**
-     * Get real XML root node name, taking serializer options into account.
-     *
-     * @param array $context
-     *
-     * @return string
-     */
-    private function resolveXmlRootName(array $context = array())
-    {
-        return isset($context['xml_root_node_name'])
-            ? $context['xml_root_node_name']
-            : $this->rootNodeName;
-    }
-
-    /**
-     * Create a DOM document, taking serializer options into account.
-     *
-     * @param array $context options that the encoder has access to.
-     *
-     * @return \DOMDocument
-     */
-    private function createDomDocument(array $context)
-    {
-        $document = new \DOMDocument();
-
-        // Set an attribute on the DOM document specifying, as part of the XML declaration,
-        $xmlOptions = array(
-            // nicely formats output with indentation and extra space
-            'xml_format_output' => 'formatOutput',
-            // the version number of the document
-            'xml_version' => 'xmlVersion',
-            // the encoding of the document
-            'xml_encoding' => 'encoding',
-            // whether the document is standalone
-            'xml_standalone' => 'xmlStandalone',
-        );
-        foreach ($xmlOptions as $xmlOption => $documentProperty) {
-            if (isset($context[$xmlOption])) {
-                $document->$documentProperty = $context[$xmlOption];
-            }
-        }
-
-        return $document;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Exception/CircularReferenceException.php b/core/vendor/symfony/serializer/Exception/CircularReferenceException.php
deleted file mode 100644
index b2977b9..0000000
--- a/core/vendor/symfony/serializer/Exception/CircularReferenceException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * CircularReferenceException
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class CircularReferenceException extends RuntimeException
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/Exception.php b/core/vendor/symfony/serializer/Exception/Exception.php
deleted file mode 100644
index fc0606e..0000000
--- a/core/vendor/symfony/serializer/Exception/Exception.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * Base exception.
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use ExceptionInterface instead.
- */
-interface Exception
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/ExceptionInterface.php b/core/vendor/symfony/serializer/Exception/ExceptionInterface.php
deleted file mode 100644
index ff67edb..0000000
--- a/core/vendor/symfony/serializer/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * Base exception interface.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface ExceptionInterface extends Exception
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/InvalidArgumentException.php b/core/vendor/symfony/serializer/Exception/InvalidArgumentException.php
deleted file mode 100644
index f4e645c..0000000
--- a/core/vendor/symfony/serializer/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * InvalidArgumentException.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/LogicException.php b/core/vendor/symfony/serializer/Exception/LogicException.php
deleted file mode 100644
index 08c53e0..0000000
--- a/core/vendor/symfony/serializer/Exception/LogicException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * LogicException.
- *
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-class LogicException extends \LogicException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/MappingException.php b/core/vendor/symfony/serializer/Exception/MappingException.php
deleted file mode 100644
index 8b63dd0..0000000
--- a/core/vendor/symfony/serializer/Exception/MappingException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * MappingException
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class MappingException extends RuntimeException
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/RuntimeException.php b/core/vendor/symfony/serializer/Exception/RuntimeException.php
deleted file mode 100644
index a287d97..0000000
--- a/core/vendor/symfony/serializer/Exception/RuntimeException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * RuntimeException.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/UnexpectedValueException.php b/core/vendor/symfony/serializer/Exception/UnexpectedValueException.php
deleted file mode 100644
index 2a63c5b..0000000
--- a/core/vendor/symfony/serializer/Exception/UnexpectedValueException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * UnexpectedValueException.
- *
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- */
-class UnexpectedValueException extends \UnexpectedValueException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/serializer/Exception/UnsupportedException.php b/core/vendor/symfony/serializer/Exception/UnsupportedException.php
deleted file mode 100644
index 7dc44ee..0000000
--- a/core/vendor/symfony/serializer/Exception/UnsupportedException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Exception;
-
-/**
- * UnsupportedException.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class UnsupportedException extends InvalidArgumentException
-{
-}
diff --git a/core/vendor/symfony/serializer/LICENSE b/core/vendor/symfony/serializer/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/serializer/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/serializer/Mapping/AttributeMetadata.php b/core/vendor/symfony/serializer/Mapping/AttributeMetadata.php
deleted file mode 100644
index 7a1d3db..0000000
--- a/core/vendor/symfony/serializer/Mapping/AttributeMetadata.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping;
-
-/**
- * {@inheritdoc}
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class AttributeMetadata implements AttributeMetadataInterface
-{
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getName()} instead.
-     */
-    public $name;
-
-    /**
-     * @var array
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getGroups()} instead.
-     */
-    public $groups = array();
-
-    /**
-     * Constructs a metadata for the given attribute.
-     *
-     * @param string $name
-     */
-    public function __construct($name)
-    {
-        $this->name = $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addGroup($group)
-    {
-        if (!in_array($group, $this->groups)) {
-            $this->groups[] = $group;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getGroups()
-    {
-        return $this->groups;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function merge(AttributeMetadataInterface $attributeMetadata)
-    {
-        foreach ($attributeMetadata->getGroups() as $group) {
-            $this->addGroup($group);
-        }
-    }
-
-    /**
-     * Returns the names of the properties that should be serialized.
-     *
-     * @return string[]
-     */
-    public function __sleep()
-    {
-        return array('name', 'groups');
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/AttributeMetadataInterface.php b/core/vendor/symfony/serializer/Mapping/AttributeMetadataInterface.php
deleted file mode 100644
index 0701a58..0000000
--- a/core/vendor/symfony/serializer/Mapping/AttributeMetadataInterface.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping;
-
-/**
- * Stores metadata needed for serializing and deserializing attributes.
- *
- * Primarily, the metadata stores serialization groups.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface AttributeMetadataInterface
-{
-    /**
-     * Gets the attribute name.
-     *
-     * @return string
-     */
-    public function getName();
-
-    /**
-     * Adds this attribute to the given group.
-     *
-     * @param string $group
-     */
-    public function addGroup($group);
-
-    /**
-     * Gets groups of this attribute.
-     *
-     * @return string[]
-     */
-    public function getGroups();
-
-    /**
-     * Merges an {@see AttributeMetadataInterface} with in the current one.
-     *
-     * @param AttributeMetadataInterface $attributeMetadata
-     */
-    public function merge(AttributeMetadataInterface $attributeMetadata);
-}
diff --git a/core/vendor/symfony/serializer/Mapping/ClassMetadata.php b/core/vendor/symfony/serializer/Mapping/ClassMetadata.php
deleted file mode 100644
index 55ddf52..0000000
--- a/core/vendor/symfony/serializer/Mapping/ClassMetadata.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping;
-
-/**
- * {@inheritdoc}
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ClassMetadata implements ClassMetadataInterface
-{
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getName()} instead.
-     */
-    public $name;
-
-    /**
-     * @var AttributeMetadataInterface[]
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getAttributesMetadata()} instead.
-     */
-    public $attributesMetadata = array();
-
-    /**
-     * @var \ReflectionClass
-     */
-    private $reflClass;
-
-    /**
-     * Constructs a metadata for the given class.
-     *
-     * @param string $class
-     */
-    public function __construct($class)
-    {
-        $this->name = $class;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addAttributeMetadata(AttributeMetadataInterface $attributeMetadata)
-    {
-        $this->attributesMetadata[$attributeMetadata->getName()] = $attributeMetadata;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttributesMetadata()
-    {
-        return $this->attributesMetadata;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function merge(ClassMetadataInterface $classMetadata)
-    {
-        foreach ($classMetadata->getAttributesMetadata() as $attributeMetadata) {
-            if (isset($this->attributesMetadata[$attributeMetadata->getName()])) {
-                $this->attributesMetadata[$attributeMetadata->getName()]->merge($attributeMetadata);
-            } else {
-                $this->addAttributeMetadata($attributeMetadata);
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getReflectionClass()
-    {
-        if (!$this->reflClass) {
-            $this->reflClass = new \ReflectionClass($this->getName());
-        }
-
-        return $this->reflClass;
-    }
-
-    /**
-     * Returns the names of the properties that should be serialized.
-     *
-     * @return string[]
-     */
-    public function __sleep()
-    {
-        return array(
-            'name',
-            'attributesMetadata',
-        );
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/ClassMetadataInterface.php b/core/vendor/symfony/serializer/Mapping/ClassMetadataInterface.php
deleted file mode 100644
index c967666..0000000
--- a/core/vendor/symfony/serializer/Mapping/ClassMetadataInterface.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping;
-
-/**
- * Stores metadata needed for serializing and deserializing objects of specific class.
- *
- * Primarily, the metadata stores the list of attributes to serialize or deserialize.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface ClassMetadataInterface
-{
-    /**
-     * Returns the name of the backing PHP class.
-     *
-     * @return string The name of the backing class.
-     */
-    public function getName();
-
-    /**
-     * Adds an {@link AttributeMetadataInterface}.
-     *
-     * @param AttributeMetadataInterface $attributeMetadata
-     */
-    public function addAttributeMetadata(AttributeMetadataInterface $attributeMetadata);
-
-    /**
-     * Gets the list of {@link AttributeMetadataInterface}.
-     *
-     * @return AttributeMetadataInterface[]
-     */
-    public function getAttributesMetadata();
-
-    /**
-     * Merges a {@link ClassMetadataInterface} in the current one.
-     *
-     * @param ClassMetadataInterface $classMetadata
-     */
-    public function merge(ClassMetadataInterface $classMetadata);
-
-    /**
-     * Returns a {@link \ReflectionClass} instance for this class.
-     *
-     * @return \ReflectionClass
-     */
-    public function getReflectionClass();
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactory.php b/core/vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactory.php
deleted file mode 100644
index 344d633..0000000
--- a/core/vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactory.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Factory;
-
-use Doctrine\Common\Cache\Cache;
-use Symfony\Component\Serializer\Exception\InvalidArgumentException;
-use Symfony\Component\Serializer\Mapping\ClassMetadata;
-use Symfony\Component\Serializer\Mapping\Loader\LoaderInterface;
-
-/**
- * Returns a {@link ClassMetadata}.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ClassMetadataFactory implements ClassMetadataFactoryInterface
-{
-    /**
-     * @var LoaderInterface
-     */
-    private $loader;
-    /**
-     * @var Cache
-     */
-    private $cache;
-    /**
-     * @var array
-     */
-    private $loadedClasses;
-
-    /**
-     * @param LoaderInterface $loader
-     * @param Cache|null $cache
-     */
-    public function __construct(LoaderInterface $loader, Cache $cache = null)
-    {
-        $this->loader = $loader;
-        $this->cache = $cache;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFor($value)
-    {
-        $class = $this->getClass($value);
-        if (!$class) {
-            throw new InvalidArgumentException(sprintf('Cannot create metadata for non-objects. Got: "%s"', gettype($value)));
-        }
-
-        if (isset($this->loadedClasses[$class])) {
-            return $this->loadedClasses[$class];
-        }
-
-        if ($this->cache && ($this->loadedClasses[$class] = $this->cache->fetch($class))) {
-            return $this->loadedClasses[$class];
-        }
-
-        if (!class_exists($class) && !interface_exists($class)) {
-            throw new InvalidArgumentException(sprintf('The class or interface "%s" does not exist.', $class));
-        }
-
-        $classMetadata = new ClassMetadata($class);
-        $this->loader->loadClassMetadata($classMetadata);
-
-        $reflectionClass = $classMetadata->getReflectionClass();
-
-        // Include metadata from the parent class
-        if ($parent = $reflectionClass->getParentClass()) {
-            $classMetadata->merge($this->getMetadataFor($parent->name));
-        }
-
-        // Include metadata from all implemented interfaces
-        foreach ($reflectionClass->getInterfaces() as $interface) {
-            $classMetadata->merge($this->getMetadataFor($interface->name));
-        }
-
-        if ($this->cache) {
-            $this->cache->save($class, $classMetadata);
-        }
-
-        return $this->loadedClasses[$class] = $classMetadata;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasMetadataFor($value)
-    {
-        $class = $this->getClass($value);
-
-        return class_exists($class) || interface_exists($class);
-    }
-
-    /**
-     * Gets a class name for a given class or instance.
-     *
-     * @param mixed $value
-     *
-     * @return string|bool
-     */
-    private function getClass($value)
-    {
-        if (!is_object($value) && !is_string($value)) {
-            return false;
-        }
-
-        return ltrim(is_object($value) ? get_class($value) : $value, '\\');
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactoryInterface.php b/core/vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactoryInterface.php
deleted file mode 100644
index 7ef91a8..0000000
--- a/core/vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactoryInterface.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Factory;
-
-use Symfony\Component\Serializer\Exception\InvalidArgumentException;
-use Symfony\Component\Serializer\Mapping\ClassMetadataInterface;
-
-/**
- * Returns a {@see ClassMetadataInterface}.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface ClassMetadataFactoryInterface
-{
-    /**
-     * If the method was called with the same class name (or an object of that
-     * class) before, the same metadata instance is returned.
-     *
-     * If the factory was configured with a cache, this method will first look
-     * for an existing metadata instance in the cache. If an existing instance
-     * is found, it will be returned without further ado.
-     *
-     * Otherwise, a new metadata instance is created. If the factory was
-     * configured with a loader, the metadata is passed to the
-     * {@link \Symfony\Component\Serializer\Mapping\Loader\LoaderInterface::loadClassMetadata()} method for further
-     * configuration. At last, the new object is returned.
-     *
-     * @param string|object $value
-     *
-     * @return ClassMetadataInterface
-     *
-     * @throws InvalidArgumentException
-     */
-    public function getMetadataFor($value);
-
-    /**
-     * Checks if class has metadata.
-     *
-     * @param mixed $value
-     *
-     * @return bool
-     */
-    public function hasMetadataFor($value);
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/AnnotationLoader.php b/core/vendor/symfony/serializer/Mapping/Loader/AnnotationLoader.php
deleted file mode 100644
index 801c317..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/AnnotationLoader.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Loader;
-
-use Doctrine\Common\Annotations\Reader;
-use Symfony\Component\Serializer\Annotation\Groups;
-use Symfony\Component\Serializer\Exception\MappingException;
-use Symfony\Component\Serializer\Mapping\AttributeMetadata;
-use Symfony\Component\Serializer\Mapping\ClassMetadataInterface;
-
-/**
- * Annotation loader.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class AnnotationLoader implements LoaderInterface
-{
-    /**
-     * @var Reader
-     */
-    private $reader;
-
-    /**
-     * @param Reader $reader
-     */
-    public function __construct(Reader $reader)
-    {
-        $this->reader = $reader;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadataInterface $classMetadata)
-    {
-        $reflectionClass = $classMetadata->getReflectionClass();
-        $className = $reflectionClass->name;
-        $loaded = false;
-
-        $attributesMetadata = $classMetadata->getAttributesMetadata();
-
-        foreach ($reflectionClass->getProperties() as $property) {
-            if (!isset($attributeMetadata[$property->name])) {
-                $attributesMetadata[$property->name] = new AttributeMetadata($property->name);
-                $classMetadata->addAttributeMetadata($attributesMetadata[$property->name]);
-            }
-
-            if ($property->getDeclaringClass()->name === $className) {
-                foreach ($this->reader->getPropertyAnnotations($property) as $groups) {
-                    if ($groups instanceof Groups) {
-                        foreach ($groups->getGroups() as $group) {
-                            $attributesMetadata[$property->name]->addGroup($group);
-                        }
-                    }
-
-                    $loaded = true;
-                }
-            }
-        }
-
-        foreach ($reflectionClass->getMethods() as $method) {
-            if ($method->getDeclaringClass()->name === $className) {
-                foreach ($this->reader->getMethodAnnotations($method) as $groups) {
-                    if ($groups instanceof Groups) {
-                        if (preg_match('/^(get|is|has|set)(.+)$/i', $method->name, $matches)) {
-                            $attributeName = lcfirst($matches[2]);
-
-                            if (isset($attributesMetadata[$attributeName])) {
-                                $attributeMetadata = $attributesMetadata[$attributeName];
-                            } else {
-                                $attributesMetadata[$attributeName] = $attributeMetadata = new AttributeMetadata($attributeName);
-                                $classMetadata->addAttributeMetadata($attributeMetadata);
-                            }
-
-                            foreach ($groups->getGroups() as $group) {
-                                $attributeMetadata->addGroup($group);
-                            }
-                        } else {
-                            throw new MappingException(sprintf('Groups on "%s::%s" cannot be added. Groups can only be added on methods beginning with "get", "is", "has" or "set".', $className, $method->name));
-                        }
-                    }
-
-                    $loaded = true;
-                }
-            }
-        }
-
-        return $loaded;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/FileLoader.php b/core/vendor/symfony/serializer/Mapping/Loader/FileLoader.php
deleted file mode 100644
index 38bb593..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/FileLoader.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Loader;
-
-use Symfony\Component\Serializer\Exception\MappingException;
-
-/**
- * Base class for all file based loaders.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-abstract class FileLoader implements LoaderInterface
-{
-    /**
-     * @var string
-     */
-    protected $file;
-
-    /**
-     * Constructor.
-     *
-     * @param string $file The mapping file to load
-     *
-     * @throws MappingException if the mapping file does not exist or is not readable
-     */
-    public function __construct($file)
-    {
-        if (!is_file($file)) {
-            throw new MappingException(sprintf('The mapping file %s does not exist', $file));
-        }
-
-        if (!is_readable($file)) {
-            throw new MappingException(sprintf('The mapping file %s is not readable', $file));
-        }
-
-        $this->file = $file;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/LoaderChain.php b/core/vendor/symfony/serializer/Mapping/Loader/LoaderChain.php
deleted file mode 100644
index 8bf1c17..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/LoaderChain.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Loader;
-
-use Symfony\Component\Serializer\Exception\MappingException;
-use Symfony\Component\Serializer\Mapping\ClassMetadataInterface;
-
-/**
- * Calls multiple {@link LoaderInterface} instances in a chain.
- *
- * This class accepts multiple instances of LoaderInterface to be passed to the
- * constructor. When {@link loadClassMetadata()} is called, the same method is called
- * in <em>all</em> of these loaders, regardless of whether any of them was
- * successful or not.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class LoaderChain implements LoaderInterface
-{
-    /**
-     * @var LoaderInterface[]
-     */
-    private $loaders;
-
-    /**
-     * Accepts a list of LoaderInterface instances.
-     *
-     * @param LoaderInterface[] $loaders An array of LoaderInterface instances
-     *
-     * @throws MappingException If any of the loaders does not implement LoaderInterface
-     */
-    public function __construct(array $loaders)
-    {
-        foreach ($loaders as $loader) {
-            if (!$loader instanceof LoaderInterface) {
-                throw new MappingException(sprintf('Class %s is expected to implement LoaderInterface', get_class($loader)));
-            }
-        }
-
-        $this->loaders = $loaders;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadataInterface $metadata)
-    {
-        $success = false;
-
-        foreach ($this->loaders as $loader) {
-            $success = $loader->loadClassMetadata($metadata) || $success;
-        }
-
-        return $success;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/LoaderInterface.php b/core/vendor/symfony/serializer/Mapping/Loader/LoaderInterface.php
deleted file mode 100644
index ebf84b6..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/LoaderInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Loader;
-
-use Symfony\Component\Serializer\Mapping\ClassMetadataInterface;
-
-/**
- * Loads {@link ClassMetadataInterface}.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface LoaderInterface
-{
-    /**
-     * Load class metadata.
-     *
-     * @param ClassMetadataInterface $classMetadata A metadata
-     *
-     * @return bool
-     */
-    public function loadClassMetadata(ClassMetadataInterface $classMetadata);
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/XmlFileLoader.php b/core/vendor/symfony/serializer/Mapping/Loader/XmlFileLoader.php
deleted file mode 100644
index 0da2f7d..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/XmlFileLoader.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Loader;
-
-use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\Serializer\Exception\MappingException;
-use Symfony\Component\Serializer\Mapping\AttributeMetadata;
-use Symfony\Component\Serializer\Mapping\ClassMetadataInterface;
-
-/**
- * Loads XML mapping files.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class XmlFileLoader extends FileLoader
-{
-    /**
-     * An array of {@class \SimpleXMLElement} instances.
-     *
-     * @var \SimpleXMLElement[]|null
-     */
-    private $classes;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadataInterface $classMetadata)
-    {
-        if (null === $this->classes) {
-            $this->classes = array();
-            $xml = $this->parseFile($this->file);
-
-            foreach ($xml->class as $class) {
-                $this->classes[(string) $class['name']] = $class;
-            }
-        }
-
-        $attributesMetadata = $classMetadata->getAttributesMetadata();
-
-        if (isset($this->classes[$classMetadata->getName()])) {
-            $xml = $this->classes[$classMetadata->getName()];
-
-            foreach ($xml->attribute as $attribute) {
-                $attributeName = (string) $attribute['name'];
-
-                if (isset($attributesMetadata[$attributeName])) {
-                    $attributeMetadata = $attributesMetadata[$attributeName];
-                } else {
-                    $attributeMetadata = new AttributeMetadata($attributeName);
-                    $classMetadata->addAttributeMetadata($attributeMetadata);
-                }
-
-                foreach ($attribute->group as $group) {
-                    $attributeMetadata->addGroup((string) $group);
-                }
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Parses a XML File.
-     *
-     * @param string $file Path of file
-     *
-     * @return \SimpleXMLElement
-     *
-     * @throws MappingException
-     */
-    private function parseFile($file)
-    {
-        try {
-            $dom = XmlUtils::loadFile($file, __DIR__.'/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd');
-        } catch (\Exception $e) {
-            throw new MappingException($e->getMessage(), $e->getCode(), $e);
-        }
-
-        return simplexml_import_dom($dom);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/YamlFileLoader.php b/core/vendor/symfony/serializer/Mapping/Loader/YamlFileLoader.php
deleted file mode 100644
index 1c5d5e8..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/YamlFileLoader.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Mapping\Loader;
-
-use Symfony\Component\Serializer\Exception\MappingException;
-use Symfony\Component\Serializer\Mapping\AttributeMetadata;
-use Symfony\Component\Serializer\Mapping\ClassMetadataInterface;
-use Symfony\Component\Yaml\Parser;
-
-/**
- * YAML File Loader.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class YamlFileLoader extends FileLoader
-{
-    private $yamlParser;
-
-    /**
-     * An array of YAML class descriptions
-     *
-     * @var array
-     */
-    private $classes = null;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadataInterface $classMetadata)
-    {
-        if (null === $this->classes) {
-            if (!stream_is_local($this->file)) {
-                throw new MappingException(sprintf('This is not a local file "%s".', $this->file));
-            }
-
-            if (null === $this->yamlParser) {
-                $this->yamlParser = new Parser();
-            }
-
-            $classes = $this->yamlParser->parse(file_get_contents($this->file));
-
-            if (empty($classes)) {
-                return false;
-            }
-
-            // not an array
-            if (!is_array($classes)) {
-                throw new MappingException(sprintf('The file "%s" must contain a YAML array.', $this->file));
-            }
-
-            $this->classes = $classes;
-        }
-
-        if (isset($this->classes[$classMetadata->getName()])) {
-            $yaml = $this->classes[$classMetadata->getName()];
-
-            if (isset($yaml['attributes']) && is_array($yaml['attributes'])) {
-                $attributesMetadata = $classMetadata->getAttributesMetadata();
-                foreach ($yaml['attributes'] as $attribute => $data) {
-                    if (isset($attributesMetadata[$attribute])) {
-                        $attributeMetadata = $attributesMetadata[$attribute];
-                    } else {
-                        $attributeMetadata = new AttributeMetadata($attribute);
-                        $classMetadata->addAttributeMetadata($attributeMetadata);
-                    }
-
-                    if (isset($data['groups'])) {
-                        foreach ($data['groups'] as $group) {
-                            $attributeMetadata->addGroup($group);
-                        }
-                    }
-                }
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Mapping/Loader/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd b/core/vendor/symfony/serializer/Mapping/Loader/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd
deleted file mode 100644
index cd5a9a9..0000000
--- a/core/vendor/symfony/serializer/Mapping/Loader/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" ?>
-
-<xsd:schema xmlns="http://symfony.com/schema/dic/serializer-mapping"
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            targetNamespace="http://symfony.com/schema/dic/serializer-mapping"
-            elementFormDefault="qualified">
-
-    <xsd:annotation>
-        <xsd:documentation><![CDATA[
-      Symfony Serializer Mapping Schema, version 1.0
-      Authors: Kévin Dunglas
-
-      A serializer mapping connects attributes with serialization groups.
-    ]]></xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:element name="serializer" type="serializer" />
-
-    <xsd:complexType name="serializer">
-        <xsd:annotation>
-            <xsd:documentation><![CDATA[
-        The root element of the serializer mapping definition.
-      ]]></xsd:documentation>
-        </xsd:annotation>
-        <xsd:choice minOccurs="0" maxOccurs="unbounded">
-            <xsd:element name="class" type="class" />
-        </xsd:choice>
-    </xsd:complexType>
-
-    <xsd:complexType name="class">
-        <xsd:annotation>
-            <xsd:documentation><![CDATA[
-        Contains serialization groups for a single class.
-
-        Nested elements may be class property and/or getter definitions.
-      ]]></xsd:documentation>
-        </xsd:annotation>
-        <xsd:choice minOccurs="0" maxOccurs="unbounded">
-            <xsd:element name="attribute" type="attribute" minOccurs="0" maxOccurs="unbounded" />
-        </xsd:choice>
-        <xsd:attribute name="name" type="xsd:string" use="required" />
-    </xsd:complexType>
-
-    <xsd:complexType name="attribute">
-        <xsd:annotation>
-            <xsd:documentation><![CDATA[
-        Contains serialization groups for a attributes. The name of the attribute should be given in the "name" option.
-      ]]></xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:element name="group" type="xsd:string" maxOccurs="unbounded" />
-        </xsd:sequence>
-        <xsd:attribute name="name" type="xsd:string" use="required" />
-    </xsd:complexType>
-
-</xsd:schema>
diff --git a/core/vendor/symfony/serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php b/core/vendor/symfony/serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php
deleted file mode 100644
index 27f4eee..0000000
--- a/core/vendor/symfony/serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\NameConverter;
-
-/**
- * CamelCase to Underscore name converter.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class CamelCaseToSnakeCaseNameConverter implements NameConverterInterface
-{
-    /**
-     * @var array|null
-     */
-    private $attributes;
-    /**
-     * @var bool
-     */
-    private $lowerCamelCase;
-
-    /**
-     * @param null|array $attributes     The list of attributes to rename or null for all attributes.
-     * @param bool       $lowerCamelCase Use lowerCamelCase style.
-     */
-    public function __construct(array $attributes = null, $lowerCamelCase = true)
-    {
-        $this->attributes = $attributes;
-        $this->lowerCamelCase = $lowerCamelCase;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function normalize($propertyName)
-    {
-        if (null === $this->attributes || in_array($propertyName, $this->attributes)) {
-            $snakeCasedName = '';
-
-            $len = strlen($propertyName);
-            for ($i = 0; $i < $len; $i++) {
-                if (ctype_upper($propertyName[$i])) {
-                    $snakeCasedName .= '_'.strtolower($propertyName[$i]);
-                } else {
-                    $snakeCasedName .= strtolower($propertyName[$i]);
-                }
-            }
-
-            return $snakeCasedName;
-        }
-
-        return $propertyName;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function denormalize($propertyName)
-    {
-        $camelCasedName = preg_replace_callback('/(^|_|\.)+(.)/', function ($match) {
-            return ('.' === $match[1] ? '_' : '').strtoupper($match[2]);
-        }, $propertyName);
-
-        if ($this->lowerCamelCase) {
-            $camelCasedName = lcfirst($camelCasedName);
-        }
-
-        if (null === $this->attributes || in_array($camelCasedName, $this->attributes)) {
-            return $this->lowerCamelCase ? lcfirst($camelCasedName) : $camelCasedName;
-        }
-
-        return $propertyName;
-    }
-}
diff --git a/core/vendor/symfony/serializer/NameConverter/NameConverterInterface.php b/core/vendor/symfony/serializer/NameConverter/NameConverterInterface.php
deleted file mode 100644
index 306e654..0000000
--- a/core/vendor/symfony/serializer/NameConverter/NameConverterInterface.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\NameConverter;
-
-/**
- * Defines the interface for property name converters.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface NameConverterInterface
-{
-    /**
-     * Converts a property name to its normalized value.
-     *
-     * @param string $propertyName
-     * @return string
-     */
-    public function normalize($propertyName);
-
-    /**
-     * Converts a property name to its denormalized value.
-     *
-     * @param string $propertyName
-     * @return string
-     */
-    public function denormalize($propertyName);
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php b/core/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php
deleted file mode 100644
index 93dfba9..0000000
--- a/core/vendor/symfony/serializer/Normalizer/AbstractNormalizer.php
+++ /dev/null
@@ -1,337 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-use Symfony\Component\Serializer\Exception\CircularReferenceException;
-use Symfony\Component\Serializer\Exception\InvalidArgumentException;
-use Symfony\Component\Serializer\Exception\LogicException;
-use Symfony\Component\Serializer\Exception\RuntimeException;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
-use Symfony\Component\Serializer\Mapping\AttributeMetadataInterface;
-use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
-use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
-
-/**
- * Normalizer implementation.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-abstract class AbstractNormalizer extends SerializerAwareNormalizer implements NormalizerInterface, DenormalizerInterface
-{
-    /**
-     * @var int
-     */
-    protected $circularReferenceLimit = 1;
-    /**
-     * @var callable
-     */
-    protected $circularReferenceHandler;
-    /**
-     * @var ClassMetadataFactoryInterface|null
-     */
-    protected $classMetadataFactory;
-    /**
-     * @var NameConverterInterface|null
-     */
-    protected $nameConverter;
-    /**
-     * @var array
-     */
-    protected $callbacks = array();
-    /**
-     * @var array
-     */
-    protected $ignoredAttributes = array();
-    /**
-     * @var array
-     */
-    protected $camelizedAttributes = array();
-
-    /**
-     * Sets the {@link ClassMetadataFactoryInterface} to use.
-     *
-     * @param ClassMetadataFactoryInterface|null $classMetadataFactory
-     * @param NameConverterInterface|null        $nameConverter
-     */
-    public function __construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null)
-    {
-        $this->classMetadataFactory = $classMetadataFactory;
-        $this->nameConverter = $nameConverter;
-    }
-
-    /**
-     * Set circular reference limit.
-     *
-     * @param int $circularReferenceLimit limit of iterations for the same object
-     *
-     * @return self
-     */
-    public function setCircularReferenceLimit($circularReferenceLimit)
-    {
-        $this->circularReferenceLimit = $circularReferenceLimit;
-
-        return $this;
-    }
-
-    /**
-     * Set circular reference handler.
-     *
-     * @param callable $circularReferenceHandler
-     *
-     * @return self
-     *
-     * @throws InvalidArgumentException
-     */
-    public function setCircularReferenceHandler($circularReferenceHandler)
-    {
-        if (!is_callable($circularReferenceHandler)) {
-            throw new InvalidArgumentException('The given circular reference handler is not callable.');
-        }
-
-        $this->circularReferenceHandler = $circularReferenceHandler;
-
-        return $this;
-    }
-
-    /**
-     * Set normalization callbacks.
-     *
-     * @param array $callbacks help normalize the result
-     *
-     * @return self
-     *
-     * @throws InvalidArgumentException if a non-callable callback is set
-     */
-    public function setCallbacks(array $callbacks)
-    {
-        foreach ($callbacks as $attribute => $callback) {
-            if (!is_callable($callback)) {
-                throw new InvalidArgumentException(sprintf(
-                    'The given callback for attribute "%s" is not callable.',
-                    $attribute
-                ));
-            }
-        }
-        $this->callbacks = $callbacks;
-
-        return $this;
-    }
-
-    /**
-     * Set ignored attributes for normalization and denormalization.
-     *
-     * @param array $ignoredAttributes
-     *
-     * @return self
-     */
-    public function setIgnoredAttributes(array $ignoredAttributes)
-    {
-        $this->ignoredAttributes = $ignoredAttributes;
-
-        return $this;
-    }
-
-    /**
-     * Set attributes to be camelized on denormalize.
-     *
-     * @deprecated Deprecated since version 2.7, to be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.
-     *
-     * @param array $camelizedAttributes
-     *
-     * @return self
-     *
-     * @throws LogicException
-     */
-    public function setCamelizedAttributes(array $camelizedAttributes)
-    {
-        @trigger_error(sprintf('%s is deprecated since version 2.7 and will be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.', __METHOD__), E_USER_DEPRECATED);
-
-        if ($this->nameConverter && !$this->nameConverter instanceof CamelCaseToSnakeCaseNameConverter) {
-            throw new LogicException(sprintf('%s cannot be called if a custom Name Converter is defined.', __METHOD__));
-        }
-
-        $attributes = array();
-        foreach ($camelizedAttributes as $camelizedAttribute) {
-            $attributes[] = lcfirst(preg_replace_callback('/(^|_|\.)+(.)/', function ($match) {
-                return ('.' === $match[1] ? '_' : '').strtoupper($match[2]);
-            }, $camelizedAttribute));
-        }
-
-        $this->nameConverter = new CamelCaseToSnakeCaseNameConverter($attributes);
-
-        return $this;
-    }
-
-    /**
-     * Detects if the configured circular reference limit is reached.
-     *
-     * @param object $object
-     * @param array  $context
-     *
-     * @return bool
-     *
-     * @throws CircularReferenceException
-     */
-    protected function isCircularReference($object, &$context)
-    {
-        $objectHash = spl_object_hash($object);
-
-        if (isset($context['circular_reference_limit'][$objectHash])) {
-            if ($context['circular_reference_limit'][$objectHash] >= $this->circularReferenceLimit) {
-                unset($context['circular_reference_limit'][$objectHash]);
-
-                return true;
-            }
-
-            $context['circular_reference_limit'][$objectHash]++;
-        } else {
-            $context['circular_reference_limit'][$objectHash] = 1;
-        }
-
-        return false;
-    }
-
-    /**
-     * Handles a circular reference.
-     *
-     * If a circular reference handler is set, it will be called. Otherwise, a
-     * {@class CircularReferenceException} will be thrown.
-     *
-     * @param object $object
-     *
-     * @return mixed
-     *
-     * @throws CircularReferenceException
-     */
-    protected function handleCircularReference($object)
-    {
-        if ($this->circularReferenceHandler) {
-            return call_user_func($this->circularReferenceHandler, $object);
-        }
-
-        throw new CircularReferenceException(sprintf('A circular reference has been detected (configured limit: %d).', $this->circularReferenceLimit));
-    }
-
-    /**
-     * Format an attribute name, for example to convert a snake_case name to camelCase.
-     *
-     * @deprecated Deprecated since version 2.7, to be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.
-     *
-     * @param string $attributeName
-     *
-     * @return string
-     */
-    protected function formatAttribute($attributeName)
-    {
-        @trigger_error(sprintf('%s is deprecated since version 2.7 and will be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.', __METHOD__), E_USER_DEPRECATED);
-
-        return $this->nameConverter ? $this->nameConverter->normalize($attributeName) : $attributeName;
-    }
-
-    /**
-     * Gets attributes to normalize using groups.
-     *
-     * @param string|object $classOrObject
-     * @param array         $context
-     * @param bool          $attributesAsString If false, return an array of {@link AttributeMetadataInterface}
-     *
-     * @return string[]|AttributeMetadataInterface[]|bool
-     */
-    protected function getAllowedAttributes($classOrObject, array $context, $attributesAsString = false)
-    {
-        if (!$this->classMetadataFactory || !isset($context['groups']) || !is_array($context['groups'])) {
-            return false;
-        }
-
-        $allowedAttributes = array();
-        foreach ($this->classMetadataFactory->getMetadataFor($classOrObject)->getAttributesMetadata() as $attributeMetadata) {
-            if (count(array_intersect($attributeMetadata->getGroups(), $context['groups']))) {
-                $allowedAttributes[] = $attributesAsString ? $attributeMetadata->getName() : $attributeMetadata;
-            }
-        }
-
-        return array_unique($allowedAttributes);
-    }
-
-    /**
-     * Normalizes the given data to an array. It's particularly useful during
-     * the denormalization process.
-     *
-     * @param object|array $data
-     *
-     * @return array
-     */
-    protected function prepareForDenormalization($data)
-    {
-        return (array) $data;
-    }
-
-    /**
-     * Instantiates an object using constructor parameters when needed.
-     *
-     * This method also allows to denormalize data into an existing object if
-     * it is present in the context with the object_to_populate key.
-     *
-     * @param array            $data
-     * @param string           $class
-     * @param array            $context
-     * @param \ReflectionClass $reflectionClass
-     * @param array|bool       $allowedAttributes
-     *
-     * @return object
-     *
-     * @throws RuntimeException
-     */
-    protected function instantiateObject(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes)
-    {
-        if (
-            isset($context['object_to_populate']) &&
-            is_object($context['object_to_populate']) &&
-            $class === get_class($context['object_to_populate'])
-        ) {
-            return $context['object_to_populate'];
-        }
-
-        $constructor = $reflectionClass->getConstructor();
-        if ($constructor) {
-            $constructorParameters = $constructor->getParameters();
-
-            $params = array();
-            foreach ($constructorParameters as $constructorParameter) {
-                $paramName = $constructorParameter->name;
-                $key = $this->nameConverter ? $this->nameConverter->normalize($paramName) : $paramName;
-
-                $allowed = $allowedAttributes === false || in_array($paramName, $allowedAttributes);
-                $ignored = in_array($paramName, $this->ignoredAttributes);
-                if ($allowed && !$ignored && array_key_exists($key, $data)) {
-                    $params[] = $data[$key];
-                    // don't run set for a parameter passed to the constructor
-                    unset($data[$key]);
-                } elseif ($constructorParameter->isDefaultValueAvailable()) {
-                    $params[] = $constructorParameter->getDefaultValue();
-                } else {
-                    throw new RuntimeException(
-                        sprintf(
-                            'Cannot create an instance of %s from serialized data because its constructor requires parameter "%s" to be present.',
-                            $class,
-                            $constructorParameter->name
-                        )
-                    );
-                }
-            }
-
-            return $reflectionClass->newInstanceArgs($params);
-        }
-
-        return new $class();
-    }
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/CustomNormalizer.php b/core/vendor/symfony/serializer/Normalizer/CustomNormalizer.php
deleted file mode 100644
index 83c3c14..0000000
--- a/core/vendor/symfony/serializer/Normalizer/CustomNormalizer.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-/**
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-class CustomNormalizer extends SerializerAwareNormalizer implements NormalizerInterface, DenormalizerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function normalize($object, $format = null, array $context = array())
-    {
-        return $object->normalize($this->serializer, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function denormalize($data, $class, $format = null, array $context = array())
-    {
-        $object = new $class();
-        $object->denormalize($this->serializer, $data, $format, $context);
-
-        return $object;
-    }
-
-    /**
-     * Checks if the given class implements the NormalizableInterface.
-     *
-     * @param mixed  $data   Data to normalize.
-     * @param string $format The format being (de-)serialized from or into.
-     *
-     * @return bool
-     */
-    public function supportsNormalization($data, $format = null)
-    {
-        return $data instanceof NormalizableInterface;
-    }
-
-    /**
-     * Checks if the given class implements the NormalizableInterface.
-     *
-     * @param mixed  $data   Data to denormalize from.
-     * @param string $type   The class to which the data should be denormalized.
-     * @param string $format The format being deserialized from.
-     *
-     * @return bool
-     */
-    public function supportsDenormalization($data, $type, $format = null)
-    {
-        $class = new \ReflectionClass($type);
-
-        return $class->isSubclassOf('Symfony\Component\Serializer\Normalizer\DenormalizableInterface');
-    }
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/DenormalizableInterface.php b/core/vendor/symfony/serializer/Normalizer/DenormalizableInterface.php
deleted file mode 100644
index 86c2702..0000000
--- a/core/vendor/symfony/serializer/Normalizer/DenormalizableInterface.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-/**
- * Defines the most basic interface a class must implement to be denormalizable.
- *
- * If a denormalizer is registered for the class and it doesn't implement
- * the Denormalizable interfaces, the normalizer will be used instead
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface DenormalizableInterface
-{
-    /**
-     * Denormalizes the object back from an array of scalars|arrays.
-     *
-     * It is important to understand that the denormalize() call should denormalize
-     * recursively all child objects of the implementor.
-     *
-     * @param DenormalizerInterface $denormalizer The denormalizer is given so that you
-     *                                            can use it to denormalize objects contained within this object
-     * @param array|scalar          $data         The data from which to re-create the object.
-     * @param string|null           $format       The format is optionally given to be able to denormalize differently
-     *                                            based on different input formats
-     * @param array                 $context      options for denormalizing
-     */
-    public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = array());
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/DenormalizerInterface.php b/core/vendor/symfony/serializer/Normalizer/DenormalizerInterface.php
deleted file mode 100644
index 8b6c233..0000000
--- a/core/vendor/symfony/serializer/Normalizer/DenormalizerInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-/**
- * Defines the interface of denormalizers.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface DenormalizerInterface
-{
-    /**
-     * Denormalizes data back into an object of the given class.
-     *
-     * @param mixed  $data    data to restore
-     * @param string $class   the expected class to instantiate
-     * @param string $format  format the given data was extracted from
-     * @param array  $context options available to the denormalizer
-     *
-     * @return object
-     */
-    public function denormalize($data, $class, $format = null, array $context = array());
-
-    /**
-     * Checks whether the given class is supported for denormalization by this normalizer.
-     *
-     * @param mixed  $data   Data to denormalize from.
-     * @param string $type   The class to which the data should be denormalized.
-     * @param string $format The format being deserialized from.
-     *
-     * @return bool
-     */
-    public function supportsDenormalization($data, $type, $format = null);
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php b/core/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php
deleted file mode 100644
index 44a71cf..0000000
--- a/core/vendor/symfony/serializer/Normalizer/GetSetMethodNormalizer.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-use Symfony\Component\Serializer\Exception\CircularReferenceException;
-use Symfony\Component\Serializer\Exception\LogicException;
-use Symfony\Component\Serializer\Exception\RuntimeException;
-
-/**
- * Converts between objects with getter and setter methods and arrays.
- *
- * The normalization process looks at all public methods and calls the ones
- * which have a name starting with get and take no parameters. The result is a
- * map from property names (method name stripped of the get prefix and converted
- * to lower case) to property values. Property values are normalized through the
- * serializer.
- *
- * The denormalization first looks at the constructor of the given class to see
- * if any of the parameters have the same name as one of the properties. The
- * constructor is then called with all parameters or an exception is thrown if
- * any required parameters were not present as properties. Then the denormalizer
- * walks through the given map of property names to property values to see if a
- * setter method exists for any of the properties. If a setter exists it is
- * called with the property value. No automatic denormalization of the value
- * takes place.
- *
- * @author Nils Adermann <naderman@naderman.de>
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class GetSetMethodNormalizer extends AbstractNormalizer
-{
-    /**
-     * {@inheritdoc}
-     *
-     * @throws LogicException
-     * @throws CircularReferenceException
-     */
-    public function normalize($object, $format = null, array $context = array())
-    {
-        if ($this->isCircularReference($object, $context)) {
-            return $this->handleCircularReference($object);
-        }
-
-        $reflectionObject = new \ReflectionObject($object);
-        $reflectionMethods = $reflectionObject->getMethods(\ReflectionMethod::IS_PUBLIC);
-        $allowedAttributes = $this->getAllowedAttributes($object, $context, true);
-
-        $attributes = array();
-        foreach ($reflectionMethods as $method) {
-            if ($this->isGetMethod($method)) {
-                $attributeName = lcfirst(substr($method->name, 0 === strpos($method->name, 'is') ? 2 : 3));
-                if (in_array($attributeName, $this->ignoredAttributes)) {
-                    continue;
-                }
-
-                if (false !== $allowedAttributes && !in_array($attributeName, $allowedAttributes)) {
-                    continue;
-                }
-
-                $attributeValue = $method->invoke($object);
-                if (isset($this->callbacks[$attributeName])) {
-                    $attributeValue = call_user_func($this->callbacks[$attributeName], $attributeValue);
-                }
-                if (null !== $attributeValue && !is_scalar($attributeValue)) {
-                    if (!$this->serializer instanceof NormalizerInterface) {
-                        throw new LogicException(sprintf('Cannot normalize attribute "%s" because injected serializer is not a normalizer', $attributeName));
-                    }
-
-                    $attributeValue = $this->serializer->normalize($attributeValue, $format, $context);
-                }
-
-                if ($this->nameConverter) {
-                    $attributeName = $this->nameConverter->normalize($attributeName);
-                }
-
-                $attributes[$attributeName] = $attributeValue;
-            }
-        }
-
-        return $attributes;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws RuntimeException
-     */
-    public function denormalize($data, $class, $format = null, array $context = array())
-    {
-        $allowedAttributes = $this->getAllowedAttributes($class, $context, true);
-        $normalizedData = $this->prepareForDenormalization($data);
-
-        $reflectionClass = new \ReflectionClass($class);
-        $object = $this->instantiateObject($normalizedData, $class, $context, $reflectionClass, $allowedAttributes);
-
-        $classMethods = get_class_methods($object);
-        foreach ($normalizedData as $attribute => $value) {
-            if ($this->nameConverter) {
-                $attribute = $this->nameConverter->denormalize($attribute);
-            }
-
-            $allowed = $allowedAttributes === false || in_array($attribute, $allowedAttributes);
-            $ignored = in_array($attribute, $this->ignoredAttributes);
-
-            if ($allowed && !$ignored) {
-                $setter = 'set'.ucfirst($attribute);
-
-                if (in_array($setter, $classMethods)) {
-                    $object->$setter($value);
-                }
-            }
-        }
-
-        return $object;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsNormalization($data, $format = null)
-    {
-        return is_object($data) && !$data instanceof \Traversable && $this->supports(get_class($data));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDenormalization($data, $type, $format = null)
-    {
-        return $this->supports($type);
-    }
-
-    /**
-     * Checks if the given class has any get{Property} method.
-     *
-     * @param string $class
-     *
-     * @return bool
-     */
-    private function supports($class)
-    {
-        $class = new \ReflectionClass($class);
-        $methods = $class->getMethods(\ReflectionMethod::IS_PUBLIC);
-        foreach ($methods as $method) {
-            if ($this->isGetMethod($method)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Checks if a method's name is get.* or is.*, and can be called without parameters.
-     *
-     * @param \ReflectionMethod $method the method to check
-     *
-     * @return bool whether the method is a getter or boolean getter.
-     */
-    private function isGetMethod(\ReflectionMethod $method)
-    {
-        $methodLength = strlen($method->name);
-
-        return (
-            ((0 === strpos($method->name, 'get') && 3 < $methodLength) ||
-            (0 === strpos($method->name, 'is') && 2 < $methodLength)) &&
-            0 === $method->getNumberOfRequiredParameters()
-        );
-    }
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/NormalizableInterface.php b/core/vendor/symfony/serializer/Normalizer/NormalizableInterface.php
deleted file mode 100644
index b9fefe8..0000000
--- a/core/vendor/symfony/serializer/Normalizer/NormalizableInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-/**
- * Defines the most basic interface a class must implement to be normalizable.
- *
- * If a normalizer is registered for the class and it doesn't implement
- * the Normalizable interfaces, the normalizer will be used instead.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface NormalizableInterface
-{
-    /**
-     * Normalizes the object into an array of scalars|arrays.
-     *
-     * It is important to understand that the normalize() call should normalize
-     * recursively all child objects of the implementor.
-     *
-     * @param NormalizerInterface $normalizer The normalizer is given so that you
-     *                                        can use it to normalize objects contained within this object.
-     * @param string|null         $format     The format is optionally given to be able to normalize differently
-     *                                        based on different output formats.
-     * @param array               $context    Options for normalizing this object
-     *
-     * @return array|string|bool|int|float|null
-     */
-    public function normalize(NormalizerInterface $normalizer, $format = null, array $context = array());
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/NormalizerInterface.php b/core/vendor/symfony/serializer/Normalizer/NormalizerInterface.php
deleted file mode 100644
index 2a51d63..0000000
--- a/core/vendor/symfony/serializer/Normalizer/NormalizerInterface.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-/**
- * Defines the interface of normalizers.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface NormalizerInterface
-{
-    /**
-     * Normalizes an object into a set of arrays/scalars.
-     *
-     * @param object $object  object to normalize
-     * @param string $format  format the normalization result will be encoded as
-     * @param array  $context Context options for the normalizer
-     *
-     * @return array|string|bool|int|float|null
-     */
-    public function normalize($object, $format = null, array $context = array());
-
-    /**
-     * Checks whether the given class is supported for normalization by this normalizer.
-     *
-     * @param mixed  $data   Data to normalize.
-     * @param string $format The format being (de-)serialized from or into.
-     *
-     * @return bool
-     */
-    public function supportsNormalization($data, $format = null);
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/ObjectNormalizer.php b/core/vendor/symfony/serializer/Normalizer/ObjectNormalizer.php
deleted file mode 100644
index ba84ac7..0000000
--- a/core/vendor/symfony/serializer/Normalizer/ObjectNormalizer.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-use Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException;
-use Symfony\Component\PropertyAccess\PropertyAccess;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\Serializer\Exception\CircularReferenceException;
-use Symfony\Component\Serializer\Exception\LogicException;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
-use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
-
-/**
- * Converts between objects and arrays using the PropertyAccess component.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ObjectNormalizer extends AbstractNormalizer
-{
-    /**
-     * @var PropertyAccessorInterface
-     */
-    protected $propertyAccessor;
-
-    public function __construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null, PropertyAccessorInterface $propertyAccessor = null)
-    {
-        parent::__construct($classMetadataFactory, $nameConverter);
-
-        $this->propertyAccessor = $propertyAccessor ?: PropertyAccess::createPropertyAccessor();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsNormalization($data, $format = null)
-    {
-        return is_object($data) && !$data instanceof \Traversable;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws CircularReferenceException
-     */
-    public function normalize($object, $format = null, array $context = array())
-    {
-        if ($this->isCircularReference($object, $context)) {
-            return $this->handleCircularReference($object);
-        }
-
-        $data = array();
-        $attributes = $this->getAllowedAttributes($object, $context, true);
-
-        // If not using groups, detect manually
-        if (false === $attributes) {
-            $attributes = array();
-
-            // methods
-            $reflClass = new \ReflectionClass($object);
-            foreach ($reflClass->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflMethod) {
-                if (
-                    !$reflMethod->isConstructor() &&
-                    !$reflMethod->isDestructor() &&
-                    0 === $reflMethod->getNumberOfRequiredParameters()
-                ) {
-                    $name = $reflMethod->getName();
-
-                    if (strpos($name, 'get') === 0 || strpos($name, 'has') === 0) {
-                        // getters and hassers
-                        $attributes[lcfirst(substr($name, 3))] = true;
-                    } elseif (strpos($name, 'is') === 0) {
-                        // issers
-                        $attributes[lcfirst(substr($name, 2))] = true;
-                    }
-                }
-            }
-
-            // properties
-            foreach ($reflClass->getProperties(\ReflectionProperty::IS_PUBLIC) as $reflProperty) {
-                $attributes[$reflProperty->getName()] = true;
-            }
-
-            $attributes = array_keys($attributes);
-        }
-
-        foreach ($attributes as $attribute) {
-            if (in_array($attribute, $this->ignoredAttributes)) {
-                continue;
-            }
-
-            $attributeValue = $this->propertyAccessor->getValue($object, $attribute);
-
-            if (isset($this->callbacks[$attribute])) {
-                $attributeValue = call_user_func($this->callbacks[$attribute], $attributeValue);
-            }
-
-            if (null !== $attributeValue && !is_scalar($attributeValue)) {
-                if (!$this->serializer instanceof NormalizerInterface) {
-                    throw new LogicException(sprintf('Cannot normalize attribute "%s" because injected serializer is not a normalizer', $attribute));
-                }
-
-                $attributeValue = $this->serializer->normalize($attributeValue, $format, $context);
-            }
-
-            if ($this->nameConverter) {
-                $attribute = $this->nameConverter->normalize($attribute);
-            }
-
-            $data[$attribute] = $attributeValue;
-        }
-
-        return $data;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDenormalization($data, $type, $format = null)
-    {
-        return class_exists($type);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function denormalize($data, $class, $format = null, array $context = array())
-    {
-        $allowedAttributes = $this->getAllowedAttributes($class, $context, true);
-        $normalizedData = $this->prepareForDenormalization($data);
-
-        $reflectionClass = new \ReflectionClass($class);
-        $object = $this->instantiateObject($normalizedData, $class, $context, $reflectionClass, $allowedAttributes);
-
-        foreach ($normalizedData as $attribute => $value) {
-            if ($this->nameConverter) {
-                $attribute = $this->nameConverter->denormalize($attribute);
-            }
-
-            $allowed = $allowedAttributes === false || in_array($attribute, $allowedAttributes);
-            $ignored = in_array($attribute, $this->ignoredAttributes);
-
-            if ($allowed && !$ignored) {
-                try {
-                    $this->propertyAccessor->setValue($object, $attribute, $value);
-                } catch (NoSuchPropertyException $exception) {
-                    // Properties not found are ignored
-                }
-            }
-        }
-
-        return $object;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php b/core/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php
deleted file mode 100644
index c8e83d1..0000000
--- a/core/vendor/symfony/serializer/Normalizer/PropertyNormalizer.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-use Symfony\Component\Serializer\Exception\CircularReferenceException;
-use Symfony\Component\Serializer\Exception\LogicException;
-use Symfony\Component\Serializer\Exception\RuntimeException;
-
-/**
- * Converts between objects and arrays by mapping properties.
- *
- * The normalization process looks for all the object's properties (public and private).
- * The result is a map from property names to property values. Property values
- * are normalized through the serializer.
- *
- * The denormalization first looks at the constructor of the given class to see
- * if any of the parameters have the same name as one of the properties. The
- * constructor is then called with all parameters or an exception is thrown if
- * any required parameters were not present as properties. Then the denormalizer
- * walks through the given map of property names to property values to see if a
- * property with the corresponding name exists. If found, the property gets the value.
- *
- * @author Matthieu Napoli <matthieu@mnapoli.fr>
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class PropertyNormalizer extends AbstractNormalizer
-{
-    /**
-     * {@inheritdoc}
-     *
-     * @throws CircularReferenceException
-     */
-    public function normalize($object, $format = null, array $context = array())
-    {
-        if ($this->isCircularReference($object, $context)) {
-            return $this->handleCircularReference($object);
-        }
-
-        $reflectionObject = new \ReflectionObject($object);
-        $attributes = array();
-        $allowedAttributes = $this->getAllowedAttributes($object, $context, true);
-
-        foreach ($reflectionObject->getProperties() as $property) {
-            if (in_array($property->name, $this->ignoredAttributes)) {
-                continue;
-            }
-
-            if (false !== $allowedAttributes && !in_array($property->name, $allowedAttributes)) {
-                continue;
-            }
-
-            // Override visibility
-            if (!$property->isPublic()) {
-                $property->setAccessible(true);
-            }
-
-            $attributeValue = $property->getValue($object);
-
-            if (isset($this->callbacks[$property->name])) {
-                $attributeValue = call_user_func($this->callbacks[$property->name], $attributeValue);
-            }
-            if (null !== $attributeValue && !is_scalar($attributeValue)) {
-                if (!$this->serializer instanceof NormalizerInterface) {
-                    throw new LogicException(sprintf('Cannot normalize attribute "%s" because injected serializer is not a normalizer', $property->name));
-                }
-
-                $attributeValue = $this->serializer->normalize($attributeValue, $format, $context);
-            }
-
-            $propertyName = $property->name;
-            if ($this->nameConverter) {
-                $propertyName = $this->nameConverter->normalize($propertyName);
-            }
-
-            $attributes[$propertyName] = $attributeValue;
-        }
-
-        return $attributes;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws RuntimeException
-     */
-    public function denormalize($data, $class, $format = null, array $context = array())
-    {
-        $allowedAttributes = $this->getAllowedAttributes($class, $context, true);
-        $data = $this->prepareForDenormalization($data);
-
-        $reflectionClass = new \ReflectionClass($class);
-        $object = $this->instantiateObject($data, $class, $context, $reflectionClass, $allowedAttributes);
-
-        foreach ($data as $propertyName => $value) {
-            if ($this->nameConverter) {
-                $propertyName = $this->nameConverter->denormalize($propertyName);
-            }
-
-            $allowed = $allowedAttributes === false || in_array($propertyName, $allowedAttributes);
-            $ignored = in_array($propertyName, $this->ignoredAttributes);
-            if ($allowed && !$ignored && $reflectionClass->hasProperty($propertyName)) {
-                $property = $reflectionClass->getProperty($propertyName);
-
-                // Override visibility
-                if (!$property->isPublic()) {
-                    $property->setAccessible(true);
-                }
-
-                $property->setValue($object, $value);
-            }
-        }
-
-        return $object;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsNormalization($data, $format = null)
-    {
-        return is_object($data) && !$data instanceof \Traversable && $this->supports(get_class($data));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDenormalization($data, $type, $format = null)
-    {
-        return $this->supports($type);
-    }
-
-    /**
-     * Checks if the given class has any non-static property.
-     *
-     * @param string $class
-     *
-     * @return bool
-     */
-    private function supports($class)
-    {
-        $class = new \ReflectionClass($class);
-
-        // We look for at least one non-static property
-        foreach ($class->getProperties() as $property) {
-            if (!$property->isStatic()) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Normalizer/SerializerAwareNormalizer.php b/core/vendor/symfony/serializer/Normalizer/SerializerAwareNormalizer.php
deleted file mode 100644
index 3956857..0000000
--- a/core/vendor/symfony/serializer/Normalizer/SerializerAwareNormalizer.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Normalizer;
-
-use Symfony\Component\Serializer\SerializerInterface;
-use Symfony\Component\Serializer\SerializerAwareInterface;
-
-/**
- * SerializerAware Normalizer implementation.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-abstract class SerializerAwareNormalizer implements SerializerAwareInterface
-{
-    /**
-     * @var SerializerInterface
-     */
-    protected $serializer;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setSerializer(SerializerInterface $serializer)
-    {
-        $this->serializer = $serializer;
-    }
-}
diff --git a/core/vendor/symfony/serializer/README.md b/core/vendor/symfony/serializer/README.md
deleted file mode 100644
index 156a288..0000000
--- a/core/vendor/symfony/serializer/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Serializer Component
-====================
-
-With the Serializer component it's possible to handle serializing data structures,
-including object graphs, into array structures or other formats like XML and JSON.
-It can also handle deserializing XML and JSON back to object graphs.
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Serializer/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/serializer/Serializer.php b/core/vendor/symfony/serializer/Serializer.php
deleted file mode 100644
index 4aeddab..0000000
--- a/core/vendor/symfony/serializer/Serializer.php
+++ /dev/null
@@ -1,310 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer;
-
-use Symfony\Component\Serializer\Encoder\ChainDecoder;
-use Symfony\Component\Serializer\Encoder\ChainEncoder;
-use Symfony\Component\Serializer\Encoder\EncoderInterface;
-use Symfony\Component\Serializer\Encoder\DecoderInterface;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
-use Symfony\Component\Serializer\Exception\LogicException;
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-
-/**
- * Serializer serializes and deserializes data.
- *
- * objects are turned into arrays by normalizers.
- * arrays are turned into various output formats by encoders.
- *
- * $serializer->serialize($obj, 'xml')
- * $serializer->decode($data, 'xml')
- * $serializer->denormalize($data, 'Class', 'xml')
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Lukas Kahwe Smith <smith@pooteeweet.org>
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class Serializer implements SerializerInterface, NormalizerInterface, DenormalizerInterface, EncoderInterface, DecoderInterface
-{
-    /**
-     * @var Encoder\ChainEncoder
-     */
-    protected $encoder;
-    /**
-     * @var Encoder\ChainDecoder
-     */
-    protected $decoder;
-    /**
-     * @var array
-     */
-    protected $normalizers = array();
-    /**
-     * @var array
-     */
-    protected $normalizerCache = array();
-    /**
-     * @var array
-     */
-    protected $denormalizerCache = array();
-
-    public function __construct(array $normalizers = array(), array $encoders = array())
-    {
-        foreach ($normalizers as $normalizer) {
-            if ($normalizer instanceof SerializerAwareInterface) {
-                $normalizer->setSerializer($this);
-            }
-        }
-        $this->normalizers = $normalizers;
-
-        $decoders = array();
-        $realEncoders = array();
-        foreach ($encoders as $encoder) {
-            if ($encoder instanceof SerializerAwareInterface) {
-                $encoder->setSerializer($this);
-            }
-            if ($encoder instanceof DecoderInterface) {
-                $decoders[] = $encoder;
-            }
-            if ($encoder instanceof EncoderInterface) {
-                $realEncoders[] = $encoder;
-            }
-        }
-        $this->encoder = new ChainEncoder($realEncoders);
-        $this->decoder = new ChainDecoder($decoders);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function serialize($data, $format, array $context = array())
-    {
-        if (!$this->supportsEncoding($format)) {
-            throw new UnexpectedValueException(sprintf('Serialization for the format %s is not supported', $format));
-        }
-
-        if ($this->encoder->needsNormalization($format)) {
-            $data = $this->normalize($data, $format, $context);
-        }
-
-        return $this->encode($data, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function deserialize($data, $type, $format, array $context = array())
-    {
-        if (!$this->supportsDecoding($format)) {
-            throw new UnexpectedValueException(sprintf('Deserialization for the format %s is not supported', $format));
-        }
-
-        $data = $this->decode($data, $format, $context);
-
-        return $this->denormalize($data, $type, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function normalize($data, $format = null, array $context = array())
-    {
-        // If a normalizer supports the given data, use it
-        if ($normalizer = $this->getNormalizer($data, $format)) {
-            return $normalizer->normalize($data, $format, $context);
-        }
-
-        if (null === $data || is_scalar($data)) {
-            return $data;
-        }
-        if (is_object($data) && $this->supportsNormalization($data, $format)) {
-            return $this->normalizeObject($data, $format, $context);
-        }
-        if ($data instanceof \Traversable) {
-            $normalized = array();
-            foreach ($data as $key => $val) {
-                $normalized[$key] = $this->normalize($val, $format, $context);
-            }
-
-            return $normalized;
-        }
-        if (is_object($data)) {
-            return $this->normalizeObject($data, $format, $context);
-        }
-        if (is_array($data)) {
-            foreach ($data as $key => $val) {
-                $data[$key] = $this->normalize($val, $format, $context);
-            }
-
-            return $data;
-        }
-        throw new UnexpectedValueException(sprintf('An unexpected value could not be normalized: %s', var_export($data, true)));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function denormalize($data, $type, $format = null, array $context = array())
-    {
-        return $this->denormalizeObject($data, $type, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsNormalization($data, $format = null)
-    {
-        return null !== $this->getNormalizer($data, $format);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDenormalization($data, $type, $format = null)
-    {
-        return null !== $this->getDenormalizer($data, $type, $format);
-    }
-
-    /**
-     * Returns a matching normalizer.
-     *
-     * @param mixed  $data   Data to get the serializer for
-     * @param string $format format name, present to give the option to normalizers to act differently based on formats
-     *
-     * @return NormalizerInterface|null
-     */
-    private function getNormalizer($data, $format)
-    {
-        if ($isObject = is_object($data)) {
-            $class = get_class($data);
-            if (isset($this->normalizerCache[$class][$format])) {
-                return $this->normalizerCache[$class][$format];
-            }
-        }
-
-        foreach ($this->normalizers as $normalizer) {
-            if ($normalizer instanceof NormalizerInterface && $normalizer->supportsNormalization($data, $format)) {
-                if ($isObject) {
-                    $this->normalizerCache[$class][$format] = $normalizer;
-                }
-
-                return $normalizer;
-            }
-        }
-    }
-
-    /**
-     * Returns a matching denormalizer.
-     *
-     * @param mixed  $data   data to restore
-     * @param string $class  the expected class to instantiate
-     * @param string $format format name, present to give the option to normalizers to act differently based on formats
-     *
-     * @return DenormalizerInterface|null
-     */
-    private function getDenormalizer($data, $class, $format)
-    {
-        if (isset($this->denormalizerCache[$class][$format])) {
-            return $this->denormalizerCache[$class][$format];
-        }
-
-        foreach ($this->normalizers as $normalizer) {
-            if ($normalizer instanceof DenormalizerInterface && $normalizer->supportsDenormalization($data, $class, $format)) {
-                $this->denormalizerCache[$class][$format] = $normalizer;
-
-                return $normalizer;
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function encode($data, $format, array $context = array())
-    {
-        return $this->encoder->encode($data, $format, $context);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function decode($data, $format, array $context = array())
-    {
-        return $this->decoder->decode($data, $format, $context);
-    }
-
-    /**
-     * Normalizes an object into a set of arrays/scalars.
-     *
-     * @param object $object  object to normalize
-     * @param string $format  format name, present to give the option to normalizers to act differently based on formats
-     * @param array  $context The context data for this particular normalization
-     *
-     * @return array|string|bool|int|float|null
-     *
-     * @throws LogicException
-     * @throws UnexpectedValueException
-     */
-    private function normalizeObject($object, $format, array $context = array())
-    {
-        if (!$this->normalizers) {
-            throw new LogicException('You must register at least one normalizer to be able to normalize objects.');
-        }
-
-        if ($normalizer = $this->getNormalizer($object, $format)) {
-            return $normalizer->normalize($object, $format, $context);
-        }
-        throw new UnexpectedValueException(sprintf('Could not normalize object of type %s, no supporting normalizer found.', get_class($object)));
-    }
-
-    /**
-     * Denormalizes data back into an object of the given class.
-     *
-     * @param mixed  $data    data to restore
-     * @param string $class   the expected class to instantiate
-     * @param string $format  format name, present to give the option to normalizers to act differently based on formats
-     * @param array  $context The context data for this particular denormalization
-     *
-     * @return object
-     *
-     * @throws LogicException
-     * @throws UnexpectedValueException
-     */
-    private function denormalizeObject($data, $class, $format, array $context = array())
-    {
-        if (!$this->normalizers) {
-            throw new LogicException('You must register at least one normalizer to be able to denormalize objects.');
-        }
-
-        if ($normalizer = $this->getDenormalizer($data, $class, $format)) {
-            return $normalizer->denormalize($data, $class, $format, $context);
-        }
-        throw new UnexpectedValueException(sprintf('Could not denormalize object of type %s, no supporting normalizer found.', $class));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsEncoding($format)
-    {
-        return $this->encoder->supportsEncoding($format);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDecoding($format)
-    {
-        return $this->decoder->supportsDecoding($format);
-    }
-}
diff --git a/core/vendor/symfony/serializer/SerializerAwareInterface.php b/core/vendor/symfony/serializer/SerializerAwareInterface.php
deleted file mode 100644
index dd0a62e..0000000
--- a/core/vendor/symfony/serializer/SerializerAwareInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer;
-
-/**
- * Defines the interface of encoders.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface SerializerAwareInterface
-{
-    /**
-     * Sets the owning Serializer object.
-     *
-     * @param SerializerInterface $serializer
-     */
-    public function setSerializer(SerializerInterface $serializer);
-}
diff --git a/core/vendor/symfony/serializer/SerializerInterface.php b/core/vendor/symfony/serializer/SerializerInterface.php
deleted file mode 100644
index c79db91..0000000
--- a/core/vendor/symfony/serializer/SerializerInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer;
-
-/**
- * Defines the interface of the Serializer.
- *
- * @author Jordi Boggiano <j.boggiano@seld.be>
- */
-interface SerializerInterface
-{
-    /**
-     * Serializes data in the appropriate format.
-     *
-     * @param mixed  $data    any data
-     * @param string $format  format name
-     * @param array  $context options normalizers/encoders have access to
-     *
-     * @return string
-     */
-    public function serialize($data, $format, array $context = array());
-
-    /**
-     * Deserializes data into the given type.
-     *
-     * @param mixed  $data
-     * @param string $type
-     * @param string $format
-     * @param array  $context
-     *
-     * @return object
-     */
-    public function deserialize($data, $type, $format, array $context = array());
-}
diff --git a/core/vendor/symfony/serializer/Tests/Annotation/GroupsTest.php b/core/vendor/symfony/serializer/Tests/Annotation/GroupsTest.php
deleted file mode 100644
index 72b8777..0000000
--- a/core/vendor/symfony/serializer/Tests/Annotation/GroupsTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Annotation;
-
-use Symfony\Component\Serializer\Annotation\Groups;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class GroupsTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\InvalidArgumentException
-     */
-    public function testEmptyGroupsParameter()
-    {
-        new Groups(array('value' => array()));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\InvalidArgumentException
-     */
-    public function testNotAnArrayGroupsParameter()
-    {
-        new Groups(array('value' => 'coopTilleuls'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\InvalidArgumentException
-     */
-    public function testInvalidGroupsParameter()
-    {
-        new Groups(array('value' => array('a', 1, new \stdClass())));
-    }
-
-    public function testGroupsParameters()
-    {
-        $validData = array('a', 'b');
-
-        $groups = new Groups(array('value' => $validData));
-        $this->assertEquals($validData, $groups->getGroups());
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Encoder/JsonEncoderTest.php b/core/vendor/symfony/serializer/Tests/Encoder/JsonEncoderTest.php
deleted file mode 100644
index c7bd11e..0000000
--- a/core/vendor/symfony/serializer/Tests/Encoder/JsonEncoderTest.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Encoder;
-
-use Symfony\Component\Serializer\Encoder\JsonEncoder;
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\Normalizer\CustomNormalizer;
-
-class JsonEncoderTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        $this->encoder = new JsonEncoder();
-        $this->serializer = new Serializer(array(new CustomNormalizer()), array('json' => new JsonEncoder()));
-    }
-
-    public function testEncodeScalar()
-    {
-        $obj = new \stdClass();
-        $obj->foo = 'foo';
-
-        $expected = '{"foo":"foo"}';
-
-        $this->assertEquals($expected, $this->encoder->encode($obj, 'json'));
-    }
-
-    public function testComplexObject()
-    {
-        $obj = $this->getObject();
-
-        $expected = $this->getJsonSource();
-
-        $this->assertEquals($expected, $this->encoder->encode($obj, 'json'));
-    }
-
-    public function testOptions()
-    {
-        $context = array('json_encode_options' => JSON_NUMERIC_CHECK);
-
-        $arr = array();
-        $arr['foo'] = '3';
-
-        $expected = '{"foo":3}';
-
-        $this->assertEquals($expected, $this->serializer->serialize($arr, 'json', $context));
-
-        $arr = array();
-        $arr['foo'] = '3';
-
-        $expected = '{"foo":"3"}';
-
-        $this->assertEquals($expected, $this->serializer->serialize($arr, 'json'), 'Context should not be persistent');
-    }
-
-    protected function getJsonSource()
-    {
-        return '{"foo":"foo","bar":["a","b"],"baz":{"key":"val","key2":"val","A B":"bar","item":[{"title":"title1"},{"title":"title2"}],"Barry":{"FooBar":{"Baz":"Ed","@id":1}}},"qux":"1"}';
-    }
-
-    protected function getObject()
-    {
-        $obj = new \stdClass();
-        $obj->foo = 'foo';
-        $obj->bar = array('a', 'b');
-        $obj->baz = array('key' => 'val', 'key2' => 'val', 'A B' => 'bar', 'item' => array(array('title' => 'title1'), array('title' => 'title2')), 'Barry' => array('FooBar' => array('Baz' => 'Ed', '@id' => 1)));
-        $obj->qux = '1';
-
-        return $obj;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Encoder/XmlEncoderTest.php b/core/vendor/symfony/serializer/Tests/Encoder/XmlEncoderTest.php
deleted file mode 100644
index 422021a..0000000
--- a/core/vendor/symfony/serializer/Tests/Encoder/XmlEncoderTest.php
+++ /dev/null
@@ -1,510 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Encoder;
-
-use Symfony\Component\Serializer\Tests\Fixtures\Dummy;
-use Symfony\Component\Serializer\Tests\Fixtures\ScalarDummy;
-use Symfony\Component\Serializer\Encoder\XmlEncoder;
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
-use Symfony\Component\Serializer\Normalizer\CustomNormalizer;
-
-class XmlEncoderTest extends \PHPUnit_Framework_TestCase
-{
-    private $encoder;
-
-    protected function setUp()
-    {
-        $this->encoder = new XmlEncoder();
-        $serializer = new Serializer(array(new CustomNormalizer()), array('xml' => new XmlEncoder()));
-        $this->encoder->setSerializer($serializer);
-    }
-
-    public function testEncodeScalar()
-    {
-        $obj = new ScalarDummy();
-        $obj->xmlFoo = 'foo';
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response>foo</response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($obj, 'xml'));
-    }
-
-    public function testSetRootNodeName()
-    {
-        $obj = new ScalarDummy();
-        $obj->xmlFoo = 'foo';
-
-        $this->encoder->setRootNodeName('test');
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<test>foo</test>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($obj, 'xml'));
-    }
-
-    /**
-     * @expectedException        \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     * @expectedExceptionMessage Document types are not allowed.
-     */
-    public function testDocTypeIsNotAllowed()
-    {
-        $this->encoder->decode('<?xml version="1.0"?><!DOCTYPE foo><foo></foo>', 'foo');
-    }
-
-    public function testAttributes()
-    {
-        $obj = new ScalarDummy();
-        $obj->xmlFoo = array(
-            'foo-bar' => array(
-                '@id' => 1,
-                '@name' => 'Bar',
-            ),
-            'Foo' => array(
-                'Bar' => 'Test',
-                '@Type' => 'test',
-            ),
-            'föo_bär' => 'a',
-            'Bar' => array(1,2,3),
-            'a' => 'b',
-        );
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response>'.
-            '<foo-bar id="1" name="Bar"/>'.
-            '<Foo Type="test"><Bar>Test</Bar></Foo>'.
-            '<föo_bär>a</föo_bär>'.
-            '<Bar>1</Bar>'.
-            '<Bar>2</Bar>'.
-            '<Bar>3</Bar>'.
-            '<a>b</a>'.
-            '</response>'."\n";
-        $this->assertEquals($expected, $this->encoder->encode($obj, 'xml'));
-    }
-
-    public function testElementNameValid()
-    {
-        $obj = new ScalarDummy();
-        $obj->xmlFoo = array(
-            'foo-bar' => 'a',
-            'foo_bar' => 'a',
-            'föo_bär' => 'a',
-        );
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response>'.
-            '<foo-bar>a</foo-bar>'.
-            '<foo_bar>a</foo_bar>'.
-            '<föo_bär>a</föo_bär>'.
-            '</response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($obj, 'xml'));
-    }
-
-    public function testEncodeSimpleXML()
-    {
-        $xml = simplexml_load_string('<firstname>Peter</firstname>');
-        $array = array('person' => $xml);
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response><person><firstname>Peter</firstname></person></response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($array, 'xml'));
-    }
-
-    public function testEncodeXmlAttributes()
-    {
-        $xml = simplexml_load_string('<firstname>Peter</firstname>');
-        $array = array('person' => $xml);
-
-        $expected = '<?xml version="1.1" encoding="utf-8" standalone="yes"?>'."\n".
-            '<response><person><firstname>Peter</firstname></person></response>'."\n";
-
-        $context = array(
-            'xml_version' => '1.1',
-            'xml_encoding' => 'utf-8',
-            'xml_standalone' => true,
-        );
-
-        $this->assertSame($expected, $this->encoder->encode($array, 'xml', $context));
-    }
-
-    public function testContext()
-    {
-        $array = array('person' => array('name' => 'George Abitbol'));
-        $expected = <<<XML
-<?xml version="1.0"?>
-<response>
-  <person>
-    <name>George Abitbol</name>
-  </person>
-</response>
-
-XML;
-
-        $context = array(
-            'xml_format_output' => true,
-        );
-
-        $this->assertSame($expected, $this->encoder->encode($array, 'xml', $context));
-    }
-
-    public function testEncodeScalarRootAttributes()
-    {
-        $array = array(
-          '#' => 'Paul',
-          '@gender' => 'm',
-        );
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response gender="m">Paul</response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($array, 'xml'));
-    }
-
-    public function testEncodeRootAttributes()
-    {
-        $array = array(
-          'firstname' => 'Paul',
-          '@gender' => 'm',
-        );
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response gender="m"><firstname>Paul</firstname></response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($array, 'xml'));
-    }
-
-    public function testEncodeCdataWrapping()
-    {
-        $array = array(
-          'firstname' => 'Paul <or Me>',
-        );
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response><firstname><![CDATA[Paul <or Me>]]></firstname></response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($array, 'xml'));
-    }
-
-    public function testEncodeScalarWithAttribute()
-    {
-        $array = array(
-            'person' => array('@gender' => 'M', '#' => 'Peter'),
-        );
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<response><person gender="M">Peter</person></response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->encode($array, 'xml'));
-    }
-
-    public function testDecodeScalar()
-    {
-        $source = '<?xml version="1.0"?>'."\n".
-            '<response>foo</response>'."\n";
-
-        $this->assertEquals('foo', $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testEncode()
-    {
-        $source = $this->getXmlSource();
-        $obj = $this->getObject();
-
-        $this->assertEquals($source, $this->encoder->encode($obj, 'xml'));
-    }
-
-    public function testEncodeWithNamespace()
-    {
-        $source = $this->getNamespacedXmlSource();
-        $array = $this->getNamespacedArray();
-
-        $this->assertEquals($source, $this->encoder->encode($array, 'xml'));
-    }
-
-    public function testEncodeSerializerXmlRootNodeNameOption()
-    {
-        $options = array('xml_root_node_name' => 'test');
-        $this->encoder = new XmlEncoder();
-        $serializer = new Serializer(array(), array('xml' => new XmlEncoder()));
-        $this->encoder->setSerializer($serializer);
-
-        $array = array(
-            'person' => array('@gender' => 'M', '#' => 'Peter'),
-        );
-
-        $expected = '<?xml version="1.0"?>'."\n".
-            '<test><person gender="M">Peter</person></test>'."\n";
-
-        $this->assertEquals($expected, $serializer->serialize($array, 'xml', $options));
-    }
-
-    public function testDecode()
-    {
-        $source = $this->getXmlSource();
-        $obj = $this->getObject();
-
-        $this->assertEquals(get_object_vars($obj), $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeCdataWrapping()
-    {
-        $expected = array(
-            'firstname' => 'Paul <or Me>',
-        );
-
-        $xml = '<?xml version="1.0"?>'."\n".
-            '<response><firstname><![CDATA[Paul <or Me>]]></firstname></response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->decode($xml, 'xml'));
-    }
-
-    public function testDecodeCdataWrappingAndWhitespace()
-    {
-        $expected = array(
-            'firstname' => 'Paul <or Me>',
-        );
-
-        $xml = '<?xml version="1.0"?>'."\n".
-            '<response><firstname>'."\n".
-                '<![CDATA[Paul <or Me>]]></firstname></response>'."\n";
-
-        $this->assertEquals($expected, $this->encoder->decode($xml, 'xml'));
-    }
-
-    public function testDecodeWithNamespace()
-    {
-        $source = $this->getNamespacedXmlSource();
-        $array = $this->getNamespacedArray();
-
-        $this->assertEquals($array, $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeScalarWithAttribute()
-    {
-        $source = '<?xml version="1.0"?>'."\n".
-            '<response><person gender="M">Peter</person></response>'."\n";
-
-        $expected = array(
-            'person' => array('@gender' => 'M', '#' => 'Peter'),
-        );
-
-        $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeScalarRootAttributes()
-    {
-        $source = '<?xml version="1.0"?>'."\n".
-            '<person gender="M">Peter</person>'."\n";
-
-        $expected = array(
-            '#' => 'Peter',
-            '@gender' => 'M',
-        );
-
-        $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeRootAttributes()
-    {
-        $source = '<?xml version="1.0"?>'."\n".
-            '<person gender="M"><firstname>Peter</firstname><lastname>Mac Calloway</lastname></person>'."\n";
-
-        $expected = array(
-            'firstname' => 'Peter',
-            'lastname' => 'Mac Calloway',
-            '@gender' => 'M',
-        );
-
-        $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeArray()
-    {
-        $source = '<?xml version="1.0"?>'."\n".
-            '<response>'.
-            '<people>'.
-            '<person><firstname>Benjamin</firstname><lastname>Alexandre</lastname></person>'.
-            '<person><firstname>Damien</firstname><lastname>Clay</lastname></person>'.
-            '</people>'.
-            '</response>'."\n";
-
-        $expected = array(
-            'people' => array('person' => array(
-                array('firstname' => 'Benjamin', 'lastname' => 'Alexandre'),
-                array('firstname' => 'Damien', 'lastname' => 'Clay'),
-            )),
-        );
-
-        $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeIgnoreWhiteSpace()
-    {
-        $source = <<<XML
-<?xml version="1.0"?>
-<people>
-    <person>
-        <firstname>Benjamin</firstname>
-        <lastname>Alexandre</lastname>
-    </person>
-    <person>
-        <firstname>Damien</firstname>
-        <lastname>Clay</lastname>
-    </person>
-</people>
-XML;
-        $expected = array('person' => array(
-            array('firstname' => 'Benjamin', 'lastname' => 'Alexandre'),
-            array('firstname' => 'Damien', 'lastname' => 'Clay'),
-        ));
-
-        $this->assertEquals($expected, $this->encoder->decode($source, 'xml'));
-    }
-
-    public function testDecodeWithoutItemHash()
-    {
-        $obj = new ScalarDummy();
-        $obj->xmlFoo = array(
-            'foo-bar' => array(
-                '@key' => 'value',
-                'item' => array('@key' => 'key', 'key-val' => 'val'),
-            ),
-            'Foo' => array(
-                'Bar' => 'Test',
-                '@Type' => 'test',
-            ),
-            'föo_bär' => 'a',
-            'Bar' => array(1,2,3),
-            'a' => 'b',
-        );
-        $expected = array(
-            'foo-bar' => array(
-                '@key' => 'value',
-                'key' => array('@key' => 'key', 'key-val' => 'val'),
-            ),
-            'Foo' => array(
-                'Bar' => 'Test',
-                '@Type' => 'test',
-            ),
-            'föo_bär' => 'a',
-            'Bar' => array(1,2,3),
-            'a' => 'b',
-        );
-        $xml = $this->encoder->encode($obj, 'xml');
-        $this->assertEquals($expected, $this->encoder->decode($xml, 'xml'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testDecodeInvalidXml()
-    {
-        $this->encoder->decode('<?xml version="1.0"?><invalid><xml>', 'xml');
-    }
-
-    public function testPreventsComplexExternalEntities()
-    {
-        $oldCwd = getcwd();
-        chdir(__DIR__);
-
-        try {
-            $this->encoder->decode('<?xml version="1.0"?><!DOCTYPE scan[<!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=XmlEncoderTest.php">]><scan>&test;</scan>', 'xml');
-            chdir($oldCwd);
-
-            $this->fail('No exception was thrown.');
-        } catch (\Exception $e) {
-            chdir($oldCwd);
-
-            if (!$e instanceof UnexpectedValueException) {
-                $this->fail('Expected UnexpectedValueException');
-            }
-        }
-    }
-
-    public function testDecodeEmptyXml()
-    {
-        $this->setExpectedException('Symfony\Component\Serializer\Exception\UnexpectedValueException', 'Invalid XML data, it can not be empty.');
-        $this->encoder->decode(' ', 'xml');
-    }
-
-    protected function getXmlSource()
-    {
-        return '<?xml version="1.0"?>'."\n".
-            '<response>'.
-            '<foo>foo</foo>'.
-            '<bar>a</bar><bar>b</bar>'.
-            '<baz><key>val</key><key2>val</key2><item key="A B">bar</item>'.
-            '<item><title>title1</title></item><item><title>title2</title></item>'.
-            '<Barry><FooBar id="1"><Baz>Ed</Baz></FooBar></Barry></baz>'.
-            '<qux>1</qux>'.
-            '</response>'."\n";
-    }
-
-    protected function getNamespacedXmlSource()
-    {
-        return '<?xml version="1.0"?>'."\n".
-            '<response xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:media="http://search.yahoo.com/mrss/" xmlns:gd="http://schemas.google.com/g/2005" xmlns:yt="http://gdata.youtube.com/schemas/2007">'.
-            '<qux>1</qux>'.
-            '<app:foo>foo</app:foo>'.
-            '<yt:bar>a</yt:bar><yt:bar>b</yt:bar>'.
-            '<media:baz><media:key>val</media:key><media:key2>val</media:key2><item key="A B">bar</item>'.
-            '<item><title>title1</title></item><item><title>title2</title></item>'.
-            '<Barry size="large"><FooBar gd:id="1"><Baz>Ed</Baz></FooBar></Barry></media:baz>'.
-            '</response>'."\n";
-    }
-
-    protected function getNamespacedArray()
-    {
-        return array(
-            '@xmlns' => 'http://www.w3.org/2005/Atom',
-            '@xmlns:app' => 'http://www.w3.org/2007/app',
-            '@xmlns:media' => 'http://search.yahoo.com/mrss/',
-            '@xmlns:gd' => 'http://schemas.google.com/g/2005',
-            '@xmlns:yt' => 'http://gdata.youtube.com/schemas/2007',
-            'qux' => "1",
-            'app:foo' => "foo",
-            'yt:bar' => array("a", "b"),
-            'media:baz' => array(
-                'media:key' => "val",
-                'media:key2' => "val",
-                'A B' => "bar",
-                'item' => array(
-                    array(
-                        'title' => 'title1',
-                    ),
-                    array(
-                        'title' => 'title2',
-                    ),
-                ),
-                'Barry' => array(
-                    '@size' => 'large',
-                    'FooBar' => array(
-                        'Baz' => 'Ed',
-                        '@gd:id' => 1,
-                    ),
-                ),
-            ),
-        );
-    }
-
-    protected function getObject()
-    {
-        $obj = new Dummy();
-        $obj->foo = 'foo';
-        $obj->bar = array('a', 'b');
-        $obj->baz = array('key' => 'val', 'key2' => 'val', 'A B' => 'bar', 'item' => array(array('title' => 'title1'), array('title' => 'title2')), 'Barry' => array('FooBar' => array('Baz' => 'Ed', '@id' => 1)));
-        $obj->qux = '1';
-
-        return $obj;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/CircularReferenceDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/CircularReferenceDummy.php
deleted file mode 100644
index cc07015..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/CircularReferenceDummy.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class CircularReferenceDummy
-{
-    public function getMe()
-    {
-        return $this;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/DenormalizableDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/DenormalizableDummy.php
deleted file mode 100644
index d78f34a..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/DenormalizableDummy.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Normalizer\DenormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
-
-class DenormalizableDummy implements DenormalizableInterface
-{
-    public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = array())
-    {
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/Dummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/Dummy.php
deleted file mode 100644
index 6b33e84..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/Dummy.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Normalizer\NormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
-
-class Dummy implements NormalizableInterface, DenormalizableInterface
-{
-    public $foo;
-    public $bar;
-    public $baz;
-    public $qux;
-
-    public function normalize(NormalizerInterface $normalizer, $format = null, array $context = array())
-    {
-        return array(
-            'foo' => $this->foo,
-            'bar' => $this->bar,
-            'baz' => $this->baz,
-            'qux' => $this->qux,
-        );
-    }
-
-    public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = array())
-    {
-        $this->foo = $data['foo'];
-        $this->bar = $data['bar'];
-        $this->baz = $data['baz'];
-        $this->qux = $data['qux'];
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummy.php
deleted file mode 100644
index 37bfa7e..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummy.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Annotation\Groups;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class GroupDummy extends GroupDummyParent implements GroupDummyInterface
-{
-    /**
-     * @Groups({"a"})
-     */
-    private $foo;
-    /**
-     * @Groups({"b", "c", "name_converter"})
-     */
-    protected $bar;
-    private $fooBar;
-    private $symfony;
-
-    /**
-     * @Groups({"b"})
-     */
-    public function setBar($bar)
-    {
-        $this->bar = $bar;
-    }
-
-    /**
-     * @Groups({"c"})
-     */
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function setFoo($foo)
-    {
-        $this->foo = $foo;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function setFooBar($fooBar)
-    {
-        $this->fooBar = $fooBar;
-    }
-
-    /**
-     * @Groups({"a", "b", "name_converter"})
-     */
-    public function isFooBar()
-    {
-        return $this->fooBar;
-    }
-
-    public function setSymfony($symfony)
-    {
-        $this->symfony = $symfony;
-    }
-
-    public function getSymfony()
-    {
-        return $this->symfony;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummyInterface.php b/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummyInterface.php
deleted file mode 100644
index a60629e..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummyInterface.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Annotation\Groups;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-interface GroupDummyInterface
-{
-    /**
-     * @Groups({"a", "name_converter"})
-     */
-    public function getSymfony();
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummyParent.php b/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummyParent.php
deleted file mode 100644
index dd24233..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/GroupDummyParent.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Annotation\Groups;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class GroupDummyParent
-{
-    /**
-     * @Groups({"a"})
-     */
-    private $kevin;
-    private $coopTilleuls;
-
-    public function setKevin($kevin)
-    {
-        $this->kevin = $kevin;
-    }
-
-    public function getKevin()
-    {
-        return $this->kevin;
-    }
-
-    public function setCoopTilleuls($coopTilleuls)
-    {
-        $this->coopTilleuls = $coopTilleuls;
-    }
-
-    /**
-     * @Groups({"a", "b"})
-     */
-    public function getCoopTilleuls()
-    {
-        return $this->coopTilleuls;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/NormalizableTraversableDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/NormalizableTraversableDummy.php
deleted file mode 100644
index 3ac2fe3..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/NormalizableTraversableDummy.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Normalizer\NormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
-
-class NormalizableTraversableDummy extends TraversableDummy implements NormalizableInterface, DenormalizableInterface
-{
-    public function normalize(NormalizerInterface $normalizer, $format = null, array $context = array())
-    {
-        return array(
-            'foo' => 'normalizedFoo',
-            'bar' => 'normalizedBar',
-        );
-    }
-
-    public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = array())
-    {
-        return array(
-            'foo' => 'denormalizedFoo',
-            'bar' => 'denormalizedBar',
-        );
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/PropertyCircularReferenceDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/PropertyCircularReferenceDummy.php
deleted file mode 100644
index 8a1d9d8..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/PropertyCircularReferenceDummy.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class PropertyCircularReferenceDummy
-{
-    public $me;
-
-    public function __construct()
-    {
-        $this->me = $this;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/PropertySiblingHolder.php b/core/vendor/symfony/serializer/Tests/Fixtures/PropertySiblingHolder.php
deleted file mode 100644
index af993e6..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/PropertySiblingHolder.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class PropertySiblingHolder
-{
-    public $sibling0;
-    public $sibling1;
-    public $sibling2;
-
-    public function __construct()
-    {
-        $sibling = new PropertySibling();
-
-        $this->sibling0 = $sibling;
-        $this->sibling1 = $sibling;
-        $this->sibling2 = $sibling;
-    }
-}
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class PropertySibling
-{
-    public $coopTilleuls = 'Les-Tilleuls.coop';
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/ScalarDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/ScalarDummy.php
deleted file mode 100644
index e9db238..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/ScalarDummy.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-use Symfony\Component\Serializer\Normalizer\NormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizableInterface;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
-
-class ScalarDummy implements NormalizableInterface, DenormalizableInterface
-{
-    public $foo;
-    public $xmlFoo;
-
-    public function normalize(NormalizerInterface $normalizer, $format = null, array $context = array())
-    {
-        return $format === 'xml' ? $this->xmlFoo : $this->foo;
-    }
-
-    public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = array())
-    {
-        if ($format === 'xml') {
-            $this->xmlFoo = $data;
-        } else {
-            $this->foo = $data;
-        }
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/SiblingHolder.php b/core/vendor/symfony/serializer/Tests/Fixtures/SiblingHolder.php
deleted file mode 100644
index acd4fe9..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/SiblingHolder.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class SiblingHolder
-{
-    private $sibling0;
-    private $sibling1;
-    private $sibling2;
-
-    public function __construct()
-    {
-        $sibling = new Sibling();
-
-        $this->sibling0 = $sibling;
-        $this->sibling1 = $sibling;
-        $this->sibling2 = $sibling;
-    }
-
-    public function getSibling0()
-    {
-        return $this->sibling0;
-    }
-
-    public function getSibling1()
-    {
-        return $this->sibling1;
-    }
-
-    public function getSibling2()
-    {
-        return $this->sibling2;
-    }
-}
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class Sibling
-{
-    public function getCoopTilleuls()
-    {
-        return 'Les-Tilleuls.coop';
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/TraversableDummy.php b/core/vendor/symfony/serializer/Tests/Fixtures/TraversableDummy.php
deleted file mode 100644
index bcf46e5..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/TraversableDummy.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Fixtures;
-
-class TraversableDummy implements \IteratorAggregate
-{
-    public $foo = 'foo';
-    public $bar = 'bar';
-
-    public function getIterator()
-    {
-        return new \ArrayIterator(get_object_vars($this));
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/empty-mapping.yml b/core/vendor/symfony/serializer/Tests/Fixtures/empty-mapping.yml
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/invalid-mapping.yml b/core/vendor/symfony/serializer/Tests/Fixtures/invalid-mapping.yml
deleted file mode 100644
index 1910281..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/invalid-mapping.yml
+++ /dev/null
@@ -1 +0,0 @@
-foo
\ No newline at end of file
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/serialization.xml b/core/vendor/symfony/serializer/Tests/Fixtures/serialization.xml
deleted file mode 100644
index 6e95aaf..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/serialization.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" ?>
-
-<serializer xmlns="http://symfony.com/schema/dic/serializer-mapping"
-                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                    xsi:schemaLocation="http://symfony.com/schema/dic/serializer-mapping http://symfony.com/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd">
-
-    <class name="Symfony\Component\Serializer\Tests\Fixtures\GroupDummy">
-        <attribute name="foo">
-            <group>group1</group>
-            <group>group2</group>
-        </attribute>
-
-        <attribute name="bar">
-            <group>group2</group>
-        </attribute>
-    </class>
-
-</serializer>
diff --git a/core/vendor/symfony/serializer/Tests/Fixtures/serialization.yml b/core/vendor/symfony/serializer/Tests/Fixtures/serialization.yml
deleted file mode 100644
index e855ea4..0000000
--- a/core/vendor/symfony/serializer/Tests/Fixtures/serialization.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-Symfony\Component\Serializer\Tests\Fixtures\GroupDummy:
-  attributes:
-    foo:
-      groups: ['group1', 'group2']
-    bar:
-      groups: ['group2']
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/AttributeMetadataTest.php b/core/vendor/symfony/serializer/Tests/Mapping/AttributeMetadataTest.php
deleted file mode 100644
index 4a32831..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/AttributeMetadataTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping;
-
-use Symfony\Component\Serializer\Mapping\AttributeMetadata;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class AttributeMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $attributeMetadata = new AttributeMetadata('name');
-        $this->assertInstanceOf('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface', $attributeMetadata);
-    }
-
-    public function testGetName()
-    {
-        $attributeMetadata = new AttributeMetadata('name');
-        $this->assertEquals('name', $attributeMetadata->getName());
-    }
-
-    public function testGroups()
-    {
-        $attributeMetadata = new AttributeMetadata('group');
-        $attributeMetadata->addGroup('a');
-        $attributeMetadata->addGroup('a');
-        $attributeMetadata->addGroup('b');
-
-        $this->assertEquals(array('a', 'b'), $attributeMetadata->getGroups());
-    }
-
-    public function testMerge()
-    {
-        $attributeMetadata1 = new AttributeMetadata('a1');
-        $attributeMetadata1->addGroup('a');
-        $attributeMetadata1->addGroup('b');
-
-        $attributeMetadata2 = new AttributeMetadata('a2');
-        $attributeMetadata2->addGroup('a');
-        $attributeMetadata2->addGroup('c');
-
-        $attributeMetadata1->merge($attributeMetadata2);
-
-        $this->assertEquals(array('a', 'b', 'c'), $attributeMetadata1->getGroups());
-    }
-
-    public function testSerialize()
-    {
-        $attributeMetadata = new AttributeMetadata('attribute');
-        $attributeMetadata->addGroup('a');
-        $attributeMetadata->addGroup('b');
-
-        $serialized = serialize($attributeMetadata);
-        $this->assertEquals($attributeMetadata, unserialize($serialized));
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/ClassMetadataTest.php b/core/vendor/symfony/serializer/Tests/Mapping/ClassMetadataTest.php
deleted file mode 100644
index 629c17b..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/ClassMetadataTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping;
-
-use Symfony\Component\Serializer\Mapping\ClassMetadata;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ClassMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $classMetadata = new ClassMetadata('name');
-        $this->assertInstanceOf('Symfony\Component\Serializer\Mapping\ClassMetadataInterface', $classMetadata);
-    }
-
-    public function testAttributeMetadata()
-    {
-        $classMetadata = new ClassMetadata('c');
-
-        $a1 = $this->getMock('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface');
-        $a1->method('getName')->willReturn('a1');
-
-        $a2 = $this->getMock('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface');
-        $a2->method('getName')->willReturn('a2');
-
-        $classMetadata->addAttributeMetadata($a1);
-        $classMetadata->addAttributeMetadata($a2);
-
-        $this->assertEquals(array('a1' => $a1, 'a2' => $a2), $classMetadata->getAttributesMetadata());
-    }
-
-    public function testMerge()
-    {
-        $classMetadata1 = new ClassMetadata('c1');
-        $classMetadata2 = new ClassMetadata('c2');
-
-        $ac1 = $this->getMock('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface');
-        $ac1->method('getName')->willReturn('a1');
-        $ac1->method('getGroups')->willReturn(array('a', 'b'));
-
-        $ac2 = $this->getMock('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface');
-        $ac2->method('getName')->willReturn('a1');
-        $ac2->method('getGroups')->willReturn(array('b', 'c'));
-
-        $classMetadata1->addAttributeMetadata($ac1);
-        $classMetadata2->addAttributeMetadata($ac2);
-
-        $classMetadata1->merge($classMetadata2);
-
-        $ac1->method('getGroups')->willReturn('a', 'b', 'c');
-
-        $this->assertEquals(array('a1' => $ac1), $classMetadata2->getAttributesMetadata());
-    }
-
-    public function testSerialize()
-    {
-        $classMetadata = new ClassMetadata('a');
-
-        $a1 = $this->getMock('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface');
-        $a1->method('getName')->willReturn('b1');
-
-        $a2 = $this->getMock('Symfony\Component\Serializer\Mapping\AttributeMetadataInterface');
-        $a2->method('getName')->willReturn('b2');
-
-        $classMetadata->addAttributeMetadata($a1);
-        $classMetadata->addAttributeMetadata($a2);
-
-        $serialized = serialize($classMetadata);
-        $this->assertEquals($classMetadata, unserialize($serialized));
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/Factory/ClassMetadataFactoryTest.php b/core/vendor/symfony/serializer/Tests/Mapping/Factory/ClassMetadataFactoryTest.php
deleted file mode 100644
index 2e2ba22..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/Factory/ClassMetadataFactoryTest.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping\Factory;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
-use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Serializer\Mapping\Loader\LoaderChain;
-use Symfony\Component\Serializer\Tests\Mapping\TestClassMetadataFactory;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ClassMetadataFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $classMetadata = new ClassMetadataFactory(new LoaderChain(array()));
-        $this->assertInstanceOf('Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory', $classMetadata);
-    }
-
-    public function testGetMetadataFor()
-    {
-        $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $classMetadata = $factory->getMetadataFor('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-
-        $this->assertEquals(TestClassMetadataFactory::createClassMetadata(true, true), $classMetadata);
-    }
-
-    public function testHasMetadataFor()
-    {
-        $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->assertTrue($factory->hasMetadataFor('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy'));
-        $this->assertTrue($factory->hasMetadataFor('Symfony\Component\Serializer\Tests\Fixtures\GroupDummyParent'));
-        $this->assertTrue($factory->hasMetadataFor('Symfony\Component\Serializer\Tests\Fixtures\GroupDummyInterface'));
-        $this->assertFalse($factory->hasMetadataFor('Dunglas\Entity'));
-    }
-
-    public function testCacheExists()
-    {
-        $cache = $this->getMock('Doctrine\Common\Cache\Cache');
-        $cache
-            ->expects($this->once())
-            ->method('fetch')
-            ->will($this->returnValue('foo'))
-        ;
-
-        $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()), $cache);
-        $this->assertEquals('foo', $factory->getMetadataFor('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy'));
-    }
-
-    public function testCacheNotExists()
-    {
-        $cache = $this->getMock('Doctrine\Common\Cache\Cache');
-        $cache
-            ->method('fetch')
-            ->will($this->returnValue(false))
-        ;
-
-        $cache
-            ->method('save')
-        ;
-
-        $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()), $cache);
-        $metadata = $factory->getMetadataFor('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-
-        $this->assertEquals(TestClassMetadataFactory::createClassMetadata(true, true), $metadata);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/Loader/AnnotationLoaderTest.php b/core/vendor/symfony/serializer/Tests/Mapping/Loader/AnnotationLoaderTest.php
deleted file mode 100644
index 484d062..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/Loader/AnnotationLoaderTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping\Loader;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Symfony\Component\Serializer\Mapping\ClassMetadata;
-use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Serializer\Tests\Mapping\TestClassMetadataFactory;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class AnnotationLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var AnnotationLoader
-     */
-    private $loader;
-
-    protected function setUp()
-    {
-        $this->loader = new AnnotationLoader(new AnnotationReader());
-    }
-
-    public function testInterface()
-    {
-        $this->assertInstanceOf('Symfony\Component\Serializer\Mapping\Loader\LoaderInterface', $this->loader);
-    }
-
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $classMetadata = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-
-        $this->assertTrue($this->loader->loadClassMetadata($classMetadata));
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $classMetadata = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-        $this->loader->loadClassMetadata($classMetadata);
-
-        $this->assertEquals(TestClassMetadataFactory::createClassMetadata(), $classMetadata);
-    }
-
-    public function testLoadClassMetadataAndMerge()
-    {
-        $classMetadata = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-        $parentClassMetadata = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummyParent');
-
-        $this->loader->loadClassMetadata($parentClassMetadata);
-        $classMetadata->merge($parentClassMetadata);
-
-        $this->loader->loadClassMetadata($classMetadata);
-
-        $this->assertEquals(TestClassMetadataFactory::createClassMetadata(true), $classMetadata);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php
deleted file mode 100644
index 6b468ff..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping\Loader;
-
-use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader;
-use Symfony\Component\Serializer\Mapping\ClassMetadata;
-use Symfony\Component\Serializer\Tests\Mapping\TestClassMetadataFactory;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var XmlFileLoader
-     */
-    private $loader;
-    /**
-     * @var ClassMetadata
-     */
-    private $metadata;
-
-    protected function setUp()
-    {
-        $this->loader = new XmlFileLoader(__DIR__.'/../../Fixtures/serialization.xml');
-        $this->metadata = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-    }
-
-    public function testInterface()
-    {
-        $this->assertInstanceOf('Symfony\Component\Serializer\Mapping\Loader\LoaderInterface', $this->loader);
-    }
-
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $this->assertTrue($this->loader->loadClassMetadata($this->metadata));
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $this->loader->loadClassMetadata($this->metadata);
-
-        $this->assertEquals(TestClassMetadataFactory::createXmlCLassMetadata(), $this->metadata);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/serializer/Tests/Mapping/Loader/YamlFileLoaderTest.php
deleted file mode 100644
index 72d146f..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/Loader/YamlFileLoaderTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping\Loader;
-
-use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader;
-use Symfony\Component\Serializer\Mapping\ClassMetadata;
-use Symfony\Component\Serializer\Tests\Mapping\TestClassMetadataFactory;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var YamlFileLoader
-     */
-    private $loader;
-    /**
-     * @var ClassMetadata
-     */
-    private $metadata;
-
-    protected function setUp()
-    {
-        $this->loader = new YamlFileLoader(__DIR__.'/../../Fixtures/serialization.yml');
-        $this->metadata = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-    }
-
-    public function testInterface()
-    {
-        $this->assertInstanceOf('Symfony\Component\Serializer\Mapping\Loader\LoaderInterface', $this->loader);
-    }
-
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $this->assertTrue($this->loader->loadClassMetadata($this->metadata));
-    }
-
-    public function testLoadClassMetadataReturnsFalseWhenEmpty()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/../../Fixtures/empty-mapping.yml');
-        $this->assertFalse($loader->loadClassMetadata($this->metadata));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\MappingException
-     */
-    public function testLoadClassMetadataReturnsThrowsInvalidMapping()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/../../Fixtures/invalid-mapping.yml');
-        $loader->loadClassMetadata($this->metadata);
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $this->loader->loadClassMetadata($this->metadata);
-
-        $this->assertEquals(TestClassMetadataFactory::createXmlCLassMetadata(), $this->metadata);
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Mapping/TestClassMetadataFactory.php b/core/vendor/symfony/serializer/Tests/Mapping/TestClassMetadataFactory.php
deleted file mode 100644
index f435d36..0000000
--- a/core/vendor/symfony/serializer/Tests/Mapping/TestClassMetadataFactory.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Mapping;
-
-use Symfony\Component\Serializer\Mapping\AttributeMetadata;
-use Symfony\Component\Serializer\Mapping\ClassMetadata;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class TestClassMetadataFactory
-{
-    public static function createClassMetadata($withParent = false, $withInterface = false)
-    {
-        $expected = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-
-        $foo = new AttributeMetadata('foo');
-        $foo->addGroup('a');
-        $expected->addAttributeMetadata($foo);
-
-        $bar = new AttributeMetadata('bar');
-        $bar->addGroup('b');
-        $bar->addGroup('c');
-        $bar->addGroup('name_converter');
-        $expected->addAttributeMetadata($bar);
-
-        $fooBar = new AttributeMetadata('fooBar');
-        $fooBar->addGroup('a');
-        $fooBar->addGroup('b');
-        $fooBar->addGroup('name_converter');
-        $expected->addAttributeMetadata($fooBar);
-
-        $symfony = new AttributeMetadata('symfony');
-        $expected->addAttributeMetadata($symfony);
-
-        if ($withParent) {
-            $kevin = new AttributeMetadata('kevin');
-            $kevin->addGroup('a');
-            $expected->addAttributeMetadata($kevin);
-
-            $coopTilleuls = new AttributeMetadata('coopTilleuls');
-            $coopTilleuls->addGroup('a');
-            $coopTilleuls->addGroup('b');
-            $expected->addAttributeMetadata($coopTilleuls);
-        }
-
-        if ($withInterface) {
-            $symfony->addGroup('a');
-            $symfony->addGroup('name_converter');
-        }
-
-        // load reflection class so that the comparison passes
-        $expected->getReflectionClass();
-
-        return $expected;
-    }
-
-    public static function createXmlCLassMetadata()
-    {
-        $expected = new ClassMetadata('Symfony\Component\Serializer\Tests\Fixtures\GroupDummy');
-
-        $foo = new AttributeMetadata('foo');
-        $foo->addGroup('group1');
-        $foo->addGroup('group2');
-        $expected->addAttributeMetadata($foo);
-
-        $bar = new AttributeMetadata('bar');
-        $bar->addGroup('group2');
-        $expected->addAttributeMetadata($bar);
-
-        return $expected;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/NameConverter/CamelCaseToSnakeCaseNameConverterTest.php b/core/vendor/symfony/serializer/Tests/NameConverter/CamelCaseToSnakeCaseNameConverterTest.php
deleted file mode 100644
index 2d57017..0000000
--- a/core/vendor/symfony/serializer/Tests/NameConverter/CamelCaseToSnakeCaseNameConverterTest.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\NameConverter;
-
-use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class CamelCaseToSnakeCaseNameConverterTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $attributeMetadata = new CamelCaseToSnakeCaseNameConverter();
-        $this->assertInstanceOf('Symfony\Component\Serializer\NameConverter\NameConverterInterface', $attributeMetadata);
-    }
-
-    /**
-     * @dataProvider attributeProvider
-     */
-    public function testNormalize($underscored, $lowerCamelCased)
-    {
-        $nameConverter = new CamelCaseToSnakeCaseNameConverter();
-        $this->assertEquals($nameConverter->normalize($lowerCamelCased), $underscored);
-    }
-
-    /**
-     * @dataProvider attributeProvider
-     */
-    public function testDenormalize($underscored, $lowerCamelCased)
-    {
-        $nameConverter = new CamelCaseToSnakeCaseNameConverter();
-        $this->assertEquals($nameConverter->denormalize($underscored), $lowerCamelCased);
-    }
-
-    public function attributeProvider()
-    {
-        return array(
-            array('coop_tilleuls', 'coopTilleuls'),
-            array('_kevin_dunglas', '_kevinDunglas'),
-            array('this_is_a_test', 'thisIsATest'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Normalizer/CustomNormalizerTest.php b/core/vendor/symfony/serializer/Tests/Normalizer/CustomNormalizerTest.php
deleted file mode 100644
index 86ae003..0000000
--- a/core/vendor/symfony/serializer/Tests/Normalizer/CustomNormalizerTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use Symfony\Component\Serializer\Tests\Fixtures\ScalarDummy;
-use Symfony\Component\Serializer\Normalizer\CustomNormalizer;
-use Symfony\Component\Serializer\Serializer;
-
-class CustomNormalizerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var CustomNormalizer
-     */
-    private $normalizer;
-
-    protected function setUp()
-    {
-        $this->normalizer = new CustomNormalizer();
-        $this->normalizer->setSerializer(new Serializer());
-    }
-
-    public function testInterface()
-    {
-        $this->assertInstanceOf('Symfony\Component\Serializer\Normalizer\NormalizerInterface', $this->normalizer);
-        $this->assertInstanceOf('Symfony\Component\Serializer\Normalizer\DenormalizerInterface', $this->normalizer);
-    }
-
-    public function testSerialize()
-    {
-        $obj = new ScalarDummy();
-        $obj->foo = 'foo';
-        $obj->xmlFoo = 'xml';
-        $this->assertEquals('foo', $this->normalizer->normalize($obj, 'json'));
-        $this->assertEquals('xml', $this->normalizer->normalize($obj, 'xml'));
-    }
-
-    public function testDeserialize()
-    {
-        $obj = $this->normalizer->denormalize('foo', get_class(new ScalarDummy()), 'xml');
-        $this->assertEquals('foo', $obj->xmlFoo);
-        $this->assertNull($obj->foo);
-
-        $obj = $this->normalizer->denormalize('foo', get_class(new ScalarDummy()), 'json');
-        $this->assertEquals('foo', $obj->foo);
-        $this->assertNull($obj->xmlFoo);
-    }
-
-    public function testSupportsNormalization()
-    {
-        $this->assertTrue($this->normalizer->supportsNormalization(new ScalarDummy()));
-        $this->assertFalse($this->normalizer->supportsNormalization(new \stdClass()));
-    }
-
-    public function testSupportsDenormalization()
-    {
-        $this->assertTrue($this->normalizer->supportsDenormalization(array(), 'Symfony\Component\Serializer\Tests\Fixtures\ScalarDummy'));
-        $this->assertFalse($this->normalizer->supportsDenormalization(array(), 'stdClass'));
-        $this->assertTrue($this->normalizer->supportsDenormalization(array(), 'Symfony\Component\Serializer\Tests\Fixtures\DenormalizableDummy'));
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php b/core/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php
deleted file mode 100644
index 32d729a..0000000
--- a/core/vendor/symfony/serializer/Tests/Normalizer/GetSetMethodNormalizerTest.php
+++ /dev/null
@@ -1,774 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
-use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\SerializerInterface;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-use Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy;
-use Symfony\Component\Serializer\Tests\Fixtures\SiblingHolder;
-use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
-use Symfony\Component\Serializer\Tests\Fixtures\GroupDummy;
-
-class GetSetMethodNormalizerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var GetSetMethodNormalizer
-     */
-    private $normalizer;
-    /**
-     * @var SerializerInterface
-     */
-    private $serializer;
-
-    protected function setUp()
-    {
-        $this->serializer = $this->getMock(__NAMESPACE__.'\SerializerNormalizer');
-        $this->normalizer = new GetSetMethodNormalizer();
-        $this->normalizer->setSerializer($this->serializer);
-    }
-
-    public function testInterface()
-    {
-        $this->assertInstanceOf('Symfony\Component\Serializer\Normalizer\NormalizerInterface', $this->normalizer);
-        $this->assertInstanceOf('Symfony\Component\Serializer\Normalizer\DenormalizerInterface', $this->normalizer);
-    }
-
-    public function testNormalize()
-    {
-        $obj = new GetSetDummy();
-        $object = new \stdClass();
-        $obj->setFoo('foo');
-        $obj->setBar('bar');
-        $obj->setBaz(true);
-        $obj->setCamelCase('camelcase');
-        $obj->setObject($object);
-
-        $this->serializer
-            ->expects($this->once())
-            ->method('normalize')
-            ->with($object, 'any')
-            ->will($this->returnValue('string_object'))
-        ;
-
-        $this->assertEquals(
-            array(
-                'foo' => 'foo',
-                'bar' => 'bar',
-                'baz' => true,
-                'fooBar' => 'foobar',
-                'camelCase' => 'camelcase',
-                'object' => 'string_object',
-            ),
-            $this->normalizer->normalize($obj, 'any')
-        );
-    }
-
-    public function testDenormalize()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => 'bar', 'baz' => true, 'fooBar' => 'foobar'),
-            __NAMESPACE__.'\GetSetDummy',
-            'any'
-        );
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-        $this->assertTrue($obj->isBaz());
-    }
-
-    public function testDenormalizeWithObject()
-    {
-        $data = new \stdClass();
-        $data->foo = 'foo';
-        $data->bar = 'bar';
-        $data->fooBar = 'foobar';
-        $obj = $this->normalizer->denormalize($data, __NAMESPACE__.'\GetSetDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyDenormalizeOnCamelCaseFormat()
-    {
-        $this->normalizer->setCamelizedAttributes(array('camel_case'));
-        $obj = $this->normalizer->denormalize(
-            array('camel_case' => 'camelCase'),
-            __NAMESPACE__.'\GetSetDummy'
-        );
-
-        $this->assertEquals('camelCase', $obj->getCamelCase());
-    }
-
-    public function testNameConverterSupport()
-    {
-        $this->normalizer = new GetSetMethodNormalizer(null, new CamelCaseToSnakeCaseNameConverter());
-        $obj = $this->normalizer->denormalize(
-            array('camel_case' => 'camelCase'),
-            __NAMESPACE__.'\GetSetDummy'
-        );
-        $this->assertEquals('camelCase', $obj->getCamelCase());
-    }
-
-    public function testDenormalizeNull()
-    {
-        $this->assertEquals(new GetSetDummy(), $this->normalizer->denormalize(null, __NAMESPACE__.'\GetSetDummy'));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyCamelizedAttributesNormalize()
-    {
-        $obj = new GetCamelizedDummy('dunglas.fr');
-        $obj->setFooBar('les-tilleuls.coop');
-        $obj->setBar_foo('lostinthesupermarket.fr');
-
-        $this->normalizer->setCamelizedAttributes(array('kevin_dunglas'));
-        $this->assertEquals($this->normalizer->normalize($obj), array(
-            'kevin_dunglas' => 'dunglas.fr',
-            'fooBar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ));
-
-        $this->normalizer->setCamelizedAttributes(array('foo_bar'));
-        $this->assertEquals($this->normalizer->normalize($obj), array(
-            'kevinDunglas' => 'dunglas.fr',
-            'foo_bar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyCamelizedAttributesDenormalize()
-    {
-        $obj = new GetCamelizedDummy('dunglas.fr');
-        $obj->setFooBar('les-tilleuls.coop');
-        $obj->setBar_foo('lostinthesupermarket.fr');
-
-        $this->normalizer->setCamelizedAttributes(array('kevin_dunglas'));
-        $this->assertEquals($this->normalizer->denormalize(array(
-            'kevin_dunglas' => 'dunglas.fr',
-            'fooBar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ), __NAMESPACE__.'\GetCamelizedDummy'), $obj);
-
-        $this->normalizer->setCamelizedAttributes(array('foo_bar'));
-        $this->assertEquals($this->normalizer->denormalize(array(
-            'kevinDunglas' => 'dunglas.fr',
-            'foo_bar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ), __NAMESPACE__.'\GetCamelizedDummy'), $obj);
-    }
-
-    public function testConstructorDenormalize()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => 'bar', 'baz' => true, 'fooBar' => 'foobar'),
-            __NAMESPACE__.'\GetConstructorDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-        $this->assertTrue($obj->isBaz());
-    }
-
-    public function testConstructorDenormalizeWithNullArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => null, 'baz' => true),
-            __NAMESPACE__.'\GetConstructorDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertNull($obj->getBar());
-        $this->assertTrue($obj->isBaz());
-    }
-
-    public function testConstructorDenormalizeWithMissingOptionalArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'test', 'baz' => array(1, 2, 3)),
-            __NAMESPACE__.'\GetConstructorOptionalArgsDummy', 'any');
-        $this->assertEquals('test', $obj->getFoo());
-        $this->assertEquals(array(), $obj->getBar());
-        $this->assertEquals(array(1, 2, 3), $obj->getBaz());
-    }
-
-    public function testConstructorDenormalizeWithOptionalDefaultArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('bar' => 'test'),
-            __NAMESPACE__.'\GetConstructorArgsWithDefaultValueDummy', 'any');
-        $this->assertEquals(array(), $obj->getFoo());
-        $this->assertEquals('test', $obj->getBar());
-    }
-
-    public function testConstructorWithObjectDenormalize()
-    {
-        $data = new \stdClass();
-        $data->foo = 'foo';
-        $data->bar = 'bar';
-        $data->baz = true;
-        $data->fooBar = 'foobar';
-        $obj = $this->normalizer->denormalize($data, __NAMESPACE__.'\GetConstructorDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-    }
-
-    public function testConstructorWArgWithPrivateMutator()
-    {
-        $obj = $this->normalizer->denormalize(array('foo' => 'bar'), __NAMESPACE__.'\ObjectConstructorArgsWithPrivateMutatorDummy', 'any');
-        $this->assertEquals('bar', $obj->getFoo());
-    }
-
-    public function testGroupsNormalize()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new GetSetMethodNormalizer($classMetadataFactory);
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFoo('foo');
-        $obj->setBar('bar');
-        $obj->setFooBar('fooBar');
-        $obj->setSymfony('symfony');
-        $obj->setKevin('kevin');
-        $obj->setCoopTilleuls('coopTilleuls');
-
-        $this->assertEquals(array(
-            'bar' => 'bar',
-        ), $this->normalizer->normalize($obj, null, array('groups' => array('c'))));
-
-        $this->assertEquals(array(
-            'symfony' => 'symfony',
-            'foo' => 'foo',
-            'fooBar' => 'fooBar',
-            'bar' => 'bar',
-            'kevin' => 'kevin',
-            'coopTilleuls' => 'coopTilleuls',
-        ), $this->normalizer->normalize($obj, null, array('groups' => array('a', 'c'))));
-    }
-
-    public function testGroupsDenormalize()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new GetSetMethodNormalizer($classMetadataFactory);
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFoo('foo');
-
-        $toNormalize = array('foo' => 'foo', 'bar' => 'bar');
-
-        $normalized = $this->normalizer->denormalize(
-            $toNormalize,
-            'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy',
-            null,
-            array('groups' => array('a'))
-        );
-        $this->assertEquals($obj, $normalized);
-
-        $obj->setBar('bar');
-
-        $normalized = $this->normalizer->denormalize(
-            $toNormalize,
-            'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy',
-            null,
-            array('groups' => array('a', 'b'))
-        );
-        $this->assertEquals($obj, $normalized);
-    }
-
-    public function testGroupsNormalizeWithNameConverter()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new GetSetMethodNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFooBar('@dunglas');
-        $obj->setSymfony('@coopTilleuls');
-        $obj->setCoopTilleuls('les-tilleuls.coop');
-
-        $this->assertEquals(
-            array(
-                'bar' => null,
-                'foo_bar' => '@dunglas',
-                'symfony' => '@coopTilleuls',
-            ),
-            $this->normalizer->normalize($obj, null, array('groups' => array('name_converter')))
-        );
-    }
-
-    public function testGroupsDenormalizeWithNameConverter()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new GetSetMethodNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFooBar('@dunglas');
-        $obj->setSymfony('@coopTilleuls');
-
-        $this->assertEquals(
-            $obj,
-            $this->normalizer->denormalize(array(
-                'bar' => null,
-                'foo_bar' => '@dunglas',
-                'symfony' => '@coopTilleuls',
-                'coop_tilleuls' => 'les-tilleuls.coop',
-            ), 'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy', null, array('groups' => array('name_converter')))
-        );
-    }
-
-    /**
-     * @dataProvider provideCallbacks
-     */
-    public function testCallbacks($callbacks, $value, $result, $message)
-    {
-        $this->normalizer->setCallbacks($callbacks);
-
-        $obj = new GetConstructorDummy('', $value, true);
-
-        $this->assertEquals(
-            $result,
-            $this->normalizer->normalize($obj, 'any'),
-            $message
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testUncallableCallbacks()
-    {
-        $this->normalizer->setCallbacks(array('bar' => null));
-
-        $obj = new GetConstructorDummy('baz', 'quux', true);
-
-        $this->normalizer->normalize($obj, 'any');
-    }
-
-    public function testIgnoredAttributes()
-    {
-        $this->normalizer->setIgnoredAttributes(array('foo', 'bar', 'baz', 'camelCase', 'object'));
-
-        $obj = new GetSetDummy();
-        $obj->setFoo('foo');
-        $obj->setBar('bar');
-        $obj->setBaz(true);
-
-        $this->assertEquals(
-            array('fooBar' => 'foobar'),
-            $this->normalizer->normalize($obj, 'any')
-        );
-    }
-
-    public function provideCallbacks()
-    {
-        return array(
-            array(
-                array(
-                    'bar' => function ($bar) {
-                        return 'baz';
-                    },
-                ),
-                'baz',
-                array('foo' => '', 'bar' => 'baz', 'baz' => true),
-                'Change a string',
-            ),
-            array(
-                array(
-                    'bar' => function ($bar) {
-                        return;
-                    },
-                ),
-                'baz',
-                array('foo' => '', 'bar' => null, 'baz' => true),
-                'Null an item',
-            ),
-            array(
-                array(
-                    'bar' => function ($bar) {
-                        return $bar->format('d-m-Y H:i:s');
-                    },
-                ),
-                new \DateTime('2011-09-10 06:30:00'),
-                array('foo' => '', 'bar' => '10-09-2011 06:30:00', 'baz' => true),
-                'Format a date',
-            ),
-            array(
-                array(
-                    'bar' => function ($bars) {
-                        $foos = '';
-                        foreach ($bars as $bar) {
-                            $foos .= $bar->getFoo();
-                        }
-
-                        return $foos;
-                    },
-                ),
-                array(new GetConstructorDummy('baz', '', false), new GetConstructorDummy('quux', '', false)),
-                array('foo' => '', 'bar' => 'bazquux', 'baz' => true),
-                'Collect a property',
-            ),
-            array(
-                array(
-                    'bar' => function ($bars) {
-                        return count($bars);
-                    },
-                ),
-                array(new GetConstructorDummy('baz', '', false), new GetConstructorDummy('quux', '', false)),
-                array('foo' => '', 'bar' => 2, 'baz' => true),
-                'Count a property',
-            ),
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\LogicException
-     * @expectedExceptionMessage Cannot normalize attribute "object" because injected serializer is not a normalizer
-     */
-    public function testUnableToNormalizeObjectAttribute()
-    {
-        $serializer = $this->getMock('Symfony\Component\Serializer\SerializerInterface');
-        $this->normalizer->setSerializer($serializer);
-
-        $obj = new GetSetDummy();
-        $object = new \stdClass();
-        $obj->setObject($object);
-
-        $this->normalizer->normalize($obj, 'any');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\CircularReferenceException
-     */
-    public function testUnableToNormalizeCircularReference()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-        $this->normalizer->setCircularReferenceLimit(2);
-
-        $obj = new CircularReferenceDummy();
-
-        $this->normalizer->normalize($obj);
-    }
-
-    public function testSiblingReference()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-
-        $siblingHolder = new SiblingHolder();
-
-        $expected = array(
-            'sibling0' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-            'sibling1' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-            'sibling2' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-        );
-        $this->assertEquals($expected, $this->normalizer->normalize($siblingHolder));
-    }
-
-    public function testCircularReferenceHandler()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-        $this->normalizer->setCircularReferenceHandler(function ($obj) {
-            return get_class($obj);
-        });
-
-        $obj = new CircularReferenceDummy();
-
-        $expected = array('me' => 'Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy');
-        $this->assertEquals($expected, $this->normalizer->normalize($obj));
-    }
-
-    public function testObjectToPopulate()
-    {
-        $dummy = new GetSetDummy();
-        $dummy->setFoo('foo');
-
-        $obj = $this->normalizer->denormalize(
-            array('bar' => 'bar'),
-            __NAMESPACE__.'\GetSetDummy',
-            null,
-            array('object_to_populate' => $dummy)
-        );
-
-        $this->assertEquals($dummy, $obj);
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-    }
-
-    public function testDenormalizeNonExistingAttribute()
-    {
-        $this->assertEquals(
-            new GetSetDummy(),
-            $this->normalizer->denormalize(array('non_existing' => true), __NAMESPACE__.'\GetSetDummy')
-        );
-    }
-
-    public function testNoTraversableSupport()
-    {
-        $this->assertFalse($this->normalizer->supportsNormalization(new \ArrayObject()));
-    }
-
-    public function testPrivateSetter()
-    {
-        $obj = $this->normalizer->denormalize(array('foo' => 'foobar'), __NAMESPACE__.'\ObjectWithPrivateSetterDummy');
-        $this->assertEquals('bar', $obj->getFoo());
-    }
-}
-
-class GetSetDummy
-{
-    protected $foo;
-    private $bar;
-    private $baz;
-    protected $camelCase;
-    protected $object;
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function setFoo($foo)
-    {
-        $this->foo = $foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function setBar($bar)
-    {
-        $this->bar = $bar;
-    }
-
-    public function isBaz()
-    {
-        return $this->baz;
-    }
-
-    public function setBaz($baz)
-    {
-        $this->baz = $baz;
-    }
-
-    public function getFooBar()
-    {
-        return $this->foo.$this->bar;
-    }
-
-    public function getCamelCase()
-    {
-        return $this->camelCase;
-    }
-
-    public function setCamelCase($camelCase)
-    {
-        $this->camelCase = $camelCase;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-
-    public function setObject($object)
-    {
-        $this->object = $object;
-    }
-
-    public function getObject()
-    {
-        return $this->object;
-    }
-}
-
-class GetConstructorDummy
-{
-    protected $foo;
-    private $bar;
-    private $baz;
-
-    public function __construct($foo, $bar, $baz)
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-        $this->baz = $baz;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function isBaz()
-    {
-        return $this->baz;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-}
-
-abstract class SerializerNormalizer implements SerializerInterface, NormalizerInterface
-{
-}
-
-class GetConstructorOptionalArgsDummy
-{
-    protected $foo;
-    private $bar;
-    private $baz;
-
-    public function __construct($foo, $bar = array(), $baz = array())
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-        $this->baz = $baz;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function getBaz()
-    {
-        return $this->baz;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-}
-
-class GetConstructorArgsWithDefaultValueDummy
-{
-    protected $foo;
-    protected $bar;
-
-    public function __construct($foo = array(), $bar)
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-}
-
-class GetCamelizedDummy
-{
-    private $kevinDunglas;
-    private $fooBar;
-    private $bar_foo;
-
-    public function __construct($kevinDunglas = null)
-    {
-        $this->kevinDunglas = $kevinDunglas;
-    }
-
-    public function getKevinDunglas()
-    {
-        return $this->kevinDunglas;
-    }
-
-    public function setFooBar($fooBar)
-    {
-        $this->fooBar = $fooBar;
-    }
-
-    public function getFooBar()
-    {
-        return $this->fooBar;
-    }
-
-    public function setBar_foo($bar_foo)
-    {
-        $this->bar_foo = $bar_foo;
-    }
-
-    public function getBar_foo()
-    {
-        return $this->bar_foo;
-    }
-}
-
-class ObjectConstructorArgsWithPrivateMutatorDummy
-{
-    private $foo;
-
-    public function __construct($foo)
-    {
-        $this->setFoo($foo);
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    private function setFoo($foo)
-    {
-        $this->foo = $foo;
-    }
-}
-
-class ObjectWithPrivateSetterDummy
-{
-    private $foo = 'bar';
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    private function setFoo($foo)
-    {
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php b/core/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php
deleted file mode 100644
index 7d9da64..0000000
--- a/core/vendor/symfony/serializer/Tests/Normalizer/ObjectNormalizerTest.php
+++ /dev/null
@@ -1,602 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
-use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\SerializerInterface;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-use Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy;
-use Symfony\Component\Serializer\Tests\Fixtures\SiblingHolder;
-use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
-use Symfony\Component\Serializer\Tests\Fixtures\GroupDummy;
-
-/**
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ObjectNormalizerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var ObjectNormalizerTest
-     */
-    private $normalizer;
-    /**
-     * @var SerializerInterface
-     */
-    private $serializer;
-
-    protected function setUp()
-    {
-        $this->serializer = $this->getMock(__NAMESPACE__.'\ObjectSerializerNormalizer');
-        $this->normalizer = new ObjectNormalizer();
-        $this->normalizer->setSerializer($this->serializer);
-    }
-
-    public function testNormalize()
-    {
-        $obj = new ObjectDummy();
-        $object = new \stdClass();
-        $obj->setFoo('foo');
-        $obj->bar = 'bar';
-        $obj->setBaz(true);
-        $obj->setCamelCase('camelcase');
-        $obj->setObject($object);
-
-        $this->serializer
-            ->expects($this->once())
-            ->method('normalize')
-            ->with($object, 'any')
-            ->will($this->returnValue('string_object'))
-        ;
-
-        $this->assertEquals(
-            array(
-                'foo' => 'foo',
-                'bar' => 'bar',
-                'baz' => true,
-                'fooBar' => 'foobar',
-                'camelCase' => 'camelcase',
-                'object' => 'string_object',
-            ),
-            $this->normalizer->normalize($obj, 'any')
-        );
-    }
-
-    public function testDenormalize()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => 'bar', 'baz' => true, 'fooBar' => 'foobar'),
-            __NAMESPACE__.'\ObjectDummy',
-            'any'
-        );
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->bar);
-        $this->assertTrue($obj->isBaz());
-    }
-
-    public function testDenormalizeWithObject()
-    {
-        $data = new \stdClass();
-        $data->foo = 'foo';
-        $data->bar = 'bar';
-        $data->fooBar = 'foobar';
-        $obj = $this->normalizer->denormalize($data, __NAMESPACE__.'\ObjectDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->bar);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyDenormalizeOnCamelCaseFormat()
-    {
-        $this->normalizer->setCamelizedAttributes(array('camel_case'));
-        $obj = $this->normalizer->denormalize(
-            array('camel_case' => 'camelCase'),
-            __NAMESPACE__.'\ObjectDummy'
-        );
-        $this->assertEquals('camelCase', $obj->getCamelCase());
-    }
-
-    public function testNameConverterSupport()
-    {
-        $this->normalizer = new ObjectNormalizer(null, new CamelCaseToSnakeCaseNameConverter());
-        $obj = $this->normalizer->denormalize(
-            array('camel_case' => 'camelCase'),
-            __NAMESPACE__.'\ObjectDummy'
-        );
-        $this->assertEquals('camelCase', $obj->getCamelCase());
-    }
-
-    public function testDenormalizeNull()
-    {
-        $this->assertEquals(new ObjectDummy(), $this->normalizer->denormalize(null, __NAMESPACE__.'\ObjectDummy'));
-    }
-
-    public function testConstructorDenormalize()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => 'bar', 'baz' => true, 'fooBar' => 'foobar'),
-            __NAMESPACE__.'\ObjectConstructorDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->bar);
-        $this->assertTrue($obj->isBaz());
-    }
-
-    public function testConstructorDenormalizeWithNullArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => null, 'baz' => true),
-            __NAMESPACE__.'\ObjectConstructorDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertNull($obj->bar);
-        $this->assertTrue($obj->isBaz());
-    }
-
-    public function testConstructorDenormalizeWithMissingOptionalArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'test', 'baz' => array(1, 2, 3)),
-            __NAMESPACE__.'\ObjectConstructorOptionalArgsDummy', 'any');
-        $this->assertEquals('test', $obj->getFoo());
-        $this->assertEquals(array(), $obj->bar);
-        $this->assertEquals(array(1, 2, 3), $obj->getBaz());
-    }
-
-    public function testConstructorDenormalizeWithOptionalDefaultArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('bar' => 'test'),
-            __NAMESPACE__.'\ObjectConstructorArgsWithDefaultValueDummy', 'any');
-        $this->assertEquals(array(), $obj->getFoo());
-        $this->assertEquals('test', $obj->getBar());
-    }
-
-    public function testConstructorWithObjectDenormalize()
-    {
-        $data = new \stdClass();
-        $data->foo = 'foo';
-        $data->bar = 'bar';
-        $data->baz = true;
-        $data->fooBar = 'foobar';
-        $obj = $this->normalizer->denormalize($data, __NAMESPACE__.'\ObjectConstructorDummy', 'any');
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->bar);
-    }
-
-    public function testGroupsNormalize()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new ObjectNormalizer($classMetadataFactory);
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFoo('foo');
-        $obj->setBar('bar');
-        $obj->setFooBar('fooBar');
-        $obj->setSymfony('symfony');
-        $obj->setKevin('kevin');
-        $obj->setCoopTilleuls('coopTilleuls');
-
-        $this->assertEquals(array(
-            'bar' => 'bar',
-        ), $this->normalizer->normalize($obj, null, array('groups' => array('c'))));
-
-        $this->assertEquals(array(
-            'symfony' => 'symfony',
-            'foo' => 'foo',
-            'fooBar' => 'fooBar',
-            'bar' => 'bar',
-            'kevin' => 'kevin',
-            'coopTilleuls' => 'coopTilleuls',
-        ), $this->normalizer->normalize($obj, null, array('groups' => array('a', 'c'))));
-    }
-
-    public function testGroupsDenormalize()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new ObjectNormalizer($classMetadataFactory);
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFoo('foo');
-
-        $toNormalize = array('foo' => 'foo', 'bar' => 'bar');
-
-        $normalized = $this->normalizer->denormalize(
-            $toNormalize,
-            'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy',
-            null,
-            array('groups' => array('a'))
-        );
-        $this->assertEquals($obj, $normalized);
-
-        $obj->setBar('bar');
-
-        $normalized = $this->normalizer->denormalize(
-            $toNormalize,
-            'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy',
-            null,
-            array('groups' => array('a', 'b'))
-        );
-        $this->assertEquals($obj, $normalized);
-    }
-
-    public function testGroupsNormalizeWithNameConverter()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new ObjectNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFooBar('@dunglas');
-        $obj->setSymfony('@coopTilleuls');
-        $obj->setCoopTilleuls('les-tilleuls.coop');
-
-        $this->assertEquals(
-            array(
-                'bar' => null,
-                'foo_bar' => '@dunglas',
-                'symfony' => '@coopTilleuls',
-            ),
-            $this->normalizer->normalize($obj, null, array('groups' => array('name_converter')))
-        );
-    }
-
-    public function testGroupsDenormalizeWithNameConverter()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new ObjectNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFooBar('@dunglas');
-        $obj->setSymfony('@coopTilleuls');
-
-        $this->assertEquals(
-            $obj,
-            $this->normalizer->denormalize(array(
-                'bar' => null,
-                'foo_bar' => '@dunglas',
-                'symfony' => '@coopTilleuls',
-                'coop_tilleuls' => 'les-tilleuls.coop',
-            ), 'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy', null, array('groups' => array('name_converter')))
-        );
-    }
-
-    /**
-     * @dataProvider provideCallbacks
-     */
-    public function testCallbacks($callbacks, $value, $result, $message)
-    {
-        $this->normalizer->setCallbacks($callbacks);
-
-        $obj = new ObjectConstructorDummy('', $value, true);
-
-        $this->assertEquals(
-            $result,
-            $this->normalizer->normalize($obj, 'any'),
-            $message
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testUncallableCallbacks()
-    {
-        $this->normalizer->setCallbacks(array('bar' => null));
-
-        $obj = new ObjectConstructorDummy('baz', 'quux', true);
-
-        $this->normalizer->normalize($obj, 'any');
-    }
-
-    public function testIgnoredAttributes()
-    {
-        $this->normalizer->setIgnoredAttributes(array('foo', 'bar', 'baz', 'camelCase', 'object'));
-
-        $obj = new ObjectDummy();
-        $obj->setFoo('foo');
-        $obj->bar = 'bar';
-        $obj->setBaz(true);
-
-        $this->assertEquals(
-            array('fooBar' => 'foobar'),
-            $this->normalizer->normalize($obj, 'any')
-        );
-    }
-
-    public function provideCallbacks()
-    {
-        return array(
-            array(
-                array(
-                    'bar' => function ($bar) {
-                            return 'baz';
-                        },
-                ),
-                'baz',
-                array('foo' => '', 'bar' => 'baz', 'baz' => true),
-                'Change a string',
-            ),
-            array(
-                array(
-                    'bar' => function ($bar) {
-                            return;
-                        },
-                ),
-                'baz',
-                array('foo' => '', 'bar' => null, 'baz' => true),
-                'Null an item',
-            ),
-            array(
-                array(
-                    'bar' => function ($bar) {
-                            return $bar->format('d-m-Y H:i:s');
-                        },
-                ),
-                new \DateTime('2011-09-10 06:30:00'),
-                array('foo' => '', 'bar' => '10-09-2011 06:30:00', 'baz' => true),
-                'Format a date',
-            ),
-            array(
-                array(
-                    'bar' => function ($bars) {
-                            $foos = '';
-                            foreach ($bars as $bar) {
-                                $foos .= $bar->getFoo();
-                            }
-
-                            return $foos;
-                        },
-                ),
-                array(new ObjectConstructorDummy('baz', '', false), new ObjectConstructorDummy('quux', '', false)),
-                array('foo' => '', 'bar' => 'bazquux', 'baz' => true),
-                'Collect a property',
-            ),
-            array(
-                array(
-                    'bar' => function ($bars) {
-                            return count($bars);
-                        },
-                ),
-                array(new ObjectConstructorDummy('baz', '', false), new ObjectConstructorDummy('quux', '', false)),
-                array('foo' => '', 'bar' => 2, 'baz' => true),
-                'Count a property',
-            ),
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\LogicException
-     * @expectedExceptionMessage Cannot normalize attribute "object" because injected serializer is not a normalizer
-     */
-    public function testUnableToNormalizeObjectAttribute()
-    {
-        $serializer = $this->getMock('Symfony\Component\Serializer\SerializerInterface');
-        $this->normalizer->setSerializer($serializer);
-
-        $obj = new ObjectDummy();
-        $object = new \stdClass();
-        $obj->setObject($object);
-
-        $this->normalizer->normalize($obj, 'any');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\CircularReferenceException
-     */
-    public function testUnableToNormalizeCircularReference()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-        $this->normalizer->setCircularReferenceLimit(2);
-
-        $obj = new CircularReferenceDummy();
-
-        $this->normalizer->normalize($obj);
-    }
-
-    public function testSiblingReference()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-
-        $siblingHolder = new SiblingHolder();
-
-        $expected = array(
-            'sibling0' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-            'sibling1' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-            'sibling2' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-        );
-        $this->assertEquals($expected, $this->normalizer->normalize($siblingHolder));
-    }
-
-    public function testCircularReferenceHandler()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-        $this->normalizer->setCircularReferenceHandler(function ($obj) {
-            return get_class($obj);
-        });
-
-        $obj = new CircularReferenceDummy();
-
-        $expected = array('me' => 'Symfony\Component\Serializer\Tests\Fixtures\CircularReferenceDummy');
-        $this->assertEquals($expected, $this->normalizer->normalize($obj));
-    }
-
-    public function testDenormalizeNonExistingAttribute()
-    {
-        $this->assertEquals(
-            new ObjectDummy(),
-            $this->normalizer->denormalize(array('non_existing' => true), __NAMESPACE__.'\ObjectDummy')
-        );
-    }
-
-    public function testNoTraversableSupport()
-    {
-        $this->assertFalse($this->normalizer->supportsNormalization(new \ArrayObject()));
-    }
-}
-
-class ObjectDummy
-{
-    protected $foo;
-    public $bar;
-    private $baz;
-    protected $camelCase;
-    protected $object;
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function setFoo($foo)
-    {
-        $this->foo = $foo;
-    }
-
-    public function isBaz()
-    {
-        return $this->baz;
-    }
-
-    public function setBaz($baz)
-    {
-        $this->baz = $baz;
-    }
-
-    public function getFooBar()
-    {
-        return $this->foo.$this->bar;
-    }
-
-    public function getCamelCase()
-    {
-        return $this->camelCase;
-    }
-
-    public function setCamelCase($camelCase)
-    {
-        $this->camelCase = $camelCase;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-
-    public function setObject($object)
-    {
-        $this->object = $object;
-    }
-
-    public function getObject()
-    {
-        return $this->object;
-    }
-}
-
-class ObjectConstructorDummy
-{
-    protected $foo;
-    public $bar;
-    private $baz;
-
-    public function __construct($foo, $bar, $baz)
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-        $this->baz = $baz;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function isBaz()
-    {
-        return $this->baz;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-}
-
-abstract class ObjectSerializerNormalizer implements SerializerInterface, NormalizerInterface
-{
-}
-
-class ObjectConstructorOptionalArgsDummy
-{
-    protected $foo;
-    public $bar;
-    private $baz;
-
-    public function __construct($foo, $bar = array(), $baz = array())
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-        $this->baz = $baz;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBaz()
-    {
-        return $this->baz;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-}
-
-class ObjectConstructorArgsWithDefaultValueDummy
-{
-    protected $foo;
-    protected $bar;
-
-    public function __construct($foo = array(), $bar)
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function otherMethod()
-    {
-        throw new \RuntimeException('Dummy::otherMethod() should not be called');
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Normalizer/PropertyNormalizerTest.php b/core/vendor/symfony/serializer/Tests/Normalizer/PropertyNormalizerTest.php
deleted file mode 100644
index 62e6d5d..0000000
--- a/core/vendor/symfony/serializer/Tests/Normalizer/PropertyNormalizerTest.php
+++ /dev/null
@@ -1,493 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
-use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
-use Symfony\Component\Serializer\Normalizer\PropertyNormalizer;
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\SerializerInterface;
-use Symfony\Component\Serializer\Tests\Fixtures\GroupDummy;
-use Symfony\Component\Serializer\Tests\Fixtures\PropertyCircularReferenceDummy;
-use Symfony\Component\Serializer\Tests\Fixtures\PropertySiblingHolder;
-
-class PropertyNormalizerTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var PropertyNormalizer
-     */
-    private $normalizer;
-    /**
-     * @var SerializerInterface
-     */
-    private $serializer;
-
-    protected function setUp()
-    {
-        $this->serializer = $this->getMock('Symfony\Component\Serializer\SerializerInterface');
-        $this->normalizer = new PropertyNormalizer();
-        $this->normalizer->setSerializer($this->serializer);
-    }
-
-    public function testNormalize()
-    {
-        $obj = new PropertyDummy();
-        $obj->foo = 'foo';
-        $obj->setBar('bar');
-        $obj->setCamelCase('camelcase');
-        $this->assertEquals(
-            array('foo' => 'foo', 'bar' => 'bar', 'camelCase' => 'camelcase'),
-            $this->normalizer->normalize($obj, 'any')
-        );
-    }
-
-    public function testDenormalize()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => 'bar'),
-            __NAMESPACE__.'\PropertyDummy',
-            'any'
-        );
-        $this->assertEquals('foo', $obj->foo);
-        $this->assertEquals('bar', $obj->getBar());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyDenormalizeOnCamelCaseFormat()
-    {
-        $this->normalizer->setCamelizedAttributes(array('camel_case'));
-        $obj = $this->normalizer->denormalize(
-            array('camel_case' => 'value'),
-            __NAMESPACE__.'\PropertyDummy'
-        );
-        $this->assertEquals('value', $obj->getCamelCase());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyCamelizedAttributesNormalize()
-    {
-        $obj = new PropertyCamelizedDummy('dunglas.fr');
-        $obj->fooBar = 'les-tilleuls.coop';
-        $obj->bar_foo = 'lostinthesupermarket.fr';
-
-        $this->normalizer->setCamelizedAttributes(array('kevin_dunglas'));
-        $this->assertEquals($this->normalizer->normalize($obj), array(
-            'kevin_dunglas' => 'dunglas.fr',
-            'fooBar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ));
-
-        $this->normalizer->setCamelizedAttributes(array('foo_bar'));
-        $this->assertEquals($this->normalizer->normalize($obj), array(
-            'kevinDunglas' => 'dunglas.fr',
-            'foo_bar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyCamelizedAttributesDenormalize()
-    {
-        $obj = new PropertyCamelizedDummy('dunglas.fr');
-        $obj->fooBar = 'les-tilleuls.coop';
-        $obj->bar_foo = 'lostinthesupermarket.fr';
-
-        $this->normalizer->setCamelizedAttributes(array('kevin_dunglas'));
-        $this->assertEquals($this->normalizer->denormalize(array(
-            'kevin_dunglas' => 'dunglas.fr',
-            'fooBar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ), __NAMESPACE__.'\PropertyCamelizedDummy'), $obj);
-
-        $this->normalizer->setCamelizedAttributes(array('foo_bar'));
-        $this->assertEquals($this->normalizer->denormalize(array(
-            'kevinDunglas' => 'dunglas.fr',
-            'foo_bar' => 'les-tilleuls.coop',
-            'bar_foo' => 'lostinthesupermarket.fr',
-        ), __NAMESPACE__.'\PropertyCamelizedDummy'), $obj);
-    }
-
-    public function testNameConverterSupport()
-    {
-        $this->normalizer = new PropertyNormalizer(null, new CamelCaseToSnakeCaseNameConverter());
-        $obj = $this->normalizer->denormalize(
-            array('camel_case' => 'camelCase'),
-            __NAMESPACE__.'\PropertyDummy'
-        );
-        $this->assertEquals('camelCase', $obj->getCamelCase());
-    }
-
-    public function testConstructorDenormalize()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => 'foo', 'bar' => 'bar'),
-            __NAMESPACE__.'\PropertyConstructorDummy',
-            'any'
-        );
-        $this->assertEquals('foo', $obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-    }
-
-    public function testConstructorDenormalizeWithNullArgument()
-    {
-        $obj = $this->normalizer->denormalize(
-            array('foo' => null, 'bar' => 'bar'),
-            __NAMESPACE__.'\PropertyConstructorDummy', '
-            any'
-        );
-        $this->assertNull($obj->getFoo());
-        $this->assertEquals('bar', $obj->getBar());
-    }
-
-    /**
-     * @dataProvider provideCallbacks
-     */
-    public function testCallbacks($callbacks, $value, $result, $message)
-    {
-        $this->normalizer->setCallbacks($callbacks);
-
-        $obj = new PropertyConstructorDummy('', $value);
-
-        $this->assertEquals(
-            $result,
-            $this->normalizer->normalize($obj, 'any'),
-            $message
-        );
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testUncallableCallbacks()
-    {
-        $this->normalizer->setCallbacks(array('bar' => null));
-
-        $obj = new PropertyConstructorDummy('baz', 'quux');
-
-        $this->normalizer->normalize($obj, 'any');
-    }
-
-    public function testIgnoredAttributes()
-    {
-        $this->normalizer->setIgnoredAttributes(array('foo', 'bar', 'camelCase'));
-
-        $obj = new PropertyDummy();
-        $obj->foo = 'foo';
-        $obj->setBar('bar');
-
-        $this->assertEquals(
-            array(),
-            $this->normalizer->normalize($obj, 'any')
-        );
-    }
-
-    public function testGroupsNormalize()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new PropertyNormalizer($classMetadataFactory);
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFoo('foo');
-        $obj->setBar('bar');
-        $obj->setFooBar('fooBar');
-        $obj->setSymfony('symfony');
-        $obj->setKevin('kevin');
-        $obj->setCoopTilleuls('coopTilleuls');
-
-        $this->assertEquals(array(
-            'bar' => 'bar',
-        ), $this->normalizer->normalize($obj, null, array('groups' => array('c'))));
-
-        // The PropertyNormalizer is not able to hydrate properties from parent classes
-        $this->assertEquals(array(
-            'symfony' => 'symfony',
-            'foo' => 'foo',
-            'fooBar' => 'fooBar',
-            'bar' => 'bar',
-        ), $this->normalizer->normalize($obj, null, array('groups' => array('a', 'c'))));
-    }
-
-    public function testGroupsDenormalize()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new PropertyNormalizer($classMetadataFactory);
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFoo('foo');
-
-        $toNormalize = array('foo' => 'foo', 'bar' => 'bar');
-
-        $normalized = $this->normalizer->denormalize(
-            $toNormalize,
-            'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy',
-            null,
-            array('groups' => array('a'))
-        );
-        $this->assertEquals($obj, $normalized);
-
-        $obj->setBar('bar');
-
-        $normalized = $this->normalizer->denormalize(
-            $toNormalize,
-            'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy',
-            null,
-            array('groups' => array('a', 'b'))
-        );
-        $this->assertEquals($obj, $normalized);
-    }
-
-    public function testGroupsNormalizeWithNameConverter()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new PropertyNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFooBar('@dunglas');
-        $obj->setSymfony('@coopTilleuls');
-        $obj->setCoopTilleuls('les-tilleuls.coop');
-
-        $this->assertEquals(
-            array(
-                'bar' => null,
-                'foo_bar' => '@dunglas',
-                'symfony' => '@coopTilleuls',
-            ),
-            $this->normalizer->normalize($obj, null, array('groups' => array('name_converter')))
-        );
-    }
-
-    public function testGroupsDenormalizeWithNameConverter()
-    {
-        $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
-        $this->normalizer = new PropertyNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter());
-        $this->normalizer->setSerializer($this->serializer);
-
-        $obj = new GroupDummy();
-        $obj->setFooBar('@dunglas');
-        $obj->setSymfony('@coopTilleuls');
-
-        $this->assertEquals(
-            $obj,
-            $this->normalizer->denormalize(array(
-                'bar' => null,
-                'foo_bar' => '@dunglas',
-                'symfony' => '@coopTilleuls',
-                'coop_tilleuls' => 'les-tilleuls.coop',
-            ), 'Symfony\Component\Serializer\Tests\Fixtures\GroupDummy', null, array('groups' => array('name_converter')))
-        );
-    }
-
-    public function provideCallbacks()
-    {
-        return array(
-            array(
-                array(
-                    'bar' => function ($bar) {
-                        return 'baz';
-                    },
-                ),
-                'baz',
-                array('foo' => '', 'bar' => 'baz'),
-                'Change a string',
-            ),
-            array(
-                array(
-                    'bar' => function ($bar) {
-                        return;
-                    },
-                ),
-                'baz',
-                array('foo' => '', 'bar' => null),
-                'Null an item',
-            ),
-            array(
-                array(
-                    'bar' => function ($bar) {
-                        return $bar->format('d-m-Y H:i:s');
-                    },
-                ),
-                new \DateTime('2011-09-10 06:30:00'),
-                array('foo' => '', 'bar' => '10-09-2011 06:30:00'),
-                'Format a date',
-            ),
-            array(
-                array(
-                    'bar' => function ($bars) {
-                        $foos = '';
-                        foreach ($bars as $bar) {
-                            $foos .= $bar->getFoo();
-                        }
-
-                        return $foos;
-                    },
-                ),
-                array(new PropertyConstructorDummy('baz', ''), new PropertyConstructorDummy('quux', '')),
-                array('foo' => '', 'bar' => 'bazquux'),
-                'Collect a property',
-            ),
-            array(
-                array(
-                    'bar' => function ($bars) {
-                        return count($bars);
-                    },
-                ),
-                array(new PropertyConstructorDummy('baz', ''), new PropertyConstructorDummy('quux', '')),
-                array('foo' => '', 'bar' => 2),
-                'Count a property',
-            ),
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\CircularReferenceException
-     */
-    public function testUnableToNormalizeCircularReference()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-        $this->normalizer->setCircularReferenceLimit(2);
-
-        $obj = new PropertyCircularReferenceDummy();
-
-        $this->normalizer->normalize($obj);
-    }
-
-    public function testSiblingReference()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-
-        $siblingHolder = new PropertySiblingHolder();
-
-        $expected = array(
-            'sibling0' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-            'sibling1' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-            'sibling2' => array('coopTilleuls' => 'Les-Tilleuls.coop'),
-        );
-        $this->assertEquals($expected, $this->normalizer->normalize($siblingHolder));
-    }
-
-    public function testCircularReferenceHandler()
-    {
-        $serializer = new Serializer(array($this->normalizer));
-        $this->normalizer->setSerializer($serializer);
-        $this->normalizer->setCircularReferenceHandler(function ($obj) {
-            return get_class($obj);
-        });
-
-        $obj = new PropertyCircularReferenceDummy();
-
-        $expected = array('me' => 'Symfony\Component\Serializer\Tests\Fixtures\PropertyCircularReferenceDummy');
-        $this->assertEquals($expected, $this->normalizer->normalize($obj));
-    }
-
-    public function testDenormalizeNonExistingAttribute()
-    {
-        $this->assertEquals(
-            new PropertyDummy(),
-            $this->normalizer->denormalize(array('non_existing' => true), __NAMESPACE__.'\PropertyDummy')
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\LogicException
-     * @expectedExceptionMessage Cannot normalize attribute "bar" because injected serializer is not a normalizer
-     */
-    public function testUnableToNormalizeObjectAttribute()
-    {
-        $serializer = $this->getMock('Symfony\Component\Serializer\SerializerInterface');
-        $this->normalizer->setSerializer($serializer);
-
-        $obj = new PropertyDummy();
-        $object = new \stdClass();
-        $obj->setBar($object);
-
-        $this->normalizer->normalize($obj, 'any');
-    }
-
-    public function testNoTraversableSupport()
-    {
-        $this->assertFalse($this->normalizer->supportsNormalization(new \ArrayObject()));
-    }
-}
-
-class PropertyDummy
-{
-    public $foo;
-    private $bar;
-    protected $camelCase;
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-
-    public function setBar($bar)
-    {
-        $this->bar = $bar;
-    }
-
-    public function getCamelCase()
-    {
-        return $this->camelCase;
-    }
-
-    public function setCamelCase($camelCase)
-    {
-        $this->camelCase = $camelCase;
-    }
-}
-
-class PropertyConstructorDummy
-{
-    protected $foo;
-    private $bar;
-
-    public function __construct($foo, $bar)
-    {
-        $this->foo = $foo;
-        $this->bar = $bar;
-    }
-
-    public function getFoo()
-    {
-        return $this->foo;
-    }
-
-    public function getBar()
-    {
-        return $this->bar;
-    }
-}
-
-class PropertyCamelizedDummy
-{
-    private $kevinDunglas;
-    public $fooBar;
-    public $bar_foo;
-
-    public function __construct($kevinDunglas = null)
-    {
-        $this->kevinDunglas = $kevinDunglas;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Normalizer/TestDenormalizer.php b/core/vendor/symfony/serializer/Tests/Normalizer/TestDenormalizer.php
deleted file mode 100644
index 7525d5c..0000000
--- a/core/vendor/symfony/serializer/Tests/Normalizer/TestDenormalizer.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
-
-/**
- * Provides a test Normalizer which only implements the DenormalizerInterface.
- *
- * @author Lin Clark <lin@lin-clark.com>
- */
-class TestDenormalizer implements DenormalizerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function denormalize($data, $class, $format = null, array $context = array())
-    {
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsDenormalization($data, $type, $format = null)
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/Normalizer/TestNormalizer.php b/core/vendor/symfony/serializer/Tests/Normalizer/TestNormalizer.php
deleted file mode 100644
index 4b29e8f..0000000
--- a/core/vendor/symfony/serializer/Tests/Normalizer/TestNormalizer.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests\Normalizer;
-
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
-
-/**
- * Provides a test Normalizer which only implements the NormalizerInterface.
- *
- * @author Lin Clark <lin@lin-clark.com>
- */
-class TestNormalizer implements NormalizerInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function normalize($object, $format = null, array $context = array())
-    {
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function supportsNormalization($data, $format = null)
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/symfony/serializer/Tests/SerializerTest.php b/core/vendor/symfony/serializer/Tests/SerializerTest.php
deleted file mode 100644
index 68f70fc..0000000
--- a/core/vendor/symfony/serializer/Tests/SerializerTest.php
+++ /dev/null
@@ -1,267 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Serializer\Tests;
-
-use Symfony\Component\Serializer\Serializer;
-use Symfony\Component\Serializer\Encoder\JsonEncoder;
-use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
-use Symfony\Component\Serializer\Normalizer\CustomNormalizer;
-use Symfony\Component\Serializer\Tests\Fixtures\TraversableDummy;
-use Symfony\Component\Serializer\Tests\Fixtures\NormalizableTraversableDummy;
-use Symfony\Component\Serializer\Tests\Normalizer\TestNormalizer;
-use Symfony\Component\Serializer\Tests\Normalizer\TestDenormalizer;
-
-class SerializerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testInterface()
-    {
-        $serializer = new Serializer();
-
-        $this->assertInstanceOf('Symfony\Component\Serializer\SerializerInterface', $serializer);
-        $this->assertInstanceOf('Symfony\Component\Serializer\Normalizer\NormalizerInterface', $serializer);
-        $this->assertInstanceOf('Symfony\Component\Serializer\Normalizer\DenormalizerInterface', $serializer);
-        $this->assertInstanceOf('Symfony\Component\Serializer\Encoder\EncoderInterface', $serializer);
-        $this->assertInstanceOf('Symfony\Component\Serializer\Encoder\DecoderInterface', $serializer);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testNormalizeNoMatch()
-    {
-        $this->serializer = new Serializer(array($this->getMock('Symfony\Component\Serializer\Normalizer\CustomNormalizer')));
-        $this->serializer->normalize(new \stdClass(), 'xml');
-    }
-
-    public function testNormalizeTraversable()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $result = $this->serializer->serialize(new TraversableDummy(), 'json');
-        $this->assertEquals('{"foo":"foo","bar":"bar"}', $result);
-    }
-
-    public function testNormalizeGivesPriorityToInterfaceOverTraversable()
-    {
-        $this->serializer = new Serializer(array(new CustomNormalizer()), array('json' => new JsonEncoder()));
-        $result = $this->serializer->serialize(new NormalizableTraversableDummy(), 'json');
-        $this->assertEquals('{"foo":"normalizedFoo","bar":"normalizedBar"}', $result);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testNormalizeOnDenormalizer()
-    {
-        $this->serializer = new Serializer(array(new TestDenormalizer()), array());
-        $this->assertTrue($this->serializer->normalize(new \stdClass(), 'json'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testDenormalizeNoMatch()
-    {
-        $this->serializer = new Serializer(array($this->getMock('Symfony\Component\Serializer\Normalizer\CustomNormalizer')));
-        $this->serializer->denormalize('foo', 'stdClass');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testDenormalizeOnNormalizer()
-    {
-        $this->serializer = new Serializer(array(new TestNormalizer()), array());
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->assertTrue($this->serializer->denormalize(json_encode($data), 'stdClass', 'json'));
-    }
-
-    public function testCustomNormalizerCanNormalizeCollectionsAndScalar()
-    {
-        $this->serializer = new Serializer(array(new TestNormalizer()), array());
-        $this->assertNull($this->serializer->normalize(array('a', 'b')));
-        $this->assertNull($this->serializer->normalize(new \ArrayObject(array('c', 'd'))));
-        $this->assertNull($this->serializer->normalize(array()));
-        $this->assertNull($this->serializer->normalize('test'));
-    }
-
-    public function testSerialize()
-    {
-        $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $result = $this->serializer->serialize(Model::fromArray($data), 'json');
-        $this->assertEquals(json_encode($data), $result);
-    }
-
-    public function testSerializeScalar()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $result = $this->serializer->serialize('foo', 'json');
-        $this->assertEquals('"foo"', $result);
-    }
-
-    public function testSerializeArrayOfScalars()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $data = array('foo', array(5, 3));
-        $result = $this->serializer->serialize($data, 'json');
-        $this->assertEquals(json_encode($data), $result);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testSerializeNoEncoder()
-    {
-        $this->serializer = new Serializer(array(), array());
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->serializer->serialize($data, 'json');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\LogicException
-     */
-    public function testSerializeNoNormalizer()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->serializer->serialize(Model::fromArray($data), 'json');
-    }
-
-    public function testDeserialize()
-    {
-        $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $result = $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json');
-        $this->assertEquals($data, $result->toArray());
-    }
-
-    public function testDeserializeUseCache()
-    {
-        $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json');
-        $data = array('title' => 'bar', 'numbers' => array(2, 8));
-        $result = $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json');
-        $this->assertEquals($data, $result->toArray());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\LogicException
-     */
-    public function testDeserializeNoNormalizer()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testDeserializeWrongNormalizer()
-    {
-        $this->serializer = new Serializer(array(new CustomNormalizer()), array('json' => new JsonEncoder()));
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
-     */
-    public function testDeserializeNoEncoder()
-    {
-        $this->serializer = new Serializer(array(), array());
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json');
-    }
-
-    public function testDeserializeSupported()
-    {
-        $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array());
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->assertTrue($this->serializer->supportsDenormalization(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'));
-    }
-
-    public function testDeserializeNotSupported()
-    {
-        $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array());
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->assertFalse($this->serializer->supportsDenormalization(json_encode($data), 'stdClass', 'json'));
-    }
-
-    public function testDeserializeNotSupportedMissing()
-    {
-        $this->serializer = new Serializer(array(), array());
-        $data = array('title' => 'foo', 'numbers' => array(5, 3));
-        $this->assertFalse($this->serializer->supportsDenormalization(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'));
-    }
-
-    public function testEncode()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $data = array('foo', array(5, 3));
-        $result = $this->serializer->encode($data, 'json');
-        $this->assertEquals(json_encode($data), $result);
-    }
-
-    public function testDecode()
-    {
-        $this->serializer = new Serializer(array(), array('json' => new JsonEncoder()));
-        $data = array('foo', array(5, 3));
-        $result = $this->serializer->decode(json_encode($data), 'json');
-        $this->assertEquals($data, $result);
-    }
-}
-
-class Model
-{
-    private $title;
-    private $numbers;
-
-    public static function fromArray($array)
-    {
-        $model = new self();
-        if (isset($array['title'])) {
-            $model->setTitle($array['title']);
-        }
-        if (isset($array['numbers'])) {
-            $model->setNumbers($array['numbers']);
-        }
-
-        return $model;
-    }
-
-    public function getTitle()
-    {
-        return $this->title;
-    }
-
-    public function setTitle($title)
-    {
-        $this->title = $title;
-    }
-
-    public function getNumbers()
-    {
-        return $this->numbers;
-    }
-
-    public function setNumbers($numbers)
-    {
-        $this->numbers = $numbers;
-    }
-
-    public function toArray()
-    {
-        return array('title' => $this->title, 'numbers' => $this->numbers);
-    }
-}
diff --git a/core/vendor/symfony/serializer/composer.json b/core/vendor/symfony/serializer/composer.json
deleted file mode 100644
index 0f28b518..0000000
--- a/core/vendor/symfony/serializer/composer.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-    "name": "symfony/serializer",
-    "type": "library",
-    "description": "Symfony Serializer Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/yaml": "~2.0",
-        "symfony/config": "~2.2",
-        "symfony/property-access": "~2.3",
-        "doctrine/annotations": "~1.0",
-        "doctrine/cache": "~1.0"
-    },
-    "suggest": {
-        "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
-        "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
-        "symfony/yaml": "For using the default YAML mapping loader.",
-        "symfony/config": "For using the XML mapping loader.",
-        "symfony/property-access": "For using the ObjectNormalizer."
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Serializer\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/serializer/phpunit.xml.dist b/core/vendor/symfony/serializer/phpunit.xml.dist
deleted file mode 100644
index 279e1eb..0000000
--- a/core/vendor/symfony/serializer/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Serializer Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./vendor</directory>
-                <directory>./Tests</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/translation/.gitignore b/core/vendor/symfony/translation/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/translation/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/translation/CHANGELOG.md b/core/vendor/symfony/translation/CHANGELOG.md
deleted file mode 100644
index 157752c..0000000
--- a/core/vendor/symfony/translation/CHANGELOG.md
+++ /dev/null
@@ -1,47 +0,0 @@
-CHANGELOG
-=========
-
-2.7.0
------
-
- * added DataCollectorTranslator for collecting the translated messages.
-
-2.6.0
------
-
- * added possibility to cache catalogues
- * added TranslatorBagInterface
- * added LoggingTranslator
- * added Translator::getMessages() for retrieving the message catalogue as an array
-
-2.5.0
------
-
- * added relative file path template to the file dumpers
- * added optional backup to the file dumpers
- * changed IcuResFileDumper to extend FileDumper
-
-2.3.0
------
-
- * added classes to make operations on catalogues (like making a diff or a merge on 2 catalogues)
- * added Translator::getFallbackLocales()
- * deprecated Translator::setFallbackLocale() in favor of the new Translator::setFallbackLocales() method
-
-2.2.0
------
-
- * QtTranslationsLoader class renamed to QtFileLoader. QtTranslationsLoader is deprecated and will be removed in 2.3.
- * [BC BREAK] uniformized the exception thrown by the load() method when an error occurs. The load() method now
-   throws Symfony\Component\Translation\Exception\NotFoundResourceException when a resource cannot be found
-   and Symfony\Component\Translation\Exception\InvalidResourceException when a resource is invalid.
- * changed the exception class thrown by some load() methods from \RuntimeException to \InvalidArgumentException
-   (IcuDatFileLoader, IcuResFileLoader and QtFileLoader)
-
-2.1.0
------
-
- * added support for more than one fallback locale
- * added support for extracting translation messages from templates (Twig and PHP)
- * added dumpers for translation catalogs
- * added support for QT, gettext, and ResourceBundles
diff --git a/core/vendor/symfony/translation/Catalogue/AbstractOperation.php b/core/vendor/symfony/translation/Catalogue/AbstractOperation.php
deleted file mode 100644
index 062056b..0000000
--- a/core/vendor/symfony/translation/Catalogue/AbstractOperation.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Catalogue;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\MessageCatalogueInterface;
-
-/**
- * Base catalogues binary operation class.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-abstract class AbstractOperation implements OperationInterface
-{
-    /**
-     * @var MessageCatalogueInterface
-     */
-    protected $source;
-
-    /**
-     * @var MessageCatalogueInterface
-     */
-    protected $target;
-
-    /**
-     * @var MessageCatalogue
-     */
-    protected $result;
-
-    /**
-     * @var null|array
-     */
-    private $domains;
-
-    /**
-     * @var array
-     */
-    protected $messages;
-
-    /**
-     * @param MessageCatalogueInterface $source
-     * @param MessageCatalogueInterface $target
-     *
-     * @throws \LogicException
-     */
-    public function __construct(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
-    {
-        if ($source->getLocale() !== $target->getLocale()) {
-            throw new \LogicException('Operated catalogues must belong to the same locale.');
-        }
-
-        $this->source = $source;
-        $this->target = $target;
-        $this->result = new MessageCatalogue($source->getLocale());
-        $this->domains = null;
-        $this->messages = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDomains()
-    {
-        if (null === $this->domains) {
-            $this->domains = array_values(array_unique(array_merge($this->source->getDomains(), $this->target->getDomains())));
-        }
-
-        return $this->domains;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMessages($domain)
-    {
-        if (!in_array($domain, $this->getDomains())) {
-            throw new \InvalidArgumentException(sprintf('Invalid domain: %s.', $domain));
-        }
-
-        if (!isset($this->messages[$domain]['all'])) {
-            $this->processDomain($domain);
-        }
-
-        return $this->messages[$domain]['all'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNewMessages($domain)
-    {
-        if (!in_array($domain, $this->getDomains())) {
-            throw new \InvalidArgumentException(sprintf('Invalid domain: %s.', $domain));
-        }
-
-        if (!isset($this->messages[$domain]['new'])) {
-            $this->processDomain($domain);
-        }
-
-        return $this->messages[$domain]['new'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getObsoleteMessages($domain)
-    {
-        if (!in_array($domain, $this->getDomains())) {
-            throw new \InvalidArgumentException(sprintf('Invalid domain: %s.', $domain));
-        }
-
-        if (!isset($this->messages[$domain]['obsolete'])) {
-            $this->processDomain($domain);
-        }
-
-        return $this->messages[$domain]['obsolete'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getResult()
-    {
-        foreach ($this->getDomains() as $domain) {
-            if (!isset($this->messages[$domain])) {
-                $this->processDomain($domain);
-            }
-        }
-
-        return $this->result;
-    }
-
-    /**
-     * @param string $domain
-     */
-    abstract protected function processDomain($domain);
-}
diff --git a/core/vendor/symfony/translation/Catalogue/DiffOperation.php b/core/vendor/symfony/translation/Catalogue/DiffOperation.php
deleted file mode 100644
index 2d1994e..0000000
--- a/core/vendor/symfony/translation/Catalogue/DiffOperation.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Catalogue;
-
-/**
- * Diff operation between two catalogues.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class DiffOperation extends AbstractOperation
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function processDomain($domain)
-    {
-        $this->messages[$domain] = array(
-            'all' => array(),
-            'new' => array(),
-            'obsolete' => array(),
-        );
-
-        foreach ($this->source->all($domain) as $id => $message) {
-            if ($this->target->has($id, $domain)) {
-                $this->messages[$domain]['all'][$id] = $message;
-                $this->result->add(array($id => $message), $domain);
-                if (null !== $keyMetadata = $this->source->getMetadata($id, $domain)) {
-                    $this->result->setMetadata($id, $keyMetadata, $domain);
-                }
-            } else {
-                $this->messages[$domain]['obsolete'][$id] = $message;
-            }
-        }
-
-        foreach ($this->target->all($domain) as $id => $message) {
-            if (!$this->source->has($id, $domain)) {
-                $this->messages[$domain]['all'][$id] = $message;
-                $this->messages[$domain]['new'][$id] = $message;
-                $this->result->add(array($id => $message), $domain);
-                if (null !== $keyMetadata = $this->target->getMetadata($id, $domain)) {
-                    $this->result->setMetadata($id, $keyMetadata, $domain);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Catalogue/MergeOperation.php b/core/vendor/symfony/translation/Catalogue/MergeOperation.php
deleted file mode 100644
index 562ca0e..0000000
--- a/core/vendor/symfony/translation/Catalogue/MergeOperation.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Catalogue;
-
-/**
- * Merge operation between two catalogues.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
-class MergeOperation extends AbstractOperation
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function processDomain($domain)
-    {
-        $this->messages[$domain] = array(
-            'all' => array(),
-            'new' => array(),
-            'obsolete' => array(),
-        );
-
-        foreach ($this->source->all($domain) as $id => $message) {
-            $this->messages[$domain]['all'][$id] = $message;
-            $this->result->add(array($id => $message), $domain);
-            if (null !== $keyMetadata = $this->source->getMetadata($id, $domain)) {
-                $this->result->setMetadata($id, $keyMetadata, $domain);
-            }
-        }
-
-        foreach ($this->target->all($domain) as $id => $message) {
-            if (!$this->source->has($id, $domain)) {
-                $this->messages[$domain]['all'][$id] = $message;
-                $this->messages[$domain]['new'][$id] = $message;
-                $this->result->add(array($id => $message), $domain);
-                if (null !== $keyMetadata = $this->target->getMetadata($id, $domain)) {
-                    $this->result->setMetadata($id, $keyMetadata, $domain);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Catalogue/OperationInterface.php b/core/vendor/symfony/translation/Catalogue/OperationInterface.php
deleted file mode 100644
index d72378a..0000000
--- a/core/vendor/symfony/translation/Catalogue/OperationInterface.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Catalogue;
-
-use Symfony\Component\Translation\MessageCatalogueInterface;
-
-/**
- * Represents an operation on catalogue(s).
- *
- * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
- */
-interface OperationInterface
-{
-    /**
-     * Returns domains affected by operation.
-     *
-     * @return array
-     */
-    public function getDomains();
-
-    /**
-     * Returns all valid messages after operation.
-     *
-     * @param string $domain
-     *
-     * @return array
-     */
-    public function getMessages($domain);
-
-    /**
-     * Returns new messages after operation.
-     *
-     * @param string $domain
-     *
-     * @return array
-     */
-    public function getNewMessages($domain);
-
-    /**
-     * Returns obsolete messages after operation.
-     *
-     * @param string $domain
-     *
-     * @return array
-     */
-    public function getObsoleteMessages($domain);
-
-    /**
-     * Returns resulting catalogue.
-     *
-     * @return MessageCatalogueInterface
-     */
-    public function getResult();
-}
diff --git a/core/vendor/symfony/translation/DataCollector/TranslationDataCollector.php b/core/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
deleted file mode 100644
index eb9d1e7..0000000
--- a/core/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\DataCollector;
-
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\DataCollector\DataCollector;
-use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface;
-use Symfony\Component\Translation\DataCollectorTranslator;
-
-/**
- * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
- */
-class TranslationDataCollector extends DataCollector implements LateDataCollectorInterface
-{
-    /**
-     * @var DataCollectorTranslator
-     */
-    private $translator;
-
-    /**
-     * @param DataCollectorTranslator $translator
-     */
-    public function __construct(DataCollectorTranslator $translator)
-    {
-        $this->translator = $translator;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function lateCollect()
-    {
-        $messages = $this->sanitizeCollectedMessages($this->translator->getCollectedMessages());
-
-        $this->data = $this->computeCount($messages);
-        $this->data['messages'] = $messages;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function collect(Request $request, Response $response, \Exception $exception = null)
-    {
-    }
-
-    /**
-     * @return array
-     */
-    public function getMessages()
-    {
-        return isset($this->data['messages']) ? $this->data['messages'] : array();
-    }
-
-    /**
-     * @return int
-     */
-    public function getCountMissings()
-    {
-        return isset($this->data[DataCollectorTranslator::MESSAGE_MISSING]) ? $this->data[DataCollectorTranslator::MESSAGE_MISSING] : 0;
-    }
-
-    /**
-     * @return int
-     */
-    public function getCountFallbacks()
-    {
-        return isset($this->data[DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK]) ? $this->data[DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK] : 0;
-    }
-
-    /**
-     * @return int
-     */
-    public function getCountDefines()
-    {
-        return isset($this->data[DataCollectorTranslator::MESSAGE_DEFINED]) ? $this->data[DataCollectorTranslator::MESSAGE_DEFINED] : 0;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'translation';
-    }
-
-    private function sanitizeCollectedMessages($messages)
-    {
-        $result = array();
-        foreach ($messages as $key => $message) {
-            $messageId = $message['locale'].$message['domain'].$message['id'];
-
-            if (!isset($result[$messageId])) {
-                $message['count'] = 1;
-                $messages[$key]['translation'] = $this->sanitizeString($message['translation']);
-                $result[$messageId] = $message;
-            } else {
-                $result[$messageId]['count']++;
-            }
-
-            unset($messages[$key]);
-        }
-
-        return $result;
-    }
-
-    private function computeCount($messages)
-    {
-        $count = array(
-            DataCollectorTranslator::MESSAGE_DEFINED => 0,
-            DataCollectorTranslator::MESSAGE_MISSING => 0,
-            DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK => 0,
-        );
-
-        foreach ($messages as $message) {
-            ++$count[$message['state']];
-        }
-
-        return $count;
-    }
-
-    private function sanitizeString($string, $length = 80)
-    {
-        $string = trim(preg_replace('/\s+/', ' ', $string));
-
-        if (function_exists('mb_strlen') && false !== $encoding = mb_detect_encoding($string)) {
-            if (mb_strlen($string, $encoding) > $length) {
-                return mb_substr($string, 0, $length - 3, $encoding).'...';
-            }
-        } elseif (strlen($string) > $length) {
-            return substr($string, 0, $length - 3).'...';
-        }
-
-        return $string;
-    }
-}
diff --git a/core/vendor/symfony/translation/DataCollectorTranslator.php b/core/vendor/symfony/translation/DataCollectorTranslator.php
deleted file mode 100644
index 813a857..0000000
--- a/core/vendor/symfony/translation/DataCollectorTranslator.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
- */
-class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInterface
-{
-    const MESSAGE_DEFINED = 0;
-    const MESSAGE_MISSING = 1;
-    const MESSAGE_EQUALS_FALLBACK = 2;
-
-    /**
-     * @var TranslatorInterface|TranslatorBagInterface
-     */
-    private $translator;
-
-    /**
-     * @var array
-     */
-    private $messages = array();
-
-    /**
-     * @param TranslatorInterface $translator The translator must implement TranslatorBagInterface
-     */
-    public function __construct(TranslatorInterface $translator)
-    {
-        if (!$translator instanceof TranslatorBagInterface) {
-            throw new \InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface and TranslatorBagInterface.', get_class($translator)));
-        }
-
-        $this->translator = $translator;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function trans($id, array $parameters = array(), $domain = null, $locale = null)
-    {
-        $trans = $this->translator->trans($id, $parameters, $domain, $locale);
-        $this->collectMessage($locale, $domain, $id, $trans);
-
-        return $trans;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
-    {
-        $trans = $this->translator->transChoice($id, $number, $parameters, $domain, $locale);
-        $this->collectMessage($locale, $domain, $id, $trans);
-
-        return $trans;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setLocale($locale)
-    {
-        $this->translator->setLocale($locale);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getLocale()
-    {
-        return $this->translator->getLocale();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCatalogue($locale = null)
-    {
-        return $this->translator->getCatalogue($locale);
-    }
-
-    /**
-     * Passes through all unknown calls onto the translator object.
-     */
-    public function __call($method, $args)
-    {
-        return call_user_func_array(array($this->translator, $method), $args);
-    }
-
-    /**
-     * @return array
-     */
-    public function getCollectedMessages()
-    {
-        return $this->messages;
-    }
-
-    /**
-     * @param string|null $locale
-     * @param string|null $domain
-     * @param string      $id
-     * @param string      $trans
-     */
-    private function collectMessage($locale, $domain, $id, $translation)
-    {
-        if (null === $domain) {
-            $domain = 'messages';
-        }
-
-        $id = (string) $id;
-        $catalogue = $this->translator->getCatalogue($locale);
-        $locale = $catalogue->getLocale();
-        if ($catalogue->defines($id, $domain)) {
-            $state = self::MESSAGE_DEFINED;
-        } elseif ($catalogue->has($id, $domain)) {
-            $state = self::MESSAGE_EQUALS_FALLBACK;
-
-            $fallbackCatalogue = $catalogue->getFallBackCatalogue();
-            while ($fallbackCatalogue) {
-                if ($fallbackCatalogue->defines($id, $domain)) {
-                    $locale = $fallbackCatalogue->getLocale();
-                    break;
-                }
-
-                $fallbackCatalogue = $fallbackCatalogue->getFallBackCatalogue();
-            }
-        } else {
-            $state = self::MESSAGE_MISSING;
-        }
-
-        $this->messages[] = array(
-            'locale' => $locale,
-            'domain' => $domain,
-            'id' => $id,
-            'translation' => $translation,
-            'state' => $state,
-        );
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/CsvFileDumper.php b/core/vendor/symfony/translation/Dumper/CsvFileDumper.php
deleted file mode 100644
index 08005b0..0000000
--- a/core/vendor/symfony/translation/Dumper/CsvFileDumper.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * CsvFileDumper generates a csv formatted string representation of a message catalogue.
- *
- * @author Stealth35
- */
-class CsvFileDumper extends FileDumper
-{
-    private $delimiter = ';';
-    private $enclosure = '"';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain = 'messages')
-    {
-        $handle = fopen('php://memory', 'rb+');
-
-        foreach ($messages->all($domain) as $source => $target) {
-            fputcsv($handle, array($source, $target), $this->delimiter, $this->enclosure);
-        }
-
-        rewind($handle);
-        $output = stream_get_contents($handle);
-        fclose($handle);
-
-        return $output;
-    }
-
-    /**
-     * Sets the delimiter and escape character for CSV.
-     *
-     * @param string $delimiter delimiter character
-     * @param string $enclosure enclosure character
-     */
-    public function setCsvControl($delimiter = ';', $enclosure = '"')
-    {
-        $this->delimiter = $delimiter;
-        $this->enclosure = $enclosure;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'csv';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/DumperInterface.php b/core/vendor/symfony/translation/Dumper/DumperInterface.php
deleted file mode 100644
index cebc65e..0000000
--- a/core/vendor/symfony/translation/Dumper/DumperInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * DumperInterface is the interface implemented by all translation dumpers.
- * There is no common option.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-interface DumperInterface
-{
-    /**
-     * Dumps the message catalogue.
-     *
-     * @param MessageCatalogue $messages The message catalogue
-     * @param array            $options  Options that are used by the dumper
-     */
-    public function dump(MessageCatalogue $messages, $options = array());
-}
diff --git a/core/vendor/symfony/translation/Dumper/FileDumper.php b/core/vendor/symfony/translation/Dumper/FileDumper.php
deleted file mode 100644
index f2f17d6..0000000
--- a/core/vendor/symfony/translation/Dumper/FileDumper.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * FileDumper is an implementation of DumperInterface that dump a message catalogue to file(s).
- * Performs backup of already existing files.
- *
- * Options:
- * - path (mandatory): the directory where the files should be saved
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-abstract class FileDumper implements DumperInterface
-{
-    /**
-     * A template for the relative paths to files.
-     *
-     * @var string
-     */
-    protected $relativePathTemplate = '%domain%.%locale%.%extension%';
-
-    /**
-     * Make file backup before the dump.
-     *
-     * @var bool
-     */
-    private $backup = true;
-
-    /**
-     * Sets the template for the relative paths to files.
-     *
-     * @param string $relativePathTemplate A template for the relative paths to files
-     */
-    public function setRelativePathTemplate($relativePathTemplate)
-    {
-        $this->relativePathTemplate = $relativePathTemplate;
-    }
-
-    /**
-     * Sets backup flag.
-     *
-     * @param bool
-     */
-    public function setBackup($backup)
-    {
-        $this->backup = $backup;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function dump(MessageCatalogue $messages, $options = array())
-    {
-        if (!array_key_exists('path', $options)) {
-            throw new \InvalidArgumentException('The file dumper needs a path option.');
-        }
-
-        // save a file for each domain
-        foreach ($messages->getDomains() as $domain) {
-            // backup
-            $fullpath = $options['path'].'/'.$this->getRelativePath($domain, $messages->getLocale());
-            if (file_exists($fullpath)) {
-                if ($this->backup) {
-                    copy($fullpath, $fullpath.'~');
-                }
-            } else {
-                $directory = dirname($fullpath);
-                if (!file_exists($directory) && !@mkdir($directory, 0777, true)) {
-                    throw new \RuntimeException(sprintf('Unable to create directory "%s".', $directory));
-                }
-            }
-            // save file
-            file_put_contents($fullpath, $this->format($messages, $domain));
-        }
-    }
-
-    /**
-     * Transforms a domain of a message catalogue to its string representation.
-     *
-     * @param MessageCatalogue $messages
-     * @param string           $domain
-     *
-     * @return string representation
-     */
-    abstract protected function format(MessageCatalogue $messages, $domain);
-
-    /**
-     * Gets the file extension of the dumper.
-     *
-     * @return string file extension
-     */
-    abstract protected function getExtension();
-
-    /**
-     * Gets the relative file path using the template.
-     *
-     * @param string $domain The domain
-     * @param string $locale The locale
-     *
-     * @return string The relative file path
-     */
-    private function getRelativePath($domain, $locale)
-    {
-        return strtr($this->relativePathTemplate, array(
-            '%domain%' => $domain,
-            '%locale%' => $locale,
-            '%extension%' => $this->getExtension(),
-        ));
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/IcuResFileDumper.php b/core/vendor/symfony/translation/Dumper/IcuResFileDumper.php
deleted file mode 100644
index 0a2ed9f..0000000
--- a/core/vendor/symfony/translation/Dumper/IcuResFileDumper.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * IcuResDumper generates an ICU ResourceBundle formatted string representation of a message catalogue.
- *
- * @author Stealth35
- */
-class IcuResFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected $relativePathTemplate = '%domain%/%locale%.%extension%';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain = 'messages')
-    {
-        $data = $indexes = $resources = '';
-
-        foreach ($messages->all($domain) as $source => $target) {
-            $indexes .= pack('v', strlen($data) + 28);
-            $data    .= $source."\0";
-        }
-
-        $data .= $this->writePadding($data);
-
-        $keyTop = $this->getPosition($data);
-
-        foreach ($messages->all($domain) as $source => $target) {
-            $resources .= pack('V', $this->getPosition($data));
-
-            $data .= pack('V', strlen($target))
-                .mb_convert_encoding($target."\0", 'UTF-16LE', 'UTF-8')
-                .$this->writePadding($data)
-                  ;
-        }
-
-        $resOffset = $this->getPosition($data);
-
-        $data .= pack('v', count($messages))
-            .$indexes
-            .$this->writePadding($data)
-            .$resources
-              ;
-
-        $bundleTop = $this->getPosition($data);
-
-        $root = pack('V7',
-            $resOffset + (2 << 28), // Resource Offset + Resource Type
-            6,                      // Index length
-            $keyTop,                // Index keys top
-            $bundleTop,             // Index resources top
-            $bundleTop,             // Index bundle top
-            count($messages),       // Index max table length
-            0                       // Index attributes
-        );
-
-        $header = pack('vC2v4C12@32',
-            32,                     // Header size
-            0xDA, 0x27,             // Magic number 1 and 2
-            20, 0, 0, 2,            // Rest of the header, ..., Size of a char
-            0x52, 0x65, 0x73, 0x42, // Data format identifier
-            1, 2, 0, 0,             // Data version
-            1, 4, 0, 0              // Unicode version
-        );
-
-        $output = $header
-               .$root
-               .$data;
-
-        return $output;
-    }
-
-    private function writePadding($data)
-    {
-        $padding = strlen($data) % 4;
-
-        if ($padding) {
-            return str_repeat("\xAA", 4 - $padding);
-        }
-    }
-
-    private function getPosition($data)
-    {
-        $position = (strlen($data) + 28) / 4;
-
-        return $position;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'res';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/IniFileDumper.php b/core/vendor/symfony/translation/Dumper/IniFileDumper.php
deleted file mode 100644
index 45df389..0000000
--- a/core/vendor/symfony/translation/Dumper/IniFileDumper.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * IniFileDumper generates an ini formatted string representation of a message catalogue.
- *
- * @author Stealth35
- */
-class IniFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain = 'messages')
-    {
-        $output = '';
-
-        foreach ($messages->all($domain) as $source => $target) {
-            $escapeTarget = str_replace('"', '\"', $target);
-            $output .= $source.'="'.$escapeTarget."\"\n";
-        }
-
-        return $output;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'ini';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/JsonFileDumper.php b/core/vendor/symfony/translation/Dumper/JsonFileDumper.php
deleted file mode 100644
index 7ad3518..0000000
--- a/core/vendor/symfony/translation/Dumper/JsonFileDumper.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * JsonFileDumper generates an json formatted string representation of a message catalogue.
- *
- * @author singles
- */
-class JsonFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain = 'messages')
-    {
-        return json_encode($messages->all($domain), defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'json';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/MoFileDumper.php b/core/vendor/symfony/translation/Dumper/MoFileDumper.php
deleted file mode 100644
index f8dc6ac..0000000
--- a/core/vendor/symfony/translation/Dumper/MoFileDumper.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Loader\MoFileLoader;
-
-/**
- * MoFileDumper generates a gettext formatted string representation of a message catalogue.
- *
- * @author Stealth35
- */
-class MoFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain = 'messages')
-    {
-        $output = $sources = $targets = $sourceOffsets = $targetOffsets = '';
-        $offsets = array();
-        $size = 0;
-
-        foreach ($messages->all($domain) as $source => $target) {
-            $offsets[] = array_map('strlen', array($sources, $source, $targets, $target));
-            $sources .= "\0".$source;
-            $targets .= "\0".$target;
-            ++$size;
-        }
-
-        $header = array(
-            'magicNumber' => MoFileLoader::MO_LITTLE_ENDIAN_MAGIC,
-            'formatRevision' => 0,
-            'count' => $size,
-            'offsetId' => MoFileLoader::MO_HEADER_SIZE,
-            'offsetTranslated' => MoFileLoader::MO_HEADER_SIZE + (8 * $size),
-            'sizeHashes' => 0,
-            'offsetHashes' => MoFileLoader::MO_HEADER_SIZE + (16 * $size),
-        );
-
-        $sourcesSize = strlen($sources);
-        $sourcesStart = $header['offsetHashes'] + 1;
-
-        foreach ($offsets as $offset) {
-            $sourceOffsets .= $this->writeLong($offset[1])
-                          .$this->writeLong($offset[0] + $sourcesStart);
-            $targetOffsets .= $this->writeLong($offset[3])
-                          .$this->writeLong($offset[2] + $sourcesStart + $sourcesSize);
-        }
-
-        $output = implode(array_map(array($this, 'writeLong'), $header))
-               .$sourceOffsets
-               .$targetOffsets
-               .$sources
-               .$targets
-                ;
-
-        return $output;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'mo';
-    }
-
-    private function writeLong($str)
-    {
-        return pack('V*', $str);
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/PhpFileDumper.php b/core/vendor/symfony/translation/Dumper/PhpFileDumper.php
deleted file mode 100644
index b354c12..0000000
--- a/core/vendor/symfony/translation/Dumper/PhpFileDumper.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * PhpFileDumper generates PHP files from a message catalogue.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-class PhpFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function format(MessageCatalogue $messages, $domain)
-    {
-        $output = "<?php\n\nreturn ".var_export($messages->all($domain), true).";\n";
-
-        return $output;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'php';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/PoFileDumper.php b/core/vendor/symfony/translation/Dumper/PoFileDumper.php
deleted file mode 100644
index 983064b..0000000
--- a/core/vendor/symfony/translation/Dumper/PoFileDumper.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * PoFileDumper generates a gettext formatted string representation of a message catalogue.
- *
- * @author Stealth35
- */
-class PoFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain = 'messages')
-    {
-        $output = 'msgid ""'."\n";
-        $output .= 'msgstr ""'."\n";
-        $output .= '"Content-Type: text/plain; charset=UTF-8\n"'."\n";
-        $output .= '"Content-Transfer-Encoding: 8bit\n"'."\n";
-        $output .= '"Language: '.$messages->getLocale().'\n"'."\n";
-        $output .= "\n";
-
-        $newLine = false;
-        foreach ($messages->all($domain) as $source => $target) {
-            if ($newLine) {
-                $output .= "\n";
-            } else {
-                $newLine = true;
-            }
-            $output .= sprintf('msgid "%s"'."\n", $this->escape($source));
-            $output .= sprintf('msgstr "%s"', $this->escape($target));
-        }
-
-        return $output;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'po';
-    }
-
-    private function escape($str)
-    {
-        return addcslashes($str, "\0..\37\42\134");
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/QtFileDumper.php b/core/vendor/symfony/translation/Dumper/QtFileDumper.php
deleted file mode 100644
index 42aa093..0000000
--- a/core/vendor/symfony/translation/Dumper/QtFileDumper.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * QtFileDumper generates ts files from a message catalogue.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- */
-class QtFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function format(MessageCatalogue $messages, $domain)
-    {
-        $dom = new \DOMDocument('1.0', 'utf-8');
-        $dom->formatOutput = true;
-        $ts = $dom->appendChild($dom->createElement('TS'));
-        $context = $ts->appendChild($dom->createElement('context'));
-        $context->appendChild($dom->createElement('name', $domain));
-
-        foreach ($messages->all($domain) as $source => $target) {
-            $message = $context->appendChild($dom->createElement('message'));
-            $message->appendChild($dom->createElement('source', $source));
-            $message->appendChild($dom->createElement('translation', $target));
-        }
-
-        return $dom->saveXML();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'ts';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/XliffFileDumper.php b/core/vendor/symfony/translation/Dumper/XliffFileDumper.php
deleted file mode 100644
index 58d1973..0000000
--- a/core/vendor/symfony/translation/Dumper/XliffFileDumper.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * XliffFileDumper generates xliff files from a message catalogue.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-class XliffFileDumper extends FileDumper
-{
-    /**
-     * @var string
-     */
-    private $defaultLocale;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function dump(MessageCatalogue $messages, $options = array())
-    {
-        if (array_key_exists('default_locale', $options)) {
-            $this->defaultLocale = $options['default_locale'];
-        } else {
-            $this->defaultLocale = \Locale::getDefault();
-        }
-
-        parent::dump($messages, $options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function format(MessageCatalogue $messages, $domain)
-    {
-        $dom = new \DOMDocument('1.0', 'utf-8');
-        $dom->formatOutput = true;
-
-        $xliff = $dom->appendChild($dom->createElement('xliff'));
-        $xliff->setAttribute('version', '1.2');
-        $xliff->setAttribute('xmlns', 'urn:oasis:names:tc:xliff:document:1.2');
-
-        $xliffFile = $xliff->appendChild($dom->createElement('file'));
-        $xliffFile->setAttribute('source-language', str_replace('_', '-', $this->defaultLocale));
-        $xliffFile->setAttribute('target-language', str_replace('_', '-', $messages->getLocale()));
-        $xliffFile->setAttribute('datatype', 'plaintext');
-        $xliffFile->setAttribute('original', 'file.ext');
-
-        $xliffBody = $xliffFile->appendChild($dom->createElement('body'));
-        foreach ($messages->all($domain) as $source => $target) {
-            $translation = $dom->createElement('trans-unit');
-
-            $translation->setAttribute('id', md5($source));
-            $translation->setAttribute('resname', $source);
-
-            $s = $translation->appendChild($dom->createElement('source'));
-            $s->appendChild($dom->createTextNode($source));
-
-            // Does the target contain characters requiring a CDATA section?
-            $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target);
-
-            $t = $translation->appendChild($dom->createElement('target'));
-            $t->appendChild($text);
-
-            $metadata = $messages->getMetadata($source, $domain);
-            if (null !== $metadata && array_key_exists('notes', $metadata) && is_array($metadata['notes'])) {
-                foreach ($metadata['notes'] as $note) {
-                    if (!isset($note['content'])) {
-                        continue;
-                    }
-
-                    $n = $translation->appendChild($dom->createElement('note'));
-                    $n->appendChild($dom->createTextNode($note['content']));
-
-                    if (isset($note['priority'])) {
-                        $n->setAttribute('priority', $note['priority']);
-                    }
-
-                    if (isset($note['from'])) {
-                        $n->setAttribute('from', $note['from']);
-                    }
-                }
-            }
-
-            $xliffBody->appendChild($translation);
-        }
-
-        return $dom->saveXML();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'xlf';
-    }
-}
diff --git a/core/vendor/symfony/translation/Dumper/YamlFileDumper.php b/core/vendor/symfony/translation/Dumper/YamlFileDumper.php
deleted file mode 100644
index 870fb98..0000000
--- a/core/vendor/symfony/translation/Dumper/YamlFileDumper.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Yaml\Yaml;
-
-/**
- * YamlFileDumper generates yaml files from a message catalogue.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-class YamlFileDumper extends FileDumper
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function format(MessageCatalogue $messages, $domain)
-    {
-        if (!class_exists('Symfony\Component\Yaml\Yaml')) {
-            throw new \LogicException('Dumping translations in the YAML format requires the Symfony Yaml component.');
-        }
-
-        return Yaml::dump($messages->all($domain));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function getExtension()
-    {
-        return 'yml';
-    }
-}
diff --git a/core/vendor/symfony/translation/Exception/ExceptionInterface.php b/core/vendor/symfony/translation/Exception/ExceptionInterface.php
deleted file mode 100644
index 7757e66..0000000
--- a/core/vendor/symfony/translation/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Exception;
-
-/**
- * Exception interface for all exceptions thrown by the component.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/translation/Exception/InvalidResourceException.php b/core/vendor/symfony/translation/Exception/InvalidResourceException.php
deleted file mode 100644
index 6413f1a..0000000
--- a/core/vendor/symfony/translation/Exception/InvalidResourceException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Exception;
-
-/**
- * Thrown when a resource cannot be loaded.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class InvalidResourceException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/translation/Exception/NotFoundResourceException.php b/core/vendor/symfony/translation/Exception/NotFoundResourceException.php
deleted file mode 100644
index 7826e5c..0000000
--- a/core/vendor/symfony/translation/Exception/NotFoundResourceException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Exception;
-
-/**
- * Thrown when a resource does not exist.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class NotFoundResourceException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/translation/Extractor/AbstractFileExtractor.php b/core/vendor/symfony/translation/Extractor/AbstractFileExtractor.php
deleted file mode 100644
index 196bc33..0000000
--- a/core/vendor/symfony/translation/Extractor/AbstractFileExtractor.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Extractor;
-
-/**
- * Base class used by classes that extract translation messages from files.
- *
- * @author Marcos D. Sánchez <marcosdsanchez@gmail.com>
- */
-abstract class AbstractFileExtractor
-{
-    /**
-     * @param string|array $resource files, a file or a directory
-     *
-     * @return array
-     */
-    protected function extractFiles($resource)
-    {
-        if (is_array($resource) || $resource instanceof \Traversable) {
-            $files = array();
-            foreach ($resource as $file) {
-                if ($this->canBeExtracted($file)) {
-                    $files[] = $this->toSplFileInfo($file);
-                }
-            }
-        } elseif (is_file($resource)) {
-            $files = $this->canBeExtracted($resource) ? array($this->toSplFileInfo($resource)) : array();
-        } else {
-            $files = $this->extractFromDirectory($resource);
-        }
-
-        return $files;
-    }
-
-    /**
-     * @param string $file
-     *
-     * @return \SplFileInfo
-     */
-    private function toSplFileInfo($file)
-    {
-        return ($file instanceof \SplFileInfo) ? $file : new \SplFileInfo($file);
-    }
-
-    /**
-     * @param string $file
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @return bool
-     */
-    protected function isFile($file)
-    {
-        if (!is_file($file)) {
-            throw new \InvalidArgumentException(sprintf('The "%s" file does not exist.', $file));
-        }
-
-        return true;
-    }
-
-    /**
-     * @param string $file
-     *
-     * @return bool
-     */
-    abstract protected function canBeExtracted($file);
-
-    /**
-     * @param string|array $resource files, a file or a directory
-     *
-     * @return array files to be extracted
-     */
-    abstract protected function extractFromDirectory($resource);
-}
diff --git a/core/vendor/symfony/translation/Extractor/ChainExtractor.php b/core/vendor/symfony/translation/Extractor/ChainExtractor.php
deleted file mode 100644
index 50e3c84..0000000
--- a/core/vendor/symfony/translation/Extractor/ChainExtractor.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Extractor;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * ChainExtractor extracts translation messages from template files.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-class ChainExtractor implements ExtractorInterface
-{
-    /**
-     * The extractors.
-     *
-     * @var ExtractorInterface[]
-     */
-    private $extractors = array();
-
-    /**
-     * Adds a loader to the translation extractor.
-     *
-     * @param string             $format    The format of the loader
-     * @param ExtractorInterface $extractor The loader
-     */
-    public function addExtractor($format, ExtractorInterface $extractor)
-    {
-        $this->extractors[$format] = $extractor;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setPrefix($prefix)
-    {
-        foreach ($this->extractors as $extractor) {
-            $extractor->setPrefix($prefix);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function extract($directory, MessageCatalogue $catalogue)
-    {
-        foreach ($this->extractors as $extractor) {
-            $extractor->extract($directory, $catalogue);
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Extractor/ExtractorInterface.php b/core/vendor/symfony/translation/Extractor/ExtractorInterface.php
deleted file mode 100644
index 438f80b..0000000
--- a/core/vendor/symfony/translation/Extractor/ExtractorInterface.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Extractor;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * Extracts translation messages from a directory or files to the catalogue.
- * New found messages are injected to the catalogue using the prefix.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-interface ExtractorInterface
-{
-    /**
-     * Extracts translation messages from files, a file or a directory to the catalogue.
-     *
-     * @param string|array     $resource  files, a file or a directory
-     * @param MessageCatalogue $catalogue The catalogue
-     */
-    public function extract($resource, MessageCatalogue $catalogue);
-
-    /**
-     * Sets the prefix that should be used for new found messages.
-     *
-     * @param string $prefix The prefix
-     */
-    public function setPrefix($prefix);
-}
diff --git a/core/vendor/symfony/translation/IdentityTranslator.php b/core/vendor/symfony/translation/IdentityTranslator.php
deleted file mode 100644
index 9c9212e..0000000
--- a/core/vendor/symfony/translation/IdentityTranslator.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * IdentityTranslator does not translate anything.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class IdentityTranslator implements TranslatorInterface
-{
-    private $selector;
-    private $locale;
-
-    /**
-     * Constructor.
-     *
-     * @param MessageSelector|null $selector The message selector for pluralization
-     *
-     * @api
-     */
-    public function __construct(MessageSelector $selector = null)
-    {
-        $this->selector = $selector ?: new MessageSelector();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setLocale($locale)
-    {
-        $this->locale = $locale;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getLocale()
-    {
-        return $this->locale ?: \Locale::getDefault();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function trans($id, array $parameters = array(), $domain = null, $locale = null)
-    {
-        return strtr((string) $id, $parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
-    {
-        return strtr($this->selector->choose((string) $id, (int) $number, $locale ?: $this->getLocale()), $parameters);
-    }
-}
diff --git a/core/vendor/symfony/translation/Interval.php b/core/vendor/symfony/translation/Interval.php
deleted file mode 100644
index 2a51156..0000000
--- a/core/vendor/symfony/translation/Interval.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * Tests if a given number belongs to a given math interval.
- *
- * An interval can represent a finite set of numbers:
- *
- *  {1,2,3,4}
- *
- * An interval can represent numbers between two numbers:
- *
- *  [1, +Inf]
- *  ]-1,2[
- *
- * The left delimiter can be [ (inclusive) or ] (exclusive).
- * The right delimiter can be [ (exclusive) or ] (inclusive).
- * Beside numbers, you can use -Inf and +Inf for the infinite.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @see    http://en.wikipedia.org/wiki/Interval_%28mathematics%29#The_ISO_notation
- */
-class Interval
-{
-    /**
-     * Tests if the given number is in the math interval.
-     *
-     * @param int    $number   A number
-     * @param string $interval An interval
-     *
-     * @return bool
-     *
-     * @throws \InvalidArgumentException
-     */
-    public static function test($number, $interval)
-    {
-        $interval = trim($interval);
-
-        if (!preg_match('/^'.self::getIntervalRegexp().'$/x', $interval, $matches)) {
-            throw new \InvalidArgumentException(sprintf('"%s" is not a valid interval.', $interval));
-        }
-
-        if ($matches[1]) {
-            foreach (explode(',', $matches[2]) as $n) {
-                if ($number == $n) {
-                    return true;
-                }
-            }
-        } else {
-            $leftNumber = self::convertNumber($matches['left']);
-            $rightNumber = self::convertNumber($matches['right']);
-
-            return
-                ('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber)
-                && (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber)
-            ;
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a Regexp that matches valid intervals.
-     *
-     * @return string A Regexp (without the delimiters)
-     */
-    public static function getIntervalRegexp()
-    {
-        return <<<EOF
-        ({\s*
-            (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
-        \s*})
-
-            |
-
-        (?P<left_delimiter>[\[\]])
-            \s*
-            (?P<left>-Inf|\-?\d+(\.\d+)?)
-            \s*,\s*
-            (?P<right>\+?Inf|\-?\d+(\.\d+)?)
-            \s*
-        (?P<right_delimiter>[\[\]])
-EOF;
-    }
-
-    private static function convertNumber($number)
-    {
-        if ('-Inf' === $number) {
-            return log(0);
-        } elseif ('+Inf' === $number || 'Inf' === $number) {
-            return -log(0);
-        }
-
-        return (float) $number;
-    }
-}
diff --git a/core/vendor/symfony/translation/LICENSE b/core/vendor/symfony/translation/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/translation/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/translation/Loader/ArrayLoader.php b/core/vendor/symfony/translation/Loader/ArrayLoader.php
deleted file mode 100644
index 68ba81d..0000000
--- a/core/vendor/symfony/translation/Loader/ArrayLoader.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-/**
- * ArrayLoader loads translations from a PHP array.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ArrayLoader implements LoaderInterface
-{
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        $this->flatten($resource);
-        $catalogue = new MessageCatalogue($locale);
-        $catalogue->add($resource, $domain);
-
-        return $catalogue;
-    }
-
-    /**
-     * Flattens an nested array of translations.
-     *
-     * The scheme used is:
-     *   'key' => array('key2' => array('key3' => 'value'))
-     * Becomes:
-     *   'key.key2.key3' => 'value'
-     *
-     * This function takes an array by reference and will modify it
-     *
-     * @param array  &$messages The array that will be flattened
-     * @param array  $subnode   Current subnode being parsed, used internally for recursive calls
-     * @param string $path      Current path being parsed, used internally for recursive calls
-     */
-    private function flatten(array &$messages, array $subnode = null, $path = null)
-    {
-        if (null === $subnode) {
-            $subnode = &$messages;
-        }
-        foreach ($subnode as $key => $value) {
-            if (is_array($value)) {
-                $nodePath = $path ? $path.'.'.$key : $key;
-                $this->flatten($messages, $value, $nodePath);
-                if (null === $path) {
-                    unset($messages[$key]);
-                }
-            } elseif (null !== $path) {
-                $messages[$path.'.'.$key] = $value;
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/CsvFileLoader.php b/core/vendor/symfony/translation/Loader/CsvFileLoader.php
deleted file mode 100644
index fc92760..0000000
--- a/core/vendor/symfony/translation/Loader/CsvFileLoader.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * CsvFileLoader loads translations from CSV files.
- *
- * @author Saša Stamenković <umpirsky@gmail.com>
- *
- * @api
- */
-class CsvFileLoader extends ArrayLoader
-{
-    private $delimiter = ';';
-    private $enclosure = '"';
-    private $escape = '\\';
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        $messages = array();
-
-        try {
-            $file = new \SplFileObject($resource, 'rb');
-        } catch (\RuntimeException $e) {
-            throw new NotFoundResourceException(sprintf('Error opening file "%s".', $resource), 0, $e);
-        }
-
-        $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY);
-        $file->setCsvControl($this->delimiter, $this->enclosure, $this->escape);
-
-        foreach ($file as $data) {
-            if (substr($data[0], 0, 1) === '#') {
-                continue;
-            }
-
-            if (!isset($data[1])) {
-                continue;
-            }
-
-            if (count($data) == 2) {
-                $messages[$data[0]] = $data[1];
-            } else {
-                continue;
-            }
-        }
-
-        $catalogue = parent::load($messages, $locale, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-
-    /**
-     * Sets the delimiter, enclosure, and escape character for CSV.
-     *
-     * @param string $delimiter delimiter character
-     * @param string $enclosure enclosure character
-     * @param string $escape    escape character
-     */
-    public function setCsvControl($delimiter = ';', $enclosure = '"', $escape = '\\')
-    {
-        $this->delimiter = $delimiter;
-        $this->enclosure = $enclosure;
-        $this->escape = $escape;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/IcuDatFileLoader.php b/core/vendor/symfony/translation/Loader/IcuDatFileLoader.php
deleted file mode 100644
index 71ba90a..0000000
--- a/core/vendor/symfony/translation/Loader/IcuDatFileLoader.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * IcuResFileLoader loads translations from a resource bundle.
- *
- * @author stealth35
- */
-class IcuDatFileLoader extends IcuResFileLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource.'.dat')) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource.'.dat')) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        try {
-            $rb = new \ResourceBundle($locale, $resource);
-        } catch (\Exception $e) {
-            // HHVM compatibility: constructor throws on invalid resource
-            $rb = null;
-        }
-
-        if (!$rb) {
-            throw new InvalidResourceException(sprintf('Cannot load resource "%s"', $resource));
-        } elseif (intl_is_failure($rb->getErrorCode())) {
-            throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
-        }
-
-        $messages = $this->flatten($rb);
-        $catalogue = new MessageCatalogue($locale);
-        $catalogue->add($messages, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource.'.dat'));
-        }
-
-        return $catalogue;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/IcuResFileLoader.php b/core/vendor/symfony/translation/Loader/IcuResFileLoader.php
deleted file mode 100644
index 2f8037f..0000000
--- a/core/vendor/symfony/translation/Loader/IcuResFileLoader.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\DirectoryResource;
-
-/**
- * IcuResFileLoader loads translations from a resource bundle.
- *
- * @author stealth35
- */
-class IcuResFileLoader implements LoaderInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!is_dir($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        try {
-            $rb = new \ResourceBundle($locale, $resource);
-        } catch (\Exception $e) {
-            // HHVM compatibility: constructor throws on invalid resource
-            $rb = null;
-        }
-
-        if (!$rb) {
-            throw new InvalidResourceException(sprintf('Cannot load resource "%s"', $resource));
-        } elseif (intl_is_failure($rb->getErrorCode())) {
-            throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
-        }
-
-        $messages = $this->flatten($rb);
-        $catalogue = new MessageCatalogue($locale);
-        $catalogue->add($messages, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\DirectoryResource')) {
-            $catalogue->addResource(new DirectoryResource($resource));
-        }
-
-        return $catalogue;
-    }
-
-    /**
-     * Flattens an ResourceBundle.
-     *
-     * The scheme used is:
-     *   key { key2 { key3 { "value" } } }
-     * Becomes:
-     *   'key.key2.key3' => 'value'
-     *
-     * This function takes an array by reference and will modify it
-     *
-     * @param \ResourceBundle $rb       the ResourceBundle that will be flattened
-     * @param array           $messages used internally for recursive calls
-     * @param string          $path     current path being parsed, used internally for recursive calls
-     *
-     * @return array the flattened ResourceBundle
-     */
-    protected function flatten(\ResourceBundle $rb, array &$messages = array(), $path = null)
-    {
-        foreach ($rb as $key => $value) {
-            $nodePath = $path ? $path.'.'.$key : $key;
-            if ($value instanceof \ResourceBundle) {
-                $this->flatten($value, $messages, $nodePath);
-            } else {
-                $messages[$nodePath] = $value;
-            }
-        }
-
-        return $messages;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/IniFileLoader.php b/core/vendor/symfony/translation/Loader/IniFileLoader.php
deleted file mode 100644
index 1b3a7b1..0000000
--- a/core/vendor/symfony/translation/Loader/IniFileLoader.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * IniFileLoader loads translations from an ini file.
- *
- * @author stealth35
- */
-class IniFileLoader extends ArrayLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        $messages = parse_ini_file($resource, true);
-
-        $catalogue = parent::load($messages, $locale, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/JsonFileLoader.php b/core/vendor/symfony/translation/Loader/JsonFileLoader.php
deleted file mode 100644
index 81717f3..0000000
--- a/core/vendor/symfony/translation/Loader/JsonFileLoader.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * JsonFileLoader loads translations from an json file.
- *
- * @author singles
- */
-class JsonFileLoader extends ArrayLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        $messages = array();
-        if ($data = file_get_contents($resource)) {
-            $messages = json_decode($data, true);
-
-            if (0 < $errorCode = json_last_error()) {
-                throw new InvalidResourceException(sprintf('Error parsing JSON - %s', $this->getJSONErrorMessage($errorCode)));
-            }
-        }
-
-        if (null === $messages) {
-            $messages = array();
-        }
-
-        $catalogue = parent::load($messages, $locale, $domain);
-        $catalogue->addResource(new FileResource($resource));
-
-        return $catalogue;
-    }
-
-    /**
-     * Translates JSON_ERROR_* constant into meaningful message.
-     *
-     * @param int $errorCode Error code returned by json_last_error() call
-     *
-     * @return string Message string
-     */
-    private function getJSONErrorMessage($errorCode)
-    {
-        switch ($errorCode) {
-            case JSON_ERROR_DEPTH:
-                return 'Maximum stack depth exceeded';
-            case JSON_ERROR_STATE_MISMATCH:
-                return 'Underflow or the modes mismatch';
-            case JSON_ERROR_CTRL_CHAR:
-                return 'Unexpected control character found';
-            case JSON_ERROR_SYNTAX:
-                return 'Syntax error, malformed JSON';
-            case JSON_ERROR_UTF8:
-                return 'Malformed UTF-8 characters, possibly incorrectly encoded';
-            default:
-                return 'Unknown error';
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/LoaderInterface.php b/core/vendor/symfony/translation/Loader/LoaderInterface.php
deleted file mode 100644
index 0b28e14..0000000
--- a/core/vendor/symfony/translation/Loader/LoaderInterface.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-
-/**
- * LoaderInterface is the interface implemented by all translation loaders.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface LoaderInterface
-{
-    /**
-     * Loads a locale.
-     *
-     * @param mixed  $resource A resource
-     * @param string $locale   A locale
-     * @param string $domain   The domain
-     *
-     * @return MessageCatalogue A MessageCatalogue instance
-     *
-     * @api
-     *
-     * @throws NotFoundResourceException when the resource cannot be found
-     * @throws InvalidResourceException  when the resource cannot be loaded
-     */
-    public function load($resource, $locale, $domain = 'messages');
-}
diff --git a/core/vendor/symfony/translation/Loader/MoFileLoader.php b/core/vendor/symfony/translation/Loader/MoFileLoader.php
deleted file mode 100644
index 746fd52..0000000
--- a/core/vendor/symfony/translation/Loader/MoFileLoader.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * @copyright Copyright (c) 2010, Union of RAD http://union-of-rad.org (http://lithify.me/)
- */
-class MoFileLoader extends ArrayLoader
-{
-    /**
-     * Magic used for validating the format of a MO file as well as
-     * detecting if the machine used to create that file was little endian.
-     *
-     * @var float
-     */
-    const MO_LITTLE_ENDIAN_MAGIC = 0x950412de;
-
-    /**
-     * Magic used for validating the format of a MO file as well as
-     * detecting if the machine used to create that file was big endian.
-     *
-     * @var float
-     */
-    const MO_BIG_ENDIAN_MAGIC = 0xde120495;
-
-    /**
-     * The size of the header of a MO file in bytes.
-     *
-     * @var int Number of bytes.
-     */
-    const MO_HEADER_SIZE = 28;
-
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        $messages = $this->parse($resource);
-
-        // empty file
-        if (null === $messages) {
-            $messages = array();
-        }
-
-        // not an array
-        if (!is_array($messages)) {
-            throw new InvalidResourceException(sprintf('The file "%s" must contain a valid mo file.', $resource));
-        }
-
-        $catalogue = parent::load($messages, $locale, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-
-    /**
-     * Parses machine object (MO) format, independent of the machine's endian it
-     * was created on. Both 32bit and 64bit systems are supported.
-     *
-     * @param resource $resource
-     *
-     * @return array
-     *
-     * @throws InvalidResourceException If stream content has an invalid format.
-     */
-    private function parse($resource)
-    {
-        $stream = fopen($resource, 'r');
-
-        $stat = fstat($stream);
-
-        if ($stat['size'] < self::MO_HEADER_SIZE) {
-            throw new InvalidResourceException('MO stream content has an invalid format.');
-        }
-        $magic = unpack('V1', fread($stream, 4));
-        $magic = hexdec(substr(dechex(current($magic)), -8));
-
-        if ($magic == self::MO_LITTLE_ENDIAN_MAGIC) {
-            $isBigEndian = false;
-        } elseif ($magic == self::MO_BIG_ENDIAN_MAGIC) {
-            $isBigEndian = true;
-        } else {
-            throw new InvalidResourceException('MO stream content has an invalid format.');
-        }
-
-        // formatRevision
-        $this->readLong($stream, $isBigEndian);
-        $count = $this->readLong($stream, $isBigEndian);
-        $offsetId = $this->readLong($stream, $isBigEndian);
-        $offsetTranslated = $this->readLong($stream, $isBigEndian);
-        // sizeHashes
-        $this->readLong($stream, $isBigEndian);
-        // offsetHashes
-        $this->readLong($stream, $isBigEndian);
-
-        $messages = array();
-
-        for ($i = 0; $i < $count; ++$i) {
-            $singularId = $pluralId = null;
-            $translated = null;
-
-            fseek($stream, $offsetId + $i * 8);
-
-            $length = $this->readLong($stream, $isBigEndian);
-            $offset = $this->readLong($stream, $isBigEndian);
-
-            if ($length < 1) {
-                continue;
-            }
-
-            fseek($stream, $offset);
-            $singularId = fread($stream, $length);
-
-            if (strpos($singularId, "\000") !== false) {
-                list($singularId, $pluralId) = explode("\000", $singularId);
-            }
-
-            fseek($stream, $offsetTranslated + $i * 8);
-            $length = $this->readLong($stream, $isBigEndian);
-            $offset = $this->readLong($stream, $isBigEndian);
-
-            if ($length < 1) {
-                continue;
-            }
-
-            fseek($stream, $offset);
-            $translated = fread($stream, $length);
-
-            if (strpos($translated, "\000") !== false) {
-                $translated = explode("\000", $translated);
-            }
-
-            $ids = array('singular' => $singularId, 'plural' => $pluralId);
-            $item = compact('ids', 'translated');
-
-            if (is_array($item['translated'])) {
-                $messages[$item['ids']['singular']] = stripcslashes($item['translated'][0]);
-                if (isset($item['ids']['plural'])) {
-                    $plurals = array();
-                    foreach ($item['translated'] as $plural => $translated) {
-                        $plurals[] = sprintf('{%d} %s', $plural, $translated);
-                    }
-                    $messages[$item['ids']['plural']] = stripcslashes(implode('|', $plurals));
-                }
-            } elseif (!empty($item['ids']['singular'])) {
-                $messages[$item['ids']['singular']] = stripcslashes($item['translated']);
-            }
-        }
-
-        fclose($stream);
-
-        return array_filter($messages);
-    }
-
-    /**
-     * Reads an unsigned long from stream respecting endianess.
-     *
-     * @param resource $stream
-     * @param bool     $isBigEndian
-     *
-     * @return int
-     */
-    private function readLong($stream, $isBigEndian)
-    {
-        $result = unpack($isBigEndian ? 'N1' : 'V1', fread($stream, 4));
-        $result = current($result);
-
-        return (int) substr($result, -8);
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/PhpFileLoader.php b/core/vendor/symfony/translation/Loader/PhpFileLoader.php
deleted file mode 100644
index 9ce2e7d..0000000
--- a/core/vendor/symfony/translation/Loader/PhpFileLoader.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * PhpFileLoader loads translations from PHP files returning an array of translations.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class PhpFileLoader extends ArrayLoader
-{
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        $messages = require $resource;
-
-        $catalogue = parent::load($messages, $locale, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/PoFileLoader.php b/core/vendor/symfony/translation/Loader/PoFileLoader.php
deleted file mode 100644
index b5d12e9..0000000
--- a/core/vendor/symfony/translation/Loader/PoFileLoader.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * @copyright Copyright (c) 2010, Union of RAD http://union-of-rad.org (http://lithify.me/)
- * @copyright Copyright (c) 2012, Clemens Tolboom
- */
-class PoFileLoader extends ArrayLoader
-{
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        $messages = $this->parse($resource);
-
-        // empty file
-        if (null === $messages) {
-            $messages = array();
-        }
-
-        // not an array
-        if (!is_array($messages)) {
-            throw new InvalidResourceException(sprintf('The file "%s" must contain a valid po file.', $resource));
-        }
-
-        $catalogue = parent::load($messages, $locale, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-
-    /**
-     * Parses portable object (PO) format.
-     *
-     * From http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files
-     * we should be able to parse files having:
-     *
-     * white-space
-     * #  translator-comments
-     * #. extracted-comments
-     * #: reference...
-     * #, flag...
-     * #| msgid previous-untranslated-string
-     * msgid untranslated-string
-     * msgstr translated-string
-     *
-     * extra or different lines are:
-     *
-     * #| msgctxt previous-context
-     * #| msgid previous-untranslated-string
-     * msgctxt context
-     *
-     * #| msgid previous-untranslated-string-singular
-     * #| msgid_plural previous-untranslated-string-plural
-     * msgid untranslated-string-singular
-     * msgid_plural untranslated-string-plural
-     * msgstr[0] translated-string-case-0
-     * ...
-     * msgstr[N] translated-string-case-n
-     *
-     * The definition states:
-     * - white-space and comments are optional.
-     * - msgid "" that an empty singleline defines a header.
-     *
-     * This parser sacrifices some features of the reference implementation the
-     * differences to that implementation are as follows.
-     * - No support for comments spanning multiple lines.
-     * - Translator and extracted comments are treated as being the same type.
-     * - Message IDs are allowed to have other encodings as just US-ASCII.
-     *
-     * Items with an empty id are ignored.
-     *
-     * @param resource $resource
-     *
-     * @return array
-     */
-    private function parse($resource)
-    {
-        $stream = fopen($resource, 'r');
-
-        $defaults = array(
-            'ids' => array(),
-            'translated' => null,
-        );
-
-        $messages = array();
-        $item = $defaults;
-
-        while ($line = fgets($stream)) {
-            $line = trim($line);
-
-            if ($line === '') {
-                // Whitespace indicated current item is done
-                $this->addMessage($messages, $item);
-                $item = $defaults;
-            } elseif (substr($line, 0, 7) === 'msgid "') {
-                // We start a new msg so save previous
-                // TODO: this fails when comments or contexts are added
-                $this->addMessage($messages, $item);
-                $item = $defaults;
-                $item['ids']['singular'] = substr($line, 7, -1);
-            } elseif (substr($line, 0, 8) === 'msgstr "') {
-                $item['translated'] = substr($line, 8, -1);
-            } elseif ($line[0] === '"') {
-                $continues = isset($item['translated']) ? 'translated' : 'ids';
-
-                if (is_array($item[$continues])) {
-                    end($item[$continues]);
-                    $item[$continues][key($item[$continues])] .= substr($line, 1, -1);
-                } else {
-                    $item[$continues] .= substr($line, 1, -1);
-                }
-            } elseif (substr($line, 0, 14) === 'msgid_plural "') {
-                $item['ids']['plural'] = substr($line, 14, -1);
-            } elseif (substr($line, 0, 7) === 'msgstr[') {
-                $size = strpos($line, ']');
-                $item['translated'][(int) substr($line, 7, 1)] = substr($line, $size + 3, -1);
-            }
-        }
-        // save last item
-        $this->addMessage($messages, $item);
-        fclose($stream);
-
-        return $messages;
-    }
-
-    /**
-     * Save a translation item to the messages.
-     *
-     * A .po file could contain by error missing plural indexes. We need to
-     * fix these before saving them.
-     *
-     * @param array $messages
-     * @param array $item
-     */
-    private function addMessage(array &$messages, array $item)
-    {
-        if (is_array($item['translated'])) {
-            $messages[stripcslashes($item['ids']['singular'])] = stripcslashes($item['translated'][0]);
-            if (isset($item['ids']['plural'])) {
-                $plurals = $item['translated'];
-                // PO are by definition indexed so sort by index.
-                ksort($plurals);
-                // Make sure every index is filled.
-                end($plurals);
-                $count = key($plurals);
-                // Fill missing spots with '-'.
-                $empties = array_fill(0, $count + 1, '-');
-                $plurals += $empties;
-                ksort($plurals);
-                $messages[stripcslashes($item['ids']['plural'])] = stripcslashes(implode('|', $plurals));
-            }
-        } elseif (!empty($item['ids']['singular'])) {
-            $messages[stripcslashes($item['ids']['singular'])] = stripcslashes($item['translated']);
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/QtFileLoader.php b/core/vendor/symfony/translation/Loader/QtFileLoader.php
deleted file mode 100644
index 6dd0696..0000000
--- a/core/vendor/symfony/translation/Loader/QtFileLoader.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * QtFileLoader loads translations from QT Translations XML files.
- *
- * @author Benjamin Eberlei <kontakt@beberlei.de>
- *
- * @api
- */
-class QtFileLoader implements LoaderInterface
-{
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        try {
-            $dom = XmlUtils::loadFile($resource);
-        } catch (\InvalidArgumentException $e) {
-            throw new InvalidResourceException(sprintf('Unable to load "%s".', $resource), $e->getCode(), $e);
-        }
-
-        $internalErrors = libxml_use_internal_errors(true);
-        libxml_clear_errors();
-
-        $xpath = new \DOMXPath($dom);
-        $nodes = $xpath->evaluate('//TS/context/name[text()="'.$domain.'"]');
-
-        $catalogue = new MessageCatalogue($locale);
-        if ($nodes->length == 1) {
-            $translations = $nodes->item(0)->nextSibling->parentNode->parentNode->getElementsByTagName('message');
-            foreach ($translations as $translation) {
-                $translationValue = (string) $translation->getElementsByTagName('translation')->item(0)->nodeValue;
-
-                if (!empty($translationValue)) {
-                    $catalogue->set(
-                        (string) $translation->getElementsByTagName('source')->item(0)->nodeValue,
-                        $translationValue,
-                        $domain
-                    );
-                }
-                $translation = $translation->nextSibling;
-            }
-
-            if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-                $catalogue->addResource(new FileResource($resource));
-            }
-        }
-
-        libxml_use_internal_errors($internalErrors);
-
-        return $catalogue;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/XliffFileLoader.php b/core/vendor/symfony/translation/Loader/XliffFileLoader.php
deleted file mode 100644
index d2b5407..0000000
--- a/core/vendor/symfony/translation/Loader/XliffFileLoader.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-
-/**
- * XliffFileLoader loads translations from XLIFF files.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class XliffFileLoader implements LoaderInterface
-{
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        list($xml, $encoding) = $this->parseFile($resource);
-        $xml->registerXPathNamespace('xliff', 'urn:oasis:names:tc:xliff:document:1.2');
-
-        $catalogue = new MessageCatalogue($locale);
-        foreach ($xml->xpath('//xliff:trans-unit') as $translation) {
-            $attributes = $translation->attributes();
-
-            if (!(isset($attributes['resname']) || isset($translation->source)) || !isset($translation->target)) {
-                continue;
-            }
-
-            $source = isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source;
-            // If the xlf file has another encoding specified, try to convert it because
-            // simple_xml will always return utf-8 encoded values
-            $target = $this->utf8ToCharset((string) $translation->target, $encoding);
-
-            $catalogue->set((string) $source, $target, $domain);
-
-            if (isset($translation->note)) {
-                $notes = array();
-                foreach ($translation->note as $xmlNote) {
-                    $noteAttributes = $xmlNote->attributes();
-                    $note = array('content' => $this->utf8ToCharset((string) $xmlNote, $encoding));
-                    if (isset($noteAttributes['priority'])) {
-                        $note['priority'] = (int) $noteAttributes['priority'];
-                    }
-
-                    if (isset($noteAttributes['from'])) {
-                        $note['from'] = (string) $noteAttributes['from'];
-                    }
-
-                    $notes[] = $note;
-                }
-
-                $catalogue->setMetadata((string) $source, array('notes' => $notes), $domain);
-            }
-        }
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-
-    /**
-     * Convert a UTF8 string to the specified encoding.
-     *
-     * @param string $content  String to decode
-     * @param string $encoding Target encoding
-     *
-     * @return string
-     */
-    private function utf8ToCharset($content, $encoding = null)
-    {
-        if ('UTF-8' !== $encoding && !empty($encoding)) {
-            if (function_exists('mb_convert_encoding')) {
-                return mb_convert_encoding($content, $encoding, 'UTF-8');
-            }
-
-            if (function_exists('iconv')) {
-                return iconv('UTF-8', $encoding, $content);
-            }
-
-            throw new \RuntimeException('No suitable convert encoding function (use UTF-8 as your encoding or install the iconv or mbstring extension).');
-        }
-
-        return $content;
-    }
-
-    /**
-     * Validates and parses the given file into a SimpleXMLElement.
-     *
-     * @param string $file
-     *
-     * @throws \RuntimeException
-     *
-     * @return \SimpleXMLElement
-     *
-     * @throws InvalidResourceException
-     */
-    private function parseFile($file)
-    {
-        try {
-            $dom = XmlUtils::loadFile($file);
-        } catch (\InvalidArgumentException $e) {
-            throw new InvalidResourceException(sprintf('Unable to load "%s": %s', $file, $e->getMessage()), $e->getCode(), $e);
-        }
-
-        $internalErrors = libxml_use_internal_errors(true);
-
-        $location = str_replace('\\', '/', __DIR__).'/schema/dic/xliff-core/xml.xsd';
-        $parts = explode('/', $location);
-        if (0 === stripos($location, 'phar://')) {
-            $tmpfile = tempnam(sys_get_temp_dir(), 'sf2');
-            if ($tmpfile) {
-                copy($location, $tmpfile);
-                $parts = explode('/', str_replace('\\', '/', $tmpfile));
-            }
-        }
-        $drive = '\\' === DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
-        $location = 'file:///'.$drive.implode('/', array_map('rawurlencode', $parts));
-
-        $source = file_get_contents(__DIR__.'/schema/dic/xliff-core/xliff-core-1.2-strict.xsd');
-        $source = str_replace('http://www.w3.org/2001/xml.xsd', $location, $source);
-
-        if (!@$dom->schemaValidateSource($source)) {
-            throw new InvalidResourceException(sprintf('Invalid resource provided: "%s"; Errors: %s', $file, implode("\n", $this->getXmlErrors($internalErrors))));
-        }
-
-        $dom->normalizeDocument();
-
-        libxml_clear_errors();
-        libxml_use_internal_errors($internalErrors);
-
-        return array(simplexml_import_dom($dom), strtoupper($dom->encoding));
-    }
-
-    /**
-     * Returns the XML errors of the internal XML parser.
-     *
-     * @param bool $internalErrors
-     *
-     * @return array An array of errors
-     */
-    private function getXmlErrors($internalErrors)
-    {
-        $errors = array();
-        foreach (libxml_get_errors() as $error) {
-            $errors[] = sprintf('[%s %s] %s (in %s - line %d, column %d)',
-                LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR',
-                $error->code,
-                trim($error->message),
-                $error->file ?: 'n/a',
-                $error->line,
-                $error->column
-            );
-        }
-
-        libxml_clear_errors();
-        libxml_use_internal_errors($internalErrors);
-
-        return $errors;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/YamlFileLoader.php b/core/vendor/symfony/translation/Loader/YamlFileLoader.php
deleted file mode 100644
index fb0946c..0000000
--- a/core/vendor/symfony/translation/Loader/YamlFileLoader.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Loader;
-
-use Symfony\Component\Translation\Exception\InvalidResourceException;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\Yaml\Parser as YamlParser;
-use Symfony\Component\Yaml\Exception\ParseException;
-
-/**
- * YamlFileLoader loads translations from Yaml files.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class YamlFileLoader extends ArrayLoader
-{
-    private $yamlParser;
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function load($resource, $locale, $domain = 'messages')
-    {
-        if (!stream_is_local($resource)) {
-            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
-        }
-
-        if (!file_exists($resource)) {
-            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
-        }
-
-        if (!class_exists('Symfony\Component\Yaml\Parser')) {
-            throw new \LogicException('Loading translations from the YAML format requires the Symfony Yaml component.');
-        }
-
-        if (null === $this->yamlParser) {
-            $this->yamlParser = new YamlParser();
-        }
-
-        try {
-            $messages = $this->yamlParser->parse(file_get_contents($resource));
-        } catch (ParseException $e) {
-            throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s"', $resource), 0, $e);
-        }
-
-        // empty file
-        if (null === $messages) {
-            $messages = array();
-        }
-
-        // not an array
-        if (!is_array($messages)) {
-            throw new InvalidResourceException(sprintf('The file "%s" must contain a YAML array.', $resource));
-        }
-
-        $catalogue = parent::load($messages, $locale, $domain);
-
-        if (class_exists('Symfony\Component\Config\Resource\FileResource')) {
-            $catalogue->addResource(new FileResource($resource));
-        }
-
-        return $catalogue;
-    }
-}
diff --git a/core/vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-1.2-strict.xsd b/core/vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-1.2-strict.xsd
deleted file mode 100644
index 3ce2a8e..0000000
--- a/core/vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-1.2-strict.xsd
+++ /dev/null
@@ -1,2223 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-
-May-19-2004:
-- Changed the <choice> for ElemType_header, moving minOccurs="0" maxOccurs="unbounded" from its elements 
-to <choice> itself.
-- Added <choice> for ElemType_trans-unit to allow "any order" for <context-group>, <count-group>, <prop-group>, <note>, and
-<alt-trans>.
-
-Oct-2005
-- updated version info to 1.2
-- equiv-trans attribute to <trans-unit> element 
-- merged-trans attribute for <group> element
-- Add the <seg-source> element as optional in the <trans-unit> and <alt-trans> content models, at the same level as <source> 
-- Create a new value "seg" for the mtype attribute of the <mrk> element
-- Add mid as an optional attribute for the <alt-trans> element
-
-Nov-14-2005
-- Changed name attribute for <context-group> from required to optional
-- Added extension point at <xliff>
-
-Jan-9-2006
-- Added alttranstype type attribute to <alt-trans>, and values
-
-Jan-10-2006
-- Corrected error with overwritten purposeValueList
-- Corrected name="AttrType_Version",  attribute should have been "name"
-
--->
-<xsd:schema xmlns:xlf="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:oasis:names:tc:xliff:document:1.2" xml:lang="en">
-  <!-- Import for xml:lang and xml:space -->
-  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-  <!-- Attributes Lists -->
-  <xsd:simpleType name="XTend">
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="x-[^\s]+"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="context-typeValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'context-type'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="database">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a database content.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="element">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the content of an element within an XML document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="elementtitle">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the name of an element within an XML document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="linenumber">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the line number from the sourcefile (see context-type="sourcefile") where the &lt;source&gt; is found.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="numparams">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a the number of parameters contained within the &lt;source&gt;.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="paramnotes">
-        <xsd:annotation>
-          <xsd:documentation>Indicates notes pertaining to the parameters in the &lt;source&gt;.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="record">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the content of a record within a database.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="recordtitle">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the name of a record within a database.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="sourcefile">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the original source file in the case that multiple files are merged to form the original file from which the XLIFF file is created. This differs from the original &lt;file&gt; attribute in that this sourcefile is one of many that make up that file.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="count-typeValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'count-type'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="num-usages">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the count units are items that are used X times in a certain context; example: this is a reusable text unit which is used 42 times in other texts.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="repetition">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the count units are translation units existing already in the same document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="total">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a total count.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="InlineDelimitersValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'ctype' when used other elements than &lt;ph&gt; or &lt;x&gt;.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="bold">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a run of bolded text.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="italic">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a run of text in italics.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="underlined">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a run of underlined text.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="link">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a run of hyper-text.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="InlinePlaceholdersValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'ctype' when used with &lt;ph&gt; or &lt;x&gt;.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="image">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a inline image.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pb">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a page break.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="lb">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a line break.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="mime-typeValueList">
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="(text|multipart|message|application|image|audio|video|model)(/.+)*"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="datatypeValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'datatype'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="asp">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Active Server Page data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="c">
-        <xsd:annotation>
-          <xsd:documentation>Indicates C source file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cdf">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Channel Definition Format (CDF) data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cfm">
-        <xsd:annotation>
-          <xsd:documentation>Indicates ColdFusion data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cpp">
-        <xsd:annotation>
-          <xsd:documentation>Indicates C++ source file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="csharp">
-        <xsd:annotation>
-          <xsd:documentation>Indicates C-Sharp data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cstring">
-        <xsd:annotation>
-          <xsd:documentation>Indicates strings from C, ASM, and driver files data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="csv">
-        <xsd:annotation>
-          <xsd:documentation>Indicates comma-separated values data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="database">
-        <xsd:annotation>
-          <xsd:documentation>Indicates database data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="documentfooter">
-        <xsd:annotation>
-          <xsd:documentation>Indicates portions of document that follows data and contains metadata.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="documentheader">
-        <xsd:annotation>
-          <xsd:documentation>Indicates portions of document that precedes data and contains metadata.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="filedialog">
-        <xsd:annotation>
-          <xsd:documentation>Indicates data from standard UI file operations dialogs (e.g., Open, Save, Save As, Export, Import).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="form">
-        <xsd:annotation>
-          <xsd:documentation>Indicates standard user input screen data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="html">
-        <xsd:annotation>
-          <xsd:documentation>Indicates HyperText Markup Language (HTML) data - document instance.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="htmlbody">
-        <xsd:annotation>
-          <xsd:documentation>Indicates content within an HTML document’s &lt;body&gt; element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="ini">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Windows INI file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="interleaf">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Interleaf data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="javaclass">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Java source file data (extension '.java').</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="javapropertyresourcebundle">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Java property resource bundle data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="javalistresourcebundle">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Java list resource bundle data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="javascript">
-        <xsd:annotation>
-          <xsd:documentation>Indicates JavaScript source file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="jscript">
-        <xsd:annotation>
-          <xsd:documentation>Indicates JScript source file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="layout">
-        <xsd:annotation>
-          <xsd:documentation>Indicates information relating to formatting.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="lisp">
-        <xsd:annotation>
-          <xsd:documentation>Indicates LISP source file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="margin">
-        <xsd:annotation>
-          <xsd:documentation>Indicates information relating to margin formats.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="menufile">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a file containing menu.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="messagefile">
-        <xsd:annotation>
-          <xsd:documentation>Indicates numerically identified string table.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="mif">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Maker Interchange Format (MIF) data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="mimetype">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the datatype attribute value is a MIME Type value and is defined in the mime-type attribute.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="mo">
-        <xsd:annotation>
-          <xsd:documentation>Indicates GNU Machine Object data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="msglib">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Message Librarian strings created by Novell's Message Librarian Tool.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pagefooter">
-        <xsd:annotation>
-          <xsd:documentation>Indicates information to be displayed at the bottom of each page of a document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pageheader">
-        <xsd:annotation>
-          <xsd:documentation>Indicates information to be displayed at the top of each page of a document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="parameters">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a list of property values (e.g., settings within INI files or preferences dialog).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pascal">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Pascal source file data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="php">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Hypertext Preprocessor data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="plaintext">
-        <xsd:annotation>
-          <xsd:documentation>Indicates plain text file (no formatting other than, possibly, wrapping).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="po">
-        <xsd:annotation>
-          <xsd:documentation>Indicates GNU Portable Object file.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="report">
-        <xsd:annotation>
-          <xsd:documentation>Indicates dynamically generated user defined document. e.g. Oracle Report, Crystal Report, etc.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="resources">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Windows .NET binary resources.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="resx">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Windows .NET Resources.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rtf">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Rich Text Format (RTF) data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="sgml">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Standard Generalized Markup Language (SGML) data - document instance.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="sgmldtd">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Standard Generalized Markup Language (SGML) data - Document Type Definition (DTD).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="svg">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Scalable Vector Graphic (SVG) data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="vbscript">
-        <xsd:annotation>
-          <xsd:documentation>Indicates VisualBasic Script source file.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="warning">
-        <xsd:annotation>
-          <xsd:documentation>Indicates warning message.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="winres">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Windows (Win32) resources (i.e. resources extracted from an RC script, a message file, or a compiled file).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="xhtml">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Extensible HyperText Markup Language (XHTML) data - document instance.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="xml">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Extensible Markup Language (XML) data - document instance.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="xmldtd">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Extensible Markup Language (XML) data - Document Type Definition (DTD).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="xsl">
-        <xsd:annotation>
-          <xsd:documentation>Indicates Extensible Stylesheet Language (XSL) data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="xul">
-        <xsd:annotation>
-          <xsd:documentation>Indicates XUL elements.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="mtypeValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'mtype'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="abbrev">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the marked text is an abbreviation.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="abbreviated-form">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.8: A term resulting from the omission of any part of the full term while designating the same concept.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="abbreviation">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.8.1: An abbreviated form of a simple term resulting from the omission of some of its letters (e.g. 'adj.' for 'adjective').</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="acronym">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.8.4: An abbreviated form of a term made up of letters from the full form of a multiword term strung together into a sequence pronounced only syllabically (e.g. 'radar' for 'radio detecting and ranging').</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="appellation">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620: A proper-name term, such as the name of an agency or other proper entity.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="collocation">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.18.1: A recurrent word combination characterized by cohesion in that the components of the collocation must co-occur within an utterance or series of utterances, even though they do not necessarily have to maintain immediate proximity to one another.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="common-name">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.5: A synonym for an international scientific term that is used in general discourse in a given language.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="datetime">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the marked text is a date and/or time.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="equation">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.15: An expression used to represent a concept based on a statement that two mathematical expressions are, for instance, equal as identified by the equal sign (=), or assigned to one another by a similar sign.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="expanded-form">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.7: The complete representation of a term for which there is an abbreviated form.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="formula">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.14: Figures, symbols or the like used to express a concept briefly, such as a mathematical or chemical formula.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="head-term">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.1: The concept designation that has been chosen to head a terminological record.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="initialism">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.8.3: An abbreviated form of a term consisting of some of the initial letters of the words making up a multiword term or the term elements making up a compound term when these letters are pronounced individually (e.g. 'BSE' for 'bovine spongiform encephalopathy').</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="international-scientific-term">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.4: A term that is part of an international scientific nomenclature as adopted by an appropriate scientific body.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="internationalism">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.6: A term that has the same or nearly identical orthographic or phonemic form in many languages.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="logical-expression">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.16: An expression used to represent a concept based on mathematical or logical relations, such as statements of inequality, set relationships, Boolean operations, and the like.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="materials-management-unit">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.17: A unit to track object.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="name">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the marked text is a name.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="near-synonym">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.3: A term that represents the same or a very similar concept as another term in the same language, but for which interchangeability is limited to some contexts and inapplicable in others.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="part-number">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.17.2: A unique alphanumeric designation assigned to an object in a manufacturing system.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="phrase">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the marked text is a phrase.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="phraseological-unit">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.18: Any group of two or more words that form a unit, the meaning of which frequently cannot be deduced based on the combined sense of the words making up the phrase.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="protected">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the marked text should not be translated.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="romanized-form">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.12: A form of a term resulting from an operation whereby non-Latin writing systems are converted to the Latin alphabet.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="seg">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the marked text represents a segment.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="set-phrase">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.18.2: A fixed, lexicalized phrase.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="short-form">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.8.2: A variant of a multiword term that includes fewer words than the full form of the term (e.g. 'Group of Twenty-four' for 'Intergovernmental Group of Twenty-four on International Monetary Affairs').</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="sku">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.17.1: Stock keeping unit, an inventory item identified by a unique alphanumeric designation assigned to an object in an inventory control system.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="standard-text">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.19: A fixed chunk of recurring text.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="symbol">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.13: A designation of a concept by letters, numerals, pictograms or any combination thereof.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="synonym">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.2: Any term that represents the same or a very similar concept as the main entry term in a term entry.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="synonymous-phrase">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.18.3: Phraseological unit in a language that expresses the same semantic content as another phrase in that same language.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="term">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the marked text is a term.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="transcribed-form">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.11: A form of a term resulting from an operation whereby the characters of one writing system are represented by characters from another writing system, taking into account the pronunciation of the characters converted.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="transliterated-form">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.10: A form of a term resulting from an operation whereby the characters of an alphabetic writing system are represented by characters from another alphabetic writing system.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="truncated-term">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.8.5: An abbreviated form of a term resulting from the omission of one or more term elements or syllables (e.g. 'flu' for 'influenza').</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="variant">
-        <xsd:annotation>
-          <xsd:documentation>ISO-12620 2.1.9: One of the alternate forms of a term.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="restypeValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'restype'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="auto3state">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC AUTO3STATE control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="autocheckbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC AUTOCHECKBOX control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="autoradiobutton">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC AUTORADIOBUTTON control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="bedit">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC BEDIT control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="bitmap">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a bitmap, for example a BITMAP resource in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="button">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a button object, for example a BUTTON control Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="caption">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a caption, such as the caption of a dialog box.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cell">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the cell in a table, for example the content of the &lt;td&gt; element in HTML.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="checkbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates check box object, for example a CHECKBOX control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="checkboxmenuitem">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a menu item with an associated checkbox.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="checkedlistbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a list box, but with a check-box for each item.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="colorchooser">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a color selection dialog.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="combobox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a combination of edit box and listbox object, for example a COMBOBOX control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="comboboxexitem">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an initialization entry of an extended combobox DLGINIT resource block. (code 0x1234).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="comboboxitem">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an initialization entry of a combobox DLGINIT resource block (code 0x0403).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="component">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a UI base class element that cannot be represented by any other element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="contextmenu">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a context menu.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="ctext">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC CTEXT control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cursor">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a cursor, for example a CURSOR resource in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="datetimepicker">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a date/time picker.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="defpushbutton">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC DEFPUSHBUTTON control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="dialog">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a dialog box.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="dlginit">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC DLGINIT resource block.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="edit">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an edit box object, for example an EDIT control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="file">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a filename.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="filechooser">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a file dialog.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="fn">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a footnote.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="font">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a font name.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="footer">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a footer.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="frame">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a frame object.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="grid">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a XUL grid element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="groupbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a groupbox object, for example a GROUPBOX control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="header">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a header item.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="heading">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a heading, such has the content of &lt;h1&gt;, &lt;h2&gt;, etc. in HTML.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="hedit">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC HEDIT control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="hscrollbar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a horizontal scrollbar.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="icon">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an icon, for example an ICON resource in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="iedit">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC IEDIT control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="keywords">
-        <xsd:annotation>
-          <xsd:documentation>Indicates keyword list, such as the content of the Keywords meta-data in HTML, or a K footnote in WinHelp RTF.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="label">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a label object.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="linklabel">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a label that is also a HTML link (not necessarily a URL).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="list">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a list (a group of list-items, for example an &lt;ol&gt; or &lt;ul&gt; element in HTML).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="listbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a listbox object, for example an LISTBOX control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="listitem">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an list item (an entry in a list).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="ltext">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC LTEXT control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="menu">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a menu (a group of menu-items).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="menubar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a toolbar containing one or more tope level menus.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="menuitem">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a menu item (an entry in a menu).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="menuseparator">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a XUL menuseparator element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="message">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a message, for example an entry in a MESSAGETABLE resource in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="monthcalendar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a calendar control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="numericupdown">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an edit box beside a spin control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="panel">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a catch all for rectangular areas.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="popupmenu">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a standalone menu not necessarily associated with a menubar.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pushbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a pushbox object, for example a PUSHBOX control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pushbutton">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC PUSHBUTTON control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="radio">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a radio button object.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="radiobuttonmenuitem">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a menuitem with associated radio button.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rcdata">
-        <xsd:annotation>
-          <xsd:documentation>Indicates raw data resources for an application.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="row">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a row in a table.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rtext">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC RTEXT control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="scrollpane">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a user navigable container used to show a portion of a document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="separator">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a generic divider object (e.g. menu group separator).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="shortcut">
-        <xsd:annotation>
-          <xsd:documentation>Windows accelerators, shortcuts in resource or property files.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="spinner">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a UI control to indicate process activity but not progress.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="splitter">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a splitter bar.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="state3">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC STATE3 control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="statusbar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a window for providing feedback to the users, like 'read-only', etc.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="string">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a string, for example an entry in a STRINGTABLE resource in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="tabcontrol">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a layers of controls with a tab to select layers.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="table">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a display and edits regular two-dimensional tables of cells.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="textbox">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a XUL textbox element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="togglebutton">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a UI button that can be toggled to on or off state.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="toolbar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an array of controls, usually buttons.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="tooltip">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a pop up tool tip text.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="trackbar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a bar with a pointer indicating a position within a certain range.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="tree">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a control that displays a set of hierarchical data.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="uri">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a URI (URN or URL).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="userbutton">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a Windows RC USERBUTTON control.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="usercontrol">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a user-defined control like CONTROL control in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="var">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the text of a variable.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="versioninfo">
-        <xsd:annotation>
-          <xsd:documentation>Indicates version information about a resource like VERSIONINFO in Windows.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="vscrollbar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a vertical scrollbar.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="window">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a graphical window.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="size-unitValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'size-unit'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="byte">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in 8-bit bytes.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="char">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in Unicode characters.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="col">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in columns. Used for HTML text area.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="cm">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in centimeters.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="dlgunit">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in dialog units, as defined in Windows resources.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="em">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in 'font-size' units (as defined in CSS).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="ex">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in 'x-height' units (as defined in CSS).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="glyph">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in glyphs. A glyph is considered to be one or more combined Unicode characters that represent a single displayable text character. Sometimes referred to as a 'grapheme cluster'</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="in">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in inches.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="mm">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in millimeters.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="percent">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in percentage.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="pixel">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in pixels.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="point">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in point.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="row">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a size in rows. Used for HTML text area.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="stateValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'state'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="final">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the terminating state.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="needs-adaptation">
-        <xsd:annotation>
-          <xsd:documentation>Indicates only non-textual information needs adaptation.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="needs-l10n">
-        <xsd:annotation>
-          <xsd:documentation>Indicates both text and non-textual information needs adaptation.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="needs-review-adaptation">
-        <xsd:annotation>
-          <xsd:documentation>Indicates only non-textual information needs review.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="needs-review-l10n">
-        <xsd:annotation>
-          <xsd:documentation>Indicates both text and non-textual information needs review.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="needs-review-translation">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that only the text of the item needs to be reviewed.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="needs-translation">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item needs to be translated.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="new">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item is new. For example, translation units that were not in a previous version of the document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="signed-off">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that changes are reviewed and approved.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="translated">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item has been translated.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="state-qualifierValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'state-qualifier'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="exact-match">
-        <xsd:annotation>
-          <xsd:documentation>Indicates an exact match. An exact match occurs when a source text of a segment is exactly the same as the source text of a segment that was translated previously.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="fuzzy-match">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a fuzzy match. A fuzzy match occurs when a source text of a segment is very similar to the source text of a segment that was translated previously (e.g. when the difference is casing, a few changed words, white-space discripancy, etc.).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="id-match">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a match based on matching IDs (in addition to matching text).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="leveraged-glossary">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a translation derived from a glossary.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="leveraged-inherited">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a translation derived from existing translation.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="leveraged-mt">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a translation derived from machine translation.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="leveraged-repository">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a translation derived from a translation repository.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="leveraged-tm">
-        <xsd:annotation>
-          <xsd:documentation>Indicates a translation derived from a translation memory.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="mt-suggestion">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the translation is suggested by machine translation.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rejected-grammar">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item has been rejected because of incorrect grammar.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rejected-inaccurate">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item has been rejected because it is incorrect.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rejected-length">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item has been rejected because it is too long or too short.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rejected-spelling">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the item has been rejected because of incorrect spelling.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="tm-suggestion">
-        <xsd:annotation>
-          <xsd:documentation>Indicates the translation is suggested by translation memory.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="unitValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'unit'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="word">
-        <xsd:annotation>
-          <xsd:documentation>Refers to words.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="page">
-        <xsd:annotation>
-          <xsd:documentation>Refers to pages.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="trans-unit">
-        <xsd:annotation>
-          <xsd:documentation>Refers to &lt;trans-unit&gt; elements.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="bin-unit">
-        <xsd:annotation>
-          <xsd:documentation>Refers to &lt;bin-unit&gt; elements.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="glyph">
-        <xsd:annotation>
-          <xsd:documentation>Refers to glyphs.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="item">
-        <xsd:annotation>
-          <xsd:documentation>Refers to &lt;trans-unit&gt; and/or &lt;bin-unit&gt; elements.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="instance">
-        <xsd:annotation>
-          <xsd:documentation>Refers to the occurrences of instances defined by the count-type value.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="character">
-        <xsd:annotation>
-          <xsd:documentation>Refers to characters.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="line">
-        <xsd:annotation>
-          <xsd:documentation>Refers to lines.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="sentence">
-        <xsd:annotation>
-          <xsd:documentation>Refers to sentences.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="paragraph">
-        <xsd:annotation>
-          <xsd:documentation>Refers to paragraphs.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="segment">
-        <xsd:annotation>
-          <xsd:documentation>Refers to segments.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="placeable">
-        <xsd:annotation>
-          <xsd:documentation>Refers to placeables (inline elements).</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="priorityValueList">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'priority'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:positiveInteger">
-      <xsd:enumeration value="1">
-        <xsd:annotation>
-          <xsd:documentation>Highest priority.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="2">
-        <xsd:annotation>
-          <xsd:documentation>High priority.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="3">
-        <xsd:annotation>
-          <xsd:documentation>High priority, but not as important as 2.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="4">
-        <xsd:annotation>
-          <xsd:documentation>High priority, but not as important as 3.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="5">
-        <xsd:annotation>
-          <xsd:documentation>Medium priority, but more important than 6.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="6">
-        <xsd:annotation>
-          <xsd:documentation>Medium priority, but less important than 5.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="7">
-        <xsd:annotation>
-          <xsd:documentation>Low priority, but more important than 8.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="8">
-        <xsd:annotation>
-          <xsd:documentation>Low priority, but more important than 9.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="9">
-        <xsd:annotation>
-          <xsd:documentation>Low priority.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="10">
-        <xsd:annotation>
-          <xsd:documentation>Lowest priority.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="reformatValueYesNo">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="yes">
-        <xsd:annotation>
-          <xsd:documentation>This value indicates that all properties can be reformatted. This value must be used alone.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="no">
-        <xsd:annotation>
-          <xsd:documentation>This value indicates that no properties should be reformatted. This value must be used alone.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="reformatValueList">
-    <xsd:list>
-      <xsd:simpleType>
-        <xsd:union memberTypes="xlf:XTend">
-          <xsd:simpleType>
-            <xsd:restriction base="xsd:string">
-              <xsd:enumeration value="coord">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that all information in the coord attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="coord-x">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the x information in the coord attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="coord-y">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the y information in the coord attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="coord-cx">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the cx information in the coord attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="coord-cy">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the cy information in the coord attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="font">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that all the information in the font attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="font-name">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the name information in the font attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="font-size">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the size information in the font attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="font-weight">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the weight information in the font attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="css-style">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the information in the css-style attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="style">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the information in the style attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-              <xsd:enumeration value="ex-style">
-                <xsd:annotation>
-                  <xsd:documentation>This value indicates that the information in the exstyle attribute can be modified.</xsd:documentation>
-                </xsd:annotation>
-              </xsd:enumeration>
-            </xsd:restriction>
-          </xsd:simpleType>
-        </xsd:union>
-      </xsd:simpleType>
-    </xsd:list>
-  </xsd:simpleType>
-  <xsd:simpleType name="purposeValueList">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="information">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the context is informational in nature, specifying for example, how a term should be translated. Thus, should be displayed to anyone editing the XLIFF document.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="location">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the context-group is used to specify where the term was found in the translatable source. Thus, it is not displayed.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="match">
-        <xsd:annotation>
-          <xsd:documentation>Indicates that the context information should be used during translation memory lookups. Thus, it is not displayed.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="alttranstypeValueList">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="proposal">
-        <xsd:annotation>
-          <xsd:documentation>Represents a translation proposal from a translation memory or other resource.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="previous-version">
-        <xsd:annotation>
-          <xsd:documentation>Represents a previous version of the target element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="rejected">
-        <xsd:annotation>
-          <xsd:documentation>Represents a rejected version of the target element.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="reference">
-        <xsd:annotation>
-          <xsd:documentation>Represents a translation to be used for reference purposes only, for example from a related product or a different language.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-      <xsd:enumeration value="accepted">
-        <xsd:annotation>
-          <xsd:documentation>Represents a proposed translation that was used for the translation of the trans-unit, possibly modified.</xsd:documentation>
-        </xsd:annotation>
-      </xsd:enumeration>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <!-- Other Types -->
-  <xsd:complexType name="ElemType_ExternalReference">
-    <xsd:choice>
-      <xsd:element ref="xlf:internal-file"/>
-      <xsd:element ref="xlf:external-file"/>
-    </xsd:choice>
-  </xsd:complexType>
-  <xsd:simpleType name="AttrType_purpose">
-    <xsd:list>
-      <xsd:simpleType>
-        <xsd:union memberTypes="xlf:purposeValueList xlf:XTend"/>
-      </xsd:simpleType>
-    </xsd:list>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_datatype">
-    <xsd:union memberTypes="xlf:datatypeValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_restype">
-    <xsd:union memberTypes="xlf:restypeValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_alttranstype">
-    <xsd:union memberTypes="xlf:alttranstypeValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_context-type">
-    <xsd:union memberTypes="xlf:context-typeValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_state">
-    <xsd:union memberTypes="xlf:stateValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_state-qualifier">
-    <xsd:union memberTypes="xlf:state-qualifierValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_count-type">
-    <xsd:union memberTypes="xlf:restypeValueList xlf:count-typeValueList xlf:datatypeValueList xlf:stateValueList xlf:state-qualifierValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_InlineDelimiters">
-    <xsd:union memberTypes="xlf:InlineDelimitersValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_InlinePlaceholders">
-    <xsd:union memberTypes="xlf:InlinePlaceholdersValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_size-unit">
-    <xsd:union memberTypes="xlf:size-unitValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_mtype">
-    <xsd:union memberTypes="xlf:mtypeValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_unit">
-    <xsd:union memberTypes="xlf:unitValueList xlf:XTend"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_priority">
-    <xsd:union memberTypes="xlf:priorityValueList"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_reformat">
-    <xsd:union memberTypes="xlf:reformatValueYesNo xlf:reformatValueList"/>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_YesNo">
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="yes"/>
-      <xsd:enumeration value="no"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_Position">
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="open"/>
-      <xsd:enumeration value="close"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_assoc">
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="preceding"/>
-      <xsd:enumeration value="following"/>
-      <xsd:enumeration value="both"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_annotates">
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="source"/>
-      <xsd:enumeration value="target"/>
-      <xsd:enumeration value="general"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_Coordinates">
-    <xsd:annotation>
-      <xsd:documentation>Values for the attribute 'coord'.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="(-?\d+|#);(-?\d+|#);(-?\d+|#);(-?\d+|#)"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="AttrType_Version">
-    <xsd:annotation>
-      <xsd:documentation>Version values: 1.0 and 1.1 are allowed for backward compatibility.</xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="1.2"/>
-      <xsd:enumeration value="1.1"/>
-      <xsd:enumeration value="1.0"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <!-- Groups -->
-  <xsd:group name="ElemGroup_TextContent">
-    <xsd:choice>
-      <xsd:element ref="xlf:g"/>
-      <xsd:element ref="xlf:bpt"/>
-      <xsd:element ref="xlf:ept"/>
-      <xsd:element ref="xlf:ph"/>
-      <xsd:element ref="xlf:it"/>
-      <xsd:element ref="xlf:mrk"/>
-      <xsd:element ref="xlf:x"/>
-      <xsd:element ref="xlf:bx"/>
-      <xsd:element ref="xlf:ex"/>
-    </xsd:choice>
-  </xsd:group>
-  <xsd:attributeGroup name="AttrGroup_TextContent">
-    <xsd:attribute name="id" type="xsd:string" use="required"/>
-    <xsd:attribute name="xid" type="xsd:string" use="optional"/>
-    <xsd:attribute name="equiv-text" type="xsd:string" use="optional"/>
-    <xsd:anyAttribute namespace="##other" processContents="strict"/>
-  </xsd:attributeGroup>
-  <!-- XLIFF Structure -->
-  <xsd:element name="xliff">
-    <xsd:complexType>
-      <xsd:sequence maxOccurs="unbounded">
-        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
-        <xsd:element ref="xlf:file"/>
-      </xsd:sequence>
-      <xsd:attribute name="version" type="xlf:AttrType_Version" use="required"/>
-      <xsd:attribute ref="xml:lang" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="file">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element minOccurs="0" ref="xlf:header"/>
-        <xsd:element ref="xlf:body"/>
-      </xsd:sequence>
-      <xsd:attribute name="original" type="xsd:string" use="required"/>
-      <xsd:attribute name="source-language" type="xsd:language" use="required"/>
-      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="required"/>
-      <xsd:attribute name="tool-id" type="xsd:string" use="optional"/>
-      <xsd:attribute name="date" type="xsd:dateTime" use="optional"/>
-      <xsd:attribute ref="xml:space" use="optional"/>
-      <xsd:attribute name="category" type="xsd:string" use="optional"/>
-      <xsd:attribute name="target-language" type="xsd:language" use="optional"/>
-      <xsd:attribute name="product-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="product-version" type="xsd:string" use="optional"/>
-      <xsd:attribute name="build-num" type="xsd:string" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-    <xsd:unique name="U_group_id">
-      <xsd:selector xpath=".//xlf:group"/>
-      <xsd:field xpath="@id"/>
-    </xsd:unique>
-    <xsd:key name="K_unit_id">
-      <xsd:selector xpath=".//xlf:trans-unit|.//xlf:bin-unit"/>
-      <xsd:field xpath="@id"/>
-    </xsd:key>
-    <xsd:keyref name="KR_unit_id" refer="xlf:K_unit_id">
-      <xsd:selector xpath=".//bpt|.//ept|.//it|.//ph|.//g|.//x|.//bx|.//ex|.//sub"/>
-      <xsd:field xpath="@xid"/>
-    </xsd:keyref>
-    <xsd:key name="K_tool-id">
-      <xsd:selector xpath="xlf:header/xlf:tool"/>
-      <xsd:field xpath="@tool-id"/>
-    </xsd:key>
-    <xsd:keyref name="KR_file_tool-id" refer="xlf:K_tool-id">
-      <xsd:selector xpath="."/>
-      <xsd:field xpath="@tool-id"/>
-    </xsd:keyref>
-    <xsd:keyref name="KR_phase_tool-id" refer="xlf:K_tool-id">
-      <xsd:selector xpath="xlf:header/xlf:phase-group/xlf:phase"/>
-      <xsd:field xpath="@tool-id"/>
-    </xsd:keyref>
-    <xsd:keyref name="KR_alt-trans_tool-id" refer="xlf:K_tool-id">
-      <xsd:selector xpath=".//xlf:trans-unit/xlf:alt-trans"/>
-      <xsd:field xpath="@tool-id"/>
-    </xsd:keyref>
-    <xsd:key name="K_count-group_name">
-      <xsd:selector xpath=".//xlf:count-group"/>
-      <xsd:field xpath="@name"/>
-    </xsd:key>
-    <xsd:unique name="U_context-group_name">
-      <xsd:selector xpath=".//xlf:context-group"/>
-      <xsd:field xpath="@name"/>
-    </xsd:unique>
-    <xsd:key name="K_phase-name">
-      <xsd:selector xpath="xlf:header/xlf:phase-group/xlf:phase"/>
-      <xsd:field xpath="@phase-name"/>
-    </xsd:key>
-    <xsd:keyref name="KR_phase-name" refer="xlf:K_phase-name">
-      <xsd:selector xpath=".//xlf:count|.//xlf:trans-unit|.//xlf:target|.//bin-unit|.//bin-target"/>
-      <xsd:field xpath="@phase-name"/>
-    </xsd:keyref>
-    <xsd:unique name="U_uid">
-      <xsd:selector xpath=".//xlf:external-file"/>
-      <xsd:field xpath="@uid"/>
-    </xsd:unique>
-  </xsd:element>
-  <xsd:element name="header">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element minOccurs="0" name="skl" type="xlf:ElemType_ExternalReference"/>
-        <xsd:element minOccurs="0" ref="xlf:phase-group"/>
-        <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="glossary" type="xlf:ElemType_ExternalReference"/>
-          <xsd:element name="reference" type="xlf:ElemType_ExternalReference"/>
-          <xsd:element ref="xlf:count-group"/>
-          <xsd:element ref="xlf:note"/>
-          <xsd:element ref="xlf:tool"/>
-        </xsd:choice>
-        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
-      </xsd:sequence>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="internal-file">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute name="form" type="xsd:string"/>
-          <xsd:attribute name="crc" type="xsd:NMTOKEN"/>
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="external-file">
-    <xsd:complexType>
-      <xsd:attribute name="href" type="xsd:string" use="required"/>
-      <xsd:attribute name="crc" type="xsd:NMTOKEN"/>
-      <xsd:attribute name="uid" type="xsd:NMTOKEN"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="note">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute ref="xml:lang" use="optional"/>
-          <xsd:attribute default="1" name="priority" type="xlf:AttrType_priority" use="optional"/>
-          <xsd:attribute name="from" type="xsd:string" use="optional"/>
-          <xsd:attribute default="general" name="annotates" type="xlf:AttrType_annotates" use="optional"/>
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="phase-group">
-    <xsd:complexType>
-      <xsd:sequence maxOccurs="unbounded">
-        <xsd:element ref="xlf:phase"/>
-      </xsd:sequence>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="phase">
-    <xsd:complexType>
-      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="xlf:note"/>
-      </xsd:sequence>
-      <xsd:attribute name="phase-name" type="xsd:string" use="required"/>
-      <xsd:attribute name="process-name" type="xsd:string" use="required"/>
-      <xsd:attribute name="company-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="tool-id" type="xsd:string" use="optional"/>
-      <xsd:attribute name="date" type="xsd:dateTime" use="optional"/>
-      <xsd:attribute name="job-id" type="xsd:string" use="optional"/>
-      <xsd:attribute name="contact-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="contact-email" type="xsd:string" use="optional"/>
-      <xsd:attribute name="contact-phone" type="xsd:string" use="optional"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="count-group">
-    <xsd:complexType>
-      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="xlf:count"/>
-      </xsd:sequence>
-      <xsd:attribute name="name" type="xsd:string" use="required"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="count">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute name="count-type" type="xlf:AttrType_count-type" use="optional"/>
-          <xsd:attribute name="phase-name" type="xsd:string" use="optional"/>
-          <xsd:attribute default="word" name="unit" type="xlf:AttrType_unit" use="optional"/>
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="context-group">
-    <xsd:complexType>
-      <xsd:sequence maxOccurs="unbounded">
-        <xsd:element ref="xlf:context"/>
-      </xsd:sequence>
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="crc" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="purpose" type="xlf:AttrType_purpose" use="optional"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="context">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute name="context-type" type="xlf:AttrType_context-type" use="required"/>
-          <xsd:attribute default="no" name="match-mandatory" type="xlf:AttrType_YesNo" use="optional"/>
-          <xsd:attribute name="crc" type="xsd:NMTOKEN" use="optional"/>
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="tool">
-    <xsd:complexType mixed="true">
-      <xsd:sequence>
-        <xsd:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="tool-id" type="xsd:string" use="required"/>
-      <xsd:attribute name="tool-name" type="xsd:string" use="required"/>
-      <xsd:attribute name="tool-version" type="xsd:string" use="optional"/>
-      <xsd:attribute name="tool-company" type="xsd:string" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="body">
-    <xsd:complexType>
-      <xsd:choice maxOccurs="unbounded" minOccurs="0">
-        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:group"/>
-        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:trans-unit"/>
-        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:bin-unit"/>
-      </xsd:choice>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="group">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:sequence>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:context-group"/>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:count-group"/>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:note"/>
-          <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
-        </xsd:sequence>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:group"/>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:trans-unit"/>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:bin-unit"/>
-        </xsd:choice>
-      </xsd:sequence>
-      <xsd:attribute name="id" type="xsd:string" use="optional"/>
-      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
-      <xsd:attribute default="default" ref="xml:space" use="optional"/>
-      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
-      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
-      <xsd:attribute name="extradata" type="xsd:string" use="optional"/>
-      <xsd:attribute name="extype" type="xsd:string" use="optional"/>
-      <xsd:attribute name="help-id" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="menu" type="xsd:string" use="optional"/>
-      <xsd:attribute name="menu-option" type="xsd:string" use="optional"/>
-      <xsd:attribute name="menu-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
-      <xsd:attribute name="font" type="xsd:string" use="optional"/>
-      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
-      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute default="yes" name="translate" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attribute default="yes" name="reformat" type="xlf:AttrType_reformat" use="optional"/>
-      <xsd:attribute default="pixel" name="size-unit" type="xlf:AttrType_size-unit" use="optional"/>
-      <xsd:attribute name="maxwidth" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="minwidth" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="maxheight" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="minheight" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="maxbytes" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="minbytes" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="charclass" type="xsd:string" use="optional"/>
-      <xsd:attribute default="no" name="merged-trans" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="trans-unit">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element ref="xlf:source"/>
-        <xsd:element minOccurs="0" ref="xlf:seg-source"/>
-        <xsd:element minOccurs="0" ref="xlf:target"/>
-        <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element ref="xlf:context-group"/>
-          <xsd:element ref="xlf:count-group"/>
-          <xsd:element ref="xlf:note"/>
-          <xsd:element ref="xlf:alt-trans"/>
-        </xsd:choice>
-        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
-      </xsd:sequence>
-      <xsd:attribute name="id" type="xsd:string" use="required"/>
-      <xsd:attribute name="approved" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attribute default="yes" name="translate" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attribute default="yes" name="reformat" type="xlf:AttrType_reformat" use="optional"/>
-      <xsd:attribute default="default" ref="xml:space" use="optional"/>
-      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
-      <xsd:attribute name="phase-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
-      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
-      <xsd:attribute name="extradata" type="xsd:string" use="optional"/>
-      <xsd:attribute name="extype" type="xsd:string" use="optional"/>
-      <xsd:attribute name="help-id" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="menu" type="xsd:string" use="optional"/>
-      <xsd:attribute name="menu-option" type="xsd:string" use="optional"/>
-      <xsd:attribute name="menu-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
-      <xsd:attribute name="font" type="xsd:string" use="optional"/>
-      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
-      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute default="pixel" name="size-unit" type="xlf:AttrType_size-unit" use="optional"/>
-      <xsd:attribute name="maxwidth" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="minwidth" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="maxheight" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="minheight" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="maxbytes" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="minbytes" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="charclass" type="xsd:string" use="optional"/>
-      <xsd:attribute default="yes" name="merged-trans" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-    <xsd:unique name="U_tu_segsrc_mid">
-      <xsd:selector xpath="./xlf:seg-source/xlf:mrk"/>
-      <xsd:field xpath="@mid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_tu_segsrc_mid" refer="xlf:U_tu_segsrc_mid">
-      <xsd:selector xpath="./xlf:target/xlf:mrk|./xlf:alt-trans"/>
-      <xsd:field xpath="@mid"/>
-    </xsd:keyref>
-  </xsd:element>
-  <xsd:element name="source">
-    <xsd:complexType mixed="true">
-      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
-      <xsd:attribute ref="xml:lang" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-    <xsd:unique name="U_source_bpt_rid">
-      <xsd:selector xpath=".//xlf:bpt"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_source_ept_rid" refer="xlf:U_source_bpt_rid">
-      <xsd:selector xpath=".//xlf:ept"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:keyref>
-    <xsd:unique name="U_source_bx_rid">
-      <xsd:selector xpath=".//xlf:bx"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_source_ex_rid" refer="xlf:U_source_bx_rid">
-      <xsd:selector xpath=".//xlf:ex"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:keyref>
-  </xsd:element>
-  <xsd:element name="seg-source">
-    <xsd:complexType mixed="true">
-      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
-      <xsd:attribute ref="xml:lang" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-    <xsd:unique name="U_segsrc_bpt_rid">
-      <xsd:selector xpath=".//xlf:bpt"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_segsrc_ept_rid" refer="xlf:U_segsrc_bpt_rid">
-      <xsd:selector xpath=".//xlf:ept"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:keyref>
-    <xsd:unique name="U_segsrc_bx_rid">
-      <xsd:selector xpath=".//xlf:bx"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_segsrc_ex_rid" refer="xlf:U_segsrc_bx_rid">
-      <xsd:selector xpath=".//xlf:ex"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:keyref>
-  </xsd:element>
-  <xsd:element name="target">
-    <xsd:complexType mixed="true">
-      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
-      <xsd:attribute name="state" type="xlf:AttrType_state" use="optional"/>
-      <xsd:attribute name="state-qualifier" type="xlf:AttrType_state-qualifier" use="optional"/>
-      <xsd:attribute name="phase-name" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute ref="xml:lang" use="optional"/>
-      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
-      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
-      <xsd:attribute name="font" type="xsd:string" use="optional"/>
-      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
-      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute default="yes" name="equiv-trans" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-    <xsd:unique name="U_target_bpt_rid">
-      <xsd:selector xpath=".//xlf:bpt"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_target_ept_rid" refer="xlf:U_target_bpt_rid">
-      <xsd:selector xpath=".//xlf:ept"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:keyref>
-    <xsd:unique name="U_target_bx_rid">
-      <xsd:selector xpath=".//xlf:bx"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_target_ex_rid" refer="xlf:U_target_bx_rid">
-      <xsd:selector xpath=".//xlf:ex"/>
-      <xsd:field xpath="@rid"/>
-    </xsd:keyref>
-  </xsd:element>
-  <xsd:element name="alt-trans">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element minOccurs="0" ref="xlf:source"/>
-        <xsd:element minOccurs="0" ref="xlf:seg-source"/>
-        <xsd:element maxOccurs="1" ref="xlf:target"/>
-        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:context-group"/>
-        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:note"/>
-        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
-      </xsd:sequence>
-      <xsd:attribute name="match-quality" type="xsd:string" use="optional"/>
-      <xsd:attribute name="tool-id" type="xsd:string" use="optional"/>
-      <xsd:attribute name="crc" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute ref="xml:lang" use="optional"/>
-      <xsd:attribute name="origin" type="xsd:string" use="optional"/>
-      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
-      <xsd:attribute default="default" ref="xml:space" use="optional"/>
-      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
-      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
-      <xsd:attribute name="extradata" type="xsd:string" use="optional"/>
-      <xsd:attribute name="extype" type="xsd:string" use="optional"/>
-      <xsd:attribute name="help-id" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="menu" type="xsd:string" use="optional"/>
-      <xsd:attribute name="menu-option" type="xsd:string" use="optional"/>
-      <xsd:attribute name="menu-name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="mid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
-      <xsd:attribute name="font" type="xsd:string" use="optional"/>
-      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
-      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="phase-name" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute default="proposal" name="alttranstype" type="xlf:AttrType_alttranstype" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-    <xsd:unique name="U_at_segsrc_mid">
-      <xsd:selector xpath="./xlf:seg-source/xlf:mrk"/>
-      <xsd:field xpath="@mid"/>
-    </xsd:unique>
-    <xsd:keyref name="KR_at_segsrc_mid" refer="xlf:U_at_segsrc_mid">
-      <xsd:selector xpath="./xlf:target/xlf:mrk"/>
-      <xsd:field xpath="@mid"/>
-    </xsd:keyref>
-  </xsd:element>
-  <xsd:element name="bin-unit">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element ref="xlf:bin-source"/>
-        <xsd:element minOccurs="0" ref="xlf:bin-target"/>
-        <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element ref="xlf:context-group"/>
-          <xsd:element ref="xlf:count-group"/>
-          <xsd:element ref="xlf:note"/>
-          <xsd:element ref="xlf:trans-unit"/>
-        </xsd:choice>
-        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
-      </xsd:sequence>
-      <xsd:attribute name="id" type="xsd:string" use="required"/>
-      <xsd:attribute name="mime-type" type="xlf:mime-typeValueList" use="required"/>
-      <xsd:attribute name="approved" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attribute default="yes" name="translate" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attribute default="yes" name="reformat" type="xlf:AttrType_reformat" use="optional"/>
-      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
-      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
-      <xsd:attribute name="phase-name" type="xsd:string" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="bin-source">
-    <xsd:complexType>
-      <xsd:choice>
-        <xsd:element ref="xlf:internal-file"/>
-        <xsd:element ref="xlf:external-file"/>
-      </xsd:choice>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="bin-target">
-    <xsd:complexType>
-      <xsd:choice>
-        <xsd:element ref="xlf:internal-file"/>
-        <xsd:element ref="xlf:external-file"/>
-      </xsd:choice>
-      <xsd:attribute name="mime-type" type="xlf:mime-typeValueList" use="optional"/>
-      <xsd:attribute name="state" type="xlf:AttrType_state" use="optional"/>
-      <xsd:attribute name="state-qualifier" type="xlf:AttrType_state-qualifier" use="optional"/>
-      <xsd:attribute name="phase-name" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
-      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-  <!-- Element for inline codes -->
-  <xsd:element name="g">
-    <xsd:complexType mixed="true">
-      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
-      <xsd:attribute default="yes" name="clone" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="x">
-    <xsd:complexType>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlinePlaceholders" use="optional"/>
-      <xsd:attribute default="yes" name="clone" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="bx">
-    <xsd:complexType>
-      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
-      <xsd:attribute default="yes" name="clone" type="xlf:AttrType_YesNo" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="ex">
-    <xsd:complexType>
-      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="ph">
-    <xsd:complexType mixed="true">
-      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="xlf:sub"/>
-      </xsd:sequence>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlinePlaceholders" use="optional"/>
-      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
-      <xsd:attribute name="assoc" type="xlf:AttrType_assoc" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="bpt">
-    <xsd:complexType mixed="true">
-      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="xlf:sub"/>
-      </xsd:sequence>
-      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
-      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="ept">
-    <xsd:complexType mixed="true">
-      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="xlf:sub"/>
-      </xsd:sequence>
-      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="it">
-    <xsd:complexType mixed="true">
-      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="xlf:sub"/>
-      </xsd:sequence>
-      <xsd:attribute name="pos" type="xlf:AttrType_Position" use="required"/>
-      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
-      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
-      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="sub">
-    <xsd:complexType mixed="true">
-      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
-      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
-      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
-      <xsd:attribute name="xid" type="xsd:string" use="optional"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:element name="mrk">
-    <xsd:complexType mixed="true">
-      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
-      <xsd:attribute name="mtype" type="xlf:AttrType_mtype" use="required"/>
-      <xsd:attribute name="mid" type="xsd:NMTOKEN" use="optional"/>
-      <xsd:attribute name="comment" type="xsd:string" use="optional"/>
-      <xsd:anyAttribute namespace="##other" processContents="strict"/>
-    </xsd:complexType>
-  </xsd:element>
-</xsd:schema>
diff --git a/core/vendor/symfony/translation/Loader/schema/dic/xliff-core/xml.xsd b/core/vendor/symfony/translation/Loader/schema/dic/xliff-core/xml.xsd
deleted file mode 100644
index a46162a..0000000
--- a/core/vendor/symfony/translation/Loader/schema/dic/xliff-core/xml.xsd
+++ /dev/null
@@ -1,309 +0,0 @@
-<?xml version='1.0'?>
-<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
-<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" 
-  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-  xmlns ="http://www.w3.org/1999/xhtml"
-  xml:lang="en">
-
- <xs:annotation>
-  <xs:documentation>
-   <div>
-    <h1>About the XML namespace</h1>
-
-    <div class="bodytext">
-     <p>
-
-      This schema document describes the XML namespace, in a form
-      suitable for import by other schema documents.
-     </p>
-     <p>
-      See <a href="http://www.w3.org/XML/1998/namespace.html">
-      http://www.w3.org/XML/1998/namespace.html</a> and
-      <a href="http://www.w3.org/TR/REC-xml">
-      http://www.w3.org/TR/REC-xml</a> for information 
-      about this namespace.
-     </p>
-
-     <p>
-      Note that local names in this namespace are intended to be
-      defined only by the World Wide Web Consortium or its subgroups.
-      The names currently defined in this namespace are listed below.
-      They should not be used with conflicting semantics by any Working
-      Group, specification, or document instance.
-     </p>
-     <p>   
-      See further below in this document for more information about <a
-      href="#usage">how to refer to this schema document from your own
-      XSD schema documents</a> and about <a href="#nsversioning">the
-      namespace-versioning policy governing this schema document</a>.
-     </p>
-    </div>
-   </div>
-
-  </xs:documentation>
- </xs:annotation>
-
- <xs:attribute name="lang">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-     
-      <h3>lang (as an attribute name)</h3>
-      <p>
-
-       denotes an attribute whose value
-       is a language code for the natural language of the content of
-       any element; its value is inherited.  This name is reserved
-       by virtue of its definition in the XML specification.</p>
-     
-    </div>
-    <div>
-     <h4>Notes</h4>
-     <p>
-      Attempting to install the relevant ISO 2- and 3-letter
-      codes as the enumerated possible values is probably never
-      going to be a realistic possibility.  
-     </p>
-     <p>
-
-      See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
-       http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
-      and the IANA language subtag registry at
-      <a href="http://www.iana.org/assignments/language-subtag-registry">
-       http://www.iana.org/assignments/language-subtag-registry</a>
-      for further information.
-     </p>
-     <p>
-
-      The union allows for the 'un-declaration' of xml:lang with
-      the empty string.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-  <xs:simpleType>
-   <xs:union memberTypes="xs:language">
-    <xs:simpleType>    
-     <xs:restriction base="xs:string">
-      <xs:enumeration value=""/>
-
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:union>
-  </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="space">
-  <xs:annotation>
-   <xs:documentation>
-
-    <div>
-     
-      <h3>space (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose
-       value is a keyword indicating what whitespace processing
-       discipline is intended for the content of the element; its
-       value is inherited.  This name is reserved by virtue of its
-       definition in the XML specification.</p>
-     
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-  <xs:simpleType>
-
-   <xs:restriction base="xs:NCName">
-    <xs:enumeration value="default"/>
-    <xs:enumeration value="preserve"/>
-   </xs:restriction>
-  </xs:simpleType>
- </xs:attribute>
- 
- <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
-   <xs:documentation>
-
-    <div>
-     
-      <h3>base (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose value
-       provides a URI to be used as the base for interpreting any
-       relative URIs in the scope of the element on which it
-       appears; its value is inherited.  This name is reserved
-       by virtue of its definition in the XML Base specification.</p>
-     
-     <p>
-      See <a
-      href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
-      for information about this attribute.
-     </p>
-
-    </div>
-   </xs:documentation>
-  </xs:annotation>
- </xs:attribute>
- 
- <xs:attribute name="id" type="xs:ID">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-     
-      <h3>id (as an attribute name)</h3> 
-      <p>
-
-       denotes an attribute whose value
-       should be interpreted as if declared to be of type ID.
-       This name is reserved by virtue of its definition in the
-       xml:id specification.</p>
-     
-     <p>
-      See <a
-      href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
-      for information about this attribute.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-
- </xs:attribute>
-
- <xs:attributeGroup name="specialAttrs">
-  <xs:attribute ref="xml:base"/>
-  <xs:attribute ref="xml:lang"/>
-  <xs:attribute ref="xml:space"/>
-  <xs:attribute ref="xml:id"/>
- </xs:attributeGroup>
-
- <xs:annotation>
-
-  <xs:documentation>
-   <div>
-   
-    <h3>Father (in any context at all)</h3> 
-
-    <div class="bodytext">
-     <p>
-      denotes Jon Bosak, the chair of 
-      the original XML Working Group.  This name is reserved by 
-      the following decision of the W3C XML Plenary and 
-      XML Coordination groups:
-     </p>
-     <blockquote>
-       <p>
-
-	In appreciation for his vision, leadership and
-	dedication the W3C XML Plenary on this 10th day of
-	February, 2000, reserves for Jon Bosak in perpetuity
-	the XML name "xml:Father".
-       </p>
-     </blockquote>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
-  <xs:documentation>
-
-   <div xml:id="usage" id="usage">
-    <h2><a name="usage">About this schema document</a></h2>
-
-    <div class="bodytext">
-     <p>
-      This schema defines attributes and an attribute group suitable
-      for use by schemas wishing to allow <code>xml:base</code>,
-      <code>xml:lang</code>, <code>xml:space</code> or
-      <code>xml:id</code> attributes on elements they define.
-     </p>
-
-     <p>
-      To enable this, such a schema must import this schema for
-      the XML namespace, e.g. as follows:
-     </p>
-     <pre>
-          &lt;schema.. .>
-          .. .
-           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
-                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-     </pre>
-     <p>
-      or
-     </p>
-     <pre>
-
-           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
-                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
-     </pre>
-     <p>
-      Subsequently, qualified reference to any of the attributes or the
-      group defined below will have the desired effect, e.g.
-     </p>
-     <pre>
-          &lt;type.. .>
-          .. .
-           &lt;attributeGroup ref="xml:specialAttrs"/>
-     </pre>
-     <p>
-      will define a type which will schema-validate an instance element
-      with any of those attributes.
-     </p>
-
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
-  <xs:documentation>
-   <div id="nsversioning" xml:id="nsversioning">
-    <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
-
-    <div class="bodytext">
-     <p>
-      In keeping with the XML Schema WG's standard versioning
-      policy, this schema document will persist at
-      <a href="http://www.w3.org/2009/01/xml.xsd">
-       http://www.w3.org/2009/01/xml.xsd</a>.
-     </p>
-     <p>
-      At the date of issue it can also be found at
-      <a href="http://www.w3.org/2001/xml.xsd">
-       http://www.w3.org/2001/xml.xsd</a>.
-     </p>
-
-     <p>
-      The schema document at that URI may however change in the future,
-      in order to remain compatible with the latest version of XML
-      Schema itself, or with the XML namespace itself.  In other words,
-      if the XML Schema or XML namespaces change, the version of this
-      document at <a href="http://www.w3.org/2001/xml.xsd">
-       http://www.w3.org/2001/xml.xsd 
-      </a> 
-      will change accordingly; the version at 
-      <a href="http://www.w3.org/2009/01/xml.xsd">
-       http://www.w3.org/2009/01/xml.xsd 
-      </a> 
-      will not change.
-     </p>
-     <p>
-
-      Previous dated (and unchanging) versions of this schema 
-      document are at:
-     </p>
-     <ul>
-      <li><a href="http://www.w3.org/2009/01/xml.xsd">
-	http://www.w3.org/2009/01/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2007/08/xml.xsd">
-	http://www.w3.org/2007/08/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2004/10/xml.xsd">
-
-	http://www.w3.org/2004/10/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2001/03/xml.xsd">
-	http://www.w3.org/2001/03/xml.xsd</a></li>
-     </ul>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
-</xs:schema>
diff --git a/core/vendor/symfony/translation/LoggingTranslator.php b/core/vendor/symfony/translation/LoggingTranslator.php
deleted file mode 100644
index 4ff3531..0000000
--- a/core/vendor/symfony/translation/LoggingTranslator.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-use Psr\Log\LoggerInterface;
-
-/**
- * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
- */
-class LoggingTranslator implements TranslatorInterface, TranslatorBagInterface
-{
-    /**
-     * @var TranslatorInterface|TranslatorBagInterface
-     */
-    private $translator;
-
-    /**
-     * @var LoggerInterface
-     */
-    private $logger;
-
-    /**
-     * @param TranslatorInterface $translator The translator must implement TranslatorBagInterface
-     * @param LoggerInterface     $logger
-     */
-    public function __construct(TranslatorInterface $translator, LoggerInterface $logger)
-    {
-        if (!$translator instanceof TranslatorBagInterface) {
-            throw new \InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface and TranslatorBagInterface.', get_class($translator)));
-        }
-
-        $this->translator = $translator;
-        $this->logger = $logger;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function trans($id, array $parameters = array(), $domain = null, $locale = null)
-    {
-        $trans = $this->translator->trans($id, $parameters, $domain, $locale);
-        $this->log($id, $domain, $locale);
-
-        return $trans;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
-    {
-        $trans = $this->translator->transChoice($id, $number, $parameters, $domain, $locale);
-        $this->log($id, $domain, $locale);
-
-        return $trans;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setLocale($locale)
-    {
-        $this->translator->setLocale($locale);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getLocale()
-    {
-        return $this->translator->getLocale();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCatalogue($locale = null)
-    {
-        return $this->translator->getCatalogue($locale);
-    }
-
-    /**
-     * Passes through all unknown calls onto the translator object.
-     */
-    public function __call($method, $args)
-    {
-        return call_user_func_array(array($this->translator, $method), $args);
-    }
-
-    /**
-     * Logs for missing translations.
-     *
-     * @param string      $id
-     * @param string|null $domain
-     * @param string|null $locale
-     */
-    private function log($id, $domain, $locale)
-    {
-        if (null === $domain) {
-            $domain = 'messages';
-        }
-
-        $id = (string) $id;
-        $catalogue = $this->translator->getCatalogue($locale);
-        if ($catalogue->defines($id, $domain)) {
-            return;
-        }
-
-        if ($catalogue->has($id, $domain)) {
-            $this->logger->debug('Translation use fallback catalogue.', array('id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()));
-        } else {
-            $this->logger->warning('Translation not found.', array('id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()));
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/MessageCatalogue.php b/core/vendor/symfony/translation/MessageCatalogue.php
deleted file mode 100644
index aa92a58..0000000
--- a/core/vendor/symfony/translation/MessageCatalogue.php
+++ /dev/null
@@ -1,293 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-
-/**
- * MessageCatalogue.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterface
-{
-    private $messages = array();
-    private $metadata = array();
-    private $resources = array();
-    private $locale;
-    private $fallbackCatalogue;
-    private $parent;
-
-    /**
-     * Constructor.
-     *
-     * @param string $locale   The locale
-     * @param array  $messages An array of messages classified by domain
-     *
-     * @api
-     */
-    public function __construct($locale, array $messages = array())
-    {
-        $this->locale = $locale;
-        $this->messages = $messages;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getLocale()
-    {
-        return $this->locale;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getDomains()
-    {
-        return array_keys($this->messages);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function all($domain = null)
-    {
-        if (null === $domain) {
-            return $this->messages;
-        }
-
-        return isset($this->messages[$domain]) ? $this->messages[$domain] : array();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function set($id, $translation, $domain = 'messages')
-    {
-        $this->add(array($id => $translation), $domain);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function has($id, $domain = 'messages')
-    {
-        if (isset($this->messages[$domain][$id])) {
-            return true;
-        }
-
-        if (null !== $this->fallbackCatalogue) {
-            return $this->fallbackCatalogue->has($id, $domain);
-        }
-
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function defines($id, $domain = 'messages')
-    {
-        return isset($this->messages[$domain][$id]);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function get($id, $domain = 'messages')
-    {
-        if (isset($this->messages[$domain][$id])) {
-            return $this->messages[$domain][$id];
-        }
-
-        if (null !== $this->fallbackCatalogue) {
-            return $this->fallbackCatalogue->get($id, $domain);
-        }
-
-        return $id;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function replace($messages, $domain = 'messages')
-    {
-        $this->messages[$domain] = array();
-
-        $this->add($messages, $domain);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function add($messages, $domain = 'messages')
-    {
-        if (!isset($this->messages[$domain])) {
-            $this->messages[$domain] = $messages;
-        } else {
-            $this->messages[$domain] = array_replace($this->messages[$domain], $messages);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function addCatalogue(MessageCatalogueInterface $catalogue)
-    {
-        if ($catalogue->getLocale() !== $this->locale) {
-            throw new \LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s"', $catalogue->getLocale(), $this->locale));
-        }
-
-        foreach ($catalogue->all() as $domain => $messages) {
-            $this->add($messages, $domain);
-        }
-
-        foreach ($catalogue->getResources() as $resource) {
-            $this->addResource($resource);
-        }
-
-        if ($catalogue instanceof MetadataAwareInterface) {
-            $metadata = $catalogue->getMetadata('', '');
-            $this->addMetadata($metadata);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function addFallbackCatalogue(MessageCatalogueInterface $catalogue)
-    {
-        // detect circular references
-        $c = $this;
-        do {
-            if ($c->getLocale() === $catalogue->getLocale()) {
-                throw new \LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
-            }
-        } while ($c = $c->parent);
-
-        $catalogue->parent = $this;
-        $this->fallbackCatalogue = $catalogue;
-
-        foreach ($catalogue->getResources() as $resource) {
-            $this->addResource($resource);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getFallbackCatalogue()
-    {
-        return $this->fallbackCatalogue;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getResources()
-    {
-        return array_values($this->resources);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function addResource(ResourceInterface $resource)
-    {
-        $this->resources[$resource->__toString()] = $resource;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadata($key = '', $domain = 'messages')
-    {
-        if ('' == $domain) {
-            return $this->metadata;
-        }
-
-        if (isset($this->metadata[$domain])) {
-            if ('' == $key) {
-                return $this->metadata[$domain];
-            }
-
-            if (isset($this->metadata[$domain][$key])) {
-                return $this->metadata[$domain][$key];
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setMetadata($key, $value, $domain = 'messages')
-    {
-        $this->metadata[$domain][$key] = $value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function deleteMetadata($key = '', $domain = 'messages')
-    {
-        if ('' == $domain) {
-            $this->metadata = array();
-        } elseif ('' == $key) {
-            unset($this->metadata[$domain]);
-        } else {
-            unset($this->metadata[$domain][$key]);
-        }
-    }
-
-    /**
-     * Adds current values with the new values.
-     *
-     * @param array $values Values to add
-     */
-    private function addMetadata(array $values)
-    {
-        foreach ($values as $domain => $keys) {
-            foreach ($keys as $key => $value) {
-                $this->setMetadata($key, $value, $domain);
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/MessageCatalogueInterface.php b/core/vendor/symfony/translation/MessageCatalogueInterface.php
deleted file mode 100644
index 647e337..0000000
--- a/core/vendor/symfony/translation/MessageCatalogueInterface.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-
-/**
- * MessageCatalogueInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface MessageCatalogueInterface
-{
-    /**
-     * Gets the catalogue locale.
-     *
-     * @return string The locale
-     *
-     * @api
-     */
-    public function getLocale();
-
-    /**
-     * Gets the domains.
-     *
-     * @return array An array of domains
-     *
-     * @api
-     */
-    public function getDomains();
-
-    /**
-     * Gets the messages within a given domain.
-     *
-     * If $domain is null, it returns all messages.
-     *
-     * @param string $domain The domain name
-     *
-     * @return array An array of messages
-     *
-     * @api
-     */
-    public function all($domain = null);
-
-    /**
-     * Sets a message translation.
-     *
-     * @param string $id          The message id
-     * @param string $translation The messages translation
-     * @param string $domain      The domain name
-     *
-     * @api
-     */
-    public function set($id, $translation, $domain = 'messages');
-
-    /**
-     * Checks if a message has a translation.
-     *
-     * @param string $id     The message id
-     * @param string $domain The domain name
-     *
-     * @return bool true if the message has a translation, false otherwise
-     *
-     * @api
-     */
-    public function has($id, $domain = 'messages');
-
-    /**
-     * Checks if a message has a translation (it does not take into account the fallback mechanism).
-     *
-     * @param string $id     The message id
-     * @param string $domain The domain name
-     *
-     * @return bool true if the message has a translation, false otherwise
-     *
-     * @api
-     */
-    public function defines($id, $domain = 'messages');
-
-    /**
-     * Gets a message translation.
-     *
-     * @param string $id     The message id
-     * @param string $domain The domain name
-     *
-     * @return string The message translation
-     *
-     * @api
-     */
-    public function get($id, $domain = 'messages');
-
-    /**
-     * Sets translations for a given domain.
-     *
-     * @param array  $messages An array of translations
-     * @param string $domain   The domain name
-     *
-     * @api
-     */
-    public function replace($messages, $domain = 'messages');
-
-    /**
-     * Adds translations for a given domain.
-     *
-     * @param array  $messages An array of translations
-     * @param string $domain   The domain name
-     *
-     * @api
-     */
-    public function add($messages, $domain = 'messages');
-
-    /**
-     * Merges translations from the given Catalogue into the current one.
-     *
-     * The two catalogues must have the same locale.
-     *
-     * @param MessageCatalogueInterface $catalogue A MessageCatalogueInterface instance
-     *
-     * @api
-     */
-    public function addCatalogue(MessageCatalogueInterface $catalogue);
-
-    /**
-     * Merges translations from the given Catalogue into the current one
-     * only when the translation does not exist.
-     *
-     * This is used to provide default translations when they do not exist for the current locale.
-     *
-     * @param MessageCatalogueInterface $catalogue A MessageCatalogueInterface instance
-     *
-     * @api
-     */
-    public function addFallbackCatalogue(MessageCatalogueInterface $catalogue);
-
-    /**
-     * Gets the fallback catalogue.
-     *
-     * @return MessageCatalogueInterface|null A MessageCatalogueInterface instance or null when no fallback has been set
-     *
-     * @api
-     */
-    public function getFallbackCatalogue();
-
-    /**
-     * Returns an array of resources loaded to build this collection.
-     *
-     * @return ResourceInterface[] An array of resources
-     *
-     * @api
-     */
-    public function getResources();
-
-    /**
-     * Adds a resource for this collection.
-     *
-     * @param ResourceInterface $resource A resource instance
-     *
-     * @api
-     */
-    public function addResource(ResourceInterface $resource);
-}
diff --git a/core/vendor/symfony/translation/MessageSelector.php b/core/vendor/symfony/translation/MessageSelector.php
deleted file mode 100644
index f7fde31..0000000
--- a/core/vendor/symfony/translation/MessageSelector.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * MessageSelector.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class MessageSelector
-{
-    /**
-     * Given a message with different plural translations separated by a
-     * pipe (|), this method returns the correct portion of the message based
-     * on the given number, locale and the pluralization rules in the message
-     * itself.
-     *
-     * The message supports two different types of pluralization rules:
-     *
-     * interval: {0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples
-     * indexed:  There is one apple|There are %count% apples
-     *
-     * The indexed solution can also contain labels (e.g. one: There is one apple).
-     * This is purely for making the translations more clear - it does not
-     * affect the functionality.
-     *
-     * The two methods can also be mixed:
-     *     {0} There are no apples|one: There is one apple|more: There are %count% apples
-     *
-     * @param string $message The message being translated
-     * @param int    $number  The number of items represented for the message
-     * @param string $locale  The locale to use for choosing
-     *
-     * @return string
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @api
-     */
-    public function choose($message, $number, $locale)
-    {
-        $parts = explode('|', $message);
-        $explicitRules = array();
-        $standardRules = array();
-        foreach ($parts as $part) {
-            $part = trim($part);
-
-            if (preg_match('/^(?P<interval>'.Interval::getIntervalRegexp().')\s*(?P<message>.*?)$/xs', $part, $matches)) {
-                $explicitRules[$matches['interval']] = $matches['message'];
-            } elseif (preg_match('/^\w+\:\s*(.*?)$/', $part, $matches)) {
-                $standardRules[] = $matches[1];
-            } else {
-                $standardRules[] = $part;
-            }
-        }
-
-        // try to match an explicit rule, then fallback to the standard ones
-        foreach ($explicitRules as $interval => $m) {
-            if (Interval::test($number, $interval)) {
-                return $m;
-            }
-        }
-
-        $position = PluralizationRules::get($number, $locale);
-
-        if (!isset($standardRules[$position])) {
-            // when there's exactly one rule given, and that rule is a standard
-            // rule, use this rule
-            if (1 === count($parts) && isset($standardRules[0])) {
-                return $standardRules[0];
-            }
-
-            throw new \InvalidArgumentException(sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $message, $locale, $number));
-        }
-
-        return $standardRules[$position];
-    }
-}
diff --git a/core/vendor/symfony/translation/MetadataAwareInterface.php b/core/vendor/symfony/translation/MetadataAwareInterface.php
deleted file mode 100644
index e93c6fb..0000000
--- a/core/vendor/symfony/translation/MetadataAwareInterface.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * MetadataAwareInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface MetadataAwareInterface
-{
-    /**
-     * Gets metadata for the given domain and key.
-     *
-     * Passing an empty domain will return an array with all metadata indexed by
-     * domain and then by key. Passing an empty key will return an array with all
-     * metadata for the given domain.
-     *
-     * @param string $key    The key
-     * @param string $domain The domain name
-     *
-     * @return mixed The value that was set or an array with the domains/keys or null
-     */
-    public function getMetadata($key = '', $domain = 'messages');
-
-    /**
-     * Adds metadata to a message domain.
-     *
-     * @param string $key    The key
-     * @param mixed  $value  The value
-     * @param string $domain The domain name
-     */
-    public function setMetadata($key, $value, $domain = 'messages');
-
-    /**
-     * Deletes metadata for the given key and domain.
-     *
-     * Passing an empty domain will delete all metadata. Passing an empty key will
-     * delete all metadata for the given domain.
-     *
-     * @param string $key    The key
-     * @param string $domain The domain name
-     */
-    public function deleteMetadata($key = '', $domain = 'messages');
-}
diff --git a/core/vendor/symfony/translation/PluralizationRules.php b/core/vendor/symfony/translation/PluralizationRules.php
deleted file mode 100644
index 3ef8f00..0000000
--- a/core/vendor/symfony/translation/PluralizationRules.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * Returns the plural rules for a given locale.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class PluralizationRules
-{
-    private static $rules = array();
-
-    /**
-     * Returns the plural position to use for the given locale and number.
-     *
-     * @param int    $number The number
-     * @param string $locale The locale
-     *
-     * @return int The plural position
-     */
-    public static function get($number, $locale)
-    {
-        if ('pt_BR' === $locale) {
-            // temporary set a locale for brazilian
-            $locale = 'xbr';
-        }
-
-        if (strlen($locale) > 3) {
-            $locale = substr($locale, 0, -strlen(strrchr($locale, '_')));
-        }
-
-        if (isset(self::$rules[$locale])) {
-            $return = call_user_func(self::$rules[$locale], $number);
-
-            if (!is_int($return) || $return < 0) {
-                return 0;
-            }
-
-            return $return;
-        }
-
-        /*
-         * The plural rules are derived from code of the Zend Framework (2010-09-25),
-         * which is subject to the new BSD license (http://framework.zend.com/license/new-bsd).
-         * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
-         */
-        switch ($locale) {
-            case 'az':
-            case 'bo':
-            case 'dz':
-            case 'id':
-            case 'ja':
-            case 'jv':
-            case 'ka':
-            case 'km':
-            case 'kn':
-            case 'ko':
-            case 'ms':
-            case 'th':
-            case 'tr':
-            case 'vi':
-            case 'zh':
-                return 0;
-                break;
-
-            case 'af':
-            case 'bn':
-            case 'bg':
-            case 'ca':
-            case 'da':
-            case 'de':
-            case 'el':
-            case 'en':
-            case 'eo':
-            case 'es':
-            case 'et':
-            case 'eu':
-            case 'fa':
-            case 'fi':
-            case 'fo':
-            case 'fur':
-            case 'fy':
-            case 'gl':
-            case 'gu':
-            case 'ha':
-            case 'he':
-            case 'hu':
-            case 'is':
-            case 'it':
-            case 'ku':
-            case 'lb':
-            case 'ml':
-            case 'mn':
-            case 'mr':
-            case 'nah':
-            case 'nb':
-            case 'ne':
-            case 'nl':
-            case 'nn':
-            case 'no':
-            case 'om':
-            case 'or':
-            case 'pa':
-            case 'pap':
-            case 'ps':
-            case 'pt':
-            case 'so':
-            case 'sq':
-            case 'sv':
-            case 'sw':
-            case 'ta':
-            case 'te':
-            case 'tk':
-            case 'ur':
-            case 'zu':
-                return ($number == 1) ? 0 : 1;
-
-            case 'am':
-            case 'bh':
-            case 'fil':
-            case 'fr':
-            case 'gun':
-            case 'hi':
-            case 'ln':
-            case 'mg':
-            case 'nso':
-            case 'xbr':
-            case 'ti':
-            case 'wa':
-                return (($number == 0) || ($number == 1)) ? 0 : 1;
-
-            case 'be':
-            case 'bs':
-            case 'hr':
-            case 'ru':
-            case 'sr':
-            case 'uk':
-                return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
-
-            case 'cs':
-            case 'sk':
-                return ($number == 1) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2);
-
-            case 'ga':
-                return ($number == 1) ? 0 : (($number == 2) ? 1 : 2);
-
-            case 'lt':
-                return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
-
-            case 'sl':
-                return ($number % 100 == 1) ? 0 : (($number % 100 == 2) ? 1 : ((($number % 100 == 3) || ($number % 100 == 4)) ? 2 : 3));
-
-            case 'mk':
-                return ($number % 10 == 1) ? 0 : 1;
-
-            case 'mt':
-                return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3));
-
-            case 'lv':
-                return ($number == 0) ? 0 : ((($number % 10 == 1) && ($number % 100 != 11)) ? 1 : 2);
-
-            case 'pl':
-                return ($number == 1) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2);
-
-            case 'cy':
-                return ($number == 1) ? 0 : (($number == 2) ? 1 : ((($number == 8) || ($number == 11)) ? 2 : 3));
-
-            case 'ro':
-                return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2);
-
-            case 'ar':
-                return ($number == 0) ? 0 : (($number == 1) ? 1 : (($number == 2) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5))));
-
-            default:
-                return 0;
-        }
-    }
-
-    /**
-     * Overrides the default plural rule for a given locale.
-     *
-     * @param string $rule   A PHP callable
-     * @param string $locale The locale
-     *
-     * @throws \LogicException
-     */
-    public static function set($rule, $locale)
-    {
-        if ('pt_BR' === $locale) {
-            // temporary set a locale for brazilian
-            $locale = 'xbr';
-        }
-
-        if (strlen($locale) > 3) {
-            $locale = substr($locale, 0, -strlen(strrchr($locale, '_')));
-        }
-
-        if (!is_callable($rule)) {
-            throw new \LogicException('The given rule can not be called');
-        }
-
-        self::$rules[$locale] = $rule;
-    }
-}
diff --git a/core/vendor/symfony/translation/README.md b/core/vendor/symfony/translation/README.md
deleted file mode 100644
index 2b00862..0000000
--- a/core/vendor/symfony/translation/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-Translation Component
-=====================
-
-Translation provides tools for loading translation files and generating
-translated strings from these including support for pluralization.
-
-```php
-use Symfony\Component\Translation\Translator;
-use Symfony\Component\Translation\MessageSelector;
-use Symfony\Component\Translation\Loader\ArrayLoader;
-
-$translator = new Translator('fr_FR', new MessageSelector());
-$translator->setFallbackLocales(array('fr'));
-$translator->addLoader('array', new ArrayLoader());
-$translator->addResource('array', array(
-    'Hello World!' => 'Bonjour',
-), 'fr');
-
-echo $translator->trans('Hello World!')."\n";
-```
-
-Resources
----------
-
-Silex integration:
-
-https://github.com/fabpot/Silex/blob/master/src/Silex/Provider/TranslationServiceProvider.php
-
-Documentation:
-
-https://symfony.com/doc/2.7/book/translation.html
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Translation/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/translation/Tests/Catalogue/AbstractOperationTest.php b/core/vendor/symfony/translation/Tests/Catalogue/AbstractOperationTest.php
deleted file mode 100644
index 30c21af..0000000
--- a/core/vendor/symfony/translation/Tests/Catalogue/AbstractOperationTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Catalogue;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\MessageCatalogueInterface;
-
-abstract class AbstractOperationTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetEmptyDomains()
-    {
-        $this->assertEquals(
-            array(),
-            $this->createOperation(
-                new MessageCatalogue('en'),
-                new MessageCatalogue('en')
-            )->getDomains()
-        );
-    }
-
-    public function testGetMergedDomains()
-    {
-        $this->assertEquals(
-            array('a', 'b', 'c'),
-            $this->createOperation(
-                new MessageCatalogue('en', array('a' => array(), 'b' => array())),
-                new MessageCatalogue('en', array('b' => array(), 'c' => array()))
-            )->getDomains()
-        );
-    }
-
-    public function testGetMessagesFromUnknownDomain()
-    {
-        $this->setExpectedException('InvalidArgumentException');
-        $this->createOperation(
-            new MessageCatalogue('en'),
-            new MessageCatalogue('en')
-        )->getMessages('domain');
-    }
-
-    public function testGetEmptyMessages()
-    {
-        $this->assertEquals(
-            array(),
-            $this->createOperation(
-                new MessageCatalogue('en', array('a' => array())),
-                new MessageCatalogue('en')
-            )->getMessages('a')
-        );
-    }
-
-    public function testGetEmptyResult()
-    {
-        $this->assertEquals(
-            new MessageCatalogue('en'),
-            $this->createOperation(
-                new MessageCatalogue('en'),
-                new MessageCatalogue('en')
-            )->getResult()
-        );
-    }
-
-    abstract protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target);
-}
diff --git a/core/vendor/symfony/translation/Tests/Catalogue/DiffOperationTest.php b/core/vendor/symfony/translation/Tests/Catalogue/DiffOperationTest.php
deleted file mode 100644
index 26bd582..0000000
--- a/core/vendor/symfony/translation/Tests/Catalogue/DiffOperationTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Catalogue;
-
-use Symfony\Component\Translation\Catalogue\DiffOperation;
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\MessageCatalogueInterface;
-
-class DiffOperationTest extends AbstractOperationTest
-{
-    public function testGetMessagesFromSingleDomain()
-    {
-        $operation = $this->createOperation(
-            new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b'))),
-            new MessageCatalogue('en', array('messages' => array('a' => 'new_a', 'c' => 'new_c')))
-        );
-
-        $this->assertEquals(
-            array('a' => 'old_a', 'c' => 'new_c'),
-            $operation->getMessages('messages')
-        );
-
-        $this->assertEquals(
-            array('c' => 'new_c'),
-            $operation->getNewMessages('messages')
-        );
-
-        $this->assertEquals(
-            array('b' => 'old_b'),
-            $operation->getObsoleteMessages('messages')
-        );
-    }
-
-    public function testGetResultFromSingleDomain()
-    {
-        $this->assertEquals(
-            new MessageCatalogue('en', array(
-                'messages' => array('a' => 'old_a', 'c' => 'new_c'),
-            )),
-            $this->createOperation(
-                new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b'))),
-                new MessageCatalogue('en', array('messages' => array('a' => 'new_a', 'c' => 'new_c')))
-            )->getResult()
-        );
-    }
-
-    public function testGetResultWithMetadata()
-    {
-        $leftCatalogue = new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b')));
-        $leftCatalogue->setMetadata('a', 'foo', 'messages');
-        $leftCatalogue->setMetadata('b', 'bar', 'messages');
-        $rightCatalogue = new MessageCatalogue('en', array('messages' => array('b' => 'new_b', 'c' => 'new_c')));
-        $rightCatalogue->setMetadata('b', 'baz', 'messages');
-        $rightCatalogue->setMetadata('c', 'qux', 'messages');
-
-        $diffCatalogue = new MessageCatalogue('en', array('messages' => array('b' => 'old_b', 'c' => 'new_c')));
-        $diffCatalogue->setMetadata('b', 'bar', 'messages');
-        $diffCatalogue->setMetadata('c', 'qux', 'messages');
-
-        $this->assertEquals(
-            $diffCatalogue,
-            $this->createOperation(
-                $leftCatalogue,
-                $rightCatalogue
-            )->getResult()
-        );
-    }
-
-    protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
-    {
-        return new DiffOperation($source, $target);
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Catalogue/MergeOperationTest.php b/core/vendor/symfony/translation/Tests/Catalogue/MergeOperationTest.php
deleted file mode 100644
index 8b51c15..0000000
--- a/core/vendor/symfony/translation/Tests/Catalogue/MergeOperationTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Catalogue;
-
-use Symfony\Component\Translation\Catalogue\MergeOperation;
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\MessageCatalogueInterface;
-
-class MergeOperationTest extends AbstractOperationTest
-{
-    public function testGetMessagesFromSingleDomain()
-    {
-        $operation = $this->createOperation(
-            new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b'))),
-            new MessageCatalogue('en', array('messages' => array('a' => 'new_a', 'c' => 'new_c')))
-        );
-
-        $this->assertEquals(
-            array('a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c'),
-            $operation->getMessages('messages')
-        );
-
-        $this->assertEquals(
-            array('c' => 'new_c'),
-            $operation->getNewMessages('messages')
-        );
-
-        $this->assertEquals(
-            array(),
-            $operation->getObsoleteMessages('messages')
-        );
-    }
-
-    public function testGetResultFromSingleDomain()
-    {
-        $this->assertEquals(
-            new MessageCatalogue('en', array(
-                'messages' => array('a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c'),
-            )),
-            $this->createOperation(
-                new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b'))),
-                new MessageCatalogue('en', array('messages' => array('a' => 'new_a', 'c' => 'new_c')))
-            )->getResult()
-        );
-    }
-
-    public function testGetResultWithMetadata()
-    {
-        $leftCatalogue = new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b')));
-        $leftCatalogue->setMetadata('a', 'foo', 'messages');
-        $leftCatalogue->setMetadata('b', 'bar', 'messages');
-        $rightCatalogue = new MessageCatalogue('en', array('messages' => array('b' => 'new_b', 'c' => 'new_c')));
-        $rightCatalogue->setMetadata('b', 'baz', 'messages');
-        $rightCatalogue->setMetadata('c', 'qux', 'messages');
-
-        $mergedCatalogue = new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c')));
-        $mergedCatalogue->setMetadata('a', 'foo', 'messages');
-        $mergedCatalogue->setMetadata('b', 'bar', 'messages');
-        $mergedCatalogue->setMetadata('c', 'qux', 'messages');
-
-        $this->assertEquals(
-            $mergedCatalogue,
-            $this->createOperation(
-                $leftCatalogue,
-                $rightCatalogue
-            )->getResult()
-        );
-    }
-
-    protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
-    {
-        return new MergeOperation($source, $target);
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/DataCollector/TranslationDataCollectorTest.php b/core/vendor/symfony/translation/Tests/DataCollector/TranslationDataCollectorTest.php
deleted file mode 100644
index 085d312..0000000
--- a/core/vendor/symfony/translation/Tests/DataCollector/TranslationDataCollectorTest.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\DataCollector;
-
-use Symfony\Component\Translation\DataCollectorTranslator;
-use Symfony\Component\Translation\DataCollector\TranslationDataCollector;
-
-class TranslationDataCollectorTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('Symfony\Component\HttpKernel\DataCollector\DataCollector')) {
-            $this->markTestSkipped('The "DataCollector" is not available');
-        }
-    }
-
-    public function testCollectEmptyMessages()
-    {
-        $translator = $this->getTranslator();
-        $translator->expects($this->any())->method('getCollectedMessages')->will($this->returnValue(array()));
-
-        $dataCollector = new TranslationDataCollector($translator);
-        $dataCollector->lateCollect();
-
-        $this->assertEquals(0, $dataCollector->getCountMissings());
-        $this->assertEquals(0, $dataCollector->getCountFallbacks());
-        $this->assertEquals(0, $dataCollector->getCountDefines());
-        $this->assertEquals(array(), $dataCollector->getMessages());
-    }
-
-    public function testCollect()
-    {
-        $collectedMessages = array(
-            array(
-                  'id' => 'foo',
-                  'translation' => 'foo (en)',
-                  'locale' => 'en',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_DEFINED,
-            ),
-            array(
-                  'id' => 'bar',
-                  'translation' => 'bar (fr)',
-                  'locale' => 'fr',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
-            ),
-            array(
-                  'id' => 'choice',
-                  'translation' => 'choice',
-                  'locale' => 'en',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_MISSING,
-            ),
-            array(
-                  'id' => 'choice',
-                  'translation' => 'choice',
-                  'locale' => 'en',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_MISSING,
-            ),
-        );
-        $expectedMessages = array(
-            array(
-                  'id' => 'foo',
-                  'translation' => 'foo (en)',
-                  'locale' => 'en',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_DEFINED,
-                  'count' => 1,
-            ),
-            array(
-                  'id' => 'bar',
-                  'translation' => 'bar (fr)',
-                  'locale' => 'fr',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
-                  'count' => 1,
-            ),
-            array(
-                  'id' => 'choice',
-                  'translation' => 'choice',
-                  'locale' => 'en',
-                  'domain' => 'messages',
-                  'state' => DataCollectorTranslator::MESSAGE_MISSING,
-                  'count' => 2,
-            ),
-        );
-
-        $translator = $this->getTranslator();
-        $translator->expects($this->any())->method('getCollectedMessages')->will($this->returnValue($collectedMessages));
-
-        $dataCollector = new TranslationDataCollector($translator);
-        $dataCollector->lateCollect();
-
-        $this->assertEquals(1, $dataCollector->getCountMissings());
-        $this->assertEquals(1, $dataCollector->getCountFallbacks());
-        $this->assertEquals(1, $dataCollector->getCountDefines());
-        $this->assertEquals($expectedMessages, array_values($dataCollector->getMessages()));
-    }
-
-    private function getTranslator()
-    {
-        $translator = $this
-            ->getMockBuilder('Symfony\Component\Translation\DataCollectorTranslator')
-            ->disableOriginalConstructor()
-            ->getMock()
-        ;
-
-        return $translator;
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/DataCollectorTranslatorTest.php b/core/vendor/symfony/translation/Tests/DataCollectorTranslatorTest.php
deleted file mode 100644
index 8e98ad3..0000000
--- a/core/vendor/symfony/translation/Tests/DataCollectorTranslatorTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\Translator;
-use Symfony\Component\Translation\DataCollectorTranslator;
-use Symfony\Component\Translation\Loader\ArrayLoader;
-
-class DataCollectorTranslatorTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('Symfony\Component\HttpKernel\DataCollector\DataCollector')) {
-            $this->markTestSkipped('The "DataCollector" is not available');
-        }
-    }
-    public function testCollectMessages()
-    {
-        $collector = $this->createCollector();
-        $collector->setFallbackLocales(array('fr', 'ru'));
-
-        $collector->trans('foo');
-        $collector->trans('bar');
-        $collector->transChoice('choice', 0);
-        $collector->trans('bar_ru');
-
-        $expectedMessages = array();
-        $expectedMessages[] = array(
-              'id' => 'foo',
-              'translation' => 'foo (en)',
-              'locale' => 'en',
-              'domain' => 'messages',
-              'state' => DataCollectorTranslator::MESSAGE_DEFINED,
-        );
-        $expectedMessages[] = array(
-              'id' => 'bar',
-              'translation' => 'bar (fr)',
-              'locale' => 'fr',
-              'domain' => 'messages',
-              'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
-        );
-        $expectedMessages[] = array(
-              'id' => 'choice',
-              'translation' => 'choice',
-              'locale' => 'en',
-              'domain' => 'messages',
-              'state' => DataCollectorTranslator::MESSAGE_MISSING,
-        );
-        $expectedMessages[] = array(
-              'id' => 'bar_ru',
-              'translation' => 'bar (ru)',
-              'locale' => 'ru',
-              'domain' => 'messages',
-              'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
-        );
-
-        $this->assertEquals($expectedMessages, $collector->getCollectedMessages());
-    }
-
-    private function createCollector()
-    {
-        $translator = new Translator('en');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (en)'), 'en');
-        $translator->addResource('array', array('bar' => 'bar (fr)'), 'fr');
-        $translator->addResource('array', array('bar_ru' => 'bar (ru)'), 'ru');
-
-        $collector = new DataCollectorTranslator($translator);
-
-        return $collector;
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/CsvFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/CsvFileDumperTest.php
deleted file mode 100644
index 29177ff..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/CsvFileDumperTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\CsvFileDumper;
-
-class CsvFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar', 'bar' => 'foo
-foo', 'foo;foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new CsvFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/valid.csv'), file_get_contents($tempDir.'/messages.en.csv'));
-
-        unlink($tempDir.'/messages.en.csv');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/FileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/FileDumperTest.php
deleted file mode 100644
index 9682089..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/FileDumperTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\FileDumper;
-
-class FileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDumpBackupsFileIfExisting()
-    {
-        $tempDir = sys_get_temp_dir();
-        $file = $tempDir.'/messages.en.concrete';
-        $backupFile = $file.'~';
-
-        @touch($file);
-
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $dumper = new ConcreteFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertTrue(file_exists($backupFile));
-
-        @unlink($file);
-        @unlink($backupFile);
-    }
-
-    public function testDumpCreatesNestedDirectoriesAndFile()
-    {
-        $tempDir = sys_get_temp_dir();
-        $translationsDir = $tempDir.'/test/translations';
-        $file = $translationsDir.'/messages.en.concrete';
-
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $dumper = new ConcreteFileDumper();
-        $dumper->setRelativePathTemplate('test/translations/%domain%.%locale%.%extension%');
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertTrue(file_exists($file));
-
-        @unlink($file);
-        @rmdir($translationsDir);
-    }
-}
-
-class ConcreteFileDumper extends FileDumper
-{
-    protected function format(MessageCatalogue $messages, $domain)
-    {
-        return '';
-    }
-
-    protected function getExtension()
-    {
-        return 'concrete';
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/IcuResFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/IcuResFileDumperTest.php
deleted file mode 100644
index 7be7dfb..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/IcuResFileDumperTest.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\IcuResFileDumper;
-
-class IcuResFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        if (!function_exists('mb_convert_encoding')) {
-            $this->markTestSkipped('This test requires mbstring to work.');
-        }
-
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir().'/IcuResFileDumperTest';
-        $dumper = new IcuResFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resourcebundle/res/en.res'), file_get_contents($tempDir.'/messages/en.res'));
-
-        @unlink($tempDir.'/messages/en.res');
-        @rmdir($tempDir.'/messages');
-        @rmdir($tempDir);
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/IniFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/IniFileDumperTest.php
deleted file mode 100644
index 2a2cefd..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/IniFileDumperTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\IniFileDumper;
-
-class IniFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new IniFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.ini'), file_get_contents($tempDir.'/messages.en.ini'));
-
-        unlink($tempDir.'/messages.en.ini');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/JsonFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/JsonFileDumperTest.php
deleted file mode 100644
index 697cd93..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/JsonFileDumperTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\JsonFileDumper;
-
-class JsonFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestIncomplete('PHP below 5.4 doesn\'t support JSON pretty printing');
-        }
-
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new JsonFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.json'), file_get_contents($tempDir.'/messages.en.json'));
-
-        unlink($tempDir.'/messages.en.json');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/MoFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/MoFileDumperTest.php
deleted file mode 100644
index 439a25c..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/MoFileDumperTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\MoFileDumper;
-
-class MoFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new MoFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.mo'), file_get_contents($tempDir.'/messages.en.mo'));
-
-        unlink($tempDir.'/messages.en.mo');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/PhpFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/PhpFileDumperTest.php
deleted file mode 100644
index 18be5a0..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/PhpFileDumperTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\PhpFileDumper;
-
-class PhpFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new PhpFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.php'), file_get_contents($tempDir.'/messages.en.php'));
-
-        unlink($tempDir.'/messages.en.php');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php
deleted file mode 100644
index 0296d6b..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\PoFileDumper;
-
-class PoFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new PoFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.po'), file_get_contents($tempDir.'/messages.en.po'));
-
-        unlink($tempDir.'/messages.en.po');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/QtFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/QtFileDumperTest.php
deleted file mode 100644
index d7d8fb7..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/QtFileDumperTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\QtFileDumper;
-
-class QtFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'), 'resources');
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new QtFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.ts'), file_get_contents($tempDir.'/resources.en.ts'));
-
-        unlink($tempDir.'/resources.en.ts');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/XliffFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/XliffFileDumperTest.php
deleted file mode 100644
index dff2cc4..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/XliffFileDumperTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\XliffFileDumper;
-
-class XliffFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en_US');
-        $catalogue->add(array(
-            'foo' => 'bar',
-            'key' => '',
-            'key.with.cdata' => '<source> & <target>',
-        ));
-        $catalogue->setMetadata('foo', array('notes' => array(array('priority' => 1, 'from' => 'bar', 'content' => 'baz'))));
-        $catalogue->setMetadata('key', array('notes' => array(array('content' => 'baz'), array('content' => 'qux'))));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new XliffFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir, 'default_locale' => 'fr_FR'));
-
-        $this->assertEquals(
-            file_get_contents(__DIR__.'/../fixtures/resources-clean.xlf'),
-            file_get_contents($tempDir.'/messages.en_US.xlf')
-        );
-
-        unlink($tempDir.'/messages.en_US.xlf');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php b/core/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php
deleted file mode 100644
index 3c68ade..0000000
--- a/core/vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Dumper;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\YamlFileDumper;
-
-class YamlFileDumperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDump()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->add(array('foo' => 'bar'));
-
-        $tempDir = sys_get_temp_dir();
-        $dumper = new YamlFileDumper();
-        $dumper->dump($catalogue, array('path' => $tempDir));
-
-        $this->assertEquals(file_get_contents(__DIR__.'/../fixtures/resources.yml'), file_get_contents($tempDir.'/messages.en.yml'));
-
-        unlink($tempDir.'/messages.en.yml');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/IdentityTranslatorTest.php b/core/vendor/symfony/translation/Tests/IdentityTranslatorTest.php
deleted file mode 100644
index 352dd31..0000000
--- a/core/vendor/symfony/translation/Tests/IdentityTranslatorTest.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Translation\IdentityTranslator;
-
-class IdentityTranslatorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getTransTests
-     */
-    public function testTrans($expected, $id, $parameters)
-    {
-        $translator = new IdentityTranslator();
-
-        $this->assertEquals($expected, $translator->trans($id, $parameters));
-    }
-
-    /**
-     * @dataProvider getTransChoiceTests
-     */
-    public function testTransChoiceWithExplicitLocale($expected, $id, $number, $parameters)
-    {
-        $translator = new IdentityTranslator();
-        $translator->setLocale('en');
-
-        $this->assertEquals($expected, $translator->transChoice($id, $number, $parameters));
-    }
-
-    /**
-     * @dataProvider getTransChoiceTests
-     */
-    public function testTransChoiceWithDefaultLocale($expected, $id, $number, $parameters)
-    {
-        \Locale::setDefault('en');
-
-        $translator = new IdentityTranslator();
-
-        $this->assertEquals($expected, $translator->transChoice($id, $number, $parameters));
-    }
-
-    public function testGetSetLocale()
-    {
-        $translator = new IdentityTranslator();
-        $translator->setLocale('en');
-
-        $this->assertEquals('en', $translator->getLocale());
-    }
-
-    public function testGetLocaleReturnsDefaultLocaleIfNotSet()
-    {
-        // in order to test with "pt_BR"
-        IntlTestHelper::requireFullIntl($this);
-
-        $translator = new IdentityTranslator();
-
-        \Locale::setDefault('en');
-        $this->assertEquals('en', $translator->getLocale());
-
-        \Locale::setDefault('pt_BR');
-        $this->assertEquals('pt_BR', $translator->getLocale());
-    }
-
-    public function getTransTests()
-    {
-        return array(
-            array('Symfony is great!', 'Symfony is great!', array()),
-            array('Symfony is awesome!', 'Symfony is %what%!', array('%what%' => 'awesome')),
-        );
-    }
-
-    public function getTransChoiceTests()
-    {
-        return array(
-            array('There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0, array('%count%' => 0)),
-            array('There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1, array('%count%' => 1)),
-            array('There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10, array('%count%' => 10)),
-            array('There are 0 apples', 'There is 1 apple|There are %count% apples', 0, array('%count%' => 0)),
-            array('There is 1 apple', 'There is 1 apple|There are %count% apples', 1, array('%count%' => 1)),
-            array('There are 10 apples', 'There is 1 apple|There are %count% apples', 10, array('%count%' => 10)),
-            // custom validation messages may be coded with a fixed value
-            array('There are 2 apples', 'There are 2 apples', 2, array('%count%' => 2)),
-        );
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/IntervalTest.php b/core/vendor/symfony/translation/Tests/IntervalTest.php
deleted file mode 100644
index 075c98b..0000000
--- a/core/vendor/symfony/translation/Tests/IntervalTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\Interval;
-
-class IntervalTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getTests
-     */
-    public function testTest($expected, $number, $interval)
-    {
-        $this->assertEquals($expected, Interval::test($number, $interval));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testTestException()
-    {
-        Interval::test(1, 'foobar');
-    }
-
-    public function getTests()
-    {
-        return array(
-            array(true, 3, '{1,2, 3 ,4}'),
-            array(false, 10, '{1,2, 3 ,4}'),
-            array(false, 3, '[1,2]'),
-            array(true, 1, '[1,2]'),
-            array(true, 2, '[1,2]'),
-            array(false, 1, ']1,2['),
-            array(false, 2, ']1,2['),
-            array(true, log(0), '[-Inf,2['),
-            array(true, -log(0), '[-2,+Inf]'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/CsvFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/CsvFileLoaderTest.php
deleted file mode 100644
index 463d3b5..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/CsvFileLoaderTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\CsvFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class CsvFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new CsvFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.csv';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadDoesNothingIfEmpty()
-    {
-        $loader = new CsvFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.csv';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array(), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new CsvFileLoader();
-        $resource = __DIR__.'/../fixtures/not-exists.csv';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadNonLocalResource()
-    {
-        $loader = new CsvFileLoader();
-        $resource = 'http://example.com/resources.csv';
-        $loader->load($resource, 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/IcuDatFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/IcuDatFileLoaderTest.php
deleted file mode 100644
index ea9643d..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/IcuDatFileLoaderTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\IcuDatFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class IcuDatFileLoaderTest extends LocalizedTestCase
-{
-    protected function setUp()
-    {
-        if (!extension_loaded('intl')) {
-            $this->markTestSkipped('This test requires intl extension to work.');
-        }
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadInvalidResource()
-    {
-        $loader = new IcuDatFileLoader();
-        $loader->load(__DIR__.'/../fixtures/resourcebundle/corrupted/resources', 'es', 'domain2');
-    }
-
-    public function testDatEnglishLoad()
-    {
-        // bundled resource is build using pkgdata command which at least in ICU 4.2 comes in extremely! buggy form
-        // you must specify an temporary build directory which is not the same as current directory and
-        // MUST reside on the same partition. pkgdata -p resources -T /srv -d.packagelist.txt
-        $loader = new IcuDatFileLoader();
-        $resource = __DIR__.'/../fixtures/resourcebundle/dat/resources';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('symfony' => 'Symfony 2 is great'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource.'.dat')), $catalogue->getResources());
-    }
-
-    public function testDatFrenchLoad()
-    {
-        $loader = new IcuDatFileLoader();
-        $resource = __DIR__.'/../fixtures/resourcebundle/dat/resources';
-        $catalogue = $loader->load($resource, 'fr', 'domain1');
-
-        $this->assertEquals(array('symfony' => 'Symfony 2 est génial'), $catalogue->all('domain1'));
-        $this->assertEquals('fr', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource.'.dat')), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new IcuDatFileLoader();
-        $loader->load(__DIR__.'/../fixtures/non-existing.txt', 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/IcuResFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/IcuResFileLoaderTest.php
deleted file mode 100644
index 1a935c0..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/IcuResFileLoaderTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\IcuResFileLoader;
-use Symfony\Component\Config\Resource\DirectoryResource;
-
-class IcuResFileLoaderTest extends LocalizedTestCase
-{
-    protected function setUp()
-    {
-        if (!extension_loaded('intl')) {
-            $this->markTestSkipped('This test requires intl extension to work.');
-        }
-    }
-
-    public function testLoad()
-    {
-        // resource is build using genrb command
-        $loader = new IcuResFileLoader();
-        $resource = __DIR__.'/../fixtures/resourcebundle/res';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new DirectoryResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new IcuResFileLoader();
-        $loader->load(__DIR__.'/../fixtures/non-existing.txt', 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadInvalidResource()
-    {
-        $loader = new IcuResFileLoader();
-        $loader->load(__DIR__.'/../fixtures/resourcebundle/corrupted', 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/IniFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/IniFileLoaderTest.php
deleted file mode 100644
index 1a5de0e..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/IniFileLoaderTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\IniFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class IniFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new IniFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.ini';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadDoesNothingIfEmpty()
-    {
-        $loader = new IniFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.ini';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array(), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new IniFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.ini';
-        $loader->load($resource, 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/JsonFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/JsonFileLoaderTest.php
deleted file mode 100644
index 6d4f353..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/JsonFileLoaderTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\JsonFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class JsonFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!class_exists('Symfony\Component\Config\Loader\Loader')) {
-            $this->markTestSkipped('The "Config" component is not available');
-        }
-    }
-
-    public function testLoad()
-    {
-        $loader = new JsonFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.json';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadDoesNothingIfEmpty()
-    {
-        $loader = new JsonFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.json';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array(), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new JsonFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.json';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException           \Symfony\Component\Translation\Exception\InvalidResourceException
-     * @expectedExceptionMessage    Error parsing JSON - Syntax error, malformed JSON
-     */
-    public function testParseException()
-    {
-        $loader = new JsonFileLoader();
-        $resource = __DIR__.'/../fixtures/malformed.json';
-        $loader->load($resource, 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/LocalizedTestCase.php b/core/vendor/symfony/translation/Tests/Loader/LocalizedTestCase.php
deleted file mode 100644
index 9d7c5d7..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/LocalizedTestCase.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-abstract class LocalizedTestCase extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!extension_loaded('intl')) {
-            $this->markTestSkipped('The "intl" extension is not available');
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/MoFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/MoFileLoaderTest.php
deleted file mode 100644
index 34078d0..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/MoFileLoaderTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\MoFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class MoFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new MoFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.mo';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadPlurals()
-    {
-        $loader = new MoFileLoader();
-        $resource = __DIR__.'/../fixtures/plurals.mo';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar', 'foos' => '{0} bar|{1} bars'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new MoFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.mo';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadInvalidResource()
-    {
-        $loader = new MoFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.mo';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    public function testLoadEmptyTranslation()
-    {
-        $loader = new MoFileLoader();
-        $resource = __DIR__.'/../fixtures/empty-translation.mo';
-        $catalogue = $loader->load($resource, 'en', 'message');
-
-        $this->assertEquals(array(), $catalogue->all('message'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/PhpFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/PhpFileLoaderTest.php
deleted file mode 100644
index 0816b0f..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/PhpFileLoaderTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\PhpFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class PhpFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new PhpFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.php';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new PhpFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.php';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadThrowsAnExceptionIfFileNotLocal()
-    {
-        $loader = new PhpFileLoader();
-        $resource = 'http://example.com/resources.php';
-        $loader->load($resource, 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php
deleted file mode 100644
index 87090eb..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\PoFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class PoFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.po';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadPlurals()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/plurals.po';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar', 'foos' => 'bar|bars'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadDoesNothingIfEmpty()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.po';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array(), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.po';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    public function testLoadEmptyTranslation()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/empty-translation.po';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => ''), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testEscapedId()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/escaped-id.po';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $messages = $catalogue->all('domain1');
-        $this->assertArrayHasKey('escaped "foo"', $messages);
-        $this->assertEquals('escaped "bar"', $messages['escaped "foo"']);
-    }
-
-    public function testEscapedIdPlurals()
-    {
-        $loader = new PoFileLoader();
-        $resource = __DIR__.'/../fixtures/escaped-id-plurals.po';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $messages = $catalogue->all('domain1');
-        $this->assertArrayHasKey('escaped "foo"', $messages);
-        $this->assertArrayHasKey('escaped "foos"', $messages);
-        $this->assertEquals('escaped "bar"', $messages['escaped "foo"']);
-        $this->assertEquals('escaped "bar"|escaped "bars"', $messages['escaped "foos"']);
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/QtFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/QtFileLoaderTest.php
deleted file mode 100644
index 3aca86a..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/QtFileLoaderTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\QtFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class QtFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new QtFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.ts';
-        $catalogue = $loader->load($resource, 'en', 'resources');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('resources'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new QtFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.ts';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadNonLocalResource()
-    {
-        $loader = new QtFileLoader();
-        $resource = 'http://domain1.com/resources.ts';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadInvalidResource()
-    {
-        $loader = new QtFileLoader();
-        $resource = __DIR__.'/../fixtures/invalid-xml-resources.xlf';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    public function testLoadEmptyResource()
-    {
-        $loader = new QtFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.xlf';
-        $this->setExpectedException('Symfony\Component\Translation\Exception\InvalidResourceException', sprintf('Unable to load "%s".', $resource));
-        $loader->load($resource, 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/XliffFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/XliffFileLoaderTest.php
deleted file mode 100644
index c3d65b4..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/XliffFileLoaderTest.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\XliffFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class XliffFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new XliffFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.xlf';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-        $this->assertSame(array(), libxml_get_errors());
-    }
-
-    public function testLoadWithInternalErrorsEnabled()
-    {
-        libxml_use_internal_errors(true);
-
-        $this->assertSame(array(), libxml_get_errors());
-
-        $loader = new XliffFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.xlf';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-        $this->assertSame(array(), libxml_get_errors());
-    }
-
-    public function testLoadWithResname()
-    {
-        $loader = new XliffFileLoader();
-        $catalogue = $loader->load(__DIR__.'/../fixtures/resname.xlf', 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'baz', 'baz' => 'foo'), $catalogue->all('domain1'));
-    }
-
-    public function testIncompleteResource()
-    {
-        $loader = new XliffFileLoader();
-        $catalogue = $loader->load(__DIR__.'/../fixtures/resources.xlf', 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar', 'key' => '', 'test' => 'with'), $catalogue->all('domain1'));
-        $this->assertFalse($catalogue->has('extra', 'domain1'));
-    }
-
-    public function testEncoding()
-    {
-        if (!function_exists('iconv') && !function_exists('mb_convert_encoding')) {
-            $this->markTestSkipped('The iconv and mbstring extensions are not available.');
-        }
-
-        $loader = new XliffFileLoader();
-        $catalogue = $loader->load(__DIR__.'/../fixtures/encoding.xlf', 'en', 'domain1');
-
-        $this->assertEquals(utf8_decode('föö'), $catalogue->get('bar', 'domain1'));
-        $this->assertEquals(utf8_decode('bär'), $catalogue->get('foo', 'domain1'));
-        $this->assertEquals(array('notes' => array(array('content' => utf8_decode('bäz')))), $catalogue->getMetadata('foo', 'domain1'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadInvalidResource()
-    {
-        $loader = new XliffFileLoader();
-        $loader->load(__DIR__.'/../fixtures/resources.php', 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadResourceDoesNotValidate()
-    {
-        $loader = new XliffFileLoader();
-        $loader->load(__DIR__.'/../fixtures/non-valid.xlf', 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new XliffFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.xlf';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadThrowsAnExceptionIfFileNotLocal()
-    {
-        $loader = new XliffFileLoader();
-        $resource = 'http://example.com/resources.xlf';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException        \Symfony\Component\Translation\Exception\InvalidResourceException
-     * @expectedExceptionMessage Document types are not allowed.
-     */
-    public function testDocTypeIsNotAllowed()
-    {
-        $loader = new XliffFileLoader();
-        $loader->load(__DIR__.'/../fixtures/withdoctype.xlf', 'en', 'domain1');
-    }
-
-    public function testParseEmptyFile()
-    {
-        $loader = new XliffFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.xlf';
-        $this->setExpectedException('Symfony\Component\Translation\Exception\InvalidResourceException', sprintf('Unable to load "%s":', $resource));
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    public function testLoadNotes()
-    {
-        $loader = new XliffFileLoader();
-        $catalogue = $loader->load(__DIR__.'/../fixtures/withnote.xlf', 'en', 'domain1');
-
-        $this->assertEquals(array('notes' => array(array('priority' => 1, 'content' => 'foo'))), $catalogue->getMetadata('foo', 'domain1'));
-        // message without target
-        $this->assertNull($catalogue->getMetadata('extra', 'domain1'));
-        $this->assertEquals(array('notes' => array(array('content' => 'baz'), array('priority' => 2, 'from' => 'bar', 'content' => 'qux'))), $catalogue->getMetadata('key', 'domain1'));
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/translation/Tests/Loader/YamlFileLoaderTest.php
deleted file mode 100644
index 00f7163..0000000
--- a/core/vendor/symfony/translation/Tests/Loader/YamlFileLoaderTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests\Loader;
-
-use Symfony\Component\Translation\Loader\YamlFileLoader;
-use Symfony\Component\Config\Resource\FileResource;
-
-class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoad()
-    {
-        $loader = new YamlFileLoader();
-        $resource = __DIR__.'/../fixtures/resources.yml';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    public function testLoadDoesNothingIfEmpty()
-    {
-        $loader = new YamlFileLoader();
-        $resource = __DIR__.'/../fixtures/empty.yml';
-        $catalogue = $loader->load($resource, 'en', 'domain1');
-
-        $this->assertEquals(array(), $catalogue->all('domain1'));
-        $this->assertEquals('en', $catalogue->getLocale());
-        $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testLoadNonExistingResource()
-    {
-        $loader = new YamlFileLoader();
-        $resource = __DIR__.'/../fixtures/non-existing.yml';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadThrowsAnExceptionIfFileNotLocal()
-    {
-        $loader = new YamlFileLoader();
-        $resource = 'http://example.com/resources.yml';
-        $loader->load($resource, 'en', 'domain1');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Translation\Exception\InvalidResourceException
-     */
-    public function testLoadThrowsAnExceptionIfNotAnArray()
-    {
-        $loader = new YamlFileLoader();
-        $resource = __DIR__.'/../fixtures/non-valid.yml';
-        $loader->load($resource, 'en', 'domain1');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/LoggingTranslatorTest.php b/core/vendor/symfony/translation/Tests/LoggingTranslatorTest.php
deleted file mode 100644
index ab98d72..0000000
--- a/core/vendor/symfony/translation/Tests/LoggingTranslatorTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\Translator;
-use Symfony\Component\Translation\LoggingTranslator;
-use Symfony\Component\Translation\Loader\ArrayLoader;
-
-class LoggingTranslatorTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!interface_exists('Psr\Log\LoggerInterface')) {
-            $this->markTestSkipped('The "LoggerInterface" is not available');
-        }
-    }
-
-    public function testTransWithNoTranslationIsLogged()
-    {
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $logger->expects($this->exactly(2))
-            ->method('warning')
-            ->with('Translation not found.')
-        ;
-
-        $translator = new Translator('ar');
-        $loggableTranslator = new LoggingTranslator($translator, $logger);
-        $loggableTranslator->transChoice('some_message2', 10, array('%count%' => 10));
-        $loggableTranslator->trans('bar');
-    }
-
-    public function testTransChoiceFallbackIsLogged()
-    {
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $logger->expects($this->once())
-            ->method('debug')
-            ->with('Translation use fallback catalogue.')
-        ;
-
-        $translator = new Translator('ar');
-        $translator->setFallbackLocales(array('en'));
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('some_message2' => 'one thing|%count% things'), 'en');
-        $loggableTranslator = new LoggingTranslator($translator, $logger);
-        $loggableTranslator->transChoice('some_message2', 10, array('%count%' => 10));
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/MessageCatalogueTest.php b/core/vendor/symfony/translation/Tests/MessageCatalogueTest.php
deleted file mode 100644
index 7d95655..0000000
--- a/core/vendor/symfony/translation/Tests/MessageCatalogueTest.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetLocale()
-    {
-        $catalogue = new MessageCatalogue('en');
-
-        $this->assertEquals('en', $catalogue->getLocale());
-    }
-
-    public function testGetDomains()
-    {
-        $catalogue = new MessageCatalogue('en', array('domain1' => array(), 'domain2' => array()));
-
-        $this->assertEquals(array('domain1', 'domain2'), $catalogue->getDomains());
-    }
-
-    public function testAll()
-    {
-        $catalogue = new MessageCatalogue('en', $messages = array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-
-        $this->assertEquals(array('foo' => 'foo'), $catalogue->all('domain1'));
-        $this->assertEquals(array(), $catalogue->all('domain88'));
-        $this->assertEquals($messages, $catalogue->all());
-    }
-
-    public function testHas()
-    {
-        $catalogue = new MessageCatalogue('en', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-
-        $this->assertTrue($catalogue->has('foo', 'domain1'));
-        $this->assertFalse($catalogue->has('bar', 'domain1'));
-        $this->assertFalse($catalogue->has('foo', 'domain88'));
-    }
-
-    public function testGetSet()
-    {
-        $catalogue = new MessageCatalogue('en', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-        $catalogue->set('foo1', 'foo1', 'domain1');
-
-        $this->assertEquals('foo', $catalogue->get('foo', 'domain1'));
-        $this->assertEquals('foo1', $catalogue->get('foo1', 'domain1'));
-    }
-
-    public function testAdd()
-    {
-        $catalogue = new MessageCatalogue('en', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-        $catalogue->add(array('foo1' => 'foo1'), 'domain1');
-
-        $this->assertEquals('foo', $catalogue->get('foo', 'domain1'));
-        $this->assertEquals('foo1', $catalogue->get('foo1', 'domain1'));
-
-        $catalogue->add(array('foo' => 'bar'), 'domain1');
-        $this->assertEquals('bar', $catalogue->get('foo', 'domain1'));
-        $this->assertEquals('foo1', $catalogue->get('foo1', 'domain1'));
-
-        $catalogue->add(array('foo' => 'bar'), 'domain88');
-        $this->assertEquals('bar', $catalogue->get('foo', 'domain88'));
-    }
-
-    public function testReplace()
-    {
-        $catalogue = new MessageCatalogue('en', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-        $catalogue->replace($messages = array('foo1' => 'foo1'), 'domain1');
-
-        $this->assertEquals($messages, $catalogue->all('domain1'));
-    }
-
-    public function testAddCatalogue()
-    {
-        $r = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $r->expects($this->any())->method('__toString')->will($this->returnValue('r'));
-
-        $r1 = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $r1->expects($this->any())->method('__toString')->will($this->returnValue('r1'));
-
-        $catalogue = new MessageCatalogue('en', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-        $catalogue->addResource($r);
-
-        $catalogue1 = new MessageCatalogue('en', array('domain1' => array('foo1' => 'foo1')));
-        $catalogue1->addResource($r1);
-
-        $catalogue->addCatalogue($catalogue1);
-
-        $this->assertEquals('foo', $catalogue->get('foo', 'domain1'));
-        $this->assertEquals('foo1', $catalogue->get('foo1', 'domain1'));
-
-        $this->assertEquals(array($r, $r1), $catalogue->getResources());
-    }
-
-    public function testAddFallbackCatalogue()
-    {
-        $r = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $r->expects($this->any())->method('__toString')->will($this->returnValue('r'));
-
-        $r1 = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $r1->expects($this->any())->method('__toString')->will($this->returnValue('r1'));
-
-        $catalogue = new MessageCatalogue('en_US', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
-        $catalogue->addResource($r);
-
-        $catalogue1 = new MessageCatalogue('en', array('domain1' => array('foo' => 'bar', 'foo1' => 'foo1')));
-        $catalogue1->addResource($r1);
-
-        $catalogue->addFallbackCatalogue($catalogue1);
-
-        $this->assertEquals('foo', $catalogue->get('foo', 'domain1'));
-        $this->assertEquals('foo1', $catalogue->get('foo1', 'domain1'));
-
-        $this->assertEquals(array($r, $r1), $catalogue->getResources());
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testAddFallbackCatalogueWithCircularReference()
-    {
-        $main = new MessageCatalogue('en_US');
-        $fallback = new MessageCatalogue('fr_FR');
-
-        $fallback->addFallbackCatalogue($main);
-        $main->addFallbackCatalogue($fallback);
-    }
-
-    /**
-     * @expectedException \LogicException
-     */
-    public function testAddCatalogueWhenLocaleIsNotTheSameAsTheCurrentOne()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->addCatalogue(new MessageCatalogue('fr', array()));
-    }
-
-    public function testGetAddResource()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $r = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $r->expects($this->any())->method('__toString')->will($this->returnValue('r'));
-        $catalogue->addResource($r);
-        $catalogue->addResource($r);
-        $r1 = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $r1->expects($this->any())->method('__toString')->will($this->returnValue('r1'));
-        $catalogue->addResource($r1);
-
-        $this->assertEquals(array($r, $r1), $catalogue->getResources());
-    }
-
-    public function testMetadataDelete()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $this->assertEquals(array(), $catalogue->getMetadata('', ''), 'Metadata is empty');
-        $catalogue->deleteMetadata('key', 'messages');
-        $catalogue->deleteMetadata('', 'messages');
-        $catalogue->deleteMetadata();
-    }
-
-    public function testMetadataSetGetDelete()
-    {
-        $catalogue = new MessageCatalogue('en');
-        $catalogue->setMetadata('key', 'value');
-        $this->assertEquals('value', $catalogue->getMetadata('key', 'messages'), "Metadata 'key' = 'value'");
-
-        $catalogue->setMetadata('key2', array());
-        $this->assertEquals(array(), $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 is array');
-
-        $catalogue->deleteMetadata('key2', 'messages');
-        $this->assertEquals(null, $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 should is deleted.');
-
-        $catalogue->deleteMetadata('key2', 'domain');
-        $this->assertEquals(null, $catalogue->getMetadata('key2', 'domain'), 'Metadata key2 should is deleted.');
-    }
-
-    public function testMetadataMerge()
-    {
-        $cat1 = new MessageCatalogue('en');
-        $cat1->setMetadata('a', 'b');
-        $this->assertEquals(array('messages' => array('a' => 'b')), $cat1->getMetadata('', ''), 'Cat1 contains messages metadata.');
-
-        $cat2 = new MessageCatalogue('en');
-        $cat2->setMetadata('b', 'c', 'domain');
-        $this->assertEquals(array('domain' => array('b' => 'c')), $cat2->getMetadata('', ''), 'Cat2 contains domain metadata.');
-
-        $cat1->addCatalogue($cat2);
-        $this->assertEquals(array('messages' => array('a' => 'b'), 'domain' => array('b' => 'c')), $cat1->getMetadata('', ''), 'Cat1 contains merged metadata.');
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/MessageSelectorTest.php b/core/vendor/symfony/translation/Tests/MessageSelectorTest.php
deleted file mode 100644
index f89bed1..0000000
--- a/core/vendor/symfony/translation/Tests/MessageSelectorTest.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\MessageSelector;
-
-class MessageSelectorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getChooseTests
-     */
-    public function testChoose($expected, $id, $number)
-    {
-        $selector = new MessageSelector();
-
-        $this->assertEquals($expected, $selector->choose($id, $number, 'en'));
-    }
-
-    public function testReturnMessageIfExactlyOneStandardRuleIsGiven()
-    {
-        $selector = new MessageSelector();
-
-        $this->assertEquals('There are two apples', $selector->choose('There are two apples', 2, 'en'));
-    }
-
-    /**
-     * @dataProvider getNonMatchingMessages
-     * @expectedException \InvalidArgumentException
-     */
-    public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number)
-    {
-        $selector = new MessageSelector();
-
-        $selector->choose($id, $number, 'en');
-    }
-
-    public function getNonMatchingMessages()
-    {
-        return array(
-            array('{0} There are no apples|{1} There is one apple', 2),
-            array('{1} There is one apple|]1,Inf] There are %count% apples', 0),
-            array('{1} There is one apple|]2,Inf] There are %count% apples', 2),
-            array('{0} There are no apples|There is one apple', 2),
-        );
-    }
-
-    public function getChooseTests()
-    {
-        return array(
-            array('There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0),
-            array('There are no apples', '{0}     There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0),
-            array('There are no apples', '{0}There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0),
-
-            array('There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1),
-
-            array('There are %count% apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10),
-            array('There are %count% apples', '{0} There are no apples|{1} There is one apple|]1,Inf]There are %count% apples', 10),
-            array('There are %count% apples', '{0} There are no apples|{1} There is one apple|]1,Inf]     There are %count% apples', 10),
-
-            array('There are %count% apples', 'There is one apple|There are %count% apples', 0),
-            array('There is one apple', 'There is one apple|There are %count% apples', 1),
-            array('There are %count% apples', 'There is one apple|There are %count% apples', 10),
-
-            array('There are %count% apples', 'one: There is one apple|more: There are %count% apples', 0),
-            array('There is one apple', 'one: There is one apple|more: There are %count% apples', 1),
-            array('There are %count% apples', 'one: There is one apple|more: There are %count% apples', 10),
-
-            array('There are no apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 0),
-            array('There is one apple', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 1),
-            array('There are %count% apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 10),
-
-            array('', '{0}|{1} There is one apple|]1,Inf] There are %count% apples', 0),
-            array('', '{0} There are no apples|{1}|]1,Inf] There are %count% apples', 1),
-
-            // Indexed only tests which are Gettext PoFile* compatible strings.
-            array('There are %count% apples', 'There is one apple|There are %count% apples', 0),
-            array('There is one apple', 'There is one apple|There are %count% apples', 1),
-            array('There are %count% apples', 'There is one apple|There are %count% apples', 2),
-
-            // Tests for float numbers
-            array('There is almost one apple', '{0} There are no apples|]0,1[ There is almost one apple|{1} There is one apple|[1,Inf] There is more than one apple', 0.7),
-            array('There is one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1),
-            array('There is more than one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1.7),
-            array('There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0),
-            array('There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0.0),
-            array('There are no apples', '{0.0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0),
-
-            // Test texts with new-lines
-            // with double-quotes and \n in id & double-quotes and actual newlines in text
-            array("This is a text with a\n            new-line in it. Selector = 0.", '{0}This is a text with a
-            new-line in it. Selector = 0.|{1}This is a text with a
-            new-line in it. Selector = 1.|[1,Inf]This is a text with a
-            new-line in it. Selector > 1.', 0),
-            // with double-quotes and \n in id and single-quotes and actual newlines in text
-            array("This is a text with a\n            new-line in it. Selector = 1.", '{0}This is a text with a
-            new-line in it. Selector = 0.|{1}This is a text with a
-            new-line in it. Selector = 1.|[1,Inf]This is a text with a
-            new-line in it. Selector > 1.', 1),
-            array("This is a text with a\n            new-line in it. Selector > 1.", '{0}This is a text with a
-            new-line in it. Selector = 0.|{1}This is a text with a
-            new-line in it. Selector = 1.|[1,Inf]This is a text with a
-            new-line in it. Selector > 1.', 5),
-            // with double-quotes and id split accros lines
-            array('This is a text with a
-            new-line in it. Selector = 1.', '{0}This is a text with a
-            new-line in it. Selector = 0.|{1}This is a text with a
-            new-line in it. Selector = 1.|[1,Inf]This is a text with a
-            new-line in it. Selector > 1.', 1),
-            // with single-quotes and id split accros lines
-            array('This is a text with a
-            new-line in it. Selector > 1.', '{0}This is a text with a
-            new-line in it. Selector = 0.|{1}This is a text with a
-            new-line in it. Selector = 1.|[1,Inf]This is a text with a
-            new-line in it. Selector > 1.', 5),
-            // with single-quotes and \n in text
-            array('This is a text with a\nnew-line in it. Selector = 0.', '{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.', 0),
-            // with double-quotes and id split accros lines
-            array("This is a text with a\nnew-line in it. Selector = 1.", "{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.", 1),
-        );
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/PluralizationRulesTest.php b/core/vendor/symfony/translation/Tests/PluralizationRulesTest.php
deleted file mode 100644
index 066e07f..0000000
--- a/core/vendor/symfony/translation/Tests/PluralizationRulesTest.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\PluralizationRules;
-
-/**
- * Test should cover all languages mentioned on http://translate.sourceforge.net/wiki/l10n/pluralforms
- * and Plural forms mentioned on http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms.
- *
- * See also https://developer.mozilla.org/en/Localization_and_Plurals which mentions 15 rules having a maximum of 6 forms.
- * The mozilla code is also interesting to check for.
- *
- * As mentioned by chx http://drupal.org/node/1273968 we can cover all by testing number from 0 to 199
- *
- * The goal to cover all languages is to far fetched so this test case is smaller.
- *
- * @author Clemens Tolboom clemens@build2be.nl
- */
-class PluralizationRulesTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * We test failed langcode here.
-     *
-     * TODO: The languages mentioned in the data provide need to get fixed somehow within PluralizationRules.
-     *
-     * @dataProvider failingLangcodes
-     */
-    public function testFailedLangcodes($nplural, $langCodes)
-    {
-        $matrix = $this->generateTestData($nplural, $langCodes);
-        $this->validateMatrix($nplural, $matrix, false);
-    }
-
-    /**
-     * @dataProvider successLangcodes
-     */
-    public function testLangcodes($nplural, $langCodes)
-    {
-        $matrix = $this->generateTestData($nplural, $langCodes);
-        $this->validateMatrix($nplural, $matrix);
-    }
-
-    /**
-     * This array should contain all currently known langcodes.
-     *
-     * As it is impossible to have this ever complete we should try as hard as possible to have it almost complete.
-     *
-     * @return array
-     */
-    public function successLangcodes()
-    {
-        return array(
-            array('1', array('ay','bo', 'cgg','dz','id', 'ja', 'jbo', 'ka','kk','km','ko','ky')),
-            array('2', array('nl', 'fr', 'en', 'de', 'de_GE')),
-            array('3', array('be','bs','cs','hr')),
-            array('4', array('cy','mt', 'sl')),
-            array('5', array()),
-            array('6', array('ar')),
-        );
-    }
-
-    /**
-     * This array should be at least empty within the near future.
-     *
-     * This both depends on a complete list trying to add above as understanding
-     * the plural rules of the current failing languages.
-     *
-     * @return array with nplural together with langcodes
-     */
-    public function failingLangcodes()
-    {
-        return array(
-            array('1', array('fa')),
-            array('2', array('jbo')),
-            array('3', array('cbs')),
-            array('4', array('gd','kw')),
-            array('5', array('ga')),
-            array('6', array()),
-        );
-    }
-
-    /**
-     * We validate only on the plural coverage. Thus the real rules is not tested.
-     *
-     * @param string $nplural       plural expected
-     * @param array  $matrix        containing langcodes and their plural index values.
-     * @param bool   $expectSuccess
-     */
-    protected function validateMatrix($nplural, $matrix, $expectSuccess = true)
-    {
-        foreach ($matrix as $langCode => $data) {
-            $indexes = array_flip($data);
-            if ($expectSuccess) {
-                $this->assertEquals($nplural, count($indexes), "Langcode '$langCode' has '$nplural' plural forms.");
-            } else {
-                $this->assertNotEquals((int) $nplural, count($indexes), "Langcode '$langCode' has '$nplural' plural forms.");
-            }
-        }
-    }
-
-    protected function generateTestData($plural, $langCodes)
-    {
-        $matrix = array();
-        foreach ($langCodes as $langCode) {
-            for ($count = 0; $count < 200; ++$count) {
-                $plural = PluralizationRules::get($count, $langCode);
-                $matrix[$langCode][$count] = $plural;
-            }
-        }
-
-        return $matrix;
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/TranslatorCacheTest.php b/core/vendor/symfony/translation/Tests/TranslatorCacheTest.php
deleted file mode 100644
index abe364c..0000000
--- a/core/vendor/symfony/translation/Tests/TranslatorCacheTest.php
+++ /dev/null
@@ -1,299 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Config\Resource\ResourceInterface;
-use Symfony\Component\Translation\Loader\ArrayLoader;
-use Symfony\Component\Translation\Loader\LoaderInterface;
-use Symfony\Component\Translation\Translator;
-use Symfony\Component\Translation\MessageCatalogue;
-
-class TranslatorCacheTest extends \PHPUnit_Framework_TestCase
-{
-    protected $tmpDir;
-
-    protected function setUp()
-    {
-        $this->tmpDir = sys_get_temp_dir().'/sf2_translation';
-        $this->deleteTmpDir();
-    }
-
-    protected function tearDown()
-    {
-        $this->deleteTmpDir();
-    }
-
-    protected function deleteTmpDir()
-    {
-        if (!file_exists($dir = $this->tmpDir)) {
-            return;
-        }
-
-        $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->tmpDir), \RecursiveIteratorIterator::CHILD_FIRST);
-        foreach ($iterator as $path) {
-            if (preg_match('#[/\\\\]\.\.?$#', $path->__toString())) {
-                continue;
-            }
-            if ($path->isDir()) {
-                rmdir($path->__toString());
-            } else {
-                unlink($path->__toString());
-            }
-        }
-        rmdir($this->tmpDir);
-    }
-
-    /**
-     * @dataProvider runForDebugAndProduction
-     */
-    public function testThatACacheIsUsed($debug)
-    {
-        $locale = 'any_locale';
-        $format = 'some_format';
-        $msgid = 'test';
-
-        // Prime the cache
-        $translator = new Translator($locale, null, $this->tmpDir, $debug);
-        $translator->addLoader($format, new ArrayLoader());
-        $translator->addResource($format, array($msgid => 'OK'), $locale);
-        $translator->trans($msgid);
-
-        // Try again and see we get a valid result whilst no loader can be used
-        $translator = new Translator($locale, null, $this->tmpDir, $debug);
-        $translator->addLoader($format, $this->createFailingLoader());
-        $translator->addResource($format, array($msgid => 'OK'), $locale);
-        $this->assertEquals('OK', $translator->trans($msgid), '-> caching does not work in '.($debug ? 'debug' : 'production'));
-    }
-
-    public function testCatalogueIsReloadedWhenResourcesAreNoLongerFresh()
-    {
-        /*
-         * The testThatACacheIsUsed() test showed that we don't need the loader as long as the cache
-         * is fresh.
-         *
-         * Now we add a Resource that is never fresh and make sure that the
-         * cache is discarded (the loader is called twice).
-         *
-         * We need to run this for debug=true only because in production the cache
-         * will never be revalidated.
-         */
-
-        $locale = 'any_locale';
-        $format = 'some_format';
-        $msgid = 'test';
-
-        $catalogue = new MessageCatalogue($locale, array());
-        $catalogue->addResource(new StaleResource()); // better use a helper class than a mock, because it gets serialized in the cache and re-loaded
-
-        /** @var LoaderInterface|\PHPUnit_Framework_MockObject_MockObject $loader */
-        $loader = $this->getMock('Symfony\Component\Translation\Loader\LoaderInterface');
-        $loader
-            ->expects($this->exactly(2))
-            ->method('load')
-            ->will($this->returnValue($catalogue))
-        ;
-
-        // 1st pass
-        $translator = new Translator($locale, null, $this->tmpDir, true);
-        $translator->addLoader($format, $loader);
-        $translator->addResource($format, null, $locale);
-        $translator->trans($msgid);
-
-        // 2nd pass
-        $translator = new Translator($locale, null, $this->tmpDir, true);
-        $translator->addLoader($format, $loader);
-        $translator->addResource($format, null, $locale);
-        $translator->trans($msgid);
-    }
-
-    /**
-     * @dataProvider runForDebugAndProduction
-     */
-    public function testDifferentTranslatorsForSameLocaleDoNotOverwriteEachOthersCache($debug)
-    {
-        /*
-         * Similar to the previous test. After we used the second translator, make
-         * sure there's still a useable cache for the first one.
-         */
-
-        $locale = 'any_locale';
-        $format = 'some_format';
-        $msgid = 'test';
-
-        // Create a Translator and prime its cache
-        $translator = new Translator($locale, null, $this->tmpDir, $debug);
-        $translator->addLoader($format, new ArrayLoader());
-        $translator->addResource($format, array($msgid => 'OK'), $locale);
-        $translator->trans($msgid);
-
-        // Create another Translator with a different catalogue for the same locale
-        $translator = new Translator($locale, null, $this->tmpDir, $debug);
-        $translator->addLoader($format, new ArrayLoader());
-        $translator->addResource($format, array($msgid => 'FAIL'), $locale);
-        $translator->trans($msgid);
-
-        // Now the first translator must still have a useable cache.
-        $translator = new Translator($locale, null, $this->tmpDir, $debug);
-        $translator->addLoader($format, $this->createFailingLoader());
-        $translator->addResource($format, array($msgid => 'OK'), $locale);
-        $this->assertEquals('OK', $translator->trans($msgid), '-> the cache was overwritten by another translator instance in '.($debug ? 'debug' : 'production'));
-    }
-
-    public function testDifferentCacheFilesAreUsedForDifferentSetsOfFallbackLocales()
-    {
-        /*
-         * Because the cache file contains a catalogue including all of its fallback
-         * catalogues, we must take the set of fallback locales into consideration when
-         * loading a catalogue from the cache.
-         */
-        $translator = new Translator('a', null, $this->tmpDir);
-        $translator->setFallbackLocales(array('b'));
-
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (a)'), 'a');
-        $translator->addResource('array', array('bar' => 'bar (b)'), 'b');
-
-        $this->assertEquals('bar (b)', $translator->trans('bar'));
-
-        // Remove fallback locale
-        $translator->setFallbackLocales(array());
-        $this->assertEquals('bar', $translator->trans('bar'));
-
-        // Use a fresh translator with no fallback locales, result should be the same
-        $translator = new Translator('a', null, $this->tmpDir);
-
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (a)'), 'a');
-        $translator->addResource('array', array('bar' => 'bar (b)'), 'b');
-
-        $this->assertEquals('bar', $translator->trans('bar'));
-    }
-
-    public function testPrimaryAndFallbackCataloguesContainTheSameMessagesRegardlessOfCaching()
-    {
-        /*
-         * As a safeguard against potential BC breaks, make sure that primary and fallback
-         * catalogues (reachable via getFallbackCatalogue()) always contain the full set of
-         * messages provided by the loader. This must also be the case when these catalogues
-         * are (internally) read from a cache.
-         *
-         * Optimizations inside the translator must not change this behaviour.
-         */
-
-        /*
-         * Create a translator that loads two catalogues for two different locales.
-         * The catalogues contain distinct sets of messages.
-         */
-        $translator = new Translator('a', null, $this->tmpDir);
-        $translator->setFallbackLocales(array('b'));
-
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (a)'), 'a');
-        $translator->addResource('array', array('foo' => 'foo (b)'), 'b');
-        $translator->addResource('array', array('bar' => 'bar (b)'), 'b');
-
-        $catalogue = $translator->getCatalogue('a');
-        $this->assertFalse($catalogue->defines('bar')); // Sure, the "a" catalogue does not contain that message.
-
-        $fallback = $catalogue->getFallbackCatalogue();
-        $this->assertTrue($fallback->defines('foo')); // "foo" is present in "a" and "b"
-
-        /*
-         * Now, repeat the same test.
-         * Behind the scenes, the cache is used. But that should not matter, right?
-         */
-        $translator = new Translator('a', null, $this->tmpDir);
-        $translator->setFallbackLocales(array('b'));
-
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (a)'), 'a');
-        $translator->addResource('array', array('foo' => 'foo (b)'), 'b');
-        $translator->addResource('array', array('bar' => 'bar (b)'), 'b');
-
-        $catalogue = $translator->getCatalogue('a');
-        $this->assertFalse($catalogue->defines('bar'));
-
-        $fallback = $catalogue->getFallbackCatalogue();
-        $this->assertTrue($fallback->defines('foo'));
-    }
-
-    public function testRefreshCacheWhenResourcesAreNoLongerFresh()
-    {
-        $resource = $this->getMock('Symfony\Component\Config\Resource\ResourceInterface');
-        $loader = $this->getMock('Symfony\Component\Translation\Loader\LoaderInterface');
-        $resource->method('isFresh')->will($this->returnValue(false));
-        $loader
-            ->expects($this->exactly(2))
-            ->method('load')
-            ->will($this->returnValue($this->getCatalogue('fr', array(), array($resource))));
-
-        // prime the cache
-        $translator = new Translator('fr', null, $this->tmpDir, true);
-        $translator->addLoader('loader', $loader);
-        $translator->addResource('loader', 'foo', 'fr');
-        $translator->trans('foo');
-
-        // prime the cache second time
-        $translator = new Translator('fr', null, $this->tmpDir, true);
-        $translator->addLoader('loader', $loader);
-        $translator->addResource('loader', 'foo', 'fr');
-        $translator->trans('foo');
-    }
-
-    protected function getCatalogue($locale, $messages, $resources = array())
-    {
-        $catalogue = new MessageCatalogue($locale);
-        foreach ($messages as $key => $translation) {
-            $catalogue->set($key, $translation);
-        }
-        foreach ($resources as $resource) {
-            $catalogue->addResource($resource);
-        }
-
-        return $catalogue;
-    }
-
-    public function runForDebugAndProduction()
-    {
-        return array(array(true), array(false));
-    }
-
-    /**
-     * @return LoaderInterface
-     */
-    private function createFailingLoader()
-    {
-        $loader = $this->getMock('Symfony\Component\Translation\Loader\LoaderInterface');
-        $loader
-            ->expects($this->never())
-            ->method('load');
-
-        return $loader;
-    }
-}
-
-class StaleResource implements ResourceInterface
-{
-    public function isFresh($timestamp)
-    {
-        return false;
-    }
-
-    public function getResource()
-    {
-    }
-
-    public function __toString()
-    {
-        return '';
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/TranslatorTest.php b/core/vendor/symfony/translation/Tests/TranslatorTest.php
deleted file mode 100644
index cb36183..0000000
--- a/core/vendor/symfony/translation/Tests/TranslatorTest.php
+++ /dev/null
@@ -1,627 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Tests;
-
-use Symfony\Component\Translation\Translator;
-use Symfony\Component\Translation\MessageSelector;
-use Symfony\Component\Translation\Loader\ArrayLoader;
-use Symfony\Component\Translation\MessageCatalogue;
-
-class TranslatorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider      getInvalidLocalesTests
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructorInvalidLocale($locale)
-    {
-        $translator = new Translator($locale, new MessageSelector());
-    }
-
-    /**
-     * @dataProvider getValidLocalesTests
-     */
-    public function testConstructorValidLocale($locale)
-    {
-        $translator = new Translator($locale, new MessageSelector());
-
-        $this->assertEquals($locale, $translator->getLocale());
-    }
-
-    public function testConstructorWithoutLocale()
-    {
-        $translator = new Translator(null, new MessageSelector());
-
-        $this->assertNull($translator->getLocale());
-    }
-
-    public function testSetGetLocale()
-    {
-        $translator = new Translator('en');
-
-        $this->assertEquals('en', $translator->getLocale());
-
-        $translator->setLocale('fr');
-        $this->assertEquals('fr', $translator->getLocale());
-    }
-
-    /**
-     * @dataProvider      getInvalidLocalesTests
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetInvalidLocale($locale)
-    {
-        $translator = new Translator('fr', new MessageSelector());
-        $translator->setLocale($locale);
-    }
-
-    /**
-     * @dataProvider getValidLocalesTests
-     */
-    public function testSetValidLocale($locale)
-    {
-        $translator = new Translator($locale, new MessageSelector());
-        $translator->setLocale($locale);
-
-        $this->assertEquals($locale, $translator->getLocale());
-    }
-
-    public function testGetCatalogue()
-    {
-        $translator = new Translator('en');
-
-        $this->assertEquals(new MessageCatalogue('en'), $translator->getCatalogue());
-
-        $translator->setLocale('fr');
-        $this->assertEquals(new MessageCatalogue('fr'), $translator->getCatalogue('fr'));
-    }
-
-    public function testGetCatalogueReturnsConsolidatedCatalogue()
-    {
-        /*
-         * This will be useful once we refactor so that different domains will be loaded lazily (on-demand).
-         * In that case, getCatalogue() will probably have to load all missing domains in order to return
-         * one complete catalogue.
-         */
-
-        $locale = 'whatever';
-        $translator = new Translator($locale);
-        $translator->addLoader('loader-a', new ArrayLoader());
-        $translator->addLoader('loader-b', new ArrayLoader());
-        $translator->addResource('loader-a', array('foo' => 'foofoo'), $locale, 'domain-a');
-        $translator->addResource('loader-b', array('bar' => 'foobar'), $locale, 'domain-b');
-
-        /*
-         * Test that we get a single catalogue comprising messages
-         * from different loaders and different domains
-         */
-        $catalogue = $translator->getCatalogue($locale);
-        $this->assertTrue($catalogue->defines('foo', 'domain-a'));
-        $this->assertTrue($catalogue->defines('bar', 'domain-b'));
-    }
-
-    public function testSetFallbackLocales()
-    {
-        $translator = new Translator('en');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en');
-        $translator->addResource('array', array('bar' => 'foobar'), 'fr');
-
-        // force catalogue loading
-        $translator->trans('bar');
-
-        $translator->setFallbackLocales(array('fr'));
-        $this->assertEquals('foobar', $translator->trans('bar'));
-    }
-
-    public function testSetFallbackLocalesMultiple()
-    {
-        $translator = new Translator('en');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (en)'), 'en');
-        $translator->addResource('array', array('bar' => 'bar (fr)'), 'fr');
-
-        // force catalogue loading
-        $translator->trans('bar');
-
-        $translator->setFallbackLocales(array('fr_FR', 'fr'));
-        $this->assertEquals('bar (fr)', $translator->trans('bar'));
-    }
-
-    /**
-     * @dataProvider      getInvalidLocalesTests
-     * @expectedException \InvalidArgumentException
-     */
-    public function testSetFallbackInvalidLocales($locale)
-    {
-        $translator = new Translator('fr', new MessageSelector());
-        $translator->setFallbackLocales(array('fr', $locale));
-    }
-
-    /**
-     * @dataProvider getValidLocalesTests
-     */
-    public function testSetFallbackValidLocales($locale)
-    {
-        $translator = new Translator($locale, new MessageSelector());
-        $translator->setFallbackLocales(array('fr', $locale));
-        // no assertion. this method just asserts that no exception is thrown
-    }
-
-    public function testTransWithFallbackLocale()
-    {
-        $translator = new Translator('fr_FR');
-        $translator->setFallbackLocales(array('en'));
-
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('bar' => 'foobar'), 'en');
-
-        $this->assertEquals('foobar', $translator->trans('bar'));
-    }
-
-    /**
-     * @dataProvider      getInvalidLocalesTests
-     * @expectedException \InvalidArgumentException
-     */
-    public function testAddResourceInvalidLocales($locale)
-    {
-        $translator = new Translator('fr', new MessageSelector());
-        $translator->addResource('array', array('foo' => 'foofoo'), $locale);
-    }
-
-    /**
-     * @dataProvider getValidLocalesTests
-     */
-    public function testAddResourceValidLocales($locale)
-    {
-        $translator = new Translator('fr', new MessageSelector());
-        $translator->addResource('array', array('foo' => 'foofoo'), $locale);
-        // no assertion. this method just asserts that no exception is thrown
-    }
-
-    public function testAddResourceAfterTrans()
-    {
-        $translator = new Translator('fr');
-        $translator->addLoader('array', new ArrayLoader());
-
-        $translator->setFallbackLocales(array('en'));
-
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en');
-        $this->assertEquals('foofoo', $translator->trans('foo'));
-
-        $translator->addResource('array', array('bar' => 'foobar'), 'en');
-        $this->assertEquals('foobar', $translator->trans('bar'));
-    }
-
-    /**
-     * @dataProvider      getTransFileTests
-     * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException
-     */
-    public function testTransWithoutFallbackLocaleFile($format, $loader)
-    {
-        $loaderClass = 'Symfony\\Component\\Translation\\Loader\\'.$loader;
-        $translator = new Translator('en');
-        $translator->addLoader($format, new $loaderClass());
-        $translator->addResource($format, __DIR__.'/fixtures/non-existing', 'en');
-        $translator->addResource($format, __DIR__.'/fixtures/resources.'.$format, 'en');
-
-        // force catalogue loading
-        $translator->trans('foo');
-    }
-
-    /**
-     * @dataProvider getTransFileTests
-     */
-    public function testTransWithFallbackLocaleFile($format, $loader)
-    {
-        $loaderClass = 'Symfony\\Component\\Translation\\Loader\\'.$loader;
-        $translator = new Translator('en_GB');
-        $translator->addLoader($format, new $loaderClass());
-        $translator->addResource($format, __DIR__.'/fixtures/non-existing', 'en_GB');
-        $translator->addResource($format, __DIR__.'/fixtures/resources.'.$format, 'en', 'resources');
-
-        $this->assertEquals('bar', $translator->trans('foo', array(), 'resources'));
-    }
-
-    public function testTransWithFallbackLocaleBis()
-    {
-        $translator = new Translator('en_US');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en_US');
-        $translator->addResource('array', array('bar' => 'foobar'), 'en');
-        $this->assertEquals('foobar', $translator->trans('bar'));
-    }
-
-    public function testTransWithFallbackLocaleTer()
-    {
-        $translator = new Translator('fr_FR');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foo (en_US)'), 'en_US');
-        $translator->addResource('array', array('bar' => 'bar (en)'), 'en');
-
-        $translator->setFallbackLocales(array('en_US', 'en'));
-
-        $this->assertEquals('foo (en_US)', $translator->trans('foo'));
-        $this->assertEquals('bar (en)', $translator->trans('bar'));
-    }
-
-    public function testTransNonExistentWithFallback()
-    {
-        $translator = new Translator('fr');
-        $translator->setFallbackLocales(array('en'));
-        $translator->addLoader('array', new ArrayLoader());
-        $this->assertEquals('non-existent', $translator->trans('non-existent'));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testWhenAResourceHasNoRegisteredLoader()
-    {
-        $translator = new Translator('en');
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en');
-
-        $translator->trans('foo');
-    }
-
-    /**
-     * @dataProvider getTransTests
-     */
-    public function testTrans($expected, $id, $translation, $parameters, $locale, $domain)
-    {
-        $translator = new Translator('en');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array((string) $id => $translation), $locale, $domain);
-
-        $this->assertEquals($expected, $translator->trans($id, $parameters, $domain, $locale));
-    }
-
-    /**
-     * @dataProvider      getInvalidLocalesTests
-     * @expectedException \InvalidArgumentException
-     */
-    public function testTransInvalidLocale($locale)
-    {
-        $translator = new Translator('en', new MessageSelector());
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en');
-
-        $translator->trans('foo', array(), '', $locale);
-    }
-
-    /**
-     * @dataProvider      getValidLocalesTests
-     */
-    public function testTransValidLocale($locale)
-    {
-        $translator = new Translator($locale, new MessageSelector());
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('test' => 'OK'), $locale);
-
-        $this->assertEquals('OK', $translator->trans('test'));
-        $this->assertEquals('OK', $translator->trans('test', array(), null, $locale));
-    }
-
-    /**
-     * @dataProvider getFlattenedTransTests
-     */
-    public function testFlattenedTrans($expected, $messages, $id)
-    {
-        $translator = new Translator('en');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', $messages, 'fr', '');
-
-        $this->assertEquals($expected, $translator->trans($id, array(), '', 'fr'));
-    }
-
-    /**
-     * @dataProvider getTransChoiceTests
-     */
-    public function testTransChoice($expected, $id, $translation, $number, $parameters, $locale, $domain)
-    {
-        $translator = new Translator('en');
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array((string) $id => $translation), $locale, $domain);
-
-        $this->assertEquals($expected, $translator->transChoice($id, $number, $parameters, $domain, $locale));
-    }
-
-    /**
-     * @dataProvider      getInvalidLocalesTests
-     * @expectedException \InvalidArgumentException
-     */
-    public function testTransChoiceInvalidLocale($locale)
-    {
-        $translator = new Translator('en', new MessageSelector());
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en');
-
-        $translator->transChoice('foo', 1, array(), '', $locale);
-    }
-
-    /**
-     * @dataProvider      getValidLocalesTests
-     */
-    public function testTransChoiceValidLocale($locale)
-    {
-        $translator = new Translator('en', new MessageSelector());
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('foo' => 'foofoo'), 'en');
-
-        $translator->transChoice('foo', 1, array(), '', $locale);
-        // no assertion. this method just asserts that no exception is thrown
-    }
-
-    public function getTransFileTests()
-    {
-        return array(
-            array('csv', 'CsvFileLoader'),
-            array('ini', 'IniFileLoader'),
-            array('mo', 'MoFileLoader'),
-            array('po', 'PoFileLoader'),
-            array('php', 'PhpFileLoader'),
-            array('ts', 'QtFileLoader'),
-            array('xlf', 'XliffFileLoader'),
-            array('yml', 'YamlFileLoader'),
-            array('json', 'JsonFileLoader'),
-        );
-    }
-
-    public function getTransTests()
-    {
-        return array(
-            array('Symfony est super !', 'Symfony is great!', 'Symfony est super !', array(), 'fr', ''),
-            array('Symfony est awesome !', 'Symfony is %what%!', 'Symfony est %what% !', array('%what%' => 'awesome'), 'fr', ''),
-            array('Symfony est super !', new StringClass('Symfony is great!'), 'Symfony est super !', array(), 'fr', ''),
-        );
-    }
-
-    public function getFlattenedTransTests()
-    {
-        $messages = array(
-            'symfony' => array(
-                'is' => array(
-                    'great' => 'Symfony est super!',
-                ),
-            ),
-            'foo' => array(
-                'bar' => array(
-                    'baz' => 'Foo Bar Baz',
-                ),
-                'baz' => 'Foo Baz',
-            ),
-        );
-
-        return array(
-            array('Symfony est super!', $messages, 'symfony.is.great'),
-            array('Foo Bar Baz', $messages, 'foo.bar.baz'),
-            array('Foo Baz', $messages, 'foo.baz'),
-        );
-    }
-
-    public function getTransChoiceTests()
-    {
-        return array(
-            array('Il y a 0 pomme', '{0} There are no appless|{1} There is one apple|]1,Inf] There is %count% apples', '[0,1] Il y a %count% pomme|]1,Inf] Il y a %count% pommes', 0, array('%count%' => 0), 'fr', ''),
-            array('Il y a 1 pomme', '{0} There are no appless|{1} There is one apple|]1,Inf] There is %count% apples', '[0,1] Il y a %count% pomme|]1,Inf] Il y a %count% pommes', 1, array('%count%' => 1), 'fr', ''),
-            array('Il y a 10 pommes', '{0} There are no appless|{1} There is one apple|]1,Inf] There is %count% apples', '[0,1] Il y a %count% pomme|]1,Inf] Il y a %count% pommes', 10, array('%count%' => 10), 'fr', ''),
-
-            array('Il y a 0 pomme', 'There is one apple|There is %count% apples', 'Il y a %count% pomme|Il y a %count% pommes', 0, array('%count%' => 0), 'fr', ''),
-            array('Il y a 1 pomme', 'There is one apple|There is %count% apples', 'Il y a %count% pomme|Il y a %count% pommes', 1, array('%count%' => 1), 'fr', ''),
-            array('Il y a 10 pommes', 'There is one apple|There is %count% apples', 'Il y a %count% pomme|Il y a %count% pommes', 10, array('%count%' => 10), 'fr', ''),
-
-            array('Il y a 0 pomme', 'one: There is one apple|more: There is %count% apples', 'one: Il y a %count% pomme|more: Il y a %count% pommes', 0, array('%count%' => 0), 'fr', ''),
-            array('Il y a 1 pomme', 'one: There is one apple|more: There is %count% apples', 'one: Il y a %count% pomme|more: Il y a %count% pommes', 1, array('%count%' => 1), 'fr', ''),
-            array('Il y a 10 pommes', 'one: There is one apple|more: There is %count% apples', 'one: Il y a %count% pomme|more: Il y a %count% pommes', 10, array('%count%' => 10), 'fr', ''),
-
-            array('Il n\'y a aucune pomme', '{0} There are no apples|one: There is one apple|more: There is %count% apples', '{0} Il n\'y a aucune pomme|one: Il y a %count% pomme|more: Il y a %count% pommes', 0, array('%count%' => 0), 'fr', ''),
-            array('Il y a 1 pomme', '{0} There are no apples|one: There is one apple|more: There is %count% apples', '{0} Il n\'y a aucune pomme|one: Il y a %count% pomme|more: Il y a %count% pommes', 1, array('%count%' => 1), 'fr', ''),
-            array('Il y a 10 pommes', '{0} There are no apples|one: There is one apple|more: There is %count% apples', '{0} Il n\'y a aucune pomme|one: Il y a %count% pomme|more: Il y a %count% pommes', 10, array('%count%' => 10), 'fr', ''),
-
-            array('Il y a 0 pomme', new StringClass('{0} There are no appless|{1} There is one apple|]1,Inf] There is %count% apples'), '[0,1] Il y a %count% pomme|]1,Inf] Il y a %count% pommes', 0, array('%count%' => 0), 'fr', ''),
-        );
-    }
-
-    public function getInvalidLocalesTests()
-    {
-        return array(
-            array('fr FR'),
-            array('français'),
-            array('fr+en'),
-            array('utf#8'),
-            array('fr&en'),
-            array('fr~FR'),
-            array(' fr'),
-            array('fr '),
-            array('fr*'),
-            array('fr/FR'),
-            array('fr\\FR'),
-        );
-    }
-
-    public function getValidLocalesTests()
-    {
-        return array(
-            array(''),
-            array(null),
-            array('fr'),
-            array('francais'),
-            array('FR'),
-            array('frFR'),
-            array('fr-FR'),
-            array('fr_FR'),
-            array('fr.FR'),
-            array('fr-FR.UTF8'),
-            array('sr@latin'),
-        );
-    }
-
-    public function testTransChoiceFallback()
-    {
-        $translator = new Translator('ru');
-        $translator->setFallbackLocales(array('en'));
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('some_message2' => 'one thing|%count% things'), 'en');
-
-        $this->assertEquals('10 things', $translator->transChoice('some_message2', 10, array('%count%' => 10)));
-    }
-
-    public function testTransChoiceFallbackBis()
-    {
-        $translator = new Translator('ru');
-        $translator->setFallbackLocales(array('en_US', 'en'));
-        $translator->addLoader('array', new ArrayLoader());
-        $translator->addResource('array', array('some_message2' => 'one thing|%count% things'), 'en_US');
-
-        $this->assertEquals('10 things', $translator->transChoice('some_message2', 10, array('%count%' => 10)));
-    }
-
-    public function testTransChoiceFallbackWithNoTranslation()
-    {
-        $translator = new Translator('ru');
-        $translator->setFallbackLocales(array('en'));
-        $translator->addLoader('array', new ArrayLoader());
-
-        // consistent behavior with Translator::trans(), which returns the string
-        // unchanged if it can't be found
-        $this->assertEquals('some_message2', $translator->transChoice('some_message2', 10, array('%count%' => 10)));
-    }
-
-    /**
-     * @dataProvider dataProviderGetMessages
-     */
-    public function testGetMessages($resources, $locale, $expected)
-    {
-        $locales = array_keys($resources);
-        $_locale = null !== $locale ? $locale : reset($locales);
-        $locales = array_slice($locales, 0, array_search($_locale, $locales));
-
-        $translator = new Translator($_locale, new MessageSelector());
-        $translator->setFallbackLocales(array_reverse($locales));
-        $translator->addLoader('array', new ArrayLoader());
-        foreach ($resources as $_locale => $domainMessages) {
-            foreach ($domainMessages as $domain => $messages) {
-                $translator->addResource('array', $messages, $_locale, $domain);
-            }
-        }
-        $result = $translator->getMessages($locale);
-
-        $this->assertEquals($expected, $result);
-    }
-
-    public function dataProviderGetMessages()
-    {
-        $resources = array(
-            'en' => array(
-                'jsmessages' => array(
-                    'foo' => 'foo (EN)',
-                    'bar' => 'bar (EN)',
-                ),
-                'messages' => array(
-                    'foo' => 'foo messages (EN)',
-                ),
-                'validators' => array(
-                    'int' => 'integer (EN)',
-                ),
-            ),
-            'pt-PT' => array(
-                'messages' => array(
-                    'foo' => 'foo messages (PT)',
-                ),
-                'validators' => array(
-                    'str' => 'integer (PT)',
-                ),
-            ),
-            'pt_BR' => array(
-                'validators' => array(
-                    'int' => 'integer (BR)',
-                ),
-            ),
-        );
-
-        return array(
-            array($resources, null,
-                array(
-                    'jsmessages' => array(
-                        'foo' => 'foo (EN)',
-                        'bar' => 'bar (EN)',
-                    ),
-                    'messages' => array(
-                        'foo' => 'foo messages (EN)',
-                    ),
-                    'validators' => array(
-                        'int' => 'integer (EN)',
-                    ),
-                ),
-            ),
-            array($resources, 'en',
-                array(
-                    'jsmessages' => array(
-                        'foo' => 'foo (EN)',
-                        'bar' => 'bar (EN)',
-                    ),
-                    'messages' => array(
-                        'foo' => 'foo messages (EN)',
-                    ),
-                    'validators' => array(
-                        'int' => 'integer (EN)',
-                    ),
-                ),
-            ),
-            array($resources, 'pt-PT',
-                array(
-                    'jsmessages' => array(
-                        'foo' => 'foo (EN)',
-                        'bar' => 'bar (EN)',
-                    ),
-                    'messages' => array(
-                        'foo' => 'foo messages (PT)',
-                    ),
-                    'validators' => array(
-                        'int' => 'integer (EN)',
-                        'str' => 'integer (PT)',
-                    ),
-                ),
-            ),
-            array($resources, 'pt_BR',
-                array(
-                    'jsmessages' => array(
-                        'foo' => 'foo (EN)',
-                        'bar' => 'bar (EN)',
-                    ),
-                    'messages' => array(
-                        'foo' => 'foo messages (PT)',
-                    ),
-                    'validators' => array(
-                        'int' => 'integer (BR)',
-                        'str' => 'integer (PT)',
-                    ),
-                ),
-            ),
-        );
-    }
-}
-
-class StringClass
-{
-    protected $str;
-
-    public function __construct($str)
-    {
-        $this->str = $str;
-    }
-
-    public function __toString()
-    {
-        return $this->str;
-    }
-}
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty-translation.mo b/core/vendor/symfony/translation/Tests/fixtures/empty-translation.mo
deleted file mode 100644
index ed01000..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/empty-translation.mo and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty-translation.po b/core/vendor/symfony/translation/Tests/fixtures/empty-translation.po
deleted file mode 100644
index ff6f22a..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/empty-translation.po
+++ /dev/null
@@ -1,3 +0,0 @@
-msgid "foo"
-msgstr ""
-
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.csv b/core/vendor/symfony/translation/Tests/fixtures/empty.csv
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.ini b/core/vendor/symfony/translation/Tests/fixtures/empty.ini
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.json b/core/vendor/symfony/translation/Tests/fixtures/empty.json
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.mo b/core/vendor/symfony/translation/Tests/fixtures/empty.mo
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.po b/core/vendor/symfony/translation/Tests/fixtures/empty.po
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.xlf b/core/vendor/symfony/translation/Tests/fixtures/empty.xlf
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/empty.yml b/core/vendor/symfony/translation/Tests/fixtures/empty.yml
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/translation/Tests/fixtures/encoding.xlf b/core/vendor/symfony/translation/Tests/fixtures/encoding.xlf
deleted file mode 100644
index 0a88f92..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/encoding.xlf
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" datatype="plaintext" original="file.ext">
-    <body>
-      <trans-unit id="1" resname="foo">
-        <source>foo</source>
-        <target>br</target>
-        <note>bz</note>
-      </trans-unit>
-      <trans-unit id="2" resname="bar">
-        <source>bar</source>
-        <target>f</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/escaped-id-plurals.po b/core/vendor/symfony/translation/Tests/fixtures/escaped-id-plurals.po
deleted file mode 100644
index c412aa2..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/escaped-id-plurals.po
+++ /dev/null
@@ -1,10 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en\n"
-
-msgid "escaped \"foo\""
-msgid_plural "escaped \"foos\""
-msgstr[0] "escaped \"bar\""
-msgstr[1] "escaped \"bars\""
diff --git a/core/vendor/symfony/translation/Tests/fixtures/escaped-id.po b/core/vendor/symfony/translation/Tests/fixtures/escaped-id.po
deleted file mode 100644
index 308eadd..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/escaped-id.po
+++ /dev/null
@@ -1,8 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en\n"
-
-msgid "escaped \"foo\""
-msgstr "escaped \"bar\""
diff --git a/core/vendor/symfony/translation/Tests/fixtures/invalid-xml-resources.xlf b/core/vendor/symfony/translation/Tests/fixtures/invalid-xml-resources.xlf
deleted file mode 100644
index 7bf6c98..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/invalid-xml-resources.xlf
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>foo</source>
-                <target>bar
-            </trans-unit>
-            <trans-unit id="2">
-                <source>extra</source>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>key</source>
-                <target></target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>test</source>
-                <target>with</target>
-                <note>note</note>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/malformed.json b/core/vendor/symfony/translation/Tests/fixtures/malformed.json
deleted file mode 100644
index 4563ec6..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/malformed.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "foo" "bar"
-}
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/non-valid.xlf b/core/vendor/symfony/translation/Tests/fixtures/non-valid.xlf
deleted file mode 100644
index 734fc97..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/non-valid.xlf
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit>
-                <source>foo</source>
-                <target>bar</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/non-valid.yml b/core/vendor/symfony/translation/Tests/fixtures/non-valid.yml
deleted file mode 100644
index 257cc56..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/non-valid.yml
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/core/vendor/symfony/translation/Tests/fixtures/plurals.mo b/core/vendor/symfony/translation/Tests/fixtures/plurals.mo
deleted file mode 100644
index 6445e77..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/plurals.mo and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/plurals.po b/core/vendor/symfony/translation/Tests/fixtures/plurals.po
deleted file mode 100644
index 439c41a..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/plurals.po
+++ /dev/null
@@ -1,5 +0,0 @@
-msgid "foo"
-msgid_plural "foos"
-msgstr[0] "bar"
-msgstr[1] "bars"
-
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resname.xlf b/core/vendor/symfony/translation/Tests/fixtures/resname.xlf
deleted file mode 100644
index 2df16af..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resname.xlf
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" datatype="plaintext" original="file.ext">
-    <body>
-      <trans-unit id="1" resname="foo">
-        <source></source>
-        <target>bar</target>
-      </trans-unit>
-      <trans-unit id="2" resname="bar">
-        <source>bar source</source>
-        <target>baz</target>
-      </trans-unit>
-      <trans-unit id="3">
-        <source>baz</source>
-        <target>foo</target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/corrupted/resources.dat b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/corrupted/resources.dat
deleted file mode 100644
index 391250c..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/corrupted/resources.dat
+++ /dev/null
@@ -1 +0,0 @@
-XXX
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.res b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.res
deleted file mode 100644
index 1fc1436..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.res and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.txt b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.txt
deleted file mode 100644
index 3d9e9ea..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-en{
-    symfony{"Symfony is great"}
-}
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.res b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.res
deleted file mode 100644
index f584160..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.res and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.txt b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.txt
deleted file mode 100644
index 182d0a0..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-fr{
-    symfony{"Symfony est génial"}
-}
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/packagelist.txt b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/packagelist.txt
deleted file mode 100644
index c5783ed..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/packagelist.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-en.res
-fr.res
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/resources.dat b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/resources.dat
deleted file mode 100644
index 563b0ea..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/resources.dat and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/res/en.res b/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/res/en.res
deleted file mode 100644
index ad894a9..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/resourcebundle/res/en.res and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources-clean.xlf b/core/vendor/symfony/translation/Tests/fixtures/resources-clean.xlf
deleted file mode 100644
index 4ce15af..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources-clean.xlf
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="fr-FR" target-language="en-US" datatype="plaintext" original="file.ext">
-    <body>
-      <trans-unit id="acbd18db4cc2f85cedef654fccc4a4d8" resname="foo">
-        <source>foo</source>
-        <target>bar</target>
-        <note priority="1" from="bar">baz</note>
-      </trans-unit>
-      <trans-unit id="3c6e0b8a9c15224a8228b9a98ca1531d" resname="key">
-        <source>key</source>
-        <target></target>
-        <note>baz</note>
-        <note>qux</note>
-      </trans-unit>
-      <trans-unit id="18e6a493872558d949b4c16ea1fa6ab6" resname="key.with.cdata">
-        <source>key.with.cdata</source>
-        <target><![CDATA[<source> & <target>]]></target>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.csv b/core/vendor/symfony/translation/Tests/fixtures/resources.csv
deleted file mode 100644
index 374b9eb..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-"foo"; "bar"
-#"bar"; "foo"
-"incorrect"; "number"; "columns"; "will"; "be"; "ignored"
-"incorrect"
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.ini b/core/vendor/symfony/translation/Tests/fixtures/resources.ini
deleted file mode 100644
index 4953062..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.ini
+++ /dev/null
@@ -1 +0,0 @@
-foo="bar"
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.json b/core/vendor/symfony/translation/Tests/fixtures/resources.json
deleted file mode 100644
index 8a79687..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "foo": "bar"
-}
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.mo b/core/vendor/symfony/translation/Tests/fixtures/resources.mo
deleted file mode 100644
index 0a96602..0000000
Binary files a/core/vendor/symfony/translation/Tests/fixtures/resources.mo and /dev/null differ
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.php b/core/vendor/symfony/translation/Tests/fixtures/resources.php
deleted file mode 100644
index c291398..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-return array (
-  'foo' => 'bar',
-);
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.po b/core/vendor/symfony/translation/Tests/fixtures/resources.po
deleted file mode 100644
index ccfce6b..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.po
+++ /dev/null
@@ -1,8 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en\n"
-
-msgid "foo"
-msgstr "bar"
\ No newline at end of file
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.ts b/core/vendor/symfony/translation/Tests/fixtures/resources.ts
deleted file mode 100644
index 40e1852..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<TS>
-  <context>
-    <name>resources</name>
-    <message>
-      <source>foo</source>
-      <translation>bar</translation>
-    </message>
-  </context>
-</TS>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.xlf b/core/vendor/symfony/translation/Tests/fixtures/resources.xlf
deleted file mode 100644
index b0e5988..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.xlf
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" datatype="plaintext" original="file.ext">
-    <body>
-      <trans-unit id="1">
-        <source>foo</source>
-        <target>bar</target>
-      </trans-unit>
-      <trans-unit id="2">
-        <source>extra</source>
-      </trans-unit>
-      <trans-unit id="3">
-        <source>key</source>
-        <target></target>
-      </trans-unit>
-      <trans-unit id="4">
-        <source>test</source>
-        <target>with</target>
-        <note>note</note>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/resources.yml b/core/vendor/symfony/translation/Tests/fixtures/resources.yml
deleted file mode 100644
index 20e9ff3..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/resources.yml
+++ /dev/null
@@ -1 +0,0 @@
-foo: bar
diff --git a/core/vendor/symfony/translation/Tests/fixtures/valid.csv b/core/vendor/symfony/translation/Tests/fixtures/valid.csv
deleted file mode 100644
index 59882e5..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/valid.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-foo;bar
-bar;"foo
-foo"
-"foo;foo";bar
diff --git a/core/vendor/symfony/translation/Tests/fixtures/withdoctype.xlf b/core/vendor/symfony/translation/Tests/fixtures/withdoctype.xlf
deleted file mode 100644
index f83e834..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/withdoctype.xlf
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE foo>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>foo</source>
-                <target>bar</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Tests/fixtures/withnote.xlf b/core/vendor/symfony/translation/Tests/fixtures/withnote.xlf
deleted file mode 100644
index b1d3f83..0000000
--- a/core/vendor/symfony/translation/Tests/fixtures/withnote.xlf
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
-  <file source-language="en" datatype="plaintext" original="file.ext">
-    <body>
-      <trans-unit id="1">
-        <source>foo</source>
-        <target>bar</target>
-        <note priority="1">foo</note>
-      </trans-unit>
-      <trans-unit id="2">
-        <source>extra</source>
-        <note from="foo">bar</note>
-      </trans-unit>
-      <trans-unit id="3">
-        <source>key</source>
-        <target></target>
-        <note>baz</note>
-        <note priority="2" from="bar">qux</note>
-      </trans-unit>
-    </body>
-  </file>
-</xliff>
diff --git a/core/vendor/symfony/translation/Translator.php b/core/vendor/symfony/translation/Translator.php
deleted file mode 100644
index 9b1b735..0000000
--- a/core/vendor/symfony/translation/Translator.php
+++ /dev/null
@@ -1,499 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-use Symfony\Component\Translation\Loader\LoaderInterface;
-use Symfony\Component\Translation\Exception\NotFoundResourceException;
-use Symfony\Component\Config\ConfigCacheInterface;
-use Symfony\Component\Config\ConfigCacheFactoryInterface;
-use Symfony\Component\Config\ConfigCacheFactory;
-
-/**
- * Translator.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Translator implements TranslatorInterface, TranslatorBagInterface
-{
-    /**
-     * @var MessageCatalogueInterface[]
-     */
-    protected $catalogues = array();
-
-    /**
-     * @var string
-     */
-    protected $locale;
-
-    /**
-     * @var array
-     */
-    private $fallbackLocales = array();
-
-    /**
-     * @var LoaderInterface[]
-     */
-    private $loaders = array();
-
-    /**
-     * @var array
-     */
-    private $resources = array();
-
-    /**
-     * @var MessageSelector
-     */
-    private $selector;
-
-    /**
-     * @var string
-     */
-    private $cacheDir;
-
-    /**
-     * @var bool
-     */
-    private $debug;
-
-    /**
-     * @var ConfigCacheFactoryInterface|null
-     */
-    private $configCacheFactory;
-
-    /**
-     * Constructor.
-     *
-     * @param string               $locale   The locale
-     * @param MessageSelector|null $selector The message selector for pluralization
-     * @param string|null          $cacheDir The directory to use for the cache
-     * @param bool                 $debug    Use cache in debug mode ?
-     *
-     * @throws \InvalidArgumentException If a locale contains invalid characters
-     *
-     * @api
-     */
-    public function __construct($locale, MessageSelector $selector = null, $cacheDir = null, $debug = false)
-    {
-        $this->setLocale($locale);
-        $this->selector = $selector ?: new MessageSelector();
-        $this->cacheDir = $cacheDir;
-        $this->debug = $debug;
-    }
-
-    /**
-     * Sets the ConfigCache factory to use.
-     *
-     * @param ConfigCacheFactoryInterface $configCacheFactory
-     */
-    public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory)
-    {
-        $this->configCacheFactory = $configCacheFactory;
-    }
-
-    /**
-     * Adds a Loader.
-     *
-     * @param string          $format The name of the loader (@see addResource())
-     * @param LoaderInterface $loader A LoaderInterface instance
-     *
-     * @api
-     */
-    public function addLoader($format, LoaderInterface $loader)
-    {
-        $this->loaders[$format] = $loader;
-    }
-
-    /**
-     * Adds a Resource.
-     *
-     * @param string $format   The name of the loader (@see addLoader())
-     * @param mixed  $resource The resource name
-     * @param string $locale   The locale
-     * @param string $domain   The domain
-     *
-     * @throws \InvalidArgumentException If the locale contains invalid characters
-     *
-     * @api
-     */
-    public function addResource($format, $resource, $locale, $domain = null)
-    {
-        if (null === $domain) {
-            $domain = 'messages';
-        }
-
-        $this->assertValidLocale($locale);
-
-        $this->resources[$locale][] = array($format, $resource, $domain);
-
-        if (in_array($locale, $this->fallbackLocales)) {
-            $this->catalogues = array();
-        } else {
-            unset($this->catalogues[$locale]);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function setLocale($locale)
-    {
-        $this->assertValidLocale($locale);
-        $this->locale = $locale;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function getLocale()
-    {
-        return $this->locale;
-    }
-
-    /**
-     * Sets the fallback locale(s).
-     *
-     * @param string|array $locales The fallback locale(s)
-     *
-     * @throws \InvalidArgumentException If a locale contains invalid characters
-     *
-     * @deprecated since version 2.3, to be removed in 3.0. Use setFallbackLocales() instead.
-     *
-     * @api
-     */
-    public function setFallbackLocale($locales)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0. Use the setFallbackLocales() method instead.', E_USER_DEPRECATED);
-
-        $this->setFallbackLocales(is_array($locales) ? $locales : array($locales));
-    }
-
-    /**
-     * Sets the fallback locales.
-     *
-     * @param array $locales The fallback locales
-     *
-     * @throws \InvalidArgumentException If a locale contains invalid characters
-     *
-     * @api
-     */
-    public function setFallbackLocales(array $locales)
-    {
-        // needed as the fallback locales are linked to the already loaded catalogues
-        $this->catalogues = array();
-
-        foreach ($locales as $locale) {
-            $this->assertValidLocale($locale);
-        }
-
-        $this->fallbackLocales = $locales;
-    }
-
-    /**
-     * Gets the fallback locales.
-     *
-     * @return array $locales The fallback locales
-     *
-     * @api
-     */
-    public function getFallbackLocales()
-    {
-        return $this->fallbackLocales;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function trans($id, array $parameters = array(), $domain = null, $locale = null)
-    {
-        if (null === $domain) {
-            $domain = 'messages';
-        }
-
-        return strtr($this->getCatalogue($locale)->get((string) $id, $domain), $parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @api
-     */
-    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
-    {
-        if (null === $domain) {
-            $domain = 'messages';
-        }
-
-        $id = (string) $id;
-        $catalogue = $this->getCatalogue($locale);
-        $locale = $catalogue->getLocale();
-        while (!$catalogue->defines($id, $domain)) {
-            if ($cat = $catalogue->getFallbackCatalogue()) {
-                $catalogue = $cat;
-                $locale = $catalogue->getLocale();
-            } else {
-                break;
-            }
-        }
-
-        return strtr($this->selector->choose($catalogue->get($id, $domain), (int) $number, $locale), $parameters);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCatalogue($locale = null)
-    {
-        if (null === $locale) {
-            $locale = $this->getLocale();
-        } else {
-            $this->assertValidLocale($locale);
-        }
-
-        if (!isset($this->catalogues[$locale])) {
-            $this->loadCatalogue($locale);
-        }
-
-        return $this->catalogues[$locale];
-    }
-
-    /**
-     * Gets the loaders.
-     *
-     * @return array LoaderInterface[]
-     */
-    protected function getLoaders()
-    {
-        return $this->loaders;
-    }
-
-    /**
-     * Collects all messages for the given locale.
-     *
-     * @param string|null $locale Locale of translations, by default is current locale
-     *
-     * @return array[array] indexed by catalog
-     */
-    public function getMessages($locale = null)
-    {
-        $catalogue = $this->getCatalogue($locale);
-        $messages = $catalogue->all();
-        while ($catalogue = $catalogue->getFallbackCatalogue()) {
-            $messages = array_replace_recursive($catalogue->all(), $messages);
-        }
-
-        return $messages;
-    }
-
-    /**
-     * @param string $locale
-     */
-    protected function loadCatalogue($locale)
-    {
-        if (null === $this->cacheDir) {
-            $this->initializeCatalogue($locale);
-        } else {
-            $this->initializeCacheCatalogue($locale);
-        }
-    }
-
-    /**
-     * @param string $locale
-     */
-    protected function initializeCatalogue($locale)
-    {
-        $this->assertValidLocale($locale);
-
-        try {
-            $this->doLoadCatalogue($locale);
-        } catch (NotFoundResourceException $e) {
-            if (!$this->computeFallbackLocales($locale)) {
-                throw $e;
-            }
-        }
-        $this->loadFallbackCatalogues($locale);
-    }
-
-    /**
-     * @param string $locale
-     */
-    private function initializeCacheCatalogue($locale)
-    {
-        if (isset($this->catalogues[$locale])) {
-            /* Catalogue already initialized. */
-            return;
-        }
-
-        $this->assertValidLocale($locale);
-        $self = $this; // required for PHP 5.3 where "$this" cannot be use()d in anonymous functions. Change in Symfony 3.0.
-        $cache = $this->getConfigCacheFactory()->cache($this->getCatalogueCachePath($locale),
-            function (ConfigCacheInterface $cache) use ($self, $locale) {
-                $self->dumpCatalogue($locale, $cache);
-            }
-        );
-
-        if (isset($this->catalogues[$locale])) {
-            /* Catalogue has been initialized as it was written out to cache. */
-            return;
-        }
-
-        /* Read catalogue from cache. */
-        $this->catalogues[$locale] = include $cache->getPath();
-    }
-
-    /**
-     * This method is public because it needs to be callable from a closure in PHP 5.3. It should be made protected (or even private, if possible) in 3.0.
-     *
-     * @internal
-     */
-    public function dumpCatalogue($locale, ConfigCacheInterface $cache)
-    {
-        $this->initializeCatalogue($locale);
-        $fallbackContent = $this->getFallbackContent($this->catalogues[$locale]);
-
-        $content = sprintf(<<<EOF
-<?php
-
-use Symfony\Component\Translation\MessageCatalogue;
-
-\$catalogue = new MessageCatalogue('%s', %s);
-
-%s
-return \$catalogue;
-
-EOF
-            ,
-            $locale,
-            var_export($this->catalogues[$locale]->all(), true),
-            $fallbackContent
-        );
-
-        $cache->write($content, $this->catalogues[$locale]->getResources());
-    }
-
-    private function getFallbackContent(MessageCatalogue $catalogue)
-    {
-        $fallbackContent = '';
-        $current = '';
-        $replacementPattern = '/[^a-z0-9_]/i';
-        $fallbackCatalogue = $catalogue->getFallbackCatalogue();
-        while ($fallbackCatalogue) {
-            $fallback = $fallbackCatalogue->getLocale();
-            $fallbackSuffix = ucfirst(preg_replace($replacementPattern, '_', $fallback));
-            $currentSuffix = ucfirst(preg_replace($replacementPattern, '_', $current));
-
-            $fallbackContent .= sprintf(<<<EOF
-\$catalogue%s = new MessageCatalogue('%s', %s);
-\$catalogue%s->addFallbackCatalogue(\$catalogue%s);
-
-EOF
-                ,
-                $fallbackSuffix,
-                $fallback,
-                var_export($fallbackCatalogue->all(), true),
-                $currentSuffix,
-                $fallbackSuffix
-            );
-            $current = $fallbackCatalogue->getLocale();
-            $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue();
-        }
-
-        return $fallbackContent;
-    }
-
-    private function getCatalogueCachePath($locale)
-    {
-        return $this->cacheDir.'/catalogue.'.$locale.'.'.sha1(serialize($this->fallbackLocales)).'.php';
-    }
-
-    private function doLoadCatalogue($locale)
-    {
-        $this->catalogues[$locale] = new MessageCatalogue($locale);
-
-        if (isset($this->resources[$locale])) {
-            foreach ($this->resources[$locale] as $resource) {
-                if (!isset($this->loaders[$resource[0]])) {
-                    throw new \RuntimeException(sprintf('The "%s" translation loader is not registered.', $resource[0]));
-                }
-                $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2]));
-            }
-        }
-    }
-
-    private function loadFallbackCatalogues($locale)
-    {
-        $current = $this->catalogues[$locale];
-
-        foreach ($this->computeFallbackLocales($locale) as $fallback) {
-            if (!isset($this->catalogues[$fallback])) {
-                $this->doLoadCatalogue($fallback);
-            }
-
-            $current->addFallbackCatalogue($this->catalogues[$fallback]);
-            $current = $this->catalogues[$fallback];
-        }
-    }
-
-    protected function computeFallbackLocales($locale)
-    {
-        $locales = array();
-        foreach ($this->fallbackLocales as $fallback) {
-            if ($fallback === $locale) {
-                continue;
-            }
-
-            $locales[] = $fallback;
-        }
-
-        if (strrchr($locale, '_') !== false) {
-            array_unshift($locales, substr($locale, 0, -strlen(strrchr($locale, '_'))));
-        }
-
-        return array_unique($locales);
-    }
-
-    /**
-     * Asserts that the locale is valid, throws an Exception if not.
-     *
-     * @param string $locale Locale to tests
-     *
-     * @throws \InvalidArgumentException If the locale contains invalid characters
-     */
-    protected function assertValidLocale($locale)
-    {
-        if (1 !== preg_match('/^[a-z0-9@_\\.\\-]*$/i', $locale)) {
-            throw new \InvalidArgumentException(sprintf('Invalid "%s" locale.', $locale));
-        }
-    }
-
-    /**
-     * Provides the ConfigCache factory implementation, falling back to a
-     * default implementation if necessary.
-     *
-     * @return ConfigCacheFactoryInterface $configCacheFactory
-     */
-    private function getConfigCacheFactory()
-    {
-        if (!$this->configCacheFactory) {
-            $this->configCacheFactory = new ConfigCacheFactory($this->debug);
-        }
-
-        return $this->configCacheFactory;
-    }
-}
diff --git a/core/vendor/symfony/translation/TranslatorBagInterface.php b/core/vendor/symfony/translation/TranslatorBagInterface.php
deleted file mode 100644
index 6f650b5..0000000
--- a/core/vendor/symfony/translation/TranslatorBagInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * TranslatorBagInterface.
- *
- * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
- */
-interface TranslatorBagInterface
-{
-    /**
-     * Gets the catalogue by locale.
-     *
-     * @param string|null $locale The locale or null to use the default
-     *
-     * @throws \InvalidArgumentException If the locale contains invalid characters
-     *
-     * @return MessageCatalogueInterface
-     */
-    public function getCatalogue($locale = null);
-}
diff --git a/core/vendor/symfony/translation/TranslatorInterface.php b/core/vendor/symfony/translation/TranslatorInterface.php
deleted file mode 100644
index fe1a865..0000000
--- a/core/vendor/symfony/translation/TranslatorInterface.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation;
-
-/**
- * TranslatorInterface.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface TranslatorInterface
-{
-    /**
-     * Translates the given message.
-     *
-     * @param string      $id         The message id (may also be an object that can be cast to string)
-     * @param array       $parameters An array of parameters for the message
-     * @param string|null $domain     The domain for the message or null to use the default
-     * @param string|null $locale     The locale or null to use the default
-     *
-     * @throws \InvalidArgumentException If the locale contains invalid characters
-     *
-     * @return string The translated string
-     *
-     * @api
-     */
-    public function trans($id, array $parameters = array(), $domain = null, $locale = null);
-
-    /**
-     * Translates the given choice message by choosing a translation according to a number.
-     *
-     * @param string      $id         The message id (may also be an object that can be cast to string)
-     * @param int         $number     The number to use to find the indice of the message
-     * @param array       $parameters An array of parameters for the message
-     * @param string|null $domain     The domain for the message or null to use the default
-     * @param string|null $locale     The locale or null to use the default
-     *
-     * @throws \InvalidArgumentException If the locale contains invalid characters
-     *
-     * @return string The translated string
-     *
-     * @api
-     */
-    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null);
-
-    /**
-     * Sets the current locale.
-     *
-     * @param string $locale The locale
-     *
-     * @throws \InvalidArgumentException If the locale contains invalid characters
-     *
-     * @api
-     */
-    public function setLocale($locale);
-
-    /**
-     * Returns the current locale.
-     *
-     * @return string The locale
-     *
-     * @api
-     */
-    public function getLocale();
-}
diff --git a/core/vendor/symfony/translation/Writer/TranslationWriter.php b/core/vendor/symfony/translation/Writer/TranslationWriter.php
deleted file mode 100644
index 44ac182..0000000
--- a/core/vendor/symfony/translation/Writer/TranslationWriter.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Translation\Writer;
-
-use Symfony\Component\Translation\MessageCatalogue;
-use Symfony\Component\Translation\Dumper\DumperInterface;
-
-/**
- * TranslationWriter writes translation messages.
- *
- * @author Michel Salib <michelsalib@hotmail.com>
- */
-class TranslationWriter
-{
-    /**
-     * Dumpers used for export.
-     *
-     * @var array
-     */
-    private $dumpers = array();
-
-    /**
-     * Adds a dumper to the writer.
-     *
-     * @param string          $format The format of the dumper
-     * @param DumperInterface $dumper The dumper
-     */
-    public function addDumper($format, DumperInterface $dumper)
-    {
-        $this->dumpers[$format] = $dumper;
-    }
-
-    /**
-     * Disables dumper backup.
-     */
-    public function disableBackup()
-    {
-        foreach ($this->dumpers as $dumper) {
-            $dumper->setBackup(false);
-        }
-    }
-
-    /**
-     * Obtains the list of supported formats.
-     *
-     * @return array
-     */
-    public function getFormats()
-    {
-        return array_keys($this->dumpers);
-    }
-
-    /**
-     * Writes translation from the catalogue according to the selected format.
-     *
-     * @param MessageCatalogue $catalogue The message catalogue to dump
-     * @param string           $format    The format to use to dump the messages
-     * @param array            $options   Options that are passed to the dumper
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function writeTranslations(MessageCatalogue $catalogue, $format, $options = array())
-    {
-        if (!isset($this->dumpers[$format])) {
-            throw new \InvalidArgumentException(sprintf('There is no dumper associated with format "%s".', $format));
-        }
-
-        // get the right dumper
-        $dumper = $this->dumpers[$format];
-
-        if (isset($options['path']) && !is_dir($options['path'])) {
-            mkdir($options['path'], 0777, true);
-        }
-
-        // save
-        $dumper->dump($catalogue, $options);
-    }
-}
diff --git a/core/vendor/symfony/translation/composer.json b/core/vendor/symfony/translation/composer.json
deleted file mode 100644
index 6f1053e..0000000
--- a/core/vendor/symfony/translation/composer.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-    "name": "symfony/translation",
-    "type": "library",
-    "description": "Symfony Translation Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/config": "~2.7",
-        "symfony/intl": "~2.3",
-        "symfony/yaml": "~2.2",
-        "psr/log": "~1.0"
-    },
-    "conflict": {
-        "symfony/config": "<2.7"
-    },
-    "suggest": {
-        "symfony/config": "",
-        "symfony/yaml": "",
-        "psr/log": "To use logging capability in translator"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Translation\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/translation/phpunit.xml.dist b/core/vendor/symfony/translation/phpunit.xml.dist
deleted file mode 100644
index 16cca4a..0000000
--- a/core/vendor/symfony/translation/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Translation Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./vendor</directory>
-                <directory>./Tests</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/validator/.gitignore b/core/vendor/symfony/validator/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/validator/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/validator/CHANGELOG.md b/core/vendor/symfony/validator/CHANGELOG.md
deleted file mode 100644
index 4531286..0000000
--- a/core/vendor/symfony/validator/CHANGELOG.md
+++ /dev/null
@@ -1,170 +0,0 @@
-CHANGELOG
-=========
-
-2.7.0
------
-
- * deprecated `DefaultTranslator` in favor of `Symfony\Component\Translation\IdentityTranslator`
- * deprecated PHP7-incompatible constraints (Null, True, False) and related validators (NullValidator, TrueValidator, FalseValidator) in favor of their `Is`-prefixed equivalent
-
-2.6.0
------
-
- * [BC BREAK] `FileValidator` disallow empty files
- * [BC BREAK] `UserPasswordValidator` source message change
- * [BC BREAK] added internal `ExecutionContextInterface::setConstraint()`
- * added `ConstraintViolation::getConstraint()`
- * [BC BREAK] The `ExpressionValidator` will now evaluate the Expression even when the property value is null or an empty string
- * deprecated `ClassMetadata::hasMemberMetadatas()`
- * deprecated `ClassMetadata::getMemberMetadatas()`
- * deprecated `ClassMetadata::addMemberMetadata()`
- * [BC BREAK] added `Mapping\MetadataInterface::getConstraints()`
- * added generic "payload" option to all constraints for attaching domain-specific data
- * [BC BREAK] added `ConstraintViolationBuilderInterface::setCause()`
-
-2.5.0
------
-
- * deprecated `ApcCache` in favor of `DoctrineCache`
- * added `DoctrineCache` to adapt any Doctrine cache
- * `GroupSequence` now implements `ArrayAccess`, `Countable` and `Traversable`
- * [BC BREAK] changed `ClassMetadata::getGroupSequence()` to return a `GroupSequence` instance instead of an array
- * `Callback` can now be put onto properties (useful when you pass a closure to the constraint)
- * deprecated `ClassBasedInterface`
- * deprecated `MetadataInterface`
- * deprecated `PropertyMetadataInterface`
- * deprecated `PropertyMetadataContainerInterface`
- * deprecated `Mapping\ElementMetadata`
- * added `Mapping\MetadataInterface`
- * added `Mapping\ClassMetadataInterface`
- * added `Mapping\PropertyMetadataInterface`
- * added `Mapping\GenericMetadata`
- * added `Mapping\CascadingStrategy`
- * added `Mapping\TraversalStrategy`
- * deprecated `Mapping\ClassMetadata::accept()`
- * deprecated `Mapping\MemberMetadata::accept()`
- * removed array type hint of `Mapping\ClassMetadata::setGroupSequence()`
- * deprecated `MetadataFactoryInterface`
- * deprecated `Mapping\BlackholeMetadataFactory`
- * deprecated `Mapping\ClassMetadataFactory`
- * added `Mapping\Factory\MetadataFactoryInterface`
- * added `Mapping\Factory\BlackHoleMetadataFactory`
- * added `Mapping\Factory\LazyLoadingMetadataFactory`
- * deprecated `ExecutionContextInterface`
- * deprecated `ExecutionContext`
- * deprecated `GlobalExecutionContextInterface`
- * added `Context\ExecutionContextInterface`
- * added `Context\ExecutionContext`
- * added `Context\ExecutionContextFactoryInterface`
- * added `Context\ExecutionContextFactory`
- * deprecated `ValidatorInterface`
- * deprecated `Validator`
- * deprecated `ValidationVisitorInterface`
- * deprecated `ValidationVisitor`
- * added `Validator\ValidatorInterface`
- * added `Validator\RecursiveValidator`
- * added `Validator\ContextualValidatorInterface`
- * added `Validator\RecursiveContextualValidator`
- * added `Violation\ConstraintViolationBuilderInterface`
- * added `Violation\ConstraintViolationBuilder`
- * added `ConstraintViolation::getParameters()`
- * added `ConstraintViolation::getPlural()`
- * added `Constraints\Traverse`
- * deprecated `$deep` property in `Constraints\Valid`
- * added `ValidatorBuilderInterface::setApiVersion()`
- * added `Validation::API_VERSION_2_4`
- * added `Validation::API_VERSION_2_5`
- * added `Exception\OutOfBoundsException`
- * added `Exception\UnsupportedMetadataException`
- * made `Exception\ValidatorException` extend `Exception\RuntimeException`
- * added `Util\PropertyPath`
- * made the PropertyAccess component an optional dependency
- * deprecated `ValidatorBuilder::setPropertyAccessor()`
- * deprecated `validate` and `validateValue` on `Validator\Context\ExecutionContext` use `getValidator()` together with `inContext()` instead
-
-2.4.0
------
-
- * added a constraint the uses the expression language
- * added `minRatio`, `maxRatio`, `allowSquare`, `allowLandscape`, and `allowPortrait` to Image validator
-
-2.3.29
-------
-
- * fixed compatibility with PHP7 and up by introducing new constraints (IsNull, IsTrue, IsFalse) and related validators (IsNullValidator, IsTrueValidator, IsFalseValidator)
-
-2.3.0
------
-
- * added the ISBN, ISSN, and IBAN validators
- * copied the constraints `Optional` and `Required` to the
-   `Symfony\Component\Validator\Constraints\` namespace and deprecated the original
-   classes.
- * added comparison validators (EqualTo, NotEqualTo, LessThan, LessThanOrEqualTo, GreaterThan, GreaterThanOrEqualTo, IdenticalTo, NotIdenticalTo)
-
-2.2.0
------
-
- * added a CardScheme validator
- * added a Luhn validator
- * moved @api-tags from `Validator` to `ValidatorInterface`
- * moved @api-tags from `ConstraintViolation` to the new `ConstraintViolationInterface`
- * moved @api-tags from `ConstraintViolationList` to the new `ConstraintViolationListInterface`
- * moved @api-tags from `ExecutionContext` to the new `ExecutionContextInterface`
- * [BC BREAK] `ConstraintValidatorInterface::initialize` is now type hinted against `ExecutionContextInterface` instead of `ExecutionContext`
- * [BC BREAK] changed the visibility of the properties in `Validator` from protected to private
- * deprecated `ClassMetadataFactoryInterface` in favor of the new `MetadataFactoryInterface`
- * deprecated `ClassMetadataFactory::getClassMetadata` in favor of `getMetadataFor`
- * created `MetadataInterface`, `PropertyMetadataInterface`, `ClassBasedInterface` and `PropertyMetadataContainerInterface`
- * deprecated `GraphWalker` in favor of the new `ValidationVisitorInterface`
- * deprecated `ExecutionContext::addViolationAtPath`
- * deprecated `ExecutionContext::addViolationAtSubPath` in favor of `ExecutionContextInterface::addViolationAt`
- * deprecated `ExecutionContext::getCurrentClass` in favor of `ExecutionContextInterface::getClassName`
- * deprecated `ExecutionContext::getCurrentProperty` in favor of `ExecutionContextInterface::getPropertyName`
- * deprecated `ExecutionContext::getCurrentValue` in favor of `ExecutionContextInterface::getValue`
- * deprecated `ExecutionContext::getGraphWalker` in favor of `ExecutionContextInterface::validate` and `ExecutionContextInterface::validateValue`
- * improved `ValidatorInterface::validateValue` to accept arrays of constraints
- * changed `ValidatorInterface::getMetadataFactory` to return a `MetadataFactoryInterface` instead of a `ClassMetadataFactoryInterface`
- * removed `ClassMetadataFactoryInterface` type hint from `ValidatorBuilderInterface::setMetadataFactory`.
-   As of Symfony 2.3, this method will be typed against `MetadataFactoryInterface` instead.
- * [BC BREAK] the switches `traverse` and `deep` in the `Valid` constraint and in `GraphWalker::walkReference`
-   are ignored for arrays now. Arrays are always traversed recursively.
- * added dependency to Translation component
- * violation messages are now translated with a TranslatorInterface implementation
- * [BC BREAK] inserted argument `$message` in the constructor of `ConstraintViolation`
- * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `ExecutionContext`
- * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `GraphWalker`
- * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `ValidationVisitor`
- * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `Validator`
- * [BC BREAK] added `setTranslator()` and `setTranslationDomain()` to `ValidatorBuilderInterface`
- * improved the Validator to support pluralized messages by default
- * [BC BREAK] changed the source of all pluralized messages in the translation files to the pluralized version
- * added ExceptionInterface, BadMethodCallException and InvalidArgumentException
-
-2.1.0
------
-
- * added support for `ctype_*` assertions in `TypeValidator`
- * improved the ImageValidator with min width, max width, min height, and max height constraints
- * added support for MIME with wildcard in FileValidator
- * changed Collection validator to add "missing" and "extra" errors to
-   individual fields
- * changed default value for `extraFieldsMessage` and `missingFieldsMessage`
-   in Collection constraint
- * made ExecutionContext immutable
- * deprecated Constraint methods `setMessage`, `getMessageTemplate` and
-   `getMessageParameters`
- * added support for dynamic group sequences with the GroupSequenceProvider pattern
- * [BC BREAK] ConstraintValidatorInterface method `isValid` has been renamed to
-   `validate`, its return value was dropped. ConstraintValidator still contains
-   `isValid` for BC
- * [BC BREAK] collections in fields annotated with `Valid` are not traversed
-   recursively anymore by default. `Valid` contains a new property `deep`
-   which enables the BC behavior.
- * added Count constraint
- * added Length constraint
- * added Range constraint
- * deprecated the Min and Max constraints
- * deprecated the MinLength and MaxLength constraints
- * added Validation and ValidatorBuilderInterface
- * deprecated ValidatorContext, ValidatorContextInterface and ValidatorFactory
diff --git a/core/vendor/symfony/validator/ClassBasedInterface.php b/core/vendor/symfony/validator/ClassBasedInterface.php
deleted file mode 100644
index 7c2eb8f..0000000
--- a/core/vendor/symfony/validator/ClassBasedInterface.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * An object backed by a PHP class.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Mapping\ClassMetadataInterface} instead.
- */
-interface ClassBasedInterface
-{
-    /**
-     * Returns the name of the backing PHP class.
-     *
-     * @return string The name of the backing class.
-     */
-    public function getClassName();
-}
diff --git a/core/vendor/symfony/validator/Constraint.php b/core/vendor/symfony/validator/Constraint.php
deleted file mode 100644
index ad86f44..0000000
--- a/core/vendor/symfony/validator/Constraint.php
+++ /dev/null
@@ -1,321 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\Exception\InvalidArgumentException;
-use Symfony\Component\Validator\Exception\InvalidOptionsException;
-use Symfony\Component\Validator\Exception\MissingOptionsException;
-
-/**
- * Contains the properties of a constraint definition.
- *
- * A constraint can be defined on a class, an option or a getter method.
- * The Constraint class encapsulates all the configuration required for
- * validating this class, option or getter result successfully.
- *
- * Constraint instances are immutable and serializable.
- *
- * @property array $groups The groups that the constraint belongs to
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-abstract class Constraint
-{
-    /**
-     * The name of the group given to all constraints with no explicit group.
-     *
-     * @var string
-     */
-    const DEFAULT_GROUP = 'Default';
-
-    /**
-     * Marks a constraint that can be put onto classes.
-     *
-     * @var string
-     */
-    const CLASS_CONSTRAINT = 'class';
-
-    /**
-     * Marks a constraint that can be put onto properties.
-     *
-     * @var string
-     */
-    const PROPERTY_CONSTRAINT = 'property';
-
-    /**
-     * Maps error codes to the names of their constants
-     * @var array
-     */
-    protected static $errorNames = array();
-
-    /**
-     * Domain-specific data attached to a constraint
-     * @var mixed
-     */
-    public $payload;
-
-    /**
-     * Returns the name of the given error code.
-     *
-     * @param int $errorCode The error code
-     *
-     * @return string The name of the error code
-     *
-     * @throws InvalidArgumentException If the error code does not exist
-     */
-    public static function getErrorName($errorCode)
-    {
-        if (!isset(static::$errorNames[$errorCode])) {
-            throw new InvalidArgumentException(sprintf(
-                'The error code "%s" does not exist for constraint of type "%s".',
-                $errorCode,
-                get_called_class()
-            ));
-        }
-
-        return static::$errorNames[$errorCode];
-    }
-
-    /**
-     * Initializes the constraint with options.
-     *
-     * You should pass an associative array. The keys should be the names of
-     * existing properties in this class. The values should be the value for these
-     * properties.
-     *
-     * Alternatively you can override the method getDefaultOption() to return the
-     * name of an existing property. If no associative array is passed, this
-     * property is set instead.
-     *
-     * You can force that certain options are set by overriding
-     * getRequiredOptions() to return the names of these options. If any
-     * option is not set here, an exception is thrown.
-     *
-     * @param mixed $options The options (as associative array)
-     *                       or the value for the default
-     *                       option (any other type)
-     *
-     * @throws InvalidOptionsException       When you pass the names of non-existing
-     *                                       options
-     * @throws MissingOptionsException       When you don't pass any of the options
-     *                                       returned by getRequiredOptions()
-     * @throws ConstraintDefinitionException When you don't pass an associative
-     *                                       array, but getDefaultOption() returns
-     *                                       null
-     *
-     * @api
-     */
-    public function __construct($options = null)
-    {
-        $invalidOptions = array();
-        $missingOptions = array_flip((array) $this->getRequiredOptions());
-        $knownOptions = get_object_vars($this);
-
-        // The "groups" option is added to the object lazily
-        $knownOptions['groups'] = true;
-
-        if (is_array($options) && count($options) >= 1 && isset($options['value']) && !property_exists($this, 'value')) {
-            $options[$this->getDefaultOption()] = $options['value'];
-            unset($options['value']);
-        }
-
-        if (is_array($options) && count($options) > 0 && is_string(key($options))) {
-            foreach ($options as $option => $value) {
-                if (array_key_exists($option, $knownOptions)) {
-                    $this->$option = $value;
-                    unset($missingOptions[$option]);
-                } else {
-                    $invalidOptions[] = $option;
-                }
-            }
-        } elseif (null !== $options && !(is_array($options) && count($options) === 0)) {
-            $option = $this->getDefaultOption();
-
-            if (null === $option) {
-                throw new ConstraintDefinitionException(
-                    sprintf('No default option is configured for constraint %s', get_class($this))
-                );
-            }
-
-            if (array_key_exists($option, $knownOptions)) {
-                $this->$option = $options;
-                unset($missingOptions[$option]);
-            } else {
-                $invalidOptions[] = $option;
-            }
-        }
-
-        if (count($invalidOptions) > 0) {
-            throw new InvalidOptionsException(
-                sprintf('The options "%s" do not exist in constraint %s', implode('", "', $invalidOptions), get_class($this)),
-                $invalidOptions
-            );
-        }
-
-        if (count($missingOptions) > 0) {
-            throw new MissingOptionsException(
-                sprintf('The options "%s" must be set for constraint %s', implode('", "', array_keys($missingOptions)), get_class($this)),
-                array_keys($missingOptions)
-            );
-        }
-    }
-
-    /**
-     * Sets the value of a lazily initialized option.
-     *
-     * Corresponding properties are added to the object on first access. Hence
-     * this method will be called at most once per constraint instance and
-     * option name.
-     *
-     * @param string $option The option name
-     * @param mixed  $value  The value to set
-     *
-     * @throws InvalidOptionsException If an invalid option name is given
-     */
-    public function __set($option, $value)
-    {
-        if ('groups' === $option) {
-            $this->groups = (array) $value;
-
-            return;
-        }
-
-        throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint %s', $option, get_class($this)), array($option));
-    }
-
-    /**
-     * Returns the value of a lazily initialized option.
-     *
-     * Corresponding properties are added to the object on first access. Hence
-     * this method will be called at most once per constraint instance and
-     * option name.
-     *
-     * @param string $option The option name
-     *
-     * @return mixed The value of the option
-     *
-     * @throws InvalidOptionsException If an invalid option name is given
-     *
-     * @internal This method should not be used or overwritten in userland code.
-     *
-     * @since 2.6
-     */
-    public function __get($option)
-    {
-        if ('groups' === $option) {
-            $this->groups = array(self::DEFAULT_GROUP);
-
-            return $this->groups;
-        }
-
-        throw new InvalidOptionsException(sprintf('The option "%s" does not exist in constraint %s', $option, get_class($this)), array($option));
-    }
-
-    /**
-     * Adds the given group if this constraint is in the Default group.
-     *
-     * @param string $group
-     *
-     * @api
-     */
-    public function addImplicitGroupName($group)
-    {
-        if (in_array(self::DEFAULT_GROUP, $this->groups) && !in_array($group, $this->groups)) {
-            $this->groups[] = $group;
-        }
-    }
-
-    /**
-     * Returns the name of the default option.
-     *
-     * Override this method to define a default option.
-     *
-     * @return string
-     *
-     * @see __construct()
-     *
-     * @api
-     */
-    public function getDefaultOption()
-    {
-    }
-
-    /**
-     * Returns the name of the required options.
-     *
-     * Override this method if you want to define required options.
-     *
-     * @return array
-     *
-     * @see __construct()
-     *
-     * @api
-     */
-    public function getRequiredOptions()
-    {
-        return array();
-    }
-
-    /**
-     * Returns the name of the class that validates this constraint.
-     *
-     * By default, this is the fully qualified name of the constraint class
-     * suffixed with "Validator". You can override this method to change that
-     * behaviour.
-     *
-     * @return string
-     *
-     * @api
-     */
-    public function validatedBy()
-    {
-        return get_class($this).'Validator';
-    }
-
-    /**
-     * Returns whether the constraint can be put onto classes, properties or
-     * both.
-     *
-     * This method should return one or more of the constants
-     * Constraint::CLASS_CONSTRAINT and Constraint::PROPERTY_CONSTRAINT.
-     *
-     * @return string|array One or more constant values
-     *
-     * @api
-     */
-    public function getTargets()
-    {
-        return self::PROPERTY_CONSTRAINT;
-    }
-
-    /**
-     * Optimizes the serialized value to minimize storage space.
-     *
-     * @return array The properties to serialize
-     *
-     * @internal This method may be replaced by an implementation of
-     *           {@link \Serializable} in the future. Please don't use or
-     *           overwrite it.
-     *
-     * @since 2.6
-     */
-    public function __sleep()
-    {
-        // Initialize "groups" option if it is not set
-        $this->groups;
-
-        return array_keys(get_object_vars($this));
-    }
-}
diff --git a/core/vendor/symfony/validator/ConstraintValidator.php b/core/vendor/symfony/validator/ConstraintValidator.php
deleted file mode 100644
index 3b5d6bc..0000000
--- a/core/vendor/symfony/validator/ConstraintValidator.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface as ExecutionContextInterface2Dot5;
-use Symfony\Component\Validator\Violation\ConstraintViolationBuilderInterface;
-use Symfony\Component\Validator\Violation\LegacyConstraintViolationBuilder;
-
-/**
- * Base class for constraint validators.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-abstract class ConstraintValidator implements ConstraintValidatorInterface
-{
-    /**
-     * Whether to format {@link \DateTime} objects as RFC-3339 dates
-     * ("Y-m-d H:i:s").
-     *
-     * @var int
-     */
-    const PRETTY_DATE = 1;
-
-    /**
-     * Whether to cast objects with a "__toString()" method to strings.
-     *
-     * @var int
-     */
-    const OBJECT_TO_STRING = 2;
-
-    /**
-     * @var ExecutionContextInterface
-     */
-    protected $context;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function initialize(ExecutionContextInterface $context)
-    {
-        $this->context = $context;
-    }
-
-    /**
-     * Wrapper for {@link ExecutionContextInterface::buildViolation} that
-     * supports the 2.4 context API.
-     *
-     * @param string $message    The violation message
-     * @param array  $parameters The message parameters
-     *
-     * @return ConstraintViolationBuilderInterface The violation builder
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    protected function buildViolation($message, array $parameters = array())
-    {
-        @trigger_error('The '.__METHOD__.' is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if ($this->context instanceof ExecutionContextInterface2Dot5) {
-            return $this->context->buildViolation($message, $parameters);
-        }
-
-        return new LegacyConstraintViolationBuilder($this->context, $message, $parameters);
-    }
-
-    /**
-     * Wrapper for {@link ExecutionContextInterface::buildViolation} that
-     * supports the 2.4 context API.
-     *
-     * @param ExecutionContextInterface $context    The context to use
-     * @param string                    $message    The violation message
-     * @param array                     $parameters The message parameters
-     *
-     * @return ConstraintViolationBuilderInterface The violation builder
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    protected function buildViolationInContext(ExecutionContextInterface $context, $message, array $parameters = array())
-    {
-        @trigger_error('The '.__METHOD__.' is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if ($context instanceof ExecutionContextInterface2Dot5) {
-            return $context->buildViolation($message, $parameters);
-        }
-
-        return new LegacyConstraintViolationBuilder($context, $message, $parameters);
-    }
-
-    /**
-     * Returns a string representation of the type of the value.
-     *
-     * This method should be used if you pass the type of a value as
-     * message parameter to a constraint violation. Note that such
-     * parameters should usually not be included in messages aimed at
-     * non-technical people.
-     *
-     * @param mixed $value The value to return the type of
-     *
-     * @return string The type of the value
-     */
-    protected function formatTypeOf($value)
-    {
-        return is_object($value) ? get_class($value) : gettype($value);
-    }
-
-    /**
-     * Returns a string representation of the value.
-     *
-     * This method returns the equivalent PHP tokens for most scalar types
-     * (i.e. "false" for false, "1" for 1 etc.). Strings are always wrapped
-     * in double quotes ("). Objects, arrays and resources are formatted as
-     * "object", "array" and "resource". If the parameter $prettyDateTime
-     * is set to true, {@link \DateTime} objects will be formatted as
-     * RFC-3339 dates ("Y-m-d H:i:s").
-     *
-     * Be careful when passing message parameters to a constraint violation
-     * that (may) contain objects, arrays or resources. These parameters
-     * should only be displayed for technical users. Non-technical users
-     * won't know what an "object", "array" or "resource" is and will be
-     * confused by the violation message.
-     *
-     * @param mixed $value  The value to format as string
-     * @param int   $format A bitwise combination of the format
-     *                      constants in this class
-     *
-     * @return string The string representation of the passed value
-     */
-    protected function formatValue($value, $format = 0)
-    {
-        $isDateTime = $value instanceof \DateTime || $value instanceof \DateTimeInterface;
-
-        if (($format & self::PRETTY_DATE) && $isDateTime) {
-            if (class_exists('IntlDateFormatter')) {
-                $locale = \Locale::getDefault();
-                $formatter = new \IntlDateFormatter($locale, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT);
-
-                // neither the native nor the stub IntlDateFormatter support
-                // DateTimeImmutable as of yet
-                if (!$value instanceof \DateTime) {
-                    $value = new \DateTime(
-                        $value->format('Y-m-d H:i:s.u e'),
-                        $value->getTimezone()
-                    );
-                }
-
-                return $formatter->format($value);
-            }
-
-            return $value->format('Y-m-d H:i:s');
-        }
-
-        if (is_object($value)) {
-            if ($format & self::OBJECT_TO_STRING && method_exists($value, '__toString')) {
-                return $value->__toString();
-            }
-
-            return 'object';
-        }
-
-        if (is_array($value)) {
-            return 'array';
-        }
-
-        if (is_string($value)) {
-            return '"'.$value.'"';
-        }
-
-        if (is_resource($value)) {
-            return 'resource';
-        }
-
-        if (null === $value) {
-            return 'null';
-        }
-
-        if (false === $value) {
-            return 'false';
-        }
-
-        if (true === $value) {
-            return 'true';
-        }
-
-        return (string) $value;
-    }
-
-    /**
-     * Returns a string representation of a list of values.
-     *
-     * Each of the values is converted to a string using
-     * {@link formatValue()}. The values are then concatenated with commas.
-     *
-     * @param array $values A list of values
-     * @param int   $format A bitwise combination of the format
-     *                      constants in this class
-     *
-     * @return string The string representation of the value list
-     *
-     * @see formatValue()
-     */
-    protected function formatValues(array $values, $format = 0)
-    {
-        foreach ($values as $key => $value) {
-            $values[$key] = $this->formatValue($value, $format);
-        }
-
-        return implode(', ', $values);
-    }
-}
diff --git a/core/vendor/symfony/validator/ConstraintValidatorFactory.php b/core/vendor/symfony/validator/ConstraintValidatorFactory.php
deleted file mode 100644
index cc6981b..0000000
--- a/core/vendor/symfony/validator/ConstraintValidatorFactory.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-use Symfony\Component\Validator\Constraints\ExpressionValidator;
-
-/**
- * Default implementation of the ConstraintValidatorFactoryInterface.
- *
- * This enforces the convention that the validatedBy() method on any
- * Constraint will return the class name of the ConstraintValidator that
- * should validate the Constraint.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ConstraintValidatorFactory implements ConstraintValidatorFactoryInterface
-{
-    protected $validators = array();
-
-    private $propertyAccessor;
-
-    public function __construct($propertyAccessor = null)
-    {
-        $this->propertyAccessor = $propertyAccessor;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getInstance(Constraint $constraint)
-    {
-        $className = $constraint->validatedBy();
-
-        if (!isset($this->validators[$className])) {
-            $this->validators[$className] = 'validator.expression' === $className
-                ? new ExpressionValidator($this->propertyAccessor)
-                : new $className();
-        }
-
-        return $this->validators[$className];
-    }
-}
diff --git a/core/vendor/symfony/validator/ConstraintValidatorFactoryInterface.php b/core/vendor/symfony/validator/ConstraintValidatorFactoryInterface.php
deleted file mode 100644
index 5e21627..0000000
--- a/core/vendor/symfony/validator/ConstraintValidatorFactoryInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Specifies an object able to return the correct ConstraintValidatorInterface
- * instance given a Constraint object.
- */
-interface ConstraintValidatorFactoryInterface
-{
-    /**
-     * Given a Constraint, this returns the ConstraintValidatorInterface
-     * object that should be used to verify its validity.
-     *
-     * @param Constraint $constraint The source constraint
-     *
-     * @return ConstraintValidatorInterface
-     */
-    public function getInstance(Constraint $constraint);
-}
diff --git a/core/vendor/symfony/validator/ConstraintValidatorInterface.php b/core/vendor/symfony/validator/ConstraintValidatorInterface.php
deleted file mode 100644
index f7538a1..0000000
--- a/core/vendor/symfony/validator/ConstraintValidatorInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-interface ConstraintValidatorInterface
-{
-    /**
-     * Initializes the constraint validator.
-     *
-     * @param ExecutionContextInterface $context The current validation context
-     */
-    public function initialize(ExecutionContextInterface $context);
-
-    /**
-     * Checks if the passed value is valid.
-     *
-     * @param mixed      $value      The value that should be validated
-     * @param Constraint $constraint The constraint for the validation
-     *
-     * @api
-     */
-    public function validate($value, Constraint $constraint);
-}
diff --git a/core/vendor/symfony/validator/ConstraintViolation.php b/core/vendor/symfony/validator/ConstraintViolation.php
deleted file mode 100644
index 31b44d2..0000000
--- a/core/vendor/symfony/validator/ConstraintViolation.php
+++ /dev/null
@@ -1,243 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Default implementation of {@ConstraintViolationInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ConstraintViolation implements ConstraintViolationInterface
-{
-    /**
-     * @var string
-     */
-    private $message;
-
-    /**
-     * @var string
-     */
-    private $messageTemplate;
-
-    /**
-     * @var array
-     */
-    private $parameters;
-
-    /**
-     * @var int|null
-     */
-    private $plural;
-
-    /**
-     * @var mixed
-     */
-    private $root;
-
-    /**
-     * @var string
-     */
-    private $propertyPath;
-
-    /**
-     * @var mixed
-     */
-    private $invalidValue;
-
-    /**
-     * @var Constraint|null
-     */
-    private $constraint;
-
-    /**
-     * @var mixed
-     */
-    private $code;
-
-    /**
-     * @var mixed
-     */
-    private $cause;
-
-    /**
-     * Creates a new constraint violation.
-     *
-     * @param string          $message         The violation message
-     * @param string          $messageTemplate The raw violation message
-     * @param array           $parameters      The parameters to substitute in the
-     *                                         raw violation message
-     * @param mixed           $root            The value originally passed to the
-     *                                         validator
-     * @param string          $propertyPath    The property path from the root
-     *                                         value to the invalid value
-     * @param mixed           $invalidValue    The invalid value that caused this
-     *                                         violation
-     * @param int|null        $plural          The number for determining the plural
-     *                                         form when translating the message
-     * @param mixed           $code            The error code of the violation
-     * @param Constraint|null $constraint      The constraint whose validation
-     *                                         caused the violation
-     * @param mixed           $cause           The cause of the violation
-     */
-    public function __construct($message, $messageTemplate, array $parameters, $root, $propertyPath, $invalidValue, $plural = null, $code = null, Constraint $constraint = null, $cause = null)
-    {
-        $this->message = $message;
-        $this->messageTemplate = $messageTemplate;
-        $this->parameters = $parameters;
-        $this->plural = $plural;
-        $this->root = $root;
-        $this->propertyPath = $propertyPath;
-        $this->invalidValue = $invalidValue;
-        $this->constraint = $constraint;
-        $this->code = $code;
-        $this->cause = $cause;
-    }
-
-    /**
-     * Converts the violation into a string for debugging purposes.
-     *
-     * @return string The violation as string.
-     */
-    public function __toString()
-    {
-        if (is_object($this->root)) {
-            $class = 'Object('.get_class($this->root).')';
-        } elseif (is_array($this->root)) {
-            $class = 'Array';
-        } else {
-            $class = (string) $this->root;
-        }
-
-        $propertyPath = (string) $this->propertyPath;
-        $code = $this->code;
-
-        if ('' !== $propertyPath && '[' !== $propertyPath[0] && '' !== $class) {
-            $class .= '.';
-        }
-
-        if (!empty($code)) {
-            $code = ' (code '.$code.')';
-        }
-
-        return $class.$propertyPath.":\n    ".$this->getMessage().$code;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMessageTemplate()
-    {
-        return $this->messageTemplate;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @deprecated since version 2.7, to be removed in 3.0.
-     *             Use getParameters() instead
-     */
-    public function getMessageParameters()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.7, to be removed in 3.0. Use the ConstraintViolation::getParameters() method instead.', E_USER_DEPRECATED);
-
-        return $this->parameters;
-    }
-
-    /**
-     * Alias of {@link getMessageParameters()}.
-     */
-    public function getParameters()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @deprecated since version 2.7, to be removed in 3.0.
-     *             Use getPlural() instead
-     */
-    public function getMessagePluralization()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.7, to be removed in 3.0. Use the ConstraintViolation::getPlural() method instead.', E_USER_DEPRECATED);
-
-        return $this->plural;
-    }
-
-    /**
-     * Alias of {@link getMessagePluralization()}.
-     */
-    public function getPlural()
-    {
-        return $this->plural;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMessage()
-    {
-        return $this->message;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRoot()
-    {
-        return $this->root;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyPath()
-    {
-        return $this->propertyPath;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getInvalidValue()
-    {
-        return $this->invalidValue;
-    }
-
-    /**
-     * Returns the constraint whose validation caused the violation.
-     *
-     * @return Constraint|null The constraint or null if it is not known
-     */
-    public function getConstraint()
-    {
-        return $this->constraint;
-    }
-
-    /**
-     * Returns the cause of the violation.
-     *
-     * @return mixed
-     */
-    public function getCause()
-    {
-        return $this->cause;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCode()
-    {
-        return $this->code;
-    }
-}
diff --git a/core/vendor/symfony/validator/ConstraintViolationInterface.php b/core/vendor/symfony/validator/ConstraintViolationInterface.php
deleted file mode 100644
index 232fb55..0000000
--- a/core/vendor/symfony/validator/ConstraintViolationInterface.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * A violation of a constraint that happened during validation.
- *
- * For each constraint that fails during validation one or more violations are
- * created. The violations store the violation message, the path to the failing
- * element in the validation graph and the root element that was originally
- * passed to the validator. For example, take the following graph:
- *
- * <pre>
- * (Person)---(firstName: string)
- *      \
- *   (address: Address)---(street: string)
- * </pre>
- *
- * If the <tt>Person</tt> object is validated and validation fails for the
- * "firstName" property, the generated violation has the <tt>Person</tt>
- * instance as root and the property path "firstName". If validation fails
- * for the "street" property of the related <tt>Address</tt> instance, the root
- * element is still the person, but the property path is "address.street".
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-interface ConstraintViolationInterface
-{
-    /**
-     * Returns the violation message.
-     *
-     * @return string The violation message.
-     *
-     * @api
-     */
-    public function getMessage();
-
-    /**
-     * Returns the raw violation message.
-     *
-     * The raw violation message contains placeholders for the parameters
-     * returned by {@link getMessageParameters}. Typically you'll pass the
-     * message template and parameters to a translation engine.
-     *
-     * @return string The raw violation message.
-     *
-     * @api
-     */
-    public function getMessageTemplate();
-
-    /**
-     * Returns the parameters to be inserted into the raw violation message.
-     *
-     * @return array A possibly empty list of parameters indexed by the names
-     *               that appear in the message template.
-     *
-     * @see getMessageTemplate()
-     *
-     * @api
-     */
-    public function getMessageParameters();
-
-    /**
-     * Returns a number for pluralizing the violation message.
-     *
-     * For example, the message template could have different translation based
-     * on a parameter "choices":
-     *
-     * <ul>
-     * <li>Please select exactly one entry. (choices=1)</li>
-     * <li>Please select two entries. (choices=2)</li>
-     * </ul>
-     *
-     * This method returns the value of the parameter for choosing the right
-     * pluralization form (in this case "choices").
-     *
-     * @return int|null The number to use to pluralize of the message.
-     */
-    public function getMessagePluralization();
-
-    /**
-     * Returns the root element of the validation.
-     *
-     * @return mixed The value that was passed originally to the validator when
-     *               the validation was started. Because the validator traverses
-     *               the object graph, the value at which the violation occurs
-     *               is not necessarily the value that was originally validated.
-     *
-     * @api
-     */
-    public function getRoot();
-
-    /**
-     * Returns the property path from the root element to the violation.
-     *
-     * @return string The property path indicates how the validator reached
-     *                the invalid value from the root element. If the root
-     *                element is a <tt>Person</tt> instance with a property
-     *                "address" that contains an <tt>Address</tt> instance
-     *                with an invalid property "street", the generated property
-     *                path is "address.street". Property access is denoted by
-     *                dots, while array access is denoted by square brackets,
-     *                for example "addresses[1].street".
-     *
-     * @api
-     */
-    public function getPropertyPath();
-
-    /**
-     * Returns the value that caused the violation.
-     *
-     * @return mixed The invalid value that caused the validated constraint to
-     *               fail.
-     *
-     * @api
-     */
-    public function getInvalidValue();
-
-    /**
-     * Returns a machine-digestible error code for the violation.
-     *
-     * @return mixed The error code.
-     */
-    public function getCode();
-}
diff --git a/core/vendor/symfony/validator/ConstraintViolationList.php b/core/vendor/symfony/validator/ConstraintViolationList.php
deleted file mode 100644
index cccfa86..0000000
--- a/core/vendor/symfony/validator/ConstraintViolationList.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Default implementation of {@ConstraintViolationListInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ConstraintViolationList implements \IteratorAggregate, ConstraintViolationListInterface
-{
-    /**
-     * @var ConstraintViolationInterface[]
-     */
-    private $violations = array();
-
-    /**
-     * Creates a new constraint violation list.
-     *
-     * @param ConstraintViolationInterface[] $violations The constraint violations to add to the list
-     */
-    public function __construct(array $violations = array())
-    {
-        foreach ($violations as $violation) {
-            $this->add($violation);
-        }
-    }
-
-    /**
-     * Converts the violation into a string for debugging purposes.
-     *
-     * @return string The violation as string.
-     */
-    public function __toString()
-    {
-        $string = '';
-
-        foreach ($this->violations as $violation) {
-            $string .= $violation."\n";
-        }
-
-        return $string;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function add(ConstraintViolationInterface $violation)
-    {
-        $this->violations[] = $violation;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addAll(ConstraintViolationListInterface $otherList)
-    {
-        foreach ($otherList as $violation) {
-            $this->violations[] = $violation;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function get($offset)
-    {
-        if (!isset($this->violations[$offset])) {
-            throw new \OutOfBoundsException(sprintf('The offset "%s" does not exist.', $offset));
-        }
-
-        return $this->violations[$offset];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($offset)
-    {
-        return isset($this->violations[$offset]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function set($offset, ConstraintViolationInterface $violation)
-    {
-        $this->violations[$offset] = $violation;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function remove($offset)
-    {
-        unset($this->violations[$offset]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->violations);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function count()
-    {
-        return count($this->violations);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function offsetExists($offset)
-    {
-        return $this->has($offset);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function offsetGet($offset)
-    {
-        return $this->get($offset);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function offsetSet($offset, $violation)
-    {
-        if (null === $offset) {
-            $this->add($violation);
-        } else {
-            $this->set($offset, $violation);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function offsetUnset($offset)
-    {
-        $this->remove($offset);
-    }
-}
diff --git a/core/vendor/symfony/validator/ConstraintViolationListInterface.php b/core/vendor/symfony/validator/ConstraintViolationListInterface.php
deleted file mode 100644
index 088c70c..0000000
--- a/core/vendor/symfony/validator/ConstraintViolationListInterface.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * A list of constraint violations.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-interface ConstraintViolationListInterface extends \Traversable, \Countable, \ArrayAccess
-{
-    /**
-     * Adds a constraint violation to this list.
-     *
-     * @param ConstraintViolationInterface $violation The violation to add.
-     *
-     * @api
-     */
-    public function add(ConstraintViolationInterface $violation);
-
-    /**
-     * Merges an existing violation list into this list.
-     *
-     * @param ConstraintViolationListInterface $otherList The list to merge.
-     *
-     * @api
-     */
-    public function addAll(ConstraintViolationListInterface $otherList);
-
-    /**
-     * Returns the violation at a given offset.
-     *
-     * @param int $offset The offset of the violation.
-     *
-     * @return ConstraintViolationInterface The violation.
-     *
-     * @throws \OutOfBoundsException If the offset does not exist.
-     *
-     * @api
-     */
-    public function get($offset);
-
-    /**
-     * Returns whether the given offset exists.
-     *
-     * @param int $offset The violation offset.
-     *
-     * @return bool Whether the offset exists.
-     *
-     * @api
-     */
-    public function has($offset);
-
-    /**
-     * Sets a violation at a given offset.
-     *
-     * @param int                          $offset    The violation offset.
-     * @param ConstraintViolationInterface $violation The violation.
-     *
-     * @api
-     */
-    public function set($offset, ConstraintViolationInterface $violation);
-
-    /**
-     * Removes a violation at a given offset.
-     *
-     * @param int $offset The offset to remove.
-     *
-     * @api
-     */
-    public function remove($offset);
-}
diff --git a/core/vendor/symfony/validator/Constraints/AbstractComparison.php b/core/vendor/symfony/validator/Constraints/AbstractComparison.php
deleted file mode 100644
index fb1f1f3..0000000
--- a/core/vendor/symfony/validator/Constraints/AbstractComparison.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * Used for the comparison of values.
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-abstract class AbstractComparison extends Constraint
-{
-    public $message;
-    public $value;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($options = null)
-    {
-        if (is_array($options) && !isset($options['value'])) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The %s constraint requires the "value" option to be set.',
-                get_class($this)
-            ));
-        }
-
-        parent::__construct($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'value';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/AbstractComparisonValidator.php b/core/vendor/symfony/validator/Constraints/AbstractComparisonValidator.php
deleted file mode 100644
index 67d73a5..0000000
--- a/core/vendor/symfony/validator/Constraints/AbstractComparisonValidator.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Provides a base class for the validation of property comparisons.
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class AbstractComparisonValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof AbstractComparison) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\AbstractComparison');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        $comparedValue = $constraint->value;
-
-        // Convert strings to DateTimes if comparing another DateTime
-        // This allows to compare with any date/time value supported by
-        // the DateTime constructor:
-        // http://php.net/manual/en/datetime.formats.php
-        if (is_string($comparedValue)) {
-            if ($value instanceof \DatetimeImmutable) {
-                // If $value is immutable, convert the compared value to a
-                // DateTimeImmutable too
-                $comparedValue = new \DatetimeImmutable($comparedValue);
-            } elseif ($value instanceof \DateTime || $value instanceof \DateTimeInterface) {
-                // Otherwise use DateTime
-                $comparedValue = new \DateTime($comparedValue);
-            }
-        }
-
-        if (!$this->compareValues($value, $comparedValue)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::OBJECT_TO_STRING | self::PRETTY_DATE))
-                    ->setParameter('{{ compared_value }}', $this->formatValue($comparedValue, self::OBJECT_TO_STRING | self::PRETTY_DATE))
-                    ->setParameter('{{ compared_value_type }}', $this->formatTypeOf($comparedValue))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::OBJECT_TO_STRING | self::PRETTY_DATE))
-                    ->setParameter('{{ compared_value }}', $this->formatValue($comparedValue, self::OBJECT_TO_STRING | self::PRETTY_DATE))
-                    ->setParameter('{{ compared_value_type }}', $this->formatTypeOf($comparedValue))
-                    ->addViolation();
-            }
-        }
-    }
-
-    /**
-     * Compares the two given values to find if their relationship is valid.
-     *
-     * @param mixed $value1 The first value to compare
-     * @param mixed $value2 The second value to compare
-     *
-     * @return bool true if the relationship is valid, false otherwise
-     */
-    abstract protected function compareValues($value1, $value2);
-}
diff --git a/core/vendor/symfony/validator/Constraints/All.php b/core/vendor/symfony/validator/Constraints/All.php
deleted file mode 100644
index 3250fcf..0000000
--- a/core/vendor/symfony/validator/Constraints/All.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class All extends Composite
-{
-    public $constraints = array();
-
-    public function getDefaultOption()
-    {
-        return 'constraints';
-    }
-
-    public function getRequiredOptions()
-    {
-        return array('constraints');
-    }
-
-    protected function getCompositeOption()
-    {
-        return 'constraints';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/AllValidator.php b/core/vendor/symfony/validator/Constraints/AllValidator.php
deleted file mode 100644
index a655afc..0000000
--- a/core/vendor/symfony/validator/Constraints/AllValidator.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class AllValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof All) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\All');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        if (!is_array($value) && !$value instanceof \Traversable) {
-            throw new UnexpectedTypeException($value, 'array or Traversable');
-        }
-
-        $context = $this->context;
-
-        if ($context instanceof ExecutionContextInterface) {
-            $validator = $context->getValidator()->inContext($context);
-
-            foreach ($value as $key => $element) {
-                $validator->atPath('['.$key.']')->validate($element, $constraint->constraints);
-            }
-        } else {
-            // 2.4 API
-            foreach ($value as $key => $element) {
-                $context->validateValue($element, $constraint->constraints, '['.$key.']');
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Blank.php b/core/vendor/symfony/validator/Constraints/Blank.php
deleted file mode 100644
index 766ce6c..0000000
--- a/core/vendor/symfony/validator/Constraints/Blank.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Blank extends Constraint
-{
-    public $message = 'This value should be blank.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/BlankValidator.php b/core/vendor/symfony/validator/Constraints/BlankValidator.php
deleted file mode 100644
index 2d26e4a..0000000
--- a/core/vendor/symfony/validator/Constraints/BlankValidator.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class BlankValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Blank) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Blank');
-        }
-
-        if ('' !== $value && null !== $value) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Callback.php b/core/vendor/symfony/validator/Constraints/Callback.php
deleted file mode 100644
index d1d05fa..0000000
--- a/core/vendor/symfony/validator/Constraints/Callback.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Callback extends Constraint
-{
-    /**
-     * @var string|callable
-     *
-     * @since 2.4
-     */
-    public $callback;
-
-    /**
-     * @var array
-     *
-     * @deprecated since version 2.4, to be removed in 3.0.
-     */
-    public $methods;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($options = null)
-    {
-        // Invocation through annotations with an array parameter only
-        if (is_array($options) && 1 === count($options) && isset($options['value'])) {
-            $options = $options['value'];
-        }
-
-        if (is_array($options) && isset($options['methods'])) {
-            @trigger_error('The "methods" option of the '.__CLASS__.' class is deprecated since version 2.4 and will be removed in 3.0. Use the "callback" option instead.', E_USER_DEPRECATED);
-        }
-
-        if (is_array($options) && !isset($options['callback']) && !isset($options['methods']) && !isset($options['groups'])) {
-            if (is_callable($options) || !$options) {
-                $options = array('callback' => $options);
-            } else {
-                // @deprecated, to be removed in 3.0
-                $options = array('methods' => $options);
-            }
-        }
-
-        parent::__construct($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'callback';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTargets()
-    {
-        return array(self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/CallbackValidator.php b/core/vendor/symfony/validator/Constraints/CallbackValidator.php
deleted file mode 100644
index eaf2f3c..0000000
--- a/core/vendor/symfony/validator/Constraints/CallbackValidator.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validator for Callback constraint.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class CallbackValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($object, Constraint $constraint)
-    {
-        if (!$constraint instanceof Callback) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Callback');
-        }
-
-        if (null !== $constraint->callback && null !== $constraint->methods) {
-            throw new ConstraintDefinitionException(
-                'The Callback constraint supports either the option "callback" '.
-                'or "methods", but not both at the same time.'
-            );
-        }
-
-        // has to be an array so that we can differentiate between callables
-        // and method names
-        if (null !== $constraint->methods && !is_array($constraint->methods)) {
-            throw new UnexpectedTypeException($constraint->methods, 'array');
-        }
-
-        $methods = $constraint->methods ?: array($constraint->callback);
-
-        foreach ($methods as $method) {
-            if ($method instanceof \Closure) {
-                $method($object, $this->context);
-            } elseif (is_array($method)) {
-                if (!is_callable($method)) {
-                    throw new ConstraintDefinitionException(sprintf('"%s::%s" targeted by Callback constraint is not a valid callable', $method[0], $method[1]));
-                }
-
-                call_user_func($method, $object, $this->context);
-            } elseif (null !== $object) {
-                if (!method_exists($object, $method)) {
-                    throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist in class %s', $method, get_class($object)));
-                }
-
-                $reflMethod = new \ReflectionMethod($object, $method);
-
-                if ($reflMethod->isStatic()) {
-                    $reflMethod->invoke(null, $object, $this->context);
-                } else {
-                    $reflMethod->invoke($object, $this->context);
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/CardScheme.php b/core/vendor/symfony/validator/Constraints/CardScheme.php
deleted file mode 100644
index 14f3b5d..0000000
--- a/core/vendor/symfony/validator/Constraints/CardScheme.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * Metadata for the CardSchemeValidator.
- *
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Tim Nagel <t.nagel@infinite.net.au>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CardScheme extends Constraint
-{
-    const NOT_NUMERIC_ERROR = 1;
-    const INVALID_FORMAT_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::NOT_NUMERIC_ERROR => 'NOT_NUMERIC_ERROR',
-        self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR',
-    );
-
-    public $message = 'Unsupported card type or invalid card number.';
-    public $schemes;
-
-    public function getDefaultOption()
-    {
-        return 'schemes';
-    }
-
-    public function getRequiredOptions()
-    {
-        return array('schemes');
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/CardSchemeValidator.php b/core/vendor/symfony/validator/Constraints/CardSchemeValidator.php
deleted file mode 100644
index 229e0d2..0000000
--- a/core/vendor/symfony/validator/Constraints/CardSchemeValidator.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates that a card number belongs to a specified scheme.
- *
- * @author Tim Nagel <t.nagel@infinite.net.au>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see http://en.wikipedia.org/wiki/Bank_card_number
- * @see http://www.regular-expressions.info/creditcard.html
- * @see http://www.barclaycard.co.uk/business/files/Ranges_and_Rules_September_2014.pdf
- */
-class CardSchemeValidator extends ConstraintValidator
-{
-    protected $schemes = array(
-        // American Express card numbers start with 34 or 37 and have 15 digits.
-        'AMEX' => array(
-            '/^3[47][0-9]{13}$/',
-        ),
-        // China UnionPay cards start with 62 and have between 16 and 19 digits.
-        // Please note that these cards do not follow Luhn Algorithm as a checksum.
-        'CHINA_UNIONPAY' => array(
-            '/^62[0-9]{14,17}$/',
-        ),
-        // Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits.
-        // There are Diners Club cards that begin with 5 and have 16 digits.
-        // These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard.
-        'DINERS' => array(
-            '/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/',
-        ),
-        // Discover card numbers begin with 6011, 622126 through 622925, 644 through 649 or 65.
-        // All have 16 digits.
-        'DISCOVER' => array(
-            '/^6011[0-9]{12}$/',
-            '/^64[4-9][0-9]{13}$/',
-            '/^65[0-9]{14}$/',
-            '/^622(12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|91[0-9]|92[0-5])[0-9]{10}$/',
-        ),
-        // InstaPayment cards begin with 637 through 639 and have 16 digits.
-        'INSTAPAYMENT' => array(
-            '/^63[7-9][0-9]{13}$/',
-        ),
-        // JCB cards beginning with 2131 or 1800 have 15 digits.
-        // JCB cards beginning with 35 have 16 digits.
-        'JCB' => array(
-            '/^(?:2131|1800|35[0-9]{3})[0-9]{11}$/',
-        ),
-        // Laser cards begin with either 6304, 6706, 6709 or 6771 and have between 16 and 19 digits.
-        'LASER' => array(
-            '/^(6304|670[69]|6771)[0-9]{12,15}$/',
-        ),
-        // Maestro international cards begin with 675900..675999 and have between 12 and 19 digits.
-        // Maestro UK cards begin with either 500000..509999 or 560000..699999 and have between 12 and 19 digits.
-        'MAESTRO' => array(
-            '/^(6759[0-9]{2})[0-9]{6,13}$/',
-            '/^(50[0-9]{4})[0-9]{6,13}$/',
-            '/^5[6-9][0-9]{10,17}$/',
-            '/^6[0-9]{11,18}$/',
-        ),
-        // All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
-        'MASTERCARD' => array(
-            '/^5[1-5][0-9]{14}$/',
-        ),
-        // All Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13.
-        'VISA' => array(
-            '/^4([0-9]{12}|[0-9]{15})$/',
-        ),
-    );
-
-    /**
-     * Validates a creditcard belongs to a specified scheme.
-     *
-     * @param mixed      $value
-     * @param Constraint $constraint
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof CardScheme) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\CardScheme');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_numeric($value)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(CardScheme::NOT_NUMERIC_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(CardScheme::NOT_NUMERIC_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $schemes = array_flip((array) $constraint->schemes);
-        $schemeRegexes = array_intersect_key($this->schemes, $schemes);
-
-        foreach ($schemeRegexes as $regexes) {
-            foreach ($regexes as $regex) {
-                if (preg_match($regex, $value)) {
-                    return;
-                }
-            }
-        }
-
-        if ($this->context instanceof ExecutionContextInterface) {
-            $this->context->buildViolation($constraint->message)
-                ->setParameter('{{ value }}', $this->formatValue($value))
-                ->setCode(CardScheme::INVALID_FORMAT_ERROR)
-                ->addViolation();
-        } else {
-            $this->buildViolation($constraint->message)
-                ->setParameter('{{ value }}', $this->formatValue($value))
-                ->setCode(CardScheme::INVALID_FORMAT_ERROR)
-                ->addViolation();
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Choice.php b/core/vendor/symfony/validator/Constraints/Choice.php
deleted file mode 100644
index 39a6457..0000000
--- a/core/vendor/symfony/validator/Constraints/Choice.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Choice extends Constraint
-{
-    const NO_SUCH_CHOICE_ERROR = 1;
-    const TOO_FEW_ERROR = 2;
-    const TOO_MANY_ERROR = 3;
-
-    protected static $errorNames = array(
-        self::NO_SUCH_CHOICE_ERROR => 'NO_SUCH_CHOICE_ERROR',
-        self::TOO_FEW_ERROR => 'TOO_FEW_ERROR',
-        self::TOO_MANY_ERROR => 'TOO_MANY_ERROR',
-    );
-
-    public $choices;
-    public $callback;
-    public $multiple = false;
-    public $strict = false;
-    public $min;
-    public $max;
-    public $message = 'The value you selected is not a valid choice.';
-    public $multipleMessage = 'One or more of the given values is invalid.';
-    public $minMessage = 'You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.';
-    public $maxMessage = 'You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'choices';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/ChoiceValidator.php b/core/vendor/symfony/validator/Constraints/ChoiceValidator.php
deleted file mode 100644
index b8bb63b..0000000
--- a/core/vendor/symfony/validator/Constraints/ChoiceValidator.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * ChoiceValidator validates that the value is one of the expected values.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Florian Eckerstorfer <florian@eckerstorfer.org>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class ChoiceValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Choice) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Choice');
-        }
-
-        if (!is_array($constraint->choices) && !$constraint->callback) {
-            throw new ConstraintDefinitionException('Either "choices" or "callback" must be specified on constraint Choice');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        if ($constraint->multiple && !is_array($value)) {
-            throw new UnexpectedTypeException($value, 'array');
-        }
-
-        if ($constraint->callback) {
-            if (!is_callable($choices = array($this->context->getClassName(), $constraint->callback))
-                && !is_callable($choices = $constraint->callback)
-            ) {
-                throw new ConstraintDefinitionException('The Choice constraint expects a valid callback');
-            }
-            $choices = call_user_func($choices);
-        } else {
-            $choices = $constraint->choices;
-        }
-
-        if ($constraint->multiple) {
-            foreach ($value as $_value) {
-                if (!in_array($_value, $choices, $constraint->strict)) {
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->multipleMessage)
-                            ->setParameter('{{ value }}', $this->formatValue($_value))
-                            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-                            ->setInvalidValue($_value)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->multipleMessage)
-                            ->setParameter('{{ value }}', $this->formatValue($_value))
-                            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-                            ->setInvalidValue($_value)
-                            ->addViolation();
-                    }
-
-                    return;
-                }
-            }
-
-            $count = count($value);
-
-            if ($constraint->min !== null && $count < $constraint->min) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->minMessage)
-                        ->setParameter('{{ limit }}', $constraint->min)
-                        ->setPlural((int) $constraint->min)
-                        ->setCode(Choice::TOO_FEW_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->minMessage)
-                        ->setParameter('{{ limit }}', $constraint->min)
-                        ->setPlural((int) $constraint->min)
-                        ->setCode(Choice::TOO_FEW_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-
-            if ($constraint->max !== null && $count > $constraint->max) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->maxMessage)
-                        ->setParameter('{{ limit }}', $constraint->max)
-                        ->setPlural((int) $constraint->max)
-                        ->setCode(Choice::TOO_MANY_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->maxMessage)
-                        ->setParameter('{{ limit }}', $constraint->max)
-                        ->setPlural((int) $constraint->max)
-                        ->setCode(Choice::TOO_MANY_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        } elseif (!in_array($value, $choices, $constraint->strict)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Collection.php b/core/vendor/symfony/validator/Constraints/Collection.php
deleted file mode 100644
index 708c8ed..0000000
--- a/core/vendor/symfony/validator/Constraints/Collection.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Collection extends Composite
-{
-    const MISSING_FIELD_ERROR = 1;
-    const NO_SUCH_FIELD_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::MISSING_FIELD_ERROR => 'MISSING_FIELD_ERROR',
-        self::NO_SUCH_FIELD_ERROR => 'NO_SUCH_FIELD_ERROR',
-    );
-
-    public $fields = array();
-    public $allowExtraFields = false;
-    public $allowMissingFields = false;
-    public $extraFieldsMessage = 'This field was not expected.';
-    public $missingFieldsMessage = 'This field is missing.';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($options = null)
-    {
-        // no known options set? $options is the fields array
-        if (is_array($options)
-            && !array_intersect(array_keys($options), array('groups', 'fields', 'allowExtraFields', 'allowMissingFields', 'extraFieldsMessage', 'missingFieldsMessage'))) {
-            $options = array('fields' => $options);
-        }
-
-        parent::__construct($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function initializeNestedConstraints()
-    {
-        parent::initializeNestedConstraints();
-
-        if (!is_array($this->fields)) {
-            throw new ConstraintDefinitionException(sprintf('The option "fields" is expected to be an array in constraint %s', __CLASS__));
-        }
-
-        foreach ($this->fields as $fieldName => $field) {
-            // the XmlFileLoader and YamlFileLoader pass the field Optional
-            // and Required constraint as an array with exactly one element
-            if (is_array($field) && count($field) == 1) {
-                $this->fields[$fieldName] = $field = $field[0];
-            }
-
-            if (!$field instanceof Optional && !$field instanceof Required) {
-                $this->fields[$fieldName] = $field = new Required($field);
-            }
-        }
-    }
-
-    public function getRequiredOptions()
-    {
-        return array('fields');
-    }
-
-    protected function getCompositeOption()
-    {
-        return 'fields';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Collection/Optional.php b/core/vendor/symfony/validator/Constraints/Collection/Optional.php
deleted file mode 100644
index 68471f9..0000000
--- a/core/vendor/symfony/validator/Constraints/Collection/Optional.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints\Collection;
-
-@trigger_error('The '.__NAMESPACE__.'\Optional class is deprecated since version 2.3 and will be removed in 3.0. Use the Symfony\Component\Validator\Constraints\Optional class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Validator\Constraints\Optional as BaseOptional;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.3, to be removed in 3.0.
- *             Use {@link \Symfony\Component\Validator\Constraints\Optional} instead.
- */
-class Optional extends BaseOptional
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/Collection/Required.php b/core/vendor/symfony/validator/Constraints/Collection/Required.php
deleted file mode 100644
index 4b062bb..0000000
--- a/core/vendor/symfony/validator/Constraints/Collection/Required.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints\Collection;
-
-@trigger_error('The '.__NAMESPACE__.'\Required class is deprecated since version 2.3 and will be removed in 3.0. Use the Symfony\Component\Validator\Constraints\Required class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Validator\Constraints\Required as BaseRequired;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.3, to be removed in 3.0.
- *             Use {@link \Symfony\Component\Validator\Constraints\Required} instead.
- */
-class Required extends BaseRequired
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/CollectionValidator.php b/core/vendor/symfony/validator/Constraints/CollectionValidator.php
deleted file mode 100644
index e70a79b..0000000
--- a/core/vendor/symfony/validator/Constraints/CollectionValidator.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class CollectionValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Collection) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Collection');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        if (!is_array($value) && !($value instanceof \Traversable && $value instanceof \ArrayAccess)) {
-            throw new UnexpectedTypeException($value, 'array or Traversable and ArrayAccess');
-        }
-
-        // We need to keep the initialized context when CollectionValidator
-        // calls itself recursively (Collection constraints can be nested).
-        // Since the context of the validator is overwritten when initialize()
-        // is called for the nested constraint, the outer validator is
-        // acting on the wrong context when the nested validation terminates.
-        //
-        // A better solution - which should be approached in Symfony 3.0 - is to
-        // remove the initialize() method and pass the context as last argument
-        // to validate() instead.
-        $context = $this->context;
-
-        foreach ($constraint->fields as $field => $fieldConstraint) {
-            // bug fix issue #2779
-            $existsInArray = is_array($value) && array_key_exists($field, $value);
-            $existsInArrayAccess = $value instanceof \ArrayAccess && $value->offsetExists($field);
-
-            if ($existsInArray || $existsInArrayAccess) {
-                if (count($fieldConstraint->constraints) > 0) {
-                    if ($context instanceof ExecutionContextInterface) {
-                        $context->getValidator()
-                            ->inContext($context)
-                            ->atPath('['.$field.']')
-                            ->validate($value[$field], $fieldConstraint->constraints);
-                    } else {
-                        // 2.4 API
-                        $context->validateValue($value[$field], $fieldConstraint->constraints, '['.$field.']');
-                    }
-                }
-            } elseif (!$fieldConstraint instanceof Optional && !$constraint->allowMissingFields) {
-                if ($context instanceof ExecutionContextInterface) {
-                    $context->buildViolation($constraint->missingFieldsMessage)
-                        ->atPath('['.$field.']')
-                        ->setParameter('{{ field }}', $this->formatValue($field))
-                        ->setInvalidValue(null)
-                        ->setCode(Collection::MISSING_FIELD_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolationInContext($context, $constraint->missingFieldsMessage)
-                        ->atPath('['.$field.']')
-                        ->setParameter('{{ field }}', $this->formatValue($field))
-                        ->setInvalidValue(null)
-                        ->setCode(Collection::MISSING_FIELD_ERROR)
-                        ->addViolation();
-                }
-            }
-        }
-
-        if (!$constraint->allowExtraFields) {
-            foreach ($value as $field => $fieldValue) {
-                if (!isset($constraint->fields[$field])) {
-                    if ($context instanceof ExecutionContextInterface) {
-                        $context->buildViolation($constraint->extraFieldsMessage)
-                            ->atPath('['.$field.']')
-                            ->setParameter('{{ field }}', $this->formatValue($field))
-                            ->setInvalidValue($fieldValue)
-                            ->setCode(Collection::NO_SUCH_FIELD_ERROR)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolationInContext($context, $constraint->extraFieldsMessage)
-                            ->atPath('['.$field.']')
-                            ->setParameter('{{ field }}', $this->formatValue($field))
-                            ->setInvalidValue($fieldValue)
-                            ->setCode(Collection::NO_SUCH_FIELD_ERROR)
-                            ->addViolation();
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Composite.php b/core/vendor/symfony/validator/Constraints/Composite.php
deleted file mode 100644
index 22a748c..0000000
--- a/core/vendor/symfony/validator/Constraints/Composite.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * A constraint that is composed of other constraints.
- *
- * You should never use the nested constraint instances anywhere else, because
- * their groups are adapted when passed to the constructor of this class.
- *
- * If you want to create your own composite constraint, extend this class and
- * let {@link getCompositeOption()} return the name of the property which
- * contains the nested constraints.
- *
- * @since  2.6
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class Composite extends Constraint
-{
-    /**
-     * {@inheritdoc}
-     *
-     * The groups of the composite and its nested constraints are made
-     * consistent using the following strategy:
-     *
-     *   - If groups are passed explicitly to the composite constraint, but
-     *     not to the nested constraints, the options of the composite
-     *     constraint are copied to the nested constraints;
-     *
-     *   - If groups are passed explicitly to the nested constraints, but not
-     *     to the composite constraint, the groups of all nested constraints
-     *     are merged and used as groups for the composite constraint;
-     *
-     *   - If groups are passed explicitly to both the composite and its nested
-     *     constraints, the groups of the nested constraints must be a subset
-     *     of the groups of the composite constraint. If not, a
-     *     {@link ConstraintDefinitionException} is thrown.
-     *
-     * All this is done in the constructor, because constraints can then be
-     * cached. When constraints are loaded from the cache, no more group
-     * checks need to be done.
-     */
-    public function __construct($options = null)
-    {
-        parent::__construct($options);
-
-        $this->initializeNestedConstraints();
-
-        /** @var Constraint[] $nestedConstraints */
-        $compositeOption = $this->getCompositeOption();
-        $nestedConstraints = $this->$compositeOption;
-
-        if (!is_array($nestedConstraints)) {
-            $nestedConstraints = array($nestedConstraints);
-        }
-
-        foreach ($nestedConstraints as $constraint) {
-            if (!$constraint instanceof Constraint) {
-                throw new ConstraintDefinitionException(sprintf('The value %s is not an instance of Constraint in constraint %s', $constraint, get_class($this)));
-            }
-
-            if ($constraint instanceof Valid) {
-                throw new ConstraintDefinitionException(sprintf('The constraint Valid cannot be nested inside constraint %s. You can only declare the Valid constraint directly on a field or method.', get_class($this)));
-            }
-        }
-
-        if (!property_exists($this, 'groups')) {
-            $mergedGroups = array();
-
-            foreach ($nestedConstraints as $constraint) {
-                foreach ($constraint->groups as $group) {
-                    $mergedGroups[$group] = true;
-                }
-            }
-
-            $this->groups = array_keys($mergedGroups);
-            $this->$compositeOption = $nestedConstraints;
-
-            return;
-        }
-
-        foreach ($nestedConstraints as $constraint) {
-            if (property_exists($constraint, 'groups')) {
-                $excessGroups = array_diff($constraint->groups, $this->groups);
-
-                if (count($excessGroups) > 0) {
-                    throw new ConstraintDefinitionException(sprintf(
-                        'The group(s) "%s" passed to the constraint %s '.
-                        'should also be passed to its containing constraint %s',
-                        implode('", "', $excessGroups),
-                        get_class($constraint),
-                        get_class($this)
-                    ));
-                }
-            } else {
-                $constraint->groups = $this->groups;
-            }
-        }
-
-        $this->$compositeOption = $nestedConstraints;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Implicit group names are forwarded to nested constraints.
-     *
-     * @param string $group
-     */
-    public function addImplicitGroupName($group)
-    {
-        parent::addImplicitGroupName($group);
-
-        /** @var Constraint[] $nestedConstraints */
-        $nestedConstraints = $this->{$this->getCompositeOption()};
-
-        foreach ($nestedConstraints as $constraint) {
-            $constraint->addImplicitGroupName($group);
-        }
-    }
-
-    /**
-     * Returns the name of the property that contains the nested constraints.
-     *
-     * @return string The property name
-     */
-    abstract protected function getCompositeOption();
-
-    /**
-     * Initializes the nested constraints.
-     *
-     * This method can be overwritten in subclasses to clean up the nested
-     * constraints passed to the constructor.
-     *
-     * @see Collection::initializeNestedConstraints()
-     */
-    protected function initializeNestedConstraints()
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Count.php b/core/vendor/symfony/validator/Constraints/Count.php
deleted file mode 100644
index a3e12fe..0000000
--- a/core/vendor/symfony/validator/Constraints/Count.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\MissingOptionsException;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Count extends Constraint
-{
-    const TOO_FEW_ERROR = 1;
-    const TOO_MANY_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::TOO_FEW_ERROR => 'TOO_FEW_ERROR',
-        self::TOO_MANY_ERROR => 'TOO_MANY_ERROR',
-    );
-
-    public $minMessage = 'This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.';
-    public $maxMessage = 'This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.';
-    public $exactMessage = 'This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.';
-    public $min;
-    public $max;
-
-    public function __construct($options = null)
-    {
-        if (null !== $options && !is_array($options)) {
-            $options = array(
-                'min' => $options,
-                'max' => $options,
-            );
-        }
-
-        parent::__construct($options);
-
-        if (null === $this->min && null === $this->max) {
-            throw new MissingOptionsException(sprintf('Either option "min" or "max" must be given for constraint %s', __CLASS__), array('min', 'max'));
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/CountValidator.php b/core/vendor/symfony/validator/Constraints/CountValidator.php
deleted file mode 100644
index cbe90e0..0000000
--- a/core/vendor/symfony/validator/Constraints/CountValidator.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CountValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (null === $value) {
-            return;
-        }
-
-        if (!is_array($value) && !$value instanceof \Countable) {
-            throw new UnexpectedTypeException($value, 'array or \Countable');
-        }
-
-        $count = count($value);
-
-        if (null !== $constraint->max && $count > $constraint->max) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->maxMessage)
-                    ->setParameter('{{ count }}', $count)
-                    ->setParameter('{{ limit }}', $constraint->max)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->max)
-                    ->setCode(Count::TOO_MANY_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->maxMessage)
-                    ->setParameter('{{ count }}', $count)
-                    ->setParameter('{{ limit }}', $constraint->max)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->max)
-                    ->setCode(Count::TOO_MANY_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (null !== $constraint->min && $count < $constraint->min) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->minMessage)
-                    ->setParameter('{{ count }}', $count)
-                    ->setParameter('{{ limit }}', $constraint->min)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->min)
-                    ->setCode(Count::TOO_FEW_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->minMessage)
-                    ->setParameter('{{ count }}', $count)
-                    ->setParameter('{{ limit }}', $constraint->min)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->min)
-                    ->setCode(Count::TOO_FEW_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Country.php b/core/vendor/symfony/validator/Constraints/Country.php
deleted file mode 100644
index ff6f3d0..0000000
--- a/core/vendor/symfony/validator/Constraints/Country.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Country extends Constraint
-{
-    public $message = 'This value is not a valid country.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/CountryValidator.php b/core/vendor/symfony/validator/Constraints/CountryValidator.php
deleted file mode 100644
index 8139adf..0000000
--- a/core/vendor/symfony/validator/Constraints/CountryValidator.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Intl\Intl;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value is a valid country code.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class CountryValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Country) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Country');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $countries = Intl::getRegionBundle()->getCountryNames();
-
-        if (!isset($countries[$value])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Currency.php b/core/vendor/symfony/validator/Constraints/Currency.php
deleted file mode 100644
index c09fe88..0000000
--- a/core/vendor/symfony/validator/Constraints/Currency.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Miha Vrhovnik <miha.vrhovnik@pagein.si>
- *
- * @api
- */
-class Currency extends Constraint
-{
-    public $message = 'This value is not a valid currency.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/CurrencyValidator.php b/core/vendor/symfony/validator/Constraints/CurrencyValidator.php
deleted file mode 100644
index 9c41dc4..0000000
--- a/core/vendor/symfony/validator/Constraints/CurrencyValidator.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Intl\Intl;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value is a valid currency.
- *
- * @author Miha Vrhovnik <miha.vrhovnik@pagein.si>
- *
- * @api
- */
-class CurrencyValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Currency) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Currency');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $currencies = Intl::getCurrencyBundle()->getCurrencyNames();
-
-        if (!isset($currencies[$value])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Date.php b/core/vendor/symfony/validator/Constraints/Date.php
deleted file mode 100644
index 2bc444f..0000000
--- a/core/vendor/symfony/validator/Constraints/Date.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Date extends Constraint
-{
-    const INVALID_FORMAT_ERROR = 1;
-    const INVALID_DATE_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR',
-        self::INVALID_DATE_ERROR => 'INVALID_DATE_ERROR',
-    );
-
-    public $message = 'This value is not a valid date.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/DateTime.php b/core/vendor/symfony/validator/Constraints/DateTime.php
deleted file mode 100644
index ae67ff3..0000000
--- a/core/vendor/symfony/validator/Constraints/DateTime.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class DateTime extends Constraint
-{
-    const INVALID_FORMAT_ERROR = 1;
-    const INVALID_DATE_ERROR = 2;
-    const INVALID_TIME_ERROR = 3;
-
-    protected static $errorNames = array(
-        self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR',
-        self::INVALID_DATE_ERROR => 'INVALID_DATE_ERROR',
-        self::INVALID_TIME_ERROR => 'INVALID_TIME_ERROR',
-    );
-
-    public $message = 'This value is not a valid datetime.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/DateTimeValidator.php b/core/vendor/symfony/validator/Constraints/DateTimeValidator.php
deleted file mode 100644
index a53c463..0000000
--- a/core/vendor/symfony/validator/Constraints/DateTimeValidator.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class DateTimeValidator extends DateValidator
-{
-    const PATTERN = '/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof DateTime) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\DateTime');
-        }
-
-        if (null === $value || '' === $value || $value instanceof \DateTime) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if (!preg_match(static::PATTERN, $value, $matches)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(DateTime::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(DateTime::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (!DateValidator::checkDate($matches[1], $matches[2], $matches[3])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(DateTime::INVALID_DATE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(DateTime::INVALID_DATE_ERROR)
-                    ->addViolation();
-            }
-        }
-
-        if (!TimeValidator::checkTime($matches[4], $matches[5], $matches[6])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(DateTime::INVALID_TIME_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(DateTime::INVALID_TIME_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/DateValidator.php b/core/vendor/symfony/validator/Constraints/DateValidator.php
deleted file mode 100644
index 0a5dfd4..0000000
--- a/core/vendor/symfony/validator/Constraints/DateValidator.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class DateValidator extends ConstraintValidator
-{
-    const PATTERN = '/^(\d{4})-(\d{2})-(\d{2})$/';
-
-    /**
-     * Checks whether a date is valid.
-     *
-     * @param int $year  The year
-     * @param int $month The month
-     * @param int $day   The day
-     *
-     * @return bool Whether the date is valid
-     *
-     * @internal
-     */
-    public static function checkDate($year, $month, $day)
-    {
-        return checkdate($month, $day, $year);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Date) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Date');
-        }
-
-        if (null === $value || '' === $value || $value instanceof \DateTime) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if (!preg_match(static::PATTERN, $value, $matches)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Date::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Date::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (!self::checkDate($matches[1], $matches[2], $matches[3])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Date::INVALID_DATE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Date::INVALID_DATE_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Email.php b/core/vendor/symfony/validator/Constraints/Email.php
deleted file mode 100644
index 3697717..0000000
--- a/core/vendor/symfony/validator/Constraints/Email.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Email extends Constraint
-{
-    const INVALID_FORMAT_ERROR = 1;
-    const MX_CHECK_FAILED_ERROR = 2;
-    const HOST_CHECK_FAILED_ERROR = 3;
-
-    protected static $errorNames = array(
-        self::INVALID_FORMAT_ERROR => 'STRICT_CHECK_FAILED_ERROR',
-        self::MX_CHECK_FAILED_ERROR => 'MX_CHECK_FAILED_ERROR',
-        self::HOST_CHECK_FAILED_ERROR => 'HOST_CHECK_FAILED_ERROR',
-    );
-
-    public $message = 'This value is not a valid email address.';
-    public $checkMX = false;
-    public $checkHost = false;
-    public $strict;
-}
diff --git a/core/vendor/symfony/validator/Constraints/EmailValidator.php b/core/vendor/symfony/validator/Constraints/EmailValidator.php
deleted file mode 100644
index ab1e9ba..0000000
--- a/core/vendor/symfony/validator/Constraints/EmailValidator.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\RuntimeException;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class EmailValidator extends ConstraintValidator
-{
-    /**
-     * @var bool
-     */
-    private $isStrict;
-
-    public function __construct($strict = false)
-    {
-        $this->isStrict = $strict;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Email) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Email');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if (null === $constraint->strict) {
-            $constraint->strict = $this->isStrict;
-        }
-
-        if ($constraint->strict) {
-            if (!class_exists('\Egulias\EmailValidator\EmailValidator')) {
-                throw new RuntimeException('Strict email validation requires egulias/email-validator');
-            }
-
-            $strictValidator = new \Egulias\EmailValidator\EmailValidator();
-
-            if (!$strictValidator->isValid($value, false, true)) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Email::INVALID_FORMAT_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Email::INVALID_FORMAT_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        } elseif (!preg_match('/^.+\@\S+\.\S+$/', $value)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Email::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Email::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $host = substr($value, strpos($value, '@') + 1);
-
-        // Check for host DNS resource records
-        if ($constraint->checkMX) {
-            if (!$this->checkMX($host)) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Email::MX_CHECK_FAILED_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Email::MX_CHECK_FAILED_ERROR)
-                        ->addViolation();
-                }
-            }
-
-            return;
-        }
-
-        if ($constraint->checkHost && !$this->checkHost($host)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Email::HOST_CHECK_FAILED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Email::HOST_CHECK_FAILED_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-
-    /**
-     * Check DNS Records for MX type.
-     *
-     * @param string $host Host
-     *
-     * @return bool
-     */
-    private function checkMX($host)
-    {
-        return checkdnsrr($host, 'MX');
-    }
-
-    /**
-     * Check if one of MX, A or AAAA DNS RR exists.
-     *
-     * @param string $host Host
-     *
-     * @return bool
-     */
-    private function checkHost($host)
-    {
-        return $this->checkMX($host) || (checkdnsrr($host, 'A') || checkdnsrr($host, 'AAAA'));
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/EqualTo.php b/core/vendor/symfony/validator/Constraints/EqualTo.php
deleted file mode 100644
index 8d3d752..0000000
--- a/core/vendor/symfony/validator/Constraints/EqualTo.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class EqualTo extends AbstractComparison
-{
-    public $message = 'This value should be equal to {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/EqualToValidator.php b/core/vendor/symfony/validator/Constraints/EqualToValidator.php
deleted file mode 100644
index 3739dbe..0000000
--- a/core/vendor/symfony/validator/Constraints/EqualToValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are equal (==).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class EqualToValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 == $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Existence.php b/core/vendor/symfony/validator/Constraints/Existence.php
deleted file mode 100644
index 5ea6ffe..0000000
--- a/core/vendor/symfony/validator/Constraints/Existence.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class Existence extends Composite
-{
-    public $constraints = array();
-
-    public function getDefaultOption()
-    {
-        return 'constraints';
-    }
-
-    protected function getCompositeOption()
-    {
-        return 'constraints';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Expression.php b/core/vendor/symfony/validator/Constraints/Expression.php
deleted file mode 100644
index dfa242c..0000000
--- a/core/vendor/symfony/validator/Constraints/Expression.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Expression extends Constraint
-{
-    public $message = 'This value is not valid.';
-    public $expression;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'expression';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRequiredOptions()
-    {
-        return array('expression');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTargets()
-    {
-        return array(self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validatedBy()
-    {
-        return 'validator.expression';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/ExpressionValidator.php b/core/vendor/symfony/validator/Constraints/ExpressionValidator.php
deleted file mode 100644
index 15d51f9..0000000
--- a/core/vendor/symfony/validator/Constraints/ExpressionValidator.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
-use Symfony\Component\PropertyAccess\PropertyAccess;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\PropertyAccess\PropertyPath;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Exception\RuntimeException;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@symfony.com>
- */
-class ExpressionValidator extends ConstraintValidator
-{
-    /**
-     * @var PropertyAccessorInterface
-     */
-    private $propertyAccessor;
-
-    /**
-     * @var ExpressionLanguage
-     */
-    private $expressionLanguage;
-
-    /**
-     * @param PropertyAccessorInterface|null $propertyAccessor Optional as of Symfony 2.5
-     *
-     * @throws UnexpectedTypeException If the property accessor is invalid
-     */
-    public function __construct($propertyAccessor = null)
-    {
-        if (null !== $propertyAccessor && !$propertyAccessor instanceof PropertyAccessorInterface) {
-            throw new UnexpectedTypeException($propertyAccessor, 'null or \Symfony\Component\PropertyAccess\PropertyAccessorInterface');
-        }
-
-        $this->propertyAccessor = $propertyAccessor;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Expression) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Expression');
-        }
-
-        $variables = array();
-
-        // Symfony 2.5+
-        if ($this->context instanceof ExecutionContextInterface) {
-            $variables['value'] = $value;
-            $variables['this'] = $this->context->getObject();
-        } elseif (null === $this->context->getPropertyName()) {
-            $variables['value'] = $value;
-            $variables['this'] = $value;
-        } else {
-            $root = $this->context->getRoot();
-            $variables['value'] = $value;
-
-            if (is_object($root)) {
-                // Extract the object that the property belongs to from the object
-                // graph
-                $path = new PropertyPath($this->context->getPropertyPath());
-                $parentPath = $path->getParent();
-                $variables['this'] = $parentPath ? $this->getPropertyAccessor()->getValue($root, $parentPath) : $root;
-            } else {
-                $variables['this'] = null;
-            }
-        }
-
-        if (!$this->getExpressionLanguage()->evaluate($constraint->expression, $variables)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-
-    private function getExpressionLanguage()
-    {
-        if (null === $this->expressionLanguage) {
-            if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
-                throw new RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
-            }
-            $this->expressionLanguage = new ExpressionLanguage();
-        }
-
-        return $this->expressionLanguage;
-    }
-
-    private function getPropertyAccessor()
-    {
-        if (null === $this->propertyAccessor) {
-            if (!class_exists('Symfony\Component\PropertyAccess\PropertyAccess')) {
-                throw new RuntimeException('Unable to use expressions as the Symfony PropertyAccess component is not installed.');
-            }
-            $this->propertyAccessor = PropertyAccess::createPropertyAccessor();
-        }
-
-        return $this->propertyAccessor;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/False.php b/core/vendor/symfony/validator/Constraints/False.php
deleted file mode 100644
index 1e103ad..0000000
--- a/core/vendor/symfony/validator/Constraints/False.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-@trigger_error('The '.__NAMESPACE__.'\False class is deprecated since version 2.7 and will be removed in 3.0. Use the IsFalse class in the same namespace instead.', E_USER_DEPRECATED);
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use IsFalse instead.
- */
-class False extends IsFalse
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/FalseValidator.php b/core/vendor/symfony/validator/Constraints/FalseValidator.php
deleted file mode 100644
index 9614c30..0000000
--- a/core/vendor/symfony/validator/Constraints/FalseValidator.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-@trigger_error('The '.__NAMESPACE__.'\FalseValidator class is deprecated since version 2.7 and will be removed in 3.0. Use the IsFalseValidator class in the same namespace instead.', E_USER_DEPRECATED);
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use IsFalseValidator instead.
- */
-class FalseValidator extends IsFalseValidator
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/File.php b/core/vendor/symfony/validator/Constraints/File.php
deleted file mode 100644
index f35f93c..0000000
--- a/core/vendor/symfony/validator/Constraints/File.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class File extends Constraint
-{
-    // Check the Image constraint for clashes if adding new constants here
-
-    const NOT_FOUND_ERROR = 1;
-    const NOT_READABLE_ERROR = 2;
-    const EMPTY_ERROR = 3;
-    const TOO_LARGE_ERROR = 4;
-    const INVALID_MIME_TYPE_ERROR = 5;
-
-    protected static $errorNames = array(
-        self::NOT_FOUND_ERROR => 'NOT_FOUND_ERROR',
-        self::NOT_READABLE_ERROR => 'NOT_READABLE_ERROR',
-        self::EMPTY_ERROR => 'EMPTY_ERROR',
-        self::TOO_LARGE_ERROR => 'TOO_LARGE_ERROR',
-        self::INVALID_MIME_TYPE_ERROR => 'INVALID_MIME_TYPE_ERROR',
-    );
-
-    public $binaryFormat;
-    public $mimeTypes = array();
-    public $notFoundMessage = 'The file could not be found.';
-    public $notReadableMessage = 'The file is not readable.';
-    public $maxSizeMessage = 'The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.';
-    public $mimeTypesMessage = 'The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.';
-    public $disallowEmptyMessage = 'An empty file is not allowed.';
-
-    public $uploadIniSizeErrorMessage = 'The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.';
-    public $uploadFormSizeErrorMessage = 'The file is too large.';
-    public $uploadPartialErrorMessage = 'The file was only partially uploaded.';
-    public $uploadNoFileErrorMessage = 'No file was uploaded.';
-    public $uploadNoTmpDirErrorMessage = 'No temporary folder was configured in php.ini.';
-    public $uploadCantWriteErrorMessage = 'Cannot write temporary file to disk.';
-    public $uploadExtensionErrorMessage = 'A PHP extension caused the upload to fail.';
-    public $uploadErrorMessage = 'The file could not be uploaded.';
-
-    protected $maxSize;
-
-    public function __construct($options = null)
-    {
-        parent::__construct($options);
-
-        if (null !== $this->maxSize) {
-            $this->normalizeBinaryFormat($this->maxSize);
-        }
-    }
-
-    public function __set($option, $value)
-    {
-        if ('maxSize' === $option) {
-            $this->normalizeBinaryFormat($value);
-
-            return;
-        }
-
-        parent::__set($option, $value);
-    }
-
-    public function __get($option)
-    {
-        if ('maxSize' === $option) {
-            return $this->maxSize;
-        }
-
-        return parent::__get($option);
-    }
-
-    private function normalizeBinaryFormat($maxSize)
-    {
-        if (ctype_digit((string) $maxSize)) {
-            $this->maxSize = (int) $maxSize;
-            $this->binaryFormat = null === $this->binaryFormat ? false : $this->binaryFormat;
-        } elseif (preg_match('/^\d++k$/i', $maxSize)) {
-            $this->maxSize = $maxSize * 1000;
-            $this->binaryFormat = null === $this->binaryFormat ? false : $this->binaryFormat;
-        } elseif (preg_match('/^\d++M$/i', $maxSize)) {
-            $this->maxSize = $maxSize * 1000000;
-            $this->binaryFormat = null === $this->binaryFormat ? false : $this->binaryFormat;
-        } elseif (preg_match('/^\d++Ki$/i', $maxSize)) {
-            $this->maxSize = $maxSize << 10;
-            $this->binaryFormat = null === $this->binaryFormat ? true : $this->binaryFormat;
-        } elseif (preg_match('/^\d++Mi$/i', $maxSize)) {
-            $this->maxSize = $maxSize << 20;
-            $this->binaryFormat = null === $this->binaryFormat ? true : $this->binaryFormat;
-        } else {
-            throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum size', $this->maxSize));
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/FileValidator.php b/core/vendor/symfony/validator/Constraints/FileValidator.php
deleted file mode 100644
index 5125a32..0000000
--- a/core/vendor/symfony/validator/Constraints/FileValidator.php
+++ /dev/null
@@ -1,331 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\HttpFoundation\File\File as FileObject;
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class FileValidator extends ConstraintValidator
-{
-    const KB_BYTES = 1000;
-    const MB_BYTES = 1000000;
-    const KIB_BYTES = 1024;
-    const MIB_BYTES = 1048576;
-
-    private static $suffices = array(
-        1 => 'bytes',
-        self::KB_BYTES => 'kB',
-        self::MB_BYTES => 'MB',
-        self::KIB_BYTES => 'KiB',
-        self::MIB_BYTES => 'MiB',
-    );
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof File) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\File');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if ($value instanceof UploadedFile && !$value->isValid()) {
-            switch ($value->getError()) {
-                case UPLOAD_ERR_INI_SIZE:
-                    $iniLimitSize = UploadedFile::getMaxFilesize();
-                    if ($constraint->maxSize && $constraint->maxSize < $iniLimitSize) {
-                        $limitInBytes = $constraint->maxSize;
-                        $binaryFormat = $constraint->binaryFormat;
-                    } else {
-                        $limitInBytes = $iniLimitSize;
-                        $binaryFormat = true;
-                    }
-
-                    list($sizeAsString, $limitAsString, $suffix) = $this->factorizeSizes(0, $limitInBytes, $binaryFormat);
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadIniSizeErrorMessage)
-                            ->setParameter('{{ limit }}', $limitAsString)
-                            ->setParameter('{{ suffix }}', $suffix)
-                            ->setCode(UPLOAD_ERR_INI_SIZE)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadIniSizeErrorMessage)
-                            ->setParameter('{{ limit }}', $limitAsString)
-                            ->setParameter('{{ suffix }}', $suffix)
-                            ->setCode(UPLOAD_ERR_INI_SIZE)
-                            ->addViolation();
-                    }
-
-                    return;
-                case UPLOAD_ERR_FORM_SIZE:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadFormSizeErrorMessage)
-                            ->setCode(UPLOAD_ERR_FORM_SIZE)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadFormSizeErrorMessage)
-                            ->setCode(UPLOAD_ERR_FORM_SIZE)
-                            ->addViolation();
-                    }
-
-                    return;
-                case UPLOAD_ERR_PARTIAL:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadPartialErrorMessage)
-                            ->setCode(UPLOAD_ERR_PARTIAL)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadPartialErrorMessage)
-                            ->setCode(UPLOAD_ERR_PARTIAL)
-                            ->addViolation();
-                    }
-
-                    return;
-                case UPLOAD_ERR_NO_FILE:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadNoFileErrorMessage)
-                            ->setCode(UPLOAD_ERR_NO_FILE)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadNoFileErrorMessage)
-                            ->setCode(UPLOAD_ERR_NO_FILE)
-                            ->addViolation();
-                    }
-
-                    return;
-                case UPLOAD_ERR_NO_TMP_DIR:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadNoTmpDirErrorMessage)
-                            ->setCode(UPLOAD_ERR_NO_TMP_DIR)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadNoTmpDirErrorMessage)
-                            ->setCode(UPLOAD_ERR_NO_TMP_DIR)
-                            ->addViolation();
-                    }
-
-                    return;
-                case UPLOAD_ERR_CANT_WRITE:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadCantWriteErrorMessage)
-                            ->setCode(UPLOAD_ERR_CANT_WRITE)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadCantWriteErrorMessage)
-                            ->setCode(UPLOAD_ERR_CANT_WRITE)
-                            ->addViolation();
-                    }
-
-                    return;
-                case UPLOAD_ERR_EXTENSION:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadExtensionErrorMessage)
-                            ->setCode(UPLOAD_ERR_EXTENSION)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadExtensionErrorMessage)
-                            ->setCode(UPLOAD_ERR_EXTENSION)
-                            ->addViolation();
-                    }
-
-                    return;
-                default:
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->uploadErrorMessage)
-                            ->setCode($value->getError())
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->uploadErrorMessage)
-                            ->setCode($value->getError())
-                            ->addViolation();
-                    }
-
-                    return;
-            }
-        }
-
-        if (!is_scalar($value) && !$value instanceof FileObject && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $path = $value instanceof FileObject ? $value->getPathname() : (string) $value;
-
-        if (!is_file($path)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->notFoundMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setCode(File::NOT_FOUND_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->notFoundMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setCode(File::NOT_FOUND_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (!is_readable($path)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->notReadableMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setCode(File::NOT_READABLE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->notReadableMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setCode(File::NOT_READABLE_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $sizeInBytes = filesize($path);
-
-        if (0 === $sizeInBytes) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->disallowEmptyMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setCode(File::EMPTY_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->disallowEmptyMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setCode(File::EMPTY_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if ($constraint->maxSize) {
-            $limitInBytes = $constraint->maxSize;
-
-            if ($sizeInBytes > $limitInBytes) {
-                list($sizeAsString, $limitAsString, $suffix) = $this->factorizeSizes($sizeInBytes, $limitInBytes, $constraint->binaryFormat);
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->maxSizeMessage)
-                        ->setParameter('{{ file }}', $this->formatValue($path))
-                        ->setParameter('{{ size }}', $sizeAsString)
-                        ->setParameter('{{ limit }}', $limitAsString)
-                        ->setParameter('{{ suffix }}', $suffix)
-                        ->setCode(File::TOO_LARGE_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->maxSizeMessage)
-                        ->setParameter('{{ file }}', $this->formatValue($path))
-                        ->setParameter('{{ size }}', $sizeAsString)
-                        ->setParameter('{{ limit }}', $limitAsString)
-                        ->setParameter('{{ suffix }}', $suffix)
-                        ->setCode(File::TOO_LARGE_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        }
-
-        if ($constraint->mimeTypes) {
-            if (!$value instanceof FileObject) {
-                $value = new FileObject($value);
-            }
-
-            $mimeTypes = (array) $constraint->mimeTypes;
-            $mime = $value->getMimeType();
-
-            foreach ($mimeTypes as $mimeType) {
-                if ($mimeType === $mime) {
-                    return;
-                }
-
-                if ($discrete = strstr($mimeType, '/*', true)) {
-                    if (strstr($mime, '/', true) === $discrete) {
-                        return;
-                    }
-                }
-            }
-
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->mimeTypesMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setParameter('{{ type }}', $this->formatValue($mime))
-                    ->setParameter('{{ types }}', $this->formatValues($mimeTypes))
-                    ->setCode(File::INVALID_MIME_TYPE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->mimeTypesMessage)
-                    ->setParameter('{{ file }}', $this->formatValue($path))
-                    ->setParameter('{{ type }}', $this->formatValue($mime))
-                    ->setParameter('{{ types }}', $this->formatValues($mimeTypes))
-                    ->setCode(File::INVALID_MIME_TYPE_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-
-    private static function moreDecimalsThan($double, $numberOfDecimals)
-    {
-        return strlen((string) $double) > strlen(round($double, $numberOfDecimals));
-    }
-
-    /**
-     * Convert the limit to the smallest possible number
-     * (i.e. try "MB", then "kB", then "bytes")
-     */
-    private function factorizeSizes($size, $limit, $binaryFormat)
-    {
-        if ($binaryFormat) {
-            $coef = self::MIB_BYTES;
-            $coefFactor = self::KIB_BYTES;
-        } else {
-            $coef = self::MB_BYTES;
-            $coefFactor = self::KB_BYTES;
-        }
-
-        $limitAsString = (string) ($limit / $coef);
-
-        // Restrict the limit to 2 decimals (without rounding! we
-        // need the precise value)
-        while (self::moreDecimalsThan($limitAsString, 2)) {
-            $coef /= $coefFactor;
-            $limitAsString = (string) ($limit / $coef);
-        }
-
-        // Convert size to the same measure, but round to 2 decimals
-        $sizeAsString = (string) round($size / $coef, 2);
-
-        // If the size and limit produce the same string output
-        // (due to rounding), reduce the coefficient
-        while ($sizeAsString === $limitAsString) {
-            $coef /= $coefFactor;
-            $limitAsString = (string) ($limit / $coef);
-            $sizeAsString = (string) round($size / $coef, 2);
-        }
-
-        return array($sizeAsString, $limitAsString, self::$suffices[$coef]);
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/GreaterThan.php b/core/vendor/symfony/validator/Constraints/GreaterThan.php
deleted file mode 100644
index ec7fafb..0000000
--- a/core/vendor/symfony/validator/Constraints/GreaterThan.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class GreaterThan extends AbstractComparison
-{
-    public $message = 'This value should be greater than {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/GreaterThanOrEqual.php b/core/vendor/symfony/validator/Constraints/GreaterThanOrEqual.php
deleted file mode 100644
index 36fdd9c..0000000
--- a/core/vendor/symfony/validator/Constraints/GreaterThanOrEqual.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class GreaterThanOrEqual extends AbstractComparison
-{
-    public $message = 'This value should be greater than or equal to {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/GreaterThanOrEqualValidator.php b/core/vendor/symfony/validator/Constraints/GreaterThanOrEqualValidator.php
deleted file mode 100644
index 2363204..0000000
--- a/core/vendor/symfony/validator/Constraints/GreaterThanOrEqualValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are greater than or equal to the previous (>=).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class GreaterThanOrEqualValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 >= $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/GreaterThanValidator.php b/core/vendor/symfony/validator/Constraints/GreaterThanValidator.php
deleted file mode 100644
index fdcf0c1..0000000
--- a/core/vendor/symfony/validator/Constraints/GreaterThanValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are greater than the previous (>).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class GreaterThanValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 > $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/GroupSequence.php b/core/vendor/symfony/validator/Constraints/GroupSequence.php
deleted file mode 100644
index b74f92c..0000000
--- a/core/vendor/symfony/validator/Constraints/GroupSequence.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Exception\OutOfBoundsException;
-
-/**
- * A sequence of validation groups.
- *
- * When validating a group sequence, each group will only be validated if all
- * of the previous groups in the sequence succeeded. For example:
- *
- *     $validator->validate($address, null, new GroupSequence('Basic', 'Strict'));
- *
- * In the first step, all constraints that belong to the group "Basic" will be
- * validated. If none of the constraints fail, the validator will then validate
- * the constraints in group "Strict". This is useful, for example, if "Strict"
- * contains expensive checks that require a lot of CPU or slow, external
- * services. You usually don't want to run expensive checks if any of the cheap
- * checks fail.
- *
- * When adding metadata to a class, you can override the "Default" group of
- * that class with a group sequence:
- *
- *     /**
- *      * @GroupSequence({"Address", "Strict"})
- *      *\/
- *     class Address
- *     {
- *         // ...
- *     }
- *
- * Whenever you validate that object in the "Default" group, the group sequence
- * will be validated:
- *
- *     $validator->validate($address);
- *
- * If you want to execute the constraints of the "Default" group for a class
- * with an overridden default group, pass the class name as group name instead:
- *
- *     $validator->validate($address, null, "Address")
- *
- * @Annotation
- * @Target({"CLASS", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- *
- * Implementing \ArrayAccess, \IteratorAggregate and \Countable is @deprecated since 2.5 and will be removed in 3.0.
- */
-class GroupSequence implements \ArrayAccess, \IteratorAggregate, \Countable
-{
-    /**
-     * The groups in the sequence.
-     *
-     * @var string[]|GroupSequence[]
-     */
-    public $groups;
-
-    /**
-     * The group in which cascaded objects are validated when validating
-     * this sequence.
-     *
-     * By default, cascaded objects are validated in each of the groups of
-     * the sequence.
-     *
-     * If a class has a group sequence attached, that sequence replaces the
-     * "Default" group. When validating that class in the "Default" group, the
-     * group sequence is used instead, but still the "Default" group should be
-     * cascaded to other objects.
-     *
-     * @var string|GroupSequence
-     */
-    public $cascadedGroup;
-
-    /**
-     * Creates a new group sequence.
-     *
-     * @param string[] $groups The groups in the sequence
-     */
-    public function __construct(array $groups)
-    {
-        // Support for Doctrine annotations
-        $this->groups = isset($groups['value']) ? $groups['value'] : $groups;
-    }
-
-    /**
-     * Returns an iterator for this group.
-     *
-     * Implemented for backwards compatibility with Symfony < 2.5.
-     *
-     * @return \Traversable The iterator
-     *
-     * @see \IteratorAggregate::getIterator()
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function getIterator()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        return new \ArrayIterator($this->groups);
-    }
-
-    /**
-     * Returns whether the given offset exists in the sequence.
-     *
-     * Implemented for backwards compatibility with Symfony < 2.5.
-     *
-     * @param int $offset The offset
-     *
-     * @return bool Whether the offset exists
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function offsetExists($offset)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        return isset($this->groups[$offset]);
-    }
-
-    /**
-     * Returns the group at the given offset.
-     *
-     * Implemented for backwards compatibility with Symfony < 2.5.
-     *
-     * @param int $offset The offset
-     *
-     * @return string The group a the given offset
-     *
-     * @throws OutOfBoundsException If the object does not exist
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function offsetGet($offset)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if (!isset($this->groups[$offset])) {
-            throw new OutOfBoundsException(sprintf(
-                'The offset "%s" does not exist.',
-                $offset
-            ));
-        }
-
-        return $this->groups[$offset];
-    }
-
-    /**
-     * Sets the group at the given offset.
-     *
-     * Implemented for backwards compatibility with Symfony < 2.5.
-     *
-     * @param int    $offset The offset
-     * @param string $value  The group name
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function offsetSet($offset, $value)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if (null !== $offset) {
-            $this->groups[$offset] = $value;
-
-            return;
-        }
-
-        $this->groups[] = $value;
-    }
-
-    /**
-     * Removes the group at the given offset.
-     *
-     * Implemented for backwards compatibility with Symfony < 2.5.
-     *
-     * @param int $offset The offset
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function offsetUnset($offset)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        unset($this->groups[$offset]);
-    }
-
-    /**
-     * Returns the number of groups in the sequence.
-     *
-     * Implemented for backwards compatibility with Symfony < 2.5.
-     *
-     * @return int The number of groups
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function count()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        return count($this->groups);
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/GroupSequenceProvider.php b/core/vendor/symfony/validator/Constraints/GroupSequenceProvider.php
deleted file mode 100644
index 3904473..0000000
--- a/core/vendor/symfony/validator/Constraints/GroupSequenceProvider.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Annotation to define a group sequence provider.
- *
- * @Annotation
- * @Target({"CLASS", "ANNOTATION"})
- */
-class GroupSequenceProvider
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/Iban.php b/core/vendor/symfony/validator/Constraints/Iban.php
deleted file mode 100644
index 66ce09a..0000000
--- a/core/vendor/symfony/validator/Constraints/Iban.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Manuel Reinhard <manu@sprain.ch>
- * @author Michael Schummel
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Iban extends Constraint
-{
-    const TOO_SHORT_ERROR = 1;
-    const INVALID_COUNTRY_CODE_ERROR = 2;
-    const INVALID_CHARACTERS_ERROR = 3;
-    const INVALID_CASE_ERROR = 4;
-    const CHECKSUM_FAILED_ERROR = 5;
-
-    protected static $errorNames = array(
-        self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR',
-        self::INVALID_COUNTRY_CODE_ERROR => 'INVALID_COUNTRY_CODE_ERROR',
-        self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR',
-        self::INVALID_CASE_ERROR => 'INVALID_CASE_ERROR',
-        self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR',
-    );
-
-    public $message = 'This is not a valid International Bank Account Number (IBAN).';
-}
diff --git a/core/vendor/symfony/validator/Constraints/IbanValidator.php b/core/vendor/symfony/validator/Constraints/IbanValidator.php
deleted file mode 100644
index 65c22ff..0000000
--- a/core/vendor/symfony/validator/Constraints/IbanValidator.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Manuel Reinhard <manu@sprain.ch>
- * @author Michael Schummel
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @link http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/
- */
-class IbanValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Iban) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Iban');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        // Remove spaces
-        $canonicalized = str_replace(' ', '', $value);
-
-        // The IBAN must have at least 4 characters...
-        if (strlen($canonicalized) < 4) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::TOO_SHORT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::TOO_SHORT_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // ...start with a country code...
-        if (!ctype_alpha($canonicalized{0}) || !ctype_alpha($canonicalized{1})) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::INVALID_COUNTRY_CODE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::INVALID_COUNTRY_CODE_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // ...contain only digits and characters...
-        if (!ctype_alnum($canonicalized)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // ...and contain uppercase characters only
-        if ($canonicalized !== strtoupper($canonicalized)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::INVALID_CASE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::INVALID_CASE_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // Move the first four characters to the end
-        // e.g. CH93 0076 2011 6238 5295 7
-        //   -> 0076 2011 6238 5295 7 CH93
-        $canonicalized = substr($canonicalized, 4).substr($canonicalized, 0, 4);
-
-        // Convert all remaining letters to their ordinals
-        // The result is an integer, which is too large for PHP's int
-        // data type, so we store it in a string instead.
-        // e.g. 0076 2011 6238 5295 7 CH93
-        //   -> 0076 2011 6238 5295 7 121893
-        $checkSum = $this->toBigInt($canonicalized);
-
-        // Do a modulo-97 operation on the large integer
-        // We cannot use PHP's modulo operator, so we calculate the
-        // modulo step-wisely instead
-        if (1 !== $this->bigModulo97($checkSum)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::CHECKSUM_FAILED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Iban::CHECKSUM_FAILED_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-
-    private function toBigInt($string)
-    {
-        $chars = str_split($string);
-        $bigInt = '';
-
-        foreach ($chars as $char) {
-            // Convert uppercase characters to ordinals, starting with 10 for "A"
-            if (ctype_upper($char)) {
-                $bigInt .= (ord($char) - 55);
-
-                continue;
-            }
-
-            // Simply append digits
-            $bigInt .= $char;
-        }
-
-        return $bigInt;
-    }
-
-    private function bigModulo97($bigInt)
-    {
-        $parts = str_split($bigInt, 7);
-        $rest = 0;
-
-        foreach ($parts as $part) {
-            $rest = ($rest.$part) % 97;
-        }
-
-        return $rest;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/IdenticalTo.php b/core/vendor/symfony/validator/Constraints/IdenticalTo.php
deleted file mode 100644
index 6d00286..0000000
--- a/core/vendor/symfony/validator/Constraints/IdenticalTo.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class IdenticalTo extends AbstractComparison
-{
-    public $message = 'This value should be identical to {{ compared_value_type }} {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/IdenticalToValidator.php b/core/vendor/symfony/validator/Constraints/IdenticalToValidator.php
deleted file mode 100644
index a186726..0000000
--- a/core/vendor/symfony/validator/Constraints/IdenticalToValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are identical (===).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class IdenticalToValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 === $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Image.php b/core/vendor/symfony/validator/Constraints/Image.php
deleted file mode 100644
index 904ef97..0000000
--- a/core/vendor/symfony/validator/Constraints/Image.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Benjamin Dulau <benjamin.dulau@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Image extends File
-{
-    // Don't reuse values used in File
-
-    const SIZE_NOT_DETECTED_ERROR = 10;
-    const TOO_WIDE_ERROR = 11;
-    const TOO_NARROW_ERROR = 12;
-    const TOO_HIGH_ERROR = 13;
-    const TOO_LOW_ERROR = 14;
-    const RATIO_TOO_BIG_ERROR = 15;
-    const RATIO_TOO_SMALL_ERROR = 16;
-    const SQUARE_NOT_ALLOWED_ERROR = 17;
-    const LANDSCAPE_NOT_ALLOWED_ERROR = 18;
-    const PORTRAIT_NOT_ALLOWED_ERROR = 19;
-
-    // Include the mapping from the base class
-
-    protected static $errorNames = array(
-        self::NOT_FOUND_ERROR => 'NOT_FOUND_ERROR',
-        self::NOT_READABLE_ERROR => 'NOT_READABLE_ERROR',
-        self::EMPTY_ERROR => 'EMPTY_ERROR',
-        self::TOO_LARGE_ERROR => 'TOO_LARGE_ERROR',
-        self::INVALID_MIME_TYPE_ERROR => 'INVALID_MIME_TYPE_ERROR',
-        self::SIZE_NOT_DETECTED_ERROR => 'SIZE_NOT_DETECTED_ERROR',
-        self::TOO_WIDE_ERROR => 'TOO_WIDE_ERROR',
-        self::TOO_NARROW_ERROR => 'TOO_NARROW_ERROR',
-        self::TOO_HIGH_ERROR => 'TOO_HIGH_ERROR',
-        self::TOO_LOW_ERROR => 'TOO_LOW_ERROR',
-        self::RATIO_TOO_BIG_ERROR => 'RATIO_TOO_BIG_ERROR',
-        self::RATIO_TOO_SMALL_ERROR => 'RATIO_TOO_SMALL_ERROR',
-        self::SQUARE_NOT_ALLOWED_ERROR => 'SQUARE_NOT_ALLOWED_ERROR',
-        self::LANDSCAPE_NOT_ALLOWED_ERROR => 'LANDSCAPE_NOT_ALLOWED_ERROR',
-        self::PORTRAIT_NOT_ALLOWED_ERROR => 'PORTRAIT_NOT_ALLOWED_ERROR',
-    );
-
-    public $mimeTypes = 'image/*';
-    public $minWidth;
-    public $maxWidth;
-    public $maxHeight;
-    public $minHeight;
-    public $maxRatio;
-    public $minRatio;
-    public $allowSquare = true;
-    public $allowLandscape = true;
-    public $allowPortrait = true;
-
-    // The constant for a wrong MIME type is taken from the parent class.
-    public $mimeTypesMessage = 'This file is not a valid image.';
-    public $sizeNotDetectedMessage = 'The size of the image could not be detected.';
-    public $maxWidthMessage = 'The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.';
-    public $minWidthMessage = 'The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.';
-    public $maxHeightMessage = 'The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.';
-    public $minHeightMessage = 'The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.';
-    public $maxRatioMessage = 'The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.';
-    public $minRatioMessage = 'The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.';
-    public $allowSquareMessage = 'The image is square ({{ width }}x{{ height }}px). Square images are not allowed.';
-    public $allowLandscapeMessage = 'The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.';
-    public $allowPortraitMessage = 'The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/ImageValidator.php b/core/vendor/symfony/validator/Constraints/ImageValidator.php
deleted file mode 100644
index a5165e2..0000000
--- a/core/vendor/symfony/validator/Constraints/ImageValidator.php
+++ /dev/null
@@ -1,261 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value is a valid image file and is valid
- * against minWidth, maxWidth, minHeight and maxHeight constraints.
- *
- * @author Benjamin Dulau <benjamin.dulau@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ImageValidator extends FileValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Image) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Image');
-        }
-
-        $violations = count($this->context->getViolations());
-
-        parent::validate($value, $constraint);
-
-        $failed = count($this->context->getViolations()) !== $violations;
-
-        if ($failed || null === $value || '' === $value) {
-            return;
-        }
-
-        if (null === $constraint->minWidth && null === $constraint->maxWidth
-            && null === $constraint->minHeight && null === $constraint->maxHeight
-            && null === $constraint->minRatio && null === $constraint->maxRatio
-            && $constraint->allowSquare && $constraint->allowLandscape && $constraint->allowPortrait) {
-            return;
-        }
-
-        $size = @getimagesize($value);
-
-        if (empty($size) || ($size[0] === 0) || ($size[1] === 0)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->sizeNotDetectedMessage)
-                    ->setCode(Image::SIZE_NOT_DETECTED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->sizeNotDetectedMessage)
-                    ->setCode(Image::SIZE_NOT_DETECTED_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $width = $size[0];
-        $height = $size[1];
-
-        if ($constraint->minWidth) {
-            if (!ctype_digit((string) $constraint->minWidth)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum width', $constraint->minWidth));
-            }
-
-            if ($width < $constraint->minWidth) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->minWidthMessage)
-                        ->setParameter('{{ width }}', $width)
-                        ->setParameter('{{ min_width }}', $constraint->minWidth)
-                        ->setCode(Image::TOO_NARROW_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->minWidthMessage)
-                        ->setParameter('{{ width }}', $width)
-                        ->setParameter('{{ min_width }}', $constraint->minWidth)
-                        ->setCode(Image::TOO_NARROW_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        }
-
-        if ($constraint->maxWidth) {
-            if (!ctype_digit((string) $constraint->maxWidth)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum width', $constraint->maxWidth));
-            }
-
-            if ($width > $constraint->maxWidth) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->maxWidthMessage)
-                        ->setParameter('{{ width }}', $width)
-                        ->setParameter('{{ max_width }}', $constraint->maxWidth)
-                        ->setCode(Image::TOO_WIDE_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->maxWidthMessage)
-                        ->setParameter('{{ width }}', $width)
-                        ->setParameter('{{ max_width }}', $constraint->maxWidth)
-                        ->setCode(Image::TOO_WIDE_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        }
-
-        if ($constraint->minHeight) {
-            if (!ctype_digit((string) $constraint->minHeight)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum height', $constraint->minHeight));
-            }
-
-            if ($height < $constraint->minHeight) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->minHeightMessage)
-                        ->setParameter('{{ height }}', $height)
-                        ->setParameter('{{ min_height }}', $constraint->minHeight)
-                        ->setCode(Image::TOO_LOW_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->minHeightMessage)
-                        ->setParameter('{{ height }}', $height)
-                        ->setParameter('{{ min_height }}', $constraint->minHeight)
-                        ->setCode(Image::TOO_LOW_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        }
-
-        if ($constraint->maxHeight) {
-            if (!ctype_digit((string) $constraint->maxHeight)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum height', $constraint->maxHeight));
-            }
-
-            if ($height > $constraint->maxHeight) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->maxHeightMessage)
-                        ->setParameter('{{ height }}', $height)
-                        ->setParameter('{{ max_height }}', $constraint->maxHeight)
-                        ->setCode(Image::TOO_HIGH_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->maxHeightMessage)
-                        ->setParameter('{{ height }}', $height)
-                        ->setParameter('{{ max_height }}', $constraint->maxHeight)
-                        ->setCode(Image::TOO_HIGH_ERROR)
-                        ->addViolation();
-                }
-            }
-        }
-
-        $ratio = round($width / $height, 2);
-
-        if (null !== $constraint->minRatio) {
-            if (!is_numeric((string) $constraint->minRatio)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum ratio', $constraint->minRatio));
-            }
-
-            if ($ratio < $constraint->minRatio) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->minRatioMessage)
-                        ->setParameter('{{ ratio }}', $ratio)
-                        ->setParameter('{{ min_ratio }}', $constraint->minRatio)
-                        ->setCode(Image::RATIO_TOO_SMALL_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->minRatioMessage)
-                        ->setParameter('{{ ratio }}', $ratio)
-                        ->setParameter('{{ min_ratio }}', $constraint->minRatio)
-                        ->setCode(Image::RATIO_TOO_SMALL_ERROR)
-                        ->addViolation();
-                }
-            }
-        }
-
-        if (null !== $constraint->maxRatio) {
-            if (!is_numeric((string) $constraint->maxRatio)) {
-                throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum ratio', $constraint->maxRatio));
-            }
-
-            if ($ratio > $constraint->maxRatio) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->maxRatioMessage)
-                        ->setParameter('{{ ratio }}', $ratio)
-                        ->setParameter('{{ max_ratio }}', $constraint->maxRatio)
-                        ->setCode(Image::RATIO_TOO_BIG_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->maxRatioMessage)
-                        ->setParameter('{{ ratio }}', $ratio)
-                        ->setParameter('{{ max_ratio }}', $constraint->maxRatio)
-                        ->setCode(Image::RATIO_TOO_BIG_ERROR)
-                        ->addViolation();
-                }
-            }
-        }
-
-        if (!$constraint->allowSquare && $width == $height) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->allowSquareMessage)
-                    ->setParameter('{{ width }}', $width)
-                    ->setParameter('{{ height }}', $height)
-                    ->setCode(Image::SQUARE_NOT_ALLOWED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->allowSquareMessage)
-                    ->setParameter('{{ width }}', $width)
-                    ->setParameter('{{ height }}', $height)
-                    ->setCode(Image::SQUARE_NOT_ALLOWED_ERROR)
-                    ->addViolation();
-            }
-        }
-
-        if (!$constraint->allowLandscape && $width > $height) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->allowLandscapeMessage)
-                    ->setParameter('{{ width }}', $width)
-                    ->setParameter('{{ height }}', $height)
-                    ->setCode(Image::LANDSCAPE_NOT_ALLOWED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->allowLandscapeMessage)
-                    ->setParameter('{{ width }}', $width)
-                    ->setParameter('{{ height }}', $height)
-                    ->setCode(Image::LANDSCAPE_NOT_ALLOWED_ERROR)
-                    ->addViolation();
-            }
-        }
-
-        if (!$constraint->allowPortrait && $width < $height) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->allowPortraitMessage)
-                    ->setParameter('{{ width }}', $width)
-                    ->setParameter('{{ height }}', $height)
-                    ->setCode(Image::PORTRAIT_NOT_ALLOWED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->allowPortraitMessage)
-                    ->setParameter('{{ width }}', $width)
-                    ->setParameter('{{ height }}', $height)
-                    ->setCode(Image::PORTRAIT_NOT_ALLOWED_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Ip.php b/core/vendor/symfony/validator/Constraints/Ip.php
deleted file mode 100644
index 27f0b2d..0000000
--- a/core/vendor/symfony/validator/Constraints/Ip.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * Validates that a value is a valid IP address.
- *
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Joseph Bielawski <stloyd@gmail.com>
- *
- * @api
- */
-class Ip extends Constraint
-{
-    const V4 = '4';
-    const V6 = '6';
-    const ALL = 'all';
-
-    // adds FILTER_FLAG_NO_PRIV_RANGE flag (skip private ranges)
-    const V4_NO_PRIV = '4_no_priv';
-    const V6_NO_PRIV = '6_no_priv';
-    const ALL_NO_PRIV = 'all_no_priv';
-
-    // adds FILTER_FLAG_NO_RES_RANGE flag (skip reserved ranges)
-    const V4_NO_RES = '4_no_res';
-    const V6_NO_RES = '6_no_res';
-    const ALL_NO_RES = 'all_no_res';
-
-    // adds FILTER_FLAG_NO_PRIV_RANGE and FILTER_FLAG_NO_RES_RANGE flags (skip both)
-    const V4_ONLY_PUBLIC = '4_public';
-    const V6_ONLY_PUBLIC = '6_public';
-    const ALL_ONLY_PUBLIC = 'all_public';
-
-    protected static $versions = array(
-        self::V4,
-        self::V6,
-        self::ALL,
-
-        self::V4_NO_PRIV,
-        self::V6_NO_PRIV,
-        self::ALL_NO_PRIV,
-
-        self::V4_NO_RES,
-        self::V6_NO_RES,
-        self::ALL_NO_RES,
-
-        self::V4_ONLY_PUBLIC,
-        self::V6_ONLY_PUBLIC,
-        self::ALL_ONLY_PUBLIC,
-    );
-
-    public $version = self::V4;
-
-    public $message = 'This is not a valid IP address.';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($options = null)
-    {
-        parent::__construct($options);
-
-        if (!in_array($this->version, self::$versions)) {
-            throw new ConstraintDefinitionException(sprintf('The option "version" must be one of "%s"', implode('", "', self::$versions)));
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/IpValidator.php b/core/vendor/symfony/validator/Constraints/IpValidator.php
deleted file mode 100644
index 8ec8068..0000000
--- a/core/vendor/symfony/validator/Constraints/IpValidator.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value is a valid IP address.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Joseph Bielawski <stloyd@gmail.com>
- *
- * @api
- */
-class IpValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Ip) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Ip');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        switch ($constraint->version) {
-            case Ip::V4:
-               $flag = FILTER_FLAG_IPV4;
-               break;
-
-            case Ip::V6:
-               $flag = FILTER_FLAG_IPV6;
-               break;
-
-            case Ip::V4_NO_PRIV:
-               $flag = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE;
-               break;
-
-            case Ip::V6_NO_PRIV:
-               $flag = FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE;
-               break;
-
-            case Ip::ALL_NO_PRIV:
-               $flag = FILTER_FLAG_NO_PRIV_RANGE;
-               break;
-
-            case Ip::V4_NO_RES:
-               $flag = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_RES_RANGE;
-               break;
-
-            case Ip::V6_NO_RES:
-               $flag = FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE;
-               break;
-
-            case Ip::ALL_NO_RES:
-               $flag = FILTER_FLAG_NO_RES_RANGE;
-               break;
-
-            case Ip::V4_ONLY_PUBLIC:
-               $flag = FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
-               break;
-
-            case Ip::V6_ONLY_PUBLIC:
-               $flag = FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
-               break;
-
-            case Ip::ALL_ONLY_PUBLIC:
-               $flag = FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
-               break;
-
-            default:
-                $flag = null;
-                break;
-        }
-
-        if (!filter_var($value, FILTER_VALIDATE_IP, $flag)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsFalse.php b/core/vendor/symfony/validator/Constraints/IsFalse.php
deleted file mode 100644
index 7b1b72b..0000000
--- a/core/vendor/symfony/validator/Constraints/IsFalse.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class IsFalse extends Constraint
-{
-    public $message = 'This value should be false.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsFalseValidator.php b/core/vendor/symfony/validator/Constraints/IsFalseValidator.php
deleted file mode 100644
index f521558..0000000
--- a/core/vendor/symfony/validator/Constraints/IsFalseValidator.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class IsFalseValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof IsFalse) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\IsFalse');
-        }
-
-        if (null === $value || false === $value || 0 === $value || '0' === $value) {
-            return;
-        }
-
-        if ($this->context instanceof ExecutionContextInterface) {
-            $this->context->buildViolation($constraint->message)
-                ->setParameter('{{ value }}', $this->formatValue($value))
-                ->addViolation();
-        } else {
-            $this->buildViolation($constraint->message)
-                ->setParameter('{{ value }}', $this->formatValue($value))
-                ->addViolation();
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsNull.php b/core/vendor/symfony/validator/Constraints/IsNull.php
deleted file mode 100644
index 3e7fef1..0000000
--- a/core/vendor/symfony/validator/Constraints/IsNull.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class IsNull extends Constraint
-{
-    public $message = 'This value should be null.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsNullValidator.php b/core/vendor/symfony/validator/Constraints/IsNullValidator.php
deleted file mode 100644
index 162f618..0000000
--- a/core/vendor/symfony/validator/Constraints/IsNullValidator.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class IsNullValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof IsNull) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\IsNull');
-        }
-
-        if (null !== $value) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsTrue.php b/core/vendor/symfony/validator/Constraints/IsTrue.php
deleted file mode 100644
index c0be6b8..0000000
--- a/core/vendor/symfony/validator/Constraints/IsTrue.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class IsTrue extends Constraint
-{
-    public $message = 'This value should be true.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsTrueValidator.php b/core/vendor/symfony/validator/Constraints/IsTrueValidator.php
deleted file mode 100644
index 206c63d..0000000
--- a/core/vendor/symfony/validator/Constraints/IsTrueValidator.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class IsTrueValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof IsTrue) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\IsTrue');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        if (true !== $value && 1 !== $value && '1' !== $value) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Isbn.php b/core/vendor/symfony/validator/Constraints/Isbn.php
deleted file mode 100644
index 35cb822..0000000
--- a/core/vendor/symfony/validator/Constraints/Isbn.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author The Whole Life To Learn <thewholelifetolearn@gmail.com>
- * @author Manuel Reinhard <manu@sprain.ch>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Isbn extends Constraint
-{
-    const TOO_SHORT_ERROR = 1;
-    const TOO_LONG_ERROR = 2;
-    const INVALID_CHARACTERS_ERROR = 3;
-    const CHECKSUM_FAILED_ERROR = 4;
-    const TYPE_NOT_RECOGNIZED_ERROR = 5;
-
-    protected static $errorNames = array(
-        self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR',
-        self::TOO_LONG_ERROR => 'TOO_LONG_ERROR',
-        self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR',
-        self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR',
-        self::TYPE_NOT_RECOGNIZED_ERROR => 'TYPE_NOT_RECOGNIZED_ERROR',
-    );
-
-    public $isbn10Message = 'This value is not a valid ISBN-10.';
-    public $isbn13Message = 'This value is not a valid ISBN-13.';
-    public $bothIsbnMessage = 'This value is neither a valid ISBN-10 nor a valid ISBN-13.';
-    public $type;
-    public $message;
-
-    /**
-     * @deprecated since version 2.5, to be removed in 3.0. Use option "type" instead.
-     * @var bool
-     */
-    public $isbn10 = false;
-
-    /**
-     * @deprecated since version 2.5, to be removed in 3.0. Use option "type" instead.
-     * @var bool
-     */
-    public $isbn13 = false;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'type';
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/IsbnValidator.php b/core/vendor/symfony/validator/Constraints/IsbnValidator.php
deleted file mode 100644
index 301a821..0000000
--- a/core/vendor/symfony/validator/Constraints/IsbnValidator.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether the value is a valid ISBN-10 or ISBN-13
- *
- * @author The Whole Life To Learn <thewholelifetolearn@gmail.com>
- * @author Manuel Reinhard <manu@sprain.ch>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see https://en.wikipedia.org/wiki/Isbn
- */
-class IsbnValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Isbn) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Isbn');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $canonical = str_replace('-', '', $value);
-
-        if (null === $constraint->type) {
-            if ($constraint->isbn10 && !$constraint->isbn13) {
-                @trigger_error('The "isbn10" option of the Isbn constraint is deprecated since version 2.5 and will be removed in 3.0. Use the "type" option instead.', E_USER_DEPRECATED);
-                $constraint->type = 'isbn10';
-            } elseif ($constraint->isbn13 && !$constraint->isbn10) {
-                @trigger_error('The "isbn13" option of the Isbn constraint is deprecated since version 2.5 and will be removed in 3.0. Use the "type" option instead.', E_USER_DEPRECATED);
-                $constraint->type = 'isbn13';
-            }
-        }
-
-        // Explicitly validate against ISBN-10
-        if ('isbn10' === $constraint->type) {
-            if (true !== ($code = $this->validateIsbn10($canonical))) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($this->getMessage($constraint, $constraint->type))
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode($code)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($this->getMessage($constraint, $constraint->type))
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode($code)
-                        ->addViolation();
-                }
-            }
-
-            return;
-        }
-
-        // Explicitly validate against ISBN-13
-        if ('isbn13' === $constraint->type) {
-            if (true !== ($code = $this->validateIsbn13($canonical))) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($this->getMessage($constraint, $constraint->type))
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode($code)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($this->getMessage($constraint, $constraint->type))
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode($code)
-                        ->addViolation();
-                }
-            }
-
-            return;
-        }
-
-        // Try both ISBNs
-
-        // First, try ISBN-10
-        $code = $this->validateIsbn10($canonical);
-
-        // The ISBN can only be an ISBN-13 if the value was too long for ISBN-10
-        if (Isbn::TOO_LONG_ERROR === $code) {
-            // Try ISBN-13 now
-            $code = $this->validateIsbn13($canonical);
-
-            // If too short, this means we have 11 or 12 digits
-            if (Isbn::TOO_SHORT_ERROR === $code) {
-                $code = Isbn::TYPE_NOT_RECOGNIZED_ERROR;
-            }
-        }
-
-        if (true !== $code) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($this->getMessage($constraint))
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode($code)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($this->getMessage($constraint))
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode($code)
-                    ->addViolation();
-            }
-        }
-    }
-
-    protected function validateIsbn10($isbn)
-    {
-        // Choose an algorithm so that ERROR_INVALID_CHARACTERS is preferred
-        // over ERROR_TOO_SHORT/ERROR_TOO_LONG
-        // Otherwise "0-45122-5244" passes, but "0-45122_5244" reports
-        // "too long"
-
-        // Error priority:
-        // 1. ERROR_INVALID_CHARACTERS
-        // 2. ERROR_TOO_SHORT/ERROR_TOO_LONG
-        // 3. ERROR_CHECKSUM_FAILED
-
-        $checkSum = 0;
-
-        for ($i = 0; $i < 10; ++$i) {
-            // If we test the length before the loop, we get an ERROR_TOO_SHORT
-            // when actually an ERROR_INVALID_CHARACTERS is wanted, e.g. for
-            // "0-45122_5244" (typo)
-            if (!isset($isbn{$i})) {
-                return Isbn::TOO_SHORT_ERROR;
-            }
-
-            if ('X' === $isbn{$i}) {
-                $digit = 10;
-            } elseif (ctype_digit($isbn{$i})) {
-                $digit = $isbn{$i};
-            } else {
-                return Isbn::INVALID_CHARACTERS_ERROR;
-            }
-
-            $checkSum += $digit * (10 - $i);
-        }
-
-        if (isset($isbn{$i})) {
-            return Isbn::TOO_LONG_ERROR;
-        }
-
-        return 0 === $checkSum % 11 ? true : Isbn::CHECKSUM_FAILED_ERROR;
-    }
-
-    protected function validateIsbn13($isbn)
-    {
-        // Error priority:
-        // 1. ERROR_INVALID_CHARACTERS
-        // 2. ERROR_TOO_SHORT/ERROR_TOO_LONG
-        // 3. ERROR_CHECKSUM_FAILED
-
-        if (!ctype_digit($isbn)) {
-            return Isbn::INVALID_CHARACTERS_ERROR;
-        }
-
-        $length = strlen($isbn);
-
-        if ($length < 13) {
-            return Isbn::TOO_SHORT_ERROR;
-        }
-
-        if ($length > 13) {
-            return Isbn::TOO_LONG_ERROR;
-        }
-
-        $checkSum = 0;
-
-        for ($i = 0; $i < 13; $i += 2) {
-            $checkSum += $isbn{$i};
-        }
-
-        for ($i = 1; $i < 12; $i += 2) {
-            $checkSum += $isbn{$i}
-            * 3;
-        }
-
-        return 0 === $checkSum % 10 ? true : Isbn::CHECKSUM_FAILED_ERROR;
-    }
-
-    protected function getMessage($constraint, $type = null)
-    {
-        if (null !== $constraint->message) {
-            return $constraint->message;
-        } elseif ('isbn10' === $type) {
-            return $constraint->isbn10Message;
-        } elseif ('isbn13' === $type) {
-            return $constraint->isbn13Message;
-        }
-
-        return $constraint->bothIsbnMessage;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Issn.php b/core/vendor/symfony/validator/Constraints/Issn.php
deleted file mode 100644
index 39716a2..0000000
--- a/core/vendor/symfony/validator/Constraints/Issn.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Antonio J. García Lagar <aj@garcialagar.es>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Issn extends Constraint
-{
-    const TOO_SHORT_ERROR = 1;
-    const TOO_LONG_ERROR = 2;
-    const MISSING_HYPHEN_ERROR = 3;
-    const INVALID_CHARACTERS_ERROR = 4;
-    const INVALID_CASE_ERROR = 5;
-    const CHECKSUM_FAILED_ERROR = 6;
-
-    protected static $errorNames = array(
-        self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR',
-        self::TOO_LONG_ERROR => 'TOO_LONG_ERROR',
-        self::MISSING_HYPHEN_ERROR => 'MISSING_HYPHEN_ERROR',
-        self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR',
-        self::INVALID_CASE_ERROR => 'INVALID_CASE_ERROR',
-        self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR',
-    );
-
-    public $message = 'This value is not a valid ISSN.';
-    public $caseSensitive = false;
-    public $requireHyphen = false;
-}
diff --git a/core/vendor/symfony/validator/Constraints/IssnValidator.php b/core/vendor/symfony/validator/Constraints/IssnValidator.php
deleted file mode 100644
index 87bf83c..0000000
--- a/core/vendor/symfony/validator/Constraints/IssnValidator.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether the value is a valid ISSN.
- *
- * @author Antonio J. García Lagar <aj@garcialagar.es>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see https://en.wikipedia.org/wiki/Issn
- */
-class IssnValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Issn) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Issn');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $canonical = $value;
-
-        // 1234-567X
-        //     ^
-        if (isset($canonical{4}) && '-' === $canonical{4}) {
-            // remove hyphen
-            $canonical = substr($canonical, 0, 4).substr($canonical, 5);
-        } elseif ($constraint->requireHyphen) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::MISSING_HYPHEN_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::MISSING_HYPHEN_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $length = strlen($canonical);
-
-        if ($length < 8) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::TOO_SHORT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::TOO_SHORT_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if ($length > 8) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::TOO_LONG_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::TOO_LONG_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // 1234567X
-        // ^^^^^^^ digits only
-        if (!ctype_digit(substr($canonical, 0, 7))) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // 1234567X
-        //        ^ digit, x or X
-        if (!ctype_digit($canonical{7}) && 'x' !== $canonical{7} && 'X' !== $canonical{7}) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // 1234567X
-        //        ^ case-sensitive?
-        if ($constraint->caseSensitive && 'x' === $canonical{7}) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::INVALID_CASE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::INVALID_CASE_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        // Calculate a checksum. "X" equals 10.
-        $checkSum = 'X' === $canonical{7} || 'x' === $canonical{7}
-            ? 10
-            : $canonical{7};
-
-        for ($i = 0; $i < 7; ++$i) {
-            // Multiply the first digit by 8, the second by 7, etc.
-            $checkSum += (8 - $i) * $canonical{$i};
-        }
-
-        if (0 !== $checkSum % 11) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::CHECKSUM_FAILED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Issn::CHECKSUM_FAILED_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Language.php b/core/vendor/symfony/validator/Constraints/Language.php
deleted file mode 100644
index e7c29dc..0000000
--- a/core/vendor/symfony/validator/Constraints/Language.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Language extends Constraint
-{
-    public $message = 'This value is not a valid language.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/LanguageValidator.php b/core/vendor/symfony/validator/Constraints/LanguageValidator.php
deleted file mode 100644
index cc8581f..0000000
--- a/core/vendor/symfony/validator/Constraints/LanguageValidator.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Intl\Intl;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value is a valid language code.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class LanguageValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Language) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Language');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $languages = Intl::getLanguageBundle()->getLanguageNames();
-
-        if (!isset($languages[$value])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Length.php b/core/vendor/symfony/validator/Constraints/Length.php
deleted file mode 100644
index 8d00480..0000000
--- a/core/vendor/symfony/validator/Constraints/Length.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\MissingOptionsException;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Length extends Constraint
-{
-    const TOO_SHORT_ERROR = 1;
-    const TOO_LONG_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR',
-        self::TOO_LONG_ERROR => 'TOO_LONG_ERROR',
-    );
-
-    public $maxMessage = 'This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.';
-    public $minMessage = 'This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.';
-    public $exactMessage = 'This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.';
-    public $charsetMessage = 'This value does not match the expected {{ charset }} charset.';
-    public $max;
-    public $min;
-    public $charset = 'UTF-8';
-
-    public function __construct($options = null)
-    {
-        if (null !== $options && !is_array($options)) {
-            $options = array(
-                'min' => $options,
-                'max' => $options,
-            );
-        }
-
-        parent::__construct($options);
-
-        if (null === $this->min && null === $this->max) {
-            throw new MissingOptionsException(sprintf('Either option "min" or "max" must be given for constraint %s', __CLASS__), array('min', 'max'));
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/LengthValidator.php b/core/vendor/symfony/validator/Constraints/LengthValidator.php
deleted file mode 100644
index bfa7b19..0000000
--- a/core/vendor/symfony/validator/Constraints/LengthValidator.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class LengthValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Length) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Length');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $stringValue = (string) $value;
-        $invalidCharset = false;
-
-        if ('UTF8' === $charset = strtoupper($constraint->charset)) {
-            $charset = 'UTF-8';
-        }
-
-        if (function_exists('iconv_strlen')) {
-            $length = @iconv_strlen($stringValue, $constraint->charset);
-            $invalidCharset = false === $length;
-        } elseif (function_exists('mb_strlen')) {
-            if (mb_check_encoding($stringValue, $constraint->charset)) {
-                $length = mb_strlen($stringValue, $constraint->charset);
-            } else {
-                $invalidCharset = true;
-            }
-        } elseif ('UTF-8' !== $charset) {
-            $length = strlen($stringValue);
-        } elseif (!preg_match('//u', $stringValue)) {
-            $invalidCharset = true;
-        } elseif (function_exists('utf8_decode')) {
-            $length = strlen(utf8_decode($stringValue));
-        } else {
-            preg_replace('/./u', '', $stringValue, -1, $length);
-        }
-
-        if ($invalidCharset) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->charsetMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($stringValue))
-                    ->setParameter('{{ charset }}', $constraint->charset)
-                    ->setInvalidValue($value)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->charsetMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($stringValue))
-                    ->setParameter('{{ charset }}', $constraint->charset)
-                    ->setInvalidValue($value)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (null !== $constraint->max && $length > $constraint->max) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->maxMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($stringValue))
-                    ->setParameter('{{ limit }}', $constraint->max)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->max)
-                    ->setCode(Length::TOO_LONG_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->maxMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($stringValue))
-                    ->setParameter('{{ limit }}', $constraint->max)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->max)
-                    ->setCode(Length::TOO_LONG_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (null !== $constraint->min && $length < $constraint->min) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->minMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($stringValue))
-                    ->setParameter('{{ limit }}', $constraint->min)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->min)
-                    ->setCode(Length::TOO_SHORT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->min == $constraint->max ? $constraint->exactMessage : $constraint->minMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($stringValue))
-                    ->setParameter('{{ limit }}', $constraint->min)
-                    ->setInvalidValue($value)
-                    ->setPlural((int) $constraint->min)
-                    ->setCode(Length::TOO_SHORT_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/LessThan.php b/core/vendor/symfony/validator/Constraints/LessThan.php
deleted file mode 100644
index b116320..0000000
--- a/core/vendor/symfony/validator/Constraints/LessThan.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class LessThan extends AbstractComparison
-{
-    public $message = 'This value should be less than {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/LessThanOrEqual.php b/core/vendor/symfony/validator/Constraints/LessThanOrEqual.php
deleted file mode 100644
index 7faca84..0000000
--- a/core/vendor/symfony/validator/Constraints/LessThanOrEqual.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class LessThanOrEqual extends AbstractComparison
-{
-    public $message = 'This value should be less than or equal to {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/LessThanOrEqualValidator.php b/core/vendor/symfony/validator/Constraints/LessThanOrEqualValidator.php
deleted file mode 100644
index dcc93b2..0000000
--- a/core/vendor/symfony/validator/Constraints/LessThanOrEqualValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are less than or equal to the previous (<=).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class LessThanOrEqualValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 <= $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/LessThanValidator.php b/core/vendor/symfony/validator/Constraints/LessThanValidator.php
deleted file mode 100644
index 081316a..0000000
--- a/core/vendor/symfony/validator/Constraints/LessThanValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are less than the previous (<).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class LessThanValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 < $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Locale.php b/core/vendor/symfony/validator/Constraints/Locale.php
deleted file mode 100644
index 12a5546..0000000
--- a/core/vendor/symfony/validator/Constraints/Locale.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Locale extends Constraint
-{
-    public $message = 'This value is not a valid locale.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/LocaleValidator.php b/core/vendor/symfony/validator/Constraints/LocaleValidator.php
deleted file mode 100644
index a5f6927..0000000
--- a/core/vendor/symfony/validator/Constraints/LocaleValidator.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Intl\Intl;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value is a valid locale code.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class LocaleValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Locale) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Locale');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $locales = Intl::getLocaleBundle()->getLocaleNames();
-
-        if (!isset($locales[$value])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Luhn.php b/core/vendor/symfony/validator/Constraints/Luhn.php
deleted file mode 100644
index 24f5bc7..0000000
--- a/core/vendor/symfony/validator/Constraints/Luhn.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * Metadata for the LuhnValidator.
- *
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Tim Nagel <t.nagel@infinite.net.au>
- * @author Greg Knapp http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Luhn extends Constraint
-{
-    const INVALID_CHARACTERS_ERROR = 1;
-    const CHECKSUM_FAILED_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR',
-        self::CHECKSUM_FAILED_ERROR => 'CHECKSUM_FAILED_ERROR',
-    );
-
-    public $message = 'Invalid card number.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/LuhnValidator.php b/core/vendor/symfony/validator/Constraints/LuhnValidator.php
deleted file mode 100644
index 31d4497..0000000
--- a/core/vendor/symfony/validator/Constraints/LuhnValidator.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates a PAN using the LUHN Algorithm.
- *
- * For a list of example card numbers that are used to test this
- * class, please see the LuhnValidatorTest class.
- *
- * @see    http://en.wikipedia.org/wiki/Luhn_algorithm
- *
- * @author Tim Nagel <t.nagel@infinite.net.au>
- * @author Greg Knapp http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class LuhnValidator extends ConstraintValidator
-{
-    /**
-     * Validates a credit card number with the Luhn algorithm.
-     *
-     * @param mixed      $value
-     * @param Constraint $constraint
-     *
-     * @throws UnexpectedTypeException when the given credit card number is no string
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Luhn) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Luhn');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        // Work with strings only, because long numbers are represented as floats
-        // internally and don't work with strlen()
-        if (!is_string($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if (!ctype_digit($value)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Luhn::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Luhn::INVALID_CHARACTERS_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $checkSum = 0;
-        $length = strlen($value);
-
-        // Starting with the last digit and walking left, add every second
-        // digit to the check sum
-        // e.g. 7  9  9  2  7  3  9  8  7  1  3
-        //      ^     ^     ^     ^     ^     ^
-        //    = 7  +  9  +  7  +  9  +  7  +  3
-        for ($i = $length - 1; $i >= 0; $i -= 2) {
-            $checkSum += $value{$i};
-        }
-
-        // Starting with the second last digit and walking left, double every
-        // second digit and add it to the check sum
-        // For doubles greater than 9, sum the individual digits
-        // e.g. 7  9  9  2  7  3  9  8  7  1  3
-        //         ^     ^     ^     ^     ^
-        //    =    1+8 + 4  +  6  +  1+6 + 2
-        for ($i = $length - 2; $i >= 0; $i -= 2) {
-            $checkSum += array_sum(str_split($value{$i} * 2));
-        }
-
-        if (0 === $checkSum || 0 !== $checkSum % 10) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Luhn::CHECKSUM_FAILED_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Luhn::CHECKSUM_FAILED_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotBlank.php b/core/vendor/symfony/validator/Constraints/NotBlank.php
deleted file mode 100644
index c578c6d..0000000
--- a/core/vendor/symfony/validator/Constraints/NotBlank.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class NotBlank extends Constraint
-{
-    public $message = 'This value should not be blank.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotBlankValidator.php b/core/vendor/symfony/validator/Constraints/NotBlankValidator.php
deleted file mode 100644
index a435701..0000000
--- a/core/vendor/symfony/validator/Constraints/NotBlankValidator.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class NotBlankValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof NotBlank) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\NotBlank');
-        }
-
-        if (false === $value || (empty($value) && '0' != $value)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotEqualTo.php b/core/vendor/symfony/validator/Constraints/NotEqualTo.php
deleted file mode 100644
index abd8092..0000000
--- a/core/vendor/symfony/validator/Constraints/NotEqualTo.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class NotEqualTo extends AbstractComparison
-{
-    public $message = 'This value should not be equal to {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotEqualToValidator.php b/core/vendor/symfony/validator/Constraints/NotEqualToValidator.php
deleted file mode 100644
index 5710a85..0000000
--- a/core/vendor/symfony/validator/Constraints/NotEqualToValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values are all unequal (!=).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class NotEqualToValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 != $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotIdenticalTo.php b/core/vendor/symfony/validator/Constraints/NotIdenticalTo.php
deleted file mode 100644
index fb4ef3f..0000000
--- a/core/vendor/symfony/validator/Constraints/NotIdenticalTo.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class NotIdenticalTo extends AbstractComparison
-{
-    public $message = 'This value should not be identical to {{ compared_value_type }} {{ compared_value }}.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotIdenticalToValidator.php b/core/vendor/symfony/validator/Constraints/NotIdenticalToValidator.php
deleted file mode 100644
index ed8dc1c..0000000
--- a/core/vendor/symfony/validator/Constraints/NotIdenticalToValidator.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * Validates values aren't identical (!==).
- *
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class NotIdenticalToValidator extends AbstractComparisonValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    protected function compareValues($value1, $value2)
-    {
-        return $value1 !== $value2;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotNull.php b/core/vendor/symfony/validator/Constraints/NotNull.php
deleted file mode 100644
index 60416c7..0000000
--- a/core/vendor/symfony/validator/Constraints/NotNull.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class NotNull extends Constraint
-{
-    public $message = 'This value should not be null.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/NotNullValidator.php b/core/vendor/symfony/validator/Constraints/NotNullValidator.php
deleted file mode 100644
index a7a905a..0000000
--- a/core/vendor/symfony/validator/Constraints/NotNullValidator.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class NotNullValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof NotNull) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\NotNull');
-        }
-
-        if (null === $value) {
-            $this->context->addViolation($constraint->message);
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Null.php b/core/vendor/symfony/validator/Constraints/Null.php
deleted file mode 100644
index 705d93f..0000000
--- a/core/vendor/symfony/validator/Constraints/Null.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-@trigger_error('The '.__NAMESPACE__.'\Null class is deprecated since version 2.7 and will be removed in 3.0. Use the IsNull class in the same namespace instead.', E_USER_DEPRECATED);
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use IsNull instead.
- */
-class Null extends IsNull
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/NullValidator.php b/core/vendor/symfony/validator/Constraints/NullValidator.php
deleted file mode 100644
index bd17eab..0000000
--- a/core/vendor/symfony/validator/Constraints/NullValidator.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-@trigger_error('The '.__NAMESPACE__.'\NullValidator class is deprecated since version 2.7 and will be removed in 3.0. Use the IsNullValidator class in the same namespace instead.', E_USER_DEPRECATED);
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use IsNullValidator instead.
- */
-class NullValidator extends IsNullValidator
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/Optional.php b/core/vendor/symfony/validator/Constraints/Optional.php
deleted file mode 100644
index dab8b43..0000000
--- a/core/vendor/symfony/validator/Constraints/Optional.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Optional extends Existence
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/Range.php b/core/vendor/symfony/validator/Constraints/Range.php
deleted file mode 100644
index a12afff..0000000
--- a/core/vendor/symfony/validator/Constraints/Range.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\MissingOptionsException;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Range extends Constraint
-{
-    const INVALID_VALUE_ERROR = 1;
-    const BEYOND_RANGE_ERROR = 2;
-    const BELOW_RANGE_ERROR = 3;
-
-    protected static $errorNames = array(
-        self::INVALID_VALUE_ERROR => 'INVALID_VALUE_ERROR',
-        self::BEYOND_RANGE_ERROR => 'BEYOND_RANGE_ERROR',
-        self::BELOW_RANGE_ERROR => 'BELOW_RANGE_ERROR',
-    );
-
-    public $minMessage = 'This value should be {{ limit }} or more.';
-    public $maxMessage = 'This value should be {{ limit }} or less.';
-    public $invalidMessage = 'This value should be a valid number.';
-    public $min;
-    public $max;
-
-    public function __construct($options = null)
-    {
-        parent::__construct($options);
-
-        if (null === $this->min && null === $this->max) {
-            throw new MissingOptionsException(sprintf('Either option "min" or "max" must be given for constraint %s', __CLASS__), array('min', 'max'));
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/RangeValidator.php b/core/vendor/symfony/validator/Constraints/RangeValidator.php
deleted file mode 100644
index 8f5fdda..0000000
--- a/core/vendor/symfony/validator/Constraints/RangeValidator.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class RangeValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Range) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Range');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        if (!is_numeric($value) && !$value instanceof \DateTime && !$value instanceof \DateTimeInterface) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->invalidMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE))
-                    ->setCode(Range::INVALID_VALUE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->invalidMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE))
-                    ->setCode(Range::INVALID_VALUE_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        $min = $constraint->min;
-        $max = $constraint->max;
-
-        // Convert strings to DateTimes if comparing another DateTime
-        // This allows to compare with any date/time value supported by
-        // the DateTime constructor:
-        // http://php.net/manual/en/datetime.formats.php
-        if ($value instanceof \DateTime || $value instanceof \DateTimeInterface) {
-            if (is_string($min)) {
-                $min = new \DateTime($min);
-            }
-
-            if (is_string($max)) {
-                $max = new \DateTime($max);
-            }
-        }
-
-        if (null !== $constraint->max && $value > $max) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->maxMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE))
-                    ->setParameter('{{ limit }}', $this->formatValue($max, self::PRETTY_DATE))
-                    ->setCode(Range::BEYOND_RANGE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->maxMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE))
-                    ->setParameter('{{ limit }}', $this->formatValue($max, self::PRETTY_DATE))
-                    ->setCode(Range::BEYOND_RANGE_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (null !== $constraint->min && $value < $min) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->minMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE))
-                    ->setParameter('{{ limit }}', $this->formatValue($min, self::PRETTY_DATE))
-                    ->setCode(Range::BELOW_RANGE_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->minMessage)
-                    ->setParameter('{{ value }}', $this->formatValue($value, self::PRETTY_DATE))
-                    ->setParameter('{{ limit }}', $this->formatValue($min, self::PRETTY_DATE))
-                    ->setCode(Range::BELOW_RANGE_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Regex.php b/core/vendor/symfony/validator/Constraints/Regex.php
deleted file mode 100644
index 3cdf514..0000000
--- a/core/vendor/symfony/validator/Constraints/Regex.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Regex extends Constraint
-{
-    public $message = 'This value is not valid.';
-    public $pattern;
-    public $htmlPattern;
-    public $match = true;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'pattern';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRequiredOptions()
-    {
-        return array('pattern');
-    }
-
-    /**
-     * Converts the htmlPattern to a suitable format for HTML5 pattern.
-     * Example: /^[a-z]+$/ would be converted to [a-z]+
-     * However, if options are specified, it cannot be converted.
-     *
-     * Pattern is also ignored if match=false since the pattern should
-     * then be reversed before application.
-     *
-     * @link http://dev.w3.org/html5/spec/single-page.html#the-pattern-attribute
-     *
-     * @return string|null
-     */
-    public function getHtmlPattern()
-    {
-        // If htmlPattern is specified, use it
-        if (null !== $this->htmlPattern) {
-            return empty($this->htmlPattern)
-                ? null
-                : $this->htmlPattern;
-        }
-
-        // Quit if delimiters not at very beginning/end (e.g. when options are passed)
-        if ($this->pattern[0] !== $this->pattern[strlen($this->pattern) - 1]) {
-            return;
-        }
-
-        $delimiter = $this->pattern[0];
-
-        // Unescape the delimiter
-        $pattern = str_replace('\\'.$delimiter, $delimiter, substr($this->pattern, 1, -1));
-
-        // If the pattern is inverted, we can simply wrap it in
-        // ((?!pattern).)*
-        if (!$this->match) {
-            return '((?!'.$pattern.').)*';
-        }
-
-        // If the pattern contains an or statement, wrap the pattern in
-        // .*(pattern).* and quit. Otherwise we'd need to parse the pattern
-        if (false !== strpos($pattern, '|')) {
-            return '.*('.$pattern.').*';
-        }
-
-        // Trim leading ^, otherwise prepend .*
-        $pattern = '^' === $pattern[0] ? substr($pattern, 1) : '.*'.$pattern;
-
-        // Trim trailing $, otherwise append .*
-        $pattern = '$' === $pattern[strlen($pattern) - 1] ? substr($pattern, 0, -1) : $pattern.'.*';
-
-        return $pattern;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/RegexValidator.php b/core/vendor/symfony/validator/Constraints/RegexValidator.php
deleted file mode 100644
index 45ba979..0000000
--- a/core/vendor/symfony/validator/Constraints/RegexValidator.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether a value match or not given regexp pattern.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Joseph Bielawski <stloyd@gmail.com>
- *
- * @api
- */
-class RegexValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Regex) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Regex');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if ($constraint->match xor preg_match($constraint->pattern, $value)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Required.php b/core/vendor/symfony/validator/Constraints/Required.php
deleted file mode 100644
index bd77a90..0000000
--- a/core/vendor/symfony/validator/Constraints/Required.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-/**
- * @Annotation
- * @Target({"ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Required extends Existence
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/Time.php b/core/vendor/symfony/validator/Constraints/Time.php
deleted file mode 100644
index 7998c6f..0000000
--- a/core/vendor/symfony/validator/Constraints/Time.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Time extends Constraint
-{
-    const INVALID_FORMAT_ERROR = 1;
-    const INVALID_TIME_ERROR = 2;
-
-    protected static $errorNames = array(
-        self::INVALID_FORMAT_ERROR => 'INVALID_FORMAT_ERROR',
-        self::INVALID_TIME_ERROR => 'INVALID_TIME_ERROR',
-    );
-
-    public $message = 'This value is not a valid time.';
-}
diff --git a/core/vendor/symfony/validator/Constraints/TimeValidator.php b/core/vendor/symfony/validator/Constraints/TimeValidator.php
deleted file mode 100644
index 1a173a1..0000000
--- a/core/vendor/symfony/validator/Constraints/TimeValidator.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class TimeValidator extends ConstraintValidator
-{
-    const PATTERN = '/^(\d{2}):(\d{2}):(\d{2})$/';
-
-    /**
-     * Checks whether a time is valid.
-     *
-     * @param int $hour   The hour
-     * @param int $minute The minute
-     * @param int $second The second
-     *
-     * @return bool Whether the time is valid
-     *
-     * @internal
-     */
-    public static function checkTime($hour, $minute, $second)
-    {
-        return $hour >= 0 && $hour < 24 && $minute >= 0 && $minute < 60 && $second >= 0 && $second < 60;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Time) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Time');
-        }
-
-        if (null === $value || '' === $value || $value instanceof \DateTime) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if (!preg_match(static::PATTERN, $value, $matches)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Time::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Time::INVALID_FORMAT_ERROR)
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if (!self::checkTime($matches[1], $matches[2], $matches[3])) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Time::INVALID_TIME_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Time::INVALID_TIME_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Traverse.php b/core/vendor/symfony/validator/Constraints/Traverse.php
deleted file mode 100644
index 4abae6c..0000000
--- a/core/vendor/symfony/validator/Constraints/Traverse.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * @Annotation
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Traverse extends Constraint
-{
-    public $traverse = true;
-
-    public function __construct($options = null)
-    {
-        if (is_array($options) && array_key_exists('groups', $options)) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The option "groups" is not supported by the constraint %s',
-                __CLASS__
-            ));
-        }
-
-        parent::__construct($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'traverse';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTargets()
-    {
-        return self::CLASS_CONSTRAINT;
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/True.php b/core/vendor/symfony/validator/Constraints/True.php
deleted file mode 100644
index b9efff3..0000000
--- a/core/vendor/symfony/validator/Constraints/True.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-@trigger_error('The '.__NAMESPACE__.'\True class is deprecated since version 2.7 and will be removed in 3.0. Use the IsTrue class in the same namespace instead.', E_USER_DEPRECATED);
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use IsTrue instead.
- */
-class True extends IsTrue
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/TrueValidator.php b/core/vendor/symfony/validator/Constraints/TrueValidator.php
deleted file mode 100644
index 14d8798..0000000
--- a/core/vendor/symfony/validator/Constraints/TrueValidator.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-@trigger_error('The '.__NAMESPACE__.'\TrueValidator class is deprecated since version 2.7 and will be removed in 3.0. Use the IsTrueValidator class in the same namespace instead.', E_USER_DEPRECATED);
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use IsTrueValidator instead.
- */
-class TrueValidator extends IsTrueValidator
-{
-}
diff --git a/core/vendor/symfony/validator/Constraints/Type.php b/core/vendor/symfony/validator/Constraints/Type.php
deleted file mode 100644
index fc4cc72..0000000
--- a/core/vendor/symfony/validator/Constraints/Type.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Type extends Constraint
-{
-    public $message = 'This value should be of type {{ type }}.';
-    public $type;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getDefaultOption()
-    {
-        return 'type';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRequiredOptions()
-    {
-        return array('type');
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/TypeValidator.php b/core/vendor/symfony/validator/Constraints/TypeValidator.php
deleted file mode 100644
index 30ad278..0000000
--- a/core/vendor/symfony/validator/Constraints/TypeValidator.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class TypeValidator extends ConstraintValidator
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Type) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Type');
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        $type = strtolower($constraint->type);
-        $type = $type == 'boolean' ? 'bool' : $constraint->type;
-        $isFunction = 'is_'.$type;
-        $ctypeFunction = 'ctype_'.$type;
-
-        if (function_exists($isFunction) && $isFunction($value)) {
-            return;
-        } elseif (function_exists($ctypeFunction) && $ctypeFunction($value)) {
-            return;
-        } elseif ($value instanceof $constraint->type) {
-            return;
-        }
-
-        if ($this->context instanceof ExecutionContextInterface) {
-            $this->context->buildViolation($constraint->message)
-                ->setParameter('{{ value }}', $this->formatValue($value))
-                ->setParameter('{{ type }}', $constraint->type)
-                ->addViolation();
-        } else {
-            $this->buildViolation($constraint->message)
-                ->setParameter('{{ value }}', $this->formatValue($value))
-                ->setParameter('{{ type }}', $constraint->type)
-                ->addViolation();
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Url.php b/core/vendor/symfony/validator/Constraints/Url.php
deleted file mode 100644
index 7b8ef3f..0000000
--- a/core/vendor/symfony/validator/Constraints/Url.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Url extends Constraint
-{
-    public $message = 'This value is not a valid URL.';
-    public $dnsMessage = 'The host could not be resolved.';
-    public $protocols = array('http', 'https');
-    public $checkDNS = false;
-}
diff --git a/core/vendor/symfony/validator/Constraints/UrlValidator.php b/core/vendor/symfony/validator/Constraints/UrlValidator.php
deleted file mode 100644
index b38f8da..0000000
--- a/core/vendor/symfony/validator/Constraints/UrlValidator.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class UrlValidator extends ConstraintValidator
-{
-    const PATTERN = '~^
-            (%s)://                                 # protocol
-            (([\pL\pN-]+:)?([\pL\pN-]+)@)?          # basic auth
-            (
-                ([\pL\pN\pS-\.])+(\.?([\pL]|xn\-\-[\pL\pN-]+)+\.?) # a domain name
-                    |                                              # or
-                \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}                 # a IP address
-                    |                                              # or
-                \[
-                    (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::))))
-                \]  # a IPv6 address
-            )
-            (:[0-9]+)?                              # a port (optional)
-            (/?|/\S+)                               # a /, nothing or a / with something
-        $~ixu';
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (!$constraint instanceof Url) {
-            throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\Url');
-        }
-
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-        $pattern = sprintf(static::PATTERN, implode('|', $constraint->protocols));
-
-        if (!preg_match($pattern, $value)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->addViolation();
-            }
-
-            return;
-        }
-
-        if ($constraint->checkDNS) {
-            $host = parse_url($value, PHP_URL_HOST);
-
-            if (!checkdnsrr($host, 'ANY')) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->dnsMessage)
-                       ->setParameter('{{ value }}', $this->formatValue($host))
-                       ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->dnsMessage)
-                       ->setParameter('{{ value }}', $this->formatValue($host))
-                       ->addViolation();
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Uuid.php b/core/vendor/symfony/validator/Constraints/Uuid.php
deleted file mode 100644
index 3c67a3a..0000000
--- a/core/vendor/symfony/validator/Constraints/Uuid.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-
-/**
- * @Annotation
- *
- * @author Colin O'Dell <colinodell@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class Uuid extends Constraint
-{
-    const TOO_SHORT_ERROR = 1;
-    const TOO_LONG_ERROR = 2;
-    const INVALID_CHARACTERS_ERROR = 3;
-    const INVALID_HYPHEN_PLACEMENT_ERROR = 4;
-    const INVALID_VERSION_ERROR = 5;
-    const INVALID_VARIANT_ERROR = 6;
-
-    protected static $errorNames = array(
-        self::TOO_SHORT_ERROR => 'TOO_SHORT_ERROR',
-        self::TOO_LONG_ERROR => 'TOO_LONG_ERROR',
-        self::INVALID_CHARACTERS_ERROR => 'INVALID_CHARACTERS_ERROR',
-        self::INVALID_HYPHEN_PLACEMENT_ERROR => 'INVALID_HYPHEN_PLACEMENT_ERROR',
-        self::INVALID_VERSION_ERROR => 'INVALID_VERSION_ERROR',
-        self::INVALID_VARIANT_ERROR => 'INVALID_VARIANT_ERROR',
-    );
-
-    // Possible versions defined by RFC 4122
-    const V1_MAC = 1;
-    const V2_DCE = 2;
-    const V3_MD5 = 3;
-    const V4_RANDOM = 4;
-    const V5_SHA1 = 5;
-
-    /**
-     * Message to display when validation fails
-     *
-     * @var string
-     */
-    public $message = 'This is not a valid UUID.';
-
-    /**
-     * Strict mode only allows UUIDs that meet the formal definition and formatting per RFC 4122
-     *
-     * Set this to `false` to allow legacy formats with different dash positioning or wrapping characters
-     *
-     * @var bool
-     */
-    public $strict = true;
-
-    /**
-     * Array of allowed versions (see version constants above)
-     *
-     * All UUID versions are allowed by default
-     *
-     * @var int[]
-     */
-    public $versions = array(
-        self::V1_MAC,
-        self::V2_DCE,
-        self::V3_MD5,
-        self::V4_RANDOM,
-        self::V5_SHA1,
-    );
-}
diff --git a/core/vendor/symfony/validator/Constraints/UuidValidator.php b/core/vendor/symfony/validator/Constraints/UuidValidator.php
deleted file mode 100644
index 08f9e27..0000000
--- a/core/vendor/symfony/validator/Constraints/UuidValidator.php
+++ /dev/null
@@ -1,346 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\Constraints\Deprecated\UuidValidator as Deprecated;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Validates whether the value is a valid UUID per RFC 4122.
- *
- * @author Colin O'Dell <colinodell@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see http://tools.ietf.org/html/rfc4122
- * @see https://en.wikipedia.org/wiki/Universally_unique_identifier
- */
-class UuidValidator extends ConstraintValidator
-{
-    // The strict pattern matches UUIDs like this:
-    // xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
-
-    // Roughly speaking:
-    // x = any hexadecimal character
-    // M = any allowed version {1..5}
-    // N = any allowed variant {8, 9, a, b}
-
-    const STRICT_LENGTH = 36;
-    const STRICT_FIRST_HYPHEN_POSITION = 8;
-    const STRICT_LAST_HYPHEN_POSITION = 23;
-    const STRICT_VERSION_POSITION = 14;
-    const STRICT_VARIANT_POSITION = 19;
-
-    // The loose pattern validates similar yet non-compliant UUIDs.
-    // Hyphens are completely optional. If present, they should only appear
-    // between every fourth character:
-    // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
-    // xxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx
-    // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-
-    // The value can also be wrapped with characters like []{}:
-    // {xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx}
-
-    // Neither the version nor the variant is validated by this pattern.
-
-    const LOOSE_MAX_LENGTH = 39;
-    const LOOSE_FIRST_HYPHEN_POSITION = 4;
-
-    /**
-     * @deprecated since version 2.6, to be removed in 3.0
-     */
-    const STRICT_PATTERN = '/^[a-f0-9]{8}-[a-f0-9]{4}-[%s][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/i';
-
-    /**
-     * @deprecated since version 2.6, to be removed in 3.0
-     */
-    const LOOSE_PATTERN = '/^[a-f0-9]{4}(?:-?[a-f0-9]{4}){7}$/i';
-
-    /**
-     * @deprecated since version 2.6, to be removed in 3.0
-     */
-    const STRICT_UUID_LENGTH = 36;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, Constraint $constraint)
-    {
-        if (null === $value || '' === $value) {
-            return;
-        }
-
-        if (!is_scalar($value) && !(is_object($value) && method_exists($value, '__toString'))) {
-            throw new UnexpectedTypeException($value, 'string');
-        }
-
-        $value = (string) $value;
-
-        if ($constraint->strict) {
-            $this->validateStrict($value, $constraint);
-
-            return;
-        }
-
-        $this->validateLoose($value, $constraint);
-    }
-
-    private function validateLoose($value, Uuid $constraint)
-    {
-        // Error priority:
-        // 1. ERROR_INVALID_CHARACTERS
-        // 2. ERROR_INVALID_HYPHEN_PLACEMENT
-        // 3. ERROR_TOO_SHORT/ERROR_TOO_LONG
-
-        // Trim any wrapping characters like [] or {} used by some legacy systems
-        $trimmed = trim($value, '[]{}');
-
-        // Position of the next expected hyphen
-        $h = self::LOOSE_FIRST_HYPHEN_POSITION;
-
-        // Expected length
-        $l = self::LOOSE_MAX_LENGTH;
-
-        for ($i = 0; $i < $l; ++$i) {
-            // Check length
-            if (!isset($trimmed{$i})) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::TOO_SHORT_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::TOO_SHORT_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-
-            // Hyphens must occur every fifth position
-            // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
-            //     ^    ^    ^    ^    ^    ^    ^
-            if ('-' === $trimmed{$i}) {
-                if ($i !== $h) {
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->message)
-                            ->setParameter('{{ value }}', $this->formatValue($value))
-                            ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR)
-                            ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->message)
-                            ->setParameter('{{ value }}', $this->formatValue($value))
-                            ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR)
-                            ->addViolation();
-                    }
-
-                    return;
-                }
-
-                $h += 5;
-
-                continue;
-            }
-
-            // Missing hyphens are ignored
-            if ($i === $h) {
-                $h += 4;
-                --$l;
-            }
-
-            // Check characters
-            if (!ctype_xdigit($trimmed{$i})) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::INVALID_CHARACTERS_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::INVALID_CHARACTERS_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        }
-
-        // Check length again
-        if (isset($trimmed{$i})) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::TOO_LONG_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::TOO_LONG_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-
-    private function validateStrict($value, Uuid $constraint)
-    {
-        // Error priority:
-        // 1. ERROR_INVALID_CHARACTERS
-        // 2. ERROR_INVALID_HYPHEN_PLACEMENT
-        // 3. ERROR_TOO_SHORT/ERROR_TOO_LONG
-        // 4. ERROR_INVALID_VERSION
-        // 5. ERROR_INVALID_VARIANT
-
-        // Position of the next expected hyphen
-        $h = self::STRICT_FIRST_HYPHEN_POSITION;
-
-        for ($i = 0; $i < self::STRICT_LENGTH; ++$i) {
-            // Check length
-            if (!isset($value{$i})) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::TOO_SHORT_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::TOO_SHORT_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-
-            // Check hyphen placement
-            // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-            //         ^    ^    ^    ^
-            if ('-' === $value{$i}) {
-                if ($i !== $h) {
-                    if ($this->context instanceof ExecutionContextInterface) {
-                        $this->context->buildViolation($constraint->message)
-                             ->setParameter(
-                                 '{{ value }}',
-                                 $this->formatValue($value)
-                             )
-                             ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR)
-                             ->addViolation();
-                    } else {
-                        $this->buildViolation($constraint->message)
-                              ->setParameter(
-                                  '{{ value }}',
-                                  $this->formatValue($value)
-                              )
-                              ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR)
-                              ->addViolation();
-                    }
-
-                    return;
-                }
-
-                // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-                //                        ^
-                if ($h < self::STRICT_LAST_HYPHEN_POSITION) {
-                    $h += 5;
-                }
-
-                continue;
-            }
-
-            // Check characters
-            if (!ctype_xdigit($value{$i})) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::INVALID_CHARACTERS_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::INVALID_CHARACTERS_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-
-            // Missing hyphen
-            if ($i === $h) {
-                if ($this->context instanceof ExecutionContextInterface) {
-                    $this->context->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR)
-                        ->addViolation();
-                } else {
-                    $this->buildViolation($constraint->message)
-                        ->setParameter('{{ value }}', $this->formatValue($value))
-                        ->setCode(Uuid::INVALID_HYPHEN_PLACEMENT_ERROR)
-                        ->addViolation();
-                }
-
-                return;
-            }
-        }
-
-        // Check length again
-        if (isset($value{$i})) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::TOO_LONG_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::TOO_LONG_ERROR)
-                    ->addViolation();
-            }
-        }
-
-        // Check version
-        if (!in_array($value{self::STRICT_VERSION_POSITION}, $constraint->versions)) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::INVALID_VERSION_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::INVALID_VERSION_ERROR)
-                    ->addViolation();
-            }
-        }
-
-        // Check variant - first two bits must equal "10"
-        //   0b10xx
-        // & 0b1100 (12)
-        // = 0b1000 (8)
-        if ((hexdec($value{self::STRICT_VARIANT_POSITION}) & 12) !== 8) {
-            if ($this->context instanceof ExecutionContextInterface) {
-                $this->context->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::INVALID_VARIANT_ERROR)
-                    ->addViolation();
-            } else {
-                $this->buildViolation($constraint->message)
-                    ->setParameter('{{ value }}', $this->formatValue($value))
-                    ->setCode(Uuid::INVALID_VARIANT_ERROR)
-                    ->addViolation();
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Constraints/Valid.php b/core/vendor/symfony/validator/Constraints/Valid.php
deleted file mode 100644
index 9fc0015..0000000
--- a/core/vendor/symfony/validator/Constraints/Valid.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-/**
- * @Annotation
- * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-class Valid extends Constraint
-{
-    public $traverse = true;
-
-    /**
-     * @deprecated since version 2.5, to be removed in Symfony 3.0.
-     */
-    public $deep = true;
-
-    public function __construct($options = null)
-    {
-        if (is_array($options) && array_key_exists('groups', $options)) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The option "groups" is not supported by the constraint %s',
-                __CLASS__
-            ));
-        }
-
-        if (is_array($options) && array_key_exists('deep', $options)) {
-            @trigger_error('The "deep" option for the Valid constraint is deprecated since version 2.5 and will be removed in 3.0. When traversing arrays, nested arrays are always traversed. When traversing nested objects, their traversal strategy is used.', E_USER_DEPRECATED);
-        }
-
-        parent::__construct($options);
-    }
-}
diff --git a/core/vendor/symfony/validator/Context/ExecutionContext.php b/core/vendor/symfony/validator/Context/ExecutionContext.php
deleted file mode 100644
index 39f92fb..0000000
--- a/core/vendor/symfony/validator/Context/ExecutionContext.php
+++ /dev/null
@@ -1,463 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Context;
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\ClassBasedInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintViolation;
-use Symfony\Component\Validator\ConstraintViolationList;
-use Symfony\Component\Validator\Mapping\MetadataInterface;
-use Symfony\Component\Validator\Mapping\PropertyMetadataInterface;
-use Symfony\Component\Validator\Util\PropertyPath;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-use Symfony\Component\Validator\ValidatorInterface as LegacyValidatorInterface;
-use Symfony\Component\Validator\Violation\ConstraintViolationBuilder;
-
-/**
- * The context used and created by {@link ExecutionContextFactory}.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see ExecutionContextInterface
- *
- * @internal You should not instantiate or use this class. Code against
- *           {@link ExecutionContextInterface} instead.
- */
-class ExecutionContext implements ExecutionContextInterface
-{
-    /**
-     * @var ValidatorInterface
-     */
-    private $validator;
-
-    /**
-     * The root value of the validated object graph.
-     *
-     * @var mixed
-     */
-    private $root;
-
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var string
-     */
-    private $translationDomain;
-
-    /**
-     * The violations generated in the current context.
-     *
-     * @var ConstraintViolationList
-     */
-    private $violations;
-
-    /**
-     * The currently validated value.
-     *
-     * @var mixed
-     */
-    private $value;
-
-    /**
-     * The currently validated object.
-     *
-     * @var object|null
-     */
-    private $object;
-
-    /**
-     * The property path leading to the current value.
-     *
-     * @var string
-     */
-    private $propertyPath = '';
-
-    /**
-     * The current validation metadata.
-     *
-     * @var MetadataInterface|null
-     */
-    private $metadata;
-
-    /**
-     * The currently validated group.
-     *
-     * @var string|null
-     */
-    private $group;
-
-    /**
-     * The currently validated constraint.
-     *
-     * @var Constraint|null
-     */
-    private $constraint;
-
-    /**
-     * Stores which objects have been validated in which group.
-     *
-     * @var array
-     */
-    private $validatedObjects = array();
-
-    /**
-     * Stores which class constraint has been validated for which object.
-     *
-     * @var array
-     */
-    private $validatedConstraints = array();
-
-    /**
-     * Stores which objects have been initialized.
-     *
-     * @var array
-     */
-    private $initializedObjects;
-
-    /**
-     * Creates a new execution context.
-     *
-     * @param ValidatorInterface  $validator         The validator
-     * @param mixed               $root              The root value of the
-     *                                               validated object graph
-     * @param TranslatorInterface $translator        The translator
-     * @param string|null         $translationDomain The translation domain to
-     *                                               use for translating
-     *                                               violation messages
-     *
-     * @internal Called by {@link ExecutionContextFactory}. Should not be used
-     *           in user code.
-     */
-    public function __construct(ValidatorInterface $validator, $root, TranslatorInterface $translator, $translationDomain = null)
-    {
-        $this->validator = $validator;
-        $this->root = $root;
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-        $this->violations = new ConstraintViolationList();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setNode($value, $object, MetadataInterface $metadata = null, $propertyPath)
-    {
-        $this->value = $value;
-        $this->object = $object;
-        $this->metadata = $metadata;
-        $this->propertyPath = (string) $propertyPath;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setGroup($group)
-    {
-        $this->group = $group;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setConstraint(Constraint $constraint)
-    {
-        $this->constraint = $constraint;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addViolation($message, array $parameters = array(), $invalidValue = null, $plural = null, $code = null)
-    {
-        // The parameters $invalidValue and following are ignored by the new
-        // API, as they are not present in the new interface anymore.
-        // You should use buildViolation() instead.
-        if (func_num_args() > 2) {
-            @trigger_error('The parameters $invalidValue, $plural and $code in method '.__METHOD__.' are deprecated since version 2.5 and will be removed in 3.0. Use the '.__CLASS__.'::buildViolation method instead.', E_USER_DEPRECATED);
-
-            $this
-                ->buildViolation($message, $parameters)
-                ->setInvalidValue($invalidValue)
-                ->setPlural($plural)
-                ->setCode($code)
-                ->addViolation()
-            ;
-
-            return;
-        }
-
-        $this->violations->add(new ConstraintViolation(
-            $this->translator->trans($message, $parameters, $this->translationDomain),
-            $message,
-            $parameters,
-            $this->root,
-            $this->propertyPath,
-            $this->value,
-            null,
-            null,
-            $this->constraint
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function buildViolation($message, array $parameters = array())
-    {
-        return new ConstraintViolationBuilder(
-            $this->violations,
-            $this->constraint,
-            $message,
-            $parameters,
-            $this->root,
-            $this->propertyPath,
-            $this->value,
-            $this->translator,
-            $this->translationDomain
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getViolations()
-    {
-        return $this->violations;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValidator()
-    {
-        return $this->validator;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRoot()
-    {
-        return $this->root;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getObject()
-    {
-        return $this->object;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadata()
-    {
-        return $this->metadata;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getGroup()
-    {
-        return $this->group;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getClassName()
-    {
-        return $this->metadata instanceof ClassBasedInterface ? $this->metadata->getClassName() : null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyName()
-    {
-        return $this->metadata instanceof PropertyMetadataInterface ? $this->metadata->getPropertyName() : null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyPath($subPath = '')
-    {
-        return PropertyPath::append($this->propertyPath, $subPath);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addViolationAt($subPath, $message, array $parameters = array(), $invalidValue = null, $plural = null, $code = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the '.__CLASS__.'::buildViolation method instead.', E_USER_DEPRECATED);
-
-        if (func_num_args() > 2) {
-            $this
-                ->buildViolation($message, $parameters)
-                ->atPath($subPath)
-                ->setInvalidValue($invalidValue)
-                ->setPlural($plural)
-                ->setCode($code)
-                ->addViolation()
-            ;
-
-            return;
-        }
-
-        $this
-            ->buildViolation($message, $parameters)
-            ->atPath($subPath)
-            ->addViolation()
-        ;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, $subPath = '', $groups = null, $traverse = false, $deep = false)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the '.__CLASS__.'::getValidator() method instead.', E_USER_DEPRECATED);
-
-        if (is_array($value)) {
-            // The $traverse flag is ignored for arrays
-            $constraint = new Valid(array('traverse' => true, 'deep' => $deep));
-
-            return $this
-                ->getValidator()
-                ->inContext($this)
-                ->atPath($subPath)
-                ->validate($value, $constraint, $groups)
-            ;
-        }
-
-        if ($traverse && $value instanceof \Traversable) {
-            $constraint = new Valid(array('traverse' => true, 'deep' => $deep));
-
-            return $this
-                ->getValidator()
-                ->inContext($this)
-                ->atPath($subPath)
-                ->validate($value, $constraint, $groups)
-            ;
-        }
-
-        return $this
-            ->getValidator()
-            ->inContext($this)
-            ->atPath($subPath)
-            ->validate($value, null, $groups)
-        ;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validateValue($value, $constraints, $subPath = '', $groups = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the '.__CLASS__.'::getValidator() method instead.', E_USER_DEPRECATED);
-
-        return $this
-            ->getValidator()
-            ->inContext($this)
-            ->atPath($subPath)
-            ->validate($value, $constraints, $groups)
-        ;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFactory()
-    {
-        @trigger_error('The '.__METHOD__.' is deprecated since version 2.5 and will be removed in 3.0. Use the new Symfony\Component\Validator\Context\ExecutionContext::getValidator method in combination with Symfony\Component\Validator\Validator\ValidatorInterface::getMetadataFor or Symfony\Component\Validator\Validator\ValidatorInterface::hasMetadataFor method instead.', E_USER_DEPRECATED);
-
-        $validator = $this->getValidator();
-
-        if ($validator instanceof LegacyValidatorInterface) {
-            return $validator->getMetadataFactory();
-        }
-
-        // The ValidatorInterface extends from the deprecated MetadataFactoryInterface, so return it when we don't have the factory instance itself
-        return $validator;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function markGroupAsValidated($cacheKey, $groupHash)
-    {
-        if (!isset($this->validatedObjects[$cacheKey])) {
-            $this->validatedObjects[$cacheKey] = array();
-        }
-
-        $this->validatedObjects[$cacheKey][$groupHash] = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isGroupValidated($cacheKey, $groupHash)
-    {
-        return isset($this->validatedObjects[$cacheKey][$groupHash]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function markConstraintAsValidated($cacheKey, $constraintHash)
-    {
-        $this->validatedConstraints[$cacheKey.':'.$constraintHash] = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isConstraintValidated($cacheKey, $constraintHash)
-    {
-        return isset($this->validatedConstraints[$cacheKey.':'.$constraintHash]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function markObjectAsInitialized($cacheKey)
-    {
-        $this->initializedObjects[$cacheKey] = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isObjectInitialized($cacheKey)
-    {
-        return isset($this->initializedObjects[$cacheKey]);
-    }
-}
diff --git a/core/vendor/symfony/validator/Context/ExecutionContextFactory.php b/core/vendor/symfony/validator/Context/ExecutionContextFactory.php
deleted file mode 100644
index d94a806..0000000
--- a/core/vendor/symfony/validator/Context/ExecutionContextFactory.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Context;
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-
-/**
- * Creates new {@link ExecutionContext} instances.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @internal You should not instantiate or use this class. Code against
- *           {@link ExecutionContextFactoryInterface} instead.
- */
-class ExecutionContextFactory implements ExecutionContextFactoryInterface
-{
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var string|null
-     */
-    private $translationDomain;
-
-    /**
-     * Creates a new context factory.
-     *
-     * @param TranslatorInterface $translator        The translator
-     * @param string|null         $translationDomain The translation domain to
-     *                                               use for translating
-     *                                               violation messages
-     */
-    public function __construct(TranslatorInterface $translator, $translationDomain = null)
-    {
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createContext(ValidatorInterface $validator, $root)
-    {
-        return new ExecutionContext(
-            $validator,
-            $root,
-            $this->translator,
-            $this->translationDomain
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Context/ExecutionContextFactoryInterface.php b/core/vendor/symfony/validator/Context/ExecutionContextFactoryInterface.php
deleted file mode 100644
index f0ee001..0000000
--- a/core/vendor/symfony/validator/Context/ExecutionContextFactoryInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Context;
-
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-
-/**
- * Creates instances of {@link ExecutionContextInterface}.
- *
- * You can use a custom factory if you want to customize the execution context
- * that is passed through the validation run.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ExecutionContextFactoryInterface
-{
-    /**
-     * Creates a new execution context.
-     *
-     * @param ValidatorInterface $validator The validator
-     * @param mixed              $root      The root value of the validated
-     *                                      object graph
-     *
-     * @return ExecutionContextInterface The new execution context
-     */
-    public function createContext(ValidatorInterface $validator, $root);
-}
diff --git a/core/vendor/symfony/validator/Context/ExecutionContextInterface.php b/core/vendor/symfony/validator/Context/ExecutionContextInterface.php
deleted file mode 100644
index 4865204..0000000
--- a/core/vendor/symfony/validator/Context/ExecutionContextInterface.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Context;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ExecutionContextInterface as LegacyExecutionContextInterface;
-use Symfony\Component\Validator\Mapping\MetadataInterface;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-use Symfony\Component\Validator\Violation\ConstraintViolationBuilderInterface;
-
-/**
- * The context of a validation run.
- *
- * The context collects all violations generated during the validation. By
- * default, validators execute all validations in a new context:
- *
- *     $violations = $validator->validate($object);
- *
- * When you make another call to the validator, while the validation is in
- * progress, the violations will be isolated from each other:
- *
- *     public function validate($value, Constraint $constraint)
- *     {
- *         $validator = $this->context->getValidator();
- *
- *         // The violations are not added to $this->context
- *         $violations = $validator->validate($value);
- *     }
- *
- * However, if you want to add the violations to the current context, use the
- * {@link ValidatorInterface::inContext()} method:
- *
- *     public function validate($value, Constraint $constraint)
- *     {
- *         $validator = $this->context->getValidator();
- *
- *         // The violations are added to $this->context
- *         $validator
- *             ->inContext($this->context)
- *             ->validate($value)
- *         ;
- *     }
- *
- * Additionally, the context provides information about the current state of
- * the validator, such as the currently validated class, the name of the
- * currently validated property and more. These values change over time, so you
- * cannot store a context and expect that the methods still return the same
- * results later on.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ExecutionContextInterface extends LegacyExecutionContextInterface
-{
-    /**
-     * Returns a builder for adding a violation with extended information.
-     *
-     * Call {@link ConstraintViolationBuilderInterface::addViolation()} to
-     * add the violation when you're done with the configuration:
-     *
-     *     $context->buildViolation('Please enter a number between %min% and %max%.')
-     *         ->setParameter('%min%', 3)
-     *         ->setParameter('%max%', 10)
-     *         ->setTranslationDomain('number_validation')
-     *         ->addViolation();
-     *
-     * @param string $message    The error message
-     * @param array  $parameters The parameters substituted in the error message
-     *
-     * @return ConstraintViolationBuilderInterface The violation builder
-     */
-    public function buildViolation($message, array $parameters = array());
-
-    /**
-     * Returns the validator.
-     *
-     * Useful if you want to validate additional constraints:
-     *
-     *     public function validate($value, Constraint $constraint)
-     *     {
-     *         $validator = $this->context->getValidator();
-     *
-     *         $violations = $validator->validateValue($value, new Length(array('min' => 3)));
-     *
-     *         if (count($violations) > 0) {
-     *             // ...
-     *         }
-     *     }
-     *
-     * @return ValidatorInterface
-     */
-    public function getValidator();
-
-    /**
-     * Returns the currently validated object.
-     *
-     * If the validator is currently validating a class constraint, the
-     * object of that class is returned. If it is a validating a property or
-     * getter constraint, the object that the property/getter belongs to is
-     * returned.
-     *
-     * In other cases, null is returned.
-     *
-     * @return object|null The currently validated object or null.
-     */
-    public function getObject();
-
-    /**
-     * Sets the currently validated value.
-     *
-     * @param mixed                  $value        The validated value
-     * @param object|null            $object       The currently validated object
-     * @param MetadataInterface|null $metadata     The validation metadata
-     * @param string                 $propertyPath The property path to the current value
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function setNode($value, $object, MetadataInterface $metadata = null, $propertyPath);
-
-    /**
-     * Sets the currently validated group.
-     *
-     * @param string|null $group The validated group
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function setGroup($group);
-
-    /**
-     * Sets the currently validated constraint.
-     *
-     * @param Constraint $constraint The validated constraint
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function setConstraint(Constraint $constraint);
-
-    /**
-     * Marks an object as validated in a specific validation group.
-     *
-     * @param string $cacheKey  The hash of the object
-     * @param string $groupHash The group's name or hash, if it is group
-     *                          sequence
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function markGroupAsValidated($cacheKey, $groupHash);
-
-    /**
-     * Returns whether an object was validated in a specific validation group.
-     *
-     * @param string $cacheKey  The hash of the object
-     * @param string $groupHash The group's name or hash, if it is group
-     *                          sequence
-     *
-     * @return bool Whether the object was already validated for that
-     *              group
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function isGroupValidated($cacheKey, $groupHash);
-
-    /**
-     * Marks a constraint as validated for an object.
-     *
-     * @param string $cacheKey       The hash of the object
-     * @param string $constraintHash The hash of the constraint
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function markConstraintAsValidated($cacheKey, $constraintHash);
-
-    /**
-     * Returns whether a constraint was validated for an object.
-     *
-     * @param string $cacheKey       The hash of the object
-     * @param string $constraintHash The hash of the constraint
-     *
-     * @return bool Whether the constraint was already validated
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     */
-    public function isConstraintValidated($cacheKey, $constraintHash);
-
-    /**
-     * Marks that an object was initialized.
-     *
-     * @param string $cacheKey The hash of the object
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     *
-     * @see ObjectInitializerInterface
-     */
-    public function markObjectAsInitialized($cacheKey);
-
-    /**
-     * Returns whether an object was initialized.
-     *
-     * @param string $cacheKey The hash of the object
-     *
-     * @return bool Whether the object was already initialized
-     *
-     * @internal Used by the validator engine. Should not be called by user
-     *           code.
-     *
-     * @see ObjectInitializerInterface
-     */
-    public function isObjectInitialized($cacheKey);
-}
diff --git a/core/vendor/symfony/validator/Context/LegacyExecutionContext.php b/core/vendor/symfony/validator/Context/LegacyExecutionContext.php
deleted file mode 100644
index 4d5be45..0000000
--- a/core/vendor/symfony/validator/Context/LegacyExecutionContext.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Context;
-
-@trigger_error('The '.__NAMESPACE__.'\LegacyExecutionContext class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-
-/**
- * An execution context that is compatible with the legacy API (< 2.5).
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-class LegacyExecutionContext extends ExecutionContext
-{
-    /**
-     * @var MetadataFactoryInterface
-     */
-    private $metadataFactory;
-
-    /**
-     * Creates a new context.
-     *
-     * @see ExecutionContext::__construct()
-     *
-     * @internal Called by {@link LegacyExecutionContextFactory}. Should not be used
-     *           in user code.
-     */
-    public function __construct(ValidatorInterface $validator, $root, MetadataFactoryInterface $metadataFactory, TranslatorInterface $translator, $translationDomain = null)
-    {
-        parent::__construct(
-            $validator,
-            $root,
-            $translator,
-            $translationDomain
-        );
-
-        $this->metadataFactory = $metadataFactory;
-    }
-}
diff --git a/core/vendor/symfony/validator/Context/LegacyExecutionContextFactory.php b/core/vendor/symfony/validator/Context/LegacyExecutionContextFactory.php
deleted file mode 100644
index 9e8498a..0000000
--- a/core/vendor/symfony/validator/Context/LegacyExecutionContextFactory.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Context;
-
-@trigger_error('The '.__NAMESPACE__.'\LegacyExecutionContextFactory class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-
-/**
- * Creates new {@link LegacyExecutionContext} instances.
- *
- * Implemented for backward compatibility with Symfony < 2.5.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-class LegacyExecutionContextFactory implements ExecutionContextFactoryInterface
-{
-    /**
-     * @var MetadataFactoryInterface
-     */
-    private $metadataFactory;
-
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var string|null
-     */
-    private $translationDomain;
-
-    /**
-     * Creates a new context factory.
-     *
-     * @param MetadataFactoryInterface $metadataFactory   The metadata factory
-     * @param TranslatorInterface      $translator        The translator
-     * @param string|null              $translationDomain The translation domain
-     *                                                    to use for translating
-     *                                                    violation messages
-     */
-    public function __construct(MetadataFactoryInterface $metadataFactory, TranslatorInterface $translator, $translationDomain = null)
-    {
-        $this->metadataFactory = $metadataFactory;
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function createContext(ValidatorInterface $validator, $root)
-    {
-        return new LegacyExecutionContext(
-            $validator,
-            $root,
-            $this->metadataFactory,
-            $this->translator,
-            $this->translationDomain
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/DefaultTranslator.php b/core/vendor/symfony/validator/DefaultTranslator.php
deleted file mode 100644
index 85853d8..0000000
--- a/core/vendor/symfony/validator/DefaultTranslator.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-@trigger_error('The class '.__NAMESPACE__.'\DefaultTranslator is deprecated since version 2.7 and will be removed in 3.0. Use Symfony\Component\Translation\IdentityTranslator instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Exception\BadMethodCallException;
-use Symfony\Component\Validator\Exception\InvalidArgumentException;
-
-/**
- * Simple translator implementation that simply replaces the parameters in
- * the message IDs.
- *
- * Example usage:
- *
- *     $translator = new DefaultTranslator();
- *
- *     echo $translator->trans(
- *         'This is a {{ var }}.',
- *         array('{{ var }}' => 'donkey')
- *     );
- *
- *     // -> This is a donkey.
- *
- *     echo $translator->transChoice(
- *         'This is {{ count }} donkey.|These are {{ count }} donkeys.',
- *         3,
- *         array('{{ count }}' => 'three')
- *     );
- *
- *     // -> These are three donkeys.
- *
- * This translator does not support message catalogs, translation domains or
- * locales. Instead, it implements a subset of the capabilities of
- * {@link \Symfony\Component\Translation\Translator} and can be used in places
- * where translation is not required by default but should be optional.
- *
- * @deprecated since version 2.7, to be removed in 3.0. Use Symfony\Component\Translation\IdentityTranslator instead.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class DefaultTranslator implements TranslatorInterface
-{
-    /**
-     * Interpolates the given message.
-     *
-     * Parameters are replaced in the message in the same manner that
-     * {@link strtr()} uses.
-     *
-     * Example usage:
-     *
-     *     $translator = new DefaultTranslator();
-     *
-     *     echo $translator->trans(
-     *         'This is a {{ var }}.',
-     *         array('{{ var }}' => 'donkey')
-     *     );
-     *
-     *     // -> This is a donkey.
-     *
-     * @param string $id         The message id
-     * @param array  $parameters An array of parameters for the message
-     * @param string $domain     Ignored
-     * @param string $locale     Ignored
-     *
-     * @return string The interpolated string
-     */
-    public function trans($id, array $parameters = array(), $domain = null, $locale = null)
-    {
-        return strtr($id, $parameters);
-    }
-
-    /**
-     * Interpolates the given choice message by choosing a variant according to a number.
-     *
-     * The variants are passed in the message ID using the format
-     * "<singular>|<plural>". "<singular>" is chosen if the passed $number is
-     * exactly 1. "<plural>" is chosen otherwise.
-     *
-     * This format is consistent with the format supported by
-     * {@link \Symfony\Component\Translation\Translator}, but it does not
-     * have the same expressiveness. While Translator supports intervals in
-     * message translations, which are needed for languages other than English,
-     * this translator does not. You should use Translator or a custom
-     * implementation of {@link \Symfony\Component\Translation\TranslatorInterface} if you need this or similar
-     * functionality.
-     *
-     * Example usage:
-     *
-     *     echo $translator->transChoice(
-     *         'This is {{ count }} donkey.|These are {{ count }} donkeys.',
-     *         0,
-     *         array('{{ count }}' => 0)
-     *     );
-     *
-     *     // -> These are 0 donkeys.
-     *
-     *     echo $translator->transChoice(
-     *         'This is {{ count }} donkey.|These are {{ count }} donkeys.',
-     *         1,
-     *         array('{{ count }}' => 1)
-     *     );
-     *
-     *     // -> This is 1 donkey.
-     *
-     *     echo $translator->transChoice(
-     *         'This is {{ count }} donkey.|These are {{ count }} donkeys.',
-     *         3,
-     *         array('{{ count }}' => 3)
-     *     );
-     *
-     *     // -> These are 3 donkeys.
-     *
-     * @param string $id         The message id
-     * @param int    $number     The number to use to find the index of the message
-     * @param array  $parameters An array of parameters for the message
-     * @param string $domain     Ignored
-     * @param string $locale     Ignored
-     *
-     * @return string The translated string
-     *
-     * @throws InvalidArgumentException If the message id does not have the format
-     *                                  "singular|plural".
-     */
-    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
-    {
-        $ids = explode('|', $id);
-
-        if (1 == $number) {
-            return strtr($ids[0], $parameters);
-        }
-
-        if (!isset($ids[1])) {
-            throw new InvalidArgumentException(sprintf('The message "%s" cannot be pluralized, because it is missing a plural (e.g. "There is one apple|There are %%count%% apples").', $id));
-        }
-
-        return strtr($ids[1], $parameters);
-    }
-
-    /**
-     * Not supported.
-     *
-     * @param string $locale The locale
-     *
-     * @throws BadMethodCallException
-     */
-    public function setLocale($locale)
-    {
-        throw new BadMethodCallException('Unsupported method.');
-    }
-
-    /**
-     * Returns the locale of the translator.
-     *
-     * @return string Always returns 'en'
-     */
-    public function getLocale()
-    {
-        return 'en';
-    }
-}
diff --git a/core/vendor/symfony/validator/Exception/BadMethodCallException.php b/core/vendor/symfony/validator/Exception/BadMethodCallException.php
deleted file mode 100644
index 939161b..0000000
--- a/core/vendor/symfony/validator/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * Base BadMethodCallException for the Validator component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/ConstraintDefinitionException.php b/core/vendor/symfony/validator/Exception/ConstraintDefinitionException.php
deleted file mode 100644
index b24fdd6..0000000
--- a/core/vendor/symfony/validator/Exception/ConstraintDefinitionException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class ConstraintDefinitionException extends ValidatorException
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/ExceptionInterface.php b/core/vendor/symfony/validator/Exception/ExceptionInterface.php
deleted file mode 100644
index 77d09b9..0000000
--- a/core/vendor/symfony/validator/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * Base ExceptionInterface for the Validator component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/GroupDefinitionException.php b/core/vendor/symfony/validator/Exception/GroupDefinitionException.php
deleted file mode 100644
index ab7e91d..0000000
--- a/core/vendor/symfony/validator/Exception/GroupDefinitionException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class GroupDefinitionException extends ValidatorException
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/InvalidArgumentException.php b/core/vendor/symfony/validator/Exception/InvalidArgumentException.php
deleted file mode 100644
index 22da39b..0000000
--- a/core/vendor/symfony/validator/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * Base InvalidArgumentException for the Validator component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/InvalidOptionsException.php b/core/vendor/symfony/validator/Exception/InvalidOptionsException.php
deleted file mode 100644
index ce87c42..0000000
--- a/core/vendor/symfony/validator/Exception/InvalidOptionsException.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class InvalidOptionsException extends ValidatorException
-{
-    private $options;
-
-    public function __construct($message, array $options)
-    {
-        parent::__construct($message);
-
-        $this->options = $options;
-    }
-
-    public function getOptions()
-    {
-        return $this->options;
-    }
-}
diff --git a/core/vendor/symfony/validator/Exception/MappingException.php b/core/vendor/symfony/validator/Exception/MappingException.php
deleted file mode 100644
index 4c8c057..0000000
--- a/core/vendor/symfony/validator/Exception/MappingException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class MappingException extends ValidatorException
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/MissingOptionsException.php b/core/vendor/symfony/validator/Exception/MissingOptionsException.php
deleted file mode 100644
index 07c5d9e..0000000
--- a/core/vendor/symfony/validator/Exception/MissingOptionsException.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class MissingOptionsException extends ValidatorException
-{
-    private $options;
-
-    public function __construct($message, array $options)
-    {
-        parent::__construct($message);
-
-        $this->options = $options;
-    }
-
-    public function getOptions()
-    {
-        return $this->options;
-    }
-}
diff --git a/core/vendor/symfony/validator/Exception/NoSuchMetadataException.php b/core/vendor/symfony/validator/Exception/NoSuchMetadataException.php
deleted file mode 100644
index 4cac74c..0000000
--- a/core/vendor/symfony/validator/Exception/NoSuchMetadataException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class NoSuchMetadataException extends ValidatorException
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/OutOfBoundsException.php b/core/vendor/symfony/validator/Exception/OutOfBoundsException.php
deleted file mode 100644
index 30906e8..0000000
--- a/core/vendor/symfony/validator/Exception/OutOfBoundsException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * Base OutOfBoundsException for the Validator component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/RuntimeException.php b/core/vendor/symfony/validator/Exception/RuntimeException.php
deleted file mode 100644
index df4a50c..0000000
--- a/core/vendor/symfony/validator/Exception/RuntimeException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * Base RuntimeException for the Validator component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/UnexpectedTypeException.php b/core/vendor/symfony/validator/Exception/UnexpectedTypeException.php
deleted file mode 100644
index 49d8cc2..0000000
--- a/core/vendor/symfony/validator/Exception/UnexpectedTypeException.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class UnexpectedTypeException extends ValidatorException
-{
-    public function __construct($value, $expectedType)
-    {
-        parent::__construct(sprintf('Expected argument of type "%s", "%s" given', $expectedType, is_object($value) ? get_class($value) : gettype($value)));
-    }
-}
diff --git a/core/vendor/symfony/validator/Exception/UnsupportedMetadataException.php b/core/vendor/symfony/validator/Exception/UnsupportedMetadataException.php
deleted file mode 100644
index c6ece50..0000000
--- a/core/vendor/symfony/validator/Exception/UnsupportedMetadataException.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-/**
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class UnsupportedMetadataException extends InvalidArgumentException
-{
-}
diff --git a/core/vendor/symfony/validator/Exception/ValidatorException.php b/core/vendor/symfony/validator/Exception/ValidatorException.php
deleted file mode 100644
index 28bd470..0000000
--- a/core/vendor/symfony/validator/Exception/ValidatorException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Exception;
-
-class ValidatorException extends RuntimeException
-{
-}
diff --git a/core/vendor/symfony/validator/ExecutionContext.php b/core/vendor/symfony/validator/ExecutionContext.php
deleted file mode 100644
index 5875e94..0000000
--- a/core/vendor/symfony/validator/ExecutionContext.php
+++ /dev/null
@@ -1,295 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-@trigger_error('The '.__NAMESPACE__.'\ExecutionContext class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Validator\Context\ExecutionContext class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Translation\TranslatorInterface;
-
-/**
- * Default implementation of {@link ExecutionContextInterface}.
- *
- * This class is immutable by design.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Context\ExecutionContext} instead.
- */
-class ExecutionContext implements ExecutionContextInterface
-{
-    /**
-     * @var GlobalExecutionContextInterface
-     */
-    private $globalContext;
-
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var null|string
-     */
-    private $translationDomain;
-
-    /**
-     * @var MetadataInterface
-     */
-    private $metadata;
-
-    /**
-     * @var mixed
-     */
-    private $value;
-
-    /**
-     * @var string
-     */
-    private $group;
-
-    /**
-     * @var string
-     */
-    private $propertyPath;
-
-    /**
-     * Creates a new execution context.
-     *
-     * @param GlobalExecutionContextInterface $globalContext     The global context storing node-independent state.
-     * @param TranslatorInterface             $translator        The translator for translating violation messages.
-     * @param null|string                     $translationDomain The domain of the validation messages.
-     * @param MetadataInterface               $metadata          The metadata of the validated node.
-     * @param mixed                           $value             The value of the validated node.
-     * @param string                          $group             The current validation group.
-     * @param string                          $propertyPath      The property path to the current node.
-     */
-    public function __construct(GlobalExecutionContextInterface $globalContext, TranslatorInterface $translator, $translationDomain = null, MetadataInterface $metadata = null, $value = null, $group = null, $propertyPath = '')
-    {
-        if (null === $group) {
-            $group = Constraint::DEFAULT_GROUP;
-        }
-
-        $this->globalContext = $globalContext;
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-        $this->metadata = $metadata;
-        $this->value = $value;
-        $this->propertyPath = $propertyPath;
-        $this->group = $group;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addViolation($message, array $params = array(), $invalidValue = null, $plural = null, $code = null)
-    {
-        if (null === $plural) {
-            $translatedMessage = $this->translator->trans($message, $params, $this->translationDomain);
-        } else {
-            try {
-                $translatedMessage = $this->translator->transChoice($message, $plural, $params, $this->translationDomain);
-            } catch (\InvalidArgumentException $e) {
-                $translatedMessage = $this->translator->trans($message, $params, $this->translationDomain);
-            }
-        }
-
-        $this->globalContext->getViolations()->add(new ConstraintViolation(
-            $translatedMessage,
-            $message,
-            $params,
-            $this->globalContext->getRoot(),
-            $this->propertyPath,
-            // check using func_num_args() to allow passing null values
-            func_num_args() >= 3 ? $invalidValue : $this->value,
-            $plural,
-            $code
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addViolationAt($subPath, $message, array $parameters = array(), $invalidValue = null, $plural = null, $code = null)
-    {
-        $this->globalContext->getViolations()->add(new ConstraintViolation(
-            null === $plural
-                ? $this->translator->trans($message, $parameters, $this->translationDomain)
-                : $this->translator->transChoice($message, $plural, $parameters, $this->translationDomain),
-            $message,
-            $parameters,
-            $this->globalContext->getRoot(),
-            $this->getPropertyPath($subPath),
-            // check using func_num_args() to allow passing null values
-            func_num_args() >= 4 ? $invalidValue : $this->value,
-            $plural,
-            $code
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getViolations()
-    {
-        return $this->globalContext->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRoot()
-    {
-        return $this->globalContext->getRoot();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyPath($subPath = '')
-    {
-        if ('' != $subPath && '' !== $this->propertyPath && '[' !== $subPath[0]) {
-            return $this->propertyPath.'.'.$subPath;
-        }
-
-        return $this->propertyPath.$subPath;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getClassName()
-    {
-        if ($this->metadata instanceof ClassBasedInterface) {
-            return $this->metadata->getClassName();
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyName()
-    {
-        if ($this->metadata instanceof PropertyMetadataInterface) {
-            return $this->metadata->getPropertyName();
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getGroup()
-    {
-        return $this->group;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadata()
-    {
-        return $this->metadata;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFor($value)
-    {
-        return $this->globalContext->getMetadataFactory()->getMetadataFor($value);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, $subPath = '', $groups = null, $traverse = false, $deep = false)
-    {
-        $propertyPath = $this->getPropertyPath($subPath);
-
-        foreach ($this->resolveGroups($groups) as $group) {
-            $this->globalContext->getVisitor()->validate($value, $group, $propertyPath, $traverse, $deep);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validateValue($value, $constraints, $subPath = '', $groups = null)
-    {
-        $constraints = is_array($constraints) ? $constraints : array($constraints);
-
-        if (null === $groups && '' === $subPath) {
-            $context = clone $this;
-            $context->value = $value;
-            $context->executeConstraintValidators($value, $constraints);
-
-            return;
-        }
-
-        $propertyPath = $this->getPropertyPath($subPath);
-
-        foreach ($this->resolveGroups($groups) as $group) {
-            $context = clone $this;
-            $context->value = $value;
-            $context->group = $group;
-            $context->propertyPath = $propertyPath;
-            $context->executeConstraintValidators($value, $constraints);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFactory()
-    {
-        return $this->globalContext->getMetadataFactory();
-    }
-
-    /**
-     * Executes the validators of the given constraints for the given value.
-     *
-     * @param mixed        $value       The value to validate.
-     * @param Constraint[] $constraints The constraints to match against.
-     */
-    private function executeConstraintValidators($value, array $constraints)
-    {
-        foreach ($constraints as $constraint) {
-            $validator = $this->globalContext->getValidatorFactory()->getInstance($constraint);
-            $validator->initialize($this);
-            $validator->validate($value, $constraint);
-        }
-    }
-
-    /**
-     * Returns an array of group names.
-     *
-     * @param null|string|string[] $groups The groups to resolve. If a single string is
-     *                                     passed, it is converted to an array. If null
-     *                                     is passed, an array containing the current
-     *                                     group of the context is returned.
-     *
-     * @return array An array of validation groups.
-     */
-    private function resolveGroups($groups)
-    {
-        return $groups ? (array) $groups : (array) $this->group;
-    }
-}
diff --git a/core/vendor/symfony/validator/ExecutionContextInterface.php b/core/vendor/symfony/validator/ExecutionContextInterface.php
deleted file mode 100644
index 2b6cd01..0000000
--- a/core/vendor/symfony/validator/ExecutionContextInterface.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Stores the validator's state during validation.
- *
- * For example, let's validate the following object graph:
- *
- * <pre>
- * (Person)---($firstName: string)
- *      \
- *   ($address: Address)---($street: string)
- * </pre>
- *
- * We validate the <tt>Person</tt> instance, which becomes the "root" of the
- * validation run (see {@link getRoot}). The state of the context after the
- * first step will be like this:
- *
- * <pre>
- * (Person)---($firstName: string)
- *    ^ \
- *   ($address: Address)---($street: string)
- * </pre>
- *
- * The validator is stopped at the <tt>Person</tt> node, both the root and the
- * value (see {@link getValue}) of the context point to the <tt>Person</tt>
- * instance. The property path is empty at this point (see {@link getPropertyPath}).
- * The metadata of the context is the metadata of the <tt>Person</tt> node
- * (see {@link getMetadata}).
- *
- * After advancing to the property <tt>$firstName</tt> of the <tt>Person</tt>
- * instance, the state of the context looks like this:
- *
- * <pre>
- * (Person)---($firstName: string)
- *      \              ^
- *   ($address: Address)---($street: string)
- * </pre>
- *
- * The validator is stopped at the property <tt>$firstName</tt>. The root still
- * points to the <tt>Person</tt> instance, because this is where the validation
- * started. The property path is now "firstName" and the current value is the
- * value of that property.
- *
- * After advancing to the <tt>$address</tt> property and then to the
- * <tt>$street</tt> property of the <tt>Address</tt> instance, the context state
- * looks like this:
- *
- * <pre>
- * (Person)---($firstName: string)
- *      \
- *   ($address: Address)---($street: string)
- *                               ^
- * </pre>
- *
- * The validator is stopped at the property <tt>$street</tt>. The root still
- * points to the <tt>Person</tt> instance, but the property path is now
- * "address.street" and the validated value is the value of that property.
- *
- * Apart from the root, the property path and the currently validated value,
- * the execution context also knows the metadata of the current node (see
- * {@link getMetadata}) which for example returns a {@link Mapping\PropertyMetadata}
- * or a {@link Mapping\ClassMetadata} object. he context also contains the
- * validation group that is currently being validated (see {@link getGroup}) and
- * the violations that happened up until now (see {@link getViolations}).
- *
- * Apart from reading the execution context, you can also use
- * {@link addViolation} or {@link addViolationAt} to add new violations and
- * {@link validate} or {@link validateValue} to validate values that the
- * validator otherwise would not reach.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Context\ExecutionContextInterface} instead.
- */
-interface ExecutionContextInterface
-{
-    /**
-     * Adds a violation at the current node of the validation graph.
-     *
-     * Note: the parameters $invalidValue, $plural and $code are deprecated since version 2.5 and will be removed in 3.0.
-     *
-     * @param string   $message      The error message
-     * @param array    $params       The parameters substituted in the error message
-     * @param mixed    $invalidValue The invalid, validated value
-     * @param int|null $plural       The number to use to pluralize of the message
-     * @param int|null $code         The violation code
-     *
-     * @api
-     */
-    public function addViolation($message, array $params = array(), $invalidValue = null, $plural = null, $code = null);
-
-    /**
-     * Adds a violation at the validation graph node with the given property
-     * path relative to the current property path.
-     *
-     * @param string   $subPath      The relative property path for the violation
-     * @param string   $message      The error message
-     * @param array    $parameters   The parameters substituted in the error message
-     * @param mixed    $invalidValue The invalid, validated value
-     * @param int|null $plural       The number to use to pluralize of the message
-     * @param int|null $code         The violation code
-     *
-     * @api
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link Context\ExecutionContextInterface::buildViolation()}
-     *             instead.
-     */
-    public function addViolationAt($subPath, $message, array $parameters = array(), $invalidValue = null, $plural = null, $code = null);
-
-    /**
-     * Validates the given value within the scope of the current validation.
-     *
-     * The value may be any value recognized by the used metadata factory
-     * (see {@link MetadataFactoryInterface::getMetadata}), or an array or a
-     * traversable object of such values.
-     *
-     * Usually you validate a value that is not the current node of the
-     * execution context. For this case, you can pass the {@link $subPath}
-     * argument which is appended to the current property path when a violation
-     * is created. For example, take the following object graph:
-     *
-     * <pre>
-     * (Person)---($address: Address)---($phoneNumber: PhoneNumber)
-     *                     ^
-     * </pre>
-     *
-     * When the execution context stops at the <tt>Person</tt> instance, the
-     * property path is "address". When you validate the <tt>PhoneNumber</tt>
-     * instance now, pass "phoneNumber" as sub path to correct the property path
-     * to "address.phoneNumber":
-     *
-     * <pre>
-     * $context->validate($address->phoneNumber, 'phoneNumber');
-     * </pre>
-     *
-     * Any violations generated during the validation will be added to the
-     * violation list that you can access with {@link getViolations}.
-     *
-     * @param mixed                $value    The value to validate.
-     * @param string               $subPath  The path to append to the context's property path.
-     * @param null|string|string[] $groups   The groups to validate in. If you don't pass any
-     *                                       groups here, the current group of the context
-     *                                       will be used.
-     * @param bool                 $traverse Whether to traverse the value if it is an array
-     *                                       or an instance of <tt>\Traversable</tt>.
-     * @param bool                 $deep     Whether to traverse the value recursively if
-     *                                       it is a collection of collections.
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link Context\ExecutionContextInterface::getValidator()}
-     *             instead.
-     */
-    public function validate($value, $subPath = '', $groups = null, $traverse = false, $deep = false);
-
-    /**
-     * Validates a value against a constraint.
-     *
-     * Use the parameter <tt>$subPath</tt> to adapt the property path for the
-     * validated value. For example, take the following object graph:
-     *
-     * <pre>
-     * (Person)---($address: Address)---($street: string)
-     *                     ^
-     * </pre>
-     *
-     * When the validator validates the <tt>Address</tt> instance, the
-     * property path stored in the execution context is "address". When you
-     * manually validate the property <tt>$street</tt> now, pass the sub path
-     * "street" to adapt the full property path to "address.street":
-     *
-     * <pre>
-     * $context->validate($address->street, new NotNull(), 'street');
-     * </pre>
-     *
-     * @param mixed                   $value       The value to validate.
-     * @param Constraint|Constraint[] $constraints The constraint(s) to validate against.
-     * @param string                  $subPath     The path to append to the context's property path.
-     * @param null|string|string[]    $groups      The groups to validate in. If you don't pass any
-     *                                             groups here, the current group of the context
-     *                                             will be used.
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link Context\ExecutionContextInterface::getValidator()}
-     *             instead.
-     */
-    public function validateValue($value, $constraints, $subPath = '', $groups = null);
-
-    /**
-     * Returns the violations generated by the validator so far.
-     *
-     * @return ConstraintViolationListInterface The constraint violation list.
-     *
-     * @api
-     */
-    public function getViolations();
-
-    /**
-     * Returns the value at which validation was started in the object graph.
-     *
-     * The validator, when given an object, traverses the properties and
-     * related objects and their properties. The root of the validation is the
-     * object from which the traversal started.
-     *
-     * The current value is returned by {@link getValue}.
-     *
-     * @return mixed The root value of the validation.
-     */
-    public function getRoot();
-
-    /**
-     * Returns the value that the validator is currently validating.
-     *
-     * If you want to retrieve the object that was originally passed to the
-     * validator, use {@link getRoot}.
-     *
-     * @return mixed The currently validated value.
-     */
-    public function getValue();
-
-    /**
-     * Returns the metadata for the currently validated value.
-     *
-     * With the core implementation, this method returns a
-     * {@link Mapping\ClassMetadata} instance if the current value is an object,
-     * a {@link Mapping\PropertyMetadata} instance if the current value is
-     * the value of a property and a {@link Mapping\GetterMetadata} instance if
-     * the validated value is the result of a getter method.
-     *
-     * If the validated value is neither of these, for example if the validator
-     * has been called with a plain value and constraint, this method returns
-     * null.
-     *
-     * @return MetadataInterface|null The metadata of the currently validated
-     *                                value.
-     */
-    public function getMetadata();
-
-    /**
-     * Returns the used metadata factory.
-     *
-     * @return MetadataFactoryInterface The metadata factory.
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link Context\ExecutionContextInterface::getValidator()}
-     *             instead and call
-     *             {@link Validator\ValidatorInterface::getMetadataFor()} or
-     *             {@link Validator\ValidatorInterface::hasMetadataFor()} there.
-     */
-    public function getMetadataFactory();
-
-    /**
-     * Returns the validation group that is currently being validated.
-     *
-     * @return string The current validation group.
-     */
-    public function getGroup();
-
-    /**
-     * Returns the class name of the current node.
-     *
-     * If the metadata of the current node does not implement
-     * {@link ClassBasedInterface} or if no metadata is available for the
-     * current node, this method returns null.
-     *
-     * @return string|null The class name or null, if no class name could be found.
-     */
-    public function getClassName();
-
-    /**
-     * Returns the property name of the current node.
-     *
-     * If the metadata of the current node does not implement
-     * {@link PropertyMetadataInterface} or if no metadata is available for the
-     * current node, this method returns null.
-     *
-     * @return string|null The property name or null, if no property name could be found.
-     */
-    public function getPropertyName();
-
-    /**
-     * Returns the property path to the value that the validator is currently
-     * validating.
-     *
-     * For example, take the following object graph:
-     *
-     * <pre>
-     * (Person)---($address: Address)---($street: string)
-     * </pre>
-     *
-     * When the <tt>Person</tt> instance is passed to the validator, the
-     * property path is initially empty. When the <tt>$address</tt> property
-     * of that person is validated, the property path is "address". When
-     * the <tt>$street</tt> property of the related <tt>Address</tt> instance
-     * is validated, the property path is "address.street".
-     *
-     * Properties of objects are prefixed with a dot in the property path.
-     * Indices of arrays or objects implementing the {@link \ArrayAccess}
-     * interface are enclosed in brackets. For example, if the property in
-     * the previous example is <tt>$addresses</tt> and contains an array
-     * of <tt>Address</tt> instance, the property path generated for the
-     * <tt>$street</tt> property of one of these addresses is for example
-     * "addresses[0].street".
-     *
-     * @param string $subPath Optional. The suffix appended to the current
-     *                        property path.
-     *
-     * @return string The current property path. The result may be an empty
-     *                string if the validator is currently validating the
-     *                root value of the validation graph.
-     */
-    public function getPropertyPath($subPath = '');
-}
diff --git a/core/vendor/symfony/validator/GlobalExecutionContextInterface.php b/core/vendor/symfony/validator/GlobalExecutionContextInterface.php
deleted file mode 100644
index 5c646f2..0000000
--- a/core/vendor/symfony/validator/GlobalExecutionContextInterface.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Stores the node-independent state of a validation run.
- *
- * When the validator validates a graph of objects, it uses two classes to
- * store the state during the validation:
- *
- * <ul>
- * <li>For each node in the validation graph (objects, properties, getters) the
- * validator creates an instance of {@link ExecutionContextInterface} that
- * stores the information about that node.</li>
- * <li>One single <tt>GlobalExecutionContextInterface</tt> stores the state
- * that is independent of the current node.</li>
- * </ul>
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Context\ExecutionContextInterface} instead.
- */
-interface GlobalExecutionContextInterface
-{
-    /**
-     * Returns the violations generated by the validator so far.
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations.
-     */
-    public function getViolations();
-
-    /**
-     * Returns the value at which validation was started in the object graph.
-     *
-     * @return mixed The root value.
-     *
-     * @see ExecutionContextInterface::getRoot()
-     */
-    public function getRoot();
-
-    /**
-     * Returns the visitor instance used to validate the object graph nodes.
-     *
-     * @return ValidationVisitorInterface The validation visitor.
-     */
-    public function getVisitor();
-
-    /**
-     * Returns the factory for constraint validators.
-     *
-     * @return ConstraintValidatorFactoryInterface The constraint validator factory.
-     */
-    public function getValidatorFactory();
-
-    /**
-     * Returns the factory for validation metadata objects.
-     *
-     * @return MetadataFactoryInterface The metadata factory.
-     */
-    public function getMetadataFactory();
-}
diff --git a/core/vendor/symfony/validator/GroupSequenceProviderInterface.php b/core/vendor/symfony/validator/GroupSequenceProviderInterface.php
deleted file mode 100644
index 62e8a5e..0000000
--- a/core/vendor/symfony/validator/GroupSequenceProviderInterface.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Defines the interface for a group sequence provider.
- */
-interface GroupSequenceProviderInterface
-{
-    /**
-     * Returns which validation groups should be used for a certain state
-     * of the object.
-     *
-     * @return array An array of validation groups
-     */
-    public function getGroupSequence();
-}
diff --git a/core/vendor/symfony/validator/LICENSE b/core/vendor/symfony/validator/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/validator/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/validator/Mapping/BlackholeMetadataFactory.php b/core/vendor/symfony/validator/Mapping/BlackholeMetadataFactory.php
deleted file mode 100644
index 01b8013..0000000
--- a/core/vendor/symfony/validator/Mapping/BlackholeMetadataFactory.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-@trigger_error('The '.__NAMESPACE__.'\BlackholeMetadataFactory class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Validator\Mapping\Factory\BlackHoleMetadataFactory class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Validator\Mapping\Factory\BlackHoleMetadataFactory as MappingBlackHoleMetadataFactory;
-
-/**
- * Alias of {@link Factory\BlackHoleMetadataFactory}.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Factory\BlackHoleMetadataFactory} instead.
- */
-class BlackholeMetadataFactory extends MappingBlackHoleMetadataFactory
-{
-}
diff --git a/core/vendor/symfony/validator/Mapping/Cache/ApcCache.php b/core/vendor/symfony/validator/Mapping/Cache/ApcCache.php
deleted file mode 100644
index 63fc8ac..0000000
--- a/core/vendor/symfony/validator/Mapping/Cache/ApcCache.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Cache;
-
-@trigger_error('The '.__NAMESPACE__.'\ApcCache class is deprecated since version 2.5 and will be removed in 3.0. Use DoctrineCache with the Doctrine\Common\Cache\ApcCache class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use DoctrineCache with \Doctrine\Common\Cache\ApcCache instead.
- */
-class ApcCache implements CacheInterface
-{
-    private $prefix;
-
-    public function __construct($prefix)
-    {
-        if (!extension_loaded('apc')) {
-            throw new \RuntimeException('Unable to use ApcCache to cache validator mappings as APC is not enabled.');
-        }
-
-        $this->prefix = $prefix;
-    }
-
-    public function has($class)
-    {
-        if (!function_exists('apc_exists')) {
-            $exists = false;
-
-            apc_fetch($this->prefix.$class, $exists);
-
-            return $exists;
-        }
-
-        return apc_exists($this->prefix.$class);
-    }
-
-    public function read($class)
-    {
-        return apc_fetch($this->prefix.$class);
-    }
-
-    public function write(ClassMetadata $metadata)
-    {
-        apc_store($this->prefix.$metadata->getClassName(), $metadata);
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Cache/CacheInterface.php b/core/vendor/symfony/validator/Mapping/Cache/CacheInterface.php
deleted file mode 100644
index e8047c6..0000000
--- a/core/vendor/symfony/validator/Mapping/Cache/CacheInterface.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Cache;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Persists ClassMetadata instances in a cache.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface CacheInterface
-{
-    /**
-     * Returns whether metadata for the given class exists in the cache.
-     *
-     * @param string $class
-     */
-    public function has($class);
-
-    /**
-     * Returns the metadata for the given class from the cache.
-     *
-     * @param string $class Class Name
-     *
-     * @return ClassMetadata|false A ClassMetadata instance or false on miss
-     */
-    public function read($class);
-
-    /**
-     * Stores a class metadata in the cache.
-     *
-     * @param ClassMetadata $metadata A Class Metadata
-     */
-    public function write(ClassMetadata $metadata);
-}
diff --git a/core/vendor/symfony/validator/Mapping/Cache/DoctrineCache.php b/core/vendor/symfony/validator/Mapping/Cache/DoctrineCache.php
deleted file mode 100644
index 6dd5447..0000000
--- a/core/vendor/symfony/validator/Mapping/Cache/DoctrineCache.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Cache;
-
-use Doctrine\Common\Cache\Cache;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Adapts a Doctrine cache to a CacheInterface.
- *
- * @author Florian Voutzinos <florian@voutzinos.com>
- */
-final class DoctrineCache implements CacheInterface
-{
-    private $cache;
-
-    /**
-     * Creates a new Doctrine cache.
-     *
-     * @param Cache $cache The cache to adapt
-     */
-    public function __construct(Cache $cache)
-    {
-        $this->cache = $cache;
-    }
-
-    /**
-     * Sets the cache to adapt.
-     *
-     * @param Cache $cache The cache to adapt
-     */
-    public function setCache(Cache $cache)
-    {
-        $this->cache = $cache;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function has($class)
-    {
-        return $this->cache->contains($class);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($class)
-    {
-        return $this->cache->fetch($class);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write(ClassMetadata $metadata)
-    {
-        $this->cache->save($metadata->getClassName(), $metadata);
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/CascadingStrategy.php b/core/vendor/symfony/validator/Mapping/CascadingStrategy.php
deleted file mode 100644
index ff2853f..0000000
--- a/core/vendor/symfony/validator/Mapping/CascadingStrategy.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-/**
- * Specifies whether an object should be cascaded.
- *
- * Cascading is relevant for any node type but class nodes. If such a node
- * contains an object of value, and if cascading is enabled, then the node
- * traverser will try to find class metadata for that object and validate the
- * object against that metadata.
- *
- * If no metadata is found for a cascaded object, and if that object implements
- * {@link \Traversable}, the node traverser will iterate over the object and
- * cascade each object or collection contained within, unless iteration is
- * prohibited by the specified {@link TraversalStrategy}.
- *
- * Although the constants currently represent a boolean switch, they are
- * implemented as bit mask in order to allow future extensions.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see TraversalStrategy
- */
-class CascadingStrategy
-{
-    /**
-     * Specifies that a node should not be cascaded.
-     */
-    const NONE = 1;
-
-    /**
-     * Specifies that a node should be cascaded.
-     */
-    const CASCADE = 2;
-
-    /**
-     * Not instantiable.
-     */
-    private function __construct()
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/ClassMetadata.php b/core/vendor/symfony/validator/Mapping/ClassMetadata.php
deleted file mode 100644
index 3f4f51b..0000000
--- a/core/vendor/symfony/validator/Mapping/ClassMetadata.php
+++ /dev/null
@@ -1,556 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\GroupSequence;
-use Symfony\Component\Validator\Constraints\Traverse;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\Exception\GroupDefinitionException;
-use Symfony\Component\Validator\ValidationVisitorInterface;
-
-/**
- * Default implementation of {@link ClassMetadataInterface}.
- *
- * This class supports serialization and cloning.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ClassMetadata extends ElementMetadata implements ClassMetadataInterface
-{
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getClassName()} instead.
-     */
-    public $name;
-
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getDefaultGroup()} instead.
-     */
-    public $defaultGroup;
-
-    /**
-     * @var MemberMetadata[]
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getPropertyMetadata()} instead.
-     */
-    public $members = array();
-
-    /**
-     * @var PropertyMetadata[]
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getPropertyMetadata()} instead.
-     */
-    public $properties = array();
-
-    /**
-     * @var GetterMetadata[]
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getPropertyMetadata()} instead.
-     */
-    public $getters = array();
-
-    /**
-     * @var array
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getGroupSequence()} instead.
-     */
-    public $groupSequence = array();
-
-    /**
-     * @var bool
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link isGroupSequenceProvider()} instead.
-     */
-    public $groupSequenceProvider = false;
-
-    /**
-     * The strategy for traversing traversable objects.
-     *
-     * By default, only instances of {@link \Traversable} are traversed.
-     *
-     * @var int
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getTraversalStrategy()} instead.
-     */
-    public $traversalStrategy = TraversalStrategy::IMPLICIT;
-
-    /**
-     * @var \ReflectionClass
-     */
-    private $reflClass;
-
-    /**
-     * Constructs a metadata for the given class.
-     *
-     * @param string $class
-     */
-    public function __construct($class)
-    {
-        $this->name = $class;
-        // class name without namespace
-        if (false !== $nsSep = strrpos($class, '\\')) {
-            $this->defaultGroup = substr($class, $nsSep + 1);
-        } else {
-            $this->defaultGroup = $class;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function accept(ValidationVisitorInterface $visitor, $value, $group, $propertyPath, $propagatedGroup = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        if (null === $propagatedGroup && Constraint::DEFAULT_GROUP === $group
-                && ($this->hasGroupSequence() || $this->isGroupSequenceProvider())) {
-            if ($this->hasGroupSequence()) {
-                $groups = $this->getGroupSequence()->groups;
-            } else {
-                $groups = $value->getGroupSequence();
-            }
-
-            foreach ($groups as $group) {
-                $this->accept($visitor, $value, $group, $propertyPath, Constraint::DEFAULT_GROUP);
-
-                if (count($visitor->getViolations()) > 0) {
-                    break;
-                }
-            }
-
-            return;
-        }
-
-        $visitor->visit($this, $value, $group, $propertyPath);
-
-        if (null !== $value) {
-            $pathPrefix = empty($propertyPath) ? '' : $propertyPath.'.';
-
-            foreach ($this->getConstrainedProperties() as $property) {
-                foreach ($this->getPropertyMetadata($property) as $member) {
-                    $member->accept($visitor, $member->getPropertyValue($value), $group, $pathPrefix.$property, $propagatedGroup);
-                }
-            }
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __sleep()
-    {
-        $parentProperties = parent::__sleep();
-
-        // Don't store the cascading strategy. Classes never cascade.
-        unset($parentProperties[array_search('cascadingStrategy', $parentProperties)]);
-
-        return array_merge($parentProperties, array(
-            'getters',
-            'groupSequence',
-            'groupSequenceProvider',
-            'members',
-            'name',
-            'properties',
-            'defaultGroup',
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getClassName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * Returns the name of the default group for this class.
-     *
-     * For each class, the group "Default" is an alias for the group
-     * "<ClassName>", where <ClassName> is the non-namespaced name of the
-     * class. All constraints implicitly or explicitly assigned to group
-     * "Default" belong to both of these groups, unless the class defines
-     * a group sequence.
-     *
-     * If a class defines a group sequence, validating the class in "Default"
-     * will validate the group sequence. The constraints assigned to "Default"
-     * can still be validated by validating the class in "<ClassName>".
-     *
-     * @return string The name of the default group
-     */
-    public function getDefaultGroup()
-    {
-        return $this->defaultGroup;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addConstraint(Constraint $constraint)
-    {
-        if (!in_array(Constraint::CLASS_CONSTRAINT, (array) $constraint->getTargets())) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The constraint "%s" cannot be put on classes.',
-                get_class($constraint)
-            ));
-        }
-
-        if ($constraint instanceof Valid) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The constraint "%s" cannot be put on classes.',
-                get_class($constraint)
-            ));
-        }
-
-        if ($constraint instanceof Traverse) {
-            if ($constraint->traverse) {
-                // If traverse is true, traversal should be explicitly enabled
-                $this->traversalStrategy = TraversalStrategy::TRAVERSE;
-            } else {
-                // If traverse is false, traversal should be explicitly disabled
-                $this->traversalStrategy = TraversalStrategy::NONE;
-            }
-
-            // The constraint is not added
-            return $this;
-        }
-
-        $constraint->addImplicitGroupName($this->getDefaultGroup());
-
-        parent::addConstraint($constraint);
-
-        return $this;
-    }
-
-    /**
-     * Adds a constraint to the given property.
-     *
-     * @param string     $property   The name of the property
-     * @param Constraint $constraint The constraint
-     *
-     * @return ClassMetadata This object
-     */
-    public function addPropertyConstraint($property, Constraint $constraint)
-    {
-        if (!isset($this->properties[$property])) {
-            $this->properties[$property] = new PropertyMetadata($this->getClassName(), $property);
-
-            $this->addPropertyMetadata($this->properties[$property]);
-        }
-
-        $constraint->addImplicitGroupName($this->getDefaultGroup());
-
-        $this->properties[$property]->addConstraint($constraint);
-
-        return $this;
-    }
-
-    /**
-     * @param string       $property
-     * @param Constraint[] $constraints
-     *
-     * @return ClassMetadata
-     */
-    public function addPropertyConstraints($property, array $constraints)
-    {
-        foreach ($constraints as $constraint) {
-            $this->addPropertyConstraint($property, $constraint);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Adds a constraint to the getter of the given property.
-     *
-     * The name of the getter is assumed to be the name of the property with an
-     * uppercased first letter and either the prefix "get" or "is".
-     *
-     * @param string     $property   The name of the property
-     * @param Constraint $constraint The constraint
-     *
-     * @return ClassMetadata This object
-     */
-    public function addGetterConstraint($property, Constraint $constraint)
-    {
-        if (!isset($this->getters[$property])) {
-            $this->getters[$property] = new GetterMetadata($this->getClassName(), $property);
-
-            $this->addPropertyMetadata($this->getters[$property]);
-        }
-
-        $constraint->addImplicitGroupName($this->getDefaultGroup());
-
-        $this->getters[$property]->addConstraint($constraint);
-
-        return $this;
-    }
-
-    /**
-     * @param string       $property
-     * @param Constraint[] $constraints
-     *
-     * @return ClassMetadata
-     */
-    public function addGetterConstraints($property, array $constraints)
-    {
-        foreach ($constraints as $constraint) {
-            $this->addGetterConstraint($property, $constraint);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Merges the constraints of the given metadata into this object.
-     *
-     * @param ClassMetadata $source The source metadata
-     */
-    public function mergeConstraints(ClassMetadata $source)
-    {
-        foreach ($source->getConstraints() as $constraint) {
-            $this->addConstraint(clone $constraint);
-        }
-
-        foreach ($source->getConstrainedProperties() as $property) {
-            foreach ($source->getPropertyMetadata($property) as $member) {
-                $member = clone $member;
-
-                foreach ($member->getConstraints() as $constraint) {
-                    $constraint->addImplicitGroupName($this->getDefaultGroup());
-                }
-
-                $this->addPropertyMetadata($member);
-
-                if ($member instanceof MemberMetadata && !$member->isPrivate($this->name)) {
-                    $property = $member->getPropertyName();
-
-                    if ($member instanceof PropertyMetadata && !isset($this->properties[$property])) {
-                        $this->properties[$property] = $member;
-                    } elseif ($member instanceof GetterMetadata && !isset($this->getters[$property])) {
-                        $this->getters[$property] = $member;
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Adds a member metadata.
-     *
-     * @param MemberMetadata $metadata
-     *
-     * @deprecated since version 2.6, to be removed in 3.0.
-     */
-    protected function addMemberMetadata(MemberMetadata $metadata)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the addPropertyMetadata() method instead.', E_USER_DEPRECATED);
-
-        $this->addPropertyMetadata($metadata);
-    }
-
-    /**
-     * Returns true if metadatas of members is present for the given property.
-     *
-     * @param string $property The name of the property
-     *
-     * @return bool
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use {@link hasPropertyMetadata} instead.
-     */
-    public function hasMemberMetadatas($property)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the hasPropertyMetadata() method instead.', E_USER_DEPRECATED);
-
-        return $this->hasPropertyMetadata($property);
-    }
-
-    /**
-     * Returns all metadatas of members describing the given property.
-     *
-     * @param string $property The name of the property
-     *
-     * @return MemberMetadata[] An array of MemberMetadata
-     *
-     * @deprecated since version 2.6, to be removed in 3.0. Use {@link getPropertyMetadata} instead.
-     */
-    public function getMemberMetadatas($property)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.6 and will be removed in 3.0. Use the getPropertyMetadata() method instead.', E_USER_DEPRECATED);
-
-        return $this->getPropertyMetadata($property);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasPropertyMetadata($property)
-    {
-        return array_key_exists($property, $this->members);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyMetadata($property)
-    {
-        if (!isset($this->members[$property])) {
-            return array();
-        }
-
-        return $this->members[$property];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getConstrainedProperties()
-    {
-        return array_keys($this->members);
-    }
-
-    /**
-     * Sets the default group sequence for this class.
-     *
-     * @param array $groupSequence An array of group names
-     *
-     * @return ClassMetadata
-     *
-     * @throws GroupDefinitionException
-     */
-    public function setGroupSequence($groupSequence)
-    {
-        if ($this->isGroupSequenceProvider()) {
-            throw new GroupDefinitionException('Defining a static group sequence is not allowed with a group sequence provider');
-        }
-
-        if (is_array($groupSequence)) {
-            $groupSequence = new GroupSequence($groupSequence);
-        }
-
-        if (in_array(Constraint::DEFAULT_GROUP, $groupSequence->groups, true)) {
-            throw new GroupDefinitionException(sprintf('The group "%s" is not allowed in group sequences', Constraint::DEFAULT_GROUP));
-        }
-
-        if (!in_array($this->getDefaultGroup(), $groupSequence->groups, true)) {
-            throw new GroupDefinitionException(sprintf('The group "%s" is missing in the group sequence', $this->getDefaultGroup()));
-        }
-
-        $this->groupSequence = $groupSequence;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasGroupSequence()
-    {
-        return $this->groupSequence && count($this->groupSequence->groups) > 0;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getGroupSequence()
-    {
-        return $this->groupSequence;
-    }
-
-    /**
-     * Returns a ReflectionClass instance for this class.
-     *
-     * @return \ReflectionClass
-     */
-    public function getReflectionClass()
-    {
-        if (!$this->reflClass) {
-            $this->reflClass = new \ReflectionClass($this->getClassName());
-        }
-
-        return $this->reflClass;
-    }
-
-    /**
-     * Sets whether a group sequence provider should be used.
-     *
-     * @param bool $active
-     *
-     * @throws GroupDefinitionException
-     */
-    public function setGroupSequenceProvider($active)
-    {
-        if ($this->hasGroupSequence()) {
-            throw new GroupDefinitionException('Defining a group sequence provider is not allowed with a static group sequence');
-        }
-
-        if (!$this->getReflectionClass()->implementsInterface('Symfony\Component\Validator\GroupSequenceProviderInterface')) {
-            throw new GroupDefinitionException(sprintf('Class "%s" must implement GroupSequenceProviderInterface', $this->name));
-        }
-
-        $this->groupSequenceProvider = $active;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isGroupSequenceProvider()
-    {
-        return $this->groupSequenceProvider;
-    }
-
-    /**
-     * Class nodes are never cascaded.
-     *
-     * {@inheritdoc}
-     */
-    public function getCascadingStrategy()
-    {
-        return CascadingStrategy::NONE;
-    }
-
-    /**
-     * Adds a property metadata.
-     *
-     * @param PropertyMetadataInterface $metadata
-     */
-    private function addPropertyMetadata(PropertyMetadataInterface $metadata)
-    {
-        $property = $metadata->getPropertyName();
-
-        $this->members[$property][] = $metadata;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/ClassMetadataFactory.php b/core/vendor/symfony/validator/Mapping/ClassMetadataFactory.php
deleted file mode 100644
index 4069b3f..0000000
--- a/core/vendor/symfony/validator/Mapping/ClassMetadataFactory.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-@trigger_error('The '.__NAMESPACE__.'\ClassMetadataFactory class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
-
-/**
- * Alias of {@link LazyLoadingMetadataFactory}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link LazyLoadingMetadataFactory} instead.
- */
-class ClassMetadataFactory extends LazyLoadingMetadataFactory
-{
-}
diff --git a/core/vendor/symfony/validator/Mapping/ClassMetadataInterface.php b/core/vendor/symfony/validator/Mapping/ClassMetadataInterface.php
deleted file mode 100644
index bb76c2c..0000000
--- a/core/vendor/symfony/validator/Mapping/ClassMetadataInterface.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\ClassBasedInterface;
-use Symfony\Component\Validator\PropertyMetadataContainerInterface as LegacyPropertyMetadataContainerInterface;
-
-/**
- * Stores all metadata needed for validating objects of specific class.
- *
- * Most importantly, the metadata stores the constraints against which an object
- * and its properties should be validated.
- *
- * Additionally, the metadata stores whether the "Default" group is overridden
- * by a group sequence for that class and whether instances of that class
- * should be traversed or not.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see MetadataInterface
- * @see \Symfony\Component\Validator\Constraints\GroupSequence
- * @see \Symfony\Component\Validator\GroupSequenceProviderInterface
- * @see TraversalStrategy
- */
-interface ClassMetadataInterface extends MetadataInterface, LegacyPropertyMetadataContainerInterface, ClassBasedInterface
-{
-    /**
-     * Returns the names of all constrained properties.
-     *
-     * @return string[] A list of property names
-     */
-    public function getConstrainedProperties();
-
-    /**
-     * Returns whether the "Default" group is overridden by a group sequence.
-     *
-     * If it is, you can access the group sequence with {@link getGroupSequence()}.
-     *
-     * @return bool Returns true if the "Default" group is overridden
-     *
-     * @see \Symfony\Component\Validator\Constraints\GroupSequence
-     */
-    public function hasGroupSequence();
-
-    /**
-     * Returns the group sequence that overrides the "Default" group for this
-     * class.
-     *
-     * @return \Symfony\Component\Validator\Constraints\GroupSequence|null The group sequence or null
-     *
-     * @see \Symfony\Component\Validator\Constraints\GroupSequence
-     */
-    public function getGroupSequence();
-
-    /**
-     * Returns whether the "Default" group is overridden by a dynamic group
-     * sequence obtained by the validated objects.
-     *
-     * If this method returns true, the class must implement
-     * {@link \Symfony\Component\Validator\GroupSequenceProviderInterface}.
-     * This interface will be used to obtain the group sequence when an object
-     * of this class is validated.
-     *
-     * @return bool Returns true if the "Default" group is overridden by
-     *              a dynamic group sequence
-     *
-     * @see \Symfony\Component\Validator\GroupSequenceProviderInterface
-     */
-    public function isGroupSequenceProvider();
-}
diff --git a/core/vendor/symfony/validator/Mapping/ElementMetadata.php b/core/vendor/symfony/validator/Mapping/ElementMetadata.php
deleted file mode 100644
index 69fe8bf..0000000
--- a/core/vendor/symfony/validator/Mapping/ElementMetadata.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-/**
- * Contains the metadata of a structural element.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Extend {@link GenericMetadata} instead.
- */
-abstract class ElementMetadata extends GenericMetadata
-{
-    public function __construct()
-    {
-        if (!$this instanceof MemberMetadata && !$this instanceof ClassMetadata) {
-            @trigger_error('The '.__CLASS__.' class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Validator\Mapping\GenericMetadata class instead.', E_USER_DEPRECATED);
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Factory/BlackHoleMetadataFactory.php b/core/vendor/symfony/validator/Mapping/Factory/BlackHoleMetadataFactory.php
deleted file mode 100644
index 5b38d0c..0000000
--- a/core/vendor/symfony/validator/Mapping/Factory/BlackHoleMetadataFactory.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Factory;
-
-/**
- * Metadata factory that does not store metadata.
- *
- * This implementation is useful if you want to validate values against
- * constraints only and you don't need to add constraints to classes and
- * properties.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class BlackHoleMetadataFactory implements MetadataFactoryInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFor($value)
-    {
-        throw new \LogicException('This class does not support metadata.');
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasMetadataFor($value)
-    {
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php b/core/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php
deleted file mode 100644
index 208dfce..0000000
--- a/core/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Factory;
-
-use Symfony\Component\Validator\Exception\NoSuchMetadataException;
-use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\ClassMetadataInterface;
-use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
-use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
-
-/**
- * Creates new {@link ClassMetadataInterface} instances.
- *
- * Whenever {@link getMetadataFor()} is called for the first time with a given
- * class name or object of that class, a new metadata instance is created and
- * returned. On subsequent requests for the same class, the same metadata
- * instance will be returned.
- *
- * You can optionally pass a {@link LoaderInterface} instance to the constructor.
- * Whenever a new metadata instance is created, it is passed to the loader,
- * which can configure the metadata based on configuration loaded from the
- * filesystem or a database. If you want to use multiple loaders, wrap them in a
- * {@link LoaderChain}.
- *
- * You can also optionally pass a {@link CacheInterface} instance to the
- * constructor. This cache will be used for persisting the generated metadata
- * between multiple PHP requests.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class LazyLoadingMetadataFactory implements MetadataFactoryInterface
-{
-    /**
-     * The loader for loading the class metadata
-     *
-     * @var LoaderInterface|null
-     */
-    protected $loader;
-
-    /**
-     * The cache for caching class metadata
-     *
-     * @var CacheInterface|null
-     */
-    protected $cache;
-
-    /**
-     * The loaded metadata, indexed by class name
-     *
-     * @var ClassMetadata[]
-     */
-    protected $loadedClasses = array();
-
-    /**
-     * Creates a new metadata factory.
-     *
-     * @param LoaderInterface|null $loader The loader for configuring new metadata
-     * @param CacheInterface|null  $cache  The cache for persisting metadata
-     *                                     between multiple PHP requests
-     */
-    public function __construct(LoaderInterface $loader = null, CacheInterface $cache = null)
-    {
-        $this->loader = $loader;
-        $this->cache = $cache;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * If the method was called with the same class name (or an object of that
-     * class) before, the same metadata instance is returned.
-     *
-     * If the factory was configured with a cache, this method will first look
-     * for an existing metadata instance in the cache. If an existing instance
-     * is found, it will be returned without further ado.
-     *
-     * Otherwise, a new metadata instance is created. If the factory was
-     * configured with a loader, the metadata is passed to the
-     * {@link LoaderInterface::loadClassMetadata()} method for further
-     * configuration. At last, the new object is returned.
-     */
-    public function getMetadataFor($value)
-    {
-        if (!is_object($value) && !is_string($value)) {
-            throw new NoSuchMetadataException(sprintf('Cannot create metadata for non-objects. Got: %s', gettype($value)));
-        }
-
-        $class = ltrim(is_object($value) ? get_class($value) : $value, '\\');
-
-        if (isset($this->loadedClasses[$class])) {
-            return $this->loadedClasses[$class];
-        }
-
-        if (null !== $this->cache && false !== ($this->loadedClasses[$class] = $this->cache->read($class))) {
-            return $this->loadedClasses[$class];
-        }
-
-        if (!class_exists($class) && !interface_exists($class)) {
-            throw new NoSuchMetadataException(sprintf('The class or interface "%s" does not exist.', $class));
-        }
-
-        $metadata = new ClassMetadata($class);
-
-        // Include constraints from the parent class
-        if ($parent = $metadata->getReflectionClass()->getParentClass()) {
-            $metadata->mergeConstraints($this->getMetadataFor($parent->name));
-        }
-
-        // Include constraints from all implemented interfaces
-        foreach ($metadata->getReflectionClass()->getInterfaces() as $interface) {
-            if ('Symfony\Component\Validator\GroupSequenceProviderInterface' === $interface->name) {
-                continue;
-            }
-            $metadata->mergeConstraints($this->getMetadataFor($interface->name));
-        }
-
-        if (null !== $this->loader) {
-            $this->loader->loadClassMetadata($metadata);
-        }
-
-        if (null !== $this->cache) {
-            $this->cache->write($metadata);
-        }
-
-        return $this->loadedClasses[$class] = $metadata;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasMetadataFor($value)
-    {
-        if (!is_object($value) && !is_string($value)) {
-            return false;
-        }
-
-        $class = ltrim(is_object($value) ? get_class($value) : $value, '\\');
-
-        if (class_exists($class) || interface_exists($class)) {
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Factory/MetadataFactoryInterface.php b/core/vendor/symfony/validator/Mapping/Factory/MetadataFactoryInterface.php
deleted file mode 100644
index 58736e2..0000000
--- a/core/vendor/symfony/validator/Mapping/Factory/MetadataFactoryInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Factory;
-
-use Symfony\Component\Validator\MetadataFactoryInterface as LegacyMetadataFactoryInterface;
-
-/**
- * Returns {@link \Symfony\Component\Validator\Mapping\MetadataInterface} instances for values.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface MetadataFactoryInterface extends LegacyMetadataFactoryInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Mapping/GenericMetadata.php b/core/vendor/symfony/validator/Mapping/GenericMetadata.php
deleted file mode 100644
index cc0e54d..0000000
--- a/core/vendor/symfony/validator/Mapping/GenericMetadata.php
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\Traverse;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\Exception\BadMethodCallException;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\ValidationVisitorInterface;
-
-/**
- * A generic container of {@link Constraint} objects.
- *
- * This class supports serialization and cloning.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class GenericMetadata implements MetadataInterface
-{
-    /**
-     * @var Constraint[]
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getConstraints()} and {@link findConstraints()} instead.
-     */
-    public $constraints = array();
-
-    /**
-     * @var array
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link findConstraints()} instead.
-     */
-    public $constraintsByGroup = array();
-
-    /**
-     * The strategy for cascading objects.
-     *
-     * By default, objects are not cascaded.
-     *
-     * @var int
-     *
-     * @see CascadingStrategy
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getCascadingStrategy()} instead.
-     */
-    public $cascadingStrategy = CascadingStrategy::NONE;
-
-    /**
-     * The strategy for traversing traversable objects.
-     *
-     * By default, traversable objects are not traversed.
-     *
-     * @var int
-     *
-     * @see TraversalStrategy
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getTraversalStrategy()} instead.
-     */
-    public $traversalStrategy = TraversalStrategy::NONE;
-
-    /**
-     * Returns the names of the properties that should be serialized.
-     *
-     * @return string[]
-     */
-    public function __sleep()
-    {
-        return array(
-            'constraints',
-            'constraintsByGroup',
-            'cascadingStrategy',
-            'traversalStrategy',
-        );
-    }
-
-    /**
-     * Clones this object.
-     */
-    public function __clone()
-    {
-        $constraints = $this->constraints;
-
-        $this->constraints = array();
-        $this->constraintsByGroup = array();
-
-        foreach ($constraints as $constraint) {
-            $this->addConstraint(clone $constraint);
-        }
-    }
-
-    /**
-     * Adds a constraint.
-     *
-     * If the constraint {@link Valid} is added, the cascading strategy will be
-     * changed to {@link CascadingStrategy::CASCADE}. Depending on the
-     * properties $traverse and $deep of that constraint, the traversal strategy
-     * will be set to one of the following:
-     *
-     *  - {@link TraversalStrategy::IMPLICIT} if $traverse is enabled and $deep
-     *    is enabled
-     *  - {@link TraversalStrategy::IMPLICIT} | {@link TraversalStrategy::STOP_RECURSION}
-     *    if $traverse is enabled, but $deep is disabled
-     *  - {@link TraversalStrategy::NONE} if $traverse is disabled
-     *
-     * @param Constraint $constraint The constraint to add
-     *
-     * @return GenericMetadata This object
-     *
-     * @throws ConstraintDefinitionException When trying to add the
-     *                                       {@link Traverse} constraint
-     */
-    public function addConstraint(Constraint $constraint)
-    {
-        if ($constraint instanceof Traverse) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The constraint "%s" can only be put on classes. Please use '.
-                '"Symfony\Component\Validator\Constraints\Valid" instead.',
-                get_class($constraint)
-            ));
-        }
-
-        if ($constraint instanceof Valid) {
-            $this->cascadingStrategy = CascadingStrategy::CASCADE;
-
-            if ($constraint->traverse) {
-                // Traverse unless the value is not traversable
-                $this->traversalStrategy = TraversalStrategy::IMPLICIT;
-
-                if (!$constraint->deep) {
-                    $this->traversalStrategy |= TraversalStrategy::STOP_RECURSION;
-                }
-            } else {
-                $this->traversalStrategy = TraversalStrategy::NONE;
-            }
-
-            return $this;
-        }
-
-        $this->constraints[] = $constraint;
-
-        foreach ($constraint->groups as $group) {
-            $this->constraintsByGroup[$group][] = $constraint;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Adds an list of constraints.
-     *
-     * @param Constraint[] $constraints The constraints to add
-     *
-     * @return GenericMetadata This object
-     */
-    public function addConstraints(array $constraints)
-    {
-        foreach ($constraints as $constraint) {
-            $this->addConstraint($constraint);
-        }
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getConstraints()
-    {
-        return $this->constraints;
-    }
-
-    /**
-     * Returns whether this element has any constraints.
-     *
-     * @return bool
-     */
-    public function hasConstraints()
-    {
-        return count($this->constraints) > 0;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * Aware of the global group (* group).
-     */
-    public function findConstraints($group)
-    {
-        return isset($this->constraintsByGroup[$group])
-            ? $this->constraintsByGroup[$group]
-            : array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCascadingStrategy()
-    {
-        return $this->cascadingStrategy;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTraversalStrategy()
-    {
-        return $this->traversalStrategy;
-    }
-
-    /**
-     * Exists for compatibility with the deprecated
-     * {@link Symfony\Component\Validator\MetadataInterface}.
-     *
-     * Should not be used.
-     *
-     * Implemented for backward compatibility with Symfony < 2.5.
-     *
-     * @throws BadMethodCallException
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function accept(ValidationVisitorInterface $visitor, $value, $group, $propertyPath)
-    {
-        throw new BadMethodCallException('Not supported.');
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/GetterMetadata.php b/core/vendor/symfony/validator/Mapping/GetterMetadata.php
deleted file mode 100644
index 0cf9992..0000000
--- a/core/vendor/symfony/validator/Mapping/GetterMetadata.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\Exception\ValidatorException;
-
-/**
- * Stores all metadata needed for validating a class property via its getter
- * method.
- *
- * A property getter is any method that is equal to the property's name,
- * prefixed with either "get" or "is". That method will be used to access the
- * property's value.
- *
- * The getter will be invoked by reflection, so the access of private and
- * protected getters is supported.
- *
- * This class supports serialization and cloning.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see PropertyMetadataInterface
- */
-class GetterMetadata extends MemberMetadata
-{
-    /**
-     * Constructor.
-     *
-     * @param string $class    The class the getter is defined on
-     * @param string $property The property which the getter returns
-     *
-     * @throws ValidatorException
-     */
-    public function __construct($class, $property)
-    {
-        $getMethod = 'get'.ucfirst($property);
-        $isMethod = 'is'.ucfirst($property);
-        $hasMethod = 'has'.ucfirst($property);
-
-        if (method_exists($class, $getMethod)) {
-            $method = $getMethod;
-        } elseif (method_exists($class, $isMethod)) {
-            $method = $isMethod;
-        } elseif (method_exists($class, $hasMethod)) {
-            $method = $hasMethod;
-        } else {
-            throw new ValidatorException(sprintf('Neither of these methods exist in class %s: %s, %s, %s', $class, $getMethod, $isMethod, $hasMethod));
-        }
-
-        parent::__construct($class, $method, $property);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyValue($object)
-    {
-        return $this->newReflectionMember($object)->invoke($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function newReflectionMember($objectOrClassName)
-    {
-        return new \ReflectionMethod($objectOrClassName, $this->getName());
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/AbstractLoader.php b/core/vendor/symfony/validator/Mapping/Loader/AbstractLoader.php
deleted file mode 100644
index 2ae8988..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/AbstractLoader.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\MappingException;
-
-/**
- * Base loader for validation metadata.
- *
- * This loader supports the loading of constraints from Symfony's default
- * namespace (see {@link DEFAULT_NAMESPACE}) using the short class names of
- * those constraints. Constraints can also be loaded using their fully
- * qualified class names. At last, namespace aliases can be defined to load
- * constraints with the syntax "alias:ShortName".
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class AbstractLoader implements LoaderInterface
-{
-    /**
-     * The namespace to load constraints from by default.
-     */
-    const DEFAULT_NAMESPACE = '\\Symfony\\Component\\Validator\\Constraints\\';
-
-    /**
-     * @var array
-     */
-    protected $namespaces = array();
-
-    /**
-     * Adds a namespace alias.
-     *
-     * The namespace alias can be used to reference constraints from specific
-     * namespaces in {@link newConstraint()}:
-     *
-     *     $this->addNamespaceAlias('mynamespace', '\\Acme\\Package\\Constraints\\');
-     *
-     *     $constraint = $this->newConstraint('mynamespace:NotNull');
-     *
-     * @param string $alias     The alias
-     * @param string $namespace The PHP namespace
-     */
-    protected function addNamespaceAlias($alias, $namespace)
-    {
-        $this->namespaces[$alias] = $namespace;
-    }
-
-    /**
-     * Creates a new constraint instance for the given constraint name.
-     *
-     * @param string $name    The constraint name. Either a constraint relative
-     *                        to the default constraint namespace, or a fully
-     *                        qualified class name. Alternatively, the constraint
-     *                        may be preceded by a namespace alias and a colon.
-     *                        The namespace alias must have been defined using
-     *                        {@link addNamespaceAlias()}.
-     * @param mixed  $options The constraint options
-     *
-     * @return Constraint
-     *
-     * @throws MappingException If the namespace prefix is undefined
-     */
-    protected function newConstraint($name, $options = null)
-    {
-        if (strpos($name, '\\') !== false && class_exists($name)) {
-            $className = (string) $name;
-        } elseif (strpos($name, ':') !== false) {
-            list($prefix, $className) = explode(':', $name, 2);
-
-            if (!isset($this->namespaces[$prefix])) {
-                throw new MappingException(sprintf('Undefined namespace prefix "%s"', $prefix));
-            }
-
-            $className = $this->namespaces[$prefix].$className;
-        } else {
-            $className = self::DEFAULT_NAMESPACE.$name;
-        }
-
-        return new $className($options);
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/AnnotationLoader.php b/core/vendor/symfony/validator/Mapping/Loader/AnnotationLoader.php
deleted file mode 100644
index d1b8c35..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/AnnotationLoader.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Doctrine\Common\Annotations\Reader;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\GroupSequence;
-use Symfony\Component\Validator\Constraints\GroupSequenceProvider;
-use Symfony\Component\Validator\Exception\MappingException;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Loads validation metadata using a Doctrine annotation {@link Reader}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class AnnotationLoader implements LoaderInterface
-{
-    /**
-     * @var Reader
-     */
-    protected $reader;
-
-    public function __construct(Reader $reader)
-    {
-        $this->reader = $reader;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadata $metadata)
-    {
-        $reflClass = $metadata->getReflectionClass();
-        $className = $reflClass->name;
-        $success = false;
-
-        foreach ($this->reader->getClassAnnotations($reflClass) as $constraint) {
-            if ($constraint instanceof GroupSequence) {
-                $metadata->setGroupSequence($constraint->groups);
-            } elseif ($constraint instanceof GroupSequenceProvider) {
-                $metadata->setGroupSequenceProvider(true);
-            } elseif ($constraint instanceof Constraint) {
-                $metadata->addConstraint($constraint);
-            }
-
-            $success = true;
-        }
-
-        foreach ($reflClass->getProperties() as $property) {
-            if ($property->getDeclaringClass()->name === $className) {
-                foreach ($this->reader->getPropertyAnnotations($property) as $constraint) {
-                    if ($constraint instanceof Constraint) {
-                        $metadata->addPropertyConstraint($property->name, $constraint);
-                    }
-
-                    $success = true;
-                }
-            }
-        }
-
-        foreach ($reflClass->getMethods() as $method) {
-            if ($method->getDeclaringClass()->name === $className) {
-                foreach ($this->reader->getMethodAnnotations($method) as $constraint) {
-                    if ($constraint instanceof Callback) {
-                        $constraint->callback = $method->getName();
-                        $constraint->methods = null;
-
-                        $metadata->addConstraint($constraint);
-                    } elseif ($constraint instanceof Constraint) {
-                        if (preg_match('/^(get|is|has)(.+)$/i', $method->name, $matches)) {
-                            $metadata->addGetterConstraint(lcfirst($matches[2]), $constraint);
-                        } else {
-                            throw new MappingException(sprintf('The constraint on "%s::%s" cannot be added. Constraints can only be added on methods beginning with "get", "is" or "has".', $className, $method->name));
-                        }
-                    }
-
-                    $success = true;
-                }
-            }
-        }
-
-        return $success;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/FileLoader.php b/core/vendor/symfony/validator/Mapping/Loader/FileLoader.php
deleted file mode 100644
index 326bbdf..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/FileLoader.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Validator\Exception\MappingException;
-
-/**
- * Base loader for loading validation metadata from a file.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see YamlFileLoader
- * @see XmlFileLoader
- */
-abstract class FileLoader extends AbstractLoader
-{
-    /**
-     * The file to load.
-     *
-     * @var string
-     */
-    protected $file;
-
-    /**
-     * Creates a new loader.
-     *
-     * @param string $file The mapping file to load
-     *
-     * @throws MappingException If the file does not exist or is not readable
-     */
-    public function __construct($file)
-    {
-        if (!is_file($file)) {
-            throw new MappingException(sprintf('The mapping file "%s" does not exist', $file));
-        }
-
-        if (!is_readable($file)) {
-            throw new MappingException(sprintf('The mapping file "%s" is not readable', $file));
-        }
-
-        if (!stream_is_local($this->file)) {
-            throw new MappingException(sprintf('The mapping file "%s" is not a local file', $file));
-        }
-
-        $this->file = $file;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/FilesLoader.php b/core/vendor/symfony/validator/Mapping/Loader/FilesLoader.php
deleted file mode 100644
index 571c7e7..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/FilesLoader.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-/**
- * Base loader for loading validation metadata from a list of files.
- *
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see YamlFilesLoader
- * @see XmlFilesLoader
- */
-abstract class FilesLoader extends LoaderChain
-{
-    /**
-     * Creates a new loader.
-     *
-     * @param array $paths An array of file paths
-     */
-    public function __construct(array $paths)
-    {
-        parent::__construct($this->getFileLoaders($paths));
-    }
-
-    /**
-     * Returns an array of file loaders for the given file paths.
-     *
-     * @param array $paths An array of file paths
-     *
-     * @return LoaderInterface[] The metadata loaders
-     */
-    protected function getFileLoaders($paths)
-    {
-        $loaders = array();
-
-        foreach ($paths as $path) {
-            $loaders[] = $this->getFileLoaderInstance($path);
-        }
-
-        return $loaders;
-    }
-
-    /**
-     * Creates a loader for the given file path.
-     *
-     * @param string $path The file path
-     *
-     * @return LoaderInterface The created loader
-     */
-    abstract protected function getFileLoaderInstance($path);
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/LoaderChain.php b/core/vendor/symfony/validator/Mapping/Loader/LoaderChain.php
deleted file mode 100644
index 970d906..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/LoaderChain.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Validator\Exception\MappingException;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Loads validation metadata from multiple {@link LoaderInterface} instances.
- *
- * Pass the loaders when constructing the chain. Once
- * {@link loadClassMetadata()} is called, that method will be called on all
- * loaders in the chain.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class LoaderChain implements LoaderInterface
-{
-    /**
-     * @var LoaderInterface[]
-     */
-    protected $loaders;
-
-    /**
-     * @param LoaderInterface[] $loaders The metadata loaders to use
-     *
-     * @throws MappingException If any of the loaders has an invalid type
-     */
-    public function __construct(array $loaders)
-    {
-        foreach ($loaders as $loader) {
-            if (!$loader instanceof LoaderInterface) {
-                throw new MappingException(sprintf('Class %s is expected to implement LoaderInterface', get_class($loader)));
-            }
-        }
-
-        $this->loaders = $loaders;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadata $metadata)
-    {
-        $success = false;
-
-        foreach ($this->loaders as $loader) {
-            $success = $loader->loadClassMetadata($metadata) || $success;
-        }
-
-        return $success;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/LoaderInterface.php b/core/vendor/symfony/validator/Mapping/Loader/LoaderInterface.php
deleted file mode 100644
index 5dadc82..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/LoaderInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Loads validation metadata into {@link ClassMetadata} instances.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface LoaderInterface
-{
-    /**
-     * Loads validation metadata into a {@link ClassMetadata} instance.
-     *
-     * @param ClassMetadata $metadata The metadata to load
-     *
-     * @return bool Whether the loader succeeded
-     */
-    public function loadClassMetadata(ClassMetadata $metadata);
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/StaticMethodLoader.php b/core/vendor/symfony/validator/Mapping/Loader/StaticMethodLoader.php
deleted file mode 100644
index 4ff2257..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/StaticMethodLoader.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Validator\Exception\MappingException;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Loads validation metadata by calling a static method on the loaded class.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class StaticMethodLoader implements LoaderInterface
-{
-    /**
-     * The name of the method to call.
-     *
-     * @var string
-     */
-    protected $methodName;
-
-    /**
-     * Creates a new loader.
-     *
-     * @param string $methodName The name of the static method to call
-     */
-    public function __construct($methodName = 'loadValidatorMetadata')
-    {
-        $this->methodName = $methodName;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadata $metadata)
-    {
-        /** @var \ReflectionClass $reflClass */
-        $reflClass = $metadata->getReflectionClass();
-
-        if (!$reflClass->isInterface() && $reflClass->hasMethod($this->methodName)) {
-            $reflMethod = $reflClass->getMethod($this->methodName);
-
-            if ($reflMethod->isAbstract()) {
-                return false;
-            }
-
-            if (!$reflMethod->isStatic()) {
-                throw new MappingException(sprintf('The method %s::%s should be static', $reflClass->name, $this->methodName));
-            }
-
-            if ($reflMethod->getDeclaringClass()->name != $reflClass->name) {
-                return false;
-            }
-
-            $reflMethod->invoke(null, $metadata);
-
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/XmlFileLoader.php b/core/vendor/symfony/validator/Mapping/Loader/XmlFileLoader.php
deleted file mode 100644
index 2961b00..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/XmlFileLoader.php
+++ /dev/null
@@ -1,219 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Config\Util\XmlUtils;
-use Symfony\Component\Validator\Exception\MappingException;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-/**
- * Loads validation metadata from an XML file.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class XmlFileLoader extends FileLoader
-{
-    /**
-     * The XML nodes of the mapping file.
-     *
-     * @var \SimpleXMLElement[]|null
-     */
-    protected $classes;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadata $metadata)
-    {
-        if (null === $this->classes) {
-            // This method may throw an exception. Do not modify the class'
-            // state before it completes
-            $xml = $this->parseFile($this->file);
-
-            $this->classes = array();
-
-            foreach ($xml->namespace as $namespace) {
-                $this->addNamespaceAlias((string) $namespace['prefix'], trim((string) $namespace));
-            }
-
-            foreach ($xml->class as $class) {
-                $this->classes[(string) $class['name']] = $class;
-            }
-        }
-
-        if (isset($this->classes[$metadata->getClassName()])) {
-            $classDescription = $this->classes[$metadata->getClassName()];
-
-            $this->loadClassMetadataFromXml($metadata, $classDescription);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Parses a collection of "constraint" XML nodes.
-     *
-     * @param \SimpleXMLElement $nodes The XML nodes
-     *
-     * @return array The Constraint instances
-     */
-    protected function parseConstraints(\SimpleXMLElement $nodes)
-    {
-        $constraints = array();
-
-        foreach ($nodes as $node) {
-            if (count($node) > 0) {
-                if (count($node->value) > 0) {
-                    $options = $this->parseValues($node->value);
-                } elseif (count($node->constraint) > 0) {
-                    $options = $this->parseConstraints($node->constraint);
-                } elseif (count($node->option) > 0) {
-                    $options = $this->parseOptions($node->option);
-                } else {
-                    $options = array();
-                }
-            } elseif (strlen((string) $node) > 0) {
-                $options = trim($node);
-            } else {
-                $options = null;
-            }
-
-            $constraints[] = $this->newConstraint((string) $node['name'], $options);
-        }
-
-        return $constraints;
-    }
-
-    /**
-     * Parses a collection of "value" XML nodes.
-     *
-     * @param \SimpleXMLElement $nodes The XML nodes
-     *
-     * @return array The values
-     */
-    protected function parseValues(\SimpleXMLElement $nodes)
-    {
-        $values = array();
-
-        foreach ($nodes as $node) {
-            if (count($node) > 0) {
-                if (count($node->value) > 0) {
-                    $value = $this->parseValues($node->value);
-                } elseif (count($node->constraint) > 0) {
-                    $value = $this->parseConstraints($node->constraint);
-                } else {
-                    $value = array();
-                }
-            } else {
-                $value = trim($node);
-            }
-
-            if (isset($node['key'])) {
-                $values[(string) $node['key']] = $value;
-            } else {
-                $values[] = $value;
-            }
-        }
-
-        return $values;
-    }
-
-    /**
-     * Parses a collection of "option" XML nodes.
-     *
-     * @param \SimpleXMLElement $nodes The XML nodes
-     *
-     * @return array The options
-     */
-    protected function parseOptions(\SimpleXMLElement $nodes)
-    {
-        $options = array();
-
-        foreach ($nodes as $node) {
-            if (count($node) > 0) {
-                if (count($node->value) > 0) {
-                    $value = $this->parseValues($node->value);
-                } elseif (count($node->constraint) > 0) {
-                    $value = $this->parseConstraints($node->constraint);
-                } else {
-                    $value = array();
-                }
-            } else {
-                $value = XmlUtils::phpize($node);
-                if (is_string($value)) {
-                    $value = trim($value);
-                }
-            }
-
-            $options[(string) $node['name']] = $value;
-        }
-
-        return $options;
-    }
-
-    /**
-     * Loads the XML class descriptions from the given file.
-     *
-     * @param string $path The path of the XML file
-     *
-     * @return \SimpleXMLElement The class descriptions
-     *
-     * @throws MappingException If the file could not be loaded
-     */
-    protected function parseFile($path)
-    {
-        try {
-            $dom = XmlUtils::loadFile($path, __DIR__.'/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd');
-        } catch (\Exception $e) {
-            throw new MappingException($e->getMessage(), $e->getCode(), $e);
-        }
-
-        return simplexml_import_dom($dom);
-    }
-
-    /**
-     * Loads the validation metadata from the given XML class description.
-     *
-     * @param ClassMetadata $metadata         The metadata to load
-     * @param array         $classDescription The XML class description
-     */
-    private function loadClassMetadataFromXml(ClassMetadata $metadata, $classDescription)
-    {
-        foreach ($classDescription->{'group-sequence-provider'} as $_) {
-            $metadata->setGroupSequenceProvider(true);
-        }
-
-        foreach ($classDescription->{'group-sequence'} as $groupSequence) {
-            if (count($groupSequence->value) > 0) {
-                $metadata->setGroupSequence($this->parseValues($groupSequence[0]->value));
-            }
-        }
-
-        foreach ($this->parseConstraints($classDescription->constraint) as $constraint) {
-            $metadata->addConstraint($constraint);
-        }
-
-        foreach ($classDescription->property as $property) {
-            foreach ($this->parseConstraints($property->constraint) as $constraint) {
-                $metadata->addPropertyConstraint((string) $property['name'], $constraint);
-            }
-        }
-
-        foreach ($classDescription->getter as $getter) {
-            foreach ($this->parseConstraints($getter->constraint) as $constraint) {
-                $metadata->addGetterConstraint((string) $getter['property'], $constraint);
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/XmlFilesLoader.php b/core/vendor/symfony/validator/Mapping/Loader/XmlFilesLoader.php
deleted file mode 100644
index 6017c3f..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/XmlFilesLoader.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-/**
- * Loads validation metadata from a list of XML files.
- *
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see FilesLoader
- */
-class XmlFilesLoader extends FilesLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getFileLoaderInstance($file)
-    {
-        return new XmlFileLoader($file);
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/YamlFileLoader.php b/core/vendor/symfony/validator/Mapping/Loader/YamlFileLoader.php
deleted file mode 100644
index 6075b27..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/YamlFileLoader.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Yaml\Parser as YamlParser;
-
-/**
- * Loads validation metadata from a YAML file.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class YamlFileLoader extends FileLoader
-{
-    /**
-     * An array of YAML class descriptions.
-     *
-     * @var array
-     */
-    protected $classes = null;
-
-    /**
-     * Caches the used YAML parser.
-     *
-     * @var YamlParser
-     */
-    private $yamlParser;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function loadClassMetadata(ClassMetadata $metadata)
-    {
-        if (null === $this->classes) {
-            if (null === $this->yamlParser) {
-                $this->yamlParser = new YamlParser();
-            }
-
-            // This method may throw an exception. Do not modify the class'
-            // state before it completes
-            if (false === ($classes = $this->parseFile($this->file))) {
-                return false;
-            }
-
-            $this->classes = $classes;
-
-            if (isset($this->classes['namespaces'])) {
-                foreach ($this->classes['namespaces'] as $alias => $namespace) {
-                    $this->addNamespaceAlias($alias, $namespace);
-                }
-
-                unset($this->classes['namespaces']);
-            }
-        }
-
-        if (isset($this->classes[$metadata->getClassName()])) {
-            $classDescription = $this->classes[$metadata->getClassName()];
-
-            $this->loadClassMetadataFromYaml($metadata, $classDescription);
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Parses a collection of YAML nodes.
-     *
-     * @param array $nodes The YAML nodes
-     *
-     * @return array An array of values or Constraint instances
-     */
-    protected function parseNodes(array $nodes)
-    {
-        $values = array();
-
-        foreach ($nodes as $name => $childNodes) {
-            if (is_numeric($name) && is_array($childNodes) && 1 === count($childNodes)) {
-                $options = current($childNodes);
-
-                if (is_array($options)) {
-                    $options = $this->parseNodes($options);
-                }
-
-                $values[] = $this->newConstraint(key($childNodes), $options);
-            } else {
-                if (is_array($childNodes)) {
-                    $childNodes = $this->parseNodes($childNodes);
-                }
-
-                $values[$name] = $childNodes;
-            }
-        }
-
-        return $values;
-    }
-
-    /**
-     * Loads the YAML class descriptions from the given file.
-     *
-     * @param string $path The path of the YAML file
-     *
-     * @return array|null The class descriptions or null, if the file was empty
-     *
-     * @throws \InvalidArgumentException If the file could not be loaded or did
-     *                                   not contain a YAML array
-     */
-    private function parseFile($path)
-    {
-        $classes = $this->yamlParser->parse(file_get_contents($path));
-
-        // empty file
-        if (null === $classes) {
-            return;
-        }
-
-        // not an array
-        if (!is_array($classes)) {
-            throw new \InvalidArgumentException(sprintf('The file "%s" must contain a YAML array.', $this->file));
-        }
-
-        return $classes;
-    }
-
-    /**
-     * Loads the validation metadata from the given YAML class description.
-     *
-     * @param ClassMetadata $metadata         The metadata to load
-     * @param array         $classDescription The YAML class description
-     */
-    private function loadClassMetadataFromYaml(ClassMetadata $metadata, array $classDescription)
-    {
-        if (isset($classDescription['group_sequence_provider'])) {
-            $metadata->setGroupSequenceProvider(
-                (bool) $classDescription['group_sequence_provider']
-            );
-        }
-
-        if (isset($classDescription['group_sequence'])) {
-            $metadata->setGroupSequence($classDescription['group_sequence']);
-        }
-
-        if (isset($classDescription['constraints']) && is_array($classDescription['constraints'])) {
-            foreach ($this->parseNodes($classDescription['constraints']) as $constraint) {
-                $metadata->addConstraint($constraint);
-            }
-        }
-
-        if (isset($classDescription['properties']) && is_array($classDescription['properties'])) {
-            foreach ($classDescription['properties'] as $property => $constraints) {
-                if (null !== $constraints) {
-                    foreach ($this->parseNodes($constraints) as $constraint) {
-                        $metadata->addPropertyConstraint($property, $constraint);
-                    }
-                }
-            }
-        }
-
-        if (isset($classDescription['getters']) && is_array($classDescription['getters'])) {
-            foreach ($classDescription['getters'] as $getter => $constraints) {
-                if (null !== $constraints) {
-                    foreach ($this->parseNodes($constraints) as $constraint) {
-                        $metadata->addGetterConstraint($getter, $constraint);
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/YamlFilesLoader.php b/core/vendor/symfony/validator/Mapping/Loader/YamlFilesLoader.php
deleted file mode 100644
index 235856f..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/YamlFilesLoader.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping\Loader;
-
-/**
- * Loads validation metadata from a list of YAML files.
- *
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see FilesLoader
- */
-class YamlFilesLoader extends FilesLoader
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getFileLoaderInstance($file)
-    {
-        return new YamlFileLoader($file);
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd b/core/vendor/symfony/validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd
deleted file mode 100644
index 1ca840b..0000000
--- a/core/vendor/symfony/validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version="1.0" ?>
-
-<xsd:schema xmlns="http://symfony.com/schema/dic/constraint-mapping"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    targetNamespace="http://symfony.com/schema/dic/constraint-mapping"
-    elementFormDefault="qualified">
-
-  <xsd:annotation>
-    <xsd:documentation><![CDATA[
-      Symfony Validator Constraint Mapping Schema, version 1.0
-      Authors: Bernhard Schussek
-
-      A constraint mapping connects classes, properties and getters with
-      validation constraints.
-    ]]></xsd:documentation>
-  </xsd:annotation>
-  
-  <xsd:element name="constraint-mapping" type="constraint-mapping" />
-  
-  <xsd:complexType name="constraint-mapping">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        The root element of the constraint mapping definition.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="namespace" type="namespace" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="class" type="class" maxOccurs="unbounded" />
-    </xsd:sequence>
-  </xsd:complexType>
-  
-  <xsd:complexType name="namespace">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains the abbreviation for a namespace.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute name="prefix" type="xsd:string" use="required" />
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-  
-  <xsd:complexType name="class">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains constraints for a single class.
-        
-        Nested elements may be class constraints, property and/or getter 
-        definitions.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-      <xsd:element name="group-sequence-provider" type="group-sequence-provider" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="group-sequence" type="group-sequence" minOccurs="0" maxOccurs="1" />
-      <xsd:element name="constraint" type="constraint" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
-      <xsd:element name="getter" type="getter" minOccurs="0" maxOccurs="unbounded" />
-    </xsd:choice>
-    <xsd:attribute name="name" type="xsd:string" use="required" />
-  </xsd:complexType>
-
-  <xsd:complexType name="group-sequence">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains the group sequence of a class. Each group should be written
-        into a "value" tag.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" />
-    </xsd:sequence>
-  </xsd:complexType>
-  
-  <xsd:complexType name="group-sequence-provider">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Defines the name of the group sequence provider for a class.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-  </xsd:complexType>
-  
-  <xsd:complexType name="property">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains constraints for a single property. The name of the property
-        should be given in the "name" option.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="constraint" type="constraint" maxOccurs="unbounded" />
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required" />
-  </xsd:complexType>
-  
-  <xsd:complexType name="getter">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains constraints for a getter method. The name of the corresponding
-        property should be given in the "property" option.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="constraint" type="constraint" maxOccurs="unbounded" />
-    </xsd:sequence>
-    <xsd:attribute name="property" type="xsd:string" use="required" />
-  </xsd:complexType>
-  
-  <xsd:complexType name="constraint" mixed="true">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains a constraint definition. The name of the constraint should be
-        given in the "name" option.
-        
-        May contain a single value, multiple "constraint" elements, 
-        multiple "value" elements or multiple "option" elements.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="0">
-      <xsd:element name="constraint" type="constraint" minOccurs="1" maxOccurs="unbounded" />
-      <xsd:element name="option" type="option" minOccurs="1" maxOccurs="unbounded" />
-      <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" />
-    </xsd:choice>
-    <xsd:attribute name="name" type="xsd:string" use="required" />    
-  </xsd:complexType>
-  
-  <xsd:complexType name="option" mixed="true">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        Contains a constraint option definition. The name of the option
-        should be given in the "name" option.
-        
-        May contain a single value, multiple "value" elements or multiple
-        "constraint" elements.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="0">
-      <xsd:element name="constraint" type="constraint" minOccurs="1" maxOccurs="unbounded" />
-      <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" />
-    </xsd:choice>
-    <xsd:attribute name="name" type="xsd:string" use="required" />  
-  </xsd:complexType>
-  
-  <xsd:complexType name="value" mixed="true">
-    <xsd:annotation>
-      <xsd:documentation><![CDATA[
-        A value of an element.
-        
-        May contain a single value, multiple "value" elements or multiple
-        "constraint" elements.
-      ]]></xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="0">
-      <xsd:element name="constraint" type="constraint" minOccurs="1" maxOccurs="unbounded" />
-      <xsd:element name="value" type="value" minOccurs="1" maxOccurs="unbounded" />
-    </xsd:choice>
-    <xsd:attribute name="key" type="xsd:string" use="optional" /> 
-  </xsd:complexType>
-</xsd:schema>
diff --git a/core/vendor/symfony/validator/Mapping/MemberMetadata.php b/core/vendor/symfony/validator/Mapping/MemberMetadata.php
deleted file mode 100644
index 0def248..0000000
--- a/core/vendor/symfony/validator/Mapping/MemberMetadata.php
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\ValidationVisitorInterface;
-
-/**
- * Stores all metadata needed for validating a class property.
- *
- * The method of accessing the property's value must be specified by subclasses
- * by implementing the {@link newReflectionMember()} method.
- *
- * This class supports serialization and cloning.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see PropertyMetadataInterface
- */
-abstract class MemberMetadata extends ElementMetadata implements PropertyMetadataInterface
-{
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getClassName()} instead.
-     */
-    public $class;
-
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getName()} instead.
-     */
-    public $name;
-
-    /**
-     * @var string
-     *
-     * @internal This property is public in order to reduce the size of the
-     *           class' serialized representation. Do not access it. Use
-     *           {@link getPropertyName()} instead.
-     */
-    public $property;
-
-    /**
-     * @var \ReflectionMethod[]|\ReflectionProperty[]
-     */
-    private $reflMember = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string $class    The name of the class this member is defined on
-     * @param string $name     The name of the member
-     * @param string $property The property the member belongs to
-     */
-    public function __construct($class, $name, $property)
-    {
-        $this->class = $class;
-        $this->name = $name;
-        $this->property = $property;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function accept(ValidationVisitorInterface $visitor, $value, $group, $propertyPath, $propagatedGroup = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-        $visitor->visit($this, $value, $group, $propertyPath);
-
-        if ($this->isCascaded()) {
-            $visitor->validate($value, $propagatedGroup ?: $group, $propertyPath, $this->isCollectionCascaded(), $this->isCollectionCascadedDeeply());
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addConstraint(Constraint $constraint)
-    {
-        if (!in_array(Constraint::PROPERTY_CONSTRAINT, (array) $constraint->getTargets())) {
-            throw new ConstraintDefinitionException(sprintf(
-                'The constraint %s cannot be put on properties or getters',
-                get_class($constraint)
-            ));
-        }
-
-        parent::addConstraint($constraint);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __sleep()
-    {
-        return array_merge(parent::__sleep(), array(
-            'class',
-            'name',
-            'property',
-        ));
-    }
-
-    /**
-     * Returns the name of the member.
-     *
-     * @return string
-     */
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getClassName()
-    {
-        return $this->class;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyName()
-    {
-        return $this->property;
-    }
-
-    /**
-     * Returns whether this member is public.
-     *
-     * @param object|string $objectOrClassName The object or the class name
-     *
-     * @return bool
-     */
-    public function isPublic($objectOrClassName)
-    {
-        return $this->getReflectionMember($objectOrClassName)->isPublic();
-    }
-
-    /**
-     * Returns whether this member is protected.
-     *
-     * @param object|string $objectOrClassName The object or the class name
-     *
-     * @return bool
-     */
-    public function isProtected($objectOrClassName)
-    {
-        return $this->getReflectionMember($objectOrClassName)->isProtected();
-    }
-
-    /**
-     * Returns whether this member is private.
-     *
-     * @param object|string $objectOrClassName The object or the class name
-     *
-     * @return bool
-     */
-    public function isPrivate($objectOrClassName)
-    {
-        return $this->getReflectionMember($objectOrClassName)->isPrivate();
-    }
-
-    /**
-     * Returns whether objects stored in this member should be validated.
-     *
-     * @return bool
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link getCascadingStrategy()} instead.
-     */
-    public function isCascaded()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the getCascadingStrategy() method instead.', E_USER_DEPRECATED);
-
-        return (bool) ($this->cascadingStrategy & CascadingStrategy::CASCADE);
-    }
-
-    /**
-     * Returns whether arrays or traversable objects stored in this member
-     * should be traversed and validated in each entry.
-     *
-     * @return bool
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link getTraversalStrategy()} instead.
-     */
-    public function isCollectionCascaded()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the getTraversalStrategy() method instead.', E_USER_DEPRECATED);
-
-        return (bool) ($this->traversalStrategy & (TraversalStrategy::IMPLICIT | TraversalStrategy::TRAVERSE));
-    }
-
-    /**
-     * Returns whether arrays or traversable objects stored in this member
-     * should be traversed recursively for inner arrays/traversable objects.
-     *
-     * @return bool
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link getTraversalStrategy()} instead.
-     */
-    public function isCollectionCascadedDeeply()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. Use the getTraversalStrategy() method instead.', E_USER_DEPRECATED);
-
-        return !($this->traversalStrategy & TraversalStrategy::STOP_RECURSION);
-    }
-
-    /**
-     * Returns the reflection instance for accessing the member's value.
-     *
-     * @param object|string $objectOrClassName The object or the class name
-     *
-     * @return \ReflectionMethod|\ReflectionProperty The reflection instance
-     */
-    public function getReflectionMember($objectOrClassName)
-    {
-        $className = is_string($objectOrClassName) ? $objectOrClassName : get_class($objectOrClassName);
-        if (!isset($this->reflMember[$className])) {
-            $this->reflMember[$className] = $this->newReflectionMember($objectOrClassName);
-        }
-
-        return $this->reflMember[$className];
-    }
-
-    /**
-     * Creates a new reflection instance for accessing the member's value.
-     *
-     * Must be implemented by subclasses.
-     *
-     * @param object|string $objectOrClassName The object or the class name
-     *
-     * @return \ReflectionMethod|\ReflectionProperty The reflection instance
-     */
-    abstract protected function newReflectionMember($objectOrClassName);
-}
diff --git a/core/vendor/symfony/validator/Mapping/MetadataInterface.php b/core/vendor/symfony/validator/Mapping/MetadataInterface.php
deleted file mode 100644
index fda1dbb..0000000
--- a/core/vendor/symfony/validator/Mapping/MetadataInterface.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\MetadataInterface as LegacyMetadataInterface;
-
-/**
- * A container for validation metadata.
- *
- * Most importantly, the metadata stores the constraints against which an object
- * and its properties should be validated.
- *
- * Additionally, the metadata stores whether objects should be validated
- * against their class' metadata and whether traversable objects should be
- * traversed or not.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see CascadingStrategy
- * @see TraversalStrategy
- */
-interface MetadataInterface extends LegacyMetadataInterface
-{
-    /**
-     * Returns the strategy for cascading objects.
-     *
-     * @return int The cascading strategy
-     *
-     * @see CascadingStrategy
-     */
-    public function getCascadingStrategy();
-
-    /**
-     * Returns the strategy for traversing traversable objects.
-     *
-     * @return int The traversal strategy
-     *
-     * @see TraversalStrategy
-     */
-    public function getTraversalStrategy();
-
-    /**
-     * Returns all constraints of this element.
-     *
-     * @return Constraint[] A list of Constraint instances
-     */
-    public function getConstraints();
-}
diff --git a/core/vendor/symfony/validator/Mapping/PropertyMetadata.php b/core/vendor/symfony/validator/Mapping/PropertyMetadata.php
deleted file mode 100644
index 7319294..0000000
--- a/core/vendor/symfony/validator/Mapping/PropertyMetadata.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\Exception\ValidatorException;
-
-/**
- * Stores all metadata needed for validating a class property.
- *
- * The value of the property is obtained by directly accessing the property.
- * The property will be accessed by reflection, so the access of private and
- * protected properties is supported.
- *
- * This class supports serialization and cloning.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see PropertyMetadataInterface
- */
-class PropertyMetadata extends MemberMetadata
-{
-    /**
-     * Constructor.
-     *
-     * @param string $class The class this property is defined on
-     * @param string $name  The name of this property
-     *
-     * @throws ValidatorException
-     */
-    public function __construct($class, $name)
-    {
-        if (!property_exists($class, $name)) {
-            throw new ValidatorException(sprintf('Property %s does not exist in class %s', $name, $class));
-        }
-
-        parent::__construct($class, $name, $name);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPropertyValue($object)
-    {
-        return $this->getReflectionMember($object)->getValue($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function newReflectionMember($objectOrClassName)
-    {
-        $class = new \ReflectionClass($objectOrClassName);
-        while (!$class->hasProperty($this->getName())) {
-            $class = $class->getParentClass();
-        }
-
-        $member = new \ReflectionProperty($class->getName(), $this->getName());
-        $member->setAccessible(true);
-
-        return $member;
-    }
-}
diff --git a/core/vendor/symfony/validator/Mapping/PropertyMetadataInterface.php b/core/vendor/symfony/validator/Mapping/PropertyMetadataInterface.php
deleted file mode 100644
index 79e2c79..0000000
--- a/core/vendor/symfony/validator/Mapping/PropertyMetadataInterface.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-use Symfony\Component\Validator\ClassBasedInterface;
-use Symfony\Component\Validator\PropertyMetadataInterface as LegacyPropertyMetadataInterface;
-
-/**
- * Stores all metadata needed for validating the value of a class property.
- *
- * Most importantly, the metadata stores the constraints against which the
- * property's value should be validated.
- *
- * Additionally, the metadata stores whether objects stored in the property
- * should be validated against their class' metadata and whether traversable
- * objects should be traversed or not.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see MetadataInterface
- * @see CascadingStrategy
- * @see TraversalStrategy
- */
-interface PropertyMetadataInterface extends MetadataInterface, LegacyPropertyMetadataInterface, ClassBasedInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Mapping/TraversalStrategy.php b/core/vendor/symfony/validator/Mapping/TraversalStrategy.php
deleted file mode 100644
index 450a3ec..0000000
--- a/core/vendor/symfony/validator/Mapping/TraversalStrategy.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Mapping;
-
-/**
- * Specifies whether and how a traversable object should be traversed.
- *
- * If the node traverser traverses a node whose value is an instance of
- * {@link \Traversable}, and if that node is either a class node or if
- * cascading is enabled, then the node's traversal strategy will be checked.
- * Depending on the requested traversal strategy, the node traverser will
- * iterate over the object and cascade each object or collection returned by
- * the iterator.
- *
- * The traversal strategy is ignored for arrays. Arrays are always iterated.
- *
- * @since  2.1
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see CascadingStrategy
- */
-class TraversalStrategy
-{
-    /**
-     * Specifies that a node's value should be iterated only if it is an
-     * instance of {@link \Traversable}.
-     */
-    const IMPLICIT = 1;
-
-    /**
-     * Specifies that a node's value should never be iterated.
-     */
-    const NONE = 2;
-
-    /**
-     * Specifies that a node's value should always be iterated. If the value is
-     * not an instance of {@link \Traversable}, an exception should be thrown.
-     */
-    const TRAVERSE = 4;
-
-    /**
-     * Specifies that nested instances of {@link \Traversable} should never be
-     * iterated. Can be combined with {@link IMPLICIT} or {@link TRAVERSE}.
-     *
-     * @deprecated since version 2.5, to be removed in 3.0. This constant was added for backwards compatibility only.
-     *
-     * @internal
-     */
-    const STOP_RECURSION = 8;
-
-    /**
-     * Not instantiable.
-     */
-    private function __construct()
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/MetadataFactoryInterface.php b/core/vendor/symfony/validator/MetadataFactoryInterface.php
deleted file mode 100644
index 555bea9..0000000
--- a/core/vendor/symfony/validator/MetadataFactoryInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Returns {@link MetadataInterface} instances for values.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Mapping\Factory\MetadataFactoryInterface} instead.
- */
-interface MetadataFactoryInterface
-{
-    /**
-     * Returns the metadata for the given value.
-     *
-     * @param mixed $value Some value
-     *
-     * @return MetadataInterface The metadata for the value
-     *
-     * @throws Exception\NoSuchMetadataException If no metadata exists for the given value
-     */
-    public function getMetadataFor($value);
-
-    /**
-     * Returns whether the class is able to return metadata for the given value.
-     *
-     * @param mixed $value Some value
-     *
-     * @return bool Whether metadata can be returned for that value
-     */
-    public function hasMetadataFor($value);
-}
diff --git a/core/vendor/symfony/validator/MetadataInterface.php b/core/vendor/symfony/validator/MetadataInterface.php
deleted file mode 100644
index 2c89449..0000000
--- a/core/vendor/symfony/validator/MetadataInterface.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * A container for validation metadata.
- *
- * The container contains constraints that may belong to different validation
- * groups. Constraints for a specific group can be fetched by calling
- * {@link findConstraints}.
- *
- * Implement this interface to add validation metadata to your own metadata
- * layer. Each metadata may have named properties. Each property can be
- * represented by one or more {@link PropertyMetadataInterface} instances that
- * are returned by {@link getPropertyMetadata}. Since
- * <tt>PropertyMetadataInterface</tt> inherits from <tt>MetadataInterface</tt>,
- * each property may be divided into further properties.
- *
- * The {@link accept} method of each metadata implements the Visitor pattern.
- * The method should forward the call to the visitor's
- * {@link ValidationVisitorInterface::visit} method and additionally call
- * <tt>accept()</tt> on all structurally related metadata instances.
- *
- * For example, to store constraints for PHP classes and their properties,
- * create a class <tt>ClassMetadata</tt> (implementing <tt>MetadataInterface</tt>)
- * and a class <tt>PropertyMetadata</tt> (implementing <tt>PropertyMetadataInterface</tt>).
- * <tt>ClassMetadata::getPropertyMetadata($property)</tt> returns all
- * <tt>PropertyMetadata</tt> instances for a property of that class. Its
- * <tt>accept()</tt>-method simply forwards to <tt>ValidationVisitorInterface::visit()</tt>
- * and calls <tt>accept()</tt> on all contained <tt>PropertyMetadata</tt>
- * instances, which themselves call <tt>ValidationVisitorInterface::visit()</tt>
- * again.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Mapping\MetadataInterface} instead.
- */
-interface MetadataInterface
-{
-    /**
-     * Implementation of the Visitor design pattern.
-     *
-     * Calls {@link ValidationVisitorInterface::visit} and then forwards the
-     * <tt>accept()</tt>-call to all property metadata instances.
-     *
-     * @param ValidationVisitorInterface $visitor      The visitor implementing the validation logic
-     * @param mixed                      $value        The value to validate
-     * @param string|string[]            $group        The validation group to validate in
-     * @param string                     $propertyPath The current property path in the validation graph
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function accept(ValidationVisitorInterface $visitor, $value, $group, $propertyPath);
-
-    /**
-     * Returns all constraints for a given validation group.
-     *
-     * @param string $group The validation group
-     *
-     * @return Constraint[] A list of constraint instances
-     */
-    public function findConstraints($group);
-}
diff --git a/core/vendor/symfony/validator/ObjectInitializerInterface.php b/core/vendor/symfony/validator/ObjectInitializerInterface.php
deleted file mode 100644
index 0426bc8..0000000
--- a/core/vendor/symfony/validator/ObjectInitializerInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Prepares an object for validation.
- *
- * Concrete implementations of this interface are used by {@link ValidationVisitorInterface}
- * to initialize objects just before validating them.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- */
-interface ObjectInitializerInterface
-{
-    /**
-     * Initializes an object just before validation.
-     *
-     * @param object $object The object to validate
-     *
-     * @api
-     */
-    public function initialize($object);
-}
diff --git a/core/vendor/symfony/validator/PropertyMetadataContainerInterface.php b/core/vendor/symfony/validator/PropertyMetadataContainerInterface.php
deleted file mode 100644
index 5441be1..0000000
--- a/core/vendor/symfony/validator/PropertyMetadataContainerInterface.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * A container for {@link PropertyMetadataInterface} instances.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Mapping\ClassMetadataInterface} instead.
- */
-interface PropertyMetadataContainerInterface
-{
-    /**
-     * Check if there's any metadata attached to the given named property.
-     *
-     * @param string $property The property name.
-     *
-     * @return bool
-     */
-    public function hasPropertyMetadata($property);
-
-    /**
-     * Returns all metadata instances for the given named property.
-     *
-     * If your implementation does not support properties, simply throw an
-     * exception in this method (for example a <tt>BadMethodCallException</tt>).
-     *
-     * @param string $property The property name.
-     *
-     * @return PropertyMetadataInterface[] A list of metadata instances. Empty if
-     *                                     no metadata exists for the property.
-     */
-    public function getPropertyMetadata($property);
-}
diff --git a/core/vendor/symfony/validator/PropertyMetadataInterface.php b/core/vendor/symfony/validator/PropertyMetadataInterface.php
deleted file mode 100644
index 20af8a9..0000000
--- a/core/vendor/symfony/validator/PropertyMetadataInterface.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * A container for validation metadata of a property.
- *
- * What exactly you define as "property" is up to you. The validator expects
- * implementations of {@link MetadataInterface} that contain constraints and
- * optionally a list of named properties that also have constraints (and may
- * have further sub properties). Such properties are mapped by implementations
- * of this interface.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see MetadataInterface
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Mapping\PropertyMetadataInterface} instead.
- */
-interface PropertyMetadataInterface extends MetadataInterface
-{
-    /**
-     * Returns the name of the property.
-     *
-     * @return string The property name.
-     */
-    public function getPropertyName();
-
-    /**
-     * Extracts the value of the property from the given container.
-     *
-     * @param mixed $containingValue The container to extract the property value from.
-     *
-     * @return mixed The value of the property.
-     */
-    public function getPropertyValue($containingValue);
-}
diff --git a/core/vendor/symfony/validator/README.md b/core/vendor/symfony/validator/README.md
deleted file mode 100644
index 9014ec6..0000000
--- a/core/vendor/symfony/validator/README.md
+++ /dev/null
@@ -1,126 +0,0 @@
-Validator Component
-===================
-
-This component is based on the JSR-303 Bean Validation specification and
-enables specifying validation rules for classes using XML, YAML, PHP or
-annotations, which can then be checked against instances of these classes.
-
-Usage
------
-
-The component provides "validation constraints", which are simple objects
-containing the rules for the validation. Let's validate a simple string
-as an example:
-
-```php
-use Symfony\Component\Validator\Validation;
-use Symfony\Component\Validator\Constraints\Length;
-
-$validator = Validation::createValidator();
-
-$violations = $validator->validateValue('Bernhard', new Length(array('min' => 10)));
-```
-
-This validation will fail because the given string is shorter than ten
-characters. The precise errors, here called "constraint violations",  are
-returned by the validator. You can analyze these or return them to the user.
-If the violation list is empty, validation succeeded.
-
-Validation of arrays is possible using the `Collection` constraint:
-
-```php
-use Symfony\Component\Validator\Validation;
-use Symfony\Component\Validator\Constraints as Assert;
-
-$validator = Validation::createValidator();
-
-$constraint = new Assert\Collection(array(
-    'name' => new Assert\Collection(array(
-        'first_name' => new Assert\Length(array('min' => 101)),
-        'last_name' => new Assert\Length(array('min' => 1)),
-    )),
-    'email' => new Assert\Email(),
-    'simple' => new Assert\Length(array('min' => 102)),
-    'gender' => new Assert\Choice(array(3, 4)),
-    'file' => new Assert\File(),
-    'password' => new Assert\Length(array('min' => 60)),
-));
-
-$violations = $validator->validateValue($input, $constraint);
-```
-
-Again, the validator returns the list of violations.
-
-Validation of objects is possible using "constraint mapping". With such
-a mapping you can put constraints onto properties and objects of classes.
-Whenever an object of this class is validated, its properties and
-method results are matched against the constraints.
-
-```php
-use Symfony\Component\Validator\Validation;
-use Symfony\Component\Validator\Constraints as Assert;
-
-class User
-{
-    /**
-     * @Assert\Length(min = 3)
-     * @Assert\NotBlank
-     */
-    private $name;
-
-    /**
-     * @Assert\Email
-     * @Assert\NotBlank
-     */
-    private $email;
-
-    public function __construct($name, $email)
-    {
-        $this->name = $name;
-        $this->email = $email;
-    }
-
-    /**
-     * @Assert\IsTrue(message = "The user should have a Google Mail account")
-     */
-    public function isGmailUser()
-    {
-        return false !== strpos($this->email, '@gmail.com');
-    }
-}
-
-$validator = Validation::createValidatorBuilder()
-    ->enableAnnotationMapping()
-    ->getValidator();
-
-$user = new User('John Doe', 'john@example.com');
-
-$violations = $validator->validate($user);
-```
-
-This example uses the annotation support of Doctrine Common to
-map constraints to properties and methods. You can also map constraints
-using XML, YAML or plain PHP, if you dislike annotations or don't want
-to include Doctrine. Check the documentation for more information about
-these drivers.
-
-Resources
----------
-
-Silex integration:
-
-https://github.com/fabpot/Silex/blob/master/src/Silex/Provider/ValidatorServiceProvider.php
-
-Documentation:
-
-https://symfony.com/doc/2.7/book/validation.html
-
-JSR-303 Specification:
-
-http://jcp.org/en/jsr/detail?id=303
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Validator/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.af.xlf b/core/vendor/symfony/validator/Resources/translations/validators.af.xlf
deleted file mode 100644
index 177bb00..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.af.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Hierdie waarde moet vals wees.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Hierdie waarde moet waar wees.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Hierdie waarde moet van die soort {{type}} wees.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Hierdie waarde moet leeg wees.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Die waarde wat jy gekies het is nie 'n geldige keuse nie.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Jy moet ten minste {{ limit }} kies.|Jy moet ten minste {{ limit }} keuses kies.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Jy moet by die meeste {{ limit }} keuse kies.|Jy moet by die meeste {{ limit }} keuses kies.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Een of meer van die gegewe waardes is ongeldig.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Die veld is nie verwag nie.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Hierdie veld ontbreek.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Hierdie waarde is nie 'n geldige datum nie.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Hierdie waarde is nie 'n geldige datum en tyd nie.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Hierdie waarde is nie 'n geldige e-pos adres nie.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Die lêer kon nie gevind word nie.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Die lêer kan nie gelees word nie.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Die lêer is te groot ({{ size }} {{ suffix }}). Toegelaat maksimum grootte is {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Die MIME-tipe van die lêer is ongeldig ({{ type }}). Toegelaat MIME-tipes is {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Hierdie waarde moet {{ limit }} of minder wees.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Hierdie waarde is te lank. Dit moet {{ limit }} karakter of minder wees.|Hierdie waarde is te lank. Dit moet {{ limit }} karakters of minder wees.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Hierdie waarde moet {{ limit }} of meer wees.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Hierdie waarde is te kort. Dit moet {{ limit }} karakter of meer wees.|Hierdie waarde is te kort. Dit moet {{ limit }} karakters of meer wees.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Hierdie waarde moet nie leeg wees nie.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Hierdie waarde moet nie nul wees nie.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Hierdie waarde moet nul wees.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Hierdie waarde is nie geldig nie.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Hierdie waarde is nie 'n geldige tyd nie.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Hierdie waarde is nie 'n geldige URL nie.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Die twee waardes moet gelyk wees.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Die lêer is te groot. Toegelaat maksimum grootte is {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Die lêer is te groot.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Die lêer kan nie opgelaai word nie.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Hierdie waarde moet 'n geldige nommer wees.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Hierdie lêer is nie 'n geldige beeld nie.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Hierdie is nie 'n geldige IP-adres nie.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Hierdie waarde is nie 'n geldige taal nie.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Hierdie waarde is nie 'n geldige land instelling nie.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Hierdie waarde is nie 'n geldige land nie.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Hierdie waarde word reeds gebruik.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Die grootte van die beeld kon nie opgespoor word nie.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Die beeld breedte is te groot ({{ width }}px). Toegelaat maksimum breedte is {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Die beeld breedte is te klein ({{ width }}px). Minimum breedte verwag is {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Die beeld hoogte is te groot ({{ height }}px). Toegelaat maksimum hoogte is {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Die beeld hoogte is te klein ({{ height }}px). Minimum hoogte verwag is {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Hierdie waarde moet die huidige wagwoord van die gebruiker wees.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Hierdie waarde moet presies {{ limit }} karakter wees.|Hierdie waarde moet presies {{ limit }} karakters wees.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Die lêer is slegs gedeeltelik opgelaai.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Geen lêer is opgelaai nie.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Geen tydelike lêer is ingestel in php.ini nie.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Kan nie tydelike lêer skryf op skyf nie.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>'n PHP-uitbreiding veroorsaak die oplaai van die lêer om te misluk.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Hierdie versameling moet {{ limit }} element of meer bevat.|Hierdie versameling moet {{ limit }} elemente of meer bevat.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Hierdie versameling moet {{ limit }} element of minder bevat.|Hierdie versameling moet {{ limit }} elemente of meer bevat.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Hierdie versameling moet presies {{ limit }} element bevat.|Hierdie versameling moet presies {{ limit }} elemente bevat.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ongeldige kredietkaart nommer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nie-ondersteunde tipe kaart of ongeldige kredietkaart nommer.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.ar.xlf b/core/vendor/symfony/validator/Resources/translations/validators.ar.xlf
deleted file mode 100644
index 4950e0c..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.ar.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>هذه القيمة يجب أن تكون خاطئة.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>هذه القيمة يجب أن تكون حقيقية.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>هذه القيمة يجب ان تكون من نوع {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>هذه القيمة يجب ان تكون فارغة.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>القيمة المختارة ليست خيارا صحيحا.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيارات على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.|يجب ان تختار {{ limit }} اختيار على الاقل.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيارات على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.|يجب ان تختار {{ limit }} اختيار على الاكثر.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>واحد أو أكثر من القيم المعطاه خاطئ.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>لم يكن من المتوقع هذا المجال.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>هذا المجال مفقود.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>هذه القيمة ليست تاريخا صالحا.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>هذه القيمة ليست تاريخا و وقتا صالحا.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>هذه القيمة ليست عنوان بريد إلكتروني صحيح.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>لا يمكن العثور على الملف.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>الملف غير قابل للقراءة.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>الملف كبير جدا ({{ size }} {{ suffix }}).اقصى مساحه مسموح بها ({{ limit }} {{ suffix }}).</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>نوع الملف غير صحيح ({{ type }}). الانواع المسموح بها هى {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>هذه القيمة يجب ان تكون {{ limit }} او اقل.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حروف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.|هذه القيمة طويلة جدا. يجب ان تكون {{ limit }} حرف او اقل.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>هذه القيمة يجب ان تكون {{ limit }} او اكثر.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حروف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.|هذه القيمة قصيرة جدا. يجب ان تكون {{ limit }} حرف او اكثر.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>هذه القيمة يجب الا تكون فارغة.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>هذه القيمة يجب الا تكون فارغة.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>هذه القيمة يجب ان تكون فارغة.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>هذه القيمة غير صحيحة.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>هذه القيمة ليست وقت صحيح.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>هذه القيمة ليست رابط الكترونى صحيح.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>القيمتان يجب ان تكونا متساويتان.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>الملف كبير جدا. اقصى مساحه مسموح بها {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>الملف كبير جدا.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>لم استطع استقبال الملف.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>هذه القيمة يجب ان تكون رقم.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>هذا الملف ليس صورة صحيحة.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>هذه القيمة ليست عنوان رقمى صحيح.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>هذه القيمة ليست لغة صحيحة.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>هذه القيمة ليست موقع صحيح.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>هذه القيمة ليست بلدا صالحا.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>هذه القيمة مستخدمة بالفعل.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>لم استطع معرفة حجم الصورة.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>عرض الصورة كبير جدا ({{ width }}px). اقصى عرض مسموح به هو{{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>عرض الصورة صغير جدا ({{ width }}px). اقل عرض مسموح به هو{{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>طول الصورة كبير جدا ({{ height }}px). اقصى طول مسموح به هو{{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>طول الصورة صغير جدا ({{ height }}px). اقل طول مسموح به هو{{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>هذه القيمة يجب ان تكون كلمة سر المستخدم الحالية.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حروف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.|هذه القيمة يجب ان تحتوى على {{ limit }} حرف فقط.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>تم استقبال جزء من الملف فقط.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>لم يتم ارسال اى ملف.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>لم يتم تهيئة حافظة مؤقتة فى ملف php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>لم استطع كتابة الملف المؤقت.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>احد اضافات PHP تسببت فى فشل استقبال الملف.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عناصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اكثر.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عناصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر او اقل.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عناصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.|هذه المجموعة يجب ان تحتوى على {{ limit }} عنصر فقط.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>رقم البطاقه غير صحيح.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>نوع البطاقه غير مدعوم او الرقم غير صحيح.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>الرقم IBAN (رقم الحساب المصرفي الدولي) الذي تم إدخاله غير صالح.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>هذه القيمة ليست ISBN-10 صالحة.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>هذه القيمة ليست ISBN-13 صالحة.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>هذه القيمة ليست ISBN-10 صالحة ولا ISBN-13 صالحة.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>هذه القيمة ليست ISSN صالحة.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>العُملة غير صحيحة.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>القيمة يجب ان تساوي {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>القيمة يجب ان تكون اعلي من {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>القيمة يجب ان تكون مساوية او اعلي من {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>القيمة يجب ان تطابق {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>القيمة يجب ان تكون اقل من {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>القيمة يجب ان تساوي او تقل عن {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>القيمة يجب ان لا تساوي {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>القيمة يجب ان لا تطابق {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>نسبة العرض على الارتفاع للصورة كبيرة جدا ({{ ratio }}). الحد الأقصى للنسبة المسموح به هو {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>نسبة العرض على الارتفاع للصورة صغيرة جدا ({{ ratio }}). الحد الأدنى للنسبة المسموح به هو {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>الصورة مربعة ({{ width }}x{{ height }}px). الصور المربعة غير مسموح بها.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>الصورة في وضع أفقي ({{ width }}x{{ height }}px). الصور في وضع أفقي غير مسموح بها.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>الصورة في وضع عمودي ({{ width }}x{{ height }}px). الصور في وضع عمودي غير مسموح بها.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>ملف فارغ غير مسموح به.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>يتعذر الإتصال بالنطاق.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>هذه القيمة غير متطابقة مع صيغة التحويل {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.az.xlf b/core/vendor/symfony/validator/Resources/translations/validators.az.xlf
deleted file mode 100644
index add868c..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.az.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Bu dəyər false olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Bu dəyər true olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Bu dəyərin tipi {{ type }} olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Bu dəyər boş olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Seçdiyiniz dəyər düzgün bir seçim değil.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Ən az {{ limit }} seçim qeyd edilməlidir.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Ən çox {{ limit }} seçim qeyd edilməlidir.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Təqdim edilən dəyərlərdən bir və ya bir neçəsi yanlışdır.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Bu sahə gözlənilmirdi.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Bu sahə əksikdir.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Bu dəyər düzgün bir tarix deyil.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Bu dəyər düzgün bir tarixsaat deyil.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Bu dəyər düzgün bir e-poçt adresi deyil.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Fayl tapılmadı.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Fayl oxunabilən deyil.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fayl çox böyükdür ({{ size }} {{ suffix }}). İcazə verilən maksimum fayl ölçüsü {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Faylın mime tipi yanlışdr ({{ type }}). İcazə verilən mime tipləri {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Bu dəyər {{ limit }} və ya altında olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Bu dəyər çox uzundur. {{ limit }} və ya daha az simvol olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Bu dəyər {{ limit }} veya daha fazla olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Bu dəyər çox qısadır. {{ limit }} və ya daha çox simvol olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Bu dəyər boş olmamalıdır.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Bu dəyər boş olmamalıdır.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Bu dəyər boş olmamalıdır.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Bu dəyər doğru deyil.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Bu dəyər doğru bir saat deyil.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Bu dəyər doğru bir URL değil.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>İki dəyər eyni olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fayl çox böyükdür. İcazə verilən ən böyük fayl ölçüsü {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Fayl çox böyükdür.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Fayl yüklənəbilmir.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Bu dəyər rəqəm olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Bu fayl düzgün bir şəkil deyil.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Bu düzgün bir IP adresi deyil.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Bu dəyər düzgün bir dil deyil.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Bu dəyər düzgün bir dil deyil.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Bu dəyər düzgün bir ölkə deyil.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Bu dəyər hal-hazırda istifadədədir.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Şəklin ölçüsü hesablana bilmir.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Şəklin genişliyi çox böyükdür ({{ width }}px). İcazə verilən ən böyük genişlik {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Şəklin genişliyi çox kiçikdir ({{ width }}px). Ən az {{ min_width }}px olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Şəklin yüksəkliyi çox böyükdür ({{ height }}px). İcazə verilən ən böyük yüksəklik {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Şəklin yüksəkliyi çox kiçikdir ({{ height }}px). Ən az {{ min_height }}px olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Bu dəyər istifadəçinin hazırkı parolu olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Bu dəyər tam olaraq {{ limit }} simvol olmaldır.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Fayl qismən yükləndi.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Fayl yüklənmədi.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>php.ini'də müvəqqəti qovluq quraşdırılmayıb.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Müvəqqəti fayl diskə yazıla bilmir.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Bir PHP əlavəsi faylın yüklənməsinə mane oldu.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Bu kolleksiyada {{ limit }} və ya daha çox element olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Bu kolleksiyada {{ limit }} və ya daha az element olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Bu kolleksiyada tam olaraq {{ limit }} element olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Yanlış kart nömrəsi.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Dəstəklənməyən kart tipi və ya yanlış kart nömrəsi.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.bg.xlf b/core/vendor/symfony/validator/Resources/translations/validators.bg.xlf
deleted file mode 100644
index 7c5da55..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.bg.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Стойността трябва да бъде лъжа (false).</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Стойността трябва да бъде истина (true).</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Стойността трябва да бъде от тип {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Стойността трябва да бъде празна.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Избраната стойност е невалидна.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Трябва да изберете поне {{ limit }} опция.|Трябва да изберете поне {{ limit }} опции.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Трябва да изберете най-много {{ limit }} опция.|Трябва да изберете най-много {{ limit }} опции.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Една или повече от зададените стойности е невалидна.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Това поле не се е очаквало.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Това поле липсва.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Стойността не е валидна дата (date).</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Стойността не е валидна дата (datetime).</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Стойността не е валиден email адрес.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Файлът не беше открит.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Файлът не може да бъде прочетен.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файлът е твърде голям ({{ size }} {{ suffix }}). Максималният размер е {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Майм типа на файла е невалиден ({{ type }}). Разрешени майм типове са {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Стойността трябва да бъде {{ limit }} или по-малко.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Стойността е твърде дълга. Трябва да съдържа най-много {{ limit }} символ.|Стойността е твърде дълга. Трябва да съдържа най-много {{ limit }} символа.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Стойността трябва да бъде {{ limit }} или повече.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Стойността е твърде кратка. Трябва да съдържа поне {{ limit }} символ.|Стойността е твърде кратка. Трябва да съдържа поне {{ limit }} символа.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Стойността не трябва да бъде празна.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Стойността не трябва да бъде null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Стойността трябва да бъде null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Стойността не е валидна.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Стойността не е валидно време (time).</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Стойността не е валиден URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Двете стойности трябва да бъдат равни.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файлът е твърде голям. Разрешеният максимален размер е {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Файлът е твърде голям.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Файлът не може да бъде качен.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Стойността трябва да бъде валиден номер.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Файлът не е валидно изображение.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Това не е валиден IP адрес.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Стойността не е валиден език.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Стойността не е валидна локализация.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Стойността не е валидна държава.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Стойността вече е в употреба.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Размера на изображението не може да бъде определен.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Изображението е твърде широко ({{ width }}px). Широчината трябва да бъде максимум {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Изображението е с твърде малка широчина ({{ width }}px). Широчината трябва да бъде минимум {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Изображението е с твърде голяма височина ({{ height }}px). Височината трябва да бъде максимум {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Изображението е с твърде малка височина ({{ height }}px). Височина трябва да бъде минимум {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Стойността трябва да бъде текущата потребителска парола.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Стойността трябва да бъде точно {{ limit }} символ.|Стойността трябва да бъде точно {{ limit }} символа.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Файлът е качен частично.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Файлът не беше качен.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Не е посочена директория за временни файлове в php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Не може да запише временен файл на диска.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP разширение предизвика прекъсване на качването.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Колекцията трябва да съдържа поне {{ limit }} елемент.|Колекцията трябва да съдържа поне {{ limit }} елемента.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Колекцията трябва да съдържа най-много {{ limit }} елемент.|Колекцията трябва да съдържа най-много {{ limit }} елемента.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Колекцията трябва да съдържа точно {{ limit }} елемент.|Колекцията трябва да съдържа точно {{ limit }} елемента.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Невалиден номер на картата.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Неподдържан тип карта или невалиден номер на картата.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Невалиден Международен номер на банкова сметка (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Невалиден ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Невалиден ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Невалидна стойност както за ISBN-10, така и за ISBN-13 .</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Невалиден Международен стандартен сериен номер (ISSN).</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Невалидна валута.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Стойността трябва да бъде равна на {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Стойността трябва да бъде по-голяма от {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Стойността трябва да бъде по-голяма или равна на {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Стойността трябва да бъде идентична с {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Стойността трябва да бъде по-малка {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Стойността трябва да бъде по-малка или равна на {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Стойността не трябва да бъде равна на {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Стойността не трябва да бъде идентична с {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.ca.xlf b/core/vendor/symfony/validator/Resources/translations/validators.ca.xlf
deleted file mode 100644
index 85b6970..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.ca.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Aquest valor hauria de ser fals.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Aquest valor hauria de ser cert.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Aquest valor hauria de ser del tipus {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Aquest valor hauria d'estar buit.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>El valor seleccionat no és una opció vàlida.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Ha de seleccionar almenys {{ limit }} opció.|Ha de seleccionar almenys {{ limit }} opcions.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Ha de seleccionar com a màxim {{ limit }} opció.|Ha de seleccionar com a màxim {{ limit }} opcions.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Un o més dels valors facilitats són incorrectes.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Aquest camp no s'esperava.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Aquest camp està desaparegut.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Aquest valor no és una data vàlida.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Aquest valor no és una data i hora vàlida.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Aquest valor no és una adreça d'email vàlida.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>No s'ha pogut trobar l'arxiu.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>No es pot llegir l'arxiu.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>L'arxiu és massa gran ({{ size }} {{ suffix }}). La grandària màxima permesa és {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>El tipus mime de l'arxiu no és vàlid ({{ type }}). Els tipus mime vàlids són {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Aquest valor hauria de ser {{ limit }} o menys.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Aquest valor és massa llarg. Hauria de tenir {{ limit }} caràcter o menys.|Aquest valor és massa llarg. Hauria de tenir {{ limit }} caràcters o menys.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Aquest valor hauria de ser {{ limit }} o més.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Aquest valor és massa curt. Hauria de tenir {{ limit }} caràcters o més.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Aquest valor no hauria d'estar buit.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Aquest valor no hauria de ser null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Aquest valor hauria de ser null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Aquest valor no és vàlid.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Aquest valor no és una hora vàlida.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Aquest valor no és una URL vàlida.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Els dos valors haurien de ser iguals.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>L'arxiu és massa gran. El tamany màxim permés és {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>L'arxiu és massa gran.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>No es pot pujar l'arxiu.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Aquest valor hauria de ser un nombre vàlid.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>L'arxiu no és una imatge vàlida.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Això no és una adreça IP vàlida.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Aquest valor no és un idioma vàlid.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Aquest valor no és una localització vàlida.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Aquest valor no és un país vàlid.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Aquest valor ja s'ha utilitzat.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>No s'ha pogut determinar la grandària de la imatge.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>L'amplària de la imatge és massa gran ({{ width }}px). L'amplària màxima permesa són {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>L'amplària de la imatge és massa petita ({{ width }}px). L'amplària mínima requerida són {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>L'altura de la imatge és massa gran ({{ height }}px). L'altura màxima permesa són {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>L'altura de la imatge és massa petita ({{ height }}px). L'altura mínima requerida són {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Aquest valor hauria de ser la contrasenya actual de l'usuari.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Aquest valor hauria de tenir exactament {{ limit }} caràcter.|Aquest valor hauria de tenir exactament {{ limit }} caràcters.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>L'arxiu va ser només pujat parcialment.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Cap arxiu va ser pujat.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Cap carpeta temporal va ser configurada en php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>No es va poder escriure l'arxiu temporal en el disc.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Una extensió de PHP va fer que la pujada fallara.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Aquesta col·lecció ha de contenir {{ limit }} element o més.|Aquesta col·lecció ha de contenir {{ limit }} elements o més.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Aquesta col·lecció ha de contenir {{ limit }} element o menys.|Aquesta col·lecció ha de contenir {{ limit }} elements o menys.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Aquesta col·lecció ha de contenir exactament {{ limit }} element.|Aquesta col·lecció ha de contenir exactament {{ limit }} elements.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Número de targeta invàlid.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipus de targeta no suportada o número de targeta invàlid.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Això no és un nombre de compte bancari internacional (IBAN) vàlid.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Aquest valor no és un ISBN-10 vàlid.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Aquest valor no és un ISBN-13 vàlid.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Aquest valor no és ni un ISBN-10 vàlid ni un ISBN-13 vàlid.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Aquest valor no és un ISSN vàlid.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Aquest valor no és una divisa vàlida.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Aquest valor hauria de ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Aquest valor hauria de ser més gran a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Aquest valor hauria de ser major o igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Aquest valor hauria de ser idèntic a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Aquest valor hauria de ser menor a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Aquest valor hauria de ser menor o igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Aquest valor no hauria de ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Aquest valor no hauria de idèntic a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>La proporció de l'imatge és massa gran ({{ ratio }}). La màxima proporció permesa és {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>La proporció de l'imatge és massa petita ({{ ratio }}). La mínima proporció permesa és {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>L'imatge és quadrada({{ width }}x{{ height }}px). Les imatges quadrades no estan permeses.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>L'imatge està orientada horitzontalment ({{ width }}x{{ height }}px). Les imatges orientades horitzontalment no estan permeses.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>L'imatge està orientada verticalment ({{ width }}x{{ height }}px). Les imatges orientades verticalment no estan permeses.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>No està permès un fixter buit.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.cs.xlf b/core/vendor/symfony/validator/Resources/translations/validators.cs.xlf
deleted file mode 100644
index 2ae47b2..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.cs.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Tato hodnota musí být nepravdivá (false).</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Tato hodnota musí být pravdivá (true).</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Tato hodnota musí být typu {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Tato hodnota musí být prázdná.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Vybraná hodnota není platnou možností.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Musí být vybrána nejméně {{ limit }} možnost.|Musí být vybrány nejméně {{ limit }} možnosti.|Musí být vybráno nejméně {{ limit }} možností.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Musí být vybrána maximálně {{ limit }} možnost.|Musí být vybrány maximálně {{ limit }} možnosti.|Musí být vybráno maximálně {{ limit }} možností.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Některé z uvedených hodnot jsou neplatné.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Toto pole nebyla očekávána.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Toto pole chybí.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Tato hodnota není platné datum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Tato hodnota není platné datum s časovým údajem.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Tato hodnota není platná e-mailová adresa.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Soubor nebyl nalezen.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Soubor je nečitelný.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Soubor je příliš velký ({{ size }} {{ suffix }}). Maximální povolená velikost souboru je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Neplatný mime typ souboru ({{ type }}). Povolené mime typy souborů jsou {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Tato hodnota musí být {{ limit }} nebo méně.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Tato hodnota je příliš dlouhá. Musí obsahovat maximálně {{ limit }} znak.|Tato hodnota je příliš dlouhá. Musí obsahovat maximálně {{ limit }} znaky.|Tato hodnota je příliš dlouhá. Musí obsahovat maximálně {{ limit }} znaků.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Tato hodnota musí být {{ limit }} nebo více.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Tato hodnota je příliš krátká. Musí obsahovat minimálně {{ limit }} znak.|Tato hodnota je příliš krátká. Musí obsahovat minimálně {{ limit }} znaky.|Tato hodnota je příliš krátká. Musí obsahovat minimálně {{ limit }} znaků.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Tato hodnota nesmí být prázdná.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Tato hodnota nesmí být null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Tato hodnota musí být null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Tato hodnota není platná.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Tato hodnota není platný časový údaj.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Tato hodnota není platná URL adresa.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Tyto dvě hodnoty musí být stejné.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Soubor je příliš velký. Maximální povolená velikost souboru je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Soubor je příliš velký.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Soubor se nepodařilo nahrát.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Tato hodnota musí být číslo.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Tento soubor není obrázek.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Toto není platná IP adresa.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Tento jazyk neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Tato lokalizace neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Tato země neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Tato hodnota je již používána.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Nepodařily se zjistit rozměry obrázku.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Obrázek je příliš široký ({{ width }}px). Maximální povolená šířka obrázku je {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Obrázek je příliš úzký ({{ width }}px). Minimální šířka musí být {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Obrázek je příliš vysoký ({{ height }}px). Maximální povolená výška obrázku je {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Obrázek je příliš nízký ({{ height }}px). Minimální výška obrázku musí být {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Tato hodnota musí být aktuální heslo uživatele.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Tato hodnota musí mít přesně {{ limit }} znak.|Tato hodnota musí mít přesně {{ limit }} znaky.|Tato hodnota musí mít přesně {{ limit }} znaků.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Byla nahrána jen část souboru.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Žádný soubor nebyl nahrán.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>V php.ini není nastavena cesta k adresáři pro dočasné soubory.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Dočasný soubor se nepodařilo zapsat na disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Rozšíření PHP zabránilo nahrání souboru.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Tato kolekce musí obsahovat minimálně {{ limit }} prvek.|Tato kolekce musí obsahovat minimálně {{ limit }} prvky.|Tato kolekce musí obsahovat minimálně {{ limit }} prvků.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Tato kolekce musí obsahovat maximálně {{ limit }} prvek.|Tato kolekce musí obsahovat maximálně {{ limit }} prvky.|Tato kolekce musí obsahovat maximálně {{ limit }} prvků.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Tato kolekce musí obsahovat přesně {{ limit }} prvek.|Tato kolekce musí obsahovat přesně {{ limit }} prvky.|Tato kolekce musí obsahovat přesně {{ limit }} prvků.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Neplatné číslo karty.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nepodporovaný typ karty nebo neplatné číslo karty.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Toto je neplatný IBAN.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Tato hodnota není platné ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Tato hodnota není platné ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Tato hodnota není platné ISBN-10 ani ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Tato hodnota není platné ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Tato měna neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Tato hodnota musí být rovna {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Tato hodnota musí být větší než {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Tato hodnota musí být větší nebo rovna {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Tato hodnota musí být typu {{ compared_value_type }} a zároveň musí být rovna {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Tato hodnota musí být menší než {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Tato hodnota musí být menší nebo rovna {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Tato hodnota nesmí být rovna {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Tato hodnota nesmí být typu {{ compared_value_type }} a zároveň nesmí být rovna {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Poměr stran obrázku je příliš velký ({{ ratio }}). Maximální povolený poměr stran obrázku je {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Poměr stran obrázku je příliš malý ({{ ratio }}). Minimální povolený poměr stran obrázku je {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Strany obrázku jsou čtvercové ({{ width }}x{{ height }}px). Čtvercové obrázky nejsou povolené.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Obrázek je orientovaný na šířku ({{ width }}x{{ height }}px). Obrázky orientované na šířku nejsou povolené.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Obrázek je orientovaný na výšku ({{ width }}x{{ height }}px). Obrázky orientované na výšku nejsou povolené.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Soubor nesmí být prázdný.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.cy.xlf b/core/vendor/symfony/validator/Resources/translations/validators.cy.xlf
deleted file mode 100644
index da7cb9a..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.cy.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Dylid bod y gwerth hwn yn ffug.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Dylid bod y gwerth hwn yn wir.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Dylid bod y gwerth hwn bod o fath {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Dylid bod y gwerth hwn yn wag.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Nid yw'r gwerth â ddewiswyd yn ddilys.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Rhaid dewis o leiaf {{ limit }} opsiwn.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Rhaid dewis dim mwy na {{ limit }} opsiwn.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Mae un neu fwy o'r gwerthoedd a roddwyd yn annilys.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Nid oedd disgwyl y maes hwn.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Mae'r maes hwn ar goll.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Nid yw'r gwerth yn ddyddiad dilys.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Nid yw'r gwerth yn datetime dilys.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Nid yw'r gwerth yn gyfeiriad ebost dilys.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Ni ddarganfyddwyd y ffeil.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Ni ellir darllen y ffeil.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Mae'r ffeil yn rhy fawr ({{ size }} {{ suffix }}). Yr uchafswm â ganiateir yw {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Nid yw math mime y ffeil yn ddilys ({{ type }}). Dyma'r mathau â ganiateir {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Dylai'r gwerth hwn fod yn {{ limit }} neu lai.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Mae'r gwerth hwn rhy hir. Dylai gynnwys {{ limit }} nodyn cyfrifiadurol neu lai.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Dylai'r gwerth hwn fod yn {{ limit }} neu fwy.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Mae'r gwerth hwn yn rhy fyr. Dylai gynnwys {{ limit }} nodyn cyfrifiadurol neu fwy.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Ni ddylai'r gwerth hwn fod yn wag.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Ni ddylai'r gwerth hwn fod yn null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Dylai'r gwerth fod yn null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Nid yw'r gwerth hwn yn ddilys.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Nid yw'r gwerth hwn yn amser dilys.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Nid yw'r gwerth hwn yn URL dilys.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Rhaid i'r ddau werth fod yn gyfystyr a'u gilydd.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Mae'r ffeil yn rhy fawr. Yr uchafswm â ganiateir yw {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Mae'r ffeil yn rhy fawr.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Methwyd ag uwchlwytho'r ffeil.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Dylai'r gwerth hwn fod yn rif dilys.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Nid yw'r ffeil hon yn ddelwedd dilys.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Nid yw hwn yn gyfeiriad IP dilys.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Nid yw'r gwerth hwn yn iaith ddilys.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Nid yw'r gwerth hwn yn locale dilys.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Nid yw'r gwerth hwn yn wlad dilys.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Mae'r gwerth hwn eisoes yn cael ei ddefnyddio.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Methwyd â darganfod maint y ddelwedd.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Mae lled y ddelwedd yn rhy fawr ({{ width }}px). Y lled mwyaf â ganiateir yw {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Mae lled y ddelwedd yn rhy fach ({{ width }}px). Y lled lleiaf â ganiateir yw {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Mae uchder y ddelwedd yn rhy fawr ({{ width }}px). Yr uchder mwyaf â ganiateir yw {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Mae uchder y ddelwedd yn rhy fach ({{ width }}px). Yr uchder lleiaf â ganiateir yw {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Dylaid bod y gwerth hwn yn gyfrinair presenol y defnyddiwr.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Dylai'r gwerth hwn fod yn union {{ limit }} nodyn cyfrifiadurol o hyd.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Dim ond rhan o'r ffeil ag uwchlwythwyd.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Ni uwchlwythwyd unrhyw ffeil.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nid oes ffolder dros-dro wedi'i gosod yn php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Methwyd ag ysgrifennu'r ffeil dros-dro ar ddisg.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Methwyd ag uwchlwytho oherwydd ategyn PHP.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Dylai'r casgliad hwn gynnwys {{ limit }} elfen neu fwy.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Dylai'r casgliad hwn gynnwys {{ limit }} elfen neu lai.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Dylai'r casgliad hwn gynnwys union {{ limit }} elfen.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Nid oedd rhif y cerdyn yn ddilys.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Unai ni dderbynir y math yna o gerdyn, neu nid yw rhif y cerdyn yn ddilys.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.da.xlf b/core/vendor/symfony/validator/Resources/translations/validators.da.xlf
deleted file mode 100644
index 14e479a..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.da.xlf
+++ /dev/null
@@ -1,247 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Værdien skal være falsk.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Værdien skal være sand.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Værdien skal være af typen {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Værdien skal være blank.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Værdien skal være en af de givne muligheder.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Du skal vælge mindst {{ limit }} muligheder.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Du kan højest vælge {{ limit }} muligheder.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>En eller flere af de oplyste værdier er ugyldige.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Feltet blev ikke forventet.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Dette felt er mangler.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Værdien er ikke en gyldig dato.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Værdien er ikke en gyldig dato og tid.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Værdien er ikke en gyldig e-mail adresse.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Filen kunne ikke findes.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Filen kan ikke læses.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Filen er for stor ({{ size }} {{ suffix }}). Tilladte maksimale størrelse {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mimetypen af filen er ugyldig ({{ type }}). Tilladte mimetyper er {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Værdien skal være {{ limit }} eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Værdien er for lang. Den skal have {{ limit }} bogstaver eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Værdien skal være {{ limit }} eller mere.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Værdien er for kort. Den skal have {{ limit }} tegn eller flere.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Værdien må ikke være blank.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Værdien må ikke være tom (null).</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Værdien skal være tom (null).</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Værdien er ikke gyldig.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Værdien er ikke en gyldig tid.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Værdien er ikke en gyldig URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>De to værdier skal være ens.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Filen er for stor. Den maksimale størrelse er {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Filen er for stor.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Filen kunne ikke blive uploadet.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Værdien skal være et gyldigt tal.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Filen er ikke gyldigt billede.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Dette er ikke en gyldig IP adresse.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Værdien er ikke et gyldigt sprog.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Værdien er ikke en gyldig lokalitet.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Værdien er ikke et gyldigt land.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Værdien er allerede i brug.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Størrelsen på billedet kunne ikke detekteres.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Billedbredden er for stor ({{ width }}px). Tilladt maksimumsbredde er {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Billedebredden er for lille ({{ width }}px). Forventet minimumshøjde er {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Billedhøjden er for stor ({{ height }}px). Tilladt maksimumshøjde er {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Billedhøjden er for lille ({{ height }}px). Forventet minimumshøjde er {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Værdien skal være brugerens nuværende password.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Værdien skal have præcis {{ limit }} tegn.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Filen var kun delvis uploadet.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Ingen fil blev uploadet.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Ingen midlertidig mappe er konfigureret i php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Kan ikke skrive midlertidig fil til disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>En PHP udvidelse forårsagede fejl i upload.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Denne samling skal indeholde {{ limit }} element eller flere.|Denne samling skal indeholde {{ limit }} elementer eller flere.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Denne samling skal indeholde {{ limit }} element eller mindre.|Denne samling skal indeholde {{ limit }} elementer eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Denne samling skal indeholde præcis {{ limit }} element.|Denne samling skal indeholde præcis {{ limit }} elementer.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ugyldigt kortnummer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Ikke-understøttet korttype eller ugyldigt kortnummer.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Det er ikke en gyldig International Bank Account Number (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Værdien er ikke en gyldig ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Værdien er ikke en gyldig ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Værdien er hverken en gyldig ISBN-10 eller en gyldig ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Værdien er ikke en gyldig ISSN.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.de.xlf b/core/vendor/symfony/validator/Resources/translations/validators.de.xlf
deleted file mode 100644
index c79cb94..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.de.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Dieser Wert sollte false sein.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Dieser Wert sollte true sein.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Dieser Wert sollte vom Typ {{ type }} sein.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Dieser Wert sollte leer sein.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Sie haben einen ungültigen Wert ausgewählt.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Sie müssen mindestens {{ limit }} Möglichkeit wählen.|Sie müssen mindestens {{ limit }} Möglichkeiten wählen.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Sie dürfen höchstens {{ limit }} Möglichkeit wählen.|Sie dürfen höchstens {{ limit }} Möglichkeiten wählen.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Einer oder mehrere der angegebenen Werte sind ungültig.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Dieses Feld wurde nicht erwartet.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Dieses Feld fehlt.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Dieser Wert entspricht keiner gültigen Datumsangabe.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Dieser Wert entspricht keiner gültigen Datums- und Zeitangabe.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Dieser Wert ist keine gültige E-Mail-Adresse.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Die Datei wurde nicht gefunden.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Die Datei ist nicht lesbar.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Die Datei ist zu groß ({{ size }} {{ suffix }}). Die maximal zulässige Größe beträgt {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Der Dateityp ist ungültig ({{ type }}). Erlaubte Dateitypen sind {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Dieser Wert sollte kleiner oder gleich {{ limit }} sein.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Diese Zeichenkette ist zu lang. Sie sollte höchstens {{ limit }} Zeichen haben.|Diese Zeichenkette ist zu lang. Sie sollte höchstens {{ limit }} Zeichen haben.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Dieser Wert sollte größer oder gleich {{ limit }} sein.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Diese Zeichenkette ist zu kurz. Sie sollte mindestens {{ limit }} Zeichen haben.|Diese Zeichenkette ist zu kurz. Sie sollte mindestens {{ limit }} Zeichen haben.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Dieser Wert sollte nicht leer sein.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Dieser Wert sollte nicht null sein.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Dieser Wert sollte null sein.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Dieser Wert ist nicht gültig.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Dieser Wert entspricht keiner gültigen Zeitangabe.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Dieser Wert ist keine gültige URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Die beiden Werte sollten identisch sein.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Die Datei ist zu groß. Die maximal zulässige Größe beträgt {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Die Datei ist zu groß.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Die Datei konnte nicht hochgeladen werden.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Dieser Wert sollte eine gültige Zahl sein.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Diese Datei ist kein gültiges Bild.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Dies ist keine gültige IP-Adresse.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Dieser Wert entspricht keiner gültigen Sprache.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Dieser Wert entspricht keinem gültigen Gebietsschema.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Dieser Wert entspricht keinem gültigen Land.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Dieser Wert wird bereits verwendet.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Die Größe des Bildes konnte nicht ermittelt werden.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Die Bildbreite ist zu groß ({{ width }}px). Die maximal zulässige Breite beträgt {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Die Bildbreite ist zu gering ({{ width }}px). Die erwartete Mindestbreite beträgt {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Die Bildhöhe ist zu groß ({{ height }}px). Die maximal zulässige Höhe beträgt {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Die Bildhöhe ist zu gering ({{ height }}px). Die erwartete Mindesthöhe beträgt {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Dieser Wert sollte dem aktuellen Benutzerpasswort entsprechen.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Dieser Wert sollte genau {{ limit }} Zeichen lang sein.|Dieser Wert sollte genau {{ limit }} Zeichen lang sein.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Die Datei wurde nur teilweise hochgeladen.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Es wurde keine Datei hochgeladen.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Es wurde kein temporärer Ordner in der php.ini konfiguriert.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Kann die temporäre Datei nicht speichern.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Eine PHP-Erweiterung verhinderte den Upload.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Diese Sammlung sollte {{ limit }} oder mehr Elemente beinhalten.|Diese Sammlung sollte {{ limit }} oder mehr Elemente beinhalten.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Diese Sammlung sollte {{ limit }} oder weniger Elemente beinhalten.|Diese Sammlung sollte {{ limit }} oder weniger Elemente beinhalten.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Diese Sammlung sollte genau {{ limit }} Element beinhalten.|Diese Sammlung sollte genau {{ limit }} Elemente beinhalten.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ungültige Kartennummer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nicht unterstützer Kartentyp oder ungültige Kartennummer.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Dieser Wert ist keine gültige IBAN-Kontonummer.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Dieser Wert entspricht keiner gültigen ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Dieser Wert entspricht keiner gültigen ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Dieser Wert ist weder eine gültige ISBN-10 noch eine gültige ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Dieser Wert ist keine gültige ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Dieser Wert ist keine gültige Währung.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Dieser Wert sollte gleich {{ compared_value }} sein.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Dieser Wert sollte größer als {{ compared_value }} sein.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Dieser Wert sollte größer oder gleich {{ compared_value }} sein.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Dieser Wert sollte identisch sein mit {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Dieser Wert sollte kleiner als {{ compared_value }} sein.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Dieser Wert sollte kleiner oder gleich {{ compared_value }} sein.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Dieser Wert sollte nicht {{ compared_value }} sein.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Dieser Wert sollte nicht identisch sein mit {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Das Seitenverhältnis des Bildes ist zu groß ({{ ratio }}). Der erlaubte Maximalwert ist {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Das Seitenverhältnis des Bildes ist zu klein ({{ ratio }}). Der erwartete Minimalwert ist {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Das Bild ist quadratisch ({{ width }}x{{ height }}px). Quadratische Bilder sind nicht erlaubt.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Das Bild ist im Querformat ({{ width }}x{{ height }}px). Bilder im Querformat sind nicht erlaubt.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Das Bild ist im Hochformat ({{ width }}x{{ height }}px). Bilder im Hochformat sind nicht erlaubt.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Eine leere Datei ist nicht erlaubt.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Der Hostname konnte nicht aufgelöst werden.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Dieser Wert entspricht nicht dem erwarteten Zeichensatz {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.el.xlf b/core/vendor/symfony/validator/Resources/translations/validators.el.xlf
deleted file mode 100644
index 4fa0d42..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.el.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Αυτή η τιμή πρέπει να είναι ψευδής.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Αυτή η τιμή πρέπει να είναι αληθής.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Αυτή η τιμή πρέπει να είναι τύπου {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Αυτή η τιμή πρέπει να είναι κενή.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Η τιμή που επιλέχθηκε δεν αντιστοιχεί σε έγκυρη επιλογή.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Πρέπει να επιλέξετε τουλάχιστον {{ limit }} επιλογή.|Πρέπει να επιλέξετε τουλάχιστον {{ limit }} επιλογές.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Πρέπει να επιλέξετε το πολύ {{ limit }} επιλογή.|Πρέπει να επιλέξετε το πολύ {{ limit }} επιλογές.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Μια ή περισσότερες τιμές δεν είναι έγκυρες.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Αυτό το πεδίο δεν ήταν αναμενόμενο.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Λείπει αυτό το πεδίο.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Η τιμή δεν αντιστοιχεί σε έγκυρη ημερομηνία και ώρα.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Η τιμή δεν αντιστοιχεί σε έγκυρο email.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Το αρχείο δε μπορεί να βρεθεί.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Το αρχείο δεν είναι αναγνώσιμο.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Το αρχείο είναι πολύ μεγάλο ({{ size }} {{ suffix }}). Το μέγιστο επιτρεπτό μέγεθος είναι {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Ο τύπος mime του αρχείου δεν είναι έγκυρος ({{ type }}). Οι έγκρυοι τύποι mime είναι {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι {{ limit }} ή λιγότερο.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Αυτή η τιμή είναι πολύ μεγάλη. Θα έπρεπε να έχει {{ limit }} χαρακτήρα ή λιγότερο.|Αυτή η τιμή είναι πολύ μεγάλη. Θα έπρεπε να έχει {{ limit }} χαρακτήρες ή λιγότερο.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι {{ limit }} ή περισσότερο.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Αυτή η τιμή είναι πολύ μικρή. Θα έπρεπε να έχει {{ limit }} χαρακτήρα ή περισσότερο.|Αυτή η τιμή είναι πολύ μικρή. Θα έπρεπε να έχει {{ limit }} χαρακτήρες ή περισσότερο.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Αυτή η τιμή δεν πρέπει να είναι κενή.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Αυτή η τιμή δεν πρέπει να είναι μηδενική.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Αυτή η τιμή πρέπει να είναι μηδενική.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Αυτή η τιμή δεν είναι έκγυρη.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρη ώρα.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε έγκυρο URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Οι δύο τιμές θα πρέπει να είναι ίδιες.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Το αρχείο είναι πολύ μεγάλο. Το μέγιστο επιτρεπτό μέγεθος είναι {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Το αρχείο είναι πολύ μεγάλο.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Το αρχείο δε μπορεί να ανέβει.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι ένας έγκυρος αριθμός.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Το αρχείο δεν αποτελεί έγκυρη εικόνα.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Αυτό δεν είναι μια έκγυρη διεύθυνση IP.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε μια έκγυρη γλώσσα.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε έκγυρο κωδικό τοποθεσίας.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Αυτή η τιμή δεν αντιστοιχεί σε μια έκγυρη χώρα.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Αυτή η τιμή χρησιμοποιείται ήδη.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Το μέγεθος της εικόνας δεν ήταν δυνατό να ανιχνευθεί.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Το πλάτος της εικόνας είναι πολύ μεγάλο ({{ width }}px). Το μέγιστο επιτρεπτό πλάτος είναι {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Το πλάτος της εικόνας είναι πολύ μικρό ({{ width }}px). Το ελάχιστο επιτρεπτό πλάτος είναι {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Το ύψος της εικόνας είναι πολύ μεγάλο ({{ height }}px). Το μέγιστο επιτρεπτό ύψος είναι {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Το ύψος της εικόνας είναι πολύ μικρό ({{ height }}px). Το ελάχιστο επιτρεπτό ύψος είναι {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Αυτή η τιμή θα έπρεπε να είναι ο τρέχων κωδικός.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Αυτή η τιμή θα έπρεπε να έχει ακριβώς {{ limit }} χαρακτήρα.|Αυτή η τιμή θα έπρεπε να έχει ακριβώς {{ limit }} χαρακτήρες.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Το αρχείο δεν ανέβηκε ολόκληρο.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Δεν ανέβηκε κανένα αρχείο.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Κανένας προσωρινός φάκελος δεν έχει ρυθμιστεί στο php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Αδυναμία εγγραφής προσωρινού αρχείου στο δίσκο.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Μια επέκταση PHP προκάλεσε αδυναμία ανεβάσματος.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχείο ή περισσότερα.|Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχεία ή περισσότερα.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχείo ή λιγότερα.|Αυτή η συλλογή θα πρέπει να περιέχει {{ limit }} στοιχεία ή λιγότερα.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Αυτή η συλλογή θα πρέπει να περιέχει ακριβώς {{ limit }} στοιχείo.|Αυτή η συλλογή θα πρέπει να περιέχει ακριβώς {{ limit }} στοιχεία.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Μη έγκυρος αριθμός κάρτας.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Μη υποστηριζόμενος τύπος κάρτας ή μη έγκυρος αριθμός κάρτας.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Αυτό δεν αντιστοιχεί σε έκγυρο διεθνή αριθμό τραπεζικού λογαριασμού (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Αυτό δεν είναι έγκυρος κωδικός ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Αυτό δεν είναι έγκυρος κωδικός ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Αυτό δεν είναι ούτε έγκυρος κωδικός ISBN-10 ούτε έγκυρος κωδικός ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Αυτό δεν είναι έγκυρος κωδικός ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Αυτό δεν αντιστοιχεί σε έγκυρο νόμισμα.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι ίση με {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι μεγαλύτερη από {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι μεγαλύτερη ή ίση με {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι πανομοιότυπη με {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι μικρότερη από {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Αυτή η τιμή θα πρέπει να είναι μικρότερη ή ίση με {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Αυτή η τιμή δεν θα πρέπει να είναι ίση με {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Αυτή η τιμή δεν πρέπει να είναι πανομοιότυπη με {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.en.xlf b/core/vendor/symfony/validator/Resources/translations/validators.en.xlf
deleted file mode 100644
index e666c79..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.en.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>This value should be false.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>This value should be true.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>This value should be of type {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>This value should be blank.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>The value you selected is not a valid choice.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>One or more of the given values is invalid.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>This field was not expected.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>This field is missing.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>This value is not a valid date.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>This value is not a valid datetime.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>This value is not a valid email address.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>The file could not be found.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>The file is not readable.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>This value should be {{ limit }} or less.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>This value should be {{ limit }} or more.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>This value should not be blank.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>This value should not be null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>This value should be null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>This value is not valid.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>This value is not a valid time.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>This value is not a valid URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>The two values should be equal.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>The file is too large.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>The file could not be uploaded.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>This value should be a valid number.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>This file is not a valid image.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>This is not a valid IP address.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>This value is not a valid language.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>This value is not a valid locale.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>This value is not a valid country.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>This value is already used.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>The size of the image could not be detected.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>This value should be the user's current password.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>The file was only partially uploaded.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>No file was uploaded.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>No temporary folder was configured in php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Cannot write temporary file to disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>A PHP extension caused the upload to fail.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Invalid card number.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Unsupported card type or invalid card number.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>This is not a valid International Bank Account Number (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>This value is not a valid ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>This value is not a valid ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>This value is neither a valid ISBN-10 nor a valid ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>This value is not a valid ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>This value is not a valid currency.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>This value should be equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>This value should be greater than {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>This value should be greater than or equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>This value should be less than {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>This value should be less than or equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>This value should not be equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>An empty file is not allowed.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>The host could not be resolved.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>This value does not match the expected {{ charset }} charset.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.es.xlf b/core/vendor/symfony/validator/Resources/translations/validators.es.xlf
deleted file mode 100644
index d874573..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.es.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Este valor debería ser falso.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Este valor debería ser verdadero.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Este valor debería ser de tipo {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Este valor debería estar vacío.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>El valor seleccionado no es una opción válida.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Debe seleccionar al menos {{ limit }} opción.|Debe seleccionar al menos {{ limit }} opciones.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Debe seleccionar como máximo {{ limit }} opción.|Debe seleccionar como máximo {{ limit }} opciones.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Uno o más de los valores indicados no son válidos.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Este campo no se esperaba.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Este campo está desaparecido.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Este valor no es una fecha válida.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Este valor no es una fecha y hora válidas.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Este valor no es una dirección de email válida.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>No se pudo encontrar el archivo.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>No se puede leer el archivo.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>El archivo es demasiado grande ({{ size }} {{ suffix }}). El tamaño máximo permitido es {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>El tipo mime del archivo no es válido ({{ type }}). Los tipos mime válidos son {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Este valor debería ser {{ limit }} o menos.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Este valor es demasiado largo. Debería tener {{ limit }} carácter o menos.|Este valor es demasiado largo. Debería tener {{ limit }} caracteres o menos.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Este valor debería ser {{ limit }} o más.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Este valor es demasiado corto. Debería tener {{ limit }} carácter o más.|Este valor es demasiado corto. Debería tener {{ limit }} caracteres o más.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Este valor no debería estar vacío.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Este valor no debería ser nulo.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Este valor debería ser nulo.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Este valor no es válido.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Este valor no es una hora válida.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Este valor no es una URL válida.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Los dos valores deberían ser iguales.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>El archivo es demasiado grande. El tamaño máximo permitido es {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>El archivo es demasiado grande.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>No se pudo subir el archivo.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Este valor debería ser un número válido.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>El archivo no es una imagen válida.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Esto no es una dirección IP válida.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Este valor no es un idioma válido.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Este valor no es una localización válida.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Este valor no es un país válido.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Este valor ya se ha utilizado.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>No se pudo determinar el tamaño de la imagen.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>El ancho de la imagen es demasiado grande ({{ width }}px). El ancho máximo permitido es de {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>El ancho de la imagen es demasiado pequeño ({{ width }}px). El ancho mínimo requerido es {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>La altura de la imagen es demasiado grande ({{ height }}px). La altura máxima permitida es de {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>La altura de la imagen es demasiado pequeña ({{ height }}px). La altura mínima requerida es de {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Este valor debería ser la contraseña actual del usuario.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Este valor debería tener exactamente {{ limit }} carácter.|Este valor debería tener exactamente {{ limit }} caracteres.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>El archivo fue sólo subido parcialmente.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Ningún archivo fue subido.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Ninguna carpeta temporal fue configurada en php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>No se pudo escribir el archivo temporal en el disco.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Una extensión de PHP hizo que la subida fallara.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Esta colección debe contener {{ limit }} elemento o más.|Esta colección debe contener {{ limit }} elementos o más.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Esta colección debe contener {{ limit }} elemento o menos.|Esta colección debe contener {{ limit }} elementos o menos.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Esta colección debe contener exactamente {{ limit }} elemento.|Esta colección debe contener exactamente {{ limit }} elementos.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Número de tarjeta inválido.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipo de tarjeta no soportado o número de tarjeta inválido.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Esto no es un International Bank Account Number (IBAN) válido.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Este valor no es un ISBN-10 válido.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Este valor no es un ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Este valor no es ni un ISBN-10 válido ni un ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Este valor no es un ISSN válido.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Este valor no es una divisa válida.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser igual que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Este valor debería ser mayor que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser mayor o igual que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor debería ser idéntico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Este valor debería ser menor que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser menor o igual que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser distinto de {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor no debería ser idéntico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>La proporción de la imagen es demasiado grande ({{ ratio }}). La máxima proporción permitida es {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>La proporción de la imagen es demasiado pequeña ({{ ratio }}). La mínima proporción permitida es {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>La imagen es cuadrada ({{ width }}x{{ height }}px). Las imágenes cuadradas no están permitidas.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>La imagen está orientada horizontalmente ({{ width }}x{{ height }}px). Las imágenes orientadas horizontalmente no están permitidas.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>La imagen está orientada verticalmente ({{ width }}x{{ height }}px). Las imágenes orientadas verticalmente no están permitidas.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>No está permitido un archivo vacío.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>No se puede resolver el host.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>La codificación de caracteres para este valor debería ser {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.et.xlf b/core/vendor/symfony/validator/Resources/translations/validators.et.xlf
deleted file mode 100644
index d047c8b..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.et.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version='1.0'?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Väärtus peaks olema väär.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Väärtus peaks oleme tõene.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Väärtus peaks olema {{ type }}-tüüpi.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Väärtus peaks olema tühi.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Väärtus peaks olema üks etteantud valikutest.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Valima peaks vähemalt {{ limit }} valikut.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Valima peaks mitte rohkem kui  {{ limit }} valikut.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>One or more of the given values is invalid.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>See väli ei oodatud.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>See väli on puudu.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Väärtus pole korrektne kuupäev.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Väärtus pole korrektne kuupäev ja kellaeg.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Väärtus pole korrektne e-maili aadress.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Faili ei leita.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Fail ei ole loetav.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fail on liiga suur ({{ size }} {{ suffix }}). Suurim lubatud suurus on {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Faili sisutüüp on vigane ({{ type }}). Lubatud sisutüübid on {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Väärtus peaks olema {{ limit }} või vähem.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Väärtus on liiga pikk. Pikkus peaks olema {{ limit }} tähemärki või vähem.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Väärtus peaks olema {{ limit }} või rohkem.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Väärtus on liiga lühike. Pikkus peaks  olema {{ limit }} tähemärki või rohkem.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Väärtus ei tohiks olla tühi.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Väärtus ei tohiks olla 'null'.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Väärtus peaks olema 'null'.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Väärtus on vigane.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Väärtus pole korrektne aeg.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Väärtus pole korrektne URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Väärtused peaksid olema võrdsed.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fail on liiga suur. Maksimaalne lubatud suurus on {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Fail on liiga suur.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Faili ei saa üles laadida.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Väärtus peaks olema korrektne number.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Fail ei ole korrektne pilt.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>IP aadress pole korrektne.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Väärtus pole korrektne keel.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Väärtus pole korrektne asukohakeel.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Väärtus pole olemasolev riik.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Väärtust on juba kasutatud.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Pildi suurust polnud võimalik tuvastada.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Pilt on liiga lai ({{ width }}px). Suurim lubatud laius on {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Pilt on liiga kitsas ({{ width }}px). Vähim lubatud laius on {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Pilt on liiga pikk ({{ height }}px). Lubatud suurim pikkus on {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Pilt pole piisavalt pikk ({{ height }}px). Lubatud vähim pikkus on {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Väärtus peaks olema kasutaja kehtiv salasõna.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} characters.</source>
-                <target>Väärtus peaks olema täpselt {{ limit }} tähemärk pikk.|Väärtus peaks olema täpselt {{ limit }} tähemärki pikk.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Fail ei laetud täielikult üles.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Ühtegi faili ei laetud üles.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Ühtegi ajutist kausta polnud php.ini-s seadistatud.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Ajutist faili ei saa kettale kirjutada.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP laiendi tõttu ebaõnnestus faili üleslaadimine.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} elements or more.</source>
-                <target>Kogumikus peaks olema vähemalt {{ limit }} element.|Kogumikus peaks olema vähemalt {{ limit }} elementi.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} elements or less.</source>
-                <target>Kogumikus peaks olema ülimalt {{ limit }} element.|Kogumikus peaks olema ülimalt {{ limit }} elementi.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} elements.</source>
-                <target>Kogumikus peaks olema täpselt {{ limit }} element.|Kogumikus peaks olema täpselt {{ limit }}|elementi.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Vigane kaardi number.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Kaardi tüüpi ei toetata või kaardi number on vigane.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Väärtus pole korrektne IBAN-number.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Väärtus pole korrektne ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Väärtus pole korrektne ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Väärtus pole korrektne ISBN-10 ega ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Väärtus pole korrektne ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Väärtus pole korrektne valuuta.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Väärtus peaks olema võrdne {{ compared_value }}-ga.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Väärtus peaks olema suurem kui {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Väärtus peaks olema suurem kui või võrduma {{ compared_value }}-ga.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Väärtus peaks olema identne väärtusega {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Väärtus peaks olema väiksem kui {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Väärtus peaks olema väiksem kui või võrduma {{ compared_value }}-ga.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Väärtus ei tohiks võrduda {{ compared_value }}-ga.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Väärtus ei tohiks olla identne väärtusega {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.eu.xlf b/core/vendor/symfony/validator/Resources/translations/validators.eu.xlf
deleted file mode 100644
index b2edefd..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.eu.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Balio hau faltsua izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Balio hau egia izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Balio hau {{ type }} motakoa izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Balio hau hutsik egon beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Hautatu duzun balioa ez da aukera egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Gutxienez aukera {{ limit }} hautatu behar duzu.|Gutxienez {{ limit }} aukera hautatu behar dituzu.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Gehienez aukera {{ limit }} hautatu behar duzu.|Gehienez {{ limit }} aukera hautatu behar dituzu.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Emandako balioetatik gutxienez bat ez da egokia.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Eremu hau ez zen espero.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Eremu hau falta da.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Balio hau ez da data egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Balio hau ez da data-ordu egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Balio hau ez da posta elektroniko egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Ezin izan da fitxategia aurkitu.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Fitxategia ez da irakurgarria.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fitxategia handiegia da ({{ size }} {{ suffix }}). Baimendutako tamaina handiena {{ limit }} {{ suffix }} da.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Fitxategiaren mime mota ez da egokia ({{ type }}). Hauek dira baimendutako mime motak: {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Balio hau gehienez {{ limit }} izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Balio hau luzeegia da. Gehienez karaktere {{ limit }} eduki beharko luke.|Balio hau luzeegia da. Gehienez {{ limit }} karaktere eduki beharko lituzke.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Balio hau gutxienez {{ limit }} izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Balio hau motzegia da. Karaktere {{ limit }} gutxienez eduki beharko luke.|Balio hau motzegia da. Gutxienez {{ limit }} karaktere eduki beharko lituzke.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Balio hau ez litzateke hutsik egon behar.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Balio hau ez litzateke nulua izan behar.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Balio hau nulua izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Balio hau ez da egokia.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Balio hau ez da ordu egoki bat.</target>
-           </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Balio hau ez da baliabideen kokatzaile uniforme (URL) egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Bi balioak berdinak izan beharko lirateke.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fitxategia handiegia da. Baimendutako tamaina handiena {{ limit }} {{ suffix }} da.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Fitxategia handiegia da.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Ezin izan da fitxategia igo.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Balio hau zenbaki egoki bat izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Fitxategi hau ez da irudi egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Honako hau ez da IP helbide egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Balio hau ez da hizkuntza egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Balio hau ez da kokapen egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Balio hau ez da herrialde egoki bat.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Balio hau jadanik erabilia izan da.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Ezin izan da irudiaren tamaina detektatu.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Irudiaren zabalera handiegia da ({{ width }}px). Onartutako gehienezko zabalera {{ max_width }}px dira.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Irudiaren zabalera txikiegia da ({{ width }}px). Onartutako gutxieneko zabalera {{ min_width }}px dira.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Irudiaren altuera handiegia da ({{ height }}px). Onartutako gehienezko altuera {{ max_height }}px dira.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Irudiaren altuera txikiegia da ({{ height }}px). Onartutako gutxieneko altuera {{ min_height }}px dira.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Balio hau uneko erabiltzailearen pasahitza izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Balio honek zehazki karaktere {{ limit }} izan beharko luke.|Balio honek zehazki {{ limit }} karaktere izan beharko lituzke.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Fitxategiaren zati bat bakarrik igo da.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Ez da fitxategirik igo.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Ez da aldi baterako karpetarik konfiguratu php.ini fitxategian.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Ezin izan da aldi baterako fitxategia diskoan idatzi.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP luzapen batek igoeraren hutsa eragin du.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Bilduma honek gutxienez elementu {{ limit }} eduki beharko luke.|Bilduma honek gutxienez {{ limit }} elementu eduki beharko lituzke.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Bilduma honek gehienez elementu {{ limit }} eduki beharko luke.|Bilduma honek gehienez {{ limit }} elementu eduki beharko lituzke.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Bilduma honek zehazki elementu {{ limit }} eduki beharko luke.|Bilduma honek zehazki {{ limit }} elementu eduki beharko lituzke.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Txartel zenbaki baliogabea.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Txartel mota onartezina edo txartel zenbaki baliogabea.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Hau ez da baliozko banku internazionaleko kontu zenbaki (IBAN) bat.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Balio hau ez da onartutako ISBN-10 bat.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Balio hau ez da onartutako ISBN-13 bat.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Balio hau ez da onartutako ISBN-10 edo ISBN-13 bat.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Balio hau ez da onartutako ISSN bat.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Balio hau ez da baliozko moneta bat.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Balio hau {{ compared_value }}-(r)en berbera izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Balio hau {{ compared_value }} baino handiagoa izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Balio hau {{ compared_value }}-(r)en berdina edota handiagoa izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Balio hau {{ compared_value_type }} {{ compared_value }}-(r)en berbera izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Balio hau {{ compared_value }} baino txikiagoa izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Balio hau {{ compared_value }}-(r)en berdina edota txikiagoa izan beharko litzateke.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Balio hau ez litzateke {{ compared_value }}-(r)en berdina izan behar.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Balio hau ez litzateke {{ compared_value_type }} {{ compared_value }}-(r)en berbera izan behar.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.fa.xlf b/core/vendor/symfony/validator/Resources/translations/validators.fa.xlf
deleted file mode 100644
index 98b4bd6..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.fa.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target state="needs-review-translation">این مقدار باید نادرست(False) باشد.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>این مقدار باید درست(True) باشد.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>این مقدار باید از نوع {{ type }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>این فیلد باید خالی باشد.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>گزینه انتخابی معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>باید حداقل {{ limit }} گزینه انتخاب کنید.|باید حداقل {{ limit }} گزینه انتخاب کنید.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>حداکثر {{ limit }} گزینه می توانید انتخاب کنید.|حداکثر {{ limit }} گزینه می توانید انتخاب کنید.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>یک یا چند مقدار نامعتبر وجود دارد.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>The fields {{ fields }} were not expected.</source>
-                <target>فیلدهای {{ fields }} اضافی هستند.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>The fields {{ fields }} are missing.</source>
-                <target>فیلدهای {{ fields }} کم هستند.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>این مقدار یک تاریخ معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>این مقدار یک تاریخ و زمان معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>این یک رایانامه معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>فایل پیدا نشد.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>فایل قابلیت خواندن ندارد.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>فایل بیش از اندازه بزرگ است({{ size }} {{ suffix }}). حداکثر اندازه مجاز برابر {{ limit }} {{ suffix }} است.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>این نوع فایل مجاز نیست({{ type }}). نوع های مجاز {{ types }} هستند.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>این مقدار باید کوچکتر یا مساوی {{ limit }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>بسیار طولانی است.حداکثر تعداد حروف مجاز برابر {{ limit }} است.|بسیار طولانی است.حداکثر تعداد حروف مجاز برابر {{ limit }} است.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>این مقدار باید برابر و یا بیشتر از {{ limit }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>بسیار کوتاه است.تعداد حروف باید حداقل {{ limit }} باشد.|بسیار کوتاه است.تعداد حروف باید حداقل {{ limit }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>این مقدار نباید تهی باشد.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>باید مقداری داشته باشد..</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>نباید مقداری داشته باشد.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>این مقدار معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>این مقدار یک زمان صحیح نیست.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>این یک URL معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>دو مقدار باید برابر باشند.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>فایل بیش از اندازه بزرگ است. حداکثر اندازه مجاز برابر {{ limit }} {{ suffix }} است.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>فایل بیش از اندازه بزرگ است.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>بارگذاری فایل با شکست مواجه شد.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>این مقدار باید یک عدد معتبر باشد.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>این فایل یک تصویر نیست.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>این مقدار یک IP معتبر نیست.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>این مقدار یک زبان صحیح نیست.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>این مقدار یک محل صحیح نیست.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>این مقدار یک کشور صحیح نیست.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>این مقدار قبلا مورد استفاده قرار گرفته است.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>اندازه تصویر قابل شناسایی نیست.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>طول تصویر بسیار بزرگ است ({{ width }}px). بشینه طول مجاز {{ max_width }}px است.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>طول تصویر بسیار کوچک است ({{ width }}px). کمینه طول موردنظر {{ min_width }}px است.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>ارتفاع تصویر بسیار بزرگ است ({{ height }}px). بشینه ارتفاع مجاز {{ max_height }}px است.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>ارتفاع تصویر بسیار کوچک است ({{ height }}px). کمینه ارتفاع موردنظر {{ min_height }}px است.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>این مقدار می بایست کلمه عبور کنونی کاربر باشد.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target> این مقدار می بایست دقیقا {{ limit }} کاراکتر داشته باشد.| این مقدار می بایست دقیقا {{ limit }} کاراکتر داشته باشد.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>فایل به صورت جزیی بارگذاری شده است.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>هیچ فایلی بارگذاری نشد.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>فولدر موقت در php.ini پیکربندی نشده است.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>فایل موقت را نمی توان در دیسک نوشت.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>اکستنشن PHP موجب شد که بارگذاری فایل با شکست مواجه شود.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>این مجموعه می بایست دارای {{ limit }} عنصر یا بیشتر باشد.|این مجموعه می بایست دارای {{ limit }} عنصر یا بیشتر باشد.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>این مجموعه می بایست دارای حداقل {{ limit }} عنصر یا کمتر باشد.|این مجموعه می بایست دارای {{ limit }} عنصر یا کمتر باشد.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>این مجموعه می بایست به طور دقیق دارا {{ limit }} عنصر باشد.|این مجموعه می بایست به طور دقیق دارای {{ limit }} قلم باشد.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>شماره کارت نامعتبر است.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>نوع کارت پشتیبانی نمی شود یا شماره کارت نامعتبر است.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>این یک شماره حساب بین المللی بانک (IBAN) درست نیست.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>این مقدار یک ISBN-10 درست نیست.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>این مقدار یک ISBN-13 درست نیست.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>این مقدار یک ISBN-10 درست یا ISBN-13 درست نیست.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>این مقدار یک ISSN درست نیست.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>این مقدار یک یکای پول درست نیست.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>این مقدار باید برابر با {{ compared_value }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>این مقدار باید از {{ compared_value }} بیشتر باشد.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>این مقدار باید بزرگتر یا مساوی با {{ compared_value }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>این مقدار باید با {{ compared_value_type }} {{ compared_value }} یکی باشد.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>این مقدار باید کمتر از {{ compared_value }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>این مقدار باید کمتر یا مساوی با {{ compared_value }} باشد.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>این مقدار نباید با {{ compared_value }} برابر باشد.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>این مقدار نباید {{ compared_value_type }} {{ compared_value }} یکی باشد.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.fi.xlf b/core/vendor/symfony/validator/Resources/translations/validators.fi.xlf
deleted file mode 100644
index 3f5a07e..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.fi.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Arvon tulee olla epätosi.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Arvon tulee olla tosi.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Arvon tulee olla tyyppiä {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Arvon tulee olla tyhjä.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Arvon tulee olla yksi annetuista vaihtoehdoista.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Sinun tulee valita vähintään {{ limit }} vaihtoehtoa.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Sinun tulee valitan enintään {{ limit }} vaihtoehtoa.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Yksi tai useampi annetuista arvoista on virheellinen.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Tässä kentässä ei odotettu.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Tämä kenttä puuttuu.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Annettu arvo ei ole kelvollinen päivämäärä.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Annettu arvo ei ole kelvollinen päivämäärä ja kellonaika.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Annettu arvo ei ole kelvollinen sähköpostiosoite.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Tiedostoa ei löydy.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Tiedostoa ei voida lukea.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Tiedostonkoko ({{ size }} {{ suffix }}) on liian iso. Suurin sallittu tiedostonkoko on {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Tiedostotyyppi ({{ type }}) on virheellinen. Sallittuja tiedostotyyppejä ovat {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Arvon tulee olla {{ limit }} tai vähemmän.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Liian pitkä syöte. Syöte saa olla enintään {{ limit }} merkkiä.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Arvon tulee olla {{ limit }} tai enemmän.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Liian lyhyt syöte. Syötteen tulee olla vähintään {{ limit }} merkkiä.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Kenttä ei voi olla tyhjä.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Syöte ei voi olla null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Syötteen tulee olla null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Virheellinen arvo.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Annettu arvo ei ole kelvollinen kellonaika.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Annettu arvo ei ole kelvollinen URL-osoite.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Kahden annetun arvon tulee olla samat.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Annettu tiedosto on liian iso. Suurin sallittu tiedostokoko on {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Tiedosto on liian iso.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Tiedoston siirto epäonnistui.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Tämän arvon tulee olla numero.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Tämä tiedosto ei ole kelvollinen kuva.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Tämä ei ole kelvollinen IP-osoite.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Tämä arvo ei ole kelvollinen kieli.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Tämä arvo ei ole kelvollinen kieli- ja alueasetus (locale).</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Tämä arvo ei ole kelvollinen maa.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Tämä arvo on jo käytetty.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Kuvan kokoa ei voitu tunnistaa.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Kuva on liian leveä ({{ width }}px). Sallittu maksimileveys on {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Kuva on liian kapea ({{ width }}px). Leveyden tulisi olla vähintään {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Kuva on liian korkea ({{ width }}px). Sallittu maksimikorkeus on {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Kuva on liian matala ({{ height }}px). Korkeuden tulisi olla vähintään {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Tämän arvon tulisi olla käyttäjän tämänhetkinen salasana.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Tämän arvon tulisi olla tasan yhden merkin pituinen.|Tämän arvon tulisi olla tasan {{ limit }} merkkiä pitkä.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Tiedosto ladattiin vain osittain.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Tiedostoa ei ladattu.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Väliaikaishakemistoa ei ole asetettu php.ini -tiedostoon.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Väliaikaistiedostoa ei voitu kirjoittaa levylle.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP-laajennoksen vuoksi tiedoston lataus epäonnistui.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Tässä ryhmässä tulisi olla yksi tai useampi elementti.|Tässä ryhmässä tulisi olla vähintään {{ limit }} elementtiä.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Tässä ryhmässä tulisi olla enintään yksi elementti.|Tässä ryhmässä tulisi olla enintään {{ limit }} elementtiä.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Tässä ryhmässä tulisi olla tasan yksi elementti.|Tässä ryhmässä tulisi olla enintään {{ limit }} elementtiä.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Virheellinen korttinumero.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tätä korttityyppiä ei tueta tai korttinumero on virheellinen.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.fr.xlf b/core/vendor/symfony/validator/Resources/translations/validators.fr.xlf
deleted file mode 100644
index b50ecbc..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.fr.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Cette valeur doit être fausse.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Cette valeur doit être vraie.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Cette valeur doit être de type {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Cette valeur doit être vide.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Cette valeur doit être l'un des choix proposés.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Vous devez sélectionner au moins {{ limit }} choix.|Vous devez sélectionner au moins {{ limit }} choix.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Vous devez sélectionner au maximum {{ limit }} choix.|Vous devez sélectionner au maximum {{ limit }} choix.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Une ou plusieurs des valeurs soumises sont invalides.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Ce champ n'a pas été prévu.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Ce champ est manquant.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Cette valeur n'est pas une date valide.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Cette valeur n'est pas une date valide.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Cette valeur n'est pas une adresse email valide.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Le fichier n'a pas été trouvé.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Le fichier n'est pas lisible.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Le fichier est trop volumineux ({{ size }} {{ suffix }}). Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Le type du fichier est invalide ({{ type }}). Les types autorisés sont {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Cette valeur doit être inférieure ou égale à {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Cette chaine est trop longue. Elle doit avoir au maximum {{ limit }} caractère.|Cette chaine est trop longue. Elle doit avoir au maximum {{ limit }} caractères.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Cette valeur doit être supérieure ou égale à {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Cette chaine est trop courte. Elle doit avoir au minimum {{ limit }} caractère.|Cette chaine est trop courte. Elle doit avoir au minimum {{ limit }} caractères.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Cette valeur ne doit pas être vide.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Cette valeur ne doit pas être nulle.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Cette valeur doit être nulle.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Cette valeur n'est pas valide.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Cette valeur n'est pas une heure valide.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Cette valeur n'est pas une URL valide.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Les deux valeurs doivent être identiques.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Le fichier est trop volumineux. Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Le fichier est trop volumineux.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Le téléchargement de ce fichier est impossible.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Cette valeur doit être un nombre.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ce fichier n'est pas une image valide.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Cette adresse IP n'est pas valide.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Cette langue n'est pas valide.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Ce paramètre régional n'est pas valide.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Ce pays n'est pas valide.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Cette valeur est déjà utilisée.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>La taille de l'image n'a pas pu être détectée.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>La largeur de l'image est trop grande ({{ width }}px). La largeur maximale autorisée est de {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>La largeur de l'image est trop petite ({{ width }}px). La largeur minimale attendue est de {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>La hauteur de l'image est trop grande ({{ height }}px). La hauteur maximale autorisée est de {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>La hauteur de l'image est trop petite ({{ height }}px). La hauteur minimale attendue est de {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Cette valeur doit être le mot de passe actuel de l'utilisateur.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Cette chaine doit avoir exactement {{ limit }} caractère.|Cette chaine doit avoir exactement {{ limit }} caractères.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Le fichier a été partiellement transféré.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Aucun fichier n'a été transféré.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Aucun répertoire temporaire n'a été configuré dans le php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Impossible d'écrire le fichier temporaire sur le disque.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Une extension PHP a empêché le transfert du fichier.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Cette collection doit contenir {{ limit }} élément ou plus.|Cette collection doit contenir {{ limit }} éléments ou plus.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Cette collection doit contenir {{ limit }} élément ou moins.|Cette collection doit contenir {{ limit }} éléments ou moins.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Cette collection doit contenir exactement {{ limit }} élément.|Cette collection doit contenir exactement {{ limit }} éléments.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Numéro de carte invalide.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Type de carte non supporté ou numéro invalide.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Le numéro IBAN (International Bank Account Number) saisi n'est pas valide.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Cette valeur n'est pas un code ISBN-10 valide.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Cette valeur n'est pas un code ISBN-13 valide.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Cette valeur n'est ni un code ISBN-10, ni un code ISBN-13 valide.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Cette valeur n'est pas un code ISSN valide.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Cette valeur n'est pas une devise valide.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Cette valeur doit être égale à {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Cette valeur doit être supérieure à {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Cette valeur doit être supérieure ou égale à {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Cette valeur doit être identique à {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Cette valeur doit être inférieure à {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Cette valeur doit être inférieure ou égale à {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Cette valeur ne doit pas être égale à {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Cette valeur ne doit pas être identique à {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Le rapport largeur/hauteur de l'image est trop grand ({{ ratio }}). Le rapport maximal autorisé est {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Le rapport largeur/hauteur de l'image est trop petit ({{ ratio }}). Le rapport minimal attendu est {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>L'image est carrée ({{ width }}x{{ height }}px). Les images carrées ne sont pas autorisées.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>L'image est au format paysage ({{ width }}x{{ height }}px). Les images au format paysage ne sont pas autorisées.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>L'image est au format portrait ({{ width }}x{{ height }}px). Les images au format portrait ne sont pas autorisées.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Un fichier vide n'est pas autorisé.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Le nom de domaine n'a pas pu être résolu.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Cette valeur ne correspond pas au jeu de caractères {{ charset }} attendu.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.gl.xlf b/core/vendor/symfony/validator/Resources/translations/validators.gl.xlf
deleted file mode 100644
index 1d0cc13..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.gl.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Este valor debería ser falso.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Este valor debería ser verdadeiro.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Este valor debería ser de tipo {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Este valor debería estar baleiro.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>O valor seleccionado non é unha opción válida.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Debe seleccionar polo menos {{ limit }} opción.|Debe seleccionar polo menos {{ limit }} opcions.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Debe seleccionar como máximo {{ limit }} opción.|Debe seleccionar como máximo {{ limit }} opcions.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Un ou máis dos valores indicados non son válidos.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Este campo non era esperado.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Este campo falta.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Este valor non é unha data válida.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Este valor non é unha data e hora válidas.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Este valor non é unha dirección de correo electrónico válida.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Non se puido atopar o arquivo.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>O arquivo non se pode ler.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>O arquivo é demasiado grande ({{ size }} {{ suffix }}). O tamaño máximo permitido é {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>O tipo mime do arquivo non é válido ({{ type }}). Os tipos mime válidos son {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Este valor debería ser {{ limit }} ou menos.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Este valor é demasiado longo. Debería ter {{ limit }} carácter ou menos.|Este valor é demasiado longo. Debería ter {{ limit }} caracteres ou menos.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Este valor debería ser {{ limit }} ou máis.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Este valor é demasiado curto. Debería ter {{ limit }} carácter ou máis.|Este valor é demasiado corto. Debería ter {{ limit }} caracteres ou máis.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Este valor non debería estar baleiro.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Este valor non debería ser null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Este valor debería ser null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Este valor non é válido.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Este valor non é unha hora válida.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Este valor non é unha URL válida.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Os dous valores deberían ser iguais.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>O arquivo é demasiado grande. O tamaño máximo permitido é {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>O arquivo é demasiado grande.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>No se puido cargar o arquivo.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Este valor debería ser un número válido.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>O arquivo non é unha imaxe válida.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Isto non é unha dirección IP válida.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Este valor non é un idioma válido.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Este valor non é unha localización válida.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Este valor non é un país válido.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Este valor xa está a ser empregado.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Non se puido determinar o tamaño da imaxe.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>A largura da imaxe é demasiado grande ({{ width }}px). A largura máxima permitida son {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>A largura da imaxe é demasiado pequena ({{ width }}px). A largura mínima requerida son {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>A altura da imaxe é demasiado grande ({{ height }}px). A altura máxima permitida son {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>A altura da imaxe é demasiado pequena ({{ height }}px). A altura mínima requerida son {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Este valor debería ser a contrasinal actual do usuario.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Este valor debería ter exactamente {{ limit }} carácter.|Este valor debería ter exactamente {{ limit }} caracteres.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>O arquivo foi só subido parcialmente.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Non se subiu ningún arquivo.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Ningunha carpeta temporal foi configurada en php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Non se puido escribir o arquivo temporal no disco.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Unha extensión de PHP provocou que a subida fallara.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Esta colección debe conter {{ limit }} elemento ou máis.|Esta colección debe conter {{ limit }} elementos ou máis.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Esta colección debe conter {{ limit }} elemento ou menos.|Esta colección debe conter {{ limit }} elementos ou menos.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Esta colección debe conter exactamente {{ limit }} elemento.|Esta colección debe conter exactamente {{ limit }} elementos.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Número de tarxeta non válido.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipo de tarxeta non soportado ou número de tarxeta non válido.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Este valor non é un International Bank Account Number (IBAN) válido.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Este valor non é un ISBN-10 válido.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Este valor non é un ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Este valor non é nin un ISBN-10 válido nin un ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Este valor non é un ISSN válido.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Este valor non é unha moeda válida.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Este valor debería ser maior que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser maior ou igual que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor debería ser identico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Este valor debería ser menor que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Este valor debería ser menor ou igual que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Este valor non debería ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor non debería ser identico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>A proporción da imaxe é demasiado grande ({{ ratio }}). A proporción máxima permitida é {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>A proporción da é demasiado pequena ({{ ratio }}). A proporción mínima permitida é {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>A imaxe é cadrada ({{ width }}x{{ height }}px). As imáxenes cadradas non están permitidas.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>A imaxe está orientada horizontalmente ({{ width }}x{{ height }}px). As imáxenes orientadas horizontalmente non están permitidas.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>A imaxe está orientada verticalmente ({{ width }}x{{ height }}px). As imáxenes orientadas verticalmente non están permitidas.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Non está permitido un arquivo baleiro.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Non se puido resolver o host.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>A codificación de caracteres para este valor debería ser {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.he.xlf b/core/vendor/symfony/validator/Resources/translations/validators.he.xlf
deleted file mode 100644
index 6510514..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.he.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>הערך צריך להיות שקר.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>הערך צריך להיות אמת.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>הערך צריך להיות מסוג {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>הערך צריך להיות ריק.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>הערך שבחרת אינו חוקי.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>אתה צריך לבחור לפחות {{ limit }} אפשרויות.|אתה צריך לבחור לפחות {{ limit }} אפשרויות.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>אתה צריך לבחור לכל היותר {{ limit }} אפשרויות.|אתה צריך לבחור לכל היותר {{ limit }} אפשרויות.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>אחד או יותר מהערכים אינו חוקי.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>שדה זה לא היה צפוי</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>שדה זה חסר.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>הערך אינו תאריך חוקי.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>הערך אינו תאריך ושעה חוקיים.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>כתובת המייל אינה תקינה.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>הקובץ לא נמצא.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>לא ניתן לקרוא את הקובץ.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>הקובץ גדול מדי ({{ size }} {{ suffix }}). הגודל המרבי המותר הוא {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>סוג MIME של הקובץ אינו חוקי ({{ type }}). מותרים סוגי MIME {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>הערך צריל להכיל {{ limit }} תווים לכל היותר.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>הערך ארוך מידי. הוא צריך להכיל {{ limit }} תווים לכל היותר.|הערך ארוך מידי. הוא צריך להכיל {{ limit }} תווים לכל היותר.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>הערך צריך להכיל {{ limit }} תווים לפחות.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>הערך קצר מידיץ הוא צריך להכיל {{ limit }} תווים לפחות.|הערך קצר מידיץ הוא צריך להכיל {{ limit }} תווים לפחות.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>הערך לא אמור להיות ריק.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>הערך לא אמור להיות ריק.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>הערך צריך להיות ריק.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>הערך אינו חוקי.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>הערך אינו זמן תקין.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>זאת אינה כתובת אתר תקינה.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>שני הערכים צריכים להיות שווים.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>הקובץ גדול מדי. הגודל המרבי המותר הוא {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>הקובץ גדול מדי.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>לא ניתן לעלות את הקובץ.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>הערך צריך להיות מספר חוקי.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>הקובץ הזה אינו תמונה תקינה.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>זו אינה כתובת IP חוקית.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>הערך אינו שפה חוקית.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>הערך אינו אזור תקף.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>הערך אינו ארץ חוקית.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>הערך כבר בשימוש.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>לא ניתן לקבוע את גודל התמונה.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>רוחב התמונה גדול מדי ({{ width }}px). הרוחב המקסימלי הוא {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>רוחב התמונה קטן מדי ({{ width }}px). הרוחב המינימלי הוא {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>גובה התמונה גדול מדי ({{ height }}px). הגובה המקסימלי הוא {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>גובה התמונה קטן מדי ({{ height }}px). הגובה המינימלי הוא {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>הערך צריך להיות סיסמת המשתמש הנוכחי.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>הערך צריך להיות בדיוק {{ limit }} תווים.|הערך צריך להיות בדיוק {{ limit }} תווים.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>הקובץ הועלה באופן חלקי.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>הקובץ לא הועלה.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>לא הוגדרה תיקייה זמנית ב php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>לא ניתן לכתוב קובץ זמני לדיסק.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>סיומת PHP גרם להעלאה להיכשל.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>האוסף אמור להכיל {{ limit }} אלמנטים או יותר.|האוסף אמור להכיל {{ limit }} אלמנטים או יותר.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>האוסף אמור להכיל {{ limit }} אלמנטים או פחות.|האוסף אמור להכיל {{ limit }} אלמנטים או פחות.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>האוסף צריך להכיל בדיוק {{ limit }} אלמנטים.|האוסף צריך להכיל בדיוק {{ limit }} אלמנטים.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>מספר הכרטיס אינו חוקי.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>סוג הכרטיס אינו נתמך או לא חוקי.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>This is not a valid International Bank Account Number (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>This value is not a valid ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>This value is not a valid ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>This value is neither a valid ISBN-10 nor a valid ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>This value is not a valid ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>This value is not a valid currency.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>This value should be equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>This value should be greater than {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>This value should be greater than or equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>This value should be less than {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>This value should be less than or equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>This value should not be equal to {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>An empty file is not allowed.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.hr.xlf b/core/vendor/symfony/validator/Resources/translations/validators.hr.xlf
deleted file mode 100644
index a11e825..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.hr.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Ova vrijednost treba biti netočna (false).</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Ova vrijednost treba biti točna (true).</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Ova vrijednost treba biti tipa {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Ova vrijednost treba biti prazna.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Ova vrijednost treba biti jedna od ponuđenih.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Izaberite barem {{ limit }} mogućnosti.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Izaberite najviše {{ limit }} mogućnosti.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Jedna ili više danih vrijednosti nije ispravna.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Ovo polje nije očekivalo.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Ovo polje nedostaje.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Ova vrijednost nije ispravan datum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Ova vrijednost nije ispravan datum-vrijeme.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Ova vrijednost nije ispravna e-mail adresa.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Datoteka ne može biti pronađena.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Datoteka nije čitljiva.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Datoteka je prevelika ({{ size }} {{ suffix }}). Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mime tip datoteke nije ispravan ({{ type }}). Dozvoljeni mime tipovi su {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Ova vrijednost treba biti {{ limit }} ili manje.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Ova vrijednost je predugačka. Treba imati {{ limit }} znakova ili manje.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Ova vrijednost treba biti {{ limit }} ili više.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Ova vrijednost je prekratka. Treba imati {{ limit }} znakova ili više.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Ova vrijednost ne smije biti prazna.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Ova vrijednost ne smije biti null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Ova vrijednost treba biti null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Ova vrijednost nije ispravna.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Ova vrijednost nije ispravno vrijeme.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Ova vrijednost nije ispravan URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Obje vrijednosti trebaju biti jednake.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Ova datoteka je prevelika. Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Ova datoteka je prevelika.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Ova datoteka ne može biti prenesena.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Ova vrijednost treba biti ispravan broj.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ova datoteka nije ispravna slika.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Ovo nije ispravna IP adresa.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Ova vrijednost nije ispravan jezik.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Ova vrijednost nije ispravana regionalna oznaka.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Ova vrijednost nije ispravna zemlja.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Ova vrijednost je već iskorištena.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Veličina slike se ne može odrediti.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Širina slike je prevelika ({{ width }}px). Najveća dozvoljena širina je {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Širina slike je premala ({{ width }}px). Najmanja dozvoljena širina je {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Visina slike je prevelika ({{ height }}px). Najveća dozvoljena visina je {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Visina slike je premala ({{ height }}px). Najmanja dozvoljena visina je {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Ova vrijednost treba biti trenutna korisnička lozinka.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Ova vrijednost treba imati točno {{ limit }} znakova.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Datoteka je samo djelomično prenesena.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Niti jedna datoteka nije prenesena.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>U php.ini datoteci nije konfiguriran privremeni folder.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Ne mogu zapisati privremenu datoteku na disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Prijenos datoteke nije uspio zbog PHP ekstenzije.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ova kolekcija treba sadržavati {{ limit }} ili više elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili više elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili više elemenata.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ova kolekcija treba sadržavati {{ limit }} ili manje elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili manje elemenata.|Ova kolekcija treba sadržavati {{ limit }} ili manje elemenata.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ova kolekcija treba sadržavati točno {{ limit }} element.|Ova kolekcija treba sadržavati točno {{ limit }} elementa.|Ova kolekcija treba sadržavati točno {{ limit }} elemenata.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Neispravan broj kartice.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Neispravan broj kartice ili tip kartice nije podržan.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Ova vrijednost nije ispravan međunarodni broj bankovnog računa (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Ova vrijednost nije ispravan ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Ova vrijednost nije ispravan ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Ova vrijednost nije ispravan ISBN-10 niti ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Ova vrijednost nije ispravan ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Ova vrijednost nije ispravna valuta.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ova vrijednost bi trebala biti jednaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ova vrijednost bi trebala biti veća od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ova vrijednost bi trebala biti veća ili jednaka od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ova vrijednost bi trebala biti {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ova vrijednost bi trebala biti manja od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ova vrijednost bi trebala biti manja ili jednaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ova vrijednost ne bi trebala biti {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ova vrijednost ne bi trebala biti {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.hu.xlf b/core/vendor/symfony/validator/Resources/translations/validators.hu.xlf
deleted file mode 100644
index a972c02..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.hu.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Ennek az értéknek hamisnak kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Ennek az értéknek igaznak kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Ennek az értéknek {{ type }} típusúnak kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Ennek az értéknek üresnek kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>A választott érték érvénytelen.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Legalább {{ limit }} értéket kell kiválasztani.|Legalább {{ limit }} értéket kell kiválasztani.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Legfeljebb {{ limit }} értéket lehet kiválasztani.|Legfeljebb {{ limit }} értéket lehet kiválasztani.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>A megadott értékek közül legalább egy érvénytelen.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Nem várt mező.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Ez a mező hiányzik.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Ez az érték nem egy érvényes dátum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Ez az érték nem egy érvényes időpont.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Ez az érték nem egy érvényes e-mail cím.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>A fájl nem található.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>A fájl nem olvasható.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>A fájl túl nagy ({{ size }} {{ suffix }}). A legnagyobb megengedett méret {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>A fájl MIME típusa érvénytelen ({{ type }}). Az engedélyezett MIME típusok: {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Ez az érték legfeljebb {{ limit }} lehet.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Ez az érték túl hosszú. Legfeljebb {{ limit }} karaktert tartalmazhat.|Ez az érték túl hosszú. Legfeljebb {{ limit }} karaktert tartalmazhat.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Ez az érték legalább {{ limit }} kell, hogy legyen.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Ez az érték túl rövid. Legalább {{ limit }} karaktert kell tartalmaznia.|Ez az érték túl rövid. Legalább {{ limit }} karaktert kell tartalmaznia.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Ez az érték nem lehet üres.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Ez az érték nem lehet null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Ennek az értéknek nullnak kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Ez az érték nem érvényes.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Ez az érték nem egy érvényes időpont.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Ez az érték nem egy érvényes URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>A két értéknek azonosnak kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>A fájl túl nagy. A megengedett maximális méret: {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>A fájl túl nagy.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>A fájl nem tölthető fel.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Ennek az értéknek érvényes számnak kell lennie.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ez a fájl nem egy érvényes kép.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Ez az érték nem egy érvényes IP cím.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Ez az érték nem egy érvényes nyelv.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Ez az érték nem egy érvényes területi beállítás.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Ez az érték nem egy érvényes ország.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Ez az érték már használatban van.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>A kép méretét nem lehet megállapítani.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>A kép szélessége túl nagy ({{ width }}px). A megengedett legnagyobb szélesség {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>A kép szélessége túl kicsi ({{ width }}px). Az elvárt legkisebb szélesség {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>A kép magassága túl nagy ({{ height }}px). A megengedett legnagyobb magasság {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>A kép magassága túl kicsi ({{ height }}px). Az elvárt legkisebb magasság {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Ez az érték a felhasználó jelenlegi jelszavával kell megegyezzen.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Ennek az értéknek pontosan {{ limit }} karaktert kell tartalmaznia.|Ennek az értéknek pontosan {{ limit }} karaktert kell tartalmaznia.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>A fájl csak részben lett feltöltve.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nem lett fájl feltöltve.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nincs ideiglenes könyvtár beállítva a php.ini-ben.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Az ideiglenes fájl nem írható a lemezre.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Egy PHP bővítmény miatt a feltöltés nem sikerült.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ennek a gyűjteménynek legalább {{ limit }} elemet kell tartalmaznia.|Ennek a gyűjteménynek legalább {{ limit }} elemet kell tartalmaznia.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ez a gyűjtemény legfeljebb {{ limit }} elemet tartalmazhat.|Ez a gyűjtemény legfeljebb {{ limit }} elemet tartalmazhat.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ennek a gyűjteménynek pontosan {{ limit }} elemet kell tartalmaznia.|Ennek a gyűjteménynek pontosan {{ limit }} elemet kell tartalmaznia.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Érvénytelen kártyaszám.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nem támogatott kártyatípus vagy érvénytelen kártyaszám.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Érvénytelen nemzetközi bankszámlaszám (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Ez az érték nem egy érvényes ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Ez az érték nem egy érvényes ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Ez az érték nem egy érvényes ISBN-10 vagy ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Ez az érték nem egy érvényes ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Ez az érték nem egy érvényes pénznem.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ez az érték legyen {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ez az érték nagyobb legyen, mint {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ez az érték nagyobb vagy egyenlő legyen, mint {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ez az érték ugyanolyan legyen, mint {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ez az érték kisebb legyen, mint {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ez az érték kisebb vagy egyenlő legyen, mint {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ez az érték ne legyen {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ez az érték ne legyen ugyanolyan, mint {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>A képarány túl nagy ({{ ratio }}). A megengedett legnagyobb képarány {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>A képarány túl kicsi ({{ ratio }}). A megengedett legkisebb képarány {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>A kép négyzet alakú ({{ width }}x{{ height }}px). A négyzet alakú képek nem engedélyezettek.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>A kép fekvő tájolású ({{ width }}x{{ height }}px). A fekvő tájolású képek nem engedélyezettek.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>A kép álló tájolású ({{ width }}x{{ height }}px). Az álló tájolású képek nem engedélyezettek.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Üres fájl nem megengedett.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Az állomásnevet nem lehet feloldani.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Ez az érték nem az elvárt {{ charset }} karakterkódolást használja.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.hy.xlf b/core/vendor/symfony/validator/Resources/translations/validators.hy.xlf
deleted file mode 100644
index 664c085..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.hy.xlf
+++ /dev/null
@@ -1,187 +0,0 @@
-﻿<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Արժեքը պետք է լինի կեղծ.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Արժեքը պետք է լինի ճշմարիտ.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Արժեքը պետք է լինի {{ type }} տեսակի.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Արժեքը պետք է լինի դատարկ.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Ձեր ընտրած արժեքը անթույլատրելի է.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Դուք պետք է ընտրեք ամենաքիչը {{ limit }} տարբերակներ.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Դուք պետք է ընտրեք ոչ ավելի քան {{ limit }} տարբերակներ.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Մեկ կամ ավելի տրված արժեքները անթույլատրելի են.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Այս դաշտը չի սպասվում.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Այս դաշտը բացակայում է.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Արժեքը սխալ ամսաթիվ է.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Ամսաթվի և ժամանակի արժեքը անթույլատրելի է.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Էլ-փոստի արժեքը անթույլատրելի է.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Ֆայլը չի գտնվել.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Ֆայլը անընթեռնելի է.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Ֆայլը չափազանց մեծ է ({{ size }} {{ suffix }}): Մաքսիմալ թույլատրելի չափսը՝ {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>MIME-տեսակը անթույլատրելի է({{ type }}): Ֆայլերի թույլատրելի MIME-տեսակներն են: {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Արժեքը պետք է լինի {{ limit }} կամ փոքր.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Արժեքը չափազանց երկար է: Պետք է լինի {{ limit }} կամ ավել սիմվոլներ.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Արժեքը պետ է լինի {{ limit }} կամ շատ.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Արժեքը չափազանց կարճ է: Պետք է լինի {{ limit }} կամ ավելի սիմվոլներ.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Արժեքը չպետք է դատարկ լինի.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Արժեքը չպետք է լինի null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Արժեքը պետք է լինի null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Անթույլատրելի արժեք.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Ժամանակի արժեքը անթույլատրելի է.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Արժեքը  URL  չէ.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Երկու արժեքները պետք է նույնը լինեն.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Ֆայլը չափազանց մեծ է: Մաքսիմալ թույլատրելի չափսը {{ limit }} {{ suffix }} է.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Ֆայլը չափազանց մեծ է.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Ֆայլը չի կարող բեռնվել.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Արժեքը պետք է լինի թիվ.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This value is not a valid country.</source>
-                <target>Արժեքը պետք է լինի երկիր.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This file is not a valid image.</source>
-                <target>Ֆայլը նկարի թույլատրելի ֆորմատ չէ.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This is not a valid IP address.</source>
-                <target>Արժեքը թույլատրելի IP հասցե չէ.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid language.</source>
-                <target>Արժեքը թույլատրելի լեզու չէ.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid locale.</source>
-                <target>Արժեքը չի հանդիսանում թույլատրելի տեղայնացում.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Այդ արժեքը արդեն օգտագործվում է.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Նկարի չափսերը չստացվեց որոշել.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Նկարի լայնությունը չափազանց մեծ է({{ width }}px). Մաքսիմալ չափն է {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Նկարի լայնությունը չափազանց փոքր է ({{ width }}px). Մինիմալ չափն է {{ min_ width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Նկարի բարձրությունը չափազանց մեծ է ({{ height }}px). Մաքսիմալ չափն է {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Նկարի բարձրությունը չափազանց փոքր է ({{ height }}px). Մինիմալ չափն է {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Այս արժեքը պետք է լինի օգտագործողի ներկա ծածկագիրը.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Այս արժեքը պետք է ունենա ճիշտ {{ limit }} սիմվոլներ.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.id.xlf b/core/vendor/symfony/validator/Resources/translations/validators.id.xlf
deleted file mode 100644
index 742f4a1..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.id.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Nilai ini harus bernilai salah.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Nilai ini harus bernilai benar.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Nilai ini harus bertipe {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Nilai ini harus kosong.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Nilai yang dipilih tidak tepat.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Anda harus memilih paling tidak {{ limit }} pilihan.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Anda harus memilih paling banyak {{ limit }} pilihan.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Satu atau lebih nilai yang diberikan tidak sah.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Bidang ini tidak diharapkan.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Bidang ini hilang.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Nilai ini bukan merupakan tanggal yang sah.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Nilai ini bukan merupakan tanggal dan waktu yang sah.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Nilai ini bukan alamat email yang sah.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Berkas tidak ditemukan.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Berkas tidak bisa dibaca.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Ukuran berkas terlalu besar ({{ size }} {{ suffix }}). Ukuran maksimum yang diizinkan adalah {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Jenis berkas ({{ type }}) tidak sah. Jenis berkas yang diijinkan adalah {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Nilai ini harus {{ limit }} atau kurang.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Nilai ini terlalu panjang. Seharusnya {{ limit }} karakter atau kurang.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Nilai ini harus {{ limit }} atau lebih.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Nilai ini terlalu pendek. Seharusnya {{ limit }} karakter atau lebih.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Nilai ini tidak boleh kosong.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Nilai ini tidak boleh 'null'.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Nilai ini harus 'null'.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Nilai ini tidak sah.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Nilai ini bukan merupakan waktu yang sah.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Nilai ini bukan URL yang sah.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Isi keduanya harus sama.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Ukuran berkas terlalu besar. Ukuran maksimum yang diijinkan adalah {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Ukuran berkas terlalu besar.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Berkas tidak dapat diunggah.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Nilai ini harus angka yang sah.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Berkas ini tidak termasuk gambar.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Ini bukan alamat IP yang sah.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Nilai ini bukan bahasa yang sah.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Nilai ini bukan lokal yang sah.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Nilai ini bukan negara yang sah.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Nilai ini sudah digunakan.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Ukuran dari gambar tidak bisa dideteksi.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Lebar gambar terlalu besar ({{ width }}px). Ukuran lebar maksimum adalah {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Lebar gambar terlalu kecil ({{ width }}px). Ukuran lebar minimum yang diharapkan adalah {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Tinggi gambar terlalu besar ({{ height }}px). Ukuran tinggi maksimum adalah {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Tinggi gambar terlalu kecil ({{ height }}px). Ukuran tinggi minimum yang diharapkan adalah {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Nilai ini harus kata sandi pengguna saat ini.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Nilai ini harus memiliki tepat {{ limit }} karakter.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Berkas hanya terunggah sebagian.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Tidak ada berkas terunggah.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Direktori sementara tidak dikonfiguasi pada php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Tidak dapat menuliskan berkas sementara ke dalam media penyimpanan.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Sebuah ekstensi PHP menyebabkan kegagalan unggah.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Kumpulan ini harus memiliki {{ limit }} elemen atau lebih.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Kumpulan ini harus memiliki kurang dari {{ limit }} elemen.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Kumpulan ini harus memiliki tepat {{ limit }} elemen.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Nomor kartu tidak sah.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Jenis kartu tidak didukung atau nomor kartu tidak sah.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Ini bukan Nomor Rekening Bank Internasional (IBAN) yang sah.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Nilai ini bukan ISBN-10 yang sah.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Nilai ini bukan ISBN-13 yang sah.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Nilai ini bukan ISBN-10 maupun ISBN-13 yang sah.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Nilai ini bukan ISSN yang sah.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Nilai ini bukan mata uang yang sah.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya sama dengan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya lebih dari {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya lebih dari atau sama dengan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya identik dengan {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya kurang dari {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya kurang dari atau sama dengan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya tidak sama dengan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Nilai ini seharusnya tidak identik dengan {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.it.xlf b/core/vendor/symfony/validator/Resources/translations/validators.it.xlf
deleted file mode 100644
index b1dcb1e..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.it.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Questo valore dovrebbe essere falso.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Questo valore dovrebbe essere vero.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Questo valore dovrebbe essere di tipo {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Questo valore dovrebbe essere vuoto.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Questo valore dovrebbe essere una delle opzioni disponibili.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Si dovrebbe selezionare almeno {{ limit }} opzione.|Si dovrebbero selezionare almeno {{ limit }} opzioni.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Si dovrebbe selezionare al massimo {{ limit }} opzione.|Si dovrebbero selezionare al massimo {{ limit }} opzioni.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Uno o più valori inseriti non sono validi.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Questo campo non è stato previsto.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Questo campo è mancante.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Questo valore non è una data valida.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Questo valore non è una data e ora valida.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Questo valore non è un indirizzo email valido.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Non è stato possibile trovare il file.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Il file non è leggibile.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Il file è troppo grande ({{ size }} {{ suffix }}). La dimensione massima consentita è {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Il mime type del file non è valido ({{ type }}). I tipi permessi sono {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Questo valore dovrebbe essere {{ limit }} o inferiore.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Questo valore è troppo lungo. Dovrebbe essere al massimo di {{ limit }} carattere.|Questo valore è troppo lungo. Dovrebbe essere al massimo di {{ limit }} caratteri.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Questo valore dovrebbe essere {{ limit }} o superiore.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Questo valore è troppo corto. Dovrebbe essere almeno di {{ limit }} carattere.|Questo valore è troppo corto. Dovrebbe essere almeno di {{ limit }} caratteri.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Questo valore non dovrebbe essere vuoto.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Questo valore non dovrebbe essere nullo.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Questo valore dovrebbe essere nullo.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Questo valore non è valido.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Questo valore non è un'ora valida.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Questo valore non è un URL valido.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>I due valori dovrebbero essere uguali.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Il file è troppo grande. La dimensione massima è {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Il file è troppo grande.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Il file non può essere caricato.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Questo valore dovrebbe essere un numero.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Questo file non è una immagine valida.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Questo valore non è un indirizzo IP valido.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Questo valore non è una lingua valida.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Questo valore non è una impostazione regionale valida.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Questo valore non è una nazione valida.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Questo valore è già stato utilizzato.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>La dimensione dell'immagine non può essere determinata.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>La larghezza dell'immagine è troppo grande ({{ width }}px). La larghezza massima è di {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>La larghezza dell'immagine è troppo piccola ({{ width }}px). La larghezza minima è di {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>L'altezza dell'immagine è troppo grande ({{ height }}px). L'altezza massima è di {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>L'altezza dell'immagine è troppo piccola ({{ height }}px). L'altezza minima è di {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Questo valore dovrebbe essere la password attuale dell'utente.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Questo valore dovrebbe contenere esattamente {{ limit }} carattere.|Questo valore dovrebbe contenere esattamente {{ limit }} caratteri.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Il file è stato caricato solo parzialmente.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nessun file è stato caricato.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nessuna cartella temporanea è stata configurata nel php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Impossibile scrivere il file temporaneo sul disco.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Un'estensione PHP ha causato il fallimento del caricamento.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Questa collezione dovrebbe contenere almeno {{ limit }} elemento.|Questa collezione dovrebbe contenere almeno {{ limit }} elementi.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Questa collezione dovrebbe contenere massimo {{ limit }} elemento.|Questa collezione dovrebbe contenere massimo {{ limit }} elementi.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Questa collezione dovrebbe contenere esattamente {{ limit }} elemento.|Questa collezione dovrebbe contenere esattamente {{ limit }} elementi.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Numero di carta non valido.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipo di carta non supportato o numero non valido.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Questo valore non è un IBAN (International Bank Account Number) valido.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Questo valore non è un codice ISBN-10 valido.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Questo valore non è un codice ISBN-13 valido.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Questo valore non è un codice ISBN-10 o ISBN-13 valido.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Questo valore non è un codice ISSN valido.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Questo valore non è una valuta valida.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere uguale a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere maggiore di {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere maggiore o uguale a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere identico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere minore di {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere minore o uguale a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere diverso da {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Questo valore dovrebbe essere diverso da {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Il rapporto di aspetto dell'immagine è troppo grande ({{ ratio }}). Il rapporto massimo consentito è {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Il rapporto di aspetto dell'immagine è troppo piccolo ({{ ratio }}). Il rapporto minimo consentito è {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>L'immagine è quadrata ({{ width }}x{{ height }}px). Le immagini quadrate non sono consentite.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>L'immagine è orizzontale ({{ width }}x{{ height }}px). Le immagini orizzontali non sono consentite.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>L'immagine è verticale ({{ width }}x{{ height }}px). Le immagini verticali non sono consentite.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Un file vuoto non è consentito.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.ja.xlf b/core/vendor/symfony/validator/Resources/translations/validators.ja.xlf
deleted file mode 100644
index a58f5b8..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.ja.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>falseでなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>trueでなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>型は{{ type }}でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>空でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>有効な選択肢ではありません。</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>{{ limit }}個以上選択してください。</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>{{ limit }}個以内で選択してください。</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>無効な選択肢が含まれています。</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>このフィールドは予期されていませんでした。</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>このフィールドは、欠落しています。</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>有効な日付ではありません。</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>有効な日時ではありません。</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>有効なメールアドレスではありません。</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>ファイルが見つかりません。</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>ファイルを読み込めません。</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>ファイルのサイズが大きすぎます({{ size }} {{ suffix }})。有効な最大サイズは{{ limit }} {{ suffix }}です。</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>ファイルのMIMEタイプが無効です({{ type }})。有効なMIMEタイプは{{ types }}です。</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>{{ limit }}以下でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>値が長すぎます。{{ limit }}文字以内でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>{{ limit }}以上でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>値が短すぎます。{{ limit }}文字以上でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>空であってはなりません。</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>nullであってはなりません。</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>nullでなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>有効な値ではありません。</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>有効な時刻ではありません。</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>有効なURLではありません。</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>2つの値が同じでなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>ファイルのサイズが大きすぎます。有効な最大サイズは{{ limit }} {{ suffix }}です。</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>ファイルのサイズが大きすぎます。</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>ファイルをアップロードできませんでした。</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>有効な数字ではありません。</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>ファイルが画像ではありません。</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>有効なIPアドレスではありません。</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>有効な言語名ではありません。</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>有効なロケールではありません。</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>有効な国名ではありません。</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>既に使用されています。</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>画像のサイズが検出できません。</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>画像の幅が大きすぎます({{ width }}ピクセル)。{{ max_width }}ピクセルまでにしてください。</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>画像の幅が小さすぎます({{ width }}ピクセル)。{{ min_width }}ピクセル以上にしてください。</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>画像の高さが大きすぎます({{ height }}ピクセル)。{{ max_height }}ピクセルまでにしてください。</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>画像の高さが小さすぎます({{ height }}ピクセル)。{{ min_height }}ピクセル以上にしてください。</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>ユーザーの現在のパスワードでなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>ちょうど{{ limit }}文字でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>ファイルのアップロードは完全ではありません。</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>ファイルがアップロードされていません。</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>php.iniで一時フォルダが設定されていません。</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>一時ファイルをディスクに書き込むことができません。</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP拡張によってアップロードに失敗しました。</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>{{ limit }}個以上の要素を含んでなければいけません。</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>要素は{{ limit }}個までです。</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>要素はちょうど{{ limit }}個でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>無効なカード番号です。</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>未対応のカード種類又は無効なカード番号です。</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>有効なIBANコードではありません。</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>有効なISBN-10コードではありません。</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>有効なISBN-13コードではありません。</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>有効なISBN-10コード又はISBN-13コードではありません。</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>有効なISSNコードではありません。</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>有効な貨幣ではありません。</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}と等しくなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>{{ compared_value }}より大きくなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}以上でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>{{ compared_value_type }}としての{{ compared_value }}と等しくなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>{{ compared_value }}未満でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}以下でなければなりません。</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>{{ compared_value }}と等しくてはいけません。</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>{{ compared_value_type }}としての{{ compared_value }}と等しくてはいけません。</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>画像のアスペクト比が大きすぎます({{ ratio }})。{{ max_ratio }}までにしてください。</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>画像のアスペクト比が小さすぎます({{ ratio }})。{{ min_ratio }}以上にしてください。</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>画像が正方形になっています({{ width }}x{{ height }}ピクセル)。正方形の画像は許可されていません。</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>画像が横向きになっています({{ width }}x{{ height }}ピクセル)。横向きの画像は許可されていません。</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>画像が縦向きになっています({{ width }}x{{ height }}ピクセル)。縦向きの画像は許可されていません。</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>空のファイルは許可されていません。</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>ホストを解決できませんでした。</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>この値は予期される文字コード（{{ charset }}）と異なります。</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.lb.xlf b/core/vendor/symfony/validator/Resources/translations/validators.lb.xlf
deleted file mode 100644
index 8281c7c..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.lb.xlf
+++ /dev/null
@@ -1,303 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Dëse Wäert sollt falsch sinn.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Dëse Wäert sollt wouer sinn.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Dëse Wäert sollt vum Typ {{ type }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Dëse Wäert sollt eidel sinn.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Dëse Wäert sollt enger vun de Wielméiglechkeeten entspriechen.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Dir sollt mindestens {{ limit }} Méiglechkeete wielen.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Dir sollt héchstens {{ limit }} Méiglechkeete wielen.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Een oder méi vun de Wäerter ass ongëlteg.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>The fields {{ fields }} were not expected.</source>
-                <target>D'Felder {{ fields }} goufen net erwaart.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>The fields {{ fields }} are missing.</source>
-                <target>D'Felder {{ fields }} feelen.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Dëse Wäert entsprécht kenger gëlteger Datumsangab.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Dëse Wäert entsprécht kenger gëlteger Datums- an Zäitangab.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Dëse Wäert ass keng gëlteg Email-Adress.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>De Fichier gouf net fonnt.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>De Fichier ass net liesbar.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>De Fichier ass ze grouss ({{ size }} {{ suffix }}). Déi zougeloosse Maximalgréisst bedréit {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Den Typ vum Fichier ass ongëlteg ({{ type }}). Erlaabten Type sinn {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Dëse Wäert soll méi kleng oder gläich {{ limit }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Dës Zeecheketten ass ze laang. Se sollt héchstens {{ limit }} Zeechen hunn.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Dëse Wäert sollt méi grouss oder gläich {{ limit }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Dës Zeecheketten ass ze kuerz. Se sollt mindestens {{ limit }} Zeechen hunn.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Dëse Wäert sollt net eidel sinn.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Dëst sollt keen Null-Wäert sinn.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Dëst sollt keen Null-Wäert sinn.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Dëse Wäert ass net gëlteg.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Dëse Wäert entsprécht kenger gëlteger Zäitangab.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Dëse Wäert ass keng gëlteg URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Béid Wäerter sollten identesch sinn.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>De fichier ass ze grouss. Déi maximal Gréisst dierf {{ limit }} {{ suffix }} net depasséieren.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>De Fichier ass ze grouss.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>De Fichier konnt net eropgeluede ginn.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Dëse Wäert sollt eng gëlteg Zuel sinn.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Dëse Fichier ass kee gëltegt Bild.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Dëst ass keng gëlteg IP-Adress.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Dëse Wäert aentsprécht kenger gëlteger Sprooch.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Dëse Wäert entsprécht kengem gëltege Gebittsschema.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Dëse Wäert entsprécht kengem gëltege Land.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Dëse Wäert gëtt scho benotzt.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>D'Gréisst vum Bild konnt net detektéiert ginn.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>D'Breet vum Bild ass ze grouss ({{ width }}px). Déi erlaabte maximal Breet ass {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>D'Breet vum Bild ass ze kleng ({{ width }}px). Déi minimal Breet ass {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>D'Héicht vum Bild ass ze grouss ({{ height }}px). Déi erlaabte maximal Héicht ass {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>D'Héicht vum Bild ass ze kleng ({{ height }}px). Déi minimal Héicht ass {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Dëse Wäert sollt dem aktuelle Benotzerpasswuert entspriechen.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Dëse Wäert sollt exactly {{ limit }} Buschtaf hunn.|Dëse Wäert sollt exakt {{ limit }} Buschtawen hunn.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>De Fichier gouf just deelweis eropgelueden.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Et gouf kee Fichier eropgelueden.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Et gouf keen temporären Dossier an der php.ini konfiguréiert.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Den temporäre Fichier kann net gespäichert ginn.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Eng PHP-Erweiderung huet den Upload verhënnert.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Dës Sammlung sollt {{ limit }} oder méi Elementer hunn.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Dës Sammlung sollt {{ limit }} oder manner Elementer hunn.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Dës Sammlung sollt exakt {{ limit }} Element hunn.|Dës Sammlung sollt exakt {{ limit }} Elementer hunn.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ongëlteg Kaartennummer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Net ënnerstëtzte Kaartentyp oder ongëlteg Kaartennummer.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Dëst ass keng gëlteg IBAN-Kontonummer.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Dëse Wäert ass keng gëlteg ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Dëse Wäert ass keng gëlteg ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Dëse Wäert ass weder eng gëlteg ISBN-10 nach eng gëlteg ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Dëse Wäert ass keng gëlteg ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Dëse Wäert ass keng gëlteg Währung.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt {{ compared_value }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt méi grouss wéi {{ compared_value }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt méi grouss wéi oder gläich {{ compared_value }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt identesch si mat {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt méi kleng wéi {{ compared_value }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt méi kleng wéi oder gläich {{ compared_value }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt net {{ compared_value }} sinn.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Dëse Wäert sollt net identesch si mat {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>D'Säiteverhältnis vum Bild ass ze grouss ({{ ratio }}). Den erlaabte Maximalwäert ass {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>D'Säiteverhältnis vum Bild ass ze kleng ({{ ratio }}). Den erwaarte Minimalwäert ass {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>D'Bild ass quadratesch ({{ width }}x{{ height }}px). Quadratesch Biller sinn net erlaabt.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>D'Bild ass am Queeschformat ({{ width }}x{{ height }}px). Biller am Queeschformat sinn net erlaabt.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>D'Bild ass am Héichformat ({{ width }}x{{ height }}px). Biller am Héichformat sinn net erlaabt.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.lt.xlf b/core/vendor/symfony/validator/Resources/translations/validators.lt.xlf
deleted file mode 100644
index a556c45..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.lt.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-﻿<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Reikšmė turi būti neigiama.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Reikšmė turi būti teigiama.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Šios reikšmės tipas turi būti {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Ši reikšmė turi būti tuščia.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Neteisingas pasirinkimas.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Turite pasirinkti bent {{ limit }} variantą.|Turite pasirinkti bent {{ limit }} variantus.|Turite pasirinkti bent {{ limit }} variantų.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Turite pasirinkti ne daugiau kaip {{ limit }} variantą.|Turite pasirinkti ne daugiau kaip {{ limit }} variantus.|Turite pasirinkti ne daugiau kaip {{ limit }} variantų.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Viena ar daugiau įvestų reikšmių yra netinkamos.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Nebuvo tikimasi Šis laukas.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Šiame lauke yra dingęs.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Ši reikšmė nėra data.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Ši reikšmė nera data ir laikas.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Ši reikšmė nėra tinkamas el. pašto adresas.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Byla nerasta.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Negalima nuskaityti bylos.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Byla yra per didelė ({{ size }} {{ suffix }}). Maksimalus dydis {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Netinkamas bylos tipas (mime type) ({{ type }}). Galimi bylų tipai {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Reikšmė turi būti {{ limit }} arba mažiau.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Per didelis simbolių skaičius. Turi susidaryti iš {{ limit }} arba mažiau simbolių.|Per didelis simbolių skaičius. Turi susidaryti iš {{ limit }} arba mažiau simbolių.|Per didelis simbolių skaičius. Turi susidaryti iš {{ limit }} arba mažiau simbolių.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Reikšmė turi būti {{ limit }} arba daugiau.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Per mažas simbolių skaičius. Turi susidaryti iš {{ limit }} arba daugiau simbolių.|Per mažas simbolių skaičius. Turi susidaryti iš {{ limit }} arba daugiau simbolių.|Per mažas simbolių skaičius. Turi susidaryti iš {{ limit }} arba daugiau simbolių.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Ši reikšmė negali būti tuščia.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Ši reikšmė negali būti null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Ši reikšmė turi būti null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Netinkama reikšmė.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Ši reikšmė nėra laikas.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Ši reikšmė nėra tinkamas interneto adresas.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Abi reikšmės turi būti identiškos.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Byla yra per didelė. Maksimalus dydis yra {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Byla per didelė.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Byla negali būti įkelta.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Ši reikšmė turi būti skaičius.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This value is not a valid country.</source>
-                <target>Ši reikšmė nėra tinkama šalis.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This file is not a valid image.</source>
-                <target>Byla nėra paveikslėlis.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This is not a valid IP address.</source>
-                <target>Ši reikšmė nėra tinkamas IP adresas.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid language.</source>
-                <target>Ši reikšmė nėra tinkama kalba.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid locale.</source>
-                <target>Ši reikšmė nėra tinkama lokalė.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Ši reikšmė jau yra naudojama.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Nepavyko nustatyti nuotraukos dydžio.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Nuotraukos plotis per didelis ({{ width }}px). Maksimalus leidžiamas plotis yra {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Nuotraukos plotis per mažas ({{ width }}px). Minimalus leidžiamas plotis yra {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Nuotraukos aukštis per didelis ({{ height }}px). Maksimalus leidžiamas aukštis yra {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Nuotraukos aukštis per mažas ({{ height }}px). Minimalus leidžiamas aukštis yra {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Ši reikšmė turi sutapti su dabartiniu naudotojo slaptažodžiu.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Ši reikšmė turi turėti lygiai {{ limit }} simbolį.|Ši reikšmė turi turėti lygiai {{ limit }} simbolius.|Ši reikšmė turi turėti lygiai {{ limit }} simbolių.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Failas buvo tik dalinai įkeltas.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nebuvo įkelta jokių failų.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nėra sukonfiguruoto jokio laikino katalogo php.ini faile.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Nepavyko išsaugoti laikino failo.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP plėtinys sutrukdė failo įkėlimą ir jis nepavyko.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Sąraše turi būti {{ limit }} arba daugiau įrašų.|Sąraše turi būti {{ limit }} arba daugiau įrašų.|Sąraše turi būti {{ limit }} arba daugiau įrašų.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Sąraše turi būti {{ limit }} arba mažiau įrašų.|Sąraše turi būti {{ limit }} arba mažiau įrašų.|Sąraše turi būti {{ limit }} arba mažiau įrašų.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Sąraše turi būti lygiai {{ limit }} įrašas.|Sąraše turi būti lygiai {{ limit }} įrašai.|Sąraše turi būti lygiai {{ limit }} įrašų.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Klaidingas kortelės numeris.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Kortelės tipas nepalaikomas arba klaidingas kortelės numeris.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Ši reišmė neatitinka tarptautinio banko sąskaitos numerio formato (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Ši reikšmė neatitinka ISBN-10 formato.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Ši reikšmė neatitinka ISBN-13 formato.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Ši reikšmė neatitinka nei ISBN-10, nei ISBN-13 formato.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Ši reišmė neatitinka ISSN formato.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Netinkamas valiutos formatas.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ši reikšmė turi būti lygi {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ši reikšmė turi būti didesnė už {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ši reikšmė turi būti didesnė už arba lygi {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ši reikšmė turi būti identiška {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ši reikšmė turi būti mažesnė už {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ši reikšmė turi būti mažesnė už arba lygi {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ši reikšmė neturi būti lygi {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ši reikšmė neturi būti identiška {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Nuotraukos santykis yra per didelis ({{ ratio }}). Didžiausias leistinas santykis yra {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Nuotraukos santykis yra per mažas ({{ ratio }}). Mažiausias leistinas santykis yra {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Nuotrauka yra kvadratinė ({{ width }}x{{ height }}px). Kvadratinės nuotraukos nėra leistinos.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Nuotrauka orientuota į plotį ({{ width }}x{{ height }}px). Nuotraukos orientuotos į plotį nėra leistinos.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Nuotrauka orientuota į aukštį ({{ width }}x{{ height }}px). Nuotraukos orientuotos į aukštį nėra leistinos.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Failas negali būti tuščias.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.mn.xlf b/core/vendor/symfony/validator/Resources/translations/validators.mn.xlf
deleted file mode 100644
index dfe7eeb..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.mn.xlf
+++ /dev/null
@@ -1,151 +0,0 @@
-﻿<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Энэ утга буруу байх ёстой.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Энэ утга үнэн байх ёстой.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Энэ утга  {{ type }} -н төрөл байх ёстой.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Энэ утга хоосон байх ёстой.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Сонгосон утга буруу байна.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Хамгийн багадаа {{ limit }} утга сонгогдсон байх ёстой.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Хамгийн ихдээ {{ limit }} утга сонгогдох боломжтой.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Өгөгдсөн нэг эсвэл нэгээс олон утга буруу байна.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Энэ талбар нь хүлээгдэж байсан юм.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Энэ талбар нь алга болсон байна.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Энэ утга буруу date төрөл байна .</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Энэ утга буруу цаг төрөл байна.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>И-майл хаяг буруу байна.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Файл олдсонгүй.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Файл уншигдахуйц биш байна.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файл хэтэрхий том байна ({{ size }} {{ suffix }}). Зөвшөөрөгдөх дээд хэмжээ  {{ limit }} {{ suffix }} байна.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Файлын MIME-төрөл нь буруу байна ({{ type }}). Зөвшөөрөгдөх MIME-төрлүүд {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Энэ утга  {{ limit }} юмуу эсвэл бага байна.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Энэ утга хэтэрхий урт байна. {{ limit }} тэмдэгтийн урттай юмуу эсвэл бага байна.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Энэ утга {{ limit }} юмуу эсвэл их байна.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Энэ утга хэтэрхий богино байна. {{ limit }} тэмдэгт эсвэл их байна.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Энэ утга хоосон байж болохгүй.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Энэ утга null байж болохгүй.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Энэ утга null байна.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Энэ утга буруу байна.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Энэ утга буруу цаг төрөл байна.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Энэ утга буруу URL байна .</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Хоёр утгууд ижил байх ёстой.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файл хэтэрхий том байна. Зөвшөөрөгдөх дээд хэмжээ нь {{ limit }} {{ suffix }} байна.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Файл хэтэрхий том байна.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Файл upload хийгдсэнгүй.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Энэ утга зөвхөн тоо байна.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This value is not a valid country.</source>
-                <target>Энэ утга үнэн бодит улс биш байна.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This file is not a valid image.</source>
-                <target>Файл зураг биш байна.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This is not a valid IP address.</source>
-                <target>IP хаяг зөв биш байна.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid language.</source>
-                <target>Энэ утга үнэн зөв хэл биш байна .</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.nb.xlf b/core/vendor/symfony/validator/Resources/translations/validators.nb.xlf
deleted file mode 100644
index a8b790c..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.nb.xlf
+++ /dev/null
@@ -1,155 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Verdien skal være falsk.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Verdien skal være sann.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Verdien skal være av typen {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Verdien skal være blank.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Verdien skal være en av de gitte valg.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Du skal velge minst {{ limit }} valg.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Du kan maks velge {{ limit }} valg.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>En eller flere av de oppgitte verdier er ugyldige.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Dette feltet ikke var forventet.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Dette feltet mangler.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Verdien er ikke en gyldig dato.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Verdien er ikke en gyldig dato og tid.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Verdien er ikke en gyldig e-mail adresse.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Filen kunne ikke finnes.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Filen kan ikke leses.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Filen er for stor ({{ size }} {{ suffix }}). Tilatte maksimale størrelse {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mimetypen av filen er ugyldig ({{ type }}). Tilatte mimetyper er {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Verdien skal være {{ limit }} eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Verdien er for lang. Den skal ha {{ limit }} bokstaver eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Verdien skal være {{ limit }} eller mer.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Verdien er for kort. Den skal ha {{ limit }} tegn eller flere.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Verdien må ikke være blank.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Verdien må ikke være tom (null).</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Verdien skal være tom (null).</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Verdien er ikke gyldig.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Verdien er ikke en gyldig tid.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Verdien er ikke en gyldig URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>De to verdier skal være ens.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Filen er for stor. Den maksimale størrelse er {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Filen er for stor.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Filen kunne ikke lastes opp.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Denne verdi skal være et gyldig tall.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Denne filen er ikke et gyldig bilde.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Dette er ikke en gyldig IP adresse.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Denne verdi er ikke et gyldig språk.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Denne verdi er ikke en gyldig lokalitet.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Denne verdi er ikke et gyldig land.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.nl.xlf b/core/vendor/symfony/validator/Resources/translations/validators.nl.xlf
deleted file mode 100644
index fe33469..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.nl.xlf
+++ /dev/null
@@ -1,311 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Deze waarde mag niet waar zijn.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Deze waarde moet waar zijn.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Deze waarde moet van het type {{ type }} zijn.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Deze waarde moet leeg zijn.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>De geselecteerde waarde is geen geldige optie.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Selecteer ten minste {{ limit }} optie.|Selecteer ten minste {{ limit }} opties.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Selecteer maximaal {{ limit }} optie.|Selecteer maximaal {{ limit }} opties.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Eén of meer van de ingegeven waarden zijn ongeldig.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Dit veld was niet verwacht.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Dit veld ontbreekt.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Deze waarde is geen geldige datum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Deze waarde is geen geldige datum en tijd.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Deze waarde is geen geldig e-mailadres.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Het bestand is niet gevonden.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Het bestand is niet leesbaar.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Het bestand is te groot ({{ size }} {{ suffix }}). Toegestane maximum grootte is {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Het mime type van het bestand is ongeldig ({{ type }}). Toegestane mime types zijn {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Deze waarde moet {{ limit }} of minder zijn.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Deze waarde is te lang. Hij mag maximaal {{ limit }} teken bevatten.|Deze waarde is te lang. Hij mag maximaal {{ limit }} tekens bevatten.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Deze waarde moet {{ limit }} of meer zijn.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Deze waarde is te kort. Hij moet tenminste {{ limit }} teken bevatten.|Deze waarde is te kort. Hij moet tenminste {{ limit }} tekens bevatten.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Deze waarde mag niet leeg zijn.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Deze waarde mag niet null zijn.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Deze waarde moet null zijn.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Deze waarde is ongeldig.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Deze waarde is geen geldige tijd.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Deze waarde is geen geldige URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>De twee waarden moeten gelijk zijn.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Het bestand is te groot. Toegestane maximum grootte is {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Het bestand is te groot.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Het bestand kon niet geüpload worden.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Deze waarde moet een geldig getal zijn.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Dit bestand is geen geldige afbeelding.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Dit is geen geldig IP-adres.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Deze waarde representeert geen geldige taal.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Deze waarde representeert geen geldige lokalisering.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Deze waarde representeert geen geldig land.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Deze waarde wordt al gebruikt.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>De grootte van de afbeelding kon niet bepaald worden.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>De afbeelding is te breed ({{ width }}px). De maximaal toegestane breedte is {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>De afbeelding is niet breed genoeg ({{ width }}px). De minimaal verwachte breedte is {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>De afbeelding is te hoog ({{ height }}px). De maximaal toegestane hoogte is {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>De afbeelding is niet hoog genoeg ({{ height }}px). De minimaal verwachte hoogte is {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Deze waarde moet het huidige wachtwoord van de gebruiker zijn.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Deze waarde moet exact {{ limit }} teken lang zijn.|Deze waarde moet exact {{ limit }} tekens lang zijn.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Het bestand is niet geheel geüpload.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Er is geen bestand geüpload.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Er is geen tijdelijke map geconfigureerd in php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Kan het tijdelijke bestand niet wegschrijven op disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>De upload is mislukt vanwege een PHP-extensie.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Deze collectie moet {{ limit }} element of meer bevatten.|Deze collectie moet {{ limit }} elementen of meer bevatten.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Deze collectie moet {{ limit }} element of minder bevatten.|Deze collectie moet {{ limit }} elementen of minder bevatten.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Deze collectie moet exact {{ limit }} element bevatten.|Deze collectie moet exact {{ limit }} elementen bevatten.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ongeldig creditcardnummer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Niet-ondersteund type creditcard of ongeldig nummer.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Dit is geen geldig internationaal bankrekeningnummer (IBAN).</target>
-            </trans-unit>
-             <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Deze waarde is geen geldige ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Deze waarde is geen geldige ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Deze waarde is geen geldige ISBN-10 of ISBN-13 waarde.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Deze waarde is geen geldige ISSN waarde.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Deze waarde is geen geldige valuta.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Deze waarde moet gelijk zijn aan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Deze waarde moet groter zijn dan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Deze waarde moet groter dan of gelijk aan {{ compared_value }} zijn.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Deze waarde moet identiek zijn aan {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Deze waarde moet minder zijn dan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Deze waarde moet minder dan of gelijk aan {{ compared_value }} zijn.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Deze waarde mag niet gelijk zijn aan {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Deze waarde mag niet identiek zijn aan {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>De afbeeldingsverhouding is te groot ({{ ratio }}). Maximale verhouding is {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>De afbeeldingsverhouding is te klein ({{ ratio }}). Minimale verhouding is {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>De afbeelding is vierkant ({{ width }}x{{ height }}px). Vierkante afbeeldingen zijn niet toegestaan.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>De afbeelding is liggend ({{ width }}x{{ height }}px). Liggende afbeeldingen zijn niet toegestaan.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>De afbeelding is staand ({{ width }}x{{ height }}px). Staande afbeeldingen zijn niet toegestaan.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Lege bestanden zijn niet toegestaan.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Deze waarde is niet in de verwachte tekencodering {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.no.xlf b/core/vendor/symfony/validator/Resources/translations/validators.no.xlf
deleted file mode 100644
index ea01c63..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.no.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Verdien skulle ha vore tom/nei.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Verdien skulla ha vore satt/ja.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Verdien må vere av typen {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Verdien skal vere blank.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Verdien du valgte er ikkje gyldig.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Du må velge minst {{ limit }} valg.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Du kan maksimalt gjere {{ limit }} valg.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Ein eller fleire av dei opplyste verdiane er ugyldige.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Dette feltet var ikke forventet.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Dette feltet mangler.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Verdien er ikkje ein gyldig dato.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Verdien er ikkje ein gyldig dato og tid.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Verdien er ikkje ei gyldig e-postadresse.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Fila kunne ikkje finnes.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Fila kan ikkje lesast.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fila er for stor ({{ size }} {{ suffix }}). Tillatt maksimal størrelse er {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mime-typen av fila er ugyldig ({{ type }}). Tillatte mime-typar er {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Verdien må vere {{ limit }} eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Verdien er for lang. Den må vere {{ limit }} bokstavar eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Verdien må vere {{ limit }} eller meir.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Verdien er for kort. Den må ha {{ limit }} teikn eller fleire.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Verdien må ikkje vere blank.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Verdien må ikkje vere tom (null).</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Verdien må vere tom (null).</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Verdien er ikkje gyldig.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Verdien er ikkje gyldig tidseining.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Verdien er ikkje ein gyldig URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Dei to verdiane må vere like.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fila er for stor. Den maksimale storleik er {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Fila er for stor.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Fila kunne ikkje bli lasta opp.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Verdien må vere eit gyldig tal.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Fila er ikkje eit gyldig bilete.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Dette er ikkje ei gyldig IP-adresse.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Verdien er ikkje eit gyldig språk.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Verdien er ikkje ein gyldig lokalitet (språk/region).</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Verdien er ikkje eit gyldig land.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Verdien er allereie i bruk.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Storleiken på biletet kunne ikkje oppdagast.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Biletbreidda er for stor, ({{ width }} pikslar). Tillatt maksimumsbreidde er {{ max_width }} pikslar.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Biletbreidda er for liten, ({{ width }} pikslar). Forventa minimumsbreidde er {{ min_width }} pikslar.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Bilethøgda er for stor, ({{ height }} pikslar). Tillatt maksimumshøgde er {{ max_height }} pikslar.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Billethøgda er for låg, ({{ height }} pikslar). Forventa minimumshøgde er {{ min_height }} pikslar.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Verdien må vere brukaren sitt noverande passord.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Verdien må vere nøyaktig {{ limit }} teikn.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Fila vart kun delvis opplasta.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Inga fil vart lasta opp.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Førebels mappe (tmp) er ikkje konfigurert i php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Kan ikkje skrive førebels fil til disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Ei PHP-udviding forårsaka feil under opplasting.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Denne samlinga må innehalde {{ limit }} element eller meir.|Denne samlinga må innehalde {{ limit }} element eller meir.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Denne samlinga må innehalde {{ limit }} element eller færre.|Denne samlinga må innehalde {{ limit }} element eller færre.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Denne samlinga må innehalde nøyaktig {{ limit }} element.|Denne samlinga må innehalde nøyaktig {{ limit }} element.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ugyldig kortnummer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Korttypen er ikkje støtta eller ugyldig kortnummer.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.pl.xlf b/core/vendor/symfony/validator/Resources/translations/validators.pl.xlf
deleted file mode 100644
index 1d6875f..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.pl.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Ta wartość powinna być fałszem.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Ta wartość powinna być prawdą.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Ta wartość powinna być typu {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Ta wartość powinna być pusta.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Ta wartość powinna być jedną z podanych opcji.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Powinieneś wybrać co najmniej {{ limit }} opcję.|Powinieneś wybrać co najmniej {{ limit }} opcje.|Powinieneś wybrać co najmniej {{ limit }} opcji.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Powinieneś wybrać maksymalnie {{ limit }} opcję.|Powinieneś wybrać maksymalnie {{ limit }} opcje.|Powinieneś wybrać maksymalnie {{ limit }} opcji.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Jedna lub więcej z podanych wartości jest nieprawidłowa.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>To pole nie spodziewano.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>To pole jest chybianie.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Ta wartość nie jest prawidłową datą.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Ta wartość nie jest prawidłową datą i czasem.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Ta wartość nie jest prawidłowym adresem email.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Plik nie mógł zostać odnaleziony.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Nie można odczytać pliku.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Plik jest za duży ({{ size }} {{ suffix }}). Maksymalny dozwolony rozmiar to {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Nieprawidłowy typ mime pliku ({{ type }}). Dozwolone typy mime to {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Ta wartość powinna wynosić {{ limit }} lub mniej.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Ta wartość jest zbyt długa. Powinna mieć {{ limit }} lub mniej znaków.|Ta wartość jest zbyt długa. Powinna mieć {{ limit }} lub mniej znaków.|Ta wartość jest zbyt długa. Powinna mieć {{ limit }} lub mniej znaków.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Ta wartość powinna wynosić {{ limit }} lub więcej.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Ta wartość jest zbyt krótka. Powinna mieć {{ limit }} lub więcej znaków.|Ta wartość jest zbyt krótka. Powinna mieć {{ limit }} lub więcej znaków.|Ta wartość jest zbyt krótka. Powinna mieć {{ limit }} lub więcej znaków.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Ta wartość nie powinna być pusta.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Ta wartość nie powinna być nullem.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Ta wartość powinna być nullem.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Ta wartość jest nieprawidłowa.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Ta wartość nie jest prawidłowym czasem.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Ta wartość nie jest prawidłowym adresem URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Obie wartości powinny być równe.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Plik jest za duży. Maksymalny dozwolony rozmiar to {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Plik jest za duży.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Plik nie mógł być wgrany.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Ta wartość powinna być prawidłową liczbą.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ten plik nie jest obrazem.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>To nie jest prawidłowy adres IP.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Ta wartość nie jest prawidłowym językiem.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Ta wartość nie jest prawidłową lokalizacją.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Ta wartość nie jest prawidłową nazwą kraju.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Ta wartość jest już wykorzystywana.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Nie można wykryć rozmiaru obrazka.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Szerokość obrazka jest zbyt duża ({{ width }}px). Maksymalna dopuszczalna szerokość to {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Szerokość obrazka jest zbyt mała ({{ width }}px). Oczekiwana minimalna szerokość to {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Wysokość obrazka jest zbyt duża ({{ height }}px). Maksymalna dopuszczalna wysokość to {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Wysokość obrazka jest zbyt mała ({{ height }}px). Oczekiwana minimalna wysokość to {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Ta wartość powinna być aktualnym hasłem użytkownika.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Ta wartość powinna mieć dokładnie {{ limit }} znak.|Ta wartość powinna mieć dokładnie {{ limit }} znaki.|Ta wartość powinna mieć dokładnie {{ limit }} znaków.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Plik został wgrany tylko częściowo.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Żaden plik nie został wgrany.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nie skonfigurowano folderu tymczasowego w php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Nie można zapisać pliku tymczasowego na dysku.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Rozszerzenie PHP spowodowało błąd podczas wgrywania.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ten zbiór powinien zawierać {{ limit }} lub więcej elementów.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ten zbiór powinien zawierać {{ limit }} lub mniej elementów.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ten zbiór powinien zawierać dokładnie {{ limit }} element.|Ten zbiór powinien zawierać dokładnie {{ limit }} elementy.|Ten zbiór powinien zawierać dokładnie {{ limit }} elementów.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Nieprawidłowy numer karty.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nieobsługiwany rodzaj karty lub nieprawidłowy numer karty.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Nieprawidłowy międzynarodowy numer rachunku bankowego (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Ta wartość nie jest prawidłowym numerem ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Ta wartość nie jest prawidłowym numerem ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Ta wartość nie jest prawidłowym numerem ISBN-10 ani ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Ta wartość nie jest prawidłowym numerem ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Ta wartość nie jest prawidłową walutą.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ta wartość powinna być równa {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ta wartość powinna być większa niż {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ta wartość powinna być większa bądź równa {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ta wartość powinna być identycznego typu {{ compared_value_type }} oraz wartości {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ta wartość powinna być mniejsza niż {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ta wartość powinna być mniejsza bądź równa {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ta wartość nie powinna być równa {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ta wartość nie powinna być identycznego typu {{ compared_value_type }} oraz wartości {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Proporcje obrazu są zbyt duże ({{ ratio }}). Maksymalne proporcje to {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Proporcje obrazu są zbyt małe ({{ ratio }}). Minimalne proporcje to {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Obraz jest kwadratem ({{ width }}x{{ height }}px). Kwadratowe obrazy nie są akceptowane.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Obraz jest panoramiczny ({{ width }}x{{ height }}px). Panoramiczne zdjęcia nie są akceptowane.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Obraz jest portretowy ({{ width }}x{{ height }}px). Portretowe zdjęcia nie są akceptowane.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Plik nie może być pusty.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Nazwa hosta nie została rozpoznana.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Ta wartość nie pasuje do oczekiwanego zestawu znaków {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.pt.xlf b/core/vendor/symfony/validator/Resources/translations/validators.pt.xlf
deleted file mode 100644
index d563c92..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.pt.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Este valor deveria ser falso.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Este valor deveria ser verdadeiro.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Este valor deveria ser do tipo {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Este valor deveria ser vazio.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>O valor selecionado não é uma opção válida.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Você deveria selecionar {{ limit }} opção no mínimo.|Você deveria selecionar {{ limit }} opções no mínimo.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Você deve selecionar, no máximo {{ limit }} opção.|Você deve selecionar, no máximo {{ limit }} opções.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Um ou mais dos valores introduzidos não são válidos.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Este campo não era esperado.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Este campo está faltando.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Este valor não é uma data válida.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Este valor não é uma data-hora válida.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Este valor não é um endereço de e-mail válido.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>O arquivo não pôde ser encontrado.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>O arquivo não pôde ser lido.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>O arquivo é muito grande ({{ size }} {{ suffix }}). O tamanho máximo permitido é de {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>O tipo mime do arquivo é inválido ({{ type }}). Os tipos mime permitidos são {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Este valor deveria ser {{ limit }} ou menor.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>O valor é muito longo. Deveria ter {{ limit }} caracteres ou menos.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Este valor deveria ser {{ limit }} ou mais.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>O valor é muito curto. Deveria de ter {{ limit }} caractere ou mais.|O valor é muito curto. Deveria de ter {{ limit }} caracteres ou mais.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Este valor não deveria ser branco/vazio.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Este valor não deveria ser nulo.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Este valor deveria ser nulo.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Este valor não é válido.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Este valor não é uma hora válida.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Este valor não é um URL válido.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Os dois valores deveriam ser iguais.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>O arquivo é muito grande. O tamanho máximo permitido é de {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>O ficheiro é muito grande.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Não foi possível carregar o ficheiro.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Este valor deveria de ser um número válido.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Este ficheiro não é uma imagem.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Este endereço de IP não é válido.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Este valor não é uma linguagem válida.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Este valor não é um 'locale' válido.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Este valor não é um País válido.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Este valor já está a ser usado.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>O tamanho da imagem não foi detetado.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>A largura da imagem ({{ width }}px) é muito grande. A largura máxima da imagem é: {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>A largura da imagem ({{ width }}px) é muito pequena. A largura miníma da imagem é de: {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>A altura da imagem ({{ height }}px) é muito grande. A altura máxima da imagem é de: {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>A altura da imagem ({{ height }}px) é muito pequena. A altura miníma da imagem é de: {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Este valor deveria de ser a password atual do utilizador.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Este valor tem de ter exatamente {{ limit }} carateres.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Só foi enviado parte do ficheiro.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nenhum ficheiro foi enviado.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Não existe nenhum directório temporária configurado no ficheiro php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Não foi possível escrever ficheiros temporários no disco.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Uma extensão PHP causou a falha no envio.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Esta coleção deve conter {{ limit }} elemento ou mais.|Esta coleção deve conter {{ limit }} elementos ou mais.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Esta coleção deve conter {{ limit }} elemento ou menos.|Esta coleção deve conter {{ limit }} elementos ou menos.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Esta coleção deve conter exatamente {{ limit }} elemento.|Esta coleção deve conter exatamente {{ limit }} elementos.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Número de cartão inválido.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipo de cartão não suportado ou número de cartão inválido.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Este não é um Número Internacional de Conta Bancária (IBAN) válido.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Este valor não é um ISBN-10 válido.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Este valor não é um ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Este valor não é um ISBN-10 ou ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Este valor não é um ISSN válido.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Este não é um valor monetário válido.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Este valor deve ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Este valor deve ser superior a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Este valor deve ser igual ou superior a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Este valor deve ser inferior a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Este valor deve ser igual ou inferior a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Este valor não deve ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor não deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>O formato da imagem é muito grande ({{ ratio }}). O formato máximo é {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>O formato da imagem é muito pequeno ({{ ratio }}). O formato mínimo esperado é {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>A imagem é um quadrado ({{ width }}x{{ height }}px). Imagens quadradas não são permitidas.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>A imagem está orientada à paisagem ({{ width }}x{{ height }}px). Imagens orientadas à paisagem não são permitidas.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>A imagem está orientada ao retrato ({{ width }}x{{ height }}px). Imagens orientadas ao retrato não são permitidas.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Ficheiro vazio não é permitido.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.pt_BR.xlf b/core/vendor/symfony/validator/Resources/translations/validators.pt_BR.xlf
deleted file mode 100644
index bff91e3..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.pt_BR.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Este valor deve ser falso.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Este valor deve ser verdadeiro.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Este valor deve ser do tipo {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Este valor deve ser vazio.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>O valor selecionado não é uma opção válida.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Você deve selecionar, no mínimo, {{ limit }} opção.|Você deve selecionar, no mínimo, {{ limit }} opções.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Você deve selecionar, no máximo, {{ limit }} opção.|Você deve selecionar, no máximo, {{ limit }} opções.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Um ou mais valores informados são inválidos.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Este campo não era esperado.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Este campo está ausente.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Este valor não é uma data válida.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Este valor não é uma data e hora válida.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Este valor não é um endereço de e-mail válido.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>O arquivo não foi encontrado.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>O arquivo não pode ser lido.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>O arquivo é muito grande ({{ size }} {{ suffix }}). O tamanho máximo permitido é {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>O tipo mime do arquivo é inválido ({{ type }}). Os tipos mime permitidos são {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Este valor deve ser {{ limit }} ou menos.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Este valor é muito longo. Deve ter {{ limit }} caractere ou menos.|Este valor é muito longo. Deve ter {{ limit }} caracteres ou menos.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Este valor deve ser {{ limit }} ou mais.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Este valor é muito curto. Deve ter {{ limit }} caractere ou mais.|Este valor é muito curto. Deve ter {{ limit }} caracteres ou mais.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Este valor não deve ser vazio.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Este valor não deve ser nulo.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Este valor deve ser nulo.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Este valor não é válido.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Este valor não é uma hora válida.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Este valor não é uma URL válida.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Os dois valores devem ser iguais.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>O arquivo é muito grande. O tamanho máximo permitido é de {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>O arquivo é muito grande.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>O arquivo não pode ser enviado.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Este valor deve ser um número válido.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Este arquivo não é uma imagem válida.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Este não é um endereço de IP válido.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Este valor não é um idioma válido.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Este valor não é uma localidade válida.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Este valor não é um país válido.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Este valor já está sendo usado.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>O tamanho da imagem não pode ser detectado.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>A largura da imagem é muito grande ({{ width }}px). A largura máxima permitida é de {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>A largura da imagem é muito pequena ({{ width }}px). A largura mínima esperada é de {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>A altura da imagem é muito grande ({{ height }}px). A altura máxima permitida é de {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>A altura da imagem é muito pequena ({{ height }}px). A altura mínima esperada é de {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Este valor deve ser a senha atual do usuário.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Este valor deve ter exatamente {{ limit }} caractere.|Este valor deve ter exatamente {{ limit }} caracteres.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>O arquivo foi enviado apenas parcialmente.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nenhum arquivo foi enviado.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nenhum diretório temporário foi configurado no php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Não foi possível escrever o arquivo temporário no disco.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Uma extensão PHP fez com que o envio falhasse.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Esta coleção deve conter {{ limit }} elemento ou mais.|Esta coleção deve conter {{ limit }} elementos ou mais.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Esta coleção deve conter {{ limit }} elemento ou menos.|Esta coleção deve conter {{ limit }} elementos ou menos.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Esta coleção deve conter exatamente {{ limit }} elemento.|Esta coleção deve conter exatamente {{ limit }} elementos.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Número de cartão inválido.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipo de cartão não suportado ou número de cartão inválido.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Este não é um Número Internacional de Conta Bancária (IBAN) válido.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Este valor não é um ISBN-10 válido.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Este valor não é um ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Este valor não é um ISBN-10 e nem um ISBN-13 válido.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Este valor não é um ISSN válido.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Este não é um valor monetário válido.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Este valor deve ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Este valor deve ser maior que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Este valor deve ser maior ou igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Este valor deve ser menor que {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Este valor deve ser menor ou igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Este valor não deve ser igual a {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Este valor não deve ser idêntico a {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>A proporção da imagem é muito grande ({{ ratio }}). A proporção máxima permitida é {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>A proporção da imagem é muito pequena ({{ ratio }}). A proporção mínima esperada é {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>A imagem está num formato quadrado ({{ width }}x{{ height }}px). Imagens com formato quadrado não são permitidas.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>A imagem está orientada à paisagem ({{ width }}x{{ height }}px). Imagens orientadas à paisagem não são permitidas.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>A imagem está orientada ao retrato ({{ width }}x{{ height }}px). Imagens orientadas ao retrato não são permitidas.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Arquivo vazio não é permitido.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>O host não pôde ser resolvido.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Este valor não corresponde ao charset {{ charset }} esperado.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.ro.xlf b/core/vendor/symfony/validator/Resources/translations/validators.ro.xlf
deleted file mode 100644
index 27346a9..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.ro.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Această valoare ar trebui să fie falsă (false).</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Această valoare ar trebui să fie adevărată (true).</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Această valoare ar trebui să fie de tipul {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Această valoare ar trebui sa fie goală.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Valoarea selectată nu este o opțiune validă.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Trebuie să selectați cel puțin {{ limit }} opțiune.|Trebuie să selectați cel puțin {{ limit }} opțiuni.|Trebuie să selectați cel puțin {{ limit }} de opțiuni</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Trebuie să selectați cel mult {{ limit }} opțiune.|Trebuie să selectați cel mult {{ limit }} opțiuni.|Trebuie să selectați cel mult {{ limit }} de opțiuni.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Una sau mai multe dintre valorile furnizate sunt invalide.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Acest câmp nu era de aşteptat.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Acest câmp este lipsă.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Această valoare nu reprezintă o dată validă.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Această valoare nu reprezintă o dată și oră validă.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Această valoare nu reprezintă o adresă de e-mail validă.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Fișierul nu a putut fi găsit.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Fișierul nu poate fi citit.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fișierul este prea mare ({{ size }} {{ suffix }}). Dimensiunea maximă permisă este {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Tipul fișierului este invalid ({{ type }}). Tipurile permise de fișiere sunt ({{ types }}).</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Această valoare ar trebui să fie cel mult {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Această valoare este prea lungă. Ar trebui să aibă maxim {{ limit }} caracter.|Această valoare este prea lungă. Ar trebui să aibă maxim {{ limit }} caractere.|Această valoare este prea lungă. Ar trebui să aibă maxim {{ limit }} de caractere.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Această valoare ar trebui să fie cel puțin {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Această valoare este prea scurtă. Ar trebui să aibă minim {{ limit }} caracter.|Această valoare este prea scurtă. Ar trebui să aibă minim {{ limit }} caractere.|Această valoare este prea scurtă. Ar trebui să aibă minim {{ limit }} de caractere.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Această valoare nu ar trebui să fie goală.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Această valoare nu ar trebui să fie nulă (null).</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Această valoare ar trebui să fie nulă (null).</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Această valoare nu este validă.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Această valoare nu reprezintă o oră validă.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Această valoare nu reprezintă un URL (link) valid.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Cele două valori ar trebui să fie egale.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Fișierul este prea mare. Mărimea maximă permisă este {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Fișierul este prea mare.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Fișierul nu a putut fi încărcat.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Această valoare nu reprezintă un număr valid.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Acest fișier nu este o imagine validă.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Această valoare nu este o adresă IP validă.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Această valoare nu reprezintă o limbă corectă.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Această valoare nu reprezintă un dialect (o limbă) corect.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Această valoare nu este o țară validă.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Această valoare este folosită deja.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Mărimea imaginii nu a putut fi detectată.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Lățimea imaginii este prea mare ({{ width }}px). Lățimea maximă permisă este de {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Lățimea imaginii este prea mică ({{ width }}px). Lățimea minimă permisă este de {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Înălțimea imaginii este prea mare ({{ height }}px). Înălțimea maximă permisă este de {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Înălțimea imaginii este prea mică ({{ height }}px). Înălțimea minimă permisă este de {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Această valoare trebuie să fie parola curentă a utilizatorului.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Această valoare trebuie să conțină exact {{ limit }} caracter.|Această valoare trebuie să conțină exact {{ limit }} caractere.|Această valoare trebuie să conțină exact {{ limit }} de caractere.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Fișierul a fost încărcat parțial.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nu a fost încărcat nici un fișier.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Nu este configurat nici un director temporar in php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Nu a fost posibilă scrierea fișierului temporar pe disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>O extensie PHP a prevenit încărcarea cu succes a fișierului.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Această colecție trebuie să conțină cel puțin {{ limit }} element.|Această colecție trebuie să conțină cel puțin {{ limit }} elemente.|Această colecție trebuie să conțină cel puțin {{ limit }} de elemente.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Această colecție trebuie să conțină cel mult {{ limit }} element.|Această colecție trebuie să conțină cel mult {{ limit }} elemente.|Această colecție trebuie să conțină cel mult {{ limit }} de elemente.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Această colecție trebuie să conțină {{ limit }} element.|Această colecție trebuie să conțină {{ limit }} elemente.|Această colecție trebuie să conțină {{ limit }} de elemente.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Numărul card invalid.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Tipul sau numărul cardului nu sunt valide.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Acesta nu este un cod IBAN (International Bank Account Number) valid.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Această valoare nu este un cod ISBN-10 valid.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Această valoare nu este un cod ISBN-13 valid.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Această valoare nu este un cod ISBN-10 sau ISBN-13 valid.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Această valoare nu este un cod ISSN valid.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Această valoare nu este o monedă validă.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie egală cu {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie mai mare de {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie mai mare sau egală cu {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Această valoare trebuie identică cu {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie mai mică de {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Această valoare trebuie să fie mai mică sau egală cu {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Această valoare nu trebuie să fie egală cu {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Această valoare nu trebuie să fie identică cu {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.ru.xlf b/core/vendor/symfony/validator/Resources/translations/validators.ru.xlf
deleted file mode 100644
index d7a90c9..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.ru.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-﻿<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Значение должно быть ложным.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Значение должно быть истинным.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Тип значения должен быть {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Значение должно быть пустым.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Выбранное Вами значение недопустимо.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Вы должны выбрать хотя бы {{ limit }} вариант.|Вы должны выбрать хотя бы {{ limit }} варианта.|Вы должны выбрать хотя бы {{ limit }} вариантов.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Вы должны выбрать не более чем {{ limit }} вариант.|Вы должны выбрать не более чем {{ limit }} варианта.|Вы должны выбрать не более чем {{ limit }} вариантов.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Одно или несколько заданных значений недопустимо.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Это поле не ожидалось.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Это поле отсутствует.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Значение не является правильной датой.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Значение даты и времени недопустимо.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Значение адреса электронной почты недопустимо.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Файл не может быть найден.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Файл не может быть прочитан.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файл слишком большой ({{ size }} {{ suffix }}). Максимально допустимый размер {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>MIME-тип файла недопустим ({{ type }}). Допустимы MIME-типы файлов {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Значение должно быть {{ limit }} или меньше.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Значение слишком длинное. Должно быть равно {{ limit }} символу или меньше.|Значение слишком длинное. Должно быть равно {{ limit }} символам или меньше.|Значение слишком длинное. Должно быть равно {{ limit }} символам или меньше.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Значение должно быть {{ limit }} или больше.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Значение слишком короткое. Должно быть равно {{ limit }} символу или больше.|Значение слишком короткое. Должно быть равно {{ limit }} символам или больше.|Значение слишком короткое. Должно быть равно {{ limit }} символам или больше.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Значение не должно быть пустым.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Значение не должно быть null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Значение должно быть null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Значение недопустимо.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Значение времени недопустимо.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Значение не является допустимым URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Оба значения должны быть одинаковыми.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файл слишком большой. Максимально допустимый размер {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Файл слишком большой.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Файл не может быть загружен.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Значение должно быть числом.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This value is not a valid country.</source>
-                <target>Значение не является допустимой страной.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This file is not a valid image.</source>
-                <target>Файл не является допустимым форматом изображения.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This is not a valid IP address.</source>
-                <target>Значение не является допустимым IP адресом.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid language.</source>
-                <target>Значение не является допустимым языком.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid locale.</source>
-                <target>Значение не является допустимой локалью.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Это значение уже используется.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Не удалось определить размер изображения.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Ширина изображения слишком велика ({{ width }}px). Максимально допустимая ширина {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Ширина изображения слишком мала ({{ width }}px). Минимально допустимая ширина {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Высота изображения слишком велика ({{ height }}px). Максимально допустимая высота {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Высота изображения слишком мала ({{ height }}px). Минимально допустимая высота {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Значение должно быть текущим паролем пользователя.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Значение должно быть равно {{ limit }} символу.|Значение должно быть равно {{ limit }} символам.|Значение должно быть равно {{ limit }} символам.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Файл был загружен только частично.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Файл не был загружен.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Не настроена временная директория в php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Невозможно записать временный файл на диск.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Расширение PHP вызвало ошибку при загрузке.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Эта коллекция должна содержать {{ limit }} элемент или больше.|Эта коллекция должна содержать {{ limit }} элемента или больше.|Эта коллекция должна содержать {{ limit }} элементов или больше.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Эта коллекция должна содержать {{ limit }} элемент или меньше.|Эта коллекция должна содержать {{ limit }} элемента или меньше.|Эта коллекция должна содержать {{ limit }} элементов или меньше.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Эта коллекция должна содержать ровно {{ limit }} элемент.|Эта коллекция должна содержать ровно {{ limit }} элемента.|Эта коллекция должна содержать ровно {{ limit }} элементов.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Неверный номер карты.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Неподдерживаемый тип или неверный номер карты.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Значение не является допустимым международным номером банковского счета (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Значение имеет неверный формат ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Значение имеет неверный формат ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Значение не соответствует форматам ISBN-10 и ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Значение не соответствует формату ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Некорректный формат валюты.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Значение должно быть равно {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Значение должно быть больше чем {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Значение должно быть больше или равно {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Значение должно быть идентичным {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Значение должно быть меньше чем {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Значение должно быть меньше или равно {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Значение не должно быть равно {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Значение не должно быть идентичным {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Соотношение сторон изображения слишком велико ({{ ratio }}). Максимальное соотношение сторон {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Соотношение сторон изображения слишком мало ({{ ratio }}). Минимальное соотношение сторон {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Изображение квадратное ({{ width }}x{{ height }}px). Квадратные изображения не разрешены.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Изображение в альбомной ориентации ({{ width }}x{{ height }}px). Изображения в альбомной ориентации не разрешены.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Изображение в портретной ориентации ({{ width }}x{{ height }}px). Изображения в портретной ориентации не разрешены.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Пустые файлы не разрешены.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Имя хоста не может быть разрешено.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Значение не совпадает с ожидаемой {{ charset }} кодировкой.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.sk.xlf b/core/vendor/symfony/validator/Resources/translations/validators.sk.xlf
deleted file mode 100644
index 46f3ec3..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.sk.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Táto hodnota by mala byť nastavená na false.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Táto hodnota by mala byť nastavená na true.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Táto hodnota by mala byť typu {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Táto hodnota by mala byť prázdna.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Táto hodnota by mala byť jednou z poskytnutých možností.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Mali by ste vybrať minimálne {{ limit }} možnosť.|Mali by ste vybrať minimálne {{ limit }} možnosti.|Mali by ste vybrať minimálne {{ limit }} možností.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Mali by ste vybrať najviac {{ limit }} možnosť.|Mali by ste vybrať najviac {{ limit }} možnosti.|Mali by ste vybrať najviac {{ limit }} možností.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Niektoré z uvedených hodnôt sú neplatné.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Toto pole sa neočakáva.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Toto pole chýba.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Tato hodnota nemá platný formát dátumu.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Táto hodnota nemá platný formát dátumu a času.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Táto hodnota nie je platná emailová adresa.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Súbor sa nenašiel.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Súbor nie je čitateľný.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Súbor je príliš veľký ({{ size }} {{ suffix }}). Maximálna povolená veľkosť je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Súbor typu ({{ type }}) nie je podporovaný. Podporované typy sú {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Táto hodnota by mala byť {{ limit }} alebo menej.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Táto hodnota obsahuje viac znakov ako je povolené. Mala by obsahovať najviac {{ limit }} znak.|Táto hodnota obsahuje viac znakov ako je povolené. Mala by obsahovať najviac {{ limit }} znaky.|Táto hodnota obsahuje viac znakov ako je povolené. Mala by obsahovať najviac {{ limit }} znakov.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Táto hodnota by mala byť viac ako {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Táto hodnota je príliš krátka. Musí obsahovať minimálne {{ limit }} znak.|Táto hodnota je príliš krátka. Musí obsahovať minimálne {{ limit }} znaky.|Táto hodnota je príliš krátka. Minimálny počet znakov je {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Táto hodnota by mala byť vyplnená.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Táto hodnota by nemala byť null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Táto hodnota by mala byť null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Táto hodnota nie je platná.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Tato hodnota nemá správny formát času.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Táto hodnota nie je platnou URL adresou.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Tieto dve hodnoty by mali byť rovnaké.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Súbor je príliš veľký. Maximálna povolená veľkosť je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Súbor je príliš veľký.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Súbor sa nepodarilo nahrať.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Táto hodnota by mala byť číslo.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Tento súbor nie je obrázok.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Toto nie je platná IP adresa.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Tento jazyk neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Táto lokalizácia neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Táto krajina neexistuje.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Táto hodnota sa už používa.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Nepodarilo sa zistiť rozmery obrázku.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Obrázok je príliš široký ({{ width }}px). Maximálna povolená šírka obrázku je {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Obrázok je príliš úzky ({{ width }}px). Minimálna šírka obrázku by mala byť {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>>Obrázok je príliš vysoký ({{ height }}px). Maximálna povolená výška obrázku je {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Obrázok je príliš nízky ({{ height }}px). Minimálna výška obrázku by mala byť {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Táto hodnota by mala byť aktuálne heslo používateľa.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Táto hodnota by mala mať presne {{ limit }} znak.|Táto hodnota by mala mať presne {{ limit }} znaky.|Táto hodnota by mala mať presne {{ limit }} znakov.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Bola nahraná len časť súboru.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Žiadny súbor nebol nahraný.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>V php.ini nie je nastavená cesta k adresáru pre dočasné súbory.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Dočasný súbor sa nepodarilo zapísať na disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Rozšírenie PHP zabránilo nahraniu súboru.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Táto kolekcia by mala obsahovať aspoň {{ limit }} prvok alebo viac.|Táto kolekcia by mala obsahovať aspoň {{ limit }} prvky alebo viac.|Táto kolekcia by mala obsahovať aspoň {{ limit }} prvkov alebo viac.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Táto kolekcia by mala maximálne {{ limit }} prvok.|Táto kolekcia by mala obsahovať maximálne {{ limit }} prvky.|Táto kolekcia by mala obsahovať maximálne {{ limit }} prvkov.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Táto kolekcia by mala obsahovať presne {{ limit }} prvok.|Táto kolekcia by mala obsahovať presne {{ limit }} prvky.|Táto kolekcia by mala obsahovať presne {{ limit }} prvkov.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Neplatné číslo karty.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nepodporovaný typ karty alebo neplatné číslo karty.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Toto je neplatný IBAN.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Táto hodnota je neplatné ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Táto hodnota je neplatné ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Táto hodnota nie je platné ISBN-10 ani ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Táto hodnota nie je platné ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Táto hodnota nie je platná mena.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Táto hodnota by mala byť rovná {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Táto hodnota by mala byť väčšia ako {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Táto hodnota by mala byť väčšia alebo rovná {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Táto hodnota by mala byť typu {{ compared_value_type }} a zároveň by mala byť rovná {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Táto hodnota by mala byť menšia ako {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Táto hodnota by mala byť menšia alebo rovná {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Táto hodnota by nemala byť rovná {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Táto hodnota by nemala byť typu {{ compared_value_type }} a zároveň by nemala byť rovná {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Pomer strán obrázku je príliš veľký ({{ ratio }}). Maximálny povolený pomer strán obrázku je {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Pomer strán obrázku je príliš malý ({{ ratio }}). Minimálny povolený pomer strán obrázku je {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Strany obrázku sú štvorcové ({{ width }}x{{ height }}px). Štvorcové obrázky nie sú povolené.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Obrázok je orientovaný na šírku ({{ width }}x{{ height }}px). Obrázky orientované na šírku nie sú povolené.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Obrázok je orientovaný na výšku ({{ width }}x{{ height }}px). Obrázky orientované na výšku nie sú povolené.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Súbor nesmie byť prázdny.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.sl.xlf b/core/vendor/symfony/validator/Resources/translations/validators.sl.xlf
deleted file mode 100644
index 4f0e7c6..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.sl.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Vrednost bi morala biti nepravilna (false).</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Vrednost bi morala biti pravilna (true).</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Vrednost mora biti naslednjega tipa {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Vrednost mora biti prazna.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Vrednost, ki ste jo izbrali, ni veljavna možnost.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Izbrati morate vsaj {{ limit }} možnost.|Izbrati morate vsaj {{ limit }} možnosti.|Izbrati morate vsaj {{ limit }} možnosti.|Izbrati morate vsaj {{ limit }} možnosti.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Izberete lahko največ {{ limit }} možnost.|Izberete lahko največ {{ limit }} možnosti.|Izberete lahko največ {{ limit }} možnosti.|Izberete lahko največ {{ limit }} možnosti.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Ena ali več podanih vrednosti ni veljavnih.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>To polje ni bilo pričakovati.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>To polje manjka.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Ta vrednost ni veljaven datum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Ta vrednost ni veljaven datum in čas.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Ta vrednost ni veljaven e-poštni naslov.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Datoteke ni mogoče najti.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Datoteke ni mogoče prebrati.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Datoteka je prevelika ({{ size }} {{ suffix }}). Največja dovoljena velikost je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mime tip datoteke je neveljaven ({{ type }}). Dovoljeni mime tipi so {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Ta vrednost bi morala biti {{ limit }} ali manj.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Ta vrednost je predolga. Morala bi imeti {{ limit }} znak ali manj.|Ta vrednost je predolga. Morala bi imeti {{ limit }} znaka ali manj.|Ta vrednost je predolga. Morala bi imeti {{ limit }} znake ali manj.|Ta vrednost je predolga. Morala bi imeti {{ limit }} znakov ali manj.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Ta vrednost bi morala biti {{ limit }} ali več.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Ta vrednost je prekratka. Morala bi imeti {{ limit }} znak ali več.|Ta vrednost je prekratka. Morala bi imeti {{ limit }} znaka ali več.|Ta vrednost je prekratka. Morala bi imeti {{ limit }} znake ali več.|Ta vrednost je prekratka. Morala bi imeti {{ limit }} znakov ali več.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Ta vrednost ne bi smela biti prazna.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Ta vrednost ne bi smela biti nedefinirana (null).</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Ta vrednost bi morala biti nedefinirana (null).</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Ta vrednost ni veljavna.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Ta vrednost ni veljaven čas.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Ta vrednost ni veljaven URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Ti dve vrednosti bi morali biti enaki.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Datoteka je prevelika. Največja dovoljena velikost je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Datoteka je prevelika.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Datoteke ni bilo mogoče naložiti.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Ta vrednost bi morala biti veljavna številka.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ta datoteka ni veljavna slika.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>To ni veljaven IP naslov.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Ta vrednost ni veljaven jezik.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Ta vrednost ni veljavna lokalnost.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Ta vrednost ni veljavna država.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Ta vrednost je že uporabljena.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Velikosti slike ni bilo mogoče zaznati.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Širina slike je preširoka ({{ width }}px). Največja dovoljena širina je {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Širina slike je premajhna ({{ width }}px). Najmanjša predvidena širina je {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Višina slike je prevelika ({{ height }}px). Največja dovoljena višina je {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Višina slike je premajhna ({{ height }}px). Najmanjša predvidena višina je {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Ta vrednost bi morala biti trenutno uporabnikovo geslo.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Ta vrednost bi morala imeti točno {{ limit }} znak.|Ta vrednost bi morala imeti točno {{ limit }} znaka.|Ta vrednost bi morala imeti točno {{ limit }} znake.|Ta vrednost bi morala imeti točno {{ limit }} znakov.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Datoteka je bila le delno naložena.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nobena datoteka ni bila naložena.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Začasna mapa ni nastavljena v php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Začasne datoteke ni bilo mogoče zapisati na disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP razširitev je vzrok, da nalaganje ni uspelo.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ta zbirka bi morala vsebovati {{ limit }} element ali več.|Ta zbirka bi morala vsebovati {{ limit }} elementa ali več.|Ta zbirka bi morala vsebovati {{ limit }} elemente ali več.|Ta zbirka bi morala vsebovati {{ limit }} elementov ali več.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ta zbirka bi morala vsebovati {{ limit }} element ali manj.|Ta zbirka bi morala vsebovati {{ limit }} elementa ali manj.|Ta zbirka bi morala vsebovati {{ limit }} elemente ali manj.|Ta zbirka bi morala vsebovati {{ limit }} elementov ali manj.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ta zbirka bi morala vsebovati točno {{ limit }} element.|Ta zbirka bi morala vsebovati točno {{ limit }} elementa.|Ta zbirka bi morala vsebovati točno {{ limit }} elemente.|Ta zbirka bi morala vsebovati točno {{ limit }} elementov.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Neveljavna številka kartice.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nepodprti tip kartice ali neveljavna številka kartice.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>To ni veljavna mednarodna številka bančnega računa (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Neveljavna vrednost po ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Neveljavna vrednost po ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Neveljavna vrednost po ISBN-10 ali po ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Neveljavna vrednost ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Ta vrednost ni veljavna valuta.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ta vrednost bi morala biti enaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ta vrednost bi morala biti večja od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ta vrednost bi morala biti večja ali enaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ta vrednost bi morala biti identična {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ta vrednost bi morala biti manjša od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ta vrednost bi morala biti manjša ali enaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ta vrednost ne bi smela biti enaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ta vrednost ne bi smela biti identična {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Razmerje slike je preveliko ({{ ratio }}). Največje dovoljeno razmerje je {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Razmerje slike je premajhno ({{ ratio }}). Najmanjše pričakovano razmerje je {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Slika je kvadrat ({{ width }}x{{ height }}px). Kvadratne slike niso dovoljene.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Slika je ležeče usmerjena ({{ width }}x{{ height }}px). Ležeče usmerjene slike niso dovoljene.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Slika je pokončno usmerjena ({{ width }}x{{ height }}px). Pokončno usmerjene slike niso dovoljene.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>Prazna datoteka ni dovoljena.</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>Gostitelja ni bilo mogoče prepoznati.</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>Ta vrednost se ne ujema s pričakovanim naborom znakov {{ charset }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.sq.xlf b/core/vendor/symfony/validator/Resources/translations/validators.sq.xlf
deleted file mode 100644
index ffc8ccf..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.sq.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Kjo vlerë duhet të jetë e pavërtetë (false).</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Kjo vlerë duhet të jetë e vërtetë (true).</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Kjo vlerë duhet të jetë e llojit {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Kjo vlerë duhet të jetë e zbrazët.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Vlera që keni zgjedhur nuk është alternativë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Duhet të zgjedhni së paku {{ limit }} alternativa.|Duhet të zgjedhni së paku {{ limit }} alternativa.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Duhet të zgjedhni më së shumti {{ limit }} alternativa.|Duhet të zgjedhni më së shumti {{ limit }} alternativa.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Një apo më shumë nga vlerat e dhëna nuk janë të sakta.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Kjo fushë nuk pritej.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Kjo fushë është zhdukur.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Kjo vlerë nuk është datë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Kjo vlerë nuk është datë-kohë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Kjo vlerë nuk është e-mail adresë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>File nuk mund të gjindej.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>File nuk është i lexueshëm.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>File është shumë i madh ({{ size }} {{ suffix }}). Madhësia më e madhe e lejuar është {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Lloji mime i files nuk është i vlefshëm ({{ type }}). Llojet mime të lejuara janë {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Kjo vlerë duhet të jetë {{ limit }} ose më pak.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Kjo vlerë është shumë e gjatë. Duhet t'i ketë {{ limit }} ose më pak karaktere.|Kjo vlerë është shumë e gjatë. Duhet t'i ketë {{ limit }} ose më pak karaktere.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Kjo vlerë duhet të jetë {{ limit }} ose më shumë.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Kjo vlerë është shumë e shkurtër. Duhet t'i ketë {{ limit }} ose më shumë karaktere.|Kjo vlerë është shumë e shkurtër. Duhet t'i ketë {{ limit }} ose më shumë karaktere.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Kjo vlerë nuk duhet të jetë e zbrazët.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Kjo vlerë nuk duhet të jetë null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Kjo vlerë duhet të jetë null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Kjo vlerë nuk është e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Kjo vlerë nuk është kohë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Kjo vlerë nuk është URL e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Këto dy vlera duhet të jenë të barabarta.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Ky file është shumë i madh. Madhësia maksimale e lejuar është {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Ky file është shumë i madh.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Ky file nuk mund të ngarkohet.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Kjo vlerë duhet të jetë numër i vlefshëm.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ky file nuk është imazh i vlefshëm.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Kjo vlerë nuk është IP adresë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Kjo vlerë nuk është gjuhë e vlefshme.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Kjo vlerë nuk është përcaktim rajonal i vlefshëm.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Kjo vlerë nuk është shtet i vlefshëm.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Kjo vlerë është tashmë në përdorim.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Madhësia e këtij imazhi nuk mund të zbulohet.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Gjerësia e imazhit është shumë e madhe ({{ width }}px). Gjerësia maksimale e lejuar është {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Gjerësia e imazhit është shumë e vogël ({{ width }}px). Gjerësia minimale e pritur është {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Gjatësia e imazhit është shumë e madhe ({{ height }}px). Gjatësia maksimale e lejuar është {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Gjatësia e imazhit është shumë e vogël ({{ height }}px). Gjatësia minimale e pritur është {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Kjo vlerë duhet të jetë fjalëkalimi aktual i përdoruesit.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Kjo vlerë duhet të ketë saktësisht {{ limit }} karaktere.|Kjo vlerë duhet të ketë saktësisht {{ limit }} karaktere.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Ky file është ngarkuar pjesërisht.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Nuk është ngarkuar ndonjë file.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Asnjë folder i përkohshëm nuk është konfiguruar në php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Nuk mund të shkruhet file i përkohshëm në disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Një ekstenzion i PHP-së bëri të dështojë ngarkimi i files.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.|Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.|Ky kolekcion duhet të përmbajë {{ limit }} ose më shumë elemente.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ky kolekcion duhet të përmbajë saktësisht {{ limit }} elemente.|Ky kolekcion duhet të përmbajë saktësisht {{ limit }} elemente.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Numër kartele i pavlefshëm.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Lloj kartele i pambështetur ose numër kartele i pavlefshëm.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.sr_Cyrl.xlf b/core/vendor/symfony/validator/Resources/translations/validators.sr_Cyrl.xlf
deleted file mode 100644
index 81f5210..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.sr_Cyrl.xlf
+++ /dev/null
@@ -1,303 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Вредност треба да буде нетачна.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Вредност треба да буде тачна.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Вредност треба да буде типа {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Вредност треба да буде празна.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Вредност треба да буде једна од понуђених.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Изаберите бар {{ limit }} могућност.|Изаберите бар {{ limit }} могућности.|Изаберите бар {{ limit }} могућности.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Изаберите највише {{ limit }} могућност.|Изаберите највише {{ limit }} могућности.|Изаберите највише {{ limit }} могућности.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Једна или више вредности је невалидна.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Ово поље не очекује.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Ово поље недостаје.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Вредност није валидан датум.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Вредност није валидан датум-време.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Вредност није валидна адреса електронске поште.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Датотека не може бити пронађена.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Датотека није читљива.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Датотека је превелика ({{ size }} {{ suffix }}). Највећа дозвољена величина је {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Миме тип датотеке није валидан ({{ type }}). Дозвољени миме типови су {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Вредност треба да буде {{ limit }} или мање.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Вредност је предугачка. Треба да има {{ limit }} карактер или мање.|Вредност је предугачка. Треба да има {{ limit }} карактера или мање.|Вредност је предугачка. Треба да има {{ limit }} карактера или мање.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Вредност треба да буде {{ limit }} или више.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Вредност је прекратка. Треба да има {{ limit }} карактер или више.|Вредност је прекратка. Треба да има {{ limit }} карактера или више.|Вредност је прекратка. Треба да има {{ limit }} карактера или више.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Вредност не треба да буде празна.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Вредност не треба да буде null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Вредност треба да буде null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Вредност је невалидна.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Вредност није валидно време.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Вредност није валидан URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Обе вредности треба да буду једнаке.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Датотека је превелика. Највећа дозвољена величина је {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Датотека је превелика.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Датотека не може бити отпремљена.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Вредност треба да буде валидан број.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ова датотека није валидна слика.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Ово није валидна ИП адреса.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Вредност није валидан језик.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Вредност није валидан локал.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Вредност није валидна земља.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Вредност је већ искоришћена.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Величина слике не може бити одређена.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Ширина слике је превелика ({{ width }}px). Најећа дозвољена ширина је {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Ширина слике је премала ({{ width }}px). Најмања дозвољена ширина је {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Висина слике је превелика ({{ height }}px). Најећа дозвољена висина је {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Висина слике је премала ({{ height }}px). Најмања дозвољена висина је {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Вредност треба да буде тренутна корисничка лозинка.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Вредност треба да има тачно {{ limit }} карактер.|Вредност треба да има тачно {{ limit }} карактера.|Вредност треба да има тачно {{ limit }} карактера.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Датотека је само парцијално отпремљена.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Датотека није отпремљена.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Привремени директоријум није конфигурисан у php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Немогуће писање привремене датотеке на диск.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP екстензија је проузроковала неуспех отпремања датотеке.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ова колекција треба да садржи {{ limit }} или више елемената.|Ова колекција треба да садржи {{ limit }} или више елемената.|Ова колекција треба да садржи {{ limit }} или више елемената.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ова колекција треба да садржи {{ limit }} или мање елемената.|Ова колекција треба да садржи {{ limit }} или мање елемената.|Ова колекција треба да садржи {{ limit }} или мање елемената.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ова колекција треба да садржи тачно {{ limit }} елемент.|Ова колекција треба да садржи тачно {{ limit }} елемента.|Ова колекција треба да садржи тачно {{ limit }} елемената.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Невалидан број картице.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Невалидан број картице или тип картице није подржан.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Ово није валидан међународни број банковног рачуна (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Ово није валидан ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Ово није валидан ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Ово није валидан ISBN-10 или ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Ово није валидан ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Ово није валидна валута.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ова вредност треба да буде {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ова вредност треба да буде већа од {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ова вредност треба да буде већа или једнака {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ова вредност треба да буде идентична са {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ова вредност треба да буде мања од {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ова вредност треба да буде мања или једнака {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ова вредност не треба да буде једнака {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ова вредност не треба да буде идентична са {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Размера ове слике је превелика ({{ ratio }}). Максимална дозвољена размера је {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Размера ове слике је премала ({{ ratio }}). Минимална очекивана размера је {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Слика је квадратна ({{ width }}x{{ height }}px). Квадратне слике нису дозвољене.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Слика је оријентације пејзажа ({{ width }}x{{ height }}px). Пејзажна оријентација слика није дозвољена.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Слика је оријантације портрета ({{ width }}x{{ height }}px). Портретна оријентација слика није дозвољена.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf b/core/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf
deleted file mode 100644
index 60c093a..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.sr_Latn.xlf
+++ /dev/null
@@ -1,303 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Vrednost treba da bude netačna.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Vrednost treba da bude tačna.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Vrednost treba da bude tipa {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Vrednost treba da bude prazna.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Vrednost treba da bude jedna od ponuđenih.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Izaberite bar {{ limit }} mogućnost.|Izaberite bar {{ limit }} mogućnosti.|Izaberite bar {{ limit }} mogućnosti.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Izaberite najviše {{ limit }} mogućnost.|Izaberite najviše {{ limit }} mogućnosti.|Izaberite najviše {{ limit }} mogućnosti.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Jedna ili više vrednosti je nevalidna.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Ovo polje ne očekuje.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Ovo polje nedostaje.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Vrednost nije validan datum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Vrednost nije validan datum-vreme.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Vrednost nije validna adresa elektronske pošte.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Datoteka ne može biti pronađena.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Datoteka nije čitljiva.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Datoteka je prevelika ({{ size }} {{ suffix }}). Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mime tip datoteke nije validan ({{ type }}). Dozvoljeni mime tipovi su {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Vrednost treba da bude {{ limit }} ili manje.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Vrednost je predugačka. Treba da ima {{ limit }} karakter ili manje.|Vrednost je predugačka. Treba da ima {{ limit }} karaktera ili manje.|Vrednost je predugačka. Treba da ima {{ limit }} karaktera ili manje.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Vrednost treba da bude {{ limit }} ili više.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Vrednost je prekratka. Treba da ima {{ limit }} karakter ili više.|Vrednost je prekratka. Treba da ima {{ limit }} karaktera ili više.|Vrednost je prekratka. Treba da ima {{ limit }} karaktera ili više.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Vrednost ne treba da bude prazna.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Vrednost ne treba da bude null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Vrednost treba da bude null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Vrednost je nevalidna.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Vrednost nije validno vreme.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Vrednost nije validan URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Obe vrednosti treba da budu jednake.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Datoteka je prevelika. Najveća dozvoljena veličina je {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Datoteka je prevelika.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Datoteka ne može biti otpremljena.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Vrednost treba da bude validan broj.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Ova datoteka nije validna slika.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Ovo nije validna IP adresa.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Vrednost nije validan jezik.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Vrednost nije validan lokal.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Vrednost nije validna zemlja.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Vrednost je već iskorišćena.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Veličina slike ne može biti određena.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Širina slike je prevelika ({{ width }}px). Najeća dozvoljena širina je {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Širina slike je premala ({{ width }}px). Najmanja dozvoljena širina je {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Visina slike je prevelika ({{ height }}px). Najeća dozvoljena visina je {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Visina slike je premala ({{ height }}px). Najmanja dozvoljena visina je {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Vrednost treba da bude trenutna korisnička lozinka.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Vrednost treba da ima tačno {{ limit }} karakter.|Vrednost treba da ima tačno {{ limit }} karaktera.|Vrednost treba da ima tačno {{ limit }} karaktera.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Datoteka je samo parcijalno otpremljena.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Datoteka nije otpremljena.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Privremeni direktorijum nije konfigurisan u php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Nemoguće pisanje privremene datoteke na disk.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP ekstenzija je prouzrokovala neuspeh otpremanja datoteke.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ova kolekcija treba da sadrži {{ limit }} ili više elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili više elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili više elemenata.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ova kolekcija treba da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili manje elemenata.|Ova kolekcija treba da sadrži {{ limit }} ili manje elemenata.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ova kolekcija treba da sadrži tačno {{ limit }} element.|Ova kolekcija treba da sadrži tačno {{ limit }} elementa.|Ova kolekcija treba da sadrži tačno {{ limit }} elemenata.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Nevalidan broj kartice.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Nevalidan broj kartice ili tip kartice nije podržan.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Ovo nije validan međunarodni broj bankovnog računa (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Ovo nije validan ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Ovo nije validan ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Ovo nije validan ISBN-10 ili ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Ovo nije validan ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Ovo nije validna valuta.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Ova vrednost treba da bude {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Ova vrednost treba da bude veća od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Ova vrednost treba da bude veća ili jednaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ova vrednost treba da bude identična sa {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Ova vrednost treba da bude manja od {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Ova vrednost treba da bude manja ili jednaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Ova vrednost ne treba da bude jednaka {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Ova vrednost ne treba da bude identična sa {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Razmera ove slike je prevelika ({{ ratio }}). Maksimalna dozvoljena razmera je {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Razmera ove slike je premala ({{ ratio }}). Minimalna očekivana razmera je {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Slika je kvadratna ({{ width }}x{{ height }}px). Kvadratne slike nisu dozvoljene.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Slika je orijentacije pejzaža ({{ width }}x{{ height }}px). Pejzažna orijentacija slika nije dozvoljena.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Slika je orijantacije portreta ({{ width }}x{{ height }}px). Portretna orijentacija slika nije dozvoljena.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.sv.xlf b/core/vendor/symfony/validator/Resources/translations/validators.sv.xlf
deleted file mode 100644
index fbcb5f2..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.sv.xlf
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Värdet ska vara falskt.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Värdet ska vara sant.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Värdet ska vara av typen {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Värdet ska vara tomt.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Värdet ska vara ett av de givna valen.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Du måste välja minst {{ limit }} val.|Du måste välja minst {{ limit }} val.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Du kan som mest välja {{ limit }} val.|Du kan som mest välja {{ limit }} val.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Ett eller fler av de angivna värdena är ogiltigt.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Det här fältet förväntades inte.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Det här fältet saknas.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Värdet är inte ett giltigt datum.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Värdet är inte ett giltigt datum med tid.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Värdet är inte en giltig epost-adress.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Filen kunde inte hittas.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Filen är inte läsbar.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Filen är för stor ({{ size }} {{ suffix }}). Största tillåtna storlek är {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Filens MIME-typ ({{ type }}) är ogiltig. De tillåtna typerna är {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Värdet ska vara {{ limit }} eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Värdet är för långt. Det ska ha {{ limit }} tecken eller färre.|Värdet är för långt. Det ska ha {{ limit }} tecken eller färre.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Värdet ska vara {{ limit }} eller mer.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Värdet är för kort. Det ska ha {{ limit }} tecken eller mer.|Värdet är för kort. Det ska ha {{ limit }} tecken eller mer.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Värdet kan inte vara tomt.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Värdet kan inte vara null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Värdet ska vara null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Värdet är inte giltigt.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Värdet är inte en giltig tid.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Värdet är inte en giltig URL.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>De två värdena måste vara lika.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Filen är för stor. Tillåten maximal storlek är {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Filen är för stor.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Filen kunde inte laddas upp.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Värdet ska vara ett giltigt nummer.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Filen är ingen giltig bild.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Det här är inte en giltig IP-adress.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Värdet är inte ett giltigt språk.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Värdet är inte en giltig plats.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Värdet är inte ett giltigt land.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Värdet används redan.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Det gick inte att fastställa storleken på bilden.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Bildens bredd är för stor ({{ width }}px). Tillåten maximal bredd är {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Bildens bredd är för liten ({{ width }}px). Minsta förväntade bredd är {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Bildens höjd är för stor ({{ height }}px). Tillåten maximal bredd är {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Bildens höjd är för liten ({{ height }}px). Minsta förväntade höjd är {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Värdet ska vara användarens nuvarande lösenord.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Värdet ska ha exakt {{ limit }} tecken.|Värdet ska ha exakt {{ limit }} tecken.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Filen laddades bara upp delvis.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Ingen fil laddades upp.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Det finns ingen temporär mapp konfigurerad i php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Kan inte skriva temporär fil till disken.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>En PHP extension gjorde att uppladdningen misslyckades.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Den här samlingen ska innehålla {{ limit }} element eller mer.|Den här samlingen ska innehålla {{ limit }} element eller mer.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Den här samlingen ska innehålla {{ limit }} element eller mindre.|Den här samlingen ska innehålla {{ limit }} element eller mindre.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Den här samlingen ska innehålla exakt {{ limit }} element.|Den här samlingen ska innehålla exakt {{ limit }} element.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Ogiltigt kortnummer.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Okänd korttyp eller ogiltigt kortnummer.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Det här är inte en giltig International Bank Account Number (IBANK).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Värdet är inte en giltig ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Värdet är inte en giltig ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Värdet är varken en giltig ISBN-10 eller en giltig ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Värdet är inte en giltig ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Värdet är inte en giltig valuta.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Värdet ska vara detsamma som {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Värdet ska vara större än {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Värdet ska bara större än eller detsamma som {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Värdet ska vara identiskt till {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Värdet ska vara mindre än {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Värdet ska vara mindre än eller detsamma som {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Värdet ska inte vara detsamma som {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Värdet ska inte vara identiskt med {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>Förhållandet mellan bildens bredd och höjd är för stort ({{ ratio }}). Högsta tillåtna förhållande är {{ max_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>Förhållandet mellan bildens bredd och höjd är för litet ({{ ratio }}). Minsta tillåtna förhållande är {{ min_ratio }}.</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>Bilden är kvadratisk ({{ width }}x{{ height }}px). Kvadratiska bilder tillåts inte.</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>Bilden är landskapsorienterad ({{ width }}x{{ height }}px). Landskapsorienterade bilder tillåts inte.</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>Bilden är porträttsorienterad ({{ width }}x{{ height }}px). Porträttsorienterade bilder tillåts inte.</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>En tom fil är inte tillåten.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.th.xlf b/core/vendor/symfony/validator/Resources/translations/validators.th.xlf
deleted file mode 100644
index d5b5703..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.th.xlf
+++ /dev/null
@@ -1,303 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>ค่านี้ควรจะเป็น false</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>ค่านี้ควรจะเป็น true</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>ค่านี้ควรจะเป็นชนิด {{ type }}</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>ควรจะเป็นค่าว่าง</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>คุณเลือกค่าที่ไม่ตรงกับตัวเลือก</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>คุณต้องเลือกอย่างน้อย {{ limit }} ตัวเลือก</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>คุณเลือกได้มากที่สุด {{ limit }} ตัวเลือก</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>มีบางค่าที่ส่งมาไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>ฟิลด์นี้ที่ไม่ได้คาดหวัง</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>ฟิลด์นี้จะหายไป</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>ค่าของวันที่ไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>ค่าของวันที่และเวลาไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>ค่าของอีเมล์ไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>ไม่พบไฟล์</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>ไฟล์ไม่อยู่ในสถานะที่สามารถอ่านได้</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>ไฟล์ใหญ่เกิน ({{ size }} {{ suffix }}) อนุญาตให้ใหญ่ที่สุดได้ไม่เกิน {{ limit }} {{ suffix }}</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Mime type ของไฟล์ไม่ถูกต้อง ({{ type }}) Mime types ที่อนุญาตคือ {{ types }}</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>ค่านี้ควรจะเป็น {{ limit }} หรือน้อยกว่านั้น</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>ค่านี้ยาวเกินไป ควรจะมีแค่ {{ limit }} ตัวอักษรหรือน้อยกว่านั้น</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>ค่านี้ควรจะมี {{ limit }} หรือมากกว่านั้น</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>ค่านี้สั้นเกินไป ควรจะมี {{ limit }} ตัวอักษรหรือมากกว่านั้น</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>ค่านี้ไม่ควรเป็นค่าว่าง</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>ค่านี้ไม่ควรเป็นค่า null</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>ค่านี้ควรเป็นค่า null</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>ค่านี้ไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>ค่าของเวลาไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>ค่าของ URL ไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>ค่าทั้งสองค่าควรจะเหมือนกัน</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>ขนาดไฟล์ใหญ่เกินไป อนุญาตให้ไฟล์ขนาดใหญ่ได้ไม่เกิน {{ limit }} {{ suffix }}</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>ขนาดไฟล์ใหญ่เกินไป</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>ไม่สามารถอัปโหลดไฟล์ได้</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>ค่าของตัวเลขไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>ไฟล์นี้ไม่ใช่ไฟล์รูปภาพ</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>ค่าของ IP ไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>ค่าของภาษาไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>ค่าของภูมิภาค (Locale) ไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>ค่าของประเทศไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Tค่านี้ถูกใช้งานไปแล้ว</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>ไม่สามารถตรวจสอบขนาดไฟล์ของภาพได้</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>ความกว้างของภาพเกินขนาด ({{ width }}px) อนุญาตให้กว้างได้มากที่สุด {{ max_width }}px</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>ความกว้างของภาพไม่ได้ขนาด ({{ width }}px) อนุญาตให้สั้นที่สุด {{ min_width }}px</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>ความสูงของภาพเกินขนาด ({{ height }}px) อนุญาตให้สูงได้มากที่สุด {{ max_height }}px</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>ความสูงของภาพไม่ได้ขนาด ({{ height }}px) อนุญาตให้สูงอย่างน้อยที่สุด {{ min_height }}px</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>ค่านี้ควรจะเป็นรหัสผ่านปัจจุบันของผู้ใช้</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>ค่านี้ควรจะมีความยาว {{ limit }} ตัวอักษร</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>อัปโหลดไฟล์ได้เพียงบางส่วนเท่านั้น</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>ไม่มีไฟล์ใดถูกอัปโหลด</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>ไม่พบไฟล์ temp ควรจะกำหนดใน php.ini</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>ไม่สามารถเขียน temp ไฟล์ลงดิสก์ได้</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>PHP extension เกี่ยวกับการอัปโหลดมีปัญหา</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>คอเล็กชั่นนี้ควรจะประกอบไปด้วยอ่างน้อย {{ limit }} สมาชิก</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>คอเล็กชั่นนี้ไม่ควรมีสมาชิกเกิน {{ limit }}</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>คอเล็กชั่นนี้ควรจะมีสมาชิก {{ limit }} เท่านั้น</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>หมายเลขบัตรไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>ไม่รู้จักประเภทของบัตร หรือหมายเลขบัตรไม่ถูกต้อง</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>นี่ไม่ถูกต้องตาม International Bank Account Number (IBAN)</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>ค่านี้ไม่ถูกต้องตาม ISBN-10</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>ค่านี้ไม่ถูกต้องตาม ISBN-13</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>ค่านี้ไม่ถูกต้องตามทั้ง ISBN-10 และ ISBN-13</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>ค่านี้ไม่ถุกต้องตาม ISSN</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>ค่านี้ไม่ถูกต้องตามสกุลเงิน</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>ค่านี้ไม่ตรงกับ {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>ค่านี้ควรจะมากกว่า {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>ค่านี้ควรจะมากกว่าหรือตรงกับ {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>ค่านี้ควรจะเหมือนกันกับ {{ compared_value_type }} {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>ค่านี้ควรจะน้อยกว่า {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>ค่านี้ควรจะน้อยกว่าหรือเท่ากับ {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>ค่านี้ไม่ควรเท่ากันกับ {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>ค่านี้ไม่ควรเหมือนกันกับ {{ compared_value_type }} {{ compared_value }}</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>สัดส่วนของภาพใหญ่เกิน ({{ ratio }}) สามารถมีขนาดใหญ่ที่สุดได้ {{ max_ratio }}</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>สัดส่วนของภาพเล็กเกิน ({{ ratio }}) สามารถมีขนาดเล็กที่สุดได้ {{ min_ratio }}</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>รูปภาพเป็นจุตรัส ({{ width }}x{{ height }}px) ไม่อนุญาตภาพที่เป็นสี่เหลี่ยมจตุรัส</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>ภาพนี้เป็นแนวนอน ({{ width }}x{{ height }}px) ไม่อนุญาตภาพที่เป็นแนวนอน</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>ภาพนี้เป็นแนวตั้ง ({{ width }}x{{ height }}px) ไม่อนุญาตภาพที่เป็นแนวตั้ง</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.tr.xlf b/core/vendor/symfony/validator/Resources/translations/validators.tr.xlf
deleted file mode 100644
index a7906ea..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.tr.xlf
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Bu değer olumsuz olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Bu değer olumlu olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Bu değerin tipi {{ type }} olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Bu değer boş olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Seçtiğiniz değer geçerli bir seçenek değil.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>En az {{ limit }} seçenek belirtmelisiniz.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>En çok {{ limit }} seçenek belirtmelisiniz.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Verilen değerlerden bir veya daha fazlası geçersiz.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Bu alan beklenen olmadı.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Bu alan, eksik</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Bu değer doğru bir tarih biçimi değildir.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Bu değer doğru bir tarihsaat biçimi değildir.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Bu değer doğru bir e-mail adresi değildir.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Dosya bulunamadı.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Dosya okunabilir değil.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Dosya çok büyük ({{ size }} {{ suffix }}). İzin verilen en büyük dosya boyutu {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Dosyanın mime tipi geçersiz ({{ type }}). İzin verilen mime tipleri {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Bu değer {{ limit }} ve altında olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Bu değer çok uzun. {{ limit }} karakter veya daha az olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Bu değer {{ limit }} veya daha fazla olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Bu değer çok kısa. {{ limit }} karakter veya daha fazla olmaldır.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Bu değer boş bırakılmamalıdır.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Bu değer boş bırakılmamalıdır.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Bu değer boş bırakılmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Bu değer geçerli değil.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Bu değer doğru bir saat değil.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Bu değer doğru bir URL değil.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>İki değer eşit olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Dosya çok büyük. İzin verilen en büyük dosya boyutu {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Dosya çok büyük.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Dosya yüklenemiyor.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Bu değer geçerli bir rakam olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Bu dosya geçerli bir resim değildir.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Bu geçerli bir IP adresi değildir.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Bu değer geçerli bir lisan değil.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Bu değer geçerli bir yer değildir.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Bu değer geçerli bir ülke değildir.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Bu değer şu anda kullanımda.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Resmin boyutu saptanamıyor.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Resmin genişliği çok büyük ({{ width }}px). İzin verilen en büyük genişlik {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Resmin genişliği çok küçük ({{ width }}px). En az {{ min_width }}px olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Resmin yüksekliği çok büyük ({{ height }}px). İzin verilen en büyük yükseklik {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Resmin yüksekliği çok küçük ({{ height }}px). En az {{ min_height }}px olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Bu değer kullanıcının şu anki şifresi olmalıdır.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Bu değer tam olarak {{ limit }} karakter olmaldır.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Dosya sadece kısmen yüklendi.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Hiçbir dosya yüklenmedi.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>php.ini içerisinde geçici dizin tanımlanmadı.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Geçici dosya diske yazılamıyor.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Bir PHP eklentisi dosyanın yüklemesini başarısız kıldı.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Bu derlem {{ limit }} veya daha çok eleman içermelidir.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Bu derlem {{ limit }} veya daha az eleman içermelidir.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Bu derlem {{ limit }} eleman içermelidir.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Geçersiz kart numarası.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Desteklenmeyen kart tipi veya geçersiz kart numarası.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.uk.xlf b/core/vendor/symfony/validator/Resources/translations/validators.uk.xlf
deleted file mode 100644
index 02ecd5a..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.uk.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-﻿<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Значення повинно бути Ні.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Значення повинно бути Так.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Тип значення повинен бути {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Значення повинно бути пустим.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Обране вами значення недопустиме.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Ви повинні обрати хоча б {{ limit }} варіант.|Ви повинні обрати хоча б {{ limit }} варіанти.|Ви повинні обрати хоча б {{ limit }} варіантів.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Ви повинні обрати не більше ніж {{ limit }} варіантів.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Одне або кілька заданих значень є недопустимі.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Це поле не очікується.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Це поле не вистачає.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Дане значення не є вірною датою.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Дане значення дати та часу недопустиме.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Значення адреси электронної пошти недопустиме.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Файл не знайдено.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Файл не читається.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файл занадто великий ({{ size }} {{ suffix }}). Дозволений максимальний розмір {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>MIME-тип файлу недопустимий ({{ type }}). Допустимі MIME-типи файлів {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Значення повинно бути {{ limit }} або менше.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Значення занадто довге. Повинно бути рівне {{ limit }} символу або менше.|Значення занадто довге. Повинно бути рівне {{ limit }} символам або менше.|Значення занадто довге. Повинно бути рівне {{ limit }} символам або менше.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Значення повинно бути {{ limit }} або більше.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Значення занадто коротке. Повинно бути рівне {{ limit }} символу або більше.|Значення занадто коротке. Повинно бути рівне {{ limit }} символам або більше.|Значення занадто коротке. Повинно бути рівне {{ limit }} символам або більше.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Значення не повинно бути пустим.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Значення не повинно бути null.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Значення повинно бути null.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Значення недопустиме.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Значення часу недопустиме.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Значення URL недопустиме.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Обидва занчення повинні бути одинаковими.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Файл занадто великий. Максимальний допустимий розмір {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Файл занадто великий.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Файл не можливо завантажити.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Значення має бути допустимим числом.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Цей файл не є допустимим форматом зображення.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Це некоректна IP адреса.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Це некоректна мова.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Це некоректна локалізація.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Це некоректна країна.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Це значення вже використовується.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Не вдалося визначити розмір зображення.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Ширина зображення занадто велика ({{ width }}px). Максимально допустима ширина {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Ширина зображення занадто мала ({{ width }}px). Мінімально допустима ширина {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Висота зображення занадто велика ({{ height }}px). Максимально допустима висота {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Висота зображення занадто мала ({{ height }}px). Мінімально допустима висота {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Значення має бути поточним паролем користувача.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Значення повиино бути рівним {{ limit }} символу.|Значення повиино бути рівним {{ limit }} символам.|Значення повиино бути рівним {{ limit }} символам.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Файл був завантажений лише частково.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Файл не був завантажений.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Не налаштована тимчасова директорія в php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Неможливо записати тимчасовий файл на диск.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Розширення PHP викликало помилку при завантаженні.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Ця колекція повинна містити {{ limit }} елемент чи більше.|Ця колекція повинна містити {{ limit }} елемента чи більше.|Ця колекція повинна містити {{ limit }} елементів чи більше.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Ця колекція повинна містити {{ limit }} елемент чи менше.|Ця колекція повинна містити {{ limit }} елемента чи менше.|Ця колекція повинна містити {{ limit }} елементов чи менше.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Ця колекція повинна містити рівно {{ limit }} елемент.|Ця колекція повинна містити рівно {{ limit }} елемента.|Ця колекція повинна містити рівно {{ limit }} елементів.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Невірний номер карти.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Непідтримуваний тип карти або невірний номер карти.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Це не дійсний міжнародний номер банківського рахунку (IBAN).</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Значення не у форматі ISBN-10.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Значення не у форматі ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Значення не відповідає форматам ISBN-10 та ISBN-13.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Значення має невірний формат ISSN.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Значення має невірний формат валюти.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Значення повинно дорівнювати {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Значення має бути більше ніж {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Значення має бути більше або дорівнювати {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Значення має бути ідентичним {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Значення повинно бути менше ніж {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Значення повинно бути менше або дорівнювати {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Значення не повинно дорівнювати  {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Значення не повинно бути ідентичним {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.vi.xlf b/core/vendor/symfony/validator/Resources/translations/validators.vi.xlf
deleted file mode 100644
index e1833c7..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.vi.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>Giá trị này phải là sai.</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>Giá trị này phải là đúng.</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>Giá trị này phải là kiểu  {{ type }}.</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>Giá trị này phải rỗng.</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>Giá trị bạn vừa chọn không hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>Bạn phải chọn ít nhất {{ limit }} lựa chọn.|Bạn phải chọn ít nhất {{ limit }} lựa chọn.</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>Bạn phải chọn nhiều nhất {{ limit }} lựa chọn.|Bạn phải chọn nhiều  nhất {{ limit }} lựa chọn.</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>Một hoặc nhiều giá trị được chọn không hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>Lĩnh vực này không được dự kiến.</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>Lĩnh vực này là mất tích.</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>Giá trị không phải là ngày hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>Giá trị không phải là ngày tháng hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>Giá trị này không phải là email hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>Tập tin không tìm thấy.</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>Tập tin không thể đọc được.</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Tập tin quá lớn ({{ size }} {{ suffix }}). Kích thước tối đa cho phép {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>Kiểu mime của tập tin không hợp lệ ({{ type }}). Kiểu hợp lệ là {{ types }}.</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>Giá trị phải bằng hoặc nhỏ hơn {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>Giá trị quá dài. Phải bằng hoặc ít hơn {{ limit }} kí tự.|Giá trị quá dài. Phải bằng hoặc ít hơn {{ limit }} kí tự.</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>Giá trị phải lớn hơn hoặc bằng {{ limit }}.</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>Giá trị quá ngắn. Phải hơn hoặc bằng {{ limit }} kí tự.|Giá trị quá ngắn. Phải hơn hoặc bằng {{ limit }} kí tự.</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>Giá trị không được phép để trống.</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>Giá trị không được phép rỗng.</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>Giá trị phải rỗng.</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>Giá trị không hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>Giá trị không phải là thời gian hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>Giá trị không phải là địa chỉ URL hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>Hai giá trị phải bằng nhau.</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>Tập tin quá lớn. Kích thước tối đa cho phép là {{ limit }} {{ suffix }}.</target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>Tập tin quá lớn.</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>Tập tin không thể tải lên.</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>Giá trị phải là con số.</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This file is not a valid image.</source>
-                <target>Tập tin không phải là hình ảnh.</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This is not a valid IP address.</source>
-                <target>Địa chỉ IP không hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This value is not a valid language.</source>
-                <target>Giá trị không phải là ngôn ngữ hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid locale.</source>
-                <target>Giá trị không phải là một bản địa địa phương hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid country.</source>
-                <target>Giá trị không phải là nước hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>Giá trị đã được sử dụng.</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>Kích thước của hình ảnh không thể xác định.</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>Chiều rộng của hình quá lớn ({{ width }}px). Chiều rộng tối đa phải là {{ max_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>Chiều rộng của hình quá thấp ({{ width }}px). Chiều rộng tối thiểu phải là {{ min_width }}px.</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>Chiều cao của hình quá cao ({{ height }}px). Chiều cao tối đa phải là {{ max_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>Chiều cao của hình quá thấp ({{ height }}px). Chiều cao tối thiểu phải là {{ min_height }}px.</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>Giá trị này phải là mật khẩu hiện tại của người dùng.</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>Giá trị phải có chính xác {{ limit }} kí tự.|Giá trị phải có chính xác {{ limit }} kí tự.</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>Tập tin chỉ được tải lên một phần.</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>Tập tin không được tải lên.</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>Thư mục tạm không được định nghĩa trong php.ini.</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>Không thể ghi tập tin tạm ra đĩa.</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>Một PHP extension đã phá hỏng quá trình tải lên của tập tin.</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>Danh sách phải chứa {{ limit }} hoặc nhiều hơn thành phần.|Danh sách phải chứa {{ limit }} hoặc nhiều hơn thành phần.</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>Danh sách phải chứa {{ limit }} hoặc ít hơn thành phần.|Danh sách phải chứa {{ limit }} hoặc ít hơn thành phần.</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>Danh sách phải chứa chính xác {{ limit }} thành phần.|Danh sách phải chứa chính xác {{ limit }} thành phần.</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>Số thẻ không hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>Thẻ không được hỗ trợ hoặc số thẻ không hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>Giá trị không phải là International Bank Account Number (IBAN) hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>Giá trị không phải là ISBN-10 hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>Giá trị không phải là ISBN-13 hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>Giá trị không phải là ISBN-10 hoặc ISBN-13 hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>Giá trị không là ISSN hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>Giá trị không phải là đơn vi tiền tệ hợp lệ.</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>Giá trị phải bằng {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>Giá trị phải lớn hơn {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>Giá trị phải lớn hơn hoặc bằng {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Giá trị phải giống  {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>Giá trị phải bé hơn {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>Giá trị không được phép nhỏ hơn hoặc bằng {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>Giá trị không được phép bằng {{ compared_value }}.</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>Giá trị không được phép giống như {{ compared_value_type }} {{ compared_value }}.</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf b/core/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf
deleted file mode 100644
index 6c95ef1..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.zh_CN.xlf
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>该变量的值应为 false 。</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>该变量的值应为 true 。</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>该变量的类型应为 {{ type }} 。</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>该变量值应为空。</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>选定变量的值不是有效的选项。</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>您至少要选择 {{ limit }} 个选项。</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>您最多能选择 {{ limit }} 个选项。</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>一个或者多个给定的值无效。</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>此字段是多余的。</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>此字段缺失。</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>该值不是一个有效的日期（date）。</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>该值不是一个有效的日期时间（datetime）。</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>该值不是一个有效的邮件地址。</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>文件未找到。</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>文件不可读。</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>文件太大 ({{ size }} {{ suffix }})。文件大小不可以超过 {{ limit }} {{ suffix }} 。</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>无效的文件类型 ({{ type }}) 。允许的文件类型有 {{ types }} 。</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>这个变量的值应该小于或等于 {{ limit }}。</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>字符串太长，长度不可超过 {{ limit }} 个字符。</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>该变量的值应该大于或等于 {{ limit }}。</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>字符串太短，长度不可少于 {{ limit }} 个字符。</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>该变量不应为空。</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>该变量不应为 null 。</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>该变量应为空 null 。</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>该变量值无效 。</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>该值不是一个有效的时间。</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>该值不是一个有效的 URL 。</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>这两个变量的值应该相等。</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>文件太大，文件大小不可以超过 {{ limit }} {{ suffix }}。 </target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>文件太大。</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>无法上传此文件。</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>该值应该为有效的数字。</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This value is not a valid country.</source>
-                <target>该值不是有效的国家名。</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This file is not a valid image.</source>
-                <target>该文件不是有效的图片。</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This is not a valid IP address.</source>
-                <target>该值不是有效的IP地址。</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid language.</source>
-                <target>该值不是有效的语言名。</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid locale.</source>
-                <target>该值不是有效的区域值（locale）。</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>该值已经被使用。</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>不能解析图片大小。</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>图片太宽 ({{ width }}px)，最大宽度为 {{ max_width }}px 。</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>图片宽度不够 ({{ width }}px)，最小宽度为 {{ min_width }}px 。</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>图片太高 ({{ height }}px)，最大高度为 {{ max_height }}px 。</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>图片高度不够 ({{ height }}px)，最小高度为 {{ min_height }}px 。</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>该变量的值应为用户当前的密码。</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>该变量应为 {{ limit }} 个字符。</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>该文件的上传不完整。</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>没有上传任何文件。</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>php.ini 里没有配置临时文件目录。</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>临时文件写入磁盘失败。</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>某个 PHP 扩展造成上传失败。</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>该集合最少应包含 {{ limit }} 个元素。</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>该集合最多包含 {{ limit }} 个元素。</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>该集合应包含 {{ limit }} 个元素 element 。</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>无效的信用卡号。</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>不支持的信用卡类型或无效的信用卡号。</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>该值不是有效的国际银行帐号（IBAN）。</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>该值不是有效的10位国际标准书号（ISBN-10）。</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>该值不是有效的13位国际标准书号（ISBN-13）。</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>该值不是有效的国际标准书号（ISBN-10 或 ISBN-13）。</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>该值不是有效的国际标准期刊号（ISSN）。</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>该值不是有效的货币名（currency）。</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>该值应等于 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>该值应大于 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>该值应大于或等于 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>该值应与 {{ compared_value_type }} {{ compared_value }} 相同。</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>该值应小于 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>该值应小于或等于 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>该值不应先等于 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>该值不应与 {{ compared_value_type }} {{ compared_value }} 相同。</target>
-            </trans-unit>
-            <trans-unit id="73">
-                <source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
-                <target>图片宽高比太大 ({{ ratio }})。允许的最大宽高比为 {{ max_ratio }}。</target>
-            </trans-unit>
-            <trans-unit id="74">
-                <source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
-                <target>图片宽高比太小 ({{ ratio }})。允许的最大宽高比为 {{ min_ratio }}。</target>
-            </trans-unit>
-            <trans-unit id="75">
-                <source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
-                <target>图片是方形的 ({{ width }}x{{ height }}px)。不允许使用方形的图片。</target>
-            </trans-unit>
-            <trans-unit id="76">
-                <source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
-                <target>图片是横向的 ({{ width }}x{{ height }}px)。不允许使用横向的图片。</target>
-            </trans-unit>
-            <trans-unit id="77">
-                <source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
-                <target>图片是纵向的 ({{ width }}x{{ height }}px)。不允许使用纵向的图片。</target>
-            </trans-unit>
-            <trans-unit id="78">
-                <source>An empty file is not allowed.</source>
-                <target>不允许使用空文件。</target>
-            </trans-unit>
-            <trans-unit id="79">
-                <source>The host could not be resolved.</source>
-                <target>主机名无法解析。</target>
-            </trans-unit>
-            <trans-unit id="80">
-                <source>This value does not match the expected {{ charset }} charset.</source>
-                <target>该值不符合 {{ charset }} 编码。</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Resources/translations/validators.zh_TW.xlf b/core/vendor/symfony/validator/Resources/translations/validators.zh_TW.xlf
deleted file mode 100644
index d9d5f2f..0000000
--- a/core/vendor/symfony/validator/Resources/translations/validators.zh_TW.xlf
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0"?>
-<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
-    <file source-language="en" datatype="plaintext" original="file.ext">
-        <body>
-            <trans-unit id="1">
-                <source>This value should be false.</source>
-                <target>該變數的值應為 false 。</target>
-            </trans-unit>
-            <trans-unit id="2">
-                <source>This value should be true.</source>
-                <target>該變數的值應為 true 。</target>
-            </trans-unit>
-            <trans-unit id="3">
-                <source>This value should be of type {{ type }}.</source>
-                <target>該變數的類型應為 {{ type }} 。</target>
-            </trans-unit>
-            <trans-unit id="4">
-                <source>This value should be blank.</source>
-                <target>該變數應為空。</target>
-            </trans-unit>
-            <trans-unit id="5">
-                <source>The value you selected is not a valid choice.</source>
-                <target>選定變數的值不是有效的選項。</target>
-            </trans-unit>
-            <trans-unit id="6">
-                <source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
-                <target>您至少要選擇 {{ limit }} 個選項。</target>
-            </trans-unit>
-            <trans-unit id="7">
-                <source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
-                <target>您最多能選擇 {{ limit }} 個選項。</target>
-            </trans-unit>
-            <trans-unit id="8">
-                <source>One or more of the given values is invalid.</source>
-                <target>一個或者多個給定的值無效。</target>
-            </trans-unit>
-            <trans-unit id="9">
-                <source>This field was not expected.</source>
-                <target>此字段是沒有預料到。</target>
-            </trans-unit>
-            <trans-unit id="10">
-                <source>This field is missing.</source>
-                <target>此字段缺失。</target>
-            </trans-unit>
-            <trans-unit id="11">
-                <source>This value is not a valid date.</source>
-                <target>該值不是一個有效的日期（date）。</target>
-            </trans-unit>
-            <trans-unit id="12">
-                <source>This value is not a valid datetime.</source>
-                <target>該值不是一個有效的日期時間（datetime）。</target>
-            </trans-unit>
-            <trans-unit id="13">
-                <source>This value is not a valid email address.</source>
-                <target>該值不是一個有效的郵件地址。</target>
-            </trans-unit>
-            <trans-unit id="14">
-                <source>The file could not be found.</source>
-                <target>找不到檔案。</target>
-            </trans-unit>
-            <trans-unit id="15">
-                <source>The file is not readable.</source>
-                <target>無法讀取檔案。</target>
-            </trans-unit>
-            <trans-unit id="16">
-                <source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>檔案太大 ({{ size }} {{ suffix }})。檔案大小不可以超過 {{ limit }} {{ suffix }} 。</target>
-            </trans-unit>
-            <trans-unit id="17">
-                <source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
-                <target>無效的檔案類型 ({{ type }}) 。允許的檔案類型有 {{ types }} 。</target>
-            </trans-unit>
-            <trans-unit id="18">
-                <source>This value should be {{ limit }} or less.</source>
-                <target>這個變數的值應該小於或等於 {{ limit }}。</target>
-            </trans-unit>
-            <trans-unit id="19">
-                <source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
-                <target>字串太長，長度不可超過 {{ limit }} 個字元。</target>
-            </trans-unit>
-            <trans-unit id="20">
-                <source>This value should be {{ limit }} or more.</source>
-                <target>該變數的值應該大於或等於 {{ limit }}。</target>
-            </trans-unit>
-            <trans-unit id="21">
-                <source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
-                <target>字串太短，長度不可少於 {{ limit }} 個字元。</target>
-            </trans-unit>
-            <trans-unit id="22">
-                <source>This value should not be blank.</source>
-                <target>該變數不應為空白。</target>
-            </trans-unit>
-            <trans-unit id="23">
-                <source>This value should not be null.</source>
-                <target>該值不應為 null 。</target>
-            </trans-unit>
-            <trans-unit id="24">
-                <source>This value should be null.</source>
-                <target>該值應為 null 。</target>
-            </trans-unit>
-            <trans-unit id="25">
-                <source>This value is not valid.</source>
-                <target>無效的數值 。</target>
-            </trans-unit>
-            <trans-unit id="26">
-                <source>This value is not a valid time.</source>
-                <target>該值不是一個有效的時間。</target>
-            </trans-unit>
-            <trans-unit id="27">
-                <source>This value is not a valid URL.</source>
-                <target>該值不是一個有效的 URL 。</target>
-            </trans-unit>
-            <trans-unit id="31">
-                <source>The two values should be equal.</source>
-                <target>這兩個變數的值應該相等。</target>
-            </trans-unit>
-            <trans-unit id="32">
-                <source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
-                <target>檔案太大，檔案大小不可以超過 {{ limit }} {{ suffix }}。 </target>
-            </trans-unit>
-            <trans-unit id="33">
-                <source>The file is too large.</source>
-                <target>檔案太大。</target>
-            </trans-unit>
-            <trans-unit id="34">
-                <source>The file could not be uploaded.</source>
-                <target>無法上傳此檔案。</target>
-            </trans-unit>
-            <trans-unit id="35">
-                <source>This value should be a valid number.</source>
-                <target>該值應該為有效的數字。</target>
-            </trans-unit>
-            <trans-unit id="36">
-                <source>This value is not a valid country.</source>
-                <target>該值不是有效的國家名。</target>
-            </trans-unit>
-            <trans-unit id="37">
-                <source>This file is not a valid image.</source>
-                <target>該檔案不是有效的圖片。</target>
-            </trans-unit>
-            <trans-unit id="38">
-                <source>This is not a valid IP address.</source>
-                <target>該值不是有效的IP地址。</target>
-            </trans-unit>
-            <trans-unit id="39">
-                <source>This value is not a valid language.</source>
-                <target>該值不是有效的語言名。</target>
-            </trans-unit>
-            <trans-unit id="40">
-                <source>This value is not a valid locale.</source>
-                <target>該值不是有效的區域值（locale）。</target>
-            </trans-unit>
-            <trans-unit id="41">
-                <source>This value is already used.</source>
-                <target>該值已經被使用。</target>
-            </trans-unit>
-            <trans-unit id="42">
-                <source>The size of the image could not be detected.</source>
-                <target>不能解析圖片大小。</target>
-            </trans-unit>
-            <trans-unit id="43">
-                <source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
-                <target>圖片太寬 ({{ width }}px)，最大寬度為 {{ max_width }}px 。</target>
-            </trans-unit>
-            <trans-unit id="44">
-                <source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
-                <target>圖片寬度不夠 ({{ width }}px)，最小寬度為 {{ min_width }}px 。</target>
-            </trans-unit>
-            <trans-unit id="45">
-                <source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
-                <target>圖片太高 ({{ height }}px)，最大高度為 {{ max_height }}px 。</target>
-            </trans-unit>
-            <trans-unit id="46">
-                <source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
-                <target>圖片高度不夠 ({{ height }}px)，最小高度為 {{ min_height }}px 。</target>
-            </trans-unit>
-            <trans-unit id="47">
-                <source>This value should be the user's current password.</source>
-                <target>該變數的值應為用戶目前的密碼。</target>
-            </trans-unit>
-            <trans-unit id="48">
-                <source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
-                <target>該變數應為 {{ limit }} 個字元。</target>
-            </trans-unit>
-            <trans-unit id="49">
-                <source>The file was only partially uploaded.</source>
-                <target>該檔案的上傳不完整。</target>
-            </trans-unit>
-            <trans-unit id="50">
-                <source>No file was uploaded.</source>
-                <target>沒有上傳任何檔案。</target>
-            </trans-unit>
-            <trans-unit id="51">
-                <source>No temporary folder was configured in php.ini.</source>
-                <target>php.ini 裡沒有配置臨時目錄。</target>
-            </trans-unit>
-            <trans-unit id="52">
-                <source>Cannot write temporary file to disk.</source>
-                <target>暫存檔寫入磁碟失敗。</target>
-            </trans-unit>
-            <trans-unit id="53">
-                <source>A PHP extension caused the upload to fail.</source>
-                <target>某個 PHP 擴展造成上傳失敗。</target>
-            </trans-unit>
-            <trans-unit id="54">
-                <source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
-                <target>該集合最少應包含 {{ limit }} 個元素。</target>
-            </trans-unit>
-            <trans-unit id="55">
-                <source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
-                <target>該集合最多包含 {{ limit }} 個元素。</target>
-            </trans-unit>
-            <trans-unit id="56">
-                <source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
-                <target>該集合應包含 {{ limit }} 個元素 element 。</target>
-            </trans-unit>
-            <trans-unit id="57">
-                <source>Invalid card number.</source>
-                <target>無效的信用卡號。</target>
-            </trans-unit>
-            <trans-unit id="58">
-                <source>Unsupported card type or invalid card number.</source>
-                <target>不支援的信用卡類型或無效的信用卡號。</target>
-            </trans-unit>
-            <trans-unit id="59">
-                <source>This is not a valid International Bank Account Number (IBAN).</source>
-                <target>該值不是有效的國際銀行帳號（IBAN）。</target>
-            </trans-unit>
-            <trans-unit id="60">
-                <source>This value is not a valid ISBN-10.</source>
-                <target>該值不是有效的10位國際標準書號（ISBN-10）。</target>
-            </trans-unit>
-            <trans-unit id="61">
-                <source>This value is not a valid ISBN-13.</source>
-                <target>該值不是有效的13位國際標準書號（ISBN-13）。</target>
-            </trans-unit>
-            <trans-unit id="62">
-                <source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
-                <target>該值不是有效的國際標準書號（ISBN-10 或 ISBN-13）。</target>
-            </trans-unit>
-            <trans-unit id="63">
-                <source>This value is not a valid ISSN.</source>
-                <target>該值不是有效的國際標準期刊號（ISSN）。</target>
-            </trans-unit>
-            <trans-unit id="64">
-                <source>This value is not a valid currency.</source>
-                <target>該值不是有效的貨幣名（currency）。</target>
-            </trans-unit>
-            <trans-unit id="65">
-                <source>This value should be equal to {{ compared_value }}.</source>
-                <target>該值應等於 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="66">
-                <source>This value should be greater than {{ compared_value }}.</source>
-                <target>該值應大於 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="67">
-                <source>This value should be greater than or equal to {{ compared_value }}.</source>
-                <target>該值應大於或等於 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="68">
-                <source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>該值應與 {{ compared_value_type }} {{ compared_value }} 相同。</target>
-            </trans-unit>
-            <trans-unit id="69">
-                <source>This value should be less than {{ compared_value }}.</source>
-                <target>該值應小於 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="70">
-                <source>This value should be less than or equal to {{ compared_value }}.</source>
-                <target>該值應小於或等於 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="71">
-                <source>This value should not be equal to {{ compared_value }}.</source>
-                <target>該值應不等於 {{ compared_value }} 。</target>
-            </trans-unit>
-            <trans-unit id="72">
-                <source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
-                <target>該值不應與 {{ compared_value_type }} {{ compared_value }} 相同。</target>
-            </trans-unit>
-        </body>
-    </file>
-</xliff>
diff --git a/core/vendor/symfony/validator/Tests/ConstraintTest.php b/core/vendor/symfony/validator/Tests/ConstraintTest.php
deleted file mode 100644
index f63570c..0000000
--- a/core/vendor/symfony/validator/Tests/ConstraintTest.php
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Tests\Fixtures\ClassConstraint;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintC;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintWithValue;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintWithValueAsDefault;
-
-class ConstraintTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSetProperties()
-    {
-        $constraint = new ConstraintA(array(
-            'property1' => 'foo',
-            'property2' => 'bar',
-        ));
-
-        $this->assertEquals('foo', $constraint->property1);
-        $this->assertEquals('bar', $constraint->property2);
-    }
-
-    public function testSetNotExistingPropertyThrowsException()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\InvalidOptionsException');
-
-        new ConstraintA(array(
-            'foo' => 'bar',
-        ));
-    }
-
-    public function testMagicPropertiesAreNotAllowed()
-    {
-        $constraint = new ConstraintA();
-
-        $this->setExpectedException('Symfony\Component\Validator\Exception\InvalidOptionsException');
-
-        $constraint->foo = 'bar';
-    }
-
-    public function testInvalidAndRequiredOptionsPassed()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\InvalidOptionsException');
-
-        new ConstraintC(array(
-            'option1' => 'default',
-            'foo' => 'bar',
-        ));
-    }
-
-    public function testSetDefaultProperty()
-    {
-        $constraint = new ConstraintA('foo');
-
-        $this->assertEquals('foo', $constraint->property2);
-    }
-
-    public function testSetDefaultPropertyDoctrineStyle()
-    {
-        $constraint = new ConstraintA(array('value' => 'foo'));
-
-        $this->assertEquals('foo', $constraint->property2);
-    }
-
-    public function testSetDefaultPropertyDoctrineStylePlusOtherProperty()
-    {
-        $constraint = new ConstraintA(array('value' => 'foo', 'property1' => 'bar'));
-
-        $this->assertEquals('foo', $constraint->property2);
-        $this->assertEquals('bar', $constraint->property1);
-    }
-
-    public function testSetDefaultPropertyDoctrineStyleWhenDefaultPropertyIsNamedValue()
-    {
-        $constraint = new ConstraintWithValueAsDefault(array('value' => 'foo'));
-
-        $this->assertEquals('foo', $constraint->value);
-        $this->assertNull($constraint->property);
-    }
-
-    public function testDontSetDefaultPropertyIfValuePropertyExists()
-    {
-        $constraint = new ConstraintWithValue(array('value' => 'foo'));
-
-        $this->assertEquals('foo', $constraint->value);
-        $this->assertNull($constraint->property);
-    }
-
-    public function testSetUndefinedDefaultProperty()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\ConstraintDefinitionException');
-
-        new ConstraintB('foo');
-    }
-
-    public function testRequiredOptionsMustBeDefined()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\MissingOptionsException');
-
-        new ConstraintC();
-    }
-
-    public function testRequiredOptionsPassed()
-    {
-        new ConstraintC(array('option1' => 'default'));
-    }
-
-    public function testGroupsAreConvertedToArray()
-    {
-        $constraint = new ConstraintA(array('groups' => 'Foo'));
-
-        $this->assertEquals(array('Foo'), $constraint->groups);
-    }
-
-    public function testAddDefaultGroupAddsGroup()
-    {
-        $constraint = new ConstraintA(array('groups' => 'Default'));
-        $constraint->addImplicitGroupName('Foo');
-        $this->assertEquals(array('Default', 'Foo'), $constraint->groups);
-    }
-
-    public function testAllowsSettingZeroRequiredPropertyValue()
-    {
-        $constraint = new ConstraintA(0);
-        $this->assertEquals(0, $constraint->property2);
-    }
-
-    public function testCanCreateConstraintWithNoDefaultOptionAndEmptyArray()
-    {
-        new ConstraintB(array());
-    }
-
-    public function testGetTargetsCanBeString()
-    {
-        $constraint = new ClassConstraint();
-
-        $this->assertEquals('class', $constraint->getTargets());
-    }
-
-    public function testGetTargetsCanBeArray()
-    {
-        $constraint = new ConstraintA();
-
-        $this->assertEquals(array('property', 'class'), $constraint->getTargets());
-    }
-
-    public function testSerialize()
-    {
-        $constraint = new ConstraintA(array(
-            'property1' => 'foo',
-            'property2' => 'bar',
-        ));
-
-        $restoredConstraint = unserialize(serialize($constraint));
-
-        $this->assertEquals($constraint, $restoredConstraint);
-    }
-
-    public function testSerializeInitializesGroupsOptionToDefault()
-    {
-        $constraint = new ConstraintA(array(
-            'property1' => 'foo',
-            'property2' => 'bar',
-        ));
-
-        $constraint = unserialize(serialize($constraint));
-
-        $expected = new ConstraintA(array(
-            'property1' => 'foo',
-            'property2' => 'bar',
-            'groups' => 'Default',
-        ));
-
-        $this->assertEquals($expected, $constraint);
-    }
-
-    public function testSerializeKeepsCustomGroups()
-    {
-        $constraint = new ConstraintA(array(
-            'property1' => 'foo',
-            'property2' => 'bar',
-            'groups' => 'MyGroup',
-        ));
-
-        $constraint = unserialize(serialize($constraint));
-
-        $this->assertSame(array('MyGroup'), $constraint->groups);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\InvalidArgumentException
-     */
-    public function testGetErrorNameForUnknownCode()
-    {
-        Constraint::getErrorName(1);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/ConstraintViolationListTest.php b/core/vendor/symfony/validator/Tests/ConstraintViolationListTest.php
deleted file mode 100644
index 30d7ff0..0000000
--- a/core/vendor/symfony/validator/Tests/ConstraintViolationListTest.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests;
-
-use Symfony\Component\Validator\ConstraintViolation;
-use Symfony\Component\Validator\ConstraintViolationList;
-
-class ConstraintViolationListTest extends \PHPUnit_Framework_TestCase
-{
-    protected $list;
-
-    protected function setUp()
-    {
-        $this->list = new ConstraintViolationList();
-    }
-
-    protected function tearDown()
-    {
-        $this->list = null;
-    }
-
-    public function testInit()
-    {
-        $this->assertCount(0, $this->list);
-    }
-
-    public function testInitWithViolations()
-    {
-        $violation = $this->getViolation('Error');
-        $this->list = new ConstraintViolationList(array($violation));
-
-        $this->assertCount(1, $this->list);
-        $this->assertSame($violation, $this->list[0]);
-    }
-
-    public function testAdd()
-    {
-        $violation = $this->getViolation('Error');
-        $this->list->add($violation);
-
-        $this->assertCount(1, $this->list);
-        $this->assertSame($violation, $this->list[0]);
-    }
-
-    public function testAddAll()
-    {
-        $violations = array(
-            10 => $this->getViolation('Error 1'),
-            20 => $this->getViolation('Error 2'),
-            30 => $this->getViolation('Error 3'),
-        );
-        $otherList = new ConstraintViolationList($violations);
-        $this->list->addAll($otherList);
-
-        $this->assertCount(3, $this->list);
-
-        $this->assertSame($violations[10], $this->list[0]);
-        $this->assertSame($violations[20], $this->list[1]);
-        $this->assertSame($violations[30], $this->list[2]);
-    }
-
-    public function testIterator()
-    {
-        $violations = array(
-            10 => $this->getViolation('Error 1'),
-            20 => $this->getViolation('Error 2'),
-            30 => $this->getViolation('Error 3'),
-        );
-
-        $this->list = new ConstraintViolationList($violations);
-
-        // indices are reset upon adding -> array_values()
-        $this->assertSame(array_values($violations), iterator_to_array($this->list));
-    }
-
-    public function testArrayAccess()
-    {
-        $violation = $this->getViolation('Error');
-        $this->list[] = $violation;
-
-        $this->assertSame($violation, $this->list[0]);
-        $this->assertTrue(isset($this->list[0]));
-
-        unset($this->list[0]);
-
-        $this->assertFalse(isset($this->list[0]));
-
-        $this->list[10] = $violation;
-
-        $this->assertSame($violation, $this->list[10]);
-        $this->assertTrue(isset($this->list[10]));
-    }
-
-    public function testToString()
-    {
-        $this->list = new ConstraintViolationList(array(
-            $this->getViolation('Error 1', 'Root'),
-            $this->getViolation('Error 2', 'Root', 'foo.bar'),
-            $this->getViolation('Error 3', 'Root', '[baz]'),
-            $this->getViolation('Error 4', '', 'foo.bar'),
-            $this->getViolation('Error 5', '', '[baz]'),
-        ));
-
-        $expected = <<<EOF
-Root:
-    Error 1
-Root.foo.bar:
-    Error 2
-Root[baz]:
-    Error 3
-foo.bar:
-    Error 4
-[baz]:
-    Error 5
-
-EOF;
-
-        $this->assertEquals($expected, (string) $this->list);
-    }
-
-    protected function getViolation($message, $root = null, $propertyPath = null)
-    {
-        return new ConstraintViolation($message, $message, array(), $root, $propertyPath, null);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/ConstraintViolationTest.php b/core/vendor/symfony/validator/Tests/ConstraintViolationTest.php
deleted file mode 100644
index dffc384..0000000
--- a/core/vendor/symfony/validator/Tests/ConstraintViolationTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests;
-
-use Symfony\Component\Validator\ConstraintViolation;
-
-class ConstraintViolationTest extends \PHPUnit_Framework_TestCase
-{
-    public function testToStringHandlesArrays()
-    {
-        $violation = new ConstraintViolation(
-            'Array',
-            '{{ value }}',
-            array('{{ value }}' => array(1, 2, 3)),
-            'Root',
-            'property.path',
-            null
-        );
-
-        $expected = <<<EOF
-Root.property.path:
-    Array
-EOF;
-
-        $this->assertSame($expected, (string) $violation);
-    }
-
-    public function testToStringHandlesArrayRoots()
-    {
-        $violation = new ConstraintViolation(
-            '42 cannot be used here',
-            'this is the message template',
-            array(),
-            array('some_value' => 42),
-            'some_value',
-            null
-        );
-
-        $expected = <<<EOF
-Array.some_value:
-    42 cannot be used here
-EOF;
-
-        $this->assertSame($expected, (string) $violation);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php b/core/vendor/symfony/validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
deleted file mode 100644
index 4013fd4..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Validator\Constraint;
-
-class ComparisonTest_Class
-{
-    protected $value;
-
-    public function __construct($value)
-    {
-        $this->value = $value;
-    }
-
-    public function __toString()
-    {
-        return (string) $this->value;
-    }
-}
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-abstract class AbstractComparisonValidatorTestCase extends AbstractConstraintValidatorTest
-{
-    protected static function addPhp5Dot5Comparisons(array $comparisons)
-    {
-        if (version_compare(PHP_VERSION, '5.5.0-dev', '<')) {
-            return $comparisons;
-        }
-
-        $result = $comparisons;
-
-        // Duplicate all tests involving DateTime objects to be tested with
-        // DateTimeImmutable objects as well
-        foreach ($comparisons as $comparison) {
-            $add = false;
-
-            foreach ($comparison as $i => $value) {
-                if ($value instanceof \DateTime) {
-                    $comparison[$i] = new \DateTimeImmutable(
-                        $value->format('Y-m-d H:i:s.u e'),
-                        $value->getTimezone()
-                    );
-                    $add = true;
-                } elseif ('DateTime' === $value) {
-                    $comparison[$i] = 'DateTimeImmutable';
-                    $add = true;
-                }
-            }
-
-            if ($add) {
-                $result[] = $comparison;
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testThrowsConstraintExceptionIfNoValueOrProperty()
-    {
-        $comparison = $this->createConstraint(array());
-
-        $this->validator->validate('some value', $comparison);
-    }
-
-    /**
-     * @dataProvider provideAllValidComparisons
-     *
-     * @param mixed $dirtyValue
-     * @param mixed $comparisonValue
-     */
-    public function testValidComparisonToValue($dirtyValue, $comparisonValue)
-    {
-        $constraint = $this->createConstraint(array('value' => $comparisonValue));
-
-        $this->validator->validate($dirtyValue, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @return array
-     */
-    public function provideAllValidComparisons()
-    {
-        // The provider runs before setUp(), so we need to manually fix
-        // the default timezone
-        $this->setDefaultTimezone('UTC');
-
-        $comparisons = self::addPhp5Dot5Comparisons($this->provideValidComparisons());
-
-        $this->restoreDefaultTimezone();
-
-        return $comparisons;
-    }
-
-    /**
-     * @return array
-     */
-    abstract public function provideValidComparisons();
-
-    /**
-     * @dataProvider provideAllInvalidComparisons
-     *
-     * @param mixed  $dirtyValue
-     * @param mixed  $dirtyValueAsString
-     * @param mixed  $comparedValue
-     * @param mixed  $comparedValueString
-     * @param string $comparedValueType
-     */
-    public function testInvalidComparisonToValue($dirtyValue, $dirtyValueAsString, $comparedValue, $comparedValueString, $comparedValueType)
-    {
-        // Conversion of dates to string differs between ICU versions
-        // Make sure we have the correct version loaded
-        if ($dirtyValue instanceof \DateTime || $dirtyValue instanceof \DateTimeInterface) {
-            IntlTestHelper::requireIntl($this);
-        }
-
-        $constraint = $this->createConstraint(array('value' => $comparedValue));
-        $constraint->message = 'Constraint Message';
-
-        $this->validator->validate($dirtyValue, $constraint);
-
-        $this->buildViolation('Constraint Message')
-            ->setParameter('{{ value }}', $dirtyValueAsString)
-            ->setParameter('{{ compared_value }}', $comparedValueString)
-            ->setParameter('{{ compared_value_type }}', $comparedValueType)
-            ->assertRaised();
-    }
-
-    /**
-     * @return array
-     */
-    public function provideAllInvalidComparisons()
-    {
-        // The provider runs before setUp(), so we need to manually fix
-        // the default timezone
-        $this->setDefaultTimezone('UTC');
-
-        $comparisons = self::addPhp5Dot5Comparisons($this->provideInvalidComparisons());
-
-        $this->restoreDefaultTimezone();
-
-        return $comparisons;
-    }
-
-    /**
-     * @return array
-     */
-    abstract public function provideInvalidComparisons();
-
-    /**
-     * @param array $options Options for the constraint
-     *
-     * @return Constraint
-     */
-    abstract protected function createConstraint(array $options);
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php
deleted file mode 100644
index b5e2a7a..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/AbstractConstraintValidatorTest.php
+++ /dev/null
@@ -1,441 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\ConstraintValidatorInterface;
-use Symfony\Component\Validator\ConstraintViolation;
-use Symfony\Component\Validator\Context\ExecutionContext;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Context\LegacyExecutionContext;
-use Symfony\Component\Validator\ExecutionContextInterface as LegacyExecutionContextInterface;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\PropertyMetadata;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @since 2.5.3
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class AbstractConstraintValidatorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var ExecutionContextInterface
-     */
-    protected $context;
-
-    /**
-     * @var ConstraintValidatorInterface
-     */
-    protected $validator;
-
-    protected $group;
-    protected $metadata;
-    protected $object;
-    protected $value;
-    protected $root;
-    protected $propertyPath;
-    protected $constraint;
-    protected $defaultTimezone;
-
-    protected function setUp()
-    {
-        $this->group = 'MyGroup';
-        $this->metadata = null;
-        $this->object = null;
-        $this->value = 'InvalidValue';
-        $this->root = 'root';
-        $this->propertyPath = 'property.path';
-
-        // Initialize the context with some constraint so that we can
-        // successfully build a violation.
-        $this->constraint = new NotNull();
-
-        $this->context = $this->createContext();
-        $this->validator = $this->createValidator();
-        $this->validator->initialize($this->context);
-
-        \Locale::setDefault('en');
-
-        $this->setDefaultTimezone('UTC');
-    }
-
-    protected function tearDown()
-    {
-        $this->restoreDefaultTimezone();
-    }
-
-    protected function setDefaultTimezone($defaultTimezone)
-    {
-        // Make sure this method can not be called twice before calling
-        // also restoreDefaultTimezone()
-        if (null === $this->defaultTimezone) {
-            $this->defaultTimezone = date_default_timezone_get();
-            date_default_timezone_set($defaultTimezone);
-        }
-    }
-
-    protected function restoreDefaultTimezone()
-    {
-        if (null !== $this->defaultTimezone) {
-            date_default_timezone_set($this->defaultTimezone);
-            $this->defaultTimezone = null;
-        }
-    }
-
-    protected function createContext()
-    {
-        $translator = $this->getMock('Symfony\Component\Translation\TranslatorInterface');
-        $validator = $this->getMock('Symfony\Component\Validator\Validator\ValidatorInterface');
-        $contextualValidator = $this->getMock('Symfony\Component\Validator\Validator\ContextualValidatorInterface');
-
-        switch ($this->getApiVersion()) {
-            case Validation::API_VERSION_2_5:
-                $context = new ExecutionContext(
-                    $validator,
-                    $this->root,
-                    $translator
-                );
-                break;
-            case Validation::API_VERSION_2_4:
-            case Validation::API_VERSION_2_5_BC:
-                $context = new LegacyExecutionContext(
-                    $validator,
-                    $this->root,
-                    $this->getMock('Symfony\Component\Validator\MetadataFactoryInterface'),
-                    $translator
-                );
-                break;
-            default:
-                throw new \RuntimeException('Invalid API version');
-        }
-
-        $context->setGroup($this->group);
-        $context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath);
-        $context->setConstraint($this->constraint);
-
-        $validator->expects($this->any())
-            ->method('inContext')
-            ->with($context)
-            ->will($this->returnValue($contextualValidator));
-
-        return $context;
-    }
-
-    /**
-     * @param mixed  $message
-     * @param array  $parameters
-     * @param string $propertyPath
-     * @param string $invalidValue
-     * @param null   $plural
-     * @param null   $code
-     *
-     * @return ConstraintViolation
-     *
-     * @deprecated to be removed in Symfony 3.0. Use {@link buildViolation()} instead.
-     */
-    protected function createViolation($message, array $parameters = array(), $propertyPath = 'property.path', $invalidValue = 'InvalidValue', $plural = null, $code = null)
-    {
-        return new ConstraintViolation(
-            null,
-            $message,
-            $parameters,
-            $this->root,
-            $propertyPath,
-            $invalidValue,
-            $plural,
-            $code,
-            $this->constraint
-        );
-    }
-
-    protected function setGroup($group)
-    {
-        $this->group = $group;
-        $this->context->setGroup($group);
-    }
-
-    protected function setObject($object)
-    {
-        $this->object = $object;
-        $this->metadata = is_object($object)
-            ? new ClassMetadata(get_class($object))
-            : null;
-
-        $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath);
-    }
-
-    protected function setProperty($object, $property)
-    {
-        $this->object = $object;
-        $this->metadata = is_object($object)
-            ? new PropertyMetadata(get_class($object), $property)
-            : null;
-
-        $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath);
-    }
-
-    protected function setValue($value)
-    {
-        $this->value = $value;
-        $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath);
-    }
-
-    protected function setRoot($root)
-    {
-        $this->root = $root;
-        $this->context = $this->createContext();
-        $this->validator->initialize($this->context);
-    }
-
-    protected function setPropertyPath($propertyPath)
-    {
-        $this->propertyPath = $propertyPath;
-        $this->context->setNode($this->value, $this->object, $this->metadata, $this->propertyPath);
-    }
-
-    protected function expectNoValidate()
-    {
-        $validator = $this->context->getValidator()->inContext($this->context);
-        $validator->expects($this->never())
-            ->method('atPath');
-        $validator->expects($this->never())
-            ->method('validate');
-    }
-
-    protected function expectValidateAt($i, $propertyPath, $value, $group)
-    {
-        $validator = $this->context->getValidator()->inContext($this->context);
-        $validator->expects($this->at(2 * $i))
-            ->method('atPath')
-            ->with($propertyPath)
-            ->will($this->returnValue($validator));
-        $validator->expects($this->at(2 * $i + 1))
-            ->method('validate')
-            ->with($value, $this->logicalOr(null, array()), $group);
-    }
-
-    protected function expectValidateValueAt($i, $propertyPath, $value, $constraints, $group = null)
-    {
-        $contextualValidator = $this->context->getValidator()->inContext($this->context);
-        $contextualValidator->expects($this->at(2 * $i))
-            ->method('atPath')
-            ->with($propertyPath)
-            ->will($this->returnValue($contextualValidator));
-        $contextualValidator->expects($this->at(2 * $i + 1))
-            ->method('validate')
-            ->with($value, $constraints, $group);
-    }
-
-    protected function assertNoViolation()
-    {
-        $this->assertSame(0, $violationsCount = count($this->context->getViolations()), sprintf('0 violation expected. Got %u.', $violationsCount));
-    }
-
-    /**
-     * @param mixed  $message
-     * @param array  $parameters
-     * @param string $propertyPath
-     * @param string $invalidValue
-     * @param null   $plural
-     * @param null   $code
-     *
-     * @deprecated To be removed in Symfony 3.0. Use
-     *             {@link buildViolation()} instead.
-     */
-    protected function assertViolation($message, array $parameters = array(), $propertyPath = 'property.path', $invalidValue = 'InvalidValue', $plural = null, $code = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0. Use the buildViolation() method instead.', E_USER_DEPRECATED);
-
-        $this->buildViolation($message)
-            ->setParameters($parameters)
-            ->atPath($propertyPath)
-            ->setInvalidValue($invalidValue)
-            ->setCode($code)
-            ->setPlural($plural)
-            ->assertRaised();
-    }
-
-    /**
-     * @param array $expected
-     *
-     * @deprecated To be removed in Symfony 3.0. Use
-     *             {@link buildViolation()} instead.
-     */
-    protected function assertViolations(array $expected)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.3 and will be removed in 3.0. Use the buildViolation() method instead.', E_USER_DEPRECATED);
-
-        $violations = $this->context->getViolations();
-
-        $this->assertCount(count($expected), $violations);
-
-        $i = 0;
-
-        foreach ($expected as $violation) {
-            $this->assertEquals($violation, $violations[$i++]);
-        }
-    }
-
-    /**
-     * @param $message
-     *
-     * @return ConstraintViolationAssertion
-     */
-    protected function buildViolation($message)
-    {
-        return new ConstraintViolationAssertion($this->context, $message, $this->constraint);
-    }
-
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    abstract protected function createValidator();
-}
-
-/**
- * @internal
- */
-class ConstraintViolationAssertion
-{
-    /**
-     * @var LegacyExecutionContextInterface
-     */
-    private $context;
-
-    /**
-     * @var ConstraintViolationAssertion[]
-     */
-    private $assertions;
-
-    private $message;
-    private $parameters = array();
-    private $invalidValue = 'InvalidValue';
-    private $propertyPath = 'property.path';
-    private $translationDomain;
-    private $plural;
-    private $code;
-    private $constraint;
-    private $cause;
-
-    public function __construct(LegacyExecutionContextInterface $context, $message, Constraint $constraint = null, array $assertions = array())
-    {
-        $this->context = $context;
-        $this->message = $message;
-        $this->constraint = $constraint;
-        $this->assertions = $assertions;
-    }
-
-    public function atPath($path)
-    {
-        $this->propertyPath = $path;
-
-        return $this;
-    }
-
-    public function setParameter($key, $value)
-    {
-        $this->parameters[$key] = $value;
-
-        return $this;
-    }
-
-    public function setParameters(array $parameters)
-    {
-        $this->parameters = $parameters;
-
-        return $this;
-    }
-
-    public function setTranslationDomain($translationDomain)
-    {
-        $this->translationDomain = $translationDomain;
-
-        return $this;
-    }
-
-    public function setInvalidValue($invalidValue)
-    {
-        $this->invalidValue = $invalidValue;
-
-        return $this;
-    }
-
-    public function setPlural($number)
-    {
-        $this->plural = $number;
-
-        return $this;
-    }
-
-    public function setCode($code)
-    {
-        $this->code = $code;
-
-        return $this;
-    }
-
-    public function setCause($cause)
-    {
-        $this->cause = $cause;
-
-        return $this;
-    }
-
-    public function buildNextViolation($message)
-    {
-        $assertions = $this->assertions;
-        $assertions[] = $this;
-
-        return new self($this->context, $message, $this->constraint, $assertions);
-    }
-
-    public function assertRaised()
-    {
-        $expected = array();
-        foreach ($this->assertions as $assertion) {
-            $expected[] = $assertion->getViolation();
-        }
-        $expected[] = $this->getViolation();
-
-        $violations = iterator_to_array($this->context->getViolations());
-
-        \PHPUnit_Framework_Assert::assertSame($expectedCount = count($expected), $violationsCount = count($violations), sprintf('%u violation(s) expected. Got %u.', $expectedCount, $violationsCount));
-
-        reset($violations);
-
-        foreach ($expected as $violation) {
-            \PHPUnit_Framework_Assert::assertEquals($violation, current($violations));
-            next($violations);
-        }
-    }
-
-    private function getViolation()
-    {
-        return new ConstraintViolation(
-            null,
-            $this->message,
-            $this->parameters,
-            $this->context->getRoot(),
-            $this->propertyPath,
-            $this->invalidValue,
-            $this->plural,
-            $this->code,
-            $this->constraint,
-            $this->cause
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/AllTest.php b/core/vendor/symfony/validator/Tests/Constraints/AllTest.php
deleted file mode 100644
index 36b5198..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/AllTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Valid;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class AllTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectNonConstraints()
-    {
-        new All(array(
-            'foo',
-        ));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectValidConstraint()
-    {
-        new All(array(
-            new Valid(),
-        ));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/AllValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/AllValidatorTest.php
deleted file mode 100644
index 57dd600..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/AllValidatorTest.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\AllValidator;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Range;
-use Symfony\Component\Validator\Validation;
-
-class AllValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new AllValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new All(new Range(array('min' => 4))));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testThrowsExceptionIfNotTraversable()
-    {
-        $this->validator->validate('foo.barbar', new All(new Range(array('min' => 4))));
-    }
-
-    /**
-     * @dataProvider getValidArguments
-     */
-    public function testWalkSingleConstraint($array)
-    {
-        $constraint = new Range(array('min' => 4));
-
-        $i = 0;
-
-        foreach ($array as $key => $value) {
-            $this->expectValidateValueAt($i++, '['.$key.']', $value, array($constraint));
-        }
-
-        $this->validator->validate($array, new All($constraint));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getValidArguments
-     */
-    public function testWalkMultipleConstraints($array)
-    {
-        $constraint1 = new Range(array('min' => 4));
-        $constraint2 = new NotNull();
-
-        $constraints = array($constraint1, $constraint2);
-
-        $i = 0;
-
-        foreach ($array as $key => $value) {
-            $this->expectValidateValueAt($i++, '['.$key.']', $value, array($constraint1, $constraint2));
-        }
-
-        $this->validator->validate($array, new All($constraints));
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidArguments()
-    {
-        return array(
-            array(array(5, 6, 7)),
-            array(new \ArrayObject(array(5, 6, 7))),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/BlankValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/BlankValidatorTest.php
deleted file mode 100644
index a7f3d7d..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/BlankValidatorTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Blank;
-use Symfony\Component\Validator\Constraints\BlankValidator;
-use Symfony\Component\Validator\Validation;
-
-class BlankValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new BlankValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Blank());
-
-        $this->assertNoViolation();
-    }
-
-    public function testBlankIsValid()
-    {
-        $this->validator->validate('', new Blank());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidValues
-     */
-    public function testInvalidValues($value, $valueAsString)
-    {
-        $constraint = new Blank(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $valueAsString)
-            ->assertRaised();
-    }
-
-    public function getInvalidValues()
-    {
-        return array(
-            array('foobar', '"foobar"'),
-            array(0, '0'),
-            array(false, 'false'),
-            array(1234, '1234'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CallbackValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/CallbackValidatorTest.php
deleted file mode 100644
index b619291..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CallbackValidatorTest.php
+++ /dev/null
@@ -1,355 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\CallbackValidator;
-use Symfony\Component\Validator\ExecutionContextInterface;
-use Symfony\Component\Validator\Validation;
-
-class CallbackValidatorTest_Class
-{
-    public static function validateCallback($object, ExecutionContextInterface $context)
-    {
-        $context->addViolation('Callback message', array('{{ value }}' => 'foobar'));
-
-        return false;
-    }
-}
-
-class CallbackValidatorTest_Object
-{
-    public function validate(ExecutionContextInterface $context)
-    {
-        $context->addViolation('My message', array('{{ value }}' => 'foobar'));
-
-        return false;
-    }
-
-    public static function validateStatic($object, ExecutionContextInterface $context)
-    {
-        $context->addViolation('Static message', array('{{ value }}' => 'baz'));
-
-        return false;
-    }
-}
-
-class CallbackValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new CallbackValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Callback());
-
-        $this->assertNoViolation();
-    }
-
-    public function testSingleMethod()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback('validate');
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testSingleMethodExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('callback' => 'validate'));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testSingleStaticMethod()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback('validateStatic');
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Static message')
-            ->setParameter('{{ value }}', 'baz')
-            ->assertRaised();
-    }
-
-    public function testClosure()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(function ($object, ExecutionContextInterface $context) {
-            $context->addViolation('My message', array('{{ value }}' => 'foobar'));
-
-            return false;
-        });
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testClosureNullObject()
-    {
-        $constraint = new Callback(function ($object, ExecutionContextInterface $context) {
-            $context->addViolation('My message', array('{{ value }}' => 'foobar'));
-
-            return false;
-        });
-
-        $this->validator->validate(null, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testClosureExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'callback' => function ($object, ExecutionContextInterface $context) {
-                $context->addViolation('My message', array('{{ value }}' => 'foobar'));
-
-                return false;
-            },
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testArrayCallable()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(__CLASS__.'_Class', 'validateCallback'));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testArrayCallableNullObject()
-    {
-        $constraint = new Callback(array(__CLASS__.'_Class', 'validateCallback'));
-
-        $this->validator->validate(null, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    public function testArrayCallableExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'callback' => array(__CLASS__.'_Class', 'validateCallback'),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    // BC with Symfony < 2.4
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleMethodBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('validate'));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    // BC with Symfony < 2.4
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleMethodBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('methods' => array('validate')));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    // BC with Symfony < 2.4
-    /**
-     * @group legacy
-     */
-    public function testLegacyMultipleMethodsBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array('validate', 'validateStatic'));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->buildNextViolation('Static message')
-            ->setParameter('{{ value }}', 'baz')
-            ->assertRaised();
-    }
-
-    // BC with Symfony < 2.4
-    /**
-     * @group legacy
-     */
-    public function testLegacyMultipleMethodsBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'methods' => array('validate', 'validateStatic'),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('My message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->buildNextViolation('Static message')
-            ->setParameter('{{ value }}', 'baz')
-            ->assertRaised();
-    }
-
-    // BC with Symfony < 2.4
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleStaticMethodBc()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            array(__CLASS__.'_Class', 'validateCallback'),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    // BC with Symfony < 2.4
-    /**
-     * @group legacy
-     */
-    public function testLegacySingleStaticMethodBcExplicitName()
-    {
-        $object = new CallbackValidatorTest_Object();
-        $constraint = new Callback(array(
-            'methods' => array(array(__CLASS__.'_Class', 'validateCallback')),
-        ));
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('Callback message')
-            ->setParameter('{{ value }}', 'foobar')
-            ->assertRaised();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testExpectValidMethods()
-    {
-        $object = new CallbackValidatorTest_Object();
-
-        $this->validator->validate($object, new Callback(array('foobar')));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testExpectValidCallbacks()
-    {
-        $object = new CallbackValidatorTest_Object();
-
-        $this->validator->validate($object, new Callback(array(array('foo', 'bar'))));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     * @group legacy
-     */
-    public function testLegacyExpectEitherCallbackOrMethods()
-    {
-        $object = new CallbackValidatorTest_Object();
-
-        $this->validator->validate($object, new Callback(array(
-            'callback' => 'validate',
-            'methods' => array('validateStatic'),
-        )));
-    }
-
-    public function testConstraintGetTargets()
-    {
-        $constraint = new Callback(array());
-        $targets = array(Constraint::CLASS_CONSTRAINT, Constraint::PROPERTY_CONSTRAINT);
-
-        $this->assertEquals($targets, $constraint->getTargets());
-    }
-
-    // Should succeed. Needed when defining constraints as annotations.
-    public function testNoConstructorArguments()
-    {
-        new Callback();
-    }
-
-    public function testAnnotationInvocationSingleValued()
-    {
-        $constraint = new Callback(array('value' => 'validateStatic'));
-
-        $this->assertEquals(new Callback('validateStatic'), $constraint);
-    }
-
-    public function testAnnotationInvocationMultiValued()
-    {
-        $constraint = new Callback(array('value' => array(__CLASS__.'_Class', 'validateCallback')));
-
-        $this->assertEquals(new Callback(array(__CLASS__.'_Class', 'validateCallback')), $constraint);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CardSchemeValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/CardSchemeValidatorTest.php
deleted file mode 100644
index 2d623c9..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CardSchemeValidatorTest.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\CardScheme;
-use Symfony\Component\Validator\Constraints\CardSchemeValidator;
-use Symfony\Component\Validator\Validation;
-
-class CardSchemeValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new CardSchemeValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new CardScheme(array('schemes' => array())));
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new CardScheme(array('schemes' => array())));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getValidNumbers
-     */
-    public function testValidNumbers($scheme, $number)
-    {
-        $this->validator->validate($number, new CardScheme(array('schemes' => $scheme)));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidNumbers
-     */
-    public function testInvalidNumbers($scheme, $number, $code)
-    {
-        $constraint = new CardScheme(array(
-            'schemes' => $scheme,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($number, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', is_string($number) ? '"'.$number.'"' : $number)
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getValidNumbers()
-    {
-        return array(
-            array('AMEX', '378282246310005'),
-            array('AMEX', '371449635398431'),
-            array('AMEX', '378734493671000'),
-            array('AMEX', '347298508610146'),
-            array('CHINA_UNIONPAY', '6228888888888888'),
-            array('CHINA_UNIONPAY', '62288888888888888'),
-            array('CHINA_UNIONPAY', '622888888888888888'),
-            array('CHINA_UNIONPAY', '6228888888888888888'),
-            array('DINERS', '30569309025904'),
-            array('DINERS', '36088894118515'),
-            array('DINERS', '38520000023237'),
-            array('DISCOVER', '6011111111111117'),
-            array('DISCOVER', '6011000990139424'),
-            array('INSTAPAYMENT', '6372476031350068'),
-            array('INSTAPAYMENT', '6385537775789749'),
-            array('INSTAPAYMENT', '6393440808445746'),
-            array('JCB', '3530111333300000'),
-            array('JCB', '3566002020360505'),
-            array('JCB', '213112345678901'),
-            array('JCB', '180012345678901'),
-            array('LASER', '6304678107004080'),
-            array('LASER', '6706440607428128629'),
-            array('LASER', '6771656738314582216'),
-            array('MAESTRO', '6759744069209'),
-            array('MAESTRO', '5020507657408074712'),
-            array('MAESTRO', '5612559223580173965'),
-            array('MAESTRO', '6759744069209'),
-            array('MAESTRO', '6759744069209'),
-            array('MAESTRO', '6594371785970435599'),
-            array('MASTERCARD', '5555555555554444'),
-            array('MASTERCARD', '5105105105105100'),
-            array('VISA', '4111111111111111'),
-            array('VISA', '4012888888881881'),
-            array('VISA', '4222222222222'),
-            array(array('AMEX', 'VISA'), '4111111111111111'),
-            array(array('AMEX', 'VISA'), '378282246310005'),
-            array(array('JCB', 'MASTERCARD'), '5105105105105100'),
-            array(array('VISA', 'MASTERCARD'), '5105105105105100'),
-        );
-    }
-
-    public function getInvalidNumbers()
-    {
-        return array(
-            array('VISA', '42424242424242424242', CardScheme::INVALID_FORMAT_ERROR),
-            array('AMEX', '357298508610146', CardScheme::INVALID_FORMAT_ERROR),
-            array('DINERS', '31569309025904', CardScheme::INVALID_FORMAT_ERROR),
-            array('DINERS', '37088894118515', CardScheme::INVALID_FORMAT_ERROR),
-            array('INSTAPAYMENT', '6313440808445746', CardScheme::INVALID_FORMAT_ERROR),
-            array('CHINA_UNIONPAY', '622888888888888', CardScheme::INVALID_FORMAT_ERROR),
-            array('CHINA_UNIONPAY', '62288888888888888888', CardScheme::INVALID_FORMAT_ERROR),
-            array('AMEX', '30569309025904', CardScheme::INVALID_FORMAT_ERROR), // DINERS number
-            array('AMEX', 'invalid', CardScheme::NOT_NUMERIC_ERROR), // A string
-            array('AMEX', 0, CardScheme::INVALID_FORMAT_ERROR), // a lone number
-            array('AMEX', '0', CardScheme::INVALID_FORMAT_ERROR), // a lone number
-            array('AMEX', '000000000000', CardScheme::INVALID_FORMAT_ERROR), // a lone number
-            array('DINERS', '3056930', CardScheme::INVALID_FORMAT_ERROR), // only first part of the number
-            array('DISCOVER', '1117', CardScheme::INVALID_FORMAT_ERROR), // only last 4 digits
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php
deleted file mode 100644
index b515b84..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/ChoiceValidatorTest.php
+++ /dev/null
@@ -1,304 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Choice;
-use Symfony\Component\Validator\Constraints\ChoiceValidator;
-use Symfony\Component\Validator\Validation;
-
-function choice_callback()
-{
-    return array('foo', 'bar');
-}
-
-class ChoiceValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new ChoiceValidator();
-    }
-
-    public static function staticCallback()
-    {
-        return array('foo', 'bar');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectArrayIfMultipleIsTrue()
-    {
-        $constraint = new Choice(array(
-            'choices' => array('foo', 'bar'),
-            'multiple' => true,
-        ));
-
-        $this->validator->validate('asdf', $constraint);
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Choice(array('choices' => array('foo', 'bar'))));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testChoicesOrCallbackExpected()
-    {
-        $this->validator->validate('foobar', new Choice());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testValidCallbackExpected()
-    {
-        $this->validator->validate('foobar', new Choice(array('callback' => 'abcd')));
-    }
-
-    public function testValidChoiceArray()
-    {
-        $constraint = new Choice(array('choices' => array('foo', 'bar')));
-
-        $this->validator->validate('bar', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidChoiceCallbackFunction()
-    {
-        $constraint = new Choice(array('callback' => __NAMESPACE__.'\choice_callback'));
-
-        $this->validator->validate('bar', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidChoiceCallbackClosure()
-    {
-        $constraint = new Choice(array('callback' => function () {
-            return array('foo', 'bar');
-        }));
-
-        $this->validator->validate('bar', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidChoiceCallbackStaticMethod()
-    {
-        $constraint = new Choice(array('callback' => array(__CLASS__, 'staticCallback')));
-
-        $this->validator->validate('bar', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidChoiceCallbackContextMethod()
-    {
-        // search $this for "staticCallback"
-        $this->setObject($this);
-
-        $constraint = new Choice(array('callback' => 'staticCallback'));
-
-        $this->validator->validate('bar', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testMultipleChoices()
-    {
-        $constraint = new Choice(array(
-            'choices' => array('foo', 'bar', 'baz'),
-            'multiple' => true,
-        ));
-
-        $this->validator->validate(array('baz', 'bar'), $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testInvalidChoice()
-    {
-        $constraint = new Choice(array(
-            'choices' => array('foo', 'bar'),
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate('baz', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"baz"')
-            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testInvalidChoiceEmptyChoices()
-    {
-        $constraint = new Choice(array(
-            // May happen when the choices are provided dynamically, e.g. from
-            // the DB or the model
-            'choices' => array(),
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate('baz', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"baz"')
-            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testInvalidChoiceMultiple()
-    {
-        $constraint = new Choice(array(
-            'choices' => array('foo', 'bar'),
-            'multipleMessage' => 'myMessage',
-            'multiple' => true,
-        ));
-
-        $this->validator->validate(array('foo', 'baz'), $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"baz"')
-            ->setInvalidValue('baz')
-            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testTooFewChoices()
-    {
-        $constraint = new Choice(array(
-            'choices' => array('foo', 'bar', 'moo', 'maa'),
-            'multiple' => true,
-            'min' => 2,
-            'minMessage' => 'myMessage',
-        ));
-
-        $value = array('foo');
-
-        $this->setValue($value);
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ limit }}', 2)
-            ->setInvalidValue($value)
-            ->setPlural(2)
-            ->setCode(Choice::TOO_FEW_ERROR)
-            ->assertRaised();
-    }
-
-    public function testTooManyChoices()
-    {
-        $constraint = new Choice(array(
-            'choices' => array('foo', 'bar', 'moo', 'maa'),
-            'multiple' => true,
-            'max' => 2,
-            'maxMessage' => 'myMessage',
-        ));
-
-        $value = array('foo', 'bar', 'moo');
-
-        $this->setValue($value);
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ limit }}', 2)
-            ->setInvalidValue($value)
-            ->setPlural(2)
-            ->setCode(Choice::TOO_MANY_ERROR)
-            ->assertRaised();
-    }
-
-    public function testNonStrict()
-    {
-        $constraint = new Choice(array(
-            'choices' => array(1, 2),
-            'strict' => false,
-        ));
-
-        $this->validator->validate('2', $constraint);
-        $this->validator->validate(2, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testStrictAllowsExactValue()
-    {
-        $constraint = new Choice(array(
-            'choices' => array(1, 2),
-            'strict' => true,
-        ));
-
-        $this->validator->validate(2, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testStrictDisallowsDifferentType()
-    {
-        $constraint = new Choice(array(
-            'choices' => array(1, 2),
-            'strict' => true,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate('2', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"2"')
-            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testNonStrictWithMultipleChoices()
-    {
-        $constraint = new Choice(array(
-            'choices' => array(1, 2, 3),
-            'multiple' => true,
-            'strict' => false,
-        ));
-
-        $this->validator->validate(array('2', 3), $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testStrictWithMultipleChoices()
-    {
-        $constraint = new Choice(array(
-            'choices' => array(1, 2, 3),
-            'multiple' => true,
-            'strict' => true,
-            'multipleMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate(array(2, '3'), $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"3"')
-            ->setInvalidValue('3')
-            ->setCode(Choice::NO_SUCH_CHOICE_ERROR)
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CollectionTest.php b/core/vendor/symfony/validator/Tests/Constraints/CollectionTest.php
deleted file mode 100644
index 79f50b0..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CollectionTest.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Collection;
-use Symfony\Component\Validator\Constraints\Email;
-use Symfony\Component\Validator\Constraints\Optional;
-use Symfony\Component\Validator\Constraints\Required;
-use Symfony\Component\Validator\Constraints\Valid;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CollectionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectInvalidFieldsOption()
-    {
-        new Collection(array(
-            'fields' => 'foo',
-        ));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectNonConstraints()
-    {
-        new Collection(array(
-            'foo' => 'bar',
-        ));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectValidConstraint()
-    {
-        new Collection(array(
-            'foo' => new Valid(),
-        ));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectValidConstraintWithinOptional()
-    {
-        new Collection(array(
-            'foo' => new Optional(new Valid()),
-        ));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectValidConstraintWithinRequired()
-    {
-        new Collection(array(
-            'foo' => new Required(new Valid()),
-        ));
-    }
-
-    public function testAcceptOptionalConstraintAsOneElementArray()
-    {
-        $collection1 = new Collection(array(
-            'fields' => array(
-                'alternate_email' => array(
-                    new Optional(new Email()),
-                ),
-            ),
-        ));
-
-        $collection2 = new Collection(array(
-            'fields' => array(
-                'alternate_email' => new Optional(new Email()),
-            ),
-        ));
-
-        $this->assertEquals($collection1, $collection2);
-    }
-
-    public function testAcceptRequiredConstraintAsOneElementArray()
-    {
-        $collection1 = new Collection(array(
-            'fields' => array(
-                'alternate_email' => array(
-                    new Required(new Email()),
-                ),
-            ),
-        ));
-
-        $collection2 = new Collection(array(
-            'fields' => array(
-                'alternate_email' => new Required(new Email()),
-            ),
-        ));
-
-        $this->assertEquals($collection1, $collection2);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorArrayObjectTest.php b/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorArrayObjectTest.php
deleted file mode 100644
index a3c4b33..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorArrayObjectTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-class CollectionValidatorArrayObjectTest extends CollectionValidatorTest
-{
-    public function prepareTestData(array $contents)
-    {
-        return new \ArrayObject($contents);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorArrayTest.php b/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorArrayTest.php
deleted file mode 100644
index 7517d0c..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorArrayTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-class CollectionValidatorArrayTest extends CollectionValidatorTest
-{
-    public function prepareTestData(array $contents)
-    {
-        return $contents;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorCustomArrayObjectTest.php b/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorCustomArrayObjectTest.php
deleted file mode 100644
index 3d4c296..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorCustomArrayObjectTest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Tests\Fixtures\CustomArrayObject;
-
-class CollectionValidatorCustomArrayObjectTest extends CollectionValidatorTest
-{
-    public function prepareTestData(array $contents)
-    {
-        return new CustomArrayObject($contents);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorTest.php
deleted file mode 100644
index 0376814..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CollectionValidatorTest.php
+++ /dev/null
@@ -1,389 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Collection;
-use Symfony\Component\Validator\Constraints\CollectionValidator;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Optional;
-use Symfony\Component\Validator\Constraints\Range;
-use Symfony\Component\Validator\Constraints\Required;
-use Symfony\Component\Validator\Validation;
-
-abstract class CollectionValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new CollectionValidator();
-    }
-
-    abstract protected function prepareTestData(array $contents);
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Collection(array('fields' => array(
-            'foo' => new Range(array('min' => 4)),
-        ))));
-
-        $this->assertNoViolation();
-    }
-
-    public function testFieldsAsDefaultOption()
-    {
-        $constraint = new Range(array('min' => 4));
-
-        $data = $this->prepareTestData(array('foo' => 'foobar'));
-
-        $this->expectValidateValueAt(0, '[foo]', $data['foo'], array($constraint));
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => $constraint,
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testThrowsExceptionIfNotTraversable()
-    {
-        $this->validator->validate('foobar', new Collection(array('fields' => array(
-            'foo' => new Range(array('min' => 4)),
-        ))));
-    }
-
-    public function testWalkSingleConstraint()
-    {
-        $constraint = new Range(array('min' => 4));
-
-        $array = array(
-            'foo' => 3,
-            'bar' => 5,
-        );
-
-        $i = 0;
-
-        foreach ($array as $key => $value) {
-            $this->expectValidateValueAt($i++, '['.$key.']', $value, array($constraint));
-        }
-
-        $data = $this->prepareTestData($array);
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-                'bar' => $constraint,
-            ),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testWalkMultipleConstraints()
-    {
-        $constraints = array(
-            new Range(array('min' => 4)),
-            new NotNull(),
-        );
-
-        $array = array(
-            'foo' => 3,
-            'bar' => 5,
-        );
-
-        $i = 0;
-
-        foreach ($array as $key => $value) {
-            $this->expectValidateValueAt($i++, '['.$key.']', $value, $constraints);
-        }
-
-        $data = $this->prepareTestData($array);
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraints,
-                'bar' => $constraints,
-            ),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testExtraFieldsDisallowed()
-    {
-        $constraint = new Range(array('min' => 4));
-
-        $data = $this->prepareTestData(array(
-            'foo' => 5,
-            'baz' => 6,
-        ));
-
-        $this->expectValidateValueAt(0, '[foo]', $data['foo'], array($constraint));
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-            ),
-            'extraFieldsMessage' => 'myMessage',
-        )));
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ field }}', '"baz"')
-            ->atPath('property.path[baz]')
-            ->setInvalidValue(6)
-            ->setCode(Collection::NO_SUCH_FIELD_ERROR)
-            ->assertRaised();
-    }
-
-    // bug fix
-    public function testNullNotConsideredExtraField()
-    {
-        $data = $this->prepareTestData(array(
-            'foo' => null,
-        ));
-
-        $constraint = new Range(array('min' => 4));
-
-        $this->expectValidateValueAt(0, '[foo]', $data['foo'], array($constraint));
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-            ),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testExtraFieldsAllowed()
-    {
-        $data = $this->prepareTestData(array(
-            'foo' => 5,
-            'bar' => 6,
-        ));
-
-        $constraint = new Range(array('min' => 4));
-
-        $this->expectValidateValueAt(0, '[foo]', $data['foo'], array($constraint));
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-            ),
-            'allowExtraFields' => true,
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testMissingFieldsDisallowed()
-    {
-        $data = $this->prepareTestData(array());
-
-        $constraint = new Range(array('min' => 4));
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-            ),
-            'missingFieldsMessage' => 'myMessage',
-        )));
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ field }}', '"foo"')
-            ->atPath('property.path[foo]')
-            ->setInvalidValue(null)
-            ->setCode(Collection::MISSING_FIELD_ERROR)
-            ->assertRaised();
-    }
-
-    public function testMissingFieldsAllowed()
-    {
-        $data = $this->prepareTestData(array());
-
-        $constraint = new Range(array('min' => 4));
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-            ),
-            'allowMissingFields' => true,
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testOptionalFieldPresent()
-    {
-        $data = $this->prepareTestData(array(
-            'foo' => null,
-        ));
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Optional(),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testOptionalFieldNotPresent()
-    {
-        $data = $this->prepareTestData(array());
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Optional(),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testOptionalFieldSingleConstraint()
-    {
-        $array = array(
-            'foo' => 5,
-        );
-
-        $constraint = new Range(array('min' => 4));
-
-        $this->expectValidateValueAt(0, '[foo]', $array['foo'], array($constraint));
-
-        $data = $this->prepareTestData($array);
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Optional($constraint),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testOptionalFieldMultipleConstraints()
-    {
-        $array = array(
-            'foo' => 5,
-        );
-
-        $constraints = array(
-            new NotNull(),
-            new Range(array('min' => 4)),
-        );
-
-        $this->expectValidateValueAt(0, '[foo]', $array['foo'], $constraints);
-
-        $data = $this->prepareTestData($array);
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Optional($constraints),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testRequiredFieldPresent()
-    {
-        $data = $this->prepareTestData(array(
-            'foo' => null,
-        ));
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Required(),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testRequiredFieldNotPresent()
-    {
-        $data = $this->prepareTestData(array());
-
-        $this->validator->validate($data, new Collection(array(
-            'fields' => array(
-                'foo' => new Required(),
-            ),
-            'missingFieldsMessage' => 'myMessage',
-        )));
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ field }}', '"foo"')
-            ->atPath('property.path[foo]')
-            ->setInvalidValue(null)
-            ->setCode(Collection::MISSING_FIELD_ERROR)
-            ->assertRaised();
-    }
-
-    public function testRequiredFieldSingleConstraint()
-    {
-        $array = array(
-            'foo' => 5,
-        );
-
-        $constraint = new Range(array('min' => 4));
-
-        $this->expectValidateValueAt(0, '[foo]', $array['foo'], array($constraint));
-
-        $data = $this->prepareTestData($array);
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Required($constraint),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testRequiredFieldMultipleConstraints()
-    {
-        $array = array(
-            'foo' => 5,
-        );
-
-        $constraints = array(
-            new NotNull(),
-            new Range(array('min' => 4)),
-        );
-
-        $this->expectValidateValueAt(0, '[foo]', $array['foo'], $constraints);
-
-        $data = $this->prepareTestData($array);
-
-        $this->validator->validate($data, new Collection(array(
-            'foo' => new Required($constraints),
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function testObjectShouldBeLeftUnchanged()
-    {
-        $value = new \ArrayObject(array(
-            'foo' => 3,
-        ));
-
-        $constraint = new Range(array('min' => 2));
-
-        $this->expectValidateValueAt(0, '[foo]', $value['foo'], array($constraint));
-
-        $this->validator->validate($value, new Collection(array(
-            'fields' => array(
-                'foo' => $constraint,
-            ),
-        )));
-
-        $this->assertEquals(array(
-            'foo' => 3,
-        ), (array) $value);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CompositeTest.php b/core/vendor/symfony/validator/Tests/Constraints/CompositeTest.php
deleted file mode 100644
index 21cb461..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CompositeTest.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Composite;
-use Symfony\Component\Validator\Constraints\NotBlank;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Valid;
-
-class ConcreteComposite extends Composite
-{
-    public $constraints;
-
-    protected function getCompositeOption()
-    {
-        return 'constraints';
-    }
-
-    public function getDefaultOption()
-    {
-        return 'constraints';
-    }
-}
-
-/**
- * @since  2.6
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CompositeTest extends \PHPUnit_Framework_TestCase
-{
-    public function testMergeNestedGroupsIfNoExplicitParentGroup()
-    {
-        $constraint = new ConcreteComposite(array(
-            new NotNull(array('groups' => 'Default')),
-            new NotBlank(array('groups' => array('Default', 'Strict'))),
-        ));
-
-        $this->assertEquals(array('Default', 'Strict'), $constraint->groups);
-        $this->assertEquals(array('Default'), $constraint->constraints[0]->groups);
-        $this->assertEquals(array('Default', 'Strict'), $constraint->constraints[1]->groups);
-    }
-
-    public function testSetImplicitNestedGroupsIfExplicitParentGroup()
-    {
-        $constraint = new ConcreteComposite(array(
-            'constraints' => array(
-                new NotNull(),
-                new NotBlank(),
-            ),
-            'groups' => array('Default', 'Strict'),
-        ));
-
-        $this->assertEquals(array('Default', 'Strict'), $constraint->groups);
-        $this->assertEquals(array('Default', 'Strict'), $constraint->constraints[0]->groups);
-        $this->assertEquals(array('Default', 'Strict'), $constraint->constraints[1]->groups);
-    }
-
-    public function testExplicitNestedGroupsMustBeSubsetOfExplicitParentGroups()
-    {
-        $constraint = new ConcreteComposite(array(
-            'constraints' => array(
-                new NotNull(array('groups' => 'Default')),
-                new NotBlank(array('groups' => 'Strict')),
-            ),
-            'groups' => array('Default', 'Strict'),
-        ));
-
-        $this->assertEquals(array('Default', 'Strict'), $constraint->groups);
-        $this->assertEquals(array('Default'), $constraint->constraints[0]->groups);
-        $this->assertEquals(array('Strict'), $constraint->constraints[1]->groups);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testFailIfExplicitNestedGroupsNotSubsetOfExplicitParentGroups()
-    {
-        new ConcreteComposite(array(
-            'constraints' => array(
-                new NotNull(array('groups' => array('Default', 'Foobar'))),
-            ),
-            'groups' => array('Default', 'Strict'),
-        ));
-    }
-
-    public function testImplicitGroupNamesAreForwarded()
-    {
-        $constraint = new ConcreteComposite(array(
-            new NotNull(array('groups' => 'Default')),
-            new NotBlank(array('groups' => 'Strict')),
-        ));
-
-        $constraint->addImplicitGroupName('ImplicitGroup');
-
-        $this->assertEquals(array('Default', 'Strict', 'ImplicitGroup'), $constraint->groups);
-        $this->assertEquals(array('Default', 'ImplicitGroup'), $constraint->constraints[0]->groups);
-        $this->assertEquals(array('Strict'), $constraint->constraints[1]->groups);
-    }
-
-    public function testSingleConstraintsAccepted()
-    {
-        $nestedConstraint = new NotNull();
-        $constraint = new ConcreteComposite($nestedConstraint);
-
-        $this->assertEquals(array($nestedConstraint), $constraint->constraints);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testFailIfNoConstraint()
-    {
-        new ConcreteComposite(array(
-            new NotNull(array('groups' => 'Default')),
-            'NotBlank',
-        ));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testValidCantBeNested()
-    {
-        new ConcreteComposite(array(
-            new Valid(),
-        ));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CountValidatorArrayTest.php b/core/vendor/symfony/validator/Tests/Constraints/CountValidatorArrayTest.php
deleted file mode 100644
index 5f562e7..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CountValidatorArrayTest.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CountValidatorArrayTest extends CountValidatorTest
-{
-    protected function createCollection(array $content)
-    {
-        return $content;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CountValidatorCountableTest.php b/core/vendor/symfony/validator/Tests/Constraints/CountValidatorCountableTest.php
deleted file mode 100644
index 7d46967..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CountValidatorCountableTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Tests\Fixtures\Countable;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CountValidatorCountableTest extends CountValidatorTest
-{
-    protected function createCollection(array $content)
-    {
-        return new Countable($content);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php
deleted file mode 100644
index 6713166..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CountValidatorTest.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Count;
-use Symfony\Component\Validator\Constraints\CountValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class CountValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new CountValidator();
-    }
-
-    abstract protected function createCollection(array $content);
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Count(6));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsCountableType()
-    {
-        $this->validator->validate(new \stdClass(), new Count(5));
-    }
-
-    public function getThreeOrLessElements()
-    {
-        return array(
-            array($this->createCollection(array(1))),
-            array($this->createCollection(array(1, 2))),
-            array($this->createCollection(array(1, 2, 3))),
-            array($this->createCollection(array('a' => 1, 'b' => 2, 'c' => 3))),
-        );
-    }
-
-    public function getFourElements()
-    {
-        return array(
-            array($this->createCollection(array(1, 2, 3, 4))),
-            array($this->createCollection(array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4))),
-        );
-    }
-
-    public function getFiveOrMoreElements()
-    {
-        return array(
-            array($this->createCollection(array(1, 2, 3, 4, 5))),
-            array($this->createCollection(array(1, 2, 3, 4, 5, 6))),
-            array($this->createCollection(array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5))),
-        );
-    }
-
-    /**
-     * @dataProvider getThreeOrLessElements
-     */
-    public function testValidValuesMax($value)
-    {
-        $constraint = new Count(array('max' => 3));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getFiveOrMoreElements
-     */
-    public function testValidValuesMin($value)
-    {
-        $constraint = new Count(array('min' => 5));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getFourElements
-     */
-    public function testValidValuesExact($value)
-    {
-        $constraint = new Count(4);
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getFiveOrMoreElements
-     */
-    public function testTooManyValues($value)
-    {
-        $constraint = new Count(array(
-            'max' => 4,
-            'maxMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ count }}', count($value))
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Count::TOO_MANY_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getThreeOrLessElements
-     */
-    public function testTooFewValues($value)
-    {
-        $constraint = new Count(array(
-            'min' => 4,
-            'minMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ count }}', count($value))
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Count::TOO_FEW_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getFiveOrMoreElements
-     */
-    public function testTooManyValuesExact($value)
-    {
-        $constraint = new Count(array(
-            'min' => 4,
-            'max' => 4,
-            'exactMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ count }}', count($value))
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Count::TOO_MANY_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getThreeOrLessElements
-     */
-    public function testTooFewValuesExact($value)
-    {
-        $constraint = new Count(array(
-            'min' => 4,
-            'max' => 4,
-            'exactMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ count }}', count($value))
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Count::TOO_FEW_ERROR)
-            ->assertRaised();
-    }
-
-    public function testDefaultOption()
-    {
-        $constraint = new Count(5);
-
-        $this->assertEquals(5, $constraint->min);
-        $this->assertEquals(5, $constraint->max);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CountryValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/CountryValidatorTest.php
deleted file mode 100644
index b133511..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CountryValidatorTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Validator\Constraints\Country;
-use Symfony\Component\Validator\Constraints\CountryValidator;
-use Symfony\Component\Validator\Validation;
-
-class CountryValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function setUp()
-    {
-        IntlTestHelper::requireFullIntl($this);
-
-        parent::setUp();
-    }
-
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new CountryValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Country());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Country());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Country());
-    }
-
-    /**
-     * @dataProvider getValidCountries
-     */
-    public function testValidCountries($country)
-    {
-        $this->validator->validate($country, new Country());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidCountries()
-    {
-        return array(
-            array('GB'),
-            array('AT'),
-            array('MY'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidCountries
-     */
-    public function testInvalidCountries($country)
-    {
-        $constraint = new Country(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($country, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$country.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidCountries()
-    {
-        return array(
-            array('foobar'),
-            array('EN'),
-        );
-    }
-
-    public function testValidateUsingCountrySpecificLocale()
-    {
-        // in order to test with "en_GB"
-        IntlTestHelper::requireFullIntl($this);
-
-        \Locale::setDefault('en_GB');
-
-        $existingCountry = 'GB';
-
-        $this->validator->validate($existingCountry, new Country());
-
-        $this->assertNoViolation();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/CurrencyValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/CurrencyValidatorTest.php
deleted file mode 100644
index e5bb060..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/CurrencyValidatorTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Validator\Constraints\Currency;
-use Symfony\Component\Validator\Constraints\CurrencyValidator;
-use Symfony\Component\Validator\Validation;
-
-class CurrencyValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function setUp()
-    {
-        IntlTestHelper::requireFullIntl($this);
-
-        parent::setUp();
-    }
-
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new CurrencyValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Currency());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Currency());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Currency());
-    }
-
-    /**
-     * @dataProvider getValidCurrencies
-     */
-    public function testValidCurrencies($currency)
-    {
-        $this->validator->validate($currency, new Currency());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getValidCurrencies
-     **/
-    public function testValidCurrenciesWithCountrySpecificLocale($currency)
-    {
-        \Locale::setDefault('en_GB');
-
-        $this->validator->validate($currency, new Currency());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidCurrencies()
-    {
-        return array(
-            array('EUR'),
-            array('USD'),
-            array('SIT'),
-            array('AUD'),
-            array('CAD'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidCurrencies
-     */
-    public function testInvalidCurrencies($currency)
-    {
-        $constraint = new Currency(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($currency, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$currency.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidCurrencies()
-    {
-        return array(
-            array('EN'),
-            array('foobar'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/DateTimeValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/DateTimeValidatorTest.php
deleted file mode 100644
index 25d88aa..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/DateTimeValidatorTest.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\DateTime;
-use Symfony\Component\Validator\Constraints\DateTimeValidator;
-use Symfony\Component\Validator\Validation;
-
-class DateTimeValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new DateTimeValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new DateTime());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new DateTime());
-
-        $this->assertNoViolation();
-    }
-
-    public function testDateTimeClassIsValid()
-    {
-        $this->validator->validate(new \DateTime(), new DateTime());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new DateTime());
-    }
-
-    /**
-     * @dataProvider getValidDateTimes
-     */
-    public function testValidDateTimes($dateTime)
-    {
-        $this->validator->validate($dateTime, new DateTime());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidDateTimes()
-    {
-        return array(
-            array('2010-01-01 01:02:03'),
-            array('1955-12-12 00:00:00'),
-            array('2030-05-31 23:59:59'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidDateTimes
-     */
-    public function testInvalidDateTimes($dateTime, $code)
-    {
-        $constraint = new DateTime(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($dateTime, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$dateTime.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidDateTimes()
-    {
-        return array(
-            array('foobar', DateTime::INVALID_FORMAT_ERROR),
-            array('2010-01-01', DateTime::INVALID_FORMAT_ERROR),
-            array('00:00:00', DateTime::INVALID_FORMAT_ERROR),
-            array('2010-01-01 00:00', DateTime::INVALID_FORMAT_ERROR),
-            array('2010-13-01 00:00:00', DateTime::INVALID_DATE_ERROR),
-            array('2010-04-32 00:00:00', DateTime::INVALID_DATE_ERROR),
-            array('2010-02-29 00:00:00', DateTime::INVALID_DATE_ERROR),
-            array('2010-01-01 24:00:00', DateTime::INVALID_TIME_ERROR),
-            array('2010-01-01 00:60:00', DateTime::INVALID_TIME_ERROR),
-            array('2010-01-01 00:00:60', DateTime::INVALID_TIME_ERROR),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/DateValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/DateValidatorTest.php
deleted file mode 100644
index 21f0a2d..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/DateValidatorTest.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Date;
-use Symfony\Component\Validator\Constraints\DateValidator;
-use Symfony\Component\Validator\Validation;
-
-class DateValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new DateValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Date());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Date());
-
-        $this->assertNoViolation();
-    }
-
-    public function testDateTimeClassIsValid()
-    {
-        $this->validator->validate(new \DateTime(), new Date());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Date());
-    }
-
-    /**
-     * @dataProvider getValidDates
-     */
-    public function testValidDates($date)
-    {
-        $this->validator->validate($date, new Date());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidDates()
-    {
-        return array(
-            array('2010-01-01'),
-            array('1955-12-12'),
-            array('2030-05-31'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidDates
-     */
-    public function testInvalidDates($date, $code)
-    {
-        $constraint = new Date(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($date, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$date.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidDates()
-    {
-        return array(
-            array('foobar', Date::INVALID_FORMAT_ERROR),
-            array('foobar 2010-13-01', Date::INVALID_FORMAT_ERROR),
-            array('2010-13-01 foobar', Date::INVALID_FORMAT_ERROR),
-            array('2010-13-01', Date::INVALID_DATE_ERROR),
-            array('2010-04-32', Date::INVALID_DATE_ERROR),
-            array('2010-02-29', Date::INVALID_DATE_ERROR),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/EmailValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/EmailValidatorTest.php
deleted file mode 100644
index 7e7a5cc..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/EmailValidatorTest.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Email;
-use Symfony\Component\Validator\Constraints\EmailValidator;
-use Symfony\Component\Validator\Validation;
-
-class EmailValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new EmailValidator(false);
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Email());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Email());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Email());
-    }
-
-    /**
-     * @dataProvider getValidEmails
-     */
-    public function testValidEmails($email)
-    {
-        $this->validator->validate($email, new Email());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidEmails()
-    {
-        return array(
-            array('fabien@symfony.com'),
-            array('example@example.co.uk'),
-            array('fabien_potencier@example.fr'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidEmails
-     */
-    public function testInvalidEmails($email)
-    {
-        $constraint = new Email(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($email, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$email.'"')
-            ->setCode(Email::INVALID_FORMAT_ERROR)
-            ->assertRaised();
-    }
-
-    public function getInvalidEmails()
-    {
-        return array(
-            array('example'),
-            array('example@'),
-            array('example@localhost'),
-            array('foo@example.com bar'),
-        );
-    }
-
-    public function testStrict()
-    {
-        $constraint = new Email(array('strict' => true));
-
-        $this->validator->validate('example@localhost', $constraint);
-
-        $this->assertNoViolation();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/EqualToValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/EqualToValidatorTest.php
deleted file mode 100644
index c20db15..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/EqualToValidatorTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\EqualTo;
-use Symfony\Component\Validator\Constraints\EqualToValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class EqualToValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new EqualToValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new EqualTo($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(3, 3),
-            array(3, '3'),
-            array('a', 'a'),
-            array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01')),
-            array(new \DateTime('2000-01-01'), '2000-01-01'),
-            array(new \DateTime('2000-01-01 UTC'), '2000-01-01 UTC'),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(5)),
-            array(null, 1),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(1, '1', 2, '2', 'integer'),
-            array('22', '"22"', '333', '"333"', 'string'),
-            array(new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', '2000-01-01', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2001-01-01 UTC'), 'Jan 1, 2001, 12:00 AM', '2000-01-01 UTC', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new ComparisonTest_Class(4), '4', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/ExpressionValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/ExpressionValidatorTest.php
deleted file mode 100644
index 3d4ef75..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/ExpressionValidatorTest.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\PropertyAccess\PropertyAccess;
-use Symfony\Component\Validator\Constraints\Expression;
-use Symfony\Component\Validator\Constraints\ExpressionValidator;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-use Symfony\Component\Validator\Validation;
-
-class ExpressionValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new ExpressionValidator(PropertyAccess::createPropertyAccessor());
-    }
-
-    public function testExpressionIsEvaluatedWithNullValue()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'false',
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(null, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'null')
-            ->assertRaised();
-    }
-
-    public function testExpressionIsEvaluatedWithEmptyStringValue()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'false',
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate('', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '""')
-            ->assertRaised();
-    }
-
-    public function testSucceedingExpressionAtObjectLevel()
-    {
-        $constraint = new Expression('this.data == 1');
-
-        $object = new Entity();
-        $object->data = '1';
-
-        $this->setObject($object);
-
-        $this->validator->validate($object, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testFailingExpressionAtObjectLevel()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'this.data == 1',
-            'message' => 'myMessage',
-        ));
-
-        $object = new Entity();
-        $object->data = '2';
-
-        $this->setObject($object);
-
-        $this->validator->validate($object, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'object')
-            ->assertRaised();
-    }
-
-    public function testSucceedingExpressionAtPropertyLevel()
-    {
-        $constraint = new Expression('value == this.data');
-
-        $object = new Entity();
-        $object->data = '1';
-
-        $this->setRoot($object);
-        $this->setPropertyPath('data');
-        $this->setProperty($object, 'data');
-
-        $this->validator->validate('1', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testFailingExpressionAtPropertyLevel()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'value == this.data',
-            'message' => 'myMessage',
-        ));
-
-        $object = new Entity();
-        $object->data = '1';
-
-        $this->setRoot($object);
-        $this->setPropertyPath('data');
-        $this->setProperty($object, 'data');
-
-        $this->validator->validate('2', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"2"')
-            ->atPath('data')
-            ->assertRaised();
-    }
-
-    public function testSucceedingExpressionAtNestedPropertyLevel()
-    {
-        $constraint = new Expression('value == this.data');
-
-        $object = new Entity();
-        $object->data = '1';
-
-        $root = new Entity();
-        $root->reference = $object;
-
-        $this->setRoot($root);
-        $this->setPropertyPath('reference.data');
-        $this->setProperty($object, 'data');
-
-        $this->validator->validate('1', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testFailingExpressionAtNestedPropertyLevel()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'value == this.data',
-            'message' => 'myMessage',
-        ));
-
-        $object = new Entity();
-        $object->data = '1';
-
-        $root = new Entity();
-        $root->reference = $object;
-
-        $this->setRoot($root);
-        $this->setPropertyPath('reference.data');
-        $this->setProperty($object, 'data');
-
-        $this->validator->validate('2', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"2"')
-            ->atPath('reference.data')
-            ->assertRaised();
-    }
-
-    /**
-     * When validatePropertyValue() is called with a class name
-     * https://github.com/symfony/symfony/pull/11498
-     */
-    public function testSucceedingExpressionAtPropertyLevelWithoutRoot()
-    {
-        $constraint = new Expression('value == "1"');
-
-        $this->setRoot('1');
-        $this->setPropertyPath('');
-        $this->setProperty(null, 'property');
-
-        $this->validator->validate('1', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * When validatePropertyValue() is called with a class name
-     * https://github.com/symfony/symfony/pull/11498
-     */
-    public function testFailingExpressionAtPropertyLevelWithoutRoot()
-    {
-        $constraint = new Expression(array(
-            'expression' => 'value == "1"',
-            'message' => 'myMessage',
-        ));
-
-        $this->setRoot('2');
-        $this->setPropertyPath('');
-        $this->setProperty(null, 'property');
-
-        $this->validator->validate('2', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"2"')
-            ->atPath('')
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/FileTest.php b/core/vendor/symfony/validator/Tests/Constraints/FileTest.php
deleted file mode 100644
index fbd4b07..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/FileTest.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\File;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-
-class FileTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @param mixed $maxSize
-     * @param int   $bytes
-     * @param bool  $binaryFormat
-     * @dataProvider provideValidSizes
-     */
-    public function testMaxSize($maxSize, $bytes, $binaryFormat)
-    {
-        $file = new File(array('maxSize' => $maxSize));
-
-        $this->assertSame($bytes, $file->maxSize);
-        $this->assertSame($binaryFormat, $file->binaryFormat);
-    }
-
-    /**
-     * @dataProvider provideValidSizes
-     *
-     * @param int|string $maxSize
-     * @param int        $bytes
-     * @param string     $binaryFormat
-     */
-    public function testMaxSizeCanBeSetAfterInitialization($maxSize, $bytes, $binaryFormat)
-    {
-        $file = new File();
-        $file->maxSize = $maxSize;
-
-        $this->assertSame($bytes, $file->maxSize);
-        $this->assertSame($binaryFormat, $file->binaryFormat);
-    }
-
-    /**
-     * @dataProvider provideInvalidSizes
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     *
-     * @param int|string $maxSize
-     */
-    public function testInvalidValueForMaxSizeThrowsExceptionAfterInitialization($maxSize)
-    {
-        $file = new File(array('maxSize' => 1000));
-        $file->maxSize = $maxSize;
-    }
-
-    /**
-     * @dataProvider provideInvalidSizes
-     *
-     * @param int|string $maxSize
-     */
-    public function testMaxSizeCannotBeSetToInvalidValueAfterInitialization($maxSize)
-    {
-        $file = new File(array('maxSize' => 1000));
-
-        try {
-            $file->maxSize = $maxSize;
-        } catch (ConstraintDefinitionException $e) {
-        }
-
-        $this->assertSame(1000, $file->maxSize);
-    }
-
-    /**
-     * @param mixed $maxSize
-     * @dataProvider provideInValidSizes
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalideMaxSize($maxSize)
-    {
-        $file = new File(array('maxSize' => $maxSize));
-    }
-
-    /**
-     * @return array
-     */
-    public function provideValidSizes()
-    {
-        return array(
-            array('500', 500, false),
-            array(12300, 12300, false),
-            array('1ki', 1024, true),
-            array('1KI', 1024, true),
-            array('2k', 2000, false),
-            array('2K', 2000, false),
-            array('1mi', 1048576, true),
-            array('1MI', 1048576, true),
-            array('3m', 3000000, false),
-            array('3M', 3000000, false),
-        );
-    }
-
-    /**
-     * @return array
-     */
-    public function provideInvalidSizes()
-    {
-        return array(
-            array('+100'),
-            array('foo'),
-            array('1Ko'),
-            array('1kio'),
-            array('1G'),
-            array('1Gi'),
-        );
-    }
-
-    /**
-     * @param mixed $maxSize
-     * @param bool  $guessedFormat
-     * @param bool  $binaryFormat
-     * @dataProvider provideFormats
-     */
-    public function testBinaryFormat($maxSize, $guessedFormat, $binaryFormat)
-    {
-        $file = new File(array('maxSize' => $maxSize, 'binaryFormat' => $guessedFormat));
-
-        $this->assertSame($binaryFormat, $file->binaryFormat);
-    }
-
-    /**
-     * @return array
-     */
-    public function provideFormats()
-    {
-        return array(
-            array(100, null, false),
-            array(100, true, true),
-            array(100, false, false),
-            array('100K', null, false),
-            array('100K', true, true),
-            array('100K', false, false),
-            array('100Ki', null, true),
-            array('100Ki', true, true),
-            array('100Ki', false, false),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/FileValidatorObjectTest.php b/core/vendor/symfony/validator/Tests/Constraints/FileValidatorObjectTest.php
deleted file mode 100644
index f35f93b..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/FileValidatorObjectTest.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\HttpFoundation\File\File;
-
-class FileValidatorObjectTest extends FileValidatorTest
-{
-    protected function getFile($filename)
-    {
-        return new File($filename);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/FileValidatorPathTest.php b/core/vendor/symfony/validator/Tests/Constraints/FileValidatorPathTest.php
deleted file mode 100644
index 11b8d4c..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/FileValidatorPathTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\File;
-
-class FileValidatorPathTest extends FileValidatorTest
-{
-    protected function getFile($filename)
-    {
-        return $filename;
-    }
-
-    public function testFileNotFound()
-    {
-        $constraint = new File(array(
-            'notFoundMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate('foobar', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ file }}', '"foobar"')
-            ->setCode(File::NOT_FOUND_ERROR)
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/FileValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/FileValidatorTest.php
deleted file mode 100644
index 176b49f..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/FileValidatorTest.php
+++ /dev/null
@@ -1,477 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\HttpFoundation\File\UploadedFile;
-use Symfony\Component\Validator\Constraints\File;
-use Symfony\Component\Validator\Constraints\FileValidator;
-use Symfony\Component\Validator\Validation;
-
-abstract class FileValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected $path;
-
-    protected $file;
-
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new FileValidator();
-    }
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->path = sys_get_temp_dir().DIRECTORY_SEPARATOR.'FileValidatorTest';
-        $this->file = fopen($this->path, 'w');
-        fwrite($this->file, ' ', 1);
-    }
-
-    protected function tearDown()
-    {
-        parent::tearDown();
-
-        if (is_resource($this->file)) {
-            fclose($this->file);
-        }
-
-        if (file_exists($this->path)) {
-            unlink($this->path);
-        }
-
-        $this->path = null;
-        $this->file = null;
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new File());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new File());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleTypeOrFile()
-    {
-        $this->validator->validate(new \stdClass(), new File());
-    }
-
-    public function testValidFile()
-    {
-        $this->validator->validate($this->path, new File());
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidUploadedfile()
-    {
-        $file = new UploadedFile($this->path, 'originalName', null, null, null, true);
-        $this->validator->validate($file, new File());
-
-        $this->assertNoViolation();
-    }
-
-    public function provideMaxSizeExceededTests()
-    {
-        // We have various interesting limit - size combinations to test.
-        // Assume a limit of 1000 bytes (1 kB). Then the following table
-        // lists the violation messages for different file sizes:
-        // -----------+--------------------------------------------------------
-        // Size       | Violation Message
-        // -----------+--------------------------------------------------------
-        // 1000 bytes | No violation
-        // 1001 bytes | "Size of 1001 bytes exceeded limit of 1000 bytes"
-        // 1004 bytes | "Size of 1004 bytes exceeded limit of 1000 bytes"
-        //            | NOT: "Size of 1 kB exceeded limit of 1 kB"
-        // 1005 bytes | "Size of 1.01 kB exceeded limit of 1 kB"
-        // -----------+--------------------------------------------------------
-
-        // As you see, we have two interesting borders:
-
-        // 1000/1001 - The border as of which a violation occurs
-        // 1004/1005 - The border as of which the message can be rounded to kB
-
-        // Analogous for kB/MB.
-
-        // Prior to Symfony 2.5, violation messages are always displayed in the
-        // same unit used to specify the limit.
-
-        // As of Symfony 2.5, the above logic is implemented.
-        return array(
-            // limit in bytes
-            array(1001, 1000, '1001', '1000', 'bytes'),
-            array(1004, 1000, '1004', '1000', 'bytes'),
-            array(1005, 1000, '1.01', '1', 'kB'),
-
-            array(1000001, 1000000, '1000001', '1000000', 'bytes'),
-            array(1004999, 1000000, '1005', '1000', 'kB'),
-            array(1005000, 1000000, '1.01', '1', 'MB'),
-
-            // limit in kB
-            array(1001, '1k', '1001', '1000', 'bytes'),
-            array(1004, '1k', '1004', '1000', 'bytes'),
-            array(1005, '1k', '1.01', '1', 'kB'),
-
-            array(1000001, '1000k', '1000001', '1000000', 'bytes'),
-            array(1004999, '1000k', '1005', '1000', 'kB'),
-            array(1005000, '1000k', '1.01', '1', 'MB'),
-
-            // limit in MB
-            array(1000001, '1M', '1000001', '1000000', 'bytes'),
-            array(1004999, '1M', '1005', '1000', 'kB'),
-            array(1005000, '1M', '1.01', '1', 'MB'),
-
-            // limit in KiB
-            array(1025, '1Ki', '1025', '1024', 'bytes'),
-            array(1029, '1Ki', '1029', '1024', 'bytes'),
-            array(1030, '1Ki', '1.01', '1', 'KiB'),
-
-            array(1048577, '1024Ki', '1048577', '1048576', 'bytes'),
-            array(1053818, '1024Ki', '1029.12', '1024', 'KiB'),
-            array(1053819, '1024Ki', '1.01', '1', 'MiB'),
-
-            // limit in MiB
-            array(1048577, '1Mi', '1048577', '1048576', 'bytes'),
-            array(1053818, '1Mi', '1029.12', '1024', 'KiB'),
-            array(1053819, '1Mi', '1.01', '1', 'MiB'),
-        );
-    }
-
-    /**
-     * @dataProvider provideMaxSizeExceededTests
-     */
-    public function testMaxSizeExceeded($bytesWritten, $limit, $sizeAsString, $limitAsString, $suffix)
-    {
-        fseek($this->file, $bytesWritten - 1, SEEK_SET);
-        fwrite($this->file, '0');
-        fclose($this->file);
-
-        $constraint = new File(array(
-            'maxSize' => $limit,
-            'maxSizeMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->getFile($this->path), $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ limit }}', $limitAsString)
-            ->setParameter('{{ size }}', $sizeAsString)
-            ->setParameter('{{ suffix }}', $suffix)
-            ->setParameter('{{ file }}', '"'.$this->path.'"')
-            ->setCode(File::TOO_LARGE_ERROR)
-            ->assertRaised();
-    }
-
-    public function provideMaxSizeNotExceededTests()
-    {
-        return array(
-            // limit in bytes
-            array(1000, 1000),
-            array(1000000, 1000000),
-
-            // limit in kB
-            array(1000, '1k'),
-            array(1000000, '1000k'),
-
-            // limit in MB
-            array(1000000, '1M'),
-
-            // limit in KiB
-            array(1024, '1Ki'),
-            array(1048576, '1024Ki'),
-
-            // limit in MiB
-            array(1048576, '1Mi'),
-        );
-    }
-
-    /**
-     * @dataProvider provideMaxSizeNotExceededTests
-     */
-    public function testMaxSizeNotExceeded($bytesWritten, $limit)
-    {
-        fseek($this->file, $bytesWritten - 1, SEEK_SET);
-        fwrite($this->file, '0');
-        fclose($this->file);
-
-        $constraint = new File(array(
-            'maxSize' => $limit,
-            'maxSizeMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->getFile($this->path), $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMaxSize()
-    {
-        $constraint = new File(array(
-            'maxSize' => '1abc',
-        ));
-
-        $this->validator->validate($this->path, $constraint);
-    }
-
-    public function provideBinaryFormatTests()
-    {
-        return array(
-            array(11, 10, null, '11', '10', 'bytes'),
-            array(11, 10, true, '11', '10', 'bytes'),
-            array(11, 10, false, '11', '10', 'bytes'),
-
-            // round(size) == 1.01kB, limit == 1kB
-            array(ceil(1000*1.01), 1000, null, '1.01', '1', 'kB'),
-            array(ceil(1000*1.01), '1k', null, '1.01', '1', 'kB'),
-            array(ceil(1024*1.01), '1Ki', null, '1.01', '1', 'KiB'),
-
-            array(ceil(1024*1.01), 1024, true, '1.01', '1', 'KiB'),
-            array(ceil(1024*1.01*1000), '1024k', true, '1010', '1000', 'KiB'),
-            array(ceil(1024*1.01), '1Ki', true, '1.01', '1', 'KiB'),
-
-            array(ceil(1000*1.01), 1000, false, '1.01', '1', 'kB'),
-            array(ceil(1000*1.01), '1k', false, '1.01', '1', 'kB'),
-            array(ceil(1024*1.01*10), '10Ki', false, '10.34', '10.24', 'kB'),
-        );
-    }
-
-    /**
-     * @dataProvider provideBinaryFormatTests
-     */
-    public function testBinaryFormat($bytesWritten, $limit, $binaryFormat, $sizeAsString, $limitAsString, $suffix)
-    {
-        fseek($this->file, $bytesWritten-1, SEEK_SET);
-        fwrite($this->file, '0');
-        fclose($this->file);
-
-        $constraint = new File(array(
-            'maxSize' => $limit,
-            'binaryFormat' => $binaryFormat,
-            'maxSizeMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->getFile($this->path), $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ limit }}', $limitAsString)
-            ->setParameter('{{ size }}', $sizeAsString)
-            ->setParameter('{{ suffix }}', $suffix)
-            ->setParameter('{{ file }}', '"'.$this->path.'"')
-            ->setCode(File::TOO_LARGE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testValidMimeType()
-    {
-        $file = $this
-            ->getMockBuilder('Symfony\Component\HttpFoundation\File\File')
-            ->setConstructorArgs(array(__DIR__.'/Fixtures/foo'))
-            ->getMock();
-        $file
-            ->expects($this->once())
-            ->method('getPathname')
-            ->will($this->returnValue($this->path));
-        $file
-            ->expects($this->once())
-            ->method('getMimeType')
-            ->will($this->returnValue('image/jpg'));
-
-        $constraint = new File(array(
-            'mimeTypes' => array('image/png', 'image/jpg'),
-        ));
-
-        $this->validator->validate($file, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidWildcardMimeType()
-    {
-        $file = $this
-            ->getMockBuilder('Symfony\Component\HttpFoundation\File\File')
-            ->setConstructorArgs(array(__DIR__.'/Fixtures/foo'))
-            ->getMock();
-        $file
-            ->expects($this->once())
-            ->method('getPathname')
-            ->will($this->returnValue($this->path));
-        $file
-            ->expects($this->once())
-            ->method('getMimeType')
-            ->will($this->returnValue('image/jpg'));
-
-        $constraint = new File(array(
-            'mimeTypes' => array('image/*'),
-        ));
-
-        $this->validator->validate($file, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testInvalidMimeType()
-    {
-        $file = $this
-            ->getMockBuilder('Symfony\Component\HttpFoundation\File\File')
-            ->setConstructorArgs(array(__DIR__.'/Fixtures/foo'))
-            ->getMock();
-        $file
-            ->expects($this->once())
-            ->method('getPathname')
-            ->will($this->returnValue($this->path));
-        $file
-            ->expects($this->once())
-            ->method('getMimeType')
-            ->will($this->returnValue('application/pdf'));
-
-        $constraint = new File(array(
-            'mimeTypes' => array('image/png', 'image/jpg'),
-            'mimeTypesMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($file, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ type }}', '"application/pdf"')
-            ->setParameter('{{ types }}', '"image/png", "image/jpg"')
-            ->setParameter('{{ file }}', '"'.$this->path.'"')
-            ->setCode(File::INVALID_MIME_TYPE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testInvalidWildcardMimeType()
-    {
-        $file = $this
-            ->getMockBuilder('Symfony\Component\HttpFoundation\File\File')
-            ->setConstructorArgs(array(__DIR__.'/Fixtures/foo'))
-            ->getMock();
-        $file
-            ->expects($this->once())
-            ->method('getPathname')
-            ->will($this->returnValue($this->path));
-        $file
-            ->expects($this->once())
-            ->method('getMimeType')
-            ->will($this->returnValue('application/pdf'));
-
-        $constraint = new File(array(
-            'mimeTypes' => array('image/*', 'image/jpg'),
-            'mimeTypesMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($file, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ type }}', '"application/pdf"')
-            ->setParameter('{{ types }}', '"image/*", "image/jpg"')
-            ->setParameter('{{ file }}', '"'.$this->path.'"')
-            ->setCode(File::INVALID_MIME_TYPE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testDisallowEmpty()
-    {
-        ftruncate($this->file, 0);
-
-        $constraint = new File(array(
-            'disallowEmptyMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->getFile($this->path), $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ file }}', '"'.$this->path.'"')
-            ->setCode(File::EMPTY_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider uploadedFileErrorProvider
-     */
-    public function testUploadedFileError($error, $message, array $params = array(), $maxSize = null)
-    {
-        $file = new UploadedFile('/path/to/file', 'originalName', 'mime', 0, $error);
-
-        $constraint = new File(array(
-            $message => 'myMessage',
-            'maxSize' => $maxSize,
-        ));
-
-        $this->validator->validate($file, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameters($params)
-            ->setCode($error)
-            ->assertRaised();
-    }
-
-    public function uploadedFileErrorProvider()
-    {
-        $tests = array(
-            array(UPLOAD_ERR_FORM_SIZE, 'uploadFormSizeErrorMessage'),
-            array(UPLOAD_ERR_PARTIAL, 'uploadPartialErrorMessage'),
-            array(UPLOAD_ERR_NO_FILE, 'uploadNoFileErrorMessage'),
-            array(UPLOAD_ERR_NO_TMP_DIR, 'uploadNoTmpDirErrorMessage'),
-            array(UPLOAD_ERR_CANT_WRITE, 'uploadCantWriteErrorMessage'),
-            array(UPLOAD_ERR_EXTENSION, 'uploadExtensionErrorMessage'),
-        );
-
-        if (class_exists('Symfony\Component\HttpFoundation\File\UploadedFile')) {
-            // when no maxSize is specified on constraint, it should use the ini value
-            $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
-                '{{ limit }}' => UploadedFile::getMaxFilesize() / 1048576,
-                '{{ suffix }}' => 'MiB',
-            ));
-
-            // it should use the smaller limitation (maxSize option in this case)
-            $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
-                '{{ limit }}' => 1,
-                '{{ suffix }}' => 'bytes',
-            ), '1');
-
-            // it correctly parses the maxSize option and not only uses simple string comparison
-            // 1000M should be bigger than the ini value
-            $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
-                '{{ limit }}' => UploadedFile::getMaxFilesize() / 1048576,
-                '{{ suffix }}' => 'MiB',
-            ), '1000M');
-
-            // it correctly parses the maxSize option and not only uses simple string comparison
-            // 1000M should be bigger than the ini value
-            $tests[] = array(UPLOAD_ERR_INI_SIZE, 'uploadIniSizeErrorMessage', array(
-                '{{ limit }}' => '0.1',
-                '{{ suffix }}' => 'MB',
-            ), '100K');
-        }
-
-        return $tests;
-    }
-
-    abstract protected function getFile($filename);
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/foo b/core/vendor/symfony/validator/Tests/Constraints/Fixtures/foo
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test.gif b/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test.gif
deleted file mode 100644
index 6b44fc7..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ,         ;
\ No newline at end of file
diff --git a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_4by3.gif b/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_4by3.gif
deleted file mode 100644
index 64dd3ff..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_4by3.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a    !Created with GIMP ,       V ;
\ No newline at end of file
diff --git a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_landscape.gif b/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_landscape.gif
deleted file mode 100644
index 8701235..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_landscape.gif
+++ /dev/null
@@ -1,3 +0,0 @@
-GIF89a    !
-  ,       L
- ;
\ No newline at end of file
diff --git a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_portrait.gif b/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_portrait.gif
deleted file mode 100644
index cc480ca..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/Fixtures/test_portrait.gif
+++ /dev/null
@@ -1,3 +0,0 @@
-GIF89a    !
-  ,       L
- ;
\ No newline at end of file
diff --git a/core/vendor/symfony/validator/Tests/Constraints/GreaterThanOrEqualValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/GreaterThanOrEqualValidatorTest.php
deleted file mode 100644
index 41708f6..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/GreaterThanOrEqualValidatorTest.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\GreaterThanOrEqual;
-use Symfony\Component\Validator\Constraints\GreaterThanOrEqualValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class GreaterThanOrEqualValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new GreaterThanOrEqualValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new GreaterThanOrEqual($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(3, 2),
-            array(1, 1),
-            array(new \DateTime('2010/01/01'), new \DateTime('2000/01/01')),
-            array(new \DateTime('2000/01/01'), new \DateTime('2000/01/01')),
-            array(new \DateTime('2010/01/01'), '2000/01/01'),
-            array(new \DateTime('2000/01/01'), '2000/01/01'),
-            array(new \DateTime('2010/01/01 UTC'), '2000/01/01 UTC'),
-            array(new \DateTime('2000/01/01 UTC'), '2000/01/01 UTC'),
-            array('a', 'a'),
-            array('z', 'a'),
-            array(null, 1),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(1, '1', 2, '2', 'integer'),
-            array(new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', new \DateTime('2005/01/01'), 'Jan 1, 2005, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', '2005/01/01', 'Jan 1, 2005, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01 UTC'), 'Jan 1, 2000, 12:00 AM', '2005/01/01 UTC', 'Jan 1, 2005, 12:00 AM', 'DateTime'),
-            array('b', '"b"', 'c', '"c"', 'string'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/GreaterThanValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/GreaterThanValidatorTest.php
deleted file mode 100644
index 85a2b1d..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/GreaterThanValidatorTest.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\GreaterThan;
-use Symfony\Component\Validator\Constraints\GreaterThanValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class GreaterThanValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new GreaterThanValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new GreaterThan($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(2, 1),
-            array(new \DateTime('2005/01/01'), new \DateTime('2001/01/01')),
-            array(new \DateTime('2005/01/01'), '2001/01/01'),
-            array(new \DateTime('2005/01/01 UTC'), '2001/01/01 UTC'),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(4)),
-            array('333', '22'),
-            array(null, 1),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(1, '1', 2, '2', 'integer'),
-            array(2, '2', 2, '2', 'integer'),
-            array(new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', new \DateTime('2005/01/01'), 'Jan 1, 2005, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', '2005/01/01', 'Jan 1, 2005, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01'), 'Jan 1, 2000, 12:00 AM', '2000/01/01', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01 UTC'), 'Jan 1, 2000, 12:00 AM', '2005/01/01 UTC', 'Jan 1, 2005, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000/01/01 UTC'), 'Jan 1, 2000, 12:00 AM', '2000/01/01 UTC', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new ComparisonTest_Class(4), '4', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-            array(new ComparisonTest_Class(5), '5', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-            array('22', '"22"', '333', '"333"', 'string'),
-            array('22', '"22"', '22', '"22"', 'string'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/GroupSequenceTest.php b/core/vendor/symfony/validator/Tests/Constraints/GroupSequenceTest.php
deleted file mode 100644
index aa2d601..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/GroupSequenceTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\GroupSequence;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class GroupSequenceTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCreate()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2'));
-
-        $this->assertSame(array('Group 1', 'Group 2'), $sequence->groups);
-    }
-
-    public function testCreateDoctrineStyle()
-    {
-        $sequence = new GroupSequence(array('value' => array('Group 1', 'Group 2')));
-
-        $this->assertSame(array('Group 1', 'Group 2'), $sequence->groups);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyIterate()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2'));
-
-        $this->assertSame(array('Group 1', 'Group 2'), iterator_to_array($sequence));
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyCount()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2'));
-
-        $this->assertCount(2, $sequence);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyArrayAccess()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2'));
-
-        $this->assertSame('Group 1', $sequence[0]);
-        $this->assertSame('Group 2', $sequence[1]);
-        $this->assertTrue(isset($sequence[0]));
-        $this->assertFalse(isset($sequence[2]));
-        unset($sequence[0]);
-        $this->assertFalse(isset($sequence[0]));
-        $sequence[] = 'Group 3';
-        $this->assertTrue(isset($sequence[2]));
-        $this->assertSame('Group 3', $sequence[2]);
-        $sequence[0] = 'Group 1';
-        $this->assertTrue(isset($sequence[0]));
-        $this->assertSame('Group 1', $sequence[0]);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\OutOfBoundsException
-     * @group legacy
-     */
-    public function testLegacyGetExpectsExistingKey()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2'));
-
-        $sequence[2];
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyUnsetIgnoresNonExistingKeys()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2'));
-
-        // should not fail
-        unset($sequence[2]);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IbanValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IbanValidatorTest.php
deleted file mode 100644
index ab9839a..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IbanValidatorTest.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Iban;
-use Symfony\Component\Validator\Constraints\IbanValidator;
-use Symfony\Component\Validator\Validation;
-
-class IbanValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IbanValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Iban());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Iban());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getValidIbans
-     */
-    public function testValidIbans($iban)
-    {
-        $this->validator->validate($iban, new Iban());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidIbans()
-    {
-        return array(
-            array('CH9300762011623852957'), // Switzerland without spaces
-            array('CH93  0076 2011 6238 5295 7'), // Switzerland with multiple spaces
-
-            //Country list
-            //http://www.rbs.co.uk/corporate/international/g0/guide-to-international-business/regulatory-information/iban/iban-example.ashx
-
-            array('AL47 2121 1009 0000 0002 3569 8741'), //Albania
-            array('AD12 0001 2030 2003 5910 0100'), //Andorra
-            array('AT61 1904 3002 3457 3201'), //Austria
-            array('AZ21 NABZ 0000 0000 1370 1000 1944'), //Azerbaijan
-            array('BH67 BMAG 0000 1299 1234 56'), //Bahrain
-            array('BE62 5100 0754 7061'), //Belgium
-            array('BA39 1290 0794 0102 8494'), //Bosnia and Herzegovina
-            array('BG80 BNBG 9661 1020 3456 78'), //Bulgaria
-            array('HR12 1001 0051 8630 0016 0'), //Croatia
-            array('CY17 0020 0128 0000 0012 0052 7600'), //Cyprus
-            array('CZ65 0800 0000 1920 0014 5399'), //Czech Republic
-            array('DK50 0040 0440 1162 43'), //Denmark
-            array('EE38 2200 2210 2014 5685'), //Estonia
-            array('FO97 5432 0388 8999 44'), //Faroe Islands
-            array('FI21 1234 5600 0007 85'), //Finland
-            array('FR14 2004 1010 0505 0001 3M02 606'), //France
-            array('GE29 NB00 0000 0101 9049 17'), //Georgia
-            array('DE89 3704 0044 0532 0130 00'), //Germany
-            array('GI75 NWBK 0000 0000 7099 453'), //Gibraltar
-            array('GR16 0110 1250 0000 0001 2300 695'), //Greece
-            array('GL56 0444 9876 5432 10'), //Greenland
-            array('HU42 1177 3016 1111 1018 0000 0000'), //Hungary
-            array('IS14 0159 2600 7654 5510 7303 39'), //Iceland
-            array('IE29 AIBK 9311 5212 3456 78'), //Ireland
-            array('IL62 0108 0000 0009 9999 999'), //Israel
-            array('IT40 S054 2811 1010 0000 0123 456'), //Italy
-            array('LV80 BANK 0000 4351 9500 1'), //Latvia
-            array('LB62 0999 0000 0001 0019 0122 9114'), //Lebanon
-            array('LI21 0881 0000 2324 013A A'), //Liechtenstein
-            array('LT12 1000 0111 0100 1000'), //Lithuania
-            array('LU28 0019 4006 4475 0000'), //Luxembourg
-            array('MK072 5012 0000 0589 84'), //Macedonia
-            array('MT84 MALT 0110 0001 2345 MTLC AST0 01S'), //Malta
-            array('MU17 BOMM 0101 1010 3030 0200 000M UR'), //Mauritius
-            array('MD24 AG00 0225 1000 1310 4168'), //Moldova
-            array('MC93 2005 2222 1001 1223 3M44 555'), //Monaco
-            array('ME25 5050 0001 2345 6789 51'), //Montenegro
-            array('NL39 RABO 0300 0652 64'), //Netherlands
-            array('NO93 8601 1117 947'), //Norway
-            array('PK36 SCBL 0000 0011 2345 6702'), //Pakistan
-            array('PL60 1020 1026 0000 0422 7020 1111'), //Poland
-            array('PT50 0002 0123 1234 5678 9015 4'), //Portugal
-            array('RO49 AAAA 1B31 0075 9384 0000'), //Romania
-            array('SM86 U032 2509 8000 0000 0270 100'), //San Marino
-            array('SA03 8000 0000 6080 1016 7519'), //Saudi Arabia
-            array('RS35 2600 0560 1001 6113 79'), //Serbia
-            array('SK31 1200 0000 1987 4263 7541'), //Slovak Republic
-            array('SI56 1910 0000 0123 438'), //Slovenia
-            array('ES80 2310 0001 1800 0001 2345'), //Spain
-            array('SE35 5000 0000 0549 1000 0003'), //Sweden
-            array('CH93 0076 2011 6238 5295 7'), //Switzerland
-            array('TN59 1000 6035 1835 9847 8831'), //Tunisia
-            array('TR33 0006 1005 1978 6457 8413 26'), //Turkey
-            array('AE07 0331 2345 6789 0123 456'), //UAE
-            array('GB 12 CPBK 0892 9965 0449 91'), //United Kingdom
-
-            //Extended country list
-            //http://www.nordea.com/Our+services/International+products+and+services/Cash+Management/IBAN+countries/908462.html
-            array('AO06000600000100037131174'), //Angola
-            array('AZ21NABZ00000000137010001944'), //Azerbaijan
-            array('BH29BMAG1299123456BH00'), //Bahrain
-            array('BJ11B00610100400271101192591'), //Benin
-            array('VG96VPVG0000012345678901'), //British Virgin Islands
-            array('BF1030134020015400945000643'), //Burkina Faso
-            array('BI43201011067444'), //Burundi
-            array('CM2110003001000500000605306'), //Cameroon
-            array('CV64000300004547069110176'), //Cape Verde
-            array('FR7630007000110009970004942'), //Central African Republic
-            array('CG5230011000202151234567890'), //Congo
-            array('CR0515202001026284066'), //Costa Rica
-            array('DO28BAGR00000001212453611324'), //Dominican Republic
-            array('GT82TRAJ01020000001210029690'), //Guatemala
-            array('IR580540105180021273113007'), //Iran
-            array('IL620108000000099999999'), //Israel
-            array('CI05A00060174100178530011852'), //Ivory Coast
-            array('KZ176010251000042993'), //Kazakhstan
-            array('KW74NBOK0000000000001000372151'), //Kuwait
-            array('LB30099900000001001925579115'), //Lebanon
-            array('MG4600005030010101914016056'), //Madagascar
-            array('ML03D00890170001002120000447'), //Mali
-            array('MR1300012000010000002037372'), //Mauritania
-            array('MU17BOMM0101101030300200000MUR'), //Mauritius
-            array('MZ59000100000011834194157'), //Mozambique
-            array('PS92PALS000000000400123456702'), //Palestinian Territory
-            array('PT50000200000163099310355'), //Sao Tome and Principe
-            array('SA0380000000608010167519'), //Saudi Arabia
-            array('SN12K00100152000025690007542'), //Senegal
-            array('TN5914207207100707129648'), //Tunisia
-            array('TR330006100519786457841326'), //Turkey
-            array('AE260211000000230064016'), //United Arab Emirates
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidIbans
-     */
-    public function testInvalidIbans($iban, $code)
-    {
-        $constraint = new Iban(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($iban, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$iban.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidIbans()
-    {
-        return array(
-            array('CH93 0076 2011 6238 5295', Iban::CHECKSUM_FAILED_ERROR),
-            array('CH930076201162385295', Iban::CHECKSUM_FAILED_ERROR),
-            array('GB29 RBOS 6016 1331 9268 19', Iban::CHECKSUM_FAILED_ERROR),
-            array('CH930072011623852957', Iban::CHECKSUM_FAILED_ERROR),
-            array('NL39 RASO 0300 0652 64', Iban::CHECKSUM_FAILED_ERROR),
-            array('NO93 8601117 947', Iban::CHECKSUM_FAILED_ERROR),
-            array('CY170020 128 0000 0012 0052 7600', Iban::CHECKSUM_FAILED_ERROR),
-            array('foo', Iban::TOO_SHORT_ERROR),
-            array('123', Iban::TOO_SHORT_ERROR),
-            array('0750447346', Iban::INVALID_COUNTRY_CODE_ERROR),
-            array('CH930076201162385295]', Iban::INVALID_CHARACTERS_ERROR),
-
-            //Ibans with lower case values are invalid
-            array('Ae260211000000230064016', Iban::INVALID_CASE_ERROR),
-            array('ae260211000000230064016', Iban::INVALID_CASE_ERROR),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IdenticalToValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IdenticalToValidatorTest.php
deleted file mode 100644
index 4b71062..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IdenticalToValidatorTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\IdenticalTo;
-use Symfony\Component\Validator\Constraints\IdenticalToValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class IdenticalToValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IdenticalToValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new IdenticalTo($options);
-    }
-
-    public function provideAllValidComparisons()
-    {
-        $this->setDefaultTimezone('UTC');
-
-        // Don't call addPhp5Dot5Comparisons() automatically, as it does
-        // not take care of identical objects
-        $comparisons = $this->provideValidComparisons();
-
-        $this->restoreDefaultTimezone();
-
-        return $comparisons;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        $date = new \DateTime('2000-01-01');
-        $object = new ComparisonTest_Class(2);
-
-        $comparisons = array(
-            array(3, 3),
-            array('a', 'a'),
-            array($date, $date),
-            array($object, $object),
-            array(null, 1),
-        );
-
-        if (version_compare(PHP_VERSION, '>=', '5.5')) {
-            $immutableDate = new \DateTimeImmutable('2000-01-01');
-            $comparisons[] = array($immutableDate, $immutableDate);
-        }
-
-        return $comparisons;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(1, '1', 2, '2', 'integer'),
-            array(2, '2', '2', '"2"', 'string'),
-            array('22', '"22"', '333', '"333"', 'string'),
-            array(new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2001-01-01'), 'Jan 1, 2001, 12:00 AM', new \DateTime('1999-01-01'), 'Jan 1, 1999, 12:00 AM', 'DateTime'),
-            array(new ComparisonTest_Class(4), '4', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/ImageValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/ImageValidatorTest.php
deleted file mode 100644
index 18f9c1b..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/ImageValidatorTest.php
+++ /dev/null
@@ -1,329 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Image;
-use Symfony\Component\Validator\Constraints\ImageValidator;
-use Symfony\Component\Validator\Validation;
-
-class ImageValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected $context;
-
-    /**
-     * @var ImageValidator
-     */
-    protected $validator;
-
-    protected $path;
-    protected $image;
-    protected $imageLandscape;
-    protected $imagePortrait;
-    protected $image4By3;
-
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new ImageValidator();
-    }
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->image = __DIR__.'/Fixtures/test.gif';
-        $this->imageLandscape = __DIR__.'/Fixtures/test_landscape.gif';
-        $this->imagePortrait = __DIR__.'/Fixtures/test_portrait.gif';
-        $this->image4By3 = __DIR__.'/Fixtures/test_4by3.gif';
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Image());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Image());
-
-        $this->assertNoViolation();
-    }
-
-    public function testValidImage()
-    {
-        $this->validator->validate($this->image, new Image());
-
-        $this->assertNoViolation();
-    }
-
-    public function testFileNotFound()
-    {
-        // Check that the logic from FileValidator still works
-        $constraint = new Image(array(
-            'notFoundMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate('foobar', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ file }}', '"foobar"')
-            ->setCode(Image::NOT_FOUND_ERROR)
-            ->assertRaised();
-    }
-
-    public function testValidSize()
-    {
-        $constraint = new Image(array(
-            'minWidth' => 1,
-            'maxWidth' => 2,
-            'minHeight' => 1,
-            'maxHeight' => 2,
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testWidthTooSmall()
-    {
-        $constraint = new Image(array(
-            'minWidth' => 3,
-            'minWidthMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ width }}', '2')
-            ->setParameter('{{ min_width }}', '3')
-            ->setCode(Image::TOO_NARROW_ERROR)
-            ->assertRaised();
-    }
-
-    public function testWidthTooBig()
-    {
-        $constraint = new Image(array(
-            'maxWidth' => 1,
-            'maxWidthMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ width }}', '2')
-            ->setParameter('{{ max_width }}', '1')
-            ->setCode(Image::TOO_WIDE_ERROR)
-            ->assertRaised();
-    }
-
-    public function testHeightTooSmall()
-    {
-        $constraint = new Image(array(
-            'minHeight' => 3,
-            'minHeightMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ height }}', '2')
-            ->setParameter('{{ min_height }}', '3')
-            ->setCode(Image::TOO_LOW_ERROR)
-            ->assertRaised();
-    }
-
-    public function testHeightTooBig()
-    {
-        $constraint = new Image(array(
-            'maxHeight' => 1,
-            'maxHeightMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ height }}', '2')
-            ->setParameter('{{ max_height }}', '1')
-            ->setCode(Image::TOO_HIGH_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMinWidth()
-    {
-        $constraint = new Image(array(
-            'minWidth' => '1abc',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMaxWidth()
-    {
-        $constraint = new Image(array(
-            'maxWidth' => '1abc',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMinHeight()
-    {
-        $constraint = new Image(array(
-            'minHeight' => '1abc',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMaxHeight()
-    {
-        $constraint = new Image(array(
-            'maxHeight' => '1abc',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    public function testRatioTooSmall()
-    {
-        $constraint = new Image(array(
-            'minRatio' => 2,
-            'minRatioMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ ratio }}', 1)
-            ->setParameter('{{ min_ratio }}', 2)
-            ->setCode(Image::RATIO_TOO_SMALL_ERROR)
-            ->assertRaised();
-    }
-
-    public function testRatioTooBig()
-    {
-        $constraint = new Image(array(
-            'maxRatio' => 0.5,
-            'maxRatioMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ ratio }}', 1)
-            ->setParameter('{{ max_ratio }}', 0.5)
-            ->setCode(Image::RATIO_TOO_BIG_ERROR)
-            ->assertRaised();
-    }
-
-    public function testMaxRatioUsesTwoDecimalsOnly()
-    {
-        $constraint = new Image(array(
-            'maxRatio' => 1.33,
-        ));
-
-        $this->validator->validate($this->image4By3, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMinRatio()
-    {
-        $constraint = new Image(array(
-            'minRatio' => '1abc',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidMaxRatio()
-    {
-        $constraint = new Image(array(
-            'maxRatio' => '1abc',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-    }
-
-    public function testSquareNotAllowed()
-    {
-        $constraint = new Image(array(
-            'allowSquare' => false,
-            'allowSquareMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->image, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ width }}', 2)
-            ->setParameter('{{ height }}', 2)
-            ->setCode(Image::SQUARE_NOT_ALLOWED_ERROR)
-            ->assertRaised();
-    }
-
-    public function testLandscapeNotAllowed()
-    {
-        $constraint = new Image(array(
-            'allowLandscape' => false,
-            'allowLandscapeMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->imageLandscape, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ width }}', 2)
-            ->setParameter('{{ height }}', 1)
-            ->setCode(Image::LANDSCAPE_NOT_ALLOWED_ERROR)
-            ->assertRaised();
-    }
-
-    public function testPortraitNotAllowed()
-    {
-        $constraint = new Image(array(
-            'allowPortrait' => false,
-            'allowPortraitMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($this->imagePortrait, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ width }}', 1)
-            ->setParameter('{{ height }}', 2)
-            ->setCode(Image::PORTRAIT_NOT_ALLOWED_ERROR)
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IpValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IpValidatorTest.php
deleted file mode 100644
index fc40e61..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IpValidatorTest.php
+++ /dev/null
@@ -1,444 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Ip;
-use Symfony\Component\Validator\Constraints\IpValidator;
-use Symfony\Component\Validator\Validation;
-
-class IpValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IpValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Ip());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Ip());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Ip());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testInvalidValidatorVersion()
-    {
-        new Ip(array(
-            'version' => 666,
-        ));
-    }
-
-    /**
-     * @dataProvider getValidIpsV4
-     */
-    public function testValidIpsV4($ip)
-    {
-        $this->validator->validate($ip, new Ip(array(
-            'version' => Ip::V4,
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidIpsV4()
-    {
-        return array(
-            array('0.0.0.0'),
-            array('10.0.0.0'),
-            array('123.45.67.178'),
-            array('172.16.0.0'),
-            array('192.168.1.0'),
-            array('224.0.0.1'),
-            array('255.255.255.255'),
-            array('127.0.0.0'),
-        );
-    }
-
-    /**
-     * @dataProvider getValidIpsV6
-     */
-    public function testValidIpsV6($ip)
-    {
-        $this->validator->validate($ip, new Ip(array(
-            'version' => Ip::V6,
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidIpsV6()
-    {
-        return array(
-            array('2001:0db8:85a3:0000:0000:8a2e:0370:7334'),
-            array('2001:0DB8:85A3:0000:0000:8A2E:0370:7334'),
-            array('2001:0Db8:85a3:0000:0000:8A2e:0370:7334'),
-            array('fdfe:dcba:9876:ffff:fdc6:c46b:bb8f:7d4c'),
-            array('fdc6:c46b:bb8f:7d4c:fdc6:c46b:bb8f:7d4c'),
-            array('fdc6:c46b:bb8f:7d4c:0000:8a2e:0370:7334'),
-            array('fe80:0000:0000:0000:0202:b3ff:fe1e:8329'),
-            array('fe80:0:0:0:202:b3ff:fe1e:8329'),
-            array('fe80::202:b3ff:fe1e:8329'),
-            array('0:0:0:0:0:0:0:0'),
-            array('::'),
-            array('0::'),
-            array('::0'),
-            array('0::0'),
-            // IPv4 mapped to IPv6
-            array('2001:0db8:85a3:0000:0000:8a2e:0.0.0.0'),
-            array('::0.0.0.0'),
-            array('::255.255.255.255'),
-            array('::123.45.67.178'),
-        );
-    }
-
-    /**
-     * @dataProvider getValidIpsAll
-     */
-    public function testValidIpsAll($ip)
-    {
-        $this->validator->validate($ip, new Ip(array(
-            'version' => Ip::ALL,
-        )));
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidIpsAll()
-    {
-        return array_merge($this->getValidIpsV4(), $this->getValidIpsV6());
-    }
-
-    /**
-     * @dataProvider getInvalidIpsV4
-     */
-    public function testInvalidIpsV4($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V4,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidIpsV4()
-    {
-        return array(
-            array('0'),
-            array('0.0'),
-            array('0.0.0'),
-            array('256.0.0.0'),
-            array('0.256.0.0'),
-            array('0.0.256.0'),
-            array('0.0.0.256'),
-            array('-1.0.0.0'),
-            array('foobar'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidPrivateIpsV4
-     */
-    public function testInvalidPrivateIpsV4($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V4_NO_PRIV,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidPrivateIpsV4()
-    {
-        return array(
-            array('10.0.0.0'),
-            array('172.16.0.0'),
-            array('192.168.1.0'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidReservedIpsV4
-     */
-    public function testInvalidReservedIpsV4($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V4_NO_RES,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidReservedIpsV4()
-    {
-        return array(
-            array('0.0.0.0'),
-            array('224.0.0.1'),
-            array('255.255.255.255'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidPublicIpsV4
-     */
-    public function testInvalidPublicIpsV4($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V4_ONLY_PUBLIC,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidPublicIpsV4()
-    {
-        return array_merge($this->getInvalidPrivateIpsV4(), $this->getInvalidReservedIpsV4());
-    }
-
-    /**
-     * @dataProvider getInvalidIpsV6
-     */
-    public function testInvalidIpsV6($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V6,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidIpsV6()
-    {
-        return array(
-            array('z001:0db8:85a3:0000:0000:8a2e:0370:7334'),
-            array('fe80'),
-            array('fe80:8329'),
-            array('fe80:::202:b3ff:fe1e:8329'),
-            array('fe80::202:b3ff::fe1e:8329'),
-            // IPv4 mapped to IPv6
-            array('2001:0db8:85a3:0000:0000:8a2e:0370:0.0.0.0'),
-            array('::0.0'),
-            array('::0.0.0'),
-            array('::256.0.0.0'),
-            array('::0.256.0.0'),
-            array('::0.0.256.0'),
-            array('::0.0.0.256'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidPrivateIpsV6
-     */
-    public function testInvalidPrivateIpsV6($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V6_NO_PRIV,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidPrivateIpsV6()
-    {
-        return array(
-            array('fdfe:dcba:9876:ffff:fdc6:c46b:bb8f:7d4c'),
-            array('fdc6:c46b:bb8f:7d4c:fdc6:c46b:bb8f:7d4c'),
-            array('fdc6:c46b:bb8f:7d4c:0000:8a2e:0370:7334'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidReservedIpsV6
-     */
-    public function testInvalidReservedIpsV6($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V6_NO_RES,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidReservedIpsV6()
-    {
-        // Quoting after official filter documentation:
-        // "FILTER_FLAG_NO_RES_RANGE = This flag does not apply to IPv6 addresses."
-        // Full description: http://php.net/manual/en/filter.filters.flags.php
-        return $this->getInvalidIpsV6();
-    }
-
-    /**
-     * @dataProvider getInvalidPublicIpsV6
-     */
-    public function testInvalidPublicIpsV6($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::V6_ONLY_PUBLIC,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidPublicIpsV6()
-    {
-        return array_merge($this->getInvalidPrivateIpsV6(), $this->getInvalidReservedIpsV6());
-    }
-
-    /**
-     * @dataProvider getInvalidIpsAll
-     */
-    public function testInvalidIpsAll($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::ALL,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidIpsAll()
-    {
-        return array_merge($this->getInvalidIpsV4(), $this->getInvalidIpsV6());
-    }
-
-    /**
-     * @dataProvider getInvalidPrivateIpsAll
-     */
-    public function testInvalidPrivateIpsAll($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::ALL_NO_PRIV,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidPrivateIpsAll()
-    {
-        return array_merge($this->getInvalidPrivateIpsV4(), $this->getInvalidPrivateIpsV6());
-    }
-
-    /**
-     * @dataProvider getInvalidReservedIpsAll
-     */
-    public function testInvalidReservedIpsAll($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::ALL_NO_RES,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidReservedIpsAll()
-    {
-        return array_merge($this->getInvalidReservedIpsV4(), $this->getInvalidReservedIpsV6());
-    }
-
-    /**
-     * @dataProvider getInvalidPublicIpsAll
-     */
-    public function testInvalidPublicIpsAll($ip)
-    {
-        $constraint = new Ip(array(
-            'version' => Ip::ALL_ONLY_PUBLIC,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($ip, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$ip.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidPublicIpsAll()
-    {
-        return array_merge($this->getInvalidPublicIpsV4(), $this->getInvalidPublicIpsV6());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IsFalseValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IsFalseValidatorTest.php
deleted file mode 100644
index a63d846..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IsFalseValidatorTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\IsFalse;
-use Symfony\Component\Validator\Constraints\IsFalseValidator;
-use Symfony\Component\Validator\Validation;
-
-class IsFalseValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IsFalseValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new IsFalse());
-
-        $this->assertNoViolation();
-    }
-
-    public function testFalseIsValid()
-    {
-        $this->validator->validate(false, new IsFalse());
-
-        $this->assertNoViolation();
-    }
-
-    public function testTrueIsInvalid()
-    {
-        $constraint = new IsFalse(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(true, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'true')
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IsNullValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IsNullValidatorTest.php
deleted file mode 100644
index 885048b..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IsNullValidatorTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\IsNull;
-use Symfony\Component\Validator\Constraints\IsNullValidator;
-use Symfony\Component\Validator\Validation;
-
-class IsNullValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IsNullValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new IsNull());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidValues
-     */
-    public function testInvalidValues($value, $valueAsString)
-    {
-        $constraint = new IsNull(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $valueAsString)
-            ->assertRaised();
-    }
-
-    public function getInvalidValues()
-    {
-        return array(
-            array(0, '0'),
-            array(false, 'false'),
-            array(true, 'true'),
-            array('', '""'),
-            array('foo bar', '"foo bar"'),
-            array(new \DateTime(), 'object'),
-            array(new \stdClass(), 'object'),
-            array(array(), 'array'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IsTrueValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IsTrueValidatorTest.php
deleted file mode 100644
index a4f0a4a..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IsTrueValidatorTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\IsTrue;
-use Symfony\Component\Validator\Constraints\IsTrueValidator;
-use Symfony\Component\Validator\Validation;
-
-class IsTrueValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IsTrueValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new IsTrue());
-
-        $this->assertNoViolation();
-    }
-
-    public function testTrueIsValid()
-    {
-        $this->validator->validate(true, new IsTrue());
-
-        $this->assertNoViolation();
-    }
-
-    public function testFalseIsInvalid()
-    {
-        $constraint = new IsTrue(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(false, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'false')
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IsbnValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IsbnValidatorTest.php
deleted file mode 100644
index e73b89d..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IsbnValidatorTest.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Isbn;
-use Symfony\Component\Validator\Constraints\IsbnValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @see https://en.wikipedia.org/wiki/Isbn
- */
-class IsbnValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IsbnValidator();
-    }
-
-    public function getValidIsbn10()
-    {
-        return array(
-            array('2723442284'),
-            array('2723442276'),
-            array('2723455041'),
-            array('2070546810'),
-            array('2711858839'),
-            array('2756406767'),
-            array('2870971648'),
-            array('226623854X'),
-            array('2851806424'),
-            array('0321812700'),
-            array('0-45122-5244'),
-            array('0-4712-92311'),
-            array('0-9752298-0-X'),
-        );
-    }
-
-    public function getInvalidIsbn10()
-    {
-        return array(
-            array('27234422841', Isbn::TOO_LONG_ERROR),
-            array('272344228', Isbn::TOO_SHORT_ERROR),
-            array('0-4712-9231', Isbn::TOO_SHORT_ERROR),
-            array('1234567890', Isbn::CHECKSUM_FAILED_ERROR),
-            array('0987656789', Isbn::CHECKSUM_FAILED_ERROR),
-            array('7-35622-5444', Isbn::CHECKSUM_FAILED_ERROR),
-            array('0-4X19-92611', Isbn::CHECKSUM_FAILED_ERROR),
-            array('0_45122_5244', Isbn::INVALID_CHARACTERS_ERROR),
-            array('2870#971#648', Isbn::INVALID_CHARACTERS_ERROR),
-            array('0-9752298-0-x', Isbn::INVALID_CHARACTERS_ERROR),
-            array('1A34567890', Isbn::INVALID_CHARACTERS_ERROR),
-            // chr(1) evaluates to 0
-            // 2070546810 is valid
-            array('2'.chr(1).'70546810', Isbn::INVALID_CHARACTERS_ERROR),
-        );
-    }
-
-    public function getValidIsbn13()
-    {
-        return array(
-            array('978-2723442282'),
-            array('978-2723442275'),
-            array('978-2723455046'),
-            array('978-2070546817'),
-            array('978-2711858835'),
-            array('978-2756406763'),
-            array('978-2870971642'),
-            array('978-2266238540'),
-            array('978-2851806420'),
-            array('978-0321812704'),
-            array('978-0451225245'),
-            array('978-0471292319'),
-        );
-    }
-
-    public function getInvalidIsbn13()
-    {
-        return array(
-            array('978-27234422821', Isbn::TOO_LONG_ERROR),
-            array('978-272344228', Isbn::TOO_SHORT_ERROR),
-            array('978-2723442-82', Isbn::TOO_SHORT_ERROR),
-            array('978-2723442281', Isbn::CHECKSUM_FAILED_ERROR),
-            array('978-0321513774', Isbn::CHECKSUM_FAILED_ERROR),
-            array('979-0431225385', Isbn::CHECKSUM_FAILED_ERROR),
-            array('980-0474292319', Isbn::CHECKSUM_FAILED_ERROR),
-            array('0-4X19-92619812', Isbn::INVALID_CHARACTERS_ERROR),
-            array('978_2723442282', Isbn::INVALID_CHARACTERS_ERROR),
-            array('978#2723442282', Isbn::INVALID_CHARACTERS_ERROR),
-            array('978-272C442282', Isbn::INVALID_CHARACTERS_ERROR),
-            // chr(1) evaluates to 0
-            // 978-2070546817 is valid
-            array('978-2'.chr(1).'70546817', Isbn::INVALID_CHARACTERS_ERROR),
-        );
-    }
-
-    public function getValidIsbn()
-    {
-        return array_merge(
-            $this->getValidIsbn10(),
-            $this->getValidIsbn13()
-        );
-    }
-
-    public function getInvalidIsbn()
-    {
-        return array_merge(
-            $this->getInvalidIsbn10(),
-            $this->getInvalidIsbn13()
-        );
-    }
-
-    public function testNullIsValid()
-    {
-        $constraint = new Isbn(true);
-
-        $this->validator->validate(null, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $constraint = new Isbn(true);
-
-        $this->validator->validate('', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $constraint = new Isbn(true);
-
-        $this->validator->validate(new \stdClass(), $constraint);
-    }
-
-    /**
-     * @dataProvider getValidIsbn10
-     */
-    public function testValidIsbn10($isbn)
-    {
-        $constraint = new Isbn(array(
-            'type' => 'isbn10',
-        ));
-
-        $this->validator->validate($isbn, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidIsbn10
-     */
-    public function testInvalidIsbn10($isbn, $code)
-    {
-        $constraint = new Isbn(array(
-            'type' => 'isbn10',
-            'isbn10Message' => 'myMessage',
-        ));
-
-        $this->validator->validate($isbn, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$isbn.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getValidIsbn13
-     */
-    public function testValidIsbn13($isbn)
-    {
-        $constraint = new Isbn(array('type' => 'isbn13'));
-
-        $this->validator->validate($isbn, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidIsbn13
-     */
-    public function testInvalidIsbn13($isbn, $code)
-    {
-        $constraint = new Isbn(array(
-            'type' => 'isbn13',
-            'isbn13Message' => 'myMessage',
-        ));
-
-        $this->validator->validate($isbn, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$isbn.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getValidIsbn
-     */
-    public function testValidIsbnAny($isbn)
-    {
-        $constraint = new Isbn();
-
-        $this->validator->validate($isbn, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidIsbn10
-     */
-    public function testInvalidIsbnAnyIsbn10($isbn, $code)
-    {
-        $constraint = new Isbn(array(
-            'bothIsbnMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($isbn, $constraint);
-
-        // Too long for an ISBN-10, but not long enough for an ISBN-13
-        if (Isbn::TOO_LONG_ERROR === $code) {
-            $code = Isbn::TYPE_NOT_RECOGNIZED_ERROR;
-        }
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$isbn.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getInvalidIsbn13
-     */
-    public function testInvalidIsbnAnyIsbn13($isbn, $code)
-    {
-        $constraint = new Isbn(array(
-            'bothIsbnMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($isbn, $constraint);
-
-        // Too short for an ISBN-13, but not short enough for an ISBN-10
-        if (Isbn::TOO_SHORT_ERROR === $code) {
-            $code = Isbn::TYPE_NOT_RECOGNIZED_ERROR;
-        }
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$isbn.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/IssnValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/IssnValidatorTest.php
deleted file mode 100644
index a6d3994..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/IssnValidatorTest.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Issn;
-use Symfony\Component\Validator\Constraints\IssnValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @see https://en.wikipedia.org/wiki/Issn
- */
-class IssnValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new IssnValidator();
-    }
-
-    public function getValidLowerCasedIssn()
-    {
-        return array(
-            array('2162-321x'),
-            array('2160-200x'),
-            array('1537-453x'),
-            array('1937-710x'),
-            array('0002-922x'),
-            array('1553-345x'),
-            array('1553-619x'),
-        );
-    }
-
-    public function getValidNonHyphenatedIssn()
-    {
-        return array(
-            array('2162321X'),
-            array('01896016'),
-            array('15744647'),
-            array('14350645'),
-            array('07174055'),
-            array('20905076'),
-            array('14401592'),
-        );
-    }
-
-    public function getFullValidIssn()
-    {
-        return array(
-            array('1550-7416'),
-            array('1539-8560'),
-            array('2156-5376'),
-            array('1119-023X'),
-            array('1684-5315'),
-            array('1996-0786'),
-            array('1684-5374'),
-            array('1996-0794'),
-        );
-    }
-
-    public function getValidIssn()
-    {
-        return array_merge(
-            $this->getValidLowerCasedIssn(),
-            $this->getValidNonHyphenatedIssn(),
-            $this->getFullValidIssn()
-        );
-    }
-
-    public function getInvalidIssn()
-    {
-        return array(
-            array(0, Issn::TOO_SHORT_ERROR),
-            array('1539', Issn::TOO_SHORT_ERROR),
-            array('2156-537A', Issn::INVALID_CHARACTERS_ERROR),
-            array('1119-0231', Issn::CHECKSUM_FAILED_ERROR),
-            array('1684-5312', Issn::CHECKSUM_FAILED_ERROR),
-            array('1996-0783', Issn::CHECKSUM_FAILED_ERROR),
-            array('1684-537X', Issn::CHECKSUM_FAILED_ERROR),
-            array('1996-0795', Issn::CHECKSUM_FAILED_ERROR),
-        );
-    }
-
-    public function testNullIsValid()
-    {
-        $constraint = new Issn();
-
-        $this->validator->validate(null, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $constraint = new Issn();
-
-        $this->validator->validate('', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $constraint = new Issn();
-        $this->validator->validate(new \stdClass(), $constraint);
-    }
-
-    /**
-     * @dataProvider getValidLowerCasedIssn
-     */
-    public function testCaseSensitiveIssns($issn)
-    {
-        $constraint = new Issn(array(
-            'caseSensitive' => true,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($issn, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$issn.'"')
-            ->setCode(Issn::INVALID_CASE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getValidNonHyphenatedIssn
-     */
-    public function testRequireHyphenIssns($issn)
-    {
-        $constraint = new Issn(array(
-            'requireHyphen' => true,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($issn, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$issn.'"')
-            ->setCode(Issn::MISSING_HYPHEN_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getValidIssn
-     */
-    public function testValidIssn($issn)
-    {
-        $constraint = new Issn();
-
-        $this->validator->validate($issn, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getInvalidIssn
-     */
-    public function testInvalidIssn($issn, $code)
-    {
-        $constraint = new Issn(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($issn, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$issn.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/LanguageValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/LanguageValidatorTest.php
deleted file mode 100644
index 6f7c390..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/LanguageValidatorTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Validator\Constraints\Language;
-use Symfony\Component\Validator\Constraints\LanguageValidator;
-use Symfony\Component\Validator\Validation;
-
-class LanguageValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new LanguageValidator();
-    }
-
-    protected function setUp()
-    {
-        IntlTestHelper::requireFullIntl($this);
-
-        parent::setUp();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Language());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Language());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Language());
-    }
-
-    /**
-     * @dataProvider getValidLanguages
-     */
-    public function testValidLanguages($language)
-    {
-        $this->validator->validate($language, new Language());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidLanguages()
-    {
-        return array(
-            array('en'),
-            array('en_US'),
-            array('my'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidLanguages
-     */
-    public function testInvalidLanguages($language)
-    {
-        $constraint = new Language(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($language, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$language.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidLanguages()
-    {
-        return array(
-            array('EN'),
-            array('foobar'),
-        );
-    }
-
-    public function testValidateUsingCountrySpecificLocale()
-    {
-        \Locale::setDefault('fr_FR');
-        $existingLanguage = 'en';
-
-        $this->validator->validate($existingLanguage, new Language(array(
-            'message' => 'aMessage',
-        )));
-
-        $this->assertNoViolation();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php
deleted file mode 100644
index 24b6306..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php
+++ /dev/null
@@ -1,255 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Length;
-use Symfony\Component\Validator\Constraints\LengthValidator;
-use Symfony\Component\Validator\Validation;
-
-class LengthValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new LengthValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Length(6));
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Length(6));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Length(5));
-    }
-
-    public function getThreeOrLessCharacters()
-    {
-        return array(
-            array(12),
-            array('12'),
-            array('üü'),
-            array('éé'),
-            array(123),
-            array('123'),
-            array('üüü'),
-            array('ééé'),
-        );
-    }
-
-    public function getFourCharacters()
-    {
-        return array(
-            array(1234),
-            array('1234'),
-            array('üüüü'),
-            array('éééé'),
-        );
-    }
-
-    public function getFiveOrMoreCharacters()
-    {
-        return array(
-            array(12345),
-            array('12345'),
-            array('üüüüü'),
-            array('ééééé'),
-            array(123456),
-            array('123456'),
-            array('üüüüüü'),
-            array('éééééé'),
-        );
-    }
-
-    public function getOneCharset()
-    {
-        if (!function_exists('iconv') && !function_exists('mb_convert_encoding')) {
-            $this->markTestSkipped('Mbstring or iconv is required for this test.');
-        }
-
-        return array(
-            array('é', 'utf8', true),
-            array("\xE9", 'CP1252', true),
-            array("\xE9", 'XXX', false),
-            array("\xE9", 'utf8', false),
-        );
-    }
-
-    /**
-     * @dataProvider getFiveOrMoreCharacters
-     */
-    public function testValidValuesMin($value)
-    {
-        $constraint = new Length(array('min' => 5));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getThreeOrLessCharacters
-     */
-    public function testValidValuesMax($value)
-    {
-        $constraint = new Length(array('max' => 3));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getFourCharacters
-     */
-    public function testValidValuesExact($value)
-    {
-        $constraint = new Length(4);
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getThreeOrLessCharacters
-     */
-    public function testInvalidValuesMin($value)
-    {
-        $constraint = new Length(array(
-            'min' => 4,
-            'minMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$value.'"')
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Length::TOO_SHORT_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getFiveOrMoreCharacters
-     */
-    public function testInvalidValuesMax($value)
-    {
-        $constraint = new Length(array(
-            'max' => 4,
-            'maxMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$value.'"')
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Length::TOO_LONG_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getThreeOrLessCharacters
-     */
-    public function testInvalidValuesExactLessThanFour($value)
-    {
-        $constraint = new Length(array(
-            'min' => 4,
-            'max' => 4,
-            'exactMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$value.'"')
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Length::TOO_SHORT_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getFiveOrMoreCharacters
-     */
-    public function testInvalidValuesExactMoreThanFour($value)
-    {
-        $constraint = new Length(array(
-            'min' => 4,
-            'max' => 4,
-            'exactMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$value.'"')
-            ->setParameter('{{ limit }}', 4)
-            ->setInvalidValue($value)
-            ->setPlural(4)
-            ->setCode(Length::TOO_LONG_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getOneCharset
-     */
-    public function testOneCharset($value, $charset, $isValid)
-    {
-        $constraint = new Length(array(
-            'min' => 1,
-            'max' => 1,
-            'charset' => $charset,
-            'charsetMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        if ($isValid) {
-            $this->assertNoViolation();
-        } else {
-            $this->buildViolation('myMessage')
-                ->setParameter('{{ value }}', '"'.$value.'"')
-                ->setParameter('{{ charset }}', $charset)
-                ->setInvalidValue($value)
-                ->assertRaised();
-        }
-    }
-
-    public function testConstraintGetDefaultOption()
-    {
-        $constraint = new Length(5);
-
-        $this->assertEquals(5, $constraint->min);
-        $this->assertEquals(5, $constraint->max);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/LessThanOrEqualValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
deleted file mode 100644
index 7518135..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/LessThanOrEqualValidatorTest.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\LessThanOrEqual;
-use Symfony\Component\Validator\Constraints\LessThanOrEqualValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class LessThanOrEqualValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new LessThanOrEqualValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new LessThanOrEqual($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(1, 2),
-            array(1, 1),
-            array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01')),
-            array(new \DateTime('2000-01-01'), new \DateTime('2020-01-01')),
-            array(new \DateTime('2000-01-01'), '2000-01-01'),
-            array(new \DateTime('2000-01-01'), '2020-01-01'),
-            array(new \DateTime('2000-01-01 UTC'), '2000-01-01 UTC'),
-            array(new \DateTime('2000-01-01 UTC'), '2020-01-01 UTC'),
-            array(new ComparisonTest_Class(4), new ComparisonTest_Class(5)),
-            array(new ComparisonTest_Class(5), new ComparisonTest_Class(5)),
-            array('a', 'a'),
-            array('a', 'z'),
-            array(null, 1),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(2, '2', 1, '1', 'integer'),
-            array(new \DateTime('2010-01-01'), 'Jan 1, 2010, 12:00 AM', new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2010-01-01'), 'Jan 1, 2010, 12:00 AM', '2000-01-01', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2010-01-01 UTC'), 'Jan 1, 2010, 12:00 AM', '2000-01-01 UTC', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new ComparisonTest_Class(5), '5', new ComparisonTest_Class(4), '4', __NAMESPACE__.'\ComparisonTest_Class'),
-            array('c', '"c"', 'b', '"b"', 'string'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/LessThanValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/LessThanValidatorTest.php
deleted file mode 100644
index d555870..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/LessThanValidatorTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\LessThan;
-use Symfony\Component\Validator\Constraints\LessThanValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class LessThanValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new LessThanValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new LessThan($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(1, 2),
-            array(new \DateTime('2000-01-01'), new \DateTime('2010-01-01')),
-            array(new \DateTime('2000-01-01'), '2010-01-01'),
-            array(new \DateTime('2000-01-01 UTC'), '2010-01-01 UTC'),
-            array(new ComparisonTest_Class(4), new ComparisonTest_Class(5)),
-            array('22', '333'),
-            array(null, 1),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(3, '3', 2, '2', 'integer'),
-            array(2, '2', 2, '2', 'integer'),
-            array(new \DateTime('2010-01-01'), 'Jan 1, 2010, 12:00 AM', new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2010-01-01'), 'Jan 1, 2010, 12:00 AM', '2000-01-01', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', '2000-01-01', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2010-01-01 UTC'), 'Jan 1, 2010, 12:00 AM', '2000-01-01 UTC', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000-01-01 UTC'), 'Jan 1, 2000, 12:00 AM', '2000-01-01 UTC', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new ComparisonTest_Class(5), '5', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-            array(new ComparisonTest_Class(6), '6', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-            array('333', '"333"', '22', '"22"', 'string'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/LocaleValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/LocaleValidatorTest.php
deleted file mode 100644
index e5e2f30..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/LocaleValidatorTest.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Validator\Constraints\Locale;
-use Symfony\Component\Validator\Constraints\LocaleValidator;
-use Symfony\Component\Validator\Validation;
-
-class LocaleValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new LocaleValidator();
-    }
-
-    protected function setUp()
-    {
-        IntlTestHelper::requireIntl($this);
-
-        parent::setUp();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Locale());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Locale());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Locale());
-    }
-
-    /**
-     * @dataProvider getValidLocales
-     */
-    public function testValidLocales($locale)
-    {
-        $this->validator->validate($locale, new Locale());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidLocales()
-    {
-        return array(
-            array('en'),
-            array('en_US'),
-            array('pt'),
-            array('pt_PT'),
-            array('zh_Hans'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidLocales
-     */
-    public function testInvalidLocales($locale)
-    {
-        $constraint = new Locale(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($locale, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$locale.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidLocales()
-    {
-        return array(
-            array('EN'),
-            array('foobar'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/LuhnValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/LuhnValidatorTest.php
deleted file mode 100644
index b0e88c3..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/LuhnValidatorTest.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Luhn;
-use Symfony\Component\Validator\Constraints\LuhnValidator;
-use Symfony\Component\Validator\Validation;
-
-class LuhnValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new LuhnValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Luhn());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Luhn());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getValidNumbers
-     */
-    public function testValidNumbers($number)
-    {
-        $this->validator->validate($number, new Luhn());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidNumbers()
-    {
-        return array(
-            array('42424242424242424242'),
-            array('378282246310005'),
-            array('371449635398431'),
-            array('378734493671000'),
-            array('5610591081018250'),
-            array('30569309025904'),
-            array('38520000023237'),
-            array('6011111111111117'),
-            array('6011000990139424'),
-            array('3530111333300000'),
-            array('3566002020360505'),
-            array('5555555555554444'),
-            array('5105105105105100'),
-            array('4111111111111111'),
-            array('4012888888881881'),
-            array('4222222222222'),
-            array('5019717010103742'),
-            array('6331101999990016'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidNumbers
-     */
-    public function testInvalidNumbers($number, $code)
-    {
-        $constraint = new Luhn(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($number, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$number.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidNumbers()
-    {
-        return array(
-            array('1234567812345678', Luhn::CHECKSUM_FAILED_ERROR),
-            array('4222222222222222', Luhn::CHECKSUM_FAILED_ERROR),
-            array('0000000000000000', Luhn::CHECKSUM_FAILED_ERROR),
-            array('000000!000000000', Luhn::INVALID_CHARACTERS_ERROR),
-            array('42-22222222222222', Luhn::INVALID_CHARACTERS_ERROR),
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     * @dataProvider getInvalidTypes
-     */
-    public function testInvalidTypes($number)
-    {
-        $constraint = new Luhn();
-
-        $this->validator->validate($number, $constraint);
-    }
-
-    public function getInvalidTypes()
-    {
-        return array(
-            array(0),
-            array(123),
-            array(42424242424242424242),
-            array(378282246310005),
-            array(371449635398431),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/NotBlankValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/NotBlankValidatorTest.php
deleted file mode 100644
index c248246..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/NotBlankValidatorTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\NotBlank;
-use Symfony\Component\Validator\Constraints\NotBlankValidator;
-use Symfony\Component\Validator\Validation;
-
-class NotBlankValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new NotBlankValidator();
-    }
-
-    /**
-     * @dataProvider getValidValues
-     */
-    public function testValidValues($value)
-    {
-        $this->validator->validate($value, new NotBlank());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidValues()
-    {
-        return array(
-            array('foobar'),
-            array(0),
-            array(0.0),
-            array('0'),
-            array(1234),
-        );
-    }
-
-    public function testNullIsInvalid()
-    {
-        $constraint = new NotBlank(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(null, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'null')
-            ->assertRaised();
-    }
-
-    public function testBlankIsInvalid()
-    {
-        $constraint = new NotBlank(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate('', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '""')
-            ->assertRaised();
-    }
-
-    public function testFalseIsInvalid()
-    {
-        $constraint = new NotBlank(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(false, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'false')
-            ->assertRaised();
-    }
-
-    public function testEmptyArrayIsInvalid()
-    {
-        $constraint = new NotBlank(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(array(), $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', 'array')
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/NotEqualToValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/NotEqualToValidatorTest.php
deleted file mode 100644
index bc2c348..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/NotEqualToValidatorTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\NotEqualTo;
-use Symfony\Component\Validator\Constraints\NotEqualToValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class NotEqualToValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new NotEqualToValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new NotEqualTo($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(1, 2),
-            array('22', '333'),
-            array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01')),
-            array(new \DateTime('2001-01-01'), '2000-01-01'),
-            array(new \DateTime('2001-01-01 UTC'), '2000-01-01 UTC'),
-            array(new ComparisonTest_Class(6), new ComparisonTest_Class(5)),
-            array(null, 1),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        return array(
-            array(3, '3', 3, '3', 'integer'),
-            array('2', '"2"', 2, '2', 'integer'),
-            array('a', '"a"', 'a', '"a"', 'string'),
-            array(new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000-01-01'), 'Jan 1, 2000, 12:00 AM', '2000-01-01', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new \DateTime('2000-01-01 UTC'), 'Jan 1, 2000, 12:00 AM', '2000-01-01 UTC', 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array(new ComparisonTest_Class(5), '5', new ComparisonTest_Class(5), '5', __NAMESPACE__.'\ComparisonTest_Class'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/NotIdenticalToValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/NotIdenticalToValidatorTest.php
deleted file mode 100644
index 1fbd806..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/NotIdenticalToValidatorTest.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\NotIdenticalTo;
-use Symfony\Component\Validator\Constraints\NotIdenticalToValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Daniel Holmes <daniel@danielholmes.org>
- */
-class NotIdenticalToValidatorTest extends AbstractComparisonValidatorTestCase
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new NotIdenticalToValidator();
-    }
-
-    protected function createConstraint(array $options)
-    {
-        return new NotIdenticalTo($options);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideValidComparisons()
-    {
-        return array(
-            array(1, 2),
-            array('2', 2),
-            array('22', '333'),
-            array(new \DateTime('2001-01-01'), new \DateTime('2000-01-01')),
-            array(new \DateTime('2000-01-01'), new \DateTime('2000-01-01')),
-            array(new \DateTime('2001-01-01'), '2000-01-01'),
-            array(new \DateTime('2000-01-01'), '2000-01-01'),
-            array(new \DateTime('2001-01-01'), '2000-01-01'),
-            array(new \DateTime('2000-01-01 UTC'), '2000-01-01 UTC'),
-            array(null, 1),
-        );
-    }
-
-    public function provideAllInvalidComparisons()
-    {
-        $this->setDefaultTimezone('UTC');
-
-        // Don't call addPhp5Dot5Comparisons() automatically, as it does
-        // not take care of identical objects
-        $comparisons = $this->provideInvalidComparisons();
-
-        $this->restoreDefaultTimezone();
-
-        return $comparisons;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function provideInvalidComparisons()
-    {
-        $date = new \DateTime('2000-01-01');
-        $object = new ComparisonTest_Class(2);
-
-        $comparisons = array(
-            array(3, '3', 3, '3', 'integer'),
-            array('a', '"a"', 'a', '"a"', 'string'),
-            array($date, 'Jan 1, 2000, 12:00 AM', $date, 'Jan 1, 2000, 12:00 AM', 'DateTime'),
-            array($object, '2', $object, '2', __NAMESPACE__.'\ComparisonTest_Class'),
-        );
-
-        if (version_compare(PHP_VERSION, '>=', '5.5')) {
-            $immutableDate = new \DateTimeImmutable('2000-01-01');
-            $comparisons[] = array($immutableDate, 'Jan 1, 2000, 12:00 AM', $immutableDate, 'Jan 1, 2000, 12:00 AM', 'DateTime');
-        }
-
-        return $comparisons;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/NotNullValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/NotNullValidatorTest.php
deleted file mode 100644
index d338f31..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/NotNullValidatorTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\NotNullValidator;
-use Symfony\Component\Validator\Validation;
-
-class NotNullValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new NotNullValidator();
-    }
-
-    /**
-     * @dataProvider getValidValues
-     */
-    public function testValidValues($value)
-    {
-        $this->validator->validate($value, new NotNull());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidValues()
-    {
-        return array(
-            array(0),
-            array(false),
-            array(true),
-            array(''),
-        );
-    }
-
-    public function testNullIsInvalid()
-    {
-        $constraint = new NotNull(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate(null, $constraint);
-
-        $this->buildViolation('myMessage')->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/RangeValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/RangeValidatorTest.php
deleted file mode 100644
index 9b7056b..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/RangeValidatorTest.php
+++ /dev/null
@@ -1,403 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Intl\Util\IntlTestHelper;
-use Symfony\Component\Validator\Constraints\Range;
-use Symfony\Component\Validator\Constraints\RangeValidator;
-use Symfony\Component\Validator\Validation;
-
-class RangeValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new RangeValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Range(array('min' => 10, 'max' => 20)));
-
-        $this->assertNoViolation();
-    }
-
-    public function getTenToTwenty()
-    {
-        return array(
-            array(10.00001),
-            array(19.99999),
-            array('10.00001'),
-            array('19.99999'),
-            array(10),
-            array(20),
-            array(10.0),
-            array(20.0),
-        );
-    }
-
-    public function getLessThanTen()
-    {
-        return array(
-            array(9.99999, '9.99999'),
-            array('9.99999', '"9.99999"'),
-            array(5, '5'),
-            array(1.0, '1.0'),
-        );
-    }
-
-    public function getMoreThanTwenty()
-    {
-        return array(
-            array(20.000001, '20.000001'),
-            array('20.000001', '"20.000001"'),
-            array(21, '21'),
-            array(30.0, '30.0'),
-        );
-    }
-
-    /**
-     * @dataProvider getTenToTwenty
-     */
-    public function testValidValuesMin($value)
-    {
-        $constraint = new Range(array('min' => 10));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getTenToTwenty
-     */
-    public function testValidValuesMax($value)
-    {
-        $constraint = new Range(array('max' => 20));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getTenToTwenty
-     */
-    public function testValidValuesMinMax($value)
-    {
-        $constraint = new Range(array('min' => 10, 'max' => 20));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getLessThanTen
-     */
-    public function testInvalidValuesMin($value, $formattedValue)
-    {
-        $constraint = new Range(array(
-            'min' => 10,
-            'minMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $formattedValue)
-            ->setParameter('{{ limit }}', 10)
-            ->setCode(Range::BELOW_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getMoreThanTwenty
-     */
-    public function testInvalidValuesMax($value, $formattedValue)
-    {
-        $constraint = new Range(array(
-            'max' => 20,
-            'maxMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $formattedValue)
-            ->setParameter('{{ limit }}', 20)
-            ->setCode(Range::BEYOND_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getMoreThanTwenty
-     */
-    public function testInvalidValuesCombinedMax($value, $formattedValue)
-    {
-        $constraint = new Range(array(
-            'min' => 10,
-            'max' => 20,
-            'minMessage' => 'myMinMessage',
-            'maxMessage' => 'myMaxMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMaxMessage')
-            ->setParameter('{{ value }}', $formattedValue)
-            ->setParameter('{{ limit }}', 20)
-            ->setCode(Range::BEYOND_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getLessThanTen
-     */
-    public function testInvalidValuesCombinedMin($value, $formattedValue)
-    {
-        $constraint = new Range(array(
-            'min' => 10,
-            'max' => 20,
-            'minMessage' => 'myMinMessage',
-            'maxMessage' => 'myMaxMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMinMessage')
-            ->setParameter('{{ value }}', $formattedValue)
-            ->setParameter('{{ limit }}', 10)
-            ->setCode(Range::BELOW_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    public function getTenthToTwentiethMarch2014()
-    {
-        // The provider runs before setUp(), so we need to manually fix
-        // the default timezone
-        $this->setDefaultTimezone('UTC');
-
-        $tests = array(
-            array(new \DateTime('March 10, 2014')),
-            array(new \DateTime('March 15, 2014')),
-            array(new \DateTime('March 20, 2014')),
-        );
-
-        if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
-            $tests[] = array(new \DateTimeImmutable('March 10, 2014'));
-            $tests[] = array(new \DateTimeImmutable('March 15, 2014'));
-            $tests[] = array(new \DateTimeImmutable('March 20, 2014'));
-        }
-
-        $this->restoreDefaultTimezone();
-
-        return $tests;
-    }
-
-    public function getSoonerThanTenthMarch2014()
-    {
-        // The provider runs before setUp(), so we need to manually fix
-        // the default timezone
-        $this->setDefaultTimezone('UTC');
-
-        $tests = array(
-            array(new \DateTime('March 20, 2013'), 'Mar 20, 2013, 12:00 AM'),
-            array(new \DateTime('March 9, 2014'), 'Mar 9, 2014, 12:00 AM'),
-        );
-
-        if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
-            $tests[] = array(new \DateTimeImmutable('March 20, 2013'), 'Mar 20, 2013, 12:00 AM');
-            $tests[] = array(new \DateTimeImmutable('March 9, 2014'), 'Mar 9, 2014, 12:00 AM');
-        }
-
-        $this->restoreDefaultTimezone();
-
-        return $tests;
-    }
-
-    public function getLaterThanTwentiethMarch2014()
-    {
-        // The provider runs before setUp(), so we need to manually fix
-        // the default timezone
-        $this->setDefaultTimezone('UTC');
-
-        $tests = array(
-            array(new \DateTime('March 21, 2014'), 'Mar 21, 2014, 12:00 AM'),
-            array(new \DateTime('March 9, 2015'), 'Mar 9, 2015, 12:00 AM'),
-        );
-
-        if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
-            $tests[] = array(new \DateTimeImmutable('March 21, 2014'), 'Mar 21, 2014, 12:00 AM');
-            $tests[] = array(new \DateTimeImmutable('March 9, 2015'), 'Mar 9, 2015, 12:00 AM');
-        }
-
-        $this->restoreDefaultTimezone();
-
-        return $tests;
-    }
-
-    /**
-     * @dataProvider getTenthToTwentiethMarch2014
-     */
-    public function testValidDatesMin($value)
-    {
-        $constraint = new Range(array('min' => 'March 10, 2014'));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getTenthToTwentiethMarch2014
-     */
-    public function testValidDatesMax($value)
-    {
-        $constraint = new Range(array('max' => 'March 20, 2014'));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getTenthToTwentiethMarch2014
-     */
-    public function testValidDatesMinMax($value)
-    {
-        $constraint = new Range(array('min' => 'March 10, 2014', 'max' => 'March 20, 2014'));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @dataProvider getSoonerThanTenthMarch2014
-     */
-    public function testInvalidDatesMin($value, $dateTimeAsString)
-    {
-        // Conversion of dates to string differs between ICU versions
-        // Make sure we have the correct version loaded
-        IntlTestHelper::requireIntl($this);
-
-        $constraint = new Range(array(
-            'min' => 'March 10, 2014',
-            'minMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $dateTimeAsString)
-            ->setParameter('{{ limit }}', 'Mar 10, 2014, 12:00 AM')
-            ->setCode(Range::BELOW_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getLaterThanTwentiethMarch2014
-     */
-    public function testInvalidDatesMax($value, $dateTimeAsString)
-    {
-        // Conversion of dates to string differs between ICU versions
-        // Make sure we have the correct version loaded
-        IntlTestHelper::requireIntl($this);
-
-        $constraint = new Range(array(
-            'max' => 'March 20, 2014',
-            'maxMessage' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $dateTimeAsString)
-            ->setParameter('{{ limit }}', 'Mar 20, 2014, 12:00 AM')
-            ->setCode(Range::BEYOND_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getLaterThanTwentiethMarch2014
-     */
-    public function testInvalidDatesCombinedMax($value, $dateTimeAsString)
-    {
-        // Conversion of dates to string differs between ICU versions
-        // Make sure we have the correct version loaded
-        IntlTestHelper::requireIntl($this);
-
-        $constraint = new Range(array(
-            'min' => 'March 10, 2014',
-            'max' => 'March 20, 2014',
-            'minMessage' => 'myMinMessage',
-            'maxMessage' => 'myMaxMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMaxMessage')
-            ->setParameter('{{ value }}', $dateTimeAsString)
-            ->setParameter('{{ limit }}', 'Mar 20, 2014, 12:00 AM')
-            ->setCode(Range::BEYOND_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getSoonerThanTenthMarch2014
-     */
-    public function testInvalidDatesCombinedMin($value, $dateTimeAsString)
-    {
-        // Conversion of dates to string differs between ICU versions
-        // Make sure we have the correct version loaded
-        IntlTestHelper::requireIntl($this);
-
-        $constraint = new Range(array(
-            'min' => 'March 10, 2014',
-            'max' => 'March 20, 2014',
-            'minMessage' => 'myMinMessage',
-            'maxMessage' => 'myMaxMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMinMessage')
-            ->setParameter('{{ value }}', $dateTimeAsString)
-            ->setParameter('{{ limit }}', 'Mar 10, 2014, 12:00 AM')
-            ->setCode(Range::BELOW_RANGE_ERROR)
-            ->assertRaised();
-    }
-
-    public function getInvalidValues()
-    {
-        return array(
-            array(9.999999),
-            array(20.000001),
-            array('9.999999'),
-            array('20.000001'),
-            array(new \stdClass()),
-        );
-    }
-
-    public function testNonNumeric()
-    {
-        $this->validator->validate('abcd', new Range(array(
-            'min' => 10,
-            'max' => 20,
-            'invalidMessage' => 'myMessage',
-        )));
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"abcd"')
-            ->setCode(Range::INVALID_VALUE_ERROR)
-            ->assertRaised();
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/RegexTest.php b/core/vendor/symfony/validator/Tests/Constraints/RegexTest.php
deleted file mode 100644
index ea37bb4..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/RegexTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Constraints;
-
-use Symfony\Component\Validator\Constraints\Regex;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class RegexTest extends \PHPUnit_Framework_TestCase
-{
-    public function testConstraintGetDefaultOption()
-    {
-        $constraint = new Regex('/^[0-9]+$/');
-
-        $this->assertSame('/^[0-9]+$/', $constraint->pattern);
-    }
-
-    public function provideHtmlPatterns()
-    {
-        return array(
-            // HTML5 wraps the pattern in ^(?:pattern)$
-            array('/^[0-9]+$/', '[0-9]+'),
-            array('/[0-9]+$/', '.*[0-9]+'),
-            array('/^[0-9]+/', '[0-9]+.*'),
-            array('/[0-9]+/', '.*[0-9]+.*'),
-            // We need a smart way to allow matching of patterns that contain
-            // ^ and $ at various sub-clauses of an or-clause
-            // .*(pattern).* seems to work correctly
-            array('/[0-9]$|[a-z]+/', '.*([0-9]$|[a-z]+).*'),
-            array('/[0-9]$|^[a-z]+/', '.*([0-9]$|^[a-z]+).*'),
-            array('/^[0-9]|[a-z]+$/', '.*(^[0-9]|[a-z]+$).*'),
-            // Unescape escaped delimiters
-            array('/^[0-9]+\/$/', '[0-9]+/'),
-            array('#^[0-9]+\#$#', '[0-9]+#'),
-            // Cannot be converted
-            array('/^[0-9]+$/i', null),
-
-            // Inverse matches are simple, just wrap in
-            // ((?!pattern).)*
-            array('/^[0-9]+$/', '((?!^[0-9]+$).)*', false),
-            array('/[0-9]+$/', '((?![0-9]+$).)*', false),
-            array('/^[0-9]+/', '((?!^[0-9]+).)*', false),
-            array('/[0-9]+/', '((?![0-9]+).)*', false),
-            array('/[0-9]$|[a-z]+/', '((?![0-9]$|[a-z]+).)*', false),
-            array('/[0-9]$|^[a-z]+/', '((?![0-9]$|^[a-z]+).)*', false),
-            array('/^[0-9]|[a-z]+$/', '((?!^[0-9]|[a-z]+$).)*', false),
-            array('/^[0-9]+\/$/', '((?!^[0-9]+/$).)*', false),
-            array('#^[0-9]+\#$#', '((?!^[0-9]+#$).)*', false),
-            array('/^[0-9]+$/i', null, false),
-        );
-    }
-
-    /**
-     * @dataProvider provideHtmlPatterns
-     */
-    public function testGetHtmlPattern($pattern, $htmlPattern, $match = true)
-    {
-        $constraint = new Regex(array(
-            'pattern' => $pattern,
-            'match' => $match,
-        ));
-
-        $this->assertSame($pattern, $constraint->pattern);
-        $this->assertSame($htmlPattern, $constraint->getHtmlPattern());
-    }
-
-    public function testGetCustomHtmlPattern()
-    {
-        $constraint = new Regex(array(
-            'pattern' => '((?![0-9]$|[a-z]+).)*',
-            'htmlPattern' => 'foobar',
-        ));
-
-        $this->assertSame('((?![0-9]$|[a-z]+).)*', $constraint->pattern);
-        $this->assertSame('foobar', $constraint->getHtmlPattern());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/RegexValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/RegexValidatorTest.php
deleted file mode 100644
index 61917e3..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/RegexValidatorTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Regex;
-use Symfony\Component\Validator\Constraints\RegexValidator;
-use Symfony\Component\Validator\Validation;
-
-class RegexValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new RegexValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Regex(array('pattern' => '/^[0-9]+$/')));
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Regex(array('pattern' => '/^[0-9]+$/')));
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Regex(array('pattern' => '/^[0-9]+$/')));
-    }
-
-    /**
-     * @dataProvider getValidValues
-     */
-    public function testValidValues($value)
-    {
-        $constraint = new Regex(array('pattern' => '/^[0-9]+$/'));
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidValues()
-    {
-        return array(
-            array(0),
-            array('0'),
-            array('090909'),
-            array(90909),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidValues
-     */
-    public function testInvalidValues($value)
-    {
-        $constraint = new Regex(array(
-            'pattern' => '/^[0-9]+$/',
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$value.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidValues()
-    {
-        return array(
-            array('abcd'),
-            array('090foo'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/TimeValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/TimeValidatorTest.php
deleted file mode 100644
index a6ca143..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/TimeValidatorTest.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Time;
-use Symfony\Component\Validator\Constraints\TimeValidator;
-use Symfony\Component\Validator\Validation;
-
-class TimeValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new TimeValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Time());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Time());
-
-        $this->assertNoViolation();
-    }
-
-    public function testDateTimeClassIsValid()
-    {
-        $this->validator->validate(new \DateTime(), new Time());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Time());
-    }
-
-    /**
-     * @dataProvider getValidTimes
-     */
-    public function testValidTimes($time)
-    {
-        $this->validator->validate($time, new Time());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidTimes()
-    {
-        return array(
-            array('01:02:03'),
-            array('00:00:00'),
-            array('23:59:59'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidTimes
-     */
-    public function testInvalidTimes($time, $code)
-    {
-        $constraint = new Time(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($time, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$time.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidTimes()
-    {
-        return array(
-            array('foobar', Time::INVALID_FORMAT_ERROR),
-            array('foobar 12:34:56', Time::INVALID_FORMAT_ERROR),
-            array('12:34:56 foobar', Time::INVALID_FORMAT_ERROR),
-            array('00:00', Time::INVALID_FORMAT_ERROR),
-            array('24:00:00', Time::INVALID_TIME_ERROR),
-            array('00:60:00', Time::INVALID_TIME_ERROR),
-            array('00:00:60', Time::INVALID_TIME_ERROR),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/TypeValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/TypeValidatorTest.php
deleted file mode 100644
index 4836928..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/TypeValidatorTest.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Type;
-use Symfony\Component\Validator\Constraints\TypeValidator;
-use Symfony\Component\Validator\Validation;
-
-class TypeValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected static $file;
-
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new TypeValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $constraint = new Type(array('type' => 'integer'));
-
-        $this->validator->validate(null, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyIsValidIfString()
-    {
-        $constraint = new Type(array('type' => 'string'));
-
-        $this->validator->validate('', $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyIsInvalidIfNoString()
-    {
-        $constraint = new Type(array(
-            'type' => 'integer',
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate('', $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '""')
-            ->setParameter('{{ type }}', 'integer')
-            ->assertRaised();
-    }
-
-    /**
-     * @dataProvider getValidValues
-     */
-    public function testValidValues($value, $type)
-    {
-        $constraint = new Type(array('type' => $type));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidValues()
-    {
-        $object = new \stdClass();
-        $file = $this->createFile();
-
-        return array(
-            array(true, 'Boolean'),
-            array(false, 'Boolean'),
-            array(true, 'boolean'),
-            array(false, 'boolean'),
-            array(true, 'bool'),
-            array(false, 'bool'),
-            array(0, 'numeric'),
-            array('0', 'numeric'),
-            array(1.5, 'numeric'),
-            array('1.5', 'numeric'),
-            array(0, 'integer'),
-            array(1.5, 'float'),
-            array('12345', 'string'),
-            array(array(), 'array'),
-            array($object, 'object'),
-            array($object, 'stdClass'),
-            array($file, 'resource'),
-            array('12345', 'digit'),
-            array('12a34', 'alnum'),
-            array('abcde', 'alpha'),
-            array("\n\r\t", 'cntrl'),
-            array('arf12', 'graph'),
-            array('abcde', 'lower'),
-            array('ABCDE', 'upper'),
-            array('arf12', 'print'),
-            array('*&$()', 'punct'),
-            array("\n\r\t", 'space'),
-            array('AB10BC99', 'xdigit'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidValues
-     */
-    public function testInvalidValues($value, $type, $valueAsString)
-    {
-        $constraint = new Type(array(
-            'type' => $type,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($value, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', $valueAsString)
-            ->setParameter('{{ type }}', $type)
-            ->assertRaised();
-    }
-
-    public function getInvalidValues()
-    {
-        $object = new \stdClass();
-        $file = $this->createFile();
-
-        return array(
-            array('foobar', 'numeric', '"foobar"'),
-            array('foobar', 'boolean', '"foobar"'),
-            array('0', 'integer', '"0"'),
-            array('1.5', 'float', '"1.5"'),
-            array(12345, 'string', '12345'),
-            array($object, 'boolean', 'object'),
-            array($object, 'numeric', 'object'),
-            array($object, 'integer', 'object'),
-            array($object, 'float', 'object'),
-            array($object, 'string', 'object'),
-            array($object, 'resource', 'object'),
-            array($file, 'boolean', 'resource'),
-            array($file, 'numeric', 'resource'),
-            array($file, 'integer', 'resource'),
-            array($file, 'float', 'resource'),
-            array($file, 'string', 'resource'),
-            array($file, 'object', 'resource'),
-            array('12a34', 'digit', '"12a34"'),
-            array('1a#23', 'alnum', '"1a#23"'),
-            array('abcd1', 'alpha', '"abcd1"'),
-            array("\nabc", 'cntrl', "\"\nabc\""),
-            array("abc\n", 'graph', "\"abc\n\""),
-            array('abCDE', 'lower', '"abCDE"'),
-            array('ABcde', 'upper', '"ABcde"'),
-            array("\nabc", 'print', "\"\nabc\""),
-            array('abc&$!', 'punct', '"abc&$!"'),
-            array("\nabc", 'space', "\"\nabc\""),
-            array('AR1012', 'xdigit', '"AR1012"'),
-        );
-    }
-
-    protected function createFile()
-    {
-        if (!static::$file) {
-            static::$file = fopen(__FILE__, 'r');
-        }
-
-        return static::$file;
-    }
-
-    public static function tearDownAfterClass()
-    {
-        if (static::$file) {
-            fclose(static::$file);
-            static::$file = null;
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/UrlValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/UrlValidatorTest.php
deleted file mode 100644
index 3358c79..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/UrlValidatorTest.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Url;
-use Symfony\Component\Validator\Constraints\UrlValidator;
-use Symfony\Component\Validator\Validation;
-
-class UrlValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new UrlValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Url());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Url());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Url());
-    }
-
-    /**
-     * @dataProvider getValidUrls
-     */
-    public function testValidUrls($url)
-    {
-        $this->validator->validate($url, new Url());
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidUrls()
-    {
-        return array(
-            array('http://a.pl'),
-            array('http://www.google.com'),
-            array('http://www.google.com.'),
-            array('http://www.google.museum'),
-            array('https://google.com/'),
-            array('https://google.com:80/'),
-            array('http://www.example.coop/'),
-            array('http://www.test-example.com/'),
-            array('http://www.symfony.com/'),
-            array('http://symfony.fake/blog/'),
-            array('http://symfony.com/?'),
-            array('http://symfony.com/search?type=&q=url+validator'),
-            array('http://symfony.com/#'),
-            array('http://symfony.com/#?'),
-            array('http://www.symfony.com/doc/current/book/validation.html#supported-constraints'),
-            array('http://very.long.domain.name.com/'),
-            array('http://localhost/'),
-            array('http://127.0.0.1/'),
-            array('http://127.0.0.1:80/'),
-            array('http://[::1]/'),
-            array('http://[::1]:80/'),
-            array('http://[1:2:3::4:5:6:7]/'),
-            array('http://sãopaulo.com/'),
-            array('http://xn--sopaulo-xwa.com/'),
-            array('http://sãopaulo.com.br/'),
-            array('http://xn--sopaulo-xwa.com.br/'),
-            array('http://пример.испытание/'),
-            array('http://xn--e1afmkfd.xn--80akhbyknj4f/'),
-            array('http://مثال.إختبار/'),
-            array('http://xn--mgbh0fb.xn--kgbechtv/'),
-            array('http://例子.测试/'),
-            array('http://xn--fsqu00a.xn--0zwm56d/'),
-            array('http://例子.測試/'),
-            array('http://xn--fsqu00a.xn--g6w251d/'),
-            array('http://例え.テスト/'),
-            array('http://xn--r8jz45g.xn--zckzah/'),
-            array('http://مثال.آزمایشی/'),
-            array('http://xn--mgbh0fb.xn--hgbk6aj7f53bba/'),
-            array('http://실례.테스트/'),
-            array('http://xn--9n2bp8q.xn--9t4b11yi5a/'),
-            array('http://العربية.idn.icann.org/'),
-            array('http://xn--ogb.idn.icann.org/'),
-            array('http://xn--e1afmkfd.xn--80akhbyknj4f.xn--e1afmkfd/'),
-            array('http://xn--espaa-rta.xn--ca-ol-fsay5a/'),
-            array('http://xn--d1abbgf6aiiy.xn--p1ai/'),
-            array('http://☎.com/'),
-            array('http://username:password@symfony.com'),
-            array('http://user-name@symfony.com'),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidUrls
-     */
-    public function testInvalidUrls($url)
-    {
-        $constraint = new Url(array(
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($url, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$url.'"')
-            ->assertRaised();
-    }
-
-    public function getInvalidUrls()
-    {
-        return array(
-            array('google.com'),
-            array('://google.com'),
-            array('http ://google.com'),
-            array('http:/google.com'),
-            array('http://goog_le.com'),
-            array('http://google.com::aa'),
-            array('http://google.com:aa'),
-            array('http://symfony.com?'),
-            array('http://symfony.com#'),
-            array('ftp://google.fr'),
-            array('faked://google.fr'),
-            array('http://127.0.0.1:aa/'),
-            array('ftp://[::1]/'),
-            array('http://[::1'),
-            array('http://hello.☎/'),
-            array('http://:password@symfony.com'),
-            array('http://:password@@symfony.com'),
-            array('http://username:passwordsymfony.com'),
-            array('http://usern@me:password@symfony.com'),
-        );
-    }
-
-    /**
-     * @dataProvider getValidCustomUrls
-     */
-    public function testCustomProtocolIsValid($url)
-    {
-        $constraint = new Url(array(
-            'protocols' => array('ftp', 'file', 'git'),
-        ));
-
-        $this->validator->validate($url, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidCustomUrls()
-    {
-        return array(
-            array('ftp://google.com'),
-            array('file://127.0.0.1'),
-            array('git://[::1]/'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/UuidValidatorTest.php b/core/vendor/symfony/validator/Tests/Constraints/UuidValidatorTest.php
deleted file mode 100644
index 0abda39..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/UuidValidatorTest.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Uuid;
-use Symfony\Component\Validator\Constraints\UuidValidator;
-use Symfony\Component\Validator\Validation;
-
-/**
- * @author Colin O'Dell <colinodell@gmail.com>
- */
-class UuidValidatorTest extends AbstractConstraintValidatorTest
-{
-    protected function getApiVersion()
-    {
-        return Validation::API_VERSION_2_5;
-    }
-
-    protected function createValidator()
-    {
-        return new UuidValidator();
-    }
-
-    public function testNullIsValid()
-    {
-        $this->validator->validate(null, new Uuid());
-
-        $this->assertNoViolation();
-    }
-
-    public function testEmptyStringIsValid()
-    {
-        $this->validator->validate('', new Uuid());
-
-        $this->assertNoViolation();
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
-     */
-    public function testExpectsStringCompatibleType()
-    {
-        $this->validator->validate(new \stdClass(), new Uuid());
-    }
-
-    /**
-     * @dataProvider getValidStrictUuids
-     */
-    public function testValidStrictUuids($uuid, $versions = null)
-    {
-        $constraint = new Uuid();
-
-        if (null !== $versions) {
-            $constraint->versions = $versions;
-        }
-
-        $this->validator->validate($uuid, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidStrictUuids()
-    {
-        return array(
-            array('216fff40-98d9-11e3-a5e2-0800200c9a66'), // Version 1 UUID in lowercase
-            array('216fff40-98d9-11e3-a5e2-0800200c9a66', array(Uuid::V1_MAC)),
-            array('216FFF40-98D9-11E3-A5E2-0800200C9A66'), // Version 1 UUID in UPPERCASE
-            array('456daefb-5aa6-41b5-8dbc-068b05a8b201'), // Version 4 UUID in lowercase
-            array('456daEFb-5AA6-41B5-8DBC-068B05A8B201'), // Version 4 UUID in mixed case
-            array('456daEFb-5AA6-41B5-8DBC-068B05A8B201', array(Uuid::V4_RANDOM)),
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidStrictUuids
-     */
-    public function testInvalidStrictUuids($uuid, $code, $versions = null)
-    {
-        $constraint = new Uuid(array(
-            'message' => 'testMessage',
-        ));
-
-        if (null !== $versions) {
-            $constraint->versions = $versions;
-        }
-
-        $this->validator->validate($uuid, $constraint);
-
-        $this->buildViolation('testMessage')
-            ->setParameter('{{ value }}', '"'.$uuid.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidStrictUuids()
-    {
-        return array(
-            array('216fff40-98d9-11e3-a5e2_0800200c9a66', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216gff40-98d9-11e3-a5e2-0800200c9a66', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216Gff40-98d9-11e3-a5e2-0800200c9a66', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216fff40-98d9-11e3-a5e-20800200c9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216f-ff40-98d9-11e3-a5e2-0800200c9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800-200c9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800200c-9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216fff40-98d9-11e3-a5e20800200c9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216fff4098d911e3a5e20800200c9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800200c9a6', Uuid::TOO_SHORT_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800200c9a666', Uuid::TOO_LONG_ERROR),
-            array('216fff40-98d9-01e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-61e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-71e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-81e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-91e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-a1e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-b1e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-c1e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-d1e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-e1e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-f1e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR, array(Uuid::V2_DCE, Uuid::V3_MD5, Uuid::V4_RANDOM, Uuid::V5_SHA1)),
-            array('216fff40-98d9-21e3-a5e2-0800200c9a66', Uuid::INVALID_VERSION_ERROR, array(Uuid::V1_MAC, Uuid::V3_MD5, Uuid::V4_RANDOM, Uuid::V5_SHA1)),
-            array('216fff40-98d9-11e3-05e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-15e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-25e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-35e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-45e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-55e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-65e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-75e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-c5e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-d5e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-e5e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-            array('216fff40-98d9-11e3-f5e2-0800200c9a66', Uuid::INVALID_VARIANT_ERROR),
-
-            // Non-standard UUID allowed by some other systems
-            array('{216fff40-98d9-11e3-a5e2-0800200c9a66}', Uuid::INVALID_CHARACTERS_ERROR),
-            array('[216fff40-98d9-11e3-a5e2-0800200c9a66]', Uuid::INVALID_CHARACTERS_ERROR),
-        );
-    }
-
-    /**
-     * @dataProvider getValidNonStrictUuids
-     */
-    public function testValidNonStrictUuids($uuid)
-    {
-        $constraint = new Uuid(array(
-            'strict' => false,
-        ));
-
-        $this->validator->validate($uuid, $constraint);
-
-        $this->assertNoViolation();
-    }
-
-    public function getValidNonStrictUuids()
-    {
-        return array(
-            array('216fff40-98d9-11e3-a5e2-0800200c9a66'),    // Version 1 UUID in lowercase
-            array('216FFF40-98D9-11E3-A5E2-0800200C9A66'),    // Version 1 UUID in UPPERCASE
-            array('456daefb-5aa6-41b5-8dbc-068b05a8b201'),    // Version 4 UUID in lowercase
-            array('456DAEFb-5AA6-41B5-8DBC-068b05a8B201'),    // Version 4 UUID in mixed case
-
-            // Non-standard UUIDs allowed by some other systems
-            array('216f-ff40-98d9-11e3-a5e2-0800-200c-9a66'), // Non-standard dash positions (every 4 chars)
-            array('216fff40-98d911e3-a5e20800-200c9a66'),     // Non-standard dash positions (every 8 chars)
-            array('216fff4098d911e3a5e20800200c9a66'),        // No dashes at all
-            array('{216fff40-98d9-11e3-a5e2-0800200c9a66}'),  // Wrapped with curly braces
-            array('[216fff40-98d9-11e3-a5e2-0800200c9a66]'),  // Wrapped with squared braces
-        );
-    }
-
-    /**
-     * @dataProvider getInvalidNonStrictUuids
-     */
-    public function testInvalidNonStrictUuids($uuid, $code)
-    {
-        $constraint = new Uuid(array(
-            'strict' => false,
-            'message' => 'myMessage',
-        ));
-
-        $this->validator->validate($uuid, $constraint);
-
-        $this->buildViolation('myMessage')
-            ->setParameter('{{ value }}', '"'.$uuid.'"')
-            ->setCode($code)
-            ->assertRaised();
-    }
-
-    public function getInvalidNonStrictUuids()
-    {
-        return array(
-            array('216fff40-98d9-11e3-a5e2_0800200c9a66', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216gff40-98d9-11e3-a5e2-0800200c9a66', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216Gff40-98d9-11e3-a5e2-0800200c9a66', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216fff40-98d9-11e3-a5e2_0800200c9a6', Uuid::INVALID_CHARACTERS_ERROR),
-            array('216fff40-98d9-11e3-a5e-20800200c9a66', Uuid::INVALID_HYPHEN_PLACEMENT_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800200c9a6', Uuid::TOO_SHORT_ERROR),
-            array('216fff40-98d9-11e3-a5e2-0800200c9a666', Uuid::TOO_LONG_ERROR),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Constraints/ValidTest.php b/core/vendor/symfony/validator/Tests/Constraints/ValidTest.php
deleted file mode 100644
index 3de6ab3..0000000
--- a/core/vendor/symfony/validator/Tests/Constraints/ValidTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Constraints;
-
-use Symfony\Component\Validator\Constraints\Valid;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ValidTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testRejectGroupsOption()
-    {
-        new Valid(array('groups' => 'foo'));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/CallbackClass.php b/core/vendor/symfony/validator/Tests/Fixtures/CallbackClass.php
deleted file mode 100644
index 0f6a2f4..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/CallbackClass.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\ExecutionContextInterface;
-
-/**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class CallbackClass
-{
-    public static function callback($object, ExecutionContextInterface $context)
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ClassConstraint.php b/core/vendor/symfony/validator/Tests/Fixtures/ClassConstraint.php
deleted file mode 100644
index a4dc777..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ClassConstraint.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-class ClassConstraint extends Constraint
-{
-    public function getTargets()
-    {
-        return self::CLASS_CONSTRAINT;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintA.php b/core/vendor/symfony/validator/Tests/Fixtures/ConstraintA.php
deleted file mode 100644
index 8a196dc..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintA.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-/** @Annotation */
-class ConstraintA extends Constraint
-{
-    public $property1;
-    public $property2;
-
-    public function getDefaultOption()
-    {
-        return 'property2';
-    }
-
-    public function getTargets()
-    {
-        return array(self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintAValidator.php b/core/vendor/symfony/validator/Tests/Fixtures/ConstraintAValidator.php
deleted file mode 100644
index b3b85c8..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintAValidator.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-use Symfony\Component\Validator\ExecutionContextInterface;
-
-class ConstraintAValidator extends ConstraintValidator
-{
-    public static $passedContext;
-
-    public function initialize(ExecutionContextInterface $context)
-    {
-        parent::initialize($context);
-
-        self::$passedContext = $context;
-    }
-
-    public function validate($value, Constraint $constraint)
-    {
-        if ('VALID' != $value) {
-            $this->context->addViolation('message', array('param' => 'value'));
-
-            return;
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintB.php b/core/vendor/symfony/validator/Tests/Fixtures/ConstraintB.php
deleted file mode 100644
index 6258923..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintB.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-/** @Annotation */
-class ConstraintB extends Constraint
-{
-    public function getTargets()
-    {
-        return array(self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintC.php b/core/vendor/symfony/validator/Tests/Fixtures/ConstraintC.php
deleted file mode 100644
index b0418b8..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintC.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-/** @Annotation */
-class ConstraintC extends Constraint
-{
-    public $option1;
-
-    public function getRequiredOptions()
-    {
-        return array('option1');
-    }
-
-    public function getTargets()
-    {
-        return array(self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintWithValue.php b/core/vendor/symfony/validator/Tests/Fixtures/ConstraintWithValue.php
deleted file mode 100644
index 4ebd981..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintWithValue.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-/** @Annotation */
-class ConstraintWithValue extends Constraint
-{
-    public $property;
-    public $value;
-
-    public function getDefaultOption()
-    {
-        return 'property';
-    }
-
-    public function getTargets()
-    {
-        return array(self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintWithValueAsDefault.php b/core/vendor/symfony/validator/Tests/Fixtures/ConstraintWithValueAsDefault.php
deleted file mode 100644
index a975e07..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/ConstraintWithValueAsDefault.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-/** @Annotation */
-class ConstraintWithValueAsDefault extends Constraint
-{
-    public $property;
-    public $value;
-
-    public function getDefaultOption()
-    {
-        return 'value';
-    }
-
-    public function getTargets()
-    {
-        return array(self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/Countable.php b/core/vendor/symfony/validator/Tests/Fixtures/Countable.php
deleted file mode 100644
index 282d78d..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/Countable.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-class Countable implements \Countable
-{
-    private $content;
-
-    public function __construct(array $content)
-    {
-        $this->content = $content;
-    }
-
-    public function count()
-    {
-        return count($this->content);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/CustomArrayObject.php b/core/vendor/symfony/validator/Tests/Fixtures/CustomArrayObject.php
deleted file mode 100644
index 41eac96..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/CustomArrayObject.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-/**
- * This class is a hand written simplified version of PHP native `ArrayObject`
- * class, to show that it behaves differently than the PHP native implementation.
- */
-class CustomArrayObject implements \ArrayAccess, \IteratorAggregate, \Countable, \Serializable
-{
-    private $array;
-
-    public function __construct(array $array = null)
-    {
-        $this->array = $array ?: array();
-    }
-
-    public function offsetExists($offset)
-    {
-        return array_key_exists($offset, $this->array);
-    }
-
-    public function offsetGet($offset)
-    {
-        return $this->array[$offset];
-    }
-
-    public function offsetSet($offset, $value)
-    {
-        if (null === $offset) {
-            $this->array[] = $value;
-        } else {
-            $this->array[$offset] = $value;
-        }
-    }
-
-    public function offsetUnset($offset)
-    {
-        unset($this->array[$offset]);
-    }
-
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->array);
-    }
-
-    public function count()
-    {
-        return count($this->array);
-    }
-
-    public function serialize()
-    {
-        return serialize($this->array);
-    }
-
-    public function unserialize($serialized)
-    {
-        $this->array = (array) unserialize((string) $serialized);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/Entity.php b/core/vendor/symfony/validator/Tests/Fixtures/Entity.php
deleted file mode 100644
index 526ecc5..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/Entity.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraints as Assert;
-use Symfony\Component\Validator\ExecutionContextInterface;
-
-/**
- * @Symfony\Component\Validator\Tests\Fixtures\ConstraintA
- * @Assert\GroupSequence({"Foo", "Entity"})
- * @Assert\Callback({"Symfony\Component\Validator\Tests\Fixtures\CallbackClass", "callback"})
- */
-class Entity extends EntityParent implements EntityInterface
-{
-    /**
-     * @Assert\NotNull
-     * @Assert\Range(min=3)
-     * @Assert\All({@Assert\NotNull, @Assert\Range(min=3)}),
-     * @Assert\All(constraints={@Assert\NotNull, @Assert\Range(min=3)})
-     * @Assert\Collection(fields={
-     *   "foo" = {@Assert\NotNull, @Assert\Range(min=3)},
-     *   "bar" = @Assert\Range(min=5)
-     * })
-     * @Assert\Choice(choices={"A", "B"}, message="Must be one of %choices%")
-     */
-    public $firstName;
-    protected $lastName;
-    public $reference;
-    public $reference2;
-    private $internal;
-    public $data = 'Overridden data';
-    public $initialized = false;
-
-    public function __construct($internal = null)
-    {
-        $this->internal = $internal;
-    }
-
-    public function getInternal()
-    {
-        return $this->internal.' from getter';
-    }
-
-    public function setLastName($lastName)
-    {
-        $this->lastName = $lastName;
-    }
-
-    /**
-     * @Assert\NotNull
-     */
-    public function getLastName()
-    {
-        return $this->lastName;
-    }
-
-    /**
-     * @Assert\IsTrue
-     */
-    public function isValid()
-    {
-        return 'valid';
-    }
-
-    /**
-     * @Assert\IsTrue
-     */
-    public function hasPermissions()
-    {
-        return 'permissions';
-    }
-
-    public function getData()
-    {
-        return 'Overridden data';
-    }
-
-    /**
-     * @Assert\Callback
-     */
-    public function validateMe(ExecutionContextInterface $context)
-    {
-    }
-
-    /**
-     * @Assert\Callback
-     */
-    public static function validateMeStatic($object, ExecutionContextInterface $context)
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/EntityInterface.php b/core/vendor/symfony/validator/Tests/Fixtures/EntityInterface.php
deleted file mode 100644
index 2901f26..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/EntityInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-interface EntityInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/EntityParent.php b/core/vendor/symfony/validator/Tests/Fixtures/EntityParent.php
deleted file mode 100644
index 422bb28..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/EntityParent.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraints\NotNull;
-
-class EntityParent
-{
-    protected $firstName;
-    private $internal;
-    private $data = 'Data';
-
-    /**
-     * @NotNull
-     */
-    protected $other;
-
-    public function getData()
-    {
-        return 'Data';
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/FailingConstraint.php b/core/vendor/symfony/validator/Tests/Fixtures/FailingConstraint.php
deleted file mode 100644
index 03019fc..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/FailingConstraint.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-class FailingConstraint extends Constraint
-{
-    public $message = 'Failed';
-
-    public function getTargets()
-    {
-        return array(self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/FailingConstraintValidator.php b/core/vendor/symfony/validator/Tests/Fixtures/FailingConstraintValidator.php
deleted file mode 100644
index a019dd6..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/FailingConstraintValidator.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintValidator;
-
-class FailingConstraintValidator extends ConstraintValidator
-{
-    public function validate($value, Constraint $constraint)
-    {
-        $this->context->addViolation($constraint->message, array());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/FakeClassMetadata.php b/core/vendor/symfony/validator/Tests/Fixtures/FakeClassMetadata.php
deleted file mode 100644
index 8c76a21..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/FakeClassMetadata.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-class FakeClassMetadata extends ClassMetadata
-{
-    public function addCustomPropertyMetadata($propertyName, $metadata)
-    {
-        if (!isset($this->members[$propertyName])) {
-            $this->members[$propertyName] = array();
-        }
-
-        $this->members[$propertyName][] = $metadata;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/FakeMetadataFactory.php b/core/vendor/symfony/validator/Tests/Fixtures/FakeMetadataFactory.php
deleted file mode 100644
index e3f0d9a..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/FakeMetadataFactory.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Exception\NoSuchMetadataException;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\MetadataInterface;
-
-class FakeMetadataFactory implements MetadataFactoryInterface
-{
-    protected $metadatas = array();
-
-    public function getMetadataFor($class)
-    {
-        $hash = null;
-
-        if (is_object($class)) {
-            $hash = spl_object_hash($class);
-            $class = get_class($class);
-        }
-
-        if (!is_string($class)) {
-            throw new NoSuchMetadataException(sprintf('No metadata for type %s', gettype($class)));
-        }
-
-        if (!isset($this->metadatas[$class])) {
-            if (isset($this->metadatas[$hash])) {
-                return $this->metadatas[$hash];
-            }
-
-            throw new NoSuchMetadataException(sprintf('No metadata for "%s"', $class));
-        }
-
-        return $this->metadatas[$class];
-    }
-
-    public function hasMetadataFor($class)
-    {
-        $hash = null;
-
-        if (is_object($class)) {
-            $hash = spl_object_hash($class);
-            $class = get_class($class);
-        }
-
-        if (!is_string($class)) {
-            return false;
-        }
-
-        return isset($this->metadatas[$class]) || isset($this->metadatas[$hash]);
-    }
-
-    public function addMetadata($metadata)
-    {
-        $this->metadatas[$metadata->getClassName()] = $metadata;
-    }
-
-    public function addMetadataForValue($value, MetadataInterface $metadata)
-    {
-        $key = is_object($value) ? spl_object_hash($value) : $value;
-        $this->metadatas[$key] = $metadata;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/FilesLoader.php b/core/vendor/symfony/validator/Tests/Fixtures/FilesLoader.php
deleted file mode 100644
index a4d6a6a..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/FilesLoader.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Mapping\Loader\FilesLoader as BaseFilesLoader;
-use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
-
-abstract class FilesLoader extends BaseFilesLoader
-{
-    protected $timesCalled = 0;
-    protected $loader;
-
-    public function __construct(array $paths, LoaderInterface $loader)
-    {
-        $this->loader = $loader;
-        parent::__construct($paths);
-    }
-
-    protected function getFileLoaderInstance($file)
-    {
-        ++$this->timesCalled;
-
-        return $this->loader;
-    }
-
-    public function getTimesCalled()
-    {
-        return $this->timesCalled;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/GroupSequenceProviderEntity.php b/core/vendor/symfony/validator/Tests/Fixtures/GroupSequenceProviderEntity.php
deleted file mode 100644
index 2b0beaf..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/GroupSequenceProviderEntity.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraints as Assert;
-use Symfony\Component\Validator\GroupSequenceProviderInterface;
-
-/**
- * @Assert\GroupSequenceProvider
- */
-class GroupSequenceProviderEntity implements GroupSequenceProviderInterface
-{
-    public $firstName;
-    public $lastName;
-
-    protected $sequence = array();
-
-    public function __construct($sequence)
-    {
-        $this->sequence = $sequence;
-    }
-
-    public function getGroupSequence()
-    {
-        return $this->sequence;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/InvalidConstraint.php b/core/vendor/symfony/validator/Tests/Fixtures/InvalidConstraint.php
deleted file mode 100644
index 6a9eaa7..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/InvalidConstraint.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-class InvalidConstraint extends Constraint
-{
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/InvalidConstraintValidator.php b/core/vendor/symfony/validator/Tests/Fixtures/InvalidConstraintValidator.php
deleted file mode 100644
index bd9a5cf..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/InvalidConstraintValidator.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-class InvalidConstraintValidator
-{
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/LegacyClassMetadata.php b/core/vendor/symfony/validator/Tests/Fixtures/LegacyClassMetadata.php
deleted file mode 100644
index 6a832a1..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/LegacyClassMetadata.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\ClassBasedInterface;
-use Symfony\Component\Validator\MetadataInterface;
-use Symfony\Component\Validator\PropertyMetadataContainerInterface;
-
-interface LegacyClassMetadata extends MetadataInterface, PropertyMetadataContainerInterface, ClassBasedInterface
-{
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/PropertyConstraint.php b/core/vendor/symfony/validator/Tests/Fixtures/PropertyConstraint.php
deleted file mode 100644
index fadb535..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/PropertyConstraint.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\Constraint;
-
-class PropertyConstraint extends Constraint
-{
-    public function getTargets()
-    {
-        return self::PROPERTY_CONSTRAINT;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/Reference.php b/core/vendor/symfony/validator/Tests/Fixtures/Reference.php
deleted file mode 100644
index af29735..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/Reference.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-class Reference
-{
-    public $value;
-
-    private $privateValue;
-
-    public function setPrivateValue($privateValue)
-    {
-        $this->privateValue = $privateValue;
-    }
-
-    public function getPrivateValue()
-    {
-        return $this->privateValue;
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Fixtures/StubGlobalExecutionContext.php b/core/vendor/symfony/validator/Tests/Fixtures/StubGlobalExecutionContext.php
deleted file mode 100644
index 84c5a80..0000000
--- a/core/vendor/symfony/validator/Tests/Fixtures/StubGlobalExecutionContext.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Fixtures;
-
-use Symfony\Component\Validator\ConstraintViolationList;
-use Symfony\Component\Validator\GlobalExecutionContextInterface;
-use Symfony\Component\Validator\ValidationVisitorInterface;
-
-/**
- * @since 2.5.3
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0
- */
-class StubGlobalExecutionContext implements GlobalExecutionContextInterface
-{
-    private $violations;
-    private $root;
-    private $visitor;
-
-    public function __construct($root = null, ValidationVisitorInterface $visitor = null)
-    {
-        $this->violations = new ConstraintViolationList();
-        $this->root = $root;
-        $this->visitor = $visitor;
-    }
-
-    public function getViolations()
-    {
-        return $this->violations;
-    }
-
-    public function setRoot($root)
-    {
-        $this->root = $root;
-    }
-
-    public function getRoot()
-    {
-        return $this->root;
-    }
-
-    public function setVisitor(ValidationVisitorInterface $visitor)
-    {
-        $this->visitor = $visitor;
-    }
-
-    public function getVisitor()
-    {
-        return $this->visitor;
-    }
-
-    public function getValidatorFactory()
-    {
-    }
-
-    public function getMetadataFactory()
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/LegacyExecutionContextTest.php b/core/vendor/symfony/validator/Tests/LegacyExecutionContextTest.php
deleted file mode 100644
index f0139c0..0000000
--- a/core/vendor/symfony/validator/Tests/LegacyExecutionContextTest.php
+++ /dev/null
@@ -1,334 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests;
-
-use Symfony\Component\Validator\Constraints\Collection;
-use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\ConstraintValidatorFactory;
-use Symfony\Component\Validator\ConstraintViolation;
-use Symfony\Component\Validator\ConstraintViolationList;
-use Symfony\Component\Validator\ExecutionContext;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\ValidationVisitor;
-
-/**
- * @group legacy
- */
-class LegacyExecutionContextTest extends \PHPUnit_Framework_TestCase
-{
-    const TRANS_DOMAIN = 'trans_domain';
-
-    private $visitor;
-    private $violations;
-    private $metadata;
-    private $metadataFactory;
-    private $globalContext;
-    private $translator;
-
-    /**
-     * @var ExecutionContext
-     */
-    private $context;
-
-    protected function setUp()
-    {
-        $this->visitor = $this->getMockBuilder('Symfony\Component\Validator\ValidationVisitor')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->violations = new ConstraintViolationList();
-        $this->metadata = $this->getMock('Symfony\Component\Validator\MetadataInterface');
-        $this->metadataFactory = $this->getMock('Symfony\Component\Validator\MetadataFactoryInterface');
-        $this->globalContext = $this->getMock('Symfony\Component\Validator\GlobalExecutionContextInterface');
-        $this->globalContext->expects($this->any())
-            ->method('getRoot')
-            ->will($this->returnValue('Root'));
-        $this->globalContext->expects($this->any())
-            ->method('getViolations')
-            ->will($this->returnValue($this->violations));
-        $this->globalContext->expects($this->any())
-            ->method('getVisitor')
-            ->will($this->returnValue($this->visitor));
-        $this->globalContext->expects($this->any())
-            ->method('getMetadataFactory')
-            ->will($this->returnValue($this->metadataFactory));
-        $this->translator = $this->getMock('Symfony\Component\Translation\TranslatorInterface');
-        $this->context = new ExecutionContext($this->globalContext, $this->translator, self::TRANS_DOMAIN, $this->metadata, 'currentValue', 'Group', 'foo.bar');
-    }
-
-    protected function tearDown()
-    {
-        $this->globalContext = null;
-        $this->context = null;
-    }
-
-    public function testInit()
-    {
-        $this->assertCount(0, $this->context->getViolations());
-        $this->assertSame('Root', $this->context->getRoot());
-        $this->assertSame('foo.bar', $this->context->getPropertyPath());
-        $this->assertSame('Group', $this->context->getGroup());
-    }
-
-    public function testClone()
-    {
-        $clone = clone $this->context;
-
-        // Cloning the context keeps the reference to the original violation
-        // list. This way we can efficiently duplicate context instances during
-        // the validation run and only modify the properties that need to be
-        // changed.
-        $this->assertSame($this->context->getViolations(), $clone->getViolations());
-    }
-
-    public function testAddViolation()
-    {
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('Error', array('foo' => 'bar'))
-            ->will($this->returnValue('Translated error'));
-
-        $this->context->addViolation('Error', array('foo' => 'bar'), 'invalid');
-
-        $this->assertEquals(new ConstraintViolationList(array(
-            new ConstraintViolation(
-                'Translated error',
-                'Error',
-                array('foo' => 'bar'),
-                'Root',
-                'foo.bar',
-                'invalid'
-            ),
-        )), $this->context->getViolations());
-    }
-
-    public function testAddViolationUsesPreconfiguredValueIfNotPassed()
-    {
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('Error', array())
-            ->will($this->returnValue('Translated error'));
-
-        $this->context->addViolation('Error');
-
-        $this->assertEquals(new ConstraintViolationList(array(
-            new ConstraintViolation(
-                'Translated error',
-                'Error',
-                array(),
-                'Root',
-                'foo.bar',
-                'currentValue'
-            ),
-        )), $this->context->getViolations());
-    }
-
-    public function testAddViolationUsesPassedNullValue()
-    {
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('Error', array('foo1' => 'bar1'))
-            ->will($this->returnValue('Translated error'));
-        $this->translator->expects($this->once())
-            ->method('transChoice')
-            ->with('Choice error', 1, array('foo2' => 'bar2'))
-            ->will($this->returnValue('Translated choice error'));
-
-        // passed null value should override preconfigured value "invalid"
-        $this->context->addViolation('Error', array('foo1' => 'bar1'), null);
-        $this->context->addViolation('Choice error', array('foo2' => 'bar2'), null, 1);
-
-        $this->assertEquals(new ConstraintViolationList(array(
-            new ConstraintViolation(
-                'Translated error',
-                'Error',
-                array('foo1' => 'bar1'),
-                'Root',
-                'foo.bar',
-                null
-            ),
-            new ConstraintViolation(
-                'Translated choice error',
-                'Choice error',
-                array('foo2' => 'bar2'),
-                'Root',
-                'foo.bar',
-                null,
-                1
-            ),
-        )), $this->context->getViolations());
-    }
-
-    public function testAddViolationAt()
-    {
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('Error', array('foo' => 'bar'))
-            ->will($this->returnValue('Translated error'));
-
-        // override preconfigured property path
-        $this->context->addViolationAt('bam.baz', 'Error', array('foo' => 'bar'), 'invalid');
-
-        $this->assertEquals(new ConstraintViolationList(array(
-            new ConstraintViolation(
-                'Translated error',
-                'Error',
-                array('foo' => 'bar'),
-                'Root',
-                'foo.bar.bam.baz',
-                'invalid'
-            ),
-        )), $this->context->getViolations());
-    }
-
-    public function testAddViolationAtUsesPreconfiguredValueIfNotPassed()
-    {
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('Error', array())
-            ->will($this->returnValue('Translated error'));
-
-        $this->context->addViolationAt('bam.baz', 'Error');
-
-        $this->assertEquals(new ConstraintViolationList(array(
-            new ConstraintViolation(
-                'Translated error',
-                'Error',
-                array(),
-                'Root',
-                'foo.bar.bam.baz',
-                'currentValue'
-            ),
-        )), $this->context->getViolations());
-    }
-
-    public function testAddViolationAtUsesPassedNullValue()
-    {
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('Error', array('foo' => 'bar'))
-            ->will($this->returnValue('Translated error'));
-        $this->translator->expects($this->once())
-            ->method('transChoice')
-            ->with('Choice error', 2, array('foo' => 'bar'))
-            ->will($this->returnValue('Translated choice error'));
-
-        // passed null value should override preconfigured value "invalid"
-        $this->context->addViolationAt('bam.baz', 'Error', array('foo' => 'bar'), null);
-        $this->context->addViolationAt('bam.baz', 'Choice error', array('foo' => 'bar'), null, 2);
-
-        $this->assertEquals(new ConstraintViolationList(array(
-            new ConstraintViolation(
-                'Translated error',
-                'Error',
-                array('foo' => 'bar'),
-                'Root',
-                'foo.bar.bam.baz',
-                null
-            ),
-            new ConstraintViolation(
-                'Translated choice error',
-                'Choice error',
-                array('foo' => 'bar'),
-                'Root',
-                'foo.bar.bam.baz',
-                null,
-                2
-            ),
-        )), $this->context->getViolations());
-    }
-
-    public function testAddViolationPluralTranslationError()
-    {
-        $this->translator->expects($this->once())
-            ->method('transChoice')
-            ->with('foo')
-            ->will($this->throwException(new \InvalidArgumentException()));
-        $this->translator->expects($this->once())
-            ->method('trans')
-            ->with('foo');
-
-        $this->context->addViolation('foo', array(), null, 2);
-    }
-
-    public function testGetPropertyPath()
-    {
-        $this->assertEquals('foo.bar', $this->context->getPropertyPath());
-    }
-
-    public function testGetPropertyPathWithIndexPath()
-    {
-        $this->assertEquals('foo.bar[bam]', $this->context->getPropertyPath('[bam]'));
-    }
-
-    public function testGetPropertyPathWithEmptyPath()
-    {
-        $this->assertEquals('foo.bar', $this->context->getPropertyPath(''));
-    }
-
-    public function testGetPropertyPathWithEmptyCurrentPropertyPath()
-    {
-        $this->context = new ExecutionContext($this->globalContext, $this->translator, self::TRANS_DOMAIN, $this->metadata, 'currentValue', 'Group', '');
-
-        $this->assertEquals('bam.baz', $this->context->getPropertyPath('bam.baz'));
-    }
-
-    public function testGetPropertyPathWithNestedCollectionsAndAllMixed()
-    {
-        $constraints = new Collection(array(
-            'shelves' => new All(array('constraints' => array(
-                new Collection(array(
-                    'name' => new ConstraintA(),
-                    'books' => new All(array('constraints' => array(
-                        new ConstraintA(),
-                    ))),
-                )),
-            ))),
-            'name' => new ConstraintA(),
-        ));
-        $data = array(
-            'shelves' => array(
-                array(
-                    'name' => 'Research',
-                    'books' => array('foo', 'bar'),
-                ),
-                array(
-                    'name' => 'VALID',
-                    'books' => array('foozy', 'VALID', 'bazzy'),
-                ),
-            ),
-            'name' => 'Library',
-        );
-        $expectedViolationPaths = array(
-            '[shelves][0][name]',
-            '[shelves][0][books][0]',
-            '[shelves][0][books][1]',
-            '[shelves][1][books][0]',
-            '[shelves][1][books][2]',
-            '[name]',
-        );
-
-        $visitor = new ValidationVisitor('Root', $this->metadataFactory, new ConstraintValidatorFactory(), $this->translator);
-        $context = new ExecutionContext($visitor, $this->translator, self::TRANS_DOMAIN);
-        $context->validateValue($data, $constraints);
-
-        foreach ($context->getViolations() as $violation) {
-            $violationPaths[] = $violation->getPropertyPath();
-        }
-
-        $this->assertEquals($expectedViolationPaths, $violationPaths);
-    }
-}
-
-class ExecutionContextTest_TestClass
-{
-    public $myProperty;
-}
diff --git a/core/vendor/symfony/validator/Tests/LegacyValidatorTest.php b/core/vendor/symfony/validator/Tests/LegacyValidatorTest.php
deleted file mode 100644
index a38f1ab..0000000
--- a/core/vendor/symfony/validator/Tests/LegacyValidatorTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests;
-
-use Symfony\Component\Translation\IdentityTranslator;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintValidatorFactory;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-use Symfony\Component\Validator\Tests\Validator\AbstractLegacyApiTest;
-use Symfony\Component\Validator\Validator as LegacyValidator;
-
-/**
- * @group legacy
- */
-class LegacyValidatorTest extends AbstractLegacyApiTest
-{
-    protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array())
-    {
-        $translator = new IdentityTranslator();
-        $translator->setLocale('en');
-
-        return new LegacyValidator($metadataFactory, new ConstraintValidatorFactory(), $translator, 'validators', $objectInitializers);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ValidatorException
-     */
-    public function testValidateValueRejectsValid()
-    {
-        $this->validator->validateValue(new Entity(), new Valid());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Cache/DoctrineCacheTest.php b/core/vendor/symfony/validator/Tests/Mapping/Cache/DoctrineCacheTest.php
deleted file mode 100644
index a2de306..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Cache/DoctrineCacheTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Cache;
-
-use Doctrine\Common\Cache\ArrayCache;
-use Symfony\Component\Validator\Mapping\Cache\DoctrineCache;
-
-class DoctrineCacheTest extends \PHPUnit_Framework_TestCase
-{
-    private $cache;
-
-    public function testWrite()
-    {
-        $meta = $this->getMockBuilder('Symfony\\Component\\Validator\\Mapping\\ClassMetadata')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getClassName'))
-            ->getMock();
-
-        $meta->expects($this->once())
-            ->method('getClassName')
-            ->will($this->returnValue('bar'));
-
-        $this->cache->write($meta);
-
-        $this->assertInstanceOf(
-            'Symfony\\Component\\Validator\\Mapping\\ClassMetadata',
-            $this->cache->read('bar'),
-            'write() stores metadata'
-        );
-    }
-
-    public function testHas()
-    {
-        $meta = $this->getMockBuilder('Symfony\\Component\\Validator\\Mapping\\ClassMetadata')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getClassName'))
-            ->getMock();
-
-        $meta->expects($this->once())
-            ->method('getClassName')
-            ->will($this->returnValue('bar'));
-
-        $this->assertFalse($this->cache->has('bar'), 'has() returns false when there is no entry');
-
-        $this->cache->write($meta);
-        $this->assertTrue($this->cache->has('bar'), 'has() returns true when the is an entry');
-    }
-
-    public function testRead()
-    {
-        $meta = $this->getMockBuilder('Symfony\\Component\\Validator\\Mapping\\ClassMetadata')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getClassName'))
-            ->getMock();
-
-        $meta->expects($this->once())
-            ->method('getClassName')
-            ->will($this->returnValue('bar'));
-
-        $this->assertFalse($this->cache->read('bar'), 'read() returns false when there is no entry');
-
-        $this->cache->write($meta);
-
-        $this->assertInstanceOf(
-            'Symfony\\Component\\Validator\\Mapping\\ClassMetadata',
-            $this->cache->read('bar'),
-            'read() returns metadata'
-        );
-    }
-
-    protected function setUp()
-    {
-        $this->cache = new DoctrineCache(new ArrayCache());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Cache/LegacyApcCacheTest.php b/core/vendor/symfony/validator/Tests/Mapping/Cache/LegacyApcCacheTest.php
deleted file mode 100644
index 9d39784..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Cache/LegacyApcCacheTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Cache;
-
-use Symfony\Component\Validator\Mapping\Cache\ApcCache;
-
-/**
- * @group legacy
- */
-class LegacyApcCacheTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!extension_loaded('apc') || !ini_get('apc.enable_cli')) {
-            $this->markTestSkipped('APC is not loaded.');
-        }
-    }
-
-    public function testWrite()
-    {
-        $meta = $this->getMockBuilder('Symfony\\Component\\Validator\\Mapping\\ClassMetadata')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getClassName'))
-            ->getMock();
-
-        $meta->expects($this->once())
-            ->method('getClassName')
-            ->will($this->returnValue('bar'));
-
-        $cache = new ApcCache('foo');
-        $cache->write($meta);
-
-        $this->assertInstanceOf('Symfony\\Component\\Validator\\Mapping\\ClassMetadata', apc_fetch('foobar'), '->write() stores metadata in APC');
-    }
-
-    public function testHas()
-    {
-        $meta = $this->getMockBuilder('Symfony\\Component\\Validator\\Mapping\\ClassMetadata')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getClassName'))
-            ->getMock();
-
-        $meta->expects($this->once())
-            ->method('getClassName')
-            ->will($this->returnValue('bar'));
-
-        apc_delete('foobar');
-
-        $cache = new ApcCache('foo');
-        $this->assertFalse($cache->has('bar'), '->has() returns false when there is no entry');
-
-        $cache->write($meta);
-        $this->assertTrue($cache->has('bar'), '->has() returns true when the is an entry');
-    }
-
-    public function testRead()
-    {
-        $meta = $this->getMockBuilder('Symfony\\Component\\Validator\\Mapping\\ClassMetadata')
-            ->disableOriginalConstructor()
-            ->setMethods(array('getClassName'))
-            ->getMock();
-
-        $meta->expects($this->once())
-            ->method('getClassName')
-            ->will($this->returnValue('bar'));
-
-        $cache = new ApcCache('foo');
-        $cache->write($meta);
-
-        $this->assertInstanceOf('Symfony\\Component\\Validator\\Mapping\\ClassMetadata', $cache->read('bar'), '->read() returns metadata');
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/ClassMetadataTest.php b/core/vendor/symfony/validator/Tests/Mapping/ClassMetadataTest.php
deleted file mode 100644
index 8634ac5..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/ClassMetadataTest.php
+++ /dev/null
@@ -1,280 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
-use Symfony\Component\Validator\Tests\Fixtures\PropertyConstraint;
-
-class ClassMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    const CLASSNAME = 'Symfony\Component\Validator\Tests\Fixtures\Entity';
-    const PARENTCLASS = 'Symfony\Component\Validator\Tests\Fixtures\EntityParent';
-    const PROVIDERCLASS = 'Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity';
-
-    protected $metadata;
-
-    protected function setUp()
-    {
-        $this->metadata = new ClassMetadata(self::CLASSNAME);
-    }
-
-    protected function tearDown()
-    {
-        $this->metadata = null;
-    }
-
-    public function testAddConstraintDoesNotAcceptValid()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\ConstraintDefinitionException');
-
-        $this->metadata->addConstraint(new Valid());
-    }
-
-    public function testAddConstraintRequiresClassConstraints()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\ConstraintDefinitionException');
-
-        $this->metadata->addConstraint(new PropertyConstraint());
-    }
-
-    public function testAddPropertyConstraints()
-    {
-        $this->metadata->addPropertyConstraint('firstName', new ConstraintA());
-        $this->metadata->addPropertyConstraint('lastName', new ConstraintB());
-
-        $this->assertEquals(array('firstName', 'lastName'), $this->metadata->getConstrainedProperties());
-    }
-
-    public function testAddMultiplePropertyConstraints()
-    {
-        $this->metadata->addPropertyConstraints('lastName', array(new ConstraintA(), new ConstraintB()));
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array('Default', 'Entity'))),
-            new ConstraintB(array('groups' => array('Default', 'Entity'))),
-        );
-
-        $properties = $this->metadata->getPropertyMetadata('lastName');
-
-        $this->assertCount(1, $properties);
-        $this->assertEquals('lastName', $properties[0]->getName());
-        $this->assertEquals($constraints, $properties[0]->getConstraints());
-    }
-
-    public function testAddGetterConstraints()
-    {
-        $this->metadata->addGetterConstraint('lastName', new ConstraintA());
-        $this->metadata->addGetterConstraint('lastName', new ConstraintB());
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array('Default', 'Entity'))),
-            new ConstraintB(array('groups' => array('Default', 'Entity'))),
-        );
-
-        $properties = $this->metadata->getPropertyMetadata('lastName');
-
-        $this->assertCount(1, $properties);
-        $this->assertEquals('getLastName', $properties[0]->getName());
-        $this->assertEquals($constraints, $properties[0]->getConstraints());
-    }
-
-    public function testAddMultipleGetterConstraints()
-    {
-        $this->metadata->addGetterConstraints('lastName', array(new ConstraintA(), new ConstraintB()));
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array('Default', 'Entity'))),
-            new ConstraintB(array('groups' => array('Default', 'Entity'))),
-        );
-
-        $properties = $this->metadata->getPropertyMetadata('lastName');
-
-        $this->assertCount(1, $properties);
-        $this->assertEquals('getLastName', $properties[0]->getName());
-        $this->assertEquals($constraints, $properties[0]->getConstraints());
-    }
-
-    public function testMergeConstraintsMergesClassConstraints()
-    {
-        $parent = new ClassMetadata(self::PARENTCLASS);
-        $parent->addConstraint(new ConstraintA());
-
-        $this->metadata->mergeConstraints($parent);
-        $this->metadata->addConstraint(new ConstraintA());
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'EntityParent',
-                'Entity',
-            ))),
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'Entity',
-            ))),
-        );
-
-        $this->assertEquals($constraints, $this->metadata->getConstraints());
-    }
-
-    public function testMergeConstraintsMergesMemberConstraints()
-    {
-        $parent = new ClassMetadata(self::PARENTCLASS);
-        $parent->addPropertyConstraint('firstName', new ConstraintA());
-
-        $this->metadata->mergeConstraints($parent);
-        $this->metadata->addPropertyConstraint('firstName', new ConstraintA());
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'EntityParent',
-                'Entity',
-            ))),
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'Entity',
-            ))),
-        );
-
-        $members = $this->metadata->getPropertyMetadata('firstName');
-
-        $this->assertCount(1, $members);
-        $this->assertEquals(self::PARENTCLASS, $members[0]->getClassName());
-        $this->assertEquals($constraints, $members[0]->getConstraints());
-    }
-
-    public function testMemberMetadatas()
-    {
-        $this->metadata->addPropertyConstraint('firstName', new ConstraintA());
-
-        $this->assertTrue($this->metadata->hasPropertyMetadata('firstName'));
-        $this->assertFalse($this->metadata->hasPropertyMetadata('non_existant_field'));
-    }
-
-    public function testMergeConstraintsKeepsPrivateMembersSeparate()
-    {
-        $parent = new ClassMetadata(self::PARENTCLASS);
-        $parent->addPropertyConstraint('internal', new ConstraintA());
-
-        $this->metadata->mergeConstraints($parent);
-        $this->metadata->addPropertyConstraint('internal', new ConstraintA());
-
-        $parentConstraints = array(
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'EntityParent',
-                'Entity',
-            ))),
-        );
-        $constraints = array(
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'Entity',
-            ))),
-        );
-
-        $members = $this->metadata->getPropertyMetadata('internal');
-
-        $this->assertCount(2, $members);
-        $this->assertEquals(self::PARENTCLASS, $members[0]->getClassName());
-        $this->assertEquals($parentConstraints, $members[0]->getConstraints());
-        $this->assertEquals(self::CLASSNAME, $members[1]->getClassName());
-        $this->assertEquals($constraints, $members[1]->getConstraints());
-    }
-
-    public function testGetReflectionClass()
-    {
-        $reflClass = new \ReflectionClass(self::CLASSNAME);
-
-        $this->assertEquals($reflClass, $this->metadata->getReflectionClass());
-    }
-
-    public function testSerialize()
-    {
-        $this->metadata->addConstraint(new ConstraintA(array('property1' => 'A')));
-        $this->metadata->addConstraint(new ConstraintB(array('groups' => 'TestGroup')));
-        $this->metadata->addPropertyConstraint('firstName', new ConstraintA());
-        $this->metadata->addGetterConstraint('lastName', new ConstraintB());
-
-        $metadata = unserialize(serialize($this->metadata));
-
-        $this->assertEquals($this->metadata, $metadata);
-    }
-
-    public function testGroupSequencesWorkIfContainingDefaultGroup()
-    {
-        $this->metadata->setGroupSequence(array('Foo', $this->metadata->getDefaultGroup()));
-    }
-
-    public function testGroupSequencesFailIfNotContainingDefaultGroup()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\GroupDefinitionException');
-
-        $this->metadata->setGroupSequence(array('Foo', 'Bar'));
-    }
-
-    public function testGroupSequencesFailIfContainingDefault()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\GroupDefinitionException');
-
-        $this->metadata->setGroupSequence(array('Foo', $this->metadata->getDefaultGroup(), Constraint::DEFAULT_GROUP));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\GroupDefinitionException
-     */
-    public function testGroupSequenceFailsIfGroupSequenceProviderIsSet()
-    {
-        $metadata = new ClassMetadata(self::PROVIDERCLASS);
-        $metadata->setGroupSequenceProvider(true);
-        $metadata->setGroupSequence(array('GroupSequenceProviderEntity', 'Foo'));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\GroupDefinitionException
-     */
-    public function testGroupSequenceProviderFailsIfGroupSequenceIsSet()
-    {
-        $metadata = new ClassMetadata(self::PROVIDERCLASS);
-        $metadata->setGroupSequence(array('GroupSequenceProviderEntity', 'Foo'));
-        $metadata->setGroupSequenceProvider(true);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\GroupDefinitionException
-     */
-    public function testGroupSequenceProviderFailsIfDomainClassIsInvalid()
-    {
-        $metadata = new ClassMetadata('stdClass');
-        $metadata->setGroupSequenceProvider(true);
-    }
-
-    public function testGroupSequenceProvider()
-    {
-        $metadata = new ClassMetadata(self::PROVIDERCLASS);
-        $metadata->setGroupSequenceProvider(true);
-        $this->assertTrue($metadata->isGroupSequenceProvider());
-    }
-
-    /**
-     * https://github.com/symfony/symfony/issues/11604.
-     */
-    public function testGetPropertyMetadataReturnsEmptyArrayWithoutConfiguredMetadata()
-    {
-        $this->assertCount(0, $this->metadata->getPropertyMetadata('foo'), '->getPropertyMetadata() returns an empty collection if no metadata is configured for the given property');
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Factory/BlackHoleMetadataFactoryTest.php b/core/vendor/symfony/validator/Tests/Mapping/Factory/BlackHoleMetadataFactoryTest.php
deleted file mode 100644
index 641bf91..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Factory/BlackHoleMetadataFactoryTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Factory;
-
-use Symfony\Component\Validator\Mapping\Factory\BlackHoleMetadataFactory;
-
-class BlackHoleMetadataFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \LogicException
-     */
-    public function testGetMetadataForThrowsALogicException()
-    {
-        $metadataFactory = new BlackHoleMetadataFactory();
-        $metadataFactory->getMetadataFor('foo');
-    }
-
-    public function testHasMetadataForReturnsFalse()
-    {
-        $metadataFactory = new BlackHoleMetadataFactory();
-
-        $this->assertFalse($metadataFactory->hasMetadataFor('foo'));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php b/core/vendor/symfony/validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php
deleted file mode 100644
index 74ee912..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Factory;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
-use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-
-class LazyLoadingMetadataFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    const CLASSNAME = 'Symfony\Component\Validator\Tests\Fixtures\Entity';
-    const PARENTCLASS = 'Symfony\Component\Validator\Tests\Fixtures\EntityParent';
-
-    public function testLoadClassMetadata()
-    {
-        $factory = new LazyLoadingMetadataFactory(new TestLoader());
-        $metadata = $factory->getMetadataFor(self::PARENTCLASS);
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array('Default', 'EntityParent'))),
-        );
-
-        $this->assertEquals($constraints, $metadata->getConstraints());
-    }
-
-    public function testMergeParentConstraints()
-    {
-        $factory = new LazyLoadingMetadataFactory(new TestLoader());
-        $metadata = $factory->getMetadataFor(self::CLASSNAME);
-
-        $constraints = array(
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'EntityParent',
-                'Entity',
-            ))),
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'EntityInterface',
-                'Entity',
-            ))),
-            new ConstraintA(array('groups' => array(
-                'Default',
-                'Entity',
-            ))),
-        );
-
-        $this->assertEquals($constraints, $metadata->getConstraints());
-    }
-
-    public function testWriteMetadataToCache()
-    {
-        $cache = $this->getMock('Symfony\Component\Validator\Mapping\Cache\CacheInterface');
-        $factory = new LazyLoadingMetadataFactory(new TestLoader(), $cache);
-
-        $tester = $this;
-        $constraints = array(
-            new ConstraintA(array('groups' => array('Default', 'EntityParent'))),
-        );
-
-        $cache->expects($this->never())
-              ->method('has');
-        $cache->expects($this->once())
-              ->method('read')
-              ->with($this->equalTo(self::PARENTCLASS))
-              ->will($this->returnValue(false));
-        $cache->expects($this->once())
-              ->method('write')
-              ->will($this->returnCallback(function ($metadata) use ($tester, $constraints) {
-                  $tester->assertEquals($constraints, $metadata->getConstraints());
-              }));
-
-        $metadata = $factory->getMetadataFor(self::PARENTCLASS);
-
-        $this->assertEquals(self::PARENTCLASS, $metadata->getClassName());
-        $this->assertEquals($constraints, $metadata->getConstraints());
-    }
-
-    public function testReadMetadataFromCache()
-    {
-        $loader = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $cache = $this->getMock('Symfony\Component\Validator\Mapping\Cache\CacheInterface');
-        $factory = new LazyLoadingMetadataFactory($loader, $cache);
-
-        $tester = $this;
-        $metadata = new ClassMetadata(self::PARENTCLASS);
-        $metadata->addConstraint(new ConstraintA());
-
-        $loader->expects($this->never())
-               ->method('loadClassMetadata');
-
-        $cache->expects($this->never())
-              ->method('has');
-        $cache->expects($this->once())
-              ->method('read')
-              ->will($this->returnValue($metadata));
-
-        $this->assertEquals($metadata, $factory->getMetadataFor(self::PARENTCLASS));
-    }
-}
-
-class TestLoader implements LoaderInterface
-{
-    public function loadClassMetadata(ClassMetadata $metadata)
-    {
-        $metadata->addConstraint(new ConstraintA());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/GetterMetadataTest.php b/core/vendor/symfony/validator/Tests/Mapping/GetterMetadataTest.php
deleted file mode 100644
index 0781599..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/GetterMetadataTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping;
-
-use Symfony\Component\Validator\Mapping\GetterMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-
-class GetterMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    const CLASSNAME = 'Symfony\Component\Validator\Tests\Fixtures\Entity';
-
-    public function testInvalidPropertyName()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\ValidatorException');
-
-        new GetterMetadata(self::CLASSNAME, 'foobar');
-    }
-
-    public function testGetPropertyValueFromPublicGetter()
-    {
-        // private getters don't work yet because ReflectionMethod::setAccessible()
-        // does not exist yet in a stable PHP release
-
-        $entity = new Entity('foobar');
-        $metadata = new GetterMetadata(self::CLASSNAME, 'internal');
-
-        $this->assertEquals('foobar from getter', $metadata->getPropertyValue($entity));
-    }
-
-    public function testGetPropertyValueFromOverriddenPublicGetter()
-    {
-        $entity = new Entity();
-        $metadata = new GetterMetadata(self::CLASSNAME, 'data');
-
-        $this->assertEquals('Overridden data', $metadata->getPropertyValue($entity));
-    }
-
-    public function testGetPropertyValueFromIsser()
-    {
-        $entity = new Entity();
-        $metadata = new GetterMetadata(self::CLASSNAME, 'valid');
-
-        $this->assertEquals('valid', $metadata->getPropertyValue($entity));
-    }
-
-    public function testGetPropertyValueFromHasser()
-    {
-        $entity = new Entity();
-        $metadata = new GetterMetadata(self::CLASSNAME, 'permissions');
-
-        $this->assertEquals('permissions', $metadata->getPropertyValue($entity));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/LegacyElementMetadataTest.php b/core/vendor/symfony/validator/Tests/Mapping/LegacyElementMetadataTest.php
deleted file mode 100644
index b68c882..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/LegacyElementMetadataTest.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping;
-
-use Symfony\Component\Validator\Mapping\ElementMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
-
-/**
- * @group legacy
- */
-class LegacyElementMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    protected $metadata;
-
-    protected function setUp()
-    {
-        $this->metadata = new TestElementMetadata();
-    }
-
-    protected function tearDown()
-    {
-        $this->metadata = null;
-    }
-
-    public function testAddConstraints()
-    {
-        $this->metadata->addConstraint($constraint1 = new ConstraintA());
-        $this->metadata->addConstraint($constraint2 = new ConstraintA());
-
-        $this->assertEquals(array($constraint1, $constraint2), $this->metadata->getConstraints());
-    }
-
-    public function testMultipleConstraintsOfTheSameType()
-    {
-        $constraint1 = new ConstraintA(array('property1' => 'A'));
-        $constraint2 = new ConstraintA(array('property1' => 'B'));
-
-        $this->metadata->addConstraint($constraint1);
-        $this->metadata->addConstraint($constraint2);
-
-        $this->assertEquals(array($constraint1, $constraint2), $this->metadata->getConstraints());
-    }
-
-    public function testFindConstraintsByGroup()
-    {
-        $constraint1 = new ConstraintA(array('groups' => 'TestGroup'));
-        $constraint2 = new ConstraintB();
-
-        $this->metadata->addConstraint($constraint1);
-        $this->metadata->addConstraint($constraint2);
-
-        $this->assertEquals(array($constraint1), $this->metadata->findConstraints('TestGroup'));
-    }
-
-    public function testSerialize()
-    {
-        $this->metadata->addConstraint(new ConstraintA(array('property1' => 'A')));
-        $this->metadata->addConstraint(new ConstraintB(array('groups' => 'TestGroup')));
-
-        $metadata = unserialize(serialize($this->metadata));
-
-        $this->assertEquals($this->metadata, $metadata);
-    }
-}
-
-class TestElementMetadata extends ElementMetadata
-{
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/AbstractStaticMethodLoader.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/AbstractStaticMethodLoader.php
deleted file mode 100644
index 08f219d..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/AbstractStaticMethodLoader.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-
-abstract class AbstractStaticMethodLoader
-{
-    abstract public static function loadMetadata(ClassMetadata $metadata);
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/AnnotationLoaderTest.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/AnnotationLoaderTest.php
deleted file mode 100644
index 5a2beff..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/AnnotationLoaderTest.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\Choice;
-use Symfony\Component\Validator\Constraints\Collection;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Range;
-use Symfony\Component\Validator\Constraints\IsTrue;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-
-class AnnotationLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $reader = new AnnotationReader();
-        $loader = new AnnotationLoader($reader);
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $this->assertTrue($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
-    {
-        $loader = new AnnotationLoader(new AnnotationReader());
-        $metadata = new ClassMetadata('\stdClass');
-
-        $this->assertFalse($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $loader = new AnnotationLoader(new AnnotationReader());
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-        $expected->setGroupSequence(array('Foo', 'Entity'));
-        $expected->addConstraint(new ConstraintA());
-        $expected->addConstraint(new Callback(array('Symfony\Component\Validator\Tests\Fixtures\CallbackClass', 'callback')));
-        $expected->addConstraint(new Callback('validateMe'));
-        $expected->addConstraint(new Callback('validateMeStatic'));
-        $expected->addPropertyConstraint('firstName', new NotNull());
-        $expected->addPropertyConstraint('firstName', new Range(array('min' => 3)));
-        $expected->addPropertyConstraint('firstName', new All(array(new NotNull(), new Range(array('min' => 3)))));
-        $expected->addPropertyConstraint('firstName', new All(array('constraints' => array(new NotNull(), new Range(array('min' => 3))))));
-        $expected->addPropertyConstraint('firstName', new Collection(array('fields' => array(
-            'foo' => array(new NotNull(), new Range(array('min' => 3))),
-            'bar' => new Range(array('min' => 5)),
-        ))));
-        $expected->addPropertyConstraint('firstName', new Choice(array(
-            'message' => 'Must be one of %choices%',
-            'choices' => array('A', 'B'),
-        )));
-        $expected->addGetterConstraint('lastName', new NotNull());
-        $expected->addGetterConstraint('valid', new IsTrue());
-        $expected->addGetterConstraint('permissions', new IsTrue());
-
-        // load reflection class so that the comparison passes
-        $expected->getReflectionClass();
-
-        $this->assertEquals($expected, $metadata);
-    }
-
-    /**
-     * Test MetaData merge with parent annotation.
-     */
-    public function testLoadParentClassMetadata()
-    {
-        $loader = new AnnotationLoader(new AnnotationReader());
-
-        // Load Parent MetaData
-        $parent_metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\EntityParent');
-        $loader->loadClassMetadata($parent_metadata);
-
-        $expected_parent = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\EntityParent');
-        $expected_parent->addPropertyConstraint('other', new NotNull());
-        $expected_parent->getReflectionClass();
-
-        $this->assertEquals($expected_parent, $parent_metadata);
-    }
-    /**
-     * Test MetaData merge with parent annotation.
-     */
-    public function testLoadClassMetadataAndMerge()
-    {
-        $loader = new AnnotationLoader(new AnnotationReader());
-
-        // Load Parent MetaData
-        $parent_metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\EntityParent');
-        $loader->loadClassMetadata($parent_metadata);
-
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        // Merge parent metaData.
-        $metadata->mergeConstraints($parent_metadata);
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected_parent = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\EntityParent');
-        $expected_parent->addPropertyConstraint('other', new NotNull());
-        $expected_parent->getReflectionClass();
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-        $expected->mergeConstraints($expected_parent);
-
-        $expected->setGroupSequence(array('Foo', 'Entity'));
-        $expected->addConstraint(new ConstraintA());
-        $expected->addConstraint(new Callback(array('Symfony\Component\Validator\Tests\Fixtures\CallbackClass', 'callback')));
-        $expected->addConstraint(new Callback('validateMe'));
-        $expected->addConstraint(new Callback('validateMeStatic'));
-        $expected->addPropertyConstraint('firstName', new NotNull());
-        $expected->addPropertyConstraint('firstName', new Range(array('min' => 3)));
-        $expected->addPropertyConstraint('firstName', new All(array(new NotNull(), new Range(array('min' => 3)))));
-        $expected->addPropertyConstraint('firstName', new All(array('constraints' => array(new NotNull(), new Range(array('min' => 3))))));
-        $expected->addPropertyConstraint('firstName', new Collection(array('fields' => array(
-            'foo' => array(new NotNull(), new Range(array('min' => 3))),
-            'bar' => new Range(array('min' => 5)),
-        ))));
-        $expected->addPropertyConstraint('firstName', new Choice(array(
-            'message' => 'Must be one of %choices%',
-            'choices' => array('A', 'B'),
-        )));
-        $expected->addGetterConstraint('lastName', new NotNull());
-        $expected->addGetterConstraint('valid', new IsTrue());
-        $expected->addGetterConstraint('permissions', new IsTrue());
-
-        // load reflection class so that the comparison passes
-        $expected->getReflectionClass();
-
-        $this->assertEquals($expected, $metadata);
-    }
-
-    public function testLoadGroupSequenceProviderAnnotation()
-    {
-        $loader = new AnnotationLoader(new AnnotationReader());
-
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity');
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity');
-        $expected->setGroupSequenceProvider(true);
-        $expected->getReflectionClass();
-
-        $this->assertEquals($expected, $metadata);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/FilesLoaderTest.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/FilesLoaderTest.php
deleted file mode 100644
index 09e6e44..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/FilesLoaderTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
-
-class FilesLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCallsGetFileLoaderInstanceForeachPath()
-    {
-        $loader = $this->getFilesLoader($this->getFileLoader());
-        $this->assertEquals(4, $loader->getTimesCalled());
-    }
-
-    public function testCallsActualFileLoaderForMetadata()
-    {
-        $fileLoader = $this->getFileLoader();
-        $fileLoader->expects($this->exactly(4))
-            ->method('loadClassMetadata');
-        $loader = $this->getFilesLoader($fileLoader);
-        $loader->loadClassMetadata(new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity'));
-    }
-
-    public function getFilesLoader(LoaderInterface $loader)
-    {
-        return $this->getMockForAbstractClass('Symfony\Component\Validator\Tests\Fixtures\FilesLoader', array(array(
-            __DIR__.'/constraint-mapping.xml',
-            __DIR__.'/constraint-mapping.yaml',
-            __DIR__.'/constraint-mapping.test',
-            __DIR__.'/constraint-mapping.txt',
-        ), $loader));
-    }
-
-    public function getFileLoader()
-    {
-        return $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/LoaderChainTest.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/LoaderChainTest.php
deleted file mode 100644
index 647a568..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/LoaderChainTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
-
-class LoaderChainTest extends \PHPUnit_Framework_TestCase
-{
-    public function testAllLoadersAreCalled()
-    {
-        $metadata = new ClassMetadata('\stdClass');
-
-        $loader1 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $loader1->expects($this->once())
-                        ->method('loadClassMetadata')
-                        ->with($this->equalTo($metadata));
-
-        $loader2 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $loader2->expects($this->once())
-                        ->method('loadClassMetadata')
-                        ->with($this->equalTo($metadata));
-
-        $chain = new LoaderChain(array(
-            $loader1,
-            $loader2,
-        ));
-
-        $chain->loadClassMetadata($metadata);
-    }
-
-    public function testReturnsTrueIfAnyLoaderReturnedTrue()
-    {
-        $metadata = new ClassMetadata('\stdClass');
-
-        $loader1 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $loader1->expects($this->any())
-                        ->method('loadClassMetadata')
-                        ->will($this->returnValue(true));
-
-        $loader2 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $loader2->expects($this->any())
-                        ->method('loadClassMetadata')
-                        ->will($this->returnValue(false));
-
-        $chain = new LoaderChain(array(
-            $loader1,
-            $loader2,
-        ));
-
-        $this->assertTrue($chain->loadClassMetadata($metadata));
-    }
-
-    public function testReturnsFalseIfNoLoaderReturnedTrue()
-    {
-        $metadata = new ClassMetadata('\stdClass');
-
-        $loader1 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $loader1->expects($this->any())
-                        ->method('loadClassMetadata')
-                        ->will($this->returnValue(false));
-
-        $loader2 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
-        $loader2->expects($this->any())
-                        ->method('loadClassMetadata')
-                        ->will($this->returnValue(false));
-
-        $chain = new LoaderChain(array(
-            $loader1,
-            $loader2,
-        ));
-
-        $this->assertFalse($chain->loadClassMetadata($metadata));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/StaticMethodLoaderTest.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/StaticMethodLoaderTest.php
deleted file mode 100644
index 5829336..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/StaticMethodLoaderTest.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-
-class StaticMethodLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    private $errorLevel;
-
-    protected function setUp()
-    {
-        $this->errorLevel = error_reporting();
-    }
-
-    protected function tearDown()
-    {
-        error_reporting($this->errorLevel);
-    }
-
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderEntity');
-
-        $this->assertTrue($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
-    {
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata('\stdClass');
-
-        $this->assertFalse($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderEntity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $this->assertEquals(StaticLoaderEntity::$invokedWith, $metadata);
-    }
-
-    public function testLoadClassMetadataDoesNotRepeatLoadWithParentClasses()
-    {
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderDocument');
-        $loader->loadClassMetadata($metadata);
-        $this->assertCount(0, $metadata->getConstraints());
-
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata(__NAMESPACE__.'\BaseStaticLoaderDocument');
-        $loader->loadClassMetadata($metadata);
-        $this->assertCount(1, $metadata->getConstraints());
-    }
-
-    public function testLoadClassMetadataIgnoresInterfaces()
-    {
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderInterface');
-
-        $loader->loadClassMetadata($metadata);
-
-        $this->assertCount(0, $metadata->getConstraints());
-    }
-
-    public function testLoadClassMetadataInAbstractClasses()
-    {
-        $loader = new StaticMethodLoader('loadMetadata');
-        $metadata = new ClassMetadata(__NAMESPACE__.'\AbstractStaticLoader');
-
-        $loader->loadClassMetadata($metadata);
-
-        $this->assertCount(1, $metadata->getConstraints());
-    }
-
-    public function testLoadClassMetadataIgnoresAbstractMethods()
-    {
-        // Disable error reporting, as AbstractStaticMethodLoader produces a
-        // strict standards error
-        error_reporting(0);
-
-        if (0 !== error_reporting()) {
-            $this->markTestSkipped('Could not disable error reporting');
-        }
-
-        $metadata = new ClassMetadata(__NAMESPACE__.'\AbstractStaticMethodLoader');
-
-        $loader = new StaticMethodLoader('loadMetadata');
-        $loader->loadClassMetadata($metadata);
-
-        $this->assertCount(0, $metadata->getConstraints());
-    }
-}
-
-interface StaticLoaderInterface
-{
-    public static function loadMetadata(ClassMetadata $metadata);
-}
-
-abstract class AbstractStaticLoader
-{
-    public static function loadMetadata(ClassMetadata $metadata)
-    {
-        $metadata->addConstraint(new ConstraintA());
-    }
-}
-
-class StaticLoaderEntity
-{
-    public static $invokedWith = null;
-
-    public static function loadMetadata(ClassMetadata $metadata)
-    {
-        self::$invokedWith = $metadata;
-    }
-}
-
-class StaticLoaderDocument extends BaseStaticLoaderDocument
-{
-}
-
-class BaseStaticLoaderDocument
-{
-    public static function loadMetadata(ClassMetadata $metadata)
-    {
-        $metadata->addConstraint(new ConstraintA());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/XmlFileLoaderTest.php
deleted file mode 100644
index e6326b9..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/XmlFileLoaderTest.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\Choice;
-use Symfony\Component\Validator\Constraints\Collection;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Range;
-use Symfony\Component\Validator\Constraints\Regex;
-use Symfony\Component\Validator\Constraints\IsTrue;
-use Symfony\Component\Validator\Exception\MappingException;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Loader\XmlFileLoader;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
-
-class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $this->assertTrue($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
-        $metadata = new ClassMetadata('\stdClass');
-
-        $this->assertFalse($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-        $expected->setGroupSequence(array('Foo', 'Entity'));
-        $expected->addConstraint(new ConstraintA());
-        $expected->addConstraint(new ConstraintB());
-        $expected->addConstraint(new Callback('validateMe'));
-        $expected->addConstraint(new Callback('validateMeStatic'));
-        $expected->addConstraint(new Callback(array('Symfony\Component\Validator\Tests\Fixtures\CallbackClass', 'callback')));
-        $expected->addPropertyConstraint('firstName', new NotNull());
-        $expected->addPropertyConstraint('firstName', new Range(array('min' => 3)));
-        $expected->addPropertyConstraint('firstName', new Choice(array('A', 'B')));
-        $expected->addPropertyConstraint('firstName', new All(array(new NotNull(), new Range(array('min' => 3)))));
-        $expected->addPropertyConstraint('firstName', new All(array('constraints' => array(new NotNull(), new Range(array('min' => 3))))));
-        $expected->addPropertyConstraint('firstName', new Collection(array('fields' => array(
-            'foo' => array(new NotNull(), new Range(array('min' => 3))),
-            'bar' => array(new Range(array('min' => 5))),
-        ))));
-        $expected->addPropertyConstraint('firstName', new Choice(array(
-            'message' => 'Must be one of %choices%',
-            'choices' => array('A', 'B'),
-        )));
-        $expected->addGetterConstraint('lastName', new NotNull());
-        $expected->addGetterConstraint('valid', new IsTrue());
-        $expected->addGetterConstraint('permissions', new IsTrue());
-
-        $this->assertEquals($expected, $metadata);
-    }
-
-    public function testLoadClassMetadataWithNonStrings()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/constraint-mapping-non-strings.xml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-        $expected->addPropertyConstraint('firstName', new Regex(array('pattern' => '/^1/', 'match' => false)));
-
-        $properties = $metadata->getPropertyMetadata('firstName');
-        $constraints = $properties[0]->getConstraints();
-
-        $this->assertFalse($constraints[0]->match);
-    }
-
-    public function testLoadGroupSequenceProvider()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/constraint-mapping.xml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity');
-        $expected->setGroupSequenceProvider(true);
-
-        $this->assertEquals($expected, $metadata);
-    }
-
-    public function testThrowExceptionIfDocTypeIsSet()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/withdoctype.xml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $this->setExpectedException('\Symfony\Component\Validator\Exception\MappingException');
-        $loader->loadClassMetadata($metadata);
-    }
-
-    /**
-     * @see https://github.com/symfony/symfony/pull/12158
-     */
-    public function testDoNotModifyStateIfExceptionIsThrown()
-    {
-        $loader = new XmlFileLoader(__DIR__.'/withdoctype.xml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        try {
-            $loader->loadClassMetadata($metadata);
-        } catch (MappingException $e) {
-            $this->setExpectedException('\Symfony\Component\Validator\Exception\MappingException');
-            $loader->loadClassMetadata($metadata);
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/YamlFileLoaderTest.php b/core/vendor/symfony/validator/Tests/Mapping/Loader/YamlFileLoaderTest.php
deleted file mode 100644
index 407e369..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/YamlFileLoaderTest.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping\Loader;
-
-use Symfony\Component\Validator\Constraints\All;
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\Choice;
-use Symfony\Component\Validator\Constraints\Collection;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Range;
-use Symfony\Component\Validator\Constraints\IsTrue;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\Loader\YamlFileLoader;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
-
-class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLoadClassMetadataReturnsFalseIfEmpty()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/empty-mapping.yml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $this->assertFalse($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadataThrowsExceptionIfNotAnArray()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/nonvalid-mapping.yml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $this->setExpectedException('\InvalidArgumentException');
-        $loader->loadClassMetadata($metadata);
-    }
-
-    /**
-     * @see https://github.com/symfony/symfony/pull/12158
-     */
-    public function testDoNotModifyStateIfExceptionIsThrown()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/nonvalid-mapping.yml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-        try {
-            $loader->loadClassMetadata($metadata);
-        } catch (\InvalidArgumentException $e) {
-            // Call again. Again an exception should be thrown
-            $this->setExpectedException('\InvalidArgumentException');
-            $loader->loadClassMetadata($metadata);
-        }
-    }
-
-    public function testLoadClassMetadataReturnsTrueIfSuccessful()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/constraint-mapping.yml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $this->assertTrue($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/constraint-mapping.yml');
-        $metadata = new ClassMetadata('\stdClass');
-
-        $this->assertFalse($loader->loadClassMetadata($metadata));
-    }
-
-    public function testLoadClassMetadata()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/constraint-mapping.yml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
-        $expected->setGroupSequence(array('Foo', 'Entity'));
-        $expected->addConstraint(new ConstraintA());
-        $expected->addConstraint(new ConstraintB());
-        $expected->addConstraint(new Callback('validateMe'));
-        $expected->addConstraint(new Callback('validateMeStatic'));
-        $expected->addConstraint(new Callback(array('Symfony\Component\Validator\Tests\Fixtures\CallbackClass', 'callback')));
-        $expected->addPropertyConstraint('firstName', new NotNull());
-        $expected->addPropertyConstraint('firstName', new Range(array('min' => 3)));
-        $expected->addPropertyConstraint('firstName', new Choice(array('A', 'B')));
-        $expected->addPropertyConstraint('firstName', new All(array(new NotNull(), new Range(array('min' => 3)))));
-        $expected->addPropertyConstraint('firstName', new All(array('constraints' => array(new NotNull(), new Range(array('min' => 3))))));
-        $expected->addPropertyConstraint('firstName', new Collection(array('fields' => array(
-            'foo' => array(new NotNull(), new Range(array('min' => 3))),
-            'bar' => array(new Range(array('min' => 5))),
-        ))));
-        $expected->addPropertyConstraint('firstName', new Choice(array(
-            'message' => 'Must be one of %choices%',
-            'choices' => array('A', 'B'),
-        )));
-        $expected->addGetterConstraint('lastName', new NotNull());
-        $expected->addGetterConstraint('valid', new IsTrue());
-        $expected->addGetterConstraint('permissions', new IsTrue());
-
-        $this->assertEquals($expected, $metadata);
-    }
-
-    public function testLoadGroupSequenceProvider()
-    {
-        $loader = new YamlFileLoader(__DIR__.'/constraint-mapping.yml');
-        $metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity');
-
-        $loader->loadClassMetadata($metadata);
-
-        $expected = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity');
-        $expected->setGroupSequenceProvider(true);
-
-        $this->assertEquals($expected, $metadata);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml b/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml
deleted file mode 100644
index dfd5edd..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping-non-strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" ?>
-
-<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
-
-  <namespace prefix="custom">Symfony\Component\Validator\Tests\Fixtures\</namespace>
-
-  <class name="Symfony\Component\Validator\Tests\Fixtures\Entity">
-    <property name="firstName">
-      <!-- Constraint with a Boolean -->
-      <constraint name="Regex">
-          <option name="pattern">/^1/</option>
-          <option name="match">false</option>
-      </constraint>
-    </property>
-  </class>
-
-</constraint-mapping>
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml b/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml
deleted file mode 100644
index 689184e..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" ?>
-
-<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
-
-  <namespace prefix="custom">Symfony\Component\Validator\Tests\Fixtures\</namespace>
-
-  <class name="Symfony\Component\Validator\Tests\Fixtures\Entity">
-
-    <group-sequence>
-       <value>Foo</value>
-       <value>Entity</value>
-    </group-sequence>
-
-    <!-- CLASS CONSTRAINTS -->
-
-    <!-- Custom constraint -->
-    <constraint name="Symfony\Component\Validator\Tests\Fixtures\ConstraintA" />
-
-    <!-- Custom constraint with namespace abbreviation-->
-    <constraint name="custom:ConstraintB" />
-
-    <!-- Callbacks -->
-    <constraint name="Callback">validateMe</constraint>
-
-    <constraint name="Callback">validateMeStatic</constraint>
-
-    <constraint name="Callback">
-        <value>Symfony\Component\Validator\Tests\Fixtures\CallbackClass</value>
-        <value>callback</value>
-    </constraint>
-
-    <!-- PROPERTY CONSTRAINTS -->
-
-    <property name="firstName">
-
-      <!-- Constraint without value -->
-      <constraint name="NotNull" />
-
-      <!-- Constraint with single value -->
-      <constraint name="Range">
-         <option name="min">3</option>
-      </constraint>
-
-      <!-- Constraint with multiple values -->
-      <constraint name="Choice">
-        <value>A</value>
-        <value>B</value>
-      </constraint>
-
-      <!-- Constraint with child constraints -->
-      <constraint name="All">
-        <constraint name="NotNull" />
-        <constraint name="Range">
-           <option name="min">3</option>
-        </constraint>
-
-      </constraint>
-
-      <!-- Option with child constraints -->
-      <constraint name="All">
-        <option name="constraints">
-          <constraint name="NotNull" />
-          <constraint name="Range">
-             <option name="min">3</option>
-          </constraint>
-        </option>
-      </constraint>
-
-      <!-- Value with child constraints -->
-      <constraint name="Collection">
-        <option name="fields">
-          <value key="foo">
-            <constraint name="NotNull" />
-            <constraint name="Range">
-               <option name="min">3</option>
-            </constraint>
-          </value>
-          <value key="bar">
-            <constraint name="Range">
-               <option name="min">5</option>
-            </constraint>
-          </value>
-        </option>
-      </constraint>
-
-      <!-- Constraint with options -->
-      <constraint name="Choice">
-        <!-- Option with single value -->
-        <option name="message"> Must be one of %choices% </option>
-        <!-- Option with multiple values -->
-        <option name="choices">
-          <value>A</value>
-          <value>B</value>
-        </option>
-      </constraint>
-    </property>
-
-    <!-- GETTER CONSTRAINTS -->
-
-    <getter property="lastName">
-      <constraint name="NotNull" />
-    </getter>
-    <getter property="valid">
-      <constraint name="IsTrue" />
-    </getter>
-    <getter property="permissions">
-      <constraint name="IsTrue" />
-    </getter>
-  </class>
-
-  <class name="Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity">
-
-    <!-- GROUP SEQUENCE PROVIDER -->
-    <group-sequence-provider />
-
-  </class>
-</constraint-mapping>
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.yml b/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.yml
deleted file mode 100644
index c39168c..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/constraint-mapping.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-namespaces:
-  custom: Symfony\Component\Validator\Tests\Fixtures\
-
-Symfony\Component\Validator\Tests\Fixtures\Entity:
-  group_sequence:
-    - Foo
-    - Entity
-
-  constraints:
-    # Custom constraint
-    - Symfony\Component\Validator\Tests\Fixtures\ConstraintA: ~
-    # Custom constraint with namespaces prefix
-    - "custom:ConstraintB": ~
-    # Callbacks
-    - Callback: validateMe
-    - Callback: validateMeStatic
-    - Callback: [Symfony\Component\Validator\Tests\Fixtures\CallbackClass, callback]
-
-  properties:
-    firstName:
-      # Constraint without value
-      - NotNull: ~
-      # Constraint with single value
-      - Range:
-          min: 3
-      # Constraint with multiple values
-      - Choice: [A, B]
-      # Constraint with child constraints
-      - All:
-          - NotNull: ~
-          - Range:
-              min: 3
-      # Option with child constraints
-      - All:
-          constraints:
-            - NotNull: ~
-            - Range:
-                min: 3
-      # Value with child constraints
-      - Collection:
-          fields:
-            foo:
-              - NotNull: ~
-              - Range:
-                  min: 3
-            bar:
-              - Range:
-                  min: 5
-      # Constraint with options
-      - Choice: { choices: [A, B], message: Must be one of %choices% }
-    dummy:
-
-  getters:
-    lastName:
-      - NotNull: ~
-    valid:
-      - "IsTrue": ~
-    permissions:
-      - "IsTrue": ~
-
-Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity:
-  group_sequence_provider: true
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/empty-mapping.yml b/core/vendor/symfony/validator/Tests/Mapping/Loader/empty-mapping.yml
deleted file mode 100644
index e69de29..0000000
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/nonvalid-mapping.yml b/core/vendor/symfony/validator/Tests/Mapping/Loader/nonvalid-mapping.yml
deleted file mode 100644
index 257cc56..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/nonvalid-mapping.yml
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/core/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml b/core/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml
deleted file mode 100644
index 0beacc3..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/Loader/withdoctype.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE foo>
-<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
-  <class name="Symfony\Component\Validator\Tests\Fixtures\Entity" />
-</constraint-mapping>
diff --git a/core/vendor/symfony/validator/Tests/Mapping/MemberMetadataTest.php b/core/vendor/symfony/validator/Tests/Mapping/MemberMetadataTest.php
deleted file mode 100644
index fafde34..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/MemberMetadataTest.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping;
-
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\Mapping\MemberMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\ClassConstraint;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
-use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
-
-class MemberMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    protected $metadata;
-
-    protected function setUp()
-    {
-        $this->metadata = new TestMemberMetadata(
-            'Symfony\Component\Validator\Tests\Fixtures\Entity',
-            'getLastName',
-            'lastName'
-        );
-    }
-
-    protected function tearDown()
-    {
-        $this->metadata = null;
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAddValidSetsMemberToCascaded()
-    {
-        $result = $this->metadata->addConstraint(new Valid());
-
-        $this->assertEquals(array(), $this->metadata->getConstraints());
-        $this->assertEquals($result, $this->metadata);
-        $this->assertTrue($this->metadata->isCascaded());
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyAddOtherConstraintDoesNotSetMemberToCascaded()
-    {
-        $result = $this->metadata->addConstraint($constraint = new ConstraintA());
-
-        $this->assertEquals(array($constraint), $this->metadata->getConstraints());
-        $this->assertEquals($result, $this->metadata);
-        $this->assertFalse($this->metadata->isCascaded());
-    }
-
-    public function testAddConstraintRequiresClassConstraints()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\ConstraintDefinitionException');
-
-        $this->metadata->addConstraint(new ClassConstraint());
-    }
-
-    public function testSerialize()
-    {
-        $this->metadata->addConstraint(new ConstraintA(array('property1' => 'A')));
-        $this->metadata->addConstraint(new ConstraintB(array('groups' => 'TestGroup')));
-
-        $metadata = unserialize(serialize($this->metadata));
-
-        $this->assertEquals($this->metadata, $metadata);
-    }
-
-    public function testSerializeCollectionCascaded()
-    {
-        $this->metadata->addConstraint(new Valid(array('traverse' => true)));
-
-        $metadata = unserialize(serialize($this->metadata));
-
-        $this->assertEquals($this->metadata, $metadata);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacySerializeCollectionCascadedDeeply()
-    {
-        $this->metadata->addConstraint(new Valid(array('traverse' => true)));
-
-        $metadata = unserialize(serialize($this->metadata));
-
-        $this->assertEquals($this->metadata, $metadata);
-    }
-
-    public function testSerializeCollectionNotCascaded()
-    {
-        $this->metadata->addConstraint(new Valid(array('traverse' => false)));
-
-        $metadata = unserialize(serialize($this->metadata));
-
-        $this->assertEquals($this->metadata, $metadata);
-    }
-}
-
-class TestMemberMetadata extends MemberMetadata
-{
-    public function getPropertyValue($object)
-    {
-    }
-
-    protected function newReflectionMember($object)
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Mapping/PropertyMetadataTest.php b/core/vendor/symfony/validator/Tests/Mapping/PropertyMetadataTest.php
deleted file mode 100644
index f411d95..0000000
--- a/core/vendor/symfony/validator/Tests/Mapping/PropertyMetadataTest.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Mapping;
-
-use Symfony\Component\Validator\Mapping\PropertyMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-
-class PropertyMetadataTest extends \PHPUnit_Framework_TestCase
-{
-    const CLASSNAME = 'Symfony\Component\Validator\Tests\Fixtures\Entity';
-    const PARENTCLASS = 'Symfony\Component\Validator\Tests\Fixtures\EntityParent';
-
-    public function testInvalidPropertyName()
-    {
-        $this->setExpectedException('Symfony\Component\Validator\Exception\ValidatorException');
-
-        new PropertyMetadata(self::CLASSNAME, 'foobar');
-    }
-
-    public function testGetPropertyValueFromPrivateProperty()
-    {
-        $entity = new Entity('foobar');
-        $metadata = new PropertyMetadata(self::CLASSNAME, 'internal');
-
-        $this->assertEquals('foobar', $metadata->getPropertyValue($entity));
-    }
-
-    public function testGetPropertyValueFromOverriddenPrivateProperty()
-    {
-        $entity = new Entity('foobar');
-        $metadata = new PropertyMetadata(self::PARENTCLASS, 'data');
-
-        $this->assertTrue($metadata->isPublic($entity));
-        $this->assertEquals('Overridden data', $metadata->getPropertyValue($entity));
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Util/PropertyPathTest.php b/core/vendor/symfony/validator/Tests/Util/PropertyPathTest.php
deleted file mode 100644
index a8b9af9..0000000
--- a/core/vendor/symfony/validator/Tests/Util/PropertyPathTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Util;
-
-use Symfony\Component\Validator\Util\PropertyPath;
-
-class PropertyPathTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider provideAppendPaths
-     */
-    public function testAppend($basePath, $subPath, $expectedPath, $message)
-    {
-        $this->assertSame($expectedPath, PropertyPath::append($basePath, $subPath), $message);
-    }
-
-    public function provideAppendPaths()
-    {
-        return array(
-            array('foo', '', 'foo', 'It returns the basePath if subPath is empty'),
-            array('', 'bar', 'bar', 'It returns the subPath if basePath is empty'),
-            array('foo', 'bar', 'foo.bar', 'It append the subPath to the basePath'),
-            array('foo', '[bar]', 'foo[bar]', 'It does not include the dot separator if subPath uses the array notation'),
-            array('0', 'bar', '0.bar', 'Leading zeros are kept.'),
-        );
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Validator/Abstract2Dot5ApiTest.php b/core/vendor/symfony/validator/Tests/Validator/Abstract2Dot5ApiTest.php
deleted file mode 100644
index 12c8d87..0000000
--- a/core/vendor/symfony/validator/Tests/Validator/Abstract2Dot5ApiTest.php
+++ /dev/null
@@ -1,721 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Validator;
-
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\GroupSequence;
-use Symfony\Component\Validator\Constraints\NotNull;
-use Symfony\Component\Validator\Constraints\Traverse;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintViolationInterface;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-use Symfony\Component\Validator\Tests\Fixtures\FailingConstraint;
-use Symfony\Component\Validator\Tests\Fixtures\FakeClassMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\Reference;
-use Symfony\Component\Validator\Validator\ValidatorInterface;
-
-/**
- * Verifies that a validator satisfies the API of Symfony 2.5+.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class Abstract2Dot5ApiTest extends AbstractValidatorTest
-{
-    /**
-     * @var ValidatorInterface
-     */
-    protected $validator;
-
-    /**
-     * @param MetadataFactoryInterface $metadataFactory
-     *
-     * @return ValidatorInterface
-     */
-    abstract protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array());
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->validator = $this->createValidator($this->metadataFactory);
-    }
-
-    protected function validate($value, $constraints = null, $groups = null)
-    {
-        return $this->validator->validate($value, $constraints, $groups);
-    }
-
-    protected function validateProperty($object, $propertyName, $groups = null)
-    {
-        return $this->validator->validateProperty($object, $propertyName, $groups);
-    }
-
-    protected function validatePropertyValue($object, $propertyName, $value, $groups = null)
-    {
-        return $this->validator->validatePropertyValue($object, $propertyName, $value, $groups);
-    }
-
-    public function testValidateConstraintWithoutGroup()
-    {
-        $violations = $this->validator->validate(null, new NotNull());
-
-        $this->assertCount(1, $violations);
-    }
-
-    public function testValidateWithEmptyArrayAsConstraint()
-    {
-        $violations = $this->validator->validate('value', array());
-        $this->assertCount(0, $violations);
-    }
-
-    public function testGroupSequenceAbortsAfterFailedGroup()
-    {
-        $entity = new Entity();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message 1');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message 2');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => function () {},
-            'groups' => 'Group 1',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group 2',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 3',
-        )));
-
-        $sequence = new GroupSequence(array('Group 1', 'Group 2', 'Group 3'));
-        $violations = $this->validator->validate($entity, new Valid(), $sequence);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message 1', $violations[0]->getMessage());
-    }
-
-    public function testGroupSequenceIncludesReferences()
-    {
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Reference violation 1');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Reference violation 2');
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group 1',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 2',
-        )));
-
-        $sequence = new GroupSequence(array('Group 1', 'Entity'));
-        $violations = $this->validator->validate($entity, new Valid(), $sequence);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Reference violation 1', $violations[0]->getMessage());
-    }
-
-    public function testValidateInSeparateContext()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $violations = $context
-                ->getValidator()
-                // Since the validator is not context aware, the group must
-                // be passed explicitly
-                ->validate($value->reference, new Valid(), 'Group')
-            ;
-
-            /** @var ConstraintViolationInterface[] $violations */
-            $test->assertCount(1, $violations);
-            $test->assertSame('Message value', $violations[0]->getMessage());
-            $test->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-            $test->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-            $test->assertSame('', $violations[0]->getPropertyPath());
-            // The root is different as we're in a new context
-            $test->assertSame($entity->reference, $violations[0]->getRoot());
-            $test->assertSame($entity->reference, $violations[0]->getInvalidValue());
-            $test->assertNull($violations[0]->getPlural());
-            $test->assertNull($violations[0]->getCode());
-
-            // Verify that this method is called
-            $context->addViolation('Separate violation');
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity->reference, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validator->validate($entity, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $test->assertSame('Separate violation', $violations[0]->getMessage());
-    }
-
-    public function testValidateInContext()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
-            $previousValue = $context->getValue();
-            $previousObject = $context->getObject();
-            $previousMetadata = $context->getMetadata();
-            $previousPath = $context->getPropertyPath();
-            $previousGroup = $context->getGroup();
-
-            $context
-                ->getValidator()
-                ->inContext($context)
-                ->atPath('subpath')
-                ->validate($value->reference)
-            ;
-
-            // context changes shouldn't leak out of the validate() call
-            $test->assertSame($previousValue, $context->getValue());
-            $test->assertSame($previousObject, $context->getObject());
-            $test->assertSame($previousMetadata, $context->getMetadata());
-            $test->assertSame($previousPath, $context->getPropertyPath());
-            $test->assertSame($previousGroup, $context->getGroup());
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('subpath', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validator->validate($entity, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('subpath', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testValidateArrayInContext()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
-            $previousValue = $context->getValue();
-            $previousObject = $context->getObject();
-            $previousMetadata = $context->getMetadata();
-            $previousPath = $context->getPropertyPath();
-            $previousGroup = $context->getGroup();
-
-            $context
-                ->getValidator()
-                ->inContext($context)
-                ->atPath('subpath')
-                ->validate(array('key' => $value->reference))
-            ;
-
-            // context changes shouldn't leak out of the validate() call
-            $test->assertSame($previousValue, $context->getValue());
-            $test->assertSame($previousObject, $context->getObject());
-            $test->assertSame($previousMetadata, $context->getMetadata());
-            $test->assertSame($previousPath, $context->getPropertyPath());
-            $test->assertSame($previousGroup, $context->getGroup());
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('subpath[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validator->validate($entity, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('subpath[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testTraverseTraversableByDefault()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array('key' => $entity));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, $traversable) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($traversable, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadataFactory->addMetadata(new ClassMetadata('ArrayIterator'));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($traversable, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($traversable, $violations[0]->getRoot());
-        $this->assertSame($entity, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testTraversalEnabledOnClass()
-    {
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array('key' => $entity));
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $traversableMetadata = new ClassMetadata('ArrayIterator');
-        $traversableMetadata->addConstraint(new Traverse(true));
-
-        $this->metadataFactory->addMetadata($traversableMetadata);
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($traversable, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    public function testTraversalDisabledOnClass()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array('key' => $entity));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
-        };
-
-        $traversableMetadata = new ClassMetadata('ArrayIterator');
-        $traversableMetadata->addConstraint(new Traverse(false));
-
-        $this->metadataFactory->addMetadata($traversableMetadata);
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($traversable, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\ConstraintDefinitionException
-     */
-    public function testExpectTraversableIfTraversalEnabledOnClass()
-    {
-        $entity = new Entity();
-
-        $this->metadata->addConstraint(new Traverse(true));
-
-        $this->validator->validate($entity);
-    }
-
-    public function testReferenceTraversalDisabledOnClass()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator(array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
-        };
-
-        $traversableMetadata = new ClassMetadata('ArrayIterator');
-        $traversableMetadata->addConstraint(new Traverse(false));
-
-        $this->metadataFactory->addMetadata($traversableMetadata);
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $violations = $this->validate($entity, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    public function testReferenceTraversalEnabledOnReferenceDisabledOnClass()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator(array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
-        };
-
-        $traversableMetadata = new ClassMetadata('ArrayIterator');
-        $traversableMetadata->addConstraint(new Traverse(false));
-
-        $this->metadataFactory->addMetadata($traversableMetadata);
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => true,
-        )));
-
-        $violations = $this->validate($entity, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    public function testReferenceTraversalDisabledOnReferenceEnabledOnClass()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator(array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->fail('Should not be called');
-        };
-
-        $traversableMetadata = new ClassMetadata('ArrayIterator');
-        $traversableMetadata->addConstraint(new Traverse(true));
-
-        $this->metadataFactory->addMetadata($traversableMetadata);
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => false,
-        )));
-
-        $violations = $this->validate($entity, new Valid(), 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    public function testAddCustomizedViolation()
-    {
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->buildViolation('Message %param%')
-                ->setParameter('%param%', 'value')
-                ->setInvalidValue('Invalid value')
-                ->setPlural(2)
-                ->setCode(42)
-                ->addViolation();
-        };
-
-        $this->metadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validator->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Invalid value', $violations[0]->getInvalidValue());
-        $this->assertSame(2, $violations[0]->getPlural());
-        $this->assertSame(42, $violations[0]->getCode());
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
-     */
-    public function testMetadataMustImplementClassMetadataInterface()
-    {
-        $entity = new Entity();
-
-        $metadata = $this->getMock('Symfony\Component\Validator\Tests\Fixtures\LegacyClassMetadata');
-        $metadata->expects($this->any())
-            ->method('getClassName')
-            ->will($this->returnValue(get_class($entity)));
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $this->validator->validate($entity);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
-     */
-    public function testReferenceMetadataMustImplementClassMetadataInterface()
-    {
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $metadata = $this->getMock('Symfony\Component\Validator\Tests\Fixtures\LegacyClassMetadata');
-        $metadata->expects($this->any())
-            ->method('getClassName')
-            ->will($this->returnValue(get_class($entity->reference)));
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $this->validator->validate($entity);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
-     * @group legacy
-     */
-    public function testLegacyPropertyMetadataMustImplementPropertyMetadataInterface()
-    {
-        $entity = new Entity();
-
-        // Legacy interface
-        $propertyMetadata = $this->getMock('Symfony\Component\Validator\MetadataInterface');
-        $metadata = new FakeClassMetadata(get_class($entity));
-        $metadata->addCustomPropertyMetadata('firstName', $propertyMetadata);
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $this->validator->validate($entity);
-    }
-
-    public function testNoDuplicateValidationIfClassConstraintInMultipleGroups()
-    {
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => array('Group 1', 'Group 2'),
-        )));
-
-        $violations = $this->validator->validate($entity, new Valid(), array('Group 1', 'Group 2'));
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    public function testNoDuplicateValidationIfPropertyConstraintInMultipleGroups()
-    {
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $this->metadata->addPropertyConstraint('firstName', new Callback(array(
-            'callback' => $callback,
-            'groups' => array('Group 1', 'Group 2'),
-        )));
-
-        $violations = $this->validator->validate($entity, new Valid(), array('Group 1', 'Group 2'));
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\RuntimeException
-     */
-    public function testValidateFailsIfNoConstraintsAndNoObjectOrArray()
-    {
-        $this->validate('Foobar');
-    }
-
-    public function testAccessCurrentObject()
-    {
-        $test = $this;
-        $called = false;
-        $entity = new Entity();
-        $entity->firstName = 'Bernhard';
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, &$called) {
-            $called = true;
-            $test->assertSame($entity, $context->getObject());
-        };
-
-        $this->metadata->addConstraint(new Callback($callback));
-        $this->metadata->addPropertyConstraint('firstName', new Callback($callback));
-
-        $this->validator->validate($entity);
-
-        $this->assertTrue($called);
-    }
-
-    public function testInitializeObjectsOnFirstValidation()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->initialized = false;
-
-        // prepare initializers that set "initialized" to true
-        $initializer1 = $this->getMock('Symfony\\Component\\Validator\\ObjectInitializerInterface');
-        $initializer2 = $this->getMock('Symfony\\Component\\Validator\\ObjectInitializerInterface');
-
-        $initializer1->expects($this->once())
-            ->method('initialize')
-            ->with($entity)
-            ->will($this->returnCallback(function ($object) {
-                $object->initialized = true;
-            }));
-
-        $initializer2->expects($this->once())
-            ->method('initialize')
-            ->with($entity);
-
-        $this->validator = $this->createValidator($this->metadataFactory, array(
-            $initializer1,
-            $initializer2,
-        ));
-
-        // prepare constraint which
-        // * checks that "initialized" is set to true
-        // * validates the object again
-        $callback = function ($object, ExecutionContextInterface $context) use ($test) {
-            $test->assertTrue($object->initialized);
-
-            // validate again in same group
-            $validator = $context->getValidator()->inContext($context);
-
-            $validator->validate($object);
-
-            // validate again in other group
-            $validator->validate($object, null, 'SomeGroup');
-        };
-
-        $this->metadata->addConstraint(new Callback($callback));
-
-        $this->validate($entity);
-
-        $this->assertTrue($entity->initialized);
-    }
-
-    public function testPassConstraintToViolation()
-    {
-        $constraint = new FailingConstraint();
-        $violations = $this->validate('Foobar', $constraint);
-
-        $this->assertCount(1, $violations);
-        $this->assertSame($constraint, $violations[0]->getConstraint());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Validator/AbstractLegacyApiTest.php b/core/vendor/symfony/validator/Tests/Validator/AbstractLegacyApiTest.php
deleted file mode 100644
index 5f4167d..0000000
--- a/core/vendor/symfony/validator/Tests/Validator/AbstractLegacyApiTest.php
+++ /dev/null
@@ -1,313 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Validator;
-
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintViolationInterface;
-use Symfony\Component\Validator\ExecutionContextInterface;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-use Symfony\Component\Validator\Tests\Fixtures\Reference;
-use Symfony\Component\Validator\ValidatorInterface as LegacyValidatorInterface;
-
-/**
- * Verifies that a validator satisfies the API of Symfony < 2.5.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class AbstractLegacyApiTest extends AbstractValidatorTest
-{
-    /**
-     * @var LegacyValidatorInterface
-     */
-    protected $validator;
-
-    /**
-     * @param MetadataFactoryInterface $metadataFactory
-     *
-     * @return LegacyValidatorInterface
-     */
-    abstract protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array());
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->validator = $this->createValidator($this->metadataFactory);
-    }
-
-    protected function validate($value, $constraints = null, $groups = null)
-    {
-        if (null === $constraints) {
-            $constraints = new Valid();
-        }
-
-        if ($constraints instanceof Valid) {
-            return $this->validator->validate($value, $groups, $constraints->traverse, $constraints->deep);
-        }
-
-        return $this->validator->validateValue($value, $constraints, $groups);
-    }
-
-    protected function validateProperty($object, $propertyName, $groups = null)
-    {
-        return $this->validator->validateProperty($object, $propertyName, $groups);
-    }
-
-    protected function validatePropertyValue($object, $propertyName, $value, $groups = null)
-    {
-        return $this->validator->validatePropertyValue($object, $propertyName, $value, $groups);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\NoSuchMetadataException
-     */
-    public function testTraversableTraverseDisabled()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array('key' => $entity));
-
-        $callback = function () use ($test) {
-            $test->fail('Should not be called');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $this->validator->validate($traversable, 'Group');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\NoSuchMetadataException
-     */
-    public function testRecursiveTraversableRecursiveTraversalDisabled()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array(
-            2 => new \ArrayIterator(array('key' => $entity)),
-        ));
-
-        $callback = function () use ($test) {
-            $test->fail('Should not be called');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $this->validator->validate($traversable, 'Group');
-    }
-
-    public function testValidateInContext()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
-            $previousValue = $context->getValue();
-            $previousMetadata = $context->getMetadata();
-            $previousPath = $context->getPropertyPath();
-            $previousGroup = $context->getGroup();
-
-            $context->validate($value->reference, 'subpath');
-
-            // context changes shouldn't leak out of the validate() call
-            $test->assertSame($previousValue, $context->getValue());
-            $test->assertSame($previousMetadata, $context->getMetadata());
-            $test->assertSame($previousPath, $context->getPropertyPath());
-            $test->assertSame($previousGroup, $context->getGroup());
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('subpath', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($test->metadataFactory, $context->getMetadataFactory());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validator->validate($entity, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('subpath', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testValidateArrayInContext()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
-            $previousValue = $context->getValue();
-            $previousMetadata = $context->getMetadata();
-            $previousPath = $context->getPropertyPath();
-            $previousGroup = $context->getGroup();
-
-            $context->validate(array('key' => $value->reference), 'subpath');
-
-            // context changes shouldn't leak out of the validate() call
-            $test->assertSame($previousValue, $context->getValue());
-            $test->assertSame($previousMetadata, $context->getMetadata());
-            $test->assertSame($previousPath, $context->getPropertyPath());
-            $test->assertSame($previousGroup, $context->getGroup());
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('subpath[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($test->metadataFactory, $context->getMetadataFactory());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validator->validate($entity, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('subpath[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testAddCustomizedViolation()
-    {
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation(
-                'Message %param%',
-                array('%param%' => 'value'),
-                'Invalid value',
-                2,
-                'Code'
-            );
-        };
-
-        $this->metadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validator->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Invalid value', $violations[0]->getInvalidValue());
-        $this->assertSame(2, $violations[0]->getPlural());
-        $this->assertSame('Code', $violations[0]->getCode());
-    }
-
-    public function testInitializeObjectsOnFirstValidation()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->initialized = false;
-
-        // prepare initializers that set "initialized" to true
-        $initializer1 = $this->getMock('Symfony\\Component\\Validator\\ObjectInitializerInterface');
-        $initializer2 = $this->getMock('Symfony\\Component\\Validator\\ObjectInitializerInterface');
-
-        $initializer1->expects($this->once())
-            ->method('initialize')
-            ->with($entity)
-            ->will($this->returnCallback(function ($object) {
-                $object->initialized = true;
-            }));
-
-        $initializer2->expects($this->once())
-            ->method('initialize')
-            ->with($entity);
-
-        $this->validator = $this->createValidator($this->metadataFactory, array(
-            $initializer1,
-            $initializer2,
-        ));
-
-        // prepare constraint which
-        // * checks that "initialized" is set to true
-        // * validates the object again
-        $callback = function ($object, ExecutionContextInterface $context) use ($test) {
-            $test->assertTrue($object->initialized);
-
-            // validate again in same group
-            $context->validate($object);
-
-            // validate again in other group
-            $context->validate($object, '', 'SomeGroup');
-        };
-
-        $this->metadata->addConstraint(new Callback($callback));
-
-        $this->validate($entity);
-
-        $this->assertTrue($entity->initialized);
-    }
-
-    public function testGetMetadataFactory()
-    {
-        $this->assertSame($this->metadataFactory, $this->validator->getMetadataFactory());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php b/core/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php
deleted file mode 100644
index 69c025d..0000000
--- a/core/vendor/symfony/validator/Tests/Validator/AbstractValidatorTest.php
+++ /dev/null
@@ -1,1284 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Validator;
-
-use Symfony\Component\Validator\Constraints\Callback;
-use Symfony\Component\Validator\Constraints\GroupSequence;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintViolationInterface;
-use Symfony\Component\Validator\ExecutionContextInterface;
-use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-use Symfony\Component\Validator\Tests\Fixtures\FakeMetadataFactory;
-use Symfony\Component\Validator\Tests\Fixtures\GroupSequenceProviderEntity;
-use Symfony\Component\Validator\Tests\Fixtures\Reference;
-
-/**
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase
-{
-    const ENTITY_CLASS = 'Symfony\Component\Validator\Tests\Fixtures\Entity';
-
-    const REFERENCE_CLASS = 'Symfony\Component\Validator\Tests\Fixtures\Reference';
-
-    /**
-     * @var FakeMetadataFactory
-     */
-    public $metadataFactory;
-
-    /**
-     * @var ClassMetadata
-     */
-    public $metadata;
-
-    /**
-     * @var ClassMetadata
-     */
-    public $referenceMetadata;
-
-    protected function setUp()
-    {
-        $this->metadataFactory = new FakeMetadataFactory();
-        $this->metadata = new ClassMetadata(self::ENTITY_CLASS);
-        $this->referenceMetadata = new ClassMetadata(self::REFERENCE_CLASS);
-        $this->metadataFactory->addMetadata($this->metadata);
-        $this->metadataFactory->addMetadata($this->referenceMetadata);
-    }
-
-    protected function tearDown()
-    {
-        $this->metadataFactory = null;
-        $this->metadata = null;
-        $this->referenceMetadata = null;
-    }
-
-    abstract protected function validate($value, $constraints = null, $groups = null);
-
-    abstract protected function validateProperty($object, $propertyName, $groups = null);
-
-    abstract protected function validatePropertyValue($object, $propertyName, $value, $groups = null);
-
-    public function testValidate()
-    {
-        $test = $this;
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test) {
-            $test->assertNull($context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame('Bernhard', $context->getRoot());
-            $test->assertSame('Bernhard', $context->getValue());
-            $test->assertSame('Bernhard', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $constraint = new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        ));
-
-        $violations = $this->validate('Bernhard', $constraint, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('', $violations[0]->getPropertyPath());
-        $this->assertSame('Bernhard', $violations[0]->getRoot());
-        $this->assertSame('Bernhard', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testClassConstraint()
-    {
-        $test = $this;
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testPropertyConstraint()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->firstName = 'Bernhard';
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $propertyMetadatas = $test->metadata->getPropertyMetadata('firstName');
-
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertSame('firstName', $context->getPropertyName());
-            $test->assertSame('firstName', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame('Bernhard', $context->getValue());
-            $test->assertSame('Bernhard', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('firstName', new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('firstName', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Bernhard', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testGetterConstraint()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->setLastName('Schussek');
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $propertyMetadatas = $test->metadata->getPropertyMetadata('lastName');
-
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertSame('lastName', $context->getPropertyName());
-            $test->assertSame('lastName', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame('Schussek', $context->getValue());
-            $test->assertSame('Schussek', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addGetterConstraint('lastName', new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('lastName', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Schussek', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testArray()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $array = array('key' => $entity);
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, $array) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($array, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($array, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($array, $violations[0]->getRoot());
-        $this->assertSame($entity, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testRecursiveArray()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $array = array(2 => array('key' => $entity));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, $array) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('[2][key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($array, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($array, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('[2][key]', $violations[0]->getPropertyPath());
-        $this->assertSame($array, $violations[0]->getRoot());
-        $this->assertSame($entity, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testTraversable()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array('key' => $entity));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, $traversable) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($traversable, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($traversable, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($traversable, $violations[0]->getRoot());
-        $this->assertSame($entity, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testRecursiveTraversable()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $traversable = new \ArrayIterator(array(
-            2 => new \ArrayIterator(array('key' => $entity)),
-        ));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity, $traversable) {
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('[2][key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->metadata, $context->getMetadata());
-            $test->assertSame($traversable, $context->getRoot());
-            $test->assertSame($entity, $context->getValue());
-            $test->assertSame($entity, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($traversable, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('[2][key]', $violations[0]->getPropertyPath());
-        $this->assertSame($traversable, $violations[0]->getRoot());
-        $this->assertSame($entity, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testReferenceClassConstraint()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('reference', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference, $context->getValue());
-            $test->assertSame($entity->reference, $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference, $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testReferencePropertyConstraint()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-        $entity->reference->value = 'Foobar';
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $propertyMetadatas = $test->referenceMetadata->getPropertyMetadata('value');
-
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertSame('value', $context->getPropertyName());
-            $test->assertSame('reference.value', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame('Foobar', $context->getValue());
-            $test->assertSame('Foobar', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addPropertyConstraint('value', new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference.value', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Foobar', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testReferenceGetterConstraint()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new Reference();
-        $entity->reference->setPrivateValue('Bamboo');
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $propertyMetadatas = $test->referenceMetadata->getPropertyMetadata('privateValue');
-
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertSame('privateValue', $context->getPropertyName());
-            $test->assertSame('reference.privateValue', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame('Bamboo', $context->getValue());
-            $test->assertSame('Bamboo', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addPropertyConstraint('privateValue', new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference.privateValue', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Bamboo', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testsIgnoreNullReference()
-    {
-        $entity = new Entity();
-        $entity->reference = null;
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\NoSuchMetadataException
-     */
-    public function testFailOnScalarReferences()
-    {
-        $entity = new Entity();
-        $entity->reference = 'string';
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $this->validate($entity);
-    }
-
-    public function testArrayReference()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = array('key' => new Reference());
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('reference[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference['key'], $context->getValue());
-            $test->assertSame($entity->reference['key'], $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference['key'], $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    // https://github.com/symfony/symfony/issues/6246
-    public function testRecursiveArrayReference()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = array(2 => array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('reference[2][key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference[2]['key'], $context->getValue());
-            $test->assertSame($entity->reference[2]['key'], $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference[2][key]', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference[2]['key'], $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testArrayTraversalCannotBeDisabled()
-    {
-        $entity = new Entity();
-        $entity->reference = array('key' => new Reference());
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => false,
-        )));
-        $this->referenceMetadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    public function testRecursiveArrayTraversalCannotBeDisabled()
-    {
-        $entity = new Entity();
-        $entity->reference = array(2 => array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => false,
-        )));
-        $this->referenceMetadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    public function testIgnoreScalarsDuringArrayTraversal()
-    {
-        $entity = new Entity();
-        $entity->reference = array('string', 1234);
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    public function testIgnoreNullDuringArrayTraversal()
-    {
-        $entity = new Entity();
-        $entity->reference = array(null);
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    public function testTraversableReference()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator(array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('reference[key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference['key'], $context->getValue());
-            $test->assertSame($entity->reference['key'], $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference[key]', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference['key'], $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testDisableTraversableTraversal()
-    {
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator(array('key' => new Reference()));
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadataFactory->addMetadata(new ClassMetadata('ArrayIterator'));
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => false,
-        )));
-        $this->referenceMetadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(0, $violations);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Validator\Exception\NoSuchMetadataException
-     */
-    public function testMetadataMustExistIfTraversalIsDisabled()
-    {
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator();
-
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => false,
-        )));
-
-        $this->validate($entity);
-    }
-
-    public function testEnableRecursiveTraversableTraversal()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->reference = new \ArrayIterator(array(
-            2 => new \ArrayIterator(array('key' => new Reference())),
-        ));
-
-        $callback = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $test->assertSame($test::REFERENCE_CLASS, $context->getClassName());
-            $test->assertNull($context->getPropertyName());
-            $test->assertSame('reference[2][key]', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($test->referenceMetadata, $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame($entity->reference[2]['key'], $context->getValue());
-            $test->assertSame($entity->reference[2]['key'], $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid(array(
-            'traverse' => true,
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('reference[2][key]', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame($entity->reference[2]['key'], $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testValidateProperty()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->firstName = 'Bernhard';
-        $entity->setLastName('Schussek');
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $propertyMetadatas = $test->metadata->getPropertyMetadata('firstName');
-
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertSame('firstName', $context->getPropertyName());
-            $test->assertSame('firstName', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame('Bernhard', $context->getValue());
-            $test->assertSame('Bernhard', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Other violation');
-        };
-
-        $this->metadata->addPropertyConstraint('firstName', new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->metadata->addPropertyConstraint('lastName', new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validateProperty($entity, 'firstName', 'Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('firstName', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Bernhard', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    /**
-     * Cannot be UnsupportedMetadataException for BC with Symfony < 2.5.
-     *
-     * @expectedException \Symfony\Component\Validator\Exception\ValidatorException
-     * @group legacy
-     */
-    public function testLegacyValidatePropertyFailsIfPropertiesNotSupported()
-    {
-        // $metadata does not implement PropertyMetadataContainerInterface
-        $metadata = $this->getMock('Symfony\Component\Validator\MetadataInterface');
-
-        $this->metadataFactory->addMetadataForValue('VALUE', $metadata);
-
-        $this->validateProperty('VALUE', 'someProperty');
-    }
-
-    /**
-     * https://github.com/symfony/symfony/issues/11604
-     */
-    public function testValidatePropertyWithoutConstraints()
-    {
-        $entity = new Entity();
-        $violations = $this->validateProperty($entity, 'lastName');
-
-        $this->assertCount(0, $violations, '->validateProperty() returns no violations if no constraints have been configured for the property being validated');
-    }
-
-    public function testValidatePropertyValue()
-    {
-        $test = $this;
-        $entity = new Entity();
-        $entity->setLastName('Schussek');
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test, $entity) {
-            $propertyMetadatas = $test->metadata->getPropertyMetadata('firstName');
-
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertSame('firstName', $context->getPropertyName());
-            $test->assertSame('firstName', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame($entity, $context->getRoot());
-            $test->assertSame('Bernhard', $context->getValue());
-            $test->assertSame('Bernhard', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Other violation');
-        };
-
-        $this->metadata->addPropertyConstraint('firstName', new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->metadata->addPropertyConstraint('lastName', new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validatePropertyValue(
-            $entity,
-            'firstName',
-            'Bernhard',
-            'Group'
-        );
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('firstName', $violations[0]->getPropertyPath());
-        $this->assertSame($entity, $violations[0]->getRoot());
-        $this->assertSame('Bernhard', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    public function testValidatePropertyValueWithClassName()
-    {
-        $test = $this;
-
-        $callback1 = function ($value, ExecutionContextInterface $context) use ($test) {
-            $propertyMetadatas = $test->metadata->getPropertyMetadata('firstName');
-
-            $test->assertSame($test::ENTITY_CLASS, $context->getClassName());
-            $test->assertSame('firstName', $context->getPropertyName());
-            $test->assertSame('', $context->getPropertyPath());
-            $test->assertSame('Group', $context->getGroup());
-            $test->assertSame($propertyMetadatas[0], $context->getMetadata());
-            $test->assertSame('Bernhard', $context->getRoot());
-            $test->assertSame('Bernhard', $context->getValue());
-            $test->assertSame('Bernhard', $value);
-
-            $context->addViolation('Message %param%', array('%param%' => 'value'));
-        };
-
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Other violation');
-        };
-
-        $this->metadata->addPropertyConstraint('firstName', new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group',
-        )));
-        $this->metadata->addPropertyConstraint('lastName', new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group',
-        )));
-
-        $violations = $this->validatePropertyValue(
-            self::ENTITY_CLASS,
-            'firstName',
-            'Bernhard',
-            'Group'
-        );
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Message value', $violations[0]->getMessage());
-        $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
-        $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
-        $this->assertSame('', $violations[0]->getPropertyPath());
-        $this->assertSame('Bernhard', $violations[0]->getRoot());
-        $this->assertSame('Bernhard', $violations[0]->getInvalidValue());
-        $this->assertNull($violations[0]->getPlural());
-        $this->assertNull($violations[0]->getCode());
-    }
-
-    /**
-     * Cannot be UnsupportedMetadataException for BC with Symfony < 2.5.
-     *
-     * @expectedException \Symfony\Component\Validator\Exception\ValidatorException
-     * @group legacy
-     */
-    public function testLegacyValidatePropertyValueFailsIfPropertiesNotSupported()
-    {
-        // $metadata does not implement PropertyMetadataContainerInterface
-        $metadata = $this->getMock('Symfony\Component\Validator\MetadataInterface');
-
-        $this->metadataFactory->addMetadataForValue('VALUE', $metadata);
-
-        $this->validatePropertyValue('VALUE', 'someProperty', 'someValue');
-    }
-
-    /**
-     * https://github.com/symfony/symfony/issues/11604
-     */
-    public function testValidatePropertyValueWithoutConstraints()
-    {
-        $entity = new Entity();
-        $violations = $this->validatePropertyValue($entity, 'lastName', 'foo');
-
-        $this->assertCount(0, $violations, '->validatePropertyValue() returns no violations if no constraints have been configured for the property being validated');
-    }
-
-    public function testValidateObjectOnlyOncePerGroup()
-    {
-        $entity = new Entity();
-        $entity->reference = new Reference();
-        $entity->reference2 = $entity->reference;
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->metadata->addPropertyConstraint('reference2', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    public function testValidateDifferentObjectsSeparately()
-    {
-        $entity = new Entity();
-        $entity->reference = new Reference();
-        $entity->reference2 = new Reference();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->metadata->addPropertyConstraint('reference2', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback($callback));
-
-        $violations = $this->validate($entity);
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(2, $violations);
-    }
-
-    public function testValidateSingleGroup()
-    {
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group 1',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group 2',
-        )));
-
-        $violations = $this->validate($entity, null, 'Group 2');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-    }
-
-    public function testValidateMultipleGroups()
-    {
-        $entity = new Entity();
-
-        $callback = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Message');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group 1',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback,
-            'groups' => 'Group 2',
-        )));
-
-        $violations = $this->validate($entity, null, array('Group 1', 'Group 2'));
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(2, $violations);
-    }
-
-    public function testReplaceDefaultGroupByGroupSequenceObject()
-    {
-        $entity = new Entity();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 2');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 3');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => function () {},
-            'groups' => 'Group 1',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group 2',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 3',
-        )));
-
-        $sequence = new GroupSequence(array('Group 1', 'Group 2', 'Group 3', 'Entity'));
-        $this->metadata->setGroupSequence($sequence);
-
-        $violations = $this->validate($entity, null, 'Default');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Violation in Group 2', $violations[0]->getMessage());
-    }
-
-    public function testReplaceDefaultGroupByGroupSequenceArray()
-    {
-        $entity = new Entity();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 2');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 3');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => function () {},
-            'groups' => 'Group 1',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group 2',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 3',
-        )));
-
-        $sequence = array('Group 1', 'Group 2', 'Group 3', 'Entity');
-        $this->metadata->setGroupSequence($sequence);
-
-        $violations = $this->validate($entity, null, 'Default');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Violation in Group 2', $violations[0]->getMessage());
-    }
-
-    public function testPropagateDefaultGroupToReferenceWhenReplacingDefaultGroup()
-    {
-        $entity = new Entity();
-        $entity->reference = new Reference();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Default group');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in group sequence');
-        };
-
-        $this->metadata->addPropertyConstraint('reference', new Valid());
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Default',
-        )));
-        $this->referenceMetadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 1',
-        )));
-
-        $sequence = new GroupSequence(array('Group 1', 'Entity'));
-        $this->metadata->setGroupSequence($sequence);
-
-        $violations = $this->validate($entity, null, 'Default');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Violation in Default group', $violations[0]->getMessage());
-    }
-
-    public function testValidateCustomGroupWhenDefaultGroupWasReplaced()
-    {
-        $entity = new Entity();
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in other group');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in group sequence');
-        };
-
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Other Group',
-        )));
-        $this->metadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 1',
-        )));
-
-        $sequence = new GroupSequence(array('Group 1', 'Entity'));
-        $this->metadata->setGroupSequence($sequence);
-
-        $violations = $this->validate($entity, null, 'Other Group');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Violation in other group', $violations[0]->getMessage());
-    }
-
-    public function testReplaceDefaultGroupWithObjectFromGroupSequenceProvider()
-    {
-        $sequence = new GroupSequence(array('Group 1', 'Group 2', 'Group 3', 'Entity'));
-        $entity = new GroupSequenceProviderEntity($sequence);
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 2');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 3');
-        };
-
-        $metadata = new ClassMetadata(get_class($entity));
-        $metadata->addConstraint(new Callback(array(
-            'callback' => function () {},
-            'groups' => 'Group 1',
-        )));
-        $metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group 2',
-        )));
-        $metadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 3',
-        )));
-        $metadata->setGroupSequenceProvider(true);
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $violations = $this->validate($entity, null, 'Default');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Violation in Group 2', $violations[0]->getMessage());
-    }
-
-    public function testReplaceDefaultGroupWithArrayFromGroupSequenceProvider()
-    {
-        $sequence = array('Group 1', 'Group 2', 'Group 3', 'Entity');
-        $entity = new GroupSequenceProviderEntity($sequence);
-
-        $callback1 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 2');
-        };
-        $callback2 = function ($value, ExecutionContextInterface $context) {
-            $context->addViolation('Violation in Group 3');
-        };
-
-        $metadata = new ClassMetadata(get_class($entity));
-        $metadata->addConstraint(new Callback(array(
-            'callback' => function () {},
-            'groups' => 'Group 1',
-        )));
-        $metadata->addConstraint(new Callback(array(
-            'callback' => $callback1,
-            'groups' => 'Group 2',
-        )));
-        $metadata->addConstraint(new Callback(array(
-            'callback' => $callback2,
-            'groups' => 'Group 3',
-        )));
-        $metadata->setGroupSequenceProvider(true);
-
-        $this->metadataFactory->addMetadata($metadata);
-
-        $violations = $this->validate($entity, null, 'Default');
-
-        /** @var ConstraintViolationInterface[] $violations */
-        $this->assertCount(1, $violations);
-        $this->assertSame('Violation in Group 2', $violations[0]->getMessage());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Validator/LegacyValidator2Dot5ApiTest.php b/core/vendor/symfony/validator/Tests/Validator/LegacyValidator2Dot5ApiTest.php
deleted file mode 100644
index fd1287f..0000000
--- a/core/vendor/symfony/validator/Tests/Validator/LegacyValidator2Dot5ApiTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Validator;
-
-use Symfony\Component\Translation\IdentityTranslator;
-use Symfony\Component\Validator\ConstraintValidatorFactory;
-use Symfony\Component\Validator\Context\LegacyExecutionContextFactory;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Validator\LegacyValidator;
-
-/**
- * @group legacy
- */
-class LegacyValidator2Dot5ApiTest extends Abstract2Dot5ApiTest
-{
-    protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array())
-    {
-        $translator = new IdentityTranslator();
-        $translator->setLocale('en');
-
-        $contextFactory = new LegacyExecutionContextFactory($metadataFactory, $translator);
-        $validatorFactory = new ConstraintValidatorFactory();
-
-        return new LegacyValidator($contextFactory, $metadataFactory, $validatorFactory, $objectInitializers);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Validator/LegacyValidatorLegacyApiTest.php b/core/vendor/symfony/validator/Tests/Validator/LegacyValidatorLegacyApiTest.php
deleted file mode 100644
index 0b51a11..0000000
--- a/core/vendor/symfony/validator/Tests/Validator/LegacyValidatorLegacyApiTest.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Validator;
-
-use Symfony\Component\Translation\IdentityTranslator;
-use Symfony\Component\Validator\ConstraintValidatorFactory;
-use Symfony\Component\Validator\Context\LegacyExecutionContextFactory;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Validator\LegacyValidator;
-
-/**
- * @group legacy
- */
-class LegacyValidatorLegacyApiTest extends AbstractLegacyApiTest
-{
-    protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array())
-    {
-        $translator = new IdentityTranslator();
-        $translator->setLocale('en');
-
-        $contextFactory = new LegacyExecutionContextFactory($metadataFactory, $translator);
-        $validatorFactory = new ConstraintValidatorFactory();
-
-        return new LegacyValidator($contextFactory, $metadataFactory, $validatorFactory, $objectInitializers);
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/Validator/RecursiveValidator2Dot5ApiTest.php b/core/vendor/symfony/validator/Tests/Validator/RecursiveValidator2Dot5ApiTest.php
deleted file mode 100644
index b27e645..0000000
--- a/core/vendor/symfony/validator/Tests/Validator/RecursiveValidator2Dot5ApiTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests\Validator;
-
-use Symfony\Component\Translation\IdentityTranslator;
-use Symfony\Component\Validator\ConstraintValidatorFactory;
-use Symfony\Component\Validator\Context\ExecutionContextFactory;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\Tests\Fixtures\Entity;
-use Symfony\Component\Validator\Validator\RecursiveValidator;
-
-class RecursiveValidator2Dot5ApiTest extends Abstract2Dot5ApiTest
-{
-    protected function createValidator(MetadataFactoryInterface $metadataFactory, array $objectInitializers = array())
-    {
-        $translator = new IdentityTranslator();
-        $translator->setLocale('en');
-
-        $contextFactory = new ExecutionContextFactory($translator);
-        $validatorFactory = new ConstraintValidatorFactory();
-
-        return new RecursiveValidator($contextFactory, $metadataFactory, $validatorFactory, $objectInitializers);
-    }
-
-    public function testEmptyGroupsArrayDoesNotTriggerDeprecation()
-    {
-        $entity = new Entity();
-
-        $validatorContext = $this->getMock('Symfony\Component\Validator\Validator\ContextualValidatorInterface');
-        $validatorContext
-            ->expects($this->once())
-            ->method('validate')
-            ->with($entity, null, array())
-            ->willReturnSelf();
-
-        $validator = $this
-            ->getMockBuilder('Symfony\Component\Validator\Validator\RecursiveValidator')
-            ->disableOriginalConstructor()
-            ->setMethods(array('startContext'))
-            ->getMock();
-        $validator
-            ->expects($this->once())
-            ->method('startContext')
-            ->willReturn($validatorContext);
-
-        $validator->validate($entity, null, array());
-    }
-}
diff --git a/core/vendor/symfony/validator/Tests/ValidatorBuilderTest.php b/core/vendor/symfony/validator/Tests/ValidatorBuilderTest.php
deleted file mode 100644
index 88e8b3b..0000000
--- a/core/vendor/symfony/validator/Tests/ValidatorBuilderTest.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Tests;
-
-use Symfony\Component\Validator\Validation;
-use Symfony\Component\Validator\ValidatorBuilder;
-use Symfony\Component\Validator\ValidatorBuilderInterface;
-
-class ValidatorBuilderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var ValidatorBuilderInterface
-     */
-    protected $builder;
-
-    protected function setUp()
-    {
-        $this->builder = new ValidatorBuilder();
-    }
-
-    protected function tearDown()
-    {
-        $this->builder = null;
-    }
-
-    public function testAddObjectInitializer()
-    {
-        $this->assertSame($this->builder, $this->builder->addObjectInitializer(
-            $this->getMock('Symfony\Component\Validator\ObjectInitializerInterface')
-        ));
-    }
-
-    public function testAddObjectInitializers()
-    {
-        $this->assertSame($this->builder, $this->builder->addObjectInitializers(array()));
-    }
-
-    public function testAddXmlMapping()
-    {
-        $this->assertSame($this->builder, $this->builder->addXmlMapping('mapping'));
-    }
-
-    public function testAddXmlMappings()
-    {
-        $this->assertSame($this->builder, $this->builder->addXmlMappings(array()));
-    }
-
-    public function testAddYamlMapping()
-    {
-        $this->assertSame($this->builder, $this->builder->addYamlMapping('mapping'));
-    }
-
-    public function testAddYamlMappings()
-    {
-        $this->assertSame($this->builder, $this->builder->addYamlMappings(array()));
-    }
-
-    public function testAddMethodMapping()
-    {
-        $this->assertSame($this->builder, $this->builder->addMethodMapping('mapping'));
-    }
-
-    public function testAddMethodMappings()
-    {
-        $this->assertSame($this->builder, $this->builder->addMethodMappings(array()));
-    }
-
-    public function testEnableAnnotationMapping()
-    {
-        $this->assertSame($this->builder, $this->builder->enableAnnotationMapping());
-    }
-
-    public function testDisableAnnotationMapping()
-    {
-        $this->assertSame($this->builder, $this->builder->disableAnnotationMapping());
-    }
-
-    public function testSetMetadataCache()
-    {
-        $this->assertSame($this->builder, $this->builder->setMetadataCache(
-            $this->getMock('Symfony\Component\Validator\Mapping\Cache\CacheInterface'))
-        );
-    }
-
-    public function testSetConstraintValidatorFactory()
-    {
-        $this->assertSame($this->builder, $this->builder->setConstraintValidatorFactory(
-            $this->getMock('Symfony\Component\Validator\ConstraintValidatorFactoryInterface'))
-        );
-    }
-
-    public function testSetTranslator()
-    {
-        $this->assertSame($this->builder, $this->builder->setTranslator(
-            $this->getMock('Symfony\Component\Translation\TranslatorInterface'))
-        );
-    }
-
-    public function testSetTranslationDomain()
-    {
-        $this->assertSame($this->builder, $this->builder->setTranslationDomain('TRANS_DOMAIN'));
-    }
-
-    public function testGetValidator()
-    {
-        $this->assertInstanceOf('Symfony\Component\Validator\Validator\RecursiveValidator', $this->builder->getValidator());
-    }
-}
diff --git a/core/vendor/symfony/validator/Util/PropertyPath.php b/core/vendor/symfony/validator/Util/PropertyPath.php
deleted file mode 100644
index 3ef8a8b..0000000
--- a/core/vendor/symfony/validator/Util/PropertyPath.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Util;
-
-/**
- * Contains utility methods for dealing with property paths.
- *
- * For more extensive functionality, use Symfony's PropertyAccess component.
- *
- * @since  2.5
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class PropertyPath
-{
-    /**
-     * Appends a path to a given property path.
-     *
-     * If the base path is empty, the appended path will be returned unchanged.
-     * If the base path is not empty, and the appended path starts with a
-     * squared opening bracket ("["), the concatenation of the two paths is
-     * returned. Otherwise, the concatenation of the two paths is returned,
-     * separated by a dot (".").
-     *
-     * @param string $basePath The base path
-     * @param string $subPath  The path to append
-     *
-     * @return string The concatenation of the two property paths
-     */
-    public static function append($basePath, $subPath)
-    {
-        if ('' !== (string) $subPath) {
-            if ('[' === $subPath{0}) {
-                return $basePath.$subPath;
-            }
-
-            return '' !== (string) $basePath ? $basePath.'.'.$subPath : $subPath;
-        }
-
-        return $basePath;
-    }
-
-    /**
-     * Not instantiable.
-     */
-    private function __construct()
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/Validation.php b/core/vendor/symfony/validator/Validation.php
deleted file mode 100644
index a03d215..0000000
--- a/core/vendor/symfony/validator/Validation.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Entry point for the Validator component.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-final class Validation
-{
-    /**
-     * The Validator API provided by Symfony 2.4 and older.
-     * @deprecated use API_VERSION_2_5_BC instead.
-     */
-    const API_VERSION_2_4 = 1;
-
-    /**
-     * The Validator API provided by Symfony 2.5 and newer.
-     */
-    const API_VERSION_2_5 = 2;
-
-    /**
-     * The Validator API provided by Symfony 2.5 and newer with a backwards
-     * compatibility layer for 2.4 and older.
-     */
-    const API_VERSION_2_5_BC = 3;
-
-    /**
-     * Creates a new validator.
-     *
-     * If you want to configure the validator, use
-     * {@link createValidatorBuilder()} instead.
-     *
-     * @return ValidatorInterface The new validator.
-     */
-    public static function createValidator()
-    {
-        return self::createValidatorBuilder()->getValidator();
-    }
-
-    /**
-     * Creates a configurable builder for validator objects.
-     *
-     * @return ValidatorBuilderInterface The new builder.
-     */
-    public static function createValidatorBuilder()
-    {
-        return new ValidatorBuilder();
-    }
-
-    /**
-     * This class cannot be instantiated.
-     */
-    private function __construct()
-    {
-    }
-}
diff --git a/core/vendor/symfony/validator/ValidationVisitor.php b/core/vendor/symfony/validator/ValidationVisitor.php
deleted file mode 100644
index 8386462..0000000
--- a/core/vendor/symfony/validator/ValidationVisitor.php
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-@trigger_error('The '.__NAMESPACE__.'\ValidationVisitor class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Exception\NoSuchMetadataException;
-use Symfony\Component\Validator\Exception\UnexpectedTypeException;
-
-/**
- * Default implementation of {@link ValidationVisitorInterface} and
- * {@link GlobalExecutionContextInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-class ValidationVisitor implements ValidationVisitorInterface, GlobalExecutionContextInterface
-{
-    /**
-     * @var mixed
-     */
-    private $root;
-
-    /**
-     * @var MetadataFactoryInterface
-     */
-    private $metadataFactory;
-
-    /**
-     * @var ConstraintValidatorFactoryInterface
-     */
-    private $validatorFactory;
-
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var null|string
-     */
-    private $translationDomain;
-
-    /**
-     * @var array
-     */
-    private $objectInitializers;
-
-    /**
-     * @var ConstraintViolationList
-     */
-    private $violations;
-
-    /**
-     * @var array
-     */
-    private $validatedObjects = array();
-
-    /**
-     * Creates a new validation visitor.
-     *
-     * @param mixed                               $root               The value passed to the validator.
-     * @param MetadataFactoryInterface            $metadataFactory    The factory for obtaining metadata instances.
-     * @param ConstraintValidatorFactoryInterface $validatorFactory   The factory for creating constraint validators.
-     * @param TranslatorInterface                 $translator         The translator for translating violation messages.
-     * @param string|null                         $translationDomain  The domain of the translation messages.
-     * @param ObjectInitializerInterface[]        $objectInitializers The initializers for preparing objects before validation.
-     *
-     * @throws UnexpectedTypeException If any of the object initializers is not an instance of ObjectInitializerInterface
-     */
-    public function __construct($root, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, TranslatorInterface $translator, $translationDomain = null, array $objectInitializers = array())
-    {
-        foreach ($objectInitializers as $initializer) {
-            if (!$initializer instanceof ObjectInitializerInterface) {
-                throw new UnexpectedTypeException($initializer, 'Symfony\Component\Validator\ObjectInitializerInterface');
-            }
-        }
-
-        $this->root = $root;
-        $this->metadataFactory = $metadataFactory;
-        $this->validatorFactory = $validatorFactory;
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-        $this->objectInitializers = $objectInitializers;
-        $this->violations = new ConstraintViolationList();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function visit(MetadataInterface $metadata, $value, $group, $propertyPath)
-    {
-        $context = new ExecutionContext(
-            $this,
-            $this->translator,
-            $this->translationDomain,
-            $metadata,
-            $value,
-            $group,
-            $propertyPath
-        );
-
-        $context->validateValue($value, $metadata->findConstraints($group));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, $group, $propertyPath, $traverse = false, $deep = false)
-    {
-        if (null === $value) {
-            return;
-        }
-
-        if (is_object($value)) {
-            $hash = spl_object_hash($value);
-
-            // Exit, if the object is already validated for the current group
-            if (isset($this->validatedObjects[$hash][$group])) {
-                return;
-            }
-
-            // Initialize if the object wasn't initialized before
-            if (!isset($this->validatedObjects[$hash])) {
-                foreach ($this->objectInitializers as $initializer) {
-                    if (!$initializer instanceof ObjectInitializerInterface) {
-                        throw new \LogicException('Validator initializers must implement ObjectInitializerInterface.');
-                    }
-                    $initializer->initialize($value);
-                }
-            }
-
-            // Remember validating this object before starting and possibly
-            // traversing the object graph
-            $this->validatedObjects[$hash][$group] = true;
-        }
-
-        // Validate arrays recursively by default, otherwise every driver needs
-        // to implement special handling for arrays.
-        // https://github.com/symfony/symfony/issues/6246
-        if (is_array($value) || ($traverse && $value instanceof \Traversable)) {
-            foreach ($value as $key => $element) {
-                // Ignore any scalar values in the collection
-                if (is_object($element) || is_array($element)) {
-                    // Only repeat the traversal if $deep is set
-                    $this->validate($element, $group, $propertyPath.'['.$key.']', $deep, $deep);
-                }
-            }
-
-            try {
-                $this->metadataFactory->getMetadataFor($value)->accept($this, $value, $group, $propertyPath);
-            } catch (NoSuchMetadataException $e) {
-                // Metadata doesn't necessarily have to exist for
-                // traversable objects, because we know how to validate
-                // them anyway. Optionally, additional metadata is supported.
-            }
-        } else {
-            $this->metadataFactory->getMetadataFor($value)->accept($this, $value, $group, $propertyPath);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getViolations()
-    {
-        return $this->violations;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getRoot()
-    {
-        return $this->root;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getVisitor()
-    {
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValidatorFactory()
-    {
-        return $this->validatorFactory;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFactory()
-    {
-        return $this->metadataFactory;
-    }
-}
diff --git a/core/vendor/symfony/validator/ValidationVisitorInterface.php b/core/vendor/symfony/validator/ValidationVisitorInterface.php
deleted file mode 100644
index 0ab7b73..0000000
--- a/core/vendor/symfony/validator/ValidationVisitorInterface.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Validates values against constraints defined in {@link MetadataInterface}
- * instances.
- *
- * This interface is an implementation of the Visitor design pattern. A value
- * is validated by first passing it to the {@link validate} method. That method
- * will determine the matching {@link MetadataInterface} for validating the
- * value. It then calls the {@link MetadataInterface::accept} method of that
- * metadata. <tt>accept()</tt> does two things:
- *
- * <ol>
- * <li>It calls {@link visit} to validate the value against the constraints of
- * the metadata.</li>
- * <li>It calls <tt>accept()</tt> on all nested metadata instances with the
- * corresponding values extracted from the current value. For example, if the
- * current metadata represents a class and the current value is an object of
- * that class, the metadata contains nested instances for each property of that
- * class. It forwards the call to these nested metadata with the values of the
- * corresponding properties in the original object.</li>
- * </ol>
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-interface ValidationVisitorInterface
-{
-    /**
-     * Validates a value.
-     *
-     * If the value is an array or a traversable object, you can set the
-     * parameter <tt>$traverse</tt> to <tt>true</tt> in order to run through
-     * the collection and validate each element. If these elements can be
-     * collections again and you want to traverse them recursively, set the
-     * parameter <tt>$deep</tt> to <tt>true</tt> as well.
-     *
-     * If you set <tt>$traversable</tt> to <tt>true</tt>, the visitor will
-     * nevertheless try to find metadata for the collection and validate its
-     * constraints. If no such metadata is found, the visitor ignores that and
-     * only iterates the collection.
-     *
-     * If you don't set <tt>$traversable</tt> to <tt>true</tt> and the visitor
-     * does not find metadata for the given value, it will fail with an
-     * exception.
-     *
-     * @param mixed  $value        The value to validate.
-     * @param string $group        The validation group to validate.
-     * @param string $propertyPath The current property path in the validation graph.
-     * @param bool   $traverse     Whether to traverse the value if it is traversable.
-     * @param bool   $deep         Whether to traverse nested traversable values recursively.
-     *
-     * @throws Exception\NoSuchMetadataException If no metadata can be found for
-     *                                           the given value.
-     */
-    public function validate($value, $group, $propertyPath, $traverse = false, $deep = false);
-
-    /**
-     * Validates a value against the constraints defined in some metadata.
-     *
-     * This method implements the Visitor design pattern. See also
-     * {@link ValidationVisitorInterface}.
-     *
-     * @param MetadataInterface $metadata     The metadata holding the constraints.
-     * @param mixed             $value        The value to validate.
-     * @param string            $group        The validation group to validate.
-     * @param string            $propertyPath The current property path in the validation graph.
-     */
-    public function visit(MetadataInterface $metadata, $value, $group, $propertyPath);
-}
diff --git a/core/vendor/symfony/validator/Validator.php b/core/vendor/symfony/validator/Validator.php
deleted file mode 100644
index 4da27e7..0000000
--- a/core/vendor/symfony/validator/Validator.php
+++ /dev/null
@@ -1,237 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-@trigger_error('The '.__NAMESPACE__.'\Validator class is deprecated since version 2.5 and will be removed in 3.0. Use the Symfony\Component\Validator\Validator\RecursiveValidator class instead.', E_USER_DEPRECATED);
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\Exception\ValidatorException;
-
-/**
- * Default implementation of {@link ValidatorInterface}.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link Validator\RecursiveValidator} instead.
- */
-class Validator implements ValidatorInterface, Mapping\Factory\MetadataFactoryInterface
-{
-    /**
-     * @var MetadataFactoryInterface
-     */
-    private $metadataFactory;
-
-    /**
-     * @var ConstraintValidatorFactoryInterface
-     */
-    private $validatorFactory;
-
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var null|string
-     */
-    private $translationDomain;
-
-    /**
-     * @var array
-     */
-    private $objectInitializers;
-
-    public function __construct(
-        MetadataFactoryInterface $metadataFactory,
-        ConstraintValidatorFactoryInterface $validatorFactory,
-        TranslatorInterface $translator,
-        $translationDomain = 'validators',
-        array $objectInitializers = array()
-    ) {
-        $this->metadataFactory = $metadataFactory;
-        $this->validatorFactory = $validatorFactory;
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-        $this->objectInitializers = $objectInitializers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFactory()
-    {
-        return $this->metadataFactory;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFor($value)
-    {
-        return $this->metadataFactory->getMetadataFor($value);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasMetadataFor($value)
-    {
-        return $this->metadataFactory->hasMetadataFor($value);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, $groups = null, $traverse = false, $deep = false)
-    {
-        $visitor = $this->createVisitor($value);
-
-        foreach ($this->resolveGroups($groups) as $group) {
-            $visitor->validate($value, $group, '', $traverse, $deep);
-        }
-
-        return $visitor->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws ValidatorException If the metadata for the value does not support properties.
-     */
-    public function validateProperty($containingValue, $property, $groups = null)
-    {
-        $visitor = $this->createVisitor($containingValue);
-        $metadata = $this->metadataFactory->getMetadataFor($containingValue);
-
-        if (!$metadata instanceof PropertyMetadataContainerInterface) {
-            $valueAsString = is_scalar($containingValue)
-                ? '"'.$containingValue.'"'
-                : 'the value of type '.gettype($containingValue);
-
-            throw new ValidatorException(sprintf('The metadata for %s does not support properties.', $valueAsString));
-        }
-
-        foreach ($this->resolveGroups($groups) as $group) {
-            if (!$metadata->hasPropertyMetadata($property)) {
-                continue;
-            }
-
-            foreach ($metadata->getPropertyMetadata($property) as $propMeta) {
-                $propMeta->accept($visitor, $propMeta->getPropertyValue($containingValue), $group, $property);
-            }
-        }
-
-        return $visitor->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @throws ValidatorException If the metadata for the value does not support properties.
-     */
-    public function validatePropertyValue($containingValue, $property, $value, $groups = null)
-    {
-        $visitor = $this->createVisitor(is_object($containingValue) ? $containingValue : $value);
-        $metadata = $this->metadataFactory->getMetadataFor($containingValue);
-
-        if (!$metadata instanceof PropertyMetadataContainerInterface) {
-            $valueAsString = is_scalar($containingValue)
-                ? '"'.$containingValue.'"'
-                : 'the value of type '.gettype($containingValue);
-
-            throw new ValidatorException(sprintf('The metadata for '.$valueAsString.' does not support properties.'));
-        }
-
-        // If $containingValue is passed as class name, take $value as root
-        // and start the traversal with an empty property path
-        $propertyPath = is_object($containingValue) ? $property : '';
-
-        foreach ($this->resolveGroups($groups) as $group) {
-            if (!$metadata->hasPropertyMetadata($property)) {
-                continue;
-            }
-
-            foreach ($metadata->getPropertyMetadata($property) as $propMeta) {
-                $propMeta->accept($visitor, $value, $group, $propertyPath);
-            }
-        }
-
-        return $visitor->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validateValue($value, $constraints, $groups = null)
-    {
-        $context = new ExecutionContext($this->createVisitor($value), $this->translator, $this->translationDomain);
-
-        $constraints = is_array($constraints) ? $constraints : array($constraints);
-
-        foreach ($constraints as $constraint) {
-            if ($constraint instanceof Valid) {
-                // Why can't the Valid constraint be executed directly?
-                //
-                // It cannot be executed like regular other constraints, because regular
-                // constraints are only executed *if they belong to the validated group*.
-                // The Valid constraint, on the other hand, is always executed and propagates
-                // the group to the cascaded object. The propagated group depends on
-                //
-                //  * Whether a group sequence is currently being executed. Then the default
-                //    group is propagated.
-                //
-                //  * Otherwise the validated group is propagated.
-
-                throw new ValidatorException(
-                    sprintf(
-                        'The constraint %s cannot be validated. Use the method validate() instead.',
-                        get_class($constraint)
-                    )
-                );
-            }
-
-            $context->validateValue($value, $constraint, '', $groups);
-        }
-
-        return $context->getViolations();
-    }
-
-    /**
-     * @param mixed $root
-     *
-     * @return ValidationVisitor
-     */
-    private function createVisitor($root)
-    {
-        return new ValidationVisitor(
-            $root,
-            $this->metadataFactory,
-            $this->validatorFactory,
-            $this->translator,
-            $this->translationDomain,
-            $this->objectInitializers
-        );
-    }
-
-    /**
-     * @param null|string|string[] $groups
-     *
-     * @return string[]
-     */
-    private function resolveGroups($groups)
-    {
-        return $groups ? (array) $groups : array(Constraint::DEFAULT_GROUP);
-    }
-}
diff --git a/core/vendor/symfony/validator/Validator/ContextualValidatorInterface.php b/core/vendor/symfony/validator/Validator/ContextualValidatorInterface.php
deleted file mode 100644
index 767f895..0000000
--- a/core/vendor/symfony/validator/Validator/ContextualValidatorInterface.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Validator;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintViolationListInterface;
-
-/**
- * A validator in a specific execution context.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ContextualValidatorInterface
-{
-    /**
-     * Appends the given path to the property path of the context.
-     *
-     * If called multiple times, the path will always be reset to the context's
-     * original path with the given path appended to it.
-     *
-     * @param string $path The path to append
-     *
-     * @return ContextualValidatorInterface This validator
-     */
-    public function atPath($path);
-
-    /**
-     * Validates a value against a constraint or a list of constraints.
-     *
-     * If no constraint is passed, the constraint
-     * {@link \Symfony\Component\Validator\Constraints\Valid} is assumed.
-     *
-     * @param mixed                   $value       The value to validate
-     * @param Constraint|Constraint[] $constraints The constraint(s) to validate
-     *                                             against
-     * @param array|null              $groups      The validation groups to
-     *                                             validate. If none is given,
-     *                                             "Default" is assumed
-     *
-     * @return ContextualValidatorInterface This validator
-     */
-    public function validate($value, $constraints = null, $groups = null);
-
-    /**
-     * Validates a property of an object against the constraints specified
-     * for this property.
-     *
-     * @param object     $object       The object
-     * @param string     $propertyName The name of the validated property
-     * @param array|null $groups       The validation groups to validate. If
-     *                                 none is given, "Default" is assumed
-     *
-     * @return ContextualValidatorInterface This validator
-     */
-    public function validateProperty($object, $propertyName, $groups = null);
-
-    /**
-     * Validates a value against the constraints specified for an object's
-     * property.
-     *
-     * @param object|string $objectOrClass The object or its class name
-     * @param string        $propertyName  The name of the property
-     * @param mixed         $value         The value to validate against the
-     *                                     property's constraints
-     * @param array|null    $groups        The validation groups to validate. If
-     *                                     none is given, "Default" is assumed
-     *
-     * @return ContextualValidatorInterface This validator
-     */
-    public function validatePropertyValue($objectOrClass, $propertyName, $value, $groups = null);
-
-    /**
-     * Returns the violations that have been generated so far in the context
-     * of the validator.
-     *
-     * @return ConstraintViolationListInterface The constraint violations
-     */
-    public function getViolations();
-}
diff --git a/core/vendor/symfony/validator/Validator/LegacyValidator.php b/core/vendor/symfony/validator/Validator/LegacyValidator.php
deleted file mode 100644
index 0b0934b..0000000
--- a/core/vendor/symfony/validator/Validator/LegacyValidator.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Validator;
-
-@trigger_error('The '.__NAMESPACE__.'\LegacyValidator class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-/**
- * A validator that supports both the API of Symfony < 2.5 and Symfony 2.5+.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @see \Symfony\Component\Validator\ValidatorInterface
- * @see \Symfony\Component\Validator\Validator\ValidatorInterface
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- */
-class LegacyValidator extends RecursiveValidator
-{
-}
diff --git a/core/vendor/symfony/validator/Validator/RecursiveContextualValidator.php b/core/vendor/symfony/validator/Validator/RecursiveContextualValidator.php
deleted file mode 100644
index d632d05..0000000
--- a/core/vendor/symfony/validator/Validator/RecursiveContextualValidator.php
+++ /dev/null
@@ -1,865 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Validator;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\GroupSequence;
-use Symfony\Component\Validator\ConstraintValidatorFactoryInterface;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
-use Symfony\Component\Validator\Exception\NoSuchMetadataException;
-use Symfony\Component\Validator\Exception\RuntimeException;
-use Symfony\Component\Validator\Exception\UnsupportedMetadataException;
-use Symfony\Component\Validator\Exception\ValidatorException;
-use Symfony\Component\Validator\Mapping\CascadingStrategy;
-use Symfony\Component\Validator\Mapping\ClassMetadataInterface;
-use Symfony\Component\Validator\Mapping\GenericMetadata;
-use Symfony\Component\Validator\Mapping\MetadataInterface;
-use Symfony\Component\Validator\Mapping\PropertyMetadataInterface;
-use Symfony\Component\Validator\Mapping\TraversalStrategy;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\ObjectInitializerInterface;
-use Symfony\Component\Validator\Util\PropertyPath;
-
-/**
- * Recursive implementation of {@link ContextualValidatorInterface}.
- *
- * @since  2.5
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class RecursiveContextualValidator implements ContextualValidatorInterface
-{
-    /**
-     * @var ExecutionContextInterface
-     */
-    private $context;
-
-    /**
-     * @var MetadataFactoryInterface
-     */
-    private $metadataFactory;
-
-    /**
-     * @var ConstraintValidatorFactoryInterface
-     */
-    private $validatorFactory;
-
-    /**
-     * @var ObjectInitializerInterface[]
-     */
-    private $objectInitializers;
-
-    /**
-     * Creates a validator for the given context.
-     *
-     * @param ExecutionContextInterface           $context            The execution context
-     * @param MetadataFactoryInterface            $metadataFactory    The factory for
-     *                                                                fetching the metadata
-     *                                                                of validated objects
-     * @param ConstraintValidatorFactoryInterface $validatorFactory   The factory for creating
-     *                                                                constraint validators
-     * @param ObjectInitializerInterface[]        $objectInitializers The object initializers
-     */
-    public function __construct(ExecutionContextInterface $context, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, array $objectInitializers = array())
-    {
-        $this->context = $context;
-        $this->defaultPropertyPath = $context->getPropertyPath();
-        $this->defaultGroups = array($context->getGroup() ?: Constraint::DEFAULT_GROUP);
-        $this->metadataFactory = $metadataFactory;
-        $this->validatorFactory = $validatorFactory;
-        $this->objectInitializers = $objectInitializers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function atPath($path)
-    {
-        $this->defaultPropertyPath = $this->context->getPropertyPath($path);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, $constraints = null, $groups = null)
-    {
-        $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups;
-
-        $previousValue = $this->context->getValue();
-        $previousObject = $this->context->getObject();
-        $previousMetadata = $this->context->getMetadata();
-        $previousPath = $this->context->getPropertyPath();
-        $previousGroup = $this->context->getGroup();
-
-        // If explicit constraints are passed, validate the value against
-        // those constraints
-        if (null !== $constraints) {
-            // You can pass a single constraint or an array of constraints
-            // Make sure to deal with an array in the rest of the code
-            if (!is_array($constraints)) {
-                $constraints = array($constraints);
-            }
-
-            $metadata = new GenericMetadata();
-            $metadata->addConstraints($constraints);
-
-            $this->validateGenericNode(
-                $value,
-                null,
-                is_object($value) ? spl_object_hash($value) : null,
-                $metadata,
-                $this->defaultPropertyPath,
-                $groups,
-                null,
-                TraversalStrategy::IMPLICIT,
-                $this->context
-            );
-
-            $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
-            $this->context->setGroup($previousGroup);
-
-            return $this;
-        }
-
-        // If an object is passed without explicit constraints, validate that
-        // object against the constraints defined for the object's class
-        if (is_object($value)) {
-            $this->validateObject(
-                $value,
-                $this->defaultPropertyPath,
-                $groups,
-                TraversalStrategy::IMPLICIT,
-                $this->context
-            );
-
-            $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
-            $this->context->setGroup($previousGroup);
-
-            return $this;
-        }
-
-        // If an array is passed without explicit constraints, validate each
-        // object in the array
-        if (is_array($value)) {
-            $this->validateEachObjectIn(
-                $value,
-                $this->defaultPropertyPath,
-                $groups,
-                true,
-                $this->context
-            );
-
-            $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
-            $this->context->setGroup($previousGroup);
-
-            return $this;
-        }
-
-        throw new RuntimeException(sprintf(
-            'Cannot validate values of type "%s" automatically. Please '.
-            'provide a constraint.',
-            gettype($value)
-        ));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validateProperty($object, $propertyName, $groups = null)
-    {
-        $classMetadata = $this->metadataFactory->getMetadataFor($object);
-
-        if (!$classMetadata instanceof ClassMetadataInterface) {
-            // Cannot be UnsupportedMetadataException because of BC with
-            // Symfony < 2.5
-            throw new ValidatorException(sprintf(
-                'The metadata factory should return instances of '.
-                '"\Symfony\Component\Validator\Mapping\ClassMetadataInterface", '.
-                'got: "%s".',
-                is_object($classMetadata) ? get_class($classMetadata) : gettype($classMetadata)
-            ));
-        }
-
-        $propertyMetadatas = $classMetadata->getPropertyMetadata($propertyName);
-        $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups;
-        $cacheKey = spl_object_hash($object);
-        $propertyPath = PropertyPath::append($this->defaultPropertyPath, $propertyName);
-
-        $previousValue = $this->context->getValue();
-        $previousObject = $this->context->getObject();
-        $previousMetadata = $this->context->getMetadata();
-        $previousPath = $this->context->getPropertyPath();
-        $previousGroup = $this->context->getGroup();
-
-        foreach ($propertyMetadatas as $propertyMetadata) {
-            $propertyValue = $propertyMetadata->getPropertyValue($object);
-
-            $this->validateGenericNode(
-                $propertyValue,
-                $object,
-                $cacheKey.':'.$propertyName,
-                $propertyMetadata,
-                $propertyPath,
-                $groups,
-                null,
-                TraversalStrategy::IMPLICIT,
-                $this->context
-            );
-        }
-
-        $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
-        $this->context->setGroup($previousGroup);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validatePropertyValue($objectOrClass, $propertyName, $value, $groups = null)
-    {
-        $classMetadata = $this->metadataFactory->getMetadataFor($objectOrClass);
-
-        if (!$classMetadata instanceof ClassMetadataInterface) {
-            // Cannot be UnsupportedMetadataException because of BC with
-            // Symfony < 2.5
-            throw new ValidatorException(sprintf(
-                'The metadata factory should return instances of '.
-                '"\Symfony\Component\Validator\Mapping\ClassMetadataInterface", '.
-                'got: "%s".',
-                is_object($classMetadata) ? get_class($classMetadata) : gettype($classMetadata)
-            ));
-        }
-
-        $propertyMetadatas = $classMetadata->getPropertyMetadata($propertyName);
-        $groups = $groups ? $this->normalizeGroups($groups) : $this->defaultGroups;
-
-        if (is_object($objectOrClass)) {
-            $object = $objectOrClass;
-            $cacheKey = spl_object_hash($objectOrClass);
-            $propertyPath = PropertyPath::append($this->defaultPropertyPath, $propertyName);
-        } else {
-            // $objectOrClass contains a class name
-            $object = null;
-            $cacheKey = null;
-            $propertyPath = $this->defaultPropertyPath;
-        }
-
-        $previousValue = $this->context->getValue();
-        $previousObject = $this->context->getObject();
-        $previousMetadata = $this->context->getMetadata();
-        $previousPath = $this->context->getPropertyPath();
-        $previousGroup = $this->context->getGroup();
-
-        foreach ($propertyMetadatas as $propertyMetadata) {
-            $this->validateGenericNode(
-                $value,
-                $object,
-                $cacheKey.':'.$propertyName,
-                $propertyMetadata,
-                $propertyPath,
-                $groups,
-                null,
-                TraversalStrategy::IMPLICIT,
-                $this->context
-            );
-        }
-
-        $this->context->setNode($previousValue, $previousObject, $previousMetadata, $previousPath);
-        $this->context->setGroup($previousGroup);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getViolations()
-    {
-        return $this->context->getViolations();
-    }
-
-    /**
-     * Normalizes the given group or list of groups to an array.
-     *
-     * @param mixed $groups The groups to normalize
-     *
-     * @return array A group array
-     */
-    protected function normalizeGroups($groups)
-    {
-        if (is_array($groups)) {
-            return $groups;
-        }
-
-        return array($groups);
-    }
-    /**
-     * Validates an object against the constraints defined for its class.
-     *
-     * If no metadata is available for the class, but the class is an instance
-     * of {@link \Traversable} and the selected traversal strategy allows
-     * traversal, the object will be iterated and each nested object will be
-     * validated instead.
-     *
-     * @param object                    $object            The object to cascade
-     * @param string                    $propertyPath      The current property path
-     * @param string[]                  $groups            The validated groups
-     * @param int                       $traversalStrategy The strategy for traversing the
-     *                                                     cascaded object
-     * @param ExecutionContextInterface $context           The current execution context
-     *
-     * @throws NoSuchMetadataException      If the object has no associated metadata
-     *                                      and does not implement {@link \Traversable}
-     *                                      or if traversal is disabled via the
-     *                                      $traversalStrategy argument
-     * @throws UnsupportedMetadataException If the metadata returned by the
-     *                                      metadata factory does not implement
-     *                                      {@link ClassMetadataInterface}
-     */
-    private function validateObject($object, $propertyPath, array $groups, $traversalStrategy, ExecutionContextInterface $context)
-    {
-        try {
-            $classMetadata = $this->metadataFactory->getMetadataFor($object);
-
-            if (!$classMetadata instanceof ClassMetadataInterface) {
-                throw new UnsupportedMetadataException(sprintf(
-                    'The metadata factory should return instances of '.
-                    '"Symfony\Component\Validator\Mapping\ClassMetadataInterface", '.
-                    'got: "%s".',
-                    is_object($classMetadata) ? get_class($classMetadata) : gettype($classMetadata)
-                ));
-            }
-
-            $this->validateClassNode(
-                $object,
-                spl_object_hash($object),
-                $classMetadata,
-                $propertyPath,
-                $groups,
-                null,
-                $traversalStrategy,
-                $context
-            );
-        } catch (NoSuchMetadataException $e) {
-            // Rethrow if not Traversable
-            if (!$object instanceof \Traversable) {
-                throw $e;
-            }
-
-            // Rethrow unless IMPLICIT or TRAVERSE
-            if (!($traversalStrategy & (TraversalStrategy::IMPLICIT | TraversalStrategy::TRAVERSE))) {
-                throw $e;
-            }
-
-            $this->validateEachObjectIn(
-                $object,
-                $propertyPath,
-                $groups,
-                $traversalStrategy & TraversalStrategy::STOP_RECURSION,
-                $context
-            );
-        }
-    }
-
-    /**
-     * Validates each object in a collection against the constraints defined
-     * for their classes.
-     *
-     * If the parameter $recursive is set to true, nested {@link \Traversable}
-     * objects are iterated as well. Nested arrays are always iterated,
-     * regardless of the value of $recursive.
-     *
-     * @param array|\Traversable        $collection    The collection
-     * @param string                    $propertyPath  The current property path
-     * @param string[]                  $groups        The validated groups
-     * @param bool                      $stopRecursion Whether to disable
-     *                                                 recursive iteration. For
-     *                                                 backwards compatibility
-     *                                                 with Symfony < 2.5.
-     * @param ExecutionContextInterface $context       The current execution context
-     *
-     * @see ClassNode
-     * @see CollectionNode
-     */
-    private function validateEachObjectIn($collection, $propertyPath, array $groups, $stopRecursion, ExecutionContextInterface $context)
-    {
-        if ($stopRecursion) {
-            $traversalStrategy = TraversalStrategy::NONE;
-        } else {
-            $traversalStrategy = TraversalStrategy::IMPLICIT;
-        }
-
-        foreach ($collection as $key => $value) {
-            if (is_array($value)) {
-                // Arrays are always cascaded, independent of the specified
-                // traversal strategy
-                // (BC with Symfony < 2.5)
-                $this->validateEachObjectIn(
-                    $value,
-                    $propertyPath.'['.$key.']',
-                    $groups,
-                    $stopRecursion,
-                    $context
-                );
-
-                continue;
-            }
-
-            // Scalar and null values in the collection are ignored
-            // (BC with Symfony < 2.5)
-            if (is_object($value)) {
-                $this->validateObject(
-                    $value,
-                    $propertyPath.'['.$key.']',
-                    $groups,
-                    $traversalStrategy,
-                    $context
-                );
-            }
-        }
-    }
-
-    /**
-     * Validates a class node.
-     *
-     * A class node is a combination of an object with a {@link ClassMetadataInterface}
-     * instance. Each class node (conceptionally) has zero or more succeeding
-     * property nodes:
-     *
-     *     (Article:class node)
-     *                \
-     *        ($title:property node)
-     *
-     * This method validates the passed objects against all constraints defined
-     * at class level. It furthermore triggers the validation of each of the
-     * class' properties against the constraints for that property.
-     *
-     * If the selected traversal strategy allows traversal, the object is
-     * iterated and each nested object is validated against its own constraints.
-     * The object is not traversed if traversal is disabled in the class
-     * metadata.
-     *
-     * If the passed groups contain the group "Default", the validator will
-     * check whether the "Default" group has been replaced by a group sequence
-     * in the class metadata. If this is the case, the group sequence is
-     * validated instead.
-     *
-     * @param object                    $object            The validated object
-     * @param string                    $cacheKey          The key for caching
-     *                                                     the validated object
-     * @param ClassMetadataInterface    $metadata          The class metadata of
-     *                                                     the object
-     * @param string                    $propertyPath      The property path leading
-     *                                                     to the object
-     * @param string[]                  $groups            The groups in which the
-     *                                                     object should be validated
-     * @param string[]|null             $cascadedGroups    The groups in which
-     *                                                     cascaded objects should
-     *                                                     be validated
-     * @param int                       $traversalStrategy The strategy used for
-     *                                                     traversing the object
-     * @param ExecutionContextInterface $context           The current execution context
-     *
-     * @throws UnsupportedMetadataException  If a property metadata does not
-     *                                       implement {@link PropertyMetadataInterface}
-     * @throws ConstraintDefinitionException If traversal was enabled but the
-     *                                       object does not implement
-     *                                       {@link \Traversable}
-     *
-     * @see TraversalStrategy
-     */
-    private function validateClassNode($object, $cacheKey, ClassMetadataInterface $metadata = null, $propertyPath, array $groups, $cascadedGroups, $traversalStrategy, ExecutionContextInterface $context)
-    {
-        $context->setNode($object, $object, $metadata, $propertyPath);
-
-        if (!$context->isObjectInitialized($cacheKey)) {
-            foreach ($this->objectInitializers as $initializer) {
-                $initializer->initialize($object);
-            }
-
-            $context->markObjectAsInitialized($cacheKey);
-        }
-
-        foreach ($groups as $key => $group) {
-            // If the "Default" group is replaced by a group sequence, remember
-            // to cascade the "Default" group when traversing the group
-            // sequence
-            $defaultOverridden = false;
-
-            // Use the object hash for group sequences
-            $groupHash = is_object($group) ? spl_object_hash($group) : $group;
-
-            if ($context->isGroupValidated($cacheKey, $groupHash)) {
-                // Skip this group when validating the properties and when
-                // traversing the object
-                unset($groups[$key]);
-
-                continue;
-            }
-
-            $context->markGroupAsValidated($cacheKey, $groupHash);
-
-            // Replace the "Default" group by the group sequence defined
-            // for the class, if applicable.
-            // This is done after checking the cache, so that
-            // spl_object_hash() isn't called for this sequence and
-            // "Default" is used instead in the cache. This is useful
-            // if the getters below return different group sequences in
-            // every call.
-            if (Constraint::DEFAULT_GROUP === $group) {
-                if ($metadata->hasGroupSequence()) {
-                    // The group sequence is statically defined for the class
-                    $group = $metadata->getGroupSequence();
-                    $defaultOverridden = true;
-                } elseif ($metadata->isGroupSequenceProvider()) {
-                    // The group sequence is dynamically obtained from the validated
-                    // object
-                    /* @var \Symfony\Component\Validator\GroupSequenceProviderInterface $object */
-                    $group = $object->getGroupSequence();
-                    $defaultOverridden = true;
-
-                    if (!$group instanceof GroupSequence) {
-                        $group = new GroupSequence($group);
-                    }
-                }
-            }
-
-            // If the groups (=[<G1,G2>,G3,G4]) contain a group sequence
-            // (=<G1,G2>), then call validateClassNode() with each entry of the
-            // group sequence and abort if necessary (G1, G2)
-            if ($group instanceof GroupSequence) {
-                $this->stepThroughGroupSequence(
-                     $object,
-                     $object,
-                     $cacheKey,
-                     $metadata,
-                     $propertyPath,
-                     $traversalStrategy,
-                     $group,
-                     $defaultOverridden ? Constraint::DEFAULT_GROUP : null,
-                     $context
-                );
-
-                // Skip the group sequence when validating properties, because
-                // stepThroughGroupSequence() already validates the properties
-                unset($groups[$key]);
-
-                continue;
-            }
-
-            $this->validateInGroup($object, $cacheKey, $metadata, $group, $context);
-        }
-
-        // If no more groups should be validated for the property nodes,
-        // we can safely quit
-        if (0 === count($groups)) {
-            return;
-        }
-
-        // Validate all properties against their constraints
-        foreach ($metadata->getConstrainedProperties() as $propertyName) {
-            // If constraints are defined both on the getter of a property as
-            // well as on the property itself, then getPropertyMetadata()
-            // returns two metadata objects, not just one
-            foreach ($metadata->getPropertyMetadata($propertyName) as $propertyMetadata) {
-                if (!$propertyMetadata instanceof PropertyMetadataInterface) {
-                    throw new UnsupportedMetadataException(sprintf(
-                        'The property metadata instances should implement '.
-                        '"Symfony\Component\Validator\Mapping\PropertyMetadataInterface", '.
-                        'got: "%s".',
-                        is_object($propertyMetadata) ? get_class($propertyMetadata) : gettype($propertyMetadata)
-                    ));
-                }
-
-                $propertyValue = $propertyMetadata->getPropertyValue($object);
-
-                $this->validateGenericNode(
-                    $propertyValue,
-                    $object,
-                    $cacheKey.':'.$propertyName,
-                    $propertyMetadata,
-                    PropertyPath::append($propertyPath, $propertyName),
-                    $groups,
-                    $cascadedGroups,
-                    TraversalStrategy::IMPLICIT,
-                    $context
-                );
-            }
-        }
-
-        // If no specific traversal strategy was requested when this method
-        // was called, use the traversal strategy of the class' metadata
-        if ($traversalStrategy & TraversalStrategy::IMPLICIT) {
-            // Keep the STOP_RECURSION flag, if it was set
-            $traversalStrategy = $metadata->getTraversalStrategy()
-                | ($traversalStrategy & TraversalStrategy::STOP_RECURSION);
-        }
-
-        // Traverse only if IMPLICIT or TRAVERSE
-        if (!($traversalStrategy & (TraversalStrategy::IMPLICIT | TraversalStrategy::TRAVERSE))) {
-            return;
-        }
-
-        // If IMPLICIT, stop unless we deal with a Traversable
-        if ($traversalStrategy & TraversalStrategy::IMPLICIT && !$object instanceof \Traversable) {
-            return;
-        }
-
-        // If TRAVERSE, fail if we have no Traversable
-        if (!$object instanceof \Traversable) {
-            // Must throw a ConstraintDefinitionException for backwards
-            // compatibility reasons with Symfony < 2.5
-            throw new ConstraintDefinitionException(sprintf(
-                'Traversal was enabled for "%s", but this class '.
-                'does not implement "\Traversable".',
-                get_class($object)
-            ));
-        }
-
-        $this->validateEachObjectIn(
-            $object,
-            $propertyPath,
-            $groups,
-            $traversalStrategy & TraversalStrategy::STOP_RECURSION,
-            $context
-        );
-    }
-
-    /**
-     * Validates a node that is not a class node.
-     *
-     * Currently, two such node types exist:
-     *
-     *  - property nodes, which consist of the value of an object's
-     *    property together with a {@link PropertyMetadataInterface} instance
-     *  - generic nodes, which consist of a value and some arbitrary
-     *    constraints defined in a {@link MetadataInterface} container
-     *
-     * In both cases, the value is validated against all constraints defined
-     * in the passed metadata object. Then, if the value is an instance of
-     * {@link \Traversable} and the selected traversal strategy permits it,
-     * the value is traversed and each nested object validated against its own
-     * constraints. Arrays are always traversed.
-     *
-     * @param mixed                     $value             The validated value
-     * @param object|null               $object            The current object
-     * @param string                    $cacheKey          The key for caching
-     *                                                     the validated value
-     * @param MetadataInterface         $metadata          The metadata of the
-     *                                                     value
-     * @param string                    $propertyPath      The property path leading
-     *                                                     to the value
-     * @param string[]                  $groups            The groups in which the
-     *                                                     value should be validated
-     * @param string[]|null             $cascadedGroups    The groups in which
-     *                                                     cascaded objects should
-     *                                                     be validated
-     * @param int                       $traversalStrategy The strategy used for
-     *                                                     traversing the value
-     * @param ExecutionContextInterface $context           The current execution context
-     *
-     * @see TraversalStrategy
-     */
-    private function validateGenericNode($value, $object, $cacheKey, MetadataInterface $metadata = null, $propertyPath, array $groups, $cascadedGroups, $traversalStrategy, ExecutionContextInterface $context)
-    {
-        $context->setNode($value, $object, $metadata, $propertyPath);
-
-        foreach ($groups as $key => $group) {
-            if ($group instanceof GroupSequence) {
-                $this->stepThroughGroupSequence(
-                     $value,
-                     $object,
-                     $cacheKey,
-                     $metadata,
-                     $propertyPath,
-                     $traversalStrategy,
-                     $group,
-                     null,
-                     $context
-                );
-
-                // Skip the group sequence when cascading, as the cascading
-                // logic is already done in stepThroughGroupSequence()
-                unset($groups[$key]);
-
-                continue;
-            }
-
-            $this->validateInGroup($value, $cacheKey, $metadata, $group, $context);
-        }
-
-        if (0 === count($groups)) {
-            return;
-        }
-
-        if (null === $value) {
-            return;
-        }
-
-        $cascadingStrategy = $metadata->getCascadingStrategy();
-
-        // Quit unless we have an array or a cascaded object
-        if (!is_array($value) && !($cascadingStrategy & CascadingStrategy::CASCADE)) {
-            return;
-        }
-
-        // If no specific traversal strategy was requested when this method
-        // was called, use the traversal strategy of the node's metadata
-        if ($traversalStrategy & TraversalStrategy::IMPLICIT) {
-            // Keep the STOP_RECURSION flag, if it was set
-            $traversalStrategy = $metadata->getTraversalStrategy()
-                | ($traversalStrategy & TraversalStrategy::STOP_RECURSION);
-        }
-
-        // The $cascadedGroups property is set, if the "Default" group is
-        // overridden by a group sequence
-        // See validateClassNode()
-        $cascadedGroups = count($cascadedGroups) > 0
-            ? $cascadedGroups
-            : $groups;
-
-        if (is_array($value)) {
-            // Arrays are always traversed, independent of the specified
-            // traversal strategy
-            // (BC with Symfony < 2.5)
-            $this->validateEachObjectIn(
-                $value,
-                $propertyPath,
-                $cascadedGroups,
-                $traversalStrategy & TraversalStrategy::STOP_RECURSION,
-                $context
-            );
-
-            return;
-        }
-
-        // If the value is a scalar, pass it anyway, because we want
-        // a NoSuchMetadataException to be thrown in that case
-        // (BC with Symfony < 2.5)
-        $this->validateObject(
-            $value,
-            $propertyPath,
-            $cascadedGroups,
-            $traversalStrategy,
-            $context
-        );
-
-        // Currently, the traversal strategy can only be TRAVERSE for a
-        // generic node if the cascading strategy is CASCADE. Thus, traversable
-        // objects will always be handled within validateObject() and there's
-        // nothing more to do here.
-
-        // see GenericMetadata::addConstraint()
-    }
-
-    /**
-     * Sequentially validates a node's value in each group of a group sequence.
-     *
-     * If any of the constraints generates a violation, subsequent groups in the
-     * group sequence are skipped.
-     *
-     * @param mixed                     $value             The validated value
-     * @param object|null               $object            The current object
-     * @param string                    $cacheKey          The key for caching
-     *                                                     the validated value
-     * @param MetadataInterface         $metadata          The metadata of the
-     *                                                     value
-     * @param string                    $propertyPath      The property path leading
-     *                                                     to the value
-     * @param int                       $traversalStrategy The strategy used for
-     *                                                     traversing the value
-     * @param GroupSequence             $groupSequence     The group sequence
-     * @param string[]|null             $cascadedGroup     The group that should
-     *                                                     be passed to cascaded
-     *                                                     objects instead of
-     *                                                     the group sequence
-     * @param ExecutionContextInterface $context           The execution context
-     */
-    private function stepThroughGroupSequence($value, $object, $cacheKey, MetadataInterface $metadata = null, $propertyPath, $traversalStrategy, GroupSequence $groupSequence, $cascadedGroup, ExecutionContextInterface $context)
-    {
-        $violationCount = count($context->getViolations());
-        $cascadedGroups = $cascadedGroup ? array($cascadedGroup) : null;
-
-        foreach ($groupSequence->groups as $groupInSequence) {
-            $groups = array($groupInSequence);
-
-            if ($metadata instanceof ClassMetadataInterface) {
-                $this->validateClassNode(
-                     $value,
-                     $cacheKey,
-                     $metadata,
-                     $propertyPath,
-                     $groups,
-                     $cascadedGroups,
-                     $traversalStrategy,
-                     $context
-                );
-            } else {
-                $this->validateGenericNode(
-                     $value,
-                     $object,
-                     $cacheKey,
-                     $metadata,
-                     $propertyPath,
-                     $groups,
-                     $cascadedGroups,
-                     $traversalStrategy,
-                     $context
-                );
-            }
-
-            // Abort sequence validation if a violation was generated
-            if (count($context->getViolations()) > $violationCount) {
-                break;
-            }
-        }
-    }
-
-    /**
-     * Validates a node's value against all constraints in the given group.
-     *
-     * @param mixed                     $value    The validated value
-     * @param string                    $cacheKey The key for caching the
-     *                                            validated value
-     * @param MetadataInterface         $metadata The metadata of the value
-     * @param string                    $group    The group to validate
-     * @param ExecutionContextInterface $context  The execution context
-     */
-    private function validateInGroup($value, $cacheKey, MetadataInterface $metadata, $group, ExecutionContextInterface $context)
-    {
-        $context->setGroup($group);
-
-        foreach ($metadata->findConstraints($group) as $constraint) {
-            // Prevent duplicate validation of constraints, in the case
-            // that constraints belong to multiple validated groups
-            if (null !== $cacheKey) {
-                $constraintHash = spl_object_hash($constraint);
-
-                if ($context->isConstraintValidated($cacheKey, $constraintHash)) {
-                    continue;
-                }
-
-                $context->markConstraintAsValidated($cacheKey, $constraintHash);
-            }
-
-            $context->setConstraint($constraint);
-
-            $validator = $this->validatorFactory->getInstance($constraint);
-            $validator->initialize($context);
-            $validator->validate($value, $constraint);
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/Validator/RecursiveValidator.php b/core/vendor/symfony/validator/Validator/RecursiveValidator.php
deleted file mode 100644
index e4dc0fb..0000000
--- a/core/vendor/symfony/validator/Validator/RecursiveValidator.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Validator;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\Constraints\GroupSequence;
-use Symfony\Component\Validator\Constraints\Valid;
-use Symfony\Component\Validator\ConstraintValidatorFactoryInterface;
-use Symfony\Component\Validator\Context\ExecutionContextFactoryInterface;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\MetadataFactoryInterface;
-use Symfony\Component\Validator\ObjectInitializerInterface;
-use Symfony\Component\Validator\ValidatorInterface as LegacyValidatorInterface;
-
-/**
- * Recursive implementation of {@link ValidatorInterface}.
- *
- * @since  2.5
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class RecursiveValidator implements ValidatorInterface, LegacyValidatorInterface
-{
-    /**
-     * @var ExecutionContextFactoryInterface
-     */
-    protected $contextFactory;
-
-    /**
-     * @var MetadataFactoryInterface
-     */
-    protected $metadataFactory;
-
-    /**
-     * @var ConstraintValidatorFactoryInterface
-     */
-    protected $validatorFactory;
-
-    /**
-     * @var ObjectInitializerInterface[]
-     */
-    protected $objectInitializers;
-
-    /**
-     * Creates a new validator.
-     *
-     * @param ExecutionContextFactoryInterface    $contextFactory     The factory for
-     *                                                                creating new contexts
-     * @param MetadataFactoryInterface            $metadataFactory    The factory for
-     *                                                                fetching the metadata
-     *                                                                of validated objects
-     * @param ConstraintValidatorFactoryInterface $validatorFactory   The factory for creating
-     *                                                                constraint validators
-     * @param ObjectInitializerInterface[]        $objectInitializers The object initializers
-     */
-    public function __construct(ExecutionContextFactoryInterface $contextFactory, MetadataFactoryInterface $metadataFactory, ConstraintValidatorFactoryInterface $validatorFactory, array $objectInitializers = array())
-    {
-        $this->contextFactory = $contextFactory;
-        $this->metadataFactory = $metadataFactory;
-        $this->validatorFactory = $validatorFactory;
-        $this->objectInitializers = $objectInitializers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function startContext($root = null)
-    {
-        return new RecursiveContextualValidator(
-            $this->contextFactory->createContext($this, $root),
-            $this->metadataFactory,
-            $this->validatorFactory,
-            $this->objectInitializers
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function inContext(ExecutionContextInterface $context)
-    {
-        return new RecursiveContextualValidator(
-            $context,
-            $this->metadataFactory,
-            $this->validatorFactory,
-            $this->objectInitializers
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFor($object)
-    {
-        return $this->metadataFactory->getMetadataFor($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hasMetadataFor($object)
-    {
-        return $this->metadataFactory->hasMetadataFor($object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validate($value, $groups = null, $traverse = false, $deep = false)
-    {
-        $numArgs = func_num_args();
-
-        // Use new signature if constraints are given in the second argument
-        if (self::testConstraints($groups) && ($numArgs < 3 || 3 === $numArgs && self::testGroups($traverse))) {
-            // Rename to avoid total confusion ;)
-            $constraints = $groups;
-            $groups = $traverse;
-        } else {
-            @trigger_error('The Symfony\Component\Validator\ValidatorInterface::validate method is deprecated in version 2.5 and will be removed in version 3.0. Use the Symfony\Component\Validator\Validator\ValidatorInterface::validate method instead.', E_USER_DEPRECATED);
-
-            $constraints = new Valid(array('traverse' => $traverse, 'deep' => $deep));
-        }
-
-        return $this->startContext($value)
-            ->validate($value, $constraints, $groups)
-            ->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validateProperty($object, $propertyName, $groups = null)
-    {
-        return $this->startContext($object)
-            ->validateProperty($object, $propertyName, $groups)
-            ->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validatePropertyValue($objectOrClass, $propertyName, $value, $groups = null)
-    {
-        // If a class name is passed, take $value as root
-        return $this->startContext(is_object($objectOrClass) ? $objectOrClass : $value)
-            ->validatePropertyValue($objectOrClass, $propertyName, $value, $groups)
-            ->getViolations();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function validateValue($value, $constraints, $groups = null)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated in version 2.5 and will be removed in version 3.0. Use the Symfony\Component\Validator\Validator\ValidatorInterface::validate method instead.', E_USER_DEPRECATED);
-
-        return $this->validate($value, $constraints, $groups);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadataFactory()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated in version 2.5 and will be removed in version 3.0. Use the Symfony\Component\Validator\Validator\ValidatorInterface::getMetadataFor or Symfony\Component\Validator\Validator\ValidatorInterface::hasMetadataFor method instead.', E_USER_DEPRECATED);
-
-        return $this->metadataFactory;
-    }
-
-    private static function testConstraints($constraints)
-    {
-        return null === $constraints || $constraints instanceof Constraint || (is_array($constraints) && (0 === count($constraints) || current($constraints) instanceof Constraint));
-    }
-
-    private static function testGroups($groups)
-    {
-        return null === $groups || is_string($groups) || $groups instanceof GroupSequence || (is_array($groups) && (0 === count($groups) || is_string(current($groups)) || current($groups) instanceof GroupSequence));
-    }
-}
diff --git a/core/vendor/symfony/validator/Validator/ValidatorInterface.php b/core/vendor/symfony/validator/Validator/ValidatorInterface.php
deleted file mode 100644
index 2582bf6..0000000
--- a/core/vendor/symfony/validator/Validator/ValidatorInterface.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Validator;
-
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintViolationListInterface;
-use Symfony\Component\Validator\Context\ExecutionContextInterface;
-use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
-
-/**
- * Validates PHP values against constraints.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ValidatorInterface extends MetadataFactoryInterface
-{
-    /**
-     * Validates a value against a constraint or a list of constraints.
-     *
-     * If no constraint is passed, the constraint
-     * {@link \Symfony\Component\Validator\Constraints\Valid} is assumed.
-     *
-     * @param mixed                   $value       The value to validate
-     * @param Constraint|Constraint[] $constraints The constraint(s) to validate
-     *                                             against
-     * @param array|null              $groups      The validation groups to
-     *                                             validate. If none is given,
-     *                                             "Default" is assumed
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations.
-     *                                          If the list is empty, validation
-     *                                          succeeded
-     */
-    public function validate($value, $constraints = null, $groups = null);
-
-    /**
-     * Validates a property of an object against the constraints specified
-     * for this property.
-     *
-     * @param object     $object       The object
-     * @param string     $propertyName The name of the validated property
-     * @param array|null $groups       The validation groups to validate. If
-     *                                 none is given, "Default" is assumed
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations.
-     *                                          If the list is empty, validation
-     *                                          succeeded
-     */
-    public function validateProperty($object, $propertyName, $groups = null);
-
-    /**
-     * Validates a value against the constraints specified for an object's
-     * property.
-     *
-     * @param object|string $objectOrClass The object or its class name
-     * @param string        $propertyName  The name of the property
-     * @param mixed         $value         The value to validate against the
-     *                                     property's constraints
-     * @param array|null    $groups        The validation groups to validate. If
-     *                                     none is given, "Default" is assumed
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations.
-     *                                          If the list is empty, validation
-     *                                          succeeded
-     */
-    public function validatePropertyValue($objectOrClass, $propertyName, $value, $groups = null);
-
-    /**
-     * Starts a new validation context and returns a validator for that context.
-     *
-     * The returned validator collects all violations generated within its
-     * context. You can access these violations with the
-     * {@link ContextualValidatorInterface::getViolations()} method.
-     *
-     * @return ContextualValidatorInterface The validator for the new context
-     */
-    public function startContext();
-
-    /**
-     * Returns a validator in the given execution context.
-     *
-     * The returned validator adds all generated violations to the given
-     * context.
-     *
-     * @param ExecutionContextInterface $context The execution context
-     *
-     * @return ContextualValidatorInterface The validator for that context
-     */
-    public function inContext(ExecutionContextInterface $context);
-}
diff --git a/core/vendor/symfony/validator/ValidatorBuilder.php b/core/vendor/symfony/validator/ValidatorBuilder.php
deleted file mode 100644
index 4a69976..0000000
--- a/core/vendor/symfony/validator/ValidatorBuilder.php
+++ /dev/null
@@ -1,387 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-use Doctrine\Common\Annotations\AnnotationReader;
-use Doctrine\Common\Annotations\CachedReader;
-use Doctrine\Common\Annotations\Reader;
-use Doctrine\Common\Cache\ArrayCache;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\Translation\IdentityTranslator;
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Context\ExecutionContextFactory;
-use Symfony\Component\Validator\Exception\InvalidArgumentException;
-use Symfony\Component\Validator\Exception\ValidatorException;
-use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
-use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
-use Symfony\Component\Validator\Mapping\Loader\AnnotationLoader;
-use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
-use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
-use Symfony\Component\Validator\Mapping\Loader\XmlFileLoader;
-use Symfony\Component\Validator\Mapping\Loader\XmlFilesLoader;
-use Symfony\Component\Validator\Mapping\Loader\YamlFileLoader;
-use Symfony\Component\Validator\Mapping\Loader\YamlFilesLoader;
-use Symfony\Component\Validator\Validator\RecursiveValidator;
-
-/**
- * The default implementation of {@link ValidatorBuilderInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-class ValidatorBuilder implements ValidatorBuilderInterface
-{
-    /**
-     * @var array
-     */
-    private $initializers = array();
-
-    /**
-     * @var array
-     */
-    private $xmlMappings = array();
-
-    /**
-     * @var array
-     */
-    private $yamlMappings = array();
-
-    /**
-     * @var array
-     */
-    private $methodMappings = array();
-
-    /**
-     * @var Reader|null
-     */
-    private $annotationReader;
-
-    /**
-     * @var MetadataFactoryInterface|null
-     */
-    private $metadataFactory;
-
-    /**
-     * @var ConstraintValidatorFactoryInterface|null
-     */
-    private $validatorFactory;
-
-    /**
-     * @var CacheInterface|null
-     */
-    private $metadataCache;
-
-    /**
-     * @var TranslatorInterface|null
-     */
-    private $translator;
-
-    /**
-     * @var null|string
-     */
-    private $translationDomain;
-
-    /**
-     * @var PropertyAccessorInterface|null
-     */
-    private $propertyAccessor;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addObjectInitializer(ObjectInitializerInterface $initializer)
-    {
-        $this->initializers[] = $initializer;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addObjectInitializers(array $initializers)
-    {
-        $this->initializers = array_merge($this->initializers, $initializers);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addXmlMapping($path)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->xmlMappings[] = $path;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addXmlMappings(array $paths)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->xmlMappings = array_merge($this->xmlMappings, $paths);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addYamlMapping($path)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->yamlMappings[] = $path;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addYamlMappings(array $paths)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->yamlMappings = array_merge($this->yamlMappings, $paths);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addMethodMapping($methodName)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->methodMappings[] = $methodName;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addMethodMappings(array $methodNames)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot add custom mappings after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->methodMappings = array_merge($this->methodMappings, $methodNames);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function enableAnnotationMapping(Reader $annotationReader = null)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot enable annotation mapping after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        if (null === $annotationReader) {
-            if (!class_exists('Doctrine\Common\Annotations\AnnotationReader') || !class_exists('Doctrine\Common\Cache\ArrayCache')) {
-                throw new \RuntimeException('Enabling annotation based constraint mapping requires the packages doctrine/annotations and doctrine/cache to be installed.');
-            }
-
-            $annotationReader = new CachedReader(new AnnotationReader(), new ArrayCache());
-        }
-
-        $this->annotationReader = $annotationReader;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function disableAnnotationMapping()
-    {
-        $this->annotationReader = null;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setMetadataFactory(MetadataFactoryInterface $metadataFactory)
-    {
-        if (count($this->xmlMappings) > 0 || count($this->yamlMappings) > 0 || count($this->methodMappings) > 0 || null !== $this->annotationReader) {
-            throw new ValidatorException('You cannot set a custom metadata factory after adding custom mappings. You should do either of both.');
-        }
-
-        $this->metadataFactory = $metadataFactory;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setMetadataCache(CacheInterface $cache)
-    {
-        if (null !== $this->metadataFactory) {
-            throw new ValidatorException('You cannot set a custom metadata cache after setting a custom metadata factory. Configure your metadata factory instead.');
-        }
-
-        $this->metadataCache = $cache;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterface $validatorFactory)
-    {
-        if (null !== $this->propertyAccessor) {
-            throw new ValidatorException('You cannot set a validator factory after setting a custom property accessor. Remove the call to setPropertyAccessor() if you want to call setConstraintValidatorFactory().');
-        }
-
-        $this->validatorFactory = $validatorFactory;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setTranslator(TranslatorInterface $translator)
-    {
-        $this->translator = $translator;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setTranslationDomain($translationDomain)
-    {
-        $this->translationDomain = $translationDomain;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             The validator will function without a property accessor.
-     */
-    public function setPropertyAccessor(PropertyAccessorInterface $propertyAccessor)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 2.5 and will be removed in 3.0. The validator will function without a property accessor.', E_USER_DEPRECATED);
-
-        if (null !== $this->validatorFactory) {
-            throw new ValidatorException('You cannot set a property accessor after setting a custom validator factory. Configure your validator factory instead.');
-        }
-
-        $this->propertyAccessor = $propertyAccessor;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @deprecated since version 2.7, to be removed in 3.0.
-     */
-    public function setApiVersion($apiVersion)
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated in version 2.7 and will be removed in version 3.0.', E_USER_DEPRECATED);
-
-        if (!in_array($apiVersion, array(Validation::API_VERSION_2_4, Validation::API_VERSION_2_5, Validation::API_VERSION_2_5_BC))) {
-            throw new InvalidArgumentException(sprintf('The requested API version is invalid: "%s"', $apiVersion));
-        }
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getValidator()
-    {
-        $metadataFactory = $this->metadataFactory;
-
-        if (!$metadataFactory) {
-            $loaders = array();
-
-            if (count($this->xmlMappings) > 1) {
-                $loaders[] = new XmlFilesLoader($this->xmlMappings);
-            } elseif (1 === count($this->xmlMappings)) {
-                $loaders[] = new XmlFileLoader($this->xmlMappings[0]);
-            }
-
-            if (count($this->yamlMappings) > 1) {
-                $loaders[] = new YamlFilesLoader($this->yamlMappings);
-            } elseif (1 === count($this->yamlMappings)) {
-                $loaders[] = new YamlFileLoader($this->yamlMappings[0]);
-            }
-
-            foreach ($this->methodMappings as $methodName) {
-                $loaders[] = new StaticMethodLoader($methodName);
-            }
-
-            if ($this->annotationReader) {
-                $loaders[] = new AnnotationLoader($this->annotationReader);
-            }
-
-            $loader = null;
-
-            if (count($loaders) > 1) {
-                $loader = new LoaderChain($loaders);
-            } elseif (1 === count($loaders)) {
-                $loader = $loaders[0];
-            }
-
-            $metadataFactory = new LazyLoadingMetadataFactory($loader, $this->metadataCache);
-        }
-
-        $validatorFactory = $this->validatorFactory ?: new ConstraintValidatorFactory($this->propertyAccessor);
-        $translator = $this->translator;
-
-        if (null === $translator) {
-            $translator = new IdentityTranslator();
-            // Force the locale to be 'en' when no translator is provided rather than relying on the Intl default locale
-            // This avoids depending on Intl or the stub implementation being available. It also ensures that Symfony
-            // validation messages are pluralized properly even when the default locale gets changed because they are in
-            // English.
-            $translator->setLocale('en');
-        }
-
-        $contextFactory = new ExecutionContextFactory($translator, $this->translationDomain);
-
-        return new RecursiveValidator($contextFactory, $metadataFactory, $validatorFactory, $this->initializers);
-    }
-}
diff --git a/core/vendor/symfony/validator/ValidatorBuilderInterface.php b/core/vendor/symfony/validator/ValidatorBuilderInterface.php
deleted file mode 100644
index cc00077..0000000
--- a/core/vendor/symfony/validator/ValidatorBuilderInterface.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-use Doctrine\Common\Annotations\Reader;
-use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
-
-/**
- * A configurable builder for ValidatorInterface objects.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ValidatorBuilderInterface
-{
-    /**
-     * Adds an object initializer to the validator.
-     *
-     * @param ObjectInitializerInterface $initializer The initializer
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addObjectInitializer(ObjectInitializerInterface $initializer);
-
-    /**
-     * Adds a list of object initializers to the validator.
-     *
-     * @param array $initializers The initializer
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addObjectInitializers(array $initializers);
-
-    /**
-     * Adds an XML constraint mapping file to the validator.
-     *
-     * @param string $path The path to the mapping file
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addXmlMapping($path);
-
-    /**
-     * Adds a list of XML constraint mapping files to the validator.
-     *
-     * @param array $paths The paths to the mapping files
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addXmlMappings(array $paths);
-
-    /**
-     * Adds a YAML constraint mapping file to the validator.
-     *
-     * @param string $path The path to the mapping file
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addYamlMapping($path);
-
-    /**
-     * Adds a list of YAML constraint mappings file to the validator.
-     *
-     * @param array $paths The paths to the mapping files
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addYamlMappings(array $paths);
-
-    /**
-     * Enables constraint mapping using the given static method.
-     *
-     * @param string $methodName The name of the method
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addMethodMapping($methodName);
-
-    /**
-     * Enables constraint mapping using the given static methods.
-     *
-     * @param array $methodNames The names of the methods
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function addMethodMappings(array $methodNames);
-
-    /**
-     * Enables annotation based constraint mapping.
-     *
-     * @param Reader $annotationReader The annotation reader to be used
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function enableAnnotationMapping(Reader $annotationReader = null);
-
-    /**
-     * Disables annotation based constraint mapping.
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function disableAnnotationMapping();
-
-    /**
-     * Sets the class metadata factory used by the validator.
-     *
-     * @param MetadataFactoryInterface $metadataFactory The metadata factory
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function setMetadataFactory(MetadataFactoryInterface $metadataFactory);
-
-    /**
-     * Sets the cache for caching class metadata.
-     *
-     * @param CacheInterface $cache The cache instance
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function setMetadataCache(CacheInterface $cache);
-
-    /**
-     * Sets the constraint validator factory used by the validator.
-     *
-     * @param ConstraintValidatorFactoryInterface $validatorFactory The validator factory
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterface $validatorFactory);
-
-    /**
-     * Sets the translator used for translating violation messages.
-     *
-     * @param TranslatorInterface $translator The translator instance
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function setTranslator(TranslatorInterface $translator);
-
-    /**
-     * Sets the default translation domain of violation messages.
-     *
-     * The same message can have different translations in different domains.
-     * Pass the domain that is used for violation messages by default to this
-     * method.
-     *
-     * @param string $translationDomain The translation domain of the violation messages
-     *
-     * @return ValidatorBuilderInterface The builder object
-     */
-    public function setTranslationDomain($translationDomain);
-
-    /**
-     * Sets the property accessor for resolving property paths.
-     *
-     * @param PropertyAccessorInterface $propertyAccessor The property accessor
-     *
-     * @return ValidatorBuilderInterface The builder object
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     */
-    public function setPropertyAccessor(PropertyAccessorInterface $propertyAccessor);
-
-    /**
-     * Sets the API version that the returned validator should support.
-     *
-     * @param int $apiVersion The required API version
-     *
-     * @return ValidatorBuilderInterface The builder object
-     *
-     * @see Validation::API_VERSION_2_5
-     * @see Validation::API_VERSION_2_5_BC
-     *
-     * @deprecated since version 2.7, to be removed in 3.0.
-     */
-    public function setApiVersion($apiVersion);
-
-    /**
-     * Builds and returns a new validator object.
-     *
-     * @return ValidatorInterface The built validator.
-     */
-    public function getValidator();
-}
diff --git a/core/vendor/symfony/validator/ValidatorInterface.php b/core/vendor/symfony/validator/ValidatorInterface.php
deleted file mode 100644
index 3682b15..0000000
--- a/core/vendor/symfony/validator/ValidatorInterface.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator;
-
-/**
- * Validates values and graphs of objects and arrays.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @api
- *
- * @deprecated since version 2.5, to be removed in 3.0.
- *             Use {@link \Symfony\Component\Validator\Validator\ValidatorInterface} instead.
- */
-interface ValidatorInterface
-{
-    /**
-     * Validates a value.
-     *
-     * The accepted values depend on the {@link MetadataFactoryInterface}
-     * implementation.
-     *
-     * The signature changed with Symfony 2.5 (see
-     * {@link Validator\ValidatorInterface::validate()}. This signature will be
-     * disabled in Symfony 3.0.
-     *
-     * @param mixed      $value    The value to validate
-     * @param array|null $groups   The validation groups to validate.
-     * @param bool       $traverse Whether to traverse the value if it is traversable.
-     * @param bool       $deep     Whether to traverse nested traversable values recursively.
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations. If the
-     *                                          list is empty, validation succeeded.
-     *
-     * @api
-     */
-    public function validate($value, $groups = null, $traverse = false, $deep = false);
-
-    /**
-     * Validates a property of a value against its current value.
-     *
-     * The accepted values depend on the {@link MetadataFactoryInterface}
-     * implementation.
-     *
-     * @param mixed      $containingValue The value containing the property.
-     * @param string     $property        The name of the property to validate.
-     * @param array|null $groups          The validation groups to validate.
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations. If the
-     *                                          list is empty, validation succeeded.
-     *
-     * @api
-     */
-    public function validateProperty($containingValue, $property, $groups = null);
-
-    /**
-     * Validate a property of a value against a potential value.
-     *
-     * The accepted values depend on the {@link MetadataFactoryInterface}
-     * implementation.
-     *
-     * @param mixed      $containingValue The value containing the property.
-     * @param string     $property        The name of the property to validate
-     * @param string     $value           The value to validate against the
-     *                                    constraints of the property.
-     * @param array|null $groups          The validation groups to validate.
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations. If the
-     *                                          list is empty, validation succeeded.
-     *
-     * @api
-     */
-    public function validatePropertyValue($containingValue, $property, $value, $groups = null);
-
-    /**
-     * Validates a value against a constraint or a list of constraints.
-     *
-     * @param mixed                   $value       The value to validate.
-     * @param Constraint|Constraint[] $constraints The constraint(s) to validate against.
-     * @param array|null              $groups      The validation groups to validate.
-     *
-     * @return ConstraintViolationListInterface A list of constraint violations. If the
-     *                                          list is empty, validation succeeded.
-     *
-     * @api
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Renamed to {@link Validator\ValidatorInterface::validate()}
-     *             in Symfony 2.5.
-     */
-    public function validateValue($value, $constraints, $groups = null);
-
-    /**
-     * Returns the factory for metadata instances.
-     *
-     * @return MetadataFactoryInterface The metadata factory.
-     *
-     * @api
-     *
-     * @deprecated since version 2.5, to be removed in 3.0.
-     *             Use {@link Validator\ValidatorInterface::getMetadataFor()} or
-     *             {@link Validator\ValidatorInterface::hasMetadataFor()}
-     *             instead.
-     */
-    public function getMetadataFactory();
-}
diff --git a/core/vendor/symfony/validator/Violation/ConstraintViolationBuilder.php b/core/vendor/symfony/validator/Violation/ConstraintViolationBuilder.php
deleted file mode 100644
index b752c39..0000000
--- a/core/vendor/symfony/validator/Violation/ConstraintViolationBuilder.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Violation;
-
-use Symfony\Component\Translation\TranslatorInterface;
-use Symfony\Component\Validator\Constraint;
-use Symfony\Component\Validator\ConstraintViolation;
-use Symfony\Component\Validator\ConstraintViolationList;
-use Symfony\Component\Validator\Util\PropertyPath;
-
-/**
- * Default implementation of {@link ConstraintViolationBuilderInterface}.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @internal You should not instantiate or use this class. Code against
- *           {@link ConstraintViolationBuilderInterface} instead.
- */
-class ConstraintViolationBuilder implements ConstraintViolationBuilderInterface
-{
-    /**
-     * @var ConstraintViolationList
-     */
-    private $violations;
-
-    /**
-     * @var string
-     */
-    private $message;
-
-    /**
-     * @var array
-     */
-    private $parameters;
-
-    /**
-     * @var mixed
-     */
-    private $root;
-
-    /**
-     * @var mixed
-     */
-    private $invalidValue;
-
-    /**
-     * @var string
-     */
-    private $propertyPath;
-
-    /**
-     * @var TranslatorInterface
-     */
-    private $translator;
-
-    /**
-     * @var string|null
-     */
-    private $translationDomain;
-
-    /**
-     * @var int|null
-     */
-    private $plural;
-
-    /**
-     * @var Constraint
-     */
-    private $constraint;
-
-    /**
-     * @var mixed
-     */
-    private $code;
-
-    /**
-     * @var mixed
-     */
-    private $cause;
-
-    public function __construct(ConstraintViolationList $violations, Constraint $constraint, $message, array $parameters, $root, $propertyPath, $invalidValue, TranslatorInterface $translator, $translationDomain = null)
-    {
-        $this->violations = $violations;
-        $this->message = $message;
-        $this->parameters = $parameters;
-        $this->root = $root;
-        $this->propertyPath = $propertyPath;
-        $this->invalidValue = $invalidValue;
-        $this->translator = $translator;
-        $this->translationDomain = $translationDomain;
-        $this->constraint = $constraint;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function atPath($path)
-    {
-        $this->propertyPath = PropertyPath::append($this->propertyPath, $path);
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameter($key, $value)
-    {
-        $this->parameters[$key] = $value;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameters(array $parameters)
-    {
-        $this->parameters = $parameters;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setTranslationDomain($translationDomain)
-    {
-        $this->translationDomain = $translationDomain;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setInvalidValue($invalidValue)
-    {
-        $this->invalidValue = $invalidValue;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setPlural($number)
-    {
-        $this->plural = $number;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setCode($code)
-    {
-        $this->code = $code;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setCause($cause)
-    {
-        $this->cause = $cause;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addViolation()
-    {
-        if (null === $this->plural) {
-            $translatedMessage = $this->translator->trans(
-                $this->message,
-                $this->parameters,
-                $this->translationDomain
-            );
-        } else {
-            try {
-                $translatedMessage = $this->translator->transChoice(
-                    $this->message,
-                    $this->plural,
-                    $this->parameters,
-                    $this->translationDomain#
-                );
-            } catch (\InvalidArgumentException $e) {
-                $translatedMessage = $this->translator->trans(
-                    $this->message,
-                    $this->parameters,
-                    $this->translationDomain
-                );
-            }
-        }
-
-        $this->violations->add(new ConstraintViolation(
-            $translatedMessage,
-            $this->message,
-            $this->parameters,
-            $this->root,
-            $this->propertyPath,
-            $this->invalidValue,
-            $this->plural,
-            $this->code,
-            $this->constraint,
-            $this->cause
-        ));
-    }
-}
diff --git a/core/vendor/symfony/validator/Violation/ConstraintViolationBuilderInterface.php b/core/vendor/symfony/validator/Violation/ConstraintViolationBuilderInterface.php
deleted file mode 100644
index 3dc270a..0000000
--- a/core/vendor/symfony/validator/Violation/ConstraintViolationBuilderInterface.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Violation;
-
-/**
- * Builds {@link \Symfony\Component\Validator\ConstraintViolationInterface}
- * objects.
- *
- * Use the various methods on this interface to configure the built violation.
- * Finally, call {@link addViolation()} to add the violation to the current
- * execution context.
- *
- * @since  2.5
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
-interface ConstraintViolationBuilderInterface
-{
-    /**
-     * Stores the property path at which the violation should be generated.
-     *
-     * The passed path will be appended to the current property path of the
-     * execution context.
-     *
-     * @param string $path The property path
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     */
-    public function atPath($path);
-
-    /**
-     * Sets a parameter to be inserted into the violation message.
-     *
-     * @param string $key   The name of the parameter
-     * @param string $value The value to be inserted in the parameter's place
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     */
-    public function setParameter($key, $value);
-
-    /**
-     * Sets all parameters to be inserted into the violation message.
-     *
-     * @param array $parameters An array with the parameter names as keys and
-     *                          the values to be inserted in their place as
-     *                          values
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     */
-    public function setParameters(array $parameters);
-
-    /**
-     * Sets the translation domain which should be used for translating the
-     * violation message.
-     *
-     * @param string $translationDomain The translation domain
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     *
-     * @see \Symfony\Component\Translation\TranslatorInterface
-     */
-    public function setTranslationDomain($translationDomain);
-
-    /**
-     * Sets the invalid value that caused this violation.
-     *
-     * @param mixed $invalidValue The invalid value
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     */
-    public function setInvalidValue($invalidValue);
-
-    /**
-     * Sets the number which determines how the plural form of the violation
-     * message is chosen when it is translated.
-     *
-     * @param int $number The number for determining the plural form
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     *
-     * @see \Symfony\Component\Translation\TranslatorInterface::transChoice()
-     */
-    public function setPlural($number);
-
-    /**
-     * Sets the violation code.
-     *
-     * @param int $code The violation code
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     */
-    public function setCode($code);
-
-    /**
-     * Sets the cause of the violation.
-     *
-     * @param mixed $cause The cause of the violation
-     *
-     * @return ConstraintViolationBuilderInterface This builder
-     */
-    public function setCause($cause);
-
-    /**
-     * Adds the violation to the current execution context.
-     */
-    public function addViolation();
-}
diff --git a/core/vendor/symfony/validator/Violation/LegacyConstraintViolationBuilder.php b/core/vendor/symfony/validator/Violation/LegacyConstraintViolationBuilder.php
deleted file mode 100644
index 7410b0a..0000000
--- a/core/vendor/symfony/validator/Violation/LegacyConstraintViolationBuilder.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Validator\Violation;
-
-@trigger_error('The '.__NAMESPACE__.'\LegacyConstraintViolationBuilder class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED);
-
-use Symfony\Component\Validator\ExecutionContextInterface;
-
-/**
- * Backwards-compatible implementation of {@link ConstraintViolationBuilderInterface}.
- *
- * @author Bernhard Schussek <bschussek@gmail.com>
- *
- * @internal You should not instantiate or use this class. Code against
- *           {@link ConstraintViolationBuilderInterface} instead.
- *
- * @deprecated since version 2.5.5, to be removed in 3.0.
- */
-class LegacyConstraintViolationBuilder implements ConstraintViolationBuilderInterface
-{
-    /**
-     * @var ExecutionContextInterface
-     */
-    private $context;
-
-    /**
-     * @var string
-     */
-    private $message;
-
-    /**
-     * @var array
-     */
-    private $parameters;
-
-    /**
-     * @var mixed
-     */
-    private $invalidValue;
-
-    /**
-     * @var string
-     */
-    private $propertyPath;
-
-    /**
-     * @var int|null
-     */
-    private $plural;
-
-    /**
-     * @var mixed
-     */
-    private $code;
-
-    public function __construct(ExecutionContextInterface $context, $message, array $parameters)
-    {
-        $this->context = $context;
-        $this->message = $message;
-        $this->parameters = $parameters;
-        $this->invalidValue = $context->getValue();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function atPath($path)
-    {
-        $this->propertyPath = $path;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameter($key, $value)
-    {
-        $this->parameters[$key] = $value;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setParameters(array $parameters)
-    {
-        $this->parameters = $parameters;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setTranslationDomain($translationDomain)
-    {
-        // can't be set in the old API
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setInvalidValue($invalidValue)
-    {
-        $this->invalidValue = $invalidValue;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setPlural($number)
-    {
-        $this->plural = $number;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setCode($code)
-    {
-        $this->code = $code;
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setCause($cause)
-    {
-        // do nothing - we can't save the cause through the old API
-
-        return $this;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function addViolation()
-    {
-        if ($this->propertyPath) {
-            $this->context->addViolationAt($this->propertyPath, $this->message, $this->parameters, $this->invalidValue, $this->plural, $this->code);
-
-            return;
-        }
-
-        $this->context->addViolation($this->message, $this->parameters, $this->invalidValue, $this->plural, $this->code);
-    }
-}
diff --git a/core/vendor/symfony/validator/composer.json b/core/vendor/symfony/validator/composer.json
deleted file mode 100644
index b89fe1b..0000000
--- a/core/vendor/symfony/validator/composer.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
-    "name": "symfony/validator",
-    "type": "library",
-    "description": "Symfony Validator Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9",
-        "symfony/translation": "~2.4"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7",
-        "symfony/http-foundation": "~2.1",
-        "symfony/intl": "~2.3",
-        "symfony/yaml": "~2.0,>=2.0.5",
-        "symfony/config": "~2.2",
-        "symfony/property-access": "~2.3",
-        "symfony/expression-language": "~2.4",
-        "doctrine/annotations": "~1.0",
-        "doctrine/cache": "~1.0",
-        "egulias/email-validator": "~1.2,>=1.2.1"
-    },
-    "suggest": {
-        "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
-        "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
-        "symfony/http-foundation": "",
-        "symfony/intl": "",
-        "symfony/yaml": "",
-        "symfony/config": "",
-        "egulias/email-validator": "Strict (RFC compliant) email validation",
-        "symfony/property-access": "For using the 2.4 Validator API",
-        "symfony/expression-language": "For using the 2.4 Expression validator"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Validator\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/validator/phpunit.xml.dist b/core/vendor/symfony/validator/phpunit.xml.dist
deleted file mode 100644
index 1bf4391..0000000
--- a/core/vendor/symfony/validator/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Validator Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./vendor</directory>
-                <directory>./Tests</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/symfony/yaml/.gitignore b/core/vendor/symfony/yaml/.gitignore
deleted file mode 100644
index c49a5d8..0000000
--- a/core/vendor/symfony/yaml/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-vendor/
-composer.lock
-phpunit.xml
diff --git a/core/vendor/symfony/yaml/CHANGELOG.md b/core/vendor/symfony/yaml/CHANGELOG.md
deleted file mode 100644
index 096cf65..0000000
--- a/core/vendor/symfony/yaml/CHANGELOG.md
+++ /dev/null
@@ -1,8 +0,0 @@
-CHANGELOG
-=========
-
-2.1.0
------
-
- * Yaml::parse() does not evaluate loaded files as PHP files by default
-   anymore (call Yaml::enablePhpParsing() to get back the old behavior)
diff --git a/core/vendor/symfony/yaml/Dumper.php b/core/vendor/symfony/yaml/Dumper.php
deleted file mode 100644
index 39cdcfc..0000000
--- a/core/vendor/symfony/yaml/Dumper.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml;
-
-/**
- * Dumper dumps PHP variables to YAML strings.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Dumper
-{
-    /**
-     * The amount of spaces to use for indentation of nested nodes.
-     *
-     * @var int
-     */
-    protected $indentation = 4;
-
-    /**
-     * Sets the indentation.
-     *
-     * @param int $num The amount of spaces to use for indentation of nested nodes.
-     */
-    public function setIndentation($num)
-    {
-        $this->indentation = (int) $num;
-    }
-
-    /**
-     * Dumps a PHP value to YAML.
-     *
-     * @param mixed $input                  The PHP value
-     * @param int   $inline                 The level where you switch to inline YAML
-     * @param int   $indent                 The level of indentation (used internally)
-     * @param bool  $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool  $objectSupport          true if object support is enabled, false otherwise
-     *
-     * @return string The YAML representation of the PHP value
-     */
-    public function dump($input, $inline = 0, $indent = 0, $exceptionOnInvalidType = false, $objectSupport = false)
-    {
-        $output = '';
-        $prefix = $indent ? str_repeat(' ', $indent) : '';
-
-        if ($inline <= 0 || !is_array($input) || empty($input)) {
-            $output .= $prefix.Inline::dump($input, $exceptionOnInvalidType, $objectSupport);
-        } else {
-            $isAHash = array_keys($input) !== range(0, count($input) - 1);
-
-            foreach ($input as $key => $value) {
-                $willBeInlined = $inline - 1 <= 0 || !is_array($value) || empty($value);
-
-                $output .= sprintf('%s%s%s%s',
-                    $prefix,
-                    $isAHash ? Inline::dump($key, $exceptionOnInvalidType, $objectSupport).':' : '-',
-                    $willBeInlined ? ' ' : "\n",
-                    $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $exceptionOnInvalidType, $objectSupport)
-                ).($willBeInlined ? "\n" : '');
-            }
-        }
-
-        return $output;
-    }
-}
diff --git a/core/vendor/symfony/yaml/Escaper.php b/core/vendor/symfony/yaml/Escaper.php
deleted file mode 100644
index ac325a2..0000000
--- a/core/vendor/symfony/yaml/Escaper.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml;
-
-/**
- * Escaper encapsulates escaping rules for single and double-quoted
- * YAML strings.
- *
- * @author Matthew Lewinski <matthew@lewinski.org>
- */
-class Escaper
-{
-    // Characters that would cause a dumped string to require double quoting.
-    const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9";
-
-    // Mapping arrays for escaping a double quoted string. The backslash is
-    // first to ensure proper escaping because str_replace operates iteratively
-    // on the input arrays. This ordering of the characters avoids the use of strtr,
-    // which performs more slowly.
-    private static $escapees = array('\\', '\\\\', '\\"', '"',
-                                     "\x00",  "\x01",  "\x02",  "\x03",  "\x04",  "\x05",  "\x06",  "\x07",
-                                     "\x08",  "\x09",  "\x0a",  "\x0b",  "\x0c",  "\x0d",  "\x0e",  "\x0f",
-                                     "\x10",  "\x11",  "\x12",  "\x13",  "\x14",  "\x15",  "\x16",  "\x17",
-                                     "\x18",  "\x19",  "\x1a",  "\x1b",  "\x1c",  "\x1d",  "\x1e",  "\x1f",
-                                     "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",);
-    private static $escaped = array('\\\\', '\\"', '\\\\', '\\"',
-                                     '\\0',   '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a',
-                                     '\\b',   '\\t',   '\\n',   '\\v',   '\\f',   '\\r',   '\\x0e', '\\x0f',
-                                     '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
-                                     '\\x18', '\\x19', '\\x1a', '\\e',   '\\x1c', '\\x1d', '\\x1e', '\\x1f',
-                                     '\\N', '\\_', '\\L', '\\P',);
-
-    /**
-     * Determines if a PHP value would require double quoting in YAML.
-     *
-     * @param string $value A PHP value
-     *
-     * @return bool True if the value would require double quotes.
-     */
-    public static function requiresDoubleQuoting($value)
-    {
-        return preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value);
-    }
-
-    /**
-     * Escapes and surrounds a PHP value with double quotes.
-     *
-     * @param string $value A PHP value
-     *
-     * @return string The quoted, escaped string
-     */
-    public static function escapeWithDoubleQuotes($value)
-    {
-        return sprintf('"%s"', str_replace(self::$escapees, self::$escaped, $value));
-    }
-
-    /**
-     * Determines if a PHP value would require single quoting in YAML.
-     *
-     * @param string $value A PHP value
-     *
-     * @return bool True if the value would require single quotes.
-     */
-    public static function requiresSingleQuoting($value)
-    {
-        // Determines if a PHP value is entirely composed of a value that would
-        // require single quoting in YAML.
-        if (in_array(strtolower($value), array('null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'))) {
-            return true;
-        }
-
-        // Determines if the PHP value contains any single characters that would
-        // cause it to require single quoting in YAML.
-        return preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
-    }
-
-    /**
-     * Escapes and surrounds a PHP value with single quotes.
-     *
-     * @param string $value A PHP value
-     *
-     * @return string The quoted, escaped string
-     */
-    public static function escapeWithSingleQuotes($value)
-    {
-        return sprintf("'%s'", str_replace('\'', '\'\'', $value));
-    }
-}
diff --git a/core/vendor/symfony/yaml/Exception/DumpException.php b/core/vendor/symfony/yaml/Exception/DumpException.php
deleted file mode 100644
index 9b3e6de..0000000
--- a/core/vendor/symfony/yaml/Exception/DumpException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Exception;
-
-/**
- * Exception class thrown when an error occurs during dumping.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class DumpException extends RuntimeException
-{
-}
diff --git a/core/vendor/symfony/yaml/Exception/ExceptionInterface.php b/core/vendor/symfony/yaml/Exception/ExceptionInterface.php
deleted file mode 100644
index 92e5c2e..0000000
--- a/core/vendor/symfony/yaml/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Exception;
-
-/**
- * Exception interface for all exceptions thrown by the component.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/yaml/Exception/ParseException.php b/core/vendor/symfony/yaml/Exception/ParseException.php
deleted file mode 100644
index 0447dff..0000000
--- a/core/vendor/symfony/yaml/Exception/ParseException.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Exception;
-
-/**
- * Exception class thrown when an error occurs during parsing.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class ParseException extends RuntimeException
-{
-    private $parsedFile;
-    private $parsedLine;
-    private $snippet;
-    private $rawMessage;
-
-    /**
-     * Constructor.
-     *
-     * @param string     $message    The error message
-     * @param int        $parsedLine The line where the error occurred
-     * @param int        $snippet    The snippet of code near the problem
-     * @param string     $parsedFile The file name where the error occurred
-     * @param \Exception $previous   The previous exception
-     */
-    public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, \Exception $previous = null)
-    {
-        $this->parsedFile = $parsedFile;
-        $this->parsedLine = $parsedLine;
-        $this->snippet = $snippet;
-        $this->rawMessage = $message;
-
-        $this->updateRepr();
-
-        parent::__construct($this->message, 0, $previous);
-    }
-
-    /**
-     * Gets the snippet of code near the error.
-     *
-     * @return string The snippet of code
-     */
-    public function getSnippet()
-    {
-        return $this->snippet;
-    }
-
-    /**
-     * Sets the snippet of code near the error.
-     *
-     * @param string $snippet The code snippet
-     */
-    public function setSnippet($snippet)
-    {
-        $this->snippet = $snippet;
-
-        $this->updateRepr();
-    }
-
-    /**
-     * Gets the filename where the error occurred.
-     *
-     * This method returns null if a string is parsed.
-     *
-     * @return string The filename
-     */
-    public function getParsedFile()
-    {
-        return $this->parsedFile;
-    }
-
-    /**
-     * Sets the filename where the error occurred.
-     *
-     * @param string $parsedFile The filename
-     */
-    public function setParsedFile($parsedFile)
-    {
-        $this->parsedFile = $parsedFile;
-
-        $this->updateRepr();
-    }
-
-    /**
-     * Gets the line where the error occurred.
-     *
-     * @return int The file line
-     */
-    public function getParsedLine()
-    {
-        return $this->parsedLine;
-    }
-
-    /**
-     * Sets the line where the error occurred.
-     *
-     * @param int $parsedLine The file line
-     */
-    public function setParsedLine($parsedLine)
-    {
-        $this->parsedLine = $parsedLine;
-
-        $this->updateRepr();
-    }
-
-    private function updateRepr()
-    {
-        $this->message = $this->rawMessage;
-
-        $dot = false;
-        if ('.' === substr($this->message, -1)) {
-            $this->message = substr($this->message, 0, -1);
-            $dot = true;
-        }
-
-        if (null !== $this->parsedFile) {
-            if (PHP_VERSION_ID >= 50400) {
-                $jsonOptions = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
-            } else {
-                $jsonOptions = 0;
-            }
-            $this->message .= sprintf(' in %s', json_encode($this->parsedFile, $jsonOptions));
-        }
-
-        if ($this->parsedLine >= 0) {
-            $this->message .= sprintf(' at line %d', $this->parsedLine);
-        }
-
-        if ($this->snippet) {
-            $this->message .= sprintf(' (near "%s")', $this->snippet);
-        }
-
-        if ($dot) {
-            $this->message .= '.';
-        }
-    }
-}
diff --git a/core/vendor/symfony/yaml/Exception/RuntimeException.php b/core/vendor/symfony/yaml/Exception/RuntimeException.php
deleted file mode 100644
index 3573bf1..0000000
--- a/core/vendor/symfony/yaml/Exception/RuntimeException.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Exception;
-
-/**
- * Exception class thrown when an error occurs during parsing.
- *
- * @author Romain Neutron <imprec@gmail.com>
- *
- * @api
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/symfony/yaml/Inline.php b/core/vendor/symfony/yaml/Inline.php
deleted file mode 100644
index 6e3877b..0000000
--- a/core/vendor/symfony/yaml/Inline.php
+++ /dev/null
@@ -1,546 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml;
-
-use Symfony\Component\Yaml\Exception\ParseException;
-use Symfony\Component\Yaml\Exception\DumpException;
-
-/**
- * Inline implements a YAML parser/dumper for the YAML inline syntax.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Inline
-{
-    const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\']*(?:\'\'[^\']*)*)\')';
-
-    private static $exceptionOnInvalidType = false;
-    private static $objectSupport = false;
-    private static $objectForMap = false;
-
-    /**
-     * Converts a YAML string to a PHP array.
-     *
-     * @param string $value                  A YAML string
-     * @param bool   $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool   $objectSupport          true if object support is enabled, false otherwise
-     * @param bool   $objectForMap           true if maps should return a stdClass instead of array()
-     * @param array  $references             Mapping of variable names to values
-     *
-     * @return array A PHP array representing the YAML string
-     *
-     * @throws ParseException
-     */
-    public static function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false, $references = array())
-    {
-        self::$exceptionOnInvalidType = $exceptionOnInvalidType;
-        self::$objectSupport = $objectSupport;
-        self::$objectForMap = $objectForMap;
-
-        $value = trim($value);
-
-        if ('' === $value) {
-            return '';
-        }
-
-        if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) {
-            $mbEncoding = mb_internal_encoding();
-            mb_internal_encoding('ASCII');
-        }
-
-        $i = 0;
-        switch ($value[0]) {
-            case '[':
-                $result = self::parseSequence($value, $i, $references);
-                ++$i;
-                break;
-            case '{':
-                $result = self::parseMapping($value, $i, $references);
-                ++$i;
-                break;
-            default:
-                $result = self::parseScalar($value, null, array('"', "'"), $i, true, $references);
-        }
-
-        // some comments are allowed at the end
-        if (preg_replace('/\s+#.*$/A', '', substr($value, $i))) {
-            throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)));
-        }
-
-        if (isset($mbEncoding)) {
-            mb_internal_encoding($mbEncoding);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Dumps a given PHP variable to a YAML string.
-     *
-     * @param mixed $value                  The PHP variable to convert
-     * @param bool  $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool  $objectSupport          true if object support is enabled, false otherwise
-     *
-     * @return string The YAML string representing the PHP array
-     *
-     * @throws DumpException When trying to dump PHP resource
-     */
-    public static function dump($value, $exceptionOnInvalidType = false, $objectSupport = false)
-    {
-        switch (true) {
-            case is_resource($value):
-                if ($exceptionOnInvalidType) {
-                    throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value)));
-                }
-
-                return 'null';
-            case is_object($value):
-                if ($objectSupport) {
-                    return '!!php/object:'.serialize($value);
-                }
-
-                if ($exceptionOnInvalidType) {
-                    throw new DumpException('Object support when dumping a YAML file has been disabled.');
-                }
-
-                return 'null';
-            case is_array($value):
-                return self::dumpArray($value, $exceptionOnInvalidType, $objectSupport);
-            case null === $value:
-                return 'null';
-            case true === $value:
-                return 'true';
-            case false === $value:
-                return 'false';
-            case ctype_digit($value):
-                return is_string($value) ? "'$value'" : (int) $value;
-            case is_numeric($value):
-                $locale = setlocale(LC_NUMERIC, 0);
-                if (false !== $locale) {
-                    setlocale(LC_NUMERIC, 'C');
-                }
-                if (is_float($value)) {
-                    $repr = (string) $value;
-                    if (is_infinite($value)) {
-                        $repr = str_ireplace('INF', '.Inf', $repr);
-                    } elseif (floor($value) == $value && $repr == $value) {
-                        // Preserve float data type since storing a whole number will result in integer value.
-                        $repr = '!!float '.$repr;
-                    }
-                } else {
-                    $repr = is_string($value) ? "'$value'" : (string) $value;
-                }
-                if (false !== $locale) {
-                    setlocale(LC_NUMERIC, $locale);
-                }
-
-                return $repr;
-            case '' == $value:
-                return "''";
-            case Escaper::requiresDoubleQuoting($value):
-                return Escaper::escapeWithDoubleQuotes($value);
-            case Escaper::requiresSingleQuoting($value):
-            case preg_match(self::getHexRegex(), $value):
-            case preg_match(self::getTimestampRegex(), $value):
-                return Escaper::escapeWithSingleQuotes($value);
-            default:
-                return $value;
-        }
-    }
-
-    /**
-     * Dumps a PHP array to a YAML string.
-     *
-     * @param array $value                  The PHP array to dump
-     * @param bool  $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool  $objectSupport          true if object support is enabled, false otherwise
-     *
-     * @return string The YAML string representing the PHP array
-     */
-    private static function dumpArray($value, $exceptionOnInvalidType, $objectSupport)
-    {
-        // array
-        $keys = array_keys($value);
-        $keysCount = count($keys);
-        if ((1 === $keysCount && '0' == $keys[0])
-            || ($keysCount > 1 && array_reduce($keys, function ($v, $w) { return (int) $v + $w; }, 0) === $keysCount * ($keysCount - 1) / 2)
-        ) {
-            $output = array();
-            foreach ($value as $val) {
-                $output[] = self::dump($val, $exceptionOnInvalidType, $objectSupport);
-            }
-
-            return sprintf('[%s]', implode(', ', $output));
-        }
-
-        // mapping
-        $output = array();
-        foreach ($value as $key => $val) {
-            $output[] = sprintf('%s: %s', self::dump($key, $exceptionOnInvalidType, $objectSupport), self::dump($val, $exceptionOnInvalidType, $objectSupport));
-        }
-
-        return sprintf('{ %s }', implode(', ', $output));
-    }
-
-    /**
-     * Parses a scalar to a YAML string.
-     *
-     * @param string $scalar
-     * @param string $delimiters
-     * @param array  $stringDelimiters
-     * @param int    &$i
-     * @param bool   $evaluate
-     * @param array  $references
-     *
-     * @return string A YAML string
-     *
-     * @throws ParseException When malformed inline YAML string is parsed
-     */
-    public static function parseScalar($scalar, $delimiters = null, $stringDelimiters = array('"', "'"), &$i = 0, $evaluate = true, $references = array())
-    {
-        if (in_array($scalar[$i], $stringDelimiters)) {
-            // quoted scalar
-            $output = self::parseQuotedScalar($scalar, $i);
-
-            if (null !== $delimiters) {
-                $tmp = ltrim(substr($scalar, $i), ' ');
-                if (!in_array($tmp[0], $delimiters)) {
-                    throw new ParseException(sprintf('Unexpected characters (%s).', substr($scalar, $i)));
-                }
-            }
-        } else {
-            // "normal" string
-            if (!$delimiters) {
-                $output = substr($scalar, $i);
-                $i += strlen($output);
-
-                // remove comments
-                if (false !== $strpos = strpos($output, ' #')) {
-                    $output = rtrim(substr($output, 0, $strpos));
-                }
-            } elseif (preg_match('/^(.+?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) {
-                $output = $match[1];
-                $i += strlen($output);
-            } else {
-                throw new ParseException(sprintf('Malformed inline YAML string (%s).', $scalar));
-            }
-
-            if ($evaluate) {
-                $output = self::evaluateScalar($output, $references);
-            }
-        }
-
-        return $output;
-    }
-
-    /**
-     * Parses a quoted scalar to YAML.
-     *
-     * @param string $scalar
-     * @param int    &$i
-     *
-     * @return string A YAML string
-     *
-     * @throws ParseException When malformed inline YAML string is parsed
-     */
-    private static function parseQuotedScalar($scalar, &$i)
-    {
-        if (!preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) {
-            throw new ParseException(sprintf('Malformed inline YAML string (%s).', substr($scalar, $i)));
-        }
-
-        $output = substr($match[0], 1, strlen($match[0]) - 2);
-
-        $unescaper = new Unescaper();
-        if ('"' == $scalar[$i]) {
-            $output = $unescaper->unescapeDoubleQuotedString($output);
-        } else {
-            $output = $unescaper->unescapeSingleQuotedString($output);
-        }
-
-        $i += strlen($match[0]);
-
-        return $output;
-    }
-
-    /**
-     * Parses a sequence to a YAML string.
-     *
-     * @param string $sequence
-     * @param int    &$i
-     * @param array  $references
-     *
-     * @return string A YAML string
-     *
-     * @throws ParseException When malformed inline YAML string is parsed
-     */
-    private static function parseSequence($sequence, &$i = 0, $references = array())
-    {
-        $output = array();
-        $len = strlen($sequence);
-        ++$i;
-
-        // [foo, bar, ...]
-        while ($i < $len) {
-            switch ($sequence[$i]) {
-                case '[':
-                    // nested sequence
-                    $output[] = self::parseSequence($sequence, $i, $references);
-                    break;
-                case '{':
-                    // nested mapping
-                    $output[] = self::parseMapping($sequence, $i, $references);
-                    break;
-                case ']':
-                    return $output;
-                case ',':
-                case ' ':
-                    break;
-                default:
-                    $isQuoted = in_array($sequence[$i], array('"', "'"));
-                    $value = self::parseScalar($sequence, array(',', ']'), array('"', "'"), $i, true, $references);
-
-                    // the value can be an array if a reference has been resolved to an array var
-                    if (!is_array($value) && !$isQuoted && false !== strpos($value, ': ')) {
-                        // embedded mapping?
-                        try {
-                            $pos = 0;
-                            $value = self::parseMapping('{'.$value.'}', $pos, $references);
-                        } catch (\InvalidArgumentException $e) {
-                            // no, it's not
-                        }
-                    }
-
-                    $output[] = $value;
-
-                    --$i;
-            }
-
-            ++$i;
-        }
-
-        throw new ParseException(sprintf('Malformed inline YAML string %s', $sequence));
-    }
-
-    /**
-     * Parses a mapping to a YAML string.
-     *
-     * @param string $mapping
-     * @param int    &$i
-     * @param array  $references
-     *
-     * @return string A YAML string
-     *
-     * @throws ParseException When malformed inline YAML string is parsed
-     */
-    private static function parseMapping($mapping, &$i = 0, $references = array())
-    {
-        $output = array();
-        $len = strlen($mapping);
-        ++$i;
-
-        // {foo: bar, bar:foo, ...}
-        while ($i < $len) {
-            switch ($mapping[$i]) {
-                case ' ':
-                case ',':
-                    ++$i;
-                    continue 2;
-                case '}':
-                    if (self::$objectForMap) {
-                        return (object) $output;
-                    }
-
-                    return $output;
-            }
-
-            // key
-            $key = self::parseScalar($mapping, array(':', ' '), array('"', "'"), $i, false);
-
-            // value
-            $done = false;
-
-            while ($i < $len) {
-                switch ($mapping[$i]) {
-                    case '[':
-                        // nested sequence
-                        $value = self::parseSequence($mapping, $i, $references);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        if (!isset($output[$key])) {
-                            $output[$key] = $value;
-                        }
-                        $done = true;
-                        break;
-                    case '{':
-                        // nested mapping
-                        $value = self::parseMapping($mapping, $i, $references);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        if (!isset($output[$key])) {
-                            $output[$key] = $value;
-                        }
-                        $done = true;
-                        break;
-                    case ':':
-                    case ' ':
-                        break;
-                    default:
-                        $value = self::parseScalar($mapping, array(',', '}'), array('"', "'"), $i, true, $references);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        if (!isset($output[$key])) {
-                            $output[$key] = $value;
-                        }
-                        $done = true;
-                        --$i;
-                }
-
-                ++$i;
-
-                if ($done) {
-                    continue 2;
-                }
-            }
-        }
-
-        throw new ParseException(sprintf('Malformed inline YAML string %s', $mapping));
-    }
-
-    /**
-     * Evaluates scalars and replaces magic values.
-     *
-     * @param string $scalar
-     * @param array  $references
-     *
-     * @return string A YAML string
-     *
-     * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved
-     */
-    private static function evaluateScalar($scalar, $references = array())
-    {
-        $scalar = trim($scalar);
-        $scalarLower = strtolower($scalar);
-
-        if (0 === strpos($scalar, '*')) {
-            if (false !== $pos = strpos($scalar, '#')) {
-                $value = substr($scalar, 1, $pos - 2);
-            } else {
-                $value = substr($scalar, 1);
-            }
-
-            // an unquoted *
-            if (false === $value || '' === $value) {
-                throw new ParseException('A reference must contain at least one character.');
-            }
-
-            if (!array_key_exists($value, $references)) {
-                throw new ParseException(sprintf('Reference "%s" does not exist.', $value));
-            }
-
-            return $references[$value];
-        }
-
-        switch (true) {
-            case 'null' === $scalarLower:
-            case '' === $scalar:
-            case '~' === $scalar:
-                return;
-            case 'true' === $scalarLower:
-                return true;
-            case 'false' === $scalarLower:
-                return false;
-            // Optimise for returning strings.
-            case $scalar[0] === '+' || $scalar[0] === '-' || $scalar[0] === '.' || $scalar[0] === '!' || is_numeric($scalar[0]):
-                switch (true) {
-                    case 0 === strpos($scalar, '!str'):
-                        return (string) substr($scalar, 5);
-                    case 0 === strpos($scalar, '! '):
-                        return (int) self::parseScalar(substr($scalar, 2));
-                    case 0 === strpos($scalar, '!!php/object:'):
-                        if (self::$objectSupport) {
-                            return unserialize(substr($scalar, 13));
-                        }
-
-                        if (self::$exceptionOnInvalidType) {
-                            throw new ParseException('Object support when parsing a YAML file has been disabled.');
-                        }
-
-                        return;
-                    case 0 === strpos($scalar, '!!float '):
-                        return (float) substr($scalar, 8);
-                    case ctype_digit($scalar):
-                        $raw = $scalar;
-                        $cast = (int) $scalar;
-
-                        return '0' == $scalar[0] ? octdec($scalar) : (((string) $raw == (string) $cast) ? $cast : $raw);
-                    case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)):
-                        $raw = $scalar;
-                        $cast = (int) $scalar;
-
-                        return '0' == $scalar[1] ? octdec($scalar) : (((string) $raw === (string) $cast) ? $cast : $raw);
-                    case is_numeric($scalar):
-                    case preg_match(self::getHexRegex(), $scalar):
-                        return '0x' === $scalar[0].$scalar[1] ? hexdec($scalar) : (float) $scalar;
-                    case '.inf' === $scalarLower:
-                    case '.nan' === $scalarLower:
-                        return -log(0);
-                    case '-.inf' === $scalarLower:
-                        return log(0);
-                    case preg_match('/^(-|\+)?[0-9,]+(\.[0-9]+)?$/', $scalar):
-                        return (float) str_replace(',', '', $scalar);
-                    case preg_match(self::getTimestampRegex(), $scalar):
-                        return strtotime($scalar);
-                }
-            default:
-                return (string) $scalar;
-        }
-    }
-
-    /**
-     * Gets a regex that matches a YAML date.
-     *
-     * @return string The regular expression
-     *
-     * @see http://www.yaml.org/spec/1.2/spec.html#id2761573
-     */
-    private static function getTimestampRegex()
-    {
-        return <<<EOF
-        ~^
-        (?P<year>[0-9][0-9][0-9][0-9])
-        -(?P<month>[0-9][0-9]?)
-        -(?P<day>[0-9][0-9]?)
-        (?:(?:[Tt]|[ \t]+)
-        (?P<hour>[0-9][0-9]?)
-        :(?P<minute>[0-9][0-9])
-        :(?P<second>[0-9][0-9])
-        (?:\.(?P<fraction>[0-9]*))?
-        (?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)
-        (?::(?P<tz_minute>[0-9][0-9]))?))?)?
-        $~x
-EOF;
-    }
-
-    /**
-     * Gets a regex that matches a YAML number in hexadecimal notation.
-     *
-     * @return string
-     */
-    private static function getHexRegex()
-    {
-        return '~^0x[0-9a-f]++$~i';
-    }
-}
diff --git a/core/vendor/symfony/yaml/LICENSE b/core/vendor/symfony/yaml/LICENSE
deleted file mode 100644
index 43028bc..0000000
--- a/core/vendor/symfony/yaml/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2004-2015 Fabien Potencier
-
-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/core/vendor/symfony/yaml/Parser.php b/core/vendor/symfony/yaml/Parser.php
deleted file mode 100644
index 2de62e5..0000000
--- a/core/vendor/symfony/yaml/Parser.php
+++ /dev/null
@@ -1,697 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml;
-
-use Symfony\Component\Yaml\Exception\ParseException;
-
-/**
- * Parser parses YAML strings to convert them to PHP arrays.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Parser
-{
-    const FOLDED_SCALAR_PATTERN = '(?P<separator>\||>)(?P<modifiers>\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P<comments> +#.*)?';
-
-    private $offset = 0;
-    private $lines = array();
-    private $currentLineNb = -1;
-    private $currentLine = '';
-    private $refs = array();
-
-    /**
-     * Constructor.
-     *
-     * @param int $offset The offset of YAML document (used for line numbers in error messages)
-     */
-    public function __construct($offset = 0)
-    {
-        $this->offset = $offset;
-    }
-
-    /**
-     * Parses a YAML string to a PHP value.
-     *
-     * @param string $value                  A YAML string
-     * @param bool   $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool   $objectSupport          true if object support is enabled, false otherwise
-     * @param bool   $objectForMap           true if maps should return a stdClass instead of array()
-     *
-     * @return mixed A PHP value
-     *
-     * @throws ParseException If the YAML is not valid
-     */
-    public function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false)
-    {
-        if (!preg_match('//u', $value)) {
-            throw new ParseException('The YAML value does not appear to be valid UTF-8.');
-        }
-        $this->currentLineNb = -1;
-        $this->currentLine = '';
-        $value = $this->cleanup($value);
-        $this->lines = explode("\n", $value);
-
-        if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) {
-            $mbEncoding = mb_internal_encoding();
-            mb_internal_encoding('UTF-8');
-        }
-
-        $data = array();
-        $context = null;
-        $allowOverwrite = false;
-        while ($this->moveToNextLine()) {
-            if ($this->isCurrentLineEmpty()) {
-                continue;
-            }
-
-            // tab?
-            if ("\t" === $this->currentLine[0]) {
-                throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
-            }
-
-            $isRef = $mergeNode = false;
-            if (preg_match('#^\-((?P<leadspaces>\s+)(?P<value>.+?))?\s*$#u', $this->currentLine, $values)) {
-                if ($context && 'mapping' == $context) {
-                    throw new ParseException('You cannot define a sequence item when in a mapping');
-                }
-                $context = 'sequence';
-
-                if (isset($values['value']) && preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
-                    $isRef = $matches['ref'];
-                    $values['value'] = $matches['value'];
-                }
-
-                // array
-                if (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) {
-                    $c = $this->getRealCurrentLineNb() + 1;
-                    $parser = new self($c);
-                    $parser->refs = &$this->refs;
-                    $data[] = $parser->parse($this->getNextEmbedBlock(null, true), $exceptionOnInvalidType, $objectSupport, $objectForMap);
-                } else {
-                    if (isset($values['leadspaces'])
-                        && preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $values['value'], $matches)
-                    ) {
-                        // this is a compact notation element, add to next block and parse
-                        $c = $this->getRealCurrentLineNb();
-                        $parser = new self($c);
-                        $parser->refs = &$this->refs;
-
-                        $block = $values['value'];
-                        if ($this->isNextLineIndented()) {
-                            $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + strlen($values['leadspaces']) + 1);
-                        }
-
-                        $data[] = $parser->parse($block, $exceptionOnInvalidType, $objectSupport, $objectForMap);
-                    } else {
-                        $data[] = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport, $objectForMap);
-                    }
-                }
-            } elseif (preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\[\{].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $this->currentLine, $values) && (false === strpos($values['key'], ' #') || in_array($values['key'][0], array('"', "'")))) {
-                if ($context && 'sequence' == $context) {
-                    throw new ParseException('You cannot define a mapping item when in a sequence');
-                }
-                $context = 'mapping';
-
-                // force correct settings
-                Inline::parse(null, $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs);
-                try {
-                    $key = Inline::parseScalar($values['key']);
-                } catch (ParseException $e) {
-                    $e->setParsedLine($this->getRealCurrentLineNb() + 1);
-                    $e->setSnippet($this->currentLine);
-
-                    throw $e;
-                }
-
-                if ('<<' === $key) {
-                    $mergeNode = true;
-                    $allowOverwrite = true;
-                    if (isset($values['value']) && 0 === strpos($values['value'], '*')) {
-                        $refName = substr($values['value'], 1);
-                        if (!array_key_exists($refName, $this->refs)) {
-                            throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine);
-                        }
-
-                        $refValue = $this->refs[$refName];
-
-                        if (!is_array($refValue)) {
-                            throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
-                        }
-
-                        foreach ($refValue as $key => $value) {
-                            if (!isset($data[$key])) {
-                                $data[$key] = $value;
-                            }
-                        }
-                    } else {
-                        if (isset($values['value']) && $values['value'] !== '') {
-                            $value = $values['value'];
-                        } else {
-                            $value = $this->getNextEmbedBlock();
-                        }
-                        $c = $this->getRealCurrentLineNb() + 1;
-                        $parser = new self($c);
-                        $parser->refs = &$this->refs;
-                        $parsed = $parser->parse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap);
-
-                        if (!is_array($parsed)) {
-                            throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
-                        }
-
-                        if (isset($parsed[0])) {
-                            // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes
-                            // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier
-                            // in the sequence override keys specified in later mapping nodes.
-                            foreach ($parsed as $parsedItem) {
-                                if (!is_array($parsedItem)) {
-                                    throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem);
-                                }
-
-                                foreach ($parsedItem as $key => $value) {
-                                    if (!isset($data[$key])) {
-                                        $data[$key] = $value;
-                                    }
-                                }
-                            }
-                        } else {
-                            // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the
-                            // current mapping, unless the key already exists in it.
-                            foreach ($parsed as $key => $value) {
-                                if (!isset($data[$key])) {
-                                    $data[$key] = $value;
-                                }
-                            }
-                        }
-                    }
-                } elseif (isset($values['value']) && preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
-                    $isRef = $matches['ref'];
-                    $values['value'] = $matches['value'];
-                }
-
-                if ($mergeNode) {
-                    // Merge keys
-                } elseif (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) {
-                    // hash
-                    // if next line is less indented or equal, then it means that the current value is null
-                    if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
-                        // Spec: Keys MUST be unique; first one wins.
-                        // But overwriting is allowed when a merge node is used in current block.
-                        if ($allowOverwrite || !isset($data[$key])) {
-                            $data[$key] = null;
-                        }
-                    } else {
-                        $c = $this->getRealCurrentLineNb() + 1;
-                        $parser = new self($c);
-                        $parser->refs = &$this->refs;
-                        $value = $parser->parse($this->getNextEmbedBlock(), $exceptionOnInvalidType, $objectSupport, $objectForMap);
-                        // Spec: Keys MUST be unique; first one wins.
-                        // But overwriting is allowed when a merge node is used in current block.
-                        if ($allowOverwrite || !isset($data[$key])) {
-                            $data[$key] = $value;
-                        }
-                    }
-                } else {
-                    $value = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport, $objectForMap);
-                    // Spec: Keys MUST be unique; first one wins.
-                    // But overwriting is allowed when a merge node is used in current block.
-                    if ($allowOverwrite || !isset($data[$key])) {
-                        $data[$key] = $value;
-                    }
-                }
-            } else {
-                // multiple documents are not supported
-                if ('---' === $this->currentLine) {
-                    throw new ParseException('Multiple documents are not supported.');
-                }
-
-                // 1-liner optionally followed by newline(s)
-                if (is_string($value) && $this->lines[0] === trim($value)) {
-                    try {
-                        $value = Inline::parse($this->lines[0], $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs);
-                    } catch (ParseException $e) {
-                        $e->setParsedLine($this->getRealCurrentLineNb() + 1);
-                        $e->setSnippet($this->currentLine);
-
-                        throw $e;
-                    }
-
-                    if (is_array($value)) {
-                        $first = reset($value);
-                        if (is_string($first) && 0 === strpos($first, '*')) {
-                            $data = array();
-                            foreach ($value as $alias) {
-                                $data[] = $this->refs[substr($alias, 1)];
-                            }
-                            $value = $data;
-                        }
-                    }
-
-                    if (isset($mbEncoding)) {
-                        mb_internal_encoding($mbEncoding);
-                    }
-
-                    return $value;
-                }
-
-                switch (preg_last_error()) {
-                    case PREG_INTERNAL_ERROR:
-                        $error = 'Internal PCRE error.';
-                        break;
-                    case PREG_BACKTRACK_LIMIT_ERROR:
-                        $error = 'pcre.backtrack_limit reached.';
-                        break;
-                    case PREG_RECURSION_LIMIT_ERROR:
-                        $error = 'pcre.recursion_limit reached.';
-                        break;
-                    case PREG_BAD_UTF8_ERROR:
-                        $error = 'Malformed UTF-8 data.';
-                        break;
-                    case PREG_BAD_UTF8_OFFSET_ERROR:
-                        $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.';
-                        break;
-                    default:
-                        $error = 'Unable to parse.';
-                }
-
-                throw new ParseException($error, $this->getRealCurrentLineNb() + 1, $this->currentLine);
-            }
-
-            if ($isRef) {
-                $this->refs[$isRef] = end($data);
-            }
-        }
-
-        if (isset($mbEncoding)) {
-            mb_internal_encoding($mbEncoding);
-        }
-
-        return empty($data) ? null : $data;
-    }
-
-    /**
-     * Returns the current line number (takes the offset into account).
-     *
-     * @return int The current line number
-     */
-    private function getRealCurrentLineNb()
-    {
-        return $this->currentLineNb + $this->offset;
-    }
-
-    /**
-     * Returns the current line indentation.
-     *
-     * @return int The current line indentation
-     */
-    private function getCurrentLineIndentation()
-    {
-        return strlen($this->currentLine) - strlen(ltrim($this->currentLine, ' '));
-    }
-
-    /**
-     * Returns the next embed block of YAML.
-     *
-     * @param int  $indentation The indent level at which the block is to be read, or null for default
-     * @param bool $inSequence  True if the enclosing data structure is a sequence
-     *
-     * @return string A YAML string
-     *
-     * @throws ParseException When indentation problem are detected
-     */
-    private function getNextEmbedBlock($indentation = null, $inSequence = false)
-    {
-        $oldLineIndentation = $this->getCurrentLineIndentation();
-
-        if (!$this->moveToNextLine()) {
-            return;
-        }
-
-        if (null === $indentation) {
-            $newIndent = $this->getCurrentLineIndentation();
-
-            $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem($this->currentLine);
-
-            if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) {
-                throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
-            }
-        } else {
-            $newIndent = $indentation;
-        }
-
-        $data = array();
-        if ($this->getCurrentLineIndentation() >= $newIndent) {
-            $data[] = substr($this->currentLine, $newIndent);
-        } else {
-            $this->moveToPreviousLine();
-
-            return;
-        }
-
-        if ($inSequence && $oldLineIndentation === $newIndent && isset($data[0][0]) && '-' === $data[0][0]) {
-            // the previous line contained a dash but no item content, this line is a sequence item with the same indentation
-            // and therefore no nested list or mapping
-            $this->moveToPreviousLine();
-
-            return;
-        }
-
-        $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem($this->currentLine);
-
-        // Comments must not be removed inside a string block (ie. after a line ending with "|")
-        $removeCommentsPattern = '~'.self::FOLDED_SCALAR_PATTERN.'$~';
-        $removeComments = !preg_match($removeCommentsPattern, $this->currentLine);
-
-        while ($this->moveToNextLine()) {
-            $indent = $this->getCurrentLineIndentation();
-
-            if ($indent === $newIndent) {
-                $removeComments = !preg_match($removeCommentsPattern, $this->currentLine);
-            }
-
-            if ($isItUnindentedCollection && !$this->isStringUnIndentedCollectionItem($this->currentLine) && $newIndent === $indent) {
-                $this->moveToPreviousLine();
-                break;
-            }
-
-            if ($this->isCurrentLineBlank()) {
-                $data[] = substr($this->currentLine, $newIndent);
-                continue;
-            }
-
-            if ($removeComments && $this->isCurrentLineComment()) {
-                continue;
-            }
-
-            if ($indent >= $newIndent) {
-                $data[] = substr($this->currentLine, $newIndent);
-            } elseif (0 == $indent) {
-                $this->moveToPreviousLine();
-
-                break;
-            } else {
-                throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
-            }
-        }
-
-        return implode("\n", $data);
-    }
-
-    /**
-     * Moves the parser to the next line.
-     *
-     * @return bool
-     */
-    private function moveToNextLine()
-    {
-        if ($this->currentLineNb >= count($this->lines) - 1) {
-            return false;
-        }
-
-        $this->currentLine = $this->lines[++$this->currentLineNb];
-
-        return true;
-    }
-
-    /**
-     * Moves the parser to the previous line.
-     */
-    private function moveToPreviousLine()
-    {
-        $this->currentLine = $this->lines[--$this->currentLineNb];
-    }
-
-    /**
-     * Parses a YAML value.
-     *
-     * @param string $value                  A YAML value
-     * @param bool   $exceptionOnInvalidType True if an exception must be thrown on invalid types false otherwise
-     * @param bool   $objectSupport          True if object support is enabled, false otherwise
-     * @param bool   $objectForMap           true if maps should return a stdClass instead of array()
-     *
-     * @return mixed A PHP value
-     *
-     * @throws ParseException When reference does not exist
-     */
-    private function parseValue($value, $exceptionOnInvalidType, $objectSupport, $objectForMap)
-    {
-        if (0 === strpos($value, '*')) {
-            if (false !== $pos = strpos($value, '#')) {
-                $value = substr($value, 1, $pos - 2);
-            } else {
-                $value = substr($value, 1);
-            }
-
-            if (!array_key_exists($value, $this->refs)) {
-                throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLine);
-            }
-
-            return $this->refs[$value];
-        }
-
-        if (preg_match('/^'.self::FOLDED_SCALAR_PATTERN.'$/', $value, $matches)) {
-            $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : '';
-
-            return $this->parseFoldedScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), (int) abs($modifiers));
-        }
-
-        try {
-            return Inline::parse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs);
-        } catch (ParseException $e) {
-            $e->setParsedLine($this->getRealCurrentLineNb() + 1);
-            $e->setSnippet($this->currentLine);
-
-            throw $e;
-        }
-    }
-
-    /**
-     * Parses a folded scalar.
-     *
-     * @param string $separator   The separator that was used to begin this folded scalar (| or >)
-     * @param string $indicator   The indicator that was used to begin this folded scalar (+ or -)
-     * @param int    $indentation The indentation that was used to begin this folded scalar
-     *
-     * @return string The text value
-     */
-    private function parseFoldedScalar($separator, $indicator = '', $indentation = 0)
-    {
-        $notEOF = $this->moveToNextLine();
-        if (!$notEOF) {
-            return '';
-        }
-
-        $isCurrentLineBlank = $this->isCurrentLineBlank();
-        $text = '';
-
-        // leading blank lines are consumed before determining indentation
-        while ($notEOF && $isCurrentLineBlank) {
-            // newline only if not EOF
-            if ($notEOF = $this->moveToNextLine()) {
-                $text .= "\n";
-                $isCurrentLineBlank = $this->isCurrentLineBlank();
-            }
-        }
-
-        // determine indentation if not specified
-        if (0 === $indentation) {
-            if (preg_match('/^ +/', $this->currentLine, $matches)) {
-                $indentation = strlen($matches[0]);
-            }
-        }
-
-        if ($indentation > 0) {
-            $pattern = sprintf('/^ {%d}(.*)$/', $indentation);
-
-            while (
-                $notEOF && (
-                    $isCurrentLineBlank ||
-                    preg_match($pattern, $this->currentLine, $matches)
-                )
-            ) {
-                if ($isCurrentLineBlank) {
-                    $text .= substr($this->currentLine, $indentation);
-                } else {
-                    $text .= $matches[1];
-                }
-
-                // newline only if not EOF
-                if ($notEOF = $this->moveToNextLine()) {
-                    $text .= "\n";
-                    $isCurrentLineBlank = $this->isCurrentLineBlank();
-                }
-            }
-        } elseif ($notEOF) {
-            $text .= "\n";
-        }
-
-        if ($notEOF) {
-            $this->moveToPreviousLine();
-        }
-
-        // replace all non-trailing single newlines with spaces in folded blocks
-        if ('>' === $separator) {
-            preg_match('/(\n*)$/', $text, $matches);
-            $text = preg_replace('/(?<!\n)\n(?!\n)/', ' ', rtrim($text, "\n"));
-            $text .= $matches[1];
-        }
-
-        // deal with trailing newlines as indicated
-        if ('' === $indicator) {
-            $text = preg_replace('/\n+$/', "\n", $text);
-        } elseif ('-' === $indicator) {
-            $text = preg_replace('/\n+$/', '', $text);
-        }
-
-        return $text;
-    }
-
-    /**
-     * Returns true if the next line is indented.
-     *
-     * @return bool Returns true if the next line is indented, false otherwise
-     */
-    private function isNextLineIndented()
-    {
-        $currentIndentation = $this->getCurrentLineIndentation();
-        $EOF = !$this->moveToNextLine();
-
-        while (!$EOF && $this->isCurrentLineEmpty()) {
-            $EOF = !$this->moveToNextLine();
-        }
-
-        if ($EOF) {
-            return false;
-        }
-
-        $ret = false;
-        if ($this->getCurrentLineIndentation() > $currentIndentation) {
-            $ret = true;
-        }
-
-        $this->moveToPreviousLine();
-
-        return $ret;
-    }
-
-    /**
-     * Returns true if the current line is blank or if it is a comment line.
-     *
-     * @return bool Returns true if the current line is empty or if it is a comment line, false otherwise
-     */
-    private function isCurrentLineEmpty()
-    {
-        return $this->isCurrentLineBlank() || $this->isCurrentLineComment();
-    }
-
-    /**
-     * Returns true if the current line is blank.
-     *
-     * @return bool Returns true if the current line is blank, false otherwise
-     */
-    private function isCurrentLineBlank()
-    {
-        return '' == trim($this->currentLine, ' ');
-    }
-
-    /**
-     * Returns true if the current line is a comment line.
-     *
-     * @return bool Returns true if the current line is a comment line, false otherwise
-     */
-    private function isCurrentLineComment()
-    {
-        //checking explicitly the first char of the trim is faster than loops or strpos
-        $ltrimmedLine = ltrim($this->currentLine, ' ');
-
-        return $ltrimmedLine[0] === '#';
-    }
-
-    /**
-     * Cleanups a YAML string to be parsed.
-     *
-     * @param string $value The input YAML string
-     *
-     * @return string A cleaned up YAML string
-     */
-    private function cleanup($value)
-    {
-        $value = str_replace(array("\r\n", "\r"), "\n", $value);
-
-        // strip YAML header
-        $count = 0;
-        $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count);
-        $this->offset += $count;
-
-        // remove leading comments
-        $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count);
-        if ($count == 1) {
-            // items have been removed, update the offset
-            $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
-            $value = $trimmedValue;
-        }
-
-        // remove start of the document marker (---)
-        $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count);
-        if ($count == 1) {
-            // items have been removed, update the offset
-            $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
-            $value = $trimmedValue;
-
-            // remove end of the document marker (...)
-            $value = preg_replace('#\.\.\.\s*$#', '', $value);
-        }
-
-        return $value;
-    }
-
-    /**
-     * Returns true if the next line starts unindented collection.
-     *
-     * @return bool Returns true if the next line starts unindented collection, false otherwise
-     */
-    private function isNextLineUnIndentedCollection()
-    {
-        $currentIndentation = $this->getCurrentLineIndentation();
-        $notEOF = $this->moveToNextLine();
-
-        while ($notEOF && $this->isCurrentLineEmpty()) {
-            $notEOF = $this->moveToNextLine();
-        }
-
-        if (false === $notEOF) {
-            return false;
-        }
-
-        $ret = false;
-        if (
-            $this->getCurrentLineIndentation() == $currentIndentation
-            &&
-            $this->isStringUnIndentedCollectionItem($this->currentLine)
-        ) {
-            $ret = true;
-        }
-
-        $this->moveToPreviousLine();
-
-        return $ret;
-    }
-
-    /**
-     * Returns true if the string is un-indented collection item.
-     *
-     * @return bool Returns true if the string is un-indented collection item, false otherwise
-     */
-    private function isStringUnIndentedCollectionItem()
-    {
-        return (0 === strpos($this->currentLine, '- '));
-    }
-}
diff --git a/core/vendor/symfony/yaml/README.md b/core/vendor/symfony/yaml/README.md
deleted file mode 100644
index 85a9786..0000000
--- a/core/vendor/symfony/yaml/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Yaml Component
-==============
-
-YAML implements most of the YAML 1.2 specification.
-
-```php
-use Symfony\Component\Yaml\Yaml;
-
-$array = Yaml::parse(file_get_contents(filename));
-
-print Yaml::dump($array);
-```
-
-Resources
----------
-
-You can run the unit tests with the following command:
-
-    $ cd path/to/Symfony/Component/Yaml/
-    $ composer install
-    $ phpunit
diff --git a/core/vendor/symfony/yaml/Tests/DumperTest.php b/core/vendor/symfony/yaml/Tests/DumperTest.php
deleted file mode 100644
index b103b9a..0000000
--- a/core/vendor/symfony/yaml/Tests/DumperTest.php
+++ /dev/null
@@ -1,236 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Tests;
-
-use Symfony\Component\Yaml\Parser;
-use Symfony\Component\Yaml\Dumper;
-
-class DumperTest extends \PHPUnit_Framework_TestCase
-{
-    protected $parser;
-    protected $dumper;
-    protected $path;
-
-    protected $array = array(
-        '' => 'bar',
-        'foo' => '#bar',
-        'foo\'bar' => array(),
-        'bar' => array(1, 'foo'),
-        'foobar' => array(
-            'foo' => 'bar',
-            'bar' => array(1, 'foo'),
-            'foobar' => array(
-                'foo' => 'bar',
-                'bar' => array(1, 'foo'),
-            ),
-        ),
-    );
-
-    protected function setUp()
-    {
-        $this->parser = new Parser();
-        $this->dumper = new Dumper();
-        $this->path = __DIR__.'/Fixtures';
-    }
-
-    protected function tearDown()
-    {
-        $this->parser = null;
-        $this->dumper = null;
-        $this->path = null;
-        $this->array = null;
-    }
-
-    public function testSetIndentation()
-    {
-        $this->dumper->setIndentation(7);
-
-        $expected = <<<EOF
-'': bar
-foo: '#bar'
-'foo''bar': {  }
-bar:
-       - 1
-       - foo
-foobar:
-       foo: bar
-       bar:
-              - 1
-              - foo
-       foobar:
-              foo: bar
-              bar:
-                     - 1
-                     - foo
-
-EOF;
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 4, 0));
-    }
-
-    public function testSpecifications()
-    {
-        $files = $this->parser->parse(file_get_contents($this->path.'/index.yml'));
-        foreach ($files as $file) {
-            $yamls = file_get_contents($this->path.'/'.$file.'.yml');
-
-            // split YAMLs documents
-            foreach (preg_split('/^---( %YAML\:1\.0)?/m', $yamls) as $yaml) {
-                if (!$yaml) {
-                    continue;
-                }
-
-                $test = $this->parser->parse($yaml);
-                if (isset($test['dump_skip']) && $test['dump_skip']) {
-                    continue;
-                } elseif (isset($test['todo']) && $test['todo']) {
-                    // TODO
-                } else {
-                    eval('$expected = '.trim($test['php']).';');
-                    $this->assertSame($expected, $this->parser->parse($this->dumper->dump($expected, 10)), $test['test']);
-                }
-            }
-        }
-    }
-
-    public function testInlineLevel()
-    {
-        $expected = <<<EOF
-{ '': bar, foo: '#bar', 'foo''bar': {  }, bar: [1, foo], foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } }
-EOF;
-        $this->assertEquals($expected, $this->dumper->dump($this->array, -10), '->dump() takes an inline level argument');
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 0), '->dump() takes an inline level argument');
-
-        $expected = <<<EOF
-'': bar
-foo: '#bar'
-'foo''bar': {  }
-bar: [1, foo]
-foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } }
-
-EOF;
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 1), '->dump() takes an inline level argument');
-
-        $expected = <<<EOF
-'': bar
-foo: '#bar'
-'foo''bar': {  }
-bar:
-    - 1
-    - foo
-foobar:
-    foo: bar
-    bar: [1, foo]
-    foobar: { foo: bar, bar: [1, foo] }
-
-EOF;
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 2), '->dump() takes an inline level argument');
-
-        $expected = <<<EOF
-'': bar
-foo: '#bar'
-'foo''bar': {  }
-bar:
-    - 1
-    - foo
-foobar:
-    foo: bar
-    bar:
-        - 1
-        - foo
-    foobar:
-        foo: bar
-        bar: [1, foo]
-
-EOF;
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 3), '->dump() takes an inline level argument');
-
-        $expected = <<<EOF
-'': bar
-foo: '#bar'
-'foo''bar': {  }
-bar:
-    - 1
-    - foo
-foobar:
-    foo: bar
-    bar:
-        - 1
-        - foo
-    foobar:
-        foo: bar
-        bar:
-            - 1
-            - foo
-
-EOF;
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 4), '->dump() takes an inline level argument');
-        $this->assertEquals($expected, $this->dumper->dump($this->array, 10), '->dump() takes an inline level argument');
-    }
-
-    public function testObjectSupportEnabled()
-    {
-        $dump = $this->dumper->dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, true);
-
-        $this->assertEquals('{ foo: !!php/object:O:30:"Symfony\Component\Yaml\Tests\A":1:{s:1:"a";s:3:"foo";}, bar: 1 }', $dump, '->dump() is able to dump objects');
-    }
-
-    public function testObjectSupportDisabledButNoExceptions()
-    {
-        $dump = $this->dumper->dump(array('foo' => new A(), 'bar' => 1));
-
-        $this->assertEquals('{ foo: null, bar: 1 }', $dump, '->dump() does not dump objects when disabled');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\DumpException
-     */
-    public function testObjectSupportDisabledWithExceptions()
-    {
-        $this->dumper->dump(array('foo' => new A(), 'bar' => 1), 0, 0, true, false);
-    }
-
-    /**
-     * @dataProvider getEscapeSequences
-     */
-    public function testEscapedEscapeSequencesInQuotedScalar($input, $expected)
-    {
-        $this->assertEquals($expected, $this->dumper->dump($input));
-    }
-
-    public function getEscapeSequences()
-    {
-        return array(
-            'null' => array("\t\\0", '"\t\\\\0"'),
-            'bell' => array("\t\\a", '"\t\\\\a"'),
-            'backspace' => array("\t\\b", '"\t\\\\b"'),
-            'horizontal-tab' => array("\t\\t", '"\t\\\\t"'),
-            'line-feed' => array("\t\\n", '"\t\\\\n"'),
-            'vertical-tab' => array("\t\\v", '"\t\\\\v"'),
-            'form-feed' => array("\t\\f", '"\t\\\\f"'),
-            'carriage-return' => array("\t\\r", '"\t\\\\r"'),
-            'escape' => array("\t\\e", '"\t\\\\e"'),
-            'space' => array("\t\\ ", '"\t\\\\ "'),
-            'double-quote' => array("\t\\\"", '"\t\\\\\\""'),
-            'slash' => array("\t\\/", '"\t\\\\/"'),
-            'backslash' => array("\t\\\\", '"\t\\\\\\\\"'),
-            'next-line' => array("\t\\N", '"\t\\\\N"'),
-            'non-breaking-space' => array("\t\\�", '"\t\\\\�"'),
-            'line-separator' => array("\t\\L", '"\t\\\\L"'),
-            'paragraph-separator' => array("\t\\P", '"\t\\\\P"'),
-        );
-    }
-}
-
-class A
-{
-    public $a = 'foo';
-}
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsAnchorAlias.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsAnchorAlias.yml
deleted file mode 100644
index 5f9c942..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsAnchorAlias.yml
+++ /dev/null
@@ -1,31 +0,0 @@
---- %YAML:1.0
-test: Simple Alias Example
-brief: >
-    If you need to refer to the same item of data twice,
-    you can give that item an alias.  The alias is a plain
-    string, starting with an ampersand.  The item may then
-    be referred to by the alias throughout your document
-    by using an asterisk before the name of the alias.
-    This is called an anchor.
-yaml: |
-    - &showell Steve
-    - Clark
-    - Brian
-    - Oren
-    - *showell
-php: |
-    array('Steve', 'Clark', 'Brian', 'Oren', 'Steve')
-
----
-test: Alias of a Mapping
-brief: >
-    An alias can be used on any item of data, including
-    sequences, mappings, and other complex data types.
-yaml: |
-    - &hello
-        Meat: pork
-        Starch: potato
-    - banana
-    - *hello
-php: |
-    array(array('Meat'=>'pork', 'Starch'=>'potato'), 'banana', array('Meat'=>'pork', 'Starch'=>'potato'))
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsBasicTests.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsBasicTests.yml
deleted file mode 100644
index dfd9302..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsBasicTests.yml
+++ /dev/null
@@ -1,202 +0,0 @@
---- %YAML:1.0
-test: Simple Sequence
-brief: |
-    You can specify a list in YAML by placing each
-    member of the list on a new line with an opening
-    dash. These lists are called sequences.
-yaml: |
-    - apple
-    - banana
-    - carrot
-php: |
-    array('apple', 'banana', 'carrot')
----
-test: Sequence With Item Being Null In The Middle
-brief: |
-    You can specify a list in YAML by placing each
-    member of the list on a new line with an opening
-    dash. These lists are called sequences.
-yaml: |
-    - apple
-    -
-    - carrot
-php: |
-    array('apple', null, 'carrot')
----
-test: Sequence With Last Item Being Null
-brief: |
-    You can specify a list in YAML by placing each
-    member of the list on a new line with an opening
-    dash. These lists are called sequences.
-yaml: |
-    - apple
-    - banana
-    -
-php: |
-    array('apple', 'banana', null)
----
-test: Nested Sequences
-brief: |
-    You can include a sequence within another
-    sequence by giving the sequence an empty
-    dash, followed by an indented list.
-yaml: |
-    -
-     - foo
-     - bar
-     - baz
-php: |
-    array(array('foo', 'bar', 'baz'))
----
-test: Mixed Sequences
-brief: |
-    Sequences can contain any YAML data,
-    including strings and other sequences.
-yaml: |
-    - apple
-    -
-     - foo
-     - bar
-     - x123
-    - banana
-    - carrot
-php: |
-    array('apple', array('foo', 'bar', 'x123'), 'banana', 'carrot')
----
-test: Deeply Nested Sequences
-brief: |
-    Sequences can be nested even deeper, with each
-    level of indentation representing a level of
-    depth.
-yaml: |
-    -
-     -
-      - uno
-      - dos
-php: |
-    array(array(array('uno', 'dos')))
----
-test: Simple Mapping
-brief: |
-    You can add a keyed list (also known as a dictionary or
-    hash) to your document by placing each member of the
-    list on a new line, with a colon separating the key
-    from its value.  In YAML, this type of list is called
-    a mapping.
-yaml: |
-    foo: whatever
-    bar: stuff
-php: |
-    array('foo' => 'whatever', 'bar' => 'stuff')
----
-test: Sequence in a Mapping
-brief: |
-    A value in a mapping can be a sequence.
-yaml: |
-    foo: whatever
-    bar:
-     - uno
-     - dos
-php: |
-    array('foo' => 'whatever', 'bar' => array('uno', 'dos'))
----
-test: Nested Mappings
-brief: |
-    A value in a mapping can be another mapping.
-yaml: |
-    foo: whatever
-    bar:
-     fruit: apple
-     name: steve
-     sport: baseball
-php: |
-    array(
-      'foo' => 'whatever',
-      'bar' => array(
-         'fruit' => 'apple',
-         'name' => 'steve',
-         'sport' => 'baseball'
-       )
-    )
----
-test: Mixed Mapping
-brief: |
-    A mapping can contain any assortment
-    of mappings and sequences as values.
-yaml: |
-    foo: whatever
-    bar:
-     -
-       fruit: apple
-       name: steve
-       sport: baseball
-     - more
-     -
-       python: rocks
-       perl: papers
-       ruby: scissorses
-php: |
-    array(
-      'foo' => 'whatever',
-      'bar' => array(
-        array(
-            'fruit' => 'apple',
-            'name' => 'steve',
-            'sport' => 'baseball'
-        ),
-        'more',
-        array(
-            'python' => 'rocks',
-            'perl' => 'papers',
-            'ruby' => 'scissorses'
-        )
-      )
-    )
----
-test: Mapping-in-Sequence Shortcut
-todo: true
-brief: |
-     If you are adding a mapping to a sequence, you
-     can place the mapping on the same line as the
-     dash as a shortcut.
-yaml: |
-     - work on YAML.py:
-        - work on Store
-php: |
-    array(array('work on YAML.py' => array('work on Store')))
----
-test: Sequence-in-Mapping Shortcut
-todo: true
-brief: |
-     The dash in a sequence counts as indentation, so
-     you can add a sequence inside of a mapping without
-     needing spaces as indentation.
-yaml: |
-     allow:
-     - 'localhost'
-     - '%.sourceforge.net'
-     - '%.freepan.org'
-php: |
-     array('allow' => array('localhost', '%.sourceforge.net', '%.freepan.org'))
----
-todo: true
-test: Merge key
-brief: |
-     A merge key ('<<') can be used in a mapping to insert other mappings.  If
-     the value associated with the merge key is a mapping, each of its key/value
-     pairs is inserted into the current mapping.
-yaml: |
-     mapping:
-       name: Joe
-       job: Accountant
-       <<:
-         age: 38
-php: |
-     array(
-       'mapping' =>
-       array(
-         'name' => 'Joe',
-         'job' => 'Accountant',
-         'age' => 38
-       )
-     )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsBlockMapping.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsBlockMapping.yml
deleted file mode 100644
index f7ca469..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsBlockMapping.yml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-test: One Element Mapping
-brief: |
-    A mapping with one key/value pair
-yaml: |
-    foo: bar
-php: |
-    array('foo' => 'bar')
----
-test: Multi Element Mapping
-brief: |
-    More than one key/value pair
-yaml: |
-    red: baron
-    white: walls
-    blue: berries
-php: |
-    array(
-     'red' => 'baron',
-     'white' => 'walls',
-     'blue' => 'berries',
-    )
----
-test: Values aligned
-brief: |
-    Often times human editors of documents will align the values even
-    though YAML emitters generally don't.
-yaml: |
-    red:   baron
-    white: walls
-    blue:  berries
-php: |
-    array(
-     'red' => 'baron',
-     'white' => 'walls',
-     'blue' => 'berries',
-    )
----
-test: Colons aligned
-brief: |
-    Spaces can come before the ': ' key/value separator.
-yaml: |
-    red   : baron
-    white : walls
-    blue  : berries
-php: |
-    array(
-     'red' => 'baron',
-     'white' => 'walls',
-     'blue' => 'berries',
-    )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsDocumentSeparator.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsDocumentSeparator.yml
deleted file mode 100644
index f8501dd..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsDocumentSeparator.yml
+++ /dev/null
@@ -1,85 +0,0 @@
---- %YAML:1.0
-test: Trailing Document Separator
-todo: true
-brief: >
-    You can separate YAML documents
-    with a string of three dashes.
-yaml: |
-    - foo: 1
-      bar: 2
-    ---
-    more: stuff
-python: |
-    [
-        [ { 'foo': 1, 'bar': 2 } ],
-        { 'more': 'stuff' }
-    ]
-ruby: |
-    [ { 'foo' => 1, 'bar' => 2 } ]
-
----
-test: Leading Document Separator
-todo: true
-brief: >
-    You can explicity give an opening
-    document separator to your YAML stream.
-yaml: |
-    ---
-    - foo: 1
-      bar: 2
-    ---
-    more: stuff
-python: |
-    [
-        [ {'foo': 1, 'bar': 2}],
-        {'more': 'stuff'}
-    ]
-ruby: |
-    [ { 'foo' => 1, 'bar' => 2 } ]
-
----
-test: YAML Header
-todo: true
-brief: >
-    The opening separator can contain directives
-    to the YAML parser, such as the version
-    number.
-yaml: |
-    --- %YAML:1.0
-    foo: 1
-    bar: 2
-php: |
-    array('foo' => 1, 'bar' => 2)
-documents: 1
-
----
-test: Red Herring Document Separator
-brief: >
-    Separators included in blocks or strings
-    are treated as blocks or strings, as the
-    document separator should have no indentation
-    preceding it.
-yaml: |
-    foo: |
-        ---
-php: |
-    array('foo' => "---\n")
-
----
-test: Multiple Document Separators in Block
-brief: >
-    This technique allows you to embed other YAML
-    documents within literal blocks.
-yaml: |
-    foo: |
-        ---
-        foo: bar
-        ---
-        yo: baz
-    bar: |
-        fooness
-php: |
-    array(
-       'foo' => "---\nfoo: bar\n---\nyo: baz\n",
-       'bar' => "fooness\n"
-    )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsErrorTests.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsErrorTests.yml
deleted file mode 100644
index e8506fc..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsErrorTests.yml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-test: Missing value for hash item
-todo: true
-brief: |
-    Third item in this hash doesn't have a value
-yaml: |
-    okay: value
-    also okay: ~
-    causes error because no value specified
-    last key: value okay here too
-python-error: causes error because no value specified
-
----
-test: Not indenting enough
-brief: |
-    There was a bug in PyYaml where it was off by one
-    in the indentation check.  It was allowing the YAML
-    below.
-# This is actually valid YAML now. Someone should tell showell.
-yaml: |
-    foo:
-    firstline: 1
-    secondline: 2
-php: |
-  array('foo' => null, 'firstline' => 1, 'secondline' => 2)
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsFlowCollections.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsFlowCollections.yml
deleted file mode 100644
index 03090e4..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsFlowCollections.yml
+++ /dev/null
@@ -1,60 +0,0 @@
----
-test: Simple Inline Array
-brief: >
-    Sequences can be contained on a
-    single line, using the inline syntax.
-    Separate each entry with commas and
-    enclose in square brackets.
-yaml: |
-    seq: [ a, b, c ]
-php: |
-    array('seq' => array('a', 'b', 'c'))
----
-test: Simple Inline Hash
-brief: >
-    Mapping can also be contained on
-    a single line, using the inline
-    syntax.  Each key-value pair is
-    separated by a colon, with a comma
-    between each entry in the mapping.
-    Enclose with curly braces.
-yaml: |
-    hash: { name: Steve, foo: bar }
-php: |
-    array('hash' => array('name' => 'Steve', 'foo' => 'bar'))
----
-test: Multi-line Inline Collections
-todo: true
-brief: >
-    Both inline sequences and inline mappings
-    can span multiple lines, provided that you
-    indent the additional lines.
-yaml: |
-    languages: [ Ruby,
-                 Perl,
-                 Python ]
-    websites: { YAML: yaml.org,
-                Ruby: ruby-lang.org,
-                Python: python.org,
-                Perl: use.perl.org }
-php: |
-    array(
-      'languages' => array('Ruby', 'Perl', 'Python'),
-      'websites' => array(
-        'YAML' => 'yaml.org',
-        'Ruby' => 'ruby-lang.org',
-        'Python' => 'python.org',
-        'Perl' => 'use.perl.org'
-      )
-    )
----
-test: Commas in Values (not in the spec!)
-todo: true
-brief: >
-    List items in collections are delimited by commas, but
-    there must be a space after each comma.  This allows you
-    to add numbers without quoting.
-yaml: |
-    attendances: [ 45,123, 70,000, 17,222 ]
-php: |
-    array('attendances' => array(45123, 70000, 17222))
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsFoldedScalars.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsFoldedScalars.yml
deleted file mode 100644
index a14735a..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsFoldedScalars.yml
+++ /dev/null
@@ -1,176 +0,0 @@
---- %YAML:1.0
-test: Single ending newline
-brief: >
-    A pipe character, followed by an indented
-    block of text is treated as a literal
-    block, in which newlines are preserved
-    throughout the block, including the final
-    newline.
-yaml: |
-    ---
-    this: |
-        Foo
-        Bar
-php: |
-    array('this' => "Foo\nBar\n")
----
-test: The '+' indicator
-brief: >
-    The '+' indicator says to keep newlines at the end of text
-    blocks.
-yaml: |
-    normal: |
-      extra new lines not kept
-
-    preserving: |+
-      extra new lines are kept
-
-
-    dummy: value
-php: |
-    array(
-        'normal' => "extra new lines not kept\n",
-        'preserving' => "extra new lines are kept\n\n\n",
-        'dummy' => 'value'
-    )
----
-test: Three trailing newlines in literals
-brief: >
-    To give you more control over how space
-    is preserved in text blocks, YAML has
-    the keep '+' and chomp '-' indicators.
-    The keep indicator will preserve all
-    ending newlines, while the chomp indicator
-    will strip all ending newlines.
-yaml: |
-    clipped: |
-        This has one newline.
-
-
-
-    same as "clipped" above: "This has one newline.\n"
-
-    stripped: |-
-        This has no newline.
-
-
-
-    same as "stripped" above: "This has no newline."
-
-    kept: |+
-        This has four newlines.
-
-
-
-    same as "kept" above: "This has four newlines.\n\n\n\n"
-php: |
-    array(
-      'clipped' => "This has one newline.\n",
-      'same as "clipped" above' => "This has one newline.\n",
-      'stripped' => 'This has no newline.',
-      'same as "stripped" above' => 'This has no newline.',
-      'kept' => "This has four newlines.\n\n\n\n",
-      'same as "kept" above' => "This has four newlines.\n\n\n\n"
-    )
----
-test: Extra trailing newlines with spaces
-todo: true
-brief: >
-    Normally, only a single newline is kept
-    from the end of a literal block, unless the
-    keep '+' character is used in combination
-    with the pipe.  The following example
-    will preserve all ending whitespace
-    since the last line of both literal blocks
-    contains spaces which extend past the indentation
-    level.
-yaml: |
-    ---
-    this: |
-        Foo
-
-
-    kept: |+
-        Foo
-
-
-php: |
-    array('this' => "Foo\n\n  \n",
-      'kept' => "Foo\n\n  \n" )
-
----
-test: Folded Block in a Sequence
-brief: >
-    A greater-then character, followed by an indented
-    block of text is treated as a folded block, in
-    which lines of text separated by a single newline
-    are concatenated as a single line.
-yaml: |
-    ---
-    - apple
-    - banana
-    - >
-        can't you see
-        the beauty of yaml?
-        hmm
-    - dog
-php: |
-    array(
-        'apple',
-        'banana',
-        "can't you see the beauty of yaml? hmm\n",
-        'dog'
-    )
----
-test: Folded Block as a Mapping Value
-brief: >
-    Both literal and folded blocks can be
-    used in collections, as values in a
-    sequence or a mapping.
-yaml: |
-    ---
-    quote: >
-        Mark McGwire's
-        year was crippled
-        by a knee injury.
-    source: espn
-php: |
-    array(
-        'quote' => "Mark McGwire's year was crippled by a knee injury.\n",
-        'source' => 'espn'
-    )
----
-test: Three trailing newlines in folded blocks
-brief: >
-    The keep and chomp indicators can also
-    be applied to folded blocks.
-yaml: |
-    clipped: >
-        This has one newline.
-
-
-
-    same as "clipped" above: "This has one newline.\n"
-
-    stripped: >-
-        This has no newline.
-
-
-
-    same as "stripped" above: "This has no newline."
-
-    kept: >+
-        This has four newlines.
-
-
-
-    same as "kept" above: "This has four newlines.\n\n\n\n"
-php: |
-    array(
-      'clipped' => "This has one newline.\n",
-      'same as "clipped" above' => "This has one newline.\n",
-      'stripped' => 'This has no newline.',
-      'same as "stripped" above' => 'This has no newline.',
-      'kept' => "This has four newlines.\n\n\n\n",
-      'same as "kept" above' => "This has four newlines.\n\n\n\n"
-    )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsNullsAndEmpties.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsNullsAndEmpties.yml
deleted file mode 100644
index 9a5300f..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsNullsAndEmpties.yml
+++ /dev/null
@@ -1,45 +0,0 @@
---- %YAML:1.0
-test: Empty Sequence
-brief: >
-    You can represent the empty sequence
-    with an empty inline sequence.
-yaml: |
-    empty: []
-php: |
-    array('empty' => array())
----
-test: Empty Mapping
-brief: >
-    You can represent the empty mapping
-    with an empty inline mapping.
-yaml: |
-    empty: {}
-php: |
-    array('empty' => array())
----
-test: Empty Sequence as Entire Document
-yaml: |
-    []
-php: |
-    array()
----
-test: Empty Mapping as Entire Document
-yaml: |
-    {}
-php: |
-    array()
----
-test: Null as Document
-yaml: |
-    ~
-php: |
-    null
----
-test: Empty String
-brief: >
-    You can represent an empty string
-    with a pair of quotes.
-yaml: |
-    ''
-php: |
-    ''
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml
deleted file mode 100644
index 0a8b5de..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml
+++ /dev/null
@@ -1,1697 +0,0 @@
---- %YAML:1.0
-test: Sequence of scalars
-spec: 2.1
-yaml: |
-  - Mark McGwire
-  - Sammy Sosa
-  - Ken Griffey
-php: |
-  array('Mark McGwire', 'Sammy Sosa', 'Ken Griffey')
----
-test: Mapping of scalars to scalars
-spec: 2.2
-yaml: |
-  hr:  65
-  avg: 0.278
-  rbi: 147
-php: |
-  array('hr' => 65, 'avg' => 0.278, 'rbi' => 147)
----
-test: Mapping of scalars to sequences
-spec: 2.3
-yaml: |
-    american:
-       - Boston Red Sox
-       - Detroit Tigers
-       - New York Yankees
-    national:
-       - New York Mets
-       - Chicago Cubs
-       - Atlanta Braves
-php: |
-    array('american' =>
-        array( 'Boston Red Sox', 'Detroit Tigers',
-          'New York Yankees' ),
-      'national' =>
-        array( 'New York Mets', 'Chicago Cubs',
-          'Atlanta Braves' )
-    )
----
-test: Sequence of mappings
-spec: 2.4
-yaml: |
-    -
-      name: Mark McGwire
-      hr:   65
-      avg:  0.278
-    -
-      name: Sammy Sosa
-      hr:   63
-      avg:  0.288
-php: |
-    array(
-      array('name' => 'Mark McGwire', 'hr' => 65, 'avg' => 0.278),
-      array('name' => 'Sammy Sosa', 'hr' => 63, 'avg' => 0.288)
-    )
----
-test: Legacy A5
-todo: true
-spec: legacy_A5
-yaml: |
-    ?
-        - New York Yankees
-        - Atlanta Braves
-    :
-      - 2001-07-02
-      - 2001-08-12
-      - 2001-08-14
-    ?
-        - Detroit Tigers
-        - Chicago Cubs
-    :
-      - 2001-07-23
-perl-busted: >
-    YAML.pm will be able to emulate this behavior soon. In this regard
-    it may be somewhat more correct than Python's native behaviour which
-    can only use tuples as mapping keys. PyYAML will also need to figure
-    out some clever way to roundtrip structured keys.
-python: |
-    [
-    {
-        ('New York Yankees', 'Atlanta Braves'):
-            [yaml.timestamp('2001-07-02'),
-             yaml.timestamp('2001-08-12'),
-             yaml.timestamp('2001-08-14')],
-        ('Detroit Tigers', 'Chicago Cubs'):
-        [yaml.timestamp('2001-07-23')]
-    }
-    ]
-ruby: |
-    {
-      [ 'New York Yankees', 'Atlanta Braves' ] =>
-        [ Date.new( 2001, 7, 2 ), Date.new( 2001, 8, 12 ), Date.new( 2001, 8, 14 ) ],
-      [ 'Detroit Tigers', 'Chicago Cubs' ] =>
-        [ Date.new( 2001, 7, 23 ) ]
-    }
-syck: |
-  struct test_node seq1[] = {
-      { T_STR, 0, "New York Yankees" },
-      { T_STR, 0, "Atlanta Braves" },
-      end_node
-  };
-  struct test_node seq2[] = {
-      { T_STR, 0, "2001-07-02" },
-      { T_STR, 0, "2001-08-12" },
-      { T_STR, 0, "2001-08-14" },
-      end_node
-  };
-  struct test_node seq3[] = {
-      { T_STR, 0, "Detroit Tigers" },
-      { T_STR, 0, "Chicago Cubs" },
-      end_node
-  };
-  struct test_node seq4[] = {
-      { T_STR, 0, "2001-07-23" },
-      end_node
-  };
-  struct test_node map[] = {
-      { T_SEQ, 0, 0, seq1 },
-      { T_SEQ, 0, 0, seq2 },
-      { T_SEQ, 0, 0, seq3 },
-      { T_SEQ, 0, 0, seq4 },
-      end_node
-  };
-  struct test_node stream[] = {
-      { T_MAP, 0, 0, map },
-      end_node
-  };
-
----
-test: Sequence of sequences
-spec: 2.5
-yaml: |
-  - [ name         , hr , avg   ]
-  - [ Mark McGwire , 65 , 0.278 ]
-  - [ Sammy Sosa   , 63 , 0.288 ]
-php: |
-  array(
-    array( 'name', 'hr', 'avg' ),
-    array( 'Mark McGwire', 65, 0.278 ),
-    array( 'Sammy Sosa', 63, 0.288 )
-  )
----
-test: Mapping of mappings
-todo: true
-spec: 2.6
-yaml: |
-  Mark McGwire: {hr: 65, avg: 0.278}
-  Sammy Sosa: {
-      hr: 63,
-      avg: 0.288
-    }
-php: |
-  array(
-    'Mark McGwire' =>
-      array( 'hr' => 65, 'avg' => 0.278 ),
-    'Sammy Sosa' =>
-      array( 'hr' => 63, 'avg' => 0.288 )
-  )
----
-test: Two documents in a stream each with a leading comment
-todo: true
-spec: 2.7
-yaml: |
-  # Ranking of 1998 home runs
-  ---
-  - Mark McGwire
-  - Sammy Sosa
-  - Ken Griffey
-
-  # Team ranking
-  ---
-  - Chicago Cubs
-  - St Louis Cardinals
-ruby: |
-  y = YAML::Stream.new
-  y.add( [ 'Mark McGwire', 'Sammy Sosa', 'Ken Griffey' ] )
-  y.add( [ 'Chicago Cubs', 'St Louis Cardinals' ] )
-documents: 2
-
----
-test: Play by play feed from a game
-todo: true
-spec: 2.8
-yaml: |
-  ---
-  time: 20:03:20
-  player: Sammy Sosa
-  action: strike (miss)
-  ...
-  ---
-  time: 20:03:47
-  player: Sammy Sosa
-  action: grand slam
-  ...
-perl: |
-  [ 'Mark McGwire', 'Sammy Sosa', 'Ken Griffey' ]
-documents: 2
-
----
-test: Single document with two comments
-spec: 2.9
-yaml: |
-  hr: # 1998 hr ranking
-    - Mark McGwire
-    - Sammy Sosa
-  rbi:
-    # 1998 rbi ranking
-    - Sammy Sosa
-    - Ken Griffey
-php: |
-  array(
-    'hr' => array( 'Mark McGwire', 'Sammy Sosa' ),
-    'rbi' => array( 'Sammy Sosa', 'Ken Griffey' )
-  )
----
-test: Node for Sammy Sosa appears twice in this document
-spec: 2.10
-yaml: |
-   ---
-   hr:
-      - Mark McGwire
-      # Following node labeled SS
-      - &SS Sammy Sosa
-   rbi:
-      - *SS # Subsequent occurrence
-      - Ken Griffey
-php: |
-   array(
-      'hr' =>
-         array('Mark McGwire', 'Sammy Sosa'),
-      'rbi' =>
-         array('Sammy Sosa', 'Ken Griffey')
-   )
----
-test: Mapping between sequences
-todo: true
-spec: 2.11
-yaml: |
-   ? # PLAY SCHEDULE
-     - Detroit Tigers
-     - Chicago Cubs
-   :
-     - 2001-07-23
-
-   ? [ New York Yankees,
-       Atlanta Braves ]
-   : [ 2001-07-02, 2001-08-12,
-       2001-08-14 ]
-ruby: |
-   {
-      [ 'Detroit Tigers', 'Chicago Cubs' ] => [ Date.new( 2001, 7, 23 ) ],
-      [ 'New York Yankees', 'Atlanta Braves' ] => [ Date.new( 2001, 7, 2 ), Date.new( 2001, 8, 12 ), Date.new( 2001, 8, 14 ) ]
-   }
-syck: |
-  struct test_node seq1[] = {
-      { T_STR, 0, "New York Yankees" },
-      { T_STR, 0, "Atlanta Braves" },
-      end_node
-  };
-  struct test_node seq2[] = {
-      { T_STR, 0, "2001-07-02" },
-      { T_STR, 0, "2001-08-12" },
-      { T_STR, 0, "2001-08-14" },
-      end_node
-  };
-  struct test_node seq3[] = {
-      { T_STR, 0, "Detroit Tigers" },
-      { T_STR, 0, "Chicago Cubs" },
-      end_node
-  };
-  struct test_node seq4[] = {
-      { T_STR, 0, "2001-07-23" },
-      end_node
-  };
-  struct test_node map[] = {
-      { T_SEQ, 0, 0, seq3 },
-      { T_SEQ, 0, 0, seq4 },
-      { T_SEQ, 0, 0, seq1 },
-      { T_SEQ, 0, 0, seq2 },
-      end_node
-  };
-  struct test_node stream[] = {
-      { T_MAP, 0, 0, map },
-      end_node
-  };
-
----
-test: Sequence key shortcut
-spec: 2.12
-yaml: |
-  ---
-  # products purchased
-  - item    : Super Hoop
-    quantity: 1
-  - item    : Basketball
-    quantity: 4
-  - item    : Big Shoes
-    quantity: 1
-php: |
-  array (
-    array (
-      'item' => 'Super Hoop',
-      'quantity' => 1,
-    ),
-    array (
-      'item' => 'Basketball',
-      'quantity' => 4,
-    ),
-    array (
-      'item' => 'Big Shoes',
-      'quantity' => 1,
-    )
-  )
-perl: |
-  [
-     { item => 'Super Hoop', quantity => 1 },
-     { item => 'Basketball', quantity => 4 },
-     { item => 'Big Shoes',  quantity => 1 }
-  ]
-
-ruby: |
-  [
-     { 'item' => 'Super Hoop', 'quantity' => 1 },
-     { 'item' => 'Basketball', 'quantity' => 4 },
-     { 'item' => 'Big Shoes', 'quantity' => 1 }
-  ]
-python: |
-  [
-       { 'item': 'Super Hoop', 'quantity': 1 },
-       { 'item': 'Basketball', 'quantity': 4 },
-       { 'item': 'Big Shoes',  'quantity': 1 }
-  ]
-syck: |
-  struct test_node map1[] = {
-      { T_STR, 0, "item" },
-          { T_STR, 0, "Super Hoop" },
-      { T_STR, 0, "quantity" },
-          { T_STR, 0, "1" },
-      end_node
-  };
-  struct test_node map2[] = {
-      { T_STR, 0, "item" },
-          { T_STR, 0, "Basketball" },
-      { T_STR, 0, "quantity" },
-          { T_STR, 0, "4" },
-      end_node
-  };
-  struct test_node map3[] = {
-      { T_STR, 0, "item" },
-          { T_STR, 0, "Big Shoes" },
-      { T_STR, 0, "quantity" },
-          { T_STR, 0, "1" },
-      end_node
-  };
-  struct test_node seq[] = {
-      { T_MAP, 0, 0, map1 },
-      { T_MAP, 0, 0, map2 },
-      { T_MAP, 0, 0, map3 },
-      end_node
-  };
-  struct test_node stream[] = {
-      { T_SEQ, 0, 0, seq },
-      end_node
-  };
-
-
----
-test: Literal perserves newlines
-todo: true
-spec: 2.13
-yaml: |
-  # ASCII Art
-  --- |
-    \//||\/||
-    // ||  ||_
-perl: |
-  "\\//||\\/||\n// ||  ||_\n"
-ruby: |
-  "\\//||\\/||\n// ||  ||_\n"
-python: |
-    [
-        flushLeft(
-        """
-        \//||\/||
-        // ||  ||_
-        """
-        )
-    ]
-syck: |
-  struct test_node stream[] = {
-      { T_STR, 0, "\\//||\\/||\n// ||  ||_\n" },
-      end_node
-  };
-
----
-test: Folded treats newlines as a space
-todo: true
-spec: 2.14
-yaml: |
-  ---
-    Mark McGwire's
-    year was crippled
-    by a knee injury.
-perl: |
-  "Mark McGwire's year was crippled by a knee injury."
-ruby: |
-  "Mark McGwire's year was crippled by a knee injury."
-python: |
-    [ "Mark McGwire's year was crippled by a knee injury." ]
-syck: |
-  struct test_node stream[] = {
-      { T_STR, 0, "Mark McGwire's year was crippled by a knee injury." },
-      end_node
-  };
-
----
-test: Newlines preserved for indented and blank lines
-todo: true
-spec: 2.15
-yaml: |
-  --- >
-   Sammy Sosa completed another
-   fine season with great stats.
-
-     63 Home Runs
-     0.288 Batting Average
-
-   What a year!
-perl: |
-  "Sammy Sosa completed another fine season with great stats.\n\n  63 Home Runs\n  0.288 Batting Average\n\nWhat a year!\n"
-ruby: |
-  "Sammy Sosa completed another fine season with great stats.\n\n  63 Home Runs\n  0.288 Batting Average\n\nWhat a year!\n"
-python: |
-    [
-        flushLeft(
-        """
-        Sammy Sosa completed another fine season with great stats.
-
-          63 Home Runs
-          0.288 Batting Average
-
-        What a year!
-        """
-        )
-    ]
-syck: |
-  struct test_node stream[] = {
-      { T_STR, 0, "Sammy Sosa completed another fine season with great stats.\n\n  63 Home Runs\n  0.288 Batting Average\n\nWhat a year!\n" },
-      end_node
-  };
-
-
----
-test: Indentation determines scope
-spec: 2.16
-yaml: |
-  name: Mark McGwire
-  accomplishment: >
-     Mark set a major league
-     home run record in 1998.
-  stats: |
-     65 Home Runs
-     0.278 Batting Average
-php: |
-  array(
-    'name' => 'Mark McGwire',
-    'accomplishment' => "Mark set a major league home run record in 1998.\n",
-    'stats' => "65 Home Runs\n0.278 Batting Average\n"
-  )
----
-test: Quoted scalars
-todo: true
-spec: 2.17
-yaml: |
-  unicode: "Sosa did fine.\u263A"
-  control: "\b1998\t1999\t2000\n"
-  hexesc:  "\x0D\x0A is \r\n"
-
-  single: '"Howdy!" he cried.'
-  quoted: ' # not a ''comment''.'
-  tie-fighter: '|\-*-/|'
-ruby: |
-  {
-    "tie-fighter" => "|\\-*-/|",
-    "control"=>"\0101998\t1999\t2000\n",
-    "unicode"=>"Sosa did fine." + ["263A".hex ].pack('U*'),
-    "quoted"=>" # not a 'comment'.",
-    "single"=>"\"Howdy!\" he cried.",
-    "hexesc"=>"\r\n is \r\n"
-  }
----
-test: Multiline flow scalars
-todo: true
-spec: 2.18
-yaml: |
-  plain:
-    This unquoted scalar
-    spans many lines.
-
-  quoted: "So does this
-    quoted scalar.\n"
-ruby: |
-  {
-    'plain' => 'This unquoted scalar spans many lines.',
-    'quoted' => "So does this quoted scalar.\n"
-  }
----
-test: Integers
-spec: 2.19
-yaml: |
-  canonical: 12345
-  decimal: +12,345
-  octal: 014
-  hexadecimal: 0xC
-php: |
-  array(
-    'canonical' => 12345,
-    'decimal' => 12345,
-    'octal' => 014,
-    'hexadecimal' => 0xC
-  )
----
-# FIX: spec shows parens around -inf and NaN
-test: Floating point
-spec: 2.20
-yaml: |
-  canonical: 1.23015e+3
-  exponential: 12.3015e+02
-  fixed: 1,230.15
-  negative infinity: -.inf
-  not a number: .NaN
-  float as whole number: !!float 1
-php: |
-  array(
-    'canonical' => 1230.15,
-    'exponential' => 1230.15,
-    'fixed' => 1230.15,
-    'negative infinity' => log(0),
-    'not a number' => -log(0),
-    'float as whole number' => (float) 1
-  )
----
-test: Miscellaneous
-spec: 2.21
-yaml: |
-  null: ~
-  true: true
-  false: false
-  string: '12345'
-php: |
-  array(
-    '' => null,
-    1 => true,
-    0 => false,
-    'string' => '12345'
-  )
----
-test: Timestamps
-todo: true
-spec: 2.22
-yaml: |
-  canonical: 2001-12-15T02:59:43.1Z
-  iso8601:  2001-12-14t21:59:43.10-05:00
-  spaced:  2001-12-14 21:59:43.10 -05:00
-  date:   2002-12-14 # Time is noon UTC
-php: |
-  array(
-    'canonical' => YAML::mktime( 2001, 12, 15, 2, 59, 43, 0.10 ),
-    'iso8601' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ),
-    'spaced' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ),
-    'date' => Date.new( 2002, 12, 14 )
-  )
----
-test: legacy Timestamps test
-todo: true
-spec: legacy D4
-yaml: |
-    canonical: 2001-12-15T02:59:43.00Z
-    iso8601:  2001-02-28t21:59:43.00-05:00
-    spaced:  2001-12-14 21:59:43.00 -05:00
-    date:   2002-12-14
-php: |
-   array(
-     'canonical' => Time::utc( 2001, 12, 15, 2, 59, 43, 0 ),
-     'iso8601' => YAML::mktime( 2001, 2, 28, 21, 59, 43, 0, "-05:00" ),
-     'spaced' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0, "-05:00" ),
-     'date' => Date.new( 2002, 12, 14 )
-   )
----
-test: Various explicit families
-todo: true
-spec: 2.23
-yaml: |
-  not-date: !str 2002-04-28
-  picture: !binary |
-   R0lGODlhDAAMAIQAAP//9/X
-   17unp5WZmZgAAAOfn515eXv
-   Pz7Y6OjuDg4J+fn5OTk6enp
-   56enmleECcgggoBADs=
-
-  application specific tag: !!something |
-   The semantics of the tag
-   above may be different for
-   different documents.
-
-ruby-setup: |
-  YAML.add_private_type( "something" ) do |type, val|
-    "SOMETHING: #{val}"
-  end
-ruby: |
-  {
-    'not-date' => '2002-04-28',
-    'picture' => "GIF89a\f\000\f\000\204\000\000\377\377\367\365\365\356\351\351\345fff\000\000\000\347\347\347^^^\363\363\355\216\216\216\340\340\340\237\237\237\223\223\223\247\247\247\236\236\236i^\020' \202\n\001\000;",
-    'application specific tag' => "SOMETHING: The semantics of the tag\nabove may be different for\ndifferent documents.\n"
-  }
----
-test: Application specific family
-todo: true
-spec: 2.24
-yaml: |
-  # Establish a tag prefix
-  --- !clarkevans.com,2002/graph/^shape
-    # Use the prefix: shorthand for
-    # !clarkevans.com,2002/graph/circle
-  - !^circle
-    center: &ORIGIN {x: 73, 'y': 129}
-    radius: 7
-  - !^line # !clarkevans.com,2002/graph/line
-    start: *ORIGIN
-    finish: { x: 89, 'y': 102 }
-  - !^label
-    start: *ORIGIN
-    color: 0xFFEEBB
-    value: Pretty vector drawing.
-ruby-setup: |
-  YAML.add_domain_type( "clarkevans.com,2002", 'graph/shape' ) { |type, val|
-    if Array === val
-      val << "Shape Container"
-      val
-    else
-      raise YAML::Error, "Invalid graph of class #{ val.class }: " + val.inspect
-    end
-  }
-  one_shape_proc = Proc.new { |type, val|
-    scheme, domain, type = type.split( /:/, 3 )
-    if val.is_a? ::Hash
-      val['TYPE'] = "Shape: #{type}"
-      val
-    else
-      raise YAML::Error, "Invalid graph of class #{ val.class }: " + val.inspect
-    end
-  }
-  YAML.add_domain_type( "clarkevans.com,2002", 'graph/circle', &one_shape_proc )
-  YAML.add_domain_type( "clarkevans.com,2002", 'graph/line', &one_shape_proc )
-  YAML.add_domain_type( "clarkevans.com,2002", 'graph/label', &one_shape_proc )
-ruby: |
-  [
-    {
-      "radius" => 7,
-      "center"=>
-      {
-        "x" => 73,
-        "y" => 129
-      },
-      "TYPE" => "Shape: graph/circle"
-    }, {
-      "finish" =>
-      {
-        "x" => 89,
-        "y" => 102
-      },
-      "TYPE" => "Shape: graph/line",
-      "start" =>
-      {
-        "x" => 73,
-        "y" => 129
-      }
-    }, {
-      "TYPE" => "Shape: graph/label",
-      "value" => "Pretty vector drawing.",
-      "start" =>
-      {
-        "x" => 73,
-        "y" => 129
-      },
-      "color" => 16772795
-    },
-    "Shape Container"
-  ]
-# ---
-# test: Unordered set
-# spec: 2.25
-# yaml: |
-#   # sets are represented as a
-#   # mapping where each key is
-#   # associated with the empty string
-#   --- !set
-#   ? Mark McGwire
-#   ? Sammy Sosa
-#   ? Ken Griff
----
-test: Ordered mappings
-todo: true
-spec: 2.26
-yaml: |
-  # ordered maps are represented as
-  # a sequence of mappings, with
-  # each mapping having one key
-  --- !omap
-  - Mark McGwire: 65
-  - Sammy Sosa: 63
-  - Ken Griffy: 58
-ruby: |
-  YAML::Omap[
-    'Mark McGwire', 65,
-    'Sammy Sosa', 63,
-    'Ken Griffy', 58
-  ]
----
-test: Invoice
-dump_skip: true
-spec: 2.27
-yaml: |
-  --- !clarkevans.com,2002/^invoice
-  invoice: 34843
-  date   : 2001-01-23
-  bill-to: &id001
-      given  : Chris
-      family : Dumars
-      address:
-          lines: |
-              458 Walkman Dr.
-              Suite #292
-          city    : Royal Oak
-          state   : MI
-          postal  : 48046
-  ship-to: *id001
-  product:
-      -
-        sku         : BL394D
-        quantity    : 4
-        description : Basketball
-        price       : 450.00
-      -
-        sku         : BL4438H
-        quantity    : 1
-        description : Super Hoop
-        price       : 2392.00
-  tax  : 251.42
-  total: 4443.52
-  comments: >
-    Late afternoon is best.
-    Backup contact is Nancy
-    Billsmer @ 338-4338.
-php: |
-  array(
-     'invoice' => 34843, 'date' => mktime(0, 0, 0, 1, 23, 2001),
-     'bill-to' =>
-      array( 'given' => 'Chris', 'family' => 'Dumars', 'address' => array( 'lines' => "458 Walkman Dr.\nSuite #292\n", 'city' => 'Royal Oak', 'state' => 'MI', 'postal' => 48046 ) )
-     , 'ship-to' =>
-      array( 'given' => 'Chris', 'family' => 'Dumars', 'address' => array( 'lines' => "458 Walkman Dr.\nSuite #292\n", 'city' => 'Royal Oak', 'state' => 'MI', 'postal' => 48046 ) )
-     , 'product' =>
-       array(
-        array( 'sku' => 'BL394D', 'quantity' => 4, 'description' => 'Basketball', 'price' => 450.00 ),
-        array( 'sku' => 'BL4438H', 'quantity' => 1, 'description' => 'Super Hoop', 'price' => 2392.00 )
-      ),
-     'tax' => 251.42, 'total' => 4443.52,
-     'comments' => "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.\n"
-  )
----
-test: Log file
-todo: true
-spec: 2.28
-yaml: |
-  ---
-  Time: 2001-11-23 15:01:42 -05:00
-  User: ed
-  Warning: >
-    This is an error message
-    for the log file
-  ---
-  Time: 2001-11-23 15:02:31 -05:00
-  User: ed
-  Warning: >
-    A slightly different error
-    message.
-  ---
-  Date: 2001-11-23 15:03:17 -05:00
-  User: ed
-  Fatal: >
-    Unknown variable "bar"
-  Stack:
-    - file: TopClass.py
-      line: 23
-      code: |
-        x = MoreObject("345\n")
-    - file: MoreClass.py
-      line: 58
-      code: |-
-        foo = bar
-ruby: |
-  y = YAML::Stream.new
-  y.add( { 'Time' => YAML::mktime( 2001, 11, 23, 15, 01, 42, 00, "-05:00" ),
-           'User' => 'ed', 'Warning' => "This is an error message for the log file\n" } )
-  y.add( { 'Time' => YAML::mktime( 2001, 11, 23, 15, 02, 31, 00, "-05:00" ),
-           'User' => 'ed', 'Warning' => "A slightly different error message.\n" } )
-  y.add( { 'Date' => YAML::mktime( 2001, 11, 23, 15, 03, 17, 00, "-05:00" ),
-           'User' => 'ed', 'Fatal' => "Unknown variable \"bar\"\n",
-           'Stack' => [
-           { 'file' => 'TopClass.py', 'line' => 23, 'code' => "x = MoreObject(\"345\\n\")\n" },
-           { 'file' => 'MoreClass.py', 'line' => 58, 'code' => "foo = bar" } ] } )
-documents: 3
-
----
-test: Throwaway comments
-yaml: |
-   ### These are four throwaway comment  ###
-
-   ### lines (the second line is empty). ###
-   this: |   # Comments may trail lines.
-      contains three lines of text.
-      The third one starts with a
-      # character. This isn't a comment.
-
-   # These are three throwaway comment
-   # lines (the first line is empty).
-php: |
-   array(
-     'this' => "contains three lines of text.\nThe third one starts with a\n# character. This isn't a comment.\n"
-   )
----
-test: Document with a single value
-todo: true
-yaml: |
-   --- >
-   This YAML stream contains a single text value.
-   The next stream is a log file - a sequence of
-   log entries. Adding an entry to the log is a
-   simple matter of appending it at the end.
-ruby: |
-   "This YAML stream contains a single text value. The next stream is a log file - a sequence of log entries. Adding an entry to the log is a simple matter of appending it at the end.\n"
----
-test: Document stream
-todo: true
-yaml: |
-   ---
-   at: 2001-08-12 09:25:00.00 Z
-   type: GET
-   HTTP: '1.0'
-   url: '/index.html'
-   ---
-   at: 2001-08-12 09:25:10.00 Z
-   type: GET
-   HTTP: '1.0'
-   url: '/toc.html'
-ruby: |
-   y = YAML::Stream.new
-   y.add( {
-      'at' => Time::utc( 2001, 8, 12, 9, 25, 00 ),
-      'type' => 'GET',
-      'HTTP' => '1.0',
-      'url' => '/index.html'
-   } )
-   y.add( {
-      'at' => Time::utc( 2001, 8, 12, 9, 25, 10 ),
-      'type' => 'GET',
-      'HTTP' => '1.0',
-      'url' => '/toc.html'
-   } )
-documents: 2
-
----
-test: Top level mapping
-yaml: |
-   # This stream is an example of a top-level mapping.
-   invoice : 34843
-   date    : 2001-01-23
-   total   : 4443.52
-php: |
-   array(
-      'invoice' => 34843,
-      'date' => mktime(0, 0, 0, 1, 23, 2001),
-      'total' => 4443.52
-   )
----
-test: Single-line documents
-todo: true
-yaml: |
-  # The following is a sequence of three documents.
-  # The first contains an empty mapping, the second
-  # an empty sequence, and the last an empty string.
-  --- {}
-  --- [ ]
-  --- ''
-ruby: |
-  y = YAML::Stream.new
-  y.add( {} )
-  y.add( [] )
-  y.add( '' )
-documents: 3
-
----
-test: Document with pause
-todo: true
-yaml: |
-  # A communication channel based on a YAML stream.
-  ---
-  sent at: 2002-06-06 11:46:25.10 Z
-  payload: Whatever
-  # Receiver can process this as soon as the following is sent:
-  ...
-  # Even if the next message is sent long after:
-  ---
-  sent at: 2002-06-06 12:05:53.47 Z
-  payload: Whatever
-  ...
-ruby: |
-  y = YAML::Stream.new
-  y.add(
-    { 'sent at' => YAML::mktime( 2002, 6, 6, 11, 46, 25, 0.10 ),
-      'payload' => 'Whatever' }
-  )
-  y.add(
-    { "payload" => "Whatever", "sent at" => YAML::mktime( 2002, 6, 6, 12, 5, 53, 0.47 ) }
-  )
-documents: 2
-
----
-test: Explicit typing
-yaml: |
-   integer: 12
-   also int: ! "12"
-   string: !str 12
-php: |
-   array( 'integer' => 12, 'also int' => 12, 'string' => '12' )
----
-test: Private types
-todo: true
-yaml: |
-  # Both examples below make use of the 'x-private:ball'
-  # type family URI, but with different semantics.
-  ---
-  pool: !!ball
-    number: 8
-    color: black
-  ---
-  bearing: !!ball
-    material: steel
-ruby: |
-  y = YAML::Stream.new
-  y.add( { 'pool' =>
-    YAML::PrivateType.new( 'ball',
-      { 'number' => 8, 'color' => 'black' } ) }
-  )
-  y.add( { 'bearing' =>
-    YAML::PrivateType.new( 'ball',
-      { 'material' => 'steel' } ) }
-  )
-documents: 2
-
----
-test: Type family under yaml.org
-yaml: |
-  # The URI is 'tag:yaml.org,2002:str'
-  - !str a Unicode string
-php: |
-  array( 'a Unicode string' )
----
-test: Type family under perl.yaml.org
-todo: true
-yaml: |
-  # The URI is 'tag:perl.yaml.org,2002:Text::Tabs'
-  - !perl/Text::Tabs {}
-ruby: |
-  [ YAML::DomainType.new( 'perl.yaml.org,2002', 'Text::Tabs', {} ) ]
----
-test: Type family under clarkevans.com
-todo: true
-yaml: |
-  # The URI is 'tag:clarkevans.com,2003-02:timesheet'
-  - !clarkevans.com,2003-02/timesheet {}
-ruby: |
-  [ YAML::DomainType.new( 'clarkevans.com,2003-02', 'timesheet', {} ) ]
----
-test: URI Escaping
-todo: true
-yaml: |
-  same:
-    - !domain.tld,2002/type\x30 value
-    - !domain.tld,2002/type0 value
-  different: # As far as the YAML parser is concerned
-    - !domain.tld,2002/type%30 value
-    - !domain.tld,2002/type0 value
-ruby-setup: |
-  YAML.add_domain_type( "domain.tld,2002", "type0" ) { |type, val|
-    "ONE: #{val}"
-  }
-  YAML.add_domain_type( "domain.tld,2002", "type%30" ) { |type, val|
-    "TWO: #{val}"
-  }
-ruby: |
-  { 'same' => [ 'ONE: value', 'ONE: value' ], 'different' => [ 'TWO: value', 'ONE: value' ] }
----
-test: URI Prefixing
-todo: true
-yaml: |
-  # 'tag:domain.tld,2002:invoice' is some type family.
-  invoice: !domain.tld,2002/^invoice
-    # 'seq' is shorthand for 'tag:yaml.org,2002:seq'.
-    # This does not effect '^customer' below
-    # because it is does not specify a prefix.
-    customers: !seq
-      # '^customer' is shorthand for the full
-      # notation 'tag:domain.tld,2002:customer'.
-      - !^customer
-        given : Chris
-        family : Dumars
-ruby-setup: |
-  YAML.add_domain_type( "domain.tld,2002", /(invoice|customer)/ ) { |type, val|
-    if val.is_a? ::Hash
-      scheme, domain, type = type.split( /:/, 3 )
-      val['type'] = "domain #{type}"
-      val
-    else
-      raise YAML::Error, "Not a Hash in domain.tld/invoice: " + val.inspect
-    end
-  }
-ruby: |
-  { "invoice"=> { "customers"=> [ { "given"=>"Chris", "type"=>"domain customer", "family"=>"Dumars" } ], "type"=>"domain invoice" } }
-
----
-test: Overriding anchors
-yaml: |
-  anchor : &A001 This scalar has an anchor.
-  override : &A001 >
-   The alias node below is a
-   repeated use of this value.
-  alias : *A001
-php: |
-  array( 'anchor' => 'This scalar has an anchor.',
-    'override' => "The alias node below is a repeated use of this value.\n",
-    'alias' => "The alias node below is a repeated use of this value.\n" )
----
-test: Flow and block formatting
-todo: true
-yaml: |
-  empty: []
-  flow: [ one, two, three # May span lines,
-           , four,           # indentation is
-             five ]          # mostly ignored.
-  block:
-   - First item in top sequence
-   -
-    - Subordinate sequence entry
-   - >
-     A folded sequence entry
-   - Sixth item in top sequence
-ruby: |
-  { 'empty' => [], 'flow' => [ 'one', 'two', 'three', 'four', 'five' ],
-    'block' => [ 'First item in top sequence', [ 'Subordinate sequence entry' ],
-    "A folded sequence entry\n", 'Sixth item in top sequence' ] }
----
-test: Complete mapping test
-todo: true
-yaml: |
- empty: {}
- flow: { one: 1, two: 2 }
- spanning: { one: 1,
-    two: 2 }
- block:
-  first : First entry
-  second:
-   key: Subordinate mapping
-  third:
-   - Subordinate sequence
-   - { }
-   - Previous mapping is empty.
-   - A key: value pair in a sequence.
-     A second: key:value pair.
-   - The previous entry is equal to the following one.
-   -
-     A key: value pair in a sequence.
-     A second: key:value pair.
-  !float 12 : This key is a float.
-  ? >
-   ?
-  : This key had to be protected.
-  "\a" : This key had to be escaped.
-  ? >
-   This is a
-   multi-line
-   folded key
-  : Whose value is
-    also multi-line.
-  ? this also works as a key
-  : with a value at the next line.
-  ?
-   - This key
-   - is a sequence
-  :
-   - With a sequence value.
-  ?
-   This: key
-   is a: mapping
-  :
-   with a: mapping value.
-ruby: |
-  { 'empty' => {}, 'flow' => { 'one' => 1, 'two' => 2 },
-    'spanning' => { 'one' => 1, 'two' => 2 },
-    'block' => { 'first' => 'First entry', 'second' =>
-    { 'key' => 'Subordinate mapping' }, 'third' =>
-      [ 'Subordinate sequence', {}, 'Previous mapping is empty.',
-        { 'A key' => 'value pair in a sequence.', 'A second' => 'key:value pair.' },
-        'The previous entry is equal to the following one.',
-        { 'A key' => 'value pair in a sequence.', 'A second' => 'key:value pair.' } ],
-    12.0 => 'This key is a float.', "?\n" => 'This key had to be protected.',
-    "\a" => 'This key had to be escaped.',
-    "This is a multi-line folded key\n" => "Whose value is also multi-line.",
-    'this also works as a key' => 'with a value at the next line.',
-    [ 'This key', 'is a sequence' ] => [ 'With a sequence value.' ] } }
-  # Couldn't recreate map exactly, so we'll do a detailed check to be sure it's entact
-  obj_y['block'].keys.each { |k|
-    if Hash === k
-      v = obj_y['block'][k]
-      if k['This'] == 'key' and k['is a'] == 'mapping' and v['with a'] == 'mapping value.'
-         obj_r['block'][k] = v
-      end
-    end
-  }
----
-test: Literal explicit indentation
-yaml: |
-   # Explicit indentation must
-   # be given in all the three
-   # following cases.
-   leading spaces: |2
-         This value starts with four spaces.
-
-   leading line break: |2
-
-     This value starts with a line break.
-
-   leading comment indicator: |2
-     # first line starts with a
-     # character.
-
-   # Explicit indentation may
-   # also be given when it is
-   # not required.
-   redundant: |2
-     This value is indented 2 spaces.
-php: |
-   array(
-      'leading spaces' => "    This value starts with four spaces.\n",
-      'leading line break' => "\nThis value starts with a line break.\n",
-      'leading comment indicator' => "# first line starts with a\n# character.\n",
-      'redundant' => "This value is indented 2 spaces.\n"
-   )
----
-test: Chomping and keep modifiers
-yaml: |
-    clipped: |
-        This has one newline.
-
-    same as "clipped" above: "This has one newline.\n"
-
-    stripped: |-
-        This has no newline.
-
-    same as "stripped" above: "This has no newline."
-
-    kept: |+
-        This has two newlines.
-
-    same as "kept" above: "This has two newlines.\n\n"
-php: |
-    array(
-      'clipped' => "This has one newline.\n",
-      'same as "clipped" above' => "This has one newline.\n",
-      'stripped' => 'This has no newline.',
-      'same as "stripped" above' => 'This has no newline.',
-      'kept' => "This has two newlines.\n\n",
-      'same as "kept" above' => "This has two newlines.\n\n"
-    )
----
-test: Literal combinations
-todo: true
-yaml: |
-   empty: |
-
-   literal: |
-    The \ ' " characters may be
-    freely used. Leading white
-       space is significant.
-
-    Line breaks are significant.
-    Thus this value contains one
-    empty line and ends with a
-    single line break, but does
-    not start with one.
-
-   is equal to: "The \\ ' \" characters may \
-    be\nfreely used. Leading white\n   space \
-    is significant.\n\nLine breaks are \
-    significant.\nThus this value contains \
-    one\nempty line and ends with a\nsingle \
-    line break, but does\nnot start with one.\n"
-
-   # Comments may follow a block
-   # scalar value. They must be
-   # less indented.
-
-   # Modifiers may be combined in any order.
-   indented and chomped: |2-
-       This has no newline.
-
-   also written as: |-2
-       This has no newline.
-
-   both are equal to: "  This has no newline."
-php: |
-   array(
-     'empty' => '',
-     'literal' => "The \\ ' \" characters may be\nfreely used. Leading white\n   space " +
-       "is significant.\n\nLine breaks are significant.\nThus this value contains one\n" +
-       "empty line and ends with a\nsingle line break, but does\nnot start with one.\n",
-     'is equal to' => "The \\ ' \" characters may be\nfreely used. Leading white\n   space " +
-       "is significant.\n\nLine breaks are significant.\nThus this value contains one\n" +
-       "empty line and ends with a\nsingle line break, but does\nnot start with one.\n",
-     'indented and chomped' => '  This has no newline.',
-     'also written as' => '  This has no newline.',
-     'both are equal to' => '  This has no newline.'
-   )
----
-test: Folded combinations
-todo: true
-yaml: |
-   empty: >
-
-   one paragraph: >
-    Line feeds are converted
-    to spaces, so this value
-    contains no line breaks
-    except for the final one.
-
-   multiple paragraphs: >2
-
-     An empty line, either
-     at the start or in
-     the value:
-
-     Is interpreted as a
-     line break. Thus this
-     value contains three
-     line breaks.
-
-   indented text: >
-       This is a folded
-       paragraph followed
-       by a list:
-        * first entry
-        * second entry
-       Followed by another
-       folded paragraph,
-       another list:
-
-        * first entry
-
-        * second entry
-
-       And a final folded
-       paragraph.
-
-   above is equal to: |
-       This is a folded paragraph followed by a list:
-        * first entry
-        * second entry
-       Followed by another folded paragraph, another list:
-
-        * first entry
-
-        * second entry
-
-       And a final folded paragraph.
-
-   # Explicit comments may follow
-   # but must be less indented.
-php: |
-   array(
-     'empty' => '',
-     'one paragraph' => 'Line feeds are converted to spaces, so this value'.
-       " contains no line breaks except for the final one.\n",
-     'multiple paragraphs' => "\nAn empty line, either at the start or in the value:\n".
-       "Is interpreted as a line break. Thus this value contains three line breaks.\n",
-     'indented text' => "This is a folded paragraph followed by a list:\n".
-       " * first entry\n * second entry\nFollowed by another folded paragraph, ".
-       "another list:\n\n * first entry\n\n * second entry\n\nAnd a final folded paragraph.\n",
-     'above is equal to' => "This is a folded paragraph followed by a list:\n".
-       " * first entry\n * second entry\nFollowed by another folded paragraph, ".
-       "another list:\n\n * first entry\n\n * second entry\n\nAnd a final folded paragraph.\n"
-   )
----
-test: Single quotes
-todo: true
-yaml: |
-   empty: ''
-   second: '! : \ etc. can be used freely.'
-   third: 'a single quote '' must be escaped.'
-   span: 'this contains
-         six spaces
-
-         and one
-         line break'
-   is same as: "this contains six spaces\nand one line break"
-php: |
-   array(
-     'empty' => '',
-     'second' => '! : \\ etc. can be used freely.',
-     'third' => "a single quote ' must be escaped.",
-     'span' => "this contains six spaces\nand one line break",
-     'is same as' => "this contains six spaces\nand one line break"
-   )
----
-test: Double quotes
-todo: true
-yaml: |
-   empty: ""
-   second: "! : etc. can be used freely."
-   third: "a \" or a \\ must be escaped."
-   fourth: "this value ends with an LF.\n"
-   span: "this contains
-     four  \
-         spaces"
-   is equal to: "this contains four  spaces"
-php: |
-   array(
-     'empty' => '',
-     'second' => '! : etc. can be used freely.',
-     'third' => 'a " or a \\ must be escaped.',
-     'fourth' => "this value ends with an LF.\n",
-     'span' => "this contains four  spaces",
-     'is equal to' => "this contains four  spaces"
-   )
----
-test: Unquoted strings
-todo: true
-yaml: |
-   first: There is no unquoted empty string.
-
-   second: 12          ## This is an integer.
-
-   third: !str 12      ## This is a string.
-
-   span: this contains
-         six spaces
-
-         and one
-         line break
-
-   indicators: this has no comments.
-               #:foo and bar# are
-               both text.
-
-   flow: [ can span
-              lines, # comment
-              like
-              this ]
-
-   note: { one-line keys: but multi-line values }
-
-php: |
-   array(
-     'first' => 'There is no unquoted empty string.',
-     'second' => 12,
-     'third' => '12',
-     'span' => "this contains six spaces\nand one line break",
-     'indicators' => "this has no comments. #:foo and bar# are both text.",
-     'flow' => [ 'can span lines', 'like this' ],
-     'note' => { 'one-line keys' => 'but multi-line values' }
-   )
----
-test: Spanning sequences
-todo: true
-yaml: |
-   # The following are equal seqs
-   # with different identities.
-   flow: [ one, two ]
-   spanning: [ one,
-        two ]
-   block:
-     - one
-     - two
-php: |
-   array(
-     'flow' => [ 'one', 'two' ],
-     'spanning' => [ 'one', 'two' ],
-     'block' => [ 'one', 'two' ]
-   )
----
-test: Flow mappings
-yaml: |
-   # The following are equal maps
-   # with different identities.
-   flow: { one: 1, two: 2 }
-   block:
-       one: 1
-       two: 2
-php: |
-   array(
-     'flow' => array( 'one' => 1, 'two' => 2 ),
-     'block' => array( 'one' => 1, 'two' => 2 )
-   )
----
-test: Representations of 12
-todo: true
-yaml: |
-   - 12 # An integer
-   # The following scalars
-   # are loaded to the
-   # string value '1' '2'.
-   - !str 12
-   - '12'
-   - "12"
-   - "\
-     1\
-     2\
-     "
-   # Strings containing paths and regexps can be unquoted:
-   - /foo/bar
-   - d:/foo/bar
-   - foo/bar
-   - /a.*b/
-php: |
-   array( 12, '12', '12', '12', '12', '/foo/bar', 'd:/foo/bar', 'foo/bar', '/a.*b/' )
----
-test: "Null"
-todo: true
-yaml: |
-   canonical: ~
-
-   english: null
-
-   # This sequence has five
-   # entries, two with values.
-   sparse:
-     - ~
-     - 2nd entry
-     - Null
-     - 4th entry
-     -
-
-   four: This mapping has five keys,
-         only two with values.
-
-php: |
-   array (
-     'canonical' => null,
-     'english' => null,
-     'sparse' => array( null, '2nd entry', null, '4th entry', null ]),
-     'four' => 'This mapping has five keys, only two with values.'
-   )
----
-test: Omap
-todo: true
-yaml: |
-   # Explicitly typed dictionary.
-   Bestiary: !omap
-     - aardvark: African pig-like ant eater. Ugly.
-     - anteater: South-American ant eater. Two species.
-     - anaconda: South-American constrictor snake. Scary.
-     # Etc.
-ruby: |
-   {
-     'Bestiary' => YAML::Omap[
-       'aardvark', 'African pig-like ant eater. Ugly.',
-       'anteater', 'South-American ant eater. Two species.',
-       'anaconda', 'South-American constrictor snake. Scary.'
-     ]
-   }
-
----
-test: Pairs
-todo: true
-yaml: |
-  # Explicitly typed pairs.
-  tasks: !pairs
-    - meeting: with team.
-    - meeting: with boss.
-    - break: lunch.
-    - meeting: with client.
-ruby: |
-  {
-    'tasks' => YAML::Pairs[
-      'meeting', 'with team.',
-      'meeting', 'with boss.',
-      'break', 'lunch.',
-      'meeting', 'with client.'
-    ]
-  }
-
----
-test: Set
-todo: true
-yaml: |
-  # Explicitly typed set.
-  baseball players: !set
-    Mark McGwire:
-    Sammy Sosa:
-    Ken Griffey:
-ruby: |
-  {
-    'baseball players' => YAML::Set[
-      'Mark McGwire', nil,
-      'Sammy Sosa', nil,
-      'Ken Griffey', nil
-    ]
-  }
-
----
-test: Boolean
-yaml: |
-   false: used as key
-   logical:  true
-   answer: false
-php: |
-   array(
-     false => 'used as key',
-     'logical' => true,
-     'answer' => false
-   )
----
-test: Integer
-yaml: |
-   canonical: 12345
-   decimal: +12,345
-   octal: 014
-   hexadecimal: 0xC
-php: |
-   array(
-     'canonical' => 12345,
-     'decimal' => 12345,
-     'octal' => 12,
-     'hexadecimal' => 12
-   )
----
-test: Float
-yaml: |
-   canonical: 1.23015e+3
-   exponential: 12.3015e+02
-   fixed: 1,230.15
-   negative infinity: -.inf
-   not a number: .NaN
-php: |
-  array(
-    'canonical' => 1230.15,
-    'exponential' => 1230.15,
-    'fixed' => 1230.15,
-    'negative infinity' => log(0),
-    'not a number' => -log(0)
-  )
----
-test: Timestamp
-todo: true
-yaml: |
-   canonical:       2001-12-15T02:59:43.1Z
-   valid iso8601:   2001-12-14t21:59:43.10-05:00
-   space separated: 2001-12-14 21:59:43.10 -05:00
-   date (noon UTC): 2002-12-14
-ruby: |
-   array(
-     'canonical' => YAML::mktime( 2001, 12, 15, 2, 59, 43, 0.10 ),
-     'valid iso8601' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ),
-     'space separated' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ),
-     'date (noon UTC)' => Date.new( 2002, 12, 14 )
-   )
----
-test: Binary
-todo: true
-yaml: |
-   canonical: !binary "\
-    R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\
-    OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\
-    +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\
-    AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="
-   base64: !binary |
-    R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5
-    OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+
-    +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC
-    AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=
-   description: >
-    The binary value above is a tiny arrow
-    encoded as a gif image.
-ruby-setup: |
-   arrow_gif = "GIF89a\f\000\f\000\204\000\000\377\377\367\365\365\356\351\351\345fff\000\000\000\347\347\347^^^\363\363\355\216\216\216\340\340\340\237\237\237\223\223\223\247\247\247\236\236\236iiiccc\243\243\243\204\204\204\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371!\376\016Made with GIMP\000,\000\000\000\000\f\000\f\000\000\005,  \216\2010\236\343@\024\350i\020\304\321\212\010\034\317\200M$z\357\3770\205p\270\2601f\r\e\316\001\303\001\036\020' \202\n\001\000;"
-ruby: |
-   {
-     'canonical' => arrow_gif,
-     'base64' => arrow_gif,
-     'description' => "The binary value above is a tiny arrow encoded as a gif image.\n"
-   }
-
----
-test: Merge key
-todo: true
-yaml: |
-  ---
-  - &CENTER { x: 1, y: 2 }
-  - &LEFT { x: 0, y: 2 }
-  - &BIG { r: 10 }
-  - &SMALL { r: 1 }
-
-  # All the following maps are equal:
-
-  - # Explicit keys
-    x: 1
-    y: 2
-    r: 10
-    label: center/big
-
-  - # Merge one map
-    << : *CENTER
-    r: 10
-    label: center/big
-
-  - # Merge multiple maps
-    << : [ *CENTER, *BIG ]
-    label: center/big
-
-  - # Override
-    << : [ *BIG, *LEFT, *SMALL ]
-    x: 1
-    label: center/big
-
-ruby-setup: |
-  center = { 'x' => 1, 'y' => 2 }
-  left = { 'x' => 0, 'y' => 2 }
-  big = { 'r' => 10 }
-  small = { 'r' => 1 }
-  node1 = { 'x' => 1, 'y' => 2, 'r' => 10, 'label' => 'center/big' }
-  node2 = center.dup
-  node2.update( { 'r' => 10, 'label' => 'center/big' } )
-  node3 = big.dup
-  node3.update( center )
-  node3.update( { 'label' => 'center/big' } )
-  node4 = small.dup
-  node4.update( left )
-  node4.update( big )
-  node4.update( { 'x' => 1, 'label' => 'center/big' } )
-
-ruby: |
-  [
-    center, left, big, small, node1, node2, node3, node4
-  ]
-
----
-test: Default key
-todo: true
-yaml: |
-   ---     # Old schema
-   link with:
-     - library1.dll
-     - library2.dll
-   ---     # New schema
-   link with:
-     - = : library1.dll
-       version: 1.2
-     - = : library2.dll
-       version: 2.3
-ruby: |
-   y = YAML::Stream.new
-   y.add( { 'link with' => [ 'library1.dll', 'library2.dll' ] } )
-   obj_h = Hash[ 'version' => 1.2 ]
-   obj_h.default = 'library1.dll'
-   obj_h2 = Hash[ 'version' => 2.3 ]
-   obj_h2.default = 'library2.dll'
-   y.add( { 'link with' => [ obj_h, obj_h2 ] } )
-documents: 2
-
----
-test: Special keys
-todo: true
-yaml: |
-   "!": These three keys
-   "&": had to be quoted
-   "=": and are normal strings.
-   # NOTE: the following node should NOT be serialized this way.
-   encoded node :
-    !special '!' : '!type'
-    !special|canonical '&' : 12
-    = : value
-   # The proper way to serialize the above node is as follows:
-   node : !!type &12 value
-ruby: |
-   { '!' => 'These three keys', '&' => 'had to be quoted',
-     '=' => 'and are normal strings.',
-     'encoded node' => YAML::PrivateType.new( 'type', 'value' ),
-     'node' => YAML::PrivateType.new( 'type', 'value' ) }
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/YtsTypeTransfers.yml b/core/vendor/symfony/yaml/Tests/Fixtures/YtsTypeTransfers.yml
deleted file mode 100644
index aac4e68..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/YtsTypeTransfers.yml
+++ /dev/null
@@ -1,244 +0,0 @@
---- %YAML:1.0
-test: Strings
-brief: >
-    Any group of characters beginning with an
-    alphabetic or numeric character is a string,
-    unless it belongs to one of the groups below
-    (such as an Integer or Time).
-yaml: |
-    String
-php: |
-    'String'
----
-test: String characters
-brief: >
-    A string can contain any alphabetic or
-    numeric character, along with many
-    punctuation characters, including the
-    period, dash, space, quotes, exclamation, and
-    question mark.
-yaml: |
-    - What's Yaml?
-    - It's for writing data structures in plain text.
-    - And?
-    - And what? That's not good enough for you?
-    - No, I mean, "And what about Yaml?"
-    - Oh, oh yeah. Uh.. Yaml for Ruby.
-php: |
-    array(
-      "What's Yaml?",
-      "It's for writing data structures in plain text.",
-      "And?",
-      "And what? That's not good enough for you?",
-      "No, I mean, \"And what about Yaml?\"",
-      "Oh, oh yeah. Uh.. Yaml for Ruby."
-    )
----
-test: Indicators in Strings
-brief: >
-    Be careful using indicators in strings.  In particular,
-    the comma, colon, and pound sign must be used carefully.
-yaml: |
-    the colon followed by space is an indicator: but is a string:right here
-    same for the pound sign: here we have it#in a string
-    the comma can, honestly, be used in most cases: [ but not in, inline collections ]
-php: |
-    array(
-      'the colon followed by space is an indicator' => 'but is a string:right here',
-      'same for the pound sign' => 'here we have it#in a string',
-      'the comma can, honestly, be used in most cases' => array('but not in', 'inline collections')
-    )
----
-test: Forcing Strings
-brief: >
-    Any YAML type can be forced into a string using the
-    explicit !str method.
-yaml: |
-    date string: !str 2001-08-01
-    number string: !str 192
-php: |
-    array(
-      'date string' => '2001-08-01',
-      'number string' => '192'
-    )
----
-test: Single-quoted Strings
-brief: >
-    You can also enclose your strings within single quotes,
-    which allows use of slashes, colons, and other indicators
-    freely.  Inside single quotes, you can represent a single
-    quote in your string by using two single quotes next to
-    each other.
-yaml: |
-    all my favorite symbols: '#:!/%.)'
-    a few i hate: '&(*'
-    why do i hate them?: 'it''s very hard to explain'
-    entities: '&pound; me'
-php: |
-    array(
-      'all my favorite symbols' => '#:!/%.)',
-      'a few i hate' => '&(*',
-      'why do i hate them?' => 'it\'s very hard to explain',
-      'entities' => '&pound; me'
-    )
----
-test: Double-quoted Strings
-brief: >
-    Enclosing strings in double quotes allows you
-    to use escapings to represent ASCII and
-    Unicode characters.
-yaml: |
-    i know where i want my line breaks: "one here\nand another here\n"
-php: |
-    array(
-      'i know where i want my line breaks' => "one here\nand another here\n"
-    )
----
-test: Multi-line Quoted Strings
-todo: true
-brief: >
-    Both single- and double-quoted strings may be
-    carried on to new lines in your YAML document.
-    They must be indented a step and indentation
-    is interpreted as a single space.
-yaml: |
-    i want a long string: "so i'm going to
-      let it go on and on to other lines
-      until i end it with a quote."
-php: |
-    array('i want a long string' => "so i'm going to ".
-         "let it go on and on to other lines ".
-         "until i end it with a quote."
-    )
-
----
-test: Plain scalars
-todo: true
-brief: >
-    Unquoted strings may also span multiple lines, if they
-    are free of YAML space indicators and indented.
-yaml: |
-    - My little toe is broken in two places;
-    - I'm crazy to have skied this way;
-    - I'm not the craziest he's seen, since there was always the German guy
-      who skied for 3 hours on a broken shin bone (just below the kneecap);
-    - Nevertheless, second place is respectable, and he doesn't
-      recommend going for the record;
-    - He's going to put my foot in plaster for a month;
-    - This would impair my skiing ability somewhat for the
-      duration, as can be imagined.
-php: |
-    array(
-      "My little toe is broken in two places;",
-      "I'm crazy to have skied this way;",
-      "I'm not the craziest he's seen, since there was always ".
-         "the German guy who skied for 3 hours on a broken shin ".
-         "bone (just below the kneecap);",
-      "Nevertheless, second place is respectable, and he doesn't ".
-         "recommend going for the record;",
-      "He's going to put my foot in plaster for a month;",
-      "This would impair my skiing ability somewhat for the duration, ".
-         "as can be imagined."
-    )
----
-test: 'Null'
-brief: >
-    You can use the tilde '~' character for a null value.
-yaml: |
-    name: Mr. Show
-    hosted by: Bob and David
-    date of next season: ~
-php: |
-    array(
-      'name' => 'Mr. Show',
-      'hosted by' => 'Bob and David',
-      'date of next season' => null
-    )
----
-test: Boolean
-brief: >
-    You can use 'true' and 'false' for Boolean values.
-yaml: |
-    Is Gus a Liar?: true
-    Do I rely on Gus for Sustenance?: false
-php: |
-    array(
-      'Is Gus a Liar?' => true,
-      'Do I rely on Gus for Sustenance?' => false
-    )
----
-test: Integers
-dump_skip: true
-brief: >
-    An integer is a series of numbers, optionally
-    starting with a positive or negative sign.  Integers
-    may also contain commas for readability.
-yaml: |
-    zero: 0
-    simple: 12
-    one-thousand: 1,000
-    negative one-thousand: -1,000
-php: |
-    array(
-      'zero' => 0,
-      'simple' => 12,
-      'one-thousand' => 1000,
-      'negative one-thousand' => -1000
-    )
----
-test: Integers as Map Keys
-brief: >
-    An integer can be used a dictionary key.
-yaml: |
-    1: one
-    2: two
-    3: three
-php: |
-    array(
-        1 => 'one',
-        2 => 'two',
-        3 => 'three'
-    )
----
-test: Floats
-dump_skip: true
-brief: >
-     Floats are represented by numbers with decimals,
-     allowing for scientific notation, as well as
-     positive and negative infinity and "not a number."
-yaml: |
-     a simple float: 2.00
-     larger float: 1,000.09
-     scientific notation: 1.00009e+3
-php: |
-     array(
-       'a simple float' => 2.0,
-       'larger float' => 1000.09,
-       'scientific notation' => 1000.09
-     )
----
-test: Time
-todo: true
-brief: >
-    You can represent timestamps by using
-    ISO8601 format, or a variation which
-    allows spaces between the date, time and
-    time zone.
-yaml: |
-    iso8601: 2001-12-14t21:59:43.10-05:00
-    space separated: 2001-12-14 21:59:43.10 -05:00
-php: |
-    array(
-      'iso8601' => mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ),
-      'space separated' => mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" )
-    )
----
-test: Date
-todo: true
-brief: >
-    A date can be represented by its year,
-    month and day in ISO8601 order.
-yaml: |
-    1976-07-31
-php: |
-    date( 1976, 7, 31 )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/embededPhp.yml b/core/vendor/symfony/yaml/Tests/Fixtures/embededPhp.yml
deleted file mode 100644
index ec456ed..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/embededPhp.yml
+++ /dev/null
@@ -1 +0,0 @@
-value: <?php echo 1 + 2 + 3 ?>
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/escapedCharacters.yml b/core/vendor/symfony/yaml/Tests/Fixtures/escapedCharacters.yml
deleted file mode 100644
index 09bf86e..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/escapedCharacters.yml
+++ /dev/null
@@ -1,147 +0,0 @@
-test: outside double quotes
-yaml: |
-    \0 \ \a \b \n
-php: |
-    "\\0 \\ \\a \\b \\n"
----
-test: null
-yaml: |
-    "\0"
-php: |
-    "\x00"
----
-test: bell
-yaml: |
-    "\a"
-php: |
-    "\x07"
----
-test: backspace
-yaml: |
-    "\b"
-php: |
-    "\x08"
----
-test: horizontal tab (1)
-yaml: |
-    "\t"
-php: |
-    "\x09"
----
-test: horizontal tab (2)
-yaml: |
-    "\	"
-php: |
-    "\x09"
----
-test: line feed
-yaml: |
-    "\n"
-php: |
-    "\x0a"
----
-test: vertical tab
-yaml: |
-    "\v"
-php: |
-    "\x0b"
----
-test: form feed
-yaml: |
-    "\f"
-php: |
-    "\x0c"
----
-test: carriage return
-yaml: |
-    "\r"
-php: |
-    "\x0d"
----
-test: escape
-yaml: |
-    "\e"
-php: |
-   "\x1b"
----
-test: space
-yaml: |
-    "\ "
-php: |
-    "\x20"
----
-test: slash
-yaml: |
-    "\/"
-php: |
-    "\x2f"
----
-test: backslash
-yaml: |
-    "\\"
-php: |
-    "\\"
----
-test: Unicode next line
-yaml: |
-    "\N"
-php: |
-    "\xc2\x85"
----
-test: Unicode non-breaking space
-yaml: |
-    "\_"
-php: |
-    "\xc2\xa0"
----
-test: Unicode line separator
-yaml: |
-    "\L"
-php: |
-    "\xe2\x80\xa8"
----
-test: Unicode paragraph separator
-yaml: |
-    "\P"
-php: |
-    "\xe2\x80\xa9"
----
-test: Escaped 8-bit Unicode
-yaml: |
-    "\x42"
-php: |
-    "B"
----
-test: Escaped 16-bit Unicode
-yaml: |
-    "\u20ac"
-php: |
-    "\xe2\x82\xac"
----
-test: Escaped 32-bit Unicode
-yaml: |
-    "\U00000043"
-php: |
-    "C"
----
-test: Example 5.13 Escaped Characters
-note: |
-    Currently throws an error parsing first line. Maybe Symfony Yaml doesn't support
-    continuation of string across multiple lines? Keeping test here but disabled.
-todo: true
-yaml: |
-    "Fun with \\
-    \" \a \b \e \f \
-    \n \r \t \v \0 \
-    \  \_ \N \L \P \
-    \x41 \u0041 \U00000041"
-php: |
-    "Fun with \x5C\n\x22 \x07 \x08 \x1B \x0C\n\x0A \x0D \x09 \x0B \x00\n\x20 \xA0 \x85 \xe2\x80\xa8 \xe2\x80\xa9\nA A A"
----
-test: Double quotes with a line feed
-yaml: |
-   { double: "some value\n \"some quoted string\" and 'some single quotes one'" }
-php: |
-    array(
-        'double' => "some value\n \"some quoted string\" and 'some single quotes one'"
-    )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/index.yml b/core/vendor/symfony/yaml/Tests/Fixtures/index.yml
deleted file mode 100644
index 3216a89..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/index.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-- escapedCharacters
-- sfComments
-- sfCompact
-- sfTests
-- sfObjects
-- sfMergeKey
-- sfQuotes
-- YtsAnchorAlias
-- YtsBasicTests
-- YtsBlockMapping
-- YtsDocumentSeparator
-- YtsErrorTests
-- YtsFlowCollections
-- YtsFoldedScalars
-- YtsNullsAndEmpties
-- YtsSpecificationExamples
-- YtsTypeTransfers
-- unindentedCollections
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/sfComments.yml b/core/vendor/symfony/yaml/Tests/Fixtures/sfComments.yml
deleted file mode 100644
index 6a7ffec..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/sfComments.yml
+++ /dev/null
@@ -1,73 +0,0 @@
---- %YAML:1.0
-test: Comments at the end of a line
-brief: >
-    Comments at the end of a line
-yaml: |
-    ex1: "foo # bar"
-    ex2: "foo # bar" # comment
-    ex3: 'foo # bar' # comment
-    ex4: foo # comment
-php: |
-    array('ex1' => 'foo # bar', 'ex2' => 'foo # bar', 'ex3' => 'foo # bar', 'ex4' => 'foo')
----
-test: Comments in the middle
-brief: >
-  Comments in the middle
-yaml: |
-    foo:
-    # some comment
-    # some comment
-      bar: foo
-    # some comment
-    # some comment
-php: |
-    array('foo' => array('bar' => 'foo'))
----
-test: Comments on a hash line
-brief: >
-  Comments on a hash line
-yaml: |
-    foo:   # a comment
-      foo: bar # a comment
-php: |
-    array('foo' => array('foo' => 'bar'))
----
-test: 'Value starting with a #'
-brief: >
-  'Value starting with a #'
-yaml: |
-    foo:   '#bar'
-php: |
-    array('foo' => '#bar')
----
-test: Document starting with a comment and a separator
-brief: >
-  Commenting before document start is allowed
-yaml: |
-    # document comment
-    ---
-    foo: bar # a comment
-php: |
-    array('foo' => 'bar')
----
-test: Comment containing a colon on a hash line
-brief: >
-    Comment containing a colon on a scalar line
-yaml: 'foo # comment: this is also part of the comment'
-php: |
-    'foo'
----
-test: 'Hash key containing a #'
-brief: >
-    'Hash key containing a #'
-yaml: 'foo#bar: baz'
-php: |
-    array('foo#bar' => 'baz')
----
-test: 'Hash key ending with a space and a #'
-brief: >
-    'Hash key ending with a space and a #'
-yaml: |
-    'foo #': baz
-php: |
-    array('foo #' => 'baz')
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/sfCompact.yml b/core/vendor/symfony/yaml/Tests/Fixtures/sfCompact.yml
deleted file mode 100644
index 1339d23..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/sfCompact.yml
+++ /dev/null
@@ -1,159 +0,0 @@
---- %YAML:1.0
-test: Compact notation
-brief: |
-    Compact notation for sets of mappings with single element
-yaml: |
-  ---
-  # products purchased
-  - item    : Super Hoop
-  - item    : Basketball
-    quantity: 1
-  - item:
-      name: Big Shoes
-      nick: Biggies
-    quantity: 1
-php: |
-  array (
-    array (
-      'item' => 'Super Hoop',
-    ),
-    array (
-      'item' => 'Basketball',
-      'quantity' => 1,
-    ),
-    array (
-      'item' => array(
-        'name' => 'Big Shoes',
-        'nick' => 'Biggies'
-      ),
-      'quantity' => 1
-    )
-  )
----
-test: Compact notation combined with inline notation
-brief: |
-    Combinations of compact and inline notation are allowed
-yaml: |
-  ---
-  items:
-    - { item: Super Hoop, quantity: 1 }
-    - [ Basketball, Big Shoes ]
-php: |
-  array (
-    'items' => array (
-      array (
-        'item' => 'Super Hoop',
-        'quantity' => 1,
-      ),
-      array (
-        'Basketball',
-        'Big Shoes'
-      )
-    )
-  )
---- %YAML:1.0
-test: Compact notation
-brief: |
-    Compact notation for sets of mappings with single element
-yaml: |
-  ---
-  # products purchased
-  - item    : Super Hoop
-  - item    : Basketball
-    quantity: 1
-  - item:
-      name: Big Shoes
-      nick: Biggies
-    quantity: 1
-php: |
-  array (
-    array (
-      'item' => 'Super Hoop',
-    ),
-    array (
-      'item' => 'Basketball',
-      'quantity' => 1,
-    ),
-    array (
-      'item' => array(
-        'name' => 'Big Shoes',
-        'nick' => 'Biggies'
-      ),
-      'quantity' => 1
-    )
-  )
----
-test: Compact notation combined with inline notation
-brief: |
-    Combinations of compact and inline notation are allowed
-yaml: |
-  ---
-  items:
-    - { item: Super Hoop, quantity: 1 }
-    - [ Basketball, Big Shoes ]
-php: |
-  array (
-    'items' => array (
-      array (
-        'item' => 'Super Hoop',
-        'quantity' => 1,
-      ),
-      array (
-        'Basketball',
-        'Big Shoes'
-      )
-    )
-  )
---- %YAML:1.0
-test: Compact notation
-brief: |
-    Compact notation for sets of mappings with single element
-yaml: |
-  ---
-  # products purchased
-  - item    : Super Hoop
-  - item    : Basketball
-    quantity: 1
-  - item:
-      name: Big Shoes
-      nick: Biggies
-    quantity: 1
-php: |
-  array (
-    array (
-      'item' => 'Super Hoop',
-    ),
-    array (
-      'item' => 'Basketball',
-      'quantity' => 1,
-    ),
-    array (
-      'item' => array(
-        'name' => 'Big Shoes',
-        'nick' => 'Biggies'
-      ),
-      'quantity' => 1
-    )
-  )
----
-test: Compact notation combined with inline notation
-brief: |
-    Combinations of compact and inline notation are allowed
-yaml: |
-  ---
-  items:
-    - { item: Super Hoop, quantity: 1 }
-    - [ Basketball, Big Shoes ]
-php: |
-  array (
-    'items' => array (
-      array (
-        'item' => 'Super Hoop',
-        'quantity' => 1,
-      ),
-      array (
-        'Basketball',
-        'Big Shoes'
-      )
-    )
-  )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/sfMergeKey.yml b/core/vendor/symfony/yaml/Tests/Fixtures/sfMergeKey.yml
deleted file mode 100644
index fd99101..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/sfMergeKey.yml
+++ /dev/null
@@ -1,45 +0,0 @@
---- %YAML:1.0
-test: Simple In Place Substitution
-brief: >
-    If you want to reuse an entire alias, only overwriting what is different
-    you can use a << in place substitution. This is not part of the official
-    YAML spec, but a widely implemented extension. See the following URL for
-    details: http://yaml.org/type/merge.html
-yaml: |
-    foo: &foo
-        a: Steve
-        b: Clark
-        c: Brian
-    bar:
-        a: before
-        d: other
-        <<: *foo
-        b: new
-        x: Oren
-        c:
-            foo: bar
-            foo: ignore
-            bar: foo
-    duplicate:
-        foo: bar
-        foo: ignore
-    foo2: &foo2
-        a: Ballmer
-    ding: &dong [ fi, fei, fo, fam]
-    check:
-        <<:
-            - *foo
-            - *dong
-        isit: tested
-    head:
-        <<: [ *foo , *dong , *foo2 ]
-php: |
-    array(
-        'foo' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian'),
-        'bar' => array('a' => 'before', 'd' => 'other', 'b' => 'new', 'c' => array('foo' => 'bar', 'bar' => 'foo'), 'x' => 'Oren'),
-        'duplicate' => array('foo' => 'bar'),
-        'foo2' => array('a' => 'Ballmer'),
-        'ding' => array('fi', 'fei', 'fo', 'fam'),
-        'check' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'fi', 'fei', 'fo', 'fam', 'isit' => 'tested'),
-        'head' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'fi', 'fei', 'fo', 'fam')
-    )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/sfObjects.yml b/core/vendor/symfony/yaml/Tests/Fixtures/sfObjects.yml
deleted file mode 100644
index ee124b2..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/sfObjects.yml
+++ /dev/null
@@ -1,11 +0,0 @@
---- %YAML:1.0
-test: Objects
-brief: >
-    Comments at the end of a line
-yaml: |
-    ex1: "foo # bar"
-    ex2: "foo # bar" # comment
-    ex3: 'foo # bar' # comment
-    ex4: foo # comment
-php: |
-    array('ex1' => 'foo # bar', 'ex2' => 'foo # bar', 'ex3' => 'foo # bar', 'ex4' => 'foo')
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/sfQuotes.yml b/core/vendor/symfony/yaml/Tests/Fixtures/sfQuotes.yml
deleted file mode 100644
index 741f1be..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/sfQuotes.yml
+++ /dev/null
@@ -1,33 +0,0 @@
---- %YAML:1.0
-test: Some characters at the beginning of a string must be escaped
-brief: >
-    Some characters at the beginning of a string must be escaped
-yaml: |
-    foo: | bar
-php: |
-    array('foo' => '| bar')
----
-test: A key can be a quoted string
-brief: >
-  A key can be a quoted string
-yaml: |
-    "foo1": bar
-    'foo2': bar
-    "foo \" bar": bar
-    'foo '' bar': bar
-    'foo3: ': bar
-    "foo4: ": bar
-    foo5: { "foo \" bar: ": bar, 'foo '' bar: ': bar }
-php: |
-    array(
-      'foo1' => 'bar',
-      'foo2' => 'bar',
-      'foo " bar' => 'bar',
-      'foo \' bar' => 'bar',
-      'foo3: ' => 'bar',
-      'foo4: ' => 'bar',
-      'foo5' => array(
-        'foo " bar: ' => 'bar',
-        'foo \' bar: ' => 'bar',
-      ),
-    )
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/sfTests.yml b/core/vendor/symfony/yaml/Tests/Fixtures/sfTests.yml
deleted file mode 100644
index 7a54f16..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/sfTests.yml
+++ /dev/null
@@ -1,135 +0,0 @@
---- %YAML:1.0
-test: Multiple quoted string on one line
-brief: >
-    Multiple quoted string on one line
-yaml: |
-    stripped_title: { name: "foo bar", help: "bar foo" }
-php: |
-    array('stripped_title' => array('name' => 'foo bar', 'help' => 'bar foo'))
----
-test: Empty sequence
-yaml: |
-    foo: [ ]
-php: |
-    array('foo' => array())
----
-test: Empty value
-yaml: |
-    foo:
-php: |
-    array('foo' => null)
----
-test: Inline string parsing
-brief: >
-    Inline string parsing
-yaml: |
-    test: ['complex: string', 'another [string]']
-php: |
-    array('test' => array('complex: string', 'another [string]'))
----
-test: Boolean
-brief: >
-    Boolean
-yaml: |
-    - false
-    - true
-    - null
-    - ~
-    - 'false'
-    - 'true'
-    - 'null'
-    - '~'
-php: |
-    array(
-      false,
-      true,
-      null,
-      null,
-      'false',
-      'true',
-      'null',
-      '~',
-    )
----
-test: Empty lines in folded blocks
-brief: >
-  Empty lines in folded blocks
-yaml: |
-  foo:
-    bar: |
-      foo
-
-
-        
-      bar
-php: |
-  array('foo' => array('bar' => "foo\n\n\n  \nbar\n"))
----
-test: IP addresses
-brief: >
-  IP addresses
-yaml: |
-  foo: 10.0.0.2
-php: |
-  array('foo' => '10.0.0.2')
----
-test: A sequence with an embedded mapping
-brief: >
-  A sequence with an embedded mapping
-yaml: |
-  - foo
-  - bar: { bar: foo }
-php: |
-  array('foo', array('bar' => array('bar' => 'foo')))
----
-test: A sequence with an unordered array
-brief: >
-  A sequence with an unordered array
-yaml: |
-  1: foo
-  0: bar
-php: |
-  array(1 => 'foo', 0 => 'bar')
----
-test: Octal
-brief: as in spec example 2.19, octal value is converted
-yaml: |
-  foo: 0123
-php: |
-  array('foo' => 83)
----
-test: Octal strings
-brief: Octal notation in a string must remain a string
-yaml: |
-  foo: "0123"
-php: |
-  array('foo' => '0123')
----
-test: Octal strings
-brief: Octal notation in a string must remain a string
-yaml: |
-  foo: '0123'
-php: |
-  array('foo' => '0123')
----
-test: Octal strings
-brief: Octal notation in a string must remain a string
-yaml: |
-  foo: |
-    0123
-php: |
-  array('foo' => "0123\n")
----
-test: Document as a simple hash
-brief: Document as a simple hash
-yaml: |
-  { foo: bar }
-php: |
-  array('foo' => 'bar')
----
-test: Document as a simple array
-brief: Document as a simple array
-yaml: |
-  [ foo, bar ]
-php: |
-  array('foo', 'bar')
diff --git a/core/vendor/symfony/yaml/Tests/Fixtures/unindentedCollections.yml b/core/vendor/symfony/yaml/Tests/Fixtures/unindentedCollections.yml
deleted file mode 100644
index 0c96108..0000000
--- a/core/vendor/symfony/yaml/Tests/Fixtures/unindentedCollections.yml
+++ /dev/null
@@ -1,82 +0,0 @@
---- %YAML:1.0
-test: Unindented collection
-brief: >
-    Unindented collection
-yaml: |
-    collection:
-    - item1
-    - item2
-    - item3
-php: |
-    array('collection' => array('item1', 'item2', 'item3'))
----
-test: Nested unindented collection (two levels)
-brief: >
-    Nested unindented collection
-yaml: |
-    collection:
-        key:
-        - a
-        - b
-        - c
-php: |
-    array('collection' => array('key' => array('a', 'b', 'c')))
----
-test: Nested unindented collection (three levels)
-brief: >
-    Nested unindented collection
-yaml: |
-    collection:
-        key:
-            subkey:
-            - one
-            - two
-            - three
-php: |
-    array('collection' => array('key' => array('subkey' => array('one', 'two', 'three'))))
----
-test: Key/value after unindented collection (1)
-brief: >
-    Key/value after unindented collection (1)
-yaml: |
-    collection:
-        key:
-        - a
-        - b
-        - c
-    foo: bar
-php: |
-    array('collection' => array('key' => array('a', 'b', 'c')), 'foo' => 'bar')
----
-test: Key/value after unindented collection (at the same level)
-brief: >
-    Key/value after unindented collection
-yaml: |
-    collection:
-        key:
-        - a
-        - b
-        - c
-        foo: bar
-php: |
-    array('collection' => array('key' => array('a', 'b', 'c'), 'foo' => 'bar'))
----
-test: Shortcut Key after unindented collection
-brief: >
-    Key/value after unindented collection
-yaml: |
-    collection:
-    - key: foo
-      foo: bar
-php: |
-    array('collection' => array(array('key' => 'foo', 'foo' => 'bar')))
----
-test: Shortcut Key after unindented collection with custom spaces
-brief: >
-    Key/value after unindented collection
-yaml: |
-    collection:
-    -  key: foo
-       foo: bar
-php: |
-    array('collection' => array(array('key' => 'foo', 'foo' => 'bar')))
diff --git a/core/vendor/symfony/yaml/Tests/InlineTest.php b/core/vendor/symfony/yaml/Tests/InlineTest.php
deleted file mode 100644
index 0776e4f..0000000
--- a/core/vendor/symfony/yaml/Tests/InlineTest.php
+++ /dev/null
@@ -1,384 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Tests;
-
-use Symfony\Component\Yaml\Inline;
-
-class InlineTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getTestsForParse
-     */
-    public function testParse($yaml, $value)
-    {
-        $this->assertSame($value, Inline::parse($yaml), sprintf('::parse() converts an inline YAML to a PHP structure (%s)', $yaml));
-    }
-
-    /**
-     * @dataProvider getTestsForParseWithMapObjects
-     */
-    public function testParseWithMapObjects($yaml, $value)
-    {
-        $actual = Inline::parse($yaml, false, false, true);
-
-        $this->assertSame(serialize($value), serialize($actual));
-    }
-
-    /**
-     * @dataProvider getTestsForDump
-     */
-    public function testDump($yaml, $value)
-    {
-        $this->assertEquals($yaml, Inline::dump($value), sprintf('::dump() converts a PHP structure to an inline YAML (%s)', $yaml));
-
-        $this->assertSame($value, Inline::parse(Inline::dump($value)), 'check consistency');
-    }
-
-    public function testDumpNumericValueWithLocale()
-    {
-        $locale = setlocale(LC_NUMERIC, 0);
-        if (false === $locale) {
-            $this->markTestSkipped('Your platform does not support locales.');
-        }
-
-        try {
-            $requiredLocales = array('fr_FR.UTF-8', 'fr_FR.UTF8', 'fr_FR.utf-8', 'fr_FR.utf8', 'French_France.1252');
-            if (false === setlocale(LC_NUMERIC, $requiredLocales)) {
-                $this->markTestSkipped('Could not set any of required locales: '.implode(', ', $requiredLocales));
-            }
-
-            $this->assertEquals('1.2', Inline::dump(1.2));
-            $this->assertContains('fr', strtolower(setlocale(LC_NUMERIC, 0)));
-            setlocale(LC_NUMERIC, $locale);
-        } catch (\Exception $e) {
-            setlocale(LC_NUMERIC, $locale);
-            throw $e;
-        }
-    }
-
-    public function testHashStringsResemblingExponentialNumericsShouldNotBeChangedToINF()
-    {
-        $value = '686e444';
-
-        $this->assertSame($value, Inline::parse(Inline::dump($value)));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testParseScalarWithIncorrectlyQuotedStringShouldThrowException()
-    {
-        $value = "'don't do somthin' like that'";
-        Inline::parse($value);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testParseScalarWithIncorrectlyDoubleQuotedStringShouldThrowException()
-    {
-        $value = '"don"t do somthin" like that"';
-        Inline::parse($value);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testParseInvalidMappingKeyShouldThrowException()
-    {
-        $value = '{ "foo " bar": "bar" }';
-        Inline::parse($value);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testParseInvalidMappingShouldThrowException()
-    {
-        Inline::parse('[foo] bar');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testParseInvalidSequenceShouldThrowException()
-    {
-        Inline::parse('{ foo: bar } bar');
-    }
-
-    public function testParseScalarWithCorrectlyQuotedStringShouldReturnString()
-    {
-        $value = "'don''t do somthin'' like that'";
-        $expect = "don't do somthin' like that";
-
-        $this->assertSame($expect, Inline::parseScalar($value));
-    }
-
-    /**
-     * @dataProvider getDataForParseReferences
-     */
-    public function testParseReferences($yaml, $expected)
-    {
-        $this->assertSame($expected, Inline::parse($yaml, false, false, false, array('var' => 'var-value')));
-    }
-
-    public function getDataForParseReferences()
-    {
-        return array(
-            'scalar' => array('*var', 'var-value'),
-            'list' => array('[ *var ]', array('var-value')),
-            'list-in-list' => array('[[ *var ]]', array(array('var-value'))),
-            'map-in-list' => array('[ { key: *var } ]', array(array('key' => 'var-value'))),
-            'embedded-mapping-in-list' => array('[ key: *var ]', array(array('key' => 'var-value'))),
-            'map' => array('{ key: *var }', array('key' => 'var-value')),
-            'list-in-map' => array('{ key: [*var] }', array('key' => array('var-value'))),
-            'map-in-map' => array('{ foo: { bar: *var } }', array('foo' => array('bar' => 'var-value'))),
-        );
-    }
-
-    public function testParseMapReferenceInSequence()
-    {
-        $foo = array(
-            'a' => 'Steve',
-            'b' => 'Clark',
-            'c' => 'Brian',
-        );
-        $this->assertSame(array($foo), Inline::parse('[*foo]', false, false, false, array('foo' => $foo)));
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     * @expectedExceptionMessage A reference must contain at least one character.
-     */
-    public function testParseUnquotedAsterisk()
-    {
-        Inline::parse('{ foo: * }');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     * @expectedExceptionMessage A reference must contain at least one character.
-     */
-    public function testParseUnquotedAsteriskFollowedByAComment()
-    {
-        Inline::parse('{ foo: * #foo }');
-    }
-
-    public function getTestsForParse()
-    {
-        return array(
-            array('', ''),
-            array('null', null),
-            array('false', false),
-            array('true', true),
-            array('12', 12),
-            array('-12', -12),
-            array('"quoted string"', 'quoted string'),
-            array("'quoted string'", 'quoted string'),
-            array('12.30e+02', 12.30e+02),
-            array('0x4D2', 0x4D2),
-            array('02333', 02333),
-            array('.Inf', -log(0)),
-            array('-.Inf', log(0)),
-            array("'686e444'", '686e444'),
-            array('686e444', 646e444),
-            array('123456789123456789123456789123456789', '123456789123456789123456789123456789'),
-            array('"foo\r\nbar"', "foo\r\nbar"),
-            array("'foo#bar'", 'foo#bar'),
-            array("'foo # bar'", 'foo # bar'),
-            array("'#cfcfcf'", '#cfcfcf'),
-            array('::form_base.html.twig', '::form_base.html.twig'),
-
-            // Pre-YAML-1.2 booleans
-            array("'y'", 'y'),
-            array("'n'", 'n'),
-            array("'yes'", 'yes'),
-            array("'no'", 'no'),
-            array("'on'", 'on'),
-            array("'off'", 'off'),
-
-            array('2007-10-30', mktime(0, 0, 0, 10, 30, 2007)),
-            array('2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)),
-            array('2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)),
-            array('1960-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 1960)),
-            array('1730-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 1730)),
-
-            array('"a \\"string\\" with \'quoted strings inside\'"', 'a "string" with \'quoted strings inside\''),
-            array("'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''),
-
-            // sequences
-            // urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon
-            array('[foo, http://urls.are/no/mappings, false, null, 12]', array('foo', 'http://urls.are/no/mappings', false, null, 12)),
-            array('[  foo  ,   bar , false  ,  null     ,  12  ]', array('foo', 'bar', false, null, 12)),
-            array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')),
-
-            // mappings
-            array('{foo:bar,bar:foo,false:false,null:null,integer:12}', array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)),
-            array('{ foo  : bar, bar : foo,  false  :   false,  null  :   null,  integer :  12  }', array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)),
-            array('{foo: \'bar\', bar: \'foo: bar\'}', array('foo' => 'bar', 'bar' => 'foo: bar')),
-            array('{\'foo\': \'bar\', "bar": \'foo: bar\'}', array('foo' => 'bar', 'bar' => 'foo: bar')),
-            array('{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}', array('foo\'' => 'bar', 'bar"' => 'foo: bar')),
-            array('{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}', array('foo: ' => 'bar', 'bar: ' => 'foo: bar')),
-
-            // nested sequences and mappings
-            array('[foo, [bar, foo]]', array('foo', array('bar', 'foo'))),
-            array('[foo, {bar: foo}]', array('foo', array('bar' => 'foo'))),
-            array('{ foo: {bar: foo} }', array('foo' => array('bar' => 'foo'))),
-            array('{ foo: [bar, foo] }', array('foo' => array('bar', 'foo'))),
-
-            array('[  foo, [  bar, foo  ]  ]', array('foo', array('bar', 'foo'))),
-
-            array('[{ foo: {bar: foo} }]', array(array('foo' => array('bar' => 'foo')))),
-
-            array('[foo, [bar, [foo, [bar, foo]], foo]]', array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo'))),
-
-            array('[foo, {bar: foo, foo: [foo, {bar: foo}]}, [foo, {bar: foo}]]', array('foo', array('bar' => 'foo', 'foo' => array('foo', array('bar' => 'foo'))), array('foo', array('bar' => 'foo')))),
-
-            array('[foo, bar: { foo: bar }]', array('foo', '1' => array('bar' => array('foo' => 'bar')))),
-            array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')),
-        );
-    }
-
-    public function getTestsForParseWithMapObjects()
-    {
-        return array(
-            array('', ''),
-            array('null', null),
-            array('false', false),
-            array('true', true),
-            array('12', 12),
-            array('-12', -12),
-            array('"quoted string"', 'quoted string'),
-            array("'quoted string'", 'quoted string'),
-            array('12.30e+02', 12.30e+02),
-            array('0x4D2', 0x4D2),
-            array('02333', 02333),
-            array('.Inf', -log(0)),
-            array('-.Inf', log(0)),
-            array("'686e444'", '686e444'),
-            array('686e444', 646e444),
-            array('123456789123456789123456789123456789', '123456789123456789123456789123456789'),
-            array('"foo\r\nbar"', "foo\r\nbar"),
-            array("'foo#bar'", 'foo#bar'),
-            array("'foo # bar'", 'foo # bar'),
-            array("'#cfcfcf'", '#cfcfcf'),
-            array('::form_base.html.twig', '::form_base.html.twig'),
-
-            array('2007-10-30', mktime(0, 0, 0, 10, 30, 2007)),
-            array('2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)),
-            array('2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)),
-            array('1960-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 1960)),
-            array('1730-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 1730)),
-
-            array('"a \\"string\\" with \'quoted strings inside\'"', 'a "string" with \'quoted strings inside\''),
-            array("'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''),
-
-            // sequences
-            // urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon
-            array('[foo, http://urls.are/no/mappings, false, null, 12]', array('foo', 'http://urls.are/no/mappings', false, null, 12)),
-            array('[  foo  ,   bar , false  ,  null     ,  12  ]', array('foo', 'bar', false, null, 12)),
-            array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')),
-
-            // mappings
-            array('{foo:bar,bar:foo,false:false,null:null,integer:12}', (object) array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)),
-            array('{ foo  : bar, bar : foo,  false  :   false,  null  :   null,  integer :  12  }', (object) array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)),
-            array('{foo: \'bar\', bar: \'foo: bar\'}', (object) array('foo' => 'bar', 'bar' => 'foo: bar')),
-            array('{\'foo\': \'bar\', "bar": \'foo: bar\'}', (object) array('foo' => 'bar', 'bar' => 'foo: bar')),
-            array('{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}', (object) array('foo\'' => 'bar', "bar\"" => 'foo: bar')),
-            array('{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}', (object) array('foo: ' => 'bar', "bar: " => 'foo: bar')),
-
-            // nested sequences and mappings
-            array('[foo, [bar, foo]]', array('foo', array('bar', 'foo'))),
-            array('[foo, {bar: foo}]', array('foo', (object) array('bar' => 'foo'))),
-            array('{ foo: {bar: foo} }', (object) array('foo' => (object) array('bar' => 'foo'))),
-            array('{ foo: [bar, foo] }', (object) array('foo' => array('bar', 'foo'))),
-
-            array('[  foo, [  bar, foo  ]  ]', array('foo', array('bar', 'foo'))),
-
-            array('[{ foo: {bar: foo} }]', array((object) array('foo' => (object) array('bar' => 'foo')))),
-
-            array('[foo, [bar, [foo, [bar, foo]], foo]]', array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo'))),
-
-            array('[foo, {bar: foo, foo: [foo, {bar: foo}]}, [foo, {bar: foo}]]', array('foo', (object) array('bar' => 'foo', 'foo' => array('foo', (object) array('bar' => 'foo'))), array('foo', (object) array('bar' => 'foo')))),
-
-            array('[foo, bar: { foo: bar }]', array('foo', '1' => (object) array('bar' => (object) array('foo' => 'bar')))),
-            array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', (object) array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')),
-
-            array('{}', new \stdClass()),
-            array('{ foo  : bar, bar : {}  }', (object) array('foo' => 'bar', 'bar' => new \stdClass())),
-            array('{ foo  : [], bar : {}  }', (object) array('foo' => array(), 'bar' => new \stdClass())),
-            array('{foo: \'bar\', bar: {} }', (object) array('foo' => 'bar', 'bar' => new \stdClass())),
-            array('{\'foo\': \'bar\', "bar": {}}', (object) array('foo' => 'bar', 'bar' => new \stdClass())),
-            array('{\'foo\': \'bar\', "bar": \'{}\'}', (object) array('foo' => 'bar', 'bar' => '{}')),
-
-            array('[foo, [{}, {}]]', array('foo', array(new \stdClass(), new \stdClass()))),
-            array('[foo, [[], {}]]', array('foo', array(array(), new \stdClass()))),
-            array('[foo, [[{}, {}], {}]]', array('foo', array(array(new \stdClass(), new \stdClass()), new \stdClass()))),
-            array('[foo, {bar: {}}]', array('foo', '1' => (object) array('bar' => new \stdClass()))),
-        );
-    }
-
-    public function getTestsForDump()
-    {
-        return array(
-            array('null', null),
-            array('false', false),
-            array('true', true),
-            array('12', 12),
-            array("'quoted string'", 'quoted string'),
-            array('!!float 1230', 12.30e+02),
-            array('1234', 0x4D2),
-            array('1243', 02333),
-            array('.Inf', -log(0)),
-            array('-.Inf', log(0)),
-            array("'686e444'", '686e444'),
-            array('"foo\r\nbar"', "foo\r\nbar"),
-            array("'foo#bar'", 'foo#bar'),
-            array("'foo # bar'", 'foo # bar'),
-            array("'#cfcfcf'", '#cfcfcf'),
-
-            array("'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''),
-
-            array("'-dash'", '-dash'),
-            array("'-'", '-'),
-
-            // Pre-YAML-1.2 booleans
-            array("'y'", 'y'),
-            array("'n'", 'n'),
-            array("'yes'", 'yes'),
-            array("'no'", 'no'),
-            array("'on'", 'on'),
-            array("'off'", 'off'),
-
-            // sequences
-            array('[foo, bar, false, null, 12]', array('foo', 'bar', false, null, 12)),
-            array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')),
-
-            // mappings
-            array('{ foo: bar, bar: foo, \'false\': false, \'null\': null, integer: 12 }', array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)),
-            array('{ foo: bar, bar: \'foo: bar\' }', array('foo' => 'bar', 'bar' => 'foo: bar')),
-
-            // nested sequences and mappings
-            array('[foo, [bar, foo]]', array('foo', array('bar', 'foo'))),
-
-            array('[foo, [bar, [foo, [bar, foo]], foo]]', array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo'))),
-
-            array('{ foo: { bar: foo } }', array('foo' => array('bar' => 'foo'))),
-
-            array('[foo, { bar: foo }]', array('foo', array('bar' => 'foo'))),
-
-            array('[foo, { bar: foo, foo: [foo, { bar: foo }] }, [foo, { bar: foo }]]', array('foo', array('bar' => 'foo', 'foo' => array('foo', array('bar' => 'foo'))), array('foo', array('bar' => 'foo')))),
-
-            array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')),
-        );
-    }
-}
diff --git a/core/vendor/symfony/yaml/Tests/ParseExceptionTest.php b/core/vendor/symfony/yaml/Tests/ParseExceptionTest.php
deleted file mode 100644
index e4eb9c9..0000000
--- a/core/vendor/symfony/yaml/Tests/ParseExceptionTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Tests;
-
-use Symfony\Component\Yaml\Exception\ParseException;
-
-class ParseExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testGetMessage()
-    {
-        $exception = new ParseException('Error message', 42, 'foo: bar', '/var/www/app/config.yml');
-        if (PHP_VERSION_ID >= 50400) {
-            $message = 'Error message in "/var/www/app/config.yml" at line 42 (near "foo: bar")';
-        } else {
-            $message = 'Error message in "\\/var\\/www\\/app\\/config.yml" at line 42 (near "foo: bar")';
-        }
-
-        $this->assertEquals($message, $exception->getMessage());
-    }
-
-    public function testGetMessageWithUnicodeInFilename()
-    {
-        $exception = new ParseException('Error message', 42, 'foo: bar', 'äöü.yml');
-        if (PHP_VERSION_ID >= 50400) {
-            $message = 'Error message in "äöü.yml" at line 42 (near "foo: bar")';
-        } else {
-            $message = 'Error message in "\u00e4\u00f6\u00fc.yml" at line 42 (near "foo: bar")';
-        }
-
-        $this->assertEquals($message, $exception->getMessage());
-    }
-}
diff --git a/core/vendor/symfony/yaml/Tests/ParserTest.php b/core/vendor/symfony/yaml/Tests/ParserTest.php
deleted file mode 100644
index f434d55..0000000
--- a/core/vendor/symfony/yaml/Tests/ParserTest.php
+++ /dev/null
@@ -1,755 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Tests;
-
-use Symfony\Component\Yaml\Yaml;
-use Symfony\Component\Yaml\Parser;
-
-class ParserTest extends \PHPUnit_Framework_TestCase
-{
-    protected $parser;
-
-    protected function setUp()
-    {
-        $this->parser = new Parser();
-    }
-
-    protected function tearDown()
-    {
-        $this->parser = null;
-    }
-
-    /**
-     * @dataProvider getDataFormSpecifications
-     */
-    public function testSpecifications($file, $expected, $yaml, $comment)
-    {
-        $this->assertEquals($expected, var_export($this->parser->parse($yaml), true), $comment);
-    }
-
-    public function getDataFormSpecifications()
-    {
-        $parser = new Parser();
-        $path = __DIR__.'/Fixtures';
-
-        $tests = array();
-        $files = $parser->parse(file_get_contents($path.'/index.yml'));
-        foreach ($files as $file) {
-            $yamls = file_get_contents($path.'/'.$file.'.yml');
-
-            // split YAMLs documents
-            foreach (preg_split('/^---( %YAML\:1\.0)?/m', $yamls) as $yaml) {
-                if (!$yaml) {
-                    continue;
-                }
-
-                $test = $parser->parse($yaml);
-                if (isset($test['todo']) && $test['todo']) {
-                    // TODO
-                } else {
-                    eval('$expected = '.trim($test['php']).';');
-
-                    $tests[] = array($file, var_export($expected, true), $test['yaml'], $test['test']);
-                }
-            }
-        }
-
-        return $tests;
-    }
-
-    public function testTabsInYaml()
-    {
-        // test tabs in YAML
-        $yamls = array(
-            "foo:\n	bar",
-            "foo:\n 	bar",
-            "foo:\n	 bar",
-            "foo:\n 	 bar",
-        );
-
-        foreach ($yamls as $yaml) {
-            try {
-                $content = $this->parser->parse($yaml);
-
-                $this->fail('YAML files must not contain tabs');
-            } catch (\Exception $e) {
-                $this->assertInstanceOf('\Exception', $e, 'YAML files must not contain tabs');
-                $this->assertEquals('A YAML file cannot contain tabs as indentation at line 2 (near "'.strpbrk($yaml, "\t").'").', $e->getMessage(), 'YAML files must not contain tabs');
-            }
-        }
-    }
-
-    public function testEndOfTheDocumentMarker()
-    {
-        $yaml = <<<EOF
---- %YAML:1.0
-foo
-...
-EOF;
-
-        $this->assertEquals('foo', $this->parser->parse($yaml));
-    }
-
-    public function getBlockChompingTests()
-    {
-        $tests = array();
-
-        $yaml = <<<'EOF'
-foo: |-
-    one
-    two
-bar: |-
-    one
-    two
-
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo",
-            'bar' => "one\ntwo",
-        );
-        $tests['Literal block chomping strip with single trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |-
-    one
-    two
-
-bar: |-
-    one
-    two
-
-
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo",
-            'bar' => "one\ntwo",
-        );
-        $tests['Literal block chomping strip with multiple trailing newlines'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-{}
-
-
-EOF;
-        $expected = array();
-        $tests['Literal block chomping strip with multiple trailing newlines after a 1-liner'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |-
-    one
-    two
-bar: |-
-    one
-    two
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo",
-            'bar' => "one\ntwo",
-        );
-        $tests['Literal block chomping strip without trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |
-    one
-    two
-bar: |
-    one
-    two
-
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo\n",
-        );
-        $tests['Literal block chomping clip with single trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |
-    one
-    two
-
-bar: |
-    one
-    two
-
-
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo\n",
-        );
-        $tests['Literal block chomping clip with multiple trailing newlines'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |
-    one
-    two
-bar: |
-    one
-    two
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo",
-        );
-        $tests['Literal block chomping clip without trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |+
-    one
-    two
-bar: |+
-    one
-    two
-
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo\n",
-        );
-        $tests['Literal block chomping keep with single trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |+
-    one
-    two
-
-bar: |+
-    one
-    two
-
-
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo\n\n",
-            'bar' => "one\ntwo\n\n",
-        );
-        $tests['Literal block chomping keep with multiple trailing newlines'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: |+
-    one
-    two
-bar: |+
-    one
-    two
-EOF;
-        $expected = array(
-            'foo' => "one\ntwo\n",
-            'bar' => "one\ntwo",
-        );
-        $tests['Literal block chomping keep without trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >-
-    one
-    two
-bar: >-
-    one
-    two
-
-EOF;
-        $expected = array(
-            'foo' => 'one two',
-            'bar' => 'one two',
-        );
-        $tests['Folded block chomping strip with single trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >-
-    one
-    two
-
-bar: >-
-    one
-    two
-
-
-EOF;
-        $expected = array(
-            'foo' => 'one two',
-            'bar' => 'one two',
-        );
-        $tests['Folded block chomping strip with multiple trailing newlines'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >-
-    one
-    two
-bar: >-
-    one
-    two
-EOF;
-        $expected = array(
-            'foo' => 'one two',
-            'bar' => 'one two',
-        );
-        $tests['Folded block chomping strip without trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >
-    one
-    two
-bar: >
-    one
-    two
-
-EOF;
-        $expected = array(
-            'foo' => "one two\n",
-            'bar' => "one two\n",
-        );
-        $tests['Folded block chomping clip with single trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >
-    one
-    two
-
-bar: >
-    one
-    two
-
-
-EOF;
-        $expected = array(
-            'foo' => "one two\n",
-            'bar' => "one two\n",
-        );
-        $tests['Folded block chomping clip with multiple trailing newlines'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >
-    one
-    two
-bar: >
-    one
-    two
-EOF;
-        $expected = array(
-            'foo' => "one two\n",
-            'bar' => 'one two',
-        );
-        $tests['Folded block chomping clip without trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >+
-    one
-    two
-bar: >+
-    one
-    two
-
-EOF;
-        $expected = array(
-            'foo' => "one two\n",
-            'bar' => "one two\n",
-        );
-        $tests['Folded block chomping keep with single trailing newline'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >+
-    one
-    two
-
-bar: >+
-    one
-    two
-
-
-EOF;
-        $expected = array(
-            'foo' => "one two\n\n",
-            'bar' => "one two\n\n",
-        );
-        $tests['Folded block chomping keep with multiple trailing newlines'] = array($expected, $yaml);
-
-        $yaml = <<<'EOF'
-foo: >+
-    one
-    two
-bar: >+
-    one
-    two
-EOF;
-        $expected = array(
-            'foo' => "one two\n",
-            'bar' => 'one two',
-        );
-        $tests['Folded block chomping keep without trailing newline'] = array($expected, $yaml);
-
-        return $tests;
-    }
-
-    /**
-     * @dataProvider getBlockChompingTests
-     */
-    public function testBlockChomping($expected, $yaml)
-    {
-        $this->assertSame($expected, $this->parser->parse($yaml));
-    }
-
-    /**
-     * Regression test for issue #7989.
-     *
-     * @see https://github.com/symfony/symfony/issues/7989
-     */
-    public function testBlockLiteralWithLeadingNewlines()
-    {
-        $yaml = <<<'EOF'
-foo: |-
-
-
-    bar
-
-EOF;
-        $expected = array(
-            'foo' => "\n\nbar",
-        );
-
-        $this->assertSame($expected, $this->parser->parse($yaml));
-    }
-
-    public function testObjectSupportEnabled()
-    {
-        $input = <<<EOF
-foo: !!php/object:O:30:"Symfony\Component\Yaml\Tests\B":1:{s:1:"b";s:3:"foo";}
-bar: 1
-EOF;
-        $this->assertEquals(array('foo' => new B(), 'bar' => 1), $this->parser->parse($input, false, true), '->parse() is able to parse objects');
-    }
-
-    public function testObjectSupportDisabledButNoExceptions()
-    {
-        $input = <<<EOF
-foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}
-bar: 1
-EOF;
-
-        $this->assertEquals(array('foo' => null, 'bar' => 1), $this->parser->parse($input), '->parse() does not parse objects');
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testObjectsSupportDisabledWithExceptions()
-    {
-        $this->parser->parse('foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";}', true, false);
-    }
-
-    public function testNonUtf8Exception()
-    {
-        if (!function_exists('iconv')) {
-            $this->markTestSkipped('Exceptions for non-utf8 charsets require the iconv() function.');
-
-            return;
-        }
-
-        $yamls = array(
-            iconv('UTF-8', 'ISO-8859-1', "foo: 'äöüß'"),
-            iconv('UTF-8', 'ISO-8859-15', "euro: '€'"),
-            iconv('UTF-8', 'CP1252', "cp1252: '©ÉÇáñ'"),
-        );
-
-        foreach ($yamls as $yaml) {
-            try {
-                $this->parser->parse($yaml);
-
-                $this->fail('charsets other than UTF-8 are rejected.');
-            } catch (\Exception $e) {
-                $this->assertInstanceOf('Symfony\Component\Yaml\Exception\ParseException', $e, 'charsets other than UTF-8 are rejected.');
-            }
-        }
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testUnindentedCollectionException()
-    {
-        $yaml = <<<EOF
-
-collection:
--item1
--item2
--item3
-
-EOF;
-
-        $this->parser->parse($yaml);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testShortcutKeyUnindentedCollectionException()
-    {
-        $yaml = <<<EOF
-
-collection:
--  key: foo
-  foo: bar
-
-EOF;
-
-        $this->parser->parse($yaml);
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     * @expectedExceptionMessage Multiple documents are not supported.
-     */
-    public function testMultipleDocumentsNotSupportedException()
-    {
-        Yaml::parse(<<<EOL
-# Ranking of 1998 home runs
----
-- Mark McGwire
-- Sammy Sosa
-- Ken Griffey
-
-# Team ranking
----
-- Chicago Cubs
-- St Louis Cardinals
-EOL
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testSequenceInAMapping()
-    {
-        Yaml::parse(<<<EOF
-yaml:
-  hash: me
-  - array stuff
-EOF
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     */
-    public function testMappingInASequence()
-    {
-        Yaml::parse(<<<EOF
-yaml:
-  - array stuff
-  hash: me
-EOF
-        );
-    }
-
-    /**
-     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     * @expectedExceptionMessage missing colon
-     */
-    public function testScalarInSequence()
-    {
-        Yaml::parse(<<<EOF
-foo:
-    - bar
-"missing colon"
-    foo: bar
-EOF
-        );
-    }
-
-    /**
-     * > It is an error for two equal keys to appear in the same mapping node.
-     * > In such a case the YAML processor may continue, ignoring the second
-     * > `key: value` pair and issuing an appropriate warning. This strategy
-     * > preserves a consistent information model for one-pass and random access
-     * > applications.
-     *
-     * @see http://yaml.org/spec/1.2/spec.html#id2759572
-     * @see http://yaml.org/spec/1.1/#id932806
-     *
-     * @covers \Symfony\Component\Yaml\Parser::parse
-     */
-    public function testMappingDuplicateKeyBlock()
-    {
-        $input = <<<EOD
-parent:
-    child: first
-    child: duplicate
-parent:
-    child: duplicate
-    child: duplicate
-EOD;
-        $expected = array(
-            'parent' => array(
-                'child' => 'first',
-            ),
-        );
-        $this->assertSame($expected, Yaml::parse($input));
-    }
-
-    /**
-     * @covers \Symfony\Component\Yaml\Inline::parseMapping
-     */
-    public function testMappingDuplicateKeyFlow()
-    {
-        $input = <<<EOD
-parent: { child: first, child: duplicate }
-parent: { child: duplicate, child: duplicate }
-EOD;
-        $expected = array(
-            'parent' => array(
-                'child' => 'first',
-            ),
-        );
-        $this->assertSame($expected, Yaml::parse($input));
-    }
-
-    public function testEmptyValue()
-    {
-        $input = <<<EOF
-hash:
-EOF;
-
-        $this->assertEquals(array('hash' => null), Yaml::parse($input));
-    }
-
-    public function testStringBlockWithComments()
-    {
-        $this->assertEquals(array('content' => <<<EOT
-# comment 1
-header
-
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
-
-footer # comment3
-EOT
-        ), Yaml::parse(<<<EOF
-content: |
-    # comment 1
-    header
-
-        # comment 2
-        <body>
-            <h1>title</h1>
-        </body>
-
-    footer # comment3
-EOF
-        ));
-    }
-
-    public function testFoldedStringBlockWithComments()
-    {
-        $this->assertEquals(array(array('content' => <<<EOT
-# comment 1
-header
-
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
-
-footer # comment3
-EOT
-        )), Yaml::parse(<<<EOF
--
-    content: |
-        # comment 1
-        header
-
-            # comment 2
-            <body>
-                <h1>title</h1>
-            </body>
-
-        footer # comment3
-EOF
-        ));
-    }
-
-    public function testNestedFoldedStringBlockWithComments()
-    {
-        $this->assertEquals(array(array(
-            'title' => 'some title',
-            'content' => <<<EOT
-# comment 1
-header
-
-    # comment 2
-    <body>
-        <h1>title</h1>
-    </body>
-
-footer # comment3
-EOT
-        )), Yaml::parse(<<<EOF
--
-    title: some title
-    content: |
-        # comment 1
-        header
-
-            # comment 2
-            <body>
-                <h1>title</h1>
-            </body>
-
-        footer # comment3
-EOF
-        ));
-    }
-
-    public function testReferenceResolvingInInlineStrings()
-    {
-        $this->assertEquals(array(
-            'var' => 'var-value',
-            'scalar' => 'var-value',
-            'list' => array('var-value'),
-            'list_in_list' => array(array('var-value')),
-            'map_in_list' => array(array('key' => 'var-value')),
-            'embedded_mapping' => array(array('key' => 'var-value')),
-            'map' => array('key' => 'var-value'),
-            'list_in_map' => array('key' => array('var-value')),
-            'map_in_map' => array('foo' => array('bar' => 'var-value')),
-        ), Yaml::parse(<<<EOF
-var:  &var var-value
-scalar: *var
-list: [ *var ]
-list_in_list: [[ *var ]]
-map_in_list: [ { key: *var } ]
-embedded_mapping: [ key: *var ]
-map: { key: *var }
-list_in_map: { key: [*var] }
-map_in_map: { foo: { bar: *var } }
-EOF
-        ));
-    }
-
-    public function testYamlDirective()
-    {
-        $yaml = <<<EOF
-%YAML 1.2
----
-foo: 1
-bar: 2
-EOF;
-        $this->assertEquals(array('foo' => 1, 'bar' => 2), $this->parser->parse($yaml));
-    }
-}
-
-class B
-{
-    public $b = 'foo';
-}
diff --git a/core/vendor/symfony/yaml/Tests/YamlTest.php b/core/vendor/symfony/yaml/Tests/YamlTest.php
deleted file mode 100644
index 8db65e3..0000000
--- a/core/vendor/symfony/yaml/Tests/YamlTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml\Tests;
-
-use Symfony\Component\Yaml\Yaml;
-
-class YamlTest extends \PHPUnit_Framework_TestCase
-{
-    public function testParseAndDump()
-    {
-        $data = array('lorem' => 'ipsum', 'dolor' => 'sit');
-        $yml = Yaml::dump($data);
-        $parsed = Yaml::parse($yml);
-        $this->assertEquals($data, $parsed);
-    }
-
-    /**
-     * @group legacy
-     */
-    public function testLegacyParseFromFile()
-    {
-        $filename = __DIR__.'/Fixtures/index.yml';
-        $contents = file_get_contents($filename);
-        $parsedByFilename = Yaml::parse($filename);
-        $parsedByContents = Yaml::parse($contents);
-        $this->assertEquals($parsedByFilename, $parsedByContents);
-    }
-}
diff --git a/core/vendor/symfony/yaml/Unescaper.php b/core/vendor/symfony/yaml/Unescaper.php
deleted file mode 100644
index 93206f9..0000000
--- a/core/vendor/symfony/yaml/Unescaper.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml;
-
-/**
- * Unescaper encapsulates unescaping rules for single and double-quoted
- * YAML strings.
- *
- * @author Matthew Lewinski <matthew@lewinski.org>
- */
-class Unescaper
-{
-    /**
-     * Parser and Inline assume UTF-8 encoding, so escaped Unicode characters
-     * must be converted to that encoding.
-     *
-     * @deprecated since version 2.5, to be removed in 3.0
-     * @internal
-     */
-    const ENCODING = 'UTF-8';
-
-    /**
-     * Regex fragment that matches an escaped character in a double quoted string.
-     */
-    const REGEX_ESCAPED_CHARACTER = "\\\\([0abt\tnvfre \\\"\\/\\\\N_LP]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})";
-
-    /**
-     * Unescapes a single quoted string.
-     *
-     * @param string $value A single quoted string.
-     *
-     * @return string The unescaped string.
-     */
-    public function unescapeSingleQuotedString($value)
-    {
-        return str_replace('\'\'', '\'', $value);
-    }
-
-    /**
-     * Unescapes a double quoted string.
-     *
-     * @param string $value A double quoted string.
-     *
-     * @return string The unescaped string.
-     */
-    public function unescapeDoubleQuotedString($value)
-    {
-        $self = $this;
-        $callback = function ($match) use ($self) {
-            return $self->unescapeCharacter($match[0]);
-        };
-
-        // evaluate the string
-        return preg_replace_callback('/'.self::REGEX_ESCAPED_CHARACTER.'/u', $callback, $value);
-    }
-
-    /**
-     * Unescapes a character that was found in a double-quoted string.
-     *
-     * @param string $value An escaped character
-     *
-     * @return string The unescaped character
-     */
-    public function unescapeCharacter($value)
-    {
-        switch ($value{1}) {
-            case '0':
-                return "\x0";
-            case 'a':
-                return "\x7";
-            case 'b':
-                return "\x8";
-            case 't':
-                return "\t";
-            case "\t":
-                return "\t";
-            case 'n':
-                return "\n";
-            case 'v':
-                return "\xB";
-            case 'f':
-                return "\xC";
-            case 'r':
-                return "\r";
-            case 'e':
-                return "\x1B";
-            case ' ':
-                return ' ';
-            case '"':
-                return '"';
-            case '/':
-                return '/';
-            case '\\':
-                return '\\';
-            case 'N':
-                // U+0085 NEXT LINE
-                return "\xC2\x85";
-            case '_':
-                // U+00A0 NO-BREAK SPACE
-                return "\xC2\xA0";
-            case 'L':
-                // U+2028 LINE SEPARATOR
-                return "\xE2\x80\xA8";
-            case 'P':
-                // U+2029 PARAGRAPH SEPARATOR
-                return "\xE2\x80\xA9";
-            case 'x':
-                return self::utf8chr(hexdec(substr($value, 2, 2)));
-            case 'u':
-                return self::utf8chr(hexdec(substr($value, 2, 4)));
-            case 'U':
-                return self::utf8chr(hexdec(substr($value, 2, 8)));
-        }
-    }
-
-    /**
-     * Get the UTF-8 character for the given code point.
-     *
-     * @param int $c The unicode code point
-     *
-     * @return string The corresponding UTF-8 character
-     */
-    private static function utf8chr($c)
-    {
-        if (0x80 > $c %= 0x200000) {
-            return chr($c);
-        }
-        if (0x800 > $c) {
-            return chr(0xC0 | $c >> 6).chr(0x80 | $c & 0x3F);
-        }
-        if (0x10000 > $c) {
-            return chr(0xE0 | $c >> 12).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F);
-        }
-
-        return chr(0xF0 | $c >> 18).chr(0x80 | $c >> 12 & 0x3F).chr(0x80 | $c >> 6 & 0x3F).chr(0x80 | $c & 0x3F);
-    }
-}
diff --git a/core/vendor/symfony/yaml/Yaml.php b/core/vendor/symfony/yaml/Yaml.php
deleted file mode 100644
index b6def51..0000000
--- a/core/vendor/symfony/yaml/Yaml.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Yaml;
-
-use Symfony\Component\Yaml\Exception\ParseException;
-
-/**
- * Yaml offers convenience methods to load and dump YAML.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @api
- */
-class Yaml
-{
-    /**
-     * Parses YAML into a PHP array.
-     *
-     * The parse method, when supplied with a YAML stream (string or file),
-     * will do its best to convert YAML in a file into a PHP array.
-     *
-     *  Usage:
-     *  <code>
-     *   $array = Yaml::parse(file_get_contents('config.yml'));
-     *   print_r($array);
-     *  </code>
-     *
-     * As this method accepts both plain strings and file names as an input,
-     * you must validate the input before calling this method. Passing a file
-     * as an input is a deprecated feature and will be removed in 3.0.
-     *
-     * Note: the ability to pass file names to the Yaml::parse method is deprecated since version 2.2 and will be removed in 3.0. Pass the YAML contents of the file instead.
-     *
-     * @param string $input                  Path to a YAML file or a string containing YAML
-     * @param bool   $exceptionOnInvalidType True if an exception must be thrown on invalid types false otherwise
-     * @param bool   $objectSupport          True if object support is enabled, false otherwise
-     * @param bool   $objectForMap           True if maps should return a stdClass instead of array()
-     *
-     * @return array The YAML converted to a PHP array
-     *
-     * @throws ParseException If the YAML is not valid
-     *
-     * @api
-     */
-    public static function parse($input, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false)
-    {
-        // if input is a file, process it
-        $file = '';
-        if (strpos($input, "\n") === false && is_file($input)) {
-            @trigger_error('The ability to pass file names to the '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Pass the YAML contents of the file instead.', E_USER_DEPRECATED);
-
-            if (false === is_readable($input)) {
-                throw new ParseException(sprintf('Unable to parse "%s" as the file is not readable.', $input));
-            }
-
-            $file = $input;
-            $input = file_get_contents($file);
-        }
-
-        $yaml = new Parser();
-
-        try {
-            return $yaml->parse($input, $exceptionOnInvalidType, $objectSupport, $objectForMap);
-        } catch (ParseException $e) {
-            if ($file) {
-                $e->setParsedFile($file);
-            }
-
-            throw $e;
-        }
-    }
-
-    /**
-     * Dumps a PHP array to a YAML string.
-     *
-     * The dump method, when supplied with an array, will do its best
-     * to convert the array into friendly YAML.
-     *
-     * @param array $array                  PHP array
-     * @param int   $inline                 The level where you switch to inline YAML
-     * @param int   $indent                 The amount of spaces to use for indentation of nested nodes.
-     * @param bool  $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool  $objectSupport          true if object support is enabled, false otherwise
-     *
-     * @return string A YAML string representing the original PHP array
-     *
-     * @api
-     */
-    public static function dump($array, $inline = 2, $indent = 4, $exceptionOnInvalidType = false, $objectSupport = false)
-    {
-        $yaml = new Dumper();
-        $yaml->setIndentation($indent);
-
-        return $yaml->dump($array, $inline, 0, $exceptionOnInvalidType, $objectSupport);
-    }
-}
diff --git a/core/vendor/symfony/yaml/composer.json b/core/vendor/symfony/yaml/composer.json
deleted file mode 100644
index b07b439..0000000
--- a/core/vendor/symfony/yaml/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "name": "symfony/yaml",
-    "type": "library",
-    "description": "Symfony Yaml Component",
-    "keywords": [],
-    "homepage": "https://symfony.com",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com"
-        },
-        {
-            "name": "Symfony Community",
-            "homepage": "https://symfony.com/contributors"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.9"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "~2.7"
-    },
-    "autoload": {
-        "psr-4": { "Symfony\\Component\\Yaml\\": "" }
-    },
-    "minimum-stability": "dev",
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.7-dev"
-        }
-    }
-}
diff --git a/core/vendor/symfony/yaml/phpunit.xml.dist b/core/vendor/symfony/yaml/phpunit.xml.dist
deleted file mode 100644
index 418b2c6..0000000
--- a/core/vendor/symfony/yaml/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony Yaml Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./vendor</directory>
-                <directory>./Tests</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/core/vendor/twig/twig/.editorconfig b/core/vendor/twig/twig/.editorconfig
deleted file mode 100644
index 270f1d1..0000000
--- a/core/vendor/twig/twig/.editorconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-; top-most EditorConfig file
-root = true
-
-; Unix-style newlines
-[*]
-end_of_line = LF
-
-[*.php]
-indent_style = space
-indent_size = 4
-
-[*.test]
-indent_style = space
-indent_size = 4
-
-[*.rst]
-indent_style = space
-indent_size = 4
diff --git a/core/vendor/twig/twig/.gitignore b/core/vendor/twig/twig/.gitignore
deleted file mode 100644
index 3110362..0000000
--- a/core/vendor/twig/twig/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/build
-/composer.lock
-/ext/twig/autom4te.cache/
-/phpunit.xml
-/vendor
diff --git a/core/vendor/twig/twig/.travis.yml b/core/vendor/twig/twig/.travis.yml
deleted file mode 100644
index 223a3be..0000000
--- a/core/vendor/twig/twig/.travis.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-language: php
-
-php:
-  - 5.2
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-  - nightly
-
-allow_failures:
-    - php: nightly
-
-env:
-  - TWIG_EXT=no
-  - TWIG_EXT=yes
-
-before_script:
-  - if [ "$TWIG_EXT" == "yes" ]; then sh -c "cd ext/twig && phpize && ./configure --enable-twig && make && sudo make install"; fi
-  - if [ "$TWIG_EXT" == "yes" ]; then echo "extension=twig.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`; fi
-
-matrix:
-  exclude:
-    - php: hhvm
-      env: TWIG_EXT=yes
-    - php: nightly
-      env: TWIG_EXT=yes
diff --git a/core/vendor/twig/twig/CHANGELOG b/core/vendor/twig/twig/CHANGELOG
deleted file mode 100644
index d4d951b..0000000
--- a/core/vendor/twig/twig/CHANGELOG
+++ /dev/null
@@ -1,755 +0,0 @@
-* 1.20.0 (2015-08-12)
-
- * forbid access to the Twig environment from templates and internal parts of Twig_Template
- * fixed limited RCEs when in sandbox mode
- * deprecated Twig_Template::getEnvironment()
- * deprecated the _self variable for usage outside of the from and import tags
- * added Twig_BaseNodeVisitor to ease the compatibility of node visitors 
-   between 1.x and 2.x
-
-* 1.19.0 (2015-07-31)
-
- * fixed wrong error message when including an undefined template in a child template
- * added support for variadic filters, functions, and tests
- * added support for extra positional arguments in macros
- * added ignore_missing flag to the source function
- * fixed batch filter with zero items
- * deprecated Twig_Environment::clearTemplateCache()
- * fixed sandbox disabling when using the include function
-
-* 1.18.2 (2015-06-06)
-
- * fixed template/line guessing in exceptions for nested templates
- * optimized the number of inodes and the size of realpath cache when using the cache
-
-* 1.18.1 (2015-04-19)
-
- * fixed memory leaks in the C extension
- * deprecated Twig_Loader_String
- * fixed the slice filter when used with a SimpleXMLElement object
- * fixed filesystem loader when trying to load non-files (like directories)
-
-* 1.18.0 (2015-01-25)
-
- * fixed some error messages where the line was wrong (unknown variables or argument names)
- * added a new way to customize the main Module node (via empty nodes)
- * added Twig_Environment::createTemplate() to create a template from a string
- * added a profiler
- * fixed filesystem loader cache when different file paths are used for the same template
-
-* 1.17.0 (2015-01-14)
-
- * added a 'filename' autoescaping strategy, which dynamically chooses the
-   autoescaping strategy for a template based on template file extension.
-
-* 1.16.3 (2014-12-25)
-
- * fixed regression for dynamic parent templates
- * fixed cache management with statcache
- * fixed a regression in the slice filter
-
-* 1.16.2 (2014-10-17)
-
- * fixed timezone on dates as strings
- * fixed 2-words test names when a custom node class is not used
- * fixed macros when using an argument named like a PHP super global (like GET or POST)
- * fixed date_modify when working with DateTimeImmutable
- * optimized for loops
- * fixed multi-byte characters handling in the split filter
- * fixed a regression in the in operator
- * fixed a regression in the slice filter
-
-* 1.16.1 (2014-10-10)
-
- * improved error reporting in a sandboxed template
- * fixed missing error file/line information under certain circumstances
- * fixed wrong error line number in some error messages
- * fixed the in operator to use strict comparisons
- * sped up the slice filter
- * fixed for mb function overload mb_substr acting different
- * fixed the attribute() function when passing a variable for the arguments
-
-* 1.16.0 (2014-07-05)
-
- * changed url_encode to always encode according to RFC 3986
- * fixed inheritance in a 'use'-hierarchy
- * removed the __toString policy check when the sandbox is disabled
- * fixed recursively calling blocks in templates with inheritance
-
-* 1.15.1 (2014-02-13)
-
- * fixed the conversion of the special '0000-00-00 00:00' date
- * added an error message when trying to import an undefined block from a trait
- * fixed a C extension crash when accessing defined but uninitialized property.
-
-* 1.15.0 (2013-12-06)
-
- * made ignoreStrictCheck in Template::getAttribute() works with __call() methods throwing BadMethodCallException
- * added min and max functions
- * added the round filter
- * fixed a bug that prevented the optimizers to be enabled/disabled selectively
- * fixed first and last filters for UTF-8 strings
- * added a source function to include the content of a template without rendering it
- * fixed the C extension sandbox behavior when get or set is prepend to method name
-
-* 1.14.2 (2013-10-30)
-
- * fixed error filename/line when an error occurs in an included file
- * allowed operators that contain whitespaces to have more than one whitespace
- * allowed tests to be made of 1 or 2 words (like "same as" or "divisible by")
-
-* 1.14.1 (2013-10-15)
-
- * made it possible to use named operators as variables
- * fixed the possibility to have a variable named 'matches'
- * added support for PHP 5.5 DateTimeInterface
-
-* 1.14.0 (2013-10-03)
-
- * fixed usage of the html_attr escaping strategy to avoid double-escaping with the html strategy
- * added new operators: ends with, starts with, and matches
- * fixed some compatibility issues with HHVM
- * added a way to add custom escaping strategies
- * fixed the C extension compilation on Windows
- * fixed the batch filter when using a fill argument with an exact match of elements to batch
- * fixed the filesystem loader cache when a template name exists in several namespaces
- * fixed template_from_string when the template includes or extends other ones
- * fixed a crash of the C extension on an edge case
-
-* 1.13.2 (2013-08-03)
-
- * fixed the error line number for an error occurs in and embedded template
- * fixed crashes of the C extension on some edge cases
-
-* 1.13.1 (2013-06-06)
-
- * added the possibility to ignore the filesystem constructor argument in Twig_Loader_Filesystem
- * fixed Twig_Loader_Chain::exists() for a loader which implements Twig_ExistsLoaderInterface
- * adjusted backtrace call to reduce memory usage when an error occurs
- * added support for object instances as the second argument of the constant test
- * fixed the include function when used in an assignment
-
-* 1.13.0 (2013-05-10)
-
- * fixed getting a numeric-like item on a variable ('09' for instance)
- * fixed getting a boolean or float key on an array, so it is consistent with PHP's array access:
-   `{{ array[false] }}` behaves the same as `echo $array[false];` (equals `$array[0]`)
- * made the escape filter 20% faster for happy path (escaping string for html with UTF-8)
- * changed ☃ to § in tests
- * enforced usage of named arguments after positional ones
-
-* 1.12.3 (2013-04-08)
-
- * fixed a security issue in the filesystem loader where it was possible to include a template one
-   level above the configured path
- * fixed fatal error that should be an exception when adding a filter/function/test too late
- * added a batch filter
- * added support for encoding an array as query string in the url_encode filter
-
-* 1.12.2 (2013-02-09)
-
- * fixed the timezone used by the date filter and function when the given date contains a timezone (like 2010-01-28T15:00:00+02:00)
- * fixed globals when getGlobals is called early on
- * added the first and last filter
-
-* 1.12.1 (2013-01-15)
-
- * added support for object instances as the second argument of the constant function
- * relaxed globals management to avoid a BC break
- * added support for {{ some_string[:2] }}
-
-* 1.12.0 (2013-01-08)
-
- * added verbatim as an alias for the raw tag to avoid confusion with the raw filter
- * fixed registration of tests and functions as anonymous functions
- * fixed globals management
-
-* 1.12.0-RC1 (2012-12-29)
-
- * added an include function (does the same as the include tag but in a more flexible way)
- * added the ability to use any PHP callable to define filters, functions, and tests
- * added a syntax error when using a loop variable that is not defined
- * added the ability to set default values for macro arguments
- * added support for named arguments for filters, tests, and functions
- * moved filters/functions/tests syntax errors to the parser
- * added support for extended ternary operator syntaxes
-
-* 1.11.1 (2012-11-11)
-
- * fixed debug info line numbering (was off by 2)
- * fixed escaping when calling a macro inside another one (regression introduced in 1.9.1)
- * optimized variable access on PHP 5.4
- * fixed a crash of the C extension when an exception was thrown from a macro called without being imported (using _self.XXX)
-
-* 1.11.0 (2012-11-07)
-
- * fixed macro compilation when a variable name is a PHP reserved keyword
- * changed the date filter behavior to always apply the default timezone, except if false is passed as the timezone
- * fixed bitwise operator precedences
- * added the template_from_string function
- * fixed default timezone usage for the date function
- * optimized the way Twig exceptions are managed (to make them faster)
- * added Twig_ExistsLoaderInterface (implementing this interface in your loader make the chain loader much faster)
-
-* 1.10.3 (2012-10-19)
-
- * fixed wrong template location in some error messages
- * reverted a BC break introduced in 1.10.2
- * added a split filter
-
-* 1.10.2 (2012-10-15)
-
- * fixed macro calls on PHP 5.4
-
-* 1.10.1 (2012-10-15)
-
- * made a speed optimization to macro calls when imported via the "import" tag
- * fixed C extension compilation on Windows
- * fixed a segfault in the C extension when using DateTime objects
-
-* 1.10.0 (2012-09-28)
-
- * extracted functional tests framework to make it reusable for third-party extensions
- * added namespaced templates support in Twig_Loader_Filesystem
- * added Twig_Loader_Filesystem::prependPath()
- * fixed an error when a token parser pass a closure as a test to the subparse() method
-
-* 1.9.2 (2012-08-25)
-
- * fixed the in operator for objects that contain circular references
- * fixed the C extension when accessing a public property of an object implementing the \ArrayAccess interface
-
-* 1.9.1 (2012-07-22)
-
- * optimized macro calls when auto-escaping is on
- * fixed wrong parent class for Twig_Function_Node
- * made Twig_Loader_Chain more explicit about problems
-
-* 1.9.0 (2012-07-13)
-
- * made the parsing independent of the template loaders
- * fixed exception trace when an error occurs when rendering a child template
- * added escaping strategies for CSS, URL, and HTML attributes
- * fixed nested embed tag calls
- * added the date_modify filter
-
-* 1.8.3 (2012-06-17)
-
- * fixed paths in the filesystem loader when passing a path that ends with a slash or a backslash
- * fixed escaping when a project defines a function named html or js
- * fixed chmod mode to apply the umask correctly
-
-* 1.8.2 (2012-05-30)
-
- * added the abs filter
- * fixed a regression when using a number in template attributes
- * fixed compiler when mbstring.func_overload is set to 2
- * fixed DateTimeZone support in date filter
-
-* 1.8.1 (2012-05-17)
-
- * fixed a regression when dealing with SimpleXMLElement instances in templates
- * fixed "is_safe" value for the "dump" function when "html_errors" is not defined in php.ini
- * switched to use mbstring whenever possible instead of iconv (you might need to update your encoding as mbstring and iconv encoding names sometimes differ)
-
-* 1.8.0 (2012-05-08)
-
- * enforced interface when adding tests, filters, functions, and node visitors from extensions
- * fixed a side-effect of the date filter where the timezone might be changed
- * simplified usage of the autoescape tag; the only (optional) argument is now the escaping strategy or false (with a BC layer)
- * added a way to dynamically change the auto-escaping strategy according to the template "filename"
- * changed the autoescape option to also accept a supported escaping strategy (for BC, true is equivalent to html)
- * added an embed tag
-
-* 1.7.0 (2012-04-24)
-
- * fixed a PHP warning when using CIFS
- * fixed template line number in some exceptions
- * added an iterable test
- * added an error when defining two blocks with the same name in a template
- * added the preserves_safety option for filters
- * fixed a PHP notice when trying to access a key on a non-object/array variable
- * enhanced error reporting when the template file is an instance of SplFileInfo
- * added Twig_Environment::mergeGlobals()
- * added compilation checks to avoid misuses of the sandbox tag
- * fixed filesystem loader freshness logic for high traffic websites
- * fixed random function when charset is null
-
-* 1.6.5 (2012-04-11)
-
- * fixed a regression when a template only extends another one without defining any blocks
-
-* 1.6.4 (2012-04-02)
-
- * fixed PHP notice in Twig_Error::guessTemplateLine() introduced in 1.6.3
- * fixed performance when compiling large files
- * optimized parent template creation when the template does not use dynamic inheritance
-
-* 1.6.3 (2012-03-22)
-
- * fixed usage of Z_ADDREF_P for PHP 5.2 in the C extension
- * fixed compilation of numeric values used in templates when using a locale where the decimal separator is not a dot
- * made the strategy used to guess the real template file name and line number in exception messages much faster and more accurate
-
-* 1.6.2 (2012-03-18)
-
- * fixed sandbox mode when used with inheritance
- * added preserveKeys support for the slice filter
- * fixed the date filter when a DateTime instance is passed with a specific timezone
- * added a trim filter
-
-* 1.6.1 (2012-02-29)
-
- * fixed Twig C extension
- * removed the creation of Twig_Markup instances when not needed
- * added a way to set the default global timezone for dates
- * fixed the slice filter on strings when the length is not specified
- * fixed the creation of the cache directory in case of a race condition
-
-* 1.6.0 (2012-02-04)
-
- * fixed raw blocks when used with the whitespace trim option
- * made a speed optimization to macro calls when imported via the "from" tag
- * fixed globals, parsers, visitors, filters, tests, and functions management in Twig_Environment when a new one or new extension is added
- * fixed the attribute function when passing arguments
- * added slice notation support for the [] operator (syntactic sugar for the slice operator)
- * added a slice filter
- * added string support for the reverse filter
- * fixed the empty test and the length filter for Twig_Markup instances
- * added a date function to ease date comparison
- * fixed unary operators precedence
- * added recursive parsing support in the parser
- * added string and integer handling for the random function
-
-* 1.5.1 (2012-01-05)
-
- * fixed a regression when parsing strings
-
-* 1.5.0 (2012-01-04)
-
- * added Traversable objects support for the join filter
-
-* 1.5.0-RC2 (2011-12-30)
-
- * added a way to set the default global date interval format
- * fixed the date filter for DateInterval instances (setTimezone() does not exist for them)
- * refactored Twig_Template::display() to ease its extension
- * added a number_format filter
-
-* 1.5.0-RC1 (2011-12-26)
-
- * removed the need to quote hash keys
- * allowed hash keys to be any expression
- * added a do tag
- * added a flush tag
- * added support for dynamically named filters and functions
- * added a dump function to help debugging templates
- * added a nl2br filter
- * added a random function
- * added a way to change the default format for the date filter
- * fixed the lexer when an operator ending with a letter ends a line
- * added string interpolation support
- * enhanced exceptions for unknown filters, functions, tests, and tags
-
-* 1.4.0 (2011-12-07)
-
- * fixed lexer when using big numbers (> PHP_INT_MAX)
- * added missing preserveKeys argument to the reverse filter
- * fixed macros containing filter tag calls
-
-* 1.4.0-RC2 (2011-11-27)
-
- * removed usage of Reflection in Twig_Template::getAttribute()
- * added a C extension that can optionally replace Twig_Template::getAttribute()
- * added negative timestamp support to the date filter
-
-* 1.4.0-RC1 (2011-11-20)
-
- * optimized variable access when using PHP 5.4
- * changed the precedence of the .. operator to be more consistent with languages that implements such a feature like Ruby
- * added an Exception to Twig_Loader_Array::isFresh() method when the template does not exist to be consistent with other loaders
- * added Twig_Function_Node to allow more complex functions to have their own Node class
- * added Twig_Filter_Node to allow more complex filters to have their own Node class
- * added Twig_Test_Node to allow more complex tests to have their own Node class
- * added a better error message when a template is empty but contain a BOM
- * fixed "in" operator for empty strings
- * fixed the "defined" test and the "default" filter (now works with more than one call (foo.bar.foo) and for both values of the strict_variables option)
- * changed the way extensions are loaded (addFilter/addFunction/addGlobal/addTest/addNodeVisitor/addTokenParser/addExtension can now be called in any order)
- * added Twig_Environment::display()
- * made the escape filter smarter when the encoding is not supported by PHP
- * added a convert_encoding filter
- * moved all node manipulations outside the compile() Node method
- * made several speed optimizations
-
-* 1.3.0 (2011-10-08)
-
-no changes
-
-* 1.3.0-RC1 (2011-10-04)
-
- * added an optimization for the parent() function
- * added cache reloading when auto_reload is true and an extension has been modified
- * added the possibility to force the escaping of a string already marked as safe (instance of Twig_Markup)
- * allowed empty templates to be used as traits
- * added traits support for the "parent" function
-
-* 1.2.0 (2011-09-13)
-
-no changes
-
-* 1.2.0-RC1 (2011-09-10)
-
- * enhanced the exception when a tag remains unclosed
- * added support for empty Countable objects for the "empty" test
- * fixed algorithm that determines if a template using inheritance is valid (no output between block definitions)
- * added better support for encoding problems when escaping a string (available as of PHP 5.4)
- * added a way to ignore a missing template when using the "include" tag ({% include "foo" ignore missing %})
- * added support for an array of templates to the "include" and "extends" tags ({% include ['foo', 'bar'] %})
- * added support for bitwise operators in expressions
- * added the "attribute" function to allow getting dynamic attributes on variables
- * added Twig_Loader_Chain
- * added Twig_Loader_Array::setTemplate()
- * added an optimization for the set tag when used to capture a large chunk of static text
- * changed name regex to match PHP one "[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" (works for blocks, tags, functions, filters, and macros)
- * removed the possibility to use the "extends" tag from a block
- * added "if" modifier support to "for" loops
-
-* 1.1.2 (2011-07-30)
-
- * fixed json_encode filter on PHP 5.2
- * fixed regression introduced in 1.1.1 ({{ block(foo|lower) }})
- * fixed inheritance when using conditional parents
- * fixed compilation of templates when the body of a child template is not empty
- * fixed output when a macro throws an exception
- * fixed a parsing problem when a large chunk of text is enclosed in a comment tag
- * added PHPDoc for all Token parsers and Core extension functions
-
-* 1.1.1 (2011-07-17)
-
- * added a performance optimization in the Optimizer (also helps to lower the number of nested level calls)
- * made some performance improvement for some edge cases
-
-* 1.1.0 (2011-06-28)
-
- * fixed json_encode filter
-
-* 1.1.0-RC3 (2011-06-24)
-
- * fixed method case-sensitivity when using the sandbox mode
- * added timezone support for the date filter
- * fixed possible security problems with NUL bytes
-
-* 1.1.0-RC2 (2011-06-16)
-
- * added an exception when the template passed to "use" is not a string
- * made 'a.b is defined' not throw an exception if a is not defined (in strict mode)
- * added {% line \d+ %} directive
-
-* 1.1.0-RC1 (2011-05-28)
-
-Flush your cache after upgrading.
-
- * fixed date filter when using a timestamp
- * fixed the defined test for some cases
- * fixed a parsing problem when a large chunk of text is enclosed in a raw tag
- * added support for horizontal reuse of template blocks (see docs for more information)
- * added whitespace control modifier to all tags (see docs for more information)
- * added null as an alias for none (the null test is also an alias for the none test now)
- * made TRUE, FALSE, NONE equivalent to their lowercase counterparts
- * wrapped all compilation and runtime exceptions with Twig_Error_Runtime and added logic to guess the template name and line
- * moved display() method to Twig_Template (generated templates should now use doDisplay() instead)
-
-* 1.0.0 (2011-03-27)
-
- * fixed output when using mbstring
- * fixed duplicate call of methods when using the sandbox
- * made the charset configurable for the escape filter
-
-* 1.0.0-RC2 (2011-02-21)
-
- * changed the way {% set %} works when capturing (the content is now marked as safe)
- * added support for macro name in the endmacro tag
- * make Twig_Error compatible with PHP 5.3.0 >
- * fixed an infinite loop on some Windows configurations
- * fixed the "length" filter for numbers
- * fixed Template::getAttribute() as properties in PHP are case sensitive
- * removed coupling between Twig_Node and Twig_Template
- * fixed the ternary operator precedence rule
-
-* 1.0.0-RC1 (2011-01-09)
-
-Backward incompatibilities:
-
- * the "items" filter, which has been deprecated for quite a long time now, has been removed
- * the "range" filter has been converted to a function: 0|range(10) -> range(0, 10)
- * the "constant" filter has been converted to a function: {{ some_date|date('DATE_W3C'|constant) }} -> {{ some_date|date(constant('DATE_W3C')) }}
- * the "cycle" filter has been converted to a function: {{ ['odd', 'even']|cycle(i) }} -> {{ cycle(['odd', 'even'], i) }}
- * the "for" tag does not support "joined by" anymore
- * the "autoescape" first argument is now "true"/"false" (instead of "on"/"off")
- * the "parent" tag has been replaced by a "parent" function ({{ parent() }} instead of {% parent %})
- * the "display" tag has been replaced by a "block" function ({{ block('title') }} instead of {% display title %})
- * removed the grammar and simple token parser (moved to the Twig Extensions repository)
-
-Changes:
-
- * added "needs_context" option for filters and functions (the context is then passed as a first argument)
- * added global variables support
- * made macros return their value instead of echoing directly (fixes calling a macro in sandbox mode)
- * added the "from" tag to import macros as functions
- * added support for functions (a function is just syntactic sugar for a getAttribute() call)
- * made macros callable when sandbox mode is enabled
- * added an exception when a macro uses a reserved name
- * the "default" filter now uses the "empty" test instead of just checking for null
- * added the "empty" test
-
-* 0.9.10 (2010-12-16)
-
-Backward incompatibilities:
-
- * The Escaper extension is enabled by default, which means that all displayed
-   variables are now automatically escaped. You can revert to the previous
-   behavior by removing the extension via $env->removeExtension('escaper')
-   or just set the 'autoescape' option to 'false'.
- * removed the "without loop" attribute for the "for" tag (not needed anymore
-   as the Optimizer take care of that for most cases)
- * arrays and hashes have now a different syntax
-     * arrays keep the same syntax with square brackets: [1, 2]
-     * hashes now use curly braces (["a": "b"] should now be written as {"a": "b"})
-     * support for "arrays with keys" and "hashes without keys" is not supported anymore ([1, "foo": "bar"] or {"foo": "bar", 1})
- * the i18n extension is now part of the Twig Extensions repository
-
-Changes:
-
- * added the merge filter
- * removed 'is_escaper' option for filters (a left over from the previous version) -- you must use 'is_safe' now instead
- * fixed usage of operators as method names (like is, in, and not)
- * changed the order of execution for node visitors
- * fixed default() filter behavior when used with strict_variables set to on
- * fixed filesystem loader compatibility with PHAR files
- * enhanced error messages when an unexpected token is parsed in an expression
- * fixed filename not being added to syntax error messages
- * added the autoescape option to enable/disable autoescaping
- * removed the newline after a comment (mimics PHP behavior)
- * added a syntax error exception when parent block is used on a template that does not extend another one
- * made the Escaper extension enabled by default
- * fixed sandbox extension when used with auto output escaping
- * fixed escaper when wrapping a Twig_Node_Print (the original class must be preserved)
- * added an Optimizer extension (enabled by default; optimizes "for" loops and "raw" filters)
- * added priority to node visitors
-
-* 0.9.9 (2010-11-28)
-
-Backward incompatibilities:
- * the self special variable has been renamed to _self
- * the odd and even filters are now tests:
-     {{ foo|odd }} must now be written {{ foo is odd }}
- * the "safe" filter has been renamed to "raw"
- * in Node classes,
-        sub-nodes are now accessed via getNode() (instead of property access)
-        attributes via getAttribute() (instead of array access)
- * the urlencode filter had been renamed to url_encode
- * the include tag now merges the passed variables with the current context by default
-   (the old behavior is still possible by adding the "only" keyword)
- * moved Exceptions to Twig_Error_* (Twig_SyntaxError/Twig_RuntimeError are now Twig_Error_Syntax/Twig_Error_Runtime)
- * removed support for {{ 1 < i < 3 }} (use {{ i > 1 and i < 3 }} instead)
- * the "in" filter has been removed ({{ a|in(b) }} should now be written {{ a in b }})
-
-Changes:
- * added file and line to Twig_Error_Runtime exceptions thrown from Twig_Template
- * changed trans tag to accept any variable for the plural count
- * fixed sandbox mode (__toString() method check was not enforced if called implicitly from complex statements)
- * added the ** (power) operator
- * changed the algorithm used for parsing expressions
- * added the spaceless tag
- * removed trim_blocks option
- * added support for is*() methods for attributes (foo.bar now looks for foo->getBar() or foo->isBar())
- * changed all exceptions to extend Twig_Error
- * fixed unary expressions ({{ not(1 or 0) }})
- * fixed child templates (with an extend tag) that uses one or more imports
- * added support for {{ 1 not in [2, 3] }} (more readable than the current {{ not (1 in [2, 3]) }})
- * escaping has been rewritten
- * the implementation of template inheritance has been rewritten
-   (blocks can now be called individually and still work with inheritance)
- * fixed error handling for if tag when a syntax error occurs within a subparse process
- * added a way to implement custom logic for resolving token parsers given a tag name
- * fixed js escaper to be stricter (now uses a whilelist-based js escaper)
- * added the following filers: "constant", "trans", "replace", "json_encode"
- * added a "constant" test
- * fixed objects with __toString() not being autoescaped
- * fixed subscript expressions when calling __call() (methods now keep the case)
- * added "test" feature (accessible via the "is" operator)
- * removed the debug tag (should be done in an extension)
- * fixed trans tag when no vars are used in plural form
- * fixed race condition when writing template cache
- * added the special _charset variable to reference the current charset
- * added the special _context variable to reference the current context
- * renamed self to _self (to avoid conflict)
- * fixed Twig_Template::getAttribute() for protected properties
-
-* 0.9.8 (2010-06-28)
-
-Backward incompatibilities:
- * the trans tag plural count is now attached to the plural tag:
-    old: `{% trans count %}...{% plural %}...{% endtrans %}`
-    new: `{% trans %}...{% plural count %}...{% endtrans %}`
-
- * added a way to translate strings coming from a variable ({% trans var %})
- * fixed trans tag when used with the Escaper extension
- * fixed default cache umask
- * removed Twig_Template instances from the debug tag output
- * fixed objects with __isset() defined
- * fixed set tag when used with a capture
- * fixed type hinting for Twig_Environment::addFilter() method
-
-* 0.9.7 (2010-06-12)
-
-Backward incompatibilities:
- * changed 'as' to '=' for the set tag ({% set title as "Title" %} must now be {% set title = "Title" %})
- * removed the sandboxed attribute of the include tag (use the new sandbox tag instead)
- * refactored the Node system (if you have custom nodes, you will have to update them to use the new API)
-
- * added self as a special variable that refers to the current template (useful for importing macros from the current template)
- * added Twig_Template instance support to the include tag
- * added support for dynamic and conditional inheritance ({% extends some_var %} and {% extends standalone ? "minimum" : "base" %})
- * added a grammar sub-framework to ease the creation of custom tags
- * fixed the for tag for large arrays (some loop variables are now only available for arrays and objects that implement the Countable interface)
- * removed the Twig_Resource::resolveMissingFilter() method
- * fixed the filter tag which did not apply filtering to included files
- * added a bunch of unit tests
- * added a bunch of phpdoc
- * added a sandbox tag in the sandbox extension
- * changed the date filter to support any date format supported by DateTime
- * added strict_variable setting to throw an exception when an invalid variable is used in a template (disabled by default)
- * added the lexer, parser, and compiler as arguments to the Twig_Environment constructor
- * changed the cache option to only accepts an explicit path to a cache directory or false
- * added a way to add token parsers, filters, and visitors without creating an extension
- * added three interfaces: Twig_NodeInterface, Twig_TokenParserInterface, and Twig_FilterInterface
- * changed the generated code to match the new coding standards
- * fixed sandbox mode (__toString() method check was not enforced if called implicitly from a simple statement like {{ article }})
- * added an exception when a child template has a non-empty body (as it is always ignored when rendering)
-
-* 0.9.6 (2010-05-12)
-
- * fixed variables defined outside a loop and for which the value changes in a for loop
- * fixed the test suite for PHP 5.2 and older versions of PHPUnit
- * added support for __call() in expression resolution
- * fixed node visiting for macros (macros are now visited by visitors as any other node)
- * fixed nested block definitions with a parent call (rarely useful but nonetheless supported now)
- * added the cycle filter
- * fixed the Lexer when mbstring.func_overload is used with an mbstring.internal_encoding different from ASCII
- * added a long-syntax for the set tag ({% set foo %}...{% endset %})
- * unit tests are now powered by PHPUnit
- * added support for gettext via the `i18n` extension
- * fixed twig_capitalize_string_filter() and fixed twig_length_filter() when used with UTF-8 values
- * added a more useful exception if an if tag is not closed properly
- * added support for escaping strategy in the autoescape tag
- * fixed lexer when a template has a big chunk of text between/in a block
-
-* 0.9.5 (2010-01-20)
-
-As for any new release, don't forget to remove all cached templates after
-upgrading.
-
-If you have defined custom filters, you MUST upgrade them for this release. To
-upgrade, replace "array" with "new Twig_Filter_Function", and replace the
-environment constant by the "needs_environment" option:
-
-  // before
-  'even'   => array('twig_is_even_filter', false),
-  'escape' => array('twig_escape_filter', true),
-
-  // after
-  'even'   => new Twig_Filter_Function('twig_is_even_filter'),
-  'escape' => new Twig_Filter_Function('twig_escape_filter', array('needs_environment' => true)),
-
-If you have created NodeTransformer classes, you will need to upgrade them to
-the new interface (please note that the interface is not yet considered
-stable).
-
- * fixed list nodes that did not extend the Twig_NodeListInterface
- * added the "without loop" option to the for tag (it disables the generation of the loop variable)
- * refactored node transformers to node visitors
- * fixed automatic-escaping for blocks
- * added a way to specify variables to pass to an included template
- * changed the automatic-escaping rules to be more sensible and more configurable in custom filters (the documentation lists all the rules)
- * improved the filter system to allow object methods to be used as filters
- * changed the Array and String loaders to actually make use of the cache mechanism
- * included the default filter function definitions in the extension class files directly (Core, Escaper)
- * added the // operator (like the floor() PHP function)
- * added the .. operator (as a syntactic sugar for the range filter when the step is 1)
- * added the in operator (as a syntactic sugar for the in filter)
- * added the following filters in the Core extension: in, range
- * added support for arrays (same behavior as in PHP, a mix between lists and dictionaries, arrays and hashes)
- * enhanced some error messages to provide better feedback in case of parsing errors
-
-* 0.9.4 (2009-12-02)
-
-If you have custom loaders, you MUST upgrade them for this release: The
-Twig_Loader base class has been removed, and the Twig_LoaderInterface has also
-been changed (see the source code for more information or the documentation).
-
- * added support for DateTime instances for the date filter
- * fixed loop.last when the array only has one item
- * made it possible to insert newlines in tag and variable blocks
- * fixed a bug when a literal '\n' were present in a template text
- * fixed bug when the filename of a template contains */
- * refactored loaders
-
-* 0.9.3 (2009-11-11)
-
-This release is NOT backward compatible with the previous releases.
-
-  The loaders do not take the cache and autoReload arguments anymore. Instead,
-  the Twig_Environment class has two new options: cache and auto_reload.
-  Upgrading your code means changing this kind of code:
-
-      $loader = new Twig_Loader_Filesystem('/path/to/templates', '/path/to/compilation_cache', true);
-      $twig = new Twig_Environment($loader);
-
-  to something like this:
-
-      $loader = new Twig_Loader_Filesystem('/path/to/templates');
-      $twig = new Twig_Environment($loader, array(
-        'cache' => '/path/to/compilation_cache',
-        'auto_reload' => true,
-      ));
-
- * deprecated the "items" filter as it is not needed anymore
- * made cache and auto_reload options of Twig_Environment instead of arguments of Twig_Loader
- * optimized template loading speed
- * removed output when an error occurs in a template and render() is used
- * made major speed improvements for loops (up to 300% on even the smallest loops)
- * added properties as part of the sandbox mode
- * added public properties support (obj.item can now be the item property on the obj object)
- * extended set tag to support expression as value ({% set foo as 'foo' ~ 'bar' %} )
- * fixed bug when \ was used in HTML
-
-* 0.9.2 (2009-10-29)
-
- * made some speed optimizations
- * changed the cache extension to .php
- * added a js escaping strategy
- * added support for short block tag
- * changed the filter tag to allow chained filters
- * made lexer more flexible as you can now change the default delimiters
- * added set tag
- * changed default directory permission when cache dir does not exist (more secure)
- * added macro support
- * changed filters first optional argument to be a Twig_Environment instance instead of a Twig_Template instance
- * made Twig_Autoloader::autoload() a static method
- * avoid writing template file if an error occurs
- * added $ escaping when outputting raw strings
- * enhanced some error messages to ease debugging
- * fixed empty cache files when the template contains an error
-
-* 0.9.1 (2009-10-14)
-
-  * fixed a bug in PHP 5.2.6
-  * fixed numbers with one than one decimal
-  * added support for method calls with arguments ({{ foo.bar('a', 43) }})
-  * made small speed optimizations
-  * made minor tweaks to allow better extensibility and flexibility
-
-* 0.9.0 (2009-10-12)
-
- * Initial release
diff --git a/core/vendor/twig/twig/LICENSE b/core/vendor/twig/twig/LICENSE
deleted file mode 100644
index a470002..0000000
--- a/core/vendor/twig/twig/LICENSE
+++ /dev/null
@@ -1,31 +0,0 @@
-Copyright (c) 2009-2014 by the Twig Team.
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * The names of the contributors may not be used to endorse or
-      promote products derived from this software without specific
-      prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/twig/twig/README.rst b/core/vendor/twig/twig/README.rst
deleted file mode 100644
index 81737b0..0000000
--- a/core/vendor/twig/twig/README.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-Twig, the flexible, fast, and secure template language for PHP
-==============================================================
-
-Twig is a template language for PHP, released under the new BSD license (code
-and documentation).
-
-Twig uses a syntax similar to the Django and Jinja template languages which
-inspired the Twig runtime environment.
-
-More Information
-----------------
-
-Read the `documentation`_ for more information.
-
-.. _documentation: http://twig.sensiolabs.org/documentation
diff --git a/core/vendor/twig/twig/composer.json b/core/vendor/twig/twig/composer.json
deleted file mode 100644
index 14f59c3..0000000
--- a/core/vendor/twig/twig/composer.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-    "name": "twig/twig",
-    "type": "library",
-    "description": "Twig, the flexible, fast, and secure template language for PHP",
-    "keywords": ["templating"],
-    "homepage": "http://twig.sensiolabs.org",
-    "license": "BSD-3-Clause",
-    "authors": [
-        {
-            "name": "Fabien Potencier",
-            "email": "fabien@symfony.com",
-            "homepage": "http://fabien.potencier.org",
-            "role": "Lead Developer"
-        },
-        {
-            "name": "Twig Team",
-            "homepage": "http://twig.sensiolabs.org/contributors",
-            "role": "Contributors"
-        },
-        {
-            "name": "Armin Ronacher",
-            "email": "armin.ronacher@active-4.com",
-            "role": "Project Founder"
-        }
-    ],
-    "support": {
-        "forum": "https://groups.google.com/forum/#!forum/twig-users"
-    },
-    "require": {
-        "php": ">=5.2.7"
-    },
-    "autoload": {
-        "psr-0" : {
-            "Twig_" : "lib/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.20-dev"
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/doc/advanced.rst b/core/vendor/twig/twig/doc/advanced.rst
deleted file mode 100644
index 6953f55..0000000
--- a/core/vendor/twig/twig/doc/advanced.rst
+++ /dev/null
@@ -1,855 +0,0 @@
-Extending Twig
-==============
-
-.. caution::
-
-    This section describes how to extend Twig as of **Twig 1.12**. If you are
-    using an older version, read the :doc:`legacy<advanced_legacy>` chapter
-    instead.
-
-Twig can be extended in many ways; you can add extra tags, filters, tests,
-operators, global variables, and functions. You can even extend the parser
-itself with node visitors.
-
-.. note::
-
-    The first section of this chapter describes how to extend Twig easily. If
-    you want to reuse your changes in different projects or if you want to
-    share them with others, you should then create an extension as described
-    in the following section.
-
-.. caution::
-
-    When extending Twig without creating an extension, Twig won't be able to
-    recompile your templates when the PHP code is updated. To see your changes
-    in real-time, either disable template caching or package your code into an
-    extension (see the next section of this chapter).
-
-Before extending Twig, you must understand the differences between all the
-different possible extension points and when to use them.
-
-First, remember that Twig has two main language constructs:
-
-* ``{{ }}``: used to print the result of an expression evaluation;
-
-* ``{% %}``: used to execute statements.
-
-To understand why Twig exposes so many extension points, let's see how to
-implement a *Lorem ipsum* generator (it needs to know the number of words to
-generate).
-
-You can use a ``lipsum`` *tag*:
-
-.. code-block:: jinja
-
-    {% lipsum 40 %}
-
-That works, but using a tag for ``lipsum`` is not a good idea for at least
-three main reasons:
-
-* ``lipsum`` is not a language construct;
-* The tag outputs something;
-* The tag is not flexible as you cannot use it in an expression:
-
-  .. code-block:: jinja
-
-      {{ 'some text' ~ {% lipsum 40 %} ~ 'some more text' }}
-
-In fact, you rarely need to create tags; and that's good news because tags are
-the most complex extension point of Twig.
-
-Now, let's use a ``lipsum`` *filter*:
-
-.. code-block:: jinja
-
-    {{ 40|lipsum }}
-
-Again, it works, but it looks weird. A filter transforms the passed value to
-something else but here we use the value to indicate the number of words to
-generate (so, ``40`` is an argument of the filter, not the value we want to
-transform).
-
-Next, let's use a ``lipsum`` *function*:
-
-.. code-block:: jinja
-
-    {{ lipsum(40) }}
-
-Here we go. For this specific example, the creation of a function is the
-extension point to use. And you can use it anywhere an expression is accepted:
-
-.. code-block:: jinja
-
-    {{ 'some text' ~ lipsum(40) ~ 'some more text' }}
-
-    {% set lipsum = lipsum(40) %}
-
-Last but not the least, you can also use a *global* object with a method able
-to generate lorem ipsum text:
-
-.. code-block:: jinja
-
-    {{ text.lipsum(40) }}
-
-As a rule of thumb, use functions for frequently used features and global
-objects for everything else.
-
-Keep in mind the following when you want to extend Twig:
-
-========== ========================== ========== =========================
-What?      Implementation difficulty? How often? When?
-========== ========================== ========== =========================
-*macro*    trivial                    frequent   Content generation
-*global*   trivial                    frequent   Helper object
-*function* trivial                    frequent   Content generation
-*filter*   trivial                    frequent   Value transformation
-*tag*      complex                    rare       DSL language construct
-*test*     trivial                    rare       Boolean decision
-*operator* trivial                    rare       Values transformation
-========== ========================== ========== =========================
-
-Globals
--------
-
-A global variable is like any other template variable, except that it's
-available in all templates and macros::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addGlobal('text', new Text());
-
-You can then use the ``text`` variable anywhere in a template:
-
-.. code-block:: jinja
-
-    {{ text.lipsum(40) }}
-
-Filters
--------
-
-Creating a filter is as simple as associating a name with a PHP callable::
-
-    // an anonymous function
-    $filter = new Twig_SimpleFilter('rot13', function ($string) {
-        return str_rot13($string);
-    });
-
-    // or a simple PHP function
-    $filter = new Twig_SimpleFilter('rot13', 'str_rot13');
-
-    // or a class method
-    $filter = new Twig_SimpleFilter('rot13', array('SomeClass', 'rot13Filter'));
-
-The first argument passed to the ``Twig_SimpleFilter`` constructor is the name
-of the filter you will use in templates and the second one is the PHP callable
-to associate with it.
-
-Then, add the filter to your Twig environment::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addFilter($filter);
-
-And here is how to use it in a template:
-
-.. code-block:: jinja
-
-    {{ 'Twig'|rot13 }}
-
-    {# will output Gjvt #}
-
-When called by Twig, the PHP callable receives the left side of the filter
-(before the pipe ``|``) as the first argument and the extra arguments passed
-to the filter (within parentheses ``()``) as extra arguments.
-
-For instance, the following code:
-
-.. code-block:: jinja
-
-    {{ 'TWIG'|lower }}
-    {{ now|date('d/m/Y') }}
-
-is compiled to something like the following::
-
-    <?php echo strtolower('TWIG') ?>
-    <?php echo twig_date_format_filter($now, 'd/m/Y') ?>
-
-The ``Twig_SimpleFilter`` class takes an array of options as its last
-argument::
-
-    $filter = new Twig_SimpleFilter('rot13', 'str_rot13', $options);
-
-Environment-aware Filters
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you want to access the current environment instance in your filter, set the
-``needs_environment`` option to ``true``; Twig will pass the current
-environment as the first argument to the filter call::
-
-    $filter = new Twig_SimpleFilter('rot13', function (Twig_Environment $env, $string) {
-        // get the current charset for instance
-        $charset = $env->getCharset();
-
-        return str_rot13($string);
-    }, array('needs_environment' => true));
-
-Context-aware Filters
-~~~~~~~~~~~~~~~~~~~~~
-
-If you want to access the current context in your filter, set the
-``needs_context`` option to ``true``; Twig will pass the current context as
-the first argument to the filter call (or the second one if
-``needs_environment`` is also set to ``true``)::
-
-    $filter = new Twig_SimpleFilter('rot13', function ($context, $string) {
-        // ...
-    }, array('needs_context' => true));
-
-    $filter = new Twig_SimpleFilter('rot13', function (Twig_Environment $env, $context, $string) {
-        // ...
-    }, array('needs_context' => true, 'needs_environment' => true));
-
-Automatic Escaping
-~~~~~~~~~~~~~~~~~~
-
-If automatic escaping is enabled, the output of the filter may be escaped
-before printing. If your filter acts as an escaper (or explicitly outputs HTML
-or JavaScript code), you will want the raw output to be printed. In such a
-case, set the ``is_safe`` option::
-
-    $filter = new Twig_SimpleFilter('nl2br', 'nl2br', array('is_safe' => array('html')));
-
-Some filters may need to work on input that is already escaped or safe, for
-example when adding (safe) HTML tags to originally unsafe output. In such a
-case, set the ``pre_escape`` option to escape the input data before it is run
-through your filter::
-
-    $filter = new Twig_SimpleFilter('somefilter', 'somefilter', array('pre_escape' => 'html', 'is_safe' => array('html')));
-
-Variadic Filters
-~~~~~~~~~~~~~~~~
-
-.. versionadded:: 1.19
-    Support for variadic filters was added in Twig 1.19.
-
-When a filter should accept an arbitrary number of arguments, set the
-``is_variadic`` option to ``true``; Twig will pass the extra arguments as the
-last argument to the filter call as an array::
-
-    $filter = new Twig_SimpleFilter('thumbnail', function ($file, array $options = array()) {
-        // ...
-    }, array('is_variadic' => true));
-
-Be warned that named arguments passed to a variadic filter cannot be checked
-for validity as they will automatically end up in the option array.
-
-Dynamic Filters
-~~~~~~~~~~~~~~~
-
-A filter name containing the special ``*`` character is a dynamic filter as
-the ``*`` can be any string::
-
-    $filter = new Twig_SimpleFilter('*_path', function ($name, $arguments) {
-        // ...
-    });
-
-The following filters will be matched by the above defined dynamic filter:
-
-* ``product_path``
-* ``category_path``
-
-A dynamic filter can define more than one dynamic parts::
-
-    $filter = new Twig_SimpleFilter('*_path_*', function ($name, $suffix, $arguments) {
-        // ...
-    });
-
-The filter will receive all dynamic part values before the normal filter
-arguments, but after the environment and the context. For instance, a call to
-``'foo'|a_path_b()`` will result in the following arguments to be passed to
-the filter: ``('a', 'b', 'foo')``.
-
-Functions
----------
-
-Functions are defined in the exact same way as filters, but you need to create
-an instance of ``Twig_SimpleFunction``::
-
-    $twig = new Twig_Environment($loader);
-    $function = new Twig_SimpleFunction('function_name', function () {
-        // ...
-    });
-    $twig->addFunction($function);
-
-Functions support the same features as filters, except for the ``pre_escape``
-and ``preserves_safety`` options.
-
-Tests
------
-
-Tests are defined in the exact same way as filters and functions, but you need
-to create an instance of ``Twig_SimpleTest``::
-
-    $twig = new Twig_Environment($loader);
-    $test = new Twig_SimpleTest('test_name', function () {
-        // ...
-    });
-    $twig->addTest($test);
-
-Tests allow you to create custom application specific logic for evaluating
-boolean conditions. As a simple example, let's create a Twig test that checks if
-objects are 'red'::
-
-    $twig = new Twig_Environment($loader);
-    $test = new Twig_SimpleTest('red', function ($value) {
-        if (isset($value->color) && $value->color == 'red') {
-            return true;
-        }
-        if (isset($value->paint) && $value->paint == 'red') {
-            return true;
-        }
-        return false;
-    });
-    $twig->addTest($test);
-
-Test functions should always return true/false.
-
-When creating tests you can use the ``node_class`` option to provide custom test
-compilation. This is useful if your test can be compiled into PHP primitives.
-This is used by many of the tests built into Twig::
-
-    $twig = new Twig_Environment($loader);
-    $test = new Twig_SimpleTest(
-        'odd',
-        null,
-        array('node_class' => 'Twig_Node_Expression_Test_Odd'));
-    $twig->addTest($test);
-
-    class Twig_Node_Expression_Test_Odd extends Twig_Node_Expression_Test
-    {
-        public function compile(Twig_Compiler $compiler)
-        {
-            $compiler
-                ->raw('(')
-                ->subcompile($this->getNode('node'))
-                ->raw(' % 2 == 1')
-                ->raw(')')
-            ;
-        }
-    }
-
-The above example shows how you can create tests that use a node class. The
-node class has access to one sub-node called 'node'. This sub-node contains the
-value that is being tested. When the ``odd`` filter is used in code such as:
-
-.. code-block:: jinja
-
-    {% if my_value is odd %}
-
-The ``node`` sub-node will contain an expression of ``my_value``. Node-based
-tests also have access to the ``arguments`` node. This node will contain the
-various other arguments that have been provided to your test.
-
-If you want to pass a variable number of positional or named arguments to the
-test, set the ``is_variadic`` option to ``true``. Tests also support dynamic
-name feature as filters and functions.
-
-Tags
-----
-
-One of the most exciting features of a template engine like Twig is the
-possibility to define new language constructs. This is also the most complex
-feature as you need to understand how Twig's internals work.
-
-Let's create a simple ``set`` tag that allows the definition of simple
-variables from within a template. The tag can be used like follows:
-
-.. code-block:: jinja
-
-    {% set name = "value" %}
-
-    {{ name }}
-
-    {# should output value #}
-
-.. note::
-
-    The ``set`` tag is part of the Core extension and as such is always
-    available. The built-in version is slightly more powerful and supports
-    multiple assignments by default (cf. the template designers chapter for
-    more information).
-
-Three steps are needed to define a new tag:
-
-* Defining a Token Parser class (responsible for parsing the template code);
-
-* Defining a Node class (responsible for converting the parsed code to PHP);
-
-* Registering the tag.
-
-Registering a new tag
-~~~~~~~~~~~~~~~~~~~~~
-
-Adding a tag is as simple as calling the ``addTokenParser`` method on the
-``Twig_Environment`` instance::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addTokenParser(new Project_Set_TokenParser());
-
-Defining a Token Parser
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Now, let's see the actual code of this class::
-
-    class Project_Set_TokenParser extends Twig_TokenParser
-    {
-        public function parse(Twig_Token $token)
-        {
-            $parser = $this->parser;
-            $stream = $parser->getStream();
-
-            $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-            $stream->expect(Twig_Token::OPERATOR_TYPE, '=');
-            $value = $parser->getExpressionParser()->parseExpression();
-            $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-            return new Project_Set_Node($name, $value, $token->getLine(), $this->getTag());
-        }
-
-        public function getTag()
-        {
-            return 'set';
-        }
-    }
-
-The ``getTag()`` method must return the tag we want to parse, here ``set``.
-
-The ``parse()`` method is invoked whenever the parser encounters a ``set``
-tag. It should return a ``Twig_Node`` instance that represents the node (the
-``Project_Set_Node`` calls creating is explained in the next section).
-
-The parsing process is simplified thanks to a bunch of methods you can call
-from the token stream (``$this->parser->getStream()``):
-
-* ``getCurrent()``: Gets the current token in the stream.
-
-* ``next()``: Moves to the next token in the stream, *but returns the old one*.
-
-* ``test($type)``, ``test($value)`` or ``test($type, $value)``: Determines whether
-  the current token is of a particular type or value (or both). The value may be an
-  array of several possible values.
-
-* ``expect($type[, $value[, $message]])``: If the current token isn't of the given
-  type/value a syntax error is thrown. Otherwise, if the type and value are correct,
-  the token is returned and the stream moves to the next token.
-
-* ``look()``: Looks a the next token without consuming it.
-
-Parsing expressions is done by calling the ``parseExpression()`` like we did for
-the ``set`` tag.
-
-.. tip::
-
-    Reading the existing ``TokenParser`` classes is the best way to learn all
-    the nitty-gritty details of the parsing process.
-
-Defining a Node
-~~~~~~~~~~~~~~~
-
-The ``Project_Set_Node`` class itself is rather simple::
-
-    class Project_Set_Node extends Twig_Node
-    {
-        public function __construct($name, Twig_Node_Expression $value, $line, $tag = null)
-        {
-            parent::__construct(array('value' => $value), array('name' => $name), $line, $tag);
-        }
-
-        public function compile(Twig_Compiler $compiler)
-        {
-            $compiler
-                ->addDebugInfo($this)
-                ->write('$context[\''.$this->getAttribute('name').'\'] = ')
-                ->subcompile($this->getNode('value'))
-                ->raw(";\n")
-            ;
-        }
-    }
-
-The compiler implements a fluid interface and provides methods that helps the
-developer generate beautiful and readable PHP code:
-
-* ``subcompile()``: Compiles a node.
-
-* ``raw()``: Writes the given string as is.
-
-* ``write()``: Writes the given string by adding indentation at the beginning
-  of each line.
-
-* ``string()``: Writes a quoted string.
-
-* ``repr()``: Writes a PHP representation of a given value (see
-  ``Twig_Node_For`` for a usage example).
-
-* ``addDebugInfo()``: Adds the line of the original template file related to
-  the current node as a comment.
-
-* ``indent()``: Indents the generated code (see ``Twig_Node_Block`` for a
-  usage example).
-
-* ``outdent()``: Outdents the generated code (see ``Twig_Node_Block`` for a
-  usage example).
-
-.. _creating_extensions:
-
-Creating an Extension
----------------------
-
-The main motivation for writing an extension is to move often used code into a
-reusable class like adding support for internationalization. An extension can
-define tags, filters, tests, operators, global variables, functions, and node
-visitors.
-
-Creating an extension also makes for a better separation of code that is
-executed at compilation time and code needed at runtime. As such, it makes
-your code faster.
-
-Most of the time, it is useful to create a single extension for your project,
-to host all the specific tags and filters you want to add to Twig.
-
-.. tip::
-
-    When packaging your code into an extension, Twig is smart enough to
-    recompile your templates whenever you make a change to it (when
-    ``auto_reload`` is enabled).
-
-.. note::
-
-    Before writing your own extensions, have a look at the Twig official
-    extension repository: http://github.com/twigphp/Twig-extensions.
-
-An extension is a class that implements the following interface::
-
-    interface Twig_ExtensionInterface
-    {
-        /**
-         * Initializes the runtime environment.
-         *
-         * This is where you can load some file that contains filter functions for instance.
-         *
-         * @param Twig_Environment $environment The current Twig_Environment instance
-         */
-        function initRuntime(Twig_Environment $environment);
-
-        /**
-         * Returns the token parser instances to add to the existing list.
-         *
-         * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
-         */
-        function getTokenParsers();
-
-        /**
-         * Returns the node visitor instances to add to the existing list.
-         *
-         * @return array An array of Twig_NodeVisitorInterface instances
-         */
-        function getNodeVisitors();
-
-        /**
-         * Returns a list of filters to add to the existing list.
-         *
-         * @return array An array of filters
-         */
-        function getFilters();
-
-        /**
-         * Returns a list of tests to add to the existing list.
-         *
-         * @return array An array of tests
-         */
-        function getTests();
-
-        /**
-         * Returns a list of functions to add to the existing list.
-         *
-         * @return array An array of functions
-         */
-        function getFunctions();
-
-        /**
-         * Returns a list of operators to add to the existing list.
-         *
-         * @return array An array of operators
-         */
-        function getOperators();
-
-        /**
-         * Returns a list of global variables to add to the existing list.
-         *
-         * @return array An array of global variables
-         */
-        function getGlobals();
-
-        /**
-         * Returns the name of the extension.
-         *
-         * @return string The extension name
-         */
-        function getName();
-    }
-
-To keep your extension class clean and lean, it can inherit from the built-in
-``Twig_Extension`` class instead of implementing the whole interface. That
-way, you just need to implement the ``getName()`` method as the
-``Twig_Extension`` provides empty implementations for all other methods.
-
-The ``getName()`` method must return a unique identifier for your extension.
-
-Now, with this information in mind, let's create the most basic extension
-possible::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getName()
-        {
-            return 'project';
-        }
-    }
-
-.. note::
-
-    Of course, this extension does nothing for now. We will customize it in
-    the next sections.
-
-Twig does not care where you save your extension on the filesystem, as all
-extensions must be registered explicitly to be available in your templates.
-
-You can register an extension by using the ``addExtension()`` method on your
-main ``Environment`` object::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addExtension(new Project_Twig_Extension());
-
-Of course, you need to first load the extension file by either using
-``require_once()`` or by using an autoloader (see `spl_autoload_register()`_).
-
-.. tip::
-
-    The bundled extensions are great examples of how extensions work.
-
-Globals
-~~~~~~~
-
-Global variables can be registered in an extension via the ``getGlobals()``
-method::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getGlobals()
-        {
-            return array(
-                'text' => new Text(),
-            );
-        }
-
-        // ...
-    }
-
-Functions
-~~~~~~~~~
-
-Functions can be registered in an extension via the ``getFunctions()``
-method::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getFunctions()
-        {
-            return array(
-                new Twig_SimpleFunction('lipsum', 'generate_lipsum'),
-            );
-        }
-
-        // ...
-    }
-
-Filters
-~~~~~~~
-
-To add a filter to an extension, you need to override the ``getFilters()``
-method. This method must return an array of filters to add to the Twig
-environment::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getFilters()
-        {
-            return array(
-                new Twig_SimpleFilter('rot13', 'str_rot13'),
-            );
-        }
-
-        // ...
-    }
-
-Tags
-~~~~
-
-Adding a tag in an extension can be done by overriding the
-``getTokenParsers()`` method. This method must return an array of tags to add
-to the Twig environment::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getTokenParsers()
-        {
-            return array(new Project_Set_TokenParser());
-        }
-
-        // ...
-    }
-
-In the above code, we have added a single new tag, defined by the
-``Project_Set_TokenParser`` class. The ``Project_Set_TokenParser`` class is
-responsible for parsing the tag and compiling it to PHP.
-
-Operators
-~~~~~~~~~
-
-The ``getOperators()`` methods lets you add new operators. Here is how to add
-``!``, ``||``, and ``&&`` operators::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getOperators()
-        {
-            return array(
-                array(
-                    '!' => array('precedence' => 50, 'class' => 'Twig_Node_Expression_Unary_Not'),
-                ),
-                array(
-                    '||' => array('precedence' => 10, 'class' => 'Twig_Node_Expression_Binary_Or', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                    '&&' => array('precedence' => 15, 'class' => 'Twig_Node_Expression_Binary_And', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                ),
-            );
-        }
-
-        // ...
-    }
-
-Tests
-~~~~~
-
-The ``getTests()`` method lets you add new test functions::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getTests()
-        {
-            return array(
-                new Twig_SimpleTest('even', 'twig_test_even'),
-            );
-        }
-
-        // ...
-    }
-
-Overloading
------------
-
-To overload an already defined filter, test, operator, global variable, or
-function, re-define it in an extension and register it **as late as
-possible** (order matters)::
-
-    class MyCoreExtension extends Twig_Extension
-    {
-        public function getFilters()
-        {
-            return array(
-                new Twig_SimpleFilter('date', array($this, 'dateFilter')),
-            );
-        }
-
-        public function dateFilter($timestamp, $format = 'F j, Y H:i')
-        {
-            // do something different from the built-in date filter
-        }
-
-        public function getName()
-        {
-            return 'project';
-        }
-    }
-
-    $twig = new Twig_Environment($loader);
-    $twig->addExtension(new MyCoreExtension());
-
-Here, we have overloaded the built-in ``date`` filter with a custom one.
-
-If you do the same on the Twig_Environment itself, beware that it takes
-precedence over any other registered extensions::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addFilter(new Twig_SimpleFilter('date', function ($timestamp, $format = 'F j, Y H:i') {
-        // do something different from the built-in date filter
-    }));
-    // the date filter will come from the above registration, not
-    // from the registered extension below
-    $twig->addExtension(new MyCoreExtension());
-
-.. caution::
-
-    Note that overloading the built-in Twig elements is not recommended as it
-    might be confusing.
-
-Testing an Extension
---------------------
-
-Functional Tests
-~~~~~~~~~~~~~~~~
-
-You can create functional tests for extensions simply by creating the
-following file structure in your test directory::
-
-    Fixtures/
-        filters/
-            foo.test
-            bar.test
-        functions/
-            foo.test
-            bar.test
-        tags/
-            foo.test
-            bar.test
-    IntegrationTest.php
-
-The ``IntegrationTest.php`` file should look like this::
-
-    class Project_Tests_IntegrationTest extends Twig_Test_IntegrationTestCase
-    {
-        public function getExtensions()
-        {
-            return array(
-                new Project_Twig_Extension1(),
-                new Project_Twig_Extension2(),
-            );
-        }
-
-        public function getFixturesDir()
-        {
-            return dirname(__FILE__).'/Fixtures/';
-        }
-    }
-
-Fixtures examples can be found within the Twig repository
-`tests/Twig/Fixtures`_ directory.
-
-Node Tests
-~~~~~~~~~~
-
-Testing the node visitors can be complex, so extend your test cases from
-``Twig_Test_NodeTestCase``. Examples can be found in the Twig repository
-`tests/Twig/Node`_ directory.
-
-.. _`spl_autoload_register()`: http://www.php.net/spl_autoload_register
-.. _`rot13`:                   http://www.php.net/manual/en/function.str-rot13.php
-.. _`tests/Twig/Fixtures`:     https://github.com/twigphp/Twig/tree/master/test/Twig/Tests/Fixtures
-.. _`tests/Twig/Node`:         https://github.com/twigphp/Twig/tree/master/test/Twig/Tests/Node
diff --git a/core/vendor/twig/twig/doc/advanced_legacy.rst b/core/vendor/twig/twig/doc/advanced_legacy.rst
deleted file mode 100644
index 2ef6bfd..0000000
--- a/core/vendor/twig/twig/doc/advanced_legacy.rst
+++ /dev/null
@@ -1,887 +0,0 @@
-Extending Twig
-==============
-
-.. caution::
-
-    This section describes how to extends Twig for versions **older than
-    1.12**. If you are using a newer version, read the :doc:`newer<advanced>`
-    chapter instead.
-
-Twig can be extended in many ways; you can add extra tags, filters, tests,
-operators, global variables, and functions. You can even extend the parser
-itself with node visitors.
-
-.. note::
-
-    The first section of this chapter describes how to extend Twig easily. If
-    you want to reuse your changes in different projects or if you want to
-    share them with others, you should then create an extension as described
-    in the following section.
-
-.. caution::
-
-    When extending Twig by calling methods on the Twig environment instance,
-    Twig won't be able to recompile your templates when the PHP code is
-    updated. To see your changes in real-time, either disable template caching
-    or package your code into an extension (see the next section of this
-    chapter).
-
-Before extending Twig, you must understand the differences between all the
-different possible extension points and when to use them.
-
-First, remember that Twig has two main language constructs:
-
-* ``{{ }}``: used to print the result of an expression evaluation;
-
-* ``{% %}``: used to execute statements.
-
-To understand why Twig exposes so many extension points, let's see how to
-implement a *Lorem ipsum* generator (it needs to know the number of words to
-generate).
-
-You can use a ``lipsum`` *tag*:
-
-.. code-block:: jinja
-
-    {% lipsum 40 %}
-
-That works, but using a tag for ``lipsum`` is not a good idea for at least
-three main reasons:
-
-* ``lipsum`` is not a language construct;
-* The tag outputs something;
-* The tag is not flexible as you cannot use it in an expression:
-
-  .. code-block:: jinja
-
-      {{ 'some text' ~ {% lipsum 40 %} ~ 'some more text' }}
-
-In fact, you rarely need to create tags; and that's good news because tags are
-the most complex extension point of Twig.
-
-Now, let's use a ``lipsum`` *filter*:
-
-.. code-block:: jinja
-
-    {{ 40|lipsum }}
-
-Again, it works, but it looks weird. A filter transforms the passed value to
-something else but here we use the value to indicate the number of words to
-generate (so, ``40`` is an argument of the filter, not the value we want to
-transform).
-
-Next, let's use a ``lipsum`` *function*:
-
-.. code-block:: jinja
-
-    {{ lipsum(40) }}
-
-Here we go. For this specific example, the creation of a function is the
-extension point to use. And you can use it anywhere an expression is accepted:
-
-.. code-block:: jinja
-
-    {{ 'some text' ~ ipsum(40) ~ 'some more text' }}
-
-    {% set ipsum = ipsum(40) %}
-
-Last but not the least, you can also use a *global* object with a method able
-to generate lorem ipsum text:
-
-.. code-block:: jinja
-
-    {{ text.lipsum(40) }}
-
-As a rule of thumb, use functions for frequently used features and global
-objects for everything else.
-
-Keep in mind the following when you want to extend Twig:
-
-========== ========================== ========== =========================
-What?      Implementation difficulty? How often? When?
-========== ========================== ========== =========================
-*macro*    trivial                    frequent   Content generation
-*global*   trivial                    frequent   Helper object
-*function* trivial                    frequent   Content generation
-*filter*   trivial                    frequent   Value transformation
-*tag*      complex                    rare       DSL language construct
-*test*     trivial                    rare       Boolean decision
-*operator* trivial                    rare       Values transformation
-========== ========================== ========== =========================
-
-Globals
--------
-
-A global variable is like any other template variable, except that it's
-available in all templates and macros::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addGlobal('text', new Text());
-
-You can then use the ``text`` variable anywhere in a template:
-
-.. code-block:: jinja
-
-    {{ text.lipsum(40) }}
-
-Filters
--------
-
-A filter is a regular PHP function or an object method that takes the left
-side of the filter (before the pipe ``|``) as first argument and the extra
-arguments passed to the filter (within parentheses ``()``) as extra arguments.
-
-Defining a filter is as easy as associating the filter name with a PHP
-callable. For instance, let's say you have the following code in a template:
-
-.. code-block:: jinja
-
-    {{ 'TWIG'|lower }}
-
-When compiling this template to PHP, Twig looks for the PHP callable
-associated with the ``lower`` filter. The ``lower`` filter is a built-in Twig
-filter, and it is simply mapped to the PHP ``strtolower()`` function. After
-compilation, the generated PHP code is roughly equivalent to:
-
-.. code-block:: html+php
-
-    <?php echo strtolower('TWIG') ?>
-
-As you can see, the ``'TWIG'`` string is passed as a first argument to the PHP
-function.
-
-A filter can also take extra arguments like in the following example:
-
-.. code-block:: jinja
-
-    {{ now|date('d/m/Y') }}
-
-In this case, the extra arguments are passed to the function after the main
-argument, and the compiled code is equivalent to:
-
-.. code-block:: html+php
-
-    <?php echo twig_date_format_filter($now, 'd/m/Y') ?>
-
-Let's see how to create a new filter.
-
-In this section, we will create a ``rot13`` filter, which should return the
-`rot13`_ transformation of a string. Here is an example of its usage and the
-expected output:
-
-.. code-block:: jinja
-
-    {{ "Twig"|rot13 }}
-
-    {# should displays Gjvt #}
-
-Adding a filter is as simple as calling the ``addFilter()`` method on the
-``Twig_Environment`` instance::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addFilter('rot13', new Twig_Filter_Function('str_rot13'));
-
-The second argument of ``addFilter()`` is an instance of ``Twig_Filter``.
-Here, we use ``Twig_Filter_Function`` as the filter is a PHP function. The
-first argument passed to the ``Twig_Filter_Function`` constructor is the name
-of the PHP function to call, here ``str_rot13``, a native PHP function.
-
-Let's say I now want to be able to add a prefix before the converted string:
-
-.. code-block:: jinja
-
-    {{ "Twig"|rot13('prefix_') }}
-
-    {# should displays prefix_Gjvt #}
-
-As the PHP ``str_rot13()`` function does not support this requirement, let's
-create a new PHP function::
-
-    function project_compute_rot13($string, $prefix = '')
-    {
-        return $prefix.str_rot13($string);
-    }
-
-As you can see, the ``prefix`` argument of the filter is passed as an extra
-argument to the ``project_compute_rot13()`` function.
-
-Adding this filter is as easy as before::
-
-    $twig->addFilter('rot13', new Twig_Filter_Function('project_compute_rot13'));
-
-For better encapsulation, a filter can also be defined as a static method of a
-class. The ``Twig_Filter_Function`` class can also be used to register such
-static methods as filters::
-
-    $twig->addFilter('rot13', new Twig_Filter_Function('SomeClass::rot13Filter'));
-
-.. tip::
-
-    In an extension, you can also define a filter as a static method of the
-    extension class.
-
-Environment aware Filters
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ``Twig_Filter`` classes take options as their last argument. For instance,
-if you want access to the current environment instance in your filter, set the
-``needs_environment`` option to ``true``::
-
-    $filter = new Twig_Filter_Function('str_rot13', array('needs_environment' => true));
-
-Twig will then pass the current environment as the first argument to the
-filter call::
-
-    function twig_compute_rot13(Twig_Environment $env, $string)
-    {
-        // get the current charset for instance
-        $charset = $env->getCharset();
-
-        return str_rot13($string);
-    }
-
-Automatic Escaping
-~~~~~~~~~~~~~~~~~~
-
-If automatic escaping is enabled, the output of the filter may be escaped
-before printing. If your filter acts as an escaper (or explicitly outputs HTML
-or JavaScript code), you will want the raw output to be printed. In such a
-case, set the ``is_safe`` option::
-
-    $filter = new Twig_Filter_Function('nl2br', array('is_safe' => array('html')));
-
-Some filters may need to work on input that is already escaped or safe, for
-example when adding (safe) HTML tags to originally unsafe output. In such a
-case, set the ``pre_escape`` option to escape the input data before it is run
-through your filter::
-
-    $filter = new Twig_Filter_Function('somefilter', array('pre_escape' => 'html', 'is_safe' => array('html')));
-
-Dynamic Filters
-~~~~~~~~~~~~~~~
-
-.. versionadded:: 1.5
-    Dynamic filters support was added in Twig 1.5.
-
-A filter name containing the special ``*`` character is a dynamic filter as
-the ``*`` can be any string::
-
-    $twig->addFilter('*_path_*', new Twig_Filter_Function('twig_path'));
-
-    function twig_path($name, $arguments)
-    {
-        // ...
-    }
-
-The following filters will be matched by the above defined dynamic filter:
-
-* ``product_path``
-* ``category_path``
-
-A dynamic filter can define more than one dynamic parts::
-
-    $twig->addFilter('*_path_*', new Twig_Filter_Function('twig_path'));
-
-    function twig_path($name, $suffix, $arguments)
-    {
-        // ...
-    }
-
-The filter will receive all dynamic part values before the normal filters
-arguments. For instance, a call to ``'foo'|a_path_b()`` will result in the
-following PHP call: ``twig_path('a', 'b', 'foo')``.
-
-Functions
----------
-
-A function is a regular PHP function or an object method that can be called from
-templates.
-
-.. code-block:: jinja
-
-    {{ constant("DATE_W3C") }}
-
-When compiling this template to PHP, Twig looks for the PHP callable
-associated with the ``constant`` function. The ``constant`` function is a built-in Twig
-function, and it is simply mapped to the PHP ``constant()`` function. After
-compilation, the generated PHP code is roughly equivalent to:
-
-.. code-block:: html+php
-
-    <?php echo constant('DATE_W3C') ?>
-
-Adding a function is similar to adding a filter. This can be done by calling the
-``addFunction()`` method on the ``Twig_Environment`` instance::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addFunction('functionName', new Twig_Function_Function('someFunction'));
-
-You can also expose extension methods as functions in your templates::
-
-    // $this is an object that implements Twig_ExtensionInterface.
-    $twig = new Twig_Environment($loader);
-    $twig->addFunction('otherFunction', new Twig_Function_Method($this, 'someMethod'));
-
-Functions also support ``needs_environment`` and ``is_safe`` parameters.
-
-Dynamic Functions
-~~~~~~~~~~~~~~~~~
-
-.. versionadded:: 1.5
-    Dynamic functions support was added in Twig 1.5.
-
-A function name containing the special ``*`` character is a dynamic function
-as the ``*`` can be any string::
-
-    $twig->addFunction('*_path', new Twig_Function_Function('twig_path'));
-
-    function twig_path($name, $arguments)
-    {
-        // ...
-    }
-
-The following functions will be matched by the above defined dynamic function:
-
-* ``product_path``
-* ``category_path``
-
-A dynamic function can define more than one dynamic parts::
-
-    $twig->addFilter('*_path_*', new Twig_Filter_Function('twig_path'));
-
-    function twig_path($name, $suffix, $arguments)
-    {
-        // ...
-    }
-
-The function will receive all dynamic part values before the normal functions
-arguments. For instance, a call to ``a_path_b('foo')`` will result in the
-following PHP call: ``twig_path('a', 'b', 'foo')``.
-
-Tags
-----
-
-One of the most exciting feature of a template engine like Twig is the
-possibility to define new language constructs. This is also the most complex
-feature as you need to understand how Twig's internals work.
-
-Let's create a simple ``set`` tag that allows the definition of simple
-variables from within a template. The tag can be used like follows:
-
-.. code-block:: jinja
-
-    {% set name = "value" %}
-
-    {{ name }}
-
-    {# should output value #}
-
-.. note::
-
-    The ``set`` tag is part of the Core extension and as such is always
-    available. The built-in version is slightly more powerful and supports
-    multiple assignments by default (cf. the template designers chapter for
-    more information).
-
-Three steps are needed to define a new tag:
-
-* Defining a Token Parser class (responsible for parsing the template code);
-
-* Defining a Node class (responsible for converting the parsed code to PHP);
-
-* Registering the tag.
-
-Registering a new tag
-~~~~~~~~~~~~~~~~~~~~~
-
-Adding a tag is as simple as calling the ``addTokenParser`` method on the
-``Twig_Environment`` instance::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addTokenParser(new Project_Set_TokenParser());
-
-Defining a Token Parser
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Now, let's see the actual code of this class::
-
-    class Project_Set_TokenParser extends Twig_TokenParser
-    {
-        public function parse(Twig_Token $token)
-        {
-            $lineno = $token->getLine();
-            $name = $this->parser->getStream()->expect(Twig_Token::NAME_TYPE)->getValue();
-            $this->parser->getStream()->expect(Twig_Token::OPERATOR_TYPE, '=');
-            $value = $this->parser->getExpressionParser()->parseExpression();
-
-            $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-            return new Project_Set_Node($name, $value, $lineno, $this->getTag());
-        }
-
-        public function getTag()
-        {
-            return 'set';
-        }
-    }
-
-The ``getTag()`` method must return the tag we want to parse, here ``set``.
-
-The ``parse()`` method is invoked whenever the parser encounters a ``set``
-tag. It should return a ``Twig_Node`` instance that represents the node (the
-``Project_Set_Node`` calls creating is explained in the next section).
-
-The parsing process is simplified thanks to a bunch of methods you can call
-from the token stream (``$this->parser->getStream()``):
-
-* ``getCurrent()``: Gets the current token in the stream.
-
-* ``next()``: Moves to the next token in the stream, *but returns the old one*.
-
-* ``test($type)``, ``test($value)`` or ``test($type, $value)``: Determines whether
-  the current token is of a particular type or value (or both). The value may be an
-  array of several possible values.
-
-* ``expect($type[, $value[, $message]])``: If the current token isn't of the given
-  type/value a syntax error is thrown. Otherwise, if the type and value are correct,
-  the token is returned and the stream moves to the next token.
-
-* ``look()``: Looks a the next token without consuming it.
-
-Parsing expressions is done by calling the ``parseExpression()`` like we did for
-the ``set`` tag.
-
-.. tip::
-
-    Reading the existing ``TokenParser`` classes is the best way to learn all
-    the nitty-gritty details of the parsing process.
-
-Defining a Node
-~~~~~~~~~~~~~~~
-
-The ``Project_Set_Node`` class itself is rather simple::
-
-    class Project_Set_Node extends Twig_Node
-    {
-        public function __construct($name, Twig_Node_Expression $value, $lineno, $tag = null)
-        {
-            parent::__construct(array('value' => $value), array('name' => $name), $lineno, $tag);
-        }
-
-        public function compile(Twig_Compiler $compiler)
-        {
-            $compiler
-                ->addDebugInfo($this)
-                ->write('$context[\''.$this->getAttribute('name').'\'] = ')
-                ->subcompile($this->getNode('value'))
-                ->raw(";\n")
-            ;
-        }
-    }
-
-The compiler implements a fluid interface and provides methods that helps the
-developer generate beautiful and readable PHP code:
-
-* ``subcompile()``: Compiles a node.
-
-* ``raw()``: Writes the given string as is.
-
-* ``write()``: Writes the given string by adding indentation at the beginning
-  of each line.
-
-* ``string()``: Writes a quoted string.
-
-* ``repr()``: Writes a PHP representation of a given value (see
-  ``Twig_Node_For`` for a usage example).
-
-* ``addDebugInfo()``: Adds the line of the original template file related to
-  the current node as a comment.
-
-* ``indent()``: Indents the generated code (see ``Twig_Node_Block`` for a
-  usage example).
-
-* ``outdent()``: Outdents the generated code (see ``Twig_Node_Block`` for a
-  usage example).
-
-.. _creating_extensions:
-
-Creating an Extension
----------------------
-
-The main motivation for writing an extension is to move often used code into a
-reusable class like adding support for internationalization. An extension can
-define tags, filters, tests, operators, global variables, functions, and node
-visitors.
-
-Creating an extension also makes for a better separation of code that is
-executed at compilation time and code needed at runtime. As such, it makes
-your code faster.
-
-Most of the time, it is useful to create a single extension for your project,
-to host all the specific tags and filters you want to add to Twig.
-
-.. tip::
-
-    When packaging your code into an extension, Twig is smart enough to
-    recompile your templates whenever you make a change to it (when the
-    ``auto_reload`` is enabled).
-
-.. note::
-
-    Before writing your own extensions, have a look at the Twig official
-    extension repository: http://github.com/twigphp/Twig-extensions.
-
-An extension is a class that implements the following interface::
-
-    interface Twig_ExtensionInterface
-    {
-        /**
-         * Initializes the runtime environment.
-         *
-         * This is where you can load some file that contains filter functions for instance.
-         *
-         * @param Twig_Environment $environment The current Twig_Environment instance
-         */
-        function initRuntime(Twig_Environment $environment);
-
-        /**
-         * Returns the token parser instances to add to the existing list.
-         *
-         * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
-         */
-        function getTokenParsers();
-
-        /**
-         * Returns the node visitor instances to add to the existing list.
-         *
-         * @return array An array of Twig_NodeVisitorInterface instances
-         */
-        function getNodeVisitors();
-
-        /**
-         * Returns a list of filters to add to the existing list.
-         *
-         * @return array An array of filters
-         */
-        function getFilters();
-
-        /**
-         * Returns a list of tests to add to the existing list.
-         *
-         * @return array An array of tests
-         */
-        function getTests();
-
-        /**
-         * Returns a list of functions to add to the existing list.
-         *
-         * @return array An array of functions
-         */
-        function getFunctions();
-
-        /**
-         * Returns a list of operators to add to the existing list.
-         *
-         * @return array An array of operators
-         */
-        function getOperators();
-
-        /**
-         * Returns a list of global variables to add to the existing list.
-         *
-         * @return array An array of global variables
-         */
-        function getGlobals();
-
-        /**
-         * Returns the name of the extension.
-         *
-         * @return string The extension name
-         */
-        function getName();
-    }
-
-To keep your extension class clean and lean, it can inherit from the built-in
-``Twig_Extension`` class instead of implementing the whole interface. That
-way, you just need to implement the ``getName()`` method as the
-``Twig_Extension`` provides empty implementations for all other methods.
-
-The ``getName()`` method must return a unique identifier for your extension.
-
-Now, with this information in mind, let's create the most basic extension
-possible::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getName()
-        {
-            return 'project';
-        }
-    }
-
-.. note::
-
-    Of course, this extension does nothing for now. We will customize it in
-    the next sections.
-
-Twig does not care where you save your extension on the filesystem, as all
-extensions must be registered explicitly to be available in your templates.
-
-You can register an extension by using the ``addExtension()`` method on your
-main ``Environment`` object::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addExtension(new Project_Twig_Extension());
-
-Of course, you need to first load the extension file by either using
-``require_once()`` or by using an autoloader (see `spl_autoload_register()`_).
-
-.. tip::
-
-    The bundled extensions are great examples of how extensions work.
-
-Globals
-~~~~~~~
-
-Global variables can be registered in an extension via the ``getGlobals()``
-method::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getGlobals()
-        {
-            return array(
-                'text' => new Text(),
-            );
-        }
-
-        // ...
-    }
-
-Functions
-~~~~~~~~~
-
-Functions can be registered in an extension via the ``getFunctions()``
-method::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getFunctions()
-        {
-            return array(
-                'lipsum' => new Twig_Function_Function('generate_lipsum'),
-            );
-        }
-
-        // ...
-    }
-
-Filters
-~~~~~~~
-
-To add a filter to an extension, you need to override the ``getFilters()``
-method. This method must return an array of filters to add to the Twig
-environment::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getFilters()
-        {
-            return array(
-                'rot13' => new Twig_Filter_Function('str_rot13'),
-            );
-        }
-
-        // ...
-    }
-
-As you can see in the above code, the ``getFilters()`` method returns an array
-where keys are the name of the filters (``rot13``) and the values the
-definition of the filter (``new Twig_Filter_Function('str_rot13')``).
-
-As seen in the previous chapter, you can also define filters as static methods
-on the extension class::
-
-$twig->addFilter('rot13', new Twig_Filter_Function('Project_Twig_Extension::rot13Filter'));
-
-You can also use ``Twig_Filter_Method`` instead of ``Twig_Filter_Function``
-when defining a filter to use a method::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getFilters()
-        {
-            return array(
-                'rot13' => new Twig_Filter_Method($this, 'rot13Filter'),
-            );
-        }
-
-        public function rot13Filter($string)
-        {
-            return str_rot13($string);
-        }
-
-        // ...
-    }
-
-The first argument of the ``Twig_Filter_Method`` constructor is always
-``$this``, the current extension object. The second one is the name of the
-method to call.
-
-Using methods for filters is a great way to package your filter without
-polluting the global namespace. This also gives the developer more flexibility
-at the cost of a small overhead.
-
-Overriding default Filters
-..........................
-
-If some default core filters do not suit your needs, you can easily override
-them by creating your own extension. Just use the same names as the one you
-want to override::
-
-    class MyCoreExtension extends Twig_Extension
-    {
-        public function getFilters()
-        {
-            return array(
-                'date' => new Twig_Filter_Method($this, 'dateFilter'),
-                // ...
-            );
-        }
-
-        public function dateFilter($timestamp, $format = 'F j, Y H:i')
-        {
-            return '...'.twig_date_format_filter($timestamp, $format);
-        }
-
-        public function getName()
-        {
-            return 'project';
-        }
-    }
-
-Here, we override the ``date`` filter with a custom one. Using this extension
-is as simple as registering the ``MyCoreExtension`` extension by calling the
-``addExtension()`` method on the environment instance::
-
-    $twig = new Twig_Environment($loader);
-    $twig->addExtension(new MyCoreExtension());
-
-Tags
-~~~~
-
-Adding a tag in an extension can be done by overriding the
-``getTokenParsers()`` method. This method must return an array of tags to add
-to the Twig environment::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getTokenParsers()
-        {
-            return array(new Project_Set_TokenParser());
-        }
-
-        // ...
-    }
-
-In the above code, we have added a single new tag, defined by the
-``Project_Set_TokenParser`` class. The ``Project_Set_TokenParser`` class is
-responsible for parsing the tag and compiling it to PHP.
-
-Operators
-~~~~~~~~~
-
-The ``getOperators()`` methods allows to add new operators. Here is how to add
-``!``, ``||``, and ``&&`` operators::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getOperators()
-        {
-            return array(
-                array(
-                    '!' => array('precedence' => 50, 'class' => 'Twig_Node_Expression_Unary_Not'),
-                ),
-                array(
-                    '||' => array('precedence' => 10, 'class' => 'Twig_Node_Expression_Binary_Or', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                    '&&' => array('precedence' => 15, 'class' => 'Twig_Node_Expression_Binary_And', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                ),
-            );
-        }
-
-        // ...
-    }
-
-Tests
-~~~~~
-
-The ``getTests()`` methods allows to add new test functions::
-
-    class Project_Twig_Extension extends Twig_Extension
-    {
-        public function getTests()
-        {
-            return array(
-                'even' => new Twig_Test_Function('twig_test_even'),
-            );
-        }
-
-        // ...
-    }
-
-Testing an Extension
---------------------
-
-.. versionadded:: 1.10
-    Support for functional tests was added in Twig 1.10.
-
-Functional Tests
-~~~~~~~~~~~~~~~~
-
-You can create functional tests for extensions simply by creating the
-following file structure in your test directory::
-
-    Fixtures/
-        filters/
-            foo.test
-            bar.test
-        functions/
-            foo.test
-            bar.test
-        tags/
-            foo.test
-            bar.test
-    IntegrationTest.php
-
-The ``IntegrationTest.php`` file should look like this::
-
-    class Project_Tests_IntegrationTest extends Twig_Test_IntegrationTestCase
-    {
-        public function getExtensions()
-        {
-            return array(
-                new Project_Twig_Extension1(),
-                new Project_Twig_Extension2(),
-            );
-        }
-
-        public function getFixturesDir()
-        {
-            return dirname(__FILE__).'/Fixtures/';
-        }
-    }
-
-Fixtures examples can be found within the Twig repository
-`tests/Twig/Fixtures`_ directory.
-
-Node Tests
-~~~~~~~~~~
-
-Testing the node visitors can be complex, so extend your test cases from
-``Twig_Test_NodeTestCase``. Examples can be found in the Twig repository
-`tests/Twig/Node`_ directory.
-
-.. _`spl_autoload_register()`: http://www.php.net/spl_autoload_register
-.. _`rot13`:                   http://www.php.net/manual/en/function.str-rot13.php
-.. _`tests/Twig/Fixtures`:     https://github.com/twigphp/Twig/tree/master/test/Twig/Tests/Fixtures
-.. _`tests/Twig/Node`:         https://github.com/twigphp/Twig/tree/master/test/Twig/Tests/Node
diff --git a/core/vendor/twig/twig/doc/api.rst b/core/vendor/twig/twig/doc/api.rst
deleted file mode 100644
index f367db0..0000000
--- a/core/vendor/twig/twig/doc/api.rst
+++ /dev/null
@@ -1,552 +0,0 @@
-Twig for Developers
-===================
-
-This chapter describes the API to Twig and not the template language. It will
-be most useful as reference to those implementing the template interface to
-the application and not those who are creating Twig templates.
-
-Basics
-------
-
-Twig uses a central object called the **environment** (of class
-``Twig_Environment``). Instances of this class are used to store the
-configuration and extensions, and are used to load templates from the file
-system or other locations.
-
-Most applications will create one ``Twig_Environment`` object on application
-initialization and use that to load templates. In some cases it's however
-useful to have multiple environments side by side, if different configurations
-are in use.
-
-The simplest way to configure Twig to load templates for your application
-looks roughly like this::
-
-    require_once '/path/to/lib/Twig/Autoloader.php';
-    Twig_Autoloader::register();
-
-    $loader = new Twig_Loader_Filesystem('/path/to/templates');
-    $twig = new Twig_Environment($loader, array(
-        'cache' => '/path/to/compilation_cache',
-    ));
-
-This will create a template environment with the default settings and a loader
-that looks up the templates in the ``/path/to/templates/`` folder. Different
-loaders are available and you can also write your own if you want to load
-templates from a database or other resources.
-
-.. note::
-
-    Notice that the second argument of the environment is an array of options.
-    The ``cache`` option is a compilation cache directory, where Twig caches
-    the compiled templates to avoid the parsing phase for sub-sequent
-    requests. It is very different from the cache you might want to add for
-    the evaluated templates. For such a need, you can use any available PHP
-    cache library.
-
-To load a template from this environment you just have to call the
-``loadTemplate()`` method which then returns a ``Twig_Template`` instance::
-
-    $template = $twig->loadTemplate('index.html');
-
-To render the template with some variables, call the ``render()`` method::
-
-    echo $template->render(array('the' => 'variables', 'go' => 'here'));
-
-.. note::
-
-    The ``display()`` method is a shortcut to output the template directly.
-
-You can also load and render the template in one fell swoop::
-
-    echo $twig->render('index.html', array('the' => 'variables', 'go' => 'here'));
-
-.. _environment_options:
-
-Environment Options
--------------------
-
-When creating a new ``Twig_Environment`` instance, you can pass an array of
-options as the constructor second argument::
-
-    $twig = new Twig_Environment($loader, array('debug' => true));
-
-The following options are available:
-
-* ``debug`` *boolean*
-
-  When set to ``true``, the generated templates have a
-  ``__toString()`` method that you can use to display the generated nodes
-  (default to ``false``).
-
-* ``charset`` *string (default to ``utf-8``)*
-
-  The charset used by the templates.
-
-* ``base_template_class`` *string (default to ``Twig_Template``)*
-
-  The base template class to use for generated
-  templates.
-
-* ``cache`` *string|false*
-
-  An absolute path where to store the compiled templates, or
-  ``false`` to disable caching (which is the default).
-
-* ``auto_reload`` *boolean*
-
-  When developing with Twig, it's useful to recompile the
-  template whenever the source code changes. If you don't provide a value for
-  the ``auto_reload`` option, it will be determined automatically based on the
-  ``debug`` value.
-
-* ``strict_variables`` *boolean*
-
-  If set to ``false``, Twig will silently ignore invalid
-  variables (variables and or attributes/methods that do not exist) and
-  replace them with a ``null`` value. When set to ``true``, Twig throws an
-  exception instead (default to ``false``).
-
-* ``autoescape`` *string|boolean*
-
-  If set to ``true``, HTML auto-escaping will be enabled by
-  default for all templates (default to ``true``).
-
-  As of Twig 1.8, you can set the escaping strategy to use (``html``, ``js``,
-  ``false`` to disable).
-
-  As of Twig 1.9, you can set the escaping strategy to use (``css``, ``url``,
-  ``html_attr``, or a PHP callback that takes the template "filename" and must
-  return the escaping strategy to use -- the callback cannot be a function name
-  to avoid collision with built-in escaping strategies).
-
-  As of Twig 1.17, the ``filename`` escaping strategy determines the escaping
-  strategy to use for a template based on the template filename extension (this
-  strategy does not incur any overhead at runtime as auto-escaping is done at
-  compilation time.)
-
-* ``optimizations`` *integer*
-
-  A flag that indicates which optimizations to apply
-  (default to ``-1`` -- all optimizations are enabled; set it to ``0`` to
-  disable).
-
-Loaders
--------
-
-Loaders are responsible for loading templates from a resource such as the file
-system.
-
-Compilation Cache
-~~~~~~~~~~~~~~~~~
-
-All template loaders can cache the compiled templates on the filesystem for
-future reuse. It speeds up Twig a lot as templates are only compiled once; and
-the performance boost is even larger if you use a PHP accelerator such as APC.
-See the ``cache`` and ``auto_reload`` options of ``Twig_Environment`` above
-for more information.
-
-Built-in Loaders
-~~~~~~~~~~~~~~~~
-
-Here is a list of the built-in loaders Twig provides:
-
-``Twig_Loader_Filesystem``
-..........................
-
-.. versionadded:: 1.10
-    The ``prependPath()`` and support for namespaces were added in Twig 1.10.
-
-``Twig_Loader_Filesystem`` loads templates from the file system. This loader
-can find templates in folders on the file system and is the preferred way to
-load them::
-
-    $loader = new Twig_Loader_Filesystem($templateDir);
-
-It can also look for templates in an array of directories::
-
-    $loader = new Twig_Loader_Filesystem(array($templateDir1, $templateDir2));
-
-With such a configuration, Twig will first look for templates in
-``$templateDir1`` and if they do not exist, it will fallback to look for them
-in the ``$templateDir2``.
-
-You can add or prepend paths via the ``addPath()`` and ``prependPath()``
-methods::
-
-    $loader->addPath($templateDir3);
-    $loader->prependPath($templateDir4);
-
-The filesystem loader also supports namespaced templates. This allows to group
-your templates under different namespaces which have their own template paths.
-
-When using the ``setPaths()``, ``addPath()``, and ``prependPath()`` methods,
-specify the namespace as the second argument (when not specified, these
-methods act on the "main" namespace)::
-
-    $loader->addPath($templateDir, 'admin');
-
-Namespaced templates can be accessed via the special
-``@namespace_name/template_path`` notation::
-
-    $twig->render('@admin/index.html', array());
-
-``Twig_Loader_Array``
-.....................
-
-``Twig_Loader_Array`` loads a template from a PHP array. It's passed an array
-of strings bound to template names::
-
-    $loader = new Twig_Loader_Array(array(
-        'index.html' => 'Hello {{ name }}!',
-    ));
-    $twig = new Twig_Environment($loader);
-
-    echo $twig->render('index.html', array('name' => 'Fabien'));
-
-This loader is very useful for unit testing. It can also be used for small
-projects where storing all templates in a single PHP file might make sense.
-
-.. tip::
-
-    When using the ``Array`` or ``String`` loaders with a cache mechanism, you
-    should know that a new cache key is generated each time a template content
-    "changes" (the cache key being the source code of the template). If you
-    don't want to see your cache grows out of control, you need to take care
-    of clearing the old cache file by yourself.
-
-``Twig_Loader_Chain``
-.....................
-
-``Twig_Loader_Chain`` delegates the loading of templates to other loaders::
-
-    $loader1 = new Twig_Loader_Array(array(
-        'base.html' => '{% block content %}{% endblock %}',
-    ));
-    $loader2 = new Twig_Loader_Array(array(
-        'index.html' => '{% extends "base.html" %}{% block content %}Hello {{ name }}{% endblock %}',
-        'base.html'  => 'Will never be loaded',
-    ));
-
-    $loader = new Twig_Loader_Chain(array($loader1, $loader2));
-
-    $twig = new Twig_Environment($loader);
-
-When looking for a template, Twig will try each loader in turn and it will
-return as soon as the template is found. When rendering the ``index.html``
-template from the above example, Twig will load it with ``$loader2`` but the
-``base.html`` template will be loaded from ``$loader1``.
-
-``Twig_Loader_Chain`` accepts any loader that implements
-``Twig_LoaderInterface``.
-
-.. note::
-
-    You can also add loaders via the ``addLoader()`` method.
-
-Create your own Loader
-~~~~~~~~~~~~~~~~~~~~~~
-
-All loaders implement the ``Twig_LoaderInterface``::
-
-    interface Twig_LoaderInterface
-    {
-        /**
-         * Gets the source code of a template, given its name.
-         *
-         * @param  string $name string The name of the template to load
-         *
-         * @return string The template source code
-         */
-        function getSource($name);
-
-        /**
-         * Gets the cache key to use for the cache for a given template name.
-         *
-         * @param  string $name string The name of the template to load
-         *
-         * @return string The cache key
-         */
-        function getCacheKey($name);
-
-        /**
-         * Returns true if the template is still fresh.
-         *
-         * @param string    $name The template name
-         * @param timestamp $time The last modification time of the cached template
-         */
-        function isFresh($name, $time);
-    }
-
-The ``isFresh()`` method must return ``true`` if the current cached template
-is still fresh, given the last modification time, or ``false`` otherwise.
-
-.. tip::
-
-    As of Twig 1.11.0, you can also implement ``Twig_ExistsLoaderInterface``
-    to make your loader faster when used with the chain loader.
-
-Using Extensions
-----------------
-
-Twig extensions are packages that add new features to Twig. Using an
-extension is as simple as using the ``addExtension()`` method::
-
-    $twig->addExtension(new Twig_Extension_Sandbox());
-
-Twig comes bundled with the following extensions:
-
-* *Twig_Extension_Core*: Defines all the core features of Twig.
-
-* *Twig_Extension_Escaper*: Adds automatic output-escaping and the possibility
-  to escape/unescape blocks of code.
-
-* *Twig_Extension_Sandbox*: Adds a sandbox mode to the default Twig
-  environment, making it safe to evaluate untrusted code.
-
-* *Twig_Extension_Profiler*: Enabled the built-in Twig profiler (as of Twig
-  1.18).
-
-* *Twig_Extension_Optimizer*: Optimizes the node tree before compilation.
-
-The core, escaper, and optimizer extensions do not need to be added to the
-Twig environment, as they are registered by default.
-
-Built-in Extensions
--------------------
-
-This section describes the features added by the built-in extensions.
-
-.. tip::
-
-    Read the chapter about extending Twig to learn how to create your own
-    extensions.
-
-Core Extension
-~~~~~~~~~~~~~~
-
-The ``core`` extension defines all the core features of Twig:
-
-* :doc:`Tags <tags/index>`;
-* :doc:`Filters <filters/index>`;
-* :doc:`Functions <functions/index>`;
-* :doc:`Tests <tests/index>`.
-
-Escaper Extension
-~~~~~~~~~~~~~~~~~
-
-The ``escaper`` extension adds automatic output escaping to Twig. It defines a
-tag, ``autoescape``, and a filter, ``raw``.
-
-When creating the escaper extension, you can switch on or off the global
-output escaping strategy::
-
-    $escaper = new Twig_Extension_Escaper('html');
-    $twig->addExtension($escaper);
-
-If set to ``html``, all variables in templates are escaped (using the ``html``
-escaping strategy), except those using the ``raw`` filter:
-
-.. code-block:: jinja
-
-    {{ article.to_html|raw }}
-
-You can also change the escaping mode locally by using the ``autoescape`` tag
-(see the :doc:`autoescape<tags/autoescape>` doc for the syntax used before
-Twig 1.8):
-
-.. code-block:: jinja
-
-    {% autoescape 'html' %}
-        {{ var }}
-        {{ var|raw }}      {# var won't be escaped #}
-        {{ var|escape }}   {# var won't be double-escaped #}
-    {% endautoescape %}
-
-.. warning::
-
-    The ``autoescape`` tag has no effect on included files.
-
-The escaping rules are implemented as follows:
-
-* Literals (integers, booleans, arrays, ...) used in the template directly as
-  variables or filter arguments are never automatically escaped:
-
-  .. code-block:: jinja
-
-        {{ "Twig<br />" }} {# won't be escaped #}
-
-        {% set text = "Twig<br />" %}
-        {{ text }} {# will be escaped #}
-
-* Expressions which the result is always a literal or a variable marked safe
-  are never automatically escaped:
-
-  .. code-block:: jinja
-
-        {{ foo ? "Twig<br />" : "<br />Twig" }} {# won't be escaped #}
-
-        {% set text = "Twig<br />" %}
-        {{ foo ? text : "<br />Twig" }} {# will be escaped #}
-
-        {% set text = "Twig<br />" %}
-        {{ foo ? text|raw : "<br />Twig" }} {# won't be escaped #}
-
-        {% set text = "Twig<br />" %}
-        {{ foo ? text|escape : "<br />Twig" }} {# the result of the expression won't be escaped #}
-
-* Escaping is applied before printing, after any other filter is applied:
-
-  .. code-block:: jinja
-
-        {{ var|upper }} {# is equivalent to {{ var|upper|escape }} #}
-
-* The `raw` filter should only be used at the end of the filter chain:
-
-  .. code-block:: jinja
-
-        {{ var|raw|upper }} {# will be escaped #}
-
-        {{ var|upper|raw }} {# won't be escaped #}
-
-* Automatic escaping is not applied if the last filter in the chain is marked
-  safe for the current context (e.g. ``html`` or ``js``). ``escape`` and
-  ``escape('html')`` are marked safe for HTML, ``escape('js')`` is marked
-  safe for JavaScript, ``raw`` is marked safe for everything.
-
-  .. code-block:: jinja
-
-        {% autoescape 'js' %}
-            {{ var|escape('html') }} {# will be escaped for HTML and JavaScript #}
-            {{ var }} {# will be escaped for JavaScript #}
-            {{ var|escape('js') }} {# won't be double-escaped #}
-        {% endautoescape %}
-
-.. note::
-
-    Note that autoescaping has some limitations as escaping is applied on
-    expressions after evaluation. For instance, when working with
-    concatenation, ``{{ foo|raw ~ bar }}`` won't give the expected result as
-    escaping is applied on the result of the concatenation, not on the
-    individual variables (so, the ``raw`` filter won't have any effect here).
-
-Sandbox Extension
-~~~~~~~~~~~~~~~~~
-
-The ``sandbox`` extension can be used to evaluate untrusted code. Access to
-unsafe attributes and methods is prohibited. The sandbox security is managed
-by a policy instance. By default, Twig comes with one policy class:
-``Twig_Sandbox_SecurityPolicy``. This class allows you to white-list some
-tags, filters, properties, and methods::
-
-    $tags = array('if');
-    $filters = array('upper');
-    $methods = array(
-        'Article' => array('getTitle', 'getBody'),
-    );
-    $properties = array(
-        'Article' => array('title', 'body'),
-    );
-    $functions = array('range');
-    $policy = new Twig_Sandbox_SecurityPolicy($tags, $filters, $methods, $properties, $functions);
-
-With the previous configuration, the security policy will only allow usage of
-the ``if`` tag, and the ``upper`` filter. Moreover, the templates will only be
-able to call the ``getTitle()`` and ``getBody()`` methods on ``Article``
-objects, and the ``title`` and ``body`` public properties. Everything else
-won't be allowed and will generate a ``Twig_Sandbox_SecurityError`` exception.
-
-The policy object is the first argument of the sandbox constructor::
-
-    $sandbox = new Twig_Extension_Sandbox($policy);
-    $twig->addExtension($sandbox);
-
-By default, the sandbox mode is disabled and should be enabled when including
-untrusted template code by using the ``sandbox`` tag:
-
-.. code-block:: jinja
-
-    {% sandbox %}
-        {% include 'user.html' %}
-    {% endsandbox %}
-
-You can sandbox all templates by passing ``true`` as the second argument of
-the extension constructor::
-
-    $sandbox = new Twig_Extension_Sandbox($policy, true);
-
-Profiler Extension
-~~~~~~~~~~~~~~~~~~
-
-.. versionadded:: 1.18
-    The Profile extension was added in Twig 1.18.
-
-The ``profiler`` extension enables a profiler for Twig templates; it should
-only be used on your development machines as it adds some overhead::
-
-    $profile = new Twig_Profiler_Profile();
-    $twig->addExtension(new Twig_Extension_Profiler($profile));
-
-    $dumper = new Twig_Profiler_Dumper_Text();
-    echo $dumper->dump($profile);
-
-A profile contains information about time and memory consumption for template,
-block, and macro executions.
-
-You can also dump the data in a `Blackfire.io <https://blackfire.io/>`_
-compatible format::
-
-    $dumper = new Twig_Profiler_Dumper_Blackfire();
-    file_put_contents('/path/to/profile.prof', $dumper->dump($profile));
-
-Upload the profile to visualize it (create a `free account
-<https://blackfire.io/signup>`_ first):
-
-.. code-block:: sh
-
-    blackfire --slot=7 upload /path/to/profile.prof
-
-Optimizer Extension
-~~~~~~~~~~~~~~~~~~~
-
-The ``optimizer`` extension optimizes the node tree before compilation::
-
-    $twig->addExtension(new Twig_Extension_Optimizer());
-
-By default, all optimizations are turned on. You can select the ones you want
-to enable by passing them to the constructor::
-
-    $optimizer = new Twig_Extension_Optimizer(Twig_NodeVisitor_Optimizer::OPTIMIZE_FOR);
-
-    $twig->addExtension($optimizer);
-
-Twig supports the following optimizations:
-
-* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_ALL``, enables all optimizations
-  (this is the default value).
-* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_NONE``, disables all optimizations.
-  This reduces the compilation time, but it can increase the execution time
-  and the consumed memory.
-* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_FOR``, optimizes the ``for`` tag by
-  removing the ``loop`` variable creation whenever possible.
-* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_RAW_FILTER``, removes the ``raw``
-  filter whenever possible.
-* ``Twig_NodeVisitor_Optimizer::OPTIMIZE_VAR_ACCESS``, simplifies the creation
-  and access of variables in the compiled templates whenever possible.
-
-Exceptions
-----------
-
-Twig can throw exceptions:
-
-* ``Twig_Error``: The base exception for all errors.
-
-* ``Twig_Error_Syntax``: Thrown to tell the user that there is a problem with
-  the template syntax.
-
-* ``Twig_Error_Runtime``: Thrown when an error occurs at runtime (when a filter
-  does not exist for instance).
-
-* ``Twig_Error_Loader``: Thrown when an error occurs during template loading.
-
-* ``Twig_Sandbox_SecurityError``: Thrown when an unallowed tag, filter, or
-  method is called in a sandboxed template.
diff --git a/core/vendor/twig/twig/doc/coding_standards.rst b/core/vendor/twig/twig/doc/coding_standards.rst
deleted file mode 100644
index f435df4..0000000
--- a/core/vendor/twig/twig/doc/coding_standards.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-Coding Standards
-================
-
-When writing Twig templates, we recommend you to follow these official coding
-standards:
-
-* Put one (and only one) space after the start of a delimiter (``{{``, ``{%``,
-  and ``{#``) and before the end of a delimiter (``}}``, ``%}``, and ``#}``):
-
-  .. code-block:: jinja
-
-    {{ foo }}
-    {# comment #}
-    {% if foo %}{% endif %}
-
-  When using the whitespace control character, do not put any spaces between
-  it and the delimiter:
-
-  .. code-block:: jinja
-
-    {{- foo -}}
-    {#- comment -#}
-    {%- if foo -%}{%- endif -%}
-
-* Put one (and only one) space before and after the following operators:
-  comparison operators (``==``, ``!=``, ``<``, ``>``, ``>=``, ``<=``), math
-  operators (``+``, ``-``, ``/``, ``*``, ``%``, ``//``, ``**``), logic
-  operators (``not``, ``and``, ``or``), ``~``, ``is``, ``in``, and the ternary
-  operator (``?:``):
-
-  .. code-block:: jinja
-
-     {{ 1 + 2 }}
-     {{ foo ~ bar }}
-     {{ true ? true : false }}
-
-* Put one (and only one) space after the ``:`` sign in hashes and ``,`` in
-  arrays and hashes:
-
-  .. code-block:: jinja
-
-     {{ [1, 2, 3] }}
-     {{ {'foo': 'bar'} }}
-
-* Do not put any spaces after an opening parenthesis and before a closing
-  parenthesis in expressions:
-
-  .. code-block:: jinja
-
-    {{ 1 + (2 * 3) }}
-
-* Do not put any spaces before and after string delimiters:
-
-  .. code-block:: jinja
-
-    {{ 'foo' }}
-    {{ "foo" }}
-
-* Do not put any spaces before and after the following operators: ``|``,
-  ``.``, ``..``, ``[]``:
-
-  .. code-block:: jinja
-
-    {{ foo|upper|lower }}
-    {{ user.name }}
-    {{ user[name] }}
-    {% for i in 1..12 %}{% endfor %}
-
-* Do not put any spaces before and after the parenthesis used for filter and
-  function calls:
-
-  .. code-block:: jinja
-
-     {{ foo|default('foo') }}
-     {{ range(1..10) }}
-
-* Do not put any spaces before and after the opening and the closing of arrays
-  and hashes:
-
-  .. code-block:: jinja
-
-     {{ [1, 2, 3] }}
-     {{ {'foo': 'bar'} }}
-
-* Use lower cased and underscored variable names:
-
-  .. code-block:: jinja
-
-     {% set foo = 'foo' %}
-     {% set foo_bar = 'foo' %}
-
-* Indent your code inside tags (use the same indentation as the one used for
-  the target language of the rendered template):
-
-  .. code-block:: jinja
-
-     {% block foo %}
-        {% if true %}
-            true
-        {% endif %}
-     {% endblock %}
diff --git a/core/vendor/twig/twig/doc/deprecated.rst b/core/vendor/twig/twig/doc/deprecated.rst
deleted file mode 100644
index 9afc241..0000000
--- a/core/vendor/twig/twig/doc/deprecated.rst
+++ /dev/null
@@ -1,136 +0,0 @@
-Deprecated Features
-===================
-
-This document lists all deprecated features in Twig. Deprecated features are
-kept for backward compatibility and removed in the next major release (a
-feature that was deprecated in Twig 1.x is removed in Twig 2.0).
-
-Token Parsers
--------------
-
-* As of Twig 1.x, the token parser broker sub-system is deprecated. The
-  following class and interface will be removed in 2.0:
-
-  * ``Twig_TokenParserBrokerInterface``
-  * ``Twig_TokenParserBroker``
-
-Extensions
-----------
-
-* As of Twig 1.x, the ability to remove an extension is deprecated and the
-  ``Twig_Environment::removeExtension()`` method will be removed in 2.0.
-
-PEAR
-----
-
-PEAR support has been discontinued in Twig 1.15.1, and no PEAR packages are
-provided anymore. Use Composer instead.
-
-Filters
--------
-
-* As of Twig 1.x, use ``Twig_SimpleFilter`` to add a filter. The following
-  classes and interfaces will be removed in 2.0:
-
-  * ``Twig_FilterInterface``
-  * ``Twig_FilterCallableInterface``
-  * ``Twig_Filter``
-  * ``Twig_Filter_Function``
-  * ``Twig_Filter_Method``
-  * ``Twig_Filter_Node``
-
-* As of Twig 2.x, the ``Twig_SimpleFilter`` class is deprecated and will be
-  removed in Twig 3.x (use ``Twig_Filter`` instead). In Twig 2.x,
-  ``Twig_SimpleFilter`` is just an alias for ``Twig_Filter``.
-
-Functions
----------
-
-* As of Twig 1.x, use ``Twig_SimpleFunction`` to add a function. The following
-  classes and interfaces will be removed in 2.0:
-
-  * ``Twig_FunctionInterface``
-  * ``Twig_FunctionCallableInterface``
-  * ``Twig_Function``
-  * ``Twig_Function_Function``
-  * ``Twig_Function_Method``
-  * ``Twig_Function_Node``
-
-* As of Twig 2.x, the ``Twig_SimpleFunction`` class is deprecated and will be
-  removed in Twig 3.x (use ``Twig_Function`` instead). In Twig 2.x,
-  ``Twig_SimpleFunction`` is just an alias for ``Twig_Function``.
-
-Tests
------
-
-* As of Twig 1.x, use ``Twig_SimpleTest`` to add a test. The following classes
-  and interfaces will be removed in 2.0:
-
-  * ``Twig_TestInterface``
-  * ``Twig_TestCallableInterface``
-  * ``Twig_Test``
-  * ``Twig_Test_Function``
-  * ``Twig_Test_Method``
-  * ``Twig_Test_Node``
-
-* As of Twig 2.x, the ``Twig_SimpleTest`` class is deprecated and will be
-  removed in Twig 3.x (use ``Twig_Test`` instead). In Twig 2.x,
-  ``Twig_SimpleTest`` is just an alias for ``Twig_Test``.
-
-* The ``sameas`` and ``divisibleby`` tests are deprecated in favor of ``same
-  as`` and ``divisible by`` respectively.
-
-Nodes
------
-
-* As of Twig 1.x, ``Node::toXml()`` is deprecated and will be removed in Twig
-  2.0.
-
-Interfaces
-----------
-
-* As of Twig 2.x, the following interfaces are deprecated and empty (they will
-  be removed in Twig 3.0):
-
-* ``Twig_CompilerInterface``     (use ``Twig_Compiler`` instead)
-* ``Twig_LexerInterface``        (use ``Twig_Lexer`` instead)
-* ``Twig_NodeInterface``         (use ``Twig_Node`` instead)
-* ``Twig_ParserInterface``       (use ``Twig_Parser`` instead)
-* ``Twig_ExistsLoaderInterface`` (merged with ``Twig_LoaderInterface``)
-* ``Twig_TemplateInterface``     (use ``Twig_Template`` instead, and use
-  those constants Twig_Template::ANY_CALL, Twig_Template::ARRAY_CALL,
-  Twig_Template::METHOD_CALL)
-
-Loaders
--------
-
-* As of Twig 1.x, ``Twig_Loader_String`` is deprecated and will be removed in
-  2.0.
-
-Node Visitors
--------------
-
-* Because of the removal of ``Twig_NodeInterface`` in 2.0, you need to extend
-  ``Twig_BaseNodeVistor`` instead of implementing ``Twig_NodeVisitorInterface``
-  directly to make your node visitors compatible with both Twig 1.x and 2.x.
-
-Globals
--------
-
-* As of Twig 2.x, the ability to register a global variable after the runtime
-  or the extensions have been initialized is not possible anymore (but
-  changing the value of an already registered global is possible).
-
-* As of Twig 1.x, the ``_self`` global variable is deprecated except for usage
-  in the ``from`` and the ``import`` tags. In Twig 2.0, ``_self`` is not
-  exposed anymore but still usable in the ``from`` and the ``import`` tags.
-
-Miscellaneous
--------------
-
-* As of Twig 1.x, ``Twig_Environment::clearTemplateCache()`` is deprecated and
-  will be removed in 2.0.
-
-* As of Twig 1.x, ``Twig_Template::getEnvironment()`` and
-  ``Twig_TemplateInterface::getEnvironment()`` are deprecated and will be
-  removed in 2.0.
diff --git a/core/vendor/twig/twig/doc/filters/abs.rst b/core/vendor/twig/twig/doc/filters/abs.rst
deleted file mode 100644
index 22fa59d..0000000
--- a/core/vendor/twig/twig/doc/filters/abs.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-``abs``
-=======
-
-The ``abs`` filter returns the absolute value.
-
-.. code-block:: jinja
-
-    {# number = -5 #}
-
-    {{ number|abs }}
-
-    {# outputs 5 #}
-
-.. note::
-
-    Internally, Twig uses the PHP `abs`_ function.
-
-.. _`abs`: http://php.net/abs
diff --git a/core/vendor/twig/twig/doc/filters/batch.rst b/core/vendor/twig/twig/doc/filters/batch.rst
deleted file mode 100644
index f8b6fa9..0000000
--- a/core/vendor/twig/twig/doc/filters/batch.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-``batch``
-=========
-
-.. versionadded:: 1.12.3
-    The ``batch`` filter was added in Twig 1.12.3.
-
-The ``batch`` filter "batches" items by returning a list of lists with the
-given number of items. A second parameter can be provided and used to fill in
-missing items:
-
-.. code-block:: jinja
-
-    {% set items = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] %}
-
-    <table>
-    {% for row in items|batch(3, 'No item') %}
-        <tr>
-            {% for column in row %}
-                <td>{{ column }}</td>
-            {% endfor %}
-        </tr>
-    {% endfor %}
-    </table>
-
-The above example will be rendered as:
-
-.. code-block:: jinja
-
-    <table>
-        <tr>
-            <td>a</td>
-            <td>b</td>
-            <td>c</td>
-        </tr>
-        <tr>
-            <td>d</td>
-            <td>e</td>
-            <td>f</td>
-        </tr>
-        <tr>
-            <td>g</td>
-            <td>No item</td>
-            <td>No item</td>
-        </tr>
-    </table>
-
-Arguments
----------
-
-* ``size``: The size of the batch; fractional numbers will be rounded up
-* ``fill``: Used to fill in missing items
diff --git a/core/vendor/twig/twig/doc/filters/capitalize.rst b/core/vendor/twig/twig/doc/filters/capitalize.rst
deleted file mode 100644
index 10546a1..0000000
--- a/core/vendor/twig/twig/doc/filters/capitalize.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-``capitalize``
-==============
-
-The ``capitalize`` filter capitalizes a value. The first character will be
-uppercase, all others lowercase:
-
-.. code-block:: jinja
-
-    {{ 'my first car'|capitalize }}
-
-    {# outputs 'My first car' #}
diff --git a/core/vendor/twig/twig/doc/filters/convert_encoding.rst b/core/vendor/twig/twig/doc/filters/convert_encoding.rst
deleted file mode 100644
index f4ebe58..0000000
--- a/core/vendor/twig/twig/doc/filters/convert_encoding.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-``convert_encoding``
-====================
-
-.. versionadded:: 1.4
-    The ``convert_encoding`` filter was added in Twig 1.4.
-
-The ``convert_encoding`` filter converts a string from one encoding to
-another. The first argument is the expected output charset and the second one
-is the input charset:
-
-.. code-block:: jinja
-
-    {{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}
-
-.. note::
-
-    This filter relies on the `iconv`_ or `mbstring`_ extension, so one of
-    them must be installed. In case both are installed, `mbstring`_ is used by
-    default (Twig before 1.8.1 uses `iconv`_ by default).
-
-Arguments
----------
-
-* ``to``:   The output charset
-* ``from``: The input charset
-
-.. _`iconv`:    http://php.net/iconv
-.. _`mbstring`: http://php.net/mbstring
diff --git a/core/vendor/twig/twig/doc/filters/date.rst b/core/vendor/twig/twig/doc/filters/date.rst
deleted file mode 100644
index c86d42b..0000000
--- a/core/vendor/twig/twig/doc/filters/date.rst
+++ /dev/null
@@ -1,94 +0,0 @@
-``date``
-========
-
-.. versionadded:: 1.1
-    The timezone support has been added in Twig 1.1.
-
-.. versionadded:: 1.5
-    The default date format support has been added in Twig 1.5.
-
-.. versionadded:: 1.6.1
-    The default timezone support has been added in Twig 1.6.1.
-
-.. versionadded:: 1.11.0
-    The introduction of the false value for the timezone was introduced in Twig 1.11.0
-
-The ``date`` filter formats a date to a given format:
-
-.. code-block:: jinja
-
-    {{ post.published_at|date("m/d/Y") }}
-
-The format specifier is the same as supported by `date`_,
-except when the filtered data is of type `DateInterval`_, when the format must conform to
-`DateInterval::format`_ instead.
-
-The ``date`` filter accepts strings (it must be in a format supported by the
-`strtotime`_ function), `DateTime`_ instances, or `DateInterval`_ instances. For
-instance, to display the current date, filter the word "now":
-
-.. code-block:: jinja
-
-    {{ "now"|date("m/d/Y") }}
-
-To escape words and characters in the date format use ``\\`` in front of each
-character:
-
-.. code-block:: jinja
-
-    {{ post.published_at|date("F jS \\a\\t g:ia") }}
-
-If the value passed to the ``date`` filter is ``null``, it will return the
-current date by default. If an empty string is desired instead of the current
-date, use a ternary operator:
-
-.. code-block:: jinja
-
-    {{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}
-
-If no format is provided, Twig will use the default one: ``F j, Y H:i``. This
-default can be easily changed by calling the ``setDateFormat()`` method on the
-``core`` extension instance. The first argument is the default format for
-dates and the second one is the default format for date intervals:
-
-.. code-block:: php
-
-    $twig = new Twig_Environment($loader);
-    $twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
-
-Timezone
---------
-
-By default, the date is displayed by applying the default timezone (the one
-specified in php.ini or declared in Twig -- see below), but you can override
-it by explicitly specifying a timezone:
-
-.. code-block:: jinja
-
-    {{ post.published_at|date("m/d/Y", "Europe/Paris") }}
-
-If the date is already a DateTime object, and if you want to keep its current
-timezone, pass ``false`` as the timezone value:
-
-.. code-block:: jinja
-
-    {{ post.published_at|date("m/d/Y", false) }}
-
-The default timezone can also be set globally by calling ``setTimezone()``:
-
-.. code-block:: php
-
-    $twig = new Twig_Environment($loader);
-    $twig->getExtension('core')->setTimezone('Europe/Paris');
-
-Arguments
----------
-
-* ``format``:   The date format
-* ``timezone``: The date timezone
-
-.. _`strtotime`:            http://www.php.net/strtotime
-.. _`DateTime`:             http://www.php.net/DateTime
-.. _`DateInterval`:         http://www.php.net/DateInterval
-.. _`date`:                 http://www.php.net/date
-.. _`DateInterval::format`: http://www.php.net/DateInterval.format
diff --git a/core/vendor/twig/twig/doc/filters/date_modify.rst b/core/vendor/twig/twig/doc/filters/date_modify.rst
deleted file mode 100644
index add40b5..0000000
--- a/core/vendor/twig/twig/doc/filters/date_modify.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-``date_modify``
-===============
-
-.. versionadded:: 1.9.0
-    The date_modify filter has been added in Twig 1.9.0.
-
-The ``date_modify`` filter modifies a date with a given modifier string:
-
-.. code-block:: jinja
-
-    {{ post.published_at|date_modify("+1 day")|date("m/d/Y") }}
-
-The ``date_modify`` filter accepts strings (it must be in a format supported
-by the `strtotime`_ function) or `DateTime`_ instances. You can easily combine
-it with the :doc:`date<date>` filter for formatting.
-
-Arguments
----------
-
-* ``modifier``: The modifier
-
-.. _`strtotime`: http://www.php.net/strtotime
-.. _`DateTime`:  http://www.php.net/DateTime
diff --git a/core/vendor/twig/twig/doc/filters/default.rst b/core/vendor/twig/twig/doc/filters/default.rst
deleted file mode 100644
index 641ac6e..0000000
--- a/core/vendor/twig/twig/doc/filters/default.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-``default``
-===========
-
-The ``default`` filter returns the passed default value if the value is
-undefined or empty, otherwise the value of the variable:
-
-.. code-block:: jinja
-
-    {{ var|default('var is not defined') }}
-
-    {{ var.foo|default('foo item on var is not defined') }}
-
-    {{ var['foo']|default('foo item on var is not defined') }}
-
-    {{ ''|default('passed var is empty')  }}
-
-When using the ``default`` filter on an expression that uses variables in some
-method calls, be sure to use the ``default`` filter whenever a variable can be
-undefined:
-
-.. code-block:: jinja
-
-    {{ var.method(foo|default('foo'))|default('foo') }}
-
-.. note::
-
-    Read the documentation for the :doc:`defined<../tests/defined>` and
-    :doc:`empty<../tests/empty>` tests to learn more about their semantics.
-
-Arguments
----------
-
-* ``default``: The default value
diff --git a/core/vendor/twig/twig/doc/filters/escape.rst b/core/vendor/twig/twig/doc/filters/escape.rst
deleted file mode 100644
index fc9771a..0000000
--- a/core/vendor/twig/twig/doc/filters/escape.rst
+++ /dev/null
@@ -1,116 +0,0 @@
-``escape``
-==========
-
-.. versionadded:: 1.9.0
-    The ``css``, ``url``, and ``html_attr`` strategies were added in Twig
-    1.9.0.
-
-.. versionadded:: 1.14.0
-    The ability to define custom escapers was added in Twig 1.14.0.
-
-The ``escape`` filter escapes a string for safe insertion into the final
-output. It supports different escaping strategies depending on the template
-context.
-
-By default, it uses the HTML escaping strategy:
-
-.. code-block:: jinja
-
-    {{ user.username|escape }}
-
-For convenience, the ``e`` filter is defined as an alias:
-
-.. code-block:: jinja
-
-    {{ user.username|e }}
-
-The ``escape`` filter can also be used in other contexts than HTML thanks to
-an optional argument which defines the escaping strategy to use:
-
-.. code-block:: jinja
-
-    {{ user.username|e }}
-    {# is equivalent to #}
-    {{ user.username|e('html') }}
-
-And here is how to escape variables included in JavaScript code:
-
-.. code-block:: jinja
-
-    {{ user.username|escape('js') }}
-    {{ user.username|e('js') }}
-
-The ``escape`` filter supports the following escaping strategies:
-
-* ``html``: escapes a string for the **HTML body** context.
-
-* ``js``: escapes a string for the **JavaScript context**.
-
-* ``css``: escapes a string for the **CSS context**. CSS escaping can be
-  applied to any string being inserted into CSS and escapes everything except
-  alphanumerics.
-
-* ``url``: escapes a string for the **URI or parameter contexts**. This should
-  not be used to escape an entire URI; only a subcomponent being inserted.
-
-* ``html_attr``: escapes a string for the **HTML attribute** context.
-
-.. note::
-
-    Internally, ``escape`` uses the PHP native `htmlspecialchars`_ function
-    for the HTML escaping strategy.
-
-.. caution::
-
-    When using automatic escaping, Twig tries to not double-escape a variable
-    when the automatic escaping strategy is the same as the one applied by the
-    escape filter; but that does not work when using a variable as the
-    escaping strategy:
-
-    .. code-block:: jinja
-
-        {% set strategy = 'html' %}
-
-        {% autoescape 'html' %}
-            {{ var|escape('html') }}   {# won't be double-escaped #}
-            {{ var|escape(strategy) }} {# will be double-escaped #}
-        {% endautoescape %}
-
-    When using a variable as the escaping strategy, you should disable
-    automatic escaping:
-
-    .. code-block:: jinja
-
-        {% set strategy = 'html' %}
-
-        {% autoescape 'html' %}
-            {{ var|escape(strategy)|raw }} {# won't be double-escaped #}
-        {% endautoescape %}
-
-Custom Escapers
----------------
-
-You can define custom escapers by calling the ``setEscaper()`` method on the
-``core`` extension instance. The first argument is the escaper name (to be
-used in the ``escape`` call) and the second one must be a valid PHP callable:
-
-.. code-block:: php
-
-    $twig = new Twig_Environment($loader);
-    $twig->getExtension('core')->setEscaper('csv', 'csv_escaper'));
-
-When called by Twig, the callable receives the Twig environment instance, the
-string to escape, and the charset.
-
-.. note::
-
-    Built-in escapers cannot be overridden mainly they should be considered as
-    the final implementation and also for better performance.
-
-Arguments
----------
-
-* ``strategy``: The escaping strategy
-* ``charset``:  The string charset
-
-.. _`htmlspecialchars`: http://php.net/htmlspecialchars
diff --git a/core/vendor/twig/twig/doc/filters/first.rst b/core/vendor/twig/twig/doc/filters/first.rst
deleted file mode 100644
index 674c1f9..0000000
--- a/core/vendor/twig/twig/doc/filters/first.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-``first``
-=========
-
-.. versionadded:: 1.12.2
-    The ``first`` filter was added in Twig 1.12.2.
-
-The ``first`` filter returns the first "element" of a sequence, a mapping, or
-a string:
-
-.. code-block:: jinja
-
-    {{ [1, 2, 3, 4]|first }}
-    {# outputs 1 #}
-
-    {{ { a: 1, b: 2, c: 3, d: 4 }|first }}
-    {# outputs 1 #}
-
-    {{ '1234'|first }}
-    {# outputs 1 #}
-
-.. note::
-
-    It also works with objects implementing the `Traversable`_ interface.
-
-.. _`Traversable`: http://php.net/manual/en/class.traversable.php
diff --git a/core/vendor/twig/twig/doc/filters/format.rst b/core/vendor/twig/twig/doc/filters/format.rst
deleted file mode 100644
index f8effd9..0000000
--- a/core/vendor/twig/twig/doc/filters/format.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-``format``
-==========
-
-The ``format`` filter formats a given string by replacing the placeholders
-(placeholders follows the `sprintf`_ notation):
-
-.. code-block:: jinja
-
-    {{ "I like %s and %s."|format(foo, "bar") }}
-
-    {# outputs I like foo and bar
-       if the foo parameter equals to the foo string. #}
-
-.. _`sprintf`: http://www.php.net/sprintf
-
-.. seealso:: :doc:`replace<replace>`
diff --git a/core/vendor/twig/twig/doc/filters/index.rst b/core/vendor/twig/twig/doc/filters/index.rst
deleted file mode 100644
index 8daa961..0000000
--- a/core/vendor/twig/twig/doc/filters/index.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-Filters
-=======
-
-.. toctree::
-    :maxdepth: 1
-
-    abs
-    batch
-    capitalize
-    convert_encoding
-    date
-    date_modify
-    default
-    escape
-    first
-    format
-    join
-    json_encode
-    keys
-    last
-    length
-    lower
-    merge
-    nl2br
-    number_format
-    raw
-    replace
-    reverse
-    round
-    slice
-    sort
-    split
-    striptags
-    title
-    trim
-    upper
-    url_encode
diff --git a/core/vendor/twig/twig/doc/filters/join.rst b/core/vendor/twig/twig/doc/filters/join.rst
deleted file mode 100644
index 2fab945..0000000
--- a/core/vendor/twig/twig/doc/filters/join.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-``join``
-========
-
-The ``join`` filter returns a string which is the concatenation of the items
-of a sequence:
-
-.. code-block:: jinja
-
-    {{ [1, 2, 3]|join }}
-    {# returns 123 #}
-
-The separator between elements is an empty string per default, but you can
-define it with the optional first parameter:
-
-.. code-block:: jinja
-
-    {{ [1, 2, 3]|join('|') }}
-    {# outputs 1|2|3 #}
-
-Arguments
----------
-
-* ``glue``: The separator
diff --git a/core/vendor/twig/twig/doc/filters/json_encode.rst b/core/vendor/twig/twig/doc/filters/json_encode.rst
deleted file mode 100644
index a39bb47..0000000
--- a/core/vendor/twig/twig/doc/filters/json_encode.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-``json_encode``
-===============
-
-The ``json_encode`` filter returns the JSON representation of a value:
-
-.. code-block:: jinja
-
-    {{ data|json_encode() }}
-
-.. note::
-
-    Internally, Twig uses the PHP `json_encode`_ function.
-
-Arguments
----------
-
-* ``options``: A bitmask of `json_encode options`_ (``{{
-  data|json_encode(constant('JSON_PRETTY_PRINT')) }}``)
-
-.. _`json_encode`: http://php.net/json_encode
-.. _`json_encode options`: http://www.php.net/manual/en/json.constants.php
diff --git a/core/vendor/twig/twig/doc/filters/keys.rst b/core/vendor/twig/twig/doc/filters/keys.rst
deleted file mode 100644
index e4f090c..0000000
--- a/core/vendor/twig/twig/doc/filters/keys.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-``keys``
-========
-
-The ``keys`` filter returns the keys of an array. It is useful when you want to
-iterate over the keys of an array:
-
-.. code-block:: jinja
-
-    {% for key in array|keys %}
-        ...
-    {% endfor %}
diff --git a/core/vendor/twig/twig/doc/filters/last.rst b/core/vendor/twig/twig/doc/filters/last.rst
deleted file mode 100644
index 345b657..0000000
--- a/core/vendor/twig/twig/doc/filters/last.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-``last``
-========
-
-.. versionadded:: 1.12.2
-    The ``last`` filter was added in Twig 1.12.2.
-
-The ``last`` filter returns the last "element" of a sequence, a mapping, or
-a string:
-
-.. code-block:: jinja
-
-    {{ [1, 2, 3, 4]|last }}
-    {# outputs 4 #}
-
-    {{ { a: 1, b: 2, c: 3, d: 4 }|last }}
-    {# outputs 4 #}
-
-    {{ '1234'|last }}
-    {# outputs 4 #}
-
-.. note::
-
-    It also works with objects implementing the `Traversable`_ interface.
-
-.. _`Traversable`: http://php.net/manual/en/class.traversable.php
diff --git a/core/vendor/twig/twig/doc/filters/length.rst b/core/vendor/twig/twig/doc/filters/length.rst
deleted file mode 100644
index 1f783b3..0000000
--- a/core/vendor/twig/twig/doc/filters/length.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-``length``
-==========
-
-The ``length`` filter returns the number of items of a sequence or mapping, or
-the length of a string:
-
-.. code-block:: jinja
-
-    {% if users|length > 10 %}
-        ...
-    {% endif %}
diff --git a/core/vendor/twig/twig/doc/filters/lower.rst b/core/vendor/twig/twig/doc/filters/lower.rst
deleted file mode 100644
index ef9faa9..0000000
--- a/core/vendor/twig/twig/doc/filters/lower.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-``lower``
-=========
-
-The ``lower`` filter converts a value to lowercase:
-
-.. code-block:: jinja
-
-    {{ 'WELCOME'|lower }}
-
-    {# outputs 'welcome' #}
diff --git a/core/vendor/twig/twig/doc/filters/merge.rst b/core/vendor/twig/twig/doc/filters/merge.rst
deleted file mode 100644
index cb8b1b2..0000000
--- a/core/vendor/twig/twig/doc/filters/merge.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-``merge``
-=========
-
-The ``merge`` filter merges an array with another array:
-
-.. code-block:: jinja
-
-    {% set values = [1, 2] %}
-
-    {% set values = values|merge(['apple', 'orange']) %}
-
-    {# values now contains [1, 2, 'apple', 'orange'] #}
-
-New values are added at the end of the existing ones.
-
-The ``merge`` filter also works on hashes:
-
-.. code-block:: jinja
-
-    {% set items = { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'unknown' } %}
-
-    {% set items = items|merge({ 'peugeot': 'car', 'renault': 'car' }) %}
-
-    {# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car', 'renault': 'car' } #}
-
-For hashes, the merging process occurs on the keys: if the key does not
-already exist, it is added but if the key already exists, its value is
-overridden.
-
-.. tip::
-
-    If you want to ensure that some values are defined in an array (by given
-    default values), reverse the two elements in the call:
-
-    .. code-block:: jinja
-
-        {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}
-
-        {% set items = { 'apple': 'unknown' }|merge(items) %}
-
-        {# items now contains { 'apple': 'fruit', 'orange': 'fruit' } #}
-        
-.. note::
-
-    Internally, Twig uses the PHP `array_merge`_ function.
-
-.. _`array_merge`: http://php.net/array_merge
diff --git a/core/vendor/twig/twig/doc/filters/nl2br.rst b/core/vendor/twig/twig/doc/filters/nl2br.rst
deleted file mode 100644
index 5c923e1..0000000
--- a/core/vendor/twig/twig/doc/filters/nl2br.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-``nl2br``
-=========
-
-.. versionadded:: 1.5
-    The ``nl2br`` filter was added in Twig 1.5.
-
-The ``nl2br`` filter inserts HTML line breaks before all newlines in a string:
-
-.. code-block:: jinja
-
-    {{ "I like Twig.\nYou will like it too."|nl2br }}
-    {# outputs
-
-        I like Twig.<br />
-        You will like it too.
-
-    #}
-
-.. note::
-
-    The ``nl2br`` filter pre-escapes the input before applying the
-    transformation.
diff --git a/core/vendor/twig/twig/doc/filters/number_format.rst b/core/vendor/twig/twig/doc/filters/number_format.rst
deleted file mode 100644
index 3114e84..0000000
--- a/core/vendor/twig/twig/doc/filters/number_format.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-``number_format``
-=================
-
-.. versionadded:: 1.5
-    The ``number_format`` filter was added in Twig 1.5
-
-The ``number_format`` filter formats numbers.  It is a wrapper around PHP's
-`number_format`_ function:
-
-.. code-block:: jinja
-
-    {{ 200.35|number_format }}
-
-You can control the number of decimal places, decimal point, and thousands
-separator using the additional arguments:
-
-.. code-block:: jinja
-
-    {{ 9800.333|number_format(2, '.', ',') }}
-
-If no formatting options are provided then Twig will use the default formatting
-options of:
-
-* 0 decimal places.
-* ``.`` as the decimal point.
-* ``,`` as the thousands separator.
-
-These defaults can be easily changed through the core extension:
-
-.. code-block:: php
-
-    $twig = new Twig_Environment($loader);
-    $twig->getExtension('core')->setNumberFormat(3, '.', ',');
-
-The defaults set for ``number_format`` can be over-ridden upon each call using the
-additional parameters.
-
-Arguments
----------
-
-* ``decimal``:       The number of decimal points to display
-* ``decimal_point``: The character(s) to use for the decimal point
-* ``thousand_sep``:   The character(s) to use for the thousands separator
-
-.. _`number_format`: http://php.net/number_format
diff --git a/core/vendor/twig/twig/doc/filters/raw.rst b/core/vendor/twig/twig/doc/filters/raw.rst
deleted file mode 100644
index e5e5b12..0000000
--- a/core/vendor/twig/twig/doc/filters/raw.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-``raw``
-=======
-
-The ``raw`` filter marks the value as being "safe", which means that in an
-environment with automatic escaping enabled this variable will not be escaped
-if ``raw`` is the last filter applied to it:
-
-.. code-block:: jinja
-
-    {% autoescape %}
-        {{ var|raw }} {# var won't be escaped #}
-    {% endautoescape %}
-
-.. note::
-
-    Be careful when using the ``raw`` filter inside expressions:
-
-    .. code-block:: jinja
-
-        {% autoescape %}
-            {% set hello = '<strong>Hello</strong>' %}
-            {% set hola = '<strong>Hola</strong>' %}
-
-            {{ false ? '<strong>Hola</strong>' : hello|raw }}
-            does not render the same as
-            {{ false ? hola : hello|raw }}
-            but renders the same as
-            {{ (false ? hola : hello)|raw }}
-        {% endautoescape %}
-
-    The first ternary statement is not escaped: ``hello`` is marked as being
-    safe and Twig does not escape static values (see
-    :doc:`escape<../tags/autoescape>`). In the second ternary statement, even
-    if ``hello`` is marked as safe, ``hola`` remains unsafe and so is the whole
-    expression. The third ternary statement is marked as safe and the result is
-    not escaped.
diff --git a/core/vendor/twig/twig/doc/filters/replace.rst b/core/vendor/twig/twig/doc/filters/replace.rst
deleted file mode 100644
index 1227957..0000000
--- a/core/vendor/twig/twig/doc/filters/replace.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-``replace``
-===========
-
-The ``replace`` filter formats a given string by replacing the placeholders
-(placeholders are free-form):
-
-.. code-block:: jinja
-
-    {{ "I like %this% and %that%."|replace({'%this%': foo, '%that%': "bar"}) }}
-
-    {# outputs I like foo and bar
-       if the foo parameter equals to the foo string. #}
-
-Arguments
----------
-
-* ``replace_pairs``: The placeholder values
-
-.. seealso:: :doc:`format<format>`
diff --git a/core/vendor/twig/twig/doc/filters/reverse.rst b/core/vendor/twig/twig/doc/filters/reverse.rst
deleted file mode 100644
index 76fd2c1..0000000
--- a/core/vendor/twig/twig/doc/filters/reverse.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-``reverse``
-===========
-
-.. versionadded:: 1.6
-    Support for strings has been added in Twig 1.6.
-
-The ``reverse`` filter reverses a sequence, a mapping, or a string:
-
-.. code-block:: jinja
-
-    {% for user in users|reverse %}
-        ...
-    {% endfor %}
-
-    {{ '1234'|reverse }}
-
-    {# outputs 4321 #}
-
-.. tip::
-
-    For sequences and mappings, numeric keys are not preserved. To reverse
-    them as well, pass ``true`` as an argument to the ``reverse`` filter:
-
-    .. code-block:: jinja
-
-        {% for key, value in {1: "a", 2: "b", 3: "c"}|reverse %}
-            {{ key }}: {{ value }}
-        {%- endfor %}
-
-        {# output: 0: c    1: b    2: a #}
-
-        {% for key, value in {1: "a", 2: "b", 3: "c"}|reverse(true) %}
-            {{ key }}: {{ value }}
-        {%- endfor %}
-
-        {# output: 3: c    2: b    1: a #}
-
-.. note::
-
-    It also works with objects implementing the `Traversable`_ interface.
-
-Arguments
----------
-
-* ``preserve_keys``: Preserve keys when reversing a mapping or a sequence.
-
-.. _`Traversable`: http://php.net/Traversable
diff --git a/core/vendor/twig/twig/doc/filters/round.rst b/core/vendor/twig/twig/doc/filters/round.rst
deleted file mode 100644
index 2521cf1..0000000
--- a/core/vendor/twig/twig/doc/filters/round.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-``round``
-=========
-
-.. versionadded:: 1.15.0
-    The ``round`` filter was added in Twig 1.15.0.
-
-The ``round`` filter rounds a number to a given precision:
-
-.. code-block:: jinja
-
-    {{ 42.55|round }}
-    {# outputs 43 #}
-
-    {{ 42.55|round(1, 'floor') }}
-    {# outputs 42.5 #}
-
-The ``round`` filter takes two optional arguments; the first one specifies the
-precision (default is ``0``) and the second the rounding method (default is
-``common``):
-
-* ``common`` rounds either up or down (rounds the value up to precision decimal
-  places away from zero, when it is half way there -- making 1.5 into 2 and
-  -1.5 into -2);
-
-* ``ceil`` always rounds up;
-
-* ``floor`` always rounds down.
-
-.. note::
-
-    The ``//`` operator is equivalent to ``|round(0, 'floor')``.
-
-Arguments
----------
-
-* ``precision``: The rounding precision
-* ``method``: The rounding method
diff --git a/core/vendor/twig/twig/doc/filters/slice.rst b/core/vendor/twig/twig/doc/filters/slice.rst
deleted file mode 100644
index 70bf139..0000000
--- a/core/vendor/twig/twig/doc/filters/slice.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-``slice``
-===========
-
-.. versionadded:: 1.6
-    The ``slice`` filter was added in Twig 1.6.
-
-The ``slice`` filter extracts a slice of a sequence, a mapping, or a string:
-
-.. code-block:: jinja
-
-    {% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
-        {# will iterate over 2 and 3 #}
-    {% endfor %}
-
-    {{ '12345'|slice(1, 2) }}
-
-    {# outputs 23 #}
-
-You can use any valid expression for both the start and the length:
-
-.. code-block:: jinja
-
-    {% for i in [1, 2, 3, 4, 5]|slice(start, length) %}
-        {# ... #}
-    {% endfor %}
-
-As syntactic sugar, you can also use the ``[]`` notation:
-
-.. code-block:: jinja
-
-    {% for i in [1, 2, 3, 4, 5][start:length] %}
-        {# ... #}
-    {% endfor %}
-
-    {{ '12345'[1:2] }} {# will display "23" #}
-
-    {# you can omit the first argument -- which is the same as 0 #}
-    {{ '12345'[:2] }} {# will display "12" #}
-
-    {# you can omit the last argument -- which will select everything till the end #}
-    {{ '12345'[2:] }} {# will display "345" #}
-
-The ``slice`` filter works as the `array_slice`_ PHP function for arrays and
-`mb_substr`_ for strings with a fallback to `substr`_.
-
-If the start is non-negative, the sequence will start at that start in the
-variable. If start is negative, the sequence will start that far from the end
-of the variable.
-
-If length is given and is positive, then the sequence will have up to that
-many elements in it. If the variable is shorter than the length, then only the
-available variable elements will be present. If length is given and is
-negative then the sequence will stop that many elements from the end of the
-variable. If it is omitted, then the sequence will have everything from offset
-up until the end of the variable.
-
-.. note::
-
-    It also works with objects implementing the `Traversable`_ interface.
-
-Arguments
----------
-
-* ``start``:         The start of the slice
-* ``length``:        The size of the slice
-* ``preserve_keys``: Whether to preserve key or not (when the input is an array)
-
-.. _`Traversable`: http://php.net/manual/en/class.traversable.php
-.. _`array_slice`: http://php.net/array_slice
-.. _`mb_substr` :  http://php.net/mb-substr
-.. _`substr`:      http://php.net/substr
diff --git a/core/vendor/twig/twig/doc/filters/sort.rst b/core/vendor/twig/twig/doc/filters/sort.rst
deleted file mode 100644
index 3331152..0000000
--- a/core/vendor/twig/twig/doc/filters/sort.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-``sort``
-========
-
-The ``sort`` filter sorts an array:
-
-.. code-block:: jinja
-
-    {% for user in users|sort %}
-        ...
-    {% endfor %}
-
-.. note::
-
-    Internally, Twig uses the PHP `asort`_ function to maintain index
-    association.
-
-.. _`asort`: http://php.net/asort
diff --git a/core/vendor/twig/twig/doc/filters/split.rst b/core/vendor/twig/twig/doc/filters/split.rst
deleted file mode 100644
index bbc6d79..0000000
--- a/core/vendor/twig/twig/doc/filters/split.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-``split``
-=========
-
-.. versionadded:: 1.10.3
-    The ``split`` filter was added in Twig 1.10.3.
-
-The ``split`` filter splits a string by the given delimiter and returns a list
-of strings:
-
-.. code-block:: jinja
-
-    {% set foo = "one,two,three"|split(',') %}
-    {# foo contains ['one', 'two', 'three'] #}
-
-You can also pass a ``limit`` argument:
-
- * If ``limit`` is positive, the returned array will contain a maximum of
-   limit elements with the last element containing the rest of string;
-
- * If ``limit`` is negative, all components except the last -limit are
-   returned;
-
- * If ``limit`` is zero, then this is treated as 1.
-
-.. code-block:: jinja
-
-    {% set foo = "one,two,three,four,five"|split(',', 3) %}
-    {# foo contains ['one', 'two', 'three,four,five'] #}
-
-If the ``delimiter`` is an empty string, then value will be split by equal
-chunks. Length is set by the ``limit`` argument (one character by default).
-
-.. code-block:: jinja
-
-    {% set foo = "123"|split('') %}
-    {# foo contains ['1', '2', '3'] #}
-
-    {% set bar = "aabbcc"|split('', 2) %}
-    {# bar contains ['aa', 'bb', 'cc'] #}
-
-.. note::
-
-    Internally, Twig uses the PHP `explode`_ or `str_split`_ (if delimiter is
-    empty) functions for string splitting.
-
-Arguments
----------
-
-* ``delimiter``: The delimiter
-* ``limit``:     The limit argument
-
-.. _`explode`:   http://php.net/explode
-.. _`str_split`: http://php.net/str_split
diff --git a/core/vendor/twig/twig/doc/filters/striptags.rst b/core/vendor/twig/twig/doc/filters/striptags.rst
deleted file mode 100644
index 72c6f25..0000000
--- a/core/vendor/twig/twig/doc/filters/striptags.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-``striptags``
-=============
-
-The ``striptags`` filter strips SGML/XML tags and replace adjacent whitespace
-by one space:
-
-.. code-block:: jinja
-
-    {{ some_html|striptags }}
-
-.. note::
-
-    Internally, Twig uses the PHP `strip_tags`_ function.
-
-.. _`strip_tags`: http://php.net/strip_tags
diff --git a/core/vendor/twig/twig/doc/filters/title.rst b/core/vendor/twig/twig/doc/filters/title.rst
deleted file mode 100644
index c5a318e..0000000
--- a/core/vendor/twig/twig/doc/filters/title.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-``title``
-=========
-
-The ``title`` filter returns a titlecased version of the value. Words will
-start with uppercase letters, all remaining characters are lowercase:
-
-.. code-block:: jinja
-
-    {{ 'my first car'|title }}
-
-    {# outputs 'My First Car' #}
diff --git a/core/vendor/twig/twig/doc/filters/trim.rst b/core/vendor/twig/twig/doc/filters/trim.rst
deleted file mode 100644
index 4ddb208..0000000
--- a/core/vendor/twig/twig/doc/filters/trim.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-``trim``
-========
-
-.. versionadded:: 1.6.2
-    The ``trim`` filter was added in Twig 1.6.2.
-
-The ``trim`` filter strips whitespace (or other characters) from the beginning
-and end of a string:
-
-.. code-block:: jinja
-
-    {{ '  I like Twig.  '|trim }}
-
-    {# outputs 'I like Twig.' #}
-
-    {{ '  I like Twig.'|trim('.') }}
-
-    {# outputs '  I like Twig' #}
-
-.. note::
-
-    Internally, Twig uses the PHP `trim`_ function.
-
-Arguments
----------
-
-* ``character_mask``: The characters to strip
-
-.. _`trim`: http://php.net/trim
diff --git a/core/vendor/twig/twig/doc/filters/upper.rst b/core/vendor/twig/twig/doc/filters/upper.rst
deleted file mode 100644
index 561cebe..0000000
--- a/core/vendor/twig/twig/doc/filters/upper.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-``upper``
-=========
-
-The ``upper`` filter converts a value to uppercase:
-
-.. code-block:: jinja
-
-    {{ 'welcome'|upper }}
-
-    {# outputs 'WELCOME' #}
diff --git a/core/vendor/twig/twig/doc/filters/url_encode.rst b/core/vendor/twig/twig/doc/filters/url_encode.rst
deleted file mode 100644
index 5944e59..0000000
--- a/core/vendor/twig/twig/doc/filters/url_encode.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-``url_encode``
-==============
-
-.. versionadded:: 1.12.3
-    Support for encoding an array as query string was added in Twig 1.12.3.
-
-.. versionadded:: 1.16.0
-    The ``raw`` argument was removed in Twig 1.16.0. Twig now always encodes
-    according to RFC 3986.
-
-The ``url_encode`` filter percent encodes a given string as URL segment
-or an array as query string:
-
-.. code-block:: jinja
-
-    {{ "path-seg*ment"|url_encode }}
-    {# outputs "path-seg%2Ament" #}
-
-    {{ "string with spaces"|url_encode }}
-    {# outputs "string%20with%20spaces" #}
-
-    {{ {'param': 'value', 'foo': 'bar'}|url_encode }}
-    {# outputs "param=value&foo=bar" #}
-
-.. note::
-
-    Internally, Twig uses the PHP `urlencode`_ (or `rawurlencode`_ if you pass
-    ``true`` as the first parameter) or the `http_build_query`_ function. Note
-    that as of Twig 1.16.0, ``urlencode`` **always** uses ``rawurlencode`` (the
-    ``raw`` argument was removed.)
-
-.. _`urlencode`:        http://php.net/urlencode
-.. _`rawurlencode`:     http://php.net/rawurlencode
-.. _`http_build_query`: http://php.net/http_build_query
diff --git a/core/vendor/twig/twig/doc/functions/attribute.rst b/core/vendor/twig/twig/doc/functions/attribute.rst
deleted file mode 100644
index ceba96b..0000000
--- a/core/vendor/twig/twig/doc/functions/attribute.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-``attribute``
-=============
-
-.. versionadded:: 1.2
-    The ``attribute`` function was added in Twig 1.2.
-
-The ``attribute`` function can be used to access a "dynamic" attribute of a
-variable:
-
-.. code-block:: jinja
-
-    {{ attribute(object, method) }}
-    {{ attribute(object, method, arguments) }}
-    {{ attribute(array, item) }}
-
-In addition, the ``defined`` test can check for the existence of a dynamic
-attribute:
-
-.. code-block:: jinja
-
-    {{ attribute(object, method) is defined ? 'Method exists' : 'Method does not exist' }}
-
-.. note::
-
-    The resolution algorithm is the same as the one used for the ``.``
-    notation, except that the item can be any valid expression.
diff --git a/core/vendor/twig/twig/doc/functions/block.rst b/core/vendor/twig/twig/doc/functions/block.rst
deleted file mode 100644
index fd571ef..0000000
--- a/core/vendor/twig/twig/doc/functions/block.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-``block``
-=========
-
-When a template uses inheritance and if you want to print a block multiple
-times, use the ``block`` function:
-
-.. code-block:: jinja
-
-    <title>{% block title %}{% endblock %}</title>
-
-    <h1>{{ block('title') }}</h1>
-
-    {% block body %}{% endblock %}
-
-.. seealso:: :doc:`extends<../tags/extends>`, :doc:`parent<../functions/parent>`
diff --git a/core/vendor/twig/twig/doc/functions/constant.rst b/core/vendor/twig/twig/doc/functions/constant.rst
deleted file mode 100644
index bea0e9f..0000000
--- a/core/vendor/twig/twig/doc/functions/constant.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-``constant``
-============
-
-.. versionadded: 1.12.1
-    constant now accepts object instances as the second argument.
-
-``constant`` returns the constant value for a given string:
-
-.. code-block:: jinja
-
-    {{ some_date|date(constant('DATE_W3C')) }}
-    {{ constant('Namespace\\Classname::CONSTANT_NAME') }}
-
-As of 1.12.1 you can read constants from object instances as well:
-
-.. code-block:: jinja
-
-    {{ constant('RSS', date) }}
diff --git a/core/vendor/twig/twig/doc/functions/cycle.rst b/core/vendor/twig/twig/doc/functions/cycle.rst
deleted file mode 100644
index e343493..0000000
--- a/core/vendor/twig/twig/doc/functions/cycle.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-``cycle``
-=========
-
-The ``cycle`` function cycles on an array of values:
-
-.. code-block:: jinja
-
-    {% set start_year = date() | date('Y') %}
-    {% set end_year = start_year + 5 %}
-
-    {% for year in start_year..end_year %}
-        {{ cycle(['odd', 'even'], loop.index0) }}
-    {% endfor %}
-
-The array can contain any number of values:
-
-.. code-block:: jinja
-
-    {% set fruits = ['apple', 'orange', 'citrus'] %}
-
-    {% for i in 0..10 %}
-        {{ cycle(fruits, i) }}
-    {% endfor %}
-
-Arguments
----------
-
-* ``position``: The cycle position
diff --git a/core/vendor/twig/twig/doc/functions/date.rst b/core/vendor/twig/twig/doc/functions/date.rst
deleted file mode 100644
index 714e08c..0000000
--- a/core/vendor/twig/twig/doc/functions/date.rst
+++ /dev/null
@@ -1,52 +0,0 @@
-``date``
-========
-
-.. versionadded:: 1.6
-    The date function has been added in Twig 1.6.
-
-.. versionadded:: 1.6.1
-    The default timezone support has been added in Twig 1.6.1.
-
-Converts an argument to a date to allow date comparison:
-
-.. code-block:: jinja
-
-    {% if date(user.created_at) < date('-2days') %}
-        {# do something #}
-    {% endif %}
-
-The argument must be in one of PHP’s supported `date and time formats`_.
-
-You can pass a timezone as the second argument:
-
-.. code-block:: jinja
-
-    {% if date(user.created_at) < date('-2days', 'Europe/Paris') %}
-        {# do something #}
-    {% endif %}
-
-If no argument is passed, the function returns the current date:
-
-.. code-block:: jinja
-
-    {% if date(user.created_at) < date() %}
-        {# always! #}
-    {% endif %}
-
-.. note::
-
-    You can set the default timezone globally by calling ``setTimezone()`` on
-    the ``core`` extension instance:
-
-    .. code-block:: php
-
-        $twig = new Twig_Environment($loader);
-        $twig->getExtension('core')->setTimezone('Europe/Paris');
-
-Arguments
----------
-
-* ``date``:     The date
-* ``timezone``: The timezone
-
-.. _`date and time formats`: http://php.net/manual/en/datetime.formats.php
diff --git a/core/vendor/twig/twig/doc/functions/dump.rst b/core/vendor/twig/twig/doc/functions/dump.rst
deleted file mode 100644
index a231f08..0000000
--- a/core/vendor/twig/twig/doc/functions/dump.rst
+++ /dev/null
@@ -1,69 +0,0 @@
-``dump``
-========
-
-.. versionadded:: 1.5
-    The ``dump`` function was added in Twig 1.5.
-
-The ``dump`` function dumps information about a template variable. This is
-mostly useful to debug a template that does not behave as expected by
-introspecting its variables:
-
-.. code-block:: jinja
-
-    {{ dump(user) }}
-
-.. note::
-
-    The ``dump`` function is not available by default. You must add the
-    ``Twig_Extension_Debug`` extension explicitly when creating your Twig
-    environment::
-
-        $twig = new Twig_Environment($loader, array(
-            'debug' => true,
-            // ...
-        ));
-        $twig->addExtension(new Twig_Extension_Debug());
-
-    Even when enabled, the ``dump`` function won't display anything if the
-    ``debug`` option on the environment is not enabled (to avoid leaking debug
-    information on a production server).
-
-In an HTML context, wrap the output with a ``pre`` tag to make it easier to
-read:
-
-.. code-block:: jinja
-
-    <pre>
-        {{ dump(user) }}
-    </pre>
-
-.. tip::
-
-    Using a ``pre`` tag is not needed when `XDebug`_ is enabled and
-    ``html_errors`` is ``on``; as a bonus, the output is also nicer with
-    XDebug enabled.
-
-You can debug several variables by passing them as additional arguments:
-
-.. code-block:: jinja
-
-    {{ dump(user, categories) }}
-
-If you don't pass any value, all variables from the current context are
-dumped:
-
-.. code-block:: jinja
-
-    {{ dump() }}
-
-.. note::
-
-    Internally, Twig uses the PHP `var_dump`_ function.
-
-Arguments
----------
-
-* ``context``: The context to dump
-
-.. _`XDebug`:   http://xdebug.org/docs/display
-.. _`var_dump`: http://php.net/var_dump
diff --git a/core/vendor/twig/twig/doc/functions/include.rst b/core/vendor/twig/twig/doc/functions/include.rst
deleted file mode 100644
index 33bd56d..0000000
--- a/core/vendor/twig/twig/doc/functions/include.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-``include``
-===========
-
-.. versionadded:: 1.12
-    The ``include`` function was added in Twig 1.12.
-
-The ``include`` function returns the rendered content of a template:
-
-.. code-block:: jinja
-
-    {{ include('template.html') }}
-    {{ include(some_var) }}
-
-Included templates have access to the variables of the active context.
-
-If you are using the filesystem loader, the templates are looked for in the
-paths defined by it.
-
-The context is passed by default to the template but you can also pass
-additional variables:
-
-.. code-block:: jinja
-
-    {# template.html will have access to the variables from the current context and the additional ones provided #}
-    {{ include('template.html', {foo: 'bar'}) }}
-
-You can disable access to the context by setting ``with_context`` to
-``false``:
-
-.. code-block:: jinja
-
-    {# only the foo variable will be accessible #}
-    {{ include('template.html', {foo: 'bar'}, with_context = false) }}
-
-.. code-block:: jinja
-
-    {# no variables will be accessible #}
-    {{ include('template.html', with_context = false) }}
-
-And if the expression evaluates to a ``Twig_Template`` object, Twig will use it
-directly::
-
-    // {{ include(template) }}
-
-    $template = $twig->loadTemplate('some_template.twig');
-
-    $twig->loadTemplate('template.twig')->display(array('template' => $template));
-
-When you set the ``ignore_missing`` flag, Twig will return an empty string if
-the template does not exist:
-
-.. code-block:: jinja
-
-    {{ include('sidebar.html', ignore_missing = true) }}
-
-You can also provide a list of templates that are checked for existence before
-inclusion. The first template that exists will be rendered:
-
-.. code-block:: jinja
-
-    {{ include(['page_detailed.html', 'page.html']) }}
-
-If ``ignore_missing`` is set, it will fall back to rendering nothing if none
-of the templates exist, otherwise it will throw an exception.
-
-When including a template created by an end user, you should consider
-sandboxing it:
-
-.. code-block:: jinja
-
-    {{ include('page.html', sandboxed = true) }}
-
-Arguments
----------
-
-* ``template``:       The template to render
-* ``variables``:      The variables to pass to the template
-* ``with_context``:   Whether to pass the current context variables or not
-* ``ignore_missing``: Whether to ignore missing templates or not
-* ``sandboxed``:      Whether to sandbox the template or not
diff --git a/core/vendor/twig/twig/doc/functions/index.rst b/core/vendor/twig/twig/doc/functions/index.rst
deleted file mode 100644
index 07214a7..0000000
--- a/core/vendor/twig/twig/doc/functions/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-Functions
-=========
-
-.. toctree::
-    :maxdepth: 1
-
-    attribute
-    block
-    constant
-    cycle
-    date
-    dump
-    include
-    max
-    min
-    parent
-    random
-    range
-    source
-    template_from_string
diff --git a/core/vendor/twig/twig/doc/functions/max.rst b/core/vendor/twig/twig/doc/functions/max.rst
deleted file mode 100644
index 6f3cfc5..0000000
--- a/core/vendor/twig/twig/doc/functions/max.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-``max``
-=======
-
-.. versionadded:: 1.15
-    The ``max`` function was added in Twig 1.15.
-
-``max`` returns the biggest value of a sequence or a set of values:
-
-.. code-block:: jinja
-
-    {{ max(1, 3, 2) }}
-    {{ max([1, 3, 2]) }}
-
-When called with a mapping, max ignores keys and only compares values:
-
-.. code-block:: jinja
-
-    {{ max({2: "e", 1: "a", 3: "b", 5: "d", 4: "c"}) }}
-    {# returns "e" #}
-
diff --git a/core/vendor/twig/twig/doc/functions/min.rst b/core/vendor/twig/twig/doc/functions/min.rst
deleted file mode 100644
index 7b6a65e..0000000
--- a/core/vendor/twig/twig/doc/functions/min.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-``min``
-=======
-
-.. versionadded:: 1.15
-    The ``min`` function was added in Twig 1.15.
-
-``min`` returns the lowest value of a sequence or a set of values:
-
-.. code-block:: jinja
-
-    {{ min(1, 3, 2) }}
-    {{ min([1, 3, 2]) }}
-
-When called with a mapping, min ignores keys and only compares values:
-
-.. code-block:: jinja
-
-    {{ min({2: "e", 3: "a", 1: "b", 5: "d", 4: "c"}) }}
-    {# returns "a" #}
-
diff --git a/core/vendor/twig/twig/doc/functions/parent.rst b/core/vendor/twig/twig/doc/functions/parent.rst
deleted file mode 100644
index f5bd200..0000000
--- a/core/vendor/twig/twig/doc/functions/parent.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-``parent``
-==========
-
-When a template uses inheritance, it's possible to render the contents of the
-parent block when overriding a block by using the ``parent`` function:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% block sidebar %}
-        <h3>Table Of Contents</h3>
-        ...
-        {{ parent() }}
-    {% endblock %}
-
-The ``parent()`` call will return the content of the ``sidebar`` block as
-defined in the ``base.html`` template.
-
-.. seealso:: :doc:`extends<../tags/extends>`, :doc:`block<../functions/block>`, :doc:`block<../tags/block>`
diff --git a/core/vendor/twig/twig/doc/functions/random.rst b/core/vendor/twig/twig/doc/functions/random.rst
deleted file mode 100644
index 168e74f..0000000
--- a/core/vendor/twig/twig/doc/functions/random.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-``random``
-==========
-
-.. versionadded:: 1.5
-    The ``random`` function was added in Twig 1.5.
-
-.. versionadded:: 1.6
-    String and integer handling was added in Twig 1.6.
-
-The ``random`` function returns a random value depending on the supplied
-parameter type:
-
-* a random item from a sequence;
-* a random character from a string;
-* a random integer between 0 and the integer parameter (inclusive).
-
-.. code-block:: jinja
-
-    {{ random(['apple', 'orange', 'citrus']) }} {# example output: orange #}
-    {{ random('ABC') }}                         {# example output: C #}
-    {{ random() }}                              {# example output: 15386094 (works as the native PHP mt_rand function) #}
-    {{ random(5) }}                             {# example output: 3 #}
-
-Arguments
----------
-
-* ``values``: The values
-
-.. _`mt_rand`: http://php.net/mt_rand
diff --git a/core/vendor/twig/twig/doc/functions/range.rst b/core/vendor/twig/twig/doc/functions/range.rst
deleted file mode 100644
index b7cd011..0000000
--- a/core/vendor/twig/twig/doc/functions/range.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-``range``
-=========
-
-Returns a list containing an arithmetic progression of integers:
-
-.. code-block:: jinja
-
-    {% for i in range(0, 3) %}
-        {{ i }},
-    {% endfor %}
-
-    {# outputs 0, 1, 2, 3, #}
-
-When step is given (as the third parameter), it specifies the increment (or
-decrement):
-
-.. code-block:: jinja
-
-    {% for i in range(0, 6, 2) %}
-        {{ i }},
-    {% endfor %}
-
-    {# outputs 0, 2, 4, 6, #}
-
-The Twig built-in ``..`` operator is just syntactic sugar for the ``range``
-function (with a step of 1):
-
-.. code-block:: jinja
-
-    {% for i in 0..3 %}
-        {{ i }},
-    {% endfor %}
-
-.. tip::
-
-    The ``range`` function works as the native PHP `range`_ function.
-
-Arguments
----------
-
-* ``low``:  The first value of the sequence.
-* ``high``: The highest possible value of the sequence.
-* ``step``: The increment between elements of the sequence.
-
-.. _`range`: http://php.net/range
diff --git a/core/vendor/twig/twig/doc/functions/source.rst b/core/vendor/twig/twig/doc/functions/source.rst
deleted file mode 100644
index 3c921b1..0000000
--- a/core/vendor/twig/twig/doc/functions/source.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-``source``
-==========
-
-.. versionadded:: 1.15
-    The ``source`` function was added in Twig 1.15.
-
-.. versionadded:: 1.18.3
-    The ``ignore_missing`` flag was added in Twig 1.18.3.
-
-The ``source`` function returns the content of a template without rendering it:
-
-.. code-block:: jinja
-
-    {{ source('template.html') }}
-    {{ source(some_var) }}
-
-When you set the ``ignore_missing`` flag, Twig will return an empty string if
-the template does not exist:
-
-.. code-block:: jinja
-
-    {{ source('template.html', ignore_missing = true) }}
-
-The function uses the same template loaders as the ones used to include
-templates. So, if you are using the filesystem loader, the templates are looked
-for in the paths defined by it.
-
-Arguments
----------
-
-* ``name``: The name of the template to read
-* ``ignore_missing``: Whether to ignore missing templates or not
diff --git a/core/vendor/twig/twig/doc/functions/template_from_string.rst b/core/vendor/twig/twig/doc/functions/template_from_string.rst
deleted file mode 100644
index ce6a60d..0000000
--- a/core/vendor/twig/twig/doc/functions/template_from_string.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-``template_from_string``
-========================
-
-.. versionadded:: 1.11
-    The ``template_from_string`` function was added in Twig 1.11.
-
-The ``template_from_string`` function loads a template from a string:
-
-.. code-block:: jinja
-
-    {{ include(template_from_string("Hello {{ name }}")) }}
-    {{ include(template_from_string(page.template)) }}
-
-.. note::
-
-    The ``template_from_string`` function is not available by default. You
-    must add the ``Twig_Extension_StringLoader`` extension explicitly when
-    creating your Twig environment::
-
-        $twig = new Twig_Environment(...);
-        $twig->addExtension(new Twig_Extension_StringLoader());
-
-.. note::
-
-    Even if you will probably always use the ``template_from_string`` function
-    with the ``include`` function, you can use it with any tag or function that
-    takes a template as an argument (like the ``embed`` or ``extends`` tags).
-
-Arguments
----------
-
-* ``template``: The template
diff --git a/core/vendor/twig/twig/doc/index.rst b/core/vendor/twig/twig/doc/index.rst
deleted file mode 100644
index 358bd73..0000000
--- a/core/vendor/twig/twig/doc/index.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-Twig
-====
-
-.. toctree::
-    :maxdepth: 2
-
-    intro
-    installation
-    templates
-    api
-    advanced
-    internals
-    deprecated
-    recipes
-    coding_standards
-    tags/index
-    filters/index
-    functions/index
-    tests/index
diff --git a/core/vendor/twig/twig/doc/installation.rst b/core/vendor/twig/twig/doc/installation.rst
deleted file mode 100644
index afdcf16..0000000
--- a/core/vendor/twig/twig/doc/installation.rst
+++ /dev/null
@@ -1,116 +0,0 @@
-Installation
-============
-
-You have multiple ways to install Twig.
-
-Installing the Twig PHP package
--------------------------------
-
-Installing via Composer (recommended)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Install `Composer`_ and run the following command to get the latest version:
-
-.. code-block:: bash
-
-    composer require twig/twig:~1.0
-
-Installing from the tarball release
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1. Download the most recent tarball from the `download page`_
-2. Verify the integrity of the tarball http://fabien.potencier.org/article/73/signing-project-releases
-3. Unpack the tarball
-4. Move the files somewhere in your project
-
-Installing the development version
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. code-block:: bash
-
-    git clone git://github.com/twigphp/Twig.git
-
-Installing the PEAR package
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. note::
-
-    Using PEAR for installing Twig is deprecated and Twig 1.15.1 was the last
-    version published on the PEAR channel; use Composer instead.
-
-.. code-block:: bash
-
-    pear channel-discover pear.twig-project.org
-    pear install twig/Twig
-
-Installing the C extension
---------------------------
-
-.. versionadded:: 1.4
-    The C extension was added in Twig 1.4.
-
-.. note::
-
-    The C extension is **optional** but it brings some nice performance
-    improvements. Note that the extension is not a replacement for the PHP
-    code; it only implements a small part of the PHP code to improve the
-    performance at runtime; you must still install the regular PHP code.
-
-Twig comes with a C extension that enhances the performance of the Twig
-runtime engine; install it like any other PHP extensions:
-
-.. code-block:: bash
-
-    cd ext/twig
-    phpize
-    ./configure
-    make
-    make install
-
-.. note::
-
-    You can also install the C extension via PEAR (note that this method is
-    deprecated and newer versions of Twig are not available on the PEAR
-    channel):
-
-    .. code-block:: bash
-
-        pear channel-discover pear.twig-project.org
-        pear install twig/CTwig
-
-For Windows:
-
-1. Setup the build environment following the `PHP documentation`_
-2. Put Twig's C extension source code into ``C:\php-sdk\phpdev\vcXX\x86\php-source-directory\ext\twig``
-3. Use the ``configure --disable-all --enable-cli --enable-twig=shared`` command instead of step 14
-4. ``nmake``
-5. Copy the ``C:\php-sdk\phpdev\vcXX\x86\php-source-directory\Release_TS\php_twig.dll`` file to your PHP setup.
-
-.. tip::
-
-    For Windows ZendServer, ZTS is not enabled as mentioned in `Zend Server
-    FAQ`_.
-
-    You have to use ``configure --disable-all --disable-zts --enable-cli
-    --enable-twig=shared`` to be able to build the twig C extension for
-    ZendServer.
-
-    The built DLL will be available in
-    ``C:\\php-sdk\\phpdev\\vcXX\\x86\\php-source-directory\\Release``
-
-Finally, enable the extension in your ``php.ini`` configuration file:
-
-.. code-block:: ini
-
-    extension=twig.so #For Unix systems
-    extension=php_twig.dll #For Windows systems
-
-And from now on, Twig will automatically compile your templates to take
-advantage of the C extension. Note that this extension does not replace the
-PHP code but only provides an optimized version of the
-``Twig_Template::getAttribute()`` method.
-
-.. _`download page`:     https://github.com/twigphp/Twig/tags
-.. _`Composer`:          https://getcomposer.org/download/
-.. _`PHP documentation`: https://wiki.php.net/internals/windows/stepbystepbuild
-.. _`Zend Server FAQ`:   http://www.zend.com/en/products/server/faq#faqD6
diff --git a/core/vendor/twig/twig/doc/internals.rst b/core/vendor/twig/twig/doc/internals.rst
deleted file mode 100644
index ef1174d..0000000
--- a/core/vendor/twig/twig/doc/internals.rst
+++ /dev/null
@@ -1,138 +0,0 @@
-Twig Internals
-==============
-
-Twig is very extensible and you can easily hack it. Keep in mind that you
-should probably try to create an extension before hacking the core, as most
-features and enhancements can be handled with extensions. This chapter is also
-useful for people who want to understand how Twig works under the hood.
-
-How does Twig work?
--------------------
-
-The rendering of a Twig template can be summarized into four key steps:
-
-* **Load** the template: If the template is already compiled, load it and go
-  to the *evaluation* step, otherwise:
-
-  * First, the **lexer** tokenizes the template source code into small pieces
-    for easier processing;
-  * Then, the **parser** converts the token stream into a meaningful tree
-    of nodes (the Abstract Syntax Tree);
-  * Eventually, the *compiler* transforms the AST into PHP code.
-
-* **Evaluate** the template: It basically means calling the ``display()``
-  method of the compiled template and passing it the context.
-
-The Lexer
----------
-
-The lexer tokenizes a template source code into a token stream (each token is
-an instance of ``Twig_Token``, and the stream is an instance of
-``Twig_TokenStream``). The default lexer recognizes 13 different token types:
-
-* ``Twig_Token::BLOCK_START_TYPE``, ``Twig_Token::BLOCK_END_TYPE``: Delimiters for blocks (``{% %}``)
-* ``Twig_Token::VAR_START_TYPE``, ``Twig_Token::VAR_END_TYPE``: Delimiters for variables (``{{ }}``)
-* ``Twig_Token::TEXT_TYPE``: A text outside an expression;
-* ``Twig_Token::NAME_TYPE``: A name in an expression;
-* ``Twig_Token::NUMBER_TYPE``: A number in an expression;
-* ``Twig_Token::STRING_TYPE``: A string in an expression;
-* ``Twig_Token::OPERATOR_TYPE``: An operator;
-* ``Twig_Token::PUNCTUATION_TYPE``: A punctuation sign;
-* ``Twig_Token::INTERPOLATION_START_TYPE``, ``Twig_Token::INTERPOLATION_END_TYPE`` (as of Twig 1.5): Delimiters for string interpolation;
-* ``Twig_Token::EOF_TYPE``: Ends of template.
-
-You can manually convert a source code into a token stream by calling the
-``tokenize()`` method of an environment::
-
-    $stream = $twig->tokenize($source, $identifier);
-
-As the stream has a ``__toString()`` method, you can have a textual
-representation of it by echoing the object::
-
-    echo $stream."\n";
-
-Here is the output for the ``Hello {{ name }}`` template:
-
-.. code-block:: text
-
-    TEXT_TYPE(Hello )
-    VAR_START_TYPE()
-    NAME_TYPE(name)
-    VAR_END_TYPE()
-    EOF_TYPE()
-
-.. note::
-
-    The default lexer (``Twig_Lexer``) can be changed by calling
-    the ``setLexer()`` method::
-
-        $twig->setLexer($lexer);
-
-The Parser
-----------
-
-The parser converts the token stream into an AST (Abstract Syntax Tree), or a
-node tree (an instance of ``Twig_Node_Module``). The core extension defines
-the basic nodes like: ``for``, ``if``, ... and the expression nodes.
-
-You can manually convert a token stream into a node tree by calling the
-``parse()`` method of an environment::
-
-    $nodes = $twig->parse($stream);
-
-Echoing the node object gives you a nice representation of the tree::
-
-    echo $nodes."\n";
-
-Here is the output for the ``Hello {{ name }}`` template:
-
-.. code-block:: text
-
-    Twig_Node_Module(
-      Twig_Node_Text(Hello )
-      Twig_Node_Print(
-        Twig_Node_Expression_Name(name)
-      )
-    )
-
-.. note::
-
-    The default parser (``Twig_TokenParser``) can be changed by calling the
-    ``setParser()`` method::
-
-        $twig->setParser($parser);
-
-The Compiler
-------------
-
-The last step is done by the compiler. It takes a node tree as an input and
-generates PHP code usable for runtime execution of the template.
-
-You can manually compile a node tree to PHP code with the ``compile()`` method
-of an environment::
-
-    $php = $twig->compile($nodes);
-
-The generated template for a ``Hello {{ name }}`` template reads as follows
-(the actual output can differ depending on the version of Twig you are
-using)::
-
-    /* Hello {{ name }} */
-    class __TwigTemplate_1121b6f109fe93ebe8c6e22e3712bceb extends Twig_Template
-    {
-        protected function doDisplay(array $context, array $blocks = array())
-        {
-            // line 1
-            echo "Hello ";
-            echo twig_escape_filter($this->env, isset($context["name"]) ? $context["name"] : null), "html", null, true);
-        }
-
-        // some more code
-    }
-
-.. note::
-
-    The default compiler (``Twig_Compiler``) can be changed by calling the
-    ``setCompiler()`` method::
-
-        $twig->setCompiler($compiler);
diff --git a/core/vendor/twig/twig/doc/intro.rst b/core/vendor/twig/twig/doc/intro.rst
deleted file mode 100644
index 9b38c97..0000000
--- a/core/vendor/twig/twig/doc/intro.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-Introduction
-============
-
-This is the documentation for Twig, the flexible, fast, and secure template
-engine for PHP.
-
-If you have any exposure to other text-based template languages, such as
-Smarty, Django, or Jinja, you should feel right at home with Twig. It's both
-designer and developer friendly by sticking to PHP's principles and adding
-functionality useful for templating environments.
-
-The key-features are...
-
-* *Fast*: Twig compiles templates down to plain optimized PHP code. The
-  overhead compared to regular PHP code was reduced to the very minimum.
-
-* *Secure*: Twig has a sandbox mode to evaluate untrusted template code. This
-  allows Twig to be used as a template language for applications where users
-  may modify the template design.
-
-* *Flexible*: Twig is powered by a flexible lexer and parser. This allows the
-  developer to define its own custom tags and filters, and create its own DSL.
-
-Twig is used by many Open-Source projects like Symfony, Drupal8, eZPublish,
-phpBB, Piwik, OroCRM, and many frameworks have support for it as well like
-Slim, Yii, Laravel, Codeigniter, and Kohana, just to name a few.
-
-Prerequisites
--------------
-
-Twig needs at least **PHP 5.2.7** to run.
-
-Installation
-------------
-
-The recommended way to install Twig is via Composer:
-
-.. code-block:: bash
-
-    composer require "twig/twig:~1.0"
-
-.. note::
-
-    To learn more about the other installation methods, read the
-    :doc:`installation<installation>` chapter; it also explains how to install
-    the Twig C extension.
-
-Basic API Usage
----------------
-
-This section gives you a brief introduction to the PHP API for Twig.
-
-.. code-block:: php
-
-    require_once '/path/to/vendor/autoload.php';
-
-    $loader = new Twig_Loader_Array(array(
-        'index' => 'Hello {{ name }}!',
-    ));
-    $twig = new Twig_Environment($loader);
-
-    echo $twig->render('index', array('name' => 'Fabien'));
-
-Twig uses a loader (``Twig_Loader_Array``) to locate templates, and an
-environment (``Twig_Environment``) to store the configuration.
-
-The ``render()`` method loads the template passed as a first argument and
-renders it with the variables passed as a second argument.
-
-As templates are generally stored on the filesystem, Twig also comes with a
-filesystem loader::
-
-    $loader = new Twig_Loader_Filesystem('/path/to/templates');
-    $twig = new Twig_Environment($loader, array(
-        'cache' => '/path/to/compilation_cache',
-    ));
-
-    echo $twig->render('index.html', array('name' => 'Fabien'));
-
-.. tip::
-
-    If you are not using Composer, use the Twig built-in autoloader::
-
-        require_once '/path/to/lib/Twig/Autoloader.php';
-        Twig_Autoloader::register();
diff --git a/core/vendor/twig/twig/doc/recipes.rst b/core/vendor/twig/twig/doc/recipes.rst
deleted file mode 100644
index 86cede6..0000000
--- a/core/vendor/twig/twig/doc/recipes.rst
+++ /dev/null
@@ -1,425 +0,0 @@
-Recipes
-=======
-
-Making a Layout conditional
----------------------------
-
-Working with Ajax means that the same content is sometimes displayed as is,
-and sometimes decorated with a layout. As Twig layout template names can be
-any valid expression, you can pass a variable that evaluates to ``true`` when
-the request is made via Ajax and choose the layout accordingly:
-
-.. code-block:: jinja
-
-    {% extends request.ajax ? "base_ajax.html" : "base.html" %}
-
-    {% block content %}
-        This is the content to be displayed.
-    {% endblock %}
-
-Making an Include dynamic
--------------------------
-
-When including a template, its name does not need to be a string. For
-instance, the name can depend on the value of a variable:
-
-.. code-block:: jinja
-
-    {% include var ~ '_foo.html' %}
-
-If ``var`` evaluates to ``index``, the ``index_foo.html`` template will be
-rendered.
-
-As a matter of fact, the template name can be any valid expression, such as
-the following:
-
-.. code-block:: jinja
-
-    {% include var|default('index') ~ '_foo.html' %}
-
-Overriding a Template that also extends itself
-----------------------------------------------
-
-A template can be customized in two different ways:
-
-* *Inheritance*: A template *extends* a parent template and overrides some
-  blocks;
-
-* *Replacement*: If you use the filesystem loader, Twig loads the first
-  template it finds in a list of configured directories; a template found in a
-  directory *replaces* another one from a directory further in the list.
-
-But how do you combine both: *replace* a template that also extends itself
-(aka a template in a directory further in the list)?
-
-Let's say that your templates are loaded from both ``.../templates/mysite``
-and ``.../templates/default`` in this order. The ``page.twig`` template,
-stored in ``.../templates/default`` reads as follows:
-
-.. code-block:: jinja
-
-    {# page.twig #}
-    {% extends "layout.twig" %}
-
-    {% block content %}
-    {% endblock %}
-
-You can replace this template by putting a file with the same name in
-``.../templates/mysite``. And if you want to extend the original template, you
-might be tempted to write the following:
-
-.. code-block:: jinja
-
-    {# page.twig in .../templates/mysite #}
-    {% extends "page.twig" %} {# from .../templates/default #}
-
-Of course, this will not work as Twig will always load the template from
-``.../templates/mysite``.
-
-It turns out it is possible to get this to work, by adding a directory right
-at the end of your template directories, which is the parent of all of the
-other directories: ``.../templates`` in our case. This has the effect of
-making every template file within our system uniquely addressable. Most of the
-time you will use the "normal" paths, but in the special case of wanting to
-extend a template with an overriding version of itself we can reference its
-parent's full, unambiguous template path in the extends tag:
-
-.. code-block:: jinja
-
-    {# page.twig in .../templates/mysite #}
-    {% extends "default/page.twig" %} {# from .../templates #}
-
-.. note::
-
-    This recipe was inspired by the following Django wiki page:
-    http://code.djangoproject.com/wiki/ExtendingTemplates
-
-Customizing the Syntax
-----------------------
-
-Twig allows some syntax customization for the block delimiters. It's not
-recommended to use this feature as templates will be tied with your custom
-syntax. But for specific projects, it can make sense to change the defaults.
-
-To change the block delimiters, you need to create your own lexer object::
-
-    $twig = new Twig_Environment();
-
-    $lexer = new Twig_Lexer($twig, array(
-        'tag_comment'   => array('{#', '#}'),
-        'tag_block'     => array('{%', '%}'),
-        'tag_variable'  => array('{{', '}}'),
-        'interpolation' => array('#{', '}'),
-    ));
-    $twig->setLexer($lexer);
-
-Here are some configuration example that simulates some other template engines
-syntax::
-
-    // Ruby erb syntax
-    $lexer = new Twig_Lexer($twig, array(
-        'tag_comment'  => array('<%#', '%>'),
-        'tag_block'    => array('<%', '%>'),
-        'tag_variable' => array('<%=', '%>'),
-    ));
-
-    // SGML Comment Syntax
-    $lexer = new Twig_Lexer($twig, array(
-        'tag_comment'  => array('<!--#', '-->'),
-        'tag_block'    => array('<!--', '-->'),
-        'tag_variable' => array('${', '}'),
-    ));
-
-    // Smarty like
-    $lexer = new Twig_Lexer($twig, array(
-        'tag_comment'  => array('{*', '*}'),
-        'tag_block'    => array('{', '}'),
-        'tag_variable' => array('{$', '}'),
-    ));
-
-Using dynamic Object Properties
--------------------------------
-
-When Twig encounters a variable like ``article.title``, it tries to find a
-``title`` public property in the ``article`` object.
-
-It also works if the property does not exist but is rather defined dynamically
-thanks to the magic ``__get()`` method; you just need to also implement the
-``__isset()`` magic method like shown in the following snippet of code::
-
-    class Article
-    {
-        public function __get($name)
-        {
-            if ('title' == $name) {
-                return 'The title';
-            }
-
-            // throw some kind of error
-        }
-
-        public function __isset($name)
-        {
-            if ('title' == $name) {
-                return true;
-            }
-
-            return false;
-        }
-    }
-
-Accessing the parent Context in Nested Loops
---------------------------------------------
-
-Sometimes, when using nested loops, you need to access the parent context. The
-parent context is always accessible via the ``loop.parent`` variable. For
-instance, if you have the following template data::
-
-    $data = array(
-        'topics' => array(
-            'topic1' => array('Message 1 of topic 1', 'Message 2 of topic 1'),
-            'topic2' => array('Message 1 of topic 2', 'Message 2 of topic 2'),
-        ),
-    );
-
-And the following template to display all messages in all topics:
-
-.. code-block:: jinja
-
-    {% for topic, messages in topics %}
-        * {{ loop.index }}: {{ topic }}
-      {% for message in messages %}
-          - {{ loop.parent.loop.index }}.{{ loop.index }}: {{ message }}
-      {% endfor %}
-    {% endfor %}
-
-The output will be similar to:
-
-.. code-block:: text
-
-    * 1: topic1
-      - 1.1: The message 1 of topic 1
-      - 1.2: The message 2 of topic 1
-    * 2: topic2
-      - 2.1: The message 1 of topic 2
-      - 2.2: The message 2 of topic 2
-
-In the inner loop, the ``loop.parent`` variable is used to access the outer
-context. So, the index of the current ``topic`` defined in the outer for loop
-is accessible via the ``loop.parent.loop.index`` variable.
-
-Defining undefined Functions and Filters on the Fly
----------------------------------------------------
-
-When a function (or a filter) is not defined, Twig defaults to throw a
-``Twig_Error_Syntax`` exception. However, it can also call a `callback`_ (any
-valid PHP callable) which should return a function (or a filter).
-
-For filters, register callbacks with ``registerUndefinedFilterCallback()``.
-For functions, use ``registerUndefinedFunctionCallback()``::
-
-    // auto-register all native PHP functions as Twig functions
-    // don't try this at home as it's not secure at all!
-    $twig->registerUndefinedFunctionCallback(function ($name) {
-        if (function_exists($name)) {
-            return new Twig_Function_Function($name);
-        }
-
-        return false;
-    });
-
-If the callable is not able to return a valid function (or filter), it must
-return ``false``.
-
-If you register more than one callback, Twig will call them in turn until one
-does not return ``false``.
-
-.. tip::
-
-    As the resolution of functions and filters is done during compilation,
-    there is no overhead when registering these callbacks.
-
-Validating the Template Syntax
-------------------------------
-
-When template code is provided by a third-party (through a web interface for
-instance), it might be interesting to validate the template syntax before
-saving it. If the template code is stored in a `$template` variable, here is
-how you can do it::
-
-    try {
-        $twig->parse($twig->tokenize($template));
-
-        // the $template is valid
-    } catch (Twig_Error_Syntax $e) {
-        // $template contains one or more syntax errors
-    }
-
-If you iterate over a set of files, you can pass the filename to the
-``tokenize()`` method to get the filename in the exception message::
-
-    foreach ($files as $file) {
-        try {
-            $twig->parse($twig->tokenize($template, $file));
-
-            // the $template is valid
-        } catch (Twig_Error_Syntax $e) {
-            // $template contains one or more syntax errors
-        }
-    }
-
-.. note::
-
-    This method won't catch any sandbox policy violations because the policy
-    is enforced during template rendering (as Twig needs the context for some
-    checks like allowed methods on objects).
-
-Refreshing modified Templates when APC is enabled and apc.stat = 0
-------------------------------------------------------------------
-
-When using APC with ``apc.stat`` set to ``0`` and Twig cache enabled, clearing
-the template cache won't update the APC cache. To get around this, one can
-extend ``Twig_Environment`` and force the update of the APC cache when Twig
-rewrites the cache::
-
-    class Twig_Environment_APC extends Twig_Environment
-    {
-        protected function writeCacheFile($file, $content)
-        {
-            parent::writeCacheFile($file, $content);
-
-            // Compile cached file into bytecode cache
-            apc_compile_file($file);
-        }
-    }
-
-Reusing a stateful Node Visitor
--------------------------------
-
-When attaching a visitor to a ``Twig_Environment`` instance, Twig uses it to
-visit *all* templates it compiles. If you need to keep some state information
-around, you probably want to reset it when visiting a new template.
-
-This can be easily achieved with the following code::
-
-    protected $someTemplateState = array();
-
-    public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Module) {
-            // reset the state as we are entering a new template
-            $this->someTemplateState = array();
-        }
-
-        // ...
-
-        return $node;
-    }
-
-Using a Database to store Templates
------------------------------------
-
-If you are developing a CMS, templates are usually stored in a database. This
-recipe gives you a simple PDO template loader you can use as a starting point
-for your own.
-
-First, let's create a temporary in-memory SQLite3 database to work with::
-
-    $dbh = new PDO('sqlite::memory:');
-    $dbh->exec('CREATE TABLE templates (name STRING, source STRING, last_modified INTEGER)');
-    $base = '{% block content %}{% endblock %}';
-    $index = '
-    {% extends "base.twig" %}
-    {% block content %}Hello {{ name }}{% endblock %}
-    ';
-    $now = time();
-    $dbh->exec("INSERT INTO templates (name, source, last_modified) VALUES ('base.twig', '$base', $now)");
-    $dbh->exec("INSERT INTO templates (name, source, last_modified) VALUES ('index.twig', '$index', $now)");
-
-We have created a simple ``templates`` table that hosts two templates:
-``base.twig`` and ``index.twig``.
-
-Now, let's define a loader able to use this database::
-
-    class DatabaseTwigLoader implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
-    {
-        protected $dbh;
-
-        public function __construct(PDO $dbh)
-        {
-            $this->dbh = $dbh;
-        }
-
-        public function getSource($name)
-        {
-            if (false === $source = $this->getValue('source', $name)) {
-                throw new Twig_Error_Loader(sprintf('Template "%s" does not exist.', $name));
-            }
-
-            return $source;
-        }
-
-        // Twig_ExistsLoaderInterface as of Twig 1.11
-        public function exists($name)
-        {
-            return $name === $this->getValue('name', $name);
-        }
-
-        public function getCacheKey($name)
-        {
-            return $name;
-        }
-
-        public function isFresh($name, $time)
-        {
-            if (false === $lastModified = $this->getValue('last_modified', $name)) {
-                return false;
-            }
-
-            return $lastModified <= $time;
-        }
-
-        protected function getValue($column, $name)
-        {
-            $sth = $this->dbh->prepare('SELECT '.$column.' FROM templates WHERE name = :name');
-            $sth->execute(array(':name' => (string) $name));
-
-            return $sth->fetchColumn();
-        }
-    }
-
-Finally, here is an example on how you can use it::
-
-    $loader = new DatabaseTwigLoader($dbh);
-    $twig = new Twig_Environment($loader);
-
-    echo $twig->render('index.twig', array('name' => 'Fabien'));
-
-Using different Template Sources
---------------------------------
-
-This recipe is the continuation of the previous one. Even if you store the
-contributed templates in a database, you might want to keep the original/base
-templates on the filesystem. When templates can be loaded from different
-sources, you need to use the ``Twig_Loader_Chain`` loader.
-
-As you can see in the previous recipe, we reference the template in the exact
-same way as we would have done it with a regular filesystem loader. This is
-the key to be able to mix and match templates coming from the database, the
-filesystem, or any other loader for that matter: the template name should be a
-logical name, and not the path from the filesystem::
-
-    $loader1 = new DatabaseTwigLoader($dbh);
-    $loader2 = new Twig_Loader_Array(array(
-        'base.twig' => '{% block content %}{% endblock %}',
-    ));
-    $loader = new Twig_Loader_Chain(array($loader1, $loader2));
-
-    $twig = new Twig_Environment($loader);
-
-    echo $twig->render('index.twig', array('name' => 'Fabien'));
-
-Now that the ``base.twig`` templates is defined in an array loader, you can
-remove it from the database, and everything else will still work as before.
-
-.. _callback: http://www.php.net/manual/en/function.is-callable.php
diff --git a/core/vendor/twig/twig/doc/tags/autoescape.rst b/core/vendor/twig/twig/doc/tags/autoescape.rst
deleted file mode 100644
index 4208d1a..0000000
--- a/core/vendor/twig/twig/doc/tags/autoescape.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-``autoescape``
-==============
-
-Whether automatic escaping is enabled or not, you can mark a section of a
-template to be escaped or not by using the ``autoescape`` tag:
-
-.. code-block:: jinja
-
-    {# The following syntax works as of Twig 1.8 -- see the note below for previous versions #}
-
-    {% autoescape %}
-        Everything will be automatically escaped in this block
-        using the HTML strategy
-    {% endautoescape %}
-
-    {% autoescape 'html' %}
-        Everything will be automatically escaped in this block
-        using the HTML strategy
-    {% endautoescape %}
-
-    {% autoescape 'js' %}
-        Everything will be automatically escaped in this block
-        using the js escaping strategy
-    {% endautoescape %}
-
-    {% autoescape false %}
-        Everything will be outputted as is in this block
-    {% endautoescape %}
-
-.. note::
-
-    Before Twig 1.8, the syntax was different:
-
-    .. code-block:: jinja
-
-        {% autoescape true %}
-            Everything will be automatically escaped in this block
-            using the HTML strategy
-        {% endautoescape %}
-
-        {% autoescape false %}
-            Everything will be outputted as is in this block
-        {% endautoescape %}
-
-        {% autoescape true js %}
-            Everything will be automatically escaped in this block
-            using the js escaping strategy
-        {% endautoescape %}
-
-When automatic escaping is enabled everything is escaped by default except for
-values explicitly marked as safe. Those can be marked in the template by using
-the :doc:`raw<../filters/raw>` filter:
-
-.. code-block:: jinja
-
-    {% autoescape %}
-        {{ safe_value|raw }}
-    {% endautoescape %}
-
-Functions returning template data (like :doc:`macros<macro>` and
-:doc:`parent<../functions/parent>`) always return safe markup.
-
-.. note::
-
-    Twig is smart enough to not escape an already escaped value by the
-    :doc:`escape<../filters/escape>` filter.
-
-.. note::
-
-    Twig does not escape static expressions:
-
-    .. code-block:: jinja
-
-        {% set hello = "<strong>Hello</strong>" %}
-        {{ hello }}
-        {{ "<strong>world</strong>" }}
-
-    Will be rendered "<strong>Hello</strong> **world**".
-
-.. note::
-
-    The chapter :doc:`Twig for Developers<../api>` gives more information
-    about when and how automatic escaping is applied.
diff --git a/core/vendor/twig/twig/doc/tags/block.rst b/core/vendor/twig/twig/doc/tags/block.rst
deleted file mode 100644
index e380482..0000000
--- a/core/vendor/twig/twig/doc/tags/block.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-``block``
-=========
-
-Blocks are used for inheritance and act as placeholders and replacements at
-the same time. They are documented in detail in the documentation for the
-:doc:`extends<../tags/extends>` tag.
-
-Block names should consist of alphanumeric characters, and underscores. Dashes
-are not permitted.
-
-.. seealso:: :doc:`block<../functions/block>`, :doc:`parent<../functions/parent>`, :doc:`use<../tags/use>`, :doc:`extends<../tags/extends>`
diff --git a/core/vendor/twig/twig/doc/tags/do.rst b/core/vendor/twig/twig/doc/tags/do.rst
deleted file mode 100644
index 1c344e3..0000000
--- a/core/vendor/twig/twig/doc/tags/do.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-``do``
-======
-
-.. versionadded:: 1.5
-    The ``do`` tag was added in Twig 1.5.
-
-The ``do`` tag works exactly like the regular variable expression (``{{ ...
-}}``) just that it doesn't print anything:
-
-.. code-block:: jinja
-
-    {% do 1 + 2 %}
diff --git a/core/vendor/twig/twig/doc/tags/embed.rst b/core/vendor/twig/twig/doc/tags/embed.rst
deleted file mode 100644
index 5a6a029..0000000
--- a/core/vendor/twig/twig/doc/tags/embed.rst
+++ /dev/null
@@ -1,178 +0,0 @@
-``embed``
-=========
-
-.. versionadded:: 1.8
-    The ``embed`` tag was added in Twig 1.8.
-
-The ``embed`` tag combines the behaviour of :doc:`include<include>` and
-:doc:`extends<extends>`.
-It allows you to include another template's contents, just like ``include``
-does. But it also allows you to override any block defined inside the
-included template, like when extending a template.
-
-Think of an embedded template as a "micro layout skeleton".
-
-.. code-block:: jinja
-
-    {% embed "teasers_skeleton.twig" %}
-        {# These blocks are defined in "teasers_skeleton.twig" #}
-        {# and we override them right here:                    #}
-        {% block left_teaser %}
-            Some content for the left teaser box
-        {% endblock %}
-        {% block right_teaser %}
-            Some content for the right teaser box
-        {% endblock %}
-    {% endembed %}
-
-The ``embed`` tag takes the idea of template inheritance to the level of
-content fragments. While template inheritance allows for "document skeletons",
-which are filled with life by child templates, the ``embed`` tag allows you to
-create "skeletons" for smaller units of content and re-use and fill them
-anywhere you like.
-
-Since the use case may not be obvious, let's look at a simplified example.
-Imagine a base template shared by multiple HTML pages, defining a single block
-named "content":
-
-.. code-block:: text
-
-    ┌─── page layout ─────────────────────┐
-    │                                     │
-    │           ┌── block "content" ──┐   │
-    │           │                     │   │
-    │           │                     │   │
-    │           │ (child template to  │   │
-    │           │  put content here)  │   │
-    │           │                     │   │
-    │           │                     │   │
-    │           └─────────────────────┘   │
-    │                                     │
-    └─────────────────────────────────────┘
-
-Some pages ("foo" and "bar") share the same content structure -
-two vertically stacked boxes:
-
-.. code-block:: text
-
-    ┌─── page layout ─────────────────────┐
-    │                                     │
-    │           ┌── block "content" ──┐   │
-    │           │ ┌─ block "top" ───┐ │   │
-    │           │ │                 │ │   │
-    │           │ └─────────────────┘ │   │
-    │           │ ┌─ block "bottom" ┐ │   │
-    │           │ │                 │ │   │
-    │           │ └─────────────────┘ │   │
-    │           └─────────────────────┘   │
-    │                                     │
-    └─────────────────────────────────────┘
-
-While other pages ("boom" and "baz") share a different content structure -
-two boxes side by side:
-
-.. code-block:: text
-
-    ┌─── page layout ─────────────────────┐
-    │                                     │
-    │           ┌── block "content" ──┐   │
-    │           │                     │   │    
-    │           │ ┌ block ┐ ┌ block ┐ │   │
-    │           │ │"left" │ │"right"│ │   │
-    │           │ │       │ │       │ │   │
-    │           │ │       │ │       │ │   │
-    │           │ └───────┘ └───────┘ │   │
-    │           └─────────────────────┘   │
-    │                                     │
-    └─────────────────────────────────────┘
-
-Without the ``embed`` tag, you have two ways to design your templates:
-
- * Create two "intermediate" base templates that extend the master layout
-   template: one with vertically stacked boxes to be used by the "foo" and
-   "bar" pages and another one with side-by-side boxes for the "boom" and
-   "baz" pages.
-
- * Embed the markup for the top/bottom and left/right boxes into each page 
-   template directly.
-
-These two solutions do not scale well because they each have a major drawback:
-
- * The first solution may indeed work for this simplified example. But imagine
-   we add a sidebar, which may again contain different, recurring structures
-   of content. Now we would need to create intermediate base templates for
-   all occurring combinations of content structure and sidebar structure...
-   and so on.
-
- * The second solution involves duplication of common code with all its negative
-   consequences: any change involves finding and editing all affected copies
-   of the structure, correctness has to be verified for each copy, copies may
-   go out of sync by careless modifications etc.
-
-In such a situation, the ``embed`` tag comes in handy. The common layout
-code can live in a single base template, and the two different content structures,
-let's call them "micro layouts" go into separate templates which are embedded
-as necessary:
-
-Page template ``foo.twig``:
-
-.. code-block:: jinja
-
-    {% extends "layout_skeleton.twig" %}
-
-    {% block content %}
-        {% embed "vertical_boxes_skeleton.twig" %}
-            {% block top %}
-                Some content for the top box
-            {% endblock %}
-
-            {% block bottom %}
-                Some content for the bottom box
-            {% endblock %}
-        {% endembed %}
-    {% endblock %}
-
-And here is the code for ``vertical_boxes_skeleton.twig``:
-
-.. code-block:: html+jinja
-
-    <div class="top_box">
-        {% block top %}
-            Top box default content
-        {% endblock %}
-    </div>
-
-    <div class="bottom_box">
-        {% block bottom %}
-            Bottom box default content
-        {% endblock %}
-    </div>
-
-The goal of the ``vertical_boxes_skeleton.twig`` template being to factor
-out the HTML markup for the boxes.
-
-The ``embed`` tag takes the exact same arguments as the ``include`` tag:
-
-.. code-block:: jinja
-
-    {% embed "base" with {'foo': 'bar'} %}
-        ...
-    {% endembed %}
-
-    {% embed "base" with {'foo': 'bar'} only %}
-        ...
-    {% endembed %}
-
-    {% embed "base" ignore missing %}
-        ...
-    {% endembed %}
-
-.. warning::
-
-    As embedded templates do not have "names", auto-escaping strategies based
-    on the template "filename" won't work as expected if you change the
-    context (for instance, if you embed a CSS/JavaScript template into an HTML
-    one). In that case, explicitly set the default auto-escaping strategy with
-    the ``autoescape`` tag.
-
-.. seealso:: :doc:`include<../tags/include>`
diff --git a/core/vendor/twig/twig/doc/tags/extends.rst b/core/vendor/twig/twig/doc/tags/extends.rst
deleted file mode 100644
index 1ad2b12..0000000
--- a/core/vendor/twig/twig/doc/tags/extends.rst
+++ /dev/null
@@ -1,268 +0,0 @@
-``extends``
-===========
-
-The ``extends`` tag can be used to extend a template from another one.
-
-.. note::
-
-    Like PHP, Twig does not support multiple inheritance. So you can only have
-    one extends tag called per rendering. However, Twig supports horizontal
-    :doc:`reuse<use>`.
-
-Let's define a base template, ``base.html``, which defines a simple HTML
-skeleton document:
-
-.. code-block:: html+jinja
-
-    <!DOCTYPE html>
-    <html>
-        <head>
-            {% block head %}
-                <link rel="stylesheet" href="style.css" />
-                <title>{% block title %}{% endblock %} - My Webpage</title>
-            {% endblock %}
-        </head>
-        <body>
-            <div id="content">{% block content %}{% endblock %}</div>
-            <div id="footer">
-                {% block footer %}
-                    &copy; Copyright 2011 by <a href="http://domain.invalid/">you</a>.
-                {% endblock %}
-            </div>
-        </body>
-    </html>
-
-In this example, the :doc:`block<block>` tags define four blocks that child
-templates can fill in.
-
-All the ``block`` tag does is to tell the template engine that a child
-template may override those portions of the template.
-
-Child Template
---------------
-
-A child template might look like this:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% block title %}Index{% endblock %}
-    {% block head %}
-        {{ parent() }}
-        <style type="text/css">
-            .important { color: #336699; }
-        </style>
-    {% endblock %}
-    {% block content %}
-        <h1>Index</h1>
-        <p class="important">
-            Welcome on my awesome homepage.
-        </p>
-    {% endblock %}
-
-The ``extends`` tag is the key here. It tells the template engine that this
-template "extends" another template. When the template system evaluates this
-template, first it locates the parent. The extends tag should be the first tag
-in the template.
-
-Note that since the child template doesn't define the ``footer`` block, the
-value from the parent template is used instead.
-
-You can't define multiple ``block`` tags with the same name in the same
-template. This limitation exists because a block tag works in "both"
-directions. That is, a block tag doesn't just provide a hole to fill - it also
-defines the content that fills the hole in the *parent*. If there were two
-similarly-named ``block`` tags in a template, that template's parent wouldn't
-know which one of the blocks' content to use.
-
-If you want to print a block multiple times you can however use the
-``block`` function:
-
-.. code-block:: jinja
-
-    <title>{% block title %}{% endblock %}</title>
-    <h1>{{ block('title') }}</h1>
-    {% block body %}{% endblock %}
-
-Parent Blocks
--------------
-
-It's possible to render the contents of the parent block by using the
-:doc:`parent<../functions/parent>` function. This gives back the results of
-the parent block:
-
-.. code-block:: jinja
-
-    {% block sidebar %}
-        <h3>Table Of Contents</h3>
-        ...
-        {{ parent() }}
-    {% endblock %}
-
-Named Block End-Tags
---------------------
-
-Twig allows you to put the name of the block after the end tag for better
-readability:
-
-.. code-block:: jinja
-
-    {% block sidebar %}
-        {% block inner_sidebar %}
-            ...
-        {% endblock inner_sidebar %}
-    {% endblock sidebar %}
-
-Of course, the name after the ``endblock`` word must match the block name.
-
-Block Nesting and Scope
------------------------
-
-Blocks can be nested for more complex layouts. Per default, blocks have access
-to variables from outer scopes:
-
-.. code-block:: jinja
-
-    {% for item in seq %}
-        <li>{% block loop_item %}{{ item }}{% endblock %}</li>
-    {% endfor %}
-
-Block Shortcuts
----------------
-
-For blocks with few content, it's possible to use a shortcut syntax. The
-following constructs do the same:
-
-.. code-block:: jinja
-
-    {% block title %}
-        {{ page_title|title }}
-    {% endblock %}
-
-.. code-block:: jinja
-
-    {% block title page_title|title %}
-
-Dynamic Inheritance
--------------------
-
-Twig supports dynamic inheritance by using a variable as the base template:
-
-.. code-block:: jinja
-
-    {% extends some_var %}
-
-If the variable evaluates to a ``Twig_Template`` object, Twig will use it as
-the parent template::
-
-    // {% extends layout %}
-
-    $layout = $twig->loadTemplate('some_layout_template.twig');
-
-    $twig->display('template.twig', array('layout' => $layout));
-
-.. versionadded:: 1.2
-    The possibility to pass an array of templates has been added in Twig 1.2.
-
-You can also provide a list of templates that are checked for existence. The
-first template that exists will be used as a parent:
-
-.. code-block:: jinja
-
-    {% extends ['layout.html', 'base_layout.html'] %}
-
-Conditional Inheritance
------------------------
-
-As the template name for the parent can be any valid Twig expression, it's
-possible to make the inheritance mechanism conditional:
-
-.. code-block:: jinja
-
-    {% extends standalone ? "minimum.html" : "base.html" %}
-
-In this example, the template will extend the "minimum.html" layout template
-if the ``standalone`` variable evaluates to ``true``, and "base.html"
-otherwise.
-
-How do blocks work?
--------------------
-
-A block provides a way to change how a certain part of a template is rendered
-but it does not interfere in any way with the logic around it.
-
-Let's take the following example to illustrate how a block works and more
-importantly, how it does not work:
-
-.. code-block:: jinja
-
-    {# base.twig #}
-
-    {% for post in posts %}
-        {% block post %}
-            <h1>{{ post.title }}</h1>
-            <p>{{ post.body }}</p>
-        {% endblock %}
-    {% endfor %}
-
-If you render this template, the result would be exactly the same with or
-without the ``block`` tag. The ``block`` inside the ``for`` loop is just a way
-to make it overridable by a child template:
-
-.. code-block:: jinja
-
-    {# child.twig #}
-
-    {% extends "base.twig" %}
-
-    {% block post %}
-        <article>
-            <header>{{ post.title }}</header>
-            <section>{{ post.text }}</section>
-        </article>
-    {% endblock %}
-
-Now, when rendering the child template, the loop is going to use the block
-defined in the child template instead of the one defined in the base one; the
-executed template is then equivalent to the following one:
-
-.. code-block:: jinja
-
-    {% for post in posts %}
-        <article>
-            <header>{{ post.title }}</header>
-            <section>{{ post.text }}</section>
-        </article>
-    {% endfor %}
-
-Let's take another example: a block included within an ``if`` statement:
-
-.. code-block:: jinja
-
-    {% if posts is empty %}
-        {% block head %}
-            {{ parent() }}
-
-            <meta name="robots" content="noindex, follow">
-        {% endblock head %}
-    {% endif %}
-
-Contrary to what you might think, this template does not define a block
-conditionally; it just makes overridable by a child template the output of
-what will be rendered when the condition is ``true``.
-
-If you want the output to be displayed conditionally, use the following
-instead:
-
-.. code-block:: jinja
-
-    {% block head %}
-        {{ parent() }}
-
-        {% if posts is empty %}
-            <meta name="robots" content="noindex, follow">
-        {% endif %}
-    {% endblock head %}
-
-.. seealso:: :doc:`block<../functions/block>`, :doc:`block<../tags/block>`, :doc:`parent<../functions/parent>`, :doc:`use<../tags/use>`
diff --git a/core/vendor/twig/twig/doc/tags/filter.rst b/core/vendor/twig/twig/doc/tags/filter.rst
deleted file mode 100644
index 82ca5c6..0000000
--- a/core/vendor/twig/twig/doc/tags/filter.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-``filter``
-==========
-
-Filter sections allow you to apply regular Twig filters on a block of template
-data. Just wrap the code in the special ``filter`` section:
-
-.. code-block:: jinja
-
-    {% filter upper %}
-        This text becomes uppercase
-    {% endfilter %}
-
-You can also chain filters:
-
-.. code-block:: jinja
-
-    {% filter lower|escape %}
-        <strong>SOME TEXT</strong>
-    {% endfilter %}
-
-    {# outputs "&lt;strong&gt;some text&lt;/strong&gt;" #}
diff --git a/core/vendor/twig/twig/doc/tags/flush.rst b/core/vendor/twig/twig/doc/tags/flush.rst
deleted file mode 100644
index 55ef593..0000000
--- a/core/vendor/twig/twig/doc/tags/flush.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-``flush``
-=========
-
-.. versionadded:: 1.5
-    The flush tag was added in Twig 1.5.
-
-The ``flush`` tag tells Twig to flush the output buffer:
-
-.. code-block:: jinja
-
-    {% flush %}
-
-.. note::
-
-    Internally, Twig uses the PHP `flush`_ function.
-
-.. _`flush`: http://php.net/flush
diff --git a/core/vendor/twig/twig/doc/tags/for.rst b/core/vendor/twig/twig/doc/tags/for.rst
deleted file mode 100644
index 0673b55..0000000
--- a/core/vendor/twig/twig/doc/tags/for.rst
+++ /dev/null
@@ -1,172 +0,0 @@
-``for``
-=======
-
-Loop over each item in a sequence. For example, to display a list of users
-provided in a variable called ``users``:
-
-.. code-block:: jinja
-
-    <h1>Members</h1>
-    <ul>
-        {% for user in users %}
-            <li>{{ user.username|e }}</li>
-        {% endfor %}
-    </ul>
-
-.. note::
-
-    A sequence can be either an array or an object implementing the
-    ``Traversable`` interface.
-
-If you do need to iterate over a sequence of numbers, you can use the ``..``
-operator:
-
-.. code-block:: jinja
-
-    {% for i in 0..10 %}
-        * {{ i }}
-    {% endfor %}
-
-The above snippet of code would print all numbers from 0 to 10.
-
-It can be also useful with letters:
-
-.. code-block:: jinja
-
-    {% for letter in 'a'..'z' %}
-        * {{ letter }}
-    {% endfor %}
-
-The ``..`` operator can take any expression at both sides:
-
-.. code-block:: jinja
-
-    {% for letter in 'a'|upper..'z'|upper %}
-        * {{ letter }}
-    {% endfor %}
-
-.. tip:
-
-    If you need a step different from 1, you can use the ``range`` function
-    instead.
-
-The `loop` variable
--------------------
-
-Inside of a ``for`` loop block you can access some special variables:
-
-===================== =============================================================
-Variable              Description
-===================== =============================================================
-``loop.index``        The current iteration of the loop. (1 indexed)
-``loop.index0``       The current iteration of the loop. (0 indexed)
-``loop.revindex``     The number of iterations from the end of the loop (1 indexed)
-``loop.revindex0``    The number of iterations from the end of the loop (0 indexed)
-``loop.first``        True if first iteration
-``loop.last``         True if last iteration
-``loop.length``       The number of items in the sequence
-``loop.parent``       The parent context
-===================== =============================================================
-
-.. code-block:: jinja
-
-    {% for user in users %}
-        {{ loop.index }} - {{ user.username }}
-    {% endfor %}
-
-.. note::
-
-    The ``loop.length``, ``loop.revindex``, ``loop.revindex0``, and
-    ``loop.last`` variables are only available for PHP arrays, or objects that
-    implement the ``Countable`` interface. They are also not available when
-    looping with a condition.
-
-.. versionadded:: 1.2
-    The ``if`` modifier support has been added in Twig 1.2.
-
-Adding a condition
-------------------
-
-Unlike in PHP, it's not possible to ``break`` or ``continue`` in a loop. You
-can however filter the sequence during iteration which allows you to skip
-items. The following example skips all the users which are not active:
-
-.. code-block:: jinja
-
-    <ul>
-        {% for user in users if user.active %}
-            <li>{{ user.username|e }}</li>
-        {% endfor %}
-    </ul>
-
-The advantage is that the special loop variable will count correctly thus not
-counting the users not iterated over. Keep in mind that properties like
-``loop.last`` will not be defined when using loop conditions.
-
-.. note::
-
-    Using the ``loop`` variable within the condition is not recommended as it
-    will probably not be doing what you expect it to. For instance, adding a
-    condition like ``loop.index > 4`` won't work as the index is only
-    incremented when the condition is true (so the condition will never
-    match).
-
-The `else` Clause
------------------
-
-If no iteration took place because the sequence was empty, you can render a
-replacement block by using ``else``:
-
-.. code-block:: jinja
-
-    <ul>
-        {% for user in users %}
-            <li>{{ user.username|e }}</li>
-        {% else %}
-            <li><em>no user found</em></li>
-        {% endfor %}
-    </ul>
-
-Iterating over Keys
--------------------
-
-By default, a loop iterates over the values of the sequence. You can iterate
-on keys by using the ``keys`` filter:
-
-.. code-block:: jinja
-
-    <h1>Members</h1>
-    <ul>
-        {% for key in users|keys %}
-            <li>{{ key }}</li>
-        {% endfor %}
-    </ul>
-
-Iterating over Keys and Values
-------------------------------
-
-You can also access both keys and values:
-
-.. code-block:: jinja
-
-    <h1>Members</h1>
-    <ul>
-        {% for key, user in users %}
-            <li>{{ key }}: {{ user.username|e }}</li>
-        {% endfor %}
-    </ul>
-
-Iterating over a Subset
------------------------
-
-You might want to iterate over a subset of values. This can be achieved using
-the :doc:`slice <../filters/slice>` filter:
-
-.. code-block:: jinja
-
-    <h1>Top Ten Members</h1>
-    <ul>
-        {% for user in users|slice(0, 10) %}
-            <li>{{ user.username|e }}</li>
-        {% endfor %}
-    </ul>
diff --git a/core/vendor/twig/twig/doc/tags/from.rst b/core/vendor/twig/twig/doc/tags/from.rst
deleted file mode 100644
index 39334fd..0000000
--- a/core/vendor/twig/twig/doc/tags/from.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-``from``
-========
-
-The ``from`` tag imports :doc:`macro<../tags/macro>` names into the current
-namespace. The tag is documented in detail in the documentation for the
-:doc:`import<../tags/import>` tag.
-
-.. seealso:: :doc:`macro<../tags/macro>`, :doc:`import<../tags/import>`
diff --git a/core/vendor/twig/twig/doc/tags/if.rst b/core/vendor/twig/twig/doc/tags/if.rst
deleted file mode 100644
index 12edf98..0000000
--- a/core/vendor/twig/twig/doc/tags/if.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-``if``
-======
-
-The ``if`` statement in Twig is comparable with the if statements of PHP.
-
-In the simplest form you can use it to test if an expression evaluates to
-``true``:
-
-.. code-block:: jinja
-
-    {% if online == false %}
-        <p>Our website is in maintenance mode. Please, come back later.</p>
-    {% endif %}
-
-You can also test if an array is not empty:
-
-.. code-block:: jinja
-
-    {% if users %}
-        <ul>
-            {% for user in users %}
-                <li>{{ user.username|e }}</li>
-            {% endfor %}
-        </ul>
-    {% endif %}
-
-.. note::
-
-    If you want to test if the variable is defined, use ``if users is
-    defined`` instead.
-
-You can also use ``not`` to check for values that evaluate to ``false``:
-
-.. code-block:: jinja
-
-    {% if not user.subscribed %}
-        <p>You are not subscribed to our mailing list.</p>
-    {% endif %}
-
-For multiple conditions, ``and`` and ``or`` can be used:
-
-.. code-block:: jinja
-
-    {% if temperature > 18 and temperature < 27 %}
-        <p>It's a nice day for a walk in the park.</p>
-    {% endif %}
-
-For multiple branches ``elseif`` and ``else`` can be used like in PHP. You can
-use more complex ``expressions`` there too:
-
-.. code-block:: jinja
-
-    {% if kenny.sick %}
-        Kenny is sick.
-    {% elseif kenny.dead %}
-        You killed Kenny! You bastard!!!
-    {% else %}
-        Kenny looks okay --- so far
-    {% endif %}
-
-.. note::
-
-    The rules to determine if an expression is ``true`` or ``false`` are the
-    same as in PHP; here are the edge cases rules:
-
-    ====================== ====================
-    Value                  Boolean evaluation
-    ====================== ====================
-    empty string           false
-    numeric zero           false
-    whitespace-only string true
-    empty array            false
-    null                   false
-    non-empty array        true
-    object                 true
-    ====================== ====================
diff --git a/core/vendor/twig/twig/doc/tags/import.rst b/core/vendor/twig/twig/doc/tags/import.rst
deleted file mode 100644
index 21a1e19..0000000
--- a/core/vendor/twig/twig/doc/tags/import.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-``import``
-==========
-
-Twig supports putting often used code into :doc:`macros<../tags/macro>`. These
-macros can go into different templates and get imported from there.
-
-There are two ways to import templates. You can import the complete template
-into a variable or request specific macros from it.
-
-Imagine we have a helper module that renders forms (called ``forms.html``):
-
-.. code-block:: jinja
-
-    {% macro input(name, value, type, size) %}
-        <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
-    {% endmacro %}
-
-    {% macro textarea(name, value, rows, cols) %}
-        <textarea name="{{ name }}" rows="{{ rows|default(10) }}" cols="{{ cols|default(40) }}">{{ value|e }}</textarea>
-    {% endmacro %}
-
-The easiest and most flexible is importing the whole module into a variable.
-That way you can access the attributes:
-
-.. code-block:: jinja
-
-    {% import 'forms.html' as forms %}
-
-    <dl>
-        <dt>Username</dt>
-        <dd>{{ forms.input('username') }}</dd>
-        <dt>Password</dt>
-        <dd>{{ forms.input('password', null, 'password') }}</dd>
-    </dl>
-    <p>{{ forms.textarea('comment') }}</p>
-
-Alternatively you can import names from the template into the current
-namespace:
-
-.. code-block:: jinja
-
-    {% from 'forms.html' import input as input_field, textarea %}
-
-    <dl>
-        <dt>Username</dt>
-        <dd>{{ input_field('username') }}</dd>
-        <dt>Password</dt>
-        <dd>{{ input_field('password', '', 'password') }}</dd>
-    </dl>
-    <p>{{ textarea('comment') }}</p>
-
-.. tip::
-
-    To import macros from the current file, use the special ``_self`` variable
-    for the source.
-
-.. seealso:: :doc:`macro<../tags/macro>`, :doc:`from<../tags/from>`
diff --git a/core/vendor/twig/twig/doc/tags/include.rst b/core/vendor/twig/twig/doc/tags/include.rst
deleted file mode 100644
index da18dc6..0000000
--- a/core/vendor/twig/twig/doc/tags/include.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-``include``
-===========
-
-The ``include`` statement includes a template and returns the rendered content
-of that file into the current namespace:
-
-.. code-block:: jinja
-
-    {% include 'header.html' %}
-        Body
-    {% include 'footer.html' %}
-
-Included templates have access to the variables of the active context.
-
-If you are using the filesystem loader, the templates are looked for in the
-paths defined by it.
-
-You can add additional variables by passing them after the ``with`` keyword:
-
-.. code-block:: jinja
-
-    {# template.html will have access to the variables from the current context and the additional ones provided #}
-    {% include 'template.html' with {'foo': 'bar'} %}
-
-    {% set vars = {'foo': 'bar'} %}
-    {% include 'template.html' with vars %}
-
-You can disable access to the context by appending the ``only`` keyword:
-
-.. code-block:: jinja
-
-    {# only the foo variable will be accessible #}
-    {% include 'template.html' with {'foo': 'bar'} only %}
-
-.. code-block:: jinja
-
-    {# no variables will be accessible #}
-    {% include 'template.html' only %}
-
-.. tip::
-
-    When including a template created by an end user, you should consider
-    sandboxing it. More information in the :doc:`Twig for Developers<../api>`
-    chapter and in the :doc:`sandbox<../tags/sandbox>` tag documentation.
-
-The template name can be any valid Twig expression:
-
-.. code-block:: jinja
-
-    {% include some_var %}
-    {% include ajax ? 'ajax.html' : 'not_ajax.html' %}
-
-And if the expression evaluates to a ``Twig_Template`` object, Twig will use it
-directly::
-
-    // {% include template %}
-
-    $template = $twig->loadTemplate('some_template.twig');
-
-    $twig->loadTemplate('template.twig')->display(array('template' => $template));
-
-.. versionadded:: 1.2
-    The ``ignore missing`` feature has been added in Twig 1.2.
-
-You can mark an include with ``ignore missing`` in which case Twig will ignore
-the statement if the template to be included does not exist. It has to be
-placed just after the template name. Here some valid examples:
-
-.. code-block:: jinja
-
-    {% include 'sidebar.html' ignore missing %}
-    {% include 'sidebar.html' ignore missing with {'foo': 'bar'} %}
-    {% include 'sidebar.html' ignore missing only %}
-
-.. versionadded:: 1.2
-    The possibility to pass an array of templates has been added in Twig 1.2.
-
-You can also provide a list of templates that are checked for existence before
-inclusion. The first template that exists will be included:
-
-.. code-block:: jinja
-
-    {% include ['page_detailed.html', 'page.html'] %}
-
-If ``ignore missing`` is given, it will fall back to rendering nothing if none
-of the templates exist, otherwise it will throw an exception.
diff --git a/core/vendor/twig/twig/doc/tags/index.rst b/core/vendor/twig/twig/doc/tags/index.rst
deleted file mode 100644
index e6a632b..0000000
--- a/core/vendor/twig/twig/doc/tags/index.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-Tags
-====
-
-.. toctree::
-    :maxdepth: 1
-
-    autoescape
-    block
-    do
-    embed
-    extends
-    filter
-    flush
-    for
-    from
-    if
-    import
-    include
-    macro
-    sandbox
-    set
-    spaceless
-    use
-    verbatim
diff --git a/core/vendor/twig/twig/doc/tags/macro.rst b/core/vendor/twig/twig/doc/tags/macro.rst
deleted file mode 100644
index 60a1567..0000000
--- a/core/vendor/twig/twig/doc/tags/macro.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-``macro``
-=========
-
-Macros are comparable with functions in regular programming languages. They
-are useful to put often used HTML idioms into reusable elements to not repeat
-yourself.
-
-Here is a small example of a macro that renders a form element:
-
-.. code-block:: jinja
-
-    {% macro input(name, value, type, size) %}
-        <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
-    {% endmacro %}
-
-Macros differs from native PHP functions in a few ways:
-
-* Default argument values are defined by using the ``default`` filter in the
-  macro body;
-
-* Arguments of a macro are always optional.
-
-* If extra positional arguments are passed to a macro, they end up in the
-  special ``varargs`` variable as a list of values.
-
-But as with PHP functions, macros don't have access to the current template
-variables.
-
-.. tip::
-
-    You can pass the whole context as an argument by using the special
-    ``_context`` variable.
-
-Macros can be defined in any template, and need to be "imported" before being
-used (see the documentation for the :doc:`import<../tags/import>` tag for more
-information):
-
-.. code-block:: jinja
-
-    {% import "forms.html" as forms %}
-
-The above ``import`` call imports the "forms.html" file (which can contain only
-macros, or a template and some macros), and import the functions as items of
-the ``forms`` variable.
-
-The macro can then be called at will:
-
-.. code-block:: jinja
-
-    <p>{{ forms.input('username') }}</p>
-    <p>{{ forms.input('password', null, 'password') }}</p>
-
-If macros are defined and used in the same template, you can use the
-special ``_self`` variable to import them:
-
-.. code-block:: jinja
-
-    {% import _self as forms %}
-
-    <p>{{ forms.input('username') }}</p>
-
-.. warning::
-
-    When you define a macro in the template where you are going to use it, you
-    might be tempted to call the macro directly via ``_self.input()`` instead
-    of importing it; even if seems to work, this is just a side-effect of the
-    current implementation and it won't work anymore in Twig 2.x.
-
-When you want to use a macro in another macro from the same file, you need to
-import it locally:
-
-.. code-block:: jinja
-
-    {% macro input(name, value, type, size) %}
-        <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
-    {% endmacro %}
-
-    {% macro wrapped_input(name, value, type, size) %}
-        {% import _self as forms %}
-
-        <div class="field">
-            {{ forms.input(name, value, type, size) }}
-        </div>
-    {% endmacro %}
-
-.. seealso:: :doc:`from<../tags/from>`, :doc:`import<../tags/import>`
diff --git a/core/vendor/twig/twig/doc/tags/sandbox.rst b/core/vendor/twig/twig/doc/tags/sandbox.rst
deleted file mode 100644
index e186726..0000000
--- a/core/vendor/twig/twig/doc/tags/sandbox.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-``sandbox``
-===========
-
-The ``sandbox`` tag can be used to enable the sandboxing mode for an included
-template, when sandboxing is not enabled globally for the Twig environment:
-
-.. code-block:: jinja
-
-    {% sandbox %}
-        {% include 'user.html' %}
-    {% endsandbox %}
-
-.. warning::
-
-    The ``sandbox`` tag is only available when the sandbox extension is
-    enabled (see the :doc:`Twig for Developers<../api>` chapter).
-
-.. note::
-
-    The ``sandbox`` tag can only be used to sandbox an include tag and it
-    cannot be used to sandbox a section of a template. The following example
-    won't work:
-
-    .. code-block:: jinja
-
-        {% sandbox %}
-            {% for i in 1..2 %}
-                {{ i }}
-            {% endfor %}
-        {% endsandbox %}
diff --git a/core/vendor/twig/twig/doc/tags/set.rst b/core/vendor/twig/twig/doc/tags/set.rst
deleted file mode 100644
index 3eba239..0000000
--- a/core/vendor/twig/twig/doc/tags/set.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-``set``
-=======
-
-Inside code blocks you can also assign values to variables. Assignments use
-the ``set`` tag and can have multiple targets.
-
-Here is how you can assign the ``bar`` value to the ``foo`` variable:
-
-.. code-block:: jinja
-
-    {% set foo = 'bar' %}
-
-After the ``set`` call, the ``foo`` variable is available in the template like
-any other ones:
-
-.. code-block:: jinja
-
-    {# displays bar #}
-    {{ foo }}
-
-The assigned value can be any valid :ref:`Twig expressions
-<twig-expressions>`:
-
-.. code-block:: jinja
-
-    {% set foo = [1, 2] %}
-    {% set foo = {'foo': 'bar'} %}
-    {% set foo = 'foo' ~ 'bar' %}
-
-Several variables can be assigned in one block:
-
-.. code-block:: jinja
-
-    {% set foo, bar = 'foo', 'bar' %}
-
-    {# is equivalent to #}
-
-    {% set foo = 'foo' %}
-    {% set bar = 'bar' %}
-
-The ``set`` tag can also be used to 'capture' chunks of text:
-
-.. code-block:: jinja
-
-    {% set foo %}
-        <div id="pagination">
-            ...
-        </div>
-    {% endset %}
-
-.. caution::
-
-    If you enable automatic output escaping, Twig will only consider the
-    content to be safe when capturing chunks of text.
-
-.. note::
-
-    Note that loops are scoped in Twig; therefore a variable declared inside a
-    ``for`` loop is not accessible outside the loop itself:
-
-    .. code-block:: jinja
-
-        {% for item in list %}
-            {% set foo = item %}
-        {% endfor %}
-
-        {# foo is NOT available #}
-
-    If you want to access the variable, just declare it before the loop:
-
-    .. code-block:: jinja
-
-        {% set foo = "" %}
-        {% for item in list %}
-            {% set foo = item %}
-        {% endfor %}
-
-        {# foo is available #}
diff --git a/core/vendor/twig/twig/doc/tags/spaceless.rst b/core/vendor/twig/twig/doc/tags/spaceless.rst
deleted file mode 100644
index b39cb27..0000000
--- a/core/vendor/twig/twig/doc/tags/spaceless.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-``spaceless``
-=============
-
-Use the ``spaceless`` tag to remove whitespace *between HTML tags*, not
-whitespace within HTML tags or whitespace in plain text:
-
-.. code-block:: jinja
-
-    {% spaceless %}
-        <div>
-            <strong>foo</strong>
-        </div>
-    {% endspaceless %}
-
-    {# output will be <div><strong>foo</strong></div> #}
-
-This tag is not meant to "optimize" the size of the generated HTML content but
-merely to avoid extra whitespace between HTML tags to avoid browser rendering
-quirks under some circumstances.
-
-.. tip::
-
-    If you want to optimize the size of the generated HTML content, gzip
-    compress the output instead.
-
-.. tip::
-
-    If you want to create a tag that actually removes all extra whitespace in
-    an HTML string, be warned that this is not as easy as it seems to be
-    (think of ``textarea`` or ``pre`` tags for instance). Using a third-party
-    library like Tidy is probably a better idea.
-
-.. tip::
-
-    For more information on whitespace control, read the
-    :ref:`dedicated section <templates-whitespace-control>` of the documentation and learn how
-    you can also use the whitespace control modifier on your tags.
diff --git a/core/vendor/twig/twig/doc/tags/use.rst b/core/vendor/twig/twig/doc/tags/use.rst
deleted file mode 100644
index 071b197..0000000
--- a/core/vendor/twig/twig/doc/tags/use.rst
+++ /dev/null
@@ -1,124 +0,0 @@
-``use``
-=======
-
-.. versionadded:: 1.1
-    Horizontal reuse was added in Twig 1.1.
-
-.. note::
-
-    Horizontal reuse is an advanced Twig feature that is hardly ever needed in
-    regular templates. It is mainly used by projects that need to make
-    template blocks reusable without using inheritance.
-
-Template inheritance is one of the most powerful Twig's feature but it is
-limited to single inheritance; a template can only extend one other template.
-This limitation makes template inheritance simple to understand and easy to
-debug:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% block title %}{% endblock %}
-    {% block content %}{% endblock %}
-
-Horizontal reuse is a way to achieve the same goal as multiple inheritance,
-but without the associated complexity:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% use "blocks.html" %}
-
-    {% block title %}{% endblock %}
-    {% block content %}{% endblock %}
-
-The ``use`` statement tells Twig to import the blocks defined in
-``blocks.html`` into the current template (it's like macros, but for blocks):
-
-.. code-block:: jinja
-
-    {# blocks.html #}
-    
-    {% block sidebar %}{% endblock %}
-
-In this example, the ``use`` statement imports the ``sidebar`` block into the
-main template. The code is mostly equivalent to the following one (the
-imported blocks are not outputted automatically):
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% block sidebar %}{% endblock %}
-    {% block title %}{% endblock %}
-    {% block content %}{% endblock %}
-
-.. note::
-
-    The ``use`` tag only imports a template if it does not extend another
-    template, if it does not define macros, and if the body is empty. But it
-    can *use* other templates.
-
-.. note::
-
-    Because ``use`` statements are resolved independently of the context
-    passed to the template, the template reference cannot be an expression.
-
-The main template can also override any imported block. If the template
-already defines the ``sidebar`` block, then the one defined in ``blocks.html``
-is ignored. To avoid name conflicts, you can rename imported blocks:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% use "blocks.html" with sidebar as base_sidebar, title as base_title %}
-
-    {% block sidebar %}{% endblock %}
-    {% block title %}{% endblock %}
-    {% block content %}{% endblock %}
-
-.. versionadded:: 1.3
-    The ``parent()`` support was added in Twig 1.3.
-
-The ``parent()`` function automatically determines the correct inheritance
-tree, so it can be used when overriding a block defined in an imported
-template:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% use "blocks.html" %}
-
-    {% block sidebar %}
-        {{ parent() }}
-    {% endblock %}
-
-    {% block title %}{% endblock %}
-    {% block content %}{% endblock %}
-
-In this example, ``parent()`` will correctly call the ``sidebar`` block from
-the ``blocks.html`` template.
-
-.. tip::
-
-    In Twig 1.2, renaming allows you to simulate inheritance by calling the
-    "parent" block:
-
-    .. code-block:: jinja
-
-        {% extends "base.html" %}
-
-        {% use "blocks.html" with sidebar as parent_sidebar %}
-
-        {% block sidebar %}
-            {{ block('parent_sidebar') }}
-        {% endblock %}
-
-.. note::
-
-    You can use as many ``use`` statements as you want in any given template.
-    If two imported templates define the same block, the latest one wins.
diff --git a/core/vendor/twig/twig/doc/tags/verbatim.rst b/core/vendor/twig/twig/doc/tags/verbatim.rst
deleted file mode 100644
index fe61ca1..0000000
--- a/core/vendor/twig/twig/doc/tags/verbatim.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-``verbatim``
-============
-
-.. versionadded:: 1.12
-    The ``verbatim`` tag was added in Twig 1.12 (it was named ``raw`` before).
-
-The ``verbatim`` tag marks sections as being raw text that should not be
-parsed. For example to put Twig syntax as example into a template you can use
-this snippet:
-
-.. code-block:: jinja
-
-    {% verbatim %}
-        <ul>
-        {% for item in seq %}
-            <li>{{ item }}</li>
-        {% endfor %}
-        </ul>
-    {% endverbatim %}
-
-.. note::
-
-    The ``verbatim`` tag works in the exact same way as the old ``raw`` tag,
-    but was renamed to avoid confusion with the ``raw`` filter.
\ No newline at end of file
diff --git a/core/vendor/twig/twig/doc/templates.rst b/core/vendor/twig/twig/doc/templates.rst
deleted file mode 100644
index ebdea9e..0000000
--- a/core/vendor/twig/twig/doc/templates.rst
+++ /dev/null
@@ -1,884 +0,0 @@
-Twig for Template Designers
-===========================
-
-This document describes the syntax and semantics of the template engine and
-will be most useful as reference to those creating Twig templates.
-
-Synopsis
---------
-
-A template is simply a text file. It can generate any text-based format (HTML,
-XML, CSV, LaTeX, etc.). It doesn't have a specific extension, ``.html`` or
-``.xml`` are just fine.
-
-A template contains **variables** or **expressions**, which get replaced with
-values when the template is evaluated, and **tags**, which control the logic
-of the template.
-
-Below is a minimal template that illustrates a few basics. We will cover further
-details later on:
-
-.. code-block:: html+jinja
-
-    <!DOCTYPE html>
-    <html>
-        <head>
-            <title>My Webpage</title>
-        </head>
-        <body>
-            <ul id="navigation">
-            {% for item in navigation %}
-                <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
-            {% endfor %}
-            </ul>
-
-            <h1>My Webpage</h1>
-            {{ a_variable }}
-        </body>
-    </html>
-
-There are two kinds of delimiters: ``{% ... %}`` and ``{{ ... }}``. The first
-one is used to execute statements such as for-loops, the latter prints the
-result of an expression to the template.
-
-IDEs Integration
-----------------
-
-Many IDEs support syntax highlighting and auto-completion for Twig:
-
-* *Textmate* via the `Twig bundle`_
-* *Vim* via the `Jinja syntax plugin`_ or the `vim-twig plugin`_
-* *Netbeans* via the `Twig syntax plugin`_ (until 7.1, native as of 7.2)
-* *PhpStorm* (native as of 2.1)
-* *Eclipse* via the `Twig plugin`_
-* *Sublime Text* via the `Twig bundle`_
-* *GtkSourceView* via the `Twig language definition`_ (used by gedit and other projects)
-* *Coda* and *SubEthaEdit* via the `Twig syntax mode`_
-* *Coda 2* via the `other Twig syntax mode`_
-* *Komodo* and *Komodo Edit* via the Twig highlight/syntax check mode
-* *Notepad++* via the `Notepad++ Twig Highlighter`_
-* *Emacs* via `web-mode.el`_
-* *Atom* via the `PHP-twig for atom`_
-
-Variables
----------
-
-The application passes variables to the templates for manipulation in the
-template. Variables may have attributes or elements you can access,
-too. The visual representation of a variable depends heavily on the application providing
-it.
-
-You can use a dot (``.``) to access attributes of a variable (methods or
-properties of a PHP object, or items of a PHP array), or the so-called
-"subscript" syntax (``[]``):
-
-.. code-block:: jinja
-
-    {{ foo.bar }}
-    {{ foo['bar'] }}
-
-When the attribute contains special characters (like ``-`` that would be
-interpreted as the minus operator), use the ``attribute`` function instead to
-access the variable attribute:
-
-.. code-block:: jinja
-
-    {# equivalent to the non-working foo.data-foo #}
-    {{ attribute(foo, 'data-foo') }}
-
-.. note::
-
-    It's important to know that the curly braces are *not* part of the
-    variable but the print statement. When accessing variables inside tags,
-    don't put the braces around them.
-
-If a variable or attribute does not exist, you will receive a ``null`` value
-when the ``strict_variables`` option is set to ``false``; alternatively, if ``strict_variables``
-is set, Twig will throw an error (see :ref:`environment options<environment_options>`).
-
-.. sidebar:: Implementation
-
-    For convenience's sake ``foo.bar`` does the following things on the PHP
-    layer:
-
-    * check if ``foo`` is an array and ``bar`` a valid element;
-    * if not, and if ``foo`` is an object, check that ``bar`` is a valid property;
-    * if not, and if ``foo`` is an object, check that ``bar`` is a valid method
-      (even if ``bar`` is the constructor - use ``__construct()`` instead);
-    * if not, and if ``foo`` is an object, check that ``getBar`` is a valid method;
-    * if not, and if ``foo`` is an object, check that ``isBar`` is a valid method;
-    * if not, return a ``null`` value.
-
-    ``foo['bar']`` on the other hand only works with PHP arrays:
-
-    * check if ``foo`` is an array and ``bar`` a valid element;
-    * if not, return a ``null`` value.
-
-.. note::
-
-    If you want to access a dynamic attribute of a variable, use the
-    :doc:`attribute<functions/attribute>` function instead.
-
-Global Variables
-~~~~~~~~~~~~~~~~
-
-The following variables are always available in templates:
-
-* ``_self``: references the current template (deprecated since Twig 1.20);
-* ``_context``: references the current context;
-* ``_charset``: references the current charset.
-
-Setting Variables
-~~~~~~~~~~~~~~~~~
-
-You can assign values to variables inside code blocks. Assignments use the
-:doc:`set<tags/set>` tag:
-
-.. code-block:: jinja
-
-    {% set foo = 'foo' %}
-    {% set foo = [1, 2] %}
-    {% set foo = {'foo': 'bar'} %}
-
-Filters
--------
-
-Variables can be modified by **filters**. Filters are separated from the
-variable by a pipe symbol (``|``) and may have optional arguments in
-parentheses. Multiple filters can be chained. The output of one filter is
-applied to the next.
-
-The following example removes all HTML tags from the ``name`` and title-cases
-it:
-
-.. code-block:: jinja
-
-    {{ name|striptags|title }}
-
-Filters that accept arguments have parentheses around the arguments. This
-example will join a list by commas:
-
-.. code-block:: jinja
-
-    {{ list|join(', ') }}
-
-To apply a filter on a section of code, wrap it in the
-:doc:`filter<tags/filter>` tag:
-
-.. code-block:: jinja
-
-    {% filter upper %}
-        This text becomes uppercase
-    {% endfilter %}
-
-Go to the :doc:`filters<filters/index>` page to learn more about built-in
-filters.
-
-Functions
----------
-
-Functions can be called to generate content. Functions are called by their
-name followed by parentheses (``()``) and may have arguments.
-
-For instance, the ``range`` function returns a list containing an arithmetic
-progression of integers:
-
-.. code-block:: jinja
-
-    {% for i in range(0, 3) %}
-        {{ i }},
-    {% endfor %}
-
-Go to the :doc:`functions<functions/index>` page to learn more about the
-built-in functions.
-
-Named Arguments
----------------
-
-.. versionadded:: 1.12
-    Support for named arguments was added in Twig 1.12.
-
-.. code-block:: jinja
-
-    {% for i in range(low=1, high=10, step=2) %}
-        {{ i }},
-    {% endfor %}
-
-Using named arguments makes your templates more explicit about the meaning of
-the values you pass as arguments:
-
-.. code-block:: jinja
-
-    {{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}
-
-    {# versus #}
-
-    {{ data|convert_encoding(from='iso-2022-jp', to='UTF-8') }}
-
-Named arguments also allow you to skip some arguments for which you don't want
-to change the default value:
-
-.. code-block:: jinja
-
-    {# the first argument is the date format, which defaults to the global date format if null is passed #}
-    {{ "now"|date(null, "Europe/Paris") }}
-
-    {# or skip the format value by using a named argument for the time zone #}
-    {{ "now"|date(timezone="Europe/Paris") }}
-
-You can also use both positional and named arguments in one call, in which
-case positional arguments must always come before named arguments:
-
-.. code-block:: jinja
-
-    {{ "now"|date('d/m/Y H:i', timezone="Europe/Paris") }}
-
-.. tip::
-
-    Each function and filter documentation page has a section where the names
-    of all arguments are listed when supported.
-
-Control Structure
------------------
-
-A control structure refers to all those things that control the flow of a
-program - conditionals (i.e. ``if``/``elseif``/``else``), ``for``-loops, as
-well as things like blocks. Control structures appear inside ``{% ... %}``
-blocks.
-
-For example, to display a list of users provided in a variable called
-``users``, use the :doc:`for<tags/for>` tag:
-
-.. code-block:: jinja
-
-    <h1>Members</h1>
-    <ul>
-        {% for user in users %}
-            <li>{{ user.username|e }}</li>
-        {% endfor %}
-    </ul>
-
-The :doc:`if<tags/if>` tag can be used to test an expression:
-
-.. code-block:: jinja
-
-    {% if users|length > 0 %}
-        <ul>
-            {% for user in users %}
-                <li>{{ user.username|e }}</li>
-            {% endfor %}
-        </ul>
-    {% endif %}
-
-Go to the :doc:`tags<tags/index>` page to learn more about the built-in tags.
-
-Comments
---------
-
-To comment-out part of a line in a template, use the comment syntax ``{# ...
-#}``. This is useful for debugging or to add information for other template
-designers or yourself:
-
-.. code-block:: jinja
-
-    {# note: disabled template because we no longer use this
-        {% for user in users %}
-            ...
-        {% endfor %}
-    #}
-
-Including other Templates
--------------------------
-
-The :doc:`include<tags/include>` tag is useful to include a template and
-return the rendered content of that template into the current one:
-
-.. code-block:: jinja
-
-    {% include 'sidebar.html' %}
-
-Per default included templates are passed the current context.
-
-The context that is passed to the included template includes variables defined
-in the template:
-
-.. code-block:: jinja
-
-    {% for box in boxes %}
-        {% include "render_box.html" %}
-    {% endfor %}
-
-The included template ``render_box.html`` is able to access ``box``.
-
-The filename of the template depends on the template loader. For instance, the
-``Twig_Loader_Filesystem`` allows you to access other templates by giving the
-filename. You can access templates in subdirectories with a slash:
-
-.. code-block:: jinja
-
-    {% include "sections/articles/sidebar.html" %}
-
-This behavior depends on the application embedding Twig.
-
-Template Inheritance
---------------------
-
-The most powerful part of Twig is template inheritance. Template inheritance
-allows you to build a base "skeleton" template that contains all the common
-elements of your site and defines **blocks** that child templates can
-override.
-
-Sounds complicated but it is very basic. It's easier to understand it by
-starting with an example.
-
-Let's define a base template, ``base.html``, which defines a simple HTML
-skeleton document that you might use for a simple two-column page:
-
-.. code-block:: html+jinja
-
-    <!DOCTYPE html>
-    <html>
-        <head>
-            {% block head %}
-                <link rel="stylesheet" href="style.css" />
-                <title>{% block title %}{% endblock %} - My Webpage</title>
-            {% endblock %}
-        </head>
-        <body>
-            <div id="content">{% block content %}{% endblock %}</div>
-            <div id="footer">
-                {% block footer %}
-                    &copy; Copyright 2011 by <a href="http://domain.invalid/">you</a>.
-                {% endblock %}
-            </div>
-        </body>
-    </html>
-
-In this example, the :doc:`block<tags/block>` tags define four blocks that
-child templates can fill in. All the ``block`` tag does is to tell the
-template engine that a child template may override those portions of the
-template.
-
-A child template might look like this:
-
-.. code-block:: jinja
-
-    {% extends "base.html" %}
-
-    {% block title %}Index{% endblock %}
-    {% block head %}
-        {{ parent() }}
-        <style type="text/css">
-            .important { color: #336699; }
-        </style>
-    {% endblock %}
-    {% block content %}
-        <h1>Index</h1>
-        <p class="important">
-            Welcome to my awesome homepage.
-        </p>
-    {% endblock %}
-
-The :doc:`extends<tags/extends>` tag is the key here. It tells the template
-engine that this template "extends" another template. When the template system
-evaluates this template, first it locates the parent. The extends tag should
-be the first tag in the template.
-
-Note that since the child template doesn't define the ``footer`` block, the
-value from the parent template is used instead.
-
-It's possible to render the contents of the parent block by using the
-:doc:`parent<functions/parent>` function. This gives back the results of the
-parent block:
-
-.. code-block:: jinja
-
-    {% block sidebar %}
-        <h3>Table Of Contents</h3>
-        ...
-        {{ parent() }}
-    {% endblock %}
-
-.. tip::
-
-    The documentation page for the :doc:`extends<tags/extends>` tag describes
-    more advanced features like block nesting, scope, dynamic inheritance, and
-    conditional inheritance.
-
-.. note::
-
-    Twig also supports multiple inheritance with the so called horizontal reuse
-    with the help of the :doc:`use<tags/use>` tag. This is an advanced feature
-    hardly ever needed in regular templates.
-
-HTML Escaping
--------------
-
-When generating HTML from templates, there's always a risk that a variable
-will include characters that affect the resulting HTML. There are two
-approaches: manually escaping each variable or automatically escaping
-everything by default.
-
-Twig supports both, automatic escaping is enabled by default.
-
-.. note::
-
-    Automatic escaping is only supported if the *escaper* extension has been
-    enabled (which is the default).
-
-Working with Manual Escaping
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If manual escaping is enabled, it is **your** responsibility to escape
-variables if needed. What to escape? Any variable you don't trust.
-
-Escaping works by piping the variable through the
-:doc:`escape<filters/escape>` or ``e`` filter:
-
-.. code-block:: jinja
-
-    {{ user.username|e }}
-
-By default, the ``escape`` filter uses the ``html`` strategy, but depending on
-the escaping context, you might want to explicitly use any other available
-strategies:
-
-.. code-block:: jinja
-
-    {{ user.username|e('js') }}
-    {{ user.username|e('css') }}
-    {{ user.username|e('url') }}
-    {{ user.username|e('html_attr') }}
-
-Working with Automatic Escaping
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Whether automatic escaping is enabled or not, you can mark a section of a
-template to be escaped or not by using the :doc:`autoescape<tags/autoescape>`
-tag:
-
-.. code-block:: jinja
-
-    {% autoescape %}
-        Everything will be automatically escaped in this block (using the HTML strategy)
-    {% endautoescape %}
-
-By default, auto-escaping uses the ``html`` escaping strategy. If you output
-variables in other contexts, you need to explicitly escape them with the
-appropriate escaping strategy:
-
-.. code-block:: jinja
-
-    {% autoescape 'js' %}
-        Everything will be automatically escaped in this block (using the JS strategy)
-    {% endautoescape %}
-
-Escaping
---------
-
-It is sometimes desirable or even necessary to have Twig ignore parts it would
-otherwise handle as variables or blocks. For example if the default syntax is
-used and you want to use ``{{`` as raw string in the template and not start a
-variable you have to use a trick.
-
-The easiest way is to output the variable delimiter (``{{``) by using a variable
-expression:
-
-.. code-block:: jinja
-
-    {{ '{{' }}
-
-For bigger sections it makes sense to mark a block
-:doc:`verbatim<tags/verbatim>`.
-
-Macros
-------
-
-.. versionadded:: 1.12
-    Support for default argument values was added in Twig 1.12.
-
-Macros are comparable with functions in regular programming languages. They
-are useful to reuse often used HTML fragments to not repeat yourself.
-
-A macro is defined via the :doc:`macro<tags/macro>` tag. Here is a small example
-(subsequently called ``forms.html``) of a macro that renders a form element:
-
-.. code-block:: jinja
-
-    {% macro input(name, value, type, size) %}
-        <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
-    {% endmacro %}
-
-Macros can be defined in any template, and need to be "imported" via the
-:doc:`import<tags/import>` tag before being used:
-
-.. code-block:: jinja
-
-    {% import "forms.html" as forms %}
-
-    <p>{{ forms.input('username') }}</p>
-
-Alternatively, you can import individual macro names from a template into the
-current namespace via the :doc:`from<tags/from>` tag and optionally alias them:
-
-.. code-block:: jinja
-
-    {% from 'forms.html' import input as input_field %}
-
-    <dl>
-        <dt>Username</dt>
-        <dd>{{ input_field('username') }}</dd>
-        <dt>Password</dt>
-        <dd>{{ input_field('password', '', 'password') }}</dd>
-    </dl>
-
-A default value can also be defined for macro arguments when not provided in a
-macro call:
-
-.. code-block:: jinja
-
-    {% macro input(name, value = "", type = "text", size = 20) %}
-        <input type="{{ type }}" name="{{ name }}" value="{{ value|e }}" size="{{ size }}" />
-    {% endmacro %}
-
-If extra positional arguments are passed to a macro call, they end up in the
-special ``varargs`` variable as a list of values.
-
-.. _twig-expressions:
-
-Expressions
------------
-
-Twig allows expressions everywhere. These work very similar to regular PHP and
-even if you're not working with PHP you should feel comfortable with it.
-
-.. note::
-
-    The operator precedence is as follows, with the lowest-precedence
-    operators listed first: ``b-and``, ``b-xor``, ``b-or``, ``or``, ``and``,
-    ``==``, ``!=``, ``<``, ``>``, ``>=``, ``<=``, ``in``, ``matches``,
-    ``starts with``, ``ends with``, ``..``, ``+``, ``-``, ``~``, ``*``, ``/``,
-    ``//``, ``%``, ``is``, ``**``, ``|``, ``[]``, and ``.``:
-
-    .. code-block:: jinja
-
-        {% set greeting = 'Hello ' %}
-        {% set name = 'Fabien' %}
-
-        {{ greeting ~ name|lower }}   {# Hello fabien #}
-
-        {# use parenthesis to change precedence #}
-        {{ (greeting ~ name)|lower }} {# hello fabien #}
-
-Literals
-~~~~~~~~
-
-.. versionadded:: 1.5
-    Support for hash keys as names and expressions was added in Twig 1.5.
-
-The simplest form of expressions are literals. Literals are representations
-for PHP types such as strings, numbers, and arrays. The following literals
-exist:
-
-* ``"Hello World"``: Everything between two double or single quotes is a
-  string. They are useful whenever you need a string in the template (for
-  example as arguments to function calls, filters or just to extend or include
-  a template). A string can contain a delimiter if it is preceded by a
-  backslash (``\``) -- like in ``'It\'s good'``.
-
-* ``42`` / ``42.23``: Integers and floating point numbers are created by just
-  writing the number down. If a dot is present the number is a float,
-  otherwise an integer.
-
-* ``["foo", "bar"]``: Arrays are defined by a sequence of expressions
-  separated by a comma (``,``) and wrapped with squared brackets (``[]``).
-
-* ``{"foo": "bar"}``: Hashes are defined by a list of keys and values
-  separated by a comma (``,``) and wrapped with curly braces (``{}``):
-
-  .. code-block:: jinja
-
-    {# keys as string #}
-    { 'foo': 'foo', 'bar': 'bar' }
-
-    {# keys as names (equivalent to the previous hash) -- as of Twig 1.5 #}
-    { foo: 'foo', bar: 'bar' }
-
-    {# keys as integer #}
-    { 2: 'foo', 4: 'bar' }
-
-    {# keys as expressions (the expression must be enclosed into parentheses) -- as of Twig 1.5 #}
-    { (1 + 1): 'foo', (a ~ 'b'): 'bar' }
-
-* ``true`` / ``false``: ``true`` represents the true value, ``false``
-  represents the false value.
-
-* ``null``: ``null`` represents no specific value. This is the value returned
-  when a variable does not exist. ``none`` is an alias for ``null``.
-
-Arrays and hashes can be nested:
-
-.. code-block:: jinja
-
-    {% set foo = [1, {"foo": "bar"}] %}
-
-.. tip::
-
-    Using double-quoted or single-quoted strings has no impact on performance
-    but string interpolation is only supported in double-quoted strings.
-
-Math
-~~~~
-
-Twig allows you to calculate with values. This is rarely useful in templates
-but exists for completeness' sake. The following operators are supported:
-
-* ``+``: Adds two objects together (the operands are casted to numbers). ``{{
-  1 + 1 }}`` is ``2``.
-
-* ``-``: Subtracts the second number from the first one. ``{{ 3 - 2 }}`` is
-  ``1``.
-
-* ``/``: Divides two numbers. The returned value will be a floating point
-  number. ``{{ 1 / 2 }}`` is ``{{ 0.5 }}``.
-
-* ``%``: Calculates the remainder of an integer division. ``{{ 11 % 7 }}`` is
-  ``4``.
-
-* ``//``: Divides two numbers and returns the floored integer result. ``{{ 20
-  // 7 }}`` is ``2``, ``{{ -20  // 7 }}`` is ``-3`` (this is just syntactic
-  sugar for the :doc:`round<filters/round>` filter).
-
-* ``*``: Multiplies the left operand with the right one. ``{{ 2 * 2 }}`` would
-  return ``4``.
-
-* ``**``: Raises the left operand to the power of the right operand. ``{{ 2 **
-  3 }}`` would return ``8``.
-
-Logic
-~~~~~
-
-You can combine multiple expressions with the following operators:
-
-* ``and``: Returns true if the left and the right operands are both true.
-
-* ``or``: Returns true if the left or the right operand is true.
-
-* ``not``: Negates a statement.
-
-* ``(expr)``: Groups an expression.
-
-.. note::
-
-    Twig also support bitwise operators (``b-and``, ``b-xor``, and ``b-or``).
-
-.. note::
-
-    Operators are case sensitive.
-
-Comparisons
-~~~~~~~~~~~
-
-The following comparison operators are supported in any expression: ``==``,
-``!=``, ``<``, ``>``, ``>=``, and ``<=``.
-
-You can also check if a string ``starts with`` or ``ends with`` another
-string:
-
-.. code-block:: jinja
-
-    {% if 'Fabien' starts with 'F' %}
-    {% endif %}
-
-    {% if 'Fabien' ends with 'n' %}
-    {% endif %}
-
-.. note::
-
-    For complex string comparisons, the ``matches`` operator allows you to use
-    `regular expressions`_:
-
-    .. code-block:: jinja
-
-        {% if phone matches '/^[\\d\\.]+$/' %}
-        {% endif %}
-
-Containment Operator
-~~~~~~~~~~~~~~~~~~~~
-
-The ``in`` operator performs containment test.
-
-It returns ``true`` if the left operand is contained in the right:
-
-.. code-block:: jinja
-
-    {# returns true #}
-
-    {{ 1 in [1, 2, 3] }}
-
-    {{ 'cd' in 'abcde' }}
-
-.. tip::
-
-    You can use this filter to perform a containment test on strings, arrays,
-    or objects implementing the ``Traversable`` interface.
-
-To perform a negative test, use the ``not in`` operator:
-
-.. code-block:: jinja
-
-    {% if 1 not in [1, 2, 3] %}
-
-    {# is equivalent to #}
-    {% if not (1 in [1, 2, 3]) %}
-
-Test Operator
-~~~~~~~~~~~~~
-
-The ``is`` operator performs tests. Tests can be used to test a variable against
-a common expression. The right operand is name of the test:
-
-.. code-block:: jinja
-
-    {# find out if a variable is odd #}
-
-    {{ name is odd }}
-
-Tests can accept arguments too:
-
-.. code-block:: jinja
-
-    {% if post.status is constant('Post::PUBLISHED') %}
-
-Tests can be negated by using the ``is not`` operator:
-
-.. code-block:: jinja
-
-    {% if post.status is not constant('Post::PUBLISHED') %}
-
-    {# is equivalent to #}
-    {% if not (post.status is constant('Post::PUBLISHED')) %}
-
-Go to the :doc:`tests<tests/index>` page to learn more about the built-in
-tests.
-
-Other Operators
-~~~~~~~~~~~~~~~
-
-.. versionadded:: 1.12.0
-    Support for the extended ternary operator was added in Twig 1.12.0.
-
-The following operators are very useful but don't fit into any of the other
-categories:
-
-* ``..``: Creates a sequence based on the operand before and after the
-  operator (this is just syntactic sugar for the :doc:`range<functions/range>`
-  function).
-
-* ``|``: Applies a filter.
-
-* ``~``: Converts all operands into strings and concatenates them. ``{{ "Hello
-  " ~ name ~ "!" }}`` would return (assuming ``name`` is ``'John'``) ``Hello
-  John!``.
-
-* ``.``, ``[]``: Gets an attribute of an object.
-
-* ``?:``: The ternary operator:
-
-  .. code-block:: jinja
-
-      {{ foo ? 'yes' : 'no' }}
-
-      {# as of Twig 1.12.0 #}
-      {{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }}
-      {{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
-
-String Interpolation
-~~~~~~~~~~~~~~~~~~~~
-
-.. versionadded:: 1.5
-    String interpolation was added in Twig 1.5.
-
-String interpolation (`#{expression}`) allows any valid expression to appear
-within a *double-quoted string*. The result of evaluating that expression is
-inserted into the string:
-
-.. code-block:: jinja
-
-    {{ "foo #{bar} baz" }}
-    {{ "foo #{1 + 2} baz" }}
-
-.. _templates-whitespace-control:
-
-Whitespace Control
-------------------
-
-.. versionadded:: 1.1
-    Tag level whitespace control was added in Twig 1.1.
-
-The first newline after a template tag is removed automatically (like in PHP.)
-Whitespace is not further modified by the template engine, so each whitespace
-(spaces, tabs, newlines etc.) is returned unchanged.
-
-Use the ``spaceless`` tag to remove whitespace *between HTML tags*:
-
-.. code-block:: jinja
-
-    {% spaceless %}
-        <div>
-            <strong>foo bar</strong>
-        </div>
-    {% endspaceless %}
-
-    {# output will be <div><strong>foo bar</strong></div> #}
-
-In addition to the spaceless tag you can also control whitespace on a per tag
-level. By using the whitespace control modifier on your tags, you can trim
-leading and or trailing whitespace:
-
-.. code-block:: jinja
-
-    {% set value = 'no spaces' %}
-    {#- No leading/trailing whitespace -#}
-    {%- if true -%}
-        {{- value -}}
-    {%- endif -%}
-
-    {# output 'no spaces' #}
-
-The above sample shows the default whitespace control modifier, and how you can
-use it to remove whitespace around tags.  Trimming space will consume all whitespace
-for that side of the tag.  It is possible to use whitespace trimming on one side
-of a tag:
-
-.. code-block:: jinja
-
-    {% set value = 'no spaces' %}
-    <li>    {{- value }}    </li>
-
-    {# outputs '<li>no spaces    </li>' #}
-
-Extensions
-----------
-
-Twig can be easily extended.
-
-If you are looking for new tags, filters, or functions, have a look at the Twig official
-`extension repository`_.
-
-If you want to create your own, read the :ref:`Creating an
-Extension<creating_extensions>` chapter.
-
-.. _`Twig bundle`:                https://github.com/Anomareh/PHP-Twig.tmbundle
-.. _`Jinja syntax plugin`:        http://jinja.pocoo.org/docs/integration/#vim
-.. _`vim-twig plugin`:            https://github.com/evidens/vim-twig
-.. _`Twig syntax plugin`:         http://plugins.netbeans.org/plugin/37069/php-twig
-.. _`Twig plugin`:                https://github.com/pulse00/Twig-Eclipse-Plugin
-.. _`Twig language definition`:   https://github.com/gabrielcorpse/gedit-twig-template-language
-.. _`extension repository`:       http://github.com/twigphp/Twig-extensions
-.. _`Twig syntax mode`:           https://github.com/bobthecow/Twig-HTML.mode
-.. _`other Twig syntax mode`:     https://github.com/muxx/Twig-HTML.mode
-.. _`Notepad++ Twig Highlighter`: https://github.com/Banane9/notepadplusplus-twig
-.. _`web-mode.el`:                http://web-mode.org/
-.. _`regular expressions`:        http://php.net/manual/en/pcre.pattern.php
-.. _`PHP-twig for atom`:          https://github.com/reesef/php-twig
diff --git a/core/vendor/twig/twig/doc/tests/constant.rst b/core/vendor/twig/twig/doc/tests/constant.rst
deleted file mode 100644
index 8d0724a..0000000
--- a/core/vendor/twig/twig/doc/tests/constant.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-``constant``
-============
-
-.. versionadded: 1.13.1
-    constant now accepts object instances as the second argument.
-
-``constant`` checks if a variable has the exact same value as a constant. You
-can use either global constants or class constants:
-
-.. code-block:: jinja
-
-    {% if post.status is constant('Post::PUBLISHED') %}
-        the status attribute is exactly the same as Post::PUBLISHED
-    {% endif %}
-
-You can test constants from object instances as well:
-
-.. code-block:: jinja
-
-    {% if post.status is constant('PUBLISHED', post) %}
-        the status attribute is exactly the same as Post::PUBLISHED
-    {% endif %}
diff --git a/core/vendor/twig/twig/doc/tests/defined.rst b/core/vendor/twig/twig/doc/tests/defined.rst
deleted file mode 100644
index 702ce72..0000000
--- a/core/vendor/twig/twig/doc/tests/defined.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-``defined``
-===========
-
-``defined`` checks if a variable is defined in the current context. This is very
-useful if you use the ``strict_variables`` option:
-
-.. code-block:: jinja
-
-    {# defined works with variable names #}
-    {% if foo is defined %}
-        ...
-    {% endif %}
-
-    {# and attributes on variables names #}
-    {% if foo.bar is defined %}
-        ...
-    {% endif %}
-
-    {% if foo['bar'] is defined %}
-        ...
-    {% endif %}
-
-When using the ``defined`` test on an expression that uses variables in some
-method calls, be sure that they are all defined first:
-
-.. code-block:: jinja
-
-    {% if var is defined and foo.method(var) is defined %}
-        ...
-    {% endif %}
diff --git a/core/vendor/twig/twig/doc/tests/divisibleby.rst b/core/vendor/twig/twig/doc/tests/divisibleby.rst
deleted file mode 100644
index 6c693b2..0000000
--- a/core/vendor/twig/twig/doc/tests/divisibleby.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-``divisible by``
-================
-
-.. versionadded:: 1.14.2
-    The ``divisible by`` test was added in Twig 1.14.2 as an alias for
-    ``divisibleby``.
-
-``divisible by`` checks if a variable is divisible by a number:
-
-.. code-block:: jinja
-
-    {% if loop.index is divisible by(3) %}
-        ...
-    {% endif %}
diff --git a/core/vendor/twig/twig/doc/tests/empty.rst b/core/vendor/twig/twig/doc/tests/empty.rst
deleted file mode 100644
index e5b5599..0000000
--- a/core/vendor/twig/twig/doc/tests/empty.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-``empty``
-=========
-
-``empty`` checks if a variable is empty:
-
-.. code-block:: jinja
-
-    {# evaluates to true if the foo variable is null, false, an empty array, or the empty string #}
-    {% if foo is empty %}
-        ...
-    {% endif %}
diff --git a/core/vendor/twig/twig/doc/tests/even.rst b/core/vendor/twig/twig/doc/tests/even.rst
deleted file mode 100644
index 6ab5cc3..0000000
--- a/core/vendor/twig/twig/doc/tests/even.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-``even``
-========
-
-``even`` returns ``true`` if the given number is even:
-
-.. code-block:: jinja
-
-    {{ var is even }}
-
-.. seealso:: :doc:`odd<../tests/odd>`
diff --git a/core/vendor/twig/twig/doc/tests/index.rst b/core/vendor/twig/twig/doc/tests/index.rst
deleted file mode 100644
index c63208e..0000000
--- a/core/vendor/twig/twig/doc/tests/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-Tests
-=====
-
-.. toctree::
-    :maxdepth: 1
-
-    constant
-    defined
-    divisibleby
-    empty
-    even
-    iterable
-    null
-    odd
-    sameas
diff --git a/core/vendor/twig/twig/doc/tests/iterable.rst b/core/vendor/twig/twig/doc/tests/iterable.rst
deleted file mode 100644
index 89a172f..0000000
--- a/core/vendor/twig/twig/doc/tests/iterable.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-``iterable``
-============
-
-.. versionadded:: 1.7
-    The iterable test was added in Twig 1.7.
-
-``iterable`` checks if a variable is an array or a traversable object:
-
-.. code-block:: jinja
-
-    {# evaluates to true if the foo variable is iterable #}
-    {% if users is iterable %}
-        {% for user in users %}
-            Hello {{ user }}!
-        {% endfor %}
-    {% else %}
-        {# users is probably a string #}
-        Hello {{ users }}!
-    {% endif %}
diff --git a/core/vendor/twig/twig/doc/tests/null.rst b/core/vendor/twig/twig/doc/tests/null.rst
deleted file mode 100644
index 44eec62..0000000
--- a/core/vendor/twig/twig/doc/tests/null.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-``null``
-========
-
-``null`` returns ``true`` if the variable is ``null``:
-
-.. code-block:: jinja
-
-    {{ var is null }}
-
-.. note::
-
-    ``none`` is an alias for ``null``.
diff --git a/core/vendor/twig/twig/doc/tests/odd.rst b/core/vendor/twig/twig/doc/tests/odd.rst
deleted file mode 100644
index 9eece77..0000000
--- a/core/vendor/twig/twig/doc/tests/odd.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-``odd``
-=======
-
-``odd`` returns ``true`` if the given number is odd:
-
-.. code-block:: jinja
-
-    {{ var is odd }}
-
-.. seealso:: :doc:`even<../tests/even>`
diff --git a/core/vendor/twig/twig/doc/tests/sameas.rst b/core/vendor/twig/twig/doc/tests/sameas.rst
deleted file mode 100644
index 16f904d..0000000
--- a/core/vendor/twig/twig/doc/tests/sameas.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-``same as``
-===========
-
-.. versionadded:: 1.14.2
-    The ``same as`` test was added in Twig 1.14.2 as an alias for ``sameas``.
-
-``same as`` checks if a variable is the same as another variable.
-This is the equivalent to ``===`` in PHP:
-
-.. code-block:: jinja
-
-    {% if foo.attribute is same as(false) %}
-        the foo attribute really is the 'false' PHP value
-    {% endif %}
diff --git a/core/vendor/twig/twig/ext/twig/.gitignore b/core/vendor/twig/twig/ext/twig/.gitignore
deleted file mode 100644
index 56ea76c..0000000
--- a/core/vendor/twig/twig/ext/twig/.gitignore
+++ /dev/null
@@ -1,30 +0,0 @@
-*.sw*
-.deps
-Makefile
-Makefile.fragments
-Makefile.global
-Makefile.objects
-acinclude.m4
-aclocal.m4
-build/
-config.cache
-config.guess
-config.h
-config.h.in
-config.log
-config.nice
-config.status
-config.sub
-configure
-configure.in
-install-sh
-libtool
-ltmain.sh
-missing
-mkinstalldirs
-run-tests.php
-twig.loT
-.libs/
-modules/
-twig.la
-twig.lo
diff --git a/core/vendor/twig/twig/ext/twig/config.m4 b/core/vendor/twig/twig/ext/twig/config.m4
deleted file mode 100644
index 83486be..0000000
--- a/core/vendor/twig/twig/ext/twig/config.m4
+++ /dev/null
@@ -1,8 +0,0 @@
-dnl config.m4 for extension twig
-
-PHP_ARG_ENABLE(twig, whether to enable twig support,
-[  --enable-twig           Enable twig support])
-
-if test "$PHP_TWIG" != "no"; then
-  PHP_NEW_EXTENSION(twig, twig.c, $ext_shared)
-fi
diff --git a/core/vendor/twig/twig/ext/twig/config.w32 b/core/vendor/twig/twig/ext/twig/config.w32
deleted file mode 100644
index cb287b9..0000000
--- a/core/vendor/twig/twig/ext/twig/config.w32
+++ /dev/null
@@ -1,8 +0,0 @@
-// vim:ft=javascript
-
-ARG_ENABLE("twig", "Twig support", "no");
-
-if (PHP_TWIG != "no") {
-	AC_DEFINE('HAVE_TWIG', 1);
-	EXTENSION('twig', 'twig.c');
-}
diff --git a/core/vendor/twig/twig/ext/twig/php_twig.h b/core/vendor/twig/twig/ext/twig/php_twig.h
deleted file mode 100644
index 11d7be5..0000000
--- a/core/vendor/twig/twig/ext/twig/php_twig.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-   +----------------------------------------------------------------------+
-   | Twig Extension                                                       |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 2011 Derick Rethans                                    |
-   +----------------------------------------------------------------------+
-   | Redistribution and use in source and binary forms, with or without   |
-   | modification, are permitted provided that the conditions mentioned   |
-   | in the accompanying LICENSE file are met (BSD-3-Clause).             |
-   +----------------------------------------------------------------------+
-   | Author: Derick Rethans <derick@derickrethans.nl>                     |
-   +----------------------------------------------------------------------+
- */
-
-#ifndef PHP_TWIG_H
-#define PHP_TWIG_H
-
-#define PHP_TWIG_VERSION "1.20.0"
-
-#include "php.h"
-
-extern zend_module_entry twig_module_entry;
-#define phpext_twig_ptr &twig_module_entry
-#ifndef PHP_WIN32
-zend_module_entry *get_module(void);
-#endif
-
-#ifdef ZTS
-#include "TSRM.h"
-#endif
-
-PHP_FUNCTION(twig_template_get_attributes);
-PHP_RSHUTDOWN_FUNCTION(twig);
-
-#endif
diff --git a/core/vendor/twig/twig/ext/twig/twig.c b/core/vendor/twig/twig/ext/twig/twig.c
deleted file mode 100644
index 92d1add..0000000
--- a/core/vendor/twig/twig/ext/twig/twig.c
+++ /dev/null
@@ -1,1127 +0,0 @@
-/*
-   +----------------------------------------------------------------------+
-   | Twig Extension                                                       |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 2011 Derick Rethans                                    |
-   +----------------------------------------------------------------------+
-   | Redistribution and use in source and binary forms, with or without   |
-   | modification, are permitted provided that the conditions mentioned   |
-   | in the accompanying LICENSE file are met (BSD-3-Clause).             |
-   +----------------------------------------------------------------------+
-   | Author: Derick Rethans <derick@derickrethans.nl>                     |
-   +----------------------------------------------------------------------+
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "php.h"
-#include "php_twig.h"
-#include "ext/standard/php_var.h"
-#include "ext/standard/php_string.h"
-#include "ext/standard/php_smart_str.h"
-#include "ext/spl/spl_exceptions.h"
-
-#include "Zend/zend_object_handlers.h"
-#include "Zend/zend_interfaces.h"
-#include "Zend/zend_exceptions.h"
-
-#ifndef Z_ADDREF_P
-#define Z_ADDREF_P(pz)                (pz)->refcount++
-#endif
-
-#define FREE_DTOR(z) 	\
-	zval_dtor(z); 		\
-	efree(z);
-
-#if PHP_VERSION_ID >= 50300
-	#define APPLY_TSRMLS_DC TSRMLS_DC
-	#define APPLY_TSRMLS_CC TSRMLS_CC
-	#define APPLY_TSRMLS_FETCH()
-#else
-	#define APPLY_TSRMLS_DC
-	#define APPLY_TSRMLS_CC
-	#define APPLY_TSRMLS_FETCH() TSRMLS_FETCH()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(twig_template_get_attribute_args, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 6)
-	ZEND_ARG_INFO(0, template)
-	ZEND_ARG_INFO(0, object)
-	ZEND_ARG_INFO(0, item)
-	ZEND_ARG_INFO(0, arguments)
-	ZEND_ARG_INFO(0, type)
-	ZEND_ARG_INFO(0, isDefinedTest)
-ZEND_END_ARG_INFO()
-
-#ifndef PHP_FE_END
-#define PHP_FE_END { NULL, NULL, NULL}
-#endif
-
-static const zend_function_entry twig_functions[] = {
-	PHP_FE(twig_template_get_attributes, twig_template_get_attribute_args)
-	PHP_FE_END
-};
-
-PHP_RSHUTDOWN_FUNCTION(twig)
-{
-#if ZEND_DEBUG
-	CG(unclean_shutdown) = 0; /* get rid of PHPUnit's exit() and report memleaks */
-#endif
-	return SUCCESS;
-}
-
-zend_module_entry twig_module_entry = {
-	STANDARD_MODULE_HEADER,
-	"twig",
-	twig_functions,
-	NULL,
-	NULL,
-	NULL,
-	PHP_RSHUTDOWN(twig),
-	NULL,
-	PHP_TWIG_VERSION,
-	STANDARD_MODULE_PROPERTIES
-};
-
-
-#ifdef COMPILE_DL_TWIG
-ZEND_GET_MODULE(twig)
-#endif
-
-static int TWIG_ARRAY_KEY_EXISTS(zval *array, zval *key)
-{
-	if (Z_TYPE_P(array) != IS_ARRAY) {
-		return 0;
-	}
-
-	switch (Z_TYPE_P(key)) {
-		case IS_NULL:
-			return zend_hash_exists(Z_ARRVAL_P(array), "", 1);
-
-		case IS_BOOL:
-		case IS_DOUBLE:
-			convert_to_long(key);
-		case IS_LONG:
-			return zend_hash_index_exists(Z_ARRVAL_P(array), Z_LVAL_P(key));
-
-		default:
-			convert_to_string(key);
-			return zend_symtable_exists(Z_ARRVAL_P(array), Z_STRVAL_P(key), Z_STRLEN_P(key) + 1);
-	}
-}
-
-static int TWIG_INSTANCE_OF(zval *object, zend_class_entry *interface TSRMLS_DC)
-{
-	if (Z_TYPE_P(object) != IS_OBJECT) {
-		return 0;
-	}
-	return instanceof_function(Z_OBJCE_P(object), interface TSRMLS_CC);
-}
-
-static int TWIG_INSTANCE_OF_USERLAND(zval *object, char *interface TSRMLS_DC)
-{
-	zend_class_entry **pce;
-	if (Z_TYPE_P(object) != IS_OBJECT) {
-		return 0;
-	}
-	if (zend_lookup_class(interface, strlen(interface), &pce TSRMLS_CC) == FAILURE) {
-		return 0;
-	}
-	return instanceof_function(Z_OBJCE_P(object), *pce TSRMLS_CC);
-}
-
-static zval *TWIG_GET_ARRAYOBJECT_ELEMENT(zval *object, zval *offset TSRMLS_DC)
-{
-	zend_class_entry *ce = Z_OBJCE_P(object);
-	zval *retval;
-
-	if (Z_TYPE_P(object) == IS_OBJECT) {
-		SEPARATE_ARG_IF_REF(offset);
-		zend_call_method_with_1_params(&object, ce, NULL, "offsetget", &retval, offset);
-
-		zval_ptr_dtor(&offset);
-
-		if (!retval) {
-			if (!EG(exception)) {
-				zend_error(E_ERROR, "Undefined offset for object of type %s used as array", ce->name);
-			}
-			return NULL;
-		}
-
-		return retval;
-	}
-	return NULL;
-}
-
-static int TWIG_ISSET_ARRAYOBJECT_ELEMENT(zval *object, zval *offset TSRMLS_DC)
-{
-	zend_class_entry *ce = Z_OBJCE_P(object);
-	zval *retval;
-
-	if (Z_TYPE_P(object) == IS_OBJECT) {
-		SEPARATE_ARG_IF_REF(offset);
-		zend_call_method_with_1_params(&object, ce, NULL, "offsetexists", &retval, offset);
-
-		zval_ptr_dtor(&offset);
-
-		if (!retval) {
-			if (!EG(exception)) {
-				zend_error(E_ERROR, "Undefined offset for object of type %s used as array", ce->name);
-			}
-			return 0;
-		}
-
-		return (retval && Z_TYPE_P(retval) == IS_BOOL && Z_LVAL_P(retval));
-	}
-	return 0;
-}
-
-static char *TWIG_STRTOLOWER(const char *str, int str_len)
-{
-	char *item_dup;
-
-	item_dup = estrndup(str, str_len);
-	php_strtolower(item_dup, str_len);
-	return item_dup;
-}
-
-static zval *TWIG_CALL_USER_FUNC_ARRAY(zval *object, char *function, zval *arguments TSRMLS_DC)
-{
-	zend_fcall_info fci;
-	zval ***args = NULL;
-	int arg_count = 0;
-	HashTable *table;
-	HashPosition pos;
-	int i = 0;
-	zval *retval_ptr;
-	zval *zfunction;
-
-	if (arguments) {
-		table = HASH_OF(arguments);
-		args = safe_emalloc(sizeof(zval **), table->nNumOfElements, 0);
-
-		zend_hash_internal_pointer_reset_ex(table, &pos);
-
-		while (zend_hash_get_current_data_ex(table, (void **)&args[i], &pos) == SUCCESS) {
-			i++;
-			zend_hash_move_forward_ex(table, &pos);
-		}
-		arg_count = table->nNumOfElements;
-	}
-
-	MAKE_STD_ZVAL(zfunction);
-	ZVAL_STRING(zfunction, function, 1);
-	fci.size = sizeof(fci);
-	fci.function_table = EG(function_table);
-	fci.function_name = zfunction;
-	fci.symbol_table = NULL;
-#if PHP_VERSION_ID >= 50300
-	fci.object_ptr = object;
-#else
-	fci.object_pp = &object;
-#endif
-	fci.retval_ptr_ptr = &retval_ptr;
-	fci.param_count = arg_count;
-	fci.params = args;
-	fci.no_separation = 0;
-
-	if (zend_call_function(&fci, NULL TSRMLS_CC) == FAILURE) {
-		ALLOC_INIT_ZVAL(retval_ptr);
-		ZVAL_BOOL(retval_ptr, 0);
-	}
-
-	if (args) {
-		efree(fci.params);
-	}
-	FREE_DTOR(zfunction);
-	return retval_ptr;
-}
-
-static int TWIG_CALL_BOOLEAN(zval *object, char *functionName TSRMLS_DC)
-{
-	zval *ret;
-	int   res;
-
-	ret = TWIG_CALL_USER_FUNC_ARRAY(object, functionName, NULL TSRMLS_CC);
-	res = Z_LVAL_P(ret);
-	zval_ptr_dtor(&ret);
-	return res;
-}
-
-static zval *TWIG_GET_STATIC_PROPERTY(zval *class, char *prop_name TSRMLS_DC)
-{
-	zval **tmp_zval;
-	zend_class_entry *ce;
-
-	if (class == NULL || Z_TYPE_P(class) != IS_OBJECT) {
-		return NULL;
-	}
-
-	ce = zend_get_class_entry(class TSRMLS_CC);
-#if PHP_VERSION_ID >= 50400
-	tmp_zval = zend_std_get_static_property(ce, prop_name, strlen(prop_name), 0, NULL TSRMLS_CC);
-#else
-	tmp_zval = zend_std_get_static_property(ce, prop_name, strlen(prop_name), 0 TSRMLS_CC);
-#endif
-	return *tmp_zval;
-}
-
-static zval *TWIG_GET_ARRAY_ELEMENT_ZVAL(zval *class, zval *prop_name TSRMLS_DC)
-{
-	zval **tmp_zval;
-
-	if (class == NULL || Z_TYPE_P(class) != IS_ARRAY) {
-		if (class != NULL && Z_TYPE_P(class) == IS_OBJECT && TWIG_INSTANCE_OF(class, zend_ce_arrayaccess TSRMLS_CC)) {
-			// array access object
-			return TWIG_GET_ARRAYOBJECT_ELEMENT(class, prop_name TSRMLS_CC);
-		}
-		return NULL;
-	}
-
-	switch(Z_TYPE_P(prop_name)) {
-		case IS_NULL:
-			zend_hash_find(HASH_OF(class), "", 1, (void**) &tmp_zval);
-			return *tmp_zval;
-
-		case IS_BOOL:
-		case IS_DOUBLE:
-			convert_to_long(prop_name);
-		case IS_LONG:
-			zend_hash_index_find(HASH_OF(class), Z_LVAL_P(prop_name), (void **) &tmp_zval);
-			return *tmp_zval;
-
-		case IS_STRING:
-			zend_symtable_find(HASH_OF(class), Z_STRVAL_P(prop_name), Z_STRLEN_P(prop_name) + 1, (void**) &tmp_zval);
-			return *tmp_zval;
-	}
-
-	return NULL;
-}
-
-static zval *TWIG_GET_ARRAY_ELEMENT(zval *class, char *prop_name, int prop_name_length TSRMLS_DC)
-{
-	zval **tmp_zval;
-
-	if (class == NULL/* || Z_TYPE_P(class) != IS_ARRAY*/) {
-		return NULL;
-	}
-
-	if (class != NULL && Z_TYPE_P(class) == IS_OBJECT && TWIG_INSTANCE_OF(class, zend_ce_arrayaccess TSRMLS_CC)) {
-		// array access object
-		zval *tmp_name_zval;
-		zval *tmp_ret_zval;
-
-		ALLOC_INIT_ZVAL(tmp_name_zval);
-		ZVAL_STRING(tmp_name_zval, prop_name, 1);
-		tmp_ret_zval = TWIG_GET_ARRAYOBJECT_ELEMENT(class, tmp_name_zval TSRMLS_CC);
-		FREE_DTOR(tmp_name_zval);
-		return tmp_ret_zval;
-	}
-
-	if (zend_symtable_find(HASH_OF(class), prop_name, prop_name_length+1, (void**)&tmp_zval) == SUCCESS) {
-		return *tmp_zval;
-	}
-	return NULL;
-}
-
-static zval *TWIG_PROPERTY(zval *object, zval *propname TSRMLS_DC)
-{
-	zval *tmp = NULL;
-
-	if (Z_OBJ_HT_P(object)->read_property) {
-#if PHP_VERSION_ID >= 50400
-		tmp = Z_OBJ_HT_P(object)->read_property(object, propname, BP_VAR_IS, NULL TSRMLS_CC);
-#else
-		tmp = Z_OBJ_HT_P(object)->read_property(object, propname, BP_VAR_IS TSRMLS_CC);
-#endif
-		if (tmp == EG(uninitialized_zval_ptr)) {
-		        ZVAL_NULL(tmp);
-		}
-	}
-	return tmp;
-}
-
-static int TWIG_HAS_PROPERTY(zval *object, zval *propname TSRMLS_DC)
-{
-	if (Z_OBJ_HT_P(object)->has_property) {
-#if PHP_VERSION_ID >= 50400
-		return Z_OBJ_HT_P(object)->has_property(object, propname, 0, NULL TSRMLS_CC);
-#else
-		return Z_OBJ_HT_P(object)->has_property(object, propname, 0 TSRMLS_CC);
-#endif
-	}
-	return 0;
-}
-
-static int TWIG_HAS_DYNAMIC_PROPERTY(zval *object, char *prop, int prop_len TSRMLS_DC)
-{
-	if (Z_OBJ_HT_P(object)->get_properties) {
-		return zend_hash_quick_exists(
-				Z_OBJ_HT_P(object)->get_properties(object TSRMLS_CC), // the properties hash
-				prop,                                                 // property name
-				prop_len + 1,                                         // property length
-				zend_get_hash_value(prop, prop_len + 1)               // hash value
-			);
-	}
-	return 0;
-}
-
-static zval *TWIG_PROPERTY_CHAR(zval *object, char *propname TSRMLS_DC)
-{
-	zval *tmp_name_zval, *tmp;
-
-	ALLOC_INIT_ZVAL(tmp_name_zval);
-	ZVAL_STRING(tmp_name_zval, propname, 1);
-	tmp = TWIG_PROPERTY(object, tmp_name_zval TSRMLS_CC);
-	FREE_DTOR(tmp_name_zval);
-	return tmp;
-}
-
-static zval *TWIG_CALL_S(zval *object, char *method, char *arg0 TSRMLS_DC)
-{
-	zend_fcall_info fci;
-	zval **args[1];
-	zval *argument;
-	zval *zfunction;
-	zval *retval_ptr;
-
-	MAKE_STD_ZVAL(argument);
-	ZVAL_STRING(argument, arg0, 1);
-	args[0] = &argument;
-
-	MAKE_STD_ZVAL(zfunction);
-	ZVAL_STRING(zfunction, method, 1);
-	fci.size = sizeof(fci);
-	fci.function_table = EG(function_table);
-	fci.function_name = zfunction;
-	fci.symbol_table = NULL;
-#if PHP_VERSION_ID >= 50300
-	fci.object_ptr = object;
-#else
-	fci.object_pp = &object;
-#endif
-	fci.retval_ptr_ptr = &retval_ptr;
-	fci.param_count = 1;
-	fci.params = args;
-	fci.no_separation = 0;
-
-	if (zend_call_function(&fci, NULL TSRMLS_CC) == FAILURE) {
-		FREE_DTOR(zfunction);
-		zval_ptr_dtor(&argument);
-		return 0;
-	}
-	FREE_DTOR(zfunction);
-	zval_ptr_dtor(&argument);
-	return retval_ptr;
-}
-
-static int TWIG_CALL_SB(zval *object, char *method, char *arg0 TSRMLS_DC)
-{
-	zval *retval_ptr;
-	int success;
-
-	retval_ptr = TWIG_CALL_S(object, method, arg0 TSRMLS_CC);
-	success = (retval_ptr && (Z_TYPE_P(retval_ptr) == IS_BOOL) && Z_LVAL_P(retval_ptr));
-
-	if (retval_ptr) {
-		zval_ptr_dtor(&retval_ptr);
-	}
-
-	return success;
-}
-
-static int TWIG_CALL_ZZ(zval *object, char *method, zval *arg1, zval *arg2 TSRMLS_DC)
-{
-	zend_fcall_info fci;
-	zval **args[2];
-	zval *zfunction;
-	zval *retval_ptr;
-	int   success;
-
-	args[0] = &arg1;
-	args[1] = &arg2;
-
-	MAKE_STD_ZVAL(zfunction);
-	ZVAL_STRING(zfunction, method, 1);
-	fci.size = sizeof(fci);
-	fci.function_table = EG(function_table);
-	fci.function_name = zfunction;
-	fci.symbol_table = NULL;
-#if PHP_VERSION_ID >= 50300
-	fci.object_ptr = object;
-#else
-	fci.object_pp = &object;
-#endif
-	fci.retval_ptr_ptr = &retval_ptr;
-	fci.param_count = 2;
-	fci.params = args;
-	fci.no_separation = 0;
-
-	if (zend_call_function(&fci, NULL TSRMLS_CC) == FAILURE) {
-		FREE_DTOR(zfunction);
-		return 0;
-	}
-
-	FREE_DTOR(zfunction);
-
-	success = (retval_ptr && (Z_TYPE_P(retval_ptr) == IS_BOOL) && Z_LVAL_P(retval_ptr));
-	if (retval_ptr) {
-		zval_ptr_dtor(&retval_ptr);
-	}
-
-	return success;
-}
-
-#ifndef Z_SET_REFCOUNT_P
-# define Z_SET_REFCOUNT_P(pz, rc)  pz->refcount = rc
-# define Z_UNSET_ISREF_P(pz) pz->is_ref = 0
-#endif
-
-static void TWIG_NEW(zval *object, char *class, zval *arg0, zval *arg1 TSRMLS_DC)
-{
-	zend_class_entry **pce;
-
-	if (zend_lookup_class(class, strlen(class), &pce TSRMLS_CC) == FAILURE) {
-		return;
-	}
-
-	Z_TYPE_P(object) = IS_OBJECT;
-	object_init_ex(object, *pce);
-	Z_SET_REFCOUNT_P(object, 1);
-	Z_UNSET_ISREF_P(object);
-
-	TWIG_CALL_ZZ(object, "__construct", arg0, arg1 TSRMLS_CC);
-}
-
-static int twig_add_array_key_to_string(void *pDest APPLY_TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
-{
-	smart_str *buf;
-	char *joiner;
-	APPLY_TSRMLS_FETCH();
-
-	buf = va_arg(args, smart_str*);
-	joiner = va_arg(args, char*);
-
-	if (buf->len != 0) {
-		smart_str_appends(buf, joiner);
-	}
-
-	if (hash_key->nKeyLength == 0) {
-		smart_str_append_long(buf, (long) hash_key->h);
-	} else {
-		char *key, *tmp_str;
-		int key_len, tmp_len;
-		key = php_addcslashes(hash_key->arKey, hash_key->nKeyLength - 1, &key_len, 0, "'\\", 2 TSRMLS_CC);
-		tmp_str = php_str_to_str_ex(key, key_len, "\0", 1, "' . \"\\0\" . '", 12, &tmp_len, 0, NULL);
-
-		smart_str_appendl(buf, tmp_str, tmp_len);
-		efree(key);
-		efree(tmp_str);
-	}
-
-	return 0;
-}
-
-static char *TWIG_IMPLODE_ARRAY_KEYS(char *joiner, zval *array TSRMLS_DC)
-{
-	smart_str collector = { 0, 0, 0 };
-
-	smart_str_appendl(&collector, "", 0);
-	zend_hash_apply_with_arguments(HASH_OF(array) APPLY_TSRMLS_CC, twig_add_array_key_to_string, 2, &collector, joiner);
-	smart_str_0(&collector);
-
-	return collector.c;
-}
-
-static void TWIG_RUNTIME_ERROR(zval *template TSRMLS_DC, char *message, ...)
-{
-	char *buffer;
-	va_list args;
-	zend_class_entry **pce;
-	zval *ex;
-	zval *constructor;
-	zval *zmessage;
-	zval *lineno;
-	zval *filename_func;
-	zval *filename;
-	zval *constructor_args[3];
-	zval *constructor_retval;
-
-	if (zend_lookup_class("Twig_Error_Runtime", strlen("Twig_Error_Runtime"), &pce TSRMLS_CC) == FAILURE) {
-		return;
-	}
-
-	va_start(args, message);
-	vspprintf(&buffer, 0, message, args);
-	va_end(args);
-
-	MAKE_STD_ZVAL(ex);
-	object_init_ex(ex, *pce);
-
-	// Call Twig_Error constructor
-	MAKE_STD_ZVAL(constructor);
-	MAKE_STD_ZVAL(zmessage);
-	MAKE_STD_ZVAL(lineno);
-	MAKE_STD_ZVAL(filename);
-	MAKE_STD_ZVAL(filename_func);
-	MAKE_STD_ZVAL(constructor_retval);
-
-	ZVAL_STRINGL(constructor, "__construct", sizeof("__construct")-1, 1);
-	ZVAL_STRING(zmessage, buffer, 1);
-	ZVAL_LONG(lineno, -1);
-
-	// Get template filename
-	ZVAL_STRINGL(filename_func, "getTemplateName", sizeof("getTemplateName")-1, 1);
-	call_user_function(EG(function_table), &template, filename_func, filename, 0, 0 TSRMLS_CC);
-
-	constructor_args[0] = zmessage;
-	constructor_args[1] = lineno;
-	constructor_args[2] = filename;
-	call_user_function(EG(function_table), &ex, constructor, constructor_retval, 3, constructor_args TSRMLS_CC);
-
-	zval_ptr_dtor(&constructor_retval);
-	zval_ptr_dtor(&zmessage);
-	zval_ptr_dtor(&lineno);
-	zval_ptr_dtor(&filename);
-	FREE_DTOR(constructor);
-	FREE_DTOR(filename_func);
-	efree(buffer);
-
-	zend_throw_exception_object(ex TSRMLS_CC);
-}
-
-static char *TWIG_GET_CLASS_NAME(zval *object TSRMLS_DC)
-{
-	char *class_name;
-	zend_uint class_name_len;
-
-	if (Z_TYPE_P(object) != IS_OBJECT) {
-		return "";
-	}
-#if PHP_API_VERSION >= 20100412
-	zend_get_object_classname(object, (const char **) &class_name, &class_name_len TSRMLS_CC);
-#else
-	zend_get_object_classname(object, &class_name, &class_name_len TSRMLS_CC);
-#endif
-	return class_name;
-}
-
-static int twig_add_method_to_class(void *pDest APPLY_TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
-{
-	zend_class_entry *ce;
-	zval *retval;
-	char *item;
-	size_t item_len;
-	zend_function *mptr = (zend_function *) pDest;
-	APPLY_TSRMLS_FETCH();
-
-	if (!(mptr->common.fn_flags & ZEND_ACC_PUBLIC)) {
-		return 0;
-	}
-
-	ce = *va_arg(args, zend_class_entry**);
-	retval = va_arg(args, zval*);
-
-	item_len = strlen(mptr->common.function_name);
-	item = estrndup(mptr->common.function_name, item_len);
-	php_strtolower(item, item_len);
-
-	if (strcmp("getenvironment", item) == 0) {
-		zend_class_entry **twig_template_ce;
-		if (zend_lookup_class("Twig_Template", strlen("Twig_Template"), &twig_template_ce TSRMLS_CC) == FAILURE) {
-			return 0;
-		}
-		if (instanceof_function(ce, *twig_template_ce TSRMLS_CC)) {
-			return 0;
-		}
-	}
-
-	add_assoc_stringl_ex(retval, item, item_len+1, item, item_len, 0);
-
-	return 0;
-}
-
-static int twig_add_property_to_class(void *pDest APPLY_TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
-{
-	zend_class_entry *ce;
-	zval *retval;
-	char *class_name, *prop_name;
-	zend_property_info *pptr = (zend_property_info *) pDest;
-	APPLY_TSRMLS_FETCH();
-
-	if (!(pptr->flags & ZEND_ACC_PUBLIC) || (pptr->flags & ZEND_ACC_STATIC)) {
-		return 0;
-	}
-
-	ce = *va_arg(args, zend_class_entry**);
-	retval = va_arg(args, zval*);
-
-#if PHP_API_VERSION >= 20100412
-	zend_unmangle_property_name(pptr->name, pptr->name_length, (const char **) &class_name, (const char **) &prop_name);
-#else
-	zend_unmangle_property_name(pptr->name, pptr->name_length, &class_name, &prop_name);
-#endif
-
-	add_assoc_string(retval, prop_name, prop_name, 1);
-
-	return 0;
-}
-
-static void twig_add_class_to_cache(zval *cache, zval *object, char *class_name TSRMLS_DC)
-{
-	zval *class_info, *class_methods, *class_properties;
-	zend_class_entry *class_ce;
-
-	class_ce = zend_get_class_entry(object TSRMLS_CC);
-
-	ALLOC_INIT_ZVAL(class_info);
-	ALLOC_INIT_ZVAL(class_methods);
-	ALLOC_INIT_ZVAL(class_properties);
-	array_init(class_info);
-	array_init(class_methods);
-	array_init(class_properties);
-	// add all methods to self::cache[$class]['methods']
-	zend_hash_apply_with_arguments(&class_ce->function_table APPLY_TSRMLS_CC, twig_add_method_to_class, 2, &class_ce, class_methods);
-	zend_hash_apply_with_arguments(&class_ce->properties_info APPLY_TSRMLS_CC, twig_add_property_to_class, 2, &class_ce, class_properties);
-
-	add_assoc_zval(class_info, "methods", class_methods);
-	add_assoc_zval(class_info, "properties", class_properties);
-	add_assoc_zval(cache, class_name, class_info);
-}
-
-/* {{{ proto mixed twig_template_get_attributes(TwigTemplate template, mixed object, mixed item, array arguments, string type, boolean isDefinedTest, boolean ignoreStrictCheck)
-   A C implementation of TwigTemplate::getAttribute() */
-PHP_FUNCTION(twig_template_get_attributes)
-{
-	zval *template;
-	zval *object;
-	char *item;
-	int  item_len;
-	zval *zitem, ztmpitem;
-	zval *arguments = NULL;
-	zval *ret = NULL;
-	char *type = NULL;
-	int   type_len = 0;
-	zend_bool isDefinedTest = 0;
-	zend_bool ignoreStrictCheck = 0;
-	int free_ret = 0;
-	zval *tmp_self_cache;
-	char *class_name = NULL;
-	zval *tmp_class;
-	char *type_name;
-
-	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ozz|asbb", &template, &object, &zitem, &arguments, &type, &type_len, &isDefinedTest, &ignoreStrictCheck) == FAILURE) {
-		return;
-	}
-
-	// convert the item to a string
-	ztmpitem = *zitem;
-	zval_copy_ctor(&ztmpitem);
-	convert_to_string(&ztmpitem);
-	item_len = Z_STRLEN(ztmpitem);
-	item = estrndup(Z_STRVAL(ztmpitem), item_len);
-	zval_dtor(&ztmpitem);
-
-	if (!type) {
-		type = "any";
-	}
-
-/*
-	// array
-	if (Twig_Template::METHOD_CALL !== $type) {
-		$arrayItem = is_bool($item) || is_float($item) ? (int) $item : $item;
-
-		if ((is_array($object) && array_key_exists($arrayItem, $object))
-			|| ($object instanceof ArrayAccess && isset($object[$arrayItem]))
-		) {
-			if ($isDefinedTest) {
-				return true;
-			}
-
-			return $object[$arrayItem];
-		}
-*/
-
-
-	if (strcmp("method", type) != 0) {
-		if ((TWIG_ARRAY_KEY_EXISTS(object, zitem))
-			|| (TWIG_INSTANCE_OF(object, zend_ce_arrayaccess TSRMLS_CC) && TWIG_ISSET_ARRAYOBJECT_ELEMENT(object, zitem TSRMLS_CC))
-		) {
-
-			if (isDefinedTest) {
-				efree(item);
-				RETURN_TRUE;
-			}
-
-			ret = TWIG_GET_ARRAY_ELEMENT_ZVAL(object, zitem TSRMLS_CC);
-
-			if (!ret) {
-				ret = &EG(uninitialized_zval);
-			}
-			RETVAL_ZVAL(ret, 1, 0);
-			if (free_ret) {
-				zval_ptr_dtor(&ret);
-			}
-			efree(item);
-			return;
-		}
-/*
-		if (Twig_Template::ARRAY_CALL === $type) {
-			if ($isDefinedTest) {
-				return false;
-			}
-			if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-				return null;
-			}
-*/
-		if (strcmp("array", type) == 0 || Z_TYPE_P(object) != IS_OBJECT) {
-			if (isDefinedTest) {
-				efree(item);
-				RETURN_FALSE;
-			}
-			if (ignoreStrictCheck || !TWIG_CALL_BOOLEAN(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "isStrictVariables" TSRMLS_CC)) {
-				efree(item);
-				return;
-			}
-/*
-			if ($object instanceof ArrayAccess) {
-				$message = sprintf('Key "%s" in object with ArrayAccess of class "%s" does not exist', $arrayItem, get_class($object));
-			} elseif (is_object($object)) {
-				$message = sprintf('Impossible to access a key "%s" on an object of class "%s" that does not implement ArrayAccess interface', $item, get_class($object));
-			} elseif (is_array($object)) {
-				if (empty($object)) {
-					$message = sprintf('Key "%s" does not exist as the array is empty', $arrayItem);
-				} else {
-					$message = sprintf('Key "%s" for array with keys "%s" does not exist', $arrayItem, implode(', ', array_keys($object)));
-				}
-			} elseif (Twig_Template::ARRAY_CALL === $type) {
-				if (null === $object) {
-					$message = sprintf('Impossible to access a key ("%s") on a null variable', $item);
-				} else {
-					$message = sprintf('Impossible to access a key ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
-				}
-			} elseif (null === $object) {
-				$message = sprintf('Impossible to access an attribute ("%s") on a null variable', $item);
-			} else {
-				$message = sprintf('Impossible to access an attribute ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
-			}
-			throw new Twig_Error_Runtime($message, -1, $this->getTemplateName());
-		}
-	}
-*/
-			if (TWIG_INSTANCE_OF(object, zend_ce_arrayaccess TSRMLS_CC)) {
-				TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Key \"%s\" in object with ArrayAccess of class \"%s\" does not exist", item, TWIG_GET_CLASS_NAME(object TSRMLS_CC));
-			} else if (Z_TYPE_P(object) == IS_OBJECT) {
-				TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Impossible to access a key \"%s\" on an object of class \"%s\" that does not implement ArrayAccess interface", item, TWIG_GET_CLASS_NAME(object TSRMLS_CC));
-			} else if (Z_TYPE_P(object) == IS_ARRAY) {
-				if (0 == zend_hash_num_elements(Z_ARRVAL_P(object))) {
-					TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Key \"%s\" does not exist as the array is empty", item);
-				} else {
-					char *array_keys = TWIG_IMPLODE_ARRAY_KEYS(", ", object TSRMLS_CC);
-					TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Key \"%s\" for array with keys \"%s\" does not exist", item, array_keys);
-					efree(array_keys);
-				}
-			} else {
-				char *type_name = zend_zval_type_name(object);
-				Z_ADDREF_P(object);
-				if (Z_TYPE_P(object) == IS_NULL) {
-					convert_to_string(object);
-					TWIG_RUNTIME_ERROR(template TSRMLS_CC,
-						(strcmp("array", type) == 0)
-							? "Impossible to access a key (\"%s\") on a %s variable"
-							: "Impossible to access an attribute (\"%s\") on a %s variable",
-						item, type_name);
-				} else {
-					convert_to_string(object);
-					TWIG_RUNTIME_ERROR(template TSRMLS_CC,
-						(strcmp("array", type) == 0)
-							? "Impossible to access a key (\"%s\") on a %s variable (\"%s\")"
-							: "Impossible to access an attribute (\"%s\") on a %s variable (\"%s\")",
-						item, type_name, Z_STRVAL_P(object));
-				}
-				zval_ptr_dtor(&object);
-			}
-			efree(item);
-			return;
-		}
-	}
-
-/*
-	if (!is_object($object)) {
-		if ($isDefinedTest) {
-			return false;
-		}
-*/
-
-	if (Z_TYPE_P(object) != IS_OBJECT) {
-		if (isDefinedTest) {
-			efree(item);
-			RETURN_FALSE;
-		}
-/*
-		if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-			return null;
-		}
-
-		if (null === $object) {
-			$message = sprintf('Impossible to invoke a method ("%s") on a null variable', $item);
-		} else {
-			$message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
-		}
-
-		throw new Twig_Error_Runtime($message, -1, $this->getTemplateName());
-	}
-*/
-		if (ignoreStrictCheck || !TWIG_CALL_BOOLEAN(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "isStrictVariables" TSRMLS_CC)) {
-			efree(item);
-			return;
-		}
-
-		type_name = zend_zval_type_name(object);
-		Z_ADDREF_P(object);
-		if (Z_TYPE_P(object) == IS_NULL) {
-			convert_to_string_ex(&object);
-
-			TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Impossible to invoke a method (\"%s\") on a %s variable", item, type_name);
-		} else {
-			convert_to_string_ex(&object);
-
-			TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Impossible to invoke a method (\"%s\") on a %s variable (\"%s\")", item, type_name, Z_STRVAL_P(object));
-		}
-
-		zval_ptr_dtor(&object);
-		efree(item);
-		return;
-	}
-/*
-	$class = get_class($object);
-*/
-
-	class_name = TWIG_GET_CLASS_NAME(object TSRMLS_CC);
-	tmp_self_cache = TWIG_GET_STATIC_PROPERTY(template, "cache" TSRMLS_CC);
-	tmp_class = TWIG_GET_ARRAY_ELEMENT(tmp_self_cache, class_name, strlen(class_name) TSRMLS_CC);
-
-	if (!tmp_class) {
-		twig_add_class_to_cache(tmp_self_cache, object, class_name TSRMLS_CC);
-		tmp_class = TWIG_GET_ARRAY_ELEMENT(tmp_self_cache, class_name, strlen(class_name) TSRMLS_CC);
-	}
-	efree(class_name);
-
-/*
-	// object property
-	if (Twig_Template::METHOD_CALL !== $type && !$object instanceof Twig_Template) {
-		if (isset($object->$item) || array_key_exists((string) $item, $object)) {
-			if ($isDefinedTest) {
-				return true;
-			}
-
-			if ($this->env->hasExtension('sandbox')) {
-				$this->env->getExtension('sandbox')->checkPropertyAllowed($object, $item);
-			}
-
-			return $object->$item;
-		}
-	}
-*/
-	if (strcmp("method", type) != 0 && !TWIG_INSTANCE_OF_USERLAND(object, "Twig_Template" TSRMLS_CC)) {
-		zval *tmp_properties, *tmp_item;
-
-		tmp_properties = TWIG_GET_ARRAY_ELEMENT(tmp_class, "properties", strlen("properties") TSRMLS_CC);
-		tmp_item = TWIG_GET_ARRAY_ELEMENT(tmp_properties, item, item_len TSRMLS_CC);
-
-		if (tmp_item || TWIG_HAS_PROPERTY(object, zitem TSRMLS_CC) || TWIG_HAS_DYNAMIC_PROPERTY(object, item, item_len TSRMLS_CC)) {
-			if (isDefinedTest) {
-				efree(item);
-				RETURN_TRUE;
-			}
-			if (TWIG_CALL_SB(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "hasExtension", "sandbox" TSRMLS_CC)) {
-				TWIG_CALL_ZZ(TWIG_CALL_S(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "getExtension", "sandbox" TSRMLS_CC), "checkPropertyAllowed", object, zitem TSRMLS_CC);
-			}
-			if (EG(exception)) {
-				efree(item);
-				return;
-			}
-
-			ret = TWIG_PROPERTY(object, zitem TSRMLS_CC);
-			efree(item);
-			RETURN_ZVAL(ret, 1, 0);
-		}
-	}
-/*
-	// object method
-	if (!isset(self::$cache[$class]['methods'])) {
-		if ($object instanceof self) {
-			$ref = new ReflectionClass($class);
-			$methods = array();
-
-			foreach ($ref->getMethods(ReflectionMethod::IS_PUBLIC) as $refMethod) {
-				$methodName = strtolower($refMethod->name);
-
-				// Accessing the environment from templates is forbidden to prevent untrusted changes to the environment
-				if ('getenvironment' !== $methodName) {
-					$methods[$methodName] = true;
-				}
-			}
-
-			self::$cache[$class]['methods'] = $methods;
-        } else {
-			self::$cache[$class]['methods'] = array_change_key_case(array_flip(get_class_methods($object)));
-        }
-	}
-
-	$call = false;
-	$lcItem = strtolower($item);
-	if (isset(self::$cache[$class]['methods'][$lcItem])) {
-		$method = (string) $item;
-	} elseif (isset(self::$cache[$class]['methods']['get'.$lcItem])) {
-		$method = 'get'.$item;
-	} elseif (isset(self::$cache[$class]['methods']['is'.$lcItem])) {
-		$method = 'is'.$item;
-	} elseif (isset(self::$cache[$class]['methods']['__call'])) {
-		$method = (string) $item;
-		$call = true;
-*/
-	{
-		int call = 0;
-		char *lcItem = TWIG_STRTOLOWER(item, item_len);
-		int   lcItem_length;
-		char *method = NULL;
-		char *tmp_method_name_get;
-		char *tmp_method_name_is;
-		zval *zmethod;
-		zval *tmp_methods;
-
-		lcItem_length = strlen(lcItem);
-		tmp_method_name_get = emalloc(4 + lcItem_length);
-		tmp_method_name_is  = emalloc(3 + lcItem_length);
-
-		sprintf(tmp_method_name_get, "get%s", lcItem);
-		sprintf(tmp_method_name_is, "is%s", lcItem);
-
-		tmp_methods = TWIG_GET_ARRAY_ELEMENT(tmp_class, "methods", strlen("methods") TSRMLS_CC);
-
-		if (TWIG_GET_ARRAY_ELEMENT(tmp_methods, lcItem, lcItem_length TSRMLS_CC)) {
-			method = item;
-		} else if (TWIG_GET_ARRAY_ELEMENT(tmp_methods, tmp_method_name_get, lcItem_length + 3 TSRMLS_CC)) {
-			method = tmp_method_name_get;
-		} else if (TWIG_GET_ARRAY_ELEMENT(tmp_methods, tmp_method_name_is, lcItem_length + 2 TSRMLS_CC)) {
-			method = tmp_method_name_is;
-		} else if (TWIG_GET_ARRAY_ELEMENT(tmp_methods, "__call", 6 TSRMLS_CC)) {
-			method = item;
-			call = 1;
-/*
-	} else {
-		if ($isDefinedTest) {
-			return false;
-		}
-
-		if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-			return null;
-		}
-
-		throw new Twig_Error_Runtime(sprintf('Method "%s" for object "%s" does not exist', $item, get_class($object)), -1, $this->getTemplateName());
-	}
-
-	if ($isDefinedTest) {
-		return true;
-	}
-*/
-		} else {
-			efree(tmp_method_name_get);
-			efree(tmp_method_name_is);
-			efree(lcItem);
-
-			if (isDefinedTest) {
-				efree(item);
-				RETURN_FALSE;
-			}
-			if (ignoreStrictCheck || !TWIG_CALL_BOOLEAN(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "isStrictVariables" TSRMLS_CC)) {
-				efree(item);
-				return;
-			}
-			TWIG_RUNTIME_ERROR(template TSRMLS_CC, "Method \"%s\" for object \"%s\" does not exist", item, TWIG_GET_CLASS_NAME(object TSRMLS_CC));
-			efree(item);
-			return;
-		}
-
-		if (isDefinedTest) {
-			efree(tmp_method_name_get);
-			efree(tmp_method_name_is);
-			efree(lcItem);efree(item);
-			RETURN_TRUE;
-		}
-/*
-	if ($this->env->hasExtension('sandbox')) {
-		$this->env->getExtension('sandbox')->checkMethodAllowed($object, $method);
-	}
-*/
-		MAKE_STD_ZVAL(zmethod);
-		ZVAL_STRING(zmethod, method, 1);
-		if (TWIG_CALL_SB(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "hasExtension", "sandbox" TSRMLS_CC)) {
-			TWIG_CALL_ZZ(TWIG_CALL_S(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "getExtension", "sandbox" TSRMLS_CC), "checkMethodAllowed", object, zmethod TSRMLS_CC);
-		}
-		zval_ptr_dtor(&zmethod);
-		if (EG(exception)) {
-			efree(tmp_method_name_get);
-			efree(tmp_method_name_is);
-			efree(lcItem);efree(item);
-			return;
-		}
-/*
-	// Some objects throw exceptions when they have __call, and the method we try
-	// to call is not supported. If ignoreStrictCheck is true, we should return null.
-	try {
-	    $ret = call_user_func_array(array($object, $method), $arguments);
-	} catch (BadMethodCallException $e) {
-	    if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
-	        return null;
-	    }
-	    throw $e;
-	}
-*/
-		ret = TWIG_CALL_USER_FUNC_ARRAY(object, method, arguments TSRMLS_CC);
-		if (EG(exception) && TWIG_INSTANCE_OF(EG(exception), spl_ce_BadMethodCallException TSRMLS_CC)) {
-			if (ignoreStrictCheck || !TWIG_CALL_BOOLEAN(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "isStrictVariables" TSRMLS_CC)) {
-				efree(tmp_method_name_get);
-				efree(tmp_method_name_is);
-				efree(lcItem);efree(item);
-				zend_clear_exception(TSRMLS_C);
-				return;
-			}
-		}
-		free_ret = 1;
-		efree(tmp_method_name_get);
-		efree(tmp_method_name_is);
-		efree(lcItem);
-	}
-/*
-	// useful when calling a template method from a template
-	// this is not supported but unfortunately heavily used in the Symfony profiler
-	if ($object instanceof Twig_TemplateInterface) {
-		return $ret === '' ? '' : new Twig_Markup($ret, $this->env->getCharset());
-	}
-
-	return $ret;
-*/
-	efree(item);
-	// ret can be null, if e.g. the called method throws an exception
-	if (ret) {
-		if (TWIG_INSTANCE_OF_USERLAND(object, "Twig_TemplateInterface" TSRMLS_CC)) {
-			if (Z_STRLEN_P(ret) != 0) {
-				zval *charset = TWIG_CALL_USER_FUNC_ARRAY(TWIG_PROPERTY_CHAR(template, "env" TSRMLS_CC), "getCharset", NULL TSRMLS_CC);
-				TWIG_NEW(return_value, "Twig_Markup", ret, charset TSRMLS_CC);
-				zval_ptr_dtor(&charset);
-				if (ret) {
-					zval_ptr_dtor(&ret);
-				}
-				return;
-			}
-		}
-
-		RETVAL_ZVAL(ret, 1, 0);
-		if (free_ret) {
-			zval_ptr_dtor(&ret);
-		}
-	}
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Autoloader.php b/core/vendor/twig/twig/lib/Twig/Autoloader.php
deleted file mode 100644
index 87f7415..0000000
--- a/core/vendor/twig/twig/lib/Twig/Autoloader.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Autoloads Twig classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Autoloader
-{
-    /**
-     * Registers Twig_Autoloader as an SPL autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not.
-     */
-    public static function register($prepend = false)
-    {
-        if (PHP_VERSION_ID < 50300) {
-            spl_autoload_register(array(__CLASS__, 'autoload'));
-        } else {
-            spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
-        }
-    }
-
-    /**
-     * Handles autoloading of classes.
-     *
-     * @param string $class A class name.
-     */
-    public static function autoload($class)
-    {
-        if (0 !== strpos($class, 'Twig')) {
-            return;
-        }
-
-        if (is_file($file = dirname(__FILE__).'/../'.str_replace(array('_', "\0"), array('/', ''), $class).'.php')) {
-            require $file;
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php b/core/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php
deleted file mode 100644
index bb865d6..0000000
--- a/core/vendor/twig/twig/lib/Twig/BaseNodeVisitor.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_BaseNodeVisitor can be used to make node visitors compatible with Twig 1.x and 2.x.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Twig_BaseNodeVisitor implements Twig_NodeVisitorInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    final public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if (!$node instanceof Twig_Node) {
-            throw new LogicException('Twig_BaseNodeVisitor only supports Twig_Node instances.');
-        }
-
-        return $this->doEnterNode($node, $env);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    final public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if (!$node instanceof Twig_Node) {
-            throw new LogicException('Twig_BaseNodeVisitor only supports Twig_Node instances.');
-        }
-
-        return $this->doLeaveNode($node, $env);
-    }
-
-    /**
-     * Called before child nodes are visited.
-     *
-     * @param Twig_Node         $node The node to visit
-     * @param Twig_Environment  $env  The Twig environment instance
-     *
-     * @return Twig_Node The modified node
-     */
-    abstract protected function doEnterNode(Twig_Node $node, Twig_Environment $env);
-
-    /**
-     * Called after child nodes are visited.
-     *
-     * @param Twig_Node        $node The node to visit
-     * @param Twig_Environment $env  The Twig environment instance
-     *
-     * @return Twig_Node|false The modified node or false if the node must be removed
-     */
-    abstract protected function doLeaveNode(Twig_Node $node, Twig_Environment $env);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Compiler.php b/core/vendor/twig/twig/lib/Twig/Compiler.php
deleted file mode 100644
index 2514c31..0000000
--- a/core/vendor/twig/twig/lib/Twig/Compiler.php
+++ /dev/null
@@ -1,278 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Compiles a node to PHP code.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Compiler implements Twig_CompilerInterface
-{
-    protected $lastLine;
-    protected $source;
-    protected $indentation;
-    protected $env;
-    protected $debugInfo;
-    protected $sourceOffset;
-    protected $sourceLine;
-    protected $filename;
-
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment $env The twig environment instance
-     */
-    public function __construct(Twig_Environment $env)
-    {
-        $this->env = $env;
-        $this->debugInfo = array();
-    }
-
-    public function getFilename()
-    {
-        return $this->filename;
-    }
-
-    /**
-     * Returns the environment instance related to this compiler.
-     *
-     * @return Twig_Environment The environment instance
-     */
-    public function getEnvironment()
-    {
-        return $this->env;
-    }
-
-    /**
-     * Gets the current PHP code after compilation.
-     *
-     * @return string The PHP code
-     */
-    public function getSource()
-    {
-        return $this->source;
-    }
-
-    /**
-     * Compiles a node.
-     *
-     * @param Twig_NodeInterface $node        The node to compile
-     * @param int                $indentation The current indentation
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function compile(Twig_NodeInterface $node, $indentation = 0)
-    {
-        $this->lastLine = null;
-        $this->source = '';
-        $this->debugInfo = array();
-        $this->sourceOffset = 0;
-        // source code starts at 1 (as we then increment it when we encounter new lines)
-        $this->sourceLine = 1;
-        $this->indentation = $indentation;
-
-        if ($node instanceof Twig_Node_Module) {
-            $this->filename = $node->getAttribute('filename');
-        }
-
-        $node->compile($this);
-
-        return $this;
-    }
-
-    public function subcompile(Twig_NodeInterface $node, $raw = true)
-    {
-        if (false === $raw) {
-            $this->addIndentation();
-        }
-
-        $node->compile($this);
-
-        return $this;
-    }
-
-    /**
-     * Adds a raw string to the compiled code.
-     *
-     * @param string $string The string
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function raw($string)
-    {
-        $this->source .= $string;
-
-        return $this;
-    }
-
-    /**
-     * Writes a string to the compiled code by adding indentation.
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function write()
-    {
-        $strings = func_get_args();
-        foreach ($strings as $string) {
-            $this->addIndentation();
-            $this->source .= $string;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Appends an indentation to the current PHP code after compilation.
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function addIndentation()
-    {
-        $this->source .= str_repeat(' ', $this->indentation * 4);
-
-        return $this;
-    }
-
-    /**
-     * Adds a quoted string to the compiled code.
-     *
-     * @param string $value The string
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function string($value)
-    {
-        $this->source .= sprintf('"%s"', addcslashes($value, "\0\t\"\$\\"));
-
-        return $this;
-    }
-
-    /**
-     * Returns a PHP representation of a given value.
-     *
-     * @param mixed $value The value to convert
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function repr($value)
-    {
-        if (is_int($value) || is_float($value)) {
-            if (false !== $locale = setlocale(LC_NUMERIC, 0)) {
-                setlocale(LC_NUMERIC, 'C');
-            }
-
-            $this->raw($value);
-
-            if (false !== $locale) {
-                setlocale(LC_NUMERIC, $locale);
-            }
-        } elseif (null === $value) {
-            $this->raw('null');
-        } elseif (is_bool($value)) {
-            $this->raw($value ? 'true' : 'false');
-        } elseif (is_array($value)) {
-            $this->raw('array(');
-            $first = true;
-            foreach ($value as $key => $v) {
-                if (!$first) {
-                    $this->raw(', ');
-                }
-                $first = false;
-                $this->repr($key);
-                $this->raw(' => ');
-                $this->repr($v);
-            }
-            $this->raw(')');
-        } else {
-            $this->string($value);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Adds debugging information.
-     *
-     * @param Twig_NodeInterface $node The related twig node
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function addDebugInfo(Twig_NodeInterface $node)
-    {
-        if ($node->getLine() != $this->lastLine) {
-            $this->write(sprintf("// line %d\n", $node->getLine()));
-
-            // when mbstring.func_overload is set to 2
-            // mb_substr_count() replaces substr_count()
-            // but they have different signatures!
-            if (((int) ini_get('mbstring.func_overload')) & 2) {
-                // this is much slower than the "right" version
-                $this->sourceLine += mb_substr_count(mb_substr($this->source, $this->sourceOffset), "\n");
-            } else {
-                $this->sourceLine += substr_count($this->source, "\n", $this->sourceOffset);
-            }
-            $this->sourceOffset = strlen($this->source);
-            $this->debugInfo[$this->sourceLine] = $node->getLine();
-
-            $this->lastLine = $node->getLine();
-        }
-
-        return $this;
-    }
-
-    public function getDebugInfo()
-    {
-        ksort($this->debugInfo);
-
-        return $this->debugInfo;
-    }
-
-    /**
-     * Indents the generated code.
-     *
-     * @param int $step The number of indentation to add
-     *
-     * @return Twig_Compiler The current compiler instance
-     */
-    public function indent($step = 1)
-    {
-        $this->indentation += $step;
-
-        return $this;
-    }
-
-    /**
-     * Outdents the generated code.
-     *
-     * @param int $step The number of indentation to remove
-     *
-     * @return Twig_Compiler The current compiler instance
-     *
-     * @throws LogicException When trying to outdent too much so the indentation would become negative
-     */
-    public function outdent($step = 1)
-    {
-        // can't outdent by more steps than the current indentation level
-        if ($this->indentation < $step) {
-            throw new LogicException('Unable to call outdent() as the indentation would become negative');
-        }
-
-        $this->indentation -= $step;
-
-        return $this;
-    }
-
-    public function getVarName()
-    {
-        return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/CompilerInterface.php b/core/vendor/twig/twig/lib/Twig/CompilerInterface.php
deleted file mode 100644
index 272c767..0000000
--- a/core/vendor/twig/twig/lib/Twig/CompilerInterface.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by compiler classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 3.0)
- */
-interface Twig_CompilerInterface
-{
-    /**
-     * Compiles a node.
-     *
-     * @param Twig_NodeInterface $node The node to compile
-     *
-     * @return Twig_CompilerInterface The current compiler instance
-     */
-    public function compile(Twig_NodeInterface $node);
-
-    /**
-     * Gets the current PHP code after compilation.
-     *
-     * @return string The PHP code
-     */
-    public function getSource();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Environment.php b/core/vendor/twig/twig/lib/Twig/Environment.php
deleted file mode 100644
index 3ac9124..0000000
--- a/core/vendor/twig/twig/lib/Twig/Environment.php
+++ /dev/null
@@ -1,1294 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Stores the Twig configuration.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Environment
-{
-    const VERSION = '1.20.0';
-
-    protected $charset;
-    protected $loader;
-    protected $debug;
-    protected $autoReload;
-    protected $cache;
-    protected $lexer;
-    protected $parser;
-    protected $compiler;
-    protected $baseTemplateClass;
-    protected $extensions;
-    protected $parsers;
-    protected $visitors;
-    protected $filters;
-    protected $tests;
-    protected $functions;
-    protected $globals;
-    protected $runtimeInitialized;
-    protected $extensionInitialized;
-    protected $loadedTemplates;
-    protected $strictVariables;
-    protected $unaryOperators;
-    protected $binaryOperators;
-    protected $templateClassPrefix = '__TwigTemplate_';
-    protected $functionCallbacks;
-    protected $filterCallbacks;
-    protected $staging;
-
-    /**
-     * Constructor.
-     *
-     * Available options:
-     *
-     *  * debug: When set to true, it automatically set "auto_reload" to true as
-     *           well (default to false).
-     *
-     *  * charset: The charset used by the templates (default to UTF-8).
-     *
-     *  * base_template_class: The base template class to use for generated
-     *                         templates (default to Twig_Template).
-     *
-     *  * cache: An absolute path where to store the compiled templates, or
-     *           false to disable compilation cache (default).
-     *
-     *  * auto_reload: Whether to reload the template if the original source changed.
-     *                 If you don't provide the auto_reload option, it will be
-     *                 determined automatically based on the debug value.
-     *
-     *  * strict_variables: Whether to ignore invalid variables in templates
-     *                      (default to false).
-     *
-     *  * autoescape: Whether to enable auto-escaping (default to html):
-     *                  * false: disable auto-escaping
-     *                  * true: equivalent to html
-     *                  * html, js: set the autoescaping to one of the supported strategies
-     *                  * filename: set the autoescaping strategy based on the template filename extension
-     *                  * PHP callback: a PHP callback that returns an escaping strategy based on the template "filename"
-     *
-     *  * optimizations: A flag that indicates which optimizations to apply
-     *                   (default to -1 which means that all optimizations are enabled;
-     *                   set it to 0 to disable).
-     *
-     * @param Twig_LoaderInterface $loader  A Twig_LoaderInterface instance
-     * @param array                $options An array of options
-     */
-    public function __construct(Twig_LoaderInterface $loader = null, $options = array())
-    {
-        if (null !== $loader) {
-            $this->setLoader($loader);
-        }
-
-        $options = array_merge(array(
-            'debug' => false,
-            'charset' => 'UTF-8',
-            'base_template_class' => 'Twig_Template',
-            'strict_variables' => false,
-            'autoescape' => 'html',
-            'cache' => false,
-            'auto_reload' => null,
-            'optimizations' => -1,
-        ), $options);
-
-        $this->debug = (bool) $options['debug'];
-        $this->charset = strtoupper($options['charset']);
-        $this->baseTemplateClass = $options['base_template_class'];
-        $this->autoReload = null === $options['auto_reload'] ? $this->debug : (bool) $options['auto_reload'];
-        $this->strictVariables = (bool) $options['strict_variables'];
-        $this->runtimeInitialized = false;
-        $this->setCache($options['cache']);
-        $this->functionCallbacks = array();
-        $this->filterCallbacks = array();
-
-        $this->addExtension(new Twig_Extension_Core());
-        $this->addExtension(new Twig_Extension_Escaper($options['autoescape']));
-        $this->addExtension(new Twig_Extension_Optimizer($options['optimizations']));
-        $this->extensionInitialized = false;
-        $this->staging = new Twig_Extension_Staging();
-    }
-
-    /**
-     * Gets the base template class for compiled templates.
-     *
-     * @return string The base template class name
-     */
-    public function getBaseTemplateClass()
-    {
-        return $this->baseTemplateClass;
-    }
-
-    /**
-     * Sets the base template class for compiled templates.
-     *
-     * @param string $class The base template class name
-     */
-    public function setBaseTemplateClass($class)
-    {
-        $this->baseTemplateClass = $class;
-    }
-
-    /**
-     * Enables debugging mode.
-     */
-    public function enableDebug()
-    {
-        $this->debug = true;
-    }
-
-    /**
-     * Disables debugging mode.
-     */
-    public function disableDebug()
-    {
-        $this->debug = false;
-    }
-
-    /**
-     * Checks if debug mode is enabled.
-     *
-     * @return bool true if debug mode is enabled, false otherwise
-     */
-    public function isDebug()
-    {
-        return $this->debug;
-    }
-
-    /**
-     * Enables the auto_reload option.
-     */
-    public function enableAutoReload()
-    {
-        $this->autoReload = true;
-    }
-
-    /**
-     * Disables the auto_reload option.
-     */
-    public function disableAutoReload()
-    {
-        $this->autoReload = false;
-    }
-
-    /**
-     * Checks if the auto_reload option is enabled.
-     *
-     * @return bool true if auto_reload is enabled, false otherwise
-     */
-    public function isAutoReload()
-    {
-        return $this->autoReload;
-    }
-
-    /**
-     * Enables the strict_variables option.
-     */
-    public function enableStrictVariables()
-    {
-        $this->strictVariables = true;
-    }
-
-    /**
-     * Disables the strict_variables option.
-     */
-    public function disableStrictVariables()
-    {
-        $this->strictVariables = false;
-    }
-
-    /**
-     * Checks if the strict_variables option is enabled.
-     *
-     * @return bool true if strict_variables is enabled, false otherwise
-     */
-    public function isStrictVariables()
-    {
-        return $this->strictVariables;
-    }
-
-    /**
-     * Gets the cache directory or false if cache is disabled.
-     *
-     * @return string|false
-     */
-    public function getCache()
-    {
-        return $this->cache;
-    }
-
-    /**
-     * Sets the cache directory or false if cache is disabled.
-     *
-     * @param string|false $cache The absolute path to the compiled templates,
-     *                            or false to disable cache
-     */
-    public function setCache($cache)
-    {
-        $this->cache = $cache ? $cache : false;
-    }
-
-    /**
-     * Gets the cache filename for a given template.
-     *
-     * @param string $name The template name
-     *
-     * @return string|false The cache file name or false when caching is disabled
-     */
-    public function getCacheFilename($name)
-    {
-        if (false === $this->cache) {
-            return false;
-        }
-
-        $class = substr($this->getTemplateClass($name), strlen($this->templateClassPrefix));
-
-        return $this->getCache().'/'.$class[0].'/'.$class[1].'/'.$class.'.php';
-    }
-
-    /**
-     * Gets the template class associated with the given string.
-     *
-     * @param string $name  The name for which to calculate the template class name
-     * @param int    $index The index if it is an embedded template
-     *
-     * @return string The template class name
-     */
-    public function getTemplateClass($name, $index = null)
-    {
-        return $this->templateClassPrefix.hash('sha256', $this->getLoader()->getCacheKey($name)).(null === $index ? '' : '_'.$index);
-    }
-
-    /**
-     * Gets the template class prefix.
-     *
-     * @return string The template class prefix
-     */
-    public function getTemplateClassPrefix()
-    {
-        return $this->templateClassPrefix;
-    }
-
-    /**
-     * Renders a template.
-     *
-     * @param string $name    The template name
-     * @param array  $context An array of parameters to pass to the template
-     *
-     * @return string The rendered template
-     *
-     * @throws Twig_Error_Loader  When the template cannot be found
-     * @throws Twig_Error_Syntax  When an error occurred during compilation
-     * @throws Twig_Error_Runtime When an error occurred during rendering
-     */
-    public function render($name, array $context = array())
-    {
-        return $this->loadTemplate($name)->render($context);
-    }
-
-    /**
-     * Displays a template.
-     *
-     * @param string $name    The template name
-     * @param array  $context An array of parameters to pass to the template
-     *
-     * @throws Twig_Error_Loader  When the template cannot be found
-     * @throws Twig_Error_Syntax  When an error occurred during compilation
-     * @throws Twig_Error_Runtime When an error occurred during rendering
-     */
-    public function display($name, array $context = array())
-    {
-        $this->loadTemplate($name)->display($context);
-    }
-
-    /**
-     * Loads a template by name.
-     *
-     * @param string $name  The template name
-     * @param int    $index The index if it is an embedded template
-     *
-     * @return Twig_TemplateInterface A template instance representing the given template name
-     *
-     * @throws Twig_Error_Loader When the template cannot be found
-     * @throws Twig_Error_Syntax When an error occurred during compilation
-     */
-    public function loadTemplate($name, $index = null)
-    {
-        $cls = $this->getTemplateClass($name, $index);
-
-        if (isset($this->loadedTemplates[$cls])) {
-            return $this->loadedTemplates[$cls];
-        }
-
-        if (!class_exists($cls, false)) {
-            if (false === $cache = $this->getCacheFilename($name)) {
-                eval('?>'.$this->compileSource($this->getLoader()->getSource($name), $name));
-            } else {
-                if (!is_file($cache) || ($this->isAutoReload() && !$this->isTemplateFresh($name, filemtime($cache)))) {
-                    $this->writeCacheFile($cache, $this->compileSource($this->getLoader()->getSource($name), $name));
-                }
-
-                require_once $cache;
-            }
-        }
-
-        if (!$this->runtimeInitialized) {
-            $this->initRuntime();
-        }
-
-        return $this->loadedTemplates[$cls] = new $cls($this);
-    }
-
-    /**
-     * Creates a template from source.
-     *
-     * This method should not be used as a generic way to load templates.
-     *
-     * @param string $template The template name
-     *
-     * @return Twig_Template A template instance representing the given template name
-     *
-     * @throws Twig_Error_Loader When the template cannot be found
-     * @throws Twig_Error_Syntax When an error occurred during compilation
-     */
-    public function createTemplate($template)
-    {
-        $name = sprintf('__string_template__%s', hash('sha256', uniqid(mt_rand(), true), false));
-
-        $loader = new Twig_Loader_Chain(array(
-            new Twig_Loader_Array(array($name => $template)),
-            $current = $this->getLoader(),
-        ));
-
-        $this->setLoader($loader);
-        try {
-            $template = $this->loadTemplate($name);
-        } catch (Exception $e) {
-            $this->setLoader($current);
-
-            throw $e;
-        }
-        $this->setLoader($current);
-
-        return $template;
-    }
-
-    /**
-     * Returns true if the template is still fresh.
-     *
-     * Besides checking the loader for freshness information,
-     * this method also checks if the enabled extensions have
-     * not changed.
-     *
-     * @param string $name The template name
-     * @param int    $time The last modification time of the cached template
-     *
-     * @return bool true if the template is fresh, false otherwise
-     */
-    public function isTemplateFresh($name, $time)
-    {
-        foreach ($this->extensions as $extension) {
-            $r = new ReflectionObject($extension);
-            if (filemtime($r->getFileName()) > $time) {
-                return false;
-            }
-        }
-
-        return $this->getLoader()->isFresh($name, $time);
-    }
-
-    /**
-     * Tries to load a template consecutively from an array.
-     *
-     * Similar to loadTemplate() but it also accepts Twig_TemplateInterface instances and an array
-     * of templates where each is tried to be loaded.
-     *
-     * @param string|Twig_Template|array $names A template or an array of templates to try consecutively
-     *
-     * @return Twig_Template
-     *
-     * @throws Twig_Error_Loader When none of the templates can be found
-     * @throws Twig_Error_Syntax When an error occurred during compilation
-     */
-    public function resolveTemplate($names)
-    {
-        if (!is_array($names)) {
-            $names = array($names);
-        }
-
-        foreach ($names as $name) {
-            if ($name instanceof Twig_Template) {
-                return $name;
-            }
-
-            try {
-                return $this->loadTemplate($name);
-            } catch (Twig_Error_Loader $e) {
-            }
-        }
-
-        if (1 === count($names)) {
-            throw $e;
-        }
-
-        throw new Twig_Error_Loader(sprintf('Unable to find one of the following templates: "%s".', implode('", "', $names)));
-    }
-
-    /**
-     * Clears the internal template cache.
-     *
-     * @deprecated since 1.18.3 (to be removed in 2.0)
-     */
-    public function clearTemplateCache()
-    {
-        $this->loadedTemplates = array();
-    }
-
-    /**
-     * Clears the template cache files on the filesystem.
-     */
-    public function clearCacheFiles()
-    {
-        if (false === $this->cache) {
-            return;
-        }
-
-        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->cache), RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
-            if ($file->isFile()) {
-                @unlink($file->getPathname());
-            }
-        }
-    }
-
-    /**
-     * Gets the Lexer instance.
-     *
-     * @return Twig_LexerInterface A Twig_LexerInterface instance
-     */
-    public function getLexer()
-    {
-        if (null === $this->lexer) {
-            $this->lexer = new Twig_Lexer($this);
-        }
-
-        return $this->lexer;
-    }
-
-    /**
-     * Sets the Lexer instance.
-     *
-     * @param Twig_LexerInterface $lexer A Twig_LexerInterface instance
-     */
-    public function setLexer(Twig_LexerInterface $lexer)
-    {
-        $this->lexer = $lexer;
-    }
-
-    /**
-     * Tokenizes a source code.
-     *
-     * @param string $source The template source code
-     * @param string $name   The template name
-     *
-     * @return Twig_TokenStream A Twig_TokenStream instance
-     *
-     * @throws Twig_Error_Syntax When the code is syntactically wrong
-     */
-    public function tokenize($source, $name = null)
-    {
-        return $this->getLexer()->tokenize($source, $name);
-    }
-
-    /**
-     * Gets the Parser instance.
-     *
-     * @return Twig_ParserInterface A Twig_ParserInterface instance
-     */
-    public function getParser()
-    {
-        if (null === $this->parser) {
-            $this->parser = new Twig_Parser($this);
-        }
-
-        return $this->parser;
-    }
-
-    /**
-     * Sets the Parser instance.
-     *
-     * @param Twig_ParserInterface $parser A Twig_ParserInterface instance
-     */
-    public function setParser(Twig_ParserInterface $parser)
-    {
-        $this->parser = $parser;
-    }
-
-    /**
-     * Converts a token stream to a node tree.
-     *
-     * @param Twig_TokenStream $stream A token stream instance
-     *
-     * @return Twig_Node_Module A node tree
-     *
-     * @throws Twig_Error_Syntax When the token stream is syntactically or semantically wrong
-     */
-    public function parse(Twig_TokenStream $stream)
-    {
-        return $this->getParser()->parse($stream);
-    }
-
-    /**
-     * Gets the Compiler instance.
-     *
-     * @return Twig_CompilerInterface A Twig_CompilerInterface instance
-     */
-    public function getCompiler()
-    {
-        if (null === $this->compiler) {
-            $this->compiler = new Twig_Compiler($this);
-        }
-
-        return $this->compiler;
-    }
-
-    /**
-     * Sets the Compiler instance.
-     *
-     * @param Twig_CompilerInterface $compiler A Twig_CompilerInterface instance
-     */
-    public function setCompiler(Twig_CompilerInterface $compiler)
-    {
-        $this->compiler = $compiler;
-    }
-
-    /**
-     * Compiles a node and returns the PHP code.
-     *
-     * @param Twig_NodeInterface $node A Twig_NodeInterface instance
-     *
-     * @return string The compiled PHP source code
-     */
-    public function compile(Twig_NodeInterface $node)
-    {
-        return $this->getCompiler()->compile($node)->getSource();
-    }
-
-    /**
-     * Compiles a template source code.
-     *
-     * @param string $source The template source code
-     * @param string $name   The template name
-     *
-     * @return string The compiled PHP source code
-     *
-     * @throws Twig_Error_Syntax When there was an error during tokenizing, parsing or compiling
-     */
-    public function compileSource($source, $name = null)
-    {
-        try {
-            return $this->compile($this->parse($this->tokenize($source, $name)));
-        } catch (Twig_Error $e) {
-            $e->setTemplateFile($name);
-            throw $e;
-        } catch (Exception $e) {
-            throw new Twig_Error_Syntax(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $name, $e);
-        }
-    }
-
-    /**
-     * Sets the Loader instance.
-     *
-     * @param Twig_LoaderInterface $loader A Twig_LoaderInterface instance
-     */
-    public function setLoader(Twig_LoaderInterface $loader)
-    {
-        $this->loader = $loader;
-    }
-
-    /**
-     * Gets the Loader instance.
-     *
-     * @return Twig_LoaderInterface A Twig_LoaderInterface instance
-     */
-    public function getLoader()
-    {
-        if (null === $this->loader) {
-            throw new LogicException('You must set a loader first.');
-        }
-
-        return $this->loader;
-    }
-
-    /**
-     * Sets the default template charset.
-     *
-     * @param string $charset The default charset
-     */
-    public function setCharset($charset)
-    {
-        $this->charset = strtoupper($charset);
-    }
-
-    /**
-     * Gets the default template charset.
-     *
-     * @return string The default charset
-     */
-    public function getCharset()
-    {
-        return $this->charset;
-    }
-
-    /**
-     * Initializes the runtime environment.
-     */
-    public function initRuntime()
-    {
-        $this->runtimeInitialized = true;
-
-        foreach ($this->getExtensions() as $extension) {
-            $extension->initRuntime($this);
-        }
-    }
-
-    /**
-     * Returns true if the given extension is registered.
-     *
-     * @param string $name The extension name
-     *
-     * @return bool Whether the extension is registered or not
-     */
-    public function hasExtension($name)
-    {
-        return isset($this->extensions[$name]);
-    }
-
-    /**
-     * Gets an extension by name.
-     *
-     * @param string $name The extension name
-     *
-     * @return Twig_ExtensionInterface A Twig_ExtensionInterface instance
-     */
-    public function getExtension($name)
-    {
-        if (!isset($this->extensions[$name])) {
-            throw new Twig_Error_Runtime(sprintf('The "%s" extension is not enabled.', $name));
-        }
-
-        return $this->extensions[$name];
-    }
-
-    /**
-     * Registers an extension.
-     *
-     * @param Twig_ExtensionInterface $extension A Twig_ExtensionInterface instance
-     */
-    public function addExtension(Twig_ExtensionInterface $extension)
-    {
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to register extension "%s" as extensions have already been initialized.', $extension->getName()));
-        }
-
-        $this->extensions[$extension->getName()] = $extension;
-    }
-
-    /**
-     * Removes an extension by name.
-     *
-     * This method is deprecated and you should not use it.
-     *
-     * @param string $name The extension name
-     *
-     * @deprecated since 1.12 (to be removed in 2.0)
-     */
-    public function removeExtension($name)
-    {
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to remove extension "%s" as extensions have already been initialized.', $name));
-        }
-
-        unset($this->extensions[$name]);
-    }
-
-    /**
-     * Registers an array of extensions.
-     *
-     * @param array $extensions An array of extensions
-     */
-    public function setExtensions(array $extensions)
-    {
-        foreach ($extensions as $extension) {
-            $this->addExtension($extension);
-        }
-    }
-
-    /**
-     * Returns all registered extensions.
-     *
-     * @return array An array of extensions
-     */
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    /**
-     * Registers a Token Parser.
-     *
-     * @param Twig_TokenParserInterface $parser A Twig_TokenParserInterface instance
-     */
-    public function addTokenParser(Twig_TokenParserInterface $parser)
-    {
-        if ($this->extensionInitialized) {
-            throw new LogicException('Unable to add a token parser as extensions have already been initialized.');
-        }
-
-        $this->staging->addTokenParser($parser);
-    }
-
-    /**
-     * Gets the registered Token Parsers.
-     *
-     * @return Twig_TokenParserBrokerInterface A broker containing token parsers
-     */
-    public function getTokenParsers()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->parsers;
-    }
-
-    /**
-     * Gets registered tags.
-     *
-     * Be warned that this method cannot return tags defined by Twig_TokenParserBrokerInterface classes.
-     *
-     * @return Twig_TokenParserInterface[] An array of Twig_TokenParserInterface instances
-     */
-    public function getTags()
-    {
-        $tags = array();
-        foreach ($this->getTokenParsers()->getParsers() as $parser) {
-            if ($parser instanceof Twig_TokenParserInterface) {
-                $tags[$parser->getTag()] = $parser;
-            }
-        }
-
-        return $tags;
-    }
-
-    /**
-     * Registers a Node Visitor.
-     *
-     * @param Twig_NodeVisitorInterface $visitor A Twig_NodeVisitorInterface instance
-     */
-    public function addNodeVisitor(Twig_NodeVisitorInterface $visitor)
-    {
-        if ($this->extensionInitialized) {
-            throw new LogicException('Unable to add a node visitor as extensions have already been initialized.');
-        }
-
-        $this->staging->addNodeVisitor($visitor);
-    }
-
-    /**
-     * Gets the registered Node Visitors.
-     *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
-     */
-    public function getNodeVisitors()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->visitors;
-    }
-
-    /**
-     * Registers a Filter.
-     *
-     * @param string|Twig_SimpleFilter               $name   The filter name or a Twig_SimpleFilter instance
-     * @param Twig_FilterInterface|Twig_SimpleFilter $filter A Twig_FilterInterface instance or a Twig_SimpleFilter instance
-     */
-    public function addFilter($name, $filter = null)
-    {
-        if (!$name instanceof Twig_SimpleFilter && !($filter instanceof Twig_SimpleFilter || $filter instanceof Twig_FilterInterface)) {
-            throw new LogicException('A filter must be an instance of Twig_FilterInterface or Twig_SimpleFilter');
-        }
-
-        if ($name instanceof Twig_SimpleFilter) {
-            $filter = $name;
-            $name = $filter->getName();
-        }
-
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to add filter "%s" as extensions have already been initialized.', $name));
-        }
-
-        $this->staging->addFilter($name, $filter);
-    }
-
-    /**
-     * Get a filter by name.
-     *
-     * Subclasses may override this method and load filters differently;
-     * so no list of filters is available.
-     *
-     * @param string $name The filter name
-     *
-     * @return Twig_Filter|false A Twig_Filter instance or false if the filter does not exist
-     */
-    public function getFilter($name)
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        if (isset($this->filters[$name])) {
-            return $this->filters[$name];
-        }
-
-        foreach ($this->filters as $pattern => $filter) {
-            $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count);
-
-            if ($count) {
-                if (preg_match('#^'.$pattern.'$#', $name, $matches)) {
-                    array_shift($matches);
-                    $filter->setArguments($matches);
-
-                    return $filter;
-                }
-            }
-        }
-
-        foreach ($this->filterCallbacks as $callback) {
-            if (false !== $filter = call_user_func($callback, $name)) {
-                return $filter;
-            }
-        }
-
-        return false;
-    }
-
-    public function registerUndefinedFilterCallback($callable)
-    {
-        $this->filterCallbacks[] = $callable;
-    }
-
-    /**
-     * Gets the registered Filters.
-     *
-     * Be warned that this method cannot return filters defined with registerUndefinedFunctionCallback.
-     *
-     * @return Twig_FilterInterface[] An array of Twig_FilterInterface instances
-     *
-     * @see registerUndefinedFilterCallback
-     */
-    public function getFilters()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->filters;
-    }
-
-    /**
-     * Registers a Test.
-     *
-     * @param string|Twig_SimpleTest             $name The test name or a Twig_SimpleTest instance
-     * @param Twig_TestInterface|Twig_SimpleTest $test A Twig_TestInterface instance or a Twig_SimpleTest instance
-     */
-    public function addTest($name, $test = null)
-    {
-        if (!$name instanceof Twig_SimpleTest && !($test instanceof Twig_SimpleTest || $test instanceof Twig_TestInterface)) {
-            throw new LogicException('A test must be an instance of Twig_TestInterface or Twig_SimpleTest');
-        }
-
-        if ($name instanceof Twig_SimpleTest) {
-            $test = $name;
-            $name = $test->getName();
-        }
-
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to add test "%s" as extensions have already been initialized.', $name));
-        }
-
-        $this->staging->addTest($name, $test);
-    }
-
-    /**
-     * Gets the registered Tests.
-     *
-     * @return Twig_TestInterface[] An array of Twig_TestInterface instances
-     */
-    public function getTests()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->tests;
-    }
-
-    /**
-     * Gets a test by name.
-     *
-     * @param string $name The test name
-     *
-     * @return Twig_Test|false A Twig_Test instance or false if the test does not exist
-     */
-    public function getTest($name)
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        if (isset($this->tests[$name])) {
-            return $this->tests[$name];
-        }
-
-        return false;
-    }
-
-    /**
-     * Registers a Function.
-     *
-     * @param string|Twig_SimpleFunction                 $name     The function name or a Twig_SimpleFunction instance
-     * @param Twig_FunctionInterface|Twig_SimpleFunction $function A Twig_FunctionInterface instance or a Twig_SimpleFunction instance
-     */
-    public function addFunction($name, $function = null)
-    {
-        if (!$name instanceof Twig_SimpleFunction && !($function instanceof Twig_SimpleFunction || $function instanceof Twig_FunctionInterface)) {
-            throw new LogicException('A function must be an instance of Twig_FunctionInterface or Twig_SimpleFunction');
-        }
-
-        if ($name instanceof Twig_SimpleFunction) {
-            $function = $name;
-            $name = $function->getName();
-        }
-
-        if ($this->extensionInitialized) {
-            throw new LogicException(sprintf('Unable to add function "%s" as extensions have already been initialized.', $name));
-        }
-
-        $this->staging->addFunction($name, $function);
-    }
-
-    /**
-     * Get a function by name.
-     *
-     * Subclasses may override this method and load functions differently;
-     * so no list of functions is available.
-     *
-     * @param string $name function name
-     *
-     * @return Twig_Function|false A Twig_Function instance or false if the function does not exist
-     */
-    public function getFunction($name)
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        if (isset($this->functions[$name])) {
-            return $this->functions[$name];
-        }
-
-        foreach ($this->functions as $pattern => $function) {
-            $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count);
-
-            if ($count) {
-                if (preg_match('#^'.$pattern.'$#', $name, $matches)) {
-                    array_shift($matches);
-                    $function->setArguments($matches);
-
-                    return $function;
-                }
-            }
-        }
-
-        foreach ($this->functionCallbacks as $callback) {
-            if (false !== $function = call_user_func($callback, $name)) {
-                return $function;
-            }
-        }
-
-        return false;
-    }
-
-    public function registerUndefinedFunctionCallback($callable)
-    {
-        $this->functionCallbacks[] = $callable;
-    }
-
-    /**
-     * Gets registered functions.
-     *
-     * Be warned that this method cannot return functions defined with registerUndefinedFunctionCallback.
-     *
-     * @return Twig_FunctionInterface[] An array of Twig_FunctionInterface instances
-     *
-     * @see registerUndefinedFunctionCallback
-     */
-    public function getFunctions()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->functions;
-    }
-
-    /**
-     * Registers a Global.
-     *
-     * New globals can be added before compiling or rendering a template;
-     * but after, you can only update existing globals.
-     *
-     * @param string $name  The global name
-     * @param mixed  $value The global value
-     */
-    public function addGlobal($name, $value)
-    {
-        if ($this->extensionInitialized || $this->runtimeInitialized) {
-            if (null === $this->globals) {
-                $this->globals = $this->initGlobals();
-            }
-
-            /* This condition must be uncommented in Twig 2.0
-            if (!array_key_exists($name, $this->globals)) {
-                throw new LogicException(sprintf('Unable to add global "%s" as the runtime or the extensions have already been initialized.', $name));
-            }
-            */
-        }
-
-        if ($this->extensionInitialized || $this->runtimeInitialized) {
-            // update the value
-            $this->globals[$name] = $value;
-        } else {
-            $this->staging->addGlobal($name, $value);
-        }
-    }
-
-    /**
-     * Gets the registered Globals.
-     *
-     * @return array An array of globals
-     */
-    public function getGlobals()
-    {
-        if (!$this->runtimeInitialized && !$this->extensionInitialized) {
-            return $this->initGlobals();
-        }
-
-        if (null === $this->globals) {
-            $this->globals = $this->initGlobals();
-        }
-
-        return $this->globals;
-    }
-
-    /**
-     * Merges a context with the defined globals.
-     *
-     * @param array $context An array representing the context
-     *
-     * @return array The context merged with the globals
-     */
-    public function mergeGlobals(array $context)
-    {
-        // we don't use array_merge as the context being generally
-        // bigger than globals, this code is faster.
-        foreach ($this->getGlobals() as $key => $value) {
-            if (!array_key_exists($key, $context)) {
-                $context[$key] = $value;
-            }
-        }
-
-        return $context;
-    }
-
-    /**
-     * Gets the registered unary Operators.
-     *
-     * @return array An array of unary operators
-     */
-    public function getUnaryOperators()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->unaryOperators;
-    }
-
-    /**
-     * Gets the registered binary Operators.
-     *
-     * @return array An array of binary operators
-     */
-    public function getBinaryOperators()
-    {
-        if (!$this->extensionInitialized) {
-            $this->initExtensions();
-        }
-
-        return $this->binaryOperators;
-    }
-
-    public function computeAlternatives($name, $items)
-    {
-        $alternatives = array();
-        foreach ($items as $item) {
-            $lev = levenshtein($name, $item);
-            if ($lev <= strlen($name) / 3 || false !== strpos($item, $name)) {
-                $alternatives[$item] = $lev;
-            }
-        }
-        asort($alternatives);
-
-        return array_keys($alternatives);
-    }
-
-    protected function initGlobals()
-    {
-        $globals = array();
-        foreach ($this->extensions as $extension) {
-            $extGlob = $extension->getGlobals();
-            if (!is_array($extGlob)) {
-                throw new UnexpectedValueException(sprintf('"%s::getGlobals()" must return an array of globals.', get_class($extension)));
-            }
-
-            $globals[] = $extGlob;
-        }
-
-        $globals[] = $this->staging->getGlobals();
-
-        return call_user_func_array('array_merge', $globals);
-    }
-
-    protected function initExtensions()
-    {
-        if ($this->extensionInitialized) {
-            return;
-        }
-
-        $this->extensionInitialized = true;
-        $this->parsers = new Twig_TokenParserBroker();
-        $this->filters = array();
-        $this->functions = array();
-        $this->tests = array();
-        $this->visitors = array();
-        $this->unaryOperators = array();
-        $this->binaryOperators = array();
-
-        foreach ($this->extensions as $extension) {
-            $this->initExtension($extension);
-        }
-        $this->initExtension($this->staging);
-    }
-
-    protected function initExtension(Twig_ExtensionInterface $extension)
-    {
-        // filters
-        foreach ($extension->getFilters() as $name => $filter) {
-            if ($name instanceof Twig_SimpleFilter) {
-                $filter = $name;
-                $name = $filter->getName();
-            } elseif ($filter instanceof Twig_SimpleFilter) {
-                $name = $filter->getName();
-            }
-
-            $this->filters[$name] = $filter;
-        }
-
-        // functions
-        foreach ($extension->getFunctions() as $name => $function) {
-            if ($name instanceof Twig_SimpleFunction) {
-                $function = $name;
-                $name = $function->getName();
-            } elseif ($function instanceof Twig_SimpleFunction) {
-                $name = $function->getName();
-            }
-
-            $this->functions[$name] = $function;
-        }
-
-        // tests
-        foreach ($extension->getTests() as $name => $test) {
-            if ($name instanceof Twig_SimpleTest) {
-                $test = $name;
-                $name = $test->getName();
-            } elseif ($test instanceof Twig_SimpleTest) {
-                $name = $test->getName();
-            }
-
-            $this->tests[$name] = $test;
-        }
-
-        // token parsers
-        foreach ($extension->getTokenParsers() as $parser) {
-            if ($parser instanceof Twig_TokenParserInterface) {
-                $this->parsers->addTokenParser($parser);
-            } elseif ($parser instanceof Twig_TokenParserBrokerInterface) {
-                $this->parsers->addTokenParserBroker($parser);
-            } else {
-                throw new LogicException('getTokenParsers() must return an array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances');
-            }
-        }
-
-        // node visitors
-        foreach ($extension->getNodeVisitors() as $visitor) {
-            $this->visitors[] = $visitor;
-        }
-
-        // operators
-        if ($operators = $extension->getOperators()) {
-            if (2 !== count($operators)) {
-                throw new InvalidArgumentException(sprintf('"%s::getOperators()" does not return a valid operators array.', get_class($extension)));
-            }
-
-            $this->unaryOperators = array_merge($this->unaryOperators, $operators[0]);
-            $this->binaryOperators = array_merge($this->binaryOperators, $operators[1]);
-        }
-    }
-
-    protected function writeCacheFile($file, $content)
-    {
-        $dir = dirname($file);
-        if (!is_dir($dir)) {
-            if (false === @mkdir($dir, 0777, true)) {
-                clearstatcache(false, $dir);
-                if (!is_dir($dir)) {
-                    throw new RuntimeException(sprintf('Unable to create the cache directory (%s).', $dir));
-                }
-            }
-        } elseif (!is_writable($dir)) {
-            throw new RuntimeException(sprintf('Unable to write in the cache directory (%s).', $dir));
-        }
-
-        $tmpFile = tempnam($dir, basename($file));
-        if (false !== @file_put_contents($tmpFile, $content)) {
-            // rename does not work on Win32 before 5.2.6
-            if (@rename($tmpFile, $file) || (@copy($tmpFile, $file) && unlink($tmpFile))) {
-                @chmod($file, 0666 & ~umask());
-
-                return;
-            }
-        }
-
-        throw new RuntimeException(sprintf('Failed to write cache file "%s".', $file));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Error.php b/core/vendor/twig/twig/lib/Twig/Error.php
deleted file mode 100644
index 90650c5..0000000
--- a/core/vendor/twig/twig/lib/Twig/Error.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig base exception.
- *
- * This exception class and its children must only be used when
- * an error occurs during the loading of a template, when a syntax error
- * is detected in a template, or when rendering a template. Other
- * errors must use regular PHP exception classes (like when the template
- * cache directory is not writable for instance).
- *
- * To help debugging template issues, this class tracks the original template
- * name and line where the error occurred.
- *
- * Whenever possible, you must set these information (original template name
- * and line number) yourself by passing them to the constructor. If some or all
- * these information are not available from where you throw the exception, then
- * this class will guess them automatically (when the line number is set to -1
- * and/or the filename is set to null). As this is a costly operation, this
- * can be disabled by passing false for both the filename and the line number
- * when creating a new instance of this class.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Error extends Exception
-{
-    protected $lineno;
-    protected $filename;
-    protected $rawMessage;
-    protected $previous;
-
-    /**
-     * Constructor.
-     *
-     * Set both the line number and the filename to false to
-     * disable automatic guessing of the original template name
-     * and line number.
-     *
-     * Set the line number to -1 to enable its automatic guessing.
-     * Set the filename to null to enable its automatic guessing.
-     *
-     * By default, automatic guessing is enabled.
-     *
-     * @param string    $message  The error message
-     * @param int       $lineno   The template line where the error occurred
-     * @param string    $filename The template file name where the error occurred
-     * @param Exception $previous The previous exception
-     */
-    public function __construct($message, $lineno = -1, $filename = null, Exception $previous = null)
-    {
-        if (PHP_VERSION_ID < 50300) {
-            $this->previous = $previous;
-            parent::__construct('');
-        } else {
-            parent::__construct('', 0, $previous);
-        }
-
-        $this->lineno = $lineno;
-        $this->filename = $filename;
-
-        if (-1 === $this->lineno || null === $this->filename) {
-            $this->guessTemplateInfo();
-        }
-
-        $this->rawMessage = $message;
-
-        $this->updateRepr();
-    }
-
-    /**
-     * Gets the raw message.
-     *
-     * @return string The raw message
-     */
-    public function getRawMessage()
-    {
-        return $this->rawMessage;
-    }
-
-    /**
-     * Gets the filename where the error occurred.
-     *
-     * @return string The filename
-     */
-    public function getTemplateFile()
-    {
-        return $this->filename;
-    }
-
-    /**
-     * Sets the filename where the error occurred.
-     *
-     * @param string $filename The filename
-     */
-    public function setTemplateFile($filename)
-    {
-        $this->filename = $filename;
-
-        $this->updateRepr();
-    }
-
-    /**
-     * Gets the template line where the error occurred.
-     *
-     * @return int The template line
-     */
-    public function getTemplateLine()
-    {
-        return $this->lineno;
-    }
-
-    /**
-     * Sets the template line where the error occurred.
-     *
-     * @param int $lineno The template line
-     */
-    public function setTemplateLine($lineno)
-    {
-        $this->lineno = $lineno;
-
-        $this->updateRepr();
-    }
-
-    public function guess()
-    {
-        $this->guessTemplateInfo();
-        $this->updateRepr();
-    }
-
-    /**
-     * For PHP < 5.3.0, provides access to the getPrevious() method.
-     *
-     * @param string $method    The method name
-     * @param array  $arguments The parameters to be passed to the method
-     *
-     * @return Exception The previous exception or null
-     *
-     * @throws BadMethodCallException
-     */
-    public function __call($method, $arguments)
-    {
-        if ('getprevious' == strtolower($method)) {
-            return $this->previous;
-        }
-
-        throw new BadMethodCallException(sprintf('Method "Twig_Error::%s()" does not exist.', $method));
-    }
-
-    protected function updateRepr()
-    {
-        $this->message = $this->rawMessage;
-
-        $dot = false;
-        if ('.' === substr($this->message, -1)) {
-            $this->message = substr($this->message, 0, -1);
-            $dot = true;
-        }
-
-        if ($this->filename) {
-            if (is_string($this->filename) || (is_object($this->filename) && method_exists($this->filename, '__toString'))) {
-                $filename = sprintf('"%s"', $this->filename);
-            } else {
-                $filename = json_encode($this->filename);
-            }
-            $this->message .= sprintf(' in %s', $filename);
-        }
-
-        if ($this->lineno && $this->lineno >= 0) {
-            $this->message .= sprintf(' at line %d', $this->lineno);
-        }
-
-        if ($dot) {
-            $this->message .= '.';
-        }
-    }
-
-    protected function guessTemplateInfo()
-    {
-        $template = null;
-        $templateClass = null;
-
-        if (PHP_VERSION_ID >= 50306) {
-            $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT);
-        } else {
-            $backtrace = debug_backtrace();
-        }
-
-        foreach ($backtrace as $trace) {
-            if (isset($trace['object']) && $trace['object'] instanceof Twig_Template && 'Twig_Template' !== get_class($trace['object'])) {
-                $currentClass = get_class($trace['object']);
-                $isEmbedContainer = 0 === strpos($templateClass, $currentClass);
-                if (null === $this->filename || ($this->filename == $trace['object']->getTemplateName() && !$isEmbedContainer)) {
-                    $template = $trace['object'];
-                    $templateClass = get_class($trace['object']);
-                }
-            }
-        }
-
-        // update template filename
-        if (null !== $template && null === $this->filename) {
-            $this->filename = $template->getTemplateName();
-        }
-
-        if (null === $template || $this->lineno > -1) {
-            return;
-        }
-
-        $r = new ReflectionObject($template);
-        $file = $r->getFileName();
-
-        // hhvm has a bug where eval'ed files comes out as the current directory
-        if (is_dir($file)) {
-            $file = '';
-        }
-
-        $exceptions = array($e = $this);
-        while (($e instanceof self || method_exists($e, 'getPrevious')) && $e = $e->getPrevious()) {
-            $exceptions[] = $e;
-        }
-
-        while ($e = array_pop($exceptions)) {
-            $traces = $e->getTrace();
-            array_unshift($traces, array('file' => $e->getFile(), 'line' => $e->getLine()));
-
-            while ($trace = array_shift($traces)) {
-                if (!isset($trace['file']) || !isset($trace['line']) || $file != $trace['file']) {
-                    continue;
-                }
-
-                foreach ($template->getDebugInfo() as $codeLine => $templateLine) {
-                    if ($codeLine <= $trace['line']) {
-                        // update template line
-                        $this->lineno = $templateLine;
-
-                        return;
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Error/Loader.php b/core/vendor/twig/twig/lib/Twig/Error/Loader.php
deleted file mode 100644
index 68efb57..0000000
--- a/core/vendor/twig/twig/lib/Twig/Error/Loader.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when an error occurs during template loading.
- *
- * Automatic template information guessing is always turned off as
- * if a template cannot be loaded, there is nothing to guess.
- * However, when a template is loaded from another one, then, we need
- * to find the current context and this is automatically done by
- * Twig_Template::displayWithErrorHandling().
- *
- * This strategy makes Twig_Environment::resolveTemplate() much faster.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Error_Loader extends Twig_Error
-{
-    public function __construct($message, $lineno = -1, $filename = null, Exception $previous = null)
-    {
-        parent::__construct($message, false, false, $previous);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Error/Runtime.php b/core/vendor/twig/twig/lib/Twig/Error/Runtime.php
deleted file mode 100644
index 8b6cedd..0000000
--- a/core/vendor/twig/twig/lib/Twig/Error/Runtime.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when an error occurs at runtime.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Error_Runtime extends Twig_Error
-{
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Error/Syntax.php b/core/vendor/twig/twig/lib/Twig/Error/Syntax.php
deleted file mode 100644
index 0f5c579..0000000
--- a/core/vendor/twig/twig/lib/Twig/Error/Syntax.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when a syntax error occurs during lexing or parsing of a template.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Error_Syntax extends Twig_Error
-{
-}
diff --git a/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php b/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
deleted file mode 100644
index b168c3c..0000000
--- a/core/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Adds an exists() method for loaders.
- *
- * @author Florin Patan <florinpatan@gmail.com>
- *
- * @deprecated since 1.12 (to be removed in 3.0)
- */
-interface Twig_ExistsLoaderInterface
-{
-    /**
-     * Check if we have the source code of a template, given its name.
-     *
-     * @param string $name The name of the template to check if we can load
-     *
-     * @return bool If the template source code is handled by this loader or not
-     */
-    public function exists($name);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/ExpressionParser.php b/core/vendor/twig/twig/lib/Twig/ExpressionParser.php
deleted file mode 100644
index 135958a..0000000
--- a/core/vendor/twig/twig/lib/Twig/ExpressionParser.php
+++ /dev/null
@@ -1,625 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Parses expressions.
- *
- * This parser implements a "Precedence climbing" algorithm.
- *
- * @see http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm
- * @see http://en.wikipedia.org/wiki/Operator-precedence_parser
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_ExpressionParser
-{
-    const OPERATOR_LEFT = 1;
-    const OPERATOR_RIGHT = 2;
-
-    protected $parser;
-    protected $unaryOperators;
-    protected $binaryOperators;
-
-    public function __construct(Twig_Parser $parser, array $unaryOperators, array $binaryOperators)
-    {
-        $this->parser = $parser;
-        $this->unaryOperators = $unaryOperators;
-        $this->binaryOperators = $binaryOperators;
-    }
-
-    public function parseExpression($precedence = 0)
-    {
-        $expr = $this->getPrimary();
-        $token = $this->parser->getCurrentToken();
-        while ($this->isBinary($token) && $this->binaryOperators[$token->getValue()]['precedence'] >= $precedence) {
-            $op = $this->binaryOperators[$token->getValue()];
-            $this->parser->getStream()->next();
-
-            if (isset($op['callable'])) {
-                $expr = call_user_func($op['callable'], $this->parser, $expr);
-            } else {
-                $expr1 = $this->parseExpression(self::OPERATOR_LEFT === $op['associativity'] ? $op['precedence'] + 1 : $op['precedence']);
-                $class = $op['class'];
-                $expr = new $class($expr, $expr1, $token->getLine());
-            }
-
-            $token = $this->parser->getCurrentToken();
-        }
-
-        if (0 === $precedence) {
-            return $this->parseConditionalExpression($expr);
-        }
-
-        return $expr;
-    }
-
-    protected function getPrimary()
-    {
-        $token = $this->parser->getCurrentToken();
-
-        if ($this->isUnary($token)) {
-            $operator = $this->unaryOperators[$token->getValue()];
-            $this->parser->getStream()->next();
-            $expr = $this->parseExpression($operator['precedence']);
-            $class = $operator['class'];
-
-            return $this->parsePostfixExpression(new $class($expr, $token->getLine()));
-        } elseif ($token->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
-            $this->parser->getStream()->next();
-            $expr = $this->parseExpression();
-            $this->parser->getStream()->expect(Twig_Token::PUNCTUATION_TYPE, ')', 'An opened parenthesis is not properly closed');
-
-            return $this->parsePostfixExpression($expr);
-        }
-
-        return $this->parsePrimaryExpression();
-    }
-
-    protected function parseConditionalExpression($expr)
-    {
-        while ($this->parser->getStream()->nextIf(Twig_Token::PUNCTUATION_TYPE, '?')) {
-            if (!$this->parser->getStream()->nextIf(Twig_Token::PUNCTUATION_TYPE, ':')) {
-                $expr2 = $this->parseExpression();
-                if ($this->parser->getStream()->nextIf(Twig_Token::PUNCTUATION_TYPE, ':')) {
-                    $expr3 = $this->parseExpression();
-                } else {
-                    $expr3 = new Twig_Node_Expression_Constant('', $this->parser->getCurrentToken()->getLine());
-                }
-            } else {
-                $expr2 = $expr;
-                $expr3 = $this->parseExpression();
-            }
-
-            $expr = new Twig_Node_Expression_Conditional($expr, $expr2, $expr3, $this->parser->getCurrentToken()->getLine());
-        }
-
-        return $expr;
-    }
-
-    protected function isUnary(Twig_Token $token)
-    {
-        return $token->test(Twig_Token::OPERATOR_TYPE) && isset($this->unaryOperators[$token->getValue()]);
-    }
-
-    protected function isBinary(Twig_Token $token)
-    {
-        return $token->test(Twig_Token::OPERATOR_TYPE) && isset($this->binaryOperators[$token->getValue()]);
-    }
-
-    public function parsePrimaryExpression()
-    {
-        $token = $this->parser->getCurrentToken();
-        switch ($token->getType()) {
-            case Twig_Token::NAME_TYPE:
-                $this->parser->getStream()->next();
-                switch ($token->getValue()) {
-                    case 'true':
-                    case 'TRUE':
-                        $node = new Twig_Node_Expression_Constant(true, $token->getLine());
-                        break;
-
-                    case 'false':
-                    case 'FALSE':
-                        $node = new Twig_Node_Expression_Constant(false, $token->getLine());
-                        break;
-
-                    case 'none':
-                    case 'NONE':
-                    case 'null':
-                    case 'NULL':
-                        $node = new Twig_Node_Expression_Constant(null, $token->getLine());
-                        break;
-
-                    default:
-                        if ('(' === $this->parser->getCurrentToken()->getValue()) {
-                            $node = $this->getFunctionNode($token->getValue(), $token->getLine());
-                        } else {
-                            $node = new Twig_Node_Expression_Name($token->getValue(), $token->getLine());
-                        }
-                }
-                break;
-
-            case Twig_Token::NUMBER_TYPE:
-                $this->parser->getStream()->next();
-                $node = new Twig_Node_Expression_Constant($token->getValue(), $token->getLine());
-                break;
-
-            case Twig_Token::STRING_TYPE:
-            case Twig_Token::INTERPOLATION_START_TYPE:
-                $node = $this->parseStringExpression();
-                break;
-
-            case Twig_Token::OPERATOR_TYPE:
-                if (preg_match(Twig_Lexer::REGEX_NAME, $token->getValue(), $matches) && $matches[0] == $token->getValue()) {
-                    // in this context, string operators are variable names
-                    $this->parser->getStream()->next();
-                    $node = new Twig_Node_Expression_Name($token->getValue(), $token->getLine());
-                    break;
-                } elseif (isset($this->unaryOperators[$token->getValue()])) {
-                    $class = $this->unaryOperators[$token->getValue()]['class'];
-
-                    $ref = new ReflectionClass($class);
-                    $negClass = 'Twig_Node_Expression_Unary_Neg';
-                    $posClass = 'Twig_Node_Expression_Unary_Pos';
-                    if (!(in_array($ref->getName(), array($negClass, $posClass)) || $ref->isSubclassOf($negClass) || $ref->isSubclassOf($posClass))) {
-                        throw new Twig_Error_Syntax(sprintf('Unexpected unary operator "%s"', $token->getValue()), $token->getLine(), $this->parser->getFilename());
-                    }
-
-                    $this->parser->getStream()->next();
-                    $expr = $this->parsePrimaryExpression();
-
-                    $node = new $class($expr, $token->getLine());
-                    break;
-                }
-
-            default:
-                if ($token->test(Twig_Token::PUNCTUATION_TYPE, '[')) {
-                    $node = $this->parseArrayExpression();
-                } elseif ($token->test(Twig_Token::PUNCTUATION_TYPE, '{')) {
-                    $node = $this->parseHashExpression();
-                } else {
-                    throw new Twig_Error_Syntax(sprintf('Unexpected token "%s" of value "%s"', Twig_Token::typeToEnglish($token->getType()), $token->getValue()), $token->getLine(), $this->parser->getFilename());
-                }
-        }
-
-        return $this->parsePostfixExpression($node);
-    }
-
-    public function parseStringExpression()
-    {
-        $stream = $this->parser->getStream();
-
-        $nodes = array();
-        // a string cannot be followed by another string in a single expression
-        $nextCanBeString = true;
-        while (true) {
-            if ($nextCanBeString && $token = $stream->nextIf(Twig_Token::STRING_TYPE)) {
-                $nodes[] = new Twig_Node_Expression_Constant($token->getValue(), $token->getLine());
-                $nextCanBeString = false;
-            } elseif ($stream->nextIf(Twig_Token::INTERPOLATION_START_TYPE)) {
-                $nodes[] = $this->parseExpression();
-                $stream->expect(Twig_Token::INTERPOLATION_END_TYPE);
-                $nextCanBeString = true;
-            } else {
-                break;
-            }
-        }
-
-        $expr = array_shift($nodes);
-        foreach ($nodes as $node) {
-            $expr = new Twig_Node_Expression_Binary_Concat($expr, $node, $node->getLine());
-        }
-
-        return $expr;
-    }
-
-    public function parseArrayExpression()
-    {
-        $stream = $this->parser->getStream();
-        $stream->expect(Twig_Token::PUNCTUATION_TYPE, '[', 'An array element was expected');
-
-        $node = new Twig_Node_Expression_Array(array(), $stream->getCurrent()->getLine());
-        $first = true;
-        while (!$stream->test(Twig_Token::PUNCTUATION_TYPE, ']')) {
-            if (!$first) {
-                $stream->expect(Twig_Token::PUNCTUATION_TYPE, ',', 'An array element must be followed by a comma');
-
-                // trailing ,?
-                if ($stream->test(Twig_Token::PUNCTUATION_TYPE, ']')) {
-                    break;
-                }
-            }
-            $first = false;
-
-            $node->addElement($this->parseExpression());
-        }
-        $stream->expect(Twig_Token::PUNCTUATION_TYPE, ']', 'An opened array is not properly closed');
-
-        return $node;
-    }
-
-    public function parseHashExpression()
-    {
-        $stream = $this->parser->getStream();
-        $stream->expect(Twig_Token::PUNCTUATION_TYPE, '{', 'A hash element was expected');
-
-        $node = new Twig_Node_Expression_Array(array(), $stream->getCurrent()->getLine());
-        $first = true;
-        while (!$stream->test(Twig_Token::PUNCTUATION_TYPE, '}')) {
-            if (!$first) {
-                $stream->expect(Twig_Token::PUNCTUATION_TYPE, ',', 'A hash value must be followed by a comma');
-
-                // trailing ,?
-                if ($stream->test(Twig_Token::PUNCTUATION_TYPE, '}')) {
-                    break;
-                }
-            }
-            $first = false;
-
-            // a hash key can be:
-            //
-            //  * a number -- 12
-            //  * a string -- 'a'
-            //  * a name, which is equivalent to a string -- a
-            //  * an expression, which must be enclosed in parentheses -- (1 + 2)
-            if (($token = $stream->nextIf(Twig_Token::STRING_TYPE)) || ($token = $stream->nextIf(Twig_Token::NAME_TYPE)) || $token = $stream->nextIf(Twig_Token::NUMBER_TYPE)) {
-                $key = new Twig_Node_Expression_Constant($token->getValue(), $token->getLine());
-            } elseif ($stream->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
-                $key = $this->parseExpression();
-            } else {
-                $current = $stream->getCurrent();
-
-                throw new Twig_Error_Syntax(sprintf('A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "%s" of value "%s"', Twig_Token::typeToEnglish($current->getType()), $current->getValue()), $current->getLine(), $this->parser->getFilename());
-            }
-
-            $stream->expect(Twig_Token::PUNCTUATION_TYPE, ':', 'A hash key must be followed by a colon (:)');
-            $value = $this->parseExpression();
-
-            $node->addElement($value, $key);
-        }
-        $stream->expect(Twig_Token::PUNCTUATION_TYPE, '}', 'An opened hash is not properly closed');
-
-        return $node;
-    }
-
-    public function parsePostfixExpression($node)
-    {
-        while (true) {
-            $token = $this->parser->getCurrentToken();
-            if ($token->getType() == Twig_Token::PUNCTUATION_TYPE) {
-                if ('.' == $token->getValue() || '[' == $token->getValue()) {
-                    $node = $this->parseSubscriptExpression($node);
-                } elseif ('|' == $token->getValue()) {
-                    $node = $this->parseFilterExpression($node);
-                } else {
-                    break;
-                }
-            } else {
-                break;
-            }
-        }
-
-        return $node;
-    }
-
-    public function getFunctionNode($name, $line)
-    {
-        switch ($name) {
-            case 'parent':
-                $this->parseArguments();
-                if (!count($this->parser->getBlockStack())) {
-                    throw new Twig_Error_Syntax('Calling "parent" outside a block is forbidden', $line, $this->parser->getFilename());
-                }
-
-                if (!$this->parser->getParent() && !$this->parser->hasTraits()) {
-                    throw new Twig_Error_Syntax('Calling "parent" on a template that does not extend nor "use" another template is forbidden', $line, $this->parser->getFilename());
-                }
-
-                return new Twig_Node_Expression_Parent($this->parser->peekBlockStack(), $line);
-            case 'block':
-                return new Twig_Node_Expression_BlockReference($this->parseArguments()->getNode(0), false, $line);
-            case 'attribute':
-                $args = $this->parseArguments();
-                if (count($args) < 2) {
-                    throw new Twig_Error_Syntax('The "attribute" function takes at least two arguments (the variable and the attributes)', $line, $this->parser->getFilename());
-                }
-
-                return new Twig_Node_Expression_GetAttr($args->getNode(0), $args->getNode(1), count($args) > 2 ? $args->getNode(2) : null, Twig_Template::ANY_CALL, $line);
-            default:
-                if (null !== $alias = $this->parser->getImportedSymbol('function', $name)) {
-                    $arguments = new Twig_Node_Expression_Array(array(), $line);
-                    foreach ($this->parseArguments() as $n) {
-                        $arguments->addElement($n);
-                    }
-
-                    $node = new Twig_Node_Expression_MethodCall($alias['node'], $alias['name'], $arguments, $line);
-                    $node->setAttribute('safe', true);
-
-                    return $node;
-                }
-
-                $args = $this->parseArguments(true);
-                $class = $this->getFunctionNodeClass($name, $line);
-
-                return new $class($name, $args, $line);
-        }
-    }
-
-    public function parseSubscriptExpression($node)
-    {
-        $stream = $this->parser->getStream();
-        $token = $stream->next();
-        $lineno = $token->getLine();
-        $arguments = new Twig_Node_Expression_Array(array(), $lineno);
-        $type = Twig_Template::ANY_CALL;
-        if ($token->getValue() == '.') {
-            $token = $stream->next();
-            if (
-                $token->getType() == Twig_Token::NAME_TYPE
-                ||
-                $token->getType() == Twig_Token::NUMBER_TYPE
-                ||
-                ($token->getType() == Twig_Token::OPERATOR_TYPE && preg_match(Twig_Lexer::REGEX_NAME, $token->getValue()))
-            ) {
-                $arg = new Twig_Node_Expression_Constant($token->getValue(), $lineno);
-
-                if ($stream->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
-                    $type = Twig_TemplateInterface::METHOD_CALL;
-                    foreach ($this->parseArguments() as $n) {
-                        $arguments->addElement($n);
-                    }
-                }
-            } else {
-                throw new Twig_Error_Syntax('Expected name or number', $lineno, $this->parser->getFilename());
-            }
-
-            if ($node instanceof Twig_Node_Expression_Name && null !== $this->parser->getImportedSymbol('template', $node->getAttribute('name'))) {
-                if (!$arg instanceof Twig_Node_Expression_Constant) {
-                    throw new Twig_Error_Syntax(sprintf('Dynamic macro names are not supported (called on "%s")', $node->getAttribute('name')), $token->getLine(), $this->parser->getFilename());
-                }
-
-                $name = $arg->getAttribute('value');
-
-                if ($this->parser->isReservedMacroName($name)) {
-                    throw new Twig_Error_Syntax(sprintf('"%s" cannot be called as macro as it is a reserved keyword', $name), $token->getLine(), $this->parser->getFilename());
-                }
-
-                $node = new Twig_Node_Expression_MethodCall($node, 'get'.$name, $arguments, $lineno);
-                $node->setAttribute('safe', true);
-
-                return $node;
-            }
-        } else {
-            $type = Twig_Template::ARRAY_CALL;
-
-            // slice?
-            $slice = false;
-            if ($stream->test(Twig_Token::PUNCTUATION_TYPE, ':')) {
-                $slice = true;
-                $arg = new Twig_Node_Expression_Constant(0, $token->getLine());
-            } else {
-                $arg = $this->parseExpression();
-            }
-
-            if ($stream->nextIf(Twig_Token::PUNCTUATION_TYPE, ':')) {
-                $slice = true;
-            }
-
-            if ($slice) {
-                if ($stream->test(Twig_Token::PUNCTUATION_TYPE, ']')) {
-                    $length = new Twig_Node_Expression_Constant(null, $token->getLine());
-                } else {
-                    $length = $this->parseExpression();
-                }
-
-                $class = $this->getFilterNodeClass('slice', $token->getLine());
-                $arguments = new Twig_Node(array($arg, $length));
-                $filter = new $class($node, new Twig_Node_Expression_Constant('slice', $token->getLine()), $arguments, $token->getLine());
-
-                $stream->expect(Twig_Token::PUNCTUATION_TYPE, ']');
-
-                return $filter;
-            }
-
-            $stream->expect(Twig_Token::PUNCTUATION_TYPE, ']');
-        }
-
-        return new Twig_Node_Expression_GetAttr($node, $arg, $arguments, $type, $lineno);
-    }
-
-    public function parseFilterExpression($node)
-    {
-        $this->parser->getStream()->next();
-
-        return $this->parseFilterExpressionRaw($node);
-    }
-
-    public function parseFilterExpressionRaw($node, $tag = null)
-    {
-        while (true) {
-            $token = $this->parser->getStream()->expect(Twig_Token::NAME_TYPE);
-
-            $name = new Twig_Node_Expression_Constant($token->getValue(), $token->getLine());
-            if (!$this->parser->getStream()->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
-                $arguments = new Twig_Node();
-            } else {
-                $arguments = $this->parseArguments(true);
-            }
-
-            $class = $this->getFilterNodeClass($name->getAttribute('value'), $token->getLine());
-
-            $node = new $class($node, $name, $arguments, $token->getLine(), $tag);
-
-            if (!$this->parser->getStream()->test(Twig_Token::PUNCTUATION_TYPE, '|')) {
-                break;
-            }
-
-            $this->parser->getStream()->next();
-        }
-
-        return $node;
-    }
-
-    /**
-     * Parses arguments.
-     *
-     * @param bool $namedArguments Whether to allow named arguments or not
-     * @param bool $definition     Whether we are parsing arguments for a function definition
-     *
-     * @return Twig_Node
-     *
-     * @throws Twig_Error_Syntax
-     */
-    public function parseArguments($namedArguments = false, $definition = false)
-    {
-        $args = array();
-        $stream = $this->parser->getStream();
-
-        $stream->expect(Twig_Token::PUNCTUATION_TYPE, '(', 'A list of arguments must begin with an opening parenthesis');
-        while (!$stream->test(Twig_Token::PUNCTUATION_TYPE, ')')) {
-            if (!empty($args)) {
-                $stream->expect(Twig_Token::PUNCTUATION_TYPE, ',', 'Arguments must be separated by a comma');
-            }
-
-            if ($definition) {
-                $token = $stream->expect(Twig_Token::NAME_TYPE, null, 'An argument must be a name');
-                $value = new Twig_Node_Expression_Name($token->getValue(), $this->parser->getCurrentToken()->getLine());
-            } else {
-                $value = $this->parseExpression();
-            }
-
-            $name = null;
-            if ($namedArguments && $token = $stream->nextIf(Twig_Token::OPERATOR_TYPE, '=')) {
-                if (!$value instanceof Twig_Node_Expression_Name) {
-                    throw new Twig_Error_Syntax(sprintf('A parameter name must be a string, "%s" given', get_class($value)), $token->getLine(), $this->parser->getFilename());
-                }
-                $name = $value->getAttribute('name');
-
-                if ($definition) {
-                    $value = $this->parsePrimaryExpression();
-
-                    if (!$this->checkConstantExpression($value)) {
-                        throw new Twig_Error_Syntax(sprintf('A default value for an argument must be a constant (a boolean, a string, a number, or an array).'), $token->getLine(), $this->parser->getFilename());
-                    }
-                } else {
-                    $value = $this->parseExpression();
-                }
-            }
-
-            if ($definition) {
-                if (null === $name) {
-                    $name = $value->getAttribute('name');
-                    $value = new Twig_Node_Expression_Constant(null, $this->parser->getCurrentToken()->getLine());
-                }
-                $args[$name] = $value;
-            } else {
-                if (null === $name) {
-                    $args[] = $value;
-                } else {
-                    $args[$name] = $value;
-                }
-            }
-        }
-        $stream->expect(Twig_Token::PUNCTUATION_TYPE, ')', 'A list of arguments must be closed by a parenthesis');
-
-        return new Twig_Node($args);
-    }
-
-    public function parseAssignmentExpression()
-    {
-        $targets = array();
-        while (true) {
-            $token = $this->parser->getStream()->expect(Twig_Token::NAME_TYPE, null, 'Only variables can be assigned to');
-            if (in_array($token->getValue(), array('true', 'false', 'none'))) {
-                throw new Twig_Error_Syntax(sprintf('You cannot assign a value to "%s"', $token->getValue()), $token->getLine(), $this->parser->getFilename());
-            }
-            $targets[] = new Twig_Node_Expression_AssignName($token->getValue(), $token->getLine());
-
-            if (!$this->parser->getStream()->nextIf(Twig_Token::PUNCTUATION_TYPE, ',')) {
-                break;
-            }
-        }
-
-        return new Twig_Node($targets);
-    }
-
-    public function parseMultitargetExpression()
-    {
-        $targets = array();
-        while (true) {
-            $targets[] = $this->parseExpression();
-            if (!$this->parser->getStream()->nextIf(Twig_Token::PUNCTUATION_TYPE, ',')) {
-                break;
-            }
-        }
-
-        return new Twig_Node($targets);
-    }
-
-    protected function getFunctionNodeClass($name, $line)
-    {
-        $env = $this->parser->getEnvironment();
-
-        if (false === $function = $env->getFunction($name)) {
-            $message = sprintf('The function "%s" does not exist', $name);
-            if ($alternatives = $env->computeAlternatives($name, array_keys($env->getFunctions()))) {
-                $message = sprintf('%s. Did you mean "%s"', $message, implode('", "', $alternatives));
-            }
-
-            throw new Twig_Error_Syntax($message, $line, $this->parser->getFilename());
-        }
-
-        if ($function instanceof Twig_SimpleFunction) {
-            return $function->getNodeClass();
-        }
-
-        return $function instanceof Twig_Function_Node ? $function->getClass() : 'Twig_Node_Expression_Function';
-    }
-
-    protected function getFilterNodeClass($name, $line)
-    {
-        $env = $this->parser->getEnvironment();
-
-        if (false === $filter = $env->getFilter($name)) {
-            $message = sprintf('The filter "%s" does not exist', $name);
-            if ($alternatives = $env->computeAlternatives($name, array_keys($env->getFilters()))) {
-                $message = sprintf('%s. Did you mean "%s"', $message, implode('", "', $alternatives));
-            }
-
-            throw new Twig_Error_Syntax($message, $line, $this->parser->getFilename());
-        }
-
-        if ($filter instanceof Twig_SimpleFilter) {
-            return $filter->getNodeClass();
-        }
-
-        return $filter instanceof Twig_Filter_Node ? $filter->getClass() : 'Twig_Node_Expression_Filter';
-    }
-
-    // checks that the node only contains "constant" elements
-    protected function checkConstantExpression(Twig_NodeInterface $node)
-    {
-        if (!($node instanceof Twig_Node_Expression_Constant || $node instanceof Twig_Node_Expression_Array
-            || $node instanceof Twig_Node_Expression_Unary_Neg || $node instanceof Twig_Node_Expression_Unary_Pos
-        )) {
-            return false;
-        }
-
-        foreach ($node as $n) {
-            if (!$this->checkConstantExpression($n)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension.php b/core/vendor/twig/twig/lib/Twig/Extension.php
deleted file mode 100644
index 5c8ad5c..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-abstract class Twig_Extension implements Twig_ExtensionInterface
-{
-    /**
-     * Initializes the runtime environment.
-     *
-     * This is where you can load some file that contains filter functions for instance.
-     *
-     * @param Twig_Environment $environment The current Twig_Environment instance
-     */
-    public function initRuntime(Twig_Environment $environment)
-    {
-    }
-
-    /**
-     * Returns the token parser instances to add to the existing list.
-     *
-     * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
-     */
-    public function getTokenParsers()
-    {
-        return array();
-    }
-
-    /**
-     * Returns the node visitor instances to add to the existing list.
-     *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
-     */
-    public function getNodeVisitors()
-    {
-        return array();
-    }
-
-    /**
-     * Returns a list of filters to add to the existing list.
-     *
-     * @return array An array of filters
-     */
-    public function getFilters()
-    {
-        return array();
-    }
-
-    /**
-     * Returns a list of tests to add to the existing list.
-     *
-     * @return array An array of tests
-     */
-    public function getTests()
-    {
-        return array();
-    }
-
-    /**
-     * Returns a list of functions to add to the existing list.
-     *
-     * @return array An array of functions
-     */
-    public function getFunctions()
-    {
-        return array();
-    }
-
-    /**
-     * Returns a list of operators to add to the existing list.
-     *
-     * @return array An array of operators
-     */
-    public function getOperators()
-    {
-        return array();
-    }
-
-    /**
-     * Returns a list of global variables to add to the existing list.
-     *
-     * @return array An array of global variables
-     */
-    public function getGlobals()
-    {
-        return array();
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Core.php b/core/vendor/twig/twig/lib/Twig/Extension/Core.php
deleted file mode 100644
index dd69a05..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Core.php
+++ /dev/null
@@ -1,1516 +0,0 @@
-<?php
-
-if (!defined('ENT_SUBSTITUTE')) {
-    // use 0 as hhvm does not support several flags yet
-    define('ENT_SUBSTITUTE', 0);
-}
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Extension_Core extends Twig_Extension
-{
-    protected $dateFormats = array('F j, Y H:i', '%d days');
-    protected $numberFormat = array(0, '.', ',');
-    protected $timezone = null;
-    protected $escapers = array();
-
-    /**
-     * Defines a new escaper to be used via the escape filter.
-     *
-     * @param string   $strategy The strategy name that should be used as a strategy in the escape call
-     * @param callable $callable A valid PHP callable
-     */
-    public function setEscaper($strategy, $callable)
-    {
-        $this->escapers[$strategy] = $callable;
-    }
-
-    /**
-     * Gets all defined escapers.
-     *
-     * @return array An array of escapers
-     */
-    public function getEscapers()
-    {
-        return $this->escapers;
-    }
-
-    /**
-     * Sets the default format to be used by the date filter.
-     *
-     * @param string $format             The default date format string
-     * @param string $dateIntervalFormat The default date interval format string
-     */
-    public function setDateFormat($format = null, $dateIntervalFormat = null)
-    {
-        if (null !== $format) {
-            $this->dateFormats[0] = $format;
-        }
-
-        if (null !== $dateIntervalFormat) {
-            $this->dateFormats[1] = $dateIntervalFormat;
-        }
-    }
-
-    /**
-     * Gets the default format to be used by the date filter.
-     *
-     * @return array The default date format string and the default date interval format string
-     */
-    public function getDateFormat()
-    {
-        return $this->dateFormats;
-    }
-
-    /**
-     * Sets the default timezone to be used by the date filter.
-     *
-     * @param DateTimeZone|string $timezone The default timezone string or a DateTimeZone object
-     */
-    public function setTimezone($timezone)
-    {
-        $this->timezone = $timezone instanceof DateTimeZone ? $timezone : new DateTimeZone($timezone);
-    }
-
-    /**
-     * Gets the default timezone to be used by the date filter.
-     *
-     * @return DateTimeZone The default timezone currently in use
-     */
-    public function getTimezone()
-    {
-        if (null === $this->timezone) {
-            $this->timezone = new DateTimeZone(date_default_timezone_get());
-        }
-
-        return $this->timezone;
-    }
-
-    /**
-     * Sets the default format to be used by the number_format filter.
-     *
-     * @param int    $decimal      The number of decimal places to use.
-     * @param string $decimalPoint The character(s) to use for the decimal point.
-     * @param string $thousandSep  The character(s) to use for the thousands separator.
-     */
-    public function setNumberFormat($decimal, $decimalPoint, $thousandSep)
-    {
-        $this->numberFormat = array($decimal, $decimalPoint, $thousandSep);
-    }
-
-    /**
-     * Get the default format used by the number_format filter.
-     *
-     * @return array The arguments for number_format()
-     */
-    public function getNumberFormat()
-    {
-        return $this->numberFormat;
-    }
-
-    /**
-     * Returns the token parser instance to add to the existing list.
-     *
-     * @return Twig_TokenParser[] An array of Twig_TokenParser instances
-     */
-    public function getTokenParsers()
-    {
-        return array(
-            new Twig_TokenParser_For(),
-            new Twig_TokenParser_If(),
-            new Twig_TokenParser_Extends(),
-            new Twig_TokenParser_Include(),
-            new Twig_TokenParser_Block(),
-            new Twig_TokenParser_Use(),
-            new Twig_TokenParser_Filter(),
-            new Twig_TokenParser_Macro(),
-            new Twig_TokenParser_Import(),
-            new Twig_TokenParser_From(),
-            new Twig_TokenParser_Set(),
-            new Twig_TokenParser_Spaceless(),
-            new Twig_TokenParser_Flush(),
-            new Twig_TokenParser_Do(),
-            new Twig_TokenParser_Embed(),
-        );
-    }
-
-    /**
-     * Returns a list of filters to add to the existing list.
-     *
-     * @return array An array of filters
-     */
-    public function getFilters()
-    {
-        $filters = array(
-            // formatting filters
-            new Twig_SimpleFilter('date', 'twig_date_format_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('date_modify', 'twig_date_modify_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('format', 'sprintf'),
-            new Twig_SimpleFilter('replace', 'strtr'),
-            new Twig_SimpleFilter('number_format', 'twig_number_format_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('abs', 'abs'),
-            new Twig_SimpleFilter('round', 'twig_round'),
-
-            // encoding
-            new Twig_SimpleFilter('url_encode', 'twig_urlencode_filter'),
-            new Twig_SimpleFilter('json_encode', 'twig_jsonencode_filter'),
-            new Twig_SimpleFilter('convert_encoding', 'twig_convert_encoding'),
-
-            // string filters
-            new Twig_SimpleFilter('title', 'twig_title_string_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('capitalize', 'twig_capitalize_string_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('upper', 'strtoupper'),
-            new Twig_SimpleFilter('lower', 'strtolower'),
-            new Twig_SimpleFilter('striptags', 'strip_tags'),
-            new Twig_SimpleFilter('trim', 'trim'),
-            new Twig_SimpleFilter('nl2br', 'nl2br', array('pre_escape' => 'html', 'is_safe' => array('html'))),
-
-            // array helpers
-            new Twig_SimpleFilter('join', 'twig_join_filter'),
-            new Twig_SimpleFilter('split', 'twig_split_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('sort', 'twig_sort_filter'),
-            new Twig_SimpleFilter('merge', 'twig_array_merge'),
-            new Twig_SimpleFilter('batch', 'twig_array_batch'),
-
-            // string/array filters
-            new Twig_SimpleFilter('reverse', 'twig_reverse_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('length', 'twig_length_filter', array('needs_environment' => true)),
-            new Twig_SimpleFilter('slice', 'twig_slice', array('needs_environment' => true)),
-            new Twig_SimpleFilter('first', 'twig_first', array('needs_environment' => true)),
-            new Twig_SimpleFilter('last', 'twig_last', array('needs_environment' => true)),
-
-            // iteration and runtime
-            new Twig_SimpleFilter('default', '_twig_default_filter', array('node_class' => 'Twig_Node_Expression_Filter_Default')),
-            new Twig_SimpleFilter('keys', 'twig_get_array_keys_filter'),
-
-            // escaping
-            new Twig_SimpleFilter('escape', 'twig_escape_filter', array('needs_environment' => true, 'is_safe_callback' => 'twig_escape_filter_is_safe')),
-            new Twig_SimpleFilter('e', 'twig_escape_filter', array('needs_environment' => true, 'is_safe_callback' => 'twig_escape_filter_is_safe')),
-        );
-
-        if (function_exists('mb_get_info')) {
-            $filters[] = new Twig_SimpleFilter('upper', 'twig_upper_filter', array('needs_environment' => true));
-            $filters[] = new Twig_SimpleFilter('lower', 'twig_lower_filter', array('needs_environment' => true));
-        }
-
-        return $filters;
-    }
-
-    /**
-     * Returns a list of global functions to add to the existing list.
-     *
-     * @return array An array of global functions
-     */
-    public function getFunctions()
-    {
-        return array(
-            new Twig_SimpleFunction('max', 'max'),
-            new Twig_SimpleFunction('min', 'min'),
-            new Twig_SimpleFunction('range', 'range'),
-            new Twig_SimpleFunction('constant', 'twig_constant'),
-            new Twig_SimpleFunction('cycle', 'twig_cycle'),
-            new Twig_SimpleFunction('random', 'twig_random', array('needs_environment' => true)),
-            new Twig_SimpleFunction('date', 'twig_date_converter', array('needs_environment' => true)),
-            new Twig_SimpleFunction('include', 'twig_include', array('needs_environment' => true, 'needs_context' => true, 'is_safe' => array('all'))),
-            new Twig_SimpleFunction('source', 'twig_source', array('needs_environment' => true, 'is_safe' => array('all'))),
-        );
-    }
-
-    /**
-     * Returns a list of tests to add to the existing list.
-     *
-     * @return array An array of tests
-     */
-    public function getTests()
-    {
-        return array(
-            new Twig_SimpleTest('even', null, array('node_class' => 'Twig_Node_Expression_Test_Even')),
-            new Twig_SimpleTest('odd', null, array('node_class' => 'Twig_Node_Expression_Test_Odd')),
-            new Twig_SimpleTest('defined', null, array('node_class' => 'Twig_Node_Expression_Test_Defined')),
-            new Twig_SimpleTest('sameas', null, array('node_class' => 'Twig_Node_Expression_Test_Sameas')),
-            new Twig_SimpleTest('same as', null, array('node_class' => 'Twig_Node_Expression_Test_Sameas')),
-            new Twig_SimpleTest('none', null, array('node_class' => 'Twig_Node_Expression_Test_Null')),
-            new Twig_SimpleTest('null', null, array('node_class' => 'Twig_Node_Expression_Test_Null')),
-            new Twig_SimpleTest('divisibleby', null, array('node_class' => 'Twig_Node_Expression_Test_Divisibleby')),
-            new Twig_SimpleTest('divisible by', null, array('node_class' => 'Twig_Node_Expression_Test_Divisibleby')),
-            new Twig_SimpleTest('constant', null, array('node_class' => 'Twig_Node_Expression_Test_Constant')),
-            new Twig_SimpleTest('empty', 'twig_test_empty'),
-            new Twig_SimpleTest('iterable', 'twig_test_iterable'),
-        );
-    }
-
-    /**
-     * Returns a list of operators to add to the existing list.
-     *
-     * @return array An array of operators
-     */
-    public function getOperators()
-    {
-        return array(
-            array(
-                'not' => array('precedence' => 50, 'class' => 'Twig_Node_Expression_Unary_Not'),
-                '-' => array('precedence' => 500, 'class' => 'Twig_Node_Expression_Unary_Neg'),
-                '+' => array('precedence' => 500, 'class' => 'Twig_Node_Expression_Unary_Pos'),
-            ),
-            array(
-                'or' => array('precedence' => 10, 'class' => 'Twig_Node_Expression_Binary_Or', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'and' => array('precedence' => 15, 'class' => 'Twig_Node_Expression_Binary_And', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'b-or' => array('precedence' => 16, 'class' => 'Twig_Node_Expression_Binary_BitwiseOr', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'b-xor' => array('precedence' => 17, 'class' => 'Twig_Node_Expression_Binary_BitwiseXor', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'b-and' => array('precedence' => 18, 'class' => 'Twig_Node_Expression_Binary_BitwiseAnd', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '==' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Equal', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '!=' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_NotEqual', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '<' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Less', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '>' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Greater', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '>=' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_GreaterEqual', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '<=' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_LessEqual', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'not in' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_NotIn', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'in' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_In', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'matches' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Matches', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'starts with' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_StartsWith', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'ends with' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_EndsWith', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '..' => array('precedence' => 25, 'class' => 'Twig_Node_Expression_Binary_Range', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '+' => array('precedence' => 30, 'class' => 'Twig_Node_Expression_Binary_Add', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '-' => array('precedence' => 30, 'class' => 'Twig_Node_Expression_Binary_Sub', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '~' => array('precedence' => 40, 'class' => 'Twig_Node_Expression_Binary_Concat', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '*' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Mul', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '/' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Div', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '//' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_FloorDiv', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '%' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Mod', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'is' => array('precedence' => 100, 'callable' => array($this, 'parseTestExpression'), 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                'is not' => array('precedence' => 100, 'callable' => array($this, 'parseNotTestExpression'), 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
-                '**' => array('precedence' => 200, 'class' => 'Twig_Node_Expression_Binary_Power', 'associativity' => Twig_ExpressionParser::OPERATOR_RIGHT),
-            ),
-        );
-    }
-
-    public function parseNotTestExpression(Twig_Parser $parser, Twig_NodeInterface $node)
-    {
-        return new Twig_Node_Expression_Unary_Not($this->parseTestExpression($parser, $node), $parser->getCurrentToken()->getLine());
-    }
-
-    public function parseTestExpression(Twig_Parser $parser, Twig_NodeInterface $node)
-    {
-        $stream = $parser->getStream();
-        $name = $this->getTestName($parser, $node->getLine());
-        $class = $this->getTestNodeClass($parser, $name);
-        $arguments = null;
-        if ($stream->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
-            $arguments = $parser->getExpressionParser()->parseArguments(true);
-        }
-
-        return new $class($node, $name, $arguments, $parser->getCurrentToken()->getLine());
-    }
-
-    protected function getTestName(Twig_Parser $parser, $line)
-    {
-        $stream = $parser->getStream();
-        $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-        $env = $parser->getEnvironment();
-        $testMap = $env->getTests();
-
-        if (isset($testMap[$name])) {
-            return $name;
-        }
-
-        if ($stream->test(Twig_Token::NAME_TYPE)) {
-            // try 2-words tests
-            $name = $name.' '.$parser->getCurrentToken()->getValue();
-
-            if (isset($testMap[$name])) {
-                $parser->getStream()->next();
-
-                return $name;
-            }
-        }
-
-        $message = sprintf('The test "%s" does not exist', $name);
-        if ($alternatives = $env->computeAlternatives($name, array_keys($testMap))) {
-            $message = sprintf('%s. Did you mean "%s"', $message, implode('", "', $alternatives));
-        }
-
-        throw new Twig_Error_Syntax($message, $line, $parser->getFilename());
-    }
-
-    protected function getTestNodeClass(Twig_Parser $parser, $name)
-    {
-        $env = $parser->getEnvironment();
-        $testMap = $env->getTests();
-
-        if ($testMap[$name] instanceof Twig_SimpleTest) {
-            return $testMap[$name]->getNodeClass();
-        }
-
-        return $testMap[$name] instanceof Twig_Test_Node ? $testMap[$name]->getClass() : 'Twig_Node_Expression_Test';
-    }
-
-    /**
-     * Returns the name of the extension.
-     *
-     * @return string The extension name
-     */
-    public function getName()
-    {
-        return 'core';
-    }
-}
-
-/**
- * Cycles over a value.
- *
- * @param ArrayAccess|array $values   An array or an ArrayAccess instance
- * @param int               $position The cycle position
- *
- * @return string The next value in the cycle
- */
-function twig_cycle($values, $position)
-{
-    if (!is_array($values) && !$values instanceof ArrayAccess) {
-        return $values;
-    }
-
-    return $values[$position % count($values)];
-}
-
-/**
- * Returns a random value depending on the supplied parameter type:
- * - a random item from a Traversable or array
- * - a random character from a string
- * - a random integer between 0 and the integer parameter.
- *
- * @param Twig_Environment                 $env    A Twig_Environment instance
- * @param Traversable|array|int|string     $values The values to pick a random item from
- *
- * @throws Twig_Error_Runtime When $values is an empty array (does not apply to an empty string which is returned as is).
- *
- * @return mixed A random value from the given sequence
- */
-function twig_random(Twig_Environment $env, $values = null)
-{
-    if (null === $values) {
-        return mt_rand();
-    }
-
-    if (is_int($values) || is_float($values)) {
-        return $values < 0 ? mt_rand($values, 0) : mt_rand(0, $values);
-    }
-
-    if ($values instanceof Traversable) {
-        $values = iterator_to_array($values);
-    } elseif (is_string($values)) {
-        if ('' === $values) {
-            return '';
-        }
-        if (null !== $charset = $env->getCharset()) {
-            if ('UTF-8' != $charset) {
-                $values = twig_convert_encoding($values, 'UTF-8', $charset);
-            }
-
-            // unicode version of str_split()
-            // split at all positions, but not after the start and not before the end
-            $values = preg_split('/(?<!^)(?!$)/u', $values);
-
-            if ('UTF-8' != $charset) {
-                foreach ($values as $i => $value) {
-                    $values[$i] = twig_convert_encoding($value, $charset, 'UTF-8');
-                }
-            }
-        } else {
-            return $values[mt_rand(0, strlen($values) - 1)];
-        }
-    }
-
-    if (!is_array($values)) {
-        return $values;
-    }
-
-    if (0 === count($values)) {
-        throw new Twig_Error_Runtime('The random function cannot pick from an empty array.');
-    }
-
-    return $values[array_rand($values, 1)];
-}
-
-/**
- * Converts a date to the given format.
- *
- * <pre>
- *   {{ post.published_at|date("m/d/Y") }}
- * </pre>
- *
- * @param Twig_Environment                               $env      A Twig_Environment instance
- * @param DateTime|DateTimeInterface|DateInterval|string $date     A date
- * @param string|null                                    $format   The target format, null to use the default
- * @param DateTimeZone|string|null|false                 $timezone The target timezone, null to use the default, false to leave unchanged
- *
- * @return string The formatted date
- */
-function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $timezone = null)
-{
-    if (null === $format) {
-        $formats = $env->getExtension('core')->getDateFormat();
-        $format = $date instanceof DateInterval ? $formats[1] : $formats[0];
-    }
-
-    if ($date instanceof DateInterval) {
-        return $date->format($format);
-    }
-
-    return twig_date_converter($env, $date, $timezone)->format($format);
-}
-
-/**
- * Returns a new date object modified.
- *
- * <pre>
- *   {{ post.published_at|date_modify("-1day")|date("m/d/Y") }}
- * </pre>
- *
- * @param Twig_Environment  $env      A Twig_Environment instance
- * @param DateTime|string   $date     A date
- * @param string            $modifier A modifier string
- *
- * @return DateTime A new date object
- */
-function twig_date_modify_filter(Twig_Environment $env, $date, $modifier)
-{
-    $date = twig_date_converter($env, $date, false);
-    $resultDate = $date->modify($modifier);
-
-    // This is a hack to ensure PHP 5.2 support and support for DateTimeImmutable
-    // DateTime::modify does not return the modified DateTime object < 5.3.0
-    // and DateTimeImmutable does not modify $date.
-    return null === $resultDate ? $date : $resultDate;
-}
-
-/**
- * Converts an input to a DateTime instance.
- *
- * <pre>
- *    {% if date(user.created_at) < date('+2days') %}
- *      {# do something #}
- *    {% endif %}
- * </pre>
- *
- * @param Twig_Environment                       $env      A Twig_Environment instance
- * @param DateTime|DateTimeInterface|string|null $date     A date
- * @param DateTimeZone|string|null|false         $timezone The target timezone, null to use the default, false to leave unchanged
- *
- * @return DateTime A DateTime instance
- */
-function twig_date_converter(Twig_Environment $env, $date = null, $timezone = null)
-{
-    // determine the timezone
-    if (false !== $timezone) {
-        if (null === $timezone) {
-            $timezone = $env->getExtension('core')->getTimezone();
-        } elseif (!$timezone instanceof DateTimeZone) {
-            $timezone = new DateTimeZone($timezone);
-        }
-    }
-
-    // immutable dates
-    if ($date instanceof DateTimeImmutable) {
-        return false !== $timezone ? $date->setTimezone($timezone) : $date;
-    }
-
-    if ($date instanceof DateTime || $date instanceof DateTimeInterface) {
-        $date = clone $date;
-        if (false !== $timezone) {
-            $date->setTimezone($timezone);
-        }
-
-        return $date;
-    }
-
-    $asString = (string) $date;
-    if (ctype_digit($asString) || (!empty($asString) && '-' === $asString[0] && ctype_digit(substr($asString, 1)))) {
-        $date = '@'.$date;
-    }
-
-    $date = new DateTime($date, $env->getExtension('core')->getTimezone());
-    if (false !== $timezone) {
-        $date->setTimezone($timezone);
-    }
-
-    return $date;
-}
-
-/**
- * Rounds a number.
- *
- * @param int|float     $value     The value to round
- * @param int|float     $precision The rounding precision
- * @param string        $method    The method to use for rounding
- *
- * @return int|float     The rounded number
- */
-function twig_round($value, $precision = 0, $method = 'common')
-{
-    if ('common' == $method) {
-        return round($value, $precision);
-    }
-
-    if ('ceil' != $method && 'floor' != $method) {
-        throw new Twig_Error_Runtime('The round filter only supports the "common", "ceil", and "floor" methods.');
-    }
-
-    return $method($value * pow(10, $precision)) / pow(10, $precision);
-}
-
-/**
- * Number format filter.
- *
- * All of the formatting options can be left null, in that case the defaults will
- * be used.  Supplying any of the parameters will override the defaults set in the
- * environment object.
- *
- * @param Twig_Environment    $env          A Twig_Environment instance
- * @param mixed               $number       A float/int/string of the number to format
- * @param int                 $decimal      The number of decimal points to display.
- * @param string              $decimalPoint The character(s) to use for the decimal point.
- * @param string              $thousandSep  The character(s) to use for the thousands separator.
- *
- * @return string The formatted number
- */
-function twig_number_format_filter(Twig_Environment $env, $number, $decimal = null, $decimalPoint = null, $thousandSep = null)
-{
-    $defaults = $env->getExtension('core')->getNumberFormat();
-    if (null === $decimal) {
-        $decimal = $defaults[0];
-    }
-
-    if (null === $decimalPoint) {
-        $decimalPoint = $defaults[1];
-    }
-
-    if (null === $thousandSep) {
-        $thousandSep = $defaults[2];
-    }
-
-    return number_format((float) $number, $decimal, $decimalPoint, $thousandSep);
-}
-
-/**
- * URL encodes (RFC 3986) a string as a path segment or an array as a query string.
- *
- * @param string|array $url A URL or an array of query parameters
- *
- * @return string The URL encoded value
- */
-function twig_urlencode_filter($url)
-{
-    if (is_array($url)) {
-        if (defined('PHP_QUERY_RFC3986')) {
-            return http_build_query($url, '', '&', PHP_QUERY_RFC3986);
-        }
-
-        return http_build_query($url, '', '&');
-    }
-
-    return rawurlencode($url);
-}
-
-if (PHP_VERSION_ID < 50300) {
-    /**
-     * JSON encodes a variable.
-     *
-     * @param mixed $value   The value to encode.
-     * @param int   $options Not used on PHP 5.2.x
-     *
-     * @return mixed The JSON encoded value
-     */
-    function twig_jsonencode_filter($value, $options = 0)
-    {
-        if ($value instanceof Twig_Markup) {
-            $value = (string) $value;
-        } elseif (is_array($value)) {
-            array_walk_recursive($value, '_twig_markup2string');
-        }
-
-        return json_encode($value);
-    }
-} else {
-    /**
-     * JSON encodes a variable.
-     *
-     * @param mixed $value   The value to encode.
-     * @param int   $options Bitmask consisting of JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
-     *
-     * @return mixed The JSON encoded value
-     */
-    function twig_jsonencode_filter($value, $options = 0)
-    {
-        if ($value instanceof Twig_Markup) {
-            $value = (string) $value;
-        } elseif (is_array($value)) {
-            array_walk_recursive($value, '_twig_markup2string');
-        }
-
-        return json_encode($value, $options);
-    }
-}
-
-function _twig_markup2string(&$value)
-{
-    if ($value instanceof Twig_Markup) {
-        $value = (string) $value;
-    }
-}
-
-/**
- * Merges an array with another one.
- *
- * <pre>
- *  {% set items = { 'apple': 'fruit', 'orange': 'fruit' } %}
- *
- *  {% set items = items|merge({ 'peugeot': 'car' }) %}
- *
- *  {# items now contains { 'apple': 'fruit', 'orange': 'fruit', 'peugeot': 'car' } #}
- * </pre>
- *
- * @param array $arr1 An array
- * @param array $arr2 An array
- *
- * @return array The merged array
- */
-function twig_array_merge($arr1, $arr2)
-{
-    if (!is_array($arr1) || !is_array($arr2)) {
-        throw new Twig_Error_Runtime(sprintf('The merge filter only works with arrays or hashes; %s and %s given.', gettype($arr1), gettype($arr2)));
-    }
-
-    return array_merge($arr1, $arr2);
-}
-
-/**
- * Slices a variable.
- *
- * @param Twig_Environment $env          A Twig_Environment instance
- * @param mixed            $item         A variable
- * @param int              $start        Start of the slice
- * @param int              $length       Size of the slice
- * @param bool             $preserveKeys Whether to preserve key or not (when the input is an array)
- *
- * @return mixed The sliced variable
- */
-function twig_slice(Twig_Environment $env, $item, $start, $length = null, $preserveKeys = false)
-{
-    if ($item instanceof Traversable) {
-        if ($item instanceof IteratorAggregate) {
-            $item = $item->getIterator();
-        }
-
-        if ($start >= 0 && $length >= 0 && $item instanceof Iterator) {
-            try {
-                return iterator_to_array(new LimitIterator($item, $start, $length === null ? -1 : $length), $preserveKeys);
-            } catch (OutOfBoundsException $exception) {
-                return array();
-            }
-        }
-
-        $item = iterator_to_array($item, $preserveKeys);
-    }
-
-    if (is_array($item)) {
-        return array_slice($item, $start, $length, $preserveKeys);
-    }
-
-    $item = (string) $item;
-
-    if (function_exists('mb_get_info') && null !== $charset = $env->getCharset()) {
-        return (string) mb_substr($item, $start, null === $length ? mb_strlen($item, $charset) - $start : $length, $charset);
-    }
-
-    return (string) (null === $length ? substr($item, $start) : substr($item, $start, $length));
-}
-
-/**
- * Returns the first element of the item.
- *
- * @param Twig_Environment $env  A Twig_Environment instance
- * @param mixed            $item A variable
- *
- * @return mixed The first element of the item
- */
-function twig_first(Twig_Environment $env, $item)
-{
-    $elements = twig_slice($env, $item, 0, 1, false);
-
-    return is_string($elements) ? $elements : current($elements);
-}
-
-/**
- * Returns the last element of the item.
- *
- * @param Twig_Environment $env  A Twig_Environment instance
- * @param mixed            $item A variable
- *
- * @return mixed The last element of the item
- */
-function twig_last(Twig_Environment $env, $item)
-{
-    $elements = twig_slice($env, $item, -1, 1, false);
-
-    return is_string($elements) ? $elements : current($elements);
-}
-
-/**
- * Joins the values to a string.
- *
- * The separator between elements is an empty string per default, you can define it with the optional parameter.
- *
- * <pre>
- *  {{ [1, 2, 3]|join('|') }}
- *  {# returns 1|2|3 #}
- *
- *  {{ [1, 2, 3]|join }}
- *  {# returns 123 #}
- * </pre>
- *
- * @param array  $value An array
- * @param string $glue  The separator
- *
- * @return string The concatenated string
- */
-function twig_join_filter($value, $glue = '')
-{
-    if ($value instanceof Traversable) {
-        $value = iterator_to_array($value, false);
-    }
-
-    return implode($glue, (array) $value);
-}
-
-/**
- * Splits the string into an array.
- *
- * <pre>
- *  {{ "one,two,three"|split(',') }}
- *  {# returns [one, two, three] #}
- *
- *  {{ "one,two,three,four,five"|split(',', 3) }}
- *  {# returns [one, two, "three,four,five"] #}
- *
- *  {{ "123"|split('') }}
- *  {# returns [1, 2, 3] #}
- *
- *  {{ "aabbcc"|split('', 2) }}
- *  {# returns [aa, bb, cc] #}
- * </pre>
- *
- * @param string  $value     A string
- * @param string  $delimiter The delimiter
- * @param int     $limit     The limit
- *
- * @return array The split string as an array
- */
-function twig_split_filter(Twig_Environment $env, $value, $delimiter, $limit = null)
-{
-    if (!empty($delimiter)) {
-        return null === $limit ? explode($delimiter, $value) : explode($delimiter, $value, $limit);
-    }
-
-    if (!function_exists('mb_get_info') || null === $charset = $env->getCharset()) {
-        return str_split($value, null === $limit ? 1 : $limit);
-    }
-
-    if ($limit <= 1) {
-        return preg_split('/(?<!^)(?!$)/u', $value);
-    }
-
-    $length = mb_strlen($value, $charset);
-    if ($length < $limit) {
-        return array($value);
-    }
-
-    $r = array();
-    for ($i = 0; $i < $length; $i += $limit) {
-        $r[] = mb_substr($value, $i, $limit, $charset);
-    }
-
-    return $r;
-}
-
-// The '_default' filter is used internally to avoid using the ternary operator
-// which costs a lot for big contexts (before PHP 5.4). So, on average,
-// a function call is cheaper.
-function _twig_default_filter($value, $default = '')
-{
-    if (twig_test_empty($value)) {
-        return $default;
-    }
-
-    return $value;
-}
-
-/**
- * Returns the keys for the given array.
- *
- * It is useful when you want to iterate over the keys of an array:
- *
- * <pre>
- *  {% for key in array|keys %}
- *      {# ... #}
- *  {% endfor %}
- * </pre>
- *
- * @param array $array An array
- *
- * @return array The keys
- */
-function twig_get_array_keys_filter($array)
-{
-    if (is_object($array) && $array instanceof Traversable) {
-        return array_keys(iterator_to_array($array));
-    }
-
-    if (!is_array($array)) {
-        return array();
-    }
-
-    return array_keys($array);
-}
-
-/**
- * Reverses a variable.
- *
- * @param Twig_Environment         $env          A Twig_Environment instance
- * @param array|Traversable|string $item         An array, a Traversable instance, or a string
- * @param bool                     $preserveKeys Whether to preserve key or not
- *
- * @return mixed The reversed input
- */
-function twig_reverse_filter(Twig_Environment $env, $item, $preserveKeys = false)
-{
-    if (is_object($item) && $item instanceof Traversable) {
-        return array_reverse(iterator_to_array($item), $preserveKeys);
-    }
-
-    if (is_array($item)) {
-        return array_reverse($item, $preserveKeys);
-    }
-
-    if (null !== $charset = $env->getCharset()) {
-        $string = (string) $item;
-
-        if ('UTF-8' != $charset) {
-            $item = twig_convert_encoding($string, 'UTF-8', $charset);
-        }
-
-        preg_match_all('/./us', $item, $matches);
-
-        $string = implode('', array_reverse($matches[0]));
-
-        if ('UTF-8' != $charset) {
-            $string = twig_convert_encoding($string, $charset, 'UTF-8');
-        }
-
-        return $string;
-    }
-
-    return strrev((string) $item);
-}
-
-/**
- * Sorts an array.
- *
- * @param array $array
- *
- * @return array
- */
-function twig_sort_filter($array)
-{
-    asort($array);
-
-    return $array;
-}
-
-/* used internally */
-function twig_in_filter($value, $compare)
-{
-    if (is_array($compare)) {
-        return in_array($value, $compare, is_object($value) || is_resource($value));
-    } elseif (is_string($compare) && (is_string($value) || is_int($value) || is_float($value))) {
-        return '' === $value || false !== strpos($compare, (string) $value);
-    } elseif ($compare instanceof Traversable) {
-        return in_array($value, iterator_to_array($compare, false), is_object($value) || is_resource($value));
-    }
-
-    return false;
-}
-
-/**
- * Escapes a string.
- *
- * @param Twig_Environment $env        A Twig_Environment instance
- * @param string           $string     The value to be escaped
- * @param string           $strategy   The escaping strategy
- * @param string           $charset    The charset
- * @param bool             $autoescape Whether the function is called by the auto-escaping feature (true) or by the developer (false)
- *
- * @return string
- */
-function twig_escape_filter(Twig_Environment $env, $string, $strategy = 'html', $charset = null, $autoescape = false)
-{
-    if ($autoescape && $string instanceof Twig_Markup) {
-        return $string;
-    }
-
-    if (!is_string($string)) {
-        if (is_object($string) && method_exists($string, '__toString')) {
-            $string = (string) $string;
-        } else {
-            return $string;
-        }
-    }
-
-    if (null === $charset) {
-        $charset = $env->getCharset();
-    }
-
-    switch ($strategy) {
-        case 'html':
-            // see http://php.net/htmlspecialchars
-
-            // Using a static variable to avoid initializing the array
-            // each time the function is called. Moving the declaration on the
-            // top of the function slow downs other escaping strategies.
-            static $htmlspecialcharsCharsets;
-
-            if (null === $htmlspecialcharsCharsets) {
-                if (defined('HHVM_VERSION')) {
-                    $htmlspecialcharsCharsets = array('utf-8' => true, 'UTF-8' => true);
-                } else {
-                    $htmlspecialcharsCharsets = array(
-                        'ISO-8859-1' => true, 'ISO8859-1' => true,
-                        'ISO-8859-15' => true, 'ISO8859-15' => true,
-                        'utf-8' => true, 'UTF-8' => true,
-                        'CP866' => true, 'IBM866' => true, '866' => true,
-                        'CP1251' => true, 'WINDOWS-1251' => true, 'WIN-1251' => true,
-                        '1251' => true,
-                        'CP1252' => true, 'WINDOWS-1252' => true, '1252' => true,
-                        'KOI8-R' => true, 'KOI8-RU' => true, 'KOI8R' => true,
-                        'BIG5' => true, '950' => true,
-                        'GB2312' => true, '936' => true,
-                        'BIG5-HKSCS' => true,
-                        'SHIFT_JIS' => true, 'SJIS' => true, '932' => true,
-                        'EUC-JP' => true, 'EUCJP' => true,
-                        'ISO8859-5' => true, 'ISO-8859-5' => true, 'MACROMAN' => true,
-                    );
-                }
-            }
-
-            if (isset($htmlspecialcharsCharsets[$charset])) {
-                return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, $charset);
-            }
-
-            if (isset($htmlspecialcharsCharsets[strtoupper($charset)])) {
-                // cache the lowercase variant for future iterations
-                $htmlspecialcharsCharsets[$charset] = true;
-
-                return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, $charset);
-            }
-
-            $string = twig_convert_encoding($string, 'UTF-8', $charset);
-            $string = htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
-
-            return twig_convert_encoding($string, $charset, 'UTF-8');
-
-        case 'js':
-            // escape all non-alphanumeric characters
-            // into their \xHH or \uHHHH representations
-            if ('UTF-8' != $charset) {
-                $string = twig_convert_encoding($string, 'UTF-8', $charset);
-            }
-
-            if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) {
-                throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
-            }
-
-            $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string);
-
-            if ('UTF-8' != $charset) {
-                $string = twig_convert_encoding($string, $charset, 'UTF-8');
-            }
-
-            return $string;
-
-        case 'css':
-            if ('UTF-8' != $charset) {
-                $string = twig_convert_encoding($string, 'UTF-8', $charset);
-            }
-
-            if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) {
-                throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
-            }
-
-            $string = preg_replace_callback('#[^a-zA-Z0-9]#Su', '_twig_escape_css_callback', $string);
-
-            if ('UTF-8' != $charset) {
-                $string = twig_convert_encoding($string, $charset, 'UTF-8');
-            }
-
-            return $string;
-
-        case 'html_attr':
-            if ('UTF-8' != $charset) {
-                $string = twig_convert_encoding($string, 'UTF-8', $charset);
-            }
-
-            if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) {
-                throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
-            }
-
-            $string = preg_replace_callback('#[^a-zA-Z0-9,\.\-_]#Su', '_twig_escape_html_attr_callback', $string);
-
-            if ('UTF-8' != $charset) {
-                $string = twig_convert_encoding($string, $charset, 'UTF-8');
-            }
-
-            return $string;
-
-        case 'url':
-            if (PHP_VERSION_ID < 50300) {
-                return str_replace('%7E', '~', rawurlencode($string));
-            }
-
-            return rawurlencode($string);
-
-        default:
-            static $escapers;
-
-            if (null === $escapers) {
-                $escapers = $env->getExtension('core')->getEscapers();
-            }
-
-            if (isset($escapers[$strategy])) {
-                return call_user_func($escapers[$strategy], $env, $string, $charset);
-            }
-
-            $validStrategies = implode(', ', array_merge(array('html', 'js', 'url', 'css', 'html_attr'), array_keys($escapers)));
-
-            throw new Twig_Error_Runtime(sprintf('Invalid escaping strategy "%s" (valid ones: %s).', $strategy, $validStrategies));
-    }
-}
-
-/* used internally */
-function twig_escape_filter_is_safe(Twig_Node $filterArgs)
-{
-    foreach ($filterArgs as $arg) {
-        if ($arg instanceof Twig_Node_Expression_Constant) {
-            return array($arg->getAttribute('value'));
-        }
-
-        return array();
-    }
-
-    return array('html');
-}
-
-if (function_exists('mb_convert_encoding')) {
-    function twig_convert_encoding($string, $to, $from)
-    {
-        return mb_convert_encoding($string, $to, $from);
-    }
-} elseif (function_exists('iconv')) {
-    function twig_convert_encoding($string, $to, $from)
-    {
-        return iconv($from, $to, $string);
-    }
-} else {
-    function twig_convert_encoding($string, $to, $from)
-    {
-        throw new Twig_Error_Runtime('No suitable convert encoding function (use UTF-8 as your encoding or install the iconv or mbstring extension).');
-    }
-}
-
-function _twig_escape_js_callback($matches)
-{
-    $char = $matches[0];
-
-    // \xHH
-    if (!isset($char[1])) {
-        return '\\x'.strtoupper(substr('00'.bin2hex($char), -2));
-    }
-
-    // \uHHHH
-    $char = twig_convert_encoding($char, 'UTF-16BE', 'UTF-8');
-
-    return '\\u'.strtoupper(substr('0000'.bin2hex($char), -4));
-}
-
-function _twig_escape_css_callback($matches)
-{
-    $char = $matches[0];
-
-    // \xHH
-    if (!isset($char[1])) {
-        $hex = ltrim(strtoupper(bin2hex($char)), '0');
-        if (0 === strlen($hex)) {
-            $hex = '0';
-        }
-
-        return '\\'.$hex.' ';
-    }
-
-    // \uHHHH
-    $char = twig_convert_encoding($char, 'UTF-16BE', 'UTF-8');
-
-    return '\\'.ltrim(strtoupper(bin2hex($char)), '0').' ';
-}
-
-/**
- * This function is adapted from code coming from Zend Framework.
- *
- * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-function _twig_escape_html_attr_callback($matches)
-{
-    /*
-     * While HTML supports far more named entities, the lowest common denominator
-     * has become HTML5's XML Serialisation which is restricted to the those named
-     * entities that XML supports. Using HTML entities would result in this error:
-     *     XML Parsing Error: undefined entity
-     */
-    static $entityMap = array(
-        34 => 'quot', /* quotation mark */
-        38 => 'amp',  /* ampersand */
-        60 => 'lt',   /* less-than sign */
-        62 => 'gt',   /* greater-than sign */
-    );
-
-    $chr = $matches[0];
-    $ord = ord($chr);
-
-    /*
-     * The following replaces characters undefined in HTML with the
-     * hex entity for the Unicode replacement character.
-     */
-    if (($ord <= 0x1f && $chr != "\t" && $chr != "\n" && $chr != "\r") || ($ord >= 0x7f && $ord <= 0x9f)) {
-        return '&#xFFFD;';
-    }
-
-    /*
-     * Check if the current character to escape has a name entity we should
-     * replace it with while grabbing the hex value of the character.
-     */
-    if (strlen($chr) == 1) {
-        $hex = strtoupper(substr('00'.bin2hex($chr), -2));
-    } else {
-        $chr = twig_convert_encoding($chr, 'UTF-16BE', 'UTF-8');
-        $hex = strtoupper(substr('0000'.bin2hex($chr), -4));
-    }
-
-    $int = hexdec($hex);
-    if (array_key_exists($int, $entityMap)) {
-        return sprintf('&%s;', $entityMap[$int]);
-    }
-
-    /*
-     * Per OWASP recommendations, we'll use hex entities for any other
-     * characters where a named entity does not exist.
-     */
-    return sprintf('&#x%s;', $hex);
-}
-
-// add multibyte extensions if possible
-if (function_exists('mb_get_info')) {
-    /**
-     * Returns the length of a variable.
-     *
-     * @param Twig_Environment $env   A Twig_Environment instance
-     * @param mixed            $thing A variable
-     *
-     * @return int The length of the value
-     */
-    function twig_length_filter(Twig_Environment $env, $thing)
-    {
-        return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);
-    }
-
-    /**
-     * Converts a string to uppercase.
-     *
-     * @param Twig_Environment $env    A Twig_Environment instance
-     * @param string           $string A string
-     *
-     * @return string The uppercased string
-     */
-    function twig_upper_filter(Twig_Environment $env, $string)
-    {
-        if (null !== ($charset = $env->getCharset())) {
-            return mb_strtoupper($string, $charset);
-        }
-
-        return strtoupper($string);
-    }
-
-    /**
-     * Converts a string to lowercase.
-     *
-     * @param Twig_Environment $env    A Twig_Environment instance
-     * @param string           $string A string
-     *
-     * @return string The lowercased string
-     */
-    function twig_lower_filter(Twig_Environment $env, $string)
-    {
-        if (null !== ($charset = $env->getCharset())) {
-            return mb_strtolower($string, $charset);
-        }
-
-        return strtolower($string);
-    }
-
-    /**
-     * Returns a titlecased string.
-     *
-     * @param Twig_Environment $env    A Twig_Environment instance
-     * @param string           $string A string
-     *
-     * @return string The titlecased string
-     */
-    function twig_title_string_filter(Twig_Environment $env, $string)
-    {
-        if (null !== ($charset = $env->getCharset())) {
-            return mb_convert_case($string, MB_CASE_TITLE, $charset);
-        }
-
-        return ucwords(strtolower($string));
-    }
-
-    /**
-     * Returns a capitalized string.
-     *
-     * @param Twig_Environment $env    A Twig_Environment instance
-     * @param string           $string A string
-     *
-     * @return string The capitalized string
-     */
-    function twig_capitalize_string_filter(Twig_Environment $env, $string)
-    {
-        if (null !== ($charset = $env->getCharset())) {
-            return mb_strtoupper(mb_substr($string, 0, 1, $charset), $charset).
-                         mb_strtolower(mb_substr($string, 1, mb_strlen($string, $charset), $charset), $charset);
-        }
-
-        return ucfirst(strtolower($string));
-    }
-}
-// and byte fallback
-else {
-    /**
-     * Returns the length of a variable.
-     *
-     * @param Twig_Environment $env   A Twig_Environment instance
-     * @param mixed            $thing A variable
-     *
-     * @return int The length of the value
-     */
-    function twig_length_filter(Twig_Environment $env, $thing)
-    {
-        return is_scalar($thing) ? strlen($thing) : count($thing);
-    }
-
-    /**
-     * Returns a titlecased string.
-     *
-     * @param Twig_Environment $env    A Twig_Environment instance
-     * @param string           $string A string
-     *
-     * @return string The titlecased string
-     */
-    function twig_title_string_filter(Twig_Environment $env, $string)
-    {
-        return ucwords(strtolower($string));
-    }
-
-    /**
-     * Returns a capitalized string.
-     *
-     * @param Twig_Environment $env    A Twig_Environment instance
-     * @param string           $string A string
-     *
-     * @return string The capitalized string
-     */
-    function twig_capitalize_string_filter(Twig_Environment $env, $string)
-    {
-        return ucfirst(strtolower($string));
-    }
-}
-
-/* used internally */
-function twig_ensure_traversable($seq)
-{
-    if ($seq instanceof Traversable || is_array($seq)) {
-        return $seq;
-    }
-
-    return array();
-}
-
-/**
- * Checks if a variable is empty.
- *
- * <pre>
- * {# evaluates to true if the foo variable is null, false, or the empty string #}
- * {% if foo is empty %}
- *     {# ... #}
- * {% endif %}
- * </pre>
- *
- * @param mixed $value A variable
- *
- * @return bool    true if the value is empty, false otherwise
- */
-function twig_test_empty($value)
-{
-    if ($value instanceof Countable) {
-        return 0 == count($value);
-    }
-
-    return '' === $value || false === $value || null === $value || array() === $value;
-}
-
-/**
- * Checks if a variable is traversable.
- *
- * <pre>
- * {# evaluates to true if the foo variable is an array or a traversable object #}
- * {% if foo is traversable %}
- *     {# ... #}
- * {% endif %}
- * </pre>
- *
- * @param mixed $value A variable
- *
- * @return bool    true if the value is traversable
- */
-function twig_test_iterable($value)
-{
-    return $value instanceof Traversable || is_array($value);
-}
-
-/**
- * Renders a template.
- *
- * @param Twig_Environment $env
- * @param array            $context
- * @param string|array     $template      The template to render or an array of templates to try consecutively
- * @param array            $variables     The variables to pass to the template
- * @param bool             $withContext
- * @param bool             $ignoreMissing Whether to ignore missing templates or not
- * @param bool             $sandboxed     Whether to sandbox the template or not
- *
- * @return string The rendered template
- */
-function twig_include(Twig_Environment $env, $context, $template, $variables = array(), $withContext = true, $ignoreMissing = false, $sandboxed = false)
-{
-    $alreadySandboxed = false;
-    $sandbox = null;
-    if ($withContext) {
-        $variables = array_merge($context, $variables);
-    }
-
-    if ($isSandboxed = $sandboxed && $env->hasExtension('sandbox')) {
-        $sandbox = $env->getExtension('sandbox');
-        if (!$alreadySandboxed = $sandbox->isSandboxed()) {
-            $sandbox->enableSandbox();
-        }
-    }
-
-    $result = null;
-    try {
-        $result = $env->resolveTemplate($template)->render($variables);
-    } catch (Twig_Error_Loader $e) {
-        if (!$ignoreMissing) {
-            if ($isSandboxed && !$alreadySandboxed) {
-                $sandbox->disableSandbox();
-            }
-
-            throw $e;
-        }
-    }
-
-    if ($isSandboxed && !$alreadySandboxed) {
-        $sandbox->disableSandbox();
-    }
-
-    return $result;
-}
-
-/**
- * Returns a template content without rendering it.
- *
- * @param string $name          The template name
- * @param bool   $ignoreMissing Whether to ignore missing templates or not
- *
- * @return string The template source
- */
-function twig_source(Twig_Environment $env, $name, $ignoreMissing = false)
-{
-    try {
-        return $env->getLoader()->getSource($name);
-    } catch (Twig_Error_Loader $e) {
-        if (!$ignoreMissing) {
-            throw $e;
-        }
-    }
-}
-
-/**
- * Provides the ability to get constants from instances as well as class/global constants.
- *
- * @param string      $constant The name of the constant
- * @param null|object $object   The object to get the constant from
- *
- * @return string
- */
-function twig_constant($constant, $object = null)
-{
-    if (null !== $object) {
-        $constant = get_class($object).'::'.$constant;
-    }
-
-    return constant($constant);
-}
-
-/**
- * Batches item.
- *
- * @param array   $items An array of items
- * @param int     $size  The size of the batch
- * @param mixed   $fill  A value used to fill missing items
- *
- * @return array
- */
-function twig_array_batch($items, $size, $fill = null)
-{
-    if ($items instanceof Traversable) {
-        $items = iterator_to_array($items, false);
-    }
-
-    $size = ceil($size);
-
-    $result = array_chunk($items, $size, true);
-
-    if (null !== $fill && !empty($result)) {
-        $last = count($result) - 1;
-        if ($fillCount = $size - count($result[$last])) {
-            $result[$last] = array_merge(
-                $result[$last],
-                array_fill(0, $fillCount, $fill)
-            );
-        }
-    }
-
-    return $result;
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Debug.php b/core/vendor/twig/twig/lib/Twig/Extension/Debug.php
deleted file mode 100644
index 86d07c2..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Debug.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Extension_Debug extends Twig_Extension
-{
-    /**
-     * Returns a list of global functions to add to the existing list.
-     *
-     * @return array An array of global functions
-     */
-    public function getFunctions()
-    {
-        // dump is safe if var_dump is overridden by xdebug
-        $isDumpOutputHtmlSafe = extension_loaded('xdebug')
-            // false means that it was not set (and the default is on) or it explicitly enabled
-            && (false === ini_get('xdebug.overload_var_dump') || ini_get('xdebug.overload_var_dump'))
-            // false means that it was not set (and the default is on) or it explicitly enabled
-            // xdebug.overload_var_dump produces HTML only when html_errors is also enabled
-            && (false === ini_get('html_errors') || ini_get('html_errors'))
-            || 'cli' === php_sapi_name()
-        ;
-
-        return array(
-            new Twig_SimpleFunction('dump', 'twig_var_dump', array('is_safe' => $isDumpOutputHtmlSafe ? array('html') : array(), 'needs_context' => true, 'needs_environment' => true)),
-        );
-    }
-
-    /**
-     * Returns the name of the extension.
-     *
-     * @return string The extension name
-     */
-    public function getName()
-    {
-        return 'debug';
-    }
-}
-
-function twig_var_dump(Twig_Environment $env, $context)
-{
-    if (!$env->isDebug()) {
-        return;
-    }
-
-    ob_start();
-
-    $count = func_num_args();
-    if (2 === $count) {
-        $vars = array();
-        foreach ($context as $key => $value) {
-            if (!$value instanceof Twig_Template) {
-                $vars[$key] = $value;
-            }
-        }
-
-        var_dump($vars);
-    } else {
-        for ($i = 2; $i < $count; ++$i) {
-            var_dump(func_get_arg($i));
-        }
-    }
-
-    return ob_get_clean();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Escaper.php b/core/vendor/twig/twig/lib/Twig/Extension/Escaper.php
deleted file mode 100644
index cf2020e..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Escaper.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Extension_Escaper extends Twig_Extension
-{
-    protected $defaultStrategy;
-
-    public function __construct($defaultStrategy = 'html')
-    {
-        $this->setDefaultStrategy($defaultStrategy);
-    }
-
-    /**
-     * Returns the token parser instances to add to the existing list.
-     *
-     * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
-     */
-    public function getTokenParsers()
-    {
-        return array(new Twig_TokenParser_AutoEscape());
-    }
-
-    /**
-     * Returns the node visitor instances to add to the existing list.
-     *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
-     */
-    public function getNodeVisitors()
-    {
-        return array(new Twig_NodeVisitor_Escaper());
-    }
-
-    /**
-     * Returns a list of filters to add to the existing list.
-     *
-     * @return array An array of filters
-     */
-    public function getFilters()
-    {
-        return array(
-            new Twig_SimpleFilter('raw', 'twig_raw_filter', array('is_safe' => array('all'))),
-        );
-    }
-
-    /**
-     * Sets the default strategy to use when not defined by the user.
-     *
-     * The strategy can be a valid PHP callback that takes the template
-     * "filename" as an argument and returns the strategy to use.
-     *
-     * @param mixed $defaultStrategy An escaping strategy
-     */
-    public function setDefaultStrategy($defaultStrategy)
-    {
-        // for BC
-        if (true === $defaultStrategy) {
-            $defaultStrategy = 'html';
-        }
-
-        if ('filename' === $defaultStrategy) {
-            $defaultStrategy = array('Twig_FileExtensionEscapingStrategy', 'guess');
-        }
-
-        $this->defaultStrategy = $defaultStrategy;
-    }
-
-    /**
-     * Gets the default strategy to use when not defined by the user.
-     *
-     * @param string $filename The template "filename"
-     *
-     * @return string The default strategy to use for the template
-     */
-    public function getDefaultStrategy($filename)
-    {
-        // disable string callables to avoid calling a function named html or js,
-        // or any other upcoming escaping strategy
-        if (!is_string($this->defaultStrategy) && is_callable($this->defaultStrategy)) {
-            return call_user_func($this->defaultStrategy, $filename);
-        }
-
-        return $this->defaultStrategy;
-    }
-
-    /**
-     * Returns the name of the extension.
-     *
-     * @return string The extension name
-     */
-    public function getName()
-    {
-        return 'escaper';
-    }
-}
-
-/**
- * Marks a variable as being safe.
- *
- * @param string $string A PHP variable
- *
- * @return string
- */
-function twig_raw_filter($string)
-{
-    return $string;
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Optimizer.php b/core/vendor/twig/twig/lib/Twig/Extension/Optimizer.php
deleted file mode 100644
index 013fcb6..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Optimizer.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Extension_Optimizer extends Twig_Extension
-{
-    protected $optimizers;
-
-    public function __construct($optimizers = -1)
-    {
-        $this->optimizers = $optimizers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNodeVisitors()
-    {
-        return array(new Twig_NodeVisitor_Optimizer($this->optimizers));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'optimizer';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Profiler.php b/core/vendor/twig/twig/lib/Twig/Extension/Profiler.php
deleted file mode 100644
index 35e04a0..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Profiler.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Extension_Profiler extends Twig_Extension
-{
-    private $actives;
-
-    public function __construct(Twig_Profiler_Profile $profile)
-    {
-        $this->actives = array($profile);
-    }
-
-    public function enter(Twig_Profiler_Profile $profile)
-    {
-        $this->actives[0]->addProfile($profile);
-        array_unshift($this->actives, $profile);
-    }
-
-    public function leave(Twig_Profiler_Profile $profile)
-    {
-        $profile->leave();
-        array_shift($this->actives);
-
-        if (1 === count($this->actives)) {
-            $this->actives[0]->leave();
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNodeVisitors()
-    {
-        return array(new Twig_Profiler_NodeVisitor_Profiler($this->getName()));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'profiler';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Sandbox.php b/core/vendor/twig/twig/lib/Twig/Extension/Sandbox.php
deleted file mode 100644
index 3593e9e..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Sandbox.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Extension_Sandbox extends Twig_Extension
-{
-    protected $sandboxedGlobally;
-    protected $sandboxed;
-    protected $policy;
-
-    public function __construct(Twig_Sandbox_SecurityPolicyInterface $policy, $sandboxed = false)
-    {
-        $this->policy = $policy;
-        $this->sandboxedGlobally = $sandboxed;
-    }
-
-    /**
-     * Returns the token parser instances to add to the existing list.
-     *
-     * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
-     */
-    public function getTokenParsers()
-    {
-        return array(new Twig_TokenParser_Sandbox());
-    }
-
-    /**
-     * Returns the node visitor instances to add to the existing list.
-     *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
-     */
-    public function getNodeVisitors()
-    {
-        return array(new Twig_NodeVisitor_Sandbox());
-    }
-
-    public function enableSandbox()
-    {
-        $this->sandboxed = true;
-    }
-
-    public function disableSandbox()
-    {
-        $this->sandboxed = false;
-    }
-
-    public function isSandboxed()
-    {
-        return $this->sandboxedGlobally || $this->sandboxed;
-    }
-
-    public function isSandboxedGlobally()
-    {
-        return $this->sandboxedGlobally;
-    }
-
-    public function setSecurityPolicy(Twig_Sandbox_SecurityPolicyInterface $policy)
-    {
-        $this->policy = $policy;
-    }
-
-    public function getSecurityPolicy()
-    {
-        return $this->policy;
-    }
-
-    public function checkSecurity($tags, $filters, $functions)
-    {
-        if ($this->isSandboxed()) {
-            $this->policy->checkSecurity($tags, $filters, $functions);
-        }
-    }
-
-    public function checkMethodAllowed($obj, $method)
-    {
-        if ($this->isSandboxed()) {
-            $this->policy->checkMethodAllowed($obj, $method);
-        }
-    }
-
-    public function checkPropertyAllowed($obj, $method)
-    {
-        if ($this->isSandboxed()) {
-            $this->policy->checkPropertyAllowed($obj, $method);
-        }
-    }
-
-    public function ensureToStringAllowed($obj)
-    {
-        if ($this->isSandboxed() && is_object($obj)) {
-            $this->policy->checkMethodAllowed($obj, '__toString');
-        }
-
-        return $obj;
-    }
-
-    /**
-     * Returns the name of the extension.
-     *
-     * @return string The extension name
-     */
-    public function getName()
-    {
-        return 'sandbox';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/Staging.php b/core/vendor/twig/twig/lib/Twig/Extension/Staging.php
deleted file mode 100644
index 8ab0f45..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/Staging.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Internal class.
- *
- * This class is used by Twig_Environment as a staging area and must not be used directly.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Extension_Staging extends Twig_Extension
-{
-    protected $functions = array();
-    protected $filters = array();
-    protected $visitors = array();
-    protected $tokenParsers = array();
-    protected $globals = array();
-    protected $tests = array();
-
-    public function addFunction($name, $function)
-    {
-        $this->functions[$name] = $function;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFunctions()
-    {
-        return $this->functions;
-    }
-
-    public function addFilter($name, $filter)
-    {
-        $this->filters[$name] = $filter;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFilters()
-    {
-        return $this->filters;
-    }
-
-    public function addNodeVisitor(Twig_NodeVisitorInterface $visitor)
-    {
-        $this->visitors[] = $visitor;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getNodeVisitors()
-    {
-        return $this->visitors;
-    }
-
-    public function addTokenParser(Twig_TokenParserInterface $parser)
-    {
-        $this->tokenParsers[] = $parser;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTokenParsers()
-    {
-        return $this->tokenParsers;
-    }
-
-    public function addGlobal($name, $value)
-    {
-        $this->globals[$name] = $value;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getGlobals()
-    {
-        return $this->globals;
-    }
-
-    public function addTest($name, $test)
-    {
-        $this->tests[$name] = $test;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getTests()
-    {
-        return $this->tests;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'staging';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Extension/StringLoader.php b/core/vendor/twig/twig/lib/Twig/Extension/StringLoader.php
deleted file mode 100644
index 4e1a546..0000000
--- a/core/vendor/twig/twig/lib/Twig/Extension/StringLoader.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Extension_StringLoader extends Twig_Extension
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getFunctions()
-    {
-        return array(
-            new Twig_SimpleFunction('template_from_string', 'twig_template_from_string', array('needs_environment' => true)),
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getName()
-    {
-        return 'string_loader';
-    }
-}
-
-/**
- * Loads a template from a string.
- *
- * <pre>
- * {{ include(template_from_string("Hello {{ name }}")) }}
- * </pre>
- *
- * @param Twig_Environment $env      A Twig_Environment instance
- * @param string           $template A template as a string
- *
- * @return Twig_Template A Twig_Template instance
- */
-function twig_template_from_string(Twig_Environment $env, $template)
-{
-    return $env->createTemplate($template);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php b/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php
deleted file mode 100644
index 49541b0..0000000
--- a/core/vendor/twig/twig/lib/Twig/ExtensionInterface.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by extension classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface Twig_ExtensionInterface
-{
-    /**
-     * Initializes the runtime environment.
-     *
-     * This is where you can load some file that contains filter functions for instance.
-     *
-     * @param Twig_Environment $environment The current Twig_Environment instance
-     */
-    public function initRuntime(Twig_Environment $environment);
-
-    /**
-     * Returns the token parser instances to add to the existing list.
-     *
-     * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
-     */
-    public function getTokenParsers();
-
-    /**
-     * Returns the node visitor instances to add to the existing list.
-     *
-     * @return Twig_NodeVisitorInterface[] An array of Twig_NodeVisitorInterface instances
-     */
-    public function getNodeVisitors();
-
-    /**
-     * Returns a list of filters to add to the existing list.
-     *
-     * @return array An array of filters
-     */
-    public function getFilters();
-
-    /**
-     * Returns a list of tests to add to the existing list.
-     *
-     * @return array An array of tests
-     */
-    public function getTests();
-
-    /**
-     * Returns a list of functions to add to the existing list.
-     *
-     * @return array An array of functions
-     */
-    public function getFunctions();
-
-    /**
-     * Returns a list of operators to add to the existing list.
-     *
-     * @return array An array of operators
-     */
-    public function getOperators();
-
-    /**
-     * Returns a list of global variables to add to the existing list.
-     *
-     * @return array An array of global variables
-     */
-    public function getGlobals();
-
-    /**
-     * Returns the name of the extension.
-     *
-     * @return string The extension name
-     */
-    public function getName();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php b/core/vendor/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php
deleted file mode 100644
index b1ace7d..0000000
--- a/core/vendor/twig/twig/lib/Twig/FileExtensionEscapingStrategy.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Default autoescaping strategy based on file names.
- *
- * This strategy sets the HTML as the default autoescaping strategy,
- * but changes it based on the filename.
- *
- * Note that there is no runtime performance impact as the
- * default autoescaping strategy is set at compilation time.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_FileExtensionEscapingStrategy
-{
-    /**
-     * Guesses the best autoescaping strategy based on the file name.
-     *
-     * @param string $filename The template file name
-     *
-     * @return string The escaping strategy name to use
-     */
-    public static function guess($filename)
-    {
-        if (!preg_match('{\.(js|css|txt)(?:\.[^/\\\\]+)?$}', $filename, $match)) {
-            return 'html';
-        }
-
-        switch ($match[1]) {
-            case 'js':
-                return 'js';
-
-            case 'css':
-                return 'css';
-
-            case 'txt':
-                return false;
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Filter.php b/core/vendor/twig/twig/lib/Twig/Filter.php
deleted file mode 100644
index a6e923d..0000000
--- a/core/vendor/twig/twig/lib/Twig/Filter.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template filter.
- *
- * Use Twig_SimpleFilter instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-abstract class Twig_Filter implements Twig_FilterInterface, Twig_FilterCallableInterface
-{
-    protected $options;
-    protected $arguments = array();
-
-    public function __construct(array $options = array())
-    {
-        $this->options = array_merge(array(
-            'needs_environment' => false,
-            'needs_context' => false,
-            'pre_escape' => null,
-            'preserves_safety' => null,
-            'callable' => null,
-        ), $options);
-    }
-
-    public function setArguments($arguments)
-    {
-        $this->arguments = $arguments;
-    }
-
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    public function needsEnvironment()
-    {
-        return $this->options['needs_environment'];
-    }
-
-    public function needsContext()
-    {
-        return $this->options['needs_context'];
-    }
-
-    public function getSafe(Twig_Node $filterArgs)
-    {
-        if (isset($this->options['is_safe'])) {
-            return $this->options['is_safe'];
-        }
-
-        if (isset($this->options['is_safe_callback'])) {
-            return call_user_func($this->options['is_safe_callback'], $filterArgs);
-        }
-    }
-
-    public function getPreservesSafety()
-    {
-        return $this->options['preserves_safety'];
-    }
-
-    public function getPreEscape()
-    {
-        return $this->options['pre_escape'];
-    }
-
-    public function getCallable()
-    {
-        return $this->options['callable'];
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Filter/Function.php b/core/vendor/twig/twig/lib/Twig/Filter/Function.php
deleted file mode 100644
index 45c14c7..0000000
--- a/core/vendor/twig/twig/lib/Twig/Filter/Function.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a function template filter.
- *
- * Use Twig_SimpleFilter instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Filter_Function extends Twig_Filter
-{
-    protected $function;
-
-    public function __construct($function, array $options = array())
-    {
-        $options['callable'] = $function;
-
-        parent::__construct($options);
-
-        $this->function = $function;
-    }
-
-    public function compile()
-    {
-        return $this->function;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Filter/Method.php b/core/vendor/twig/twig/lib/Twig/Filter/Method.php
deleted file mode 100644
index f32435f..0000000
--- a/core/vendor/twig/twig/lib/Twig/Filter/Method.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a method template filter.
- *
- * Use Twig_SimpleFilter instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Filter_Method extends Twig_Filter
-{
-    protected $extension;
-    protected $method;
-
-    public function __construct(Twig_ExtensionInterface $extension, $method, array $options = array())
-    {
-        $options['callable'] = array($extension, $method);
-
-        parent::__construct($options);
-
-        $this->extension = $extension;
-        $this->method = $method;
-    }
-
-    public function compile()
-    {
-        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Filter/Node.php b/core/vendor/twig/twig/lib/Twig/Filter/Node.php
deleted file mode 100644
index efbcc29..0000000
--- a/core/vendor/twig/twig/lib/Twig/Filter/Node.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template filter as a node.
- *
- * Use Twig_SimpleFilter instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Filter_Node extends Twig_Filter
-{
-    protected $class;
-
-    public function __construct($class, array $options = array())
-    {
-        parent::__construct($options);
-
-        $this->class = $class;
-    }
-
-    public function getClass()
-    {
-        return $this->class;
-    }
-
-    public function compile()
-    {
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php b/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
deleted file mode 100644
index 5679861..0000000
--- a/core/vendor/twig/twig/lib/Twig/FilterCallableInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a callable template filter.
- *
- * Use Twig_SimpleFilter instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_FilterCallableInterface
-{
-    public function getCallable();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/FilterInterface.php b/core/vendor/twig/twig/lib/Twig/FilterInterface.php
deleted file mode 100644
index 6b0be0e..0000000
--- a/core/vendor/twig/twig/lib/Twig/FilterInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template filter.
- *
- * Use Twig_SimpleFilter instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_FilterInterface
-{
-    /**
-     * Compiles a filter.
-     *
-     * @return string The PHP code for the filter
-     */
-    public function compile();
-
-    public function needsEnvironment();
-
-    public function needsContext();
-
-    public function getSafe(Twig_Node $filterArgs);
-
-    public function getPreservesSafety();
-
-    public function getPreEscape();
-
-    public function setArguments($arguments);
-
-    public function getArguments();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Function.php b/core/vendor/twig/twig/lib/Twig/Function.php
deleted file mode 100644
index 0f6ac97..0000000
--- a/core/vendor/twig/twig/lib/Twig/Function.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template function.
- *
- * Use Twig_SimpleFunction instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-abstract class Twig_Function implements Twig_FunctionInterface, Twig_FunctionCallableInterface
-{
-    protected $options;
-    protected $arguments = array();
-
-    public function __construct(array $options = array())
-    {
-        $this->options = array_merge(array(
-            'needs_environment' => false,
-            'needs_context' => false,
-            'callable' => null,
-        ), $options);
-    }
-
-    public function setArguments($arguments)
-    {
-        $this->arguments = $arguments;
-    }
-
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    public function needsEnvironment()
-    {
-        return $this->options['needs_environment'];
-    }
-
-    public function needsContext()
-    {
-        return $this->options['needs_context'];
-    }
-
-    public function getSafe(Twig_Node $functionArgs)
-    {
-        if (isset($this->options['is_safe'])) {
-            return $this->options['is_safe'];
-        }
-
-        if (isset($this->options['is_safe_callback'])) {
-            return call_user_func($this->options['is_safe_callback'], $functionArgs);
-        }
-
-        return array();
-    }
-
-    public function getCallable()
-    {
-        return $this->options['callable'];
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Function/Function.php b/core/vendor/twig/twig/lib/Twig/Function/Function.php
deleted file mode 100644
index e7f3845..0000000
--- a/core/vendor/twig/twig/lib/Twig/Function/Function.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a function template function.
- *
- * Use Twig_SimpleFunction instead.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Function_Function extends Twig_Function
-{
-    protected $function;
-
-    public function __construct($function, array $options = array())
-    {
-        $options['callable'] = $function;
-
-        parent::__construct($options);
-
-        $this->function = $function;
-    }
-
-    public function compile()
-    {
-        return $this->function;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Function/Method.php b/core/vendor/twig/twig/lib/Twig/Function/Method.php
deleted file mode 100644
index 17a7bd8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Function/Method.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a method template function.
- *
- * Use Twig_SimpleFunction instead.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Function_Method extends Twig_Function
-{
-    protected $extension;
-    protected $method;
-
-    public function __construct(Twig_ExtensionInterface $extension, $method, array $options = array())
-    {
-        $options['callable'] = array($extension, $method);
-
-        parent::__construct($options);
-
-        $this->extension = $extension;
-        $this->method = $method;
-    }
-
-    public function compile()
-    {
-        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Function/Node.php b/core/vendor/twig/twig/lib/Twig/Function/Node.php
deleted file mode 100644
index 550a379..0000000
--- a/core/vendor/twig/twig/lib/Twig/Function/Node.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template function as a node.
- *
- * Use Twig_SimpleFunction instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Function_Node extends Twig_Function
-{
-    protected $class;
-
-    public function __construct($class, array $options = array())
-    {
-        parent::__construct($options);
-
-        $this->class = $class;
-    }
-
-    public function getClass()
-    {
-        return $this->class;
-    }
-
-    public function compile()
-    {
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php b/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
deleted file mode 100644
index 87d795e..0000000
--- a/core/vendor/twig/twig/lib/Twig/FunctionCallableInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a callable template function.
- *
- * Use Twig_SimpleFunction instead.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_FunctionCallableInterface
-{
-    public function getCallable();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/FunctionInterface.php b/core/vendor/twig/twig/lib/Twig/FunctionInterface.php
deleted file mode 100644
index f449234..0000000
--- a/core/vendor/twig/twig/lib/Twig/FunctionInterface.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template function.
- *
- * Use Twig_SimpleFunction instead.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_FunctionInterface
-{
-    /**
-     * Compiles a function.
-     *
-     * @return string The PHP code for the function
-     */
-    public function compile();
-
-    public function needsEnvironment();
-
-    public function needsContext();
-
-    public function getSafe(Twig_Node $filterArgs);
-
-    public function setArguments($arguments);
-
-    public function getArguments();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Lexer.php b/core/vendor/twig/twig/lib/Twig/Lexer.php
deleted file mode 100644
index d03a1bf..0000000
--- a/core/vendor/twig/twig/lib/Twig/Lexer.php
+++ /dev/null
@@ -1,407 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Lexes a template string.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Lexer implements Twig_LexerInterface
-{
-    protected $tokens;
-    protected $code;
-    protected $cursor;
-    protected $lineno;
-    protected $end;
-    protected $state;
-    protected $states;
-    protected $brackets;
-    protected $env;
-    protected $filename;
-    protected $options;
-    protected $regexes;
-    protected $position;
-    protected $positions;
-    protected $currentVarBlockLine;
-
-    const STATE_DATA = 0;
-    const STATE_BLOCK = 1;
-    const STATE_VAR = 2;
-    const STATE_STRING = 3;
-    const STATE_INTERPOLATION = 4;
-
-    const REGEX_NAME = '/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A';
-    const REGEX_NUMBER = '/[0-9]+(?:\.[0-9]+)?/A';
-    const REGEX_STRING = '/"([^#"\\\\]*(?:\\\\.[^#"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'/As';
-    const REGEX_DQ_STRING_DELIM = '/"/A';
-    const REGEX_DQ_STRING_PART = '/[^#"\\\\]*(?:(?:\\\\.|#(?!\{))[^#"\\\\]*)*/As';
-    const PUNCTUATION = '()[]{}?:.,|';
-
-    public function __construct(Twig_Environment $env, array $options = array())
-    {
-        $this->env = $env;
-
-        $this->options = array_merge(array(
-            'tag_comment' => array('{#', '#}'),
-            'tag_block' => array('{%', '%}'),
-            'tag_variable' => array('{{', '}}'),
-            'whitespace_trim' => '-',
-            'interpolation' => array('#{', '}'),
-        ), $options);
-
-        $this->regexes = array(
-            'lex_var' => '/\s*'.preg_quote($this->options['whitespace_trim'].$this->options['tag_variable'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_variable'][1], '/').'/A',
-            'lex_block' => '/\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')\n?/A',
-            'lex_raw_data' => '/('.preg_quote($this->options['tag_block'][0].$this->options['whitespace_trim'], '/').'|'.preg_quote($this->options['tag_block'][0], '/').')\s*(?:end%s)\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/s',
-            'operator' => $this->getOperatorRegex(),
-            'lex_comment' => '/(?:'.preg_quote($this->options['whitespace_trim'], '/').preg_quote($this->options['tag_comment'][1], '/').'\s*|'.preg_quote($this->options['tag_comment'][1], '/').')\n?/s',
-            'lex_block_raw' => '/\s*(raw|verbatim)\s*(?:'.preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '/').'\s*|\s*'.preg_quote($this->options['tag_block'][1], '/').')/As',
-            'lex_block_line' => '/\s*line\s+(\d+)\s*'.preg_quote($this->options['tag_block'][1], '/').'/As',
-            'lex_tokens_start' => '/('.preg_quote($this->options['tag_variable'][0], '/').'|'.preg_quote($this->options['tag_block'][0], '/').'|'.preg_quote($this->options['tag_comment'][0], '/').')('.preg_quote($this->options['whitespace_trim'], '/').')?/s',
-            'interpolation_start' => '/'.preg_quote($this->options['interpolation'][0], '/').'\s*/A',
-            'interpolation_end' => '/\s*'.preg_quote($this->options['interpolation'][1], '/').'/A',
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function tokenize($code, $filename = null)
-    {
-        if (function_exists('mb_internal_encoding') && ((int) ini_get('mbstring.func_overload')) & 2) {
-            $mbEncoding = mb_internal_encoding();
-            mb_internal_encoding('ASCII');
-        } else {
-            $mbEncoding = null;
-        }
-
-        $this->code = str_replace(array("\r\n", "\r"), "\n", $code);
-        $this->filename = $filename;
-        $this->cursor = 0;
-        $this->lineno = 1;
-        $this->end = strlen($this->code);
-        $this->tokens = array();
-        $this->state = self::STATE_DATA;
-        $this->states = array();
-        $this->brackets = array();
-        $this->position = -1;
-
-        // find all token starts in one go
-        preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE);
-        $this->positions = $matches;
-
-        while ($this->cursor < $this->end) {
-            // dispatch to the lexing functions depending
-            // on the current state
-            switch ($this->state) {
-                case self::STATE_DATA:
-                    $this->lexData();
-                    break;
-
-                case self::STATE_BLOCK:
-                    $this->lexBlock();
-                    break;
-
-                case self::STATE_VAR:
-                    $this->lexVar();
-                    break;
-
-                case self::STATE_STRING:
-                    $this->lexString();
-                    break;
-
-                case self::STATE_INTERPOLATION:
-                    $this->lexInterpolation();
-                    break;
-            }
-        }
-
-        $this->pushToken(Twig_Token::EOF_TYPE);
-
-        if (!empty($this->brackets)) {
-            list($expect, $lineno) = array_pop($this->brackets);
-            throw new Twig_Error_Syntax(sprintf('Unclosed "%s"', $expect), $lineno, $this->filename);
-        }
-
-        if ($mbEncoding) {
-            mb_internal_encoding($mbEncoding);
-        }
-
-        return new Twig_TokenStream($this->tokens, $this->filename);
-    }
-
-    protected function lexData()
-    {
-        // if no matches are left we return the rest of the template as simple text token
-        if ($this->position == count($this->positions[0]) - 1) {
-            $this->pushToken(Twig_Token::TEXT_TYPE, substr($this->code, $this->cursor));
-            $this->cursor = $this->end;
-
-            return;
-        }
-
-        // Find the first token after the current cursor
-        $position = $this->positions[0][++$this->position];
-        while ($position[1] < $this->cursor) {
-            if ($this->position == count($this->positions[0]) - 1) {
-                return;
-            }
-            $position = $this->positions[0][++$this->position];
-        }
-
-        // push the template text first
-        $text = $textContent = substr($this->code, $this->cursor, $position[1] - $this->cursor);
-        if (isset($this->positions[2][$this->position][0])) {
-            $text = rtrim($text);
-        }
-        $this->pushToken(Twig_Token::TEXT_TYPE, $text);
-        $this->moveCursor($textContent.$position[0]);
-
-        switch ($this->positions[1][$this->position][0]) {
-            case $this->options['tag_comment'][0]:
-                $this->lexComment();
-                break;
-
-            case $this->options['tag_block'][0]:
-                // raw data?
-                if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) {
-                    $this->moveCursor($match[0]);
-                    $this->lexRawData($match[1]);
-                // {% line \d+ %}
-                } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) {
-                    $this->moveCursor($match[0]);
-                    $this->lineno = (int) $match[1];
-                } else {
-                    $this->pushToken(Twig_Token::BLOCK_START_TYPE);
-                    $this->pushState(self::STATE_BLOCK);
-                    $this->currentVarBlockLine = $this->lineno;
-                }
-                break;
-
-            case $this->options['tag_variable'][0]:
-                $this->pushToken(Twig_Token::VAR_START_TYPE);
-                $this->pushState(self::STATE_VAR);
-                $this->currentVarBlockLine = $this->lineno;
-                break;
-        }
-    }
-
-    protected function lexBlock()
-    {
-        if (empty($this->brackets) && preg_match($this->regexes['lex_block'], $this->code, $match, null, $this->cursor)) {
-            $this->pushToken(Twig_Token::BLOCK_END_TYPE);
-            $this->moveCursor($match[0]);
-            $this->popState();
-        } else {
-            $this->lexExpression();
-        }
-    }
-
-    protected function lexVar()
-    {
-        if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) {
-            $this->pushToken(Twig_Token::VAR_END_TYPE);
-            $this->moveCursor($match[0]);
-            $this->popState();
-        } else {
-            $this->lexExpression();
-        }
-    }
-
-    protected function lexExpression()
-    {
-        // whitespace
-        if (preg_match('/\s+/A', $this->code, $match, null, $this->cursor)) {
-            $this->moveCursor($match[0]);
-
-            if ($this->cursor >= $this->end) {
-                throw new Twig_Error_Syntax(sprintf('Unclosed "%s"', $this->state === self::STATE_BLOCK ? 'block' : 'variable'), $this->currentVarBlockLine, $this->filename);
-            }
-        }
-
-        // operators
-        if (preg_match($this->regexes['operator'], $this->code, $match, null, $this->cursor)) {
-            $this->pushToken(Twig_Token::OPERATOR_TYPE, preg_replace('/\s+/', ' ', $match[0]));
-            $this->moveCursor($match[0]);
-        }
-        // names
-        elseif (preg_match(self::REGEX_NAME, $this->code, $match, null, $this->cursor)) {
-            $this->pushToken(Twig_Token::NAME_TYPE, $match[0]);
-            $this->moveCursor($match[0]);
-        }
-        // numbers
-        elseif (preg_match(self::REGEX_NUMBER, $this->code, $match, null, $this->cursor)) {
-            $number = (float) $match[0];  // floats
-            if (ctype_digit($match[0]) && $number <= PHP_INT_MAX) {
-                $number = (int) $match[0]; // integers lower than the maximum
-            }
-            $this->pushToken(Twig_Token::NUMBER_TYPE, $number);
-            $this->moveCursor($match[0]);
-        }
-        // punctuation
-        elseif (false !== strpos(self::PUNCTUATION, $this->code[$this->cursor])) {
-            // opening bracket
-            if (false !== strpos('([{', $this->code[$this->cursor])) {
-                $this->brackets[] = array($this->code[$this->cursor], $this->lineno);
-            }
-            // closing bracket
-            elseif (false !== strpos(')]}', $this->code[$this->cursor])) {
-                if (empty($this->brackets)) {
-                    throw new Twig_Error_Syntax(sprintf('Unexpected "%s"', $this->code[$this->cursor]), $this->lineno, $this->filename);
-                }
-
-                list($expect, $lineno) = array_pop($this->brackets);
-                if ($this->code[$this->cursor] != strtr($expect, '([{', ')]}')) {
-                    throw new Twig_Error_Syntax(sprintf('Unclosed "%s"', $expect), $lineno, $this->filename);
-                }
-            }
-
-            $this->pushToken(Twig_Token::PUNCTUATION_TYPE, $this->code[$this->cursor]);
-            ++$this->cursor;
-        }
-        // strings
-        elseif (preg_match(self::REGEX_STRING, $this->code, $match, null, $this->cursor)) {
-            $this->pushToken(Twig_Token::STRING_TYPE, stripcslashes(substr($match[0], 1, -1)));
-            $this->moveCursor($match[0]);
-        }
-        // opening double quoted string
-        elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, null, $this->cursor)) {
-            $this->brackets[] = array('"', $this->lineno);
-            $this->pushState(self::STATE_STRING);
-            $this->moveCursor($match[0]);
-        }
-        // unlexable
-        else {
-            throw new Twig_Error_Syntax(sprintf('Unexpected character "%s"', $this->code[$this->cursor]), $this->lineno, $this->filename);
-        }
-    }
-
-    protected function lexRawData($tag)
-    {
-        if (!preg_match(str_replace('%s', $tag, $this->regexes['lex_raw_data']), $this->code, $match, PREG_OFFSET_CAPTURE, $this->cursor)) {
-            throw new Twig_Error_Syntax(sprintf('Unexpected end of file: Unclosed "%s" block', $tag), $this->lineno, $this->filename);
-        }
-
-        $text = substr($this->code, $this->cursor, $match[0][1] - $this->cursor);
-        $this->moveCursor($text.$match[0][0]);
-
-        if (false !== strpos($match[1][0], $this->options['whitespace_trim'])) {
-            $text = rtrim($text);
-        }
-
-        $this->pushToken(Twig_Token::TEXT_TYPE, $text);
-    }
-
-    protected function lexComment()
-    {
-        if (!preg_match($this->regexes['lex_comment'], $this->code, $match, PREG_OFFSET_CAPTURE, $this->cursor)) {
-            throw new Twig_Error_Syntax('Unclosed comment', $this->lineno, $this->filename);
-        }
-
-        $this->moveCursor(substr($this->code, $this->cursor, $match[0][1] - $this->cursor).$match[0][0]);
-    }
-
-    protected function lexString()
-    {
-        if (preg_match($this->regexes['interpolation_start'], $this->code, $match, null, $this->cursor)) {
-            $this->brackets[] = array($this->options['interpolation'][0], $this->lineno);
-            $this->pushToken(Twig_Token::INTERPOLATION_START_TYPE);
-            $this->moveCursor($match[0]);
-            $this->pushState(self::STATE_INTERPOLATION);
-        } elseif (preg_match(self::REGEX_DQ_STRING_PART, $this->code, $match, null, $this->cursor) && strlen($match[0]) > 0) {
-            $this->pushToken(Twig_Token::STRING_TYPE, stripcslashes($match[0]));
-            $this->moveCursor($match[0]);
-        } elseif (preg_match(self::REGEX_DQ_STRING_DELIM, $this->code, $match, null, $this->cursor)) {
-            list($expect, $lineno) = array_pop($this->brackets);
-            if ($this->code[$this->cursor] != '"') {
-                throw new Twig_Error_Syntax(sprintf('Unclosed "%s"', $expect), $lineno, $this->filename);
-            }
-
-            $this->popState();
-            ++$this->cursor;
-        }
-    }
-
-    protected function lexInterpolation()
-    {
-        $bracket = end($this->brackets);
-        if ($this->options['interpolation'][0] === $bracket[0] && preg_match($this->regexes['interpolation_end'], $this->code, $match, null, $this->cursor)) {
-            array_pop($this->brackets);
-            $this->pushToken(Twig_Token::INTERPOLATION_END_TYPE);
-            $this->moveCursor($match[0]);
-            $this->popState();
-        } else {
-            $this->lexExpression();
-        }
-    }
-
-    protected function pushToken($type, $value = '')
-    {
-        // do not push empty text tokens
-        if (Twig_Token::TEXT_TYPE === $type && '' === $value) {
-            return;
-        }
-
-        $this->tokens[] = new Twig_Token($type, $value, $this->lineno);
-    }
-
-    protected function moveCursor($text)
-    {
-        $this->cursor += strlen($text);
-        $this->lineno += substr_count($text, "\n");
-    }
-
-    protected function getOperatorRegex()
-    {
-        $operators = array_merge(
-            array('='),
-            array_keys($this->env->getUnaryOperators()),
-            array_keys($this->env->getBinaryOperators())
-        );
-
-        $operators = array_combine($operators, array_map('strlen', $operators));
-        arsort($operators);
-
-        $regex = array();
-        foreach ($operators as $operator => $length) {
-            // an operator that ends with a character must be followed by
-            // a whitespace or a parenthesis
-            if (ctype_alpha($operator[$length - 1])) {
-                $r = preg_quote($operator, '/').'(?=[\s()])';
-            } else {
-                $r = preg_quote($operator, '/');
-            }
-
-            // an operator with a space can be any amount of whitespaces
-            $r = preg_replace('/\s+/', '\s+', $r);
-
-            $regex[] = $r;
-        }
-
-        return '/'.implode('|', $regex).'/A';
-    }
-
-    protected function pushState($state)
-    {
-        $this->states[] = $this->state;
-        $this->state = $state;
-    }
-
-    protected function popState()
-    {
-        if (0 === count($this->states)) {
-            throw new Exception('Cannot pop state without a previous state');
-        }
-
-        $this->state = array_pop($this->states);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/LexerInterface.php b/core/vendor/twig/twig/lib/Twig/LexerInterface.php
deleted file mode 100644
index 24a9478..0000000
--- a/core/vendor/twig/twig/lib/Twig/LexerInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by lexer classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 3.0)
- */
-interface Twig_LexerInterface
-{
-    /**
-     * Tokenizes a source code.
-     *
-     * @param string $code     The source code
-     * @param string $filename A unique identifier for the source code
-     *
-     * @return Twig_TokenStream A token stream instance
-     *
-     * @throws Twig_Error_Syntax When the code is syntactically wrong
-     */
-    public function tokenize($code, $filename = null);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/Array.php b/core/vendor/twig/twig/lib/Twig/Loader/Array.php
deleted file mode 100644
index 436edd8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Loader/Array.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Loads a template from an array.
- *
- * When using this loader with a cache mechanism, you should know that a new cache
- * key is generated each time a template content "changes" (the cache key being the
- * source code of the template). If you don't want to see your cache grows out of
- * control, you need to take care of clearing the old cache file by yourself.
- *
- * This loader should only be used for unit testing.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
-{
-    protected $templates = array();
-
-    /**
-     * Constructor.
-     *
-     * @param array $templates An array of templates (keys are the names, and values are the source code)
-     *
-     * @see Twig_Loader
-     */
-    public function __construct(array $templates)
-    {
-        $this->templates = $templates;
-    }
-
-    /**
-     * Adds or overrides a template.
-     *
-     * @param string $name     The template name
-     * @param string $template The template source
-     */
-    public function setTemplate($name, $template)
-    {
-        $this->templates[(string) $name] = $template;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSource($name)
-    {
-        $name = (string) $name;
-        if (!isset($this->templates[$name])) {
-            throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
-        }
-
-        return $this->templates[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function exists($name)
-    {
-        return isset($this->templates[(string) $name]);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCacheKey($name)
-    {
-        $name = (string) $name;
-        if (!isset($this->templates[$name])) {
-            throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
-        }
-
-        return $this->templates[$name];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isFresh($name, $time)
-    {
-        $name = (string) $name;
-        if (!isset($this->templates[$name])) {
-            throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
-        }
-
-        return true;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/Chain.php b/core/vendor/twig/twig/lib/Twig/Loader/Chain.php
deleted file mode 100644
index 7919eda..0000000
--- a/core/vendor/twig/twig/lib/Twig/Loader/Chain.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Loads templates from other loaders.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
-{
-    private $hasSourceCache = array();
-    protected $loaders = array();
-
-    /**
-     * Constructor.
-     *
-     * @param Twig_LoaderInterface[] $loaders An array of loader instances
-     */
-    public function __construct(array $loaders = array())
-    {
-        foreach ($loaders as $loader) {
-            $this->addLoader($loader);
-        }
-    }
-
-    /**
-     * Adds a loader instance.
-     *
-     * @param Twig_LoaderInterface $loader A Loader instance
-     */
-    public function addLoader(Twig_LoaderInterface $loader)
-    {
-        $this->loaders[] = $loader;
-        $this->hasSourceCache = array();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSource($name)
-    {
-        $exceptions = array();
-        foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
-                continue;
-            }
-
-            try {
-                return $loader->getSource($name);
-            } catch (Twig_Error_Loader $e) {
-                $exceptions[] = $e->getMessage();
-            }
-        }
-
-        throw new Twig_Error_Loader(sprintf('Template "%s" is not defined (%s).', $name, implode(', ', $exceptions)));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function exists($name)
-    {
-        $name = (string) $name;
-
-        if (isset($this->hasSourceCache[$name])) {
-            return $this->hasSourceCache[$name];
-        }
-
-        foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExistsLoaderInterface) {
-                if ($loader->exists($name)) {
-                    return $this->hasSourceCache[$name] = true;
-                }
-
-                continue;
-            }
-
-            try {
-                $loader->getSource($name);
-
-                return $this->hasSourceCache[$name] = true;
-            } catch (Twig_Error_Loader $e) {
-            }
-        }
-
-        return $this->hasSourceCache[$name] = false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCacheKey($name)
-    {
-        $exceptions = array();
-        foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
-                continue;
-            }
-
-            try {
-                return $loader->getCacheKey($name);
-            } catch (Twig_Error_Loader $e) {
-                $exceptions[] = get_class($loader).': '.$e->getMessage();
-            }
-        }
-
-        throw new Twig_Error_Loader(sprintf('Template "%s" is not defined (%s).', $name, implode(' ', $exceptions)));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isFresh($name, $time)
-    {
-        $exceptions = array();
-        foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
-                continue;
-            }
-
-            try {
-                return $loader->isFresh($name, $time);
-            } catch (Twig_Error_Loader $e) {
-                $exceptions[] = get_class($loader).': '.$e->getMessage();
-            }
-        }
-
-        throw new Twig_Error_Loader(sprintf('Template "%s" is not defined (%s).', $name, implode(' ', $exceptions)));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php b/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
deleted file mode 100644
index 818a461..0000000
--- a/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
+++ /dev/null
@@ -1,240 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Loads template from the filesystem.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
-{
-    /** Identifier of the main namespace. */
-    const MAIN_NAMESPACE = '__main__';
-
-    protected $paths = array();
-    protected $cache = array();
-
-    /**
-     * Constructor.
-     *
-     * @param string|array $paths A path or an array of paths where to look for templates
-     */
-    public function __construct($paths = array())
-    {
-        if ($paths) {
-            $this->setPaths($paths);
-        }
-    }
-
-    /**
-     * Returns the paths to the templates.
-     *
-     * @param string $namespace A path namespace
-     *
-     * @return array The array of paths where to look for templates
-     */
-    public function getPaths($namespace = self::MAIN_NAMESPACE)
-    {
-        return isset($this->paths[$namespace]) ? $this->paths[$namespace] : array();
-    }
-
-    /**
-     * Returns the path namespaces.
-     *
-     * The main namespace is always defined.
-     *
-     * @return array The array of defined namespaces
-     */
-    public function getNamespaces()
-    {
-        return array_keys($this->paths);
-    }
-
-    /**
-     * Sets the paths where templates are stored.
-     *
-     * @param string|array $paths     A path or an array of paths where to look for templates
-     * @param string       $namespace A path namespace
-     */
-    public function setPaths($paths, $namespace = self::MAIN_NAMESPACE)
-    {
-        if (!is_array($paths)) {
-            $paths = array($paths);
-        }
-
-        $this->paths[$namespace] = array();
-        foreach ($paths as $path) {
-            $this->addPath($path, $namespace);
-        }
-    }
-
-    /**
-     * Adds a path where templates are stored.
-     *
-     * @param string $path      A path where to look for templates
-     * @param string $namespace A path name
-     *
-     * @throws Twig_Error_Loader
-     */
-    public function addPath($path, $namespace = self::MAIN_NAMESPACE)
-    {
-        // invalidate the cache
-        $this->cache = array();
-
-        if (!is_dir($path)) {
-            throw new Twig_Error_Loader(sprintf('The "%s" directory does not exist.', $path));
-        }
-
-        $this->paths[$namespace][] = rtrim($path, '/\\');
-    }
-
-    /**
-     * Prepends a path where templates are stored.
-     *
-     * @param string $path      A path where to look for templates
-     * @param string $namespace A path name
-     *
-     * @throws Twig_Error_Loader
-     */
-    public function prependPath($path, $namespace = self::MAIN_NAMESPACE)
-    {
-        // invalidate the cache
-        $this->cache = array();
-
-        if (!is_dir($path)) {
-            throw new Twig_Error_Loader(sprintf('The "%s" directory does not exist.', $path));
-        }
-
-        $path = rtrim($path, '/\\');
-
-        if (!isset($this->paths[$namespace])) {
-            $this->paths[$namespace][] = $path;
-        } else {
-            array_unshift($this->paths[$namespace], $path);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSource($name)
-    {
-        return file_get_contents($this->findTemplate($name));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCacheKey($name)
-    {
-        return $this->findTemplate($name);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function exists($name)
-    {
-        $name = $this->normalizeName($name);
-
-        if (isset($this->cache[$name])) {
-            return true;
-        }
-
-        try {
-            $this->findTemplate($name);
-
-            return true;
-        } catch (Twig_Error_Loader $exception) {
-            return false;
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isFresh($name, $time)
-    {
-        return filemtime($this->findTemplate($name)) <= $time;
-    }
-
-    protected function findTemplate($name)
-    {
-        $name = $this->normalizeName($name);
-
-        if (isset($this->cache[$name])) {
-            return $this->cache[$name];
-        }
-
-        $this->validateName($name);
-
-        list($namespace, $shortname) = $this->parseName($name);
-
-        if (!isset($this->paths[$namespace])) {
-            throw new Twig_Error_Loader(sprintf('There are no registered paths for namespace "%s".', $namespace));
-        }
-
-        foreach ($this->paths[$namespace] as $path) {
-            if (is_file($path.'/'.$shortname)) {
-                if (false !== $realpath = realpath($path.'/'.$shortname)) {
-                    return $this->cache[$name] = $realpath;
-                }
-
-                return $this->cache[$name] = $path.'/'.$shortname;
-            }
-        }
-
-        throw new Twig_Error_Loader(sprintf('Unable to find template "%s" (looked into: %s).', $name, implode(', ', $this->paths[$namespace])));
-    }
-
-    protected function parseName($name, $default = self::MAIN_NAMESPACE)
-    {
-        if (isset($name[0]) && '@' == $name[0]) {
-            if (false === $pos = strpos($name, '/')) {
-                throw new Twig_Error_Loader(sprintf('Malformed namespaced template name "%s" (expecting "@namespace/template_name").', $name));
-            }
-
-            $namespace = substr($name, 1, $pos - 1);
-            $shortname = substr($name, $pos + 1);
-
-            return array($namespace, $shortname);
-        }
-
-        return array($default, $name);
-    }
-
-    protected function normalizeName($name)
-    {
-        return preg_replace('#/{2,}#', '/', strtr((string) $name, '\\', '/'));
-    }
-
-    protected function validateName($name)
-    {
-        if (false !== strpos($name, "\0")) {
-            throw new Twig_Error_Loader('A template name cannot contain NUL bytes.');
-        }
-
-        $name = ltrim($name, '/');
-        $parts = explode('/', $name);
-        $level = 0;
-        foreach ($parts as $part) {
-            if ('..' === $part) {
-                --$level;
-            } elseif ('.' !== $part) {
-                ++$level;
-            }
-
-            if ($level < 0) {
-                throw new Twig_Error_Loader(sprintf('Looks like you try to load a template outside configured directories (%s).', $name));
-            }
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Loader/String.php b/core/vendor/twig/twig/lib/Twig/Loader/String.php
deleted file mode 100644
index 63d6890..0000000
--- a/core/vendor/twig/twig/lib/Twig/Loader/String.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Loads a template from a string.
- *
- * This loader should NEVER be used. It only exists for Twig internal purposes.
- *
- * When using this loader with a cache mechanism, you should know that a new cache
- * key is generated each time a template content "changes" (the cache key being the
- * source code of the template). If you don't want to see your cache grows out of
- * control, you need to take care of clearing the old cache file by yourself.
- *
- * @deprecated since 1.18.1 (to be removed in 2.0)
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Loader_String implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function getSource($name)
-    {
-        return $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function exists($name)
-    {
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCacheKey($name)
-    {
-        return $name;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isFresh($name, $time)
-    {
-        return true;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/LoaderInterface.php b/core/vendor/twig/twig/lib/Twig/LoaderInterface.php
deleted file mode 100644
index 544ea4e..0000000
--- a/core/vendor/twig/twig/lib/Twig/LoaderInterface.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface all loaders must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface Twig_LoaderInterface
-{
-    /**
-     * Gets the source code of a template, given its name.
-     *
-     * @param string $name The name of the template to load
-     *
-     * @return string The template source code
-     *
-     * @throws Twig_Error_Loader When $name is not found
-     */
-    public function getSource($name);
-
-    /**
-     * Gets the cache key to use for the cache for a given template name.
-     *
-     * @param string $name The name of the template to load
-     *
-     * @return string The cache key
-     *
-     * @throws Twig_Error_Loader When $name is not found
-     */
-    public function getCacheKey($name);
-
-    /**
-     * Returns true if the template is still fresh.
-     *
-     * @param string $name The template name
-     * @param int    $time Timestamp of the last modification time of the
-     *                     cached template
-     *
-     * @return bool true if the template is fresh, false otherwise
-     *
-     * @throws Twig_Error_Loader When $name is not found
-     */
-    public function isFresh($name, $time);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Markup.php b/core/vendor/twig/twig/lib/Twig/Markup.php
deleted file mode 100644
index 69871fc..0000000
--- a/core/vendor/twig/twig/lib/Twig/Markup.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Marks a content as safe.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Markup implements Countable
-{
-    protected $content;
-    protected $charset;
-
-    public function __construct($content, $charset)
-    {
-        $this->content = (string) $content;
-        $this->charset = $charset;
-    }
-
-    public function __toString()
-    {
-        return $this->content;
-    }
-
-    public function count()
-    {
-        return function_exists('mb_get_info') ? mb_strlen($this->content, $this->charset) : strlen($this->content);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node.php b/core/vendor/twig/twig/lib/Twig/Node.php
deleted file mode 100644
index 1c78e7b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a node in the AST.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node implements Twig_NodeInterface
-{
-    protected $nodes;
-    protected $attributes;
-    protected $lineno;
-    protected $tag;
-
-    /**
-     * Constructor.
-     *
-     * The nodes are automatically made available as properties ($this->node).
-     * The attributes are automatically made available as array items ($this['name']).
-     *
-     * @param array  $nodes      An array of named nodes
-     * @param array  $attributes An array of attributes (should not be nodes)
-     * @param int    $lineno     The line number
-     * @param string $tag        The tag name associated with the Node
-     */
-    public function __construct(array $nodes = array(), array $attributes = array(), $lineno = 0, $tag = null)
-    {
-        $this->nodes = $nodes;
-        $this->attributes = $attributes;
-        $this->lineno = $lineno;
-        $this->tag = $tag;
-    }
-
-    public function __toString()
-    {
-        $attributes = array();
-        foreach ($this->attributes as $name => $value) {
-            $attributes[] = sprintf('%s: %s', $name, str_replace("\n", '', var_export($value, true)));
-        }
-
-        $repr = array(get_class($this).'('.implode(', ', $attributes));
-
-        if (count($this->nodes)) {
-            foreach ($this->nodes as $name => $node) {
-                $len = strlen($name) + 4;
-                $noderepr = array();
-                foreach (explode("\n", (string) $node) as $line) {
-                    $noderepr[] = str_repeat(' ', $len).$line;
-                }
-
-                $repr[] = sprintf('  %s: %s', $name, ltrim(implode("\n", $noderepr)));
-            }
-
-            $repr[] = ')';
-        } else {
-            $repr[0] .= ')';
-        }
-
-        return implode("\n", $repr);
-    }
-
-    /**
-     * @deprecated since 1.16.1 (to be removed in 2.0)
-     */
-    public function toXml($asDom = false)
-    {
-        $dom = new DOMDocument('1.0', 'UTF-8');
-        $dom->formatOutput = true;
-        $dom->appendChild($xml = $dom->createElement('twig'));
-
-        $xml->appendChild($node = $dom->createElement('node'));
-        $node->setAttribute('class', get_class($this));
-
-        foreach ($this->attributes as $name => $value) {
-            $node->appendChild($attribute = $dom->createElement('attribute'));
-            $attribute->setAttribute('name', $name);
-            $attribute->appendChild($dom->createTextNode($value));
-        }
-
-        foreach ($this->nodes as $name => $n) {
-            if (null === $n) {
-                continue;
-            }
-
-            $child = $n->toXml(true)->getElementsByTagName('node')->item(0);
-            $child = $dom->importNode($child, true);
-            $child->setAttribute('name', $name);
-
-            $node->appendChild($child);
-        }
-
-        return $asDom ? $dom : $dom->saveXml();
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        foreach ($this->nodes as $node) {
-            $node->compile($compiler);
-        }
-    }
-
-    public function getLine()
-    {
-        return $this->lineno;
-    }
-
-    public function getNodeTag()
-    {
-        return $this->tag;
-    }
-
-    /**
-     * Returns true if the attribute is defined.
-     *
-     * @param string $name The attribute name
-     *
-     * @return bool true if the attribute is defined, false otherwise
-     */
-    public function hasAttribute($name)
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    /**
-     * Gets an attribute value by name.
-     *
-     * @param string $name
-     *
-     * @return mixed
-     */
-    public function getAttribute($name)
-    {
-        if (!array_key_exists($name, $this->attributes)) {
-            throw new LogicException(sprintf('Attribute "%s" does not exist for Node "%s".', $name, get_class($this)));
-        }
-
-        return $this->attributes[$name];
-    }
-
-    /**
-     * Sets an attribute by name to a value.
-     *
-     * @param string $name
-     * @param mixed  $value
-     */
-    public function setAttribute($name, $value)
-    {
-        $this->attributes[$name] = $value;
-    }
-
-    /**
-     * Removes an attribute by name.
-     *
-     * @param string $name
-     */
-    public function removeAttribute($name)
-    {
-        unset($this->attributes[$name]);
-    }
-
-    /**
-     * Returns true if the node with the given name exists.
-     *
-     * @param string $name
-     *
-     * @return bool
-     */
-    public function hasNode($name)
-    {
-        return array_key_exists($name, $this->nodes);
-    }
-
-    /**
-     * Gets a node by name.
-     *
-     * @param string $name
-     *
-     * @return Twig_Node
-     */
-    public function getNode($name)
-    {
-        if (!array_key_exists($name, $this->nodes)) {
-            throw new LogicException(sprintf('Node "%s" does not exist for Node "%s".', $name, get_class($this)));
-        }
-
-        return $this->nodes[$name];
-    }
-
-    /**
-     * Sets a node.
-     *
-     * @param string    $name
-     * @param Twig_Node $node
-     */
-    public function setNode($name, $node = null)
-    {
-        $this->nodes[$name] = $node;
-    }
-
-    /**
-     * Removes a node by name.
-     *
-     * @param string $name
-     */
-    public function removeNode($name)
-    {
-        unset($this->nodes[$name]);
-    }
-
-    public function count()
-    {
-        return count($this->nodes);
-    }
-
-    public function getIterator()
-    {
-        return new ArrayIterator($this->nodes);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php b/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
deleted file mode 100644
index fcabf90..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/AutoEscape.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents an autoescape node.
- *
- * The value is the escaping strategy (can be html, js, ...)
- *
- * The true value is equivalent to html.
- *
- * If autoescaping is disabled, then the value is false.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_AutoEscape extends Twig_Node
-{
-    public function __construct($value, Twig_NodeInterface $body, $lineno, $tag = 'autoescape')
-    {
-        parent::__construct(array('body' => $body), array('value' => $value), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->subcompile($this->getNode('body'));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Block.php b/core/vendor/twig/twig/lib/Twig/Node/Block.php
deleted file mode 100644
index 989e4a0..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Block.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a block node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Block extends Twig_Node
-{
-    public function __construct($name, Twig_NodeInterface $body, $lineno, $tag = null)
-    {
-        parent::__construct(array('body' => $body), array('name' => $name), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write(sprintf("public function block_%s(\$context, array \$blocks = array())\n", $this->getAttribute('name')), "{\n")
-            ->indent()
-        ;
-
-        $compiler
-            ->subcompile($this->getNode('body'))
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php b/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php
deleted file mode 100644
index a05ea04..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/BlockReference.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a block call node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_BlockReference extends Twig_Node implements Twig_NodeOutputInterface
-{
-    public function __construct($name, $lineno, $tag = null)
-    {
-        parent::__construct(array(), array('name' => $name), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write(sprintf("\$this->displayBlock('%s', \$context, \$blocks);\n", $this->getAttribute('name')))
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Body.php b/core/vendor/twig/twig/lib/Twig/Node/Body.php
deleted file mode 100644
index 3ffb134..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Body.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a body node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Body extends Twig_Node
-{
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/CheckSecurity.php b/core/vendor/twig/twig/lib/Twig/Node/CheckSecurity.php
deleted file mode 100644
index b4a436a..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/CheckSecurity.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_CheckSecurity extends Twig_Node
-{
-    protected $usedFilters;
-    protected $usedTags;
-    protected $usedFunctions;
-
-    public function __construct(array $usedFilters, array $usedTags, array $usedFunctions)
-    {
-        $this->usedFilters = $usedFilters;
-        $this->usedTags = $usedTags;
-        $this->usedFunctions = $usedFunctions;
-
-        parent::__construct();
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $tags = $filters = $functions = array();
-        foreach (array('tags', 'filters', 'functions') as $type) {
-            foreach ($this->{'used'.ucfirst($type)} as $name => $node) {
-                if ($node instanceof Twig_Node) {
-                    ${$type}[$name] = $node->getLine();
-                } else {
-                    ${$type}[$node] = null;
-                }
-            }
-        }
-
-        $compiler
-            ->write('$tags = ')->repr(array_filter($tags))->raw(";\n")
-            ->write('$filters = ')->repr(array_filter($filters))->raw(";\n")
-            ->write('$functions = ')->repr(array_filter($functions))->raw(";\n\n")
-            ->write("try {\n")
-            ->indent()
-            ->write("\$this->env->getExtension('sandbox')->checkSecurity(\n")
-            ->indent()
-            ->write(!$tags ? "array(),\n" : "array('".implode("', '", array_keys($tags))."'),\n")
-            ->write(!$filters ? "array(),\n" : "array('".implode("', '", array_keys($filters))."'),\n")
-            ->write(!$functions ? "array()\n" : "array('".implode("', '", array_keys($functions))."')\n")
-            ->outdent()
-            ->write(");\n")
-            ->outdent()
-            ->write("} catch (Twig_Sandbox_SecurityError \$e) {\n")
-            ->indent()
-            ->write("\$e->setTemplateFile(\$this->getTemplateName());\n\n")
-            ->write("if (\$e instanceof Twig_Sandbox_SecurityNotAllowedTagError && isset(\$tags[\$e->getTagName()])) {\n")
-            ->indent()
-            ->write("\$e->setTemplateLine(\$tags[\$e->getTagName()]);\n")
-            ->outdent()
-            ->write("} elseif (\$e instanceof Twig_Sandbox_SecurityNotAllowedFilterError && isset(\$filters[\$e->getFilterName()])) {\n")
-            ->indent()
-            ->write("\$e->setTemplateLine(\$filters[\$e->getFilterName()]);\n")
-            ->outdent()
-            ->write("} elseif (\$e instanceof Twig_Sandbox_SecurityNotAllowedFunctionError && isset(\$functions[\$e->getFunctionName()])) {\n")
-            ->indent()
-            ->write("\$e->setTemplateLine(\$functions[\$e->getFunctionName()]);\n")
-            ->outdent()
-            ->write("}\n\n")
-            ->write("throw \$e;\n")
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Do.php b/core/vendor/twig/twig/lib/Twig/Node/Do.php
deleted file mode 100644
index 9981bc1..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Do.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a do node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Do extends Twig_Node
-{
-    public function __construct(Twig_Node_Expression $expr, $lineno, $tag = null)
-    {
-        parent::__construct(array('expr' => $expr), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write('')
-            ->subcompile($this->getNode('expr'))
-            ->raw(";\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Embed.php b/core/vendor/twig/twig/lib/Twig/Node/Embed.php
deleted file mode 100644
index a213040..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Embed.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents an embed node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Embed extends Twig_Node_Include
-{
-    // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module)
-    public function __construct($filename, $index, Twig_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
-    {
-        parent::__construct(new Twig_Node_Expression_Constant('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag);
-
-        $this->setAttribute('filename', $filename);
-        $this->setAttribute('index', $index);
-    }
-
-    protected function addGetTemplate(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write('$this->loadTemplate(')
-            ->string($this->getAttribute('filename'))
-            ->raw(', ')
-            ->repr($compiler->getFilename())
-            ->raw(', ')
-            ->repr($this->getLine())
-            ->raw(', ')
-            ->string($this->getAttribute('index'))
-            ->raw(')')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression.php b/core/vendor/twig/twig/lib/Twig/Node/Expression.php
deleted file mode 100644
index a7382e7..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Abstract class for all nodes that represents an expression.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Twig_Node_Expression extends Twig_Node
-{
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Array.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Array.php
deleted file mode 100644
index 6cf7ca1..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Array.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Array extends Twig_Node_Expression
-{
-    protected $index;
-
-    public function __construct(array $elements, $lineno)
-    {
-        parent::__construct($elements, array(), $lineno);
-
-        $this->index = -1;
-        foreach ($this->getKeyValuePairs() as $pair) {
-            if ($pair['key'] instanceof Twig_Node_Expression_Constant && ctype_digit((string) $pair['key']->getAttribute('value')) && $pair['key']->getAttribute('value') > $this->index) {
-                $this->index = $pair['key']->getAttribute('value');
-            }
-        }
-    }
-
-    public function getKeyValuePairs()
-    {
-        $pairs = array();
-
-        foreach (array_chunk($this->nodes, 2) as $pair) {
-            $pairs[] = array(
-                'key' => $pair[0],
-                'value' => $pair[1],
-            );
-        }
-
-        return $pairs;
-    }
-
-    public function hasElement(Twig_Node_Expression $key)
-    {
-        foreach ($this->getKeyValuePairs() as $pair) {
-            // we compare the string representation of the keys
-            // to avoid comparing the line numbers which are not relevant here.
-            if ((string) $key == (string) $pair['key']) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    public function addElement(Twig_Node_Expression $value, Twig_Node_Expression $key = null)
-    {
-        if (null === $key) {
-            $key = new Twig_Node_Expression_Constant(++$this->index, $value->getLine());
-        }
-
-        array_push($this->nodes, $key, $value);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->raw('array(');
-        $first = true;
-        foreach ($this->getKeyValuePairs() as $pair) {
-            if (!$first) {
-                $compiler->raw(', ');
-            }
-            $first = false;
-
-            $compiler
-                ->subcompile($pair['key'])
-                ->raw(' => ')
-                ->subcompile($pair['value'])
-            ;
-        }
-        $compiler->raw(')');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php
deleted file mode 100644
index 4d5dbdb..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Node_Expression_AssignName extends Twig_Node_Expression_Name
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('$context[')
-            ->string($this->getAttribute('name'))
-            ->raw(']')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php
deleted file mode 100644
index 5c383d1..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-abstract class Twig_Node_Expression_Binary extends Twig_Node_Expression
-{
-    public function __construct(Twig_NodeInterface $left, Twig_NodeInterface $right, $lineno)
-    {
-        parent::__construct(array('left' => $left, 'right' => $right), array(), $lineno);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(')
-            ->subcompile($this->getNode('left'))
-            ->raw(' ')
-        ;
-        $this->operator($compiler);
-        $compiler
-            ->raw(' ')
-            ->subcompile($this->getNode('right'))
-            ->raw(')')
-        ;
-    }
-
-    abstract public function operator(Twig_Compiler $compiler);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php
deleted file mode 100644
index 0ef8e11..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Add.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Add extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('+');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php
deleted file mode 100644
index d5752eb..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_And extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('&&');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
deleted file mode 100644
index 9a46d84..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseAnd.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_BitwiseAnd extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('&');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php
deleted file mode 100644
index 058a20b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseOr.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_BitwiseOr extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('|');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php
deleted file mode 100644
index f4da73d..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/BitwiseXor.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_BitwiseXor extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('^');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php
deleted file mode 100644
index f9a6462..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Concat extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('.');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php
deleted file mode 100644
index e0797a6..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Div.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Div extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('/');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
deleted file mode 100644
index 93b3b96..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2013 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_EndsWith extends Twig_Node_Expression_Binary
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $left = $compiler->getVarName();
-        $right = $compiler->getVarName();
-        $compiler
-            ->raw(sprintf('(is_string($%s = ', $left))
-            ->subcompile($this->getNode('left'))
-            ->raw(sprintf(') && is_string($%s = ', $right))
-            ->subcompile($this->getNode('right'))
-            ->raw(sprintf(') && (\'\' === $%2$s || $%2$s === substr($%1$s, -strlen($%2$s))))', $left, $right))
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php
deleted file mode 100644
index 7b1236d..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Equal extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('==');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php
deleted file mode 100644
index d3518b5..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/FloorDiv.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_FloorDiv extends Twig_Node_Expression_Binary
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->raw('intval(floor(');
-        parent::compile($compiler);
-        $compiler->raw('))');
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('/');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php
deleted file mode 100644
index a110bd9..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Greater extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('>');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php
deleted file mode 100644
index 3754fed..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/GreaterEqual.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_GreaterEqual extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('>=');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php
deleted file mode 100644
index 1d485b6..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/In.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_In extends Twig_Node_Expression_Binary
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('twig_in_filter(')
-            ->subcompile($this->getNode('left'))
-            ->raw(', ')
-            ->subcompile($this->getNode('right'))
-            ->raw(')')
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('in');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php
deleted file mode 100644
index 45fd300..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Less.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Less extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('<');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php
deleted file mode 100644
index e38e257..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/LessEqual.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_LessEqual extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('<=');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php
deleted file mode 100644
index 93bb292..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Matches.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2013 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Matches extends Twig_Node_Expression_Binary
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('preg_match(')
-            ->subcompile($this->getNode('right'))
-            ->raw(', ')
-            ->subcompile($this->getNode('left'))
-            ->raw(')')
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php
deleted file mode 100644
index 9924114..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Mod extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('%');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php
deleted file mode 100644
index c91529c..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Mul extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('*');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php
deleted file mode 100644
index 26867ba..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_NotEqual extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('!=');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php
deleted file mode 100644
index 8f215f1..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotIn.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_NotIn extends Twig_Node_Expression_Binary
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('!twig_in_filter(')
-            ->subcompile($this->getNode('left'))
-            ->raw(', ')
-            ->subcompile($this->getNode('right'))
-            ->raw(')')
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('not in');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php
deleted file mode 100644
index adba49c..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Or.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Or extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('||');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php
deleted file mode 100644
index 6cd3a21..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Power.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Power extends Twig_Node_Expression_Binary
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('pow(')
-            ->subcompile($this->getNode('left'))
-            ->raw(', ')
-            ->subcompile($this->getNode('right'))
-            ->raw(')')
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('**');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php
deleted file mode 100644
index fc102fe..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Range.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Range extends Twig_Node_Expression_Binary
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('range(')
-            ->subcompile($this->getNode('left'))
-            ->raw(', ')
-            ->subcompile($this->getNode('right'))
-            ->raw(')')
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('..');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
deleted file mode 100644
index d2e30d6..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/StartsWith.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2013 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_StartsWith extends Twig_Node_Expression_Binary
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $left = $compiler->getVarName();
-        $right = $compiler->getVarName();
-        $compiler
-            ->raw(sprintf('(is_string($%s = ', $left))
-            ->subcompile($this->getNode('left'))
-            ->raw(sprintf(') && is_string($%s = ', $right))
-            ->subcompile($this->getNode('right'))
-            ->raw(sprintf(') && (\'\' === $%2$s || 0 === strpos($%1$s, $%2$s)))', $left, $right))
-        ;
-    }
-
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php
deleted file mode 100644
index d446399..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Sub.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Binary_Sub extends Twig_Node_Expression_Binary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        return $compiler->raw('-');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
deleted file mode 100644
index c25aadd..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/BlockReference.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a block call node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_BlockReference extends Twig_Node_Expression
-{
-    public function __construct(Twig_NodeInterface $name, $asString = false, $lineno, $tag = null)
-    {
-        parent::__construct(array('name' => $name), array('as_string' => $asString, 'output' => false), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        if ($this->getAttribute('as_string')) {
-            $compiler->raw('(string) ');
-        }
-
-        if ($this->getAttribute('output')) {
-            $compiler
-                ->addDebugInfo($this)
-                ->write('$this->displayBlock(')
-                ->subcompile($this->getNode('name'))
-                ->raw(", \$context, \$blocks);\n")
-            ;
-        } else {
-            $compiler
-                ->raw('$this->renderBlock(')
-                ->subcompile($this->getNode('name'))
-                ->raw(', $context, $blocks)')
-            ;
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Call.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Call.php
deleted file mode 100644
index 51e2cac..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Call.php
+++ /dev/null
@@ -1,247 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-abstract class Twig_Node_Expression_Call extends Twig_Node_Expression
-{
-    protected function compileCallable(Twig_Compiler $compiler)
-    {
-        $closingParenthesis = false;
-        if ($this->hasAttribute('callable') && $callable = $this->getAttribute('callable')) {
-            if (is_string($callable)) {
-                $compiler->raw($callable);
-            } elseif (is_array($callable) && $callable[0] instanceof Twig_ExtensionInterface) {
-                $compiler->raw(sprintf('$this->env->getExtension(\'%s\')->%s', $callable[0]->getName(), $callable[1]));
-            } else {
-                $type = ucfirst($this->getAttribute('type'));
-                $compiler->raw(sprintf('call_user_func_array($this->env->get%s(\'%s\')->getCallable(), array', $type, $this->getAttribute('name')));
-                $closingParenthesis = true;
-            }
-        } else {
-            $compiler->raw($this->getAttribute('thing')->compile());
-        }
-
-        $this->compileArguments($compiler);
-
-        if ($closingParenthesis) {
-            $compiler->raw(')');
-        }
-    }
-
-    protected function compileArguments(Twig_Compiler $compiler)
-    {
-        $compiler->raw('(');
-
-        $first = true;
-
-        if ($this->hasAttribute('needs_environment') && $this->getAttribute('needs_environment')) {
-            $compiler->raw('$this->env');
-            $first = false;
-        }
-
-        if ($this->hasAttribute('needs_context') && $this->getAttribute('needs_context')) {
-            if (!$first) {
-                $compiler->raw(', ');
-            }
-            $compiler->raw('$context');
-            $first = false;
-        }
-
-        if ($this->hasAttribute('arguments')) {
-            foreach ($this->getAttribute('arguments') as $argument) {
-                if (!$first) {
-                    $compiler->raw(', ');
-                }
-                $compiler->string($argument);
-                $first = false;
-            }
-        }
-
-        if ($this->hasNode('node')) {
-            if (!$first) {
-                $compiler->raw(', ');
-            }
-            $compiler->subcompile($this->getNode('node'));
-            $first = false;
-        }
-
-        if ($this->hasNode('arguments') && null !== $this->getNode('arguments')) {
-            $callable = $this->hasAttribute('callable') ? $this->getAttribute('callable') : null;
-
-            $arguments = $this->getArguments($callable, $this->getNode('arguments'));
-
-            foreach ($arguments as $node) {
-                if (!$first) {
-                    $compiler->raw(', ');
-                }
-                $compiler->subcompile($node);
-                $first = false;
-            }
-        }
-
-        $compiler->raw(')');
-    }
-
-    protected function getArguments($callable, $arguments)
-    {
-        $callType = $this->getAttribute('type');
-        $callName = $this->getAttribute('name');
-
-        $parameters = array();
-        $named = false;
-        foreach ($arguments as $name => $node) {
-            if (!is_int($name)) {
-                $named = true;
-                $name = $this->normalizeName($name);
-            } elseif ($named) {
-                throw new Twig_Error_Syntax(sprintf('Positional arguments cannot be used after named arguments for %s "%s".', $callType, $callName));
-            }
-
-            $parameters[$name] = $node;
-        }
-
-        $isVariadic = $this->hasAttribute('is_variadic') && $this->getAttribute('is_variadic');
-        if (!$named && !$isVariadic) {
-            return $parameters;
-        }
-
-        if (!$callable) {
-            if ($named) {
-                $message = sprintf('Named arguments are not supported for %s "%s".', $callType, $callName);
-            } else {
-                $message = sprintf('Arbitrary positional arguments are not supported for %s "%s".', $callType, $callName);
-            }
-
-            throw new LogicException($message);
-        }
-
-        // manage named arguments
-        if (is_array($callable)) {
-            $r = new ReflectionMethod($callable[0], $callable[1]);
-        } elseif (is_object($callable) && !$callable instanceof Closure) {
-            $r = new ReflectionObject($callable);
-            $r = $r->getMethod('__invoke');
-        } elseif (is_string($callable) && false !== strpos($callable, '::')) {
-            $r = new ReflectionMethod($callable);
-        } else {
-            $r = new ReflectionFunction($callable);
-        }
-
-        $definition = $r->getParameters();
-        if ($this->hasNode('node')) {
-            array_shift($definition);
-        }
-        if ($this->hasAttribute('needs_environment') && $this->getAttribute('needs_environment')) {
-            array_shift($definition);
-        }
-        if ($this->hasAttribute('needs_context') && $this->getAttribute('needs_context')) {
-            array_shift($definition);
-        }
-        if ($this->hasAttribute('arguments') && null !== $this->getAttribute('arguments')) {
-            foreach ($this->getAttribute('arguments') as $argument) {
-                array_shift($definition);
-            }
-        }
-        if ($isVariadic) {
-            $argument = end($definition);
-            if ($argument && $argument->isArray() && $argument->isDefaultValueAvailable() && array() === $argument->getDefaultValue()) {
-                array_pop($definition);
-            } else {
-                $callableName = $r->name;
-                if ($r->getDeclaringClass()) {
-                    $callableName = $r->getDeclaringClass()->name.'::'.$callableName;
-                }
-
-                throw new LogicException(sprintf('The last parameter of "%s" for %s "%s" must be an array with default value, eg. "array $arg = array()".', $callableName, $callType, $callName));
-            }
-        }
-
-        $arguments = array();
-        $names = array();
-        $missingArguments = array();
-        $optionalArguments = array();
-        $pos = 0;
-        foreach ($definition as $param) {
-            $names[] = $name = $this->normalizeName($param->name);
-
-            if (array_key_exists($name, $parameters)) {
-                if (array_key_exists($pos, $parameters)) {
-                    throw new Twig_Error_Syntax(sprintf('Argument "%s" is defined twice for %s "%s".', $name, $callType, $callName));
-                }
-
-                if (!empty($missingArguments)) {
-                    throw new Twig_Error_Syntax(sprintf(
-                        'Argument "%s" could not be assigned for %s "%s(%s)" because it is mapped to an internal PHP function which cannot determine default value for optional argument%s "%s".',
-                        $name, $callType, $callName, implode(', ', $names), count($missingArguments) > 1 ? 's' : '', implode('", "', $missingArguments))
-                    );
-                }
-
-                $arguments = array_merge($arguments, $optionalArguments);
-                $arguments[] = $parameters[$name];
-                unset($parameters[$name]);
-                $optionalArguments = array();
-            } elseif (array_key_exists($pos, $parameters)) {
-                $arguments = array_merge($arguments, $optionalArguments);
-                $arguments[] = $parameters[$pos];
-                unset($parameters[$pos]);
-                $optionalArguments = array();
-                ++$pos;
-            } elseif ($param->isDefaultValueAvailable()) {
-                $optionalArguments[] = new Twig_Node_Expression_Constant($param->getDefaultValue(), -1);
-            } elseif ($param->isOptional()) {
-                if (empty($parameters)) {
-                    break;
-                } else {
-                    $missingArguments[] = $name;
-                }
-            } else {
-                throw new Twig_Error_Syntax(sprintf('Value for argument "%s" is required for %s "%s".', $name, $callType, $callName));
-            }
-        }
-
-        if ($isVariadic) {
-            $arbitraryArguments = new Twig_Node_Expression_Array(array(), -1);
-            foreach ($parameters as $key => $value) {
-                if (is_int($key)) {
-                    $arbitraryArguments->addElement($value);
-                } else {
-                    $arbitraryArguments->addElement($value, new Twig_Node_Expression_Constant($key, -1));
-                }
-                unset($parameters[$key]);
-            }
-
-            if ($arbitraryArguments->count()) {
-                $arguments = array_merge($arguments, $optionalArguments);
-                $arguments[] = $arbitraryArguments;
-            }
-        }
-
-        if (!empty($parameters)) {
-            $unknownParameter = null;
-            foreach ($parameters as $parameter) {
-                if ($parameter instanceof Twig_Node) {
-                    $unknownParameter = $parameter;
-                    break;
-                }
-            }
-
-            throw new Twig_Error_Syntax(sprintf(
-                'Unknown argument%s "%s" for %s "%s(%s)".',
-                count($parameters) > 1 ? 's' : '', implode('", "', array_keys($parameters)), $callType, $callName, implode(', ', $names)
-            ), $unknownParameter ? $unknownParameter->getLine() : -1);
-        }
-
-        return $arguments;
-    }
-
-    protected function normalizeName($name)
-    {
-        return strtolower(preg_replace(array('/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'), array('\\1_\\2', '\\1_\\2'), $name));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php
deleted file mode 100644
index edcb1e2..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Conditional.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Conditional extends Twig_Node_Expression
-{
-    public function __construct(Twig_Node_Expression $expr1, Twig_Node_Expression $expr2, Twig_Node_Expression $expr3, $lineno)
-    {
-        parent::__construct(array('expr1' => $expr1, 'expr2' => $expr2, 'expr3' => $expr3), array(), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('((')
-            ->subcompile($this->getNode('expr1'))
-            ->raw(') ? (')
-            ->subcompile($this->getNode('expr2'))
-            ->raw(') : (')
-            ->subcompile($this->getNode('expr3'))
-            ->raw('))')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php
deleted file mode 100644
index a91dc69..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Constant extends Twig_Node_Expression
-{
-    public function __construct($value, $lineno)
-    {
-        parent::__construct(array(), array('value' => $value), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->repr($this->getAttribute('value'));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
deleted file mode 100644
index db06abb..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/ExtensionReference.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents an extension call node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_ExtensionReference extends Twig_Node_Expression
-{
-    public function __construct($name, $lineno, $tag = null)
-    {
-        parent::__construct(array(), array('name' => $name), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->raw(sprintf("\$this->env->getExtension('%s')", $this->getAttribute('name')));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php
deleted file mode 100644
index a906232..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Filter extends Twig_Node_Expression_Call
-{
-    public function __construct(Twig_NodeInterface $node, Twig_Node_Expression_Constant $filterName, Twig_NodeInterface $arguments, $lineno, $tag = null)
-    {
-        parent::__construct(array('node' => $node, 'filter' => $filterName, 'arguments' => $arguments), array(), $lineno, $tag);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $name = $this->getNode('filter')->getAttribute('value');
-        $filter = $compiler->getEnvironment()->getFilter($name);
-
-        $this->setAttribute('name', $name);
-        $this->setAttribute('type', 'filter');
-        $this->setAttribute('thing', $filter);
-        $this->setAttribute('needs_environment', $filter->needsEnvironment());
-        $this->setAttribute('needs_context', $filter->needsContext());
-        $this->setAttribute('arguments', $filter->getArguments());
-        if ($filter instanceof Twig_FilterCallableInterface || $filter instanceof Twig_SimpleFilter) {
-            $this->setAttribute('callable', $filter->getCallable());
-        }
-        if ($filter instanceof Twig_SimpleFilter) {
-            $this->setAttribute('is_variadic', $filter->isVariadic());
-        }
-
-        $this->compileCallable($compiler);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
deleted file mode 100644
index 1827c88..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Filter/Default.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Returns the value or the default value when it is undefined or empty.
- *
- * <pre>
- *  {{ var.foo|default('foo item on var is not defined') }}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Filter_Default extends Twig_Node_Expression_Filter
-{
-    public function __construct(Twig_NodeInterface $node, Twig_Node_Expression_Constant $filterName, Twig_NodeInterface $arguments, $lineno, $tag = null)
-    {
-        $default = new Twig_Node_Expression_Filter($node, new Twig_Node_Expression_Constant('default', $node->getLine()), $arguments, $node->getLine());
-
-        if ('default' === $filterName->getAttribute('value') && ($node instanceof Twig_Node_Expression_Name || $node instanceof Twig_Node_Expression_GetAttr)) {
-            $test = new Twig_Node_Expression_Test_Defined(clone $node, 'defined', new Twig_Node(), $node->getLine());
-            $false = count($arguments) ? $arguments->getNode(0) : new Twig_Node_Expression_Constant('', $node->getLine());
-
-            $node = new Twig_Node_Expression_Conditional($test, $default, $false, $node->getLine());
-        } else {
-            $node = $default;
-        }
-
-        parent::__construct($node, $filterName, $arguments, $lineno, $tag);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->subcompile($this->getNode('node'));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Function.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Function.php
deleted file mode 100644
index 7326ede..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Function.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Function extends Twig_Node_Expression_Call
-{
-    public function __construct($name, Twig_NodeInterface $arguments, $lineno)
-    {
-        parent::__construct(array('arguments' => $arguments), array('name' => $name), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $name = $this->getAttribute('name');
-        $function = $compiler->getEnvironment()->getFunction($name);
-
-        $this->setAttribute('name', $name);
-        $this->setAttribute('type', 'function');
-        $this->setAttribute('thing', $function);
-        $this->setAttribute('needs_environment', $function->needsEnvironment());
-        $this->setAttribute('needs_context', $function->needsContext());
-        $this->setAttribute('arguments', $function->getArguments());
-        if ($function instanceof Twig_FunctionCallableInterface || $function instanceof Twig_SimpleFunction) {
-            $this->setAttribute('callable', $function->getCallable());
-        }
-        if ($function instanceof Twig_SimpleFunction) {
-            $this->setAttribute('is_variadic', $function->isVariadic());
-        }
-
-        $this->compileCallable($compiler);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
deleted file mode 100644
index 6ce6111..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_GetAttr extends Twig_Node_Expression
-{
-    public function __construct(Twig_Node_Expression $node, Twig_Node_Expression $attribute, Twig_Node_Expression $arguments = null, $type, $lineno)
-    {
-        parent::__construct(array('node' => $node, 'attribute' => $attribute, 'arguments' => $arguments), array('type' => $type, 'is_defined_test' => false, 'ignore_strict_check' => false, 'disable_c_ext' => false), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        if (function_exists('twig_template_get_attributes') && !$this->getAttribute('disable_c_ext')) {
-            $compiler->raw('twig_template_get_attributes($this, ');
-        } else {
-            $compiler->raw('$this->getAttribute(');
-        }
-
-        if ($this->getAttribute('ignore_strict_check')) {
-            $this->getNode('node')->setAttribute('ignore_strict_check', true);
-        }
-
-        $compiler->subcompile($this->getNode('node'));
-
-        $compiler->raw(', ')->subcompile($this->getNode('attribute'));
-
-        // only generate optional arguments when needed (to make generated code more readable)
-        $needFourth = $this->getAttribute('ignore_strict_check');
-        $needThird = $needFourth || $this->getAttribute('is_defined_test');
-        $needSecond = $needThird || Twig_Template::ANY_CALL !== $this->getAttribute('type');
-        $needFirst = $needSecond || null !== $this->getNode('arguments');
-
-        if ($needFirst) {
-            if (null !== $this->getNode('arguments')) {
-                $compiler->raw(', ')->subcompile($this->getNode('arguments'));
-            } else {
-                $compiler->raw(', array()');
-            }
-        }
-
-        if ($needSecond) {
-            $compiler->raw(', ')->repr($this->getAttribute('type'));
-        }
-
-        if ($needThird) {
-            $compiler->raw(', ')->repr($this->getAttribute('is_defined_test'));
-        }
-
-        if ($needFourth) {
-            $compiler->raw(', ')->repr($this->getAttribute('ignore_strict_check'));
-        }
-
-        $compiler->raw(')');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php
deleted file mode 100644
index 620b02b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/MethodCall.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_MethodCall extends Twig_Node_Expression
-{
-    public function __construct(Twig_Node_Expression $node, $method, Twig_Node_Expression_Array $arguments, $lineno)
-    {
-        parent::__construct(array('node' => $node, 'arguments' => $arguments), array('method' => $method, 'safe' => false), $lineno);
-
-        if ($node instanceof Twig_Node_Expression_Name) {
-            $node->setAttribute('always_defined', true);
-        }
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->subcompile($this->getNode('node'))
-            ->raw('->')
-            ->raw($this->getAttribute('method'))
-            ->raw('(')
-        ;
-        $first = true;
-        foreach ($this->getNode('arguments')->getKeyValuePairs() as $pair) {
-            if (!$first) {
-                $compiler->raw(', ');
-            }
-            $first = false;
-
-            $compiler->subcompile($pair['value']);
-        }
-        $compiler->raw(')');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Name.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Name.php
deleted file mode 100644
index a6e0ff4..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Name.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Name extends Twig_Node_Expression
-{
-    protected $specialVars = array(
-        '_self' => '$this',
-        '_context' => '$context',
-        '_charset' => '$this->env->getCharset()',
-    );
-
-    public function __construct($name, $lineno)
-    {
-        parent::__construct(array(), array('name' => $name, 'is_defined_test' => false, 'ignore_strict_check' => false, 'always_defined' => false), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $name = $this->getAttribute('name');
-
-        $compiler->addDebugInfo($this);
-
-        if ($this->getAttribute('is_defined_test')) {
-            if ($this->isSpecial()) {
-                $compiler->repr(true);
-            } else {
-                $compiler->raw('array_key_exists(')->repr($name)->raw(', $context)');
-            }
-        } elseif ($this->isSpecial()) {
-            $compiler->raw($this->specialVars[$name]);
-        } elseif ($this->getAttribute('always_defined')) {
-            $compiler
-                ->raw('$context[')
-                ->string($name)
-                ->raw(']')
-            ;
-        } else {
-            // remove the non-PHP 5.4 version when PHP 5.3 support is dropped
-            // as the non-optimized version is just a workaround for slow ternary operator
-            // when the context has a lot of variables
-            if (PHP_VERSION_ID >= 50400) {
-                // PHP 5.4 ternary operator performance was optimized
-                $compiler
-                    ->raw('(isset($context[')
-                    ->string($name)
-                    ->raw(']) ? $context[')
-                    ->string($name)
-                    ->raw('] : ')
-                ;
-
-                if ($this->getAttribute('ignore_strict_check') || !$compiler->getEnvironment()->isStrictVariables()) {
-                    $compiler->raw('null)');
-                } else {
-                    $compiler->raw('$this->getContext($context, ')->string($name)->raw('))');
-                }
-            } else {
-                $compiler
-                    ->raw('$this->getContext($context, ')
-                    ->string($name)
-                ;
-
-                if ($this->getAttribute('ignore_strict_check')) {
-                    $compiler->raw(', true');
-                }
-
-                $compiler
-                    ->raw(')')
-                ;
-            }
-        }
-    }
-
-    public function isSpecial()
-    {
-        return isset($this->specialVars[$this->getAttribute('name')]);
-    }
-
-    public function isSimple()
-    {
-        return !$this->isSpecial() && !$this->getAttribute('is_defined_test');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
deleted file mode 100644
index bd5024b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Parent.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a parent node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Parent extends Twig_Node_Expression
-{
-    public function __construct($name, $lineno, $tag = null)
-    {
-        parent::__construct(array(), array('output' => false, 'name' => $name), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        if ($this->getAttribute('output')) {
-            $compiler
-                ->addDebugInfo($this)
-                ->write('$this->displayParentBlock(')
-                ->string($this->getAttribute('name'))
-                ->raw(", \$context, \$blocks);\n")
-            ;
-        } else {
-            $compiler
-                ->raw('$this->renderParentBlock(')
-                ->string($this->getAttribute('name'))
-                ->raw(', $context, $blocks)')
-            ;
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php
deleted file mode 100644
index e6b058e..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/TempName.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_TempName extends Twig_Node_Expression
-{
-    public function __construct($name, $lineno)
-    {
-        parent::__construct(array(), array('name' => $name), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('$_')
-            ->raw($this->getAttribute('name'))
-            ->raw('_')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test.php
deleted file mode 100644
index c0358c8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Test extends Twig_Node_Expression_Call
-{
-    public function __construct(Twig_NodeInterface $node, $name, Twig_NodeInterface $arguments = null, $lineno)
-    {
-        parent::__construct(array('node' => $node, 'arguments' => $arguments), array('name' => $name), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $name = $this->getAttribute('name');
-        $test = $compiler->getEnvironment()->getTest($name);
-
-        $this->setAttribute('name', $name);
-        $this->setAttribute('type', 'test');
-        $this->setAttribute('thing', $test);
-        if ($test instanceof Twig_TestCallableInterface || $test instanceof Twig_SimpleTest) {
-            $this->setAttribute('callable', $test->getCallable());
-        }
-        if ($test instanceof Twig_SimpleTest) {
-            $this->setAttribute('is_variadic', $test->isVariadic());
-        }
-
-        $this->compileCallable($compiler);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
deleted file mode 100644
index de55f5f..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Constant.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks if a variable is the exact same value as a constant.
- *
- * <pre>
- *  {% if post.status is constant('Post::PUBLISHED') %}
- *    the status attribute is exactly the same as Post::PUBLISHED
- *  {% endif %}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Constant extends Twig_Node_Expression_Test
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(')
-            ->subcompile($this->getNode('node'))
-            ->raw(' === constant(')
-        ;
-
-        if ($this->getNode('arguments')->hasNode(1)) {
-            $compiler
-                ->raw('get_class(')
-                ->subcompile($this->getNode('arguments')->getNode(1))
-                ->raw(')."::".')
-            ;
-        }
-
-        $compiler
-            ->subcompile($this->getNode('arguments')->getNode(0))
-            ->raw('))')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
deleted file mode 100644
index 247b2e2..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Defined.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks if a variable is defined in the current context.
- *
- * <pre>
- * {# defined works with variable names and variable attributes #}
- * {% if foo is defined %}
- *     {# ... #}
- * {% endif %}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Defined extends Twig_Node_Expression_Test
-{
-    public function __construct(Twig_NodeInterface $node, $name, Twig_NodeInterface $arguments = null, $lineno)
-    {
-        parent::__construct($node, $name, $arguments, $lineno);
-
-        if ($node instanceof Twig_Node_Expression_Name) {
-            $node->setAttribute('is_defined_test', true);
-        } elseif ($node instanceof Twig_Node_Expression_GetAttr) {
-            $node->setAttribute('is_defined_test', true);
-
-            $this->changeIgnoreStrictCheck($node);
-        } else {
-            throw new Twig_Error_Syntax('The "defined" test only works with simple variables', $this->getLine());
-        }
-    }
-
-    protected function changeIgnoreStrictCheck(Twig_Node_Expression_GetAttr $node)
-    {
-        $node->setAttribute('ignore_strict_check', true);
-
-        if ($node->getNode('node') instanceof Twig_Node_Expression_GetAttr) {
-            $this->changeIgnoreStrictCheck($node->getNode('node'));
-        }
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->subcompile($this->getNode('node'));
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
deleted file mode 100644
index d5bed23..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Divisibleby.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks if a variable is divisible by a number.
- *
- * <pre>
- *  {% if loop.index is divisible by(3) %}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Divisibleby extends Twig_Node_Expression_Test
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(0 == ')
-            ->subcompile($this->getNode('node'))
-            ->raw(' % ')
-            ->subcompile($this->getNode('arguments')->getNode(0))
-            ->raw(')')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
deleted file mode 100644
index d7853e8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Even.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks if a number is even.
- *
- * <pre>
- *  {{ var is even }}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Even extends Twig_Node_Expression_Test
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(')
-            ->subcompile($this->getNode('node'))
-            ->raw(' % 2 == 0')
-            ->raw(')')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
deleted file mode 100644
index 1c83825..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Null.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks that a variable is null.
- *
- * <pre>
- *  {{ var is none }}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Null extends Twig_Node_Expression_Test
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(null === ')
-            ->subcompile($this->getNode('node'))
-            ->raw(')')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
deleted file mode 100644
index 421c19e..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Odd.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks if a number is odd.
- *
- * <pre>
- *  {{ var is odd }}
- * </pre>
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Odd extends Twig_Node_Expression_Test
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(')
-            ->subcompile($this->getNode('node'))
-            ->raw(' % 2 == 1')
-            ->raw(')')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
deleted file mode 100644
index b48905e..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Test/Sameas.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Checks if a variable is the same as another one (=== in PHP).
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Expression_Test_Sameas extends Twig_Node_Expression_Test
-{
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->raw('(')
-            ->subcompile($this->getNode('node'))
-            ->raw(' === ')
-            ->subcompile($this->getNode('arguments')->getNode(0))
-            ->raw(')')
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php
deleted file mode 100644
index 1cf54c3..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-abstract class Twig_Node_Expression_Unary extends Twig_Node_Expression
-{
-    public function __construct(Twig_NodeInterface $node, $lineno)
-    {
-        parent::__construct(array('node' => $node), array(), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->raw(' ');
-        $this->operator($compiler);
-        $compiler->subcompile($this->getNode('node'));
-    }
-
-    abstract public function operator(Twig_Compiler $compiler);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php
deleted file mode 100644
index 2a3937e..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Unary_Neg extends Twig_Node_Expression_Unary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        $compiler->raw('-');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php
deleted file mode 100644
index f94073c..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Unary_Not extends Twig_Node_Expression_Unary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        $compiler->raw('!');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php b/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php
deleted file mode 100644
index 04edb52..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Pos.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Node_Expression_Unary_Pos extends Twig_Node_Expression_Unary
-{
-    public function operator(Twig_Compiler $compiler)
-    {
-        $compiler->raw('+');
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Flush.php b/core/vendor/twig/twig/lib/Twig/Node/Flush.php
deleted file mode 100644
index 20d6aab..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Flush.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a flush node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Flush extends Twig_Node
-{
-    public function __construct($lineno, $tag)
-    {
-        parent::__construct(array(), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write("flush();\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/For.php b/core/vendor/twig/twig/lib/Twig/Node/For.php
deleted file mode 100644
index 36e9de8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/For.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a for node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_For extends Twig_Node
-{
-    protected $loop;
-
-    public function __construct(Twig_Node_Expression_AssignName $keyTarget, Twig_Node_Expression_AssignName $valueTarget, Twig_Node_Expression $seq, Twig_Node_Expression $ifexpr = null, Twig_NodeInterface $body, Twig_NodeInterface $else = null, $lineno, $tag = null)
-    {
-        $body = new Twig_Node(array($body, $this->loop = new Twig_Node_ForLoop($lineno, $tag)));
-
-        if (null !== $ifexpr) {
-            $body = new Twig_Node_If(new Twig_Node(array($ifexpr, $body)), null, $lineno, $tag);
-        }
-
-        parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else), array('with_loop' => true, 'ifexpr' => null !== $ifexpr), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            // the (array) cast bypasses a PHP 5.2.6 bug
-            ->write("\$context['_parent'] = (array) \$context;\n")
-            ->write("\$context['_seq'] = twig_ensure_traversable(")
-            ->subcompile($this->getNode('seq'))
-            ->raw(");\n")
-        ;
-
-        if (null !== $this->getNode('else')) {
-            $compiler->write("\$context['_iterated'] = false;\n");
-        }
-
-        if ($this->getAttribute('with_loop')) {
-            $compiler
-                ->write("\$context['loop'] = array(\n")
-                ->write("  'parent' => \$context['_parent'],\n")
-                ->write("  'index0' => 0,\n")
-                ->write("  'index'  => 1,\n")
-                ->write("  'first'  => true,\n")
-                ->write(");\n")
-            ;
-
-            if (!$this->getAttribute('ifexpr')) {
-                $compiler
-                    ->write("if (is_array(\$context['_seq']) || (is_object(\$context['_seq']) && \$context['_seq'] instanceof Countable)) {\n")
-                    ->indent()
-                    ->write("\$length = count(\$context['_seq']);\n")
-                    ->write("\$context['loop']['revindex0'] = \$length - 1;\n")
-                    ->write("\$context['loop']['revindex'] = \$length;\n")
-                    ->write("\$context['loop']['length'] = \$length;\n")
-                    ->write("\$context['loop']['last'] = 1 === \$length;\n")
-                    ->outdent()
-                    ->write("}\n")
-                ;
-            }
-        }
-
-        $this->loop->setAttribute('else', null !== $this->getNode('else'));
-        $this->loop->setAttribute('with_loop', $this->getAttribute('with_loop'));
-        $this->loop->setAttribute('ifexpr', $this->getAttribute('ifexpr'));
-
-        $compiler
-            ->write("foreach (\$context['_seq'] as ")
-            ->subcompile($this->getNode('key_target'))
-            ->raw(' => ')
-            ->subcompile($this->getNode('value_target'))
-            ->raw(") {\n")
-            ->indent()
-            ->subcompile($this->getNode('body'))
-            ->outdent()
-            ->write("}\n")
-        ;
-
-        if (null !== $this->getNode('else')) {
-            $compiler
-                ->write("if (!\$context['_iterated']) {\n")
-                ->indent()
-                ->subcompile($this->getNode('else'))
-                ->outdent()
-                ->write("}\n")
-            ;
-        }
-
-        $compiler->write("\$_parent = \$context['_parent'];\n");
-
-        // remove some "private" loop variables (needed for nested loops)
-        $compiler->write('unset($context[\'_seq\'], $context[\'_iterated\'], $context[\''.$this->getNode('key_target')->getAttribute('name').'\'], $context[\''.$this->getNode('value_target')->getAttribute('name').'\'], $context[\'_parent\'], $context[\'loop\']);'."\n");
-
-        // keep the values set in the inner context for variables defined in the outer context
-        $compiler->write("\$context = array_intersect_key(\$context, \$_parent) + \$_parent;\n");
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php b/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php
deleted file mode 100644
index d330283..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/ForLoop.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Internal node used by the for node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_ForLoop extends Twig_Node
-{
-    public function __construct($lineno, $tag = null)
-    {
-        parent::__construct(array(), array('with_loop' => false, 'ifexpr' => false, 'else' => false), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        if ($this->getAttribute('else')) {
-            $compiler->write("\$context['_iterated'] = true;\n");
-        }
-
-        if ($this->getAttribute('with_loop')) {
-            $compiler
-                ->write("++\$context['loop']['index0'];\n")
-                ->write("++\$context['loop']['index'];\n")
-                ->write("\$context['loop']['first'] = false;\n")
-            ;
-
-            if (!$this->getAttribute('ifexpr')) {
-                $compiler
-                    ->write("if (isset(\$context['loop']['length'])) {\n")
-                    ->indent()
-                    ->write("--\$context['loop']['revindex0'];\n")
-                    ->write("--\$context['loop']['revindex'];\n")
-                    ->write("\$context['loop']['last'] = 0 === \$context['loop']['revindex0'];\n")
-                    ->outdent()
-                    ->write("}\n")
-                ;
-            }
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/If.php b/core/vendor/twig/twig/lib/Twig/Node/If.php
deleted file mode 100644
index 1b6104d..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/If.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents an if node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_If extends Twig_Node
-{
-    public function __construct(Twig_NodeInterface $tests, Twig_NodeInterface $else = null, $lineno, $tag = null)
-    {
-        parent::__construct(array('tests' => $tests, 'else' => $else), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->addDebugInfo($this);
-        for ($i = 0, $count = count($this->getNode('tests')); $i < $count; $i += 2) {
-            if ($i > 0) {
-                $compiler
-                    ->outdent()
-                    ->write('} elseif (')
-                ;
-            } else {
-                $compiler
-                    ->write('if (')
-                ;
-            }
-
-            $compiler
-                ->subcompile($this->getNode('tests')->getNode($i))
-                ->raw(") {\n")
-                ->indent()
-                ->subcompile($this->getNode('tests')->getNode($i + 1))
-            ;
-        }
-
-        if ($this->hasNode('else') && null !== $this->getNode('else')) {
-            $compiler
-                ->outdent()
-                ->write("} else {\n")
-                ->indent()
-                ->subcompile($this->getNode('else'))
-            ;
-        }
-
-        $compiler
-            ->outdent()
-            ->write("}\n");
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Import.php b/core/vendor/twig/twig/lib/Twig/Node/Import.php
deleted file mode 100644
index 515ff2a..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Import.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents an import node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Import extends Twig_Node
-{
-    public function __construct(Twig_Node_Expression $expr, Twig_Node_Expression $var, $lineno, $tag = null)
-    {
-        parent::__construct(array('expr' => $expr, 'var' => $var), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write('')
-            ->subcompile($this->getNode('var'))
-            ->raw(' = ')
-        ;
-
-        if ($this->getNode('expr') instanceof Twig_Node_Expression_Name && '_self' === $this->getNode('expr')->getAttribute('name')) {
-            $compiler->raw('$this');
-        } else {
-            $compiler
-                ->raw('$this->loadTemplate(')
-                ->subcompile($this->getNode('expr'))
-                ->raw(', ')
-                ->repr($compiler->getFilename())
-                ->raw(', ')
-                ->repr($this->getLine())
-                ->raw(')')
-            ;
-        }
-
-        $compiler->raw(";\n");
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Include.php b/core/vendor/twig/twig/lib/Twig/Node/Include.php
deleted file mode 100644
index fecaa82..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Include.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents an include node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Include extends Twig_Node implements Twig_NodeOutputInterface
-{
-    public function __construct(Twig_Node_Expression $expr, Twig_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null)
-    {
-        parent::__construct(array('expr' => $expr, 'variables' => $variables), array('only' => (bool) $only, 'ignore_missing' => (bool) $ignoreMissing), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->addDebugInfo($this);
-
-        if ($this->getAttribute('ignore_missing')) {
-            $compiler
-                ->write("try {\n")
-                ->indent()
-            ;
-        }
-
-        $this->addGetTemplate($compiler);
-
-        $compiler->raw('->display(');
-
-        $this->addTemplateArguments($compiler);
-
-        $compiler->raw(");\n");
-
-        if ($this->getAttribute('ignore_missing')) {
-            $compiler
-                ->outdent()
-                ->write("} catch (Twig_Error_Loader \$e) {\n")
-                ->indent()
-                ->write("// ignore missing template\n")
-                ->outdent()
-                ->write("}\n\n")
-            ;
-        }
-    }
-
-    protected function addGetTemplate(Twig_Compiler $compiler)
-    {
-        $compiler
-             ->write('$this->loadTemplate(')
-             ->subcompile($this->getNode('expr'))
-             ->raw(', ')
-             ->repr($compiler->getFilename())
-             ->raw(', ')
-             ->repr($this->getLine())
-             ->raw(')')
-         ;
-    }
-
-    protected function addTemplateArguments(Twig_Compiler $compiler)
-    {
-        if (null === $this->getNode('variables')) {
-            $compiler->raw(false === $this->getAttribute('only') ? '$context' : 'array()');
-        } elseif (false === $this->getAttribute('only')) {
-            $compiler
-                ->raw('array_merge($context, ')
-                ->subcompile($this->getNode('variables'))
-                ->raw(')')
-            ;
-        } else {
-            $compiler->subcompile($this->getNode('variables'));
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Macro.php b/core/vendor/twig/twig/lib/Twig/Node/Macro.php
deleted file mode 100644
index 03cf4dd..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Macro.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a macro node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Macro extends Twig_Node
-{
-    const VARARGS_NAME = 'varargs';
-
-    public function __construct($name, Twig_NodeInterface $body, Twig_NodeInterface $arguments, $lineno, $tag = null)
-    {
-        foreach ($arguments as $argumentName => $argument) {
-            if (self::VARARGS_NAME === $argumentName) {
-                throw new Twig_Error_Syntax(sprintf('The argument "%s" in macro "%s" cannot be defined because the variable "%s" is reserved for arbitrary arguments', self::VARARGS_NAME, $name, self::VARARGS_NAME), $argument->getLine());
-            }
-        }
-
-        parent::__construct(array('body' => $body, 'arguments' => $arguments), array('name' => $name), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write(sprintf('public function get%s(', $this->getAttribute('name')))
-        ;
-
-        $count = count($this->getNode('arguments'));
-        $pos = 0;
-        foreach ($this->getNode('arguments') as $name => $default) {
-            $compiler
-                ->raw('$__'.$name.'__ = ')
-                ->subcompile($default)
-            ;
-
-            if (++$pos < $count) {
-                $compiler->raw(', ');
-            }
-        }
-
-        if (PHP_VERSION_ID >= 50600) {
-            if ($count) {
-                $compiler->raw(', ');
-            }
-
-            $compiler->raw('...$__varargs__');
-        }
-
-        $compiler
-            ->raw(")\n")
-            ->write("{\n")
-            ->indent()
-        ;
-
-        $compiler
-            ->write("\$context = \$this->env->mergeGlobals(array(\n")
-            ->indent()
-        ;
-
-        foreach ($this->getNode('arguments') as $name => $default) {
-            $compiler
-                ->addIndentation()
-                ->string($name)
-                ->raw(' => $__'.$name.'__')
-                ->raw(",\n")
-            ;
-        }
-
-        $compiler
-            ->addIndentation()
-            ->string(self::VARARGS_NAME)
-            ->raw(' => ')
-        ;
-
-        if (PHP_VERSION_ID >= 50600) {
-            $compiler->raw("\$__varargs__,\n");
-        } else {
-            $compiler
-                ->raw('func_num_args() > ')
-                ->repr($count)
-                ->raw(' ? array_slice(func_get_args(), ')
-                ->repr($count)
-                ->raw(") : array(),\n")
-            ;
-        }
-
-        $compiler
-            ->outdent()
-            ->write("));\n\n")
-            ->write("\$blocks = array();\n\n")
-            ->write("ob_start();\n")
-            ->write("try {\n")
-            ->indent()
-            ->subcompile($this->getNode('body'))
-            ->outdent()
-            ->write("} catch (Exception \$e) {\n")
-            ->indent()
-            ->write("ob_end_clean();\n\n")
-            ->write("throw \$e;\n")
-            ->outdent()
-            ->write("}\n\n")
-            ->write("return ('' === \$tmp = ob_get_clean()) ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset());\n")
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Module.php b/core/vendor/twig/twig/lib/Twig/Node/Module.php
deleted file mode 100644
index 327b5e6..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Module.php
+++ /dev/null
@@ -1,423 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a module node.
- *
- * Consider this class as being final. If you need to customize the behavior of
- * the generated class, consider adding nodes to the following nodes: display_start,
- * display_end, constructor_start, constructor_end, and class_end.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Module extends Twig_Node
-{
-    public function __construct(Twig_NodeInterface $body, Twig_Node_Expression $parent = null, Twig_NodeInterface $blocks, Twig_NodeInterface $macros, Twig_NodeInterface $traits, $embeddedTemplates, $filename)
-    {
-        // embedded templates are set as attributes so that they are only visited once by the visitors
-        parent::__construct(array(
-            'parent' => $parent,
-            'body' => $body,
-            'blocks' => $blocks,
-            'macros' => $macros,
-            'traits' => $traits,
-            'display_start' => new Twig_Node(),
-            'display_end' => new Twig_Node(),
-            'constructor_start' => new Twig_Node(),
-            'constructor_end' => new Twig_Node(),
-            'class_end' => new Twig_Node(),
-        ), array(
-            'filename' => $filename,
-            'index' => null,
-            'embedded_templates' => $embeddedTemplates,
-        ), 1);
-    }
-
-    public function setIndex($index)
-    {
-        $this->setAttribute('index', $index);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $this->compileTemplate($compiler);
-
-        foreach ($this->getAttribute('embedded_templates') as $template) {
-            $compiler->subcompile($template);
-        }
-    }
-
-    protected function compileTemplate(Twig_Compiler $compiler)
-    {
-        if (!$this->getAttribute('index')) {
-            $compiler->write('<?php');
-        }
-
-        $this->compileClassHeader($compiler);
-
-        if (
-            count($this->getNode('blocks'))
-            || count($this->getNode('traits'))
-            || null === $this->getNode('parent')
-            || $this->getNode('parent') instanceof Twig_Node_Expression_Constant
-            || count($this->getNode('constructor_start'))
-            || count($this->getNode('constructor_end'))
-        ) {
-            $this->compileConstructor($compiler);
-        }
-
-        $this->compileGetParent($compiler);
-
-        $this->compileDisplay($compiler);
-
-        $compiler->subcompile($this->getNode('blocks'));
-
-        $this->compileMacros($compiler);
-
-        $this->compileGetTemplateName($compiler);
-
-        $this->compileIsTraitable($compiler);
-
-        $this->compileDebugInfo($compiler);
-
-        $this->compileClassFooter($compiler);
-    }
-
-    protected function compileGetParent(Twig_Compiler $compiler)
-    {
-        if (null === $parent = $this->getNode('parent')) {
-            return;
-        }
-
-        $compiler
-            ->write("protected function doGetParent(array \$context)\n", "{\n")
-            ->indent()
-            ->addDebugInfo($parent)
-            ->write('return ')
-        ;
-
-        if ($parent instanceof Twig_Node_Expression_Constant) {
-            $compiler->subcompile($parent);
-        } else {
-            $compiler
-                ->raw('$this->loadTemplate(')
-                ->subcompile($parent)
-                ->raw(', ')
-                ->repr($compiler->getFilename())
-                ->raw(', ')
-                ->repr($this->getNode('parent')->getLine())
-                ->raw(')')
-            ;
-        }
-
-        $compiler
-            ->raw(";\n")
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-
-    protected function compileClassHeader(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write("\n\n")
-            // if the filename contains */, add a blank to avoid a PHP parse error
-            ->write('/* '.str_replace('*/', '* /', $this->getAttribute('filename'))." */\n")
-            ->write('class '.$compiler->getEnvironment()->getTemplateClass($this->getAttribute('filename'), $this->getAttribute('index')))
-            ->raw(sprintf(" extends %s\n", $compiler->getEnvironment()->getBaseTemplateClass()))
-            ->write("{\n")
-            ->indent()
-        ;
-    }
-
-    protected function compileConstructor(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write("public function __construct(Twig_Environment \$env)\n", "{\n")
-            ->indent()
-            ->subcompile($this->getNode('constructor_start'))
-            ->write("parent::__construct(\$env);\n\n")
-        ;
-
-        // parent
-        if (null === $parent = $this->getNode('parent')) {
-            $compiler->write("\$this->parent = false;\n\n");
-        } elseif ($parent instanceof Twig_Node_Expression_Constant) {
-            $compiler
-                ->addDebugInfo($parent)
-                ->write('$this->parent = $this->loadTemplate(')
-                ->subcompile($parent)
-                ->raw(', ')
-                ->repr($compiler->getFilename())
-                ->raw(', ')
-                ->repr($this->getNode('parent')->getLine())
-                ->raw(");\n")
-            ;
-        }
-
-        $countTraits = count($this->getNode('traits'));
-        if ($countTraits) {
-            // traits
-            foreach ($this->getNode('traits') as $i => $trait) {
-                $this->compileLoadTemplate($compiler, $trait->getNode('template'), sprintf('$_trait_%s', $i));
-
-                $compiler
-                    ->addDebugInfo($trait->getNode('template'))
-                    ->write(sprintf("if (!\$_trait_%s->isTraitable()) {\n", $i))
-                    ->indent()
-                    ->write("throw new Twig_Error_Runtime('Template \"'.")
-                    ->subcompile($trait->getNode('template'))
-                    ->raw(".'\" cannot be used as a trait.');\n")
-                    ->outdent()
-                    ->write("}\n")
-                    ->write(sprintf("\$_trait_%s_blocks = \$_trait_%s->getBlocks();\n\n", $i, $i))
-                ;
-
-                foreach ($trait->getNode('targets') as $key => $value) {
-                    $compiler
-                        ->write(sprintf('if (!isset($_trait_%s_blocks[', $i))
-                        ->string($key)
-                        ->raw("])) {\n")
-                        ->indent()
-                        ->write("throw new Twig_Error_Runtime(sprintf('Block ")
-                        ->string($key)
-                        ->raw(' is not defined in trait ')
-                        ->subcompile($trait->getNode('template'))
-                        ->raw(".'));\n")
-                        ->outdent()
-                        ->write("}\n\n")
-
-                        ->write(sprintf('$_trait_%s_blocks[', $i))
-                        ->subcompile($value)
-                        ->raw(sprintf('] = $_trait_%s_blocks[', $i))
-                        ->string($key)
-                        ->raw(sprintf(']; unset($_trait_%s_blocks[', $i))
-                        ->string($key)
-                        ->raw("]);\n\n")
-                    ;
-                }
-            }
-
-            if ($countTraits > 1) {
-                $compiler
-                    ->write("\$this->traits = array_merge(\n")
-                    ->indent()
-                ;
-
-                for ($i = 0; $i < $countTraits; ++$i) {
-                    $compiler
-                        ->write(sprintf('$_trait_%s_blocks'.($i == $countTraits - 1 ? '' : ',')."\n", $i))
-                    ;
-                }
-
-                $compiler
-                    ->outdent()
-                    ->write(");\n\n")
-                ;
-            } else {
-                $compiler
-                    ->write("\$this->traits = \$_trait_0_blocks;\n\n")
-                ;
-            }
-
-            $compiler
-                ->write("\$this->blocks = array_merge(\n")
-                ->indent()
-                ->write("\$this->traits,\n")
-                ->write("array(\n")
-            ;
-        } else {
-            $compiler
-                ->write("\$this->blocks = array(\n")
-            ;
-        }
-
-        // blocks
-        $compiler
-            ->indent()
-        ;
-
-        foreach ($this->getNode('blocks') as $name => $node) {
-            $compiler
-                ->write(sprintf("'%s' => array(\$this, 'block_%s'),\n", $name, $name))
-            ;
-        }
-
-        if ($countTraits) {
-            $compiler
-                ->outdent()
-                ->write(")\n")
-            ;
-        }
-
-        $compiler
-            ->outdent()
-            ->write(");\n")
-            ->outdent()
-            ->subcompile($this->getNode('constructor_end'))
-            ->write("}\n\n")
-        ;
-    }
-
-    protected function compileDisplay(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write("protected function doDisplay(array \$context, array \$blocks = array())\n", "{\n")
-            ->indent()
-            ->subcompile($this->getNode('display_start'))
-            ->subcompile($this->getNode('body'))
-        ;
-
-        if (null !== $parent = $this->getNode('parent')) {
-            $compiler->addDebugInfo($parent);
-            if ($parent instanceof Twig_Node_Expression_Constant) {
-                $compiler->write('$this->parent');
-            } else {
-                $compiler->write('$this->getParent($context)');
-            }
-            $compiler->raw("->display(\$context, array_merge(\$this->blocks, \$blocks));\n");
-        }
-
-        $compiler
-            ->subcompile($this->getNode('display_end'))
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-
-    protected function compileClassFooter(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->subcompile($this->getNode('class_end'))
-            ->outdent()
-            ->write("}\n")
-        ;
-    }
-
-    protected function compileMacros(Twig_Compiler $compiler)
-    {
-        $compiler->subcompile($this->getNode('macros'));
-    }
-
-    protected function compileGetTemplateName(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write("public function getTemplateName()\n", "{\n")
-            ->indent()
-            ->write('return ')
-            ->repr($this->getAttribute('filename'))
-            ->raw(";\n")
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-
-    protected function compileIsTraitable(Twig_Compiler $compiler)
-    {
-        // A template can be used as a trait if:
-        //   * it has no parent
-        //   * it has no macros
-        //   * it has no body
-        //
-        // Put another way, a template can be used as a trait if it
-        // only contains blocks and use statements.
-        $traitable = null === $this->getNode('parent') && 0 === count($this->getNode('macros'));
-        if ($traitable) {
-            if ($this->getNode('body') instanceof Twig_Node_Body) {
-                $nodes = $this->getNode('body')->getNode(0);
-            } else {
-                $nodes = $this->getNode('body');
-            }
-
-            if (!count($nodes)) {
-                $nodes = new Twig_Node(array($nodes));
-            }
-
-            foreach ($nodes as $node) {
-                if (!count($node)) {
-                    continue;
-                }
-
-                if ($node instanceof Twig_Node_Text && ctype_space($node->getAttribute('data'))) {
-                    continue;
-                }
-
-                if ($node instanceof Twig_Node_BlockReference) {
-                    continue;
-                }
-
-                $traitable = false;
-                break;
-            }
-        }
-
-        if ($traitable) {
-            return;
-        }
-
-        $compiler
-            ->write("public function isTraitable()\n", "{\n")
-            ->indent()
-            ->write(sprintf("return %s;\n", $traitable ? 'true' : 'false'))
-            ->outdent()
-            ->write("}\n\n")
-        ;
-    }
-
-    protected function compileDebugInfo(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write("public function getDebugInfo()\n", "{\n")
-            ->indent()
-            ->write(sprintf("return %s;\n", str_replace("\n", '', var_export(array_reverse($compiler->getDebugInfo(), true), true))))
-            ->outdent()
-            ->write("}\n")
-        ;
-    }
-
-    protected function compileLoadTemplate(Twig_Compiler $compiler, $node, $var)
-    {
-        if ($node instanceof Twig_Node_Expression_Constant) {
-            $compiler
-                ->write(sprintf('%s = $this->loadTemplate(', $var))
-                ->subcompile($node)
-                ->raw(', ')
-                ->repr($compiler->getFilename())
-                ->raw(', ')
-                ->repr($node->getLine())
-                ->raw(");\n")
-            ;
-        } else {
-            $compiler
-                ->write(sprintf('%s = ', $var))
-                ->subcompile($node)
-                ->raw(";\n")
-                ->write(sprintf('if (!%s', $var))
-                ->raw(" instanceof Twig_Template) {\n")
-                ->indent()
-                ->write(sprintf('%s = $this->loadTemplate(%s')
-                ->raw(', ')
-                ->repr($compiler->getFilename())
-                ->raw(', ')
-                ->repr($node->getLine())
-                ->raw(");\n", $var, $var))
-                ->outdent()
-                ->write("}\n")
-            ;
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Print.php b/core/vendor/twig/twig/lib/Twig/Node/Print.php
deleted file mode 100644
index 4263536..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Print.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a node that outputs an expression.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Print extends Twig_Node implements Twig_NodeOutputInterface
-{
-    public function __construct(Twig_Node_Expression $expr, $lineno, $tag = null)
-    {
-        parent::__construct(array('expr' => $expr), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write('echo ')
-            ->subcompile($this->getNode('expr'))
-            ->raw(";\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php b/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php
deleted file mode 100644
index 8ca772b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Sandbox.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a sandbox node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Sandbox extends Twig_Node
-{
-    public function __construct(Twig_NodeInterface $body, $lineno, $tag = null)
-    {
-        parent::__construct(array('body' => $body), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write("\$sandbox = \$this->env->getExtension('sandbox');\n")
-            ->write("if (!\$alreadySandboxed = \$sandbox->isSandboxed()) {\n")
-            ->indent()
-            ->write("\$sandbox->enableSandbox();\n")
-            ->outdent()
-            ->write("}\n")
-            ->subcompile($this->getNode('body'))
-            ->write("if (!\$alreadySandboxed) {\n")
-            ->indent()
-            ->write("\$sandbox->disableSandbox();\n")
-            ->outdent()
-            ->write("}\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php b/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
deleted file mode 100644
index 823e7ac..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/SandboxedPrint.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_Node_SandboxedPrint adds a check for the __toString() method
- * when the variable is an object and the sandbox is activated.
- *
- * When there is a simple Print statement, like {{ article }},
- * and if the sandbox is enabled, we need to check that the __toString()
- * method is allowed if 'article' is an object.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_SandboxedPrint extends Twig_Node_Print
-{
-    public function __construct(Twig_Node_Expression $expr, $lineno, $tag = null)
-    {
-        parent::__construct($expr, $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write('echo $this->env->getExtension(\'sandbox\')->ensureToStringAllowed(')
-            ->subcompile($this->getNode('expr'))
-            ->raw(");\n")
-        ;
-    }
-
-    /**
-     * Removes node filters.
-     *
-     * This is mostly needed when another visitor adds filters (like the escaper one).
-     *
-     * @param Twig_Node $node A Node
-     *
-     * @return Twig_Node
-     */
-    protected function removeNodeFilter($node)
-    {
-        if ($node instanceof Twig_Node_Expression_Filter) {
-            return $this->removeNodeFilter($node->getNode('node'));
-        }
-
-        return $node;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Set.php b/core/vendor/twig/twig/lib/Twig/Node/Set.php
deleted file mode 100644
index 407d147..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Set.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a set node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Set extends Twig_Node
-{
-    public function __construct($capture, Twig_NodeInterface $names, Twig_NodeInterface $values, $lineno, $tag = null)
-    {
-        parent::__construct(array('names' => $names, 'values' => $values), array('capture' => $capture, 'safe' => false), $lineno, $tag);
-
-        /*
-         * Optimizes the node when capture is used for a large block of text.
-         *
-         * {% set foo %}foo{% endset %} is compiled to $context['foo'] = new Twig_Markup("foo");
-         */
-        if ($this->getAttribute('capture')) {
-            $this->setAttribute('safe', true);
-
-            $values = $this->getNode('values');
-            if ($values instanceof Twig_Node_Text) {
-                $this->setNode('values', new Twig_Node_Expression_Constant($values->getAttribute('data'), $values->getLine()));
-                $this->setAttribute('capture', false);
-            }
-        }
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler->addDebugInfo($this);
-
-        if (count($this->getNode('names')) > 1) {
-            $compiler->write('list(');
-            foreach ($this->getNode('names') as $idx => $node) {
-                if ($idx) {
-                    $compiler->raw(', ');
-                }
-
-                $compiler->subcompile($node);
-            }
-            $compiler->raw(')');
-        } else {
-            if ($this->getAttribute('capture')) {
-                $compiler
-                    ->write("ob_start();\n")
-                    ->subcompile($this->getNode('values'))
-                ;
-            }
-
-            $compiler->subcompile($this->getNode('names'), false);
-
-            if ($this->getAttribute('capture')) {
-                $compiler->raw(" = ('' === \$tmp = ob_get_clean()) ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset())");
-            }
-        }
-
-        if (!$this->getAttribute('capture')) {
-            $compiler->raw(' = ');
-
-            if (count($this->getNode('names')) > 1) {
-                $compiler->write('array(');
-                foreach ($this->getNode('values') as $idx => $value) {
-                    if ($idx) {
-                        $compiler->raw(', ');
-                    }
-
-                    $compiler->subcompile($value);
-                }
-                $compiler->raw(')');
-            } else {
-                if ($this->getAttribute('safe')) {
-                    $compiler
-                        ->raw("('' === \$tmp = ")
-                        ->subcompile($this->getNode('values'))
-                        ->raw(") ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset())")
-                    ;
-                } else {
-                    $compiler->subcompile($this->getNode('values'));
-                }
-            }
-        }
-
-        $compiler->raw(";\n");
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/SetTemp.php b/core/vendor/twig/twig/lib/Twig/Node/SetTemp.php
deleted file mode 100644
index 3bdd1cb..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/SetTemp.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Node_SetTemp extends Twig_Node
-{
-    public function __construct($name, $lineno)
-    {
-        parent::__construct(array(), array('name' => $name), $lineno);
-    }
-
-    public function compile(Twig_Compiler $compiler)
-    {
-        $name = $this->getAttribute('name');
-        $compiler
-            ->addDebugInfo($this)
-            ->write('if (isset($context[')
-            ->string($name)
-            ->raw('])) { $_')
-            ->raw($name)
-            ->raw('_ = $context[')
-            ->repr($name)
-            ->raw(']; } else { $_')
-            ->raw($name)
-            ->raw("_ = null; }\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php b/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php
deleted file mode 100644
index 1478c59..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Spaceless.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a spaceless node.
- *
- * It removes spaces between HTML tags.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Spaceless extends Twig_Node
-{
-    public function __construct(Twig_NodeInterface $body, $lineno, $tag = 'spaceless')
-    {
-        parent::__construct(array('body' => $body), array(), $lineno, $tag);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write("ob_start();\n")
-            ->subcompile($this->getNode('body'))
-            ->write("echo trim(preg_replace('/>\s+</', '><', ob_get_clean()));\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Node/Text.php b/core/vendor/twig/twig/lib/Twig/Node/Text.php
deleted file mode 100644
index 6863604..0000000
--- a/core/vendor/twig/twig/lib/Twig/Node/Text.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a text node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Node_Text extends Twig_Node implements Twig_NodeOutputInterface
-{
-    public function __construct($data, $lineno)
-    {
-        parent::__construct(array(), array('data' => $data), $lineno);
-    }
-
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->addDebugInfo($this)
-            ->write('echo ')
-            ->string($this->getAttribute('data'))
-            ->raw(";\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeInterface.php b/core/vendor/twig/twig/lib/Twig/NodeInterface.php
deleted file mode 100644
index 8077349..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a node in the AST.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 3.0)
- */
-interface Twig_NodeInterface extends Countable, IteratorAggregate
-{
-    /**
-     * Compiles the node to PHP.
-     *
-     * @param Twig_Compiler $compiler A Twig_Compiler instance
-     */
-    public function compile(Twig_Compiler $compiler);
-
-    public function getLine();
-
-    public function getNodeTag();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php b/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
deleted file mode 100644
index 22172c0..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a displayable node in the AST.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface Twig_NodeOutputInterface
-{
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeTraverser.php b/core/vendor/twig/twig/lib/Twig/NodeTraverser.php
deleted file mode 100644
index 6024e65..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeTraverser.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_NodeTraverser is a node traverser.
- *
- * It visits all nodes and their children and calls the given visitor for each.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_NodeTraverser
-{
-    protected $env;
-    protected $visitors;
-
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment            $env      A Twig_Environment instance
-     * @param Twig_NodeVisitorInterface[] $visitors An array of Twig_NodeVisitorInterface instances
-     */
-    public function __construct(Twig_Environment $env, array $visitors = array())
-    {
-        $this->env = $env;
-        $this->visitors = array();
-        foreach ($visitors as $visitor) {
-            $this->addVisitor($visitor);
-        }
-    }
-
-    /**
-     * Adds a visitor.
-     *
-     * @param Twig_NodeVisitorInterface $visitor A Twig_NodeVisitorInterface instance
-     */
-    public function addVisitor(Twig_NodeVisitorInterface $visitor)
-    {
-        if (!isset($this->visitors[$visitor->getPriority()])) {
-            $this->visitors[$visitor->getPriority()] = array();
-        }
-
-        $this->visitors[$visitor->getPriority()][] = $visitor;
-    }
-
-    /**
-     * Traverses a node and calls the registered visitors.
-     *
-     * @param Twig_NodeInterface $node A Twig_NodeInterface instance
-     *
-     * @return Twig_NodeInterface
-     */
-    public function traverse(Twig_NodeInterface $node)
-    {
-        ksort($this->visitors);
-        foreach ($this->visitors as $visitors) {
-            foreach ($visitors as $visitor) {
-                $node = $this->traverseForVisitor($visitor, $node);
-            }
-        }
-
-        return $node;
-    }
-
-    protected function traverseForVisitor(Twig_NodeVisitorInterface $visitor, Twig_NodeInterface $node = null)
-    {
-        if (null === $node) {
-            return;
-        }
-
-        $node = $visitor->enterNode($node, $this->env);
-
-        foreach ($node as $k => $n) {
-            if (false !== $n = $this->traverseForVisitor($visitor, $n)) {
-                $node->setNode($k, $n);
-            } else {
-                $node->removeNode($k);
-            }
-        }
-
-        return $visitor->leaveNode($node, $this->env);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
deleted file mode 100644
index 5c94977..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_NodeVisitor_Escaper implements output escaping.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_NodeVisitor_Escaper extends Twig_BaseNodeVisitor
-{
-    protected $statusStack = array();
-    protected $blocks = array();
-    protected $safeAnalysis;
-    protected $traverser;
-    protected $defaultStrategy = false;
-    protected $safeVars = array();
-
-    public function __construct()
-    {
-        $this->safeAnalysis = new Twig_NodeVisitor_SafeAnalysis();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Module) {
-            if ($env->hasExtension('escaper') && $defaultStrategy = $env->getExtension('escaper')->getDefaultStrategy($node->getAttribute('filename'))) {
-                $this->defaultStrategy = $defaultStrategy;
-            }
-            $this->safeVars = array();
-        } elseif ($node instanceof Twig_Node_AutoEscape) {
-            $this->statusStack[] = $node->getAttribute('value');
-        } elseif ($node instanceof Twig_Node_Block) {
-            $this->statusStack[] = isset($this->blocks[$node->getAttribute('name')]) ? $this->blocks[$node->getAttribute('name')] : $this->needEscaping($env);
-        } elseif ($node instanceof Twig_Node_Import) {
-            $this->safeVars[] = $node->getNode('var')->getAttribute('name');
-        }
-
-        return $node;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Module) {
-            $this->defaultStrategy = false;
-            $this->safeVars = array();
-        } elseif ($node instanceof Twig_Node_Expression_Filter) {
-            return $this->preEscapeFilterNode($node, $env);
-        } elseif ($node instanceof Twig_Node_Print) {
-            return $this->escapePrintNode($node, $env, $this->needEscaping($env));
-        }
-
-        if ($node instanceof Twig_Node_AutoEscape || $node instanceof Twig_Node_Block) {
-            array_pop($this->statusStack);
-        } elseif ($node instanceof Twig_Node_BlockReference) {
-            $this->blocks[$node->getAttribute('name')] = $this->needEscaping($env);
-        }
-
-        return $node;
-    }
-
-    protected function escapePrintNode(Twig_Node_Print $node, Twig_Environment $env, $type)
-    {
-        if (false === $type) {
-            return $node;
-        }
-
-        $expression = $node->getNode('expr');
-
-        if ($this->isSafeFor($type, $expression, $env)) {
-            return $node;
-        }
-
-        $class = get_class($node);
-
-        return new $class(
-            $this->getEscaperFilter($type, $expression),
-            $node->getLine()
-        );
-    }
-
-    protected function preEscapeFilterNode(Twig_Node_Expression_Filter $filter, Twig_Environment $env)
-    {
-        $name = $filter->getNode('filter')->getAttribute('value');
-
-        $type = $env->getFilter($name)->getPreEscape();
-        if (null === $type) {
-            return $filter;
-        }
-
-        $node = $filter->getNode('node');
-        if ($this->isSafeFor($type, $node, $env)) {
-            return $filter;
-        }
-
-        $filter->setNode('node', $this->getEscaperFilter($type, $node));
-
-        return $filter;
-    }
-
-    protected function isSafeFor($type, Twig_NodeInterface $expression, $env)
-    {
-        $safe = $this->safeAnalysis->getSafe($expression);
-
-        if (null === $safe) {
-            if (null === $this->traverser) {
-                $this->traverser = new Twig_NodeTraverser($env, array($this->safeAnalysis));
-            }
-
-            $this->safeAnalysis->setSafeVars($this->safeVars);
-
-            $this->traverser->traverse($expression);
-            $safe = $this->safeAnalysis->getSafe($expression);
-        }
-
-        return in_array($type, $safe) || in_array('all', $safe);
-    }
-
-    protected function needEscaping(Twig_Environment $env)
-    {
-        if (count($this->statusStack)) {
-            return $this->statusStack[count($this->statusStack) - 1];
-        }
-
-        return $this->defaultStrategy ? $this->defaultStrategy : false;
-    }
-
-    protected function getEscaperFilter($type, Twig_NodeInterface $node)
-    {
-        $line = $node->getLine();
-        $name = new Twig_Node_Expression_Constant('escape', $line);
-        $args = new Twig_Node(array(new Twig_Node_Expression_Constant((string) $type, $line), new Twig_Node_Expression_Constant(null, $line), new Twig_Node_Expression_Constant(true, $line)));
-
-        return new Twig_Node_Expression_Filter($node, $name, $args, $line);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
deleted file mode 100644
index 872b7fe..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_NodeVisitor_Optimizer tries to optimizes the AST.
- *
- * This visitor is always the last registered one.
- *
- * You can configure which optimizations you want to activate via the
- * optimizer mode.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_NodeVisitor_Optimizer extends Twig_BaseNodeVisitor
-{
-    const OPTIMIZE_ALL = -1;
-    const OPTIMIZE_NONE = 0;
-    const OPTIMIZE_FOR = 2;
-    const OPTIMIZE_RAW_FILTER = 4;
-    const OPTIMIZE_VAR_ACCESS = 8;
-
-    protected $loops = array();
-    protected $loopsTargets = array();
-    protected $optimizers;
-    protected $prependedNodes = array();
-    protected $inABody = false;
-
-    /**
-     * Constructor.
-     *
-     * @param int $optimizers The optimizer mode
-     */
-    public function __construct($optimizers = -1)
-    {
-        if (!is_int($optimizers) || $optimizers > (self::OPTIMIZE_FOR | self::OPTIMIZE_RAW_FILTER | self::OPTIMIZE_VAR_ACCESS)) {
-            throw new InvalidArgumentException(sprintf('Optimizer mode "%s" is not valid.', $optimizers));
-        }
-
-        $this->optimizers = $optimizers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if (self::OPTIMIZE_FOR === (self::OPTIMIZE_FOR & $this->optimizers)) {
-            $this->enterOptimizeFor($node, $env);
-        }
-
-        if (PHP_VERSION_ID < 50400 && self::OPTIMIZE_VAR_ACCESS === (self::OPTIMIZE_VAR_ACCESS & $this->optimizers) && !$env->isStrictVariables() && !$env->hasExtension('sandbox')) {
-            if ($this->inABody) {
-                if (!$node instanceof Twig_Node_Expression) {
-                    if (get_class($node) !== 'Twig_Node') {
-                        array_unshift($this->prependedNodes, array());
-                    }
-                } else {
-                    $node = $this->optimizeVariables($node, $env);
-                }
-            } elseif ($node instanceof Twig_Node_Body) {
-                $this->inABody = true;
-            }
-        }
-
-        return $node;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
-    {
-        $expression = $node instanceof Twig_Node_Expression;
-
-        if (self::OPTIMIZE_FOR === (self::OPTIMIZE_FOR & $this->optimizers)) {
-            $this->leaveOptimizeFor($node, $env);
-        }
-
-        if (self::OPTIMIZE_RAW_FILTER === (self::OPTIMIZE_RAW_FILTER & $this->optimizers)) {
-            $node = $this->optimizeRawFilter($node, $env);
-        }
-
-        $node = $this->optimizePrintNode($node, $env);
-
-        if (self::OPTIMIZE_VAR_ACCESS === (self::OPTIMIZE_VAR_ACCESS & $this->optimizers) && !$env->isStrictVariables() && !$env->hasExtension('sandbox')) {
-            if ($node instanceof Twig_Node_Body) {
-                $this->inABody = false;
-            } elseif ($this->inABody) {
-                if (!$expression && get_class($node) !== 'Twig_Node' && $prependedNodes = array_shift($this->prependedNodes)) {
-                    $nodes = array();
-                    foreach (array_unique($prependedNodes) as $name) {
-                        $nodes[] = new Twig_Node_SetTemp($name, $node->getLine());
-                    }
-
-                    $nodes[] = $node;
-                    $node = new Twig_Node($nodes);
-                }
-            }
-        }
-
-        return $node;
-    }
-
-    protected function optimizeVariables(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if ('Twig_Node_Expression_Name' === get_class($node) && $node->isSimple()) {
-            $this->prependedNodes[0][] = $node->getAttribute('name');
-
-            return new Twig_Node_Expression_TempName($node->getAttribute('name'), $node->getLine());
-        }
-
-        return $node;
-    }
-
-    /**
-     * Optimizes print nodes.
-     *
-     * It replaces:
-     *
-     *   * "echo $this->render(Parent)Block()" with "$this->display(Parent)Block()"
-     *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
-     *
-     * @return Twig_NodeInterface
-     */
-    protected function optimizePrintNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if (!$node instanceof Twig_Node_Print) {
-            return $node;
-        }
-
-        if (
-            $node->getNode('expr') instanceof Twig_Node_Expression_BlockReference ||
-            $node->getNode('expr') instanceof Twig_Node_Expression_Parent
-        ) {
-            $node->getNode('expr')->setAttribute('output', true);
-
-            return $node->getNode('expr');
-        }
-
-        return $node;
-    }
-
-    /**
-     * Removes "raw" filters.
-     *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
-     *
-     * @return Twig_NodeInterface
-     */
-    protected function optimizeRawFilter(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Expression_Filter && 'raw' == $node->getNode('filter')->getAttribute('value')) {
-            return $node->getNode('node');
-        }
-
-        return $node;
-    }
-
-    /**
-     * Optimizes "for" tag by removing the "loop" variable creation whenever possible.
-     *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
-     */
-    protected function enterOptimizeFor(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_For) {
-            // disable the loop variable by default
-            $node->setAttribute('with_loop', false);
-            array_unshift($this->loops, $node);
-            array_unshift($this->loopsTargets, $node->getNode('value_target')->getAttribute('name'));
-            array_unshift($this->loopsTargets, $node->getNode('key_target')->getAttribute('name'));
-        } elseif (!$this->loops) {
-            // we are outside a loop
-            return;
-        }
-
-        // when do we need to add the loop variable back?
-
-        // the loop variable is referenced for the current loop
-        elseif ($node instanceof Twig_Node_Expression_Name && 'loop' === $node->getAttribute('name')) {
-            $node->setAttribute('always_defined', true);
-            $this->addLoopToCurrent();
-        }
-
-        // optimize access to loop targets
-        elseif ($node instanceof Twig_Node_Expression_Name && in_array($node->getAttribute('name'), $this->loopsTargets)) {
-            $node->setAttribute('always_defined', true);
-        }
-
-        // block reference
-        elseif ($node instanceof Twig_Node_BlockReference || $node instanceof Twig_Node_Expression_BlockReference) {
-            $this->addLoopToCurrent();
-        }
-
-        // include without the only attribute
-        elseif ($node instanceof Twig_Node_Include && !$node->getAttribute('only')) {
-            $this->addLoopToAll();
-        }
-
-        // include function without the with_context=false parameter
-        elseif ($node instanceof Twig_Node_Expression_Function
-            && 'include' === $node->getAttribute('name')
-            && (!$node->getNode('arguments')->hasNode('with_context')
-                 || false !== $node->getNode('arguments')->getNode('with_context')->getAttribute('value')
-               )
-        ) {
-            $this->addLoopToAll();
-        }
-
-        // the loop variable is referenced via an attribute
-        elseif ($node instanceof Twig_Node_Expression_GetAttr
-            && (!$node->getNode('attribute') instanceof Twig_Node_Expression_Constant
-                || 'parent' === $node->getNode('attribute')->getAttribute('value')
-               )
-            && (true === $this->loops[0]->getAttribute('with_loop')
-                || ($node->getNode('node') instanceof Twig_Node_Expression_Name
-                    && 'loop' === $node->getNode('node')->getAttribute('name')
-                   )
-               )
-        ) {
-            $this->addLoopToAll();
-        }
-    }
-
-    /**
-     * Optimizes "for" tag by removing the "loop" variable creation whenever possible.
-     *
-     * @param Twig_NodeInterface $node A Node
-     * @param Twig_Environment   $env  The current Twig environment
-     */
-    protected function leaveOptimizeFor(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_For) {
-            array_shift($this->loops);
-            array_shift($this->loopsTargets);
-            array_shift($this->loopsTargets);
-        }
-    }
-
-    protected function addLoopToCurrent()
-    {
-        $this->loops[0]->setAttribute('with_loop', true);
-    }
-
-    protected function addLoopToAll()
-    {
-        foreach ($this->loops as $loop) {
-            $loop->setAttribute('with_loop', true);
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPriority()
-    {
-        return 255;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php
deleted file mode 100644
index 439f5bf..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_NodeVisitor_SafeAnalysis extends Twig_BaseNodeVisitor
-{
-    protected $data = array();
-    protected $safeVars = array();
-
-    public function setSafeVars($safeVars)
-    {
-        $this->safeVars = $safeVars;
-    }
-
-    public function getSafe(Twig_NodeInterface $node)
-    {
-        $hash = spl_object_hash($node);
-        if (!isset($this->data[$hash])) {
-            return;
-        }
-
-        foreach ($this->data[$hash] as $bucket) {
-            if ($bucket['key'] !== $node) {
-                continue;
-            }
-
-            if (in_array('html_attr', $bucket['value'])) {
-                $bucket['value'][] = 'html';
-            }
-
-            return $bucket['value'];
-        }
-    }
-
-    protected function setSafe(Twig_NodeInterface $node, array $safe)
-    {
-        $hash = spl_object_hash($node);
-        if (isset($this->data[$hash])) {
-            foreach ($this->data[$hash] as &$bucket) {
-                if ($bucket['key'] === $node) {
-                    $bucket['value'] = $safe;
-
-                    return;
-                }
-            }
-        }
-        $this->data[$hash][] = array(
-            'key' => $node,
-            'value' => $safe,
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
-    {
-        return $node;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Expression_Constant) {
-            // constants are marked safe for all
-            $this->setSafe($node, array('all'));
-        } elseif ($node instanceof Twig_Node_Expression_BlockReference) {
-            // blocks are safe by definition
-            $this->setSafe($node, array('all'));
-        } elseif ($node instanceof Twig_Node_Expression_Parent) {
-            // parent block is safe by definition
-            $this->setSafe($node, array('all'));
-        } elseif ($node instanceof Twig_Node_Expression_Conditional) {
-            // intersect safeness of both operands
-            $safe = $this->intersectSafe($this->getSafe($node->getNode('expr2')), $this->getSafe($node->getNode('expr3')));
-            $this->setSafe($node, $safe);
-        } elseif ($node instanceof Twig_Node_Expression_Filter) {
-            // filter expression is safe when the filter is safe
-            $name = $node->getNode('filter')->getAttribute('value');
-            $args = $node->getNode('arguments');
-            if (false !== $filter = $env->getFilter($name)) {
-                $safe = $filter->getSafe($args);
-                if (null === $safe) {
-                    $safe = $this->intersectSafe($this->getSafe($node->getNode('node')), $filter->getPreservesSafety());
-                }
-                $this->setSafe($node, $safe);
-            } else {
-                $this->setSafe($node, array());
-            }
-        } elseif ($node instanceof Twig_Node_Expression_Function) {
-            // function expression is safe when the function is safe
-            $name = $node->getAttribute('name');
-            $args = $node->getNode('arguments');
-            $function = $env->getFunction($name);
-            if (false !== $function) {
-                $this->setSafe($node, $function->getSafe($args));
-            } else {
-                $this->setSafe($node, array());
-            }
-        } elseif ($node instanceof Twig_Node_Expression_MethodCall) {
-            if ($node->getAttribute('safe')) {
-                $this->setSafe($node, array('all'));
-            } else {
-                $this->setSafe($node, array());
-            }
-        } elseif ($node instanceof Twig_Node_Expression_GetAttr && $node->getNode('node') instanceof Twig_Node_Expression_Name) {
-            $name = $node->getNode('node')->getAttribute('name');
-            // attributes on template instances are safe
-            if ('_self' == $name || in_array($name, $this->safeVars)) {
-                $this->setSafe($node, array('all'));
-            } else {
-                $this->setSafe($node, array());
-            }
-        } else {
-            $this->setSafe($node, array());
-        }
-
-        return $node;
-    }
-
-    protected function intersectSafe(array $a = null, array $b = null)
-    {
-        if (null === $a || null === $b) {
-            return array();
-        }
-
-        if (in_array('all', $a)) {
-            return $b;
-        }
-
-        if (in_array('all', $b)) {
-            return $a;
-        }
-
-        return array_intersect($a, $b);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php b/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
deleted file mode 100644
index 7f1b913..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_NodeVisitor_Sandbox implements sandboxing.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_NodeVisitor_Sandbox extends Twig_BaseNodeVisitor
-{
-    protected $inAModule = false;
-    protected $tags;
-    protected $filters;
-    protected $functions;
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Module) {
-            $this->inAModule = true;
-            $this->tags = array();
-            $this->filters = array();
-            $this->functions = array();
-
-            return $node;
-        } elseif ($this->inAModule) {
-            // look for tags
-            if ($node->getNodeTag() && !isset($this->tags[$node->getNodeTag()])) {
-                $this->tags[$node->getNodeTag()] = $node;
-            }
-
-            // look for filters
-            if ($node instanceof Twig_Node_Expression_Filter && !isset($this->filters[$node->getNode('filter')->getAttribute('value')])) {
-                $this->filters[$node->getNode('filter')->getAttribute('value')] = $node;
-            }
-
-            // look for functions
-            if ($node instanceof Twig_Node_Expression_Function && !isset($this->functions[$node->getAttribute('name')])) {
-                $this->functions[$node->getAttribute('name')] = $node;
-            }
-
-            // wrap print to check __toString() calls
-            if ($node instanceof Twig_Node_Print) {
-                return new Twig_Node_SandboxedPrint($node->getNode('expr'), $node->getLine(), $node->getNodeTag());
-            }
-        }
-
-        return $node;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Module) {
-            $this->inAModule = false;
-
-            $node->setNode('display_start', new Twig_Node(array(new Twig_Node_CheckSecurity($this->filters, $this->tags, $this->functions), $node->getNode('display_start'))));
-        }
-
-        return $node;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php b/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
deleted file mode 100644
index f276163..0000000
--- a/core/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Twig_NodeVisitorInterface is the interface the all node visitor classes must implement.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface Twig_NodeVisitorInterface
-{
-    /**
-     * Called before child nodes are visited.
-     *
-     * @param Twig_NodeInterface $node The node to visit
-     * @param Twig_Environment   $env  The Twig environment instance
-     *
-     * @return Twig_NodeInterface The modified node
-     */
-    public function enterNode(Twig_NodeInterface $node, Twig_Environment $env);
-
-    /**
-     * Called after child nodes are visited.
-     *
-     * @param Twig_NodeInterface $node The node to visit
-     * @param Twig_Environment   $env  The Twig environment instance
-     *
-     * @return Twig_NodeInterface|false The modified node or false if the node must be removed
-     */
-    public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env);
-
-    /**
-     * Returns the priority for this visitor.
-     *
-     * Priority should be between -10 and 10 (0 is the default).
-     *
-     * @return int The priority level
-     */
-    public function getPriority();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Parser.php b/core/vendor/twig/twig/lib/Twig/Parser.php
deleted file mode 100644
index dd9c1fc..0000000
--- a/core/vendor/twig/twig/lib/Twig/Parser.php
+++ /dev/null
@@ -1,399 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Default parser implementation.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Parser implements Twig_ParserInterface
-{
-    protected $stack = array();
-    protected $stream;
-    protected $parent;
-    protected $handlers;
-    protected $visitors;
-    protected $expressionParser;
-    protected $blocks;
-    protected $blockStack;
-    protected $macros;
-    protected $env;
-    protected $reservedMacroNames;
-    protected $importedSymbols;
-    protected $traits;
-    protected $embeddedTemplates = array();
-
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment $env A Twig_Environment instance
-     */
-    public function __construct(Twig_Environment $env)
-    {
-        $this->env = $env;
-    }
-
-    public function getEnvironment()
-    {
-        return $this->env;
-    }
-
-    public function getVarName()
-    {
-        return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
-    }
-
-    public function getFilename()
-    {
-        return $this->stream->getFilename();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function parse(Twig_TokenStream $stream, $test = null, $dropNeedle = false)
-    {
-        // push all variables into the stack to keep the current state of the parser
-        $vars = get_object_vars($this);
-        unset($vars['stack'], $vars['env'], $vars['handlers'], $vars['visitors'], $vars['expressionParser']);
-        $this->stack[] = $vars;
-
-        // tag handlers
-        if (null === $this->handlers) {
-            $this->handlers = $this->env->getTokenParsers();
-            $this->handlers->setParser($this);
-        }
-
-        // node visitors
-        if (null === $this->visitors) {
-            $this->visitors = $this->env->getNodeVisitors();
-        }
-
-        if (null === $this->expressionParser) {
-            $this->expressionParser = new Twig_ExpressionParser($this, $this->env->getUnaryOperators(), $this->env->getBinaryOperators());
-        }
-
-        $this->stream = $stream;
-        $this->parent = null;
-        $this->blocks = array();
-        $this->macros = array();
-        $this->traits = array();
-        $this->blockStack = array();
-        $this->importedSymbols = array(array());
-        $this->embeddedTemplates = array();
-
-        try {
-            $body = $this->subparse($test, $dropNeedle);
-
-            if (null !== $this->parent) {
-                if (null === $body = $this->filterBodyNodes($body)) {
-                    $body = new Twig_Node();
-                }
-            }
-        } catch (Twig_Error_Syntax $e) {
-            if (!$e->getTemplateFile()) {
-                $e->setTemplateFile($this->getFilename());
-            }
-
-            if (!$e->getTemplateLine()) {
-                $e->setTemplateLine($this->stream->getCurrent()->getLine());
-            }
-
-            throw $e;
-        }
-
-        $node = new Twig_Node_Module(new Twig_Node_Body(array($body)), $this->parent, new Twig_Node($this->blocks), new Twig_Node($this->macros), new Twig_Node($this->traits), $this->embeddedTemplates, $this->getFilename());
-
-        $traverser = new Twig_NodeTraverser($this->env, $this->visitors);
-
-        $node = $traverser->traverse($node);
-
-        // restore previous stack so previous parse() call can resume working
-        foreach (array_pop($this->stack) as $key => $val) {
-            $this->$key = $val;
-        }
-
-        return $node;
-    }
-
-    public function subparse($test, $dropNeedle = false)
-    {
-        $lineno = $this->getCurrentToken()->getLine();
-        $rv = array();
-        while (!$this->stream->isEOF()) {
-            switch ($this->getCurrentToken()->getType()) {
-                case Twig_Token::TEXT_TYPE:
-                    $token = $this->stream->next();
-                    $rv[] = new Twig_Node_Text($token->getValue(), $token->getLine());
-                    break;
-
-                case Twig_Token::VAR_START_TYPE:
-                    $token = $this->stream->next();
-                    $expr = $this->expressionParser->parseExpression();
-                    $this->stream->expect(Twig_Token::VAR_END_TYPE);
-                    $rv[] = new Twig_Node_Print($expr, $token->getLine());
-                    break;
-
-                case Twig_Token::BLOCK_START_TYPE:
-                    $this->stream->next();
-                    $token = $this->getCurrentToken();
-
-                    if ($token->getType() !== Twig_Token::NAME_TYPE) {
-                        throw new Twig_Error_Syntax('A block must start with a tag name', $token->getLine(), $this->getFilename());
-                    }
-
-                    if (null !== $test && call_user_func($test, $token)) {
-                        if ($dropNeedle) {
-                            $this->stream->next();
-                        }
-
-                        if (1 === count($rv)) {
-                            return $rv[0];
-                        }
-
-                        return new Twig_Node($rv, array(), $lineno);
-                    }
-
-                    $subparser = $this->handlers->getTokenParser($token->getValue());
-                    if (null === $subparser) {
-                        if (null !== $test) {
-                            $error = sprintf('Unexpected tag name "%s"', $token->getValue());
-                            if (is_array($test) && isset($test[0]) && $test[0] instanceof Twig_TokenParserInterface) {
-                                $error .= sprintf(' (expecting closing tag for the "%s" tag defined near line %s)', $test[0]->getTag(), $lineno);
-                            }
-
-                            throw new Twig_Error_Syntax($error, $token->getLine(), $this->getFilename());
-                        }
-
-                        $message = sprintf('Unknown tag name "%s"', $token->getValue());
-                        if ($alternatives = $this->env->computeAlternatives($token->getValue(), array_keys($this->env->getTags()))) {
-                            $message = sprintf('%s. Did you mean "%s"', $message, implode('", "', $alternatives));
-                        }
-
-                        throw new Twig_Error_Syntax($message, $token->getLine(), $this->getFilename());
-                    }
-
-                    $this->stream->next();
-
-                    $node = $subparser->parse($token);
-                    if (null !== $node) {
-                        $rv[] = $node;
-                    }
-                    break;
-
-                default:
-                    throw new Twig_Error_Syntax('Lexer or parser ended up in unsupported state.', 0, $this->getFilename());
-            }
-        }
-
-        if (1 === count($rv)) {
-            return $rv[0];
-        }
-
-        return new Twig_Node($rv, array(), $lineno);
-    }
-
-    public function addHandler($name, $class)
-    {
-        $this->handlers[$name] = $class;
-    }
-
-    public function addNodeVisitor(Twig_NodeVisitorInterface $visitor)
-    {
-        $this->visitors[] = $visitor;
-    }
-
-    public function getBlockStack()
-    {
-        return $this->blockStack;
-    }
-
-    public function peekBlockStack()
-    {
-        return $this->blockStack[count($this->blockStack) - 1];
-    }
-
-    public function popBlockStack()
-    {
-        array_pop($this->blockStack);
-    }
-
-    public function pushBlockStack($name)
-    {
-        $this->blockStack[] = $name;
-    }
-
-    public function hasBlock($name)
-    {
-        return isset($this->blocks[$name]);
-    }
-
-    public function getBlock($name)
-    {
-        return $this->blocks[$name];
-    }
-
-    public function setBlock($name, Twig_Node_Block $value)
-    {
-        $this->blocks[$name] = new Twig_Node_Body(array($value), array(), $value->getLine());
-    }
-
-    public function hasMacro($name)
-    {
-        return isset($this->macros[$name]);
-    }
-
-    public function setMacro($name, Twig_Node_Macro $node)
-    {
-        if ($this->isReservedMacroName($name)) {
-            throw new Twig_Error_Syntax(sprintf('"%s" cannot be used as a macro name as it is a reserved keyword', $name), $node->getLine(), $this->getFilename());
-        }
-
-        $this->macros[$name] = $node;
-    }
-
-    public function isReservedMacroName($name)
-    {
-        if (null === $this->reservedMacroNames) {
-            $this->reservedMacroNames = array();
-            $r = new ReflectionClass($this->env->getBaseTemplateClass());
-            foreach ($r->getMethods() as $method) {
-                $methodName = strtolower($method->getName());
-
-                if ('get' === substr($methodName, 0, 3) && isset($methodName[3])) {
-                    $this->reservedMacroNames[] = substr($methodName, 3);
-                }
-            }
-        }
-
-        return in_array(strtolower($name), $this->reservedMacroNames);
-    }
-
-    public function addTrait($trait)
-    {
-        $this->traits[] = $trait;
-    }
-
-    public function hasTraits()
-    {
-        return count($this->traits) > 0;
-    }
-
-    public function embedTemplate(Twig_Node_Module $template)
-    {
-        $template->setIndex(mt_rand());
-
-        $this->embeddedTemplates[] = $template;
-    }
-
-    public function addImportedSymbol($type, $alias, $name = null, Twig_Node_Expression $node = null)
-    {
-        $this->importedSymbols[0][$type][$alias] = array('name' => $name, 'node' => $node);
-    }
-
-    public function getImportedSymbol($type, $alias)
-    {
-        foreach ($this->importedSymbols as $functions) {
-            if (isset($functions[$type][$alias])) {
-                return $functions[$type][$alias];
-            }
-        }
-    }
-
-    public function isMainScope()
-    {
-        return 1 === count($this->importedSymbols);
-    }
-
-    public function pushLocalScope()
-    {
-        array_unshift($this->importedSymbols, array());
-    }
-
-    public function popLocalScope()
-    {
-        array_shift($this->importedSymbols);
-    }
-
-    /**
-     * Gets the expression parser.
-     *
-     * @return Twig_ExpressionParser The expression parser
-     */
-    public function getExpressionParser()
-    {
-        return $this->expressionParser;
-    }
-
-    public function getParent()
-    {
-        return $this->parent;
-    }
-
-    public function setParent($parent)
-    {
-        $this->parent = $parent;
-    }
-
-    /**
-     * Gets the token stream.
-     *
-     * @return Twig_TokenStream The token stream
-     */
-    public function getStream()
-    {
-        return $this->stream;
-    }
-
-    /**
-     * Gets the current token.
-     *
-     * @return Twig_Token The current token
-     */
-    public function getCurrentToken()
-    {
-        return $this->stream->getCurrent();
-    }
-
-    protected function filterBodyNodes(Twig_NodeInterface $node)
-    {
-        // check that the body does not contain non-empty output nodes
-        if (
-            ($node instanceof Twig_Node_Text && !ctype_space($node->getAttribute('data')))
-            ||
-            (!$node instanceof Twig_Node_Text && !$node instanceof Twig_Node_BlockReference && $node instanceof Twig_NodeOutputInterface)
-        ) {
-            if (false !== strpos((string) $node, chr(0xEF).chr(0xBB).chr(0xBF))) {
-                throw new Twig_Error_Syntax('A template that extends another one cannot have a body but a byte order mark (BOM) has been detected; it must be removed.', $node->getLine(), $this->getFilename());
-            }
-
-            throw new Twig_Error_Syntax('A template that extends another one cannot have a body.', $node->getLine(), $this->getFilename());
-        }
-
-        // bypass "set" nodes as they "capture" the output
-        if ($node instanceof Twig_Node_Set) {
-            return $node;
-        }
-
-        if ($node instanceof Twig_NodeOutputInterface) {
-            return;
-        }
-
-        foreach ($node as $k => $n) {
-            if (null !== $n && null === $this->filterBodyNodes($n)) {
-                $node->removeNode($k);
-            }
-        }
-
-        return $node;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/ParserInterface.php b/core/vendor/twig/twig/lib/Twig/ParserInterface.php
deleted file mode 100644
index 8e7cc0a..0000000
--- a/core/vendor/twig/twig/lib/Twig/ParserInterface.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by parser classes.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 3.0)
- */
-interface Twig_ParserInterface
-{
-    /**
-     * Converts a token stream to a node tree.
-     *
-     * @param Twig_TokenStream $stream A token stream instance
-     *
-     * @return Twig_Node_Module A node tree
-     *
-     * @throws Twig_Error_Syntax When the token stream is syntactically or semantically wrong
-     */
-    public function parse(Twig_TokenStream $stream);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php b/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php
deleted file mode 100644
index b82747a..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_Dumper_Blackfire
-{
-    public function dump(Twig_Profiler_Profile $profile)
-    {
-        $data = array();
-        $this->dumpProfile('main()', $profile, $data);
-        $this->dumpChildren('main()', $profile, $data);
-
-        $start = microtime(true);
-        $str = <<<EOF
-file-format: BlackfireProbe
-cost-dimensions: wt mu pmu
-request-start: {$start}
-
-
-EOF;
-
-        foreach ($data as $name => $values) {
-            $str .= "{$name}//{$values['ct']} {$values['wt']} {$values['mu']} {$values['pmu']}\n";
-        }
-
-        return $str;
-    }
-
-    private function dumpChildren($parent, Twig_Profiler_Profile $profile, &$data)
-    {
-        foreach ($profile as $p) {
-            if ($p->isTemplate()) {
-                $name = $p->getTemplate();
-            } else {
-                $name = sprintf('%s::%s(%s)', $p->getTemplate(), $p->getType(), $p->getName());
-            }
-            $this->dumpProfile(sprintf('%s==>%s', $parent, $name), $p, $data);
-            $this->dumpChildren($name, $p, $data);
-        }
-    }
-
-    private function dumpProfile($edge, Twig_Profiler_Profile $profile, &$data)
-    {
-        if (isset($data[$edge])) {
-            $data[$edge]['ct'] += 1;
-            $data[$edge]['wt'] += floor($profile->getDuration() * 1000000);
-            $data[$edge]['mu'] += $profile->getMemoryUsage();
-            $data[$edge]['pmu'] += $profile->getPeakMemoryUsage();
-        } else {
-            $data[$edge] = array(
-                'ct' => 1,
-                'wt' => floor($profile->getDuration() * 1000000),
-                'mu' => $profile->getMemoryUsage(),
-                'pmu' => $profile->getPeakMemoryUsage(),
-            );
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php b/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php
deleted file mode 100644
index f066da7..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_Dumper_Html extends Twig_Profiler_Dumper_Text
-{
-    private static $colors = array(
-        'block' => '#dfd',
-        'macro' => '#ddf',
-        'template' => '#ffd',
-        'big' => '#d44',
-    );
-
-    public function dump(Twig_Profiler_Profile $profile)
-    {
-        return '<pre>'.parent::dump($profile).'</pre>';
-    }
-
-    protected function formatTemplate(Twig_Profiler_Profile $profile, $prefix)
-    {
-        return sprintf('%s└ <span style="background-color: %s">%s</span>', $prefix, self::$colors['template'], $profile->getTemplate());
-    }
-
-    protected function formatNonTemplate(Twig_Profiler_Profile $profile, $prefix)
-    {
-        return sprintf('%s└ %s::%s(<span style="background-color: %s">%s</span>)', $prefix, $profile->getTemplate(), $profile->getType(), isset(self::$colors[$profile->getType()]) ? self::$colors[$profile->getType()] : 'auto', $profile->getName());
-    }
-
-    protected function formatTime(Twig_Profiler_Profile $profile, $percent)
-    {
-        return sprintf('<span style="color: %s">%.2fms/%.0f%%</span>', $percent > 20 ? self::$colors['big'] : 'auto', $profile->getDuration() * 1000, $percent);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php b/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php
deleted file mode 100644
index 998e210..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_Dumper_Text
-{
-    private $root;
-
-    public function dump(Twig_Profiler_Profile $profile)
-    {
-        return $this->dumpProfile($profile);
-    }
-
-    protected function formatTemplate(Twig_Profiler_Profile $profile, $prefix)
-    {
-        return sprintf('%s└ %s', $prefix, $profile->getTemplate());
-    }
-
-    protected function formatNonTemplate(Twig_Profiler_Profile $profile, $prefix)
-    {
-        return sprintf('%s└ %s::%s(%s)', $prefix, $profile->getTemplate(), $profile->getType(), $profile->getName());
-    }
-
-    protected function formatTime(Twig_Profiler_Profile $profile, $percent)
-    {
-        return sprintf('%.2fms/%.0f%%', $profile->getDuration() * 1000, $percent);
-    }
-
-    private function dumpProfile(Twig_Profiler_Profile $profile, $prefix = '', $sibling = false)
-    {
-        if ($profile->isRoot()) {
-            $this->root = $profile->getDuration();
-            $start = $profile->getName();
-        } else {
-            if ($profile->isTemplate()) {
-                $start = $this->formatTemplate($profile, $prefix);
-            } else {
-                $start = $this->formatNonTemplate($profile, $prefix);
-            }
-            $prefix .= $sibling ? '│ ' : '  ';
-        }
-
-        $percent = $this->root ? $profile->getDuration() / $this->root * 100 : 0;
-
-        if ($profile->getDuration() * 1000 < 1) {
-            $str = $start."\n";
-        } else {
-            $str = sprintf("%s %s\n", $start, $this->formatTime($profile, $percent));
-        }
-
-        $nCount = count($profile->getProfiles());
-        foreach ($profile as $i => $p) {
-            $str .= $this->dumpProfile($p, $prefix, $i + 1 !== $nCount);
-        }
-
-        return $str;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php b/core/vendor/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php
deleted file mode 100644
index 2f97214..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/Node/EnterProfile.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a profile enter node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_Node_EnterProfile extends Twig_Node
-{
-    public function __construct($extensionName, $type, $name, $varName)
-    {
-        parent::__construct(array(), array('extension_name' => $extensionName, 'name' => $name, 'type' => $type, 'var_name' => $varName));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write(sprintf('$%s = $this->env->getExtension(', $this->getAttribute('var_name')))
-            ->repr($this->getAttribute('extension_name'))
-            ->raw(");\n")
-            ->write(sprintf('$%s->enter($%s = new Twig_Profiler_Profile($this->getTemplateName(), ', $this->getAttribute('var_name'), $this->getAttribute('var_name').'_prof'))
-            ->repr($this->getAttribute('type'))
-            ->raw(', ')
-            ->repr($this->getAttribute('name'))
-            ->raw("));\n\n")
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php b/core/vendor/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php
deleted file mode 100644
index 88074c2..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/Node/LeaveProfile.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a profile leave node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_Node_LeaveProfile extends Twig_Node
-{
-    public function __construct($varName)
-    {
-        parent::__construct(array(), array('var_name' => $varName));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function compile(Twig_Compiler $compiler)
-    {
-        $compiler
-            ->write("\n")
-            ->write(sprintf("\$%s->leave(\$%s);\n\n", $this->getAttribute('var_name'), $this->getAttribute('var_name').'_prof'))
-        ;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/NodeVisitor/Profiler.php b/core/vendor/twig/twig/lib/Twig/Profiler/NodeVisitor/Profiler.php
deleted file mode 100644
index 4b0baa8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/NodeVisitor/Profiler.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_NodeVisitor_Profiler extends Twig_BaseNodeVisitor
-{
-    private $extensionName;
-
-    public function __construct($extensionName)
-    {
-        $this->extensionName = $extensionName;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doEnterNode(Twig_Node $node, Twig_Environment $env)
-    {
-        return $node;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    protected function doLeaveNode(Twig_Node $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Module) {
-            $varName = $this->getVarName();
-            $node->setNode('display_start', new Twig_Node(array(new Twig_Profiler_Node_EnterProfile($this->extensionName, Twig_Profiler_Profile::TEMPLATE, $node->getAttribute('filename'), $varName), $node->getNode('display_start'))));
-            $node->setNode('display_end', new Twig_Node(array(new Twig_Profiler_Node_LeaveProfile($varName), $node->getNode('display_end'))));
-        } elseif ($node instanceof Twig_Node_Block) {
-            $varName = $this->getVarName();
-            $node->setNode('body', new Twig_Node_Body(array(
-                new Twig_Profiler_Node_EnterProfile($this->extensionName, Twig_Profiler_Profile::BLOCK, $node->getAttribute('name'), $varName),
-                $node->getNode('body'),
-                new Twig_Profiler_Node_LeaveProfile($varName),
-            )));
-        } elseif ($node instanceof Twig_Node_Macro) {
-            $varName = $this->getVarName();
-            $node->setNode('body', new Twig_Node_Body(array(
-                new Twig_Profiler_Node_EnterProfile($this->extensionName, Twig_Profiler_Profile::MACRO, $node->getAttribute('name'), $varName),
-                $node->getNode('body'),
-                new Twig_Profiler_Node_LeaveProfile($varName),
-            )));
-        }
-
-        return $node;
-    }
-
-    private function getVarName()
-    {
-        return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Profiler/Profile.php b/core/vendor/twig/twig/lib/Twig/Profiler/Profile.php
deleted file mode 100644
index ec9e254..0000000
--- a/core/vendor/twig/twig/lib/Twig/Profiler/Profile.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2015 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Profiler_Profile implements IteratorAggregate, Serializable
-{
-    const ROOT = 'ROOT';
-    const BLOCK = 'block';
-    const TEMPLATE = 'template';
-    const MACRO = 'macro';
-
-    private $template;
-    private $name;
-    private $type;
-    private $starts = array();
-    private $ends = array();
-    private $profiles = array();
-
-    public function __construct($template = 'main', $type = self::ROOT, $name = 'main')
-    {
-        $this->template = $template;
-        $this->type = $type;
-        $this->name = 0 === strpos($name, '__internal_') ? 'INTERNAL' : $name;
-        $this->enter();
-    }
-
-    public function getTemplate()
-    {
-        return $this->template;
-    }
-
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function isRoot()
-    {
-        return self::ROOT === $this->type;
-    }
-
-    public function isTemplate()
-    {
-        return self::TEMPLATE === $this->type;
-    }
-
-    public function isBlock()
-    {
-        return self::BLOCK === $this->type;
-    }
-
-    public function isMacro()
-    {
-        return self::MACRO === $this->type;
-    }
-
-    public function getProfiles()
-    {
-        return $this->profiles;
-    }
-
-    public function addProfile(Twig_Profiler_Profile $profile)
-    {
-        $this->profiles[] = $profile;
-    }
-
-    /**
-     * Returns the duration in microseconds.
-     *
-     * @return int
-     */
-    public function getDuration()
-    {
-        return isset($this->ends['wt']) && isset($this->starts['wt']) ? $this->ends['wt'] - $this->starts['wt'] : 0;
-    }
-
-    /**
-     * Returns the memory usage in bytes.
-     *
-     * @return int
-     */
-    public function getMemoryUsage()
-    {
-        return isset($this->ends['mu']) && isset($this->starts['mu']) ? $this->ends['mu'] - $this->starts['mu'] : 0;
-    }
-
-    /**
-     * Returns the peak memory usage in bytes.
-     *
-     * @return int
-     */
-    public function getPeakMemoryUsage()
-    {
-        return isset($this->ends['pmu']) && isset($this->starts['pmu']) ? $this->ends['pmu'] - $this->starts['pmu'] : 0;
-    }
-
-    /**
-     * Starts the profiling.
-     */
-    public function enter()
-    {
-        $this->starts = array(
-            'wt' => microtime(true),
-            'mu' => memory_get_usage(),
-            'pmu' => memory_get_peak_usage(),
-        );
-    }
-
-    /**
-     * Stops the profiling.
-     */
-    public function leave()
-    {
-        $this->ends = array(
-            'wt' => microtime(true),
-            'mu' => memory_get_usage(),
-            'pmu' => memory_get_peak_usage(),
-        );
-    }
-
-    public function getIterator()
-    {
-        return new ArrayIterator($this->profiles);
-    }
-
-    public function serialize()
-    {
-        return serialize(array($this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles));
-    }
-
-    public function unserialize($data)
-    {
-        list($this->template, $this->name, $this->type, $this->starts, $this->ends, $this->profiles) = unserialize($data);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
deleted file mode 100644
index 015bfae..0000000
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityError.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when a security error occurs at runtime.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Sandbox_SecurityError extends Twig_Error
-{
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php
deleted file mode 100644
index 99faba9..0000000
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFilterError.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when a not allowed filter is used in a template.
- *
- * @author Martin Hasoň <martin.hason@gmail.com>
- */
-class Twig_Sandbox_SecurityNotAllowedFilterError extends Twig_Sandbox_SecurityError
-{
-    private $filterName;
-
-    public function __construct($message, $functionName, $lineno = -1, $filename = null, Exception $previous = null)
-    {
-        parent::__construct($message, $lineno, $filename, $previous);
-        $this->filterName = $functionName;
-    }
-
-    public function getFilterName()
-    {
-        return $this->filterName;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php
deleted file mode 100644
index 05cf488..0000000
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedFunctionError.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when a not allowed function is used in a template.
- *
- * @author Martin Hasoň <martin.hason@gmail.com>
- */
-class Twig_Sandbox_SecurityNotAllowedFunctionError extends Twig_Sandbox_SecurityError
-{
-    private $functionName;
-
-    public function __construct($message, $functionName, $lineno = -1, $filename = null, Exception $previous = null)
-    {
-        parent::__construct($message, $lineno, $filename, $previous);
-        $this->functionName = $functionName;
-    }
-
-    public function getFunctionName()
-    {
-        return $this->functionName;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php
deleted file mode 100644
index b3bb5e8..0000000
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityNotAllowedTagError.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Exception thrown when a not allowed tag is used in a template.
- *
- * @author Martin Hasoň <martin.hason@gmail.com>
- */
-class Twig_Sandbox_SecurityNotAllowedTagError extends Twig_Sandbox_SecurityError
-{
-    private $tagName;
-
-    public function __construct($message, $tagName, $lineno = -1, $filename = null, Exception $previous = null)
-    {
-        parent::__construct($message, $lineno, $filename, $previous);
-        $this->tagName = $tagName;
-    }
-
-    public function getTagName()
-    {
-        return $this->tagName;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
deleted file mode 100644
index c4dd03d..0000000
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicy.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a security policy which need to be enforced when sandbox mode is enabled.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Sandbox_SecurityPolicy implements Twig_Sandbox_SecurityPolicyInterface
-{
-    protected $allowedTags;
-    protected $allowedFilters;
-    protected $allowedMethods;
-    protected $allowedProperties;
-    protected $allowedFunctions;
-
-    public function __construct(array $allowedTags = array(), array $allowedFilters = array(), array $allowedMethods = array(), array $allowedProperties = array(), array $allowedFunctions = array())
-    {
-        $this->allowedTags = $allowedTags;
-        $this->allowedFilters = $allowedFilters;
-        $this->setAllowedMethods($allowedMethods);
-        $this->allowedProperties = $allowedProperties;
-        $this->allowedFunctions = $allowedFunctions;
-    }
-
-    public function setAllowedTags(array $tags)
-    {
-        $this->allowedTags = $tags;
-    }
-
-    public function setAllowedFilters(array $filters)
-    {
-        $this->allowedFilters = $filters;
-    }
-
-    public function setAllowedMethods(array $methods)
-    {
-        $this->allowedMethods = array();
-        foreach ($methods as $class => $m) {
-            $this->allowedMethods[$class] = array_map('strtolower', is_array($m) ? $m : array($m));
-        }
-    }
-
-    public function setAllowedProperties(array $properties)
-    {
-        $this->allowedProperties = $properties;
-    }
-
-    public function setAllowedFunctions(array $functions)
-    {
-        $this->allowedFunctions = $functions;
-    }
-
-    public function checkSecurity($tags, $filters, $functions)
-    {
-        foreach ($tags as $tag) {
-            if (!in_array($tag, $this->allowedTags)) {
-                throw new Twig_Sandbox_SecurityNotAllowedTagError(sprintf('Tag "%s" is not allowed.', $tag), $tag);
-            }
-        }
-
-        foreach ($filters as $filter) {
-            if (!in_array($filter, $this->allowedFilters)) {
-                throw new Twig_Sandbox_SecurityNotAllowedFilterError(sprintf('Filter "%s" is not allowed.', $filter), $filter);
-            }
-        }
-
-        foreach ($functions as $function) {
-            if (!in_array($function, $this->allowedFunctions)) {
-                throw new Twig_Sandbox_SecurityNotAllowedFunctionError(sprintf('Function "%s" is not allowed.', $function), $function);
-            }
-        }
-    }
-
-    public function checkMethodAllowed($obj, $method)
-    {
-        if ($obj instanceof Twig_TemplateInterface || $obj instanceof Twig_Markup) {
-            return true;
-        }
-
-        $allowed = false;
-        $method = strtolower($method);
-        foreach ($this->allowedMethods as $class => $methods) {
-            if ($obj instanceof $class) {
-                $allowed = in_array($method, $methods);
-
-                break;
-            }
-        }
-
-        if (!$allowed) {
-            throw new Twig_Sandbox_SecurityError(sprintf('Calling "%s" method on a "%s" object is not allowed.', $method, get_class($obj)));
-        }
-    }
-
-    public function checkPropertyAllowed($obj, $property)
-    {
-        $allowed = false;
-        foreach ($this->allowedProperties as $class => $properties) {
-            if ($obj instanceof $class) {
-                $allowed = in_array($property, is_array($properties) ? $properties : array($properties));
-
-                break;
-            }
-        }
-
-        if (!$allowed) {
-            throw new Twig_Sandbox_SecurityError(sprintf('Calling "%s" property on a "%s" object is not allowed.', $property, get_class($obj)));
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php b/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
deleted file mode 100644
index 6ab48e3..0000000
--- a/core/vendor/twig/twig/lib/Twig/Sandbox/SecurityPolicyInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interfaces that all security policy classes must implements.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface Twig_Sandbox_SecurityPolicyInterface
-{
-    public function checkSecurity($tags, $filters, $functions);
-
-    public function checkMethodAllowed($obj, $method);
-
-    public function checkPropertyAllowed($obj, $method);
-}
diff --git a/core/vendor/twig/twig/lib/Twig/SimpleFilter.php b/core/vendor/twig/twig/lib/Twig/SimpleFilter.php
deleted file mode 100644
index 5d6d27b..0000000
--- a/core/vendor/twig/twig/lib/Twig/SimpleFilter.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009-2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template filter.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_SimpleFilter
-{
-    protected $name;
-    protected $callable;
-    protected $options;
-    protected $arguments = array();
-
-    public function __construct($name, $callable, array $options = array())
-    {
-        $this->name = $name;
-        $this->callable = $callable;
-        $this->options = array_merge(array(
-            'needs_environment' => false,
-            'needs_context' => false,
-            'is_variadic' => false,
-            'is_safe' => null,
-            'is_safe_callback' => null,
-            'pre_escape' => null,
-            'preserves_safety' => null,
-            'node_class' => 'Twig_Node_Expression_Filter',
-        ), $options);
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function getCallable()
-    {
-        return $this->callable;
-    }
-
-    public function getNodeClass()
-    {
-        return $this->options['node_class'];
-    }
-
-    public function setArguments($arguments)
-    {
-        $this->arguments = $arguments;
-    }
-
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    public function needsEnvironment()
-    {
-        return $this->options['needs_environment'];
-    }
-
-    public function needsContext()
-    {
-        return $this->options['needs_context'];
-    }
-
-    public function getSafe(Twig_Node $filterArgs)
-    {
-        if (null !== $this->options['is_safe']) {
-            return $this->options['is_safe'];
-        }
-
-        if (null !== $this->options['is_safe_callback']) {
-            return call_user_func($this->options['is_safe_callback'], $filterArgs);
-        }
-    }
-
-    public function getPreservesSafety()
-    {
-        return $this->options['preserves_safety'];
-    }
-
-    public function getPreEscape()
-    {
-        return $this->options['pre_escape'];
-    }
-
-    public function isVariadic()
-    {
-        return $this->options['is_variadic'];
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/SimpleFunction.php b/core/vendor/twig/twig/lib/Twig/SimpleFunction.php
deleted file mode 100644
index 8085f57..0000000
--- a/core/vendor/twig/twig/lib/Twig/SimpleFunction.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010-2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template function.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_SimpleFunction
-{
-    protected $name;
-    protected $callable;
-    protected $options;
-    protected $arguments = array();
-
-    public function __construct($name, $callable, array $options = array())
-    {
-        $this->name = $name;
-        $this->callable = $callable;
-        $this->options = array_merge(array(
-            'needs_environment' => false,
-            'needs_context' => false,
-            'is_variadic' => false,
-            'is_safe' => null,
-            'is_safe_callback' => null,
-            'node_class' => 'Twig_Node_Expression_Function',
-        ), $options);
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function getCallable()
-    {
-        return $this->callable;
-    }
-
-    public function getNodeClass()
-    {
-        return $this->options['node_class'];
-    }
-
-    public function setArguments($arguments)
-    {
-        $this->arguments = $arguments;
-    }
-
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    public function needsEnvironment()
-    {
-        return $this->options['needs_environment'];
-    }
-
-    public function needsContext()
-    {
-        return $this->options['needs_context'];
-    }
-
-    public function getSafe(Twig_Node $functionArgs)
-    {
-        if (null !== $this->options['is_safe']) {
-            return $this->options['is_safe'];
-        }
-
-        if (null !== $this->options['is_safe_callback']) {
-            return call_user_func($this->options['is_safe_callback'], $functionArgs);
-        }
-
-        return array();
-    }
-
-    public function isVariadic()
-    {
-        return $this->options['is_variadic'];
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/SimpleTest.php b/core/vendor/twig/twig/lib/Twig/SimpleTest.php
deleted file mode 100644
index 87b0935..0000000
--- a/core/vendor/twig/twig/lib/Twig/SimpleTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010-2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template test.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_SimpleTest
-{
-    protected $name;
-    protected $callable;
-    protected $options;
-
-    public function __construct($name, $callable, array $options = array())
-    {
-        $this->name = $name;
-        $this->callable = $callable;
-        $this->options = array_merge(array(
-            'is_variadic' => false,
-            'node_class' => 'Twig_Node_Expression_Test',
-        ), $options);
-    }
-
-    public function getName()
-    {
-        return $this->name;
-    }
-
-    public function getCallable()
-    {
-        return $this->callable;
-    }
-
-    public function getNodeClass()
-    {
-        return $this->options['node_class'];
-    }
-
-    public function isVariadic()
-    {
-        return $this->options['is_variadic'];
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Template.php b/core/vendor/twig/twig/lib/Twig/Template.php
deleted file mode 100644
index 73150bb..0000000
--- a/core/vendor/twig/twig/lib/Twig/Template.php
+++ /dev/null
@@ -1,571 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Default base class for compiled templates.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Twig_Template implements Twig_TemplateInterface
-{
-    protected static $cache = array();
-
-    protected $parent;
-    protected $parents = array();
-    protected $env;
-    protected $blocks;
-    protected $traits;
-
-    /**
-     * Constructor.
-     *
-     * @param Twig_Environment $env A Twig_Environment instance
-     */
-    public function __construct(Twig_Environment $env)
-    {
-        $this->env = $env;
-        $this->blocks = array();
-        $this->traits = array();
-    }
-
-    /**
-     * Returns the template name.
-     *
-     * @return string The template name
-     */
-    abstract public function getTemplateName();
-
-    /**
-     * @deprecated since 1.20 (to be removed in 2.0)
-     */
-    public function getEnvironment()
-    {
-        @trigger_error('The '.__METHOD__.' method is deprecated since version 1.20 and will be removed in 2.0.', E_USER_DEPRECATED);
-
-        return $this->env;
-    }
-
-    /**
-     * Returns the parent template.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @param array $context
-     *
-     * @return Twig_TemplateInterface|false The parent template or false if there is no parent
-     */
-    public function getParent(array $context)
-    {
-        if (null !== $this->parent) {
-            return $this->parent;
-        }
-
-        try {
-            $parent = $this->doGetParent($context);
-
-            if (false === $parent) {
-                return false;
-            }
-
-            if ($parent instanceof self) {
-                return $this->parents[$parent->getTemplateName()] = $parent;
-            }
-
-            if (!isset($this->parents[$parent])) {
-                $this->parents[$parent] = $this->loadTemplate($parent);
-            }
-        } catch (Twig_Error_Loader $e) {
-            $e->setTemplateFile(null);
-            $e->guess();
-
-            throw $e;
-        }
-
-        return $this->parents[$parent];
-    }
-
-    protected function doGetParent(array $context)
-    {
-        return false;
-    }
-
-    public function isTraitable()
-    {
-        return true;
-    }
-
-    /**
-     * Displays a parent block.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @param string $name    The block name to display from the parent
-     * @param array  $context The context
-     * @param array  $blocks  The current set of blocks
-     */
-    public function displayParentBlock($name, array $context, array $blocks = array())
-    {
-        $name = (string) $name;
-
-        if (isset($this->traits[$name])) {
-            $this->traits[$name][0]->displayBlock($name, $context, $blocks, false);
-        } elseif (false !== $parent = $this->getParent($context)) {
-            $parent->displayBlock($name, $context, $blocks, false);
-        } else {
-            throw new Twig_Error_Runtime(sprintf('The template has no parent and no traits defining the "%s" block', $name), -1, $this->getTemplateName());
-        }
-    }
-
-    /**
-     * Displays a block.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @param string $name      The block name to display
-     * @param array  $context   The context
-     * @param array  $blocks    The current set of blocks
-     * @param bool   $useBlocks Whether to use the current set of blocks
-     */
-    public function displayBlock($name, array $context, array $blocks = array(), $useBlocks = true)
-    {
-        $name = (string) $name;
-
-        if ($useBlocks && isset($blocks[$name])) {
-            $template = $blocks[$name][0];
-            $block = $blocks[$name][1];
-        } elseif (isset($this->blocks[$name])) {
-            $template = $this->blocks[$name][0];
-            $block = $this->blocks[$name][1];
-        } else {
-            $template = null;
-            $block = null;
-        }
-
-        if (null !== $template) {
-            // avoid RCEs when sandbox is enabled
-            if (!$template instanceof Twig_Template) {
-                throw new \LogicException('A block must be a method on a Twig_Template instance.');
-            }
-
-            try {
-                $template->$block($context, $blocks);
-            } catch (Twig_Error $e) {
-                if (!$e->getTemplateFile()) {
-                    $e->setTemplateFile($template->getTemplateName());
-                }
-
-                // this is mostly useful for Twig_Error_Loader exceptions
-                // see Twig_Error_Loader
-                if (false === $e->getTemplateLine()) {
-                    $e->setTemplateLine(-1);
-                    $e->guess();
-                }
-
-                throw $e;
-            } catch (Exception $e) {
-                throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getTemplateName(), $e);
-            }
-        } elseif (false !== $parent = $this->getParent($context)) {
-            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false);
-        }
-    }
-
-    /**
-     * Renders a parent block.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @param string $name    The block name to render from the parent
-     * @param array  $context The context
-     * @param array  $blocks  The current set of blocks
-     *
-     * @return string The rendered block
-     */
-    public function renderParentBlock($name, array $context, array $blocks = array())
-    {
-        ob_start();
-        $this->displayParentBlock($name, $context, $blocks);
-
-        return ob_get_clean();
-    }
-
-    /**
-     * Renders a block.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @param string $name      The block name to render
-     * @param array  $context   The context
-     * @param array  $blocks    The current set of blocks
-     * @param bool   $useBlocks Whether to use the current set of blocks
-     *
-     * @return string The rendered block
-     */
-    public function renderBlock($name, array $context, array $blocks = array(), $useBlocks = true)
-    {
-        ob_start();
-        $this->displayBlock($name, $context, $blocks, $useBlocks);
-
-        return ob_get_clean();
-    }
-
-    /**
-     * Returns whether a block exists or not.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * This method does only return blocks defined in the current template
-     * or defined in "used" traits.
-     *
-     * It does not return blocks from parent templates as the parent
-     * template name can be dynamic, which is only known based on the
-     * current context.
-     *
-     * @param string $name The block name
-     *
-     * @return bool true if the block exists, false otherwise
-     */
-    public function hasBlock($name)
-    {
-        return isset($this->blocks[(string) $name]);
-    }
-
-    /**
-     * Returns all block names.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @return array An array of block names
-     *
-     * @see hasBlock
-     */
-    public function getBlockNames()
-    {
-        return array_keys($this->blocks);
-    }
-
-    protected function loadTemplate($template, $templateName = null, $line = null, $index = null)
-    {
-        try {
-            if (is_array($template)) {
-                return $this->env->resolveTemplate($template);
-            }
-
-            if ($template instanceof self) {
-                return $template;
-            }
-
-            return $this->env->loadTemplate($template, $index);
-        } catch (Twig_Error $e) {
-            if (!$e->getTemplateFile()) {
-                $e->setTemplateFile($templateName ? $templateName : $this->getTemplateName());
-            }
-
-            if ($e->getTemplateLine()) {
-                throw $e;
-            }
-
-            if (!$line) {
-                $e->guess();
-            } else {
-                $e->setTemplateLine($line);
-            }
-
-            throw $e;
-        }
-    }
-
-    /**
-     * Returns all blocks.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * @return array An array of blocks
-     *
-     * @see hasBlock
-     */
-    public function getBlocks()
-    {
-        return $this->blocks;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function display(array $context, array $blocks = array())
-    {
-        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function render(array $context)
-    {
-        $level = ob_get_level();
-        ob_start();
-        try {
-            $this->display($context);
-        } catch (Exception $e) {
-            while (ob_get_level() > $level) {
-                ob_end_clean();
-            }
-
-            throw $e;
-        }
-
-        return ob_get_clean();
-    }
-
-    protected function displayWithErrorHandling(array $context, array $blocks = array())
-    {
-        try {
-            $this->doDisplay($context, $blocks);
-        } catch (Twig_Error $e) {
-            if (!$e->getTemplateFile()) {
-                $e->setTemplateFile($this->getTemplateName());
-            }
-
-            // this is mostly useful for Twig_Error_Loader exceptions
-            // see Twig_Error_Loader
-            if (false === $e->getTemplateLine()) {
-                $e->setTemplateLine(-1);
-                $e->guess();
-            }
-
-            throw $e;
-        } catch (Exception $e) {
-            throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getTemplateName(), $e);
-        }
-    }
-
-    /**
-     * Auto-generated method to display the template with the given context.
-     *
-     * @param array $context An array of parameters to pass to the template
-     * @param array $blocks  An array of blocks to pass to the template
-     */
-    abstract protected function doDisplay(array $context, array $blocks = array());
-
-    /**
-     * Returns a variable from the context.
-     *
-     * This method is for internal use only and should never be called
-     * directly.
-     *
-     * This method should not be overridden in a sub-class as this is an
-     * implementation detail that has been introduced to optimize variable
-     * access for versions of PHP before 5.4. This is not a way to override
-     * the way to get a variable value.
-     *
-     * @param array  $context           The context
-     * @param string $item              The variable to return from the context
-     * @param bool   $ignoreStrictCheck Whether to ignore the strict variable check or not
-     *
-     * @return mixed The content of the context variable
-     *
-     * @throws Twig_Error_Runtime if the variable does not exist and Twig is running in strict mode
-     */
-    final protected function getContext($context, $item, $ignoreStrictCheck = false)
-    {
-        if (!array_key_exists($item, $context)) {
-            if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-                return;
-            }
-
-            throw new Twig_Error_Runtime(sprintf('Variable "%s" does not exist', $item), -1, $this->getTemplateName());
-        }
-
-        return $context[$item];
-    }
-
-    /**
-     * Returns the attribute value for a given array/object.
-     *
-     * @param mixed  $object            The object or array from where to get the item
-     * @param mixed  $item              The item to get from the array or object
-     * @param array  $arguments         An array of arguments to pass if the item is an object method
-     * @param string $type              The type of attribute (@see Twig_Template constants)
-     * @param bool   $isDefinedTest     Whether this is only a defined check
-     * @param bool   $ignoreStrictCheck Whether to ignore the strict attribute check or not
-     *
-     * @return mixed The attribute value, or a Boolean when $isDefinedTest is true, or null when the attribute is not set and $ignoreStrictCheck is true
-     *
-     * @throws Twig_Error_Runtime if the attribute does not exist and Twig is running in strict mode and $isDefinedTest is false
-     */
-    protected function getAttribute($object, $item, array $arguments = array(), $type = self::ANY_CALL, $isDefinedTest = false, $ignoreStrictCheck = false)
-    {
-        // array
-        if (self::METHOD_CALL !== $type) {
-            $arrayItem = is_bool($item) || is_float($item) ? (int) $item : $item;
-
-            if ((is_array($object) && array_key_exists($arrayItem, $object))
-                || ($object instanceof ArrayAccess && isset($object[$arrayItem]))
-            ) {
-                if ($isDefinedTest) {
-                    return true;
-                }
-
-                return $object[$arrayItem];
-            }
-
-            if (self::ARRAY_CALL === $type || !is_object($object)) {
-                if ($isDefinedTest) {
-                    return false;
-                }
-
-                if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-                    return;
-                }
-
-                if ($object instanceof ArrayAccess) {
-                    $message = sprintf('Key "%s" in object with ArrayAccess of class "%s" does not exist', $arrayItem, get_class($object));
-                } elseif (is_object($object)) {
-                    $message = sprintf('Impossible to access a key "%s" on an object of class "%s" that does not implement ArrayAccess interface', $item, get_class($object));
-                } elseif (is_array($object)) {
-                    if (empty($object)) {
-                        $message = sprintf('Key "%s" does not exist as the array is empty', $arrayItem);
-                    } else {
-                        $message = sprintf('Key "%s" for array with keys "%s" does not exist', $arrayItem, implode(', ', array_keys($object)));
-                    }
-                } elseif (self::ARRAY_CALL === $type) {
-                    if (null === $object) {
-                        $message = sprintf('Impossible to access a key ("%s") on a null variable', $item);
-                    } else {
-                        $message = sprintf('Impossible to access a key ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
-                    }
-                } elseif (null === $object) {
-                    $message = sprintf('Impossible to access an attribute ("%s") on a null variable', $item);
-                } else {
-                    $message = sprintf('Impossible to access an attribute ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
-                }
-
-                throw new Twig_Error_Runtime($message, -1, $this->getTemplateName());
-            }
-        }
-
-        if (!is_object($object)) {
-            if ($isDefinedTest) {
-                return false;
-            }
-
-            if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-                return;
-            }
-
-            if (null === $object) {
-                $message = sprintf('Impossible to invoke a method ("%s") on a null variable', $item);
-            } else {
-                $message = sprintf('Impossible to invoke a method ("%s") on a %s variable ("%s")', $item, gettype($object), $object);
-            }
-
-            throw new Twig_Error_Runtime($message, -1, $this->getTemplateName());
-        }
-
-        // object property
-        if (self::METHOD_CALL !== $type && !$object instanceof self) { // Twig_Template does not have public properties, and we don't want to allow access to internal ones
-            if (isset($object->$item) || array_key_exists((string) $item, $object)) {
-                if ($isDefinedTest) {
-                    return true;
-                }
-
-                if ($this->env->hasExtension('sandbox')) {
-                    $this->env->getExtension('sandbox')->checkPropertyAllowed($object, $item);
-                }
-
-                return $object->$item;
-            }
-        }
-
-        $class = get_class($object);
-
-        // object method
-        if (!isset(self::$cache[$class]['methods'])) {
-            // get_class_methods returns all methods accessible in the scope, but we only want public ones to be accessible in templates
-            if ($object instanceof self) {
-                $ref = new ReflectionClass($class);
-                $methods = array();
-
-                foreach ($ref->getMethods(ReflectionMethod::IS_PUBLIC) as $refMethod) {
-                    $methodName = strtolower($refMethod->name);
-
-                    // Accessing the environment from templates is forbidden to prevent untrusted changes to the environment
-                    if ('getenvironment' !== $methodName) {
-                        $methods[$methodName] = true;
-                    }
-                }
-
-                self::$cache[$class]['methods'] = $methods;
-            } else {
-                self::$cache[$class]['methods'] = array_change_key_case(array_flip(get_class_methods($object)));
-            }
-        }
-
-        $call = false;
-        $lcItem = strtolower($item);
-        if (isset(self::$cache[$class]['methods'][$lcItem])) {
-            $method = (string) $item;
-        } elseif (isset(self::$cache[$class]['methods']['get'.$lcItem])) {
-            $method = 'get'.$item;
-        } elseif (isset(self::$cache[$class]['methods']['is'.$lcItem])) {
-            $method = 'is'.$item;
-        } elseif (isset(self::$cache[$class]['methods']['__call'])) {
-            $method = (string) $item;
-            $call = true;
-        } else {
-            if ($isDefinedTest) {
-                return false;
-            }
-
-            if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
-                return;
-            }
-
-            throw new Twig_Error_Runtime(sprintf('Method "%s" for object "%s" does not exist', $item, get_class($object)), -1, $this->getTemplateName());
-        }
-
-        if ($isDefinedTest) {
-            return true;
-        }
-
-        if ($this->env->hasExtension('sandbox')) {
-            $this->env->getExtension('sandbox')->checkMethodAllowed($object, $method);
-        }
-
-        // Some objects throw exceptions when they have __call, and the method we try
-        // to call is not supported. If ignoreStrictCheck is true, we should return null.
-        try {
-            $ret = call_user_func_array(array($object, $method), $arguments);
-        } catch (BadMethodCallException $e) {
-            if ($call && ($ignoreStrictCheck || !$this->env->isStrictVariables())) {
-                return;
-            }
-            throw $e;
-        }
-
-        // useful when calling a template method from a template
-        // this is not supported but unfortunately heavily used in the Symfony profiler
-        if ($object instanceof Twig_TemplateInterface) {
-            return $ret === '' ? '' : new Twig_Markup($ret, $this->env->getCharset());
-        }
-
-        return $ret;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TemplateInterface.php b/core/vendor/twig/twig/lib/Twig/TemplateInterface.php
deleted file mode 100644
index 3274640..0000000
--- a/core/vendor/twig/twig/lib/Twig/TemplateInterface.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by all compiled templates.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 3.0)
- */
-interface Twig_TemplateInterface
-{
-    const ANY_CALL = 'any';
-    const ARRAY_CALL = 'array';
-    const METHOD_CALL = 'method';
-
-    /**
-     * Renders the template with the given context and returns it as string.
-     *
-     * @param array $context An array of parameters to pass to the template
-     *
-     * @return string The rendered template
-     */
-    public function render(array $context);
-
-    /**
-     * Displays the template with the given context.
-     *
-     * @param array $context An array of parameters to pass to the template
-     * @param array $blocks  An array of blocks to pass to the template
-     */
-    public function display(array $context, array $blocks = array());
-
-    /**
-     * Returns the bound environment for this template.
-     *
-     * @return Twig_Environment The current environment
-     */
-    public function getEnvironment();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Test.php b/core/vendor/twig/twig/lib/Twig/Test.php
deleted file mode 100644
index c53c3cc..0000000
--- a/core/vendor/twig/twig/lib/Twig/Test.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template test.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-abstract class Twig_Test implements Twig_TestInterface, Twig_TestCallableInterface
-{
-    protected $options;
-    protected $arguments = array();
-
-    public function __construct(array $options = array())
-    {
-        $this->options = array_merge(array(
-            'callable' => null,
-        ), $options);
-    }
-
-    public function getCallable()
-    {
-        return $this->options['callable'];
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Test/Function.php b/core/vendor/twig/twig/lib/Twig/Test/Function.php
deleted file mode 100644
index 30e1c62..0000000
--- a/core/vendor/twig/twig/lib/Twig/Test/Function.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a function template test.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Test_Function extends Twig_Test
-{
-    protected $function;
-
-    public function __construct($function, array $options = array())
-    {
-        $options['callable'] = $function;
-
-        parent::__construct($options);
-
-        $this->function = $function;
-    }
-
-    public function compile()
-    {
-        return $this->function;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php b/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
deleted file mode 100644
index 261acd4..0000000
--- a/core/vendor/twig/twig/lib/Twig/Test/IntegrationTestCase.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Integration test helper.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Karma Dordrak <drak@zikula.org>
- */
-abstract class Twig_Test_IntegrationTestCase extends PHPUnit_Framework_TestCase
-{
-    abstract protected function getExtensions();
-    abstract protected function getFixturesDir();
-
-    /**
-     * @dataProvider getTests
-     */
-    public function testIntegration($file, $message, $condition, $templates, $exception, $outputs)
-    {
-        $this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs);
-    }
-
-    public function getTests()
-    {
-        $fixturesDir = realpath($this->getFixturesDir());
-        $tests = array();
-
-        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($fixturesDir), RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
-            if (!preg_match('/\.test$/', $file)) {
-                continue;
-            }
-
-            $test = file_get_contents($file->getRealpath());
-
-            if (preg_match('/
-                    --TEST--\s*(.*?)\s*(?:--CONDITION--\s*(.*))?\s*((?:--TEMPLATE(?:\(.*?\))?--(?:.*?))+)\s*(?:--DATA--\s*(.*))?\s*--EXCEPTION--\s*(.*)/sx', $test, $match)) {
-                $message = $match[1];
-                $condition = $match[2];
-                $templates = $this->parseTemplates($match[3]);
-                $exception = $match[5];
-                $outputs = array(array(null, $match[4], null, ''));
-            } elseif (preg_match('/--TEST--\s*(.*?)\s*(?:--CONDITION--\s*(.*))?\s*((?:--TEMPLATE(?:\(.*?\))?--(?:.*?))+)--DATA--.*?--EXPECT--.*/s', $test, $match)) {
-                $message = $match[1];
-                $condition = $match[2];
-                $templates = $this->parseTemplates($match[3]);
-                $exception = false;
-                preg_match_all('/--DATA--(.*?)(?:--CONFIG--(.*?))?--EXPECT--(.*?)(?=\-\-DATA\-\-|$)/s', $test, $outputs, PREG_SET_ORDER);
-            } else {
-                throw new InvalidArgumentException(sprintf('Test "%s" is not valid.', str_replace($fixturesDir.'/', '', $file)));
-            }
-
-            $tests[] = array(str_replace($fixturesDir.'/', '', $file), $message, $condition, $templates, $exception, $outputs);
-        }
-
-        return $tests;
-    }
-
-    protected function doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs)
-    {
-        if ($condition) {
-            eval('$ret = '.$condition.';');
-            if (!$ret) {
-                $this->markTestSkipped($condition);
-            }
-        }
-
-        $loader = new Twig_Loader_Array($templates);
-
-        foreach ($outputs as $i => $match) {
-            $config = array_merge(array(
-                'cache' => false,
-                'strict_variables' => true,
-            ), $match[2] ? eval($match[2].';') : array());
-            $twig = new Twig_Environment($loader, $config);
-            $twig->addGlobal('global', 'global');
-            foreach ($this->getExtensions() as $extension) {
-                $twig->addExtension($extension);
-            }
-
-            // avoid using the same PHP class name for different cases
-            // only for PHP 5.2+
-            if (PHP_VERSION_ID >= 50300) {
-                $p = new ReflectionProperty($twig, 'templateClassPrefix');
-                $p->setAccessible(true);
-                $p->setValue($twig, '__TwigTemplate_'.hash('sha256', uniqid(mt_rand(), true), false).'_');
-            }
-
-            try {
-                $template = $twig->loadTemplate('index.twig');
-            } catch (Exception $e) {
-                if (false !== $exception) {
-                    $this->assertEquals(trim($exception), trim(sprintf('%s: %s', get_class($e), $e->getMessage())));
-
-                    return;
-                }
-
-                if ($e instanceof Twig_Error_Syntax) {
-                    $e->setTemplateFile($file);
-
-                    throw $e;
-                }
-
-                throw new Twig_Error(sprintf('%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
-            }
-
-            try {
-                $output = trim($template->render(eval($match[1].';')), "\n ");
-            } catch (Exception $e) {
-                if (false !== $exception) {
-                    $this->assertEquals(trim($exception), trim(sprintf('%s: %s', get_class($e), $e->getMessage())));
-
-                    return;
-                }
-
-                if ($e instanceof Twig_Error_Syntax) {
-                    $e->setTemplateFile($file);
-                } else {
-                    $e = new Twig_Error(sprintf('%s: %s', get_class($e), $e->getMessage()), -1, $file, $e);
-                }
-
-                $output = trim(sprintf('%s: %s', get_class($e), $e->getMessage()));
-            }
-
-            if (false !== $exception) {
-                list($class) = explode(':', $exception);
-                $this->assertThat(null, new PHPUnit_Framework_Constraint_Exception($class));
-            }
-
-            $expected = trim($match[3], "\n ");
-
-            if ($expected != $output) {
-                printf("Compiled templates that failed on case %d:\n", $i + 1);
-
-                foreach (array_keys($templates) as $name) {
-                    echo "Template: $name\n";
-                    $source = $loader->getSource($name);
-                    echo $twig->compile($twig->parse($twig->tokenize($source, $name)));
-                }
-            }
-            $this->assertEquals($expected, $output, $message.' (in '.$file.')');
-        }
-    }
-
-    protected static function parseTemplates($test)
-    {
-        $templates = array();
-        preg_match_all('/--TEMPLATE(?:\((.*?)\))?--(.*?)(?=\-\-TEMPLATE|$)/s', $test, $matches, PREG_SET_ORDER);
-        foreach ($matches as $match) {
-            $templates[($match[1] ? $match[1] : 'index.twig')] = $match[2];
-        }
-
-        return $templates;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Test/Method.php b/core/vendor/twig/twig/lib/Twig/Test/Method.php
deleted file mode 100644
index 7fc250b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Test/Method.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a method template test.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Test_Method extends Twig_Test
-{
-    protected $extension;
-    protected $method;
-
-    public function __construct(Twig_ExtensionInterface $extension, $method, array $options = array())
-    {
-        $options['callable'] = array($extension, $method);
-
-        parent::__construct($options);
-
-        $this->extension = $extension;
-        $this->method = $method;
-    }
-
-    public function compile()
-    {
-        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Test/Node.php b/core/vendor/twig/twig/lib/Twig/Test/Node.php
deleted file mode 100644
index cdf0b24..0000000
--- a/core/vendor/twig/twig/lib/Twig/Test/Node.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template test as a Node.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_Test_Node extends Twig_Test
-{
-    protected $class;
-
-    public function __construct($class, array $options = array())
-    {
-        parent::__construct($options);
-
-        $this->class = $class;
-    }
-
-    public function getClass()
-    {
-        return $this->class;
-    }
-
-    public function compile()
-    {
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php b/core/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php
deleted file mode 100644
index bf86521..0000000
--- a/core/vendor/twig/twig/lib/Twig/Test/NodeTestCase.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-abstract class Twig_Test_NodeTestCase extends PHPUnit_Framework_TestCase
-{
-    abstract public function getTests();
-
-    /**
-     * @dataProvider getTests
-     */
-    public function testCompile($node, $source, $environment = null)
-    {
-        $this->assertNodeCompilation($source, $node, $environment);
-    }
-
-    public function assertNodeCompilation($source, Twig_Node $node, Twig_Environment $environment = null)
-    {
-        $compiler = $this->getCompiler($environment);
-        $compiler->compile($node);
-
-        $this->assertEquals($source, trim($compiler->getSource()));
-    }
-
-    protected function getCompiler(Twig_Environment $environment = null)
-    {
-        return new Twig_Compiler(null === $environment ? $this->getEnvironment() : $environment);
-    }
-
-    protected function getEnvironment()
-    {
-        return new Twig_Environment();
-    }
-
-    protected function getVariableGetter($name, $line = false)
-    {
-        $line = $line > 0 ? "// line {$line}\n" : '';
-
-        if (PHP_VERSION_ID >= 50400) {
-            return sprintf('%s(isset($context["%s"]) ? $context["%s"] : null)', $line, $name, $name);
-        }
-
-        return sprintf('%s$this->getContext($context, "%s")', $line, $name);
-    }
-
-    protected function getAttributeGetter()
-    {
-        if (function_exists('twig_template_get_attributes')) {
-            return 'twig_template_get_attributes($this, ';
-        }
-
-        return '$this->getAttribute(';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php b/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php
deleted file mode 100644
index 98d3457..0000000
--- a/core/vendor/twig/twig/lib/Twig/TestCallableInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a callable template test.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_TestCallableInterface
-{
-    public function getCallable();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TestInterface.php b/core/vendor/twig/twig/lib/Twig/TestInterface.php
deleted file mode 100644
index 2fa821c..0000000
--- a/core/vendor/twig/twig/lib/Twig/TestInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a template test.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_TestInterface
-{
-    /**
-     * Compiles a test.
-     *
-     * @return string The PHP code for the test
-     */
-    public function compile();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/Token.php b/core/vendor/twig/twig/lib/Twig/Token.php
deleted file mode 100644
index a0a029b..0000000
--- a/core/vendor/twig/twig/lib/Twig/Token.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a Token.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_Token
-{
-    protected $value;
-    protected $type;
-    protected $lineno;
-
-    const EOF_TYPE = -1;
-    const TEXT_TYPE = 0;
-    const BLOCK_START_TYPE = 1;
-    const VAR_START_TYPE = 2;
-    const BLOCK_END_TYPE = 3;
-    const VAR_END_TYPE = 4;
-    const NAME_TYPE = 5;
-    const NUMBER_TYPE = 6;
-    const STRING_TYPE = 7;
-    const OPERATOR_TYPE = 8;
-    const PUNCTUATION_TYPE = 9;
-    const INTERPOLATION_START_TYPE = 10;
-    const INTERPOLATION_END_TYPE = 11;
-
-    /**
-     * Constructor.
-     *
-     * @param int    $type   The type of the token
-     * @param string $value  The token value
-     * @param int    $lineno The line position in the source
-     */
-    public function __construct($type, $value, $lineno)
-    {
-        $this->type = $type;
-        $this->value = $value;
-        $this->lineno = $lineno;
-    }
-
-    /**
-     * Returns a string representation of the token.
-     *
-     * @return string A string representation of the token
-     */
-    public function __toString()
-    {
-        return sprintf('%s(%s)', self::typeToString($this->type, true), $this->value);
-    }
-
-    /**
-     * Tests the current token for a type and/or a value.
-     *
-     * Parameters may be:
-     * * just type
-     * * type and value (or array of possible values)
-     * * just value (or array of possible values) (NAME_TYPE is used as type)
-     *
-     * @param array|int         $type   The type to test
-     * @param array|string|null $values The token value
-     *
-     * @return bool
-     */
-    public function test($type, $values = null)
-    {
-        if (null === $values && !is_int($type)) {
-            $values = $type;
-            $type = self::NAME_TYPE;
-        }
-
-        return ($this->type === $type) && (
-            null === $values ||
-            (is_array($values) && in_array($this->value, $values)) ||
-            $this->value == $values
-        );
-    }
-
-    /**
-     * Gets the line.
-     *
-     * @return int The source line
-     */
-    public function getLine()
-    {
-        return $this->lineno;
-    }
-
-    /**
-     * Gets the token type.
-     *
-     * @return int The token type
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Gets the token value.
-     *
-     * @return string The token value
-     */
-    public function getValue()
-    {
-        return $this->value;
-    }
-
-    /**
-     * Returns the constant representation (internal) of a given type.
-     *
-     * @param int  $type  The type as an integer
-     * @param bool $short Whether to return a short representation or not
-     *
-     * @return string The string representation
-     */
-    public static function typeToString($type, $short = false)
-    {
-        switch ($type) {
-            case self::EOF_TYPE:
-                $name = 'EOF_TYPE';
-                break;
-            case self::TEXT_TYPE:
-                $name = 'TEXT_TYPE';
-                break;
-            case self::BLOCK_START_TYPE:
-                $name = 'BLOCK_START_TYPE';
-                break;
-            case self::VAR_START_TYPE:
-                $name = 'VAR_START_TYPE';
-                break;
-            case self::BLOCK_END_TYPE:
-                $name = 'BLOCK_END_TYPE';
-                break;
-            case self::VAR_END_TYPE:
-                $name = 'VAR_END_TYPE';
-                break;
-            case self::NAME_TYPE:
-                $name = 'NAME_TYPE';
-                break;
-            case self::NUMBER_TYPE:
-                $name = 'NUMBER_TYPE';
-                break;
-            case self::STRING_TYPE:
-                $name = 'STRING_TYPE';
-                break;
-            case self::OPERATOR_TYPE:
-                $name = 'OPERATOR_TYPE';
-                break;
-            case self::PUNCTUATION_TYPE:
-                $name = 'PUNCTUATION_TYPE';
-                break;
-            case self::INTERPOLATION_START_TYPE:
-                $name = 'INTERPOLATION_START_TYPE';
-                break;
-            case self::INTERPOLATION_END_TYPE:
-                $name = 'INTERPOLATION_END_TYPE';
-                break;
-            default:
-                throw new LogicException(sprintf('Token of type "%s" does not exist.', $type));
-        }
-
-        return $short ? $name : 'Twig_Token::'.$name;
-    }
-
-    /**
-     * Returns the english representation of a given type.
-     *
-     * @param int $type The type as an integer
-     *
-     * @return string The string representation
-     */
-    public static function typeToEnglish($type)
-    {
-        switch ($type) {
-            case self::EOF_TYPE:
-                return 'end of template';
-            case self::TEXT_TYPE:
-                return 'text';
-            case self::BLOCK_START_TYPE:
-                return 'begin of statement block';
-            case self::VAR_START_TYPE:
-                return 'begin of print statement';
-            case self::BLOCK_END_TYPE:
-                return 'end of statement block';
-            case self::VAR_END_TYPE:
-                return 'end of print statement';
-            case self::NAME_TYPE:
-                return 'name';
-            case self::NUMBER_TYPE:
-                return 'number';
-            case self::STRING_TYPE:
-                return 'string';
-            case self::OPERATOR_TYPE:
-                return 'operator';
-            case self::PUNCTUATION_TYPE:
-                return 'punctuation';
-            case self::INTERPOLATION_START_TYPE:
-                return 'begin of string interpolation';
-            case self::INTERPOLATION_END_TYPE:
-                return 'end of string interpolation';
-            default:
-                throw new LogicException(sprintf('Token of type "%s" does not exist.', $type));
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser.php b/core/vendor/twig/twig/lib/Twig/TokenParser.php
deleted file mode 100644
index fa9b6d8..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Base class for all token parsers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-abstract class Twig_TokenParser implements Twig_TokenParserInterface
-{
-    /**
-     * @var Twig_Parser
-     */
-    protected $parser;
-
-    /**
-     * Sets the parser associated with this token parser.
-     *
-     * @param Twig_Parser $parser A Twig_Parser instance
-     */
-    public function setParser(Twig_Parser $parser)
-    {
-        $this->parser = $parser;
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php b/core/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php
deleted file mode 100644
index 2756028..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Marks a section of a template to be escaped or not.
- *
- * <pre>
- * {% autoescape true %}
- *   Everything will be automatically escaped in this block
- * {% endautoescape %}
- *
- * {% autoescape false %}
- *   Everything will be outputed as is in this block
- * {% endautoescape %}
- *
- * {% autoescape true js %}
- *   Everything will be automatically escaped in this block
- *   using the js escaping strategy
- * {% endautoescape %}
- * </pre>
- */
-class Twig_TokenParser_AutoEscape extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-        $stream = $this->parser->getStream();
-
-        if ($stream->test(Twig_Token::BLOCK_END_TYPE)) {
-            $value = 'html';
-        } else {
-            $expr = $this->parser->getExpressionParser()->parseExpression();
-            if (!$expr instanceof Twig_Node_Expression_Constant) {
-                throw new Twig_Error_Syntax('An escaping strategy must be a string or a Boolean.', $stream->getCurrent()->getLine(), $stream->getFilename());
-            }
-            $value = $expr->getAttribute('value');
-
-            $compat = true === $value || false === $value;
-
-            if (true === $value) {
-                $value = 'html';
-            }
-
-            if ($compat && $stream->test(Twig_Token::NAME_TYPE)) {
-                if (false === $value) {
-                    throw new Twig_Error_Syntax('Unexpected escaping strategy as you set autoescaping to false.', $stream->getCurrent()->getLine(), $stream->getFilename());
-                }
-
-                $value = $stream->next()->getValue();
-            }
-        }
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-        $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_AutoEscape($value, $body, $lineno, $this->getTag());
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endautoescape');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'autoescape';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Block.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Block.php
deleted file mode 100644
index 0a46200..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Block.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Marks a section of a template as being reusable.
- *
- * <pre>
- *  {% block head %}
- *    <link rel="stylesheet" href="style.css" />
- *    <title>{% block title %}{% endblock %} - My Webpage</title>
- *  {% endblock %}
- * </pre>
- */
-class Twig_TokenParser_Block extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-        $stream = $this->parser->getStream();
-        $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-        if ($this->parser->hasBlock($name)) {
-            throw new Twig_Error_Syntax(sprintf("The block '$name' has already been defined line %d", $this->parser->getBlock($name)->getLine()), $stream->getCurrent()->getLine(), $stream->getFilename());
-        }
-        $this->parser->setBlock($name, $block = new Twig_Node_Block($name, new Twig_Node(array()), $lineno));
-        $this->parser->pushLocalScope();
-        $this->parser->pushBlockStack($name);
-
-        if ($stream->nextIf(Twig_Token::BLOCK_END_TYPE)) {
-            $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-            if ($token = $stream->nextIf(Twig_Token::NAME_TYPE)) {
-                $value = $token->getValue();
-
-                if ($value != $name) {
-                    throw new Twig_Error_Syntax(sprintf('Expected endblock for block "%s" (but "%s" given)', $name, $value), $stream->getCurrent()->getLine(), $stream->getFilename());
-                }
-            }
-        } else {
-            $body = new Twig_Node(array(
-                new Twig_Node_Print($this->parser->getExpressionParser()->parseExpression(), $lineno),
-            ));
-        }
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $block->setNode('body', $body);
-        $this->parser->popBlockStack();
-        $this->parser->popLocalScope();
-
-        return new Twig_Node_BlockReference($name, $lineno, $this->getTag());
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endblock');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'block';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php
deleted file mode 100644
index f50939d..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Do.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Evaluates an expression, discarding the returned value.
- */
-class Twig_TokenParser_Do extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $expr = $this->parser->getExpressionParser()->parseExpression();
-
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_Do($expr, $token->getLine(), $this->getTag());
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'do';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Embed.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Embed.php
deleted file mode 100644
index 69cb5f3..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Embed.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2012 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Embeds a template.
- */
-class Twig_TokenParser_Embed extends Twig_TokenParser_Include
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $stream = $this->parser->getStream();
-
-        $parent = $this->parser->getExpressionParser()->parseExpression();
-
-        list($variables, $only, $ignoreMissing) = $this->parseArguments();
-
-        // inject a fake parent to make the parent() function work
-        $stream->injectTokens(array(
-            new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', $token->getLine()),
-            new Twig_Token(Twig_Token::NAME_TYPE, 'extends', $token->getLine()),
-            new Twig_Token(Twig_Token::STRING_TYPE, '__parent__', $token->getLine()),
-            new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', $token->getLine()),
-        ));
-
-        $module = $this->parser->parse($stream, array($this, 'decideBlockEnd'), true);
-
-        // override the parent with the correct one
-        $module->setNode('parent', $parent);
-
-        $this->parser->embedTemplate($module);
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_Embed($module->getAttribute('filename'), $module->getAttribute('index'), $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag());
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endembed');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'embed';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Extends.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Extends.php
deleted file mode 100644
index f5ecee2..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Extends.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Extends a template by another one.
- *
- * <pre>
- *  {% extends "base.html" %}
- * </pre>
- */
-class Twig_TokenParser_Extends extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        if (!$this->parser->isMainScope()) {
-            throw new Twig_Error_Syntax('Cannot extend from a block', $token->getLine(), $this->parser->getFilename());
-        }
-
-        if (null !== $this->parser->getParent()) {
-            throw new Twig_Error_Syntax('Multiple extends tags are forbidden', $token->getLine(), $this->parser->getFilename());
-        }
-        $this->parser->setParent($this->parser->getExpressionParser()->parseExpression());
-
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'extends';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Filter.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Filter.php
deleted file mode 100644
index 2b97475..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Filter.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Filters a section of a template by applying filters.
- *
- * <pre>
- * {% filter upper %}
- *  This text becomes uppercase
- * {% endfilter %}
- * </pre>
- */
-class Twig_TokenParser_Filter extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $name = $this->parser->getVarName();
-        $ref = new Twig_Node_Expression_BlockReference(new Twig_Node_Expression_Constant($name, $token->getLine()), true, $token->getLine(), $this->getTag());
-
-        $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag());
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $block = new Twig_Node_Block($name, $body, $token->getLine());
-        $this->parser->setBlock($name, $block);
-
-        return new Twig_Node_Print($filter, $token->getLine(), $this->getTag());
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endfilter');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'filter';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Flush.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Flush.php
deleted file mode 100644
index 4e15e78..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Flush.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Flushes the output to the client.
- *
- * @see flush()
- */
-class Twig_TokenParser_Flush extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_Flush($token->getLine(), $this->getTag());
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'flush';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/For.php b/core/vendor/twig/twig/lib/Twig/TokenParser/For.php
deleted file mode 100644
index 5c07d63..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/For.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Loops over each item of a sequence.
- *
- * <pre>
- * <ul>
- *  {% for user in users %}
- *    <li>{{ user.username|e }}</li>
- *  {% endfor %}
- * </ul>
- * </pre>
- */
-class Twig_TokenParser_For extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-        $stream = $this->parser->getStream();
-        $targets = $this->parser->getExpressionParser()->parseAssignmentExpression();
-        $stream->expect(Twig_Token::OPERATOR_TYPE, 'in');
-        $seq = $this->parser->getExpressionParser()->parseExpression();
-
-        $ifexpr = null;
-        if ($stream->nextIf(Twig_Token::NAME_TYPE, 'if')) {
-            $ifexpr = $this->parser->getExpressionParser()->parseExpression();
-        }
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-        $body = $this->parser->subparse(array($this, 'decideForFork'));
-        if ($stream->next()->getValue() == 'else') {
-            $stream->expect(Twig_Token::BLOCK_END_TYPE);
-            $else = $this->parser->subparse(array($this, 'decideForEnd'), true);
-        } else {
-            $else = null;
-        }
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        if (count($targets) > 1) {
-            $keyTarget = $targets->getNode(0);
-            $keyTarget = new Twig_Node_Expression_AssignName($keyTarget->getAttribute('name'), $keyTarget->getLine());
-            $valueTarget = $targets->getNode(1);
-            $valueTarget = new Twig_Node_Expression_AssignName($valueTarget->getAttribute('name'), $valueTarget->getLine());
-        } else {
-            $keyTarget = new Twig_Node_Expression_AssignName('_key', $lineno);
-            $valueTarget = $targets->getNode(0);
-            $valueTarget = new Twig_Node_Expression_AssignName($valueTarget->getAttribute('name'), $valueTarget->getLine());
-        }
-
-        if ($ifexpr) {
-            $this->checkLoopUsageCondition($stream, $ifexpr);
-            $this->checkLoopUsageBody($stream, $body);
-        }
-
-        return new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, $lineno, $this->getTag());
-    }
-
-    public function decideForFork(Twig_Token $token)
-    {
-        return $token->test(array('else', 'endfor'));
-    }
-
-    public function decideForEnd(Twig_Token $token)
-    {
-        return $token->test('endfor');
-    }
-
-    // the loop variable cannot be used in the condition
-    protected function checkLoopUsageCondition(Twig_TokenStream $stream, Twig_NodeInterface $node)
-    {
-        if ($node instanceof Twig_Node_Expression_GetAttr && $node->getNode('node') instanceof Twig_Node_Expression_Name && 'loop' == $node->getNode('node')->getAttribute('name')) {
-            throw new Twig_Error_Syntax('The "loop" variable cannot be used in a looping condition', $node->getLine(), $stream->getFilename());
-        }
-
-        foreach ($node as $n) {
-            if (!$n) {
-                continue;
-            }
-
-            $this->checkLoopUsageCondition($stream, $n);
-        }
-    }
-
-    // check usage of non-defined loop-items
-    // it does not catch all problems (for instance when a for is included into another or when the variable is used in an include)
-    protected function checkLoopUsageBody(Twig_TokenStream $stream, Twig_NodeInterface $node)
-    {
-        if ($node instanceof Twig_Node_Expression_GetAttr && $node->getNode('node') instanceof Twig_Node_Expression_Name && 'loop' == $node->getNode('node')->getAttribute('name')) {
-            $attribute = $node->getNode('attribute');
-            if ($attribute instanceof Twig_Node_Expression_Constant && in_array($attribute->getAttribute('value'), array('length', 'revindex0', 'revindex', 'last'))) {
-                throw new Twig_Error_Syntax(sprintf('The "loop.%s" variable is not defined when looping with a condition', $attribute->getAttribute('value')), $node->getLine(), $stream->getFilename());
-            }
-        }
-
-        // should check for parent.loop.XXX usage
-        if ($node instanceof Twig_Node_For) {
-            return;
-        }
-
-        foreach ($node as $n) {
-            if (!$n) {
-                continue;
-            }
-
-            $this->checkLoopUsageBody($stream, $n);
-        }
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'for';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/From.php b/core/vendor/twig/twig/lib/Twig/TokenParser/From.php
deleted file mode 100644
index 5540efa..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/From.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Imports macros.
- *
- * <pre>
- *   {% from 'forms.html' import forms %}
- * </pre>
- */
-class Twig_TokenParser_From extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $macro = $this->parser->getExpressionParser()->parseExpression();
-        $stream = $this->parser->getStream();
-        $stream->expect('import');
-
-        $targets = array();
-        do {
-            $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-
-            $alias = $name;
-            if ($stream->nextIf('as')) {
-                $alias = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-            }
-
-            $targets[$name] = $alias;
-
-            if (!$stream->nextIf(Twig_Token::PUNCTUATION_TYPE, ',')) {
-                break;
-            }
-        } while (true);
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $node = new Twig_Node_Import($macro, new Twig_Node_Expression_AssignName($this->parser->getVarName(), $token->getLine()), $token->getLine(), $this->getTag());
-
-        foreach ($targets as $name => $alias) {
-            if ($this->parser->isReservedMacroName($name)) {
-                throw new Twig_Error_Syntax(sprintf('"%s" cannot be an imported macro as it is a reserved keyword', $name), $token->getLine(), $stream->getFilename());
-            }
-
-            $this->parser->addImportedSymbol('function', $alias, 'get'.$name, $node->getNode('var'));
-        }
-
-        return $node;
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'from';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/If.php b/core/vendor/twig/twig/lib/Twig/TokenParser/If.php
deleted file mode 100644
index 3d7d1f5..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/If.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Tests a condition.
- *
- * <pre>
- * {% if users %}
- *  <ul>
- *    {% for user in users %}
- *      <li>{{ user.username|e }}</li>
- *    {% endfor %}
- *  </ul>
- * {% endif %}
- * </pre>
- */
-class Twig_TokenParser_If extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-        $expr = $this->parser->getExpressionParser()->parseExpression();
-        $stream = $this->parser->getStream();
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-        $body = $this->parser->subparse(array($this, 'decideIfFork'));
-        $tests = array($expr, $body);
-        $else = null;
-
-        $end = false;
-        while (!$end) {
-            switch ($stream->next()->getValue()) {
-                case 'else':
-                    $stream->expect(Twig_Token::BLOCK_END_TYPE);
-                    $else = $this->parser->subparse(array($this, 'decideIfEnd'));
-                    break;
-
-                case 'elseif':
-                    $expr = $this->parser->getExpressionParser()->parseExpression();
-                    $stream->expect(Twig_Token::BLOCK_END_TYPE);
-                    $body = $this->parser->subparse(array($this, 'decideIfFork'));
-                    $tests[] = $expr;
-                    $tests[] = $body;
-                    break;
-
-                case 'endif':
-                    $end = true;
-                    break;
-
-                default:
-                    throw new Twig_Error_Syntax(sprintf('Unexpected end of template. Twig was looking for the following tags "else", "elseif", or "endif" to close the "if" block started at line %d)', $lineno), $stream->getCurrent()->getLine(), $stream->getFilename());
-            }
-        }
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_If(new Twig_Node($tests), $else, $lineno, $this->getTag());
-    }
-
-    public function decideIfFork(Twig_Token $token)
-    {
-        return $token->test(array('elseif', 'else', 'endif'));
-    }
-
-    public function decideIfEnd(Twig_Token $token)
-    {
-        return $token->test(array('endif'));
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'if';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Import.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Import.php
deleted file mode 100644
index e7050c7..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Import.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Imports macros.
- *
- * <pre>
- *   {% import 'forms.html' as forms %}
- * </pre>
- */
-class Twig_TokenParser_Import extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $macro = $this->parser->getExpressionParser()->parseExpression();
-        $this->parser->getStream()->expect('as');
-        $var = new Twig_Node_Expression_AssignName($this->parser->getStream()->expect(Twig_Token::NAME_TYPE)->getValue(), $token->getLine());
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $this->parser->addImportedSymbol('template', $var->getAttribute('name'));
-
-        return new Twig_Node_Import($macro, $var, $token->getLine(), $this->getTag());
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'import';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Include.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Include.php
deleted file mode 100644
index 9c3099a..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Include.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Includes a template.
- *
- * <pre>
- *   {% include 'header.html' %}
- *     Body
- *   {% include 'footer.html' %}
- * </pre>
- */
-class Twig_TokenParser_Include extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $expr = $this->parser->getExpressionParser()->parseExpression();
-
-        list($variables, $only, $ignoreMissing) = $this->parseArguments();
-
-        return new Twig_Node_Include($expr, $variables, $only, $ignoreMissing, $token->getLine(), $this->getTag());
-    }
-
-    protected function parseArguments()
-    {
-        $stream = $this->parser->getStream();
-
-        $ignoreMissing = false;
-        if ($stream->nextIf(Twig_Token::NAME_TYPE, 'ignore')) {
-            $stream->expect(Twig_Token::NAME_TYPE, 'missing');
-
-            $ignoreMissing = true;
-        }
-
-        $variables = null;
-        if ($stream->nextIf(Twig_Token::NAME_TYPE, 'with')) {
-            $variables = $this->parser->getExpressionParser()->parseExpression();
-        }
-
-        $only = false;
-        if ($stream->nextIf(Twig_Token::NAME_TYPE, 'only')) {
-            $only = true;
-        }
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return array($variables, $only, $ignoreMissing);
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'include';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Macro.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Macro.php
deleted file mode 100644
index ad910b5..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Macro.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Defines a macro.
- *
- * <pre>
- * {% macro input(name, value, type, size) %}
- *    <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
- * {% endmacro %}
- * </pre>
- */
-class Twig_TokenParser_Macro extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-        $stream = $this->parser->getStream();
-        $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-
-        $arguments = $this->parser->getExpressionParser()->parseArguments(true, true);
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-        $this->parser->pushLocalScope();
-        $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-        if ($token = $stream->nextIf(Twig_Token::NAME_TYPE)) {
-            $value = $token->getValue();
-
-            if ($value != $name) {
-                throw new Twig_Error_Syntax(sprintf('Expected endmacro for macro "%s" (but "%s" given)', $name, $value), $stream->getCurrent()->getLine(), $stream->getFilename());
-            }
-        }
-        $this->parser->popLocalScope();
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $this->parser->setMacro($name, new Twig_Node_Macro($name, new Twig_Node_Body(array($body)), $arguments, $lineno, $this->getTag()));
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endmacro');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'macro';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php
deleted file mode 100644
index 9457325..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Sandbox.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Marks a section of a template as untrusted code that must be evaluated in the sandbox mode.
- *
- * <pre>
- * {% sandbox %}
- *     {% include 'user.html' %}
- * {% endsandbox %}
- * </pre>
- *
- * @see http://www.twig-project.org/doc/api.html#sandbox-extension for details
- */
-class Twig_TokenParser_Sandbox extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-        $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        // in a sandbox tag, only include tags are allowed
-        if (!$body instanceof Twig_Node_Include) {
-            foreach ($body as $node) {
-                if ($node instanceof Twig_Node_Text && ctype_space($node->getAttribute('data'))) {
-                    continue;
-                }
-
-                if (!$node instanceof Twig_Node_Include) {
-                    throw new Twig_Error_Syntax('Only "include" tags are allowed within a "sandbox" section', $node->getLine(), $this->parser->getFilename());
-                }
-            }
-        }
-
-        return new Twig_Node_Sandbox($body, $token->getLine(), $this->getTag());
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endsandbox');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'sandbox';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php
deleted file mode 100644
index 0b41909..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Set.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Defines a variable.
- *
- * <pre>
- *  {% set foo = 'foo' %}
- *
- *  {% set foo = [1, 2] %}
- *
- *  {% set foo = {'foo': 'bar'} %}
- *
- *  {% set foo = 'foo' ~ 'bar' %}
- *
- *  {% set foo, bar = 'foo', 'bar' %}
- *
- *  {% set foo %}Some content{% endset %}
- * </pre>
- */
-class Twig_TokenParser_Set extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-        $stream = $this->parser->getStream();
-        $names = $this->parser->getExpressionParser()->parseAssignmentExpression();
-
-        $capture = false;
-        if ($stream->nextIf(Twig_Token::OPERATOR_TYPE, '=')) {
-            $values = $this->parser->getExpressionParser()->parseMultitargetExpression();
-
-            $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-            if (count($names) !== count($values)) {
-                throw new Twig_Error_Syntax('When using set, you must have the same number of variables and assignments.', $stream->getCurrent()->getLine(), $stream->getFilename());
-            }
-        } else {
-            $capture = true;
-
-            if (count($names) > 1) {
-                throw new Twig_Error_Syntax('When using set with a block, you cannot have a multi-target.', $stream->getCurrent()->getLine(), $stream->getFilename());
-            }
-
-            $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-            $values = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
-            $stream->expect(Twig_Token::BLOCK_END_TYPE);
-        }
-
-        return new Twig_Node_Set($capture, $names, $values, $lineno, $this->getTag());
-    }
-
-    public function decideBlockEnd(Twig_Token $token)
-    {
-        return $token->test('endset');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'set';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php
deleted file mode 100644
index 1e3fa8f..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Remove whitespaces between HTML tags.
- *
- * <pre>
- * {% spaceless %}
- *      <div>
- *          <strong>foo</strong>
- *      </div>
- * {% endspaceless %}
- *
- * {# output will be <div><strong>foo</strong></div> #}
- * </pre>
- */
-class Twig_TokenParser_Spaceless extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $lineno = $token->getLine();
-
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-        $body = $this->parser->subparse(array($this, 'decideSpacelessEnd'), true);
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_Spaceless($body, $lineno, $this->getTag());
-    }
-
-    public function decideSpacelessEnd(Twig_Token $token)
-    {
-        return $token->test('endspaceless');
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'spaceless';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParser/Use.php b/core/vendor/twig/twig/lib/Twig/TokenParser/Use.php
deleted file mode 100644
index 3ea68b1..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParser/Use.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2011 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Imports blocks defined in another template into the current template.
- *
- * <pre>
- * {% extends "base.html" %}
- *
- * {% use "blocks.html" %}
- *
- * {% block title %}{% endblock %}
- * {% block content %}{% endblock %}
- * </pre>
- *
- * @see http://www.twig-project.org/doc/templates.html#horizontal-reuse for details.
- */
-class Twig_TokenParser_Use extends Twig_TokenParser
-{
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     */
-    public function parse(Twig_Token $token)
-    {
-        $template = $this->parser->getExpressionParser()->parseExpression();
-        $stream = $this->parser->getStream();
-
-        if (!$template instanceof Twig_Node_Expression_Constant) {
-            throw new Twig_Error_Syntax('The template references in a "use" statement must be a string.', $stream->getCurrent()->getLine(), $stream->getFilename());
-        }
-
-        $targets = array();
-        if ($stream->nextIf('with')) {
-            do {
-                $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-
-                $alias = $name;
-                if ($stream->nextIf('as')) {
-                    $alias = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
-                }
-
-                $targets[$name] = new Twig_Node_Expression_Constant($alias, -1);
-
-                if (!$stream->nextIf(Twig_Token::PUNCTUATION_TYPE, ',')) {
-                    break;
-                }
-            } while (true);
-        }
-
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-
-        $this->parser->addTrait(new Twig_Node(array('template' => $template, 'targets' => new Twig_Node($targets))));
-    }
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag()
-    {
-        return 'use';
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php b/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php
deleted file mode 100644
index 4a9cb5c..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParserBroker.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Default implementation of a token parser broker.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-class Twig_TokenParserBroker implements Twig_TokenParserBrokerInterface
-{
-    protected $parser;
-    protected $parsers = array();
-    protected $brokers = array();
-
-    /**
-     * Constructor.
-     *
-     * @param array|Traversable $parsers A Traversable of Twig_TokenParserInterface instances
-     * @param array|Traversable $brokers A Traversable of Twig_TokenParserBrokerInterface instances
-     */
-    public function __construct($parsers = array(), $brokers = array())
-    {
-        foreach ($parsers as $parser) {
-            if (!$parser instanceof Twig_TokenParserInterface) {
-                throw new LogicException('$parsers must a an array of Twig_TokenParserInterface');
-            }
-            $this->parsers[$parser->getTag()] = $parser;
-        }
-        foreach ($brokers as $broker) {
-            if (!$broker instanceof Twig_TokenParserBrokerInterface) {
-                throw new LogicException('$brokers must a an array of Twig_TokenParserBrokerInterface');
-            }
-            $this->brokers[] = $broker;
-        }
-    }
-
-    /**
-     * Adds a TokenParser.
-     *
-     * @param Twig_TokenParserInterface $parser A Twig_TokenParserInterface instance
-     */
-    public function addTokenParser(Twig_TokenParserInterface $parser)
-    {
-        $this->parsers[$parser->getTag()] = $parser;
-    }
-
-    /**
-     * Removes a TokenParser.
-     *
-     * @param Twig_TokenParserInterface $parser A Twig_TokenParserInterface instance
-     */
-    public function removeTokenParser(Twig_TokenParserInterface $parser)
-    {
-        $name = $parser->getTag();
-        if (isset($this->parsers[$name]) && $parser === $this->parsers[$name]) {
-            unset($this->parsers[$name]);
-        }
-    }
-
-    /**
-     * Adds a TokenParserBroker.
-     *
-     * @param Twig_TokenParserBroker $broker A Twig_TokenParserBroker instance
-     */
-    public function addTokenParserBroker(Twig_TokenParserBroker $broker)
-    {
-        $this->brokers[] = $broker;
-    }
-
-    /**
-     * Removes a TokenParserBroker.
-     *
-     * @param Twig_TokenParserBroker $broker A Twig_TokenParserBroker instance
-     */
-    public function removeTokenParserBroker(Twig_TokenParserBroker $broker)
-    {
-        if (false !== $pos = array_search($broker, $this->brokers)) {
-            unset($this->brokers[$pos]);
-        }
-    }
-
-    /**
-     * Gets a suitable TokenParser for a tag.
-     *
-     * First looks in parsers, then in brokers.
-     *
-     * @param string $tag A tag name
-     *
-     * @return null|Twig_TokenParserInterface A Twig_TokenParserInterface or null if no suitable TokenParser was found
-     */
-    public function getTokenParser($tag)
-    {
-        if (isset($this->parsers[$tag])) {
-            return $this->parsers[$tag];
-        }
-        $broker = end($this->brokers);
-        while (false !== $broker) {
-            $parser = $broker->getTokenParser($tag);
-            if (null !== $parser) {
-                return $parser;
-            }
-            $broker = prev($this->brokers);
-        }
-    }
-
-    public function getParsers()
-    {
-        return $this->parsers;
-    }
-
-    public function getParser()
-    {
-        return $this->parser;
-    }
-
-    public function setParser(Twig_ParserInterface $parser)
-    {
-        $this->parser = $parser;
-        foreach ($this->parsers as $tokenParser) {
-            $tokenParser->setParser($parser);
-        }
-        foreach ($this->brokers as $broker) {
-            $broker->setParser($parser);
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php b/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
deleted file mode 100644
index 3ec2a88..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- * (c) 2010 Arnaud Le Blanc
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by token parser brokers.
- *
- * Token parser brokers allows to implement custom logic in the process of resolving a token parser for a given tag name.
- *
- * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
- *
- * @deprecated since 1.12 (to be removed in 2.0)
- */
-interface Twig_TokenParserBrokerInterface
-{
-    /**
-     * Gets a TokenParser suitable for a tag.
-     *
-     * @param string $tag A tag name
-     *
-     * @return null|Twig_TokenParserInterface A Twig_TokenParserInterface or null if no suitable TokenParser was found
-     */
-    public function getTokenParser($tag);
-
-    /**
-     * Calls Twig_TokenParserInterface::setParser on all parsers the implementation knows of.
-     *
-     * @param Twig_ParserInterface $parser A Twig_ParserInterface interface
-     */
-    public function setParser(Twig_ParserInterface $parser);
-
-    /**
-     * Gets the Twig_ParserInterface.
-     *
-     * @return null|Twig_ParserInterface A Twig_ParserInterface instance or null
-     */
-    public function getParser();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php b/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php
deleted file mode 100644
index 12ec396..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenParserInterface.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2010 Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Interface implemented by token parsers.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-interface Twig_TokenParserInterface
-{
-    /**
-     * Sets the parser associated with this token parser.
-     *
-     * @param Twig_Parser $parser A Twig_Parser instance
-     */
-    public function setParser(Twig_Parser $parser);
-
-    /**
-     * Parses a token and returns a node.
-     *
-     * @param Twig_Token $token A Twig_Token instance
-     *
-     * @return Twig_NodeInterface A Twig_NodeInterface instance
-     *
-     * @throws Twig_Error_Syntax
-     */
-    public function parse(Twig_Token $token);
-
-    /**
-     * Gets the tag name associated with this token parser.
-     *
-     * @return string The tag name
-     */
-    public function getTag();
-}
diff --git a/core/vendor/twig/twig/lib/Twig/TokenStream.php b/core/vendor/twig/twig/lib/Twig/TokenStream.php
deleted file mode 100644
index 89d2575..0000000
--- a/core/vendor/twig/twig/lib/Twig/TokenStream.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) 2009 Fabien Potencier
- * (c) 2009 Armin Ronacher
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Represents a token stream.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class Twig_TokenStream
-{
-    protected $tokens;
-    protected $current;
-    protected $filename;
-
-    /**
-     * Constructor.
-     *
-     * @param array  $tokens   An array of tokens
-     * @param string $filename The name of the filename which tokens are associated with
-     */
-    public function __construct(array $tokens, $filename = null)
-    {
-        $this->tokens = $tokens;
-        $this->current = 0;
-        $this->filename = $filename;
-    }
-
-    /**
-     * Returns a string representation of the token stream.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return implode("\n", $this->tokens);
-    }
-
-    public function injectTokens(array $tokens)
-    {
-        $this->tokens = array_merge(array_slice($this->tokens, 0, $this->current), $tokens, array_slice($this->tokens, $this->current));
-    }
-
-    /**
-     * Sets the pointer to the next token and returns the old one.
-     *
-     * @return Twig_Token
-     */
-    public function next()
-    {
-        if (!isset($this->tokens[++$this->current])) {
-            throw new Twig_Error_Syntax('Unexpected end of template', $this->tokens[$this->current - 1]->getLine(), $this->filename);
-        }
-
-        return $this->tokens[$this->current - 1];
-    }
-
-    /**
-     * Tests a token, sets the pointer to the next one and returns it or throws a syntax error.
-     *
-     * @return Twig_Token|null The next token if the condition is true, null otherwise
-     */
-    public function nextIf($primary, $secondary = null)
-    {
-        if ($this->tokens[$this->current]->test($primary, $secondary)) {
-            return $this->next();
-        }
-    }
-
-    /**
-     * Tests a token and returns it or throws a syntax error.
-     *
-     * @return Twig_Token
-     */
-    public function expect($type, $value = null, $message = null)
-    {
-        $token = $this->tokens[$this->current];
-        if (!$token->test($type, $value)) {
-            $line = $token->getLine();
-            throw new Twig_Error_Syntax(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s)',
-                $message ? $message.'. ' : '',
-                Twig_Token::typeToEnglish($token->getType()), $token->getValue(),
-                Twig_Token::typeToEnglish($type), $value ? sprintf(' with value "%s"', $value) : ''),
-                $line,
-                $this->filename
-            );
-        }
-        $this->next();
-
-        return $token;
-    }
-
-    /**
-     * Looks at the next token.
-     *
-     * @param int $number
-     *
-     * @return Twig_Token
-     */
-    public function look($number = 1)
-    {
-        if (!isset($this->tokens[$this->current + $number])) {
-            throw new Twig_Error_Syntax('Unexpected end of template', $this->tokens[$this->current + $number - 1]->getLine(), $this->filename);
-        }
-
-        return $this->tokens[$this->current + $number];
-    }
-
-    /**
-     * Tests the current token.
-     *
-     * @return bool
-     */
-    public function test($primary, $secondary = null)
-    {
-        return $this->tokens[$this->current]->test($primary, $secondary);
-    }
-
-    /**
-     * Checks if end of stream was reached.
-     *
-     * @return bool
-     */
-    public function isEOF()
-    {
-        return $this->tokens[$this->current]->getType() === Twig_Token::EOF_TYPE;
-    }
-
-    /**
-     * Gets the current token.
-     *
-     * @return Twig_Token
-     */
-    public function getCurrent()
-    {
-        return $this->tokens[$this->current];
-    }
-
-    /**
-     * Gets the filename associated with this stream.
-     *
-     * @return string
-     */
-    public function getFilename()
-    {
-        return $this->filename;
-    }
-}
diff --git a/core/vendor/twig/twig/phpunit.xml.dist b/core/vendor/twig/twig/phpunit.xml.dist
deleted file mode 100644
index 6c5046f..0000000
--- a/core/vendor/twig/twig/phpunit.xml.dist
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="test/bootstrap.php"
->
-  <testsuites>
-    <testsuite name="Twig Test Suite">
-      <directory>./test/Twig/</directory>
-    </testsuite>
-  </testsuites>
-
-  <filter>
-    <whitelist>
-      <directory suffix=".php">./lib/Twig/</directory>
-    </whitelist>
-  </filter>
-</phpunit>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/AutoloaderTest.php b/core/vendor/twig/twig/test/Twig/Tests/AutoloaderTest.php
deleted file mode 100644
index c8b7999..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/AutoloaderTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_AutoloaderTest extends PHPUnit_Framework_TestCase
-{
-    public function testAutoload()
-    {
-        $this->assertFalse(class_exists('FooBarFoo'), '->autoload() does not try to load classes that does not begin with Twig');
-
-        $autoloader = new Twig_Autoloader();
-        $this->assertNull($autoloader->autoload('Foo'), '->autoload() returns false if it is not able to load a class');
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/CompilerTest.php b/core/vendor/twig/twig/test/Twig/Tests/CompilerTest.php
deleted file mode 100644
index 2c8b445..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/CompilerTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_CompilerTest extends PHPUnit_Framework_TestCase
-{
-    public function testReprNumericValueWithLocale()
-    {
-        $compiler = new Twig_Compiler(new Twig_Environment());
-
-        $locale = setlocale(LC_NUMERIC, 0);
-        if (false === $locale) {
-            $this->markTestSkipped('Your platform does not support locales.');
-        }
-
-        $required_locales = array('fr_FR.UTF-8', 'fr_FR.UTF8', 'fr_FR.utf-8', 'fr_FR.utf8', 'French_France.1252');
-        if (false === setlocale(LC_NUMERIC, $required_locales)) {
-            $this->markTestSkipped('Could not set any of required locales: '.implode(', ', $required_locales));
-        }
-
-        $this->assertEquals('1.2', $compiler->repr(1.2)->getSource());
-        $this->assertContains('fr', strtolower(setlocale(LC_NUMERIC, 0)));
-
-        setlocale(LC_NUMERIC, $locale);
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php b/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
deleted file mode 100644
index f8389ea..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
+++ /dev/null
@@ -1,288 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_EnvironmentTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException        LogicException
-     * @expectedExceptionMessage You must set a loader first.
-     */
-    public function testRenderNoLoader()
-    {
-        $env = new Twig_Environment();
-        $env->render('test');
-    }
-
-    public function testAutoescapeOption()
-    {
-        $loader = new Twig_Loader_Array(array(
-            'html' => '{{ foo }} {{ foo }}',
-            'js' => '{{ bar }} {{ bar }}',
-        ));
-
-        $twig = new Twig_Environment($loader, array(
-            'debug' => true,
-            'cache' => false,
-            'autoescape' => array($this, 'escapingStrategyCallback'),
-        ));
-
-        $this->assertEquals('foo&lt;br/ &gt; foo&lt;br/ &gt;', $twig->render('html', array('foo' => 'foo<br/ >')));
-        $this->assertEquals('foo\x3Cbr\x2F\x20\x3E foo\x3Cbr\x2F\x20\x3E', $twig->render('js', array('bar' => 'foo<br/ >')));
-    }
-
-    public function escapingStrategyCallback($filename)
-    {
-        return $filename;
-    }
-
-    public function testGlobals()
-    {
-        // globals can be added after calling getGlobals
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->addGlobal('foo', 'bar');
-        $globals = $twig->getGlobals();
-        $this->assertEquals('bar', $globals['foo']);
-
-        // globals can be modified after runtime init
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->initRuntime();
-        $twig->addGlobal('foo', 'bar');
-        $globals = $twig->getGlobals();
-        $this->assertEquals('bar', $globals['foo']);
-
-        // globals can be modified after extensions init
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->getFunctions();
-        $twig->addGlobal('foo', 'bar');
-        $globals = $twig->getGlobals();
-        $this->assertEquals('bar', $globals['foo']);
-
-        // globals can be modified after extensions and runtime init
-        $twig = new Twig_Environment($loader = new Twig_Loader_Array(array('index' => '{{foo}}')));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->getFunctions();
-        $twig->initRuntime();
-        $twig->addGlobal('foo', 'bar');
-        $globals = $twig->getGlobals();
-        $this->assertEquals('bar', $globals['foo']);
-
-        $twig = new Twig_Environment($loader);
-        $twig->getGlobals();
-        $twig->addGlobal('foo', 'bar');
-        $template = $twig->loadTemplate('index');
-        $this->assertEquals('bar', $template->render(array()));
-
-        /* to be uncomment in Twig 2.0
-        // globals cannot be added after runtime init
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->initRuntime();
-        try {
-            $twig->addGlobal('bar', 'bar');
-            $this->fail();
-        } catch (LogicException $e) {
-            $this->assertFalse(array_key_exists('bar', $twig->getGlobals()));
-        }
-
-        // globals cannot be added after extensions init
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->getFunctions();
-        try {
-            $twig->addGlobal('bar', 'bar');
-            $this->fail();
-        } catch (LogicException $e) {
-            $this->assertFalse(array_key_exists('bar', $twig->getGlobals()));
-        }
-
-        // globals cannot be added after extensions and runtime init
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addGlobal('foo', 'foo');
-        $twig->getGlobals();
-        $twig->getFunctions();
-        $twig->initRuntime();
-        try {
-            $twig->addGlobal('bar', 'bar');
-            $this->fail();
-        } catch (LogicException $e) {
-            $this->assertFalse(array_key_exists('bar', $twig->getGlobals()));
-        }
-
-        // test adding globals after initRuntime without call to getGlobals
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->initRuntime();
-        try {
-            $twig->addGlobal('bar', 'bar');
-            $this->fail();
-        } catch (LogicException $e) {
-            $this->assertFalse(array_key_exists('bar', $twig->getGlobals()));
-        }
-        */
-    }
-
-    public function testExtensionsAreNotInitializedWhenRenderingACompiledTemplate()
-    {
-        $options = array('cache' => sys_get_temp_dir().'/twig', 'auto_reload' => false, 'debug' => false);
-
-        // force compilation
-        $twig = new Twig_Environment($loader = new Twig_Loader_Array(array('index' => '{{ foo }}')), $options);
-        $cache = $twig->getCacheFilename('index');
-        if (!is_dir(dirname($cache))) {
-            mkdir(dirname($cache), 0777, true);
-        }
-        file_put_contents($cache, $twig->compileSource('{{ foo }}', 'index'));
-
-        // check that extensions won't be initialized when rendering a template that is already in the cache
-        $twig = $this
-            ->getMockBuilder('Twig_Environment')
-            ->setConstructorArgs(array($loader, $options))
-            ->setMethods(array('initExtensions'))
-            ->getMock()
-        ;
-
-        $twig->expects($this->never())->method('initExtensions');
-
-        // render template
-        $output = $twig->render('index', array('foo' => 'bar'));
-        $this->assertEquals('bar', $output);
-
-        unlink($cache);
-    }
-
-    public function testAddExtension()
-    {
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addExtension(new Twig_Tests_EnvironmentTest_Extension());
-
-        $this->assertArrayHasKey('test', $twig->getTags());
-        $this->assertArrayHasKey('foo_filter', $twig->getFilters());
-        $this->assertArrayHasKey('foo_function', $twig->getFunctions());
-        $this->assertArrayHasKey('foo_test', $twig->getTests());
-        $this->assertArrayHasKey('foo_unary', $twig->getUnaryOperators());
-        $this->assertArrayHasKey('foo_binary', $twig->getBinaryOperators());
-        $this->assertArrayHasKey('foo_global', $twig->getGlobals());
-        $visitors = $twig->getNodeVisitors();
-        $this->assertEquals('Twig_Tests_EnvironmentTest_NodeVisitor', get_class($visitors[2]));
-    }
-
-    public function testRemoveExtension()
-    {
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-        $twig->addExtension(new Twig_Tests_EnvironmentTest_Extension());
-        $twig->removeExtension('environment_test');
-
-        $this->assertFalse(array_key_exists('test', $twig->getTags()));
-        $this->assertFalse(array_key_exists('foo_filter', $twig->getFilters()));
-        $this->assertFalse(array_key_exists('foo_function', $twig->getFunctions()));
-        $this->assertFalse(array_key_exists('foo_test', $twig->getTests()));
-        $this->assertFalse(array_key_exists('foo_unary', $twig->getUnaryOperators()));
-        $this->assertFalse(array_key_exists('foo_binary', $twig->getBinaryOperators()));
-        $this->assertFalse(array_key_exists('foo_global', $twig->getGlobals()));
-        $this->assertCount(2, $twig->getNodeVisitors());
-    }
-}
-
-class Twig_Tests_EnvironmentTest_Extension extends Twig_Extension
-{
-    public function getTokenParsers()
-    {
-        return array(
-            new Twig_Tests_EnvironmentTest_TokenParser(),
-        );
-    }
-
-    public function getNodeVisitors()
-    {
-        return array(
-            new Twig_Tests_EnvironmentTest_NodeVisitor(),
-        );
-    }
-
-    public function getFilters()
-    {
-        return array(
-            new Twig_SimpleFilter('foo_filter', 'foo_filter'),
-        );
-    }
-
-    public function getTests()
-    {
-        return array(
-            new Twig_SimpleTest('foo_test', 'foo_test'),
-        );
-    }
-
-    public function getFunctions()
-    {
-        return array(
-            new Twig_SimpleFunction('foo_function', 'foo_function'),
-        );
-    }
-
-    public function getOperators()
-    {
-        return array(
-            array('foo_unary' => array()),
-            array('foo_binary' => array()),
-        );
-    }
-
-    public function getGlobals()
-    {
-        return array(
-            'foo_global' => 'foo_global',
-        );
-    }
-
-    public function getName()
-    {
-        return 'environment_test';
-    }
-}
-
-class Twig_Tests_EnvironmentTest_TokenParser extends Twig_TokenParser
-{
-    public function parse(Twig_Token $token)
-    {
-    }
-
-    public function getTag()
-    {
-        return 'test';
-    }
-}
-
-class Twig_Tests_EnvironmentTest_NodeVisitor implements Twig_NodeVisitorInterface
-{
-    public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        return $node;
-    }
-
-    public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        return $node;
-    }
-
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/ErrorTest.php b/core/vendor/twig/twig/test/Twig/Tests/ErrorTest.php
deleted file mode 100644
index d58c40b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/ErrorTest.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_ErrorTest extends PHPUnit_Framework_TestCase
-{
-    public function testErrorWithObjectFilename()
-    {
-        $error = new Twig_Error('foo');
-        $error->setTemplateFile(new SplFileInfo(__FILE__));
-
-        $this->assertContains('test'.DIRECTORY_SEPARATOR.'Twig'.DIRECTORY_SEPARATOR.'Tests'.DIRECTORY_SEPARATOR.'ErrorTest.php', $error->getMessage());
-    }
-
-    public function testErrorWithArrayFilename()
-    {
-        $error = new Twig_Error('foo');
-        $error->setTemplateFile(array('foo' => 'bar'));
-
-        $this->assertEquals('foo in {"foo":"bar"}', $error->getMessage());
-    }
-
-    public function testTwigExceptionAddsFileAndLineWhenMissingWithInheritanceOnDisk()
-    {
-        $loader = new Twig_Loader_Filesystem(dirname(__FILE__).'/Fixtures/errors');
-        $twig = new Twig_Environment($loader, array('strict_variables' => true, 'debug' => true, 'cache' => false));
-
-        $template = $twig->loadTemplate('index.html');
-        try {
-            $template->render(array());
-
-            $this->fail();
-        } catch (Twig_Error_Runtime $e) {
-            $this->assertEquals('Variable "foo" does not exist in "index.html" at line 3', $e->getMessage());
-            $this->assertEquals(3, $e->getTemplateLine());
-            $this->assertEquals('index.html', $e->getTemplateFile());
-        }
-
-        try {
-            $template->render(array('foo' => new Twig_Tests_ErrorTest_Foo()));
-
-            $this->fail();
-        } catch (Twig_Error_Runtime $e) {
-            $this->assertEquals('An exception has been thrown during the rendering of a template ("Runtime error...") in "index.html" at line 3.', $e->getMessage());
-            $this->assertEquals(3, $e->getTemplateLine());
-            $this->assertEquals('index.html', $e->getTemplateFile());
-        }
-    }
-
-    /**
-     * @dataProvider getErroredTemplates
-     */
-    public function testTwigExceptionAddsFileAndLine($templates, $name, $line)
-    {
-        $loader = new Twig_Loader_Array($templates);
-        $twig = new Twig_Environment($loader, array('strict_variables' => true, 'debug' => true, 'cache' => false));
-
-        $template = $twig->loadTemplate('index');
-
-        try {
-            $template->render(array());
-
-            $this->fail();
-        } catch (Twig_Error_Runtime $e) {
-            $this->assertEquals(sprintf('Variable "foo" does not exist in "%s" at line %d', $name, $line), $e->getMessage());
-            $this->assertEquals($line, $e->getTemplateLine());
-            $this->assertEquals($name, $e->getTemplateFile());
-        }
-
-        try {
-            $template->render(array('foo' => new Twig_Tests_ErrorTest_Foo()));
-
-            $this->fail();
-        } catch (Twig_Error_Runtime $e) {
-            $this->assertEquals(sprintf('An exception has been thrown during the rendering of a template ("Runtime error...") in "%s" at line %d.', $name, $line), $e->getMessage());
-            $this->assertEquals($line, $e->getTemplateLine());
-            $this->assertEquals($name, $e->getTemplateFile());
-        }
-    }
-
-    public function getErroredTemplates()
-    {
-        return array(
-            // error occurs in a template
-            array(
-                array(
-                    'index' => "\n\n{{ foo.bar }}\n\n\n{{ 'foo' }}",
-                ),
-                'index', 3,
-            ),
-
-            // error occurs in an included template
-            array(
-                array(
-                    'index' => "{% include 'partial' %}",
-                    'partial' => '{{ foo.bar }}',
-                ),
-                'partial', 1,
-            ),
-
-            // error occurs in a parent block when called via parent()
-            array(
-                array(
-                    'index' => "{% extends 'base' %}
-                    {% block content %}
-                        {{ parent() }}
-                    {% endblock %}",
-                    'base' => '{% block content %}{{ foo.bar }}{% endblock %}',
-                ),
-                'base', 1,
-            ),
-
-            // error occurs in a block from the child
-            array(
-                array(
-                    'index' => "{% extends 'base' %}
-                    {% block content %}
-                        {{ foo.bar }}
-                    {% endblock %}
-                    {% block foo %}
-                        {{ foo.bar }}
-                    {% endblock %}",
-                    'base' => '{% block content %}{% endblock %}',
-                ),
-                'index', 3,
-            ),
-        );
-    }
-}
-
-class Twig_Tests_ErrorTest_Foo
-{
-    public function bar()
-    {
-        throw new Exception('Runtime error...');
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php b/core/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php
deleted file mode 100644
index ff263cf..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php
+++ /dev/null
@@ -1,332 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_ExpressionParserTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @dataProvider getFailingTestsForAssignment
-     */
-    public function testCanOnlyAssignToNames($template)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize($template, 'index'));
-    }
-
-    public function getFailingTestsForAssignment()
-    {
-        return array(
-            array('{% set false = "foo" %}'),
-            array('{% set true = "foo" %}'),
-            array('{% set none = "foo" %}'),
-            array('{% set 3 = "foo" %}'),
-            array('{% set 1 + 2 = "foo" %}'),
-            array('{% set "bar" = "foo" %}'),
-            array('{% set %}{% endset %}'),
-        );
-    }
-
-    /**
-     * @dataProvider getTestsForArray
-     */
-    public function testArrayExpression($template, $expected)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $stream = $env->tokenize($template, 'index');
-        $parser = new Twig_Parser($env);
-
-        $this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0)->getNode('expr'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @dataProvider getFailingTestsForArray
-     */
-    public function testArraySyntaxError($template)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize($template, 'index'));
-    }
-
-    public function getFailingTestsForArray()
-    {
-        return array(
-            array('{{ [1, "a": "b"] }}'),
-            array('{{ {"a": "b", 2} }}'),
-        );
-    }
-
-    public function getTestsForArray()
-    {
-        return array(
-            // simple array
-            array('{{ [1, 2] }}', new Twig_Node_Expression_Array(array(
-                  new Twig_Node_Expression_Constant(0, 1),
-                  new Twig_Node_Expression_Constant(1, 1),
-
-                  new Twig_Node_Expression_Constant(1, 1),
-                  new Twig_Node_Expression_Constant(2, 1),
-                ), 1),
-            ),
-
-            // array with trailing ,
-            array('{{ [1, 2, ] }}', new Twig_Node_Expression_Array(array(
-                  new Twig_Node_Expression_Constant(0, 1),
-                  new Twig_Node_Expression_Constant(1, 1),
-
-                  new Twig_Node_Expression_Constant(1, 1),
-                  new Twig_Node_Expression_Constant(2, 1),
-                ), 1),
-            ),
-
-            // simple hash
-            array('{{ {"a": "b", "b": "c"} }}', new Twig_Node_Expression_Array(array(
-                  new Twig_Node_Expression_Constant('a', 1),
-                  new Twig_Node_Expression_Constant('b', 1),
-
-                  new Twig_Node_Expression_Constant('b', 1),
-                  new Twig_Node_Expression_Constant('c', 1),
-                ), 1),
-            ),
-
-            // hash with trailing ,
-            array('{{ {"a": "b", "b": "c", } }}', new Twig_Node_Expression_Array(array(
-                  new Twig_Node_Expression_Constant('a', 1),
-                  new Twig_Node_Expression_Constant('b', 1),
-
-                  new Twig_Node_Expression_Constant('b', 1),
-                  new Twig_Node_Expression_Constant('c', 1),
-                ), 1),
-            ),
-
-            // hash in an array
-            array('{{ [1, {"a": "b", "b": "c"}] }}', new Twig_Node_Expression_Array(array(
-                  new Twig_Node_Expression_Constant(0, 1),
-                  new Twig_Node_Expression_Constant(1, 1),
-
-                  new Twig_Node_Expression_Constant(1, 1),
-                  new Twig_Node_Expression_Array(array(
-                        new Twig_Node_Expression_Constant('a', 1),
-                        new Twig_Node_Expression_Constant('b', 1),
-
-                        new Twig_Node_Expression_Constant('b', 1),
-                        new Twig_Node_Expression_Constant('c', 1),
-                      ), 1),
-                ), 1),
-            ),
-
-            // array in a hash
-            array('{{ {"a": [1, 2], "b": "c"} }}', new Twig_Node_Expression_Array(array(
-                  new Twig_Node_Expression_Constant('a', 1),
-                  new Twig_Node_Expression_Array(array(
-                        new Twig_Node_Expression_Constant(0, 1),
-                        new Twig_Node_Expression_Constant(1, 1),
-
-                        new Twig_Node_Expression_Constant(1, 1),
-                        new Twig_Node_Expression_Constant(2, 1),
-                      ), 1),
-                  new Twig_Node_Expression_Constant('b', 1),
-                  new Twig_Node_Expression_Constant('c', 1),
-                ), 1),
-            ),
-        );
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     */
-    public function testStringExpressionDoesNotConcatenateTwoConsecutiveStrings()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
-        $stream = $env->tokenize('{{ "a" "b" }}', 'index');
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($stream);
-    }
-
-    /**
-     * @dataProvider getTestsForString
-     */
-    public function testStringExpression($template, $expected)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
-        $stream = $env->tokenize($template, 'index');
-        $parser = new Twig_Parser($env);
-
-        $this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0)->getNode('expr'));
-    }
-
-    public function getTestsForString()
-    {
-        return array(
-            array(
-                '{{ "foo" }}', new Twig_Node_Expression_Constant('foo', 1),
-            ),
-            array(
-                '{{ "foo #{bar}" }}', new Twig_Node_Expression_Binary_Concat(
-                    new Twig_Node_Expression_Constant('foo ', 1),
-                    new Twig_Node_Expression_Name('bar', 1),
-                    1
-                ),
-            ),
-            array(
-                '{{ "foo #{bar} baz" }}', new Twig_Node_Expression_Binary_Concat(
-                    new Twig_Node_Expression_Binary_Concat(
-                        new Twig_Node_Expression_Constant('foo ', 1),
-                        new Twig_Node_Expression_Name('bar', 1),
-                        1
-                    ),
-                    new Twig_Node_Expression_Constant(' baz', 1),
-                    1
-                ),
-            ),
-
-            array(
-                '{{ "foo #{"foo #{bar} baz"} baz" }}', new Twig_Node_Expression_Binary_Concat(
-                    new Twig_Node_Expression_Binary_Concat(
-                        new Twig_Node_Expression_Constant('foo ', 1),
-                        new Twig_Node_Expression_Binary_Concat(
-                            new Twig_Node_Expression_Binary_Concat(
-                                new Twig_Node_Expression_Constant('foo ', 1),
-                                new Twig_Node_Expression_Name('bar', 1),
-                                1
-                            ),
-                            new Twig_Node_Expression_Constant(' baz', 1),
-                            1
-                        ),
-                        1
-                    ),
-                    new Twig_Node_Expression_Constant(' baz', 1),
-                    1
-                ),
-            ),
-        );
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     */
-    public function testAttributeCallDoesNotSupportNamedArguments()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize('{{ foo.bar(name="Foo") }}', 'index'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     */
-    public function testMacroCallDoesNotSupportNamedArguments()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize('{% from _self import foo %}{% macro foo() %}{% endmacro %}{{ foo(name="Foo") }}', 'index'));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage An argument must be a name. Unexpected token "string" of value "a" ("name" expected) in "index" at line 1
-     */
-    public function testMacroDefinitionDoesNotSupportNonNameVariableName()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize('{% macro foo("a") %}{% endmacro %}', 'index'));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage A default value for an argument must be a constant (a boolean, a string, a number, or an array) in "index" at line 1
-     * @dataProvider             getMacroDefinitionDoesNotSupportNonConstantDefaultValues
-     */
-    public function testMacroDefinitionDoesNotSupportNonConstantDefaultValues($template)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize($template, 'index'));
-    }
-
-    public function getMacroDefinitionDoesNotSupportNonConstantDefaultValues()
-    {
-        return array(
-            array('{% macro foo(name = "a #{foo} a") %}{% endmacro %}'),
-            array('{% macro foo(name = [["b", "a #{foo} a"]]) %}{% endmacro %}'),
-        );
-    }
-
-    /**
-     * @dataProvider getMacroDefinitionSupportsConstantDefaultValues
-     */
-    public function testMacroDefinitionSupportsConstantDefaultValues($template)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize($template, 'index'));
-    }
-
-    public function getMacroDefinitionSupportsConstantDefaultValues()
-    {
-        return array(
-            array('{% macro foo(name = "aa") %}{% endmacro %}'),
-            array('{% macro foo(name = 12) %}{% endmacro %}'),
-            array('{% macro foo(name = true) %}{% endmacro %}'),
-            array('{% macro foo(name = ["a"]) %}{% endmacro %}'),
-            array('{% macro foo(name = [["a"]]) %}{% endmacro %}'),
-            array('{% macro foo(name = {a: "a"}) %}{% endmacro %}'),
-            array('{% macro foo(name = {a: {b: "a"}}) %}{% endmacro %}'),
-        );
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage The function "cycl" does not exist. Did you mean "cycle" in "index" at line 1
-     */
-    public function testUnknownFunction()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize('{{ cycl() }}', 'index'));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage The filter "lowe" does not exist. Did you mean "lower" in "index" at line 1
-     */
-    public function testUnknownFilter()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize('{{ 1|lowe }}', 'index'));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage The test "nul" does not exist. Did you mean "null" in "index" at line 1
-     */
-    public function testUnknownTest()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $parser = new Twig_Parser($env);
-
-        $parser->parse($env->tokenize('{{ 1 is nul }}', 'index'));
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php b/core/vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php
deleted file mode 100644
index 8e9b764..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Extension_CoreTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getRandomFunctionTestData
-     */
-    public function testRandomFunction($value, $expectedInArray)
-    {
-        $env = new Twig_Environment();
-
-        for ($i = 0; $i < 100; ++$i) {
-            $this->assertTrue(in_array(twig_random($env, $value), $expectedInArray, true)); // assertContains() would not consider the type
-        }
-    }
-
-    public function getRandomFunctionTestData()
-    {
-        return array(
-            array(// array
-                array('apple', 'orange', 'citrus'),
-                array('apple', 'orange', 'citrus'),
-            ),
-            array(// Traversable
-                new ArrayObject(array('apple', 'orange', 'citrus')),
-                array('apple', 'orange', 'citrus'),
-            ),
-            array(// unicode string
-                'Ä€é',
-                array('Ä', '€', 'é'),
-            ),
-            array(// numeric but string
-                '123',
-                array('1', '2', '3'),
-            ),
-            array(// integer
-                5,
-                range(0, 5, 1),
-            ),
-            array(// float
-                5.9,
-                range(0, 5, 1),
-            ),
-            array(// negative
-                -2,
-                array(0, -1, -2),
-            ),
-        );
-    }
-
-    public function testRandomFunctionWithoutParameter()
-    {
-        $max = mt_getrandmax();
-
-        for ($i = 0; $i < 100; ++$i) {
-            $val = twig_random(new Twig_Environment());
-            $this->assertTrue(is_int($val) && $val >= 0 && $val <= $max);
-        }
-    }
-
-    public function testRandomFunctionReturnsAsIs()
-    {
-        $this->assertSame('', twig_random(new Twig_Environment(), ''));
-        $this->assertSame('', twig_random(new Twig_Environment(null, array('charset' => null)), ''));
-
-        $instance = new stdClass();
-        $this->assertSame($instance, twig_random(new Twig_Environment(), $instance));
-    }
-
-    /**
-     * @expectedException Twig_Error_Runtime
-     */
-    public function testRandomFunctionOfEmptyArrayThrowsException()
-    {
-        twig_random(new Twig_Environment(), array());
-    }
-
-    public function testRandomFunctionOnNonUTF8String()
-    {
-        if (!function_exists('iconv') && !function_exists('mb_convert_encoding')) {
-            $this->markTestSkipped('needs iconv or mbstring');
-        }
-
-        $twig = new Twig_Environment();
-        $twig->setCharset('ISO-8859-1');
-
-        $text = twig_convert_encoding('Äé', 'ISO-8859-1', 'UTF-8');
-        for ($i = 0; $i < 30; ++$i) {
-            $rand = twig_random($twig, $text);
-            $this->assertTrue(in_array(twig_convert_encoding($rand, 'UTF-8', 'ISO-8859-1'), array('Ä', 'é'), true));
-        }
-    }
-
-    public function testReverseFilterOnNonUTF8String()
-    {
-        if (!function_exists('iconv') && !function_exists('mb_convert_encoding')) {
-            $this->markTestSkipped('needs iconv or mbstring');
-        }
-
-        $twig = new Twig_Environment();
-        $twig->setCharset('ISO-8859-1');
-
-        $input = twig_convert_encoding('Äé', 'ISO-8859-1', 'UTF-8');
-        $output = twig_convert_encoding(twig_reverse_filter($twig, $input), 'UTF-8', 'ISO-8859-1');
-
-        $this->assertEquals($output, 'éÄ');
-    }
-
-    public function testCustomEscaper()
-    {
-        $twig = new Twig_Environment();
-        $twig->getExtension('core')->setEscaper('foo', 'foo_escaper_for_test');
-
-        $this->assertEquals('fooUTF-8', twig_escape_filter($twig, 'foo', 'foo'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Runtime
-     */
-    public function testUnknownCustomEscaper()
-    {
-        twig_escape_filter(new Twig_Environment(), 'foo', 'bar');
-    }
-
-    public function testTwigFirst()
-    {
-        $twig = new Twig_Environment();
-        $this->assertEquals('a', twig_first($twig, 'abc'));
-        $this->assertEquals(1, twig_first($twig, array(1, 2, 3)));
-        $this->assertSame('', twig_first($twig, null));
-        $this->assertSame('', twig_first($twig, ''));
-    }
-
-    public function testTwigLast()
-    {
-        $twig = new Twig_Environment();
-        $this->assertEquals('c', twig_last($twig, 'abc'));
-        $this->assertEquals(3, twig_last($twig, array(1, 2, 3)));
-        $this->assertSame('', twig_last($twig, null));
-        $this->assertSame('', twig_last($twig, ''));
-    }
-}
-
-function foo_escaper_for_test(Twig_Environment $env, $string, $charset)
-{
-    return $string.$charset;
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php b/core/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php
deleted file mode 100644
index 3f62736..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Extension_SandboxTest extends PHPUnit_Framework_TestCase
-{
-    protected static $params, $templates;
-
-    public function setUp()
-    {
-        self::$params = array(
-            'name' => 'Fabien',
-            'obj' => new FooObject(),
-            'arr' => array('obj' => new FooObject()),
-        );
-
-        self::$templates = array(
-            '1_basic1' => '{{ obj.foo }}',
-            '1_basic2' => '{{ name|upper }}',
-            '1_basic3' => '{% if name %}foo{% endif %}',
-            '1_basic4' => '{{ obj.bar }}',
-            '1_basic5' => '{{ obj }}',
-            '1_basic6' => '{{ arr.obj }}',
-            '1_basic7' => '{{ cycle(["foo","bar"], 1) }}',
-            '1_basic8' => '{{ obj.getfoobar }}{{ obj.getFooBar }}',
-            '1_basic9' => '{{ obj.foobar }}{{ obj.fooBar }}',
-            '1_basic' => '{% if obj.foo %}{{ obj.foo|upper }}{% endif %}',
-            '1_layout' => '{% block content %}{% endblock %}',
-            '1_child' => "{% extends \"1_layout\" %}\n{% block content %}\n{{ \"a\"|json_encode }}\n{% endblock %}",
-        );
-    }
-
-    /**
-     * @expectedException        Twig_Sandbox_SecurityError
-     * @expectedExceptionMessage Filter "json_encode" is not allowed in "1_child" at line 3.
-     */
-    public function testSandboxWithInheritance()
-    {
-        $twig = $this->getEnvironment(true, array(), self::$templates, array('block'));
-        $twig->loadTemplate('1_child')->render(array());
-    }
-
-    public function testSandboxGloballySet()
-    {
-        $twig = $this->getEnvironment(false, array(), self::$templates);
-        $this->assertEquals('FOO', $twig->loadTemplate('1_basic')->render(self::$params), 'Sandbox does nothing if it is disabled globally');
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic1')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed method is called');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic2')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed filter is called');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic3')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed tag is used in the template');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic4')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed property is called in the template');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic5')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed method (__toString()) is called in the template');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic6')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed method (__toString()) is called in the template');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('1_basic7')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception if an unallowed function is called in the template');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-
-        $twig = $this->getEnvironment(true, array(), self::$templates, array(), array(), array('FooObject' => 'foo'));
-        FooObject::reset();
-        $this->assertEquals('foo', $twig->loadTemplate('1_basic1')->render(self::$params), 'Sandbox allow some methods');
-        $this->assertEquals(1, FooObject::$called['foo'], 'Sandbox only calls method once');
-
-        $twig = $this->getEnvironment(true, array(), self::$templates, array(), array(), array('FooObject' => '__toString'));
-        FooObject::reset();
-        $this->assertEquals('foo', $twig->loadTemplate('1_basic5')->render(self::$params), 'Sandbox allow some methods');
-        $this->assertEquals(1, FooObject::$called['__toString'], 'Sandbox only calls method once');
-
-        $twig = $this->getEnvironment(false, array(), self::$templates);
-        FooObject::reset();
-        $this->assertEquals('foo', $twig->loadTemplate('1_basic5')->render(self::$params), 'Sandbox allows __toString when sandbox disabled');
-        $this->assertEquals(1, FooObject::$called['__toString'], 'Sandbox only calls method once');
-
-        $twig = $this->getEnvironment(true, array(), self::$templates, array(), array('upper'));
-        $this->assertEquals('FABIEN', $twig->loadTemplate('1_basic2')->render(self::$params), 'Sandbox allow some filters');
-
-        $twig = $this->getEnvironment(true, array(), self::$templates, array('if'));
-        $this->assertEquals('foo', $twig->loadTemplate('1_basic3')->render(self::$params), 'Sandbox allow some tags');
-
-        $twig = $this->getEnvironment(true, array(), self::$templates, array(), array(), array(), array('FooObject' => 'bar'));
-        $this->assertEquals('bar', $twig->loadTemplate('1_basic4')->render(self::$params), 'Sandbox allow some properties');
-
-        $twig = $this->getEnvironment(true, array(), self::$templates, array(), array(), array(), array(), array('cycle'));
-        $this->assertEquals('bar', $twig->loadTemplate('1_basic7')->render(self::$params), 'Sandbox allow some functions');
-
-        foreach (array('getfoobar', 'getFoobar', 'getFooBar') as $name) {
-            $twig = $this->getEnvironment(true, array(), self::$templates, array(), array(), array('FooObject' => $name));
-            FooObject::reset();
-            $this->assertEquals('foobarfoobar', $twig->loadTemplate('1_basic8')->render(self::$params), 'Sandbox allow methods in a case-insensitive way');
-            $this->assertEquals(2, FooObject::$called['getFooBar'], 'Sandbox only calls method once');
-
-            $this->assertEquals('foobarfoobar', $twig->loadTemplate('1_basic9')->render(self::$params), 'Sandbox allow methods via shortcut names (ie. without get/set)');
-        }
-    }
-
-    public function testSandboxLocallySetForAnInclude()
-    {
-        self::$templates = array(
-            '2_basic' => '{{ obj.foo }}{% include "2_included" %}{{ obj.foo }}',
-            '2_included' => '{% if obj.foo %}{{ obj.foo|upper }}{% endif %}',
-        );
-
-        $twig = $this->getEnvironment(false, array(), self::$templates);
-        $this->assertEquals('fooFOOfoo', $twig->loadTemplate('2_basic')->render(self::$params), 'Sandbox does nothing if disabled globally and sandboxed not used for the include');
-
-        self::$templates = array(
-            '3_basic' => '{{ obj.foo }}{% sandbox %}{% include "3_included" %}{% endsandbox %}{{ obj.foo }}',
-            '3_included' => '{% if obj.foo %}{{ obj.foo|upper }}{% endif %}',
-        );
-
-        $twig = $this->getEnvironment(true, array(), self::$templates);
-        try {
-            $twig->loadTemplate('3_basic')->render(self::$params);
-            $this->fail('Sandbox throws a SecurityError exception when the included file is sandboxed');
-        } catch (Twig_Sandbox_SecurityError $e) {
-        }
-    }
-
-    public function testMacrosInASandbox()
-    {
-        $twig = $this->getEnvironment(true, array('autoescape' => true), array('index' => <<<EOF
-{%- import _self as macros %}
-
-{%- macro test(text) %}<p>{{ text }}</p>{% endmacro %}
-
-{{- macros.test('username') }}
-EOF
-        ), array('macro', 'import'), array('escape'));
-
-        $this->assertEquals('<p>username</p>', $twig->loadTemplate('index')->render(array()));
-    }
-
-    protected function getEnvironment($sandboxed, $options, $templates, $tags = array(), $filters = array(), $methods = array(), $properties = array(), $functions = array())
-    {
-        $loader = new Twig_Loader_Array($templates);
-        $twig = new Twig_Environment($loader, array_merge(array('debug' => true, 'cache' => false, 'autoescape' => false), $options));
-        $policy = new Twig_Sandbox_SecurityPolicy($tags, $filters, $methods, $properties, $functions);
-        $twig->addExtension(new Twig_Extension_Sandbox($policy, $sandboxed));
-
-        return $twig;
-    }
-}
-
-class FooObject
-{
-    public static $called = array('__toString' => 0, 'foo' => 0, 'getFooBar' => 0);
-
-    public $bar = 'bar';
-
-    public static function reset()
-    {
-        self::$called = array('__toString' => 0, 'foo' => 0, 'getFooBar' => 0);
-    }
-
-    public function __toString()
-    {
-        ++self::$called['__toString'];
-
-        return 'foo';
-    }
-
-    public function foo()
-    {
-        ++self::$called['foo'];
-
-        return 'foo';
-    }
-
-    public function getFooBar()
-    {
-        ++self::$called['getFooBar'];
-
-        return 'foobar';
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php b/core/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php
deleted file mode 100644
index 6f5bfee..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_FileCachingTest extends PHPUnit_Framework_TestCase
-{
-    protected $fileName;
-    protected $env;
-    protected $tmpDir;
-
-    public function setUp()
-    {
-        $this->tmpDir = sys_get_temp_dir().'/TwigTests';
-        if (!file_exists($this->tmpDir)) {
-            @mkdir($this->tmpDir, 0777, true);
-        }
-
-        if (!is_writable($this->tmpDir)) {
-            $this->markTestSkipped(sprintf('Unable to run the tests as "%s" is not writable.', $this->tmpDir));
-        }
-
-        $this->env = new Twig_Environment(new Twig_Loader_Array(array('index' => 'index', 'index2' => 'index2')), array('cache' => $this->tmpDir));
-    }
-
-    public function tearDown()
-    {
-        if ($this->fileName) {
-            unlink($this->fileName);
-        }
-
-        $this->removeDir($this->tmpDir);
-    }
-
-    public function testWritingCacheFiles()
-    {
-        $name = 'index';
-        $this->env->loadTemplate($name);
-        $cacheFileName = $this->env->getCacheFilename($name);
-
-        $this->assertTrue(file_exists($cacheFileName), 'Cache file does not exist.');
-        $this->fileName = $cacheFileName;
-    }
-
-    public function testClearingCacheFiles()
-    {
-        $name = 'index2';
-        $this->env->loadTemplate($name);
-        $cacheFileName = $this->env->getCacheFilename($name);
-
-        $this->assertTrue(file_exists($cacheFileName), 'Cache file does not exist.');
-        $this->env->clearCacheFiles();
-        $this->assertFalse(file_exists($cacheFileName), 'Cache file was not cleared.');
-    }
-
-    private function removeDir($target)
-    {
-        $fp = opendir($target);
-        while (false !== $file = readdir($fp)) {
-            if (in_array($file, array('.', '..'))) {
-                continue;
-            }
-
-            if (is_dir($target.'/'.$file)) {
-                self::removeDir($target.'/'.$file);
-            } else {
-                unlink($target.'/'.$file);
-            }
-        }
-        closedir($fp);
-        rmdir($target);
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/FileExtensionEscapingStrategyTest.php b/core/vendor/twig/twig/test/Twig/Tests/FileExtensionEscapingStrategyTest.php
deleted file mode 100644
index d2f55eb..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/FileExtensionEscapingStrategyTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_FileExtensionEscapingStrategyTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getGuessData
-     */
-    public function testGuess($strategy, $filename)
-    {
-        $this->assertEquals($strategy, Twig_FileExtensionEscapingStrategy::guess($filename));
-    }
-
-    public function getGuessData()
-    {
-        return array(
-            // default
-            array('html', 'foo.html'),
-            array('html', 'foo.html.twig'),
-            array('html', 'foo'),
-            array('html', 'foo.bar.twig'),
-            array('html', 'foo.txt/foo'),
-            array('html', 'foo.txt/foo.js/'),
-
-            // css
-            array('css', 'foo.css'),
-            array('css', 'foo.css.twig'),
-            array('css', 'foo.twig.css'),
-
-            // js
-            array('js', 'foo.js'),
-            array('js', 'foo.js.twig'),
-            array('js', 'foo.txt/foo.js'),
-            array('js', 'foo.txt.twig/foo.js'),
-
-            // txt
-            array(false, 'foo.txt'),
-            array(false, 'foo.txt.twig'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/autoescape/filename.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/autoescape/filename.test
deleted file mode 100644
index b091ad3..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/autoescape/filename.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"filename" autoescape strategy
---TEMPLATE--
-{{ br -}}
-{{ include('index.html.twig') -}}
-{{ include('index.txt.twig') -}}
---TEMPLATE(index.html.twig)--
-{{ br -}}
---TEMPLATE(index.txt.twig)--
-{{ br -}}
---DATA--
-return array('br' => '<br />')
---CONFIG--
-return array('autoescape' => 'filename')
---EXPECT--
-&lt;br /&gt;
-&lt;br /&gt;
-<br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/errors/base.html b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/errors/base.html
deleted file mode 100644
index cb0dbe4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/errors/base.html
+++ /dev/null
@@ -1 +0,0 @@
-{% block content %}{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/errors/index.html b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/errors/index.html
deleted file mode 100644
index df57c82..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/errors/index.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{% extends 'base.html' %}
-{% block content %}
-    {{ foo.bar }}
-{% endblock %}
-{% block foo %}
-    {{ foo.bar }}
-{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_array_with_undefined_variable.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_array_with_undefined_variable.test
deleted file mode 100644
index ce49165..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_array_with_undefined_variable.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Exception for multiline array with undefined variable
---TEMPLATE--
-{% set foo = {
-   foo: 'foo',
-   bar: 'bar',
-
-
-   foobar: foobar,
-
-
-
-   foo2: foo2,
-} %}
---DATA--
-return array('foobar' => 'foobar')
---EXCEPTION--
-Twig_Error_Runtime: Variable "foo2" does not exist in "index.twig" at line 11
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_array_with_undefined_variable_again.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_array_with_undefined_variable_again.test
deleted file mode 100644
index e3c040f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_array_with_undefined_variable_again.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Exception for multiline array with undefined variable
---TEMPLATE--
-{% set foo = {
-   foo: 'foo',
-   bar: 'bar',
-
-
-   foobar: foobar,
-
-
-
-   foo2: foo2,
-} %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Runtime: Variable "foobar" does not exist in "index.twig" at line 7
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_function_with_undefined_variable.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_function_with_undefined_variable.test
deleted file mode 100644
index d799a39..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_function_with_undefined_variable.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-Exception for multile function with undefined variable
---TEMPLATE--
-{{ include('foo',
-   with_context=with_context
-) }}
---TEMPLATE(foo)--
-Foo
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Runtime: Variable "with_context" does not exist in "index.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_function_with_unknown_argument.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_function_with_unknown_argument.test
deleted file mode 100644
index 64761fc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_function_with_unknown_argument.test
+++ /dev/null
@@ -1,9 +0,0 @@
---TEST--
-Exception for multiline function with unknown argument
---TEMPLATE--
-{{ include('foo',
-   with_context=True,
-   invalid=False
-) }}
---EXCEPTION--
-Twig_Error_Syntax: Unknown argument "invalid" for function "include(template, variables, with_context, ignore_missing, sandboxed)" in "index.twig" at line 4.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_tag_with_undefined_variable.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_tag_with_undefined_variable.test
deleted file mode 100644
index 096a5db..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/multiline_tag_with_undefined_variable.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-Exception for multiline tag with undefined variable
---TEMPLATE--
-{% include 'foo'
-   with vars
-%}
---TEMPLATE(foo)--
-Foo
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Runtime: Variable "vars" does not exist in "index.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/syntax_error_in_reused_template.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/syntax_error_in_reused_template.test
deleted file mode 100644
index 5dd9f38..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/syntax_error_in_reused_template.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-Exception for syntax error in reused template
---TEMPLATE--
-{% use 'foo.twig' %}
---TEMPLATE(foo.twig)--
-{% block bar %}
-    {% do node.data = 5 %}
-{% endblock %}
---EXCEPTION--
-Twig_Error_Syntax: Unexpected token "operator" of value "=" ("end of statement block" expected) in "foo.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/unclosed_tag.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/unclosed_tag.test
deleted file mode 100644
index 02245e9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/unclosed_tag.test
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-Exception for an unclosed tag
---TEMPLATE--
-{% block foo %}
-     {% if foo %}
-
-
-
-
-         {% for i in fo %}
-
-
-
-         {% endfor %}
-
-
-
-{% endblock %}
---EXCEPTION--
-Twig_Error_Syntax: Unexpected tag name "endblock" (expecting closing tag for the "if" tag defined near line 4) in "index.twig" at line 16
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test
deleted file mode 100644
index c8e7a09..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_parent.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-Exception for an undefined parent
---TEMPLATE--
-{% extends 'foo.html' %}
-
-{% set foo = "foo" %}
---EXCEPTION--
-Twig_Error_Loader: Template "foo.html" is not defined in "index.twig" at line 2.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_template_in_child_template.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_template_in_child_template.test
deleted file mode 100644
index 1992510..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_template_in_child_template.test
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Exception for an undefined template in a child template
---TEMPLATE--
-{% extends 'base.twig' %}
-
-{% block sidebar %}
-    {{ include('include.twig') }}
-{% endblock %}
---TEMPLATE(base.twig)--
-{% block sidebar %}
-{% endblock %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Loader: Template "include.twig" is not defined in "index.twig" at line 5.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_trait.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_trait.test
deleted file mode 100644
index 6679fbe..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/exceptions/undefined_trait.test
+++ /dev/null
@@ -1,9 +0,0 @@
---TEST--
-Exception for an undefined trait
---TEMPLATE--
-{% use 'foo' with foobar as bar %}
---TEMPLATE(foo)--
-{% block bar %}
-{% endblock %}
---EXCEPTION--
-Twig_Error_Runtime: Block "foobar" is not defined in trait "foo" in "index.twig" at line 2.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/array.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/array.test
deleted file mode 100644
index c69b119..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/array.test
+++ /dev/null
@@ -1,61 +0,0 @@
---TEST--
-Twig supports array notation
---TEMPLATE--
-{# empty array #}
-{{ []|join(',') }}
-
-{{ [1, 2]|join(',') }}
-{{ ['foo', "bar"]|join(',') }}
-{{ {0: 1, 'foo': 'bar'}|join(',') }}
-{{ {0: 1, 'foo': 'bar'}|keys|join(',') }}
-
-{{ {0: 1, foo: 'bar'}|join(',') }}
-{{ {0: 1, foo: 'bar'}|keys|join(',') }}
-
-{# nested arrays #}
-{% set a = [1, 2, [1, 2], {'foo': {'foo': 'bar'}}] %}
-{{ a[2]|join(',') }}
-{{ a[3]["foo"]|join(',') }}
-
-{# works even if [] is used inside the array #}
-{{ [foo[bar]]|join(',') }}
-
-{# elements can be any expression #}
-{{ ['foo'|upper, bar|upper, bar == foo]|join(',') }}
-
-{# arrays can have a trailing , like in PHP #}
-{{
-  [
-    1,
-    2,
-  ]|join(',')
-}}
-
-{# keys can be any expression #}
-{% set a = 1 %}
-{% set b = "foo" %}
-{% set ary = { (a): 'a', (b): 'b', 'c': 'c', (a ~ b): 'd' } %}
-{{ ary|keys|join(',') }}
-{{ ary|join(',') }}
---DATA--
-return array('bar' => 'bar', 'foo' => array('bar' => 'bar'))
---EXPECT--
-1,2
-foo,bar
-1,bar
-0,foo
-
-1,bar
-0,foo
-
-1,2
-bar
-
-bar
-
-FOO,BAR,
-
-1,2
-
-1,foo,c,1foo
-a,b,c,d
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/array_call.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/array_call.test
deleted file mode 100644
index f3df328..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/array_call.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-Twig supports method calls
---TEMPLATE--
-{{ items.foo }}
-{{ items['foo'] }}
-{{ items[foo] }}
-{{ items[items[foo]] }}
---DATA--
-return array('foo' => 'bar', 'items' => array('foo' => 'bar', 'bar' => 'foo'))
---EXPECT--
-bar
-bar
-foo
-bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/binary.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/binary.test
deleted file mode 100644
index f5e6845..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/binary.test
+++ /dev/null
@@ -1,46 +0,0 @@
---TEST--
-Twig supports binary operations (+, -, *, /, ~, %, and, or)
---TEMPLATE--
-{{ 1 + 1 }}
-{{ 2 - 1 }}
-{{ 2 * 2 }}
-{{ 2 / 2 }}
-{{ 3 % 2 }}
-{{ 1 and 1 }}
-{{ 1 and 0 }}
-{{ 0 and 1 }}
-{{ 0 and 0 }}
-{{ 1 or 1 }}
-{{ 1 or 0 }}
-{{ 0 or 1 }}
-{{ 0 or 0 }}
-{{ 0 or 1 and 0 }}
-{{ 1 or 0 and 1 }}
-{{ "foo" ~ "bar" }}
-{{ foo ~ "bar" }}
-{{ "foo" ~ bar }}
-{{ foo ~ bar }}
-{{ 20 // 7 }}
---DATA--
-return array('foo' => 'bar', 'bar' => 'foo')
---EXPECT--
-2
-1
-4
-1
-1
-1
-
-
-
-1
-1
-1
-
-
-1
-foobar
-barbar
-foofoo
-barfoo
-2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/bitwise.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/bitwise.test
deleted file mode 100644
index 74fe6ca..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/bitwise.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-Twig supports bitwise operations
---TEMPLATE--
-{{ 1 b-and 5 }}
-{{ 1 b-or 5 }}
-{{ 1 b-xor 5 }}
-{{ (1 and 0 b-or 0) is same as(1 and (0 b-or 0)) ? 'ok' : 'ko' }}
---DATA--
-return array()
---EXPECT--
-1
-5
-4
-ok
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/comparison.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/comparison.test
deleted file mode 100644
index 726b850..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/comparison.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-Twig supports comparison operators (==, !=, <, >, >=, <=)
---TEMPLATE--
-{{ 1 > 2 }}/{{ 1 > 1 }}/{{ 1 >= 2 }}/{{ 1 >= 1 }}
-{{ 1 < 2 }}/{{ 1 < 1 }}/{{ 1 <= 2 }}/{{ 1 <= 1 }}
-{{ 1 == 1 }}/{{ 1 == 2 }}
-{{ 1 != 1 }}/{{ 1 != 2 }}
---DATA--
-return array()
---EXPECT--
-///1
-1//1/1
-1/
-/1
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/divisibleby.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/divisibleby.test
deleted file mode 100644
index 238dd27..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/divisibleby.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-Twig supports the "divisible by" operator
---TEMPLATE--
-{{ 8 is divisible by(2) ? 'OK' }}
-{{ 8 is not divisible by(3) ? 'OK' }}
-{{ 8 is    divisible   by   (2) ? 'OK' }}
-{{ 8 is not
-   divisible
-   by
-   (3) ? 'OK' }}
---DATA--
-return array()
---EXPECT--
-OK
-OK
-OK
-OK
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/dotdot.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/dotdot.test
deleted file mode 100644
index 9cd0676..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/dotdot.test
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-Twig supports the .. operator
---TEMPLATE--
-{% for i in 0..10 %}{{ i }} {% endfor %}
-
-{% for letter in 'a'..'z' %}{{ letter }} {% endfor %}
-
-{% for letter in 'a'|upper..'z'|upper %}{{ letter }} {% endfor %}
-
-{% for i in foo[0]..foo[1] %}{{ i }} {% endfor %}
-
-{% for i in 0 + 1 .. 10 - 1 %}{{ i }} {% endfor %}
---DATA--
-return array('foo' => array(1, 10))
---EXPECT--
-0 1 2 3 4 5 6 7 8 9 10 
-a b c d e f g h i j k l m n o p q r s t u v w x y z 
-A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
-1 2 3 4 5 6 7 8 9 10 
-1 2 3 4 5 6 7 8 9
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ends_with.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ends_with.test
deleted file mode 100644
index 9ad5e5e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ends_with.test
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-Twig supports the "ends with" operator
---TEMPLATE--
-{{ 'foo' ends with 'o' ? 'OK' : 'KO' }}
-{{ not ('foo' ends with 'f') ? 'OK' : 'KO' }}
-{{ not ('foo' ends with 'foowaytoolong') ? 'OK' : 'KO' }}
-{{ 'foo' ends with '' ? 'OK' : 'KO' }}
-{{ '1' ends with true ? 'OK' : 'KO' }}
-{{ 1 ends with true ? 'OK' : 'KO' }}
-{{ 0 ends with false ? 'OK' : 'KO' }}
-{{ '' ends with false ? 'OK' : 'KO' }}
-{{ false ends with false ? 'OK' : 'KO' }}
-{{ false ends with '' ? 'OK' : 'KO' }}
---DATA--
-return array()
---EXPECT--
-OK
-OK
-OK
-OK
-KO
-KO
-KO
-KO
-KO
-KO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/grouping.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/grouping.test
deleted file mode 100644
index 79f8e0b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/grouping.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-Twig supports grouping of expressions
---TEMPLATE--
-{{ (2 + 2) / 2 }}
---DATA--
-return array()
---EXPECT--
-2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/literals.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/literals.test
deleted file mode 100644
index 7ae3bae..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/literals.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-Twig supports literals
---TEMPLATE--
-1 {{ true }}
-2 {{ TRUE }}
-3 {{ false }}
-4 {{ FALSE }}
-5 {{ none }}
-6 {{ NONE }}
-7 {{ null }}
-8 {{ NULL }}
---DATA--
-return array()
---EXPECT--
-1 1
-2 1
-3 
-4 
-5 
-6 
-7 
-8 
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/magic_call.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/magic_call.test
deleted file mode 100644
index 159db96..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/magic_call.test
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-Twig supports __call() for attributes
---TEMPLATE--
-{{ foo.foo }}
-{{ foo.bar }}
---DATA--
-class TestClassForMagicCallAttributes
-{
-  public function getBar()
-  {
-    return 'bar_from_getbar';
-  }
-
-  public function __call($method, $arguments)
-  {
-    if ('foo' === $method)
-    {
-      return 'foo_from_call';
-    }
-
-    return false;
-  }
-}
-return array('foo' => new TestClassForMagicCallAttributes())
---EXPECT--
-foo_from_call
-bar_from_getbar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/matches.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/matches.test
deleted file mode 100644
index b6c7716..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/matches.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-Twig supports the "matches" operator
---TEMPLATE--
-{{ 'foo' matches '/o/' ? 'OK' : 'KO' }}
-{{ 'foo' matches '/^fo/' ? 'OK' : 'KO' }}
-{{ 'foo' matches '/O/i' ? 'OK' : 'KO' }}
---DATA--
-return array()
---EXPECT--
-OK
-OK
-OK
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/method_call.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/method_call.test
deleted file mode 100644
index 5f801e6..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/method_call.test
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-Twig supports method calls
---TEMPLATE--
-{{ items.foo.foo }}
-{{ items.foo.getFoo() }}
-{{ items.foo.bar }}
-{{ items.foo['bar'] }}
-{{ items.foo.bar('a', 43) }}
-{{ items.foo.bar(foo) }}
-{{ items.foo.self.foo() }}
-{{ items.foo.is }}
-{{ items.foo.in }}
-{{ items.foo.not }}
---DATA--
-return array('foo' => 'bar', 'items' => array('foo' => new TwigTestFoo(), 'bar' => 'foo'))
---CONFIG--
-return array('strict_variables' => false)
---EXPECT--
-foo
-foo
-bar
-
-bar_a-43
-bar_bar
-foo
-is
-in
-not
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/negative_numbers.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/negative_numbers.test
deleted file mode 100644
index 1853b1b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/negative_numbers.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Twig manages negative numbers correctly
---TEMPLATE--
-{{ -1 }}
-{{ - 1 }}
-{{ 5 - 1 }}
-{{ 5-1 }}
-{{ 5 + -1 }}
-{{ 5 + - 1 }}
---DATA--
-return array()
---EXPECT--
--1
--1
-4
-4
-4
-4
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/operators_as_variables.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/operators_as_variables.test
deleted file mode 100644
index fe29d08..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/operators_as_variables.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-Twig allows to use named operators as variable names
---TEMPLATE--
-{% for match in matches %}
-    {{- match }}
-{% endfor %}
-{{ in }}
-{{ is }}
---DATA--
-return array('matches' => array(1, 2, 3), 'in' => 'in', 'is' => 'is')
---EXPECT--
-1
-2
-3
-in
-is
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/postfix.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/postfix.test
deleted file mode 100644
index 542c350..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/postfix.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-Twig parses postfix expressions
---TEMPLATE--
-{% import _self as macros %}
-
-{% macro foo() %}foo{% endmacro %}
-
-{{ 'a' }}
-{{ 'a'|upper }}
-{{ ('a')|upper }}
-{{ -1|upper }}
-{{ macros.foo() }}
-{{ (macros).foo() }}
---DATA--
-return array();
---EXPECT--
-a
-A
-A
--1
-foo
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/sameas.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/sameas.test
deleted file mode 100644
index 601201d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/sameas.test
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Twig supports the "same as" operator
---TEMPLATE--
-{{ 1 is same as(1) ? 'OK' }}
-{{ 1 is not same as(true) ? 'OK' }}
-{{ 1 is same as(1) ? 'OK' }}
-{{ 1 is not same as(true) ? 'OK' }}
-{{ 1 is   same    as   (1) ? 'OK' }}
-{{ 1 is not
-    same
-    as
-    (true) ? 'OK' }}
---DATA--
-return array()
---EXPECT--
-OK
-OK
-OK
-OK
-OK
-OK
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/starts_with.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/starts_with.test
deleted file mode 100644
index 75d331e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/starts_with.test
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-Twig supports the "starts with" operator
---TEMPLATE--
-{{ 'foo' starts with 'f' ? 'OK' : 'KO' }}
-{{ not ('foo' starts with 'oo') ? 'OK' : 'KO' }}
-{{ not ('foo' starts with 'foowaytoolong') ? 'OK' : 'KO' }}
-{{ 'foo' starts      with 'f' ? 'OK' : 'KO' }}
-{{ 'foo' starts
-with 'f' ? 'OK' : 'KO' }}
-{{ 'foo' starts with '' ? 'OK' : 'KO' }}
-{{ '1' starts with true ? 'OK' : 'KO' }}
-{{ '' starts with false ? 'OK' : 'KO' }}
-{{ 'a' starts with false ? 'OK' : 'KO' }}
-{{ false starts with '' ? 'OK' : 'KO' }}
---DATA--
-return array()
---EXPECT--
-OK
-OK
-OK
-OK
-OK
-OK
-KO
-KO
-KO
-KO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/strings.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/strings.test
deleted file mode 100644
index a911661..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/strings.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-Twig supports string interpolation
---TEMPLATE--
-{{ "foo #{"foo #{bar} baz"} baz" }}
-{{ "foo #{bar}#{bar} baz" }}
---DATA--
-return array('bar' => 'BAR');
---EXPECT--
-foo foo BAR baz baz
-foo BARBAR baz
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator.test
deleted file mode 100644
index 0e6fa96..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Twig supports the ternary operator
---TEMPLATE--
-{{ 1 ? 'YES' : 'NO' }}
-{{ 0 ? 'YES' : 'NO' }}
-{{ 0 ? 'YES' : (1 ? 'YES1' : 'NO1') }}
-{{ 0 ? 'YES' : (0 ? 'YES1' : 'NO1') }}
-{{ 1 == 1 ? 'foo<br />':'' }}
-{{ foo ~ (bar ? ('-' ~ bar) : '') }}
---DATA--
-return array('foo' => 'foo', 'bar' => 'bar')
---EXPECT--
-YES
-NO
-YES1
-NO1
-foo<br />
-foo-bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator_noelse.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator_noelse.test
deleted file mode 100644
index fdc660f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator_noelse.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-Twig supports the ternary operator
---TEMPLATE--
-{{ 1 ? 'YES' }}
-{{ 0 ? 'YES' }}
---DATA--
-return array()
---EXPECT--
-YES
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator_nothen.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator_nothen.test
deleted file mode 100644
index 9057e83..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/ternary_operator_nothen.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-Twig supports the ternary operator
---TEMPLATE--
-{{ 'YES' ?: 'NO' }}
-{{ 0 ?: 'NO' }}
---DATA--
-return array()
---EXPECT--
-YES
-NO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/two_word_operators_as_variables.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/two_word_operators_as_variables.test
deleted file mode 100644
index 47f37e4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/two_word_operators_as_variables.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-Twig does not allow to use two-word named operators as variable names
---TEMPLATE--
-{{ starts with }}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: Unexpected token "operator" of value "starts with" in "index.twig" at line 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary.test
deleted file mode 100644
index b79219a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-Twig supports unary operators (not, -, +)
---TEMPLATE--
-{{ not 1 }}/{{ not 0 }}
-{{ +1 + 1 }}/{{ -1 - 1 }}
-{{ not (false or true) }}
---DATA--
-return array()
---EXPECT--
-/1
-2/-2
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary_macro_arguments.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary_macro_arguments.test
deleted file mode 100644
index ad84a9c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary_macro_arguments.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-Twig manages negative numbers as default parameters
---TEMPLATE--
-{% import _self as macros %}
-{{ macros.negative_number1() }}
-{{ macros.negative_number2() }}
-{{ macros.negative_number3() }}
-{{ macros.positive_number1() }}
-{{ macros.positive_number2() }}
-{% macro negative_number1(nb=-1) %}{{ nb }}{% endmacro %}
-{% macro negative_number2(nb = --1) %}{{ nb }}{% endmacro %}
-{% macro negative_number3(nb = - 1) %}{{ nb }}{% endmacro %}
-{% macro positive_number1(nb = +1) %}{{ nb }}{% endmacro %}
-{% macro positive_number2(nb = ++1) %}{{ nb }}{% endmacro %}
---DATA--
-return array()
---EXPECT--
--1
-1
--1
-1
-1
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary_precedence.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary_precedence.test
deleted file mode 100644
index cc6eef8..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/expressions/unary_precedence.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-Twig unary operators precedence
---TEMPLATE--
-{{ -1 - 1 }}
-{{ -1 - -1 }}
-{{ -1 * -1 }}
-{{ 4 / -1 * 5 }}
---DATA--
-return array()
---EXPECT--
--2
-0
-1
--20
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/abs.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/abs.test
deleted file mode 100644
index 27e93fd..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/abs.test
+++ /dev/null
@@ -1,30 +0,0 @@
---TEST--
-"abs" filter
---TEMPLATE--
-{{ (-5.5)|abs }}
-{{ (-5)|abs }}
-{{ (-0)|abs }}
-{{ 0|abs }}
-{{ 5|abs }}
-{{ 5.5|abs }}
-{{ number1|abs }}
-{{ number2|abs }}
-{{ number3|abs }}
-{{ number4|abs }}
-{{ number5|abs }}
-{{ number6|abs }}
---DATA--
-return array('number1' => -5.5, 'number2' => -5, 'number3' => -0, 'number4' => 0, 'number5' => 5, 'number6' => 5.5)
---EXPECT--
-5.5
-5
-0
-0
-5
-5.5
-5.5
-5
-0
-0
-5
-5.5
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test
deleted file mode 100644
index cb6de7f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch.test
+++ /dev/null
@@ -1,31 +0,0 @@
---TEST--
-"batch" filter
---TEMPLATE--
-{% for row in items|batch(3) %}
-  <div class=row>
-  {% for column in row %}
-    <div class=item>{{ column }}</div>
-  {% endfor %}
-  </div>
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
---EXPECT--
-<div class=row>
-      <div class=item>a</div>
-      <div class=item>b</div>
-      <div class=item>c</div>
-    </div>
-  <div class=row>
-      <div class=item>d</div>
-      <div class=item>e</div>
-      <div class=item>f</div>
-    </div>
-  <div class=row>
-      <div class=item>g</div>
-      <div class=item>h</div>
-      <div class=item>i</div>
-    </div>
-  <div class=row>
-      <div class=item>j</div>
-    </div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.test
deleted file mode 100644
index e2ec4be..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_float.test
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-"batch" filter
---TEMPLATE--
-{% for row in items|batch(3.1) %}
-  <div class=row>
-  {% for column in row %}
-    <div class=item>{{ column }}</div>
-  {% endfor %}
-  </div>
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
---EXPECT--
-<div class=row>
-      <div class=item>a</div>
-      <div class=item>b</div>
-      <div class=item>c</div>
-      <div class=item>d</div>
-    </div>
-  <div class=row>
-      <div class=item>e</div>
-      <div class=item>f</div>
-      <div class=item>g</div>
-      <div class=item>h</div>
-    </div>
-  <div class=row>
-      <div class=item>i</div>
-      <div class=item>j</div>
-    </div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test
deleted file mode 100644
index af996f2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_empty_fill.test
+++ /dev/null
@@ -1,37 +0,0 @@
---TEST--
-"batch" filter
---TEMPLATE--
-<table>
-{% for row in items|batch(3, '') %}
-  <tr>
-  {% for column in row %}
-    <td>{{ column }}</td>
-  {% endfor %}
-  </tr>
-{% endfor %}
-</table>
---DATA--
-return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
---EXPECT--
-<table>
-  <tr>
-      <td>a</td>
-      <td>b</td>
-      <td>c</td>
-    </tr>
-  <tr>
-      <td>d</td>
-      <td>e</td>
-      <td>f</td>
-    </tr>
-  <tr>
-      <td>g</td>
-      <td>h</td>
-      <td>i</td>
-    </tr>
-  <tr>
-      <td>j</td>
-      <td></td>
-      <td></td>
-    </tr>
-</table>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_exact_elements.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_exact_elements.test
deleted file mode 100644
index 72483f4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_exact_elements.test
+++ /dev/null
@@ -1,33 +0,0 @@
---TEST--
-"batch" filter
---TEMPLATE--
-{% for row in items|batch(3, 'fill') %}
-  <div class=row>
-  {% for column in row %}
-    <div class=item>{{ column }}</div>
-  {% endfor %}
-  </div>
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'))
---EXPECT--
-<div class=row>
-      <div class=item>a</div>
-      <div class=item>b</div>
-      <div class=item>c</div>
-    </div>
-  <div class=row>
-      <div class=item>d</div>
-      <div class=item>e</div>
-      <div class=item>f</div>
-    </div>
-  <div class=row>
-      <div class=item>g</div>
-      <div class=item>h</div>
-      <div class=item>i</div>
-    </div>
-  <div class=row>
-      <div class=item>j</div>
-      <div class=item>k</div>
-      <div class=item>l</div>
-    </div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test
deleted file mode 100644
index 746295f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_fill.test
+++ /dev/null
@@ -1,37 +0,0 @@
---TEST--
-"batch" filter
---TEMPLATE--
-<table>
-{% for row in items|batch(3, 'fill') %}
-  <tr>
-  {% for column in row %}
-    <td>{{ column }}</td>
-  {% endfor %}
-  </tr>
-{% endfor %}
-</table>
---DATA--
-return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
---EXPECT--
-<table>
-  <tr>
-      <td>a</td>
-      <td>b</td>
-      <td>c</td>
-    </tr>
-  <tr>
-      <td>d</td>
-      <td>e</td>
-      <td>f</td>
-    </tr>
-  <tr>
-      <td>g</td>
-      <td>h</td>
-      <td>i</td>
-    </tr>
-  <tr>
-      <td>j</td>
-      <td>fill</td>
-      <td>fill</td>
-    </tr>
-</table>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_keys.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_keys.test
deleted file mode 100644
index 6015380..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_keys.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"batch" filter preserves array keys
---TEMPLATE--
-{{ {'foo': 'bar', 'key': 'value'}|batch(4)|first|keys|join(',')  }}
-{{ {'foo': 'bar', 'key': 'value'}|batch(4, 'fill')|first|keys|join(',')  }}
---DATA--
-return array()
---EXPECT--
-foo,key
-foo,key,0,1
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_zero_elements.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_zero_elements.test
deleted file mode 100644
index b9c058d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/batch_with_zero_elements.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"batch" filter with zero elements
---TEMPLATE--
-{{ []|batch(3)|length }}
-{{ []|batch(3, 'fill')|length }}
---DATA--
-return array()
---EXPECT--
-0
-0
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/convert_encoding.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/convert_encoding.test
deleted file mode 100644
index 380b04b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/convert_encoding.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"convert_encoding" filter
---CONDITION--
-function_exists('iconv') || function_exists('mb_convert_encoding')
---TEMPLATE--
-{{ "愛していますか？"|convert_encoding('ISO-2022-JP', 'UTF-8')|convert_encoding('UTF-8', 'ISO-2022-JP') }}
---DATA--
-return array()
---EXPECT--
-愛していますか？
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test
deleted file mode 100644
index d17e5e2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date.test
+++ /dev/null
@@ -1,90 +0,0 @@
---TEST--
-"date" filter
---TEMPLATE--
-{{ date1|date }}
-{{ date1|date('d/m/Y') }}
-{{ date1|date('d/m/Y H:i:s', 'Asia/Hong_Kong') }}
-{{ date1|date('d/m/Y H:i:s P', 'Asia/Hong_Kong') }}
-{{ date1|date('d/m/Y H:i:s P', 'America/Chicago') }}
-{{ date1|date('e') }}
-{{ date1|date('d/m/Y H:i:s') }}
-
-{{ date2|date }}
-{{ date2|date('d/m/Y') }}
-{{ date2|date('d/m/Y H:i:s', 'Asia/Hong_Kong') }}
-{{ date2|date('d/m/Y H:i:s', timezone1) }}
-{{ date2|date('d/m/Y H:i:s') }}
-
-{{ date3|date }}
-{{ date3|date('d/m/Y') }}
-
-{{ date4|date }}
-{{ date4|date('d/m/Y') }}
-
-{{ date5|date }}
-{{ date5|date('d/m/Y') }}
-
-{{ date6|date('d/m/Y H:i:s P', 'Europe/Paris') }}
-{{ date6|date('d/m/Y H:i:s P', 'Asia/Hong_Kong') }}
-{{ date6|date('d/m/Y H:i:s P', false) }}
-{{ date6|date('e', 'Europe/Paris') }}
-{{ date6|date('e', false) }}
-
-{{ date7|date }}
-{{ date7|date(timezone='Europe/Paris') }}
-{{ date7|date(timezone='Asia/Hong_Kong') }}
-{{ date7|date(timezone=false) }}
-{{ date7|date(timezone='Indian/Mauritius') }}
-
-{{ '2010-01-28 15:00:00'|date(timezone="Europe/Paris") }}
-{{ '2010-01-28 15:00:00'|date(timezone="Asia/Hong_Kong") }}
---DATA--
-date_default_timezone_set('Europe/Paris');
-return array(
-    'date1' => mktime(13, 45, 0, 10, 4, 2010),
-    'date2' => new DateTime('2010-10-04 13:45'),
-    'date3' => '2010-10-04 13:45',
-    'date4' => 1286199900, // DateTime::createFromFormat('Y-m-d H:i', '2010-10-04 13:45', new DateTimeZone('UTC'))->getTimestamp() -- A unixtimestamp is always GMT
-    'date5' => -189291360, // DateTime::createFromFormat('Y-m-d H:i', '1964-01-02 03:04', new DateTimeZone('UTC'))->getTimestamp(),
-    'date6' => new DateTime('2010-10-04 13:45', new DateTimeZone('America/New_York')),
-    'date7' => '2010-01-28T15:00:00+04:00',
-    'timezone1' => new DateTimeZone('America/New_York'),
-)
---EXPECT--
-October 4, 2010 13:45
-04/10/2010
-04/10/2010 19:45:00
-04/10/2010 19:45:00 +08:00
-04/10/2010 06:45:00 -05:00
-Europe/Paris
-04/10/2010 13:45:00
-
-October 4, 2010 13:45
-04/10/2010
-04/10/2010 19:45:00
-04/10/2010 07:45:00
-04/10/2010 13:45:00
-
-October 4, 2010 13:45
-04/10/2010
-
-October 4, 2010 15:45
-04/10/2010
-
-January 2, 1964 04:04
-02/01/1964
-
-04/10/2010 19:45:00 +02:00
-05/10/2010 01:45:00 +08:00
-04/10/2010 13:45:00 -04:00
-Europe/Paris
-America/New_York
-
-January 28, 2010 12:00
-January 28, 2010 12:00
-January 28, 2010 19:00
-January 28, 2010 15:00
-January 28, 2010 15:00
-
-January 28, 2010 15:00
-January 28, 2010 22:00
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_default_format.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_default_format.test
deleted file mode 100644
index 11a1ef4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_default_format.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"date" filter
---TEMPLATE--
-{{ date1|date }}
-{{ date1|date('d/m/Y') }}
---DATA--
-date_default_timezone_set('UTC');
-$twig->getExtension('core')->setDateFormat('Y-m-d', '%d days %h hours');
-return array(
-    'date1' => mktime(13, 45, 0, 10, 4, 2010),
-)
---EXPECT--
-2010-10-04
-04/10/2010
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_default_format_interval.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_default_format_interval.test
deleted file mode 100644
index e6d3707..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_default_format_interval.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"date" filter (interval support as of PHP 5.3)
---CONDITION--
-version_compare(phpversion(), '5.3.0', '>=')
---TEMPLATE--
-{{ date2|date }}
-{{ date2|date('%d days') }}
---DATA--
-date_default_timezone_set('UTC');
-$twig->getExtension('core')->setDateFormat('Y-m-d', '%d days %h hours');
-return array(
-    'date2' => new DateInterval('P2D'),
-)
---EXPECT--
-2 days 0 hours
-2 days
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_immutable.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_immutable.test
deleted file mode 100644
index 4e18325..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_immutable.test
+++ /dev/null
@@ -1,37 +0,0 @@
---TEST--
-"date" filter
---CONDITION--
-version_compare(phpversion(), '5.5.0', '>=')
---TEMPLATE--
-{{ date1|date }}
-{{ date1|date('d/m/Y') }}
-{{ date1|date('d/m/Y H:i:s', 'Asia/Hong_Kong') }}
-{{ date1|date('d/m/Y H:i:s', timezone1) }}
-{{ date1|date('d/m/Y H:i:s') }}
-{{ date1|date_modify('+1 hour')|date('d/m/Y H:i:s') }}
-
-{{ date2|date('d/m/Y H:i:s P', 'Europe/Paris') }}
-{{ date2|date('d/m/Y H:i:s P', 'Asia/Hong_Kong') }}
-{{ date2|date('d/m/Y H:i:s P', false) }}
-{{ date2|date('e', 'Europe/Paris') }}
-{{ date2|date('e', false) }}
---DATA--
-date_default_timezone_set('Europe/Paris');
-return array(
-    'date1' => new DateTimeImmutable('2010-10-04 13:45'),
-    'date2' => new DateTimeImmutable('2010-10-04 13:45', new DateTimeZone('America/New_York')),
-    'timezone1' => new DateTimeZone('America/New_York'),
-)
---EXPECT--
-October 4, 2010 13:45
-04/10/2010
-04/10/2010 19:45:00
-04/10/2010 07:45:00
-04/10/2010 13:45:00
-04/10/2010 14:45:00
-
-04/10/2010 19:45:00 +02:00
-05/10/2010 01:45:00 +08:00
-04/10/2010 13:45:00 -04:00
-Europe/Paris
-America/New_York
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_interval.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_interval.test
deleted file mode 100644
index 0c8c6f1..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_interval.test
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-"date" filter (interval support as of PHP 5.3)
---CONDITION--
-version_compare(phpversion(), '5.3.0', '>=')
---TEMPLATE--
-{{ date1|date }}
-{{ date1|date('%d days %h hours') }}
-{{ date1|date('%d days %h hours', timezone1) }}
---DATA--
-date_default_timezone_set('UTC');
-return array(
-    'date1' => new DateInterval('P2D'),
-    // This should have no effect on DateInterval formatting
-    'timezone1' => new DateTimeZone('America/New_York'),
-)
---EXPECT--
-2 days
-2 days 0 hours
-2 days 0 hours
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_modify.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_modify.test
deleted file mode 100644
index 53d3a69..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_modify.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"date_modify" filter
---TEMPLATE--
-{{ date1|date_modify('-1day')|date('Y-m-d H:i:s') }}
-{{ date2|date_modify('-1day')|date('Y-m-d H:i:s') }}
---DATA--
-date_default_timezone_set('UTC');
-return array(
-    'date1' => '2010-10-04 13:45',
-    'date2' => new DateTime('2010-10-04 13:45'),
-)
---EXPECT--
-2010-10-03 13:45:00
-2010-10-03 13:45:00
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_namedargs.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_namedargs.test
deleted file mode 100644
index 4ecde8a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/date_namedargs.test
+++ /dev/null
@@ -1,13 +0,0 @@
---TEST--
-"date" filter
---TEMPLATE--
-{{ date|date(format='d/m/Y H:i:s P', timezone='America/Chicago') }}
-{{ date|date(timezone='America/Chicago', format='d/m/Y H:i:s P') }}
-{{ date|date('d/m/Y H:i:s P', timezone='America/Chicago') }}
---DATA--
-date_default_timezone_set('UTC');
-return array('date' => mktime(13, 45, 0, 10, 4, 2010))
---EXPECT--
-04/10/2010 08:45:00 -05:00
-04/10/2010 08:45:00 -05:00
-04/10/2010 08:45:00 -05:00
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/default.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/default.test
deleted file mode 100644
index b8d1d66..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/default.test
+++ /dev/null
@@ -1,150 +0,0 @@
---TEST--
-"default" filter
---TEMPLATE--
-Variable:
-{{ definedVar                  |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ zeroVar                     |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ emptyVar                    |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ nullVar                     |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ undefinedVar                |default('default') is same as('default') ? 'ok' : 'ko' }}
-Array access:
-{{ nested.definedVar           |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ nested['definedVar']        |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ nested.zeroVar              |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ nested.emptyVar             |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ nested.nullVar              |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ nested.undefinedVar         |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ nested['undefinedVar']      |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ undefinedVar.foo            |default('default') is same as('default') ? 'ok' : 'ko' }}
-Plain values:
-{{ 'defined'                   |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ 0                           |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ ''                          |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ null                        |default('default') is same as('default') ? 'ok' : 'ko' }}
-Precedence:
-{{ 'o' ~ nullVar               |default('k') }}
-{{ 'o' ~ nested.nullVar        |default('k') }}
-Object methods:
-{{ object.foo                  |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ object.undefinedMethod      |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ object.getFoo()             |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ object.getFoo('a')          |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ object.undefinedMethod()    |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ object.undefinedMethod('a') |default('default') is same as('default') ? 'ok' : 'ko' }}
-Deep nested:
-{{ nested.undefinedVar.foo.bar |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ nested.definedArray.0       |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ nested['definedArray'][0]   |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ object.self.foo             |default('default') is same as('default') ? 'ko' : 'ok' }}
-{{ object.self.undefinedMethod |default('default') is same as('default') ? 'ok' : 'ko' }}
-{{ object.undefinedMethod.self |default('default') is same as('default') ? 'ok' : 'ko' }}
---DATA--
-return array(
-    'definedVar' => 'defined',
-    'zeroVar'    => 0,
-    'emptyVar'   => '',
-    'nullVar'    => null,
-    'nested'     => array(
-        'definedVar'   => 'defined',
-        'zeroVar'      => 0,
-        'emptyVar'     => '',
-        'nullVar'      => null,
-        'definedArray' => array(0),
-    ),
-    'object' => new TwigTestFoo(),
-)
---CONFIG--
-return array('strict_variables' => false)
---EXPECT--
-Variable:
-ok
-ok
-ok
-ok
-ok
-Array access:
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-Plain values:
-ok
-ok
-ok
-ok
-Precedence:
-ok
-ok
-Object methods:
-ok
-ok
-ok
-ok
-ok
-ok
-Deep nested:
-ok
-ok
-ok
-ok
-ok
-ok
---DATA--
-return array(
-    'definedVar' => 'defined',
-    'zeroVar'    => 0,
-    'emptyVar'   => '',
-    'nullVar'    => null,
-    'nested'     => array(
-        'definedVar'   => 'defined',
-        'zeroVar'      => 0,
-        'emptyVar'     => '',
-        'nullVar'      => null,
-        'definedArray' => array(0),
-    ),
-    'object' => new TwigTestFoo(),
-)
---CONFIG--
-return array('strict_variables' => true)
---EXPECT--
-Variable:
-ok
-ok
-ok
-ok
-ok
-Array access:
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-Plain values:
-ok
-ok
-ok
-ok
-Precedence:
-ok
-ok
-Object methods:
-ok
-ok
-ok
-ok
-ok
-ok
-Deep nested:
-ok
-ok
-ok
-ok
-ok
-ok
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/dynamic_filter.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/dynamic_filter.test
deleted file mode 100644
index 93c5913..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/dynamic_filter.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-dynamic filter
---TEMPLATE--
-{{ 'bar'|foo_path }}
-{{ 'bar'|a_foo_b_bar }}
---DATA--
-return array()
---EXPECT--
-foo/bar
-a/b/bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape.test
deleted file mode 100644
index a606c10..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"escape" filter
---TEMPLATE--
-{{ "foo <br />"|e }}
---DATA--
-return array()
---EXPECT--
-foo &lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_html_attr.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_html_attr.test
deleted file mode 100644
index 009a245..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_html_attr.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"escape" filter does not escape with the html strategy when using the html_attr strategy
---TEMPLATE--
-{{ '<br />'|escape('html_attr') }}
---DATA--
-return array()
---EXPECT--
-&lt;br&#x20;&#x2F;&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_non_supported_charset.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_non_supported_charset.test
deleted file mode 100644
index bba26a0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_non_supported_charset.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"escape" filter
---TEMPLATE--
-{{ "愛していますか？ <br />"|e }}
---DATA--
-return array()
---EXPECT--
-愛していますか？ &lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
deleted file mode 100644
index aa54645..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"first" filter
---TEMPLATE--
-{{ [1, 2, 3, 4]|first }}
-{{ {a: 1, b: 2, c: 3, d: 4}|first }}
-{{ '1234'|first }}
-{{ arr|first }}
-{{ 'Ä€é'|first }}
-{{ ''|first }}
---DATA--
-return array('arr' => new ArrayObject(array(1, 2, 3, 4)))
---EXPECT--
-1
-1
-1
-1
-Ä
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/force_escape.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/force_escape.test
deleted file mode 100644
index 85a9b71..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/force_escape.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"escape" filter
---TEMPLATE--
-{% set foo %}
-    foo<br />
-{% endset %}
-
-{{ foo|e('html') -}}
-{{ foo|e('js') }}
-{% autoescape true %}
-    {{ foo }}
-{% endautoescape %}
---DATA--
-return array()
---EXPECT--
-    foo&lt;br /&gt;
-\x20\x20\x20\x20foo\x3Cbr\x20\x2F\x3E\x0A
-        foo<br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/format.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/format.test
deleted file mode 100644
index 97221ff..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/format.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"format" filter
---TEMPLATE--
-{{ string|format(foo, 3) }}
---DATA--
-return array('string' => '%s/%d', 'foo' => 'bar')
---EXPECT--
-bar/3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/join.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/join.test
deleted file mode 100644
index b342c17..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/join.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"join" filter
---TEMPLATE--
-{{ ["foo", "bar"]|join(', ') }}
-{{ foo|join(', ') }}
-{{ bar|join(', ') }}
---DATA--
-return array('foo' => new TwigTestFoo(), 'bar' => new ArrayObject(array(3, 4)))
---EXPECT--
-foo, bar
-1, 2
-3, 4
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/json_encode.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/json_encode.test
deleted file mode 100644
index 1738d40..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/json_encode.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"json_encode" filter
---TEMPLATE--
-{{ "foo"|json_encode|raw }}
-{{ foo|json_encode|raw }}
-{{ [foo, "foo"]|json_encode|raw }}
---DATA--
-return array('foo' => new Twig_Markup('foo', 'UTF-8'))
---EXPECT--
-"foo"
-"foo"
-["foo","foo"]
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test
deleted file mode 100644
index 1b8031e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/last.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"last" filter
---TEMPLATE--
-{{ [1, 2, 3, 4]|last }}
-{{ {a: 1, b: 2, c: 3, d: 4}|last }}
-{{ '1234'|last }}
-{{ arr|last }}
-{{ 'Ä€é'|last }}
-{{ ''|last }}
---DATA--
-return array('arr' => new ArrayObject(array(1, 2, 3, 4)))
---EXPECT--
-4
-4
-4
-4
-é
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test
deleted file mode 100644
index 3347474..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"length" filter
---TEMPLATE--
-{{ array|length }}
-{{ string|length }}
-{{ number|length }}
-{{ markup|length }}
---DATA--
-return array('array' => array(1, 4), 'string' => 'foo', 'number' => 1000, 'markup' => new Twig_Markup('foo', 'UTF-8'))
---EXPECT--
-2
-3
-4
-3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length_utf8.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length_utf8.test
deleted file mode 100644
index 5d5e243..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/length_utf8.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"length" filter
---CONDITION--
-function_exists('mb_get_info')
---TEMPLATE--
-{{ string|length }}
-{{ markup|length }}
---DATA--
-return array('string' => 'été', 'markup' => new Twig_Markup('foo', 'UTF-8'))
---EXPECT--
-3
-3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/merge.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/merge.test
deleted file mode 100644
index 2bd3d4c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/merge.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"merge" filter
---TEMPLATE--
-{{ items|merge({'bar': 'foo'})|join }}
-{{ items|merge({'bar': 'foo'})|keys|join }}
-{{ {'bar': 'foo'}|merge(items)|join }}
-{{ {'bar': 'foo'}|merge(items)|keys|join }}
-{{ numerics|merge([4, 5, 6])|join }}
---DATA--
-return array('items' => array('foo' => 'bar'), 'numerics' => array(1, 2, 3))
---EXPECT--
-barfoo
-foobar
-foobar
-barfoo
-123456
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/nl2br.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/nl2br.test
deleted file mode 100644
index 6545a9b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/nl2br.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"nl2br" filter
---TEMPLATE--
-{{ "I like Twig.\nYou will like it too.\n\nEverybody like it!"|nl2br }}
-{{ text|nl2br }}
---DATA--
-return array('text' => "If you have some <strong>HTML</strong>\nit will be escaped.")
---EXPECT--
-I like Twig.<br />
-You will like it too.<br />
-<br />
-Everybody like it!
-If you have some &lt;strong&gt;HTML&lt;/strong&gt;<br />
-it will be escaped.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/number_format.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/number_format.test
deleted file mode 100644
index 639a865..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/number_format.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"number_format" filter
---TEMPLATE--
-{{ 20|number_format }}
-{{ 20.25|number_format }}
-{{ 20.25|number_format(2) }}
-{{ 20.25|number_format(2, ',') }}
-{{ 1020.25|number_format(2, ',') }}
-{{ 1020.25|number_format(2, ',', '.') }}
---DATA--
-return array();
---EXPECT--
-20
-20
-20.25
-20,25
-1,020,25
-1.020,25
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/number_format_default.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/number_format_default.test
deleted file mode 100644
index c6903cc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/number_format_default.test
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-"number_format" filter with defaults.
---TEMPLATE--
-{{ 20|number_format }}
-{{ 20.25|number_format }}
-{{ 20.25|number_format(1) }}
-{{ 20.25|number_format(2, ',') }}
-{{ 1020.25|number_format }}
-{{ 1020.25|number_format(2, ',') }}
-{{ 1020.25|number_format(2, ',', '.') }}
---DATA--
-$twig->getExtension('core')->setNumberFormat(2, '!', '=');
-return array();
---EXPECT--
-20!00
-20!25
-20!3
-20,25
-1=020!25
-1=020,25
-1.020,25
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/replace.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/replace.test
deleted file mode 100644
index 4021660..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/replace.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"replace" filter
---TEMPLATE--
-{{ "I like %this% and %that%."|replace({'%this%': "foo", '%that%': "bar"}) }}
---DATA--
-return array()
---EXPECT--
-I like foo and bar.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/reverse.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/reverse.test
deleted file mode 100644
index 7948ac4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/reverse.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"reverse" filter
---TEMPLATE--
-{{ [1, 2, 3, 4]|reverse|join('') }}
-{{ '1234évènement'|reverse }}
-{{ arr|reverse|join('') }}
-{{ {'a': 'c', 'b': 'a'}|reverse()|join(',') }}
-{{ {'a': 'c', 'b': 'a'}|reverse(preserveKeys=true)|join(glue=',') }}
-{{ {'a': 'c', 'b': 'a'}|reverse(preserve_keys=true)|join(glue=',') }}
---DATA--
-return array('arr' => new ArrayObject(array(1, 2, 3, 4)))
---EXPECT--
-4321
-tnemenèvé4321
-4321
-a,c
-a,c
-a,c
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/round.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/round.test
deleted file mode 100644
index 57806b6..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/round.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-"round" filter
---TEMPLATE--
-{{ 2.7|round }}
-{{ 2.1|round }}
-{{ 2.1234|round(3, 'floor') }}
-{{ 2.1|round(0, 'ceil') }}
-
-{{ 21.3|round(-1)}}
-{{ 21.3|round(-1, 'ceil')}}
-{{ 21.3|round(-1, 'floor')}}
---DATA--
-return array()
---EXPECT--
-3
-2
-2.123
-3
-
-20
-30
-20
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/slice.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/slice.test
deleted file mode 100644
index b49b89f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/slice.test
+++ /dev/null
@@ -1,54 +0,0 @@
---TEST--
-"slice" filter
---TEMPLATE--
-{{ [1, 2, 3, 4][1:2]|join('') }}
-{{ {a: 1, b: 2, c: 3, d: 4}[1:2]|join('') }}
-{{ [1, 2, 3, 4][start:length]|join('') }}
-{{ [1, 2, 3, 4]|slice(1, 2)|join('') }}
-{{ [1, 2, 3, 4]|slice(1, 2)|keys|join('') }}
-{{ [1, 2, 3, 4]|slice(1, 2, true)|keys|join('') }}
-{{ {a: 1, b: 2, c: 3, d: 4}|slice(1, 2)|join('') }}
-{{ {a: 1, b: 2, c: 3, d: 4}|slice(1, 2)|keys|join('') }}
-{{ '1234'|slice(1, 2) }}
-{{ '1234'[1:2] }}
-{{ arr|slice(1, 2)|join('') }}
-{{ arr[1:2]|join('') }}
-{{ arr[4:1]|join('') }}
-{{ arr[3:2]|join('') }}
-
-{{ [1, 2, 3, 4]|slice(1)|join('') }}
-{{ [1, 2, 3, 4][1:]|join('') }}
-{{ '1234'|slice(1) }}
-{{ '1234'[1:] }}
-{{ '1234'[:1] }}
-
-{{ arr|slice(3)|join('') }}
-{{ arr[2:]|join('') }}
-{{ xml|slice(1)|join('')}}
---DATA--
-return array('start' => 1, 'length' => 2, 'arr' => new ArrayObject(array(1, 2, 3, 4)), 'xml' => new SimpleXMLElement('<items><item>1</item><item>2</item></items>'))
---EXPECT--
-23
-23
-23
-23
-01
-12
-23
-bc
-23
-23
-23
-23
-
-4
-
-234
-234
-234
-234
-1
-
-4
-34
-2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/sort.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/sort.test
deleted file mode 100644
index 21d575f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/sort.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"sort" filter
---TEMPLATE--
-{{ array1|sort|join }}
-{{ array2|sort|join }}
---DATA--
-return array('array1' => array(4, 1), 'array2' => array('foo', 'bar'))
---EXPECT--
-14
-barfoo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/special_chars.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/special_chars.test
deleted file mode 100644
index dbaf7dc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/special_chars.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"§" custom filter
---TEMPLATE--
-{{ 'foo'|§ }}
---DATA--
-return array()
---EXPECT--
-§foo§
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/split.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/split.test
deleted file mode 100644
index a093ed7..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/split.test
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-"split" filter
---TEMPLATE--
-{{ "one,two,three,four,five"|split(',')|join('-') }}
-{{ foo|split(',')|join('-') }}
-{{ foo|split(',', 3)|join('-') }}
-{{ baz|split('')|join('-') }}
-{{ baz|split('', 1)|join('-') }}
-{{ baz|split('', 2)|join('-') }}
-{{ foo|split(',', -2)|join('-') }}
---DATA--
-return array('foo' => "one,two,three,four,five", 'baz' => '12345',)
---EXPECT--
-one-two-three-four-five
-one-two-three-four-five
-one-two-three,four,five
-1-2-3-4-5
-1-2-3-4-5
-12-34-5
-one-two-three
\ No newline at end of file
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/split_utf8.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/split_utf8.test
deleted file mode 100644
index 305e162..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/split_utf8.test
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-"split" filter
---CONDITION--
-function_exists('mb_get_info')
---TEMPLATE--
-{{ "é"|split('', 10)|join('-') }}
-{{ foo|split(',')|join('-') }}
-{{ foo|split(',', 1)|join('-') }}
-{{ foo|split(',', 2)|join('-') }}
-{{ foo|split(',', 3)|join('-') }}
-{{ baz|split('')|join('-') }}
-{{ baz|split('', 1)|join('-') }}
-{{ baz|split('', 2)|join('-') }}
---DATA--
-return array('foo' => 'Ä,é,Äほ', 'baz' => 'éÄßごa',)
---EXPECT--
-é
-Ä-é-Äほ
-Ä,é,Äほ
-Ä-é,Äほ
-Ä-é-Äほ
-é-Ä-ß-ご-a
-é-Ä-ß-ご-a
-éÄ-ßご-a
\ No newline at end of file
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/trim.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/trim.test
deleted file mode 100644
index 3192062..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/trim.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"trim" filter
---TEMPLATE--
-{{ "  I like Twig.  "|trim }}
-{{ text|trim }}
-{{ "  foo/"|trim("/") }}
---DATA--
-return array('text' => "  If you have some <strong>HTML</strong> it will be escaped.  ")
---EXPECT--
-I like Twig.
-If you have some &lt;strong&gt;HTML&lt;/strong&gt; it will be escaped.
-  foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test
deleted file mode 100644
index 8726159..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"url_encode" filter
---CONDITION--
-defined('PHP_QUERY_RFC3986')
---TEMPLATE--
-{{ {foo: "bar", number: 3, "spéßi%l": "e%c0d@d", "spa ce": ""}|url_encode }}
-{{ {foo: "bar", number: 3, "spéßi%l": "e%c0d@d", "spa ce": ""}|url_encode|raw }}
-{{ {}|url_encode|default("default") }}
-{{ 'spéßi%le%c0d@dspa ce'|url_encode }}
---DATA--
-return array()
---EXPECT--
-foo=bar&amp;number=3&amp;sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&amp;spa%20ce=
-foo=bar&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&spa%20ce=
-default
-sp%C3%A9%C3%9Fi%25le%25c0d%40dspa%20ce
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode_deprecated.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode_deprecated.test
deleted file mode 100644
index 11800e9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/urlencode_deprecated.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"url_encode" filter for PHP < 5.4 and HHVM
---CONDITION--
-defined('PHP_QUERY_RFC3986')
---TEMPLATE--
-{{ {foo: "bar", number: 3, "spéßi%l": "e%c0d@d", "spa ce": ""}|url_encode }}
-{{ {foo: "bar", number: 3, "spéßi%l": "e%c0d@d", "spa ce": ""}|url_encode|raw }}
-{{ {}|url_encode|default("default") }}
-{{ 'spéßi%le%c0d@dspa ce'|url_encode }}
---DATA--
-return array()
---EXPECT--
-foo=bar&amp;number=3&amp;sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&amp;spa%20ce=
-foo=bar&number=3&sp%C3%A9%C3%9Fi%25l=e%25c0d%40d&spa%20ce=
-default
-sp%C3%A9%C3%9Fi%25le%25c0d%40dspa%20ce
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/attribute.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/attribute.test
deleted file mode 100644
index 71b2038..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/attribute.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"attribute" function
---TEMPLATE--
-{{ attribute(obj, method) }}
-{{ attribute(array, item) }}
-{{ attribute(obj, "bar", ["a", "b"]) }}
-{{ attribute(obj, "bar", arguments) }}
-{{ attribute(obj, method) is defined ? 'ok' : 'ko' }}
-{{ attribute(obj, nonmethod) is defined ? 'ok' : 'ko' }}
---DATA--
-return array('obj' => new TwigTestFoo(), 'method' => 'foo', 'array' => array('foo' => 'bar'), 'item' => 'foo', 'nonmethod' => 'xxx', 'arguments' => array('a', 'b'))
---EXPECT--
-foo
-bar
-bar_a-b
-bar_a-b
-ok
-ko
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/block.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/block.test
deleted file mode 100644
index 8e54059..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/block.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"block" function
---TEMPLATE--
-{% extends 'base.twig' %}
-{% block bar %}BAR{% endblock %}
---TEMPLATE(base.twig)--
-{% block foo %}{{ block('bar') }}{% endblock %}
-{% block bar %}BAR_BASE{% endblock %}
---DATA--
-return array()
---EXPECT--
-BARBAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/constant.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/constant.test
deleted file mode 100644
index 6312879..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/constant.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"constant" function
---TEMPLATE--
-{{ constant('DATE_W3C') == expect ? 'true' : 'false' }}
-{{ constant('ARRAY_AS_PROPS', object) }}
---DATA--
-return array('expect' => DATE_W3C, 'object' => new ArrayObject(array('hi')));
---EXPECT--
-true
-2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/cycle.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/cycle.test
deleted file mode 100644
index 522a63b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/cycle.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"cycle" function
---TEMPLATE--
-{% for i in 0..6 %}
-{{ cycle(array1, i) }}-{{ cycle(array2, i) }}
-{% endfor %}
---DATA--
-return array('array1' => array('odd', 'even'), 'array2' => array('apple', 'orange', 'citrus'))
---EXPECT--
-odd-apple
-even-orange
-odd-citrus
-even-apple
-odd-orange
-even-citrus
-odd-apple
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test
deleted file mode 100644
index 8be9c0c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date.test
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-"date" function
---TEMPLATE--
-{{ date() == date('now') ? 'OK' : 'KO' }}
-{{ date(date1) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
-{{ date(date2) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
-{{ date(date3) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
-{{ date(date4) == date('2010-10-04 13:45') ? 'OK' : 'KO' }}
-{{ date(date5) == date('1964-01-02 03:04') ? 'OK' : 'KO' }}
---DATA--
-date_default_timezone_set('UTC');
-return array(
-    'date1' => mktime(13, 45, 0, 10, 4, 2010),
-    'date2' => new DateTime('2010-10-04 13:45'),
-    'date3' => '2010-10-04 13:45',
-    'date4' => 1286199900, // DateTime::createFromFormat('Y-m-d H:i', '2010-10-04 13:45', new DateTimeZone('UTC'))->getTimestamp() -- A unixtimestamp is always GMT
-    'date5' => -189291360, // DateTime::createFromFormat('Y-m-d H:i', '1964-01-02 03:04', new DateTimeZone('UTC'))->getTimestamp(),
-)
---EXPECT--
-OK
-OK
-OK
-OK
-OK
-OK
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date_namedargs.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date_namedargs.test
deleted file mode 100644
index b9dd9e3..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/date_namedargs.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"date" function
---TEMPLATE--
-{{ date(date, "America/New_York")|date('d/m/Y H:i:s P', false) }}
-{{ date(timezone="America/New_York", date=date)|date('d/m/Y H:i:s P', false) }}
---DATA--
-date_default_timezone_set('UTC');
-return array('date' => mktime(13, 45, 0, 10, 4, 2010))
---EXPECT--
-04/10/2010 09:45:00 -04:00
-04/10/2010 09:45:00 -04:00
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dump.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dump.test
deleted file mode 100644
index f407237..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dump.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"dump" function
---CONDITION--
-!extension_loaded('xdebug')
---TEMPLATE--
-{{ dump('foo') }}
-{{ dump('foo', 'bar') }}
---DATA--
-return array('foo' => 'foo', 'bar' => 'bar')
---CONFIG--
-return array('debug' => true, 'autoescape' => false);
---EXPECT--
-string(3) "foo"
-
-string(3) "foo"
-string(3) "bar"
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dump_array.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dump_array.test
deleted file mode 100644
index 889b7a9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dump_array.test
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-"dump" function, xdebug is not loaded or xdebug <2.2-dev is loaded
---CONDITION--
-!extension_loaded('xdebug') || (($r = new ReflectionExtension('xdebug')) && version_compare($r->getVersion(), '2.2-dev', '<'))
---TEMPLATE--
-{{ dump() }}
---DATA--
-return array('foo' => 'foo', 'bar' => 'bar')
---CONFIG--
-return array('debug' => true, 'autoescape' => false);
---EXPECT--
-array(3) {
-  ["foo"]=>
-  string(3) "foo"
-  ["bar"]=>
-  string(3) "bar"
-  ["global"]=>
-  string(6) "global"
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dynamic_function.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dynamic_function.test
deleted file mode 100644
index 913fbc9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/dynamic_function.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-dynamic function
---TEMPLATE--
-{{ foo_path('bar') }}
-{{ a_foo_b_bar('bar') }}
---DATA--
-return array()
---EXPECT--
-foo/bar
-a/b/bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/assignment.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/assignment.test
deleted file mode 100644
index b7653b4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/assignment.test
+++ /dev/null
@@ -1,13 +0,0 @@
---TEST--
-"include" function
---TEMPLATE--
-{% set tmp = include("foo.twig") %}
-
-FOO{{ tmp }}BAR
---TEMPLATE(foo.twig)--
-FOOBAR
---DATA--
-return array()
---EXPECT--
-FOO
-FOOBARBAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/autoescaping.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/autoescaping.test
deleted file mode 100644
index 56f8f3b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/autoescaping.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"include" function is safe for auto-escaping
---TEMPLATE--
-{{ include("foo.twig") }}
---TEMPLATE(foo.twig)--
-<p>Test</p>
---DATA--
-return array()
---EXPECT--
-<p>Test</p>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/basic.test
deleted file mode 100644
index a434182..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/basic.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"include" function
---TEMPLATE--
-FOO
-{{ include("foo.twig") }}
-
-BAR
---TEMPLATE(foo.twig)--
-FOOBAR
---DATA--
-return array()
---EXPECT--
-FOO
-
-FOOBAR
-
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/expression.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/expression.test
deleted file mode 100644
index aba30ce..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/expression.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"include" function allows expressions for the template to include
---TEMPLATE--
-FOO
-{{ include(foo) }}
-
-BAR
---TEMPLATE(foo.twig)--
-FOOBAR
---DATA--
-return array('foo' => 'foo.twig')
---EXPECT--
-FOO
-
-FOOBAR
-
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing.test
deleted file mode 100644
index 43a2ccc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/ignore_missing.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"include" function
---TEMPLATE--
-{{ include(["foo.twig", "bar.twig"], ignore_missing = true) }}
-{{ include("foo.twig", ignore_missing = true) }}
-{{ include("foo.twig", ignore_missing = true, variables = {}) }}
-{{ include("foo.twig", ignore_missing = true, variables = {}, with_context = true) }}
---DATA--
-return array()
---EXPECT--
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/missing.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/missing.test
deleted file mode 100644
index 4d2f6cf..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/missing.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"include" function
---TEMPLATE--
-{{ include("foo.twig") }}
---DATA--
-return array();
---EXCEPTION--
-Twig_Error_Loader: Template "foo.twig" is not defined in "index.twig" at line 2.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/missing_nested.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/missing_nested.test
deleted file mode 100644
index 78fddc7..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/missing_nested.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" function
---TEMPLATE--
-{% extends "base.twig" %}
-
-{% block content %}
-    {{ parent() }}
-{% endblock %}
---TEMPLATE(base.twig)--
-{% block content %}
-    {{ include("foo.twig") }}
-{% endblock %}
---DATA--
-return array();
---EXCEPTION--
-Twig_Error_Loader: Template "foo.twig" is not defined in "base.twig" at line 3.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox.test
deleted file mode 100644
index 7b9ccac..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox.test
+++ /dev/null
@@ -1,13 +0,0 @@
---TEST--
-"include" tag sandboxed
---TEMPLATE--
-{{ include("foo.twig", sandboxed = true) }}
---TEMPLATE(foo.twig)--
-
-
-{{ foo|e }}
-{{ foo|e }}
---DATA--
-return array()
---EXCEPTION--
-Twig_Sandbox_SecurityNotAllowedFilterError: Filter "e" is not allowed in "foo.twig" at line 4.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox_disabling.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox_disabling.test
deleted file mode 100644
index 8ffc492..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox_disabling.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" tag sandboxed
---TEMPLATE--
-{{ include("foo.twig", sandboxed = true) }}
-{{ include("bar.twig") }}
---TEMPLATE(foo.twig)--
-foo
---TEMPLATE(bar.twig)--
-{{ foo|e }}
---DATA--
-return array('foo' => 'bar<br />')
---EXPECT--
-foo
-
-
-bar&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox_disabling_ignore_missing.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox_disabling_ignore_missing.test
deleted file mode 100644
index 8bf6e10..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/sandbox_disabling_ignore_missing.test
+++ /dev/null
@@ -1,13 +0,0 @@
---TEST--
-"include" tag sandboxed
---TEMPLATE--
-{{ include("unknown.twig", sandboxed = true, ignore_missing = true) }}
-{{ include("bar.twig") }}
---TEMPLATE(bar.twig)--
-{{ foo|e }}
---DATA--
-return array('foo' => 'bar<br />')
---EXPECT--
-
-
-bar&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/template_instance.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/template_instance.test
deleted file mode 100644
index 18d405a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/template_instance.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"include" function accepts Twig_Template instance
---TEMPLATE--
-{{ include(foo) }} FOO
---TEMPLATE(foo.twig)--
-BAR
---DATA--
-return array('foo' => $twig->loadTemplate('foo.twig'))
---EXPECT--
-BAR FOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/templates_as_array.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/templates_as_array.test
deleted file mode 100644
index 1a81006..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/templates_as_array.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"include" function
---TEMPLATE--
-{{ include(["foo.twig", "bar.twig"]) }}
-{{- include(["bar.twig", "foo.twig"]) }}
---TEMPLATE(foo.twig)--
-foo
---DATA--
-return array()
---EXPECT--
-foo
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/with_context.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/with_context.test
deleted file mode 100644
index 35611fb..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/with_context.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" function accept variables and with_context
---TEMPLATE--
-{{ include("foo.twig") }}
-{{- include("foo.twig", with_context = false) }}
-{{- include("foo.twig", {'foo1': 'bar'}) }}
-{{- include("foo.twig", {'foo1': 'bar'}, with_context = false) }}
---TEMPLATE(foo.twig)--
-{% for k, v in _context %}{{ k }},{% endfor %}
---DATA--
-return array('foo' => 'bar')
---EXPECT--
-foo,global,_parent,
-global,_parent,
-foo,global,foo1,_parent,
-foo1,global,_parent,
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/with_variables.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/with_variables.test
deleted file mode 100644
index b2ace94..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/include/with_variables.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"include" function accept variables
---TEMPLATE--
-{{ include("foo.twig", {'foo': 'bar'}) }}
-{{- include("foo.twig", vars) }}
---TEMPLATE(foo.twig)--
-{{ foo }}
---DATA--
-return array('vars' => array('foo' => 'bar'))
---EXPECT--
-bar
-bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/max.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/max.test
deleted file mode 100644
index e6c94af..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/max.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"max" function
---TEMPLATE--
-{{ max([2, 1, 3, 5, 4]) }}
-{{ max(2, 1, 3, 5, 4) }}
-{{ max({2:"two", 1:"one", 3:"three", 5:"five", 4:"for"}) }}
---DATA--
-return array()
---EXPECT--
-5
-5
-two
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/min.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/min.test
deleted file mode 100644
index 660471c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/min.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"min" function
---TEMPLATE--
-{{ min(2, 1, 3, 5, 4) }}
-{{ min([2, 1, 3, 5, 4]) }}
-{{ min({2:"two", 1:"one", 3:"three", 5:"five", 4:"for"}) }}
---DATA--
-return array()
---EXPECT--
-1
-1
-five
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/range.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/range.test
deleted file mode 100644
index e0377c8..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/range.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"range" function
---TEMPLATE--
-{{ range(low=0+1, high=10+0, step=2)|join(',') }}
---DATA--
-return array()
---EXPECT--
-1,3,5,7,9
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/recursive_block_with_inheritance.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/recursive_block_with_inheritance.test
deleted file mode 100644
index f39712d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/recursive_block_with_inheritance.test
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-"block" function recursively called in a parent template
---TEMPLATE--
-{% extends "ordered_menu.twig" %}
-{% block label %}"{{ parent() }}"{% endblock %}
-{% block list %}{% set class = 'b' %}{{ parent() }}{% endblock %}
---TEMPLATE(ordered_menu.twig)--
-{% extends "menu.twig" %}
-{% block list %}{% set class = class|default('a') %}<ol class="{{ class }}">{{ block('children') }}</ol>{% endblock %}
---TEMPLATE(menu.twig)--
-{% extends "base.twig" %}
-{% block list %}<ul>{{ block('children') }}</ul>{% endblock %}
-{% block children %}{% set currentItem = item %}{% for item in currentItem %}{{ block('item') }}{% endfor %}{% set item = currentItem %}{% endblock %}
-{% block item %}<li>{% if item is not iterable %}{{ block('label') }}{% else %}{{ block('list') }}{% endif %}</li>{% endblock %}
-{% block label %}{{ item }}{{ block('unknown') }}{% endblock %}
---TEMPLATE(base.twig)--
-{{ block('list') }}
---DATA--
-return array('item' => array('1', '2', array('3.1', array('3.2.1', '3.2.2'), '3.4')))
---EXPECT--
-<ol class="b"><li>"1"</li><li>"2"</li><li><ol class="b"><li>"3.1"</li><li><ol class="b"><li>"3.2.1"</li><li>"3.2.2"</li></ol></li><li>"3.4"</li></ol></li></ol>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/source.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/source.test
deleted file mode 100644
index 0e094c3..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/source.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"source" function
---TEMPLATE--
-FOO
-{{ source("foo.twig") }}
-
-BAR
---TEMPLATE(foo.twig)--
-{{ foo }}<br />
---DATA--
-return array()
---EXPECT--
-FOO
-
-{{ foo }}<br />
-
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/special_chars.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/special_chars.test
deleted file mode 100644
index 30c3df5..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/special_chars.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"§" custom function
---TEMPLATE--
-{{ §('foo') }}
---DATA--
-return array()
---EXPECT--
-§foo§
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string.test
deleted file mode 100644
index 3d3b958..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/functions/template_from_string.test
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-"template_from_string" function
---TEMPLATE--
-{% include template_from_string(template) %}
-
-{% include template_from_string("Hello {{ name }}") %}
-{% include template_from_string('{% extends "parent.twig" %}{% block content %}Hello {{ name }}{% endblock %}') %}
---TEMPLATE(parent.twig)--
-{% block content %}{% endblock %}
---DATA--
-return array('name' => 'Fabien', 'template' => "Hello {{ name }}")
---EXPECT--
-Hello Fabien
-Hello Fabien
-Hello Fabien
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/default_values.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/default_values.test
deleted file mode 100644
index 4ccff7b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/default_values.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-macro
---TEMPLATE--
-{% from _self import test %}
-
-{% macro test(a, b = 'bar') -%}
-{{ a }}{{ b }}
-{%- endmacro %}
-
-{{ test('foo') }}
-{{ test('bar', 'foo') }}
---DATA--
-return array();
---EXPECT--
-foobar
-barfoo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/nested_calls.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/nested_calls.test
deleted file mode 100644
index cd25428..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/nested_calls.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-macro
---TEMPLATE--
-{% import _self as macros %}
-
-{% macro foo(data) %}
-    {{ data }}
-{% endmacro %}
-
-{% macro bar() %}
-    <br />
-{% endmacro %}
-
-{{ macros.foo(macros.bar()) }}
---DATA--
-return array();
---EXPECT--
-<br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/reserved_variables.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/reserved_variables.test
deleted file mode 100644
index cbfb921..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/reserved_variables.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-macro
---TEMPLATE--
-{% from _self import test %}
-
-{% macro test(this) -%}
-    {{ this }}
-{%- endmacro %}
-
-{{ test(this) }}
---DATA--
-return array('this' => 'foo');
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/simple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/simple.test
deleted file mode 100644
index 6a366cd..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/simple.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-macro
---TEMPLATE--
-{% import _self as test %}
-{% from _self import test %}
-
-{% macro test(a, b) -%}
-    {{ a|default('a') }}<br />
-    {{- b|default('b') }}<br />
-{%- endmacro %}
-
-{{ test.test() }}
-{{ test() }}
-{{ test.test(1, "c") }}
-{{ test(1, "c") }}
---DATA--
-return array();
---EXPECT--
-a<br />b<br />
-a<br />b<br />
-1<br />c<br />
-1<br />c<br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/varargs.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/varargs.test
deleted file mode 100644
index 412c90f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/varargs.test
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-macro with arbitrary arguments
---TEMPLATE--
-{% from _self import test1, test2 %}
-
-{% macro test1(var) %}
-    {{- var }}: {{ varargs|join(", ") }}
-{% endmacro %}
-
-{% macro test2() %}
-    {{- varargs|join(", ") }}
-{% endmacro %}
-
-{{ test1("foo", "bar", "foobar") }}
-{{ test2("foo", "bar", "foobar") }}
---DATA--
-return array();
---EXPECT--
-foo: bar, foobar
-
-foo, bar, foobar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/varargs_argument.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/varargs_argument.test
deleted file mode 100644
index b08c8ec..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/varargs_argument.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-macro with varargs argument
---TEMPLATE--
-{% macro test(varargs) %}
-{% endmacro %}
---EXCEPTION--
-Twig_Error_Syntax: The argument "varargs" in macro "test" cannot be defined because the variable "varargs" is reserved for arbitrary arguments in "index.twig" at line 2
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/with_filters.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/with_filters.test
deleted file mode 100644
index 685626f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/macros/with_filters.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-macro with a filter
---TEMPLATE--
-{% import _self as test %}
-
-{% macro test() %}
-    {% filter escape %}foo<br />{% endfilter %}
-{% endmacro %}
-
-{{ test.test() }}
---DATA--
-return array();
---EXPECT--
-foo&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/combined_debug_info.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/combined_debug_info.test
deleted file mode 100644
index df48578..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/combined_debug_info.test
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Exception with bad line number
---TEMPLATE--
-{% block content %}
-    {{ foo }}
-    {{ include("foo") }}
-{% endblock %}
-index
---TEMPLATE(foo)--
-foo
-{{ foo.bar }}
---DATA--
-return array('foo' => 'foo');
---EXCEPTION--
-Twig_Error_Runtime: Impossible to access an attribute ("bar") on a string variable ("foo") in "foo" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/empty_token.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/empty_token.test
deleted file mode 100644
index 65f6cd2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/empty_token.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-Twig outputs 0 nodes correctly
---TEMPLATE--
-{{ foo }}0{{ foo }}
---DATA--
-return array('foo' => 'foo')
---EXPECT--
-foo0foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/issue_1143.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/issue_1143.test
deleted file mode 100644
index ff7c8bb..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/issue_1143.test
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-error in twig extension
---TEMPLATE--
-{{ object.region is not null ? object.regionChoices[object.region] }}
---DATA--
-class House
-{
-    const REGION_S = 1;
-    const REGION_P = 2;
-
-    public static $regionChoices = array(self::REGION_S => 'house.region.s', self::REGION_P => 'house.region.p');
-
-    public function getRegionChoices()
-    {
-        return self::$regionChoices;
-    }
-}
-
-$object = new House();
-$object->region = 1;
-return array('object' => $object)
---EXPECT--
-house.region.s
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/multi_word_tests.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/multi_word_tests.test
deleted file mode 100644
index 269a305..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/multi_word_tests.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-Twig allows multi-word tests without a custom node class
---TEMPLATE--
-{{ 'foo' is multi word ? 'yes' : 'no' }}
-{{ 'foo bar' is multi word ? 'yes' : 'no' }}
---DATA--
-return array()
---EXPECT--
-no
-yes
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/simple_xml_element.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/simple_xml_element.test
deleted file mode 100644
index 60c3c51..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/simple_xml_element.test
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-Twig is able to deal with SimpleXMLElement instances as variables
---CONDITION--
-version_compare(phpversion(), '5.3.0', '>=')
---TEMPLATE--
-Hello '{{ images.image.0.group }}'!
-{{ images.image.0.group.attributes.myattr }}
-{{ images.children().image.count() }}
-{% for image in images %}
-    - {{ image.group }}
-{% endfor %}
---DATA--
-return array('images' => new SimpleXMLElement('<images><image><group myattr="example">foo</group></image><image><group>bar</group></image></images>'))
---EXPECT--
-Hello 'foo'!
-example
-2
-    - foo
-    - bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/strings_like_numbers.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/strings_like_numbers.test
deleted file mode 100644
index e18e110..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/regression/strings_like_numbers.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-Twig does not confuse strings with integers in getAttribute()
---TEMPLATE--
-{{ hash['2e2'] }}
---DATA--
-return array('hash' => array('2e2' => 'works'))
---EXPECT--
-works
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/basic.test
deleted file mode 100644
index 2f6a3e1..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/basic.test
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-"autoescape" tag applies escaping on its children
---TEMPLATE--
-{% autoescape %}
-{{ var }}<br />
-{% endautoescape %}
-{% autoescape 'html' %}
-{{ var }}<br />
-{% endautoescape %}
-{% autoescape false %}
-{{ var }}<br />
-{% endautoescape %}
-{% autoescape true %}
-{{ var }}<br />
-{% endautoescape %}
-{% autoescape false %}
-{{ var }}<br />
-{% endautoescape %}
---DATA--
-return array('var' => '<br />')
---EXPECT--
-&lt;br /&gt;<br />
-&lt;br /&gt;<br />
-<br /><br />
-&lt;br /&gt;<br />
-<br /><br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/blocks.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/blocks.test
deleted file mode 100644
index 05ab83c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/blocks.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"autoescape" tag applies escaping on embedded blocks
---TEMPLATE--
-{% autoescape 'html' %}
-  {% block foo %}
-    {{ var }}
-  {% endblock %}
-{% endautoescape %}
---DATA--
-return array('var' => '<br />')
---EXPECT--
-&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/double_escaping.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/double_escaping.test
deleted file mode 100644
index 9c09724..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/double_escaping.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"autoescape" tag does not double-escape
---TEMPLATE--
-{% autoescape 'html' %}
-{{ var|escape }}
-{% endautoescape %}
---DATA--
-return array('var' => '<br />')
---EXPECT--
-&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/functions.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/functions.test
deleted file mode 100644
index ce7ea78..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/functions.test
+++ /dev/null
@@ -1,83 +0,0 @@
---TEST--
-"autoescape" tag applies escaping after calling functions
---TEMPLATE--
-
-autoescape false
-{% autoescape false %}
-
-safe_br
-{{ safe_br() }}
-
-unsafe_br
-{{ unsafe_br() }}
-
-{% endautoescape %}
-
-autoescape 'html'
-{% autoescape 'html' %}
-
-safe_br
-{{ safe_br() }}
-
-unsafe_br
-{{ unsafe_br() }}
-
-unsafe_br()|raw
-{{ (unsafe_br())|raw }}
-
-safe_br()|escape
-{{ (safe_br())|escape }}
-
-safe_br()|raw
-{{ (safe_br())|raw }}
-
-unsafe_br()|escape
-{{ (unsafe_br())|escape }}
-
-{% endautoescape %}
-
-autoescape js
-{% autoescape 'js' %}
-
-safe_br
-{{ safe_br() }}
-
-{% endautoescape %}
---DATA--
-return array()
---EXPECT--
-
-autoescape false
-
-safe_br
-<br />
-
-unsafe_br
-<br />
-
-
-autoescape 'html'
-
-safe_br
-<br />
-
-unsafe_br
-&lt;br /&gt;
-
-unsafe_br()|raw
-<br />
-
-safe_br()|escape
-&lt;br /&gt;
-
-safe_br()|raw
-<br />
-
-unsafe_br()|escape
-&lt;br /&gt;
-
-
-autoescape js
-
-safe_br
-\x3Cbr\x20\x2F\x3E
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test
deleted file mode 100644
index e389d4d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/literal.test
+++ /dev/null
@@ -1,45 +0,0 @@
---TEST--
-"autoescape" tag does not apply escaping on literals
---TEMPLATE--
-{% autoescape 'html' %}
-
-1. Simple literal
-{{ "<br />" }}
-
-2. Conditional expression with only literals
-{{ true ? "<br />" : "<br>" }}
-
-3. Conditional expression with a variable
-{{ true ? "<br />" : someVar }}
-
-4. Nested conditionals with only literals
-{{ true ? (true ? "<br />" : "<br>") : "\n" }}
-
-5. Nested conditionals with a variable
-{{ true ? (true ? "<br />" : someVar) : "\n" }}
-
-6. Nested conditionals with a variable marked safe
-{{ true ? (true ? "<br />" : someVar|raw) : "\n" }}
-
-{% endautoescape %}
---DATA--
-return array()
---EXPECT--
-
-1. Simple literal
-<br />
-
-2. Conditional expression with only literals
-<br />
-
-3. Conditional expression with a variable
-&lt;br /&gt;
-
-4. Nested conditionals with only literals
-<br />
-
-5. Nested conditionals with a variable
-&lt;br /&gt;
-
-6. Nested conditionals with a variable marked safe
-<br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/nested.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/nested.test
deleted file mode 100644
index 798e6fe..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/nested.test
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-"autoescape" tags can be nested at will
---TEMPLATE--
-{{ var }}
-{% autoescape 'html' %}
-  {{ var }}
-  {% autoescape false %}
-    {{ var }}
-    {% autoescape 'html' %}
-      {{ var }}
-    {% endautoescape %}
-    {{ var }}
-  {% endautoescape %}
-  {{ var }}
-{% endautoescape %}
-{{ var }}
---DATA--
-return array('var' => '<br />')
---EXPECT--
-&lt;br /&gt;
-  &lt;br /&gt;
-      <br />
-          &lt;br /&gt;
-        <br />
-    &lt;br /&gt;
-&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/objects.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/objects.test
deleted file mode 100644
index e896aa4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/objects.test
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-"autoescape" tag applies escaping to object method calls
---TEMPLATE--
-{% autoescape 'html' %}
-{{ user.name }}
-{{ user.name|lower }}
-{{ user }}
-{% endautoescape %}
---DATA--
-class UserForAutoEscapeTest
-{
-  public function getName()
-  {
-    return 'Fabien<br />';
-  }
-
-  public function __toString()
-  {
-     return 'Fabien<br />';
-  }
-}
-return array('user' => new UserForAutoEscapeTest())
---EXPECT--
-Fabien&lt;br /&gt;
-fabien&lt;br /&gt;
-Fabien&lt;br /&gt;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/raw.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/raw.test
deleted file mode 100644
index 9f1cedd..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/raw.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"autoescape" tag does not escape when raw is used as a filter
---TEMPLATE--
-{% autoescape 'html' %}
-{{ var|raw }}
-{% endautoescape %}
---DATA--
-return array('var' => '<br />')
---EXPECT--
-<br />
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/strategy.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/strategy.test
deleted file mode 100644
index cf8ccee..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/strategy.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"autoescape" tag accepts an escaping strategy
---TEMPLATE--
-{% autoescape true js %}{{ var }}{% endautoescape %}
-
-{% autoescape true html %}{{ var }}{% endautoescape %}
-
-{% autoescape 'js' %}{{ var }}{% endautoescape %}
-
-{% autoescape 'html' %}{{ var }}{% endautoescape %}
---DATA--
-return array('var' => '<br />"')
---EXPECT--
-\x3Cbr\x20\x2F\x3E\x22
-&lt;br /&gt;&quot;
-\x3Cbr\x20\x2F\x3E\x22
-&lt;br /&gt;&quot;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/type.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/type.test
deleted file mode 100644
index 4f41520..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/type.test
+++ /dev/null
@@ -1,69 +0,0 @@
---TEST--
-escape types
---TEMPLATE--
-
-1. autoescape 'html' |escape('js')
-
-{% autoescape 'html' %}
-<a onclick="alert(&quot;{{ msg|escape('js') }}&quot;)"></a>
-{% endautoescape %}
-
-2. autoescape 'html' |escape('js')
-
-{% autoescape 'html' %}
-<a onclick="alert(&quot;{{ msg|escape('js') }}&quot;)"></a>
-{% endautoescape %}
-
-3. autoescape 'js' |escape('js')
-
-{% autoescape 'js' %}
-<a onclick="alert(&quot;{{ msg|escape('js') }}&quot;)"></a>
-{% endautoescape %}
-
-4. no escape
-
-{% autoescape false %}
-<a onclick="alert(&quot;{{ msg }}&quot;)"></a>
-{% endautoescape %}
-
-5. |escape('js')|escape('html')
-
-{% autoescape false %}
-<a onclick="alert(&quot;{{ msg|escape('js')|escape('html') }}&quot;)"></a>
-{% endautoescape %}
-
-6. autoescape 'html' |escape('js')|escape('html')
-
-{% autoescape 'html' %}
-<a onclick="alert(&quot;{{ msg|escape('js')|escape('html') }}&quot;)"></a>
-{% endautoescape %}
-
---DATA--
-return array('msg' => "<>\n'\"")
---EXPECT--
-
-1. autoescape 'html' |escape('js')
-
-<a onclick="alert(&quot;\x3C\x3E\x0A\x27\x22&quot;)"></a>
-
-2. autoescape 'html' |escape('js')
-
-<a onclick="alert(&quot;\x3C\x3E\x0A\x27\x22&quot;)"></a>
-
-3. autoescape 'js' |escape('js')
-
-<a onclick="alert(&quot;\x3C\x3E\x0A\x27\x22&quot;)"></a>
-
-4. no escape
-
-<a onclick="alert(&quot;<>
-'"&quot;)"></a>
-
-5. |escape('js')|escape('html')
-
-<a onclick="alert(&quot;\x3C\x3E\x0A\x27\x22&quot;)"></a>
-
-6. autoescape 'html' |escape('js')|escape('html')
-
-<a onclick="alert(&quot;\x3C\x3E\x0A\x27\x22&quot;)"></a>
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_filters.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_filters.test
deleted file mode 100644
index 7821a9a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_filters.test
+++ /dev/null
@@ -1,131 +0,0 @@
---TEST--
-"autoescape" tag applies escaping after calling filters
---TEMPLATE--
-{% autoescape 'html' %}
-
-(escape_and_nl2br is an escaper filter)
-
-1. Don't escape escaper filter output
-( var is escaped by |escape_and_nl2br, line-breaks are added, 
-  the output is not escaped )
-{{ var|escape_and_nl2br }}
-
-2. Don't escape escaper filter output
-( var is escaped by |escape_and_nl2br, line-breaks are added, 
-  the output is not escaped, |raw is redundant )
-{{ var|escape_and_nl2br|raw }}
-
-3. Explicit escape
-( var is escaped by |escape_and_nl2br, line-breaks are added,
-  the output is explicitly escaped by |escape )
-{{ var|escape_and_nl2br|escape }}
-
-4. Escape non-escaper filter output
-( var is upper-cased by |upper,
-  the output is auto-escaped )
-{{ var|upper }}
-
-5. Escape if last filter is not an escaper
-( var is escaped by |escape_and_nl2br, line-breaks are added,
-  the output is upper-cased by |upper,
-  the output is auto-escaped as |upper is not an escaper )
-{{ var|escape_and_nl2br|upper }}
-
-6. Don't escape escaper filter output
-( var is upper cased by upper,
-  the output is escaped by |escape_and_nl2br, line-breaks are added,
-  the output is not escaped as |escape_and_nl2br is an escaper )
-{{ var|upper|escape_and_nl2br }}
-
-7. Escape if last filter is not an escaper
-( the output of |format is "<b>" ~ var ~ "</b>",
-  the output is auto-escaped )
-{{ "<b>%s</b>"|format(var) }}
-
-8. Escape if last filter is not an escaper
-( the output of |format is "<b>" ~ var ~ "</b>",
-  |raw is redundant,
-  the output is auto-escaped )
-{{ "<b>%s</b>"|raw|format(var) }}
-
-9. Don't escape escaper filter output
-( the output of |format is "<b>" ~ var ~ "</b>",
-  the output is not escaped due to |raw filter at the end )
-{{ "<b>%s</b>"|format(var)|raw }}
-
-10. Don't escape escaper filter output
-( the output of |format is "<b>" ~ var ~ "</b>",
-  the output is not escaped due to |raw filter at the end,
-  the |raw filter on var is redundant )
-{{ "<b>%s</b>"|format(var|raw)|raw }}
-
-{% endautoescape %}
---DATA--
-return array('var' => "<Fabien>\nTwig")
---EXPECT--
-
-(escape_and_nl2br is an escaper filter)
-
-1. Don't escape escaper filter output
-( var is escaped by |escape_and_nl2br, line-breaks are added, 
-  the output is not escaped )
-&lt;Fabien&gt;<br />
-Twig
-
-2. Don't escape escaper filter output
-( var is escaped by |escape_and_nl2br, line-breaks are added, 
-  the output is not escaped, |raw is redundant )
-&lt;Fabien&gt;<br />
-Twig
-
-3. Explicit escape
-( var is escaped by |escape_and_nl2br, line-breaks are added,
-  the output is explicitly escaped by |escape )
-&amp;lt;Fabien&amp;gt;&lt;br /&gt;
-Twig
-
-4. Escape non-escaper filter output
-( var is upper-cased by |upper,
-  the output is auto-escaped )
-&lt;FABIEN&gt;
-TWIG
-
-5. Escape if last filter is not an escaper
-( var is escaped by |escape_and_nl2br, line-breaks are added,
-  the output is upper-cased by |upper,
-  the output is auto-escaped as |upper is not an escaper )
-&amp;LT;FABIEN&amp;GT;&lt;BR /&gt;
-TWIG
-
-6. Don't escape escaper filter output
-( var is upper cased by upper,
-  the output is escaped by |escape_and_nl2br, line-breaks are added,
-  the output is not escaped as |escape_and_nl2br is an escaper )
-&lt;FABIEN&gt;<br />
-TWIG
-
-7. Escape if last filter is not an escaper
-( the output of |format is "<b>" ~ var ~ "</b>",
-  the output is auto-escaped )
-&lt;b&gt;&lt;Fabien&gt;
-Twig&lt;/b&gt;
-
-8. Escape if last filter is not an escaper
-( the output of |format is "<b>" ~ var ~ "</b>",
-  |raw is redundant,
-  the output is auto-escaped )
-&lt;b&gt;&lt;Fabien&gt;
-Twig&lt;/b&gt;
-
-9. Don't escape escaper filter output
-( the output of |format is "<b>" ~ var ~ "</b>",
-  the output is not escaped due to |raw filter at the end )
-<b><Fabien>
-Twig</b>
-
-10. Don't escape escaper filter output
-( the output of |format is "<b>" ~ var ~ "</b>",
-  the output is not escaped due to |raw filter at the end,
-  the |raw filter on var is redundant )
-<b><Fabien>
-Twig</b>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_filters_arguments.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_filters_arguments.test
deleted file mode 100644
index f58a1e0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_filters_arguments.test
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-"autoescape" tag do not applies escaping on filter arguments
---TEMPLATE--
-{% autoescape 'html' %}
-{{ var|nl2br("<br />") }}
-{{ var|nl2br("<br />"|escape) }}
-{{ var|nl2br(sep) }}
-{{ var|nl2br(sep|raw) }}
-{{ var|nl2br(sep|escape) }}
-{% endautoescape %}
---DATA--
-return array('var' => "<Fabien>\nTwig", 'sep' => '<br />')
---EXPECT--
-&lt;Fabien&gt;<br />
-Twig
-&lt;Fabien&gt;&lt;br /&gt;
-Twig
-&lt;Fabien&gt;<br />
-Twig
-&lt;Fabien&gt;<br />
-Twig
-&lt;Fabien&gt;&lt;br /&gt;
-Twig
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_pre_escape_filters.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_pre_escape_filters.test
deleted file mode 100644
index 134c77e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_pre_escape_filters.test
+++ /dev/null
@@ -1,68 +0,0 @@
---TEST--
-"autoescape" tag applies escaping after calling filters, and before calling pre_escape filters
---TEMPLATE--
-{% autoescape 'html' %}
-
-(nl2br is pre_escaped for "html" and declared safe for "html")
-
-1. Pre-escape and don't post-escape
-( var|escape|nl2br )
-{{ var|nl2br }}
-
-2. Don't double-pre-escape
-( var|escape|nl2br )
-{{ var|escape|nl2br }}
-
-3. Don't escape safe values
-( var|raw|nl2br )
-{{ var|raw|nl2br }}
-
-4. Don't escape safe values
-( var|escape|nl2br|nl2br )
-{{ var|nl2br|nl2br }}
-
-5. Re-escape values that are escaped for an other contexts
-( var|escape_something|escape|nl2br )
-{{ var|escape_something|nl2br }}
-
-6. Still escape when using filters not declared safe
-( var|escape|nl2br|upper|escape )
-{{ var|nl2br|upper }}
-
-{% endautoescape %}
---DATA--
-return array('var' => "<Fabien>\nTwig")
---EXPECT--
-
-(nl2br is pre_escaped for "html" and declared safe for "html")
-
-1. Pre-escape and don't post-escape
-( var|escape|nl2br )
-&lt;Fabien&gt;<br />
-Twig
-
-2. Don't double-pre-escape
-( var|escape|nl2br )
-&lt;Fabien&gt;<br />
-Twig
-
-3. Don't escape safe values
-( var|raw|nl2br )
-<Fabien><br />
-Twig
-
-4. Don't escape safe values
-( var|escape|nl2br|nl2br )
-&lt;Fabien&gt;<br /><br />
-Twig
-
-5. Re-escape values that are escaped for an other contexts
-( var|escape_something|escape|nl2br )
-&lt;FABIEN&gt;<br />
-TWIG
-
-6. Still escape when using filters not declared safe
-( var|escape|nl2br|upper|escape )
-&amp;LT;FABIEN&amp;GT;&lt;BR /&gt;
-TWIG
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_preserves_safety_filters.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_preserves_safety_filters.test
deleted file mode 100644
index 32d3943..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/autoescape/with_preserves_safety_filters.test
+++ /dev/null
@@ -1,50 +0,0 @@
---TEST--
-"autoescape" tag handles filters preserving the safety
---TEMPLATE--
-{% autoescape 'html' %}
-
-(preserves_safety is preserving safety for "html")
-
-1. Unsafe values are still unsafe
-( var|preserves_safety|escape )
-{{ var|preserves_safety }}
-
-2. Safe values are still safe
-( var|escape|preserves_safety )
-{{ var|escape|preserves_safety }}
-
-3. Re-escape values that are escaped for an other contexts
-( var|escape_something|preserves_safety|escape )
-{{ var|escape_something|preserves_safety }}
-
-4. Still escape when using filters not declared safe
-( var|escape|preserves_safety|replace({'FABIEN': 'FABPOT'})|escape )
-{{ var|escape|preserves_safety|replace({'FABIEN': 'FABPOT'}) }}
-
-{% endautoescape %}
---DATA--
-return array('var' => "<Fabien>\nTwig")
---EXPECT--
-
-(preserves_safety is preserving safety for "html")
-
-1. Unsafe values are still unsafe
-( var|preserves_safety|escape )
-&lt;FABIEN&gt;
-TWIG
-
-2. Safe values are still safe
-( var|escape|preserves_safety )
-&LT;FABIEN&GT;
-TWIG
-
-3. Re-escape values that are escaped for an other contexts
-( var|escape_something|preserves_safety|escape )
-&lt;FABIEN&gt;
-TWIG
-
-4. Still escape when using filters not declared safe
-( var|escape|preserves_safety|replace({'FABIEN': 'FABPOT'})|escape )
-&amp;LT;FABPOT&amp;GT;
-TWIG
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/basic.test
deleted file mode 100644
index 360dcf0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/basic.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"block" tag
---TEMPLATE--
-{% block title1 %}FOO{% endblock %}
-{% block title2 foo|lower %}
---TEMPLATE(foo.twig)--
-{% block content %}{% endblock %}
---DATA--
-return array('foo' => 'bar')
---EXPECT--
-FOObar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/block_unique_name.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/block_unique_name.test
deleted file mode 100644
index 5c205c0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/block_unique_name.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"block" tag
---TEMPLATE--
-{% block content %}
-    {% block content %}
-    {% endblock %}
-{% endblock %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: The block 'content' has already been defined line 2 in "index.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/special_chars.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/special_chars.test
deleted file mode 100644
index be17fed..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/block/special_chars.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"§" special chars in a block name
---TEMPLATE--
-{% block § %}
-§
-{% endblock § %}
---DATA--
-return array()
---EXPECT--
-§
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/basic.test
deleted file mode 100644
index f44296e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/basic.test
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-"embed" tag
---TEMPLATE--
-FOO
-{% embed "foo.twig" %}
-    {% block c1 %}
-        {{ parent() }}
-        block1extended
-    {% endblock %}
-{% endembed %}
-
-BAR
---TEMPLATE(foo.twig)--
-A
-{% block c1 %}
-    block1
-{% endblock %}
-B
-{% block c2 %}
-    block2
-{% endblock %}
-C
---DATA--
-return array()
---EXPECT--
-FOO
-
-A
-            block1
-
-        block1extended
-    B
-    block2
-C
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/error_line.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/error_line.test
deleted file mode 100644
index 71ab2e0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/error_line.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"embed" tag
---TEMPLATE(index.twig)--
-FOO
-{% embed "foo.twig" %}
-    {% block c1 %}
-        {{ nothing }}
-    {% endblock %}
-{% endembed %}
-BAR
---TEMPLATE(foo.twig)--
-{% block c1 %}{% endblock %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Runtime: Variable "nothing" does not exist in "index.twig" at line 5
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/multiple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/multiple.test
deleted file mode 100644
index da161e6..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/multiple.test
+++ /dev/null
@@ -1,50 +0,0 @@
---TEST--
-"embed" tag
---TEMPLATE--
-FOO
-{% embed "foo.twig" %}
-    {% block c1 %}
-        {{ parent() }}
-        block1extended
-    {% endblock %}
-{% endembed %}
-
-{% embed "foo.twig" %}
-    {% block c1 %}
-        {{ parent() }}
-        block1extended
-    {% endblock %}
-{% endembed %}
-
-BAR
---TEMPLATE(foo.twig)--
-A
-{% block c1 %}
-    block1
-{% endblock %}
-B
-{% block c2 %}
-    block2
-{% endblock %}
-C
---DATA--
-return array()
---EXPECT--
-FOO
-
-A
-            block1
-
-        block1extended
-    B
-    block2
-C
-
-A
-            block1
-
-        block1extended
-    B
-    block2
-C
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/nested.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/nested.test
deleted file mode 100644
index 81563dc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/nested.test
+++ /dev/null
@@ -1,42 +0,0 @@
---TEST--
-"embed" tag
---TEMPLATE--
-{% embed "foo.twig" %}
-    {% block c1 %}
-        {{ parent() }}
-        {% embed "foo.twig" %}
-            {% block c1 %}
-                {{ parent() }}
-                block1extended
-            {% endblock %}
-        {% endembed %}
-
-    {% endblock %}
-{% endembed %}
---TEMPLATE(foo.twig)--
-A
-{% block c1 %}
-    block1
-{% endblock %}
-B
-{% block c2 %}
-    block2
-{% endblock %}
-C
---DATA--
-return array()
---EXPECT--
-A
-            block1
-
-        
-A
-                    block1
-
-                block1extended
-            B
-    block2
-C
-    B
-    block2
-C
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/with_extends.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/with_extends.test
deleted file mode 100644
index cf7953d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/embed/with_extends.test
+++ /dev/null
@@ -1,57 +0,0 @@
---TEST--
-"embed" tag
---TEMPLATE--
-{% extends "base.twig" %}
-
-{% block c1 %}
-    {{ parent() }}
-    blockc1baseextended
-{% endblock %}
-
-{% block c2 %}
-    {{ parent() }}
-
-    {% embed "foo.twig" %}
-        {% block c1 %}
-            {{ parent() }}
-            block1extended
-        {% endblock %}
-    {% endembed %}
-{% endblock %}
---TEMPLATE(base.twig)--
-A
-{% block c1 %}
-    blockc1base
-{% endblock %}
-{% block c2 %}
-    blockc2base
-{% endblock %}
-B
---TEMPLATE(foo.twig)--
-A
-{% block c1 %}
-    block1
-{% endblock %}
-B
-{% block c2 %}
-    block2
-{% endblock %}
-C
---DATA--
-return array()
---EXPECT--
-A
-        blockc1base
-
-    blockc1baseextended
-        blockc2base
-
-
-    
-A
-                block1
-
-            block1extended
-        B
-    block2
-CB
\ No newline at end of file
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/basic.test
deleted file mode 100644
index 82094f2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/basic.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"filter" tag applies a filter on its children
---TEMPLATE--
-{% filter upper %}
-Some text with a {{ var }}
-{% endfilter %}
---DATA--
-return array('var' => 'var')
---EXPECT--
-SOME TEXT WITH A VAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/json_encode.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/json_encode.test
deleted file mode 100644
index 3e7148b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/json_encode.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"filter" tag applies a filter on its children
---TEMPLATE--
-{% filter json_encode|raw %}test{% endfilter %}
---DATA--
-return array()
---EXPECT--
-"test"
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/multiple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/multiple.test
deleted file mode 100644
index 75512ef..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/multiple.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"filter" tags accept multiple chained filters
---TEMPLATE--
-{% filter lower|title %}
-  {{ var }}
-{% endfilter %}
---DATA--
-return array('var' => 'VAR')
---EXPECT--
-    Var
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/nested.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/nested.test
deleted file mode 100644
index 7e4e4eb..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/nested.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"filter" tags can be nested at will
---TEMPLATE--
-{% filter lower|title %}
-  {{ var }}
-  {% filter upper %}
-    {{ var }}
-  {% endfilter %}
-  {{ var }}
-{% endfilter %}
---DATA--
-return array('var' => 'var')
---EXPECT--
-  Var
-      Var
-    Var
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/with_for_tag.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/with_for_tag.test
deleted file mode 100644
index 22745ea..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/with_for_tag.test
+++ /dev/null
@@ -1,13 +0,0 @@
---TEST--
-"filter" tag applies the filter on "for" tags
---TEMPLATE--
-{% filter upper %}
-{% for item in items %}
-{{ item }}
-{% endfor %}
-{% endfilter %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-A
-B
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/with_if_tag.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/with_if_tag.test
deleted file mode 100644
index afd95b2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/filter/with_if_tag.test
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-"filter" tag applies the filter on "if" tags
---TEMPLATE--
-{% filter upper %}
-{% if items %}
-{{ items|join(', ') }}
-{% endif %}
-
-{% if items.3 is defined %}
-FOO
-{% else %}
-{{ items.1 }}
-{% endif %}
-
-{% if items.3 is defined %}
-FOO
-{% elseif items.1 %}
-{{ items.0 }}
-{% endif %}
-
-{% endfilter %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-A, B
-
-B
-
-A
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/condition.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/condition.test
deleted file mode 100644
index 380531f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/condition.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"for" tag takes a condition
---TEMPLATE--
-{% for i in 1..5 if i is odd -%}
-    {{ loop.index }}.{{ i }}{{ foo.bar }}
-{% endfor %}
---DATA--
-return array('foo' => array('bar' => 'X'))
---CONFIG--
-return array('strict_variables' => false)
---EXPECT--
-1.1X
-2.3X
-3.5X
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/context.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/context.test
deleted file mode 100644
index ddc6930..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/context.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"for" tag keeps the context safe
---TEMPLATE--
-{% for item in items %}
-  {% for item in items %}
-    * {{ item }}
-  {% endfor %}
-  * {{ item }}
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-      * a
-      * b
-    * a
-      * a
-      * b
-    * b
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/else.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/else.test
deleted file mode 100644
index 20ccc88..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/else.test
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-"for" tag can use an "else" clause
---TEMPLATE--
-{% for item in items %}
-  * {{ item }}
-{% else %}
-  no item
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-  * a
-  * b
---DATA--
-return array('items' => array())
---EXPECT--
-  no item
---DATA--
-return array()
---CONFIG--
-return array('strict_variables' => false)
---EXPECT--
-  no item
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/inner_variables.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/inner_variables.test
deleted file mode 100644
index 49fb9ca..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/inner_variables.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"for" tag does not reset inner variables
---TEMPLATE--
-{% for i in 1..2 %}
-  {% for j in 0..2 %}
-    {{k}}{% set k = k+1 %} {{ loop.parent.loop.index }}
-  {% endfor %}
-{% endfor %}
---DATA--
-return array('k' => 0)
---EXPECT--
-      0 1
-      1 1
-      2 1
-        3 2
-      4 2
-      5 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/keys.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/keys.test
deleted file mode 100644
index 4e22cb4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/keys.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"for" tag can iterate over keys
---TEMPLATE--
-{% for key in items|keys %}
-  * {{ key }}
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-  * 0
-  * 1
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/keys_and_values.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/keys_and_values.test
deleted file mode 100644
index 4c21168..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/keys_and_values.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"for" tag can iterate over keys and values
---TEMPLATE--
-{% for key, item in items %}
-  * {{ key }}/{{ item }}
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-  * 0/a
-  * 1/b
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_context.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_context.test
deleted file mode 100644
index 93bc76a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_context.test
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-"for" tag adds a loop variable to the context
---TEMPLATE--
-{% for item in items %}
-  * {{ loop.index }}/{{ loop.index0 }}
-  * {{ loop.revindex }}/{{ loop.revindex0 }}
-  * {{ loop.first }}/{{ loop.last }}/{{ loop.length }}
-
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-  * 1/0
-  * 2/1
-  * 1//2
-
-  * 2/1
-  * 1/0
-  * /1/2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_context_local.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_context_local.test
deleted file mode 100644
index 58af2c3..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_context_local.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"for" tag adds a loop variable to the context locally
---TEMPLATE--
-{% for item in items %}
-{% endfor %}
-{% if loop is not defined %}WORKS{% endif %}
---DATA--
-return array('items' => array())
---EXPECT--
-WORKS
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_not_defined.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_not_defined.test
deleted file mode 100644
index 4301ef2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_not_defined.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"for" tag
---TEMPLATE--
-{% for i, item in items if i > 0 %}
-    {{ loop.last }}
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXCEPTION--
-Twig_Error_Syntax: The "loop.last" variable is not defined when looping with a condition in "index.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_not_defined_cond.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_not_defined_cond.test
deleted file mode 100644
index c7e723a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/loop_not_defined_cond.test
+++ /dev/null
@@ -1,9 +0,0 @@
---TEST--
-"for" tag
---TEMPLATE--
-{% for i, item in items if loop.last > 0 %}
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXCEPTION--
-Twig_Error_Syntax: The "loop" variable cannot be used in a looping condition in "index.twig" at line 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/nested_else.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/nested_else.test
deleted file mode 100644
index f8b9f6b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/nested_else.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"for" tag can use an "else" clause
---TEMPLATE--
-{% for item in items %}
-  {% for item in items1 %}
-    * {{ item }}
-  {% else %}
-    no {{ item }}
-  {% endfor %}
-{% else %}
-  no item1
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'), 'items1' => array())
---EXPECT--
-no a
-        no b
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects.test
deleted file mode 100644
index 5034437..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects.test
+++ /dev/null
@@ -1,43 +0,0 @@
---TEST--
-"for" tag iterates over iterable objects
---TEMPLATE--
-{% for item in items %}
-  * {{ item }}
-  * {{ loop.index }}/{{ loop.index0 }}
-  * {{ loop.first }}
-
-{% endfor %}
-
-{% for key, value in items %}
-  * {{ key }}/{{ value }}
-{% endfor %}
-
-{% for key in items|keys %}
-  * {{ key }}
-{% endfor %}
---DATA--
-class ItemsIterator implements Iterator
-{
-  protected $values = array('foo' => 'bar', 'bar' => 'foo');
-  public function current() { return current($this->values); }
-  public function key() { return key($this->values); }
-  public function next() { return next($this->values); }
-  public function rewind() { return reset($this->values); }
-  public function valid() { return false !== current($this->values); }
-}
-return array('items' => new ItemsIterator())
---EXPECT--
-  * bar
-  * 1/0
-  * 1
-
-  * foo
-  * 2/1
-  * 
-
-
-  * foo/bar
-  * bar/foo
-
-  * foo
-  * bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects_countable.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects_countable.test
deleted file mode 100644
index 4a1ff61..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects_countable.test
+++ /dev/null
@@ -1,47 +0,0 @@
---TEST--
-"for" tag iterates over iterable and countable objects
---TEMPLATE--
-{% for item in items %}
-  * {{ item }}
-  * {{ loop.index }}/{{ loop.index0 }}
-  * {{ loop.revindex }}/{{ loop.revindex0 }}
-  * {{ loop.first }}/{{ loop.last }}/{{ loop.length }}
-
-{% endfor %}
-
-{% for key, value in items %}
-  * {{ key }}/{{ value }}
-{% endfor %}
-
-{% for key in items|keys %}
-  * {{ key }}
-{% endfor %}
---DATA--
-class ItemsIteratorCountable implements Iterator, Countable
-{
-  protected $values = array('foo' => 'bar', 'bar' => 'foo');
-  public function current() { return current($this->values); }
-  public function key() { return key($this->values); }
-  public function next() { return next($this->values); }
-  public function rewind() { return reset($this->values); }
-  public function valid() { return false !== current($this->values); }
-  public function count() { return count($this->values); }
-}
-return array('items' => new ItemsIteratorCountable())
---EXPECT--
-  * bar
-  * 1/0
-  * 2/1
-  * 1//2
-
-  * foo
-  * 2/1
-  * 1/0
-  * /1/2
-
-
-  * foo/bar
-  * bar/foo
-
-  * foo
-  * bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/recursive.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/recursive.test
deleted file mode 100644
index 17b2e22..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/recursive.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"for" tags can be nested
---TEMPLATE--
-{% for key, item in items %}
-* {{ key }} ({{ loop.length }}):
-{% for value in item %}
-  * {{ value }} ({{ loop.length }})
-{% endfor %}
-{% endfor %}
---DATA--
-return array('items' => array('a' => array('a1', 'a2', 'a3'), 'b' => array('b1')))
---EXPECT--
-* a (2):
-  * a1 (3)
-  * a2 (3)
-  * a3 (3)
-* b (2):
-  * b1 (1)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/values.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/values.test
deleted file mode 100644
index 82f2ae8..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/values.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"for" tag iterates over item values
---TEMPLATE--
-{% for item in items %}
-  * {{ item }}
-{% endfor %}
---DATA--
-return array('items' => array('a', 'b'))
---EXPECT--
-  * a
-  * b
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/from.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/from.test
deleted file mode 100644
index 5f5da0e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/from.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-global variables
---TEMPLATE--
-{% include "included.twig" %}
-{% from "included.twig" import foobar %}
-{{ foobar() }}
---TEMPLATE(included.twig)--
-{% macro foobar() %}
-called foobar
-{% endmacro %}
---DATA--
-return array();
---EXPECT--
-called foobar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/if/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/if/basic.test
deleted file mode 100644
index c1c3d27..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/if/basic.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-"if" creates a condition
---TEMPLATE--
-{% if a is defined %}
-  {{ a }}
-{% elseif b is defined %}
-  {{ b }}
-{% else %}
-  NOTHING
-{% endif %}
---DATA--
-return array('a' => 'a')
---EXPECT--
-  a
---DATA--
-return array('b' => 'b')
---EXPECT--
-  b
---DATA--
-return array()
---EXPECT--
-  NOTHING
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/if/expression.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/if/expression.test
deleted file mode 100644
index edfb73d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/if/expression.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-"if" takes an expression as a test
---TEMPLATE--
-{% if a < 2 %}
-  A1
-{% elseif a > 10 %}
-  A2
-{% else %}
-  A3
-{% endif %}
---DATA--
-return array('a' => 1)
---EXPECT--
-  A1
---DATA--
-return array('a' => 12)
---EXPECT--
-  A2
---DATA--
-return array('a' => 7)
---EXPECT--
-  A3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/basic.test
deleted file mode 100644
index 8fe1a6c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/basic.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" tag
---TEMPLATE--
-FOO
-{% include "foo.twig" %}
-
-BAR
---TEMPLATE(foo.twig)--
-FOOBAR
---DATA--
-return array()
---EXPECT--
-FOO
-
-FOOBAR
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/expression.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/expression.test
deleted file mode 100644
index eaeeb11..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/expression.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" tag allows expressions for the template to include
---TEMPLATE--
-FOO
-{% include foo %}
-
-BAR
---TEMPLATE(foo.twig)--
-FOOBAR
---DATA--
-return array('foo' => 'foo.twig')
---EXPECT--
-FOO
-
-FOOBAR
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing.test
deleted file mode 100644
index 24aed06..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/ignore_missing.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"include" tag
---TEMPLATE--
-{% include ["foo.twig", "bar.twig"] ignore missing %}
-{% include "foo.twig" ignore missing %}
-{% include "foo.twig" ignore missing with {} %}
-{% include "foo.twig" ignore missing with {} only %}
---DATA--
-return array()
---EXPECT--
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/missing.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/missing.test
deleted file mode 100644
index f25e871..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/missing.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"include" tag
---TEMPLATE--
-{% include "foo.twig" %}
---DATA--
-return array();
---EXCEPTION--
-Twig_Error_Loader: Template "foo.twig" is not defined in "index.twig" at line 2.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/missing_nested.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/missing_nested.test
deleted file mode 100644
index 86c1864..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/missing_nested.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" tag
---TEMPLATE--
-{% extends "base.twig" %}
-
-{% block content %}
-    {{ parent() }}
-{% endblock %}
---TEMPLATE(base.twig)--
-{% block content %}
-    {% include "foo.twig" %}
-{% endblock %}
---DATA--
-return array();
---EXCEPTION--
-Twig_Error_Loader: Template "foo.twig" is not defined in "base.twig" at line 3.
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test
deleted file mode 100644
index 77760a0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/only.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"include" tag accept variables and only
---TEMPLATE--
-{% include "foo.twig" %}
-{% include "foo.twig" only %}
-{% include "foo.twig" with {'foo1': 'bar'} %}
-{% include "foo.twig" with {'foo1': 'bar'} only %}
---TEMPLATE(foo.twig)--
-{% for k, v in _context %}{{ k }},{% endfor %}
---DATA--
-return array('foo' => 'bar')
---EXPECT--
-foo,global,_parent,
-global,_parent,
-foo,global,foo1,_parent,
-foo1,global,_parent,
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/template_instance.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/template_instance.test
deleted file mode 100644
index 6ba064a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/template_instance.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"include" tag accepts Twig_Template instance
---TEMPLATE--
-{% include foo %} FOO
---TEMPLATE(foo.twig)--
-BAR
---DATA--
-return array('foo' => $twig->loadTemplate('foo.twig'))
---EXPECT--
-BAR FOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/templates_as_array.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/templates_as_array.test
deleted file mode 100644
index ab670ee..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/templates_as_array.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"include" tag
---TEMPLATE--
-{% include ["foo.twig", "bar.twig"] %}
-{% include ["bar.twig", "foo.twig"] %}
---TEMPLATE(foo.twig)--
-foo
---DATA--
-return array()
---EXPECT--
-foo
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test
deleted file mode 100644
index 41384ac..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/include/with_variables.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"include" tag accept variables
---TEMPLATE--
-{% include "foo.twig" with {'foo': 'bar'} %}
-{% include "foo.twig" with vars %}
---TEMPLATE(foo.twig)--
-{{ foo }}
---DATA--
-return array('vars' => array('foo' => 'bar'))
---EXPECT--
-bar
-bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/basic.test
deleted file mode 100644
index 0778a4b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/basic.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "foo.twig" %}
-
-{% block content %}
-FOO
-{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}{% endblock %}
---DATA--
-return array()
---EXPECT--
-FOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/block_expr.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/block_expr.test
deleted file mode 100644
index 9a81499..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/block_expr.test
+++ /dev/null
@@ -1,32 +0,0 @@
---TEST--
-block_expr
---TEMPLATE--
-{% extends "base.twig" %}
-
-{% block element -%}
-    Element:
-    {{- parent() -}}
-{% endblock %}
---TEMPLATE(base.twig)--
-{% spaceless %}
-{% block element -%}
-    <div>
-        {%- if item.children is defined %}
-            {%- for item in item.children %}
-                {{- block('element') -}}
-            {% endfor %}
-        {%- endif -%}
-    </div>
-{%- endblock %}
-{% endspaceless %}
---DATA--
-return array(
-    'item' => array(
-        'children' => array(
-            null,
-            null,
-        )
-    )
-)
---EXPECT--
-Element:<div>Element:<div></div>Element:<div></div></div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/block_expr2.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/block_expr2.test
deleted file mode 100644
index 3e868c0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/block_expr2.test
+++ /dev/null
@@ -1,34 +0,0 @@
---TEST--
-block_expr2
---TEMPLATE--
-{% extends "base2.twig" %}
-
-{% block element -%}
-    Element:
-    {{- parent() -}}
-{% endblock %}
---TEMPLATE(base2.twig)--
-{% extends "base.twig" %}
---TEMPLATE(base.twig)--
-{% spaceless %}
-{% block element -%}
-    <div>
-        {%- if item.children is defined %}
-            {%- for item in item.children %}
-                {{- block('element') -}}
-            {% endfor %}
-        {%- endif -%}
-    </div>
-{%- endblock %}
-{% endspaceless %}
---DATA--
-return array(
-    'item' => array(
-        'children' => array(
-            null,
-            null,
-        )
-    )
-)
---EXPECT--
-Element:<div>Element:<div></div>Element:<div></div></div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/conditional.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/conditional.test
deleted file mode 100644
index 8576e77..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/conditional.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends standalone ? foo : 'bar.twig' %}
-
-{% block content %}{{ parent() }}FOO{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}FOO{% endblock %}
---TEMPLATE(bar.twig)--
-{% block content %}BAR{% endblock %}
---DATA--
-return array('foo' => 'foo.twig', 'standalone' => true)
---EXPECT--
-FOOFOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/dynamic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/dynamic.test
deleted file mode 100644
index ee06ddc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/dynamic.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends foo %}
-
-{% block content %}
-FOO
-{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}{% endblock %}
---DATA--
-return array('foo' => 'foo.twig')
---EXPECT--
-FOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/empty.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/empty.test
deleted file mode 100644
index 784f357..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/empty.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "foo.twig" %}
---TEMPLATE(foo.twig)--
-{% block content %}FOO{% endblock %}
---DATA--
-return array()
---EXPECT--
-FOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array.test
deleted file mode 100644
index a1cb1ce..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends ["foo.twig", "bar.twig"] %}
---TEMPLATE(bar.twig)--
-{% block content %}
-foo
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array_with_empty_name.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array_with_empty_name.test
deleted file mode 100644
index acc74f6..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array_with_empty_name.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends ["", "bar.twig"] %}
---TEMPLATE(bar.twig)--
-{% block content %}
-foo
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array_with_null_name.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array_with_null_name.test
deleted file mode 100644
index cfa648d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/extends_as_array_with_null_name.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends [null, "bar.twig"] %}
---TEMPLATE(bar.twig)--
-{% block content %}
-foo
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/multiple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/multiple.test
deleted file mode 100644
index dfc2b6c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/multiple.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "layout.twig" %}{% block content %}{{ parent() }}index {% endblock %}
---TEMPLATE(layout.twig)--
-{% extends "base.twig" %}{% block content %}{{ parent() }}layout {% endblock %}
---TEMPLATE(base.twig)--
-{% block content %}base {% endblock %}
---DATA--
-return array()
---EXPECT--
-base layout index
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/multiple_dynamic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/multiple_dynamic.test
deleted file mode 100644
index 1d3e639..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/multiple_dynamic.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% set foo = 1 %}
-{{ include('parent.twig') }}
-{{ include('parent.twig') }}
-{% set foo = 2 %}
-{{ include('parent.twig') }}
---TEMPLATE(parent.twig)--
-{% extends foo~'_parent.twig' %}{% block content %}{{ parent() }} parent{% endblock %}
---TEMPLATE(1_parent.twig)--
-{% block content %}1{% endblock %}
---TEMPLATE(2_parent.twig)--
-{% block content %}2{% endblock %}
---DATA--
-return array()
---EXPECT--
-1 parent
-
-1 parent
-
-2 parent
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_blocks.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_blocks.test
deleted file mode 100644
index faca925..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_blocks.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-"block" tag
---TEMPLATE--
-{% extends "foo.twig" %}
-
-{% block content %}
-    {% block subcontent %}
-        {% block subsubcontent %}
-            SUBSUBCONTENT
-        {% endblock %}
-    {% endblock %}
-{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}
-    {% block subcontent %}
-        SUBCONTENT
-    {% endblock %}
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-SUBSUBCONTENT
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_blocks_parent_only.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_blocks_parent_only.test
deleted file mode 100644
index 0ad11d0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_blocks_parent_only.test
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-"block" tag
---TEMPLATE--
-{% block content %}
-    CONTENT
-    {%- block subcontent -%}
-        SUBCONTENT
-    {%- endblock -%}
-    ENDCONTENT
-{% endblock %}
---TEMPLATE(foo.twig)--
---DATA--
-return array()
---EXPECT--
-CONTENTSUBCONTENTENDCONTENT
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_inheritance.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_inheritance.test
deleted file mode 100644
index 71e3cdf..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/nested_inheritance.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "layout.twig" %}
-{% block inside %}INSIDE{% endblock inside %}
---TEMPLATE(layout.twig)--
-{% extends "base.twig" %}
-{% block body %}
-    {% block inside '' %}
-{% endblock body %}
---TEMPLATE(base.twig)--
-{% block body '' %}
---DATA--
-return array()
---EXPECT--
-INSIDE
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent.test
deleted file mode 100644
index 4f975db..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "foo.twig" %}
-
-{% block content %}{{ parent() }}FOO{{ parent() }}{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}BAR{% endblock %}
---DATA--
-return array()
---EXPECT--
-BARFOOBAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_change.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_change.test
deleted file mode 100644
index a8bc90c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_change.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends foo ? 'foo.twig' : 'bar.twig' %}
---TEMPLATE(foo.twig)--
-FOO
---TEMPLATE(bar.twig)--
-BAR
---DATA--
-return array('foo' => true)
---EXPECT--
-FOO
---DATA--
-return array('foo' => false)
---EXPECT--
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_in_a_block.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_in_a_block.test
deleted file mode 100644
index c9e86b1..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_in_a_block.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% block content %}
-    {% extends "foo.twig" %}
-{% endblock %}
---EXCEPTION--
-Twig_Error_Syntax: Cannot extend from a block in "index.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_isolation.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_isolation.test
deleted file mode 100644
index 6281671..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_isolation.test
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "base.twig" %}
-{% block content %}{% include "included.twig" %}{% endblock %}
-
-{% block footer %}Footer{% endblock %}
---TEMPLATE(included.twig)--
-{% extends "base.twig" %}
-{% block content %}Included Content{% endblock %}
---TEMPLATE(base.twig)--
-{% block content %}Default Content{% endblock %}
-
-{% block footer %}Default Footer{% endblock %}
---DATA--
-return array()
---EXPECT--
-Included Content
-Default Footer
-Footer
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_nested.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_nested.test
deleted file mode 100644
index 71e7c20..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_nested.test
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-"extends" tag
---TEMPLATE--
-{% extends "foo.twig" %}
-
-{% block content %}
-  {% block inside %}
-    INSIDE OVERRIDDEN
-  {% endblock %}
-
-  BEFORE
-  {{ parent() }}
-  AFTER
-{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}
-  BAR
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-
-INSIDE OVERRIDDEN
-  
-  BEFORE
-    BAR
-
-  AFTER
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_without_extends.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_without_extends.test
deleted file mode 100644
index a9eaa4c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_without_extends.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"parent" tag
---TEMPLATE--
-{% block content %}
-    {{ parent() }}
-{% endblock %}
---EXCEPTION--
-Twig_Error_Syntax: Calling "parent" on a template that does not extend nor "use" another template is forbidden in "index.twig" at line 3
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_without_extends_but_traits.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_without_extends_but_traits.test
deleted file mode 100644
index 63c7305..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/parent_without_extends_but_traits.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"parent" tag
---TEMPLATE--
-{% use 'foo.twig' %}
-
-{% block content %}
-    {{ parent() }}
-{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}BAR{% endblock %}
---DATA--
-return array()
---EXPECT--
-BAR
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/template_instance.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/template_instance.test
deleted file mode 100644
index d1876a5..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/template_instance.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"extends" tag accepts Twig_Template instance
---TEMPLATE--
-{% extends foo %}
-
-{% block content %}
-{{ parent() }}FOO
-{% endblock %}
---TEMPLATE(foo.twig)--
-{% block content %}BAR{% endblock %}
---DATA--
-return array('foo' => $twig->loadTemplate('foo.twig'))
---EXPECT--
-BARFOO
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/use.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/use.test
deleted file mode 100644
index 8f9ece7..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/inheritance/use.test
+++ /dev/null
@@ -1,44 +0,0 @@
---TEST--
-"parent" function
---TEMPLATE--
-{% extends "parent.twig" %}
-
-{% use "use1.twig" %}
-{% use "use2.twig" %}
-
-{% block content_parent %}
-    {{ parent() }}
-{% endblock %}
-
-{% block content_use1 %}
-    {{ parent() }}
-{% endblock %}
-
-{% block content_use2 %}
-    {{ parent() }}
-{% endblock %}
-
-{% block content %}
-    {{ block('content_use1_only') }}
-    {{ block('content_use2_only') }}
-{% endblock %}
---TEMPLATE(parent.twig)--
-{% block content_parent 'content_parent' %}
-{% block content_use1 'content_parent' %}
-{% block content_use2 'content_parent' %}
-{% block content '' %}
---TEMPLATE(use1.twig)--
-{% block content_use1 'content_use1' %}
-{% block content_use2 'content_use1' %}
-{% block content_use1_only 'content_use1_only' %}
---TEMPLATE(use2.twig)--
-{% block content_use2 'content_use2' %}
-{% block content_use2_only 'content_use2_only' %}
---DATA--
-return array()
---EXPECT--
-    content_parent
-    content_use1
-    content_use2
-    content_use1_only
-    content_use2_only
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/basic.test
deleted file mode 100644
index eef0c10..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/basic.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"macro" tag
---TEMPLATE--
-{% import _self as macros %}
-
-{{ macros.input('username') }}
-{{ macros.input('password', null, 'password', 1) }}
-
-{% macro input(name, value, type, size) %}
-  <input type="{{ type|default("text") }}" name="{{ name }}" value="{{ value|e|default('') }}" size="{{ size|default(20) }}">
-{% endmacro %}
---DATA--
-return array()
---EXPECT--
-  <input type="text" name="username" value="" size="20">
-
-  <input type="password" name="password" value="" size="1">
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/endmacro_name.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/endmacro_name.test
deleted file mode 100644
index ae6203b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/endmacro_name.test
+++ /dev/null
@@ -1,16 +0,0 @@
---TEST--
-"macro" tag supports name for endmacro
---TEMPLATE--
-{% import _self as macros %}
-
-{{ macros.foo() }}
-{{ macros.bar() }}
-
-{% macro foo() %}foo{% endmacro %}
-{% macro bar() %}bar{% endmacro bar %}
---DATA--
-return array()
---EXPECT--
-foo
-bar
-
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/external.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/external.test
deleted file mode 100644
index 5cd3dae..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/external.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"macro" tag
---TEMPLATE--
-{% import 'forms.twig' as forms %}
-
-{{ forms.input('username') }}
-{{ forms.input('password', null, 'password', 1) }}
---TEMPLATE(forms.twig)--
-{% macro input(name, value, type, size) %}
-  <input type="{{ type|default("text") }}" name="{{ name }}" value="{{ value|e|default('') }}" size="{{ size|default(20) }}">
-{% endmacro %}
---DATA--
-return array()
---EXPECT--
-  <input type="text" name="username" value="" size="20">
-
-  <input type="password" name="password" value="" size="1">
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from.test
deleted file mode 100644
index 205f591..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from.test
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-"macro" tag
---TEMPLATE--
-{% from 'forms.twig' import foo %}
-{% from 'forms.twig' import foo as foobar, bar %}
-
-{{ foo('foo') }}
-{{ foobar('foo') }}
-{{ bar('foo') }}
---TEMPLATE(forms.twig)--
-{% macro foo(name) %}foo{{ name }}{% endmacro %}
-{% macro bar(name) %}bar{{ name }}{% endmacro %}
---DATA--
-return array()
---EXPECT--
-foofoo
-foofoo
-barfoo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_with_reserved_name.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_with_reserved_name.test
deleted file mode 100644
index 6df4f5d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/from_with_reserved_name.test
+++ /dev/null
@@ -1,9 +0,0 @@
---TEST--
-"from" tag with reserved name
---TEMPLATE--
-{% from 'forms.twig' import templateName %}
---TEMPLATE(forms.twig)--
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: "templateName" cannot be an imported macro as it is a reserved keyword in "index.twig" at line 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/global.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/global.test
deleted file mode 100644
index 6b37176..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/global.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"macro" tag
---TEMPLATE--
-{% from 'forms.twig' import foo %}
-
-{{ foo('foo') }}
-{{ foo() }}
---TEMPLATE(forms.twig)--
-{% macro foo(name) %}{{ name|default('foo') }}{{ global }}{% endmacro %}
---DATA--
-return array()
---EXPECT--
-fooglobal
-fooglobal
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_with_reserved_nam.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_with_reserved_nam.test
deleted file mode 100644
index e5aa749..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/import_with_reserved_nam.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-"from" tag with reserved name
---TEMPLATE--
-{% import 'forms.twig' as macros %}
-
-{{ macros.parent() }}
---TEMPLATE(forms.twig)--
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: "parent" cannot be called as macro as it is a reserved keyword in "index.twig" at line 4
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/reserved_name.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/reserved_name.test
deleted file mode 100644
index a2dde5a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/reserved_name.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"macro" tag with reserved name
---TEMPLATE--
-{% macro parent(arg1, arg2) %}
-    parent
-{% endmacro %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: "parent" cannot be used as a macro name as it is a reserved keyword in "index.twig" at line 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/self_import.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/self_import.test
deleted file mode 100644
index 17756cb..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/self_import.test
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-"macro" tag
---TEMPLATE--
-{% import _self as forms %}
-
-{{ forms.input('username') }}
-{{ forms.input('password', null, 'password', 1) }}
-
-{% macro input(name, value, type, size) %}
-  <input type="{{ type|default("text") }}" name="{{ name }}" value="{{ value|e|default('') }}" size="{{ size|default(20) }}">
-{% endmacro %}
---DATA--
-return array()
---EXPECT--
-  <input type="text" name="username" value="" size="20">
-
-  <input type="password" name="password" value="" size="1">
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/special_chars.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/special_chars.test
deleted file mode 100644
index 3721770..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/special_chars.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"§" as a macro name
---TEMPLATE--
-{% import _self as macros %}
-
-{{ macros.§('foo') }}
-
-{% macro §(foo) %}
-  §{{ foo }}§
-{% endmacro %}
---DATA--
-return array()
---EXPECT--
-§foo§
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/super_globals.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/super_globals.test
deleted file mode 100644
index 5679462..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/macro/super_globals.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-Super globals as macro arguments
---TEMPLATE--
-{% import _self as macros %}
-
-{{ macros.foo('foo') }}
-
-{% macro foo(GET) %}
-    {{ GET }}
-{% endmacro %}
---DATA--
-return array()
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/basic.test
deleted file mode 100644
index 0445e85..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/basic.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"raw" tag
---TEMPLATE--
-{% raw %}
-{{ foo }}
-{% endraw %}
---DATA--
-return array()
---EXPECT--
-{{ foo }}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/mixed_usage_with_raw.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/mixed_usage_with_raw.test
deleted file mode 100644
index 2fd9fb2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/mixed_usage_with_raw.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"raw" tag
---TEMPLATE--
-{% raw %}
-{{ foo }}
-{% endverbatim %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: Unexpected end of file: Unclosed "raw" block in "index.twig" at line 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/whitespace_control.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/whitespace_control.test
deleted file mode 100644
index 352bb18..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/raw/whitespace_control.test
+++ /dev/null
@@ -1,56 +0,0 @@
---TEST--
-"raw" tag
---TEMPLATE--
-1***
-
-{%- raw %}
-    {{ 'bla' }}
-{% endraw %}
-
-1***
-2***
-
-{%- raw -%}
-    {{ 'bla' }}
-{% endraw %}
-
-2***
-3***
-
-{%- raw -%}
-    {{ 'bla' }}
-{% endraw -%}
-
-3***
-4***
-
-{%- raw -%}
-    {{ 'bla' }}
-{%- endraw %}
-
-4***
-5***
-
-{%- raw -%}
-    {{ 'bla' }}
-{%- endraw -%}
-
-5***
---DATA--
-return array()
---EXPECT--
-1***
-    {{ 'bla' }}
-
-
-1***
-2***{{ 'bla' }}
-
-
-2***
-3***{{ 'bla' }}
-3***
-4***{{ 'bla' }}
-
-4***
-5***{{ 'bla' }}5***
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/not_valid1.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/not_valid1.test
deleted file mode 100644
index 683c59a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/not_valid1.test
+++ /dev/null
@@ -1,11 +0,0 @@
---TEST--
-sandbox tag
---TEMPLATE--
-{%- sandbox %}
-    {%- include "foo.twig" %}
-    a
-{%- endsandbox %}
---TEMPLATE(foo.twig)--
-foo
---EXCEPTION--
-Twig_Error_Syntax: Only "include" tags are allowed within a "sandbox" section in "index.twig" at line 4
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/not_valid2.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/not_valid2.test
deleted file mode 100644
index 3dcfa88..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/not_valid2.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-sandbox tag
---TEMPLATE--
-{%- sandbox %}
-    {%- include "foo.twig" %}
-
-    {% if 1 %}
-        {%- include "foo.twig" %}
-    {% endif %}
-{%- endsandbox %}
---TEMPLATE(foo.twig)--
-foo
---EXCEPTION--
-Twig_Error_Syntax: Only "include" tags are allowed within a "sandbox" section in "index.twig" at line 5
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/simple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/simple.test
deleted file mode 100644
index de20f3d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/sandbox/simple.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-sandbox tag
---TEMPLATE--
-{%- sandbox %}
-    {%- include "foo.twig" %}
-{%- endsandbox %}
-
-{%- sandbox %}
-    {%- include "foo.twig" %}
-    {%- include "foo.twig" %}
-{%- endsandbox %}
-
-{%- sandbox %}{% include "foo.twig" %}{% endsandbox %}
---TEMPLATE(foo.twig)--
-foo
---DATA--
-return array()
---EXPECT--
-foo
-foo
-foo
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/basic.test
deleted file mode 100644
index a5a9f83..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/basic.test
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-"set" tag
---TEMPLATE--
-{% set foo = 'foo' %}
-{% set bar = 'foo<br />' %}
-
-{{ foo }}
-{{ bar }}
-
-{% set foo, bar = 'foo', 'bar' %}
-
-{{ foo }}{{ bar }}
---DATA--
-return array()
---EXPECT--
-foo
-foo&lt;br /&gt;
-
-
-foobar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture-empty.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture-empty.test
deleted file mode 100644
index ec657f0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture-empty.test
+++ /dev/null
@@ -1,9 +0,0 @@
---TEST--
-"set" tag block empty capture
---TEMPLATE--
-{% set foo %}{% endset %}
-
-{% if foo %}FAIL{% endif %}
---DATA--
-return array()
---EXPECT--
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture.test
deleted file mode 100644
index f156a1a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/capture.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"set" tag block capture
---TEMPLATE--
-{% set foo %}f<br />o<br />o{% endset %}
-
-{{ foo }}
---DATA--
-return array()
---EXPECT--
-f<br />o<br />o
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/expression.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/expression.test
deleted file mode 100644
index 8ff434a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/set/expression.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"set" tag
---TEMPLATE--
-{% set foo, bar = 'foo' ~ 'bar', 'bar' ~ 'foo' %}
-
-{{ foo }}
-{{ bar }}
---DATA--
-return array()
---EXPECT--
-foobar
-barfoo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/spaceless/simple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/spaceless/simple.test
deleted file mode 100644
index dd06dec..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/spaceless/simple.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"spaceless" tag removes whites between HTML tags
---TEMPLATE--
-{% spaceless %}
-
-    <div>   <div>   foo   </div>   </div>
-
-{% endspaceless %}
---DATA--
-return array()
---EXPECT--
-<div><div>   foo   </div></div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/special_chars.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/special_chars.test
deleted file mode 100644
index 789b4ba..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/special_chars.test
+++ /dev/null
@@ -1,8 +0,0 @@
---TEST--
-"§" custom tag
---TEMPLATE--
-{% § %}
---DATA--
-return array()
---EXPECT--
-§
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/trim_block.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/trim_block.test
deleted file mode 100644
index 1d2273f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/trim_block.test
+++ /dev/null
@@ -1,74 +0,0 @@
---TEST--
-Whitespace trimming on tags.
---TEMPLATE--
-{{ 5 * '{#-'|length }}
-{{ '{{-'|length * 5 + '{%-'|length }}
-
-Trim on control tag:
-{% for i in range(1, 9) -%}
-	{{ i }}
-{%- endfor %}
-
-
-Trim on output tag:
-{% for i in range(1, 9) %}
-	{{- i -}}
-{% endfor %}
-
-
-Trim comments:
-      
-{#- Invisible -#}
-       
-After the comment.
-
-Trim leading space:
-{% if leading %}
-
-		{{- leading }}
-{% endif %}
-
-{%- if leading %}
-	{{- leading }}
-
-{%- endif %}
-
-
-Trim trailing space:
-{% if trailing -%}          
-	{{ trailing -}}
-
-{% endif -%}
-
-Combined:
-
-{%- if both -%}
-<ul>
-	<li>    {{- both -}}   </li>
-</ul>
-
-{%- endif -%}
-
-end
---DATA--
-return array('leading' => 'leading space', 'trailing' => 'trailing space', 'both' => 'both')
---EXPECT--
-15
-18
-
-Trim on control tag:
-123456789
-
-Trim on output tag:
-123456789
-
-Trim comments:After the comment.
-
-Trim leading space:
-leading space
-leading space
-
-Trim trailing space:
-trailing spaceCombined:<ul>
-	<li>both</li>
-</ul>end
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/aliases.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/aliases.test
deleted file mode 100644
index f887006..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/aliases.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "blocks.twig" with content as foo %}
-
-{{ block('foo') }}
---TEMPLATE(blocks.twig)--
-{% block content 'foo' %}
---DATA--
-return array()
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/basic.test
deleted file mode 100644
index 7364d76..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/basic.test
+++ /dev/null
@@ -1,12 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "blocks.twig" %}
-
-{{ block('content') }}
---TEMPLATE(blocks.twig)--
-{% block content 'foo' %}
---DATA--
-return array()
---EXPECT--
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/deep.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/deep.test
deleted file mode 100644
index b551a1e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/deep.test
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "foo.twig" %}
-
-{{ block('content') }}
-{{ block('foo') }}
-{{ block('bar') }}
---TEMPLATE(foo.twig)--
-{% use "bar.twig" %}
-
-{% block content 'foo' %}
-{% block foo 'foo' %}
---TEMPLATE(bar.twig)--
-{% block content 'bar' %}
-{% block bar 'bar' %}
---DATA--
-return array()
---EXPECT--
-foo
-foo
-bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/deep_empty.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/deep_empty.test
deleted file mode 100644
index 05cca68..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/deep_empty.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "foo.twig" %}
---TEMPLATE(foo.twig)--
-{% use "bar.twig" %}
---TEMPLATE(bar.twig)--
---DATA--
-return array()
---EXPECT--
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/inheritance.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/inheritance.test
deleted file mode 100644
index 6368b08..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/inheritance.test
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "parent.twig" %}
-
-{{ block('container') }}
---TEMPLATE(parent.twig)--
-{% use "ancestor.twig" %}
-
-{% block sub_container %}
-    <div class="overriden_sub_container">overriden sub_container</div>
-{% endblock %}
---TEMPLATE(ancestor.twig)--
-{% block container %}
-    <div class="container">{{ block('sub_container') }}</div>
-{% endblock %}
-
-{% block sub_container %}
-    <div class="sub_container">sub_container</div>
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-<div class="container">    <div class="overriden_sub_container">overriden sub_container</div>
-</div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/inheritance2.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/inheritance2.test
deleted file mode 100644
index 114e301..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/inheritance2.test
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "ancestor.twig" %}
-{% use "parent.twig" %}
-
-{{ block('container') }}
---TEMPLATE(parent.twig)--
-{% block sub_container %}
-    <div class="overriden_sub_container">overriden sub_container</div>
-{% endblock %}
---TEMPLATE(ancestor.twig)--
-{% block container %}
-    <div class="container">{{ block('sub_container') }}</div>
-{% endblock %}
-
-{% block sub_container %}
-    <div class="sub_container">sub_container</div>
-{% endblock %}
---DATA--
-return array()
---EXPECT--
-<div class="container">    <div class="overriden_sub_container">overriden sub_container</div>
-</div>
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple.test
deleted file mode 100644
index 198be0c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple.test
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "foo.twig" %}
-{% use "bar.twig" %}
-
-{{ block('content') }}
-{{ block('foo') }}
-{{ block('bar') }}
---TEMPLATE(foo.twig)--
-{% block content 'foo' %}
-{% block foo 'foo' %}
---TEMPLATE(bar.twig)--
-{% block content 'bar' %}
-{% block bar 'bar' %}
---DATA--
-return array()
---EXPECT--
-bar
-foo
-bar
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple_aliases.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple_aliases.test
deleted file mode 100644
index 8de871a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple_aliases.test
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use "foo.twig" with content as foo_content %}
-{% use "bar.twig" %}
-
-{{ block('content') }}
-{{ block('foo') }}
-{{ block('bar') }}
-{{ block('foo_content') }}
---TEMPLATE(foo.twig)--
-{% block content 'foo' %}
-{% block foo 'foo' %}
---TEMPLATE(bar.twig)--
-{% block content 'bar' %}
-{% block bar 'bar' %}
---DATA--
-return array()
---EXPECT--
-bar
-foo
-bar
-foo
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block.test
deleted file mode 100644
index 59db23d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block.test
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use 'file2.html.twig' with foobar as base_base_foobar %}
-{% block foobar %}
-    {{- block('base_base_foobar') -}}
-    Content of block (second override)
-{% endblock foobar %}
---TEMPLATE(file2.html.twig)--
-{% use 'file1.html.twig' with foobar as base_foobar %}
-{% block foobar %}
-    {{- block('base_foobar') -}}
-    Content of block (first override)
-{% endblock foobar %}
---TEMPLATE(file1.html.twig)--
-{% block foobar -%}
-    Content of block
-{% endblock foobar %}
---DATA--
-return array()
---EXPECT--
-Content of block
-Content of block (first override)
-Content of block (second override)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block2.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block2.test
deleted file mode 100644
index d3f302d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block2.test
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use 'file2.html.twig'%}
-{% block foobar %}
-    {{- parent() -}}
-    Content of block (second override)
-{% endblock foobar %}
---TEMPLATE(file2.html.twig)--
-{% use 'file1.html.twig' %}
-{% block foobar %}
-    {{- parent() -}}
-    Content of block (first override)
-{% endblock foobar %}
---TEMPLATE(file1.html.twig)--
-{% block foobar -%}
-    Content of block
-{% endblock foobar %}
---DATA--
-return array()
---EXPECT--
-Content of block
-Content of block (first override)
-Content of block (second override)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block3.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block3.test
deleted file mode 100644
index 95b55a4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block3.test
+++ /dev/null
@@ -1,38 +0,0 @@
---TEST--
-"use" tag
---TEMPLATE--
-{% use 'file2.html.twig' %}
-{% use 'file1.html.twig' with foo %}
-{% block foo %}
-    {{- parent() -}}
-    Content of foo (second override)
-{% endblock foo %}
-{% block bar %}
-    {{- parent() -}}
-    Content of bar (second override)
-{% endblock bar %}
---TEMPLATE(file2.html.twig)--
-{% use 'file1.html.twig' %}
-{% block foo %}
-    {{- parent() -}}
-    Content of foo (first override)
-{% endblock foo %}
-{% block bar %}
-    {{- parent() -}}
-    Content of bar (first override)
-{% endblock bar %}
---TEMPLATE(file1.html.twig)--
-{% block foo -%}
-    Content of foo
-{% endblock foo %}
-{% block bar -%}
-    Content of bar
-{% endblock bar %}
---DATA--
-return array()
---EXPECT--
-Content of foo
-Content of foo (first override)
-Content of foo (second override)
-Content of bar
-Content of bar (second override)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/basic.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/basic.test
deleted file mode 100644
index a95be55..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/basic.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"verbatim" tag
---TEMPLATE--
-{% verbatim %}
-{{ foo }}
-{% endverbatim %}
---DATA--
-return array()
---EXPECT--
-{{ foo }}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/mixed_usage_with_raw.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/mixed_usage_with_raw.test
deleted file mode 100644
index 941dddc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/mixed_usage_with_raw.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"verbatim" tag
---TEMPLATE--
-{% verbatim %}
-{{ foo }}
-{% endraw %}
---DATA--
-return array()
---EXCEPTION--
-Twig_Error_Syntax: Unexpected end of file: Unclosed "verbatim" block in "index.twig" at line 2
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test
deleted file mode 100644
index eb61044..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test
+++ /dev/null
@@ -1,56 +0,0 @@
---TEST--
-"verbatim" tag
---TEMPLATE--
-1***
-
-{%- verbatim %}
-    {{ 'bla' }}
-{% endverbatim %}
-
-1***
-2***
-
-{%- verbatim -%}
-    {{ 'bla' }}
-{% endverbatim %}
-
-2***
-3***
-
-{%- verbatim -%}
-    {{ 'bla' }}
-{% endverbatim -%}
-
-3***
-4***
-
-{%- verbatim -%}
-    {{ 'bla' }}
-{%- endverbatim %}
-
-4***
-5***
-
-{%- verbatim -%}
-    {{ 'bla' }}
-{%- endverbatim -%}
-
-5***
---DATA--
-return array()
---EXPECT--
-1***
-    {{ 'bla' }}
-
-
-1***
-2***{{ 'bla' }}
-
-
-2***
-3***{{ 'bla' }}
-3***
-4***{{ 'bla' }}
-
-4***
-5***{{ 'bla' }}5***
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/array.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/array.test
deleted file mode 100644
index 1429d37..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/array.test
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-array index test
---TEMPLATE--
-{% for key, value in days %}
-{{ key }}
-{% endfor %}
---DATA--
-return array('days' => array(
-    1  => array('money' => 9),
-    2  => array('money' => 21),
-    3  => array('money' => 38),
-    4  => array('money' => 6),
-    18 => array('money' => 6),
-    19 => array('money' => 3),
-    31 => array('money' => 11),
-));
---EXPECT--
-1
-2
-3
-4
-18
-19
-31
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/constant.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/constant.test
deleted file mode 100644
index 60218ac..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/constant.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"const" test
---TEMPLATE--
-{{ 8 is constant('E_NOTICE') ? 'ok' : 'no' }}
-{{ 'bar' is constant('TwigTestFoo::BAR_NAME') ? 'ok' : 'no' }}
-{{ value is constant('TwigTestFoo::BAR_NAME') ? 'ok' : 'no' }}
-{{ 2 is constant('ARRAY_AS_PROPS', object) ? 'ok' : 'no' }}
---DATA--
-return array('value' => 'bar', 'object' => new ArrayObject(array('hi')));
---EXPECT--
-ok
-ok
-ok
-ok
\ No newline at end of file
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined.test
deleted file mode 100644
index cbfe03d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/defined.test
+++ /dev/null
@@ -1,108 +0,0 @@
---TEST--
-"defined" test
---TEMPLATE--
-{{ definedVar                     is     defined ? 'ok' : 'ko' }}
-{{ definedVar                     is not defined ? 'ko' : 'ok' }}
-{{ undefinedVar                   is     defined ? 'ko' : 'ok' }}
-{{ undefinedVar                   is not defined ? 'ok' : 'ko' }}
-{{ zeroVar                        is     defined ? 'ok' : 'ko' }}
-{{ nullVar                        is     defined ? 'ok' : 'ko' }}
-{{ nested.definedVar              is     defined ? 'ok' : 'ko' }}
-{{ nested['definedVar']           is     defined ? 'ok' : 'ko' }}
-{{ nested.definedVar              is not defined ? 'ko' : 'ok' }}
-{{ nested.undefinedVar            is     defined ? 'ko' : 'ok' }}
-{{ nested['undefinedVar']         is     defined ? 'ko' : 'ok' }}
-{{ nested.undefinedVar            is not defined ? 'ok' : 'ko' }}
-{{ nested.zeroVar                 is     defined ? 'ok' : 'ko' }}
-{{ nested.nullVar                 is     defined ? 'ok' : 'ko' }}
-{{ nested.definedArray.0          is     defined ? 'ok' : 'ko' }}
-{{ nested['definedArray'][0]      is     defined ? 'ok' : 'ko' }}
-{{ object.foo                     is     defined ? 'ok' : 'ko' }}
-{{ object.undefinedMethod         is     defined ? 'ko' : 'ok' }}
-{{ object.getFoo()                is     defined ? 'ok' : 'ko' }}
-{{ object.getFoo('a')             is     defined ? 'ok' : 'ko' }}
-{{ object.undefinedMethod()       is     defined ? 'ko' : 'ok' }}
-{{ object.undefinedMethod('a')    is     defined ? 'ko' : 'ok' }}
-{{ object.self.foo                is     defined ? 'ok' : 'ko' }}
-{{ object.self.undefinedMethod    is     defined ? 'ko' : 'ok' }}
-{{ object.undefinedMethod.self    is     defined ? 'ko' : 'ok' }}
---DATA--
-return array(
-    'definedVar' => 'defined',
-    'zeroVar'    => 0,
-    'nullVar'    => null,
-    'nested'      => array(
-        'definedVar'   => 'defined',
-        'zeroVar'      => 0,
-        'nullVar'      => null,
-        'definedArray' => array(0),
-    ),
-    'object' => new TwigTestFoo(),
-);
---EXPECT--
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
---DATA--
-return array(
-    'definedVar' => 'defined',
-    'zeroVar'    => 0,
-    'nullVar'    => null,
-    'nested'      => array(
-        'definedVar'   => 'defined',
-        'zeroVar'      => 0,
-        'nullVar'      => null,
-        'definedArray' => array(0),
-    ),
-    'object' => new TwigTestFoo(),
-);
---CONFIG--
-return array('strict_variables' => false)
---EXPECT--
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
-ok
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/empty.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/empty.test
deleted file mode 100644
index a776d03..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/empty.test
+++ /dev/null
@@ -1,45 +0,0 @@
---TEST--
-"empty" test
---TEMPLATE--
-{{ foo is empty ? 'ok' : 'ko' }}
-{{ bar is empty ? 'ok' : 'ko' }}
-{{ foobar is empty ? 'ok' : 'ko' }}
-{{ array is empty ? 'ok' : 'ko' }}
-{{ zero is empty ? 'ok' : 'ko' }}
-{{ string is empty ? 'ok' : 'ko' }}
-{{ countable_empty is empty ? 'ok' : 'ko' }}
-{{ countable_not_empty is empty ? 'ok' : 'ko' }}
-{{ markup_empty is empty ? 'ok' : 'ko' }}
-{{ markup_not_empty is empty ? 'ok' : 'ko' }}
---DATA--
-
-class CountableStub implements Countable
-{
-    private $items;
-
-    public function __construct(array $items)
-    {
-        $this->items = $items;
-    }
-
-    public function count()
-    {
-        return count($this->items);
-    }
-}
-return array(
-    'foo' => '', 'bar' => null, 'foobar' => false, 'array' => array(), 'zero' => 0, 'string' => '0',
-    'countable_empty' => new CountableStub(array()), 'countable_not_empty' => new CountableStub(array(1, 2)),
-    'markup_empty' => new Twig_Markup('', 'UTF-8'), 'markup_not_empty' => new Twig_Markup('test', 'UTF-8'),
-);
---EXPECT--
-ok
-ok
-ok
-ok
-ko
-ko
-ok
-ko
-ok
-ko
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/even.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/even.test
deleted file mode 100644
index 695b4c2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/even.test
+++ /dev/null
@@ -1,14 +0,0 @@
---TEST--
-"even" test
---TEMPLATE--
-{{ 1 is even ? 'ko' : 'ok' }}
-{{ 2 is even ? 'ok' : 'ko' }}
-{{ 1 is not even ? 'ok' : 'ko' }}
-{{ 2 is not even ? 'ko' : 'ok' }}
---DATA--
-return array()
---EXPECT--
-ok
-ok
-ok
-ok
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/in.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/in.test
deleted file mode 100644
index 545f51f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/in.test
+++ /dev/null
@@ -1,128 +0,0 @@
---TEST--
-Twig supports the in operator
---TEMPLATE--
-{% if bar in foo %}
-TRUE
-{% endif %}
-{% if not (bar in foo) %}
-{% else %}
-TRUE
-{% endif %}
-{% if bar not in foo %}
-{% else %}
-TRUE
-{% endif %}
-{% if 'a' in bar %}
-TRUE
-{% endif %}
-{% if 'c' not in bar %}
-TRUE
-{% endif %}
-{% if '' in bar %}
-TRUE
-{% endif %}
-{% if '' in '' %}
-TRUE
-{% endif %}
-{% if '0' not in '' %}
-TRUE
-{% endif %}
-{% if 'a' not in '0' %}
-TRUE
-{% endif %}
-{% if '0' in '0' %}
-TRUE
-{% endif %}
-
-{{ false in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ true in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ '0' in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ '' in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ 0 in ['', 1] ? 'TRUE' : 'FALSE' }}
-
-{{ '' in 'foo' ? 'TRUE' : 'FALSE' }}
-{{ 0 in 'foo' ? 'TRUE' : 'FALSE' }}
-{{ false in 'foo' ? 'TRUE' : 'FALSE' }}
-{{ false in '100' ? 'TRUE' : 'FALSE' }}
-{{ true in '100' ? 'TRUE' : 'FALSE' }}
-
-{{ [] in [true, false] ? 'TRUE' : 'FALSE' }}
-{{ [] in [true, ''] ? 'TRUE' : 'FALSE' }}
-{{ [] in [true, []] ? 'TRUE' : 'FALSE' }}
-
-{{ resource ? 'TRUE' : 'FALSE' }}
-{{ resource in 'foo'~resource ? 'TRUE' : 'FALSE' }}
-{{ object in 'stdClass' ? 'TRUE' : 'FALSE' }}
-{{ [] in 'Array' ? 'TRUE' : 'FALSE' }}
-{{ dir_object in 'foo'~dir_object ? 'TRUE' : 'FALSE' }}
-
-{{ ''~resource in resource ? 'TRUE' : 'FALSE' }}
-{{ 'stdClass' in object ? 'TRUE' : 'FALSE' }}
-{{ 'Array' in [] ? 'TRUE' : 'FALSE' }}
-{{ ''~dir_object in dir_object ? 'TRUE' : 'FALSE' }}
-
-{{ resource in [''~resource] ? 'TRUE' : 'FALSE' }}
-{{ resource in [resource + 1 - 1] ? 'TRUE' : 'FALSE' }}
-{{ dir_object in [''~dir_object] ? 'TRUE' : 'FALSE' }}
-
-{{ 5 in 125 ? 'TRUE' : 'FALSE' }}
-{{ 5 in '125' ? 'TRUE' : 'FALSE' }}
-{{ '5' in 125 ? 'TRUE' : 'FALSE' }}
-{{ '5' in '125' ? 'TRUE' : 'FALSE' }}
-
-{{ 5.5 in 125.5 ? 'TRUE' : 'FALSE' }}
-{{ 5.5 in '125.5' ? 'TRUE' : 'FALSE' }}
-{{ '5.5' in 125.5 ? 'TRUE' : 'FALSE' }}
---DATA--
-return array('bar' => 'bar', 'foo' => array('bar' => 'bar'), 'dir_object' => new SplFileInfo(dirname(__FILE__)), 'object' => new stdClass(), 'resource' => opendir(dirname(__FILE__)))
---EXPECT--
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-
-TRUE
-TRUE
-TRUE
-TRUE
-TRUE
-
-TRUE
-FALSE
-FALSE
-FALSE
-FALSE
-
-TRUE
-FALSE
-TRUE
-
-TRUE
-FALSE
-FALSE
-FALSE
-FALSE
-
-FALSE
-FALSE
-FALSE
-FALSE
-
-FALSE
-FALSE
-FALSE
-
-FALSE
-TRUE
-FALSE
-TRUE
-
-FALSE
-TRUE
-FALSE
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/in_with_objects.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/in_with_objects.test
deleted file mode 100644
index 8e08061..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/in_with_objects.test
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-Twig supports the in operator when using objects
---TEMPLATE--
-{% if object in object_list %}
-TRUE
-{% endif %}
---DATA--
-$foo = new TwigTestFoo();
-$foo1 = new TwigTestFoo();
-
-$foo->position = $foo1;
-$foo1->position = $foo;
-
-return array(
-    'object'      => $foo,
-    'object_list' => array($foo1, $foo),
-);
---EXPECT--
-TRUE
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/iterable.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/iterable.test
deleted file mode 100644
index ec52550..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/iterable.test
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-"iterable" test
---TEMPLATE--
-{{ foo is iterable ? 'ok' : 'ko' }}
-{{ traversable is iterable ? 'ok' : 'ko' }}
-{{ obj is iterable ? 'ok' : 'ko' }}
-{{ val is iterable ? 'ok' : 'ko' }}
---DATA--
-return array(
-    'foo' => array(),
-    'traversable' => new ArrayIterator(array()),
-    'obj' => new stdClass(),
-    'val' => 'test',
-);
---EXPECT--
-ok
-ok
-ko
-ko
\ No newline at end of file
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/odd.test b/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/odd.test
deleted file mode 100644
index 1b8311e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Fixtures/tests/odd.test
+++ /dev/null
@@ -1,10 +0,0 @@
---TEST--
-"odd" test
---TEMPLATE--
-{{ 1 is odd ? 'ok' : 'ko' }}
-{{ 2 is odd ? 'ko' : 'ok' }}
---DATA--
-return array()
---EXPECT--
-ok
-ok
\ No newline at end of file
diff --git a/core/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php b/core/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php
deleted file mode 100644
index 1908bcd..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-// This function is defined to check that escaping strategies
-// like html works even if a function with the same name is defined.
-function html()
-{
-    return 'foo';
-}
-
-class Twig_Tests_IntegrationTest extends Twig_Test_IntegrationTestCase
-{
-    public function getExtensions()
-    {
-        $policy = new Twig_Sandbox_SecurityPolicy(array(), array(), array(), array(), array());
-
-        return array(
-            new Twig_Extension_Debug(),
-            new Twig_Extension_Sandbox($policy, false),
-            new Twig_Extension_StringLoader(),
-            new TwigTestExtension(),
-        );
-    }
-
-    public function getFixturesDir()
-    {
-        return dirname(__FILE__).'/Fixtures/';
-    }
-}
-
-function test_foo($value = 'foo')
-{
-    return $value;
-}
-
-class TwigTestFoo implements Iterator
-{
-    const BAR_NAME = 'bar';
-
-    public $position = 0;
-    public $array = array(1, 2);
-
-    public function bar($param1 = null, $param2 = null)
-    {
-        return 'bar'.($param1 ? '_'.$param1 : '').($param2 ? '-'.$param2 : '');
-    }
-
-    public function getFoo()
-    {
-        return 'foo';
-    }
-
-    public function getSelf()
-    {
-        return $this;
-    }
-
-    public function is()
-    {
-        return 'is';
-    }
-
-    public function in()
-    {
-        return 'in';
-    }
-
-    public function not()
-    {
-        return 'not';
-    }
-
-    public function strToLower($value)
-    {
-        return strtolower($value);
-    }
-
-    public function rewind()
-    {
-        $this->position = 0;
-    }
-
-    public function current()
-    {
-        return $this->array[$this->position];
-    }
-
-    public function key()
-    {
-        return 'a';
-    }
-
-    public function next()
-    {
-        ++$this->position;
-    }
-
-    public function valid()
-    {
-        return isset($this->array[$this->position]);
-    }
-}
-
-class TwigTestTokenParser_§ extends Twig_TokenParser
-{
-    public function parse(Twig_Token $token)
-    {
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node_Print(new Twig_Node_Expression_Constant('§', -1), -1);
-    }
-
-    public function getTag()
-    {
-        return '§';
-    }
-}
-
-class TwigTestExtension extends Twig_Extension
-{
-    public function getTokenParsers()
-    {
-        return array(
-            new TwigTestTokenParser_§(),
-        );
-    }
-
-    public function getFilters()
-    {
-        return array(
-            new Twig_SimpleFilter('§', array($this, '§Filter')),
-            new Twig_SimpleFilter('escape_and_nl2br', array($this, 'escape_and_nl2br'), array('needs_environment' => true, 'is_safe' => array('html'))),
-            new Twig_SimpleFilter('nl2br', array($this, 'nl2br'), array('pre_escape' => 'html', 'is_safe' => array('html'))),
-            new Twig_SimpleFilter('escape_something', array($this, 'escape_something'), array('is_safe' => array('something'))),
-            new Twig_SimpleFilter('preserves_safety', array($this, 'preserves_safety'), array('preserves_safety' => array('html'))),
-            new Twig_SimpleFilter('*_path', array($this, 'dynamic_path')),
-            new Twig_SimpleFilter('*_foo_*_bar', array($this, 'dynamic_foo')),
-        );
-    }
-
-    public function getFunctions()
-    {
-        return array(
-            new Twig_SimpleFunction('§', array($this, '§Function')),
-            new Twig_SimpleFunction('safe_br', array($this, 'br'), array('is_safe' => array('html'))),
-            new Twig_SimpleFunction('unsafe_br', array($this, 'br')),
-            new Twig_SimpleFunction('*_path', array($this, 'dynamic_path')),
-            new Twig_SimpleFunction('*_foo_*_bar', array($this, 'dynamic_foo')),
-        );
-    }
-
-    public function getTests()
-    {
-        return array(
-            new Twig_SimpleTest('multi word', array($this, 'is_multi_word')),
-        );
-    }
-
-    public function §Filter($value)
-    {
-        return "§{$value}§";
-    }
-
-    public function §Function($value)
-    {
-        return "§{$value}§";
-    }
-
-    /**
-     * nl2br which also escapes, for testing escaper filters.
-     */
-    public function escape_and_nl2br($env, $value, $sep = '<br />')
-    {
-        return $this->nl2br(twig_escape_filter($env, $value, 'html'), $sep);
-    }
-
-    /**
-     * nl2br only, for testing filters with pre_escape.
-     */
-    public function nl2br($value, $sep = '<br />')
-    {
-        // not secure if $value contains html tags (not only entities)
-        // don't use
-        return str_replace("\n", "$sep\n", $value);
-    }
-
-    public function dynamic_path($element, $item)
-    {
-        return $element.'/'.$item;
-    }
-
-    public function dynamic_foo($foo, $bar, $item)
-    {
-        return $foo.'/'.$bar.'/'.$item;
-    }
-
-    public function escape_something($value)
-    {
-        return strtoupper($value);
-    }
-
-    public function preserves_safety($value)
-    {
-        return strtoupper($value);
-    }
-
-    public function br()
-    {
-        return '<br />';
-    }
-
-    public function is_multi_word($value)
-    {
-        return false !== strpos($value, ' ');
-    }
-
-    public function getName()
-    {
-        return 'integration_test';
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php b/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php
deleted file mode 100644
index bf602eb..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/LexerTest.php
+++ /dev/null
@@ -1,300 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Tests_LexerTest extends PHPUnit_Framework_TestCase
-{
-    public function testNameLabelForTag()
-    {
-        $template = '{% § %}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-
-        $stream->expect(Twig_Token::BLOCK_START_TYPE);
-        $this->assertSame('§', $stream->expect(Twig_Token::NAME_TYPE)->getValue());
-    }
-
-    public function testNameLabelForFunction()
-    {
-        $template = '{{ §() }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-
-        $stream->expect(Twig_Token::VAR_START_TYPE);
-        $this->assertSame('§', $stream->expect(Twig_Token::NAME_TYPE)->getValue());
-    }
-
-    public function testBracketsNesting()
-    {
-        $template = '{{ {"a":{"b":"c"}} }}';
-
-        $this->assertEquals(2, $this->countToken($template, Twig_Token::PUNCTUATION_TYPE, '{'));
-        $this->assertEquals(2, $this->countToken($template, Twig_Token::PUNCTUATION_TYPE, '}'));
-    }
-
-    protected function countToken($template, $type, $value = null)
-    {
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-
-        $count = 0;
-        while (!$stream->isEOF()) {
-            $token = $stream->next();
-            if ($type === $token->getType()) {
-                if (null === $value || $value === $token->getValue()) {
-                    ++$count;
-                }
-            }
-        }
-
-        return $count;
-    }
-
-    public function testLineDirective()
-    {
-        $template = "foo\n"
-            ."bar\n"
-            ."{% line 10 %}\n"
-            ."{{\n"
-            ."baz\n"
-            ."}}\n";
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-
-        // foo\nbar\n
-        $this->assertSame(1, $stream->expect(Twig_Token::TEXT_TYPE)->getLine());
-        // \n (after {% line %})
-        $this->assertSame(10, $stream->expect(Twig_Token::TEXT_TYPE)->getLine());
-        // {{
-        $this->assertSame(11, $stream->expect(Twig_Token::VAR_START_TYPE)->getLine());
-        // baz
-        $this->assertSame(12, $stream->expect(Twig_Token::NAME_TYPE)->getLine());
-    }
-
-    public function testLineDirectiveInline()
-    {
-        $template = "foo\n"
-            ."bar{% line 10 %}{{\n"
-            ."baz\n"
-            ."}}\n";
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-
-        // foo\nbar
-        $this->assertSame(1, $stream->expect(Twig_Token::TEXT_TYPE)->getLine());
-        // {{
-        $this->assertSame(10, $stream->expect(Twig_Token::VAR_START_TYPE)->getLine());
-        // baz
-        $this->assertSame(11, $stream->expect(Twig_Token::NAME_TYPE)->getLine());
-    }
-
-    public function testLongComments()
-    {
-        $template = '{# '.str_repeat('*', 100000).' #}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-
-        // should not throw an exception
-    }
-
-    public function testLongRaw()
-    {
-        $template = '{% raw %}'.str_repeat('*', 100000).'{% endraw %}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-
-        // should not throw an exception
-    }
-
-    public function testLongVar()
-    {
-        $template = '{{ '.str_repeat('x', 100000).' }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-
-        // should not throw an exception
-    }
-
-    public function testLongBlock()
-    {
-        $template = '{% '.str_repeat('x', 100000).' %}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-
-        // should not throw an exception
-    }
-
-    public function testBigNumbers()
-    {
-        $template = '{{ 922337203685477580700 }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->next();
-        $node = $stream->next();
-        $this->assertEquals('922337203685477580700', $node->getValue());
-    }
-
-    public function testStringWithEscapedDelimiter()
-    {
-        $tests = array(
-            "{{ 'foo \' bar' }}" => 'foo \' bar',
-            '{{ "foo \" bar" }}' => 'foo " bar',
-        );
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        foreach ($tests as $template => $expected) {
-            $stream = $lexer->tokenize($template);
-            $stream->expect(Twig_Token::VAR_START_TYPE);
-            $stream->expect(Twig_Token::STRING_TYPE, $expected);
-        }
-    }
-
-    public function testStringWithInterpolation()
-    {
-        $template = 'foo {{ "bar #{ baz + 1 }" }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->expect(Twig_Token::TEXT_TYPE, 'foo ');
-        $stream->expect(Twig_Token::VAR_START_TYPE);
-        $stream->expect(Twig_Token::STRING_TYPE, 'bar ');
-        $stream->expect(Twig_Token::INTERPOLATION_START_TYPE);
-        $stream->expect(Twig_Token::NAME_TYPE, 'baz');
-        $stream->expect(Twig_Token::OPERATOR_TYPE, '+');
-        $stream->expect(Twig_Token::NUMBER_TYPE, '1');
-        $stream->expect(Twig_Token::INTERPOLATION_END_TYPE);
-        $stream->expect(Twig_Token::VAR_END_TYPE);
-    }
-
-    public function testStringWithEscapedInterpolation()
-    {
-        $template = '{{ "bar \#{baz+1}" }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->expect(Twig_Token::VAR_START_TYPE);
-        $stream->expect(Twig_Token::STRING_TYPE, 'bar #{baz+1}');
-        $stream->expect(Twig_Token::VAR_END_TYPE);
-    }
-
-    public function testStringWithHash()
-    {
-        $template = '{{ "bar # baz" }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->expect(Twig_Token::VAR_START_TYPE);
-        $stream->expect(Twig_Token::STRING_TYPE, 'bar # baz');
-        $stream->expect(Twig_Token::VAR_END_TYPE);
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @expectedExceptionMessage Unclosed """
-     */
-    public function testStringWithUnterminatedInterpolation()
-    {
-        $template = '{{ "bar #{x" }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-    }
-
-    public function testStringWithNestedInterpolations()
-    {
-        $template = '{{ "bar #{ "foo#{bar}" }" }}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->expect(Twig_Token::VAR_START_TYPE);
-        $stream->expect(Twig_Token::STRING_TYPE, 'bar ');
-        $stream->expect(Twig_Token::INTERPOLATION_START_TYPE);
-        $stream->expect(Twig_Token::STRING_TYPE, 'foo');
-        $stream->expect(Twig_Token::INTERPOLATION_START_TYPE);
-        $stream->expect(Twig_Token::NAME_TYPE, 'bar');
-        $stream->expect(Twig_Token::INTERPOLATION_END_TYPE);
-        $stream->expect(Twig_Token::INTERPOLATION_END_TYPE);
-        $stream->expect(Twig_Token::VAR_END_TYPE);
-    }
-
-    public function testStringWithNestedInterpolationsInBlock()
-    {
-        $template = '{% foo "bar #{ "foo#{bar}" }" %}';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->expect(Twig_Token::BLOCK_START_TYPE);
-        $stream->expect(Twig_Token::NAME_TYPE, 'foo');
-        $stream->expect(Twig_Token::STRING_TYPE, 'bar ');
-        $stream->expect(Twig_Token::INTERPOLATION_START_TYPE);
-        $stream->expect(Twig_Token::STRING_TYPE, 'foo');
-        $stream->expect(Twig_Token::INTERPOLATION_START_TYPE);
-        $stream->expect(Twig_Token::NAME_TYPE, 'bar');
-        $stream->expect(Twig_Token::INTERPOLATION_END_TYPE);
-        $stream->expect(Twig_Token::INTERPOLATION_END_TYPE);
-        $stream->expect(Twig_Token::BLOCK_END_TYPE);
-    }
-
-    public function testOperatorEndingWithALetterAtTheEndOfALine()
-    {
-        $template = "{{ 1 and\n0}}";
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $stream = $lexer->tokenize($template);
-        $stream->expect(Twig_Token::VAR_START_TYPE);
-        $stream->expect(Twig_Token::NUMBER_TYPE, 1);
-        $stream->expect(Twig_Token::OPERATOR_TYPE, 'and');
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @expectedExceptionMessage Unclosed "variable" at line 3
-     */
-    public function testUnterminatedVariable()
-    {
-        $template = '
-
-{{
-
-bar
-
-
-';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @expectedExceptionMessage Unclosed "block" at line 3
-     */
-    public function testUnterminatedBlock()
-    {
-        $template = '
-
-{%
-
-bar
-
-
-';
-
-        $lexer = new Twig_Lexer(new Twig_Environment());
-        $lexer->tokenize($template);
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/ArrayTest.php b/core/vendor/twig/twig/test/Twig/Tests/Loader/ArrayTest.php
deleted file mode 100644
index 1369a6b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/ArrayTest.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Loader_ArrayTest extends PHPUnit_Framework_TestCase
-{
-    public function testGetSource()
-    {
-        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
-
-        $this->assertEquals('bar', $loader->getSource('foo'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Loader
-     */
-    public function testGetSourceWhenTemplateDoesNotExist()
-    {
-        $loader = new Twig_Loader_Array(array());
-
-        $loader->getSource('foo');
-    }
-
-    public function testGetCacheKey()
-    {
-        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
-
-        $this->assertEquals('bar', $loader->getCacheKey('foo'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Loader
-     */
-    public function testGetCacheKeyWhenTemplateDoesNotExist()
-    {
-        $loader = new Twig_Loader_Array(array());
-
-        $loader->getCacheKey('foo');
-    }
-
-    public function testSetTemplate()
-    {
-        $loader = new Twig_Loader_Array(array());
-        $loader->setTemplate('foo', 'bar');
-
-        $this->assertEquals('bar', $loader->getSource('foo'));
-    }
-
-    public function testIsFresh()
-    {
-        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
-        $this->assertTrue($loader->isFresh('foo', time()));
-    }
-
-    /**
-     * @expectedException Twig_Error_Loader
-     */
-    public function testIsFreshWhenTemplateDoesNotExist()
-    {
-        $loader = new Twig_Loader_Array(array());
-
-        $loader->isFresh('foo', time());
-    }
-
-    public function testTemplateReference()
-    {
-        $name = new Twig_Test_Loader_TemplateReference('foo');
-        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
-
-        $loader->getCacheKey($name);
-        $loader->getSource($name);
-        $loader->isFresh($name, time());
-        $loader->setTemplate($name, 'foobar');
-    }
-}
-
-class Twig_Test_Loader_TemplateReference
-{
-    private $name;
-
-    public function __construct($name)
-    {
-        $this->name = $name;
-    }
-
-    public function __toString()
-    {
-        return $this->name;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/ChainTest.php b/core/vendor/twig/twig/test/Twig/Tests/Loader/ChainTest.php
deleted file mode 100644
index 4fe0db9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/ChainTest.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Loader_ChainTest extends PHPUnit_Framework_TestCase
-{
-    public function testGetSource()
-    {
-        $loader = new Twig_Loader_Chain(array(
-            new Twig_Loader_Array(array('foo' => 'bar')),
-            new Twig_Loader_Array(array('foo' => 'foobar', 'bar' => 'foo')),
-        ));
-
-        $this->assertEquals('bar', $loader->getSource('foo'));
-        $this->assertEquals('foo', $loader->getSource('bar'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Loader
-     */
-    public function testGetSourceWhenTemplateDoesNotExist()
-    {
-        $loader = new Twig_Loader_Chain(array());
-
-        $loader->getSource('foo');
-    }
-
-    public function testGetCacheKey()
-    {
-        $loader = new Twig_Loader_Chain(array(
-            new Twig_Loader_Array(array('foo' => 'bar')),
-            new Twig_Loader_Array(array('foo' => 'foobar', 'bar' => 'foo')),
-        ));
-
-        $this->assertEquals('bar', $loader->getCacheKey('foo'));
-        $this->assertEquals('foo', $loader->getCacheKey('bar'));
-    }
-
-    /**
-     * @expectedException Twig_Error_Loader
-     */
-    public function testGetCacheKeyWhenTemplateDoesNotExist()
-    {
-        $loader = new Twig_Loader_Chain(array());
-
-        $loader->getCacheKey('foo');
-    }
-
-    public function testAddLoader()
-    {
-        $loader = new Twig_Loader_Chain();
-        $loader->addLoader(new Twig_Loader_Array(array('foo' => 'bar')));
-
-        $this->assertEquals('bar', $loader->getSource('foo'));
-    }
-
-    public function testExists()
-    {
-        $loader1 = $this->getMock('Twig_Loader_Array', array('exists', 'getSource'), array(), '', false);
-        $loader1->expects($this->once())->method('exists')->will($this->returnValue(false));
-        $loader1->expects($this->never())->method('getSource');
-
-        $loader2 = $this->getMock('Twig_LoaderInterface');
-        $loader2->expects($this->once())->method('getSource')->will($this->returnValue('content'));
-
-        $loader = new Twig_Loader_Chain();
-        $loader->addLoader($loader1);
-        $loader->addLoader($loader2);
-
-        $this->assertTrue($loader->exists('foo'));
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php b/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php
deleted file mode 100644
index e07f374..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/FilesystemTest.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Loader_FilesystemTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider getSecurityTests
-     */
-    public function testSecurity($template)
-    {
-        $loader = new Twig_Loader_Filesystem(array(dirname(__FILE__).'/../Fixtures'));
-
-        try {
-            $loader->getCacheKey($template);
-            $this->fail();
-        } catch (Twig_Error_Loader $e) {
-            $this->assertNotContains('Unable to find template', $e->getMessage());
-        }
-    }
-
-    public function getSecurityTests()
-    {
-        return array(
-            array("AutoloaderTest\0.php"),
-            array('..\\AutoloaderTest.php'),
-            array('..\\\\\\AutoloaderTest.php'),
-            array('../AutoloaderTest.php'),
-            array('..////AutoloaderTest.php'),
-            array('./../AutoloaderTest.php'),
-            array('.\\..\\AutoloaderTest.php'),
-            array('././././././../AutoloaderTest.php'),
-            array('.\\./.\\./.\\./../AutoloaderTest.php'),
-            array('foo/../../AutoloaderTest.php'),
-            array('foo\\..\\..\\AutoloaderTest.php'),
-            array('foo/../bar/../../AutoloaderTest.php'),
-            array('foo/bar/../../../AutoloaderTest.php'),
-            array('filters/../../AutoloaderTest.php'),
-            array('filters//..//..//AutoloaderTest.php'),
-            array('filters\\..\\..\\AutoloaderTest.php'),
-            array('filters\\\\..\\\\..\\\\AutoloaderTest.php'),
-            array('filters\\//../\\/\\..\\AutoloaderTest.php'),
-            array('/../AutoloaderTest.php'),
-        );
-    }
-
-    public function testPaths()
-    {
-        $basePath = dirname(__FILE__).'/Fixtures';
-
-        $loader = new Twig_Loader_Filesystem(array($basePath.'/normal', $basePath.'/normal_bis'));
-        $loader->setPaths(array($basePath.'/named', $basePath.'/named_bis'), 'named');
-        $loader->addPath($basePath.'/named_ter', 'named');
-        $loader->addPath($basePath.'/normal_ter');
-        $loader->prependPath($basePath.'/normal_final');
-        $loader->prependPath($basePath.'/named/../named_quater', 'named');
-        $loader->prependPath($basePath.'/named_final', 'named');
-
-        $this->assertEquals(array(
-            $basePath.'/normal_final',
-            $basePath.'/normal',
-            $basePath.'/normal_bis',
-            $basePath.'/normal_ter',
-        ), $loader->getPaths());
-        $this->assertEquals(array(
-            $basePath.'/named_final',
-            $basePath.'/named/../named_quater',
-            $basePath.'/named',
-            $basePath.'/named_bis',
-            $basePath.'/named_ter',
-        ), $loader->getPaths('named'));
-
-        $this->assertEquals(
-            realpath($basePath.'/named_quater/named_absolute.html'),
-            realpath($loader->getCacheKey('@named/named_absolute.html'))
-        );
-        $this->assertEquals("path (final)\n", $loader->getSource('index.html'));
-        $this->assertEquals("path (final)\n", $loader->getSource('@__main__/index.html'));
-        $this->assertEquals("named path (final)\n", $loader->getSource('@named/index.html'));
-    }
-
-    public function testEmptyConstructor()
-    {
-        $loader = new Twig_Loader_Filesystem();
-        $this->assertEquals(array(), $loader->getPaths());
-    }
-
-    public function testGetNamespaces()
-    {
-        $loader = new Twig_Loader_Filesystem(sys_get_temp_dir());
-        $this->assertEquals(array(Twig_Loader_Filesystem::MAIN_NAMESPACE), $loader->getNamespaces());
-
-        $loader->addPath(sys_get_temp_dir(), 'named');
-        $this->assertEquals(array(Twig_Loader_Filesystem::MAIN_NAMESPACE, 'named'), $loader->getNamespaces());
-    }
-
-    public function testFindTemplateExceptionNamespace()
-    {
-        $basePath = dirname(__FILE__).'/Fixtures';
-
-        $loader = new Twig_Loader_Filesystem(array($basePath.'/normal'));
-        $loader->addPath($basePath.'/named', 'named');
-
-        try {
-            $loader->getSource('@named/nowhere.html');
-        } catch (Exception $e) {
-            $this->assertInstanceof('Twig_Error_Loader', $e);
-            $this->assertContains('Unable to find template "@named/nowhere.html"', $e->getMessage());
-        }
-    }
-
-    public function testFindTemplateWithCache()
-    {
-        $basePath = dirname(__FILE__).'/Fixtures';
-
-        $loader = new Twig_Loader_Filesystem(array($basePath.'/normal'));
-        $loader->addPath($basePath.'/named', 'named');
-
-        // prime the cache for index.html in the named namespace
-        $namedSource = $loader->getSource('@named/index.html');
-        $this->assertEquals("named path\n", $namedSource);
-
-        // get index.html from the main namespace
-        $this->assertEquals("path\n", $loader->getSource('index.html'));
-    }
-
-    public function testLoadTemplateAndRenderBlockWithCache()
-    {
-        $loader = new Twig_Loader_Filesystem(array());
-        $loader->addPath(dirname(__FILE__).'/Fixtures/themes/theme2');
-        $loader->addPath(dirname(__FILE__).'/Fixtures/themes/theme1');
-        $loader->addPath(dirname(__FILE__).'/Fixtures/themes/theme1', 'default_theme');
-
-        $twig = new Twig_Environment($loader);
-
-        $template = $twig->loadTemplate('blocks.html.twig');
-        $this->assertSame('block from theme 1', $template->renderBlock('b1', array()));
-
-        $template = $twig->loadTemplate('blocks.html.twig');
-        $this->assertSame('block from theme 2', $template->renderBlock('b2', array()));
-    }
-
-    public function getArrayInheritanceTests()
-    {
-        return array(
-            'valid array inheritance' => array('array_inheritance_valid_parent.html.twig'),
-            'array inheritance with null first template' => array('array_inheritance_null_parent.html.twig'),
-            'array inheritance with empty first template' => array('array_inheritance_empty_parent.html.twig'),
-            'array inheritance with non-existent first template' => array('array_inheritance_nonexistent_parent.html.twig'),
-        );
-    }
-
-    /**
-     * @dataProvider getArrayInheritanceTests
-     *
-     * @param $templateName string Template name with array inheritance
-     */
-    public function testArrayInheritance($templateName)
-    {
-        $loader = new Twig_Loader_Filesystem(array());
-        $loader->addPath(dirname(__FILE__).'/Fixtures/inheritance');
-
-        $twig = new Twig_Environment($loader);
-
-        $template = $twig->loadTemplate($templateName);
-        $this->assertSame('VALID Child', $template->renderBlock('body', array()));
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_empty_parent.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_empty_parent.html.twig
deleted file mode 100644
index 6977ebf..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_empty_parent.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% extends ['','parent.html.twig'] %}
-
-{% block body %}{{ parent() }} Child{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_nonexistent_parent.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_nonexistent_parent.html.twig
deleted file mode 100644
index 5b50a8b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_nonexistent_parent.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% extends ['nonexistent.html.twig','parent.html.twig'] %}
-
-{% block body %}{{ parent() }} Child{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_null_parent.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_null_parent.html.twig
deleted file mode 100644
index a16b3ad..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_null_parent.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% extends [null,'parent.html.twig'] %}
-
-{% block body %}{{ parent() }} Child{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_valid_parent.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_valid_parent.html.twig
deleted file mode 100644
index 4940dad..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/array_inheritance_valid_parent.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% extends ['parent.html.twig','spare_parent.html.twig'] %}
-
-{% block body %}{{ parent() }} Child{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/parent.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/parent.html.twig
deleted file mode 100644
index d594c0e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/parent.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{% block body %}VALID{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/spare_parent.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/spare_parent.html.twig
deleted file mode 100644
index 70b7360..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/inheritance/spare_parent.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{% block body %}SPARE PARENT{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named/index.html
deleted file mode 100644
index 9e5449c..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named/index.html
+++ /dev/null
@@ -1 +0,0 @@
-named path
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_bis/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_bis/index.html
deleted file mode 100644
index d3a272b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_bis/index.html
+++ /dev/null
@@ -1 +0,0 @@
-named path (bis)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_final/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_final/index.html
deleted file mode 100644
index 9f05d15..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_final/index.html
+++ /dev/null
@@ -1 +0,0 @@
-named path (final)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_quater/named_absolute.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_quater/named_absolute.html
deleted file mode 100644
index b1fb5f5..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_quater/named_absolute.html
+++ /dev/null
@@ -1 +0,0 @@
-named path (quater)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_ter/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_ter/index.html
deleted file mode 100644
index 24fb68a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/named_ter/index.html
+++ /dev/null
@@ -1 +0,0 @@
-named path (ter)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal/index.html
deleted file mode 100644
index e7a8fd4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal/index.html
+++ /dev/null
@@ -1 +0,0 @@
-path
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_bis/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_bis/index.html
deleted file mode 100644
index bfa9160..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_bis/index.html
+++ /dev/null
@@ -1 +0,0 @@
-path (bis)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_final/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_final/index.html
deleted file mode 100644
index 73a089b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_final/index.html
+++ /dev/null
@@ -1 +0,0 @@
-path (final)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_ter/index.html b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_ter/index.html
deleted file mode 100644
index b7ad97d..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/normal_ter/index.html
+++ /dev/null
@@ -1 +0,0 @@
-path (ter)
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/themes/theme1/blocks.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/themes/theme1/blocks.html.twig
deleted file mode 100644
index dd0cbc2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/themes/theme1/blocks.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% block b1 %}block from theme 1{% endblock %}
-
-{% block b2 %}block from theme 1{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/themes/theme2/blocks.html.twig b/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/themes/theme2/blocks.html.twig
deleted file mode 100644
index 07cf9db..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Loader/Fixtures/themes/theme2/blocks.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% use '@default_theme/blocks.html.twig' %}
-
-{% block b2 %}block from theme 2{% endblock %}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/NativeExtensionTest.php b/core/vendor/twig/twig/test/Twig/Tests/NativeExtensionTest.php
deleted file mode 100644
index 942aff9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/NativeExtensionTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_NativeExtensionTest extends PHPUnit_Framework_TestCase
-{
-    public function testGetProperties()
-    {
-        if (defined('HHVM_VERSION')) {
-            $this->markTestSkipped('Skip under HHVM as the behavior is not the same as plain PHP (which is an edge case anyway)');
-        }
-
-        $twig = new Twig_Environment(new Twig_Loader_Array(array('index' => '{{ d1.date }}{{ d2.date }}')), array(
-            'debug' => true,
-            'cache' => false,
-            'autoescape' => false,
-        ));
-
-        $d1 = new DateTime();
-        $d2 = new DateTime();
-        $output = $twig->render('index', compact('d1', 'd2'));
-
-        // If it fails, PHP will crash.
-        $this->assertEquals($output, $d1->date.$d2->date);
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/AutoEscapeTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/AutoEscapeTest.php
deleted file mode 100644
index 25d1602..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/AutoEscapeTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_AutoEscapeTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $body = new Twig_Node(array(new Twig_Node_Text('foo', 1)));
-        $node = new Twig_Node_AutoEscape(true, $body, 1);
-
-        $this->assertEquals($body, $node->getNode('body'));
-        $this->assertTrue($node->getAttribute('value'));
-    }
-
-    public function getTests()
-    {
-        $body = new Twig_Node(array(new Twig_Node_Text('foo', 1)));
-        $node = new Twig_Node_AutoEscape(true, $body, 1);
-
-        return array(
-            array($node, "// line 1\necho \"foo\";"),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/BlockReferenceTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/BlockReferenceTest.php
deleted file mode 100644
index 84dac9b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/BlockReferenceTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_BlockReferenceTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_BlockReference('foo', 1);
-
-        $this->assertEquals('foo', $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        return array(
-            array(new Twig_Node_BlockReference('foo', 1), <<<EOF
-// line 1
-\$this->displayBlock('foo', \$context, \$blocks);
-EOF
-            ),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/BlockTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/BlockTest.php
deleted file mode 100644
index e7246dc..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/BlockTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_BlockTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $body = new Twig_Node_Text('foo', 1);
-        $node = new Twig_Node_Block('foo', $body, 1);
-
-        $this->assertEquals($body, $node->getNode('body'));
-        $this->assertEquals('foo', $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        $body = new Twig_Node_Text('foo', 1);
-        $node = new Twig_Node_Block('foo', $body, 1);
-
-        return array(
-            array($node, <<<EOF
-// line 1
-public function block_foo(\$context, array \$blocks = array())
-{
-    echo "foo";
-}
-EOF
-            ),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/DoTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/DoTest.php
deleted file mode 100644
index aa33d1a..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/DoTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_DoTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $node = new Twig_Node_Do($expr, 1);
-
-        $this->assertEquals($expr, $node->getNode('expr'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $node = new Twig_Node_Do($expr, 1);
-        $tests[] = array($node, "// line 1\n\"foo\";");
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ArrayTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ArrayTest.php
deleted file mode 100644
index 4f83ab1..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ArrayTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_ArrayTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $elements = array(new Twig_Node_Expression_Constant('foo', 1), $foo = new Twig_Node_Expression_Constant('bar', 1));
-        $node = new Twig_Node_Expression_Array($elements, 1);
-
-        $this->assertEquals($foo, $node->getNode(1));
-    }
-
-    public function getTests()
-    {
-        $elements = array(
-            new Twig_Node_Expression_Constant('foo', 1),
-            new Twig_Node_Expression_Constant('bar', 1),
-
-            new Twig_Node_Expression_Constant('bar', 1),
-            new Twig_Node_Expression_Constant('foo', 1),
-        );
-        $node = new Twig_Node_Expression_Array($elements, 1);
-
-        return array(
-            array($node, 'array("foo" => "bar", "bar" => "foo")'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/AssignNameTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/AssignNameTest.php
deleted file mode 100644
index bf365de..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/AssignNameTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_AssignNameTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_Expression_AssignName('foo', 1);
-
-        $this->assertEquals('foo', $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        $node = new Twig_Node_Expression_AssignName('foo', 1);
-
-        return array(
-            array($node, '$context["foo"]'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/AddTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/AddTest.php
deleted file mode 100644
index 02310a1..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/AddTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_AddTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Add($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Add($left, $right, 1);
-
-        return array(
-            array($node, '(1 + 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/AndTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/AndTest.php
deleted file mode 100644
index 2df3c8e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/AndTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_AndTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_And($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_And($left, $right, 1);
-
-        return array(
-            array($node, '(1 && 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/ConcatTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/ConcatTest.php
deleted file mode 100644
index 759e482..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/ConcatTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_ConcatTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Concat($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Concat($left, $right, 1);
-
-        return array(
-            array($node, '(1 . 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/DivTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/DivTest.php
deleted file mode 100644
index 0e54b10..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/DivTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_DivTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Div($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Div($left, $right, 1);
-
-        return array(
-            array($node, '(1 / 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/FloorDivTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/FloorDivTest.php
deleted file mode 100644
index 602888f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/FloorDivTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_FloorDivTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_FloorDiv($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_FloorDiv($left, $right, 1);
-
-        return array(
-            array($node, 'intval(floor((1 / 2)))'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/ModTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/ModTest.php
deleted file mode 100644
index 4c663c7..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/ModTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_ModTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Mod($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Mod($left, $right, 1);
-
-        return array(
-            array($node, '(1 % 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/MulTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/MulTest.php
deleted file mode 100644
index e92c95e..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/MulTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_MulTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Mul($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Mul($left, $right, 1);
-
-        return array(
-            array($node, '(1 * 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/OrTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/OrTest.php
deleted file mode 100644
index ec37c83..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/OrTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_OrTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Or($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Or($left, $right, 1);
-
-        return array(
-            array($node, '(1 || 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/SubTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/SubTest.php
deleted file mode 100644
index 061cb27..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Binary/SubTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Binary_SubTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Sub($left, $right, 1);
-
-        $this->assertEquals($left, $node->getNode('left'));
-        $this->assertEquals($right, $node->getNode('right'));
-    }
-
-    public function getTests()
-    {
-        $left = new Twig_Node_Expression_Constant(1, 1);
-        $right = new Twig_Node_Expression_Constant(2, 1);
-        $node = new Twig_Node_Expression_Binary_Sub($left, $right, 1);
-
-        return array(
-            array($node, '(1 - 2)'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/CallTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/CallTest.php
deleted file mode 100644
index 43afcd2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/CallTest.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_CallTest extends PHPUnit_Framework_TestCase
-{
-    public function testGetArguments()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'date'));
-        $this->assertEquals(array('U', null), $node->getArguments('date', array('format' => 'U', 'timestamp' => null)));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Positional arguments cannot be used after named arguments for function "date".
-     */
-    public function testGetArgumentsWhenPositionalArgumentsAfterNamedArguments()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'date'));
-        $node->getArguments('date', array('timestamp' => 123456, 'Y-m-d'));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Argument "format" is defined twice for function "date".
-     */
-    public function testGetArgumentsWhenArgumentIsDefinedTwice()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'date'));
-        $node->getArguments('date', array('Y-m-d', 'format' => 'U'));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Unknown argument "unknown" for function "date(format, timestamp)".
-     */
-    public function testGetArgumentsWithWrongNamedArgumentName()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'date'));
-        $node->getArguments('date', array('Y-m-d', 'timestamp' => null, 'unknown' => ''));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Unknown arguments "unknown1", "unknown2" for function "date(format, timestamp)".
-     */
-    public function testGetArgumentsWithWrongNamedArgumentNames()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'date'));
-        $node->getArguments('date', array('Y-m-d', 'timestamp' => null, 'unknown1' => '', 'unknown2' => ''));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Argument "case_sensitivity" could not be assigned for function "substr_compare(main_str, str, offset, length, case_sensitivity)" because it is mapped to an internal PHP function which cannot determine default value for optional argument "length".
-     */
-    public function testResolveArgumentsWithMissingValueForOptionalArgument()
-    {
-        if (defined('HHVM_VERSION')) {
-            $this->markTestSkipped('Skip under HHVM as the behavior is not the same as plain PHP (which is an edge case anyway)');
-        }
-
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'substr_compare'));
-        $node->getArguments('substr_compare', array('abcd', 'bc', 'offset' => 1, 'case_sensitivity' => true));
-    }
-
-    public function testResolveArgumentsOnlyNecessaryArgumentsForCustomFunction()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'custom_function'));
-
-        $this->assertEquals(array('arg1'), $node->getArguments(array($this, 'customFunction'), array('arg1' => 'arg1')));
-    }
-
-    public function testGetArgumentsForStaticMethod()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'custom_static_function'));
-        $this->assertEquals(array('arg1'), $node->getArguments(__CLASS__.'::customStaticFunction', array('arg1' => 'arg1')));
-    }
-
-    /**
-     * @expectedException        LogicException
-     * @expectedExceptionMessage The last parameter of "Twig_Tests_Node_Expression_CallTest::customFunctionWithArbitraryArguments" for function "foo" must be an array with default value, eg. "array $arg = array()".
-     */
-    public function testResolveArgumentsWithMissingParameterForArbitraryArguments()
-    {
-        $node = new Twig_Tests_Node_Expression_Call(array(), array('type' => 'function', 'name' => 'foo', 'is_variadic' => true));
-        $node->getArguments(array($this, 'customFunctionWithArbitraryArguments'), array());
-    }
-
-    public static function customStaticFunction($arg1, $arg2 = 'default', $arg3 = array())
-    {
-    }
-
-    public function customFunction($arg1, $arg2 = 'default', $arg3 = array())
-    {
-    }
-
-    public function customFunctionWithArbitraryArguments()
-    {
-    }
-}
-
-class Twig_Tests_Node_Expression_Call extends Twig_Node_Expression_Call
-{
-    public function getArguments($callable, $arguments)
-    {
-        return parent::getArguments($callable, $arguments);
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ConditionalTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ConditionalTest.php
deleted file mode 100644
index a3e8bad..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ConditionalTest.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_ConditionalTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr1 = new Twig_Node_Expression_Constant(1, 1);
-        $expr2 = new Twig_Node_Expression_Constant(2, 1);
-        $expr3 = new Twig_Node_Expression_Constant(3, 1);
-        $node = new Twig_Node_Expression_Conditional($expr1, $expr2, $expr3, 1);
-
-        $this->assertEquals($expr1, $node->getNode('expr1'));
-        $this->assertEquals($expr2, $node->getNode('expr2'));
-        $this->assertEquals($expr3, $node->getNode('expr3'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $expr1 = new Twig_Node_Expression_Constant(1, 1);
-        $expr2 = new Twig_Node_Expression_Constant(2, 1);
-        $expr3 = new Twig_Node_Expression_Constant(3, 1);
-        $node = new Twig_Node_Expression_Conditional($expr1, $expr2, $expr3, 1);
-        $tests[] = array($node, '((1) ? (2) : (3))');
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ConstantTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ConstantTest.php
deleted file mode 100644
index 2ff9318..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ConstantTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_ConstantTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_Expression_Constant('foo', 1);
-
-        $this->assertEquals('foo', $node->getAttribute('value'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $node = new Twig_Node_Expression_Constant('foo', 1);
-        $tests[] = array($node, '"foo"');
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/FilterTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/FilterTest.php
deleted file mode 100644
index e822e2f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/FilterTest.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_FilterTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $name = new Twig_Node_Expression_Constant('upper', 1);
-        $args = new Twig_Node();
-        $node = new Twig_Node_Expression_Filter($expr, $name, $args, 1);
-
-        $this->assertEquals($expr, $node->getNode('node'));
-        $this->assertEquals($name, $node->getNode('filter'));
-        $this->assertEquals($args, $node->getNode('arguments'));
-    }
-
-    public function getTests()
-    {
-        $environment = new Twig_Environment();
-        $environment->addFilter(new Twig_SimpleFilter('bar', 'bar', array('needs_environment' => true)));
-        $environment->addFilter(new Twig_SimpleFilter('barbar', 'twig_tests_filter_barbar', array('needs_context' => true, 'is_variadic' => true)));
-
-        $tests = array();
-
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $node = $this->createFilter($expr, 'upper');
-        $node = $this->createFilter($node, 'number_format', array(new Twig_Node_Expression_Constant(2, 1), new Twig_Node_Expression_Constant('.', 1), new Twig_Node_Expression_Constant(',', 1)));
-
-        if (function_exists('mb_get_info')) {
-            $tests[] = array($node, 'twig_number_format_filter($this->env, twig_upper_filter($this->env, "foo"), 2, ".", ",")');
-        } else {
-            $tests[] = array($node, 'twig_number_format_filter($this->env, strtoupper("foo"), 2, ".", ",")');
-        }
-
-        // named arguments
-        $date = new Twig_Node_Expression_Constant(0, 1);
-        $node = $this->createFilter($date, 'date', array(
-            'timezone' => new Twig_Node_Expression_Constant('America/Chicago', 1),
-            'format' => new Twig_Node_Expression_Constant('d/m/Y H:i:s P', 1),
-        ));
-        $tests[] = array($node, 'twig_date_format_filter($this->env, 0, "d/m/Y H:i:s P", "America/Chicago")');
-
-        // skip an optional argument
-        $date = new Twig_Node_Expression_Constant(0, 1);
-        $node = $this->createFilter($date, 'date', array(
-            'timezone' => new Twig_Node_Expression_Constant('America/Chicago', 1),
-        ));
-        $tests[] = array($node, 'twig_date_format_filter($this->env, 0, null, "America/Chicago")');
-
-        // underscores vs camelCase for named arguments
-        $string = new Twig_Node_Expression_Constant('abc', 1);
-        $node = $this->createFilter($string, 'reverse', array(
-            'preserve_keys' => new Twig_Node_Expression_Constant(true, 1),
-        ));
-        $tests[] = array($node, 'twig_reverse_filter($this->env, "abc", true)');
-        $node = $this->createFilter($string, 'reverse', array(
-            'preserveKeys' => new Twig_Node_Expression_Constant(true, 1),
-        ));
-        $tests[] = array($node, 'twig_reverse_filter($this->env, "abc", true)');
-
-        // filter as an anonymous function
-        if (PHP_VERSION_ID >= 50300) {
-            $node = $this->createFilter(new Twig_Node_Expression_Constant('foo', 1), 'anonymous');
-            $tests[] = array($node, 'call_user_func_array($this->env->getFilter(\'anonymous\')->getCallable(), array("foo"))');
-        }
-
-        // needs environment
-        $node = $this->createFilter($string, 'bar');
-        $tests[] = array($node, 'bar($this->env, "abc")', $environment);
-
-        $node = $this->createFilter($string, 'bar', array(new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'bar($this->env, "abc", "bar")', $environment);
-
-        // arbitrary named arguments
-        $node = $this->createFilter($string, 'barbar');
-        $tests[] = array($node, 'twig_tests_filter_barbar($context, "abc")', $environment);
-
-        $node = $this->createFilter($string, 'barbar', array('foo' => new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'twig_tests_filter_barbar($context, "abc", null, null, array("foo" => "bar"))', $environment);
-
-        $node = $this->createFilter($string, 'barbar', array('arg2' => new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'twig_tests_filter_barbar($context, "abc", null, "bar")', $environment);
-
-        $node = $this->createFilter($string, 'barbar', array(
-            new Twig_Node_Expression_Constant('1', 1),
-            new Twig_Node_Expression_Constant('2', 1),
-            new Twig_Node_Expression_Constant('3', 1),
-            'foo' => new Twig_Node_Expression_Constant('bar', 1),
-        ));
-        $tests[] = array($node, 'twig_tests_filter_barbar($context, "abc", "1", "2", array(0 => "3", "foo" => "bar"))', $environment);
-
-        return $tests;
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Unknown argument "foobar" for filter "date(format, timezone)" at line 1.
-     */
-    public function testCompileWithWrongNamedArgumentName()
-    {
-        $date = new Twig_Node_Expression_Constant(0, 1);
-        $node = $this->createFilter($date, 'date', array(
-            'foobar' => new Twig_Node_Expression_Constant('America/Chicago', 1),
-        ));
-
-        $compiler = $this->getCompiler();
-        $compiler->compile($node);
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Value for argument "from" is required for filter "replace".
-     */
-    public function testCompileWithMissingNamedArgument()
-    {
-        $value = new Twig_Node_Expression_Constant(0, 1);
-        $node = $this->createFilter($value, 'replace', array(
-            'to' => new Twig_Node_Expression_Constant('foo', 1),
-        ));
-
-        $compiler = $this->getCompiler();
-        $compiler->compile($node);
-    }
-
-    protected function createFilter($node, $name, array $arguments = array())
-    {
-        $name = new Twig_Node_Expression_Constant($name, 1);
-        $arguments = new Twig_Node($arguments);
-
-        return new Twig_Node_Expression_Filter($node, $name, $arguments, 1);
-    }
-
-    protected function getEnvironment()
-    {
-        if (PHP_VERSION_ID >= 50300) {
-            return include 'PHP53/FilterInclude.php';
-        }
-
-        return parent::getEnvironment();
-    }
-}
-
-function twig_tests_filter_barbar($context, $string, $arg1 = null, $arg2 = null, array $args = array())
-{
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/FunctionTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/FunctionTest.php
deleted file mode 100644
index 35edfe1..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/FunctionTest.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_FunctionTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $name = 'function';
-        $args = new Twig_Node();
-        $node = new Twig_Node_Expression_Function($name, $args, 1);
-
-        $this->assertEquals($name, $node->getAttribute('name'));
-        $this->assertEquals($args, $node->getNode('arguments'));
-    }
-
-    public function getTests()
-    {
-        $environment = new Twig_Environment();
-        $environment->addFunction(new Twig_SimpleFunction('foo', 'foo', array()));
-        $environment->addFunction(new Twig_SimpleFunction('bar', 'bar', array('needs_environment' => true)));
-        $environment->addFunction(new Twig_SimpleFunction('foofoo', 'foofoo', array('needs_context' => true)));
-        $environment->addFunction(new Twig_SimpleFunction('foobar', 'foobar', array('needs_environment' => true, 'needs_context' => true)));
-        $environment->addFunction(new Twig_SimpleFunction('barbar', 'twig_tests_function_barbar', array('is_variadic' => true)));
-
-        $tests = array();
-
-        $node = $this->createFunction('foo');
-        $tests[] = array($node, 'foo()', $environment);
-
-        $node = $this->createFunction('foo', array(new Twig_Node_Expression_Constant('bar', 1), new Twig_Node_Expression_Constant('foobar', 1)));
-        $tests[] = array($node, 'foo("bar", "foobar")', $environment);
-
-        $node = $this->createFunction('bar');
-        $tests[] = array($node, 'bar($this->env)', $environment);
-
-        $node = $this->createFunction('bar', array(new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'bar($this->env, "bar")', $environment);
-
-        $node = $this->createFunction('foofoo');
-        $tests[] = array($node, 'foofoo($context)', $environment);
-
-        $node = $this->createFunction('foofoo', array(new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'foofoo($context, "bar")', $environment);
-
-        $node = $this->createFunction('foobar');
-        $tests[] = array($node, 'foobar($this->env, $context)', $environment);
-
-        $node = $this->createFunction('foobar', array(new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'foobar($this->env, $context, "bar")', $environment);
-
-        // named arguments
-        $node = $this->createFunction('date', array(
-            'timezone' => new Twig_Node_Expression_Constant('America/Chicago', 1),
-            'date' => new Twig_Node_Expression_Constant(0, 1),
-        ));
-        $tests[] = array($node, 'twig_date_converter($this->env, 0, "America/Chicago")');
-
-        // arbitrary named arguments
-        $node = $this->createFunction('barbar');
-        $tests[] = array($node, 'twig_tests_function_barbar()', $environment);
-
-        $node = $this->createFunction('barbar', array('foo' => new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'twig_tests_function_barbar(null, null, array("foo" => "bar"))', $environment);
-
-        $node = $this->createFunction('barbar', array('arg2' => new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'twig_tests_function_barbar(null, "bar")', $environment);
-
-        $node = $this->createFunction('barbar', array(
-            new Twig_Node_Expression_Constant('1', 1),
-            new Twig_Node_Expression_Constant('2', 1),
-            new Twig_Node_Expression_Constant('3', 1),
-            'foo' => new Twig_Node_Expression_Constant('bar', 1),
-        ));
-        $tests[] = array($node, 'twig_tests_function_barbar("1", "2", array(0 => "3", "foo" => "bar"))', $environment);
-
-        // function as an anonymous function
-        if (PHP_VERSION_ID >= 50300) {
-            $node = $this->createFunction('anonymous', array(new Twig_Node_Expression_Constant('foo', 1)));
-            $tests[] = array($node, 'call_user_func_array($this->env->getFunction(\'anonymous\')->getCallable(), array("foo"))');
-        }
-
-        return $tests;
-    }
-
-    protected function createFunction($name, array $arguments = array())
-    {
-        return new Twig_Node_Expression_Function($name, new Twig_Node($arguments), 1);
-    }
-
-    protected function getEnvironment()
-    {
-        if (PHP_VERSION_ID >= 50300) {
-            return include 'PHP53/FunctionInclude.php';
-        }
-
-        return parent::getEnvironment();
-    }
-}
-
-function twig_tests_function_barbar($arg1 = null, $arg2 = null, array $args = array())
-{
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/GetAttrTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/GetAttrTest.php
deleted file mode 100644
index 2764478..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/GetAttrTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_GetAttrTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Name('foo', 1);
-        $attr = new Twig_Node_Expression_Constant('bar', 1);
-        $args = new Twig_Node_Expression_Array(array(), 1);
-        $args->addElement(new Twig_Node_Expression_Name('foo', 1));
-        $args->addElement(new Twig_Node_Expression_Constant('bar', 1));
-        $node = new Twig_Node_Expression_GetAttr($expr, $attr, $args, Twig_Template::ARRAY_CALL, 1);
-
-        $this->assertEquals($expr, $node->getNode('node'));
-        $this->assertEquals($attr, $node->getNode('attribute'));
-        $this->assertEquals($args, $node->getNode('arguments'));
-        $this->assertEquals(Twig_Template::ARRAY_CALL, $node->getAttribute('type'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $expr = new Twig_Node_Expression_Name('foo', 1);
-        $attr = new Twig_Node_Expression_Constant('bar', 1);
-        $args = new Twig_Node_Expression_Array(array(), 1);
-        $node = new Twig_Node_Expression_GetAttr($expr, $attr, $args, Twig_Template::ANY_CALL, 1);
-        $tests[] = array($node, sprintf('%s%s, "bar", array())', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1)));
-
-        $node = new Twig_Node_Expression_GetAttr($expr, $attr, $args, Twig_Template::ARRAY_CALL, 1);
-        $tests[] = array($node, sprintf('%s%s, "bar", array(), "array")', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1)));
-
-        $args = new Twig_Node_Expression_Array(array(), 1);
-        $args->addElement(new Twig_Node_Expression_Name('foo', 1));
-        $args->addElement(new Twig_Node_Expression_Constant('bar', 1));
-        $node = new Twig_Node_Expression_GetAttr($expr, $attr, $args, Twig_Template::METHOD_CALL, 1);
-        $tests[] = array($node, sprintf('%s%s, "bar", array(0 => %s, 1 => "bar"), "method")', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1), $this->getVariableGetter('foo')));
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/NameTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/NameTest.php
deleted file mode 100644
index 905d8ee..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/NameTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_NameTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_Expression_Name('foo', 1);
-
-        $this->assertEquals('foo', $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        $node = new Twig_Node_Expression_Name('foo', 1);
-        $self = new Twig_Node_Expression_Name('_self', 1);
-        $context = new Twig_Node_Expression_Name('_context', 1);
-
-        $env = new Twig_Environment(null, array('strict_variables' => true));
-        $env1 = new Twig_Environment(null, array('strict_variables' => false));
-
-        return array(
-            array($node, "// line 1\n".(PHP_VERSION_ID >= 50400 ? '(isset($context["foo"]) ? $context["foo"] : $this->getContext($context, "foo"))' : '$this->getContext($context, "foo")'), $env),
-            array($node, $this->getVariableGetter('foo', 1), $env1),
-            array($self, "// line 1\n\$this"),
-            array($context, "// line 1\n\$context"),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/FilterInclude.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/FilterInclude.php
deleted file mode 100644
index 15e3aa9..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/FilterInclude.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-$env = new Twig_Environment();
-$env->addFilter(new Twig_SimpleFilter('anonymous', function () {}));
-
-return $env;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/FunctionInclude.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/FunctionInclude.php
deleted file mode 100644
index d2170ed..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/FunctionInclude.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-$env = new Twig_Environment();
-$env->addFunction(new Twig_SimpleFunction('anonymous', function () {}));
-
-return $env;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/TestInclude.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/TestInclude.php
deleted file mode 100644
index 6366286..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/PHP53/TestInclude.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-$env = new Twig_Environment();
-$env->addTest(new Twig_SimpleTest('anonymous', function () {}));
-
-return $env;
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ParentTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ParentTest.php
deleted file mode 100644
index ab2bbe0..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/ParentTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_ParentTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_Expression_Parent('foo', 1);
-
-        $this->assertEquals('foo', $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-        $tests[] = array(new Twig_Node_Expression_Parent('foo', 1), '$this->renderParentBlock("foo", $context, $blocks)');
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/TestTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/TestTest.php
deleted file mode 100644
index 47a6889..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/TestTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_TestTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $name = new Twig_Node_Expression_Constant('null', 1);
-        $args = new Twig_Node();
-        $node = new Twig_Node_Expression_Test($expr, $name, $args, 1);
-
-        $this->assertEquals($expr, $node->getNode('node'));
-        $this->assertEquals($args, $node->getNode('arguments'));
-        $this->assertEquals($name, $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        $environment = new Twig_Environment();
-        $environment->addTest(new Twig_SimpleTest('barbar', 'twig_tests_test_barbar', array('is_variadic' => true, 'need_context' => true)));
-
-        $tests = array();
-
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $node = new Twig_Node_Expression_Test_Null($expr, 'null', new Twig_Node(array()), 1);
-        $tests[] = array($node, '(null === "foo")');
-
-        // test as an anonymous function
-        if (PHP_VERSION_ID >= 50300) {
-            $node = $this->createTest(new Twig_Node_Expression_Constant('foo', 1), 'anonymous', array(new Twig_Node_Expression_Constant('foo', 1)));
-            $tests[] = array($node, 'call_user_func_array($this->env->getTest(\'anonymous\')->getCallable(), array("foo", "foo"))');
-        }
-
-        // arbitrary named arguments
-        $string = new Twig_Node_Expression_Constant('abc', 1);
-        $node = $this->createTest($string, 'barbar');
-        $tests[] = array($node, 'twig_tests_test_barbar("abc")', $environment);
-
-        $node = $this->createTest($string, 'barbar', array('foo' => new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'twig_tests_test_barbar("abc", null, null, array("foo" => "bar"))', $environment);
-
-        $node = $this->createTest($string, 'barbar', array('arg2' => new Twig_Node_Expression_Constant('bar', 1)));
-        $tests[] = array($node, 'twig_tests_test_barbar("abc", null, "bar")', $environment);
-
-        $node = $this->createTest($string, 'barbar', array(
-            new Twig_Node_Expression_Constant('1', 1),
-            new Twig_Node_Expression_Constant('2', 1),
-            new Twig_Node_Expression_Constant('3', 1),
-            'foo' => new Twig_Node_Expression_Constant('bar', 1),
-        ));
-        $tests[] = array($node, 'twig_tests_test_barbar("abc", "1", "2", array(0 => "3", "foo" => "bar"))', $environment);
-
-        return $tests;
-    }
-
-    protected function createTest($node, $name, array $arguments = array())
-    {
-        return new Twig_Node_Expression_Test($node, $name, new Twig_Node($arguments), 1);
-    }
-
-    protected function getEnvironment()
-    {
-        if (PHP_VERSION_ID >= 50300) {
-            return include 'PHP53/TestInclude.php';
-        }
-
-        return parent::getEnvironment();
-    }
-}
-
-function twig_tests_test_barbar($string, $arg1 = null, $arg2 = null, array $args = array())
-{
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/NegTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/NegTest.php
deleted file mode 100644
index b633371..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/NegTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Unary_NegTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant(1, 1);
-        $node = new Twig_Node_Expression_Unary_Neg($expr, 1);
-
-        $this->assertEquals($expr, $node->getNode('node'));
-    }
-
-    public function getTests()
-    {
-        $node = new Twig_Node_Expression_Constant(1, 1);
-        $node = new Twig_Node_Expression_Unary_Neg($node, 1);
-
-        return array(
-            array($node, '-1'),
-            array(new Twig_Node_Expression_Unary_Neg($node, 1), '- -1'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/NotTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/NotTest.php
deleted file mode 100644
index d7c6f85..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/NotTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Unary_NotTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant(1, 1);
-        $node = new Twig_Node_Expression_Unary_Not($expr, 1);
-
-        $this->assertEquals($expr, $node->getNode('node'));
-    }
-
-    public function getTests()
-    {
-        $node = new Twig_Node_Expression_Constant(1, 1);
-        $node = new Twig_Node_Expression_Unary_Not($node, 1);
-
-        return array(
-            array($node, '!1'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/PosTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/PosTest.php
deleted file mode 100644
index 057250f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/Expression/Unary/PosTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_Expression_Unary_PosTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant(1, 1);
-        $node = new Twig_Node_Expression_Unary_Pos($expr, 1);
-
-        $this->assertEquals($expr, $node->getNode('node'));
-    }
-
-    public function getTests()
-    {
-        $node = new Twig_Node_Expression_Constant(1, 1);
-        $node = new Twig_Node_Expression_Unary_Pos($node, 1);
-
-        return array(
-            array($node, '+1'),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/ForTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/ForTest.php
deleted file mode 100644
index b289592..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/ForTest.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_ForTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $keyTarget = new Twig_Node_Expression_AssignName('key', 1);
-        $valueTarget = new Twig_Node_Expression_AssignName('item', 1);
-        $seq = new Twig_Node_Expression_Name('items', 1);
-        $ifexpr = new Twig_Node_Expression_Constant(true, 1);
-        $body = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1)), array(), 1);
-        $else = null;
-        $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1);
-        $node->setAttribute('with_loop', false);
-
-        $this->assertEquals($keyTarget, $node->getNode('key_target'));
-        $this->assertEquals($valueTarget, $node->getNode('value_target'));
-        $this->assertEquals($seq, $node->getNode('seq'));
-        $this->assertTrue($node->getAttribute('ifexpr'));
-        $this->assertEquals('Twig_Node_If', get_class($node->getNode('body')));
-        $this->assertEquals($body, $node->getNode('body')->getNode('tests')->getNode(1)->getNode(0));
-        $this->assertNull($node->getNode('else'));
-
-        $else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1);
-        $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1);
-        $node->setAttribute('with_loop', false);
-        $this->assertEquals($else, $node->getNode('else'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $keyTarget = new Twig_Node_Expression_AssignName('key', 1);
-        $valueTarget = new Twig_Node_Expression_AssignName('item', 1);
-        $seq = new Twig_Node_Expression_Name('items', 1);
-        $ifexpr = null;
-        $body = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1)), array(), 1);
-        $else = null;
-        $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1);
-        $node->setAttribute('with_loop', false);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context['_parent'] = (array) \$context;
-\$context['_seq'] = twig_ensure_traversable({$this->getVariableGetter('items')});
-foreach (\$context['_seq'] as \$context["key"] => \$context["item"]) {
-    echo {$this->getVariableGetter('foo')};
-}
-\$_parent = \$context['_parent'];
-unset(\$context['_seq'], \$context['_iterated'], \$context['key'], \$context['item'], \$context['_parent'], \$context['loop']);
-\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
-EOF
-        );
-
-        $keyTarget = new Twig_Node_Expression_AssignName('k', 1);
-        $valueTarget = new Twig_Node_Expression_AssignName('v', 1);
-        $seq = new Twig_Node_Expression_Name('values', 1);
-        $ifexpr = null;
-        $body = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1)), array(), 1);
-        $else = null;
-        $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1);
-        $node->setAttribute('with_loop', true);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context['_parent'] = (array) \$context;
-\$context['_seq'] = twig_ensure_traversable({$this->getVariableGetter('values')});
-\$context['loop'] = array(
-  'parent' => \$context['_parent'],
-  'index0' => 0,
-  'index'  => 1,
-  'first'  => true,
-);
-if (is_array(\$context['_seq']) || (is_object(\$context['_seq']) && \$context['_seq'] instanceof Countable)) {
-    \$length = count(\$context['_seq']);
-    \$context['loop']['revindex0'] = \$length - 1;
-    \$context['loop']['revindex'] = \$length;
-    \$context['loop']['length'] = \$length;
-    \$context['loop']['last'] = 1 === \$length;
-}
-foreach (\$context['_seq'] as \$context["k"] => \$context["v"]) {
-    echo {$this->getVariableGetter('foo')};
-    ++\$context['loop']['index0'];
-    ++\$context['loop']['index'];
-    \$context['loop']['first'] = false;
-    if (isset(\$context['loop']['length'])) {
-        --\$context['loop']['revindex0'];
-        --\$context['loop']['revindex'];
-        \$context['loop']['last'] = 0 === \$context['loop']['revindex0'];
-    }
-}
-\$_parent = \$context['_parent'];
-unset(\$context['_seq'], \$context['_iterated'], \$context['k'], \$context['v'], \$context['_parent'], \$context['loop']);
-\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
-EOF
-        );
-
-        $keyTarget = new Twig_Node_Expression_AssignName('k', 1);
-        $valueTarget = new Twig_Node_Expression_AssignName('v', 1);
-        $seq = new Twig_Node_Expression_Name('values', 1);
-        $ifexpr = new Twig_Node_Expression_Constant(true, 1);
-        $body = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1)), array(), 1);
-        $else = null;
-        $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1);
-        $node->setAttribute('with_loop', true);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context['_parent'] = (array) \$context;
-\$context['_seq'] = twig_ensure_traversable({$this->getVariableGetter('values')});
-\$context['loop'] = array(
-  'parent' => \$context['_parent'],
-  'index0' => 0,
-  'index'  => 1,
-  'first'  => true,
-);
-foreach (\$context['_seq'] as \$context["k"] => \$context["v"]) {
-    if (true) {
-        echo {$this->getVariableGetter('foo')};
-        ++\$context['loop']['index0'];
-        ++\$context['loop']['index'];
-        \$context['loop']['first'] = false;
-    }
-}
-\$_parent = \$context['_parent'];
-unset(\$context['_seq'], \$context['_iterated'], \$context['k'], \$context['v'], \$context['_parent'], \$context['loop']);
-\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
-EOF
-        );
-
-        $keyTarget = new Twig_Node_Expression_AssignName('k', 1);
-        $valueTarget = new Twig_Node_Expression_AssignName('v', 1);
-        $seq = new Twig_Node_Expression_Name('values', 1);
-        $ifexpr = null;
-        $body = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1)), array(), 1);
-        $else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1);
-        $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $ifexpr, $body, $else, 1);
-        $node->setAttribute('with_loop', true);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context['_parent'] = (array) \$context;
-\$context['_seq'] = twig_ensure_traversable({$this->getVariableGetter('values')});
-\$context['_iterated'] = false;
-\$context['loop'] = array(
-  'parent' => \$context['_parent'],
-  'index0' => 0,
-  'index'  => 1,
-  'first'  => true,
-);
-if (is_array(\$context['_seq']) || (is_object(\$context['_seq']) && \$context['_seq'] instanceof Countable)) {
-    \$length = count(\$context['_seq']);
-    \$context['loop']['revindex0'] = \$length - 1;
-    \$context['loop']['revindex'] = \$length;
-    \$context['loop']['length'] = \$length;
-    \$context['loop']['last'] = 1 === \$length;
-}
-foreach (\$context['_seq'] as \$context["k"] => \$context["v"]) {
-    echo {$this->getVariableGetter('foo')};
-    \$context['_iterated'] = true;
-    ++\$context['loop']['index0'];
-    ++\$context['loop']['index'];
-    \$context['loop']['first'] = false;
-    if (isset(\$context['loop']['length'])) {
-        --\$context['loop']['revindex0'];
-        --\$context['loop']['revindex'];
-        \$context['loop']['last'] = 0 === \$context['loop']['revindex0'];
-    }
-}
-if (!\$context['_iterated']) {
-    echo {$this->getVariableGetter('foo')};
-}
-\$_parent = \$context['_parent'];
-unset(\$context['_seq'], \$context['_iterated'], \$context['k'], \$context['v'], \$context['_parent'], \$context['loop']);
-\$context = array_intersect_key(\$context, \$_parent) + \$_parent;
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/IfTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/IfTest.php
deleted file mode 100644
index e47dd65..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/IfTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_IfTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $t = new Twig_Node(array(
-            new Twig_Node_Expression_Constant(true, 1),
-            new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
-        ), array(), 1);
-        $else = null;
-        $node = new Twig_Node_If($t, $else, 1);
-
-        $this->assertEquals($t, $node->getNode('tests'));
-        $this->assertNull($node->getNode('else'));
-
-        $else = new Twig_Node_Print(new Twig_Node_Expression_Name('bar', 1), 1);
-        $node = new Twig_Node_If($t, $else, 1);
-        $this->assertEquals($else, $node->getNode('else'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $t = new Twig_Node(array(
-            new Twig_Node_Expression_Constant(true, 1),
-            new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
-        ), array(), 1);
-        $else = null;
-        $node = new Twig_Node_If($t, $else, 1);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-if (true) {
-    echo {$this->getVariableGetter('foo')};
-}
-EOF
-        );
-
-        $t = new Twig_Node(array(
-            new Twig_Node_Expression_Constant(true, 1),
-            new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
-            new Twig_Node_Expression_Constant(false, 1),
-            new Twig_Node_Print(new Twig_Node_Expression_Name('bar', 1), 1),
-        ), array(), 1);
-        $else = null;
-        $node = new Twig_Node_If($t, $else, 1);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-if (true) {
-    echo {$this->getVariableGetter('foo')};
-} elseif (false) {
-    echo {$this->getVariableGetter('bar')};
-}
-EOF
-        );
-
-        $t = new Twig_Node(array(
-            new Twig_Node_Expression_Constant(true, 1),
-            new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 1), 1),
-        ), array(), 1);
-        $else = new Twig_Node_Print(new Twig_Node_Expression_Name('bar', 1), 1);
-        $node = new Twig_Node_If($t, $else, 1);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-if (true) {
-    echo {$this->getVariableGetter('foo')};
-} else {
-    echo {$this->getVariableGetter('bar')};
-}
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/ImportTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/ImportTest.php
deleted file mode 100644
index 36525b2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/ImportTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_ImportTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $macro = new Twig_Node_Expression_Constant('foo.twig', 1);
-        $var = new Twig_Node_Expression_AssignName('macro', 1);
-        $node = new Twig_Node_Import($macro, $var, 1);
-
-        $this->assertEquals($macro, $node->getNode('expr'));
-        $this->assertEquals($var, $node->getNode('var'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $macro = new Twig_Node_Expression_Constant('foo.twig', 1);
-        $var = new Twig_Node_Expression_AssignName('macro', 1);
-        $node = new Twig_Node_Import($macro, $var, 1);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context["macro"] = \$this->loadTemplate("foo.twig", null, 1);
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php
deleted file mode 100644
index 6fe5c17..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/IncludeTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_IncludeTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant('foo.twig', 1);
-        $node = new Twig_Node_Include($expr, null, false, false, 1);
-
-        $this->assertNull($node->getNode('variables'));
-        $this->assertEquals($expr, $node->getNode('expr'));
-        $this->assertFalse($node->getAttribute('only'));
-
-        $vars = new Twig_Node_Expression_Array(array(new Twig_Node_Expression_Constant('foo', 1), new Twig_Node_Expression_Constant(true, 1)), 1);
-        $node = new Twig_Node_Include($expr, $vars, true, false, 1);
-        $this->assertEquals($vars, $node->getNode('variables'));
-        $this->assertTrue($node->getAttribute('only'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $expr = new Twig_Node_Expression_Constant('foo.twig', 1);
-        $node = new Twig_Node_Include($expr, null, false, false, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-\$this->loadTemplate("foo.twig", null, 1)->display(\$context);
-EOF
-        );
-
-        $expr = new Twig_Node_Expression_Conditional(
-                        new Twig_Node_Expression_Constant(true, 1),
-                        new Twig_Node_Expression_Constant('foo', 1),
-                        new Twig_Node_Expression_Constant('foo', 1),
-                        0
-                    );
-        $node = new Twig_Node_Include($expr, null, false, false, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-\$this->loadTemplate(((true) ? ("foo") : ("foo")), null, 1)->display(\$context);
-EOF
-        );
-
-        $expr = new Twig_Node_Expression_Constant('foo.twig', 1);
-        $vars = new Twig_Node_Expression_Array(array(new Twig_Node_Expression_Constant('foo', 1), new Twig_Node_Expression_Constant(true, 1)), 1);
-        $node = new Twig_Node_Include($expr, $vars, false, false, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-\$this->loadTemplate("foo.twig", null, 1)->display(array_merge(\$context, array("foo" => true)));
-EOF
-        );
-
-        $node = new Twig_Node_Include($expr, $vars, true, false, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-\$this->loadTemplate("foo.twig", null, 1)->display(array("foo" => true));
-EOF
-        );
-
-        $node = new Twig_Node_Include($expr, $vars, true, true, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-try {
-    \$this->loadTemplate("foo.twig", null, 1)->display(array("foo" => true));
-} catch (Twig_Error_Loader \$e) {
-    // ignore missing template
-}
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/MacroTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/MacroTest.php
deleted file mode 100644
index 901e57b..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/MacroTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_MacroTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $body = new Twig_Node_Text('foo', 1);
-        $arguments = new Twig_Node(array(new Twig_Node_Expression_Name('foo', 1)), array(), 1);
-        $node = new Twig_Node_Macro('foo', $body, $arguments, 1);
-
-        $this->assertEquals($body, $node->getNode('body'));
-        $this->assertEquals($arguments, $node->getNode('arguments'));
-        $this->assertEquals('foo', $node->getAttribute('name'));
-    }
-
-    public function getTests()
-    {
-        $body = new Twig_Node_Text('foo', 1);
-        $arguments = new Twig_Node(array(
-            'foo' => new Twig_Node_Expression_Constant(null, 1),
-            'bar' => new Twig_Node_Expression_Constant('Foo', 1),
-        ), array(), 1);
-        $node = new Twig_Node_Macro('foo', $body, $arguments, 1);
-
-        if (PHP_VERSION_ID >= 50600) {
-            $declaration = ', ...$__varargs__';
-            $varargs = '$__varargs__';
-        } else {
-            $declaration = '';
-            $varargs = 'func_num_args() > 2 ? array_slice(func_get_args(), 2) : array()';
-        }
-
-        return array(
-            array($node, <<<EOF
-// line 1
-public function getfoo(\$__foo__ = null, \$__bar__ = "Foo"$declaration)
-{
-    \$context = \$this->env->mergeGlobals(array(
-        "foo" => \$__foo__,
-        "bar" => \$__bar__,
-        "varargs" => $varargs,
-    ));
-
-    \$blocks = array();
-
-    ob_start();
-    try {
-        echo "foo";
-    } catch (Exception \$e) {
-        ob_end_clean();
-
-        throw \$e;
-    }
-
-    return ('' === \$tmp = ob_get_clean()) ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset());
-}
-EOF
-            ),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php
deleted file mode 100644
index 5688af8..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/ModuleTest.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_ModuleTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $body = new Twig_Node_Text('foo', 1);
-        $parent = new Twig_Node_Expression_Constant('layout.twig', 1);
-        $blocks = new Twig_Node();
-        $macros = new Twig_Node();
-        $traits = new Twig_Node();
-        $filename = 'foo.twig';
-        $node = new Twig_Node_Module($body, $parent, $blocks, $macros, $traits, new Twig_Node(array()), $filename);
-
-        $this->assertEquals($body, $node->getNode('body'));
-        $this->assertEquals($blocks, $node->getNode('blocks'));
-        $this->assertEquals($macros, $node->getNode('macros'));
-        $this->assertEquals($parent, $node->getNode('parent'));
-        $this->assertEquals($filename, $node->getAttribute('filename'));
-    }
-
-    public function getTests()
-    {
-        $twig = new Twig_Environment($this->getMock('Twig_LoaderInterface'));
-
-        $tests = array();
-
-        $body = new Twig_Node_Text('foo', 1);
-        $extends = null;
-        $blocks = new Twig_Node();
-        $macros = new Twig_Node();
-        $traits = new Twig_Node();
-        $filename = 'foo.twig';
-
-        $node = new Twig_Node_Module($body, $extends, $blocks, $macros, $traits, new Twig_Node(array()), $filename);
-        $tests[] = array($node, <<<EOF
-<?php
-
-/* foo.twig */
-class __TwigTemplate_e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 extends Twig_Template
-{
-    public function __construct(Twig_Environment \$env)
-    {
-        parent::__construct(\$env);
-
-        \$this->parent = false;
-
-        \$this->blocks = array(
-        );
-    }
-
-    protected function doDisplay(array \$context, array \$blocks = array())
-    {
-        // line 1
-        echo "foo";
-    }
-
-    public function getTemplateName()
-    {
-        return "foo.twig";
-    }
-
-    public function getDebugInfo()
-    {
-        return array (  19 => 1,);
-    }
-}
-EOF
-        , $twig);
-
-        $import = new Twig_Node_Import(new Twig_Node_Expression_Constant('foo.twig', 1), new Twig_Node_Expression_AssignName('macro', 1), 2);
-
-        $body = new Twig_Node(array($import));
-        $extends = new Twig_Node_Expression_Constant('layout.twig', 1);
-
-        $node = new Twig_Node_Module($body, $extends, $blocks, $macros, $traits, new Twig_Node(array()), $filename);
-        $tests[] = array($node, <<<EOF
-<?php
-
-/* foo.twig */
-class __TwigTemplate_e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 extends Twig_Template
-{
-    public function __construct(Twig_Environment \$env)
-    {
-        parent::__construct(\$env);
-
-        // line 1
-        \$this->parent = \$this->loadTemplate("layout.twig", "foo.twig", 1);
-        \$this->blocks = array(
-        );
-    }
-
-    protected function doGetParent(array \$context)
-    {
-        return "layout.twig";
-    }
-
-    protected function doDisplay(array \$context, array \$blocks = array())
-    {
-        // line 2
-        \$context["macro"] = \$this->loadTemplate("foo.twig", "foo.twig", 2);
-        // line 1
-        \$this->parent->display(\$context, array_merge(\$this->blocks, \$blocks));
-    }
-
-    public function getTemplateName()
-    {
-        return "foo.twig";
-    }
-
-    public function isTraitable()
-    {
-        return false;
-    }
-
-    public function getDebugInfo()
-    {
-        return array (  26 => 1,  24 => 2,  11 => 1,);
-    }
-}
-EOF
-        , $twig);
-
-        $set = new Twig_Node_Set(false, new Twig_Node(array(new Twig_Node_Expression_AssignName('foo', 4))), new Twig_Node(array(new Twig_Node_Expression_Constant('foo', 4))), 4);
-        $body = new Twig_Node(array($set));
-        $extends = new Twig_Node_Expression_Conditional(
-                        new Twig_Node_Expression_Constant(true, 2),
-                        new Twig_Node_Expression_Constant('foo', 2),
-                        new Twig_Node_Expression_Constant('foo', 2),
-                        2
-                    );
-
-        $node = new Twig_Node_Module($body, $extends, $blocks, $macros, $traits, new Twig_Node(array()), $filename);
-        $tests[] = array($node, <<<EOF
-<?php
-
-/* foo.twig */
-class __TwigTemplate_e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 extends Twig_Template
-{
-    protected function doGetParent(array \$context)
-    {
-        // line 2
-        return \$this->loadTemplate(((true) ? ("foo") : ("foo")), "foo.twig", 2);
-    }
-
-    protected function doDisplay(array \$context, array \$blocks = array())
-    {
-        // line 4
-        \$context["foo"] = "foo";
-        // line 2
-        \$this->getParent(\$context)->display(\$context, array_merge(\$this->blocks, \$blocks));
-    }
-
-    public function getTemplateName()
-    {
-        return "foo.twig";
-    }
-
-    public function isTraitable()
-    {
-        return false;
-    }
-
-    public function getDebugInfo()
-    {
-        return array (  17 => 2,  15 => 4,  9 => 2,);
-    }
-}
-EOF
-        , $twig);
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/PrintTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/PrintTest.php
deleted file mode 100644
index 4e0990f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/PrintTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_PrintTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $expr = new Twig_Node_Expression_Constant('foo', 1);
-        $node = new Twig_Node_Print($expr, 1);
-
-        $this->assertEquals($expr, $node->getNode('expr'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-        $tests[] = array(new Twig_Node_Print(new Twig_Node_Expression_Constant('foo', 1), 1), "// line 1\necho \"foo\";");
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/SandboxTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/SandboxTest.php
deleted file mode 100644
index 46ecf97..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/SandboxTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_SandboxTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $body = new Twig_Node_Text('foo', 1);
-        $node = new Twig_Node_Sandbox($body, 1);
-
-        $this->assertEquals($body, $node->getNode('body'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $body = new Twig_Node_Text('foo', 1);
-        $node = new Twig_Node_Sandbox($body, 1);
-
-        $tests[] = array($node, <<<EOF
-// line 1
-\$sandbox = \$this->env->getExtension('sandbox');
-if (!\$alreadySandboxed = \$sandbox->isSandboxed()) {
-    \$sandbox->enableSandbox();
-}
-echo "foo";
-if (!\$alreadySandboxed) {
-    \$sandbox->disableSandbox();
-}
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/SandboxedPrintTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/SandboxedPrintTest.php
deleted file mode 100644
index 05e1854..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/SandboxedPrintTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_SandboxedPrintTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_SandboxedPrint($expr = new Twig_Node_Expression_Constant('foo', 1), 1);
-
-        $this->assertEquals($expr, $node->getNode('expr'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $tests[] = array(new Twig_Node_SandboxedPrint(new Twig_Node_Expression_Constant('foo', 1), 1), <<<EOF
-// line 1
-echo \$this->env->getExtension('sandbox')->ensureToStringAllowed("foo");
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/SetTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/SetTest.php
deleted file mode 100644
index 62ad280..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/SetTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_SetTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $names = new Twig_Node(array(new Twig_Node_Expression_AssignName('foo', 1)), array(), 1);
-        $values = new Twig_Node(array(new Twig_Node_Expression_Constant('foo', 1)), array(), 1);
-        $node = new Twig_Node_Set(false, $names, $values, 1);
-
-        $this->assertEquals($names, $node->getNode('names'));
-        $this->assertEquals($values, $node->getNode('values'));
-        $this->assertFalse($node->getAttribute('capture'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-
-        $names = new Twig_Node(array(new Twig_Node_Expression_AssignName('foo', 1)), array(), 1);
-        $values = new Twig_Node(array(new Twig_Node_Expression_Constant('foo', 1)), array(), 1);
-        $node = new Twig_Node_Set(false, $names, $values, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context["foo"] = "foo";
-EOF
-        );
-
-        $names = new Twig_Node(array(new Twig_Node_Expression_AssignName('foo', 1)), array(), 1);
-        $values = new Twig_Node(array(new Twig_Node_Print(new Twig_Node_Expression_Constant('foo', 1), 1)), array(), 1);
-        $node = new Twig_Node_Set(true, $names, $values, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-ob_start();
-echo "foo";
-\$context["foo"] = ('' === \$tmp = ob_get_clean()) ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset());
-EOF
-        );
-
-        $names = new Twig_Node(array(new Twig_Node_Expression_AssignName('foo', 1)), array(), 1);
-        $values = new Twig_Node_Text('foo', 1);
-        $node = new Twig_Node_Set(true, $names, $values, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-\$context["foo"] = ('' === \$tmp = "foo") ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset());
-EOF
-        );
-
-        $names = new Twig_Node(array(new Twig_Node_Expression_AssignName('foo', 1), new Twig_Node_Expression_AssignName('bar', 1)), array(), 1);
-        $values = new Twig_Node(array(new Twig_Node_Expression_Constant('foo', 1), new Twig_Node_Expression_Name('bar', 1)), array(), 1);
-        $node = new Twig_Node_Set(false, $names, $values, 1);
-        $tests[] = array($node, <<<EOF
-// line 1
-list(\$context["foo"], \$context["bar"]) = array("foo", {$this->getVariableGetter('bar')});
-EOF
-        );
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/SpacelessTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/SpacelessTest.php
deleted file mode 100644
index 222ca09..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/SpacelessTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_SpacelessTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $body = new Twig_Node(array(new Twig_Node_Text('<div>   <div>   foo   </div>   </div>', 1)));
-        $node = new Twig_Node_Spaceless($body, 1);
-
-        $this->assertEquals($body, $node->getNode('body'));
-    }
-
-    public function getTests()
-    {
-        $body = new Twig_Node(array(new Twig_Node_Text('<div>   <div>   foo   </div>   </div>', 1)));
-        $node = new Twig_Node_Spaceless($body, 1);
-
-        return array(
-            array($node, <<<EOF
-// line 1
-ob_start();
-echo "<div>   <div>   foo   </div>   </div>";
-echo trim(preg_replace('/>\s+</', '><', ob_get_clean()));
-EOF
-            ),
-        );
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Node/TextTest.php b/core/vendor/twig/twig/test/Twig/Tests/Node/TextTest.php
deleted file mode 100644
index ceaf67f..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Node/TextTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Node_TextTest extends Twig_Test_NodeTestCase
-{
-    public function testConstructor()
-    {
-        $node = new Twig_Node_Text('foo', 1);
-
-        $this->assertEquals('foo', $node->getAttribute('data'));
-    }
-
-    public function getTests()
-    {
-        $tests = array();
-        $tests[] = array(new Twig_Node_Text('foo', 1), "// line 1\necho \"foo\";");
-
-        return $tests;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/NodeVisitor/OptimizerTest.php b/core/vendor/twig/twig/test/Twig/Tests/NodeVisitor/OptimizerTest.php
deleted file mode 100644
index b5ea7aa..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/NodeVisitor/OptimizerTest.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Tests_NodeVisitor_OptimizerTest extends PHPUnit_Framework_TestCase
-{
-    public function testRenderBlockOptimizer()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-
-        $stream = $env->parse($env->tokenize('{{ block("foo") }}', 'index'));
-
-        $node = $stream->getNode('body')->getNode(0);
-
-        $this->assertEquals('Twig_Node_Expression_BlockReference', get_class($node));
-        $this->assertTrue($node->getAttribute('output'));
-    }
-
-    public function testRenderParentBlockOptimizer()
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-
-        $stream = $env->parse($env->tokenize('{% extends "foo" %}{% block content %}{{ parent() }}{% endblock %}', 'index'));
-
-        $node = $stream->getNode('blocks')->getNode('content')->getNode(0)->getNode('body');
-
-        $this->assertEquals('Twig_Node_Expression_Parent', get_class($node));
-        $this->assertTrue($node->getAttribute('output'));
-    }
-
-    public function testRenderVariableBlockOptimizer()
-    {
-        if (PHP_VERSION_ID >= 50400) {
-            return;
-        }
-
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false));
-        $stream = $env->parse($env->tokenize('{{ block(name|lower) }}', 'index'));
-
-        $node = $stream->getNode('body')->getNode(0)->getNode(1);
-
-        $this->assertEquals('Twig_Node_Expression_BlockReference', get_class($node));
-        $this->assertTrue($node->getAttribute('output'));
-    }
-
-    /**
-     * @dataProvider getTestsForForOptimizer
-     */
-    public function testForOptimizer($template, $expected)
-    {
-        $env = new Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false));
-
-        $stream = $env->parse($env->tokenize($template, 'index'));
-
-        foreach ($expected as $target => $withLoop) {
-            $this->assertTrue($this->checkForConfiguration($stream, $target, $withLoop), sprintf('variable %s is %soptimized', $target, $withLoop ? 'not ' : ''));
-        }
-    }
-
-    public function getTestsForForOptimizer()
-    {
-        return array(
-            array('{% for i in foo %}{% endfor %}', array('i' => false)),
-
-            array('{% for i in foo %}{{ loop.index }}{% endfor %}', array('i' => true)),
-
-            array('{% for i in foo %}{% for j in foo %}{% endfor %}{% endfor %}', array('i' => false, 'j' => false)),
-
-            array('{% for i in foo %}{% include "foo" %}{% endfor %}', array('i' => true)),
-
-            array('{% for i in foo %}{% include "foo" only %}{% endfor %}', array('i' => false)),
-
-            array('{% for i in foo %}{% include "foo" with { "foo": "bar" } only %}{% endfor %}', array('i' => false)),
-
-            array('{% for i in foo %}{% include "foo" with { "foo": loop.index } only %}{% endfor %}', array('i' => true)),
-
-            array('{% for i in foo %}{% for j in foo %}{{ loop.index }}{% endfor %}{% endfor %}', array('i' => false, 'j' => true)),
-
-            array('{% for i in foo %}{% for j in foo %}{{ loop.parent.loop.index }}{% endfor %}{% endfor %}', array('i' => true, 'j' => true)),
-
-            array('{% for i in foo %}{% set l = loop %}{% for j in foo %}{{ l.index }}{% endfor %}{% endfor %}', array('i' => true, 'j' => false)),
-
-            array('{% for i in foo %}{% for j in foo %}{{ foo.parent.loop.index }}{% endfor %}{% endfor %}', array('i' => false, 'j' => false)),
-
-            array('{% for i in foo %}{% for j in foo %}{{ loop["parent"].loop.index }}{% endfor %}{% endfor %}', array('i' => true, 'j' => true)),
-
-            array('{% for i in foo %}{{ include("foo") }}{% endfor %}', array('i' => true)),
-
-            array('{% for i in foo %}{{ include("foo", with_context = false) }}{% endfor %}', array('i' => false)),
-
-            array('{% for i in foo %}{{ include("foo", with_context = true) }}{% endfor %}', array('i' => true)),
-
-            array('{% for i in foo %}{{ include("foo", { "foo": "bar" }, with_context = false) }}{% endfor %}', array('i' => false)),
-
-            array('{% for i in foo %}{{ include("foo", { "foo": loop.index }, with_context = false) }}{% endfor %}', array('i' => true)),
-        );
-    }
-
-    public function checkForConfiguration(Twig_NodeInterface $node = null, $target, $withLoop)
-    {
-        if (null === $node) {
-            return;
-        }
-
-        foreach ($node as $n) {
-            if ($n instanceof Twig_Node_For) {
-                if ($target === $n->getNode('value_target')->getAttribute('name')) {
-                    return $withLoop == $n->getAttribute('with_loop');
-                }
-            }
-
-            $ret = $this->checkForConfiguration($n, $target, $withLoop);
-            if (null !== $ret) {
-                return $ret;
-            }
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php b/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php
deleted file mode 100644
index a451aae..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/ParserTest.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Tests_ParserTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException Twig_Error_Syntax
-     */
-    public function testSetMacroThrowsExceptionOnReservedMethods()
-    {
-        $parser = $this->getParser();
-        $parser->setMacro('parent', $this->getMock('Twig_Node_Macro', array(), array(), '', null));
-    }
-
-    /**
-     * @expectedException        Twig_Error_Syntax
-     * @expectedExceptionMessage Unknown tag name "foo". Did you mean "for" at line 1
-     */
-    public function testUnknownTag()
-    {
-        $stream = new Twig_TokenStream(array(
-            new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 1),
-            new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 1),
-            new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 1),
-            new Twig_Token(Twig_Token::EOF_TYPE, '', 1),
-        ));
-        $parser = new Twig_Parser(new Twig_Environment());
-        $parser->parse($stream);
-    }
-
-    /**
-     * @dataProvider getFilterBodyNodesData
-     */
-    public function testFilterBodyNodes($input, $expected)
-    {
-        $parser = $this->getParser();
-
-        $this->assertEquals($expected, $parser->filterBodyNodes($input));
-    }
-
-    public function getFilterBodyNodesData()
-    {
-        return array(
-            array(
-                new Twig_Node(array(new Twig_Node_Text('   ', 1))),
-                new Twig_Node(array()),
-            ),
-            array(
-                $input = new Twig_Node(array(new Twig_Node_Set(false, new Twig_Node(), new Twig_Node(), 1))),
-                $input,
-            ),
-            array(
-                $input = new Twig_Node(array(new Twig_Node_Set(true, new Twig_Node(), new Twig_Node(array(new Twig_Node(array(new Twig_Node_Text('foo', 1))))), 1))),
-                $input,
-            ),
-        );
-    }
-
-    /**
-     * @dataProvider getFilterBodyNodesDataThrowsException
-     * @expectedException Twig_Error_Syntax
-     */
-    public function testFilterBodyNodesThrowsException($input)
-    {
-        $parser = $this->getParser();
-
-        $parser->filterBodyNodes($input);
-    }
-
-    public function getFilterBodyNodesDataThrowsException()
-    {
-        return array(
-            array(new Twig_Node_Text('foo', 1)),
-            array(new Twig_Node(array(new Twig_Node(array(new Twig_Node_Text('foo', 1)))))),
-        );
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @expectedExceptionMessage A template that extends another one cannot have a body but a byte order mark (BOM) has been detected; it must be removed at line 1.
-     */
-    public function testFilterBodyNodesWithBOM()
-    {
-        $parser = $this->getParser();
-        $parser->filterBodyNodes(new Twig_Node_Text(chr(0xEF).chr(0xBB).chr(0xBF), 1));
-    }
-
-    public function testParseIsReentrant()
-    {
-        $twig = new Twig_Environment(null, array(
-            'autoescape' => false,
-            'optimizations' => 0,
-        ));
-        $twig->addTokenParser(new TestTokenParser());
-
-        $parser = new Twig_Parser($twig);
-
-        $parser->parse(new Twig_TokenStream(array(
-            new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 1),
-            new Twig_Token(Twig_Token::NAME_TYPE, 'test', 1),
-            new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 1),
-            new Twig_Token(Twig_Token::VAR_START_TYPE, '', 1),
-            new Twig_Token(Twig_Token::NAME_TYPE, 'foo', 1),
-            new Twig_Token(Twig_Token::VAR_END_TYPE, '', 1),
-            new Twig_Token(Twig_Token::EOF_TYPE, '', 1),
-        )));
-
-        $this->assertNull($parser->getParent());
-    }
-
-    // The getVarName() must not depend on the template loaders,
-    // If this test does not throw any exception, that's good.
-    // see https://github.com/symfony/symfony/issues/4218
-    public function testGetVarName()
-    {
-        $twig = new Twig_Environment(null, array(
-            'autoescape' => false,
-            'optimizations' => 0,
-        ));
-
-        $twig->parse($twig->tokenize(<<<EOF
-{% from _self import foo %}
-
-{% macro foo() %}
-    {{ foo }}
-{% endmacro %}
-EOF
-        ));
-    }
-
-    protected function getParser()
-    {
-        $parser = new TestParser(new Twig_Environment());
-        $parser->setParent(new Twig_Node());
-        $parser->stream = $this->getMockBuilder('Twig_TokenStream')->disableOriginalConstructor()->getMock();
-
-        return $parser;
-    }
-}
-
-class TestParser extends Twig_Parser
-{
-    public $stream;
-
-    public function filterBodyNodes(Twig_NodeInterface $node)
-    {
-        return parent::filterBodyNodes($node);
-    }
-}
-
-class TestTokenParser extends Twig_TokenParser
-{
-    public function parse(Twig_Token $token)
-    {
-        // simulate the parsing of another template right in the middle of the parsing of the current template
-        $this->parser->parse(new Twig_TokenStream(array(
-            new Twig_Token(Twig_Token::BLOCK_START_TYPE, '', 1),
-            new Twig_Token(Twig_Token::NAME_TYPE, 'extends', 1),
-            new Twig_Token(Twig_Token::STRING_TYPE, 'base', 1),
-            new Twig_Token(Twig_Token::BLOCK_END_TYPE, '', 1),
-            new Twig_Token(Twig_Token::EOF_TYPE, '', 1),
-        )));
-
-        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
-
-        return new Twig_Node(array());
-    }
-
-    public function getTag()
-    {
-        return 'test';
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/AbstractTest.php b/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/AbstractTest.php
deleted file mode 100644
index da97f47..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/AbstractTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-abstract class Twig_Tests_Profiler_Dumper_AbstractTest extends PHPUnit_Framework_TestCase
-{
-    protected function getProfile()
-    {
-        $profile = $this->getMockBuilder('Twig_Profiler_Profile')->disableOriginalConstructor()->getMock();
-
-        $profile->expects($this->any())->method('isRoot')->will($this->returnValue(true));
-        $profile->expects($this->any())->method('getName')->will($this->returnValue('main'));
-        $profile->expects($this->any())->method('getDuration')->will($this->returnValue(1));
-        $profile->expects($this->any())->method('getMemoryUsage')->will($this->returnValue(0));
-        $profile->expects($this->any())->method('getPeakMemoryUsage')->will($this->returnValue(0));
-
-        $subProfiles = array(
-            $this->getIndexProfile(
-                array(
-                    $this->getEmbeddedBlockProfile(),
-                    $this->getEmbeddedTemplateProfile(
-                        array(
-                            $this->getIncludedTemplateProfile(),
-                        )
-                    ),
-                    $this->getMacroProfile(),
-                    $this->getEmbeddedTemplateProfile(
-                        array(
-                            $this->getIncludedTemplateProfile(),
-                        )
-                    ),
-                )
-            ),
-        );
-
-        $profile->expects($this->any())->method('getProfiles')->will($this->returnValue($subProfiles));
-        $profile->expects($this->any())->method('getIterator')->will($this->returnValue(new ArrayIterator($subProfiles)));
-
-        return $profile;
-    }
-
-    private function getIndexProfile(array $subProfiles = array())
-    {
-        return $this->generateProfile('main', 1, true, 'template', 'index.twig', $subProfiles);
-    }
-
-    private function getEmbeddedBlockProfile(array $subProfiles = array())
-    {
-        return $this->generateProfile('body', 0.0001, false, 'block', 'embedded.twig', $subProfiles);
-    }
-
-    private function getEmbeddedTemplateProfile(array $subProfiles = array())
-    {
-        return $this->generateProfile('main', 0.0001, true, 'template', 'embedded.twig', $subProfiles);
-    }
-
-    private function getIncludedTemplateProfile(array $subProfiles = array())
-    {
-        return $this->generateProfile('main', 0.0001, true, 'template', 'included.twig', $subProfiles);
-    }
-
-    private function getMacroProfile(array $subProfiles = array())
-    {
-        return $this->generateProfile('foo', 0.0001, false, 'macro', 'index.twig', $subProfiles);
-    }
-
-    /**
-     * @param string $name
-     * @param float  $duration
-     * @param bool   $isTemplate
-     * @param string $type
-     * @param string $templateName
-     * @param array  $subProfiles
-     *
-     * @return Twig_Profiler_Profile
-     */
-    private function generateProfile($name, $duration, $isTemplate, $type, $templateName, array $subProfiles = array())
-    {
-        $profile = $this->getMockBuilder('Twig_Profiler_Profile')->disableOriginalConstructor()->getMock();
-
-        $profile->expects($this->any())->method('isRoot')->will($this->returnValue(false));
-        $profile->expects($this->any())->method('getName')->will($this->returnValue($name));
-        $profile->expects($this->any())->method('getDuration')->will($this->returnValue($duration));
-        $profile->expects($this->any())->method('getMemoryUsage')->will($this->returnValue(0));
-        $profile->expects($this->any())->method('getPeakMemoryUsage')->will($this->returnValue(0));
-        $profile->expects($this->any())->method('isTemplate')->will($this->returnValue($isTemplate));
-        $profile->expects($this->any())->method('getType')->will($this->returnValue($type));
-        $profile->expects($this->any())->method('getTemplate')->will($this->returnValue($templateName));
-        $profile->expects($this->any())->method('getProfiles')->will($this->returnValue($subProfiles));
-        $profile->expects($this->any())->method('getIterator')->will($this->returnValue(new ArrayIterator($subProfiles)));
-
-        return $profile;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/BlackfireTest.php b/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/BlackfireTest.php
deleted file mode 100644
index 1a1b9d2..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/BlackfireTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Profiler_Dumper_BlackfireTest extends Twig_Tests_Profiler_Dumper_AbstractTest
-{
-    public function testDump()
-    {
-        $dumper = new Twig_Profiler_Dumper_Blackfire();
-
-        $this->assertStringMatchesFormat(<<<EOF
-file-format: BlackfireProbe
-cost-dimensions: wt mu pmu
-request-start: %d.%d
-
-main()//1 %d %d %d
-main()==>index.twig//1 %d %d %d
-index.twig==>embedded.twig::block(body)//1 %d %d 0
-index.twig==>embedded.twig//2 %d %d %d
-embedded.twig==>included.twig//2 %d %d %d
-index.twig==>index.twig::macro(foo)//1 %d %d %d
-EOF
-        , $dumper->dump($this->getProfile()));
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/HtmlTest.php b/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/HtmlTest.php
deleted file mode 100644
index 66a68c4..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/HtmlTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Profiler_Dumper_HtmlTest extends Twig_Tests_Profiler_Dumper_AbstractTest
-{
-    public function testDump()
-    {
-        $dumper = new Twig_Profiler_Dumper_Html();
-        $this->assertStringMatchesFormat(<<<EOF
-<pre>main <span style="color: #d44">%d.%dms/%d%</span>
-└ <span style="background-color: #ffd">index.twig</span> <span style="color: #d44">%d.%dms/%d%</span>
-  └ embedded.twig::block(<span style="background-color: #dfd">body</span>)
-  └ <span style="background-color: #ffd">embedded.twig</span>
-  │ └ <span style="background-color: #ffd">included.twig</span>
-  └ index.twig::macro(<span style="background-color: #ddf">foo</span>)
-  └ <span style="background-color: #ffd">embedded.twig</span>
-    └ <span style="background-color: #ffd">included.twig</span>
-</pre>
-EOF
-        , $dumper->dump($this->getProfile()));
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/TextTest.php b/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/TextTest.php
deleted file mode 100644
index e2ea165..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/TextTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Profiler_Dumper_TextTest extends Twig_Tests_Profiler_Dumper_AbstractTest
-{
-    public function testDump()
-    {
-        $dumper = new Twig_Profiler_Dumper_Text();
-        $this->assertStringMatchesFormat(<<<EOF
-main %d.%dms/%d%
-└ index.twig %d.%dms/%d%
-  └ embedded.twig::block(body)
-  └ embedded.twig
-  │ └ included.twig
-  └ index.twig::macro(foo)
-  └ embedded.twig
-    └ included.twig
-
-EOF
-        , $dumper->dump($this->getProfile()));
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/Profiler/ProfileTest.php b/core/vendor/twig/twig/test/Twig/Tests/Profiler/ProfileTest.php
deleted file mode 100644
index f786f06..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/Profiler/ProfileTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_Profiler_ProfileTest extends PHPUnit_Framework_TestCase
-{
-    public function testConstructor()
-    {
-        $profile = new Twig_Profiler_Profile('template', 'type', 'name');
-
-        $this->assertEquals('template', $profile->getTemplate());
-        $this->assertEquals('type', $profile->getType());
-        $this->assertEquals('name', $profile->getName());
-    }
-
-    public function testIsRoot()
-    {
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::ROOT);
-        $this->assertTrue($profile->isRoot());
-
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::TEMPLATE);
-        $this->assertFalse($profile->isRoot());
-    }
-
-    public function testIsTemplate()
-    {
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::TEMPLATE);
-        $this->assertTrue($profile->isTemplate());
-
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::ROOT);
-        $this->assertFalse($profile->isTemplate());
-    }
-
-    public function testIsBlock()
-    {
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::BLOCK);
-        $this->assertTrue($profile->isBlock());
-
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::ROOT);
-        $this->assertFalse($profile->isBlock());
-    }
-
-    public function testIsMacro()
-    {
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::MACRO);
-        $this->assertTrue($profile->isMacro());
-
-        $profile = new Twig_Profiler_Profile('template', Twig_Profiler_Profile::ROOT);
-        $this->assertFalse($profile->isMacro());
-    }
-
-    public function testGetAddProfile()
-    {
-        $profile = new Twig_Profiler_Profile();
-        $profile->addProfile($a = new Twig_Profiler_Profile());
-        $profile->addProfile($b = new Twig_Profiler_Profile());
-
-        $this->assertSame(array($a, $b), $profile->getProfiles());
-        $this->assertSame(array($a, $b), iterator_to_array($profile));
-    }
-
-    public function testGetDuration()
-    {
-        $profile = new Twig_Profiler_Profile();
-        usleep(1);
-        $profile->leave();
-
-        $this->assertTrue($profile->getDuration() > 0, sprintf('Expected duration > 0, got: %f', $profile->getDuration()));
-    }
-
-    public function testSerialize()
-    {
-        $profile = new Twig_Profiler_Profile('template', 'type', 'name');
-        $profile1 = new Twig_Profiler_Profile('template1', 'type1', 'name1');
-        $profile->addProfile($profile1);
-        $profile->leave();
-        $profile1->leave();
-
-        $profile2 = unserialize(serialize($profile));
-        $profiles = $profile->getProfiles();
-        $this->assertCount(1, $profiles);
-        $profile3 = $profiles[0];
-
-        $this->assertEquals($profile->getTemplate(), $profile2->getTemplate());
-        $this->assertEquals($profile->getType(), $profile2->getType());
-        $this->assertEquals($profile->getName(), $profile2->getName());
-        $this->assertEquals($profile->getDuration(), $profile2->getDuration());
-
-        $this->assertEquals($profile1->getTemplate(), $profile3->getTemplate());
-        $this->assertEquals($profile1->getType(), $profile3->getType());
-        $this->assertEquals($profile1->getName(), $profile3->getName());
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php b/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
deleted file mode 100644
index 64b77f5..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
+++ /dev/null
@@ -1,684 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-class Twig_Tests_TemplateTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException LogicException
-     */
-    public function testDisplayBlocksAcceptTemplateOnlyAsBlocks()
-    {
-        $template = $this->getMockForAbstractClass('Twig_Template', array(), '', false);
-        $template->displayBlock('foo', array(), array('foo' => array(new stdClass(), 'foo')));
-    }
-
-    /**
-     * @dataProvider getAttributeExceptions
-     */
-    public function testGetAttributeExceptions($template, $message, $useExt)
-    {
-        $name = 'index_'.($useExt ? 1 : 0);
-        $templates = array(
-            $name => $template.$useExt, // appending $useExt makes the template content unique
-        );
-
-        $env = new Twig_Environment(new Twig_Loader_Array($templates), array('strict_variables' => true));
-        if (!$useExt) {
-            $env->addNodeVisitor(new CExtDisablingNodeVisitor());
-        }
-        $template = $env->loadTemplate($name);
-
-        $context = array(
-            'string' => 'foo',
-            'null' => null,
-            'empty_array' => array(),
-            'array' => array('foo' => 'foo'),
-            'array_access' => new Twig_TemplateArrayAccessObject(),
-            'magic_exception' => new Twig_TemplateMagicPropertyObjectWithException(),
-            'object' => new stdClass(),
-        );
-
-        try {
-            $template->render($context);
-            $this->fail('Accessing an invalid attribute should throw an exception.');
-        } catch (Twig_Error_Runtime $e) {
-            $this->assertSame(sprintf($message, $name), $e->getMessage());
-        }
-    }
-
-    public function getAttributeExceptions()
-    {
-        $tests = array(
-            array('{{ string["a"] }}', 'Impossible to access a key ("a") on a string variable ("foo") in "%s" at line 1', false),
-            array('{{ null["a"] }}', 'Impossible to access a key ("a") on a null variable in "%s" at line 1', false),
-            array('{{ empty_array["a"] }}', 'Key "a" does not exist as the array is empty in "%s" at line 1', false),
-            array('{{ array["a"] }}', 'Key "a" for array with keys "foo" does not exist in "%s" at line 1', false),
-            array('{{ array_access["a"] }}', 'Key "a" in object with ArrayAccess of class "Twig_TemplateArrayAccessObject" does not exist in "%s" at line 1', false),
-            array('{{ string.a }}', 'Impossible to access an attribute ("a") on a string variable ("foo") in "%s" at line 1', false),
-            array('{{ string.a() }}', 'Impossible to invoke a method ("a") on a string variable ("foo") in "%s" at line 1', false),
-            array('{{ null.a }}', 'Impossible to access an attribute ("a") on a null variable in "%s" at line 1', false),
-            array('{{ null.a() }}', 'Impossible to invoke a method ("a") on a null variable in "%s" at line 1', false),
-            array('{{ empty_array.a }}', 'Key "a" does not exist as the array is empty in "%s" at line 1', false),
-            array('{{ array.a }}', 'Key "a" for array with keys "foo" does not exist in "%s" at line 1', false),
-            array('{{ attribute(array, -10) }}', 'Key "-10" for array with keys "foo" does not exist in "%s" at line 1', false),
-            array('{{ array_access.a }}', 'Method "a" for object "Twig_TemplateArrayAccessObject" does not exist in "%s" at line 1', false),
-            array('{% from _self import foo %}{% macro foo(obj) %}{{ obj.missing_method() }}{% endmacro %}{{ foo(array_access) }}', 'Method "missing_method" for object "Twig_TemplateArrayAccessObject" does not exist in "%s" at line 1', false),
-            array('{{ magic_exception.test }}', 'An exception has been thrown during the rendering of a template ("Hey! Don\'t try to isset me!") in "%s" at line 1.', false),
-            array('{{ object["a"] }}', 'Impossible to access a key "a" on an object of class "stdClass" that does not implement ArrayAccess interface in "%s" at line 1', false),
-        );
-
-        if (function_exists('twig_template_get_attributes')) {
-            foreach (array_slice($tests, 0) as $test) {
-                $test[2] = true;
-                $tests[] = $test;
-            }
-        }
-
-        return $tests;
-    }
-
-    /**
-     * @dataProvider getGetAttributeWithSandbox
-     */
-    public function testGetAttributeWithSandbox($object, $item, $allowed, $useExt)
-    {
-        $twig = new Twig_Environment();
-        $policy = new Twig_Sandbox_SecurityPolicy(array(), array(), array(/*method*/), array(/*prop*/), array());
-        $twig->addExtension(new Twig_Extension_Sandbox($policy, !$allowed));
-        $template = new Twig_TemplateTest($twig, $useExt);
-
-        try {
-            $template->getAttribute($object, $item, array(), 'any');
-
-            if (!$allowed) {
-                $this->fail();
-            }
-        } catch (Twig_Sandbox_SecurityError $e) {
-            if ($allowed) {
-                $this->fail();
-            }
-
-            $this->assertContains('is not allowed', $e->getMessage());
-        }
-    }
-
-    public function getGetAttributeWithSandbox()
-    {
-        $tests = array(
-            array(new Twig_TemplatePropertyObject(), 'defined', false, false),
-            array(new Twig_TemplatePropertyObject(), 'defined', true, false),
-            array(new Twig_TemplateMethodObject(), 'defined', false, false),
-            array(new Twig_TemplateMethodObject(), 'defined', true, false),
-        );
-
-        if (function_exists('twig_template_get_attributes')) {
-            foreach (array_slice($tests, 0) as $test) {
-                $test[3] = true;
-                $tests[] = $test;
-            }
-        }
-
-        return $tests;
-    }
-
-    /**
-     * @dataProvider getGetAttributeWithTemplateAsObject
-     */
-    public function testGetAttributeWithTemplateAsObject($useExt)
-    {
-        $template = new Twig_TemplateTest(new Twig_Environment(), $useExt);
-        $template1 = new Twig_TemplateTest(new Twig_Environment(), false);
-
-        $this->assertInstanceof('Twig_Markup', $template->getAttribute($template1, 'string'));
-        $this->assertEquals('some_string', $template->getAttribute($template1, 'string'));
-
-        $this->assertInstanceof('Twig_Markup', $template->getAttribute($template1, 'true'));
-        $this->assertEquals('1', $template->getAttribute($template1, 'true'));
-
-        $this->assertInstanceof('Twig_Markup', $template->getAttribute($template1, 'zero'));
-        $this->assertEquals('0', $template->getAttribute($template1, 'zero'));
-
-        $this->assertNotInstanceof('Twig_Markup', $template->getAttribute($template1, 'empty'));
-        $this->assertSame('', $template->getAttribute($template1, 'empty'));
-
-        $this->assertFalse($template->getAttribute($template1, 'env', array(), Twig_Template::ANY_CALL, true));
-        $this->assertFalse($template->getAttribute($template1, 'environment', array(), Twig_Template::ANY_CALL, true));
-        $this->assertFalse($template->getAttribute($template1, 'getEnvironment', array(), Twig_Template::METHOD_CALL, true));
-        $this->assertFalse($template->getAttribute($template1, 'displayWithErrorHandling', array(), Twig_Template::METHOD_CALL, true));
-    }
-
-    public function getGetAttributeWithTemplateAsObject()
-    {
-        $bools = array(
-            array(false),
-        );
-
-        if (function_exists('twig_template_get_attributes')) {
-            $bools[] = array(true);
-        }
-
-        return $bools;
-    }
-
-    /**
-     * @dataProvider getTestsDependingOnExtensionAvailability
-     */
-    public function testGetAttributeOnArrayWithConfusableKey($useExt = false)
-    {
-        $template = new Twig_TemplateTest(
-            new Twig_Environment(),
-            $useExt
-        );
-
-        $array = array('Zero', 'One', -1 => 'MinusOne', '' => 'EmptyString', '1.5' => 'FloatButString', '01' => 'IntegerButStringWithLeadingZeros');
-
-        $this->assertSame('Zero', $array[false]);
-        $this->assertSame('One', $array[true]);
-        $this->assertSame('One', $array[1.5]);
-        $this->assertSame('One', $array['1']);
-        $this->assertSame('MinusOne', $array[-1.5]);
-        $this->assertSame('FloatButString', $array['1.5']);
-        $this->assertSame('IntegerButStringWithLeadingZeros', $array['01']);
-        $this->assertSame('EmptyString', $array[null]);
-
-        $this->assertSame('Zero', $template->getAttribute($array, false), 'false is treated as 0 when accessing an array (equals PHP behavior)');
-        $this->assertSame('One', $template->getAttribute($array, true), 'true is treated as 1 when accessing an array (equals PHP behavior)');
-        $this->assertSame('One', $template->getAttribute($array, 1.5), 'float is casted to int when accessing an array (equals PHP behavior)');
-        $this->assertSame('One', $template->getAttribute($array, '1'), '"1" is treated as integer 1 when accessing an array (equals PHP behavior)');
-        $this->assertSame('MinusOne', $template->getAttribute($array, -1.5), 'negative float is casted to int when accessing an array (equals PHP behavior)');
-        $this->assertSame('FloatButString', $template->getAttribute($array, '1.5'), '"1.5" is treated as-is when accessing an array (equals PHP behavior)');
-        $this->assertSame('IntegerButStringWithLeadingZeros', $template->getAttribute($array, '01'), '"01" is treated as-is when accessing an array (equals PHP behavior)');
-        $this->assertSame('EmptyString', $template->getAttribute($array, null), 'null is treated as "" when accessing an array (equals PHP behavior)');
-    }
-
-    public function getTestsDependingOnExtensionAvailability()
-    {
-        if (function_exists('twig_template_get_attributes')) {
-            return array(array(false), array(true));
-        }
-
-        return array(array(false));
-    }
-
-    /**
-     * @dataProvider getGetAttributeTests
-     */
-    public function testGetAttribute($defined, $value, $object, $item, $arguments, $type, $useExt = false)
-    {
-        $template = new Twig_TemplateTest(new Twig_Environment(), $useExt);
-
-        $this->assertEquals($value, $template->getAttribute($object, $item, $arguments, $type));
-    }
-
-    /**
-     * @dataProvider getGetAttributeTests
-     */
-    public function testGetAttributeStrict($defined, $value, $object, $item, $arguments, $type, $useExt = false, $exceptionMessage = null)
-    {
-        $template = new Twig_TemplateTest(new Twig_Environment(null, array('strict_variables' => true)), $useExt);
-
-        if ($defined) {
-            $this->assertEquals($value, $template->getAttribute($object, $item, $arguments, $type));
-        } else {
-            try {
-                $this->assertEquals($value, $template->getAttribute($object, $item, $arguments, $type));
-
-                throw new Exception('Expected Twig_Error_Runtime exception.');
-            } catch (Twig_Error_Runtime $e) {
-                if (null !== $exceptionMessage) {
-                    $this->assertSame($exceptionMessage, $e->getMessage());
-                }
-            }
-        }
-    }
-
-    /**
-     * @dataProvider getGetAttributeTests
-     */
-    public function testGetAttributeDefined($defined, $value, $object, $item, $arguments, $type, $useExt = false)
-    {
-        $template = new Twig_TemplateTest(new Twig_Environment(), $useExt);
-
-        $this->assertEquals($defined, $template->getAttribute($object, $item, $arguments, $type, true));
-    }
-
-    /**
-     * @dataProvider getGetAttributeTests
-     */
-    public function testGetAttributeDefinedStrict($defined, $value, $object, $item, $arguments, $type, $useExt = false)
-    {
-        $template = new Twig_TemplateTest(new Twig_Environment(null, array('strict_variables' => true)), $useExt);
-
-        $this->assertEquals($defined, $template->getAttribute($object, $item, $arguments, $type, true));
-    }
-
-    /**
-     * @dataProvider getTestsDependingOnExtensionAvailability
-     */
-    public function testGetAttributeCallExceptions($useExt = false)
-    {
-        $template = new Twig_TemplateTest(new Twig_Environment(), $useExt);
-
-        $object = new Twig_TemplateMagicMethodExceptionObject();
-
-        $this->assertNull($template->getAttribute($object, 'foo'));
-    }
-
-    public function getGetAttributeTests()
-    {
-        $array = array(
-            'defined' => 'defined',
-            'zero' => 0,
-            'null' => null,
-            '1' => 1,
-            'bar' => true,
-            '09' => '09',
-            '+4' => '+4',
-        );
-
-        $objectArray = new Twig_TemplateArrayAccessObject();
-        $stdObject = (object) $array;
-        $magicPropertyObject = new Twig_TemplateMagicPropertyObject();
-        $propertyObject = new Twig_TemplatePropertyObject();
-        $propertyObject1 = new Twig_TemplatePropertyObjectAndIterator();
-        $propertyObject2 = new Twig_TemplatePropertyObjectAndArrayAccess();
-        $propertyObject3 = new Twig_TemplatePropertyObjectDefinedWithUndefinedValue();
-        $methodObject = new Twig_TemplateMethodObject();
-        $magicMethodObject = new Twig_TemplateMagicMethodObject();
-
-        $anyType = Twig_Template::ANY_CALL;
-        $methodType = Twig_Template::METHOD_CALL;
-        $arrayType = Twig_Template::ARRAY_CALL;
-
-        $basicTests = array(
-            // array(defined, value, property to fetch)
-            array(true,  'defined', 'defined'),
-            array(false, null,      'undefined'),
-            array(false, null,      'protected'),
-            array(true,  0,         'zero'),
-            array(true,  1,         1),
-            array(true,  1,         1.0),
-            array(true,  null,      'null'),
-            array(true,  true,      'bar'),
-            array(true,  '09',      '09'),
-            array(true,  '+4',      '+4'),
-        );
-        $testObjects = array(
-            // array(object, type of fetch)
-            array($array,               $arrayType),
-            array($objectArray,         $arrayType),
-            array($stdObject,           $anyType),
-            array($magicPropertyObject, $anyType),
-            array($methodObject,        $methodType),
-            array($methodObject,        $anyType),
-            array($propertyObject,      $anyType),
-            array($propertyObject1,     $anyType),
-            array($propertyObject2,     $anyType),
-        );
-
-        $tests = array();
-        foreach ($testObjects as $testObject) {
-            foreach ($basicTests as $test) {
-                // properties cannot be numbers
-                if (($testObject[0] instanceof stdClass || $testObject[0] instanceof Twig_TemplatePropertyObject) && is_numeric($test[2])) {
-                    continue;
-                }
-
-                if ('+4' === $test[2] && $methodObject === $testObject[0]) {
-                    continue;
-                }
-
-                $tests[] = array($test[0], $test[1], $testObject[0], $test[2], array(), $testObject[1]);
-            }
-        }
-
-        // additional properties tests
-        $tests = array_merge($tests, array(
-            array(true, null, $propertyObject3, 'foo', array(), $anyType),
-        ));
-
-        // additional method tests
-        $tests = array_merge($tests, array(
-            array(true, 'defined', $methodObject, 'defined',    array(), $methodType),
-            array(true, 'defined', $methodObject, 'DEFINED',    array(), $methodType),
-            array(true, 'defined', $methodObject, 'getDefined', array(), $methodType),
-            array(true, 'defined', $methodObject, 'GETDEFINED', array(), $methodType),
-            array(true, 'static',  $methodObject, 'static',     array(), $methodType),
-            array(true, 'static',  $methodObject, 'getStatic',  array(), $methodType),
-
-            array(true, '__call_undefined', $magicMethodObject, 'undefined', array(), $methodType),
-            array(true, '__call_UNDEFINED', $magicMethodObject, 'UNDEFINED', array(), $methodType),
-        ));
-
-        // add the same tests for the any type
-        foreach ($tests as $test) {
-            if ($anyType !== $test[5]) {
-                $test[5] = $anyType;
-                $tests[] = $test;
-            }
-        }
-
-        $methodAndPropObject = new Twig_TemplateMethodAndPropObject();
-
-        // additional method tests
-        $tests = array_merge($tests, array(
-            array(true, 'a', $methodAndPropObject, 'a', array(), $anyType),
-            array(true, 'a', $methodAndPropObject, 'a', array(), $methodType),
-            array(false, null, $methodAndPropObject, 'a', array(), $arrayType),
-
-            array(true, 'b_prop', $methodAndPropObject, 'b', array(), $anyType),
-            array(true, 'b', $methodAndPropObject, 'B', array(), $anyType),
-            array(true, 'b', $methodAndPropObject, 'b', array(), $methodType),
-            array(true, 'b', $methodAndPropObject, 'B', array(), $methodType),
-            array(false, null, $methodAndPropObject, 'b', array(), $arrayType),
-
-            array(false, null, $methodAndPropObject, 'c', array(), $anyType),
-            array(false, null, $methodAndPropObject, 'c', array(), $methodType),
-            array(false, null, $methodAndPropObject, 'c', array(), $arrayType),
-
-        ));
-
-        // tests when input is not an array or object
-        $tests = array_merge($tests, array(
-            array(false, null, 42, 'a', array(), $anyType, false, 'Impossible to access an attribute ("a") on a integer variable ("42")'),
-            array(false, null, 'string', 'a', array(), $anyType, false, 'Impossible to access an attribute ("a") on a string variable ("string")'),
-            array(false, null, array(), 'a', array(), $anyType, false, 'Key "a" does not exist as the array is empty'),
-        ));
-
-        // add twig_template_get_attributes tests
-
-        if (function_exists('twig_template_get_attributes')) {
-            foreach (array_slice($tests, 0) as $test) {
-                $test = array_pad($test, 7, null);
-                $test[6] = true;
-                $tests[] = $test;
-            }
-        }
-
-        return $tests;
-    }
-}
-
-class Twig_TemplateTest extends Twig_Template
-{
-    protected $useExtGetAttribute = false;
-
-    public function __construct(Twig_Environment $env, $useExtGetAttribute = false)
-    {
-        parent::__construct($env);
-        $this->useExtGetAttribute = $useExtGetAttribute;
-        self::$cache = array();
-    }
-
-    public function getZero()
-    {
-        return 0;
-    }
-
-    public function getEmpty()
-    {
-        return '';
-    }
-
-    public function getString()
-    {
-        return 'some_string';
-    }
-
-    public function getTrue()
-    {
-        return true;
-    }
-
-    public function getTemplateName()
-    {
-    }
-
-    public function getDebugInfo()
-    {
-        return array();
-    }
-
-    protected function doGetParent(array $context)
-    {
-    }
-
-    protected function doDisplay(array $context, array $blocks = array())
-    {
-    }
-
-    public function getAttribute($object, $item, array $arguments = array(), $type = Twig_Template::ANY_CALL, $isDefinedTest = false, $ignoreStrictCheck = false)
-    {
-        if ($this->useExtGetAttribute) {
-            return twig_template_get_attributes($this, $object, $item, $arguments, $type, $isDefinedTest, $ignoreStrictCheck);
-        } else {
-            return parent::getAttribute($object, $item, $arguments, $type, $isDefinedTest, $ignoreStrictCheck);
-        }
-    }
-}
-
-class Twig_TemplateArrayAccessObject implements ArrayAccess
-{
-    protected $protected = 'protected';
-
-    public $attributes = array(
-        'defined' => 'defined',
-        'zero' => 0,
-        'null' => null,
-        '1' => 1,
-        'bar' => true,
-        '09' => '09',
-        '+4' => '+4',
-    );
-
-    public function offsetExists($name)
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    public function offsetGet($name)
-    {
-        return array_key_exists($name, $this->attributes) ? $this->attributes[$name] : null;
-    }
-
-    public function offsetSet($name, $value)
-    {
-    }
-
-    public function offsetUnset($name)
-    {
-    }
-}
-
-class Twig_TemplateMagicPropertyObject
-{
-    public $defined = 'defined';
-
-    public $attributes = array(
-        'zero' => 0,
-        'null' => null,
-        '1' => 1,
-        'bar' => true,
-        '09' => '09',
-        '+4' => '+4',
-    );
-
-    protected $protected = 'protected';
-
-    public function __isset($name)
-    {
-        return array_key_exists($name, $this->attributes);
-    }
-
-    public function __get($name)
-    {
-        return array_key_exists($name, $this->attributes) ? $this->attributes[$name] : null;
-    }
-}
-
-class Twig_TemplateMagicPropertyObjectWithException
-{
-    public function __isset($key)
-    {
-        throw new Exception('Hey! Don\'t try to isset me!');
-    }
-}
-
-class Twig_TemplatePropertyObject
-{
-    public $defined = 'defined';
-    public $zero = 0;
-    public $null = null;
-    public $bar = true;
-
-    protected $protected = 'protected';
-}
-
-class Twig_TemplatePropertyObjectAndIterator extends Twig_TemplatePropertyObject implements IteratorAggregate
-{
-    public function getIterator()
-    {
-        return new ArrayIterator(array('foo', 'bar'));
-    }
-}
-
-class Twig_TemplatePropertyObjectAndArrayAccess extends Twig_TemplatePropertyObject implements ArrayAccess
-{
-    private $data = array();
-
-    public function offsetExists($offset)
-    {
-        return array_key_exists($offset, $this->data);
-    }
-
-    public function offsetGet($offset)
-    {
-        return $this->offsetExists($offset) ? $this->data[$offset] : 'n/a';
-    }
-
-    public function offsetSet($offset, $value)
-    {
-    }
-
-    public function offsetUnset($offset)
-    {
-    }
-}
-
-class Twig_TemplatePropertyObjectDefinedWithUndefinedValue
-{
-    public $foo;
-
-    public function __construct()
-    {
-        $this->foo = @$notExist;
-    }
-}
-
-class Twig_TemplateMethodObject
-{
-    public function getDefined()
-    {
-        return 'defined';
-    }
-
-    public function get1()
-    {
-        return 1;
-    }
-
-    public function get09()
-    {
-        return '09';
-    }
-
-    public function getZero()
-    {
-        return 0;
-    }
-
-    public function getNull()
-    {
-    }
-
-    public function isBar()
-    {
-        return true;
-    }
-
-    protected function getProtected()
-    {
-        return 'protected';
-    }
-
-    public static function getStatic()
-    {
-        return 'static';
-    }
-}
-
-class Twig_TemplateMethodAndPropObject
-{
-    private $a = 'a_prop';
-    public function getA()
-    {
-        return 'a';
-    }
-
-    public $b = 'b_prop';
-    public function getB()
-    {
-        return 'b';
-    }
-
-    private $c = 'c_prop';
-    private function getC()
-    {
-        return 'c';
-    }
-}
-
-class Twig_TemplateMagicMethodObject
-{
-    public function __call($method, $arguments)
-    {
-        return '__call_'.$method;
-    }
-}
-
-class Twig_TemplateMagicMethodExceptionObject
-{
-    public function __call($method, $arguments)
-    {
-        throw new BadMethodCallException(sprintf('Unkown method %s', $method));
-    }
-}
-
-class CExtDisablingNodeVisitor implements Twig_NodeVisitorInterface
-{
-    public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        if ($node instanceof Twig_Node_Expression_GetAttr) {
-            $node->setAttribute('disable_c_ext', true);
-        }
-
-        return $node;
-    }
-
-    public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
-    {
-        return $node;
-    }
-
-    public function getPriority()
-    {
-        return 0;
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/TokenStreamTest.php b/core/vendor/twig/twig/test/Twig/Tests/TokenStreamTest.php
deleted file mode 100644
index fd4ec63..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/TokenStreamTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-class Twig_Tests_TokenStreamTest extends PHPUnit_Framework_TestCase
-{
-    protected static $tokens;
-
-    public function setUp()
-    {
-        self::$tokens = array(
-            new Twig_Token(Twig_Token::TEXT_TYPE, 1, 1),
-            new Twig_Token(Twig_Token::TEXT_TYPE, 2, 1),
-            new Twig_Token(Twig_Token::TEXT_TYPE, 3, 1),
-            new Twig_Token(Twig_Token::TEXT_TYPE, 4, 1),
-            new Twig_Token(Twig_Token::TEXT_TYPE, 5, 1),
-            new Twig_Token(Twig_Token::TEXT_TYPE, 6, 1),
-            new Twig_Token(Twig_Token::TEXT_TYPE, 7, 1),
-            new Twig_Token(Twig_Token::EOF_TYPE, 0, 1),
-        );
-    }
-
-    public function testNext()
-    {
-        $stream = new Twig_TokenStream(self::$tokens);
-        $repr = array();
-        while (!$stream->isEOF()) {
-            $token = $stream->next();
-
-            $repr[] = $token->getValue();
-        }
-        $this->assertEquals('1, 2, 3, 4, 5, 6, 7', implode(', ', $repr), '->next() advances the pointer and returns the current token');
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @expectedMessage   Unexpected end of template
-     */
-    public function testEndOfTemplateNext()
-    {
-        $stream = new Twig_TokenStream(array(
-            new Twig_Token(Twig_Token::BLOCK_START_TYPE, 1, 1),
-        ));
-        while (!$stream->isEOF()) {
-            $stream->next();
-        }
-    }
-
-    /**
-     * @expectedException Twig_Error_Syntax
-     * @expectedMessage   Unexpected end of template
-     */
-    public function testEndOfTemplateLook()
-    {
-        $stream = new Twig_TokenStream(array(
-            new Twig_Token(Twig_Token::BLOCK_START_TYPE, 1, 1),
-        ));
-        while (!$stream->isEOF()) {
-            $stream->look();
-            $stream->next();
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php b/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php
deleted file mode 100644
index 98422a5..0000000
--- a/core/vendor/twig/twig/test/Twig/Tests/escapingTest.php
+++ /dev/null
@@ -1,320 +0,0 @@
-<?php
-
-/**
- * This class is adapted from code coming from Zend Framework.
- *
- * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-class Twig_Test_EscapingTest extends PHPUnit_Framework_TestCase
-{
-    /**
-     * All character encodings supported by htmlspecialchars().
-     */
-    protected $htmlSpecialChars = array(
-        '\'' => '&#039;',
-        '"' => '&quot;',
-        '<' => '&lt;',
-        '>' => '&gt;',
-        '&' => '&amp;',
-    );
-
-    protected $htmlAttrSpecialChars = array(
-        '\'' => '&#x27;',
-        /* Characters beyond ASCII value 255 to unicode escape */
-        'Ā' => '&#x0100;',
-        /* Immune chars excluded */
-        ',' => ',',
-        '.' => '.',
-        '-' => '-',
-        '_' => '_',
-        /* Basic alnums excluded */
-        'a' => 'a',
-        'A' => 'A',
-        'z' => 'z',
-        'Z' => 'Z',
-        '0' => '0',
-        '9' => '9',
-        /* Basic control characters and null */
-        "\r" => '&#x0D;',
-        "\n" => '&#x0A;',
-        "\t" => '&#x09;',
-        "\0" => '&#xFFFD;', // should use Unicode replacement char
-        /* Encode chars as named entities where possible */
-        '<' => '&lt;',
-        '>' => '&gt;',
-        '&' => '&amp;',
-        '"' => '&quot;',
-        /* Encode spaces for quoteless attribute protection */
-        ' ' => '&#x20;',
-    );
-
-    protected $jsSpecialChars = array(
-        /* HTML special chars - escape without exception to hex */
-        '<' => '\\x3C',
-        '>' => '\\x3E',
-        '\'' => '\\x27',
-        '"' => '\\x22',
-        '&' => '\\x26',
-        /* Characters beyond ASCII value 255 to unicode escape */
-        'Ā' => '\\u0100',
-        /* Immune chars excluded */
-        ',' => ',',
-        '.' => '.',
-        '_' => '_',
-        /* Basic alnums excluded */
-        'a' => 'a',
-        'A' => 'A',
-        'z' => 'z',
-        'Z' => 'Z',
-        '0' => '0',
-        '9' => '9',
-        /* Basic control characters and null */
-        "\r" => '\\x0D',
-        "\n" => '\\x0A',
-        "\t" => '\\x09',
-        "\0" => '\\x00',
-        /* Encode spaces for quoteless attribute protection */
-        ' ' => '\\x20',
-    );
-
-    protected $urlSpecialChars = array(
-        /* HTML special chars - escape without exception to percent encoding */
-        '<' => '%3C',
-        '>' => '%3E',
-        '\'' => '%27',
-        '"' => '%22',
-        '&' => '%26',
-        /* Characters beyond ASCII value 255 to hex sequence */
-        'Ā' => '%C4%80',
-        /* Punctuation and unreserved check */
-        ',' => '%2C',
-        '.' => '.',
-        '_' => '_',
-        '-' => '-',
-        ':' => '%3A',
-        ';' => '%3B',
-        '!' => '%21',
-        /* Basic alnums excluded */
-        'a' => 'a',
-        'A' => 'A',
-        'z' => 'z',
-        'Z' => 'Z',
-        '0' => '0',
-        '9' => '9',
-        /* Basic control characters and null */
-        "\r" => '%0D',
-        "\n" => '%0A',
-        "\t" => '%09',
-        "\0" => '%00',
-        /* PHP quirks from the past */
-        ' ' => '%20',
-        '~' => '~',
-        '+' => '%2B',
-    );
-
-    protected $cssSpecialChars = array(
-        /* HTML special chars - escape without exception to hex */
-        '<' => '\\3C ',
-        '>' => '\\3E ',
-        '\'' => '\\27 ',
-        '"' => '\\22 ',
-        '&' => '\\26 ',
-        /* Characters beyond ASCII value 255 to unicode escape */
-        'Ā' => '\\100 ',
-        /* Immune chars excluded */
-        ',' => '\\2C ',
-        '.' => '\\2E ',
-        '_' => '\\5F ',
-        /* Basic alnums excluded */
-        'a' => 'a',
-        'A' => 'A',
-        'z' => 'z',
-        'Z' => 'Z',
-        '0' => '0',
-        '9' => '9',
-        /* Basic control characters and null */
-        "\r" => '\\D ',
-        "\n" => '\\A ',
-        "\t" => '\\9 ',
-        "\0" => '\\0 ',
-        /* Encode spaces for quoteless attribute protection */
-        ' ' => '\\20 ',
-    );
-
-    protected $env;
-
-    public function setUp()
-    {
-        $this->env = new Twig_Environment();
-    }
-
-    public function testHtmlEscapingConvertsSpecialChars()
-    {
-        foreach ($this->htmlSpecialChars as $key => $value) {
-            $this->assertEquals($value, twig_escape_filter($this->env, $key, 'html'), 'Failed to escape: '.$key);
-        }
-    }
-
-    public function testHtmlAttributeEscapingConvertsSpecialChars()
-    {
-        foreach ($this->htmlAttrSpecialChars as $key => $value) {
-            $this->assertEquals($value, twig_escape_filter($this->env, $key, 'html_attr'), 'Failed to escape: '.$key);
-        }
-    }
-
-    public function testJavascriptEscapingConvertsSpecialChars()
-    {
-        foreach ($this->jsSpecialChars as $key => $value) {
-            $this->assertEquals($value, twig_escape_filter($this->env, $key, 'js'), 'Failed to escape: '.$key);
-        }
-    }
-
-    public function testJavascriptEscapingReturnsStringIfZeroLength()
-    {
-        $this->assertEquals('', twig_escape_filter($this->env, '', 'js'));
-    }
-
-    public function testJavascriptEscapingReturnsStringIfContainsOnlyDigits()
-    {
-        $this->assertEquals('123', twig_escape_filter($this->env, '123', 'js'));
-    }
-
-    public function testCssEscapingConvertsSpecialChars()
-    {
-        foreach ($this->cssSpecialChars as $key => $value) {
-            $this->assertEquals($value, twig_escape_filter($this->env, $key, 'css'), 'Failed to escape: '.$key);
-        }
-    }
-
-    public function testCssEscapingReturnsStringIfZeroLength()
-    {
-        $this->assertEquals('', twig_escape_filter($this->env, '', 'css'));
-    }
-
-    public function testCssEscapingReturnsStringIfContainsOnlyDigits()
-    {
-        $this->assertEquals('123', twig_escape_filter($this->env, '123', 'css'));
-    }
-
-    public function testUrlEscapingConvertsSpecialChars()
-    {
-        foreach ($this->urlSpecialChars as $key => $value) {
-            $this->assertEquals($value, twig_escape_filter($this->env, $key, 'url'), 'Failed to escape: '.$key);
-        }
-    }
-
-    /**
-     * Range tests to confirm escaped range of characters is within OWASP recommendation.
-     */
-
-    /**
-     * Only testing the first few 2 ranges on this prot. function as that's all these
-     * other range tests require.
-     */
-    public function testUnicodeCodepointConversionToUtf8()
-    {
-        $expected = ' ~ޙ';
-        $codepoints = array(0x20, 0x7e, 0x799);
-        $result = '';
-        foreach ($codepoints as $value) {
-            $result .= $this->codepointToUtf8($value);
-        }
-        $this->assertEquals($expected, $result);
-    }
-
-    /**
-     * Convert a Unicode Codepoint to a literal UTF-8 character.
-     *
-     * @param int $codepoint Unicode codepoint in hex notation
-     *
-     * @return string UTF-8 literal string
-     */
-    protected function codepointToUtf8($codepoint)
-    {
-        if ($codepoint < 0x80) {
-            return chr($codepoint);
-        }
-        if ($codepoint < 0x800) {
-            return chr($codepoint >> 6 & 0x3f | 0xc0)
-                .chr($codepoint & 0x3f | 0x80);
-        }
-        if ($codepoint < 0x10000) {
-            return chr($codepoint >> 12 & 0x0f | 0xe0)
-                .chr($codepoint >> 6 & 0x3f | 0x80)
-                .chr($codepoint & 0x3f | 0x80);
-        }
-        if ($codepoint < 0x110000) {
-            return chr($codepoint >> 18 & 0x07 | 0xf0)
-                .chr($codepoint >> 12 & 0x3f | 0x80)
-                .chr($codepoint >> 6 & 0x3f | 0x80)
-                .chr($codepoint & 0x3f | 0x80);
-        }
-        throw new Exception('Codepoint requested outside of Unicode range');
-    }
-
-    public function testJavascriptEscapingEscapesOwaspRecommendedRanges()
-    {
-        $immune = array(',', '.', '_'); // Exceptions to escaping ranges
-        for ($chr = 0; $chr < 0xFF; ++$chr) {
-            if ($chr >= 0x30 && $chr <= 0x39
-            || $chr >= 0x41 && $chr <= 0x5A
-            || $chr >= 0x61 && $chr <= 0x7A) {
-                $literal = $this->codepointToUtf8($chr);
-                $this->assertEquals($literal, twig_escape_filter($this->env, $literal, 'js'));
-            } else {
-                $literal = $this->codepointToUtf8($chr);
-                if (in_array($literal, $immune)) {
-                    $this->assertEquals($literal, twig_escape_filter($this->env, $literal, 'js'));
-                } else {
-                    $this->assertNotEquals(
-                        $literal,
-                        twig_escape_filter($this->env, $literal, 'js'),
-                        "$literal should be escaped!");
-                }
-            }
-        }
-    }
-
-    public function testHtmlAttributeEscapingEscapesOwaspRecommendedRanges()
-    {
-        $immune = array(',', '.', '-', '_'); // Exceptions to escaping ranges
-        for ($chr = 0; $chr < 0xFF; ++$chr) {
-            if ($chr >= 0x30 && $chr <= 0x39
-            || $chr >= 0x41 && $chr <= 0x5A
-            || $chr >= 0x61 && $chr <= 0x7A) {
-                $literal = $this->codepointToUtf8($chr);
-                $this->assertEquals($literal, twig_escape_filter($this->env, $literal, 'html_attr'));
-            } else {
-                $literal = $this->codepointToUtf8($chr);
-                if (in_array($literal, $immune)) {
-                    $this->assertEquals($literal, twig_escape_filter($this->env, $literal, 'html_attr'));
-                } else {
-                    $this->assertNotEquals(
-                        $literal,
-                        twig_escape_filter($this->env, $literal, 'html_attr'),
-                        "$literal should be escaped!");
-                }
-            }
-        }
-    }
-
-    public function testCssEscapingEscapesOwaspRecommendedRanges()
-    {
-        // CSS has no exceptions to escaping ranges
-        for ($chr = 0; $chr < 0xFF; ++$chr) {
-            if ($chr >= 0x30 && $chr <= 0x39
-            || $chr >= 0x41 && $chr <= 0x5A
-            || $chr >= 0x61 && $chr <= 0x7A) {
-                $literal = $this->codepointToUtf8($chr);
-                $this->assertEquals($literal, twig_escape_filter($this->env, $literal, 'css'));
-            } else {
-                $literal = $this->codepointToUtf8($chr);
-                $this->assertNotEquals(
-                    $literal,
-                    twig_escape_filter($this->env, $literal, 'css'),
-                    "$literal should be escaped!");
-            }
-        }
-    }
-}
diff --git a/core/vendor/twig/twig/test/bootstrap.php b/core/vendor/twig/twig/test/bootstrap.php
deleted file mode 100644
index aecb976..0000000
--- a/core/vendor/twig/twig/test/bootstrap.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/*
- * This file is part of Twig.
- *
- * (c) Fabien Potencier
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-require_once dirname(__FILE__).'/../lib/Twig/Autoloader.php';
-Twig_Autoloader::register(true);
diff --git a/core/vendor/web.config b/core/vendor/web.config
deleted file mode 100644
index 2e065e2..0000000
--- a/core/vendor/web.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<configuration>
-  <system.webServer>
-    <authorization>
-      <deny users="*">
-    </authorization>
-  </system.webServer>
-</configuration>
diff --git a/core/vendor/zendframework/zend-diactoros/.coveralls.yml b/core/vendor/zendframework/zend-diactoros/.coveralls.yml
deleted file mode 100644
index 53bda82..0000000
--- a/core/vendor/zendframework/zend-diactoros/.coveralls.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-coverage_clover: clover.xml
-json_path: coveralls-upload.json
-src_dir: src
diff --git a/core/vendor/zendframework/zend-diactoros/CHANGELOG.md b/core/vendor/zendframework/zend-diactoros/CHANGELOG.md
deleted file mode 100644
index 7fdf210..0000000
--- a/core/vendor/zendframework/zend-diactoros/CHANGELOG.md
+++ /dev/null
@@ -1,231 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file, in reverse chronological order by release.
-
-## 1.1.0 - 2015-06-24
-
-### Added
-
-- [#52](https://github.com/zendframework/zend-diactoros/pull/52),
-  [#58](https://github.com/zendframework/zend-diactoros/pull/58),
-  [#59](https://github.com/zendframework/zend-diactoros/pull/59), and
-  [#61](https://github.com/zendframework/zend-diactoros/pull/61) create several
-  custom response types for simplifying response creation:
-
-  - `Zend\Diactoros\Response\HtmlResponse` accepts HTML content via its
-    constructor, and sets the `Content-Type` to `text/html`.
-  - `Zend\Diactoros\Response\JsonResponse` accepts data to serialize to JSON via
-    its constructor, and sets the `Content-Type` to `application/json`.
-  - `Zend\Diactoros\Response\EmptyResponse` allows creating empty, read-only
-    responses, with a default status code of 204.
-  - `Zend\Diactoros\Response\RedirectResponse` allows specifying a URI for the
-    `Location` header in the constructor, with a default status code of 302.
-
-  Each also accepts an optional status code, and optional headers (which can
-  also be used to provide an alternate `Content-Type` in the case of the HTML
-  and JSON responses).
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- [#43](https://github.com/zendframework/zend-diactoros/pull/43) removed both
-  `ServerRequestFactory::marshalUri()` and `ServerRequestFactory::marshalHostAndPort()`,
-  which were deprecated prior to the 1.0 release.
-
-### Fixed
-
-- [#29](https://github.com/zendframework/zend-diactoros/pull/29) fixes request
-  method validation to allow any valid token as defined by [RFC
-  7230](http://tools.ietf.org/html/rfc7230#appendix-B). This allows usage of
-  custom request methods, vs a static, hard-coded list.
-
-## 1.0.5 - 2015-06-24
-
-### Added
-
-- Nothing.
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- Nothing.
-
-### Fixed
-
-- [#60](https://github.com/zendframework/zend-diactoros/pull/60) fixes
-  the behavior of `UploadedFile` when the `$errorStatus` provided at
-  instantiation is not `UPLOAD_ERR_OK`. Prior to the fix, an
-  `InvalidArgumentException` would occur at instantiation due to the fact that
-  the upload file was missing or invalid. With the fix, no exception is raised
-  until a call to `moveTo()` or `getStream()` is made.
-
-## 1.0.4 - 2015-06-23
-
-This is a security release.
-
-A patch has been applied to `Zend\Diactoros\Uri::filterPath()` that ensures that
-paths can only begin with a single leading slash. This prevents the following
-potential security issues:
-
-- XSS vectors. If the URI path is used for links or form targets, this prevents
-  cases where the first segment of the path resembles a domain name, thus
-  creating scheme-relative links such as `//example.com/foo`. With the patch,
-  the leading double slash is reduced to a single slash, preventing the XSS
-  vector.
-- Open redirects. If the URI path is used for `Location` or `Link` headers,
-  without a scheme and authority, potential for open redirects exist if clients
-  do not prepend the scheme and authority. Again, preventing a double slash
-  corrects the vector.
-
-If you are using `Zend\Diactoros\Uri` for creating links, form targets, or
-redirect paths, and only using the path segment, we recommend upgrading
-immediately.
-
-### Added
-
-- [#25](https://github.com/zendframework/zend-diactoros/pull/25) adds
-  documentation. Documentation is written in markdown, and can be converted to
-  HTML using [bookdown](http://bookdown.io). New features now MUST include
-  documentation for acceptance.
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- Nothing.
-
-### Fixed
-
-- [#51](https://github.com/zendframework/zend-diactoros/pull/51) fixes
-  `MessageTrait::getHeaderLine()` to return an empty string instead of `null` if
-  the header is undefined (which is the behavior specified in PSR-7).
-- [#57](https://github.com/zendframework/zend-diactoros/pull/57) fixes the
-  behavior of how the `ServerRequestFactory` marshals upload files when they are
-  represented as a nested associative array.
-- [#49](https://github.com/zendframework/zend-diactoros/pull/49) provides several 
-  fixes that ensure that Diactoros complies with the PSR-7 specification:
-  - `MessageInterface::getHeaderLine()` MUST return a string (that string CAN be
-    empty). Previously, Diactoros would return `null`.
-  - If no `Host` header is set, the `$preserveHost` flag MUST be ignored when
-    calling `withUri()` (previously, Diactoros would not set the `Host` header
-    if `$preserveHost` was `true`, but no `Host` header was present).
-  - The request method MUST be a string; it CAN be empty. Previously, Diactoros
-    would return `null`.
-  - The request MUST return a `UriInterface` instance from `getUri()`; that
-    instance CAN be empty. Previously, Diactoros would return `null`; now it
-    lazy-instantiates an empty `Uri` instance on initialization.
-- [ZF2015-05](http://framework.zend.com/security/advisory/ZF2015-05) was
-  addressed by altering `Uri::filterPath()` to prevent emitting a path prepended
-  with multiple slashes.
-
-## 1.0.3 - 2015-06-04
-
-### Added
-
-- [#48](https://github.com/zendframework/zend-diactoros/pull/48) drops the
-  minimum supported PHP version to 5.4, to allow an easier upgrade path for
-  Symfony 2.7 users, and potential Drupal 8 usage.
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- Nothing.
-
-### Fixed
-
-- Nothing.
-
-## 1.0.2 - 2015-06-04
-
-### Added
-
-- [#27](https://github.com/zendframework/zend-diactoros/pull/27) adds phonetic
-  pronunciation of "Diactoros" to the README file.
-- [#36](https://github.com/zendframework/zend-diactoros/pull/36) adds property
-  annotations to the class-level docblock of `Zend\Diactoros\RequestTrait` to
-  ensure properties inherited from the `MessageTrait` are inherited by
-  implementations.
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- Nothing.
--
-### Fixed
-
-- [#41](https://github.com/zendframework/zend-diactoros/pull/41) fixes the
-  namespace for test files to begin with `ZendTest` instead of `Zend`.
-- [#46](https://github.com/zendframework/zend-diactoros/pull/46) ensures that
-  the cookie and query params for the `ServerRequest` implementation are
-  initialized as arrays.
-- [#47](https://github.com/zendframework/zend-diactoros/pull/47) modifies the
-  internal logic in `HeaderSecurity::isValid()` to use a regular expression
-  instead of character-by-character comparisons, improving performance.
-
-## 1.0.1 - 2015-05-26
-
-### Added
-
-- [#10](https://github.com/zendframework/zend-diactoros/pull/10) adds
-  `Zend\Diactoros\RelativeStream`, which will return stream contents relative to
-  a given offset (i.e., a subset of the stream).  `AbstractSerializer` was
-  updated to create a `RelativeStream` when creating the body of a message,
-  which will prevent duplication of the stream in-memory.
-- [#21](https://github.com/zendframework/zend-diactoros/pull/21) adds a
-  `.gitattributes` file that excludes directories and files not needed for
-  production; this will further minify the package for production use cases.
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- Nothing.
-
-### Fixed
-
-- [#9](https://github.com/zendframework/zend-diactoros/pull/9) ensures that
-  attributes are initialized to an empty array, ensuring that attempts to
-  retrieve single attributes when none are defined will not produce errors.
-- [#14](https://github.com/zendframework/zend-diactoros/pull/14) updates
-  `Zend\Diactoros\Request` to use a `php://temp` stream by default instead of
-  `php://memory`, to ensure requests do not create an out-of-memory condition.
-- [#15](https://github.com/zendframework/zend-diactoros/pull/15) updates
-  `Zend\Diactoros\Stream` to ensure that write operations trigger an exception
-  if the stream is not writeable. Additionally, it adds more robust logic for
-  determining if a stream is writeable.
-
-## 1.0.0 - 2015-05-21
-
-First stable release, and first release as `zend-diactoros`.
-
-### Added
-
-- Nothing.
-
-### Deprecated
-
-- Nothing.
-
-### Removed
-
-- Nothing.
-
-### Fixed
-
-- Nothing.
diff --git a/core/vendor/zendframework/zend-diactoros/CONTRIBUTING.md b/core/vendor/zendframework/zend-diactoros/CONTRIBUTING.md
deleted file mode 100644
index d99a16c..0000000
--- a/core/vendor/zendframework/zend-diactoros/CONTRIBUTING.md
+++ /dev/null
@@ -1,223 +0,0 @@
-# CONTRIBUTING
-
-## RESOURCES
-
-If you wish to contribute to Zend Framework, please be sure to
-read/subscribe to the following resources:
-
- -  [Coding Standards](https://github.com/zendframework/zf2/wiki/Coding-Standards)
- -  [Contributor's Guide](http://framework.zend.com/participate/contributor-guide)
- -  ZF Contributor's mailing list:
-    Archives: http://zend-framework-community.634137.n4.nabble.com/ZF-Contributor-f680267.html
-    Subscribe: zf-contributors-subscribe@lists.zend.com
- -  ZF Contributor's IRC channel:
-    #zftalk.dev on Freenode.net
-
-If you are working on new features or refactoring [create a proposal](https://github.com/zendframework/zend-diactoros/issues/new).
-
-## Reporting Potential Security Issues
-
-If you have encountered a potential security vulnerability, please **DO NOT** report it on the public
-issue tracker: send it to us at [zf-security@zend.com](mailto:zf-security@zend.com) instead.
-We will work with you to verify the vulnerability and patch it as soon as possible.
-
-When reporting issues, please provide the following information:
-
-- Component(s) affected
-- A description indicating how to reproduce the issue
-- A summary of the security vulnerability and impact
-
-We request that you contact us via the email address above and give the project
-contributors a chance to resolve the vulnerability and issue a new release prior
-to any public exposure; this helps protect users and provides them with a chance
-to upgrade and/or update in order to protect their applications.
-
-For sensitive email communications, please use [our PGP key](http://framework.zend.com/zf-security-pgp-key.asc).
-
-## Documentation
-
-Documentation is in [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/),
-and rendered using [bookdown](http://bookdown.io). Please read and follow the [general documentation
-guidelines](https://github.com/zendframework/documentation/blob/master/CONTRIBUTING.md) when
-providing documentation.
-
-All new features **must** include documentation before they may be accepted and merged.
-
-## RUNNING TESTS
-
-To run tests:
-
-- Clone the repository:
-
-  ```console
-  $ git clone git@github.com:zendframework/zend-diactoros.git
-  $ cd
-  ```
-
-- Install dependencies via composer:
-
-  ```console
-  $ curl -sS https://getcomposer.org/installer | php --
-  $ ./composer.phar install
-  ```
-
-  If you don't have `curl` installed, you can also download `composer.phar` from https://getcomposer.org/
-
-- Run the tests via `phpunit` and the provided PHPUnit config, like in this example:
-
-  ```console
-  $ ./vendor/bin/phpunit
-  ```
-
-## Running Coding Standards Checks
-
-This component uses [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) for coding
-standards checks, and provides configuration for our selected checks.
-`phpcs` is installed by default via Composer.
-
-To run checks only:
-
-```console
-$ ./vendor/bin/phpcs --standard=PSR2 src test
-```
-
-`phpcs` also installs a tool named `phpcbf` which can attempt to fix problems
-for you:
-
-```console
-$ ./vendor/bin/phpcbf --standard=PSR2 src test
-```
-
-If you allow phpcbf to fix CS issues, please re-run the tests to ensure
-they pass, and make sure you add and commit the changes after verification.
-
-## Recommended Workflow for Contributions
-
-Your first step is to establish a public repository from which we can
-pull your work into the master repository. We recommend using
-[GitHub](https://github.com), as that is where the component is already hosted.
-
-1. Setup a [GitHub account](http://github.com/), if you haven't yet
-2. Fork the repository (http://github.com/zendframework/zend-diactoros)
-3. Clone the canonical repository locally and enter it.
-
-   ```console
-   $ git clone git://github.com:zendframework/zend-diactoros.git
-   $ cd zend-diactoros
-   ```
-
-4. Add a remote to your fork; substitute your GitHub username in the command
-   below.
-
-   ```console
-   $ git remote add {username} git@github.com:{username}/zend-diactoros.git
-   $ git fetch {username}
-   ```
-
-### Keeping Up-to-Date
-
-Periodically, you should update your fork or personal repository to
-match the canonical repository. Assuming you have setup your local repository
-per the instructions above, you can do the following:
-
-
-```console
-$ git checkout master
-$ git fetch origin
-$ git rebase origin/master
-# OPTIONALLY, to keep your remote up-to-date -
-$ git push {username} master:master
-```
-
-If you're tracking other branches -- for example, the "develop" branch, where
-new feature development occurs -- you'll want to do the same operations for that
-branch; simply substitute  "develop" for "master".
-
-### Working on a patch
-
-We recommend you do each new feature or bugfix in a new branch. This simplifies
-the task of code review as well as the task of merging your changes into the
-canonical repository.
-
-A typical workflow will then consist of the following:
-
-1. Create a new local branch based off either your master or develop branch.
-2. Switch to your new local branch. (This step can be combined with the
-   previous step with the use of `git checkout -b`.)
-3. Do some work, commit, repeat as necessary.
-4. Push the local branch to your remote repository.
-5. Send a pull request.
-
-The mechanics of this process are actually quite trivial. Below, we will
-create a branch for fixing an issue in the tracker.
-
-```console
-$ git checkout -b hotfix/9295
-Switched to a new branch 'hotfix/9295'
-```
-
-... do some work ...
-
-
-```console
-$ git commit
-```
-
-... write your log message ...
-
-
-```console
-$ git push {username} hotfix/9295:hotfix/9295
-Counting objects: 38, done.
-Delta compression using up to 2 threads.
-Compression objects: 100% (18/18), done.
-Writing objects: 100% (20/20), 8.19KiB, done.
-Total 20 (delta 12), reused 0 (delta 0)
-To ssh://git@github.com/{username}/zend-diactoros.git
-   b5583aa..4f51698  HEAD -> master
-```
-
-To send a pull request, you have two options.
-
-If using GitHub, you can do the pull request from there. Navigate to
-your repository, select the branch you just created, and then select the
-"Pull Request" button in the upper right. Select the user/organization
-"zendframework" as the recipient.
-
-If using your own repository - or even if using GitHub - you can use `git
-format-patch` to create a patchset for us to apply; in fact, this is
-**recommended** for security-related patches. If you use `format-patch`, please
-send the patches as attachments to:
-
--  zf-devteam@zend.com for patches without security implications
--  zf-security@zend.com for security patches
-
-#### What branch to issue the pull request against?
-
-Which branch should you issue a pull request against?
-
-- For fixes against the stable release, issue the pull request against the
-  "master" branch.
-- For new features, or fixes that introduce new elements to the public API (such
-  as new public methods or properties), issue the pull request against the
-  "develop" branch.
-
-### Branch Cleanup
-
-As you might imagine, if you are a frequent contributor, you'll start to
-get a ton of branches both locally and on your remote.
-
-Once you know that your changes have been accepted to the master
-repository, we suggest doing some cleanup of these branches.
-
--  Local branch cleanup
-
-   ```console
-   $ git branch -d <branchname>
-   ```
-
--  Remote branch removal
-
-   ```console
-   $ git push {username} :<branchname>
-   ```
diff --git a/core/vendor/zendframework/zend-diactoros/LICENSE.md b/core/vendor/zendframework/zend-diactoros/LICENSE.md
deleted file mode 100644
index b401e72..0000000
--- a/core/vendor/zendframework/zend-diactoros/LICENSE.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Copyright (c) 2015, Zend Technologies USA, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-- Neither the name of Zend Technologies USA, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/zendframework/zend-diactoros/README.md b/core/vendor/zendframework/zend-diactoros/README.md
deleted file mode 100644
index 477ac6d..0000000
--- a/core/vendor/zendframework/zend-diactoros/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# zend-diactoros
-
-Master:
-[![Build status][Master image]][Master]
-[![Coverage Status][Master coverage image]][Master coverage]
-Develop:
-[![Build status][Develop image]][Develop]
-[![Coverage Status][Develop coverage image]][Develop coverage]
-
-> Diactoros (pronunciation: `/dɪʌktɒrɒs/`): an epithet for Hermes, meaning literally, "the messenger."
-
-This package supercedes and replaces [phly/http](https://github.com/phly/http).
-
-`zend-diactoros` is a PHP package containing implementations of the [accepted PSR-7 HTTP message interfaces](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message.md), as well as a "server" implementation similar to [node's http.Server](http://nodejs.org/api/http.html).
-
-* File issues at https://github.com/zendframework/zend-diactoros/issues
-* Issue patches to https://github.com/zendframework/zend-diactoros/pulls
-
-## Documentation
-
-Documentation is [in the doc tree](doc/), and can be compiled using [bookdown](http://bookdown.io):
-
-```console
-$ bookdown doc/bookdown.json
-$ php -S 0.0.0.0:8080 -t doc/html/ # then browse to http://localhost:8080/
-```
-
-> ### Bookdown
->
-> You can install bookdown globally using `composer global require bookdown/bookdown`. If you do
-> this, make sure that `$HOME/.composer/vendor/bin` is on your `$PATH`.
-
-  [Master]: https://travis-ci.org/zendframework/zend-diactoros
-  [Master image]: https://secure.travis-ci.org/zendframework/zend-diactoros.svg?branch=master
-  [Master coverage image]: https://img.shields.io/coveralls/zendframework/zend-diactoros/master.svg
-  [Master coverage]: https://coveralls.io/r/zendframework/zend-diactoros?branch=master
-  [Develop]: https://github.com/zendframeowork/zend-diactoros/tree/develop
-  [Develop image]:  https://secure.travis-ci.org/zendframework/zend-diactoros.svg?branch=develop
-  [Develop coverage image]: https://coveralls.io/repos/zendframework/zend-diactoros/badge.svg?branch=develop
-  [Develop coverage]: https://coveralls.io/r/zendframework/zend-diactoros?branch=develop
diff --git a/core/vendor/zendframework/zend-diactoros/composer.json b/core/vendor/zendframework/zend-diactoros/composer.json
deleted file mode 100644
index fee75d9..0000000
--- a/core/vendor/zendframework/zend-diactoros/composer.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-  "name": "zendframework/zend-diactoros",
-  "description": "PSR HTTP Message implementations",
-  "type": "library",
-  "license": "BSD-2-Clause",
-  "keywords": [
-    "http",
-    "psr",
-    "psr-7"
-  ],
-  "homepage": "https://github.com/zendframework/zend-diactoros",
-  "support": {
-    "issues": "https://github.com/zendframework/zend-diactoros/issues",
-    "source": "https://github.com/zendframework/zend-diactoros"
-  },
-  "extra": {
-    "branch-alias": {
-      "dev-master": "1.0-dev",
-      "dev-develop": "1.1-dev"
-    }
-  },
-  "require": {
-    "php": ">=5.4",
-    "psr/http-message": "~1.0"
-  },
-  "require-dev": {
-    "phpunit/PHPUnit": "~4.6",
-    "squizlabs/php_codesniffer": "^2.3.1"
-  },
-  "provide": {
-    "psr/http-message-implementation": "~1.0.0"
-  },
-  "autoload": {
-    "psr-4": {
-      "Zend\\Diactoros\\": "src/"
-    }
-  },
-  "autoload-dev": {
-    "psr-4": {
-      "ZendTest\\Diactoros\\": "test/"
-    },
-    "files": [
-      "test/TestAsset/Functions.php",
-      "test/TestAsset/SapiResponse.php"
-    ]
-  }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/phpcs.xml b/core/vendor/zendframework/zend-diactoros/phpcs.xml
deleted file mode 100644
index e994eae..0000000
--- a/core/vendor/zendframework/zend-diactoros/phpcs.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="Zend Framework coding standard">
-    <description>Zend Framework coding standard</description>
-
-    <!-- display progress -->
-    <arg value="p"/>
-    <arg name="colors"/>
-
-    <!-- inherit rules from: -->
-    <rule ref="PSR2"/>
-    <rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
-    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace">
-        <properties>
-            <property name="ignoreBlankLines" value="false"/>
-        </properties>
-    </rule>
-
-    <!-- Paths to check -->
-    <file>src</file>
-    <file>test</file>
-</ruleset>
diff --git a/core/vendor/zendframework/zend-diactoros/src/AbstractSerializer.php b/core/vendor/zendframework/zend-diactoros/src/AbstractSerializer.php
deleted file mode 100644
index a55ca5a..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/AbstractSerializer.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use Psr\Http\Message\StreamInterface;
-use UnexpectedValueException;
-
-/**
- * Provides base functionality for request and response de/serialization
- * strategies, including functionality for retrieving a line at a time from
- * the message, splitting headers from the body, and serializing headers.
- */
-abstract class AbstractSerializer
-{
-    const CR  = "\r";
-    const EOL = "\r\n";
-    const LF  = "\n";
-
-    /**
-     * Retrieve a single line from the stream.
-     *
-     * Retrieves a line from the stream; a line is defined as a sequence of
-     * characters ending in a CRLF sequence.
-     *
-     * @param StreamInterface $stream
-     * @return string
-     * @throws UnexpectedValueException if the sequence contains a CR or LF in
-     *     isolation, or ends in a CR.
-     */
-    protected static function getLine(StreamInterface $stream)
-    {
-        $line    = '';
-        $crFound = false;
-        while (! $stream->eof()) {
-            $char = $stream->read(1);
-
-            if ($crFound && $char === self::LF) {
-                $crFound = false;
-                break;
-            }
-
-            // CR NOT followed by LF
-            if ($crFound && $char !== self::LF) {
-                throw new UnexpectedValueException('Unexpected carriage return detected');
-            }
-
-            // LF in isolation
-            if (! $crFound && $char === self::LF) {
-                throw new UnexpectedValueException('Unexpected line feed detected');
-            }
-
-            // CR found; do not append
-            if ($char === self::CR) {
-                $crFound = true;
-                continue;
-            }
-
-            // Any other character: append
-            $line .= $char;
-        }
-
-        // CR found at end of stream
-        if ($crFound) {
-            throw new UnexpectedValueException("Unexpected end of headers");
-        }
-
-        return $line;
-    }
-
-    /**
-     * Split the stream into headers and body content.
-     *
-     * Returns an array containing two elements
-     *
-     * - The first is an array of headers
-     * - The second is a StreamInterface containing the body content
-     *
-     * @param StreamInterface $stream
-     * @return array
-     * @throws UnexpectedValueException For invalid headers.
-     */
-    protected static function splitStream(StreamInterface $stream)
-    {
-        $headers       = [];
-        $currentHeader = false;
-
-        while ($line = self::getLine($stream)) {
-            if (preg_match(';^(?P<name>[!#$%&\'*+.^_`\|~0-9a-zA-Z-]+):(?P<value>.*)$;', $line, $matches)) {
-                $currentHeader = $matches['name'];
-                if (! isset($headers[$currentHeader])) {
-                    $headers[$currentHeader] = [];
-                }
-                $headers[$currentHeader][] = ltrim($matches['value']);
-                continue;
-            }
-
-            if (! $currentHeader) {
-                throw new UnexpectedValueException('Invalid header detected');
-            }
-
-            if (! preg_match('#^[ \t]#', $line)) {
-                throw new UnexpectedValueException('Invalid header continuation');
-            }
-
-            // Append continuation to last header value found
-            $value = array_pop($headers[$currentHeader]);
-            $headers[$currentHeader][] = $value . ltrim($line);
-        }
-
-        // use RelativeStream to avoid copying initial stream into memory
-        return [$headers, new RelativeStream($stream, $stream->tell())];
-    }
-
-    /**
-     * Serialize headers to string values.
-     *
-     * @param array $headers
-     * @return string
-     */
-    protected static function serializeHeaders(array $headers)
-    {
-        $lines = [];
-        foreach ($headers as $header => $values) {
-            $normalized = self::filterHeader($header);
-            foreach ($values as $value) {
-                $lines[] = sprintf('%s: %s', $normalized, $value);
-            }
-        }
-
-        return implode("\r\n", $lines);
-    }
-
-    /**
-     * Filter a header name to wordcase
-     *
-     * @param string $header
-     * @return string
-     */
-    protected static function filterHeader($header)
-    {
-        $filtered = str_replace('-', ' ', $header);
-        $filtered = ucwords($filtered);
-        return str_replace(' ', '-', $filtered);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Exception/DeprecatedMethodException.php b/core/vendor/zendframework/zend-diactoros/src/Exception/DeprecatedMethodException.php
deleted file mode 100644
index bdef44a..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Exception/DeprecatedMethodException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Exception;
-
-use BadMethodCallException;
-
-/**
- * Exception indicating a deprecated method.
- */
-class DeprecatedMethodException extends BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-diactoros/src/Exception/ExceptionInterface.php
deleted file mode 100644
index a2b22fb..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Exception;
-
-/**
- * Marker interface for package-specific exceptions.
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/HeaderSecurity.php b/core/vendor/zendframework/zend-diactoros/src/HeaderSecurity.php
deleted file mode 100644
index 231beac..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/HeaderSecurity.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-
-/**
- * Provide security tools around HTTP headers to prevent common injection vectors.
- *
- * Code is largely lifted from the Zend\Http\Header\HeaderValue implementation in
- * Zend Framework, released with the copyright and license below.
- *
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-final class HeaderSecurity
-{
-    /**
-     * Private constructor; non-instantiable.
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Filter a header value
-     *
-     * Ensures CRLF header injection vectors are filtered.
-     *
-     * Per RFC 7230, only VISIBLE ASCII characters, spaces, and horizontal
-     * tabs are allowed in values; header continuations MUST consist of
-     * a single CRLF sequence followed by a space or horizontal tab.
-     *
-     * This method filters any values not allowed from the string, and is
-     * lossy.
-     *
-     * @see http://en.wikipedia.org/wiki/HTTP_response_splitting
-     * @param string $value
-     * @return string
-     */
-    public static function filter($value)
-    {
-        $value  = (string) $value;
-        $length = strlen($value);
-        $string = '';
-        for ($i = 0; $i < $length; $i += 1) {
-            $ascii = ord($value[$i]);
-
-            // Detect continuation sequences
-            if ($ascii === 13) {
-                $lf = ord($value[$i + 1]);
-                $ws = ord($value[$i + 2]);
-                if ($lf === 10 && in_array($ws, [9, 32], true)) {
-                    $string .= $value[$i] . $value[$i + 1];
-                    $i += 1;
-                }
-
-                continue;
-            }
-
-            // Non-visible, non-whitespace characters
-            // 9 === horizontal tab
-            // 32-126, 128-254 === visible
-            // 127 === DEL
-            // 255 === null byte
-            if (($ascii < 32 && $ascii !== 9)
-                || $ascii === 127
-                || $ascii > 254
-            ) {
-                continue;
-            }
-
-            $string .= $value[$i];
-        }
-
-        return $string;
-    }
-
-    /**
-     * Validate a header value.
-     *
-     * Per RFC 7230, only VISIBLE ASCII characters, spaces, and horizontal
-     * tabs are allowed in values; header continuations MUST consist of
-     * a single CRLF sequence followed by a space or horizontal tab.
-     *
-     * @see http://en.wikipedia.org/wiki/HTTP_response_splitting
-     * @param string $value
-     * @return bool
-     */
-    public static function isValid($value)
-    {
-        $value  = (string) $value;
-
-        // Look for:
-        // \n not preceded by \r, OR
-        // \r not followed by \n, OR
-        // \r\n not followed by space or horizontal tab; these are all CRLF attacks
-        if (preg_match("#(?:(?:(?<!\r)\n)|(?:\r(?!\n))|(?:\r\n(?![ \t])))#", $value)) {
-            return false;
-        }
-
-        // Non-visible, non-whitespace characters
-        // 9 === horizontal tab
-        // 10 === line feed
-        // 13 === carriage return
-        // 32-126, 128-254 === visible
-        // 127 === DEL (disallowed)
-        // 255 === null byte (disallowed)
-        if (preg_match('/[^\x09\x0a\x0d\x20-\x7E\x80-\xFE]/', $value)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Assert a header value is valid.
-     *
-     * @param string $value
-     * @throws InvalidArgumentException for invalid values
-     */
-    public static function assertValid($value)
-    {
-        if (! self::isValid($value)) {
-            throw new InvalidArgumentException('Invalid header value');
-        }
-    }
-
-    /**
-     * Assert whether or not a header name is valid.
-     *
-     * @see http://tools.ietf.org/html/rfc7230#section-3.2
-     * @param mixed $name
-     * @throws InvalidArgumentException
-     */
-    public static function assertValidName($name)
-    {
-        if (! preg_match('/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/', $name)) {
-            throw new InvalidArgumentException('Invalid header name');
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/MessageTrait.php b/core/vendor/zendframework/zend-diactoros/src/MessageTrait.php
deleted file mode 100644
index 1b3fc6f..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/MessageTrait.php
+++ /dev/null
@@ -1,383 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Trait implementing the various methods defined in MessageInterface.
- *
- * @see https://github.com/php-fig/http-message/tree/master/src/MessageInterface.php
- */
-trait MessageTrait
-{
-    /**
-     * List of all registered headers, as key => array of values.
-     *
-     * @var array
-     */
-    protected $headers = [];
-
-    /**
-     * Map of normalized header name to original name used to register header.
-     *
-     * @var array
-     */
-    protected $headerNames = [];
-
-    /**
-     * @var string
-     */
-    private $protocol = '1.1';
-
-    /**
-     * @var StreamInterface
-     */
-    private $stream;
-
-    /**
-     * Retrieves the HTTP protocol version as a string.
-     *
-     * The string MUST contain only the HTTP version number (e.g., "1.1", "1.0").
-     *
-     * @return string HTTP protocol version.
-     */
-    public function getProtocolVersion()
-    {
-        return $this->protocol;
-    }
-
-    /**
-     * Return an instance with the specified HTTP protocol version.
-     *
-     * The version string MUST contain only the HTTP version number (e.g.,
-     * "1.1", "1.0").
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new protocol version.
-     *
-     * @param string $version HTTP protocol version
-     * @return static
-     */
-    public function withProtocolVersion($version)
-    {
-        $new = clone $this;
-        $new->protocol = $version;
-        return $new;
-    }
-
-    /**
-     * Retrieves all message headers.
-     *
-     * The keys represent the header name as it will be sent over the wire, and
-     * each value is an array of strings associated with the header.
-     *
-     *     // Represent the headers as a string
-     *     foreach ($message->getHeaders() as $name => $values) {
-     *         echo $name . ": " . implode(", ", $values);
-     *     }
-     *
-     *     // Emit headers iteratively:
-     *     foreach ($message->getHeaders() as $name => $values) {
-     *         foreach ($values as $value) {
-     *             header(sprintf('%s: %s', $name, $value), false);
-     *         }
-     *     }
-     *
-     * @return array Returns an associative array of the message's headers. Each
-     *     key MUST be a header name, and each value MUST be an array of strings.
-     */
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    /**
-     * Checks if a header exists by the given case-insensitive name.
-     *
-     * @param string $header Case-insensitive header name.
-     * @return bool Returns true if any header names match the given header
-     *     name using a case-insensitive string comparison. Returns false if
-     *     no matching header name is found in the message.
-     */
-    public function hasHeader($header)
-    {
-        return array_key_exists(strtolower($header), $this->headerNames);
-    }
-
-    /**
-     * Retrieves a message header value by the given case-insensitive name.
-     *
-     * This method returns an array of all the header values of the given
-     * case-insensitive header name.
-     *
-     * If the header does not appear in the message, this method MUST return an
-     * empty array.
-     *
-     * @param string $header Case-insensitive header field name.
-     * @return string[] An array of string values as provided for the given
-     *    header. If the header does not appear in the message, this method MUST
-     *    return an empty array.
-     */
-    public function getHeader($header)
-    {
-        if (! $this->hasHeader($header)) {
-            return [];
-        }
-
-        $header = $this->headerNames[strtolower($header)];
-        $value  = $this->headers[$header];
-        $value  = is_array($value) ? $value : [$value];
-
-        return $value;
-    }
-
-    /**
-     * Retrieves a comma-separated string of the values for a single header.
-     *
-     * This method returns all of the header values of the given
-     * case-insensitive header name as a string concatenated together using
-     * a comma.
-     *
-     * NOTE: Not all header values may be appropriately represented using
-     * comma concatenation. For such headers, use getHeader() instead
-     * and supply your own delimiter when concatenating.
-     *
-     * If the header does not appear in the message, this method MUST return
-     * an empty string.
-     *
-     * @param string $name Case-insensitive header field name.
-     * @return string A string of values as provided for the given header
-     *    concatenated together using a comma. If the header does not appear in
-     *    the message, this method MUST return an empty string.
-     */
-    public function getHeaderLine($name)
-    {
-        $value = $this->getHeader($name);
-        if (empty($value)) {
-            return '';
-        }
-
-        return implode(',', $value);
-    }
-
-    /**
-     * Return an instance with the provided header, replacing any existing
-     * values of any headers with the same case-insensitive name.
-     *
-     * While header names are case-insensitive, the casing of the header will
-     * be preserved by this function, and returned from getHeaders().
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new and/or updated header and value.
-     *
-     * @param string $header Case-insensitive header field name.
-     * @param string|string[] $value Header value(s).
-     * @return static
-     * @throws \InvalidArgumentException for invalid header names or values.
-     */
-    public function withHeader($header, $value)
-    {
-        if (is_string($value)) {
-            $value = [$value];
-        }
-
-        if (! is_array($value) || ! $this->arrayContainsOnlyStrings($value)) {
-            throw new InvalidArgumentException(
-                'Invalid header value; must be a string or array of strings'
-            );
-        }
-
-        HeaderSecurity::assertValidName($header);
-        self::assertValidHeaderValue($value);
-
-        $normalized = strtolower($header);
-
-        $new = clone $this;
-        $new->headerNames[$normalized] = $header;
-        $new->headers[$header]         = $value;
-
-        return $new;
-    }
-
-    /**
-     * Return an instance with the specified header appended with the
-     * given value.
-     *
-     * Existing values for the specified header will be maintained. The new
-     * value(s) will be appended to the existing list. If the header did not
-     * exist previously, it will be added.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new header and/or value.
-     *
-     * @param string $header Case-insensitive header field name to add.
-     * @param string|string[] $value Header value(s).
-     * @return static
-     * @throws \InvalidArgumentException for invalid header names or values.
-     */
-    public function withAddedHeader($header, $value)
-    {
-        if (is_string($value)) {
-            $value = [ $value ];
-        }
-
-        if (! is_array($value) || ! $this->arrayContainsOnlyStrings($value)) {
-            throw new InvalidArgumentException(
-                'Invalid header value; must be a string or array of strings'
-            );
-        }
-
-        HeaderSecurity::assertValidName($header);
-        self::assertValidHeaderValue($value);
-
-        if (! $this->hasHeader($header)) {
-            return $this->withHeader($header, $value);
-        }
-
-        $normalized = strtolower($header);
-        $header     = $this->headerNames[$normalized];
-
-        $new = clone $this;
-        $new->headers[$header] = array_merge($this->headers[$header], $value);
-        return $new;
-    }
-
-    /**
-     * Return an instance without the specified header.
-     *
-     * Header resolution MUST be done without case-sensitivity.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that removes
-     * the named header.
-     *
-     * @param string $header Case-insensitive header field name to remove.
-     * @return static
-     */
-    public function withoutHeader($header)
-    {
-        if (! $this->hasHeader($header)) {
-            return clone $this;
-        }
-
-        $normalized = strtolower($header);
-        $original   = $this->headerNames[$normalized];
-
-        $new = clone $this;
-        unset($new->headers[$original], $new->headerNames[$normalized]);
-        return $new;
-    }
-
-    /**
-     * Gets the body of the message.
-     *
-     * @return StreamInterface Returns the body as a stream.
-     */
-    public function getBody()
-    {
-        return $this->stream;
-    }
-
-    /**
-     * Return an instance with the specified message body.
-     *
-     * The body MUST be a StreamInterface object.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return a new instance that has the
-     * new body stream.
-     *
-     * @param StreamInterface $body Body.
-     * @return static
-     * @throws \InvalidArgumentException When the body is not valid.
-     */
-    public function withBody(StreamInterface $body)
-    {
-        $new = clone $this;
-        $new->stream = $body;
-        return $new;
-    }
-
-    /**
-     * Test that an array contains only strings
-     *
-     * @param array $array
-     * @return bool
-     */
-    private function arrayContainsOnlyStrings(array $array)
-    {
-        return array_reduce($array, [__CLASS__, 'filterStringValue'], true);
-    }
-
-    /**
-     * Filter a set of headers to ensure they are in the correct internal format.
-     *
-     * Used by message constructors to allow setting all initial headers at once.
-     *
-     * @param array $originalHeaders Headers to filter.
-     * @return array Filtered headers and names.
-     */
-    private function filterHeaders(array $originalHeaders)
-    {
-        $headerNames = $headers = [];
-        foreach ($originalHeaders as $header => $value) {
-            if (! is_string($header)) {
-                continue;
-            }
-
-            if (! is_array($value) && ! is_string($value)) {
-                continue;
-            }
-
-            if (! is_array($value)) {
-                $value = [ $value ];
-            }
-
-            $headerNames[strtolower($header)] = $header;
-            $headers[$header] = $value;
-        }
-
-        return [$headerNames, $headers];
-    }
-
-    /**
-     * Test if a value is a string
-     *
-     * Used with array_reduce.
-     *
-     * @param bool $carry
-     * @param mixed $item
-     * @return bool
-     */
-    private static function filterStringValue($carry, $item)
-    {
-        if (! is_string($item)) {
-            return false;
-        }
-        return $carry;
-    }
-
-    /**
-     * Assert that the provided header values are valid.
-     *
-     * @see http://tools.ietf.org/html/rfc7230#section-3.2
-     * @param string[] $values
-     * @throws InvalidArgumentException
-     */
-    private static function assertValidHeaderValue(array $values)
-    {
-        array_walk($values, __NAMESPACE__ . '\HeaderSecurity::assertValid');
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/PhpInputStream.php b/core/vendor/zendframework/zend-diactoros/src/PhpInputStream.php
deleted file mode 100644
index a035234..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/PhpInputStream.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-/**
- * Caching version of php://input
- */
-class PhpInputStream extends Stream
-{
-    /**
-     * @var string
-     */
-    private $cache = '';
-
-    /**
-     * @var bool
-     */
-    private $reachedEof = false;
-
-    /**
-     * @param  string|resource $stream
-     * @param  string $mode
-     */
-    public function __construct($stream = 'php://input', $mode = 'r')
-    {
-        $mode = 'r';
-        parent::__construct($stream, $mode);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        if ($this->reachedEof) {
-            return $this->cache;
-        }
-
-        $this->getContents();
-        return $this->cache;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isWritable()
-    {
-        return false;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($length)
-    {
-        $content = parent::read($length);
-        if ($content && ! $this->reachedEof) {
-            $this->cache .= $content;
-        }
-
-        if ($this->eof()) {
-            $this->reachedEof = true;
-        }
-
-        return $content;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContents($maxLength = -1)
-    {
-        if ($this->reachedEof) {
-            return $this->cache;
-        }
-
-        $contents     = stream_get_contents($this->resource, $maxLength);
-        $this->cache .= $contents;
-
-        if ($maxLength === -1 || $this->eof()) {
-            $this->reachedEof = true;
-        }
-
-        return $contents;
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/RelativeStream.php b/core/vendor/zendframework/zend-diactoros/src/RelativeStream.php
deleted file mode 100644
index f293d51..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/RelativeStream.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Class RelativeStream
- *
- * Wrapper for default Stream class, representing subpart (starting from given offset) of initial stream.
- * It can be used to avoid copying full stream, conserving memory.
- * @example see Zend\Diactoros\AbstractSerializer::splitStream()
- */
-final class RelativeStream implements StreamInterface
-{
-    /**
-     * @var StreamInterface
-     */
-    private $decoratedStream;
-
-    /**
-     * @var int
-     */
-    private $offset;
-
-    /**
-     * Class constructor
-     *
-     * @param StreamInterface $decoratedStream
-     * @param int $offset
-     */
-    public function __construct(StreamInterface $decoratedStream, $offset)
-    {
-        $this->decoratedStream = $decoratedStream;
-        $this->offset = (int)$offset;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        $this->seek(0);
-        return $this->getContents();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        $this->decoratedStream->close();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function detach()
-    {
-        return $this->decoratedStream->detach();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSize()
-    {
-        return $this->decoratedStream->getSize() - $this->offset;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function tell()
-    {
-        return $this->decoratedStream->tell() - $this->offset;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function eof()
-    {
-        return $this->decoratedStream->eof();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isSeekable()
-    {
-        return $this->decoratedStream->isSeekable();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if ($whence == SEEK_SET) {
-            return $this->decoratedStream->seek($offset + $this->offset, $whence);
-        }
-        return $this->decoratedStream->seek($offset, $whence);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function rewind()
-    {
-        return $this->seek(0);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isWritable()
-    {
-        return $this->decoratedStream->isWritable();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($string)
-    {
-        return $this->decoratedStream->write($string);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isReadable()
-    {
-        return $this->decoratedStream->isReadable();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($length)
-    {
-        return $this->decoratedStream->read($length);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContents()
-    {
-        return $this->decoratedStream->getContents();
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadata($key = null)
-    {
-        return $this->decoratedStream->getMetadata($key);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Request.php b/core/vendor/zendframework/zend-diactoros/src/Request.php
deleted file mode 100644
index 6e00c25..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Request.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * HTTP Request encapsulation
- *
- * Requests are considered immutable; all methods that might change state are
- * implemented such that they retain the internal state of the current
- * message and return a new instance that contains the changed state.
- */
-class Request implements RequestInterface
-{
-    use MessageTrait, RequestTrait;
-
-    /**
-     * @param null|string $uri URI for the request, if any.
-     * @param null|string $method HTTP method for the request, if any.
-     * @param string|resource|StreamInterface $body Message body, if any.
-     * @param array $headers Headers for the message, if any.
-     * @throws \InvalidArgumentException for any invalid value.
-     */
-    public function __construct($uri = null, $method = null, $body = 'php://temp', array $headers = [])
-    {
-        $this->initialize($uri, $method, $body, $headers);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getHeaders()
-    {
-        $headers = $this->headers;
-        if (! $this->hasHeader('host')
-            && ($this->uri && $this->uri->getHost())
-        ) {
-            $headers['Host'] = [$this->getHostFromUri()];
-        }
-
-        return $headers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getHeader($header)
-    {
-        if (! $this->hasHeader($header)) {
-            if (strtolower($header) === 'host'
-                && ($this->uri && $this->uri->getHost())
-            ) {
-                return [$this->getHostFromUri()];
-            }
-
-            return [];
-        }
-
-        $header = $this->headerNames[strtolower($header)];
-        $value  = $this->headers[$header];
-        $value  = is_array($value) ? $value : [$value];
-
-        return $value;
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Request/Serializer.php b/core/vendor/zendframework/zend-diactoros/src/Request/Serializer.php
deleted file mode 100644
index d7c8d13..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Request/Serializer.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Request;
-
-use InvalidArgumentException;
-use Psr\Http\Message\RequestInterface;
-use Psr\Http\Message\StreamInterface;
-use UnexpectedValueException;
-use Zend\Diactoros\AbstractSerializer;
-use Zend\Diactoros\Request;
-use Zend\Diactoros\Stream;
-use Zend\Diactoros\Uri;
-
-/**
- * Serialize (cast to string) or deserialize (cast string to Request) messages.
- *
- * This class provides functionality for serializing a RequestInterface instance
- * to a string, as well as the reverse operation of creating a Request instance
- * from a string/stream representing a message.
- */
-final class Serializer extends AbstractSerializer
-{
-    /**
-     * Deserialize a request string to a request instance.
-     *
-     * Internally, casts the message to a stream and invokes fromStream().
-     *
-     * @param string $message
-     * @return Request
-     * @throws UnexpectedValueException when errors occur parsing the message.
-     */
-    public static function fromString($message)
-    {
-        $stream = new Stream('php://temp', 'wb+');
-        $stream->write($message);
-        return self::fromStream($stream);
-    }
-
-    /**
-     * Deserialize a request stream to a request instance.
-     *
-     * @param StreamInterface $stream
-     * @return Request
-     * @throws UnexpectedValueException when errors occur parsing the message.
-     */
-    public static function fromStream(StreamInterface $stream)
-    {
-        if (! $stream->isReadable() || ! $stream->isSeekable()) {
-            throw new InvalidArgumentException('Message stream must be both readable and seekable');
-        }
-
-        $stream->rewind();
-
-        list($method, $requestTarget, $version) = self::getRequestLine($stream);
-        $uri = self::createUriFromRequestTarget($requestTarget);
-
-        list($headers, $body) = self::splitStream($stream);
-
-        return (new Request($uri, $method, $body, $headers))
-            ->withProtocolVersion($version)
-            ->withRequestTarget($requestTarget);
-    }
-
-    /**
-     * Serialize a request message to a string.
-     *
-     * @param RequestInterface $request
-     * @return string
-     */
-    public static function toString(RequestInterface $request)
-    {
-        $headers = self::serializeHeaders($request->getHeaders());
-        $body    = (string) $request->getBody();
-        $format  = '%s %s HTTP/%s%s%s';
-
-        if (! empty($headers)) {
-            $headers = "\r\n" . $headers;
-        }
-        if (! empty($body)) {
-            $headers .= "\r\n\r\n";
-        }
-
-        return sprintf(
-            $format,
-            $request->getMethod(),
-            $request->getRequestTarget(),
-            $request->getProtocolVersion(),
-            $headers,
-            $body
-        );
-    }
-
-    /**
-     * Retrieve the components of the request line.
-     *
-     * Retrieves the first line of the stream and parses it, raising an
-     * exception if it does not follow specifications; if valid, returns a list
-     * with the method, target, and version, in that order.
-     *
-     * @param StreamInterface $stream
-     * @return array
-     */
-    private static function getRequestLine(StreamInterface $stream)
-    {
-        $requestLine = self::getLine($stream);
-
-        if (! preg_match(
-            '#^(?P<method>[!\#$%&\'*+.^_`|~a-zA-Z0-9-]+) (?P<target>[^\s]+) HTTP/(?P<version>[1-9]\d*\.\d+)$#',
-            $requestLine,
-            $matches
-        )) {
-            throw new UnexpectedValueException('Invalid request line detected');
-        }
-
-        return [$matches['method'], $matches['target'], $matches['version']];
-    }
-
-    /**
-     * Create and return a Uri instance based on the provided request target.
-     *
-     * If the request target is of authority or asterisk form, an empty Uri
-     * instance is returned; otherwise, the value is used to create and return
-     * a new Uri instance.
-     *
-     * @param string $requestTarget
-     * @return Uri
-     */
-    private static function createUriFromRequestTarget($requestTarget)
-    {
-        if (preg_match('#^https?://#', $requestTarget)) {
-            return new Uri($requestTarget);
-        }
-
-        if (preg_match('#^(\*|[^/])#', $requestTarget)) {
-            return new Uri();
-        }
-
-        return new Uri($requestTarget);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/RequestTrait.php b/core/vendor/zendframework/zend-diactoros/src/RequestTrait.php
deleted file mode 100644
index 8a96762..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/RequestTrait.php
+++ /dev/null
@@ -1,309 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UriInterface;
-
-/**
- * Trait with common request behaviors.
- *
- * Server and client-side requests differ slightly in how the Host header is
- * handled; on client-side, it should be calculated on-the-fly from the
- * composed URI (if present), while on server-side, it will be calculated from
- * the environment. As such, this trait exists to provide the common code
- * between both client-side and server-side requests, and each can then
- * use the headers functionality required by their implementations.
- *
- * @property array $headers
- * @property array $headerNames
- * @property StreamInterface $stream
- * @method bool hasHeader(string $header)
- */
-trait RequestTrait
-{
-    /**
-     * @var string
-     */
-    private $method = '';
-
-    /**
-     * The request-target, if it has been provided or calculated.
-     *
-     * @var null|string
-     */
-    private $requestTarget;
-
-    /**
-     * @var null|UriInterface
-     */
-    private $uri;
-
-    /**
-     * Initialize request state.
-     *
-     * Used by constructors.
-     *
-     * @param null|string $uri URI for the request, if any.
-     * @param null|string $method HTTP method for the request, if any.
-     * @param string|resource|StreamInterface $body Message body, if any.
-     * @param array $headers Headers for the message, if any.
-     * @throws InvalidArgumentException for any invalid value.
-     */
-    private function initialize($uri = null, $method = null, $body = 'php://memory', array $headers = [])
-    {
-        if (! $uri instanceof UriInterface && ! is_string($uri) && null !== $uri) {
-            throw new InvalidArgumentException(
-                'Invalid URI provided; must be null, a string, or a Psr\Http\Message\UriInterface instance'
-            );
-        }
-
-        $this->validateMethod($method);
-
-        if (! is_string($body) && ! is_resource($body) && ! $body instanceof StreamInterface) {
-            throw new InvalidArgumentException(
-                'Body must be a string stream resource identifier, '
-                . 'an actual stream resource, '
-                . 'or a Psr\Http\Message\StreamInterface implementation'
-            );
-        }
-
-        if (is_string($uri)) {
-            $uri = new Uri($uri);
-        }
-
-        $this->method = $method ?: '';
-        $this->uri    = $uri ?: new Uri();
-        $this->stream = ($body instanceof StreamInterface) ? $body : new Stream($body, 'r');
-
-        list($this->headerNames, $headers) = $this->filterHeaders($headers);
-        $this->assertHeaders($headers);
-        $this->headers = $headers;
-    }
-
-    /**
-     * Retrieves the message's request target.
-     *
-     * Retrieves the message's request-target either as it will appear (for
-     * clients), as it appeared at request (for servers), or as it was
-     * specified for the instance (see withRequestTarget()).
-     *
-     * In most cases, this will be the origin-form of the composed URI,
-     * unless a value was provided to the concrete implementation (see
-     * withRequestTarget() below).
-     *
-     * If no URI is available, and no request-target has been specifically
-     * provided, this method MUST return the string "/".
-     *
-     * @return string
-     */
-    public function getRequestTarget()
-    {
-        if (null !== $this->requestTarget) {
-            return $this->requestTarget;
-        }
-
-        if (! $this->uri) {
-            return '/';
-        }
-
-        $target = $this->uri->getPath();
-        if ($this->uri->getQuery()) {
-            $target .= '?' . $this->uri->getQuery();
-        }
-
-        if (empty($target)) {
-            $target = '/';
-        }
-
-        return $target;
-    }
-
-    /**
-     * Create a new instance with a specific request-target.
-     *
-     * If the request needs a non-origin-form request-target — e.g., for
-     * specifying an absolute-form, authority-form, or asterisk-form —
-     * this method may be used to create an instance with the specified
-     * request-target, verbatim.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return a new instance that has the
-     * changed request target.
-     *
-     * @link http://tools.ietf.org/html/rfc7230#section-2.7 (for the various
-     *     request-target forms allowed in request messages)
-     * @param mixed $requestTarget
-     * @return static
-     * @throws InvalidArgumentException if the request target is invalid.
-     */
-    public function withRequestTarget($requestTarget)
-    {
-        if (preg_match('#\s#', $requestTarget)) {
-            throw new InvalidArgumentException(
-                'Invalid request target provided; cannot contain whitespace'
-            );
-        }
-
-        $new = clone $this;
-        $new->requestTarget = $requestTarget;
-        return $new;
-    }
-
-    /**
-     * Retrieves the HTTP method of the request.
-     *
-     * @return string Returns the request method.
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * Return an instance with the provided HTTP method.
-     *
-     * While HTTP method names are typically all uppercase characters, HTTP
-     * method names are case-sensitive and thus implementations SHOULD NOT
-     * modify the given string.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * changed request method.
-     *
-     * @param string $method Case-insensitive method.
-     * @return static
-     * @throws InvalidArgumentException for invalid HTTP methods.
-     */
-    public function withMethod($method)
-    {
-        $this->validateMethod($method);
-        $new = clone $this;
-        $new->method = $method;
-        return $new;
-    }
-
-    /**
-     * Retrieves the URI instance.
-     *
-     * This method MUST return a UriInterface instance.
-     *
-     * @link http://tools.ietf.org/html/rfc3986#section-4.3
-     * @return UriInterface Returns a UriInterface instance
-     *     representing the URI of the request, if any.
-     */
-    public function getUri()
-    {
-        return $this->uri;
-    }
-
-    /**
-     * Returns an instance with the provided URI.
-     *
-     * This method will update the Host header of the returned request by
-     * default if the URI contains a host component. If the URI does not
-     * contain a host component, any pre-existing Host header will be carried
-     * over to the returned request.
-     *
-     * You can opt-in to preserving the original state of the Host header by
-     * setting `$preserveHost` to `true`. When `$preserveHost` is set to
-     * `true`, the returned request will not update the Host header of the
-     * returned message -- even if the message contains no Host header. This
-     * means that a call to `getHeader('Host')` on the original request MUST
-     * equal the return value of a call to `getHeader('Host')` on the returned
-     * request.
-     *
-     * This method MUST be implemented in such a way as to retain the
-     * immutability of the message, and MUST return an instance that has the
-     * new UriInterface instance.
-     *
-     * @link http://tools.ietf.org/html/rfc3986#section-4.3
-     * @param UriInterface $uri New request URI to use.
-     * @param bool $preserveHost Preserve the original state of the Host header.
-     * @return static
-     */
-    public function withUri(UriInterface $uri, $preserveHost = false)
-    {
-        $new = clone $this;
-        $new->uri = $uri;
-
-        if ($preserveHost && $this->hasHeader('Host')) {
-            return $new;
-        }
-
-        if (! $uri->getHost()) {
-            return $new;
-        }
-
-        $host = $uri->getHost();
-        if ($uri->getPort()) {
-            $host .= ':' . $uri->getPort();
-        }
-
-        $new->headerNames['host'] = 'Host';
-        $new->headers['Host'] = [$host];
-
-        return $new;
-    }
-
-    /**
-     * Validate the HTTP method
-     *
-     * @param null|string $method
-     * @throws InvalidArgumentException on invalid HTTP method.
-     */
-    private function validateMethod($method)
-    {
-        if (null === $method) {
-            return;
-        }
-
-        if (! is_string($method)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unsupported HTTP method; must be a string, received %s',
-                (is_object($method) ? get_class($method) : gettype($method))
-            ));
-        }
-
-        if (! preg_match('/^[!#$%&\'*+.^_`\|~0-9a-z-]+$/i', $method)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unsupported HTTP method "%s" provided',
-                $method
-            ));
-        }
-    }
-
-    /**
-     * Retrieve the host from the URI instance
-     *
-     * @return string
-     */
-    private function getHostFromUri()
-    {
-        $host  = $this->uri->getHost();
-        $host .= $this->uri->getPort() ? ':' . $this->uri->getPort() : '';
-        return $host;
-    }
-
-    /**
-     * Ensure header names and values are valid.
-     *
-     * @param array $headers
-     * @throws InvalidArgumentException
-     */
-    private function assertHeaders(array $headers)
-    {
-        foreach ($headers as $name => $headerValues) {
-            HeaderSecurity::assertValidName($name);
-            array_walk($headerValues, __NAMESPACE__ . '\HeaderSecurity::assertValid');
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response.php b/core/vendor/zendframework/zend-diactoros/src/Response.php
deleted file mode 100644
index ef250e6..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * HTTP response encapsulation.
- *
- * Responses are considered immutable; all methods that might change state are
- * implemented such that they retain the internal state of the current
- * message and return a new instance that contains the changed state.
- */
-class Response implements ResponseInterface
-{
-    use MessageTrait;
-
-    /**
-     * Map of standard HTTP status code/reason phrases
-     *
-     * @var array
-     */
-    private $phrases = [
-        // INFORMATIONAL CODES
-        100 => 'Continue',
-        101 => 'Switching Protocols',
-        102 => 'Processing',
-        // SUCCESS CODES
-        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',
-        // REDIRECTION CODES
-        300 => 'Multiple Choices',
-        301 => 'Moved Permanently',
-        302 => 'Found',
-        303 => 'See Other',
-        304 => 'Not Modified',
-        305 => 'Use Proxy',
-        306 => 'Switch Proxy', // Deprecated
-        307 => 'Temporary Redirect',
-        // CLIENT ERROR
-        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',
-        // SERVER ERROR
-        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 string|resource|StreamInterface $stream Stream identifier and/or actual stream resource
-     * @param int $status Status code for the response, if any.
-     * @param array $headers Headers for the response, if any.
-     * @throws InvalidArgumentException on any invalid element.
-     */
-    public function __construct($body = 'php://memory', $status = 200, array $headers = [])
-    {
-        if (! is_string($body) && ! is_resource($body) && ! $body instanceof StreamInterface) {
-            throw new InvalidArgumentException(
-                'Stream must be a string stream resource identifier, '
-                . 'an actual stream resource, '
-                . 'or a Psr\Http\Message\StreamInterface implementation'
-            );
-        }
-
-        if (null !== $status) {
-            $this->validateStatus($status);
-        }
-
-        $this->stream     = ($body instanceof StreamInterface) ? $body : new Stream($body, 'wb+');
-        $this->statusCode = $status ? (int) $status : 200;
-
-        list($this->headerNames, $headers) = $this->filterHeaders($headers);
-        $this->assertHeaders($headers);
-        $this->headers = $headers;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getReasonPhrase()
-    {
-        if (! $this->reasonPhrase
-            && isset($this->phrases[$this->statusCode])
-        ) {
-            $this->reasonPhrase = $this->phrases[$this->statusCode];
-        }
-
-        return $this->reasonPhrase;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withStatus($code, $reasonPhrase = '')
-    {
-        $this->validateStatus($code);
-        $new = clone $this;
-        $new->statusCode   = (int) $code;
-        $new->reasonPhrase = $reasonPhrase;
-        return $new;
-    }
-
-    /**
-     * Validate a status code.
-     *
-     * @param int|string $code
-     * @throws InvalidArgumentException on an invalid status code.
-     */
-    private function validateStatus($code)
-    {
-        if (! is_numeric($code)
-            || is_float($code)
-            || $code < 100
-            || $code >= 600
-        ) {
-            throw new InvalidArgumentException(sprintf(
-                'Invalid status code "%s"; must be an integer between 100 and 599, inclusive',
-                (is_scalar($code) ? $code : gettype($code))
-            ));
-        }
-    }
-
-    /**
-     * Ensure header names and values are valid.
-     *
-     * @param array $headers
-     * @throws InvalidArgumentException
-     */
-    private function assertHeaders(array $headers)
-    {
-        foreach ($headers as $name => $headerValues) {
-            HeaderSecurity::assertValidName($name);
-            array_walk($headerValues, __NAMESPACE__ . '\HeaderSecurity::assertValid');
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/EmitterInterface.php b/core/vendor/zendframework/zend-diactoros/src/Response/EmitterInterface.php
deleted file mode 100644
index 25ea7f3..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/EmitterInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use Psr\Http\Message\ResponseInterface;
-
-interface EmitterInterface
-{
-    /**
-     * Emit a response.
-     *
-     * Emits a response, including status line, headers, and the message body,
-     * according to the environment.
-     *
-     * Implementations of this method may be written in such a way as to have
-     * side effects, such as usage of header() or pushing output to the
-     * output buffer.
-     *
-     * Implementations MAY raise exceptions if they are unable to emit the
-     * response; e.g., if headers have already been sent.
-     *
-     * @param ResponseInterface $response
-     */
-    public function emit(ResponseInterface $response);
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/EmptyResponse.php b/core/vendor/zendframework/zend-diactoros/src/Response/EmptyResponse.php
deleted file mode 100644
index 9110306..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/EmptyResponse.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use Zend\Diactoros\Response;
-use Zend\Diactoros\Stream;
-
-/**
- * A class representing empty HTTP responses.
- */
-class EmptyResponse extends Response
-{
-    /**
-     * Create an empty response with the given status code.
-     *
-     * @param int $status Status code for the response, if any.
-     * @param array $headers Headers for the response, if any.
-     */
-    public function __construct($status = 204, array $headers = [])
-    {
-        $body = new Stream('php://temp', 'r');
-        parent::__construct($body, $status, $headers);
-    }
-
-    /**
-     * Create an empty response with the given headers.
-     *
-     * @param array $headers Headers for the response.
-     * @return EmptyResponse
-     */
-    public static function withHeaders(array $headers)
-    {
-        return new static(204, $headers);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/HtmlResponse.php b/core/vendor/zendframework/zend-diactoros/src/Response/HtmlResponse.php
deleted file mode 100644
index d298ee0..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/HtmlResponse.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use InvalidArgumentException;
-use Psr\Http\Message\StreamInterface;
-use Zend\Diactoros\Response;
-use Zend\Diactoros\Stream;
-
-/**
- * HTML response.
- *
- * Allows creating a response by passing an HTML string to the constructor;
- * by default, sets a status code of 200 and sets the Content-Type header to
- * text/html.
- */
-class HtmlResponse extends Response
-{
-    use InjectContentTypeTrait;
-
-    /**
-     * Create an HTML response.
-     *
-     * Produces an HTML response with a Content-Type of text/html and a default
-     * status of 200.
-     *
-     * @param string|StreamInterface $html HTML or stream for the message body.
-     * @param int $status Integer status code for the response; 200 by default.
-     * @param array $headers Array of headers to use at initialization.
-     * @throws InvalidArgumentException if $html is neither a string or stream.
-     */
-    public function __construct($html, $status = 200, array $headers = [])
-    {
-        parent::__construct(
-            $this->createBody($html),
-            $status,
-            $this->injectContentType('text/html', $headers)
-        );
-    }
-
-    /**
-     * Create the message body.
-     *
-     * @param string|StreamInterface $html
-     * @return StreamInterface
-     * @throws InvalidArgumentException if $html is neither a string or stream.
-     */
-    private function createBody($html)
-    {
-        if ($html instanceof StreamInterface) {
-            return $html;
-        }
-
-        if (! is_string($html)) {
-            throw new InvalidArgumentException(sprintf(
-                'Invalid content (%s) provided to %s',
-                (is_object($html) ? get_class($html) : gettype($html)),
-                __CLASS__
-            ));
-        }
-
-        $body = new Stream('php://temp', 'wb+');
-        $body->write($html);
-        return $body;
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/InjectContentTypeTrait.php b/core/vendor/zendframework/zend-diactoros/src/Response/InjectContentTypeTrait.php
deleted file mode 100644
index 00fd217..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/InjectContentTypeTrait.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-trait InjectContentTypeTrait
-{
-    /**
-     * Inject the provided Content-Type, if none is already present.
-     *
-     * @param string $contentType
-     * @param array $headers
-     * @return array Headers with injected Content-Type
-     */
-    private function injectContentType($contentType, array $headers)
-    {
-        $hasContentType = array_reduce(array_keys($headers), function ($carry, $item) {
-            return $carry ?: (strtolower($item) === 'content-type');
-        }, false);
-
-        if (! $hasContentType) {
-            $headers['content-type'] = [$contentType];
-        }
-
-        return $headers;
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/JsonResponse.php b/core/vendor/zendframework/zend-diactoros/src/Response/JsonResponse.php
deleted file mode 100644
index fc50808..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/JsonResponse.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use ArrayObject;
-use InvalidArgumentException;
-use Zend\Diactoros\Response;
-use Zend\Diactoros\Stream;
-
-/**
- * HTML response.
- *
- * Allows creating a response by passing an HTML string to the constructor;
- * by default, sets a status code of 200 and sets the Content-Type header to
- * text/html.
- */
-class JsonResponse extends Response
-{
-    use InjectContentTypeTrait;
-
-    /**
-     * Create a JSON response with the given array of data.
-     *
-     * If the data provided is null, an empty ArrayObject is used; if the data
-     * is scalar, it is cast to an array prior to serialization.
-     *
-     * Default JSON encoding is performed with the following options, which
-     * produces RFC4627-compliant JSON, capable of embedding into HTML.
-     *
-     * - JSON_HEX_TAG
-     * - JSON_HEX_APOS
-     * - JSON_HEX_AMP
-     * - JSON_HEX_QUOT
-     *
-     * @param string $data Data to convert to JSON.
-     * @param int $status Integer status code for the response; 200 by default.
-     * @param array $headers Array of headers to use at initialization.
-     * @param int $encodingOptions JSON encoding options to use.
-     * @throws InvalidArgumentException if unable to encode the $data to JSON.
-     */
-    public function __construct($data, $status = 200, array $headers = [], $encodingOptions = 15)
-    {
-        $body = new Stream('php://temp', 'wb+');
-        $body->write($this->jsonEncode($data, $encodingOptions));
-
-        $headers = $this->injectContentType('application/json', $headers);
-
-        parent::__construct($body, $status, $headers);
-    }
-
-    /**
-     * Encode the provided data to JSON.
-     *
-     * @param mixed $data
-     * @param int $encodingOptions
-     * @return string
-     * @throws InvalidArgumentException if unable to encode the $data to JSON.
-     */
-    private function jsonEncode($data, $encodingOptions)
-    {
-        if (is_resource($data)) {
-            throw new InvalidArgumentException('Cannot JSON encode resources');
-        }
-
-        if ($data === null) {
-            // Use an ArrayObject to force an empty JSON object.
-            $data = new ArrayObject();
-        }
-
-        if (is_scalar($data)) {
-            $data = (array) $data;
-        }
-
-        // Clear json_last_error()
-        json_encode(null);
-
-        $json = json_encode($data, $encodingOptions);
-
-        if (JSON_ERROR_NONE !== json_last_error()) {
-            throw new InvalidArgumentException(sprintf(
-                'Unable to encode data to JSON in %s: %s',
-                __CLASS__,
-                json_last_error_msg()
-            ));
-        }
-
-        return $json;
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/RedirectResponse.php b/core/vendor/zendframework/zend-diactoros/src/Response/RedirectResponse.php
deleted file mode 100644
index 26911f0..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/RedirectResponse.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use InvalidArgumentException;
-use Psr\Http\Message\UriInterface;
-use Zend\Diactoros\Response;
-use Zend\Diactoros\Stream;
-
-/**
- * Produce a redirect response.
- */
-class RedirectResponse extends Response
-{
-    /**
-     * Create a redirect response.
-     *
-     * Produces a redirect response with a Location header and the given status
-     * (302 by default).
-     *
-     * Note: this method overwrites the `location` $headers value.
-     *
-     * @param string|UriInterface $uri URI for the Location header.
-     * @param int $status Integer status code for the redirect; 302 by default.
-     * @param array $headers Array of headers to use at initialization.
-     */
-    public function __construct($uri, $status = 302, array $headers = [])
-    {
-        if (! is_string($uri) && ! $uri instanceof UriInterface) {
-            throw new InvalidArgumentException(sprintf(
-                'Uri provided to %s MUST be a string or Psr\Http\Message\UriInterface instance; received "%s"',
-                __CLASS__,
-                (is_object($uri) ? get_class($uri) : gettype($uri))
-            ));
-        }
-
-        $headers['location'] = [(string) $uri];
-        parent::__construct('php://temp', $status, $headers);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/SapiEmitter.php b/core/vendor/zendframework/zend-diactoros/src/Response/SapiEmitter.php
deleted file mode 100644
index bba291e..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/SapiEmitter.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use Psr\Http\Message\ResponseInterface;
-use RuntimeException;
-
-class SapiEmitter implements EmitterInterface
-{
-    /**
-     * Emits a response for a PHP SAPI environment.
-     *
-     * Emits the status line and headers via the header() function, and the
-     * body content via the output buffer.
-     *
-     * @param ResponseInterface $response
-     * @param null|int $maxBufferLevel Maximum output buffering level to unwrap.
-     */
-    public function emit(ResponseInterface $response, $maxBufferLevel = null)
-    {
-        if (headers_sent()) {
-            throw new RuntimeException('Unable to emit response; headers already sent');
-        }
-
-        $this->emitStatusLine($response);
-        $this->emitHeaders($response);
-        $this->emitBody($response, $maxBufferLevel);
-    }
-
-    /**
-     * Emit the status line.
-     *
-     * Emits the status line using the protocol version and status code from
-     * the response; if a reason phrase is availble, it, too, is emitted.
-     *
-     * @param ResponseInterface $response
-     */
-    private function emitStatusLine(ResponseInterface $response)
-    {
-        $reasonPhrase = $response->getReasonPhrase();
-        header(sprintf(
-            'HTTP/%s %d%s',
-            $response->getProtocolVersion(),
-            $response->getStatusCode(),
-            ($reasonPhrase ? ' ' . $reasonPhrase : '')
-        ));
-    }
-
-    /**
-     * Emit response headers.
-     *
-     * Loops through each header, emitting each; if the header value
-     * is an array with multiple values, ensures that each is sent
-     * in such a way as to create aggregate headers (instead of replace
-     * the previous).
-     *
-     * @param ResponseInterface $response
-     */
-    private function emitHeaders(ResponseInterface $response)
-    {
-        foreach ($response->getHeaders() as $header => $values) {
-            $name  = $this->filterHeader($header);
-            $first = true;
-            foreach ($values as $value) {
-                header(sprintf(
-                    '%s: %s',
-                    $name,
-                    $value
-                ), $first);
-                $first = false;
-            }
-        }
-    }
-
-    /**
-     * Emit the message body.
-     *
-     * Loops through the output buffer, flushing each, before emitting
-     * the response body using `echo()`.
-     *
-     * @param ResponseInterface $response
-     * @param int $maxBufferLevel Flush up to this buffer level.
-     */
-    private function emitBody(ResponseInterface $response, $maxBufferLevel)
-    {
-        if (null === $maxBufferLevel) {
-            $maxBufferLevel = ob_get_level();
-        }
-
-        while (ob_get_level() > $maxBufferLevel) {
-            ob_end_flush();
-        }
-
-        echo $response->getBody();
-    }
-
-    /**
-     * Filter a header name to wordcase
-     *
-     * @param string $header
-     * @return string
-     */
-    private function filterHeader($header)
-    {
-        $filtered = str_replace('-', ' ', $header);
-        $filtered = ucwords($filtered);
-        return str_replace(' ', '-', $filtered);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Response/Serializer.php b/core/vendor/zendframework/zend-diactoros/src/Response/Serializer.php
deleted file mode 100644
index 8da835d..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Response/Serializer.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros\Response;
-
-use InvalidArgumentException;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\StreamInterface;
-use UnexpectedValueException;
-use Zend\Diactoros\AbstractSerializer;
-use Zend\Diactoros\Response;
-use Zend\Diactoros\Stream;
-
-final class Serializer extends AbstractSerializer
-{
-    /**
-     * Deserialize a response string to a response instance.
-     *
-     * @param string $message
-     * @return Response
-     * @throws UnexpectedValueException when errors occur parsing the message.
-     */
-    public static function fromString($message)
-    {
-        $stream = new Stream('php://temp', 'wb+');
-        $stream->write($message);
-        return static::fromStream($stream);
-    }
-
-    /**
-     * Parse a response from a stream.
-     *
-     * @param StreamInterface $stream
-     * @return ResponseInterface
-     * @throws InvalidArgumentException when the stream is not readable.
-     * @throws UnexpectedValueException when errors occur parsing the message.
-     */
-    public static function fromStream(StreamInterface $stream)
-    {
-        if (! $stream->isReadable() || ! $stream->isSeekable()) {
-            throw new InvalidArgumentException('Message stream must be both readable and seekable');
-        }
-
-        $stream->rewind();
-
-        list($version, $status, $reasonPhrase) = self::getStatusLine($stream);
-        list($headers, $body)                  = self::splitStream($stream);
-
-        return (new Response($body, $status, $headers))
-            ->withProtocolVersion($version)
-            ->withStatus($status, $reasonPhrase);
-    }
-
-    /**
-     * Create a string representation of a response.
-     *
-     * @param ResponseInterface $response
-     * @return string
-     */
-    public static function toString(ResponseInterface $response)
-    {
-        $reasonPhrase = $response->getReasonPhrase();
-        $headers      = self::serializeHeaders($response->getHeaders());
-        $body         = (string) $response->getBody();
-        $format       = 'HTTP/%s %d%s%s%s';
-
-        if (! empty($headers)) {
-            $headers = "\r\n" . $headers;
-        }
-        if (! empty($body)) {
-            $headers .= "\r\n\r\n";
-        }
-
-        return sprintf(
-            $format,
-            $response->getProtocolVersion(),
-            $response->getStatusCode(),
-            ($reasonPhrase ? ' ' . $reasonPhrase : ''),
-            $headers,
-            $body
-        );
-    }
-
-    /**
-     * Retrieve the status line for the message.
-     *
-     * @param StreamInterface $stream
-     * @return array Array with three elements: 0 => version, 1 => status, 2 => reason
-     * @throws UnexpectedValueException if line is malformed
-     */
-    private static function getStatusLine(StreamInterface $stream)
-    {
-        $line = self::getLine($stream);
-
-        if (! preg_match(
-            '#^HTTP/(?P<version>[1-9]\d*\.\d) (?P<status>[1-5]\d{2})(\s+(?P<reason>.+))?$#',
-            $line,
-            $matches
-        )) {
-            throw new UnexpectedValueException('No status line detected');
-        }
-
-        return [$matches['version'], $matches['status'], isset($matches['reason']) ? $matches['reason'] : ''];
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Server.php b/core/vendor/zendframework/zend-diactoros/src/Server.php
deleted file mode 100644
index e3c9b30..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Server.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use OutOfBoundsException;
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\ResponseInterface;
-
-/**
- * "Serve" incoming HTTP requests
- *
- * Given a callback, takes an incoming request, dispatches it to the
- * callback, and then sends a response.
- */
-class Server
-{
-    /**
-     * @var callable
-     */
-    private $callback;
-
-    /**
-     * Response emitter to use; by default, uses Response\SapiEmitter.
-     *
-     * @var Response\EmitterInterface
-     */
-    private $emitter;
-
-    /**
-     * @var ServerRequestInterface
-     */
-    private $request;
-
-    /**
-     * @var ResponseInterface
-     */
-    private $response;
-
-    /**
-     * Constructor
-     *
-     * Given a callback, a request, and a response, we can create a server.
-     *
-     * @param callable $callback
-     * @param ServerRequestInterface $request
-     * @param ResponseInterface $response
-     */
-    public function __construct(
-        callable $callback,
-        ServerRequestInterface $request,
-        ResponseInterface $response
-    ) {
-        $this->callback = $callback;
-        $this->request  = $request;
-        $this->response = $response;
-    }
-
-    /**
-     * Allow retrieving the request, response and callback as properties
-     *
-     * @param string $name
-     * @return mixed
-     * @throws OutOfBoundsException for invalid properties
-     */
-    public function __get($name)
-    {
-        if (! property_exists($this, $name)) {
-            throw new OutOfBoundsException('Cannot retrieve arbitrary properties from server');
-        }
-        return $this->{$name};
-    }
-
-    /**
-     * Set alternate response emitter to use.
-     *
-     * @param Response\EmitterInterface $emitter
-     */
-    public function setEmitter(Response\EmitterInterface $emitter)
-    {
-        $this->emitter = $emitter;
-    }
-
-    /**
-     * Create a Server instance
-     *
-     * Creates a server instance from the callback and the following
-     * PHP environmental values:
-     *
-     * - server; typically this will be the $_SERVER superglobal
-     * - query; typically this will be the $_GET superglobal
-     * - body; typically this will be the $_POST superglobal
-     * - cookies; typically this will be the $_COOKIE superglobal
-     * - files; typically this will be the $_FILES superglobal
-     *
-     * @param callable $callback
-     * @param array $server
-     * @param array $query
-     * @param array $body
-     * @param array $cookies
-     * @param array $files
-     * @return static
-     */
-    public static function createServer(
-        callable $callback,
-        array $server,
-        array $query,
-        array $body,
-        array $cookies,
-        array $files
-    ) {
-        $request  = ServerRequestFactory::fromGlobals($server, $query, $body, $cookies, $files);
-        $response = new Response();
-        return new static($callback, $request, $response);
-    }
-
-    /**
-     * Create a Server instance from an existing request object
-     *
-     * Provided a callback, an existing request object, and optionally an
-     * existing response object, create and return the Server instance.
-     *
-     * If no Response object is provided, one will be created.
-     *
-     * @param callable $callback
-     * @param ServerRequestInterface $request
-     * @param null|ResponseInterface $response
-     * @return static
-     */
-    public static function createServerFromRequest(
-        callable $callback,
-        ServerRequestInterface $request,
-        ResponseInterface $response = null
-    ) {
-        if (! $response) {
-            $response = new Response();
-        }
-        return new static($callback, $request, $response);
-    }
-
-    /**
-     * "Listen" to an incoming request
-     *
-     * If provided a $finalHandler, that callable will be used for
-     * incomplete requests.
-     *
-     * Output buffering is enabled prior to invoking the attached
-     * callback; any output buffered will be sent prior to any
-     * response body content.
-     *
-     * @param null|callable $finalHandler
-     */
-    public function listen(callable $finalHandler = null)
-    {
-        $callback = $this->callback;
-
-        ob_start();
-        $bufferLevel = ob_get_level();
-
-        $response = $callback($this->request, $this->response, $finalHandler);
-        if (! $response instanceof ResponseInterface) {
-            $response = $this->response;
-        }
-        $this->getEmitter()->emit($response, $bufferLevel);
-    }
-
-    /**
-     * Retrieve the current response emitter.
-     *
-     * If none has been registered, lazy-loads a Response\SapiEmitter.
-     *
-     * @return Response\EmitterInterface
-     */
-    private function getEmitter()
-    {
-        if (! $this->emitter) {
-            $this->emitter = new Response\SapiEmitter();
-        }
-
-        return $this->emitter;
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/ServerRequest.php b/core/vendor/zendframework/zend-diactoros/src/ServerRequest.php
deleted file mode 100644
index 67a04b4..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/ServerRequest.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UploadedFileInterface;
-
-/**
- * Server-side HTTP request
- *
- * Extends the Request definition to add methods for accessing incoming data,
- * specifically server parameters, cookies, matched path parameters, query
- * string arguments, body parameters, and upload file information.
- *
- * "Attributes" are discovered via decomposing the request (and usually
- * specifically the URI path), and typically will be injected by the application.
- *
- * Requests are considered immutable; all methods that might change state are
- * implemented such that they retain the internal state of the current
- * message and return a new instance that contains the changed state.
- */
-class ServerRequest implements ServerRequestInterface
-{
-    use MessageTrait, RequestTrait;
-
-    /**
-     * @var array
-     */
-    private $attributes = [];
-
-    /**
-     * @var array
-     */
-    private $cookieParams = [];
-
-    /**
-     * @var null|array|object
-     */
-    private $parsedBody;
-
-    /**
-     * @var array
-     */
-    private $queryParams = [];
-
-    /**
-     * @var array
-     */
-    private $serverParams;
-
-    /**
-     * @var array
-     */
-    private $uploadedFiles;
-
-    /**
-     * @param array $serverParams Server parameters, typically from $_SERVER
-     * @param array $uploadedFiles Upload file information, a tree of UploadedFiles
-     * @param null|string $uri URI for the request, if any.
-     * @param null|string $method HTTP method for the request, if any.
-     * @param string|resource|StreamInterface $body Message body, if any.
-     * @param array $headers Headers for the message, if any.
-     * @throws InvalidArgumentException for any invalid value.
-     */
-    public function __construct(
-        array $serverParams = [],
-        array $uploadedFiles = [],
-        $uri = null,
-        $method = null,
-        $body = 'php://input',
-        array $headers = []
-    ) {
-        $this->validateUploadedFiles($uploadedFiles);
-
-        $body = $this->getStream($body);
-        $this->initialize($uri, $method, $body, $headers);
-        $this->serverParams  = $serverParams;
-        $this->uploadedFiles = $uploadedFiles;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getServerParams()
-    {
-        return $this->serverParams;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getUploadedFiles()
-    {
-        return $this->uploadedFiles;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withUploadedFiles(array $uploadedFiles)
-    {
-        $this->validateUploadedFiles($uploadedFiles);
-        $new = clone $this;
-        $new->uploadedFiles = $uploadedFiles;
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getCookieParams()
-    {
-        return $this->cookieParams;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withCookieParams(array $cookies)
-    {
-        $new = clone $this;
-        $new->cookieParams = $cookies;
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getQueryParams()
-    {
-        return $this->queryParams;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withQueryParams(array $query)
-    {
-        $new = clone $this;
-        $new->queryParams = $query;
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getParsedBody()
-    {
-        return $this->parsedBody;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withParsedBody($data)
-    {
-        $new = clone $this;
-        $new->parsedBody = $data;
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttributes()
-    {
-        return $this->attributes;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAttribute($attribute, $default = null)
-    {
-        if (! array_key_exists($attribute, $this->attributes)) {
-            return $default;
-        }
-
-        return $this->attributes[$attribute];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withAttribute($attribute, $value)
-    {
-        $new = clone $this;
-        $new->attributes[$attribute] = $value;
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withoutAttribute($attribute)
-    {
-        if (! isset($this->attributes[$attribute])) {
-            return clone $this;
-        }
-
-        $new = clone $this;
-        unset($new->attributes[$attribute]);
-        return $new;
-    }
-
-    /**
-     * Proxy to receive the request method.
-     *
-     * This overrides the parent functionality to ensure the method is never
-     * empty; if no method is present, it returns 'GET'.
-     *
-     * @return string
-     */
-    public function getMethod()
-    {
-        if (empty($this->method)) {
-            return 'GET';
-        }
-        return $this->method;
-    }
-
-    /**
-     * Set the request method.
-     *
-     * Unlike the regular Request implementation, the server-side
-     * normalizes the method to uppercase to ensure consistency
-     * and make checking the method simpler.
-     *
-     * This methods returns a new instance.
-     *
-     * @param string $method
-     * @return self
-     */
-    public function withMethod($method)
-    {
-        $this->validateMethod($method);
-        $new = clone $this;
-        $new->method = $method;
-        return $new;
-    }
-
-    /**
-     * Set the body stream
-     *
-     * @param string|resource|StreamInterface $stream
-     * @return StreamInterface
-     */
-    private function getStream($stream)
-    {
-        if ($stream === 'php://input') {
-            return new PhpInputStream();
-        }
-
-        if (! is_string($stream) && ! is_resource($stream) && ! $stream instanceof StreamInterface) {
-            throw new InvalidArgumentException(
-                'Stream must be a string stream resource identifier, '
-                . 'an actual stream resource, '
-                . 'or a Psr\Http\Message\StreamInterface implementation'
-            );
-        }
-
-        if (! $stream instanceof StreamInterface) {
-            return new Stream($stream, 'r');
-        }
-
-        return $stream;
-    }
-
-    /**
-     * Recursively validate the structure in an uploaded files array.
-     *
-     * @param array $uploadedFiles
-     * @throws InvalidArgumentException if any leaf is not an UploadedFileInterface instance.
-     */
-    private function validateUploadedFiles(array $uploadedFiles)
-    {
-        foreach ($uploadedFiles as $file) {
-            if (is_array($file)) {
-                $this->validateUploadedFiles($file);
-                continue;
-            }
-
-            if (! $file instanceof UploadedFileInterface) {
-                throw new InvalidArgumentException('Invalid leaf in uploaded files structure');
-            }
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/ServerRequestFactory.php b/core/vendor/zendframework/zend-diactoros/src/ServerRequestFactory.php
deleted file mode 100644
index e23dfe5..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/ServerRequestFactory.php
+++ /dev/null
@@ -1,458 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\ServerRequestInterface;
-use Psr\Http\Message\MessageInterface;
-use Psr\Http\Message\UploadedFileInterface;
-use stdClass;
-
-/**
- * Class for marshaling a request object from the current PHP environment.
- *
- * Logic largely refactored from the ZF2 Zend\Http\PhpEnvironment\Request class.
- *
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-abstract class ServerRequestFactory
-{
-    /**
-     * Function to use to get apache request headers; present only to simplify mocking.
-     *
-     * @var callable
-     */
-    private static $apacheRequestHeaders = 'apache_request_headers';
-
-    /**
-     * Create a request from the supplied superglobal values.
-     *
-     * If any argument is not supplied, the corresponding superglobal value will
-     * be used.
-     *
-     * The ServerRequest created is then passed to the fromServer() method in
-     * order to marshal the request URI and headers.
-     *
-     * @see fromServer()
-     * @param array $server $_SERVER superglobal
-     * @param array $query $_GET superglobal
-     * @param array $body $_POST superglobal
-     * @param array $cookies $_COOKIE superglobal
-     * @param array $files $_FILES superglobal
-     * @return ServerRequest
-     * @throws InvalidArgumentException for invalid file values
-     */
-    public static function fromGlobals(
-        array $server = null,
-        array $query = null,
-        array $body = null,
-        array $cookies = null,
-        array $files = null
-    ) {
-        $server  = static::normalizeServer($server ?: $_SERVER);
-        $files   = static::normalizeFiles($files ?: $_FILES);
-        $headers = static::marshalHeaders($server);
-        $request = new ServerRequest(
-            $server,
-            $files,
-            static::marshalUriFromServer($server, $headers),
-            static::get('REQUEST_METHOD', $server, 'GET'),
-            'php://input',
-            $headers
-        );
-
-        return $request
-            ->withCookieParams($cookies ?: $_COOKIE)
-            ->withQueryParams($query ?: $_GET)
-            ->withParsedBody($body ?: $_POST);
-    }
-
-    /**
-     * Access a value in an array, returning a default value if not found
-     *
-     * Will also do a case-insensitive search if a case sensitive search fails.
-     *
-     * @param string $key
-     * @param array $values
-     * @param mixed $default
-     * @return mixed
-     */
-    public static function get($key, array $values, $default = null)
-    {
-        if (array_key_exists($key, $values)) {
-            return $values[$key];
-        }
-
-        return $default;
-    }
-
-    /**
-     * Search for a header value.
-     *
-     * Does a case-insensitive search for a matching header.
-     *
-     * If found, it is returned as a string, using comma concatenation.
-     *
-     * If not, the $default is returned.
-     *
-     * @param string $header
-     * @param array $headers
-     * @param mixed $default
-     * @return string
-     */
-    public static function getHeader($header, array $headers, $default = null)
-    {
-        $header  = strtolower($header);
-        $headers = array_change_key_case($headers, CASE_LOWER);
-        if (array_key_exists($header, $headers)) {
-            $value = is_array($headers[$header]) ? implode(', ', $headers[$header]) : $headers[$header];
-            return $value;
-        }
-
-        return $default;
-    }
-
-    /**
-     * Marshal the $_SERVER array
-     *
-     * Pre-processes and returns the $_SERVER superglobal.
-     *
-     * @param array $server
-     * @return array
-     */
-    public static function normalizeServer(array $server)
-    {
-        // This seems to be the only way to get the Authorization header on Apache
-        $apacheRequestHeaders = self::$apacheRequestHeaders;
-        if (isset($server['HTTP_AUTHORIZATION'])
-            || ! is_callable($apacheRequestHeaders)
-        ) {
-            return $server;
-        }
-
-        $apacheRequestHeaders = $apacheRequestHeaders();
-        if (isset($apacheRequestHeaders['Authorization'])) {
-            $server['HTTP_AUTHORIZATION'] = $apacheRequestHeaders['Authorization'];
-            return $server;
-        }
-
-        if (isset($apacheRequestHeaders['authorization'])) {
-            $server['HTTP_AUTHORIZATION'] = $apacheRequestHeaders['authorization'];
-            return $server;
-        }
-
-        return $server;
-    }
-
-    /**
-     * Normalize uploaded files
-     *
-     * Transforms each value into an UploadedFileInterface instance, and ensures
-     * that nested arrays are normalized.
-     *
-     * @param array $files
-     * @return array
-     * @throws InvalidArgumentException for unrecognized values
-     */
-    public static function normalizeFiles(array $files)
-    {
-        $normalized = [];
-        foreach ($files as $key => $value) {
-            if ($value instanceof UploadedFileInterface) {
-                $normalized[$key] = $value;
-                continue;
-            }
-
-            if (is_array($value) && isset($value['tmp_name'])) {
-                $normalized[$key] = self::createUploadedFileFromSpec($value);
-                continue;
-            }
-
-            if (is_array($value)) {
-                $normalized[$key] = self::normalizeFiles($value);
-                continue;
-            }
-
-            throw new InvalidArgumentException('Invalid value in files specification');
-        }
-        return $normalized;
-    }
-
-    /**
-     * Marshal headers from $_SERVER
-     *
-     * @param array $server
-     * @return array
-     */
-    public static function marshalHeaders(array $server)
-    {
-        $headers = [];
-        foreach ($server as $key => $value) {
-            if (strpos($key, 'HTTP_COOKIE') === 0) {
-                // Cookies are handled using the $_COOKIE superglobal
-                continue;
-            }
-
-            if ($value && strpos($key, 'HTTP_') === 0) {
-                $name = strtr(substr($key, 5), '_', ' ');
-                $name = strtr(ucwords(strtolower($name)), ' ', '-');
-                $name = strtolower($name);
-
-                $headers[$name] = $value;
-                continue;
-            }
-
-            if ($value && strpos($key, 'CONTENT_') === 0) {
-                $name = substr($key, 8); // Content-
-                $name = 'Content-' . (($name == 'MD5') ? $name : ucfirst(strtolower($name)));
-                $name = strtolower($name);
-                $headers[$name] = $value;
-                continue;
-            }
-        }
-
-        return $headers;
-    }
-
-    /**
-     * Marshal the URI from the $_SERVER array and headers
-     *
-     * @param array $server
-     * @param array $headers
-     * @return Uri
-     */
-    public static function marshalUriFromServer(array $server, array $headers)
-    {
-        $uri = new Uri('');
-
-        // URI scheme
-        $scheme = 'http';
-        $https  = self::get('HTTPS', $server);
-        if (($https && 'off' !== $https)
-            || self::getHeader('x-forwarded-proto', $headers, false) === 'https'
-        ) {
-            $scheme = 'https';
-        }
-        if (! empty($scheme)) {
-            $uri = $uri->withScheme($scheme);
-        }
-
-        // Set the host
-        $accumulator = (object) ['host' => '', 'port' => null];
-        self::marshalHostAndPortFromHeaders($accumulator, $server, $headers);
-        $host = $accumulator->host;
-        $port = $accumulator->port;
-        if (! empty($host)) {
-            $uri = $uri->withHost($host);
-            if (! empty($port)) {
-                $uri = $uri->withPort($port);
-            }
-        }
-
-        // URI path
-        $path = self::marshalRequestUri($server);
-        $path = self::stripQueryString($path);
-
-        // URI query
-        $query = '';
-        if (isset($server['QUERY_STRING'])) {
-            $query = ltrim($server['QUERY_STRING'], '?');
-        }
-
-        return $uri
-            ->withPath($path)
-            ->withQuery($query);
-    }
-
-    /**
-     * Marshal the host and port from HTTP headers and/or the PHP environment
-     *
-     * @param stdClass $accumulator
-     * @param array $server
-     * @param array $headers
-     */
-    public static function marshalHostAndPortFromHeaders(stdClass $accumulator, array $server, array $headers)
-    {
-        if (self::getHeader('host', $headers, false)) {
-            self::marshalHostAndPortFromHeader($accumulator, self::getHeader('host', $headers));
-            return;
-        }
-
-        if (! isset($server['SERVER_NAME'])) {
-            return;
-        }
-
-        $accumulator->host = $server['SERVER_NAME'];
-        if (isset($server['SERVER_PORT'])) {
-            $accumulator->port = (int) $server['SERVER_PORT'];
-        }
-
-        if (! isset($server['SERVER_ADDR']) || ! preg_match('/^\[[0-9a-fA-F\:]+\]$/', $accumulator->host)) {
-            return;
-        }
-
-        // Misinterpreted IPv6-Address
-        // Reported for Safari on Windows
-        self::marshalIpv6HostAndPort($accumulator, $server);
-    }
-
-    /**
-     * Detect the base URI for the request
-     *
-     * Looks at a variety of criteria in order to attempt to autodetect a base
-     * URI, including rewrite URIs, proxy URIs, etc.
-     *
-     * From ZF2's Zend\Http\PhpEnvironment\Request class
-     * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
-     * @license   http://framework.zend.com/license/new-bsd New BSD License
-     *
-     * @param array $server
-     * @return string
-     */
-    public static function marshalRequestUri(array $server)
-    {
-        // IIS7 with URL Rewrite: make sure we get the unencoded url
-        // (double slash problem).
-        $iisUrlRewritten = self::get('IIS_WasUrlRewritten', $server);
-        $unencodedUrl    = self::get('UNENCODED_URL', $server, '');
-        if ('1' == $iisUrlRewritten && ! empty($unencodedUrl)) {
-            return $unencodedUrl;
-        }
-
-        $requestUri = self::get('REQUEST_URI', $server);
-
-        // Check this first so IIS will catch.
-        $httpXRewriteUrl = self::get('HTTP_X_REWRITE_URL', $server);
-        if ($httpXRewriteUrl !== null) {
-            $requestUri = $httpXRewriteUrl;
-        }
-
-        // Check for IIS 7.0 or later with ISAPI_Rewrite
-        $httpXOriginalUrl = self::get('HTTP_X_ORIGINAL_URL', $server);
-        if ($httpXOriginalUrl !== null) {
-            $requestUri = $httpXOriginalUrl;
-        }
-
-        if ($requestUri !== null) {
-            return preg_replace('#^[^/:]+://[^/]+#', '', $requestUri);
-        }
-
-        $origPathInfo = self::get('ORIG_PATH_INFO', $server);
-        if (empty($origPathInfo)) {
-            return '/';
-        }
-
-        return $origPathInfo;
-    }
-
-    /**
-     * Strip the query string from a path
-     *
-     * @param mixed $path
-     * @return string
-     */
-    public static function stripQueryString($path)
-    {
-        if (($qpos = strpos($path, '?')) !== false) {
-            return substr($path, 0, $qpos);
-        }
-        return $path;
-    }
-
-    /**
-     * Marshal the host and port from the request header
-     *
-     * @param stdClass $accumulator
-     * @param string|array $host
-     * @return void
-     */
-    private static function marshalHostAndPortFromHeader(stdClass $accumulator, $host)
-    {
-        if (is_array($host)) {
-            $host = implode(', ', $host);
-        }
-
-        $accumulator->host = $host;
-        $accumulator->port = null;
-
-        // works for regname, IPv4 & IPv6
-        if (preg_match('|\:(\d+)$|', $accumulator->host, $matches)) {
-            $accumulator->host = substr($accumulator->host, 0, -1 * (strlen($matches[1]) + 1));
-            $accumulator->port = (int) $matches[1];
-        }
-    }
-
-    /**
-     * Marshal host/port from misinterpreted IPv6 address
-     *
-     * @param stdClass $accumulator
-     * @param array $server
-     */
-    private static function marshalIpv6HostAndPort(stdClass $accumulator, array $server)
-    {
-        $accumulator->host = '[' . $server['SERVER_ADDR'] . ']';
-        $accumulator->port = $accumulator->port ?: 80;
-        if ($accumulator->port . ']' === substr($accumulator->host, strrpos($accumulator->host, ':') + 1)) {
-            // The last digit of the IPv6-Address has been taken as port
-            // Unset the port so the default port can be used
-            $accumulator->port = null;
-        }
-    }
-
-    /**
-     * 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'],
-            $value['size'],
-            $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 = [])
-    {
-        $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/core/vendor/zendframework/zend-diactoros/src/Stream.php b/core/vendor/zendframework/zend-diactoros/src/Stream.php
deleted file mode 100644
index d92211e..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Stream.php
+++ /dev/null
@@ -1,326 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use RuntimeException;
-use Psr\Http\Message\StreamInterface;
-
-/**
- * Implementation of PSR HTTP streams
- */
-class Stream implements StreamInterface
-{
-    /**
-     * @var resource
-     */
-    protected $resource;
-
-    /**
-     * @var string|resource
-     */
-    protected $stream;
-
-    /**
-     * @param string|resource $stream
-     * @param string $mode Mode with which to open stream
-     * @throws InvalidArgumentException
-     */
-    public function __construct($stream, $mode = 'r')
-    {
-        $this->stream = $stream;
-
-        if (is_resource($stream)) {
-            $this->resource = $stream;
-        } elseif (is_string($stream)) {
-            set_error_handler(function ($errno, $errstr) {
-                throw new InvalidArgumentException(
-                    'Invalid file provided for stream; must be a valid path with valid permissions'
-                );
-            }, E_WARNING);
-            $this->resource = fopen($stream, $mode);
-            restore_error_handler();
-        } else {
-            throw new InvalidArgumentException(
-                'Invalid stream provided; must be a string stream identifier or resource'
-            );
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        if (! $this->isReadable()) {
-            return '';
-        }
-
-        try {
-            $this->rewind();
-            return $this->getContents();
-        } catch (RuntimeException $e) {
-            return '';
-        }
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        if (! $this->resource) {
-            return;
-        }
-
-        $resource = $this->detach();
-        fclose($resource);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function detach()
-    {
-        $resource = $this->resource;
-        $this->resource = null;
-        return $resource;
-    }
-
-    /**
-     * Attach a new stream/resource to the instance.
-     *
-     * @param string|resource $resource
-     * @param string $mode
-     * @throws InvalidArgumentException for stream identifier that cannot be
-     *     cast to a resource
-     * @throws InvalidArgumentException for non-resource stream
-     */
-    public function attach($resource, $mode = 'r')
-    {
-        $error = null;
-        if (! is_resource($resource) && is_string($resource)) {
-            set_error_handler(function ($e) use (&$error) {
-                $error = $e;
-            }, E_WARNING);
-            $resource = fopen($resource, $mode);
-            restore_error_handler();
-        }
-
-        if ($error) {
-            throw new InvalidArgumentException('Invalid stream reference provided');
-        }
-
-        if (! is_resource($resource)) {
-            throw new InvalidArgumentException(
-                'Invalid stream provided; must be a string stream identifier or resource'
-            );
-        }
-
-        $this->resource = $resource;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getSize()
-    {
-        if (null === $this->resource) {
-            return null;
-        }
-
-        $stats = fstat($this->resource);
-        return $stats['size'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function tell()
-    {
-        if (! $this->resource) {
-            throw new RuntimeException('No resource available; cannot tell position');
-        }
-
-        $result = ftell($this->resource);
-        if (! is_int($result)) {
-            throw new RuntimeException('Error occurred during tell operation');
-        }
-
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function eof()
-    {
-        if (! $this->resource) {
-            return true;
-        }
-
-        return feof($this->resource);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isSeekable()
-    {
-        if (! $this->resource) {
-            return false;
-        }
-
-        $meta = stream_get_meta_data($this->resource);
-        return $meta['seekable'];
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if (! $this->resource) {
-            throw new RuntimeException('No resource available; cannot seek position');
-        }
-
-        if (! $this->isSeekable()) {
-            throw new RuntimeException('Stream is not seekable');
-        }
-
-        $result = fseek($this->resource, $offset, $whence);
-
-        if (0 !== $result) {
-            throw new RuntimeException('Error seeking within stream');
-        }
-
-        return true;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function rewind()
-    {
-        return $this->seek(0);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isWritable()
-    {
-        if (! $this->resource) {
-            return false;
-        }
-
-        $meta = stream_get_meta_data($this->resource);
-        $mode = $meta['mode'];
-
-        return (
-            strstr($mode, 'x')
-            || strstr($mode, 'w')
-            || strstr($mode, 'c')
-            || strstr($mode, 'a')
-            || strstr($mode, '+')
-        );
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function write($string)
-    {
-        if (! $this->resource) {
-            throw new RuntimeException('No resource available; cannot write');
-        }
-
-        if (! $this->isWritable()) {
-            throw new RuntimeException('Stream is not writable');
-        }
-
-        $result = fwrite($this->resource, $string);
-
-        if (false === $result) {
-            throw new RuntimeException('Error writing to stream');
-        }
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function isReadable()
-    {
-        if (! $this->resource) {
-            return false;
-        }
-
-        $meta = stream_get_meta_data($this->resource);
-        $mode = $meta['mode'];
-
-        return (strstr($mode, 'r') || strstr($mode, '+'));
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function read($length)
-    {
-        if (! $this->resource) {
-            throw new RuntimeException('No resource available; cannot read');
-        }
-
-        if (! $this->isReadable()) {
-            throw new RuntimeException('Stream is not readable');
-        }
-
-        $result = fread($this->resource, $length);
-
-        if (false === $result) {
-            throw new RuntimeException('Error reading stream');
-        }
-
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getContents()
-    {
-        if (! $this->isReadable()) {
-            throw new RuntimeException('Stream is not readable');
-        }
-
-        $result = stream_get_contents($this->resource);
-        if (false === $result) {
-            throw new RuntimeException('Error reading from stream');
-        }
-        return $result;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getMetadata($key = null)
-    {
-        if (null === $key) {
-            return stream_get_meta_data($this->resource);
-        }
-
-        $metadata = stream_get_meta_data($this->resource);
-        if (! array_key_exists($key, $metadata)) {
-            return null;
-        }
-
-        return $metadata[$key];
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/UploadedFile.php b/core/vendor/zendframework/zend-diactoros/src/UploadedFile.php
deleted file mode 100644
index 77d6559..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/UploadedFile.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\StreamInterface;
-use Psr\Http\Message\UploadedFileInterface;
-use RuntimeException;
-
-class UploadedFile implements UploadedFileInterface
-{
-    /**
-     * @var string
-     */
-    private $clientFilename;
-
-    /**
-     * @var string
-     */
-    private $clientMediaType;
-
-    /**
-     * @var int
-     */
-    private $error;
-
-    /**
-     * @var null|string
-     */
-    private $file;
-
-    /**
-     * @var bool
-     */
-    private $moved = false;
-
-    /**
-     * @var int
-     */
-    private $size;
-
-    /**
-     * @var null|StreamInterface
-     */
-    private $stream;
-
-    public function __construct($streamOrFile, $size, $errorStatus, $clientFilename = null, $clientMediaType = null)
-    {
-        if ($errorStatus === UPLOAD_ERR_OK) {
-            if (is_string($streamOrFile)) {
-                $this->file = $streamOrFile;
-            }
-            if (is_resource($streamOrFile)) {
-                $this->stream = new Stream($streamOrFile);
-            }
-
-            if (! $this->file && ! $this->stream) {
-                if (! $streamOrFile instanceof StreamInterface) {
-                    throw new InvalidArgumentException('Invalid stream or file provided for UploadedFile');
-                }
-                $this->stream = $streamOrFile;
-            }
-        }
-
-        if (! is_int($size)) {
-            throw new InvalidArgumentException('Invalid size provided for UploadedFile; must be an int');
-        }
-        $this->size = $size;
-
-        if (! is_int($errorStatus)
-            || 0 > $errorStatus
-            || 8 < $errorStatus
-        ) {
-            throw new InvalidArgumentException(
-                'Invalid error status for UploadedFile; must be an UPLOAD_ERR_* constant'
-            );
-        }
-        $this->error = $errorStatus;
-
-        if (null !== $clientFilename && ! is_string($clientFilename)) {
-            throw new InvalidArgumentException(
-                'Invalid client filename provided for UploadedFile; must be null or a string'
-            );
-        }
-        $this->clientFilename = $clientFilename;
-
-        if (null !== $clientMediaType && ! is_string($clientMediaType)) {
-            throw new InvalidArgumentException(
-                'Invalid client media type provided for UploadedFile; must be null or a string'
-            );
-        }
-        $this->clientMediaType = $clientMediaType;
-    }
-
-    /**
-     * {@inheritdoc}
-     * @throws \RuntimeException if the upload was not successful.
-     */
-    public function getStream()
-    {
-        if ($this->error !== UPLOAD_ERR_OK) {
-            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');
-        }
-
-        if ($this->stream instanceof StreamInterface) {
-            return $this->stream;
-        }
-
-        $this->stream = new Stream($this->file);
-        return $this->stream;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @see http://php.net/is_uploaded_file
-     * @see http://php.net/move_uploaded_file
-     * @param string $targetPath Path to which to move the uploaded file.
-     * @throws \RuntimeException if the upload was not successful.
-     * @throws \InvalidArgumentException if the $path specified is invalid.
-     * @throws \RuntimeException on any error during the move operation, or on
-     *     the second or subsequent call to the method.
-     */
-    public function moveTo($targetPath)
-    {
-        if ($this->error !== UPLOAD_ERR_OK) {
-            throw new RuntimeException('Cannot retrieve stream due to upload error');
-        }
-
-        if (! is_string($targetPath)) {
-            throw new InvalidArgumentException(
-                'Invalid path provided for move operation; must be a string'
-            );
-        }
-
-        if (empty($targetPath)) {
-            throw new InvalidArgumentException(
-                'Invalid path provided for move operation; must be a non-empty string'
-            );
-        }
-
-        if ($this->moved) {
-            throw new RuntimeException('Cannot move file; already moved!');
-        }
-
-        $sapi = PHP_SAPI;
-        switch (true) {
-            case (empty($sapi) || 0 === strpos($sapi, 'cli') || ! $this->file):
-                // Non-SAPI environment, or no filename present
-                $this->writeFile($targetPath);
-                break;
-            default:
-                // SAPI environment, with file present
-                if (false === move_uploaded_file($this->file, $targetPath)) {
-                    throw new RuntimeException('Error occurred while moving uploaded file');
-                }
-                break;
-        }
-
-        $this->moved = true;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return int|null The file size in bytes or null if unknown.
-     */
-    public function getSize()
-    {
-        return $this->size;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @see http://php.net/manual/en/features.file-upload.errors.php
-     * @return int One of PHP's UPLOAD_ERR_XXX constants.
-     */
-    public function getError()
-    {
-        return $this->error;
-    }
-
-    /**
-     * {@inheritdoc}
-     *
-     * @return string|null The filename sent by the client or null if none
-     *     was provided.
-     */
-    public function getClientFilename()
-    {
-        return $this->clientFilename;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getClientMediaType()
-    {
-        return $this->clientMediaType;
-    }
-
-    /**
-     * Write internal stream to given path
-     *
-     * @param string $path
-     */
-    private function writeFile($path)
-    {
-        $handle = fopen($path, 'wb+');
-        if (false === $handle) {
-            throw new RuntimeException('Unable to write to designated path');
-        }
-
-        $this->stream->rewind();
-        while (! $this->stream->eof()) {
-            fwrite($handle, $this->stream->read(4096));
-        }
-
-        fclose($handle);
-    }
-}
diff --git a/core/vendor/zendframework/zend-diactoros/src/Uri.php b/core/vendor/zendframework/zend-diactoros/src/Uri.php
deleted file mode 100644
index 350bff1..0000000
--- a/core/vendor/zendframework/zend-diactoros/src/Uri.php
+++ /dev/null
@@ -1,624 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @see       http://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
- */
-
-namespace Zend\Diactoros;
-
-use InvalidArgumentException;
-use Psr\Http\Message\UriInterface;
-
-/**
- * Implementation of Psr\Http\UriInterface.
- *
- * Provides a value object representing a URI for HTTP requests.
- *
- * Instances of this class  are considered immutable; all methods that
- * might change state are implemented such that they retain the internal
- * state of the current instance and return a new instance that contains the
- * changed state.
- */
-class Uri implements UriInterface
-{
-    /**
-     * Sub-delimiters used in query strings and fragments.
-     *
-     * @const string
-     */
-    const CHAR_SUB_DELIMS = '!\$&\'\(\)\*\+,;=';
-
-    /**
-     * Unreserved characters used in paths, query strings, and fragments.
-     *
-     * @const string
-     */
-    const CHAR_UNRESERVED = 'a-zA-Z0-9_\-\.~';
-
-    /**
-     * @var int[] Array indexed by valid scheme names to their corresponding ports.
-     */
-    protected $allowedSchemes = [
-        'http'  => 80,
-        'https' => 443,
-    ];
-
-    /**
-     * @var string
-     */
-    private $scheme = '';
-
-    /**
-     * @var string
-     */
-    private $userInfo = '';
-
-    /**
-     * @var string
-     */
-    private $host = '';
-
-    /**
-     * @var int
-     */
-    private $port;
-
-    /**
-     * @var string
-     */
-    private $path = '';
-
-    /**
-     * @var string
-     */
-    private $query = '';
-
-    /**
-     * @var string
-     */
-    private $fragment = '';
-
-    /**
-     * generated uri string cache
-     * @var string|null
-     */
-    private $uriString;
-
-    /**
-     * @param string $uri
-     * @throws InvalidArgumentException on non-string $uri argument
-     */
-    public function __construct($uri = '')
-    {
-        if (! is_string($uri)) {
-            throw new InvalidArgumentException(sprintf(
-                'URI passed to constructor must be a string; received "%s"',
-                (is_object($uri) ? get_class($uri) : gettype($uri))
-            ));
-        }
-
-        if (! empty($uri)) {
-            $this->parseUri($uri);
-        }
-    }
-
-    /**
-     * Operations to perform on clone.
-     *
-     * Since cloning usually is for purposes of mutation, we reset the
-     * $uriString property so it will be re-calculated.
-     */
-    public function __clone()
-    {
-        $this->uriString = null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __toString()
-    {
-        if (null !== $this->uriString) {
-            return $this->uriString;
-        }
-
-        $this->uriString = static::createUriString(
-            $this->scheme,
-            $this->getAuthority(),
-            $this->getPath(), // Absolute URIs should use a "/" for an empty path
-            $this->query,
-            $this->fragment
-        );
-
-        return $this->uriString;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getScheme()
-    {
-        return $this->scheme;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getAuthority()
-    {
-        if (empty($this->host)) {
-            return '';
-        }
-
-        $authority = $this->host;
-        if (! empty($this->userInfo)) {
-            $authority = $this->userInfo . '@' . $authority;
-        }
-
-        if ($this->isNonStandardPort($this->scheme, $this->host, $this->port)) {
-            $authority .= ':' . $this->port;
-        }
-
-        return $authority;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getUserInfo()
-    {
-        return $this->userInfo;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPort()
-    {
-        return $this->isNonStandardPort($this->scheme, $this->host, $this->port)
-            ? $this->port
-            : null;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getQuery()
-    {
-        return $this->query;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function getFragment()
-    {
-        return $this->fragment;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withScheme($scheme)
-    {
-        $scheme = $this->filterScheme($scheme);
-
-        if ($scheme === $this->scheme) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        $new = clone $this;
-        $new->scheme = $scheme;
-
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withUserInfo($user, $password = null)
-    {
-        $info = $user;
-        if ($password) {
-            $info .= ':' . $password;
-        }
-
-        if ($info === $this->userInfo) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        $new = clone $this;
-        $new->userInfo = $info;
-
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withHost($host)
-    {
-        if ($host === $this->host) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        $new = clone $this;
-        $new->host = $host;
-
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withPort($port)
-    {
-        if (! is_numeric($port)) {
-            throw new InvalidArgumentException(sprintf(
-                'Invalid port "%s" specified; must be an integer or integer string',
-                (is_object($port) ? get_class($port) : gettype($port))
-            ));
-        }
-
-        $port = (int) $port;
-
-        if ($port === $this->port) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        if ($port < 1 || $port > 65535) {
-            throw new InvalidArgumentException(sprintf(
-                'Invalid port "%d" specified; must be a valid TCP/UDP port',
-                $port
-            ));
-        }
-
-        $new = clone $this;
-        $new->port = $port;
-
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withPath($path)
-    {
-        if (! is_string($path)) {
-            throw new InvalidArgumentException(
-                'Invalid path provided; must be a string'
-            );
-        }
-
-        if (strpos($path, '?') !== false) {
-            throw new InvalidArgumentException(
-                'Invalid path provided; must not contain a query string'
-            );
-        }
-
-        if (strpos($path, '#') !== false) {
-            throw new InvalidArgumentException(
-                'Invalid path provided; must not contain a URI fragment'
-            );
-        }
-
-        $path = $this->filterPath($path);
-
-        if ($path === $this->path) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        $new = clone $this;
-        $new->path = $path;
-
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withQuery($query)
-    {
-        if (! is_string($query)) {
-            throw new InvalidArgumentException(
-                'Query string must be a string'
-            );
-        }
-
-        if (strpos($query, '#') !== false) {
-            throw new InvalidArgumentException(
-                'Query string must not include a URI fragment'
-            );
-        }
-
-        $query = $this->filterQuery($query);
-
-        if ($query === $this->query) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        $new = clone $this;
-        $new->query = $query;
-
-        return $new;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function withFragment($fragment)
-    {
-        $fragment = $this->filterFragment($fragment);
-
-        if ($fragment === $this->fragment) {
-            // Do nothing if no change was made.
-            return clone $this;
-        }
-
-        $new = clone $this;
-        $new->fragment = $fragment;
-
-        return $new;
-    }
-
-    /**
-     * Parse a URI into its parts, and set the properties
-     *
-     * @param string $uri
-     */
-    private function parseUri($uri)
-    {
-        $parts = parse_url($uri);
-
-        if (false === $parts) {
-            throw new \InvalidArgumentException(
-                'The source URI string appears to be malformed'
-            );
-        }
-
-        $this->scheme    = isset($parts['scheme'])   ? $this->filterScheme($parts['scheme']) : '';
-        $this->userInfo  = isset($parts['user'])     ? $parts['user']     : '';
-        $this->host      = isset($parts['host'])     ? $parts['host']     : '';
-        $this->port      = isset($parts['port'])     ? $parts['port']     : null;
-        $this->path      = isset($parts['path'])     ? $this->filterPath($parts['path']) : '';
-        $this->query     = isset($parts['query'])    ? $this->filterQuery($parts['query']) : '';
-        $this->fragment  = isset($parts['fragment']) ? $this->filterFragment($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($scheme, $authority, $path, $query, $fragment)
-    {
-        $uri = '';
-
-        if (! empty($scheme)) {
-            $uri .= sprintf('%s://', $scheme);
-        }
-
-        if (! empty($authority)) {
-            $uri .= $authority;
-        }
-
-        if ($path) {
-            if (empty($path) || '/' !== substr($path, 0, 1)) {
-                $path = '/' . $path;
-            }
-
-            $uri .= $path;
-        }
-
-        if ($query) {
-            $uri .= sprintf('?%s', $query);
-        }
-
-        if ($fragment) {
-            $uri .= sprintf('#%s', $fragment);
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Is a given port non-standard for the current scheme?
-     *
-     * @param string $scheme
-     * @param string $host
-     * @param int $port
-     * @return bool
-     */
-    private function isNonStandardPort($scheme, $host, $port)
-    {
-        if (! $scheme) {
-            return true;
-        }
-
-        if (! $host || ! $port) {
-            return false;
-        }
-
-        return ! isset($this->allowedSchemes[$scheme]) || $port !== $this->allowedSchemes[$scheme];
-    }
-
-    /**
-     * Filters the scheme to ensure it is a valid scheme.
-     *
-     * @param string $scheme Scheme name.
-     *
-     * @return string Filtered scheme.
-     */
-    private function filterScheme($scheme)
-    {
-        $scheme = strtolower($scheme);
-        $scheme = preg_replace('#:(//)?$#', '', $scheme);
-
-        if (empty($scheme)) {
-            return '';
-        }
-
-        if (! array_key_exists($scheme, $this->allowedSchemes)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unsupported scheme "%s"; must be any empty string or in the set (%s)',
-                $scheme,
-                implode(', ', array_keys($this->allowedSchemes))
-            ));
-        }
-
-        return $scheme;
-    }
-
-    /**
-     * Filters the path of a URI to ensure it is properly encoded.
-     *
-     * @param string $path
-     * @return string
-     */
-    private function filterPath($path)
-    {
-        $path = preg_replace_callback(
-            '/(?:[^' . self::CHAR_UNRESERVED . ':@&=\+\$,\/;%]+|%(?![A-Fa-f0-9]{2}))/',
-            [$this, 'urlEncodeChar'],
-            $path
-        );
-
-        if (empty($path)) {
-            // No path
-            return $path;
-        }
-
-        if ($path[0] !== '/') {
-            // Relative path
-            return $path;
-        }
-
-        // Ensure only one leading slash, to prevent XSS attempts.
-        return '/' . ltrim($path, '/');
-    }
-
-    /**
-     * Filter a query string to ensure it is propertly encoded.
-     *
-     * Ensures that the values in the query string are properly urlencoded.
-     *
-     * @param string $query
-     * @return string
-     */
-    private function filterQuery($query)
-    {
-        if (! empty($query) && strpos($query, '?') === 0) {
-            $query = substr($query, 1);
-        }
-
-        $parts = explode('&', $query);
-        foreach ($parts as $index => $part) {
-            list($key, $value) = $this->splitQueryValue($part);
-            if ($value === null) {
-                $parts[$index] = $this->filterQueryOrFragment($key);
-                continue;
-            }
-            $parts[$index] = sprintf(
-                '%s=%s',
-                $this->filterQueryOrFragment($key),
-                $this->filterQueryOrFragment($value)
-            );
-        }
-
-        return implode('&', $parts);
-    }
-
-    /**
-     * Split a query value into a key/value tuple.
-     *
-     * @param string $value
-     * @return array A value with exactly two elements, key and value
-     */
-    private function splitQueryValue($value)
-    {
-        $data = explode('=', $value, 2);
-        if (1 === count($data)) {
-            $data[] = null;
-        }
-        return $data;
-    }
-
-    /**
-     * Filter a fragment value to ensure it is properly encoded.
-     *
-     * @param null|string $fragment
-     * @return string
-     */
-    private function filterFragment($fragment)
-    {
-        if (null === $fragment) {
-            $fragment = '';
-        }
-
-        if (! empty($fragment) && strpos($fragment, '#') === 0) {
-            $fragment = substr($fragment, 1);
-        }
-
-        return $this->filterQueryOrFragment($fragment);
-    }
-
-    /**
-     * Filter a query string key or value, or a fragment.
-     *
-     * @param string $value
-     * @return string
-     */
-    private function filterQueryOrFragment($value)
-    {
-        return preg_replace_callback(
-            '/(?:[^' . self::CHAR_UNRESERVED . self::CHAR_SUB_DELIMS . '%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/',
-            [$this, 'urlEncodeChar'],
-            $value
-        );
-    }
-
-    /**
-     * URL encode a character returned by a regex.
-     *
-     * @param array $matches
-     * @return string
-     */
-    private function urlEncodeChar(array $matches)
-    {
-        return rawurlencode($matches[0]);
-    }
-}
diff --git a/core/vendor/zendframework/zend-escaper/CONTRIBUTING.md b/core/vendor/zendframework/zend-escaper/CONTRIBUTING.md
deleted file mode 100644
index e77f5d2..0000000
--- a/core/vendor/zendframework/zend-escaper/CONTRIBUTING.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# CONTRIBUTING
-
-Please don't open pull requests against this repository, please use https://github.com/zendframework/zf2.
\ No newline at end of file
diff --git a/core/vendor/zendframework/zend-escaper/Escaper.php b/core/vendor/zendframework/zend-escaper/Escaper.php
deleted file mode 100644
index 072d543..0000000
--- a/core/vendor/zendframework/zend-escaper/Escaper.php
+++ /dev/null
@@ -1,386 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Escaper;
-
-/**
- * Context specific methods for use in secure output escaping
- */
-class Escaper
-{
-    /**
-     * Entity Map mapping Unicode codepoints to any available named HTML entities.
-     *
-     * While HTML supports far more named entities, the lowest common denominator
-     * has become HTML5's XML Serialisation which is restricted to the those named
-     * entities that XML supports. Using HTML entities would result in this error:
-     *     XML Parsing Error: undefined entity
-     *
-     * @var array
-     */
-    protected static $htmlNamedEntityMap = array(
-        34 => 'quot',         // quotation mark
-        38 => 'amp',          // ampersand
-        60 => 'lt',           // less-than sign
-        62 => 'gt',           // greater-than sign
-    );
-
-    /**
-     * Current encoding for escaping. If not UTF-8, we convert strings from this encoding
-     * pre-escaping and back to this encoding post-escaping.
-     *
-     * @var string
-     */
-    protected $encoding = 'utf-8';
-
-    /**
-     * Holds the value of the special flags passed as second parameter to
-     * htmlspecialchars(). We modify these for PHP 5.4 to take advantage
-     * of the new ENT_SUBSTITUTE flag for correctly dealing with invalid
-     * UTF-8 sequences.
-     *
-     * @var string
-     */
-    protected $htmlSpecialCharsFlags = ENT_QUOTES;
-
-    /**
-     * Static Matcher which escapes characters for HTML Attribute contexts
-     *
-     * @var callable
-     */
-    protected $htmlAttrMatcher;
-
-    /**
-     * Static Matcher which escapes characters for Javascript contexts
-     *
-     * @var callable
-     */
-    protected $jsMatcher;
-
-    /**
-     * Static Matcher which escapes characters for CSS Attribute contexts
-     *
-     * @var callable
-     */
-    protected $cssMatcher;
-
-    /**
-     * List of all encoding supported by this class
-     *
-     * @var array
-     */
-    protected $supportedEncodings = array(
-        'iso-8859-1',   'iso8859-1',    'iso-8859-5',   'iso8859-5',
-        'iso-8859-15',  'iso8859-15',   'utf-8',        'cp866',
-        'ibm866',       '866',          'cp1251',       'windows-1251',
-        'win-1251',     '1251',         'cp1252',       'windows-1252',
-        '1252',         'koi8-r',       'koi8-ru',      'koi8r',
-        'big5',         '950',          'gb2312',       '936',
-        'big5-hkscs',   'shift_jis',    'sjis',         'sjis-win',
-        'cp932',        '932',          'euc-jp',       'eucjp',
-        'eucjp-win',    'macroman'
-    );
-
-    /**
-     * Constructor: Single parameter allows setting of global encoding for use by
-     * the current object. If PHP 5.4 is detected, additional ENT_SUBSTITUTE flag
-     * is set for htmlspecialchars() calls.
-     *
-     * @param string $encoding
-     * @throws Exception\InvalidArgumentException
-     */
-    public function __construct($encoding = null)
-    {
-        if ($encoding !== null) {
-            $encoding = (string) $encoding;
-            if ($encoding === '') {
-                throw new Exception\InvalidArgumentException(
-                    get_class($this) . ' constructor parameter does not allow a blank value'
-                );
-            }
-
-            $encoding = strtolower($encoding);
-            if (!in_array($encoding, $this->supportedEncodings)) {
-                throw new Exception\InvalidArgumentException(
-                    'Value of \'' . $encoding . '\' passed to ' . get_class($this)
-                    . ' constructor parameter is invalid. Provide an encoding supported by htmlspecialchars()'
-                );
-            }
-
-            $this->encoding = $encoding;
-        }
-
-        if (defined('ENT_SUBSTITUTE')) {
-            $this->htmlSpecialCharsFlags|= ENT_SUBSTITUTE;
-        }
-
-        // set matcher callbacks
-        $this->htmlAttrMatcher = array($this, 'htmlAttrMatcher');
-        $this->jsMatcher       = array($this, 'jsMatcher');
-        $this->cssMatcher      = array($this, 'cssMatcher');
-    }
-
-    /**
-     * Return the encoding that all output/input is expected to be encoded in.
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        return $this->encoding;
-    }
-
-    /**
-     * Escape a string for the HTML Body context where there are very few characters
-     * of special meaning. Internally this will use htmlspecialchars().
-     *
-     * @param string $string
-     * @return string
-     */
-    public function escapeHtml($string)
-    {
-        return htmlspecialchars($string, $this->htmlSpecialCharsFlags, $this->encoding);
-    }
-
-    /**
-     * Escape a string for the HTML Attribute context. We use an extended set of characters
-     * to escape that are not covered by htmlspecialchars() to cover cases where an attribute
-     * might be unquoted or quoted illegally (e.g. backticks are valid quotes for IE).
-     *
-     * @param string $string
-     * @return string
-     */
-    public function escapeHtmlAttr($string)
-    {
-        $string = $this->toUtf8($string);
-        if ($string === '' || ctype_digit($string)) {
-            return $string;
-        }
-
-        $result = preg_replace_callback('/[^a-z0-9,\.\-_]/iSu', $this->htmlAttrMatcher, $string);
-        return $this->fromUtf8($result);
-    }
-
-    /**
-     * Escape a string for the Javascript context. This does not use json_encode(). An extended
-     * set of characters are escaped beyond ECMAScript's rules for Javascript literal string
-     * escaping in order to prevent misinterpretation of Javascript as HTML leading to the
-     * injection of special characters and entities. The escaping used should be tolerant
-     * of cases where HTML escaping was not applied on top of Javascript escaping correctly.
-     * Backslash escaping is not used as it still leaves the escaped character as-is and so
-     * is not useful in a HTML context.
-     *
-     * @param string $string
-     * @return string
-     */
-    public function escapeJs($string)
-    {
-        $string = $this->toUtf8($string);
-        if ($string === '' || ctype_digit($string)) {
-            return $string;
-        }
-
-        $result = preg_replace_callback('/[^a-z0-9,\._]/iSu', $this->jsMatcher, $string);
-        return $this->fromUtf8($result);
-    }
-
-    /**
-     * Escape a string for the URI or Parameter contexts. This should not be used to escape
-     * an entire URI - only a subcomponent being inserted. The function is a simple proxy
-     * to rawurlencode() which now implements RFC 3986 since PHP 5.3 completely.
-     *
-     * @param string $string
-     * @return string
-     */
-    public function escapeUrl($string)
-    {
-        return rawurlencode($string);
-    }
-
-    /**
-     * Escape a string for the CSS context. CSS escaping can be applied to any string being
-     * inserted into CSS and escapes everything except alphanumerics.
-     *
-     * @param string $string
-     * @return string
-     */
-    public function escapeCss($string)
-    {
-        $string = $this->toUtf8($string);
-        if ($string === '' || ctype_digit($string)) {
-            return $string;
-        }
-
-        $result = preg_replace_callback('/[^a-z0-9]/iSu', $this->cssMatcher, $string);
-        return $this->fromUtf8($result);
-    }
-
-    /**
-     * Callback function for preg_replace_callback that applies HTML Attribute
-     * escaping to all matches.
-     *
-     * @param array $matches
-     * @return string
-     */
-    protected function htmlAttrMatcher($matches)
-    {
-        $chr = $matches[0];
-        $ord = ord($chr);
-
-        /**
-         * The following replaces characters undefined in HTML with the
-         * hex entity for the Unicode replacement character.
-         */
-        if (($ord <= 0x1f && $chr != "\t" && $chr != "\n" && $chr != "\r")
-            || ($ord >= 0x7f && $ord <= 0x9f)
-        ) {
-            return '&#xFFFD;';
-        }
-
-        /**
-         * Check if the current character to escape has a name entity we should
-         * replace it with while grabbing the integer value of the character.
-         */
-        if (strlen($chr) > 1) {
-            $chr = $this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
-        }
-
-        $hex = bin2hex($chr);
-        $ord = hexdec($hex);
-        if (isset(static::$htmlNamedEntityMap[$ord])) {
-            return '&' . static::$htmlNamedEntityMap[$ord] . ';';
-        }
-
-        /**
-         * Per OWASP recommendations, we'll use upper hex entities
-         * for any other characters where a named entity does not exist.
-         */
-        if ($ord > 255) {
-            return sprintf('&#x%04X;', $ord);
-        }
-        return sprintf('&#x%02X;', $ord);
-    }
-
-    /**
-     * Callback function for preg_replace_callback that applies Javascript
-     * escaping to all matches.
-     *
-     * @param array $matches
-     * @return string
-     */
-    protected function jsMatcher($matches)
-    {
-        $chr = $matches[0];
-        if (strlen($chr) == 1) {
-            return sprintf('\\x%02X', ord($chr));
-        }
-        $chr = $this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
-        return sprintf('\\u%04s', strtoupper(bin2hex($chr)));
-    }
-
-    /**
-     * Callback function for preg_replace_callback that applies CSS
-     * escaping to all matches.
-     *
-     * @param array $matches
-     * @return string
-     */
-    protected function cssMatcher($matches)
-    {
-        $chr = $matches[0];
-        if (strlen($chr) == 1) {
-            $ord = ord($chr);
-        } else {
-            $chr = $this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
-            $ord = hexdec(bin2hex($chr));
-        }
-        return sprintf('\\%X ', $ord);
-    }
-
-    /**
-     * Converts a string to UTF-8 from the base encoding. The base encoding is set via this
-     * class' constructor.
-     *
-     * @param string $string
-     * @throws Exception\RuntimeException
-     * @return string
-     */
-    protected function toUtf8($string)
-    {
-        if ($this->getEncoding() === 'utf-8') {
-            $result = $string;
-        } else {
-            $result = $this->convertEncoding($string, 'UTF-8', $this->getEncoding());
-        }
-
-        if (!$this->isUtf8($result)) {
-            throw new Exception\RuntimeException(
-                sprintf('String to be escaped was not valid UTF-8 or could not be converted: %s', $result)
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * Converts a string from UTF-8 to the base encoding. The base encoding is set via this
-     * class' constructor.
-     * @param string $string
-     * @return string
-     */
-    protected function fromUtf8($string)
-    {
-        if ($this->getEncoding() === 'utf-8') {
-            return $string;
-        }
-
-        return $this->convertEncoding($string, $this->getEncoding(), 'UTF-8');
-    }
-
-    /**
-     * Checks if a given string appears to be valid UTF-8 or not.
-     *
-     * @param string $string
-     * @return bool
-     */
-    protected function isUtf8($string)
-    {
-        return ($string === '' || preg_match('/^./su', $string));
-    }
-
-    /**
-     * Encoding conversion helper which wraps iconv and mbstring where they exist or throws
-     * and exception where neither is available.
-     *
-     * @param string $string
-     * @param string $to
-     * @param array|string $from
-     * @throws Exception\RuntimeException
-     * @return string
-     */
-    protected function convertEncoding($string, $to, $from)
-    {
-        if (function_exists('iconv')) {
-            $result = iconv($from, $to, $string);
-        } elseif (function_exists('mb_convert_encoding')) {
-            $result = mb_convert_encoding($string, $to, $from);
-        } else {
-            throw new Exception\RuntimeException(
-                get_class($this)
-                . ' requires either the iconv or mbstring extension to be installed'
-                . ' when escaping for non UTF-8 strings.'
-            );
-        }
-
-        if ($result === false) {
-            return ''; // return non-fatal blank string on encoding errors from users
-        }
-        return $result;
-    }
-}
diff --git a/core/vendor/zendframework/zend-escaper/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-escaper/Exception/ExceptionInterface.php
deleted file mode 100644
index 7174796..0000000
--- a/core/vendor/zendframework/zend-escaper/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Escaper\Exception;
-
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-escaper/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-escaper/Exception/InvalidArgumentException.php
deleted file mode 100644
index 0ad3f73..0000000
--- a/core/vendor/zendframework/zend-escaper/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Escaper\Exception;
-
-/**
- * Invalid argument exception
- */
-class InvalidArgumentException extends \InvalidArgumentException implements
-    ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-escaper/Exception/RuntimeException.php b/core/vendor/zendframework/zend-escaper/Exception/RuntimeException.php
deleted file mode 100644
index d626123..0000000
--- a/core/vendor/zendframework/zend-escaper/Exception/RuntimeException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Escaper\Exception;
-
-/**
- * Invalid argument exception
- */
-class RuntimeException extends \RuntimeException implements
-    ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-escaper/README.md b/core/vendor/zendframework/zend-escaper/README.md
deleted file mode 100644
index 83bd916..0000000
--- a/core/vendor/zendframework/zend-escaper/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Escaper Component from ZF2
-==========================
-
-This is the Escaper component for ZF2.
-
-- File issues at https://github.com/zendframework/zf2/issues
-- Create pull requests against https://github.com/zendframework/zf2
-- Documentation is at http://framework.zend.com/docs
-
-LICENSE
--------
-
-The files in this archive are released under the [Zend Framework
-license](http://framework.zend.com/license), which is a 3-clause BSD license.
-
diff --git a/core/vendor/zendframework/zend-escaper/composer.json b/core/vendor/zendframework/zend-escaper/composer.json
deleted file mode 100644
index 958f14a..0000000
--- a/core/vendor/zendframework/zend-escaper/composer.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "name": "zendframework/zend-escaper",
-    "description": " ",
-    "license": "BSD-3-Clause",
-    "keywords": [
-        "zf2",
-        "escaper"
-    ],
-    "homepage": "https://github.com/zendframework/zf2",
-    "autoload": {
-        "psr-4": {
-            "Zend\\Escaper\\": ""
-        }
-    },
-    "require": {
-        "php": ">=5.3.23"
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.3-dev",
-            "dev-develop": "2.4-dev"
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/CONTRIBUTING.md b/core/vendor/zendframework/zend-feed/CONTRIBUTING.md
deleted file mode 100644
index e77f5d2..0000000
--- a/core/vendor/zendframework/zend-feed/CONTRIBUTING.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# CONTRIBUTING
-
-Please don't open pull requests against this repository, please use https://github.com/zendframework/zf2.
\ No newline at end of file
diff --git a/core/vendor/zendframework/zend-feed/Exception/BadMethodCallException.php b/core/vendor/zendframework/zend-feed/Exception/BadMethodCallException.php
deleted file mode 100644
index 3e994f2..0000000
--- a/core/vendor/zendframework/zend-feed/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Exception;
-
-class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-feed/Exception/ExceptionInterface.php
deleted file mode 100644
index 0f75296..0000000
--- a/core/vendor/zendframework/zend-feed/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Exception;
-
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-feed/Exception/InvalidArgumentException.php
deleted file mode 100644
index 29b6482..0000000
--- a/core/vendor/zendframework/zend-feed/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Exception;
-
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Exception/RuntimeException.php b/core/vendor/zendframework/zend-feed/Exception/RuntimeException.php
deleted file mode 100644
index 43167a1..0000000
--- a/core/vendor/zendframework/zend-feed/Exception/RuntimeException.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Exception;
-
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/AbstractCallback.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/AbstractCallback.php
deleted file mode 100644
index 7321c96..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/AbstractCallback.php
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-use Traversable;
-use Zend\Http\PhpEnvironment\Response as PhpResponse;
-use Zend\Stdlib\ArrayUtils;
-
-abstract class AbstractCallback implements CallbackInterface
-{
-    /**
-     * An instance of Zend\Feed\Pubsubhubbub\Model\SubscriptionPersistenceInterface
-     * used to background save any verification tokens associated with a subscription
-     * or other.
-     *
-     * @var Model\SubscriptionPersistenceInterface
-     */
-    protected $storage = null;
-
-    /**
-     * An instance of a class handling Http Responses. This is implemented in
-     * Zend\Feed\Pubsubhubbub\HttpResponse which shares an unenforced interface with
-     * (i.e. not inherited from) Zend\Controller\Response\Http.
-     *
-     * @var HttpResponse|PhpResponse
-     */
-    protected $httpResponse = null;
-
-    /**
-     * The number of Subscribers for which any updates are on behalf of.
-     *
-     * @var int
-     */
-    protected $subscriberCount = 1;
-
-    /**
-     * Constructor; accepts an array or Traversable object to preset
-     * options for the Subscriber without calling all supported setter
-     * methods in turn.
-     *
-     * @param  array|Traversable $options Options array or Traversable object
-     */
-    public function __construct($options = null)
-    {
-        if ($options !== null) {
-            $this->setOptions($options);
-        }
-    }
-
-    /**
-     * Process any injected configuration options
-     *
-     * @param  array|Traversable $options Options array or Traversable object
-     * @return AbstractCallback
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setOptions($options)
-    {
-        if ($options instanceof Traversable) {
-            $options = ArrayUtils::iteratorToArray($options);
-        }
-
-        if (!is_array($options)) {
-            throw new Exception\InvalidArgumentException('Array or Traversable object'
-            . 'expected, got ' . gettype($options));
-        }
-
-        if (is_array($options)) {
-            $this->setOptions($options);
-        }
-
-        if (array_key_exists('storage', $options)) {
-            $this->setStorage($options['storage']);
-        }
-        return $this;
-    }
-
-    /**
-     * Send the response, including all headers.
-     * If you wish to handle this via Zend\Http, use the getter methods
-     * to retrieve any data needed to be set on your HTTP Response object, or
-     * simply give this object the HTTP Response instance to work with for you!
-     *
-     * @return void
-     */
-    public function sendResponse()
-    {
-        $this->getHttpResponse()->send();
-    }
-
-    /**
-     * Sets an instance of Zend\Feed\Pubsubhubbub\Model\SubscriptionPersistence used
-     * to background save any verification tokens associated with a subscription
-     * or other.
-     *
-     * @param  Model\SubscriptionPersistenceInterface $storage
-     * @return AbstractCallback
-     */
-    public function setStorage(Model\SubscriptionPersistenceInterface $storage)
-    {
-        $this->storage = $storage;
-        return $this;
-    }
-
-    /**
-     * Gets an instance of Zend\Feed\Pubsubhubbub\Model\SubscriptionPersistence used
-     * to background save any verification tokens associated with a subscription
-     * or other.
-     *
-     * @return Model\SubscriptionPersistenceInterface
-     * @throws Exception\RuntimeException
-     */
-    public function getStorage()
-    {
-        if ($this->storage === null) {
-            throw new Exception\RuntimeException('No storage object has been'
-                . ' set that subclasses Zend\Feed\Pubsubhubbub\Model\SubscriptionPersistence');
-        }
-        return $this->storage;
-    }
-
-    /**
-     * An instance of a class handling Http Responses. This is implemented in
-     * Zend\Feed\Pubsubhubbub\HttpResponse which shares an unenforced interface with
-     * (i.e. not inherited from) Zend\Controller\Response\Http.
-     *
-     * @param  HttpResponse|PhpResponse $httpResponse
-     * @return AbstractCallback
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setHttpResponse($httpResponse)
-    {
-        if (!$httpResponse instanceof HttpResponse && !$httpResponse instanceof PhpResponse) {
-            throw new Exception\InvalidArgumentException('HTTP Response object must'
-                . ' implement one of Zend\Feed\Pubsubhubbub\HttpResponse or'
-                . ' Zend\Http\PhpEnvironment\Response');
-        }
-        $this->httpResponse = $httpResponse;
-        return $this;
-    }
-
-    /**
-     * An instance of a class handling Http Responses. This is implemented in
-     * Zend\Feed\Pubsubhubbub\HttpResponse which shares an unenforced interface with
-     * (i.e. not inherited from) Zend\Controller\Response\Http.
-     *
-     * @return HttpResponse|PhpResponse
-     */
-    public function getHttpResponse()
-    {
-        if ($this->httpResponse === null) {
-            $this->httpResponse = new HttpResponse;
-        }
-        return $this->httpResponse;
-    }
-
-    /**
-     * Sets the number of Subscribers for which any updates are on behalf of.
-     * In other words, is this class serving one or more subscribers? How many?
-     * Defaults to 1 if left unchanged.
-     *
-     * @param  string|int $count
-     * @return AbstractCallback
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setSubscriberCount($count)
-    {
-        $count = intval($count);
-        if ($count <= 0) {
-            throw new Exception\InvalidArgumentException('Subscriber count must be'
-                . ' greater than zero');
-        }
-        $this->subscriberCount = $count;
-        return $this;
-    }
-
-    /**
-     * Gets the number of Subscribers for which any updates are on behalf of.
-     * In other words, is this class serving one or more subscribers? How many?
-     *
-     * @return int
-     */
-    public function getSubscriberCount()
-    {
-        return $this->subscriberCount;
-    }
-
-    /**
-     * Attempt to detect the callback URL (specifically the path forward)
-     * @return string
-     */
-    protected function _detectCallbackUrl()
-    {
-        $callbackUrl = '';
-        if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
-            $callbackUrl = $_SERVER['HTTP_X_ORIGINAL_URL'];
-        } elseif (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
-            $callbackUrl = $_SERVER['HTTP_X_REWRITE_URL'];
-        } elseif (isset($_SERVER['REQUEST_URI'])) {
-            $callbackUrl = $_SERVER['REQUEST_URI'];
-            $scheme = 'http';
-            if ($_SERVER['HTTPS'] == 'on') {
-                $scheme = 'https';
-            }
-            $schemeAndHttpHost = $scheme . '://' . $this->_getHttpHost();
-            if (strpos($callbackUrl, $schemeAndHttpHost) === 0) {
-                $callbackUrl = substr($callbackUrl, strlen($schemeAndHttpHost));
-            }
-        } elseif (isset($_SERVER['ORIG_PATH_INFO'])) {
-            $callbackUrl= $_SERVER['ORIG_PATH_INFO'];
-            if (!empty($_SERVER['QUERY_STRING'])) {
-                $callbackUrl .= '?' . $_SERVER['QUERY_STRING'];
-            }
-        }
-        return $callbackUrl;
-    }
-
-    /**
-     * Get the HTTP host
-     *
-     * @return string
-     */
-    protected function _getHttpHost()
-    {
-        if (!empty($_SERVER['HTTP_HOST'])) {
-            return $_SERVER['HTTP_HOST'];
-        }
-        $scheme = 'http';
-        if ($_SERVER['HTTPS'] == 'on') {
-            $scheme = 'https';
-        }
-        $name = $_SERVER['SERVER_NAME'];
-        $port = $_SERVER['SERVER_PORT'];
-        if (($scheme == 'http' && $port == 80)
-            || ($scheme == 'https' && $port == 443)
-        ) {
-            return $name;
-        }
-
-        return $name . ':' . $port;
-    }
-
-    /**
-     * Retrieve a Header value from either $_SERVER or Apache
-     *
-     * @param string $header
-     * @return bool|string
-     */
-    protected function _getHeader($header)
-    {
-        $temp = strtoupper(str_replace('-', '_', $header));
-        if (!empty($_SERVER[$temp])) {
-            return $_SERVER[$temp];
-        }
-        $temp = 'HTTP_' . strtoupper(str_replace('-', '_', $header));
-        if (!empty($_SERVER[$temp])) {
-            return $_SERVER[$temp];
-        }
-        if (function_exists('apache_request_headers')) {
-            $headers = apache_request_headers();
-            if (!empty($headers[$header])) {
-                return $headers[$header];
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Return the raw body of the request
-     *
-     * @return string|false Raw body, or false if not present
-     */
-    protected function _getRawBody()
-    {
-        $body = file_get_contents('php://input');
-        if (strlen(trim($body)) == 0 && isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
-            $body = $GLOBALS['HTTP_RAW_POST_DATA'];
-        }
-        if (strlen(trim($body)) > 0) {
-            return $body;
-        }
-        return false;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/CallbackInterface.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/CallbackInterface.php
deleted file mode 100644
index c6b7412..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/CallbackInterface.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-interface CallbackInterface
-{
-    /**
-     * Handle any callback from a Hub Server responding to a subscription or
-     * unsubscription request. This should be the Hub Server confirming the
-     * the request prior to taking action on it.
-     *
-     * @param array $httpData GET/POST data if available and not in $_GET/POST
-     * @param bool $sendResponseNow Whether to send response now or when asked
-     */
-    public function handle(array $httpData = null, $sendResponseNow = false);
-
-    /**
-     * Send the response, including all headers.
-     * If you wish to handle this via Zend\Mvc\Controller, use the getter methods
-     * to retrieve any data needed to be set on your HTTP Response object, or
-     * simply give this object the HTTP Response instance to work with for you!
-     *
-     * @return void
-     */
-    public function sendResponse();
-
-    /**
-     * An instance of a class handling Http Responses. This is implemented in
-     * Zend\Feed\Pubsubhubbub\HttpResponse which shares an unenforced interface with
-     * (i.e. not inherited from) Zend\Feed\Pubsubhubbub\AbstractCallback.
-     *
-     * @param HttpResponse|\Zend\Http\PhpEnvironment\Response $httpResponse
-     */
-    public function setHttpResponse($httpResponse);
-
-    /**
-     * An instance of a class handling Http Responses. This is implemented in
-     * Zend\Feed\Pubsubhubbub\HttpResponse which shares an unenforced interface with
-     * (i.e. not inherited from) Zend\Feed\Pubsubhubbub\AbstractCallback.
-     *
-     * @return HttpResponse|\Zend\Http\PhpEnvironment\Response
-     */
-    public function getHttpResponse();
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/ExceptionInterface.php
deleted file mode 100644
index f32bc1c..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Exception;
-
-use Zend\Feed\Exception\ExceptionInterface as Exception;
-
-interface ExceptionInterface extends Exception
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/InvalidArgumentException.php
deleted file mode 100644
index cad1e01..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Exception;
-
-use Zend\Feed\Exception;
-
-class InvalidArgumentException extends Exception\InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/RuntimeException.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/RuntimeException.php
deleted file mode 100644
index cc954a5..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Exception/RuntimeException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Exception;
-
-use Zend\Feed\Exception;
-
-class RuntimeException extends Exception\RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/HttpResponse.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/HttpResponse.php
deleted file mode 100644
index 0c1adf2..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/HttpResponse.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-class HttpResponse
-{
-    /**
-     * The body of any response to the current callback request
-     *
-     * @var string
-     */
-    protected $content = '';
-
-    /**
-     * Array of headers. Each header is an array with keys 'name' and 'value'
-     *
-     * @var array
-     */
-    protected $headers = array();
-
-    /**
-     * HTTP response code to use in headers
-     *
-     * @var int
-     */
-    protected $statusCode = 200;
-
-    /**
-     * Send the response, including all headers
-     *
-     * @return void
-     */
-    public function send()
-    {
-        $this->sendHeaders();
-        echo $this->getContent();
-    }
-
-    /**
-     * Send all headers
-     *
-     * Sends any headers specified. If an {@link setHttpResponseCode() HTTP response code}
-     * has been specified, it is sent with the first header.
-     *
-     * @return void
-     */
-    public function sendHeaders()
-    {
-        if (count($this->headers) || (200 != $this->statusCode)) {
-            $this->canSendHeaders(true);
-        } elseif (200 == $this->statusCode) {
-            return;
-        }
-        $httpCodeSent = false;
-        foreach ($this->headers as $header) {
-            if (!$httpCodeSent && $this->statusCode) {
-                header($header['name'] . ': ' . $header['value'], $header['replace'], $this->statusCode);
-                $httpCodeSent = true;
-            } else {
-                header($header['name'] . ': ' . $header['value'], $header['replace']);
-            }
-        }
-        if (!$httpCodeSent) {
-            header('HTTP/1.1 ' . $this->statusCode);
-        }
-    }
-
-    /**
-     * Set a header
-     *
-     * If $replace is true, replaces any headers already defined with that
-     * $name.
-     *
-     * @param  string $name
-     * @param  string $value
-     * @param  bool $replace
-     * @return \Zend\Feed\PubSubHubbub\HttpResponse
-     */
-    public function setHeader($name, $value, $replace = false)
-    {
-        $name  = $this->_normalizeHeader($name);
-        $value = (string) $value;
-        if ($replace) {
-            foreach ($this->headers as $key => $header) {
-                if ($name == $header['name']) {
-                    unset($this->headers[$key]);
-                }
-            }
-        }
-        $this->headers[] = array(
-            'name'    => $name,
-            'value'   => $value,
-            'replace' => $replace,
-        );
-
-        return $this;
-    }
-
-    /**
-     * Check if a specific Header is set and return its value
-     *
-     * @param  string $name
-     * @return string|null
-     */
-    public function getHeader($name)
-    {
-        $name = $this->_normalizeHeader($name);
-        foreach ($this->headers as $header) {
-            if ($header['name'] == $name) {
-                return $header['value'];
-            }
-        }
-    }
-
-    /**
-     * Return array of headers; see {@link $headers} for format
-     *
-     * @return array
-     */
-    public function getHeaders()
-    {
-        return $this->headers;
-    }
-
-    /**
-     * Can we send headers?
-     *
-     * @param  bool $throw Whether or not to throw an exception if headers have been sent; defaults to false
-     * @return HttpResponse
-     * @throws Exception\RuntimeException
-     */
-    public function canSendHeaders($throw = false)
-    {
-        $ok = headers_sent($file, $line);
-        if ($ok && $throw) {
-            throw new Exception\RuntimeException('Cannot send headers; headers already sent in ' . $file . ', line ' . $line);
-        }
-        return !$ok;
-    }
-
-    /**
-     * Set HTTP response code to use with headers
-     *
-     * @param  int $code
-     * @return HttpResponse
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setStatusCode($code)
-    {
-        if (!is_int($code) || (100 > $code) || (599 < $code)) {
-            throw new Exception\InvalidArgumentException('Invalid HTTP response'
-            . ' code:' . $code);
-        }
-        $this->statusCode = $code;
-        return $this;
-    }
-
-    /**
-     * Retrieve HTTP response code
-     *
-     * @return int
-     */
-    public function getStatusCode()
-    {
-        return $this->statusCode;
-    }
-
-    /**
-     * Set body content
-     *
-     * @param  string $content
-     * @return \Zend\Feed\PubSubHubbub\HttpResponse
-     */
-    public function setContent($content)
-    {
-        $this->content = (string) $content;
-        $this->setHeader('content-length', strlen($content));
-        return $this;
-    }
-
-    /**
-     * Return the body content
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    /**
-     * Normalizes a header name to X-Capitalized-Names
-     *
-     * @param  string $name
-     * @return string
-     */
-    protected function _normalizeHeader($name)
-    {
-        $filtered = str_replace(array('-', '_'), ' ', (string) $name);
-        $filtered = ucwords(strtolower($filtered));
-        $filtered = str_replace(' ', '-', $filtered);
-        return $filtered;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/AbstractModel.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/AbstractModel.php
deleted file mode 100644
index 3ebd07f..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/AbstractModel.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Model;
-
-use Zend\Db\TableGateway\TableGateway;
-use Zend\Db\TableGateway\TableGatewayInterface;
-
-class AbstractModel
-{
-    /**
-     * Zend\Db\TableGateway\TableGatewayInterface instance to host database methods
-     *
-     * @var TableGatewayInterface
-     */
-    protected $db = null;
-
-    /**
-     * Constructor
-     *
-     * @param null|TableGatewayInterface $tableGateway
-     */
-    public function __construct(TableGatewayInterface $tableGateway = null)
-    {
-        if ($tableGateway === null) {
-            $parts = explode('\\', get_class($this));
-            $table = strtolower(array_pop($parts));
-            $this->db = new TableGateway($table, null);
-        } else {
-            $this->db = $tableGateway;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/Subscription.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/Subscription.php
deleted file mode 100644
index 46a5d82..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/Subscription.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Model;
-
-use DateInterval;
-use DateTime;
-use Zend\Feed\PubSubHubbub;
-
-class Subscription extends AbstractModel implements SubscriptionPersistenceInterface
-{
-    /**
-     * Common DateTime object to assist with unit testing
-     *
-     * @var DateTime
-     */
-    protected $now;
-
-    /**
-     * Save subscription to RDMBS
-     *
-     * @param array $data
-     * @return bool
-     * @throws PubSubHubbub\Exception\InvalidArgumentException
-     */
-    public function setSubscription(array $data)
-    {
-        if (!isset($data['id'])) {
-            throw new PubSubHubbub\Exception\InvalidArgumentException(
-                'ID must be set before attempting a save'
-            );
-        }
-        $result = $this->db->select(array('id' => $data['id']));
-        if ($result && (0 < count($result))) {
-            $data['created_time'] = $result->current()->created_time;
-            $now = $this->getNow();
-            if (array_key_exists('lease_seconds', $data)
-                && $data['lease_seconds']
-            ) {
-                $data['expiration_time'] = $now->add(new DateInterval('PT' . $data['lease_seconds'] . 'S'))
-                    ->format('Y-m-d H:i:s');
-            }
-            $this->db->update(
-                $data,
-                array('id' => $data['id'])
-            );
-            return false;
-        }
-
-        $this->db->insert($data);
-        return true;
-    }
-
-    /**
-     * Get subscription by ID/key
-     *
-     * @param  string $key
-     * @return array
-     * @throws PubSubHubbub\Exception\InvalidArgumentException
-     */
-    public function getSubscription($key)
-    {
-        if (empty($key) || !is_string($key)) {
-            throw new PubSubHubbub\Exception\InvalidArgumentException('Invalid parameter "key"'
-                .' of "' . $key . '" must be a non-empty string');
-        }
-        $result = $this->db->select(array('id' => $key));
-        if (count($result)) {
-            return $result->current()->getArrayCopy();
-        }
-        return false;
-    }
-
-    /**
-     * Determine if a subscription matching the key exists
-     *
-     * @param  string $key
-     * @return bool
-     * @throws PubSubHubbub\Exception\InvalidArgumentException
-     */
-    public function hasSubscription($key)
-    {
-        if (empty($key) || !is_string($key)) {
-            throw new PubSubHubbub\Exception\InvalidArgumentException('Invalid parameter "key"'
-                .' of "' . $key . '" must be a non-empty string');
-        }
-        $result = $this->db->select(array('id' => $key));
-        if (count($result)) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Delete a subscription
-     *
-     * @param string $key
-     * @return bool
-     */
-    public function deleteSubscription($key)
-    {
-        $result = $this->db->select(array('id' => $key));
-        if (count($result)) {
-            $this->db->delete(
-                array('id' => $key)
-            );
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Get a new DateTime or the one injected for testing
-     *
-     * @return DateTime
-     */
-    public function getNow()
-    {
-        if (null === $this->now) {
-            return new DateTime();
-        }
-        return $this->now;
-    }
-
-    /**
-     * Set a DateTime instance for assisting with unit testing
-     *
-     * @param DateTime $now
-     * @return Subscription
-     */
-    public function setNow(DateTime $now)
-    {
-        $this->now = $now;
-        return $this;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/SubscriptionPersistenceInterface.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/SubscriptionPersistenceInterface.php
deleted file mode 100644
index 09e7d75..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Model/SubscriptionPersistenceInterface.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Model;
-
-interface SubscriptionPersistenceInterface
-{
-    /**
-     * Save subscription to RDMBS
-     *
-     * @param array $data The key must be stored here as a $data['id'] entry
-     * @return bool
-     */
-    public function setSubscription(array $data);
-
-    /**
-     * Get subscription by ID/key
-     *
-     * @param  string $key
-     * @return array
-     */
-    public function getSubscription($key);
-
-    /**
-     * Determine if a subscription matching the key exists
-     *
-     * @param  string $key
-     * @return bool
-     */
-    public function hasSubscription($key);
-
-    /**
-     * Delete a subscription
-     *
-     * @param string $key
-     * @return bool
-     */
-    public function deleteSubscription($key);
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/PubSubHubbub.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/PubSubHubbub.php
deleted file mode 100644
index a930a70..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/PubSubHubbub.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-use Zend\Escaper\Escaper;
-use Zend\Feed\Reader;
-use Zend\Http;
-
-class PubSubHubbub
-{
-    /**
-     * Verification Modes
-     */
-    const VERIFICATION_MODE_SYNC  = 'sync';
-    const VERIFICATION_MODE_ASYNC = 'async';
-
-    /**
-     * Subscription States
-     */
-    const SUBSCRIPTION_VERIFIED    = 'verified';
-    const SUBSCRIPTION_NOTVERIFIED = 'not_verified';
-    const SUBSCRIPTION_TODELETE    = 'to_delete';
-
-    /**
-     * @var Escaper
-     */
-    protected static $escaper;
-
-    /**
-     * Singleton instance if required of the HTTP client
-     *
-     * @var Http\Client
-     */
-    protected static $httpClient = null;
-
-    /**
-     * Simple utility function which imports any feed URL and
-     * determines the existence of Hub Server endpoints. This works
-     * best if directly given an instance of Zend\Feed\Reader\Atom|Rss
-     * to leverage off.
-     *
-     * @param  \Zend\Feed\Reader\Feed\AbstractFeed|string $source
-     * @return array
-     * @throws Exception\InvalidArgumentException
-     */
-    public static function detectHubs($source)
-    {
-        if (is_string($source)) {
-            $feed = Reader\Reader::import($source);
-        } elseif ($source instanceof Reader\Feed\AbstractFeed) {
-            $feed = $source;
-        } else {
-            throw new Exception\InvalidArgumentException('The source parameter was'
-            . ' invalid, i.e. not a URL string or an instance of type'
-            . ' Zend\Feed\Reader\Feed\AbstractFeed');
-        }
-        return $feed->getHubs();
-    }
-
-    /**
-     * Allows the external environment to make ZendOAuth use a specific
-     * Client instance.
-     *
-     * @param  Http\Client $httpClient
-     * @return void
-     */
-    public static function setHttpClient(Http\Client $httpClient)
-    {
-        static::$httpClient = $httpClient;
-    }
-
-    /**
-     * Return the singleton instance of the HTTP Client. Note that
-     * the instance is reset and cleared of previous parameters GET/POST.
-     * Headers are NOT reset but handled by this component if applicable.
-     *
-     * @return Http\Client
-     */
-    public static function getHttpClient()
-    {
-        if (!isset(static::$httpClient)) {
-            static::$httpClient = new Http\Client;
-        } else {
-            static::$httpClient->resetParameters();
-        }
-        return static::$httpClient;
-    }
-
-    /**
-     * Simple mechanism to delete the entire singleton HTTP Client instance
-     * which forces a new instantiation for subsequent requests.
-     *
-     * @return void
-     */
-    public static function clearHttpClient()
-    {
-        static::$httpClient = null;
-    }
-
-    /**
-     * Set the Escaper instance
-     *
-     * If null, resets the instance
-     *
-     * @param  null|Escaper $escaper
-     */
-    public static function setEscaper(Escaper $escaper = null)
-    {
-        static::$escaper = $escaper;
-    }
-
-    /**
-     * Get the Escaper instance
-     *
-     * If none registered, lazy-loads an instance.
-     *
-     * @return Escaper
-     */
-    public static function getEscaper()
-    {
-        if (null === static::$escaper) {
-            static::setEscaper(new Escaper());
-        }
-        return static::$escaper;
-    }
-
-    /**
-     * RFC 3986 safe url encoding method
-     *
-     * @param  string $string
-     * @return string
-     */
-    public static function urlencode($string)
-    {
-        $escaper    = static::getEscaper();
-        $rawencoded = $escaper->escapeUrl($string);
-        $rfcencoded = str_replace('%7E', '~', $rawencoded);
-        return $rfcencoded;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Publisher.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Publisher.php
deleted file mode 100644
index 6130992..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Publisher.php
+++ /dev/null
@@ -1,397 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-use Traversable;
-use Zend\Feed\Uri;
-use Zend\Http\Request as HttpRequest;
-use Zend\Stdlib\ArrayUtils;
-
-class Publisher
-{
-    /**
-     * An array of URLs for all Hub Servers used by the Publisher, and to
-     * which all topic update notifications will be sent.
-     *
-     * @var array
-     */
-    protected $hubUrls = array();
-
-    /**
-     * An array of topic (Atom or RSS feed) URLs which have been updated and
-     * whose updated status will be notified to all Hub Servers.
-     *
-     * @var array
-     */
-    protected $updatedTopicUrls = array();
-
-    /**
-     * An array of any errors including keys for 'response', 'hubUrl'.
-     * The response is the actual Zend\Http\Response object.
-     *
-     * @var array
-     */
-    protected $errors = array();
-
-    /**
-     * An array of topic (Atom or RSS feed) URLs which have been updated and
-     * whose updated status will be notified to all Hub Servers.
-     *
-     * @var array
-     */
-    protected $parameters = array();
-
-    /**
-     * Constructor; accepts an array or Zend\Config\Config instance to preset
-     * options for the Publisher without calling all supported setter
-     * methods in turn.
-     *
-     * @param  array|Traversable $options
-     */
-    public function __construct($options = null)
-    {
-        if ($options !== null) {
-            $this->setOptions($options);
-        }
-    }
-
-    /**
-     * Process any injected configuration options
-     *
-     * @param  array|Traversable $options Options array or Traversable object
-     * @return Publisher
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setOptions($options)
-    {
-        if ($options instanceof Traversable) {
-            $options = ArrayUtils::iteratorToArray($options);
-        }
-
-        if (!is_array($options)) {
-            throw new Exception\InvalidArgumentException('Array or Traversable object'
-                                . 'expected, got ' . gettype($options));
-        }
-        if (array_key_exists('hubUrls', $options)) {
-            $this->addHubUrls($options['hubUrls']);
-        }
-        if (array_key_exists('updatedTopicUrls', $options)) {
-            $this->addUpdatedTopicUrls($options['updatedTopicUrls']);
-        }
-        if (array_key_exists('parameters', $options)) {
-            $this->setParameters($options['parameters']);
-        }
-        return $this;
-    }
-
-    /**
-     * Add a Hub Server URL supported by Publisher
-     *
-     * @param  string $url
-     * @return Publisher
-     * @throws Exception\InvalidArgumentException
-     */
-    public function addHubUrl($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                . ' of "' . $url . '" must be a non-empty string and a valid'
-                . 'URL');
-        }
-        $this->hubUrls[] = $url;
-        return $this;
-    }
-
-    /**
-     * Add an array of Hub Server URLs supported by Publisher
-     *
-     * @param  array $urls
-     * @return Publisher
-     */
-    public function addHubUrls(array $urls)
-    {
-        foreach ($urls as $url) {
-            $this->addHubUrl($url);
-        }
-        return $this;
-    }
-
-    /**
-     * Remove a Hub Server URL
-     *
-     * @param  string $url
-     * @return Publisher
-     */
-    public function removeHubUrl($url)
-    {
-        if (!in_array($url, $this->getHubUrls())) {
-            return $this;
-        }
-        $key = array_search($url, $this->hubUrls);
-        unset($this->hubUrls[$key]);
-        return $this;
-    }
-
-    /**
-     * Return an array of unique Hub Server URLs currently available
-     *
-     * @return array
-     */
-    public function getHubUrls()
-    {
-        $this->hubUrls = array_unique($this->hubUrls);
-        return $this->hubUrls;
-    }
-
-    /**
-     * Add a URL to a topic (Atom or RSS feed) which has been updated
-     *
-     * @param  string $url
-     * @return Publisher
-     * @throws Exception\InvalidArgumentException
-     */
-    public function addUpdatedTopicUrl($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                . ' of "' . $url . '" must be a non-empty string and a valid'
-                . 'URL');
-        }
-        $this->updatedTopicUrls[] = $url;
-        return $this;
-    }
-
-    /**
-     * Add an array of Topic URLs which have been updated
-     *
-     * @param  array $urls
-     * @return Publisher
-     */
-    public function addUpdatedTopicUrls(array $urls)
-    {
-        foreach ($urls as $url) {
-            $this->addUpdatedTopicUrl($url);
-        }
-        return $this;
-    }
-
-    /**
-     * Remove an updated topic URL
-     *
-     * @param  string $url
-     * @return Publisher
-     */
-    public function removeUpdatedTopicUrl($url)
-    {
-        if (!in_array($url, $this->getUpdatedTopicUrls())) {
-            return $this;
-        }
-        $key = array_search($url, $this->updatedTopicUrls);
-        unset($this->updatedTopicUrls[$key]);
-        return $this;
-    }
-
-    /**
-     * Return an array of unique updated topic URLs currently available
-     *
-     * @return array
-     */
-    public function getUpdatedTopicUrls()
-    {
-        $this->updatedTopicUrls = array_unique($this->updatedTopicUrls);
-        return $this->updatedTopicUrls;
-    }
-
-    /**
-     * Notifies a single Hub Server URL of changes
-     *
-     * @param  string $url The Hub Server's URL
-     * @return void
-     * @throws Exception\InvalidArgumentException
-     * @throws Exception\RuntimeException
-     */
-    public function notifyHub($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                . ' of "' . $url . '" must be a non-empty string and a valid'
-                . 'URL');
-        }
-        $client = $this->_getHttpClient();
-        $client->setUri($url);
-        $response = $client->getResponse();
-        if ($response->getStatusCode() !== 204) {
-            throw new Exception\RuntimeException('Notification to Hub Server '
-                . 'at "' . $url . '" appears to have failed with a status code of "'
-                . $response->getStatusCode() . '" and message "'
-                . $response->getContent() . '"');
-        }
-    }
-
-    /**
-     * Notifies all Hub Server URLs of changes
-     *
-     * If a Hub notification fails, certain data will be retained in an
-     * an array retrieved using getErrors(), if a failure occurs for any Hubs
-     * the isSuccess() check will return FALSE. This method is designed not
-     * to needlessly fail with an Exception/Error unless from Zend\Http\Client.
-     *
-     * @return void
-     * @throws Exception\RuntimeException
-     */
-    public function notifyAll()
-    {
-        $client = $this->_getHttpClient();
-        $hubs   = $this->getHubUrls();
-        if (empty($hubs)) {
-            throw new Exception\RuntimeException('No Hub Server URLs'
-                . ' have been set so no notifications can be sent');
-        }
-        $this->errors = array();
-        foreach ($hubs as $url) {
-            $client->setUri($url);
-            $response = $client->getResponse();
-            if ($response->getStatusCode() !== 204) {
-                $this->errors[] = array(
-                    'response' => $response,
-                    'hubUrl' => $url
-                );
-            }
-        }
-    }
-
-    /**
-     * Add an optional parameter to the update notification requests
-     *
-     * @param  string $name
-     * @param  string|null $value
-     * @return Publisher
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setParameter($name, $value = null)
-    {
-        if (is_array($name)) {
-            $this->setParameters($name);
-            return $this;
-        }
-        if (empty($name) || !is_string($name)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "name"'
-                . ' of "' . $name . '" must be a non-empty string');
-        }
-        if ($value === null) {
-            $this->removeParameter($name);
-            return $this;
-        }
-        if (empty($value) || (!is_string($value) && $value !== null)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "value"'
-                . ' of "' . $value . '" must be a non-empty string');
-        }
-        $this->parameters[$name] = $value;
-        return $this;
-    }
-
-    /**
-     * Add an optional parameter to the update notification requests
-     *
-     * @param  array $parameters
-     * @return Publisher
-     */
-    public function setParameters(array $parameters)
-    {
-        foreach ($parameters as $name => $value) {
-            $this->setParameter($name, $value);
-        }
-        return $this;
-    }
-
-    /**
-     * Remove an optional parameter for the notification requests
-     *
-     * @param  string $name
-     * @return Publisher
-     * @throws Exception\InvalidArgumentException
-     */
-    public function removeParameter($name)
-    {
-        if (empty($name) || !is_string($name)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "name"'
-                . ' of "' . $name . '" must be a non-empty string');
-        }
-        if (array_key_exists($name, $this->parameters)) {
-            unset($this->parameters[$name]);
-        }
-        return $this;
-    }
-
-    /**
-     * Return an array of optional parameters for notification requests
-     *
-     * @return array
-     */
-    public function getParameters()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Returns a boolean indicator of whether the notifications to Hub
-     * Servers were ALL successful. If even one failed, FALSE is returned.
-     *
-     * @return bool
-     */
-    public function isSuccess()
-    {
-        return !(count($this->errors) != 0);
-    }
-
-    /**
-     * Return an array of errors met from any failures, including keys:
-     * 'response' => the Zend\Http\Response object from the failure
-     * 'hubUrl' => the URL of the Hub Server whose notification failed
-     *
-     * @return array
-     */
-    public function getErrors()
-    {
-        return $this->errors;
-    }
-
-    /**
-     * Get a basic prepared HTTP client for use
-     *
-     * @return \Zend\Http\Client
-     * @throws Exception\RuntimeException
-     */
-    protected function _getHttpClient()
-    {
-        $client = PubSubHubbub::getHttpClient();
-        $client->setMethod(HttpRequest::METHOD_POST);
-        $client->setOptions(array(
-            'useragent' => 'Zend_Feed_Pubsubhubbub_Publisher/' . Version::VERSION,
-        ));
-        $params   = array();
-        $params[] = 'hub.mode=publish';
-        $topics   = $this->getUpdatedTopicUrls();
-        if (empty($topics)) {
-            throw new Exception\RuntimeException('No updated topic URLs'
-                . ' have been set');
-        }
-        foreach ($topics as $topicUrl) {
-            $params[] = 'hub.url=' . urlencode($topicUrl);
-        }
-        $optParams = $this->getParameters();
-        foreach ($optParams as $name => $value) {
-            $params[] = urlencode($name) . '=' . urlencode($value);
-        }
-        $paramString = implode('&', $params);
-        $client->setRawBody($paramString);
-        return $client;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Subscriber.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Subscriber.php
deleted file mode 100644
index d5db908..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Subscriber.php
+++ /dev/null
@@ -1,837 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-use DateInterval;
-use DateTime;
-use Traversable;
-use Zend\Feed\Uri;
-use Zend\Http\Request as HttpRequest;
-use Zend\Stdlib\ArrayUtils;
-
-class Subscriber
-{
-    /**
-     * An array of URLs for all Hub Servers to subscribe/unsubscribe.
-     *
-     * @var array
-     */
-    protected $hubUrls = array();
-
-    /**
-     * An array of optional parameters to be included in any
-     * (un)subscribe requests.
-     *
-     * @var array
-     */
-    protected $parameters = array();
-
-    /**
-     * The URL of the topic (Rss or Atom feed) which is the subject of
-     * our current intent to subscribe to/unsubscribe from updates from
-     * the currently configured Hub Servers.
-     *
-     * @var string
-     */
-    protected $topicUrl = '';
-
-    /**
-     * The URL Hub Servers must use when communicating with this Subscriber
-     *
-     * @var string
-     */
-    protected $callbackUrl = '';
-
-    /**
-     * The number of seconds for which the subscriber would like to have the
-     * subscription active. Defaults to null, i.e. not sent, to setup a
-     * permanent subscription if possible.
-     *
-     * @var int
-     */
-    protected $leaseSeconds = null;
-
-    /**
-     * The preferred verification mode (sync or async). By default, this
-     * Subscriber prefers synchronous verification, but is considered
-     * desirable to support asynchronous verification if possible.
-     *
-     * Zend\Feed\Pubsubhubbub\Subscriber will always send both modes, whose
-     * order of occurrence in the parameter list determines this preference.
-     *
-     * @var string
-     */
-    protected $preferredVerificationMode = PubSubHubbub::VERIFICATION_MODE_SYNC;
-
-    /**
-     * An array of any errors including keys for 'response', 'hubUrl'.
-     * The response is the actual Zend\Http\Response object.
-     *
-     * @var array
-     */
-    protected $errors = array();
-
-    /**
-     * An array of Hub Server URLs for Hubs operating at this time in
-     * asynchronous verification mode.
-     *
-     * @var array
-     */
-    protected $asyncHubs = array();
-
-    /**
-     * An instance of Zend\Feed\Pubsubhubbub\Model\SubscriptionPersistence used to background
-     * save any verification tokens associated with a subscription or other.
-     *
-     * @var \Zend\Feed\PubSubHubbub\Model\SubscriptionPersistenceInterface
-     */
-    protected $storage = null;
-
-    /**
-     * An array of authentication credentials for HTTP Basic Authentication
-     * if required by specific Hubs. The array is indexed by Hub Endpoint URI
-     * and the value is a simple array of the username and password to apply.
-     *
-     * @var array
-     */
-    protected $authentications = array();
-
-    /**
-     * Tells the Subscriber to append any subscription identifier to the path
-     * of the base Callback URL. E.g. an identifier "subkey1" would be added
-     * to the callback URL "http://www.example.com/callback" to create a subscription
-     * specific Callback URL of "http://www.example.com/callback/subkey1".
-     *
-     * This is required for all Hubs using the Pubsubhubbub 0.1 Specification.
-     * It should be manually intercepted and passed to the Callback class using
-     * Zend\Feed\Pubsubhubbub\Subscriber\Callback::setSubscriptionKey(). Will
-     * require a route in the form "callback/:subkey" to allow the parameter be
-     * retrieved from an action using the Zend\Controller\Action::\getParam()
-     * method.
-     *
-     * @var string
-     */
-    protected $usePathParameter = false;
-
-    /**
-     * Constructor; accepts an array or Traversable instance to preset
-     * options for the Subscriber without calling all supported setter
-     * methods in turn.
-     *
-     * @param  array|Traversable $options
-     */
-    public function __construct($options = null)
-    {
-        if ($options !== null) {
-            $this->setOptions($options);
-        }
-    }
-
-    /**
-     * Process any injected configuration options
-     *
-     * @param  array|Traversable $options
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setOptions($options)
-    {
-        if ($options instanceof Traversable) {
-            $options = ArrayUtils::iteratorToArray($options);
-        }
-
-        if (!is_array($options)) {
-            throw new Exception\InvalidArgumentException('Array or Traversable object'
-                                . 'expected, got ' . gettype($options));
-        }
-        if (array_key_exists('hubUrls', $options)) {
-            $this->addHubUrls($options['hubUrls']);
-        }
-        if (array_key_exists('callbackUrl', $options)) {
-            $this->setCallbackUrl($options['callbackUrl']);
-        }
-        if (array_key_exists('topicUrl', $options)) {
-            $this->setTopicUrl($options['topicUrl']);
-        }
-        if (array_key_exists('storage', $options)) {
-            $this->setStorage($options['storage']);
-        }
-        if (array_key_exists('leaseSeconds', $options)) {
-            $this->setLeaseSeconds($options['leaseSeconds']);
-        }
-        if (array_key_exists('parameters', $options)) {
-            $this->setParameters($options['parameters']);
-        }
-        if (array_key_exists('authentications', $options)) {
-            $this->addAuthentications($options['authentications']);
-        }
-        if (array_key_exists('usePathParameter', $options)) {
-            $this->usePathParameter($options['usePathParameter']);
-        }
-        if (array_key_exists('preferredVerificationMode', $options)) {
-            $this->setPreferredVerificationMode(
-                $options['preferredVerificationMode']
-            );
-        }
-        return $this;
-    }
-
-    /**
-     * Set the topic URL (RSS or Atom feed) to which the intended (un)subscribe
-     * event will relate
-     *
-     * @param  string $url
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setTopicUrl($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                .' of "' . $url . '" must be a non-empty string and a valid'
-                .' URL');
-        }
-        $this->topicUrl = $url;
-        return $this;
-    }
-
-    /**
-     * Set the topic URL (RSS or Atom feed) to which the intended (un)subscribe
-     * event will relate
-     *
-     * @return string
-     * @throws Exception\RuntimeException
-     */
-    public function getTopicUrl()
-    {
-        if (empty($this->topicUrl)) {
-            throw new Exception\RuntimeException('A valid Topic (RSS or Atom'
-                . ' feed) URL MUST be set before attempting any operation');
-        }
-        return $this->topicUrl;
-    }
-
-    /**
-     * Set the number of seconds for which any subscription will remain valid
-     *
-     * @param  int $seconds
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setLeaseSeconds($seconds)
-    {
-        $seconds = intval($seconds);
-        if ($seconds <= 0) {
-            throw new Exception\InvalidArgumentException('Expected lease seconds'
-                . ' must be an integer greater than zero');
-        }
-        $this->leaseSeconds = $seconds;
-        return $this;
-    }
-
-    /**
-     * Get the number of lease seconds on subscriptions
-     *
-     * @return int
-     */
-    public function getLeaseSeconds()
-    {
-        return $this->leaseSeconds;
-    }
-
-    /**
-     * Set the callback URL to be used by Hub Servers when communicating with
-     * this Subscriber
-     *
-     * @param  string $url
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setCallbackUrl($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                . ' of "' . $url . '" must be a non-empty string and a valid'
-                . ' URL');
-        }
-        $this->callbackUrl = $url;
-        return $this;
-    }
-
-    /**
-     * Get the callback URL to be used by Hub Servers when communicating with
-     * this Subscriber
-     *
-     * @return string
-     * @throws Exception\RuntimeException
-     */
-    public function getCallbackUrl()
-    {
-        if (empty($this->callbackUrl)) {
-            throw new Exception\RuntimeException('A valid Callback URL MUST be'
-                . ' set before attempting any operation');
-        }
-        return $this->callbackUrl;
-    }
-
-    /**
-     * Set preferred verification mode (sync or async). By default, this
-     * Subscriber prefers synchronous verification, but does support
-     * asynchronous if that's the Hub Server's utilised mode.
-     *
-     * Zend\Feed\Pubsubhubbub\Subscriber will always send both modes, whose
-     * order of occurrence in the parameter list determines this preference.
-     *
-     * @param  string $mode Should be 'sync' or 'async'
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setPreferredVerificationMode($mode)
-    {
-        if ($mode !== PubSubHubbub::VERIFICATION_MODE_SYNC
-            && $mode !== PubSubHubbub::VERIFICATION_MODE_ASYNC
-        ) {
-            throw new Exception\InvalidArgumentException('Invalid preferred'
-                . ' mode specified: "' . $mode . '" but should be one of'
-                . ' Zend\Feed\Pubsubhubbub::VERIFICATION_MODE_SYNC or'
-                . ' Zend\Feed\Pubsubhubbub::VERIFICATION_MODE_ASYNC');
-        }
-        $this->preferredVerificationMode = $mode;
-        return $this;
-    }
-
-    /**
-     * Get preferred verification mode (sync or async).
-     *
-     * @return string
-     */
-    public function getPreferredVerificationMode()
-    {
-        return $this->preferredVerificationMode;
-    }
-
-    /**
-     * Add a Hub Server URL supported by Publisher
-     *
-     * @param  string $url
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function addHubUrl($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                . ' of "' . $url . '" must be a non-empty string and a valid'
-                . ' URL');
-        }
-        $this->hubUrls[] = $url;
-        return $this;
-    }
-
-    /**
-     * Add an array of Hub Server URLs supported by Publisher
-     *
-     * @param  array $urls
-     * @return Subscriber
-     */
-    public function addHubUrls(array $urls)
-    {
-        foreach ($urls as $url) {
-            $this->addHubUrl($url);
-        }
-        return $this;
-    }
-
-    /**
-     * Remove a Hub Server URL
-     *
-     * @param  string $url
-     * @return Subscriber
-     */
-    public function removeHubUrl($url)
-    {
-        if (!in_array($url, $this->getHubUrls())) {
-            return $this;
-        }
-        $key = array_search($url, $this->hubUrls);
-        unset($this->hubUrls[$key]);
-        return $this;
-    }
-
-    /**
-     * Return an array of unique Hub Server URLs currently available
-     *
-     * @return array
-     */
-    public function getHubUrls()
-    {
-        $this->hubUrls = array_unique($this->hubUrls);
-        return $this->hubUrls;
-    }
-
-    /**
-     * Add authentication credentials for a given URL
-     *
-     * @param  string $url
-     * @param  array $authentication
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function addAuthentication($url, array $authentication)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "url"'
-                . ' of "' . $url . '" must be a non-empty string and a valid'
-                . ' URL');
-        }
-        $this->authentications[$url] = $authentication;
-        return $this;
-    }
-
-    /**
-     * Add authentication credentials for hub URLs
-     *
-     * @param  array $authentications
-     * @return Subscriber
-     */
-    public function addAuthentications(array $authentications)
-    {
-        foreach ($authentications as $url => $authentication) {
-            $this->addAuthentication($url, $authentication);
-        }
-        return $this;
-    }
-
-    /**
-     * Get all hub URL authentication credentials
-     *
-     * @return array
-     */
-    public function getAuthentications()
-    {
-        return $this->authentications;
-    }
-
-    /**
-     * Set flag indicating whether or not to use a path parameter
-     *
-     * @param  bool $bool
-     * @return Subscriber
-     */
-    public function usePathParameter($bool = true)
-    {
-        $this->usePathParameter = $bool;
-        return $this;
-    }
-
-    /**
-     * Add an optional parameter to the (un)subscribe requests
-     *
-     * @param  string $name
-     * @param  string|null $value
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setParameter($name, $value = null)
-    {
-        if (is_array($name)) {
-            $this->setParameters($name);
-            return $this;
-        }
-        if (empty($name) || !is_string($name)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "name"'
-                . ' of "' . $name . '" must be a non-empty string');
-        }
-        if ($value === null) {
-            $this->removeParameter($name);
-            return $this;
-        }
-        if (empty($value) || (!is_string($value) && $value !== null)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "value"'
-                . ' of "' . $value . '" must be a non-empty string');
-        }
-        $this->parameters[$name] = $value;
-        return $this;
-    }
-
-    /**
-     * Add an optional parameter to the (un)subscribe requests
-     *
-     * @param  array $parameters
-     * @return Subscriber
-     */
-    public function setParameters(array $parameters)
-    {
-        foreach ($parameters as $name => $value) {
-            $this->setParameter($name, $value);
-        }
-        return $this;
-    }
-
-    /**
-     * Remove an optional parameter for the (un)subscribe requests
-     *
-     * @param  string $name
-     * @return Subscriber
-     * @throws Exception\InvalidArgumentException
-     */
-    public function removeParameter($name)
-    {
-        if (empty($name) || !is_string($name)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter "name"'
-                . ' of "' . $name . '" must be a non-empty string');
-        }
-        if (array_key_exists($name, $this->parameters)) {
-            unset($this->parameters[$name]);
-        }
-        return $this;
-    }
-
-    /**
-     * Return an array of optional parameters for (un)subscribe requests
-     *
-     * @return array
-     */
-    public function getParameters()
-    {
-        return $this->parameters;
-    }
-
-    /**
-     * Sets an instance of Zend\Feed\Pubsubhubbub\Model\SubscriptionPersistence used to background
-     * save any verification tokens associated with a subscription or other.
-     *
-     * @param  Model\SubscriptionPersistenceInterface $storage
-     * @return Subscriber
-     */
-    public function setStorage(Model\SubscriptionPersistenceInterface $storage)
-    {
-        $this->storage = $storage;
-        return $this;
-    }
-
-    /**
-     * Gets an instance of Zend\Feed\Pubsubhubbub\Storage\StoragePersistence used
-     * to background save any verification tokens associated with a subscription
-     * or other.
-     *
-     * @return Model\SubscriptionPersistenceInterface
-     * @throws Exception\RuntimeException
-     */
-    public function getStorage()
-    {
-        if ($this->storage === null) {
-            throw new Exception\RuntimeException('No storage vehicle '
-                . 'has been set.');
-        }
-        return $this->storage;
-    }
-
-    /**
-     * Subscribe to one or more Hub Servers using the stored Hub URLs
-     * for the given Topic URL (RSS or Atom feed)
-     *
-     * @return void
-     */
-    public function subscribeAll()
-    {
-        $this->_doRequest('subscribe');
-    }
-
-    /**
-     * Unsubscribe from one or more Hub Servers using the stored Hub URLs
-     * for the given Topic URL (RSS or Atom feed)
-     *
-     * @return void
-     */
-    public function unsubscribeAll()
-    {
-        $this->_doRequest('unsubscribe');
-    }
-
-    /**
-     * Returns a boolean indicator of whether the notifications to Hub
-     * Servers were ALL successful. If even one failed, FALSE is returned.
-     *
-     * @return bool
-     */
-    public function isSuccess()
-    {
-        if (count($this->errors) > 0) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Return an array of errors met from any failures, including keys:
-     * 'response' => the Zend\Http\Response object from the failure
-     * 'hubUrl' => the URL of the Hub Server whose notification failed
-     *
-     * @return array
-     */
-    public function getErrors()
-    {
-        return $this->errors;
-    }
-
-    /**
-     * Return an array of Hub Server URLs who returned a response indicating
-     * operation in Asynchronous Verification Mode, i.e. they will not confirm
-     * any (un)subscription immediately but at a later time (Hubs may be
-     * doing this as a batch process when load balancing)
-     *
-     * @return array
-     */
-    public function getAsyncHubs()
-    {
-        return $this->asyncHubs;
-    }
-
-    /**
-     * Executes an (un)subscribe request
-     *
-     * @param  string $mode
-     * @return void
-     * @throws Exception\RuntimeException
-     */
-    protected function _doRequest($mode)
-    {
-        $client = $this->_getHttpClient();
-        $hubs   = $this->getHubUrls();
-        if (empty($hubs)) {
-            throw new Exception\RuntimeException('No Hub Server URLs'
-                . ' have been set so no subscriptions can be attempted');
-        }
-        $this->errors = array();
-        $this->asyncHubs = array();
-        foreach ($hubs as $url) {
-            if (array_key_exists($url, $this->authentications)) {
-                $auth = $this->authentications[$url];
-                $client->setAuth($auth[0], $auth[1]);
-            }
-            $client->setUri($url);
-            $client->setRawBody($params = $this->_getRequestParameters($url, $mode));
-            $response = $client->send();
-            if ($response->getStatusCode() !== 204
-                && $response->getStatusCode() !== 202
-            ) {
-                $this->errors[] = array(
-                    'response' => $response,
-                    'hubUrl'   => $url,
-                );
-            /**
-             * At first I thought it was needed, but the backend storage will
-             * allow tracking async without any user interference. It's left
-             * here in case the user is interested in knowing what Hubs
-             * are using async verification modes so they may update Models and
-             * move these to asynchronous processes.
-             */
-            } elseif ($response->getStatusCode() == 202) {
-                $this->asyncHubs[] = array(
-                    'response' => $response,
-                    'hubUrl'   => $url,
-                );
-            }
-        }
-    }
-
-    /**
-     * Get a basic prepared HTTP client for use
-     *
-     * @return \Zend\Http\Client
-     */
-    protected function _getHttpClient()
-    {
-        $client = PubSubHubbub::getHttpClient();
-        $client->setMethod(HttpRequest::METHOD_POST);
-        $client->setOptions(array('useragent' => 'Zend_Feed_Pubsubhubbub_Subscriber/'
-            . Version::VERSION));
-        return $client;
-    }
-
-    /**
-     * Return a list of standard protocol/optional parameters for addition to
-     * client's POST body that are specific to the current Hub Server URL
-     *
-     * @param  string $hubUrl
-     * @param  string $mode
-     * @return string
-     * @throws Exception\InvalidArgumentException
-     */
-    protected function _getRequestParameters($hubUrl, $mode)
-    {
-        if (!in_array($mode, array('subscribe', 'unsubscribe'))) {
-            throw new Exception\InvalidArgumentException('Invalid mode specified: "'
-                . $mode . '" which should have been "subscribe" or "unsubscribe"');
-        }
-
-        $params = array(
-            'hub.mode'  => $mode,
-            'hub.topic' => $this->getTopicUrl(),
-        );
-
-        if ($this->getPreferredVerificationMode()
-                == PubSubHubbub::VERIFICATION_MODE_SYNC
-        ) {
-            $vmodes = array(
-                PubSubHubbub::VERIFICATION_MODE_SYNC,
-                PubSubHubbub::VERIFICATION_MODE_ASYNC,
-            );
-        } else {
-            $vmodes = array(
-                PubSubHubbub::VERIFICATION_MODE_ASYNC,
-                PubSubHubbub::VERIFICATION_MODE_SYNC,
-            );
-        }
-        $params['hub.verify'] = array();
-        foreach ($vmodes as $vmode) {
-            $params['hub.verify'][] = $vmode;
-        }
-
-        /**
-         * Establish a persistent verify_token and attach key to callback
-         * URL's path/query_string
-         */
-        $key   = $this->_generateSubscriptionKey($params, $hubUrl);
-        $token = $this->_generateVerifyToken();
-        $params['hub.verify_token'] = $token;
-
-        // Note: query string only usable with PuSH 0.2 Hubs
-        if (!$this->usePathParameter) {
-            $params['hub.callback'] = $this->getCallbackUrl()
-                . '?xhub.subscription=' . PubSubHubbub::urlencode($key);
-        } else {
-            $params['hub.callback'] = rtrim($this->getCallbackUrl(), '/')
-                . '/' . PubSubHubbub::urlencode($key);
-        }
-        if ($mode == 'subscribe' && $this->getLeaseSeconds() !== null) {
-            $params['hub.lease_seconds'] = $this->getLeaseSeconds();
-        }
-
-        // hub.secret not currently supported
-        $optParams = $this->getParameters();
-        foreach ($optParams as $name => $value) {
-            $params[$name] = $value;
-        }
-
-        // store subscription to storage
-        $now = new DateTime();
-        $expires = null;
-        if (isset($params['hub.lease_seconds'])) {
-            $expires = $now->add(new DateInterval('PT' . $params['hub.lease_seconds'] . 'S'))
-                ->format('Y-m-d H:i:s');
-        }
-        $data = array(
-            'id'                 => $key,
-            'topic_url'          => $params['hub.topic'],
-            'hub_url'            => $hubUrl,
-            'created_time'       => $now->format('Y-m-d H:i:s'),
-            'lease_seconds'      => $params['hub.lease_seconds'],
-            'verify_token'       => hash('sha256', $params['hub.verify_token']),
-            'secret'             => null,
-            'expiration_time'    => $expires,
-            'subscription_state' => ($mode == 'unsubscribe')? PubSubHubbub::SUBSCRIPTION_TODELETE : PubSubHubbub::SUBSCRIPTION_NOTVERIFIED,
-        );
-        $this->getStorage()->setSubscription($data);
-
-        return $this->_toByteValueOrderedString(
-            $this->_urlEncode($params)
-        );
-    }
-
-    /**
-     * Simple helper to generate a verification token used in (un)subscribe
-     * requests to a Hub Server. Follows no particular method, which means
-     * it might be improved/changed in future.
-     *
-     * @return string
-     */
-    protected function _generateVerifyToken()
-    {
-        if (!empty($this->testStaticToken)) {
-            return $this->testStaticToken;
-        }
-        return uniqid(rand(), true) . time();
-    }
-
-    /**
-     * Simple helper to generate a verification token used in (un)subscribe
-     * requests to a Hub Server.
-     *
-     * @param array   $params
-     * @param string $hubUrl The Hub Server URL for which this token will apply
-     * @return string
-     */
-    protected function _generateSubscriptionKey(array $params, $hubUrl)
-    {
-        $keyBase = $params['hub.topic'] . $hubUrl;
-        $key     = md5($keyBase);
-
-        return $key;
-    }
-
-    /**
-     * URL Encode an array of parameters
-     *
-     * @param  array $params
-     * @return array
-     */
-    protected function _urlEncode(array $params)
-    {
-        $encoded = array();
-        foreach ($params as $key => $value) {
-            if (is_array($value)) {
-                $ekey = PubSubHubbub::urlencode($key);
-                $encoded[$ekey] = array();
-                foreach ($value as $duplicateKey) {
-                    $encoded[$ekey][]
-                        = PubSubHubbub::urlencode($duplicateKey);
-                }
-            } else {
-                $encoded[PubSubHubbub::urlencode($key)]
-                    = PubSubHubbub::urlencode($value);
-            }
-        }
-        return $encoded;
-    }
-
-    /**
-     * Order outgoing parameters
-     *
-     * @param  array $params
-     * @return array
-     */
-    protected function _toByteValueOrderedString(array $params)
-    {
-        $return = array();
-        uksort($params, 'strnatcmp');
-        foreach ($params as $key => $value) {
-            if (is_array($value)) {
-                foreach ($value as $keyduplicate) {
-                    $return[] = $key . '=' . $keyduplicate;
-                }
-            } else {
-                $return[] = $key . '=' . $value;
-            }
-        }
-        return implode('&', $return);
-    }
-
-    /**
-     * This is STRICTLY for testing purposes only...
-     */
-    protected $testStaticToken = null;
-
-    final public function setTestStaticToken($token)
-    {
-        $this->testStaticToken = (string) $token;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Subscriber/Callback.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Subscriber/Callback.php
deleted file mode 100644
index 5160259..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Subscriber/Callback.php
+++ /dev/null
@@ -1,316 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub\Subscriber;
-
-use Zend\Feed\PubSubHubbub;
-use Zend\Feed\PubSubHubbub\Exception;
-use Zend\Feed\Uri;
-
-class Callback extends PubSubHubbub\AbstractCallback
-{
-    /**
-     * Contains the content of any feeds sent as updates to the Callback URL
-     *
-     * @var string
-     */
-    protected $feedUpdate = null;
-
-    /**
-     * Holds a manually set subscription key (i.e. identifies a unique
-     * subscription) which is typical when it is not passed in the query string
-     * but is part of the Callback URL path, requiring manual retrieval e.g.
-     * using a route and the \Zend\Mvc\Router\RouteMatch::getParam() method.
-     *
-     * @var string
-     */
-    protected $subscriptionKey = null;
-
-    /**
-     * After verification, this is set to the verified subscription's data.
-     *
-     * @var array
-     */
-    protected $currentSubscriptionData = null;
-
-    /**
-     * Set a subscription key to use for the current callback request manually.
-     * Required if usePathParameter is enabled for the Subscriber.
-     *
-     * @param  string $key
-     * @return \Zend\Feed\PubSubHubbub\Subscriber\Callback
-     */
-    public function setSubscriptionKey($key)
-    {
-        $this->subscriptionKey = $key;
-        return $this;
-    }
-
-    /**
-     * Handle any callback from a Hub Server responding to a subscription or
-     * unsubscription request. This should be the Hub Server confirming the
-     * the request prior to taking action on it.
-     *
-     * @param  array $httpGetData GET data if available and not in $_GET
-     * @param  bool $sendResponseNow Whether to send response now or when asked
-     * @return void
-     */
-    public function handle(array $httpGetData = null, $sendResponseNow = false)
-    {
-        if ($httpGetData === null) {
-            $httpGetData = $_GET;
-        }
-
-        /**
-         * Handle any feed updates (sorry for the mess :P)
-         *
-         * This DOES NOT attempt to process a feed update. Feed updates
-         * SHOULD be validated/processed by an asynchronous process so as
-         * to avoid holding up responses to the Hub.
-         */
-        $contentType = $this->_getHeader('Content-Type');
-        if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'
-            && $this->_hasValidVerifyToken(null, false)
-            && (stripos($contentType, 'application/atom+xml') === 0
-                || stripos($contentType, 'application/rss+xml') === 0
-                || stripos($contentType, 'application/xml') === 0
-                || stripos($contentType, 'text/xml') === 0
-                || stripos($contentType, 'application/rdf+xml') === 0)
-        ) {
-            $this->setFeedUpdate($this->_getRawBody());
-            $this->getHttpResponse()->setHeader('X-Hub-On-Behalf-Of', $this->getSubscriberCount());
-        /**
-         * Handle any (un)subscribe confirmation requests
-         */
-        } elseif ($this->isValidHubVerification($httpGetData)) {
-            $this->getHttpResponse()->setContent($httpGetData['hub_challenge']);
-
-            switch (strtolower($httpGetData['hub_mode'])) {
-                case 'subscribe':
-                    $data = $this->currentSubscriptionData;
-                    $data['subscription_state'] = PubSubHubbub\PubSubHubbub::SUBSCRIPTION_VERIFIED;
-                    if (isset($httpGetData['hub_lease_seconds'])) {
-                        $data['lease_seconds'] = $httpGetData['hub_lease_seconds'];
-                    }
-                    $this->getStorage()->setSubscription($data);
-                    break;
-                case 'unsubscribe':
-                    $verifyTokenKey = $this->_detectVerifyTokenKey($httpGetData);
-                    $this->getStorage()->deleteSubscription($verifyTokenKey);
-                    break;
-                default:
-                    throw new Exception\RuntimeException(sprintf(
-                        'Invalid hub_mode ("%s") provided',
-                        $httpGetData['hub_mode']
-                    ));
-            }
-        /**
-         * Hey, C'mon! We tried everything else!
-         */
-        } else {
-            $this->getHttpResponse()->setStatusCode(404);
-        }
-
-        if ($sendResponseNow) {
-            $this->sendResponse();
-        }
-    }
-
-    /**
-     * Checks validity of the request simply by making a quick pass and
-     * confirming the presence of all REQUIRED parameters.
-     *
-     * @param  array $httpGetData
-     * @return bool
-     */
-    public function isValidHubVerification(array $httpGetData)
-    {
-        /**
-         * As per the specification, the hub.verify_token is OPTIONAL. This
-         * implementation of Pubsubhubbub considers it REQUIRED and will
-         * always send a hub.verify_token parameter to be echoed back
-         * by the Hub Server. Therefore, its absence is considered invalid.
-         */
-        if (strtolower($_SERVER['REQUEST_METHOD']) !== 'get') {
-            return false;
-        }
-        $required = array(
-            'hub_mode',
-            'hub_topic',
-            'hub_challenge',
-            'hub_verify_token',
-        );
-        foreach ($required as $key) {
-            if (!array_key_exists($key, $httpGetData)) {
-                return false;
-            }
-        }
-        if ($httpGetData['hub_mode'] !== 'subscribe'
-            && $httpGetData['hub_mode'] !== 'unsubscribe'
-        ) {
-            return false;
-        }
-        if ($httpGetData['hub_mode'] == 'subscribe'
-            && !array_key_exists('hub_lease_seconds', $httpGetData)
-        ) {
-            return false;
-        }
-        if (!Uri::factory($httpGetData['hub_topic'])->isValid()) {
-            return false;
-        }
-
-        /**
-         * Attempt to retrieve any Verification Token Key attached to Callback
-         * URL's path by our Subscriber implementation
-         */
-        if (!$this->_hasValidVerifyToken($httpGetData)) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Sets a newly received feed (Atom/RSS) sent by a Hub as an update to a
-     * Topic we've subscribed to.
-     *
-     * @param  string $feed
-     * @return \Zend\Feed\PubSubHubbub\Subscriber\Callback
-     */
-    public function setFeedUpdate($feed)
-    {
-        $this->feedUpdate = $feed;
-        return $this;
-    }
-
-    /**
-     * Check if any newly received feed (Atom/RSS) update was received
-     *
-     * @return bool
-     */
-    public function hasFeedUpdate()
-    {
-        if ($this->feedUpdate === null) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Gets a newly received feed (Atom/RSS) sent by a Hub as an update to a
-     * Topic we've subscribed to.
-     *
-     * @return string
-     */
-    public function getFeedUpdate()
-    {
-        return $this->feedUpdate;
-    }
-
-    /**
-     * Check for a valid verify_token. By default attempts to compare values
-     * with that sent from Hub, otherwise merely ascertains its existence.
-     *
-     * @param  array $httpGetData
-     * @param  bool $checkValue
-     * @return bool
-     */
-    protected function _hasValidVerifyToken(array $httpGetData = null, $checkValue = true)
-    {
-        $verifyTokenKey = $this->_detectVerifyTokenKey($httpGetData);
-        if (empty($verifyTokenKey)) {
-            return false;
-        }
-        $verifyTokenExists = $this->getStorage()->hasSubscription($verifyTokenKey);
-        if (!$verifyTokenExists) {
-            return false;
-        }
-        if ($checkValue) {
-            $data = $this->getStorage()->getSubscription($verifyTokenKey);
-            $verifyToken = $data['verify_token'];
-            if ($verifyToken !== hash('sha256', $httpGetData['hub_verify_token'])) {
-                return false;
-            }
-            $this->currentSubscriptionData = $data;
-            return true;
-        }
-        return true;
-    }
-
-    /**
-     * Attempt to detect the verification token key. This would be passed in
-     * the Callback URL (which we are handling with this class!) as a URI
-     * path part (the last part by convention).
-     *
-     * @param  null|array $httpGetData
-     * @return false|string
-     */
-    protected function _detectVerifyTokenKey(array $httpGetData = null)
-    {
-        /**
-         * Available when sub keys encoding in Callback URL path
-         */
-        if (isset($this->subscriptionKey)) {
-            return $this->subscriptionKey;
-        }
-
-        /**
-         * Available only if allowed by PuSH 0.2 Hubs
-         */
-        if (is_array($httpGetData)
-            && isset($httpGetData['xhub_subscription'])
-        ) {
-            return $httpGetData['xhub_subscription'];
-        }
-
-        /**
-         * Available (possibly) if corrupted in transit and not part of $_GET
-         */
-        $params = $this->_parseQueryString();
-        if (isset($params['xhub.subscription'])) {
-            return rawurldecode($params['xhub.subscription']);
-        }
-
-        return false;
-    }
-
-    /**
-     * Build an array of Query String parameters.
-     * This bypasses $_GET which munges parameter names and cannot accept
-     * multiple parameters with the same key.
-     *
-     * @return array|void
-     */
-    protected function _parseQueryString()
-    {
-        $params      = array();
-        $queryString = '';
-        if (isset($_SERVER['QUERY_STRING'])) {
-            $queryString = $_SERVER['QUERY_STRING'];
-        }
-        if (empty($queryString)) {
-            return array();
-        }
-        $parts = explode('&', $queryString);
-        foreach ($parts as $kvpair) {
-            $pair  = explode('=', $kvpair);
-            $key   = rawurldecode($pair[0]);
-            $value = rawurldecode($pair[1]);
-            if (isset($params[$key])) {
-                if (is_array($params[$key])) {
-                    $params[$key][] = $value;
-                } else {
-                    $params[$key] = array($params[$key], $value);
-                }
-            } else {
-                $params[$key] = $value;
-            }
-        }
-        return $params;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/PubSubHubbub/Version.php b/core/vendor/zendframework/zend-feed/PubSubHubbub/Version.php
deleted file mode 100644
index 9ac7fb4..0000000
--- a/core/vendor/zendframework/zend-feed/PubSubHubbub/Version.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\PubSubHubbub;
-
-abstract class Version
-{
-    const VERSION = '2';
-}
diff --git a/core/vendor/zendframework/zend-feed/README.md b/core/vendor/zendframework/zend-feed/README.md
deleted file mode 100644
index ffc73a9..0000000
--- a/core/vendor/zendframework/zend-feed/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Feed Component from ZF2
-=======================
-
-This is the Feed component for ZF2.
-
-- File issues at https://github.com/zendframework/zf2/issues
-- Create pull requests against https://github.com/zendframework/zf2
-- Documentation is at http://framework.zend.com/docs
-
-LICENSE
--------
-
-The files in this archive are released under the [Zend Framework
-license](http://framework.zend.com/license), which is a 3-clause BSD license.
-
diff --git a/core/vendor/zendframework/zend-feed/Reader/AbstractEntry.php b/core/vendor/zendframework/zend-feed/Reader/AbstractEntry.php
deleted file mode 100644
index a5bcd42..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/AbstractEntry.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-use DOMDocument;
-use DOMElement;
-use DOMXPath;
-
-abstract class AbstractEntry
-{
-    /**
-     * Feed entry data
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * DOM document object
-     *
-     * @var DOMDocument
-     */
-    protected $domDocument = null;
-
-    /**
-     * Entry instance
-     *
-     * @var DOMElement
-     */
-    protected $entry = null;
-
-    /**
-     * Pointer to the current entry
-     *
-     * @var int
-     */
-    protected $entryKey = 0;
-
-    /**
-     * XPath object
-     *
-     * @var DOMXPath
-     */
-    protected $xpath = null;
-
-    /**
-     * Registered extensions
-     *
-     * @var array
-     */
-    protected $extensions = array();
-
-    /**
-     * Constructor
-     *
-     * @param  DOMElement $entry
-     * @param  int $entryKey
-     * @param  null|string $type
-     */
-    public function __construct(DOMElement $entry, $entryKey, $type = null)
-    {
-        $this->entry       = $entry;
-        $this->entryKey    = $entryKey;
-        $this->domDocument = $entry->ownerDocument;
-        if ($type !== null) {
-            $this->data['type'] = $type;
-        } else {
-            $this->data['type'] = Reader::detectType($entry);
-        }
-        $this->_loadExtensions();
-    }
-
-    /**
-     * Get the DOM
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->domDocument;
-    }
-
-    /**
-     * Get the entry element
-     *
-     * @return DOMElement
-     */
-    public function getElement()
-    {
-        return $this->entry;
-    }
-
-    /**
-     * Get the Entry's encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        $assumed = $this->getDomDocument()->encoding;
-        if (empty($assumed)) {
-            $assumed = 'UTF-8';
-        }
-        return $assumed;
-    }
-
-    /**
-     * Get entry as xml
-     *
-     * @return string
-     */
-    public function saveXml()
-    {
-        $dom = new DOMDocument('1.0', $this->getEncoding());
-        $entry = $dom->importNode($this->getElement(), true);
-        $dom->appendChild($entry);
-        return $dom->saveXml();
-    }
-
-    /**
-     * Get the entry type
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        return $this->data['type'];
-    }
-
-    /**
-     * Get the XPath query object
-     *
-     * @return DOMXPath
-     */
-    public function getXpath()
-    {
-        if (!$this->xpath) {
-            $this->setXpath(new DOMXPath($this->getDomDocument()));
-        }
-        return $this->xpath;
-    }
-
-    /**
-     * Set the XPath query
-     *
-     * @param  DOMXPath $xpath
-     * @return \Zend\Feed\Reader\AbstractEntry
-     */
-    public function setXpath(DOMXPath $xpath)
-    {
-        $this->xpath = $xpath;
-        return $this;
-    }
-
-    /**
-     * Get registered extensions
-     *
-     * @return array
-     */
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    /**
-     * Return an Extension object with the matching name (postfixed with _Entry)
-     *
-     * @param string $name
-     * @return \Zend\Feed\Reader\Extension\AbstractEntry
-     */
-    public function getExtension($name)
-    {
-        if (array_key_exists($name . '\Entry', $this->extensions)) {
-            return $this->extensions[$name . '\Entry'];
-        }
-        return;
-    }
-
-    /**
-     * Method overloading: call given method on first extension implementing it
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Exception\BadMethodCallException if no extensions implements the method
-     */
-    public function __call($method, $args)
-    {
-        foreach ($this->extensions as $extension) {
-            if (method_exists($extension, $method)) {
-                return call_user_func_array(array($extension, $method), $args);
-            }
-        }
-        throw new Exception\BadMethodCallException('Method: ' . $method
-            . 'does not exist and could not be located on a registered Extension');
-    }
-
-    /**
-     * Load extensions from Zend\Feed\Reader\Reader
-     *
-     * @return void
-     */
-    protected function _loadExtensions()
-    {
-        $all = Reader::getExtensions();
-        $feed = $all['entry'];
-        foreach ($feed as $extension) {
-            if (in_array($extension, $all['core'])) {
-                continue;
-            }
-            $className = Reader::getPluginLoader()->getClassName($extension);
-            $this->extensions[$extension] = new $className(
-                $this->getElement(), $this->entryKey, $this->data['type']
-            );
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/AbstractFeed.php b/core/vendor/zendframework/zend-feed/Reader/AbstractFeed.php
deleted file mode 100644
index 1ded744..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/AbstractFeed.php
+++ /dev/null
@@ -1,300 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-use DOMDocument;
-use DOMElement;
-use DOMXPath;
-
-abstract class AbstractFeed implements Feed\FeedInterface
-{
-    /**
-     * Parsed feed data
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Parsed feed data in the shape of a DOMDocument
-     *
-     * @var DOMDocument
-     */
-    protected $domDocument = null;
-
-    /**
-     * An array of parsed feed entries
-     *
-     * @var array
-     */
-    protected $entries = array();
-
-    /**
-     * A pointer for the iterator to keep track of the entries array
-     *
-     * @var int
-     */
-    protected $entriesKey = 0;
-
-    /**
-     * The base XPath query used to retrieve feed data
-     *
-     * @var DOMXPath
-     */
-    protected $xpath = null;
-
-    /**
-     * Array of loaded extensions
-     *
-     * @var array
-     */
-    protected $extensions = array();
-
-    /**
-     * Original Source URI (set if imported from a URI)
-     *
-     * @var string
-     */
-    protected $originalSourceUri = null;
-
-    /**
-     * Constructor
-     *
-     * @param DomDocument $domDocument The DOM object for the feed's XML
-     * @param string $type Feed type
-     */
-    public function __construct(DOMDocument $domDocument, $type = null)
-    {
-        $this->domDocument = $domDocument;
-        $this->xpath = new DOMXPath($this->domDocument);
-
-        if ($type !== null) {
-            $this->data['type'] = $type;
-        } else {
-            $this->data['type'] = Reader::detectType($this->domDocument);
-        }
-        $this->registerNamespaces();
-        $this->indexEntries();
-        $this->loadExtensions();
-    }
-
-    /**
-     * Set an original source URI for the feed being parsed. This value
-     * is returned from getFeedLink() method if the feed does not carry
-     * a self-referencing URI.
-     *
-     * @param string $uri
-     */
-    public function setOriginalSourceUri($uri)
-    {
-        $this->originalSourceUri = $uri;
-    }
-
-    /**
-     * Get an original source URI for the feed being parsed. Returns null if
-     * unset or the feed was not imported from a URI.
-     *
-     * @return string|null
-     */
-    public function getOriginalSourceUri()
-    {
-        return $this->originalSourceUri;
-    }
-
-    /**
-     * Get the number of feed entries.
-     * Required by the Iterator interface.
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->entries);
-    }
-
-    /**
-     * Return the current entry
-     *
-     * @return \Zend\Feed\Reader\AbstractEntry
-     */
-    public function current()
-    {
-        if (substr($this->getType(), 0, 3) == 'rss') {
-            $reader = new Entry\RSS($this->entries[$this->key()], $this->key(), $this->getType());
-        } else {
-            $reader = new Entry\Atom($this->entries[$this->key()], $this->key(), $this->getType());
-        }
-
-        $reader->setXpath($this->xpath);
-
-        return $reader;
-    }
-
-    /**
-     * Get the DOM
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->domDocument;
-    }
-
-    /**
-     * Get the Feed's encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        $assumed = $this->getDomDocument()->encoding;
-        if (empty($assumed)) {
-            $assumed = 'UTF-8';
-        }
-        return $assumed;
-    }
-
-    /**
-     * Get feed as xml
-     *
-     * @return string
-     */
-    public function saveXml()
-    {
-        return $this->getDomDocument()->saveXml();
-    }
-
-    /**
-     * Get the DOMElement representing the items/feed element
-     *
-     * @return DOMElement
-     */
-    public function getElement()
-    {
-        return $this->getDomDocument()->documentElement;
-    }
-
-    /**
-     * Get the DOMXPath object for this feed
-     *
-     * @return DOMXPath
-     */
-    public function getXpath()
-    {
-        return $this->xpath;
-    }
-
-    /**
-     * Get the feed type
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        return $this->data['type'];
-    }
-
-    /**
-     * Return the current feed key
-     *
-     * @return int
-     */
-    public function key()
-    {
-        return $this->entriesKey;
-    }
-
-    /**
-     * Move the feed pointer forward
-     *
-     */
-    public function next()
-    {
-        ++$this->entriesKey;
-    }
-
-    /**
-     * Reset the pointer in the feed object
-     *
-     */
-    public function rewind()
-    {
-        $this->entriesKey = 0;
-    }
-
-    /**
-     * Check to see if the iterator is still valid
-     *
-     * @return bool
-     */
-    public function valid()
-    {
-        return 0 <= $this->entriesKey && $this->entriesKey < $this->count();
-    }
-
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    public function __call($method, $args)
-    {
-        foreach ($this->extensions as $extension) {
-            if (method_exists($extension, $method)) {
-                return call_user_func_array(array($extension, $method), $args);
-            }
-        }
-        throw new Exception\BadMethodCallException('Method: ' . $method
-        . 'does not exist and could not be located on a registered Extension');
-    }
-
-    /**
-     * Return an Extension object with the matching name (postfixed with _Feed)
-     *
-     * @param string $name
-     * @return \Zend\Feed\Reader\Extension\AbstractFeed
-     */
-    public function getExtension($name)
-    {
-        if (array_key_exists($name . '\Feed', $this->extensions)) {
-            return $this->extensions[$name . '\Feed'];
-        }
-        return;
-    }
-
-    protected function loadExtensions()
-    {
-        $all     = Reader::getExtensions();
-        $manager = Reader::getExtensionManager();
-        $feed    = $all['feed'];
-        foreach ($feed as $extension) {
-            if (in_array($extension, $all['core'])) {
-                continue;
-            }
-            $plugin = $manager->get($extension);
-            $plugin->setDomDocument($this->getDomDocument());
-            $plugin->setType($this->data['type']);
-            $plugin->setXpath($this->xpath);
-            $this->extensions[$extension] = $plugin;
-        }
-    }
-
-    /**
-     * Read all entries to the internal entries array
-     *
-     */
-    abstract protected function indexEntries();
-
-    /**
-     * Register the default namespaces for the current feed format
-     *
-     */
-    abstract protected function registerNamespaces();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Collection.php b/core/vendor/zendframework/zend-feed/Reader/Collection.php
deleted file mode 100644
index f50c1bc..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Collection.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-use ArrayObject;
-
-class Collection extends ArrayObject
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Collection/AbstractCollection.php b/core/vendor/zendframework/zend-feed/Reader/Collection/AbstractCollection.php
deleted file mode 100644
index 749ff5c..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Collection/AbstractCollection.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Collection;
-
-use ArrayObject;
-
-abstract class AbstractCollection extends ArrayObject
-{
-    /**
-     * Return a simple array of the most relevant slice of
-     * the collection values. For example, feed categories contain
-     * the category name, domain/URI, and other data. This method would
-     * merely return the most useful data - i.e. the category names.
-     *
-     * @return array
-     */
-    abstract public function getValues();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Collection/Author.php b/core/vendor/zendframework/zend-feed/Reader/Collection/Author.php
deleted file mode 100644
index 82716db..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Collection/Author.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Collection;
-
-class Author extends AbstractCollection
-{
-    /**
-     * Return a simple array of the most relevant slice of
-     * the author values, i.e. all author names.
-     *
-     * @return array
-     */
-    public function getValues()
-    {
-        $authors = array();
-        foreach ($this->getIterator() as $element) {
-            $authors[] = $element['name'];
-        }
-        return array_unique($authors);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Collection/Category.php b/core/vendor/zendframework/zend-feed/Reader/Collection/Category.php
deleted file mode 100644
index 57d0560..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Collection/Category.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Collection;
-
-class Category extends AbstractCollection
-{
-    /**
-     * Return a simple array of the most relevant slice of
-     * the collection values. For example, feed categories contain
-     * the category name, domain/URI, and other data. This method would
-     * merely return the most useful data - i.e. the category names.
-     *
-     * @return array
-     */
-    public function getValues()
-    {
-        $categories = array();
-        foreach ($this->getIterator() as $element) {
-            if (isset($element['label']) && !empty($element['label'])) {
-                $categories[] = $element['label'];
-            } else {
-                $categories[] = $element['term'];
-            }
-        }
-        return array_unique($categories);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Collection/Collection.php b/core/vendor/zendframework/zend-feed/Reader/Collection/Collection.php
deleted file mode 100644
index cf791c2..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Collection/Collection.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Collection;
-
-use ArrayObject;
-
-class Collection extends ArrayObject
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Entry/AbstractEntry.php b/core/vendor/zendframework/zend-feed/Reader/Entry/AbstractEntry.php
deleted file mode 100644
index 7b00687..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Entry/AbstractEntry.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Entry;
-
-use DOMDocument;
-use DOMElement;
-use DOMXPath;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Exception;
-
-abstract class AbstractEntry
-{
-    /**
-     * Feed entry data
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * DOM document object
-     *
-     * @var DOMDocument
-     */
-    protected $domDocument = null;
-
-    /**
-     * Entry instance
-     *
-     * @var DOMElement
-     */
-    protected $entry = null;
-
-    /**
-     * Pointer to the current entry
-     *
-     * @var int
-     */
-    protected $entryKey = 0;
-
-    /**
-     * XPath object
-     *
-     * @var DOMXPath
-     */
-    protected $xpath = null;
-
-    /**
-     * Registered extensions
-     *
-     * @var array
-     */
-    protected $extensions = array();
-
-    /**
-     * Constructor
-     *
-     * @param  DOMElement $entry
-     * @param  int $entryKey
-     * @param  string $type
-     */
-    public function __construct(DOMElement $entry, $entryKey, $type = null)
-    {
-        $this->entry       = $entry;
-        $this->entryKey    = $entryKey;
-        $this->domDocument = $entry->ownerDocument;
-        if ($type !== null) {
-            $this->data['type'] = $type;
-        } elseif ($this->domDocument !== null) {
-            $this->data['type'] = Reader\Reader::detectType($this->domDocument);
-        } else {
-            $this->data['type'] = Reader\Reader::TYPE_ANY;
-        }
-        $this->loadExtensions();
-    }
-
-    /**
-     * Get the DOM
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->domDocument;
-    }
-
-    /**
-     * Get the entry element
-     *
-     * @return DOMElement
-     */
-    public function getElement()
-    {
-        return $this->entry;
-    }
-
-    /**
-     * Get the Entry's encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        $assumed = $this->getDomDocument()->encoding;
-        if (empty($assumed)) {
-            $assumed = 'UTF-8';
-        }
-        return $assumed;
-    }
-
-    /**
-     * Get entry as xml
-     *
-     * @return string
-     */
-    public function saveXml()
-    {
-        $dom   = new DOMDocument('1.0', $this->getEncoding());
-        $deep  = version_compare(PHP_VERSION, '7', 'ge') ? 1 : true;
-        $entry = $dom->importNode($this->getElement(), $deep);
-        $dom->appendChild($entry);
-        return $dom->saveXml();
-    }
-
-    /**
-     * Get the entry type
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        return $this->data['type'];
-    }
-
-    /**
-     * Get the XPath query object
-     *
-     * @return DOMXPath
-     */
-    public function getXpath()
-    {
-        if (!$this->xpath) {
-            $this->setXpath(new DOMXPath($this->getDomDocument()));
-        }
-        return $this->xpath;
-    }
-
-    /**
-     * Set the XPath query
-     *
-     * @param  DOMXPath $xpath
-     * @return AbstractEntry
-     */
-    public function setXpath(DOMXPath $xpath)
-    {
-        $this->xpath = $xpath;
-        return $this;
-    }
-
-    /**
-     * Get registered extensions
-     *
-     * @return array
-     */
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    /**
-     * Return an Extension object with the matching name (postfixed with _Entry)
-     *
-     * @param string $name
-     * @return Reader\Extension\AbstractEntry
-     */
-    public function getExtension($name)
-    {
-        if (array_key_exists($name . '\\Entry', $this->extensions)) {
-            return $this->extensions[$name . '\\Entry'];
-        }
-        return;
-    }
-
-    /**
-     * Method overloading: call given method on first extension implementing it
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Exception\RuntimeException if no extensions implements the method
-     */
-    public function __call($method, $args)
-    {
-        foreach ($this->extensions as $extension) {
-            if (method_exists($extension, $method)) {
-                return call_user_func_array(array($extension, $method), $args);
-            }
-        }
-        throw new Exception\RuntimeException(sprintf(
-            'Method: %s does not exist and could not be located on a registered Extension',
-            $method
-        ));
-    }
-
-    /**
-     * Load extensions from Zend\Feed\Reader\Reader
-     *
-     * @return void
-     */
-    protected function loadExtensions()
-    {
-        $all     = Reader\Reader::getExtensions();
-        $manager = Reader\Reader::getExtensionManager();
-        $feed    = $all['entry'];
-        foreach ($feed as $extension) {
-            if (in_array($extension, $all['core'])) {
-                continue;
-            }
-            $plugin = $manager->get($extension);
-            $plugin->setEntryElement($this->getElement());
-            $plugin->setEntryKey($this->entryKey);
-            $plugin->setType($this->data['type']);
-            $this->extensions[$extension] = $plugin;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Entry/Atom.php b/core/vendor/zendframework/zend-feed/Reader/Entry/Atom.php
deleted file mode 100644
index 543f456..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Entry/Atom.php
+++ /dev/null
@@ -1,370 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Entry;
-
-use DOMElement;
-use DOMXPath;
-use Zend\Feed\Reader;
-
-class Atom extends AbstractEntry implements EntryInterface
-{
-    /**
-     * XPath query
-     *
-     * @var string
-     */
-    protected $xpathQuery = '';
-
-    /**
-     * Constructor
-     *
-     * @param  DOMElement $entry
-     * @param  int $entryKey
-     * @param  string $type
-     */
-    public function __construct(DOMElement $entry, $entryKey, $type = null)
-    {
-        parent::__construct($entry, $entryKey, $type);
-
-        // Everyone by now should know XPath indices start from 1 not 0
-        $this->xpathQuery = '//atom:entry[' . ($this->entryKey + 1) . ']';
-
-        $manager    = Reader\Reader::getExtensionManager();
-        $extensions = array('Atom\Entry', 'Thread\Entry', 'DublinCore\Entry');
-
-        foreach ($extensions as $name) {
-            $extension = $manager->get($name);
-            $extension->setEntryElement($entry);
-            $extension->setEntryKey($entryKey);
-            $extension->setType($type);
-            $this->extensions[$name] = $extension;
-        }
-    }
-
-    /**
-     * Get the specified author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $people = $this->getExtension('Atom')->getAuthors();
-
-        $this->data['authors'] = $people;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the entry content
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        if (array_key_exists('content', $this->data)) {
-            return $this->data['content'];
-        }
-
-        $content = $this->getExtension('Atom')->getContent();
-
-        $this->data['content'] = $content;
-
-        return $this->data['content'];
-    }
-
-    /**
-     * Get the entry creation date
-     *
-     * @return string
-     */
-    public function getDateCreated()
-    {
-        if (array_key_exists('datecreated', $this->data)) {
-            return $this->data['datecreated'];
-        }
-
-        $dateCreated = $this->getExtension('Atom')->getDateCreated();
-
-        $this->data['datecreated'] = $dateCreated;
-
-        return $this->data['datecreated'];
-    }
-
-    /**
-     * Get the entry modification date
-     *
-     * @return string
-     */
-    public function getDateModified()
-    {
-        if (array_key_exists('datemodified', $this->data)) {
-            return $this->data['datemodified'];
-        }
-
-        $dateModified = $this->getExtension('Atom')->getDateModified();
-
-        $this->data['datemodified'] = $dateModified;
-
-        return $this->data['datemodified'];
-    }
-
-    /**
-     * Get the entry description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = $this->getExtension('Atom')->getDescription();
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the entry enclosure
-     *
-     * @return string
-     */
-    public function getEnclosure()
-    {
-        if (array_key_exists('enclosure', $this->data)) {
-            return $this->data['enclosure'];
-        }
-
-        $enclosure = $this->getExtension('Atom')->getEnclosure();
-
-        $this->data['enclosure'] = $enclosure;
-
-        return $this->data['enclosure'];
-    }
-
-    /**
-     * Get the entry ID
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = $this->getExtension('Atom')->getId();
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get a specific link
-     *
-     * @param  int $index
-     * @return string
-     */
-    public function getLink($index = 0)
-    {
-        if (!array_key_exists('links', $this->data)) {
-            $this->getLinks();
-        }
-
-        if (isset($this->data['links'][$index])) {
-            return $this->data['links'][$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get all links
-     *
-     * @return array
-     */
-    public function getLinks()
-    {
-        if (array_key_exists('links', $this->data)) {
-            return $this->data['links'];
-        }
-
-        $links = $this->getExtension('Atom')->getLinks();
-
-        $this->data['links'] = $links;
-
-        return $this->data['links'];
-    }
-
-    /**
-     * Get a permalink to the entry
-     *
-     * @return string
-     */
-    public function getPermalink()
-    {
-        return $this->getLink(0);
-    }
-
-    /**
-     * Get the entry title
-     *
-     * @return string
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = $this->getExtension('Atom')->getTitle();
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     * Get the number of comments/replies for current entry
-     *
-     * @return int
-     */
-    public function getCommentCount()
-    {
-        if (array_key_exists('commentcount', $this->data)) {
-            return $this->data['commentcount'];
-        }
-
-        $commentcount = $this->getExtension('Thread')->getCommentCount();
-
-        if (!$commentcount) {
-            $commentcount = $this->getExtension('Atom')->getCommentCount();
-        }
-
-        $this->data['commentcount'] = $commentcount;
-
-        return $this->data['commentcount'];
-    }
-
-    /**
-     * Returns a URI pointing to the HTML page where comments can be made on this entry
-     *
-     * @return string
-     */
-    public function getCommentLink()
-    {
-        if (array_key_exists('commentlink', $this->data)) {
-            return $this->data['commentlink'];
-        }
-
-        $commentlink = $this->getExtension('Atom')->getCommentLink();
-
-        $this->data['commentlink'] = $commentlink;
-
-        return $this->data['commentlink'];
-    }
-
-    /**
-     * Returns a URI pointing to a feed of all comments for this entry
-     *
-     * @return string
-     */
-    public function getCommentFeedLink()
-    {
-        if (array_key_exists('commentfeedlink', $this->data)) {
-            return $this->data['commentfeedlink'];
-        }
-
-        $commentfeedlink = $this->getExtension('Atom')->getCommentFeedLink();
-
-        $this->data['commentfeedlink'] = $commentfeedlink;
-
-        return $this->data['commentfeedlink'];
-    }
-
-    /**
-     * Get category data as a Reader\Reader_Collection_Category object
-     *
-     * @return Reader\Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        $categoryCollection = $this->getExtension('Atom')->getCategories();
-
-        if (count($categoryCollection) == 0) {
-            $categoryCollection = $this->getExtension('DublinCore')->getCategories();
-        }
-
-        $this->data['categories'] = $categoryCollection;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Get source feed metadata from the entry
-     *
-     * @return Reader\Feed\Atom\Source|null
-     */
-    public function getSource()
-    {
-        if (array_key_exists('source', $this->data)) {
-            return $this->data['source'];
-        }
-
-        $source = $this->getExtension('Atom')->getSource();
-
-        $this->data['source'] = $source;
-
-        return $this->data['source'];
-    }
-
-    /**
-     * Set the XPath query (incl. on all Extensions)
-     *
-     * @param DOMXPath $xpath
-     * @return void
-     */
-    public function setXpath(DOMXPath $xpath)
-    {
-        parent::setXpath($xpath);
-        foreach ($this->extensions as $extension) {
-            $extension->setXpath($this->xpath);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Entry/EntryInterface.php b/core/vendor/zendframework/zend-feed/Reader/Entry/EntryInterface.php
deleted file mode 100644
index c5e5fb2..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Entry/EntryInterface.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Entry;
-
-use Zend\Feed\Reader\Collection\Category;
-
-interface EntryInterface
-{
-    /**
-     * Get the specified author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0);
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors();
-
-    /**
-     * Get the entry content
-     *
-     * @return string
-     */
-    public function getContent();
-
-    /**
-     * Get the entry creation date
-     *
-     * @return string
-     */
-    public function getDateCreated();
-
-    /**
-     * Get the entry modification date
-     *
-     * @return string
-     */
-    public function getDateModified();
-
-    /**
-     * Get the entry description
-     *
-     * @return string
-     */
-    public function getDescription();
-
-    /**
-     * Get the entry enclosure
-     *
-     * @return \stdClass
-     */
-    public function getEnclosure();
-
-    /**
-     * Get the entry ID
-     *
-     * @return string
-     */
-    public function getId();
-
-    /**
-     * Get a specific link
-     *
-     * @param  int $index
-     * @return string
-     */
-    public function getLink($index = 0);
-
-    /**
-     * Get all links
-     *
-     * @return array
-     */
-    public function getLinks();
-
-    /**
-     * Get a permalink to the entry
-     *
-     * @return string
-     */
-    public function getPermalink();
-
-    /**
-     * Get the entry title
-     *
-     * @return string
-     */
-    public function getTitle();
-
-    /**
-     * Get the number of comments/replies for current entry
-     *
-     * @return int
-     */
-    public function getCommentCount();
-
-    /**
-     * Returns a URI pointing to the HTML page where comments can be made on this entry
-     *
-     * @return string
-     */
-    public function getCommentLink();
-
-    /**
-     * Returns a URI pointing to a feed of all comments for this entry
-     *
-     * @return string
-     */
-    public function getCommentFeedLink();
-
-    /**
-     * Get all categories
-     *
-     * @return Category
-     */
-    public function getCategories();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Entry/Rss.php b/core/vendor/zendframework/zend-feed/Reader/Entry/Rss.php
deleted file mode 100644
index 4091904..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Entry/Rss.php
+++ /dev/null
@@ -1,595 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Entry;
-
-use DateTime;
-use DOMElement;
-use DOMXPath;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Exception;
-
-class Rss extends AbstractEntry implements EntryInterface
-{
-    /**
-     * XPath query for RDF
-     *
-     * @var string
-     */
-    protected $xpathQueryRdf = '';
-
-    /**
-     * XPath query for RSS
-     *
-     * @var string
-     */
-    protected $xpathQueryRss = '';
-
-    /**
-     * Constructor
-     *
-     * @param  DOMElement $entry
-     * @param  string $entryKey
-     * @param  string $type
-     */
-    public function __construct(DOMElement $entry, $entryKey, $type = null)
-    {
-        parent::__construct($entry, $entryKey, $type);
-        $this->xpathQueryRss = '//item[' . ($this->entryKey+1) . ']';
-        $this->xpathQueryRdf = '//rss:item[' . ($this->entryKey+1) . ']';
-
-        $manager    = Reader\Reader::getExtensionManager();
-        $extensions = array(
-            'DublinCore\Entry',
-            'Content\Entry',
-            'Atom\Entry',
-            'WellFormedWeb\Entry',
-            'Slash\Entry',
-            'Thread\Entry',
-        );
-        foreach ($extensions as $name) {
-            $extension = $manager->get($name);
-            $extension->setEntryElement($entry);
-            $extension->setEntryKey($entryKey);
-            $extension->setType($type);
-            $this->extensions[$name] = $extension;
-        }
-    }
-
-    /**
-     * Get an author entry
-     *
-     * @param int $index
-     * @return string
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $authors = array();
-        $authorsDc = $this->getExtension('DublinCore')->getAuthors();
-        if (!empty($authorsDc)) {
-            foreach ($authorsDc as $author) {
-                $authors[] = array(
-                    'name' => $author['name']
-                );
-            }
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-        && $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $list = $this->xpath->query($this->xpathQueryRss . '//author');
-        } else {
-            $list = $this->xpath->query($this->xpathQueryRdf . '//rss:author');
-        }
-        if ($list->length) {
-            foreach ($list as $author) {
-                $string = trim($author->nodeValue);
-                $data = array();
-                // Pretty rough parsing - but it's a catchall
-                if (preg_match("/^.*@[^ ]*/", $string, $matches)) {
-                    $data['email'] = trim($matches[0]);
-                    if (preg_match("/\((.*)\)$/", $string, $matches)) {
-                        $data['name'] = $matches[1];
-                    }
-                    $authors[] = $data;
-                }
-            }
-        }
-
-        if (count($authors) == 0) {
-            $authors = $this->getExtension('Atom')->getAuthors();
-        } else {
-            $authors = new Reader\Collection\Author(
-                Reader\Reader::arrayUnique($authors)
-            );
-        }
-
-        if (count($authors) == 0) {
-            $authors = null;
-        }
-
-        $this->data['authors'] = $authors;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the entry content
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        if (array_key_exists('content', $this->data)) {
-            return $this->data['content'];
-        }
-
-        $content = $this->getExtension('Content')->getContent();
-
-        if (!$content) {
-            $content = $this->getDescription();
-        }
-
-        if (empty($content)) {
-            $content = $this->getExtension('Atom')->getContent();
-        }
-
-        $this->data['content'] = $content;
-
-        return $this->data['content'];
-    }
-
-    /**
-     * Get the entry's date of creation
-     *
-     * @return string
-     */
-    public function getDateCreated()
-    {
-        return $this->getDateModified();
-    }
-
-    /**
-     * Get the entry's date of modification
-     *
-     * @throws Exception\RuntimeException
-     * @return string
-     */
-    public function getDateModified()
-    {
-        if (array_key_exists('datemodified', $this->data)) {
-            return $this->data['datemodified'];
-        }
-
-        $date = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $dateModified = $this->xpath->evaluate('string(' . $this->xpathQueryRss . '/pubDate)');
-            if ($dateModified) {
-                $dateModifiedParsed = strtotime($dateModified);
-                if ($dateModifiedParsed) {
-                    $date = new DateTime('@' . $dateModifiedParsed);
-                } else {
-                    $dateStandards = array(DateTime::RSS, DateTime::RFC822,
-                                           DateTime::RFC2822, null);
-                    foreach ($dateStandards as $standard) {
-                        try {
-                            $date = date_create_from_format($standard, $dateModified);
-                            break;
-                        } catch (\Exception $e) {
-                            if ($standard == null) {
-                                throw new Exception\RuntimeException(
-                                    'Could not load date due to unrecognised'
-                                    .' format (should follow RFC 822 or 2822):'
-                                    . $e->getMessage(),
-                                    0, $e
-                                );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!$date) {
-            $date = $this->getExtension('DublinCore')->getDate();
-        }
-
-        if (!$date) {
-            $date = $this->getExtension('Atom')->getDateModified();
-        }
-
-        if (!$date) {
-            $date = null;
-        }
-
-        $this->data['datemodified'] = $date;
-
-        return $this->data['datemodified'];
-    }
-
-    /**
-     * Get the entry description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $description = $this->xpath->evaluate('string(' . $this->xpathQueryRss . '/description)');
-        } else {
-            $description = $this->xpath->evaluate('string(' . $this->xpathQueryRdf . '/rss:description)');
-        }
-
-        if (!$description) {
-            $description = $this->getExtension('DublinCore')->getDescription();
-        }
-
-        if (empty($description)) {
-            $description = $this->getExtension('Atom')->getDescription();
-        }
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the entry enclosure
-     * @return string
-     */
-    public function getEnclosure()
-    {
-        if (array_key_exists('enclosure', $this->data)) {
-            return $this->data['enclosure'];
-        }
-
-        $enclosure = null;
-
-        if ($this->getType() == Reader\Reader::TYPE_RSS_20) {
-            $nodeList = $this->xpath->query($this->xpathQueryRss . '/enclosure');
-
-            if ($nodeList->length > 0) {
-                $enclosure = new \stdClass();
-                $enclosure->url    = $nodeList->item(0)->getAttribute('url');
-                $enclosure->length = $nodeList->item(0)->getAttribute('length');
-                $enclosure->type   = $nodeList->item(0)->getAttribute('type');
-            }
-        }
-
-        if (!$enclosure) {
-            $enclosure = $this->getExtension('Atom')->getEnclosure();
-        }
-
-        $this->data['enclosure'] = $enclosure;
-
-        return $this->data['enclosure'];
-    }
-
-    /**
-     * Get the entry ID
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $id = $this->xpath->evaluate('string(' . $this->xpathQueryRss . '/guid)');
-        }
-
-        if (!$id) {
-            $id = $this->getExtension('DublinCore')->getId();
-        }
-
-        if (empty($id)) {
-            $id = $this->getExtension('Atom')->getId();
-        }
-
-        if (!$id) {
-            if ($this->getPermalink()) {
-                $id = $this->getPermalink();
-            } elseif ($this->getTitle()) {
-                $id = $this->getTitle();
-            } else {
-                $id = null;
-            }
-        }
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get a specific link
-     *
-     * @param  int $index
-     * @return string
-     */
-    public function getLink($index = 0)
-    {
-        if (!array_key_exists('links', $this->data)) {
-            $this->getLinks();
-        }
-
-        if (isset($this->data['links'][$index])) {
-            return $this->data['links'][$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get all links
-     *
-     * @return array
-     */
-    public function getLinks()
-    {
-        if (array_key_exists('links', $this->data)) {
-            return $this->data['links'];
-        }
-
-        $links = array();
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $list = $this->xpath->query($this->xpathQueryRss . '//link');
-        } else {
-            $list = $this->xpath->query($this->xpathQueryRdf . '//rss:link');
-        }
-
-        if (!$list->length) {
-            $links = $this->getExtension('Atom')->getLinks();
-        } else {
-            foreach ($list as $link) {
-                $links[] = $link->nodeValue;
-            }
-        }
-
-        $this->data['links'] = $links;
-
-        return $this->data['links'];
-    }
-
-    /**
-     * Get all categories
-     *
-     * @return Reader\Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $list = $this->xpath->query($this->xpathQueryRss . '//category');
-        } else {
-            $list = $this->xpath->query($this->xpathQueryRdf . '//rss:category');
-        }
-
-        if ($list->length) {
-            $categoryCollection = new Reader\Collection\Category;
-            foreach ($list as $category) {
-                $categoryCollection[] = array(
-                    'term' => $category->nodeValue,
-                    'scheme' => $category->getAttribute('domain'),
-                    'label' => $category->nodeValue,
-                );
-            }
-        } else {
-            $categoryCollection = $this->getExtension('DublinCore')->getCategories();
-        }
-
-        if (count($categoryCollection) == 0) {
-            $categoryCollection = $this->getExtension('Atom')->getCategories();
-        }
-
-        $this->data['categories'] = $categoryCollection;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Get a permalink to the entry
-     *
-     * @return string
-     */
-    public function getPermalink()
-    {
-        return $this->getLink(0);
-    }
-
-    /**
-     * Get the entry title
-     *
-     * @return string
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $title = $this->xpath->evaluate('string(' . $this->xpathQueryRss . '/title)');
-        } else {
-            $title = $this->xpath->evaluate('string(' . $this->xpathQueryRdf . '/rss:title)');
-        }
-
-        if (!$title) {
-            $title = $this->getExtension('DublinCore')->getTitle();
-        }
-
-        if (!$title) {
-            $title = $this->getExtension('Atom')->getTitle();
-        }
-
-        if (!$title) {
-            $title = null;
-        }
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     * Get the number of comments/replies for current entry
-     *
-     * @return string|null
-     */
-    public function getCommentCount()
-    {
-        if (array_key_exists('commentcount', $this->data)) {
-            return $this->data['commentcount'];
-        }
-
-        $commentcount = $this->getExtension('Slash')->getCommentCount();
-
-        if (!$commentcount) {
-            $commentcount = $this->getExtension('Thread')->getCommentCount();
-        }
-
-        if (!$commentcount) {
-            $commentcount = $this->getExtension('Atom')->getCommentCount();
-        }
-
-        if (!$commentcount) {
-            $commentcount = null;
-        }
-
-        $this->data['commentcount'] = $commentcount;
-
-        return $this->data['commentcount'];
-    }
-
-    /**
-     * Returns a URI pointing to the HTML page where comments can be made on this entry
-     *
-     * @return string
-     */
-    public function getCommentLink()
-    {
-        if (array_key_exists('commentlink', $this->data)) {
-            return $this->data['commentlink'];
-        }
-
-        $commentlink = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $commentlink = $this->xpath->evaluate('string(' . $this->xpathQueryRss . '/comments)');
-        }
-
-        if (!$commentlink) {
-            $commentlink = $this->getExtension('Atom')->getCommentLink();
-        }
-
-        if (!$commentlink) {
-            $commentlink = null;
-        }
-
-        $this->data['commentlink'] = $commentlink;
-
-        return $this->data['commentlink'];
-    }
-
-    /**
-     * Returns a URI pointing to a feed of all comments for this entry
-     *
-     * @return string
-     */
-    public function getCommentFeedLink()
-    {
-        if (array_key_exists('commentfeedlink', $this->data)) {
-            return $this->data['commentfeedlink'];
-        }
-
-        $commentfeedlink = $this->getExtension('WellFormedWeb')->getCommentFeedLink();
-
-        if (!$commentfeedlink) {
-            $commentfeedlink = $this->getExtension('Atom')->getCommentFeedLink('rss');
-        }
-
-        if (!$commentfeedlink) {
-            $commentfeedlink = $this->getExtension('Atom')->getCommentFeedLink('rdf');
-        }
-
-        if (!$commentfeedlink) {
-            $commentfeedlink = null;
-        }
-
-        $this->data['commentfeedlink'] = $commentfeedlink;
-
-        return $this->data['commentfeedlink'];
-    }
-
-    /**
-     * Set the XPath query (incl. on all Extensions)
-     *
-     * @param DOMXPath $xpath
-     * @return void
-     */
-    public function setXpath(DOMXPath $xpath)
-    {
-        parent::setXpath($xpath);
-        foreach ($this->extensions as $extension) {
-            $extension->setXpath($this->xpath);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Exception/BadMethodCallException.php b/core/vendor/zendframework/zend-feed/Reader/Exception/BadMethodCallException.php
deleted file mode 100644
index 008c57e..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Exception;
-
-use Zend\Feed\Exception;
-
-class BadMethodCallException extends Exception\BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-feed/Reader/Exception/ExceptionInterface.php
deleted file mode 100644
index e5e664a..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Exception;
-
-use Zend\Feed\Exception\ExceptionInterface as Exception;
-
-interface ExceptionInterface extends Exception
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-feed/Reader/Exception/InvalidArgumentException.php
deleted file mode 100644
index 646b767..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Exception;
-
-use Zend\Feed\Exception;
-
-class InvalidArgumentException extends Exception\InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Exception/RuntimeException.php b/core/vendor/zendframework/zend-feed/Reader/Exception/RuntimeException.php
deleted file mode 100644
index d876e7f..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Exception/RuntimeException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Exception;
-
-use Zend\Feed\Exception;
-
-class RuntimeException extends Exception\RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/AbstractEntry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/AbstractEntry.php
deleted file mode 100644
index 72bd62e..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/AbstractEntry.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension;
-
-use DOMDocument;
-use DOMElement;
-use DOMXPath;
-use Zend\Feed\Reader;
-
-abstract class AbstractEntry
-{
-    /**
-     * Feed entry data
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * DOM document object
-     *
-     * @var DOMDocument
-     */
-    protected $domDocument = null;
-
-    /**
-     * Entry instance
-     *
-     * @var DOMElement
-     */
-    protected $entry = null;
-
-    /**
-     * Pointer to the current entry
-     *
-     * @var int
-     */
-    protected $entryKey = 0;
-
-    /**
-     * XPath object
-     *
-     * @var DOMXPath
-     */
-    protected $xpath = null;
-
-    /**
-     * XPath query
-     *
-     * @var string
-     */
-    protected $xpathPrefix = '';
-
-    /**
-     * Set the entry DOMElement
-     *
-     * Has side effect of setting the DOMDocument for the entry.
-     *
-     * @param  DOMElement $entry
-     * @return AbstractEntry
-     */
-    public function setEntryElement(DOMElement $entry)
-    {
-        $this->entry = $entry;
-        $this->domDocument = $entry->ownerDocument;
-        return $this;
-    }
-
-    /**
-     * Get the entry DOMElement
-     *
-     * @return DOMElement
-     */
-    public function getEntryElement()
-    {
-        return $this->entry;
-    }
-
-    /**
-     * Set the entry key
-     *
-     * @param  string $entryKey
-     * @return AbstractEntry
-     */
-    public function setEntryKey($entryKey)
-    {
-        $this->entryKey = $entryKey;
-        return $this;
-    }
-
-    /**
-     * Get the DOM
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->domDocument;
-    }
-
-    /**
-     * Get the Entry's encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        $assumed = $this->getDomDocument()->encoding;
-        return $assumed;
-    }
-
-    /**
-     * Set the entry type
-     *
-     * Has side effect of setting xpath prefix
-     *
-     * @param  string $type
-     * @return AbstractEntry
-     */
-    public function setType($type)
-    {
-        if (null === $type) {
-            $this->data['type'] = null;
-            return $this;
-        }
-
-        $this->data['type'] = $type;
-        if ($type === Reader\Reader::TYPE_RSS_10
-            || $type === Reader\Reader::TYPE_RSS_090
-        ) {
-            $this->setXpathPrefix('//rss:item[' . ($this->entryKey + 1) . ']');
-            return $this;
-        }
-
-        if ($type === Reader\Reader::TYPE_ATOM_10
-            || $type === Reader\Reader::TYPE_ATOM_03
-        ) {
-            $this->setXpathPrefix('//atom:entry[' . ($this->entryKey + 1) . ']');
-            return $this;
-        }
-
-        $this->setXpathPrefix('//item[' . ($this->entryKey + 1) . ']');
-        return $this;
-    }
-
-    /**
-     * Get the entry type
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        $type = $this->data['type'];
-        if ($type === null) {
-            $type = Reader\Reader::detectType($this->getEntryElement(), true);
-            $this->setType($type);
-        }
-
-        return $type;
-    }
-
-    /**
-     * Set the XPath query
-     *
-     * @param  DOMXPath $xpath
-     * @return AbstractEntry
-     */
-    public function setXpath(DOMXPath $xpath)
-    {
-        $this->xpath = $xpath;
-        $this->registerNamespaces();
-        return $this;
-    }
-
-    /**
-     * Get the XPath query object
-     *
-     * @return DOMXPath
-     */
-    public function getXpath()
-    {
-        if (!$this->xpath) {
-            $this->setXpath(new DOMXPath($this->getDomDocument()));
-        }
-        return $this->xpath;
-    }
-
-    /**
-     * Serialize the entry to an array
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        return $this->data;
-    }
-
-    /**
-     * Get the XPath prefix
-     *
-     * @return string
-     */
-    public function getXpathPrefix()
-    {
-        return $this->xpathPrefix;
-    }
-
-    /**
-     * Set the XPath prefix
-     *
-     * @param  string $prefix
-     * @return AbstractEntry
-     */
-    public function setXpathPrefix($prefix)
-    {
-        $this->xpathPrefix = $prefix;
-        return $this;
-    }
-
-    /**
-     * Register XML namespaces
-     *
-     * @return void
-     */
-    abstract protected function registerNamespaces();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/AbstractFeed.php b/core/vendor/zendframework/zend-feed/Reader/Extension/AbstractFeed.php
deleted file mode 100644
index 94acea6..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/AbstractFeed.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension;
-
-use DOMDocument;
-use DOMXPath;
-use Zend\Feed\Reader;
-
-abstract class AbstractFeed
-{
-    /**
-     * Parsed feed data
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Parsed feed data in the shape of a DOMDocument
-     *
-     * @var DOMDocument
-     */
-    protected $domDocument = null;
-
-    /**
-     * The base XPath query used to retrieve feed data
-     *
-     * @var DOMXPath
-     */
-    protected $xpath = null;
-
-    /**
-     * The XPath prefix
-     *
-     * @var string
-     */
-    protected $xpathPrefix = '';
-
-    /**
-     * Set the DOM document
-     *
-     * @param  DOMDocument $dom
-     * @return AbstractFeed
-     */
-    public function setDomDocument(DOMDocument $dom)
-    {
-        $this->domDocument = $dom;
-        return $this;
-    }
-
-    /**
-     * Get the DOM
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->domDocument;
-    }
-
-    /**
-     * Get the Feed's encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        $assumed = $this->getDomDocument()->encoding;
-        return $assumed;
-    }
-
-    /**
-     * Set the feed type
-     *
-     * @param  string $type
-     * @return AbstractFeed
-     */
-    public function setType($type)
-    {
-        $this->data['type'] = $type;
-        return $this;
-    }
-
-    /**
-     * Get the feed type
-     *
-     * If null, it will attempt to autodetect the type.
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        $type = $this->data['type'];
-        if (null === $type) {
-            $type = Reader\Reader::detectType($this->getDomDocument());
-            $this->setType($type);
-        }
-        return $type;
-    }
-
-    /**
-     * Return the feed as an array
-     *
-     * @return array
-     */
-    public function toArray() // untested
-    {
-        return $this->data;
-    }
-
-    /**
-     * Set the XPath query
-     *
-     * @param  DOMXPath $xpath
-     * @return AbstractEntry
-     */
-    public function setXpath(DOMXPath $xpath = null)
-    {
-        if (null === $xpath) {
-            $this->xpath = null;
-            return $this;
-        }
-
-        $this->xpath = $xpath;
-        $this->registerNamespaces();
-        return $this;
-    }
-
-    /**
-     * Get the DOMXPath object
-     *
-     * @return string
-     */
-    public function getXpath()
-    {
-        if (null === $this->xpath) {
-            $this->setXpath(new DOMXPath($this->getDomDocument()));
-        }
-
-        return $this->xpath;
-    }
-
-    /**
-     * Get the XPath prefix
-     *
-     * @return string
-     */
-    public function getXpathPrefix()
-    {
-        return $this->xpathPrefix;
-    }
-
-    /**
-     * Set the XPath prefix
-     *
-     * @param string $prefix
-     * @return void
-     */
-    public function setXpathPrefix($prefix)
-    {
-        $this->xpathPrefix = $prefix;
-    }
-
-    /**
-     * Register the default namespaces for the current feed format
-     */
-    abstract protected function registerNamespaces();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Atom/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Atom/Entry.php
deleted file mode 100644
index 06e94a2..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Atom/Entry.php
+++ /dev/null
@@ -1,634 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Atom;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use stdClass;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Collection;
-use Zend\Feed\Reader\Extension;
-use Zend\Feed\Uri;
-
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get the specified author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return Collection\Author
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $authors = array();
-        $list = $this->getXpath()->query($this->getXpathPrefix() . '//atom:author');
-
-        if (!$list->length) {
-            /**
-             * TODO: Limit query to feed level els only!
-             */
-            $list = $this->getXpath()->query('//atom:author');
-        }
-
-        if ($list->length) {
-            foreach ($list as $author) {
-                $author = $this->getAuthorFromElement($author);
-                if (!empty($author)) {
-                    $authors[] = $author;
-                }
-            }
-        }
-
-        if (count($authors) == 0) {
-            $authors = new Collection\Author();
-        } else {
-            $authors = new Collection\Author(
-                Reader\Reader::arrayUnique($authors)
-            );
-        }
-
-        $this->data['authors'] = $authors;
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the entry content
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        if (array_key_exists('content', $this->data)) {
-            return $this->data['content'];
-        }
-
-        $content = null;
-
-        $el = $this->getXpath()->query($this->getXpathPrefix() . '/atom:content');
-        if ($el->length > 0) {
-            $el = $el->item(0);
-            $type = $el->getAttribute('type');
-            switch ($type) {
-                case '':
-                case 'text':
-                case 'text/plain':
-                case 'html':
-                case 'text/html':
-                    $content = $el->nodeValue;
-                    break;
-                case 'xhtml':
-                    $this->getXpath()->registerNamespace('xhtml', 'http://www.w3.org/1999/xhtml');
-                    $xhtml = $this->getXpath()->query(
-                        $this->getXpathPrefix() . '/atom:content/xhtml:div'
-                    )->item(0);
-                    $d = new DOMDocument('1.0', $this->getEncoding());
-                    $deep = version_compare(PHP_VERSION, '7', 'ge') ? 1 : true;
-                    $xhtmls = $d->importNode($xhtml, $deep);
-                    $d->appendChild($xhtmls);
-                    $content = $this->collectXhtml(
-                        $d->saveXML(),
-                        $d->lookupPrefix('http://www.w3.org/1999/xhtml')
-                    );
-                    break;
-            }
-        }
-
-        if (!$content) {
-            $content = $this->getDescription();
-        }
-
-        $this->data['content'] = trim($content);
-
-        return $this->data['content'];
-    }
-
-    /**
-     * Parse out XHTML to remove the namespacing
-     *
-     * @param $xhtml
-     * @param $prefix
-     * @return mixed
-     */
-    protected function collectXhtml($xhtml, $prefix)
-    {
-        if (!empty($prefix)) {
-            $prefix = $prefix . ':';
-        }
-        $matches = array(
-            "/<\?xml[^<]*>[^<]*<" . $prefix . "div[^<]*/",
-            "/<\/" . $prefix . "div>\s*$/"
-        );
-        $xhtml = preg_replace($matches, '', $xhtml);
-        if (!empty($prefix)) {
-            $xhtml = preg_replace("/(<[\/]?)" . $prefix . "([a-zA-Z]+)/", '$1$2', $xhtml);
-        }
-        return $xhtml;
-    }
-
-    /**
-     * Get the entry creation date
-     *
-     * @return string
-     */
-    public function getDateCreated()
-    {
-        if (array_key_exists('datecreated', $this->data)) {
-            return $this->data['datecreated'];
-        }
-
-        $date = null;
-
-        if ($this->getAtomType() === Reader\Reader::TYPE_ATOM_03) {
-            $dateCreated = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:created)');
-        } else {
-            $dateCreated = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:published)');
-        }
-
-        if ($dateCreated) {
-            $date = new DateTime($dateCreated);
-        }
-
-        $this->data['datecreated'] = $date;
-
-        return $this->data['datecreated'];
-    }
-
-    /**
-     * Get the entry modification date
-     *
-     * @return string
-     */
-    public function getDateModified()
-    {
-        if (array_key_exists('datemodified', $this->data)) {
-            return $this->data['datemodified'];
-        }
-
-        $date = null;
-
-        if ($this->getAtomType() === Reader\Reader::TYPE_ATOM_03) {
-            $dateModified = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:modified)');
-        } else {
-            $dateModified = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:updated)');
-        }
-
-        if ($dateModified) {
-            $date = new DateTime($dateModified);
-        }
-
-        $this->data['datemodified'] = $date;
-
-        return $this->data['datemodified'];
-    }
-
-    /**
-     * Get the entry description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:summary)');
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the entry enclosure
-     *
-     * @return string
-     */
-    public function getEnclosure()
-    {
-        if (array_key_exists('enclosure', $this->data)) {
-            return $this->data['enclosure'];
-        }
-
-        $enclosure = null;
-
-        $nodeList = $this->getXpath()->query($this->getXpathPrefix() . '/atom:link[@rel="enclosure"]');
-
-        if ($nodeList->length > 0) {
-            $enclosure         = new stdClass();
-            $enclosure->url    = $nodeList->item(0)->getAttribute('href');
-            $enclosure->length = $nodeList->item(0)->getAttribute('length');
-            $enclosure->type   = $nodeList->item(0)->getAttribute('type');
-        }
-
-        $this->data['enclosure'] = $enclosure;
-
-        return $this->data['enclosure'];
-    }
-
-    /**
-     * Get the entry ID
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:id)');
-
-        if (!$id) {
-            if ($this->getPermalink()) {
-                $id = $this->getPermalink();
-            } elseif ($this->getTitle()) {
-                $id = $this->getTitle();
-            } else {
-                $id = null;
-            }
-        }
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the base URI of the feed (if set).
-     *
-     * @return string|null
-     */
-    public function getBaseUrl()
-    {
-        if (array_key_exists('baseUrl', $this->data)) {
-            return $this->data['baseUrl'];
-        }
-
-        $baseUrl = $this->getXpath()->evaluate(
-            'string('
-            . $this->getXpathPrefix()
-            . '/@xml:base[1]'
-            . ')'
-        );
-
-        if (!$baseUrl) {
-            $baseUrl = $this->getXpath()->evaluate('string(//@xml:base[1])');
-        }
-
-        if (!$baseUrl) {
-            $baseUrl = null;
-        }
-
-        $this->data['baseUrl'] = $baseUrl;
-
-        return $this->data['baseUrl'];
-    }
-
-    /**
-     * Get a specific link
-     *
-     * @param  int $index
-     * @return string
-     */
-    public function getLink($index = 0)
-    {
-        if (!array_key_exists('links', $this->data)) {
-            $this->getLinks();
-        }
-
-        if (isset($this->data['links'][$index])) {
-            return $this->data['links'][$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get all links
-     *
-     * @return array
-     */
-    public function getLinks()
-    {
-        if (array_key_exists('links', $this->data)) {
-            return $this->data['links'];
-        }
-
-        $links = array();
-
-        $list = $this->getXpath()->query(
-            $this->getXpathPrefix() . '//atom:link[@rel="alternate"]/@href' . '|' .
-            $this->getXpathPrefix() . '//atom:link[not(@rel)]/@href'
-        );
-
-        if ($list->length) {
-            foreach ($list as $link) {
-                $links[] = $this->absolutiseUri($link->value);
-            }
-        }
-
-        $this->data['links'] = $links;
-
-        return $this->data['links'];
-    }
-
-    /**
-     * Get a permalink to the entry
-     *
-     * @return string
-     */
-    public function getPermalink()
-    {
-        return $this->getLink(0);
-    }
-
-    /**
-     * Get the entry title
-     *
-     * @return string
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/atom:title)');
-
-        if (!$title) {
-            $title = null;
-        }
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     * Get the number of comments/replies for current entry
-     *
-     * @return int
-     */
-    public function getCommentCount()
-    {
-        if (array_key_exists('commentcount', $this->data)) {
-            return $this->data['commentcount'];
-        }
-
-        $count = null;
-
-        $this->getXpath()->registerNamespace('thread10', 'http://purl.org/syndication/thread/1.0');
-        $list = $this->getXpath()->query(
-            $this->getXpathPrefix() . '//atom:link[@rel="replies"]/@thread10:count'
-        );
-
-        if ($list->length) {
-            $count = $list->item(0)->value;
-        }
-
-        $this->data['commentcount'] = $count;
-
-        return $this->data['commentcount'];
-    }
-
-    /**
-     * Returns a URI pointing to the HTML page where comments can be made on this entry
-     *
-     * @return string
-     */
-    public function getCommentLink()
-    {
-        if (array_key_exists('commentlink', $this->data)) {
-            return $this->data['commentlink'];
-        }
-
-        $link = null;
-
-        $list = $this->getXpath()->query(
-            $this->getXpathPrefix() . '//atom:link[@rel="replies" and @type="text/html"]/@href'
-        );
-
-        if ($list->length) {
-            $link = $list->item(0)->value;
-            $link = $this->absolutiseUri($link);
-        }
-
-        $this->data['commentlink'] = $link;
-
-        return $this->data['commentlink'];
-    }
-
-    /**
-     * Returns a URI pointing to a feed of all comments for this entry
-     *
-     * @param string $type
-     * @return string
-     */
-    public function getCommentFeedLink($type = 'atom')
-    {
-        if (array_key_exists('commentfeedlink', $this->data)) {
-            return $this->data['commentfeedlink'];
-        }
-
-        $link = null;
-
-        $list = $this->getXpath()->query(
-            $this->getXpathPrefix() . '//atom:link[@rel="replies" and @type="application/' . $type.'+xml"]/@href'
-        );
-
-        if ($list->length) {
-            $link = $list->item(0)->value;
-            $link = $this->absolutiseUri($link);
-        }
-
-        $this->data['commentfeedlink'] = $link;
-
-        return $this->data['commentfeedlink'];
-    }
-
-    /**
-     * Get all categories
-     *
-     * @return Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        if ($this->getAtomType() == Reader\Reader::TYPE_ATOM_10) {
-            $list = $this->getXpath()->query($this->getXpathPrefix() . '//atom:category');
-        } else {
-            /**
-             * Since Atom 0.3 did not support categories, it would have used the
-             * Dublin Core extension. However there is a small possibility Atom 0.3
-             * may have been retrofitted to use Atom 1.0 instead.
-             */
-            $this->getXpath()->registerNamespace('atom10', Reader\Reader::NAMESPACE_ATOM_10);
-            $list = $this->getXpath()->query($this->getXpathPrefix() . '//atom10:category');
-        }
-
-        if ($list->length) {
-            $categoryCollection = new Collection\Category;
-            foreach ($list as $category) {
-                $categoryCollection[] = array(
-                    'term' => $category->getAttribute('term'),
-                    'scheme' => $category->getAttribute('scheme'),
-                    'label' => $category->getAttribute('label')
-                );
-            }
-        } else {
-            return new Collection\Category;
-        }
-
-        $this->data['categories'] = $categoryCollection;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Get source feed metadata from the entry
-     *
-     * @return Reader\Feed\Atom\Source|null
-     */
-    public function getSource()
-    {
-        if (array_key_exists('source', $this->data)) {
-            return $this->data['source'];
-        }
-
-        $source = null;
-        // TODO: Investigate why _getAtomType() fails here. Is it even needed?
-        if ($this->getType() == Reader\Reader::TYPE_ATOM_10) {
-            $list = $this->getXpath()->query($this->getXpathPrefix() . '/atom:source[1]');
-            if ($list->length) {
-                $element = $list->item(0);
-                $source = new Reader\Feed\Atom\Source($element, $this->getXpathPrefix());
-            }
-        }
-
-        $this->data['source'] = $source;
-        return $this->data['source'];
-    }
-
-    /**
-     *  Attempt to absolutise the URI, i.e. if a relative URI apply the
-     *  xml:base value as a prefix to turn into an absolute URI.
-     *
-     * @param $link
-     * @return string
-     */
-    protected function absolutiseUri($link)
-    {
-        if (!Uri::factory($link)->isAbsolute()) {
-            if ($this->getBaseUrl() !== null) {
-                $link = $this->getBaseUrl() . $link;
-                if (!Uri::factory($link)->isValid()) {
-                    $link = null;
-                }
-            }
-        }
-        return $link;
-    }
-
-    /**
-     * Get an author entry
-     *
-     * @param DOMElement $element
-     * @return string
-     */
-    protected function getAuthorFromElement(DOMElement $element)
-    {
-        $author = array();
-
-        $emailNode = $element->getElementsByTagName('email');
-        $nameNode  = $element->getElementsByTagName('name');
-        $uriNode   = $element->getElementsByTagName('uri');
-
-        if ($emailNode->length && strlen($emailNode->item(0)->nodeValue) > 0) {
-            $author['email'] = $emailNode->item(0)->nodeValue;
-        }
-
-        if ($nameNode->length && strlen($nameNode->item(0)->nodeValue) > 0) {
-            $author['name'] = $nameNode->item(0)->nodeValue;
-        }
-
-        if ($uriNode->length && strlen($uriNode->item(0)->nodeValue) > 0) {
-            $author['uri'] = $uriNode->item(0)->nodeValue;
-        }
-
-        if (empty($author)) {
-            return;
-        }
-        return $author;
-    }
-
-    /**
-     * Register the default namespaces for the current feed format
-     */
-    protected function registerNamespaces()
-    {
-        switch ($this->getAtomType()) {
-            case Reader\Reader::TYPE_ATOM_03:
-                $this->getXpath()->registerNamespace('atom', Reader\Reader::NAMESPACE_ATOM_03);
-                break;
-            default:
-                $this->getXpath()->registerNamespace('atom', Reader\Reader::NAMESPACE_ATOM_10);
-                break;
-        }
-    }
-
-    /**
-     * Detect the presence of any Atom namespaces in use
-     *
-     * @return string
-     */
-    protected function getAtomType()
-    {
-        $dom = $this->getDomDocument();
-        $prefixAtom03 = $dom->lookupPrefix(Reader\Reader::NAMESPACE_ATOM_03);
-        $prefixAtom10 = $dom->lookupPrefix(Reader\Reader::NAMESPACE_ATOM_10);
-        if ($dom->isDefaultNamespace(Reader\Reader::NAMESPACE_ATOM_03)
-        || !empty($prefixAtom03)) {
-            return Reader\Reader::TYPE_ATOM_03;
-        }
-        if ($dom->isDefaultNamespace(Reader\Reader::NAMESPACE_ATOM_10)
-        || !empty($prefixAtom10)) {
-            return Reader\Reader::TYPE_ATOM_10;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Atom/Feed.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Atom/Feed.php
deleted file mode 100644
index 19dbf5a..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Atom/Feed.php
+++ /dev/null
@@ -1,536 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Atom;
-
-use DateTime;
-use DOMElement;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Collection;
-use Zend\Feed\Reader\Extension;
-use Zend\Feed\Uri;
-
-class Feed extends Extension\AbstractFeed
-{
-    /**
-     * Get a single author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return Collection\Author
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $list = $this->xpath->query('//atom:author');
-
-        $authors = array();
-
-        if ($list->length) {
-            foreach ($list as $author) {
-                $author = $this->getAuthorFromElement($author);
-                if (!empty($author)) {
-                    $authors[] = $author;
-                }
-            }
-        }
-
-        if (count($authors) == 0) {
-            $authors = new Collection\Author();
-        } else {
-            $authors = new Collection\Author(
-                Reader\Reader::arrayUnique($authors)
-            );
-        }
-
-        $this->data['authors'] = $authors;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the copyright entry
-     *
-     * @return string|null
-     */
-    public function getCopyright()
-    {
-        if (array_key_exists('copyright', $this->data)) {
-            return $this->data['copyright'];
-        }
-
-        $copyright = null;
-
-        if ($this->getType() === Reader\Reader::TYPE_ATOM_03) {
-            $copyright = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:copyright)');
-        } else {
-            $copyright = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:rights)');
-        }
-
-        if (!$copyright) {
-            $copyright = null;
-        }
-
-        $this->data['copyright'] = $copyright;
-
-        return $this->data['copyright'];
-    }
-
-    /**
-     * Get the feed creation date
-     *
-     * @return DateTime|null
-     */
-    public function getDateCreated()
-    {
-        if (array_key_exists('datecreated', $this->data)) {
-            return $this->data['datecreated'];
-        }
-
-        $date = null;
-
-        if ($this->getType() === Reader\Reader::TYPE_ATOM_03) {
-            $dateCreated = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:created)');
-        } else {
-            $dateCreated = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:published)');
-        }
-
-        if ($dateCreated) {
-            $date = new DateTime($dateCreated);
-        }
-
-        $this->data['datecreated'] = $date;
-
-        return $this->data['datecreated'];
-    }
-
-    /**
-     * Get the feed modification date
-     *
-     * @return DateTime|null
-     */
-    public function getDateModified()
-    {
-        if (array_key_exists('datemodified', $this->data)) {
-            return $this->data['datemodified'];
-        }
-
-        $date = null;
-
-        if ($this->getType() === Reader\Reader::TYPE_ATOM_03) {
-            $dateModified = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:modified)');
-        } else {
-            $dateModified = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:updated)');
-        }
-
-        if ($dateModified) {
-            $date = new DateTime($dateModified);
-        }
-
-        $this->data['datemodified'] = $date;
-
-        return $this->data['datemodified'];
-    }
-
-    /**
-     * Get the feed description
-     *
-     * @return string|null
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = null;
-
-        if ($this->getType() === Reader\Reader::TYPE_ATOM_03) {
-            $description = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:tagline)');
-        } else {
-            $description = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:subtitle)');
-        }
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the feed generator entry
-     *
-     * @return string|null
-     */
-    public function getGenerator()
-    {
-        if (array_key_exists('generator', $this->data)) {
-            return $this->data['generator'];
-        }
-        // TODO: Add uri support
-        $generator = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:generator)');
-
-        if (!$generator) {
-            $generator = null;
-        }
-
-        $this->data['generator'] = $generator;
-
-        return $this->data['generator'];
-    }
-
-    /**
-     * Get the feed ID
-     *
-     * @return string|null
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:id)');
-
-        if (!$id) {
-            if ($this->getLink()) {
-                $id = $this->getLink();
-            } elseif ($this->getTitle()) {
-                $id = $this->getTitle();
-            } else {
-                $id = null;
-            }
-        }
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the feed language
-     *
-     * @return string|null
-     */
-    public function getLanguage()
-    {
-        if (array_key_exists('language', $this->data)) {
-            return $this->data['language'];
-        }
-
-        $language = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:lang)');
-
-        if (!$language) {
-            $language = $this->xpath->evaluate('string(//@xml:lang[1])');
-        }
-
-        if (!$language) {
-            $language = null;
-        }
-
-        $this->data['language'] = $language;
-
-        return $this->data['language'];
-    }
-
-    /**
-     * Get the feed image
-     *
-     * @return array|null
-     */
-    public function getImage()
-    {
-        if (array_key_exists('image', $this->data)) {
-            return $this->data['image'];
-        }
-
-        $imageUrl = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:logo)');
-
-        if (!$imageUrl) {
-            $image = null;
-        } else {
-            $image = array('uri' => $imageUrl);
-        }
-
-        $this->data['image'] = $image;
-
-        return $this->data['image'];
-    }
-
-    /**
-     * Get the base URI of the feed (if set).
-     *
-     * @return string|null
-     */
-    public function getBaseUrl()
-    {
-        if (array_key_exists('baseUrl', $this->data)) {
-            return $this->data['baseUrl'];
-        }
-
-        $baseUrl = $this->xpath->evaluate('string(//@xml:base[1])');
-
-        if (!$baseUrl) {
-            $baseUrl = null;
-        }
-        $this->data['baseUrl'] = $baseUrl;
-
-        return $this->data['baseUrl'];
-    }
-
-    /**
-     * Get a link to the source website
-     *
-     * @return string|null
-     */
-    public function getLink()
-    {
-        if (array_key_exists('link', $this->data)) {
-            return $this->data['link'];
-        }
-
-        $link = null;
-
-        $list = $this->xpath->query(
-            $this->getXpathPrefix() . '/atom:link[@rel="alternate"]/@href' . '|' .
-            $this->getXpathPrefix() . '/atom:link[not(@rel)]/@href'
-        );
-
-        if ($list->length) {
-            $link = $list->item(0)->nodeValue;
-            $link = $this->absolutiseUri($link);
-        }
-
-        $this->data['link'] = $link;
-
-        return $this->data['link'];
-    }
-
-    /**
-     * Get a link to the feed's XML Url
-     *
-     * @return string|null
-     */
-    public function getFeedLink()
-    {
-        if (array_key_exists('feedlink', $this->data)) {
-            return $this->data['feedlink'];
-        }
-
-        $link = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:link[@rel="self"]/@href)');
-
-        $link = $this->absolutiseUri($link);
-
-        $this->data['feedlink'] = $link;
-
-        return $this->data['feedlink'];
-    }
-
-    /**
-     * Get an array of any supported Pusubhubbub endpoints
-     *
-     * @return array|null
-     */
-    public function getHubs()
-    {
-        if (array_key_exists('hubs', $this->data)) {
-            return $this->data['hubs'];
-        }
-        $hubs = array();
-
-        $list = $this->xpath->query($this->getXpathPrefix()
-            . '//atom:link[@rel="hub"]/@href');
-
-        if ($list->length) {
-            foreach ($list as $uri) {
-                $hubs[] = $this->absolutiseUri($uri->nodeValue);
-            }
-        } else {
-            $hubs = null;
-        }
-
-        $this->data['hubs'] = $hubs;
-
-        return $this->data['hubs'];
-    }
-
-    /**
-     * Get the feed title
-     *
-     * @return string|null
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/atom:title)');
-
-        if (!$title) {
-            $title = null;
-        }
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     * Get all categories
-     *
-     * @return Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        if ($this->getType() == Reader\Reader::TYPE_ATOM_10) {
-            $list = $this->xpath->query($this->getXpathPrefix() . '/atom:category');
-        } else {
-            /**
-             * Since Atom 0.3 did not support categories, it would have used the
-             * Dublin Core extension. However there is a small possibility Atom 0.3
-             * may have been retrofittied to use Atom 1.0 instead.
-             */
-            $this->xpath->registerNamespace('atom10', Reader\Reader::NAMESPACE_ATOM_10);
-            $list = $this->xpath->query($this->getXpathPrefix() . '/atom10:category');
-        }
-
-        if ($list->length) {
-            $categoryCollection = new Collection\Category;
-            foreach ($list as $category) {
-                $categoryCollection[] = array(
-                    'term' => $category->getAttribute('term'),
-                    'scheme' => $category->getAttribute('scheme'),
-                    'label' => $category->getAttribute('label')
-                );
-            }
-        } else {
-            return new Collection\Category;
-        }
-
-        $this->data['categories'] = $categoryCollection;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Get an author entry in RSS format
-     *
-     * @param  DOMElement $element
-     * @return string
-     */
-    protected function getAuthorFromElement(DOMElement $element)
-    {
-        $author = array();
-
-        $emailNode = $element->getElementsByTagName('email');
-        $nameNode  = $element->getElementsByTagName('name');
-        $uriNode   = $element->getElementsByTagName('uri');
-
-        if ($emailNode->length && strlen($emailNode->item(0)->nodeValue) > 0) {
-            $author['email'] = $emailNode->item(0)->nodeValue;
-        }
-
-        if ($nameNode->length && strlen($nameNode->item(0)->nodeValue) > 0) {
-            $author['name'] = $nameNode->item(0)->nodeValue;
-        }
-
-        if ($uriNode->length && strlen($uriNode->item(0)->nodeValue) > 0) {
-            $author['uri'] = $uriNode->item(0)->nodeValue;
-        }
-
-        if (empty($author)) {
-            return;
-        }
-        return $author;
-    }
-
-    /**
-     *  Attempt to absolutise the URI, i.e. if a relative URI apply the
-     *  xml:base value as a prefix to turn into an absolute URI.
-     */
-    protected function absolutiseUri($link)
-    {
-        if (!Uri::factory($link)->isAbsolute()) {
-            if ($this->getBaseUrl() !== null) {
-                $link = $this->getBaseUrl() . $link;
-                if (!Uri::factory($link)->isValid()) {
-                    $link = null;
-                }
-            }
-        }
-        return $link;
-    }
-
-    /**
-     * Register the default namespaces for the current feed format
-     */
-    protected function registerNamespaces()
-    {
-        if ($this->getType() == Reader\Reader::TYPE_ATOM_10
-            || $this->getType() == Reader\Reader::TYPE_ATOM_03
-        ) {
-            return; // pre-registered at Feed level
-        }
-        $atomDetected = $this->getAtomType();
-        switch ($atomDetected) {
-            case Reader\Reader::TYPE_ATOM_03:
-                $this->xpath->registerNamespace('atom', Reader\Reader::NAMESPACE_ATOM_03);
-                break;
-            default:
-                $this->xpath->registerNamespace('atom', Reader\Reader::NAMESPACE_ATOM_10);
-                break;
-        }
-    }
-
-    /**
-     * Detect the presence of any Atom namespaces in use
-     */
-    protected function getAtomType()
-    {
-        $dom = $this->getDomDocument();
-        $prefixAtom03 = $dom->lookupPrefix(Reader\Reader::NAMESPACE_ATOM_03);
-        $prefixAtom10 = $dom->lookupPrefix(Reader\Reader::NAMESPACE_ATOM_10);
-        if ($dom->isDefaultNamespace(Reader\Reader::NAMESPACE_ATOM_10)
-            || !empty($prefixAtom10)
-        ) {
-            return Reader\Reader::TYPE_ATOM_10;
-        }
-        if ($dom->isDefaultNamespace(Reader\Reader::NAMESPACE_ATOM_03)
-            || !empty($prefixAtom03)
-        ) {
-            return Reader\Reader::TYPE_ATOM_03;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Content/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Content/Entry.php
deleted file mode 100644
index 539848f..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Content/Entry.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Content;
-
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Extension;
-
-class Entry extends Extension\AbstractEntry
-{
-    public function getContent()
-    {
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $content = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/content:encoded)');
-        } else {
-            $content = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/content:encoded)');
-        }
-        return $content;
-    }
-
-    /**
-     * Register RSS Content Module namespace
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('content', 'http://purl.org/rss/1.0/modules/content/');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/CreativeCommons/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/CreativeCommons/Entry.php
deleted file mode 100644
index 9194682..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/CreativeCommons/Entry.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\CreativeCommons;
-
-use Zend\Feed\Reader\Extension;
-
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get the entry license
-     *
-     * @param int $index
-     * @return string|null
-     */
-    public function getLicense($index = 0)
-    {
-        $licenses = $this->getLicenses();
-
-        if (isset($licenses[$index])) {
-            return $licenses[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get the entry licenses
-     *
-     * @return array
-     */
-    public function getLicenses()
-    {
-        $name = 'licenses';
-        if (array_key_exists($name, $this->data)) {
-            return $this->data[$name];
-        }
-
-        $licenses = array();
-        $list = $this->xpath->evaluate($this->getXpathPrefix() . '//cc:license');
-
-        if ($list->length) {
-            foreach ($list as $license) {
-                $licenses[] = $license->nodeValue;
-            }
-
-            $licenses = array_unique($licenses);
-        } else {
-            $cc = new Feed();
-            $licenses = $cc->getLicenses();
-        }
-
-        $this->data[$name] = $licenses;
-
-        return $this->data[$name];
-    }
-
-    /**
-     * Register Creative Commons namespaces
-     *
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('cc', 'http://backend.userland.com/creativeCommonsRssModule');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/CreativeCommons/Feed.php b/core/vendor/zendframework/zend-feed/Reader/Extension/CreativeCommons/Feed.php
deleted file mode 100644
index c833bbd..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/CreativeCommons/Feed.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\CreativeCommons;
-
-use Zend\Feed\Reader\Extension;
-
-class Feed extends Extension\AbstractFeed
-{
-    /**
-     * Get the entry license
-     *
-     * @param int $index
-     * @return string|null
-     */
-    public function getLicense($index = 0)
-    {
-        $licenses = $this->getLicenses();
-
-        if (isset($licenses[$index])) {
-            return $licenses[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get the entry licenses
-     *
-     * @return array
-     */
-    public function getLicenses()
-    {
-        $name = 'licenses';
-        if (array_key_exists($name, $this->data)) {
-            return $this->data[$name];
-        }
-
-        $licenses = array();
-        $list = $this->xpath->evaluate('channel/cc:license');
-
-        if ($list->length) {
-            foreach ($list as $license) {
-                $licenses[] = $license->nodeValue;
-            }
-
-            $licenses = array_unique($licenses);
-        }
-
-        $this->data[$name] = $licenses;
-
-        return $this->data[$name];
-    }
-
-    /**
-     * Register Creative Commons namespaces
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('cc', 'http://backend.userland.com/creativeCommonsRssModule');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/DublinCore/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/DublinCore/Entry.php
deleted file mode 100644
index e23de81..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/DublinCore/Entry.php
+++ /dev/null
@@ -1,234 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\DublinCore;
-
-use DateTime;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Collection;
-use Zend\Feed\Reader\Extension;
-
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get an author entry
-     *
-     * @param int $index
-     * @return string
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $authors = array();
-        $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc11:creator');
-
-        if (!$list->length) {
-            $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc10:creator');
-        }
-        if (!$list->length) {
-            $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc11:publisher');
-
-            if (!$list->length) {
-                $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc10:publisher');
-            }
-        }
-
-        if ($list->length) {
-            foreach ($list as $author) {
-                $authors[] = array(
-                    'name' => $author->nodeValue
-                );
-            }
-            $authors = new Collection\Author(
-                Reader\Reader::arrayUnique($authors)
-            );
-        } else {
-            $authors = null;
-        }
-
-        $this->data['authors'] = $authors;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get categories (subjects under DC)
-     *
-     * @return Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc11:subject');
-
-        if (!$list->length) {
-            $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc10:subject');
-        }
-
-        if ($list->length) {
-            $categoryCollection = new Collection\Category;
-            foreach ($list as $category) {
-                $categoryCollection[] = array(
-                    'term' => $category->nodeValue,
-                    'scheme' => null,
-                    'label' => $category->nodeValue,
-                );
-            }
-        } else {
-            $categoryCollection = new Collection\Category;
-        }
-
-        $this->data['categories'] = $categoryCollection;
-        return $this->data['categories'];
-    }
-
-    /**
-     * Get the entry content
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        return $this->getDescription();
-    }
-
-    /**
-     * Get the entry description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:description)');
-
-        if (!$description) {
-            $description = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:description)');
-        }
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the entry ID
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:identifier)');
-
-        if (!$id) {
-            $id = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:identifier)');
-        }
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the entry title
-     *
-     * @return string
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:title)');
-
-        if (!$title) {
-            $title = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:title)');
-        }
-
-        if (!$title) {
-            $title = null;
-        }
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     *
-     *
-     * @return DateTime|null
-     */
-    public function getDate()
-    {
-        if (array_key_exists('date', $this->data)) {
-            return $this->data['date'];
-        }
-
-        $d    = null;
-        $date = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:date)');
-
-        if (!$date) {
-            $date = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:date)');
-        }
-
-        if ($date) {
-            $d = new DateTime($date);
-        }
-
-        $this->data['date'] = $d;
-
-        return $this->data['date'];
-    }
-
-    /**
-     * Register DC namespaces
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->getXpath()->registerNamespace('dc10', 'http://purl.org/dc/elements/1.0/');
-        $this->getXpath()->registerNamespace('dc11', 'http://purl.org/dc/elements/1.1/');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/DublinCore/Feed.php b/core/vendor/zendframework/zend-feed/Reader/Extension/DublinCore/Feed.php
deleted file mode 100644
index 6b54b08..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/DublinCore/Feed.php
+++ /dev/null
@@ -1,276 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\DublinCore;
-
-use DateTime;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Collection;
-use Zend\Feed\Reader\Extension;
-
-class Feed extends Extension\AbstractFeed
-{
-    /**
-     * Get a single author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $authors = array();
-        $list    = $this->getXpath()->query('//dc11:creator');
-
-        if (!$list->length) {
-            $list = $this->getXpath()->query('//dc10:creator');
-        }
-        if (!$list->length) {
-            $list = $this->getXpath()->query('//dc11:publisher');
-
-            if (!$list->length) {
-                $list = $this->getXpath()->query('//dc10:publisher');
-            }
-        }
-
-        if ($list->length) {
-            foreach ($list as $author) {
-                $authors[] = array(
-                    'name' => $author->nodeValue
-                );
-            }
-            $authors = new Collection\Author(
-                Reader\Reader::arrayUnique($authors)
-            );
-        } else {
-            $authors = null;
-        }
-
-        $this->data['authors'] = $authors;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the copyright entry
-     *
-     * @return string|null
-     */
-    public function getCopyright()
-    {
-        if (array_key_exists('copyright', $this->data)) {
-            return $this->data['copyright'];
-        }
-
-        $copyright = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:rights)');
-
-        if (!$copyright) {
-            $copyright = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:rights)');
-        }
-
-        if (!$copyright) {
-            $copyright = null;
-        }
-
-        $this->data['copyright'] = $copyright;
-
-        return $this->data['copyright'];
-    }
-
-    /**
-     * Get the feed description
-     *
-     * @return string|null
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:description)');
-
-        if (!$description) {
-            $description = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:description)');
-        }
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the feed ID
-     *
-     * @return string|null
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:identifier)');
-
-        if (!$id) {
-            $id = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:identifier)');
-        }
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the feed language
-     *
-     * @return string|null
-     */
-    public function getLanguage()
-    {
-        if (array_key_exists('language', $this->data)) {
-            return $this->data['language'];
-        }
-
-        $language = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:language)');
-
-        if (!$language) {
-            $language = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:language)');
-        }
-
-        if (!$language) {
-            $language = null;
-        }
-
-        $this->data['language'] = $language;
-
-        return $this->data['language'];
-    }
-
-    /**
-     * Get the feed title
-     *
-     * @return string|null
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:title)');
-
-        if (!$title) {
-            $title = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:title)');
-        }
-
-        if (!$title) {
-            $title = null;
-        }
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     *
-     *
-     * @return DateTime|null
-     */
-    public function getDate()
-    {
-        if (array_key_exists('date', $this->data)) {
-            return $this->data['date'];
-        }
-
-        $d = null;
-        $date = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc11:date)');
-
-        if (!$date) {
-            $date = $this->getXpath()->evaluate('string(' . $this->getXpathPrefix() . '/dc10:date)');
-        }
-
-        if ($date) {
-            $d = new DateTime($date);
-        }
-
-        $this->data['date'] = $d;
-
-        return $this->data['date'];
-    }
-
-    /**
-     * Get categories (subjects under DC)
-     *
-     * @return Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc11:subject');
-
-        if (!$list->length) {
-            $list = $this->getXpath()->evaluate($this->getXpathPrefix() . '//dc10:subject');
-        }
-
-        if ($list->length) {
-            $categoryCollection = new Collection\Category;
-            foreach ($list as $category) {
-                $categoryCollection[] = array(
-                    'term' => $category->nodeValue,
-                    'scheme' => null,
-                    'label' => $category->nodeValue,
-                );
-            }
-        } else {
-            $categoryCollection = new Collection\Category;
-        }
-
-        $this->data['categories'] = $categoryCollection;
-        return $this->data['categories'];
-    }
-
-    /**
-     * Register the default namespaces for the current feed format
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->getXpath()->registerNamespace('dc10', 'http://purl.org/dc/elements/1.0/');
-        $this->getXpath()->registerNamespace('dc11', 'http://purl.org/dc/elements/1.1/');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Podcast/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Podcast/Entry.php
deleted file mode 100644
index 5aec2fd..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Podcast/Entry.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Podcast;
-
-use Zend\Feed\Reader\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get the entry author
-     *
-     * @return string
-     */
-    public function getCastAuthor()
-    {
-        if (isset($this->data['author'])) {
-            return $this->data['author'];
-        }
-
-        $author = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:author)');
-
-        if (!$author) {
-            $author = null;
-        }
-
-        $this->data['author'] = $author;
-
-        return $this->data['author'];
-    }
-
-    /**
-     * Get the entry block
-     *
-     * @return string
-     */
-    public function getBlock()
-    {
-        if (isset($this->data['block'])) {
-            return $this->data['block'];
-        }
-
-        $block = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:block)');
-
-        if (!$block) {
-            $block = null;
-        }
-
-        $this->data['block'] = $block;
-
-        return $this->data['block'];
-    }
-
-    /**
-     * Get the entry duration
-     *
-     * @return string
-     */
-    public function getDuration()
-    {
-        if (isset($this->data['duration'])) {
-            return $this->data['duration'];
-        }
-
-        $duration = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:duration)');
-
-        if (!$duration) {
-            $duration = null;
-        }
-
-        $this->data['duration'] = $duration;
-
-        return $this->data['duration'];
-    }
-
-    /**
-     * Get the entry explicit
-     *
-     * @return string
-     */
-    public function getExplicit()
-    {
-        if (isset($this->data['explicit'])) {
-            return $this->data['explicit'];
-        }
-
-        $explicit = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:explicit)');
-
-        if (!$explicit) {
-            $explicit = null;
-        }
-
-        $this->data['explicit'] = $explicit;
-
-        return $this->data['explicit'];
-    }
-
-    /**
-     * Get the entry keywords
-     *
-     * @return string
-     */
-    public function getKeywords()
-    {
-        if (isset($this->data['keywords'])) {
-            return $this->data['keywords'];
-        }
-
-        $keywords = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:keywords)');
-
-        if (!$keywords) {
-            $keywords = null;
-        }
-
-        $this->data['keywords'] = $keywords;
-
-        return $this->data['keywords'];
-    }
-
-    /**
-     * Get the entry subtitle
-     *
-     * @return string
-     */
-    public function getSubtitle()
-    {
-        if (isset($this->data['subtitle'])) {
-            return $this->data['subtitle'];
-        }
-
-        $subtitle = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:subtitle)');
-
-        if (!$subtitle) {
-            $subtitle = null;
-        }
-
-        $this->data['subtitle'] = $subtitle;
-
-        return $this->data['subtitle'];
-    }
-
-    /**
-     * Get the entry summary
-     *
-     * @return string
-     */
-    public function getSummary()
-    {
-        if (isset($this->data['summary'])) {
-            return $this->data['summary'];
-        }
-
-        $summary = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:summary)');
-
-        if (!$summary) {
-            $summary = null;
-        }
-
-        $this->data['summary'] = $summary;
-
-        return $this->data['summary'];
-    }
-
-    /**
-     * Register iTunes namespace
-     *
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('itunes', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Podcast/Feed.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Podcast/Feed.php
deleted file mode 100644
index 9fb80de..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Podcast/Feed.php
+++ /dev/null
@@ -1,276 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Podcast;
-
-use DOMText;
-use Zend\Feed\Reader\Extension;
-
-/**
-*/
-class Feed extends Extension\AbstractFeed
-{
-    /**
-     * Get the entry author
-     *
-     * @return string
-     */
-    public function getCastAuthor()
-    {
-        if (isset($this->data['author'])) {
-            return $this->data['author'];
-        }
-
-        $author = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:author)');
-
-        if (!$author) {
-            $author = null;
-        }
-
-        $this->data['author'] = $author;
-
-        return $this->data['author'];
-    }
-
-    /**
-     * Get the entry block
-     *
-     * @return string
-     */
-    public function getBlock()
-    {
-        if (isset($this->data['block'])) {
-            return $this->data['block'];
-        }
-
-        $block = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:block)');
-
-        if (!$block) {
-            $block = null;
-        }
-
-        $this->data['block'] = $block;
-
-        return $this->data['block'];
-    }
-
-    /**
-     * Get the entry category
-     *
-     * @return array|null
-     */
-    public function getItunesCategories()
-    {
-        if (isset($this->data['categories'])) {
-            return $this->data['categories'];
-        }
-
-        $categoryList = $this->xpath->query($this->getXpathPrefix() . '/itunes:category');
-
-        $categories = array();
-
-        if ($categoryList->length > 0) {
-            foreach ($categoryList as $node) {
-                $children = null;
-
-                if ($node->childNodes->length > 0) {
-                    $children = array();
-
-                    foreach ($node->childNodes as $childNode) {
-                        if (!($childNode instanceof DOMText)) {
-                            $children[$childNode->getAttribute('text')] = null;
-                        }
-                    }
-                }
-
-                $categories[$node->getAttribute('text')] = $children;
-            }
-        }
-
-        if (!$categories) {
-            $categories = null;
-        }
-
-        $this->data['categories'] = $categories;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Get the entry explicit
-     *
-     * @return string
-     */
-    public function getExplicit()
-    {
-        if (isset($this->data['explicit'])) {
-            return $this->data['explicit'];
-        }
-
-        $explicit = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:explicit)');
-
-        if (!$explicit) {
-            $explicit = null;
-        }
-
-        $this->data['explicit'] = $explicit;
-
-        return $this->data['explicit'];
-    }
-
-    /**
-     * Get the entry image
-     *
-     * @return string
-     */
-    public function getItunesImage()
-    {
-        if (isset($this->data['image'])) {
-            return $this->data['image'];
-        }
-
-        $image = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:image/@href)');
-
-        if (!$image) {
-            $image = null;
-        }
-
-        $this->data['image'] = $image;
-
-        return $this->data['image'];
-    }
-
-    /**
-     * Get the entry keywords
-     *
-     * @return string
-     */
-    public function getKeywords()
-    {
-        if (isset($this->data['keywords'])) {
-            return $this->data['keywords'];
-        }
-
-        $keywords = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:keywords)');
-
-        if (!$keywords) {
-            $keywords = null;
-        }
-
-        $this->data['keywords'] = $keywords;
-
-        return $this->data['keywords'];
-    }
-
-    /**
-     * Get the entry's new feed url
-     *
-     * @return string
-     */
-    public function getNewFeedUrl()
-    {
-        if (isset($this->data['new-feed-url'])) {
-            return $this->data['new-feed-url'];
-        }
-
-        $newFeedUrl = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:new-feed-url)');
-
-        if (!$newFeedUrl) {
-            $newFeedUrl = null;
-        }
-
-        $this->data['new-feed-url'] = $newFeedUrl;
-
-        return $this->data['new-feed-url'];
-    }
-
-    /**
-     * Get the entry owner
-     *
-     * @return string
-     */
-    public function getOwner()
-    {
-        if (isset($this->data['owner'])) {
-            return $this->data['owner'];
-        }
-
-        $owner = null;
-
-        $email = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:owner/itunes:email)');
-        $name  = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:owner/itunes:name)');
-
-        if (!empty($email)) {
-            $owner = $email . (empty($name) ? '' : ' (' . $name . ')');
-        } elseif (!empty($name)) {
-            $owner = $name;
-        }
-
-        if (!$owner) {
-            $owner = null;
-        }
-
-        $this->data['owner'] = $owner;
-
-        return $this->data['owner'];
-    }
-
-    /**
-     * Get the entry subtitle
-     *
-     * @return string
-     */
-    public function getSubtitle()
-    {
-        if (isset($this->data['subtitle'])) {
-            return $this->data['subtitle'];
-        }
-
-        $subtitle = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:subtitle)');
-
-        if (!$subtitle) {
-            $subtitle = null;
-        }
-
-        $this->data['subtitle'] = $subtitle;
-
-        return $this->data['subtitle'];
-    }
-
-    /**
-     * Get the entry summary
-     *
-     * @return string
-     */
-    public function getSummary()
-    {
-        if (isset($this->data['summary'])) {
-            return $this->data['summary'];
-        }
-
-        $summary = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/itunes:summary)');
-
-        if (!$summary) {
-            $summary = null;
-        }
-
-        $this->data['summary'] = $summary;
-
-        return $this->data['summary'];
-    }
-
-    /**
-     * Register iTunes namespace
-     *
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('itunes', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Slash/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Slash/Entry.php
deleted file mode 100644
index 786d894..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Slash/Entry.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Slash;
-
-use Zend\Feed\Reader\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get the entry section
-     *
-     * @return string|null
-     */
-    public function getSection()
-    {
-        return $this->getData('section');
-    }
-
-    /**
-     * Get the entry department
-     *
-     * @return string|null
-     */
-    public function getDepartment()
-    {
-        return $this->getData('department');
-    }
-
-    /**
-     * Get the entry hit_parade
-     *
-     * @return array
-     */
-    public function getHitParade()
-    {
-        $name = 'hit_parade';
-
-        if (isset($this->data[$name])) {
-            return $this->data[$name];
-        }
-
-        $stringParade = $this->getData($name);
-        $hitParade    = array();
-
-        if (!empty($stringParade)) {
-            $stringParade = explode(',', $stringParade);
-
-            foreach ($stringParade as $hit) {
-                $hitParade[] = $hit + 0; //cast to integer
-            }
-        }
-
-        $this->data[$name] = $hitParade;
-        return $hitParade;
-    }
-
-    /**
-     * Get the entry comments
-     *
-     * @return int
-     */
-    public function getCommentCount()
-    {
-        $name = 'comments';
-
-        if (isset($this->data[$name])) {
-            return $this->data[$name];
-        }
-
-        $comments = $this->getData($name, 'string');
-
-        if (!$comments) {
-            $this->data[$name] = null;
-            return $this->data[$name];
-        }
-
-        return $comments;
-    }
-
-    /**
-     * Get the entry data specified by name
-     * @param string $name
-     * @param string $type
-     *
-     * @return mixed|null
-     */
-    protected function getData($name, $type = 'string')
-    {
-        if (array_key_exists($name, $this->data)) {
-            return $this->data[$name];
-        }
-
-        $data = $this->xpath->evaluate($type . '(' . $this->getXpathPrefix() . '/slash10:' . $name . ')');
-
-        if (!$data) {
-            $data = null;
-        }
-
-        $this->data[$name] = $data;
-
-        return $data;
-    }
-
-    /**
-     * Register Slash namespaces
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('slash10', 'http://purl.org/rss/1.0/modules/slash/');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Syndication/Feed.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Syndication/Feed.php
deleted file mode 100644
index 09f12dd..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Syndication/Feed.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Syndication;
-
-use DateTime;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Extension;
-
-class Feed extends Extension\AbstractFeed
-{
-    /**
-     * Get update period
-     *
-     * @return string
-     * @throws Reader\Exception\InvalidArgumentException
-     */
-    public function getUpdatePeriod()
-    {
-        $name = 'updatePeriod';
-        $period = $this->getData($name);
-
-        if ($period === null) {
-            $this->data[$name] = 'daily';
-            return 'daily'; //Default specified by spec
-        }
-
-        switch ($period) {
-            case 'hourly':
-            case 'daily':
-            case 'weekly':
-            case 'yearly':
-                return $period;
-            default:
-                throw new Reader\Exception\InvalidArgumentException("Feed specified invalid update period: '$period'."
-                    .  " Must be one of hourly, daily, weekly or yearly"
-                );
-        }
-    }
-
-    /**
-     * Get update frequency
-     *
-     * @return int
-     */
-    public function getUpdateFrequency()
-    {
-        $name = 'updateFrequency';
-        $freq = $this->getData($name, 'number');
-
-        if (!$freq || $freq < 1) {
-            $this->data[$name] = 1;
-            return 1;
-        }
-
-        return $freq;
-    }
-
-    /**
-     * Get update frequency as ticks
-     *
-     * @return int
-     */
-    public function getUpdateFrequencyAsTicks()
-    {
-        $name = 'updateFrequency';
-        $freq = $this->getData($name, 'number');
-
-        if (!$freq || $freq < 1) {
-            $this->data[$name] = 1;
-            $freq = 1;
-        }
-
-        $period = $this->getUpdatePeriod();
-        $ticks = 1;
-
-        switch ($period) {
-            case 'yearly':
-                $ticks *= 52; //TODO: fix generalisation, how?
-                // no break
-            case 'weekly':
-                $ticks *= 7;
-                // no break
-            case 'daily':
-                $ticks *= 24;
-                // no break
-            case 'hourly':
-                $ticks *= 3600;
-                break;
-            default: //Never arrive here, exception thrown in getPeriod()
-                break;
-        }
-
-        return $ticks / $freq;
-    }
-
-    /**
-     * Get update base
-     *
-     * @return DateTime|null
-     */
-    public function getUpdateBase()
-    {
-        $updateBase = $this->getData('updateBase');
-        $date = null;
-        if ($updateBase) {
-            $date = DateTime::createFromFormat(DateTime::W3C, $updateBase);
-        }
-        return $date;
-    }
-
-    /**
-     * Get the entry data specified by name
-     *
-     * @param string $name
-     * @param string $type
-     * @return mixed|null
-     */
-    private function getData($name, $type = 'string')
-    {
-        if (array_key_exists($name, $this->data)) {
-            return $this->data[$name];
-        }
-
-        $data = $this->xpath->evaluate($type . '(' . $this->getXpathPrefix() . '/syn10:' . $name . ')');
-
-        if (!$data) {
-            $data = null;
-        }
-
-        $this->data[$name] = $data;
-
-        return $data;
-    }
-
-    /**
-     * Register Syndication namespaces
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('syn10', 'http://purl.org/rss/1.0/modules/syndication/');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/Thread/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/Thread/Entry.php
deleted file mode 100644
index e5de5bb..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/Thread/Entry.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\Thread;
-
-use Zend\Feed\Reader\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get the "in-reply-to" value
-     *
-     * @return string
-     */
-    public function getInReplyTo()
-    {
-        // TODO: to be implemented
-    }
-
-    // TODO: Implement "replies" and "updated" constructs from standard
-
-    /**
-     * Get the total number of threaded responses (i.e comments)
-     *
-     * @return int|null
-     */
-    public function getCommentCount()
-    {
-        return $this->getData('total');
-    }
-
-    /**
-     * Get the entry data specified by name
-     *
-     * @param  string $name
-     * @return mixed|null
-     */
-    protected function getData($name)
-    {
-        if (array_key_exists($name, $this->data)) {
-            return $this->data[$name];
-        }
-
-        $data = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/thread10:' . $name . ')');
-
-        if (!$data) {
-            $data = null;
-        }
-
-        $this->data[$name] = $data;
-
-        return $data;
-    }
-
-    /**
-     * Register Atom Thread Extension 1.0 namespace
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('thread10', 'http://purl.org/syndication/thread/1.0');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Extension/WellFormedWeb/Entry.php b/core/vendor/zendframework/zend-feed/Reader/Extension/WellFormedWeb/Entry.php
deleted file mode 100644
index 42fafb4..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Extension/WellFormedWeb/Entry.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Extension\WellFormedWeb;
-
-use Zend\Feed\Reader\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractEntry
-{
-    /**
-     * Get the entry comment Uri
-     *
-     * @return string|null
-     */
-    public function getCommentFeedLink()
-    {
-        $name = 'commentRss';
-        if (array_key_exists($name, $this->data)) {
-            return $this->data[$name];
-        }
-
-        $data = $this->xpath->evaluate('string(' . $this->getXpathPrefix() . '/wfw:' . $name . ')');
-
-        if (!$data) {
-            $data = null;
-        }
-
-        $this->data[$name] = $data;
-
-        return $data;
-    }
-
-    /**
-     * Register Slash namespaces
-     *
-     * @return void
-     */
-    protected function registerNamespaces()
-    {
-        $this->xpath->registerNamespace('wfw', 'http://wellformedweb.org/CommentAPI/');
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/ExtensionManager.php b/core/vendor/zendframework/zend-feed/Reader/ExtensionManager.php
deleted file mode 100644
index bf694c8..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/ExtensionManager.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-/**
- * Default implementation of ExtensionManagerInterface
- *
- * Decorator of ExtensionPluginManager.
- */
-class ExtensionManager implements ExtensionManagerInterface
-{
-    protected $pluginManager;
-
-    /**
-     * Constructor
-     *
-     * Seeds the extension manager with a plugin manager; if none provided,
-     * creates an instance.
-     *
-     * @param  null|ExtensionPluginManager $pluginManager
-     */
-    public function __construct(ExtensionPluginManager $pluginManager = null)
-    {
-        if (null === $pluginManager) {
-            $pluginManager = new ExtensionPluginManager();
-        }
-        $this->pluginManager = $pluginManager;
-    }
-
-    /**
-     * Method overloading
-     *
-     * Proxy to composed ExtensionPluginManager instance.
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Exception\BadMethodCallException
-     */
-    public function __call($method, $args)
-    {
-        if (!method_exists($this->pluginManager, $method)) {
-            throw new Exception\BadMethodCallException(sprintf(
-                'Method by name of %s does not exist in %s',
-                $method,
-                __CLASS__
-            ));
-        }
-        return call_user_func_array(array($this->pluginManager, $method), $args);
-    }
-
-    /**
-     * Get the named extension
-     *
-     * @param  string $name
-     * @return Extension\AbstractEntry|Extension\AbstractFeed
-     */
-    public function get($name)
-    {
-        return $this->pluginManager->get($name);
-    }
-
-    /**
-     * Do we have the named extension?
-     *
-     * @param  string $name
-     * @return bool
-     */
-    public function has($name)
-    {
-        return $this->pluginManager->has($name);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/ExtensionManagerInterface.php b/core/vendor/zendframework/zend-feed/Reader/ExtensionManagerInterface.php
deleted file mode 100644
index 70ec37d..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/ExtensionManagerInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-interface ExtensionManagerInterface
-{
-    /**
-     * Do we have the extension?
-     *
-     * @param  string $extension
-     * @return bool
-     */
-    public function has($extension);
-
-    /**
-     * Retrieve the extension
-     *
-     * @param  string $extension
-     * @return mixed
-     */
-    public function get($extension);
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/ExtensionPluginManager.php b/core/vendor/zendframework/zend-feed/Reader/ExtensionPluginManager.php
deleted file mode 100644
index 3e3308c..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/ExtensionPluginManager.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-use Zend\ServiceManager\AbstractPluginManager;
-
-/**
- * Plugin manager implementation for feed reader extensions based on the
- * AbstractPluginManager.
- *
- * Validation checks that we have an Extension\AbstractEntry or
- * Extension\AbstractFeed.
- */
-class ExtensionPluginManager extends AbstractPluginManager
-{
-    /**
-     * Default set of extension classes
-     *
-     * @var array
-     */
-    protected $invokableClasses = array(
-        'atomentry'            => 'Zend\Feed\Reader\Extension\Atom\Entry',
-        'atomfeed'             => 'Zend\Feed\Reader\Extension\Atom\Feed',
-        'contententry'         => 'Zend\Feed\Reader\Extension\Content\Entry',
-        'creativecommonsentry' => 'Zend\Feed\Reader\Extension\CreativeCommons\Entry',
-        'creativecommonsfeed'  => 'Zend\Feed\Reader\Extension\CreativeCommons\Feed',
-        'dublincoreentry'      => 'Zend\Feed\Reader\Extension\DublinCore\Entry',
-        'dublincorefeed'       => 'Zend\Feed\Reader\Extension\DublinCore\Feed',
-        'podcastentry'         => 'Zend\Feed\Reader\Extension\Podcast\Entry',
-        'podcastfeed'          => 'Zend\Feed\Reader\Extension\Podcast\Feed',
-        'slashentry'           => 'Zend\Feed\Reader\Extension\Slash\Entry',
-        'syndicationfeed'      => 'Zend\Feed\Reader\Extension\Syndication\Feed',
-        'threadentry'          => 'Zend\Feed\Reader\Extension\Thread\Entry',
-        'wellformedwebentry'   => 'Zend\Feed\Reader\Extension\WellFormedWeb\Entry',
-    );
-
-    /**
-     * Do not share instances
-     *
-     * @var bool
-     */
-    protected $shareByDefault = false;
-
-    /**
-     * Validate the plugin
-     *
-     * Checks that the extension loaded is of a valid type.
-     *
-     * @param  mixed $plugin
-     * @return void
-     * @throws Exception\InvalidArgumentException if invalid
-     */
-    public function validatePlugin($plugin)
-    {
-        if ($plugin instanceof Extension\AbstractEntry
-            || $plugin instanceof Extension\AbstractFeed
-        ) {
-            // we're okay
-            return;
-        }
-
-        throw new Exception\InvalidArgumentException(sprintf(
-            'Plugin of type %s is invalid; must implement %s\Extension\AbstractFeed '
-            . 'or %s\Extension\AbstractEntry',
-            (is_object($plugin) ? get_class($plugin) : gettype($plugin)),
-            __NAMESPACE__,
-            __NAMESPACE__
-        ));
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Feed/AbstractFeed.php b/core/vendor/zendframework/zend-feed/Reader/Feed/AbstractFeed.php
deleted file mode 100644
index 9814967..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Feed/AbstractFeed.php
+++ /dev/null
@@ -1,307 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Feed;
-
-use DOMDocument;
-use DOMElement;
-use DOMXPath;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Exception;
-
-/**
-*/
-abstract class AbstractFeed implements FeedInterface
-{
-    /**
-     * Parsed feed data
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Parsed feed data in the shape of a DOMDocument
-     *
-     * @var DOMDocument
-     */
-    protected $domDocument = null;
-
-    /**
-     * An array of parsed feed entries
-     *
-     * @var array
-     */
-    protected $entries = array();
-
-    /**
-     * A pointer for the iterator to keep track of the entries array
-     *
-     * @var int
-     */
-    protected $entriesKey = 0;
-
-    /**
-     * The base XPath query used to retrieve feed data
-     *
-     * @var DOMXPath
-     */
-    protected $xpath = null;
-
-    /**
-     * Array of loaded extensions
-     *
-     * @var array
-     */
-    protected $extensions = array();
-
-    /**
-     * Original Source URI (set if imported from a URI)
-     *
-     * @var string
-     */
-    protected $originalSourceUri = null;
-
-    /**
-     * Constructor
-     *
-     * @param DOMDocument $domDocument The DOM object for the feed's XML
-     * @param string $type Feed type
-     */
-    public function __construct(DOMDocument $domDocument, $type = null)
-    {
-        $this->domDocument = $domDocument;
-        $this->xpath = new DOMXPath($this->domDocument);
-
-        if ($type !== null) {
-            $this->data['type'] = $type;
-        } else {
-            $this->data['type'] = Reader\Reader::detectType($this->domDocument);
-        }
-        $this->registerNamespaces();
-        $this->indexEntries();
-        $this->loadExtensions();
-    }
-
-    /**
-     * Set an original source URI for the feed being parsed. This value
-     * is returned from getFeedLink() method if the feed does not carry
-     * a self-referencing URI.
-     *
-     * @param string $uri
-     */
-    public function setOriginalSourceUri($uri)
-    {
-        $this->originalSourceUri = $uri;
-    }
-
-    /**
-     * Get an original source URI for the feed being parsed. Returns null if
-     * unset or the feed was not imported from a URI.
-     *
-     * @return string|null
-     */
-    public function getOriginalSourceUri()
-    {
-        return $this->originalSourceUri;
-    }
-
-    /**
-     * Get the number of feed entries.
-     * Required by the Iterator interface.
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->entries);
-    }
-
-    /**
-     * Return the current entry
-     *
-     * @return \Zend\Feed\Reader\Entry\EntryInterface
-     */
-    public function current()
-    {
-        if (substr($this->getType(), 0, 3) == 'rss') {
-            $reader = new Reader\Entry\Rss($this->entries[$this->key()], $this->key(), $this->getType());
-        } else {
-            $reader = new Reader\Entry\Atom($this->entries[$this->key()], $this->key(), $this->getType());
-        }
-
-        $reader->setXpath($this->xpath);
-
-        return $reader;
-    }
-
-    /**
-     * Get the DOM
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->domDocument;
-    }
-
-    /**
-     * Get the Feed's encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        $assumed = $this->getDomDocument()->encoding;
-        if (empty($assumed)) {
-            $assumed = 'UTF-8';
-        }
-        return $assumed;
-    }
-
-    /**
-     * Get feed as xml
-     *
-     * @return string
-     */
-    public function saveXml()
-    {
-        return $this->getDomDocument()->saveXml();
-    }
-
-    /**
-     * Get the DOMElement representing the items/feed element
-     *
-     * @return DOMElement
-     */
-    public function getElement()
-    {
-        return $this->getDomDocument()->documentElement;
-    }
-
-    /**
-     * Get the DOMXPath object for this feed
-     *
-     * @return DOMXPath
-     */
-    public function getXpath()
-    {
-        return $this->xpath;
-    }
-
-    /**
-     * Get the feed type
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        return $this->data['type'];
-    }
-
-    /**
-     * Return the current feed key
-     *
-     * @return int
-     */
-    public function key()
-    {
-        return $this->entriesKey;
-    }
-
-    /**
-     * Move the feed pointer forward
-     *
-     */
-    public function next()
-    {
-        ++$this->entriesKey;
-    }
-
-    /**
-     * Reset the pointer in the feed object
-     *
-     */
-    public function rewind()
-    {
-        $this->entriesKey = 0;
-    }
-
-    /**
-     * Check to see if the iterator is still valid
-     *
-     * @return bool
-     */
-    public function valid()
-    {
-        return 0 <= $this->entriesKey && $this->entriesKey < $this->count();
-    }
-
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    public function __call($method, $args)
-    {
-        foreach ($this->extensions as $extension) {
-            if (method_exists($extension, $method)) {
-                return call_user_func_array(array($extension, $method), $args);
-            }
-        }
-        throw new Exception\BadMethodCallException('Method: ' . $method
-        . 'does not exist and could not be located on a registered Extension');
-    }
-
-    /**
-     * Return an Extension object with the matching name (postfixed with _Feed)
-     *
-     * @param string $name
-     * @return \Zend\Feed\Reader\Extension\AbstractFeed
-     */
-    public function getExtension($name)
-    {
-        if (array_key_exists($name . '\\Feed', $this->extensions)) {
-            return $this->extensions[$name . '\\Feed'];
-        }
-        return;
-    }
-
-    protected function loadExtensions()
-    {
-        $all     = Reader\Reader::getExtensions();
-        $manager = Reader\Reader::getExtensionManager();
-        $feed    = $all['feed'];
-        foreach ($feed as $extension) {
-            if (in_array($extension, $all['core'])) {
-                continue;
-            }
-            if (!$manager->has($extension)) {
-                throw new Exception\RuntimeException(sprintf('Unable to load extension "%s"; cannot find class', $extension));
-            }
-            $plugin = $manager->get($extension);
-            $plugin->setDomDocument($this->getDomDocument());
-            $plugin->setType($this->data['type']);
-            $plugin->setXpath($this->xpath);
-            $this->extensions[$extension] = $plugin;
-        }
-    }
-
-    /**
-     * Read all entries to the internal entries array
-     *
-     */
-    abstract protected function indexEntries();
-
-    /**
-     * Register the default namespaces for the current feed format
-     *
-     */
-    abstract protected function registerNamespaces();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Feed/Atom.php b/core/vendor/zendframework/zend-feed/Reader/Feed/Atom.php
deleted file mode 100644
index 3706470..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Feed/Atom.php
+++ /dev/null
@@ -1,408 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Feed;
-
-use DOMDocument;
-use Zend\Feed\Reader;
-
-/**
-*/
-class Atom extends AbstractFeed
-{
-    /**
-     * Constructor
-     *
-     * @param  DOMDocument $dom
-     * @param  string $type
-     */
-    public function __construct(DOMDocument $dom, $type = null)
-    {
-        parent::__construct($dom, $type);
-        $manager = Reader\Reader::getExtensionManager();
-
-        $atomFeed = $manager->get('Atom\Feed');
-        $atomFeed->setDomDocument($dom);
-        $atomFeed->setType($this->data['type']);
-        $atomFeed->setXpath($this->xpath);
-        $this->extensions['Atom\\Feed'] = $atomFeed;
-
-        $atomFeed = $manager->get('DublinCore\Feed');
-        $atomFeed->setDomDocument($dom);
-        $atomFeed->setType($this->data['type']);
-        $atomFeed->setXpath($this->xpath);
-        $this->extensions['DublinCore\\Feed'] = $atomFeed;
-
-        foreach ($this->extensions as $extension) {
-            $extension->setXpathPrefix('/atom:feed');
-        }
-    }
-
-    /**
-     * Get a single author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $authors = $this->getExtension('Atom')->getAuthors();
-
-        $this->data['authors'] = $authors;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the copyright entry
-     *
-     * @return string|null
-     */
-    public function getCopyright()
-    {
-        if (array_key_exists('copyright', $this->data)) {
-            return $this->data['copyright'];
-        }
-
-        $copyright = $this->getExtension('Atom')->getCopyright();
-
-        if (!$copyright) {
-            $copyright = null;
-        }
-
-        $this->data['copyright'] = $copyright;
-
-        return $this->data['copyright'];
-    }
-
-    /**
-     * Get the feed creation date
-     *
-     * @return string|null
-     */
-    public function getDateCreated()
-    {
-        if (array_key_exists('datecreated', $this->data)) {
-            return $this->data['datecreated'];
-        }
-
-        $dateCreated = $this->getExtension('Atom')->getDateCreated();
-
-        if (!$dateCreated) {
-            $dateCreated = null;
-        }
-
-        $this->data['datecreated'] = $dateCreated;
-
-        return $this->data['datecreated'];
-    }
-
-    /**
-     * Get the feed modification date
-     *
-     * @return string|null
-     */
-    public function getDateModified()
-    {
-        if (array_key_exists('datemodified', $this->data)) {
-            return $this->data['datemodified'];
-        }
-
-        $dateModified = $this->getExtension('Atom')->getDateModified();
-
-        if (!$dateModified) {
-            $dateModified = null;
-        }
-
-        $this->data['datemodified'] = $dateModified;
-
-        return $this->data['datemodified'];
-    }
-
-    /**
-     * Get the feed lastBuild date. This is not implemented in Atom.
-     *
-     * @return string|null
-     */
-    public function getLastBuildDate()
-    {
-        return;
-    }
-
-    /**
-     * Get the feed description
-     *
-     * @return string|null
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        $description = $this->getExtension('Atom')->getDescription();
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the feed generator entry
-     *
-     * @return string|null
-     */
-    public function getGenerator()
-    {
-        if (array_key_exists('generator', $this->data)) {
-            return $this->data['generator'];
-        }
-
-        $generator = $this->getExtension('Atom')->getGenerator();
-
-        $this->data['generator'] = $generator;
-
-        return $this->data['generator'];
-    }
-
-    /**
-     * Get the feed ID
-     *
-     * @return string|null
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = $this->getExtension('Atom')->getId();
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the feed language
-     *
-     * @return string|null
-     */
-    public function getLanguage()
-    {
-        if (array_key_exists('language', $this->data)) {
-            return $this->data['language'];
-        }
-
-        $language = $this->getExtension('Atom')->getLanguage();
-
-        if (!$language) {
-            $language = $this->xpath->evaluate('string(//@xml:lang[1])');
-        }
-
-        if (!$language) {
-            $language = null;
-        }
-
-        $this->data['language'] = $language;
-
-        return $this->data['language'];
-    }
-
-    /**
-     * Get a link to the source website
-     *
-     * @return string|null
-     */
-    public function getBaseUrl()
-    {
-        if (array_key_exists('baseUrl', $this->data)) {
-            return $this->data['baseUrl'];
-        }
-
-        $baseUrl = $this->getExtension('Atom')->getBaseUrl();
-
-        $this->data['baseUrl'] = $baseUrl;
-
-        return $this->data['baseUrl'];
-    }
-
-    /**
-     * Get a link to the source website
-     *
-     * @return string|null
-     */
-    public function getLink()
-    {
-        if (array_key_exists('link', $this->data)) {
-            return $this->data['link'];
-        }
-
-        $link = $this->getExtension('Atom')->getLink();
-
-        $this->data['link'] = $link;
-
-        return $this->data['link'];
-    }
-
-    /**
-     * Get feed image data
-     *
-     * @return array|null
-     */
-    public function getImage()
-    {
-        if (array_key_exists('image', $this->data)) {
-            return $this->data['image'];
-        }
-
-        $link = $this->getExtension('Atom')->getImage();
-
-        $this->data['image'] = $link;
-
-        return $this->data['image'];
-    }
-
-    /**
-     * Get a link to the feed's XML Url
-     *
-     * @return string|null
-     */
-    public function getFeedLink()
-    {
-        if (array_key_exists('feedlink', $this->data)) {
-            return $this->data['feedlink'];
-        }
-
-        $link = $this->getExtension('Atom')->getFeedLink();
-
-        if ($link === null || empty($link)) {
-            $link = $this->getOriginalSourceUri();
-        }
-
-        $this->data['feedlink'] = $link;
-
-        return $this->data['feedlink'];
-    }
-
-    /**
-     * Get the feed title
-     *
-     * @return string|null
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        $title = $this->getExtension('Atom')->getTitle();
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     * Get an array of any supported Pusubhubbub endpoints
-     *
-     * @return array|null
-     */
-    public function getHubs()
-    {
-        if (array_key_exists('hubs', $this->data)) {
-            return $this->data['hubs'];
-        }
-
-        $hubs = $this->getExtension('Atom')->getHubs();
-
-        $this->data['hubs'] = $hubs;
-
-        return $this->data['hubs'];
-    }
-
-    /**
-     * Get all categories
-     *
-     * @return Reader\Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        $categoryCollection = $this->getExtension('Atom')->getCategories();
-
-        if (count($categoryCollection) == 0) {
-            $categoryCollection = $this->getExtension('DublinCore')->getCategories();
-        }
-
-        $this->data['categories'] = $categoryCollection;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Read all entries to the internal entries array
-     *
-     * @return void
-     */
-    protected function indexEntries()
-    {
-        if ($this->getType() == Reader\Reader::TYPE_ATOM_10 ||
-            $this->getType() == Reader\Reader::TYPE_ATOM_03) {
-            $entries = $this->xpath->evaluate('//atom:entry');
-
-            foreach ($entries as $index => $entry) {
-                $this->entries[$index] = $entry;
-            }
-        }
-    }
-
-    /**
-     * Register the default namespaces for the current feed format
-     *
-     */
-    protected function registerNamespaces()
-    {
-        switch ($this->data['type']) {
-            case Reader\Reader::TYPE_ATOM_03:
-                $this->xpath->registerNamespace('atom', Reader\Reader::NAMESPACE_ATOM_03);
-                break;
-            case Reader\Reader::TYPE_ATOM_10:
-            default:
-                $this->xpath->registerNamespace('atom', Reader\Reader::NAMESPACE_ATOM_10);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Feed/Atom/Source.php b/core/vendor/zendframework/zend-feed/Reader/Feed/Atom/Source.php
deleted file mode 100644
index 2590de6..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Feed/Atom/Source.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Feed\Atom;
-
-use DOMElement;
-use DOMXPath;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Feed;
-
-/**
-*/
-class Source extends Feed\Atom
-{
-    /**
-     * Constructor: Create a Source object which is largely just a normal
-     * Zend\Feed\Reader\AbstractFeed object only designed to retrieve feed level
-     * metadata from an Atom entry's source element.
-     *
-     * @param DOMElement $source
-     * @param string $xpathPrefix Passed from parent Entry object
-     * @param string $type Nearly always Atom 1.0
-     */
-    public function __construct(DOMElement $source, $xpathPrefix, $type = Reader\Reader::TYPE_ATOM_10)
-    {
-        $this->domDocument = $source->ownerDocument;
-        $this->xpath = new DOMXPath($this->domDocument);
-        $this->data['type'] = $type;
-        $this->registerNamespaces();
-        $this->loadExtensions();
-
-        $manager = Reader\Reader::getExtensionManager();
-        $extensions = array('Atom\Feed', 'DublinCore\Feed');
-
-        foreach ($extensions as $name) {
-            $extension = $manager->get($name);
-            $extension->setDomDocument($this->domDocument);
-            $extension->setType($this->data['type']);
-            $extension->setXpath($this->xpath);
-            $this->extensions[$name] = $extension;
-        }
-
-        foreach ($this->extensions as $extension) {
-            $extension->setXpathPrefix(rtrim($xpathPrefix, '/') . '/atom:source');
-        }
-    }
-
-    /**
-     * Since this is not an Entry carrier but a vehicle for Feed metadata, any
-     * applicable Entry methods are stubbed out and do nothing.
-     */
-
-    /**
-     * @return void
-     */
-    public function count()
-    {
-    }
-
-    /**
-     * @return void
-     */
-    public function current()
-    {
-    }
-
-    /**
-     * @return void
-     */
-    public function key()
-    {
-    }
-
-    /**
-     * @return void
-     */
-    public function next()
-    {
-    }
-
-    /**
-     * @return void
-     */
-    public function rewind()
-    {
-    }
-
-    /**
-     * @return void
-     */
-    public function valid()
-    {
-    }
-
-    /**
-     * @return void
-     */
-    protected function indexEntries()
-    {
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Feed/FeedInterface.php b/core/vendor/zendframework/zend-feed/Reader/Feed/FeedInterface.php
deleted file mode 100644
index 441ba92..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Feed/FeedInterface.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Feed;
-
-use Countable;
-use Iterator;
-
-/**
-*/
-interface FeedInterface extends Iterator, Countable
-{
-    /**
-     * Get a single author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0);
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors();
-
-    /**
-     * Get the copyright entry
-     *
-     * @return string|null
-     */
-    public function getCopyright();
-
-    /**
-     * Get the feed creation date
-     *
-     * @return string|null
-     */
-    public function getDateCreated();
-
-    /**
-     * Get the feed modification date
-     *
-     * @return string|null
-     */
-    public function getDateModified();
-
-    /**
-     * Get the feed description
-     *
-     * @return string|null
-     */
-    public function getDescription();
-
-    /**
-     * Get the feed generator entry
-     *
-     * @return string|null
-     */
-    public function getGenerator();
-
-    /**
-     * Get the feed ID
-     *
-     * @return string|null
-     */
-    public function getId();
-
-    /**
-     * Get the feed language
-     *
-     * @return string|null
-     */
-    public function getLanguage();
-
-    /**
-     * Get a link to the HTML source
-     *
-     * @return string|null
-     */
-    public function getLink();
-
-    /**
-     * Get a link to the XML feed
-     *
-     * @return string|null
-     */
-    public function getFeedLink();
-
-    /**
-     * Get the feed title
-     *
-     * @return string|null
-     */
-    public function getTitle();
-
-    /**
-     * Get all categories
-     *
-     * @return \Zend\Feed\Reader\Collection\Category
-     */
-    public function getCategories();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Feed/Rss.php b/core/vendor/zendframework/zend-feed/Reader/Feed/Rss.php
deleted file mode 100644
index cb9f038..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Feed/Rss.php
+++ /dev/null
@@ -1,694 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Feed;
-
-use DateTime;
-use DOMDocument;
-use Zend\Feed\Reader;
-use Zend\Feed\Reader\Collection;
-use Zend\Feed\Reader\Exception;
-
-/**
-*/
-class Rss extends AbstractFeed
-{
-    /**
-     * Constructor
-     *
-     * @param  DOMDocument $dom
-     * @param  string $type
-     */
-    public function __construct(DOMDocument $dom, $type = null)
-    {
-        parent::__construct($dom, $type);
-
-        $manager = Reader\Reader::getExtensionManager();
-
-        $feed = $manager->get('DublinCore\Feed');
-        $feed->setDomDocument($dom);
-        $feed->setType($this->data['type']);
-        $feed->setXpath($this->xpath);
-        $this->extensions['DublinCore\Feed'] = $feed;
-
-        $feed = $manager->get('Atom\Feed');
-        $feed->setDomDocument($dom);
-        $feed->setType($this->data['type']);
-        $feed->setXpath($this->xpath);
-        $this->extensions['Atom\Feed'] = $feed;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-            && $this->getType() !== Reader\Reader::TYPE_RSS_090
-        ) {
-            $xpathPrefix = '/rss/channel';
-        } else {
-            $xpathPrefix = '/rdf:RDF/rss:channel';
-        }
-        foreach ($this->extensions as $extension) {
-            $extension->setXpathPrefix($xpathPrefix);
-        }
-    }
-
-    /**
-     * Get a single author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        $authors = $this->getAuthors();
-
-        if (isset($authors[$index])) {
-            return $authors[$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (array_key_exists('authors', $this->data)) {
-            return $this->data['authors'];
-        }
-
-        $authors = array();
-        $authorsDc = $this->getExtension('DublinCore')->getAuthors();
-        if (!empty($authorsDc)) {
-            foreach ($authorsDc as $author) {
-                $authors[] = array(
-                    'name' => $author['name']
-                );
-            }
-        }
-
-        /**
-         * Technically RSS doesn't specific author element use at the feed level
-         * but it's supported on a "just in case" basis.
-         */
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10
-        && $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $list = $this->xpath->query('//author');
-        } else {
-            $list = $this->xpath->query('//rss:author');
-        }
-        if ($list->length) {
-            foreach ($list as $author) {
-                $string = trim($author->nodeValue);
-                $data = array();
-                // Pretty rough parsing - but it's a catchall
-                if (preg_match("/^.*@[^ ]*/", $string, $matches)) {
-                    $data['email'] = trim($matches[0]);
-                    if (preg_match("/\((.*)\)$/", $string, $matches)) {
-                        $data['name'] = $matches[1];
-                    }
-                    $authors[] = $data;
-                }
-            }
-        }
-
-        if (count($authors) == 0) {
-            $authors = $this->getExtension('Atom')->getAuthors();
-        } else {
-            $authors = new Reader\Collection\Author(
-                Reader\Reader::arrayUnique($authors)
-            );
-        }
-
-        if (count($authors) == 0) {
-            $authors = null;
-        }
-
-        $this->data['authors'] = $authors;
-
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the copyright entry
-     *
-     * @return string|null
-     */
-    public function getCopyright()
-    {
-        if (array_key_exists('copyright', $this->data)) {
-            return $this->data['copyright'];
-        }
-
-        $copyright = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $copyright = $this->xpath->evaluate('string(/rss/channel/copyright)');
-        }
-
-        if (!$copyright && $this->getExtension('DublinCore') !== null) {
-            $copyright = $this->getExtension('DublinCore')->getCopyright();
-        }
-
-        if (empty($copyright)) {
-            $copyright = $this->getExtension('Atom')->getCopyright();
-        }
-
-        if (!$copyright) {
-            $copyright = null;
-        }
-
-        $this->data['copyright'] = $copyright;
-
-        return $this->data['copyright'];
-    }
-
-    /**
-     * Get the feed creation date
-     *
-     * @return string|null
-     */
-    public function getDateCreated()
-    {
-        return $this->getDateModified();
-    }
-
-    /**
-     * Get the feed modification date
-     *
-     * @return DateTime
-     * @throws Exception\RuntimeException
-     */
-    public function getDateModified()
-    {
-        if (array_key_exists('datemodified', $this->data)) {
-            return $this->data['datemodified'];
-        }
-
-        $date = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $dateModified = $this->xpath->evaluate('string(/rss/channel/pubDate)');
-            if (!$dateModified) {
-                $dateModified = $this->xpath->evaluate('string(/rss/channel/lastBuildDate)');
-            }
-            if ($dateModified) {
-                $dateModifiedParsed = strtotime($dateModified);
-                if ($dateModifiedParsed) {
-                    $date = new DateTime('@' . $dateModifiedParsed);
-                } else {
-                    $dateStandards = array(DateTime::RSS, DateTime::RFC822,
-                                           DateTime::RFC2822, null);
-                    foreach ($dateStandards as $standard) {
-                        try {
-                            $date = DateTime::createFromFormat($standard, $dateModified);
-                            break;
-                        } catch (\Exception $e) {
-                            if ($standard == null) {
-                                throw new Exception\RuntimeException(
-                                    'Could not load date due to unrecognised'
-                                    .' format (should follow RFC 822 or 2822):'
-                                    . $e->getMessage(),
-                                    0, $e
-                                );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!$date) {
-            $date = $this->getExtension('DublinCore')->getDate();
-        }
-
-        if (!$date) {
-            $date = $this->getExtension('Atom')->getDateModified();
-        }
-
-        if (!$date) {
-            $date = null;
-        }
-
-        $this->data['datemodified'] = $date;
-
-        return $this->data['datemodified'];
-    }
-
-    /**
-     * Get the feed lastBuild date
-     *
-     * @throws Exception\RuntimeException
-     * @return DateTime
-     */
-    public function getLastBuildDate()
-    {
-        if (array_key_exists('lastBuildDate', $this->data)) {
-            return $this->data['lastBuildDate'];
-        }
-
-        $date = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $lastBuildDate = $this->xpath->evaluate('string(/rss/channel/lastBuildDate)');
-            if ($lastBuildDate) {
-                $lastBuildDateParsed = strtotime($lastBuildDate);
-                if ($lastBuildDateParsed) {
-                    $date = new DateTime('@' . $lastBuildDateParsed);
-                } else {
-                    $dateStandards = array(DateTime::RSS, DateTime::RFC822,
-                                           DateTime::RFC2822, null);
-                    foreach ($dateStandards as $standard) {
-                        try {
-                            $date = DateTime::createFromFormat($standard, $lastBuildDateParsed);
-                            break;
-                        } catch (\Exception $e) {
-                            if ($standard == null) {
-                                throw new Exception\RuntimeException(
-                                    'Could not load date due to unrecognised'
-                                    .' format (should follow RFC 822 or 2822):'
-                                    . $e->getMessage(),
-                                    0, $e
-                                );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (!$date) {
-            $date = null;
-        }
-
-        $this->data['lastBuildDate'] = $date;
-
-        return $this->data['lastBuildDate'];
-    }
-
-    /**
-     * Get the feed description
-     *
-     * @return string|null
-     */
-    public function getDescription()
-    {
-        if (array_key_exists('description', $this->data)) {
-            return $this->data['description'];
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $description = $this->xpath->evaluate('string(/rss/channel/description)');
-        } else {
-            $description = $this->xpath->evaluate('string(/rdf:RDF/rss:channel/rss:description)');
-        }
-
-        if (!$description && $this->getExtension('DublinCore') !== null) {
-            $description = $this->getExtension('DublinCore')->getDescription();
-        }
-
-        if (empty($description)) {
-            $description = $this->getExtension('Atom')->getDescription();
-        }
-
-        if (!$description) {
-            $description = null;
-        }
-
-        $this->data['description'] = $description;
-
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the feed ID
-     *
-     * @return string|null
-     */
-    public function getId()
-    {
-        if (array_key_exists('id', $this->data)) {
-            return $this->data['id'];
-        }
-
-        $id = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $id = $this->xpath->evaluate('string(/rss/channel/guid)');
-        }
-
-        if (!$id && $this->getExtension('DublinCore') !== null) {
-            $id = $this->getExtension('DublinCore')->getId();
-        }
-
-        if (empty($id)) {
-            $id = $this->getExtension('Atom')->getId();
-        }
-
-        if (!$id) {
-            if ($this->getLink()) {
-                $id = $this->getLink();
-            } elseif ($this->getTitle()) {
-                $id = $this->getTitle();
-            } else {
-                $id = null;
-            }
-        }
-
-        $this->data['id'] = $id;
-
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the feed image data
-     *
-     * @return array|null
-     */
-    public function getImage()
-    {
-        if (array_key_exists('image', $this->data)) {
-            return $this->data['image'];
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $list = $this->xpath->query('/rss/channel/image');
-            $prefix = '/rss/channel/image[1]';
-        } else {
-            $list = $this->xpath->query('/rdf:RDF/rss:channel/rss:image');
-            $prefix = '/rdf:RDF/rss:channel/rss:image[1]';
-        }
-        if ($list->length > 0) {
-            $image = array();
-            $value = $this->xpath->evaluate('string(' . $prefix . '/url)');
-            if ($value) {
-                $image['uri'] = $value;
-            }
-            $value = $this->xpath->evaluate('string(' . $prefix . '/link)');
-            if ($value) {
-                $image['link'] = $value;
-            }
-            $value = $this->xpath->evaluate('string(' . $prefix . '/title)');
-            if ($value) {
-                $image['title'] = $value;
-            }
-            $value = $this->xpath->evaluate('string(' . $prefix . '/height)');
-            if ($value) {
-                $image['height'] = $value;
-            }
-            $value = $this->xpath->evaluate('string(' . $prefix . '/width)');
-            if ($value) {
-                $image['width'] = $value;
-            }
-            $value = $this->xpath->evaluate('string(' . $prefix . '/description)');
-            if ($value) {
-                $image['description'] = $value;
-            }
-        } else {
-            $image = null;
-        }
-
-        $this->data['image'] = $image;
-
-        return $this->data['image'];
-    }
-
-    /**
-     * Get the feed language
-     *
-     * @return string|null
-     */
-    public function getLanguage()
-    {
-        if (array_key_exists('language', $this->data)) {
-            return $this->data['language'];
-        }
-
-        $language = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $language = $this->xpath->evaluate('string(/rss/channel/language)');
-        }
-
-        if (!$language && $this->getExtension('DublinCore') !== null) {
-            $language = $this->getExtension('DublinCore')->getLanguage();
-        }
-
-        if (empty($language)) {
-            $language = $this->getExtension('Atom')->getLanguage();
-        }
-
-        if (!$language) {
-            $language = $this->xpath->evaluate('string(//@xml:lang[1])');
-        }
-
-        if (!$language) {
-            $language = null;
-        }
-
-        $this->data['language'] = $language;
-
-        return $this->data['language'];
-    }
-
-    /**
-     * Get a link to the feed
-     *
-     * @return string|null
-     */
-    public function getLink()
-    {
-        if (array_key_exists('link', $this->data)) {
-            return $this->data['link'];
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $link = $this->xpath->evaluate('string(/rss/channel/link)');
-        } else {
-            $link = $this->xpath->evaluate('string(/rdf:RDF/rss:channel/rss:link)');
-        }
-
-        if (empty($link)) {
-            $link = $this->getExtension('Atom')->getLink();
-        }
-
-        if (!$link) {
-            $link = null;
-        }
-
-        $this->data['link'] = $link;
-
-        return $this->data['link'];
-    }
-
-    /**
-     * Get a link to the feed XML
-     *
-     * @return string|null
-     */
-    public function getFeedLink()
-    {
-        if (array_key_exists('feedlink', $this->data)) {
-            return $this->data['feedlink'];
-        }
-
-        $link = $this->getExtension('Atom')->getFeedLink();
-
-        if ($link === null || empty($link)) {
-            $link = $this->getOriginalSourceUri();
-        }
-
-        $this->data['feedlink'] = $link;
-
-        return $this->data['feedlink'];
-    }
-
-    /**
-     * Get the feed generator entry
-     *
-     * @return string|null
-     */
-    public function getGenerator()
-    {
-        if (array_key_exists('generator', $this->data)) {
-            return $this->data['generator'];
-        }
-
-        $generator = null;
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $generator = $this->xpath->evaluate('string(/rss/channel/generator)');
-        }
-
-        if (!$generator) {
-            if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-                $generator = $this->xpath->evaluate('string(/rss/channel/atom:generator)');
-            } else {
-                $generator = $this->xpath->evaluate('string(/rdf:RDF/rss:channel/atom:generator)');
-            }
-        }
-
-        if (empty($generator)) {
-            $generator = $this->getExtension('Atom')->getGenerator();
-        }
-
-        if (!$generator) {
-            $generator = null;
-        }
-
-        $this->data['generator'] = $generator;
-
-        return $this->data['generator'];
-    }
-
-    /**
-     * Get the feed title
-     *
-     * @return string|null
-     */
-    public function getTitle()
-    {
-        if (array_key_exists('title', $this->data)) {
-            return $this->data['title'];
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $title = $this->xpath->evaluate('string(/rss/channel/title)');
-        } else {
-            $title = $this->xpath->evaluate('string(/rdf:RDF/rss:channel/rss:title)');
-        }
-
-        if (!$title && $this->getExtension('DublinCore') !== null) {
-            $title = $this->getExtension('DublinCore')->getTitle();
-        }
-
-        if (!$title) {
-            $title = $this->getExtension('Atom')->getTitle();
-        }
-
-        if (!$title) {
-            $title = null;
-        }
-
-        $this->data['title'] = $title;
-
-        return $this->data['title'];
-    }
-
-    /**
-     * Get an array of any supported Pusubhubbub endpoints
-     *
-     * @return array|null
-     */
-    public function getHubs()
-    {
-        if (array_key_exists('hubs', $this->data)) {
-            return $this->data['hubs'];
-        }
-
-        $hubs = $this->getExtension('Atom')->getHubs();
-
-        if (empty($hubs)) {
-            $hubs = null;
-        } else {
-            $hubs = array_unique($hubs);
-        }
-
-        $this->data['hubs'] = $hubs;
-
-        return $this->data['hubs'];
-    }
-
-    /**
-     * Get all categories
-     *
-     * @return Reader\Collection\Category
-     */
-    public function getCategories()
-    {
-        if (array_key_exists('categories', $this->data)) {
-            return $this->data['categories'];
-        }
-
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 &&
-            $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $list = $this->xpath->query('/rss/channel//category');
-        } else {
-            $list = $this->xpath->query('/rdf:RDF/rss:channel//rss:category');
-        }
-
-        if ($list->length) {
-            $categoryCollection = new Collection\Category;
-            foreach ($list as $category) {
-                $categoryCollection[] = array(
-                    'term' => $category->nodeValue,
-                    'scheme' => $category->getAttribute('domain'),
-                    'label' => $category->nodeValue,
-                );
-            }
-        } else {
-            $categoryCollection = $this->getExtension('DublinCore')->getCategories();
-        }
-
-        if (count($categoryCollection) == 0) {
-            $categoryCollection = $this->getExtension('Atom')->getCategories();
-        }
-
-        $this->data['categories'] = $categoryCollection;
-
-        return $this->data['categories'];
-    }
-
-    /**
-     * Read all entries to the internal entries array
-     *
-     */
-    protected function indexEntries()
-    {
-        if ($this->getType() !== Reader\Reader::TYPE_RSS_10 && $this->getType() !== Reader\Reader::TYPE_RSS_090) {
-            $entries = $this->xpath->evaluate('//item');
-        } else {
-            $entries = $this->xpath->evaluate('//rss:item');
-        }
-
-        foreach ($entries as $index => $entry) {
-            $this->entries[$index] = $entry;
-        }
-    }
-
-    /**
-     * Register the default namespaces for the current feed format
-     *
-     */
-    protected function registerNamespaces()
-    {
-        switch ($this->data['type']) {
-            case Reader\Reader::TYPE_RSS_10:
-                $this->xpath->registerNamespace('rdf', Reader\Reader::NAMESPACE_RDF);
-                $this->xpath->registerNamespace('rss', Reader\Reader::NAMESPACE_RSS_10);
-                break;
-
-            case Reader\Reader::TYPE_RSS_090:
-                $this->xpath->registerNamespace('rdf', Reader\Reader::NAMESPACE_RDF);
-                $this->xpath->registerNamespace('rss', Reader\Reader::NAMESPACE_RSS_090);
-                break;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/FeedSet.php b/core/vendor/zendframework/zend-feed/Reader/FeedSet.php
deleted file mode 100644
index 8fab2cb..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/FeedSet.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-use ArrayObject;
-use DOMNodeList;
-use Zend\Feed\Uri;
-
-/**
-*/
-class FeedSet extends ArrayObject
-{
-    public $rss = null;
-
-    public $rdf = null;
-
-    public $atom = null;
-
-    /**
-     * Import a DOMNodeList from any document containing a set of links
-     * for alternate versions of a document, which will normally refer to
-     * RSS/RDF/Atom feeds for the current document.
-     *
-     * All such links are stored internally, however the first instance of
-     * each RSS, RDF or Atom type has its URI stored as a public property
-     * as a shortcut where the use case is simply to get a quick feed ref.
-     *
-     * Note that feeds are not loaded at this point, but will be lazy
-     * loaded automatically when each links 'feed' array key is accessed.
-     *
-     * @param DOMNodeList $links
-     * @param string $uri
-     * @return void
-     */
-    public function addLinks(DOMNodeList $links, $uri)
-    {
-        foreach ($links as $link) {
-            if (strtolower($link->getAttribute('rel')) !== 'alternate'
-                || !$link->getAttribute('type') || !$link->getAttribute('href')) {
-                continue;
-            }
-            if (!isset($this->rss) && $link->getAttribute('type') == 'application/rss+xml') {
-                $this->rss = $this->absolutiseUri(trim($link->getAttribute('href')), $uri);
-            } elseif (!isset($this->atom) && $link->getAttribute('type') == 'application/atom+xml') {
-                $this->atom = $this->absolutiseUri(trim($link->getAttribute('href')), $uri);
-            } elseif (!isset($this->rdf) && $link->getAttribute('type') == 'application/rdf+xml') {
-                $this->rdf = $this->absolutiseUri(trim($link->getAttribute('href')), $uri);
-            }
-            $this[] = new static(array(
-                'rel' => 'alternate',
-                'type' => $link->getAttribute('type'),
-                'href' => $this->absolutiseUri(trim($link->getAttribute('href')), $uri),
-            ));
-        }
-    }
-
-    /**
-     *  Attempt to turn a relative URI into an absolute URI
-     */
-    protected function absolutiseUri($link, $uri = null)
-    {
-        $linkUri = Uri::factory($link);
-        if (!$linkUri->isAbsolute() or !$linkUri->isValid()) {
-            if ($uri !== null) {
-                $uri = Uri::factory($uri);
-
-                if ($link[0] !== '/') {
-                    $link = $uri->getPath() . '/' . $link;
-                }
-
-                $link = $uri->getScheme() . '://' . $uri->getHost() . '/' . $this->canonicalizePath($link);
-                if (!Uri::factory($link)->isValid()) {
-                    $link = null;
-                }
-            }
-        }
-        return $link;
-    }
-
-    /**
-     *  Canonicalize relative path
-     */
-    protected function canonicalizePath($path)
-    {
-        $parts = array_filter(explode('/', $path));
-        $absolutes = array();
-        foreach ($parts as $part) {
-            if ('.' == $part) {
-                continue;
-            }
-            if ('..' == $part) {
-                array_pop($absolutes);
-            } else {
-                $absolutes[] = $part;
-            }
-        }
-        return implode('/', $absolutes);
-    }
-
-    /**
-     * Supports lazy loading of feeds using Reader::import() but
-     * delegates any other operations to the parent class.
-     *
-     * @param string $offset
-     * @return mixed
-     */
-    public function offsetGet($offset)
-    {
-        if ($offset == 'feed' && !$this->offsetExists('feed')) {
-            if (!$this->offsetExists('href')) {
-                return;
-            }
-            $feed = Reader::import($this->offsetGet('href'));
-            $this->offsetSet('feed', $feed);
-            return $feed;
-        }
-        return parent::offsetGet($offset);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Http/ClientInterface.php b/core/vendor/zendframework/zend-feed/Reader/Http/ClientInterface.php
deleted file mode 100644
index 1387981..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Http/ClientInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Http;
-
-interface ClientInterface
-{
-    /**
-     * Make a GET request to a given URI
-     *
-     * @param  string $uri
-     * @return ResponseInterface
-     */
-    public function get($uri);
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Http/ResponseInterface.php b/core/vendor/zendframework/zend-feed/Reader/Http/ResponseInterface.php
deleted file mode 100644
index 96b422e..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Http/ResponseInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader\Http;
-
-interface ResponseInterface
-{
-    /**
-     * Retrieve the response body
-     *
-     * @return string
-     */
-    public function getBody();
-
-    /**
-     * Retrieve the HTTP response status code
-     *
-     * @return int
-     */
-    public function getStatusCode();
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/Reader.php b/core/vendor/zendframework/zend-feed/Reader/Reader.php
deleted file mode 100644
index c5eb3d4..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/Reader.php
+++ /dev/null
@@ -1,676 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-use DOMDocument;
-use DOMXPath;
-use Zend\Cache\Storage\StorageInterface as CacheStorage;
-use Zend\Http as ZendHttp;
-use Zend\Stdlib\ErrorHandler;
-
-/**
-*/
-class Reader implements ReaderImportInterface
-{
-    /**
-     * Namespace constants
-     */
-    const NAMESPACE_ATOM_03  = 'http://purl.org/atom/ns#';
-    const NAMESPACE_ATOM_10  = 'http://www.w3.org/2005/Atom';
-    const NAMESPACE_RDF      = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
-    const NAMESPACE_RSS_090  = 'http://my.netscape.com/rdf/simple/0.9/';
-    const NAMESPACE_RSS_10   = 'http://purl.org/rss/1.0/';
-
-    /**
-     * Feed type constants
-     */
-    const TYPE_ANY              = 'any';
-    const TYPE_ATOM_03          = 'atom-03';
-    const TYPE_ATOM_10          = 'atom-10';
-    const TYPE_ATOM_10_ENTRY    = 'atom-10-entry';
-    const TYPE_ATOM_ANY         = 'atom';
-    const TYPE_RSS_090          = 'rss-090';
-    const TYPE_RSS_091          = 'rss-091';
-    const TYPE_RSS_091_NETSCAPE = 'rss-091n';
-    const TYPE_RSS_091_USERLAND = 'rss-091u';
-    const TYPE_RSS_092          = 'rss-092';
-    const TYPE_RSS_093          = 'rss-093';
-    const TYPE_RSS_094          = 'rss-094';
-    const TYPE_RSS_10           = 'rss-10';
-    const TYPE_RSS_20           = 'rss-20';
-    const TYPE_RSS_ANY          = 'rss';
-
-    /**
-     * Cache instance
-     *
-     * @var CacheStorage
-     */
-    protected static $cache = null;
-
-    /**
-     * HTTP client object to use for retrieving feeds
-     *
-     * @var ZendHttp\Client
-     */
-    protected static $httpClient = null;
-
-    /**
-     * Override HTTP PUT and DELETE request methods?
-     *
-     * @var bool
-     */
-    protected static $httpMethodOverride = false;
-
-    protected static $httpConditionalGet = false;
-
-    protected static $extensionManager = null;
-
-    protected static $extensions = array(
-        'feed' => array(
-            'DublinCore\Feed',
-            'Atom\Feed'
-        ),
-        'entry' => array(
-            'Content\Entry',
-            'DublinCore\Entry',
-            'Atom\Entry'
-        ),
-        'core' => array(
-            'DublinCore\Feed',
-            'Atom\Feed',
-            'Content\Entry',
-            'DublinCore\Entry',
-            'Atom\Entry'
-        )
-    );
-
-    /**
-     * Get the Feed cache
-     *
-     * @return CacheStorage
-     */
-    public static function getCache()
-    {
-        return static::$cache;
-    }
-
-    /**
-     * Set the feed cache
-     *
-     * @param  CacheStorage $cache
-     * @return void
-     */
-    public static function setCache(CacheStorage $cache)
-    {
-        static::$cache = $cache;
-    }
-
-    /**
-     * Set the HTTP client instance
-     *
-     * Sets the HTTP client object to use for retrieving the feeds.
-     *
-     * @param  ZendHttp\Client $httpClient
-     * @return void
-     */
-    public static function setHttpClient(ZendHttp\Client $httpClient)
-    {
-        static::$httpClient = $httpClient;
-    }
-
-    /**
-     * Gets the HTTP client object. If none is set, a new ZendHttp\Client will be used.
-     *
-     * @return ZendHttp\Client
-     */
-    public static function getHttpClient()
-    {
-        if (!static::$httpClient instanceof ZendHttp\Client) {
-            static::$httpClient = new ZendHttp\Client();
-        }
-
-        return static::$httpClient;
-    }
-
-    /**
-     * Toggle using POST instead of PUT and DELETE HTTP methods
-     *
-     * Some feed implementations do not accept PUT and DELETE HTTP
-     * methods, or they can't be used because of proxies or other
-     * measures. This allows turning on using POST where PUT and
-     * DELETE would normally be used; in addition, an
-     * X-Method-Override header will be sent with a value of PUT or
-     * DELETE as appropriate.
-     *
-     * @param  bool $override Whether to override PUT and DELETE.
-     * @return void
-     */
-    public static function setHttpMethodOverride($override = true)
-    {
-        static::$httpMethodOverride = $override;
-    }
-
-    /**
-     * Get the HTTP override state
-     *
-     * @return bool
-     */
-    public static function getHttpMethodOverride()
-    {
-        return static::$httpMethodOverride;
-    }
-
-    /**
-     * Set the flag indicating whether or not to use HTTP conditional GET
-     *
-     * @param  bool $bool
-     * @return void
-     */
-    public static function useHttpConditionalGet($bool = true)
-    {
-        static::$httpConditionalGet = $bool;
-    }
-
-    /**
-     * Import a feed by providing a URI
-     *
-     * @param  string $uri The URI to the feed
-     * @param  string $etag OPTIONAL Last received ETag for this resource
-     * @param  string $lastModified OPTIONAL Last-Modified value for this resource
-     * @return Feed\FeedInterface
-     * @throws Exception\RuntimeException
-     */
-    public static function import($uri, $etag = null, $lastModified = null)
-    {
-        $cache       = self::getCache();
-        $client      = self::getHttpClient();
-        $client->resetParameters();
-        $headers = new ZendHttp\Headers();
-        $client->setHeaders($headers);
-        $client->setUri($uri);
-        $cacheId = 'Zend_Feed_Reader_' . md5($uri);
-
-        if (static::$httpConditionalGet && $cache) {
-            $data = $cache->getItem($cacheId);
-            if ($data) {
-                if ($etag === null) {
-                    $etag = $cache->getItem($cacheId . '_etag');
-                }
-                if ($lastModified === null) {
-                    $lastModified = $cache->getItem($cacheId . '_lastmodified');
-                }
-                if ($etag) {
-                    $headers->addHeaderLine('If-None-Match', $etag);
-                }
-                if ($lastModified) {
-                    $headers->addHeaderLine('If-Modified-Since', $lastModified);
-                }
-            }
-            $response = $client->send();
-            if ($response->getStatusCode() !== 200 && $response->getStatusCode() !== 304) {
-                throw new Exception\RuntimeException('Feed failed to load, got response code ' . $response->getStatusCode());
-            }
-            if ($response->getStatusCode() == 304) {
-                $responseXml = $data;
-            } else {
-                $responseXml = $response->getBody();
-                $cache->setItem($cacheId, $responseXml);
-                if ($response->getHeaders()->get('ETag')) {
-                    $cache->setItem($cacheId . '_etag', $response->getHeaders()->get('ETag')->getFieldValue());
-                }
-                if ($response->getHeaders()->get('Last-Modified')) {
-                    $cache->setItem($cacheId . '_lastmodified', $response->getHeaders()->get('Last-Modified')->getFieldValue());
-                }
-            }
-            return static::importString($responseXml);
-        } elseif ($cache) {
-            $data = $cache->getItem($cacheId);
-            if ($data) {
-                return static::importString($data);
-            }
-            $response = $client->send();
-            if ((int) $response->getStatusCode() !== 200) {
-                throw new Exception\RuntimeException('Feed failed to load, got response code ' . $response->getStatusCode());
-            }
-            $responseXml = $response->getBody();
-            $cache->setItem($cacheId, $responseXml);
-            return static::importString($responseXml);
-        } else {
-            $response = $client->send();
-            if ((int) $response->getStatusCode() !== 200) {
-                throw new Exception\RuntimeException('Feed failed to load, got response code ' . $response->getStatusCode());
-            }
-            $reader = static::importString($response->getBody());
-            $reader->setOriginalSourceUri($uri);
-            return $reader;
-        }
-    }
-
-    /**
-     * Import a feed from a remote URI
-     *
-     * Performs similarly to import(), except it uses the HTTP client passed to
-     * the method, and does not take into account cached data.
-     *
-     * Primary purpose is to make it possible to use the Reader with alternate
-     * HTTP client implementations.
-     *
-     * @param  string $uri
-     * @param  Http\ClientInterface $client
-     * @return self
-     * @throws Exception\RuntimeException if response is not an Http\ResponseInterface
-     */
-    public static function importRemoteFeed($uri, Http\ClientInterface $client)
-    {
-        $response = $client->get($uri);
-        if (!$response instanceof Http\ResponseInterface) {
-            throw new Exception\RuntimeException(sprintf(
-                'Did not receive a %s\Http\ResponseInterface from the provided HTTP client; received "%s"',
-                __NAMESPACE__,
-                (is_object($response) ? get_class($response) : gettype($response))
-            ));
-        }
-
-        if ((int) $response->getStatusCode() !== 200) {
-            throw new Exception\RuntimeException('Feed failed to load, got response code ' . $response->getStatusCode());
-        }
-        $reader = static::importString($response->getBody());
-        $reader->setOriginalSourceUri($uri);
-        return $reader;
-    }
-
-    /**
-     * Import a feed from a string
-     *
-     * @param  string $string
-     * @return Feed\FeedInterface
-     * @throws Exception\InvalidArgumentException
-     * @throws Exception\RuntimeException
-     */
-    public static function importString($string)
-    {
-        $trimmed = trim($string);
-        if (!is_string($string) || empty($trimmed)) {
-            throw new Exception\InvalidArgumentException('Only non empty strings are allowed as input');
-        }
-
-        $libxmlErrflag = libxml_use_internal_errors(true);
-        $oldValue = libxml_disable_entity_loader(true);
-        $dom = new DOMDocument;
-        $status = $dom->loadXML(trim($string));
-        foreach ($dom->childNodes as $child) {
-            if ($child->nodeType === XML_DOCUMENT_TYPE_NODE) {
-                throw new Exception\InvalidArgumentException(
-                    'Invalid XML: Detected use of illegal DOCTYPE'
-                );
-            }
-        }
-        libxml_disable_entity_loader($oldValue);
-        libxml_use_internal_errors($libxmlErrflag);
-
-        if (!$status) {
-            // Build error message
-            $error = libxml_get_last_error();
-            if ($error && $error->message) {
-                $error->message = trim($error->message);
-                $errormsg = "DOMDocument cannot parse XML: {$error->message}";
-            } else {
-                $errormsg = "DOMDocument cannot parse XML: Please check the XML document's validity";
-            }
-            throw new Exception\RuntimeException($errormsg);
-        }
-
-        $type = static::detectType($dom);
-
-        static::registerCoreExtensions();
-
-        if (substr($type, 0, 3) == 'rss') {
-            $reader = new Feed\Rss($dom, $type);
-        } elseif (substr($type, 8, 5) == 'entry') {
-            $reader = new Entry\Atom($dom->documentElement, 0, self::TYPE_ATOM_10);
-        } elseif (substr($type, 0, 4) == 'atom') {
-            $reader = new Feed\Atom($dom, $type);
-        } else {
-            throw new Exception\RuntimeException('The URI used does not point to a '
-            . 'valid Atom, RSS or RDF feed that Zend\Feed\Reader can parse.');
-        }
-        return $reader;
-    }
-
-    /**
-     * Imports a feed from a file located at $filename.
-     *
-     * @param  string $filename
-     * @throws Exception\RuntimeException
-     * @return Feed\FeedInterface
-     */
-    public static function importFile($filename)
-    {
-        ErrorHandler::start();
-        $feed = file_get_contents($filename);
-        $err  = ErrorHandler::stop();
-        if ($feed === false) {
-            throw new Exception\RuntimeException("File '{$filename}' could not be loaded", 0, $err);
-        }
-        return static::importString($feed);
-    }
-
-    /**
-     * Find feed links
-     *
-     * @param $uri
-     * @return FeedSet
-     * @throws Exception\RuntimeException
-     */
-    public static function findFeedLinks($uri)
-    {
-        $client = static::getHttpClient();
-        $client->setUri($uri);
-        $response = $client->send();
-        if ($response->getStatusCode() !== 200) {
-            throw new Exception\RuntimeException("Failed to access $uri, got response code " . $response->getStatusCode());
-        }
-        $responseHtml = $response->getBody();
-        $libxmlErrflag = libxml_use_internal_errors(true);
-        $oldValue = libxml_disable_entity_loader(true);
-        $dom = new DOMDocument;
-        $status = $dom->loadHTML(trim($responseHtml));
-        libxml_disable_entity_loader($oldValue);
-        libxml_use_internal_errors($libxmlErrflag);
-        if (!$status) {
-            // Build error message
-            $error = libxml_get_last_error();
-            if ($error && $error->message) {
-                $error->message = trim($error->message);
-                $errormsg = "DOMDocument cannot parse HTML: {$error->message}";
-            } else {
-                $errormsg = "DOMDocument cannot parse HTML: Please check the XML document's validity";
-            }
-            throw new Exception\RuntimeException($errormsg);
-        }
-        $feedSet = new FeedSet;
-        $links = $dom->getElementsByTagName('link');
-        $feedSet->addLinks($links, $uri);
-        return $feedSet;
-    }
-
-    /**
-     * Detect the feed type of the provided feed
-     *
-     * @param  Feed\AbstractFeed|DOMDocument|string $feed
-     * @param  bool $specOnly
-     * @return string
-     * @throws Exception\InvalidArgumentException
-     * @throws Exception\RuntimeException
-     */
-    public static function detectType($feed, $specOnly = false)
-    {
-        if ($feed instanceof Feed\AbstractFeed) {
-            $dom = $feed->getDomDocument();
-        } elseif ($feed instanceof DOMDocument) {
-            $dom = $feed;
-        } elseif (is_string($feed) && !empty($feed)) {
-            ErrorHandler::start(E_NOTICE|E_WARNING);
-            ini_set('track_errors', 1);
-            $oldValue = libxml_disable_entity_loader(true);
-            $dom = new DOMDocument;
-            $status = $dom->loadXML($feed);
-            foreach ($dom->childNodes as $child) {
-                if ($child->nodeType === XML_DOCUMENT_TYPE_NODE) {
-                    throw new Exception\InvalidArgumentException(
-                        'Invalid XML: Detected use of illegal DOCTYPE'
-                    );
-                }
-            }
-            libxml_disable_entity_loader($oldValue);
-            ini_restore('track_errors');
-            ErrorHandler::stop();
-            if (!$status) {
-                if (!isset($phpErrormsg)) {
-                    if (function_exists('xdebug_is_enabled')) {
-                        $phpErrormsg = '(error message not available, when XDebug is running)';
-                    } else {
-                        $phpErrormsg = '(error message not available)';
-                    }
-                }
-                throw new Exception\RuntimeException("DOMDocument cannot parse XML: $phpErrormsg");
-            }
-        } else {
-            throw new Exception\InvalidArgumentException('Invalid object/scalar provided: must'
-            . ' be of type Zend\Feed\Reader\Feed, DomDocument or string');
-        }
-        $xpath = new DOMXPath($dom);
-
-        if ($xpath->query('/rss')->length) {
-            $type = self::TYPE_RSS_ANY;
-            $version = $xpath->evaluate('string(/rss/@version)');
-
-            if (strlen($version) > 0) {
-                switch ($version) {
-                    case '2.0':
-                        $type = self::TYPE_RSS_20;
-                        break;
-
-                    case '0.94':
-                        $type = self::TYPE_RSS_094;
-                        break;
-
-                    case '0.93':
-                        $type = self::TYPE_RSS_093;
-                        break;
-
-                    case '0.92':
-                        $type = self::TYPE_RSS_092;
-                        break;
-
-                    case '0.91':
-                        $type = self::TYPE_RSS_091;
-                        break;
-                }
-            }
-
-            return $type;
-        }
-
-        $xpath->registerNamespace('rdf', self::NAMESPACE_RDF);
-
-        if ($xpath->query('/rdf:RDF')->length) {
-            $xpath->registerNamespace('rss', self::NAMESPACE_RSS_10);
-
-            if ($xpath->query('/rdf:RDF/rss:channel')->length
-                || $xpath->query('/rdf:RDF/rss:image')->length
-                || $xpath->query('/rdf:RDF/rss:item')->length
-                || $xpath->query('/rdf:RDF/rss:textinput')->length
-            ) {
-                return self::TYPE_RSS_10;
-            }
-
-            $xpath->registerNamespace('rss', self::NAMESPACE_RSS_090);
-
-            if ($xpath->query('/rdf:RDF/rss:channel')->length
-                || $xpath->query('/rdf:RDF/rss:image')->length
-                || $xpath->query('/rdf:RDF/rss:item')->length
-                || $xpath->query('/rdf:RDF/rss:textinput')->length
-            ) {
-                return self::TYPE_RSS_090;
-            }
-        }
-
-        $xpath->registerNamespace('atom', self::NAMESPACE_ATOM_10);
-
-        if ($xpath->query('//atom:feed')->length) {
-            return self::TYPE_ATOM_10;
-        }
-
-        if ($xpath->query('//atom:entry')->length) {
-            if ($specOnly == true) {
-                return self::TYPE_ATOM_10;
-            } else {
-                return self::TYPE_ATOM_10_ENTRY;
-            }
-        }
-
-        $xpath->registerNamespace('atom', self::NAMESPACE_ATOM_03);
-
-        if ($xpath->query('//atom:feed')->length) {
-            return self::TYPE_ATOM_03;
-        }
-
-        return self::TYPE_ANY;
-    }
-
-    /**
-     * Set plugin manager for use with Extensions
-     *
-     * @param ExtensionManagerInterface $extensionManager
-     */
-    public static function setExtensionManager(ExtensionManagerInterface $extensionManager)
-    {
-        static::$extensionManager = $extensionManager;
-    }
-
-    /**
-     * Get plugin manager for use with Extensions
-     *
-     * @return ExtensionManagerInterface
-     */
-    public static function getExtensionManager()
-    {
-        if (!isset(static::$extensionManager)) {
-            static::setExtensionManager(new StandaloneExtensionManager());
-        }
-        return static::$extensionManager;
-    }
-
-    /**
-     * Register an Extension by name
-     *
-     * @param  string $name
-     * @return void
-     * @throws Exception\RuntimeException if unable to resolve Extension class
-     */
-    public static function registerExtension($name)
-    {
-        $feedName  = $name . '\Feed';
-        $entryName = $name . '\Entry';
-        $manager   = static::getExtensionManager();
-        if (static::isRegistered($name)) {
-            if ($manager->has($feedName) || $manager->has($entryName)) {
-                return;
-            }
-        }
-
-        if (!$manager->has($feedName) && !$manager->has($entryName)) {
-            throw new Exception\RuntimeException('Could not load extension: ' . $name
-                . ' using Plugin Loader. Check prefix paths are configured and extension exists.');
-        }
-        if ($manager->has($feedName)) {
-            static::$extensions['feed'][] = $feedName;
-        }
-        if ($manager->has($entryName)) {
-            static::$extensions['entry'][] = $entryName;
-        }
-    }
-
-    /**
-     * Is a given named Extension registered?
-     *
-     * @param  string $extensionName
-     * @return bool
-     */
-    public static function isRegistered($extensionName)
-    {
-        $feedName  = $extensionName . '\Feed';
-        $entryName = $extensionName . '\Entry';
-        if (in_array($feedName, static::$extensions['feed'])
-            || in_array($entryName, static::$extensions['entry'])
-        ) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Get a list of extensions
-     *
-     * @return array
-     */
-    public static function getExtensions()
-    {
-        return static::$extensions;
-    }
-
-    /**
-     * Reset class state to defaults
-     *
-     * @return void
-     */
-    public static function reset()
-    {
-        static::$cache              = null;
-        static::$httpClient         = null;
-        static::$httpMethodOverride = false;
-        static::$httpConditionalGet = false;
-        static::$extensionManager   = null;
-        static::$extensions         = array(
-            'feed' => array(
-                'DublinCore\Feed',
-                'Atom\Feed'
-            ),
-            'entry' => array(
-                'Content\Entry',
-                'DublinCore\Entry',
-                'Atom\Entry'
-            ),
-            'core' => array(
-                'DublinCore\Feed',
-                'Atom\Feed',
-                'Content\Entry',
-                'DublinCore\Entry',
-                'Atom\Entry'
-            )
-        );
-    }
-
-    /**
-     * Register core (default) extensions
-     *
-     * @return void
-     */
-    protected static function registerCoreExtensions()
-    {
-        static::registerExtension('DublinCore');
-        static::registerExtension('Content');
-        static::registerExtension('Atom');
-        static::registerExtension('Slash');
-        static::registerExtension('WellFormedWeb');
-        static::registerExtension('Thread');
-        static::registerExtension('Podcast');
-    }
-
-    /**
-     * Utility method to apply array_unique operation to a multidimensional
-     * array.
-     *
-     * @param array
-     * @return array
-     */
-    public static function arrayUnique(array $array)
-    {
-        foreach ($array as &$value) {
-            $value = serialize($value);
-        }
-        $array = array_unique($array);
-        foreach ($array as &$value) {
-            $value = unserialize($value);
-        }
-        return $array;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/ReaderImportInterface.php b/core/vendor/zendframework/zend-feed/Reader/ReaderImportInterface.php
deleted file mode 100644
index 0a2edd1..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/ReaderImportInterface.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-interface ReaderImportInterface
-{
-    /**
-     * Import a feed by providing a URI
-     *
-     * @param  string $uri The URI to the feed
-     * @param  string $etag OPTIONAL Last received ETag for this resource
-     * @param  string $lastModified OPTIONAL Last-Modified value for this resource
-     * @return Feed\FeedInterface
-     * @throws Exception\RuntimeException
-     */
-    public static function import($uri, $etag = null, $lastModified = null);
-
-    /**
-     * Import a feed from a remote URI
-     *
-     * Performs similarly to import(), except it uses the HTTP client passed to
-     * the method, and does not take into account cached data.
-     *
-     * Primary purpose is to make it possible to use the Reader with alternate
-     * HTTP client implementations.
-     *
-     * @param  string $uri
-     * @param  Http\ClientInterface $client
-     * @return self
-     * @throws Exception\RuntimeException if response is not an Http\ResponseInterface
-     */
-    public static function importRemoteFeed($uri, Http\ClientInterface $client);
-
-
-    /**
-     * Import a feed from a string
-     *
-     * @param  string $string
-     * @return Feed\FeedInterface
-     * @throws Exception\InvalidArgumentException
-     * @throws Exception\RuntimeException
-     */
-    public static function importString($string);
-
-
-    /**
-     * Imports a feed from a file located at $filename.
-     *
-     * @param  string $filename
-     * @throws Exception\RuntimeException
-     * @return Feed\FeedInterface
-     */
-    public static function importFile($filename);
-}
diff --git a/core/vendor/zendframework/zend-feed/Reader/StandaloneExtensionManager.php b/core/vendor/zendframework/zend-feed/Reader/StandaloneExtensionManager.php
deleted file mode 100644
index ac85e8a..0000000
--- a/core/vendor/zendframework/zend-feed/Reader/StandaloneExtensionManager.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Reader;
-
-class StandaloneExtensionManager implements ExtensionManagerInterface
-{
-    private $extensions = array(
-        'Atom\Entry'            => 'Zend\Feed\Reader\Extension\Atom\Entry',
-        'Atom\Feed'             => 'Zend\Feed\Reader\Extension\Atom\Feed',
-        'Content\Entry'         => 'Zend\Feed\Reader\Extension\Content\Entry',
-        'CreativeCommons\Entry' => 'Zend\Feed\Reader\Extension\CreativeCommons\Entry',
-        'CreativeCommons\Feed'  => 'Zend\Feed\Reader\Extension\CreativeCommons\Feed',
-        'DublinCore\Entry'      => 'Zend\Feed\Reader\Extension\DublinCore\Entry',
-        'DublinCore\Feed'       => 'Zend\Feed\Reader\Extension\DublinCore\Feed',
-        'Podcast\Entry'         => 'Zend\Feed\Reader\Extension\Podcast\Entry',
-        'Podcast\Feed'          => 'Zend\Feed\Reader\Extension\Podcast\Feed',
-        'Slash\Entry'           => 'Zend\Feed\Reader\Extension\Slash\Entry',
-        'Syndication\Feed'      => 'Zend\Feed\Reader\Extension\Syndication\Feed',
-        'Thread\Entry'          => 'Zend\Feed\Reader\Extension\Thread\Entry',
-        'WellFormedWeb\Entry'   => 'Zend\Feed\Reader\Extension\WellFormedWeb\Entry',
-    );
-
-    /**
-     * Do we have the extension?
-     *
-     * @param  string $extension
-     * @return bool
-     */
-    public function has($extension)
-    {
-        return array_key_exists($extension, $this->extensions);
-    }
-
-    /**
-     * Retrieve the extension
-     *
-     * @param  string $extension
-     * @return Extension\AbstractEntry|Extension\AbstractFeed
-     */
-    public function get($extension)
-    {
-        $class = $this->extensions[$extension];
-        return new $class();
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Uri.php b/core/vendor/zendframework/zend-feed/Uri.php
deleted file mode 100644
index 9a4565e..0000000
--- a/core/vendor/zendframework/zend-feed/Uri.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed;
-
-class Uri
-{
-    /**
-     * @var string
-     */
-    protected $fragment;
-
-    /**
-     * @var string
-     */
-    protected $host;
-
-    /**
-     * @var string
-     */
-    protected $pass;
-
-    /**
-     * @var string
-     */
-    protected $path;
-
-    /**
-     * @var int
-     */
-    protected $port;
-
-    /**
-     * @var string
-     */
-    protected $query;
-
-    /**
-     * @var string
-     */
-    protected $scheme;
-
-    /**
-     * @var string
-     */
-    protected $user;
-
-    /**
-     * @var bool
-     */
-    protected $valid;
-
-    /**
-     * Valid schemes
-     */
-    protected $validSchemes = array(
-        'http',
-        'https',
-        'file',
-    );
-
-    /**
-     * @param  string $uri
-     */
-    public function __construct($uri)
-    {
-        $parsed = parse_url($uri);
-        if (false === $parsed) {
-            $this->valid = false;
-            return;
-        }
-
-        $this->scheme   = isset($parsed['scheme'])   ? $parsed['scheme']   : null;
-        $this->host     = isset($parsed['host'])     ? $parsed['host']     : null;
-        $this->port     = isset($parsed['port'])     ? $parsed['port']     : null;
-        $this->user     = isset($parsed['user'])     ? $parsed['user']     : null;
-        $this->pass     = isset($parsed['pass'])     ? $parsed['pass']     : null;
-        $this->path     = isset($parsed['path'])     ? $parsed['path']     : null;
-        $this->query    = isset($parsed['query'])    ? $parsed['query']    : null;
-        $this->fragment = isset($parsed['fragment']) ? $parsed['fragment'] : null;
-    }
-
-    /**
-     * Create an instance
-     *
-     * Useful for chained validations
-     *
-     * @param  string $uri
-     * @return self
-     */
-    public static function factory($uri)
-    {
-        return new static($uri);
-    }
-
-    /**
-     * Retrieve the host
-     *
-     * @return string
-     */
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    /**
-     * Retrieve the URI path
-     *
-     * @return string
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * Retrieve the scheme
-     *
-     * @return string
-     */
-    public function getScheme()
-    {
-        return $this->scheme;
-    }
-
-    /**
-     * Is the URI valid?
-     *
-     * @return bool
-     */
-    public function isValid()
-    {
-        if (false === $this->valid) {
-            return false;
-        }
-
-        if ($this->scheme && !in_array($this->scheme, $this->validSchemes)) {
-            return false;
-        }
-
-        if ($this->host) {
-            if ($this->path && substr($this->path, 0, 1) != '/') {
-                return false;
-            }
-            return true;
-        }
-
-        // no host, but user and/or port... what?
-        if ($this->user || $this->port) {
-            return false;
-        }
-
-        if ($this->path) {
-            // Check path-only (no host) URI
-            if (substr($this->path, 0, 2) == '//') {
-                return false;
-            }
-            return true;
-        }
-
-        if (! ($this->query || $this->fragment)) {
-            // No host, path, query or fragment - this is not a valid URI
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Is the URI absolute?
-     *
-     * @return bool
-     */
-    public function isAbsolute()
-    {
-        return ($this->scheme !== null);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/AbstractFeed.php b/core/vendor/zendframework/zend-feed/Writer/AbstractFeed.php
deleted file mode 100644
index 26616b0..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/AbstractFeed.php
+++ /dev/null
@@ -1,846 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use DateTime;
-use Zend\Feed\Uri;
-use Zend\Validator;
-
-class AbstractFeed
-{
-    /**
-     * Contains all Feed level date to append in feed output
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Holds the value "atom" or "rss" depending on the feed type set when
-     * when last exported.
-     *
-     * @var string
-     */
-    protected $type = null;
-
-    /**
-     * @var $extensions
-     */
-    protected $extensions;
-
-    /**
-     * Constructor: Primarily triggers the registration of core extensions and
-     * loads those appropriate to this data container.
-     *
-     */
-    public function __construct()
-    {
-        Writer::registerCoreExtensions();
-        $this->_loadExtensions();
-    }
-
-    /**
-     * Set a single author
-     *
-     * The following option keys are supported:
-     * 'name'  => (string) The name
-     * 'email' => (string) An optional email
-     * 'uri'   => (string) An optional and valid URI
-     *
-     * @param array $author
-     * @throws Exception\InvalidArgumentException If any value of $author not follow the format.
-     * @return AbstractFeed
-     */
-    public function addAuthor(array $author)
-    {
-        // Check array values
-        if (!array_key_exists('name', $author)
-            || empty($author['name'])
-            || !is_string($author['name'])
-        ) {
-            throw new Exception\InvalidArgumentException(
-                'Invalid parameter: author array must include a "name" key with a non-empty string value');
-        }
-
-        if (isset($author['email'])) {
-            if (empty($author['email']) || !is_string($author['email'])) {
-                throw new Exception\InvalidArgumentException(
-                    'Invalid parameter: "email" array value must be a non-empty string');
-            }
-        }
-        if (isset($author['uri'])) {
-            if (empty($author['uri']) || !is_string($author['uri']) ||
-                !Uri::factory($author['uri'])->isValid()
-            ) {
-                throw new Exception\InvalidArgumentException(
-                    'Invalid parameter: "uri" array value must be a non-empty string and valid URI/IRI');
-            }
-        }
-
-        $this->data['authors'][] = $author;
-
-        return $this;
-    }
-
-    /**
-     * Set an array with feed authors
-     *
-     * @see addAuthor
-     * @param array $authors
-     * @return AbstractFeed
-     */
-    public function addAuthors(array $authors)
-    {
-        foreach ($authors as $author) {
-            $this->addAuthor($author);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set the copyright entry
-     *
-     * @param  string      $copyright
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setCopyright($copyright)
-    {
-        if (empty($copyright) || !is_string($copyright)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['copyright'] = $copyright;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed creation date
-     *
-     * @param null|int|DateTime
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setDateCreated($date = null)
-    {
-        if ($date === null) {
-            $date = new DateTime();
-        } elseif (is_int($date)) {
-            $date = new DateTime('@' . $date);
-        } elseif (!$date instanceof DateTime) {
-            throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp'
-                                                         . ' passed as parameter');
-        }
-        $this->data['dateCreated'] = $date;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed modification date
-     *
-     * @param null|int|DateTime
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setDateModified($date = null)
-    {
-        if ($date === null) {
-            $date = new DateTime();
-        } elseif (is_int($date)) {
-            $date = new DateTime('@' . $date);
-        } elseif (!$date instanceof DateTime) {
-            throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp'
-                                                         . ' passed as parameter');
-        }
-        $this->data['dateModified'] = $date;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed last-build date. Ignored for Atom 1.0.
-     *
-     * @param null|int|DateTime
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setLastBuildDate($date = null)
-    {
-        if ($date === null) {
-            $date = new DateTime();
-        } elseif (is_int($date)) {
-            $date = new DateTime('@' . $date);
-        } elseif (!$date instanceof DateTime) {
-            throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp'
-                                                         . ' passed as parameter');
-        }
-        $this->data['lastBuildDate'] = $date;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed description
-     *
-     * @param string $description
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setDescription($description)
-    {
-        if (empty($description) || !is_string($description)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['description'] = $description;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed generator entry
-     *
-     * @param array|string $name
-     * @param null|string $version
-     * @param null|string $uri
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setGenerator($name, $version = null, $uri = null)
-    {
-        if (is_array($name)) {
-            $data = $name;
-            if (empty($data['name']) || !is_string($data['name'])) {
-                throw new Exception\InvalidArgumentException('Invalid parameter: "name" must be a non-empty string');
-            }
-            $generator = array('name' => $data['name']);
-            if (isset($data['version'])) {
-                if (empty($data['version']) || !is_string($data['version'])) {
-                    throw new Exception\InvalidArgumentException('Invalid parameter: "version" must be a non-empty string');
-                }
-                $generator['version'] = $data['version'];
-            }
-            if (isset($data['uri'])) {
-                if (empty($data['uri']) || !is_string($data['uri']) || !Uri::factory($data['uri'])->isValid()) {
-                    throw new Exception\InvalidArgumentException('Invalid parameter: "uri" must be a non-empty string and a valid URI/IRI');
-                }
-                $generator['uri'] = $data['uri'];
-            }
-        } else {
-            if (empty($name) || !is_string($name)) {
-                throw new Exception\InvalidArgumentException('Invalid parameter: "name" must be a non-empty string');
-            }
-            $generator = array('name' => $name);
-            if (isset($version)) {
-                if (empty($version) || !is_string($version)) {
-                    throw new Exception\InvalidArgumentException('Invalid parameter: "version" must be a non-empty string');
-                }
-                $generator['version'] = $version;
-            }
-            if (isset($uri)) {
-                if (empty($uri) || !is_string($uri) || !Uri::factory($uri)->isValid()) {
-                    throw new Exception\InvalidArgumentException('Invalid parameter: "uri" must be a non-empty string and a valid URI/IRI');
-                }
-                $generator['uri'] = $uri;
-            }
-        }
-        $this->data['generator'] = $generator;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed ID - URI or URN (via PCRE pattern) supported
-     *
-     * @param string $id
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setId($id)
-    {
-        if ((empty($id) || !is_string($id) || !Uri::factory($id)->isValid())
-            && !preg_match("#^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{1,31}:([a-zA-Z0-9\(\)\+\,\.\:\=\@\;\$\_\!\*\-]|%[0-9a-fA-F]{2})*#", $id)
-            && !$this->_validateTagUri($id)
-        ) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string and valid URI/IRI');
-        }
-        $this->data['id'] = $id;
-
-        return $this;
-    }
-
-    /**
-     * Validate a URI using the tag scheme (RFC 4151)
-     *
-     * @param string $id
-     * @return bool
-     */
-    protected function _validateTagUri($id)
-    {
-        if (preg_match('/^tag:(?P<name>.*),(?P<date>\d{4}-?\d{0,2}-?\d{0,2}):(?P<specific>.*)(.*:)*$/', $id, $matches)) {
-            $dvalid = false;
-            $date = $matches['date'];
-            $d6 = strtotime($date);
-            if ((strlen($date) == 4) && $date <= date('Y')) {
-                $dvalid = true;
-            } elseif ((strlen($date) == 7) && ($d6 < strtotime("now"))) {
-                $dvalid = true;
-            } elseif ((strlen($date) == 10) && ($d6 < strtotime("now"))) {
-                $dvalid = true;
-            }
-            $validator = new Validator\EmailAddress;
-            if ($validator->isValid($matches['name'])) {
-                $nvalid = true;
-            } else {
-                $nvalid = $validator->isValid('info@' . $matches['name']);
-            }
-            return $dvalid && $nvalid;
-        }
-        return false;
-    }
-
-    /**
-     * Set a feed image (URI at minimum). Parameter is a single array with the
-     * required key 'uri'. When rendering as RSS, the required keys are 'uri',
-     * 'title' and 'link'. RSS also specifies three optional parameters 'width',
-     * 'height' and 'description'. Only 'uri' is required and used for Atom rendering.
-     *
-     * @param array $data
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setImage(array $data)
-    {
-        if (empty($data['uri']) || !is_string($data['uri'])
-            || !Uri::factory($data['uri'])->isValid()
-        ) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter \'uri\''
-            . ' must be a non-empty string and valid URI/IRI');
-        }
-        $this->data['image'] = $data;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed language
-     *
-     * @param string $language
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setLanguage($language)
-    {
-        if (empty($language) || !is_string($language)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['language'] = $language;
-
-        return $this;
-    }
-
-    /**
-     * Set a link to the HTML source
-     *
-     * @param string $link
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setLink($link)
-    {
-        if (empty($link) || !is_string($link) || !Uri::factory($link)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string and valid URI/IRI');
-        }
-        $this->data['link'] = $link;
-
-        return $this;
-    }
-
-    /**
-     * Set a link to an XML feed for any feed type/version
-     *
-     * @param string $link
-     * @param string $type
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setFeedLink($link, $type)
-    {
-        if (empty($link) || !is_string($link) || !Uri::factory($link)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "link"" must be a non-empty string and valid URI/IRI');
-        }
-        if (!in_array(strtolower($type), array('rss', 'rdf', 'atom'))) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "type"; You must declare the type of feed the link points to, i.e. RSS, RDF or Atom');
-        }
-        $this->data['feedLinks'][strtolower($type)] = $link;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed title
-     *
-     * @param string $title
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setTitle($title)
-    {
-        if (empty($title) || !is_string($title)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['title'] = $title;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed character encoding
-     *
-     * @param string $encoding
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setEncoding($encoding)
-    {
-        if (empty($encoding) || !is_string($encoding)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['encoding'] = $encoding;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed's base URL
-     *
-     * @param string $url
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function setBaseUrl($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "url" array value'
-            . ' must be a non-empty string and valid URI/IRI');
-        }
-        $this->data['baseUrl'] = $url;
-
-        return $this;
-    }
-
-    /**
-     * Add a Pubsubhubbub hub endpoint URL
-     *
-     * @param string $url
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function addHub($url)
-    {
-        if (empty($url) || !is_string($url) || !Uri::factory($url)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "url" array value'
-            . ' must be a non-empty string and valid URI/IRI');
-        }
-        if (!isset($this->data['hubs'])) {
-            $this->data['hubs'] = array();
-        }
-        $this->data['hubs'][] = $url;
-
-        return $this;
-    }
-
-    /**
-     * Add Pubsubhubbub hub endpoint URLs
-     *
-     * @param array $urls
-     * @return AbstractFeed
-     */
-    public function addHubs(array $urls)
-    {
-        foreach ($urls as $url) {
-            $this->addHub($url);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Add a feed category
-     *
-     * @param array $category
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractFeed
-     */
-    public function addCategory(array $category)
-    {
-        if (!isset($category['term'])) {
-            throw new Exception\InvalidArgumentException('Each category must be an array and '
-            . 'contain at least a "term" element containing the machine '
-            . ' readable category name');
-        }
-        if (isset($category['scheme'])) {
-            if (empty($category['scheme'])
-                || !is_string($category['scheme'])
-                || !Uri::factory($category['scheme'])->isValid()
-            ) {
-                throw new Exception\InvalidArgumentException('The Atom scheme or RSS domain of'
-                . ' a category must be a valid URI');
-            }
-        }
-        if (!isset($this->data['categories'])) {
-            $this->data['categories'] = array();
-        }
-        $this->data['categories'][] = $category;
-
-        return $this;
-    }
-
-    /**
-     * Set an array of feed categories
-     *
-     * @param array $categories
-     * @return AbstractFeed
-     */
-    public function addCategories(array $categories)
-    {
-        foreach ($categories as $category) {
-            $this->addCategory($category);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Get a single author
-     *
-     * @param  int $index
-     * @return string|null
-     */
-    public function getAuthor($index = 0)
-    {
-        if (isset($this->data['authors'][$index])) {
-            return $this->data['authors'][$index];
-        }
-
-        return;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (!array_key_exists('authors', $this->data)) {
-            return;
-        }
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the copyright entry
-     *
-     * @return string|null
-     */
-    public function getCopyright()
-    {
-        if (!array_key_exists('copyright', $this->data)) {
-            return;
-        }
-        return $this->data['copyright'];
-    }
-
-    /**
-     * Get the feed creation date
-     *
-     * @return string|null
-     */
-    public function getDateCreated()
-    {
-        if (!array_key_exists('dateCreated', $this->data)) {
-            return;
-        }
-        return $this->data['dateCreated'];
-    }
-
-    /**
-     * Get the feed modification date
-     *
-     * @return string|null
-     */
-    public function getDateModified()
-    {
-        if (!array_key_exists('dateModified', $this->data)) {
-            return;
-        }
-        return $this->data['dateModified'];
-    }
-
-    /**
-     * Get the feed last-build date
-     *
-     * @return string|null
-     */
-    public function getLastBuildDate()
-    {
-        if (!array_key_exists('lastBuildDate', $this->data)) {
-            return;
-        }
-        return $this->data['lastBuildDate'];
-    }
-
-    /**
-     * Get the feed description
-     *
-     * @return string|null
-     */
-    public function getDescription()
-    {
-        if (!array_key_exists('description', $this->data)) {
-            return;
-        }
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the feed generator entry
-     *
-     * @return string|null
-     */
-    public function getGenerator()
-    {
-        if (!array_key_exists('generator', $this->data)) {
-            return;
-        }
-        return $this->data['generator'];
-    }
-
-    /**
-     * Get the feed ID
-     *
-     * @return string|null
-     */
-    public function getId()
-    {
-        if (!array_key_exists('id', $this->data)) {
-            return;
-        }
-        return $this->data['id'];
-    }
-
-    /**
-     * Get the feed image URI
-     *
-     * @return array
-     */
-    public function getImage()
-    {
-        if (!array_key_exists('image', $this->data)) {
-            return;
-        }
-        return $this->data['image'];
-    }
-
-    /**
-     * Get the feed language
-     *
-     * @return string|null
-     */
-    public function getLanguage()
-    {
-        if (!array_key_exists('language', $this->data)) {
-            return;
-        }
-        return $this->data['language'];
-    }
-
-    /**
-     * Get a link to the HTML source
-     *
-     * @return string|null
-     */
-    public function getLink()
-    {
-        if (!array_key_exists('link', $this->data)) {
-            return;
-        }
-        return $this->data['link'];
-    }
-
-    /**
-     * Get a link to the XML feed
-     *
-     * @return string|null
-     */
-    public function getFeedLinks()
-    {
-        if (!array_key_exists('feedLinks', $this->data)) {
-            return;
-        }
-        return $this->data['feedLinks'];
-    }
-
-    /**
-     * Get the feed title
-     *
-     * @return string|null
-     */
-    public function getTitle()
-    {
-        if (!array_key_exists('title', $this->data)) {
-            return;
-        }
-        return $this->data['title'];
-    }
-
-    /**
-     * Get the feed character encoding
-     *
-     * @return string|null
-     */
-    public function getEncoding()
-    {
-        if (!array_key_exists('encoding', $this->data)) {
-            return 'UTF-8';
-        }
-        return $this->data['encoding'];
-    }
-
-    /**
-     * Get the feed's base url
-     *
-     * @return string|null
-     */
-    public function getBaseUrl()
-    {
-        if (!array_key_exists('baseUrl', $this->data)) {
-            return;
-        }
-        return $this->data['baseUrl'];
-    }
-
-    /**
-     * Get the URLs used as Pubsubhubbub hubs endpoints
-     *
-     * @return string|null
-     */
-    public function getHubs()
-    {
-        if (!array_key_exists('hubs', $this->data)) {
-            return;
-        }
-        return $this->data['hubs'];
-    }
-
-    /**
-     * Get the feed categories
-     *
-     * @return string|null
-     */
-    public function getCategories()
-    {
-        if (!array_key_exists('categories', $this->data)) {
-            return;
-        }
-        return $this->data['categories'];
-    }
-
-    /**
-     * Resets the instance and deletes all data
-     *
-     * @return void
-     */
-    public function reset()
-    {
-        $this->data = array();
-    }
-
-    /**
-     * Set the current feed type being exported to "rss" or "atom". This allows
-     * other objects to gracefully choose whether to execute or not, depending
-     * on their appropriateness for the current type, e.g. renderers.
-     *
-     * @param string $type
-     * @return AbstractFeed
-     */
-    public function setType($type)
-    {
-        $this->type = $type;
-        return $this;
-    }
-
-    /**
-     * Retrieve the current or last feed type exported.
-     *
-     * @return string Value will be "rss" or "atom"
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Unset a specific data point
-     *
-     * @param string $name
-     * @return AbstractFeed
-     */
-    public function remove($name)
-    {
-        if (isset($this->data[$name])) {
-            unset($this->data[$name]);
-        }
-        return $this;
-    }
-
-    /**
-     * Method overloading: call given method on first extension implementing it
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Exception\BadMethodCallException if no extensions implements the method
-     */
-    public function __call($method, $args)
-    {
-        foreach ($this->extensions as $extension) {
-            try {
-                return call_user_func_array(array($extension, $method), $args);
-            } catch (Exception\BadMethodCallException $e) {
-            }
-        }
-        throw new Exception\BadMethodCallException(
-            'Method: ' . $method . ' does not exist and could not be located on a registered Extension'
-        );
-    }
-
-    /**
-     * Load extensions from Zend\Feed\Writer\Writer
-     *
-     * @throws Exception\RuntimeException
-     * @return void
-     */
-    protected function _loadExtensions()
-    {
-        $all     = Writer::getExtensions();
-        $manager = Writer::getExtensionManager();
-        $exts    = $all['feed'];
-        foreach ($exts as $ext) {
-            if (!$manager->has($ext)) {
-                throw new Exception\RuntimeException(sprintf('Unable to load extension "%s"; could not resolve to class', $ext));
-            }
-            $this->extensions[$ext] = $manager->get($ext);
-            $this->extensions[$ext]->setEncoding($this->getEncoding());
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Deleted.php b/core/vendor/zendframework/zend-feed/Writer/Deleted.php
deleted file mode 100644
index 1d72fc9..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Deleted.php
+++ /dev/null
@@ -1,236 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use DateTime;
-use Zend\Feed\Uri;
-
-/**
-*/
-class Deleted
-{
-    /**
-     * Internal array containing all data associated with this entry or item.
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Holds the value "atom" or "rss" depending on the feed type set when
-     * when last exported.
-     *
-     * @var string
-     */
-    protected $type = null;
-
-    /**
-     * Set the feed character encoding
-     *
-     * @param  $encoding
-     * @throws Exception\InvalidArgumentException
-     * @return string|null
-     * @return Deleted
-     */
-    public function setEncoding($encoding)
-    {
-        if (empty($encoding) || !is_string($encoding)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['encoding'] = $encoding;
-
-        return $this;
-    }
-
-    /**
-     * Get the feed character encoding
-     *
-     * @return string|null
-     */
-    public function getEncoding()
-    {
-        if (!array_key_exists('encoding', $this->data)) {
-            return 'UTF-8';
-        }
-        return $this->data['encoding'];
-    }
-
-    /**
-     * Unset a specific data point
-     *
-     * @param string $name
-     * @return Deleted
-     */
-    public function remove($name)
-    {
-        if (isset($this->data[$name])) {
-            unset($this->data[$name]);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set the current feed type being exported to "rss" or "atom". This allows
-     * other objects to gracefully choose whether to execute or not, depending
-     * on their appropriateness for the current type, e.g. renderers.
-     *
-     * @param string $type
-     * @return Deleted
-     */
-    public function setType($type)
-    {
-        $this->type = $type;
-        return $this;
-    }
-
-    /**
-     * Retrieve the current or last feed type exported.
-     *
-     * @return string Value will be "rss" or "atom"
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Set reference
-     *
-     * @param $reference
-     * @throws Exception\InvalidArgumentException
-     * @return Deleted
-     */
-    public function setReference($reference)
-    {
-        if (empty($reference) || !is_string($reference)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: reference must be a non-empty string');
-        }
-        $this->data['reference'] = $reference;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getReference()
-    {
-        if (!array_key_exists('reference', $this->data)) {
-            return;
-        }
-        return $this->data['reference'];
-    }
-
-    /**
-     * Set when
-     *
-     * @param null|string|DateTime $date
-     * @throws Exception\InvalidArgumentException
-     * @return Deleted
-     */
-    public function setWhen($date = null)
-    {
-        if ($date === null) {
-            $date = new DateTime();
-        } elseif (is_int($date)) {
-            $date = new DateTime('@' . $date);
-        } elseif (!$date instanceof DateTime) {
-            throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp'
-            . ' passed as parameter');
-        }
-        $this->data['when'] = $date;
-
-        return $this;
-    }
-
-    /**
-     * @return DateTime
-     */
-    public function getWhen()
-    {
-        if (!array_key_exists('when', $this->data)) {
-            return;
-        }
-        return $this->data['when'];
-    }
-
-    /**
-     * Set by
-     *
-     * @param array $by
-     * @throws Exception\InvalidArgumentException
-     * @return Deleted
-     */
-    public function setBy(array $by)
-    {
-        $author = array();
-        if (!array_key_exists('name', $by)
-            || empty($by['name'])
-            || !is_string($by['name'])
-        ) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: author array must include a'
-            . ' "name" key with a non-empty string value');
-        }
-        $author['name'] = $by['name'];
-        if (isset($by['email'])) {
-            if (empty($by['email']) || !is_string($by['email'])) {
-                throw new Exception\InvalidArgumentException('Invalid parameter: "email" array'
-                . ' value must be a non-empty string');
-            }
-            $author['email'] = $by['email'];
-        }
-        if (isset($by['uri'])) {
-            if (empty($by['uri'])
-                || !is_string($by['uri'])
-                || !Uri::factory($by['uri'])->isValid()
-            ) {
-                throw new Exception\InvalidArgumentException('Invalid parameter: "uri" array value must'
-                 . ' be a non-empty string and valid URI/IRI');
-            }
-            $author['uri'] = $by['uri'];
-        }
-        $this->data['by'] = $author;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getBy()
-    {
-        if (!array_key_exists('by', $this->data)) {
-            return;
-        }
-        return $this->data['by'];
-    }
-
-    /**
-     * @param string $comment
-     * @return Deleted
-     */
-    public function setComment($comment)
-    {
-        $this->data['comment'] = $comment;
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getComment()
-    {
-        if (!array_key_exists('comment', $this->data)) {
-            return;
-        }
-        return $this->data['comment'];
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Entry.php
deleted file mode 100644
index 78b968d..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Entry.php
+++ /dev/null
@@ -1,765 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use DateTime;
-use Zend\Feed\Uri;
-
-/**
-*/
-class Entry
-{
-    /**
-     * Internal array containing all data associated with this entry or item.
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Registered extensions
-     *
-     * @var array
-     */
-    protected $extensions = array();
-
-    /**
-     * Holds the value "atom" or "rss" depending on the feed type set when
-     * when last exported.
-     *
-     * @var string
-     */
-    protected $type = null;
-
-    /**
-     * Constructor: Primarily triggers the registration of core extensions and
-     * loads those appropriate to this data container.
-     *
-     */
-    public function __construct()
-    {
-        Writer::registerCoreExtensions();
-        $this->_loadExtensions();
-    }
-
-    /**
-     * Set a single author
-     *
-     * The following option keys are supported:
-     * 'name'  => (string) The name
-     * 'email' => (string) An optional email
-     * 'uri'   => (string) An optional and valid URI
-     *
-     * @param array $author
-     * @throws Exception\InvalidArgumentException If any value of $author not follow the format.
-     * @return Entry
-     */
-    public function addAuthor(array $author)
-    {
-        // Check array values
-        if (!array_key_exists('name', $author)
-            || empty($author['name'])
-            || !is_string($author['name'])
-        ) {
-            throw new Exception\InvalidArgumentException(
-                'Invalid parameter: author array must include a "name" key with a non-empty string value');
-        }
-
-        if (isset($author['email'])) {
-            if (empty($author['email']) || !is_string($author['email'])) {
-                throw new Exception\InvalidArgumentException(
-                    'Invalid parameter: "email" array value must be a non-empty string');
-            }
-        }
-        if (isset($author['uri'])) {
-            if (empty($author['uri']) || !is_string($author['uri']) ||
-                !Uri::factory($author['uri'])->isValid()
-            ) {
-                throw new Exception\InvalidArgumentException(
-                    'Invalid parameter: "uri" array value must be a non-empty string and valid URI/IRI');
-            }
-        }
-
-        $this->data['authors'][] = $author;
-
-        return $this;
-    }
-
-    /**
-     * Set an array with feed authors
-     *
-     * @see addAuthor
-     * @param array $authors
-     * @return Entry
-     */
-    public function addAuthors(array $authors)
-    {
-        foreach ($authors as $author) {
-            $this->addAuthor($author);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set the feed character encoding
-     *
-     * @param string $encoding
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setEncoding($encoding)
-    {
-        if (empty($encoding) || !is_string($encoding)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['encoding'] = $encoding;
-
-        return $this;
-    }
-
-    /**
-     * Get the feed character encoding
-     *
-     * @return string|null
-     */
-    public function getEncoding()
-    {
-        if (!array_key_exists('encoding', $this->data)) {
-            return 'UTF-8';
-        }
-        return $this->data['encoding'];
-    }
-
-    /**
-     * Set the copyright entry
-     *
-     * @param string $copyright
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setCopyright($copyright)
-    {
-        if (empty($copyright) || !is_string($copyright)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['copyright'] = $copyright;
-
-        return $this;
-    }
-
-    /**
-     * Set the entry's content
-     *
-     * @param string $content
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setContent($content)
-    {
-        if (empty($content) || !is_string($content)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['content'] = $content;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed creation date
-     *
-     * @param null|int|DateTime $date
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setDateCreated($date = null)
-    {
-        if ($date === null) {
-            $date = new DateTime();
-        } elseif (is_int($date)) {
-            $date = new DateTime('@' . $date);
-        } elseif (!$date instanceof DateTime) {
-            throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp passed as parameter');
-        }
-        $this->data['dateCreated'] = $date;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed modification date
-     *
-     * @param null|int|DateTime $date
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setDateModified($date = null)
-    {
-        if ($date === null) {
-            $date = new DateTime();
-        } elseif (is_int($date)) {
-            $date = new DateTime('@' . $date);
-        } elseif (!$date instanceof DateTime) {
-            throw new Exception\InvalidArgumentException('Invalid DateTime object or UNIX Timestamp passed as parameter');
-        }
-        $this->data['dateModified'] = $date;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed description
-     *
-     * @param string $description
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setDescription($description)
-    {
-        if (empty($description) || !is_string($description)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['description'] = $description;
-
-        return $this;
-    }
-
-    /**
-     * Set the feed ID
-     *
-     * @param string $id
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setId($id)
-    {
-        if (empty($id) || !is_string($id)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['id'] = $id;
-
-        return $this;
-    }
-
-    /**
-     * Set a link to the HTML source of this entry
-     *
-     * @param string $link
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setLink($link)
-    {
-        if (empty($link) || !is_string($link) || !Uri::factory($link)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string and valid URI/IRI');
-        }
-        $this->data['link'] = $link;
-
-        return $this;
-    }
-
-    /**
-     * Set the number of comments associated with this entry
-     *
-     * @param int $count
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setCommentCount($count)
-    {
-        if (!is_numeric($count) || (int) $count != $count || (int) $count < 0) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "count" must be a positive integer number or zero');
-        }
-        $this->data['commentCount'] = (int) $count;
-
-        return $this;
-    }
-
-    /**
-     * Set a link to a HTML page containing comments associated with this entry
-     *
-     * @param string $link
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setCommentLink($link)
-    {
-        if (empty($link) || !is_string($link) || !Uri::factory($link)->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "link" must be a non-empty string and valid URI/IRI');
-        }
-        $this->data['commentLink'] = $link;
-
-        return $this;
-    }
-
-    /**
-     * Set a link to an XML feed for any comments associated with this entry
-     *
-     * @param array $link
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setCommentFeedLink(array $link)
-    {
-        if (!isset($link['uri']) || !is_string($link['uri']) || !Uri::factory($link['uri'])->isValid()) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "link" must be a non-empty string and valid URI/IRI');
-        }
-        if (!isset($link['type']) || !in_array($link['type'], array('atom', 'rss', 'rdf'))) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: "type" must be one'
-            . ' of "atom", "rss" or "rdf"');
-        }
-        if (!isset($this->data['commentFeedLinks'])) {
-            $this->data['commentFeedLinks'] = array();
-        }
-        $this->data['commentFeedLinks'][] = $link;
-
-        return $this;
-    }
-
-    /**
-     * Set a links to an XML feed for any comments associated with this entry.
-     * Each link is an array with keys "uri" and "type", where type is one of:
-     * "atom", "rss" or "rdf".
-     *
-     * @param array $links
-     * @return Entry
-     */
-    public function setCommentFeedLinks(array $links)
-    {
-        foreach ($links as $link) {
-            $this->setCommentFeedLink($link);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set the feed title
-     *
-     * @param string $title
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setTitle($title)
-    {
-        if (empty($title) || !is_string($title)) {
-            throw new Exception\InvalidArgumentException('Invalid parameter: parameter must be a non-empty string');
-        }
-        $this->data['title'] = $title;
-
-        return $this;
-    }
-
-    /**
-     * Get an array with feed authors
-     *
-     * @return array
-     */
-    public function getAuthors()
-    {
-        if (!array_key_exists('authors', $this->data)) {
-            return;
-        }
-        return $this->data['authors'];
-    }
-
-    /**
-     * Get the entry content
-     *
-     * @return string
-     */
-    public function getContent()
-    {
-        if (!array_key_exists('content', $this->data)) {
-            return;
-        }
-        return $this->data['content'];
-    }
-
-    /**
-     * Get the entry copyright information
-     *
-     * @return string
-     */
-    public function getCopyright()
-    {
-        if (!array_key_exists('copyright', $this->data)) {
-            return;
-        }
-        return $this->data['copyright'];
-    }
-
-    /**
-     * Get the entry creation date
-     *
-     * @return string
-     */
-    public function getDateCreated()
-    {
-        if (!array_key_exists('dateCreated', $this->data)) {
-            return;
-        }
-        return $this->data['dateCreated'];
-    }
-
-    /**
-     * Get the entry modification date
-     *
-     * @return string
-     */
-    public function getDateModified()
-    {
-        if (!array_key_exists('dateModified', $this->data)) {
-            return;
-        }
-        return $this->data['dateModified'];
-    }
-
-    /**
-     * Get the entry description
-     *
-     * @return string
-     */
-    public function getDescription()
-    {
-        if (!array_key_exists('description', $this->data)) {
-            return;
-        }
-        return $this->data['description'];
-    }
-
-    /**
-     * Get the entry ID
-     *
-     * @return string
-     */
-    public function getId()
-    {
-        if (!array_key_exists('id', $this->data)) {
-            return;
-        }
-        return $this->data['id'];
-    }
-
-    /**
-     * Get a link to the HTML source
-     *
-     * @return string|null
-     */
-    public function getLink()
-    {
-        if (!array_key_exists('link', $this->data)) {
-            return;
-        }
-        return $this->data['link'];
-    }
-
-
-    /**
-     * Get all links
-     *
-     * @return array
-     */
-    public function getLinks()
-    {
-        if (!array_key_exists('links', $this->data)) {
-            return;
-        }
-        return $this->data['links'];
-    }
-
-    /**
-     * Get the entry title
-     *
-     * @return string
-     */
-    public function getTitle()
-    {
-        if (!array_key_exists('title', $this->data)) {
-            return;
-        }
-        return $this->data['title'];
-    }
-
-    /**
-     * Get the number of comments/replies for current entry
-     *
-     * @return int
-     */
-    public function getCommentCount()
-    {
-        if (!array_key_exists('commentCount', $this->data)) {
-            return;
-        }
-        return $this->data['commentCount'];
-    }
-
-    /**
-     * Returns a URI pointing to the HTML page where comments can be made on this entry
-     *
-     * @return string
-     */
-    public function getCommentLink()
-    {
-        if (!array_key_exists('commentLink', $this->data)) {
-            return;
-        }
-        return $this->data['commentLink'];
-    }
-
-    /**
-     * Returns an array of URIs pointing to a feed of all comments for this entry
-     * where the array keys indicate the feed type (atom, rss or rdf).
-     *
-     * @return string
-     */
-    public function getCommentFeedLinks()
-    {
-        if (!array_key_exists('commentFeedLinks', $this->data)) {
-            return;
-        }
-        return $this->data['commentFeedLinks'];
-    }
-
-    /**
-     * Add an entry category
-     *
-     * @param array $category
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function addCategory(array $category)
-    {
-        if (!isset($category['term'])) {
-            throw new Exception\InvalidArgumentException('Each category must be an array and '
-            . 'contain at least a "term" element containing the machine '
-            . ' readable category name');
-        }
-        if (isset($category['scheme'])) {
-            if (empty($category['scheme'])
-                || !is_string($category['scheme'])
-                || !Uri::factory($category['scheme'])->isValid()
-            ) {
-                throw new Exception\InvalidArgumentException('The Atom scheme or RSS domain of'
-                . ' a category must be a valid URI');
-            }
-        }
-        if (!isset($this->data['categories'])) {
-            $this->data['categories'] = array();
-        }
-        $this->data['categories'][] = $category;
-
-        return $this;
-    }
-
-    /**
-     * Set an array of entry categories
-     *
-     * @param array $categories
-     * @return Entry
-     */
-    public function addCategories(array $categories)
-    {
-        foreach ($categories as $category) {
-            $this->addCategory($category);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Get the entry categories
-     *
-     * @return string|null
-     */
-    public function getCategories()
-    {
-        if (!array_key_exists('categories', $this->data)) {
-            return;
-        }
-        return $this->data['categories'];
-    }
-
-    /**
-     * Adds an enclosure to the entry. The array parameter may contain the
-     * keys 'uri', 'type' and 'length'. Only 'uri' is required for Atom, though the
-     * others must also be provided or RSS rendering (where they are required)
-     * will throw an Exception.
-     *
-     * @param array $enclosure
-     * @throws Exception\InvalidArgumentException
-     * @return Entry
-     */
-    public function setEnclosure(array $enclosure)
-    {
-        if (!isset($enclosure['uri'])) {
-            throw new Exception\InvalidArgumentException('Enclosure "uri" is not set');
-        }
-        if (!Uri::factory($enclosure['uri'])->isValid()) {
-            throw new Exception\InvalidArgumentException('Enclosure "uri" is not a valid URI/IRI');
-        }
-        $this->data['enclosure'] = $enclosure;
-
-        return $this;
-    }
-
-    /**
-     * Retrieve an array of all enclosures to be added to entry.
-     *
-     * @return array
-     */
-    public function getEnclosure()
-    {
-        if (!array_key_exists('enclosure', $this->data)) {
-            return;
-        }
-        return $this->data['enclosure'];
-    }
-
-    /**
-     * Unset a specific data point
-     *
-     * @param string $name
-     * @return Entry
-     */
-    public function remove($name)
-    {
-        if (isset($this->data[$name])) {
-            unset($this->data[$name]);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Get registered extensions
-     *
-     * @return array
-     */
-    public function getExtensions()
-    {
-        return $this->extensions;
-    }
-
-    /**
-     * Return an Extension object with the matching name (postfixed with _Entry)
-     *
-     * @param string $name
-     * @return object
-     */
-    public function getExtension($name)
-    {
-        if (array_key_exists($name . '\\Entry', $this->extensions)) {
-            return $this->extensions[$name . '\\Entry'];
-        }
-        return;
-    }
-
-    /**
-     * Set the current feed type being exported to "rss" or "atom". This allows
-     * other objects to gracefully choose whether to execute or not, depending
-     * on their appropriateness for the current type, e.g. renderers.
-     *
-     * @param string $type
-     * @return Entry
-     */
-    public function setType($type)
-    {
-        $this->type = $type;
-        return $this;
-    }
-
-    /**
-     * Retrieve the current or last feed type exported.
-     *
-     * @return string Value will be "rss" or "atom"
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Method overloading: call given method on first extension implementing it
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Exception\BadMethodCallException if no extensions implements the method
-     */
-    public function __call($method, $args)
-    {
-        foreach ($this->extensions as $extension) {
-            try {
-                return call_user_func_array(array($extension, $method), $args);
-            } catch (\BadMethodCallException $e) {
-            }
-        }
-        throw new Exception\BadMethodCallException('Method: ' . $method
-            . ' does not exist and could not be located on a registered Extension');
-    }
-
-    /**
-     * Creates a new Zend\Feed\Writer\Source data container for use. This is NOT
-     * added to the current feed automatically, but is necessary to create a
-     * container with some initial values preset based on the current feed data.
-     *
-     * @return Source
-     */
-    public function createSource()
-    {
-        $source = new Source;
-        if ($this->getEncoding()) {
-            $source->setEncoding($this->getEncoding());
-        }
-        $source->setType($this->getType());
-        return $source;
-    }
-
-    /**
-     * Appends a Zend\Feed\Writer\Entry object representing a new entry/item
-     * the feed data container's internal group of entries.
-     *
-     * @param Source $source
-     * @return Entry
-     */
-    public function setSource(Source $source)
-    {
-        $this->data['source'] = $source;
-        return $this;
-    }
-
-    /**
-     * @return Source
-     */
-    public function getSource()
-    {
-        if (isset($this->data['source'])) {
-            return $this->data['source'];
-        }
-        return;
-    }
-
-    /**
-     * Load extensions from Zend\Feed\Writer\Writer
-     *
-     * @return void
-     */
-    protected function _loadExtensions()
-    {
-        $all     = Writer::getExtensions();
-        $manager = Writer::getExtensionManager();
-        $exts    = $all['entry'];
-        foreach ($exts as $ext) {
-            $this->extensions[$ext] = $manager->get($ext);
-            $this->extensions[$ext]->setEncoding($this->getEncoding());
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Exception/BadMethodCallException.php b/core/vendor/zendframework/zend-feed/Writer/Exception/BadMethodCallException.php
deleted file mode 100644
index b2ea2be..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Exception;
-
-use Zend\Feed\Exception;
-
-/**
- * Feed exceptions
- *
- * Class to represent exceptions that occur during Feed operations.
- */
-class BadMethodCallException extends Exception\BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-feed/Writer/Exception/ExceptionInterface.php
deleted file mode 100644
index ee8bdaf..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Exception;
-
-/**
- * Feed exceptions
- *
- * Interface to represent exceptions that occur during Feed operations.
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-feed/Writer/Exception/InvalidArgumentException.php
deleted file mode 100644
index d8c4a8b..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Exception;
-
-use Zend\Feed\Exception;
-
-/**
- * Feed exceptions
- *
- * Class to represent exceptions that occur during Feed operations.
- */
-class InvalidArgumentException extends Exception\InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Exception/RuntimeException.php b/core/vendor/zendframework/zend-feed/Writer/Exception/RuntimeException.php
deleted file mode 100644
index ae8ee36..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Exception/RuntimeException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Exception;
-
-use Zend\Feed\Exception;
-
-class RuntimeException extends Exception\RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/AbstractRenderer.php b/core/vendor/zendframework/zend-feed/Writer/Extension/AbstractRenderer.php
deleted file mode 100644
index 1a32b47..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/AbstractRenderer.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension;
-
-use DOMDocument;
-use DOMElement;
-
-/**
-*/
-abstract class AbstractRenderer implements RendererInterface
-{
-    /**
-     * @var DOMDocument
-     */
-    protected $dom = null;
-
-    /**
-     * @var mixed
-     */
-    protected $entry = null;
-
-    /**
-     * @var DOMElement
-     */
-    protected $base = null;
-
-    /**
-     * @var mixed
-     */
-    protected $container = null;
-
-    /**
-     * @var string
-     */
-    protected $type = null;
-
-    /**
-     * @var DOMElement
-     */
-    protected $rootElement = null;
-
-    /**
-     * Encoding of all text values
-     *
-     * @var string
-     */
-    protected $encoding = 'UTF-8';
-
-    /**
-     * Set the data container
-     *
-     * @param  mixed $container
-     * @return AbstractRenderer
-     */
-    public function setDataContainer($container)
-    {
-        $this->container = $container;
-        return $this;
-    }
-
-    /**
-     * Set feed encoding
-     *
-     * @param  string $enc
-     * @return AbstractRenderer
-     */
-    public function setEncoding($enc)
-    {
-        $this->encoding = $enc;
-        return $this;
-    }
-
-    /**
-     * Get feed encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        return $this->encoding;
-    }
-
-    /**
-     * Set DOMDocument and DOMElement on which to operate
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $base
-     * @return AbstractRenderer
-     */
-    public function setDomDocument(DOMDocument $dom, DOMElement $base)
-    {
-        $this->dom  = $dom;
-        $this->base = $base;
-        return $this;
-    }
-
-    /**
-     * Get data container being rendered
-     *
-     * @return mixed
-     */
-    public function getDataContainer()
-    {
-        return $this->container;
-    }
-
-    /**
-     * Set feed type
-     *
-     * @param  string $type
-     * @return AbstractRenderer
-     */
-    public function setType($type)
-    {
-        $this->type = $type;
-        return $this;
-    }
-
-    /**
-     * Get feedtype
-     *
-     * @return string
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Set root element of document
-     *
-     * @param  DOMElement $root
-     * @return AbstractRenderer
-     */
-    public function setRootElement(DOMElement $root)
-    {
-        $this->rootElement = $root;
-        return $this;
-    }
-
-    /**
-     * Get root element
-     *
-     * @return DOMElement
-     */
-    public function getRootElement()
-    {
-        return $this->rootElement;
-    }
-
-    /**
-     * Append namespaces to feed
-     *
-     * @return void
-     */
-    abstract protected function _appendNamespaces();
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/Atom/Renderer/Feed.php b/core/vendor/zendframework/zend-feed/Writer/Extension/Atom/Renderer/Feed.php
deleted file mode 100644
index 25571c0..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/Atom/Renderer/Feed.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\Atom\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Feed extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render feed
-     *
-     * @return void
-     */
-    public function render()
-    {
-        /**
-         * RSS 2.0 only. Used mainly to include Atom links and
-         * Pubsubhubbub Hub endpoint URIs under the Atom namespace
-         */
-        if (strtolower($this->getType()) == 'atom') {
-            return;
-        }
-        $this->_setFeedLinks($this->dom, $this->base);
-        $this->_setHubs($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append namespaces to root element of feed
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:atom',
-            'http://www.w3.org/2005/Atom');
-    }
-
-    /**
-     * Set feed link elements
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setFeedLinks(DOMDocument $dom, DOMElement $root)
-    {
-        $flinks = $this->getDataContainer()->getFeedLinks();
-        if (!$flinks || empty($flinks)) {
-            return;
-        }
-        foreach ($flinks as $type => $href) {
-            if (strtolower($type) == $this->getType()) { // issue 2605
-                $mime  = 'application/' . strtolower($type) . '+xml';
-                $flink = $dom->createElement('atom:link');
-                $root->appendChild($flink);
-                $flink->setAttribute('rel', 'self');
-                $flink->setAttribute('type', $mime);
-                $flink->setAttribute('href', $href);
-            }
-        }
-        $this->called = true;
-    }
-
-    /**
-     * Set PuSH hubs
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setHubs(DOMDocument $dom, DOMElement $root)
-    {
-        $hubs = $this->getDataContainer()->getHubs();
-        if (!$hubs || empty($hubs)) {
-            return;
-        }
-        foreach ($hubs as $hubUrl) {
-            $hub = $dom->createElement('atom:link');
-            $hub->setAttribute('rel', 'hub');
-            $hub->setAttribute('href', $hubUrl);
-            $root->appendChild($hub);
-        }
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/Content/Renderer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/Content/Renderer/Entry.php
deleted file mode 100644
index 939b249..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/Content/Renderer/Entry.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\Content\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render entry
-     *
-     * @return void
-     */
-    public function render()
-    {
-        if (strtolower($this->getType()) == 'atom') {
-            return;
-        }
-        $this->_setContent($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append namespaces to root element
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:content',
-            'http://purl.org/rss/1.0/modules/content/');
-    }
-
-    /**
-     * Set entry content
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setContent(DOMDocument $dom, DOMElement $root)
-    {
-        $content = $this->getDataContainer()->getContent();
-        if (!$content) {
-            return;
-        }
-        $element = $dom->createElement('content:encoded');
-        $root->appendChild($element);
-        $cdata = $dom->createCDATASection($content);
-        $element->appendChild($cdata);
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/DublinCore/Renderer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/DublinCore/Renderer/Entry.php
deleted file mode 100644
index 5cc86cd..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/DublinCore/Renderer/Entry.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\DublinCore\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render entry
-     *
-     * @return void
-     */
-    public function render()
-    {
-        if (strtolower($this->getType()) == 'atom') {
-            return;
-        }
-        $this->_setAuthors($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append namespaces to entry
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:dc',
-            'http://purl.org/dc/elements/1.1/');
-    }
-
-    /**
-     * Set entry author elements
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->getDataContainer()->getAuthors();
-        if (!$authors || empty($authors)) {
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('dc:creator');
-            if (array_key_exists('name', $data)) {
-                $text = $dom->createTextNode($data['name']);
-                $author->appendChild($text);
-                $root->appendChild($author);
-            }
-        }
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/DublinCore/Renderer/Feed.php b/core/vendor/zendframework/zend-feed/Writer/Extension/DublinCore/Renderer/Feed.php
deleted file mode 100644
index 160b5a4..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/DublinCore/Renderer/Feed.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\DublinCore\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Feed extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render feed
-     *
-     * @return void
-     */
-    public function render()
-    {
-        if (strtolower($this->getType()) == 'atom') {
-            return;
-        }
-        $this->_setAuthors($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append namespaces to feed element
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:dc',
-            'http://purl.org/dc/elements/1.1/');
-    }
-
-    /**
-     * Set feed authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->getDataContainer()->getAuthors();
-        if (!$authors || empty($authors)) {
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('dc:creator');
-            if (array_key_exists('name', $data)) {
-                $text = $dom->createTextNode($data['name']);
-                $author->appendChild($text);
-                $root->appendChild($author);
-            }
-        }
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Entry.php
deleted file mode 100644
index c06e8a9..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Entry.php
+++ /dev/null
@@ -1,246 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\ITunes;
-
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Extension;
-use Zend\Stdlib\StringUtils;
-use Zend\Stdlib\StringWrapper\StringWrapperInterface;
-
-/**
-*/
-class Entry
-{
-    /**
-     * Array of Feed data for rendering by Extension's renderers
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Encoding of all text values
-     *
-     * @var string
-     */
-    protected $encoding = 'UTF-8';
-
-    /**
-     * The used string wrapper supporting encoding
-     *
-     * @var StringWrapperInterface
-     */
-    protected $stringWrapper;
-
-    public function __construct()
-    {
-        $this->stringWrapper = StringUtils::getWrapper($this->encoding);
-    }
-
-    /**
-     * Set feed encoding
-     *
-     * @param  string $enc
-     * @return Entry
-     */
-    public function setEncoding($enc)
-    {
-        $this->stringWrapper = StringUtils::getWrapper($enc);
-        $this->encoding      = $enc;
-        return $this;
-    }
-
-    /**
-     * Get feed encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        return $this->encoding;
-    }
-
-    /**
-     * Set a block value of "yes" or "no". You may also set an empty string.
-     *
-     * @param  string
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesBlock($value)
-    {
-        if (!ctype_alpha($value) && strlen($value) > 0) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
-            . ' contain alphabetic characters');
-        }
-
-        if ($this->stringWrapper->strlen($value) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
-            . ' contain a maximum of 255 characters');
-        }
-        $this->data['block'] = $value;
-    }
-
-    /**
-     * Add authors to itunes entry
-     *
-     * @param  array $values
-     * @return Entry
-     */
-    public function addItunesAuthors(array $values)
-    {
-        foreach ($values as $value) {
-            $this->addItunesAuthor($value);
-        }
-        return $this;
-    }
-
-    /**
-     * Add author to itunes entry
-     *
-     * @param  string $value
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function addItunesAuthor($value)
-    {
-        if ($this->stringWrapper->strlen($value) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "author" may only'
-            . ' contain a maximum of 255 characters each');
-        }
-        if (!isset($this->data['authors'])) {
-            $this->data['authors'] = array();
-        }
-        $this->data['authors'][] = $value;
-        return $this;
-    }
-
-    /**
-     * Set duration
-     *
-     * @param  int $value
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesDuration($value)
-    {
-        $value = (string) $value;
-        if (!ctype_digit($value)
-            && !preg_match("/^\d+:[0-5]{1}[0-9]{1}$/", $value)
-            && !preg_match("/^\d+:[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/", $value)
-        ) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "duration" may only'
-            . ' be of a specified [[HH:]MM:]SS format');
-        }
-        $this->data['duration'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set "explicit" flag
-     *
-     * @param  bool $value
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesExplicit($value)
-    {
-        if (!in_array($value, array('yes', 'no', 'clean'))) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "explicit" may only'
-            . ' be one of "yes", "no" or "clean"');
-        }
-        $this->data['explicit'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set keywords
-     *
-     * @param  array $value
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesKeywords(array $value)
-    {
-        if (count($value) > 12) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
-            . ' contain a maximum of 12 terms');
-        }
-
-        $concat = implode(',', $value);
-        if ($this->stringWrapper->strlen($concat) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
-            . ' have a concatenated length of 255 chars where terms are delimited'
-            . ' by a comma');
-        }
-        $this->data['keywords'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set subtitle
-     *
-     * @param  string $value
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesSubtitle($value)
-    {
-        if ($this->stringWrapper->strlen($value) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "subtitle" may only'
-            . ' contain a maximum of 255 characters');
-        }
-        $this->data['subtitle'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set summary
-     *
-     * @param  string $value
-     * @return Entry
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesSummary($value)
-    {
-        if ($this->stringWrapper->strlen($value) > 4000) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "summary" may only'
-            . ' contain a maximum of 4000 characters');
-        }
-        $this->data['summary'] = $value;
-        return $this;
-    }
-
-    /**
-     * Overloading to itunes specific setters
-     *
-     * @param  string $method
-     * @param  array $params
-     * @throws Writer\Exception\BadMethodCallException
-     * @return mixed
-     */
-    public function __call($method, array $params)
-    {
-        $point = lcfirst(substr($method, 9));
-        if (!method_exists($this, 'setItunes' . ucfirst($point))
-            && !method_exists($this, 'addItunes' . ucfirst($point))
-        ) {
-            throw new Writer\Exception\BadMethodCallException(
-                'invalid method: ' . $method
-            );
-        }
-        if (!array_key_exists($point, $this->data)
-            || empty($this->data[$point])
-        ) {
-            return;
-        }
-        return $this->data[$point];
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Feed.php b/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Feed.php
deleted file mode 100644
index 08a6b13..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Feed.php
+++ /dev/null
@@ -1,362 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\ITunes;
-
-use Zend\Feed\Uri;
-use Zend\Feed\Writer;
-use Zend\Stdlib\StringUtils;
-use Zend\Stdlib\StringWrapper\StringWrapperInterface;
-
-/**
-*/
-class Feed
-{
-    /**
-     * Array of Feed data for rendering by Extension's renderers
-     *
-     * @var array
-     */
-    protected $data = array();
-
-    /**
-     * Encoding of all text values
-     *
-     * @var string
-     */
-    protected $encoding = 'UTF-8';
-
-    /**
-     * The used string wrapper supporting encoding
-     *
-     * @var StringWrapperInterface
-     */
-    protected $stringWrapper;
-
-    /**
-     * Constructor
-     */
-    public function __construct()
-    {
-        $this->stringWrapper = StringUtils::getWrapper($this->encoding);
-    }
-
-    /**
-     * Set feed encoding
-     *
-     * @param  string $enc
-     * @return Feed
-     */
-    public function setEncoding($enc)
-    {
-        $this->stringWrapper = StringUtils::getWrapper($enc);
-        $this->encoding      = $enc;
-        return $this;
-    }
-
-    /**
-     * Get feed encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        return $this->encoding;
-    }
-
-    /**
-     * Set a block value of "yes" or "no". You may also set an empty string.
-     *
-     * @param  string
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesBlock($value)
-    {
-        if (!ctype_alpha($value) && strlen($value) > 0) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
-            . ' contain alphabetic characters');
-        }
-        if ($this->stringWrapper->strlen($value) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only'
-            . ' contain a maximum of 255 characters');
-        }
-        $this->data['block'] = $value;
-        return $this;
-    }
-
-    /**
-     * Add feed authors
-     *
-     * @param  array $values
-     * @return Feed
-     */
-    public function addItunesAuthors(array $values)
-    {
-        foreach ($values as $value) {
-            $this->addItunesAuthor($value);
-        }
-        return $this;
-    }
-
-    /**
-     * Add feed author
-     *
-     * @param  string $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function addItunesAuthor($value)
-    {
-        if ($this->stringWrapper->strlen($value) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "author" may only'
-            . ' contain a maximum of 255 characters each');
-        }
-        if (!isset($this->data['authors'])) {
-            $this->data['authors'] = array();
-        }
-        $this->data['authors'][] = $value;
-        return $this;
-    }
-
-    /**
-     * Set feed categories
-     *
-     * @param  array $values
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesCategories(array $values)
-    {
-        if (!isset($this->data['categories'])) {
-            $this->data['categories'] = array();
-        }
-        foreach ($values as $key => $value) {
-            if (!is_array($value)) {
-                if ($this->stringWrapper->strlen($value) > 255) {
-                    throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only'
-                    . ' contain a maximum of 255 characters each');
-                }
-                $this->data['categories'][] = $value;
-            } else {
-                if ($this->stringWrapper->strlen($key) > 255) {
-                    throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only'
-                    . ' contain a maximum of 255 characters each');
-                }
-                $this->data['categories'][$key] = array();
-                foreach ($value as $val) {
-                    if ($this->stringWrapper->strlen($val) > 255) {
-                        throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only'
-                        . ' contain a maximum of 255 characters each');
-                    }
-                    $this->data['categories'][$key][] = $val;
-                }
-            }
-        }
-        return $this;
-    }
-
-    /**
-     * Set feed image (icon)
-     *
-     * @param  string $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesImage($value)
-    {
-        if (!Uri::factory($value)->isValid()) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "image" may only'
-            . ' be a valid URI/IRI');
-        }
-        if (!in_array(substr($value, -3), array('jpg', 'png'))) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "image" may only'
-            . ' use file extension "jpg" or "png" which must be the last three'
-            . ' characters of the URI (i.e. no query string or fragment)');
-        }
-        $this->data['image'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set feed cumulative duration
-     *
-     * @param  string $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesDuration($value)
-    {
-        $value = (string) $value;
-        if (!ctype_digit($value)
-            && !preg_match("/^\d+:[0-5]{1}[0-9]{1}$/", $value)
-            && !preg_match("/^\d+:[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/", $value)
-        ) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "duration" may only'
-            . ' be of a specified [[HH:]MM:]SS format');
-        }
-        $this->data['duration'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set "explicit" flag
-     *
-     * @param  bool $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesExplicit($value)
-    {
-        if (!in_array($value, array('yes', 'no', 'clean'))) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "explicit" may only'
-            . ' be one of "yes", "no" or "clean"');
-        }
-        $this->data['explicit'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set feed keywords
-     *
-     * @param  array $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesKeywords(array $value)
-    {
-        if (count($value) > 12) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
-            . ' contain a maximum of 12 terms');
-        }
-        $concat = implode(',', $value);
-        if ($this->stringWrapper->strlen($concat) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only'
-            . ' have a concatenated length of 255 chars where terms are delimited'
-            . ' by a comma');
-        }
-        $this->data['keywords'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set new feed URL
-     *
-     * @param  string $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesNewFeedUrl($value)
-    {
-        if (!Uri::factory($value)->isValid()) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "newFeedUrl" may only'
-            . ' be a valid URI/IRI');
-        }
-        $this->data['newFeedUrl'] = $value;
-        return $this;
-    }
-
-    /**
-     * Add feed owners
-     *
-     * @param  array $values
-     * @return Feed
-     */
-    public function addItunesOwners(array $values)
-    {
-        foreach ($values as $value) {
-            $this->addItunesOwner($value);
-        }
-        return $this;
-    }
-
-    /**
-     * Add feed owner
-     *
-     * @param  array $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function addItunesOwner(array $value)
-    {
-        if (!isset($value['name']) || !isset($value['email'])) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "owner" must'
-            . ' be an array containing keys "name" and "email"');
-        }
-        if ($this->stringWrapper->strlen($value['name']) > 255
-            || $this->stringWrapper->strlen($value['email']) > 255
-        ) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "owner" may only'
-            . ' contain a maximum of 255 characters each for "name" and "email"');
-        }
-        if (!isset($this->data['owners'])) {
-            $this->data['owners'] = array();
-        }
-        $this->data['owners'][] = $value;
-        return $this;
-    }
-
-    /**
-     * Set feed subtitle
-     *
-     * @param  string $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesSubtitle($value)
-    {
-        if ($this->stringWrapper->strlen($value) > 255) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "subtitle" may only'
-            . ' contain a maximum of 255 characters');
-        }
-        $this->data['subtitle'] = $value;
-        return $this;
-    }
-
-    /**
-     * Set feed summary
-     *
-     * @param  string $value
-     * @return Feed
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function setItunesSummary($value)
-    {
-        if ($this->stringWrapper->strlen($value) > 4000) {
-            throw new Writer\Exception\InvalidArgumentException('invalid parameter: "summary" may only'
-            . ' contain a maximum of 4000 characters');
-        }
-        $this->data['summary'] = $value;
-        return $this;
-    }
-
-    /**
-     * Overloading: proxy to internal setters
-     *
-     * @param  string $method
-     * @param  array $params
-     * @return mixed
-     * @throws Writer\Exception\BadMethodCallException
-     */
-    public function __call($method, array $params)
-    {
-        $point = lcfirst(substr($method, 9));
-        if (!method_exists($this, 'setItunes' . ucfirst($point))
-            && !method_exists($this, 'addItunes' . ucfirst($point))
-        ) {
-            throw new Writer\Exception\BadMethodCallException(
-                'invalid method: ' . $method
-            );
-        }
-        if (!array_key_exists($point, $this->data) || empty($this->data[$point])) {
-            return;
-        }
-        return $this->data[$point];
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Renderer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Renderer/Entry.php
deleted file mode 100644
index ed8f732..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Renderer/Entry.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\ITunes\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render entry
-     *
-     * @return void
-     */
-    public function render()
-    {
-        $this->_setAuthors($this->dom, $this->base);
-        $this->_setBlock($this->dom, $this->base);
-        $this->_setDuration($this->dom, $this->base);
-        $this->_setExplicit($this->dom, $this->base);
-        $this->_setKeywords($this->dom, $this->base);
-        $this->_setSubtitle($this->dom, $this->base);
-        $this->_setSummary($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append namespaces to entry root
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:itunes',
-            'http://www.itunes.com/dtds/podcast-1.0.dtd');
-    }
-
-    /**
-     * Set entry authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->getDataContainer()->getItunesAuthors();
-        if (!$authors || empty($authors)) {
-            return;
-        }
-        foreach ($authors as $author) {
-            $el = $dom->createElement('itunes:author');
-            $text = $dom->createTextNode($author);
-            $el->appendChild($text);
-            $root->appendChild($el);
-            $this->called = true;
-        }
-    }
-
-    /**
-     * Set itunes block
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBlock(DOMDocument $dom, DOMElement $root)
-    {
-        $block = $this->getDataContainer()->getItunesBlock();
-        if ($block === null) {
-            return;
-        }
-        $el = $dom->createElement('itunes:block');
-        $text = $dom->createTextNode($block);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set entry duration
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDuration(DOMDocument $dom, DOMElement $root)
-    {
-        $duration = $this->getDataContainer()->getItunesDuration();
-        if (!$duration) {
-            return;
-        }
-        $el = $dom->createElement('itunes:duration');
-        $text = $dom->createTextNode($duration);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set explicit flag
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setExplicit(DOMDocument $dom, DOMElement $root)
-    {
-        $explicit = $this->getDataContainer()->getItunesExplicit();
-        if ($explicit === null) {
-            return;
-        }
-        $el = $dom->createElement('itunes:explicit');
-        $text = $dom->createTextNode($explicit);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set entry keywords
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setKeywords(DOMDocument $dom, DOMElement $root)
-    {
-        $keywords = $this->getDataContainer()->getItunesKeywords();
-        if (!$keywords || empty($keywords)) {
-            return;
-        }
-        $el = $dom->createElement('itunes:keywords');
-        $text = $dom->createTextNode(implode(',', $keywords));
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set entry subtitle
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setSubtitle(DOMDocument $dom, DOMElement $root)
-    {
-        $subtitle = $this->getDataContainer()->getItunesSubtitle();
-        if (!$subtitle) {
-            return;
-        }
-        $el = $dom->createElement('itunes:subtitle');
-        $text = $dom->createTextNode($subtitle);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set entry summary
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setSummary(DOMDocument $dom, DOMElement $root)
-    {
-        $summary = $this->getDataContainer()->getItunesSummary();
-        if (!$summary) {
-            return;
-        }
-        $el = $dom->createElement('itunes:summary');
-        $text = $dom->createTextNode($summary);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Renderer/Feed.php b/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Renderer/Feed.php
deleted file mode 100644
index d978f03..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/ITunes/Renderer/Feed.php
+++ /dev/null
@@ -1,303 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\ITunes\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Feed extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render feed
-     *
-     * @return void
-     */
-    public function render()
-    {
-        $this->_setAuthors($this->dom, $this->base);
-        $this->_setBlock($this->dom, $this->base);
-        $this->_setCategories($this->dom, $this->base);
-        $this->_setImage($this->dom, $this->base);
-        $this->_setDuration($this->dom, $this->base);
-        $this->_setExplicit($this->dom, $this->base);
-        $this->_setKeywords($this->dom, $this->base);
-        $this->_setNewFeedUrl($this->dom, $this->base);
-        $this->_setOwners($this->dom, $this->base);
-        $this->_setSubtitle($this->dom, $this->base);
-        $this->_setSummary($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append feed namespaces
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:itunes',
-            'http://www.itunes.com/dtds/podcast-1.0.dtd');
-    }
-
-    /**
-     * Set feed authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->getDataContainer()->getItunesAuthors();
-        if (!$authors || empty($authors)) {
-            return;
-        }
-        foreach ($authors as $author) {
-            $el = $dom->createElement('itunes:author');
-            $text = $dom->createTextNode($author);
-            $el->appendChild($text);
-            $root->appendChild($el);
-        }
-        $this->called = true;
-    }
-
-    /**
-     * Set feed itunes block
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBlock(DOMDocument $dom, DOMElement $root)
-    {
-        $block = $this->getDataContainer()->getItunesBlock();
-        if ($block === null) {
-            return;
-        }
-        $el = $dom->createElement('itunes:block');
-        $text = $dom->createTextNode($block);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set feed categories
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCategories(DOMDocument $dom, DOMElement $root)
-    {
-        $cats = $this->getDataContainer()->getItunesCategories();
-        if (!$cats || empty($cats)) {
-            return;
-        }
-        foreach ($cats as $key => $cat) {
-            if (!is_array($cat)) {
-                $el = $dom->createElement('itunes:category');
-                $el->setAttribute('text', $cat);
-                $root->appendChild($el);
-            } else {
-                $el = $dom->createElement('itunes:category');
-                $el->setAttribute('text', $key);
-                $root->appendChild($el);
-                foreach ($cat as $subcat) {
-                    $el2 = $dom->createElement('itunes:category');
-                    $el2->setAttribute('text', $subcat);
-                    $el->appendChild($el2);
-                }
-            }
-        }
-        $this->called = true;
-    }
-
-    /**
-     * Set feed image (icon)
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setImage(DOMDocument $dom, DOMElement $root)
-    {
-        $image = $this->getDataContainer()->getItunesImage();
-        if (!$image) {
-            return;
-        }
-        $el = $dom->createElement('itunes:image');
-        $el->setAttribute('href', $image);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set feed cumulative duration
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDuration(DOMDocument $dom, DOMElement $root)
-    {
-        $duration = $this->getDataContainer()->getItunesDuration();
-        if (!$duration) {
-            return;
-        }
-        $el = $dom->createElement('itunes:duration');
-        $text = $dom->createTextNode($duration);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set explicit flag
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setExplicit(DOMDocument $dom, DOMElement $root)
-    {
-        $explicit = $this->getDataContainer()->getItunesExplicit();
-        if ($explicit === null) {
-            return;
-        }
-        $el = $dom->createElement('itunes:explicit');
-        $text = $dom->createTextNode($explicit);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set feed keywords
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setKeywords(DOMDocument $dom, DOMElement $root)
-    {
-        $keywords = $this->getDataContainer()->getItunesKeywords();
-        if (!$keywords || empty($keywords)) {
-            return;
-        }
-        $el = $dom->createElement('itunes:keywords');
-        $text = $dom->createTextNode(implode(',', $keywords));
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set feed's new URL
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setNewFeedUrl(DOMDocument $dom, DOMElement $root)
-    {
-        $url = $this->getDataContainer()->getItunesNewFeedUrl();
-        if (!$url) {
-            return;
-        }
-        $el = $dom->createElement('itunes:new-feed-url');
-        $text = $dom->createTextNode($url);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set feed owners
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setOwners(DOMDocument $dom, DOMElement $root)
-    {
-        $owners = $this->getDataContainer()->getItunesOwners();
-        if (!$owners || empty($owners)) {
-            return;
-        }
-        foreach ($owners as $owner) {
-            $el = $dom->createElement('itunes:owner');
-            $name = $dom->createElement('itunes:name');
-            $text = $dom->createTextNode($owner['name']);
-            $name->appendChild($text);
-            $email = $dom->createElement('itunes:email');
-            $text = $dom->createTextNode($owner['email']);
-            $email->appendChild($text);
-            $root->appendChild($el);
-            $el->appendChild($name);
-            $el->appendChild($email);
-        }
-        $this->called = true;
-    }
-
-    /**
-     * Set feed subtitle
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setSubtitle(DOMDocument $dom, DOMElement $root)
-    {
-        $subtitle = $this->getDataContainer()->getItunesSubtitle();
-        if (!$subtitle) {
-            return;
-        }
-        $el = $dom->createElement('itunes:subtitle');
-        $text = $dom->createTextNode($subtitle);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-
-    /**
-     * Set feed summary
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setSummary(DOMDocument $dom, DOMElement $root)
-    {
-        $summary = $this->getDataContainer()->getItunesSummary();
-        if (!$summary) {
-            return;
-        }
-        $el = $dom->createElement('itunes:summary');
-        $text = $dom->createTextNode($summary);
-        $el->appendChild($text);
-        $root->appendChild($el);
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/RendererInterface.php b/core/vendor/zendframework/zend-feed/Writer/Extension/RendererInterface.php
deleted file mode 100644
index 9afe88b..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/RendererInterface.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension;
-
-use DOMDocument;
-use DOMElement;
-
-/**
-*/
-interface RendererInterface
-{
-    /**
-     * Set the data container
-     *
-     * @param  mixed $container
-     * @return void
-     */
-    public function setDataContainer($container);
-
-    /**
-     * Retrieve container
-     *
-     * @return mixed
-     */
-    public function getDataContainer();
-
-    /**
-     * Set DOMDocument and DOMElement on which to operate
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $base
-     * @return void
-     */
-    public function setDomDocument(DOMDocument $dom, DOMElement $base);
-
-    /**
-     * Render
-     *
-     * @return void
-     */
-    public function render();
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/Slash/Renderer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/Slash/Renderer/Entry.php
deleted file mode 100644
index c74cb02..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/Slash/Renderer/Entry.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\Slash\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render entry
-     *
-     * @return void
-     */
-    public function render()
-    {
-        if (strtolower($this->getType()) == 'atom') {
-            return; // RSS 2.0 only
-        }
-        $this->_setCommentCount($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append entry namespaces
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:slash',
-            'http://purl.org/rss/1.0/modules/slash/');
-    }
-
-    /**
-     * Set entry comment count
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCommentCount(DOMDocument $dom, DOMElement $root)
-    {
-        $count = $this->getDataContainer()->getCommentCount();
-        if (!$count) {
-            $count = 0;
-        }
-        $tcount = $this->dom->createElement('slash:comments');
-        $tcount->nodeValue = $count;
-        $root->appendChild($tcount);
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/Threading/Renderer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/Threading/Renderer/Entry.php
deleted file mode 100644
index 6f19641..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/Threading/Renderer/Entry.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\Threading\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render entry
-     *
-     * @return void
-     */
-    public function render()
-    {
-        if (strtolower($this->getType()) == 'rss') {
-            return; // Atom 1.0 only
-        }
-        $this->_setCommentLink($this->dom, $this->base);
-        $this->_setCommentFeedLinks($this->dom, $this->base);
-        $this->_setCommentCount($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append entry namespaces
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:thr',
-            'http://purl.org/syndication/thread/1.0');
-    }
-
-    /**
-     * Set comment link
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCommentLink(DOMDocument $dom, DOMElement $root)
-    {
-        $link = $this->getDataContainer()->getCommentLink();
-        if (!$link) {
-            return;
-        }
-        $clink = $this->dom->createElement('link');
-        $clink->setAttribute('rel', 'replies');
-        $clink->setAttribute('type', 'text/html');
-        $clink->setAttribute('href', $link);
-        $count = $this->getDataContainer()->getCommentCount();
-        if ($count !== null) {
-            $clink->setAttribute('thr:count', $count);
-        }
-        $root->appendChild($clink);
-        $this->called = true;
-    }
-
-    /**
-     * Set comment feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCommentFeedLinks(DOMDocument $dom, DOMElement $root)
-    {
-        $links = $this->getDataContainer()->getCommentFeedLinks();
-        if (!$links || empty($links)) {
-            return;
-        }
-        foreach ($links as $link) {
-            $flink = $this->dom->createElement('link');
-            $flink->setAttribute('rel', 'replies');
-            $flink->setAttribute('type', 'application/' . $link['type'] . '+xml');
-            $flink->setAttribute('href', $link['uri']);
-            $count = $this->getDataContainer()->getCommentCount();
-            if ($count !== null) {
-                $flink->setAttribute('thr:count', $count);
-            }
-            $root->appendChild($flink);
-            $this->called = true;
-        }
-    }
-
-    /**
-     * Set entry comment count
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCommentCount(DOMDocument $dom, DOMElement $root)
-    {
-        $count = $this->getDataContainer()->getCommentCount();
-        if ($count === null) {
-            return;
-        }
-        $tcount = $this->dom->createElement('thr:total');
-        $tcount->nodeValue = $count;
-        $root->appendChild($tcount);
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Extension/WellFormedWeb/Renderer/Entry.php b/core/vendor/zendframework/zend-feed/Writer/Extension/WellFormedWeb/Renderer/Entry.php
deleted file mode 100644
index 48c0d8f..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Extension/WellFormedWeb/Renderer/Entry.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Extension\WellFormedWeb\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer\Extension;
-
-/**
-*/
-class Entry extends Extension\AbstractRenderer
-{
-    /**
-     * Set to TRUE if a rendering method actually renders something. This
-     * is used to prevent premature appending of a XML namespace declaration
-     * until an element which requires it is actually appended.
-     *
-     * @var bool
-     */
-    protected $called = false;
-
-    /**
-     * Render entry
-     *
-     * @return void
-     */
-    public function render()
-    {
-        if (strtolower($this->getType()) == 'atom') {
-            return; // RSS 2.0 only
-        }
-        $this->_setCommentFeedLinks($this->dom, $this->base);
-        if ($this->called) {
-            $this->_appendNamespaces();
-        }
-    }
-
-    /**
-     * Append entry namespaces
-     *
-     * @return void
-     */
-    protected function _appendNamespaces()
-    {
-        $this->getRootElement()->setAttribute('xmlns:wfw',
-            'http://wellformedweb.org/CommentAPI/');
-    }
-
-    /**
-     * Set entry comment feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCommentFeedLinks(DOMDocument $dom, DOMElement $root)
-    {
-        $links = $this->getDataContainer()->getCommentFeedLinks();
-        if (!$links || empty($links)) {
-            return;
-        }
-        foreach ($links as $link) {
-            if ($link['type'] == 'rss') {
-                $flink = $this->dom->createElement('wfw:commentRss');
-                $text = $dom->createTextNode($link['uri']);
-                $flink->appendChild($text);
-                $root->appendChild($flink);
-            }
-        }
-        $this->called = true;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/ExtensionManager.php b/core/vendor/zendframework/zend-feed/Writer/ExtensionManager.php
deleted file mode 100644
index 89be41d..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/ExtensionManager.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-/**
- * Default implementation of ExtensionManagerInterface
- *
- * Decorator of ExtensionPluginManager.
- */
-class ExtensionManager implements ExtensionManagerInterface
-{
-    protected $pluginManager;
-
-    /**
-     * Constructor
-     *
-     * Seeds the extension manager with a plugin manager; if none provided,
-     * creates an instance.
-     *
-     * @param  null|ExtensionPluginManager $pluginManager
-     */
-    public function __construct(ExtensionPluginManager $pluginManager = null)
-    {
-        if (null === $pluginManager) {
-            $pluginManager = new ExtensionPluginManager();
-        }
-        $this->pluginManager = $pluginManager;
-    }
-
-    /**
-     * Method overloading
-     *
-     * Proxy to composed ExtensionPluginManager instance.
-     *
-     * @param  string $method
-     * @param  array $args
-     * @return mixed
-     * @throws Exception\BadMethodCallException
-     */
-    public function __call($method, $args)
-    {
-        if (!method_exists($this->pluginManager, $method)) {
-            throw new Exception\BadMethodCallException(sprintf(
-                'Method by name of %s does not exist in %s',
-                $method,
-                __CLASS__
-            ));
-        }
-        return call_user_func_array(array($this->pluginManager, $method), $args);
-    }
-
-    /**
-     * Get the named extension
-     *
-     * @param  string $name
-     * @return Extension\AbstractRenderer
-     */
-    public function get($name)
-    {
-        return $this->pluginManager->get($name);
-    }
-
-    /**
-     * Do we have the named extension?
-     *
-     * @param  string $name
-     * @return bool
-     */
-    public function has($name)
-    {
-        return $this->pluginManager->has($name);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/ExtensionManagerInterface.php b/core/vendor/zendframework/zend-feed/Writer/ExtensionManagerInterface.php
deleted file mode 100644
index b0e28a0..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/ExtensionManagerInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-interface ExtensionManagerInterface
-{
-    /**
-     * Do we have the extension?
-     *
-     * @param  string $extension
-     * @return bool
-     */
-    public function has($extension);
-
-    /**
-     * Retrieve the extension
-     *
-     * @param  string $extension
-     * @return mixed
-     */
-    public function get($extension);
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/ExtensionPluginManager.php b/core/vendor/zendframework/zend-feed/Writer/ExtensionPluginManager.php
deleted file mode 100644
index 6763374..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/ExtensionPluginManager.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use Zend\ServiceManager\AbstractPluginManager;
-
-/**
- * Plugin manager implementation for feed writer extensions
- *
- * Validation checks that we have an Entry, Feed, or Extension\AbstractRenderer.
- */
-class ExtensionPluginManager extends AbstractPluginManager
-{
-    /**
-     * Default set of extension classes
-     *
-     * @var array
-     */
-    protected $invokableClasses = array(
-        'atomrendererfeed'           => 'Zend\Feed\Writer\Extension\Atom\Renderer\Feed',
-        'contentrendererentry'       => 'Zend\Feed\Writer\Extension\Content\Renderer\Entry',
-        'dublincorerendererentry'    => 'Zend\Feed\Writer\Extension\DublinCore\Renderer\Entry',
-        'dublincorerendererfeed'     => 'Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed',
-        'itunesentry'                => 'Zend\Feed\Writer\Extension\ITunes\Entry',
-        'itunesfeed'                 => 'Zend\Feed\Writer\Extension\ITunes\Feed',
-        'itunesrendererentry'        => 'Zend\Feed\Writer\Extension\ITunes\Renderer\Entry',
-        'itunesrendererfeed'         => 'Zend\Feed\Writer\Extension\ITunes\Renderer\Feed',
-        'slashrendererentry'         => 'Zend\Feed\Writer\Extension\Slash\Renderer\Entry',
-        'threadingrendererentry'     => 'Zend\Feed\Writer\Extension\Threading\Renderer\Entry',
-        'wellformedwebrendererentry' => 'Zend\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry',
-    );
-
-    /**
-     * Do not share instances
-     *
-     * @var bool
-     */
-    protected $shareByDefault = false;
-
-    /**
-     * Validate the plugin
-     *
-     * Checks that the extension loaded is of a valid type.
-     *
-     * @param  mixed $plugin
-     * @return void
-     * @throws Exception\InvalidArgumentException if invalid
-     */
-    public function validatePlugin($plugin)
-    {
-        if ($plugin instanceof Extension\AbstractRenderer) {
-            // we're okay
-            return;
-        }
-
-        if ('Feed' == substr(get_class($plugin), -4)) {
-            // we're okay
-            return;
-        }
-
-        if ('Entry' == substr(get_class($plugin), -5)) {
-            // we're okay
-            return;
-        }
-
-        throw new Exception\InvalidArgumentException(sprintf(
-            'Plugin of type %s is invalid; must implement %s\Extension\RendererInterface '
-            . 'or the classname must end in "Feed" or "Entry"',
-            (is_object($plugin) ? get_class($plugin) : gettype($plugin)),
-            __NAMESPACE__
-        ));
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Feed.php b/core/vendor/zendframework/zend-feed/Writer/Feed.php
deleted file mode 100644
index d402bb8..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Feed.php
+++ /dev/null
@@ -1,239 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use Countable;
-use Iterator;
-
-/**
-*/
-class Feed extends AbstractFeed implements Iterator, Countable
-{
-    /**
-     * Contains all entry objects
-     *
-     * @var array
-     */
-    protected $entries = array();
-
-    /**
-     * A pointer for the iterator to keep track of the entries array
-     *
-     * @var int
-     */
-    protected $entriesKey = 0;
-
-    /**
-     * Creates a new Zend\Feed\Writer\Entry data container for use. This is NOT
-     * added to the current feed automatically, but is necessary to create a
-     * container with some initial values preset based on the current feed data.
-     *
-     * @return \Zend\Feed\Writer\Entry
-     */
-    public function createEntry()
-    {
-        $entry = new Entry;
-        if ($this->getEncoding()) {
-            $entry->setEncoding($this->getEncoding());
-        }
-        $entry->setType($this->getType());
-        return $entry;
-    }
-
-    /**
-     * Appends a Zend\Feed\Writer\Deleted object representing a new entry tombstone
-     * to the feed data container's internal group of entries.
-     *
-     * @param Deleted $deleted
-     * @return void
-     */
-    public function addTombstone(Deleted $deleted)
-    {
-        $this->entries[] = $deleted;
-    }
-
-    /**
-     * Creates a new Zend\Feed\Writer\Deleted data container for use. This is NOT
-     * added to the current feed automatically, but is necessary to create a
-     * container with some initial values preset based on the current feed data.
-     *
-     * @return Deleted
-     */
-    public function createTombstone()
-    {
-        $deleted = new Deleted;
-        if ($this->getEncoding()) {
-            $deleted->setEncoding($this->getEncoding());
-        }
-        $deleted->setType($this->getType());
-        return $deleted;
-    }
-
-    /**
-     * Appends a Zend\Feed\Writer\Entry object representing a new entry/item
-     * the feed data container's internal group of entries.
-     *
-     * @param Entry $entry
-     * @return Feed
-     */
-    public function addEntry(Entry $entry)
-    {
-        $this->entries[] = $entry;
-        return $this;
-    }
-
-    /**
-     * Removes a specific indexed entry from the internal queue. Entries must be
-     * added to a feed container in order to be indexed.
-     *
-     * @param int $index
-     * @throws Exception\InvalidArgumentException
-     * @return Feed
-     */
-    public function removeEntry($index)
-    {
-        if (!isset($this->entries[$index])) {
-            throw new Exception\InvalidArgumentException('Undefined index: ' . $index . '. Entry does not exist.');
-        }
-        unset($this->entries[$index]);
-
-        return $this;
-    }
-
-    /**
-     * Retrieve a specific indexed entry from the internal queue. Entries must be
-     * added to a feed container in order to be indexed.
-     *
-     * @param int $index
-     * @throws Exception\InvalidArgumentException
-     */
-    public function getEntry($index = 0)
-    {
-        if (isset($this->entries[$index])) {
-            return $this->entries[$index];
-        }
-        throw new Exception\InvalidArgumentException('Undefined index: ' . $index . '. Entry does not exist.');
-    }
-
-    /**
-     * Orders all indexed entries by date, thus offering date ordered readable
-     * content where a parser (or Homo Sapien) ignores the generic rule that
-     * XML element order is irrelevant and has no intrinsic meaning.
-     *
-     * Using this method will alter the original indexation.
-     *
-     * @return Feed
-     */
-    public function orderByDate()
-    {
-        /**
-         * Could do with some improvement for performance perhaps
-         */
-        $timestamp = time();
-        $entries = array();
-        foreach ($this->entries as $entry) {
-            if ($entry->getDateModified()) {
-                $timestamp = (int) $entry->getDateModified()->getTimestamp();
-            } elseif ($entry->getDateCreated()) {
-                $timestamp = (int) $entry->getDateCreated()->getTimestamp();
-            }
-            $entries[$timestamp] = $entry;
-        }
-        krsort($entries, SORT_NUMERIC);
-        $this->entries = array_values($entries);
-
-        return $this;
-    }
-
-    /**
-     * Get the number of feed entries.
-     * Required by the Iterator interface.
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->entries);
-    }
-
-    /**
-     * Return the current entry
-     *
-     * @return Entry
-     */
-    public function current()
-    {
-        return $this->entries[$this->key()];
-    }
-
-    /**
-     * Return the current feed key
-     *
-     * @return mixed
-     */
-    public function key()
-    {
-        return $this->entriesKey;
-    }
-
-    /**
-     * Move the feed pointer forward
-     *
-     * @return void
-     */
-    public function next()
-    {
-        ++$this->entriesKey;
-    }
-
-    /**
-     * Reset the pointer in the feed object
-     *
-     * @return void
-     */
-    public function rewind()
-    {
-        $this->entriesKey = 0;
-    }
-
-    /**
-     * Check to see if the iterator is still valid
-     *
-     * @return bool
-     */
-    public function valid()
-    {
-        return 0 <= $this->entriesKey && $this->entriesKey < $this->count();
-    }
-
-    /**
-     * Attempt to build and return the feed resulting from the data set
-     *
-     * @param  string  $type The feed type "rss" or "atom" to export as
-     * @param  bool    $ignoreExceptions
-     * @throws Exception\InvalidArgumentException
-     * @return string
-     */
-    public function export($type, $ignoreExceptions = false)
-    {
-        $this->setType(strtolower($type));
-        $type = ucfirst($this->getType());
-        if ($type !== 'Rss' && $type !== 'Atom') {
-            throw new Exception\InvalidArgumentException('Invalid feed type specified: ' . $type . '.'
-            . ' Should be one of "rss" or "atom".');
-        }
-        $renderClass = 'Zend\\Feed\\Writer\\Renderer\\Feed\\' . $type;
-        $renderer = new $renderClass($this);
-        if ($ignoreExceptions) {
-            $renderer->ignoreExceptions();
-        }
-        return $renderer->render()->saveXml();
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/FeedFactory.php b/core/vendor/zendframework/zend-feed/Writer/FeedFactory.php
deleted file mode 100644
index 99b528c..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/FeedFactory.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use Traversable;
-
-abstract class FeedFactory
-{
-    /**
-     * Create and return a Feed based on data provided.
-     *
-     * @param  array|Traversable $data
-     * @throws Exception\InvalidArgumentException
-     * @return Feed
-     */
-    public static function factory($data)
-    {
-        if (!is_array($data) && !$data instanceof Traversable) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                '%s expects an array or Traversable argument; received "%s"',
-                __METHOD__,
-                (is_object($data) ? get_class($data) : gettype($data))
-            ));
-        }
-
-        $feed = new Feed();
-
-        foreach ($data as $key => $value) {
-            // Setters
-            $key    = static::convertKey($key);
-            $method = 'set' . $key;
-            if (method_exists($feed, $method)) {
-                switch ($method) {
-                    case 'setfeedlink':
-                        if (!is_array($value)) {
-                            // Need an array
-                            break;
-                        }
-                        if (!array_key_exists('link', $value) || !array_key_exists('type', $value)) {
-                            // Need both keys to set this correctly
-                            break;
-                        }
-                        $feed->setFeedLink($value['link'], $value['type']);
-                        break;
-                    default:
-                        $feed->$method($value);
-                        break;
-                }
-                continue;
-            }
-
-            // Entries
-            if ('entries' == $key) {
-                static::createEntries($value, $feed);
-                continue;
-            }
-        }
-
-        return $feed;
-    }
-
-    /**
-     * Normalize a key
-     *
-     * @param  string $key
-     * @return string
-     */
-    protected static function convertKey($key)
-    {
-        $key = str_replace('_', '', strtolower($key));
-        return $key;
-    }
-
-    /**
-     * Create and attach entries to a feed
-     *
-     * @param  array|Traversable $entries
-     * @param  Feed $feed
-     * @throws Exception\InvalidArgumentException
-     * @return void
-     */
-    protected static function createEntries($entries, Feed $feed)
-    {
-        if (!is_array($entries) && !$entries instanceof Traversable) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                '%s::factory expects the "entries" value to be an array or Traversable; received "%s"',
-                get_called_class(),
-                (is_object($entries) ? get_class($entries) : gettype($entries))
-            ));
-        }
-
-        foreach ($entries as $data) {
-            if (!is_array($data) && !$data instanceof Traversable && !$data instanceof Entry) {
-                throw new Exception\InvalidArgumentException(sprintf(
-                    '%s expects an array, Traversable, or Zend\Feed\Writer\Entry argument; received "%s"',
-                    __METHOD__,
-                    (is_object($data) ? get_class($data) : gettype($data))
-                ));
-            }
-
-            // Use case 1: Entry item
-            if ($data instanceof Entry) {
-                $feed->addEntry($data);
-                continue;
-            }
-
-            // Use case 2: iterate item and populate entry
-            $entry = $feed->createEntry();
-            foreach ($data as $key => $value) {
-                $key    = static::convertKey($key);
-                $method = 'set' . $key;
-                if (!method_exists($entry, $method)) {
-                    continue;
-                }
-                $entry->$method($value);
-            }
-            $feed->addEntry($entry);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/AbstractRenderer.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/AbstractRenderer.php
deleted file mode 100644
index 76b9a68..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/AbstractRenderer.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer;
-
-/**
-*/
-class AbstractRenderer
-{
-    /**
-     * Extensions
-     * @var array
-     */
-    protected $extensions = array();
-
-    /**
-     * @var Writer\AbstractFeed
-     */
-    protected $container = null;
-
-    /**
-     * @var DOMDocument
-     */
-    protected $dom = null;
-
-    /**
-     * @var bool
-     */
-    protected $ignoreExceptions = false;
-
-    /**
-     * @var array
-     */
-    protected $exceptions = array();
-
-    /**
-     * Encoding of all text values
-     *
-     * @var string
-     */
-    protected $encoding = 'UTF-8';
-
-    /**
-     * Holds the value "atom" or "rss" depending on the feed type set when
-     * when last exported.
-     *
-     * @var string
-     */
-    protected $type = null;
-
-    /**
-     * @var DOMElement
-     */
-    protected $rootElement = null;
-
-    /**
-     * Constructor
-     *
-     * @param Writer\AbstractFeed $container
-     */
-    public function __construct($container)
-    {
-        $this->container = $container;
-        $this->setType($container->getType());
-        $this->_loadExtensions();
-    }
-
-    /**
-     * Save XML to string
-     *
-     * @return string
-     */
-    public function saveXml()
-    {
-        return $this->getDomDocument()->saveXml();
-    }
-
-    /**
-     * Get DOM document
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument()
-    {
-        return $this->dom;
-    }
-
-    /**
-     * Get document element from DOM
-     *
-     * @return DOMElement
-     */
-    public function getElement()
-    {
-        return $this->getDomDocument()->documentElement;
-    }
-
-    /**
-     * Get data container of items being rendered
-     *
-     * @return Writer\AbstractFeed
-     */
-    public function getDataContainer()
-    {
-        return $this->container;
-    }
-
-    /**
-     * Set feed encoding
-     *
-     * @param  string $enc
-     * @return AbstractRenderer
-     */
-    public function setEncoding($enc)
-    {
-        $this->encoding = $enc;
-        return $this;
-    }
-
-    /**
-     * Get feed encoding
-     *
-     * @return string
-     */
-    public function getEncoding()
-    {
-        return $this->encoding;
-    }
-
-    /**
-     * Indicate whether or not to ignore exceptions
-     *
-     * @param  bool $bool
-     * @return AbstractRenderer
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    public function ignoreExceptions($bool = true)
-    {
-        if (!is_bool($bool)) {
-            throw new Writer\Exception\InvalidArgumentException('Invalid parameter: $bool. Should be TRUE or FALSE (defaults to TRUE if null)');
-        }
-        $this->ignoreExceptions = $bool;
-        return $this;
-    }
-
-    /**
-     * Get exception list
-     *
-     * @return array
-     */
-    public function getExceptions()
-    {
-        return $this->exceptions;
-    }
-
-    /**
-     * Set the current feed type being exported to "rss" or "atom". This allows
-     * other objects to gracefully choose whether to execute or not, depending
-     * on their appropriateness for the current type, e.g. renderers.
-     *
-     * @param string $type
-     */
-    public function setType($type)
-    {
-        $this->type = $type;
-    }
-
-    /**
-     * Retrieve the current or last feed type exported.
-     *
-     * @return string Value will be "rss" or "atom"
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * Sets the absolute root element for the XML feed being generated. This
-     * helps simplify the appending of namespace declarations, but also ensures
-     * namespaces are added to the root element - not scattered across the entire
-     * XML file - may assist namespace unsafe parsers and looks pretty ;).
-     *
-     * @param DOMElement $root
-     */
-    public function setRootElement(DOMElement $root)
-    {
-        $this->rootElement = $root;
-    }
-
-    /**
-     * Retrieve the absolute root element for the XML feed being generated.
-     *
-     * @return DOMElement
-     */
-    public function getRootElement()
-    {
-        return $this->rootElement;
-    }
-
-    /**
-     * Load extensions from Zend\Feed\Writer\Writer
-     *
-     * @return void
-     */
-    protected function _loadExtensions()
-    {
-        Writer\Writer::registerCoreExtensions();
-        $manager = Writer\Writer::getExtensionManager();
-        $all = Writer\Writer::getExtensions();
-        if (stripos(get_class($this), 'entry')) {
-            $exts = $all['entryRenderer'];
-        } else {
-            $exts = $all['feedRenderer'];
-        }
-        foreach ($exts as $extension) {
-            $plugin = $manager->get($extension);
-            $plugin->setDataContainer($this->getDataContainer());
-            $plugin->setEncoding($this->getEncoding());
-            $this->extensions[$extension] = $plugin;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Atom.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Atom.php
deleted file mode 100644
index 31b0a9a..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Atom.php
+++ /dev/null
@@ -1,434 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Entry;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Uri;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-use Zend\Validator;
-
-class Atom extends Renderer\AbstractRenderer implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Entry $container
-     */
-    public function __construct(Writer\Entry $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render atom entry
-     *
-     * @return Atom
-     */
-    public function render()
-    {
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $entry = $this->dom->createElementNS(Writer\Writer::NAMESPACE_ATOM_10, 'entry');
-        $this->dom->appendChild($entry);
-
-        $this->_setSource($this->dom, $entry);
-        $this->_setTitle($this->dom, $entry);
-        $this->_setDescription($this->dom, $entry);
-        $this->_setDateCreated($this->dom, $entry);
-        $this->_setDateModified($this->dom, $entry);
-        $this->_setLink($this->dom, $entry);
-        $this->_setId($this->dom, $entry);
-        $this->_setAuthors($this->dom, $entry);
-        $this->_setEnclosure($this->dom, $entry);
-        $this->_setContent($this->dom, $entry);
-        $this->_setCategories($this->dom, $entry);
-
-        foreach ($this->extensions as $ext) {
-            $ext->setType($this->getType());
-            $ext->setRootElement($this->getRootElement());
-            $ext->setDOMDocument($this->getDOMDocument(), $entry);
-            $ext->render();
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set entry title
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setTitle(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getTitle()) {
-            $message = 'Atom 1.0 entry elements MUST contain exactly one'
-            . ' atom:title element but a title has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        $title = $dom->createElement('title');
-        $root->appendChild($title);
-        $title->setAttribute('type', 'html');
-        $cdata = $dom->createCDATASection($this->getDataContainer()->getTitle());
-        $title->appendChild($cdata);
-    }
-
-    /**
-     * Set entry description
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDescription(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDescription()) {
-            return; // unless src content or base64
-        }
-        $subtitle = $dom->createElement('summary');
-        $root->appendChild($subtitle);
-        $subtitle->setAttribute('type', 'html');
-        $cdata = $dom->createCDATASection(
-            $this->getDataContainer()->getDescription()
-        );
-        $subtitle->appendChild($cdata);
-    }
-
-    /**
-     * Set date entry was modified
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setDateModified(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateModified()) {
-            $message = 'Atom 1.0 entry elements MUST contain exactly one'
-            . ' atom:updated element but a modification date has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $updated = $dom->createElement('updated');
-        $root->appendChild($updated);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getDateModified()->format(DateTime::ATOM)
-        );
-        $updated->appendChild($text);
-    }
-
-    /**
-     * Set date entry was created
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateCreated(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateCreated()) {
-            return;
-        }
-        $el = $dom->createElement('published');
-        $root->appendChild($el);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getDateCreated()->format(DateTime::ATOM)
-        );
-        $el->appendChild($text);
-    }
-
-    /**
-     * Set entry authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->container->getAuthors();
-        if ((!$authors || empty($authors))) {
-            /**
-             * This will actually trigger an Exception at the feed level if
-             * a feed level author is not set.
-             */
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('author');
-            $name = $this->dom->createElement('name');
-            $author->appendChild($name);
-            $root->appendChild($author);
-            $text = $dom->createTextNode($data['name']);
-            $name->appendChild($text);
-            if (array_key_exists('email', $data)) {
-                $email = $this->dom->createElement('email');
-                $author->appendChild($email);
-                $text = $dom->createTextNode($data['email']);
-                $email->appendChild($text);
-            }
-            if (array_key_exists('uri', $data)) {
-                $uri = $this->dom->createElement('uri');
-                $author->appendChild($uri);
-                $text = $dom->createTextNode($data['uri']);
-                $uri->appendChild($text);
-            }
-        }
-    }
-
-    /**
-     * Set entry enclosure
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setEnclosure(DOMDocument $dom, DOMElement $root)
-    {
-        $data = $this->container->getEnclosure();
-        if ((!$data || empty($data))) {
-            return;
-        }
-        $enclosure = $this->dom->createElement('link');
-        $enclosure->setAttribute('rel', 'enclosure');
-        if (isset($data['type'])) {
-            $enclosure->setAttribute('type', $data['type']);
-        }
-        if (isset($data['length'])) {
-            $enclosure->setAttribute('length', $data['length']);
-        }
-        $enclosure->setAttribute('href', $data['uri']);
-        $root->appendChild($enclosure);
-    }
-
-    protected function _setLink(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getLink()) {
-            return;
-        }
-        $link = $dom->createElement('link');
-        $root->appendChild($link);
-        $link->setAttribute('rel', 'alternate');
-        $link->setAttribute('type', 'text/html');
-        $link->setAttribute('href', $this->getDataContainer()->getLink());
-    }
-
-    /**
-     * Set entry identifier
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setId(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getId()
-        && !$this->getDataContainer()->getLink()) {
-            $message = 'Atom 1.0 entry elements MUST contain exactly one '
-            . 'atom:id element, or as an alternative, we can use the same '
-            . 'value as atom:link however neither a suitable link nor an '
-            . 'id have been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        if (!$this->getDataContainer()->getId()) {
-            $this->getDataContainer()->setId(
-                $this->getDataContainer()->getLink()
-            );
-        }
-        if (!Uri::factory($this->getDataContainer()->getId())->isValid()
-            && !preg_match(
-                "#^urn:[a-zA-Z0-9][a-zA-Z0-9\-]{1,31}:([a-zA-Z0-9\(\)\+\,\.\:\=\@\;\$\_\!\*\-]|%[0-9a-fA-F]{2})*#",
-                $this->getDataContainer()->getId()
-            )
-            && !$this->_validateTagUri($this->getDataContainer()->getId())
-        ) {
-            throw new Writer\Exception\InvalidArgumentException('Atom 1.0 IDs must be a valid URI/IRI');
-        }
-        $id = $dom->createElement('id');
-        $root->appendChild($id);
-        $text = $dom->createTextNode($this->getDataContainer()->getId());
-        $id->appendChild($text);
-    }
-
-    /**
-     * Validate a URI using the tag scheme (RFC 4151)
-     *
-     * @param string $id
-     * @return bool
-     */
-    protected function _validateTagUri($id)
-    {
-        if (preg_match(
-            '/^tag:(?P<name>.*),(?P<date>\d{4}-?\d{0,2}-?\d{0,2}):(?P<specific>.*)(.*:)*$/',
-            $id,
-            $matches
-        )) {
-            $dvalid = false;
-            $date = $matches['date'];
-            $d6 = strtotime($date);
-            if ((strlen($date) == 4) && $date <= date('Y')) {
-                $dvalid = true;
-            } elseif ((strlen($date) == 7) && ($d6 < strtotime("now"))) {
-                $dvalid = true;
-            } elseif ((strlen($date) == 10) && ($d6 < strtotime("now"))) {
-                $dvalid = true;
-            }
-            $validator = new Validator\EmailAddress;
-            if ($validator->isValid($matches['name'])) {
-                $nvalid = true;
-            } else {
-                $nvalid = $validator->isValid('info@' . $matches['name']);
-            }
-            return $dvalid && $nvalid;
-        }
-        return false;
-    }
-
-    /**
-     * Set entry content
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setContent(DOMDocument $dom, DOMElement $root)
-    {
-        $content = $this->getDataContainer()->getContent();
-        if (!$content && !$this->getDataContainer()->getLink()) {
-            $message = 'Atom 1.0 entry elements MUST contain exactly one '
-            . 'atom:content element, or as an alternative, at least one link '
-            . 'with a rel attribute of "alternate" to indicate an alternate '
-            . 'method to consume the content.';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        if (!$content) {
-            return;
-        }
-        $element = $dom->createElement('content');
-        $element->setAttribute('type', 'xhtml');
-        $xhtmlElement = $this->_loadXhtml($content);
-        $deep = version_compare(PHP_VERSION, '7', 'ge') ? 1 : true;
-        $xhtml = $dom->importNode($xhtmlElement, $deep);
-        $element->appendChild($xhtml);
-        $root->appendChild($element);
-    }
-
-    /**
-     * Load a HTML string and attempt to normalise to XML
-     */
-    protected function _loadXhtml($content)
-    {
-        if (class_exists('tidy', false)) {
-            $tidy = new \tidy;
-            $config = array(
-                'output-xhtml' => true,
-                'show-body-only' => true,
-                'quote-nbsp' => false
-            );
-            $encoding = str_replace('-', '', $this->getEncoding());
-            $tidy->parseString($content, $config, $encoding);
-            $tidy->cleanRepair();
-            $xhtml = (string) $tidy;
-        } else {
-            $xhtml = $content;
-        }
-        $xhtml = preg_replace(array(
-            "/(<[\/]?)([a-zA-Z]+)/"
-        ), '$1xhtml:$2', $xhtml);
-        $dom = new DOMDocument('1.0', $this->getEncoding());
-        $dom->loadXML(
-            '<xhtml:div xmlns:xhtml="http://www.w3.org/1999/xhtml">'
-            . $xhtml
-            . '</xhtml:div>'
-        );
-        return $dom->documentElement;
-    }
-
-    /**
-     * Set entry categories
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCategories(DOMDocument $dom, DOMElement $root)
-    {
-        $categories = $this->getDataContainer()->getCategories();
-        if (!$categories) {
-            return;
-        }
-        foreach ($categories as $cat) {
-            $category = $dom->createElement('category');
-            $category->setAttribute('term', $cat['term']);
-            if (isset($cat['label'])) {
-                $category->setAttribute('label', $cat['label']);
-            } else {
-                $category->setAttribute('label', $cat['term']);
-            }
-            if (isset($cat['scheme'])) {
-                $category->setAttribute('scheme', $cat['scheme']);
-            }
-            $root->appendChild($category);
-        }
-    }
-
-    /**
-     * Append Source element (Atom 1.0 Feed Metadata)
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setSource(DOMDocument $dom, DOMElement $root)
-    {
-        $source = $this->getDataContainer()->getSource();
-        if (!$source) {
-            return;
-        }
-        $renderer = new Renderer\Feed\AtomSource($source);
-        $renderer->setType($this->getType());
-        $element = $renderer->render()->getElement();
-        $imported = $dom->importNode($element, true);
-        $root->appendChild($imported);
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Atom/Deleted.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Atom/Deleted.php
deleted file mode 100644
index 8519bd9..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Atom/Deleted.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Entry\Atom;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-
-class Deleted extends Renderer\AbstractRenderer implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Deleted $container
-     */
-    public function __construct(Writer\Deleted $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render atom entry
-     *
-     * @return Writer\Renderer\Entry\Atom
-     */
-    public function render()
-    {
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $entry = $this->dom->createElement('at:deleted-entry');
-        $this->dom->appendChild($entry);
-
-        $entry->setAttribute('ref', $this->container->getReference());
-        $entry->setAttribute('when', $this->container->getWhen()->format(DateTime::ATOM));
-
-        $this->_setBy($this->dom, $entry);
-        $this->_setComment($this->dom, $entry);
-
-        return $this;
-    }
-
-    /**
-     * Set tombstone comment
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setComment(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getComment()) {
-            return;
-        }
-        $c = $dom->createElement('at:comment');
-        $root->appendChild($c);
-        $c->setAttribute('type', 'html');
-        $cdata = $dom->createCDATASection($this->getDataContainer()->getComment());
-        $c->appendChild($cdata);
-    }
-
-    /**
-     * Set entry authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBy(DOMDocument $dom, DOMElement $root)
-    {
-        $data = $this->container->getBy();
-        if ((!$data || empty($data))) {
-            return;
-        }
-        $author = $this->dom->createElement('at:by');
-        $name = $this->dom->createElement('name');
-        $author->appendChild($name);
-        $root->appendChild($author);
-        $text = $dom->createTextNode($data['name']);
-        $name->appendChild($text);
-        if (array_key_exists('email', $data)) {
-            $email = $this->dom->createElement('email');
-            $author->appendChild($email);
-            $text = $dom->createTextNode($data['email']);
-            $email->appendChild($text);
-        }
-        if (array_key_exists('uri', $data)) {
-            $uri = $this->dom->createElement('uri');
-            $author->appendChild($uri);
-            $text = $dom->createTextNode($data['uri']);
-            $uri->appendChild($text);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/AtomDeleted.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/AtomDeleted.php
deleted file mode 100644
index f0db3e9..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/AtomDeleted.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Entry;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-
-/**
-*/
-class AtomDeleted extends Renderer\AbstractRenderer implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Deleted $container
-     */
-    public function __construct(Writer\Deleted $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render atom entry
-     *
-     * @return \Zend\Feed\Writer\Renderer\Entry\Atom
-     */
-    public function render()
-    {
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $entry = $this->dom->createElement('at:deleted-entry');
-        $this->dom->appendChild($entry);
-
-        $entry->setAttribute('ref', $this->container->getReference());
-        $entry->setAttribute('when', $this->container->getWhen()->format(DateTime::ATOM));
-
-        $this->_setBy($this->dom, $entry);
-        $this->_setComment($this->dom, $entry);
-
-        return $this;
-    }
-
-    /**
-     * Set tombstone comment
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setComment(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getComment()) {
-            return;
-        }
-        $c = $dom->createElement('at:comment');
-        $root->appendChild($c);
-        $c->setAttribute('type', 'html');
-        $cdata = $dom->createCDATASection($this->getDataContainer()->getComment());
-        $c->appendChild($cdata);
-    }
-
-    /**
-     * Set entry authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBy(DOMDocument $dom, DOMElement $root)
-    {
-        $data = $this->container->getBy();
-        if ((!$data || empty($data))) {
-            return;
-        }
-        $author = $this->dom->createElement('at:by');
-        $name = $this->dom->createElement('name');
-        $author->appendChild($name);
-        $root->appendChild($author);
-        $text = $dom->createTextNode($data['name']);
-        $name->appendChild($text);
-        if (array_key_exists('email', $data)) {
-            $email = $this->dom->createElement('email');
-            $author->appendChild($email);
-            $text = $dom->createTextNode($data['email']);
-            $email->appendChild($text);
-        }
-        if (array_key_exists('uri', $data)) {
-            $uri = $this->dom->createElement('uri');
-            $author->appendChild($uri);
-            $text = $dom->createTextNode($data['uri']);
-            $uri->appendChild($text);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Rss.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Rss.php
deleted file mode 100644
index aae2f46..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Entry/Rss.php
+++ /dev/null
@@ -1,329 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Entry;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Uri;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-
-/**
-*/
-class Rss extends Renderer\AbstractRenderer implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Entry $container
-     */
-    public function __construct(Writer\Entry $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render RSS entry
-     *
-     * @return Rss
-     */
-    public function render()
-    {
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $this->dom->substituteEntities = false;
-        $entry = $this->dom->createElement('item');
-        $this->dom->appendChild($entry);
-
-        $this->_setTitle($this->dom, $entry);
-        $this->_setDescription($this->dom, $entry);
-        $this->_setDateCreated($this->dom, $entry);
-        $this->_setDateModified($this->dom, $entry);
-        $this->_setLink($this->dom, $entry);
-        $this->_setId($this->dom, $entry);
-        $this->_setAuthors($this->dom, $entry);
-        $this->_setEnclosure($this->dom, $entry);
-        $this->_setCommentLink($this->dom, $entry);
-        $this->_setCategories($this->dom, $entry);
-        foreach ($this->extensions as $ext) {
-            $ext->setType($this->getType());
-            $ext->setRootElement($this->getRootElement());
-            $ext->setDOMDocument($this->getDOMDocument(), $entry);
-            $ext->render();
-        }
-
-        return $this;
-    }
-
-    /**
-     * Set entry title
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setTitle(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDescription()
-        && !$this->getDataContainer()->getTitle()) {
-            $message = 'RSS 2.0 entry elements SHOULD contain exactly one'
-            . ' title element but a title has not been set. In addition, there'
-            . ' is no description as required in the absence of a title.';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        $title = $dom->createElement('title');
-        $root->appendChild($title);
-        $text = $dom->createTextNode($this->getDataContainer()->getTitle());
-        $title->appendChild($text);
-    }
-
-    /**
-     * Set entry description
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setDescription(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDescription()
-        && !$this->getDataContainer()->getTitle()) {
-            $message = 'RSS 2.0 entry elements SHOULD contain exactly one'
-            . ' description element but a description has not been set. In'
-            . ' addition, there is no title element as required in the absence'
-            . ' of a description.';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        if (!$this->getDataContainer()->getDescription()) {
-            return;
-        }
-        $subtitle = $dom->createElement('description');
-        $root->appendChild($subtitle);
-        $text = $dom->createCDATASection($this->getDataContainer()->getDescription());
-        $subtitle->appendChild($text);
-    }
-
-    /**
-     * Set date entry was last modified
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateModified(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateModified()) {
-            return;
-        }
-
-        $updated = $dom->createElement('pubDate');
-        $root->appendChild($updated);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getDateModified()->format(DateTime::RSS)
-        );
-        $updated->appendChild($text);
-    }
-
-    /**
-     * Set date entry was created
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateCreated(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateCreated()) {
-            return;
-        }
-        if (!$this->getDataContainer()->getDateModified()) {
-            $this->getDataContainer()->setDateModified(
-                $this->getDataContainer()->getDateCreated()
-            );
-        }
-    }
-
-    /**
-     * Set entry authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->container->getAuthors();
-        if ((!$authors || empty($authors))) {
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('author');
-            $name = $data['name'];
-            if (array_key_exists('email', $data)) {
-                $name = $data['email'] . ' (' . $data['name'] . ')';
-            }
-            $text = $dom->createTextNode($name);
-            $author->appendChild($text);
-            $root->appendChild($author);
-        }
-    }
-
-    /**
-     * Set entry enclosure
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setEnclosure(DOMDocument $dom, DOMElement $root)
-    {
-        $data = $this->container->getEnclosure();
-        if ((!$data || empty($data))) {
-            return;
-        }
-        if (!isset($data['type'])) {
-            $exception = new Writer\Exception\InvalidArgumentException('Enclosure "type" is not set');
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        if (!isset($data['length'])) {
-            $exception = new Writer\Exception\InvalidArgumentException('Enclosure "length" is not set');
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        if (isset($data['length']) && (int) $data['length'] <= 0) {
-            $exception = new Writer\Exception\InvalidArgumentException('Enclosure "length" must be an integer'
-            . ' indicating the content\'s length in bytes');
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        $enclosure = $this->dom->createElement('enclosure');
-        $enclosure->setAttribute('type', $data['type']);
-        $enclosure->setAttribute('length', $data['length']);
-        $enclosure->setAttribute('url', $data['uri']);
-        $root->appendChild($enclosure);
-    }
-
-    /**
-     * Set link to entry
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setLink(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getLink()) {
-            return;
-        }
-        $link = $dom->createElement('link');
-        $root->appendChild($link);
-        $text = $dom->createTextNode($this->getDataContainer()->getLink());
-        $link->appendChild($text);
-    }
-
-    /**
-     * Set entry identifier
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setId(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getId()
-        && !$this->getDataContainer()->getLink()) {
-            return;
-        }
-
-        $id = $dom->createElement('guid');
-        $root->appendChild($id);
-        if (!$this->getDataContainer()->getId()) {
-            $this->getDataContainer()->setId(
-                $this->getDataContainer()->getLink());
-        }
-        $text = $dom->createTextNode($this->getDataContainer()->getId());
-        $id->appendChild($text);
-        if (!Uri::factory($this->getDataContainer()->getId())->isValid()) {
-            $id->setAttribute('isPermaLink', 'false');
-        }
-    }
-
-    /**
-     * Set link to entry comments
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCommentLink(DOMDocument $dom, DOMElement $root)
-    {
-        $link = $this->getDataContainer()->getCommentLink();
-        if (!$link) {
-            return;
-        }
-        $clink = $this->dom->createElement('comments');
-        $text = $dom->createTextNode($link);
-        $clink->appendChild($text);
-        $root->appendChild($clink);
-    }
-
-    /**
-     * Set entry categories
-     *
-     * @param DOMDocument $dom
-     * @param DOMElement $root
-     * @return void
-     */
-    protected function _setCategories(DOMDocument $dom, DOMElement $root)
-    {
-        $categories = $this->getDataContainer()->getCategories();
-        if (!$categories) {
-            return;
-        }
-        foreach ($categories as $cat) {
-            $category = $dom->createElement('category');
-            if (isset($cat['scheme'])) {
-                $category->setAttribute('domain', $cat['scheme']);
-            }
-            $text = $dom->createCDATASection($cat['term']);
-            $category->appendChild($text);
-            $root->appendChild($category);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/AbstractAtom.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/AbstractAtom.php
deleted file mode 100644
index a5400a6..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/AbstractAtom.php
+++ /dev/null
@@ -1,403 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Feed;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-use Zend\Feed\Writer\Version;
-
-/**
-*/
-class AbstractAtom extends Renderer\AbstractRenderer
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\AbstractFeed $container
-     */
-    public function __construct($container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Set feed language
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setLanguage(DOMDocument $dom, DOMElement $root)
-    {
-        if ($this->getDataContainer()->getLanguage()) {
-            $root->setAttribute('xml:lang', $this->getDataContainer()
-                ->getLanguage());
-        }
-    }
-
-    /**
-     * Set feed title
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setTitle(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getTitle()) {
-            $message = 'Atom 1.0 feed elements MUST contain exactly one'
-            . ' atom:title element but a title has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $title = $dom->createElement('title');
-        $root->appendChild($title);
-        $title->setAttribute('type', 'text');
-        $text = $dom->createTextNode($this->getDataContainer()->getTitle());
-        $title->appendChild($text);
-    }
-
-    /**
-     * Set feed description
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDescription(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDescription()) {
-            return;
-        }
-        $subtitle = $dom->createElement('subtitle');
-        $root->appendChild($subtitle);
-        $subtitle->setAttribute('type', 'text');
-        $text = $dom->createTextNode($this->getDataContainer()->getDescription());
-        $subtitle->appendChild($text);
-    }
-
-    /**
-     * Set date feed was last modified
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setDateModified(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateModified()) {
-            $message = 'Atom 1.0 feed elements MUST contain exactly one'
-            . ' atom:updated element but a modification date has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $updated = $dom->createElement('updated');
-        $root->appendChild($updated);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getDateModified()->format(DateTime::ATOM)
-        );
-        $updated->appendChild($text);
-    }
-
-    /**
-     * Set feed generator string
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setGenerator(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getGenerator()) {
-            $this->getDataContainer()->setGenerator('Zend_Feed_Writer',
-                Version::VERSION, 'http://framework.zend.com');
-        }
-
-        $gdata = $this->getDataContainer()->getGenerator();
-        $generator = $dom->createElement('generator');
-        $root->appendChild($generator);
-        $text = $dom->createTextNode($gdata['name']);
-        $generator->appendChild($text);
-        if (array_key_exists('uri', $gdata)) {
-            $generator->setAttribute('uri', $gdata['uri']);
-        }
-        if (array_key_exists('version', $gdata)) {
-            $generator->setAttribute('version', $gdata['version']);
-        }
-    }
-
-    /**
-     * Set link to feed
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setLink(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getLink()) {
-            return;
-        }
-        $link = $dom->createElement('link');
-        $root->appendChild($link);
-        $link->setAttribute('rel', 'alternate');
-        $link->setAttribute('type', 'text/html');
-        $link->setAttribute('href', $this->getDataContainer()->getLink());
-    }
-
-    /**
-     * Set feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setFeedLinks(DOMDocument $dom, DOMElement $root)
-    {
-        $flinks = $this->getDataContainer()->getFeedLinks();
-        if (!$flinks || !array_key_exists('atom', $flinks)) {
-            $message = 'Atom 1.0 feed elements SHOULD contain one atom:link '
-            . 'element with a rel attribute value of "self".  This is the '
-            . 'preferred URI for retrieving Atom Feed Documents representing '
-            . 'this Atom feed but a feed link has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        foreach ($flinks as $type => $href) {
-            $mime = 'application/' . strtolower($type) . '+xml';
-            $flink = $dom->createElement('link');
-            $root->appendChild($flink);
-            $flink->setAttribute('rel', 'self');
-            $flink->setAttribute('type', $mime);
-            $flink->setAttribute('href', $href);
-        }
-    }
-
-    /**
-     * Set feed authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->container->getAuthors();
-        if (!$authors || empty($authors)) {
-            /**
-             * Technically we should defer an exception until we can check
-             * that all entries contain an author. If any entry is missing
-             * an author, then a missing feed author element is invalid
-             */
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('author');
-            $name = $this->dom->createElement('name');
-            $author->appendChild($name);
-            $root->appendChild($author);
-            $text = $dom->createTextNode($data['name']);
-            $name->appendChild($text);
-            if (array_key_exists('email', $data)) {
-                $email = $this->dom->createElement('email');
-                $author->appendChild($email);
-                $text = $dom->createTextNode($data['email']);
-                $email->appendChild($text);
-            }
-            if (array_key_exists('uri', $data)) {
-                $uri = $this->dom->createElement('uri');
-                $author->appendChild($uri);
-                $text = $dom->createTextNode($data['uri']);
-                $uri->appendChild($text);
-            }
-        }
-    }
-
-    /**
-     * Set feed identifier
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setId(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getId()
-        && !$this->getDataContainer()->getLink()) {
-            $message = 'Atom 1.0 feed elements MUST contain exactly one '
-            . 'atom:id element, or as an alternative, we can use the same '
-            . 'value as atom:link however neither a suitable link nor an '
-            . 'id have been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        if (!$this->getDataContainer()->getId()) {
-            $this->getDataContainer()->setId(
-                $this->getDataContainer()->getLink());
-        }
-        $id = $dom->createElement('id');
-        $root->appendChild($id);
-        $text = $dom->createTextNode($this->getDataContainer()->getId());
-        $id->appendChild($text);
-    }
-
-    /**
-     * Set feed copyright
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCopyright(DOMDocument $dom, DOMElement $root)
-    {
-        $copyright = $this->getDataContainer()->getCopyright();
-        if (!$copyright) {
-            return;
-        }
-        $copy = $dom->createElement('rights');
-        $root->appendChild($copy);
-        $text = $dom->createTextNode($copyright);
-        $copy->appendChild($text);
-    }
-
-    /**
-     * Set feed level logo (image)
-     *
-     * @param DOMDocument $dom
-     * @param DOMElement $root
-     * @return void
-     */
-    protected function _setImage(DOMDocument $dom, DOMElement $root)
-    {
-        $image = $this->getDataContainer()->getImage();
-        if (!$image) {
-            return;
-        }
-        $img = $dom->createElement('logo');
-        $root->appendChild($img);
-        $text = $dom->createTextNode($image['uri']);
-        $img->appendChild($text);
-    }
-
-    /**
-     * Set date feed was created
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateCreated(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateCreated()) {
-            return;
-        }
-        if (!$this->getDataContainer()->getDateModified()) {
-            $this->getDataContainer()->setDateModified(
-                $this->getDataContainer()->getDateCreated()
-            );
-        }
-    }
-
-    /**
-     * Set base URL to feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBaseUrl(DOMDocument $dom, DOMElement $root)
-    {
-        $baseUrl = $this->getDataContainer()->getBaseUrl();
-        if (!$baseUrl) {
-            return;
-        }
-        $root->setAttribute('xml:base', $baseUrl);
-    }
-
-    /**
-     * Set hubs to which this feed pushes
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setHubs(DOMDocument $dom, DOMElement $root)
-    {
-        $hubs = $this->getDataContainer()->getHubs();
-        if (!$hubs) {
-            return;
-        }
-        foreach ($hubs as $hubUrl) {
-            $hub = $dom->createElement('link');
-            $hub->setAttribute('rel', 'hub');
-            $hub->setAttribute('href', $hubUrl);
-            $root->appendChild($hub);
-        }
-    }
-
-    /**
-     * Set feed categories
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCategories(DOMDocument $dom, DOMElement $root)
-    {
-        $categories = $this->getDataContainer()->getCategories();
-        if (!$categories) {
-            return;
-        }
-        foreach ($categories as $cat) {
-            $category = $dom->createElement('category');
-            $category->setAttribute('term', $cat['term']);
-            if (isset($cat['label'])) {
-                $category->setAttribute('label', $cat['label']);
-            } else {
-                $category->setAttribute('label', $cat['term']);
-            }
-            if (isset($cat['scheme'])) {
-                $category->setAttribute('scheme', $cat['scheme']);
-            }
-            $root->appendChild($category);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom.php
deleted file mode 100644
index 939babc..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Feed;
-
-use DOMDocument;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-
-/**
-*/
-class Atom extends AbstractAtom implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Feed $container
-     */
-    public function __construct(Writer\Feed $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render Atom feed
-     *
-     * @return Atom
-     */
-    public function render()
-    {
-        if (!$this->container->getEncoding()) {
-            $this->container->setEncoding('UTF-8');
-        }
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $root = $this->dom->createElementNS(
-            Writer\Writer::NAMESPACE_ATOM_10,
-            'feed'
-        );
-        $this->setRootElement($root);
-        $this->dom->appendChild($root);
-        $this->_setLanguage($this->dom, $root);
-        $this->_setBaseUrl($this->dom, $root);
-        $this->_setTitle($this->dom, $root);
-        $this->_setDescription($this->dom, $root);
-        $this->_setImage($this->dom, $root);
-        $this->_setDateCreated($this->dom, $root);
-        $this->_setDateModified($this->dom, $root);
-        $this->_setGenerator($this->dom, $root);
-        $this->_setLink($this->dom, $root);
-        $this->_setFeedLinks($this->dom, $root);
-        $this->_setId($this->dom, $root);
-        $this->_setAuthors($this->dom, $root);
-        $this->_setCopyright($this->dom, $root);
-        $this->_setCategories($this->dom, $root);
-        $this->_setHubs($this->dom, $root);
-
-        foreach ($this->extensions as $ext) {
-            $ext->setType($this->getType());
-            $ext->setRootElement($this->getRootElement());
-            $ext->setDOMDocument($this->getDOMDocument(), $root);
-            $ext->render();
-        }
-
-        foreach ($this->container as $entry) {
-            if ($this->getDataContainer()->getEncoding()) {
-                $entry->setEncoding($this->getDataContainer()->getEncoding());
-            }
-            if ($entry instanceof Writer\Entry) {
-                $renderer = new Renderer\Entry\Atom($entry);
-            } else {
-                if (!$this->dom->documentElement->hasAttribute('xmlns:at')) {
-                    $this->dom->documentElement->setAttribute(
-                        'xmlns:at',
-                        'http://purl.org/atompub/tombstones/1.0'
-                    );
-                }
-                $renderer = new Renderer\Entry\AtomDeleted($entry);
-            }
-            if ($this->ignoreExceptions === true) {
-                $renderer->ignoreExceptions();
-            }
-            $renderer->setType($this->getType());
-            $renderer->setRootElement($this->dom->documentElement);
-            $renderer->render();
-            $element = $renderer->getElement();
-            $deep = version_compare(PHP_VERSION, '7', 'ge') ? 1 : true;
-            $imported = $this->dom->importNode($element, $deep);
-            $root->appendChild($imported);
-        }
-        return $this;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom/AbstractAtom.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom/AbstractAtom.php
deleted file mode 100644
index 20fc8df..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom/AbstractAtom.php
+++ /dev/null
@@ -1,399 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Feed\Atom;
-
-use Datetime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed;
-use Zend\Feed\Writer\Version;
-
-class AbstractAtom extends Feed\Writer\Renderer\AbstractRenderer
-{
-    /**
-     * Constructor
-     *
-     * @param  \Zend\Feed\Writer\Feed $container
-     */
-    public function __construct($container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Set feed language
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setLanguage(DOMDocument $dom, DOMElement $root)
-    {
-        if ($this->getDataContainer()->getLanguage()) {
-            $root->setAttribute('xml:lang', $this->getDataContainer()
-                ->getLanguage());
-        }
-    }
-
-    /**
-     * Set feed title
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Feed\Exception\InvalidArgumentException
-     */
-    protected function _setTitle(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getTitle()) {
-            $message = 'Atom 1.0 feed elements MUST contain exactly one'
-                . ' atom:title element but a title has not been set';
-            $exception = new Feed\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $title = $dom->createElement('title');
-        $root->appendChild($title);
-        $title->setAttribute('type', 'text');
-        $text = $dom->createTextNode($this->getDataContainer()->getTitle());
-        $title->appendChild($text);
-    }
-
-    /**
-     * Set feed description
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDescription(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDescription()) {
-            return;
-        }
-        $subtitle = $dom->createElement('subtitle');
-        $root->appendChild($subtitle);
-        $subtitle->setAttribute('type', 'text');
-        $text = $dom->createTextNode($this->getDataContainer()->getDescription());
-        $subtitle->appendChild($text);
-    }
-
-    /**
-     * Set date feed was last modified
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Feed\Exception\InvalidArgumentException
-     */
-    protected function _setDateModified(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateModified()) {
-            $message = 'Atom 1.0 feed elements MUST contain exactly one'
-                . ' atom:updated element but a modification date has not been set';
-            $exception = new Feed\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $updated = $dom->createElement('updated');
-        $root->appendChild($updated);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getDateModified()->format(DateTime::ATOM)
-        );
-        $updated->appendChild($text);
-    }
-
-    /**
-     * Set feed generator string
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setGenerator(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getGenerator()) {
-            $this->getDataContainer()->setGenerator('Zend_Feed_Writer',
-                Version::VERSION, 'http://framework.zend.com');
-        }
-
-        $gdata = $this->getDataContainer()->getGenerator();
-        $generator = $dom->createElement('generator');
-        $root->appendChild($generator);
-        $text = $dom->createTextNode($gdata['name']);
-        $generator->appendChild($text);
-        if (array_key_exists('uri', $gdata)) {
-            $generator->setAttribute('uri', $gdata['uri']);
-        }
-        if (array_key_exists('version', $gdata)) {
-            $generator->setAttribute('version', $gdata['version']);
-        }
-    }
-
-    /**
-     * Set link to feed
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setLink(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getLink()) {
-            return;
-        }
-        $link = $dom->createElement('link');
-        $root->appendChild($link);
-        $link->setAttribute('rel', 'alternate');
-        $link->setAttribute('type', 'text/html');
-        $link->setAttribute('href', $this->getDataContainer()->getLink());
-    }
-
-    /**
-     * Set feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Feed\Exception\InvalidArgumentException
-     */
-    protected function _setFeedLinks(DOMDocument $dom, DOMElement $root)
-    {
-        $flinks = $this->getDataContainer()->getFeedLinks();
-        if (!$flinks || !array_key_exists('atom', $flinks)) {
-            $message = 'Atom 1.0 feed elements SHOULD contain one atom:link '
-                . 'element with a rel attribute value of "self".  This is the '
-                . 'preferred URI for retrieving Atom Feed Documents representing '
-                . 'this Atom feed but a feed link has not been set';
-            $exception = new Feed\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        foreach ($flinks as $type => $href) {
-            $mime = 'application/' . strtolower($type) . '+xml';
-            $flink = $dom->createElement('link');
-            $root->appendChild($flink);
-            $flink->setAttribute('rel', 'self');
-            $flink->setAttribute('type', $mime);
-            $flink->setAttribute('href', $href);
-        }
-    }
-
-    /**
-     * Set feed authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->container->getAuthors();
-        if (!$authors || empty($authors)) {
-            /**
-             * Technically we should defer an exception until we can check
-             * that all entries contain an author. If any entry is missing
-             * an author, then a missing feed author element is invalid
-             */
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('author');
-            $name = $this->dom->createElement('name');
-            $author->appendChild($name);
-            $root->appendChild($author);
-            $text = $dom->createTextNode($data['name']);
-            $name->appendChild($text);
-            if (array_key_exists('email', $data)) {
-                $email = $this->dom->createElement('email');
-                $author->appendChild($email);
-                $text = $dom->createTextNode($data['email']);
-                $email->appendChild($text);
-            }
-            if (array_key_exists('uri', $data)) {
-                $uri = $this->dom->createElement('uri');
-                $author->appendChild($uri);
-                $text = $dom->createTextNode($data['uri']);
-                $uri->appendChild($text);
-            }
-        }
-    }
-
-    /**
-     * Set feed identifier
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Feed\Exception\InvalidArgumentException
-     */
-    protected function _setId(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getId()
-        && !$this->getDataContainer()->getLink()) {
-            $message = 'Atom 1.0 feed elements MUST contain exactly one '
-                . 'atom:id element, or as an alternative, we can use the same '
-                . 'value as atom:link however neither a suitable link nor an '
-                . 'id have been set';
-            $exception = new Feed\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        if (!$this->getDataContainer()->getId()) {
-            $this->getDataContainer()->setId(
-                $this->getDataContainer()->getLink());
-        }
-        $id = $dom->createElement('id');
-        $root->appendChild($id);
-        $text = $dom->createTextNode($this->getDataContainer()->getId());
-        $id->appendChild($text);
-    }
-
-    /**
-     * Set feed copyright
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCopyright(DOMDocument $dom, DOMElement $root)
-    {
-        $copyright = $this->getDataContainer()->getCopyright();
-        if (!$copyright) {
-            return;
-        }
-        $copy = $dom->createElement('rights');
-        $root->appendChild($copy);
-        $text = $dom->createTextNode($copyright);
-        $copy->appendChild($text);
-    }
-    /**
-     * Set feed level logo (image)
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setImage(DOMDocument $dom, DOMElement $root)
-    {
-        $image = $this->getDataContainer()->getImage();
-        if (!$image) {
-            return;
-        }
-        $img = $dom->createElement('logo');
-        $root->appendChild($img);
-        $text = $dom->createTextNode($image['uri']);
-        $img->appendChild($text);
-    }
-
-    /**
-     * Set date feed was created
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateCreated(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateCreated()) {
-            return;
-        }
-        if (!$this->getDataContainer()->getDateModified()) {
-            $this->getDataContainer()->setDateModified(
-                $this->getDataContainer()->getDateCreated()
-            );
-        }
-    }
-
-    /**
-     * Set base URL to feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBaseUrl(DOMDocument $dom, DOMElement $root)
-    {
-        $baseUrl = $this->getDataContainer()->getBaseUrl();
-        if (!$baseUrl) {
-            return;
-        }
-        $root->setAttribute('xml:base', $baseUrl);
-    }
-
-    /**
-     * Set hubs to which this feed pushes
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setHubs(DOMDocument $dom, DOMElement $root)
-    {
-        $hubs = $this->getDataContainer()->getHubs();
-        if (!$hubs) {
-            return;
-        }
-        foreach ($hubs as $hubUrl) {
-            $hub = $dom->createElement('link');
-            $hub->setAttribute('rel', 'hub');
-            $hub->setAttribute('href', $hubUrl);
-            $root->appendChild($hub);
-        }
-    }
-
-    /**
-     * Set feed categories
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCategories(DOMDocument $dom, DOMElement $root)
-    {
-        $categories = $this->getDataContainer()->getCategories();
-        if (!$categories) {
-            return;
-        }
-        foreach ($categories as $cat) {
-            $category = $dom->createElement('category');
-            $category->setAttribute('term', $cat['term']);
-            if (isset($cat['label'])) {
-                $category->setAttribute('label', $cat['label']);
-            } else {
-                $category->setAttribute('label', $cat['term']);
-            }
-            if (isset($cat['scheme'])) {
-                $category->setAttribute('scheme', $cat['scheme']);
-            }
-            $root->appendChild($category);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom/Source.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom/Source.php
deleted file mode 100644
index 3793db0..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Atom/Source.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Feed\Atom;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-
-class Source extends AbstractAtom implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Source $container
-     */
-    public function __construct(Writer\Source $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render Atom Feed Metadata (Source element)
-     *
-     * @return Writer\Renderer\Feed\Atom
-     */
-    public function render()
-    {
-        if (!$this->container->getEncoding()) {
-            $this->container->setEncoding('UTF-8');
-        }
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $root = $this->dom->createElement('source');
-        $this->setRootElement($root);
-        $this->dom->appendChild($root);
-        $this->_setLanguage($this->dom, $root);
-        $this->_setBaseUrl($this->dom, $root);
-        $this->_setTitle($this->dom, $root);
-        $this->_setDescription($this->dom, $root);
-        $this->_setDateCreated($this->dom, $root);
-        $this->_setDateModified($this->dom, $root);
-        $this->_setGenerator($this->dom, $root);
-        $this->_setLink($this->dom, $root);
-        $this->_setFeedLinks($this->dom, $root);
-        $this->_setId($this->dom, $root);
-        $this->_setAuthors($this->dom, $root);
-        $this->_setCopyright($this->dom, $root);
-        $this->_setCategories($this->dom, $root);
-
-        foreach ($this->extensions as $ext) {
-            $ext->setType($this->getType());
-            $ext->setRootElement($this->getRootElement());
-            $ext->setDomDocument($this->getDomDocument(), $root);
-            $ext->render();
-        }
-        return $this;
-    }
-
-    /**
-     * Set feed generator string
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setGenerator(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getGenerator()) {
-            return;
-        }
-
-        $gdata = $this->getDataContainer()->getGenerator();
-        $generator = $dom->createElement('generator');
-        $root->appendChild($generator);
-        $text = $dom->createTextNode($gdata['name']);
-        $generator->appendChild($text);
-        if (array_key_exists('uri', $gdata)) {
-            $generator->setAttribute('uri', $gdata['uri']);
-        }
-        if (array_key_exists('version', $gdata)) {
-            $generator->setAttribute('version', $gdata['version']);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/AtomSource.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/AtomSource.php
deleted file mode 100644
index d552b80..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/AtomSource.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Feed;
-
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-
-/**
-*/
-class AtomSource extends AbstractAtom implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Source $container
-     */
-    public function __construct(Writer\Source $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render Atom Feed Metadata (Source element)
-     *
-     * @return \Zend\Feed\Writer\Renderer\Feed\Atom
-     */
-    public function render()
-    {
-        if (!$this->container->getEncoding()) {
-            $this->container->setEncoding('UTF-8');
-        }
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $root = $this->dom->createElement('source');
-        $this->setRootElement($root);
-        $this->dom->appendChild($root);
-        $this->_setLanguage($this->dom, $root);
-        $this->_setBaseUrl($this->dom, $root);
-        $this->_setTitle($this->dom, $root);
-        $this->_setDescription($this->dom, $root);
-        $this->_setDateCreated($this->dom, $root);
-        $this->_setDateModified($this->dom, $root);
-        $this->_setGenerator($this->dom, $root);
-        $this->_setLink($this->dom, $root);
-        $this->_setFeedLinks($this->dom, $root);
-        $this->_setId($this->dom, $root);
-        $this->_setAuthors($this->dom, $root);
-        $this->_setCopyright($this->dom, $root);
-        $this->_setCategories($this->dom, $root);
-
-        foreach ($this->extensions as $ext) {
-            $ext->setType($this->getType());
-            $ext->setRootElement($this->getRootElement());
-            $ext->setDOMDocument($this->getDOMDocument(), $root);
-            $ext->render();
-        }
-        return $this;
-    }
-
-    /**
-     * Set feed generator string
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setGenerator(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getGenerator()) {
-            return;
-        }
-
-        $gdata = $this->getDataContainer()->getGenerator();
-        $generator = $dom->createElement('generator');
-        $root->appendChild($generator);
-        $text = $dom->createTextNode($gdata['name']);
-        $generator->appendChild($text);
-        if (array_key_exists('uri', $gdata)) {
-            $generator->setAttribute('uri', $gdata['uri']);
-        }
-        if (array_key_exists('version', $gdata)) {
-            $generator->setAttribute('version', $gdata['version']);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Rss.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Rss.php
deleted file mode 100644
index be902b8..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/Feed/Rss.php
+++ /dev/null
@@ -1,488 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer\Feed;
-
-use DateTime;
-use DOMDocument;
-use DOMElement;
-use Zend\Feed\Uri;
-use Zend\Feed\Writer;
-use Zend\Feed\Writer\Renderer;
-use Zend\Feed\Writer\Version;
-
-/**
-*/
-class Rss extends Renderer\AbstractRenderer implements Renderer\RendererInterface
-{
-    /**
-     * Constructor
-     *
-     * @param  Writer\Feed $container
-     */
-    public function __construct(Writer\Feed $container)
-    {
-        parent::__construct($container);
-    }
-
-    /**
-     * Render RSS feed
-     *
-     * @return self
-     */
-    public function render()
-    {
-        $this->dom = new DOMDocument('1.0', $this->container->getEncoding());
-        $this->dom->formatOutput = true;
-        $this->dom->substituteEntities = false;
-        $rss = $this->dom->createElement('rss');
-        $this->setRootElement($rss);
-        $rss->setAttribute('version', '2.0');
-
-        $channel = $this->dom->createElement('channel');
-        $rss->appendChild($channel);
-        $this->dom->appendChild($rss);
-        $this->_setLanguage($this->dom, $channel);
-        $this->_setBaseUrl($this->dom, $channel);
-        $this->_setTitle($this->dom, $channel);
-        $this->_setDescription($this->dom, $channel);
-        $this->_setImage($this->dom, $channel);
-        $this->_setDateCreated($this->dom, $channel);
-        $this->_setDateModified($this->dom, $channel);
-        $this->_setLastBuildDate($this->dom, $channel);
-        $this->_setGenerator($this->dom, $channel);
-        $this->_setLink($this->dom, $channel);
-        $this->_setAuthors($this->dom, $channel);
-        $this->_setCopyright($this->dom, $channel);
-        $this->_setCategories($this->dom, $channel);
-
-        foreach ($this->extensions as $ext) {
-            $ext->setType($this->getType());
-            $ext->setRootElement($this->getRootElement());
-            $ext->setDOMDocument($this->getDOMDocument(), $channel);
-            $ext->render();
-        }
-
-        foreach ($this->container as $entry) {
-            if ($this->getDataContainer()->getEncoding()) {
-                $entry->setEncoding($this->getDataContainer()->getEncoding());
-            }
-            if ($entry instanceof Writer\Entry) {
-                $renderer = new Renderer\Entry\Rss($entry);
-            } else {
-                continue;
-            }
-            if ($this->ignoreExceptions === true) {
-                $renderer->ignoreExceptions();
-            }
-            $renderer->setType($this->getType());
-            $renderer->setRootElement($this->dom->documentElement);
-            $renderer->render();
-            $element = $renderer->getElement();
-            $deep = version_compare(PHP_VERSION, '7', 'ge') ? 1 : true;
-            $imported = $this->dom->importNode($element, $deep);
-            $channel->appendChild($imported);
-        }
-        return $this;
-    }
-
-    /**
-     * Set feed language
-     *
-     * @param DOMDocument $dom
-     * @param DOMElement $root
-     * @return void
-     */
-    protected function _setLanguage(DOMDocument $dom, DOMElement $root)
-    {
-        $lang = $this->getDataContainer()->getLanguage();
-        if (!$lang) {
-            return;
-        }
-        $language = $dom->createElement('language');
-        $root->appendChild($language);
-        $language->nodeValue = $lang;
-    }
-
-    /**
-     * Set feed title
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setTitle(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getTitle()) {
-            $message = 'RSS 2.0 feed elements MUST contain exactly one'
-            . ' title element but a title has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $title = $dom->createElement('title');
-        $root->appendChild($title);
-        $text = $dom->createTextNode($this->getDataContainer()->getTitle());
-        $title->appendChild($text);
-    }
-
-    /**
-     * Set feed description
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setDescription(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDescription()) {
-            $message = 'RSS 2.0 feed elements MUST contain exactly one'
-            . ' description element but one has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        $subtitle = $dom->createElement('description');
-        $root->appendChild($subtitle);
-        $text = $dom->createTextNode($this->getDataContainer()->getDescription());
-        $subtitle->appendChild($text);
-    }
-
-    /**
-     * Set date feed was last modified
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateModified(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateModified()) {
-            return;
-        }
-
-        $updated = $dom->createElement('pubDate');
-        $root->appendChild($updated);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getDateModified()->format(DateTime::RSS)
-        );
-        $updated->appendChild($text);
-    }
-
-    /**
-     * Set feed generator string
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setGenerator(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getGenerator()) {
-            $this->getDataContainer()->setGenerator(
-                'Zend_Feed_Writer',
-                Version::VERSION,
-                'http://framework.zend.com'
-            );
-        }
-
-        $gdata = $this->getDataContainer()->getGenerator();
-        $generator = $dom->createElement('generator');
-        $root->appendChild($generator);
-        $name = $gdata['name'];
-        if (array_key_exists('version', $gdata)) {
-            $name .= ' ' . $gdata['version'];
-        }
-        if (array_key_exists('uri', $gdata)) {
-            $name .= ' (' . $gdata['uri'] . ')';
-        }
-        $text = $dom->createTextNode($name);
-        $generator->appendChild($text);
-    }
-
-    /**
-     * Set link to feed
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setLink(DOMDocument $dom, DOMElement $root)
-    {
-        $value = $this->getDataContainer()->getLink();
-        if (!$value) {
-            $message = 'RSS 2.0 feed elements MUST contain exactly one'
-            . ' link element but one has not been set';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-        $link = $dom->createElement('link');
-        $root->appendChild($link);
-        $text = $dom->createTextNode($value);
-        $link->appendChild($text);
-        if (!Uri::factory($value)->isValid()) {
-            $link->setAttribute('isPermaLink', 'false');
-        }
-    }
-
-    /**
-     * Set feed authors
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setAuthors(DOMDocument $dom, DOMElement $root)
-    {
-        $authors = $this->getDataContainer()->getAuthors();
-        if (!$authors || empty($authors)) {
-            return;
-        }
-        foreach ($authors as $data) {
-            $author = $this->dom->createElement('author');
-            $name = $data['name'];
-            if (array_key_exists('email', $data)) {
-                $name = $data['email'] . ' (' . $data['name'] . ')';
-            }
-            $text = $dom->createTextNode($name);
-            $author->appendChild($text);
-            $root->appendChild($author);
-        }
-    }
-
-    /**
-     * Set feed copyright
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCopyright(DOMDocument $dom, DOMElement $root)
-    {
-        $copyright = $this->getDataContainer()->getCopyright();
-        if (!$copyright) {
-            return;
-        }
-        $copy = $dom->createElement('copyright');
-        $root->appendChild($copy);
-        $text = $dom->createTextNode($copyright);
-        $copy->appendChild($text);
-    }
-
-    /**
-     * Set feed channel image
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     * @throws Writer\Exception\InvalidArgumentException
-     */
-    protected function _setImage(DOMDocument $dom, DOMElement $root)
-    {
-        $image = $this->getDataContainer()->getImage();
-        if (!$image) {
-            return;
-        }
-
-        if (!isset($image['title']) || empty($image['title'])
-            || !is_string($image['title'])
-        ) {
-            $message = 'RSS 2.0 feed images must include a title';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        if (empty($image['link']) || !is_string($image['link'])
-            || !Uri::factory($image['link'])->isValid()
-        ) {
-            $message = 'Invalid parameter: parameter \'link\''
-            . ' must be a non-empty string and valid URI/IRI';
-            $exception = new Writer\Exception\InvalidArgumentException($message);
-            if (!$this->ignoreExceptions) {
-                throw $exception;
-            } else {
-                $this->exceptions[] = $exception;
-                return;
-            }
-        }
-
-        $img   = $dom->createElement('image');
-        $root->appendChild($img);
-
-        $url   = $dom->createElement('url');
-        $text  = $dom->createTextNode($image['uri']);
-        $url->appendChild($text);
-
-        $title = $dom->createElement('title');
-        $text  = $dom->createTextNode($image['title']);
-        $title->appendChild($text);
-
-        $link  = $dom->createElement('link');
-        $text  = $dom->createTextNode($image['link']);
-        $link->appendChild($text);
-
-        $img->appendChild($url);
-        $img->appendChild($title);
-        $img->appendChild($link);
-
-        if (isset($image['height'])) {
-            if (!ctype_digit((string) $image['height']) || $image['height'] > 400) {
-                $message = 'Invalid parameter: parameter \'height\''
-                         . ' must be an integer not exceeding 400';
-                $exception = new Writer\Exception\InvalidArgumentException($message);
-                if (!$this->ignoreExceptions) {
-                    throw $exception;
-                } else {
-                    $this->exceptions[] = $exception;
-                    return;
-                }
-            }
-            $height = $dom->createElement('height');
-            $text   = $dom->createTextNode($image['height']);
-            $height->appendChild($text);
-            $img->appendChild($height);
-        }
-        if (isset($image['width'])) {
-            if (!ctype_digit((string) $image['width']) || $image['width'] > 144) {
-                $message = 'Invalid parameter: parameter \'width\''
-                         . ' must be an integer not exceeding 144';
-                $exception = new Writer\Exception\InvalidArgumentException($message);
-                if (!$this->ignoreExceptions) {
-                    throw $exception;
-                } else {
-                    $this->exceptions[] = $exception;
-                    return;
-                }
-            }
-            $width = $dom->createElement('width');
-            $text  = $dom->createTextNode($image['width']);
-            $width->appendChild($text);
-            $img->appendChild($width);
-        }
-        if (isset($image['description'])) {
-            if (empty($image['description']) || !is_string($image['description'])) {
-                $message = 'Invalid parameter: parameter \'description\''
-                         . ' must be a non-empty string';
-                $exception = new Writer\Exception\InvalidArgumentException($message);
-                if (!$this->ignoreExceptions) {
-                    throw $exception;
-                } else {
-                    $this->exceptions[] = $exception;
-                    return;
-                }
-            }
-            $desc = $dom->createElement('description');
-            $text = $dom->createTextNode($image['description']);
-            $desc->appendChild($text);
-            $img->appendChild($desc);
-        }
-    }
-
-    /**
-     * Set date feed was created
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setDateCreated(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getDateCreated()) {
-            return;
-        }
-        if (!$this->getDataContainer()->getDateModified()) {
-            $this->getDataContainer()->setDateModified(
-                $this->getDataContainer()->getDateCreated()
-            );
-        }
-    }
-
-    /**
-     * Set date feed last build date
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setLastBuildDate(DOMDocument $dom, DOMElement $root)
-    {
-        if (!$this->getDataContainer()->getLastBuildDate()) {
-            return;
-        }
-
-        $lastBuildDate = $dom->createElement('lastBuildDate');
-        $root->appendChild($lastBuildDate);
-        $text = $dom->createTextNode(
-            $this->getDataContainer()->getLastBuildDate()->format(DateTime::RSS)
-        );
-        $lastBuildDate->appendChild($text);
-    }
-
-    /**
-     * Set base URL to feed links
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setBaseUrl(DOMDocument $dom, DOMElement $root)
-    {
-        $baseUrl = $this->getDataContainer()->getBaseUrl();
-        if (!$baseUrl) {
-            return;
-        }
-        $root->setAttribute('xml:base', $baseUrl);
-    }
-
-    /**
-     * Set feed categories
-     *
-     * @param  DOMDocument $dom
-     * @param  DOMElement $root
-     * @return void
-     */
-    protected function _setCategories(DOMDocument $dom, DOMElement $root)
-    {
-        $categories = $this->getDataContainer()->getCategories();
-        if (!$categories) {
-            return;
-        }
-        foreach ($categories as $cat) {
-            $category = $dom->createElement('category');
-            if (isset($cat['scheme'])) {
-                $category->setAttribute('domain', $cat['scheme']);
-            }
-            $text = $dom->createTextNode($cat['term']);
-            $category->appendChild($text);
-            $root->appendChild($category);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Renderer/RendererInterface.php b/core/vendor/zendframework/zend-feed/Writer/Renderer/RendererInterface.php
deleted file mode 100644
index 24738ef..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Renderer/RendererInterface.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer\Renderer;
-
-use DOMDocument;
-use DOMElement;
-
-/**
-*/
-interface RendererInterface
-{
-    /**
-     * Render feed/entry
-     *
-     * @return void
-     */
-    public function render();
-
-    /**
-     * Save feed and/or entry to XML and return string
-     *
-     * @return string
-     */
-    public function saveXml();
-
-    /**
-     * Get DOM document
-     *
-     * @return DOMDocument
-     */
-    public function getDomDocument();
-
-    /**
-     * Get document element from DOM
-     *
-     * @return DOMElement
-     */
-    public function getElement();
-
-    /**
-     * Get data container containing feed items
-     *
-     * @return mixed
-     */
-    public function getDataContainer();
-
-    /**
-     * Should exceptions be ignored?
-     *
-     * @return mixed
-     */
-    public function ignoreExceptions();
-
-    /**
-     * Get list of thrown exceptions
-     *
-     * @return array
-     */
-    public function getExceptions();
-
-    /**
-     * Set the current feed type being exported to "rss" or "atom". This allows
-     * other objects to gracefully choose whether to execute or not, depending
-     * on their appropriateness for the current type, e.g. renderers.
-     *
-     * @param string $type
-     */
-    public function setType($type);
-
-    /**
-     * Retrieve the current or last feed type exported.
-     *
-     * @return string Value will be "rss" or "atom"
-     */
-    public function getType();
-
-    /**
-     * Sets the absolute root element for the XML feed being generated. This
-     * helps simplify the appending of namespace declarations, but also ensures
-     * namespaces are added to the root element - not scattered across the entire
-     * XML file - may assist namespace unsafe parsers and looks pretty ;).
-     *
-     * @param DOMElement $root
-     */
-    public function setRootElement(DOMElement $root);
-
-    /**
-     * Retrieve the absolute root element for the XML feed being generated.
-     *
-     * @return DOMElement
-     */
-    public function getRootElement();
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Source.php b/core/vendor/zendframework/zend-feed/Writer/Source.php
deleted file mode 100644
index 23affa7..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Source.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-/**
-*/
-class Source extends AbstractFeed
-{
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Version.php b/core/vendor/zendframework/zend-feed/Writer/Version.php
deleted file mode 100644
index 08351ca..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Version.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-abstract class Version
-{
-    const VERSION = '2';
-}
diff --git a/core/vendor/zendframework/zend-feed/Writer/Writer.php b/core/vendor/zendframework/zend-feed/Writer/Writer.php
deleted file mode 100644
index 8c53978..0000000
--- a/core/vendor/zendframework/zend-feed/Writer/Writer.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-/**
-*/
-class Writer
-{
-    /**
-     * Namespace constants
-     */
-    const NAMESPACE_ATOM_03  = 'http://purl.org/atom/ns#';
-    const NAMESPACE_ATOM_10  = 'http://www.w3.org/2005/Atom';
-    const NAMESPACE_RDF      = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
-    const NAMESPACE_RSS_090  = 'http://my.netscape.com/rdf/simple/0.9/';
-    const NAMESPACE_RSS_10   = 'http://purl.org/rss/1.0/';
-
-    /**
-     * Feed type constants
-     */
-    const TYPE_ANY              = 'any';
-    const TYPE_ATOM_03          = 'atom-03';
-    const TYPE_ATOM_10          = 'atom-10';
-    const TYPE_ATOM_ANY         = 'atom';
-    const TYPE_RSS_090          = 'rss-090';
-    const TYPE_RSS_091          = 'rss-091';
-    const TYPE_RSS_091_NETSCAPE = 'rss-091n';
-    const TYPE_RSS_091_USERLAND = 'rss-091u';
-    const TYPE_RSS_092          = 'rss-092';
-    const TYPE_RSS_093          = 'rss-093';
-    const TYPE_RSS_094          = 'rss-094';
-    const TYPE_RSS_10           = 'rss-10';
-    const TYPE_RSS_20           = 'rss-20';
-    const TYPE_RSS_ANY          = 'rss';
-
-    /**
-     * @var ExtensionManagerInterface
-     */
-    protected static $extensionManager = null;
-
-    /**
-     * Array of registered extensions by class postfix (after the base class
-     * name) across four categories - data containers and renderers for entry
-     * and feed levels.
-     *
-     * @var array
-     */
-    protected static $extensions = array(
-        'entry'         => array(),
-        'feed'          => array(),
-        'entryRenderer' => array(),
-        'feedRenderer'  => array(),
-    );
-
-    /**
-     * Set plugin loader for use with Extensions
-     *
-     * @param ExtensionManagerInterface
-     */
-    public static function setExtensionManager(ExtensionManagerInterface $extensionManager)
-    {
-        static::$extensionManager = $extensionManager;
-    }
-
-    /**
-     * Get plugin manager for use with Extensions
-     *
-     * @return ExtensionManagerInterface
-     */
-    public static function getExtensionManager()
-    {
-        if (!isset(static::$extensionManager)) {
-            static::setExtensionManager(new ExtensionManager());
-        }
-        return static::$extensionManager;
-    }
-
-    /**
-     * Register an Extension by name
-     *
-     * @param  string $name
-     * @return void
-     * @throws Exception\RuntimeException if unable to resolve Extension class
-     */
-    public static function registerExtension($name)
-    {
-        $feedName          = $name . '\Feed';
-        $entryName         = $name . '\Entry';
-        $feedRendererName  = $name . '\Renderer\Feed';
-        $entryRendererName = $name . '\Renderer\Entry';
-        $manager           = static::getExtensionManager();
-        if (static::isRegistered($name)) {
-            if ($manager->has($feedName)
-                || $manager->has($entryName)
-                || $manager->has($feedRendererName)
-                || $manager->has($entryRendererName)
-            ) {
-                return;
-            }
-        }
-        if (!$manager->has($feedName)
-            && !$manager->has($entryName)
-            && !$manager->has($feedRendererName)
-            && !$manager->has($entryRendererName)
-        ) {
-            throw new Exception\RuntimeException('Could not load extension: ' . $name
-                . 'using Plugin Loader. Check prefix paths are configured and extension exists.');
-        }
-        if ($manager->has($feedName)) {
-            static::$extensions['feed'][] = $feedName;
-        }
-        if ($manager->has($entryName)) {
-            static::$extensions['entry'][] = $entryName;
-        }
-        if ($manager->has($feedRendererName)) {
-            static::$extensions['feedRenderer'][] = $feedRendererName;
-        }
-        if ($manager->has($entryRendererName)) {
-            static::$extensions['entryRenderer'][] = $entryRendererName;
-        }
-    }
-
-    /**
-     * Is a given named Extension registered?
-     *
-     * @param  string $extensionName
-     * @return bool
-     */
-    public static function isRegistered($extensionName)
-    {
-        $feedName          = $extensionName . '\Feed';
-        $entryName         = $extensionName . '\Entry';
-        $feedRendererName  = $extensionName . '\Renderer\Feed';
-        $entryRendererName = $extensionName . '\Renderer\Entry';
-        if (in_array($feedName, static::$extensions['feed'])
-            || in_array($entryName, static::$extensions['entry'])
-            || in_array($feedRendererName, static::$extensions['feedRenderer'])
-            || in_array($entryRendererName, static::$extensions['entryRenderer'])
-        ) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Get a list of extensions
-     *
-     * @return array
-     */
-    public static function getExtensions()
-    {
-        return static::$extensions;
-    }
-
-    /**
-     * Reset class state to defaults
-     *
-     * @return void
-     */
-    public static function reset()
-    {
-        static::$extensionManager = null;
-        static::$extensions   = array(
-            'entry'         => array(),
-            'feed'          => array(),
-            'entryRenderer' => array(),
-            'feedRenderer'  => array(),
-        );
-    }
-
-    /**
-     * Register core (default) extensions
-     *
-     * @return void
-     */
-    public static function registerCoreExtensions()
-    {
-        static::registerExtension('DublinCore');
-        static::registerExtension('Content');
-        static::registerExtension('Atom');
-        static::registerExtension('Slash');
-        static::registerExtension('WellFormedWeb');
-        static::registerExtension('Threading');
-        static::registerExtension('ITunes');
-    }
-
-    public static function lcfirst($str)
-    {
-        $str[0] = strtolower($str[0]);
-        return $str;
-    }
-}
diff --git a/core/vendor/zendframework/zend-feed/composer.json b/core/vendor/zendframework/zend-feed/composer.json
deleted file mode 100644
index 5541ae5..0000000
--- a/core/vendor/zendframework/zend-feed/composer.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "name": "zendframework/zend-feed",
-    "description": "provides functionality for consuming RSS and Atom feeds",
-    "license": "BSD-3-Clause",
-    "keywords": [
-        "zf2",
-        "feed"
-    ],
-    "homepage": "https://github.com/zendframework/zf2",
-    "autoload": {
-        "psr-4": {
-            "Zend\\Feed\\": ""
-        }
-    },
-    "require": {
-        "php": ">=5.3.23",
-        "zendframework/zend-escaper": "self.version",
-        "zendframework/zend-stdlib": "self.version"
-    },
-    "require-dev": {
-        "zendframework/zend-db": "self.version",
-        "zendframework/zend-cache": "self.version",
-        "zendframework/zend-http": "self.version",
-        "zendframework/zend-servicemanager": "self.version",
-        "zendframework/zend-validator": "self.version"
-    },
-    "suggest": {
-        "zendframework/zend-cache": "Zend\\Cache component",
-        "zendframework/zend-db": "Zend\\Db component",
-        "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader",
-        "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for default/recommended ExtensionManager implementations",
-        "zendframework/zend-validator": "Zend\\Validator component"
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.3-dev",
-            "dev-develop": "2.4-dev"
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/AbstractOptions.php b/core/vendor/zendframework/zend-stdlib/AbstractOptions.php
deleted file mode 100644
index aaa1dd2..0000000
--- a/core/vendor/zendframework/zend-stdlib/AbstractOptions.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Traversable;
-
-abstract class AbstractOptions implements ParameterObjectInterface
-{
-    /**
-     * We use the __ prefix to avoid collisions with properties in
-     * user-implementations.
-     *
-     * @var bool
-     */
-    protected $__strictMode__ = true;
-
-    /**
-     * Constructor
-     *
-     * @param  array|Traversable|null $options
-     */
-    public function __construct($options = null)
-    {
-        if (null !== $options) {
-            $this->setFromArray($options);
-        }
-    }
-
-    /**
-     * Set one or more configuration properties
-     *
-     * @param  array|Traversable|AbstractOptions $options
-     * @throws Exception\InvalidArgumentException
-     * @return AbstractOptions Provides fluent interface
-     */
-    public function setFromArray($options)
-    {
-        if ($options instanceof self) {
-            $options = $options->toArray();
-        }
-
-        if (!is_array($options) && !$options instanceof Traversable) {
-            throw new Exception\InvalidArgumentException(
-                sprintf(
-                    'Parameter provided to %s must be an %s, %s or %s',
-                    __METHOD__,
-                    'array',
-                    'Traversable',
-                    'Zend\Stdlib\AbstractOptions'
-                )
-            );
-        }
-
-        foreach ($options as $key => $value) {
-            $this->__set($key, $value);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Cast to array
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        $array = array();
-        $transform = function ($letters) {
-            $letter = array_shift($letters);
-            return '_' . strtolower($letter);
-        };
-        foreach ($this as $key => $value) {
-            if ($key === '__strictMode__') {
-                continue;
-            }
-            $normalizedKey = preg_replace_callback('/([A-Z])/', $transform, $key);
-            $array[$normalizedKey] = $value;
-        }
-        return $array;
-    }
-
-    /**
-     * Set a configuration property
-     *
-     * @see ParameterObject::__set()
-     * @param string $key
-     * @param mixed $value
-     * @throws Exception\BadMethodCallException
-     * @return void
-     */
-    public function __set($key, $value)
-    {
-        $setter = 'set' . str_replace('_', '', $key);
-
-        if (is_callable(array($this, $setter))) {
-            $this->{$setter}($value);
-
-            return;
-        }
-
-        if ($this->__strictMode__) {
-            throw new Exception\BadMethodCallException(sprintf(
-                'The option "%s" does not have a callable "%s" ("%s") setter method which must be defined',
-                $key,
-                'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key))),
-                $setter
-            ));
-        }
-    }
-
-    /**
-     * Get a configuration property
-     *
-     * @see ParameterObject::__get()
-     * @param string $key
-     * @throws Exception\BadMethodCallException
-     * @return mixed
-     */
-    public function __get($key)
-    {
-        $getter = 'get' . str_replace('_', '', $key);
-
-        if (is_callable(array($this, $getter))) {
-            return $this->{$getter}();
-        }
-
-        throw new Exception\BadMethodCallException(sprintf(
-            'The option "%s" does not have a callable "%s" getter method which must be defined',
-            $key,
-            'get' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key)))
-        ));
-    }
-
-    /**
-     * Test if a configuration property is null
-     * @see ParameterObject::__isset()
-     * @param string $key
-     * @return bool
-     */
-    public function __isset($key)
-    {
-        $getter = 'get' . str_replace('_', '', $key);
-
-        return method_exists($this, $getter) && null !== $this->__get($key);
-    }
-
-    /**
-     * Set a configuration property to NULL
-     *
-     * @see ParameterObject::__unset()
-     * @param string $key
-     * @throws Exception\InvalidArgumentException
-     * @return void
-     */
-    public function __unset($key)
-    {
-        try {
-            $this->__set($key, null);
-        } catch (Exception\BadMethodCallException $e) {
-            throw new Exception\InvalidArgumentException(
-                'The class property $' . $key . ' cannot be unset as'
-                . ' NULL is an invalid value for it',
-                0,
-                $e
-            );
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArrayObject.php b/core/vendor/zendframework/zend-stdlib/ArrayObject.php
deleted file mode 100644
index 44145c8..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArrayObject.php
+++ /dev/null
@@ -1,432 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use ArrayAccess;
-use Countable;
-use IteratorAggregate;
-use Serializable;
-
-/**
- * Custom framework ArrayObject implementation
- *
- * Extends version-specific "abstract" implementation.
- */
-class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable
-{
-    /**
-     * Properties of the object have their normal functionality
-     * when accessed as list (var_dump, foreach, etc.).
-     */
-    const STD_PROP_LIST = 1;
-
-    /**
-     * Entries can be accessed as properties (read and write).
-     */
-    const ARRAY_AS_PROPS = 2;
-
-    /**
-     * @var array
-     */
-    protected $storage;
-
-    /**
-     * @var int
-     */
-    protected $flag;
-
-    /**
-     * @var string
-     */
-    protected $iteratorClass;
-
-    /**
-     * @var array
-     */
-    protected $protectedProperties;
-
-    /**
-     * Constructor
-     *
-     * @param array  $input
-     * @param int    $flags
-     * @param string $iteratorClass
-     */
-    public function __construct($input = array(), $flags = self::STD_PROP_LIST, $iteratorClass = 'ArrayIterator')
-    {
-        $this->setFlags($flags);
-        $this->storage = $input;
-        $this->setIteratorClass($iteratorClass);
-        $this->protectedProperties = array_keys(get_object_vars($this));
-    }
-
-    /**
-     * Returns whether the requested key exists
-     *
-     * @param  mixed $key
-     * @return bool
-     */
-    public function __isset($key)
-    {
-        if ($this->flag == self::ARRAY_AS_PROPS) {
-            return $this->offsetExists($key);
-        }
-        if (in_array($key, $this->protectedProperties)) {
-            throw new Exception\InvalidArgumentException('$key is a protected property, use a different key');
-        }
-
-        return isset($this->$key);
-    }
-
-    /**
-     * Sets the value at the specified key to value
-     *
-     * @param  mixed $key
-     * @param  mixed $value
-     * @return void
-     */
-    public function __set($key, $value)
-    {
-        if ($this->flag == self::ARRAY_AS_PROPS) {
-            return $this->offsetSet($key, $value);
-        }
-        if (in_array($key, $this->protectedProperties)) {
-            throw new Exception\InvalidArgumentException('$key is a protected property, use a different key');
-        }
-        $this->$key = $value;
-    }
-
-    /**
-     * Unsets the value at the specified key
-     *
-     * @param  mixed $key
-     * @return void
-     */
-    public function __unset($key)
-    {
-        if ($this->flag == self::ARRAY_AS_PROPS) {
-            return $this->offsetUnset($key);
-        }
-        if (in_array($key, $this->protectedProperties)) {
-            throw new Exception\InvalidArgumentException('$key is a protected property, use a different key');
-        }
-        unset($this->$key);
-    }
-
-    /**
-     * Returns the value at the specified key by reference
-     *
-     * @param  mixed $key
-     * @return mixed
-     */
-    public function &__get($key)
-    {
-        $ret = null;
-        if ($this->flag == self::ARRAY_AS_PROPS) {
-            $ret =& $this->offsetGet($key);
-
-            return $ret;
-        }
-        if (in_array($key, $this->protectedProperties)) {
-            throw new Exception\InvalidArgumentException('$key is a protected property, use a different key');
-        }
-
-        return $this->$key;
-    }
-
-    /**
-     * Appends the value
-     *
-     * @param  mixed $value
-     * @return void
-     */
-    public function append($value)
-    {
-        $this->storage[] = $value;
-    }
-
-    /**
-     * Sort the entries by value
-     *
-     * @return void
-     */
-    public function asort()
-    {
-        asort($this->storage);
-    }
-
-    /**
-     * Get the number of public properties in the ArrayObject
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->storage);
-    }
-
-    /**
-     * Exchange the array for another one.
-     *
-     * @param  array|ArrayObject $data
-     * @return array
-     */
-    public function exchangeArray($data)
-    {
-        if (!is_array($data) && !is_object($data)) {
-            throw new Exception\InvalidArgumentException('Passed variable is not an array or object, using empty array instead');
-        }
-
-        if (is_object($data) && ($data instanceof self || $data instanceof \ArrayObject)) {
-            $data = $data->getArrayCopy();
-        }
-        if (!is_array($data)) {
-            $data = (array) $data;
-        }
-
-        $storage = $this->storage;
-
-        $this->storage = $data;
-
-        return $storage;
-    }
-
-    /**
-     * Creates a copy of the ArrayObject.
-     *
-     * @return array
-     */
-    public function getArrayCopy()
-    {
-        return $this->storage;
-    }
-
-    /**
-     * Gets the behavior flags.
-     *
-     * @return int
-     */
-    public function getFlags()
-    {
-        return $this->flag;
-    }
-
-    /**
-     * Create a new iterator from an ArrayObject instance
-     *
-     * @return \Iterator
-     */
-    public function getIterator()
-    {
-        $class = $this->iteratorClass;
-
-        return new $class($this->storage);
-    }
-
-    /**
-     * Gets the iterator classname for the ArrayObject.
-     *
-     * @return string
-     */
-    public function getIteratorClass()
-    {
-        return $this->iteratorClass;
-    }
-
-    /**
-     * Sort the entries by key
-     *
-     * @return void
-     */
-    public function ksort()
-    {
-        ksort($this->storage);
-    }
-
-    /**
-     * Sort an array using a case insensitive "natural order" algorithm
-     *
-     * @return void
-     */
-    public function natcasesort()
-    {
-        natcasesort($this->storage);
-    }
-
-    /**
-     * Sort entries using a "natural order" algorithm
-     *
-     * @return void
-     */
-    public function natsort()
-    {
-        natsort($this->storage);
-    }
-
-    /**
-     * Returns whether the requested key exists
-     *
-     * @param  mixed $key
-     * @return bool
-     */
-    public function offsetExists($key)
-    {
-        return isset($this->storage[$key]);
-    }
-
-    /**
-     * Returns the value at the specified key
-     *
-     * @param  mixed $key
-     * @return mixed
-     */
-    public function &offsetGet($key)
-    {
-        $ret = null;
-        if (!$this->offsetExists($key)) {
-            return $ret;
-        }
-        $ret =& $this->storage[$key];
-
-        return $ret;
-    }
-
-    /**
-     * Sets the value at the specified key to value
-     *
-     * @param  mixed $key
-     * @param  mixed $value
-     * @return void
-     */
-    public function offsetSet($key, $value)
-    {
-        $this->storage[$key] = $value;
-    }
-
-    /**
-     * Unsets the value at the specified key
-     *
-     * @param  mixed $key
-     * @return void
-     */
-    public function offsetUnset($key)
-    {
-        if ($this->offsetExists($key)) {
-            unset($this->storage[$key]);
-        }
-    }
-
-    /**
-     * Serialize an ArrayObject
-     *
-     * @return string
-     */
-    public function serialize()
-    {
-        return serialize(get_object_vars($this));
-    }
-
-    /**
-     * Sets the behavior flags
-     *
-     * @param  int  $flags
-     * @return void
-     */
-    public function setFlags($flags)
-    {
-        $this->flag = $flags;
-    }
-
-    /**
-     * Sets the iterator classname for the ArrayObject
-     *
-     * @param  string $class
-     * @return void
-     */
-    public function setIteratorClass($class)
-    {
-        if (class_exists($class)) {
-            $this->iteratorClass = $class;
-
-            return ;
-        }
-
-        if (strpos($class, '\\') === 0) {
-            $class = '\\' . $class;
-            if (class_exists($class)) {
-                $this->iteratorClass = $class;
-
-                return ;
-            }
-        }
-
-        throw new Exception\InvalidArgumentException('The iterator class does not exist');
-    }
-
-    /**
-     * Sort the entries with a user-defined comparison function and maintain key association
-     *
-     * @param  callable $function
-     * @return void
-     */
-    public function uasort($function)
-    {
-        if (is_callable($function)) {
-            uasort($this->storage, $function);
-        }
-    }
-
-    /**
-     * Sort the entries by keys using a user-defined comparison function
-     *
-     * @param  callable $function
-     * @return void
-     */
-    public function uksort($function)
-    {
-        if (is_callable($function)) {
-            uksort($this->storage, $function);
-        }
-    }
-
-    /**
-     * Unserialize an ArrayObject
-     *
-     * @param  string $data
-     * @return void
-     */
-    public function unserialize($data)
-    {
-        $ar                        = unserialize($data);
-        $this->protectedProperties = array_keys(get_object_vars($this));
-
-        $this->setFlags($ar['flag']);
-        $this->exchangeArray($ar['storage']);
-        $this->setIteratorClass($ar['iteratorClass']);
-
-        foreach ($ar as $k => $v) {
-            switch ($k) {
-                case 'flag':
-                    $this->setFlags($v);
-                    break;
-                case 'storage':
-                    $this->exchangeArray($v);
-                    break;
-                case 'iteratorClass':
-                    $this->setIteratorClass($v);
-                    break;
-                case 'protectedProperties':
-                    continue;
-                default:
-                    $this->__set($k, $v);
-            }
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArraySerializableInterface.php b/core/vendor/zendframework/zend-stdlib/ArraySerializableInterface.php
deleted file mode 100644
index dcf8471..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArraySerializableInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-interface ArraySerializableInterface
-{
-    /**
-     * Exchange internal values from provided array
-     *
-     * @param  array $array
-     * @return void
-     */
-    public function exchangeArray(array $array);
-
-    /**
-     * Return an array representation of the object
-     *
-     * @return array
-     */
-    public function getArrayCopy();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArrayStack.php b/core/vendor/zendframework/zend-stdlib/ArrayStack.php
deleted file mode 100644
index 39d02aa..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArrayStack.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use ArrayIterator;
-use ArrayObject as PhpArrayObject;
-
-/**
- * ArrayObject that acts as a stack with regards to iteration
- */
-class ArrayStack extends PhpArrayObject
-{
-    /**
-     * Retrieve iterator
-     *
-     * Retrieve an array copy of the object, reverse its order, and return an
-     * ArrayIterator with that reversed array.
-     *
-     * @return ArrayIterator
-     */
-    public function getIterator()
-    {
-        $array = $this->getArrayCopy();
-        return new ArrayIterator(array_reverse($array));
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArrayUtils.php b/core/vendor/zendframework/zend-stdlib/ArrayUtils.php
deleted file mode 100644
index 3545054..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArrayUtils.php
+++ /dev/null
@@ -1,335 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Traversable;
-use Zend\Stdlib\ArrayUtils\MergeRemoveKey;
-use Zend\Stdlib\ArrayUtils\MergeReplaceKeyInterface;
-
-/**
- * Utility class for testing and manipulation of PHP arrays.
- *
- * Declared abstract, as we have no need for instantiation.
- */
-abstract class ArrayUtils
-{
-    /**
-     * Compatibility Flag for ArrayUtils::filter
-     */
-    const ARRAY_FILTER_USE_BOTH = 1;
-
-    /**
-     * Compatibility Flag for ArrayUtils::filter
-     */
-    const ARRAY_FILTER_USE_KEY  = 2;
-
-    /**
-     * Test whether an array contains one or more string keys
-     *
-     * @param  mixed $value
-     * @param  bool  $allowEmpty    Should an empty array() return true
-     * @return bool
-     */
-    public static function hasStringKeys($value, $allowEmpty = false)
-    {
-        if (!is_array($value)) {
-            return false;
-        }
-
-        if (!$value) {
-            return $allowEmpty;
-        }
-
-        return count(array_filter(array_keys($value), 'is_string')) > 0;
-    }
-
-    /**
-     * Test whether an array contains one or more integer keys
-     *
-     * @param  mixed $value
-     * @param  bool  $allowEmpty    Should an empty array() return true
-     * @return bool
-     */
-    public static function hasIntegerKeys($value, $allowEmpty = false)
-    {
-        if (!is_array($value)) {
-            return false;
-        }
-
-        if (!$value) {
-            return $allowEmpty;
-        }
-
-        return count(array_filter(array_keys($value), 'is_int')) > 0;
-    }
-
-    /**
-     * Test whether an array contains one or more numeric keys.
-     *
-     * A numeric key can be one of the following:
-     * - an integer 1,
-     * - a string with a number '20'
-     * - a string with negative number: '-1000'
-     * - a float: 2.2120, -78.150999
-     * - a string with float:  '4000.99999', '-10.10'
-     *
-     * @param  mixed $value
-     * @param  bool  $allowEmpty    Should an empty array() return true
-     * @return bool
-     */
-    public static function hasNumericKeys($value, $allowEmpty = false)
-    {
-        if (!is_array($value)) {
-            return false;
-        }
-
-        if (!$value) {
-            return $allowEmpty;
-        }
-
-        return count(array_filter(array_keys($value), 'is_numeric')) > 0;
-    }
-
-    /**
-     * Test whether an array is a list
-     *
-     * A list is a collection of values assigned to continuous integer keys
-     * starting at 0 and ending at count() - 1.
-     *
-     * For example:
-     * <code>
-     * $list = array('a', 'b', 'c', 'd');
-     * $list = array(
-     *     0 => 'foo',
-     *     1 => 'bar',
-     *     2 => array('foo' => 'baz'),
-     * );
-     * </code>
-     *
-     * @param  mixed $value
-     * @param  bool  $allowEmpty    Is an empty list a valid list?
-     * @return bool
-     */
-    public static function isList($value, $allowEmpty = false)
-    {
-        if (!is_array($value)) {
-            return false;
-        }
-
-        if (!$value) {
-            return $allowEmpty;
-        }
-
-        return (array_values($value) === $value);
-    }
-
-    /**
-     * Test whether an array is a hash table.
-     *
-     * An array is a hash table if:
-     *
-     * 1. Contains one or more non-integer keys, or
-     * 2. Integer keys are non-continuous or misaligned (not starting with 0)
-     *
-     * For example:
-     * <code>
-     * $hash = array(
-     *     'foo' => 15,
-     *     'bar' => false,
-     * );
-     * $hash = array(
-     *     1995  => 'Birth of PHP',
-     *     2009  => 'PHP 5.3.0',
-     *     2012  => 'PHP 5.4.0',
-     * );
-     * $hash = array(
-     *     'formElement,
-     *     'options' => array( 'debug' => true ),
-     * );
-     * </code>
-     *
-     * @param  mixed $value
-     * @param  bool  $allowEmpty    Is an empty array() a valid hash table?
-     * @return bool
-     */
-    public static function isHashTable($value, $allowEmpty = false)
-    {
-        if (!is_array($value)) {
-            return false;
-        }
-
-        if (!$value) {
-            return $allowEmpty;
-        }
-
-        return (array_values($value) !== $value);
-    }
-
-    /**
-     * Checks if a value exists in an array.
-     *
-     * Due to "foo" == 0 === TRUE with in_array when strict = false, an option
-     * has been added to prevent this. When $strict = 0/false, the most secure
-     * non-strict check is implemented. if $strict = -1, the default in_array
-     * non-strict behaviour is used.
-     *
-     * @param mixed $needle
-     * @param array $haystack
-     * @param int|bool $strict
-     * @return bool
-     */
-    public static function inArray($needle, array $haystack, $strict = false)
-    {
-        if (!$strict) {
-            if (is_int($needle) || is_float($needle)) {
-                $needle = (string) $needle;
-            }
-            if (is_string($needle)) {
-                foreach ($haystack as &$h) {
-                    if (is_int($h) || is_float($h)) {
-                        $h = (string) $h;
-                    }
-                }
-            }
-        }
-        return in_array($needle, $haystack, $strict);
-    }
-
-    /**
-     * Convert an iterator to an array.
-     *
-     * Converts an iterator to an array. The $recursive flag, on by default,
-     * hints whether or not you want to do so recursively.
-     *
-     * @param  array|Traversable  $iterator     The array or Traversable object to convert
-     * @param  bool               $recursive    Recursively check all nested structures
-     * @throws Exception\InvalidArgumentException if $iterator is not an array or a Traversable object
-     * @return array
-     */
-    public static function iteratorToArray($iterator, $recursive = true)
-    {
-        if (!is_array($iterator) && !$iterator instanceof Traversable) {
-            throw new Exception\InvalidArgumentException(__METHOD__ . ' expects an array or Traversable object');
-        }
-
-        if (!$recursive) {
-            if (is_array($iterator)) {
-                return $iterator;
-            }
-
-            return iterator_to_array($iterator);
-        }
-
-        if (method_exists($iterator, 'toArray')) {
-            return $iterator->toArray();
-        }
-
-        $array = array();
-        foreach ($iterator as $key => $value) {
-            if (is_scalar($value)) {
-                $array[$key] = $value;
-                continue;
-            }
-
-            if ($value instanceof Traversable) {
-                $array[$key] = static::iteratorToArray($value, $recursive);
-                continue;
-            }
-
-            if (is_array($value)) {
-                $array[$key] = static::iteratorToArray($value, $recursive);
-                continue;
-            }
-
-            $array[$key] = $value;
-        }
-
-        return $array;
-    }
-
-    /**
-     * Merge two arrays together.
-     *
-     * If an integer key exists in both arrays and preserveNumericKeys is false, the value
-     * from the second array will be appended to the first array. If both values are arrays, they
-     * are merged together, else the value of the second array overwrites the one of the first array.
-     *
-     * @param  array $a
-     * @param  array $b
-     * @param  bool  $preserveNumericKeys
-     * @return array
-     */
-    public static function merge(array $a, array $b, $preserveNumericKeys = false)
-    {
-        foreach ($b as $key => $value) {
-            if ($value instanceof MergeReplaceKeyInterface) {
-                $a[$key] = $value->getData();
-            } elseif (isset($a[$key]) || array_key_exists($key, $a)) {
-                if ($value instanceof MergeRemoveKey) {
-                    unset($a[$key]);
-                } elseif (!$preserveNumericKeys && is_int($key)) {
-                    $a[] = $value;
-                } elseif (is_array($value) && is_array($a[$key])) {
-                    $a[$key] = static::merge($a[$key], $value, $preserveNumericKeys);
-                } else {
-                    $a[$key] = $value;
-                }
-            } else {
-                if (!$value instanceof MergeRemoveKey) {
-                    $a[$key] = $value;
-                }
-            }
-        }
-
-        return $a;
-    }
-
-    /**
-     * Compatibility Method for array_filter on <5.6 systems
-     *
-     * @param array $data
-     * @param callable $callback
-     * @param null|int $flag
-     * @return array
-     */
-    public static function filter(array $data, $callback, $flag = null)
-    {
-        if (! is_callable($callback)) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                'Second parameter of %s must be callable',
-                __METHOD__
-            ));
-        }
-
-        if (version_compare(PHP_VERSION, '5.6.0') >= 0) {
-            return array_filter($data, $callback, $flag);
-        }
-
-        $output = array();
-        foreach ($data as $key => $value) {
-            $params = array($value);
-
-            if ($flag === static::ARRAY_FILTER_USE_BOTH) {
-                $params[] = $key;
-            }
-
-            if ($flag === static::ARRAY_FILTER_USE_KEY) {
-                $params = array($key);
-            }
-
-            $response = call_user_func_array($callback, $params);
-            if ($response) {
-                $output[$key] = $value;
-            }
-        }
-
-        return $output;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeRemoveKey.php b/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeRemoveKey.php
deleted file mode 100644
index 7c4d097..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeRemoveKey.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\ArrayUtils;
-
-final class MergeRemoveKey
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeReplaceKey.php b/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeReplaceKey.php
deleted file mode 100644
index 24c1df4..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeReplaceKey.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\ArrayUtils;
-
-final class MergeReplaceKey implements MergeReplaceKeyInterface
-{
-    /**
-     * @var mixed
-     */
-    protected $data;
-
-    /**
-     * @param mixed $data
-     */
-    public function __construct($data)
-    {
-        $this->data = $data;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getData()
-    {
-        return $this->data;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeReplaceKeyInterface.php b/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeReplaceKeyInterface.php
deleted file mode 100644
index 725cf11..0000000
--- a/core/vendor/zendframework/zend-stdlib/ArrayUtils/MergeReplaceKeyInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\ArrayUtils;
-
-/**
- * Marker interface: can be used to replace keys completely in {@see ArrayUtils::merge()} operations
- */
-interface MergeReplaceKeyInterface
-{
-    /**
-     * @return mixed
-     */
-    public function getData();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/CONTRIBUTING.md b/core/vendor/zendframework/zend-stdlib/CONTRIBUTING.md
deleted file mode 100644
index e77f5d2..0000000
--- a/core/vendor/zendframework/zend-stdlib/CONTRIBUTING.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# CONTRIBUTING
-
-Please don't open pull requests against this repository, please use https://github.com/zendframework/zf2.
\ No newline at end of file
diff --git a/core/vendor/zendframework/zend-stdlib/CallbackHandler.php b/core/vendor/zendframework/zend-stdlib/CallbackHandler.php
deleted file mode 100644
index 158b0c7..0000000
--- a/core/vendor/zendframework/zend-stdlib/CallbackHandler.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use ReflectionClass;
-
-/**
- * CallbackHandler
- *
- * A handler for an event, event, filterchain, etc. Abstracts PHP callbacks,
- * primarily to allow for lazy-loading and ensuring availability of default
- * arguments (currying).
- */
-class CallbackHandler
-{
-    /**
-     * @var string|array|callable PHP callback to invoke
-     */
-    protected $callback;
-
-    /**
-     * Callback metadata, if any
-     * @var array
-     */
-    protected $metadata;
-
-    /**
-     * PHP version is greater as 5.4rc1?
-     * @var bool
-     */
-    protected static $isPhp54;
-
-    /**
-     * Constructor
-     *
-     * @param  string|array|object|callable $callback PHP callback
-     * @param  array                        $metadata  Callback metadata
-     */
-    public function __construct($callback, array $metadata = array())
-    {
-        $this->metadata  = $metadata;
-        $this->registerCallback($callback);
-    }
-
-    /**
-     * Registers the callback provided in the constructor
-     *
-     * @param  callable $callback
-     * @throws Exception\InvalidCallbackException
-     * @return void
-     */
-    protected function registerCallback($callback)
-    {
-        if (!is_callable($callback)) {
-            throw new Exception\InvalidCallbackException('Invalid callback provided; not callable');
-        }
-
-        $this->callback = $callback;
-    }
-
-    /**
-     * Retrieve registered callback
-     *
-     * @return callable
-     */
-    public function getCallback()
-    {
-        return $this->callback;
-    }
-
-    /**
-     * Invoke handler
-     *
-     * @param  array $args Arguments to pass to callback
-     * @return mixed
-     */
-    public function call(array $args = array())
-    {
-        $callback = $this->getCallback();
-
-        // Minor performance tweak, if the callback gets called more than once
-        if (!isset(static::$isPhp54)) {
-            static::$isPhp54 = version_compare(PHP_VERSION, '5.4.0rc1', '>=');
-        }
-
-        $argCount = count($args);
-
-        if (static::$isPhp54 && is_string($callback)) {
-            $result = $this->validateStringCallbackFor54($callback);
-
-            if ($result !== true && $argCount <= 3) {
-                $callback       = $result;
-                // Minor performance tweak, if the callback gets called more
-                // than once
-                $this->callback = $result;
-            }
-        }
-
-        // Minor performance tweak; use call_user_func() until > 3 arguments
-        // reached
-        switch ($argCount) {
-            case 0:
-                if (static::$isPhp54) {
-                    return $callback();
-                }
-                return call_user_func($callback);
-            case 1:
-                if (static::$isPhp54) {
-                    return $callback(array_shift($args));
-                }
-                return call_user_func($callback, array_shift($args));
-            case 2:
-                $arg1 = array_shift($args);
-                $arg2 = array_shift($args);
-                if (static::$isPhp54) {
-                    return $callback($arg1, $arg2);
-                }
-                return call_user_func($callback, $arg1, $arg2);
-            case 3:
-                $arg1 = array_shift($args);
-                $arg2 = array_shift($args);
-                $arg3 = array_shift($args);
-                if (static::$isPhp54) {
-                    return $callback($arg1, $arg2, $arg3);
-                }
-                return call_user_func($callback, $arg1, $arg2, $arg3);
-            default:
-                return call_user_func_array($callback, $args);
-        }
-    }
-
-    /**
-     * Invoke as functor
-     *
-     * @return mixed
-     */
-    public function __invoke()
-    {
-        return $this->call(func_get_args());
-    }
-
-    /**
-     * Get all callback metadata
-     *
-     * @return array
-     */
-    public function getMetadata()
-    {
-        return $this->metadata;
-    }
-
-    /**
-     * Retrieve a single metadatum
-     *
-     * @param  string $name
-     * @return mixed
-     */
-    public function getMetadatum($name)
-    {
-        if (array_key_exists($name, $this->metadata)) {
-            return $this->metadata[$name];
-        }
-        return;
-    }
-
-    /**
-     * Validate a static method call
-     *
-     * Validates that a static method call in PHP 5.4 will actually work
-     *
-     * @param  string $callback
-     * @return true|array
-     * @throws Exception\InvalidCallbackException if invalid
-     */
-    protected function validateStringCallbackFor54($callback)
-    {
-        if (!strstr($callback, '::')) {
-            return true;
-        }
-
-        list($class, $method) = explode('::', $callback, 2);
-
-        if (!class_exists($class)) {
-            throw new Exception\InvalidCallbackException(sprintf(
-                'Static method call "%s" refers to a class that does not exist',
-                $callback
-            ));
-        }
-
-        $r = new ReflectionClass($class);
-        if (!$r->hasMethod($method)) {
-            throw new Exception\InvalidCallbackException(sprintf(
-                'Static method call "%s" refers to a method that does not exist',
-                $callback
-            ));
-        }
-        $m = $r->getMethod($method);
-        if (!$m->isStatic()) {
-            throw new Exception\InvalidCallbackException(sprintf(
-                'Static method call "%s" refers to a method that is not static',
-                $callback
-            ));
-        }
-
-        // returning a non boolean value may not be nice for a validate method,
-        // but that allows the usage of a static string callback without using
-        // the call_user_func function.
-        return array($class, $method);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/DateTime.php b/core/vendor/zendframework/zend-stdlib/DateTime.php
deleted file mode 100644
index cdab67d..0000000
--- a/core/vendor/zendframework/zend-stdlib/DateTime.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use DateTimeZone;
-
-trigger_error('DateTime extension deprecated as of ZF 2.1.4; use the \DateTime constructor to parse extended ISO8601 dates instead', E_USER_DEPRECATED);
-
-/**
- * DateTime
- *
- * An extension of the \DateTime object.
- *
- * @deprecated
- */
-class DateTime extends \DateTime
-{
-    /**
-     * The DateTime::ISO8601 constant used by php's native DateTime object does
-     * not allow for fractions of a second. This function better handles ISO8601
-     * formatted date strings.
-     *
-     * @param  string       $time
-     * @param  DateTimeZone $timezone
-     * @return mixed
-     */
-    public static function createFromISO8601($time, DateTimeZone $timezone = null)
-    {
-        $format = self::ISO8601;
-        if (isset($time[19]) && $time[19] === '.') {
-            $format = 'Y-m-d\TH:i:s.uO';
-        }
-
-        if ($timezone !== null) {
-            return self::createFromFormat($format, $time, $timezone);
-        }
-
-        return self::createFromFormat($format, $time);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/DispatchableInterface.php b/core/vendor/zendframework/zend-stdlib/DispatchableInterface.php
deleted file mode 100644
index 4f74d1e..0000000
--- a/core/vendor/zendframework/zend-stdlib/DispatchableInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-interface DispatchableInterface
-{
-    /**
-     * Dispatch a request
-     *
-     * @param RequestInterface $request
-     * @param null|ResponseInterface $response
-     * @return Response|mixed
-     */
-    public function dispatch(RequestInterface $request, ResponseInterface $response = null);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ErrorHandler.php b/core/vendor/zendframework/zend-stdlib/ErrorHandler.php
deleted file mode 100644
index 01949d1..0000000
--- a/core/vendor/zendframework/zend-stdlib/ErrorHandler.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use ErrorException;
-
-/**
- * ErrorHandler that can be used to catch internal PHP errors
- * and convert to an ErrorException instance.
- */
-abstract class ErrorHandler
-{
-    /**
-     * Active stack
-     *
-     * @var array
-     */
-    protected static $stack = array();
-
-    /**
-     * Check if this error handler is active
-     *
-     * @return bool
-     */
-    public static function started()
-    {
-        return (bool) static::getNestedLevel();
-    }
-
-    /**
-     * Get the current nested level
-     *
-     * @return int
-     */
-    public static function getNestedLevel()
-    {
-        return count(static::$stack);
-    }
-
-    /**
-     * Starting the error handler
-     *
-     * @param int $errorLevel
-     */
-    public static function start($errorLevel = \E_WARNING)
-    {
-        if (!static::$stack) {
-            set_error_handler(array(get_called_class(), 'addError'), $errorLevel);
-        }
-
-        static::$stack[] = null;
-    }
-
-    /**
-     * Stopping the error handler
-     *
-     * @param  bool $throw Throw the ErrorException if any
-     * @return null|ErrorException
-     * @throws ErrorException If an error has been catched and $throw is true
-     */
-    public static function stop($throw = false)
-    {
-        $errorException = null;
-
-        if (static::$stack) {
-            $errorException = array_pop(static::$stack);
-
-            if (!static::$stack) {
-                restore_error_handler();
-            }
-
-            if ($errorException && $throw) {
-                throw $errorException;
-            }
-        }
-
-        return $errorException;
-    }
-
-    /**
-     * Stop all active handler
-     *
-     * @return void
-     */
-    public static function clean()
-    {
-        if (static::$stack) {
-            restore_error_handler();
-        }
-
-        static::$stack = array();
-    }
-
-    /**
-     * Add an error to the stack
-     *
-     * @param int    $errno
-     * @param string $errstr
-     * @param string $errfile
-     * @param int    $errline
-     * @return void
-     */
-    public static function addError($errno, $errstr = '', $errfile = '', $errline = 0)
-    {
-        $stack = & static::$stack[count(static::$stack) - 1];
-        $stack = new ErrorException($errstr, 0, $errno, $errfile, $errline, $stack);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/BadMethodCallException.php b/core/vendor/zendframework/zend-stdlib/Exception/BadMethodCallException.php
deleted file mode 100644
index 0254e45..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/BadMethodCallException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Bad method call exception
- */
-class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/DomainException.php b/core/vendor/zendframework/zend-stdlib/Exception/DomainException.php
deleted file mode 100644
index 6d2ac71..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/DomainException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Domain exception
- */
-class DomainException extends \DomainException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-stdlib/Exception/ExceptionInterface.php
deleted file mode 100644
index 60b795f..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Exception marker interface
- */
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/ExtensionNotLoadedException.php b/core/vendor/zendframework/zend-stdlib/Exception/ExtensionNotLoadedException.php
deleted file mode 100644
index 4b51475..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/ExtensionNotLoadedException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Extension not loaded exception
- */
-class ExtensionNotLoadedException extends RuntimeException
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-stdlib/Exception/InvalidArgumentException.php
deleted file mode 100644
index 8028c47..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Invalid Argument Exception
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/InvalidCallbackException.php b/core/vendor/zendframework/zend-stdlib/Exception/InvalidCallbackException.php
deleted file mode 100644
index aa36f98..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/InvalidCallbackException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Invalid callback exception
- */
-class InvalidCallbackException extends DomainException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/LogicException.php b/core/vendor/zendframework/zend-stdlib/Exception/LogicException.php
deleted file mode 100644
index 087ac0e..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/LogicException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Logic exception
- */
-class LogicException extends \LogicException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Exception/RuntimeException.php b/core/vendor/zendframework/zend-stdlib/Exception/RuntimeException.php
deleted file mode 100644
index f3891d6..0000000
--- a/core/vendor/zendframework/zend-stdlib/Exception/RuntimeException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Exception;
-
-/**
- * Runtime exception
- */
-class RuntimeException extends \RuntimeException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Extractor/ExtractionInterface.php b/core/vendor/zendframework/zend-stdlib/Extractor/ExtractionInterface.php
deleted file mode 100644
index 297d557..0000000
--- a/core/vendor/zendframework/zend-stdlib/Extractor/ExtractionInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Extractor;
-
-interface ExtractionInterface
-{
-    /**
-     * Extract values from an object
-     *
-     * @param  object $object
-     * @return array
-     */
-    public function extract($object);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Glob.php b/core/vendor/zendframework/zend-stdlib/Glob.php
deleted file mode 100644
index a4d0068..0000000
--- a/core/vendor/zendframework/zend-stdlib/Glob.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-/**
- * Wrapper for glob with fallback if GLOB_BRACE is not available.
- */
-abstract class Glob
-{
-    /**#@+
-     * Glob constants.
-     */
-    const GLOB_MARK     = 0x01;
-    const GLOB_NOSORT   = 0x02;
-    const GLOB_NOCHECK  = 0x04;
-    const GLOB_NOESCAPE = 0x08;
-    const GLOB_BRACE    = 0x10;
-    const GLOB_ONLYDIR  = 0x20;
-    const GLOB_ERR      = 0x40;
-    /**#@-*/
-
-    /**
-     * Find pathnames matching a pattern.
-     *
-     * @see    http://docs.php.net/glob
-     * @param  string  $pattern
-     * @param  int $flags
-     * @param  bool $forceFallback
-     * @return array
-     * @throws Exception\RuntimeException
-     */
-    public static function glob($pattern, $flags = 0, $forceFallback = false)
-    {
-        if (!defined('GLOB_BRACE') || $forceFallback) {
-            return static::fallbackGlob($pattern, $flags);
-        }
-
-        return static::systemGlob($pattern, $flags);
-    }
-
-    /**
-     * Use the glob function provided by the system.
-     *
-     * @param  string  $pattern
-     * @param  int     $flags
-     * @return array
-     * @throws Exception\RuntimeException
-     */
-    protected static function systemGlob($pattern, $flags)
-    {
-        if ($flags) {
-            $flagMap = array(
-                self::GLOB_MARK     => GLOB_MARK,
-                self::GLOB_NOSORT   => GLOB_NOSORT,
-                self::GLOB_NOCHECK  => GLOB_NOCHECK,
-                self::GLOB_NOESCAPE => GLOB_NOESCAPE,
-                self::GLOB_BRACE    => GLOB_BRACE,
-                self::GLOB_ONLYDIR  => GLOB_ONLYDIR,
-                self::GLOB_ERR      => GLOB_ERR,
-            );
-
-            $globFlags = 0;
-
-            foreach ($flagMap as $internalFlag => $globFlag) {
-                if ($flags & $internalFlag) {
-                    $globFlags |= $globFlag;
-                }
-            }
-        } else {
-            $globFlags = 0;
-        }
-
-        ErrorHandler::start();
-        $res = glob($pattern, $globFlags);
-        $err = ErrorHandler::stop();
-        if ($res === false) {
-            throw new Exception\RuntimeException("glob('{$pattern}', {$globFlags}) failed", 0, $err);
-        }
-        return $res;
-    }
-
-    /**
-     * Expand braces manually, then use the system glob.
-     *
-     * @param  string  $pattern
-     * @param  int     $flags
-     * @return array
-     * @throws Exception\RuntimeException
-     */
-    protected static function fallbackGlob($pattern, $flags)
-    {
-        if (!$flags & self::GLOB_BRACE) {
-            return static::systemGlob($pattern, $flags);
-        }
-
-        $flags &= ~self::GLOB_BRACE;
-        $length = strlen($pattern);
-        $paths  = array();
-
-        if ($flags & self::GLOB_NOESCAPE) {
-            $begin = strpos($pattern, '{');
-        } else {
-            $begin = 0;
-
-            while (true) {
-                if ($begin === $length) {
-                    $begin = false;
-                    break;
-                } elseif ($pattern[$begin] === '\\' && ($begin + 1) < $length) {
-                    $begin++;
-                } elseif ($pattern[$begin] === '{') {
-                    break;
-                }
-
-                $begin++;
-            }
-        }
-
-        if ($begin === false) {
-            return static::systemGlob($pattern, $flags);
-        }
-
-        $next = static::nextBraceSub($pattern, $begin + 1, $flags);
-
-        if ($next === null) {
-            return static::systemGlob($pattern, $flags);
-        }
-
-        $rest = $next;
-
-        while ($pattern[$rest] !== '}') {
-            $rest = static::nextBraceSub($pattern, $rest + 1, $flags);
-
-            if ($rest === null) {
-                return static::systemGlob($pattern, $flags);
-            }
-        }
-
-        $p = $begin + 1;
-
-        while (true) {
-            $subPattern = substr($pattern, 0, $begin)
-                        . substr($pattern, $p, $next - $p)
-                        . substr($pattern, $rest + 1);
-
-            $result = static::fallbackGlob($subPattern, $flags | self::GLOB_BRACE);
-
-            if ($result) {
-                $paths = array_merge($paths, $result);
-            }
-
-            if ($pattern[$next] === '}') {
-                break;
-            }
-
-            $p    = $next + 1;
-            $next = static::nextBraceSub($pattern, $p, $flags);
-        }
-
-        return array_unique($paths);
-    }
-
-    /**
-     * Find the end of the sub-pattern in a brace expression.
-     *
-     * @param  string  $pattern
-     * @param  int $begin
-     * @param  int $flags
-     * @return int|null
-     */
-    protected static function nextBraceSub($pattern, $begin, $flags)
-    {
-        $length  = strlen($pattern);
-        $depth   = 0;
-        $current = $begin;
-
-        while ($current < $length) {
-            if (!$flags & self::GLOB_NOESCAPE && $pattern[$current] === '\\') {
-                if (++$current === $length) {
-                    break;
-                }
-
-                $current++;
-            } else {
-                if (($pattern[$current] === '}' && $depth-- === 0) || ($pattern[$current] === ',' && $depth === 0)) {
-                    break;
-                } elseif ($pattern[$current++] === '{') {
-                    $depth++;
-                }
-            }
-        }
-
-        return ($current < $length ? $current : null);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Guard/AllGuardsTrait.php b/core/vendor/zendframework/zend-stdlib/Guard/AllGuardsTrait.php
deleted file mode 100644
index 95bc516..0000000
--- a/core/vendor/zendframework/zend-stdlib/Guard/AllGuardsTrait.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Guard;
-
-/**
- * An aggregate for all guard traits
- */
-trait AllGuardsTrait
-{
-    use ArrayOrTraversableGuardTrait;
-    use EmptyGuardTrait;
-    use NullGuardTrait;
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Guard/ArrayOrTraversableGuardTrait.php b/core/vendor/zendframework/zend-stdlib/Guard/ArrayOrTraversableGuardTrait.php
deleted file mode 100644
index e6959a5..0000000
--- a/core/vendor/zendframework/zend-stdlib/Guard/ArrayOrTraversableGuardTrait.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Guard;
-
-use Traversable;
-
-/**
- * Provide a guard method for array or Traversable data
- */
-trait ArrayOrTraversableGuardTrait
-{
-    /**
-     * Verifies that the data is an array or Traversable
-     *
-     * @param  mixed  $data           the data to verify
-     * @param  string $dataName       the data name
-     * @param  string $exceptionClass FQCN for the exception
-     * @throws \Exception
-     */
-    protected function guardForArrayOrTraversable(
-        $data,
-        $dataName = 'Argument',
-        $exceptionClass = 'Zend\Stdlib\Exception\InvalidArgumentException'
-    ) {
-        if (!is_array($data) && !($data instanceof Traversable)) {
-            $message = sprintf(
-                "%s must be an array or Traversable, [%s] given",
-                $dataName,
-                is_object($data) ? get_class($data) : gettype($data)
-            );
-            throw new $exceptionClass($message);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Guard/EmptyGuardTrait.php b/core/vendor/zendframework/zend-stdlib/Guard/EmptyGuardTrait.php
deleted file mode 100644
index c6751cc..0000000
--- a/core/vendor/zendframework/zend-stdlib/Guard/EmptyGuardTrait.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Guard;
-
-/**
- * Provide a guard method against empty data
- */
-trait EmptyGuardTrait
-{
-    /**
-     * Verify that the data is not empty
-     *
-     * @param  mixed  $data           the data to verify
-     * @param  string $dataName       the data name
-     * @param  string $exceptionClass FQCN for the exception
-     * @throws \Exception
-     */
-    protected function guardAgainstEmpty(
-        $data,
-        $dataName = 'Argument',
-        $exceptionClass = 'Zend\Stdlib\Exception\InvalidArgumentException'
-    ) {
-        if (empty($data)) {
-            $message = sprintf('%s cannot be empty', $dataName);
-            throw new $exceptionClass($message);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Guard/GuardUtils.php b/core/vendor/zendframework/zend-stdlib/Guard/GuardUtils.php
deleted file mode 100644
index 4fe4cca..0000000
--- a/core/vendor/zendframework/zend-stdlib/Guard/GuardUtils.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Guard;
-
-use Traversable;
-
-/**
- * Static guard helper class
- *
- * Bridges the gap for allowing refactoring until traits can be used by default.
- *
- * @deprecated
- */
-abstract class GuardUtils
-{
-    const DEFAULT_EXCEPTION_CLASS = 'Zend\Stdlib\Exception\InvalidArgumentException';
-
-    /**
-     * Verifies that the data is an array or Traversable
-     *
-     * @param  mixed  $data           the data to verify
-     * @param  string $dataName       the data name
-     * @param  string $exceptionClass FQCN for the exception
-     * @throws \Exception
-     */
-    public static function guardForArrayOrTraversable(
-        $data,
-        $dataName = 'Argument',
-        $exceptionClass = self::DEFAULT_EXCEPTION_CLASS
-    ) {
-        if (!is_array($data) && !($data instanceof Traversable)) {
-            $message = sprintf(
-                '%s must be an array or Traversable, [%s] given',
-                $dataName,
-                is_object($data) ? get_class($data) : gettype($data)
-            );
-            throw new $exceptionClass($message);
-        }
-    }
-
-    /**
-     * Verify that the data is not empty
-     *
-     * @param  mixed  $data           the data to verify
-     * @param  string $dataName       the data name
-     * @param  string $exceptionClass FQCN for the exception
-     * @throws \Exception
-     */
-    public static function guardAgainstEmpty(
-        $data,
-        $dataName = 'Argument',
-        $exceptionClass = self::DEFAULT_EXCEPTION_CLASS
-    ) {
-        if (empty($data)) {
-            $message = sprintf('%s cannot be empty', $dataName);
-            throw new $exceptionClass($message);
-        }
-    }
-
-    /**
-     * Verify that the data is not null
-     *
-     * @param  mixed  $data           the data to verify
-     * @param  string $dataName       the data name
-     * @param  string $exceptionClass FQCN for the exception
-     * @throws \Exception
-     */
-    public static function guardAgainstNull(
-        $data,
-        $dataName = 'Argument',
-        $exceptionClass = self::DEFAULT_EXCEPTION_CLASS
-    ) {
-        if (null === $data) {
-            $message = sprintf('%s cannot be null', $dataName);
-            throw new $exceptionClass($message);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Guard/NullGuardTrait.php b/core/vendor/zendframework/zend-stdlib/Guard/NullGuardTrait.php
deleted file mode 100644
index eac7162..0000000
--- a/core/vendor/zendframework/zend-stdlib/Guard/NullGuardTrait.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Guard;
-
-/**
- * Provide a guard method against null data
- */
-trait NullGuardTrait
-{
-    /**
-     * Verify that the data is not null
-     *
-     * @param  mixed  $data           the data to verify
-     * @param  string $dataName       the data name
-     * @param  string $exceptionClass FQCN for the exception
-     * @throws \Exception
-     */
-    protected function guardAgainstNull(
-        $data,
-        $dataName = 'Argument',
-        $exceptionClass = 'Zend\Stdlib\Exception\InvalidArgumentException'
-    ) {
-        if (null === $data) {
-            $message = sprintf('%s cannot be null', $dataName);
-            throw new $exceptionClass($message);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/AbstractHydrator.php b/core/vendor/zendframework/zend-stdlib/Hydrator/AbstractHydrator.php
deleted file mode 100644
index 338ed80..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/AbstractHydrator.php
+++ /dev/null
@@ -1,287 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use ArrayObject;
-use Zend\Stdlib\Exception;
-use Zend\Stdlib\Hydrator\Filter\FilterComposite;
-use Zend\Stdlib\Hydrator\NamingStrategy\NamingStrategyInterface;
-use Zend\Stdlib\Hydrator\Strategy\StrategyInterface;
-
-abstract class AbstractHydrator implements
-    HydratorInterface,
-    StrategyEnabledInterface,
-    FilterEnabledInterface,
-    NamingStrategyEnabledInterface
-{
-    /**
-     * The list with strategies that this hydrator has.
-     *
-     * @var ArrayObject
-     */
-    protected $strategies;
-
-    /**
-     * An instance of NamingStrategyInterface
-     *
-     * @var NamingStrategyInterface
-     */
-    protected $namingStrategy;
-
-    /**
-     * Composite to filter the methods, that need to be hydrated
-     *
-     * @var Filter\FilterComposite
-     */
-    protected $filterComposite;
-
-    /**
-     * Initializes a new instance of this class.
-     */
-    public function __construct()
-    {
-        $this->strategies = new ArrayObject();
-        $this->filterComposite = new FilterComposite();
-    }
-
-    /**
-     * Gets the strategy with the given name.
-     *
-     * @param string $name The name of the strategy to get.
-     *
-     * @throws \Zend\Stdlib\Exception\InvalidArgumentException
-     * @return StrategyInterface
-     */
-    public function getStrategy($name)
-    {
-        if (isset($this->strategies[$name])) {
-            return $this->strategies[$name];
-        }
-
-        if (!isset($this->strategies['*'])) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                '%s: no strategy by name of "%s", and no wildcard strategy present',
-                __METHOD__,
-                $name
-            ));
-        }
-
-        return $this->strategies['*'];
-    }
-
-    /**
-     * Checks if the strategy with the given name exists.
-     *
-     * @param string $name The name of the strategy to check for.
-     * @return bool
-     */
-    public function hasStrategy($name)
-    {
-        return array_key_exists($name, $this->strategies)
-               || array_key_exists('*', $this->strategies);
-    }
-
-    /**
-     * Adds the given strategy under the given name.
-     *
-     * @param string $name The name of the strategy to register.
-     * @param StrategyInterface $strategy The strategy to register.
-     * @return HydratorInterface
-     */
-    public function addStrategy($name, StrategyInterface $strategy)
-    {
-        $this->strategies[$name] = $strategy;
-        return $this;
-    }
-
-    /**
-     * Removes the strategy with the given name.
-     *
-     * @param string $name The name of the strategy to remove.
-     * @return HydratorInterface
-     */
-    public function removeStrategy($name)
-    {
-        unset($this->strategies[$name]);
-        return $this;
-    }
-
-    /**
-     * Converts a value for extraction. If no strategy exists the plain value is returned.
-     *
-     * @param  string $name  The name of the strategy to use.
-     * @param  mixed  $value  The value that should be converted.
-     * @param  mixed  $object The object is optionally provided as context.
-     * @return mixed
-     */
-    public function extractValue($name, $value, $object = null)
-    {
-        if ($this->hasStrategy($name)) {
-            $strategy = $this->getStrategy($name);
-            $value = $strategy->extract($value, $object);
-        }
-        return $value;
-    }
-
-    /**
-     * Converts a value for hydration. If no strategy exists the plain value is returned.
-     *
-     * @param string $name The name of the strategy to use.
-     * @param mixed $value The value that should be converted.
-     * @param array $data The whole data is optionally provided as context.
-     * @return mixed
-     */
-    public function hydrateValue($name, $value, $data = null)
-    {
-        if ($this->hasStrategy($name)) {
-            $strategy = $this->getStrategy($name);
-            $value = $strategy->hydrate($value, $data);
-        }
-        return $value;
-    }
-
-    /**
-     * Convert a name for extraction. If no naming strategy exists, the plain value is returned.
-     *
-     * @param string $name    The name to convert.
-     * @param null   $object  The object is optionally provided as context.
-     * @return mixed
-     */
-    public function extractName($name, $object = null)
-    {
-        if ($this->hasNamingStrategy()) {
-            $name = $this->getNamingStrategy()->extract($name, $object);
-        }
-        return $name;
-    }
-
-    /**
-     * Converts a value for hydration. If no naming strategy exists, the plain value is returned.
-     *
-     * @param string $name  The name to convert.
-     * @param array  $data  The whole data is optionally provided as context.
-     * @return mixed
-     */
-    public function hydrateName($name, $data = null)
-    {
-        if ($this->hasNamingStrategy()) {
-            $name = $this->getNamingStrategy()->hydrate($name, $data);
-        }
-        return $name;
-    }
-
-    /**
-     * Get the filter instance
-     *
-     * @return Filter\FilterComposite
-     */
-    public function getFilter()
-    {
-        return $this->filterComposite;
-    }
-
-    /**
-     * Add a new filter to take care of what needs to be hydrated.
-     * To exclude e.g. the method getServiceLocator:
-     *
-     * <code>
-     * $composite->addFilter("servicelocator",
-     *     function ($property) {
-     *         list($class, $method) = explode('::', $property);
-     *         if ($method === 'getServiceLocator') {
-     *             return false;
-     *         }
-     *         return true;
-     *     }, FilterComposite::CONDITION_AND
-     * );
-     * </code>
-     *
-     * @param string $name Index in the composite
-     * @param callable|Filter\FilterInterface $filter
-     * @param int $condition
-     * @return Filter\FilterComposite
-     */
-    public function addFilter($name, $filter, $condition = FilterComposite::CONDITION_OR)
-    {
-        return $this->filterComposite->addFilter($name, $filter, $condition);
-    }
-
-    /**
-     * Check whether a specific filter exists at key $name or not
-     *
-     * @param string $name Index in the composite
-     * @return bool
-     */
-    public function hasFilter($name)
-    {
-        return $this->filterComposite->hasFilter($name);
-    }
-
-    /**
-     * Remove a filter from the composition.
-     * To not extract "has" methods, you simply need to unregister it
-     *
-     * <code>
-     * $filterComposite->removeFilter('has');
-     * </code>
-     *
-     * @param $name
-     * @return Filter\FilterComposite
-     */
-    public function removeFilter($name)
-    {
-        return $this->filterComposite->removeFilter($name);
-    }
-
-    /**
-     * Adds the given naming strategy
-     *
-     * @param NamingStrategyInterface $strategy The naming to register.
-     * @return self
-     */
-    public function setNamingStrategy(NamingStrategyInterface $strategy)
-    {
-        $this->namingStrategy = $strategy;
-
-        return $this;
-    }
-
-    /**
-     * Gets the naming strategy.
-     *
-     * @return NamingStrategyInterface
-     */
-    public function getNamingStrategy()
-    {
-        return $this->namingStrategy;
-    }
-
-    /**
-     * Checks if a naming strategy exists.
-     *
-     * @return bool
-     */
-    public function hasNamingStrategy()
-    {
-        return isset($this->namingStrategy);
-    }
-
-    /**
-     * Removes the naming strategy
-     *
-     * @return self
-     */
-    public function removeNamingStrategy()
-    {
-        $this->namingStrategy = null;
-
-        return $this;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/AggregateHydrator.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/AggregateHydrator.php
deleted file mode 100644
index 38a868e..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/AggregateHydrator.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Aggregate;
-
-use Zend\EventManager\EventManager;
-use Zend\EventManager\EventManagerAwareInterface;
-use Zend\EventManager\EventManagerInterface;
-use Zend\Stdlib\Hydrator\HydratorInterface;
-
-/**
- * Aggregate hydrator that composes multiple hydrators via events
- */
-class AggregateHydrator implements HydratorInterface, EventManagerAwareInterface
-{
-    const DEFAULT_PRIORITY = 1;
-
-    /**
-     * @var \Zend\EventManager\EventManagerInterface|null
-     */
-    protected $eventManager;
-
-    /**
-     * Attaches the provided hydrator to the list of hydrators to be used while hydrating/extracting data
-     *
-     * @param \Zend\Stdlib\Hydrator\HydratorInterface $hydrator
-     * @param int                                     $priority
-     */
-    public function add(HydratorInterface $hydrator, $priority = self::DEFAULT_PRIORITY)
-    {
-        $this->getEventManager()->attachAggregate(new HydratorListener($hydrator), $priority);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function extract($object)
-    {
-        $event = new ExtractEvent($this, $object);
-
-        $this->getEventManager()->trigger($event);
-
-        return $event->getExtractedData();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hydrate(array $data, $object)
-    {
-        $event = new HydrateEvent($this, $object, $data);
-
-        $this->getEventManager()->trigger($event);
-
-        return $event->getHydratedObject();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setEventManager(EventManagerInterface $eventManager)
-    {
-        $eventManager->setIdentifiers(array(__CLASS__, get_class($this)));
-
-        $this->eventManager = $eventManager;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getEventManager()
-    {
-        if (null === $this->eventManager) {
-            $this->setEventManager(new EventManager());
-        }
-
-        return $this->eventManager;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/ExtractEvent.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/ExtractEvent.php
deleted file mode 100644
index b13bc5c..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/ExtractEvent.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Aggregate;
-
-use Zend\EventManager\Event;
-
-/**
- * Event triggered when the {@see \Zend\Stdlib\Hydrator\Aggregate\AggregateHydrator} extracts
- * data from an object
- */
-class ExtractEvent extends Event
-{
-    const EVENT_EXTRACT = 'extract';
-
-    /**
-     * {@inheritDoc}
-     */
-    protected $name = self::EVENT_EXTRACT;
-
-    /**
-     * @var object
-     */
-    protected $extractionObject;
-
-    /**
-     * @var array
-     */
-    protected $extractedData = array();
-
-    /**
-     * @param object $target
-     * @param object $extractionObject
-     */
-    public function __construct($target, $extractionObject)
-    {
-        $this->target           = $target;
-        $this->extractionObject = $extractionObject;
-    }
-
-    /**
-     * Retrieves the object from which data is extracted
-     *
-     * @return object
-     */
-    public function getExtractionObject()
-    {
-        return $this->extractionObject;
-    }
-
-    /**
-     * @param object $extractionObject
-     *
-     * @return void
-     */
-    public function setExtractionObject($extractionObject)
-    {
-        $this->extractionObject = $extractionObject;
-    }
-
-    /**
-     * Retrieves the data that has been extracted
-     *
-     * @return array
-     */
-    public function getExtractedData()
-    {
-        return $this->extractedData;
-    }
-
-    /**
-     * @param array $extractedData
-     *
-     * @return void
-     */
-    public function setExtractedData(array $extractedData)
-    {
-        $this->extractedData = $extractedData;
-    }
-
-    /**
-     * Merge provided data with the extracted data
-     *
-     * @param array $additionalData
-     *
-     * @return void
-     */
-    public function mergeExtractedData(array $additionalData)
-    {
-        $this->extractedData = array_merge($this->extractedData, $additionalData);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/HydrateEvent.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/HydrateEvent.php
deleted file mode 100644
index a7c91ee..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/HydrateEvent.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Aggregate;
-
-use Zend\EventManager\Event;
-
-/**
- * Event triggered when the {@see \Zend\Stdlib\Hydrator\Aggregate\AggregateHydrator} hydrates
- * data into an object
- */
-class HydrateEvent extends Event
-{
-    const EVENT_HYDRATE = 'hydrate';
-
-    /**
-     * {@inheritDoc}
-     */
-    protected $name = self::EVENT_HYDRATE;
-
-    /**
-     * @var object
-     */
-    protected $hydratedObject;
-
-    /**
-     * @var array
-     */
-    protected $hydrationData;
-
-    /**
-     * @param object $target
-     * @param object $hydratedObject
-     * @param array  $hydrationData
-     */
-    public function __construct($target, $hydratedObject, array $hydrationData)
-    {
-        $this->target         = $target;
-        $this->hydratedObject = $hydratedObject;
-        $this->hydrationData  = $hydrationData;
-    }
-
-    /**
-     * Retrieves the object that is being hydrated
-     *
-     * @return object
-     */
-    public function getHydratedObject()
-    {
-        return $this->hydratedObject;
-    }
-
-    /**
-     * @param object $hydratedObject
-     */
-    public function setHydratedObject($hydratedObject)
-    {
-        $this->hydratedObject = $hydratedObject;
-    }
-
-    /**
-     * Retrieves the data that is being used for hydration
-     *
-     * @return array
-     */
-    public function getHydrationData()
-    {
-        return $this->hydrationData;
-    }
-
-    /**
-     * @param array $hydrationData
-     */
-    public function setHydrationData(array $hydrationData)
-    {
-        $this->hydrationData = $hydrationData;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/HydratorListener.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/HydratorListener.php
deleted file mode 100644
index 1c25ff3..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Aggregate/HydratorListener.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Aggregate;
-
-use Zend\EventManager\AbstractListenerAggregate;
-use Zend\EventManager\EventManagerInterface;
-use Zend\Stdlib\Hydrator\HydratorInterface;
-
-/**
- * Aggregate listener wrapping around a hydrator. Listens
- * to {@see \Zend\Stdlib\Hydrator\Aggregate::EVENT_HYDRATE} and
- * {@see \Zend\Stdlib\Hydrator\Aggregate::EVENT_EXTRACT}
- */
-class HydratorListener extends AbstractListenerAggregate
-{
-    /**
-     * @var \Zend\Stdlib\Hydrator\HydratorInterface
-     */
-    protected $hydrator;
-
-    /**
-     * @param \Zend\Stdlib\Hydrator\HydratorInterface $hydrator
-     */
-    public function __construct(HydratorInterface $hydrator)
-    {
-        $this->hydrator = $hydrator;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function attach(EventManagerInterface $events, $priority = 1)
-    {
-        $this->listeners[] = $events->attach(HydrateEvent::EVENT_HYDRATE, array($this, 'onHydrate'), $priority);
-        $this->listeners[] = $events->attach(ExtractEvent::EVENT_EXTRACT, array($this, 'onExtract'), $priority);
-    }
-
-    /**
-     * Callback to be used when {@see \Zend\Stdlib\Hydrator\Aggregate\HydrateEvent::EVENT_HYDRATE} is triggered
-     *
-     * @param \Zend\Stdlib\Hydrator\Aggregate\HydrateEvent $event
-     *
-     * @return object
-     *
-     * @internal
-     */
-    public function onHydrate(HydrateEvent $event)
-    {
-        $object = $this->hydrator->hydrate($event->getHydrationData(), $event->getHydratedObject());
-
-        $event->setHydratedObject($object);
-
-        return $object;
-    }
-
-    /**
-     * Callback to be used when {@see \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent::EVENT_EXTRACT} is triggered
-     *
-     * @param \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent $event
-     *
-     * @return array
-     *
-     * @internal
-     */
-    public function onExtract(ExtractEvent $event)
-    {
-        $data = $this->hydrator->extract($event->getExtractionObject());
-
-        $event->mergeExtractedData($data);
-
-        return $data;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/ArraySerializable.php b/core/vendor/zendframework/zend-stdlib/Hydrator/ArraySerializable.php
deleted file mode 100644
index 4f4ab2a..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/ArraySerializable.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\Stdlib\Exception;
-
-class ArraySerializable extends AbstractHydrator
-{
-    /**
-     * Extract values from the provided object
-     *
-     * Extracts values via the object's getArrayCopy() method.
-     *
-     * @param  object $object
-     * @return array
-     * @throws Exception\BadMethodCallException for an $object not implementing getArrayCopy()
-     */
-    public function extract($object)
-    {
-        if (!is_callable(array($object, 'getArrayCopy'))) {
-            throw new Exception\BadMethodCallException(
-                sprintf('%s expects the provided object to implement getArrayCopy()', __METHOD__)
-            );
-        }
-
-        $data = $object->getArrayCopy();
-        $filter = $this->getFilter();
-
-        foreach ($data as $name => $value) {
-            if (!$filter->filter($name)) {
-                unset($data[$name]);
-                continue;
-            }
-            $extractedName = $this->extractName($name, $object);
-            // replace the original key with extracted, if differ
-            if ($extractedName !== $name) {
-                unset($data[$name]);
-                $name = $extractedName;
-            }
-            $data[$name] = $this->extractValue($name, $value, $object);
-        }
-
-        return $data;
-    }
-
-    /**
-     * Hydrate an object
-     *
-     * Hydrates an object by passing $data to either its exchangeArray() or
-     * populate() method.
-     *
-     * @param  array $data
-     * @param  object $object
-     * @return object
-     * @throws Exception\BadMethodCallException for an $object not implementing exchangeArray() or populate()
-     */
-    public function hydrate(array $data, $object)
-    {
-        $replacement = array();
-        foreach ($data as $key => $value) {
-            $name = $this->hydrateName($key, $data);
-            $replacement[$name] = $this->hydrateValue($name, $value, $data);
-        }
-
-        if (is_callable(array($object, 'exchangeArray'))) {
-            $object->exchangeArray($replacement);
-        } elseif (is_callable(array($object, 'populate'))) {
-            $object->populate($replacement);
-        } else {
-            throw new Exception\BadMethodCallException(
-                sprintf('%s expects the provided object to implement exchangeArray() or populate()', __METHOD__)
-            );
-        }
-        return $object;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/ClassMethods.php b/core/vendor/zendframework/zend-stdlib/Hydrator/ClassMethods.php
deleted file mode 100644
index 4edb1f4..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/ClassMethods.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Traversable;
-use Zend\Stdlib\Exception;
-use Zend\Stdlib\ArrayUtils;
-use Zend\Stdlib\Hydrator\Filter\FilterComposite;
-use Zend\Stdlib\Hydrator\Filter\FilterProviderInterface;
-use Zend\Stdlib\Hydrator\Filter\GetFilter;
-use Zend\Stdlib\Hydrator\Filter\HasFilter;
-use Zend\Stdlib\Hydrator\Filter\IsFilter;
-use Zend\Stdlib\Hydrator\Filter\MethodMatchFilter;
-use Zend\Stdlib\Hydrator\Filter\OptionalParametersFilter;
-use Zend\Stdlib\Hydrator\NamingStrategy\NamingStrategyInterface;
-use Zend\Stdlib\Hydrator\NamingStrategy\UnderscoreNamingStrategy;
-
-class ClassMethods extends AbstractHydrator implements HydratorOptionsInterface
-{
-    /**
-     * Holds the names of the methods used for hydration, indexed by class::property name,
-     * false if the hydration method is not callable/usable for hydration purposes
-     *
-     * @var string[]|bool[]
-     */
-    private $hydrationMethodsCache = array();
-
-    /**
-     * A map of extraction methods to property name to be used during extraction, indexed
-     * by class name and method name
-     *
-     * @var string[][]
-     */
-    private $extractionMethodsCache = array();
-
-    /**
-     * Flag defining whether array keys are underscore-separated (true) or camel case (false)
-     *
-     * @var bool
-     */
-    protected $underscoreSeparatedKeys = true;
-
-    /**
-     * @var \Zend\Stdlib\Hydrator\Filter\FilterInterface
-     */
-    private $callableMethodFilter;
-
-    /**
-     * Define if extract values will use camel case or name with underscore
-     * @param bool|array $underscoreSeparatedKeys
-     */
-    public function __construct($underscoreSeparatedKeys = true)
-    {
-        parent::__construct();
-        $this->setUnderscoreSeparatedKeys($underscoreSeparatedKeys);
-
-        $this->callableMethodFilter = new OptionalParametersFilter();
-
-        $this->filterComposite->addFilter('is', new IsFilter());
-        $this->filterComposite->addFilter('has', new HasFilter());
-        $this->filterComposite->addFilter('get', new GetFilter());
-        $this->filterComposite->addFilter('parameter', new OptionalParametersFilter(), FilterComposite::CONDITION_AND);
-    }
-
-    /**
-     * @param  array|Traversable                 $options
-     * @return ClassMethods
-     * @throws Exception\InvalidArgumentException
-     */
-    public function setOptions($options)
-    {
-        if ($options instanceof Traversable) {
-            $options = ArrayUtils::iteratorToArray($options);
-        } elseif (!is_array($options)) {
-            throw new Exception\InvalidArgumentException(
-                'The options parameter must be an array or a Traversable'
-            );
-        }
-        if (isset($options['underscoreSeparatedKeys'])) {
-            $this->setUnderscoreSeparatedKeys($options['underscoreSeparatedKeys']);
-        }
-
-        return $this;
-    }
-
-    /**
-     * @param  bool      $underscoreSeparatedKeys
-     * @return ClassMethods
-     */
-    public function setUnderscoreSeparatedKeys($underscoreSeparatedKeys)
-    {
-        $this->underscoreSeparatedKeys = (bool) $underscoreSeparatedKeys;
-
-        if ($this->underscoreSeparatedKeys) {
-            $this->setNamingStrategy(new UnderscoreNamingStrategy);
-        } elseif ($this->getNamingStrategy() instanceof UnderscoreNamingStrategy) {
-            $this->removeNamingStrategy();
-        }
-
-        return $this;
-    }
-
-    /**
-     * @return bool
-     */
-    public function getUnderscoreSeparatedKeys()
-    {
-        return $this->underscoreSeparatedKeys;
-    }
-
-    /**
-     * Extract values from an object with class methods
-     *
-     * Extracts the getter/setter of the given $object.
-     *
-     * @param  object                           $object
-     * @return array
-     * @throws Exception\BadMethodCallException for a non-object $object
-     */
-    public function extract($object)
-    {
-        if (!is_object($object)) {
-            throw new Exception\BadMethodCallException(sprintf(
-                '%s expects the provided $object to be a PHP object)',
-                __METHOD__
-            ));
-        }
-
-        $objectClass = get_class($object);
-
-        // reset the hydrator's hydrator's cache for this object, as the filter may be per-instance
-        if ($object instanceof FilterProviderInterface) {
-            $this->extractionMethodsCache[$objectClass] = null;
-        }
-
-        // pass 1 - finding out which properties can be extracted, with which methods (populate hydration cache)
-        if (! isset($this->extractionMethodsCache[$objectClass])) {
-            $this->extractionMethodsCache[$objectClass] = array();
-            $filter                                     = $this->filterComposite;
-            $methods                                    = get_class_methods($object);
-
-            if ($object instanceof FilterProviderInterface) {
-                $filter = new FilterComposite(
-                    array($object->getFilter()),
-                    array(new MethodMatchFilter('getFilter'))
-                );
-            }
-
-            foreach ($methods as $method) {
-                $methodFqn = $objectClass . '::' . $method;
-
-                if (! ($filter->filter($methodFqn) && $this->callableMethodFilter->filter($methodFqn))) {
-                    continue;
-                }
-
-                $attribute = $method;
-
-                if (strpos($method, 'get') === 0) {
-                    $attribute = substr($method, 3);
-                    if (!property_exists($object, $attribute)) {
-                        $attribute = lcfirst($attribute);
-                    }
-                }
-
-                $this->extractionMethodsCache[$objectClass][$method] = $attribute;
-            }
-        }
-
-        $values = array();
-
-        // pass 2 - actually extract data
-        foreach ($this->extractionMethodsCache[$objectClass] as $methodName => $attributeName) {
-            $realAttributeName          = $this->extractName($attributeName, $object);
-            $values[$realAttributeName] = $this->extractValue($realAttributeName, $object->$methodName(), $object);
-        }
-
-        return $values;
-    }
-
-    /**
-     * Hydrate an object by populating getter/setter methods
-     *
-     * Hydrates an object by getter/setter methods of the object.
-     *
-     * @param  array                            $data
-     * @param  object                           $object
-     * @return object
-     * @throws Exception\BadMethodCallException for a non-object $object
-     */
-    public function hydrate(array $data, $object)
-    {
-        if (!is_object($object)) {
-            throw new Exception\BadMethodCallException(sprintf(
-                '%s expects the provided $object to be a PHP object)',
-                __METHOD__
-            ));
-        }
-
-        $objectClass = get_class($object);
-
-        foreach ($data as $property => $value) {
-            $propertyFqn = $objectClass . '::$' . $property;
-
-            if (! isset($this->hydrationMethodsCache[$propertyFqn])) {
-                $setterName = 'set' . ucfirst($this->hydrateName($property, $data));
-
-                $this->hydrationMethodsCache[$propertyFqn] = is_callable(array($object, $setterName))
-                    ? $setterName
-                    : false;
-            }
-
-            if ($this->hydrationMethodsCache[$propertyFqn]) {
-                $object->{$this->hydrationMethodsCache[$propertyFqn]}($this->hydrateValue($property, $value, $data));
-            }
-        }
-
-        return $object;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function addFilter($name, $filter, $condition = FilterComposite::CONDITION_OR)
-    {
-        $this->resetCaches();
-
-        return parent::addFilter($name, $filter, $condition);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function removeFilter($name)
-    {
-        $this->resetCaches();
-
-        return parent::removeFilter($name);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setNamingStrategy(NamingStrategyInterface $strategy)
-    {
-        $this->resetCaches();
-
-        return parent::setNamingStrategy($strategy);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function removeNamingStrategy()
-    {
-        $this->resetCaches();
-
-        return parent::removeNamingStrategy();
-    }
-
-    /**
-     * Reset all local hydration/extraction caches
-     */
-    private function resetCaches()
-    {
-        $this->hydrationMethodsCache = $this->extractionMethodsCache = array();
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/DelegatingHydrator.php b/core/vendor/zendframework/zend-stdlib/Hydrator/DelegatingHydrator.php
deleted file mode 100644
index db234d3..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/DelegatingHydrator.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\ServiceManager\ServiceLocatorInterface;
-
-class DelegatingHydrator implements HydratorInterface
-{
-    /**
-     * @var ServiceLocatorInterface
-     */
-    protected $hydrators;
-
-    /**
-     * Constructor
-     *
-     * @param ServiceLocatorInterface $hydrators
-     */
-    public function __construct(ServiceLocatorInterface $hydrators)
-    {
-        $this->hydrators = $hydrators;
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function hydrate(array $data, $object)
-    {
-        return $this->getHydrator($object)->hydrate($data, $object);
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function extract($object)
-    {
-        return $this->getHydrator($object)->extract($object);
-    }
-
-    /**
-     * Gets hydrator of an object
-     *
-     * @param  object $object
-     * @return HydratorInterface
-     */
-    protected function getHydrator($object)
-    {
-        return $this->hydrators->get(get_class($object));
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/DelegatingHydratorFactory.php b/core/vendor/zendframework/zend-stdlib/Hydrator/DelegatingHydratorFactory.php
deleted file mode 100644
index c3a0da2..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/DelegatingHydratorFactory.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\ServiceManager\FactoryInterface;
-use Zend\ServiceManager\ServiceLocatorInterface;
-
-class DelegatingHydratorFactory implements FactoryInterface
-{
-    /**
-     * Creates DelegatingHydrator
-     *
-     * @param  ServiceLocatorInterface $serviceLocator
-     * @return DelegatingHydrator
-     */
-    public function createService(ServiceLocatorInterface $serviceLocator)
-    {
-        // Assume that this factory is registered with the HydratorManager,
-        // and just pass it directly on.
-        return new DelegatingHydrator($serviceLocator);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterComposite.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterComposite.php
deleted file mode 100644
index 000fc70..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterComposite.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-use ArrayObject;
-use Zend\Stdlib\Exception\InvalidArgumentException;
-
-class FilterComposite implements FilterInterface
-{
-    /**
-     * @var ArrayObject
-     */
-    protected $orFilter;
-
-    /**
-     * @var ArrayObject
-     */
-    protected $andFilter;
-
-    /**
-     * Constant to add with "or" conditition
-     */
-    const CONDITION_OR = 1;
-
-    /**
-     * Constant to add with "and" conditition
-     */
-    const CONDITION_AND = 2;
-
-    /**
-     * Define default Filter
-     *
-     * @throws InvalidArgumentException
-     */
-    public function __construct($orFilter = array(), $andFilter = array())
-    {
-        array_walk(
-            $orFilter,
-            function ($value, $key) {
-                if (!is_callable($value) && !$value instanceof FilterInterface) {
-                    throw new InvalidArgumentException(
-                        'The value of ' . $key . ' should be either a callable or ' .
-                        'an instance of Zend\Stdlib\Hydrator\Filter\FilterInterface'
-                    );
-                }
-            }
-        );
-
-        array_walk(
-            $andFilter,
-            function ($value, $key) {
-                if (!is_callable($value) && !$value instanceof FilterInterface) {
-                    throw new InvalidArgumentException(
-                        'The value of ' . $key . '  should be either a callable or ' .
-                        'an instance of Zend\Stdlib\Hydrator\Filter\FilterInterface'
-                    );
-                }
-            }
-        );
-
-        $this->orFilter = new ArrayObject($orFilter);
-        $this->andFilter = new ArrayObject($andFilter);
-    }
-
-    /**
-     * Add a filter to the composite. Has to be indexed with $name in
-     * order to identify a specific filter.
-     *
-     * This example will exclude all methods from the hydration, that starts with 'getService'
-     * <code>
-     * $composite->addFilter('exclude',
-     *     function ($method) {
-     *         if (preg_match('/^getService/', $method) {
-     *             return false;
-     *         }
-     *         return true;
-     *     }, FilterComposite::CONDITION_AND
-     * );
-     * </code>
-     *
-     * @param  string                   $name
-     * @param  callable|FilterInterface $filter
-     * @param  int                      $condition Can be either FilterComposite::CONDITION_OR or FilterComposite::CONDITION_AND
-     * @throws InvalidArgumentException
-     * @return FilterComposite
-     */
-    public function addFilter($name, $filter, $condition = self::CONDITION_OR)
-    {
-        if (!is_callable($filter) && !($filter instanceof FilterInterface)) {
-            throw new InvalidArgumentException(
-                'The value of ' . $name . ' should be either a callable or ' .
-                'an instance of Zend\Stdlib\Hydrator\Filter\FilterInterface'
-            );
-        }
-
-        if ($condition === self::CONDITION_OR) {
-            $this->orFilter[$name] = $filter;
-        } elseif ($condition === self::CONDITION_AND) {
-            $this->andFilter[$name] = $filter;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Remove a filter from the composition
-     *
-     * @param $name string Identifier for the filter
-     * @return FilterComposite
-     */
-    public function removeFilter($name)
-    {
-        if (isset($this->orFilter[$name])) {
-            unset($this->orFilter[$name]);
-        }
-
-        if (isset($this->andFilter[$name])) {
-            unset($this->andFilter[$name]);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Check if $name has a filter registered
-     *
-     * @param $name string Identifier for the filter
-     * @return bool
-     */
-    public function hasFilter($name)
-    {
-        return isset($this->orFilter[$name]) || isset($this->andFilter[$name]);
-    }
-
-    /**
-     * Filter the composite based on the AND and OR condition
-     * Will return true if one from the "or conditions" and all from
-     * the "and condition" returns true. Otherwise false
-     *
-     * @param $property string Parameter will be e.g. Parent\Namespace\Class::method
-     * @return bool
-     */
-    public function filter($property)
-    {
-        $andCount = count($this->andFilter);
-        $orCount = count($this->orFilter);
-        // return true if no filters are registered
-        if ($orCount === 0 && $andCount === 0) {
-            return true;
-        } elseif ($orCount === 0 && $andCount !== 0) {
-            $returnValue = true;
-        } else {
-            $returnValue = false;
-        }
-
-        // Check if 1 from the or filters return true
-        foreach ($this->orFilter as $filter) {
-            if (is_callable($filter)) {
-                if ($filter($property) === true) {
-                    $returnValue = true;
-                    break;
-                }
-                continue;
-            } else {
-                if ($filter->filter($property) === true) {
-                    $returnValue = true;
-                    break;
-                }
-            }
-        }
-
-        // Check if all of the and condition return true
-        foreach ($this->andFilter as $filter) {
-            if (is_callable($filter)) {
-                if ($filter($property) === false) {
-                    return false;
-                }
-                continue;
-            } else {
-                if ($filter->filter($property) === false) {
-                    return false;
-                }
-            }
-        }
-
-        return $returnValue;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterInterface.php
deleted file mode 100644
index 16df098..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-interface FilterInterface
-{
-    /**
-     * Should return true, if the given filter
-     * does not match
-     *
-     * @param string $property The name of the property
-     * @return bool
-     */
-    public function filter($property);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterProviderInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterProviderInterface.php
deleted file mode 100644
index c2e9788..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/FilterProviderInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-interface FilterProviderInterface
-{
-    /**
-     * Provides a filter for hydration
-     *
-     * @return FilterInterface
-     */
-    public function getFilter();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/GetFilter.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/GetFilter.php
deleted file mode 100644
index b4d898d..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/GetFilter.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-class GetFilter implements FilterInterface
-{
-    public function filter($property)
-    {
-        $pos = strpos($property, '::');
-        if ($pos !== false) {
-            $pos += 2;
-        } else {
-            $pos = 0;
-        }
-
-        if (substr($property, $pos, 3) === 'get') {
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/HasFilter.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/HasFilter.php
deleted file mode 100644
index 0cf57f9..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/HasFilter.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-class HasFilter implements FilterInterface
-{
-    public function filter($property)
-    {
-        $pos = strpos($property, '::');
-        if ($pos !== false) {
-            $pos += 2;
-        } else {
-            $pos = 0;
-        }
-
-        if (substr($property, $pos, 3) === 'has') {
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/IsFilter.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/IsFilter.php
deleted file mode 100644
index 3b6e376..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/IsFilter.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-class IsFilter implements FilterInterface
-{
-    public function filter($property)
-    {
-        $pos = strpos($property, '::');
-        if ($pos !== false) {
-            $pos += 2;
-        } else {
-            $pos = 0;
-        }
-
-        if (substr($property, $pos, 2) === 'is') {
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/MethodMatchFilter.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/MethodMatchFilter.php
deleted file mode 100644
index 2601a6f..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/MethodMatchFilter.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-class MethodMatchFilter implements FilterInterface
-{
-    /**
-     * The method to exclude
-     * @var string
-     */
-    protected $method = null;
-
-    /**
-     * Either an exclude or an include
-     * @var bool
-     */
-    protected $exclude = null;
-
-    /**
-     * @param string $method The method to exclude or include
-     * @param bool $exclude If the method should be excluded
-     */
-    public function __construct($method, $exclude = true)
-    {
-        $this->method = $method;
-        $this->exclude = $exclude;
-    }
-
-    public function filter($property)
-    {
-        $pos = strpos($property, '::');
-        if ($pos !== false) {
-            $pos += 2;
-        } else {
-            $pos = 0;
-        }
-        if (substr($property, $pos) === $this->method) {
-            return !$this->exclude;
-        }
-        return $this->exclude;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/NumberOfParameterFilter.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/NumberOfParameterFilter.php
deleted file mode 100644
index 1254b63..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/NumberOfParameterFilter.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Filter;
-
-use ReflectionException;
-use ReflectionMethod;
-use Zend\Stdlib\Exception\InvalidArgumentException;
-
-class NumberOfParameterFilter implements FilterInterface
-{
-    /**
-     * The number of parameters beeing accepted
-     * @var int
-     */
-    protected $numberOfParameters = null;
-
-    /**
-     * @param int $numberOfParameters Number of accepted parameters
-     */
-    public function __construct($numberOfParameters = 0)
-    {
-        $this->numberOfParameters = (int) $numberOfParameters;
-    }
-
-    /**
-     * @param string $property the name of the property
-     * @return bool
-     * @throws InvalidArgumentException
-     */
-    public function filter($property)
-    {
-        try {
-            $reflectionMethod = new ReflectionMethod($property);
-        } catch (ReflectionException $exception) {
-            throw new InvalidArgumentException(
-                "Method $property doesn't exist"
-            );
-        }
-
-        return $reflectionMethod->getNumberOfParameters() === $this->numberOfParameters;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/OptionalParametersFilter.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/OptionalParametersFilter.php
deleted file mode 100644
index ccd67ca..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Filter/OptionalParametersFilter.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link           http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license        http://framework.zend.com/license/new-bsd New BSD License
- */
-namespace Zend\Stdlib\Hydrator\Filter;
-
-use InvalidArgumentException;
-use ReflectionException;
-use ReflectionMethod;
-use ReflectionParameter;
-
-/**
- * Filter that includes methods which have no parameters or only optional parameters
- */
-class OptionalParametersFilter implements FilterInterface
-{
-    /**
-     * Map of methods already analyzed
-     * by {@see \Zend\Stdlib\Hydrator\Filter\OptionalParametersFilter::filter()},
-     * cached for performance reasons
-     *
-     * @var bool[]
-     */
-    protected static $propertiesCache = array();
-
-    /**
-     * {@inheritDoc}
-     */
-    public function filter($property)
-    {
-        if (isset(static::$propertiesCache[$property])) {
-            return static::$propertiesCache[$property];
-        }
-
-        try {
-            $reflectionMethod = new ReflectionMethod($property);
-        } catch (ReflectionException $exception) {
-            throw new InvalidArgumentException(sprintf('Method %s doesn\'t exist', $property));
-        }
-
-        $mandatoryParameters = array_filter(
-            $reflectionMethod->getParameters(),
-            function (ReflectionParameter $parameter) {
-                return ! $parameter->isOptional();
-            }
-        );
-
-        return static::$propertiesCache[$property] = empty($mandatoryParameters);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/FilterEnabledInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/FilterEnabledInterface.php
deleted file mode 100644
index 380aade..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/FilterEnabledInterface.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\Stdlib\Hydrator\Filter\FilterInterface;
-use Zend\Stdlib\Hydrator\Filter\FilterComposite;
-use Zend\Stdlib\Hydrator\Filter\FilterProviderInterface;
-
-interface FilterEnabledInterface extends FilterProviderInterface
-{
-    /**
-     * Add a new filter to take care of what needs to be hydrated.
-     * To exclude e.g. the method getServiceLocator:
-     *
-     * <code>
-     * $composite->addFilter(
-     *     "servicelocator",
-     *     function ($property) {
-     *         list($class, $method) = explode('::', $property);
-     *         if ($method === 'getServiceLocator') {
-     *             return false;
-     *         }
-     *         return true;
-     *     },
-     *     FilterComposite::CONDITION_AND
-     * );
-     * </code>
-     *
-     * @param string $name Index in the composite
-     * @param callable|FilterInterface $filter
-     * @param int $condition
-     * @return FilterComposite
-     */
-    public function addFilter($name, $filter, $condition = FilterComposite::CONDITION_OR);
-
-    /**
-     * Check whether a specific filter exists at key $name or not
-     *
-     * @param string $name Index in the composite
-     * @return bool
-     */
-    public function hasFilter($name);
-
-    /**
-     * Remove a filter from the composition.
-     * To not extract "has" methods, you simply need to unregister it
-     *
-     * <code>
-     * $filterComposite->removeFilter('has');
-     * </code>
-     *
-     * @param $name
-     * @return FilterComposite
-     */
-    public function removeFilter($name);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/HydrationInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/HydrationInterface.php
deleted file mode 100644
index e7deff4..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/HydrationInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-interface HydrationInterface
-{
-    /**
-     * Hydrate $object with the provided $data.
-     *
-     * @param  array $data
-     * @param  object $object
-     * @return object
-     */
-    public function hydrate(array $data, $object);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorAwareInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorAwareInterface.php
deleted file mode 100644
index d64782e..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorAwareInterface.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-interface HydratorAwareInterface
-{
-    /**
-     * Set hydrator
-     *
-     * @param  HydratorInterface $hydrator
-     * @return HydratorAwareInterface
-     */
-    public function setHydrator(HydratorInterface $hydrator);
-
-    /**
-     * Retrieve hydrator
-     *
-     * @return HydratorInterface
-     */
-    public function getHydrator();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorAwareTrait.php b/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorAwareTrait.php
deleted file mode 100644
index 9c772c2..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorAwareTrait.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-trait HydratorAwareTrait
-{
-    /**
-     * Hydrator instance
-     *
-     * @var HydratorInterface
-     * @access protected
-     */
-    protected $hydrator = null;
-
-    /**
-     * Set hydrator
-     *
-     * @param  HydratorInterface $hydrator
-     * @return self
-     * @access public
-     */
-    public function setHydrator(HydratorInterface $hydrator)
-    {
-        $this->hydrator = $hydrator;
-
-        return $this;
-    }
-
-    /**
-     * Retrieve hydrator
-     *
-     * @param void
-     * @return null|HydratorInterface
-     * @access public
-     */
-    public function getHydrator()
-    {
-        return $this->hydrator;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorInterface.php
deleted file mode 100644
index bc9983d..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorInterface.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\Stdlib\Extractor\ExtractionInterface;
-
-interface HydratorInterface extends HydrationInterface, ExtractionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorOptionsInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorOptionsInterface.php
deleted file mode 100644
index 44610f7..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorOptionsInterface.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-interface HydratorOptionsInterface
-{
-    /**
-     * @param  array|\Traversable $options
-     * @return HydratorOptionsInterface
-     */
-    public function setOptions($options);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorPluginManager.php b/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorPluginManager.php
deleted file mode 100644
index 1b238e7..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/HydratorPluginManager.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\ServiceManager\AbstractPluginManager;
-use Zend\Stdlib\Exception;
-
-/**
- * Plugin manager implementation for hydrators.
- *
- * Enforces that adapters retrieved are instances of HydratorInterface
- */
-class HydratorPluginManager extends AbstractPluginManager
-{
-    /**
-     * Whether or not to share by default
-     *
-     * @var bool
-     */
-    protected $shareByDefault = false;
-
-    /**
-     * Default aliases
-     *
-     * @var array
-     */
-    protected $aliases = array(
-        'delegatinghydrator' => 'Zend\Stdlib\Hydrator\DelegatingHydrator',
-    );
-
-    /**
-     * Default set of adapters
-     *
-     * @var array
-     */
-    protected $invokableClasses = array(
-        'arrayserializable' => 'Zend\Stdlib\Hydrator\ArraySerializable',
-        'classmethods'      => 'Zend\Stdlib\Hydrator\ClassMethods',
-        'objectproperty'    => 'Zend\Stdlib\Hydrator\ObjectProperty',
-        'reflection'        => 'Zend\Stdlib\Hydrator\Reflection'
-    );
-
-    /**
-     * Default factory-based adapters
-     *
-     * @var array
-     */
-    protected $factories = array(
-        'Zend\Stdlib\Hydrator\DelegatingHydrator' => 'Zend\Stdlib\Hydrator\DelegatingHydratorFactory',
-    );
-
-    /**
-     * {@inheritDoc}
-     */
-    public function validatePlugin($plugin)
-    {
-        if ($plugin instanceof HydratorInterface) {
-            // we're okay
-            return;
-        }
-
-        throw new Exception\RuntimeException(sprintf(
-            'Plugin of type %s is invalid; must implement Zend\Stdlib\Hydrator\HydratorInterface',
-            (is_object($plugin) ? get_class($plugin) : gettype($plugin))
-        ));
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/ArrayMapNamingStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/ArrayMapNamingStrategy.php
deleted file mode 100644
index 962303a..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/ArrayMapNamingStrategy.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\NamingStrategy;
-
-final class ArrayMapNamingStrategy implements NamingStrategyInterface
-{
-    /**
-     * @var string[]
-     */
-    private $extractionMap = array();
-
-    /**
-     * @var string[]
-     */
-    private $hydrationMap = array();
-
-    /**
-     * Constructor
-     *
-     * @param array $extractionMap A map of string keys and values for symmetric translation of hydrated
-     *                             and extracted field names
-     */
-    public function __construct(array $extractionMap)
-    {
-        $this->extractionMap = $extractionMap;
-        $this->hydrationMap  = array_flip($extractionMap);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hydrate($name)
-    {
-        return isset($this->hydrationMap[$name]) ? $this->hydrationMap[$name] : $name;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function extract($name)
-    {
-        return isset($this->extractionMap[$name]) ? $this->extractionMap[$name] : $name;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/CompositeNamingStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/CompositeNamingStrategy.php
deleted file mode 100644
index 0887e92..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/CompositeNamingStrategy.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\NamingStrategy;
-
-final class CompositeNamingStrategy implements NamingStrategyInterface
-{
-    /**
-     * @var array
-     */
-    private $namingStrategies = array();
-
-    /**
-     * @var NamingStrategyInterface
-     */
-    private $defaultNamingStrategy;
-
-    /**
-     * @param NamingStrategyInterface[]    $strategies            indexed by the name they translate
-     * @param NamingStrategyInterface|null $defaultNamingStrategy
-     */
-    public function __construct(array $strategies, NamingStrategyInterface $defaultNamingStrategy = null)
-    {
-        $this->namingStrategies = array_map(
-            function (NamingStrategyInterface $strategy) {
-                // this callback is here only to ensure type-safety
-                return $strategy;
-            },
-            $strategies
-        );
-
-        $this->defaultNamingStrategy = $defaultNamingStrategy ?: new IdentityNamingStrategy();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function extract($name)
-    {
-        $strategy = isset($this->namingStrategies[$name])
-            ? $this->namingStrategies[$name]
-            : $this->defaultNamingStrategy;
-
-        return $strategy->extract($name);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hydrate($name)
-    {
-        $strategy = isset($this->namingStrategies[$name])
-            ? $this->namingStrategies[$name]
-            : $this->defaultNamingStrategy;
-
-        return $strategy->hydrate($name);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/IdentityNamingStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/IdentityNamingStrategy.php
deleted file mode 100644
index ee4b328..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/IdentityNamingStrategy.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\NamingStrategy;
-
-final class IdentityNamingStrategy implements NamingStrategyInterface
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function hydrate($name)
-    {
-        return $name;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function extract($name)
-    {
-        return $name;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/MapNamingStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/MapNamingStrategy.php
deleted file mode 100644
index 27fbf32..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/MapNamingStrategy.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\NamingStrategy;
-
-use Zend\Stdlib\Exception\InvalidArgumentException;
-
-class MapNamingStrategy implements NamingStrategyInterface
-{
-    /**
-     * Map for hydrate name conversion.
-     *
-     * @var array
-     */
-    protected $mapping = array();
-
-    /**
-     * Reversed map for extract name conversion.
-     *
-     * @var array
-     */
-    protected $reverse = array();
-
-    /**
-     * Initialize.
-     *
-     * @param array $mapping Map for name conversion on hydration
-     * @param array $reverse Reverse map for name conversion on extraction
-     */
-    public function __construct(array $mapping, array $reverse = null)
-    {
-        $this->mapping = $mapping;
-        $this->reverse = $reverse ?: $this->flipMapping($mapping);
-    }
-
-    /**
-     * Safelly flip mapping array.
-     *
-     * @param  array                    $array Array to flip
-     * @return array                    Flipped array
-     * @throws InvalidArgumentException
-     */
-    protected function flipMapping(array $array)
-    {
-        array_walk($array, function ($value) {
-            if (!is_string($value) && !is_int($value)) {
-                throw new InvalidArgumentException('Mapping array can\'t be flipped because of invalid value');
-            }
-        });
-
-        return array_flip($array);
-    }
-
-    /**
-     * Converts the given name so that it can be extracted by the hydrator.
-     *
-     * @param  string $name The original name
-     * @return mixed  The hydrated name
-     */
-    public function hydrate($name)
-    {
-        if (array_key_exists($name, $this->mapping)) {
-            return $this->mapping[$name];
-        }
-
-        return $name;
-    }
-
-    /**
-     * Converts the given name so that it can be hydrated by the hydrator.
-     *
-     * @param  string $name The original name
-     * @return mixed  The extracted name
-     */
-    public function extract($name)
-    {
-        if (array_key_exists($name, $this->reverse)) {
-            return $this->reverse[$name];
-        }
-
-        return $name;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/NamingStrategyInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/NamingStrategyInterface.php
deleted file mode 100644
index ff99385..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/NamingStrategyInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\NamingStrategy;
-
-/**
- * Allow property extraction / hydration for hydrator
- *
- * Interface PropertyStrategyInterface
- * @package Zend\Stdlib\Hydrator\NamingStrategy
- */
-interface NamingStrategyInterface
-{
-    /**
-     * Converts the given name so that it can be extracted by the hydrator.
-     *
-     * @param string $name   The original name
-     * @param object $object (optional) The original object for context.
-     * @return mixed         The hydrated name
-     */
-    public function hydrate($name);
-
-    /**
-     * Converts the given name so that it can be hydrated by the hydrator.
-     *
-     * @param string $name The original name
-     * @param array  $data (optional) The original data for context.
-     * @return mixed The extracted name
-     */
-    public function extract($name);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/UnderscoreNamingStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/UnderscoreNamingStrategy.php
deleted file mode 100644
index 023b4ee..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategy/UnderscoreNamingStrategy.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\NamingStrategy;
-
-use Zend\Filter\FilterChain;
-
-class UnderscoreNamingStrategy implements NamingStrategyInterface
-{
-    /**
-     * @var FilterChain|null
-     */
-    protected static $camelCaseToUnderscoreFilter;
-
-    /**
-     * @var FilterChain|null
-     */
-    protected static $underscoreToStudlyCaseFilter;
-
-    /**
-     * Remove underscores and capitalize letters
-     *
-     * @param  string $name
-     * @return string
-     */
-    public function hydrate($name)
-    {
-        return $this->getUnderscoreToStudlyCaseFilter()->filter($name);
-    }
-
-    /**
-     * Remove capitalized letters and prepend underscores.
-     *
-     * @param  string $name
-     * @return string
-     */
-    public function extract($name)
-    {
-        return $this->getCamelCaseToUnderscoreFilter()->filter($name);
-    }
-
-    /**
-     * @return FilterChain
-     */
-    protected function getUnderscoreToStudlyCaseFilter()
-    {
-        if (static::$underscoreToStudlyCaseFilter instanceof FilterChain) {
-            return static::$underscoreToStudlyCaseFilter;
-        }
-
-        $filter = new FilterChain();
-
-        $filter->attachByName('WordUnderscoreToStudlyCase');
-
-        return static::$underscoreToStudlyCaseFilter = $filter;
-    }
-
-    /**
-     * @return FilterChain
-     */
-    protected function getCamelCaseToUnderscoreFilter()
-    {
-        if (static::$camelCaseToUnderscoreFilter instanceof FilterChain) {
-            return static::$camelCaseToUnderscoreFilter;
-        }
-
-        $filter = new FilterChain();
-
-        $filter->attachByName('WordCamelCaseToUnderscore');
-        $filter->attachByName('StringToLower');
-
-        return static::$camelCaseToUnderscoreFilter = $filter;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategyEnabledInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategyEnabledInterface.php
deleted file mode 100644
index f9c6288..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/NamingStrategyEnabledInterface.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\Stdlib\Hydrator\NamingStrategy\NamingStrategyInterface;
-
-interface NamingStrategyEnabledInterface
-{
-    /**
-     * Adds the given naming strategy
-     *
-     * @param NamingStrategyInterface $strategy The naming to register.
-     * @return NamingStrategyEnabledInterface
-     */
-    public function setNamingStrategy(NamingStrategyInterface $strategy);
-
-    /**
-     * Gets the naming strategy.
-     *
-     * @return NamingStrategyInterface
-     */
-    public function getNamingStrategy();
-
-    /**
-     * Checks if a naming strategy exists.
-     *
-     * @return bool
-     */
-    public function hasNamingStrategy();
-
-    /**
-     * Removes the naming with the given name.
-     *
-     * @return NamingStrategyEnabledInterface
-     */
-    public function removeNamingStrategy();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/ObjectProperty.php b/core/vendor/zendframework/zend-stdlib/Hydrator/ObjectProperty.php
deleted file mode 100644
index c9f5260..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/ObjectProperty.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\Stdlib\Exception;
-use ReflectionClass;
-use ReflectionProperty;
-
-class ObjectProperty extends AbstractHydrator
-{
-    /**
-     * @var array[] indexed by class name and then property name
-     */
-    private static $skippedPropertiesCache = array();
-
-    /**
-     * {@inheritDoc}
-     *
-     * Extracts the accessible non-static properties of the given $object.
-     *
-     * @throws Exception\BadMethodCallException for a non-object $object
-     */
-    public function extract($object)
-    {
-        if (!is_object($object)) {
-            throw new Exception\BadMethodCallException(
-                sprintf('%s expects the provided $object to be a PHP object)', __METHOD__)
-            );
-        }
-
-        $data   = get_object_vars($object);
-        $filter = $this->getFilter();
-
-        foreach ($data as $name => $value) {
-            // Filter keys, removing any we don't want
-            if (! $filter->filter($name)) {
-                unset($data[$name]);
-                continue;
-            }
-
-            // Replace name if extracted differ
-            $extracted = $this->extractName($name, $object);
-
-            if ($extracted !== $name) {
-                unset($data[$name]);
-                $name = $extracted;
-            }
-
-            $data[$name] = $this->extractValue($name, $value, $object);
-        }
-
-        return $data;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Hydrate an object by populating public properties
-     *
-     * Hydrates an object by setting public properties of the object.
-     *
-     * @throws Exception\BadMethodCallException for a non-object $object
-     */
-    public function hydrate(array $data, $object)
-    {
-        if (!is_object($object)) {
-            throw new Exception\BadMethodCallException(
-                sprintf('%s expects the provided $object to be a PHP object)', __METHOD__)
-            );
-        }
-
-        $properties = & self::$skippedPropertiesCache[get_class($object)];
-
-        if (! isset($properties)) {
-            $reflection = new ReflectionClass($object);
-            $properties = array_fill_keys(
-                array_map(
-                    function (ReflectionProperty $property) {
-                        return $property->getName();
-                    },
-                    $reflection->getProperties(
-                        ReflectionProperty::IS_PRIVATE
-                        + ReflectionProperty::IS_PROTECTED
-                        + ReflectionProperty::IS_STATIC
-                    )
-                ),
-                true
-            );
-        }
-
-        foreach ($data as $name => $value) {
-            $property = $this->hydrateName($name, $data);
-
-            if (isset($properties[$property])) {
-                continue;
-            }
-
-            $object->$property = $this->hydrateValue($property, $value, $data);
-        }
-
-        return $object;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Reflection.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Reflection.php
deleted file mode 100644
index ea8e2d2..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Reflection.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use ReflectionClass;
-use Zend\Stdlib\Exception;
-
-class Reflection extends AbstractHydrator
-{
-    /**
-     * Simple in-memory array cache of ReflectionProperties used.
-     * @var \ReflectionProperty[]
-     */
-    protected static $reflProperties = array();
-
-    /**
-     * Extract values from an object
-     *
-     * @param  object $object
-     * @return array
-     */
-    public function extract($object)
-    {
-        $result = array();
-        foreach (self::getReflProperties($object) as $property) {
-            $propertyName = $this->extractName($property->getName(), $object);
-            if (!$this->filterComposite->filter($propertyName)) {
-                continue;
-            }
-
-            $value = $property->getValue($object);
-            $result[$propertyName] = $this->extractValue($propertyName, $value, $object);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Hydrate $object with the provided $data.
-     *
-     * @param  array $data
-     * @param  object $object
-     * @return object
-     */
-    public function hydrate(array $data, $object)
-    {
-        $reflProperties = self::getReflProperties($object);
-        foreach ($data as $key => $value) {
-            $name = $this->hydrateName($key, $data);
-            if (isset($reflProperties[$name])) {
-                $reflProperties[$name]->setValue($object, $this->hydrateValue($name, $value, $data));
-            }
-        }
-        return $object;
-    }
-
-    /**
-     * Get a reflection properties from in-memory cache and lazy-load if
-     * class has not been loaded.
-     *
-     * @param  string|object $input
-     * @throws Exception\InvalidArgumentException
-     * @return \ReflectionProperty[]
-     */
-    protected static function getReflProperties($input)
-    {
-        if (is_object($input)) {
-            $input = get_class($input);
-        } elseif (!is_string($input)) {
-            throw new Exception\InvalidArgumentException('Input must be a string or an object.');
-        }
-
-        if (isset(static::$reflProperties[$input])) {
-            return static::$reflProperties[$input];
-        }
-
-        static::$reflProperties[$input] = array();
-        $reflClass                      = new ReflectionClass($input);
-        $reflProperties                 = $reflClass->getProperties();
-
-        foreach ($reflProperties as $property) {
-            $property->setAccessible(true);
-            static::$reflProperties[$input][$property->getName()] = $property;
-        }
-
-        return static::$reflProperties[$input];
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/BooleanStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/BooleanStrategy.php
deleted file mode 100644
index 3c29231..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/BooleanStrategy.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-use Zend\Stdlib\Exception\InvalidArgumentException;
-
-/**
- * This Strategy extracts and hydrates int and string values to Boolean values
- *
- * @package Zend\Stdlib\Hydrator\Strategy
- */
-final class BooleanStrategy implements StrategyInterface
-{
-    /**
-     * @var int|string
-     */
-    private $trueValue;
-
-    /**
-     * @var int|string
-     */
-    private $falseValue;
-
-    /**
-     * @param int|string $trueValue
-     * @param int|string $falseValue
-     * @throws InvalidArgumentException
-     */
-    public function __construct($trueValue, $falseValue)
-    {
-        if (!is_int($trueValue) && !is_string($trueValue)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unable to instantiate BooleanStrategy. Expected int or string as $trueValue. %s was given',
-                is_object($trueValue) ? get_class($trueValue) : gettype($trueValue)
-            ));
-        }
-
-        if (!is_int($falseValue) && !is_string($falseValue)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unable to instantiate BooleanStrategy. Expected int or string as $falseValue. %s was given',
-                is_object($falseValue) ? get_class($falseValue) : gettype($falseValue)
-            ));
-        }
-
-        $this->trueValue  = $trueValue;
-        $this->falseValue = $falseValue;
-    }
-
-    /**
-     * Converts the given value so that it can be extracted by the hydrator.
-     *
-     * @param  bool $value The original value.
-     * @throws InvalidArgumentException
-     * @return int|string Returns the value that should be extracted.
-     */
-    public function extract($value)
-    {
-        if (!is_bool($value)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unable to extract. Expected bool. %s was given.',
-                is_object($value) ? get_class($value) : gettype($value)
-            ));
-        }
-
-        return $value === true ? $this->trueValue : $this->falseValue;
-    }
-
-    /**
-     * Converts the given value so that it can be hydrated by the hydrator.
-     *
-     * @param  int|string $value The original value.
-     * @throws InvalidArgumentException
-     * @return bool Returns the value that should be hydrated.
-     */
-    public function hydrate($value)
-    {
-        if (!is_string($value) && !is_int($value)) {
-            throw new InvalidArgumentException(sprintf(
-                'Unable to hydrate. Expected string or int. %s was given.',
-                is_object($value) ? get_class($value) : gettype($value)
-            ));
-        }
-
-        if ($value === $this->trueValue) {
-            return true;
-        }
-
-        if ($value === $this->falseValue) {
-            return false;
-        }
-
-        throw new InvalidArgumentException(sprintf(
-            'Unexpected value %s can\'t be hydrated. Expect %s or %s as Value.',
-            $value,
-            $this->trueValue,
-            $this->falseValue
-        ));
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/ClosureStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/ClosureStrategy.php
deleted file mode 100644
index bf456a7..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/ClosureStrategy.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-class ClosureStrategy implements StrategyInterface
-{
-    /**
-     * Function, used in extract method, default:
-     * function ($value) {
-     *     return $value;
-     * };
-     * @var callable
-     */
-    protected $extractFunc = null;
-
-    /**
-     * Function, used in hydrate method, default:
-     * function ($value) {
-     *     return $value;
-     * };
-     * @var callable
-     */
-    protected $hydrateFunc = null;
-
-    /**
-     * You can describe how your values will extract and hydrate, like this:
-     * $hydrator->addStrategy('category', new ClosureStrategy(
-     *     function (Category $value) {
-     *         return (int) $value->id;
-     *     },
-     *     function ($value) {
-     *         return new Category((int) $value);
-     *     }
-     * ));
-     *
-     * @param callable $extractFunc - anonymous function, that extract values
-     * from object
-     * @param callable $hydrateFunc - anonymous function, that hydrate values
-     * into object
-     */
-    public function __construct($extractFunc = null, $hydrateFunc = null)
-    {
-        if (isset($extractFunc)) {
-            if (!is_callable($extractFunc)) {
-                throw new \Exception('$extractFunc must be callable');
-            }
-
-            $this->extractFunc = $extractFunc;
-        } else {
-            $this->extractFunc = function ($value) {
-                return $value;
-            };
-        }
-
-        if (isset($hydrateFunc)) {
-            if (!is_callable($hydrateFunc)) {
-                throw new \Exception('$hydrateFunc must be callable');
-            }
-
-            $this->hydrateFunc = $hydrateFunc;
-        } else {
-            $this->hydrateFunc = function ($value) {
-                return $value;
-            };
-        }
-    }
-
-    /**
-     * Converts the given value so that it can be extracted by the hydrator.
-     *
-     * @param  mixed $value  The original value.
-     * @param  array $object The object is optionally provided as context.
-     * @return mixed Returns the value that should be extracted.
-     */
-    public function extract($value, $object = null)
-    {
-        $func = $this->extractFunc;
-
-        return $func($value, $object);
-    }
-
-    /**
-     * Converts the given value so that it can be hydrated by the hydrator.
-     *
-     * @param  mixed $value The original value.
-     * @param  array $data  The whole data is optionally provided as context.
-     * @return mixed Returns the value that should be hydrated.
-     */
-    public function hydrate($value, $data = null)
-    {
-        $func = $this->hydrateFunc;
-
-        return $func($value, $data);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/DateTimeFormatterStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/DateTimeFormatterStrategy.php
deleted file mode 100644
index 62d92c5..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/DateTimeFormatterStrategy.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-use DateTime;
-use DateTimeZone;
-
-final class DateTimeFormatterStrategy implements StrategyInterface
-{
-    /**
-     * @var string
-     */
-    private $format;
-
-    /**
-     * @var DateTimeZone|null
-     */
-    private $timezone;
-
-    /**
-     * Constructor
-     *
-     * @param string            $format
-     * @param DateTimeZone|null $timezone
-     */
-    public function __construct($format = DateTime::RFC3339, DateTimeZone $timezone = null)
-    {
-        $this->format   = (string) $format;
-        $this->timezone = $timezone;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Converts to date time string
-     *
-     * @param mixed|DateTime $value
-     *
-     * @return mixed|string
-     */
-    public function extract($value)
-    {
-        if ($value instanceof DateTime) {
-            return $value->format($this->format);
-        }
-
-        return $value;
-    }
-
-    /**
-     * Converts date time string to DateTime instance for injecting to object
-     *
-     * {@inheritDoc}
-     *
-     * @param mixed|string $value
-     *
-     * @return mixed|DateTime
-     */
-    public function hydrate($value)
-    {
-        if ($value === '' || $value === null) {
-            return;
-        }
-
-        if ($this->timezone) {
-            $hydrated = DateTime::createFromFormat($this->format, $value, $this->timezone);
-        } else {
-            $hydrated = DateTime::createFromFormat($this->format, $value);
-        }
-
-        return $hydrated ?: $value;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/DefaultStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/DefaultStrategy.php
deleted file mode 100644
index b2c5c29..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/DefaultStrategy.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-class DefaultStrategy implements StrategyInterface
-{
-    /**
-     * Converts the given value so that it can be extracted by the hydrator.
-     *
-     * @param mixed $value The original value.
-     * @return mixed Returns the value that should be extracted.
-     */
-    public function extract($value)
-    {
-        return $value;
-    }
-
-    /**
-     * Converts the given value so that it can be hydrated by the hydrator.
-     *
-     * @param mixed $value The original value.
-     * @return mixed Returns the value that should be hydrated.
-     */
-    public function hydrate($value)
-    {
-        return $value;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/Exception/ExceptionInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/Exception/ExceptionInterface.php
deleted file mode 100644
index c7b576c..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/Exception/ExceptionInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy\Exception;
-
-interface ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/Exception/InvalidArgumentException.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/Exception/InvalidArgumentException.php
deleted file mode 100644
index 2e6510d..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/Exception/InvalidArgumentException.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy\Exception;
-
-class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/ExplodeStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/ExplodeStrategy.php
deleted file mode 100644
index 49ec9c2..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/ExplodeStrategy.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-final class ExplodeStrategy implements StrategyInterface
-{
-    /**
-     * @var string
-     */
-    private $valueDelimiter;
-
-    /**
-     * @var int|null
-     */
-    private $explodeLimit;
-
-    /**
-     * Constructor
-     *
-     * @param string   $delimiter    String that the values will be split upon
-     * @param int|null $explodeLimit Explode limit
-     */
-    public function __construct($delimiter = ',', $explodeLimit = null)
-    {
-        $this->setValueDelimiter($delimiter);
-
-        $this->explodeLimit = ($explodeLimit === null) ? null : (int) $explodeLimit;
-    }
-
-    /**
-     * Sets the delimiter string that the values will be split upon
-     *
-     * @param  string $delimiter
-     * @return self
-     */
-    private function setValueDelimiter($delimiter)
-    {
-        if (!is_string($delimiter)) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                '%s expects Delimiter to be string, %s provided instead',
-                __METHOD__,
-                is_object($delimiter) ? get_class($delimiter) : gettype($delimiter)
-            ));
-        }
-
-        if (empty($delimiter)) {
-            throw new Exception\InvalidArgumentException('Delimiter cannot be empty.');
-        }
-
-        $this->valueDelimiter = $delimiter;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Split a string by delimiter
-     *
-     * @param string|null $value
-     *
-     * @return string[]
-     *
-     * @throws Exception\InvalidArgumentException
-     */
-    public function hydrate($value)
-    {
-        if (null === $value) {
-            return array();
-        }
-
-        if (!(is_string($value) || is_numeric($value))) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                '%s expects argument 1 to be string, %s provided instead',
-                __METHOD__,
-                is_object($value) ? get_class($value) : gettype($value)
-            ));
-        }
-
-        if ($this->explodeLimit !== null) {
-            return explode($this->valueDelimiter, $value, $this->explodeLimit);
-        }
-
-        return explode($this->valueDelimiter, $value);
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Join array elements with delimiter
-     *
-     * @param string[] $value The original value.
-     *
-     * @return string|null
-     */
-    public function extract($value)
-    {
-        if (!is_array($value)) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                '%s expects argument 1 to be array, %s provided instead',
-                __METHOD__,
-                is_object($value) ? get_class($value) : gettype($value)
-            ));
-        }
-
-        return empty($value) ? null : implode($this->valueDelimiter, $value);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/SerializableStrategy.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/SerializableStrategy.php
deleted file mode 100644
index 260efa3..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/SerializableStrategy.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-use Zend\Stdlib\Exception\InvalidArgumentException;
-use Zend\Serializer\Adapter\AdapterInterface as SerializerAdapter;
-use Zend\Serializer\Serializer as SerializerFactory;
-
-class SerializableStrategy implements StrategyInterface
-{
-    /**
-     * @var string|SerializerAdapter
-     */
-    protected $serializer;
-
-    /**
-     * @var array
-     */
-    protected $serializerOptions = array();
-
-    /**
-     *
-     * @param mixed $serializer string or SerializerAdapter
-     * @param mixed $serializerOptions
-     */
-    public function __construct($serializer, $serializerOptions = null)
-    {
-        $this->setSerializer($serializer);
-        if ($serializerOptions) {
-            $this->setSerializerOptions($serializerOptions);
-        }
-    }
-
-    /**
-     * Serialize the given value so that it can be extracted by the hydrator.
-     *
-     * @param mixed $value The original value.
-     * @return mixed Returns the value that should be extracted.
-     */
-    public function extract($value)
-    {
-        $serializer = $this->getSerializer();
-        return $serializer->serialize($value);
-    }
-
-    /**
-     * Unserialize the given value so that it can be hydrated by the hydrator.
-     *
-     * @param mixed $value The original value.
-     * @return mixed Returns the value that should be hydrated.
-     */
-    public function hydrate($value)
-    {
-        $serializer = $this->getSerializer();
-        return $serializer->unserialize($value);
-    }
-
-    /**
-     * Set serializer
-     *
-     * @param  string|SerializerAdapter $serializer
-     * @return SerializableStrategy
-     */
-    public function setSerializer($serializer)
-    {
-        if (!is_string($serializer) && !$serializer instanceof SerializerAdapter) {
-            throw new InvalidArgumentException(sprintf(
-                '%s expects either a string serializer name or Zend\Serializer\Adapter\AdapterInterface instance; '
-                . 'received "%s"',
-                __METHOD__,
-                (is_object($serializer) ? get_class($serializer) : gettype($serializer))
-            ));
-        }
-        $this->serializer = $serializer;
-        return $this;
-    }
-
-    /**
-     * Get serializer
-     *
-     * @return SerializerAdapter
-     */
-    public function getSerializer()
-    {
-        if (is_string($this->serializer)) {
-            $options = $this->getSerializerOptions();
-            $this->setSerializer(SerializerFactory::factory($this->serializer, $options));
-        } elseif (null === $this->serializer) {
-            $this->setSerializer(SerializerFactory::getDefaultAdapter());
-        }
-
-        return $this->serializer;
-    }
-
-    /**
-     * Set configuration options for instantiating a serializer adapter
-     *
-     * @param  mixed $serializerOptions
-     * @return SerializableStrategy
-     */
-    public function setSerializerOptions($serializerOptions)
-    {
-        $this->serializerOptions = $serializerOptions;
-        return $this;
-    }
-
-    /**
-     * Get configuration options for instantiating a serializer adapter
-     *
-     * @return mixed
-     */
-    public function getSerializerOptions()
-    {
-        return $this->serializerOptions;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/StrategyChain.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/StrategyChain.php
deleted file mode 100644
index a9316bb..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/StrategyChain.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-use Traversable;
-use Zend\Stdlib\ArrayUtils;
-
-final class StrategyChain implements StrategyInterface
-{
-    /**
-     * Strategy chain for extraction
-     *
-     * @var StrategyInterface[]
-     */
-    private $extractionStrategies;
-
-    /**
-     * Strategy chain for hydration
-     *
-     * @var StrategyInterface[]
-     */
-    private $hydrationStrategies;
-
-    /**
-     * Constructor
-     *
-     * @param array|Traversable $extractionStrategies
-     */
-    public function __construct($extractionStrategies)
-    {
-        $extractionStrategies = ArrayUtils::iteratorToArray($extractionStrategies);
-        $this->extractionStrategies = array_map(
-            function (StrategyInterface $strategy) {
-                // this callback is here only to ensure type-safety
-                return $strategy;
-            },
-            $extractionStrategies
-        );
-
-        $this->hydrationStrategies = array_reverse($extractionStrategies);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function extract($value)
-    {
-        foreach ($this->extractionStrategies as $strategy) {
-            $value = $strategy->extract($value);
-        }
-
-        return $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hydrate($value)
-    {
-        foreach ($this->hydrationStrategies as $strategy) {
-            $value = $strategy->hydrate($value);
-        }
-
-        return $value;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/StrategyInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/StrategyInterface.php
deleted file mode 100644
index 562ec4b..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/Strategy/StrategyInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator\Strategy;
-
-/**
- * @todo v3.0, add optional object/data to extract/hydrate.
- */
-interface StrategyInterface
-{
-    /**
-     * Converts the given value so that it can be extracted by the hydrator.
-     *
-     * @param mixed   $value The original value.
-     * @param object $object (optional) The original object for context.
-     * @return mixed Returns the value that should be extracted.
-     */
-    public function extract($value);
-
-    /**
-     * Converts the given value so that it can be hydrated by the hydrator.
-     *
-     * @param mixed $value The original value.
-     * @param array  $data (optional) The original data for context.
-     * @return mixed Returns the value that should be hydrated.
-     */
-    public function hydrate($value);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Hydrator/StrategyEnabledInterface.php b/core/vendor/zendframework/zend-stdlib/Hydrator/StrategyEnabledInterface.php
deleted file mode 100644
index 6f29b16..0000000
--- a/core/vendor/zendframework/zend-stdlib/Hydrator/StrategyEnabledInterface.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\Hydrator;
-
-use Zend\Stdlib\Hydrator\Strategy\StrategyInterface;
-
-interface StrategyEnabledInterface
-{
-    /**
-     * Adds the given strategy under the given name.
-     *
-     * @param string $name The name of the strategy to register.
-     * @param StrategyInterface $strategy The strategy to register.
-     * @return StrategyEnabledInterface
-     */
-    public function addStrategy($name, StrategyInterface $strategy);
-
-    /**
-     * Gets the strategy with the given name.
-     *
-     * @param string $name The name of the strategy to get.
-     * @return StrategyInterface
-     */
-    public function getStrategy($name);
-
-    /**
-     * Checks if the strategy with the given name exists.
-     *
-     * @param string $name The name of the strategy to check for.
-     * @return bool
-     */
-    public function hasStrategy($name);
-
-    /**
-     * Removes the strategy with the given name.
-     *
-     * @param string $name The name of the strategy to remove.
-     * @return StrategyEnabledInterface
-     */
-    public function removeStrategy($name);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/InitializableInterface.php b/core/vendor/zendframework/zend-stdlib/InitializableInterface.php
deleted file mode 100644
index f78bede..0000000
--- a/core/vendor/zendframework/zend-stdlib/InitializableInterface.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-/**
- * Interface to allow objects to have initialization logic
- */
-interface InitializableInterface
-{
-    /**
-     * Init an object
-     *
-     * @return void
-     */
-    public function init();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/JsonSerializable.php b/core/vendor/zendframework/zend-stdlib/JsonSerializable.php
deleted file mode 100644
index 6d6c2ab..0000000
--- a/core/vendor/zendframework/zend-stdlib/JsonSerializable.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-if (PHP_VERSION_ID < 50400) {
-    class_alias(
-        'Zend\Stdlib\JsonSerializable\PhpLegacyCompatibility',
-        'JsonSerializable'
-    );
-}
-
-/**
- * Polyfill for JsonSerializable
- *
- * JsonSerializable was introduced in PHP 5.4.0.
- *
- * @see http://php.net/manual/class.jsonserializable.php
- */
-interface JsonSerializable extends \JsonSerializable
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/JsonSerializable/PhpLegacyCompatibility.php b/core/vendor/zendframework/zend-stdlib/JsonSerializable/PhpLegacyCompatibility.php
deleted file mode 100644
index ecc7525..0000000
--- a/core/vendor/zendframework/zend-stdlib/JsonSerializable/PhpLegacyCompatibility.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\JsonSerializable;
-
-/**
- * Interface compatible with the built-in JsonSerializable interface
- *
- * JsonSerializable was introduced in PHP 5.4.0.
- *
- * @see http://php.net/manual/class.jsonserializable.php
- */
-interface PhpLegacyCompatibility
-{
-    /**
-     * Returns data which can be serialized by json_encode().
-     *
-     * @return mixed
-     * @see    http://php.net/manual/jsonserializable.jsonserialize.php
-     */
-    public function jsonSerialize();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Message.php b/core/vendor/zendframework/zend-stdlib/Message.php
deleted file mode 100644
index 63ba7c7..0000000
--- a/core/vendor/zendframework/zend-stdlib/Message.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Traversable;
-
-class Message implements MessageInterface
-{
-    /**
-     * @var array
-     */
-    protected $metadata = array();
-
-    /**
-     * @var string
-     */
-    protected $content = '';
-
-    /**
-     * Set message metadata
-     *
-     * Non-destructive setting of message metadata; always adds to the metadata, never overwrites
-     * the entire metadata container.
-     *
-     * @param  string|int|array|Traversable $spec
-     * @param  mixed $value
-     * @throws Exception\InvalidArgumentException
-     * @return Message
-     */
-    public function setMetadata($spec, $value = null)
-    {
-        if (is_scalar($spec)) {
-            $this->metadata[$spec] = $value;
-            return $this;
-        }
-        if (!is_array($spec) && !$spec instanceof Traversable) {
-            throw new Exception\InvalidArgumentException(sprintf(
-                'Expected a string, array, or Traversable argument in first position; received "%s"',
-                (is_object($spec) ? get_class($spec) : gettype($spec))
-            ));
-        }
-        foreach ($spec as $key => $value) {
-            $this->metadata[$key] = $value;
-        }
-        return $this;
-    }
-
-    /**
-     * Retrieve all metadata or a single metadatum as specified by key
-     *
-     * @param  null|string|int $key
-     * @param  null|mixed $default
-     * @throws Exception\InvalidArgumentException
-     * @return mixed
-     */
-    public function getMetadata($key = null, $default = null)
-    {
-        if (null === $key) {
-            return $this->metadata;
-        }
-
-        if (!is_scalar($key)) {
-            throw new Exception\InvalidArgumentException('Non-scalar argument provided for key');
-        }
-
-        if (array_key_exists($key, $this->metadata)) {
-            return $this->metadata[$key];
-        }
-
-        return $default;
-    }
-
-    /**
-     * Set message content
-     *
-     * @param  mixed $value
-     * @return Message
-     */
-    public function setContent($value)
-    {
-        $this->content = $value;
-        return $this;
-    }
-
-    /**
-     * Get message content
-     *
-     * @return mixed
-     */
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        $request = '';
-        foreach ($this->getMetadata() as $key => $value) {
-            $request .= sprintf(
-                "%s: %s\r\n",
-                (string) $key,
-                (string) $value
-            );
-        }
-        $request .= "\r\n" . $this->getContent();
-        return $request;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/MessageInterface.php b/core/vendor/zendframework/zend-stdlib/MessageInterface.php
deleted file mode 100644
index 28d8857..0000000
--- a/core/vendor/zendframework/zend-stdlib/MessageInterface.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-interface MessageInterface
-{
-    /**
-     * Set metadata
-     *
-     * @param  string|int|array|\Traversable $spec
-     * @param  mixed $value
-     */
-    public function setMetadata($spec, $value = null);
-
-    /**
-     * Get metadata
-     *
-     * @param  null|string|int $key
-     * @return mixed
-     */
-    public function getMetadata($key = null);
-
-    /**
-     * Set content
-     *
-     * @param  mixed $content
-     * @return mixed
-     */
-    public function setContent($content);
-
-    /**
-     * Get content
-     *
-     * @return mixed
-     */
-    public function getContent();
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ParameterObjectInterface.php b/core/vendor/zendframework/zend-stdlib/ParameterObjectInterface.php
deleted file mode 100644
index 676a6e2..0000000
--- a/core/vendor/zendframework/zend-stdlib/ParameterObjectInterface.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-interface ParameterObjectInterface
-{
-    /**
-     * @param string $key
-     * @param mixed $value
-     * @return void
-     */
-    public function __set($key, $value);
-
-    /**
-     * @param string $key
-     * @return mixed
-     */
-    public function __get($key);
-
-    /**
-     * @param string $key
-     * @return bool
-     */
-    public function __isset($key);
-
-    /**
-     * @param string $key
-     * @return void
-     */
-    public function __unset($key);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Parameters.php b/core/vendor/zendframework/zend-stdlib/Parameters.php
deleted file mode 100644
index bef834a..0000000
--- a/core/vendor/zendframework/zend-stdlib/Parameters.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use ArrayObject as PhpArrayObject;
-
-class Parameters extends PhpArrayObject implements ParametersInterface
-{
-    /**
-     * Constructor
-     *
-     * Enforces that we have an array, and enforces parameter access to array
-     * elements.
-     *
-     * @param  array $values
-     */
-    public function __construct(array $values = null)
-    {
-        if (null === $values) {
-            $values = array();
-        }
-        parent::__construct($values, ArrayObject::ARRAY_AS_PROPS);
-    }
-
-    /**
-     * Populate from native PHP array
-     *
-     * @param  array $values
-     * @return void
-     */
-    public function fromArray(array $values)
-    {
-        $this->exchangeArray($values);
-    }
-
-    /**
-     * Populate from query string
-     *
-     * @param  string $string
-     * @return void
-     */
-    public function fromString($string)
-    {
-        $array = array();
-        parse_str($string, $array);
-        $this->fromArray($array);
-    }
-
-    /**
-     * Serialize to native PHP array
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        return $this->getArrayCopy();
-    }
-
-    /**
-     * Serialize to query string
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return http_build_query($this);
-    }
-
-    /**
-     * Retrieve by key
-     *
-     * Returns null if the key does not exist.
-     *
-     * @param  string $name
-     * @return mixed
-     */
-    public function offsetGet($name)
-    {
-        if ($this->offsetExists($name)) {
-            return parent::offsetGet($name);
-        }
-        return;
-    }
-
-    /**
-     * @param string $name
-     * @param mixed $default optional default value
-     * @return mixed
-     */
-    public function get($name, $default = null)
-    {
-        if ($this->offsetExists($name)) {
-            return parent::offsetGet($name);
-        }
-        return $default;
-    }
-
-    /**
-     * @param string $name
-     * @param mixed $value
-     * @return Parameters
-     */
-    public function set($name, $value)
-    {
-        $this[$name] = $value;
-        return $this;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ParametersInterface.php b/core/vendor/zendframework/zend-stdlib/ParametersInterface.php
deleted file mode 100644
index feeda58..0000000
--- a/core/vendor/zendframework/zend-stdlib/ParametersInterface.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use ArrayAccess;
-use Countable;
-use Serializable;
-use Traversable;
-
-/*
- * Basically, an ArrayObject. You could simply define something like:
- *     class QueryParams extends ArrayObject implements Parameters {}
- * and have 90% of the functionality
- */
-interface ParametersInterface extends ArrayAccess, Countable, Serializable, Traversable
-{
-    /**
-     * Constructor
-     *
-     * @param array $values
-     */
-    public function __construct(array $values = null);
-
-    /**
-     * From array
-     *
-     * Allow deserialization from standard array
-     *
-     * @param array $values
-     * @return mixed
-     */
-    public function fromArray(array $values);
-
-    /**
-     * From string
-     *
-     * Allow deserialization from raw body; e.g., for PUT requests
-     *
-     * @param $string
-     * @return mixed
-     */
-    public function fromString($string);
-
-    /**
-     * To array
-     *
-     * Allow serialization back to standard array
-     *
-     * @return mixed
-     */
-    public function toArray();
-
-    /**
-     * To string
-     *
-     * Allow serialization to query format; e.g., for PUT or POST requests
-     *
-     * @return mixed
-     */
-    public function toString();
-
-    /**
-     * Get
-     *
-     * @param string $name
-     * @param mixed|null $default
-     * @return mixed
-     */
-    public function get($name, $default = null);
-
-    /**
-     * Set
-     *
-     * @param string $name
-     * @param mixed $value
-     * @return ParametersInterface
-     */
-    public function set($name, $value);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/PriorityList.php b/core/vendor/zendframework/zend-stdlib/PriorityList.php
deleted file mode 100644
index 172af68..0000000
--- a/core/vendor/zendframework/zend-stdlib/PriorityList.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Countable;
-use Iterator;
-
-class PriorityList implements Iterator, Countable
-{
-    const EXTR_DATA     = 0x00000001;
-    const EXTR_PRIORITY = 0x00000002;
-    const EXTR_BOTH     = 0x00000003;
-    /**
-     * Internal list of all items.
-     *
-     * @var array[]
-     */
-    protected $items = array();
-
-    /**
-     * Serial assigned to items to preserve LIFO.
-     *
-     * @var int
-     */
-    protected $serial = 0;
-
-    /**
-     * Serial order mode
-     * @var integer
-     */
-    protected $isLIFO = 1;
-
-    /**
-     * Internal counter to avoid usage of count().
-     *
-     * @var int
-     */
-    protected $count = 0;
-
-    /**
-     * Whether the list was already sorted.
-     *
-     * @var bool
-     */
-    protected $sorted = false;
-
-    /**
-     * Insert a new item.
-     *
-     * @param  string  $name
-     * @param  mixed   $value
-     * @param  int     $priority
-     *
-     * @return void
-     */
-    public function insert($name, $value, $priority = 0)
-    {
-        $this->sorted = false;
-        $this->count++;
-
-        $this->items[$name] = array(
-            'data'     => $value,
-            'priority' => (int) $priority,
-            'serial'   => $this->serial++,
-        );
-    }
-
-    /**
-     * @param string $name
-     * @param int    $priority
-     *
-     * @return $this
-     *
-     * @throws \Exception
-     */
-    public function setPriority($name, $priority)
-    {
-        if (!isset($this->items[$name])) {
-            throw new \Exception("item $name not found");
-        }
-
-        $this->items[$name]['priority'] = (int) $priority;
-        $this->sorted                   = false;
-
-        return $this;
-    }
-
-    /**
-     * Remove a item.
-     *
-     * @param  string $name
-     * @return void
-     */
-    public function remove($name)
-    {
-        if (isset($this->items[$name])) {
-            $this->count--;
-        }
-
-        unset($this->items[$name]);
-    }
-
-    /**
-     * Remove all items.
-     *
-     * @return void
-     */
-    public function clear()
-    {
-        $this->items  = array();
-        $this->serial = 0;
-        $this->count  = 0;
-        $this->sorted = false;
-    }
-
-    /**
-     * Get a item.
-     *
-     * @param  string $name
-     * @return mixed
-     */
-    public function get($name)
-    {
-        if (!isset($this->items[$name])) {
-            return;
-        }
-
-        return $this->items[$name]['data'];
-    }
-
-    /**
-     * Sort all items.
-     *
-     * @return void
-     */
-    protected function sort()
-    {
-        if (!$this->sorted) {
-            uasort($this->items, array($this, 'compare'));
-            $this->sorted = true;
-        }
-    }
-
-    /**
-     * Compare the priority of two items.
-     *
-     * @param  array $item1,
-     * @param  array $item2
-     * @return int
-     */
-    protected function compare(array $item1, array $item2)
-    {
-        return ($item1['priority'] === $item2['priority'])
-            ? ($item1['serial']   > $item2['serial']   ? -1 : 1) * $this->isLIFO
-            : ($item1['priority'] > $item2['priority'] ? -1 : 1);
-    }
-
-    /**
-     * Get/Set serial order mode
-     *
-     * @param bool|null $flag
-     *
-     * @return bool
-     */
-    public function isLIFO($flag = null)
-    {
-        if ($flag !== null) {
-            $isLifo = $flag === true ? 1 : -1;
-
-            if ($isLifo !== $this->isLIFO) {
-                $this->isLIFO = $isLifo;
-                $this->sorted = false;
-            }
-        }
-
-        return 1 === $this->isLIFO;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function rewind()
-    {
-        $this->sort();
-        reset($this->items);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function current()
-    {
-        $this->sorted || $this->sort();
-        $node = current($this->items);
-
-        return $node ? $node['data'] : false;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function key()
-    {
-        $this->sorted || $this->sort();
-        return key($this->items);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function next()
-    {
-        $node = next($this->items);
-
-        return $node ? $node['data'] : false;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function valid()
-    {
-        return current($this->items) !== false;
-    }
-
-    /**
-     * @return self
-     */
-    public function getIterator()
-    {
-        return clone $this;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function count()
-    {
-        return $this->count;
-    }
-
-    /**
-     * Return list as array
-     *
-     * @param int $flag
-     *
-     * @return array
-     */
-    public function toArray($flag = self::EXTR_DATA)
-    {
-        $this->sort();
-
-        if ($flag == self::EXTR_BOTH) {
-            return $this->items;
-        }
-
-        return array_map(
-            function ($item) use ($flag) {
-                return ($flag == PriorityList::EXTR_PRIORITY) ? $item['priority'] : $item['data'];
-            },
-            $this->items
-        );
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/PriorityQueue.php b/core/vendor/zendframework/zend-stdlib/PriorityQueue.php
deleted file mode 100644
index 1baf44e..0000000
--- a/core/vendor/zendframework/zend-stdlib/PriorityQueue.php
+++ /dev/null
@@ -1,301 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Countable;
-use IteratorAggregate;
-use Serializable;
-
-/**
- * Re-usable, serializable priority queue implementation
- *
- * SplPriorityQueue acts as a heap; on iteration, each item is removed from the
- * queue. If you wish to re-use such a queue, you need to clone it first. This
- * makes for some interesting issues if you wish to delete items from the queue,
- * or, as already stated, iterate over it multiple times.
- *
- * This class aggregates items for the queue itself, but also composes an
- * "inner" iterator in the form of an SplPriorityQueue object for performing
- * the actual iteration.
- */
-class PriorityQueue implements Countable, IteratorAggregate, Serializable
-{
-    const EXTR_DATA     = 0x00000001;
-    const EXTR_PRIORITY = 0x00000002;
-    const EXTR_BOTH     = 0x00000003;
-
-    /**
-     * Inner queue class to use for iteration
-     * @var string
-     */
-    protected $queueClass = 'Zend\Stdlib\SplPriorityQueue';
-
-    /**
-     * Actual items aggregated in the priority queue. Each item is an array
-     * with keys "data" and "priority".
-     * @var array
-     */
-    protected $items      = array();
-
-    /**
-     * Inner queue object
-     * @var SplPriorityQueue
-     */
-    protected $queue;
-
-    /**
-     * Insert an item into the queue
-     *
-     * Priority defaults to 1 (low priority) if none provided.
-     *
-     * @param  mixed $data
-     * @param  int $priority
-     * @return PriorityQueue
-     */
-    public function insert($data, $priority = 1)
-    {
-        $priority = (int) $priority;
-        $this->items[] = array(
-            'data'     => $data,
-            'priority' => $priority,
-        );
-        $this->getQueue()->insert($data, $priority);
-        return $this;
-    }
-
-    /**
-     * Remove an item from the queue
-     *
-     * This is different than {@link extract()}; its purpose is to dequeue an
-     * item.
-     *
-     * This operation is potentially expensive, as it requires
-     * re-initialization and re-population of the inner queue.
-     *
-     * Note: this removes the first item matching the provided item found. If
-     * the same item has been added multiple times, it will not remove other
-     * instances.
-     *
-     * @param  mixed $datum
-     * @return bool False if the item was not found, true otherwise.
-     */
-    public function remove($datum)
-    {
-        $found = false;
-        foreach ($this->items as $key => $item) {
-            if ($item['data'] === $datum) {
-                $found = true;
-                break;
-            }
-        }
-        if ($found) {
-            unset($this->items[$key]);
-            $this->queue = null;
-
-            if (!$this->isEmpty()) {
-                $queue = $this->getQueue();
-                foreach ($this->items as $item) {
-                    $queue->insert($item['data'], $item['priority']);
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Is the queue empty?
-     *
-     * @return bool
-     */
-    public function isEmpty()
-    {
-        return (0 === $this->count());
-    }
-
-    /**
-     * How many items are in the queue?
-     *
-     * @return int
-     */
-    public function count()
-    {
-        return count($this->items);
-    }
-
-    /**
-     * Peek at the top node in the queue, based on priority.
-     *
-     * @return mixed
-     */
-    public function top()
-    {
-        return $this->getIterator()->top();
-    }
-
-    /**
-     * Extract a node from the inner queue and sift up
-     *
-     * @return mixed
-     */
-    public function extract()
-    {
-        return $this->getQueue()->extract();
-    }
-
-    /**
-     * Retrieve the inner iterator
-     *
-     * SplPriorityQueue acts as a heap, which typically implies that as items
-     * are iterated, they are also removed. This does not work for situations
-     * where the queue may be iterated multiple times. As such, this class
-     * aggregates the values, and also injects an SplPriorityQueue. This method
-     * retrieves the inner queue object, and clones it for purposes of
-     * iteration.
-     *
-     * @return SplPriorityQueue
-     */
-    public function getIterator()
-    {
-        $queue = $this->getQueue();
-        return clone $queue;
-    }
-
-    /**
-     * Serialize the data structure
-     *
-     * @return string
-     */
-    public function serialize()
-    {
-        return serialize($this->items);
-    }
-
-    /**
-     * Unserialize a string into a PriorityQueue object
-     *
-     * Serialization format is compatible with {@link Zend\Stdlib\SplPriorityQueue}
-     *
-     * @param  string $data
-     * @return void
-     */
-    public function unserialize($data)
-    {
-        foreach (unserialize($data) as $item) {
-            $this->insert($item['data'], $item['priority']);
-        }
-    }
-
-    /**
-     * Serialize to an array
-     *
-     * By default, returns only the item data, and in the order registered (not
-     * sorted). You may provide one of the EXTR_* flags as an argument, allowing
-     * the ability to return priorities or both data and priority.
-     *
-     * @param  int $flag
-     * @return array
-     */
-    public function toArray($flag = self::EXTR_DATA)
-    {
-        switch ($flag) {
-            case self::EXTR_BOTH:
-                return $this->items;
-            case self::EXTR_PRIORITY:
-                return array_map(function ($item) {
-                    return $item['priority'];
-                }, $this->items);
-            case self::EXTR_DATA:
-            default:
-                return array_map(function ($item) {
-                    return $item['data'];
-                }, $this->items);
-        }
-    }
-
-    /**
-     * Specify the internal queue class
-     *
-     * Please see {@link getIterator()} for details on the necessity of an
-     * internal queue class. The class provided should extend SplPriorityQueue.
-     *
-     * @param  string $class
-     * @return PriorityQueue
-     */
-    public function setInternalQueueClass($class)
-    {
-        $this->queueClass = (string) $class;
-        return $this;
-    }
-
-    /**
-     * Does the queue contain the given datum?
-     *
-     * @param  mixed $datum
-     * @return bool
-     */
-    public function contains($datum)
-    {
-        foreach ($this->items as $item) {
-            if ($item['data'] === $datum) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Does the queue have an item with the given priority?
-     *
-     * @param  int $priority
-     * @return bool
-     */
-    public function hasPriority($priority)
-    {
-        foreach ($this->items as $item) {
-            if ($item['priority'] === $priority) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Get the inner priority queue instance
-     *
-     * @throws Exception\DomainException
-     * @return SplPriorityQueue
-     */
-    protected function getQueue()
-    {
-        if (null === $this->queue) {
-            $this->queue = new $this->queueClass();
-            if (!$this->queue instanceof \SplPriorityQueue) {
-                throw new Exception\DomainException(sprintf(
-                    'PriorityQueue expects an internal queue of type SplPriorityQueue; received "%s"',
-                    get_class($this->queue)
-                ));
-            }
-        }
-        return $this->queue;
-    }
-
-    /**
-     * Add support for deep cloning
-     *
-     * @return void
-     */
-    public function __clone()
-    {
-        if (null !== $this->queue) {
-            $this->queue = clone $this->queue;
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/README.md b/core/vendor/zendframework/zend-stdlib/README.md
deleted file mode 100644
index a2dcb84..0000000
--- a/core/vendor/zendframework/zend-stdlib/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Stdlib Component from ZF2
-=========================
-
-This is the Stdlib component for ZF2.
-
-- File issues at https://github.com/zendframework/zf2/issues
-- Create pull requests against https://github.com/zendframework/zf2
-- Documentation is at http://framework.zend.com/docs
-
-LICENSE
--------
-
-The files in this archive are released under the [Zend Framework
-license](http://framework.zend.com/license), which is a 3-clause BSD license.
-
diff --git a/core/vendor/zendframework/zend-stdlib/Request.php b/core/vendor/zendframework/zend-stdlib/Request.php
deleted file mode 100644
index 7c08403..0000000
--- a/core/vendor/zendframework/zend-stdlib/Request.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-class Request extends Message implements RequestInterface
-{
-    // generic request implementation
-}
diff --git a/core/vendor/zendframework/zend-stdlib/RequestInterface.php b/core/vendor/zendframework/zend-stdlib/RequestInterface.php
deleted file mode 100644
index c2bac31..0000000
--- a/core/vendor/zendframework/zend-stdlib/RequestInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-interface RequestInterface extends MessageInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/Response.php b/core/vendor/zendframework/zend-stdlib/Response.php
deleted file mode 100644
index f3074ba..0000000
--- a/core/vendor/zendframework/zend-stdlib/Response.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-class Response extends Message implements ResponseInterface
-{
-    // generic response implementation
-}
diff --git a/core/vendor/zendframework/zend-stdlib/ResponseInterface.php b/core/vendor/zendframework/zend-stdlib/ResponseInterface.php
deleted file mode 100644
index fe94d30..0000000
--- a/core/vendor/zendframework/zend-stdlib/ResponseInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-interface ResponseInterface extends MessageInterface
-{
-}
diff --git a/core/vendor/zendframework/zend-stdlib/SplPriorityQueue.php b/core/vendor/zendframework/zend-stdlib/SplPriorityQueue.php
deleted file mode 100644
index 029d8e9..0000000
--- a/core/vendor/zendframework/zend-stdlib/SplPriorityQueue.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Serializable;
-
-/**
- * Serializable version of SplPriorityQueue
- *
- * Also, provides predictable heap order for datums added with the same priority
- * (i.e., they will be emitted in the same order they are enqueued).
- */
-class SplPriorityQueue extends \SplPriorityQueue implements Serializable
-{
-    /**
-     * @var int Seed used to ensure queue order for items of the same priority
-     */
-    protected $serial = PHP_INT_MAX;
-
-    /**
-     * Insert a value with a given priority
-     *
-     * Utilizes {@var $serial} to ensure that values of equal priority are
-     * emitted in the same order in which they are inserted.
-     *
-     * @param  mixed $datum
-     * @param  mixed $priority
-     * @return void
-     */
-    public function insert($datum, $priority)
-    {
-        if (!is_array($priority)) {
-            $priority = array($priority, $this->serial--);
-        }
-        parent::insert($datum, $priority);
-    }
-
-    /**
-     * Serialize to an array
-     *
-     * Array will be priority => data pairs
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        $array = array();
-        foreach (clone $this as $item) {
-            $array[] = $item;
-        }
-        return $array;
-    }
-
-    /**
-     * Serialize
-     *
-     * @return string
-     */
-    public function serialize()
-    {
-        $clone = clone $this;
-        $clone->setExtractFlags(self::EXTR_BOTH);
-
-        $data = array();
-        foreach ($clone as $item) {
-            $data[] = $item;
-        }
-
-        return serialize($data);
-    }
-
-    /**
-     * Deserialize
-     *
-     * @param  string $data
-     * @return void
-     */
-    public function unserialize($data)
-    {
-        foreach (unserialize($data) as $item) {
-            $this->insert($item['data'], $item['priority']);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/SplQueue.php b/core/vendor/zendframework/zend-stdlib/SplQueue.php
deleted file mode 100644
index 029bc9f..0000000
--- a/core/vendor/zendframework/zend-stdlib/SplQueue.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Serializable;
-
-/**
- * Serializable version of SplQueue
- */
-class SplQueue extends \SplQueue implements Serializable
-{
-    /**
-     * Return an array representing the queue
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        $array = array();
-        foreach ($this as $item) {
-            $array[] = $item;
-        }
-        return $array;
-    }
-
-    /**
-     * Serialize
-     *
-     * @return string
-     */
-    public function serialize()
-    {
-        return serialize($this->toArray());
-    }
-
-    /**
-     * Unserialize
-     *
-     * @param  string $data
-     * @return void
-     */
-    public function unserialize($data)
-    {
-        foreach (unserialize($data) as $item) {
-            $this->push($item);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/SplStack.php b/core/vendor/zendframework/zend-stdlib/SplStack.php
deleted file mode 100644
index fac77a5..0000000
--- a/core/vendor/zendframework/zend-stdlib/SplStack.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Serializable;
-
-/**
- * Serializable version of SplStack
- */
-class SplStack extends \SplStack implements Serializable
-{
-    /**
-     * Serialize to an array representing the stack
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        $array = array();
-        foreach ($this as $item) {
-            $array[] = $item;
-        }
-        return $array;
-    }
-
-    /**
-     * Serialize
-     *
-     * @return string
-     */
-    public function serialize()
-    {
-        return serialize($this->toArray());
-    }
-
-    /**
-     * Unserialize
-     *
-     * @param  string $data
-     * @return void
-     */
-    public function unserialize($data)
-    {
-        foreach (unserialize($data) as $item) {
-            $this->unshift($item);
-        }
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringUtils.php b/core/vendor/zendframework/zend-stdlib/StringUtils.php
deleted file mode 100644
index 9bbb4a4..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringUtils.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib;
-
-use Zend\Stdlib\StringWrapper\StringWrapperInterface;
-
-/**
- * Utility class for handling strings of different character encodings
- * using available PHP extensions.
- *
- * Declared abstract, as we have no need for instantiation.
- */
-abstract class StringUtils
-{
-    /**
-     * Ordered list of registered string wrapper instances
-     *
-     * @var StringWrapperInterface[]
-     */
-    protected static $wrapperRegistry = null;
-
-    /**
-     * A list of known single-byte character encodings (upper-case)
-     *
-     * @var string[]
-     */
-    protected static $singleByteEncodings = array(
-        'ASCII', '7BIT', '8BIT',
-        'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5',
-        'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-10',
-        'ISO-8859-11', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',
-        'CP-1251', 'CP-1252',
-        // TODO
-    );
-
-    /**
-     * Is PCRE compiled with Unicode support?
-     *
-     * @var bool
-     **/
-    protected static $hasPcreUnicodeSupport = null;
-
-    /**
-     * Get registered wrapper classes
-     *
-     * @return string[]
-     */
-    public static function getRegisteredWrappers()
-    {
-        if (static::$wrapperRegistry === null) {
-            static::$wrapperRegistry = array();
-
-            if (extension_loaded('intl')) {
-                static::$wrapperRegistry[] = 'Zend\Stdlib\StringWrapper\Intl';
-            }
-
-            if (extension_loaded('mbstring')) {
-                static::$wrapperRegistry[] = 'Zend\Stdlib\StringWrapper\MbString';
-            }
-
-            if (extension_loaded('iconv')) {
-                static::$wrapperRegistry[] = 'Zend\Stdlib\StringWrapper\Iconv';
-            }
-
-            static::$wrapperRegistry[] = 'Zend\Stdlib\StringWrapper\Native';
-        }
-
-        return static::$wrapperRegistry;
-    }
-
-    /**
-     * Register a string wrapper class
-     *
-     * @param string $wrapper
-     * @return void
-     */
-    public static function registerWrapper($wrapper)
-    {
-        $wrapper = (string) $wrapper;
-        if (!in_array($wrapper, static::$wrapperRegistry, true)) {
-            static::$wrapperRegistry[] = $wrapper;
-        }
-    }
-
-    /**
-     * Unregister a string wrapper class
-     *
-     * @param string $wrapper
-     * @return void
-     */
-    public static function unregisterWrapper($wrapper)
-    {
-        $index = array_search((string) $wrapper, static::$wrapperRegistry, true);
-        if ($index !== false) {
-            unset(static::$wrapperRegistry[$index]);
-        }
-    }
-
-    /**
-     * Reset all registered wrappers so the default wrappers will be used
-     *
-     * @return void
-     */
-    public static function resetRegisteredWrappers()
-    {
-        static::$wrapperRegistry = null;
-    }
-
-    /**
-     * Get the first string wrapper supporting the given character encoding
-     * and supports to convert into the given convert encoding.
-     *
-     * @param string      $encoding        Character encoding to support
-     * @param string|null $convertEncoding OPTIONAL character encoding to convert in
-     * @return StringWrapperInterface
-     * @throws Exception\RuntimeException If no wrapper supports given character encodings
-     */
-    public static function getWrapper($encoding = 'UTF-8', $convertEncoding = null)
-    {
-        foreach (static::getRegisteredWrappers() as $wrapperClass) {
-            if ($wrapperClass::isSupported($encoding, $convertEncoding)) {
-                $wrapper = new $wrapperClass($encoding, $convertEncoding);
-                $wrapper->setEncoding($encoding, $convertEncoding);
-                return $wrapper;
-            }
-        }
-
-        throw new Exception\RuntimeException(
-            'No wrapper found supporting "' . $encoding . '"'
-            . (($convertEncoding !== null) ? ' and "' . $convertEncoding . '"' : '')
-        );
-    }
-
-    /**
-     * Get a list of all known single-byte character encodings
-     *
-     * @return string[]
-     */
-    public static function getSingleByteEncodings()
-    {
-        return static::$singleByteEncodings;
-    }
-
-    /**
-     * Check if a given encoding is a known single-byte character encoding
-     *
-     * @param string $encoding
-     * @return bool
-     */
-    public static function isSingleByteEncoding($encoding)
-    {
-        return in_array(strtoupper($encoding), static::$singleByteEncodings);
-    }
-
-    /**
-     * Check if a given string is valid UTF-8 encoded
-     *
-     * @param string $str
-     * @return bool
-     */
-    public static function isValidUtf8($str)
-    {
-        return is_string($str) && ($str === '' || preg_match('/^./su', $str) == 1);
-    }
-
-    /**
-     * Is PCRE compiled with Unicode support?
-     *
-     * @return bool
-     */
-    public static function hasPcreUnicodeSupport()
-    {
-        if (static::$hasPcreUnicodeSupport === null) {
-            ErrorHandler::start();
-            static::$hasPcreUnicodeSupport = defined('PREG_BAD_UTF8_OFFSET_ERROR') && preg_match('/\pL/u', 'a') == 1;
-            ErrorHandler::stop();
-        }
-        return static::$hasPcreUnicodeSupport;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringWrapper/AbstractStringWrapper.php b/core/vendor/zendframework/zend-stdlib/StringWrapper/AbstractStringWrapper.php
deleted file mode 100644
index 3e395cc..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringWrapper/AbstractStringWrapper.php
+++ /dev/null
@@ -1,269 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\StringWrapper;
-
-use Zend\Stdlib\Exception;
-use Zend\Stdlib\StringUtils;
-
-abstract class AbstractStringWrapper implements StringWrapperInterface
-{
-    /**
-     * The character encoding working on
-     * @var string|null
-     */
-    protected $encoding = 'UTF-8';
-
-    /**
-     * An optionally character encoding to convert to
-     * @var string|null
-     */
-    protected $convertEncoding;
-
-    /**
-     * Check if the given character encoding is supported by this wrapper
-     * and the character encoding to convert to is also supported.
-     *
-     * @param  string      $encoding
-     * @param  string|null $convertEncoding
-     * @return bool
-     */
-    public static function isSupported($encoding, $convertEncoding = null)
-    {
-        $supportedEncodings = static::getSupportedEncodings();
-
-        if (!in_array(strtoupper($encoding), $supportedEncodings)) {
-            return false;
-        }
-
-        if ($convertEncoding !== null && !in_array(strtoupper($convertEncoding), $supportedEncodings)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Set character encoding working with and convert to
-     *
-     * @param string      $encoding         The character encoding to work with
-     * @param string|null $convertEncoding  The character encoding to convert to
-     * @return StringWrapperInterface
-     */
-    public function setEncoding($encoding, $convertEncoding = null)
-    {
-        $supportedEncodings = static::getSupportedEncodings();
-
-        $encodingUpper = strtoupper($encoding);
-        if (!in_array($encodingUpper, $supportedEncodings)) {
-            throw new Exception\InvalidArgumentException(
-                'Wrapper doesn\'t support character encoding "' . $encoding . '"'
-            );
-        }
-
-        if ($convertEncoding !== null) {
-            $convertEncodingUpper = strtoupper($convertEncoding);
-            if (!in_array($convertEncodingUpper, $supportedEncodings)) {
-                throw new Exception\InvalidArgumentException(
-                    'Wrapper doesn\'t support character encoding "' . $convertEncoding . '"'
-                );
-            }
-
-            $this->convertEncoding = $convertEncodingUpper;
-        } else {
-            $this->convertEncoding = null;
-        }
-        $this->encoding = $encodingUpper;
-
-        return $this;
-    }
-
-    /**
-     * Get the defined character encoding to work with
-     *
-     * @return string
-     * @throws Exception\LogicException If no encoding was defined
-     */
-    public function getEncoding()
-    {
-        return $this->encoding;
-    }
-
-    /**
-     * Get the defined character encoding to convert to
-     *
-     * @return string|null
-    */
-    public function getConvertEncoding()
-    {
-        return $this->convertEncoding;
-    }
-
-    /**
-     * Convert a string from defined character encoding to the defined convert encoding
-     *
-     * @param string  $str
-     * @param bool $reverse
-     * @return string|false
-     */
-    public function convert($str, $reverse = false)
-    {
-        $encoding        = $this->getEncoding();
-        $convertEncoding = $this->getConvertEncoding();
-        if ($convertEncoding === null) {
-            throw new Exception\LogicException(
-                'No convert encoding defined'
-            );
-        }
-
-        if ($encoding === $convertEncoding) {
-            return $str;
-        }
-
-        $from = $reverse ? $convertEncoding : $encoding;
-        $to   = $reverse ? $encoding : $convertEncoding;
-        throw new Exception\RuntimeException(sprintf(
-            'Converting from "%s" to "%s" isn\'t supported by this string wrapper',
-            $from,
-            $to
-        ));
-    }
-
-    /**
-     * Wraps a string to a given number of characters
-     *
-     * @param  string  $string
-     * @param  int $width
-     * @param  string  $break
-     * @param  bool $cut
-     * @return string|false
-     */
-    public function wordWrap($string, $width = 75, $break = "\n", $cut = false)
-    {
-        $string = (string) $string;
-        if ($string === '') {
-            return '';
-        }
-
-        $break = (string) $break;
-        if ($break === '') {
-            throw new Exception\InvalidArgumentException('Break string cannot be empty');
-        }
-
-        $width = (int) $width;
-        if ($width === 0 && $cut) {
-            throw new Exception\InvalidArgumentException('Cannot force cut when width is zero');
-        }
-
-        if (StringUtils::isSingleByteEncoding($this->getEncoding())) {
-            return wordwrap($string, $width, $break, $cut);
-        }
-
-        $stringWidth = $this->strlen($string);
-        $breakWidth  = $this->strlen($break);
-
-        $result    = '';
-        $lastStart = $lastSpace = 0;
-
-        for ($current = 0; $current < $stringWidth; $current++) {
-            $char = $this->substr($string, $current, 1);
-
-            $possibleBreak = $char;
-            if ($breakWidth !== 1) {
-                $possibleBreak = $this->substr($string, $current, $breakWidth);
-            }
-
-            if ($possibleBreak === $break) {
-                $result    .= $this->substr($string, $lastStart, $current - $lastStart + $breakWidth);
-                $current   += $breakWidth - 1;
-                $lastStart  = $lastSpace = $current + 1;
-                continue;
-            }
-
-            if ($char === ' ') {
-                if ($current - $lastStart >= $width) {
-                    $result    .= $this->substr($string, $lastStart, $current - $lastStart) . $break;
-                    $lastStart  = $current + 1;
-                }
-
-                $lastSpace = $current;
-                continue;
-            }
-
-            if ($current - $lastStart >= $width && $cut && $lastStart >= $lastSpace) {
-                $result    .= $this->substr($string, $lastStart, $current - $lastStart) . $break;
-                $lastStart  = $lastSpace = $current;
-                continue;
-            }
-
-            if ($current - $lastStart >= $width && $lastStart < $lastSpace) {
-                $result    .= $this->substr($string, $lastStart, $lastSpace - $lastStart) . $break;
-                $lastStart  = $lastSpace = $lastSpace + 1;
-                continue;
-            }
-        }
-
-        if ($lastStart !== $current) {
-            $result .= $this->substr($string, $lastStart, $current - $lastStart);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Pad a string to a certain length with another string
-     *
-     * @param  string  $input
-     * @param  int $padLength
-     * @param  string  $padString
-     * @param  int $padType
-     * @return string
-     */
-    public function strPad($input, $padLength, $padString = ' ', $padType = STR_PAD_RIGHT)
-    {
-        if (StringUtils::isSingleByteEncoding($this->getEncoding())) {
-            return str_pad($input, $padLength, $padString, $padType);
-        }
-
-        $lengthOfPadding = $padLength - $this->strlen($input);
-        if ($lengthOfPadding <= 0) {
-            return $input;
-        }
-
-        $padStringLength = $this->strlen($padString);
-        if ($padStringLength === 0) {
-            return $input;
-        }
-
-        $repeatCount = floor($lengthOfPadding / $padStringLength);
-
-        if ($padType === STR_PAD_BOTH) {
-            $repeatCountLeft = $repeatCountRight = ($repeatCount - $repeatCount % 2) / 2;
-
-            $lastStringLength       = $lengthOfPadding - 2 * $repeatCountLeft * $padStringLength;
-            $lastStringLeftLength   = $lastStringRightLength = floor($lastStringLength / 2);
-            $lastStringRightLength += $lastStringLength % 2;
-
-            $lastStringLeft  = $this->substr($padString, 0, $lastStringLeftLength);
-            $lastStringRight = $this->substr($padString, 0, $lastStringRightLength);
-
-            return str_repeat($padString, $repeatCountLeft) . $lastStringLeft
-                . $input
-                . str_repeat($padString, $repeatCountRight) . $lastStringRight;
-        }
-
-        $lastString = $this->substr($padString, 0, $lengthOfPadding % $padStringLength);
-
-        if ($padType === STR_PAD_LEFT) {
-            return str_repeat($padString, $repeatCount) . $lastString . $input;
-        }
-
-        return $input . str_repeat($padString, $repeatCount) . $lastString;
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringWrapper/Iconv.php b/core/vendor/zendframework/zend-stdlib/StringWrapper/Iconv.php
deleted file mode 100644
index 04930ff..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringWrapper/Iconv.php
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\StringWrapper;
-
-use Zend\Stdlib\Exception;
-
-class Iconv extends AbstractStringWrapper
-{
-    /**
-     * List of supported character sets (upper case)
-     *
-     * @var string[]
-     * @link http://www.gnu.org/software/libiconv/
-     */
-    protected static $encodings = array(
-        // European languages
-        'ASCII',
-        'ISO-8859-1',
-        'ISO-8859-2',
-        'ISO-8859-3',
-        'ISO-8859-4',
-        'ISO-8859-5',
-        'ISO-8859-7',
-        'ISO-8859-9',
-        'ISO-8859-10',
-        'ISO-8859-13',
-        'ISO-8859-14',
-        'ISO-8859-15',
-        'ISO-8859-16',
-        'KOI8-R',
-        'KOI8-U',
-        'KOI8-RU',
-        'CP1250',
-        'CP1251',
-        'CP1252',
-        'CP1253',
-        'CP1254',
-        'CP1257',
-        'CP850',
-        'CP866',
-        'CP1131',
-        'MACROMAN',
-        'MACCENTRALEUROPE',
-        'MACICELAND',
-        'MACCROATIAN',
-        'MACROMANIA',
-        'MACCYRILLIC',
-        'MACUKRAINE',
-        'MACGREEK',
-        'MACTURKISH',
-        'MACINTOSH',
-
-        // Semitic languages
-        'ISO-8859-6',
-        'ISO-8859-8',
-        'CP1255',
-        'CP1256',
-        'CP862',
-        'MACHEBREW',
-        'MACARABIC',
-
-        // Japanese
-        'EUC-JP',
-        'SHIFT_JIS',
-        'CP932',
-        'ISO-2022-JP',
-        'ISO-2022-JP-2',
-        'ISO-2022-JP-1',
-
-        // Chinese
-        'EUC-CN',
-        'HZ',
-        'GBK',
-        'CP936',
-        'GB18030',
-        'EUC-TW',
-        'BIG5',
-        'CP950',
-        'BIG5-HKSCS',
-        'BIG5-HKSCS:2004',
-        'BIG5-HKSCS:2001',
-        'BIG5-HKSCS:1999',
-        'ISO-2022-CN',
-        'ISO-2022-CN-EXT',
-
-        // Korean
-        'EUC-KR',
-        'CP949',
-        'ISO-2022-KR',
-        'JOHAB',
-
-        // Armenian
-        'ARMSCII-8',
-
-        // Georgian
-        'GEORGIAN-ACADEMY',
-        'GEORGIAN-PS',
-
-        // Tajik
-        'KOI8-T',
-
-        // Kazakh
-        'PT154',
-        'RK1048',
-
-        // Thai
-        'ISO-8859-11',
-        'TIS-620',
-        'CP874',
-        'MACTHAI',
-
-        // Laotian
-        'MULELAO-1',
-        'CP1133',
-
-        // Vietnamese
-        'VISCII',
-        'TCVN',
-        'CP1258',
-
-        // Platform specifics
-        'HP-ROMAN8',
-        'NEXTSTEP',
-
-        // Full Unicode
-        'UTF-8',
-        'UCS-2',
-        'UCS-2BE',
-        'UCS-2LE',
-        'UCS-4',
-        'UCS-4BE',
-        'UCS-4LE',
-        'UTF-16',
-        'UTF-16BE',
-        'UTF-16LE',
-        'UTF-32',
-        'UTF-32BE',
-        'UTF-32LE',
-        'UTF-7',
-        'C99',
-        'JAVA',
-
-        /* Commented out because that's internal encodings not existing in real world
-        // Full Unicode, in terms of uint16_t or uint32_t (with machine dependent endianness and alignment)
-        'UCS-2-INTERNAL',
-        'UCS-4-INTERNAL',
-
-        // Locale dependent, in terms of `char' or `wchar_t' (with machine dependent endianness and alignment,
-        // and with OS and locale dependent semantics)
-        'char',
-        'wchar_t',
-        '', // The empty encoding name is equivalent to "char": it denotes the locale dependent character encoding.
-        */
-
-        // When configured with the option --enable-extra-encodings,
-        // it also provides support for a few extra encodings:
-
-        // European languages
-        'CP437',
-        'CP737',
-        'CP775',
-        'CP852',
-        'CP853',
-        'CP855',
-        'CP857',
-        'CP858',
-        'CP860',
-        'CP861',
-        'CP863',
-        'CP865',
-        'CP869',
-        'CP1125',
-
-        // Semitic languages
-        'CP864',
-
-        // Japanese
-        'EUC-JISX0213',
-        'Shift_JISX0213',
-        'ISO-2022-JP-3',
-
-        // Chinese
-        'BIG5-2003', // (experimental)
-
-        // Turkmen
-        'TDS565',
-
-        // Platform specifics
-        'ATARIST',
-        'RISCOS-LATIN1',
-    );
-
-    /**
-     * Get a list of supported character encodings
-     *
-     * @return string[]
-     */
-    public static function getSupportedEncodings()
-    {
-        return static::$encodings;
-    }
-
-    /**
-     * Constructor
-     *
-     * @throws Exception\ExtensionNotLoadedException
-     */
-    public function __construct()
-    {
-        if (!extension_loaded('iconv')) {
-            throw new Exception\ExtensionNotLoadedException(
-                'PHP extension "iconv" is required for this wrapper'
-            );
-        }
-    }
-
-    /**
-     * Returns the length of the given string
-     *
-     * @param string $str
-     * @return int|false
-     */
-    public function strlen($str)
-    {
-        return iconv_strlen($str, $this->getEncoding());
-    }
-
-    /**
-     * Returns the portion of string specified by the start and length parameters
-     *
-     * @param string   $str
-     * @param int      $offset
-     * @param int|null $length
-     * @return string|false
-     */
-    public function substr($str, $offset = 0, $length = null)
-    {
-        return iconv_substr($str, $offset, $length, $this->getEncoding());
-    }
-
-    /**
-     * Find the position of the first occurrence of a substring in a string
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     * @return int|false
-     */
-    public function strpos($haystack, $needle, $offset = 0)
-    {
-        return iconv_strpos($haystack, $needle, $offset, $this->getEncoding());
-    }
-
-    /**
-     * Convert a string from defined encoding to the defined convert encoding
-     *
-     * @param string  $str
-     * @param bool $reverse
-     * @return string|false
-     */
-    public function convert($str, $reverse = false)
-    {
-        $encoding        = $this->getEncoding();
-        $convertEncoding = $this->getConvertEncoding();
-        if ($convertEncoding === null) {
-            throw new Exception\LogicException(
-                'No convert encoding defined'
-            );
-        }
-
-        if ($encoding === $convertEncoding) {
-            return $str;
-        }
-
-        $fromEncoding = $reverse ? $convertEncoding : $encoding;
-        $toEncoding   = $reverse ? $encoding : $convertEncoding;
-
-        // automatically add "//IGNORE" to not stop converting on invalid characters
-        // invalid characters triggers a notice anyway
-        return iconv($fromEncoding, $toEncoding . '//IGNORE', $str);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringWrapper/Intl.php b/core/vendor/zendframework/zend-stdlib/StringWrapper/Intl.php
deleted file mode 100644
index 1b01277..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringWrapper/Intl.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\StringWrapper;
-
-use Zend\Stdlib\Exception;
-
-class Intl extends AbstractStringWrapper
-{
-    /**
-     * List of supported character sets (upper case)
-     *
-     * @var string[]
-     */
-    protected static $encodings = array('UTF-8');
-
-    /**
-     * Get a list of supported character encodings
-     *
-     * @return string[]
-     */
-    public static function getSupportedEncodings()
-    {
-        return static::$encodings;
-    }
-
-    /**
-     * Constructor
-     *
-     * @throws Exception\ExtensionNotLoadedException
-     */
-    public function __construct()
-    {
-        if (!extension_loaded('intl')) {
-            throw new Exception\ExtensionNotLoadedException(
-                'PHP extension "intl" is required for this wrapper'
-            );
-        }
-    }
-
-    /**
-     * Returns the length of the given string
-     *
-     * @param string $str
-     * @return int|false
-     */
-    public function strlen($str)
-    {
-        return grapheme_strlen($str);
-    }
-
-    /**
-     * Returns the portion of string specified by the start and length parameters
-     *
-     * @param string   $str
-     * @param int      $offset
-     * @param int|null $length
-     * @return string|false
-     */
-    public function substr($str, $offset = 0, $length = null)
-    {
-        // Due fix of PHP #62759 The third argument returns an empty string if is 0 or null.
-        if ($length !== null) {
-            return grapheme_substr($str, $offset, $length);
-        }
-
-        return grapheme_substr($str, $offset);
-    }
-
-    /**
-     * Find the position of the first occurrence of a substring in a string
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     * @return int|false
-     */
-    public function strpos($haystack, $needle, $offset = 0)
-    {
-        return grapheme_strpos($haystack, $needle, $offset);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringWrapper/MbString.php b/core/vendor/zendframework/zend-stdlib/StringWrapper/MbString.php
deleted file mode 100644
index d6db185..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringWrapper/MbString.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\StringWrapper;
-
-use Zend\Stdlib\Exception;
-
-class MbString extends AbstractStringWrapper
-{
-    /**
-     * List of supported character sets (upper case)
-     *
-     * @var null|string[]
-     * @link http://php.net/manual/mbstring.supported-encodings.php
-     */
-    protected static $encodings = null;
-
-    /**
-     * Get a list of supported character encodings
-     *
-     * @return string[]
-     */
-    public static function getSupportedEncodings()
-    {
-        if (static::$encodings === null) {
-            static::$encodings = array_map('strtoupper', mb_list_encodings());
-
-            // FIXME: Converting € (UTF-8) to ISO-8859-16 gives a wrong result
-            $indexIso885916 = array_search('ISO-8859-16', static::$encodings, true);
-            if ($indexIso885916 !== false) {
-                unset(static::$encodings[$indexIso885916]);
-            }
-        }
-
-        return static::$encodings;
-    }
-
-    /**
-     * Constructor
-     *
-     * @throws Exception\ExtensionNotLoadedException
-     */
-    public function __construct()
-    {
-        if (!extension_loaded('mbstring')) {
-            throw new Exception\ExtensionNotLoadedException(
-                'PHP extension "mbstring" is required for this wrapper'
-            );
-        }
-    }
-
-    /**
-     * Returns the length of the given string
-     *
-     * @param string $str
-     * @return int|false
-     */
-    public function strlen($str)
-    {
-        return mb_strlen($str, $this->getEncoding());
-    }
-
-    /**
-     * Returns the portion of string specified by the start and length parameters
-     *
-     * @param string   $str
-     * @param int      $offset
-     * @param int|null $length
-     * @return string|false
-     */
-    public function substr($str, $offset = 0, $length = null)
-    {
-        return mb_substr($str, $offset, $length, $this->getEncoding());
-    }
-
-    /**
-     * Find the position of the first occurrence of a substring in a string
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     * @return int|false
-     */
-    public function strpos($haystack, $needle, $offset = 0)
-    {
-        return mb_strpos($haystack, $needle, $offset, $this->getEncoding());
-    }
-
-    /**
-     * Convert a string from defined encoding to the defined convert encoding
-     *
-     * @param string  $str
-     * @param bool $reverse
-     * @return string|false
-     */
-    public function convert($str, $reverse = false)
-    {
-        $encoding        = $this->getEncoding();
-        $convertEncoding = $this->getConvertEncoding();
-
-        if ($convertEncoding === null) {
-            throw new Exception\LogicException(
-                'No convert encoding defined'
-            );
-        }
-
-        if ($encoding === $convertEncoding) {
-            return $str;
-        }
-
-        $fromEncoding = $reverse ? $convertEncoding : $encoding;
-        $toEncoding   = $reverse ? $encoding : $convertEncoding;
-        return mb_convert_encoding($str, $toEncoding, $fromEncoding);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringWrapper/Native.php b/core/vendor/zendframework/zend-stdlib/StringWrapper/Native.php
deleted file mode 100644
index 38b3c10..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringWrapper/Native.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\StringWrapper;
-
-use Zend\Stdlib\Exception;
-use Zend\Stdlib\StringUtils;
-
-class Native extends AbstractStringWrapper
-{
-    /**
-     * The character encoding working on
-     * (overwritten to change defaut encoding)
-     *
-     * @var string
-     */
-    protected $encoding = 'ASCII';
-
-    /**
-     * Check if the given character encoding is supported by this wrapper
-     * and the character encoding to convert to is also supported.
-     *
-     * @param  string      $encoding
-     * @param  string|null $convertEncoding
-     * @return bool
-     */
-    public static function isSupported($encoding, $convertEncoding = null)
-    {
-        $encodingUpper      = strtoupper($encoding);
-        $supportedEncodings = static::getSupportedEncodings();
-
-        if (!in_array($encodingUpper, $supportedEncodings)) {
-            return false;
-        }
-
-        // This adapter doesn't support to convert between encodings
-        if ($convertEncoding !== null && $encodingUpper !== strtoupper($convertEncoding)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Get a list of supported character encodings
-     *
-     * @return string[]
-     */
-    public static function getSupportedEncodings()
-    {
-        return StringUtils::getSingleByteEncodings();
-    }
-
-    /**
-     * Set character encoding working with and convert to
-     *
-     * @param string      $encoding         The character encoding to work with
-     * @param string|null $convertEncoding  The character encoding to convert to
-     * @return StringWrapperInterface
-     */
-    public function setEncoding($encoding, $convertEncoding = null)
-    {
-        $supportedEncodings = static::getSupportedEncodings();
-
-        $encodingUpper = strtoupper($encoding);
-        if (!in_array($encodingUpper, $supportedEncodings)) {
-            throw new Exception\InvalidArgumentException(
-                'Wrapper doesn\'t support character encoding "' . $encoding . '"'
-            );
-        }
-
-        if ($encodingUpper !== strtoupper($convertEncoding)) {
-            $this->convertEncoding = $encodingUpper;
-        }
-
-        if ($convertEncoding !== null) {
-            if ($encodingUpper !== strtoupper($convertEncoding)) {
-                throw new Exception\InvalidArgumentException(
-                    'Wrapper doesn\'t support to convert between character encodings'
-                );
-            }
-
-            $this->convertEncoding = $encodingUpper;
-        } else {
-            $this->convertEncoding = null;
-        }
-        $this->encoding = $encodingUpper;
-
-        return $this;
-    }
-
-    /**
-     * Returns the length of the given string
-     *
-     * @param string $str
-     * @return int|false
-     */
-    public function strlen($str)
-    {
-        return strlen($str);
-    }
-
-    /**
-     * Returns the portion of string specified by the start and length parameters
-     *
-     * @param string   $str
-     * @param int      $offset
-     * @param int|null $length
-     * @return string|false
-     */
-    public function substr($str, $offset = 0, $length = null)
-    {
-        return substr($str, $offset, $length);
-    }
-
-    /**
-     * Find the position of the first occurrence of a substring in a string
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     * @return int|false
-     */
-    public function strpos($haystack, $needle, $offset = 0)
-    {
-        return strpos($haystack, $needle, $offset);
-    }
-}
diff --git a/core/vendor/zendframework/zend-stdlib/StringWrapper/StringWrapperInterface.php b/core/vendor/zendframework/zend-stdlib/StringWrapper/StringWrapperInterface.php
deleted file mode 100644
index f25b325..0000000
--- a/core/vendor/zendframework/zend-stdlib/StringWrapper/StringWrapperInterface.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Stdlib\StringWrapper;
-
-interface StringWrapperInterface
-{
-    /**
-     * Check if the given character encoding is supported by this wrapper
-     * and the character encoding to convert to is also supported.
-     *
-     * @param string      $encoding
-     * @param string|null $convertEncoding
-     */
-    public static function isSupported($encoding, $convertEncoding = null);
-
-    /**
-     * Get a list of supported character encodings
-     *
-     * @return string[]
-     */
-    public static function getSupportedEncodings();
-
-    /**
-     * Set character encoding working with and convert to
-     *
-     * @param string      $encoding         The character encoding to work with
-     * @param string|null $convertEncoding  The character encoding to convert to
-     * @return StringWrapperInterface
-     */
-    public function setEncoding($encoding, $convertEncoding = null);
-
-    /**
-     * Get the defined character encoding to work with (upper case)
-     *
-     * @return string
-     */
-    public function getEncoding();
-
-    /**
-     * Get the defined character encoding to convert to (upper case)
-     *
-     * @return string|null
-     */
-    public function getConvertEncoding();
-
-    /**
-     * Returns the length of the given string
-     *
-     * @param string $str
-     * @return int|false
-     */
-    public function strlen($str);
-
-    /**
-     * Returns the portion of string specified by the start and length parameters
-     *
-     * @param string   $str
-     * @param int      $offset
-     * @param int|null $length
-     * @return string|false
-     */
-    public function substr($str, $offset = 0, $length = null);
-
-    /**
-     * Find the position of the first occurrence of a substring in a string
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     * @return int|false
-     */
-    public function strpos($haystack, $needle, $offset = 0);
-
-    /**
-     * Convert a string from defined encoding to the defined convert encoding
-     *
-     * @param string  $str
-     * @param bool $reverse
-     * @return string|false
-     */
-    public function convert($str, $reverse = false);
-
-    /**
-     * Wraps a string to a given number of characters
-     *
-     * @param  string  $str
-     * @param  int $width
-     * @param  string  $break
-     * @param  bool $cut
-     * @return string
-     */
-    public function wordWrap($str, $width = 75, $break = "\n", $cut = false);
-
-    /**
-     * Pad a string to a certain length with another string
-     *
-     * @param  string  $input
-     * @param  int $padLength
-     * @param  string  $padString
-     * @param  int $padType
-     * @return string
-     */
-    public function strPad($input, $padLength, $padString = ' ', $padType = STR_PAD_RIGHT);
-}
diff --git a/core/vendor/zendframework/zend-stdlib/compatibility/autoload.php b/core/vendor/zendframework/zend-stdlib/compatibility/autoload.php
deleted file mode 100644
index f8670cc..0000000
--- a/core/vendor/zendframework/zend-stdlib/compatibility/autoload.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link      http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license   http://framework.zend.com/license/new-bsd New BSD License
- * @deprecated
- */
-
-/**
- * Legacy purposes only, to prevent code that references it from breaking.
- */
-trigger_error('Polyfill autoload support (file library/Zend/Stdlib/compatibility/autoload.php) is no longer necessary; please remove your require statement referencing this file', E_USER_DEPRECATED);
diff --git a/core/vendor/zendframework/zend-stdlib/composer.json b/core/vendor/zendframework/zend-stdlib/composer.json
deleted file mode 100644
index dfe178b..0000000
--- a/core/vendor/zendframework/zend-stdlib/composer.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "name": "zendframework/zend-stdlib",
-    "description": " ",
-    "license": "BSD-3-Clause",
-    "keywords": [
-        "zf2",
-        "stdlib"
-    ],
-    "homepage": "https://github.com/zendframework/zf2",
-    "autoload": {
-        "psr-4": {
-            "Zend\\Stdlib\\": ""
-        }
-    },
-    "require": {
-        "php": ">=5.3.23"
-    },
-    "require-dev": {
-        "zendframework/zend-eventmanager": "self.version",
-        "zendframework/zend-serializer": "self.version",
-        "zendframework/zend-servicemanager": "self.version",
-        "zendframework/zend-filter": "self.version"
-    },
-    "suggest": {
-        "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
-        "zendframework/zend-serializer": "Zend\\Serializer component",
-        "zendframework/zend-servicemanager": "To support hydrator plugin manager usage",
-        "zendframework/zend-filter": "To support naming strategy hydrator usage"
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "2.3-dev",
-            "dev-develop": "2.4-dev"
-        }
-    }
-}
diff --git a/example.gitignore b/example.gitignore
index e2f0124..e12cb65 100644
--- a/example.gitignore
+++ b/example.gitignore
@@ -11,6 +11,9 @@
 # core
 # vendor
 
+# Ignore core's Composer dependencies.
+core/vendor
+
 # Ignore configuration files that may contain sensitive information.
 sites/*/settings*.php
 sites/*/services*.yml
